The AMSSIO interface is a RS232 interface by the dane, Martin Zacho. As opposed to other serial interfaces the AMSSIO is meant to be installed on top of the Z80 CPU in the CPC. However the circuit can easily be built on a breadboard and connected to the expansion port as well.
AMSSIO exists in 3 different versions.
A new and improved version is the AMSSIO II.
AMSSIO is a RS-232 serial interface for the CPC464 (and 664/6128) and it exists in three different versions which all uses the MC6850 asyncronous communication interface adapter (ACIA) from Motorola.
- The first version was based on components from the scrap yard. But the MC14411 is a bit bulky and by now rather old and somewhat hard to find. The second and third version was an attempt to work around the MC14411.
- Version 2 uses a 4060 ripple counter as clock generator. But it can be tricky to make it operate at 2.5 MHz. This was the reason for version 3...
- The version 3 uses a 74LS393 to divide the 4 MHz CPU clock by 26 to obtain the 153 kHz for the serial clock (9600 * 16).
"I couldn't get the software to receive faster than 9600 :-( But it was at least 4 times faster than the tape transfer rate :-)." All three versions are supposed to use the CPU socket in the CPC. The CPU socket on AMSSIO is meant to be a wire wrap socket. The CPU is removed from the CPC main board. AMSSIO is mounted in the empty socket and the CPU is placed in the 40 pin socket on the AMSSIO.
Connects between Z80 CPU and mainboard. I/O Ports for AMSSIO v1,v2,v3 are:
FBF0h AMSSIO Serial Interface MC6850 Control/Status Register (R/W) FBF1h AMSSIO Serial Interface MC6850 Data Register (R/W)
For details on the MC6850 chip, see 6850 ACIA chip.
Observe that the baudrate CLK sources differ for v1,v2,v3. In v3 the CLK is fixed, v1/v2 have different jumper-selectable CLKs. And, the photo shows a different CLK crystal than the schematic. So, don't expect different AMSSIOs to be compatible with each other.
AMSSIO-II is a newer version, using a 44pin 16C850CJ instead of the 24pin MC6850. Aside from the schematic (see below), there is no documentation or source code for AMSSIO-II. I/O base address can be FBE0h or FBF0h (jumper-selectable). Unlike the previous versions, this version also connects to the Z80's interrupt input.
The "PC" attached to the "16C850CJ" part number (labeled as "16C850CJPC" in schematic) is meant to say that the chip is wired to "PC Mode" (SEL, Pin 34 = GND). In the PC Mode, the chip tries to decode PC ISA bus addresses (COM1-4 = 3F8h,2F8h,3E8h,2E8h), some address lines are swapped, so the AMSSIO maps to FBE0h or FBF0h (selected by S1 input) whilst the chip "thinks" it is mapped to COM3/COM4 ISA bus addresses (3E8h/2E8h). Unclear: the jumper on S1 should change "A8" - but the schematic is wired as if "A4" changes - which would require a jumper on S2, not on S1 (?)
- Media:XR16C850.pdf - 16C850 Datasheet
The software for AMSSIO can simulate a disk drive and a printer on a PC connected via RS-232. The software comes in two parts. The first part is for the CPC. It replaces relevant parts of the jump block, redirecting disc and printer access via RS-232. The second part is called CPCSHELL and runs on a PC under DOS or Linux. Part of the PC harddisk can be used as a giant CPC disk via this mechanism.
A spare PC can therefore be used as a method to add a cheap harddisk to the CPC. Although the software required on the CPC reduces compatibility somewhat it works for most well behaved applications and games that consist of a single binary (no special loader).
- PLEASE NOTE: The schematics and files have a few errors:
- MC6850 pin 7 (/IRQ output, in v1-v3) is connected to Vcc, but should be left unconnected.
- The signal marked 153.8MHz (in v3) is, of course, 153.8kHz (4MHz/13/2).
- The photo seems to show v1 and uses 1.8432MHz crystal, whilst schematic v1 uses 10MHz (?)
- Note: The Z80 CPU shown in schematic is your CPC's built-in CPU (mounted piggy-back on the AMSSIO cart)