Difference between revisions of "Connecting a Disc Interface to CPC464+"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(System Cartridge Bug)
(System Cartridge Bug)
Line 13: Line 13:
 
* Replace opcode LD C,07h (at 05EBh in system cart) by LD C,83h (this fixes the bug)
 
* 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)
 
* 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)
* Or, 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)
+
* 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)

Revision as of 18:23, 16 March 2010

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).

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)