<?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=Munchausen</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=Munchausen"/>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php/Special:Contributions/Munchausen"/>
		<updated>2026-08-28T17:36:31Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Multiface_II&amp;diff=87327</id>
		<title>Multiface II</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Multiface_II&amp;diff=87327"/>
				<updated>2013-05-15T20:45:47Z</updated>
		
		<summary type="html">&lt;p&gt;Munchausen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:MultifaceTwo.jpg|right|thumb|200px|The Multiface II]]Clever name, Multiface. An interface that does many things. Also completely untrue: the Multiface wasn’t an interface like a serial interface, which let you plug new kinds of gubbins into your CPC. It just sat on the back of your CPC and did its thing. Singular.&lt;br /&gt;
&lt;br /&gt;
But that was enough. Because the thing in question, for many CPC users, was a godsend. Loading games from tape is tedious: many games were available only on tape, or on disc at an extortionate price: many CPC users had disc drives. Ergo, why not think of an easy way of getting games from tape to disc?&lt;br /&gt;
&lt;br /&gt;
[[Romantic Robot]] did. The Multiface took an exact copy of what was in memory at the present moment, and saved it to disc, ready for you to reload at your leisure. All you had to do was press a little red button then select ‘Save’ from the menu that appeared.&lt;br /&gt;
&lt;br /&gt;
It was such a good idea that at least three other companies had the same plan, and brought out similar-sounding devices: [[Datel]]'s [[Action Replay]], [[Evesham Micros]]' [[Disc Wizard]], and [[Mirage Imager]]. In one of those happy coincidences of commerce and merit, the Multiface was the best of the lot, and also the one which survived.&lt;br /&gt;
&lt;br /&gt;
==Revision History==&lt;br /&gt;
&lt;br /&gt;
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 with very little success, as games for these platforms were inevitably multi-loads. They now make their living selling classical CDs. Funny old world.&lt;br /&gt;
&lt;br /&gt;
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 &amp;amp; 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.&lt;br /&gt;
&lt;br /&gt;
==Anti-Multiface==&lt;br /&gt;
&lt;br /&gt;
To return to the subject of [[Amstrad Action]], one (wilful?) misconception they put about was that Multifaces were serial-numbered. Thus you couldn’t run Multiface copies with anyone else’s machine. Needless to say, this was b... – er, balderdash – as the only check made (in later Multifaces) was on machine type. This meant that you couldn’t run copies made on a 464 on a 6128, or vice versa: and of course, you needed a Multiface to run them at all.&lt;br /&gt;
&lt;br /&gt;
Tant pis. Enter Serge Querne, usually known as [[Longshot]], the founder of [[Logon System]], but in this case masquerading as Magic Software’s Merlin J Bond. His rather spiffing utility, Anti-Multiface (aka Multimag), made Multiface copies into stand-alone programs.&lt;br /&gt;
&lt;br /&gt;
Suddenly, you could run Multiface copies on any CPC, from the B:-drive, without a Multiface even. You needed 128k, of course, and the original program couldn’t use extra memory. But these were small prices to pay. With this tool, the Multiface reverted from its sheep-like backup identity to its original wolf persona as Ultimate Facilitator of Mass Piracy. Except no European cracker would be seen dead using one.&lt;br /&gt;
&lt;br /&gt;
==How did it work?==&lt;br /&gt;
&lt;br /&gt;
This was really ingenious, and I’m indebted to Rob Scott for explaining it.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 OPENOUT &amp;quot;filename&amp;quot; : FOR n=0 TO 65535 : PRINT#9,CHR$(PEEK(n)); : NEXT : CLOSEOUT&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
But that only records what’s in memory. The CPC also has a barrage of dedicated chips to control the display (the [[CRTC]]), colours and memory configuration (the [[Gate Array]]), sound and the keyboard (the [[PSG]]), and so on. There is no equivalent of the PEEK command for these chips. So how do you find out what the settings are – what colours are in use, what size and mode the screen is in, and so on?&lt;br /&gt;
&lt;br /&gt;
It works like this. The CPC sends instructions to these chips using the OUT command. Each chip has a different address. So you can send the value 1 to the CRTC with the command OUT &amp;amp;BC00,1; you can send the same value to the VGA with the command OUT &amp;amp;7F00,1; and so on.&lt;br /&gt;
&lt;br /&gt;
The CPC uses the same command to send instructions to anything bolted onto the expansion port. So if you have a 464 with a DDI-1 disc drive connected, typing OUT &amp;amp;FA7E,1 will turn the disc motor on. (It works on a 664 and a 6128, too, proving that the CPC sees no difference between internal and external chips.)&lt;br /&gt;
&lt;br /&gt;
But the instruction doesn’t magically go to the right chip: it goes to all of them. When we sent our instruction OUT &amp;amp;BC00,1 to the CRTC, the VGA will have seen it, as will your disc drive, your Multiface, and anything else you’ve got connected. They just think “oh, this is going to &amp;amp;BC00 – so it’s meant for the CRTC”, and ignore it.&lt;br /&gt;
&lt;br /&gt;
At least, the disc drive and VGA ignore it. The Multiface memorises it, thereby building up a record of what you’ve told each chip to do. To change the screen mode to MODE 2, for example, you send a particular byte to the VGA. The VGA gets the byte, and changes to MODE 2: the Multiface gets it, and makes a little note “we’re in MODE 2”.&lt;br /&gt;
&lt;br /&gt;
All of these settings are saved on disc as part of your backup. So when you load the Multiface-saved copy, it knows exactly how to set up each chip.&lt;br /&gt;
&lt;br /&gt;
== Technical ==&lt;br /&gt;
&lt;br /&gt;
As said above, the multiface watches the bus for writes to I/O ports, and memorizes the written values (required since most of the Gate Array and CRTC ports are write-only). Reading the memorized values is probably done via these I/O ports:&lt;br /&gt;
* #FEE8 Multiface II - Enable Multiface II ROM/RAM (W)&lt;br /&gt;
* #FEEA Multiface II - Disable Multiface II ROM/RAM (W)&lt;br /&gt;
Writing any value to these I/O ports enables/disables the 8K ROM and 8K RAM in the Multiface. When enabled, the ROM/RAM are mapped to following addresses,&lt;br /&gt;
* 0000h-1FFFh Multiface ROM (including [[NMI]] vector at 0066h)&lt;br /&gt;
* 2000h-3FFFh Multiface RAM&lt;br /&gt;
with the internal ROM/RAM at 0000h-3FFFh in the CPC being disabled.&lt;br /&gt;
&lt;br /&gt;
== Toolkit ==&lt;br /&gt;
&lt;br /&gt;
When I said that the Multiface only did one thing, I was lying. It does two. Just about. &lt;br /&gt;
&lt;br /&gt;
There’s a very basic memory editor built into the Multiface, which enables you to view and edit the current contents of your CPC’s memory. Er, that’s about it. Something I always found useful is that it would work in both hexadecimal and plain vanilla decimal numbers – so if I’d lost my scientific calculator (again), I still had a hex-to-decimal converter at my fingertips. &lt;br /&gt;
&lt;br /&gt;
But this ability to edit the memory could be used in a very clever way to enter an assembler program and change the PC&amp;amp;nbsp;(actual executing address) to run it. The most famous use is, arguably, a BANK&amp;amp;nbsp;DUMPING&amp;amp;nbsp;PROGRAM , that dumped the first 64Kb of memory to the second bank on a CPC6128, then reset the machine. That took advantage of the fact that the second 64kb survived a RESET, so all the program was there ready to save from BASIC. The procedure was simple, just entering those bytes in any memory location (not in the 4000-7FFF range):&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
01 C4 7F ED 49 21 00 00 11 00 40 01 00 40 ED&amp;amp;nbsp;B0 =&amp;amp;gt; dump 0000-3FFF into first 16kb of second bank&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
01 C6 7F ED 49 21 00 80 11 00 40 01 00 40 ED&amp;amp;nbsp;B0 =&amp;amp;gt; dump 8000-BFFF into third 16kb of second bank &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
01 C7 7F ED 49 21 00 C0 11 00 40 01 00 40 ED B0 =&amp;amp;gt; dump C000-FFFF into fourth 16kb of second bank&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
01 C0 7F ED 49 21 00 40 11 00 C0 01 00 40 ED B0 =&amp;amp;gt; dump 4000-7FFF to screen (already saved)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
01 C5 7F ED 49 21 00 C0 11 00 40 01 00 40 ED B0 =&amp;amp;gt; dump screen to second 16kb of second bank&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
01 C0 7F ED 49 C3 00 00 =&amp;amp;gt; reset bank status and reset the machine&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the machine was reset, you could save all the program to basic doing:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 OUT &amp;amp;amp;7fc4,&amp;amp;amp;c4: save &amp;quot;game-1&amp;quot;,b,&amp;amp;amp;4000,&amp;amp;amp;3fff&lt;br /&gt;
 OUT &amp;amp;amp;7fc5,&amp;amp;amp;c5: save &amp;quot;game-2&amp;quot;,b,&amp;amp;amp;4000,&amp;amp;amp;3fff&lt;br /&gt;
 OUT &amp;amp;amp;7fc6,&amp;amp;amp;c6: save &amp;quot;game-3&amp;quot;,b,&amp;amp;amp;4000,&amp;amp;amp;3fff&lt;br /&gt;
 OUT &amp;amp;amp;7fc7,&amp;amp;amp;c7: save &amp;quot;game-4&amp;quot;,b,&amp;amp;amp;4000,&amp;amp;amp;3fff&lt;br /&gt;
&lt;br /&gt;
This trick was used to save heavily protected games to disk.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Something more people found useful was that you could change crucial parts of a game – notably the memory location that holds your current number of lives. Change it from 3 to 250, and you’re laughing. AA would print lists of such ‘Multiface pokes’ every issue. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eat my Multiface==&lt;br /&gt;
&lt;br /&gt;
Many games, and even the odd demo, picked up on the presence of a Multiface. In order to stop illegal copying (or in the case of the demos, just to look smart), they would then refuse to work.&lt;br /&gt;
&lt;br /&gt;
Most notorious of all was [[Elmsoft]]’s [[Zap't'Balls]]. Run it with the Multiface plugged in, press the red button, and you’d get a rather rude message. Ironically, one of the much-vaunted cracks of Zap’t’Balls was accomplished largely with the Multiface’s latterday rival – [[Siren Software]]’s [[Hackit]]. See BTL 2 for more.&lt;br /&gt;
&lt;br /&gt;
To get around this, Romantic Robot put an on/off switch on the Multiface. When it was turned on, you could make copies, reload games saved with the Multiface, and use the toolkit. When it was turned off, you couldn’t. Seems fine.&lt;br /&gt;
&lt;br /&gt;
But some games constantly checked for the presence of a Multiface. If you turned your Multiface on even one fiftieth of a second before pressing the red button, the game would crash. Since not even [[Wild Thang|Richard Wildey]] has reactions that sharp, you were still lumbered.&lt;br /&gt;
&lt;br /&gt;
Romantic Robot came up with a typically elegant solution. The Multiface was always off, until you pressed the red button. Then it turned itself on just in time to bring up the menu allowing you to save your game. This done, you pressed ‘R’ to return to the game, at which the Multiface turned itself off again.&lt;br /&gt;
&lt;br /&gt;
There is a small flaw in this solution, of course – namely that if the Multiface is always turned off, you can’t load your saved games, which require the Multiface to be turned on before they’ll run. So Romantic Robot added a blue button. This reset your CPC and turned the Multiface on at the same time. If you wanted to run a game that objected to the presence of a Multiface, you just pressed the red button followed by ‘R’ for return.&lt;br /&gt;
&lt;br /&gt;
It may all sound complicated, but it worked in almost 100% of cases.&lt;br /&gt;
&lt;br /&gt;
==Multiface Software==&lt;br /&gt;
&lt;br /&gt;
Some programs were written to co-operate with the Multiface, rather than fight against it. &lt;br /&gt;
&lt;br /&gt;
* [[Comparator]]&lt;br /&gt;
* [[Gripper]]&lt;br /&gt;
* [[Soundhakker]]&lt;br /&gt;
* [[Tearaway]]&lt;br /&gt;
* [[The Insider]] (a Multiface II tool from Romantic Robot themselves)&lt;br /&gt;
* [[TUSS (The Ultimate Sprite Searcher)]]&lt;br /&gt;
&lt;br /&gt;
Were all hacking programs designed to expand the capabilities of the Multiface.&lt;br /&gt;
&lt;br /&gt;
[[The Insider]] was written by Romantic Robot, while the others were all third party products.&lt;br /&gt;
[[The Insider]] was also unique in that you could still press ‘R’ to return to the program currently running.&lt;br /&gt;
&lt;br /&gt;
TUSS and Soundhakker, by [[Wild Thang|Richard Wildey]] and [[Hangman|Rob Scott]] respectively, were particularly specialised tools. TUSS helped you to nick graphics out of other people’s games: Soundhakker helped you to nick Soundtrakker tunes from demos and fanzines. Amstrad Action (them again) once tested Tearaway against TUSS, found in favour of Tearaway, and then completely disproved their findings by using TUSS, not Tearaway, to remove the nipples from the covertape version of [[Stormlord]].&lt;br /&gt;
&lt;br /&gt;
Both [[Doctor Fegg]] and Richard ‘[[User:Executioner]]’ Wilson started work on powerful hacking programs which would work with the Multiface, titled [[Dr Fegg’s Hack Pack]] and [[Amigo]] respectively. Neither was ever finished.&lt;br /&gt;
&lt;br /&gt;
==Fifteen years later==&lt;br /&gt;
&lt;br /&gt;
The Multiface originally sold for £40 or so. These days, £15 is a fair second-hand price: any less and you’ve got a good deal.&lt;br /&gt;
&lt;br /&gt;
Most CPC emulators provide equivalents of the Multiface’s two main features. Instant copies can be made with the ‘snapshots’ feature, creating files with an .SNA extension that can be easily reloaded. The toolkit, meanwhile, has been replicated with whizzy new disassemblers/monitors/what-have-you. Of course, since emulators can’t load files from tape, it’s not really the same any more.&lt;br /&gt;
&lt;br /&gt;
==Epilogue: AA again==&lt;br /&gt;
&lt;br /&gt;
The various complexities of the Multiface meant that Amstrad Action readers were always writing in with questions. It’s actually quite hard to come up with attractive illustrations in a computer magazine. So AA always used to print a picture of a Multiface.&lt;br /&gt;
&lt;br /&gt;
Until one fateful day, when the usual spot was blank. The caption said it all: “We used our picture of the Multiface so much that it wore out. So this is blank until we get round to taking a new one.”&lt;br /&gt;
&lt;br /&gt;
'''This article originally appeared in [[WACCI]] issue 136.''' Reproduced with permission of the author ([[ChaRleyTroniC|Richard Fairhurst]]).&lt;br /&gt;
&lt;br /&gt;
== Manual ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.cpcwiki.eu/manuals/Multiface%202%20Manual.en.rar Multiface II Manual] - RARed PDF version&lt;br /&gt;
* [[Media:Multiface Two User Manual.zip]] - zipped HTML version&lt;br /&gt;
* [[Media:Multiface Two User Manual.txt]] - clean TXT version&lt;br /&gt;
* [[Multiface III|Multiface III Manual]] - jpg's (for ZX Spectrum +3 and +2A, not for CPC)&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Multiface&amp;quot;&amp;gt;&lt;br /&gt;
Image:multiface.jpg|Multiface closeup&lt;br /&gt;
Image:Multiface II advertisment.jpg|Advertisement&lt;br /&gt;
Image:MultifaceII AA100.jpg|Advertisement in AA 100&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
There are at least 3 firmware versions. The year &amp;amp; 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.&lt;br /&gt;
&lt;br /&gt;
*Original AMSDOS:&lt;br /&gt;
** [[Media:Multiface.two.romantic.robot.86.zip]] - ROM image (1986, chksum=86h)&lt;br /&gt;
** [[Media:Multiface.two.romantic.robot.3e.amsdos.v05.zip]] - &lt;br /&gt;
** [[Media:Multiface.two.romantic.robot.0e.zip]] - ROM image (1988, chksum=0Eh)&lt;br /&gt;
** [[Media:Multiface.two.romantic.robot.78.amsdos.v05.zip]]&lt;br /&gt;
** [[Media:Multiface.two.romantic.robot.8d.amsdos.v05.zip]]&lt;br /&gt;
* For the Amstrad Plus series:&lt;br /&gt;
** [[Media:Multiface.two.romantic.robot.8b.zip]] - ROM image (1990, chksum=8Bh)&lt;br /&gt;
** [[Media:Multiface.two.romantic.robot.78.amsdos.v07.zip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
You can find more versions (and more info, besides) over at the [http://www.grimware.org/doku.php/documentations/expansions/mf2/start Grimware site]&lt;br /&gt;
&lt;br /&gt;
==Remake==&lt;br /&gt;
A project was begun to remake the multiface (by Giant of cpc-hardware). Details are [http://amstrad.eu/modules/smartsection/item.php?itemid=141 here] (in French). For posterity, all the information and files from that page have been gathered and are available in this zip file: [[File:MF2.zip|MF2.zip]].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
A lot of information on the Multiface II is available on [http://www.grimware.org/doku.php/documentations/expansions/mf2/start grimware.org].&lt;br /&gt;
&lt;br /&gt;
[[Category:Copy Protection]] [[Category:Peripherals]] [[Category:Manual]]&lt;/div&gt;</summary>
		<author><name>Munchausen</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=CPC_Booster&amp;diff=87326</id>
		<title>CPC Booster</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=CPC_Booster&amp;diff=87326"/>
				<updated>2013-05-15T20:43:09Z</updated>
		
		<summary type="html">&lt;p&gt;Munchausen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Cpcbooster.jpg|thumb|CPC Booster]]&lt;br /&gt;
[[Image:Cpcboosterplus.jpg|thumb|CPC Booster+]]&lt;br /&gt;
&lt;br /&gt;
The '''CPC Booster (+)''' is an extension card for the CPC specialized on I/O features constructed by [[Antitec]] / [[Dirty Minds]]. It includes components like a very fast serial interface, a music digitizer, a DAC and even a free programmable and useable microcontroller (AVR). It is possible to connect a Bluetooth module transparently to the CPC Booster, which means that you can use the normal CPC Booster software with this solution, too.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
''This list of CPC Booster + features has been copied from its homepage''&lt;br /&gt;
&lt;br /&gt;
* '''ONE SYNCHRONOUS/ASYNCHRONOUS SERIAL PORT:''' Improved serial port (RS232) with the ability to enable parity check, select the bits of the frame, the stop bits and many more things to control it. The speed is from 4800 baud till 1382400 bauds.&lt;br /&gt;
* '''SERIAL PORT BUFFER:''' A 255 bytes buffer added for the UART which can be enabled/disabled by the user. Improves performance of the serial communication.&lt;br /&gt;
* '''TWO ANALOG INPUTS:''' Two analog to digital convertors. They are used for stereo or mono 8bit sound sampling. You can select the sampling rate directly from the cpc booster.&lt;br /&gt;
* '''TWO PWM CHANNELS:''' They are used as digital to analog convertors through a LOW PASS RC filter. You can play stereo 8bit samples if you connect the board to an amplifier.&lt;br /&gt;
* '''5 DIGITAL INPUT/OUTPUTS:''' You can connect anything that supports TTL logic. You can even drive relays or step motors if you know how to make the appropriate connections. You can also make parallel 4 bit communication with another CPC.&lt;br /&gt;
* '''512 BYTES EEPROM:''' EEPROM is like RAM but the contents remain intact if you remove power, it doesn't need a battery.&lt;br /&gt;
* '''256 BYTES RAM:''' The booster+ has a 256 bytes buffer to be used for temporary storage of values (like storing the registers).&lt;br /&gt;
* '''SEVERAL MATHEMATICAL FUNCTIONS:''' At the moment I've only installed multiplication but as soon as I get the time, me and Optimus will write some fast code for division, sin, cos, tan etc.&lt;br /&gt;
* '''BIOS UPDATE:''' This is one of the best features of the card. It is possible to make an update of the bios of the microcontroller through the CPC. So, when I release new versions of the bios, you can download them, transfer them to the CPC and make an update of the card in a few seconds!&lt;br /&gt;
* '''ROM READ/WRITE:''' The AVR MEGA16 has 16KB of program memory. The bios of the CPC booster uses less than 5 KB so far. So you can use more than 10KB for your own purposes! You can read/write the program memory of the CPC booster but BE CAREFUL when you write because you may accidentally erase the BIOS data!&lt;br /&gt;
* '''KEYBOARD SCANNING:''' A function which will make keyboard scanning a lot easier&lt;br /&gt;
* '''TCP / IP IMPLEMENTATION:''' This is also a feature I want to add in the future in order to give the CPC users the ability to go online in the internet with their CPC! In this part everyone can contribute, if you have knowledge of how the PPP and TCP/IP works, then contact me.&lt;br /&gt;
* '''RS485 NETWORK:''' An RS485 network is installed in the CPC Booster+. With this it's easier than ever to make a super fast network of up to 32 CPCs, forget everything else you've seen so far. Note: The small 2-position switch allows to select between RS232 and RS485 mode.&lt;br /&gt;
* '''1 WIRE PROTOCOL:''' Support for the 1wire protocol is added. Now you can connect many 1 wire devices in the expansion port of the booster, here's a link to get an idea: [http://www.maxim-ic.com/products/1-wire/]&lt;br /&gt;
&lt;br /&gt;
== Technical ==&lt;br /&gt;
&lt;br /&gt;
The overall I/O ports are described in the manual (see there).&lt;br /&gt;
&lt;br /&gt;
The documentation lacks some important details though. For example:&lt;br /&gt;
* It fails to describe which of the two PWM channels is the left, and which is the right channel - so the the &amp;quot;stereo&amp;quot; feature could be used only when doing some reverse-engineering.&lt;br /&gt;
* Some differences between CPC Booster and CPC Booster+ are the type of CPU and the serial interface / networking interface.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
* Arkos ROM Pack: [http://www.julien-nevo.com/arkos/tools.html]&lt;br /&gt;
* Some functions of the CPC-Booster(+) are supported by [[FutureOS]].&lt;br /&gt;
* Updates to the CPC-Booster software are available as 3 zip files (dated 2 Feb 05, 5 July 05, 28 July 05), though the latest source code appears to be from December 2010. Antitec's web site says to apply them in order. Each update also includes Antitec's terminal application.&lt;br /&gt;
* The updates are also saved here: [[File: update1.zip|update1.zip]] [[File: update2.zip|update2.zip]] [[File: update3.zip|update3.zip]]&lt;br /&gt;
&lt;br /&gt;
== Manual ==&lt;br /&gt;
&lt;br /&gt;
* [[Programming:CPC_Booster|CPC Booster+ manual]] (Wiki page)&lt;br /&gt;
* [[Media:CPC-Booster+.pdf|CPC Booster+ manual]] (pdf)&lt;br /&gt;
&lt;br /&gt;
== Source and Schematics ==&lt;br /&gt;
* The source code, schematics and PCB layout are available here: [ftp://ftp.cpcszene.de/pub/Computer/Amstrad_CPC/Hardware/CPCBoosterPlus/ CPC Booster Plus on cpcszene.de ftp server]&lt;br /&gt;
* The source code is also kept (and maintained?) with the Linux CPC SDK here: [https://code.google.com/p/cpcsdk/source/browse/trunk/resources/CPC_BOOSTER CPC Booster Plus at CPC SDK]&lt;br /&gt;
* A local copy of the source code/schematics is also preserved here: [[File:CPCBoosterPlus.zip|CPCBoosterPlus.zip]]&lt;br /&gt;
* There are also some files available here (don't appear particularly useful): [http://cpcrulez.fr/hardware-cpcbooster-interface_cpcbooster_plus.htm CPC Booster on cpcrules.fr]&lt;br /&gt;
* This is the zip file from that page: [[File:CPCBooster.zip|CPCBooster.zip]]&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Latest dated source code is December 2010&lt;br /&gt;
* The schematic is not complete, but the PCB layout is&lt;br /&gt;
&lt;br /&gt;
== Web links ==&lt;br /&gt;
&lt;br /&gt;
* [http://dirtyminds.dxm.gr Dirty Minds website] (Seems to be down 14/05/13 - try here [http://www.geocities.ws/dminds_cpc/ Antitecs website])&lt;br /&gt;
* [http://www.octoate.de/wp/articles/connecting-a-bluetooth-module-to-the-cpc-booster/ Connecting a Bluetooth module to the CPC Booster+]&lt;br /&gt;
&lt;br /&gt;
 [[Category:Peripherals]] [[Category:Serial interfaces]] [[Category:Manual]][[Category:Network]]&lt;br /&gt;
[[Category:DIY]][[Category:Memory expansions]][[Category:Expansion ROM]][[Category:Music and sound]]&lt;/div&gt;</summary>
		<author><name>Munchausen</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=CPC_Booster&amp;diff=87325</id>
		<title>CPC Booster</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=CPC_Booster&amp;diff=87325"/>
				<updated>2013-05-15T20:41:54Z</updated>
		
		<summary type="html">&lt;p&gt;Munchausen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Cpcbooster.jpg|thumb|CPC Booster]]&lt;br /&gt;
[[Image:Cpcboosterplus.jpg|thumb|CPC Booster+]]&lt;br /&gt;
&lt;br /&gt;
The '''CPC Booster (+)''' is an extension card for the CPC specialized on I/O features constructed by [[Antitec]] / [[Dirty Minds]]. It includes components like a very fast serial interface, a music digitizer, a DAC and even a free programmable and useable microcontroller (AVR). It is possible to connect a Bluetooth module transparently to the CPC Booster, which means that you can use the normal CPC Booster software with this solution, too.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
''This list of CPC Booster + features has been copied from its homepage''&lt;br /&gt;
&lt;br /&gt;
* '''ONE SYNCHRONOUS/ASYNCHRONOUS SERIAL PORT:''' Improved serial port (RS232) with the ability to enable parity check, select the bits of the frame, the stop bits and many more things to control it. The speed is from 4800 baud till 1382400 bauds.&lt;br /&gt;
* '''SERIAL PORT BUFFER:''' A 255 bytes buffer added for the UART which can be enabled/disabled by the user. Improves performance of the serial communication.&lt;br /&gt;
* '''TWO ANALOG INPUTS:''' Two analog to digital convertors. They are used for stereo or mono 8bit sound sampling. You can select the sampling rate directly from the cpc booster.&lt;br /&gt;
* '''TWO PWM CHANNELS:''' They are used as digital to analog convertors through a LOW PASS RC filter. You can play stereo 8bit samples if you connect the board to an amplifier.&lt;br /&gt;
* '''5 DIGITAL INPUT/OUTPUTS:''' You can connect anything that supports TTL logic. You can even drive relays or step motors if you know how to make the appropriate connections. You can also make parallel 4 bit communication with another CPC.&lt;br /&gt;
* '''512 BYTES EEPROM:''' EEPROM is like RAM but the contents remain intact if you remove power, it doesn't need a battery.&lt;br /&gt;
* '''256 BYTES RAM:''' The booster+ has a 256 bytes buffer to be used for temporary storage of values (like storing the registers).&lt;br /&gt;
* '''SEVERAL MATHEMATICAL FUNCTIONS:''' At the moment I've only installed multiplication but as soon as I get the time, me and Optimus will write some fast code for division, sin, cos, tan etc.&lt;br /&gt;
* '''BIOS UPDATE:''' This is one of the best features of the card. It is possible to make an update of the bios of the microcontroller through the CPC. So, when I release new versions of the bios, you can download them, transfer them to the CPC and make an update of the card in a few seconds!&lt;br /&gt;
* '''ROM READ/WRITE:''' The AVR MEGA16 has 16KB of program memory. The bios of the CPC booster uses less than 5 KB so far. So you can use more than 10KB for your own purposes! You can read/write the program memory of the CPC booster but BE CAREFUL when you write because you may accidentally erase the BIOS data!&lt;br /&gt;
* '''KEYBOARD SCANNING:''' A function which will make keyboard scanning a lot easier&lt;br /&gt;
* '''TCP / IP IMPLEMENTATION:''' This is also a feature I want to add in the future in order to give the CPC users the ability to go online in the internet with their CPC! In this part everyone can contribute, if you have knowledge of how the PPP and TCP/IP works, then contact me.&lt;br /&gt;
* '''RS485 NETWORK:''' An RS485 network is installed in the CPC Booster+. With this it's easier than ever to make a super fast network of up to 32 CPCs, forget everything else you've seen so far. Note: The small 2-position switch allows to select between RS232 and RS485 mode.&lt;br /&gt;
* '''1 WIRE PROTOCOL:''' Support for the 1wire protocol is added. Now you can connect many 1 wire devices in the expansion port of the booster, here's a link to get an idea: [http://www.maxim-ic.com/products/1-wire/]&lt;br /&gt;
&lt;br /&gt;
== Technical ==&lt;br /&gt;
&lt;br /&gt;
The overall I/O ports are described in the manual (see there).&lt;br /&gt;
&lt;br /&gt;
The documentation lacks some important details though. For example:&lt;br /&gt;
* It fails to describe which of the two PWM channels is the left, and which is the right channel - so the the &amp;quot;stereo&amp;quot; feature could be used only when doing some reverse-engineering.&lt;br /&gt;
* Some differences between CPC Booster and CPC Booster+ are the type of CPU and the serial interface / networking interface.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
* Arkos ROM Pack: [http://www.julien-nevo.com/arkos/tools.html]&lt;br /&gt;
* Some functions of the CPC-Booster(+) are supported by [[FutureOS]].&lt;br /&gt;
* Updates to the CPC-Booster software are available as 3 zip files (2 Feb 05, 5 July 05, 28 July 05). Antitec's web site says to apply them in order. Each update also includes Antitec's terminal application.&lt;br /&gt;
* The updates are also saved here: [[File: update1.zip|update1.zip]] [[File: update2.zip|update2.zip]] [[File: update3.zip|update3.zip]]&lt;br /&gt;
&lt;br /&gt;
== Manual ==&lt;br /&gt;
&lt;br /&gt;
* [[Programming:CPC_Booster|CPC Booster+ manual]] (Wiki page)&lt;br /&gt;
* [[Media:CPC-Booster+.pdf|CPC Booster+ manual]] (pdf)&lt;br /&gt;
&lt;br /&gt;
== Source and Schematics ==&lt;br /&gt;
* The source code, schematics and PCB layout are available here: [ftp://ftp.cpcszene.de/pub/Computer/Amstrad_CPC/Hardware/CPCBoosterPlus/ CPC Booster Plus on cpcszene.de ftp server]&lt;br /&gt;
* The source code is also kept (and maintained?) with the Linux CPC SDK here: [https://code.google.com/p/cpcsdk/source/browse/trunk/resources/CPC_BOOSTER CPC Booster Plus at CPC SDK]&lt;br /&gt;
* A local copy of the source code/schematics is also preserved here: [[File:CPCBoosterPlus.zip|CPCBoosterPlus.zip]]&lt;br /&gt;
* There are also some files available here (don't appear particularly useful): [http://cpcrulez.fr/hardware-cpcbooster-interface_cpcbooster_plus.htm CPC Booster on cpcrules.fr]&lt;br /&gt;
* This is the zip file from that page: [[File:CPCBooster.zip|CPCBooster.zip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Latest dated source code is December 2010&lt;br /&gt;
* The schematic is not complete, but the PCB layout is&lt;br /&gt;
&lt;br /&gt;
== Web links ==&lt;br /&gt;
&lt;br /&gt;
* [http://dirtyminds.dxm.gr Dirty Minds website] (Seems to be down 14/05/13 - try here [http://www.geocities.ws/dminds_cpc/ Antitecs website])&lt;br /&gt;
* [http://www.octoate.de/wp/articles/connecting-a-bluetooth-module-to-the-cpc-booster/ Connecting a Bluetooth module to the CPC Booster+]&lt;br /&gt;
&lt;br /&gt;
 [[Category:Peripherals]] [[Category:Serial interfaces]] [[Category:Manual]][[Category:Network]]&lt;br /&gt;
[[Category:DIY]][[Category:Memory expansions]][[Category:Expansion ROM]][[Category:Music and sound]]&lt;/div&gt;</summary>
		<author><name>Munchausen</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:Update1.zip&amp;diff=87324</id>
		<title>File:Update1.zip</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:Update1.zip&amp;diff=87324"/>
				<updated>2013-05-15T20:36:12Z</updated>
		
		<summary type="html">&lt;p&gt;Munchausen: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Munchausen</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:Update2.zip&amp;diff=87323</id>
		<title>File:Update2.zip</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:Update2.zip&amp;diff=87323"/>
				<updated>2013-05-15T20:36:11Z</updated>
		
		<summary type="html">&lt;p&gt;Munchausen: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Munchausen</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:Update3.zip&amp;diff=87322</id>
		<title>File:Update3.zip</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:Update3.zip&amp;diff=87322"/>
				<updated>2013-05-15T20:36:10Z</updated>
		
		<summary type="html">&lt;p&gt;Munchausen: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Munchausen</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Amstrad_Whole_Memory_Guide_-_The_RAM_routines&amp;diff=87293</id>
		<title>Amstrad Whole Memory Guide - The RAM routines</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Amstrad_Whole_Memory_Guide_-_The_RAM_routines&amp;diff=87293"/>
				<updated>2013-05-02T10:16:23Z</updated>
		
		<summary type="html">&lt;p&gt;Munchausen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Chapter 2 in the book [[Amstrad Whole Memory Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:AWMG page7.jpg|page 7&lt;br /&gt;
Image:AWMG page8.jpg|page 8&lt;br /&gt;
Image:AWMG page9.jpg|page 9&lt;br /&gt;
Image:AWMG page10.jpg|page 10&lt;br /&gt;
Image:AWMG page11.jpg|page 11&lt;br /&gt;
Image:AWMG page12.jpg|page 12&lt;br /&gt;
Image:AWMG page13.jpg|page 13&lt;br /&gt;
Image:AWMG page14.jpg|page 14&lt;br /&gt;
Image:AWMG page15.jpg|page 15&lt;br /&gt;
Image:AWMG page16.jpg|page 16&lt;br /&gt;
Image:AWMG page17.jpg|page 17&lt;br /&gt;
Image:AWMG page18.jpg|page 18&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Munchausen</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Amstrad_Whole_Memory_Guide_-_The_RAM_routines&amp;diff=87292</id>
		<title>Amstrad Whole Memory Guide - The RAM routines</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Amstrad_Whole_Memory_Guide_-_The_RAM_routines&amp;diff=87292"/>
				<updated>2013-05-02T10:16:11Z</updated>
		
		<summary type="html">&lt;p&gt;Munchausen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Chapter 2 in the book [[Amstrad Whole Memory Guide]].&lt;br /&gt;
[[File:AWMG page7.jpg]]&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:AWMG page7.jpg|page 7&lt;br /&gt;
Image:AWMG page8.jpg|page 8&lt;br /&gt;
Image:AWMG page9.jpg|page 9&lt;br /&gt;
Image:AWMG page10.jpg|page 10&lt;br /&gt;
Image:AWMG page11.jpg|page 11&lt;br /&gt;
Image:AWMG page12.jpg|page 12&lt;br /&gt;
Image:AWMG page13.jpg|page 13&lt;br /&gt;
Image:AWMG page14.jpg|page 14&lt;br /&gt;
Image:AWMG page15.jpg|page 15&lt;br /&gt;
Image:AWMG page16.jpg|page 16&lt;br /&gt;
Image:AWMG page17.jpg|page 17&lt;br /&gt;
Image:AWMG page18.jpg|page 18&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Munchausen</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=CRTC&amp;diff=87291</id>
		<title>CRTC</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=CRTC&amp;diff=87291"/>
				<updated>2013-05-02T09:26:13Z</updated>
		
		<summary type="html">&lt;p&gt;Munchausen: Correct bit numbers for controlling CRTC functions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* ''This is an article about the &amp;quot;Cathode Ray Tube Controller&amp;quot; hardware unit of the Amstrad CPC. For the cpc scene member see [[ChaRleyTroniC]]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The '''CRTC''' (Cathode Ray Tube Controller) generates the video signal of the Amstrad CPC.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 6845 Cathode Ray Tube Controller (CRTC) is a programmable IC used to generate video displays. This IC is used in a variety of computers including the Amstrad CPC, Amstrad CPC+ and KC Compact. &lt;br /&gt;
&lt;br /&gt;
The CRTC was a common part available from many different manufacturers. During the life of the CPC, Amstrad sourced the CRTC from various manufacturers. &lt;br /&gt;
&lt;br /&gt;
All ICs used were based on the same design but have a different implementation. As a result they do not operate identically in all situations. This document highlights these differences. &lt;br /&gt;
&lt;br /&gt;
This table lists the known ICs used, with their part number, manufacturer and type number. &lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Part number''||''Manufacturer''||''Type number (note 3)''&lt;br /&gt;
|-&lt;br /&gt;
|HD6845S||Hitachi||0&lt;br /&gt;
|-&lt;br /&gt;
|UM6845||UMC||0&lt;br /&gt;
|-&lt;br /&gt;
|UM6845R||UMC||1&lt;br /&gt;
|-&lt;br /&gt;
|MC6845||Motorola||2&lt;br /&gt;
|-&lt;br /&gt;
|AMS40489||Amstrad||3 (note 1)&lt;br /&gt;
|-&lt;br /&gt;
|40226||Amstrad||4 (note 2)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''NOTES''' &lt;br /&gt;
&lt;br /&gt;
1. The CRTC functionality is integrated into the CPC+ ASIC. This type exists only in the CPC464+,CPC6128+ and GX4000. &lt;br /&gt;
&lt;br /&gt;
2. This type exists in &amp;quot;cost-down&amp;quot; CPC464 and CPC6128 systems. In the &amp;quot;cost-down&amp;quot; the CRTC functionality is integrated into a single ASIC IC. This ASIC is often refered to as the &amp;quot;Pre-ASIC&amp;quot; because it preceeded the CPC+ ASIC.&lt;br /&gt;
 &lt;br /&gt;
3. In the Amstrad community each 6845 implementation has been assigned a type number. This type identifies a group of implementations which operate in exactly the same way. &lt;br /&gt;
&lt;br /&gt;
As far as I know, the type number system was originally used by demo programmers. &lt;br /&gt;
&lt;br /&gt;
It is possible to detect the 6845 present using software methods, and this is done to: &lt;br /&gt;
&lt;br /&gt;
* warn that the software was not designed for the detected 6845 and may function incorrectly, &lt;br /&gt;
* to adapt the software so that it will run with the detected 6845 &lt;br /&gt;
* In most cases, the type of the detected 6845 is reported. &lt;br /&gt;
&lt;br /&gt;
4. As far as I know, the KC compact used HD6845S only.&lt;br /&gt;
&lt;br /&gt;
== Timings and relating with Z80 instructions count ==&lt;br /&gt;
&lt;br /&gt;
Some informations like : how many Z80 instructions can I fit within a scan line ? Within a screen ? Etc... See http://www.cpcwiki.eu/forum/programming/frame-flyback-and-interrupts/msg25106/#msg25106&lt;br /&gt;
(To be extracted/edited to conform to wiki good practices).&lt;br /&gt;
&lt;br /&gt;
==Programming==&lt;br /&gt;
&lt;br /&gt;
The 6845 is selected when bit 14 of the I/O port address is set to &amp;quot;0&amp;quot;. Bit 9 and 8 of the I/O port address define the function to access. The remaining bits can be any value, but it is adviseable to set these to &amp;quot;1&amp;quot; to avoid conflict with other devices in the system.&lt;br /&gt;
&lt;br /&gt;
The recommended I/O port addresses are&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''I/O port address''||''Function''||''Read/Write''&lt;br /&gt;
|-&lt;br /&gt;
|&amp;amp;BCxx||Select 6845 register||Write only&lt;br /&gt;
|-&lt;br /&gt;
|&amp;amp;BDxx||Write 6845 register data||Write only&lt;br /&gt;
|-&lt;br /&gt;
|&amp;amp;BExx||(note 1)||Read only&lt;br /&gt;
|-&lt;br /&gt;
|&amp;amp;BFxx||(note 1)||Read only&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''NOTE'''&lt;br /&gt;
&lt;br /&gt;
1. The function of these I/O ports is dependant on the CRTC type&lt;br /&gt;
 &lt;br /&gt;
2. If you perform an IN instruction to the select or write functions it will write data to the CRTC from the current data on the bus.&lt;br /&gt;
&lt;br /&gt;
==Addressing==&lt;br /&gt;
&lt;br /&gt;
The following table defines the generated memory address from the CRTC and Gate-Array signals. &lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Memory Address Signal''||''Signal source''||''Signal name''&lt;br /&gt;
|-&lt;br /&gt;
|A15||6845||MA12 &lt;br /&gt;
|-&lt;br /&gt;
|A14||6845||MA11 &lt;br /&gt;
|-&lt;br /&gt;
|A13||6845||RA2 &lt;br /&gt;
|-&lt;br /&gt;
|A12||6845||RA1 &lt;br /&gt;
|-&lt;br /&gt;
|A11||6845||RA0 &lt;br /&gt;
|-&lt;br /&gt;
|A10||6845||MA9 &lt;br /&gt;
|-&lt;br /&gt;
|A9||6845||MA8 &lt;br /&gt;
|-&lt;br /&gt;
|A8||6845||MA7 &lt;br /&gt;
|-&lt;br /&gt;
|A7||6845||MA6 &lt;br /&gt;
|-&lt;br /&gt;
|A6||6845||MA5 &lt;br /&gt;
|-&lt;br /&gt;
|A5||6845||MA4 &lt;br /&gt;
|-&lt;br /&gt;
|A4||6845||MA3 &lt;br /&gt;
|-&lt;br /&gt;
|A3||6845||MA2 &lt;br /&gt;
|-&lt;br /&gt;
|A2||6845||MA1 &lt;br /&gt;
|-&lt;br /&gt;
|A1||6845||MA0&lt;br /&gt;
|-&lt;br /&gt;
|A0||Gate-Array||CCLK&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
CRTC generates the address, Gate-Array reads the data and converts it to pixels based on the current mode.&lt;br /&gt;
&lt;br /&gt;
== DISPTMG ==&lt;br /&gt;
&lt;br /&gt;
DISPTMG signal defines the border. When DISPTMG is &amp;quot;1&amp;quot; the border colour is output to the display. &lt;br /&gt;
&lt;br /&gt;
== HSYNC and VSYNC ==&lt;br /&gt;
&lt;br /&gt;
HSYNC and VSYNC from the CRTC are passed into the Gate-Array. The Gate-Array modifies the signals and then mixes these to form the Composite-Sync which is output to the display &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The 6845 Registers ==&lt;br /&gt;
&lt;br /&gt;
The Internal registers of the 6845 are:&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Register Index''||''Register Name''||''Range''||''CPC Setting''||''Notes''&lt;br /&gt;
|-&lt;br /&gt;
|0||Horizontal Total||00000000||63||Width of the screen, in characters. Should always be 63 (64 characters). 1 character == 1μs.&lt;br /&gt;
|-&lt;br /&gt;
|1||Horizontal Displayed||00000000||40||Number of characters displayed. Once horizontal character count (HCC) matches this value, DISPTMG is set to 1.&lt;br /&gt;
|-&lt;br /&gt;
|2||Horizontal Sync Position||00000000||46||When to start the HSync signal.&lt;br /&gt;
|-&lt;br /&gt;
|3||Horizontal and Vertical Sync Widths||VVVVHHHH||128+14||HSync pulse width in characters (0 means 16 on some CRTC), should always be more than 8; VSync width in scan-lines. (0 means 16 on some CRTC. Not present on all CRTCs, fixed to 16 lines on these)&lt;br /&gt;
|-&lt;br /&gt;
|4||Vertical Total||x0000000||38||Height of the screen, in characters.&lt;br /&gt;
|-&lt;br /&gt;
|5||Vertical Total Adjust||xxx00000||0||Measured in scanlines, can be used for smooth vertical scrolling on CPC.&lt;br /&gt;
|-&lt;br /&gt;
|6||Vertical Displayed||x0000000||25||Height of displayed screen in characters. Once vertical character count (VCC) matches this value, DISPTMG is set to 1.&lt;br /&gt;
|-&lt;br /&gt;
|7||Vertical Sync position||x0000000||30||When to start the VSync signal, in characters.&lt;br /&gt;
|-&lt;br /&gt;
|8||Interlace and Skew||xxxxxx00||0||00: No interlace; 01: Interlace Sync Raster Scan Mode; 10: No Interlace; 11: Interlace Sync and Video Raster Scan Mode&lt;br /&gt;
|-&lt;br /&gt;
|9||Maximum Raster Address||xxx00000||7||Maximum scan line address on CPC can hold between 0 and 7, higher values' upper bits are ignored&lt;br /&gt;
|-&lt;br /&gt;
|10||Cursor Start Raster||xBP00000||0||Cursor not used on CPC. B = Blink On/Off; P = Blink Period Control (Slow/Fast). Sets first raster row of character that cursor is on to invert.&lt;br /&gt;
|-&lt;br /&gt;
|11||Cursor End Raster||xxx00000||0||Sets last raster row of character that cursor is on to invert&lt;br /&gt;
|-&lt;br /&gt;
|12||Display Start Address (High)||xx000000||32&lt;br /&gt;
|-&lt;br /&gt;
|13||Display Start Address (Low)||00000000||0||Allows you to offset the start of screen memory, useful when using memory from address &amp;amp;0000.&lt;br /&gt;
|-&lt;br /&gt;
|14||Cursor Address (High)||xx000000||0&lt;br /&gt;
|-&lt;br /&gt;
|15||Cursor Address (High)||00000000||0&lt;br /&gt;
|-&lt;br /&gt;
|16||Light Pen Address (High)||xx000000||||Read Only&lt;br /&gt;
|-&lt;br /&gt;
|17||Light Pen Address (High)||00000000||||Read Only&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== CRTC Differences ==&lt;br /&gt;
&lt;br /&gt;
In this section I will attempt to identify all the differences between each CRTC. &lt;br /&gt;
&lt;br /&gt;
The following tables list the functions that can be accessed for each type: &lt;br /&gt;
&lt;br /&gt;
Type 0&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''b1''||''b0''||''Function''||''Read/Write'' &lt;br /&gt;
|-&lt;br /&gt;
|0||0||Select internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|0||1||Write to selected internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|1||0||-||- &lt;br /&gt;
|-&lt;br /&gt;
|1||1||Read from selected internal 6845 register||Read only &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Type 1&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''b1''||''b0''||''Function''||''Read/Write'' &lt;br /&gt;
|-&lt;br /&gt;
|0||0||Select internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|0||1||Write to selected internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|1||0||Read Status Register||Read Only &lt;br /&gt;
|-&lt;br /&gt;
|1||1||Read from selected internal 6845 register||Read only &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Type 2&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''b1''||''b0''||''Function''||''Read/Write'' &lt;br /&gt;
|-&lt;br /&gt;
|0||0||Select internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|0||1||Write to selected internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|1||0||-||- &lt;br /&gt;
|-&lt;br /&gt;
|1||1||Read from selected internal 6845 register||Read only &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Type 3 and 4&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''b1''||''b0''||''Function''||''Read/Write'' &lt;br /&gt;
|-&lt;br /&gt;
|0||0||Select internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|0||1||Write to selected internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|1||0||Read from selected internal 6845 register||Read Only &lt;br /&gt;
|-&lt;br /&gt;
|1||1||Read from selected internal 6845 register||Read only &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It is not possible to read from all the internal registers, this table shows the read/write status of each register for each type: &lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|rowspan=2|''Register Index''||rowspan=2|''Register Name''||colspan=4|''Type'' &lt;br /&gt;
|-&lt;br /&gt;
|0||1||2||3||4&lt;br /&gt;
|-&lt;br /&gt;
|0||Horizontal Total||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|1||Horizontal Displayed||Write Only||Write Only||Write Only||(note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|2||Horizontal Sync Position||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|3||Horizontal and Vertical Sync Widths||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|4||Vertical Total||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|5||Vertical Total Adjust||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|6||Vertical Displayed||Write Only||Write Only||Write Only||(note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|7||Vertical Sync position||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|8||Interlace and Skew||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|9||Maximum Raster Address||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|10||Cursor Start Raster||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|11||Cursor End Raster||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|12||Display Start Address (High)||Read/Write||Write Only||Write Only||Read/Write (note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|13||Display Start Address (Low)||Read/Write||Write Only||Write Only||Read/Write (note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|14||Cursor Address (High)||Read/Write||Read/Write||Read/Write||Read/Write (note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|15||Cursor Address (Low)||Read/Write||Read/Write||Read/Write||Read/Write (note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|16||Light Pen Address (High)||Read Only||Read Only||Read Only||Read Only (note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|17||Light Pen Address (High)||Read Only||Read Only||Read Only||Read Only (note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
&lt;br /&gt;
1. On type 0 and 1, if a Write Only register is read from, &amp;quot;0&amp;quot; is returned. &lt;br /&gt;
&lt;br /&gt;
2. See the document &amp;quot;Extra CPC Plus Hardware Information&amp;quot; for more details.&lt;br /&gt;
&lt;br /&gt;
3. CRTC type 4 is the same as CRTC type 3. The registers also repeat as they do on the type 3.&lt;br /&gt;
&lt;br /&gt;
== Datasheets ==&lt;br /&gt;
&lt;br /&gt;
* [[Media:hd6845.hitachi.pdf|HD6845 (Hitachi) (aka type 0)]]&lt;br /&gt;
* [[Media:Um6845.umc.pdf|UM6845 (UMC)  (aka type 0)]]&lt;br /&gt;
* [[Media:Um6845r.umc.pdf|UM6845R (UMC)  (aka type 1)]]&lt;br /&gt;
* [[Media:Mc6845.motorola.pdf|MC6845 (Motorola) (aka type 2)]]&lt;br /&gt;
&lt;br /&gt;
* [[VHDL implementation of the 6845]]&lt;br /&gt;
&lt;br /&gt;
== Clones ==&lt;br /&gt;
* [CM607P   a Bulgarian clone made in Pravetz factory]&lt;br /&gt;
* [EF6845P  by Thomson Semiconductors]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/6845 Wikipedia on the CRTC]&lt;br /&gt;
* [http://www.grimware.org/doku.php/documentations/devices/crtc CRTCs on grimware]&lt;br /&gt;
&lt;br /&gt;
==Related pages==&lt;br /&gt;
&lt;br /&gt;
*[[Gate Array]]&lt;br /&gt;
&lt;br /&gt;
*[[ASIC]]&lt;br /&gt;
&lt;br /&gt;
*[[Video modes]]&lt;br /&gt;
&lt;br /&gt;
*[[Synchronising with the CRTC and display]] : technic and details on the relationship between Gate Array and CRTC.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]] [[Category:CPC Internal Components]] [[Category:Programming]] [[Category:Datasheet]] [[Category:Graphic]]&lt;/div&gt;</summary>
		<author><name>Munchausen</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Multiface_II&amp;diff=87271</id>
		<title>Multiface II</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Multiface_II&amp;diff=87271"/>
				<updated>2013-04-29T16:20:03Z</updated>
		
		<summary type="html">&lt;p&gt;Munchausen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:MultifaceTwo.jpg|right|thumb|200px|The Multiface II]]Clever name, Multiface. An interface that does many things. Also completely untrue: the Multiface wasn’t an interface like a serial interface, which let you plug new kinds of gubbins into your CPC. It just sat on the back of your CPC and did its thing. Singular.&lt;br /&gt;
&lt;br /&gt;
But that was enough. Because the thing in question, for many CPC users, was a godsend. Loading games from tape is tedious: many games were available only on tape, or on disc at an extortionate price: many CPC users had disc drives. Ergo, why not think of an easy way of getting games from tape to disc?&lt;br /&gt;
&lt;br /&gt;
[[Romantic Robot]] did. The Multiface took an exact copy of what was in memory at the present moment, and saved it to disc, ready for you to reload at your leisure. All you had to do was press a little red button then select ‘Save’ from the menu that appeared.&lt;br /&gt;
&lt;br /&gt;
It was such a good idea that at least three other companies had the same plan, and brought out similar-sounding devices: [[Datel]]'s [[Action Replay]], [[Evesham Micros]]' [[Disc Wizard]], and [[Mirage Imager]]. In one of those happy coincidences of commerce and merit, the Multiface was the best of the lot, and also the one which survived.&lt;br /&gt;
&lt;br /&gt;
==Revision History==&lt;br /&gt;
&lt;br /&gt;
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 with very little success, as games for these platforms were inevitably multi-loads. They now make their living selling classical CDs. Funny old world.&lt;br /&gt;
&lt;br /&gt;
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 &amp;amp; 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.&lt;br /&gt;
&lt;br /&gt;
==Anti-Multiface==&lt;br /&gt;
&lt;br /&gt;
To return to the subject of [[Amstrad Action]], one (wilful?) misconception they put about was that Multifaces were serial-numbered. Thus you couldn’t run Multiface copies with anyone else’s machine. Needless to say, this was b... – er, balderdash – as the only check made (in later Multifaces) was on machine type. This meant that you couldn’t run copies made on a 464 on a 6128, or vice versa: and of course, you needed a Multiface to run them at all.&lt;br /&gt;
&lt;br /&gt;
Tant pis. Enter Serge Querne, usually known as [[Longshot]], the founder of [[Logon System]], but in this case masquerading as Magic Software’s Merlin J Bond. His rather spiffing utility, Anti-Multiface (aka Multimag), made Multiface copies into stand-alone programs.&lt;br /&gt;
&lt;br /&gt;
Suddenly, you could run Multiface copies on any CPC, from the B:-drive, without a Multiface even. You needed 128k, of course, and the original program couldn’t use extra memory. But these were small prices to pay. With this tool, the Multiface reverted from its sheep-like backup identity to its original wolf persona as Ultimate Facilitator of Mass Piracy. Except no European cracker would be seen dead using one.&lt;br /&gt;
&lt;br /&gt;
==How did it work?==&lt;br /&gt;
&lt;br /&gt;
This was really ingenious, and I’m indebted to Rob Scott for explaining it.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
OPENOUT &amp;quot;filename&amp;quot; : FOR n=0 TO 65535 : PRINT#9,CHR$(PEEK(n)); : NEXT : CLOSEOUT&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
But that only records what’s in memory. The CPC also has a barrage of dedicated chips to control the display (the [[CRTC]]), colours and memory configuration (the [[Gate Array]]), sound and the keyboard (the [[PSG]]), and so on. There is no equivalent of the PEEK command for these chips. So how do you find out what the settings are – what colours are in use, what size and mode the screen is in, and so on?&lt;br /&gt;
&lt;br /&gt;
It works like this. The CPC sends instructions to these chips using the OUT command. Each chip has a different address. So you can send the value 1 to the CRTC with the command OUT &amp;amp;BC00,1; you can send the same value to the VGA with the command OUT &amp;amp;7F00,1; and so on.&lt;br /&gt;
&lt;br /&gt;
The CPC uses the same command to send instructions to anything bolted onto the expansion port. So if you have a 464 with a DDI-1 disc drive connected, typing OUT &amp;amp;FA7E,1 will turn the disc motor on. (It works on a 664 and a 6128, too, proving that the CPC sees no difference between internal and external chips.)&lt;br /&gt;
&lt;br /&gt;
But the instruction doesn’t magically go to the right chip: it goes to all of them. When we sent our instruction OUT &amp;amp;BC00,1 to the CRTC, the VGA will have seen it, as will your disc drive, your Multiface, and anything else you’ve got connected. They just think “oh, this is going to &amp;amp;BC00 – so it’s meant for the CRTC”, and ignore it.&lt;br /&gt;
&lt;br /&gt;
At least, the disc drive and VGA ignore it. The Multiface memorises it, thereby building up a record of what you’ve told each chip to do. To change the screen mode to MODE 2, for example, you send a particular byte to the VGA. The VGA gets the byte, and changes to MODE 2: the Multiface gets it, and makes a little note “we’re in MODE 2”.&lt;br /&gt;
&lt;br /&gt;
All of these settings are saved on disc as part of your backup. So when you load the Multiface-saved copy, it knows exactly how to set up each chip.&lt;br /&gt;
&lt;br /&gt;
== Technical ==&lt;br /&gt;
&lt;br /&gt;
As said above, the multiface watches the bus for writes to I/O ports, and memorizes the written values (required since most of the Gate Array and CRTC ports are write-only). Reading the memorized values is probably done via these I/O ports:&lt;br /&gt;
  #FEE8 Multiface II - Enable Multiface II ROM/RAM (W)&lt;br /&gt;
  #FEEA Multiface II - Disable Multiface II ROM/RAM (W)&lt;br /&gt;
Writing any value to these I/O ports enables/disables the 8K ROM and 8K RAM in the Multiface. When enabled, the ROM/RAM are mapped to following addresses,&lt;br /&gt;
  0000h-1FFFh Multiface ROM (including [[NMI]] vector at 0066h)&lt;br /&gt;
  2000h-3FFFh Multiface RAM&lt;br /&gt;
with the internal ROM/RAM at 0000h-3FFFh in the CPC being disabled.&lt;br /&gt;
&lt;br /&gt;
== Toolkit ==&lt;br /&gt;
&lt;br /&gt;
When I said that the Multiface only did one thing, I was lying. It does two. Just about. &lt;br /&gt;
&lt;br /&gt;
There’s a very basic memory editor built into the Multiface, which enables you to view and edit the current contents of your CPC’s memory. Er, that’s about it. Something I always found useful is that it would work in both hexadecimal and plain vanilla decimal numbers – so if I’d lost my scientific calculator (again), I still had a hex-to-decimal converter at my fingertips. &lt;br /&gt;
&lt;br /&gt;
But this ability to edit the memory could be used in a very clever way to enter an assembler program and change the PC&amp;amp;nbsp;(actual executing address) to run it. The most famous use is, arguably, a BANK&amp;amp;nbsp;DUMPING&amp;amp;nbsp;PROGRAM , that dumped the first 64Kb of memory to the second bank on a CPC6128, then reset the machine. That took advantage of the fact that the second 64kb survived a RESET, so all the program was there ready to save from BASIC. The procedure was simple, just entering those bytes in any memory location (not in the 4000-7FFF range):&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
01 C4 7F ED 49 21 00 00 11 00 40 01 00 40 ED&amp;amp;nbsp;B0 =&amp;amp;gt; dump 0000-3FFF into first 16kb of second bank&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
01 C6 7F ED 49 21 00 80 11 00 40 01 00 40 ED&amp;amp;nbsp;B0 =&amp;amp;gt; dump 8000-BFFF into third 16kb of second bank &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
01 C7 7F ED 49 21 00 C0 11 00 40 01 00 40 ED B0 =&amp;amp;gt; dump C000-FFFF into fourth 16kb of second bank&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
01 C0 7F ED 49 21 00 40 11 00 C0 01 00 40 ED B0 =&amp;amp;gt; dump 4000-7FFF to screen (already saved)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
01 C5 7F ED 49 21 00 C0 11 00 40 01 00 40 ED B0 =&amp;amp;gt; dump screen to second 16kb of second bank&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
01 C0 7F ED 49 C3 00 00 =&amp;amp;gt; reset bank status and reset the machine&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the machine was reset, you could save all the program to basic doing:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OUT&amp;amp;nbsp;&amp;amp;amp;7fc4,&amp;amp;amp;c4: save &amp;quot;game-1&amp;quot;,b,&amp;amp;amp;4000,&amp;amp;amp;3fff&lt;br /&gt;
&lt;br /&gt;
OUT &amp;amp;amp;7fc5,&amp;amp;amp;c5: save &amp;quot;game-2&amp;quot;,b,&amp;amp;amp;4000,&amp;amp;amp;3fff&amp;lt;br&amp;gt;OUT &amp;amp;amp;7fc6,&amp;amp;amp;c6: save &amp;quot;game-3&amp;quot;,b,&amp;amp;amp;4000,&amp;amp;amp;3fff&amp;lt;br&amp;gt;OUT &amp;amp;amp;7fc7,&amp;amp;amp;c7: save &amp;quot;game-4&amp;quot;,b,&amp;amp;amp;4000,&amp;amp;amp;3fff&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This trick was used to save heavily protected games to disk.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Something more people found useful was that you could change crucial parts of a game – notably the memory location that holds your current number of lives. Change it from 3 to 250, and you’re laughing. AA would print lists of such ‘Multiface pokes’ every issue. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eat my Multiface==&lt;br /&gt;
&lt;br /&gt;
Many games, and even the odd demo, picked up on the presence of a Multiface. In order to stop illegal copying (or in the case of the demos, just to look smart), they would then refuse to work.&lt;br /&gt;
&lt;br /&gt;
Most notorious of all was [[Elmsoft]]’s [[Zap't'Balls]]. Run it with the Multiface plugged in, press the red button, and you’d get a rather rude message. Ironically, one of the much-vaunted cracks of Zap’t’Balls was accomplished largely with the Multiface’s latterday rival – [[Siren Software]]’s [[Hackit]]. See BTL 2 for more.&lt;br /&gt;
&lt;br /&gt;
To get around this, Romantic Robot put an on/off switch on the Multiface. When it was turned on, you could make copies, reload games saved with the Multiface, and use the toolkit. When it was turned off, you couldn’t. Seems fine.&lt;br /&gt;
&lt;br /&gt;
But some games constantly checked for the presence of a Multiface. If you turned your Multiface on even one fiftieth of a second before pressing the red button, the game would crash. Since not even [[Wild Thang|Richard Wildey]] has reactions that sharp, you were still lumbered.&lt;br /&gt;
&lt;br /&gt;
Romantic Robot came up with a typically elegant solution. The Multiface was always off, until you pressed the red button. Then it turned itself on just in time to bring up the menu allowing you to save your game. This done, you pressed ‘R’ to return to the game, at which the Multiface turned itself off again.&lt;br /&gt;
&lt;br /&gt;
There is a small flaw in this solution, of course – namely that if the Multiface is always turned off, you can’t load your saved games, which require the Multiface to be turned on before they’ll run. So Romantic Robot added a blue button. This reset your CPC and turned the Multiface on at the same time. If you wanted to run a game that objected to the presence of a Multiface, you just pressed the red button followed by ‘R’ for return.&lt;br /&gt;
&lt;br /&gt;
It may all sound complicated, but it worked in almost 100% of cases.&lt;br /&gt;
&lt;br /&gt;
==Multiface Software==&lt;br /&gt;
&lt;br /&gt;
Some programs were written to co-operate with the Multiface, rather than fight against it. &lt;br /&gt;
&lt;br /&gt;
* [[Comparator]]&lt;br /&gt;
* [[Gripper]]&lt;br /&gt;
* [[Soundhakker]]&lt;br /&gt;
* [[Tearaway]]&lt;br /&gt;
* [[The Insider]] (a Multiface II tool from Romantic Robot themselves)&lt;br /&gt;
* [[TUSS (The Ultimate Sprite Searcher)]]&lt;br /&gt;
&lt;br /&gt;
Were all hacking programs designed to expand the capabilities of the Multiface.&lt;br /&gt;
&lt;br /&gt;
[[The Insider]] was written by Romantic Robot, while the others were all third party products.&lt;br /&gt;
[[The Insider]] was also unique in that you could still press ‘R’ to return to the program currently running.&lt;br /&gt;
&lt;br /&gt;
TUSS and Soundhakker, by [[Wild Thang|Richard Wildey]] and [[Hangman|Rob Scott]] respectively, were particularly specialised tools. TUSS helped you to nick graphics out of other people’s games: Soundhakker helped you to nick Soundtrakker tunes from demos and fanzines. Amstrad Action (them again) once tested Tearaway against TUSS, found in favour of Tearaway, and then completely disproved their findings by using TUSS, not Tearaway, to remove the nipples from the covertape version of [[Stormlord]].&lt;br /&gt;
&lt;br /&gt;
Both [[Doctor Fegg]] and Richard ‘[[User:Executioner]]’ Wilson started work on powerful hacking programs which would work with the Multiface, titled [[Dr Fegg’s Hack Pack]] and [[Amigo]] respectively. Neither was ever finished.&lt;br /&gt;
&lt;br /&gt;
==Fifteen years later==&lt;br /&gt;
&lt;br /&gt;
The Multiface originally sold for £40 or so. These days, £15 is a fair second-hand price: any less and you’ve got a good deal.&lt;br /&gt;
&lt;br /&gt;
Most CPC emulators provide equivalents of the Multiface’s two main features. Instant copies can be made with the ‘snapshots’ feature, creating files with an .SNA extension that can be easily reloaded. The toolkit, meanwhile, has been replicated with whizzy new disassemblers/monitors/what-have-you. Of course, since emulators can’t load files from tape, it’s not really the same any more.&lt;br /&gt;
&lt;br /&gt;
==Epilogue: AA again==&lt;br /&gt;
&lt;br /&gt;
The various complexities of the Multiface meant that Amstrad Action readers were always writing in with questions. It’s actually quite hard to come up with attractive illustrations in a computer magazine. So AA always used to print a picture of a Multiface.&lt;br /&gt;
&lt;br /&gt;
Until one fateful day, when the usual spot was blank. The caption said it all: “We used our picture of the Multiface so much that it wore out. So this is blank until we get round to taking a new one.”&lt;br /&gt;
&lt;br /&gt;
'''This article originally appeared in [[WACCI]] issue 136.''' Reproduced with permission of the author ([[ChaRleyTroniC|Richard Fairhurst]]).&lt;br /&gt;
&lt;br /&gt;
== Manual ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.cpcwiki.eu/manuals/Multiface%202%20Manual.en.rar Multiface II Manual] - RARed PDF version&lt;br /&gt;
* [[Media:Multiface Two User Manual.zip]] - zipped HTML version&lt;br /&gt;
* [[Media:Multiface Two User Manual.txt]] - clean TXT version&lt;br /&gt;
* [[Multiface III|Multiface III Manual]] - jpg's (for ZX Spectrum +3 and +2A, not for CPC)&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Multiface&amp;quot;&amp;gt;&lt;br /&gt;
Image:multiface.jpg|Multiface closeup&lt;br /&gt;
Image:Multiface II advertisment.jpg|Advertisement&lt;br /&gt;
Image:MultifaceII AA100.jpg|Advertisement in AA 100&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
There are at least 3 firmware versions. The year &amp;amp; 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.&lt;br /&gt;
&lt;br /&gt;
*Original AMSDOS:&lt;br /&gt;
** [[Media:Multiface.two.romantic.robot.86.zip]] - ROM image (1986, chksum=86h)&lt;br /&gt;
** [[Media:Multiface.two.romantic.robot.3e.amsdos.v05.zip]] - &lt;br /&gt;
** [[Media:Multiface.two.romantic.robot.0e.zip]] - ROM image (1988, chksum=0Eh)&lt;br /&gt;
** [[Media:Multiface.two.romantic.robot.78.amsdos.v05.zip]]&lt;br /&gt;
** [[Media:Multiface.two.romantic.robot.8d.amsdos.v05.zip]]&lt;br /&gt;
* For the Amstrad Plus series:&lt;br /&gt;
** [[Media:Multiface.two.romantic.robot.8b.zip]] - ROM image (1990, chksum=8Bh)&lt;br /&gt;
** [[Media:Multiface.two.romantic.robot.78.amsdos.v07.zip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
You can find more versions (and more info, besides) over at the [http://www.grimware.org/doku.php/documentations/expansions/mf2/start Grimware site]&lt;br /&gt;
&lt;br /&gt;
==Remake==&lt;br /&gt;
A project was begun to remake the multiface (by Giant of cpc-hardware). Details are [http://amstrad.eu/modules/smartsection/item.php?itemid=141 here] (in French). For posterity, all the information and files from that page have been gathered and are available in this zip file: [[File:MF2.zip|MF2.zip]].&lt;br /&gt;
&lt;br /&gt;
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. It's unclear what the newer version of that PAL chip is for, but CPC+ support would seem likely. None the less there should be enough here to build a replica multiface II, though it might not work on the CPC+.&lt;br /&gt;
&lt;br /&gt;
One thing missing from the site linked above is a .EQN file for one of the PALs, IC3 (the same one for which two versions exist), but after tracking down a tool it has been generated and is available as IC3_OLD.EQN in the zip. (The EQN files detail the boolean input/output equations implemented by the chip).&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
A lot of information on the Multiface II is available on [http://www.grimware.org/doku.php/documentations/expansions/mf2/start grimware.org].&lt;br /&gt;
&lt;br /&gt;
[[Category:Copy Protection]] [[Category:Peripherals]] [[Category:Manual]]&lt;/div&gt;</summary>
		<author><name>Munchausen</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Multiface_II&amp;diff=87269</id>
		<title>Multiface II</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Multiface_II&amp;diff=87269"/>
				<updated>2013-04-26T13:39:03Z</updated>
		
		<summary type="html">&lt;p&gt;Munchausen: Added remake files and info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:MultifaceTwo.jpg|right|thumb|200px|The Multiface II]]Clever name, Multiface. An interface that does many things. Also completely untrue: the Multiface wasn’t an interface like a serial interface, which let you plug new kinds of gubbins into your CPC. It just sat on the back of your CPC and did its thing. Singular.&lt;br /&gt;
&lt;br /&gt;
But that was enough. Because the thing in question, for many CPC users, was a godsend. Loading games from tape is tedious: many games were available only on tape, or on disc at an extortionate price: many CPC users had disc drives. Ergo, why not think of an easy way of getting games from tape to disc?&lt;br /&gt;
&lt;br /&gt;
[[Romantic Robot]] did. The Multiface took an exact copy of what was in memory at the present moment, and saved it to disc, ready for you to reload at your leisure. All you had to do was press a little red button then select ‘Save’ from the menu that appeared.&lt;br /&gt;
&lt;br /&gt;
It was such a good idea that at least three other companies had the same plan, and brought out similar-sounding devices: [[Datel]]'s [[Action Replay]], [[Evesham Micros]]' [[Disc Wizard]], and [[Mirage Imager]]. In one of those happy coincidences of commerce and merit, the Multiface was the best of the lot, and also the one which survived.&lt;br /&gt;
&lt;br /&gt;
==Revision History==&lt;br /&gt;
&lt;br /&gt;
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 with very little success, as games for these platforms were inevitably multi-loads. They now make their living selling classical CDs. Funny old world.&lt;br /&gt;
&lt;br /&gt;
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 &amp;amp; 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.&lt;br /&gt;
&lt;br /&gt;
==Anti-Multiface==&lt;br /&gt;
&lt;br /&gt;
To return to the subject of [[Amstrad Action]], one (wilful?) misconception they put about was that Multifaces were serial-numbered. Thus you couldn’t run Multiface copies with anyone else’s machine. Needless to say, this was b... – er, balderdash – as the only check made (in later Multifaces) was on machine type. This meant that you couldn’t run copies made on a 464 on a 6128, or vice versa: and of course, you needed a Multiface to run them at all.&lt;br /&gt;
&lt;br /&gt;
Tant pis. Enter Serge Querne, usually known as [[Longshot]], the founder of [[Logon System]], but in this case masquerading as Magic Software’s Merlin J Bond. His rather spiffing utility, Anti-Multiface (aka Multimag), made Multiface copies into stand-alone programs.&lt;br /&gt;
&lt;br /&gt;
Suddenly, you could run Multiface copies on any CPC, from the B:-drive, without a Multiface even. You needed 128k, of course, and the original program couldn’t use extra memory. But these were small prices to pay. With this tool, the Multiface reverted from its sheep-like backup identity to its original wolf persona as Ultimate Facilitator of Mass Piracy. Except no European cracker would be seen dead using one.&lt;br /&gt;
&lt;br /&gt;
==How did it work?==&lt;br /&gt;
&lt;br /&gt;
This was really ingenious, and I’m indebted to Rob Scott for explaining it.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
OPENOUT &amp;quot;filename&amp;quot; : FOR n=0 TO 65535 : PRINT#9,CHR$(PEEK(n)); : NEXT : CLOSEOUT&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
But that only records what’s in memory. The CPC also has a barrage of dedicated chips to control the display (the [[CRTC]]), colours and memory configuration (the [[Gate Array]]), sound and the keyboard (the [[PSG]]), and so on. There is no equivalent of the PEEK command for these chips. So how do you find out what the settings are – what colours are in use, what size and mode the screen is in, and so on?&lt;br /&gt;
&lt;br /&gt;
It works like this. The CPC sends instructions to these chips using the OUT command. Each chip has a different address. So you can send the value 1 to the CRTC with the command OUT &amp;amp;BC00,1; you can send the same value to the VGA with the command OUT &amp;amp;7F00,1; and so on.&lt;br /&gt;
&lt;br /&gt;
The CPC uses the same command to send instructions to anything bolted onto the expansion port. So if you have a 464 with a DDI-1 disc drive connected, typing OUT &amp;amp;FA7E,1 will turn the disc motor on. (It works on a 664 and a 6128, too, proving that the CPC sees no difference between internal and external chips.)&lt;br /&gt;
&lt;br /&gt;
But the instruction doesn’t magically go to the right chip: it goes to all of them. When we sent our instruction OUT &amp;amp;BC00,1 to the CRTC, the VGA will have seen it, as will your disc drive, your Multiface, and anything else you’ve got connected. They just think “oh, this is going to &amp;amp;BC00 – so it’s meant for the CRTC”, and ignore it.&lt;br /&gt;
&lt;br /&gt;
At least, the disc drive and VGA ignore it. The Multiface memorises it, thereby building up a record of what you’ve told each chip to do. To change the screen mode to MODE 2, for example, you send a particular byte to the VGA. The VGA gets the byte, and changes to MODE 2: the Multiface gets it, and makes a little note “we’re in MODE 2”.&lt;br /&gt;
&lt;br /&gt;
All of these settings are saved on disc as part of your backup. So when you load the Multiface-saved copy, it knows exactly how to set up each chip.&lt;br /&gt;
&lt;br /&gt;
== Technical ==&lt;br /&gt;
&lt;br /&gt;
As said above, the multiface watches the bus for writes to I/O ports, and memorizes the written values (required since most of the Gate Array and CRTC ports are write-only). Reading the memorized values is probably done via these I/O ports:&lt;br /&gt;
  #FEE8 Multiface II - Enable Multiface II ROM/RAM (W)&lt;br /&gt;
  #FEEA Multiface II - Disable Multiface II ROM/RAM (W)&lt;br /&gt;
Writing any value to these I/O ports enables/disables the 8K ROM and 8K RAM in the Multiface. When enabled, the ROM/RAM are mapped to following addresses,&lt;br /&gt;
  0000h-1FFFh Multiface ROM (including [[NMI]] vector at 0066h)&lt;br /&gt;
  2000h-3FFFh Multiface RAM&lt;br /&gt;
with the internal ROM/RAM at 0000h-3FFFh in the CPC being disabled.&lt;br /&gt;
&lt;br /&gt;
== Toolkit ==&lt;br /&gt;
&lt;br /&gt;
When I said that the Multiface only did one thing, I was lying. It does two. Just about. &lt;br /&gt;
&lt;br /&gt;
There’s a very basic memory editor built into the Multiface, which enables you to view and edit the current contents of your CPC’s memory. Er, that’s about it. Something I always found useful is that it would work in both hexadecimal and plain vanilla decimal numbers – so if I’d lost my scientific calculator (again), I still had a hex-to-decimal converter at my fingertips. &lt;br /&gt;
&lt;br /&gt;
But this ability to edit the memory could be used in a very clever way to enter an assembler program and change the PC&amp;amp;nbsp;(actual executing address) to run it. The most famous use is, arguably, a BANK&amp;amp;nbsp;DUMPING&amp;amp;nbsp;PROGRAM , that dumped the first 64Kb of memory to the second bank on a CPC6128, then reset the machine. That took advantage of the fact that the second 64kb survived a RESET, so all the program was there ready to save from BASIC. The procedure was simple, just entering those bytes in any memory location (not in the 4000-7FFF range):&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
01 C4 7F ED 49 21 00 00 11 00 40 01 00 40 ED&amp;amp;nbsp;B0 =&amp;amp;gt; dump 0000-3FFF into first 16kb of second bank&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
01 C6 7F ED 49 21 00 80 11 00 40 01 00 40 ED&amp;amp;nbsp;B0 =&amp;amp;gt; dump 8000-BFFF into third 16kb of second bank &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
01 C7 7F ED 49 21 00 C0 11 00 40 01 00 40 ED B0 =&amp;amp;gt; dump C000-FFFF into fourth 16kb of second bank&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
01 C0 7F ED 49 21 00 40 11 00 C0 01 00 40 ED B0 =&amp;amp;gt; dump 4000-7FFF to screen (already saved)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
01 C5 7F ED 49 21 00 C0 11 00 40 01 00 40 ED B0 =&amp;amp;gt; dump screen to second 16kb of second bank&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
01 C0 7F ED 49 C3 00 00 =&amp;amp;gt; reset bank status and reset the machine&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the machine was reset, you could save all the program to basic doing:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OUT&amp;amp;nbsp;&amp;amp;amp;7fc4,&amp;amp;amp;c4: save &amp;quot;game-1&amp;quot;,b,&amp;amp;amp;4000,&amp;amp;amp;3fff&lt;br /&gt;
&lt;br /&gt;
OUT &amp;amp;amp;7fc5,&amp;amp;amp;c5: save &amp;quot;game-2&amp;quot;,b,&amp;amp;amp;4000,&amp;amp;amp;3fff&amp;lt;br&amp;gt;OUT &amp;amp;amp;7fc6,&amp;amp;amp;c6: save &amp;quot;game-3&amp;quot;,b,&amp;amp;amp;4000,&amp;amp;amp;3fff&amp;lt;br&amp;gt;OUT &amp;amp;amp;7fc7,&amp;amp;amp;c7: save &amp;quot;game-4&amp;quot;,b,&amp;amp;amp;4000,&amp;amp;amp;3fff&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This trick was used to save heavily protected games to disk.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Something more people found useful was that you could change crucial parts of a game – notably the memory location that holds your current number of lives. Change it from 3 to 250, and you’re laughing. AA would print lists of such ‘Multiface pokes’ every issue. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eat my Multiface==&lt;br /&gt;
&lt;br /&gt;
Many games, and even the odd demo, picked up on the presence of a Multiface. In order to stop illegal copying (or in the case of the demos, just to look smart), they would then refuse to work.&lt;br /&gt;
&lt;br /&gt;
Most notorious of all was [[Elmsoft]]’s [[Zap't'Balls]]. Run it with the Multiface plugged in, press the red button, and you’d get a rather rude message. Ironically, one of the much-vaunted cracks of Zap’t’Balls was accomplished largely with the Multiface’s latterday rival – [[Siren Software]]’s [[Hackit]]. See BTL 2 for more.&lt;br /&gt;
&lt;br /&gt;
To get around this, Romantic Robot put an on/off switch on the Multiface. When it was turned on, you could make copies, reload games saved with the Multiface, and use the toolkit. When it was turned off, you couldn’t. Seems fine.&lt;br /&gt;
&lt;br /&gt;
But some games constantly checked for the presence of a Multiface. If you turned your Multiface on even one fiftieth of a second before pressing the red button, the game would crash. Since not even [[Wild Thang|Richard Wildey]] has reactions that sharp, you were still lumbered.&lt;br /&gt;
&lt;br /&gt;
Romantic Robot came up with a typically elegant solution. The Multiface was always off, until you pressed the red button. Then it turned itself on just in time to bring up the menu allowing you to save your game. This done, you pressed ‘R’ to return to the game, at which the Multiface turned itself off again.&lt;br /&gt;
&lt;br /&gt;
There is a small flaw in this solution, of course – namely that if the Multiface is always turned off, you can’t load your saved games, which require the Multiface to be turned on before they’ll run. So Romantic Robot added a blue button. This reset your CPC and turned the Multiface on at the same time. If you wanted to run a game that objected to the presence of a Multiface, you just pressed the red button followed by ‘R’ for return.&lt;br /&gt;
&lt;br /&gt;
It may all sound complicated, but it worked in almost 100% of cases.&lt;br /&gt;
&lt;br /&gt;
==Multiface Software==&lt;br /&gt;
&lt;br /&gt;
Some programs were written to co-operate with the Multiface, rather than fight against it. &lt;br /&gt;
&lt;br /&gt;
* [[Comparator]]&lt;br /&gt;
* [[Gripper]]&lt;br /&gt;
* [[Soundhakker]]&lt;br /&gt;
* [[Tearaway]]&lt;br /&gt;
* [[The Insider]] (a Multiface II tool from Romantic Robot themselves)&lt;br /&gt;
* [[TUSS (The Ultimate Sprite Searcher)]]&lt;br /&gt;
&lt;br /&gt;
Were all hacking programs designed to expand the capabilities of the Multiface.&lt;br /&gt;
&lt;br /&gt;
[[The Insider]] was written by Romantic Robot, while the others were all third party products.&lt;br /&gt;
[[The Insider]] was also unique in that you could still press ‘R’ to return to the program currently running.&lt;br /&gt;
&lt;br /&gt;
TUSS and Soundhakker, by [[Wild Thang|Richard Wildey]] and [[Hangman|Rob Scott]] respectively, were particularly specialised tools. TUSS helped you to nick graphics out of other people’s games: Soundhakker helped you to nick Soundtrakker tunes from demos and fanzines. Amstrad Action (them again) once tested Tearaway against TUSS, found in favour of Tearaway, and then completely disproved their findings by using TUSS, not Tearaway, to remove the nipples from the covertape version of [[Stormlord]].&lt;br /&gt;
&lt;br /&gt;
Both [[Doctor Fegg]] and Richard ‘[[User:Executioner]]’ Wilson started work on powerful hacking programs which would work with the Multiface, titled [[Dr Fegg’s Hack Pack]] and [[Amigo]] respectively. Neither was ever finished.&lt;br /&gt;
&lt;br /&gt;
==Fifteen years later==&lt;br /&gt;
&lt;br /&gt;
The Multiface originally sold for £40 or so. These days, £15 is a fair second-hand price: any less and you’ve got a good deal.&lt;br /&gt;
&lt;br /&gt;
Most CPC emulators provide equivalents of the Multiface’s two main features. Instant copies can be made with the ‘snapshots’ feature, creating files with an .SNA extension that can be easily reloaded. The toolkit, meanwhile, has been replicated with whizzy new disassemblers/monitors/what-have-you. Of course, since emulators can’t load files from tape, it’s not really the same any more.&lt;br /&gt;
&lt;br /&gt;
==Epilogue: AA again==&lt;br /&gt;
&lt;br /&gt;
The various complexities of the Multiface meant that Amstrad Action readers were always writing in with questions. It’s actually quite hard to come up with attractive illustrations in a computer magazine. So AA always used to print a picture of a Multiface.&lt;br /&gt;
&lt;br /&gt;
Until one fateful day, when the usual spot was blank. The caption said it all: “We used our picture of the Multiface so much that it wore out. So this is blank until we get round to taking a new one.”&lt;br /&gt;
&lt;br /&gt;
'''This article originally appeared in [[WACCI]] issue 136.''' Reproduced with permission of the author ([[ChaRleyTroniC|Richard Fairhurst]]).&lt;br /&gt;
&lt;br /&gt;
== Manual ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.cpcwiki.eu/manuals/Multiface%202%20Manual.en.rar Multiface II Manual] - RARed PDF version&lt;br /&gt;
* [[Media:Multiface Two User Manual.zip]] - zipped HTML version&lt;br /&gt;
* [[Media:Multiface Two User Manual.txt]] - clean TXT version&lt;br /&gt;
* [[Multiface III|Multiface III Manual]] - jpg's (for ZX Spectrum +3 and +2A, not for CPC)&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Multiface&amp;quot;&amp;gt;&lt;br /&gt;
Image:multiface.jpg|Multiface closeup&lt;br /&gt;
Image:Multiface II advertisment.jpg|Advertisement&lt;br /&gt;
Image:MultifaceII AA100.jpg|Advertisement in AA 100&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
There are at least 3 firmware versions. The year &amp;amp; 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.&lt;br /&gt;
&lt;br /&gt;
*Original AMSDOS:&lt;br /&gt;
** [[Media:Multiface.two.romantic.robot.86.zip]] - ROM image (1986, chksum=86h)&lt;br /&gt;
** [[Media:Multiface.two.romantic.robot.3e.amsdos.v05.zip]] - &lt;br /&gt;
** [[Media:Multiface.two.romantic.robot.0e.zip]] - ROM image (1988, chksum=0Eh)&lt;br /&gt;
** [[Media:Multiface.two.romantic.robot.78.amsdos.v05.zip]]&lt;br /&gt;
** [[Media:Multiface.two.romantic.robot.8d.amsdos.v05.zip]]&lt;br /&gt;
* For the Amstrad Plus series:&lt;br /&gt;
** [[Media:Multiface.two.romantic.robot.8b.zip]] - ROM image (1990, chksum=8Bh)&lt;br /&gt;
** [[Media:Multiface.two.romantic.robot.78.amsdos.v07.zip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
You can find more versions (and more info, besides) over at the [http://www.grimware.org/doku.php/documentations/expansions/mf2/start Grimware site]&lt;br /&gt;
&lt;br /&gt;
==Remake==&lt;br /&gt;
A project was begun to remake the multiface, details are [http://amstrad.eu/modules/smartsection/item.php?itemid=141 here] (in French). I have generated the missing IC3_OLD.EQN file and packaged all the files into a zip for posterity. Unfortunately the IC3_NEW.JED file link on the original page is gone, but there should still be enough here to create a replica of a multiface II. Here is the file: [[File:MF2.zip|MF2.zip]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Copy Protection]] [[Category:Peripherals]] [[Category:Manual]]&lt;/div&gt;</summary>
		<author><name>Munchausen</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:MF2.zip&amp;diff=87268</id>
		<title>File:MF2.zip</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:MF2.zip&amp;diff=87268"/>
				<updated>2013-04-26T13:36:23Z</updated>
		
		<summary type="html">&lt;p&gt;Munchausen: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Munchausen</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Connector:Expansion_port&amp;diff=87267</id>
		<title>Connector:Expansion port</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Connector:Expansion_port&amp;diff=87267"/>
				<updated>2013-04-26T12:45:25Z</updated>
		
		<summary type="html">&lt;p&gt;Munchausen: Add signal descriptions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== CPC Expansion Port ==&lt;br /&gt;
&lt;br /&gt;
[[File:ExpansionPortEdge.gif]]&lt;br /&gt;
&lt;br /&gt;
[[File:ExpansionPortPlus.png]]&lt;br /&gt;
&lt;br /&gt;
EXPANSION: 50 way Delta range. &lt;br /&gt;
&lt;br /&gt;
 1  Sound     2  GND&lt;br /&gt;
 3  A15       4  A14&lt;br /&gt;
 5  A13       6  A12&lt;br /&gt;
 7  A11       8  A10&lt;br /&gt;
 9  A9        10 A8&lt;br /&gt;
 11 A7        12 A6&lt;br /&gt;
 13 A5        14 A4&lt;br /&gt;
 15 A3        16 A2&lt;br /&gt;
 17 A1        18 A0&lt;br /&gt;
 19 D7        20 D6&lt;br /&gt;
 21 D5        22 D4&lt;br /&gt;
 23 D3        24 D2&lt;br /&gt;
 25 D1        26 D0&lt;br /&gt;
 27 VCC       28 *MREQ&lt;br /&gt;
 29 *M1       30 *RFSH&lt;br /&gt;
 31 *IORQ     32 *RD&lt;br /&gt;
 33 *WR       34 *HALT&lt;br /&gt;
 35 *INT      36 *NMI&lt;br /&gt;
 37 *BUSRQ    38 *BUSAK&lt;br /&gt;
 39 READY     40 *BRST&lt;br /&gt;
 41 *RSET     42 *ROMEN&lt;br /&gt;
 43 ROMDIS    44 *RAMRD&lt;br /&gt;
 45 RAMDIS    46 CURSOR&lt;br /&gt;
 47 LPEN      48 *EXP&lt;br /&gt;
 49 GND       50 CLK4&lt;br /&gt;
&lt;br /&gt;
== KC Compact Expansion Port ==&lt;br /&gt;
&lt;br /&gt;
The [[KC Compact]] has 58pin, special-type connector&lt;br /&gt;
  1B  +12V (20mA max)              29B ............................. 1B&lt;br /&gt;
  1A  +20V                         29A ............................. 1A&lt;br /&gt;
  2B  Same as CPC Pin1     (SOUND)&lt;br /&gt;
  2A  Same as CPC Pin2     (GND)&lt;br /&gt;
  ..  Same as CPC Pin3..48 (see there)&lt;br /&gt;
  26B Same as CPC Pin49    (GND)&lt;br /&gt;
  26A Same as CPC Pin50    (4MHz)&lt;br /&gt;
  27B FBAS Video Output&lt;br /&gt;
  27A PIO /TEST          ;\&lt;br /&gt;
  28B Printer Bit1       ;&lt;br /&gt;
  28A Printer Bit0       ; for TEST mode (remote-network-boot)&lt;br /&gt;
  29B Printer /Strobe    ;&lt;br /&gt;
  29A Printer Bit6       ;/&lt;br /&gt;
&lt;br /&gt;
== Expansion Port on Aleste 520EX Expansion Port ==&lt;br /&gt;
&lt;br /&gt;
The [[Aleste 520EX]] has a 62pin, male edge connector.&lt;br /&gt;
  A1..A25  Same as &amp;lt;odd&amp;gt;  CPC Pins 1..49 (ie. SOUND, A15, A14, etc.)&lt;br /&gt;
  B1..B25  Same as &amp;lt;even&amp;gt; CPC Pins 2..50 (except B20=NC, instead /BUSRESET)&lt;br /&gt;
  A26 MAP14     B26 MAP15&lt;br /&gt;
  A27 MAP16     B27 MAP17            A31___________________A1&lt;br /&gt;
  A28 MAP18     B28 MAPBLK             |___________________|&lt;br /&gt;
  A29 /INTA     B29 /DISP            B31                   B1&lt;br /&gt;
  A30 Agnd      B30 /CPU&lt;br /&gt;
  A31 Aucc      B31 HIGH&lt;br /&gt;
Most of the extra pins are DMA related. The Aucc/Agnd pins are meant to be smoother voltages then VCC/GND (for use with Audio expansions).&lt;br /&gt;
&lt;br /&gt;
== Amstrad PCW ==&lt;br /&gt;
&lt;br /&gt;
The Amstrad PCW has a 50-pin Expansion port, too. But it's pin-outs are entirely different as on CPC.&lt;br /&gt;
* [[Amstrad PCW Expansion Port]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Signal Descriptions==&lt;br /&gt;
This information was originally available here: http://www.retroisle.com/amstrad/cpc/Technical/Hardware/ExpansionPorts.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The signals are listed in alphabetical order. Signals which have a &amp;quot;/&amp;quot; prefix are &amp;quot;active-low&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
More information for signals which are inputs to the CPU or outputs from the CPU can be found by reading other documents or datasheets about the Z80 CPU. &lt;br /&gt;
&lt;br /&gt;
* +5V (5V power) The CPC power output is not able to supply many peripherals. This power output should be used to power IC's and used as a signal reference only.&lt;br /&gt;
* φ 4Mhz Clock&lt;br /&gt;
* A15-A0 (Address bus; Output from CPU). A15-A0 form a 16-bit address. A15-A0 are used to specify a memory address or a I/O address.&lt;br /&gt;
* /BUSAK (Bus Acknowledge; Output from CPU). When /BUSAK=&amp;quot;0&amp;quot; the CPU is signalling that control of the address bus, data bus and output signals has been released, and the device can take control.&lt;br /&gt;
* /BUS RESET (Bus Reset; Input to ???)??&lt;br /&gt;
* /BUSRQ (Bus Request; Input to CPU). When /BUSRQ=&amp;quot;0&amp;quot; a device is requesting control of the address bus, data bus and the CPU's output signals. At the end of the current instruction cycle, the CPU will issue a Bus Acknowledge.&lt;br /&gt;
* CURSOR (Cursor; Output from CRTC). When CURSOR=&amp;quot;1&amp;quot; the CRTC is displaying the cursor.&lt;br /&gt;
* D7-D0 (Data bus; Input to CPU/Output from CPU). D7-D0 form 8-bit data. In a I/O operation, D7-D0 are used to transfer data to/from a I/O device. In a memory operation, D7-D0 are used to transfer data to/from memory. In an interrupt request operation, D7-D0 are used to specify part of an interrupt response vector.&lt;br /&gt;
* /EXP (Expansion device connected; Input to PPI). The function of this signal can be used by a device to signal it's presence, it does this by setting this signal to &amp;quot;0&amp;quot;. This signal is connected to bit 5 of PPI port B. This signal can be reprogrammed as input or output using the PPI, and can therefore be used as a general purpose input/output.&lt;br /&gt;
* Gnd (Signal Ground). Signal Ground. This can be used as a signal reference and as the Gnd connection to IC's.&lt;br /&gt;
* /HALT (Halt; Output from CPU). When /HALT=&amp;quot;0&amp;quot; the CPU has executed a &amp;quot;HALT&amp;quot; instruction. The CPU will execute &amp;quot;NOP&amp;quot; instructions until a interrupt request is received and interrupts are not masked.&lt;br /&gt;
* /INT (Interrupt Request; Input to CPU). This is the maskable interrupt input to the CPU. When /INT=&amp;quot;0&amp;quot; a interrupt request is signalled to the CPU. In the CPC, the interrupts are generated by the Gate-Array. In the CPC+, the interrupts are generated by the ASIC. In the KC Compact, the interrupts are generated by the Z8536 CIO.&lt;br /&gt;
** If interrupts are masked, the interrupt request is ignored.&lt;br /&gt;
** If interrupts are not masked, the interrupt request will be acknowledged.&lt;br /&gt;
* /IORQ (Input/Output Request; Output from CPU). When /IORQ=&amp;quot;0&amp;quot; there are two possible functions:&lt;br /&gt;
** Interrupt acknowledge: /M1=&amp;quot;0&amp;quot;. The interrupt acknowledge function is used to indicate that the interrupting device can put a interrupt vector into D7-D0.&lt;br /&gt;
** I/O operation (read or write): /M1=&amp;quot;1&amp;quot;, /WR=&amp;quot;0&amp;quot; OR /RD=&amp;quot;0&amp;quot;. The I/O operation is used to read from/write to a I/O device. When the CPU is performing a I/O operation, A15-A0 will contain the I/O address.&lt;br /&gt;
*** If /RD is &amp;quot;0&amp;quot; then the operation is reading from a I/O device. D7-D0 will contain data read from the selected device.&lt;br /&gt;
*** If /WR is &amp;quot;0&amp;quot; then the operation is writing to a I/O device. D7-D0 contain data to write to the selected device.&lt;br /&gt;
* L.PEN (Light Pen trigger; Input to CRTC). A low-to-high (&amp;quot;0&amp;quot; to &amp;quot;1&amp;quot;) transition on this signal will cause the CRTC to store the current memory address (CRTC MA signal) it has generated. The CRTC memory address can be used to calculate the position of a light-pen/light-gun on the screen.&lt;br /&gt;
* /M1 (Machine cycle one; Output from CPU). When /M1=&amp;quot;0&amp;quot; there are two possible functions:&lt;br /&gt;
** Interrupt acknowledge: /IORQ=&amp;quot;0&amp;quot;&lt;br /&gt;
** CPU is fetching the op-code part of an instruction: /MREQ=&amp;quot;0&amp;quot; and /IORQ=&amp;quot;1&amp;quot;&lt;br /&gt;
* /MREQ (Memory Request; Output from CPU). When /MREQ=&amp;quot;0&amp;quot; the CPU is performing a memory operation. A15-A0 contain the memory address. &lt;br /&gt;
** If /RD is &amp;quot;0&amp;quot; then the operation is reading from memory. D7-D0 will contain data read from the memory. &lt;br /&gt;
** If /WR is &amp;quot;0&amp;quot; then the operation is writing to memory. D7-D0 contain data to write to the memory.&lt;br /&gt;
* /NMI (Non-Maskable Interrupt; Input to CPU). When there is a negative-edge on this signal (signal changes from &amp;quot;1&amp;quot; to &amp;quot;0&amp;quot;), this will force the CPU to execute the non-maskable interrupt service routine at &amp;amp;0066. This interrupt can't be masked and has a higher priority than /INT.&lt;br /&gt;
* RAMDIS (Internal RAM Disable; Input to Internal RAM). When RAMDIS=&amp;quot;1&amp;quot; the internal RAM of the CPC/CPC+/KC Compact is forced inactive. e.g. a ram-expansion device would use this signal to override the internal RAM selection with the ram on the device. The internal RAM would be forced inactive, and the ram on the ram-expansion would be actived.&lt;br /&gt;
* /RAMRD (Ram Read; Output from Gate-Array). When /RAMRD=&amp;quot;0&amp;quot; a ram read operation is active. This signal is generated by the Gate-Array. This signal will be &amp;quot;0&amp;quot; when:&lt;br /&gt;
** A15=A14=&amp;quot;0&amp;quot; and bit 2 of the Gate-Array ROM configuration register is set to 1. (lower ROM disable)&lt;br /&gt;
** A15=A14=&amp;quot;1&amp;quot; and bit 3 of the Gate-Array ROM configuration register is set to 1. (upper ROM disable)&lt;br /&gt;
** A15 is not equal to A14.&lt;br /&gt;
* /RD (Read; Output from CPU). When /RD=&amp;quot;0&amp;quot; the CPU is performing a read operation. The operations are:&lt;br /&gt;
** Reading from a I/O device: (/IORQ=&amp;quot;0&amp;quot;, A15-A0 contain I/O address)&lt;br /&gt;
** Reading from memory (/MREQ=&amp;quot;0&amp;quot;, A15-A0 contain memory address)&lt;br /&gt;
* /RESET (Reset; Input to CPU). When /RESET=&amp;quot;0&amp;quot; the CPU is held in the reset state. When the reset state is released, the CPU Program Counter (PC) is set to &amp;quot;0&amp;quot; and execution begins resumes from the new PC address.&lt;br /&gt;
* /RFSH (Refresh; Output from CPU). When /RFSH=&amp;quot;0&amp;quot; and /MREQ=&amp;quot;0&amp;quot; this indicates that A6-A0 contain a refresh memory address that can be used to refresh the memory&lt;br /&gt;
* ROMDIS (Internal ROM Disable; Input to internal ROM). When ROMDIS=&amp;quot;1&amp;quot; the internal ROM of the CPC/CPC+/KC Compact is forced inactive. e.g. a ROM-board device would use this signal to override the ROM selection with a ROM plugged into the device. The internal ROM would be forced inactive, and the selected expansion ROM would be activated.&lt;br /&gt;
* /ROMEN (ROM Enable; Output from Gate-Array). When /ROMEN=&amp;quot;0&amp;quot; a ROM read operation is active. This signal is generated by the Gate-Array. This signal will be &amp;quot;0&amp;quot; when:&lt;br /&gt;
** A15=A14=&amp;quot;0&amp;quot; and bit 2 of the Gate-Array ROM configuration register is set to 0, (lower ROM enable)&lt;br /&gt;
** A15=A14=&amp;quot;1&amp;quot; and bit 3 of the Gate-Array ROM configuration register is set to 0. (upper ROM enable)&lt;br /&gt;
** A expansion device (e.g. a ROM-board) can use this signal to activate the selected ROM plugged into the device.&lt;br /&gt;
* Sound (Mono Audio; Output from PSG). This is a mono audio signal generated by mixing the 3 PSG audio channels together.&lt;br /&gt;
* /WAIT (Wait; Input to CPU, Output from Gate-Array). When /WAIT=&amp;quot;0&amp;quot; this signal is used to delay memory or I/O access by the CPU. This signal is used to force the CPU to access memory or I/O when it is ready. This signal is generated by the Gate-Array.&lt;br /&gt;
* /WR (Write; Output from CPU). When /WR=&amp;quot;0&amp;quot; the CPU is performing a write operation. The operations are:&lt;br /&gt;
** Writing to a I/O device: (/IORQ=&amp;quot;0&amp;quot;, A15-A0 contain I/O address)&lt;br /&gt;
** Writing to memory (/MREQ=&amp;quot;0&amp;quot;, A15-A0 contain memory address)&lt;br /&gt;
&lt;br /&gt;
[[Category:Peripherals]][[Category:CPC Internal Components]][[Category:CPC Plus]]&lt;/div&gt;</summary>
		<author><name>Munchausen</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=CPC_Booster&amp;diff=87162</id>
		<title>CPC Booster</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=CPC_Booster&amp;diff=87162"/>
				<updated>2013-04-20T16:14:39Z</updated>
		
		<summary type="html">&lt;p&gt;Munchausen: Add some more stuff on CPC booster downloads&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Cpcbooster.jpg|thumb|CPC Booster]]&lt;br /&gt;
[[Image:Cpcboosterplus.jpg|thumb|CPC Booster+]]&lt;br /&gt;
&lt;br /&gt;
The '''CPC Booster (+)''' is an extension card for the CPC specialized on I/O features constructed by [[Antitec]] / [[Dirty Minds]]. It includes components like a very fast serial interface, a music digitizer, a DAC and even a free programmable and useable microcontroller (AVR). It is possible to connect a Bluetooth module transparently to the CPC Booster, which means that you can use the normal CPC Booster software with this solution, too.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
''This list of CPC Booster + features has been copied from its homepage''&lt;br /&gt;
&lt;br /&gt;
* '''ONE SYNCHRONOUS/ASYNCHRONOUS SERIAL PORT:''' Improved serial port (RS232) with the ability to enable parity check, select the bits of the frame, the stop bits and many more things to control it. The speed is from 4800 baud till 1382400 bauds.&lt;br /&gt;
* '''SERIAL PORT BUFFER:''' A 255 bytes buffer added for the UART which can be enabled/disabled by the user. Improves performance of the serial communication.&lt;br /&gt;
* '''TWO ANALOG INPUTS:''' Two analog to digital convertors. They are used for stereo or mono 8bit sound sampling. You can select the sampling rate directly from the cpc booster.&lt;br /&gt;
* '''TWO PWM CHANNELS:''' They are used as digital to analog convertors through a LOW PASS RC filter. You can play stereo 8bit samples if you connect the board to an amplifier.&lt;br /&gt;
* '''5 DIGITAL INPUT/OUTPUTS:''' You can connect anything that supports TTL logic. You can even drive relays or step motors if you know how to make the appropriate connections. You can also make parallel 4 bit communication with another CPC.&lt;br /&gt;
* '''512 BYTES EEPROM:''' EEPROM is like RAM but the contents remain intact if you remove power, it doesn't need a battery.&lt;br /&gt;
* '''256 BYTES RAM:''' The booster+ has a 256 bytes buffer to be used for temporary storage of values (like storing the registers).&lt;br /&gt;
* '''SEVERAL MATHEMATICAL FUNCTIONS:''' At the moment I've only installed multiplication but as soon as I get the time, me and Optimus will write some fast code for division, sin, cos, tan etc.&lt;br /&gt;
* '''BIOS UPDATE:''' This is one of the best features of the card. It is possible to make an update of the bios of the microcontroller through the CPC. So, when I release new versions of the bios, you can download them, transfer them to the CPC and make an update of the card in a few seconds!&lt;br /&gt;
* '''ROM READ/WRITE:''' The AVR MEGA16 has 16KB of program memory. The bios of the CPC booster uses less than 5 KB so far. So you can use more than 10KB for your own purposes! You can read/write the program memory of the CPC booster but BE CAREFUL when you write because you may accidentally erase the BIOS data!&lt;br /&gt;
* '''KEYBOARD SCANNING:''' A function which will make keyboard scanning a lot easier&lt;br /&gt;
* '''TCP / IP IMPLEMENTATION:''' This is also a feature I want to add in the future in order to give the CPC users the ability to go online in the internet with their CPC! In this part everyone can contribute, if you have knowledge of how the PPP and TCP/IP works, then contact me.&lt;br /&gt;
* '''RS485 NETWORK:''' An RS485 network is installed in the CPC Booster+. With this it's easier than ever to make a super fast network of up to 32 CPCs, forget everything else you've seen so far. Note: The small 2-position switch allows to select between RS232 and RS485 mode.&lt;br /&gt;
* '''1 WIRE PROTOCOL:''' Support for the 1wire protocol is added. Now you can connect many 1 wire devices in the expansion port of the booster, here's a link to get an idea: [http://www.maxim-ic.com/products/1-wire/]&lt;br /&gt;
&lt;br /&gt;
== Technical ==&lt;br /&gt;
&lt;br /&gt;
The overall I/O ports are described in the manual (see there).&lt;br /&gt;
&lt;br /&gt;
The documentation lacks some important details though. For example:&lt;br /&gt;
* It fails to describe which of the two PWM channels is the left, and which is the right channel - so the the &amp;quot;stereo&amp;quot; feature could be used only when doing some reverse-engineering.&lt;br /&gt;
* Some differences between CPC Booster and CPC Booster+ are the type of CPU and the serial interface / networking interface.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
* Arkos ROM Pack: [http://www.julien-nevo.com/arkos/tools.html]&lt;br /&gt;
* Some functions of the CPC-Booster(+) are supported by [[FutureOS]].&lt;br /&gt;
&lt;br /&gt;
== Manual ==&lt;br /&gt;
&lt;br /&gt;
* [[Programming:CPC_Booster|CPC Booster+ manual]] (Wiki page)&lt;br /&gt;
* [[Media:CPC-Booster+.pdf|CPC Booster+ manual]] (pdf)&lt;br /&gt;
&lt;br /&gt;
== Source and Schematics ==&lt;br /&gt;
* The source code, schematics and PCB layout are available here: [ftp://ftp.cpcszene.de/pub/Computer/Amstrad_CPC/Hardware/CPCBoosterPlus/ CPC Booster Plus on cpcszene.de ftp server]&lt;br /&gt;
* The source code is also kept (and maintained?) with the Linux CPC SDK here: [https://code.google.com/p/cpcsdk/source/browse/trunk/resources/CPC_BOOSTER CPC Booster Plus at CPC SDK]&lt;br /&gt;
* A local copy of the source code/schematics is also preserved here: [[File:CPCBoosterPlus.zip|CPCBoosterPlus.zip]]&lt;br /&gt;
* There are also some files available here: [http://cpcrulez.fr/hardware-cpcbooster-interface_cpcbooster_plus.htm CPC Booster on cpcrules.fr]&lt;br /&gt;
* This is the zip file from that page: [[File:CPCBooster.zip|CPCBooster.zip]]&lt;br /&gt;
&lt;br /&gt;
== Web links ==&lt;br /&gt;
&lt;br /&gt;
* [http://dirtyminds.dxm.gr Dirty Minds website]&lt;br /&gt;
* [http://www.octoate.de/wp/articles/connecting-a-bluetooth-module-to-the-cpc-booster/ Connecting a Bluetooth module to the CPC Booster+]&lt;br /&gt;
&lt;br /&gt;
 [[Category:Peripherals]] [[Category:Serial interfaces]] [[Category:Manual]][[Category:Network]]&lt;br /&gt;
[[Category:DIY]][[Category:Memory expansions]][[Category:Expansion ROM]][[Category:Music and sound]]&lt;/div&gt;</summary>
		<author><name>Munchausen</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:CPCBooster.zip&amp;diff=87161</id>
		<title>File:CPCBooster.zip</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:CPCBooster.zip&amp;diff=87161"/>
				<updated>2013-04-20T16:13:27Z</updated>
		
		<summary type="html">&lt;p&gt;Munchausen: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Munchausen</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=CPC_Booster&amp;diff=87160</id>
		<title>CPC Booster</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=CPC_Booster&amp;diff=87160"/>
				<updated>2013-04-19T15:09:48Z</updated>
		
		<summary type="html">&lt;p&gt;Munchausen: Added info on source/schematics&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Cpcbooster.jpg|thumb|CPC Booster]]&lt;br /&gt;
[[Image:Cpcboosterplus.jpg|thumb|CPC Booster+]]&lt;br /&gt;
&lt;br /&gt;
The '''CPC Booster (+)''' is an extension card for the CPC specialized on I/O features constructed by [[Antitec]] / [[Dirty Minds]]. It includes components like a very fast serial interface, a music digitizer, a DAC and even a free programmable and useable microcontroller (AVR). It is possible to connect a Bluetooth module transparently to the CPC Booster, which means that you can use the normal CPC Booster software with this solution, too.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
''This list of CPC Booster + features has been copied from its homepage''&lt;br /&gt;
&lt;br /&gt;
* '''ONE SYNCHRONOUS/ASYNCHRONOUS SERIAL PORT:''' Improved serial port (RS232) with the ability to enable parity check, select the bits of the frame, the stop bits and many more things to control it. The speed is from 4800 baud till 1382400 bauds.&lt;br /&gt;
* '''SERIAL PORT BUFFER:''' A 255 bytes buffer added for the UART which can be enabled/disabled by the user. Improves performance of the serial communication.&lt;br /&gt;
* '''TWO ANALOG INPUTS:''' Two analog to digital convertors. They are used for stereo or mono 8bit sound sampling. You can select the sampling rate directly from the cpc booster.&lt;br /&gt;
* '''TWO PWM CHANNELS:''' They are used as digital to analog convertors through a LOW PASS RC filter. You can play stereo 8bit samples if you connect the board to an amplifier.&lt;br /&gt;
* '''5 DIGITAL INPUT/OUTPUTS:''' You can connect anything that supports TTL logic. You can even drive relays or step motors if you know how to make the appropriate connections. You can also make parallel 4 bit communication with another CPC.&lt;br /&gt;
* '''512 BYTES EEPROM:''' EEPROM is like RAM but the contents remain intact if you remove power, it doesn't need a battery.&lt;br /&gt;
* '''256 BYTES RAM:''' The booster+ has a 256 bytes buffer to be used for temporary storage of values (like storing the registers).&lt;br /&gt;
* '''SEVERAL MATHEMATICAL FUNCTIONS:''' At the moment I've only installed multiplication but as soon as I get the time, me and Optimus will write some fast code for division, sin, cos, tan etc.&lt;br /&gt;
* '''BIOS UPDATE:''' This is one of the best features of the card. It is possible to make an update of the bios of the microcontroller through the CPC. So, when I release new versions of the bios, you can download them, transfer them to the CPC and make an update of the card in a few seconds!&lt;br /&gt;
* '''ROM READ/WRITE:''' The AVR MEGA16 has 16KB of program memory. The bios of the CPC booster uses less than 5 KB so far. So you can use more than 10KB for your own purposes! You can read/write the program memory of the CPC booster but BE CAREFUL when you write because you may accidentally erase the BIOS data!&lt;br /&gt;
* '''KEYBOARD SCANNING:''' A function which will make keyboard scanning a lot easier&lt;br /&gt;
* '''TCP / IP IMPLEMENTATION:''' This is also a feature I want to add in the future in order to give the CPC users the ability to go online in the internet with their CPC! In this part everyone can contribute, if you have knowledge of how the PPP and TCP/IP works, then contact me.&lt;br /&gt;
* '''RS485 NETWORK:''' An RS485 network is installed in the CPC Booster+. With this it's easier than ever to make a super fast network of up to 32 CPCs, forget everything else you've seen so far. Note: The small 2-position switch allows to select between RS232 and RS485 mode.&lt;br /&gt;
* '''1 WIRE PROTOCOL:''' Support for the 1wire protocol is added. Now you can connect many 1 wire devices in the expansion port of the booster, here's a link to get an idea: [http://www.maxim-ic.com/products/1-wire/]&lt;br /&gt;
&lt;br /&gt;
== Technical ==&lt;br /&gt;
&lt;br /&gt;
The overall I/O ports are described in the manual (see there).&lt;br /&gt;
&lt;br /&gt;
The documentation lacks some important details though. For example:&lt;br /&gt;
* It fails to describe which of the two PWM channels is the left, and which is the right channel - so the the &amp;quot;stereo&amp;quot; feature could be used only when doing some reverse-engineering.&lt;br /&gt;
* Some differences between CPC Booster and CPC Booster+ are the type of CPU and the serial interface / networking interface.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
* Arkos ROM Pack: [http://www.julien-nevo.com/arkos/tools.html]&lt;br /&gt;
* Some functions of the CPC-Booster(+) are supported by [[FutureOS]].&lt;br /&gt;
&lt;br /&gt;
== Manual ==&lt;br /&gt;
&lt;br /&gt;
* [[Programming:CPC_Booster|CPC Booster+ manual]] (Wiki page)&lt;br /&gt;
* [[Media:CPC-Booster+.pdf|CPC Booster+ manual]] (pdf)&lt;br /&gt;
&lt;br /&gt;
== Source and Schematics ==&lt;br /&gt;
* The source code, schematics and PCB layout are available here: [ftp://ftp.cpcszene.de/pub/Computer/Amstrad_CPC/Hardware/CPCBoosterPlus/ CPC Booster Plus on cpcszene.de ftp server]&lt;br /&gt;
* The source code is also kept (and maintained?) with the Linux CPC SDK here: [https://code.google.com/p/cpcsdk/source/browse/trunk/resources/CPC_BOOSTER CPC Booster Plus at CPC SDK]&lt;br /&gt;
* A local copy of the source code/schematics is also preserved here: [[File:CPCBoosterPlus.zip|CPCBoosterPlus.zip]]&lt;br /&gt;
&lt;br /&gt;
== Web links ==&lt;br /&gt;
&lt;br /&gt;
* [http://dirtyminds.dxm.gr Dirty Minds website]&lt;br /&gt;
* [http://www.octoate.de/wp/articles/connecting-a-bluetooth-module-to-the-cpc-booster/ Connecting a Bluetooth module to the CPC Booster+]&lt;br /&gt;
&lt;br /&gt;
 [[Category:Peripherals]] [[Category:Serial interfaces]] [[Category:Manual]][[Category:Network]]&lt;br /&gt;
[[Category:DIY]][[Category:Memory expansions]][[Category:Expansion ROM]][[Category:Music and sound]]&lt;/div&gt;</summary>
		<author><name>Munchausen</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:CPCBoosterPlus.zip&amp;diff=87159</id>
		<title>File:CPCBoosterPlus.zip</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:CPCBoosterPlus.zip&amp;diff=87159"/>
				<updated>2013-04-19T15:02:26Z</updated>
		
		<summary type="html">&lt;p&gt;Munchausen: Munchausen uploaded a new version of &amp;amp;quot;File:CPCBoosterPlus.zip&amp;amp;quot;: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Munchausen</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:CPCBoosterPlus.zip&amp;diff=87158</id>
		<title>File:CPCBoosterPlus.zip</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:CPCBoosterPlus.zip&amp;diff=87158"/>
				<updated>2013-04-19T14:59:01Z</updated>
		
		<summary type="html">&lt;p&gt;Munchausen: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Munchausen</name></author>	</entry>

	</feed>