📄 cop2000.vhd
字号:
WHEN "11001100" => PCOE <= '0'; -- RET
WHEN "11010000" => PCOE <= '0'; -- RR A
WHEN "11010100" => PCOE <= '0'; -- RL A
WHEN "11011000" => PCOE <= '0'; -- RRC A
WHEN "11011100" => PCOE <= '0'; -- RLC A
WHEN "11100000" => PCOE <= '0'; -- NOP
WHEN "11100100" => PCOE <= '0'; -- CPL A
WHEN "11101000" => PCOE <= '0'; -- UNDEF
WHEN "11101100" => PCOE <= '0'; -- RETI
WHEN "11110000" => PCOE <= '0'; -- UNDEF
WHEN "11110100" => PCOE <= '0'; -- UNDEF
WHEN "11111000" => PCOE <= '0'; -- UNDEF
WHEN "11111100" => PCOE <= '0'; -- UNDEF
WHEN "11111101" => PCOE <= '0'; -- UNDEF
WHEN OTHERS => PCOE <= '1';
END CASE;
-- EMEN 39
CASE STATUS IS
WHEN "00000000" => EMEN <= '0'; -- _FATCH_
WHEN "00000101" => EMEN <= '0'; -- MOV R?,MM
WHEN "00000110" => EMEN <= '0'; -- MOV R?,MM
WHEN "00001011" => EMEN <= '0'; -- MOV MM,#II
WHEN "00001010" => EMEN <= '0'; -- MOV MM,#II
WHEN "00001001" => EMEN <= '0'; -- MOV MM,#II
WHEN "00010110" => EMEN <= '0'; -- ADD A, @R?
WHEN "00011011" => EMEN <= '0'; -- ADD A, MM
WHEN "00011010" => EMEN <= '0'; -- ADD A, MM
WHEN "00011110" => EMEN <= '0'; -- ADD A, #II
WHEN "00100110" => EMEN <= '0'; -- ADDC A, @R?
WHEN "00101011" => EMEN <= '0'; -- ADDC A, MM
WHEN "00101010" => EMEN <= '0'; -- ADDC A, MM
WHEN "00101110" => EMEN <= '0'; -- ADDC A, #II
WHEN "00110110" => EMEN <= '0'; -- SUB A, @R?
WHEN "00111011" => EMEN <= '0'; -- SUB A, MM
WHEN "00111010" => EMEN <= '0'; -- SUB A, MM
WHEN "00111110" => EMEN <= '0'; -- SUB A, #II
WHEN "01000110" => EMEN <= '0'; -- SUBC A, @R?
WHEN "01001011" => EMEN <= '0'; -- SUBC A, MM
WHEN "01001010" => EMEN <= '0'; -- SUBC A, MM
WHEN "01001110" => EMEN <= '0'; -- SUBC A, #II
WHEN "01010110" => EMEN <= '0'; -- AND A, @R?
WHEN "01011011" => EMEN <= '0'; -- AND A, MM
WHEN "01011010" => EMEN <= '0'; -- AND A, MM
WHEN "01011110" => EMEN <= '0'; -- AND A, #II
WHEN "01100110" => EMEN <= '0'; -- OR A, @R?
WHEN "01101011" => EMEN <= '0'; -- OR A, MM
WHEN "01101010" => EMEN <= '0'; -- OR A, MM
WHEN "01101110" => EMEN <= '0'; -- OR A, #II
WHEN "01110101" => EMEN <= '0'; -- MOV A, @R?
WHEN "01111010" => EMEN <= '0'; -- MOV A, MM
WHEN "01111001" => EMEN <= '0'; -- MOV A, MM
WHEN "01111101" => EMEN <= '0'; -- MOV A, #II
WHEN "10000101" => EMEN <= '0'; -- MOV @R?, A
WHEN "10001010" => EMEN <= '0'; -- MOV MM, A
WHEN "10001001" => EMEN <= '0'; -- MOV MM, A
WHEN "10001101" => EMEN <= '0'; -- MOV R?, #II
WHEN "10010010" => EMEN <= '0'; -- READ A, MM
WHEN "10010110" => EMEN <= '0'; -- WRITE MM, A
WHEN "10100001" => EMEN <= '0'; -- JC MM
WHEN "10100101" => EMEN <= '0'; -- JZ MM
WHEN "10101101" => EMEN <= '0'; -- JMP MM
WHEN "10111101" => EMEN <= '0'; -- CALL MM
WHEN OTHERS => EMEN <= '1';
END CASE;
-- IREN 64
CASE STATUS IS
WHEN "00000000" => IREN <= '0'; -- _FATCH_
WHEN "00000100" => IREN <= '0'; -- MOV R?,MM
WHEN "00001000" => IREN <= '0'; -- MOV MM,#II
WHEN "00001100" => IREN <= '0'; -- UNDEF
WHEN "00010000" => IREN <= '0'; -- ADD A, R?
WHEN "00010100" => IREN <= '0'; -- ADD A, @R?
WHEN "00011000" => IREN <= '0'; -- ADD A, MM
WHEN "00011100" => IREN <= '0'; -- ADD A, #II
WHEN "00100000" => IREN <= '0'; -- ADDC A, R?
WHEN "00100100" => IREN <= '0'; -- ADDC A, @R?
WHEN "00101000" => IREN <= '0'; -- ADDC A, MM
WHEN "00101100" => IREN <= '0'; -- ADDC A, #II
WHEN "00110000" => IREN <= '0'; -- SUB A, R?
WHEN "00110100" => IREN <= '0'; -- SUB A, @R?
WHEN "00111000" => IREN <= '0'; -- SUB A, MM
WHEN "00111100" => IREN <= '0'; -- SUB A, #II
WHEN "01000000" => IREN <= '0'; -- SUBC A, R?
WHEN "01000100" => IREN <= '0'; -- SUBC A, @R?
WHEN "01001000" => IREN <= '0'; -- SUBC A, MM
WHEN "01001100" => IREN <= '0'; -- SUBC A, #II
WHEN "01010000" => IREN <= '0'; -- AND A, R?
WHEN "01010100" => IREN <= '0'; -- AND A, @R?
WHEN "01011000" => IREN <= '0'; -- AND A, MM
WHEN "01011100" => IREN <= '0'; -- AND A, #II
WHEN "01100000" => IREN <= '0'; -- OR A, R?
WHEN "01100100" => IREN <= '0'; -- OR A, @R?
WHEN "01101000" => IREN <= '0'; -- OR A, MM
WHEN "01101100" => IREN <= '0'; -- OR A, #II
WHEN "01110000" => IREN <= '0'; -- MOV A, R?
WHEN "01110100" => IREN <= '0'; -- MOV A, @R?
WHEN "01111000" => IREN <= '0'; -- MOV A, MM
WHEN "01111100" => IREN <= '0'; -- MOV A, #II
WHEN "10000000" => IREN <= '0'; -- MOV R?, A
WHEN "10000100" => IREN <= '0'; -- MOV @R?, A
WHEN "10001000" => IREN <= '0'; -- MOV MM, A
WHEN "10001100" => IREN <= '0'; -- MOV R?, #II
WHEN "10010000" => IREN <= '0'; -- READ A, MM
WHEN "10010100" => IREN <= '0'; -- WRITE MM, A
WHEN "10011000" => IREN <= '0'; -- UNDEF
WHEN "10011100" => IREN <= '0'; -- UNDEF
WHEN "10100000" => IREN <= '0'; -- JC MM
WHEN "10100100" => IREN <= '0'; -- JZ MM
WHEN "10101000" => IREN <= '0'; -- UNDEF
WHEN "10101100" => IREN <= '0'; -- JMP MM
WHEN "10110000" => IREN <= '0'; -- UNDEF
WHEN "10110100" => IREN <= '0'; -- UNDEF
WHEN "10111000" => IREN <= '0'; -- _INT_
WHEN "10111100" => IREN <= '0'; -- CALL MM
WHEN "11000000" => IREN <= '0'; -- IN
WHEN "11000100" => IREN <= '0'; -- OUT
WHEN "11001000" => IREN <= '0'; -- UNDEF
WHEN "11001100" => IREN <= '0'; -- RET
WHEN "11010000" => IREN <= '0'; -- RR A
WHEN "11010100" => IREN <= '0'; -- RL A
WHEN "11011000" => IREN <= '0'; -- RRC A
WHEN "11011100" => IREN <= '0'; -- RLC A
WHEN "11100000" => IREN <= '0'; -- NOP
WHEN "11100100" => IREN <= '0'; -- CPL A
WHEN "11101000" => IREN <= '0'; -- UNDEF
WHEN "11101100" => IREN <= '0'; -- RETI
WHEN "11110000" => IREN <= '0'; -- UNDEF
WHEN "11110100" => IREN <= '0'; -- UNDEF
WHEN "11111000" => IREN <= '0'; -- UNDEF
WHEN "11111100" => IREN <= '0'; -- UNDEF
WHEN OTHERS => IREN <= '1';
END CASE;
-- EINT 3
CASE STATUS IS
WHEN "00000000" => EINT <= '0'; -- _FATCH_
WHEN "11101101" => EINT <= '0'; -- RETI
WHEN "11111101" => EINT <= '0'; -- UNDEF
WHEN OTHERS => EINT <= '1';
END CASE;
-- ELP 8
CASE STATUS IS
WHEN "00000000" => ELP <= '0'; -- _FATCH_
WHEN "10100001" => ELP <= '0'; -- JC MM
WHEN "10100101" => ELP <= '0'; -- JZ MM
WHEN "10101101" => ELP <= '0'; -- JMP MM
WHEN "10111001" => ELP <= '0'; -- _INT_
WHEN "10111101" => ELP <= '0'; -- CALL MM
WHEN "11001101" => ELP <= '0'; -- RET
WHEN "11101101" => ELP <= '0'; -- RETI
WHEN OTHERS => ELP <= '1';
END CASE;
-- MAREN 21
CASE STATUS IS
WHEN "00000000" => MAREN <= '0'; -- _FATCH_
WHEN "00000110" => MAREN <= '0'; -- MOV R?,MM
WHEN "00001011" => MAREN <= '0'; -- MOV MM,#II
WHEN "00010111" => MAREN <= '0'; -- ADD A, @R?
WHEN "00011011" => MAREN <= '0'; -- ADD A, MM
WHEN "00100111" => MAREN <= '0'; -- ADDC A, @R?
WHEN "00101011" => MAREN <= '0'; -- ADDC A, MM
WHEN "00110111" => MAREN <= '0'; -- SUB A, @R?
WHEN "00111011" => MAREN <= '0'; -- SUB A, MM
WHEN "01000111" => MAREN <= '0'; -- SUBC A, @R?
WHEN "01001011" => MAREN <= '0'; -- SUBC A, MM
WHEN "01010111" => MAREN <= '0'; -- AND A, @R?
WHEN "01011011" => MAREN <= '0'; -- AND A, MM
WHEN "01100111" => MAREN <= '0'; -- OR A, @R?
WHEN "01101011" => MAREN <= '0'; -- OR A, MM
WHEN "01110110" => MAREN <= '0'; -- MOV A, @R?
WHEN "01111010" => MAREN <= '0'; -- MOV A, MM
WHEN "10000110" => MAREN <= '0'; -- MOV @R?, A
WHEN "10001010" => MAREN <= '0'; -- MOV MM, A
WHEN "10010010" => MAREN <= '0'; -- READ A, MM
WHEN "10010110" => MAREN <= '0'; -- WRITE MM, A
WHEN "10111111" => MAREN <= '0'; -- CALL MM
WHEN "11111101" => MAREN <= '0'; -- UNDEF
WHEN OTHERS => MAREN <= '1';
END CASE;
-- MAROE 20
CASE STATUS IS
WHEN "00000000" => MAROE <= '0'; -- _FATCH_
WHEN "00000101" => MAROE <= '0'; -- MOV R?,MM
WHEN "00001001" => MAROE <= '0'; -- MOV MM,#II
WHEN "00010110" => MAROE <= '0'; -- ADD A, @R?
WHEN "00011010" => MAROE <= '0'; -- ADD A, MM
WHEN "00100110" => MAROE <= '0'; -- ADDC A, @R?
WHEN "00101010" => MAROE <= '0'; -- ADDC A, MM
WHEN "00110110" => MAROE <= '0'; -- SUB A, @R?
WHEN "00111010" => MAROE <= '0'; -- SUB A, MM
WHEN "01000110" => MAROE <= '0'; -- SUBC A, @R?
WHEN "01001010" => MAROE <= '0'; -- SUBC A, MM
WHEN "01010110" => MAROE <= '0'; -- AND A, @R?
WHEN "01011010" => MAROE <= '0'; -- AND A, MM
WHEN "01100110" => MAROE <= '0'; -- OR A, @R?
WHEN "01101010" => MAROE <= '0'; -- OR A, MM
WHEN "01110101" => MAROE <= '0'; -- MOV A, @R?
WHEN "01111001" => MAROE <= '0'; -- MOV A, MM
WHEN "10000101" => MAROE <= '0'; -- MOV @R?, A
WHEN "10001001" => MAROE <= '0'; -- MOV MM, A
WHEN "10010001" => MAROE <= '0'; -- READ A, MM
WHEN "10010101" => MAROE <= '0'; -- WRITE MM, A
WHEN "10111101" => MAROE <= '0'; -- CALL MM
WHEN OTHERS => MAROE <= '1';
END CASE;
-- OUTEN 4
CASE STATUS IS
WHEN "00000000" => OUTEN <= '0'; -- _FATCH_
WHEN "10010101" => OUTEN <= '0'; -- WRITE MM, A
WHEN "11000101" => OUTEN <= '0'; -- OUT
WHEN "11111101" => OUTEN <= '0'; -- UNDEF
WHEN OTHERS => OUTEN <= '1';
END CASE;
-- STEN 3
CASE STATUS IS
WHEN "00000000" => STEN <= '0'; -- _FATCH_
WHEN "10111010" => STEN <= '0'; -- _INT_
WHEN "10111110" => STEN <= '0'; -- CALL MM
WHEN OTHERS => STEN <= '1';
END CASE;
-- RRD 17
CASE STATUS IS
WHEN "00000000" => RRD <= '0'; -- _FATCH_
WHEN "00010010" => RRD <= '0'; -- ADD A, R?
WHEN "00010111" => RRD <= '0'; -- ADD A, @R?
WHEN "00100010" => RRD <= '0'; -- ADDC A, R?
WHEN "00100111" => RRD <= '0'; -- ADDC A, @R?
WHEN "00110010" => RRD <= '0'; -- SUB A, R?
WHEN "00110111" => RRD <= '0'; -- SUB A, @R?
WHEN "01000010" => RRD <= '0'; -- SUBC A, R?
WHEN "01000111" => RRD <= '0'; -- SUBC A, @R?
WHEN "01010010" => RRD <= '0'; -- AND A, R?
WHEN "01010111" => RRD <= '0'; -- AND A, @R?
WHEN "01100010" => RRD <= '0'; -- OR A, R?
WHEN "01100111" => RRD <= '0'; -- OR A, @R?
WHEN "01110001" => RRD <= '0'; -- MOV A, R?
WHEN "01110110" => RRD <= '0'; -- MOV A, @R?
WHEN "10000110" => RRD <= '0'; -- MOV @R?, A
WHEN "11111101" => RRD <= '0'; -- UNDEF
WHEN OTHERS => RRD <= '1';
END CASE;
-- RWR 3
CASE STATUS IS
WHEN "00000000" => RWR <= '0'; -- _FATCH_
WHEN "00000101" => RWR <= '0'; -- MOV R?,MM
WHEN "10000001" => RWR <= '0'; -- MOV R?, A
WHEN "10001101" => RWR <= '0'; -- MOV R?, #II
WHEN OTHERS => RWR <= '1';
END CASE;
-- CN 3
CASE STATUS IS
WHEN "00000000" => CN <= '0'; -- _FATCH_
WHEN "11010001" => CN <= '0'; -- RR A
WHEN "11010101" => CN <= '0'; -- RL A
WHEN OTHERS => CN <= '1';
END CASE;
-- FEN 30
CASE STATUS IS
WHEN "00000000" => FEN <= '0'; -- _FATCH_
WHEN "00010001" => FEN <= '0'; -- ADD A, R?
WHEN "00010101" => FEN <= '0'; -- ADD A, @R?
WHEN "00011001" => FEN <= '0'; -- ADD A, MM
WHEN "00011101" => FEN <= '0'; -- ADD A, #II
WHEN "00100001" => FEN <= '0'; -- ADDC A, R?
WHEN "00100101" => FEN <= '0'; -- ADDC A, @R?
WHEN "00101001" => FEN <= '0'; -- ADDC A, MM
WHEN "00101101" => FEN <= '0'; -- ADDC A, #II
WHEN "00110001" => FEN <= '0'; -- SUB A, R?
WHEN "00110101" => FEN <= '0'; -- SUB A, @R?
WHEN "00111001" => FEN <= '0'; -- SUB A, MM
WHEN "00111101" => FEN <= '0'; -- SUB A, #II
WHEN "01000001" => FEN <= '0'; -- SUBC A, R?
WHEN "01000101" => FEN <= '0'; -- SUBC A, @R?
WHEN "01001001" => FEN <= '0'; -- SUBC A, MM
WHEN "01001101" => FEN <= '0'; -- SUBC A, #II
WHEN "01010001" => FEN <= '0'; -- AND A, R?
WHEN "01010101" => FEN <= '0'; -- AND A, @R?
WHEN "01011001" => FEN <= '0'; -- AND A, MM
WHEN "01011101" => FEN <= '0'; -- AND A, #II
WHEN "01100001" => FEN <= '0'; -- OR A, R?
WHEN "01100101" => FEN <= '0'; -- OR A, @R?
WHEN "01101001" => FEN <= '0'; -- OR A, MM
WHEN "01101101" => FEN <= '0'; -- OR A, #II
WHEN "11010001" => FEN <= '0'; -- RR A
WHEN "11010101" => FEN <= '0'; -- RL A
WHEN "11011001" => FEN <= '0'; -- RRC A
WHEN "11011101" => FEN <= '0'; -- RLC A
WHEN "11100101" => FEN <= '0'; -- CPL A
WHEN OTHERS => FEN <= '1';
END CASE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -