Return to Menu

= MICROCODE OVERVIEW =

The DUO Compact's control unit contains 2 microcode EEPROM chips. The microcode determines the order in which to send read and write signals among other things. See the schematic for how the pins of the EEPROMs are connected.

= MICROCODE FORMAT =

YZZZZZ: AAABCDEF-XXPQRRSS 

Y = detect zero input (0 means zero NOT detected, 1 means zero detected)
Z = microcode address
X = unused pin
A = general address
B = general OE
C = ALU buffer OE
D = suffix selector (0 means use address register, 1 means use microcode value)
E = memory OE
F = reset clock counter (1 means reset)
P = memory WE (0 means write)
Q = general WE (0 means write)
R = data WE (1 means write)
S = address WE (1 means write)

The data AAABCDEX is contained in the first EEPROM, while XPQRSSTT is in the second EEPROM.
All OE pins are activated with an input of 0.

= MICROCODE DATA =

Write from memory (suffix 0) to general register 0

000000: 00011100-XX100000 
100000: 00011100-XX100000 

Write from memory (suffix 1) to general register 1

010000: 10011100-XX100000 
110000: 10011100-XX100000 

Write from memory (suffix 2) to general register 2

001000: 01011100-XX100000 
101000: 01011100-XX100000 

Write from memory (suffix 3) to general register 3

011000: 11011100-XX100000 
111000: 11011100-XX100000 

Write from memory (suffix 4) to general register 4

000100: 00111100-XX100000 
100100: 00111100-XX100000 

Write from memory (suffix 5) to general register 5

010100: 10111100-XX100000 
110100: 10111100-XX100000 

Write from memory (suffix 6) to general register 6

001100: 01111100-XX100000 
101100: 01111100-XX100000 

Write from memory (suffix 7) to general register 7

011100: 11111100-XX100000 
111100: 11111100-XX100000 

Write from general register 0 to address register 0

000010: 00001010-XX110001 
100010: 00001010-XX110001 

Write from general register 1 to address register 1

010010: 10001010-XX110010 
110010: 10001010-XX110010 

Write from memory to data register 0

001010: 00011000-XX110100 
101010: 00011000-XX110100 

Write from general register 2 to address register 0

011010: 01001010-XX110001 
111010: 01001010-XX110001 

Write from general register 3 to address register 1

000110: 11001010-XX110010 
100110: 11001010-XX110010 

Write from memory to data register 1

010110: 00011000-XX111000 
110110: 00011000-XX111000 

Write from ALU to memory

001110: 00010010-XX010000 
101110: 00010010-XX010000 

Write from general register 4 (or 6) to address register 0

011110: 00101010-XX110001 
111110: 01101010-XX110001 

Write from general register 5 (or 7) to address register 1

000001: 10101010-XX110010 
100001: 11101010-XX110010 

Go back to the first microcode step

010001: 00011011-XX110000 
110001: 00011011-XX110000 

Return to Menu

Return to the Ostracod Pond