Connecting a Disc Interface to CPC464+

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search

External Disc Interface

Basically, the official DDI-1 and any other third-party disc interfaces for the CPC 464 should work on the CPC 464+ as well. However, there are two problems:

Expansion Port Adapter

The CPC464 used a 50pin edge-connector, the CPC464+ uses a 50pin centronics-style connector. The pin-outs are identical, so this problem can be solved with a simple adapter. Equivalent adapters do also exist for the german CPC6128 (which has a 50pin centronics-style expansion port, too): UK/DE Expansion Converter.

System Cartridge Bug

There is a bug in the system cartridge, that causes the BIOS to execute code at C072h in ROM bank 07h. Normally, the AMSDOS bank in the system cartridge contains the Burnin' Rubber bootmenu at that location. However, this works only if the CPC+'s built-in AMSDOS is mapped to bank 07h.

When using an external disk-interface with external AMSDOS ROM (or other DOS clone), executing code at C072h is typically crashing the computer. The same problem occurs when activating the CP/M autoboot feature via LK Links (which swaps bank 0 and 7). Possible workarounds are:

  • Replace opcode LD C,07h (at 05EBh in system cart) by LD C,83h (this fixes the bug)
  • Replace opcode LD HL,C072h (at 05E8h in system cart) by LD HL,0000h (completely disables the bootmenu, which was a rather annoying idea anyways)
  • Remove or disable the ROM in the disc-interface, and cut the ROMDIS signal in the disc-interface (so the built-in AMSDOS in the CPC+ is used instead of the external DOS; this can be done without EPROM burner, but doesn't support 80-track drives)
  • Use an external DOS that resides elsewhere than in ROM bank 7 (whereas, the external DOS must undo hooks and memory allocations done by the internal AMSDOS; this should be supported by ParaDOS)
  • Insert two opcodes (LD HL,0000h, JP BD16h) at C072h in the DOS ROM (so the CPC+ "returns" from the bootmenu without crashing) (this is supported by ParaDOS, using a similar slightly different method)
  • etc.

Internal Disc Interface

The CPC 464+ uses exactly the same mainboard as the CPC 6128+. So it can be easily upgraded by installing the missing components. The most important ones are:

 IC3  24pin   SED9420CAC  Disc Data Separator
 IC4  40pin   uPD765AC-2  Disc Controller
 IC5  14pin   74LS38      Quad NAND gate, OC
 IC6  14pin   74LS38      Quad NAND gate, OC
 IC7  14pin   74HC14      Hex Inverter, Schmitt
 R29  10kOhm  Enable Disc support (in ASIC)
 Connector(s) for internal and/or external disc drive

Plus several further resistors and capacitors, see Schematics for details. AMSDOS is already contained in the 464+ system cartridge, so no additional disc ROM is needed (at least not for 40-track drives).