IN OUT STRR PSH/F POP/F MVRD RET CALA JRNS CLC 82 86 83 84 85 87 8C 88 8F CE 65 6C 12 14 12 14 13 30 14 30 19 00 15 1A 15 1A 16 30 17 1C 17 1C 18 30 1D 1C 23 00 24 30 1F 00 20 00 21 00 22 30 69 30 6A 30 3 3 3 3 E 3 3 3 3 3 3 3 E 3 E E E 3 3 3 3 6 6 0 0 0 7 7 0 7 7 0 0 0 0 0 0 0 0 5 0 0 4 4 2 3 4 4 4 0 4 4 1 4 4 1 4 1 4 0 4 4 4 7 7 3 7 3 3 3 0 3 3 0 3 3 7 3 7 3 2 0 5 0 1 1 1 3 1 3 3 1 2 2 1 2 2 3 2 0 3 2 1 3 1 0 0 0 0 8 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 4 4 0 4 4 0 5 4 5 5 0 4 5 0 5 0 0 0 0 0 0 0 0 0 4 4 0 5 4 0 5 0 0 5 0 5 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 0 0 0 0 0 3 3 0 0 3 3 3 0 3 3 0 3 3 0 3 0 3 0 0 0 0 2 2 1 0 0 0 0 3 0 0 0 0 0 0 0 0 0 1 0 2 0 56 30 基本指令和扩展指令的微程序编码表(二进制)
指令名 ALL 微址 下址 CI3-0 SCC3-0 0MEW 0I2-0 SAI8-6 SBI5-3 B A SST SSHSCI DC2 DC1 00 00 1110 0000 0100 0001 0011 0001 0101 0101 0000 0001 0111 0000 01 00 1110 0000 0100 0011 0010 0000 0101 0101 0000 0001 1011 0000 02 00 1110 0000 0001 0000 0001 0000 0000 0000 0000 0000 0001 0000 03 00 0010 0000 0100 0000 0001 0000 0000 0000 0000 0000 0000 0000 中断隐指令 ADD SUB AND CMP XOR TEST OR MVRR DEC INC SHL SHR 00 04 30 0011 0000 0100 0001 1011 1000 0000 0000 0001 0000 0000 0000 01 05 30 0011 0000 0100 0001 1011 1001 0000 0000 0001 0001 0000 0000 02 06 30 0011 0000 0100 0001 1011 1100 0000 0000 0001 0000 0000 0000 03 09 30 0011 0000 0100 0001 1001 1001 0000 0000 0001 0001 0000 0000 04 08 30 0011 0000 0100 0001 1011 1110 0000 0000 0001 0000 0000 0000 05 0A 30 0011 0000 0100 0001 1001 1100 0000 0000 0001 0000 0000 0000 06 07 30 0011 0000 0100 0001 1011 1011 0000 0000 0001 0000 0000 0000 07 0B 30 0011 0000 0100 0100 1011 1000 0000 0000 0001 0000 0000 0000 08 0D 30 0011 0000 0100 0011 0011 1001 0000 0000 0001 0000 0000 0000 09 0C 30 0011 0000 0100 0011 0011 1000 0000 0000 0001 0001 0000 0000 0A 0E 30 0011 0000 0100 0011 0111 1000 0000 0000 0110 0000 0000 0000 0B 0F 30 0011 0000 0100 0011 0101 1000 0000 0000 0101 0000 0000 0000 JR JRC JRNC JRZ JRNZ JMPA LORR IN OUT STRR PSH/F POP/F MVRD RET CALA CALR 41 11 30 0011 0000 0100 0101 0011 0000 0101 0101 0000 0000 0000 0010 44 10 30 0011 0100 0100 0000 0001 0000 0000 0000 0000 0000 0000 0000 45 10 30 0011 0100 0100 0000 0001 0000 0000 0000 0000 0000 0000 0000 46 10 30 0011 0100 0100 0000 0001 0000 0000 0000 0000 0000 0000 0000 47 10 30 0011 0100 0100 0000 0001 0000 0000 0000 0000 0000 0000 0000 80 1E 24 0011 0000 0100 0011 0010 0000 0101 0101 0000 0001 0011 0000 81 1B 00 1110 0000 0100 0100 1001 0000 0000 0000 0000 0000 0011 0000 82 12 14 0011 0110 0100 0111 0001 0000 0000 0000 0000 0000 0011 0010 86 12 14 0011 0110 0100 0111 0001 0000 0000 0000 0000 0000 0011 0010 13 30 0011 0000 0010 0011 0001 0000 0000 0000 0000 0000 0000 0001 14 30 0011 0000 0011 0111 0011 0000 0000 0000 0000 0000 0000 0000 83 19 00 1110 0000 0100 0011 0001 1000 0000 0000 0000 0000 0011 0000 84 15 1A 0011 0111 0100 0011 0011 0001 0100 0000 0000 0000 0011 0000 85 15 1A 0011 0111 0100 0011 0011 0001 0100 0000 0000 0000 0011 0000 16 30 0011 0000 0000 0000 0001 0000 0000 0000 0000 0000 0000 0011 87 17 1C 0011 0111 0100 0011 0010 0000 0100 0100 0000 0001 0011 0000 8C 17 1C 0011 0111 0100 0011 0010 0000 0100 0100 0000 0001 0011 0000 18 30 0011 0000 0001 0000 0001 0000 0000 0000 0010 0000 0000 0000 88 1D 1C 0011 0000 0100 0011 0010 0000 0101 0101 0000 0001 0011 0000 8F 23 00 1110 0000 0100 0011 0010 0000 0100 0100 0000 0001 0011 0000 24 30 0011 0000 0001 0111 0011 0000 0101 0000 0000 0000 0000 0000 CE 1F 00 1110 0000 0100 0011 0010 0000 0101 0101 0000 0001 0011 0000 20 00 1110 0000 0001 0111 0000 0000 0000 0000 0000 0000 0000 0000 21 00 1110 0000 0100 0011 0011 0001 0100 0000 0000 0000 0011 0000 22 30 0011 0000 0000 0010 0010 0000 0101 0101 0000 0000 0000 0001 E0 64 00 1110 0000 0100 0011 0011 0001 0100 0000 0000 0000 0011 0000 65 00 1110 0000 0000 0100 0001 0000 0000 0101 0000 0000 0000 0001 66 30 0011 0000 0100 0100 1011 0000 0101 0000 0000 0000 0000 0000
八个控制存储器芯片中各存储单元的内容列表 MAPR指令名 ALL 中断隐指令 ADD SUB AND OR 00 01 02 06 OM 00 01 02 03 04 05 06 07 MPROM1 00 00 00 00 30 30 30 30 MPROM2 E0 E0 E0 20 30 30 30 30 MPROM3 41 43 10 40 41 41 41 41 MPROM4 31 20 10 10 B8 B9 BC BB MPROM5 55 55 00 00 00 00 00 00 MPROM6 01 01 00 00 10 11 10 10 MPROM7 70 B0 10 00 00 00 00 00 XOR CMP TEST MVRR INC DEC SHL SHR JRC JRNC JRZ JRNZ JR IN OUT PSH/F POP/F STRR LORR MVRD JMPA RET CALR 04 03 05 07 09 08 0A 0B 44 45 46 47 41 82 86 84 85 87 8C 08 09 0A 0B 0C 0D 0E 0F 10 10 10 10 11 12 12 13 14 15 15 16 17 17 18 30 30 30 30 30 30 30 30 30 30 30 30 30 14 14 30 30 1A 1A 30 1C 1C 30 00 30 00 30 1C 24 00 00 00 30 00 30 00 00 30 30 30 30 30 30 30 30 30 34 34 34 34 30 36 36 30 30 37 37 30 37 37 30 E0 30 E0 30 30 30 E0 E0 E0 30 E0 30 E0 E0 30 41 41 41 44 43 43 43 43 40 40 40 40 45 47 47 23 37 43 43 00 43 43 10 43 04 44 17 43 43 43 17 43 02 43 17 43 04 44 BE 99 9C B8 38 39 78 58 10 10 10 10 30 10 10 10 30 31 31 10 20 20 10 18 90 90 38 20 20 20 00 31 20 20 30 31 10 B0 00 00 00 00 00 00 00 00 00 00 00 00 55 00 00 00 00 40 40 00 44 44 00 00 00 00 00 55 55 55 00 40 55 44 50 40 05 50 10 11 10 10 11 10 60 50 00 00 00 00 00 00 00 00 00 00 00 00 01 01 20 00 00 00 00 01 01 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 32 32 01 00 30 30 03 30 30 00 30 01 30 00 30 30 30 00 30 01 30 00 30 01 00 83 81 88 80 CE 8F E0 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 64 65 66
十、指令设计方案
1、将设计好的微码写入控制存储器。
一次只对一片28C64 控制存储器芯片进行读写,该芯片可插在扩展芯片的高位或低位,若插在高位,输入时信号编码为高八位,低八位补零;若插在低位,输入时信号编码为低八
位,高位补零。若一次扩展两片28C64控制器芯片,要注意信号要与产生该信号的芯片相对。 将扩展新片的内存单元地址置为4000~5FFF,将MAPROM 插入扩展芯片的位置,微程序入口地址对应的内存单元的地址为芯片的起始地址和该指令的编码值之和。具体操作如下: (1)将端口地址写入芯片 E 4000
4000 00FF:04 00FF:05 00FF:06 00FF:09 00FF:08 00FF:0A 00FF:07 00FF:0B 00FF:0D 00FF:0C 00FF:0E 00FF:0F E 4020
4020 00FF:50 00FF:51 E 402A
402A 00FF:54 00FF:55 00FF: 53 00FF:52 E 4041
4041 00FF:11 E 4044
4044 00FF:10 00FF:10 00FF:10 00FF:10 E4060
4060 00FF:5A 00FF: 0 E 406C
406C 00FF:56 00FF:57 00FF:58 00FF:59 E 4080
0FF: 00FF: 00FF:69 00FF:69
4080 00FF:1E 00FF:1B 00FF:12 00FF:19 00FF:15 00FF:12 00FF:17 00FF:1D E 408C
408C 00FF:17 00FF: 00FF: 00FF: 23 E 40CE
40CE 00FF:1F E 40E0
40E0 00FF:64 E 40E4
40E4 00FF:5B 00FF:5D 00FF:61 00FF:5F E 40EF
40EF 00FF:67 编码截图如下:
(2)将MPROM1-MPROM7依次插入扩展芯片的位置对其编程,内存单元的地址为芯片的起始地址和该指令操作功能所对应的微址之和,操作如下:
MPROM1产生下址信号,MPROM2 产生CI3~0、SCC3~0 信号, 对MPROM1-2 的操作为:MPROM1 在高位 MPROM2 在低位 E 4000
4000 00FF:00E0 00FF:00E0 00FF:00E0 00FF:0020 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:3034 00FF:3030 00FF:1436 00FF:3030 00FF:3030 00FF:1A37 00FF:3030 00FF:1C37 00FF:3030 00FF:00E0 00FF:3030 00FF:00E0 00FF:3030 00FF:1C30 00FF:2430 00FF:00E0 00FF:00E0 00FF:00E0 00FF:3030 00FF:00E0 00FF:3030 E 4030
4030 00FF:3A32 00FF:0230 E 403A
403A 00FF:4010 00FF:4331 00FF:0410 00FF:4331 00FF:0210 00FF:4730 E 4050
4050 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:00E0 00FF:1C30 00FF:00E0 00FF:1C30 00FF:00E0 00FF:1A30 00FF:00E0 00FF:00E0 00FF:3030 00FF:00E0 00FF:00E0 00FF:3030 00FF:00E0 00FF:2330 00FF:3035 00FF:3030 编码截图如下: