Diagnostic Board - Nakazoto/CenturionComputer GitHub Wiki

Diagnostic Board

The diagnostic board is a custom board built by Centurion technicians to make troubleshooting systems on site easier. It was designed to be compatible with CPU5 and CPU6 systems, as well as be capable of being expanded for future CPU7+ systems. However, the company went bankrupt before any further revisions could me made. As such, only one revision exists. The board documented here is serial number P02. All of the test code is stored in the four ROMs in the sockets. See the ROM Backups page or scroll to the bottom for copies of the ROM data.

Right click and "Save As..." or "Open Image in New Tab" for full resolution.

Diagnostic Tests

The Diagnostic Board features up to 16 tests, though we have only been able to confirm operation of 13 of these. The Diagnostic board features two hexadecimal LED displays to display the current test selected, error codes, or indicate a pass/fail condition. The four decimal points on the hexadecimal displays give information about the test.

  • Bottom Right only: Test running

  • Bottom Left and Bottom Right: Test passed

  • Top Right and Bottom Right: Test failed

To initiate a test, use the DIP switch to select the test, then press the button below the DIP switch.

Test Notes
00 Blank
01 DMA Register Read/Write Test
02 Basic Memory Test Writes corresponding address value to memory location
03 DMA Related Test?
04 MUX Transmit Test Continuously write U on terminal
05 MUX Receive Test Echoes back whatever is typed and shows parity errors on hexadecimal display
06 MUX Receive Interrupt Test Same as Test 05 but utilizes daisy chain interrupt, card must be placed next to CPU card
07 Hawk Drive Test
08 Hawk Drive Seek Test Seeks up through the tracks in powers of 2 before doing an RTZ and repeating
09 Hawk Drive Read Test Seeks up through the tracks in powers of 2, reading and checking for errors
0A TOS - Test Operating System Click here for more details
0B Copy of Bootstrap ROM Only includes support for Hawk and Finch drives
0C DIAG Board Self Test 1C if checksum fails, 2C if RAM fails, all LEDs on if passes
0D Auxiliary Tests See below for more details
0E Blank?
0F Blank?

Test 0D - Auxiliary Tests

These are higher level tests that are displayed in a Menu on the data terminal and selected/run using the keyboard. The Auxiliary Tests also use the hexadecimal displays to indicate pass/fail or show specific hex values, however they are used slightly differently than the previous tests.

  • Top Left and Bottom Right: Test running

  • Top Left, Bottom Left and Bottom Right: Test passed

  • Top Left, Top Right and Bottom Right: Test failed

Test Notes
01 CUP Instruction Test
02 CPU-6 Mapping RAM Test Test may need to be run for a very long time
03 ROM Self Test
04 CMD AUX Memory Test
05 CMD Seek Test
06 CMD Read Test
07 Floppy Command Buffer Test
08 Floppy Seek Test
09 Floppy Read Test
0A ROM Self Test
0B 01133 CMD AUX Memory Test
0C 01133 CMD Seek Test
0D 01133 CMD Read Test
0E Finch AUX Memory Test
0F Finch Seek Test
10 Finch Read Test
11 ROM Self Test

Schematic

This schematic was reverse engineered by tracing out each individual line on the board itself. We are fairly confident it is mostly correct, but there could be errors still present.

Logic Design

Here is an in-depth logic diagram for the "wait state" logic. In short, the clock speed of the computer is 5MHz, which updates every 200ns. However, the PROMs on the DIAG board require 450ns before data is ready. Pins 6, 7, and 8 on the card edge connector have to do with informing the CPU whether the Data is ready or not.

Here is the Logisim file for download.

ROM Backups

The DIAG board has four ROMs that hold the code for the diagnostic tests as well as the Test Operating System (TOS). ROM F1 contains all the standard tests that show through the hex displays as well as TOS. ROMs F2, F3 and F4 contain all the Auxiliary Tests (0D) that are run through the terminal.

Board Location Virtual Address Usage IC Link
DIAG F1 0x8000 Diagnostic and TOS MM2716 Link
DIAG F2 0x8800 Auxiliary Tests MM2716 Link
DIAG F3 0x9000 Auxiliary Tests MM2716 Link
DIAG F4 0x9800 Auxiliary Tests MM2716 Link

TOS entry point appears to be 0x8001.