diff --git a/core/rexcode/mos6502/decoding_tables.odin b/core/rexcode/mos6502/decoding_tables.odin index 3c97045ed..c998025c2 100644 --- a/core/rexcode/mos6502/decoding_tables.odin +++ b/core/rexcode/mos6502/decoding_tables.odin @@ -352,261 +352,257 @@ DECODE_ENTRIES := [321]Decode_Entry{ } DECODE_INDEX_OPCODE := [256]Decode_Index{ - /* 00 */ {0, 1}, - /* 01 */ {1, 1}, - /* 02 */ {2, 2}, - /* 03 */ {4, 2}, - /* 04 */ {6, 2}, - /* 05 */ {8, 1}, - /* 06 */ {9, 1}, - /* 07 */ {10, 2}, - /* 08 */ {12, 1}, - /* 09 */ {13, 1}, - /* 0A */ {14, 1}, - /* 0B */ {15, 1}, - /* 0C */ {16, 2}, - /* 0D */ {18, 1}, - /* 0E */ {19, 1}, - /* 0F */ {20, 2}, - /* 10 */ {22, 1}, - /* 11 */ {23, 1}, - /* 12 */ {24, 2}, - /* 13 */ {26, 2}, - /* 14 */ {28, 2}, - /* 15 */ {30, 1}, - /* 16 */ {31, 1}, - /* 17 */ {32, 2}, - /* 18 */ {34, 1}, - /* 19 */ {35, 1}, - /* 1A */ {36, 2}, - /* 1B */ {38, 1}, - /* 1C */ {39, 2}, - /* 1D */ {41, 1}, - /* 1E */ {42, 1}, - /* 1F */ {43, 2}, - /* 20 */ {45, 1}, - /* 21 */ {46, 1}, - /* 22 */ {47, 2}, - /* 23 */ {49, 2}, - /* 24 */ {51, 1}, - /* 25 */ {52, 1}, - /* 26 */ {53, 1}, - /* 27 */ {54, 2}, - /* 28 */ {56, 1}, - /* 29 */ {57, 1}, - /* 2A */ {58, 1}, - /* 2B */ {59, 1}, - /* 2C */ {60, 1}, - /* 2D */ {61, 1}, - /* 2E */ {62, 1}, - /* 2F */ {63, 2}, - /* 30 */ {65, 1}, - /* 31 */ {66, 1}, - /* 32 */ {67, 2}, - /* 33 */ {69, 1}, - /* 34 */ {70, 1}, - /* 35 */ {71, 1}, - /* 36 */ {72, 1}, - /* 37 */ {73, 2}, - /* 38 */ {75, 1}, - /* 39 */ {76, 1}, - /* 3A */ {77, 2}, - /* 3B */ {79, 1}, - /* 3C */ {80, 1}, - /* 3D */ {81, 1}, - /* 3E */ {82, 1}, - /* 3F */ {83, 2}, - /* 40 */ {85, 1}, - /* 41 */ {86, 1}, - /* 42 */ {87, 2}, - /* 43 */ {89, 2}, - /* 44 */ {91, 1}, - /* 45 */ {92, 1}, - /* 46 */ {93, 1}, - /* 47 */ {94, 2}, - /* 48 */ {96, 1}, - /* 49 */ {97, 1}, - /* 4A */ {98, 1}, - /* 4B */ {99, 1}, - /* 4C */ {100, 1}, - /* 4D */ {101, 1}, - /* 4E */ {102, 1}, - /* 4F */ {103, 2}, - /* 50 */ {105, 1}, - /* 51 */ {106, 1}, - /* 52 */ {107, 2}, - /* 53 */ {109, 2}, - /* 54 */ {111, 1}, - /* 55 */ {112, 1}, - /* 56 */ {113, 1}, - /* 57 */ {114, 2}, - /* 58 */ {116, 1}, - /* 59 */ {117, 1}, - /* 5A */ {118, 1}, - /* 5B */ {119, 1}, - /* 5C */ {0, 0}, - /* 5D */ {120, 1}, - /* 5E */ {121, 1}, - /* 5F */ {122, 2}, - /* 60 */ {124, 1}, - /* 61 */ {125, 1}, - /* 62 */ {126, 2}, - /* 63 */ {128, 1}, - /* 64 */ {129, 1}, - /* 65 */ {130, 1}, - /* 66 */ {131, 1}, - /* 67 */ {132, 2}, - /* 68 */ {134, 1}, - /* 69 */ {135, 1}, - /* 6A */ {136, 1}, - /* 6B */ {137, 1}, - /* 6C */ {138, 1}, - /* 6D */ {139, 1}, - /* 6E */ {140, 1}, - /* 6F */ {141, 2}, - /* 70 */ {143, 1}, - /* 71 */ {144, 1}, - /* 72 */ {145, 2}, - /* 73 */ {147, 2}, - /* 74 */ {149, 1}, - /* 75 */ {150, 1}, - /* 76 */ {151, 1}, - /* 77 */ {152, 2}, - /* 78 */ {154, 1}, - /* 79 */ {155, 1}, - /* 7A */ {156, 1}, - /* 7B */ {157, 1}, - /* 7C */ {158, 1}, - /* 7D */ {159, 1}, - /* 7E */ {160, 1}, - /* 7F */ {161, 2}, - /* 80 */ {163, 2}, - /* 81 */ {165, 1}, - /* 82 */ {166, 1}, - /* 83 */ {167, 2}, - /* 84 */ {169, 1}, - /* 85 */ {170, 1}, - /* 86 */ {171, 1}, - /* 87 */ {172, 2}, - /* 88 */ {174, 1}, - /* 89 */ {175, 1}, - /* 8A */ {176, 1}, - /* 8B */ {177, 1}, - /* 8C */ {178, 1}, - /* 8D */ {179, 1}, - /* 8E */ {180, 1}, - /* 8F */ {181, 2}, - /* 90 */ {183, 1}, - /* 91 */ {184, 1}, - /* 92 */ {185, 2}, - /* 93 */ {187, 2}, - /* 94 */ {189, 1}, - /* 95 */ {190, 1}, - /* 96 */ {191, 1}, - /* 97 */ {192, 2}, - /* 98 */ {194, 1}, - /* 99 */ {195, 1}, - /* 9A */ {196, 1}, - /* 9B */ {197, 1}, - /* 9C */ {198, 2}, - /* 9D */ {200, 1}, - /* 9E */ {201, 2}, - /* 9F */ {203, 2}, - /* A0 */ {205, 1}, - /* A1 */ {206, 1}, - /* A2 */ {207, 1}, - /* A3 */ {208, 2}, - /* A4 */ {210, 1}, - /* A5 */ {211, 1}, - /* A6 */ {212, 1}, - /* A7 */ {213, 2}, - /* A8 */ {215, 1}, - /* A9 */ {216, 1}, - /* AA */ {217, 1}, - /* AB */ {218, 1}, - /* AC */ {219, 1}, - /* AD */ {220, 1}, - /* AE */ {221, 1}, - /* AF */ {222, 2}, - /* B0 */ {224, 1}, - /* B1 */ {225, 1}, - /* B2 */ {226, 2}, - /* B3 */ {228, 2}, - /* B4 */ {230, 1}, - /* B5 */ {231, 1}, - /* B6 */ {232, 1}, - /* B7 */ {233, 2}, - /* B8 */ {235, 1}, - /* B9 */ {236, 1}, - /* BA */ {237, 1}, - /* BB */ {238, 1}, - /* BC */ {239, 1}, - /* BD */ {240, 1}, - /* BE */ {241, 1}, - /* BF */ {242, 2}, - /* C0 */ {244, 1}, - /* C1 */ {245, 1}, - /* C2 */ {246, 1}, - /* C3 */ {247, 2}, - /* C4 */ {249, 1}, - /* C5 */ {250, 1}, - /* C6 */ {251, 1}, - /* C7 */ {252, 2}, - /* C8 */ {254, 1}, - /* C9 */ {255, 1}, - /* CA */ {256, 1}, - /* CB */ {257, 2}, - /* CC */ {259, 1}, - /* CD */ {260, 1}, - /* CE */ {261, 1}, - /* CF */ {262, 2}, - /* D0 */ {264, 1}, - /* D1 */ {265, 1}, - /* D2 */ {266, 2}, - /* D3 */ {268, 2}, - /* D4 */ {270, 1}, - /* D5 */ {271, 1}, - /* D6 */ {272, 1}, - /* D7 */ {273, 2}, - /* D8 */ {275, 1}, - /* D9 */ {276, 1}, - /* DA */ {277, 1}, - /* DB */ {278, 2}, - /* DC */ {0, 0}, - /* DD */ {280, 1}, - /* DE */ {281, 1}, - /* DF */ {282, 2}, - /* E0 */ {284, 1}, - /* E1 */ {285, 1}, - /* E2 */ {0, 0}, - /* E3 */ {286, 2}, - /* E4 */ {288, 1}, - /* E5 */ {289, 1}, - /* E6 */ {290, 1}, - /* E7 */ {291, 2}, - /* E8 */ {293, 1}, - /* E9 */ {294, 1}, - /* EA */ {295, 1}, - /* EB */ {296, 1}, - /* EC */ {297, 1}, - /* ED */ {298, 1}, - /* EE */ {299, 1}, - /* EF */ {300, 2}, - /* F0 */ {302, 1}, - /* F1 */ {303, 1}, - /* F2 */ {304, 2}, - /* F3 */ {306, 2}, - /* F4 */ {308, 1}, - /* F5 */ {309, 1}, - /* F6 */ {310, 1}, - /* F7 */ {311, 2}, - /* F8 */ {313, 1}, - /* F9 */ {314, 1}, - /* FA */ {315, 1}, - /* FB */ {316, 1}, - /* FC */ {0, 0}, - /* FD */ {317, 1}, - /* FE */ {318, 1}, - /* FF */ {319, 2}, + 0x00 = {0, 1}, + 0x01 = {1, 1}, + 0x02 = {2, 2}, + 0x03 = {4, 2}, + 0x04 = {6, 2}, + 0x05 = {8, 1}, + 0x06 = {9, 1}, + 0x07 = {10, 2}, + 0x08 = {12, 1}, + 0x09 = {13, 1}, + 0x0A = {14, 1}, + 0x0B = {15, 1}, + 0x0C = {16, 2}, + 0x0D = {18, 1}, + 0x0E = {19, 1}, + 0x0F = {20, 2}, + 0x10 = {22, 1}, + 0x11 = {23, 1}, + 0x12 = {24, 2}, + 0x13 = {26, 2}, + 0x14 = {28, 2}, + 0x15 = {30, 1}, + 0x16 = {31, 1}, + 0x17 = {32, 2}, + 0x18 = {34, 1}, + 0x19 = {35, 1}, + 0x1A = {36, 2}, + 0x1B = {38, 1}, + 0x1C = {39, 2}, + 0x1D = {41, 1}, + 0x1E = {42, 1}, + 0x1F = {43, 2}, + 0x20 = {45, 1}, + 0x21 = {46, 1}, + 0x22 = {47, 2}, + 0x23 = {49, 2}, + 0x24 = {51, 1}, + 0x25 = {52, 1}, + 0x26 = {53, 1}, + 0x27 = {54, 2}, + 0x28 = {56, 1}, + 0x29 = {57, 1}, + 0x2A = {58, 1}, + 0x2B = {59, 1}, + 0x2C = {60, 1}, + 0x2D = {61, 1}, + 0x2E = {62, 1}, + 0x2F = {63, 2}, + 0x30 = {65, 1}, + 0x31 = {66, 1}, + 0x32 = {67, 2}, + 0x33 = {69, 1}, + 0x34 = {70, 1}, + 0x35 = {71, 1}, + 0x36 = {72, 1}, + 0x37 = {73, 2}, + 0x38 = {75, 1}, + 0x39 = {76, 1}, + 0x3A = {77, 2}, + 0x3B = {79, 1}, + 0x3C = {80, 1}, + 0x3D = {81, 1}, + 0x3E = {82, 1}, + 0x3F = {83, 2}, + 0x40 = {85, 1}, + 0x41 = {86, 1}, + 0x42 = {87, 2}, + 0x43 = {89, 2}, + 0x44 = {91, 1}, + 0x45 = {92, 1}, + 0x46 = {93, 1}, + 0x47 = {94, 2}, + 0x48 = {96, 1}, + 0x49 = {97, 1}, + 0x4A = {98, 1}, + 0x4B = {99, 1}, + 0x4C = {100, 1}, + 0x4D = {101, 1}, + 0x4E = {102, 1}, + 0x4F = {103, 2}, + 0x50 = {105, 1}, + 0x51 = {106, 1}, + 0x52 = {107, 2}, + 0x53 = {109, 2}, + 0x54 = {111, 1}, + 0x55 = {112, 1}, + 0x56 = {113, 1}, + 0x57 = {114, 2}, + 0x58 = {116, 1}, + 0x59 = {117, 1}, + 0x5A = {118, 1}, + 0x5B = {119, 1}, + 0x5D = {120, 1}, + 0x5E = {121, 1}, + 0x5F = {122, 2}, + 0x60 = {124, 1}, + 0x61 = {125, 1}, + 0x62 = {126, 2}, + 0x63 = {128, 1}, + 0x64 = {129, 1}, + 0x65 = {130, 1}, + 0x66 = {131, 1}, + 0x67 = {132, 2}, + 0x68 = {134, 1}, + 0x69 = {135, 1}, + 0x6A = {136, 1}, + 0x6B = {137, 1}, + 0x6C = {138, 1}, + 0x6D = {139, 1}, + 0x6E = {140, 1}, + 0x6F = {141, 2}, + 0x70 = {143, 1}, + 0x71 = {144, 1}, + 0x72 = {145, 2}, + 0x73 = {147, 2}, + 0x74 = {149, 1}, + 0x75 = {150, 1}, + 0x76 = {151, 1}, + 0x77 = {152, 2}, + 0x78 = {154, 1}, + 0x79 = {155, 1}, + 0x7A = {156, 1}, + 0x7B = {157, 1}, + 0x7C = {158, 1}, + 0x7D = {159, 1}, + 0x7E = {160, 1}, + 0x7F = {161, 2}, + 0x80 = {163, 2}, + 0x81 = {165, 1}, + 0x82 = {166, 1}, + 0x83 = {167, 2}, + 0x84 = {169, 1}, + 0x85 = {170, 1}, + 0x86 = {171, 1}, + 0x87 = {172, 2}, + 0x88 = {174, 1}, + 0x89 = {175, 1}, + 0x8A = {176, 1}, + 0x8B = {177, 1}, + 0x8C = {178, 1}, + 0x8D = {179, 1}, + 0x8E = {180, 1}, + 0x8F = {181, 2}, + 0x90 = {183, 1}, + 0x91 = {184, 1}, + 0x92 = {185, 2}, + 0x93 = {187, 2}, + 0x94 = {189, 1}, + 0x95 = {190, 1}, + 0x96 = {191, 1}, + 0x97 = {192, 2}, + 0x98 = {194, 1}, + 0x99 = {195, 1}, + 0x9A = {196, 1}, + 0x9B = {197, 1}, + 0x9C = {198, 2}, + 0x9D = {200, 1}, + 0x9E = {201, 2}, + 0x9F = {203, 2}, + 0xA0 = {205, 1}, + 0xA1 = {206, 1}, + 0xA2 = {207, 1}, + 0xA3 = {208, 2}, + 0xA4 = {210, 1}, + 0xA5 = {211, 1}, + 0xA6 = {212, 1}, + 0xA7 = {213, 2}, + 0xA8 = {215, 1}, + 0xA9 = {216, 1}, + 0xAA = {217, 1}, + 0xAB = {218, 1}, + 0xAC = {219, 1}, + 0xAD = {220, 1}, + 0xAE = {221, 1}, + 0xAF = {222, 2}, + 0xB0 = {224, 1}, + 0xB1 = {225, 1}, + 0xB2 = {226, 2}, + 0xB3 = {228, 2}, + 0xB4 = {230, 1}, + 0xB5 = {231, 1}, + 0xB6 = {232, 1}, + 0xB7 = {233, 2}, + 0xB8 = {235, 1}, + 0xB9 = {236, 1}, + 0xBA = {237, 1}, + 0xBB = {238, 1}, + 0xBC = {239, 1}, + 0xBD = {240, 1}, + 0xBE = {241, 1}, + 0xBF = {242, 2}, + 0xC0 = {244, 1}, + 0xC1 = {245, 1}, + 0xC2 = {246, 1}, + 0xC3 = {247, 2}, + 0xC4 = {249, 1}, + 0xC5 = {250, 1}, + 0xC6 = {251, 1}, + 0xC7 = {252, 2}, + 0xC8 = {254, 1}, + 0xC9 = {255, 1}, + 0xCA = {256, 1}, + 0xCB = {257, 2}, + 0xCC = {259, 1}, + 0xCD = {260, 1}, + 0xCE = {261, 1}, + 0xCF = {262, 2}, + 0xD0 = {264, 1}, + 0xD1 = {265, 1}, + 0xD2 = {266, 2}, + 0xD3 = {268, 2}, + 0xD4 = {270, 1}, + 0xD5 = {271, 1}, + 0xD6 = {272, 1}, + 0xD7 = {273, 2}, + 0xD8 = {275, 1}, + 0xD9 = {276, 1}, + 0xDA = {277, 1}, + 0xDB = {278, 2}, + 0xDD = {280, 1}, + 0xDE = {281, 1}, + 0xDF = {282, 2}, + 0xE0 = {284, 1}, + 0xE1 = {285, 1}, + 0xE3 = {286, 2}, + 0xE4 = {288, 1}, + 0xE5 = {289, 1}, + 0xE6 = {290, 1}, + 0xE7 = {291, 2}, + 0xE8 = {293, 1}, + 0xE9 = {294, 1}, + 0xEA = {295, 1}, + 0xEB = {296, 1}, + 0xEC = {297, 1}, + 0xED = {298, 1}, + 0xEE = {299, 1}, + 0xEF = {300, 2}, + 0xF0 = {302, 1}, + 0xF1 = {303, 1}, + 0xF2 = {304, 2}, + 0xF3 = {306, 2}, + 0xF4 = {308, 1}, + 0xF5 = {309, 1}, + 0xF6 = {310, 1}, + 0xF7 = {311, 2}, + 0xF8 = {313, 1}, + 0xF9 = {314, 1}, + 0xFA = {315, 1}, + 0xFB = {316, 1}, + 0xFD = {317, 1}, + 0xFE = {318, 1}, + 0xFF = {319, 2}, } diff --git a/core/rexcode/mos6502/encoding_table.odin b/core/rexcode/mos6502/encoding_table.odin index 13aa149cc..927771df5 100644 --- a/core/rexcode/mos6502/encoding_table.odin +++ b/core/rexcode/mos6502/encoding_table.odin @@ -24,7 +24,7 @@ package rexcode_mos6502 // 4 HuC TST # abs // 7 HuC block transfer @(rodata) -ENCODING_TABLE: [Mnemonic][]Encoding = #partial { +ENCODING_TABLE:= #partial [Mnemonic][]Encoding{ .INVALID = {}, // ========================================================================= diff --git a/core/rexcode/mos6502/tools/gen_decode_tables.odin b/core/rexcode/mos6502/tools/gen_decode_tables.odin index efe05467a..9055e12e2 100644 --- a/core/rexcode/mos6502/tools/gen_decode_tables.odin +++ b/core/rexcode/mos6502/tools/gen_decode_tables.odin @@ -173,10 +173,8 @@ encode_flags_literal :: proc(f: m.Encoding_Flags) -> string { emit_range_table :: proc(sb: ^strings.Builder, name: string, ranges: []Range) { fmt.sbprintfln(sb, "%s := [%d]Decode_Index{{", name, len(ranges)) for r, i in ranges { - if r.count == 0 { - fmt.sbprintfln(sb, "\t/* %02X */ {{0, 0}},", i) - } else { - fmt.sbprintfln(sb, "\t/* %02X */ {{%d, %d}},", i, r.start, r.count) + if r.count != 0 { + fmt.sbprintfln(sb, "\t0x%02X = {{%d, %d}},", i, r.start, r.count) } } strings.write_string(sb, "}\n\n")