Changes

M4 Board

13,467 bytes added, 30 January
/* Firmware */
The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.
You can read more about it at http://www.spinpoint.org/cpc/m4info.txtand at https://www.spinpoint.org/2019/11/19/m4-board-guides/
<gallery>
Updating (or downgrading) a firmware is done by unpacking the update zip file to the root directory of the microSD card (from a PC). Then insert to the M4 and powercycle the CPC/M4 board, after about 20 seconds it should be updated. Verify with |version command.
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).
 
 
'''Please notice, on M4 boards shipped after 2016-10-01:'''
 
Due to a new flashchip on the wifi-board, do not use firmware versions lower than v1.0.9. If done by accident, use v1.0.9 or higher to restore it.
{| class="wikitable" style="margin-left: auto; margin-right: auto; border: none;"
!File
|- style="text-align: center;"
|| 1.00 || Initial Version || [[Media:M4FIRM_v100.zip | M4FIRM_v100.zip]]
|- style="text-align: center;"
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]
|- style="text-align: center;"
|| 1.09 || Added nonblocking host & client NETAPI.<br /> Added ESC check to cat/<nowiki>|</nowiki>dir.<br />M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. <br/>Direct SD card sector access.<br/>Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]
|- style="text-align: center;"|| 2.00 || Stability fixes for netapi.<br/>Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS<br/>Added C_GETNETWORK command.<br/>Added status byte after response string to C_NETSTAT<br/>Fix |cd,"/" to go to root if inside a DSK image.<br/>Fix SD hotswapping.<br/>Remove KM_RESET from cat/dir when pressing ESC.<br/>Display current path when using cat/dir.<br/>Increased AMSDOS readspeed (using bigger buffer).<br/>Faster network speed when using netapi.<br/>Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).<br/>Many amsdos compatiblity fixes.<br/>DSK images, handle ASCII art with cat.<br/>Fix multiple network connections.<br/>Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).<br/>|cd can use long names too.<br/>autoexec.bas method changed, should no longer give problems with certain basic games.<br/>Remote run - run remote files from WEB interface (control)<br/>|TAPE support, use |SD to switch back to M4<br/>|DISC supported if AMSDOS present, use |SD to switch back to M4<br/>Fix |era long filenames.<br/>|ren fix for long filenames<br/>Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]|- style="text-align: center;"|| 2.01 || More fixes to <nowiki>|</nowiki>era & <nowiki>|</nowiki>ren<br /> Added <nowiki>|</nowiki>FCP command to copy between floppies and microSD.<br />|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]|- style="text-align: center;"|| 2.02 || Fix carry flag of CAS OUT CHAR<br />Added tiny <nowiki>|</nowiki>M4HELP<br />Fixes for <nowiki>|</nowiki>FCP when using wildcard on Drive B, system protected files, excessive 1 byte on <2KB files, display of filename while copying & basic protected files.<br />Fix C_WRITESECTOR for DSK images<br />Fix DSK images not having entries ordered<br />Added support for cpr dsk images<br />Added <nowiki>|</nowiki>SNA command to load snapshots from microSD card.<br />|| [[Media:M4FIRM_v202.zip | M4FIRM_v202.zip]]|- style="text-align: center;"|| 2.03 || Added javascript/html5 based navigation to the webinterface, with multifile upload, download, remote run, delete & make directory.<br />Added ability to CD into DSK & CPR DSK images from the Web UI and use remote run too.<br />Fixes with running binary files with remote run and improved by changing directory to actual remote folder aswell.<br /><nowiki>|</nowiki>FCP Fix dodgy filenames, removing system attributes.<br /><nowiki>|</nowiki>M4HELP now lists the first 32 roms. Use <nowiki>|</nowiki>M4HELP,romnumber to display commands for a specific rom.<br />Full amsdos header read into amsdos buffer area (will let you retain unused part of header when copying/opening).<br />Fix autoexec.bas launching when soft-resetting inside a .DSK<br />Fix <nowiki>|</nowiki>cd into .dsk's with write protection attribute set<br />Fix web remote run for filenames using html encoded characters<br />Fix <nowiki>|</nowiki>M4help, using all screen modes<br /> || [[Media:M4FIRM_v203.zip | M4FIRM_v203.zip]]|- style="text-align: center;"|| 2.04 || Added <nowiki>|</nowiki>ctrup and <nowiki>|</nowiki>ctr RSX for CPC plus owner, giving the ability to launch cartridge images.<br />Fix parsing bug when file not found.<br />Many DSK fixes, now games like Chibi Akumas show loading screen (again), games with fragmented blocks work (ie. Ninja Grannies).<br />WEB UI, now you can pick "CD ON CPC" when using file browser or from Control, to change the directory on CPC itself.<br />Besides using the webui a http req (ie. wget) can also change directory like this: http://ipnum/config.cgi?cd2=/DEMOS or even into a DSK file.<br />[..] in the file browser was changed to [BACK] and [.] to [REFRESH] to make it more obvious.<br /><nowiki>|</nowiki>ls now supports DSK images too (will probably garbage up if using ascii art though).<br /><nowiki>|</nowiki>httpget will use attachment filename, rather than url if present.<br />New command <nowiki>|</nowiki>dskx. With this you can extract dsk images to files. Usage <nowiki>|</nowiki>dskx,"somedisk.dsk","/mypath" and all files are extracted to given path.<br /> CPC+ init. no longer clears screen.<br />Fix downloading files from the WEB UI.<br />Support 512KB cartridge images (mainly used by CPC+).<br />Added option in web interface to downgrade romboard to 16 roms, to be able to fit 512 KB cartridges.<br />Added option to upload & start cartridge images via web interface.<br />Set DHCP hostname to netbios name.<br />Fix crash when using run" without filename multiple times.<br />Improve timings of ROMDIS.<br />Only test IO bit 13 for rom selection (as CPC seems to do), was 0xDF<br />Fix Reset (clear rom state)<br />Change remote Reset, M4 reset & pause to acknowledge (IPC) commands or they could sometimes be ignored.<br />Updated ESP side SDK base to latest (v2.2.0), with whatever fixes that comes with it (ie. WPA/WPA2 vulnerability issue).<br />Fix Remote .sna for long filenames.<br />Fix for loaders using BE7D to restore drive letter (not checking if it is 00 00).<br />Change Amsdos workram 0-2 (ie. A700-A702) to 0 when using <nowiki>|</nowiki>SD and restore when using <nowiki>|</nowiki>DISC (only if AMSDOS or PARADOS present).<br />DSK: Do not show files with system attribute set. (makes better catart too)<br />DSK: Show '*' after file with "Read Only" attribute set.<br />DSK: Do not reject strange sector numbers (like AMSOFT disk protection)<br /> || [[Media:M4FIRM_v204.zip | M4FIRM_v204.zip]]|- style="text-align: center;"|| 2.05 || Fix CPC+ cartridge issue with demos Eerie Forest & CRTC3 (and maybe others)<br />Fix issue with certain Amsoft games<br />Fix rom issue.<br />Fix SNA pen 0 bug.<br />Fix SNA screen mode bug.<br />Added SNA v3 (compressed sna's) support.<br />Fix for upgrading ESP firmware (do not erase if CRC does not match).<br />Added <nowiki>|</nowiki>ROMSOFF command<br />Added upgrade report.txt (useful for diagnosing, upgrade problems).<br />Added Hack Menu, now you can save snapshots while playing games etc.<br />Fix DSK file size 0 bug<br />Fix <nowiki>|</nowiki>longname / C_FSTAT bug, now (again) displaying long filenames properly.<br />Fix Hack menu - Slowdown keyboard reading.<br />Added Hack menu - Support full keyboard character set (QWERTY only for now).<br />Added Hack menu - Pokes<br />Added Hack menu - Display memory<br />Fix Hack menu - Flaw in IM 2 detection.<br />Fix Hack menu - Resume "some games" (Pinball Fantasies, atleast on my one CPC).<br />Added Hack menu - AZERTY keyboard support (Huge thanks to @dxs for the painful keymap table! And thanks to @ZbyniuR for the keyboard detection method).<br />Added ability to launch Hack Menu with an external button.<br />It requires to solder two wires to the M4 board PCB (the wifi module).<br /> If you install this, it is at your OWN risk. You can also just launch hack menu from the Web UI.<br />Instructions are here:<br /><nowiki>http://www.spinpoint.org/cpc/m4hack1.jpg</nowiki><br />Fix file output of Maxam "write" command<br />Fix <nowiki>|</nowiki>HTTPGET strip "http://" from URL if used<br />Fix <nowiki>|</nowiki>HTTPGET freeze when URL does not resolve (2 sec DNS lookup timeout)<br />ADDED <nowiki>|</nowiki>HTTPGET use @ symbol at start of request to silent output text of console, ie. <nowiki>|</nowiki>httpget,"@spinpoint.org/cpc/m4info.txt"<br />ADDED <nowiki>|</nowiki>HTTPGET use > symbol followed by filename at end of request string to output into desired file, ie. <nowiki>|</nowiki>httpget,"spinpoint.org/cpc/m4info.txt>info.txt"<br />ADD C_NMI command to trigger NMI/HACKMENU from z80 code for debug<br />Fix WEB server missing HTML escape tags in files upload page.|| [[Media:M4FIRM_v205.zip | M4FIRM_v205.zip]]|- style="text-align: center;"|| 2.06 || Fix bug in <nowiki>|</nowiki>FCP corrupting (amsdos) files when transfering from microSD to DISC.<br />Fix <nowiki>|</nowiki>ROMUP issue (multiple rom upload)<br />Fix (internal) for NMI/HACKMENU<br /> || [[Media:M4FIRM_v206.zip | M4FIRM_v206.zip]]|- style="text-align: center;"|| 2.07 || Changed behaviour of RMR "ghost" register to support [[FutureOS]] and IMPdraw running from ROM on Amstrad PLUS.<br />Added C_ROMLOW command to map in and out lowerrom(s). See under developer info.<br />NMIROM.BIN is now loaded from microSD card root by default, if present, otherwise internal HACK MENU is used.<br />New HACK Menu improvements by Cebe74 (Thanks!):<br />Reorganized layout<br />Menu keyboard shortcuts<br />Memory dump feature<br />|| [[Media:M4FIRM_v207.zip | M4FIRM_v207.zip]]
|}
== Various files ==
[[Media: Lower6128_mod.zip | 6128 lower rom ]] : '''Modified lower rom ROM for CPC6128 ''' users, who cannot not override amsdos AmsDOS (rom ROM 7) with the M4 romROM, using this patched lower romROM, M4 rom ROM must be in rom ROM slot 6. It will be initialized instead of rom 7 and provide better compatiblity compatibility with gamesand higher himem.It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF. English version: [[Media: Lower6128_mod.zip | 6128 lower ROM English]]  Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower ROM Spanish]] French version by dxs: [[Media: Lower6128_mod-fr.zip | 6128 lower ROM French]] Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower ROM Danish]]  '''Auto Installer versions of modified lowerrom''' Download the desired autoinstaller and place it on your microSD card and then simply run it to install (& enable) the modified lowerrom into rom slot 31.  English version: [[Media: M4LOW-EN.BIN | RUN"M4LOW-EN.BIN]]  Spanish version: [[Media: M4LOW-SP.BIN | RUN"M4LOW-SP.BIN]] French version: [[Media: M4LOW-FR.BIN | RUN"M4LOW-FR.BIN]]  <gallery>M4config6128.jpg|Example config 6128</gallery>   [[Media:ROMUP464.BIN | ROMUP464.BIN]] '''Basic 1.1 for CPC464''' Auto Installer. Install Basic 1.1 and corresponding lower rom (English version!). And for best compatiblity it will set M4 rom to 7. Just copy the attached file ROMUP464.BIN to your microSD card and from Basic type: RUN"ROMUP464.BIN It will ask you to press M4 reset (or power cycle) when it's installed. If anything goes wrong, put the microSD card into a PC and delete from folder M4 the files ROMCONFIG.BIN and ROMSLOTS.BIN to set it back to default settings. If everything goes as planned your CPC464 will now display Basic 1.1. [[CPC M4 xfer tool]]: Command-line tool that allow to send files and receive from an M4 Board. Possibility to add an AMSDOS header too.
[[Media: Xfer 1.0.1.zip | xfer (v1.0.1) M4reconf]] : Command-line tool that allow A native CPC program to send files write romslots.bin and receive from a M4 Boardromconfig. Possibility bin with the romboard (to add a AMSDOS header toouse other M4 rom configuration).
[[Media: M4 Board relay rom.zip | M4 Board relay rom ]] : When moving M4rom out of position 1-7 / 1-16 it will no longer be initialized, therefore this rom should be placed at rom7 or lower. This is if you want to use 32 roms of XMEM and map M4 romboard after it. You should program the XMEM or other romboard with M4 bootrom in pos 1-7, it will look for M4 rom from 1-127 and initialize it + pass commands through to it. '''NOTE THIS IS OUTDATED, only use for early versions of the M4 firmware (v1.0.1)'''
== Technical information ==
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).<br />
<br />
Make your own HACK MENU for M4, source code is here:<br />
https://github.com/M4Duke/m4hackmenu<br />
Various source code examples for M4 board<br />
https://github.com/M4Duke/M4examples<br />
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:<br />
Source code here: https://github.com/M4Duke/cpcxfer<br />
More info here: http://cpcwiki.eu/index.php/CPC_M4_xfer_tool
<br />
Command documention and other infos:<br />
http://www.spinpoint.org/cpc/m4info.txt<br /><br /><br />Telnet client for M4:<br />http://www.cpcwiki.eu/forum/applications/telnet-client-for-cpc/<br /><br /> Ansi Telnet client for M4:<br />https://github.com/fergusleen/m4ewenterm/<br /><br /> '''Frontends / Launchers:'''<br /><br />CPCRulez Front end by hERMOL ( https://cpcrulez.fr/forum/viewtopic.php?f=2&t=6426&start=15#p56177 ):<br />http://cpcrulez.fr/m4/m4beta.bin (run"M4BETA)<br />Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:<br />http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659<br /><br />YANCC - Norton Commander Clone by SOS, compatible with M4:<br />http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone<br /><br />File Launcher by SOS, compatible with M4:<br />http://www.cpcwiki.eu/forum/applications/filelauncher-(acmedosm4dos)<br /><br />Menu program for M4 (with program & games download direct from the internet) by rafa32gr:<br />http://amstrad.esy.es/<br /><br />M4FE - A Front-end for M4<br />http://www.cpcwiki.eu/index.php/M4FE_-_A_front-end_for_M4<br /><br />'''Cases/Enclosures for M4 board:'''<br /><br />3D printer case for MX4/IDC version:<br />http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg131442/#msg131442<br /><br />3D printer case for EDGE connector "straight" version:<br />http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142416/#msg142416<br /><br />Premade case that can be cut to fit:<br />http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142773/#msg142773<br /><br />M4 board revision 2.0 EDGE connector, by povvercrazy:<br />https://www.thingiverse.com/thing:2645945<br /><br />M4 board revision 2.0 EDGE connector, by gschizas:<br />https://www.thingiverse.com/thing:3280950<br /><br />M4 board revision 2.5B IDC connector, by Rick_B-Lair:<br />https://www.thingiverse.com/thing:2858771<br /><br />M4 board revision 2.5C EDGE connector, by carlesoriol:<br />www.thingiverse.com/thing:4829910<br /><br />M4 board revision 2.4, 2.5B & 2.5C, both IDC and EDGE connector, by yawor:<br />https://github.com/yawor/m4board-enclosure<br /><br /> '''GAMES:'''<br />A chess game using M4 to connect over the internet or LAN by Joseman:<br />http://www.cpcwiki.eu/forum/programming/cpchessnet-(developing)/<br /><br /> Defence game, with online highscore table for registered version, by Shining:<br />http://cpc.scifinet.org/<br /><br /> Info on how to improve compatiblity:<br />http://www.cpcwiki.eu/forum/technical-support/the-compatibility-of-the-m4-card/<br /><br /> '''EMULATORS:''' The M4 Board is emulated in [https://www.cpc-emu.org/ CPCemu]
[[Category:FutureOS]]
[[Category:Hardware]]
[[Category:Memory expansions]]
[[Category:Network]]
[[Category:DIY]]
2,002
edits