Hardware

The CBM-II has a hardware interface that allows for adding a second CPU card, with access to the main memory and a special IPC interface that allows passing messages between the main 6509 CPU and the second CPU. The original 8088 card uses this interface, allowing to run a specially prepared version of MS-DOS 1.25.

I have created a replica of the original 8088 card, with several additions and bugfixes which are described below. The replica is 100% compatible with the original card, so you can still run MS-DOS 1.25 or CP/M-86 1.1 on it. However, the additional features allow for building a system that has enough power to run modern versions of DOS and DOS software:

Fixed stability problems

The original card has serious stability problems in many machines, and it simply refuses to run on most low-profile CBM-II computers. These problems are caused by noise on /ERAS and /ECAS signals which cause memory corruption. Depending on the computer motherboard and/or PLA, the card may either work without any problems, hang once every few minutes or simply not work at all.

These problems are removed in the replica, and it works in all CBM-II computers.

1 MB memory expansion

The expanded memory is visible to both CPUs and allows DOS to access full 640 kB of memory – running DOS in only 256 kB leaves too little room for almost any application. The 64 kB segments above the 640 kB barrier can be individually turned off to allow other hardware (such as ISA graphics cards) to map into the address space.

The card has also the cartridge ROM with “fast boot” KERNAL modifications, therefore the memory test during powerup is greatly shortened (the test of 1 MB memory with the original KERNAL would take around 2 minutes – this is shortened to mere 4 seconds).

12 MHz system clock

The card is equipped with a clock generator that produces either 12 MHz system clock with 50% duty cycle (for the NEC V20 processor) or 8 MHz clock with 33% duty cycle (for the 8088 processor). Compared with the 5 MHz on the original card, it gives a much faster system.

The system speed is further increased by using SRAM chips which do not require refresh. Therefore the memory refresh system does not steal cycles from the CPU like on the original card.

Hardware SPI interface

The SPI system is used to create a fast interface to a SD card, which serves as a 8 GB hard disk. Because the interface is implemented in hardware using shift registers, in combination with the INS/OUTS instructions of the NEC V20 CPU it allows for theoretical read and write speed exceeding 1 MB / s.

Battery backed RTC clock

The clock keeps the date and time for DOS and has also a few bytes of battery backed NVRAM to hold persistent configuration data.

Reprogrammable EEPROM

The PC compatibility software is stored in an EEPROM chip, which can be reprogrammed from the 8088 side. Thanks to this the library can be upgraded just by putting a newer version on the SD card and running the upgrade program from within DOS.

Having the whole software in the EEPROM allows also for diskless boot – the whole software is loaded from ROM, not from the disk like with the original card.

Expansion port

The expansion port contains all the CPU bus signals which should make it possible to add an ISA interface in the future. A smaller port with just the SPI and I2C signals is also available for additional hardware expansions in the future.

Support for hardware virtualization

The card can generate a NMI signal whenever an I/O port is accessed by the 8088 CPU. The I/O port address and the value being written to it are stored in hardware latches, so that the NMI routine can determine which I/O port was accessed and perform appropriate actions to simulate the hardware.

A video memory access latch was also added, which holds information about which parts of the video buffer at segment 0B000h were modified. This information speeds up screen refresh because only the modified parts are being refreshed.

8087 coprocessor compatibility

The original card had a bug due to which using the 8087 FPU was not possible – the card would lock up when the FPU was inserted into its socket. This bug has been fixed in the replica.

Unobtainable chips replaced

The original card uses the 6525 Tri-Port Interface chip which is impossible to obtain. It has been replaced by an 8255 chip.

Cartridge ROM sockets

The card has sockets for cartridge ROM or RAM at $4000, $6000 and $C000 which allow using  existing cartridge images. If a cartridge ROM is present, the card boot menu allows selecting whether to boot into BASIC or start the cartridge.