------------------------------------------------------------------------- -- Project: JCPU, a portable 8-bit RISC CPU written in VHDL -- This file: The ROM file for use in your VHDL design -- -- Copyright (C) 2007 J. Ahrensfeld -- -- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see . -- -- For questions and ideas, please contact the author at jens@jayfield.org -- -------------------------------------------------------------------------- LIBRARY ieee; use IEEE.STD_LOGIC_1164.ALL; USE ieee.numeric_std.ALL; library work; use work.types_pkg.all; -- JASM_ROM_INSERT_HERE ENTITY irom IS Generic ( depth : integer := 4 ); Port ( clk : in STD_LOGIC; ce : in STD_LOGIC; addr : in addr_t; dout : out word_t ); END irom; ARCHITECTURE itest OF irom IS type imem_rom_t is array (0 to depth-1) of word_t; -- Assembled from itest.jsm constant imem_rom : imem_rom_t := ( "110000" & X"010", -- 0x000: JMP 0x010 "110000" & X"288", -- 0x001: JMP 0x288 "000000" & X"000", -- 0x002: "000000" & X"000", -- 0x003: "000000" & X"000", -- 0x004: "000000" & X"000", -- 0x005: "000000" & X"000", -- 0x006: "000000" & X"000", -- 0x007: "000000" & X"000", -- 0x008: "000000" & X"000", -- 0x009: "000000" & X"000", -- 0x00A: "000000" & X"000", -- 0x00B: "000000" & X"000", -- 0x00C: "000000" & X"000", -- 0x00D: "000000" & X"000", -- 0x00E: "000000" & X"000", -- 0x00F: "111011" & X"03B", -- 0x010: CALL 0x03B "101001" & X"000", -- 0x011: CIN R00, (0x00) "100100" & X"000", -- 0x012: XOUT (0x00), R00 "111011" & X"04C", -- 0x013: CALL 0x04C "000011" & X"010", -- 0x014: MOV R00, 0x01 "100100" & X"010", -- 0x015: XOUT (0x01), R00 "111011" & X"08D", -- 0x016: CALL 0x08D "000011" & X"020", -- 0x017: MOV R00, 0x02 "100100" & X"010", -- 0x018: XOUT (0x01), R00 "111011" & X"0C9", -- 0x019: CALL 0x0C9 "000011" & X"030", -- 0x01A: MOV R00, 0x03 "100100" & X"010", -- 0x01B: XOUT (0x01), R00 "111011" & X"0DB", -- 0x01C: CALL 0x0DB "000011" & X"040", -- 0x01D: MOV R00, 0x04 "100100" & X"010", -- 0x01E: XOUT (0x01), R00 "111011" & X"0ED", -- 0x01F: CALL 0x0ED "000011" & X"050", -- 0x020: MOV R00, 0x05 "100100" & X"010", -- 0x021: XOUT (0x01), R00 "111011" & X"0FF", -- 0x022: CALL 0x0FF "000011" & X"060", -- 0x023: MOV R00, 0x06 "100100" & X"010", -- 0x024: XOUT (0x01), R00 "111011" & X"115", -- 0x025: CALL 0x115 "000011" & X"070", -- 0x026: MOV R00, 0x07 "100100" & X"010", -- 0x027: XOUT (0x01), R00 "111011" & X"12B", -- 0x028: CALL 0x12B "000011" & X"080", -- 0x029: MOV R00, 0x08 "100100" & X"010", -- 0x02A: XOUT (0x01), R00 "111011" & X"137", -- 0x02B: CALL 0x137 "000011" & X"090", -- 0x02C: MOV R00, 0x09 "100100" & X"010", -- 0x02D: XOUT (0x01), R00 "111011" & X"15A", -- 0x02E: CALL 0x15A "000011" & X"0A0", -- 0x02F: MOV R00, 0x0A "100100" & X"010", -- 0x030: XOUT (0x01), R00 "111011" & X"22A", -- 0x031: CALL 0x22A "000011" & X"0B0", -- 0x032: MOV R00, 0x0B "100100" & X"010", -- 0x033: XOUT (0x01), R00 "111011" & X"24D", -- 0x034: CALL 0x24D "000011" & X"0C0", -- 0x035: MOV R00, 0x0C "100100" & X"010", -- 0x036: XOUT (0x01), R00 "111011" & X"278", -- 0x037: CALL 0x278 "000011" & X"FF0", -- 0x038: MOV R00, 0xFF "100100" & X"010", -- 0x039: XOUT (0x01), R00 "110000" & X"2FF", -- 0x03A: JMP 0x2FF "000011" & X"000", -- 0x03B: MOV R00, 0x00 "000011" & X"001", -- 0x03C: MOV R01, 0x00 "000011" & X"002", -- 0x03D: MOV R02, 0x00 "000011" & X"003", -- 0x03E: MOV R03, 0x00 "000011" & X"004", -- 0x03F: MOV R04, 0x00 "000011" & X"005", -- 0x040: MOV R05, 0x00 "000011" & X"006", -- 0x041: MOV R06, 0x00 "000011" & X"007", -- 0x042: MOV R07, 0x00 "000011" & X"008", -- 0x043: MOV R08, 0x00 "000011" & X"009", -- 0x044: MOV R09, 0x00 "000011" & X"00A", -- 0x045: MOV R10, 0x00 "000011" & X"00B", -- 0x046: MOV R11, 0x00 "000011" & X"00C", -- 0x047: MOV R12, 0x00 "000011" & X"00D", -- 0x048: MOV R13, 0x00 "000011" & X"00E", -- 0x049: MOV R14, 0x00 "000011" & X"00F", -- 0x04A: MOV R15, 0x00 "111110" & X"000", -- 0x04B: RET "000011" & X"100", -- 0x04C: MOV R00, 0x10 "001111" & X"100", -- 0x04D: CMP R00, 0x10 "111010" & X"3FF", -- 0x04E: JNE 0x3FF "010001" & X"010", -- 0x04F: ADD R00, 0x01 "000010" & X"001", -- 0x050: MOV R01, R00 "001111" & X"111", -- 0x051: CMP R01, 0x11 "111010" & X"3FF", -- 0x052: JNE 0x3FF "010001" & X"011", -- 0x053: ADD R01, 0x01 "000010" & X"012", -- 0x054: MOV R02, R01 "001111" & X"122", -- 0x055: CMP R02, 0x12 "111010" & X"3FF", -- 0x056: JNE 0x3FF "010001" & X"012", -- 0x057: ADD R02, 0x01 "000010" & X"023", -- 0x058: MOV R03, R02 "001111" & X"133", -- 0x059: CMP R03, 0x13 "111010" & X"3FF", -- 0x05A: JNE 0x3FF "010001" & X"013", -- 0x05B: ADD R03, 0x01 "000010" & X"034", -- 0x05C: MOV R04, R03 "001111" & X"144", -- 0x05D: CMP R04, 0x14 "111010" & X"3FF", -- 0x05E: JNE 0x3FF "010001" & X"014", -- 0x05F: ADD R04, 0x01 "000010" & X"045", -- 0x060: MOV R05, R04 "001111" & X"155", -- 0x061: CMP R05, 0x15 "111010" & X"3FF", -- 0x062: JNE 0x3FF "010001" & X"015", -- 0x063: ADD R05, 0x01 "000010" & X"056", -- 0x064: MOV R06, R05 "001111" & X"166", -- 0x065: CMP R06, 0x16 "111010" & X"3FF", -- 0x066: JNE 0x3FF "010001" & X"016", -- 0x067: ADD R06, 0x01 "000010" & X"067", -- 0x068: MOV R07, R06 "001111" & X"177", -- 0x069: CMP R07, 0x17 "111010" & X"3FF", -- 0x06A: JNE 0x3FF "010001" & X"017", -- 0x06B: ADD R07, 0x01 "000010" & X"078", -- 0x06C: MOV R08, R07 "001111" & X"188", -- 0x06D: CMP R08, 0x18 "111010" & X"3FF", -- 0x06E: JNE 0x3FF "010001" & X"018", -- 0x06F: ADD R08, 0x01 "000010" & X"089", -- 0x070: MOV R09, R08 "001111" & X"199", -- 0x071: CMP R09, 0x19 "111010" & X"3FF", -- 0x072: JNE 0x3FF "010001" & X"019", -- 0x073: ADD R09, 0x01 "000010" & X"09A", -- 0x074: MOV R10, R09 "001111" & X"1AA", -- 0x075: CMP R10, 0x1A "111010" & X"3FF", -- 0x076: JNE 0x3FF "010001" & X"01A", -- 0x077: ADD R10, 0x01 "000010" & X"0AB", -- 0x078: MOV R11, R10 "001111" & X"1BB", -- 0x079: CMP R11, 0x1B "111010" & X"3FF", -- 0x07A: JNE 0x3FF "010001" & X"01B", -- 0x07B: ADD R11, 0x01 "000010" & X"0BC", -- 0x07C: MOV R12, R11 "001111" & X"1CC", -- 0x07D: CMP R12, 0x1C "111010" & X"3FF", -- 0x07E: JNE 0x3FF "010001" & X"01C", -- 0x07F: ADD R12, 0x01 "000010" & X"0CD", -- 0x080: MOV R13, R12 "001111" & X"1DD", -- 0x081: CMP R13, 0x1D "111010" & X"3FF", -- 0x082: JNE 0x3FF "010001" & X"01D", -- 0x083: ADD R13, 0x01 "000010" & X"0DE", -- 0x084: MOV R14, R13 "001111" & X"1EE", -- 0x085: CMP R14, 0x1E "111010" & X"3FF", -- 0x086: JNE 0x3FF "010001" & X"01E", -- 0x087: ADD R14, 0x01 "000010" & X"0EF", -- 0x088: MOV R15, R14 "001111" & X"1FF", -- 0x089: CMP R15, 0x1F "111010" & X"3FF", -- 0x08A: JNE 0x3FF "010001" & X"01F", -- 0x08B: ADD R15, 0x01 "111110" & X"000", -- 0x08C: RET "000011" & X"000", -- 0x08D: MOV R00, 0x00 "001111" & X"000", -- 0x08E: TST R00 "110010" & X"3FF", -- 0x08F: JNZ 0x3FF "110011" & X"3FF", -- 0x090: JC 0x3FF "001111" & X"000", -- 0x091: CMP R00, 0x00 "111010" & X"3FF", -- 0x092: JNE 0x3FF "110101" & X"3FF", -- 0x093: JLT 0x3FF "110110" & X"3FF", -- 0x094: JGT 0x3FF "110111" & X"097", -- 0x095: JLE 0x097 "110000" & X"3FF", -- 0x096: JMP 0x3FF "111001" & X"099", -- 0x097: JEQ 0x099 "110000" & X"3FF", -- 0x098: JMP 0x3FF "111000" & X"09B", -- 0x099: JGE 0x09B "110000" & X"3FF", -- 0x09A: JMP 0x3FF "001111" & X"550", -- 0x09B: CMP R00, 0x55 "111001" & X"3FF", -- 0x09C: JEQ 0x3FF "110101" & X"09F", -- 0x09D: JLT 0x09F "110000" & X"3FF", -- 0x09E: JMP 0x3FF "110111" & X"0A1", -- 0x09F: JLE 0x0A1 "110000" & X"3FF", -- 0x0A0: JMP 0x3FF "111000" & X"3FF", -- 0x0A1: JGE 0x3FF "110110" & X"3FF", -- 0x0A2: JGT 0x3FF "000011" & X"550", -- 0x0A3: MOV R00, 0x55 "001111" & X"000", -- 0x0A4: TST R00 "110001" & X"3FF", -- 0x0A5: JZ 0x3FF "110011" & X"3FF", -- 0x0A6: JC 0x3FF "001111" & X"AA0", -- 0x0A7: CMP R00, 0xAA "111001" & X"3FF", -- 0x0A8: JEQ 0x3FF "111010" & X"0AB", -- 0x0A9: JNE 0x0AB "110000" & X"3FF", -- 0x0AA: JMP 0x3FF "110101" & X"0AD", -- 0x0AB: JLT 0x0AD "110000" & X"3FF", -- 0x0AC: JMP 0x3FF "110111" & X"0AF", -- 0x0AD: JLE 0x0AF "110000" & X"3FF", -- 0x0AE: JMP 0x3FF "110110" & X"3FF", -- 0x0AF: JGT 0x3FF "001111" & X"550", -- 0x0B0: CMP R00, 0x55 "111001" & X"0B3", -- 0x0B1: JEQ 0x0B3 "110000" & X"3FF", -- 0x0B2: JMP 0x3FF "111010" & X"3FF", -- 0x0B3: JNE 0x3FF "110101" & X"3FF", -- 0x0B4: JLT 0x3FF "110111" & X"0B7", -- 0x0B5: JLE 0x0B7 "110000" & X"3FF", -- 0x0B6: JMP 0x3FF "110110" & X"3FF", -- 0x0B7: JGT 0x3FF "111000" & X"0BA", -- 0x0B8: JGE 0x0BA "110000" & X"3FF", -- 0x0B9: JMP 0x3FF "000011" & X"AA0", -- 0x0BA: MOV R00, 0xAA "001111" & X"000", -- 0x0BB: TST R00 "110001" & X"3FF", -- 0x0BC: JZ 0x3FF "110011" & X"3FF", -- 0x0BD: JC 0x3FF "001111" & X"550", -- 0x0BE: CMP R00, 0x55 "111001" & X"3FF", -- 0x0BF: JEQ 0x3FF "111010" & X"0C2", -- 0x0C0: JNE 0x0C2 "110000" & X"3FF", -- 0x0C1: JMP 0x3FF "110110" & X"0C4", -- 0x0C2: JGT 0x0C4 "110000" & X"3FF", -- 0x0C3: JMP 0x3FF "111000" & X"0C6", -- 0x0C4: JGE 0x0C6 "110000" & X"3FF", -- 0x0C5: JMP 0x3FF "110101" & X"3FF", -- 0x0C6: JLT 0x3FF "110111" & X"3FF", -- 0x0C7: JLE 0x3FF "111110" & X"000", -- 0x0C8: RET "000011" & X"000", -- 0x0C9: MOV R00, 0x00 "000011" & X"001", -- 0x0CA: MOV R01, 0x00 "000010" & X"002", -- 0x0CB: MOV R02, R00 "000010" & X"013", -- 0x0CC: MOV R03, R01 "010001" & X"010", -- 0x0CD: ADD R00, 0x01 "010011" & X"001", -- 0x0CE: ADDC R01, 0x00 "010001" & X"012", -- 0x0CF: ADD R02, 0x01 "001111" & X"002", -- 0x0D0: CMP R02, 0x00 "111010" & X"0D4", -- 0x0D1: JNE 0x0D4 "010001" & X"013", -- 0x0D2: ADD R03, 0x01 "001111" & X"023", -- 0x0D3: CMP R03, 0x02 "111010" & X"0CD", -- 0x0D4: JNE 0x0CD "001110" & X"020", -- 0x0D5: CMP R00, R02 "111010" & X"3FF", -- 0x0D6: JNE 0x3FF "001110" & X"031", -- 0x0D7: CMP R01, R03 "111010" & X"3FF", -- 0x0D8: JNE 0x3FF "000011" & X"000", -- 0x0D9: MOV R00, 0x00 "111110" & X"000", -- 0x0DA: RET "000011" & X"000", -- 0x0DB: MOV R00, 0x00 "000011" & X"031", -- 0x0DC: MOV R01, 0x03 "000010" & X"002", -- 0x0DD: MOV R02, R00 "000010" & X"013", -- 0x0DE: MOV R03, R01 "010101" & X"010", -- 0x0DF: SUB R00, 0x01 "010111" & X"001", -- 0x0E0: SUBC R01, 0x00 "010101" & X"012", -- 0x0E1: SUB R02, 0x01 "001111" & X"FF2", -- 0x0E2: CMP R02, 0xFF "111010" & X"0E6", -- 0x0E3: JNE 0x0E6 "010101" & X"013", -- 0x0E4: SUB R03, 0x01 "001111" & X"003", -- 0x0E5: CMP R03, 0x00 "111010" & X"0DF", -- 0x0E6: JNE 0x0DF "001110" & X"020", -- 0x0E7: CMP R00, R02 "111010" & X"3FF", -- 0x0E8: JNE 0x3FF "001110" & X"031", -- 0x0E9: CMP R01, R03 "111010" & X"3FF", -- 0x0EA: JNE 0x3FF "000011" & X"000", -- 0x0EB: MOV R00, 0x00 "111110" & X"000", -- 0x0EC: RET "000011" & X"030", -- 0x0ED: MOV R00, 0x03 "000011" & X"051", -- 0x0EE: MOV R01, 0x05 "101110" & X"050", -- 0x0EF: SUB 0x05, R00 "010101" & X"031", -- 0x0F0: SUB R01, 0x03 "001110" & X"010", -- 0x0F1: CMP R00, R01 "111010" & X"3FF", -- 0x0F2: JNE 0x3FF "000011" & X"030", -- 0x0F3: MOV R00, 0x03 "000011" & X"051", -- 0x0F4: MOV R01, 0x05 "010100" & X"010", -- 0x0F5: SUB R00, R01 "101111" & X"000", -- 0x0F6: SUBC 0x00, R00 "001111" & X"010", -- 0x0F7: CMP R00, 0x01 "111010" & X"3FF", -- 0x0F8: JNE 0x3FF "010001" & X"000", -- 0x0F9: ADD R00, 0x00 "010110" & X"001", -- 0x0FA: SUBC R01, R00 "001111" & X"041", -- 0x0FB: CMP R01, 0x04 "111010" & X"3FF", -- 0x0FC: JNE 0x3FF "000011" & X"000", -- 0x0FD: MOV R00, 0x00 "111110" & X"000", -- 0x0FE: RET "000011" & X"010", -- 0x0FF: MOV R00, 0x01 "001101" & X"5A0", -- 0x100: MOVC (0x5A), R00 "010101" & X"010", -- 0x101: DEC R00 "001101" & X"000", -- 0x102: MOVC (0x00), R00 "001010" & X"5A1", -- 0x103: MOVC R01, (0x5A) "001100" & X"A51", -- 0x104: MOVC (R01), 0xA5 "001001" & X"010", -- 0x105: MOVC R00, (R01) "001001" & X"011", -- 0x106: MOVC R01, (R01) "010001" & X"5A1", -- 0x107: ADD R01, 0x5A "001001" & X"010", -- 0x108: MOVC R00, (R01) "001011" & X"000", -- 0x109: MOVC (R00), R00 "001001" & X"002", -- 0x10A: MOVC R02, (R00) "001110" & X"002", -- 0x10B: CMP R02, R00 "111010" & X"3FF", -- 0x10C: JNE 0x3FF "001011" & X"021", -- 0x10D: MOVC (R01), R02 "001001" & X"022", -- 0x10E: MOVC R02, (R02) "001110" & X"012", -- 0x10F: CMP R02, R01 "111010" & X"3FF", -- 0x110: JNE 0x3FF "010101" & X"011", -- 0x111: DEC R01 "010001" & X"010", -- 0x112: INC R00 "110010" & X"109", -- 0x113: JNZ 0x109 "111110" & X"000", -- 0x114: RET "000011" & X"010", -- 0x115: MOV R00, 0x01 "001000" & X"600", -- 0x116: MOVX (0x60), R00 "010101" & X"010", -- 0x117: DEC R00 "001000" & X"060", -- 0x118: MOVX (0x06), R00 "000101" & X"601", -- 0x119: MOVX R01, (0x60) "000111" & X"A51", -- 0x11A: MOVX (R01), 0xA5 "000100" & X"010", -- 0x11B: MOVX R00, (R01) "000100" & X"011", -- 0x11C: MOVX R01, (R01) "010001" & X"5A1", -- 0x11D: ADD R01, 0x5A "000100" & X"010", -- 0x11E: MOVX R00, (R01) "000110" & X"000", -- 0x11F: MOVX (R00), R00 "000100" & X"002", -- 0x120: MOVX R02, (R00) "001110" & X"002", -- 0x121: CMP R02, R00 "111010" & X"3FF", -- 0x122: JNE 0x3FF "000110" & X"021", -- 0x123: MOVX (R01), R02 "000100" & X"022", -- 0x124: MOVX R02, (R02) "001110" & X"012", -- 0x125: CMP R02, R01 "111010" & X"3FF", -- 0x126: JNE 0x3FF "010101" & X"011", -- 0x127: DEC R01 "010001" & X"010", -- 0x128: INC R00 "110010" & X"11F", -- 0x129: JNZ 0x11F "111110" & X"000", -- 0x12A: RET "000011" & X"AA0", -- 0x12B: MOV R00, 0xAA "000011" & X"001", -- 0x12C: MOV R01, 0x00 "111100" & X"000", -- 0x12D: PUSH R00 "010001" & X"010", -- 0x12E: INC R00 "010101" & X"011", -- 0x12F: DEC R01 "110010" & X"12D", -- 0x130: JNZ 0x12D "111101" & X"000", -- 0x131: POP R00 "010101" & X"011", -- 0x132: DEC R01 "110010" & X"131", -- 0x133: JNZ 0x131 "001111" & X"AA0", -- 0x134: CMP R00, 0xAA "111010" & X"3FF", -- 0x135: JNE 0x3FF "111110" & X"000", -- 0x136: RET "000011" & X"550", -- 0x137: MOV R00, 0x55 "111100" & X"000", -- 0x138: PUSH R00 "000011" & X"000", -- 0x139: MOV R00, 0x00 "000011" & X"FF1", -- 0x13A: MOV R01, 0xFF "111011" & X"151", -- 0x13B: CALL 0x151 "111101" & X"000", -- 0x13C: POP R00 "001111" & X"550", -- 0x13D: CMP R00, 0x55 "111010" & X"3FF", -- 0x13E: JNE 0x3FF "000011" & X"010", -- 0x13F: MOV R00, 0x01 "000011" & X"481", -- 0x140: MOV R01, 0x48 "100110" & X"050", -- 0x141: COUT (0x05), R00 "111100" & X"001", -- 0x142: PUSH R01 "000011" & X"000", -- 0x143: MOV R00, 0x00 "000011" & X"3B1", -- 0x144: MOV R01, 0x3B "100110" & X"050", -- 0x145: COUT (0x05), R00 "111100" & X"001", -- 0x146: PUSH R01 "111110" & X"000", -- 0x147: RET "000011" & X"010", -- 0x148: MOV R00, 0x01 "000011" & X"501", -- 0x149: MOV R01, 0x50 "100110" & X"050", -- 0x14A: COUT (0x05), R00 "111100" & X"001", -- 0x14B: PUSH R01 "000011" & X"000", -- 0x14C: MOV R00, 0x00 "000011" & X"3B1", -- 0x14D: MOV R01, 0x3B "100110" & X"050", -- 0x14E: COUT (0x05), R00 "111100" & X"001", -- 0x14F: PUSH R01 "111110" & X"000", -- 0x150: RET "001110" & X"010", -- 0x151: CMP R00, R01 "111001" & X"155", -- 0x152: JEQ 0x155 "010001" & X"010", -- 0x153: INC R00 "110000" & X"158", -- 0x154: JMP 0x158 "010101" & X"010", -- 0x155: DEC R00 "010101" & X"011", -- 0x156: DEC R01 "111110" & X"000", -- 0x157: RET "111011" & X"151", -- 0x158: CALL 0x151 "110000" & X"155", -- 0x159: JMP 0x155 "000011" & X"A50", -- 0x15A: MOV R00, 0xA5 "000011" & X"5A1", -- 0x15B: MOV R01, 0x5A "101010" & X"000", -- 0x15C: SWAP R00 "001111" & X"5A0", -- 0x15D: CMP R00, 0x5A "111010" & X"3FF", -- 0x15E: JNE 0x3FF "101010" & X"000", -- 0x15F: SWAP R00 "001111" & X"A50", -- 0x160: CMP R00, 0xA5 "111010" & X"3FF", -- 0x161: JNE 0x3FF "000011" & X"D20", -- 0x162: MOV R00, 0xD2 "101010" & X"000", -- 0x163: SWAP R00 "001111" & X"2D0", -- 0x164: CMP R00, 0x2D "111010" & X"3FF", -- 0x165: JNE 0x3FF "101010" & X"001", -- 0x166: SWAP R01 "001111" & X"2D0", -- 0x167: CMP R00, 0x2D "111010" & X"3FF", -- 0x168: JNE 0x3FF "001111" & X"A51", -- 0x169: CMP R01, 0xA5 "111010" & X"3FF", -- 0x16A: JNE 0x3FF "000011" & X"2D0", -- 0x16B: MOV R00, 0x2D "011110" & X"000", -- 0x16C: SHL R00 "001111" & X"5A0", -- 0x16D: CMP R00, 0x5A "111010" & X"3FF", -- 0x16E: JNE 0x3FF "011110" & X"000", -- 0x16F: SHL R00 "001111" & X"B40", -- 0x170: CMP R00, 0xB4 "111010" & X"3FF", -- 0x171: JNE 0x3FF "011110" & X"000", -- 0x172: SHL R00 "001111" & X"680", -- 0x173: CMP R00, 0x68 "111010" & X"3FF", -- 0x174: JNE 0x3FF "011110" & X"000", -- 0x175: SHL R00 "001111" & X"D00", -- 0x176: CMP R00, 0xD0 "111010" & X"3FF", -- 0x177: JNE 0x3FF "011110" & X"000", -- 0x178: SHL R00 "001111" & X"A00", -- 0x179: CMP R00, 0xA0 "111010" & X"3FF", -- 0x17A: JNE 0x3FF "011110" & X"000", -- 0x17B: SHL R00 "001111" & X"400", -- 0x17C: CMP R00, 0x40 "111010" & X"3FF", -- 0x17D: JNE 0x3FF "011110" & X"000", -- 0x17E: SHL R00 "001111" & X"800", -- 0x17F: CMP R00, 0x80 "111010" & X"3FF", -- 0x180: JNE 0x3FF "011110" & X"000", -- 0x181: SHL R00 "001111" & X"000", -- 0x182: CMP R00, 0x00 "111010" & X"3FF", -- 0x183: JNE 0x3FF "000011" & X"841", -- 0x184: MOV R01, 0x84 "011111" & X"001", -- 0x185: SHR R01 "001111" & X"421", -- 0x186: CMP R01, 0x42 "111010" & X"3FF", -- 0x187: JNE 0x3FF "011111" & X"001", -- 0x188: SHR R01 "001111" & X"211", -- 0x189: CMP R01, 0x21 "111010" & X"3FF", -- 0x18A: JNE 0x3FF "011111" & X"001", -- 0x18B: SHR R01 "001111" & X"101", -- 0x18C: CMP R01, 0x10 "111010" & X"3FF", -- 0x18D: JNE 0x3FF "011111" & X"001", -- 0x18E: SHR R01 "001111" & X"081", -- 0x18F: CMP R01, 0x08 "111010" & X"3FF", -- 0x190: JNE 0x3FF "011111" & X"001", -- 0x191: SHR R01 "001111" & X"041", -- 0x192: CMP R01, 0x04 "111010" & X"3FF", -- 0x193: JNE 0x3FF "011111" & X"001", -- 0x194: SHR R01 "001111" & X"021", -- 0x195: CMP R01, 0x02 "111010" & X"3FF", -- 0x196: JNE 0x3FF "011111" & X"001", -- 0x197: SHR R01 "001111" & X"011", -- 0x198: CMP R01, 0x01 "111010" & X"3FF", -- 0x199: JNE 0x3FF "011111" & X"001", -- 0x19A: SHR R01 "001111" & X"001", -- 0x19B: CMP R01, 0x00 "111010" & X"3FF", -- 0x19C: JNE 0x3FF "000011" & X"C50", -- 0x19D: MOV R00, 0xC5 "100000" & X"000", -- 0x19E: ROL R00 "001111" & X"8B0", -- 0x19F: CMP R00, 0x8B "111010" & X"3FF", -- 0x1A0: JNE 0x3FF "100000" & X"000", -- 0x1A1: ROL R00 "001111" & X"170", -- 0x1A2: CMP R00, 0x17 "111010" & X"3FF", -- 0x1A3: JNE 0x3FF "100000" & X"000", -- 0x1A4: ROL R00 "001111" & X"2E0", -- 0x1A5: CMP R00, 0x2E "111010" & X"3FF", -- 0x1A6: JNE 0x3FF "100000" & X"000", -- 0x1A7: ROL R00 "001111" & X"5C0", -- 0x1A8: CMP R00, 0x5C "111010" & X"3FF", -- 0x1A9: JNE 0x3FF "100000" & X"000", -- 0x1AA: ROL R00 "001111" & X"B80", -- 0x1AB: CMP R00, 0xB8 "111010" & X"3FF", -- 0x1AC: JNE 0x3FF "100000" & X"000", -- 0x1AD: ROL R00 "001111" & X"710", -- 0x1AE: CMP R00, 0x71 "111010" & X"3FF", -- 0x1AF: JNE 0x3FF "100000" & X"000", -- 0x1B0: ROL R00 "001111" & X"E20", -- 0x1B1: CMP R00, 0xE2 "111010" & X"3FF", -- 0x1B2: JNE 0x3FF "100000" & X"000", -- 0x1B3: ROL R00 "001111" & X"C50", -- 0x1B4: CMP R00, 0xC5 "111010" & X"3FF", -- 0x1B5: JNE 0x3FF "000011" & X"631", -- 0x1B6: MOV R01, 0x63 "100001" & X"001", -- 0x1B7: ROR R01 "001111" & X"B11", -- 0x1B8: CMP R01, 0xB1 "111010" & X"3FF", -- 0x1B9: JNE 0x3FF "100001" & X"001", -- 0x1BA: ROR R01 "001111" & X"D81", -- 0x1BB: CMP R01, 0xD8 "111010" & X"3FF", -- 0x1BC: JNE 0x3FF "100001" & X"001", -- 0x1BD: ROR R01 "001111" & X"6C1", -- 0x1BE: CMP R01, 0x6C "111010" & X"3FF", -- 0x1BF: JNE 0x3FF "100001" & X"001", -- 0x1C0: ROR R01 "001111" & X"361", -- 0x1C1: CMP R01, 0x36 "111010" & X"3FF", -- 0x1C2: JNE 0x3FF "100001" & X"001", -- 0x1C3: ROR R01 "001111" & X"1B1", -- 0x1C4: CMP R01, 0x1B "111010" & X"3FF", -- 0x1C5: JNE 0x3FF "100001" & X"001", -- 0x1C6: ROR R01 "001111" & X"8D1", -- 0x1C7: CMP R01, 0x8D "111010" & X"3FF", -- 0x1C8: JNE 0x3FF "100001" & X"001", -- 0x1C9: ROR R01 "001111" & X"C61", -- 0x1CA: CMP R01, 0xC6 "111010" & X"3FF", -- 0x1CB: JNE 0x3FF "100001" & X"001", -- 0x1CC: ROR R01 "001111" & X"631", -- 0x1CD: CMP R01, 0x63 "111010" & X"3FF", -- 0x1CE: JNE 0x3FF "011100" & X"000", -- 0x1CF: XOR R00, R00 "000011" & X"C50", -- 0x1D0: MOV R00, 0xC5 "100010" & X"000", -- 0x1D1: ROLC R00 "111100" & X"000", -- 0x1D2: PUSH R00 "100010" & X"000", -- 0x1D3: ROLC R00 "111100" & X"000", -- 0x1D4: PUSH R00 "100010" & X"000", -- 0x1D5: ROLC R00 "111100" & X"000", -- 0x1D6: PUSH R00 "100010" & X"000", -- 0x1D7: ROLC R00 "111100" & X"000", -- 0x1D8: PUSH R00 "100010" & X"000", -- 0x1D9: ROLC R00 "111100" & X"000", -- 0x1DA: PUSH R00 "100010" & X"000", -- 0x1DB: ROLC R00 "111100" & X"000", -- 0x1DC: PUSH R00 "100010" & X"000", -- 0x1DD: ROLC R00 "111100" & X"000", -- 0x1DE: PUSH R00 "100010" & X"000", -- 0x1DF: ROLC R00 "111100" & X"000", -- 0x1E0: PUSH R00 "100010" & X"000", -- 0x1E1: ROLC R00 "001111" & X"C50", -- 0x1E2: CMP R00, 0xC5 "111010" & X"3FF", -- 0x1E3: JNE 0x3FF "111101" & X"000", -- 0x1E4: POP R00 "001111" & X"620", -- 0x1E5: CMP R00, 0x62 "111010" & X"3FF", -- 0x1E6: JNE 0x3FF "111101" & X"000", -- 0x1E7: POP R00 "001111" & X"B10", -- 0x1E8: CMP R00, 0xB1 "111010" & X"3FF", -- 0x1E9: JNE 0x3FF "111101" & X"000", -- 0x1EA: POP R00 "001111" & X"580", -- 0x1EB: CMP R00, 0x58 "111010" & X"3FF", -- 0x1EC: JNE 0x3FF "111101" & X"000", -- 0x1ED: POP R00 "001111" & X"AC0", -- 0x1EE: CMP R00, 0xAC "111010" & X"3FF", -- 0x1EF: JNE 0x3FF "111101" & X"000", -- 0x1F0: POP R00 "001111" & X"560", -- 0x1F1: CMP R00, 0x56 "111010" & X"3FF", -- 0x1F2: JNE 0x3FF "111101" & X"000", -- 0x1F3: POP R00 "001111" & X"2B0", -- 0x1F4: CMP R00, 0x2B "111010" & X"3FF", -- 0x1F5: JNE 0x3FF "111101" & X"000", -- 0x1F6: POP R00 "001111" & X"150", -- 0x1F7: CMP R00, 0x15 "111010" & X"3FF", -- 0x1F8: JNE 0x3FF "111101" & X"000", -- 0x1F9: POP R00 "001111" & X"8A0", -- 0x1FA: CMP R00, 0x8A "111010" & X"3FF", -- 0x1FB: JNE 0x3FF "011100" & X"011", -- 0x1FC: XOR R01, R01 "000011" & X"631", -- 0x1FD: MOV R01, 0x63 "100011" & X"001", -- 0x1FE: RORC R01 "111100" & X"001", -- 0x1FF: PUSH R01 "100011" & X"001", -- 0x200: RORC R01 "111100" & X"001", -- 0x201: PUSH R01 "100011" & X"001", -- 0x202: RORC R01 "111100" & X"001", -- 0x203: PUSH R01 "100011" & X"001", -- 0x204: RORC R01 "111100" & X"001", -- 0x205: PUSH R01 "100011" & X"001", -- 0x206: RORC R01 "111100" & X"001", -- 0x207: PUSH R01 "100011" & X"001", -- 0x208: RORC R01 "111100" & X"001", -- 0x209: PUSH R01 "100011" & X"001", -- 0x20A: RORC R01 "111100" & X"001", -- 0x20B: PUSH R01 "100011" & X"001", -- 0x20C: RORC R01 "111100" & X"001", -- 0x20D: PUSH R01 "100011" & X"001", -- 0x20E: RORC R01 "001111" & X"631", -- 0x20F: CMP R01, 0x63 "111010" & X"3FF", -- 0x210: JNE 0x3FF "111101" & X"001", -- 0x211: POP R01 "001111" & X"C61", -- 0x212: CMP R01, 0xC6 "111010" & X"3FF", -- 0x213: JNE 0x3FF "111101" & X"001", -- 0x214: POP R01 "001111" & X"8C1", -- 0x215: CMP R01, 0x8C "111010" & X"3FF", -- 0x216: JNE 0x3FF "111101" & X"001", -- 0x217: POP R01 "001111" & X"191", -- 0x218: CMP R01, 0x19 "111010" & X"3FF", -- 0x219: JNE 0x3FF "111101" & X"001", -- 0x21A: POP R01 "001111" & X"331", -- 0x21B: CMP R01, 0x33 "111010" & X"3FF", -- 0x21C: JNE 0x3FF "111101" & X"001", -- 0x21D: POP R01 "001111" & X"661", -- 0x21E: CMP R01, 0x66 "111010" & X"3FF", -- 0x21F: JNE 0x3FF "111101" & X"001", -- 0x220: POP R01 "001111" & X"CC1", -- 0x221: CMP R01, 0xCC "111010" & X"3FF", -- 0x222: JNE 0x3FF "111101" & X"001", -- 0x223: POP R01 "001111" & X"981", -- 0x224: CMP R01, 0x98 "111010" & X"3FF", -- 0x225: JNE 0x3FF "111101" & X"001", -- 0x226: POP R01 "001111" & X"311", -- 0x227: CMP R01, 0x31 "111010" & X"3FF", -- 0x228: JNE 0x3FF "111110" & X"000", -- 0x229: RET "000011" & X"A50", -- 0x22A: MOV R00, 0xA5 "101010" & X"000", -- 0x22B: SWAP R00 "111100" & X"000", -- 0x22C: PUSH R00 "011001" & X"0F0", -- 0x22D: AND R00, 0x0F "001111" & X"0A0", -- 0x22E: CMP R00, 0x0A "111010" & X"3FF", -- 0x22F: JNE 0x3FF "111101" & X"000", -- 0x230: POP R00 "111100" & X"000", -- 0x231: PUSH R00 "011001" & X"0F0", -- 0x232: AND R00, 0x0F "001111" & X"0A0", -- 0x233: CMP R00, 0x0A "111101" & X"001", -- 0x234: POP R01 "111010" & X"3FF", -- 0x235: JNE 0x3FF "101010" & X"001", -- 0x236: SWAP R01 "000011" & X"0F2", -- 0x237: MOV R02, 0x0F "011000" & X"021", -- 0x238: AND R01, R02 "001111" & X"051", -- 0x239: CMP R01, 0x05 "111010" & X"3FF", -- 0x23A: JNE 0x3FF "000011" & X"050", -- 0x23B: MOV R00, 0x05 "000011" & X"A02", -- 0x23C: MOV R02, 0xA0 "101010" & X"000", -- 0x23D: SWAP R00 "011010" & X"002", -- 0x23E: OR R02, R00 "001111" & X"F02", -- 0x23F: CMP R02, 0xF0 "111010" & X"3FF", -- 0x240: JNE 0x3FF "101010" & X"000", -- 0x241: SWAP R00 "011011" & X"500", -- 0x242: OR R00, 0x50 "001111" & X"550", -- 0x243: CMP R00, 0x55 "111010" & X"3FF", -- 0x244: JNE 0x3FF "000011" & X"011", -- 0x245: MOV R01, 0x01 "000011" & X"010", -- 0x246: MOV R00, 0x01 "011101" & X"010", -- 0x247: XOR R00, 0x01 "110010" & X"3FF", -- 0x248: JNZ 0x3FF "011100" & X"010", -- 0x249: XOR R00, R01 "001111" & X"010", -- 0x24A: CMP R00, 0x01 "111010" & X"3FF", -- 0x24B: JNE 0x3FF "111110" & X"000", -- 0x24C: RET "000011" & X"030", -- 0x24D: MOV R00, 0x03 "100110" & X"030", -- 0x24E: COUT (0x03), R00 "101000" & X"020", -- 0x24F: XIN R00, (0x02) "011011" & X"010", -- 0x250: OR R00, 0x01 "100100" & X"020", -- 0x251: XOUT (0x02), R00 "000000" & X"000", -- 0x252: NOP "000000" & X"000", -- 0x253: NOP "000000" & X"000", -- 0x254: NOP "000000" & X"000", -- 0x255: NOP "000000" & X"000", -- 0x256: NOP "000000" & X"000", -- 0x257: NOP "101000" & X"020", -- 0x258: XIN R00, (0x02) "011001" & X"FE0", -- 0x259: AND R00, 0xFE "100100" & X"020", -- 0x25A: XOUT (0x02), R00 "000000" & X"000", -- 0x25B: NOP "000000" & X"000", -- 0x25C: NOP "000000" & X"000", -- 0x25D: NOP "000000" & X"000", -- 0x25E: NOP "101001" & X"030", -- 0x25F: CIN R00, (0x03) "011011" & X"800", -- 0x260: OR R00, 0x80 "100110" & X"030", -- 0x261: COUT (0x03), R00 "000000" & X"000", -- 0x262: NOP "101001" & X"030", -- 0x263: CIN R00, (0x03) "011011" & X"800", -- 0x264: OR R00, 0x80 "100110" & X"030", -- 0x265: COUT (0x03), R00 "000000" & X"000", -- 0x266: NOP "101001" & X"030", -- 0x267: CIN R00, (0x03) "011011" & X"800", -- 0x268: OR R00, 0x80 "100110" & X"030", -- 0x269: COUT (0x03), R00 "000000" & X"000", -- 0x26A: NOP "101001" & X"030", -- 0x26B: CIN R00, (0x03) "011011" & X"800", -- 0x26C: OR R00, 0x80 "100110" & X"030", -- 0x26D: COUT (0x03), R00 "000000" & X"000", -- 0x26E: NOP "000000" & X"000", -- 0x26F: NOP "000000" & X"000", -- 0x270: NOP "000000" & X"000", -- 0x271: NOP "000000" & X"000", -- 0x272: NOP "000000" & X"000", -- 0x273: NOP "000000" & X"000", -- 0x274: NOP "000000" & X"000", -- 0x275: NOP "000000" & X"000", -- 0x276: NOP "111110" & X"000", -- 0x277: RET "010101" & X"000", -- 0x278: SUB R00, 0x00 "110011" & X"3FF", -- 0x279: JC 0x3FF "101011" & X"000", -- 0x27A: SETC "110100" & X"3FF", -- 0x27B: JNC 0x3FF "000000" & X"000", -- 0x27C: NOP "010101" & X"000", -- 0x27D: SUB R00, 0x00 "110011" & X"3FF", -- 0x27E: JC 0x3FF "000011" & X"000", -- 0x27F: MOV R00, 0x00 "010101" & X"000", -- 0x280: CLRC "110011" & X"3FF", -- 0x281: JC 0x3FF "101011" & X"000", -- 0x282: SETC "110100" & X"3FF", -- 0x283: JNC 0x3FF "000000" & X"000", -- 0x284: NOP "010101" & X"000", -- 0x285: CLRC "110011" & X"3FF", -- 0x286: JC 0x3FF "111110" & X"000", -- 0x287: RET "010001" & X"01E", -- 0x288: INC R14 "111111" & X"000", -- 0x289: RETI "000000" & X"000", -- 0x28A: "000000" & X"000", -- 0x28B: "000000" & X"000", -- 0x28C: "000000" & X"000", -- 0x28D: "000000" & X"000", -- 0x28E: "000000" & X"000", -- 0x28F: "000000" & X"000", -- 0x290: "000000" & X"000", -- 0x291: "000000" & X"000", -- 0x292: "000000" & X"000", -- 0x293: "000000" & X"000", -- 0x294: "000000" & X"000", -- 0x295: "000000" & X"000", -- 0x296: "000000" & X"000", -- 0x297: "000000" & X"000", -- 0x298: "000000" & X"000", -- 0x299: "000000" & X"000", -- 0x29A: "000000" & X"000", -- 0x29B: "000000" & X"000", -- 0x29C: "000000" & X"000", -- 0x29D: "000000" & X"000", -- 0x29E: "000000" & X"000", -- 0x29F: "000000" & X"000", -- 0x2A0: "000000" & X"000", -- 0x2A1: "000000" & X"000", -- 0x2A2: "000000" & X"000", -- 0x2A3: "000000" & X"000", -- 0x2A4: "000000" & X"000", -- 0x2A5: "000000" & X"000", -- 0x2A6: "000000" & X"000", -- 0x2A7: "000000" & X"000", -- 0x2A8: "000000" & X"000", -- 0x2A9: "000000" & X"000", -- 0x2AA: "000000" & X"000", -- 0x2AB: "000000" & X"000", -- 0x2AC: "000000" & X"000", -- 0x2AD: "000000" & X"000", -- 0x2AE: "000000" & X"000", -- 0x2AF: "000000" & X"000", -- 0x2B0: "000000" & X"000", -- 0x2B1: "000000" & X"000", -- 0x2B2: "000000" & X"000", -- 0x2B3: "000000" & X"000", -- 0x2B4: "000000" & X"000", -- 0x2B5: "000000" & X"000", -- 0x2B6: "000000" & X"000", -- 0x2B7: "000000" & X"000", -- 0x2B8: "000000" & X"000", -- 0x2B9: "000000" & X"000", -- 0x2BA: "000000" & X"000", -- 0x2BB: "000000" & X"000", -- 0x2BC: "000000" & X"000", -- 0x2BD: "000000" & X"000", -- 0x2BE: "000000" & X"000", -- 0x2BF: "000000" & X"000", -- 0x2C0: "000000" & X"000", -- 0x2C1: "000000" & X"000", -- 0x2C2: "000000" & X"000", -- 0x2C3: "000000" & X"000", -- 0x2C4: "000000" & X"000", -- 0x2C5: "000000" & X"000", -- 0x2C6: "000000" & X"000", -- 0x2C7: "000000" & X"000", -- 0x2C8: "000000" & X"000", -- 0x2C9: "000000" & X"000", -- 0x2CA: "000000" & X"000", -- 0x2CB: "000000" & X"000", -- 0x2CC: "000000" & X"000", -- 0x2CD: "000000" & X"000", -- 0x2CE: "000000" & X"000", -- 0x2CF: "000000" & X"000", -- 0x2D0: "000000" & X"000", -- 0x2D1: "000000" & X"000", -- 0x2D2: "000000" & X"000", -- 0x2D3: "000000" & X"000", -- 0x2D4: "000000" & X"000", -- 0x2D5: "000000" & X"000", -- 0x2D6: "000000" & X"000", -- 0x2D7: "000000" & X"000", -- 0x2D8: "000000" & X"000", -- 0x2D9: "000000" & X"000", -- 0x2DA: "000000" & X"000", -- 0x2DB: "000000" & X"000", -- 0x2DC: "000000" & X"000", -- 0x2DD: "000000" & X"000", -- 0x2DE: "000000" & X"000", -- 0x2DF: "000000" & X"000", -- 0x2E0: "000000" & X"000", -- 0x2E1: "000000" & X"000", -- 0x2E2: "000000" & X"000", -- 0x2E3: "000000" & X"000", -- 0x2E4: "000000" & X"000", -- 0x2E5: "000000" & X"000", -- 0x2E6: "000000" & X"000", -- 0x2E7: "000000" & X"000", -- 0x2E8: "000000" & X"000", -- 0x2E9: "000000" & X"000", -- 0x2EA: "000000" & X"000", -- 0x2EB: "000000" & X"000", -- 0x2EC: "000000" & X"000", -- 0x2ED: "000000" & X"000", -- 0x2EE: "000000" & X"000", -- 0x2EF: "000000" & X"000", -- 0x2F0: "000000" & X"000", -- 0x2F1: "000000" & X"000", -- 0x2F2: "000000" & X"000", -- 0x2F3: "000000" & X"000", -- 0x2F4: "000000" & X"000", -- 0x2F5: "000000" & X"000", -- 0x2F6: "000000" & X"000", -- 0x2F7: "000000" & X"000", -- 0x2F8: "000000" & X"000", -- 0x2F9: "000000" & X"000", -- 0x2FA: "000000" & X"000", -- 0x2FB: "000000" & X"000", -- 0x2FC: "000000" & X"000", -- 0x2FD: "000000" & X"000", -- 0x2FE: "110000" & X"2FF", -- 0x2FF: JMP 0x2FF "000000" & X"000", -- 0x300: "000000" & X"000", -- 0x301: "000000" & X"000", -- 0x302: "000000" & X"000", -- 0x303: "000000" & X"000", -- 0x304: "000000" & X"000", -- 0x305: "000000" & X"000", -- 0x306: "000000" & X"000", -- 0x307: "000000" & X"000", -- 0x308: "000000" & X"000", -- 0x309: "000000" & X"000", -- 0x30A: "000000" & X"000", -- 0x30B: "000000" & X"000", -- 0x30C: "000000" & X"000", -- 0x30D: "000000" & X"000", -- 0x30E: "000000" & X"000", -- 0x30F: "000000" & X"000", -- 0x310: "000000" & X"000", -- 0x311: "000000" & X"000", -- 0x312: "000000" & X"000", -- 0x313: "000000" & X"000", -- 0x314: "000000" & X"000", -- 0x315: "000000" & X"000", -- 0x316: "000000" & X"000", -- 0x317: "000000" & X"000", -- 0x318: "000000" & X"000", -- 0x319: "000000" & X"000", -- 0x31A: "000000" & X"000", -- 0x31B: "000000" & X"000", -- 0x31C: "000000" & X"000", -- 0x31D: "000000" & X"000", -- 0x31E: "000000" & X"000", -- 0x31F: "000000" & X"000", -- 0x320: "000000" & X"000", -- 0x321: "000000" & X"000", -- 0x322: "000000" & X"000", -- 0x323: "000000" & X"000", -- 0x324: "000000" & X"000", -- 0x325: "000000" & X"000", -- 0x326: "000000" & X"000", -- 0x327: "000000" & X"000", -- 0x328: "000000" & X"000", -- 0x329: "000000" & X"000", -- 0x32A: "000000" & X"000", -- 0x32B: "000000" & X"000", -- 0x32C: "000000" & X"000", -- 0x32D: "000000" & X"000", -- 0x32E: "000000" & X"000", -- 0x32F: "000000" & X"000", -- 0x330: "000000" & X"000", -- 0x331: "000000" & X"000", -- 0x332: "000000" & X"000", -- 0x333: "000000" & X"000", -- 0x334: "000000" & X"000", -- 0x335: "000000" & X"000", -- 0x336: "000000" & X"000", -- 0x337: "000000" & X"000", -- 0x338: "000000" & X"000", -- 0x339: "000000" & X"000", -- 0x33A: "000000" & X"000", -- 0x33B: "000000" & X"000", -- 0x33C: "000000" & X"000", -- 0x33D: "000000" & X"000", -- 0x33E: "000000" & X"000", -- 0x33F: "000000" & X"000", -- 0x340: "000000" & X"000", -- 0x341: "000000" & X"000", -- 0x342: "000000" & X"000", -- 0x343: "000000" & X"000", -- 0x344: "000000" & X"000", -- 0x345: "000000" & X"000", -- 0x346: "000000" & X"000", -- 0x347: "000000" & X"000", -- 0x348: "000000" & X"000", -- 0x349: "000000" & X"000", -- 0x34A: "000000" & X"000", -- 0x34B: "000000" & X"000", -- 0x34C: "000000" & X"000", -- 0x34D: "000000" & X"000", -- 0x34E: "000000" & X"000", -- 0x34F: "000000" & X"000", -- 0x350: "000000" & X"000", -- 0x351: "000000" & X"000", -- 0x352: "000000" & X"000", -- 0x353: "000000" & X"000", -- 0x354: "000000" & X"000", -- 0x355: "000000" & X"000", -- 0x356: "000000" & X"000", -- 0x357: "000000" & X"000", -- 0x358: "000000" & X"000", -- 0x359: "000000" & X"000", -- 0x35A: "000000" & X"000", -- 0x35B: "000000" & X"000", -- 0x35C: "000000" & X"000", -- 0x35D: "000000" & X"000", -- 0x35E: "000000" & X"000", -- 0x35F: "000000" & X"000", -- 0x360: "000000" & X"000", -- 0x361: "000000" & X"000", -- 0x362: "000000" & X"000", -- 0x363: "000000" & X"000", -- 0x364: "000000" & X"000", -- 0x365: "000000" & X"000", -- 0x366: "000000" & X"000", -- 0x367: "000000" & X"000", -- 0x368: "000000" & X"000", -- 0x369: "000000" & X"000", -- 0x36A: "000000" & X"000", -- 0x36B: "000000" & X"000", -- 0x36C: "000000" & X"000", -- 0x36D: "000000" & X"000", -- 0x36E: "000000" & X"000", -- 0x36F: "000000" & X"000", -- 0x370: "000000" & X"000", -- 0x371: "000000" & X"000", -- 0x372: "000000" & X"000", -- 0x373: "000000" & X"000", -- 0x374: "000000" & X"000", -- 0x375: "000000" & X"000", -- 0x376: "000000" & X"000", -- 0x377: "000000" & X"000", -- 0x378: "000000" & X"000", -- 0x379: "000000" & X"000", -- 0x37A: "000000" & X"000", -- 0x37B: "000000" & X"000", -- 0x37C: "000000" & X"000", -- 0x37D: "000000" & X"000", -- 0x37E: "000000" & X"000", -- 0x37F: "000000" & X"000", -- 0x380: "000000" & X"000", -- 0x381: "000000" & X"000", -- 0x382: "000000" & X"000", -- 0x383: "000000" & X"000", -- 0x384: "000000" & X"000", -- 0x385: "000000" & X"000", -- 0x386: "000000" & X"000", -- 0x387: "000000" & X"000", -- 0x388: "000000" & X"000", -- 0x389: "000000" & X"000", -- 0x38A: "000000" & X"000", -- 0x38B: "000000" & X"000", -- 0x38C: "000000" & X"000", -- 0x38D: "000000" & X"000", -- 0x38E: "000000" & X"000", -- 0x38F: "000000" & X"000", -- 0x390: "000000" & X"000", -- 0x391: "000000" & X"000", -- 0x392: "000000" & X"000", -- 0x393: "000000" & X"000", -- 0x394: "000000" & X"000", -- 0x395: "000000" & X"000", -- 0x396: "000000" & X"000", -- 0x397: "000000" & X"000", -- 0x398: "000000" & X"000", -- 0x399: "000000" & X"000", -- 0x39A: "000000" & X"000", -- 0x39B: "000000" & X"000", -- 0x39C: "000000" & X"000", -- 0x39D: "000000" & X"000", -- 0x39E: "000000" & X"000", -- 0x39F: "000000" & X"000", -- 0x3A0: "000000" & X"000", -- 0x3A1: "000000" & X"000", -- 0x3A2: "000000" & X"000", -- 0x3A3: "000000" & X"000", -- 0x3A4: "000000" & X"000", -- 0x3A5: "000000" & X"000", -- 0x3A6: "000000" & X"000", -- 0x3A7: "000000" & X"000", -- 0x3A8: "000000" & X"000", -- 0x3A9: "000000" & X"000", -- 0x3AA: "000000" & X"000", -- 0x3AB: "000000" & X"000", -- 0x3AC: "000000" & X"000", -- 0x3AD: "000000" & X"000", -- 0x3AE: "000000" & X"000", -- 0x3AF: "000000" & X"000", -- 0x3B0: "000000" & X"000", -- 0x3B1: "000000" & X"000", -- 0x3B2: "000000" & X"000", -- 0x3B3: "000000" & X"000", -- 0x3B4: "000000" & X"000", -- 0x3B5: "000000" & X"000", -- 0x3B6: "000000" & X"000", -- 0x3B7: "000000" & X"000", -- 0x3B8: "000000" & X"000", -- 0x3B9: "000000" & X"000", -- 0x3BA: "000000" & X"000", -- 0x3BB: "000000" & X"000", -- 0x3BC: "000000" & X"000", -- 0x3BD: "000000" & X"000", -- 0x3BE: "000000" & X"000", -- 0x3BF: "000000" & X"000", -- 0x3C0: "000000" & X"000", -- 0x3C1: "000000" & X"000", -- 0x3C2: "000000" & X"000", -- 0x3C3: "000000" & X"000", -- 0x3C4: "000000" & X"000", -- 0x3C5: "000000" & X"000", -- 0x3C6: "000000" & X"000", -- 0x3C7: "000000" & X"000", -- 0x3C8: "000000" & X"000", -- 0x3C9: "000000" & X"000", -- 0x3CA: "000000" & X"000", -- 0x3CB: "000000" & X"000", -- 0x3CC: "000000" & X"000", -- 0x3CD: "000000" & X"000", -- 0x3CE: "000000" & X"000", -- 0x3CF: "000000" & X"000", -- 0x3D0: "000000" & X"000", -- 0x3D1: "000000" & X"000", -- 0x3D2: "000000" & X"000", -- 0x3D3: "000000" & X"000", -- 0x3D4: "000000" & X"000", -- 0x3D5: "000000" & X"000", -- 0x3D6: "000000" & X"000", -- 0x3D7: "000000" & X"000", -- 0x3D8: "000000" & X"000", -- 0x3D9: "000000" & X"000", -- 0x3DA: "000000" & X"000", -- 0x3DB: "000000" & X"000", -- 0x3DC: "000000" & X"000", -- 0x3DD: "000000" & X"000", -- 0x3DE: "000000" & X"000", -- 0x3DF: "000000" & X"000", -- 0x3E0: "000000" & X"000", -- 0x3E1: "000000" & X"000", -- 0x3E2: "000000" & X"000", -- 0x3E3: "000000" & X"000", -- 0x3E4: "000000" & X"000", -- 0x3E5: "000000" & X"000", -- 0x3E6: "000000" & X"000", -- 0x3E7: "000000" & X"000", -- 0x3E8: "000000" & X"000", -- 0x3E9: "000000" & X"000", -- 0x3EA: "000000" & X"000", -- 0x3EB: "000000" & X"000", -- 0x3EC: "000000" & X"000", -- 0x3ED: "000000" & X"000", -- 0x3EE: "000000" & X"000", -- 0x3EF: "000000" & X"000", -- 0x3F0: "000000" & X"000", -- 0x3F1: "000000" & X"000", -- 0x3F2: "000000" & X"000", -- 0x3F3: "000000" & X"000", -- 0x3F4: "000000" & X"000", -- 0x3F5: "000000" & X"000", -- 0x3F6: "000000" & X"000", -- 0x3F7: "000000" & X"000", -- 0x3F8: "000000" & X"000", -- 0x3F9: "000000" & X"000", -- 0x3FA: "000000" & X"000", -- 0x3FB: "000000" & X"000", -- 0x3FC: "000000" & X"000", -- 0x3FD: "000000" & X"000", -- 0x3FE: "110000" & X"3FF" -- 0x3FF: JMP 0x3FF ); begin PROM_READ: process(clk, ce) begin if rising_edge(clk) and ce = '1' then dout <= imem_rom(to_integer(addr)); end if; end process; end itest;