Changes

Multiface II

7,873 bytes added, 14:57, 8 May 2021
==Revision History==
Strictly speaking, the device we all know as ‘the Multiface’ was in fact the Multiface Two – something that confused Amstrad Action no end. The original version (the Multiface One, if you like) was in fact a Spectrum peripheral. Romantic Robot later applied the concept to the Amiga and the ST [[Category:Hardware]] with very little success, as games for these platforms were inevitably multi-loads. They now make their living selling classical CDs. Funny old world.
Needless to say, this concept of a ‘universal backup (oh, ok, piracy) device’ worried software houses no end, and there were no end of rumours that the Multiface and its ilk would be banned under the Copyright & Patents Act of 1990. In the end, all that happened was that Romantic Robot got the chance to run ‘Buy now! before it’s banned’ adverts, provoking lots of panic sales. They then continued to sell the Multiface. Several years later, they tried the same trick with ‘The CPC is no longer a viable platform – so we’re selling off our last Multifaces!’. This supposed last shipment lasted about two years.
 
The Multiface III is a version for the Spectrum +3.
 
==Multiface 2 revisions==
 
There was more than one revision of the Multiface 2 for the Amstrad:
 
* 1st version which has a manual switch to control visibility to software - first appeared in Amstrad action 16 (January 1987)
 
In Amstrad Action issue 23 it mentions some incompatibility with some CPC6128 machines and there are some dipswitches which can be configured to work with it. Multiface 2's with this have version 78 software.
 
* 2nd version which has an automatic switch controlled by PAL ICs to control visibility to software. This is called "2+" by Romantic Robot. It was mention in Amscene in Amstrad Action 33 (June 1988) and was first advertised in Amstrad Action issue 36 (September 1988).
 
* 3rd version which was the same as the 2+ but had a Centronics connector and ROM modified to work with the Amstrad Plus. This ROM doesn't work on the CPC.
 
Was there a version which didn't have a switch and came before version 1?
==Anti-Multiface==
Any CPC program can find out what’s in memory at the moment. It’s the PEEK command in BASIC, and the very foundation of machine code. You, too, can save the contents of memory to disc just with the following line:
OPENOUT "filename" : FOR n=0 TO 65535 : PRINT#9,CHR$(PEEK(n)); : NEXT : CLOSEOUT
Needless to say, the Multiface did just that (except written in machine code). If I could get £40 for that one line of program, I’d be smiling.
== Technical ==
As said above, There were various revisions of the multiface watches Multiface 2: * There was a version which was visible to software all the bus for writes time. (Did this exist?) * One version had a "invisibility" switch on the front in addition to I/O ports, the stop and memorizes reset buttons. When switched in one direction the written values (required since most multiface was invisible to software and in the other it was visible. ''Is there a dump of the Gate Array ROM from this version?'' * Last revision had an automatic "invisibility" switch internally controlled by the hardware itself. After reset the multiface was visible, but when the stop button was pressed and CRTC ports are write-only)then control was returned to the running program it would be invisible and would remain invisible until the computer was reset. Reading  The following applies to the memorized values automatic "invisibility" version (the "2+"): If the multiface 2 is probably done via these Ivisible you can enable/O portsdisable the ROM and RAM in the CPU's address space: #FEE8 Multiface II - Enable Multiface II To make the ROM/and RAM visible to the CPU: * Enable lower rom using port 7fxx as normal ld bc,&7f89 out (Wc),c #FEEA Multiface II - Disable Multiface II * Then activate the ROM/and RAM : ld bc,&fee8 out (Wc),cWriting any value to these I/O ports enables/disables * To deactivate the 8K ROM and 8K RAM in the Multiface. When enabled: ld bc, the ROM/RAM are mapped to following addresses&feea out (c),c Testing shows the port is decoded as: ‭11111110111010exx means any value for this bite is 0 for enable and 1 for disable.  0000h-1FFFh Multiface ROM is visible in the range &0000-&1fff. (including [[NMI]] vector at 0066h). Writing to the ROM doesn't write through to CPC's RAM. 2000hRAM is visible in the range &2000-3FFFh Multiface &3fff. Writing to the RAMdoesn't write through to CPC's RAM.with the The internal ROM/RAM at 0000h-3FFFh in the CPC being disabled. You can write to *ANY* byte of the RAM including those which store the hardware state. The Multiface 2 listens to Gate-Array and PAL writes (port 7fxx), CRTC writes (bcxx and bdxx) and 8255 Control port writes (f7xx).  Gate-Array and PAL are decoded as ‭01111111xxxxxxxx, CRTC as ‭10111100xxxxxxxx and ‭10111101xxxxxxxx and 8255 writes as ‭11110111xxxxxxxx. When the I/O write is detected, then specific locations in the MF2 RAM are updated immediately.  Gate-Array pen index write (7fxx with bit 7=0 and bit 6=0): 3fcf Gate-Array border colour write (7fxx with bit 7=0 and bit 6=1): 3fdf Gate-Array pen colour write (7fxx with bit 7=0 and bit 6=1): 3f90-3f9f (pens 0 to 15) Gate-Array mode write (7fxx with bit 7=1 and bit 6=0): 3fef PAL write (7fxx with bit 7=1 and bit 6=1): 3fff CRTC register select write (bcxx): 3cff CRTC register data (bdxx): 1db0-1dbf (only registers 0-15, others are ignored) 8255 Control port write (f7xx): 37ff The value that is stored is the value written. The automatic switch version of the multiface works by monitoring opcode reads from 0064 or 0065 (for returning back to the stopped program) and 0066 and 0067 for entering multiface 2 ROM when pressing the stop button. There is a single call to 0065 (which has a RET) before the multiface 2 returns control back to the running program. The multiface 2 uses the stack inside the running program to return. It's not possible to activate the multiface ram and rom and call 0064/0065 directly - it has no effect, the multiface 2 must be in a specific state (which happens when the stop button has been pressed) to accept the call and make itself invisible.
== Toolkit ==
Once the machine was reset, you could save all the program to basic doing:<br>
OUT&nbsp;&amp;7fc4,&amp;c4: save "game-1",b,&amp;4000,&amp;3fff  OUT &amp;7fc5,&amp;c5: save "game-2",b,&amp;4000,&amp;3fff<br> OUT &amp;7fc6,&amp;c6: save "game-3",b,&amp;4000,&amp;3fff<br> OUT &amp;7fc7,&amp;c7: save "game-4",b,&amp;4000,&amp;3fff<br><br>
This trick was used to save heavily protected games to disk.<br>
== Manual ==
* [http[Media://www.cpcwiki.eu/manuals/Multiface%202%20Manual.en2 Manual.rar Multiface II pdf|MF2 User Manual] - RARed ] {{EN}} {{PDF version}}* [[Media:Multiface Two User Manual.zip|MF2 User Manual.zip]] - zipped HTML version* [[Media:Multiface Two User Manual.txt]] - clean TXT version* [[Multiface III|Multiface III MF2 User Manual.txt]] - jpg's (for ZX Spectrum +3 and +2A, not for CPC)
== Pictures ==
<gallery caption="MultifaceII"> Image:multiface.jpg|Multiface closeupImage:Multiface II advertisment.jpg|AdvertismentAdvertisementImage:MultifaceII AA100.jpg|Advertisement in AA 100Image:Amstrad Action106 20.jpg|AA Issue 106 - Page 20Image:MultifaceII_Front.jpg|Multiface II - (version with switch for making it invisible to software) - Front (eBay)Image:MultifaceII_Back.jpg|Multiface II - (version with switch for making it invisible to software) - Back (eBay) </gallery> <gallery caption="Multiface II - Amstrad 464 / 6128 Plus compatible version"> Image:S-l1600.jpg|Original boxImage:S-l1600b.jpg|Original box - Other sideImage:S-l1600c.jpg|Original box - OpenedImage:S-l1600d.jpg|Multiface II in original box with manualImage:S-l1600e.jpg|Multiface II with 50way Centronics ConnectorImage:S-l1600f.jpg|Multiface II with 50way Centronics Connector - SideImage:S-l1600g.jpg|Multiface II with 50way Centronics Connector - Back </gallery> All thanks to rockrabilia from eBay for using his pics taken from his [http://www.ebay.co.uk/itm/391986980297 '''Amstrad 464 6128 Plus - Romantic Robot MULTIFACE TWO Interface *Boxed *Tested!'''] auction. <gallery caption="Multiface II Layout, thanks to Jose Leandro"> File:Multiface II - Top.jpg|Multiface II - TopFile:Multiface II - Bottom.jpg|Multiface II - BottomFile:Multiface II - Components.jpg|Multiface II - ComponentsFile:Multiface II - Tracks.jpg|Multiface II - TracksFile:MF2-PCB Front.png|Multiface II - PCB FrontFile:MF2-PCB Back.png|Multiface II - PCB BackFile:MF2-Layout.png|Multiface II - Layout 
</gallery>
== Downloads ==
* [[Media:MF2 (Jose Leandro).zip|MF2 (Jose Leandro).zip]] (With all the PAL decoded) There are at least 3 firmware versions.  The year & checksum can be displayed by pressing f0 on numeric keypad (within the multiface toolkit main menu).  The checksum is calculated by XORing all bytes in the ROM with each other. Original AMSDOS: * [[Media:Multiface.two.romantic.robot.86.zip|MF2 86 ROM]] - (1986, chksum=86h)* [[Media:Multiface.two.romantic.robot.3e.amsdos.v05.zip|MF2 3E ROM]] * [[Media:Multiface.two.romantic.robot.0e.zip|MF2 0E ROM]] - (1988, chksum=0Eh)* [[Media:Mf2_7c.ROM|MF2 7C ROM]] - (1988)* [[Media:Multiface.two.romantic.robot.78.amsdos.v05.zip|MF2 78 ROM]]* [[Media:Multiface.two.romantic.robot.8d.amsdos.v05.zip|MF2 8D ROM]] - (1988) For the Amstrad Plus series: * [[Media:Multiface.two.romantic.robot.8b.zip|MF2+ 8B ROM]] - (1990, chksum=8Bh)* [[Media:Multiface.two.romantic.robot.78.amsdos.v07.zip|MF2+ 78 ROM]]* NOTE: 8B seems to be correct. They differ in 1 byte at address 0. On 8B it is DI on 78 it is NOP. 78 could be a bad dump. The Source Code: * [[Media:Vortex_MF2-Source_TFM.rar]] Differences between chk=86 and chk=0E versions are unknown. The chk=0Eh and chk=8Bh versions are almost byte-identical, they differ only by some bytes related to the new AMSDOS version used in CPC Plus system cartridge (aside from the new AMSDOS version, there is no support for CPC Plus related features, like handling the new ASIC registers). You can find more versions (and more info, besides) over at the [http://www.grimware.org/doku.php/documentations/expansions/mf2/start Grimware site] ==Remake== A project was begun to remake the multiface (by Giants of cpc-hardware on 2005) :  > Interface disassemble > First typhon > First decoding via H/W counter the Equation Of PALs > A lot of pictures, informations H/W > indicate all pins connections.  Jeff(hxc) was join the projet and make a big profesional work :  > Dump 2 pals  > Dump of the EPROM.  > Decoding equations  > Writing a test tool for the verification of these equations with real pal  > Implementation of the scheme Multiface 2.     Details are [http://sasfepu78.fr/index.php/12-divers/20-multiface-2-cpc-6128-old here] (in French). For posterity, all the information and files from that page have been gathered and are available in this zip file: * [[Media:MF2.zip|MF2.zip]]. The reverse engineering of the multiface II is not quite complete, in that two versions of one of the PAL chips are apparently in the wild, and only one has been reverse engineered, and that one not completely. It's unclear what the newer version of the PAL chip is for, but CPC+ support would seem likely. Until the PAL chip is decoded, there is not enough information to complete the remake. Now, thanks to Jose Leandro, the hardware specialist of the spectrum, with his famous page : http://trastero.speccy.org/cosas/JL/JL.htm We can know more about this hardware, all the PAL chips are decoded: * [[Media:MF2 (Jose Leandro).zip|MF2 (Jose Leandro).zip]] (With all the PAL decoded)
* [[Media:Multiface.two.romantic.robot.86.zip]] - ROM image (1986, chksum=86h) (for original AMSDOS)* [[Media:Multiface.two.romantic.robot.0e.zip]] - ROM image (1988, chksum=0Eh) (for original AMSDOS)* [[Media:Multiface.two.romantic.robot.8b.zip]] - ROM image (1990, chksumLinks==8Bh) (for CPC Plus AMSDOS)
Differences between chk* [http://www.cpc-power.com/index.php?page=86 and chkdetail&num=0E versions are unknown4971 ''Multiface II'' from CPC-Power]* [http://cpcrulez.fr/hardware-interface_debug-multiface_2.htm ''Multiface II'' from CPCrulez]* [http://hardware.speccy.org/temp/Amstrad-multiface2.html ''Multiface II'' from hardware.speccy.org]* [http://hardware.speccy.org/temp/Amstrad-multiface2/Amstrad-multiface21.html ''Multiface II PALs'' from hardware.speccy.org]* [https://web.archive.org/web/20160715092459/http://www.grimware.org/doku.php/documentations/expansions/mf2/start ''Multiface II'' from grimware]* [https://web.archive.org/web/20090108031853/http://cpc-hardware.com/sections. The chkphp?op=0Eh and chkviewarticle&artid=8Bh versions are almost byte-identical, they differ only by some bytes related to the new AMSDOS version used in 31 ''Multiface II'' from CPC Plus system cartridge (aside -Hardware]* [http://quasar.cpcscene.net/doku.php?id=dossier:mf2 ''Multiface II'' from the new AMSDOS versionQuasar Net] (french, there is no support for CPC Plus related features, like handling the new ASIC registersmemory mapping details and programmation tutorial and examples).
[[Category:Copy ProtectionPeripherals]] [[Category:PeripheralsManual]] [[Category:ManualCopy Protection]]
194
edits