* Microcode Assembler 1.0 NOV 2019 * * TTL CPU CORE STYLE MEMORY 20 bit CPU 74LS181 74LS170 74LS195 TRSTATE BUFFERS 256 x 8 ROM 70 NS MAJOR STATE 32 x 8 ROM 50 NS ALU DECODE VERSION #1 .7 us (14.32 MHZ/2) / 5 NOV 17 2019 ADC/SBC _##___##__ CLK __##___##_ ACLK ##___##___ ECLK _#####____ MREQ (READ) #_____#### WRITE/WRITE BACK <---><###> DATA OUT ----><---- R/W SWR 72 PIN CARD EDGE CONNECTOR 1,2 GND 3 VCC 4..24 MAR/OUT BUS IN 25 ~CLK ~CLKE WA1 WA2 26 ~CLKA RESET CYI ~CYO 27 FETCH ~IRQ SH1 SH0 28 BY SWR SHI WRAM 29 MREQ WR RA1 RA2 30 BRUN (res) S0 S1 31 (-12?) S2 S3 32 (+12?) SGN ODD 33 (CORE?) K1 K2 34 PAN1 PAN2 K3 K4 35 PAN3 DSP K5 K6 36 SW1 SW2 M SH[1..0] 74194 00 - 01 LEFT 10 RIGHT 11 LOAD K1 KONSTANT K2 WORD DATA K3 SEX K4 0/2 K5 LOAD INPUT K6 ADX '/' LINE COMMENT '*' BLOCK COMMENT LINE BEGINING/END ONLY #OOO OCTAL PROGRAM COUNTER LINE TOKENS PROM A PRA# ctl 0001 0 wrd 0002 1 sx 0004 2 2 0008 3 op 0010 4 ld 0020 5 ~no 0040 6 sft 0080 7 PROM B PRB# by 0100 0 ir 0200 1 rd 0400 2 (mreq) wr 1000 4 pc 0000 ac 0800 3 ix 2000 5 stk 4000 swr 8000 7 dsp ix+ac 20 bits / 10 bit bytes +--------------------------+ |cX:ooo:aaB:xx+:###:###:###| -+ 512 mem +--------------------------+ +--------------------------+ |11:11o:aaB:xx+:###:###:###| -+ 512 store +--------------------------+ +--------------------------+ |1X:110:000:xx+:###:###:###| JSR +--------------------------+ +--------------------------+ |1X:110:000:xx+:###:###:###| JMP +--------------------------+ +--------------------------+ |00:ccc:00i:+##:###:###:###| BCC n*2 +--------------------------+ +--------------------------+ |00:110:000:000:000:000:000| HLT +--------------------------+ +--------------------------+ |00:111:001:0E0:000:000:000| EI/DI +--------------------------+ +--------------------------+ |01:ccc:00i:+##:###:###:###| SCC +--------------------------+ +--------------------------+ |10:110:aa0:xx+:###:###:###| LEA +--------------------------+ +--------------------------+ |10:11L:aa1:SC : : ##:###| SHIFT -1 to -20 +--------------------------+ X 0 # 1 INDEXED op aa xx ccc 0 sub/sbc jmp z False 1 add/adc a a Z 2 ld x x S 3 adx s s S+Z 4 and C 5 or - 6 xor True 7 bit - NORMAL <0:? ><1!m!m> PANEL * / PANEL 78 #040 / idle 78 0040 pc 79 0040 pc 7A 0040 pc 7B 2800 dsp no 7C 0040 pc 7D 0240 pc ir 70 #050 / aload 70 8440 pc rd swr 71 8040 pc swr 72 0062 pc ld wrd 73 0058 pc 2 op /sub 74 0040 pc 75 0240 pc ir 68 #060 / examine 68 0448 pc 2 rd 69 0040 pc 6A 0040 pc 6B 0862 ac ld wrd 6C 0040 pc 6D 0240 pc ir 60 #070 / deposit 60 8440 pc rd swr 61 8040 pc swr 62 1448 pc 2 rd wr 63 1862 ac ld wrd wr 64 0040 pc 65 0240 pc ir / PANEL STORE is DON't CARE 38 #140 / idle 38 0040 pc 39 0040 pc 3A 0040 pc 3B 2800 dsp no 3C 0040 pc 3D 0240 pc ir 30 #150 / aload 30 8440 pc rd swr 31 8040 pc swr 32 0062 pc ld wrd 33 0058 pc 2 op /sub 34 0040 pc 35 0240 pc ir 28 #160 / examine 28 0448 pc 2 rd 29 0040 pc 2A 0040 pc 2B 0862 ac ld wrd 2C 0040 pc 2D 0240 pc ir 20 #170 / deposit 20 8440 pc rd swr 21 8040 pc swr 22 1448 pc 2 rd wr 23 1862 ac ld wrd wr 24 0040 pc 25 0240 pc ir / MEMORY D0 #210 / word direct D0 2404 ix sx no rd D1 0840 ac D2 0448 pc 2 rd D3 0A52 ac op wrd ir D8 #200 / word # D8 0448 pc 2 rd D9 0840 ac DA 0448 pc 2 rd DB 0A52 ac op wrd ir C0 #230 / byte direct C0 2504 ix sx no rd by C1 0940 ac by C2 0448 pc 2 rd C3 0A54 ac op sx ir C8 #220 / byte # C8 0448 pc 2 rd C9 0A54 ac op sx ir CA 0448 pc 2 rd / don't care CB 0A40 ac ir F8 #240 / bcc - trap - hlt F8 0830 ac no op ld F9 0448 pc 2 rd FA 2A01 dsp ctl no ir FB 0040 pc / trap FC 1420 pc ld no rd wr FD 1040 pc wr FE 0468 pc 2 ld rd FF 0240 pc ir F0 #250 / scc F0 0830 ac no op ld F1 0860 ac ld F2 0448 pc 2 rd F3 2A00 dsp no ir E8 #260 / bcc - ei/di E8 0830 ac no op ld E9 0448 pc 2 rd EA 2A01 dsp ctl no ir E0 #270 / scc E0 0830 ac no op ld E1 0860 ac ld E2 0448 pc 2 rd E3 2A00 dsp no ir / STORE 90 #310 / word direct 90 3404 ix sx no rd wr 91 1840 ac wr 92 0448 pc 2 rd 93 2A00 dsp no ir 98 #300 / lea 98 0448 pc 2 rd 99 2244 ix sx ir 9A 0440 rd 80 #330 / byte direct 80 3504 ix sx no rd by wr 81 1940 ac by wr 82 0448 pc 2 rd 83 2A00 dsp no ir 88 #320 / shift 88 0800 ac no 89 08C0 ac sft / hold count? 8A 0448 pc 2 rd 8B 2A00 dsp no ir B0 #350 / jsv word direct B0 2404 ix sx no rd B1 0048 pc 2 B2 5440 stk rd wr B3 1040 pc wr B4 0462 pc ld wrd rd B5 0240 pc ir B8 #340 / jsv # B8 0448 pc 2 rd B9 0048 pc 2 BA 5440 stk rd wr BB 1040 pc wr BC 0462 pc ld wrd rd BD 0240 pc ir A0 #370 / jmp word direct A0 2404 ix sx no rd A1 0040 pc A2 0462 pc ld wrd rd A3 0240 pc ir A8 #360 / jmp word # A8 0448 pc 2 rd A9 0040 pc AA 0462 pc ld wrd rd AB 0240 pc ir * ROMA - ROM A PAL/OR PROM 256x8 ROMB - ROM B PAL/OR PROM 256x8 ROMTC - TABLE 00 3A 01 3A 02 3A 03 3A 04 3A 05 3A 06 3A 07 3A 08 26 09 26 0A 26 0B 26 0C 26 0D 26 0E 26 0F 26 10 29 11 29 12 29 13 29 14 29 15 29 16 29 17 29 18 46 19 69 1A 3A 1B A9 1C 3B 1D 3E 1E 36 1F 17 * $