Previous Log Entry Back to Log Index

Wang 600 ROM Readout and Verify Next Log Entry

Read and verify the entire ROM to determine if microcode is valid

With suspicion now firmly on the ROM being likely to have a dead bit it seemed like the time to bite the bullet and construct a ROM reader that could be used to read out any 600 (or 700) series ROM. This offers two benefits:

  • verification of the entire ROM by comparison with ROM dumps that are available
  • preservation of ROM contents if different models or microcode levels are encountered.

Design of ROM Reader

Reading wire ROMs is a dynamic process requiring that the address be presented and then the sense circuits be clocked in a fairly tight time frame to reset the output latches and then apply a pulse of well-defined duration to stimulate the output transformers and generate ROM data. The pulse must be long enough to generate an output but not so long as to damage the fine ROM wires by excessive current.

The minimum timing resolution was around 15nS and this is within what a mid-range PIC microcontroller can achieve. Reading 40+ bits of ROM output directly requires an unfeasible number of input bits, but the 600 series ROM has output latches that hold the ROM data between successive access cycles. The reader could therefore employ six 74HC244 8-way tristate drivers to read the ROM output in groups of 8 and reduce the requirement to 8 input bits and 3 output bits to select the drivers. Host interface is over RS232 serial with a simple protocol to read one or more locations and output the ROM data as raw hex, raw octal or in a basic text disassembly. A few jumpers were provided for configuration to enable the reader to extended later for 700 series ROMs. The entire design fitted onto a small PCB that could be manufactured quickly and cheaply at one of the Chinese volume PCB fabs.

ROM Reader Output

The ROM reader worked first time and the entire ROM was dumped.

Dead ROM Rows

Examination of the dump showed zeros at locations 85, 584, 850, 1298 and 2048.

Comparing with known ROM dumps shows that the first four locations are meant to return data. This suggests a broken ROM wire or faulty steering diode for each of these locations. Both are challenging to repair but clearly stringing new ROM wires is probably the most challenging of all!

Dead ROM Column

The entire ROM dump was then put through a frequency analysis to see the relative use of all microcode combinations. This is shown below - some fields such as AC, BC, SUB and highJAD are single-bit and so can only take values of 0 or 1. Other fields are three- or four- bit and so can take values from 0-7 or 0-F.

Inspection of the KK field shows a fault pattern, KK never returns 2 or 3, 6 or 7, A or B, E or F. That is, KK field bit 1 with binary value of 2 is always returning zero. So it appears that in addition to three dead rows, there is also one dead column in this ROM which can occur if the column sense IC is faulty. Fortunately this is not so challenging a repair and spare ICs are available.

Val  AI    BI    ZO   AOP   AC    BC    MOP   KK    ST    SUB   JAD   JAD  JAD  JH   JL  
 0   1280  1256  581  1468  1319  1740  1373  1001  1533  1848  804   199  175  928  945
 1	 26    675   65   254   729   308   72    209   26    200   1244  108  111  842  690
 2	 25    4     128  65     -     -    128   0     7      -     -    138  119	65	 77
 3	 208   7     445  70     -	   -	127	  0	    62	   -     -    100  101 	82   77
 4	 103   47    205  33     -     -    79	  128 	68	   -  	 -    103  135	1	 180
 5	 62    23    138  52     -     -    82	  99	5	   -     -    106  126  124  1
 6   337   35    486  106    -     -    147   0     6	   -     -    102  144  5    17
 7   7     1     0    0      -     -    4     0     40     -     -    98   123  1    61
 8	  -     -     -    -	 -	   -    3     131	37	   -	 -	  146  117	 -    -
 9	  -     -     -    -     -     -	0	  107	7      -     -    177  123	 -    -
 A    -     -     -    -     -     -	7     0     19     -     -    189  128   -    -
 B    -     -     -    -     -     -    1     0     29     -     -    152  157   -    -
 C    -     -     -    -     -     -    3     216   26     -     -    121  140   -    -
 D    -     -     -    -     -     -    3     157   121    -     -    105  138   -    -
 E    -     -     -    -     -     -    3     0     3      -     -    106  103   -    -
 F    -     -     -    -     -     -    16    0     59     -     -    98   108   -    -

Conclusion - Multiple ROM Faults

This looks like pretty convincing evidence that the ROM has three local faults affecting three individual locations as well as a global fault affecting a single bit of the KK field in every location.

No progress can be made towards bringing the 600 back to life until the ROM is repaired, or substituted.

The minimum order from the PCB fab house was five boards. Surplus boards and associated software are available on request, please use the Contact link above

Previous Log Entry Back to Log Index Next Log Entry