<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://oldwiki.cpcwiki.eu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Duke</id>
		<title>CPCWiki - THE Amstrad CPC encyclopedia! - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://oldwiki.cpcwiki.eu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Duke"/>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php/Special:Contributions/Duke"/>
		<updated>2026-08-28T09:58:43Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.1</generator>

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

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

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=108043</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=108043"/>
				<updated>2021-05-08T04:47:39Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || M4FIRM_v100.zip&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.01 || More fixes to &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;era &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ren&amp;lt;br /&amp;gt; Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP command to copy between floppies and microSD.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.02 || Fix carry flag of CAS OUT CHAR&amp;lt;br /&amp;gt;Added tiny &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP&amp;lt;br /&amp;gt;Fixes for &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP  when using wildcard on Drive B, system protected files, excessive 1 byte on &amp;lt;2KB files, display of filename while copying &amp;amp; basic protected files.&amp;lt;br /&amp;gt;Fix C_WRITESECTOR for DSK images&amp;lt;br /&amp;gt;Fix DSK images not having entries ordered&amp;lt;br /&amp;gt;Added support for cpr dsk images&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SNA command to load snapshots from microSD card.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v202.zip | M4FIRM_v202.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.03 || Added javascript/html5 based navigation to the webinterface, with multifile upload, download, remote run, delete &amp;amp; make directory.&amp;lt;br /&amp;gt;Added ability to CD into DSK &amp;amp; CPR DSK images from the Web UI and use remote run too.&amp;lt;br /&amp;gt;Fixes with running binary files with remote run and improved by changing directory to actual remote folder aswell.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP Fix dodgy filenames, removing system attributes.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP now lists the first 32 roms. Use &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP,romnumber to display commands for a specific rom.&amp;lt;br /&amp;gt;Full amsdos header read into amsdos buffer area  (will let you retain unused part of header when copying/opening).&amp;lt;br /&amp;gt;Fix autoexec.bas launching when soft-resetting inside a .DSK&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;cd into .dsk's with write protection attribute set&amp;lt;br /&amp;gt;Fix web remote run for filenames using html encoded characters&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4help, using all screen modes&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v203.zip | M4FIRM_v203.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.04 || Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctrup and &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctr RSX for CPC plus owner, giving the ability to launch cartridge images.&amp;lt;br /&amp;gt;Fix parsing bug when file not found.&amp;lt;br /&amp;gt;Many DSK fixes, now games like Chibi Akumas show loading screen (again), games with fragmented blocks work (ie. Ninja Grannies).&amp;lt;br /&amp;gt;WEB UI, now you can pick &amp;quot;CD ON CPC&amp;quot; when using file browser or from Control, to change the directory on CPC itself.&amp;lt;br /&amp;gt;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.&amp;lt;br /&amp;gt;[..] in the file browser was changed to [BACK] and [.] to [REFRESH] to make it more obvious.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ls now supports DSK images too (will probably garbage up if using ascii art though).&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget will use attachment filename, rather than url if present.&amp;lt;br /&amp;gt;New command &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx. With this you can extract dsk images to files.     Usage &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx,&amp;quot;somedisk.dsk&amp;quot;,&amp;quot;/mypath&amp;quot; and all files are extracted to given path.&amp;lt;br /&amp;gt; CPC+ init. no longer clears screen.&amp;lt;br /&amp;gt;Fix downloading files from the WEB UI.&amp;lt;br /&amp;gt;Support 512KB cartridge images (mainly used by CPC+).&amp;lt;br /&amp;gt;Added option in web interface to downgrade romboard to 16 roms, to be able to fit 512 KB cartridges.&amp;lt;br /&amp;gt;Added option to upload &amp;amp; start cartridge images via web interface.&amp;lt;br /&amp;gt;Set DHCP hostname to netbios name.&amp;lt;br /&amp;gt;Fix crash when using run&amp;quot; without filename multiple times.&amp;lt;br /&amp;gt;Improve timings of ROMDIS.&amp;lt;br /&amp;gt;Only test IO bit 13 for rom selection (as CPC seems to do), was 0xDF&amp;lt;br /&amp;gt;Fix Reset (clear rom state)&amp;lt;br /&amp;gt;Change remote Reset, M4 reset &amp;amp; pause to acknowledge (IPC) commands or they could sometimes be ignored.&amp;lt;br /&amp;gt;Updated ESP side SDK base to latest (v2.2.0), with whatever fixes that comes with it (ie. WPA/WPA2 vulnerability issue).&amp;lt;br /&amp;gt;Fix Remote .sna for long filenames.&amp;lt;br /&amp;gt;Fix for loaders using BE7D to restore drive letter (not checking if it is 00 00).&amp;lt;br /&amp;gt;Change Amsdos workram 0-2 (ie. A700-A702) to 0 when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SD and restore when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;DISC (only if AMSDOS or PARADOS present).&amp;lt;br /&amp;gt;DSK: Do not show files with system attribute set. (makes better catart too)&amp;lt;br /&amp;gt;DSK: Show '*' after file with &amp;quot;Read Only&amp;quot; attribute set.&amp;lt;br /&amp;gt;DSK: Do not reject strange sector numbers (like AMSOFT disk protection)&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v204.zip | M4FIRM_v204.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.05 || Fix CPC+ cartridge issue with demos Eerie Forest &amp;amp; CRTC3 (and maybe others)&amp;lt;br /&amp;gt;Fix issue with certain Amsoft games&amp;lt;br /&amp;gt;Fix rom issue.&amp;lt;br /&amp;gt;Fix SNA pen 0 bug.&amp;lt;br /&amp;gt;Fix SNA screen mode bug.&amp;lt;br /&amp;gt;Added SNA v3 (compressed sna's) support.&amp;lt;br /&amp;gt;Fix for upgrading ESP firmware (do not erase if CRC does not match).&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSOFF command&amp;lt;br /&amp;gt;Added upgrade report.txt (useful for diagnosing, upgrade problems).&amp;lt;br /&amp;gt;Added Hack Menu, now you can save snapshots while playing games etc.&amp;lt;br /&amp;gt;Fix DSK file size 0 bug&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;longname / C_FSTAT bug, now (again) displaying long filenames properly.&amp;lt;br /&amp;gt;Fix Hack menu - Slowdown keyboard reading.&amp;lt;br /&amp;gt;Added Hack menu - Support full keyboard character set (QWERTY only for now).&amp;lt;br /&amp;gt;Added Hack menu - Pokes&amp;lt;br /&amp;gt;Added Hack menu - Display memory&amp;lt;br /&amp;gt;Fix Hack menu - Flaw in IM 2 detection.&amp;lt;br /&amp;gt;Fix Hack menu - Resume &amp;quot;some games&amp;quot; (Pinball Fantasies, atleast on my one CPC).&amp;lt;br /&amp;gt;Added Hack menu - AZERTY keyboard support (Huge thanks to @dxs for the painful keymap table! And thanks to @ZbyniuR for the keyboard detection method).&amp;lt;br /&amp;gt;Added ability to launch Hack Menu with an external button.&amp;lt;br /&amp;gt;It requires to solder two wires to the M4 board PCB (the wifi module).&amp;lt;br /&amp;gt;     If you install this, it is at your OWN risk. You can also just launch hack menu from the Web UI.&amp;lt;br /&amp;gt;Instructions are here:&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;http://www.spinpoint.org/cpc/m4hack1.jpg&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;Fix file output of Maxam &amp;quot;write&amp;quot; command&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET strip &amp;quot;http://&amp;quot; from URL if used&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET freeze when URL does not resolve (2 sec DNS lookup timeout)&amp;lt;br /&amp;gt;ADDED &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET use @ symbol at start of request to silent output text of console, ie. &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget,&amp;quot;@spinpoint.org/cpc/m4info.txt&amp;quot;&amp;lt;br /&amp;gt;ADDED &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET use &amp;gt; symbol followed by filename at end of request string to output into desired file, ie. &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget,&amp;quot;spinpoint.org/cpc/m4info.txt&amp;gt;info.txt&amp;quot;&amp;lt;br /&amp;gt;ADD C_NMI command to trigger NMI/HACKMENU from z80 code for debug&amp;lt;br /&amp;gt;Fix WEB server missing HTML escape tags in files upload page.|| [[Media:M4FIRM_v205.zip | M4FIRM_v205.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.06 || Fix bug in &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP corrupting (amsdos) files when transfering from microSD to DISC.&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP issue (multiple rom upload)&amp;lt;br /&amp;gt;Fix (internal) for NMI/HACKMENU&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v206.zip | M4FIRM_v206.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.07 || Changed behaviour of RMR &amp;quot;ghost&amp;quot; register to support FutureOS and IMPdraw running from ROM on Amstrad PLUS.&amp;lt;br /&amp;gt;Added C_ROMLOW command to map in and out lowerrom(s). See under developer info.&amp;lt;br /&amp;gt;NMIROM.BIN is now loaded from microSD card root by default, if present, otherwise internal HACK MENU is used.&amp;lt;br /&amp;gt;New HACK Menu improvements by Cebe74 (Thanks!):&amp;lt;br /&amp;gt;Reorganized layout&amp;lt;br /&amp;gt;Menu keyboard shortcuts&amp;lt;br /&amp;gt;Memory dump feature&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v207.zip | M4FIRM_v207.zip]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower ROM for CPC6128''' users, who cannot override AmsDOS (ROM 7) with the M4 ROM, using this patched lower ROM, M4 ROM must be in ROM slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatibility with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower ROM English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower ROM Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs: [[Media: Lower6128_mod-fr.zip | 6128 lower ROM French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower ROM Danish]] &lt;br /&gt;
&lt;br /&gt;
'''Auto Installer versions of modified lowerrom'''&lt;br /&gt;
&lt;br /&gt;
Download the desired autoinstaller and place it on your microSD card and then simply run it to install (&amp;amp; enable) the modified lowerrom into rom slot 31.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: M4LOW-EN.BIN | RUN&amp;quot;M4LOW-EN.BIN]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: M4LOW-SP.BIN | RUN&amp;quot;M4LOW-SP.BIN]]&lt;br /&gt;
&lt;br /&gt;
French version:  [[Media: M4LOW-FR.BIN | RUN&amp;quot;M4LOW-FR.BIN]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Media:ROMUP464.BIN | ROMUP464.BIN]] '''Basic 1.1 for CPC464''' Auto Installer.&lt;br /&gt;
&lt;br /&gt;
Install Basic 1.1 and corresponding lower rom (English version!).&lt;br /&gt;
&lt;br /&gt;
And for best compatiblity it will set M4 rom to 7.&lt;br /&gt;
&lt;br /&gt;
Just copy the attached file ROMUP464.BIN to your microSD card and from Basic type:&lt;br /&gt;
&lt;br /&gt;
RUN&amp;quot;ROMUP464.BIN&lt;br /&gt;
&lt;br /&gt;
It will ask you to press M4 reset (or power cycle) when it's installed.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
If everything goes as planned your CPC464 will now display Basic 1.1.&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
[[M4reconf]]: A native CPC program to write romslots.bin and romconfig.bin with the romboard (to use other M4 rom configuration).&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Make your own HACK MENU for M4, source code is here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4hackmenu&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
More info here: http://cpcwiki.eu/index.php/CPC_M4_xfer_tool&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
YANCC - Norton Commander Clone by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
File Launcher by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/filelauncher-(acmedosm4dos)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Menu program for M4 (with program &amp;amp; games download direct from the internet) by rafa32gr:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://amstrad.esy.es/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Telnet client for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/telnet-client-for-cpc/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
M4FE - A Front-end for M4&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/index.php/M4FE_-_A_front-end_for_M4&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cases/Enclosures for M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for MX4/IDC version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg131442/#msg131442&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for EDGE connector &amp;quot;straight&amp;quot; version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142416/#msg142416&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Premade case that can be cut to fit:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142773/#msg142773&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
M4 board revision 2.0 EDGE connector, by povvercrazy:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://www.thingiverse.com/thing:2645945&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
M4 board revision 2.0 EDGE connector, by gschizas:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://www.thingiverse.com/thing:3280950&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
M4 board revision 2.5B IDC connector, by Rick_B-Lair:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://www.thingiverse.com/thing:2858771&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
M4 board revision 2.5C EDGE connector, by carlesoriol:&amp;lt;br /&amp;gt;&lt;br /&gt;
www.thingiverse.com/thing:4829910&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
M4 board revision 2.4, 2.5B &amp;amp; 2.5C, both IDC and EDGE connector, by yawor:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/yawor/m4board-enclosure&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Games]]&lt;br /&gt;
A chess game using M4 to connect over the internet or LAN by Joseman:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/programming/cpchessnet-(developing)/&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Defence game, with online highscore table for registered version, by Shining:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://cpc.scifinet.org/&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Other and info on how to improve compatiblity:&amp;lt;br /&amp;gt;&lt;br /&gt;
www.cpcwiki.eu/forum/technical-support/the-compatibility-of-the-m4-card/&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:FutureOS]]&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:Memory expansions]]&lt;br /&gt;
[[Category:Network]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=108042</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=108042"/>
				<updated>2021-05-08T04:45:39Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || M4FIRM_v100.zip&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.01 || More fixes to &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;era &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ren&amp;lt;br /&amp;gt; Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP command to copy between floppies and microSD.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.02 || Fix carry flag of CAS OUT CHAR&amp;lt;br /&amp;gt;Added tiny &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP&amp;lt;br /&amp;gt;Fixes for &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP  when using wildcard on Drive B, system protected files, excessive 1 byte on &amp;lt;2KB files, display of filename while copying &amp;amp; basic protected files.&amp;lt;br /&amp;gt;Fix C_WRITESECTOR for DSK images&amp;lt;br /&amp;gt;Fix DSK images not having entries ordered&amp;lt;br /&amp;gt;Added support for cpr dsk images&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SNA command to load snapshots from microSD card.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v202.zip | M4FIRM_v202.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.03 || Added javascript/html5 based navigation to the webinterface, with multifile upload, download, remote run, delete &amp;amp; make directory.&amp;lt;br /&amp;gt;Added ability to CD into DSK &amp;amp; CPR DSK images from the Web UI and use remote run too.&amp;lt;br /&amp;gt;Fixes with running binary files with remote run and improved by changing directory to actual remote folder aswell.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP Fix dodgy filenames, removing system attributes.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP now lists the first 32 roms. Use &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP,romnumber to display commands for a specific rom.&amp;lt;br /&amp;gt;Full amsdos header read into amsdos buffer area  (will let you retain unused part of header when copying/opening).&amp;lt;br /&amp;gt;Fix autoexec.bas launching when soft-resetting inside a .DSK&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;cd into .dsk's with write protection attribute set&amp;lt;br /&amp;gt;Fix web remote run for filenames using html encoded characters&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4help, using all screen modes&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v203.zip | M4FIRM_v203.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.04 || Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctrup and &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctr RSX for CPC plus owner, giving the ability to launch cartridge images.&amp;lt;br /&amp;gt;Fix parsing bug when file not found.&amp;lt;br /&amp;gt;Many DSK fixes, now games like Chibi Akumas show loading screen (again), games with fragmented blocks work (ie. Ninja Grannies).&amp;lt;br /&amp;gt;WEB UI, now you can pick &amp;quot;CD ON CPC&amp;quot; when using file browser or from Control, to change the directory on CPC itself.&amp;lt;br /&amp;gt;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.&amp;lt;br /&amp;gt;[..] in the file browser was changed to [BACK] and [.] to [REFRESH] to make it more obvious.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ls now supports DSK images too (will probably garbage up if using ascii art though).&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget will use attachment filename, rather than url if present.&amp;lt;br /&amp;gt;New command &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx. With this you can extract dsk images to files.     Usage &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx,&amp;quot;somedisk.dsk&amp;quot;,&amp;quot;/mypath&amp;quot; and all files are extracted to given path.&amp;lt;br /&amp;gt; CPC+ init. no longer clears screen.&amp;lt;br /&amp;gt;Fix downloading files from the WEB UI.&amp;lt;br /&amp;gt;Support 512KB cartridge images (mainly used by CPC+).&amp;lt;br /&amp;gt;Added option in web interface to downgrade romboard to 16 roms, to be able to fit 512 KB cartridges.&amp;lt;br /&amp;gt;Added option to upload &amp;amp; start cartridge images via web interface.&amp;lt;br /&amp;gt;Set DHCP hostname to netbios name.&amp;lt;br /&amp;gt;Fix crash when using run&amp;quot; without filename multiple times.&amp;lt;br /&amp;gt;Improve timings of ROMDIS.&amp;lt;br /&amp;gt;Only test IO bit 13 for rom selection (as CPC seems to do), was 0xDF&amp;lt;br /&amp;gt;Fix Reset (clear rom state)&amp;lt;br /&amp;gt;Change remote Reset, M4 reset &amp;amp; pause to acknowledge (IPC) commands or they could sometimes be ignored.&amp;lt;br /&amp;gt;Updated ESP side SDK base to latest (v2.2.0), with whatever fixes that comes with it (ie. WPA/WPA2 vulnerability issue).&amp;lt;br /&amp;gt;Fix Remote .sna for long filenames.&amp;lt;br /&amp;gt;Fix for loaders using BE7D to restore drive letter (not checking if it is 00 00).&amp;lt;br /&amp;gt;Change Amsdos workram 0-2 (ie. A700-A702) to 0 when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SD and restore when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;DISC (only if AMSDOS or PARADOS present).&amp;lt;br /&amp;gt;DSK: Do not show files with system attribute set. (makes better catart too)&amp;lt;br /&amp;gt;DSK: Show '*' after file with &amp;quot;Read Only&amp;quot; attribute set.&amp;lt;br /&amp;gt;DSK: Do not reject strange sector numbers (like AMSOFT disk protection)&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v204.zip | M4FIRM_v204.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.05 || Fix CPC+ cartridge issue with demos Eerie Forest &amp;amp; CRTC3 (and maybe others)&amp;lt;br /&amp;gt;Fix issue with certain Amsoft games&amp;lt;br /&amp;gt;Fix rom issue.&amp;lt;br /&amp;gt;Fix SNA pen 0 bug.&amp;lt;br /&amp;gt;Fix SNA screen mode bug.&amp;lt;br /&amp;gt;Added SNA v3 (compressed sna's) support.&amp;lt;br /&amp;gt;Fix for upgrading ESP firmware (do not erase if CRC does not match).&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSOFF command&amp;lt;br /&amp;gt;Added upgrade report.txt (useful for diagnosing, upgrade problems).&amp;lt;br /&amp;gt;Added Hack Menu, now you can save snapshots while playing games etc.&amp;lt;br /&amp;gt;Fix DSK file size 0 bug&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;longname / C_FSTAT bug, now (again) displaying long filenames properly.&amp;lt;br /&amp;gt;Fix Hack menu - Slowdown keyboard reading.&amp;lt;br /&amp;gt;Added Hack menu - Support full keyboard character set (QWERTY only for now).&amp;lt;br /&amp;gt;Added Hack menu - Pokes&amp;lt;br /&amp;gt;Added Hack menu - Display memory&amp;lt;br /&amp;gt;Fix Hack menu - Flaw in IM 2 detection.&amp;lt;br /&amp;gt;Fix Hack menu - Resume &amp;quot;some games&amp;quot; (Pinball Fantasies, atleast on my one CPC).&amp;lt;br /&amp;gt;Added Hack menu - AZERTY keyboard support (Huge thanks to @dxs for the painful keymap table! And thanks to @ZbyniuR for the keyboard detection method).&amp;lt;br /&amp;gt;Added ability to launch Hack Menu with an external button.&amp;lt;br /&amp;gt;It requires to solder two wires to the M4 board PCB (the wifi module).&amp;lt;br /&amp;gt;     If you install this, it is at your OWN risk. You can also just launch hack menu from the Web UI.&amp;lt;br /&amp;gt;Instructions are here:&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;http://www.spinpoint.org/cpc/m4hack1.jpg&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;Fix file output of Maxam &amp;quot;write&amp;quot; command&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET strip &amp;quot;http://&amp;quot; from URL if used&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET freeze when URL does not resolve (2 sec DNS lookup timeout)&amp;lt;br /&amp;gt;ADDED &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET use @ symbol at start of request to silent output text of console, ie. &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget,&amp;quot;@spinpoint.org/cpc/m4info.txt&amp;quot;&amp;lt;br /&amp;gt;ADDED &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET use &amp;gt; symbol followed by filename at end of request string to output into desired file, ie. &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget,&amp;quot;spinpoint.org/cpc/m4info.txt&amp;gt;info.txt&amp;quot;&amp;lt;br /&amp;gt;ADD C_NMI command to trigger NMI/HACKMENU from z80 code for debug&amp;lt;br /&amp;gt;Fix WEB server missing HTML escape tags in files upload page.|| [[Media:M4FIRM_v205.zip | M4FIRM_v205.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.06 || Fix bug in &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP corrupting (amsdos) files when transfering from microSD to DISC.&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP issue (multiple rom upload)&amp;lt;br /&amp;gt;Fix (internal) for NMI/HACKMENU&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v206.zip | M4FIRM_v206.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.07 || Changed behaviour of RMR &amp;quot;ghost&amp;quot; register to support FutureOS and IMPdraw running from ROM on Amstrad PLUS.&amp;lt;br /&amp;gt;Added C_ROMLOW command to map in and out lowerrom(s). See under developer info.&amp;lt;br /&amp;gt;NMIROM.BIN is now loaded from microSD card root by default, if present, otherwise internal HACK MENU is used.&amp;lt;br /&amp;gt;New HACK Menu improvements by Cebe74 (Thanks!):&amp;lt;br /&amp;gt;Reorganized layout&amp;lt;br /&amp;gt;Menu keyboard shortcuts&amp;lt;br /&amp;gt;Memory dump feature&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v207.zip | M4FIRM_v207.zip]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower ROM for CPC6128''' users, who cannot override AmsDOS (ROM 7) with the M4 ROM, using this patched lower ROM, M4 ROM must be in ROM slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatibility with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower ROM English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower ROM Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs: [[Media: Lower6128_mod-fr.zip | 6128 lower ROM French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower ROM Danish]] &lt;br /&gt;
&lt;br /&gt;
'''Auto Installer versions of modified lowerrom'''&lt;br /&gt;
&lt;br /&gt;
Download the desired autoinstaller and place it on your microSD card and then simply run it to install (&amp;amp; enable) the modified lowerrom into rom slot 31.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: M4LOW-EN.BIN | RUN&amp;quot;M4LOW-EN.BIN]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: M4LOW-SP.BIN | RUN&amp;quot;M4LOW-SP.BIN]]&lt;br /&gt;
&lt;br /&gt;
French version:  [[Media: M4LOW-FR.BIN | RUN&amp;quot;M4LOW-FR.BIN]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Media:ROMUP464.BIN | ROMUP464.BIN]] '''Basic 1.1 for CPC464''' Auto Installer.&lt;br /&gt;
&lt;br /&gt;
Install Basic 1.1 and corresponding lower rom (English version!).&lt;br /&gt;
&lt;br /&gt;
And for best compatiblity it will set M4 rom to 7.&lt;br /&gt;
&lt;br /&gt;
Just copy the attached file ROMUP464.BIN to your microSD card and from Basic type:&lt;br /&gt;
&lt;br /&gt;
RUN&amp;quot;ROMUP464.BIN&lt;br /&gt;
&lt;br /&gt;
It will ask you to press M4 reset (or power cycle) when it's installed.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
If everything goes as planned your CPC464 will now display Basic 1.1.&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
[[M4reconf]]: A native CPC program to write romslots.bin and romconfig.bin with the romboard (to use other M4 rom configuration).&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Make your own HACK MENU for M4, source code is here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4hackmenu&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
More info here: http://cpcwiki.eu/index.php/CPC_M4_xfer_tool&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
YANCC - Norton Commander Clone by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
File Launcher by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/filelauncher-(acmedosm4dos)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Menu program for M4 (with program &amp;amp; games download direct from the internet) by rafa32gr:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://amstrad.esy.es/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Telnet client for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/telnet-client-for-cpc/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
M4FE - A Front-end for M4&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/index.php/M4FE_-_A_front-end_for_M4&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cases/Enclosures for M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for MX4/IDC version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg131442/#msg131442&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for EDGE connector &amp;quot;straight&amp;quot; version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142416/#msg142416&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Premade case that can be cut to fit:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142773/#msg142773&amp;lt;br /&amp;gt;&lt;br /&gt;
M4 board revision 2.0 EDGE connector, by povvercrazy:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://www.thingiverse.com/thing:2645945&amp;lt;br /&amp;gt;&lt;br /&gt;
M4 board revision 2.0 EDGE connector, by gschizas:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://www.thingiverse.com/thing:3280950&amp;lt;br /&amp;gt;&lt;br /&gt;
M4 board revision 2.5B IDC connector, by Rick_B-Lair:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://www.thingiverse.com/thing:2858771&amp;lt;br /&amp;gt;&lt;br /&gt;
M4 board revision 2.5C EDGE connector, by carlesoriol:&amp;lt;br /&amp;gt;&lt;br /&gt;
www.thingiverse.com/thing:4829910&amp;lt;br /&amp;gt;&lt;br /&gt;
M4 board revision 2.4, 2.5B &amp;amp; 2.5C, both IDC and EDGE connector, by yawor:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/yawor/m4board-enclosure&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Games]]&lt;br /&gt;
A chess game using M4 to connect over the internet or LAN by Joseman:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/programming/cpchessnet-(developing)/&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Defence game, with online highscore table for registered version, by Shining:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://cpc.scifinet.org/&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Other and info on how to improve compatiblity:&amp;lt;br /&amp;gt;&lt;br /&gt;
www.cpcwiki.eu/forum/technical-support/the-compatibility-of-the-m4-card/&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:FutureOS]]&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:Memory expansions]]&lt;br /&gt;
[[Category:Network]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=108041</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=108041"/>
				<updated>2021-05-08T04:35:07Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Various files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || M4FIRM_v100.zip&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.01 || More fixes to &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;era &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ren&amp;lt;br /&amp;gt; Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP command to copy between floppies and microSD.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.02 || Fix carry flag of CAS OUT CHAR&amp;lt;br /&amp;gt;Added tiny &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP&amp;lt;br /&amp;gt;Fixes for &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP  when using wildcard on Drive B, system protected files, excessive 1 byte on &amp;lt;2KB files, display of filename while copying &amp;amp; basic protected files.&amp;lt;br /&amp;gt;Fix C_WRITESECTOR for DSK images&amp;lt;br /&amp;gt;Fix DSK images not having entries ordered&amp;lt;br /&amp;gt;Added support for cpr dsk images&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SNA command to load snapshots from microSD card.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v202.zip | M4FIRM_v202.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.03 || Added javascript/html5 based navigation to the webinterface, with multifile upload, download, remote run, delete &amp;amp; make directory.&amp;lt;br /&amp;gt;Added ability to CD into DSK &amp;amp; CPR DSK images from the Web UI and use remote run too.&amp;lt;br /&amp;gt;Fixes with running binary files with remote run and improved by changing directory to actual remote folder aswell.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP Fix dodgy filenames, removing system attributes.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP now lists the first 32 roms. Use &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP,romnumber to display commands for a specific rom.&amp;lt;br /&amp;gt;Full amsdos header read into amsdos buffer area  (will let you retain unused part of header when copying/opening).&amp;lt;br /&amp;gt;Fix autoexec.bas launching when soft-resetting inside a .DSK&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;cd into .dsk's with write protection attribute set&amp;lt;br /&amp;gt;Fix web remote run for filenames using html encoded characters&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4help, using all screen modes&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v203.zip | M4FIRM_v203.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.04 || Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctrup and &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctr RSX for CPC plus owner, giving the ability to launch cartridge images.&amp;lt;br /&amp;gt;Fix parsing bug when file not found.&amp;lt;br /&amp;gt;Many DSK fixes, now games like Chibi Akumas show loading screen (again), games with fragmented blocks work (ie. Ninja Grannies).&amp;lt;br /&amp;gt;WEB UI, now you can pick &amp;quot;CD ON CPC&amp;quot; when using file browser or from Control, to change the directory on CPC itself.&amp;lt;br /&amp;gt;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.&amp;lt;br /&amp;gt;[..] in the file browser was changed to [BACK] and [.] to [REFRESH] to make it more obvious.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ls now supports DSK images too (will probably garbage up if using ascii art though).&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget will use attachment filename, rather than url if present.&amp;lt;br /&amp;gt;New command &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx. With this you can extract dsk images to files.     Usage &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx,&amp;quot;somedisk.dsk&amp;quot;,&amp;quot;/mypath&amp;quot; and all files are extracted to given path.&amp;lt;br /&amp;gt; CPC+ init. no longer clears screen.&amp;lt;br /&amp;gt;Fix downloading files from the WEB UI.&amp;lt;br /&amp;gt;Support 512KB cartridge images (mainly used by CPC+).&amp;lt;br /&amp;gt;Added option in web interface to downgrade romboard to 16 roms, to be able to fit 512 KB cartridges.&amp;lt;br /&amp;gt;Added option to upload &amp;amp; start cartridge images via web interface.&amp;lt;br /&amp;gt;Set DHCP hostname to netbios name.&amp;lt;br /&amp;gt;Fix crash when using run&amp;quot; without filename multiple times.&amp;lt;br /&amp;gt;Improve timings of ROMDIS.&amp;lt;br /&amp;gt;Only test IO bit 13 for rom selection (as CPC seems to do), was 0xDF&amp;lt;br /&amp;gt;Fix Reset (clear rom state)&amp;lt;br /&amp;gt;Change remote Reset, M4 reset &amp;amp; pause to acknowledge (IPC) commands or they could sometimes be ignored.&amp;lt;br /&amp;gt;Updated ESP side SDK base to latest (v2.2.0), with whatever fixes that comes with it (ie. WPA/WPA2 vulnerability issue).&amp;lt;br /&amp;gt;Fix Remote .sna for long filenames.&amp;lt;br /&amp;gt;Fix for loaders using BE7D to restore drive letter (not checking if it is 00 00).&amp;lt;br /&amp;gt;Change Amsdos workram 0-2 (ie. A700-A702) to 0 when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SD and restore when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;DISC (only if AMSDOS or PARADOS present).&amp;lt;br /&amp;gt;DSK: Do not show files with system attribute set. (makes better catart too)&amp;lt;br /&amp;gt;DSK: Show '*' after file with &amp;quot;Read Only&amp;quot; attribute set.&amp;lt;br /&amp;gt;DSK: Do not reject strange sector numbers (like AMSOFT disk protection)&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v204.zip | M4FIRM_v204.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.05 || Fix CPC+ cartridge issue with demos Eerie Forest &amp;amp; CRTC3 (and maybe others)&amp;lt;br /&amp;gt;Fix issue with certain Amsoft games&amp;lt;br /&amp;gt;Fix rom issue.&amp;lt;br /&amp;gt;Fix SNA pen 0 bug.&amp;lt;br /&amp;gt;Fix SNA screen mode bug.&amp;lt;br /&amp;gt;Added SNA v3 (compressed sna's) support.&amp;lt;br /&amp;gt;Fix for upgrading ESP firmware (do not erase if CRC does not match).&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSOFF command&amp;lt;br /&amp;gt;Added upgrade report.txt (useful for diagnosing, upgrade problems).&amp;lt;br /&amp;gt;Added Hack Menu, now you can save snapshots while playing games etc.&amp;lt;br /&amp;gt;Fix DSK file size 0 bug&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;longname / C_FSTAT bug, now (again) displaying long filenames properly.&amp;lt;br /&amp;gt;Fix Hack menu - Slowdown keyboard reading.&amp;lt;br /&amp;gt;Added Hack menu - Support full keyboard character set (QWERTY only for now).&amp;lt;br /&amp;gt;Added Hack menu - Pokes&amp;lt;br /&amp;gt;Added Hack menu - Display memory&amp;lt;br /&amp;gt;Fix Hack menu - Flaw in IM 2 detection.&amp;lt;br /&amp;gt;Fix Hack menu - Resume &amp;quot;some games&amp;quot; (Pinball Fantasies, atleast on my one CPC).&amp;lt;br /&amp;gt;Added Hack menu - AZERTY keyboard support (Huge thanks to @dxs for the painful keymap table! And thanks to @ZbyniuR for the keyboard detection method).&amp;lt;br /&amp;gt;Added ability to launch Hack Menu with an external button.&amp;lt;br /&amp;gt;It requires to solder two wires to the M4 board PCB (the wifi module).&amp;lt;br /&amp;gt;     If you install this, it is at your OWN risk. You can also just launch hack menu from the Web UI.&amp;lt;br /&amp;gt;Instructions are here:&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;http://www.spinpoint.org/cpc/m4hack1.jpg&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;Fix file output of Maxam &amp;quot;write&amp;quot; command&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET strip &amp;quot;http://&amp;quot; from URL if used&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET freeze when URL does not resolve (2 sec DNS lookup timeout)&amp;lt;br /&amp;gt;ADDED &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET use @ symbol at start of request to silent output text of console, ie. &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget,&amp;quot;@spinpoint.org/cpc/m4info.txt&amp;quot;&amp;lt;br /&amp;gt;ADDED &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET use &amp;gt; symbol followed by filename at end of request string to output into desired file, ie. &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget,&amp;quot;spinpoint.org/cpc/m4info.txt&amp;gt;info.txt&amp;quot;&amp;lt;br /&amp;gt;ADD C_NMI command to trigger NMI/HACKMENU from z80 code for debug&amp;lt;br /&amp;gt;Fix WEB server missing HTML escape tags in files upload page.|| [[Media:M4FIRM_v205.zip | M4FIRM_v205.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.06 || Fix bug in &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP corrupting (amsdos) files when transfering from microSD to DISC.&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP issue (multiple rom upload)&amp;lt;br /&amp;gt;Fix (internal) for NMI/HACKMENU&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v206.zip | M4FIRM_v206.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.07 || Changed behaviour of RMR &amp;quot;ghost&amp;quot; register to support FutureOS and IMPdraw running from ROM on Amstrad PLUS.&amp;lt;br /&amp;gt;Added C_ROMLOW command to map in and out lowerrom(s). See under developer info.&amp;lt;br /&amp;gt;NMIROM.BIN is now loaded from microSD card root by default, if present, otherwise internal HACK MENU is used.&amp;lt;br /&amp;gt;New HACK Menu improvements by Cebe74 (Thanks!):&amp;lt;br /&amp;gt;Reorganized layout&amp;lt;br /&amp;gt;Menu keyboard shortcuts&amp;lt;br /&amp;gt;Memory dump feature&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v207.zip | M4FIRM_v207.zip]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower ROM for CPC6128''' users, who cannot override AmsDOS (ROM 7) with the M4 ROM, using this patched lower ROM, M4 ROM must be in ROM slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatibility with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower ROM English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower ROM Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs: [[Media: Lower6128_mod-fr.zip | 6128 lower ROM French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower ROM Danish]] &lt;br /&gt;
&lt;br /&gt;
'''Auto Installer versions of modified lowerrom'''&lt;br /&gt;
&lt;br /&gt;
Download the desired autoinstaller and place it on your microSD card and then simply run it to install (&amp;amp; enable) the modified lowerrom into rom slot 31.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: M4LOW-EN.BIN | RUN&amp;quot;M4LOW-EN.BIN]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: M4LOW-SP.BIN | RUN&amp;quot;M4LOW-SP.BIN]]&lt;br /&gt;
&lt;br /&gt;
French version:  [[Media: M4LOW-FR.BIN | RUN&amp;quot;M4LOW-FR.BIN]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Media:ROMUP464.BIN | ROMUP464.BIN]] '''Basic 1.1 for CPC464''' Auto Installer.&lt;br /&gt;
&lt;br /&gt;
Install Basic 1.1 and corresponding lower rom (English version!).&lt;br /&gt;
&lt;br /&gt;
And for best compatiblity it will set M4 rom to 7.&lt;br /&gt;
&lt;br /&gt;
Just copy the attached file ROMUP464.BIN to your microSD card and from Basic type:&lt;br /&gt;
&lt;br /&gt;
RUN&amp;quot;ROMUP464.BIN&lt;br /&gt;
&lt;br /&gt;
It will ask you to press M4 reset (or power cycle) when it's installed.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
If everything goes as planned your CPC464 will now display Basic 1.1.&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
[[M4reconf]]: A native CPC program to write romslots.bin and romconfig.bin with the romboard (to use other M4 rom configuration).&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
More info here: http://cpcwiki.eu/index.php/CPC_M4_xfer_tool&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
YANCC - Norton Commander Clone by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
File Launcher by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/filelauncher-(acmedosm4dos)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Menu program for M4 (with program &amp;amp; games download direct from the internet) by rafa32gr:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://amstrad.esy.es/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Telnet client for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/telnet-client-for-cpc/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
M4FE - A Front-end for M4&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/index.php/M4FE_-_A_front-end_for_M4&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cases/Enclosures for M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for MX4/IDC version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg131442/#msg131442&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for EDGE connector &amp;quot;straight&amp;quot; version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142416/#msg142416&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Premade case that can be cut to fit:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142773/#msg142773&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:FutureOS]]&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:Memory expansions]]&lt;br /&gt;
[[Category:Network]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:M4LOW-SP.BIN&amp;diff=108040</id>
		<title>File:M4LOW-SP.BIN</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:M4LOW-SP.BIN&amp;diff=108040"/>
				<updated>2021-05-08T04:30:52Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: Auto installer for 6128 modified lower rom Spanish&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Auto installer for 6128 modified lower rom Spanish&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:M4LOW-FR.BIN&amp;diff=108039</id>
		<title>File:M4LOW-FR.BIN</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:M4LOW-FR.BIN&amp;diff=108039"/>
				<updated>2021-05-08T04:30:19Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: Auto installer for 6128 modified lower rom FRENCH&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Auto installer for 6128 modified lower rom FRENCH&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:M4LOW-EN.BIN&amp;diff=108038</id>
		<title>File:M4LOW-EN.BIN</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:M4LOW-EN.BIN&amp;diff=108038"/>
				<updated>2021-05-08T04:29:46Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: Auto installer for 6128 modified lower rom ENGLISH&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Auto installer for 6128 modified lower rom ENGLISH&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=108037</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=108037"/>
				<updated>2021-05-08T04:27:07Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Various files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || M4FIRM_v100.zip&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.01 || More fixes to &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;era &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ren&amp;lt;br /&amp;gt; Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP command to copy between floppies and microSD.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.02 || Fix carry flag of CAS OUT CHAR&amp;lt;br /&amp;gt;Added tiny &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP&amp;lt;br /&amp;gt;Fixes for &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP  when using wildcard on Drive B, system protected files, excessive 1 byte on &amp;lt;2KB files, display of filename while copying &amp;amp; basic protected files.&amp;lt;br /&amp;gt;Fix C_WRITESECTOR for DSK images&amp;lt;br /&amp;gt;Fix DSK images not having entries ordered&amp;lt;br /&amp;gt;Added support for cpr dsk images&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SNA command to load snapshots from microSD card.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v202.zip | M4FIRM_v202.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.03 || Added javascript/html5 based navigation to the webinterface, with multifile upload, download, remote run, delete &amp;amp; make directory.&amp;lt;br /&amp;gt;Added ability to CD into DSK &amp;amp; CPR DSK images from the Web UI and use remote run too.&amp;lt;br /&amp;gt;Fixes with running binary files with remote run and improved by changing directory to actual remote folder aswell.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP Fix dodgy filenames, removing system attributes.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP now lists the first 32 roms. Use &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP,romnumber to display commands for a specific rom.&amp;lt;br /&amp;gt;Full amsdos header read into amsdos buffer area  (will let you retain unused part of header when copying/opening).&amp;lt;br /&amp;gt;Fix autoexec.bas launching when soft-resetting inside a .DSK&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;cd into .dsk's with write protection attribute set&amp;lt;br /&amp;gt;Fix web remote run for filenames using html encoded characters&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4help, using all screen modes&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v203.zip | M4FIRM_v203.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.04 || Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctrup and &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctr RSX for CPC plus owner, giving the ability to launch cartridge images.&amp;lt;br /&amp;gt;Fix parsing bug when file not found.&amp;lt;br /&amp;gt;Many DSK fixes, now games like Chibi Akumas show loading screen (again), games with fragmented blocks work (ie. Ninja Grannies).&amp;lt;br /&amp;gt;WEB UI, now you can pick &amp;quot;CD ON CPC&amp;quot; when using file browser or from Control, to change the directory on CPC itself.&amp;lt;br /&amp;gt;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.&amp;lt;br /&amp;gt;[..] in the file browser was changed to [BACK] and [.] to [REFRESH] to make it more obvious.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ls now supports DSK images too (will probably garbage up if using ascii art though).&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget will use attachment filename, rather than url if present.&amp;lt;br /&amp;gt;New command &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx. With this you can extract dsk images to files.     Usage &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx,&amp;quot;somedisk.dsk&amp;quot;,&amp;quot;/mypath&amp;quot; and all files are extracted to given path.&amp;lt;br /&amp;gt; CPC+ init. no longer clears screen.&amp;lt;br /&amp;gt;Fix downloading files from the WEB UI.&amp;lt;br /&amp;gt;Support 512KB cartridge images (mainly used by CPC+).&amp;lt;br /&amp;gt;Added option in web interface to downgrade romboard to 16 roms, to be able to fit 512 KB cartridges.&amp;lt;br /&amp;gt;Added option to upload &amp;amp; start cartridge images via web interface.&amp;lt;br /&amp;gt;Set DHCP hostname to netbios name.&amp;lt;br /&amp;gt;Fix crash when using run&amp;quot; without filename multiple times.&amp;lt;br /&amp;gt;Improve timings of ROMDIS.&amp;lt;br /&amp;gt;Only test IO bit 13 for rom selection (as CPC seems to do), was 0xDF&amp;lt;br /&amp;gt;Fix Reset (clear rom state)&amp;lt;br /&amp;gt;Change remote Reset, M4 reset &amp;amp; pause to acknowledge (IPC) commands or they could sometimes be ignored.&amp;lt;br /&amp;gt;Updated ESP side SDK base to latest (v2.2.0), with whatever fixes that comes with it (ie. WPA/WPA2 vulnerability issue).&amp;lt;br /&amp;gt;Fix Remote .sna for long filenames.&amp;lt;br /&amp;gt;Fix for loaders using BE7D to restore drive letter (not checking if it is 00 00).&amp;lt;br /&amp;gt;Change Amsdos workram 0-2 (ie. A700-A702) to 0 when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SD and restore when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;DISC (only if AMSDOS or PARADOS present).&amp;lt;br /&amp;gt;DSK: Do not show files with system attribute set. (makes better catart too)&amp;lt;br /&amp;gt;DSK: Show '*' after file with &amp;quot;Read Only&amp;quot; attribute set.&amp;lt;br /&amp;gt;DSK: Do not reject strange sector numbers (like AMSOFT disk protection)&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v204.zip | M4FIRM_v204.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.05 || Fix CPC+ cartridge issue with demos Eerie Forest &amp;amp; CRTC3 (and maybe others)&amp;lt;br /&amp;gt;Fix issue with certain Amsoft games&amp;lt;br /&amp;gt;Fix rom issue.&amp;lt;br /&amp;gt;Fix SNA pen 0 bug.&amp;lt;br /&amp;gt;Fix SNA screen mode bug.&amp;lt;br /&amp;gt;Added SNA v3 (compressed sna's) support.&amp;lt;br /&amp;gt;Fix for upgrading ESP firmware (do not erase if CRC does not match).&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSOFF command&amp;lt;br /&amp;gt;Added upgrade report.txt (useful for diagnosing, upgrade problems).&amp;lt;br /&amp;gt;Added Hack Menu, now you can save snapshots while playing games etc.&amp;lt;br /&amp;gt;Fix DSK file size 0 bug&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;longname / C_FSTAT bug, now (again) displaying long filenames properly.&amp;lt;br /&amp;gt;Fix Hack menu - Slowdown keyboard reading.&amp;lt;br /&amp;gt;Added Hack menu - Support full keyboard character set (QWERTY only for now).&amp;lt;br /&amp;gt;Added Hack menu - Pokes&amp;lt;br /&amp;gt;Added Hack menu - Display memory&amp;lt;br /&amp;gt;Fix Hack menu - Flaw in IM 2 detection.&amp;lt;br /&amp;gt;Fix Hack menu - Resume &amp;quot;some games&amp;quot; (Pinball Fantasies, atleast on my one CPC).&amp;lt;br /&amp;gt;Added Hack menu - AZERTY keyboard support (Huge thanks to @dxs for the painful keymap table! And thanks to @ZbyniuR for the keyboard detection method).&amp;lt;br /&amp;gt;Added ability to launch Hack Menu with an external button.&amp;lt;br /&amp;gt;It requires to solder two wires to the M4 board PCB (the wifi module).&amp;lt;br /&amp;gt;     If you install this, it is at your OWN risk. You can also just launch hack menu from the Web UI.&amp;lt;br /&amp;gt;Instructions are here:&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;http://www.spinpoint.org/cpc/m4hack1.jpg&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;Fix file output of Maxam &amp;quot;write&amp;quot; command&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET strip &amp;quot;http://&amp;quot; from URL if used&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET freeze when URL does not resolve (2 sec DNS lookup timeout)&amp;lt;br /&amp;gt;ADDED &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET use @ symbol at start of request to silent output text of console, ie. &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget,&amp;quot;@spinpoint.org/cpc/m4info.txt&amp;quot;&amp;lt;br /&amp;gt;ADDED &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET use &amp;gt; symbol followed by filename at end of request string to output into desired file, ie. &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget,&amp;quot;spinpoint.org/cpc/m4info.txt&amp;gt;info.txt&amp;quot;&amp;lt;br /&amp;gt;ADD C_NMI command to trigger NMI/HACKMENU from z80 code for debug&amp;lt;br /&amp;gt;Fix WEB server missing HTML escape tags in files upload page.|| [[Media:M4FIRM_v205.zip | M4FIRM_v205.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.06 || Fix bug in &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP corrupting (amsdos) files when transfering from microSD to DISC.&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP issue (multiple rom upload)&amp;lt;br /&amp;gt;Fix (internal) for NMI/HACKMENU&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v206.zip | M4FIRM_v206.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.07 || Changed behaviour of RMR &amp;quot;ghost&amp;quot; register to support FutureOS and IMPdraw running from ROM on Amstrad PLUS.&amp;lt;br /&amp;gt;Added C_ROMLOW command to map in and out lowerrom(s). See under developer info.&amp;lt;br /&amp;gt;NMIROM.BIN is now loaded from microSD card root by default, if present, otherwise internal HACK MENU is used.&amp;lt;br /&amp;gt;New HACK Menu improvements by Cebe74 (Thanks!):&amp;lt;br /&amp;gt;Reorganized layout&amp;lt;br /&amp;gt;Menu keyboard shortcuts&amp;lt;br /&amp;gt;Memory dump feature&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v207.zip | M4FIRM_v207.zip]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower ROM for CPC6128''' users, who cannot override AmsDOS (ROM 7) with the M4 ROM, using this patched lower ROM, M4 ROM must be in ROM slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatibility with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower ROM English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower ROM Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs: [[Media: Lower6128_mod-fr.zip | 6128 lower ROM French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower ROM Danish]] &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Media:ROMUP464.BIN | ROMUP464.BIN]] '''Basic 1.1 for CPC464''' Auto Installer.&lt;br /&gt;
&lt;br /&gt;
Install Basic 1.1 and corresponding lower rom (English version!).&lt;br /&gt;
&lt;br /&gt;
And for best compatiblity it will set M4 rom to 7.&lt;br /&gt;
&lt;br /&gt;
Just copy the attached file ROMUP464.BIN to your microSD card and from Basic type:&lt;br /&gt;
&lt;br /&gt;
RUN&amp;quot;ROMUP464.BIN&lt;br /&gt;
&lt;br /&gt;
It will ask you to press M4 reset (or power cycle) when it's installed.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
If everything goes as planned your CPC464 will now display Basic 1.1.&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
[[M4reconf]]: A native CPC program to write romslots.bin and romconfig.bin with the romboard (to use other M4 rom configuration).&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
More info here: http://cpcwiki.eu/index.php/CPC_M4_xfer_tool&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
YANCC - Norton Commander Clone by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
File Launcher by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/filelauncher-(acmedosm4dos)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Menu program for M4 (with program &amp;amp; games download direct from the internet) by rafa32gr:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://amstrad.esy.es/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Telnet client for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/telnet-client-for-cpc/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
M4FE - A Front-end for M4&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/index.php/M4FE_-_A_front-end_for_M4&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cases/Enclosures for M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for MX4/IDC version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg131442/#msg131442&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for EDGE connector &amp;quot;straight&amp;quot; version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142416/#msg142416&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Premade case that can be cut to fit:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142773/#msg142773&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:FutureOS]]&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:Memory expansions]]&lt;br /&gt;
[[Category:Network]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:ROMUP464.BIN&amp;diff=108036</id>
		<title>File:ROMUP464.BIN</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:ROMUP464.BIN&amp;diff=108036"/>
				<updated>2021-05-08T04:20:10Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: Auto installer for Basic 1.1 (ENGLISH) and set M4 rom to 7 for CPC464's.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Auto installer for Basic 1.1 (ENGLISH) and set M4 rom to 7 for CPC464's.&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=108035</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=108035"/>
				<updated>2021-05-08T04:16:14Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || M4FIRM_v100.zip&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.01 || More fixes to &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;era &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ren&amp;lt;br /&amp;gt; Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP command to copy between floppies and microSD.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.02 || Fix carry flag of CAS OUT CHAR&amp;lt;br /&amp;gt;Added tiny &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP&amp;lt;br /&amp;gt;Fixes for &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP  when using wildcard on Drive B, system protected files, excessive 1 byte on &amp;lt;2KB files, display of filename while copying &amp;amp; basic protected files.&amp;lt;br /&amp;gt;Fix C_WRITESECTOR for DSK images&amp;lt;br /&amp;gt;Fix DSK images not having entries ordered&amp;lt;br /&amp;gt;Added support for cpr dsk images&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SNA command to load snapshots from microSD card.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v202.zip | M4FIRM_v202.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.03 || Added javascript/html5 based navigation to the webinterface, with multifile upload, download, remote run, delete &amp;amp; make directory.&amp;lt;br /&amp;gt;Added ability to CD into DSK &amp;amp; CPR DSK images from the Web UI and use remote run too.&amp;lt;br /&amp;gt;Fixes with running binary files with remote run and improved by changing directory to actual remote folder aswell.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP Fix dodgy filenames, removing system attributes.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP now lists the first 32 roms. Use &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP,romnumber to display commands for a specific rom.&amp;lt;br /&amp;gt;Full amsdos header read into amsdos buffer area  (will let you retain unused part of header when copying/opening).&amp;lt;br /&amp;gt;Fix autoexec.bas launching when soft-resetting inside a .DSK&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;cd into .dsk's with write protection attribute set&amp;lt;br /&amp;gt;Fix web remote run for filenames using html encoded characters&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4help, using all screen modes&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v203.zip | M4FIRM_v203.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.04 || Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctrup and &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctr RSX for CPC plus owner, giving the ability to launch cartridge images.&amp;lt;br /&amp;gt;Fix parsing bug when file not found.&amp;lt;br /&amp;gt;Many DSK fixes, now games like Chibi Akumas show loading screen (again), games with fragmented blocks work (ie. Ninja Grannies).&amp;lt;br /&amp;gt;WEB UI, now you can pick &amp;quot;CD ON CPC&amp;quot; when using file browser or from Control, to change the directory on CPC itself.&amp;lt;br /&amp;gt;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.&amp;lt;br /&amp;gt;[..] in the file browser was changed to [BACK] and [.] to [REFRESH] to make it more obvious.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ls now supports DSK images too (will probably garbage up if using ascii art though).&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget will use attachment filename, rather than url if present.&amp;lt;br /&amp;gt;New command &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx. With this you can extract dsk images to files.     Usage &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx,&amp;quot;somedisk.dsk&amp;quot;,&amp;quot;/mypath&amp;quot; and all files are extracted to given path.&amp;lt;br /&amp;gt; CPC+ init. no longer clears screen.&amp;lt;br /&amp;gt;Fix downloading files from the WEB UI.&amp;lt;br /&amp;gt;Support 512KB cartridge images (mainly used by CPC+).&amp;lt;br /&amp;gt;Added option in web interface to downgrade romboard to 16 roms, to be able to fit 512 KB cartridges.&amp;lt;br /&amp;gt;Added option to upload &amp;amp; start cartridge images via web interface.&amp;lt;br /&amp;gt;Set DHCP hostname to netbios name.&amp;lt;br /&amp;gt;Fix crash when using run&amp;quot; without filename multiple times.&amp;lt;br /&amp;gt;Improve timings of ROMDIS.&amp;lt;br /&amp;gt;Only test IO bit 13 for rom selection (as CPC seems to do), was 0xDF&amp;lt;br /&amp;gt;Fix Reset (clear rom state)&amp;lt;br /&amp;gt;Change remote Reset, M4 reset &amp;amp; pause to acknowledge (IPC) commands or they could sometimes be ignored.&amp;lt;br /&amp;gt;Updated ESP side SDK base to latest (v2.2.0), with whatever fixes that comes with it (ie. WPA/WPA2 vulnerability issue).&amp;lt;br /&amp;gt;Fix Remote .sna for long filenames.&amp;lt;br /&amp;gt;Fix for loaders using BE7D to restore drive letter (not checking if it is 00 00).&amp;lt;br /&amp;gt;Change Amsdos workram 0-2 (ie. A700-A702) to 0 when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SD and restore when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;DISC (only if AMSDOS or PARADOS present).&amp;lt;br /&amp;gt;DSK: Do not show files with system attribute set. (makes better catart too)&amp;lt;br /&amp;gt;DSK: Show '*' after file with &amp;quot;Read Only&amp;quot; attribute set.&amp;lt;br /&amp;gt;DSK: Do not reject strange sector numbers (like AMSOFT disk protection)&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v204.zip | M4FIRM_v204.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.05 || Fix CPC+ cartridge issue with demos Eerie Forest &amp;amp; CRTC3 (and maybe others)&amp;lt;br /&amp;gt;Fix issue with certain Amsoft games&amp;lt;br /&amp;gt;Fix rom issue.&amp;lt;br /&amp;gt;Fix SNA pen 0 bug.&amp;lt;br /&amp;gt;Fix SNA screen mode bug.&amp;lt;br /&amp;gt;Added SNA v3 (compressed sna's) support.&amp;lt;br /&amp;gt;Fix for upgrading ESP firmware (do not erase if CRC does not match).&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSOFF command&amp;lt;br /&amp;gt;Added upgrade report.txt (useful for diagnosing, upgrade problems).&amp;lt;br /&amp;gt;Added Hack Menu, now you can save snapshots while playing games etc.&amp;lt;br /&amp;gt;Fix DSK file size 0 bug&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;longname / C_FSTAT bug, now (again) displaying long filenames properly.&amp;lt;br /&amp;gt;Fix Hack menu - Slowdown keyboard reading.&amp;lt;br /&amp;gt;Added Hack menu - Support full keyboard character set (QWERTY only for now).&amp;lt;br /&amp;gt;Added Hack menu - Pokes&amp;lt;br /&amp;gt;Added Hack menu - Display memory&amp;lt;br /&amp;gt;Fix Hack menu - Flaw in IM 2 detection.&amp;lt;br /&amp;gt;Fix Hack menu - Resume &amp;quot;some games&amp;quot; (Pinball Fantasies, atleast on my one CPC).&amp;lt;br /&amp;gt;Added Hack menu - AZERTY keyboard support (Huge thanks to @dxs for the painful keymap table! And thanks to @ZbyniuR for the keyboard detection method).&amp;lt;br /&amp;gt;Added ability to launch Hack Menu with an external button.&amp;lt;br /&amp;gt;It requires to solder two wires to the M4 board PCB (the wifi module).&amp;lt;br /&amp;gt;     If you install this, it is at your OWN risk. You can also just launch hack menu from the Web UI.&amp;lt;br /&amp;gt;Instructions are here:&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;http://www.spinpoint.org/cpc/m4hack1.jpg&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;Fix file output of Maxam &amp;quot;write&amp;quot; command&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET strip &amp;quot;http://&amp;quot; from URL if used&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET freeze when URL does not resolve (2 sec DNS lookup timeout)&amp;lt;br /&amp;gt;ADDED &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET use @ symbol at start of request to silent output text of console, ie. &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget,&amp;quot;@spinpoint.org/cpc/m4info.txt&amp;quot;&amp;lt;br /&amp;gt;ADDED &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET use &amp;gt; symbol followed by filename at end of request string to output into desired file, ie. &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget,&amp;quot;spinpoint.org/cpc/m4info.txt&amp;gt;info.txt&amp;quot;&amp;lt;br /&amp;gt;ADD C_NMI command to trigger NMI/HACKMENU from z80 code for debug&amp;lt;br /&amp;gt;Fix WEB server missing HTML escape tags in files upload page.|| [[Media:M4FIRM_v205.zip | M4FIRM_v205.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.06 || Fix bug in &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP corrupting (amsdos) files when transfering from microSD to DISC.&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP issue (multiple rom upload)&amp;lt;br /&amp;gt;Fix (internal) for NMI/HACKMENU&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v206.zip | M4FIRM_v206.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.07 || Changed behaviour of RMR &amp;quot;ghost&amp;quot; register to support FutureOS and IMPdraw running from ROM on Amstrad PLUS.&amp;lt;br /&amp;gt;Added C_ROMLOW command to map in and out lowerrom(s). See under developer info.&amp;lt;br /&amp;gt;NMIROM.BIN is now loaded from microSD card root by default, if present, otherwise internal HACK MENU is used.&amp;lt;br /&amp;gt;New HACK Menu improvements by Cebe74 (Thanks!):&amp;lt;br /&amp;gt;Reorganized layout&amp;lt;br /&amp;gt;Menu keyboard shortcuts&amp;lt;br /&amp;gt;Memory dump feature&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v207.zip | M4FIRM_v207.zip]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower ROM for CPC6128''' users, who cannot override AmsDOS (ROM 7) with the M4 ROM, using this patched lower ROM, M4 ROM must be in ROM slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatibility with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower ROM English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower ROM Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs: [[Media: Lower6128_mod-fr.zip | 6128 lower ROM French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower ROM Danish]] &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
[[M4reconf]]: A native CPC program to write romslots.bin and romconfig.bin with the romboard (to use other M4 rom configuration).&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
More info here: http://cpcwiki.eu/index.php/CPC_M4_xfer_tool&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
YANCC - Norton Commander Clone by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
File Launcher by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/filelauncher-(acmedosm4dos)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Menu program for M4 (with program &amp;amp; games download direct from the internet) by rafa32gr:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://amstrad.esy.es/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Telnet client for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/telnet-client-for-cpc/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
M4FE - A Front-end for M4&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/index.php/M4FE_-_A_front-end_for_M4&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cases/Enclosures for M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for MX4/IDC version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg131442/#msg131442&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for EDGE connector &amp;quot;straight&amp;quot; version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142416/#msg142416&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Premade case that can be cut to fit:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142773/#msg142773&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:FutureOS]]&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:Memory expansions]]&lt;br /&gt;
[[Category:Network]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=108034</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=108034"/>
				<updated>2021-05-08T04:11:54Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || M4FIRM_v100.zip&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.01 || More fixes to &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;era &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ren&amp;lt;br /&amp;gt; Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP command to copy between floppies and microSD.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.02 || Fix carry flag of CAS OUT CHAR&amp;lt;br /&amp;gt;Added tiny &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP&amp;lt;br /&amp;gt;Fixes for &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP  when using wildcard on Drive B, system protected files, excessive 1 byte on &amp;lt;2KB files, display of filename while copying &amp;amp; basic protected files.&amp;lt;br /&amp;gt;Fix C_WRITESECTOR for DSK images&amp;lt;br /&amp;gt;Fix DSK images not having entries ordered&amp;lt;br /&amp;gt;Added support for cpr dsk images&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SNA command to load snapshots from microSD card.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v202.zip | M4FIRM_v202.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.03 || Added javascript/html5 based navigation to the webinterface, with multifile upload, download, remote run, delete &amp;amp; make directory.&amp;lt;br /&amp;gt;Added ability to CD into DSK &amp;amp; CPR DSK images from the Web UI and use remote run too.&amp;lt;br /&amp;gt;Fixes with running binary files with remote run and improved by changing directory to actual remote folder aswell.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP Fix dodgy filenames, removing system attributes.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP now lists the first 32 roms. Use &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP,romnumber to display commands for a specific rom.&amp;lt;br /&amp;gt;Full amsdos header read into amsdos buffer area  (will let you retain unused part of header when copying/opening).&amp;lt;br /&amp;gt;Fix autoexec.bas launching when soft-resetting inside a .DSK&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;cd into .dsk's with write protection attribute set&amp;lt;br /&amp;gt;Fix web remote run for filenames using html encoded characters&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4help, using all screen modes&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v203.zip | M4FIRM_v203.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.04 || Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctrup and &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctr RSX for CPC plus owner, giving the ability to launch cartridge images.&amp;lt;br /&amp;gt;Fix parsing bug when file not found.&amp;lt;br /&amp;gt;Many DSK fixes, now games like Chibi Akumas show loading screen (again), games with fragmented blocks work (ie. Ninja Grannies).&amp;lt;br /&amp;gt;WEB UI, now you can pick &amp;quot;CD ON CPC&amp;quot; when using file browser or from Control, to change the directory on CPC itself.&amp;lt;br /&amp;gt;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.&amp;lt;br /&amp;gt;[..] in the file browser was changed to [BACK] and [.] to [REFRESH] to make it more obvious.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ls now supports DSK images too (will probably garbage up if using ascii art though).&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget will use attachment filename, rather than url if present.&amp;lt;br /&amp;gt;New command &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx. With this you can extract dsk images to files.     Usage &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx,&amp;quot;somedisk.dsk&amp;quot;,&amp;quot;/mypath&amp;quot; and all files are extracted to given path.&amp;lt;br /&amp;gt; CPC+ init. no longer clears screen.&amp;lt;br /&amp;gt;Fix downloading files from the WEB UI.&amp;lt;br /&amp;gt;Support 512KB cartridge images (mainly used by CPC+).&amp;lt;br /&amp;gt;Added option in web interface to downgrade romboard to 16 roms, to be able to fit 512 KB cartridges.&amp;lt;br /&amp;gt;Added option to upload &amp;amp; start cartridge images via web interface.&amp;lt;br /&amp;gt;Set DHCP hostname to netbios name.&amp;lt;br /&amp;gt;Fix crash when using run&amp;quot; without filename multiple times.&amp;lt;br /&amp;gt;Improve timings of ROMDIS.&amp;lt;br /&amp;gt;Only test IO bit 13 for rom selection (as CPC seems to do), was 0xDF&amp;lt;br /&amp;gt;Fix Reset (clear rom state)&amp;lt;br /&amp;gt;Change remote Reset, M4 reset &amp;amp; pause to acknowledge (IPC) commands or they could sometimes be ignored.&amp;lt;br /&amp;gt;Updated ESP side SDK base to latest (v2.2.0), with whatever fixes that comes with it (ie. WPA/WPA2 vulnerability issue).&amp;lt;br /&amp;gt;Fix Remote .sna for long filenames.&amp;lt;br /&amp;gt;Fix for loaders using BE7D to restore drive letter (not checking if it is 00 00).&amp;lt;br /&amp;gt;Change Amsdos workram 0-2 (ie. A700-A702) to 0 when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SD and restore when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;DISC (only if AMSDOS or PARADOS present).&amp;lt;br /&amp;gt;DSK: Do not show files with system attribute set. (makes better catart too)&amp;lt;br /&amp;gt;DSK: Show '*' after file with &amp;quot;Read Only&amp;quot; attribute set.&amp;lt;br /&amp;gt;DSK: Do not reject strange sector numbers (like AMSOFT disk protection)&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v204.zip | M4FIRM_v204.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.05 || Fix CPC+ cartridge issue with demos Eerie Forest &amp;amp; CRTC3 (and maybe others)&amp;lt;br /&amp;gt;Fix issue with certain Amsoft games&amp;lt;br /&amp;gt;Fix rom issue.&amp;lt;br /&amp;gt;Fix SNA pen 0 bug.&amp;lt;br /&amp;gt;Fix SNA screen mode bug.&amp;lt;br /&amp;gt;Added SNA v3 (compressed sna's) support.&amp;lt;br /&amp;gt;Fix for upgrading ESP firmware (do not erase if CRC does not match).&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSOFF command&amp;lt;br /&amp;gt;Added upgrade report.txt (useful for diagnosing, upgrade problems).&amp;lt;br /&amp;gt;Added Hack Menu, now you can save snapshots while playing games etc.&amp;lt;br /&amp;gt;Fix DSK file size 0 bug&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;longname / C_FSTAT bug, now (again) displaying long filenames properly.&amp;lt;br /&amp;gt;Fix Hack menu - Slowdown keyboard reading.&amp;lt;br /&amp;gt;Added Hack menu - Support full keyboard character set (QWERTY only for now).&amp;lt;br /&amp;gt;Added Hack menu - Pokes&amp;lt;br /&amp;gt;Added Hack menu - Display memory&amp;lt;br /&amp;gt;Fix Hack menu - Flaw in IM 2 detection.&amp;lt;br /&amp;gt;Fix Hack menu - Resume &amp;quot;some games&amp;quot; (Pinball Fantasies, atleast on my one CPC).&amp;lt;br /&amp;gt;Added Hack menu - AZERTY keyboard support (Huge thanks to @dxs for the painful keymap table! And thanks to @ZbyniuR for the keyboard detection method).&amp;lt;br /&amp;gt;Added ability to launch Hack Menu with an external button.&amp;lt;br /&amp;gt;It requires to solder two wires to the M4 board PCB (the wifi module).&amp;lt;br /&amp;gt;     If you install this, it is at your OWN risk. You can also just launch hack menu from the Web UI.&amp;lt;br /&amp;gt;Instructions are here:&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;http://www.spinpoint.org/cpc/m4hack1.jpg&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;Fix file output of Maxam &amp;quot;write&amp;quot; command&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET strip &amp;quot;http://&amp;quot; from URL if used&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET freeze when URL does not resolve (2 sec DNS lookup timeout)&amp;lt;br /&amp;gt;ADDED &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET use @ symbol at start of request to silent output text of console, ie. &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget,&amp;quot;@spinpoint.org/cpc/m4info.txt&amp;quot;&amp;lt;br /&amp;gt;ADDED &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET use &amp;gt; symbol followed by filename at end of request string to output into desired file, ie. &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget,&amp;quot;spinpoint.org/cpc/m4info.txt&amp;gt;info.txt&amp;quot;&amp;lt;br /&amp;gt;ADD C_NMI command to trigger NMI/HACKMENU from z80 code for debug&amp;lt;br /&amp;gt;Fix WEB server missing HTML escape tags in files upload page.|| [[Media:M4FIRM_v205.zip | M4FIRM_v205.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.06 || Fix bug in &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP corrupting (amsdos) files when transfering from microSD to DISC.&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP issue (multiple rom upload)&amp;lt;br /&amp;gt;Fix (internal) for NMI/HACKMENU&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v206.zip | M4FIRM_v206.zip]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower ROM for CPC6128''' users, who cannot override AmsDOS (ROM 7) with the M4 ROM, using this patched lower ROM, M4 ROM must be in ROM slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatibility with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower ROM English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower ROM Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs: [[Media: Lower6128_mod-fr.zip | 6128 lower ROM French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower ROM Danish]] &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
[[M4reconf]]: A native CPC program to write romslots.bin and romconfig.bin with the romboard (to use other M4 rom configuration).&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
More info here: http://cpcwiki.eu/index.php/CPC_M4_xfer_tool&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
YANCC - Norton Commander Clone by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
File Launcher by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/filelauncher-(acmedosm4dos)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Menu program for M4 (with program &amp;amp; games download direct from the internet) by rafa32gr:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://amstrad.esy.es/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Telnet client for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/telnet-client-for-cpc/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
M4FE - A Front-end for M4&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/index.php/M4FE_-_A_front-end_for_M4&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cases/Enclosures for M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for MX4/IDC version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg131442/#msg131442&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for EDGE connector &amp;quot;straight&amp;quot; version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142416/#msg142416&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Premade case that can be cut to fit:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142773/#msg142773&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:FutureOS]]&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:Memory expansions]]&lt;br /&gt;
[[Category:Network]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=108033</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=108033"/>
				<updated>2021-05-08T04:08:39Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || M4FIRM_v100.zip&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.01 || More fixes to &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;era &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ren&amp;lt;br /&amp;gt; Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP command to copy between floppies and microSD.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.02 || Fix carry flag of CAS OUT CHAR&amp;lt;br /&amp;gt;Added tiny &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP&amp;lt;br /&amp;gt;Fixes for &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP  when using wildcard on Drive B, system protected files, excessive 1 byte on &amp;lt;2KB files, display of filename while copying &amp;amp; basic protected files.&amp;lt;br /&amp;gt;Fix C_WRITESECTOR for DSK images&amp;lt;br /&amp;gt;Fix DSK images not having entries ordered&amp;lt;br /&amp;gt;Added support for cpr dsk images&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SNA command to load snapshots from microSD card.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v202.zip | M4FIRM_v202.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.03 || Added javascript/html5 based navigation to the webinterface, with multifile upload, download, remote run, delete &amp;amp; make directory.&amp;lt;br /&amp;gt;Added ability to CD into DSK &amp;amp; CPR DSK images from the Web UI and use remote run too.&amp;lt;br /&amp;gt;Fixes with running binary files with remote run and improved by changing directory to actual remote folder aswell.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP Fix dodgy filenames, removing system attributes.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP now lists the first 32 roms. Use &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP,romnumber to display commands for a specific rom.&amp;lt;br /&amp;gt;Full amsdos header read into amsdos buffer area  (will let you retain unused part of header when copying/opening).&amp;lt;br /&amp;gt;Fix autoexec.bas launching when soft-resetting inside a .DSK&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;cd into .dsk's with write protection attribute set&amp;lt;br /&amp;gt;Fix web remote run for filenames using html encoded characters&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4help, using all screen modes&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v203.zip | M4FIRM_v203.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.04 || Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctrup and &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctr RSX for CPC plus owner, giving the ability to launch cartridge images.&amp;lt;br /&amp;gt;Fix parsing bug when file not found.&amp;lt;br /&amp;gt;Many DSK fixes, now games like Chibi Akumas show loading screen (again), games with fragmented blocks work (ie. Ninja Grannies).&amp;lt;br /&amp;gt;WEB UI, now you can pick &amp;quot;CD ON CPC&amp;quot; when using file browser or from Control, to change the directory on CPC itself.&amp;lt;br /&amp;gt;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.&amp;lt;br /&amp;gt;[..] in the file browser was changed to [BACK] and [.] to [REFRESH] to make it more obvious.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ls now supports DSK images too (will probably garbage up if using ascii art though).&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget will use attachment filename, rather than url if present.&amp;lt;br /&amp;gt;New command &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx. With this you can extract dsk images to files.     Usage &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx,&amp;quot;somedisk.dsk&amp;quot;,&amp;quot;/mypath&amp;quot; and all files are extracted to given path.&amp;lt;br /&amp;gt; CPC+ init. no longer clears screen.&amp;lt;br /&amp;gt;Fix downloading files from the WEB UI.&amp;lt;br /&amp;gt;Support 512KB cartridge images (mainly used by CPC+).&amp;lt;br /&amp;gt;Added option in web interface to downgrade romboard to 16 roms, to be able to fit 512 KB cartridges.&amp;lt;br /&amp;gt;Added option to upload &amp;amp; start cartridge images via web interface.&amp;lt;br /&amp;gt;Set DHCP hostname to netbios name.&amp;lt;br /&amp;gt;Fix crash when using run&amp;quot; without filename multiple times.&amp;lt;br /&amp;gt;Improve timings of ROMDIS.&amp;lt;br /&amp;gt;Only test IO bit 13 for rom selection (as CPC seems to do), was 0xDF&amp;lt;br /&amp;gt;Fix Reset (clear rom state)&amp;lt;br /&amp;gt;Change remote Reset, M4 reset &amp;amp; pause to acknowledge (IPC) commands or they could sometimes be ignored.&amp;lt;br /&amp;gt;Updated ESP side SDK base to latest (v2.2.0), with whatever fixes that comes with it (ie. WPA/WPA2 vulnerability issue).&amp;lt;br /&amp;gt;Fix Remote .sna for long filenames.&amp;lt;br /&amp;gt;Fix for loaders using BE7D to restore drive letter (not checking if it is 00 00).&amp;lt;br /&amp;gt;Change Amsdos workram 0-2 (ie. A700-A702) to 0 when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SD and restore when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;DISC (only if AMSDOS or PARADOS present).&amp;lt;br /&amp;gt;DSK: Do not show files with system attribute set. (makes better catart too)&amp;lt;br /&amp;gt;DSK: Show '*' after file with &amp;quot;Read Only&amp;quot; attribute set.&amp;lt;br /&amp;gt;DSK: Do not reject strange sector numbers (like AMSOFT disk protection)&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v204.zip | M4FIRM_v204.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.05 || Fix CPC+ cartridge issue with demos Eerie Forest &amp;amp; CRTC3 (and maybe others)&amp;lt;br /&amp;gt;Fix issue with certain Amsoft games&amp;lt;br /&amp;gt;Fix rom issue.&amp;lt;br /&amp;gt;Fix SNA pen 0 bug.&amp;lt;br /&amp;gt;Fix SNA screen mode bug.&amp;lt;br /&amp;gt;Added SNA v3 (compressed sna's) support.&amp;lt;br /&amp;gt;Fix for upgrading ESP firmware (do not erase if CRC does not match).&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSOFF command&amp;lt;br /&amp;gt;Added upgrade report.txt (useful for diagnosing, upgrade problems).&amp;lt;br /&amp;gt;Added Hack Menu, now you can save snapshots while playing games etc.&amp;lt;br /&amp;gt;Fix DSK file size 0 bug&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;longname / C_FSTAT bug, now (again) displaying long filenames properly.&amp;lt;br /&amp;gt;Fix Hack menu - Slowdown keyboard reading.&amp;lt;br /&amp;gt;Added Hack menu - Support full keyboard character set (QWERTY only for now).&amp;lt;br /&amp;gt;Added Hack menu - Pokes&amp;lt;br /&amp;gt;Added Hack menu - Display memory&amp;lt;br /&amp;gt;Fix Hack menu - Flaw in IM 2 detection.&amp;lt;br /&amp;gt;Fix Hack menu - Resume &amp;quot;some games&amp;quot; (Pinball Fantasies, atleast on my one CPC).&amp;lt;br /&amp;gt;Added Hack menu - AZERTY keyboard support (Huge thanks to @dxs for the painful keymap table! And thanks to @ZbyniuR for the keyboard detection method).&amp;lt;br /&amp;gt;Added ability to launch Hack Menu with an external button.&amp;lt;br /&amp;gt;It requires to solder two wires to the M4 board PCB (the wifi module).&amp;lt;br /&amp;gt;     If you install this, it is at your OWN risk. You can also just launch hack menu from the Web UI.&amp;lt;br /&amp;gt;Instructions are here:&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;http://www.spinpoint.org/cpc/m4hack1.jpg&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Fix file output of Maxam &amp;quot;write&amp;quot; command&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET strip &amp;quot;http://&amp;quot; from URL if used&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET freeze when URL does not resolve (2 sec DNS lookup timeout)&amp;lt;br /&amp;gt;ADDED &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET use @ symbol at start of request to silent output text of console, ie. &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget,&amp;quot;@spinpoint.org/cpc/m4info.txt&amp;quot;&amp;lt;br /&amp;gt;ADDED &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET use &amp;gt; symbol followed by filename at end of request string to output into desired file, ie. &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget,&amp;quot;spinpoint.org/cpc/m4info.txt&amp;gt;info.txt&amp;quot;&amp;lt;br /&amp;gt;ADD C_NMI command to trigger NMI/HACKMENU from z80 code for debug&amp;lt;br /&amp;gt;Fix WEB server missing HTML escape tags in files upload page.|| [[Media:M4FIRM_v205.zip | M4FIRM_v205.zip]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower ROM for CPC6128''' users, who cannot override AmsDOS (ROM 7) with the M4 ROM, using this patched lower ROM, M4 ROM must be in ROM slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatibility with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower ROM English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower ROM Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs: [[Media: Lower6128_mod-fr.zip | 6128 lower ROM French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower ROM Danish]] &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
[[M4reconf]]: A native CPC program to write romslots.bin and romconfig.bin with the romboard (to use other M4 rom configuration).&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
More info here: http://cpcwiki.eu/index.php/CPC_M4_xfer_tool&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
YANCC - Norton Commander Clone by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
File Launcher by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/filelauncher-(acmedosm4dos)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Menu program for M4 (with program &amp;amp; games download direct from the internet) by rafa32gr:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://amstrad.esy.es/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Telnet client for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/telnet-client-for-cpc/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
M4FE - A Front-end for M4&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/index.php/M4FE_-_A_front-end_for_M4&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cases/Enclosures for M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for MX4/IDC version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg131442/#msg131442&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for EDGE connector &amp;quot;straight&amp;quot; version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142416/#msg142416&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Premade case that can be cut to fit:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142773/#msg142773&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:FutureOS]]&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:Memory expansions]]&lt;br /&gt;
[[Category:Network]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:M4FIRM_v207.zip&amp;diff=108032</id>
		<title>File:M4FIRM v207.zip</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:M4FIRM_v207.zip&amp;diff=108032"/>
				<updated>2021-05-08T04:06:24Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: M4 Firmware v2.0.7&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;M4 Firmware v2.0.7&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:M4FIRM_v206.zip&amp;diff=108031</id>
		<title>File:M4FIRM v206.zip</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:M4FIRM_v206.zip&amp;diff=108031"/>
				<updated>2021-05-08T04:06:02Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: M4 Firmware v2.0.6&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;M4 Firmware v2.0.6&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:M4FIRM_v205.zip&amp;diff=108030</id>
		<title>File:M4FIRM v205.zip</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:M4FIRM_v205.zip&amp;diff=108030"/>
				<updated>2021-05-08T04:05:30Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: M4 Firmware v2.0.5&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;M4 Firmware v2.0.5&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:M4_Firmware_V2.0.5&amp;diff=108029</id>
		<title>File:M4 Firmware V2.0.5</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:M4_Firmware_V2.0.5&amp;diff=108029"/>
				<updated>2021-05-08T04:03:46Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=108028</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=108028"/>
				<updated>2021-05-08T04:02:28Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || M4FIRM_v100.zip&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.01 || More fixes to &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;era &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ren&amp;lt;br /&amp;gt; Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP command to copy between floppies and microSD.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.02 || Fix carry flag of CAS OUT CHAR&amp;lt;br /&amp;gt;Added tiny &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP&amp;lt;br /&amp;gt;Fixes for &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP  when using wildcard on Drive B, system protected files, excessive 1 byte on &amp;lt;2KB files, display of filename while copying &amp;amp; basic protected files.&amp;lt;br /&amp;gt;Fix C_WRITESECTOR for DSK images&amp;lt;br /&amp;gt;Fix DSK images not having entries ordered&amp;lt;br /&amp;gt;Added support for cpr dsk images&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SNA command to load snapshots from microSD card.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v202.zip | M4FIRM_v202.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.03 || Added javascript/html5 based navigation to the webinterface, with multifile upload, download, remote run, delete &amp;amp; make directory.&amp;lt;br /&amp;gt;Added ability to CD into DSK &amp;amp; CPR DSK images from the Web UI and use remote run too.&amp;lt;br /&amp;gt;Fixes with running binary files with remote run and improved by changing directory to actual remote folder aswell.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP Fix dodgy filenames, removing system attributes.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP now lists the first 32 roms. Use &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP,romnumber to display commands for a specific rom.&amp;lt;br /&amp;gt;Full amsdos header read into amsdos buffer area  (will let you retain unused part of header when copying/opening).&amp;lt;br /&amp;gt;Fix autoexec.bas launching when soft-resetting inside a .DSK&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;cd into .dsk's with write protection attribute set&amp;lt;br /&amp;gt;Fix web remote run for filenames using html encoded characters&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4help, using all screen modes&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v203.zip | M4FIRM_v203.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.04 || Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctrup and &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctr RSX for CPC plus owner, giving the ability to launch cartridge images.&amp;lt;br /&amp;gt;Fix parsing bug when file not found.&amp;lt;br /&amp;gt;Many DSK fixes, now games like Chibi Akumas show loading screen (again), games with fragmented blocks work (ie. Ninja Grannies).&amp;lt;br /&amp;gt;WEB UI, now you can pick &amp;quot;CD ON CPC&amp;quot; when using file browser or from Control, to change the directory on CPC itself.&amp;lt;br /&amp;gt;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.&amp;lt;br /&amp;gt;[..] in the file browser was changed to [BACK] and [.] to [REFRESH] to make it more obvious.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ls now supports DSK images too (will probably garbage up if using ascii art though).&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget will use attachment filename, rather than url if present.&amp;lt;br /&amp;gt;New command &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx. With this you can extract dsk images to files.     Usage &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx,&amp;quot;somedisk.dsk&amp;quot;,&amp;quot;/mypath&amp;quot; and all files are extracted to given path.&amp;lt;br /&amp;gt; CPC+ init. no longer clears screen.&amp;lt;br /&amp;gt;Fix downloading files from the WEB UI.&amp;lt;br /&amp;gt;Support 512KB cartridge images (mainly used by CPC+).&amp;lt;br /&amp;gt;Added option in web interface to downgrade romboard to 16 roms, to be able to fit 512 KB cartridges.&amp;lt;br /&amp;gt;Added option to upload &amp;amp; start cartridge images via web interface.&amp;lt;br /&amp;gt;Set DHCP hostname to netbios name.&amp;lt;br /&amp;gt;Fix crash when using run&amp;quot; without filename multiple times.&amp;lt;br /&amp;gt;Improve timings of ROMDIS.&amp;lt;br /&amp;gt;Only test IO bit 13 for rom selection (as CPC seems to do), was 0xDF&amp;lt;br /&amp;gt;Fix Reset (clear rom state)&amp;lt;br /&amp;gt;Change remote Reset, M4 reset &amp;amp; pause to acknowledge (IPC) commands or they could sometimes be ignored.&amp;lt;br /&amp;gt;Updated ESP side SDK base to latest (v2.2.0), with whatever fixes that comes with it (ie. WPA/WPA2 vulnerability issue).&amp;lt;br /&amp;gt;Fix Remote .sna for long filenames.&amp;lt;br /&amp;gt;Fix for loaders using BE7D to restore drive letter (not checking if it is 00 00).&amp;lt;br /&amp;gt;Change Amsdos workram 0-2 (ie. A700-A702) to 0 when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SD and restore when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;DISC (only if AMSDOS or PARADOS present).&amp;lt;br /&amp;gt;DSK: Do not show files with system attribute set. (makes better catart too)&amp;lt;br /&amp;gt;DSK: Show '*' after file with &amp;quot;Read Only&amp;quot; attribute set.&amp;lt;br /&amp;gt;DSK: Do not reject strange sector numbers (like AMSOFT disk protection)&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v204.zip | M4FIRM_v204.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.05 || Fix CPC+ cartridge issue with demos Eerie Forest &amp;amp; CRTC3 (and maybe others)&amp;lt;br /&amp;gt;Fix issue with certain Amsoft games&amp;lt;br /&amp;gt;Fix rom issue.&amp;lt;br /&amp;gt;Fix SNA pen 0 bug.&amp;lt;br /&amp;gt;Fix SNA screen mode bug.&amp;lt;br /&amp;gt;Added SNA v3 (compressed sna's) support.&amp;lt;br /&amp;gt;Fix for upgrading ESP firmware (do not erase if CRC does not match).&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSOFF command&amp;lt;br /&amp;gt;Added upgrade report.txt (useful for diagnosing, upgrade problems).&amp;lt;br /&amp;gt;Added Hack Menu, now you can save snapshots while playing games etc.&amp;lt;br /&amp;gt;Fix DSK file size 0 bug&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;longname / C_FSTAT bug, now (again) displaying long filenames properly.&amp;lt;br /&amp;gt;Fix Hack menu - Slowdown keyboard reading.&amp;lt;br /&amp;gt;Added Hack menu - Support full keyboard character set (QWERTY only for now).&amp;lt;br /&amp;gt;Added Hack menu - Pokes&amp;lt;br /&amp;gt;Added Hack menu - Display memory&amp;lt;br /&amp;gt;Fix Hack menu - Flaw in IM 2 detection.&amp;lt;br /&amp;gt;Fix Hack menu - Resume &amp;quot;some games&amp;quot; (Pinball Fantasies, atleast on my one CPC).&amp;lt;br /&amp;gt;Added Hack menu - AZERTY keyboard support (Huge thanks to @dxs for the painful keymap table! And thanks to @ZbyniuR for the keyboard detection method).&amp;lt;br /&amp;gt;Added ability to launch Hack Menu with an external button.&amp;lt;br /&amp;gt;It requires to solder two wires to the M4 board PCB (the wifi module).&amp;lt;br /&amp;gt;     If you install this, it is at your OWN risk. You can also just launch hack menu from the Web UI.&amp;lt;br /&amp;gt;Instructions are here:&amp;lt;br /&amp;gt;http://www.spinpoint.org/cpc/m4hack1.jpg&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Fix file output of Maxam &amp;quot;write&amp;quot; command&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET strip &amp;quot;http://&amp;quot; from URL if used&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET freeze when URL does not resolve (2 sec DNS lookup timeout)&amp;lt;br /&amp;gt;ADDED &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET use @ symbol at start of request to silent output text of console, ie. &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget,&amp;quot;@spinpoint.org/cpc/m4info.txt&amp;quot;&amp;lt;br /&amp;gt;ADDED &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET use &amp;gt; symbol followed by filename at end of request string to output into desired file, ie. &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget,&amp;quot;spinpoint.org/cpc/m4info.txt&amp;gt;info.txt&amp;quot;&amp;lt;br /&amp;gt;ADD C_NMI command to trigger NMI/HACKMENU from z80 code for debug&amp;lt;br /&amp;gt;Fix WEB server missing HTML escape tags in files upload page.|| [[Media:M4FIRM_v205.zip | M4FIRM_v205.zip]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower ROM for CPC6128''' users, who cannot override AmsDOS (ROM 7) with the M4 ROM, using this patched lower ROM, M4 ROM must be in ROM slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatibility with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower ROM English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower ROM Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs: [[Media: Lower6128_mod-fr.zip | 6128 lower ROM French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower ROM Danish]] &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
[[M4reconf]]: A native CPC program to write romslots.bin and romconfig.bin with the romboard (to use other M4 rom configuration).&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
More info here: http://cpcwiki.eu/index.php/CPC_M4_xfer_tool&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
YANCC - Norton Commander Clone by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
File Launcher by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/filelauncher-(acmedosm4dos)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Menu program for M4 (with program &amp;amp; games download direct from the internet) by rafa32gr:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://amstrad.esy.es/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Telnet client for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/telnet-client-for-cpc/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
M4FE - A Front-end for M4&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/index.php/M4FE_-_A_front-end_for_M4&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cases/Enclosures for M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for MX4/IDC version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg131442/#msg131442&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for EDGE connector &amp;quot;straight&amp;quot; version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142416/#msg142416&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Premade case that can be cut to fit:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142773/#msg142773&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:FutureOS]]&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:Memory expansions]]&lt;br /&gt;
[[Category:Network]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=108027</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=108027"/>
				<updated>2021-05-08T04:00:14Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || M4FIRM_v100.zip&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.01 || More fixes to &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;era &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ren&amp;lt;br /&amp;gt; Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP command to copy between floppies and microSD.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.02 || Fix carry flag of CAS OUT CHAR&amp;lt;br /&amp;gt;Added tiny &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP&amp;lt;br /&amp;gt;Fixes for &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP  when using wildcard on Drive B, system protected files, excessive 1 byte on &amp;lt;2KB files, display of filename while copying &amp;amp; basic protected files.&amp;lt;br /&amp;gt;Fix C_WRITESECTOR for DSK images&amp;lt;br /&amp;gt;Fix DSK images not having entries ordered&amp;lt;br /&amp;gt;Added support for cpr dsk images&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SNA command to load snapshots from microSD card.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v202.zip | M4FIRM_v202.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.03 || Added javascript/html5 based navigation to the webinterface, with multifile upload, download, remote run, delete &amp;amp; make directory.&amp;lt;br /&amp;gt;Added ability to CD into DSK &amp;amp; CPR DSK images from the Web UI and use remote run too.&amp;lt;br /&amp;gt;Fixes with running binary files with remote run and improved by changing directory to actual remote folder aswell.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP Fix dodgy filenames, removing system attributes.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP now lists the first 32 roms. Use &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP,romnumber to display commands for a specific rom.&amp;lt;br /&amp;gt;Full amsdos header read into amsdos buffer area  (will let you retain unused part of header when copying/opening).&amp;lt;br /&amp;gt;Fix autoexec.bas launching when soft-resetting inside a .DSK&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;cd into .dsk's with write protection attribute set&amp;lt;br /&amp;gt;Fix web remote run for filenames using html encoded characters&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4help, using all screen modes&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v203.zip | M4FIRM_v203.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.04 || Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctrup and &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctr RSX for CPC plus owner, giving the ability to launch cartridge images.&amp;lt;br /&amp;gt;Fix parsing bug when file not found.&amp;lt;br /&amp;gt;Many DSK fixes, now games like Chibi Akumas show loading screen (again), games with fragmented blocks work (ie. Ninja Grannies).&amp;lt;br /&amp;gt;WEB UI, now you can pick &amp;quot;CD ON CPC&amp;quot; when using file browser or from Control, to change the directory on CPC itself.&amp;lt;br /&amp;gt;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.&amp;lt;br /&amp;gt;[..] in the file browser was changed to [BACK] and [.] to [REFRESH] to make it more obvious.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ls now supports DSK images too (will probably garbage up if using ascii art though).&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget will use attachment filename, rather than url if present.&amp;lt;br /&amp;gt;New command &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx. With this you can extract dsk images to files.     Usage &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx,&amp;quot;somedisk.dsk&amp;quot;,&amp;quot;/mypath&amp;quot; and all files are extracted to given path.&amp;lt;br /&amp;gt; CPC+ init. no longer clears screen.&amp;lt;br /&amp;gt;Fix downloading files from the WEB UI.&amp;lt;br /&amp;gt;Support 512KB cartridge images (mainly used by CPC+).&amp;lt;br /&amp;gt;Added option in web interface to downgrade romboard to 16 roms, to be able to fit 512 KB cartridges.&amp;lt;br /&amp;gt;Added option to upload &amp;amp; start cartridge images via web interface.&amp;lt;br /&amp;gt;Set DHCP hostname to netbios name.&amp;lt;br /&amp;gt;Fix crash when using run&amp;quot; without filename multiple times.&amp;lt;br /&amp;gt;Improve timings of ROMDIS.&amp;lt;br /&amp;gt;Only test IO bit 13 for rom selection (as CPC seems to do), was 0xDF&amp;lt;br /&amp;gt;Fix Reset (clear rom state)&amp;lt;br /&amp;gt;Change remote Reset, M4 reset &amp;amp; pause to acknowledge (IPC) commands or they could sometimes be ignored.&amp;lt;br /&amp;gt;Updated ESP side SDK base to latest (v2.2.0), with whatever fixes that comes with it (ie. WPA/WPA2 vulnerability issue).&amp;lt;br /&amp;gt;Fix Remote .sna for long filenames.&amp;lt;br /&amp;gt;Fix for loaders using BE7D to restore drive letter (not checking if it is 00 00).&amp;lt;br /&amp;gt;Change Amsdos workram 0-2 (ie. A700-A702) to 0 when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SD and restore when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;DISC (only if AMSDOS or PARADOS present).&amp;lt;br /&amp;gt;DSK: Do not show files with system attribute set. (makes better catart too)&amp;lt;br /&amp;gt;DSK: Show '*' after file with &amp;quot;Read Only&amp;quot; attribute set.&amp;lt;br /&amp;gt;DSK: Do not reject strange sector numbers (like AMSOFT disk protection)&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v204.zip | M4FIRM_v204.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.05 || Fix CPC+ cartridge issue with demos Eerie Forest &amp;amp; CRTC3 (and maybe others)&amp;lt;br /&amp;gt;Fix issue with certain Amsoft games&amp;lt;br /&amp;gt;Fix rom issue.&amp;lt;br /&amp;gt;Fix SNA pen 0 bug.&amp;lt;br /&amp;gt;Fix SNA screen mode bug.&amp;lt;br /&amp;gt;Added SNA v3 (compressed sna's) support.&amp;lt;br /&amp;gt;Fix for upgrading ESP firmware (do not erase if CRC does not match).&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSOFF command&amp;lt;br /&amp;gt;Added upgrade report.txt (useful for diagnosing, upgrade problems).&amp;lt;br /&amp;gt;Added Hack Menu, now you can save snapshots while playing games etc.&amp;lt;br /&amp;gt;Fix DSK file size 0 bug&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;longname / C_FSTAT bug, now (again) displaying long filenames properly.&amp;lt;br /&amp;gt;Fix Hack menu - Slowdown keyboard reading.&amp;lt;br /&amp;gt;Added Hack menu - Support full keyboard character set (QWERTY only for now).&amp;lt;br /&amp;gt;Added Hack menu - Pokes&amp;lt;br /&amp;gt;Added Hack menu - Display memory&amp;lt;br /&amp;gt;Fix Hack menu - Flaw in IM 2 detection.&amp;lt;br /&amp;gt;Fix Hack menu - Resume &amp;quot;some games&amp;quot; (Pinball Fantasies, atleast on my one CPC).&amp;lt;br /&amp;gt;Added Hack menu - AZERTY keyboard support (Huge thanks to @dxs for the painful keymap table! And thanks to @ZbyniuR for the keyboard detection method).&amp;lt;br /&amp;gt;Added ability to launch Hack Menu with an external button.&amp;lt;br /&amp;gt;It requires to solder two wires to the M4 board PCB (the wifi module).&amp;lt;br /&amp;gt;     If you install this, it is at your OWN risk. You can also just launch hack menu from the Web UI.&amp;lt;br /&amp;gt;     Instructions are here:&amp;lt;br /&amp;gt;     http://www.spinpoint.org/cpc/m4hack1.jpg&amp;lt;br /&amp;gt;     http://www.spinpoint.org/cpc/m4hack2.jpg&amp;lt;br /&amp;gt;Fix file output of Maxam &amp;quot;write&amp;quot; command&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET strip &amp;quot;http://&amp;quot; from URL if used&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET freeze when URL does not resolve (2 sec DNS lookup timeout)&amp;lt;br /&amp;gt;ADDED &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET use @ symbol at start of request to silent output text of console, ie. &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget,&amp;quot;@spinpoint.org/cpc/m4info.txt&amp;quot;&amp;lt;br /&amp;gt;ADDED &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;HTTPGET use &amp;gt; symbol followed by filename at end of request string to output into desired file, ie. &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget,&amp;quot;spinpoint.org/cpc/m4info.txt&amp;gt;info.txt&amp;quot;&amp;lt;br /&amp;gt;ADD C_NMI command to trigger NMI/HACKMENU from z80 code for debug&amp;lt;br /&amp;gt;Fix WEB server missing HTML escape tags in files upload page.|| [[Media:M4FIRM_v205.zip | M4FIRM_v205.zip]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower ROM for CPC6128''' users, who cannot override AmsDOS (ROM 7) with the M4 ROM, using this patched lower ROM, M4 ROM must be in ROM slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatibility with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower ROM English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower ROM Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs: [[Media: Lower6128_mod-fr.zip | 6128 lower ROM French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower ROM Danish]] &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
[[M4reconf]]: A native CPC program to write romslots.bin and romconfig.bin with the romboard (to use other M4 rom configuration).&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
More info here: http://cpcwiki.eu/index.php/CPC_M4_xfer_tool&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
YANCC - Norton Commander Clone by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
File Launcher by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/filelauncher-(acmedosm4dos)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Menu program for M4 (with program &amp;amp; games download direct from the internet) by rafa32gr:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://amstrad.esy.es/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Telnet client for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/telnet-client-for-cpc/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
M4FE - A Front-end for M4&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/index.php/M4FE_-_A_front-end_for_M4&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cases/Enclosures for M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for MX4/IDC version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg131442/#msg131442&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for EDGE connector &amp;quot;straight&amp;quot; version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142416/#msg142416&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Premade case that can be cut to fit:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142773/#msg142773&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:FutureOS]]&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:Memory expansions]]&lt;br /&gt;
[[Category:Network]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Main_Page&amp;diff=103142</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Main_Page&amp;diff=103142"/>
				<updated>2019-04-13T17:44:13Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: Added Imperium Solo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ &lt;br /&gt;
&amp;lt;center&amp;gt;This site is an encyclopaedia on all things [[Amstrad|Amstrad]] [[CPC|CPC]] related. There are now '''[[Special:Allpages|{{NUMBEROFARTICLES}} articles]]''' about the CPC available.&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:forum.png|300px|link=http://www.cpcwiki.eu/forum]]      [[Image:Vs.png|300px|link=http://www.cpcwiki.eu/index.php/Speccy_Port]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(255, 201, 201); margin: 0px 0px 5px; padding: 0.5em 1em; background-color: rgb(255, 243, 243);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt; '''CPC Related News''' &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Dez80_intro.png|thumb|256px|[http://www.cpcwiki.eu/index.php/DEZ80 Mastering Z80 Assembler Course]]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- 12 last news only --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;height:20em; overflow:auto; border: 1px solid #FFC9C9&amp;quot;&amp;gt;&lt;br /&gt;
*13/04/19: [http://www.spinpoint.org/2019/04/13/imperium-solo/ Imperium Solo] [http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/usb-game-controllers-and-mice/msg173181/#msg173181 released!]&lt;br /&gt;
*01/03/19: [https://www.4mhz.es/operation-alexandra/ Operation Alexandra] released!&lt;br /&gt;
*13/02/19: '''[[FutureOS]]''' and applications update (Ger Docs in PDF)&lt;br /&gt;
*26/01/19: Text adventure '''''[[The Quest For The CPCine Disk of Power!]]''''' released!&lt;br /&gt;
*01/10/18: [http://www.cpcwiki.eu/forum/applications/cubeios-fat16fat32-rom-for-the-cpc's-with-xmass/ CubeMDOS / FAT16+FAT32-IDE-OS - for XMASS   *** NEW: Symbiface 3,HXC/Gotek ***]&lt;br /&gt;
*20/08/18: [https://www.usebox.net/jjm/dawn-of-kernel/ The Dawn of Kernel] released!&lt;br /&gt;
*02/07/18: Uploaded [[Media:Manual_parados_espanol.pdf|ParaDOS Manual in Spanish]] (pdf)&lt;br /&gt;
*06/06/18: We now have a list of [[Missing software]] to enhance the community's archival program&lt;br /&gt;
*31/05/18: [[Hangman|The Equalizor]] releases his [[RomboRedux|Rombo Redux]]&lt;br /&gt;
*30/04/18: [http://www.cpcwiki.eu/forum/games/galactic-tomb-is-done-!!!/ Galactic-Tomb is done !!!]&lt;br /&gt;
*28/03/18: '''[http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip LambdaSpeak RSX]'''  released&lt;br /&gt;
*23/03/18: [http://www.cpcwiki.eu/forum/applications/cubeios-fat16fat32-rom-for-the-cpc's-with-xmass/ CubeIOS - FAT16 &amp;amp; FAT32-OS for Amstrad's with XMASS]&lt;br /&gt;
*02/03/18: '''[[DEZ80]]''': Mastering Z80 Assembler Course.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;gallery widths=128px  heights=96px&amp;gt;&lt;br /&gt;
Image:Pentomino.jpg|[http://cpc.scifinet.org/ Website] - [http://www.cpcwiki.eu/forum/games/pentomino Forum]&lt;br /&gt;
Image:ImperialMahjong.png|[http://www.cpcwiki.eu/forum/games/imperial-mahjong-cargosoft-new-game/ Imperial Mahjong]&lt;br /&gt;
Image:MariaB.png|[[FutureOS]]&lt;br /&gt;
Image:Golden-tail.png|[http://www.cpcwiki.eu/forum/games/new-game-golden-tail/ Golden Tail]&lt;br /&gt;
Image:MultiPlay.jpg|[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/multiplay-mx4-expansion/ MultiPlay topic]&lt;br /&gt;
Image:M4board_front.png|[http://www.cpcwiki.eu/index.php/M4_Board CPC-WiFi]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- 6 last pictures only --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=right&amp;gt;...[[OldNews|Older News]]...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- WEIRD TABLE START --&amp;gt;&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; class=&amp;quot;FCK__ShowTableBorders&amp;quot; &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| &amp;lt;div style=&amp;quot;border: 1px solid rgb(176, 176, 176); margin: 0px 0px 5px; padding: 0.5em 1em; background-color: rgb(238, 238, 238);&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CPCWiki related ===&lt;br /&gt;
*[[CPCWiki updates]]&lt;br /&gt;
*[[Donors]]&lt;br /&gt;
&lt;br /&gt;
'''Become an Author!'''&lt;br /&gt;
&amp;lt;createbox&amp;gt; &lt;br /&gt;
default=Enter name of article to create &lt;br /&gt;
buttonlabel=Create article! &lt;br /&gt;
width=40 &lt;br /&gt;
&amp;lt;/createbox&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(176, 176, 176); margin: 0px 0px 5px; padding: 0.5em 1em; background-color: rgb(238, 238, 238);&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: right;&amp;quot;&amp;gt;&amp;lt;small&amp;gt;'''All [[Special:Wantedpages|wanted articles]]''' &amp;amp;#124; [[:Category:Stub|Extendable Stubs]] | '''[[Special:ContributionScores|List of most active contributors]]'''&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; style=&amp;quot;vertical-align: top;&amp;quot; | &amp;lt;div style=&amp;quot;border: 1px solid rgb(228, 222, 222); margin: 0px 0px 5px; padding: 0.5em 1em; background-color: rgb(249, 249, 249);&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Did you know?  ===&lt;br /&gt;
&lt;br /&gt;
*When the 664 was being developed, Sugar was already looking (and hinting publicly!) at the 6128 &lt;br /&gt;
*The [[472|CPC 472]] was a model released in Spain with an extra unaccessible 8 KB of RAM to circumvent a spanish tax that was charged on imported machines with up to 64 KB memory.&lt;br /&gt;
&lt;br /&gt;
*With a possible total amount of '''832 x 288 pixel''' (576 interlaced) the [[CPC|CPC]] was the 8 bit homecomputer with the highest screen resolution ever.&lt;br /&gt;
&lt;br /&gt;
*'''OpenOffice''' for Windows/Linux is a direct descendant of [[Star-Division|StarWriter]] for the CPC. &lt;br /&gt;
*The transfer speed of the [[CPC Booster|CPC Booster +]] serial interface is faster than a standard '''DSL connection'''.&lt;br /&gt;
&lt;br /&gt;
*[[SymbOS|SymbOS]] can handle more than '''50 times''' bigger hard discs than MS Windows 95A. &lt;br /&gt;
*[[FutureOS|FutureOS]] can load 178 KB in '''9 seconds''' from floppy disc and manages up to '''4 MB''' of RAM &lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=101329</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=101329"/>
				<updated>2018-03-21T22:38:46Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || M4FIRM_v100.zip&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.01 || More fixes to &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;era &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ren&amp;lt;br /&amp;gt; Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP command to copy between floppies and microSD.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.02 || Fix carry flag of CAS OUT CHAR&amp;lt;br /&amp;gt;Added tiny &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP&amp;lt;br /&amp;gt;Fixes for &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP  when using wildcard on Drive B, system protected files, excessive 1 byte on &amp;lt;2KB files, display of filename while copying &amp;amp; basic protected files.&amp;lt;br /&amp;gt;Fix C_WRITESECTOR for DSK images&amp;lt;br /&amp;gt;Fix DSK images not having entries ordered&amp;lt;br /&amp;gt;Added support for cpr dsk images&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SNA command to load snapshots from microSD card.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v202.zip | M4FIRM_v202.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.03 || Added javascript/html5 based navigation to the webinterface, with multifile upload, download, remote run, delete &amp;amp; make directory.&amp;lt;br /&amp;gt;Added ability to CD into DSK &amp;amp; CPR DSK images from the Web UI and use remote run too.&amp;lt;br /&amp;gt;Fixes with running binary files with remote run and improved by changing directory to actual remote folder aswell.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP Fix dodgy filenames, removing system attributes.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP now lists the first 32 roms. Use &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP,romnumber to display commands for a specific rom.&amp;lt;br /&amp;gt;Full amsdos header read into amsdos buffer area  (will let you retain unused part of header when copying/opening).&amp;lt;br /&amp;gt;Fix autoexec.bas launching when soft-resetting inside a .DSK&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;cd into .dsk's with write protection attribute set&amp;lt;br /&amp;gt;Fix web remote run for filenames using html encoded characters&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4help, using all screen modes&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v203.zip | M4FIRM_v203.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.04 || Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctrup and &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctr RSX for CPC plus owner, giving the ability to launch cartridge images.&amp;lt;br /&amp;gt;Fix parsing bug when file not found.&amp;lt;br /&amp;gt;Many DSK fixes, now games like Chibi Akumas show loading screen (again), games with fragmented blocks work (ie. Ninja Grannies).&amp;lt;br /&amp;gt;WEB UI, now you can pick &amp;quot;CD ON CPC&amp;quot; when using file browser or from Control, to change the directory on CPC itself.&amp;lt;br /&amp;gt;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.&amp;lt;br /&amp;gt;[..] in the file browser was changed to [BACK] and [.] to [REFRESH] to make it more obvious.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ls now supports DSK images too (will probably garbage up if using ascii art though).&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget will use attachment filename, rather than url if present.&amp;lt;br /&amp;gt;New command &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx. With this you can extract dsk images to files.     Usage &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx,&amp;quot;somedisk.dsk&amp;quot;,&amp;quot;/mypath&amp;quot; and all files are extracted to given path.&amp;lt;br /&amp;gt; CPC+ init. no longer clears screen.&amp;lt;br /&amp;gt;Fix downloading files from the WEB UI.&amp;lt;br /&amp;gt;Support 512KB cartridge images (mainly used by CPC+).&amp;lt;br /&amp;gt;Added option in web interface to downgrade romboard to 16 roms, to be able to fit 512 KB cartridges.&amp;lt;br /&amp;gt;Added option to upload &amp;amp; start cartridge images via web interface.&amp;lt;br /&amp;gt;Set DHCP hostname to netbios name.&amp;lt;br /&amp;gt;Fix crash when using run&amp;quot; without filename multiple times.&amp;lt;br /&amp;gt;Improve timings of ROMDIS.&amp;lt;br /&amp;gt;Only test IO bit 13 for rom selection (as CPC seems to do), was 0xDF&amp;lt;br /&amp;gt;Fix Reset (clear rom state)&amp;lt;br /&amp;gt;Change remote Reset, M4 reset &amp;amp; pause to acknowledge (IPC) commands or they could sometimes be ignored.&amp;lt;br /&amp;gt;Updated ESP side SDK base to latest (v2.2.0), with whatever fixes that comes with it (ie. WPA/WPA2 vulnerability issue).&amp;lt;br /&amp;gt;Fix Remote .sna for long filenames.&amp;lt;br /&amp;gt;Fix for loaders using BE7D to restore drive letter (not checking if it is 00 00).&amp;lt;br /&amp;gt;Change Amsdos workram 0-2 (ie. A700-A702) to 0 when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SD and restore when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;DISC (only if AMSDOS or PARADOS present).&amp;lt;br /&amp;gt;DSK: Do not show files with system attribute set. (makes better catart too)&amp;lt;br /&amp;gt;DSK: Show '*' after file with &amp;quot;Read Only&amp;quot; attribute set.&amp;lt;br /&amp;gt;DSK: Do not reject strange sector numbers (like AMSOFT disk protection)&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v204.zip | M4FIRM_v204.zip]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower rom for CPC6128''' users, who cannot override amsdos (rom 7) with M4 rom, using this patched lower rom, M4 rom must be in rom slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatiblity with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower rom English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower rom Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs : [[Media: Lower6128_mod-fr.zip | 6128 lower rom French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower rom Danish]] &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
More info here: http://cpcwiki.eu/index.php/CPC_M4_xfer_tool&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
YANCC - Norton Commander Clone by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File Launcher by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/filelauncher-(acmedosm4dos)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Menu program for M4 (with program &amp;amp; games download direct from the internet) by rafa32gr:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://amstrad.esy.es/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Telnet client for M4:&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/telnet-client-for-cpc/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cases/Enclosures for M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for MX4/IDC version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg131442/#msg131442&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for EDGE connector &amp;quot;straight&amp;quot; version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142416/#msg142416&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Premade case that can be cut to fit:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142773/#msg142773&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Hardware]][[Category:Network]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=101328</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=101328"/>
				<updated>2018-03-21T22:38:23Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || M4FIRM_v100.zip&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.01 || More fixes to &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;era &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ren&amp;lt;br /&amp;gt; Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP command to copy between floppies and microSD.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.02 || Fix carry flag of CAS OUT CHAR&amp;lt;br /&amp;gt;Added tiny &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP&amp;lt;br /&amp;gt;Fixes for &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP  when using wildcard on Drive B, system protected files, excessive 1 byte on &amp;lt;2KB files, display of filename while copying &amp;amp; basic protected files.&amp;lt;br /&amp;gt;Fix C_WRITESECTOR for DSK images&amp;lt;br /&amp;gt;Fix DSK images not having entries ordered&amp;lt;br /&amp;gt;Added support for cpr dsk images&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SNA command to load snapshots from microSD card.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v202.zip | M4FIRM_v202.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.03 || Added javascript/html5 based navigation to the webinterface, with multifile upload, download, remote run, delete &amp;amp; make directory.&amp;lt;br /&amp;gt;Added ability to CD into DSK &amp;amp; CPR DSK images from the Web UI and use remote run too.&amp;lt;br /&amp;gt;Fixes with running binary files with remote run and improved by changing directory to actual remote folder aswell.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP Fix dodgy filenames, removing system attributes.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP now lists the first 32 roms. Use &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP,romnumber to display commands for a specific rom.&amp;lt;br /&amp;gt;Full amsdos header read into amsdos buffer area  (will let you retain unused part of header when copying/opening).&amp;lt;br /&amp;gt;Fix autoexec.bas launching when soft-resetting inside a .DSK&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;cd into .dsk's with write protection attribute set&amp;lt;br /&amp;gt;Fix web remote run for filenames using html encoded characters&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4help, using all screen modes&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v203.zip | M4FIRM_v203.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.04 || Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctrup and &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctr RSX for CPC plus owner, giving the ability to launch cartridge images.&amp;lt;br /&amp;gt;Fix parsing bug when file not found.&amp;lt;br /&amp;gt;Many DSK fixes, now games like Chibi Akumas show loading screen (again), games with fragmented blocks work (ie. Ninja Grannies).&amp;lt;br /&amp;gt;WEB UI, now you can pick &amp;quot;CD ON CPC&amp;quot; when using file browser or from Control, to change the directory on CPC itself.&amp;lt;br /&amp;gt;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.&amp;lt;br /&amp;gt;[..] in the file browser was changed to [BACK] and [.] to [REFRESH] to make it more obvious.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ls now supports DSK images too (will probably garbage up if using ascii art though).&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget will use attachment filename, rather than url if present.&amp;lt;br /&amp;gt;New command &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx. With this you can extract dsk images to files.     Usage &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx,&amp;quot;somedisk.dsk&amp;quot;,&amp;quot;/mypath&amp;quot; and all files are extracted to given path.&amp;lt;br /&amp;gt; CPC+ init. no longer clears screen.&amp;lt;br /&amp;gt;Fix downloading files from the WEB UI.&amp;lt;br /&amp;gt;Support 512KB cartridge images (mainly used by CPC+).&amp;lt;br /&amp;gt;Added option in web interface to downgrade romboard to 16 roms, to be able to fit 512 KB cartridges.&amp;lt;br /&amp;gt;Added option to upload &amp;amp; start cartridge images via web interface.&amp;lt;br /&amp;gt;Set DHCP hostname to netbios name.&amp;lt;br /&amp;gt;Fix crash when using run&amp;quot; without filename multiple times.&amp;lt;br /&amp;gt;Improve timings of ROMDIS.&amp;lt;br /&amp;gt;Only test IO bit 13 for rom selection (as CPC seems to do), was 0xDF&amp;lt;br /&amp;gt;Fix Reset (clear rom state)&amp;lt;br /&amp;gt;Change remote Reset, M4 reset &amp;amp; pause to acknowledge (IPC) commands or they could sometimes be ignored.&amp;lt;br /&amp;gt;Updated ESP side SDK base to latest (v2.2.0), with whatever fixes that comes with it (ie. WPA/WPA2 vulnerability issue).&amp;lt;br /&amp;gt;Fix Remote .sna for long filenames.&amp;lt;br /&amp;gt;Fix for loaders using BE7D to restore drive letter (not checking if it is 00 00).&amp;lt;br /&amp;gt;Change Amsdos workram 0-2 (ie. A700-A702) to 0 when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SD and restore when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;DISC (only if AMSDOS or PARADOS present).&amp;lt;br /&amp;gt;DSK: Do not show files with system attribute set. (makes better catart too)&amp;lt;br /&amp;gt;DSK: Show '*' after file with &amp;quot;Read Only&amp;quot; attribute set.&amp;lt;br /&amp;gt;DSK: Do not reject strange sector numbers (like AMSOFT disk protection)&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v204.zip | M4FIRM_v204.zip]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower rom for CPC6128''' users, who cannot override amsdos (rom 7) with M4 rom, using this patched lower rom, M4 rom must be in rom slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatiblity with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower rom English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower rom Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs : [[Media: Lower6128_mod-fr.zip | 6128 lower rom French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower rom Danish]] &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
More info here: http://cpcwiki.eu/index.php/CPC_M4_xfer_tool&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
YANCC - Norton Commander Clone by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File Launcher by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/filelauncher-(acmedosm4dos)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Menu program for M4 (with program &amp;amp; games download direct from the internet) by rafa32gr:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://amstrad.esy.es/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Telnet client for M4:&lt;br /&gt;
www.cpcwiki.eu/forum/applications/telnet-client-for-cpc/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cases/Enclosures for M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for MX4/IDC version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg131442/#msg131442&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for EDGE connector &amp;quot;straight&amp;quot; version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142416/#msg142416&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Premade case that can be cut to fit:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142773/#msg142773&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Hardware]][[Category:Network]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=101290</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=101290"/>
				<updated>2018-03-14T22:37:21Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || M4FIRM_v100.zip&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.01 || More fixes to &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;era &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ren&amp;lt;br /&amp;gt; Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP command to copy between floppies and microSD.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.02 || Fix carry flag of CAS OUT CHAR&amp;lt;br /&amp;gt;Added tiny &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP&amp;lt;br /&amp;gt;Fixes for &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP  when using wildcard on Drive B, system protected files, excessive 1 byte on &amp;lt;2KB files, display of filename while copying &amp;amp; basic protected files.&amp;lt;br /&amp;gt;Fix C_WRITESECTOR for DSK images&amp;lt;br /&amp;gt;Fix DSK images not having entries ordered&amp;lt;br /&amp;gt;Added support for cpr dsk images&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SNA command to load snapshots from microSD card.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v202.zip | M4FIRM_v202.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.03 || Added javascript/html5 based navigation to the webinterface, with multifile upload, download, remote run, delete &amp;amp; make directory.&amp;lt;br /&amp;gt;Added ability to CD into DSK &amp;amp; CPR DSK images from the Web UI and use remote run too.&amp;lt;br /&amp;gt;Fixes with running binary files with remote run and improved by changing directory to actual remote folder aswell.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP Fix dodgy filenames, removing system attributes.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP now lists the first 32 roms. Use &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP,romnumber to display commands for a specific rom.&amp;lt;br /&amp;gt;Full amsdos header read into amsdos buffer area  (will let you retain unused part of header when copying/opening).&amp;lt;br /&amp;gt;Fix autoexec.bas launching when soft-resetting inside a .DSK&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;cd into .dsk's with write protection attribute set&amp;lt;br /&amp;gt;Fix web remote run for filenames using html encoded characters&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4help, using all screen modes&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v203.zip | M4FIRM_v203.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.04 || Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctrup and &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctr RSX for CPC plus owner, giving the ability to launch cartridge images.&amp;lt;br /&amp;gt;Fix parsing bug when file not found.&amp;lt;br /&amp;gt;Many DSK fixes, now games like Chibi Akumas show loading screen (again), games with fragmented blocks work (ie. Ninja Grannies).&amp;lt;br /&amp;gt;WEB UI, now you can pick &amp;quot;CD ON CPC&amp;quot; when using file browser or from Control, to change the directory on CPC itself.&amp;lt;br /&amp;gt;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.&amp;lt;br /&amp;gt;[..] in the file browser was changed to [BACK] and [.] to [REFRESH] to make it more obvious.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ls now supports DSK images too (will probably garbage up if using ascii art though).&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget will use attachment filename, rather than url if present.&amp;lt;br /&amp;gt;New command &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx. With this you can extract dsk images to files.     Usage &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx,&amp;quot;somedisk.dsk&amp;quot;,&amp;quot;/mypath&amp;quot; and all files are extracted to given path.&amp;lt;br /&amp;gt; CPC+ init. no longer clears screen.&amp;lt;br /&amp;gt;Fix downloading files from the WEB UI.&amp;lt;br /&amp;gt;Support 512KB cartridge images (mainly used by CPC+).&amp;lt;br /&amp;gt;Added option in web interface to downgrade romboard to 16 roms, to be able to fit 512 KB cartridges.&amp;lt;br /&amp;gt;Added option to upload &amp;amp; start cartridge images via web interface.&amp;lt;br /&amp;gt;Set DHCP hostname to netbios name.&amp;lt;br /&amp;gt;Fix crash when using run&amp;quot; without filename multiple times.&amp;lt;br /&amp;gt;Improve timings of ROMDIS.&amp;lt;br /&amp;gt;Only test IO bit 13 for rom selection (as CPC seems to do), was 0xDF&amp;lt;br /&amp;gt;Fix Reset (clear rom state)&amp;lt;br /&amp;gt;Change remote Reset, M4 reset &amp;amp; pause to acknowledge (IPC) commands or they could sometimes be ignored.&amp;lt;br /&amp;gt;Updated ESP side SDK base to latest (v2.2.0), with whatever fixes that comes with it (ie. WPA/WPA2 vulnerability issue).&amp;lt;br /&amp;gt;Fix Remote .sna for long filenames.&amp;lt;br /&amp;gt;Fix for loaders using BE7D to restore drive letter (not checking if it is 00 00).&amp;lt;br /&amp;gt;Change Amsdos workram 0-2 (ie. A700-A702) to 0 when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SD and restore when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;DISC (only if AMSDOS or PARADOS present).&amp;lt;br /&amp;gt;DSK: Do not show files with system attribute set. (makes better catart too)&amp;lt;br /&amp;gt;DSK: Show '*' after file with &amp;quot;Read Only&amp;quot; attribute set.&amp;lt;br /&amp;gt;DSK: Do not reject strange sector numbers (like AMSOFT disk protection)&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v204.zip | M4FIRM_v204.zip]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower rom for CPC6128''' users, who cannot override amsdos (rom 7) with M4 rom, using this patched lower rom, M4 rom must be in rom slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatiblity with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower rom English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower rom Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs : [[Media: Lower6128_mod-fr.zip | 6128 lower rom French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower rom Danish]] &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
More info here: http://cpcwiki.eu/index.php/CPC_M4_xfer_tool&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
YANCC - Norton Commander Clone by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File Launcher by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/filelauncher-(acmedosm4dos)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Menu program for M4 (with program &amp;amp; games download direct from the internet) by rafa32gr:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://amstrad.esy.es/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cases/Enclosures for M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for MX4/IDC version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg131442/#msg131442&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for EDGE connector &amp;quot;straight&amp;quot; version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142416/#msg142416&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Premade case that can be cut to fit:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142773/#msg142773&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Hardware]][[Category:Network]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=101289</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=101289"/>
				<updated>2018-03-14T22:24:47Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || M4FIRM_v100.zip&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.01 || More fixes to &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;era &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ren&amp;lt;br /&amp;gt; Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP command to copy between floppies and microSD.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.02 || Fix carry flag of CAS OUT CHAR&amp;lt;br /&amp;gt;Added tiny &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP&amp;lt;br /&amp;gt;Fixes for &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP  when using wildcard on Drive B, system protected files, excessive 1 byte on &amp;lt;2KB files, display of filename while copying &amp;amp; basic protected files.&amp;lt;br /&amp;gt;Fix C_WRITESECTOR for DSK images&amp;lt;br /&amp;gt;Fix DSK images not having entries ordered&amp;lt;br /&amp;gt;Added support for cpr dsk images&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SNA command to load snapshots from microSD card.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v202.zip | M4FIRM_v202.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.03 || Added javascript/html5 based navigation to the webinterface, with multifile upload, download, remote run, delete &amp;amp; make directory.&amp;lt;br /&amp;gt;Added ability to CD into DSK &amp;amp; CPR DSK images from the Web UI and use remote run too.&amp;lt;br /&amp;gt;Fixes with running binary files with remote run and improved by changing directory to actual remote folder aswell.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP Fix dodgy filenames, removing system attributes.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP now lists the first 32 roms. Use &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP,romnumber to display commands for a specific rom.&amp;lt;br /&amp;gt;Full amsdos header read into amsdos buffer area  (will let you retain unused part of header when copying/opening).&amp;lt;br /&amp;gt;Fix autoexec.bas launching when soft-resetting inside a .DSK&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;cd into .dsk's with write protection attribute set&amp;lt;br /&amp;gt;Fix web remote run for filenames using html encoded characters&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4help, using all screen modes&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v203.zip | M4FIRM_v203.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.04 || Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctrup and &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ctr RSX for CPC plus owner, giving the ability to launch cartridge images.&amp;lt;br /&amp;gt;Fix parsing bug when file not found.&amp;lt;br /&amp;gt;Many DSK fixes, now games like Chibi Akumas show loading screen (again), games with fragmented blocks work (ie. Ninja Grannies).&amp;lt;br /&amp;gt;WEB UI, now you can pick &amp;quot;CD ON CPC&amp;quot; when using file browser or from Control, to change the directory on CPC itself.&amp;lt;br /&amp;gt;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.&amp;lt;br /&amp;gt;[..] in the file browser was changed to [BACK] and [.] to [REFRESH] to make it more obvious.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ls now supports DSK images too (will probably garbage up if using ascii art though).&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;httpget will use attachment filename, rather than url if present.&amp;lt;br /&amp;gt;New command &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx. With this you can extract dsk images to files.     Usage &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dskx,&amp;quot;somedisk.dsk&amp;quot;,&amp;quot;/mypath&amp;quot; and all files are extracted to given path.&amp;lt;br /&amp;gt; CPC+ init. no longer clears screen.&amp;lt;br /&amp;gt;Fix downloading files from the WEB UI.&amp;lt;br /&amp;gt;Support 512KB cartridge images (mainly used by CPC+).&amp;lt;br /&amp;gt;Added option in web interface to downgrade romboard to 16 roms, to be able to fit 512 KB cartridges as well.&amp;lt;br /&amp;gt;Added option to upload &amp;amp; start cartridge images via web interface.&amp;lt;br /&amp;gt;Added option in web interface to downgrade romboard to 16 roms, to be able to fit 512 KB cartridges aswell.&amp;lt;br /&amp;gt;Added option to upload &amp;amp; start cartridge images via web interface.&amp;lt;br /&amp;gt;Set DHCP hostname to netbios name.&amp;lt;br /&amp;gt;Fix crash when using run&amp;quot; without filename multiple times.&amp;lt;br /&amp;gt;Improve timings of ROMDIS.&amp;lt;br /&amp;gt;Only test IO bit 13 for rom selection (as CPC seems to do), was 0xDF&amp;lt;br /&amp;gt;Fix Reset (clear rom state)&amp;lt;br /&amp;gt;Change remote Reset, M4 reset &amp;amp; pause to acknowledge (IPC) commands or they could sometimes be ignored.&amp;lt;br /&amp;gt;Updated ESP side SDK base to latest (v2.2.0), with whatever fixes that comes with it (ie. WPA/WPA2 vulnerability issue).&amp;lt;br /&amp;gt;Fix Remote .sna for long filenames.&amp;lt;br /&amp;gt;Fix for loaders using BE7D to restore drive letter (not checking if it is 00 00).&amp;lt;br /&amp;gt;Change Amsdos workram 0-2 (ie. A700-A702) to 0 when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SD and restore when using &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;DISC (only if AMSDOS or PARADOS present).&amp;lt;br /&amp;gt;DSK: Do not show files with system attribute set. (makes better catart too)&amp;lt;br /&amp;gt;DSK: Show '*' after file with &amp;quot;Read Only&amp;quot; attribute set.&amp;lt;br /&amp;gt;DSK: Do not reject strange sector numbers (like AMSOFT disk protection)&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v204.zip | M4FIRM_v204.zip]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower rom for CPC6128''' users, who cannot override amsdos (rom 7) with M4 rom, using this patched lower rom, M4 rom must be in rom slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatiblity with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower rom English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower rom Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs : [[Media: Lower6128_mod-fr.zip | 6128 lower rom French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower rom Danish]] &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
More info here: http://cpcwiki.eu/index.php/CPC_M4_xfer_tool&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
YANCC - Norton Commander Clone by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File Launcher by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/filelauncher-(acmedosm4dos)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Menu program for M4 (with program &amp;amp; games download direct from the internet) by rafa32gr:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://amstrad.esy.es/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cases/Enclosures for M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for MX4/IDC version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg131442/#msg131442&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for EDGE connector &amp;quot;straight&amp;quot; version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142416/#msg142416&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Premade case that can be cut to fit:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142773/#msg142773&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Hardware]][[Category:Network]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:M4FIRM_v204.zip&amp;diff=101288</id>
		<title>File:M4FIRM v204.zip</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:M4FIRM_v204.zip&amp;diff=101288"/>
				<updated>2018-03-14T22:20:10Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: v2.0.4 release version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;v2.0.4 release version&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=99324</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=99324"/>
				<updated>2017-09-20T17:31:51Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || M4FIRM_v100.zip&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.01 || More fixes to &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;era &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ren&amp;lt;br /&amp;gt; Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP command to copy between floppies and microSD.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.02 || Fix carry flag of CAS OUT CHAR&amp;lt;br /&amp;gt;Added tiny &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP&amp;lt;br /&amp;gt;Fixes for &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP  when using wildcard on Drive B, system protected files, excessive 1 byte on &amp;lt;2KB files, display of filename while copying &amp;amp; basic protected files.&amp;lt;br /&amp;gt;Fix C_WRITESECTOR for DSK images&amp;lt;br /&amp;gt;Fix DSK images not having entries ordered&amp;lt;br /&amp;gt;Added support for cpr dsk images&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SNA command to load snapshots from microSD card.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v202.zip | M4FIRM_v202.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.03 || Added javascript/html5 based navigation to the webinterface, with multifile upload, download, remote run, delete &amp;amp; make directory.&amp;lt;br /&amp;gt;Added ability to CD into DSK &amp;amp; CPR DSK images from the Web UI and use remote run too.&amp;lt;br /&amp;gt;Fixes with running binary files with remote run and improved by changing directory to actual remote folder aswell.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP Fix dodgy filenames, removing system attributes.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP now lists the first 32 roms. Use &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP,romnumber to display commands for a specific rom.&amp;lt;br /&amp;gt;Full amsdos header read into amsdos buffer area  (will let you retain unused part of header when copying/opening).&amp;lt;br /&amp;gt;Fix autoexec.bas launching when soft-resetting inside a .DSK&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;cd into .dsk's with write protection attribute set&amp;lt;br /&amp;gt;Fix web remote run for filenames using html encoded characters&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4help, using all screen modes&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v203.zip | M4FIRM_v203.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.04b6 || Added |ctrup and |ctr RSX for CPC plus owner, giving the ability to launch cartridge images.&amp;lt;br /&amp;gt;Fix parsing bug when file not found&amp;lt;br /&amp;gt;Many DSK fixes, now games like Chibi Akumas show loading screen (again), games with fragmented blocks work (ie. Ninja Grannies)&amp;lt;br /&amp;gt;WEB UI, now you can pick &amp;quot;CD ON CPC&amp;quot; when using file browser or from Control, to change the directory on CPC itself&amp;lt;br /&amp;gt;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.&amp;lt;br /&amp;gt; [..] in the file browser was changed to [BACK] and [.] to [REFRESH] to make it more obvious.&amp;lt;br /&amp;gt;|ls now supports DSK images too (will probably garbage up if using ascii art tho).&amp;lt;br /&amp;gt; |httpget will use attachment filename, rather than url if present.&amp;lt;br /&amp;gt;New command |dskx. With this you can extract dsk images to files.     Usage |dskx,&amp;quot;somedisk.dsk&amp;quot;,&amp;quot;/mypath&amp;quot; and all files are extracted to given path.&amp;lt;br /&amp;gt; CPC+ init. no longer clears screen.&amp;lt;br /&amp;gt; || &lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.04b7 || Fix downloading files from the WEB UI || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower rom for CPC6128''' users, who cannot override amsdos (rom 7) with M4 rom, using this patched lower rom, M4 rom must be in rom slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatiblity with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower rom English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower rom Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs : [[Media: Lower6128_mod-fr.zip | 6128 lower rom French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower rom Danish]] &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
More info here: http://cpcwiki.eu/index.php/CPC_M4_xfer_tool&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
YANCC - Norton Commander Clone by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File Launcher by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/filelauncher-(acmedosm4dos)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Menu program for M4 (with program &amp;amp; games download direct from the internet) by rafa32gr:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://amstrad.esy.es/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cases/Enclosures for M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for MX4/IDC version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg131442/#msg131442&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for EDGE connector &amp;quot;straight&amp;quot; version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142416/#msg142416&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Premade case that can be cut to fit:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142773/#msg142773&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=99323</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=99323"/>
				<updated>2017-09-20T17:31:28Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || M4FIRM_v100.zip&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.01 || More fixes to &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;era &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ren&amp;lt;br /&amp;gt; Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP command to copy between floppies and microSD.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.02 || Fix carry flag of CAS OUT CHAR&amp;lt;br /&amp;gt;Added tiny &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP&amp;lt;br /&amp;gt;Fixes for &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP  when using wildcard on Drive B, system protected files, excessive 1 byte on &amp;lt;2KB files, display of filename while copying &amp;amp; basic protected files.&amp;lt;br /&amp;gt;Fix C_WRITESECTOR for DSK images&amp;lt;br /&amp;gt;Fix DSK images not having entries ordered&amp;lt;br /&amp;gt;Added support for cpr dsk images&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SNA command to load snapshots from microSD card.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v202.zip | M4FIRM_v202.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.03 || Added javascript/html5 based navigation to the webinterface, with multifile upload, download, remote run, delete &amp;amp; make directory.&amp;lt;br /&amp;gt;Added ability to CD into DSK &amp;amp; CPR DSK images from the Web UI and use remote run too.&amp;lt;br /&amp;gt;Fixes with running binary files with remote run and improved by changing directory to actual remote folder aswell.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP Fix dodgy filenames, removing system attributes.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP now lists the first 32 roms. Use &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP,romnumber to display commands for a specific rom.&amp;lt;br /&amp;gt;Full amsdos header read into amsdos buffer area  (will let you retain unused part of header when copying/opening).&amp;lt;br /&amp;gt;Fix autoexec.bas launching when soft-resetting inside a .DSK&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;cd into .dsk's with write protection attribute set&amp;lt;br /&amp;gt;Fix web remote run for filenames using html encoded characters&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4help, using all screen modes&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v203.zip | M4FIRM_v203.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.04b6 || Added |ctrup and |ctr RSX for CPC plus owner, giving the ability to launch cartridge images.&amp;lt;br /&amp;gt;Fix parsing bug when file not found&amp;lt;br /&amp;gt;Many DSK fixes, now games like Chibi Akumas show loading screen (again), games with fragmented blocks work (ie. Ninja Grannies)&amp;lt;br /&amp;gt;WEB UI, now you can pick &amp;quot;CD ON CPC&amp;quot; when using file browser or from Control, to change the directory on CPC itself&amp;lt;br /&amp;gt;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.&amp;lt;br /&amp;gt; [..] in the file browser was changed to [BACK] and [.] to [REFRESH] to make it more obvious.&amp;lt;br /&amp;gt;|ls now supports DSK images too (will probably garbage up if using ascii art tho).&amp;lt;br /&amp;gt; |httpget will use attachment filename, rather than url if present.&amp;lt;br /&amp;gt;New command |dskx. With this you can extract dsk images to files.     Usage |dskx,&amp;quot;somedisk.dsk&amp;quot;,&amp;quot;/mypath&amp;quot; and all files are extracted to given path.&amp;lt;br /&amp;gt; CPC+ init. no longer clears screen.&amp;lt;br /&amp;gt; || &lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.05b7 || Fix downloading files from the WEB UI || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower rom for CPC6128''' users, who cannot override amsdos (rom 7) with M4 rom, using this patched lower rom, M4 rom must be in rom slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatiblity with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower rom English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower rom Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs : [[Media: Lower6128_mod-fr.zip | 6128 lower rom French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower rom Danish]] &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
More info here: http://cpcwiki.eu/index.php/CPC_M4_xfer_tool&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
YANCC - Norton Commander Clone by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File Launcher by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/filelauncher-(acmedosm4dos)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Menu program for M4 (with program &amp;amp; games download direct from the internet) by rafa32gr:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://amstrad.esy.es/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cases/Enclosures for M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for MX4/IDC version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg131442/#msg131442&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for EDGE connector &amp;quot;straight&amp;quot; version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142416/#msg142416&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Premade case that can be cut to fit:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142773/#msg142773&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=98205</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=98205"/>
				<updated>2017-06-06T10:08:59Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: Added M4 firmware v2.0.3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || M4FIRM_v100.zip&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.01 || More fixes to &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;era &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ren&amp;lt;br /&amp;gt; Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP command to copy between floppies and microSD.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.02 || Fix carry flag of CAS OUT CHAR&amp;lt;br /&amp;gt;Added tiny &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP&amp;lt;br /&amp;gt;Fixes for &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP  when using wildcard on Drive B, system protected files, excessive 1 byte on &amp;lt;2KB files, display of filename while copying &amp;amp; basic protected files.&amp;lt;br /&amp;gt;Fix C_WRITESECTOR for DSK images&amp;lt;br /&amp;gt;Fix DSK images not having entries ordered&amp;lt;br /&amp;gt;Added support for cpr dsk images&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SNA command to load snapshots from microSD card.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v202.zip | M4FIRM_v202.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.03 || Added javascript/html5 based navigation to the webinterface, with multifile upload, download, remote run, delete &amp;amp; make directory.&amp;lt;br /&amp;gt;Added ability to CD into DSK &amp;amp; CPR DSK images from the Web UI and use remote run too.&amp;lt;br /&amp;gt;Fixes with running binary files with remote run and improved by changing directory to actual remote folder aswell.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP Fix dodgy filenames, removing system attributes.&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP now lists the first 32 roms. Use &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP,romnumber to display commands for a specific rom.&amp;lt;br /&amp;gt;Full amsdos header read into amsdos buffer area  (will let you retain unused part of header when copying/opening).&amp;lt;br /&amp;gt;Fix autoexec.bas launching when soft-resetting inside a .DSK&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;cd into .dsk's with write protection attribute set&amp;lt;br /&amp;gt;Fix web remote run for filenames using html encoded characters&amp;lt;br /&amp;gt;Fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4help, using all screen modes&amp;lt;br /&amp;gt; || [[Media:M4FIRM_v203.zip | M4FIRM_v203.zip]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower rom for CPC6128''' users, who cannot override amsdos (rom 7) with M4 rom, using this patched lower rom, M4 rom must be in rom slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatiblity with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower rom English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower rom Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs : [[Media: Lower6128_mod-fr.zip | 6128 lower rom French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower rom Danish]] &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
More info here: http://cpcwiki.eu/index.php/CPC_M4_xfer_tool&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
YANCC - Norton Commander Clone by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File Launcher by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/filelauncher-(acmedosm4dos)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Menu program for M4 (with program &amp;amp; games download direct from the internet) by rafa32gr:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://amstrad.esy.es/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cases/Enclosures for M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for MX4/IDC version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg131442/#msg131442&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for EDGE connector &amp;quot;straight&amp;quot; version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142416/#msg142416&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Premade case that can be cut to fit:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142773/#msg142773&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:M4FIRM_v203.zip&amp;diff=98204</id>
		<title>File:M4FIRM v203.zip</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:M4FIRM_v203.zip&amp;diff=98204"/>
				<updated>2017-06-06T10:05:04Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: M4 Firmware v2.0.3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;M4 Firmware v2.0.3&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=97757</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=97757"/>
				<updated>2017-04-03T09:07:48Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || M4FIRM_v100.zip&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.01 || More fixes to &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;era &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ren&amp;lt;br /&amp;gt; Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP command to copy between floppies and microSD.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.02 || Fix carry flag of CAS OUT CHAR&amp;lt;br /&amp;gt;Added tiny &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP&amp;lt;br /&amp;gt;Fixes for &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP  when using wildcard on Drive B, system protected files, excessive 1 byte on &amp;lt;2KB files, display of filename while copying &amp;amp; basic protected files.&amp;lt;br /&amp;gt;Fix C_WRITESECTOR for DSK images&amp;lt;br /&amp;gt;Fix DSK images not having entries ordered&amp;lt;br /&amp;gt;Added support for cpr dsk images&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SNA command to load snapshots from microSD card.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v202.zip | M4FIRM_v202.zip]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower rom for CPC6128''' users, who cannot override amsdos (rom 7) with M4 rom, using this patched lower rom, M4 rom must be in rom slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatiblity with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower rom English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower rom Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs : [[Media: Lower6128_mod-fr.zip | 6128 lower rom French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower rom Danish]] &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
More info here: http://cpcwiki.eu/index.php/CPC_M4_xfer_tool&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
YANCC - Norton Commander Clone by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File Launcher by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/filelauncher-(acmedosm4dos)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Menu program for M4 (with program &amp;amp; games download direct from the internet) by rafa32gr:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://amstrad.esy.es/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cases/Enclosures for M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for MX4/IDC version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg131442/#msg131442&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
3D printer case for EDGE connector &amp;quot;straight&amp;quot; version:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142416/#msg142416&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Premade case that can be cut to fit:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg142773/#msg142773&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=97744</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=97744"/>
				<updated>2017-03-30T00:09:23Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || M4FIRM_v100.zip&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.01 || More fixes to &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;era &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ren&amp;lt;br /&amp;gt; Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP command to copy between floppies and microSD.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.02 || Fix carry flag of CAS OUT CHAR&amp;lt;br /&amp;gt;Added tiny &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP&amp;lt;br /&amp;gt;Fixes for &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP  when using wildcard on Drive B, system protected files, excessive 1 byte on &amp;lt;2KB files, display of filename while copying &amp;amp; basic protected files.&amp;lt;br /&amp;gt;Fix C_WRITESECTOR for DSK images&amp;lt;br /&amp;gt;Fix DSK images not having entries ordered&amp;lt;br /&amp;gt;Added support for cpr dsk images&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SNA command to load snapshots from microSD card.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v202.zip | M4FIRM_v202.zip]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower rom for CPC6128''' users, who cannot override amsdos (rom 7) with M4 rom, using this patched lower rom, M4 rom must be in rom slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatiblity with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower rom English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower rom Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs : [[Media: Lower6128_mod-fr.zip | 6128 lower rom French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower rom Danish]] &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
More info here: http://cpcwiki.eu/index.php/CPC_M4_xfer_tool&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
YANCC - Norton Commander Clone by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File Launcher by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/filelauncher-(acmedosm4dos)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Menu program for M4 (with program &amp;amp; games download direct from the internet) by rafa32gr:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://amstrad.esy.es/&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=97535</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=97535"/>
				<updated>2017-03-14T15:31:40Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || M4FIRM_v100.zip&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.01 || More fixes to &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;era &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ren&amp;lt;br /&amp;gt; Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP command to copy between floppies and microSD.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.02 || Fix carry flag of CAS OUT CHAR&amp;lt;br /&amp;gt;Added tiny &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP&amp;lt;br /&amp;gt;Fixes for &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP  when using wildcard on Drive B, system protected files, excessive 1 byte on &amp;lt;2KB files, display of filename while copying &amp;amp; basic protected files.&amp;lt;br /&amp;gt;Fix C_WRITESECTOR for DSK images&amp;lt;br /&amp;gt;Fix DSK images not having entries ordered&amp;lt;br /&amp;gt;Added support for cpr dsk images&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SNA command to load snapshots from microSD card.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v202.zip | M4FIRM_v202.zip]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower rom for CPC6128''' users, who cannot override amsdos (rom 7) with M4 rom, using this patched lower rom, M4 rom must be in rom slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatiblity with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower rom English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower rom Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs : [[Media: Lower6128_mod-fr.zip | 6128 lower rom French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower rom Danish]] &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
More info here: http://cpcwiki.eu/index.php/CPC_M4_xfer_tool&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
YANCC - Norton Commander Clone by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File Launcher by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/filelauncher-(acmedosm4dos)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=CPC_M4_xfer_tool&amp;diff=97534</id>
		<title>CPC M4 xfer tool</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=CPC_M4_xfer_tool&amp;diff=97534"/>
				<updated>2017-03-14T15:27:41Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Command-line tool that allow to send files and receive from an [[M4 Board]]. Possibility to add an AMSDOS header too.&lt;br /&gt;
&lt;br /&gt;
Current version : 2.0.0&lt;br /&gt;
&lt;br /&gt;
Windows Executable : [[Media:Xfer.zip|Xfer.zip]]&lt;br /&gt;
&lt;br /&gt;
Repository : https://github.com/M4Duke/cpcxfer&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
!Command&lt;br /&gt;
!Effect&lt;br /&gt;
|-&lt;br /&gt;
|| xfer -u ipaddr file path opt || Upload file, opt 0: no header add, 1: add ascii header&lt;br /&gt;
|-&lt;br /&gt;
|| xfer -d ipaddr file path opt || Download file, opt 0: leave header, 1: remove header&lt;br /&gt;
|-&lt;br /&gt;
|| xfer -f ipaddr file slot name || Upload rom&lt;br /&gt;
|-&lt;br /&gt;
|| xfer -x ipaddr path+file || Execute remote file&lt;br /&gt;
|-&lt;br /&gt;
|| xfer -s ipaddr  || Reset CPC&lt;br /&gt;
|-&lt;br /&gt;
|| xfer -r ipaddr || Reboot M4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example : If your m4 has IP number 192.168.1.11, the following code will run zynaps from given directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xfer -x 192.168.1.11 /games/zynaps/zynapsex.bas&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Want to leave it again you could reset the cpc by: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xfer -s 192.168.1.11&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In a development environment the idea is you ie. do the following to your makefile :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xfer -u 192.168.1.11 mycode.bin / 0&amp;lt;/code&amp;gt; (to upload the file after compilation, additional files could be uploaded too)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xfer -x 192.168.1.11 /mycode.bin&amp;lt;/code&amp;gt; (to execute it)&lt;br /&gt;
&lt;br /&gt;
Remote files can be basic/binary or SNA (emulator snapshot format).&lt;br /&gt;
&lt;br /&gt;
If you are deving roms, they can be remotely uploaded too : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xfer -f 192.168.1.11 yancc.rom 3 &amp;quot;YANCC&amp;quot;&amp;lt;/code&amp;gt; (upload to slot 3)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xfer -f 192.168.1.11 launcher.rom 4 &amp;quot;The Launcher&amp;quot;&amp;lt;/code&amp;gt; (upload to slot 4)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xfer -r 192.168.1.11&amp;lt;/code&amp;gt; (Reboot M4 for changes to take effect)&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=97533</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=97533"/>
				<updated>2017-03-14T14:55:00Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || M4FIRM_v100.zip&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.01 || More fixes to &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;era &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ren&amp;lt;br /&amp;gt; Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP command to copy between floppies and microSD.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.02 || Fix carry flag of CAS OUT CHAR&amp;lt;br /&amp;gt;Added tiny &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;M4HELP&amp;lt;br /&amp;gt;Fixes for &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP  when using wildcard on Drive B, system protected files, excessive 1 byte on &amp;lt;2KB files, display of filename while copying &amp;amp; basic protected files.&amp;lt;br /&amp;gt;Fix C_WRITESECTOR for DSK images&amp;lt;br /&amp;gt;Fix DSK images not having entries ordered, support cpr dsk images, FIX fcp for drive B.&amp;lt;br /&amp;gt;Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;SNA command to load snapshots from microSD card.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v202.zip | M4FIRM_v202.zip]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower rom for CPC6128''' users, who cannot override amsdos (rom 7) with M4 rom, using this patched lower rom, M4 rom must be in rom slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatiblity with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower rom English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower rom Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs : [[Media: Lower6128_mod-fr.zip | 6128 lower rom French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower rom Danish]] &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
More info here: http://cpcwiki.eu/index.php/CPC_M4_xfer_tool&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
YANCC - Norton Commander Clone by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File Launcher by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/filelauncher-(acmedosm4dos)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:M4FIRM_v202.zip&amp;diff=97532</id>
		<title>File:M4FIRM v202.zip</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:M4FIRM_v202.zip&amp;diff=97532"/>
				<updated>2017-03-14T14:50:11Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: M4 Firmware v2.0.2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;M4 Firmware v2.0.2&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=97441</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=97441"/>
				<updated>2017-03-08T05:06:09Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || M4FIRM_v100.zip&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.01 || More fixes to &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;era &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ren&amp;lt;br /&amp;gt; Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP command to copy between floppies and microSD.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower rom for CPC6128''' users, who cannot override amsdos (rom 7) with M4 rom, using this patched lower rom, M4 rom must be in rom slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatiblity with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower rom English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower rom Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs : [[Media: Lower6128_mod-fr.zip | 6128 lower rom French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower rom Danish]] &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
More info here: http://cpcwiki.eu/index.php/CPC_M4_xfer_tool&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
YANCC - Norton Commander Clone by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File Launcher by SOS, compatible with M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/applications/filelauncher-(acmedosm4dos)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=97154</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=97154"/>
				<updated>2017-02-05T13:33:41Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || [[Media:M4FIRM_v100.zip | M4FIRM_v100.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.01 || More fixes to &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;era &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ren&amp;lt;br /&amp;gt; Added &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;FCP command to copy between floppies and microSD.&amp;lt;br /&amp;gt;|| [[Media:M4FIRM_v201.zip | M4FIRM_v201.zip]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower rom for CPC6128''' users, who cannot override amsdos (rom 7) with M4 rom, using this patched lower rom, M4 rom must be in rom slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatiblity with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower rom English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower rom Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs : [[Media: Lower6128_mod-fr.zip | 6128 lower rom French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower rom Danish]] &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Media: Xfer 1.0.1.zip | xfer (v1.0.1) ]] : Command-line tool that allow to send files and receive from an M4 Board. Possibility to add an AMSDOS header too.&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:M4FIRM_v201.zip&amp;diff=97153</id>
		<title>File:M4FIRM v201.zip</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:M4FIRM_v201.zip&amp;diff=97153"/>
				<updated>2017-02-05T13:29:58Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=I/O_Port_Summary&amp;diff=97059</id>
		<title>I/O Port Summary</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=I/O_Port_Summary&amp;diff=97059"/>
				<updated>2017-01-18T08:48:51Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* I/O Port Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of all known I/O ports of the Amstrad CPC, including all [[Peripherals]]. For a list showing only the built-in standard addresses see [[Default I/O Port Summary]]. The original list of I/O ports was taken from the [[FutureOS]] handbook.&lt;br /&gt;
&lt;br /&gt;
== I/O Port Summary ==&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|'''I/O'''||'''Decoded as'''||'''Port'''||'''Read'''||'''Write''' &lt;br /&gt;
|-&lt;br /&gt;
|#1C00||%x0xxxx00 xxxxxxxx||[[Dk'tronics Lightpen]] faulty mirror of #BCXX [[CRTC]] Index|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#1F00||%x0xxxx11 xxxxxxxx||[[Dk'tronics Lightpen]] faulty mirror of #BFXX [[CRTC]] Data In|| Read || -&lt;br /&gt;
|-&lt;br /&gt;
|#78XX||?||[[CPC4MB|4Mb Memory extension]]||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#79XX||?||[[CPC4MB|4Mb Memory extension]]||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#7AXX||?||[[CPC4MB|4Mb Memory extension]]||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#7BXX||?||[[CPC4MB|4Mb Memory extension]]||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#7CXX||?||[[CPC4MB|4Mb Memory extension]]||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#7CXX||%0xxxxx00 xxxxxxxx||[[Aleste 520EX]] RAM Mapper page 0 (extended &amp;quot;Gate Array 3&amp;quot;)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#7DXX||?||[[CPC4MB|4Mb Memory extension]]||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#7DXX||%0xxxxx01 xxxxxxxx||[[Aleste 520EX]] RAM Mapper page 1 (extended &amp;quot;Gate Array 3&amp;quot;)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#7EXX||?||[[CPC4MB|4Mb Memory extension]]||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#7EXX||%0xxxxx10 xxxxxxxx||[[Aleste 520EX]] RAM Mapper page 2 (extended &amp;quot;Gate Array 3&amp;quot;)||Read||Write&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|#7EXX||%0xxxxxx0 xxxxxxxx||[[Y-MEM]] 512K RAM Expansion part||Read||Write&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|#7FXX||?||[[CPC4MB|4Mb Memory extension]]||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#7FXX||%0xxxxx11 xxxxxxxx||[[Aleste 520EX]] RAM Mapper page 3 (extended &amp;quot;Gate Array 3&amp;quot;)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|#7FXX||%0xxxxxx1 xxxxxxxx||[[X-MEM]] 512K RAM Expansion part||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#7FXX||?||[[Dk'tronics memory expansion]]||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#7FXX||?||[[Dobbertin Memory Expansion]]||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#7FXX||%01xxxxxx xxxxxxxx||[[Gate Array]]||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#7FXX||%0xxxxxxx xxxxxxxx||[[PAL16L8]] extension to [[Gate Array]] for 128K RAM banking||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#BCXX||%x0xxxx00 xxxxxxxx||6845 [[CRTC]] Index|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#BDXX||%x0xxxx01 xxxxxxxx||6845 [[CRTC]] Data Out|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#BEXX||%x0xxxx10 xxxxxxxx||6845 [[CRTC]] Status (as far as supported)||Read|| - &lt;br /&gt;
|-&lt;br /&gt;
|#BFXX||%x0xxxx11 xxxxxxxx||6845 [[CRTC]] Data In (as far as supported)||Read|| - &lt;br /&gt;
|-&lt;br /&gt;
|#DFXX||%xx0xxxxx xxxxxxxx||[[Upper ROM Bank Number]] (as decoded within CPC664, CPC6128, 464+, 6128+, decoding in ROM expansions may be different)|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#ECXX||%xxx0xx00 xxxxxxxx||[[KC Compact]] CIO Port B (timer)|| Read ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#EDXX||%xxx0xx01 xxxxxxxx||[[KC Compact]] CIO Port C (timer)|| Read ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#EEXX||%xxx0xx10 xxxxxxxx||[[KC Compact]] CIO Control|| Read ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#EEXX||%xxx0xxx0 xxxxxxxx||[[Aleste 520EX]] USART 8251 (RS232/Mouse) Data|| Read ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#EFXX||%xxx0xx11 xxxxxxxx||[[KC Compact]] CIO Port A (Bi-drectional [[Printer Port]])|| Read ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#EFXX||%xxx0xxx1 xxxxxxxx||[[Aleste 520EX]] USART 8251 (RS232/Mouse) Control/Status|| Read ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#EFXX||%xxx0xxxx xxxxxxxx||[[Printer Port]]|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F0E0||?||[[Draysoft Doubler]] External Tape Data Input (Bit5)||Read|| - &lt;br /&gt;
|-&lt;br /&gt;
|#F4XX||%xxxx0x00 xxxxxxxx||[[8255]] PIO Port A ([[PSG]] Data)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F5XX||%xxxx0x01 xxxxxxxx||[[8255]] PIO Port B (Vsync,[[Printer Port|PrnBusy]],Tape,etc.)||Read|| - &lt;br /&gt;
|-&lt;br /&gt;
|#F6XX||%xxxx0x10 xxxxxxxx||[[8255]] PIO Port C (KeybRow,Tape,[[PSG]] Control)|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F7XX||%xxxx0x11 xxxxxxxx||[[8255]] PIO Control-Register|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F880-#F88F||%1111 100x 1000 xxxx||[[PlayCity]] Expansion CTC channels and YMZ data|| - || Write &lt;br /&gt;
|-&lt;br /&gt;
|#F890-#F89F||%1111 100x 1001 xxxx||[[MultiPlay]] Expansion|| Read || - &lt;br /&gt;
|-&lt;br /&gt;
|#F8A0-#F8AF||%1111 1000 1010 xxxx||[[ACME]] WIP Expansion|| ? || ? &lt;br /&gt;
|-&lt;br /&gt;
|#F8B0||?||[[VIDI digitizer|Vidi-CPC Video-Digitiser]], CRTC Index||?||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8B1||?||[[VIDI digitizer|Vidi-CPC Video-Digitiser]], CRTC Data||?||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8DC||?||[[CPCI RS232 Interface|CPCI Serial Interface]] MC6850 Control/Status||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8DD||?||[[CPCI RS232 Interface|CPCI Serial Interface]] MC6850 Data||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8E0||?||[[DHCP MIDI Interface]]||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8E0||%11111000 11100000||[[Schneider RS232 Interface]] Z80-STI Indirect Data Register||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8E1||%11111000 11100001||[[Schneider RS232 Interface]] Z80-STI General Purpose I/O Data Register||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8E2||%11111000 11100010||[[Schneider RS232 Interface]] Z80-STI Interrupt Pending Register B (unused)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8E2||?||[[Universeller EPROM Programmer 4004|Dobbertin Eprommer 4003]]||?||?&lt;br /&gt;
|-&lt;br /&gt;
|#F8E3||%11111000 11100011||[[Schneider RS232 Interface]] Z80-STI Interrupt Pending Register A (unused)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8E3||?||[[Universeller EPROM Programmer 4004|Dobbertin Eprommer 4003]]||?||?&lt;br /&gt;
|-&lt;br /&gt;
|#F8E4||%11111000 11100100||[[Schneider RS232 Interface]] Z80-STI Interrupt in-Service Register B (unused)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8E4||?||[[Universeller EPROM Programmer 4004|Dobbertin Eprommer 4003]]||?||?&lt;br /&gt;
|-&lt;br /&gt;
|#F8E5||%11111000 11100101||[[Schneider RS232 Interface]] Z80-STI Interrupt in-Service Register A (unused)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8E6||%11111000 11100110||[[Schneider RS232 Interface]] Z80-STI Interrupt Mask Register B (unused)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8E6||?||Port A - [[IDE8255]]||?||?&lt;br /&gt;
|-&lt;br /&gt;
|#F8E7||%11111000 11100111||[[Schneider RS232 Interface]] Z80-STI Interrupt Mask Register A (unused)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8E7||?||Port C - [[IDE8255]]||?||?&lt;br /&gt;
|-&lt;br /&gt;
|#F8E8||%11111000 11101000||[[Schneider RS232 Interface]] Z80-STI Indirect Index and Interrupt Vector Register||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8E8||?||[[Music Machine]] Interrupt Sel|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8E9||%11111000 11101001||[[Schneider RS232 Interface]] Z80-STI Timers A and B Control Register (unused)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8EA||%11111000 11101010||[[Schneider RS232 Interface]] Z80-STI Timer B Data Register (unused)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8EB||%11111000 11101011||[[Schneider RS232 Interface]] Z80-STI Timer A Data Register (unused)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8EC||%11111000 11101100||[[Schneider RS232 Interface]] Z80-STI USART Control Register||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8EC||?||[[Music Machine]] ACIA Control|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8ED||?||[[Music Machine]] ACIA Data Write|| - || Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8ED||%11111000 11101101||[[Schneider RS232 Interface]] Z80-STI Receiver Status Register||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8EE||?||[[Music Machine]] ACIA Status||Read|| - &lt;br /&gt;
|-&lt;br /&gt;
|#F8EE||%11111000 11101110||[[Schneider RS232 Interface]] Z80-STI Transmitter Status Register||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8EF||%11111000 11101111||[[Schneider RS232 Interface]] Z80-STI USART Data Register||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8EF||?||[[Music Machine]] ACIA Data Read||Read|| - &lt;br /&gt;
|-&lt;br /&gt;
|#F8FX||%xxxxx0xx 1111NNNx||[[Maplins 8bit Input Port]] and [[Maplins Weather Satellite Receiver]]||Read|| -&lt;br /&gt;
|-&lt;br /&gt;
|#F8F0||?||[[Music Machine]] DAC Write|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8F2||?||[[EMR MIDI Interface]]|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8F2||?||[[Universeller EPROM Programmer 4004|Dobbertin Eprommer 4003]]||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|#F8F2||?||[[EMR MIDI Interface]]||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8F4||?||[[Music Machine]] ADC Read||Read|| - &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|#F8F5||?||[[ARA Video Digitizer]] - Read Sync Signal (bit0)||Read|| - &lt;br /&gt;
|-&lt;br /&gt;
|#F8F8||?||[[Music Machine]] ADC Start|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8F8||?||[[ANTA 64K Memory Expansion]] ANTA 64k.3 latch||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8FF||%1111100x 111xxxxx||[[CPCISA by Yarek|CPCISA control port]]|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F8FF||N/A||[[Peripheral Soft Reset]] (MC_BOOT_PROGRAM and MC_START_PROGRAM do OUT [F8FF],FF)|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F980-#F98F||%1111 100x 1000 xxxx||[[PlayCity]] Expansion CTC channels (mirror) and YMZ registers|| - || Write&lt;br /&gt;
|-&lt;br /&gt;
|#F990-#F99F||%1111 100x 1001 xxxx||[[MultiPlay]] Expansion (mirror)|| Read || - &lt;br /&gt;
|-&lt;br /&gt;
|#F9A0-#F9AF||%1111 1001 1010 xxxx||[[ACME]] WIP Expansion|| ? || ? &lt;br /&gt;
|-&lt;br /&gt;
|#F9B0||?||[[VIDI digitizer|Vidi-CPC Video-Digitiser]], Config (W) and Capture Data (R)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F9D0||%11111000 11010000||[[Sid|SwinSID part of SONIQUE Sound Board WIP]] by [[User:DaDMaN|DaDMaN]] SwinSID1 + SwinSID2 DATA (MONO Mode / 3 Channels)||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F9D1||%11111000 11010001||[[Sid|SwinSID part of SONIQUE Sound Board WIP]] by [[User:DaDMaN|DaDMaN]] SwinSID1 (LEFT) DATA (STEREO Mode / 6 Channels)||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F9D2||%11111000 11010010||[[Sid|SwinSID part of SONIQUE Sound Board WIP]] by [[User:DaDMaN|DaDMaN]] SwinSID2 (RIGHT) DATA (STEREO Mode / 6 Channels)||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F9DC||?||[[Panda Electronics Communications Interface Unit]] PPI Port A - 8bit Printer data||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F9DD||?||[[Panda Electronics Communications Interface Unit]] PPI Port B - 8bit general purpose I/O port||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F9DE||?||[[Panda Electronics Communications Interface Unit]] PPI Port C - Handshake (bit0=Strobe.out, Bit5=Busy.in)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F9DF||?||[[Panda Electronics Communications Interface Unit]] PPI Control - 8bit Printer data|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F9E6||?||Port B - [[IDE8255]]||?||?&lt;br /&gt;
|-&lt;br /&gt;
|#F9E7||?||RS Port - [[IDE8255]]||?||?&lt;br /&gt;
|-&lt;br /&gt;
|#F9F5||?||[[ARA Video Digitizer]] - Reset 10bit Config Value|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F9F7||?||[[Grafpad II|Hegotron grafpad II]]||?||?&lt;br /&gt;
|-&lt;br /&gt;
|#F9FC - #F9FE||?||[[Otten &amp;amp; Fecht 1 MB RAM-Disc]]||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#F9FF||?||[[Grafpad II|Hegotron grafpad II]]||?||?&lt;br /&gt;
|-&lt;br /&gt;
|#FA7E||%xxxxx0x0 0xxxxxxx||Floppy Motor Control (for [[765 FDC]])|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FABC||%xxxxx0x0 10xxxx00||[[Aleste 520EX]] EXTPORT with CS53: Forward PPI Port A to 8253 Timer 0|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FABD||%xxxxx0x0 10xxxx01||[[Aleste 520EX]] EXTPORT with CS53: Forward PPI Port A to 8253 Timer 1|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FABE||%xxxxx0x0 10xxxx10||[[Aleste 520EX]] EXTPORT with CS53: Forward PPI Port A to 8253 Timer 2|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FABF||%xxxxx0x0 10xxxx11||[[Aleste 520EX]] EXTPORT with CS53: Forward PPI Port A to 8253 Control|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FABF||%xxxxx0x0 10xxxxxx||[[Aleste 520EX]] EXTPORT (config for internal hardware)|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FAD0||%11111010 11010000||[[Sid|SwinSID part of SONIQUE Sound Board WIP]] by [[User:DaDMaN|DaDMaN]] Select SID (1&amp;amp;2) Register MONO mode||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FAD1||%11111010 11010001||[[Sid|SwinSID part of SONIQUE Sound Board WIP]] by [[User:DaDMaN|DaDMaN]] Select SID1 Register||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FAD2||%11111010 11010010||[[Sid|SwinSID part of SONIQUE Sound Board WIP]] by [[User:DaDMaN|DaDMaN]] Select SID2 Register||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FADC||?||[[Amstrad Serial Interface]] Z80-SIO / DART port A Data Register||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FADC||?||[[RS-232 para Amstrad|MHT Ingenieros RS232 para Amstrad]] 8251 USART data|| Read || Write&lt;br /&gt;
|-&lt;br /&gt;
|#FADD||?||[[Amstrad Serial Interface]] Z80-SIO / DART port A Control Reg.||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FADD||?||[[RS-232 para Amstrad|MHT Ingenieros RS232 para Amstrad]] 8251 USART control/status|| Read || Write&lt;br /&gt;
|-&lt;br /&gt;
|#FADE||?||[[Amstrad Serial Interface]] Z80-SIO / DART port B Data Register||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FADF||?||[[Amstrad Serial Interface]] Z80-SIO / DART port B Control Reg.||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FADF||?||[[Cirkit serial interface]] 8251 UART data register||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FAE6||?||Port A - [[IDE8255]]||?||?&lt;br /&gt;
|-&lt;br /&gt;
|#FAE7||?||Port C - [[IDE8255]]||?||?&lt;br /&gt;
|-&lt;br /&gt;
|#FAEE||?||[[Amstrad SSA-1 Speech Synthesizer]] (faulty mirror used by included RSX driver)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FAEF||%xxxxx0x0 xxx0xxxx||[[Kempston Mouse]] - Mouse Buttons||Read||-&lt;br /&gt;
|-&lt;br /&gt;
|#FAF5||?||[[ARA Video Digitizer]] - Read Capture Data||Read|| - &lt;br /&gt;
|-&lt;br /&gt;
|#FAF5||?||[[ARA Video Digitizer]] - Increment 10bit Config Value|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FB7E||%xxxxx0x1 0xxxxxx0||[[765 FDC]] (internal) Status Register||Read|| - &lt;br /&gt;
|-&lt;br /&gt;
|#FB7F||%xxxxx0x1 0xxxxxx1||[[765 FDC]] (internal) Data Register||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBBD||?||Ram select mode [[Vortex Expansions RAM card|Vortex SP512]]||?||Write &lt;br /&gt;
|-&lt;br /&gt;
|#FBDC||?||[[Amstrad Serial Interface]] 8253 Timer counter 0||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBDC||?||[[RS-232 para Amstrad|MHT Ingenieros RS232 para Amstrad]] 8253 timer 0 (transmit baudrate)|| Read || Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBDD||?||[[Amstrad Serial Interface]] 8253 Timer counter 1||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBDD||?||[[RS-232 para Amstrad|MHT Ingenieros RS232 para Amstrad]] 8253 timer 1 (receive baudrate)|| Read || Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBDE||?||[[Amstrad Serial Interface]] 8253 Timer counter 2||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBDE||?||[[RS-232 para Amstrad|MHT Ingenieros RS232 para Amstrad]] 8253 timer 2 (used as 1ms timer)|| Read || Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBDF||?||[[Amstrad Serial Interface]] 8253 Timer Modus Select|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBDF||?||[[RS-232 para Amstrad|MHT Ingenieros RS232 para Amstrad]] 8253 timer 0-2 control|| - || Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBDF||?||[[Cirkit serial interface]] 8251 UART status/control register||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBxx+0||?||CPCI [[Real Time Clock]] Index (DIY)||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBxx+1||?||CPCI [[Real Time Clock]] Data (DIY)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBE0||?||[[Dk'tronics Real Time Clock]] - Z80 PIO Port A Data (HD146818P RTC Data bus)|| Read || Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBE0||?||[[Dobbertin Harddisc]] Data Port||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBE1||?||[[Dk'tronics Real Time Clock]] - Z80 PIO Port B Data (General Purpose 8bit I/O Port)|| Read || Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBE1||?||[[Dobbertin Harddisc]] Status, Reset||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBE2||?||[[Dk'tronics Real Time Clock]] - Z80 PIO Port A Control||?|| Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBE2||?||[[Dobbertin Harddisc]] Select, Configuration||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBE3||?||[[Dk'tronics Real Time Clock]] - Z80 PIO Port B Control||?|| Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBE3||?||[[Dobbertin Harddisc]] DMA, Interrupt||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBE4||?||[[Dobbertin Harddisc]] Reset||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBE6||?||Port B - [[IDE8255]]||?||?&lt;br /&gt;
|-&lt;br /&gt;
|#FBE7||?||RS Port - [[IDE8255]]||?||?&lt;br /&gt;
|-&lt;br /&gt;
|#FBE7||?||[[ACU Real Time Clock (DIY)]] Z80-PIO Data In/Out Port A ||Read||Write &lt;br /&gt;
|-&lt;br /&gt;
|#FBE8||?||[[Dk'tronics Real Time Clock]] &amp;quot;4bit latch&amp;quot; (details unknown)|| ? || Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBE8||?||[[KDS_Electronics_Serial_Interface|KDS RS232]] 8253 Timer0 (RX Clock)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBE9||?||[[KDS_Electronics_Serial_Interface|KDS RS232]] 8253 Timer1 (TX Clock)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBEA||?||[[KDS_Electronics_Serial_Interface|KDS RS232]] 8253 Timer2 (not used)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBEB||?||[[KDS_Electronics_Serial_Interface|KDS RS232]] 8253 Timer Control||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBEC||?||[[KDS_Electronics_Serial_Interface|KDS RS232]] 6850 (reversed bit-order) Control||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBEC||?||[[PDS development system]] Z80 PIO Port A Data (8bit data to/from PC)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBED||?||[[KDS_Electronics_Serial_Interface|KDS RS232]] 6850 (reversed bit-order) TX Data||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBED||?||[[PDS development system]] Z80 PIO Port B Data (handshake to/from PC)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBEE||?||[[PDS development system]] Z80 PIO Port A Control||?||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBEE||?||[[Amstrad SSA-1 Speech Synthesizer]]||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBEE||%xxxxx0x1 xxx0xxx0||[[Kempston Mouse]] - 8bit X position||Read||-&lt;br /&gt;
|-&lt;br /&gt;
|#FBEE||?||[[KDS_Electronics_Serial_Interface|KDS RS232]] 6850 (reversed bit-order) Status||Read||-&lt;br /&gt;
|-&lt;br /&gt;
|#FBEF||?||[[PDS development system]] Z80 PIO Port B Control||?||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBEF||%xxxxx0x1 xxx0xxx1||[[Kempston Mouse]] - 8bit Y position||Read||-&lt;br /&gt;
|-&lt;br /&gt;
|#FBEF||?||[[KDS_Electronics_Serial_Interface|KDS RS232]] 6850 (reversed bit-order) RX Data||Read||-&lt;br /&gt;
|-&lt;br /&gt;
|#FBEF||?||[[ACU Real Time Clock (DIY)]] Z80-PIO Data In/Out Port B ||Read||Write &lt;br /&gt;
|-&lt;br /&gt;
|#FBF0 - #FBFF||?||[[Otten &amp;amp; Fecht 1 MB RAM-Disc]]||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBF0||%xxxx1011 1111xxxx||[[AMRAM2]]||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBF0||%xxxxx011 1111xxx0||[[AMSSIO]] Serial Interface MC6850 Control/Status Register||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBF1||%xxxxx011 1111xxx1||[[AMSSIO]] Serial Interface MC6850 Data Register||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBF5||?||[[ARA Video Digitizer]] - Invoke Video Capture|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBF6||?||[[Vortex Disc Drives]] 765 FDC (Vortex,ext) Status Register||Read|| - &lt;br /&gt;
|-&lt;br /&gt;
|#FBF7||?||[[Vortex Disc Drives]] 765 FDC (Vortex,ext) Data Register||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBF7||?||[[ACU Real Time Clock (DIY)]] Z80-PIO Configure Port A ||Read||Write &lt;br /&gt;
|-&lt;br /&gt;
|#FBF8||%11111011 11111000||[[8bit Printer Port (Amstrad Action)]] Strobe/Busy||Read||Write &lt;br /&gt;
|-&lt;br /&gt;
|#FBF9||%11111011 11111001||[[8bit Printer Port (Amstrad Action)]] Data|| - ||Write &lt;br /&gt;
|-&lt;br /&gt;
|#FBFE||?||[[Amstrad Magnum Phaser|Magnum Light Phaser]]||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBFE||?||[[Dart Scanner for DMP-Printers]]||Read||?&lt;br /&gt;
|-&lt;br /&gt;
|#FBFE||?||[[Dk'tronics Speech Synthesizer]]||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBFE||?||[[TMPI speech synthesizer]] Data Register ||||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FBFF||?||[[TMPI speech synthesizer]] Command/Status Register ||Read||Write &lt;br /&gt;
|-&lt;br /&gt;
|#FBFF||?||[[ACU Real Time Clock (DIY)]] Z80-PIO Configure Port B ||Read||Write &lt;br /&gt;
|-&lt;br /&gt;
|#FC00 - #FDFF||%1111110x xxxxxxxx||[[CPCISA by Yarek|CPCISA]] 16bits mode high byte latch||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FC00||?||[[M4 Board]] ACK/KICK|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FC5C||?||[[Z80-SIO dual ports RS232 interface for CPC (French)|French DIY Dual Port RS232]] - Baudrate Selection|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FC7C||?||[[Z80-SIO dual ports RS232 interface for CPC (French)|French DIY Dual Port RS232]] - Z80-SIO Channel A Data||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FC7D||?||[[Z80-SIO dual ports RS232 interface for CPC (French)|French DIY Dual Port RS232]] - Z80-SIO Channel A Control/Status||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FC7E||?||[[Z80-SIO dual ports RS232 interface for CPC (French)|French DIY Dual Port RS232]] - Z80-SIO Channel B Data||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FC7F||?||[[Z80-SIO dual ports RS232 interface for CPC (French)|French DIY Dual Port RS232]] - Z80-SIO Channel B Control/Status||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FCE6||?||Port A - [[IDE8255]]||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FCE7||?||Port C - [[IDE8255]]||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FD00 - #FD3F||%11111101 00xxxxxx||[[Programming:SYMBiFACE_II|SYMBiFACE II]]||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FDE6||?||Port B - [[IDE8255]]||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FDE7||?||RS Port - [[IDE8255]]||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FE00||?||[[M4 Board]] Data|| - ||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FE00 - #FFFF||%1111111x xxxxxxxx||[[CPCISA by Yarek|CPCISA]] I/O access (low byte)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FE80 - #FE81||%111111101000000x||[[Albireo]] CH376 controller||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FEB0 - #FEB7||%1111111010110xxx||[[Albireo]] serial port||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FEE6||?||Port A - [[IDE8255]]||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FEE7||?||Port C - [[IDE8255]]||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FEE8||%11111110 1110100x||[[Multiface II]] - Enable Multiface II ROM/RAM||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FEEA||%11111110 1110110x||[[Multiface II]] - Disable Multiface II ROM/RAM||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FEF0 - #FEF7||%11111110 11110xxx||[[CPC-CompactFlash]] - IDE registers||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FFXX||%11111111 xxxxxxxx||[[CPC Booster]] (XX=#00..#28 are used now)||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FFXX||%11111111 xxxxxxxx||[[Amdrum]] (unsigned 8bit DAC)||-||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FFE6||?||Port B - [[IDE8255]]||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|#FFE7||?||RS Port - [[IDE8255]]||Read||Write&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Memory Mapped I/O Ports ==&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|'''Mem'''||'''Decoded as'''||'''Port'''||'''Read'''||'''Write''' &lt;br /&gt;
|-&lt;br /&gt;
|#4000-7FFF||%01xxxxxx xxxxxxxx||[[ASIC]] - CPC+/GX4000 registers|| Read || Write&lt;br /&gt;
|-&lt;br /&gt;
|#C00?||%11000000 0000000x||[[Dobbertin Smart Watch]] data read (A0=data)|| Read || -&lt;br /&gt;
|-&lt;br /&gt;
|#C00?||%11000000 0000000x||[[Dobbertin Smart Watch]] data write (A0=data)|| Read || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== More Ports ==&lt;br /&gt;
&lt;br /&gt;
Some more I/O addresses (which aren't included in the above list yet) are here:&lt;br /&gt;
* [[Schneiderware Summary]]&lt;br /&gt;
&lt;br /&gt;
== Other I/O Ports ==&lt;br /&gt;
&lt;br /&gt;
A number of peripherals connect to the joystick/printer ports, and so, they do not include &amp;quot;own&amp;quot; I/O addresses. This includes hardware ''other than joysticks/printers'' - for example, mice, robots, audio devices, and simple network adapters. For a more complete list, see corresponding sections on [[Digital Joysticks|Digital Joystick]] and [[Printer Port]] pages.&lt;br /&gt;
&lt;br /&gt;
Aside from I/O addresses, there are some other important I/O signals, for example: [[NMI]] or [[External Interrupt|INT]].&lt;br /&gt;
&lt;br /&gt;
== CPCISA ports for ISA cards ==&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Device''||''PC I/O range''||''CPCISA high''||''CPCISA low'' &lt;br /&gt;
|-&lt;br /&gt;
|IDE1||1F0h..1F7h||#FDF0..#FDF7||#FFF0..#FFF7&lt;br /&gt;
|-&lt;br /&gt;
|IDE2||170h..177h||#FD70..#FD77||#FF70..#FF77&lt;br /&gt;
|-&lt;br /&gt;
|Joystick||201h..201h||#FC01..#FC01||#FE01..#FE01&lt;br /&gt;
|-&lt;br /&gt;
|Ethernet||210h..21Fh||#FC10..#FC1F||#FE10..#FE1F&lt;br /&gt;
|-&lt;br /&gt;
|Sound Blaster||220h..23Fh||#FC20..#FC3F||#FE20..#FE3F&lt;br /&gt;
|-&lt;br /&gt;
|LPT2||278h..27Fh||#FC78..#FC7F||#FE78..#FE7F&lt;br /&gt;
|-&lt;br /&gt;
|COM1||2F8h..2FFh||#FCF8..#FCFF||#FEF8..#FEFF&lt;br /&gt;
|-&lt;br /&gt;
|MIDI'||300h..301h||#FD00..#FD01||#FF00..#FF01&lt;br /&gt;
|-&lt;br /&gt;
|MIDI||330h..331h||#FD30..#FD31||#FF30..#FF31&lt;br /&gt;
|-&lt;br /&gt;
|Sound control||370h..371h||#FD70..#FD71||#FF70..#FF71&lt;br /&gt;
|-&lt;br /&gt;
|FDC1||372h..377h||#FD72..#FD77||#FF72..#FF77&lt;br /&gt;
|-&lt;br /&gt;
|LPT1||378h..37Fh||#FD78..#FD7F||#FF78..#FF7F&lt;br /&gt;
|-&lt;br /&gt;
|Sound AD-LIB||388h..38Bh||#FD88..#FD8B||#FF88..#FF8B&lt;br /&gt;
|-&lt;br /&gt;
|VGA||3B0h..3BBh||#FDB0..#FDBB||#FFB0..#FFBB&lt;br /&gt;
|-&lt;br /&gt;
|LPT3||3BCh..3BFh||#FDBC..#FDBF||#FFBC..#FFBF&lt;br /&gt;
|-&lt;br /&gt;
|VGA||3C0h..3DFh||#FDC0..#FDCF||#FFC0..#FFCF&lt;br /&gt;
|-&lt;br /&gt;
|FDC1||3F2h..3F7h||#FDF2..#FDF7||#FFF2..#FFF7&lt;br /&gt;
|-&lt;br /&gt;
|COM1||3F8h..3FFh||#FDF8..#FDFF||#FFF8..#FFFF&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== CPCISA ports for ISA motherboard ==&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Device''||''PC I/O range''||''CPCISA high''||''CPCISA low'' &lt;br /&gt;
|-&lt;br /&gt;
|DMA||000h..00Fh||#FC00..#FC0F||#FE00..#FE0F&lt;br /&gt;
|-&lt;br /&gt;
|interrupt||020h..03Fh||#FC20..#FC3F||#FE20..#FE3F&lt;br /&gt;
|-&lt;br /&gt;
|counter||040h..05Fh||#FC40..#FC5F||#FE40..#FE5F&lt;br /&gt;
|-&lt;br /&gt;
|keyboard||060h..067h||#FC60..#FC67||#FE60..#FE67&lt;br /&gt;
|-&lt;br /&gt;
|RTC||070h..071h||#FC70..#FC71||#FE70..#FE71&lt;br /&gt;
|-&lt;br /&gt;
|DMA||080h..08Fh||#FC80..#FC8F||#FE80..#FE8F&lt;br /&gt;
|-&lt;br /&gt;
|DMA||0C0h..0DFh||#FCC0..#FCDF||#FEC0..#FEDF&lt;br /&gt;
|-&lt;br /&gt;
|interrupt||0A0h..0BFh||#FCA0..#FCBF||#FEA0..#FEBF&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]] [[Category:Stub]][[Category:CPC Internal Components]][[Category:Hardware]][[Category:Electronic Component]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Main_Page&amp;diff=97055</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Main_Page&amp;diff=97055"/>
				<updated>2017-01-15T12:41:36Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: Added M4 firmware v2.0.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ &lt;br /&gt;
&amp;lt;center&amp;gt;This site is an encyclopaedia on all things [[Amstrad|Amstrad]] [[CPC|CPC]] related. There are now '''[[Special:Allpages|{{NUMBEROFARTICLES}} articles]]''' about the CPC available.&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:forum.png|300px|link=http://www.cpcwiki.eu/forum]]      [[Image:Vs.png|300px|link=http://www.cpcwiki.eu/index.php/Speccy_Port]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(255, 201, 201); margin: 0px 0px 5px; padding: 0.5em 1em; background-color: rgb(255, 243, 243);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt; '''CPC Related News''' &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Defence.jpg|thumb|256px|[http://cpc.scifinet.org/ Website] - [http://www.cpcwiki.eu/forum/games/new-game-defence Forum]]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;height:20em; overflow:auto; border: 1px solid #FFC9C9&amp;quot;&amp;gt;&lt;br /&gt;
*15/01/17: '''M4 board''' firmware v2.0.0 released. [http://www.cpcwiki.eu/index.php/M4_Board#Firmware]&lt;br /&gt;
*07/01/17: Update to new game [http://www.cpcwiki.eu/forum/games/chibi-akuma(s)-out-now!/ Chibi Akuma(s) (チビ悪魔)] '''[http://www.chibiakumas.com/download/ Inet]'''&lt;br /&gt;
*14/11/16: '''[[FutureOS]]''' important update released. &lt;br /&gt;
*04/11/16: Magica released '''[http://www.cpcwiki.eu/forum/games/new-game-magica/ Forum]'''&lt;br /&gt;
*10/10/16: '''[http://julien-nevo.com/mahjong/ Imperial Mahjong]''' released. [http://www.cpcwiki.eu/forum/games/imperial-mahjong-cargosoft-new-game/ Forum]&lt;br /&gt;
*01/10/16: '''[[Get The Cash]]''' released.&lt;br /&gt;
*13/09/16: '''M4 board''' firmware v1.0.9 released. [http://www.cpcwiki.eu/index.php/M4_Board#Firmware]&lt;br /&gt;
*12/09/16: '''Cyber Chicken''' on DSK released. [http://www.cc-cpc.de/site/cpage/4]&lt;br /&gt;
*08/09/16: '''Norton-Commander-Clone released. [http://www.cpcwiki.eu/forum/applications/yet-another-norton-commander-clone Forum]&lt;br /&gt;
*11/08/16: '''[http://cpc.scifinet.org/ Defence]''' released. A new game for your CPC. [http://www.cpcwiki.eu/forum/games/new-game-defence Forum]&lt;br /&gt;
*11/08/16: '''Orgams &amp;quot;Codigo Con CPC&amp;quot;''' released. [http://orgams.wikidot.com/releases Download page]&lt;br /&gt;
*10/08/16: '''[http://www.cpcwiki.eu/forum/games/new-game-golden-tail/ Golden tail]''' released. &lt;br /&gt;
*17/07/16: '''[[ACE (Emulator)|ACE]]''' 1.12 released. [http://aminet.net/package/misc/emu/ACE-MorphOS Download]&lt;br /&gt;
*16/05/16: '''MultiPlay''' add a [http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/multiplay-mx4-expansion/ dual joystick/mouse] to your CPC.&lt;br /&gt;
*07/05/16: '''[[M4_Board]]''' - a WLAN-Adapter and more for CPC - is released. [http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/ M4 Board] &lt;br /&gt;
*04/04/16: '''[[Dobbertin Smart Watch]]''' as new batch released by dxs&lt;br /&gt;
*22/03/16: '''[http://www.cpcwiki.eu/forum/games/new-game-a-prelude-to-chaos-cpc/ A Prelude to Chaos]''' by EgoTrip released!&lt;br /&gt;
*15/03/16: '''[http://unpasadomejor.wix.com/amstradeterno Amstrad Eterno]''' event in Spain announced for April the 16th!&lt;br /&gt;
*05/01/16: '''[[WinApe|WinAPE]]''' 2.0 Beta 2 released. [http://www.winape.net/ Download]&lt;br /&gt;
*20/12/15: After more than one decade Overlanders released [http://www.pouet.net/prod.php?which=66699/ Points Barres]&lt;br /&gt;
*27/11/15: New game released! [http://www.cpcwiki.eu/forum/games/new-game-the-return-of-traxtor/ The Return of Traxtor]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- 12 last news only --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;gallery widths=128px  heights=96px&amp;gt;&lt;br /&gt;
Image:ImperialMahjong.png|[http://www.cpcwiki.eu/forum/games/imperial-mahjong-cargosoft-new-game/ Imperial Mahjong]&lt;br /&gt;
Image:MariaB.png|[[FutureOS]]&lt;br /&gt;
Image:Golden-tail.png|[http://www.cpcwiki.eu/forum/games/new-game-golden-tail/ Golden Tail]&lt;br /&gt;
Image:MultiPlay.jpg|[http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/multiplay-mx4-expansion/ MultiPlay topic]&lt;br /&gt;
Image:M4board_front.png|[http://www.cpcwiki.eu/index.php/M4_Board CPC-WiFi]&lt;br /&gt;
Image:Prelude-Release-SS01.png|[http://www.cpcwiki.eu/forum/games/new-game-a-prelude-to-chaos-cpc/ A Prelude to Chaos]&lt;br /&gt;
Image:RTCdxs.jpeg|[[Dobbertin Smart Watch]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- 6 last pictures only --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=right&amp;gt;...[[OldNews|Older News]]...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- WEIRD TABLE START --&amp;gt;&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; class=&amp;quot;FCK__ShowTableBorders&amp;quot; &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| &amp;lt;div style=&amp;quot;border: 1px solid rgb(176, 176, 176); margin: 0px 0px 5px; padding: 0.5em 1em; background-color: rgb(238, 238, 238);&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CPCWiki related ===&lt;br /&gt;
*[[CPCWiki updates]]&lt;br /&gt;
*[[Donors]]&lt;br /&gt;
&lt;br /&gt;
'''Become an Author!'''&lt;br /&gt;
&amp;lt;createbox&amp;gt; &lt;br /&gt;
default=Enter name of article to create &lt;br /&gt;
buttonlabel=Create article! &lt;br /&gt;
width=40 &lt;br /&gt;
&amp;lt;/createbox&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(176, 176, 176); margin: 0px 0px 5px; padding: 0.5em 1em; background-color: rgb(238, 238, 238);&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: right;&amp;quot;&amp;gt;&amp;lt;small&amp;gt;'''All [[Special:Wantedpages|wanted articles]]''' &amp;amp;#124; [[:Category:Stub|Extendable Stubs]] | '''[[Special:ContributionScores|List of most active contributors]]'''&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; style=&amp;quot;vertical-align: top;&amp;quot; | &amp;lt;div style=&amp;quot;border: 1px solid rgb(228, 222, 222); margin: 0px 0px 5px; padding: 0.5em 1em; background-color: rgb(249, 249, 249);&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Did you know?  ===&lt;br /&gt;
&lt;br /&gt;
*When the 664 was being developed, Sugar was already looking (and hinting publicly!) at the 6128 &lt;br /&gt;
*The [[472|CPC 472]] was a model released in Spain with an extra unaccessible 8 KB of RAM to circumvent a spanish tax that was charged on imported machines with up to 64 KB memory.&lt;br /&gt;
&lt;br /&gt;
*With a possible total amount of '''832 x 288 pixel''' (576 interlaced) the [[CPC|CPC]] was the 8 bit homecomputer with the highest screen resolution ever.&lt;br /&gt;
&lt;br /&gt;
*'''OpenOffice''' for Windows/Linux is a direct descendant of [[Star-Division|StarWriter]] for the CPC. &lt;br /&gt;
*The transfer speed of the [[CPC Booster|CPC Booster +]] serial interface is faster than a standard '''DSL connection'''.&lt;br /&gt;
&lt;br /&gt;
*[[SymbOS|SymbOS]] can handle more than '''50 times''' bigger hard discs than MS Windows 95A. &lt;br /&gt;
*[[FutureOS|FutureOS]] can load 178 KB in '''9 seconds''' from floppy disc and manages up to '''4 MB''' of RAM &lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=97054</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=97054"/>
				<updated>2017-01-15T12:38:08Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || [[Media:M4FIRM_v100.zip | M4FIRM_v100.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 2.00 || Stability fixes for netapi.&amp;lt;br/&amp;gt;Added RSX commands |GETPATH, |UDIR, |LONGNAME by SOS&amp;lt;br/&amp;gt;Added C_GETNETWORK command.&amp;lt;br/&amp;gt;Added status byte after response string to C_NETSTAT&amp;lt;br/&amp;gt;Fix |cd,&amp;quot;/&amp;quot; to go to root if inside a DSK image.&amp;lt;br/&amp;gt;Fix SD hotswapping.&amp;lt;br/&amp;gt;Remove KM_RESET from cat/dir when pressing ESC.&amp;lt;br/&amp;gt;Display current path when using cat/dir.&amp;lt;br/&amp;gt;Increased AMSDOS readspeed (using bigger buffer).&amp;lt;br/&amp;gt;Faster network speed when using netapi.&amp;lt;br/&amp;gt;Keep CPC in reset until init. done. (Fixes issue with C4CPC and M4 at the same time).&amp;lt;br/&amp;gt;Many amsdos compatiblity fixes.&amp;lt;br/&amp;gt;DSK images, handle ASCII art with cat.&amp;lt;br/&amp;gt;Fix multiple network connections.&amp;lt;br/&amp;gt;Added |LS command for long filenames (15 mode 0, 35 mode 1, 75 mode 2).&amp;lt;br/&amp;gt;|cd can use long names too.&amp;lt;br/&amp;gt;autoexec.bas method changed, should no longer give problems with certain basic games.&amp;lt;br/&amp;gt;Remote run - run remote files from WEB interface (control)&amp;lt;br/&amp;gt;|TAPE support, use |SD to switch back to M4&amp;lt;br/&amp;gt;|DISC supported if AMSDOS present, use |SD to switch back to M4&amp;lt;br/&amp;gt;Fix |era long filenames.&amp;lt;br/&amp;gt;|ren fix for long filenames&amp;lt;br/&amp;gt;Added support for ROMDOS dsk images (D1/D2/D10/D20/D40) and PARADOS 80.||&lt;br /&gt;
[[Media:M4FIRM_v200.zip | M4FIRM_v200.zip]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower rom for CPC6128''' users, who cannot override amsdos (rom 7) with M4 rom, using this patched lower rom, M4 rom must be in rom slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatiblity with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower rom English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower rom Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs : [[Media: Lower6128_mod-fr.zip | 6128 lower rom French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower rom Danish]] &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Media: Xfer 1.0.1.zip | xfer (v1.0.1) ]] : Command-line tool that allow to send files and receive from an M4 Board. Possibility to add an AMSDOS header too.&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:M4FIRM_v200.zip&amp;diff=97053</id>
		<title>File:M4FIRM v200.zip</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:M4FIRM_v200.zip&amp;diff=97053"/>
				<updated>2017-01-15T12:34:59Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: M4 Firmware v2.0.0 release version.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;M4 Firmware v2.0.0 release version.&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=96980</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=96980"/>
				<updated>2016-12-14T17:33:19Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Various files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || [[Media:M4FIRM_v100.zip | M4FIRM_v100.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower rom for CPC6128''' users, who cannot override amsdos (rom 7) with M4 rom, using this patched lower rom, M4 rom must be in rom slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatiblity with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower rom English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower rom Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs : [[Media: Lower6128_mod-fr.zip | 6128 lower rom French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower rom Danish]] &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Media: Xfer 1.0.1.zip | xfer (v1.0.1) ]] : Command-line tool that allow to send files and receive from an M4 Board. Possibility to add an AMSDOS header too.&lt;br /&gt;
&lt;br /&gt;
[[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)'''&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=96976</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=96976"/>
				<updated>2016-12-06T14:21:45Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: added example configuration picture.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || [[Media:M4FIRM_v100.zip | M4FIRM_v100.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower rom for CPC6128''' users, who cannot override amsdos (rom 7) with M4 rom, using this patched lower rom, M4 rom must be in rom slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatiblity with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower rom English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower rom Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs : [[Media: Lower6128_mod-fr.zip | 6128 lower rom French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower rom Danish]] &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4config6128.jpg|Example config 6128&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Media: Xfer 1.0.1.zip | xfer (v1.0.1) ]] : Command-line tool that allow to send files and receive from an M4 Board. Possibility to add an AMSDOS header too.&lt;br /&gt;
&lt;br /&gt;
[[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&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:M4config6128.jpg&amp;diff=96975</id>
		<title>File:M4config6128.jpg</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:M4config6128.jpg&amp;diff=96975"/>
				<updated>2016-12-06T14:18:10Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: Example rom configuration of M4 on CPC6128&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Example rom configuration of M4 on CPC6128&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=96969</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=96969"/>
				<updated>2016-12-03T22:32:06Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Various files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || [[Media:M4FIRM_v100.zip | M4FIRM_v100.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower rom for CPC6128''' users, who cannot override amsdos (rom 7) with M4 rom, using this patched lower rom, M4 rom must be in rom slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatiblity with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower rom English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower rom Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs : [[Media: Lower6128_mod-fr.zip | 6128 lower rom French]]&lt;br /&gt;
&lt;br /&gt;
Danish version: [[Media: Os6128_mod_danish.zip | 6128 lower rom Danish]] &lt;br /&gt;
&lt;br /&gt;
[[Media: Xfer 1.0.1.zip | xfer (v1.0.1) ]] : Command-line tool that allow to send files and receive from an M4 Board. Possibility to add an AMSDOS header too.&lt;br /&gt;
&lt;br /&gt;
[[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&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:Os6128_mod_danish.zip&amp;diff=96967</id>
		<title>File:Os6128 mod danish.zip</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:Os6128_mod_danish.zip&amp;diff=96967"/>
				<updated>2016-12-03T22:30:03Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: M4 Board lower rom modification Danish.
Key z corrected by Jonny Olsen.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;M4 Board lower rom modification Danish.&lt;br /&gt;
Key z corrected by Jonny Olsen.&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=96957</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=96957"/>
				<updated>2016-12-03T22:15:38Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Various files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || [[Media:M4FIRM_v100.zip | M4FIRM_v100.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower rom for CPC6128''' users, who cannot override amsdos (rom 7) with M4 rom, using this patched lower rom, M4 rom must be in rom slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatiblity with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower rom English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Os6128_mod_spanish.zip | 6128 lower rom Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs : [[Media: Lower6128_mod-fr.zip | 6128 lower rom French]]&lt;br /&gt;
&lt;br /&gt;
[[Media: Xfer 1.0.1.zip | xfer (v1.0.1) ]] : Command-line tool that allow to send files and receive from an M4 Board. Possibility to add an AMSDOS header too.&lt;br /&gt;
&lt;br /&gt;
[[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&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=96956</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=96956"/>
				<updated>2016-12-03T22:14:42Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Various files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || [[Media:M4FIRM_v100.zip | M4FIRM_v100.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower rom for CPC6128''' users, who cannot override amsdos (rom 7) with M4 rom, using this patched lower rom, M4 rom must be in rom slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatiblity with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower rom English]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Lower6128_mod-fr.zip | 6128 lower rom Spanish]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs : [[Media: Os6128_mod_spanish.zip | 6128 lower rom French]]&lt;br /&gt;
&lt;br /&gt;
[[Media: Xfer 1.0.1.zip | xfer (v1.0.1) ]] : Command-line tool that allow to send files and receive from an M4 Board. Possibility to add an AMSDOS header too.&lt;br /&gt;
&lt;br /&gt;
[[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&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=96954</id>
		<title>M4 Board</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=M4_Board&amp;diff=96954"/>
				<updated>2016-12-03T22:14:12Z</updated>
		
		<summary type="html">&lt;p&gt;Duke: /* Various files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The M4 Board is a 2016 expansion card which enables WIFI access to and from CPC, Romboard and using SD-Card as mass storage.&lt;br /&gt;
&lt;br /&gt;
You can read more about it at http://www.spinpoint.org/cpc/m4info.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
M4board_front.png|M4 Front View&lt;br /&gt;
M4board_back.png|M4 Back View&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
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.&lt;br /&gt;
Latest firmware version can always be obtained via |upgrade command (no need to use PC, as long as CPC is setup to the internet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Please notice, on M4 boards shipped after 2016-10-01:'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! Version&lt;br /&gt;
!Changes&lt;br /&gt;
!File&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.00 || Initial Version || [[Media:M4FIRM_v100.zip | M4FIRM_v100.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.01 || M4 rom defaults to Rom 6, Fix for GA 40007 || [[Media:M4FIRM_v101.zip | M4FIRM_v101.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.02 || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;CD command now accepts no paramters and will prompt with cursor,&amp;lt;br /&amp;gt; so Basic 1.0 users can use SHIFT+CURSORKEYS+COPY. || [[Media:M4FIRM_v102.zip | M4FIRM_v102.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.03 || Allow to remap entire romboard for compatiblity with XMEM. Now supporting 32 romslots. || [[Media:M4FIRM_v103.zip | M4FIRM_v103.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.04 || Ability to replace lowerrom. || [[Media:M4FIRM_v104.zip | M4FIRM_v104.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.05 || FTELL, FSIZE commands implemented and &amp;lt;br/&amp;gt; new RSX commands &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMSET, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUPD || [[Media:M4FIRM_v105.zip | M4FIRM_v105.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.06 || Fix WEB UI instability issue. &amp;lt;br/&amp;gt;Fix romupload for roms with or without AMSDOS header, and related bugs. || [[Media:M4FIRM_v106.zip | M4FIRM_v106.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.07 || Fixes and buffering for cas_in_char, &amp;lt;br/&amp;gt; fix &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;ROMUP to work from .dsk files, fix cat/dir loop, &amp;lt;br/&amp;gt;fix httpget to work with IP addresses aswell as hostnames. || [[Media:M4FIRM_v107.zip | M4FIRM_v107.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.08 || FIX IP addresses for httpget (again). Fix &amp;lt;br /&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir bug. Fix hardreset. &amp;lt;br/&amp;gt;Added C_GETPATH command (requested). &amp;lt;br/&amp;gt; Added ability to load your own build of M4ROM from root of microSD, should be named M4ROM.BIN || [[Media:M4FIRM_v108.zip | M4FIRM_v108.zip]]&lt;br /&gt;
|- style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|| 1.09 || Added nonblocking host &amp;amp; client NETAPI.&amp;lt;br /&amp;gt; Added ESC check to cat/&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;dir.&amp;lt;br /&amp;gt;M4 board now looks for autoexec.bas at bootup, similar to old dos machines, autoexec.bat. Make your own startup script in basic. &amp;lt;br/&amp;gt;Direct SD card sector access.&amp;lt;br/&amp;gt;Various minor fixes || [[Media:M4FIRM_v109.zip | M4FIRM_v109.zip]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Various files ==&lt;br /&gt;
'''Modified lower rom for CPC6128''' users, who cannot override amsdos (rom 7) with M4 rom, using this patched lower rom, M4 rom must be in rom slot 6.&lt;br /&gt;
It will be initialized instead of rom 7 and provide better compatiblity with games and higher himem.&lt;br /&gt;
It's recommended to upload the original AMSDOS (or Parados) rom to rom slot 6, then it will be available when typing |M4ROMOFF.&lt;br /&gt;
&lt;br /&gt;
English version: [[Media: Lower6128_mod.zip | 6128 lower rom ]] &lt;br /&gt;
&lt;br /&gt;
Spanish version: [[Media: Lower6128_mod-fr.zip | 6128 lower rom fr]]&lt;br /&gt;
&lt;br /&gt;
French version by dxs : [[Media: Os6128_mod_spanish.zip | 6128 lower rom French]]&lt;br /&gt;
&lt;br /&gt;
[[Media: Xfer 1.0.1.zip | xfer (v1.0.1) ]] : Command-line tool that allow to send files and receive from an M4 Board. Possibility to add an AMSDOS header too.&lt;br /&gt;
&lt;br /&gt;
[[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&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
Structure for romslots.bin &amp;amp; romconfig.bin under m4 directory are:&amp;lt;br /&amp;gt;&lt;br /&gt;
romslots.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Contains 32x raw rom data (no headers). To locate a rom in the file, use:&amp;lt;br /&amp;gt;&lt;br /&gt;
offset = slot * &amp;amp;4000&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
romconfig.bin&amp;lt;br /&amp;gt;&lt;br /&gt;
Header:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int    totalRoms; 		// 32 (early versions of the firmware had only 16)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomNum;  		// M4 rom to map rom number 0-255&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    m4RomEnable; 		// M4 rom enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    romRangeStart;    	// start mapping roms from&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerEnable; 		// lower rom replacement enabled&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;int    lowerSlot;   		// which slot maps lowerrom (0-31)&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;unsigned int reserved[2]; 	// set to zero for now&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Then for each rom (repeated 32 times):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char updateflag;    // 0 = no rom present (or disabled), 1 = rom present (enabled), 2 = New rom will be flashed into M4 internal flash, 3 = remove rom&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;char    name[32];  // name of rom to be displayed in webinterface&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
Make your own M4 ROM or add additions to the existing, source code can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/m4rom&amp;lt;br /&amp;gt;&lt;br /&gt;
It's compiled (assembled) with sdasz80 (part of [[SDCC]] package).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Various source code examples for M4 board&amp;lt;br /&amp;gt;&lt;br /&gt;
https://github.com/M4Duke/M4examples&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CPC xfer, pc commandline tool to transfer files back and forth to M4 board:&amp;lt;br /&amp;gt;&lt;br /&gt;
Source code here: https://github.com/M4Duke/cpcxfer&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command documention and other infos:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.spinpoint.org/cpc/m4info.txt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Disk menu by Joe Halstead, modified by Takis Kalatzis for M4:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-cpc-wifi/msg134659/#msg134659&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Duke</name></author>	</entry>

	</feed>