diff --git a/Arcade_MiST/Exidy-6502 Hardware/rtl/address_decoder.sv b/Arcade_MiST/Exidy-6502 Hardware/rtl/address_decoder.sv new file mode 100644 index 00000000..f87c5c25 --- /dev/null +++ b/Arcade_MiST/Exidy-6502 Hardware/rtl/address_decoder.sv @@ -0,0 +1,37 @@ +module address_decoder( +input [15:0] addr, +input clk, +output reg absel_n, +output reg iosel_n, +output reg misel_n, +output reg vsel_n, +output reg romsel_n, +output reg ramsel_n, +output reg bbsel_n +); + +reg [3:0]prom_do; +sprom #( + .init_file("./rom/prom5c.hex"), + .widthad_a(7), + .width_a(8)) +c5C( + .address(addr[15:9]), + .clock(clk), + .q(prom_do) + ); + +wire spare1, spare2; +ttl_74ls138 c3D( + .a(prom_do[1]), + .b(prom_do[2]), + .c(prom_do[3]), + .g1(prom_do[0]), + .g2a_n(1'b0), + .g2b_n(1'b0), + .y_n({spare2, spare1, absel_n, iosel_n, misel_n, vsel_n, romsel_n, ramsel_n}), + ); + +assign bbsel_n = romsel_n & ramsel_n; + +endmodule \ No newline at end of file diff --git a/Arcade_MiST/Exidy-6502 Hardware/rtl/image_storage_ram.sv b/Arcade_MiST/Exidy-6502 Hardware/rtl/image_storage_ram.sv new file mode 100644 index 00000000..60a0059b --- /dev/null +++ b/Arcade_MiST/Exidy-6502 Hardware/rtl/image_storage_ram.sv @@ -0,0 +1,61 @@ +module image_storage_ram( +input clock, +input [9:0] addr, +input cs_cg1, +input cs_cg2, +input gs_wr_n, +input [7:0] vd_in, +output [7:0] vd_out +); +wire [7:0] ram1, ram2; +always @(clock) + vd_out <= cs_cg1 ? ram1 : + cs_cg2 ? ram2 : 8'b00000000; +spram #( + .widthad_a(10), + .width_a(4)) +c13C( + .address(addr[9:0]), + .clken(cs_cg1), + .clock(clock), + .data(vd_in[7:4]), + .wren(~gs_wr_n), + .q(ram1[7:4]) + ); + +spram #( + .widthad_a(10), + .width_a(4)) +c11C( + .address(addr[9:0]), + .clken(cs_cg1), + .clock(clock), + .data(vd_in[3:0]), + .wren(~gs_wr_n), + .q(ram1[3:0]) + ); + +spram #( + .widthad_a(10), + .width_a(4)) +c14C( + .address(addr[9:0]), + .clken(cs_cg2), + .clock(clock), + .data(vd_in[7:4]), + .wren(~gs_wr_n), + .q(ram2[7:4]) + ); + +spram #( + .widthad_a(10), + .width_a(4)) +c12C( + .address(addr[9:0]), + .clken(cs_cg2), + .clock(clock), + .data(vd_in[3:0]), + .wren(~gs_wr_n), + .q(ram2[3:0]) + ); +endmodule \ No newline at end of file diff --git a/Arcade_MiST/Exidy-6502 Hardware/rtl/programm_memory.sv b/Arcade_MiST/Exidy-6502 Hardware/rtl/programm_memory.sv new file mode 100644 index 00000000..51271a00 --- /dev/null +++ b/Arcade_MiST/Exidy-6502 Hardware/rtl/programm_memory.sv @@ -0,0 +1,133 @@ +module programm_memory( +input [15:0] addr, +input clk, +input write_n, +input pup3, +input romsel_n, +output [7:0] rom_do +); + +wire [7:0]pcs; + +always @(clk) + rom_do <= pcs[0] ? rom1_do : + pcs[1] ? rom2_do : + pcs[2] ? rom3_do : + pcs[3] ? rom4_do : + pcs[4] ? rom5_do : + pcs[5] ? rom6_do : + pcs[6] ? rom7_do : + pcs[7] ? rom8_do : + 8'b00000000; + +wire [7:0]rom1_do; +wire [7:0]rom2_do; +wire [7:0]rom3_do; +wire [7:0]rom4_do; +wire [7:0]rom5_do; +wire [7:0]rom6_do; +wire [7:0]rom7_do; +wire [7:0]rom8_do; + +sprom #( + .init_file("./rom/hrl6a_1.hex"), + .widthad_a(10), + .width_a(8)) +c13A( + .address(addr[9:0]), + .clock(clk),//pcs[0] + .q(rom1_do) + ); + +sprom #( + .init_file("./rom/hrl7a_1.hex"), + .widthad_a(10), + .width_a(8)) +c12A( + .address(addr[9:0]), + .clock(clk),//pcs[1] + .q(rom2_do) + ); + +sprom #( + .init_file("./rom/hrl8a_1.hex"), + .widthad_a(10), + .width_a(8)) +c11A( + .address(addr[9:0]), + .clock(clk),//pcs[2] + .q(rom3_do) + ); + +sprom #( + .init_file("./rom/hrl9a_1.hex"), + .widthad_a(10), + .width_a(8)) +c10A( + .address(addr[9:0]), + .clock(clk),//pcs[3] + .q(rom4_do) + ); + +sprom #( + .init_file("./rom/hrl10a_1.hex"), + .widthad_a(10), + .width_a(8)) +c9A( + .address(addr[9:0]), + .clock(clk),//pcs[4] + .q(rom5_do) + ); + +`ifndef targ +sprom #( + .init_file(""), + .widthad_a(10), + .width_a(8)) +c8A( + .address(addr[9:0]), + .clock(clk),//pcs[5] + .q(rom6_do) + ); + +sprom #( + .init_file(""), + .widthad_a(10), + .width_a(8)) +c8A( + .address(addr[9:0]), + .clock(clk),//pcs[6] + .q(rom7_do) + ); + +sprom #( + .init_file(""), + .widthad_a(10), + .width_a(8)) +c8A( + .address(addr[9:0]), + .clock(clk),//pcs[7] + .q(rom8_do) + ); +`endif + +//targ +`ifdef targ +wire A = addr[11]; +wire B = addr[12]; +wire C = addr[13]; +wire pap19 = 1'b1; +wire pap20 = addr[10]; +wire pap21 = 1'b0; +`endif + +ttl_74ls138 c5B( + .a(A), + .b(B), + .c(C), + .g1(pup3), + .g2a_n(romsel_n), + .g2b_n(romsel_n), + .y_n(pcs), + ); +endmodule \ No newline at end of file diff --git a/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/Neuer Ordner/hra2b-1 b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/Neuer Ordner/hra2b-1 new file mode 100644 index 00000000..8614e2bb --- /dev/null +++ b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/Neuer Ordner/hra2b-1 @@ -0,0 +1 @@ +ååííååííççïïççïïÁáÉéÅåÍíÃãËëÇçÏï \ No newline at end of file diff --git a/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/Neuer Ordner/hrl11d-1 b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/Neuer Ordner/hrl11d-1 new file mode 100644 index 00000000..a400bc05 Binary files /dev/null and b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/Neuer Ordner/hrl11d-1 differ diff --git a/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/Neuer Ordner/hrl14h-1 b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/Neuer Ordner/hrl14h-1 new file mode 100644 index 00000000..a37d623b --- /dev/null +++ b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/Neuer Ordner/hrl14h-1 @@ -0,0 +1 @@ +ÎÎÎÎËËËËÍÍÍÍÇÇÇÇðÜãÏðÜãÏðÜãÏðÜãÏ \ No newline at end of file diff --git a/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/Neuer Ordner/hrl5c-1 b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/Neuer Ordner/hrl5c-1 new file mode 100644 index 00000000..438ed0e4 --- /dev/null +++ b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/Neuer Ordner/hrl5c-1 @@ -0,0 +1 @@ +  \ No newline at end of file diff --git a/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/Neuer Ordner/stl6d-1 b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/Neuer Ordner/stl6d-1 new file mode 100644 index 00000000..d8ae3b0f --- /dev/null +++ b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/Neuer Ordner/stl6d-1 @@ -0,0 +1 @@ +88XX88XX88XX88XXoioi¶°ÖÐøøøøøøøø \ No newline at end of file diff --git a/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl10a_1.bin b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl10a_1.bin new file mode 100644 index 00000000..bf77be9e Binary files /dev/null and b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl10a_1.bin differ diff --git a/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl10a_1.hex b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl10a_1.hex new file mode 100644 index 00000000..f451487e --- /dev/null +++ b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl10a_1.hex @@ -0,0 +1,129 @@ +:10000000200C2F4C0F18200A2F4C0F1820052FA55D +:100010002895DE6020EC2E4C231820EA2E4C231865 +:1000200020E52EB5DE852860203218204718207183 +:100030002360C6A43007EAA90220CF2360A9FD20CF +:10004000CA23A90085A460C6A53002EA6038A914B5 +:10005000E5B785A5A5A62901C901D019EAA900859A +:10006000A6A5B1C903F013EAC901F00EEAA5A609D5 +:10007000028D015260A9014C5F18A5A68D01526046 +:10008000A93D8503A9488510A9408511A5BF4AAAA5 +:10009000B5DCAABDDE1FAA20A21820A01820A01837 +:1000A000A200BC521FC0FFF009EAA5039110E84C62 +:1000B000A21818A51069058510602C00513007EAB8 +:1000C00020CF1D4CC918207C2B20E21820F91820C5 +:1000D0004F2B20EA2B20372B200824203B2A20EA14 +:1000E0002360A005B93E1F992B408810F7A5AE8567 +:1000F00003A5AFA21020602A60A5A7091085A7A9B3 +:10010000C28510A9408511A000B9461F8514C8B941 +:10011000461F851520FE2260204023A90C8510A9CA +:10012000428511A000B9441F8514C8B9441F851524 +:1001300020FE2220862320862360A5A1D003EA3852 +:1001400060F838E90185A1D820EA2B1860207119E0 +:10015000A200A5BFC901F003EAA218A90020522AF3 +:10016000A52F85B1202B2CC6281005EAA9008528CB +:1001700060207B19203B2A207D2A60202B2CA9009F +:10018000851D8530853E851F853185B385B885BC45 +:10019000A908851CA9F3851A206D24A901851E20B4 +:1001A000AA2EA90685B685B7A90385208521A98031 +:1001B00085B920402320EA2B20C826A90A852FA92B +:1001C0000485B060A5BCD002EA60A6BFF03FEAE0BB +:1001D00001F006EAA2184CDB19A200A5BC3006EA21 +:1001E000A5C34CEF19A96020CF23E6A820121A203E +:1001F000522AE018B008EAA218A0014C021AA00086 +:10020000A200B9D0008503B9D20020602AA90085D8 +:10021000BC608601A5B1D007EAA5A7091085A7A9EA +:10022000008D015220A4232903AABDEC1FAAA0001F +:100230008500B19B994100A5000930919BC8B19BF5 +:10024000994100C8B19B99410088A930919BC89100 +:100250009B8A0A0A0A0A8500A601208923208C238A +:10026000A000206E1A206E1A206E1AA50060B941F7 +:1002700000919BC860C6B6D03FEAA90585B6A52007 +:100280001022EAE6B7A5B7C90F9008EAA90E85B70C +:100290004CB81AAABDF01F8500A52029C00500850D +:1002A000204CB81AA5202940F00EEAC6B7A5B71011 +:1002B000E2A90085B74C931AC621D018EA206A2219 +:1002C000A000B12AC920F009EAC921F004EA4C696A +:1002D0003F4C942D4C9D2DA99120021BAE1603CAB4 +:1002E000EAEAD0FBEAA99E20071BAE1603CAEAEA97 +:1002F000D0FBC6A9D006EAC6AAD0DC60F000F000A8 +:10030000D0D505ABD003EA25AB85AB099029F18D9B +:10031000005260B9D91B8D1003C8A9008D0152B9D4 +:10032000D91B29E04A4A4A4A4A85ACB9D91BF03B55 +:10033000EAC901F031EAC9FFF057EA291FAABD97BF +:100340001B8D1603AD1003F008EABDB81B4A4C54D0 +:100350001BBDB81B4A85A9A90185AA20D71AC6AC1E +:10036000D0C9C84C1F1BA9304C6D1BA9038D1703A6 +:10037000A9008D12038D1303EE1203EE1303A9805F +:10038000CD1303D0F6AD1203CD1703D0EBC84C1F2D +:100390001BA91020021B60F6E8DCCEC2B9ADA49BFD +:1003A0009189817A736C66605B55504C48433F3C41 +:1003B0003834312E2C2926241F21232527292C2EA1 +:1003C0003134373A3E42464A4E53585D63696F7541 +:1003D0007C838B949DA6B0BAC6FF32353D32353D45 +:1003E00032353D32353D32353DFFFF32353DFFFF81 +:1003F00032353D32353DFF08488A489848AD0351B3 +:10040000A82960D00FEA981008EA68A868AA6828A6 +:10041000404C4D3FA5A2C90690F09848A51448A5A8 +:100420001548A51048A511489829608D0103A90019 +:1004300085A22C00513043EA982920D01EEAAD0055 +:100440005149FF2902D011EAE6A0A5A0C902903DBA +:10045000EAA90085A04C801C4C801CAD005149FFCE +:100460002902D00AEA20DB1C20DB1C4C801C20DB8C +:100470001C20DB1C20DB1C4C651C982940F00EEA7C +:10048000209E1C24A73006EAA01220131B688511A9 +:1004900068851068851568851468A84C0A1CAD032A +:1004A000512960D002EA60A9FF8D0003AD035129F4 +:1004B000604D0103D0E8CE0003D0F1AD03512960B7 +:1004C0004D0103D0F6CE0003AD035129604D010369 +:1004D000D0E9CE0003D0F120DB1C60AD005129181B +:1004E000C910D00BEAE6A0A5A0C902B002EA604C90 +:1004F000D72B20402320801DA5BF4AAAF818B5DCC1 +:10050000C909B005EA690195DC1865BE85BEA5C3B9 +:10051000C909B005EA690185C3D8208018A94B85AF +:1005200010A9418511A000B9481F8514C8B9481FFA +:10053000851520FE22A000B9F22F8514C8B9F22F2C +:100540008515A90E8510A942851120FE2220EA23D7 +:10055000A5C309308D6D42A9108D0052A000201353 +:100560001B208E1DA22F206D1DCA10FA60C616D04A +:10057000FCA00720A42399E84999F04D8810F46065 +:10058000A9FFA00799E84999F04D8810F760A909DB +:10059000853FA91285B720A01DC6B7C63FD0F7601A +:1005A000A503C9BEF022EAA9BE8503208418A912BA +:1005B0008517C616D0FCA517290385B1A5172906EE +:1005C000D001EAC617D0EB6020801820AE1D60ADC8 +:1005D0000051A00049FF2902D00FEAB9501F85142D +:1005E000C8B9501F85154CF41DB94E1F8514C8B9E4 +:1005F0004E1F8515A9648510A941851120FE22C8CA +:10060000A969851020002360A5BEC5AFF005EAB03A +:100610000AEA60A5BDC5AEB002EA60A5BD85AEA57B +:10062000BE85AFA5A729FC85A7A5BF290305A7857A +:10063000A760A90185298528A90B852FA90A85B15D +:10064000207B19203B2A20E218A90285208521A9B8 +:100650000085A760544F5020484947482053434FD6 +:10066000524520464F5220455854524120504C414B +:100670005900455854524120504F494E545300455B +:100680005854454E44454420504C415920464F5201 +:1006900020504C4159455220202000544F50504981 +:1006A0004E4720484947482053434F524520004574 +:1006B00058545241204352454449542000464F5219 +:1006C00020544F5050494E472048494748205343F3 +:1006D0004F524500312047414D4520204F4E452087 +:1006E00031302050454E434520434F494E2000367F +:1006F0002047414D4553204F4E4520353020504531 +:100700004E434520434F494E00312047414D45203F +:100710002054574F2031302050454E434520434F01 +:10072000494E5300332047414D4553204F4E4520FD +:1007300035302050454E434520434F494E004849EF +:1007400020534352C727541E721E7F1EAF1ED41E55 +:10075000091F01022023404360638083A1A2FF00A0 +:100760000121416181A0A1A2FF000102202242607B +:10077000616280A0A1A2FF0001022241426282A028 +:10078000A1A2FF02202240426061626382A1A2A373 +:10079000FF00010220404142436383A0A1A2A3FFC6 +:1007A0000001022040606162638083A0A1A2A3FFD8 +:1007B00000010203234243616281A1FF0102032180 +:1007C000234041424360638083A0A1A2A3FF0001B4 +:1007D00002032023404142436383A1A2A3FF000DF3 +:1007E0001725313F4E5E6A7C204004080102030554 +:1007F0000A090806050404030303020202020202B6 +:00000001FF diff --git a/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl6a_1.bin b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl6a_1.bin new file mode 100644 index 00000000..ae249dab Binary files /dev/null and b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl6a_1.bin differ diff --git a/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl6a_1.hex b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl6a_1.hex new file mode 100644 index 00000000..54298dd7 --- /dev/null +++ b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl6a_1.hex @@ -0,0 +1,129 @@ +:10000000000000000000000018183C3C7E7EE7C3A2 +:1000100000000000000018183C3C7E7EE7C3000092 +:100020000000000018183C3C7E7EE7C30000000082 +:10003000000018183C3C7E7EE7C300000000000072 +:10004000C3E77E7E3C3C1818000000000000000062 +:100050000000C3E77E7E3C3C181800000000000052 +:1000600000000000C3E77E7E3C3C18180000000042 +:10007000000000000000C3E77E7E3C3C1818000032 +:10008000C0F07C3F3F7CF0C000000000000000009A +:10009000303C1F0F0F1F3C30000000C0C0000000AC +:1000A0000C0F070303070F0C0000C0F0F0C00000A6 +:1000B000030301000001030300C0F0FCFCF0C000DA +:1000C0000000000000000000030F3EFCFC3E0F0398 +:1000D00000000003030000000C3CF8F0F0F83C0CBA +:1000E0000000030F0F03000030F0E0C0C0E0F0306C +:1000F00000030F3F3F0F0300C0C080000080C0C05E +:100100000000000000000000148AA129D352613AC7 +:10011000315561A1224491CA000000000000000096 +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:1001800000384444444444380010301010101038F3 +:10019000003844041820407C007C040818044438CB +:1001A00000081828487C0808007C4078040444387B +:1001B000001C204078444438007C04081020202093 +:1001C0000038444438444438003844443C040870FF +:1001D000000000000000000000000000000000001F +:1001E0000000000000000000FFFFFFFFFFFFFFFF17 +:1001F00000000000000000000000000000000000FF +:10020000000000000000000000102844447C44442A +:1002100000784444784444780038444040404438AE +:100220000078444444444478007C40407840407C1A +:10023000007C404078404040003C4040404C443CC2 +:10024000004444447C4444440038101010101038DA +:1002500000040404040444380044485070504844E6 +:10026000004040404040407C00446C54544444446E +:1002700000444464544C44440038444444444438A6 +:100280000078444478404040003844444454483462 +:100290000078444478504844003844403804443896 +:1002A000007C1010101010100044444444444438A2 +:1002B00000444444444428100044444454546C448E +:1002C00000444428102844440044442810101010CE +:1002D000007C04081020407C8080808080808080AA +:1002E000FFDF4EFFFFFFDFDFFFFFFFFFDFFFDFFF6F +:1002F000FFFFFFFFFFFFDFFFFFDFDFAFFFDFFFFFDE +:1003000000000000000000FFFF00000000000000EF +:1003100001010101010101018080808080808080D5 +:100320003CA5FFBD3CBDFFBDBDFFBD3CBDFFA53C29 +:10033000EE44FFFDFDFF44EE7722FFBFBFFF2277B3 +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:10040000007F7F7F7F7F7F7E00FEFEFEFEFEFE7E02 +:100410007E7F7F7F7F7F7F007EFEFEFEFEFEFE00F2 +:10042000007F7F7F7F78787800FEFEFEFE1E1E1E16 +:100430007878787F7F7F7F001E1E1EFEFEFEFE0006 +:10044000007F7F606060606000FEFE0606060606B4 +:1004500060606060607F7F000606060606FEFE00A4 +:10046000007F7F7F7F7F7F7F00FEFEFEFEFEFEFE21 +:100470007F7F7F7F7F7F7F00FEFEFEFEFEFEFE0011 +:100480000000000000000000182424182C76BD8114 +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000007F7F7F7F7F7F7F00FEFEFEFEFEFEFEB0 +:1005E0007F7F7F7F7F7F7F00FEFEFEFEFEFEFE00A0 +:1005F00000000000000000000000000000000000FB +:100600000000000000000000182424182C76BD8192 +:10061000000000000000182424182C76BD81000082 +:1006200000000000182424182C76BD810000000072 +:100630000000182424182C76BD8100000000000062 +:1006400081BD6E3418242418000000000000000052 +:10065000000081BD6E341824241800000000000042 +:100660000000000081BD6E34182424180000000032 +:1006700000000000000081BD6E3418242418000022 +:10068000C0207669597620C00000000000000000FC +:1006900030081D1A161D0830000080404080000000 +:1006A0000C0207060507020C000060909060000035 +:1006B00003000101010100030080D8A464D8800078 +:1006C000000000000000000003046E9A966E040310 +:1006D00000000102020100000C10B86858B8100CAC +:1006E00000000609090600003040E0A060E040304C +:1006F00000011B26251B0100C0008080808000C0F7 +:10070000A90085A46008488A489848AD0351A829E3 +:1007100040D00EEA982980F034EA68A868AA6828D0 +:1007200040A5A2C90690F3A51448A51548A51048F0 +:10073000A51148A90085A220C52B688511688510E0 +:100740006885156885144C1A3FEA4C1A3FA5A729FD +:1007500020D004EA205924E6A21005EAA98085A247 +:10076000A530098085304C1A3FA95020CF23A9001D +:100770008D015220E23FA9EE8D0051A51A2902D029 +:100780000BEAA51C186908851C4C933FA51D186928 +:1007900008851DA51A090F851AA5A7092085A7A9EF +:1007A000F8850A8D0051A9308540C63FD0FCC6406F +:1007B000D0F8E60AA50AC9FAB003EAA50AC9FED02C +:1007C000E2208C23A91020CF23A53009028530A573 +:1007D0001A09F0851A8D0051208923A5A729DF85E4 +:1007E000A76024A71006EAA9708D0052604E450D3F +:1007F0001750203B53544D4F003000300030D13162 +:00000001FF diff --git a/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl7a_1.bin b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl7a_1.bin new file mode 100644 index 00000000..bc211e9c Binary files /dev/null and b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl7a_1.bin differ diff --git a/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl7a_1.hex b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl7a_1.hex new file mode 100644 index 00000000..9b16bc3f --- /dev/null +++ b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl7a_1.hex @@ -0,0 +1,129 @@ +:1000000078A2FF9AAD0351CA30FAD8A90085A0851D +:10001000A185A25820BC22A90085AB85A385BD85FA +:10002000BE85AEA91085AF200C182006184C83336E +:1000300078A2FF9A58A90085BD85BE85DC85DDA91B +:100040000185BF85C320D723200C182006182071F6 +:1000500019203B2A200618A5B185A8A90085A4A9C6 +:100060009085A38D0052A9208535853620992C20B6 +:10007000073320002020882020AE2020751A20C4BD +:1000800019202F2020972A20112E202818A5B1F002 +:100090000DEAA5302902F0D4206E314C6C30A9EE67 +:1000A0008D0051208C23A9108D0052A6BFCA2000BC +:1000B00018208C23A9EE8D0051851A20F21C204DAA +:1000C000194C6C30A9108D0052A9EE8D0051208C76 +:1000D00023A5A72903D007EA2018194C8333AD00C4 +:1000E0005149FF2904D053EA24A770EC204023A5EE +:1000F000A7290385BFF0E14AAAA90195D6A000A9C6 +:10010000048510A9428511B94A1F8514C8B94A1F30 +:10011000851520FE22A92C8510C8200023A5BF0923 +:10012000308D1D42208623208623A5A7094085A760 +:10013000A5BF4AAA2014184C9E3020402320EA2B49 +:10014000E6A1A90B8510A9428511A000B94C1F8515 +:1001500014C8B94C1F851520FE22C8A93885102067 +:10016000002320862320EA2B2086234CD830A91098 +:1001700020CF23A9EE8D005120081EA52FD007EA1D +:10018000A90A852F85B1C6C11005EAA90085C1A5B8 +:10019000C0C902D024EAA5BFC901F010EAA90185AF +:1001A000BF200618202018A5C1D016EAA90285BFD5 +:1001B000200C18201A184CBC31200C18A5C1F00EC8 +:1001C000EA204023202124207119203B2A604CC4BE +:1001D0003008488A489848AD0351A82960D00FEAF2 +:1001E000981008EA68A868AA6828404C4D3FA5A264 +:1001F000C90690F0207932B0EB9848A51448A515AF +:1002000048A51048A51148A90085A22C00513042EC +:10021000EAAD0103C940D01BEAAD005149FF2902F4 +:10022000D00EEAE6A0A5A0C902903DEAA90085A0EB +:100230004C5832AD005149FF2902D00AEA20EE3273 +:1002400020EE324C583220EE3220EE3220EE324C8C +:100250003D322C01033011EA20EE32900BEA24A744 +:100260003006EAA01220131B688511688510688586 +:100270001568851468A84CE431A9058D00032C018C +:10028000511015EAAD00512901D035EACE0003D056 +:10029000E8A9008D01033860A9FF8D00032C0151EE +:1002A00030D7CE0003D0F62C015110FBCE00032C2A +:1002B000015110F3CE0003D0F6A9408D0103186060 +:1002C000A9FF8D0003AD00512901F0ADCE0003D090 +:1002D000F4AD00512901D0F9CE0003AD0051290140 +:1002E000D0EFCE0003D0F4A9808D01031860AD00DB +:1002F000512918C910D00BEAE6A0A5A0C902B00286 +:10030000EA6020D72B3860A207B596950BCA10F982 +:10031000C60F1017EAA5B0C9089006EAA9024C2832 +:100320003349FF290718690220072DA207B50B954D +:1003300096CA10F924A71031EA240C302CEA240DB7 +:100340003027EAA5972940D002EA60A9EF20CA2306 +:10035000EE0F03AD0F032940D01BEAA5A32908F037 +:1003600002EA60A90820CF2360A5A329F00910851F +:10037000A38D005260A5A32908D002EA60A9F72046 +:10038000CA2360A9EE8D0051851A206D24A910851D +:10039000A38D0052A90085A720402320BA18A91FC9 +:1003A0008517204F2BA92A85418542A5A1D040EA77 +:1003B000E63FD0EEC617D0EA20321EA90D851720E1 +:1003C000992C200733206E3420882020AE2020B8BE +:1003D0001A202F2020762E20112EA5A1D0A5A530E1 +:1003E0002902D09FC63FD0D7C617D0D34C8333AD98 +:1003F000055149FF2903C901F044EAC902F026EA80 +:10040000C616D0A7C641D0A3A9018541A20AAD0D49 +:1004100042C920F009EAA9209D0D42CA10FAC6423D +:10042000D0894CA233AD00512918C918F00EEAA5A5 +:10043000A1C902B004EA4CA233203A19A90285C02E +:10044000203A19A90B852FA90A85B1A9038528206F +:100450004023A90185BFA98085A7A016A5C0C90210 +:10046000F003EAA01220131B2021244C3030A53FBA +:10047000291FC90FD00BEA20A42385002949D006E3 +:10048000EAA900853460A5002903AABDE81F8534C8 +:10049000A50029100534853429EF853560540D10E9 +:1004A00030204143544956453D2430304231203BB1 +:1004B0004E554D424552204F4620414354495645E2 +:1004C000204152524F57530D104020534D4F564527 +:1004D0003D2430304232203B534D415254204D4F49 +:1004E000564520434F44450D105020465348434E37 +:1004F000543D2430304233203B464C415348204346 +:100500004F554E5445520D106020465343524E3DB8 +:100510002430304234203B464C4153482053435210 +:1005200045454E204C4F434154494F4E0D107020CD +:10053000434142544D3D2430304236203B434152EA +:1005400020424153452054494D45520D10802043CF +:10055000415243414C3D2430304237203B434152CD +:100560002043414C454E4441520D1090204F424A89 +:100570004354523D2430304238203B535045434988 +:10058000414C204F424A45435420434F554E544519 +:10059000520D11002046494D41473D24303042392B +:1005A000203B464C415348494E4720494D41474521 +:1005B0000D11102054504F494E543D2430304243C9 +:1005C000203B54595045204F4620504F494E54200F +:1005D000544F204245204157415244454420284130 +:1005E00052524F572D535045432054415247290DE5 +:1005F000112020504C595253433D24303042442066 +:100600003B504C415945522053434F5245202832CC +:10061000204259544553290D113020504C594E3D1C +:100620002430304246203B504C41594552204E55D3 +:100630004D4245520D1140204E504C5952533D24CD +:1006400030304330203B4E554D424552204F4620DE +:10065000504C4159455253202831204F52203229C5 +:100660000D1150204E434152533D24303043312030 +:100670003B4E554D424552204F4620434152532058 +:100680005045522047414D450D1160204243414C99 +:100690004E3D2430304332203B42554C4C45542093 +:1006A00043414C454E4441520D1170204E504F492C +:1006B0004E543D2430304333203B4E554D4245523D +:1006C000204F4620504F494E545320504552204110 +:1006D00052524F570D11802053434F5245313D2404 +:1006E00030304430203B53434F52452053544F52F7 +:1006F0004147450D11902053434F5231313D243035 +:10070000304432203B482E4F2E2053434F52452039 +:1007100053544F524147450D12002041435449560E +:10072000313D2430304434203B4E554D424552201B +:100730004F4620414354495645204152524F57534A +:100740002053544F524147450D1210204E43415201 +:1007500053313D2430304436203B4E554D424552B6 +:10076000204F462043415253204C45465420535479 +:100770004F524147450D1220204E53464952533D9A +:100780002430304438203B4E554D424552204F4690 +:100790002054494D45532046495245442041542058 +:1007A0005350454349414C205441524745540D1242 +:1007B00030204E504F4954533D2430304441203B6B +:1007C0004E554D424552204F4620504F494E5453AE +:1007D00020504552204152524F570D12402048534D +:1007E000434F524E3D2430304443203B4849474814 +:1007F0002053434F5245204E554D4245520D125005 +:00000001FF diff --git a/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl8a_1.bin b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl8a_1.bin new file mode 100644 index 00000000..6fdc46cb Binary files /dev/null and b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl8a_1.bin differ diff --git a/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl8a_1.hex b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl8a_1.hex new file mode 100644 index 00000000..2f80afe5 --- /dev/null +++ b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl8a_1.hex @@ -0,0 +1,129 @@ +:10000000A53E1007EA20F3294C2028A5B1C903908A +:100010000FEAC60EF006EAA9FF85B260A5B1850E0B +:10002000A63DA52D1003EA49FF8500A52C1003EA83 +:1000300049FFC500B012EAA52D1007EABDBB274C49 +:100040005628BDBF274C5628A52C1007EABDB3275C +:100050004C5628BDB727F004EA85B260A53E102BA8 +:10006000EAA51A290318653DC901F009EAC905F096 +:100070000EEA4C8B28A5302910D00BEA4C8B28A512 +:10008000302908F006EAA90385B260A90085B260AC +:10009000A98085B260A90185B260201425209A2923 +:1000A000A50C29184A4A4A853DA900850520002843 +:1000B000208525A5052901F00BEAA541C93AB0190B +:1000C000EA4CF924205825A5052906F00CEAC902B6 +:1000D000F004EA4C05264C2726209A25A505301F5A +:1000E000EA2918F017EAC908F00FEAC910F007EA80 +:1000F00020A4233004EA4C27264C05264CF924A5DD +:10010000052918F022EAC918F026EAA53E3040EA8F +:100110002055269012EA300FEAA5052918C908F0E3 +:100120000CEAC910F004EA4C74294C27264C052629 +:10013000A5B2F0F3C903F00DEAC901F0EDC980F0F2 +:10014000ECC902F0B720552690DD30DE4C2D29A5F4 +:10015000B2F0D4300DEAC901F011EAC902F09D4CA9 +:100160001929A5052910D0C54C2729A5052908D08E +:10017000B94C272920692660A000B110C921F018C8 +:10018000EAA50C2910D006EAA0204C8F29A001B1C5 +:1001900010C921F003EA18603860202C22A52D1028 +:1001A00003EA49FFC907B02FEAC902B007EAA53040 +:1001B00009108530A52C1003EA49FFC907B018EAD9 +:1001C000C902B007EAA53009088530A53E09808537 +:1001D0003EA901850F1860A5B1C904B008EAA53E83 +:1001E0000980853E60A53029E78530A53E297F85B9 +:1001F0003E3860A51A2903F010EAC901F01BEAC9CC +:1002000002F026EAE62A4C2B2AA92018652A852A1C +:10021000A52B6900852B4C2B2AA52A38E920852A95 +:10022000A52BE900852B4C2B2AC62A202F2260A85B +:100230004A4A4A4A4898290FA86860A000A20020AC +:10024000462AA001A218B9D0008503B9D2002060C7 +:100250002A60F81865BD85BD8503A5BE690085BE09 +:10026000206A2AA9309D2240D860206F2AA5032049 +:100270002F2A20762A9809309D2240E860A5BFC920 +:1002800001F006EAA2094C8B2AA200A964A4C19D30 +:100290002A40E888D0F960A53E2902D01DEAE6167A +:1002A0003002EA6020A4232947C940F006EAA900E9 +:1002B000851660A53E0902853E6020762E60A20765 +:1002C000B596950BCA10F9C60F1017EAA5B0C90864 +:1002D0009006EAA9024CDF2A49FF29071869022083 +:1002E000072DA207B50B9596CA10F924A71031EA7D +:1002F000240C302CEA240D3027EAA9EF20CA23244D +:100300003E3029EAA52DF024EAA52CF01FEAA530FD +:100310002918D018EAA9FE20CA23A90820CF2360F3 +:10032000A5A329F0091085A38D005260A9F720CA62 +:1003300023A90120CF2360A000A94385108511B90E +:10034000F82F8514C8B9F82F99140020FE226020D8 +:10035000632BA5A1D002EA60A002A90A8510A942D8 +:100360004C6B2BA000A9EB8510A9418511B9EE2F8C +:100370008514C8B9EE2F851520FE2260A969851065 +:10038000A9418511AD00512918D002EA60C918F0C1 +:100390000BEAC908F00BEAA0064CA32BA0004CA363 +:1003A0002BA002B9E42F8514C8B9E42F851520FECF +:1003B00022AD00512918C918D002EA60A97785102A +:1003C000C820002360AD05512918C910D009EAA53D +:1003D000A0C902B002EA60A5A1C999D002EA60F8FA +:1003E00018690185A1D8A90085A0A000A90C8510D5 +:1003F000A9408511B9F42F8514C8B9F42F851520AB +:10040000FE22A000B9F42F8514C8B9F42F8515A9D0 +:10041000408511A90C851020FE22A5A1202F2A09B4 +:10042000308D14409809308D154060A9718510A950 +:100430006E8511A4B1A20020A423290F9550E8A92C +:10044000089550E898F00AEA3007EAA900884C536A +:100450002CA9A09550E8A5B19550E8A91F9550E8A2 +:100460008A2901F00CEAA510E610E610E6104C7996 +:100470002CA511C611C611C6119550E8A94095507A +:10048000E8E04590B2A5B1C903B00DEAA918A201F0 +:100490009550A910A208955060A530297F85302479 +:1004A0003030F6A62FA000B9FA2F8532C8B9FA2F3E +:1004B00085338A4820BD2C68AACAD0F660A000B156 +:1004C00032990B00C8C007D0F620E62CA000B90B6B +:1004D000009132C8C007D0F6A5321869078532A549 +:1004E000336900853360C60F3002EA60A50D29200C +:1004F000F002EA60A5B1C904900AEAA900850EA934 +:10050000044C072D186528850F207829B043EAA5EB +:100510000C303EEA2940F004EA209A28A50C291064 +:10052000D006EAA9204C2A2DA9018504A50D294051 +:10053000D005EA20A32660A50C291F09C08503A0C9 +:10054000009110E603A503A4049110E60C20B32645 +:1005500060A50C3013EAA921207B2DA50C0980850C +:100560000CA90185BCC6B160A50D300EEAA50D0928 +:1005700080850DA000A920207B2D608503A000911F +:1005800010A50C2910D006EAA0204C8F2DA001A5A3 +:1005900003911060207324A520293F8521A531D027 +:1005A0000CEAA90085C2A51A09F0851A60C627D0F1 +:1005B00016EAE6C2207522A000B12AC920D009EAB5 +:1005C00020AE24A5268527608503A5C2C90690F024 +:1005D000A921912AA51A09F0851AA53009048530A8 +:1005E000A9008531A503C9C0B002EA60A53E299FD4 +:1005F000853EA90085B8A98085B920A42309C085B6 +:10060000B320AA2EA98085BCA53E29FD853EE6B073 +:1006100060A5B8C908B008EAA5970980859760A5C4 +:100620003E2920F002EA60A5B438E920859BA5B5F3 +:10063000E900859CA000B19BC920F002EA60C69B3E +:10064000B19BE69BC920F002EA60C8B19BC920F0CB +:1006500002EA6020A423290809128597A9438598F6 +:10066000A9048596A901859AA53E0920853EA98CF5 +:1006700085B920952E60A53E2920F002EA60C6B318 +:10068000F002EA60A92F85B3E6B8A5B9C990900534 +:10069000EAA98085B9A000209C2EA020A5B991B41C +:1006A000C8E6B9A5B991B4E6B960A94085B5A92055 +:1006B00085B420D92EAAA9601865B485B4A5B569FA +:1006C0000085B5CA10F020D92EAAA000C8C8C8CA93 +:1006D00010FA981865B485B46020A423290FC909BD +:1006E0009002EA4A60A2004CEC2EA201B5D085BD72 +:1006F000B5D285BEB5D485B1B5D685C1B5D885B0DE +:10070000B5DA85C360A2004C0C2FA201A5BD95D01F +:10071000A5BE95D2A5B195D4A5C195D6A5B095D8BD +:10072000A5C395DA603220504C41594552532031CF +:1007300020434F494E20003120504C415945522012 +:10074000203120434F494E20003220504C41594522 +:100750005253203220434F494E53003120504C41D8 +:1007600059455220203220434F494E5300322050E9 +:100770004C4159455253203420434F494E53004475 +:1007800045504F53495420434F494E004F5220503B +:100790005245535320535441525400424F4E5553E7 +:1007A000004352454449545300544F502054484943 +:1007B000532053434F524520464F522045585452E0 +:1007C0004120424F4E555300434F505952494748DC +:1007D0005420313938302042592045584944592055 +:1007E000494E4300252F372F492F5B2F6D2F7F2F29 +:1007F0008C2F9B2FA12FA92FC82F50000D118020C7 +:00000001FF diff --git a/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl9a_1.bin b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl9a_1.bin new file mode 100644 index 00000000..a688693d Binary files /dev/null and b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl9a_1.bin differ diff --git a/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl9a_1.hex b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl9a_1.hex new file mode 100644 index 00000000..c749afae --- /dev/null +++ b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/hrl9a_1.hex @@ -0,0 +1,129 @@ +:10000000AD0551C9FFD006EAA9008534608534A248 +:1000100004AD055105348534CAD0F649FF8534292D +:1000200010F00BEAA5358536A53429EF853560A596 +:10003000302960D006EAA916853860C6383002EA51 +:1000400060A5302920D00DEAA53A209320A53029BB +:10005000BF85306020A4232901AAA51CF012EAA5BF +:100060001DF007EABDAD274C7E20BDAB274C7E209E +:10007000A51DF007EABDAF274C7E20BDB127209318 +:1000800020A530299F853060A53429EFD005EA20CE +:10009000252260C920F053EAC940F077EAC904D0AC +:1000A00004EA4C3E21C908D004EA4C692160A5311C +:1000B000F002EA60A5342910D002EA60A90C85A4F8 +:1000C000A9018531A90285268527A51A0A0A0A0AE7 +:1000D00009408500A51A290F0500851AA51C85224F +:1000E000A51D852320D9214C6D24A51FF013EA30CE +:1000F00004EA4CF421A520293FC90AB00BEA4C0AB6 +:100100002220A121B002EA60A901851FA900851E55 +:100110004C9121A51FF013EA1004EA4CF421A5200C +:10012000293FC90AB00BEA4C0A2220A121B002EAF9 +:1001300060A9FE851FA900851EA9014C9121A51E5D +:10014000F013EA1004EA4CF421A520293FC90AB0B3 +:100150000BEA4C0A2220A921B002EA60A9FE851E02 +:10016000A900851FA9024C9121A51EF013EA3004B5 +:10017000EA4CF421A520293FC90AB00BEA4C0A2217 +:1001800020A921B002EA60A901851EA900851FA946 +:100190000348A51A29F0851A68051A851A206D24C6 +:1001A00060A51CF022EA4CAE21A51DF01AEA8501DB +:1001B000A20AA9008500C501F00DEAA9181865007A +:1001C0008500CAD0F11860A539853AA53429EF8594 +:1001D00039A53029BF85303860A51E20E821852447 +:1001E000A51F20E821852560F006EA3004EAA9026F +:1001F00060A9FD60A5201002EA60A536C535D009CA +:10020000EAA52029BF0980852060A5202940F002A9 +:10021000EA60A536C535D0F1A520297F09408520A3 +:10022000A53C852E60A520293F852060206A22A557 +:1002300010291F8500A52A291F38E500852DA51145 +:100240008519A5108518205C228500A52B8519A588 +:100250002A8518205C2238E500852C60A2056619E5 +:100260006618CAD0F9A518291F60A51D8518A51CF8 +:1002700085194C7D22A5238518A5228519A90085FD +:100280002BA51849FF4A4A4A186901E904852A182A +:10029000652A852AA204062A262BCAD0F9A52A692E +:1002A00060852AA52B6940852BA51949FF4A4A4A32 +:1002B00018690138E90318652A852A60A9008514A0 +:1002C000A9488515A000B9FC278518C8B9FC278561 +:1002D00019A20820E9226020E022E619CAD0F860BD +:1002E000A000989118C8D0FB6020F422E615E6190A +:1002F000CAD0F660A000B1189114C8D0F960A0006F +:10030000B114D002EA609110C84C0023A9604C18C7 +:1003100023A9404C1823A9201865108510A5116940 +:1003200000851160A9604C3023A9404C3023A920DE +:10033000850038A510E5008510A511E9008511603C +:10034000205923A8A204205123E611CAD0F860A0A6 +:1003500020A920889110D0FB60A940D00DEAA941C6 +:10036000D008EAA942D003EAA9438511A900851063 +:1003700060A5B1C5A8D007EAA99F20CA236085A8B7 +:10038000A96020CF2360208923208C23208F23A9DC +:100390000085168517E616E617A926C517D0F8C5F5 +:1003A00016D0F2609848A023A509F011EA2960C987 +:1003B00020F00AEAC940F005EA189002EA38260857 +:1003C000260988D0E368A8A5086025A34CD1230599 +:1003D000A385A38D005260AD005149FF29604A4AB0 +:1003E0004A4A4AAABDC32785C160A9018D6B42A9AB +:1003F0006D8510A9428511A000B9FA278514C8B9E6 +:10040000FA27851520FE2260A9EF8510A9428511E3 +:10041000A000B9F6278514C8B9F627851520FE2255 +:1004200060A000A9108D0052A9EE8D0051A90D8584 +:1004300010A9428511B9F8278514C8B9F827851580 +:1004400020FE22A9438510C8200023A5BF09308DB6 +:10045000554220862320862360A51C8D0050A51DB3 +:100460008D4050A5228D8050A5238DC050A51A8D9A +:10047000005160A51EF024EA18651C690020CE24F6 +:10048000851CB002EA60A5302940D008EAA53009F1 +:1004900040853060A5300920853060A51FD002EA74 +:1004A0006018651D690020CE24851DB0D960A52483 +:1004B000F00BEA186522690020DF248522A525D0EB +:1004C00002EA60186523690020DF24852360C9FCE7 +:1004D000B007EAC9D8B005EA60A90060A9D860C928 +:1004E000FCB007EAC9DAB002EA608500A51A09F093 +:1004F000851AA9008531A50060A50C291849088531 +:100500000C60A5108506A511850760A5068510A5B8 +:1005100007851160200225A50C2918AAC908F00931 +:10052000EAC910F00CEA202423A9032030234C341C +:10053000252024238A0AAAA9008500BC5727F01485 +:10054000EAB1108601A600297F9541E88600A60140 +:10055000E84C3B25200B2560A541C960B002EA604C +:10056000A54BC960B013EAA54AC960B002EA60C9E8 +:10057000209019EAA9044C8025C920900FEAA9020D +:100580000505850560A541C920F008EAA505090112 +:10059000850560A5050980850560A54AC920D007A5 +:1005A000EAA50509108505A54BC920D007EAA505D0 +:1005B0000908850560A54AC9209025EAA54BC920F0 +:1005C000901EEAA54CC9209017EAA54DC9209010AD +:1005D000EAA545C9209009EAA549C9209002EA6028 +:1005E000A5050940850560A541C920D002EA60A59E +:1005F00043C920D009EAA547C920D002EA60A50571 +:100600000920850560206426A63DBD9727850CBC82 +:100610009F27209E26BDA727201823A53DC903F0AC +:1006200002EA60202E2360206426A63DBD9B27851C +:100630000CBCA327209E26A53DC903F017EAC901DB +:10064000F009EAC902F008EAC6106020162360E645 +:1006500010202E2360C60B3003EA18602064262089 +:10066000A4233860A904850B60A50C2918850CF01B +:100670001CEAC908F00EEAC910F01BEAA001209E8E +:1006800026C61060A000209E2620162360A02020F1 +:100690009E26202E2360A000209E26E61060A92022 +:1006A000911060A50C291FA0009110E60CA50C2943 +:1006B0001FA4049110A50C2907C907F004EAE60C51 +:1006C00060A50C0940850C60200027205923A980D3 +:1006D0008510A209A9BA20E826201623A9BC20E883 +:1006E00026201123CAD0ED60A00385038504E6040B +:1006F000A5039110C8A5049110C8C8C01D90F16051 +:10070000205923A9428510A960203D27206823A9EC +:10071000E28510A961203D27205923A9608510A9F1 +:1007200063204327205923A9618510A96220482707 +:10073000205923A9618510A96220432760A01C20AD +:10074000532360A01E4C4A27A000A21C91104820F1 +:10075000162368CAD0F6604342234441220324454D +:10076000626461656066004344634245648362413C +:10077000242225212620006242638222436483A230 +:10078000418121A101610062826142A28160412216 +:100790008343A323C3030010180800181000082087 +:1007A00000000120000001001F0100042040040897 +:1007B00040200800020180020080010180020080C8 +:1007C00001000202030405454E44204F46204741E4 +:1007D0004D4500544152470047455420524541443D +:1007E0005900504C415945522020200031302050B2 +:1007F0004F494E545300D327D827EC2700382020E8 +:00000001FF diff --git a/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/prom5c.bin b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/prom5c.bin new file mode 100644 index 00000000..438ed0e4 --- /dev/null +++ b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/prom5c.bin @@ -0,0 +1 @@ +  \ No newline at end of file diff --git a/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/prom5c.hex b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/prom5c.hex new file mode 100644 index 00000000..31b8728c --- /dev/null +++ b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/prom5c.hex @@ -0,0 +1,17 @@ +:10000000010101010F0F0F0F0F0F0F0F0F0F0F0F38 +:100010000F0F0F0F0F0F0F0F030303030303030350 +:1000200003030303030303030303030303030303A0 +:100030000303030303030303030303030303030390 +:10004000050505050F0F0F0F050505050505050538 +:1000500007090B0F0F0F0F0F0F0F0F0F0F0F0F0FC2 +:100060000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0FA0 +:100070000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F90 +:100080000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F80 +:100090000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F70 +:1000A0000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F60 +:1000B0000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F50 +:1000C0000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F40 +:1000D0000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F30 +:1000E0000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F20 +:1000F0000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F031C +:00000001FF diff --git a/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/swap.exe b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/swap.exe new file mode 100644 index 00000000..206d6afc Binary files /dev/null and b/Arcade_MiST/Exidy-6502 Hardware/rtl/rom/swap.exe differ diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/Release/SpaceLaser.rbf b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/Release/SpaceLaser.rbf new file mode 100644 index 00000000..359da4f8 Binary files /dev/null and b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/Release/SpaceLaser.rbf differ diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/Release/SuperEarthInvasion.rbf b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/Release/SuperEarthInvasion.rbf index 33cae276..77a26b1b 100644 Binary files a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/Release/SuperEarthInvasion.rbf and b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/Release/SuperEarthInvasion.rbf differ diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/doc/Midway 8080 Test.pdf b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/doc/Midway 8080 Test.pdf new file mode 100644 index 00000000..ca68c630 Binary files /dev/null and b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/doc/Midway 8080 Test.pdf differ diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/T80.vhd b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/T80/T80.vhd similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/T80.vhd rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/T80/T80.vhd diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/T8080se.vhd b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/T80/T8080se.vhd similarity index 99% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/T8080se.vhd rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/T80/T8080se.vhd index b18b47a4..65b92d54 100644 --- a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/T8080se.vhd +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/T80/T8080se.vhd @@ -81,7 +81,7 @@ entity T8080se is CLKEN : in std_logic; READY : in std_logic; HOLD : in std_logic; - INT : in std_logic; + INT : in std_logic; INTE : out std_logic; DBIN : out std_logic; SYNC : out std_logic; diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/T80_ALU.vhd b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/T80/T80_ALU.vhd similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/T80_ALU.vhd rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/T80/T80_ALU.vhd diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/T80_MCode.vhd b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/T80/T80_MCode.vhd similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/T80_MCode.vhd rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/T80/T80_MCode.vhd diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/T80_Pack.vhd b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/T80/T80_Pack.vhd similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/T80_Pack.vhd rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/T80/T80_Pack.vhd diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/T80_Reg.vhd b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/T80/T80_Reg.vhd similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/T80_Reg.vhd rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/T80/T80_Reg.vhd diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/cpu68.vhd b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/cpu68.vhd new file mode 100644 index 00000000..016bd9a9 --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/cpu68.vhd @@ -0,0 +1,3963 @@ +--===========================================================================-- +-- +-- S Y N T H E Z I A B L E CPU68 C O R E +-- +-- www.OpenCores.Org - December 2002 +-- This core adheres to the GNU public license +-- +-- File name : cpu68.vhd +-- +-- Purpose : Implements a 6800 compatible CPU core with some +-- additional instructions found in the 6801 +-- +-- Dependencies : ieee.Std_Logic_1164 +-- ieee.std_logic_unsigned +-- +-- Author : John E. Kent +-- +--===========================================================================---- +-- +-- Revision History: +-- +-- Date: Revision Author +-- 22 Sep 2002 0.1 John Kent +-- +-- 30 Oct 2002 0.2 John Kent +-- made NMI edge triggered +-- +-- 30 Oct 2002 0.3 John Kent +-- more corrections to NMI +-- added wai_wait_state to prevent stack overflow on wai. +-- +-- 1 Nov 2002 0.4 John Kent +-- removed WAI states and integrated WAI with the interrupt service routine +-- replace Data out (do) and Data in (di) register with a single Memory Data (md) reg. +-- Added Multiply instruction states. +-- run ALU and CC out of CPU module for timing measurements. +-- +-- 3 Nov 2002 0.5 John Kent +-- Memory Data Register was not loaded on Store instructions +-- SEV and CLV were not defined in the ALU +-- Overflow Flag on NEG was incorrect +-- +-- 16th Feb 2003 0.6 John Kent +-- Rearranged the execution cycle for dual operand instructions +-- so that occurs during the following fetch cycle. +-- This allows the reduction of one clock cycle from dual operand +-- instruction. Note that this also necessitated re-arranging the +-- program counter so that it is no longer incremented in the ALU. +-- The effective address has also been re-arranged to include a +-- separate added. The STD (store accd) now sets the condition codes. +-- +-- 28th Jun 2003 0.7 John Kent +-- Added Hold and Halt signals. Hold is used to steal cycles from the +-- CPU or add wait states. Halt puts the CPU in the inactive state +-- and is only honoured in the fetch cycle. Both signals are active high. +-- +-- 9th Jan 2004 0.8 John Kent +-- Clear instruction did an alu_ld8 rather than an alu_clr, so +-- the carry bit was not cleared correctly. +-- This error was picked up by Michael Hassenfratz. +-- + +library ieee; +use IEEE.STD_LOGIC_1164.ALL; +use IEEE.STD_LOGIC_ARITH.ALL; +use IEEE.STD_LOGIC_UNSIGNED.ALL; + +entity cpu68 is + port ( + clk: in std_logic; + rst: in std_logic; + rw: out std_logic; + vma: out std_logic; + address: out std_logic_vector(15 downto 0); + data_in: in std_logic_vector(7 downto 0); + data_out: out std_logic_vector(7 downto 0); + hold: in std_logic; + halt: in std_logic; + irq: in std_logic; + nmi: in std_logic; + test_alu: out std_logic_vector(15 downto 0); + test_cc: out std_logic_vector(7 downto 0) + ); +end; + +architecture CPU_ARCH of cpu68 is + + constant SBIT : integer := 7; + constant XBIT : integer := 6; + constant HBIT : integer := 5; + constant IBIT : integer := 4; + constant NBIT : integer := 3; + constant ZBIT : integer := 2; + constant VBIT : integer := 1; + constant CBIT : integer := 0; + + type state_type is (reset_state, fetch_state, decode_state, + extended_state, indexed_state, read8_state, read16_state, immediate16_state, + write8_state, write16_state, + execute_state, halt_state, error_state, + mul_state, mulea_state, muld_state, + mul0_state, mul1_state, mul2_state, mul3_state, + mul4_state, mul5_state, mul6_state, mul7_state, + jmp_state, jsr_state, jsr1_state, + branch_state, bsr_state, bsr1_state, + rts_hi_state, rts_lo_state, + int_pcl_state, int_pch_state, + int_ixl_state, int_ixh_state, + int_cc_state, int_acca_state, int_accb_state, + int_wai_state, int_mask_state, + rti_state, rti_cc_state, rti_acca_state, rti_accb_state, + rti_ixl_state, rti_ixh_state, + rti_pcl_state, rti_pch_state, + pula_state, psha_state, pulb_state, pshb_state, + pulx_lo_state, pulx_hi_state, pshx_lo_state, pshx_hi_state, + vect_lo_state, vect_hi_state ); + type addr_type is (idle_ad, fetch_ad, read_ad, write_ad, push_ad, pull_ad, int_hi_ad, int_lo_ad ); + type dout_type is (md_lo_dout, md_hi_dout, acca_dout, accb_dout, ix_lo_dout, ix_hi_dout, cc_dout, pc_lo_dout, pc_hi_dout ); + type op_type is (reset_op, fetch_op, latch_op ); + type acca_type is (reset_acca, load_acca, load_hi_acca, pull_acca, latch_acca ); + type accb_type is (reset_accb, load_accb, pull_accb, latch_accb ); + type cc_type is (reset_cc, load_cc, pull_cc, latch_cc ); + type ix_type is (reset_ix, load_ix, pull_lo_ix, pull_hi_ix, latch_ix ); + type sp_type is (reset_sp, latch_sp, load_sp ); + type pc_type is (reset_pc, latch_pc, load_ea_pc, add_ea_pc, pull_lo_pc, pull_hi_pc, inc_pc ); + type md_type is (reset_md, latch_md, load_md, fetch_first_md, fetch_next_md, shiftl_md ); + type ea_type is (reset_ea, latch_ea, add_ix_ea, load_accb_ea, inc_ea, fetch_first_ea, fetch_next_ea ); + type iv_type is (reset_iv, latch_iv, swi_iv, nmi_iv, irq_iv ); + type nmi_type is (reset_nmi, set_nmi, latch_nmi ); + type left_type is (acca_left, accb_left, accd_left, md_left, ix_left, sp_left ); + type right_type is (md_right, zero_right, plus_one_right, accb_right ); + type alu_type is (alu_add8, alu_sub8, alu_add16, alu_sub16, alu_adc, alu_sbc, + alu_and, alu_ora, alu_eor, + alu_tst, alu_inc, alu_dec, alu_clr, alu_neg, alu_com, + alu_inx, alu_dex, alu_cpx, + alu_lsr16, alu_lsl16, + alu_ror8, alu_rol8, + alu_asr8, alu_asl8, alu_lsr8, + alu_sei, alu_cli, alu_sec, alu_clc, alu_sev, alu_clv, alu_tpa, alu_tap, + alu_ld8, alu_st8, alu_ld16, alu_st16, alu_nop, alu_daa ); + + signal op_code: std_logic_vector(7 downto 0); + signal acca: std_logic_vector(7 downto 0); + signal accb: std_logic_vector(7 downto 0); + signal cc: std_logic_vector(7 downto 0); + signal cc_out: std_logic_vector(7 downto 0); + signal xreg: std_logic_vector(15 downto 0); + signal sp: std_logic_vector(15 downto 0); + signal ea: std_logic_vector(15 downto 0); + signal pc: std_logic_vector(15 downto 0); + signal md: std_logic_vector(15 downto 0); + signal left: std_logic_vector(15 downto 0); + signal right: std_logic_vector(15 downto 0); + signal out_alu: std_logic_vector(15 downto 0); + signal iv: std_logic_vector(1 downto 0); + signal nmi_req: std_logic; + signal nmi_ack: std_logic; + + signal state: state_type; + signal next_state: state_type; + signal pc_ctrl: pc_type; + signal ea_ctrl: ea_type; + signal op_ctrl: op_type; + signal md_ctrl: md_type; + signal acca_ctrl: acca_type; + signal accb_ctrl: accb_type; + signal ix_ctrl: ix_type; + signal cc_ctrl: cc_type; + signal sp_ctrl: sp_type; + signal iv_ctrl: iv_type; + signal left_ctrl: left_type; + signal right_ctrl: right_type; + signal alu_ctrl: alu_type; + signal addr_ctrl: addr_type; + signal dout_ctrl: dout_type; + signal nmi_ctrl: nmi_type; + + +begin + +---------------------------------- +-- +-- Address bus multiplexer +-- +---------------------------------- + +addr_mux: process( clk, addr_ctrl, pc, ea, sp, iv ) +begin + case addr_ctrl is + when idle_ad => + address <= "1111111111111111"; + vma <= '0'; + rw <= '1'; + when fetch_ad => + address <= pc; + vma <= '1'; + rw <= '1'; + when read_ad => + address <= ea; + vma <= '1'; + rw <= '1'; + when write_ad => + address <= ea; + vma <= '1'; + rw <= '0'; + when push_ad => + address <= sp; + vma <= '1'; + rw <= '0'; + when pull_ad => + address <= sp; + vma <= '1'; + rw <= '1'; + when int_hi_ad => + address <= "1111111111111" & iv & "0"; + vma <= '1'; + rw <= '1'; + when int_lo_ad => + address <= "1111111111111" & iv & "1"; + vma <= '1'; + rw <= '1'; + when others => + address <= "1111111111111111"; + vma <= '0'; + rw <= '1'; + end case; +end process; + +-------------------------------- +-- +-- Data Bus output +-- +-------------------------------- +dout_mux : process( clk, dout_ctrl, md, acca, accb, xreg, pc, cc ) +begin + case dout_ctrl is + when md_hi_dout => -- alu output + data_out <= md(15 downto 8); + when md_lo_dout => + data_out <= md(7 downto 0); + when acca_dout => -- accumulator a + data_out <= acca; + when accb_dout => -- accumulator b + data_out <= accb; + when ix_lo_dout => -- index reg + data_out <= xreg(7 downto 0); + when ix_hi_dout => -- index reg + data_out <= xreg(15 downto 8); + when cc_dout => -- condition codes + data_out <= cc; + when pc_lo_dout => -- low order pc + data_out <= pc(7 downto 0); + when pc_hi_dout => -- high order pc + data_out <= pc(15 downto 8); + when others => + data_out <= "00000000"; + end case; +end process; + + +---------------------------------- +-- +-- Program Counter Control +-- +---------------------------------- + +pc_mux: process( clk, pc_ctrl, pc, out_alu, data_in, ea, hold ) +variable tempof : std_logic_vector(15 downto 0); +variable temppc : std_logic_vector(15 downto 0); +begin + case pc_ctrl is + when add_ea_pc => + if ea(7) = '0' then + tempof := "00000000" & ea(7 downto 0); + else + tempof := "11111111" & ea(7 downto 0); + end if; + when inc_pc => + tempof := "0000000000000001"; + when others => + tempof := "0000000000000000"; + end case; + + case pc_ctrl is + when reset_pc => + temppc := "1111111111111110"; + when load_ea_pc => + temppc := ea; + when pull_lo_pc => + temppc(7 downto 0) := data_in; + temppc(15 downto 8) := pc(15 downto 8); + when pull_hi_pc => + temppc(7 downto 0) := pc(7 downto 0); + temppc(15 downto 8) := data_in; + when others => + temppc := pc; + end case; + + if clk'event and clk = '0' then + if hold = '1' then + pc <= pc; + else + pc <= temppc + tempof; + end if; + end if; +end process; + +---------------------------------- +-- +-- Effective Address Control +-- +---------------------------------- + +ea_mux: process( clk, ea_ctrl, ea, out_alu, data_in, accb, xreg, hold ) +variable tempind : std_logic_vector(15 downto 0); +variable tempea : std_logic_vector(15 downto 0); +begin + case ea_ctrl is + when add_ix_ea => + tempind := "00000000" & ea(7 downto 0); + when inc_ea => + tempind := "0000000000000001"; + when others => + tempind := "0000000000000000"; + end case; + + case ea_ctrl is + when reset_ea => + tempea := "0000000000000000"; + when load_accb_ea => + tempea := "00000000" & accb(7 downto 0); + when add_ix_ea => + tempea := xreg; + when fetch_first_ea => + tempea(7 downto 0) := data_in; + tempea(15 downto 8) := "00000000"; + when fetch_next_ea => + tempea(7 downto 0) := data_in; + tempea(15 downto 8) := ea(7 downto 0); + when others => + tempea := ea; + end case; + + if clk'event and clk = '0' then + if hold = '1' then + ea <= ea; + else + ea <= tempea + tempind; + end if; + end if; +end process; + +-------------------------------- +-- +-- Accumulator A +-- +-------------------------------- +acca_mux : process( clk, acca_ctrl, out_alu, acca, data_in, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + acca <= acca; + else + case acca_ctrl is + when reset_acca => + acca <= "00000000"; + when load_acca => + acca <= out_alu(7 downto 0); + when load_hi_acca => + acca <= out_alu(15 downto 8); + when pull_acca => + acca <= data_in; + when others => +-- when latch_acca => + acca <= acca; + end case; + end if; + end if; +end process; + +-------------------------------- +-- +-- Accumulator B +-- +-------------------------------- +accb_mux : process( clk, accb_ctrl, out_alu, accb, data_in, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + accb <= accb; + else + case accb_ctrl is + when reset_accb => + accb <= "00000000"; + when load_accb => + accb <= out_alu(7 downto 0); + when pull_accb => + accb <= data_in; + when others => +-- when latch_accb => + accb <= accb; + end case; + end if; + end if; +end process; + +-------------------------------- +-- +-- X Index register +-- +-------------------------------- +ix_mux : process( clk, ix_ctrl, out_alu, xreg, data_in, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + xreg <= xreg; + else + case ix_ctrl is + when reset_ix => + xreg <= "0000000000000000"; + when load_ix => + xreg <= out_alu(15 downto 0); + when pull_hi_ix => + xreg(15 downto 8) <= data_in; + when pull_lo_ix => + xreg(7 downto 0) <= data_in; + when others => +-- when latch_ix => + xreg <= xreg; + end case; + end if; + end if; +end process; + +-------------------------------- +-- +-- stack pointer +-- +-------------------------------- +sp_mux : process( clk, sp_ctrl, out_alu, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + sp <= sp; + else + case sp_ctrl is + when reset_sp => + sp <= "0000000000000000"; + when load_sp => + sp <= out_alu(15 downto 0); + when others => +-- when latch_sp => + sp <= sp; + end case; + end if; + end if; +end process; + +-------------------------------- +-- +-- Memory Data +-- +-------------------------------- +md_mux : process( clk, md_ctrl, out_alu, data_in, md, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + md <= md; + else + case md_ctrl is + when reset_md => + md <= "0000000000000000"; + when load_md => + md <= out_alu(15 downto 0); + when fetch_first_md => + md(15 downto 8) <= "00000000"; + md(7 downto 0) <= data_in; + when fetch_next_md => + md(15 downto 8) <= md(7 downto 0); + md(7 downto 0) <= data_in; + when shiftl_md => + md(15 downto 1) <= md(14 downto 0); + md(0) <= '0'; + when others => +-- when latch_md => + md <= md; + end case; + end if; + end if; +end process; + + +---------------------------------- +-- +-- Condition Codes +-- +---------------------------------- + +cc_mux: process( clk, cc_ctrl, cc_out, cc, data_in, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + cc <= cc; + else + case cc_ctrl is + when reset_cc => + cc <= "11000000"; + when load_cc => + cc <= cc_out; + when pull_cc => + cc <= data_in; + when others => +-- when latch_cc => + cc <= cc; + end case; + end if; + end if; +end process; + +---------------------------------- +-- +-- interrupt vector +-- +---------------------------------- + +iv_mux: process( clk, iv_ctrl, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + iv <= iv; + else + case iv_ctrl is + when reset_iv => + iv <= "11"; + when nmi_iv => + iv <= "10"; + when swi_iv => + iv <= "01"; + when irq_iv => + iv <= "00"; + when others => + iv <= iv; + end case; + end if; + end if; +end process; + +---------------------------------- +-- +-- op code fetch +-- +---------------------------------- + +op_fetch: process( clk, data_in, op_ctrl, op_code, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + op_code <= op_code; + else + case op_ctrl is + when reset_op => + op_code <= "00000001"; -- nop + when fetch_op => + op_code <= data_in; + when others => +-- when latch_op => + op_code <= op_code; + end case; + end if; + end if; +end process; + +---------------------------------- +-- +-- Left Mux +-- +---------------------------------- + +left_mux: process( left_ctrl, acca, accb, xreg, sp, pc, ea, md ) +begin + case left_ctrl is + when acca_left => + left(15 downto 8) <= "00000000"; + left(7 downto 0) <= acca; + when accb_left => + left(15 downto 8) <= "00000000"; + left(7 downto 0) <= accb; + when accd_left => + left(15 downto 8) <= acca; + left(7 downto 0) <= accb; + when ix_left => + left <= xreg; + when sp_left => + left <= sp; + when others => +-- when md_left => + left <= md; + end case; +end process; +---------------------------------- +-- +-- Right Mux +-- +---------------------------------- + +right_mux: process( right_ctrl, data_in, md, accb, ea ) +begin + case right_ctrl is + when zero_right => + right <= "0000000000000000"; + when plus_one_right => + right <= "0000000000000001"; + when accb_right => + right <= "00000000" & accb; + when others => +-- when md_right => + right <= md; + end case; +end process; + +---------------------------------- +-- +-- Arithmetic Logic Unit +-- +---------------------------------- + +mux_alu: process( alu_ctrl, cc, left, right, out_alu, cc_out ) +variable valid_lo, valid_hi : boolean; +variable carry_in : std_logic; +variable daa_reg : std_logic_vector(7 downto 0); +begin + + case alu_ctrl is + when alu_adc | alu_sbc | + alu_rol8 | alu_ror8 => + carry_in := cc(CBIT); + when others => + carry_in := '0'; + end case; + + valid_lo := left(3 downto 0) <= 9; + valid_hi := left(7 downto 4) <= 9; + + if (cc(CBIT) = '0') then + if( cc(HBIT) = '1' ) then + if valid_hi then + daa_reg := "00000110"; + else + daa_reg := "01100110"; + end if; + else + if valid_lo then + if valid_hi then + daa_reg := "00000000"; + else + daa_reg := "01100000"; + end if; + else + if( left(7 downto 4) <= 8 ) then + daa_reg := "00000110"; + else + daa_reg := "01100110"; + end if; + end if; + end if; + else + if ( cc(HBIT) = '1' )then + daa_reg := "01100110"; + else + if valid_lo then + daa_reg := "01100000"; + else + daa_reg := "01100110"; + end if; + end if; + end if; + + case alu_ctrl is + when alu_add8 | alu_inc | + alu_add16 | alu_inx | + alu_adc => + out_alu <= left + right + ("000000000000000" & carry_in); + when alu_sub8 | alu_dec | + alu_sub16 | alu_dex | + alu_sbc | alu_cpx => + out_alu <= left - right - ("000000000000000" & carry_in); + when alu_and => + out_alu <= left and right; -- and/bit + when alu_ora => + out_alu <= left or right; -- or + when alu_eor => + out_alu <= left xor right; -- eor/xor + when alu_lsl16 | alu_asl8 | alu_rol8 => + out_alu <= left(14 downto 0) & carry_in; -- rol8/asl8/lsl16 + when alu_lsr16 | alu_lsr8 => + out_alu <= carry_in & left(15 downto 1); -- lsr + when alu_ror8 => + out_alu <= "00000000" & carry_in & left(7 downto 1); -- ror + when alu_asr8 => + out_alu <= "00000000" & left(7) & left(7 downto 1); -- asr + when alu_neg => + out_alu <= right - left; -- neg (right=0) + when alu_com => + out_alu <= not left; + when alu_clr | alu_ld8 | alu_ld16 => + out_alu <= right; -- clr, ld + when alu_st8 | alu_st16 => + out_alu <= left; + when alu_daa => + out_alu <= left + ("00000000" & daa_reg); + when alu_tpa => + out_alu <= "00000000" & cc; + when others => + out_alu <= left; -- nop + end case; + + -- + -- carry bit + -- + case alu_ctrl is + when alu_add8 | alu_adc => + cc_out(CBIT) <= (left(7) and right(7)) or + (left(7) and not out_alu(7)) or + (right(7) and not out_alu(7)); + when alu_sub8 | alu_sbc => + cc_out(CBIT) <= ((not left(7)) and right(7)) or + ((not left(7)) and out_alu(7)) or + (right(7) and out_alu(7)); + when alu_add16 => + cc_out(CBIT) <= (left(15) and right(15)) or + (left(15) and not out_alu(15)) or + (right(15) and not out_alu(15)); + when alu_sub16 => + cc_out(CBIT) <= ((not left(15)) and right(15)) or + ((not left(15)) and out_alu(15)) or + (right(15) and out_alu(15)); + when alu_ror8 | alu_lsr16 | alu_lsr8 | alu_asr8 => + cc_out(CBIT) <= left(0); + when alu_rol8 | alu_asl8 => + cc_out(CBIT) <= left(7); + when alu_lsl16 => + cc_out(CBIT) <= left(15); + when alu_com => + cc_out(CBIT) <= '1'; + when alu_neg | alu_clr => + cc_out(CBIT) <= out_alu(7) or out_alu(6) or out_alu(5) or out_alu(4) or + out_alu(3) or out_alu(2) or out_alu(1) or out_alu(0); + when alu_daa => + if ( daa_reg(7 downto 4) = "0110" ) then + cc_out(CBIT) <= '1'; + else + cc_out(CBIT) <= '0'; + end if; + when alu_sec => + cc_out(CBIT) <= '1'; + when alu_clc => + cc_out(CBIT) <= '0'; + when alu_tap => + cc_out(CBIT) <= left(CBIT); + when others => -- carry is not affected by cpx + cc_out(CBIT) <= cc(CBIT); + end case; + -- + -- Zero flag + -- + case alu_ctrl is + when alu_add8 | alu_sub8 | + alu_adc | alu_sbc | + alu_and | alu_ora | alu_eor | + alu_inc | alu_dec | + alu_neg | alu_com | alu_clr | + alu_rol8 | alu_ror8 | alu_asr8 | alu_asl8 | alu_lsr8 | + alu_ld8 | alu_st8 => + cc_out(ZBIT) <= not( out_alu(7) or out_alu(6) or out_alu(5) or out_alu(4) or + out_alu(3) or out_alu(2) or out_alu(1) or out_alu(0) ); + when alu_add16 | alu_sub16 | + alu_lsl16 | alu_lsr16 | + alu_inx | alu_dex | + alu_ld16 | alu_st16 | alu_cpx => + cc_out(ZBIT) <= not( out_alu(15) or out_alu(14) or out_alu(13) or out_alu(12) or + out_alu(11) or out_alu(10) or out_alu(9) or out_alu(8) or + out_alu(7) or out_alu(6) or out_alu(5) or out_alu(4) or + out_alu(3) or out_alu(2) or out_alu(1) or out_alu(0) ); + when alu_tap => + cc_out(ZBIT) <= left(ZBIT); + when others => + cc_out(ZBIT) <= cc(ZBIT); + end case; + + -- + -- negative flag + -- + case alu_ctrl is + when alu_add8 | alu_sub8 | + alu_adc | alu_sbc | + alu_and | alu_ora | alu_eor | + alu_rol8 | alu_ror8 | alu_asr8 | alu_asl8 | alu_lsr8 | + alu_inc | alu_dec | alu_neg | alu_com | alu_clr | + alu_ld8 | alu_st8 => + cc_out(NBIT) <= out_alu(7); + when alu_add16 | alu_sub16 | + alu_lsl16 | alu_lsr16 | + alu_ld16 | alu_st16 | alu_cpx => + cc_out(NBIT) <= out_alu(15); + when alu_tap => + cc_out(NBIT) <= left(NBIT); + when others => + cc_out(NBIT) <= cc(NBIT); + end case; + + -- + -- Interrupt mask flag + -- + case alu_ctrl is + when alu_sei => + cc_out(IBIT) <= '1'; -- set interrupt mask + when alu_cli => + cc_out(IBIT) <= '0'; -- clear interrupt mask + when alu_tap => + cc_out(IBIT) <= left(IBIT); + when others => + cc_out(IBIT) <= cc(IBIT); -- interrupt mask + end case; + + -- + -- Half Carry flag + -- + case alu_ctrl is + when alu_add8 | alu_adc => + cc_out(HBIT) <= (left(3) and right(3)) or + (right(3) and not out_alu(3)) or + (left(3) and not out_alu(3)); + when alu_tap => + cc_out(HBIT) <= left(HBIT); + when others => + cc_out(HBIT) <= cc(HBIT); + end case; + + -- + -- Overflow flag + -- + case alu_ctrl is + when alu_add8 | alu_adc => + cc_out(VBIT) <= (left(7) and right(7) and (not out_alu(7))) or + ((not left(7)) and (not right(7)) and out_alu(7)); + when alu_sub8 | alu_sbc => + cc_out(VBIT) <= (left(7) and (not right(7)) and (not out_alu(7))) or + ((not left(7)) and right(7) and out_alu(7)); + when alu_add16 => + cc_out(VBIT) <= (left(15) and right(15) and (not out_alu(15))) or + ((not left(15)) and (not right(15)) and out_alu(15)); + when alu_sub16 | alu_cpx => + cc_out(VBIT) <= (left(15) and (not right(15)) and (not out_alu(15))) or + ((not left(15)) and right(15) and out_alu(15)); + when alu_inc => + cc_out(VBIT) <= ((not left(7)) and left(6) and left(5) and left(4) and + left(3) and left(2) and left(1) and left(0)); + when alu_dec | alu_neg => + cc_out(VBIT) <= (left(7) and (not left(6)) and (not left(5)) and (not left(4)) and + (not left(3)) and (not left(2)) and (not left(1)) and (not left(0))); + when alu_asr8 => + cc_out(VBIT) <= left(0) xor left(7); + when alu_lsr8 | alu_lsr16 => + cc_out(VBIT) <= left(0); + when alu_ror8 => + cc_out(VBIT) <= left(0) xor cc(CBIT); + when alu_lsl16 => + cc_out(VBIT) <= left(15) xor left(14); + when alu_rol8 | alu_asl8 => + cc_out(VBIT) <= left(7) xor left(6); + when alu_tap => + cc_out(VBIT) <= left(VBIT); + when alu_and | alu_ora | alu_eor | alu_com | + alu_st8 | alu_st16 | alu_ld8 | alu_ld16 | + alu_clv => + cc_out(VBIT) <= '0'; + when alu_sev => + cc_out(VBIT) <= '1'; + when others => + cc_out(VBIT) <= cc(VBIT); + end case; + + case alu_ctrl is + when alu_tap => + cc_out(XBIT) <= cc(XBIT) and left(XBIT); + cc_out(SBIT) <= left(SBIT); + when others => + cc_out(XBIT) <= cc(XBIT) and left(XBIT); + cc_out(SBIT) <= cc(SBIT); + end case; + + test_alu <= out_alu; + test_cc <= cc_out; +end process; + +------------------------------------ +-- +-- Detect Edge of NMI interrupt +-- +------------------------------------ + +nmi_handler : process( clk, rst, nmi, nmi_ack ) +begin + if clk'event and clk='0' then + if hold = '1' then + nmi_req <= nmi_req; + else + if rst='1' then + nmi_req <= '0'; + else + if (nmi='1') and (nmi_ack='0') then + nmi_req <= '1'; + else + if (nmi='0') and (nmi_ack='1') then + nmi_req <= '0'; + else + nmi_req <= nmi_req; + end if; + end if; + end if; + end if; + end if; +end process; + +------------------------------------ +-- +-- Nmi mux +-- +------------------------------------ + +nmi_mux: process( clk, nmi_ctrl, nmi_ack, hold ) +begin + if clk'event and clk='0' then + if hold = '1' then + nmi_ack <= nmi_ack; + else + case nmi_ctrl is + when set_nmi => + nmi_ack <= '1'; + when reset_nmi => + nmi_ack <= '0'; + when others => +-- when latch_nmi => + nmi_ack <= nmi_ack; + end case; + end if; + end if; +end process; + +------------------------------------ +-- +-- state sequencer +-- +------------------------------------ +process( state, op_code, cc, ea, irq, nmi_req, nmi_ack, hold, halt ) + begin + case state is + when reset_state => -- released from reset + -- reset the registers + op_ctrl <= reset_op; + acca_ctrl <= reset_acca; + accb_ctrl <= reset_accb; + ix_ctrl <= reset_ix; + sp_ctrl <= reset_sp; + pc_ctrl <= reset_pc; + ea_ctrl <= reset_ea; + md_ctrl <= reset_md; + iv_ctrl <= reset_iv; + nmi_ctrl <= reset_nmi; + -- idle the ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= reset_cc; + -- idle the bus + dout_ctrl <= md_lo_dout; + addr_ctrl <= idle_ad; + next_state <= vect_hi_state; + + -- + -- Jump via interrupt vector + -- iv holds interrupt type + -- fetch PC hi from vector location + -- + when vect_hi_state => + -- default the registers + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + md_ctrl <= latch_md; + ea_ctrl <= latch_ea; + iv_ctrl <= latch_iv; + -- idle the ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- fetch pc low interrupt vector + pc_ctrl <= pull_hi_pc; + addr_ctrl <= int_hi_ad; + dout_ctrl <= pc_hi_dout; + next_state <= vect_lo_state; + -- + -- jump via interrupt vector + -- iv holds vector type + -- fetch PC lo from vector location + -- + when vect_lo_state => + -- default the registers + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + md_ctrl <= latch_md; + ea_ctrl <= latch_ea; + iv_ctrl <= latch_iv; + -- idle the ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- fetch the vector low byte + pc_ctrl <= pull_lo_pc; + addr_ctrl <= int_lo_ad; + dout_ctrl <= pc_lo_dout; + next_state <= fetch_state; + + -- + -- Here to fetch an instruction + -- PC points to opcode + -- Should service interrupt requests at this point + -- either from the timer + -- or from the external input. + -- + when fetch_state => + case op_code(7 downto 4) is + when "0000" | + "0001" | + "0010" | -- branch conditional + "0011" | + "0100" | -- acca single op + "0101" | -- accb single op + "0110" | -- indexed single op + "0111" => -- extended single op + -- idle ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + + when "1000" | -- acca immediate + "1001" | -- acca direct + "1010" | -- acca indexed + "1011" => -- acca extended + case op_code(3 downto 0) is + when "0000" => -- suba + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0001" => -- cmpa + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0010" => -- sbca + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sbc; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0011" => -- subd + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0100" => -- anda + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_and; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0101" => -- bita + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_and; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0110" => -- ldaa + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0111" => -- staa + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1000" => -- eora + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_eor; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1001" => -- adca + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_adc; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1010" => -- oraa + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ora; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1011" => -- adda + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1100" => -- cpx + left_ctrl <= ix_left; + right_ctrl <= md_right; + alu_ctrl <= alu_cpx; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1101" => -- bsr / jsr + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1110" => -- lds + left_ctrl <= sp_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + when "1111" => -- sts + left_ctrl <= sp_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st16; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when others => + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + end case; + when "1100" | -- accb immediate + "1101" | -- accb direct + "1110" | -- accb indexed + "1111" => -- accb extended + case op_code(3 downto 0) is + when "0000" => -- subb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0001" => -- cmpb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0010" => -- sbcb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sbc; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0011" => -- addd + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0100" => -- andb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_and; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0101" => -- bitb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_and; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0110" => -- ldab + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0111" => -- stab + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1000" => -- eorb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_eor; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1001" => -- adcb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_adc; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1010" => -- orab + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ora; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1011" => -- addb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1100" => -- ldd + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1101" => -- std + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st16; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1110" => -- ldx + left_ctrl <= ix_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= load_ix; + sp_ctrl <= latch_sp; + when "1111" => -- stx + left_ctrl <= ix_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st16; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when others => + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + end case; + when others => + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + end case; + md_ctrl <= latch_md; + -- fetch the op code + op_ctrl <= fetch_op; + ea_ctrl <= reset_ea; + addr_ctrl <= fetch_ad; + dout_ctrl <= md_lo_dout; + iv_ctrl <= latch_iv; + if halt = '1' then + pc_ctrl <= latch_pc; + nmi_ctrl <= latch_nmi; + next_state <= halt_state; + -- service non maskable interrupts + elsif (nmi_req = '1') and (nmi_ack = '0') then + pc_ctrl <= latch_pc; + nmi_ctrl <= set_nmi; + next_state <= int_pcl_state; + -- service maskable interrupts + else + -- + -- nmi request is not cleared until nmi input goes low + -- + if(nmi_req = '0') and (nmi_ack='1') then + nmi_ctrl <= reset_nmi; + else + nmi_ctrl <= latch_nmi; + end if; + -- + -- IRQ is level sensitive + -- + if (irq = '1') and (cc(IBIT) = '0') then + pc_ctrl <= latch_pc; + next_state <= int_pcl_state; + else + -- Advance the PC to fetch next instruction byte + pc_ctrl <= inc_pc; + next_state <= decode_state; + end if; + end if; + -- + -- Here to decode instruction + -- and fetch next byte of intruction + -- whether it be necessary or not + -- + when decode_state => + -- fetch first byte of address or immediate data + ea_ctrl <= fetch_first_ea; + addr_ctrl <= fetch_ad; + dout_ctrl <= md_lo_dout; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + iv_ctrl <= latch_iv; + case op_code(7 downto 4) is + when "0000" => + md_ctrl <= fetch_first_md; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + case op_code(3 downto 0) is + when "0001" => -- nop + left_ctrl <= accd_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "0100" => -- lsrd + left_ctrl <= accd_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_lsr16; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + when "0101" => -- lsld + left_ctrl <= accd_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_lsl16; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + when "0110" => -- tap + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_tap; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "0111" => -- tpa + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_tpa; + cc_ctrl <= latch_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "1000" => -- inx + left_ctrl <= ix_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_inx; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= load_ix; + when "1001" => -- dex + left_ctrl <= ix_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_dex; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= load_ix; + when "1010" => -- clv + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_clv; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "1011" => -- sev + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_sev; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "1100" => -- clc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_clc; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "1101" => -- sec + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_sec; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "1110" => -- cli + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_cli; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "1111" => -- sei + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_sei; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + end case; + next_state <= fetch_state; + -- acca / accb inherent instructions + when "0001" => + md_ctrl <= fetch_first_md; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + left_ctrl <= acca_left; + right_ctrl <= accb_right; + case op_code(3 downto 0) is + when "0000" => -- sba + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + when "0001" => -- cba + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + when "0110" => -- tab + alu_ctrl <= alu_st8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + when "0111" => -- tba + alu_ctrl <= alu_ld8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + when "1001" => -- daa + alu_ctrl <= alu_daa; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + when "1011" => -- aba + alu_ctrl <= alu_add8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + when others => + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end case; + next_state <= fetch_state; + when "0010" => -- branch conditional + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- increment the pc + pc_ctrl <= inc_pc; + case op_code(3 downto 0) is + when "0000" => -- bra + next_state <= branch_state; + when "0001" => -- brn + next_state <= fetch_state; + when "0010" => -- bhi + if (cc(CBIT) or cc(ZBIT)) = '0' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "0011" => -- bls + if (cc(CBIT) or cc(ZBIT)) = '1' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "0100" => -- bcc/bhs + if cc(CBIT) = '0' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "0101" => -- bcs/blo + if cc(CBIT) = '1' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "0110" => -- bne + if cc(ZBIT) = '0' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "0111" => -- beq + if cc(ZBIT) = '1' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1000" => -- bvc + if cc(VBIT) = '0' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1001" => -- bvs + if cc(VBIT) = '1' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1010" => -- bpl + if cc(NBIT) = '0' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1011" => -- bmi + if cc(NBIT) = '1' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1100" => -- bge + if (cc(NBIT) xor cc(VBIT)) = '0' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1101" => -- blt + if (cc(NBIT) xor cc(VBIT)) = '1' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1110" => -- bgt + if (cc(ZBIT) or (cc(NBIT) xor cc(VBIT))) = '0' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1111" => -- ble + if (cc(ZBIT) or (cc(NBIT) xor cc(VBIT))) = '1' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when others => + next_state <= fetch_state; + end case; + -- + -- Single byte stack operators + -- Do not advance PC + -- + when "0011" => + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + pc_ctrl <= latch_pc; + case op_code(3 downto 0) is + when "0000" => -- tsx + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= load_ix; + sp_ctrl <= latch_sp; + next_state <= fetch_state; + when "0001" => -- ins + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= fetch_state; + when "0010" => -- pula + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= pula_state; + when "0011" => -- pulb + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= pulb_state; + when "0100" => -- des + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= fetch_state; + when "0101" => -- txs + left_ctrl <= ix_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= fetch_state; + when "0110" => -- psha + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + next_state <= psha_state; + when "0111" => -- pshb + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + next_state <= pshb_state; + when "1000" => -- pulx + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= pulx_hi_state; + when "1001" => -- rts + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= rts_hi_state; + when "1010" => -- abx + left_ctrl <= ix_left; + right_ctrl <= accb_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= load_ix; + sp_ctrl <= latch_sp; + next_state <= fetch_state; + when "1011" => -- rti + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= rti_cc_state; + when "1100" => -- pshx + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + next_state <= pshx_lo_state; + when "1101" => -- mul + left_ctrl <= acca_left; + right_ctrl <= accb_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + next_state <= mul_state; + when "1110" => -- wai + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + next_state <= int_pcl_state; + when "1111" => -- swi + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + next_state <= int_pcl_state; + when others => + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + next_state <= fetch_state; + end case; + -- + -- Accumulator A Single operand + -- source = Acc A dest = Acc A + -- Do not advance PC + -- + when "0100" => -- acca single op + md_ctrl <= fetch_first_md; + accb_ctrl <= latch_accb; + pc_ctrl <= latch_pc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + left_ctrl <= acca_left; + case op_code(3 downto 0) is + when "0000" => -- neg + right_ctrl <= zero_right; + alu_ctrl <= alu_neg; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "0011" => -- com + right_ctrl <= zero_right; + alu_ctrl <= alu_com; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "0100" => -- lsr + right_ctrl <= zero_right; + alu_ctrl <= alu_lsr8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "0110" => -- ror + right_ctrl <= zero_right; + alu_ctrl <= alu_ror8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "0111" => -- asr + right_ctrl <= zero_right; + alu_ctrl <= alu_asr8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1000" => -- asl + right_ctrl <= zero_right; + alu_ctrl <= alu_asl8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1001" => -- rol + right_ctrl <= zero_right; + alu_ctrl <= alu_rol8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1010" => -- dec + right_ctrl <= plus_one_right; + alu_ctrl <= alu_dec; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1011" => -- undefined + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + acca_ctrl <= latch_acca; + cc_ctrl <= latch_cc; + when "1100" => -- inc + right_ctrl <= plus_one_right; + alu_ctrl <= alu_inc; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1101" => -- tst + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + acca_ctrl <= latch_acca; + cc_ctrl <= load_cc; + when "1110" => -- jmp + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + acca_ctrl <= latch_acca; + cc_ctrl <= latch_cc; + when "1111" => -- clr + right_ctrl <= zero_right; + alu_ctrl <= alu_clr; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when others => + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + acca_ctrl <= latch_acca; + cc_ctrl <= latch_cc; + end case; + next_state <= fetch_state; + -- + -- single operand acc b + -- Do not advance PC + -- + when "0101" => + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + pc_ctrl <= latch_pc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + left_ctrl <= accb_left; + case op_code(3 downto 0) is + when "0000" => -- neg + right_ctrl <= zero_right; + alu_ctrl <= alu_neg; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "0011" => -- com + right_ctrl <= zero_right; + alu_ctrl <= alu_com; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "0100" => -- lsr + right_ctrl <= zero_right; + alu_ctrl <= alu_lsr8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "0110" => -- ror + right_ctrl <= zero_right; + alu_ctrl <= alu_ror8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "0111" => -- asr + right_ctrl <= zero_right; + alu_ctrl <= alu_asr8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1000" => -- asl + right_ctrl <= zero_right; + alu_ctrl <= alu_asl8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1001" => -- rol + right_ctrl <= zero_right; + alu_ctrl <= alu_rol8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1010" => -- dec + right_ctrl <= plus_one_right; + alu_ctrl <= alu_dec; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1011" => -- undefined + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + accb_ctrl <= latch_accb; + cc_ctrl <= latch_cc; + when "1100" => -- inc + right_ctrl <= plus_one_right; + alu_ctrl <= alu_inc; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1101" => -- tst + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + accb_ctrl <= latch_accb; + cc_ctrl <= load_cc; + when "1110" => -- jmp + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + accb_ctrl <= latch_accb; + cc_ctrl <= latch_cc; + when "1111" => -- clr + right_ctrl <= zero_right; + alu_ctrl <= alu_clr; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when others => + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + accb_ctrl <= latch_accb; + cc_ctrl <= latch_cc; + end case; + next_state <= fetch_state; + -- + -- Single operand indexed + -- Two byte instruction so advance PC + -- EA should hold index offset + -- + when "0110" => -- indexed single op + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + next_state <= indexed_state; + -- + -- Single operand extended addressing + -- three byte instruction so advance the PC + -- Low order EA holds high order address + -- + when "0111" => -- extended single op + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + next_state <= extended_state; + + when "1000" => -- acca immediate + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + case op_code(3 downto 0) is + when "0011" | -- subdd # + "1100" | -- cpx # + "1110" => -- lds # + next_state <= immediate16_state; + when "1101" => -- bsr + next_state <= bsr_state; + when others => + next_state <= fetch_state; + end case; + + when "1001" => -- acca direct + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + pc_ctrl <= inc_pc; + case op_code(3 downto 0) is + when "0111" => -- staa direct + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1111" => -- sts direct + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when "1101" => -- jsr direct + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + next_state <= jsr_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + next_state <= read8_state; + end case; + + when "1010" => -- acca indexed + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + next_state <= indexed_state; + + when "1011" => -- acca extended + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + next_state <= extended_state; + + when "1100" => -- accb immediate + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + case op_code(3 downto 0) is + when "0011" | -- addd # + "1100" | -- ldd # + "1110" => -- ldx # + next_state <= immediate16_state; + when others => + next_state <= fetch_state; + end case; + + when "1101" => -- accb direct + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + pc_ctrl <= inc_pc; + case op_code(3 downto 0) is + when "0111" => -- stab direct + left_ctrl <= accb_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1101" => -- std direct + left_ctrl <= accd_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when "1111" => -- stx direct + left_ctrl <= ix_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + next_state <= read8_state; + end case; + + when "1110" => -- accb indexed + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + next_state <= indexed_state; + + when "1111" => -- accb extended + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + next_state <= extended_state; + + when others => + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- idle the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= latch_pc; + next_state <= fetch_state; + end case; + + when immediate16_state => + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + op_ctrl <= latch_op; + iv_ctrl <= latch_iv; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + -- fetch next immediate byte + md_ctrl <= fetch_next_md; + addr_ctrl <= fetch_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + -- + -- ea holds 8 bit index offet + -- calculate the effective memory address + -- using the alu + -- + when indexed_state => + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + -- calculate effective address from index reg + -- index offest is not sign extended + ea_ctrl <= add_ix_ea; + -- idle the bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + -- work out next state + case op_code(7 downto 4) is + when "0110" => -- single op indexed + md_ctrl <= latch_md; + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + case op_code(3 downto 0) is + when "1011" => -- undefined + next_state <= fetch_state; + when "1110" => -- jmp + next_state <= jmp_state; + when others => + next_state <= read8_state; + end case; + when "1010" => -- acca indexed + case op_code(3 downto 0) is + when "0111" => -- staa + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1101" => -- jsr + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= jsr_state; + when "1111" => -- sts + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= read8_state; + end case; + when "1110" => -- accb indexed + case op_code(3 downto 0) is + when "0111" => -- stab direct + left_ctrl <= accb_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1101" => -- std direct + left_ctrl <= accd_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when "1111" => -- stx direct + left_ctrl <= ix_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= read8_state; + end case; + when others => + md_ctrl <= latch_md; + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + next_state <= fetch_state; + end case; + -- + -- ea holds the low byte of the absolute address + -- Move ea low byte into ea high byte + -- load new ea low byte to for absolute 16 bit address + -- advance the program counter + -- + when extended_state => -- fetch ea low byte + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + -- increment pc + pc_ctrl <= inc_pc; + -- fetch next effective address bytes + ea_ctrl <= fetch_next_ea; + addr_ctrl <= fetch_ad; + dout_ctrl <= md_lo_dout; + -- work out the next state + case op_code(7 downto 4) is + when "0111" => -- single op extended + md_ctrl <= latch_md; + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + case op_code(3 downto 0) is + when "1011" => -- undefined + next_state <= fetch_state; + when "1110" => -- jmp + next_state <= jmp_state; + when others => + next_state <= read8_state; + end case; + when "1011" => -- acca extended + case op_code(3 downto 0) is + when "0111" => -- staa + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1101" => -- jsr + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= jsr_state; + when "1111" => -- sts + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= read8_state; + end case; + when "1111" => -- accb extended + case op_code(3 downto 0) is + when "0111" => -- stab + left_ctrl <= accb_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1101" => -- std + left_ctrl <= accd_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when "1111" => -- stx + left_ctrl <= ix_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= read8_state; + end case; + when others => + md_ctrl <= latch_md; + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + next_state <= fetch_state; + end case; + -- + -- here if ea holds low byte (direct page) + -- can enter here from extended addressing + -- read memory location + -- note that reads may be 8 or 16 bits + -- + when read8_state => -- read data + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + -- + addr_ctrl <= read_ad; + dout_ctrl <= md_lo_dout; + case op_code(7 downto 4) is + when "0110" | "0111" => -- single operand + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + ea_ctrl <= latch_ea; + next_state <= execute_state; + + when "1001" | "1010" | "1011" => -- acca + case op_code(3 downto 0) is + when "0011" | -- subd + "1110" | -- lds + "1100" => -- cpx + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + -- increment the effective address in case of 16 bit load + ea_ctrl <= inc_ea; + next_state <= read16_state; +-- when "0111" => -- staa +-- left_ctrl <= acca_left; +-- right_ctrl <= zero_right; +-- alu_ctrl <= alu_st8; +-- cc_ctrl <= latch_cc; +-- md_ctrl <= load_md; +-- ea_ctrl <= latch_ea; +-- next_state <= write8_state; +-- when "1101" => -- jsr +-- left_ctrl <= acca_left; +-- right_ctrl <= zero_right; +-- alu_ctrl <= alu_nop; +-- cc_ctrl <= latch_cc; +-- md_ctrl <= latch_md; +-- ea_ctrl <= latch_ea; +-- next_state <= jsr_state; +-- when "1111" => -- sts +-- left_ctrl <= sp_left; +-- right_ctrl <= zero_right; +-- alu_ctrl <= alu_st16; +-- cc_ctrl <= latch_cc; +-- md_ctrl <= load_md; +-- ea_ctrl <= latch_ea; +-- next_state <= write16_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + ea_ctrl <= latch_ea; + next_state <= fetch_state; + end case; + + when "1101" | "1110" | "1111" => -- accb + case op_code(3 downto 0) is + when "0011" | -- addd + "1100" | -- ldd + "1110" => -- ldx + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + -- increment the effective address in case of 16 bit load + ea_ctrl <= inc_ea; + next_state <= read16_state; +-- when "0111" => -- stab +-- left_ctrl <= accb_left; +-- right_ctrl <= zero_right; +-- alu_ctrl <= alu_st8; +-- cc_ctrl <= latch_cc; +-- md_ctrl <= load_md; +-- ea_ctrl <= latch_ea; +-- next_state <= write8_state; +-- when "1101" => -- std +-- left_ctrl <= accd_left; +-- right_ctrl <= zero_right; +-- alu_ctrl <= alu_st16; +-- cc_ctrl <= latch_cc; +-- md_ctrl <= load_md; +-- ea_ctrl <= latch_ea; +-- next_state <= write16_state; +-- when "1111" => -- stx +-- left_ctrl <= ix_left; +-- right_ctrl <= zero_right; +-- alu_ctrl <= alu_st16; +-- cc_ctrl <= latch_cc; +-- md_ctrl <= load_md; +-- ea_ctrl <= latch_ea; +-- next_state <= write16_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + ea_ctrl <= latch_ea; + next_state <= execute_state; + end case; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + ea_ctrl <= latch_ea; + next_state <= fetch_state; + end case; + + when read16_state => -- read second data byte from ea + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- idle the effective address + ea_ctrl <= latch_ea; + -- read the low byte of the 16 bit data + md_ctrl <= fetch_next_md; + addr_ctrl <= read_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + -- + -- 16 bit Write state + -- write high byte of ALU output. + -- EA hold address of memory to write to + -- Advance the effective address in ALU + -- + when write16_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + -- increment the effective address + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + ea_ctrl <= inc_ea; + -- write the ALU hi byte to ea + addr_ctrl <= write_ad; + dout_ctrl <= md_hi_dout; + next_state <= write8_state; + -- + -- 8 bit write + -- Write low 8 bits of ALU output + -- + when write8_state => + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- idle the ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- write ALU low byte output + addr_ctrl <= write_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + + when jmp_state => + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- load PC with effective address + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= load_ea_pc; + -- idle the bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + + when jsr_state => -- JSR + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write pc low + addr_ctrl <= push_ad; + dout_ctrl <= pc_lo_dout; + next_state <= jsr1_state; + + when jsr1_state => -- JSR + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write pc hi + addr_ctrl <= push_ad; + dout_ctrl <= pc_hi_dout; + next_state <= jmp_state; + + when branch_state => -- Bcc + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- calculate signed branch + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= add_ea_pc; + -- idle the bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + + when bsr_state => -- BSR + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write pc low + addr_ctrl <= push_ad; + dout_ctrl <= pc_lo_dout; + next_state <= bsr1_state; + + when bsr1_state => -- BSR + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write pc hi + addr_ctrl <= push_ad; + dout_ctrl <= pc_hi_dout; + next_state <= branch_state; + + when rts_hi_state => -- RTS + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment the sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- read pc hi + pc_ctrl <= pull_hi_pc; + addr_ctrl <= pull_ad; + dout_ctrl <= pc_hi_dout; + next_state <= rts_lo_state; + + when rts_lo_state => -- RTS1 + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- idle the ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- read pc low + pc_ctrl <= pull_lo_pc; + addr_ctrl <= pull_ad; + dout_ctrl <= pc_lo_dout; + next_state <= fetch_state; + + when mul_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- move acca to md + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mulea_state; + + when mulea_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + md_ctrl <= latch_md; + -- idle ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- move accb to ea + ea_ctrl <= load_accb_ea; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= muld_state; + + when muld_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + md_ctrl <= latch_md; + -- clear accd + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_ld8; + cc_ctrl <= latch_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul0_state; + + when mul0_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 0 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(0) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul1_state; + + when mul1_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 1 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(1) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul2_state; + + when mul2_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 2 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(2) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul3_state; + + when mul3_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 3 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(3) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul4_state; + + when mul4_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 4 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(4) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul5_state; + + when mul5_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 5 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(5) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul6_state; + + when mul6_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 6 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(6) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul7_state; + + when mul7_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 7 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(7) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + + when execute_state => -- execute single operand instruction + -- default + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + case op_code(7 downto 4) is + when "0110" | -- indexed single op + "0111" => -- extended single op + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + ea_ctrl <= latch_ea; + -- idle the bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + left_ctrl <= md_left; + case op_code(3 downto 0) is + when "0000" => -- neg + right_ctrl <= zero_right; + alu_ctrl <= alu_neg; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "0011" => -- com + right_ctrl <= zero_right; + alu_ctrl <= alu_com; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "0100" => -- lsr + right_ctrl <= zero_right; + alu_ctrl <= alu_lsr8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "0110" => -- ror + right_ctrl <= zero_right; + alu_ctrl <= alu_ror8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "0111" => -- asr + right_ctrl <= zero_right; + alu_ctrl <= alu_asr8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1000" => -- asl + right_ctrl <= zero_right; + alu_ctrl <= alu_asl8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1001" => -- rol + right_ctrl <= zero_right; + alu_ctrl <= alu_rol8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1010" => -- dec + right_ctrl <= plus_one_right; + alu_ctrl <= alu_dec; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1011" => -- undefined + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= fetch_state; + when "1100" => -- inc + right_ctrl <= plus_one_right; + alu_ctrl <= alu_inc; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1101" => -- tst + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= load_cc; + md_ctrl <= latch_md; + next_state <= fetch_state; + when "1110" => -- jmp + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= fetch_state; + when "1111" => -- clr + right_ctrl <= zero_right; + alu_ctrl <= alu_clr; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when others => + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= fetch_state; + end case; + + when others => + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + ea_ctrl <= latch_ea; + -- idle the bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + end case; + + when psha_state => + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write acca + addr_ctrl <= push_ad; + dout_ctrl <= acca_dout; + next_state <= fetch_state; + + when pula_state => + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- idle sp + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + sp_ctrl <= latch_sp; + -- read acca + acca_ctrl <= pull_acca; + addr_ctrl <= pull_ad; + dout_ctrl <= acca_dout; + next_state <= fetch_state; + + when pshb_state => + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write accb + addr_ctrl <= push_ad; + dout_ctrl <= accb_dout; + next_state <= fetch_state; + + when pulb_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- idle sp + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + sp_ctrl <= latch_sp; + -- read accb + accb_ctrl <= pull_accb; + addr_ctrl <= pull_ad; + dout_ctrl <= accb_dout; + next_state <= fetch_state; + + when pshx_lo_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write ix low + addr_ctrl <= push_ad; + dout_ctrl <= ix_lo_dout; + next_state <= pshx_hi_state; + + when pshx_hi_state => + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write ix hi + addr_ctrl <= push_ad; + dout_ctrl <= ix_hi_dout; + next_state <= fetch_state; + + when pulx_hi_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- pull ix hi + ix_ctrl <= pull_hi_ix; + addr_ctrl <= pull_ad; + dout_ctrl <= ix_hi_dout; + next_state <= pulx_lo_state; + + when pulx_lo_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- idle sp + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + sp_ctrl <= latch_sp; + -- read ix low + ix_ctrl <= pull_lo_ix; + addr_ctrl <= pull_ad; + dout_ctrl <= ix_lo_dout; + next_state <= fetch_state; + + -- + -- return from interrupt + -- enter here from bogus interrupts + -- + when rti_state => + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- idle address bus + cc_ctrl <= latch_cc; + addr_ctrl <= idle_ad; + dout_ctrl <= cc_dout; + next_state <= rti_cc_state; + + when rti_cc_state => + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read cc + cc_ctrl <= pull_cc; + addr_ctrl <= pull_ad; + dout_ctrl <= cc_dout; + next_state <= rti_accb_state; + + when rti_accb_state => + -- default registers + acca_ctrl <= latch_acca; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- read accb + accb_ctrl <= pull_accb; + addr_ctrl <= pull_ad; + dout_ctrl <= accb_dout; + next_state <= rti_acca_state; + + when rti_acca_state => + -- default registers + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- read acca + acca_ctrl <= pull_acca; + addr_ctrl <= pull_ad; + dout_ctrl <= acca_dout; + next_state <= rti_ixh_state; + + when rti_ixh_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- read ix hi + ix_ctrl <= pull_hi_ix; + addr_ctrl <= pull_ad; + dout_ctrl <= ix_hi_dout; + next_state <= rti_ixl_state; + + when rti_ixl_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- read ix low + ix_ctrl <= pull_lo_ix; + addr_ctrl <= pull_ad; + dout_ctrl <= ix_lo_dout; + next_state <= rti_pch_state; + + when rti_pch_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- pull pc hi + pc_ctrl <= pull_hi_pc; + addr_ctrl <= pull_ad; + dout_ctrl <= pc_hi_dout; + next_state <= rti_pcl_state; + + when rti_pcl_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- idle sp + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + sp_ctrl <= latch_sp; + -- pull pc low + pc_ctrl <= pull_lo_pc; + addr_ctrl <= pull_ad; + dout_ctrl <= pc_lo_dout; + next_state <= fetch_state; + + -- + -- here on interrupt + -- iv register hold interrupt type + -- + when int_pcl_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write pc low + addr_ctrl <= push_ad; + dout_ctrl <= pc_lo_dout; + next_state <= int_pch_state; + + when int_pch_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write pc hi + addr_ctrl <= push_ad; + dout_ctrl <= pc_hi_dout; + next_state <= int_ixl_state; + + when int_ixl_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write ix low + addr_ctrl <= push_ad; + dout_ctrl <= ix_lo_dout; + next_state <= int_ixh_state; + + when int_ixh_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write ix hi + addr_ctrl <= push_ad; + dout_ctrl <= ix_hi_dout; + next_state <= int_acca_state; + + when int_acca_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write acca + addr_ctrl <= push_ad; + dout_ctrl <= acca_dout; + next_state <= int_accb_state; + + + when int_accb_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write accb + addr_ctrl <= push_ad; + dout_ctrl <= accb_dout; + next_state <= int_cc_state; + + when int_cc_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write cc + addr_ctrl <= push_ad; + dout_ctrl <= cc_dout; + nmi_ctrl <= latch_nmi; + -- + -- nmi is edge triggered + -- nmi_req is cleared when nmi goes low. + -- + if nmi_req = '1' then + iv_ctrl <= nmi_iv; + next_state <= vect_hi_state; + else + -- + -- IRQ is level sensitive + -- + if (irq = '1') and (cc(IBIT) = '0') then + iv_ctrl <= irq_iv; + next_state <= int_mask_state; + else + case op_code is + when "00111110" => -- WAI (wait for interrupt) + iv_ctrl <= latch_iv; + next_state <= int_wai_state; + when "00111111" => -- SWI (Software interrupt) + iv_ctrl <= swi_iv; + next_state <= vect_hi_state; + when others => -- bogus interrupt (return) + iv_ctrl <= latch_iv; + next_state <= rti_state; + end case; + end if; + end if; + + when int_wai_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + op_ctrl <= latch_op; + ea_ctrl <= latch_ea; + -- enable interrupts + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_cli; + cc_ctrl <= load_cc; + sp_ctrl <= latch_sp; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= cc_dout; + if (nmi_req = '1') and (nmi_ack='0') then + iv_ctrl <= nmi_iv; + nmi_ctrl <= set_nmi; + next_state <= vect_hi_state; + else + -- + -- nmi request is not cleared until nmi input goes low + -- + if (nmi_req = '0') and (nmi_ack='1') then + nmi_ctrl <= reset_nmi; + else + nmi_ctrl <= latch_nmi; + end if; + -- + -- IRQ is level sensitive + -- + if (irq = '1') and (cc(IBIT) = '0') then + iv_ctrl <= irq_iv; + next_state <= int_mask_state; + else + iv_ctrl <= latch_iv; + next_state <= int_wai_state; + end if; + end if; + + when int_mask_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- Mask IRQ + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_sei; + cc_ctrl <= load_cc; + sp_ctrl <= latch_sp; + -- idle bus cycle + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= vect_hi_state; + + when halt_state => -- halt CPU. + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- do nothing in ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- idle bus cycle + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + if halt = '1' then + next_state <= halt_state; + else + next_state <= fetch_state; + end if; + + when others => -- error state halt on undefine states + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- do nothing in ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- idle bus cycle + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= error_state; + end case; +end process; + +-------------------------------- +-- +-- state machine +-- +-------------------------------- + +change_state: process( clk, rst, state, hold ) +begin + if clk'event and clk = '0' then + if rst = '1' then + state <= reset_state; + elsif hold = '1' then + state <= state; + else + state <= next_state; + end if; + end if; +end process; + -- output + +end CPU_ARCH; + diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/cpu8080.sv b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/cpu8080.sv new file mode 100644 index 00000000..ea3adaf6 --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/cpu8080.sv @@ -0,0 +1,1681 @@ +//////////////////////////////////////////////////////////////////////////////// +// Company: // +// Engineer: Scott Moore // +// // +// Additional contributions by: // +// // +// Chris N. Strahm - Modifications for Altera Quartus build. // +// // +// Create Date: 11:45:32 09/04/2006 // +// Design Name: // +// Module Name: cpu8080 // +// Project Name: cpu8080 // +// Target Devices: xc3c200, xc3s1000 // +// Tool versions: // +// Description: // +// // +// Executes the 8080 instruction set. It is designed to be an internal // +// cell. Each of the I/Os are positive logic, and all signals are // +// constant with the exception of the data bus. The control signals are // +// fully decoded (unlike the orignal 8080), and features read and write // +// signals for both memory and I/O space. The I/O space is an 8 bit // +// address as in the original 8080. It does NOT echo the lower 8 bits to // +// the higher 8 bits, as was the practice in some systems. // +// // +// Like the original 8080, the interrupt vectoring is fully external. The // +// the external controller forces a full instruction onto the data bus. // +// The sequence begins with the assertion of interrupt request. The CPU // +// will then assert interrupt acknowledge, then it will run a special // +// read cycle with inta asserted for each cycle of a possibly // +// multibyte instruction. This matches the original 8080, which typically // +// used single byte restart instructions to form a simple interrupt // +// controller, but was capable of full vectoring via insertion of a jump, // +// call or similar instruction. // +// // +// Note that the interrupt vector instruction should branch. This is // +// because the PC gets changed by the vector instruction, so if it does // +// not branch, it will have skipped a number of bytes after the interrupt // +// equivalent to the vector instruction. The only instructions that // +// should really be used to vector are jmp, rst and call instructions. // +// Specifically, rst and call instruction compensate for the pc movement // +// by putting the pc unmodified on the stack. // +// // +// The memory, I/O and interrupt fetches all obey a simple clocking // +// sequence as follows. The CPU uses the positive clock edge to assert // +// and sample signals and data. The external logic theoretically uses the // +// negative edge to check signal assertions and sample data, but it can // +// either use the negative edge, or actually be asynronous logic. // +// // +// A standard read sequence is as follows: // +// // +// 1. At the positive clock edge, readmem, readio or readint is asserted. // +// 2. At the negative clock edge (or immediately), the external memory // +// places data onto the data bus. // +// 3. We hold automatically for one cycle. // +// 4. At the next positive clock edge, the data is sampled, and the read // +// Signal is deasserted. // +// // +// A standard write sequence is as follows: // +// // +// 1. At the positive edge, data is asserted on the data bus. // +// 2. At the next postive clock edge, writemem or writeio is asserted. // +// 3. At the next positive clock edge, writemem or writeio is deasserted. // +// 4. At the next positive edge, the data is deasserted. // +// // +// Dependencies: // +// // +// Revision: // +// Revision 0.01 - File Created // +// Additional Comments: // +// // +//////////////////////////////////////////////////////////////////////////////// + +`timescale 1ns / 1ps + +// +// Build option +// +// Uncomment this line to build without wait state ability. Many FPGA +// applications don't require wait states. This can save silicon area. +// +// Defining this option will cause the wait line to be ignored. +// +// `define NOWAIT + +// +// Build option +// +// Uncomment this line to build without I/O instruction ability. An application +// may have memory mapped I/O only, and not require I/O instructions. This can +// save silicon area. +// +// Defining this option will cause I/O instructions to be treated as no-ops. +// alternately, you can modify what they do. +// +// `define NOIO + +// +// CPU states +// + +`define cpus_idle 6'h00 // Idle +`define cpus_fetchi 6'h01 // Instruction fetch +`define cpus_fetchi2 6'h02 // Instruction fetch 2 +`define cpus_fetchi3 6'h03 // Instruction fetch 3 +`define cpus_fetchi4 6'h04 // Instruction fetch 4 +`define cpus_halt 6'h05 // Halt (wait for interrupt) +`define cpus_alucb 6'h06 // alu cycleback +`define cpus_indcb 6'h07 // inr/dcr cycleback +`define cpus_movmtbc 6'h08 // Move memory to bc +`define cpus_movmtde 6'h09 // Move memory to de +`define cpus_movmthl 6'h0a // Move memory to hl +`define cpus_movmtsp 6'h0b // Move memory to sp +`define cpus_lhld 6'h0c // LHLD +`define cpus_jmp 6'h0d // JMP +`define cpus_write 6'h0e // write byte +`define cpus_write2 6'h0f // write byte #2 +`define cpus_write3 6'h10 // write byte #3 +`define cpus_write4 6'h11 // write byte #4 +`define cpus_read 6'h12 // read byte +`define cpus_read2 6'h13 // read byte #2 +`define cpus_read3 6'h14 // read byte #3 +`define cpus_pop 6'h15 // POP completion +`define cpus_in 6'h16 // IN +`define cpus_in2 6'h17 // IN #2 +`define cpus_in3 6'h18 // IN #3 +`define cpus_out 6'h19 // OUT +`define cpus_out2 6'h1a // OUT #2 +`define cpus_out3 6'h1b // OUT #3 +`define cpus_out4 6'h1c // OUT #4 +`define cpus_movtr 6'h1d // move to register +`define cpus_movrtw 6'h1e // move read to write +`define cpus_movrtwa 6'h1f // move read to write address +`define cpus_movrtra 6'h20 // move read to read address +`define cpus_accimm 6'h21 // accumulator immediate operations +`define cpus_daa 6'h22 // DAA completion +`define cpus_call 6'h23 // CALL completion +`define cpus_ret 6'h24 // RET completion +`define cpus_movtalua 6'h25 // move to alu a +`define cpus_movtalub 6'h26 // move to alu b +`define cpus_indm 6'h27 // inc/dec m + +// +// Register numbers +// + +`define reg_b 3'b000 // B +`define reg_c 3'b001 // C +`define reg_d 3'b010 // D +`define reg_e 3'b011 // E +`define reg_h 3'b100 // H +`define reg_l 3'b101 // L +`define reg_m 3'b110 // M +`define reg_a 3'b111 // A + +// +// ALU operations +// + +`define aluop_add 3'b000 // add +`define aluop_adc 3'b001 // add with carry in +`define aluop_sub 3'b010 // subtract +`define aluop_sbb 3'b011 // subtract with borrow in +`define aluop_and 3'b100 // and +`define aluop_xor 3'b101 // xor +`define aluop_or 3'b110 // or +`define aluop_cmp 3'b111 // compare + +// +// State macros +// +`define mac_writebyte 1 // write a byte +`define mac_readbtoreg 2 // read a byte, place in register +`define mac_readdtobc 4 // read double byte to BC +`define mac_readdtode 6 // read double byte to DE +`define mac_readdtohl 8 // read double byte to HL +`define mac_readdtosp 10 // read double byte to SP +`define mac_readbmtw 12 // read byte and move to write +`define mac_readbmtr 15 // read byte and move to register +`define mac_sta 17 // STA +`define mac_lda 21 // LDA +`define mac_shld 26 // SHLD +`define mac_lhld 31 // LHLD +`define mac_writedbyte 37 // write double byte +`define mac_pop 39 // POP +`define mac_xthl 41 // XTHL +`define mac_accimm 45 // accumulator immediate +`define mac_jmp 46 // JMP +`define mac_call 48 // CALL +`define mac_in 52 // IN +`define mac_out 53 // OUT +`define mac_rst 54 // RST +`define mac_ret 56 // RET +`define mac_alum 58 // op a,m +`define mac_indm 60 // inc/dec m + +module cpu8080(addr, // Address out + data, // Data bus + readmem, // Memory read + writemem, // Memory write + readio, // Read I/O space + writeio, // Write I/O space + intr, // Interrupt request + inta, // Interrupt request + waitr, // Wait request + reset, // Reset + clock); // System clock + + output [15:0] addr; + inout [7:0] data; + output readmem; + output writemem; + output readio; + output writeio; + input intr; + output inta; + input waitr; + input reset; + input clock; + + // Output or input lines that need to be registered + + reg readmem; + reg writemem; + reg [15:0] pc; + reg [15:0] addr; + reg readio; + reg writeio; + reg inta; + reg [15:0] sp; + + // Local registers + + reg [5:0] state; // CPU state machine + reg [2:0] regd; // Destination register + reg [7:0] datao; // Data output register + reg dataeno; // Enable output data + reg [15:0] waddrhold; // address holding for write + reg [15:0] raddrhold; // address holding for read + reg [7:0] wdatahold; // single byte write data holding + reg [7:0] wdatahold2; // single byte write data holding + reg [7:0] rdatahold; // single byte read data holding + reg [7:0] rdatahold2; // single byte read data holding + reg [1:0] popdes; // POP destination code + reg [5:0] statesel; // state map selector + reg [5:0] nextstate; // next state output + reg eienb; // interrupt enable delay shift reg + reg [7:0] opcode; // opcode holding + + // Register file. Note that 3'b110 (6) is not used, and is the code for a + // memory reference. + + reg [7:0] regfil[0:7]; + + // The flags are represented individually + + reg carry; // carry bit + reg auxcar; // auxiliary carry bit + reg sign; // sign bit + reg zero; // zero bit + reg parity; // parity bit + reg ei; // interrupt enable + reg intcyc; // in interrupt cycle + + // ALU communication + + wire [7:0] alures; // result + reg [7:0] aluopra; // left side operand + reg [7:0] aluoprb; // right side operand + reg alucin; // carry in + wire alucout; // carry out + wire alupar; // parity out + wire aluaxc; // auxiliary carry + reg [2:0] alusel; // alu operational select + + // Instantiate the ALU + + alu alu(alures, aluopra, aluoprb, alucin, alucout, aluzout, alusout, alupar, + aluaxc, alusel); + + always @(posedge clock) + if (reset) begin // syncronous reset actions + + state <= `cpus_fetchi; // Clear CPU state to initial fetch + pc <= 0; // reset program counter to 1st location + dataeno <= 0; // get off the data bus + readmem <= 0; // all signals out false + writemem <= 0; + readio <= 0; + writeio <= 0; + inta <= 0; + intcyc <= 0; + ei <= 1; // interrupts on by default + eienb <= 0; + + end else case (state) + + `cpus_fetchi: begin // start of instruction fetch + + // if interrupt request is on, enter interrupt cycle, else exit it now + if (intr&&ei) begin + + intcyc <= 1; // enter interrupt cycle + inta <= 1; // activate interrupt acknowledge + ei <= 0; // disable interrupts + + end else begin + + intcyc <= 0; // leave interrupt cycle + readmem <= 1; // activate instruction memory read + + end + + addr <= pc; // place current program count on output + if (eienb) ei <=1; // process delayed interrupt enable + eienb <=0; // reset interrupt enabler + state <= `cpus_fetchi2; // next state + + end + + `cpus_fetchi2: begin // wait + + state <= `cpus_fetchi3; // next state + + end + + `cpus_fetchi3: begin // complete instruction memory read + +`ifndef NOWAIT + if (!waitr) +`endif + begin // no wait selected, otherwise cycle + + opcode <= data; // latch opcode + readmem <= 0; // Deactivate instruction memory read + inta <= 0; // and interrupt acknowledge + state <= `cpus_fetchi4; // next state + + end + + end + + `cpus_fetchi4: begin // complete instruction memory read + + // We split off the instructions into 4 groups. Most of the 8080 + // instructions are in the MOV and ACC operations class. + + case (opcode[7:6]) // Decode top level + + 2'b00: begin // 00: Data transfers and others + + case (opcode[5:0]) // decode these instructions + + 6'b000000: begin // NOP + + // yes, do nothing + + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b110111: begin // STC + + carry <= 1; // set carry flag + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b111111: begin // CMC + + carry <= ~carry; // complement carry flag + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b101111: begin // CMA + + regfil[`reg_a] <= ~regfil[`reg_a]; // complement accumulator + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b100111: begin // DAA + + // decimal adjust accumulator, or remove by carry any + // results in nybbles greater than 9 + + if (regfil[`reg_a][3:0] > 9 || auxcar) + { auxcar, regfil[`reg_a] } <= regfil[`reg_a]+8'h06; + state <= `cpus_daa; // finish DAA + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b000100, 6'b001100, 6'b010100, 6'b011100, 6'b100100, + 6'b101100, 6'b110100, 6'b111100, 6'b000101, 6'b001101, + 6'b010101, 6'b011101, 6'b100101, 6'b101101, 6'b110101, + 6'b111101: begin // INR/DCR + + regd <= opcode[5:3]; // get source/destination reg + aluopra <= regfil[opcode[5:3]]; // load as alu a + aluoprb <= 1; // load 1 as alu b + if (opcode[0]) alusel <= `aluop_sub; // set subtract + else alusel <= `aluop_add; // set add + if (opcode[5:3] == `reg_m) begin + + raddrhold <= regfil[`reg_h]<<8|regfil[`reg_l]; + statesel <= `mac_indm; // inc/dec m + state <= `cpus_read; // read byte + + end else state <= `cpus_indcb; // go inr/dcr cycleback + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b000010, 6'b010010: begin // STAX + + wdatahold <= regfil[`reg_a]; // place A as source + if (opcode[4]) // use DE pair + waddrhold <= regfil[`reg_d]<<8|regfil[`reg_e]; + else // use BC pair + waddrhold <= regfil[`reg_b] << 8|regfil[`reg_c]; + statesel <= `mac_writebyte; // write byte + state <= `cpus_write; + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b001010, 6'b011010: begin // LDAX + + regd <= `reg_a; // set A as destination + if (opcode[4]) // use DE pair + raddrhold <= regfil[`reg_d]<<8|regfil[`reg_e]; + else // use BC pair + raddrhold <= regfil[`reg_b]<<8|regfil[`reg_c]; + statesel <= `mac_readbtoreg; // read byte to register + state <= `cpus_read; + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b000111: begin // RLC + + // rotate left circular + { carry, regfil[`reg_a] } <= + (regfil[`reg_a] << 1)+regfil[`reg_a][7]; + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b010111: begin // RAL + + // rotate left through carry + { carry, regfil[`reg_a] } <= (regfil[`reg_a] << 1)+carry; + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b001111: begin // RRC + + // rotate right circular + regfil[`reg_a] <= + (regfil[`reg_a] >> 1)+(regfil[`reg_a][0] << 7); + carry <= regfil[`reg_a][0]; + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b011111: begin // RAR + + // rotate right through carry + regfil[`reg_a] <= (regfil[`reg_a] >> 1)+(carry << 7); + carry <= regfil[`reg_a][0]; + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b001001: begin // DAD B + + // add BC to HL + { carry, regfil[`reg_h], regfil[`reg_l] } <= + (regfil[`reg_h] << 8)+regfil[`reg_l]+ + (regfil[`reg_b] << 8)+regfil[`reg_c]; + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b011001: begin // DAD D + + // add DE to HL + { carry, regfil[`reg_h], regfil[`reg_l] } <= + (regfil[`reg_h] << 8)+regfil[`reg_l]+ + (regfil[`reg_d] << 8)+regfil[`reg_e]; + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b101001: begin // DAD H + + // add HL to HL + { carry, regfil[`reg_h], regfil[`reg_l] } <= + (regfil[`reg_h] << 8)+regfil[`reg_l]+ + (regfil[`reg_h] << 8)+regfil[`reg_l]; + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b111001: begin // DAD SP + + // add SP to HL + { carry, regfil[`reg_h], regfil[`reg_l] } <= + (regfil[`reg_h] << 8)+regfil[`reg_l]+sp; + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b000011: begin // INX B + + // increment BC, no flags set + regfil[`reg_b] <= + (((regfil[`reg_b] << 8)+regfil[`reg_c])+16'h1)>>8; + regfil[`reg_c] <= + ((regfil[`reg_b] << 8)+regfil[`reg_c])+16'h1; + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b010011: begin // INX D + + // increment DE, no flags set + regfil[`reg_d] <= + (((regfil[`reg_d] << 8)+regfil[`reg_e])+16'h1)>>8; + regfil[`reg_e] <= + ((regfil[`reg_d] << 8)+regfil[`reg_e])+16'h1; + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b100011: begin // INX H + + // increment HL, no flags set + regfil[`reg_h] <= + (((regfil[`reg_h] << 8)+regfil[`reg_l])+16'h1)>>8; + regfil[`reg_l] <= + ((regfil[`reg_h] << 8)+regfil[`reg_l])+16'h1; + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b110011: begin // INX SP + + // increment SP, no flags set + sp <= sp + 16'b1; + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b001011: begin // DCX B + + // decrement BC, no flags set + regfil[`reg_b] <= + (((regfil[`reg_b] << 8)+regfil[`reg_c])-16'h1)>>8; + regfil[`reg_c] <= + ((regfil[`reg_b] << 8)+regfil[`reg_c])-16'h1; + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b011011: begin // DCX D + + // decrement DE, no flags set + regfil[`reg_d] <= + (((regfil[`reg_d] << 8)+regfil[`reg_e])-16'h1)>>8; + regfil[`reg_e] <= + ((regfil[`reg_d] << 8)+regfil[`reg_e])-16'h1; + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b101011: begin // DCX H + + // decrement HL, no flags set + regfil[`reg_h] <= + (((regfil[`reg_h] << 8)+regfil[`reg_l])-16'h1)>>8; + regfil[`reg_l] <= + ((regfil[`reg_h] << 8)+regfil[`reg_l])-16'h1; + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+1'h1; // Next instruction byte + + end + + 6'b111011: begin // DCX SP + + // decrement SP, no flags set + sp <= sp-16'b1; + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b000001: begin // LXI B + + raddrhold <= pc+16'h1; // pick up after instruction + statesel <= `mac_readdtobc; // read double to BC + state <= `cpus_read; + pc <= pc+16'h3; // skip + + end + + 6'b010001: begin // LXI D + + raddrhold <= pc+16'h1; // pick up after instruction + statesel <= `mac_readdtode; // read double to DE + state <= `cpus_read; + pc <= pc+16'h3; // skip + + end + + 6'b100001: begin // LXI H + + raddrhold <= pc+16'h1; // pick up after instruction + statesel <= `mac_readdtohl; // read double to HL + state <= `cpus_read; + pc <= pc+16'h3; // skip + + end + + 6'b110001: begin // LXI SP + + raddrhold <= pc+16'h1; // pick up after instruction + statesel <= `mac_readdtosp; // read double to SP + state <= `cpus_read; + pc <= pc+16'h3; // skip + + end + + 6'b000110, 6'b001110, 6'b010110, 6'b011110, 6'b100110, + 6'b101110, 6'b110110, 6'b111110: begin // MVI + + // move immediate to register + regd <= opcode[5:3]; // set destination register + raddrhold <= pc+16'h1; // set pickup address + if (opcode[5:3] == `reg_m) begin // it's mvi m,imm + + regd <= opcode[5:3]; // set destination register + // set destination address + waddrhold <= { regfil[`reg_h], regfil[`reg_l] }; + statesel <= `mac_readbmtw; // read byte and move to write + + end else + statesel <= `mac_readbmtr; // read byte and move to register + state <= `cpus_read; + pc <= pc+16'h2; // advance over byte + + end + + 6'b110010: begin // STA + + wdatahold <= regfil[`reg_a]; // set write data + raddrhold <= pc+16'h1; // set read address + statesel <= `mac_sta; // perform sta + state <= `cpus_read; + pc <= pc + 16'h3; // next + + end + + 6'b111010: begin // LDA + + raddrhold <= pc+16'h1; // set read address + regd <= `reg_a; // set destination + statesel <= `mac_lda; // perform lda + state <= `cpus_read; + pc <= pc+16'h3; // next + + end + + 6'b100010: begin // SHLD + + wdatahold <= regfil[`reg_l]; // set write data + wdatahold2 <= regfil[`reg_h]; + raddrhold <= pc+16'h1; // set read address + statesel <= `mac_shld; // perform SHLD + state <= `cpus_read; + pc <= pc+16'h3; // skip + + end + + 6'b101010: begin // LHLD + + raddrhold <= pc+16'h1; // set read address + statesel <= `mac_lhld; // perform LHLD + state <= `cpus_read; + pc <= pc+16'h3; // skip + + end + + // the illegal opcodes behave as NOPs + + 6'b001000, 6'b010000, 6'b011000, 6'b100000, 6'b101000, + 6'b110000, 6'b110000: begin + + state <= `cpus_fetchi; // fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + endcase + + end + + 2'b01: begin // 01: MOV instruction + + // Check its the halt instruction, which occupies the invalid + // "MOV M,M" instruction. + if (opcode == 8'b01110110) state <= `cpus_halt; + // Otherwise, the 01 prefix is single instruction format. + else begin + + // Format 01DDDSSS + + // Check memory source, use state if so + if (opcode[2:0] == `reg_m) begin + + // place hl as address + raddrhold <= regfil[`reg_h]<<8|regfil[`reg_l]; + regd <= opcode[5:3]; // set destination + statesel <= `mac_readbtoreg; // read byte to register + state <= `cpus_read; + + // Check memory destination, use state if so + end else if (opcode[5:3] == `reg_m) begin + + // place hl as address + waddrhold <= regfil[`reg_h]<<8|regfil[`reg_l]; + wdatahold <= regfil[opcode[2:0]]; // place data to write + statesel <= `mac_writebyte; // write byte + state <= `cpus_write; + + // otherwise simple register to register + end else begin + + regfil[opcode[5:3]] <= regfil[opcode[2:0]]; + state <= `cpus_fetchi; // Fetch next instruction + + end + + end + pc <= pc+16'h1; // Next instruction byte + + end + + 2'b10: begin // 10: Reg or mem to accumulator ops + + // 10 prefix is single instruction format + aluopra <= regfil[`reg_a]; // load as alu a + aluoprb <= regfil[opcode[2:0]]; // load as alu b + alusel <= opcode[5:3]; // set alu operation from instruction + alucin <= carry; // input carry + if (opcode[2:0] == `reg_m) begin + + // set read address + raddrhold <= regfil[`reg_h]<<8|regfil[`reg_l]; + statesel <= `mac_alum; // alu from m + state <= `cpus_read; // read byte + + end else + state <= `cpus_alucb; // go to alu cycleback + pc <= pc+16'h1; // Next instruction byte + + end + + 2'b11: begin // 11: jmp/call and others + + case (opcode[5:0]) // decode these instructions + + 6'b000101, 6'b010101, 6'b100101, 6'b110101: begin // PUSH + + waddrhold <= sp-16'h2; // write to stack + sp <= sp-16'h2; // pushdown stack + case (opcode[5:4]) // register set + + 2'b00: { wdatahold2, wdatahold } <= + { regfil[`reg_b], regfil[`reg_c] }; + 2'b01: { wdatahold2, wdatahold } <= + { regfil[`reg_d], regfil[`reg_e] }; + 2'b10: { wdatahold2, wdatahold } <= + { regfil[`reg_h], regfil[`reg_l] }; + 2'b11: { wdatahold2, wdatahold } <= + { regfil[`reg_a], sign, zero, 1'b0, auxcar, + 1'b0, parity, 1'b1, carry }; + + endcase + statesel <= `mac_writedbyte; // write double byte + state <= `cpus_write; + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b000001, 6'b010001, 6'b100001, 6'b110001: begin // POP + + popdes <= opcode[5:4]; // set destination + raddrhold <= sp; // read from stack + sp <= sp+16'h2; // pushup stack + statesel <= `mac_pop; // perform POP + state <= `cpus_read; + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b101011: begin // XCHG + + regfil[`reg_d] <= regfil[`reg_h]; + regfil[`reg_e] <= regfil[`reg_l]; + regfil[`reg_h] <= regfil[`reg_d]; + regfil[`reg_l] <= regfil[`reg_e]; + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b100011: begin // XTHL + + raddrhold <= sp; // address SP for read + waddrhold <= sp; // address SP for write + wdatahold <= regfil[`reg_l]; // set data is HL + wdatahold2 <= regfil[`reg_h]; + statesel <= `mac_xthl; // perform XTHL + state <= `cpus_read; + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b111001: begin // SPHL + + sp <= { regfil[`reg_h], regfil[`reg_l] }; + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b000110, 6'b001110, 6'b010110, 6'b011110, 6'b100110, + 6'b101110, 6'b110110, + 6'b111110: begin // immediate arithmetic to accumulator + + aluopra <= regfil[`reg_a]; // load as alu a + alusel <= opcode[5:3]; // set alu operation from instruction + alucin <= carry; // input carry + raddrhold <= pc+16'h1; // read at PC + statesel <= `mac_accimm; // finish accumulator immediate + state <= `cpus_read; + pc <= pc+16'h2; // skip immediate byte + + end + + 6'b101001: begin // PCHL + + state <= `cpus_fetchi; // Fetch next instruction + pc <= { regfil[`reg_h], regfil[`reg_l] }; + + end + + 6'b000011: begin // JMP + + raddrhold <= pc+16'h1; // pick up jump address + statesel <= `mac_jmp; // finish JMP + state <= `cpus_read; + + end + + 6'b000010, 6'b001010, 6'b010010, 6'b011010, 6'b100010, + 6'b101010, 6'b110010, 6'b111010: begin // Jcc + + raddrhold <= pc+16'h1; // pick up jump address + statesel <= `mac_jmp; // finish JMP + // choose continue or read according to condition + case (opcode[5:3]) // decode flag cases + + 3'b000: if (zero) state <= `cpus_fetchi; + else state <= `cpus_read; + 3'b001: if (!zero) state <= `cpus_fetchi; + else state <= `cpus_read; + 3'b010: if (carry) state <= `cpus_fetchi; + else state <= `cpus_read; + 3'b011: if (!carry) state <= `cpus_fetchi; + else state <= `cpus_read; + 3'b100: if (parity) state <= `cpus_fetchi; + else state <= `cpus_read; + 3'b101: if (!parity) state <= `cpus_fetchi; + else state <= `cpus_read; + 3'b110: if (sign) state <= `cpus_fetchi; + else state <= `cpus_read; + 3'b111: if (!sign) state <= `cpus_fetchi; + else state <= `cpus_read; + + endcase + pc <= pc+16'h3; // advance after jump for false + + end + + 6'b001101: begin // CALL + + raddrhold <= pc+16'h1; // pick up call address + waddrhold <= sp-16'h2; // place address on stack + // if interrupt cycle, use current pc, else use address + // after call + if (intcyc) { wdatahold2, wdatahold } <= pc; + else { wdatahold2, wdatahold } <= pc+16'h3; + statesel <= `mac_call; // finish CALL + state <= `cpus_read; + + end + + 6'b000100, 6'b001100, 6'b010100, 6'b011100, 6'b100100, + 6'b101100, 6'b110100, 6'b111100: begin // Ccc + + raddrhold <= pc+16'h1; // pick up call address + waddrhold <= sp-16'h2; // place address on stack + // of address after call + { wdatahold2, wdatahold } <= pc + 16'h3; + statesel <= `mac_call; // finish CALL + // choose continue or read according to condition + case (opcode[5:3]) // decode flag cases + + 3'b000: if (zero) state <= `cpus_fetchi; + else state <= `cpus_read; + 3'b001: if (!zero) state <= `cpus_fetchi; + else state <= `cpus_read; + 3'b010: if (carry) state <= `cpus_fetchi; + else state <= `cpus_read; + 3'b011: if (!carry) state <= `cpus_fetchi; + else state <= `cpus_read; + 3'b100: if (parity) state <= `cpus_fetchi; + else state <= `cpus_read; + 3'b101: if (!parity) state <= `cpus_fetchi; + else state <= `cpus_read; + 3'b110: if (sign) state <= `cpus_fetchi; + else state <= `cpus_read; + 3'b111: if (!sign) state <= `cpus_fetchi; + else state <= `cpus_read; + + endcase + pc <= pc+16'h3; // advance after jump for false + + end + + 6'b001001: begin // RET + + raddrhold <= sp; // read from stack + statesel <= `mac_ret; // finish RET + state <= `cpus_read; + + end + + 6'b000000, 6'b001000, 6'b010000, 6'b011000, 6'b100000, + 6'b101000, 6'b110000, 6'b111000: begin // Rcc + + raddrhold <= sp; // read from stack + statesel <= `mac_ret; // finish JMP + // choose read or continue according to condition + case (opcode[5:3]) // decode flag cases + + 3'b000: if (zero) state <= `cpus_fetchi; + else state <= `cpus_read; + 3'b001: if (!zero) state <= `cpus_fetchi; + else state <= `cpus_read; + 3'b010: if (carry) state <= `cpus_fetchi; + else state <= `cpus_read; + 3'b011: if (!carry) state <= `cpus_fetchi; + else state <= `cpus_read; + 3'b100: if (parity) state <= `cpus_fetchi; + else state <= `cpus_read; + 3'b101: if (!parity) state <= `cpus_fetchi; + else state <= `cpus_read; + 3'b110: if (sign) state <= `cpus_fetchi; + else state <= `cpus_read; + 3'b111: if (!sign) state <= `cpus_fetchi; + else state <= `cpus_read; + + endcase + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b000111, 6'b001111, 6'b010111, 6'b011111, 6'b100111, + 6'b101111, 6'b110111, 6'b111111: begin // RST + + pc <= opcode & 8'b00111000; // place restart value in PC + waddrhold <= sp-16'h2; // place address on stack + // if interrupt cycle, use current pc, else use address + // after call + if (intcyc) { wdatahold2, wdatahold } <= pc; + else { wdatahold2, wdatahold } <= pc+16'h3; + { wdatahold2, wdatahold } <= pc+16'h1; // of address after call + sp <= sp-16'h2; // pushdown stack CNS + statesel <= `mac_writedbyte; // finish RST + state <= `cpus_write; // write to stack + + end + + 6'b111011: begin // EI + + eienb <= 1'b1; // set delayed interrupt enable + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b110011: begin // DI + + ei <= 1'b0; + state <= `cpus_fetchi; // Fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + 6'b011011: begin // IN p + +`ifndef NOIO + // perform input + raddrhold <= pc+1; // pick up byte I/O address + statesel <= `mac_in; // finish IN + state <= `cpus_read; + pc <= pc+16'h2; // advance over byte +`else + // ignore instruction + state <= `cpus_fetchi; // fetch next instruction + pc <= pc+16'h1; // Next instruction byte +`endif + + end + + 6'b010011: begin // OUT p + +`ifndef NOIO + // perform output + raddrhold <= pc+1; // pick up byte I/O address + statesel <= `mac_out; // finish OUT + state <= `cpus_read; + pc <= pc+16'h2; // advance over byte +`else + // ignore instruction + state <= `cpus_fetchi; // fetch next instruction + pc <= pc+16'h1; // Next instruction byte +`endif + + end + + // the illegal opcodes behave as NOPs + + 6'b001011, 6'b011001, 6'b011101, 6'b101101, + 6'b111101: begin + + state <= `cpus_fetchi; // fetch next instruction + pc <= pc+16'h1; // Next instruction byte + + end + + endcase + + end + + endcase + + end + + // Follow states. These state handlers implement the following cycles past + // M1, or primary fetch state. + + // + // single byte write, writes wdatahold to the waddrhold address + // + + `cpus_write: begin + + addr <= waddrhold; // place address on output + waddrhold <= waddrhold + 1'b1; // next address + datao <= wdatahold; // set data to output + wdatahold <= wdatahold2; // next data + dataeno <= 1; // enable output data + state <= `cpus_write2; // next state + + end + + `cpus_write2: begin // continue write #2 + + writemem <= 1; // enable write memory data + state <= `cpus_write3; // idle one cycle for write + + end + + `cpus_write3: begin // continue write #3 + +`ifndef NOWAIT + if (!waitr) +`endif + begin // no wait selected, otherwise cycle + + writemem <= 0; // disable write memory data + state <= `cpus_write4; // idle hold time + + end + + end + + `cpus_write4: begin // continue write #4 + + dataeno <= 0; // disable output data + state <= nextstate; // get next macro state + statesel <= statesel+6'b1; // and index next in macro + + end + + // + // single byte read, reads rdatahold from the raddrhold address + // + + `cpus_read: begin + + addr <= raddrhold; // place address on output + raddrhold <= raddrhold + 16'h1; // next address + if (intcyc) inta <= 1; // activate interrupt acknowledge + else readmem <= 1; // activate memory read + state <= `cpus_read2; // next state + + end + + `cpus_read2: begin // continue read #2 + + // wait one cycle + state <= `cpus_read3; // next state + + end + + `cpus_read3: begin // continue read #3 + +`ifndef NOWAIT + if (!waitr) +`endif + begin // no wait selected, otherwise cycle + + rdatahold2 <= rdatahold; // shift data + rdatahold <= data; // read new data + readmem <= 0; // deactivate instruction memory read + inta <= 0; // deactivate interrupt acknowledge + state <= nextstate; // get next macro state + statesel <= statesel+6'b1; // and index next in macro + + end + + end + + `cpus_pop: begin // finish POP instruction + + case (popdes) // register set + + 2'b00: { regfil[`reg_b], regfil[`reg_c] } <= + { rdatahold, rdatahold2 }; + 2'b01: { regfil[`reg_d], regfil[`reg_e] } <= + { rdatahold, rdatahold2 }; + 2'b10: { regfil[`reg_h], regfil[`reg_l] } <= + { rdatahold, rdatahold2 }; + 2'b11: begin + + regfil[`reg_a] <= rdatahold; + sign <= ((rdatahold2 >> 7)& 1'b1) ? 1'b1:1'b0; + zero <= ((rdatahold2 >> 6)& 1'b1) ? 1'b1:1'b0; + auxcar <= ((rdatahold2 >> 4)& 1'b1) ? 1'b1:1'b0; + parity <= ((rdatahold2 >> 2)& 1'b1) ? 1'b1:1'b0; + carry <= ((rdatahold2 >> 0)& 1'b1) ? 1'b1:1'b0; + + end + + endcase + state <= `cpus_fetchi; // Fetch next instruction + + end + + `cpus_jmp: begin // jump address + + state <= `cpus_fetchi; // and return to instruction fetch + pc <= { rdatahold, rdatahold2 }; + + end + + `cpus_call: begin // call address + + sp <= sp-16'h2; // pushdown stack + state <= `cpus_fetchi; // and return to instruction fetch + pc <= { rdatahold, rdatahold2 }; + + end + + `cpus_ret: begin // return from call + + sp <= sp+16'h2; // pushup stack + state <= `cpus_fetchi; // and return to instruction fetch + pc <= { rdatahold, rdatahold2 }; + + end + +`ifndef NOIO // if I/O instructions are to be included + `cpus_in: begin // input single byte to A + + addr <= rdatahold; // place I/O address on address lines + readio <= 1; // set read I/O + state <= `cpus_in2; // continue + + end + + `cpus_in2: begin // input single byte to A #2 + + // wait one cycle + state <= `cpus_in3; // continue + + end + + `cpus_in3: begin // input single byte to A #3 + +`ifndef NOWAIT + if (!waitr) +`endif + begin // no wait selected, otherwise cycle + + regfil[`reg_a] <= data; // place input data + readio <= 0; // clear read I/O + state <= `cpus_fetchi; // Fetch next instruction + + end + + end + + `cpus_out: begin // output single byte from A + + addr <= rdatahold; // place address on output + datao <= regfil[`reg_a]; // set data to output + dataeno <= 1; // enable output data + state <= `cpus_out2; // next state + + end + + `cpus_out2: begin // continue out #2 + + writeio <= 1; // enable write I/O data + state <= `cpus_out3; // idle one cycle for write + + end + + `cpus_out3: begin // continue out #3 + +`ifndef NOWAIT + if (!waitr) +`endif + begin // no wait selected, otherwise cycle + + writeio <= 0; // disable write I/O data + state <= `cpus_out4; // idle hold time + + end + + end + + `cpus_out4: begin // continue write #4 + + dataeno <= 0; // disable output data + state <= `cpus_fetchi; // Fetch next instruction + + end +`endif + + `cpus_halt: begin // Halt waiting for interrupt + + // If there is an interrupt request and interrupts are enabled, then we + // can leave halt. Otherwise we stay here. + if (intr&&ei) state <= `cpus_fetchi; // Fetch next instruction + else state <= `cpus_halt; + + end + + `cpus_movtr: begin // move to register + + regfil[regd] <= rdatahold; // place data + state <= nextstate; // get next macro state + statesel <= statesel+6'b1; // and index next in macro + + end + + `cpus_movtalua: begin // move to alu a + + aluopra <= rdatahold; // place data + state <= nextstate; // get next macro state + statesel <= statesel+6'b1; // and index next in macro + + end + + `cpus_movtalub: begin // move to alu b + + aluoprb <= rdatahold; // place data + state <= nextstate; // get next macro state + statesel <= statesel+6'b1; // and index next in macro + + end + + `cpus_alucb: begin // alu cycleback + + regfil[`reg_a] <= alures; // place alu result back to A + carry <= alucout; // place carry + sign <= alusout; // place sign + zero <= aluzout; // place zero + parity <= alupar; // place parity + auxcar <= aluaxc; // place auxiliary carry + state <= `cpus_fetchi; // and return to instruction fetch + + end + + `cpus_indcb: begin // inr/dcr cycleback + + regfil[regd] <= alures; // place alu result back to source/dest + sign <= alures[7]; // place sign + zero <= aluzout; // place zero + parity <= alupar; // place parity + auxcar <= aluaxc; // place auxiliary carry + state <= `cpus_fetchi; // and return to instruction fetch + + end + + `cpus_indm: begin // inr/dcr cycleback to m + + waddrhold <= regfil[`reg_h]<<8|regfil[`reg_l]; // place address + wdatahold <= alures; // place data to write + sign <= alures[7]; // place sign + zero <= aluzout; // place zero + parity <= alupar; // place parity + auxcar <= aluaxc; // place auxiliary carry + state <= nextstate; // get next macro state + statesel <= statesel+6'b1; // and index next in macro + + end + + `cpus_movmtbc: begin // finish LXI B + + regfil[`reg_b] <= rdatahold; // place upper + regfil[`reg_c] <= rdatahold2; // place lower + state <= `cpus_fetchi; // and return to instruction fetch + + end + + `cpus_movmtde: begin // finish LXI D + + regfil[`reg_d] <= rdatahold; // place upper + regfil[`reg_e] <= rdatahold2; // place lower + state <= `cpus_fetchi; // and return to instruction fetch + + end + + `cpus_movmthl: begin // finish LXI H + + regfil[`reg_h] <= rdatahold; // place upper + regfil[`reg_l] <= rdatahold2; // place lower + state <= `cpus_fetchi; // and return to instruction fetch + + end + + `cpus_movmtsp: begin // finish LXI SP + + sp <= { rdatahold, rdatahold2 }; // place + state <= `cpus_fetchi; // and return to instruction fetch + + end + + `cpus_movrtw: begin // move read to write + + wdatahold <= rdatahold; // move read to write data + state <= nextstate; // get next macro state + statesel <= statesel+6'b1; // and index next in macro + + end + + `cpus_movrtwa: begin // move read data to write address + + waddrhold <= { rdatahold, rdatahold2 }; + state <= nextstate; // get next macro state + statesel <= statesel+6'b1; // and index next in macro + + end + + `cpus_movrtra: begin // move read data to read address + + raddrhold <= { rdatahold, rdatahold2 }; + state <= nextstate; // get next macro state + statesel <= statesel+6'b1; // and index next in macro + + end + + `cpus_lhld: begin // load HL from read data + + regfil[`reg_l] <= rdatahold2; // low + regfil[`reg_h] <= rdatahold; // high + state <= nextstate; // get next macro state + statesel <= statesel+6'b1; // and index next in macro CNS + + end + + `cpus_accimm: begin + + aluoprb <= rdatahold; // load as alu b + state <= `cpus_alucb; // go to alu cycleback + + end + + `cpus_daa: begin + + if (regfil[`reg_a][7:4] > 9 || carry) + { carry, regfil[`reg_a] } <= regfil[`reg_a]+8'h60; + state <= `cpus_fetchi; // and return to instruction fetch + + end + + default: state <= 5'bx; + + endcase + + // Enable drive for data output + assign data = dataeno ? datao: 8'bz; + + // + // State macro generator + // + // This ROM contains series of state execution lists that perform various + // tasks, usually involving reads or writes. + // + + always @(statesel) case (statesel) + + // mac_writebyte: write a byte + + 1: nextstate = `cpus_fetchi; // fetch next instruction + + // mac_readbtoreg: read a byte, place in register + + 2: nextstate = `cpus_movtr; // move to register + 3: nextstate = `cpus_fetchi; // Fetch next instruction + + // mac_readdtobc: read double byte to BC + + 4: nextstate = `cpus_read; // get high byte + 5: nextstate = `cpus_movmtbc; // place in BC + + // mac_readdtode: read double byte to DE + + 6: nextstate = `cpus_read; // get high byte + 7: nextstate = `cpus_movmtde; // place in DE + + // mac_readdtohl: read double byte to HL + + 8: nextstate = `cpus_read; // get high byte + 9: nextstate = `cpus_movmthl; // place in HL + + // mac_readdtosp: read double byte to SP + + 10: nextstate = `cpus_read; // get high byte + 11: nextstate = `cpus_movmtsp; // place in SP + + // mac_readbmtw: read byte and move to write + + 12: nextstate = `cpus_movrtw; // move read to write + 13: nextstate = `cpus_write; // write to destination + 14: nextstate = `cpus_fetchi; // Fetch next instruction + + // mac_readbmtr: read byte and move to register + + 15: nextstate = `cpus_movtr; // place in register + 16: nextstate = `cpus_fetchi; // Fetch next instruction + + // mac_sta: STA + + 17: nextstate = `cpus_read; // read high byte + 18: nextstate = `cpus_movrtwa; // move read to write address + 19: nextstate = `cpus_write; // write to destination + 20: nextstate = `cpus_fetchi; // Fetch next instruction + + // mac_lda: LDA + + 21: nextstate = `cpus_read; // read high byte + 22: nextstate = `cpus_movrtra; // move read to write address + 23: nextstate = `cpus_read; // read byte + 24: nextstate = `cpus_movtr; // move to register + 25: nextstate = `cpus_fetchi; // Fetch next instruction + + // mac_shld: SHLD + + 26: nextstate = `cpus_read; // read high byte + 27: nextstate = `cpus_movrtwa; // move read to write address + 28: nextstate = `cpus_write; // write to destination low + 29: nextstate = `cpus_write; // write to destination high + 30: nextstate = `cpus_fetchi; // Fetch next instruction + + // mac_lhld: LHLD + + 31: nextstate = `cpus_read; // read high byte + 32: nextstate = `cpus_movrtra; // move read to write address + 33: nextstate = `cpus_read; // read byte low + 34: nextstate = `cpus_read; // read byte high + 35: nextstate = `cpus_lhld; // move to register + 36: nextstate = `cpus_fetchi; // Fetch next instruction + + // mac_writedbyte: write double byte + + 37: nextstate = `cpus_write; // double write + 38: nextstate = `cpus_fetchi; // then fetch + + // mac_pop: POP + + 39: nextstate = `cpus_read; // double it + 40: nextstate = `cpus_pop; // then finish + + // mac_xthl: XTHL + + 41: nextstate = `cpus_read; // double it + 42: nextstate = `cpus_write; // then write + 43: nextstate = `cpus_write; // double it + 44: nextstate = `cpus_movmthl; // place word in hl + + // mac_accimm: accumulator immediate + + 45: nextstate = `cpus_accimm; // finish + + // mac_jmp: JMP + + 46: nextstate = `cpus_read; // double read + 47: nextstate = `cpus_jmp; // then go pc + + // mac_call: CALL + + 48: nextstate = `cpus_read; // double read + 49: nextstate = `cpus_write; // then write + 50: nextstate = `cpus_write; // double write + 51: nextstate = `cpus_call; // then go to that + + // mac_in: IN + + 52: nextstate = `cpus_in; // go to IN after getting that + + // mac_out: OUT + + 53: nextstate = `cpus_out; // go to OUT after getting that + + // mac_rst: RST + + 54: nextstate = `cpus_write; // double write + 55: nextstate = `cpus_jmp; // then go to that + + // mac_ret: RET + + 56: nextstate = `cpus_read; // double read + 57: nextstate = `cpus_ret; // then go to that + + // mac_alum: op a,m + + 58: nextstate = `cpus_movtalub; // go move to alu a + 59: nextstate = `cpus_alucb; // cycle back to acc + + // mac_idm: inc/dec m + + 60: nextstate = `cpus_movtalua; // go move to alu b + 61: nextstate = `cpus_indm; // set up alu result + 62: nextstate = `cpus_write; // write it + 63: nextstate = `cpus_fetchi; // Fetch next instruction + + default nextstate = 6'bx; // other states never reached + + endcase + +endmodule + +// +// Alu module +// +// Finds arithmetic operations needed. Latches on the positive edge of the +// clock. There are 8 different types of operations, which come from bits +// 3-5 of the instruction. +// + +module alu(res, opra, oprb, cin, cout, zout, sout, parity, auxcar, sel); + + input [7:0] opra; // Input A + input [7:0] oprb; // Input B + input cin; // Carry in + output cout; // Carry out + output zout; // Zero out + output sout; // Sign out + output parity; // parity + output auxcar; // auxiliary carry + input [2:0] sel; // Operation select + output [7:0] res; // Result of alu operation + + reg cout; // Carry out + reg zout; // Zero out + reg sout; // sign out + reg parity; // parity + reg auxcar; // auxiliary carry + reg [7:0] resi; // Result of alu operation intermediate + reg [7:0] res; // Result of alu operation + + always @(opra, oprb, cin, sel, res, resi) begin + + case (sel) + + `aluop_add: begin // add + + { cout, resi } = opra+oprb; // find result and carry + // find auxiliary carry + auxcar = (((opra[3:0]+oprb[3:0]) >> 4) & 8'b1) ? 1'b1 : 1'b0; + + end + `aluop_adc: begin // adc + + { cout, resi } = opra+oprb+cin; // find result and carry + // find auxiliary carry + auxcar = (((opra[3:0]+oprb[3:0]+cin) >> 4) & 8'b1) ? 1'b1 : 1'b0; + + end + `aluop_sub, `aluop_cmp: begin // sub/cmp + + { cout, resi } = opra-oprb; // find result and carry + // find auxiliary borrow + auxcar = (((opra[3:0]-oprb[3:0]) >> 4) & 8'b1) ? 1'b1 : 1'b0; + + end + `aluop_sbb: begin // sbb + + { cout, resi } = opra-oprb-cin; // find result and carry + // find auxiliary borrow + auxcar = (((opra[3:0]-oprb[3:0]-cin >> 4)) & 8'b1) ? 1'b1 : 1'b0; + + end + `aluop_and: begin // ana + + { cout, resi } = {1'b0, opra&oprb}; // find result and carry + auxcar = 1'b0; // clear auxillary carry + + end + `aluop_xor: begin // xra + + { cout, resi } = {1'b0, opra^oprb}; // find result and carry + auxcar = 1'b0; // clear auxillary carry + + end + `aluop_or: begin // ora + + { cout, resi } = {1'b0, opra|oprb}; // find result and carry + auxcar = 1'b0; // clear auxillary carry + + end + + endcase + + if (sel != `aluop_cmp) res = resi; else res = opra; + zout <= ~|resi; // set zero flag from result + sout <= resi[7]; // set sign flag from result + parity <= ~^resi; // set parity flag from result + + end + +endmodule \ No newline at end of file diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/invaders_memory.sv b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/invaders_memory.sv new file mode 100644 index 00000000..ce66bd1d --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/invaders_memory.sv @@ -0,0 +1,167 @@ + +module invaders_memory( +input Clock, +input RW_n, +input [15:0]Addr, +input [12:0]Ram_Addr, +output [7:0]Ram_out, +input [7:0]Ram_in, +output [7:0]Rom_out +); + +wire [7:0]rom_data_0; +wire [7:0]rom_data_1; +wire [7:0]rom_data_2; +wire [7:0]rom_data_3; +wire [7:0]rom_data_4; +wire [7:0]rom_data_5; +wire [7:0]rom_data_6; +wire [7:0]rom_data_7; + + +sprom #( +`ifdef sflush .init_file("./roms/Strightflush/fr01_sc6.hex"), `endif// +`ifdef zzzap280 .init_file("./roms/280zzz/zzzap_c.hex"), `endif// +`ifdef slaser .init_file("./roms/SpaceLaser/la01.hex"), `endif//working +`ifdef lrescue .init_file("./roms/LunarRescue/lrescue_1.hex"), `endif//not working +`ifdef invaders .init_file("./roms/SpaceInvaders/invaders_h.hex"), `endif//working +`ifdef gunfight .init_file("./roms/Gunfight/7609_e.hex"), `endif//not working +`ifdef supearth .init_file("./roms/SuperEarthInvasion/earthinv_h.hex"), `endif//working +`ifdef seawolf .init_file("./roms/Seawolf/sw0041_h.hex"), `endif//not working +`ifdef dogpatch .init_file("./roms/Dogpatch/dogpatch_h.hex"), `endif//not working +`ifdef jspecter .init_file("./roms/jspecter/rom_h.hex"), `endif//not working +`ifdef invadrev .init_file("./roms/InvadersRevenge/invrvnge_e.hex"), `endif//not working +`ifdef zzzap280 .widthad_a(10), `endif// +`ifdef generic .widthad_a(11), `endif// +// .widthad_a(11), + .width_a(8)) +u_rom_h ( + .clock(Clock), +`ifdef zzzap280 .Address(Addr[9:0]), `endif +`ifdef generic .Address(Addr[10:0]), `endif + .q(rom_data_0) + ); + +sprom #( +`ifdef sflush .init_file("./roms/Strightflush/fr02_sc5.hex"), `endif// +`ifdef zzzap280 .init_file("./roms/280zzz/zzzap_d.hex"), `endif// +`ifdef slaser .init_file("./roms/SpaceLaser/la02.hex"), `endif +`ifdef lrescue .init_file("./roms/LunarRescue/lrescue_2.hex"), `endif +`ifdef invaders .init_file("./roms/SpaceInvaders/invaders_g.hex"), `endif +`ifdef gunfight .init_file("./roms/Gunfight/7609_f.hex"), `endif//not working +`ifdef supearth .init_file("./roms/SuperEarthInvasion/earthinv_g.hex"), `endif//working +`ifdef seawolf .init_file("./roms/Seawolf/sw0042_g.hex"), `endif//not working +`ifdef dogpatch .init_file("./roms/Dogpatch/dogpatch_g.hex"), `endif//not working +`ifdef jspecter .init_file("./roms/jspecter/rom_g.hex"), `endif//not working +`ifdef invadrev .init_file("./roms/InvadersRevenge/invrvnge_f.hex"), `endif//not working +`ifdef zzzap280 .widthad_a(10), `endif// +`ifdef generic .widthad_a(11), `endif// +// .widthad_a(11), + .width_a(8)) +u_rom_g ( + .clock(Clock), +`ifdef zzzap280 .Address(Addr[9:0]), `endif +`ifdef generic .Address(Addr[10:0]), `endif + .q(rom_data_1) + ); + +sprom #( +`ifdef sflush .init_file("./roms/Strightflush/fr03_sc4.hex"), `endif// +`ifdef zzzap280 .init_file("./roms/280zzz/zzzap_e.hex"), `endif// +`ifdef slaser .init_file("./roms/SpaceLaser/la03.hex"), `endif +`ifdef lrescue .init_file("./roms/LunarRescue/lrescue_3.hex"), `endif +`ifdef invaders .init_file("./roms/SpaceInvaders/invaders_f.hex"), `endif +`ifdef gunfight .init_file("./roms/Gunfight/7609_g.hex"), `endif//not working +`ifdef supearth .init_file("./roms/SuperEarthInvasion/earthinv_f.hex"), `endif//working +`ifdef seawolf .init_file("./roms/Seawolf/sw0043_f.hex"), `endif//not working +`ifdef dogpatch .init_file("./roms/Dogpatch/dogpatch_f.hex"), `endif//not working +`ifdef jspecter .init_file("./roms/jspecter/rom_f.hex"), `endif//not working +`ifdef invadrev .init_file("./roms/InvadersRevenge/invrvnge_g.hex"), `endif//not working +`ifdef zzzap280 .widthad_a(10), `endif// +`ifdef generic .widthad_a(11), `endif// +// .widthad_a(11), + .width_a(8)) +u_rom_f ( + .clock(Clock), +`ifdef zzzap280 .Address(Addr[9:0]), `endif +`ifdef generic .Address(Addr[10:0]), `endif + .q(rom_data_2) + ); + +sprom #( +`ifdef sflush .init_file("./roms/Strightflush/fr04_sc3.hex"), `endif// +`ifdef zzzap280 .init_file("./roms/280zzz/zzzap_f.hex"), `endif//not working +`ifdef slaser .init_file("./roms/SpaceLaser/la04.hex"), `endif +`ifdef lrescue .init_file("./roms/LunarRescue/lrescue_4.hex"), `endif +`ifdef invaders .init_file("./roms/SpaceInvaders/invaders_e.hex"), `endif +`ifdef gunfight .init_file("./roms/Gunfight/7609_h.hex"), `endif//not working +`ifdef supearth .init_file("./roms/SuperEarthInvasion/earthinv_e.hex"), `endif//working +`ifdef seawolf .init_file("./roms/Seawolf/sw0044_e.hex"), `endif//not working +`ifdef dogpatch .init_file("./roms/Dogpatch/dogpatch_e.hex"), `endif//not working +`ifdef jspecter .init_file("./roms/jspecter/rom_e.hex"), `endif//not working +`ifdef invadrev .init_file("./roms/InvadersRevenge/invrvnge_h.hex"), `endif//not working +`ifdef zzzap280 .widthad_a(10), `endif// +`ifdef generic .widthad_a(11), `endif// + .width_a(8)) +u_rom_e ( + .clock(Clock), +`ifdef zzzap280 .Address(Addr[9:0]), `endif +`ifdef generic .Address(Addr[10:0]), `endif + .q(rom_data_3) + ); + +`ifndef generic +sprom #( +`ifdef sflush .init_file("./roms/Strightflush/fr05_sc2.hex"), `endif// +`ifdef zzzap280 .init_file("./roms/280zzz/zzzap_g.hex"), `endif// +`ifdef lrescue .init_file("./roms/LunarRescue/lrescue_5.hex"), `endif +`ifdef zzzap280 .widthad_a(10), `endif// +`ifdef generic .widthad_a(11), `endif// + .width_a(8)) +u_rom_i ( + .clock(Clock), +`ifdef zzzap280 .Address(Addr[9:0]), `endif +`ifdef generic .Address(Addr[10:0]), `endif + .q(rom_data_4) + ); + +sprom #( +`ifdef zzzap280 .init_file("./roms/280zzz/zzzap_h.hex"), `endif// +`ifdef lrescue .init_file("./roms/LunarRescue/lrescue_6.hex"), `endif +`ifdef zzzap280 .widthad_a(10), `endif// +`ifdef generic .widthad_a(11), `endif// + .width_a(8)) +u_rom_j ( + .clock(Clock), +`ifdef zzzap280 .Address(Addr[9:0]), `endif +`ifdef generic .Address(Addr[10:0]), `endif + .q(rom_data_5) + ); +`endif// +always @(Addr, rom_data_0, rom_data_1, rom_data_2, rom_data_3, rom_data_4, rom_data_5, rom_data_6, rom_data_7) begin + Rom_out = 8'b00000000; + case (Addr[13:11]) + 3'b000 : Rom_out = rom_data_0; + 3'b001 : Rom_out = rom_data_1; + 3'b010 : Rom_out = rom_data_2; + 3'b011 : Rom_out = rom_data_3; + 3'b100 : Rom_out = rom_data_4; + 3'b101 : Rom_out = rom_data_5; + 3'b110 : Rom_out = rom_data_6; + 3'b111 : Rom_out = rom_data_7; + default : Rom_out = 8'b00000000; + endcase +end + +spram #( + .addr_width_g(13), + .data_width_g(8)) +u_ram0( + .address(Ram_Addr[12:0]), + .clken(1'b1), + .clock(Clock), + .data(Ram_in), + .wren(~RW_n), + .q(Ram_out) + ); +endmodule \ No newline at end of file diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzapc b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_c.bin similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzapc rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_c.bin diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_c.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_c.hex new file mode 100644 index 00000000..11797d04 --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_c.hex @@ -0,0 +1,65 @@ +:10000000821491141F139B14AA14BE145F13D014EE +:10001000931228142F143614051511151F152C15BD +:10002000D013D013870000000C313630404BCD0C7C +:10003000313230404BCD0D3830404BCD0A5A454916 +:100040005440505241454D49C50647414E474041F5 +:100050005546404C4F40534348414C5445CE0647CB +:10006000414E474041554640484940534348414C22 +:100070005445CE0947454C444045494E57455246A4 +:1000800045CE094B4E4F50464044525545434B4593 +:10009000CE0B535049454C454E44C5025A45495430 +:1000A0003A080350554E4B5445BA03484F45434810 +:1000B0005354454050554E4B545A41484CBA034C4A +:1000C00045545A54454050554E4B545A41484CBAE9 +:1000D0000247524154554C494552453F0253494508 +:1000E00040484142454E4045494E45CE044E455656 +:1000F000454E4052454B4F5244404155464745536B +:1001000054454C4CD40A3102414E4641454E474578 +:10011000D209320253504F52544641485245D209F7 +:10012000330252454E4E4641485245D206340247AC +:1001300052414E444050524958404641485245D29F +:100140000752414E47464F4C474540314042495384 +:100150004035BA97151D163C130516AC15CF158FF3 +:1001600016A316C7151F1389156E167E165F13E9A1 +:1001700015931228142F1436142E164116491656AC +:10018000165F165F16000000000254454D50533AAA +:100190000B53434F5245BA0654454D5053405355A7 +:1001A00050504C454D454E54414952C50350415362 +:1001B00053455A404C41405052454D4945524540A7 +:1001C000564954455353C50C5445524D494EC503E9 +:1001D00050415353455A404C41405345434F4E4480 +:1001E0004540564954455353C502425241564F3F2C +:1001F00002564F5553404156455A405245414C498D +:1002000053454055CE044E4F5556454155405245F5 +:10021000434F52444044454050495354C508564FFB +:100220005452454043415445474F524945BA0752FD +:10023000455052454E455A40554E45404C45434F1A +:10024000CE0C414D41544555D20A50524F4645536C +:1002500053494F4E45CC0C4348414D50494FCE0970 +:100260005355504552404348414D50494FCE03539A +:10027000434F5245404140424154545245BA0353C2 +:10028000434F524540505245434544454E54BA06AB +:10029000494E54524F4455495345524031404652BD +:1002A000414EC307504F555353455A404C45404269 +:1002B0004F55544FCEFC167617F4165F170D1728BE +:1002C00017DC17EC1740171F13EB16CE17BE175F7E +:1002D000135017931228142F14361483179717AB43 +:1002E00017BD17CD17CD1700000000025449454D2A +:1002F000504F3A060350554E54454FBA085449459D +:100300004D504F40455854454E444944CF03434116 +:100310004D4249454C4F4041404D454E4F5340564C +:10032000454C4F43494441C40443414D4249454C27 +:100330004F40414D41534056454C4F43494441C4C1 +:10034000084A5545474F405445524D494E4144CFC8 +:100350000946454C494349544143494F4E45D3050D +:100360004849434953544540554E404E5545564FD4 +:10037000405245434FD20A54554050554E54454F74 +:100380004045D3064C4C45564153404C41404445B2 +:100390004C414E544552C107564140454E4053458D +:1003A00047554E444F404C554741D2074C4C414E67 +:1003B0005441534043414C49454E5445D3060353A1 +:1003C0004547554E444F405055455354CF06035072 +:1003D00052494D4552405055455354CF08504F4E09 +:1003E0004741404C41404D4F4E4544C10841474173 +:1003F00043484140454C40424F544FCEFFFFFFFF22 +:00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzapd b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_d.bin similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzapd rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_d.bin diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_d.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_d.hex new file mode 100644 index 00000000..c9b37f45 --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_d.hex @@ -0,0 +1,65 @@ +:10000000DB02070707E6065F1600195E2356C93AAA +:100010004A20A7F8213620467E23BECA3710AE7884 +:10002000FA2B10BED22F1035C33010BED227103499 +:100030003A3920324A20C9237EA7C22710473A23E3 +:10004000204F07814F217C1009113620CD8810E602 +:1000500007CA6F10CD8810E67FD640121313CD88E3 +:1000600010A6121323CD8810A62386C6FC12C9122F +:100070001313CD8810E63FC620C3621003030003AC +:100080000300030102030003E5C521092006087EE1 +:10009000070707AE17172109207E1777237E1777EA +:1000A000237E1777237E177705C29010C1E1C921FF +:1000B0004421363511E710014000CDC91023EB066D +:1000C00008CDDF0AEB2B013EFF1AD5160407075FA8 +:1000D000E603A8F2D7103C862377157BC2CD10D15A +:1000E000130DC2C910C9D525555515151504511143 +:1000F00011044411041041041041010104040404DA +:10010000040101004010040100401001001004002F +:1001100040040010010010004001001000400100E8 +:10012000010004001000407F7974706B676460FE0A +:10013000EEA699655555545145111111044104100D +:100140004041004040100400400400100010001026 +:100150000001000004000004000000400000001046 +:1001600000000000400000000001000000818FA29C +:10017000ADB5BBC0C4C8CBCED0D3D5D7D9DBDCDEC0 +:10018000DFE1E2E3E4E6E7E8E9EAEBECEDEDEEEFF0 +:10019000F0F1F1F2F3F4F4F5F6F6F7F7F8F9F9FA0D +:1001A000FAFBFBFCFCFDFDFEFEFFFFFFFFFF010174 +:1001B0000101010101010101010202020202020228 +:1001C0000202020202020202030303030303030307 +:1001D00003040404040404040505050505060606D5 +:1001E0000606070707070808080909090A0A0A0B8B +:1001F0000B0C0C0C0D0D0E0E0F1010111112131311 +:10020000141516161718191A1B1C1D1E1F20212342 +:10021000242527282A2B2D2F30323436383A3C3EDD +:10022000414346484B4E5154575A5C616468000143 +:10023000131E262C313335393B3D3F414243444D5B +:1002400012F0135115B316C83AC83AC93ACA3AB8A7 +:1002500012DB133C138113C612E012FD12091315B1 +:10026000131F13351343134F135F1370139312812E +:10027000129412A6129C13A713B713C413D013D051 +:1002800013074D4158404355525645403136304092 +:100290004D5048C0074D4158404355525645403196 +:1002A0003230404D50C8074D415840435552564595 +:1002B00040403830404D50C80A455854454E44459A +:1002C000444054494DC5045348494654404745416C +:1002D0005240494E544F404C4F574053504545C4EF +:1002E00002534849465440544F40484947484046C5 +:1002F0004F52404D41584053434F5245BF0A494E1B +:100300005345525440434F49CE0A505553484042FA +:100310005554544FCE0C47414D45404F5645D2059C +:100320005B3B5C3B5D3B5E3B5F3C5B3C5C3C5D3C0C +:100330005E3C5F3DDB0254494D453A090353434F50 +:100340005245BA03484947484053434F5245BA03C0 +:1003500050524556494F55534053434F5245BA08A2 +:1003600044415453554E40323830405A5A5A41D085 +:1003700008434F4E47524154554C4154494F4E53F8 +:10038000BF03594F5540484156454053455440419D +:10039000404E4557405245434F5244BF0A310252E6 +:1003A0004F414440484FC708320246454E444552EB +:1003B0004042454E4445D2093302484F54405748C5 +:1003C00045454CD30A340250524F4052414345D226 +:1003D0000A35024348414D50494FCE06594F5552B8 +:1003E00040524154494E47403140544F4035BA0085 +:1003F00000003C144015A214EC1449145E1473144C +:00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzape.bin b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_e.bin similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzape.bin rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_e.bin diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzape.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_e.hex similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzape.hex rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_e.hex diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzapf.bin b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_f.bin similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzapf.bin rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_f.bin diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzapf.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_f.hex similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzapf.hex rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_f.hex diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzapg.bin b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_g.bin similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzapg.bin rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_g.bin diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzapg.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_g.hex similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzapg.hex rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_g.hex diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzaph.bin b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_h.bin similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzaph.bin rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_h.bin diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzaph.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_h.hex similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzaph.hex rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/280zzz/zzzap_h.hex diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Gunfight/7609e.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Gunfight/7609_e.hex similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Gunfight/7609e.hex rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Gunfight/7609_e.hex diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Gunfight/7609f.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Gunfight/7609_f.hex similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Gunfight/7609f.hex rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Gunfight/7609_f.hex diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Gunfight/7609g.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Gunfight/7609_g.hex similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Gunfight/7609g.hex rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Gunfight/7609_g.hex diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Gunfight/7609h.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Gunfight/7609_h.hex similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Gunfight/7609h.hex rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Gunfight/7609_h.hex diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/InvadersRevenge/invrvnge.e.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/InvadersRevenge/invrvnge_e.hex similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/InvadersRevenge/invrvnge.e.hex rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/InvadersRevenge/invrvnge_e.hex diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/InvadersRevenge/invrvnge.f.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/InvadersRevenge/invrvnge_f.hex similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/InvadersRevenge/invrvnge.f.hex rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/InvadersRevenge/invrvnge_f.hex diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/InvadersRevenge/invrvnge.g.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/InvadersRevenge/invrvnge_g.hex similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/InvadersRevenge/invrvnge.g.hex rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/InvadersRevenge/invrvnge_g.hex diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/InvadersRevenge/invrvnge.h.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/InvadersRevenge/invrvnge_h.hex similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/InvadersRevenge/invrvnge.h.hex rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/InvadersRevenge/invrvnge_h.hex diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/7643-1_.cpu.bin b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/7643-1_.cpu.bin new file mode 100644 index 00000000..e65c5a07 --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/7643-1_.cpu.bin @@ -0,0 +1 @@ +                                                                                                             \ No newline at end of file diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/7643-1_.cpu.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/7643-1_.cpu.hex new file mode 100644 index 00000000..f0f5cb75 --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/7643-1_.cpu.hex @@ -0,0 +1,65 @@ +:100000000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F00 +:100010000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0FF0 +:100020000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0FE0 +:100030000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0FD0 +:100040000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0FC0 +:100050000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0FB0 +:100060000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0FA0 +:100070000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F90 +:100080000D0D0C0C0C0C0C0C0909090D0D0D0D0EB1 +:100090000E0E0B0B0B0C0C0C0C0D0D0C090F0E0E99 +:1000A0000D0D0C0C0C0E0F0C0909090D0D0D0D0E8C +:1000B0000E0E0B0B0B0C0C0C0C0D0D0C090F0E0E79 +:1000C0000D0D0C0C0B0E0F0C0909090D0D0D0D0E6D +:1000D0000E0E0B0B0B0C0C0C0C0D0D0C090F0E0E59 +:1000E0000D0D0C0D0B0E0C0C0909090D0D0D0D0E4F +:1000F0000E0E0B0B0B0C0C0C0C0D0D0C090F0E0E39 +:100100000D0D0C0D0B0E0C0C0909090D0D0D0D0E2E +:100110000E0E0B0B0B0C0C0C0C0D0D0C090F0E0E18 +:100120000D0D0C0D0B0E0C0C0909090D0D0D0D0E0E +:100130000E0E0B0B0B0C0C0C0C0D0D0C090F0E0EF8 +:100140000D0D0C0D0B0E0C0C0909090D0D0D0D0EEE +:100150000E0E0B0B0B0C0C0C0C0D0D0C090F0E0ED8 +:100160000B0B0C0D0B0E0C0C0909090D0D0D0D0ED2 +:100170000E0E0B0B0B0C0C0C0C0D0D0F090F0E0EB5 +:100180000B0B0C0D0B0E0C0C0909090D0D0D0D0EB2 +:100190000E0E0B0B0B0C0C0C0C0D0D0F090F0E0E95 +:1001A0000B0B0C0D0B0E0C0C0909090D0D0D0D0E92 +:1001B0000E0E0B0B0B0C0C0C0C0D0D0F090F09097F +:1001C0000B0B0C0D0B0E0C0C0909090D0D0D0D0E72 +:1001D0000E0E0B0B0B0C0C0C0C0D0D0F090F09095F +:1001E0000B0B0C0D0B0E0C0C0909090D0D0D0D0E52 +:1001F0000E0E0B0B0B0C0C0C0C0D0D0F090F09093F +:100200000B0B0C0D0B0E0C0C0909090D0D0D0D0E31 +:100210000E0E0B0B0B0C0C0C0C0D0D0F090F09091E +:100220000B0B0C0D0B0E0C0C0909090D0D0D0D0E11 +:100230000E0E0B0B0B0C0C0C0C0D0D0F090F0909FE +:100240000B0B0C0D0B0E0C0C0909090D0D0D0D0EF1 +:100250000E0E0B0B0B0C0C0C0C0D0D0F090F0909DE +:100260000B0B0C0D0B0E0C0C0909090D0D0D0D0ED1 +:100270000E0E0B0B0B0C0C0C0C0D0D0F090F0909BE +:100280000B0B0C0D0B0E0C0C0909090D0D0D0D0EB1 +:100290000E0E0B0B0B0C0C0C0C0D0D0F090F09099E +:1002A0000B0B0C0D0B0E0C0C0909090D0D0D0D0E91 +:1002B0000E0E0B0B0B0C0C0C0C0D0D0F090F09097E +:1002C0000B0B0C0D0B0E0C0C0E09090D0D0D0D0E6C +:1002D0000E0E0B0B0B0C0C0C0C0D0D0F090F09095E +:1002E0000B0B0C0D0B0E0C0C0909090D0D0D0D0E51 +:1002F0000E0E0B0B0B0C0C0C0C0D0D0F090F0D0D36 +:100300000B0B0C0D0B0E0C0C0909090D0D0D0D0E30 +:100310000E0E0B0B0B0C0C0C0C0D0D0F090F0D0D15 +:100320000B0B0C0D0B0E0C0C0909090D0D0D0D0E10 +:100330000E0E0B0B0B0C0C0C0C0D0D0F090F0D0DF5 +:100340000B0B0C0D0B0E0C0C0909090D0D0D0D0EF0 +:100350000E0E0B0B0B0C0C0C0C0D0D0F090F0D0DD5 +:100360000B0B0C0D0B0E0C0C0909090D0D0D0D0ED0 +:100370000E0E0B0B0B0C0C0C0C0D0D0F090F0D0DB5 +:100380000F0F0C0D0B0E0C0C0909090D0D0D0D0EA8 +:100390000E0E0B0B0B0C0C0C0C0D0D0F090F0D0D95 +:1003A0000F0F0C0C0B0E0F0C0909090D0D0D0D0E86 +:1003B0000E0E0B0B0B0C0C0C0C0D0D0F090F0D0D75 +:1003C0000F0F0B0C0C0E0F0C0909090D0D0D0D0E66 +:1003D0000E0E0B0B0B0C0C0C0C0D0D0F090F0D0D55 +:1003E0000F0F0C0C0C0C0C0C0909090D0D0D0D0E4A +:1003F0000E0E0B0B0B0C0C0C0C0D0D0F090F0D0C36 +:00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue0.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue0.hex deleted file mode 100644 index bc3245c2..00000000 --- a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue0.hex +++ /dev/null @@ -1,513 +0,0 @@ -:10000000000000C34B160000F5C5D5E5C3E70500A9 -:10001000F5C5D5E53E8032BE2021C02035CD4B0A46 -:10002000DB010FDA66003AEA20A7CA42003AEB2069 -:10003000FE09D23E00C6012732EB20CDAC0AAF321A -:10004000EA203AE920A7C260003AEF20A7C2E60EF4 -:100050003AEB20A7C26B003ABF21A7C2E60E000010 -:10006000E1D1C1F1FBC93E01C33F003A5820A7C20C -:1000700060003E01CDDC08310024FBCDA401CDBDE4 -:100080000A21133011501D0E04CD2A05D3063AEB78 -:10009000203DCD974A0E14C28901116A0BCD2A0565 -:1000A000DB01E604CA8E000699AF32EE203AEB205F -:1000B000802732EB20CDAC0ACD184C22F82022FC50 -:1000C00020CDD402CDDF02CDEA02CDC5480620CD39 -:1000D0000049CDA401CD9805CDAC4C21010122E50C -:1000E00020CDB447CD4C4CCD8F02CDE349CDD402C9 -:1000F0000000000000CDF202CDCA01CD6102CD7931 -:1001000002CD4602CDA901CD781F3A2720A7D306FC -:10011000CA0A01CD1210C223013A2820FE02D306DA -:10012000C213012129203600CD30040000002A2D01 -:10013000203A2C20FEFE010014C4850109221D2056 -:10014000CD6D0D2113203601215E207EA7C2304CDB -:100150002114207EA7C2AA04215D207EA7C26203CB -:10016000CD770CD3063A1D20FEB0DC7F023A1D206D -:10017000FEB0D4580D3A1620A7CC9D0DCD054CCD20 -:100180007B48C34801010010C911550BCD2A05DB7E -:10019000010F0FDA9D010FDAA700C38E0006983E0B -:1001A00001C3AA003E01C3AA01AF32E920C9000081 -:1001B00000000000C9C5E51A772B1B0DC2B701E18D -:1001C00001200009C105C2B501C9210224119118FD -:1001D000010318CD1B0C21052401030ACD1B0C21A2 -:1001E000043D11D818010318CDB50121C73E11F601 -:1001F0001801030ACDB5012102270E17113118D5B8 -:10020000C50608CD000AC1D10DC35B1D11EB19C590 -:100210000608CD000AC10DC20C02CD22172E000E19 -:10022000067EE680C43002110500190DC22102C904 -:10023000E5C57EE67F47235E2356234E237E67690E -:10024000CD000AC1E1C9CD22172EACC3CA4B002193 -:100250000127111718C50610CD000AC10DC25202A0 -:10026000C9211C250E0E11F319C5E50605CD000A9E -:10027000E12424C10DC26602C911131AC3A90D3AA3 -:100280001320A7C82126207EA7C03601C36D0DCD3F -:1002900022172EAE4E79A7C8211B3BC5110B1AE5BC -:1002A0000608CD000AE12525C10DC29B02C9000048 -:1002B00000C9000000C9CD8C052311F5201ABE1B12 -:1002C0002B1ACAC902D0C3CB02BED07E1213237E22 -:1002D00012C3004706C011A31A210020C3040B0655 -:1002E000C021002111A31BC3040B06C0210022C39F -:1002F000E402060121292070CD22172E40702E56CF -:1003000070C90600C3F402060121292070CD22170E -:100310002E70702E9070217020702E7C702E887040 -:10032000C90600C30903CDA401CD2103CD020321D9 -:1003300013203600CD9D4ACD14492A1D20010310FB -:10034000CD300C0E0411231AC52A1D20010210CD38 -:10035000180C3E08CDD505C10DC24803CD1949C3BF -:10036000CB05CD26030000C3A54A2EAC3500CAB08C -:1003700004CD424BC3C61E3AEF20A7C83AC620C3DD -:10038000440A00003600CD744CCD224FCD2103C36A -:10039000B91FCD22172EAE34E5CD8F02E12EA07EFF -:1003A000A7CAD4032EAE7EFE06CC0E04CDCB05CD5F -:1003B00022172EA25E2356EBCD0A4FCDA44CCDCBF7 -:1003C00005CDB54CCD22172EAB342EAF342E000602 -:1003D000AACDE402CDCB05C90000211B3D79A7C8F9 -:1003E0000025253DD306C2E103C50610CD340ACD54 -:1003F0004249000000E5CDF549CD0A4F3E10CDD56C -:1004000005E1000000000000C10DC2E903C9C521DB -:10041000142A11AD1E0E10CDB305CD004D00000005 -:100420000000000000215000CD0A4F000000C1C9AB -:10043000CD22172E2D7EFE04210625D44604114A16 -:1004400004060DC3000A21063DC93E083E003E2AAF -:10045000003E02003E2810000000000000000000E6 -:10046000000000000000003600CD020321132036FA -:1004700000CDD20D3AAE20A7C2290621010122A04B -:10048000203AA120A7D306C28104CD8316211320D0 -:100490003601211B203601CD070321162036012A03 -:1004A0009E203A9D2047C3340A00CD6704C35801FB -:1004B000CDB602CDD4020000AF32EE20CDA401CDE6 -:1004C0000203CD210321132D11634B0E0ACDB30579 -:1004D000CD974B3AE320A7C40A47CDC04CCDF84C8A -:1004E000CD864BCDCB05CDA901C37316CD8C05238D -:1004F00011F5201ABE1B2B1ACAC902D0C3CB0200A9 -:1005000000000000000000000000F378D305060A98 -:100510000E000DC2120505C21005FBC94E2346236D -:1005200079867723788677C90E021AD5CD3605D11C -:10053000130DC22A05C9CD9B0B0605D306CD000AB3 -:10054000C5AF770120000977097709C1C9CD8C05AE -:100550003AF120A7C8AF32F120E52AF220EBE17E84 -:100560008327775F237E8A277757237E23666F7AD8 -:10057000CD74057BD5F50F0F0F0FE60FCD8705F175 -:10058000E60FCD8705D1C9C61CC336053AC6200F74 -:1005900021F820D821FC20C92101240E1C06DFE50A -:1005A000C536001120001905C2A105C1E1230DC205 -:1005B0009D05C9D51ACD3605D13E0732C0203AC0B7 -:1005C000203DC2BE05130DC2B305C93E40C3D505CB -:1005D0003E80C3D50532C0203AC020A7D306C2D87A -:1005E00005C900000000003ADC20A7CA8C0EDB0120 -:1005F000E606C41606CD7C03E610060121CB20C218 -:100600000B067EA723C20B062B0600702AD92023D7 -:1006100022D920C360003E0132E120C9210000221E -:10062000CB20C9CD4208C3A0063AEF20A7C8E1C33A -:10063000620300000000003E20C3D5053E05C3D57F -:1006400005015006CD7C03E660CA55060DC244067E -:1006500005C24406C9E1C921CB2011C208061ACD42 -:10066000040B000000000000119A082117270E1744 -:10067000CD2A05211227115B1CCD0407211027CD9F -:100680000407210E270E05CD0607210E331143095D -:100690000628CD000A11B1080E1021062ACD2A0520 -:1006A0003ADC20A7CA78083ADA20FE20D27808CDB2 -:1006B0001607CD7C03E660FE40CC2F07FE20CC85DC -:1006C000073AE120A7C278083ACC20A7C2CF070199 -:1006D0003001CD2607CD1E073ADA20FE1DC2A00646 -:1006E0000605C521062A0620CDEB09CD3C0611B131 -:1006F0000821062A0E04CD2A05CD3C06C105C2E21A -:1007000006C3A0060E0B0605CD000AC5016001094F -:10071000C10DC20607C92ADD203E2AC336052ADDDF -:10072000203E1BC336050DC2260705C22607C9CDCC -:100730004106CD1E072ADD207DFE11CA6007FE0F8F -:10074000CA69077CFE33CA740724247CFE35D25460 -:1007500007C35A07CD1E07210D3622DD20C3160719 -:100760007CFE3BD27907C36F077CFE3BD27F072418 -:1007700024C35A072634C34907210F27C35A072128 -:100780000D27C35A07CD4106CD1E072ADD207DFE69 -:1007900011CAA907FE0FCABA077CFE28DAC307FEF2 -:1007A00034C2AF072633C3AF077CFE28DAB407256F -:1007B00025C35A07211127C35A077CFE28DAC90727 -:1007C000C3AF07210F3BC35A0721113BC35A07018F -:1007D000FF20CD26073ADB20FE0AD25D083ADD2055 -:1007E000FE11CAFD07FE0FCA03083ADE20FE32D210 -:1007F0000B08CD3B08C616CD4208C3A006CD3B086A -:10080000C32306CD3B08C60BC32306FE35D27808AA -:100810003ADB20A7CA31082ADF202522DF203E1B31 -:10082000CD360521DB203521CF203ADB20856F3600 -:100830001BCD1C0600000000C3A0063ADE20D62710 -:100840000FC921CF20F53ADB20856FF1772ADF2011 -:10085000CD360522DF2021DB2034C31C063ADD2003 -:10086000FE0DC278083AEE20FE32D27008C3780836 -:10087000FE36D27808C31008AF32DC20CD2009CD77 -:100880008D08C398050650211E2DC3EB092ACD20E3 -:1008900011CF203ADB204FC32A0507082B12020E86 -:1008A0001104111B1B110406081213110013080E6A -:1008B0000D0D000C041B2E2F2F2F2F2F2F2F2F2F1E -:1008C0002F2E000000001B1B1B1B1B1B1B1B1B1BBD -:1008D000000000011127073000000000325820AF4F -:1008E00032BF21C93AEF20A7C83AC620C3440A3A0A -:1008F000EF20A7CA9247C362030000000000000077 -:10090000000000E5D5110004193E1CCD3605D1E1EB -:10091000C36F05CD8C057E23666F292929297CC9E3 -:100920003ADB20A7CA3709473E0A90373F1FC62D3A -:10093000672E1E22CD20C9211E2D22CD203E0A3237 -:10094000DB20C9001F141609001E01011E001F151F -:10095000150A000000000000000000001F1515111E -:10096000001F08041F001F11110E003AEF20A7CA34 -:100970007F093A1820A7C2380FCD410AC3380F2A81 -:100980001020CDC009E603C291097DFEB5D4A409AB -:10099000232210207E0FDAAA0F0FDACB0FAF321C02 -:1009A00020C3480F2EA6C900000002010101000269 -:1009B000020202020202000000000000000000002B -:1009C0003A12203C321220C9CD2C0AC5E51AD304B4 -:1009D000DB03AE772313AFD304DB03AE77E1012053 -:1009E0000009C105C2CB09C9CD2C0AC5E5AF7723E3 -:1009F0007723E101200009C105C2EB09C9CD2C0A0A -:100A0000C51A771301200009C105C2000AC9CD2CFF -:100A10000AC5E51AD304DB03772313AFD304DB0342 -:100A200077E101200009C105C2110AC97DE607D39B -:100A300002C31F0BAFC57701200009C105C2350AEB -:100A4000C9C377030FDB02D0DB01C9DB02E604C8B0 -:100A50003A5920A7C03100240604C5CD9805C10528 -:100A6000C25A0A3E01325920CDA401FB11571C2164 -:100A700016300E04CDB305CDCB05C30B4C00000ED4 -:100A80001C211E24117F0BC32A0521F820C3960ABE -:100A900021FC20C3960A5E2356237E23666FC30380 -:100AA000090E0721013511541DC32A053AEB2021F7 -:100AB000013CC61CC3360521F420C3960ACD340B75 -:100AC000CD7F0ACD8A0ACD900ACDB70ACD2009CDB7 -:100AD0008D08CDA10AC3AC0A21BE20461AE680A823 -:100AE000C037C9322B241C16110D0A08070605044D -:100AF000030201342E27221C181513100E0D0C0BA7 -:100B0000090705FF1A77231305C2040BC9E5232340 -:100B10005E2356234E2346E1D55E2356EBD1C9C54D -:100B200006037C1F677D1F6F05C2220B7CE63FF624 -:100B30002067C1C92100243600237CFE40C2370B48 -:100B4000C906000C041B0E1504111B1B0F0B00180B -:100B50000411261B271D1B0E111B1E0F0B00180452 -:100B600011121B011413130E0D1B0E0D0B181B1D60 -:100B70000F0B001804111B1B011413130E0D1B1B6C -:100B800012020E11042B1D1B1B1B1B1B1B1B1B1BF3 -:100B90001B1B1B12020E11042B1E1B115B1CA7C872 -:100BA000E5210000C5010500093DC2A50B19EBC1F7 -:100BB000E1C9CD2C0AC5E51AD304DB032FA67723A0 -:100BC000131AD304DB032FA6772313AFD304DB035D -:100BD0002FA677E101200009C105C2B50BC9CD2CB4 -:100BE0000AC5E51AD304DB03A6CAF10B3E01325055 -:100BF00020DB03AE7723130DC2E30BAFD304DB037B -:100C0000A6CA090C3E01325020DB03AE77E1012079 -:100C10000009C105C2E10BC9CD2C0AC5E51A77232D -:100C2000130DC21D0CE101200009C105C21B0CC936 -:100C3000CD2C0AC5E5AF77230DC2350CE1012000AC -:100C400009C105C2330CC9010010D3060DC24A0CFC -:100C500005C24A0CC9CD2C0AC5E51AD304DB032F03 -:100C6000A6772313AFD304DB032FA677E10120007F -:100C700009C105C2580CC9210C207EA7C836002125 -:100C80000000220020CD22172E722256200E087E50 -:100C9000A7CA9A0CCD3D0DD2D20CCD450DC28F0CFA -:100CA000CD22172E92CDE74C0E047EA7CAB50CCDEF -:100CB0003D0DD2C90CCD450DC2AA0C0000002A067C -:100CC0002001F8FA09C3211F00CD500DDADB0CC357 -:100CD000B50CCD500DDADB0CC39A0C3A072023BEBD -:100CE000D2E60CC3B50CF53E188647F1B8DAF40C21 -:100CF00000C3B50CC34E1E00CD370DE5CD1E490611 -:100D00001311B719CDFD09CDE11DE1E50613CDFDA8 -:100D100009CDE11DC3E51E00E1E57DD6086F06188B -:100D2000CD7917E10618CD7917C3004F00000000F8 -:100D300000000000000000235E2356EBC9233A06A2 -:100D400020C608BEC92A56202323232256200DC9B7 -:100D5000F53E088647F1B8C90000003A1620A7C83A -:100D60002125207EA7C0360121292036003A2C20DB -:100D7000FEFE2A2D20010011C4990D090612CD2C6A -:100D80000AC53E01AE770000C31E4801200009C11C -:100D900005C2810DC3804F0DC901000DC9219C20E2 -:100DA0007EE610110B1AC47902CD22172E2D4E7E2D -:100DB000A7C8237EA7C4C00D2323230DC2B30DC92A -:100DC000E5C523D5CD380DD1D50608CDFD09D1C156 -:100DD000E1C92A1D207CFE3CDAF50DFED4D2F50DCA -:100DE0007DFE1BDAF50DFE20DAFB0DFE28DA4C0E37 -:100DF000FE30DA760E21AE203601C97CFE44D204E4 -:100E00000EC3F50DFE56DA420EFE84D2110EC3F566 -:100E10000DFE94DA470EFEC4D21E0EC3F50DFED4AD -:100E2000DA260EC3F50DC32F1E00CD221736002380 -:100E300023CD370D229E2078329D20000000000037 -:100E400000C92E00C3311E2E05C3311E7CFE3CD2CC -:100E5000550EC3F50DFE59DA710EFE7DD2620EC33A -:100E6000F50DFE96DA6A0EC3F50D2E140630C33E5C -:100E70001E2E0FC36C0E7CFE73D27F0EC3F50DFECB -:100E80009CDA870EC3F50D2E19C3451EAF32BE2066 -:100E9000219C20342150207EA7C4BF0E3AE920A710 -:100EA000C260003AEF20A7CA2547CDDD12215320AA -:100EB0007EFE01CC9A11CDF04CCDB64FC36000360A -:100EC000002A1D207DFEB8D20C1FFE30DAD50E217F -:100ED0005D203601C97CFE3CDACF0EFED4D2CF0EA7 -:100EE0002114203601C9215320347EE60377CDDD5D -:100EF00012CD040F3AA020A7C4C510CDAB49CD3AFE -:100F00004EC360003A5320A7CA1B0FFE01CA9A11B4 -:100F1000FE02CA5C13FE03CAC214C93A1320A7C852 -:100F2000CDAC12CD364C3A1D20FEBADA350F3A164A -:100F300020A7CA480FC36B09E6600707DAAA0F07A4 -:100F4000DACB0F211C203600CD9A0F3A1620A7CA03 -:100F5000580FCD5310C3690FCD1210C48B0F3A1D1B -:100F600020FE40DA820FCDE70F211D20CD0D0BC5ED -:100F7000D5CDB20B211B20CD1C052A1D20D1C1C30C -:100F8000DE0BCD8249CDED0FC3690FC3CB4C347E50 -:100F9000E60123233600C036FFC93A1620A7211BDD -:100FA00020C2A70F36FEC93601C93A1E20211C20D7 -:100FB000FEE0D2C60F3A1620A7C2961D3602C348DD -:100FC0000F3603C3480F3600C3480F3A1E20211CBA -:100FD00020FE30DAC60F3A1620A7C2E20F36FEC353 -:100FE000480F36FDC3480FCD1210CA1810CD34106B -:100FF000DA2B10C3ED4ECD4810211A20347EE601C5 -:10100000112C18CC0E102A23200605C3C80911275D -:1010100018C9CD410AE610C92117207EA7C3674928 -:101020002A23200605112C18C3550C211A20CDFDAA -:101030000FC3F60F2117207EA7C241103601CD73D2 -:101040004F2A23207DFE30C92A1D2001F8030922E2 -:101050002320C92117207EA7C25E10CD48100000B2 -:1010600000000000CD2010CD48100000000000005E -:101070000000219820CD1210CA9510E5211B2036C2 -:1010800002E1C3FC0F0000000000000000000000AF -:101090000000009800E523347EE601211B20C2AB4E -:1010A000103601E1347EE604C300103600C3A310FD -:1010B000CD22172EAD7E21FB19A7C4C11022A72077 -:1010C000C921031AC921A2207EA7C2D610CD8B1D2B -:1010D000CDB010CDFB10CDFB10CD22172EAD7EA7CD -:1010E000C229113AA520FE19DC0411211E203AA6BE -:1010F00020BEDA0B1121A320CD1C0521A520CD0D8A -:101100000BC3C8092100FF22A320C921010022A38B -:1011100020211D203AA520BED21E11C3F5102100AA -:101120000022A020AF32A220C921AD207EA7C23C60 -:10113000113AA520FE19DA3C11C3F5103601210041 -:101140000122A320211E203AA620BED25111C3F5B0 -:101150001021010022A320211D203AA520BED26427 -:1011600011C3F510CD22172EAD3600C31E11CD22AE -:10117000172E2D4EE52B2B2B23CD32123600CD37DB -:101180000D22A5200608CDE809E17EA7C8357EFE20 -:1011900003DA9511C92EAD3601C93A1620A7CC172E -:1011A000162129207EA7C44612CDEB48000000215D -:1011B00088207EA7C8237EA7C2001236012A8A2073 -:1011C0004E7DFE37D42112228A20CD22172E72CDD9 -:1011D0003B12C2ED112A8A2023228A20CD22172E0B -:1011E0008C7EFE04C22C12210000C36F1EE52A8AE9 -:1011F0002023228A20E1CD370D01000909228E200B -:10120000218E20CD0D0BCD550C218E207EFE40DA97 -:101210002412218C20CD1C05218E20CD0D0BC3C89E -:10122000092E27C92A8E200603CD79172189203659 -:1012300000C9110300190DC23512C979A7CA43129A -:10124000CD32127EA7C9112E20CDD80AD8212D204B -:10125000CD0D0BCD180C3A2E20FE28DC9C12FEC8BA -:10126000D4A2123A1620A7CC7612212B20CD1C0531 -:101270002127203601C92A2D200100100911F71756 -:10128000010210CD2C0AC5E51AB67723130DC288CA -:1012900012E101200009C105C28612C9212C2036A5 -:1012A00002C9212C2036FE21282034C93A1620A755 -:1012B000C83A1D20FEB8D0CD1210C2CC12210D208C -:1012C0007EA7C2C8123601C9233601C9210E207E6D -:1012D000A7C836002B36002100203601C921002086 -:1012E0007EA7C8237EA7C2F51236012A1D20010859 -:1012F0000509220620110720CDD80AD0210620CDCD -:101300000D0BCD57172106207EFEB8D24D132104B8 -:1013100020CD1C05CD901DCD2C0AC5E51AD304DBCC -:1013200003A6CA2A133E01320C20DB03AE77231337 -:10133000AFD304DB03A6CA3E133E01320C20DB030D -:10134000AE77E101200009C105C21A13C92A06209F -:101350000603CD7917210000220020C93A1620A7E4 -:10136000CC3316CD22172E407EA7C25D142E707E80 -:10137000A7C8C3271FC5E57EF5E680CABD13F1F5F2 -:101380000707223420217B19DC4914223A20F1007E -:10139000000000000000002A3420CD370D22382044 -:1013A000213820CD0D0BCDFD092139207EFEE0D462 -:1013B0004D14213620CD1C052A3820EBF5F1E12310 -:1013C00073237223C10DC275132170207EA7C82319 -:1013D0007EA7C21A1436012A72204E7DFE56D45AB8 -:1013E00014227220CD22172E7ECD3B12C207142A62 -:1013F000722023227220CD22172E8A7EFE04C24341 -:1014000014210000C3731EE52A722023227220E1FA -:10141000CD370D01000909227620217620CD0D0B54 -:10142000CD550C2176207EFE40DA3B14217420CD70 -:101430001C05217620CD0D0BC3C8092A7620060392 -:10144000CD79172171203600C9218E19C9E52A38B6 -:10145000200613CDE809E13628C92E47C9CDA514C9 -:1014600022652021F718226920CD22172E414E2314 -:10147000C5E5CD380D226720CD9B1DCDFD09216826 -:10148000207EFEEAD49814216520CD1C052A672011 -:10149000EBC3A11DC27014C9E52A6720060BCDE875 -:1014A00009E13628C9CD22172EAB7EA7210001C83D -:1014B000FE01210001C8C37B1EC9007323722300F3 -:1014C00000C93A1620A7CC3F16CD22172E567EA76C -:1014D000C2B7152E907EA7C8E5CD5915223620211A -:1014E000A119223A20E1234E23C5E57EA7CA121591 -:1014F000CD370D223820213820CD0D0BCDFD09210F -:1015000039207EFE28DC6E15213620CD1C052A38B8 -:1015100020EBC3B31DC2E914217C207EA7C8237E23 -:10152000A7C2971536012A7E204E7DFE47D4561558 -:10153000227E20CD22172E92CD3B12C289152A7E03 -:101540002023227E20CD22172E8B7EFE04C28315FF -:10155000210000C3771E2E37C9CD22172EAB7EA7E0 -:101560002100FFC8FE012100FEC8C3621FC9E52A91 -:1015700038200613CDE809E136E0C92A82200603A7 -:10158000CD7917217D203600C9E52A7E20C3BE1DF6 -:1015900001000909228220218220CD0D0BCD550C9E -:1015A0003A8220FE40DA7B15218020CD1C05218265 -:1015B00020CD0D0BC3C809CD021622652021391993 -:1015C000226920CD22172E574E23C5E5CD380D2296 -:1015D0006720216720CD0D0BCDFD092168207EFEFF -:1015E00028DCF515216520CD1C052A6720EBC3AA50 -:1015F0001DC2CA15C9E52A6720060BCDE809E136E8 -:10160000EDC9CD22172EAB7EA72100FFC8FE012118 -:1016100000FEC8C3911EC92111270E05E5219420A3 -:10162000347EA10603C22F16E111DF19C3000AE1BF -:10163000C3340A210F3B0E01E5219520C32016215A -:1016400008360E04E5219620C32016310024AFD3BE -:1016500003D30421002011A31A0600CD040B21009E -:101660002111A31B06C0D5CD040B210022D106C039 -:10167000CD040BAFD303D305CDA90100000000FBBF -:10168000C3B546CDCB0521F7182263200000002109 -:1016900039192261200606CD22172E414E23C5E5B9 -:1016A000CD380D2267202A6320C3CB1DC29E162A87 -:1016B0006320110B0019226320C5CD470CCD2217E2 -:1016C0002E574E23C5E5CD380D2267202A6120C351 -:1016D000D61DC2C4162A6120110B0019226120C137 -:1016E00005C29716CDD64FCDF11ECD22172E417EC5 -:1016F000FE0AD2F616342E577EFE0BD2FF1634CDDC -:10170000F61DCD0E17210836CD0E17210F3B06030F -:10171000C3340AEB2A6720060BC3FD090000000052 -:1017200000003AC62067C90001020300010203005D -:101730000102030001020300010203000102030091 -:101740000102030101020300010203000102030080 -:1017500001020300010203CD2C0AC5E51AD304DB04 -:10176000032FA6772313AFD304DB032FA677E10162 -:10177000200009C105C25A17C9CD2C0AC5E5AFD34F -:1017800004DB03772300AFD304DB0377E101200000 -:1017900009C105C27C17C9000000008001C003E038 -:1017A00047E047F04FF04FF85DF85DFC7FFC5FFECF -:1017B0005DFF5DFF0FFF0F011C0118013801700173 -:1017C00070017001F001F001F001F0017001700191 -:1017D0007001300138011CFF0FFF0FFF5DFE5DFC43 -:1017E0005FFC7FF85DF85DF04FF04FE047E047C0E9 -:1017F000038001000000000000000002019E03E2DF -:1018000007F806E007FC0EFC0EE007F806E2079E6C -:101810000302010000000000012735785E78DEDE5B -:10182000785E78342701003050885030305CCF5CCF -:1018300030FF7FFFFF7F3FFF7F83CFFFC1FFFFC5EB -:10184000D5D1FFC1DDC1FFF3C1D0D8FAFEFEFFFF45 -:10185000FFFFFFFFE0FFFFE0EEE0FFFFE0EEE0FF55 -:10186000FFFFFEFEFAF8C8800080D0D8FAFEFEFE28 -:10187000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE295 -:10188000EAE8FFFFE0EEE0FFFFFFFFFFFFFFFFFDE5 -:10189000E4FFFFFFFFFFFFFFFFCCFF33BFFFFFEFC2 -:1018A000FF3F8FFFFFF9FFE3E7FFEBDCFF1FDBFFED -:1018B000FFFFFFFFFBFFFFFFFFFFCFFFFFFDFFE38A -:1018C0009FFFFB03FFEF00FFD300FFFF00FFFF00C0 -:1018D000FFFF00FFFB00FF7100FFFFFF7FEF1FD93D -:1018E000F9037FFF019B7F00FE1F00FF03003F0005 -:1018F00000070000010000000000101C22422244EA -:10190000221C00000000101C3E1E3E1C00000000B7 -:101910000000081C0C1C0800000000000000080C5F -:1019200008000000000000000000080000000000A7 -:101930000000000000000000000814242212140817 -:101940000000000000081C3C1E1C080000000000F5 -:10195000081C1C1C08000000000000081C1C0800DB -:10196000000000000000000800000000000000006F -:101970000000000000000000000000000000080857 -:101980001C1E37BFBEF6F6BEBF371E1C080800007F -:10199000000008081C7E6C78EC786C7E1C0808003F -:1019A0000000000000000C1E96BCF4BC961E0C004B -:1019B0000000000040F040000000040E143A3E1DFC -:1019C0003D3E1D2E0C040000000000880120044E46 -:1019D00014BA381D39BE340C8A2C014012000002A2 -:1019E00007020000000000FC023F020001070F0197 -:1019F0000001031028502810000000000001637C43 -:101A00001318000018137C6301000000C032DEF8D8 -:101A1000DE32C00010096F7C6F0910000E2E241FEB -:101A2000070A1B0000000000008001F00FF81FDC17 -:101A30003EF81FF00FF01FE017E02728C9E89104D7 -:101A4000C1080102004450882870CF241DEF3FE2F6 -:101A5000011A123828484C888C040802320133805D -:101A6000014000008443441B24D817800F8A1FB80C -:101A70003FF83FD020DE6FC26FA26EB812E41602AC -:101A80003000000000000000000000000000000026 -:101A90000000000000000000000000000000000046 -:101AA0000000000000000004000000B41901030061 -:101AB000000000A709000000000000000000FE0078 -:101AC0000000FB17020C000000000000000000FEF8 -:101AD000C8909717023000000000000000000001CD -:101AE000130000000802000025410000C0006070E3 -:101AF00000000000000000000000000000000000E6 -:101B00000000000000000000000000000000010BC9 -:101B100000000000004717FD000000E71901010068 -:101B2000003717FD000000E819010300002717FD2A -:101B3000000000E8190103000000000000000000A0 -:101B4000000000000000FF000000FB190108000079 -:101B50000000000000000000000000000000000085 -:101B60000000000000000000002100000000000054 -:101B700000001B1B130008130E1B1B1B00000000A2 -:101B800011270730000000000000000000000000E6 -:101B90000100000000000000051D2F00001D2600B0 -:101BA000001D3990391803299039180331903918DC -:101BB0000339A049180428A049180430A869180559 -:101BC0002F31480D0A094D564909432C3038480D2C -:101BD000060128280120300118380118E00120E80A -:101BE0000128F00005B07058C0405080686078400F -:101BF0008890A85098683870B00005A0E0387850F8 -:101C0000B06890888040D85848409878C048604074 -:101C100048406000088158B08180A081885081A828 -:101C200040C1B0C0C1A070C190B0C1604000000010 -:101C300000000000040170700168C0019840017844 -:101C4000B000000000800000000000000000000361 -:101C50000000000000000013080B131F2444241F81 -:101C60007F494949363E414141227F4141413E7FC2 -:101C7000494949417F484848403E414145477F08DE -:101C800008087F00417F4100020101017E7F0814A6 -:101C900022417F010101017F2018207F7F1008046D -:101CA0007F3E4141413E7F484848303E4145423DAC -:101CB0007F484C4A31324949492640407F40407E66 -:101CC0000101017E7C0201027C7F020C027F631411 -:101CD00008146360100F1060434549516100000310 -:101CE000030000000000003E4549513E00217F01F5 -:101CF00000234549493142414959660C14247F0467 -:101D0000725151514E1E294949464047485060364C -:101D1000494949363149494A3C08142241000041A9 -:101D2000221408141414141422147F1422181818DE -:101D30001818080808080820404D502000007900B5 -:101D40007900000000C04040404040011C3C7860E9 -:101D50000F1412070211040308131BC2FC01210314 -:101D6000280E14C30C0221EF203601C921102C0EBD -:101D70000C119D09C32A05CDCB05C3C61E215D20CC -:101D800036002127203600233600C93601C36E11E4 -:101D9000210620C30D0B3603C3480F216720C30D56 -:101DA0000BE1CDBA14C10DC39414E1CDBA14C10D29 -:101DB000C3F115E12373237223C10DC3151523222B -:101DC0007E20E1235E2356EBC39015CD1317E1234C -:101DD00023C10DC3AC16CD1317E12323C10DC3D20C -:101DE000163E05C3D505AF321B20C93E01C3E71D12 -:101DF000215E203601C92EAA347EFE06D40E1E2195 -:101E0000532036002A5420CD0A4F211127C936000D -:101E10002EA03601C92E0006AACDE4022EAB342E28 -:101E2000B03601C3E1000000000000000000002EF9 -:101E30000AE52115000610225420E1C32A0EE521EF -:101E40001000C3371E0630E5210500C3371EE57DAF -:101E5000FE92D2651EFE7ED26A1E2E8C34E12B2BA2 -:101E60003600C3F80C2E8BC35C1E2E8AC35C1E2268 -:101E70008820C9227020C9227C20C9FE02210002CC -:101E8000C8FE03210002C8FE04210002C82100038D -:101E9000C9FE022100FEC8FE032100FDC8FE042188 -:101EA00000FEC8FE052100FDC82100FDC9010E0D80 -:101EB00014121B211C1C1B0F0E080D131200000016 -:101EC000000000000000CD22172EA07EA7CAE1006E -:101ED00036002EAA3600E52EA25E2356EBCD0A4F21 -:101EE000E1C3141F00CDEB1DCD22172E8D34C32668 -:101EF00049CD22172E8D7EFE08D4FD1EC936002E38 -:101F00007011131C0630C3040B000000FECBD2CFAF -:101F10000EC3981FE52EAE4E3600CDDA03E1C31591 -:101F20001E010310C3300CE5CD351F223620E123FE -:101F30004E23C37513CD22172EAB7EA7210001C8F7 -:101F4000FE01210001C8FE02210002C8FE0321009B -:101F500002C8210003FE04C8FE05210003C82100B9 -:101F600003C9FE022100FEC8FE032100FDC8FE04D5 -:101F70002100FEC82100FDC9CD22172EAB7EC6016F -:101F800027E60FC61C21023EC336050000000000F4 -:101F900000000000000000003A2E20F5C61A4F7C19 -:101FA000B9D2B01FF1C60B577CBADAB11FC3F01D0E -:101FB000F121C2203601C3E61F21C2207EA7C2C77D -:101FC0001FCDCB05C3920336002EB03AC32067CD98 -:101FD0002C0A0E0611E01FCDB305C3C24EC39D03EC -:101FE0000000001A1A1A3A1E20FED0D4F41F32C381 -:101FF00020C3F01D3EC0C9000000000000FFFFC06C -:00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_1.bin b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_1.bin new file mode 100644 index 00000000..bead8e39 Binary files /dev/null and b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_1.bin differ diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_1.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_1.hex new file mode 100644 index 00000000..5ff2d9cd --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_1.hex @@ -0,0 +1,129 @@ +:10000000000000C34B160000F5C5D5E5C3E70500A9 +:10001000F5C5D5E53E8032BE2021C02035CD4B0A46 +:10002000DB010FDA66003AEA20A7CA42003AEB2069 +:10003000FE09D23E00C6012732EB20CDAC0AAF321A +:10004000EA203AE920A7C260003AEF20A7C2E60EF4 +:100050003AEB20A7C26B003ABF21A7C2E60E000010 +:10006000E1D1C1F1FBC93E01C33F003A5820A7C20C +:1000700060003E01CDDC08310024FBCDA401CDBDE4 +:100080000A21133011501D0E04CD2A05D3063AEB78 +:10009000203DCD974A0E14C28901116A0BCD2A0565 +:1000A000DB01E604CA8E000699AF32EE203AEB205F +:1000B000802732EB20CDAC0ACD184C22F82022FC50 +:1000C00020CDD402CDDF02CDEA02CDC5480620CD39 +:1000D0000049CDA401CD9805CDAC4C21010122E50C +:1000E00020CDB447CD4C4CCD8F02CDE349CDD402C9 +:1000F0000000000000CDF202CDCA01CD6102CD7931 +:1001000002CD4602CDA901CD781F3A2720A7D306FC +:10011000CA0A01CD1210C223013A2820FE02D306DA +:10012000C213012129203600CD30040000002A2D01 +:10013000203A2C20FEFE010014C4850109221D2056 +:10014000CD6D0D2113203601215E207EA7C2304CDB +:100150002114207EA7C2AA04215D207EA7C26203CB +:10016000CD770CD3063A1D20FEB0DC7F023A1D206D +:10017000FEB0D4580D3A1620A7CC9D0DCD054CCD20 +:100180007B48C34801010010C911550BCD2A05DB7E +:10019000010F0FDA9D010FDAA700C38E0006983E0B +:1001A00001C3AA003E01C3AA01AF32E920C9000081 +:1001B00000000000C9C5E51A772B1B0DC2B701E18D +:1001C00001200009C105C2B501C9210224119118FD +:1001D000010318CD1B0C21052401030ACD1B0C21A2 +:1001E000043D11D818010318CDB50121C73E11F601 +:1001F0001801030ACDB5012102270E17113118D5B8 +:10020000C50608CD000AC1D10DC35B1D11EB19C590 +:100210000608CD000AC10DC20C02CD22172E000E19 +:10022000067EE680C43002110500190DC22102C904 +:10023000E5C57EE67F47235E2356234E237E67690E +:10024000CD000AC1E1C9CD22172EACC3CA4B002193 +:100250000127111718C50610CD000AC10DC25202A0 +:10026000C9211C250E0E11F319C5E50605CD000A9E +:10027000E12424C10DC26602C911131AC3A90D3AA3 +:100280001320A7C82126207EA7C03601C36D0DCD3F +:1002900022172EAE4E79A7C8211B3BC5110B1AE5BC +:1002A0000608CD000AE12525C10DC29B02C9000048 +:1002B00000C9000000C9CD8C052311F5201ABE1B12 +:1002C0002B1ACAC902D0C3CB02BED07E1213237E22 +:1002D00012C3004706C011A31A210020C3040B0655 +:1002E000C021002111A31BC3040B06C0210022C39F +:1002F000E402060121292070CD22172E40702E56CF +:1003000070C90600C3F402060121292070CD22170E +:100310002E70702E9070217020702E7C702E887040 +:10032000C90600C30903CDA401CD2103CD020321D9 +:1003300013203600CD9D4ACD14492A1D20010310FB +:10034000CD300C0E0411231AC52A1D20010210CD38 +:10035000180C3E08CDD505C10DC24803CD1949C3BF +:10036000CB05CD26030000C3A54A2EAC3500CAB08C +:1003700004CD424BC3C61E3AEF20A7C83AC620C3DD +:10038000440A00003600CD744CCD224FCD2103C36A +:10039000B91FCD22172EAE34E5CD8F02E12EA07EFF +:1003A000A7CAD4032EAE7EFE06CC0E04CDCB05CD5F +:1003B00022172EA25E2356EBCD0A4FCDA44CCDCBF7 +:1003C00005CDB54CCD22172EAB342EAF342E000602 +:1003D000AACDE402CDCB05C90000211B3D79A7C8F9 +:1003E0000025253DD306C2E103C50610CD340ACD54 +:1003F0004249000000E5CDF549CD0A4F3E10CDD56C +:1004000005E1000000000000C10DC2E903C9C521DB +:10041000142A11AD1E0E10CDB305CD004D00000005 +:100420000000000000215000CD0A4F000000C1C9AB +:10043000CD22172E2D7EFE04210625D44604114A16 +:1004400004060DC3000A21063DC93E083E003E2AAF +:10045000003E02003E2810000000000000000000E6 +:10046000000000000000003600CD020321132036FA +:1004700000CDD20D3AAE20A7C2290621010122A04B +:10048000203AA120A7D306C28104CD8316211320D0 +:100490003601211B203601CD070321162036012A03 +:1004A0009E203A9D2047C3340A00CD6704C35801FB +:1004B000CDB602CDD4020000AF32EE20CDA401CDE6 +:1004C0000203CD210321132D11634B0E0ACDB30579 +:1004D000CD974B3AE320A7C40A47CDC04CCDF84C8A +:1004E000CD864BCDCB05CDA901C37316CD8C05238D +:1004F00011F5201ABE1B2B1ACAC902D0C3CB0200A9 +:1005000000000000000000000000F378D305060A98 +:100510000E000DC2120505C21005FBC94E2346236D +:1005200079867723788677C90E021AD5CD3605D11C +:10053000130DC22A05C9CD9B0B0605D306CD000AB3 +:10054000C5AF770120000977097709C1C9CD8C05AE +:100550003AF120A7C8AF32F120E52AF220EBE17E84 +:100560008327775F237E8A277757237E23666F7AD8 +:10057000CD74057BD5F50F0F0F0FE60FCD8705F175 +:10058000E60FCD8705D1C9C61CC336053AC6200F74 +:1005900021F820D821FC20C92101240E1C06DFE50A +:1005A000C536001120001905C2A105C1E1230DC205 +:1005B0009D05C9D51ACD3605D13E0732C0203AC0B7 +:1005C000203DC2BE05130DC2B305C93E40C3D505CB +:1005D0003E80C3D50532C0203AC020A7D306C2D87A +:1005E00005C900000000003ADC20A7CA8C0EDB0120 +:1005F000E606C41606CD7C03E610060121CB20C218 +:100600000B067EA723C20B062B0600702AD92023D7 +:1006100022D920C360003E0132E120C9210000221E +:10062000CB20C9CD4208C3A0063AEF20A7C8E1C33A +:10063000620300000000003E20C3D5053E05C3D57F +:1006400005015006CD7C03E660CA55060DC244067E +:1006500005C24406C9E1C921CB2011C208061ACD42 +:10066000040B000000000000119A082117270E1744 +:10067000CD2A05211227115B1CCD0407211027CD9F +:100680000407210E270E05CD0607210E331143095D +:100690000628CD000A11B1080E1021062ACD2A0520 +:1006A0003ADC20A7CA78083ADA20FE20D27808CDB2 +:1006B0001607CD7C03E660FE40CC2F07FE20CC85DC +:1006C000073AE120A7C278083ACC20A7C2CF070199 +:1006D0003001CD2607CD1E073ADA20FE1DC2A00646 +:1006E0000605C521062A0620CDEB09CD3C0611B131 +:1006F0000821062A0E04CD2A05CD3C06C105C2E21A +:1007000006C3A0060E0B0605CD000AC5016001094F +:10071000C10DC20607C92ADD203E2AC336052ADDDF +:10072000203E1BC336050DC2260705C22607C9CDCC +:100730004106CD1E072ADD207DFE11CA6007FE0F8F +:10074000CA69077CFE33CA740724247CFE35D25460 +:1007500007C35A07CD1E07210D3622DD20C3160719 +:100760007CFE3BD27907C36F077CFE3BD27F072418 +:1007700024C35A072634C34907210F27C35A072128 +:100780000D27C35A07CD4106CD1E072ADD207DFE69 +:1007900011CAA907FE0FCABA077CFE28DAC307FEF2 +:1007A00034C2AF072633C3AF077CFE28DAB407256F +:1007B00025C35A07211127C35A077CFE28DAC90727 +:1007C000C3AF07210F3BC35A0721113BC35A07018F +:1007D000FF20CD26073ADB20FE0AD25D083ADD2055 +:1007E000FE11CAFD07FE0FCA03083ADE20FE32D210 +:1007F0000B08CD3B08C616CD4208C3A006CD3B086A +:00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_2.bin b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_2.bin new file mode 100644 index 00000000..e125216f Binary files /dev/null and b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_2.bin differ diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_2.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_2.hex new file mode 100644 index 00000000..c79ee941 --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_2.hex @@ -0,0 +1,129 @@ +:10000000C32306CD3B08C60BC32306FE35D27808B2 +:100010003ADB20A7CA31082ADF202522DF203E1B39 +:10002000CD360521DB203521CF203ADB20856F3608 +:100030001BCD1C0600000000C3A0063ADE20D62718 +:100040000FC921CF20F53ADB20856FF1772ADF2019 +:10005000CD360522DF2021DB2034C31C063ADD200B +:10006000FE0DC278083AEE20FE32D27008C378083E +:10007000FE36D27808C31008AF32DC20CD2009CD7F +:100080008D08C398050650211E2DC3EB092ACD20EB +:1000900011CF203ADB204FC32A0507082B12020E8E +:1000A0001104111B1B110406081213110013080E72 +:1000B0000D0D000C041B2E2F2F2F2F2F2F2F2F2F26 +:1000C0002F2E000000001B1B1B1B1B1B1B1B1B1BC5 +:1000D000000000011127073000000000325820AF57 +:1000E00032BF21C93AEF20A7C83AC620C3440A3A12 +:1000F000EF20A7CA9247C36203000000000000007F +:10010000000000E5D5110004193E1CCD3605D1E1F3 +:10011000C36F05CD8C057E23666F292929297CC9EB +:100120003ADB20A7CA3709473E0A90373F1FC62D42 +:10013000672E1E22CD20C9211E2D22CD203E0A323F +:10014000DB20C9001F141609001E01011E001F1527 +:10015000150A000000000000000000001F15151126 +:10016000001F08041F001F11110E003AEF20A7CA3C +:100170007F093A1820A7C2380FCD410AC3380F2A89 +:100180001020CDC009E603C291097DFEB5D4A409B3 +:10019000232210207E0FDAAA0F0FDACB0FAF321C0A +:1001A00020C3480F2EA6C900000002010101000271 +:1001B0000202020202020000000000000000000033 +:1001C0003A12203C321220C9CD2C0AC5E51AD304BC +:1001D000DB03AE772313AFD304DB03AE77E101205B +:1001E0000009C105C2CB09C9CD2C0AC5E5AF7723EB +:1001F0007723E101200009C105C2EB09C9CD2C0A12 +:10020000C51A771301200009C105C2000AC9CD2C07 +:100210000AC5E51AD304DB03772313AFD304DB034A +:1002200077E101200009C105C2110AC97DE607D3A3 +:1002300002C31F0BAFC57701200009C105C2350AF3 +:10024000C9C377030FDB02D0DB01C9DB02E604C8B8 +:100250003A5920A7C03100240604C5CD9805C10530 +:10026000C25A0A3E01325920CDA401FB11571C216C +:1002700016300E04CDB305CDCB05C30B4C00000EDC +:100280001C211E24117F0BC32A0521F820C3960AC6 +:1002900021FC20C3960A5E2356237E23666FC30388 +:1002A000090E0721013511541DC32A053AEB2021FF +:1002B000013CC61CC3360521F420C3960ACD340B7D +:1002C000CD7F0ACD8A0ACD900ACDB70ACD2009CDBF +:1002D0008D08CDA10AC3AC0A21BE20461AE680A82B +:1002E000C037C9322B241C16110D0A080706050455 +:1002F000030201342E27221C181513100E0D0C0BAF +:10030000090705FF1A77231305C2040BC9E5232348 +:100310005E2356234E2346E1D55E2356EBD1C9C555 +:1003200006037C1F677D1F6F05C2220B7CE63FF62C +:100330002067C1C92100243600237CFE40C2370B50 +:10034000C906000C041B0E1504111B1B0F0B001813 +:100350000411261B271D1B0E111B1E0F0B0018045A +:1003600011121B011413130E0D1B0E0D0B181B1D68 +:100370000F0B001804111B1B011413130E0D1B1B74 +:1003800012020E11042B1D1B1B1B1B1B1B1B1B1BFB +:100390001B1B1B12020E11042B1E1B115B1CA7C87A +:1003A000E5210000C5010500093DC2A50B19EBC1FF +:1003B000E1C9CD2C0AC5E51AD304DB032FA67723A8 +:1003C000131AD304DB032FA6772313AFD304DB0365 +:1003D0002FA677E101200009C105C2B50BC9CD2CBC +:1003E0000AC5E51AD304DB03A6CAF10B3E0132505D +:1003F00020DB03AE7723130DC2E30BAFD304DB0383 +:10040000A6CA090C3E01325020DB03AE77E1012081 +:100410000009C105C2E10BC9CD2C0AC5E51A772335 +:10042000130DC21D0CE101200009C105C21B0CC93E +:10043000CD2C0AC5E5AF77230DC2350CE1012000B4 +:1004400009C105C2330CC9010010D3060DC24A0C04 +:1004500005C24A0CC9CD2C0AC5E51AD304DB032F0B +:10046000A6772313AFD304DB032FA677E101200087 +:1004700009C105C2580CC9210C207EA7C83600212D +:100480000000220020CD22172E722256200E087E58 +:10049000A7CA9A0CCD3D0DD2D20CCD450DC28F0C02 +:1004A000CD22172E92CDE74C0E047EA7CAB50CCDF7 +:1004B0003D0DD2C90CCD450DC2AA0C0000002A0684 +:1004C0002001F8FA09C3211F00CD500DDADB0CC35F +:1004D000B50CCD500DDADB0CC39A0C3A072023BEC5 +:1004E000D2E60CC3B50CF53E188647F1B8DAF40C29 +:1004F00000C3B50CC34E1E00CD370DE5CD1E490619 +:100500001311B719CDFD09CDE11DE1E50613CDFDB0 +:1005100009CDE11DC3E51E00E1E57DD6086F061893 +:10052000CD7917E10618CD7917C3004F0000000000 +:1005300000000000000000235E2356EBC9233A06AA +:1005400020C608BEC92A56202323232256200DC9BF +:10055000F53E088647F1B8C90000003A1620A7C842 +:100560002125207EA7C0360121292036003A2C20E3 +:10057000FEFE2A2D20010011C4990D090612CD2C72 +:100580000AC53E01AE770000C31E4801200009C124 +:1005900005C2810DC3804F0DC901000DC9219C20EA +:1005A0007EE610110B1AC47902CD22172E2D4E7E35 +:1005B000A7C8237EA7C4C00D2323230DC2B30DC932 +:1005C000E5C523D5CD380DD1D50608CDFD09D1C15E +:1005D000E1C92A1D207CFE3CDAF50DFED4D2F50DD2 +:1005E0007DFE1BDAF50DFE20DAFB0DFE28DA4C0E3F +:1005F000FE30DA760E21AE203601C97CFE44D204EC +:100600000EC3F50DFE56DA420EFE84D2110EC3F56E +:100610000DFE94DA470EFEC4D21E0EC3F50DFED4B5 +:10062000DA260EC3F50DC32F1E00CD221736002388 +:1006300023CD370D229E2078329D2000000000003F +:1006400000C92E00C3311E2E05C3311E7CFE3CD2D4 +:10065000550EC3F50DFE59DA710EFE7DD2620EC342 +:10066000F50DFE96DA6A0EC3F50D2E140630C33E64 +:100670001E2E0FC36C0E7CFE73D27F0EC3F50DFED3 +:100680009CDA870EC3F50D2E19C3451EAF32BE206E +:10069000219C20342150207EA7C4BF0E3AE920A718 +:1006A000C260003AEF20A7CA2547CDDD12215320B2 +:1006B0007EFE01CC9A11CDF04CCDB64FC360003612 +:1006C000002A1D207DFEB8D20C1FFE30DAD50E2187 +:1006D0005D203601C97CFE3CDACF0EFED4D2CF0EAF +:1006E0002114203601C9215320347EE60377CDDD65 +:1006F00012CD040F3AA020A7C4C510CDAB49CD3A06 +:100700004EC360003A5320A7CA1B0FFE01CA9A11BC +:10071000FE02CA5C13FE03CAC214C93A1320A7C85A +:10072000CDAC12CD364C3A1D20FEBADA350F3A1652 +:1007300020A7CA480FC36B09E6600707DAAA0F07AC +:10074000DACB0F211C203600CD9A0F3A1620A7CA0B +:10075000580FCD5310C3690FCD1210C48B0F3A1D23 +:1007600020FE40DA820FCDE70F211D20CD0D0BC5F5 +:10077000D5CDB20B211B20CD1C052A1D20D1C1C314 +:10078000DE0BCD8249CDED0FC3690FC3CB4C347E58 +:10079000E60123233600C036FFC93A1620A7211BE5 +:1007A00020C2A70F36FEC93601C93A1E20211C20DF +:1007B000FEE0D2C60F3A1620A7C2961D3602C348E5 +:1007C0000F3603C3480F3600C3480F3A1E20211CC2 +:1007D00020FE30DAC60F3A1620A7C2E20F36FEC35B +:1007E000480F36FDC3480FCD1210CA1810CD341073 +:1007F000DA2B10C3ED4ECD4810211A20347EE601CD +:00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_3.bin b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_3.bin new file mode 100644 index 00000000..fa488238 Binary files /dev/null and b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_3.bin differ diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_3.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_3.hex new file mode 100644 index 00000000..e4e4a765 --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_3.hex @@ -0,0 +1,129 @@ +:10000000112C18CC0E102A23200605C3C80911276D +:1000100018C9CD410AE610C92117207EA7C3674938 +:100020002A23200605112C18C3550C211A20CDFDBA +:100030000FC3F60F2117207EA7C241103601CD73E2 +:100040004F2A23207DFE30C92A1D2001F8030922F2 +:100050002320C92117207EA7C25E10CD48100000C2 +:1000600000000000CD2010CD48100000000000006E +:100070000000219820CD1210CA9510E5211B2036D2 +:1000800002E1C3FC0F0000000000000000000000BF +:100090000000009800E523347EE601211B20C2AB5E +:1000A000103601E1347EE604C300103600C3A3100D +:1000B000CD22172EAD7E21FB19A7C4C11022A72087 +:1000C000C921031AC921A2207EA7C2D610CD8B1D3B +:1000D000CDB010CDFB10CDFB10CD22172EAD7EA7DD +:1000E000C229113AA520FE19DC0411211E203AA6CE +:1000F00020BEDA0B1121A320CD1C0521A520CD0D9A +:100100000BC3C8092100FF22A320C921010022A39B +:1001100020211D203AA520BED21E11C3F5102100BA +:100120000022A020AF32A220C921AD207EA7C23C70 +:10013000113AA520FE19DA3C11C3F5103601210051 +:100140000122A320211E203AA620BED25111C3F5C0 +:100150001021010022A320211D203AA520BED26437 +:1001600011C3F510CD22172EAD3600C31E11CD22BE +:10017000172E2D4EE52B2B2B23CD32123600CD37EB +:100180000D22A5200608CDE809E17EA7C8357EFE30 +:1001900003DA9511C92EAD3601C93A1620A7CC173E +:1001A000162129207EA7C44612CDEB48000000216D +:1001B00088207EA7C8237EA7C2001236012A8A2083 +:1001C0004E7DFE37D42112228A20CD22172E72CDE9 +:1001D0003B12C2ED112A8A2023228A20CD22172E1B +:1001E0008C7EFE04C22C12210000C36F1EE52A8AF9 +:1001F0002023228A20E1CD370D01000909228E201B +:10020000218E20CD0D0BCD550C218E207EFE40DAA7 +:100210002412218C20CD1C05218E20CD0D0BC3C8AE +:10022000092E27C92A8E200603CD79172189203669 +:1002300000C9110300190DC23512C979A7CA4312AA +:10024000CD32127EA7C9112E20CDD80AD8212D205B +:10025000CD0D0BCD180C3A2E20FE28DC9C12FEC8CA +:10026000D4A2123A1620A7CC7612212B20CD1C0541 +:100270002127203601C92A2D200100100911F71766 +:10028000010210CD2C0AC5E51AB67723130DC288DA +:1002900012E101200009C105C28612C9212C2036B5 +:1002A00002C9212C2036FE21282034C93A1620A765 +:1002B000C83A1D20FEB8D0CD1210C2CC12210D209C +:1002C0007EA7C2C8123601C9233601C9210E207E7D +:1002D000A7C836002B36002100203601C921002096 +:1002E0007EA7C8237EA7C2F51236012A1D20010869 +:1002F0000509220620110720CDD80AD0210620CDDD +:100300000D0BCD57172106207EFEB8D24D132104C8 +:1003100020CD1C05CD901DCD2C0AC5E51AD304DBDC +:1003200003A6CA2A133E01320C20DB03AE77231347 +:10033000AFD304DB03A6CA3E133E01320C20DB031D +:10034000AE77E101200009C105C21A13C92A0620AF +:100350000603CD7917210000220020C93A1620A7F4 +:10036000CC3316CD22172E407EA7C25D142E707E90 +:10037000A7C8C3271FC5E57EF5E680CABD13F1F502 +:100380000707223420217B19DC4914223A20F1008E +:10039000000000000000002A3420CD370D22382054 +:1003A000213820CD0D0BCDFD092139207EFEE0D472 +:1003B0004D14213620CD1C052A3820EBF5F1E12320 +:1003C00073237223C10DC275132170207EA7C82329 +:1003D0007EA7C21A1436012A72204E7DFE56D45AC8 +:1003E00014227220CD22172E7ECD3B12C207142A72 +:1003F000722023227220CD22172E8A7EFE04C24351 +:1004000014210000C3731EE52A722023227220E10A +:10041000CD370D01000909227620217620CD0D0B64 +:10042000CD550C2176207EFE40DA3B14217420CD80 +:100430001C05217620CD0D0BC3C8092A76200603A2 +:10044000CD79172171203600C9218E19C9E52A38C6 +:10045000200613CDE809E13628C92E47C9CDA514D9 +:1004600022652021F718226920CD22172E414E2324 +:10047000C5E5CD380D226720CD9B1DCDFD09216836 +:10048000207EFEEAD49814216520CD1C052A672021 +:10049000EBC3A11DC27014C9E52A6720060BCDE885 +:1004A00009E13628C9CD22172EAB7EA7210001C84D +:1004B000FE01210001C8C37B1EC900732372230003 +:1004C00000C93A1620A7CC3F16CD22172E567EA77C +:1004D000C2B7152E907EA7C8E5CD5915223620212A +:1004E000A119223A20E1234E23C5E57EA7CA1215A1 +:1004F000CD370D223820213820CD0D0BCDFD09211F +:1005000039207EFE28DC6E15213620CD1C052A38C8 +:1005100020EBC3B31DC2E914217C207EA7C8237E33 +:10052000A7C2971536012A7E204E7DFE47D4561568 +:10053000227E20CD22172E92CD3B12C289152A7E13 +:100540002023227E20CD22172E8B7EFE04C283150F +:10055000210000C3771E2E37C9CD22172EAB7EA7F0 +:100560002100FFC8FE012100FEC8C3621FC9E52AA1 +:1005700038200613CDE809E136E0C92A82200603B7 +:10058000CD7917217D203600C9E52A7E20C3BE1D06 +:1005900001000909228220218220CD0D0BCD550CAE +:1005A0003A8220FE40DA7B15218020CD1C05218275 +:1005B00020CD0D0BC3C809CD0216226520213919A3 +:1005C000226920CD22172E574E23C5E5CD380D22A6 +:1005D0006720216720CD0D0BCDFD092168207EFE0F +:1005E00028DCF515216520CD1C052A6720EBC3AA60 +:1005F0001DC2CA15C9E52A6720060BCDE809E136F8 +:10060000EDC9CD22172EAB7EA72100FFC8FE012128 +:1006100000FEC8C3911EC92111270E05E5219420B3 +:10062000347EA10603C22F16E111DF19C3000AE1CF +:10063000C3340A210F3B0E01E5219520C32016216A +:1006400008360E04E5219620C32016310024AFD3CE +:1006500003D30421002011A31A0600CD040B2100AE +:100660002111A31B06C0D5CD040B210022D106C049 +:10067000CD040BAFD303D305CDA90100000000FBCF +:10068000C3B546CDCB0521F7182263200000002119 +:1006900039192261200606CD22172E414E23C5E5C9 +:1006A000CD380D2267202A6320C3CB1DC29E162A97 +:1006B0006320110B0019226320C5CD470CCD2217F2 +:1006C0002E574E23C5E5CD380D2267202A6120C361 +:1006D000D61DC2C4162A6120110B0019226120C147 +:1006E00005C29716CDD64FCDF11ECD22172E417ED5 +:1006F000FE0AD2F616342E577EFE0BD2FF1634CDEC +:10070000F61DCD0E17210836CD0E17210F3B06031F +:10071000C3340AEB2A6720060BC3FD090000000062 +:1007200000003AC62067C90001020300010203006D +:1007300001020300010203000102030001020300A1 +:100740000102030101020300010203000102030090 +:1007500001020300010203CD2C0AC5E51AD304DB14 +:10076000032FA6772313AFD304DB032FA677E10172 +:10077000200009C105C25A17C9CD2C0AC5E5AFD35F +:1007800004DB03772300AFD304DB0377E101200010 +:1007900009C105C27C17C9000000008001C003E048 +:1007A00047E047F04FF04FF85DF85DFC7FFC5FFEDF +:1007B0005DFF5DFF0FFF0F011C0118013801700183 +:1007C00070017001F001F001F001F00170017001A1 +:1007D0007001300138011CFF0FFF0FFF5DFE5DFC53 +:1007E0005FFC7FF85DF85DF04FF04FE047E047C0F9 +:1007F000038001000000000000000002019E03E2EF +:00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_4.bin b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_4.bin new file mode 100644 index 00000000..1708ae44 Binary files /dev/null and b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_4.bin differ diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_4.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_4.hex new file mode 100644 index 00000000..871ee3ed --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_4.hex @@ -0,0 +1,129 @@ +:1000000007F806E007FC0EFC0EE007F806E2079E84 +:100010000302010000000000012735785E78DEDE73 +:10002000785E78342701003050885030305CCF5CE7 +:1000300030FF7FFFFF7F3FFF7F83CFFFC1FFFFC503 +:10004000D5D1FFC1DDC1FFF3C1D0D8FAFEFEFFFF5D +:10005000FFFFFFFFE0FFFFE0EEE0FFFFE0EEE0FF6D +:10006000FFFFFEFEFAF8C8800080D0D8FAFEFEFE40 +:10007000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AD +:10008000EAE8FFFFE0EEE0FFFFFFFFFFFFFFFFFDFD +:10009000E4FFFFFFFFFFFFFFFFCCFF33BFFFFFEFDA +:1000A000FF3F8FFFFFF9FFE3E7FFEBDCFF1FDBFF05 +:1000B000FFFFFFFFFBFFFFFFFFFFCFFFFFFDFFE3A2 +:1000C0009FFFFB03FFEF00FFD300FFFF00FFFF00D8 +:1000D000FFFF00FFFB00FF7100FFFFFF7FEF1FD955 +:1000E000F9037FFF019B7F00FE1F00FF03003F001D +:1000F00000070000010000000000101C2242224402 +:10010000221C00000000101C3E1E3E1C00000000CF +:100110000000081C0C1C0800000000000000080C77 +:1001200008000000000000000000080000000000BF +:10013000000000000000000000081424221214082F +:100140000000000000081C3C1E1C0800000000000D +:10015000081C1C1C08000000000000081C1C0800F3 +:100160000000000000000008000000000000000087 +:10017000000000000000000000000000000008086F +:100180001C1E37BFBEF6F6BEBF371E1C0808000097 +:10019000000008081C7E6C78EC786C7E1C08080057 +:1001A0000000000000000C1E96BCF4BC961E0C0063 +:1001B0000000000040F040000000040E143A3E1D14 +:1001C0003D3E1D2E0C040000000000880120044E5E +:1001D00014BA381D39BE340C8A2C014012000002BA +:1001E00007020000000000FC023F020001070F01AF +:1001F0000001031028502810000000000001637C5B +:100200001318000018137C6301000000C032DEF8F0 +:10021000DE32C00010096F7C6F0910000E2E241F03 +:10022000070A1B0000000000008001F00FF81FDC2F +:100230003EF81FF00FF01FE017E02728C9E89104EF +:10024000C1080102004450882870CF241DEF3FE20E +:10025000011A123828484C888C0408023201338075 +:10026000014000008443441B24D817800F8A1FB824 +:100270003FF83FD020DE6FC26FA26EB812E41602C4 +:10028000300000000000000000000000000000003E +:10029000000000000000000000000000000000005E +:1002A0000000000000000004000000B41901030079 +:1002B000000000A709000000000000000000FE0090 +:1002C0000000FB17020C000000000000000000FE10 +:1002D000C8909717023000000000000000000001E5 +:1002E000130000000802000025410000C0006070FB +:1002F00000000000000000000000000000000000FE +:100300000000000000000000000000000000010BE1 +:1003100000000000004717FD000000E71901010080 +:10032000003717FD000000E819010300002717FD42 +:10033000000000E8190103000000000000000000B8 +:10034000000000000000FF000000FB190108000091 +:10035000000000000000000000000000000000009D +:10036000000000000000000000210000000000006C +:1003700000001B1B130008130E1B1B1B00000000BA +:1003800011270730000000000000000000000000FE +:100390000100000000000000051D2F00001D2600C8 +:1003A000001D3990391803299039180331903918F4 +:1003B0000339A049180428A049180430A869180571 +:1003C0002F31480D0A094D564909432C3038480D44 +:1003D000060128280120300118380118E00120E822 +:1003E0000128F00005B07058C04050806860784027 +:1003F0008890A85098683870B00005A0E038785010 +:10040000B06890888040D85848409878C04860408C +:1004100048406000088158B08180A081885081A840 +:1004200040C1B0C0C1A070C190B0C1604000000028 +:1004300000000000040170700168C001984001785C +:10044000B000000000800000000000000000000379 +:100450000000000000000013080B131F2444241F99 +:100460007F494949363E414141227F4141413E7FDA +:10047000494949417F484848403E414145477F08F6 +:1004800008087F00417F4100020101017E7F0814BE +:1004900022417F010101017F2018207F7F10080485 +:1004A0007F3E4141413E7F484848303E4145423DC4 +:1004B0007F484C4A31324949492640407F40407E7E +:1004C0000101017E7C0201027C7F020C027F631429 +:1004D00008146360100F1060434549516100000328 +:1004E000030000000000003E4549513E00217F010D +:1004F00000234549493142414959660C14247F047F +:10050000725151514E1E2949494640474850603664 +:10051000494949363149494A3C08142241000041C1 +:10052000221408141414141422147F1422181818F6 +:100530001818080808080820404D502000007900CD +:100540007900000000C04040404040011C3C786001 +:100550000F1412070211040308131BC2FC0121032C +:10056000280E14C30C0221EF203601C921102C0ED5 +:100570000C119D09C32A05CDCB05C3C61E215D20E4 +:1005800036002127203600233600C93601C36E11FC +:10059000210620C30D0B3603C3480F216720C30D6E +:1005A0000BE1CDBA14C10DC39414E1CDBA14C10D41 +:1005B000C3F115E12373237223C10DC31515232243 +:1005C0007E20E1235E2356EBC39015CD1317E12364 +:1005D00023C10DC3AC16CD1317E12323C10DC3D224 +:1005E000163E05C3D505AF321B20C93E01C3E71D2A +:1005F000215E203601C92EAA347EFE06D40E1E21AD +:10060000532036002A5420CD0A4F211127C9360025 +:100610002EA03601C92E0006AACDE4022EAB342E40 +:10062000B03601C3E1000000000000000000002E11 +:100630000AE52115000610225420E1C32A0EE52107 +:100640001000C3371E0630E5210500C3371EE57DC7 +:10065000FE92D2651EFE7ED26A1E2E8C34E12B2BBA +:100660003600C3F80C2E8BC35C1E2E8AC35C1E2280 +:100670008820C9227020C9227C20C9FE02210002E4 +:10068000C8FE03210002C8FE04210002C8210003A5 +:10069000C9FE022100FEC8FE032100FDC8FE0421A0 +:1006A00000FEC8FE052100FDC82100FDC9010E0D98 +:1006B00014121B211C1C1B0F0E080D13120000002E +:1006C000000000000000CD22172EA07EA7CAE10086 +:1006D00036002EAA3600E52EA25E2356EBCD0A4F39 +:1006E000E1C3141F00CDEB1DCD22172E8D34C32680 +:1006F00049CD22172E8D7EFE08D4FD1EC936002E50 +:100700007011131C0630C3040B000000FECBD2CFC7 +:100710000EC3981FE52EAE4E3600CDDA03E1C315A9 +:100720001E010310C3300CE5CD351F223620E12316 +:100730004E23C37513CD22172EAB7EA7210001C80F +:10074000FE01210001C8FE02210002C8FE032100B3 +:1007500002C8210003FE04C8FE05210003C82100D1 +:1007600003C9FE022100FEC8FE032100FDC8FE04ED +:100770002100FEC82100FDC9CD22172EAB7EC60187 +:1007800027E60FC61C21023EC3360500000000000C +:1007900000000000000000003A2E20F5C61A4F7C31 +:1007A000B9D2B01FF1C60B577CBADAB11FC3F01D26 +:1007B000F121C2203601C3E61F21C2207EA7C2C795 +:1007C0001FCDCB05C3920336002EB03AC32067CDB0 +:1007D0002C0A0E0611E01FCDB305C3C24EC39D0304 +:1007E0000000001A1A1A3A1E20FED0D4F41F32C399 +:1007F00020C3F01D3EC0C9000000000000FFFFC084 +:00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_5.bin b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_5.bin new file mode 100644 index 00000000..8d3659fa Binary files /dev/null and b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_5.bin differ diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue1.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_5.hex similarity index 50% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue1.hex rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_5.hex index cd9f9d9d..4176ee6a 100644 --- a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue1.hex +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_5.hex @@ -126,132 +126,4 @@ :1007D000C243CDB94DC39805CD7C03E676FE54C027 :1007E0002EED26207EA7C82B2B3603C93A1620A74C :1007F000C82100203601C9000000000000000000F0 -:100800003A1D20FE48D0215C207EA7C0360121067B -:1008100025060DCD340A21063D060DC3340A3A5D86 -:1008200020A7C230480000003E01CDD505C38B0D86 -:10083000E1215D20C3EF08CD00483A1620A7C8CDBE -:1008400022172EAB7EFE05D26648FE03D26F48FE0D -:1008500001D2D14B2E8D7EFE07D82EAA7EFE04D863 -:10086000213E203601C92E8D7EFE04D8C360482E5D -:100870008D7EFE05D8C36048000000CD37483A3E63 -:1008800020A7C8CD22172EAB7EFE06D2B648FE05A5 -:10089000CABB48FE04CAC04806583A1D20B8D2ACAC -:1008A00048213F2036012129203600C92140207EE1 -:1008B000A7C02B3600C90688C39A480678C39A4851 -:1008C0000668C39A48DB02E60321AC21F58677F17E -:1008D00021AC228677C900000000003A5C20A7C046 -:1008E0003A9C20E610CA0E48C330043A3F20A7C203 -:1008F0000040C93AEF20A7C83AC420C3034900000A -:10090000C3F348B032C420D303C93AC420A032C4D0 -:1009100020D303C90624C300490620C30A49CDE6F3 -:100920001D0628C3004906F7CD0A49C3180D3AC56C -:1009300020B032C520D305C93AC520A032C520D386 -:1009400005C90604CD2E493E05CDD50506FBC338A5 -:10095000493A1620A7C83A0020A7CA62490622C30E -:10096000004906FDC30A49CA744936000621CD0074 -:1009700049C3201006FECD0A49C90601CD0049C36E -:10098000481006FEC30A493A1620A7C21F4C3A9CDB -:1009900020E604C21F4C3A1D20FE30C3A34906EFD7 -:1009A000C33849DA9E490610C32E493AA020A7C28F -:1009B000B74906FCC338493A9C20E608CACE490626 -:1009C00001CD2E49219B2034E601C0C3B249060265 -:1009D000CD2E49219B2034E601C8C3B249CD8249BE -:1009E000C348103AEE20A7C0211C390628C3EB09E2 -:1009F0000000000000CD22172EAB7EA7210500C805 -:100A0000FE01211000C8FE02211500C8213000C9D6 -:100A10003AC6200FDA224A21122B112D4A0E0EC39C -:100A20002A05CD174A2112373E1DC336050F0B008C -:100A3000181B0F0B00180411261E27210F2C110B59 -:100A40001A0608CD000A115A4A0E0BCD2A05CD65AB -:100A50004A210F2ECD2805C3CB05281B1B1C1B0FBD -:100A60000E080D1312CD22172EAB7EA711804AC897 -:100A7000FE0111824AC8FE0211844AC811864AC981 -:100A80001B211D1C1D211F1CCDCB0521C620C9000B -:100A900000000000000000211028D306C90620CD68 -:100AA0003849C37D1D3AEE20A7C23C4CCD2217C366 -:100AB0006A0321C6207E0FDAE54A3622CD22172EA0 -:100AC000AC35C2284BCD584B210F393E1ECD3605D3 -:100AD000CDB602CD884A3621CD22172EAC7EA7CACC -:100AE000B304C38B4BCD22172EAC35C20E4BCD5861 -:100AF0004BCDB602CDCB0521C6203622CD22172EF6 -:100B0000AC7EA7CAB30421C6203622C38B4BCD428C -:100B10004B21C6203622CD22172EAC7EA7C28B4B8E -:100B200021C6203621C38B4BCD424B21C620362116 -:100B3000CD22172EAC7EA7C28B4B21C6203622C3F6 -:100B4000E1007E3D210127CA504B24243DC24A0BBF -:100B50000610CD340AC3CB05210F2811634B0E13A9 -:100B6000C3B30506000C041B0E1504111B0F0B006C -:100B7000180411261D273AC6200FDA864B062021BD -:100B8000C52070C30A050600C37F4BCDBD0ACD76D4 -:100B90004BCD104AC3B44B0600CD0A4900000021DA -:100BA000C22011651B0609CD040B21000022E5209F -:100BB00022EE20C9CD3B4AC3E10021E5203AC62000 -:100BC0000FD823C90000000000007E3DC84FC34F6E -:100BD000022E8D7EFE06D8C3604800CDBA4B7EA79C -:100BE000C80630CD1309B8D8CD22172EAC34CD4667 -:100BF00002CDBA4B36000610CD00493E20CDD505BA -:100C000006EFC30A49CDDB4BC3DB48AF325920CDD9 -:100C1000974BCDA901C3824CCD661D210000C9218F -:100C20003F207EA7CA9E49237EA7CA9E49C3A649E4 -:100C3000CD8403C3E100CD5149C3004ECD22172E10 -:100C4000A07EA7CAB24A3600C3674C00CDBD0ACD0C -:100C500022172EA234211B260E0411634CCD2A0527 -:100C6000C3154E0514040B2EAC7E3DCAB24ACDA46A -:100C700003C3E14CCDA40121C2207EA7C03600C32E -:100C8000AD4D21DC20360021E3203600C3B3040043 -:100C90000000000000000000000000000000000054 -:100CA00000000000CD22172EB03601C9CD104ACD6C -:100CB0003B4AC3CB05CD22172EAE4E3600C3DA0316 -:100CC000AF32E320C9000000000000CD22172EA2A1 -:100CD0007EA7CADB4C211920C38E0F211B2036FEB4 -:100CE000C9CD764BC3B24A2256203E01325A20C9A2 -:100CF0003AEF20A7C8C3874921C6203621C9000082 -:100D000011C04D21C0210606CD040BF3CD114DFBC2 -:100D1000C92AC0217EA7C8234E5F07DA564DE5CD0C -:100D20002B4DE10DC21E4D23C3144DC5D5CD694DCC -:100D3000D1C12AC221530608CD2E49D3062B7CA748 -:100D4000C815C23D4D5306F7CD38492B7CA7C815B1 -:100D5000C24B4DC3354DE52AC4212B7CA7C25A4D49 -:100D60000DC2574DE123C3144DDB0121EC200FDAF6 -:100D7000754D3600C97EA7C036FF2B7EFE09C3A87D -:100D80004D330228022202330228022202330226B5 -:100D9000021E02330226021E0222021B0216022239 -:100DA000021B021602190600D034C3AC0A11B34D5F -:100DB000C3034DC64DFF0DFF50116D4FC3034D00D2 -:100DC000814DFF0DFF5019011B011E01220126015B -:100DD00028012D0133012D012801260122011E01C8 -:100DE0001B011903000000000000000000000000CB -:100DF00000000000000000000000000000000000F3 -:100E00003A1620A7C0CD410AE610C821A421347E9D -:100E1000FE02D83600CD22172EA27EA7C8EB2139BC -:100E20004E373E99CE0096EB862777211B2BCD744B -:100E300005211B2D3E1CC3360501C3D74EAFBEC2D4 -:100E4000574E342AA82122B82021AA4E22B62021AA -:100E5000B4203618C3834E2AB620EB2AB8200608E1 -:100E6000CDC8092AB8207DFE40DAE14E000021B449 -:100E700020AFBECA7A4E35CA954E23BECA834E35C0 -:100E8000CAA14E2AB620EB2AB8202B2B0022B8206C -:100E90000608C3C80923361021B24E22B620C386E5 -:100EA0004E21BA4E22B620C3864E00C031DFFCDF91 -:100EB00031C05D5D2A3E1C3CE40C1090987B3F7B6A -:100EC0008886CDE64E36FFCDA9017EA7D306C2CADD -:100ED0004ECD2217C39D0321B220AFBEC823C33E0F -:100EE0004EAF32B220C9CD370621B220C9CD22176C -:100EF0002EA27EA7CA2010CD2010C3F60F0000003E -:100F00003A5A20A7210300C41A4F3AEF20A7C8225B -:100F1000F22021F1203601C24D05AF325A202105C1 -:100F200000C92A1D2022A821C3D40221B3203601E2 -:100F3000CDA9012B36017ED306A7C2364FCD22178D -:100F400019041E0216041E0222031E012802260393 -:100F50001E03190312060000000422011E012606CA -:100F600000000000000000000000000000404FFFF3 -:100F700011FF50CD22172EA27EA7CADD49C37A49A0 -:100F80003A1620A7C82A2D203A2C20A7F2934F7C8E -:100F9000C60467CD2C0AAF01600109770120000962 -:100FA00077012000097701200209770120000977E5 -:100FB0000120000977C93A1620A7C82A1D20EB2A6C -:100FC0002D207DD60ABBD07CC60CBAD0C612BAD8AA -:100FD0003E01321820C9CD22172EAB7EFE02D8FE6C -:100FE00006D2F34F16FC2174207221802072218CCE -:100FF0002072C916FBC3E64F00000000000000008D :00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_6.bin b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_6.bin new file mode 100644 index 00000000..27d951d0 Binary files /dev/null and b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_6.bin differ diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_6.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_6.hex new file mode 100644 index 00000000..08e0316e --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/LunarRescue/lrescue_6.hex @@ -0,0 +1,129 @@ +:100000003A1D20FE48D0215C207EA7C03601210683 +:1000100025060DCD340A21063D060DC3340A3A5D8E +:1000200020A7C230480000003E01CDD505C38B0D8E +:10003000E1215D20C3EF08CD00483A1620A7C8CDC6 +:1000400022172EAB7EFE05D26648FE03D26F48FE15 +:1000500001D2D14B2E8D7EFE07D82EAA7EFE04D86B +:10006000213E203601C92E8D7EFE04D8C360482E65 +:100070008D7EFE05D8C36048000000CD37483A3E6B +:1000800020A7C8CD22172EAB7EFE06D2B648FE05AD +:10009000CABB48FE04CAC04806583A1D20B8D2ACB4 +:1000A00048213F2036012129203600C92140207EE9 +:1000B000A7C02B3600C90688C39A480678C39A4859 +:1000C0000668C39A48DB02E60321AC21F58677F186 +:1000D00021AC228677C900000000003A5C20A7C04E +:1000E0003A9C20E610CA0E48C330043A3F20A7C20B +:1000F0000040C93AEF20A7C83AC420C30349000012 +:10010000C3F348B032C420D303C93AC420A032C4D8 +:1001100020D303C90624C300490620C30A49CDE6FB +:100120001D0628C3004906F7CD0A49C3180D3AC574 +:1001300020B032C520D305C93AC520A032C520D38E +:1001400005C90604CD2E493E05CDD50506FBC338AD +:10015000493A1620A7C83A0020A7CA62490622C316 +:10016000004906FDC30A49CA744936000621CD007C +:1001700049C3201006FECD0A49C90601CD0049C376 +:10018000481006FEC30A493A1620A7C21F4C3A9CE3 +:1001900020E604C21F4C3A1D20FE30C3A34906EFDF +:1001A000C33849DA9E490610C32E493AA020A7C297 +:1001B000B74906FCC338493A9C20E608CACE49062E +:1001C00001CD2E49219B2034E601C0C3B24906026D +:1001D000CD2E49219B2034E601C8C3B249CD8249C6 +:1001E000C348103AEE20A7C0211C390628C3EB09EA +:1001F0000000000000CD22172EAB7EA7210500C80D +:10020000FE01211000C8FE02211500C8213000C9DE +:100210003AC6200FDA224A21122B112D4A0E0EC3A4 +:100220002A05CD174A2112373E1DC336050F0B0094 +:10023000181B0F0B00180411261E27210F2C110B61 +:100240001A0608CD000A115A4A0E0BCD2A05CD65B3 +:100250004A210F2ECD2805C3CB05281B1B1C1B0FC5 +:100260000E080D1312CD22172EAB7EA711804AC89F +:10027000FE0111824AC8FE0211844AC811864AC989 +:100280001B211D1C1D211F1CCDCB0521C620C90013 +:1002900000000000000000211028D306C90620CD70 +:1002A0003849C37D1D3AEE20A7C23C4CCD2217C36E +:1002B0006A0321C6207E0FDAE54A3622CD22172EA8 +:1002C000AC35C2284BCD584B210F393E1ECD3605DB +:1002D000CDB602CD884A3621CD22172EAC7EA7CAD4 +:1002E000B304C38B4BCD22172EAC35C20E4BCD5869 +:1002F0004BCDB602CDCB0521C6203622CD22172EFE +:10030000AC7EA7CAB30421C6203622C38B4BCD4294 +:100310004B21C6203622CD22172EAC7EA7C28B4B96 +:1003200021C6203621C38B4BCD424B21C62036211E +:10033000CD22172EAC7EA7C28B4B21C6203622C3FE +:10034000E1007E3D210127CA504B24243DC24A0BC7 +:100350000610CD340AC3CB05210F2811634B0E13B1 +:10036000C3B30506000C041B0E1504111B0F0B0074 +:10037000180411261D273AC6200FDA864B062021C5 +:10038000C52070C30A050600C37F4BCDBD0ACD76DC +:100390004BCD104AC3B44B0600CD0A4900000021E2 +:1003A000C22011651B0609CD040B21000022E520A7 +:1003B00022EE20C9CD3B4AC3E10021E5203AC62008 +:1003C0000FD823C90000000000007E3DC84FC34F76 +:1003D000022E8D7EFE06D8C3604800CDBA4B7EA7A4 +:1003E000C80630CD1309B8D8CD22172EAC34CD466F +:1003F00002CDBA4B36000610CD00493E20CDD505C2 +:1004000006EFC30A49CDDB4BC3DB48AF325920CDE1 +:10041000974BCDA901C3824CCD661D210000C92197 +:100420003F207EA7CA9E49237EA7CA9E49C3A649EC +:10043000CD8403C3E100CD5149C3004ECD22172E18 +:10044000A07EA7CAB24A3600C3674C00CDBD0ACD14 +:1004500022172EA234211B260E0411634CCD2A052F +:10046000C3154E0514040B2EAC7E3DCAB24ACDA472 +:1004700003C3E14CCDA40121C2207EA7C03600C336 +:10048000AD4D21DC20360021E3203600C3B304004B +:10049000000000000000000000000000000000005C +:1004A00000000000CD22172EB03601C9CD104ACD74 +:1004B0003B4AC3CB05CD22172EAE4E3600C3DA031E +:1004C000AF32E320C9000000000000CD22172EA2A9 +:1004D0007EA7CADB4C211920C38E0F211B2036FEBC +:1004E000C9CD764BC3B24A2256203E01325A20C9AA +:1004F0003AEF20A7C8C3874921C6203621C900008A +:1005000011C04D21C0210606CD040BF3CD114DFBCA +:10051000C92AC0217EA7C8234E5F07DA564DE5CD14 +:100520002B4DE10DC21E4D23C3144DC5D5CD694DD4 +:10053000D1C12AC221530608CD2E49D3062B7CA750 +:10054000C815C23D4D5306F7CD38492B7CA7C815B9 +:10055000C24B4DC3354DE52AC4212B7CA7C25A4D51 +:100560000DC2574DE123C3144DDB0121EC200FDAFE +:10057000754D3600C97EA7C036FF2B7EFE09C3A885 +:100580004D330228022202330228022202330226BD +:10059000021E02330226021E0222021B0216022241 +:1005A000021B021602190600D034C3AC0A11B34D67 +:1005B000C3034DC64DFF0DFF50116D4FC3034D00DA +:1005C000814DFF0DFF5019011B011E012201260163 +:1005D00028012D0133012D012801260122011E01D0 +:1005E0001B011903000000000000000000000000D3 +:1005F00000000000000000000000000000000000FB +:100600003A1620A7C0CD410AE610C821A421347EA5 +:10061000FE02D83600CD22172EA27EA7C8EB2139C4 +:100620004E373E99CE0096EB862777211B2BCD7453 +:1006300005211B2D3E1CC3360501C3D74EAFBEC2DC +:10064000574E342AA82122B82021AA4E22B62021B2 +:10065000B4203618C3834E2AB620EB2AB8200608E9 +:10066000CDC8092AB8207DFE40DAE14E000021B451 +:1006700020AFBECA7A4E35CA954E23BECA834E35C8 +:10068000CAA14E2AB620EB2AB8202B2B0022B82074 +:100690000608C3C80923361021B24E22B620C386ED +:1006A0004E21BA4E22B620C3864E00C031DFFCDF99 +:1006B00031C05D5D2A3E1C3CE40C1090987B3F7B72 +:1006C0008886CDE64E36FFCDA9017EA7D306C2CAE5 +:1006D0004ECD2217C39D0321B220AFBEC823C33E17 +:1006E0004EAF32B220C9CD370621B220C9CD221774 +:1006F0002EA27EA7CA2010CD2010C3F60F00000046 +:100700003A5A20A7210300C41A4F3AEF20A7C82263 +:10071000F22021F1203601C24D05AF325A202105C9 +:1007200000C92A1D2022A821C3D40221B3203601EA +:10073000CDA9012B36017ED306A7C2364FCD221795 +:1007400019041E0216041E0222031E01280226039B +:100750001E03190312060000000422011E012606D2 +:1007600000000000000000000000000000404FFFFB +:1007700011FF50CD22172EA27EA7CADD49C37A49A8 +:100780003A1620A7C82A2D203A2C20A7F2934F7C96 +:10079000C60467CD2C0AAF0160010977012000096A +:1007A00077012000097701200209770120000977ED +:1007B0000120000977C93A1620A7C82A1D20EB2A74 +:1007C0002D207DD60ABBD07CC60CBAD0C612BAD8B2 +:1007D0003E01321820C9CD22172EAB7EFE02D8FE74 +:1007E00006D2F34F16FC2174207221802072218CD6 +:1007F0002072C916FBC3E64F000000000000000095 +:00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Seawolf/sw0041.h.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Seawolf/sw0041_h.hex similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Seawolf/sw0041.h.hex rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Seawolf/sw0041_h.hex diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Seawolf/sw0042.g.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Seawolf/sw0042_g.hex similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Seawolf/sw0042.g.hex rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Seawolf/sw0042_g.hex diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Seawolf/sw0043.f.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Seawolf/sw0043_f.hex similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Seawolf/sw0043.f.hex rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Seawolf/sw0043_f.hex diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Seawolf/sw0044.e.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Seawolf/sw0044_e.hex similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Seawolf/sw0044.e.hex rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Seawolf/sw0044_e.hex diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceInvaders/invaders_e.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceInvaders/invaders_e.hex new file mode 100644 index 00000000..5ff2818c --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceInvaders/invaders_e.hex @@ -0,0 +1,129 @@ +:1000000020C3C9162184207EA7CA0707237EA7C064 +:100010000601C3FA1821102811A31C0E15CDF308F0 +:100020003E0A326C2001BE1DCD5618DA3718CD4479 +:1000300018C32818CDB10A01CF1DCD5618D8CD4C04 +:1000400018C33A18C50610CD3914C1C9C53A6C2079 +:100050004FCD930AC1C90AFEFF37C86F030A670371 +:100060000A5F030A5703A7C921C22034234ECDD902 +:1000700001473ACA20B8CA98183AC220E6042ACCE6 +:1000800020C288181130001922C72021C520CD3B7D +:100090001AEBC3D3150000003E0132CB20C921501A +:1000A0002011C01B0610CD321A3E023280203EFFC6 +:1000B000327E203E0432C1203A5520E601CAB818EB +:1000C0003A5520E601C2C0182111333E2600CDFF6B +:1000D00008C3B60A3100240600CDE601CD56193E0C +:1000E0000832CF20C3EA0A3A672021E7200FD02345 +:1000F000C906023A82203DC004C93A9420B0329425 +:1001000020D303C9210022C3C301CDD814C397153E +:1001100021E7203A67200FD823C90E1C211E241185 +:10012000E41AC3F30821F820C3311921FC20C3319C +:10013000195E2356237E23666FC3AD090E07210186 +:100140003511A91FC3F3083AEB2021013CC3B209C2 +:1001500021F420C33119CD5C1ACD1A19CD2519CD42 +:100160002B19CD5019CD3C19C34719CDDC19C371DA +:10017000163E01326D20C3E616CDD719CD4719C3FF +:100180003C1932C120C98B19C3D60921032811BEDD +:10019000190E13C3F308000000003A1E20A7C2ACDA +:1001A00019DB01E676D672C03C321E20DB01E67612 +:1001B000FE34C0211B2E11F70B0E09C3F3082813C0 +:1001C0000008130E26020E110F0E110013080E0D5B +:1001D000283E0132E920C9AFC3D319003A9420A0C8 +:1001E000329420D303C9210127CAFA1911601C06D1 +:1001F000104FCD3914793DC2EC190610CDCB147CCB +:10020000FE35C2FA19C9217220461AE680A8C03705 +:10021000C9322B241C16110D0A0807060504030217 +:1002200001342E27221C181513100E0D0C0B090774 +:1002300005FF1A77231305C2321AC95E2356237E9F +:10024000234E2346616FC9C506037C1F677D1F6F60 +:1002500005C24A1A7CE63FF62067C1C92100243650 +:1002600000237CFE40C25F1AC9C5E51AB677132386 +:100270000DC26B1AE101200009C105C2691AC9CD7E +:100280002E09A7C8F53D77CDE619F1210125E60F26 +:10029000C3C50900000000FFB8FE201C109E00200E +:1002A0001C30100B080706000C04260E150411263E +:1002B000260F0B001804112426251B260E11261CC0 +:1002C0000F0B001804111226011413130E0D260E25 +:1002D0000D0B18261B0F0B001804112626011413F2 +:1002E000130E0D262612020E1104241B25260708C4 +:1002F0003F12020E11042612020E1104241C2526A0 +:100300000100001000000000027838783800F80082 +:100310000080008E02FF050C601C203010010000E0 +:10032000000000BB030010901C2830010400FFFFF8 +:100330000000027604000000000004EE1C00000330 +:10034000000000B604000001001D04E21C000003D0 +:100350000000008206000001061D04D01C000003FE +:10036000FF00C01C0000102101003000120000003E +:100370000F0B0018260F0B00180411241B25FC007E +:1003800001FFFF00000020641DD0291802541D0049 +:100390000800060000014000010000109E00201C23 +:1003A000000304781413081A3D68FCFC683D1A0029 +:1003B000000001B898A01B10FF00A01B0000000067 +:1003C0000010000E05000000000007D01CC89B03B1 +:1003D0000000030478140B193A6DFAFA6D3A19000B +:1003E00000000000000000000001000001741F0078 +:1003F0008000000000001C2F00001C2700001C399A +:10040000000039797A6EECFAFAEC6E7A79390000EC +:10041000000000781DBE6C3C3C3C6CBE1D780000AA +:1004200000000000193A6DFAFA6D3A190000000058 +:100430000000387A7F6DECFAFAEC6D7F7A380000B4 +:100440000000000E18BE6D3D3C3D6DBE180E000054 +:10045000000000001A3D68FCFC683D1A0000000026 +:1004600000000F1F1F1F1F7FFF7F1F1F1F1F0F0079 +:10047000000401130307B30F2F032F4904030001E6 +:10048000400805A30A035B0F27270B4B4084114844 +:100490000F993C7E3DBC3E7C99271B1A260F0E0807 +:1004A0000D13122812020E110426000315000D026E +:1004B00004261300010B04280210203013080B132C +:1004C0000008492214814200428114224908000098 +:1004D00044AA1088542210AA442254884A15BE3FC8 +:1004E0005E2504FC0410FC1020FC2080FC8000FE33 +:1004F0000024FE1200FE0048FE900F0B00290000B1 +:100500000107010101040B01060301010B090208A7 +:10051000020B04070A050205040607080A060A0377 +:10052000FF0FFF1FFF3FFF7FFFFFFCFFF8FFF0FF04 +:10053000F0FFF0FFF0FFF0FFF0FFF0FFF8FFFCFF2F +:10054000FFFFFFFFFF7FFF3FFF1FFF0F051015306D +:1005500094979A9D10050510151010053010101075 +:100560000515100500000000040C1E373E7C747E4B +:100570007E747C3E371E0C0400000000002200A5A3 +:100580004008983DB63C361D104862B61D9808429A +:1005900090080000261F1A1B1A1A1B1F1A1D1A1A70 +:1005A00010203060504848484040400F0B0018125F +:1005B0000F0002042626080D1500030411120E2C4C +:1005C000681D0C2C201C0A2C401C082C001CFF0E43 +:1005D0002EE01D0C2EEA1D0A2EF41D082E991CFF7C +:1005E0002738260C181213041118271D1A260F0E6F +:1005F000080D1312271C1A260F0E080D13120000E7 +:10060000001F2444241F0000007F49494936000090 +:10061000003E414141220000007F4141413E000037 +:10062000007F494949410000007F48484840000098 +:10063000003E414145470000007F0808087F000058 +:100640000000417F4100000000020101017E000026 +:10065000007F081422410000007F01010101000019 +:10066000007F2018207F0000007F1008047F00001A +:10067000003E4141413E0000007F484848300000B4 +:10068000003E4145423D0000007F484C4A31000099 +:1006900000324949492600000040407F40400000A8 +:1006A000007E0101017E0000007C0201027C00004E +:1006B000007F020C027F0000006314081463000036 +:1006C0000060100F106000000043454951610000B8 +:1006D000003E4549513E00000000217F010000001E +:1006E0000023454949310000004241495966000054 +:1006F000000C14247F04000000725151514E000080 +:10070000001E29494946000000404748506000004B +:100710000036494949360000003149494A3C000049 +:1007200000081422410000000000412214080000CB +:100730000000000000000000001414141414000055 +:100740000022147F14220000000304780403000038 +:10075000241B260E11261C260F0B0018041112252F +:100760002626281B260F0B0018041126261B2602FE +:100770000E080D2601010000010002010002010027 +:1007800060100F106030181A3D68FCFC683D1A00BC +:10079000080D120411132626020E080D0D2A501FF3 +:1007A0000A2A621F072AE11FFF0211040308132609 +:1007B0000060100F106038193A6DFAFA6D3A19009E +:1007C0000020404D50200000000000FFB8FF801FB7 +:1007D000109700801F000001D022201C10940020E0 +:1007E0001C281C260F0B0018041112261C26020EB2 +:1007F000080D120F14120726000808080808000048 +:00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceInvaders/invaders_f.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceInvaders/invaders_f.hex new file mode 100644 index 00000000..4f7acccc --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceInvaders/invaders_f.hex @@ -0,0 +1,129 @@ +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000CD741400C5E51AD304DB03B6772313BB +:10041000AFD304DB03B677E101200009C105C205B3 +:1004200014C90000CD7414C5E5AF77237723E1012B +:10043000200009C105C22714C9C51A77130120007D +:1004400009C105C23914C900000000000000000005 +:100450000000CD7414C5E51AD304DB032FA677235F +:1004600013AFD304DB032FA677E101200009C105F8 +:10047000C25514C97DE607D302C3471AC5E57E12EB +:1004800013230DC27E14E101200009C105C27C14B2 +:10049000C9CD7414AF326120C5E51AD304DB03F56E +:1004A000A6CAA9143E01326120F1B6772313AFD357 +:1004B00004DB03F5A6CABD143E01326120F1B67714 +:1004C000E101200009C105C29814C9AFC577012018 +:1004D0000009C105C2CC14C93A2520FE05C8FE0298 +:1004E000C03A2920FED847D230153A0220A7C87852 +:1004F000FECED27915C606473A0920FE90D20415E1 +:10050000B8D2301568CD62153A2A2067CD6F152212 +:1005100064203E05322520CD81157EA7CA301536D0 +:1005200000CD5F0ACD3B1ACDD3153E10320320C952 +:100530003E03322520C34A1521032035C02A6420FA +:100540000610CD24143E04322520AF32022006F7D7 +:10055000C3DC19000E00BCD49015BCD0C6100CC36F +:100560005A153A092065CD54154105DE106FC93A78 +:100570000A20CD5415DE1067C93E01328520C345DF +:100580001578070707808080813D6F3A672067C92B +:100590000CC610FA9015C93A0D20A7C2B71521A4B0 +:1005A0003ECDC515D006FE3E01320D207832082022 +:1005B0003A0E20320720C9212425CDC515D0CDF112 +:1005C00018AFC3A91506177EA7C26B162305C2C7AD +:1005D00015C900CD7414E5C5E51AD304DB037723F0 +:1005E00013AFD304DB0377E101200009C105C2D7B3 +:1005F00015E1C9CD11160100377EA7CAFF150C23DE +:1006000005C2F91579328220FE01C0216B20360126 +:10061000C92E003A672067C93A1520FEFFC0211095 +:10062000207E2346B0C03A2520A7C03AEF20A7CAB3 +:1006300052163A2D20A7C24816CDC017E610C83E64 +:1006400001322520322D20C9CDC017E610C0322D31 +:1006500020C921252036012AED20237DFE7EDA6384 +:10066000162E7422ED207E321D20C937C9AFCD8BE6 +:100670001ACD10193600CDCA092311F5201ABE1B58 +:100680002B1ACA8B16D29816C38F16BED298167E16 +:100690001213237E12CD50193ACE20A7CAC91621B3 +:1006A000032811A61A0E14CD930A2525061B3A67B6 +:1006B000200FDAB716061C78CDFF08CDB10ACDE7BA +:1006C000187EA7CAC916C3ED0221182D11A61A0E4D +:1006D0000ACD930ACDB60ACDD609AF32EF20D305A5 +:1006E000CDD119C3890B310024FBAF321520CDD8F1 +:1006F000140604CDFA18CD590AC2EE16CDD7192129 +:100700000127CDFA19AFCD8B1A06FBC36B19CDCAE1 +:1007100009237E11B81C21A11A0E04471AB8D2274A +:100720001723130DC21C177E32CF20C93A2520FE95 +:1007300000C2391706FDC3DC190602C3FA1800000F +:10074000219B2035CC6D173A6820A7CA6D172196DA +:100750002035C02198207ED3053A8220A7CA6D1784 +:100760002B7E2B772B36013E04329B20C93A9820F2 +:10077000E630D305C93A9520A7CAAA1721111A1144 +:10078000211A3A8220BED28E172313C385171A323C +:1007900097202198207EE630477EE60F07FE10C2A4 +:1007A000A4173E01B077AF32952021992035C006BD +:1007B000EFC3DC1906EF2198207EA077D305C9008E +:1007C0003A67200FD2CA17DB01C9DB02C9DB02E698 +:1007D00004C83A9A20A7C03100240604CDD60905E2 +:1007E000C2DC173E01329A20CDD719FB11BC1C2167 +:1007F00016300E04CD930ACDB10AAF329A2032934F +:00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceInvaders/invaders_g.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceInvaders/invaders_g.hex new file mode 100644 index 00000000..44ccade4 --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceInvaders/invaders_g.hex @@ -0,0 +1,129 @@ +:10000000AF32C120CDCF013A67200FDA7208CD138D +:1000100002CDCF01CDB100CDD1190620CDFA18CD3A +:100020001816CD0A19CDF315CD88093A8220A7CA32 +:10003000EF09CD0E17CD3509CDD808CD2C17CD59E8 +:100040000ACA49080604CDFA18CD7517D306CD049F +:1000500018C31F0800000011BA1ACDF3080698DB78 +:10006000010F0FDA6D080FDA9807C37F073E01C34F +:100070009B07CD1A02C314083A0820472A0920EB2F +:10008000C386080000003A6720672EFCC921112BA7 +:1000900011701B0E0ECDF3083A67200F3E1C211184 +:1000A00037D4FF083EB032C0203AC020A7C8E604CB +:1000B000C2BC08CDCA09CD3119C3A9080620211C2C +:1000C000273A67200FDACB08211C39CDCB14C3A9FE +:1000D00008DB02E603C603C93A8220FE09D03EFBD4 +:1000E000327E20C93ACE20A7C0211C390620C3CBBE +:1000F000140E031AD5CDFF08D1130DC2F308C91190 +:10010000001EE526006F29292919EBE10608D30610 +:10011000C339143A0920FE78D02A91207DB4C2292F +:10012000092100063E013283202B229120C9CD11E6 +:10013000162EFF7EC9CD10192B2B7EA7C80615DB06 +:1001400002E608CA48090610CDCA09237EB8D8CDF0 +:100150002E09347EF521012524243DC258090610BC +:1001600011601CCD3914F13CCD8B1ACD10192B2BFD +:1001700036003EFF3299200610C3FA1821A01DFE5A +:1001800002D823FE04D823C9CDCA093AF120A7C852 +:10019000AF32F120E52AF220EBE17E8327775F235F +:1001A0007E8A277757237E23666FC3AD097ACDB247 +:1001B000097BD5F50F0F0F0FE60FCDC509F1E60F3F +:1001C000CDC509D1C9C61AC3FF083A67200F21F867 +:1001D00020D821FC20C92102243600237DE61FFE01 +:1001E0001CDAE809110600197CFE40DAD909C9CDEC +:1001F0003C0AAF32E920CDD6093A6720F5CDE401BB +:10020000F13267203A672067E52EFE7EE6073C77ED +:1002100021A21D233DC2130A7EE12EFC772336382E +:100220007C0FDA330A3E21329820CDF501CD041936 +:10023000C30408CDEF01CDC001C30408CD590AC2E3 +:10024000520A3E3032C0203AC020A7C8CD590ACA4F +:10025000470ACD590AC2520AC93A1520FEFFC93AC7 +:10026000EF20A7CA7C0A480608CDFA184178CD7C51 +:10027000097E21F32036002B772B3601216220C91D +:100280003E0232C120D3063ACB20A7CA850AAF323C +:10029000C120C9D51ACDFF08D13E0732C0203AC0CF +:1002A000203DC29E0A130DC2930AC9215020C34BA0 +:1002B000023E40C3D70A3E80C3D70AE1C372003A68 +:1002C000C1200FDABB0A0FDA68180FDAAB0AC921AE +:1002D000142B0E0FC3930A32C0203AC020A7C2DAF3 +:1002E0000AC921C220060CC3321AAFD303D305CDED +:1002F0008219FBCDB10A3AEC20A72117300E04C2B7 +:10030000E80B11FA1CCD930A11AF1DCDCF0ACDB168 +:100310000ACD1518CDB60A3AEC20A7C24A0B1195A2 +:100320001ACDE20ACD800A11B01BCDE20ACD800AB7 +:10033000CDB10A11C91FCDE20ACD800ACDB10A2183 +:10034000B733060ACDCB14CDB60ACDD6093AFF2174 +:10035000A7C25D0BCDD10832FF21CD7F1ACDE401BC +:10036000CDC001CDEF01CD1A023E0132C120CDCF6B +:1003700001CD1816CDF10BD306CD590ACA710BAFBA +:10038000322520CD590AC2830BAF32C120CDB10A2C +:10039000CD88190E0C21112C11901FCDF3083AECC9 +:1003A00020FE00C2AE0B2111333E02CDFF08019C9E +:1003B0001FCD5618CD4C18DB0207DAC30B01A01F66 +:1003C000CD3A18CDB60A3AEC20FE00C2DA0B11D5B0 +:1003D0001FCDE20ACD800ACD9E1821EC207E3CE69E +:1003E0000177CDD609C3DF1811AB1DCD930AC30B1E +:1003F0000BCD0A19C39A19130008130E26020E0F0B +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000000F9 +:00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceInvaders/invaders_h.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceInvaders/invaders_h.hex new file mode 100644 index 00000000..60810bae --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceInvaders/invaders_h.hex @@ -0,0 +1,129 @@ +:10000000000000C3D4180000F5C5D5E5C38C00007E +:10001000F5C5D5E53E8032722021C02035CDCD1703 +:10002000DB010FDA67003AEA20A7CA42003AEB2068 +:10003000FE99CA3E00C6012732EB20CD4719AF32E8 +:10004000EA203AE920A7CA82003AEF20A7C26F004F +:100050003AEB20A7C25D00CDBF0AC382003A9320CD +:10006000A7C28200C365073E0132EA20C33F00CD2C +:1000700040173A3220328020CD0001CD4802CD1306 +:100080000900E1D1C1F1FBC900000000AF327220CC +:100090003AE920A7CA82003AEF20A7C2A5003AC1D8 +:1000A000200FD28200212020CD4B02CD4101C382FE +:1000B00000CD8608E57E23666F220920220B20E111 +:1000C0002B7EFE03C2C8003D320820FEFE3E00C269 +:1000D000D3003C320D20C93E0232FB2132FB22C349 +:1000E000E408000000000000000000000000000024 +:1000F0000000000000000000000000000000000000 +:100100002102207EA7C23815E53A06206F3A672003 +:10011000677EA7E1CA360123237E2346E6FE070752 +:10012000075F160021001C19EB78A7C43B012A0BBE +:10013000200610CDD315AF320020C921300019EBB5 +:10014000C93A6820A7C83A0020A7C03A6720673A92 +:10015000062016023CFE37CCA1016F4605C25401B1 +:10016000320620CD7A0161220B207DFE28DA71193A +:100170007A3204203E01320020C916007D21092078 +:1001800046234EFE0BFA9401DE0B5F78C610477BC8 +:1001900014C3830168A7C85F79C6104F7B3DC39520 +:1001A0000115CACD012106203600234E3600CDD9D7 +:1001B000012105207E3CE60177AF21672066C9005A +:1001C000210021063736012305C2C501C9E1C93E18 +:1001D0000106E0210224C3CC142346237986772329 +:1001E000788677C906C011001B210020C3321A216E +:1001F0004221C3F8012142220E0411201DD5062CF4 +:10020000CD321AD10DC2FD01C93E01C31B023E0110 +:10021000C31402AF114222C31E02AF114221328128 +:10022000200102162106283E04F5C53A8120A7C206 +:100230004202CD691AC1F13DC8D511E00219D1C3FE +:100240002902CD7C14C335022110207EFEFFC8FE9A +:10025000FECA810223464FB079C27702237EA7C22D +:100260008802235E2356E5EBE5216F02E3D5E9E141 +:10027000110C0019C34B020504C27D023D05702B11 +:100280007711100019C34B02352B2BC38102E123D8 +:100290007EFEFFCA3B032335C047AF326820326978 +:1002A000203E30326A207836052335C29B032A1A55 +:1002B000200610CD241421102011101B0610CD3261 +:1002C0001A0600CDDC193A6D20A7C03AEF20A7C866 +:1002D000310024FBCDD719CD2E09A7CA6D16CDE765 +:1002E000187EA7CA2C033ACE20A7CA2C033A67204F +:1002F000F50FDA3203CD0E02CD78087323722B2B63 +:100300007000CDE401F10F3E210600D21203062059 +:100310003E22326720CDB60AAF32112078D3053C99 +:10032000329820CDD609CD7F1AC3F907CD7F1AC3E5 +:100330001708CD0902C3F802000000216820360129 +:10034000237EA7C3B003002B36013A1B20473AEFA8 +:1003500020A7C263033A1D200FDA81030FDA8E0350 +:10036000C36F03CDC0170707DA810307DA8E0321B5 +:100370001820CD3B1ACD471ACD39143E0032122039 +:10038000C978FED9CA6F033C321B20C36F0378FEC5 +:1003900030CA6F033D321B20C36F033CE6013215A8 +:1003A000200707070721701C856F221820C36F03E1 +:1003B000C24A032335C24A03C34603112A20CD068D +:1003C0001AE1D0237EA7C8FE01CAFA03FE02CA0AB8 +:1003D0000423FE03C22A0435CA36047EFE0FC0E59C +:1003E000CD3004CD5214E123342323353523353564 +:1003F00035233608CD3004C300143C773A1B20C6A1 +:1004000008322A20CD3004C30014CD3004D5E5C510 +:10041000CD5214C1E1D13A2C20856F322920CD91E3 +:10042000143A6120A7C8320220C9FE05C8C33604A9 +:10043000212720C33B1ACD3004CD52142125201191 +:10044000251B0607CD321A2A8D202C7DFE63DA5338 +:10045000042E54228D202A8F202C228F203A842093 +:10046000A7C07EE601012902C26E0401E0FE218AD6 +:100470002071232370C9E13A321B3232202A3820FE +:100480007DB4C28A042B223820C91135203EF9CD13 +:1004900050053A46203270203A5620327120CD6302 +:1004A000053A7820A7213520C25B0511301B213089 +:1004B000200610C3321AE13A6E20A7C03A8020FE0F +:1004C00001C01145203EEDCD50053A362032702056 +:1004D0003A5620327120CD63053A7620FE10DAE7D5 +:1004E000043A481B3276203A7820A7214520C25B87 +:1004F0000511401B2140200610CD321A3A82203DC2 +:10050000C208053E01326E202A7620C37E06E11124 +:1005100055203EDBCD50053A46203270203A362039 +:10052000327120CD63053A7620FE15DA34053A584B +:100530001B3276203A7820A7215520C25B05115046 +:100540001B2150200610CD321A2A7620225820C9AD +:10055000327F20217320060BC3321A117320060B41 +:10056000C3321A2173207EE680C2C1053AC120FE43 +:10057000043A6920CAB705A7C82336003A7020A7F5 +:10058000CA8905473ACF20B8D03A7120A7CA960544 +:10059000473ACF20B8D0237EA7CA1B062A76204E22 +:1005A0002300227620CD2F06D0CD7A0179C60767A9 +:1005B0007DD60A6F227B202173207EF6807723343C +:1005C000C9117C20CD061AD0237EE601C244062341 +:1005D00034CD75063A7920C603217F20BEDAE205C4 +:1005E000D60C3279203A7B20473A7E2080327B201D +:1005F000CD6C063A7B20FE15DA12063A6120A7C8B8 +:100600003A7B20FE1EDA1206FE2700D2120697322F +:1006100015203A7320F601327320C93A1B20C60810 +:1006200067CD6F1579FE0CDAA5050E0BC3A5050D78 +:100630003A6720676916057EA737C07DC60B6F1520 +:10064000C23706C9217820357EFE03C26706CD7504 +:100650000621DC1C227920217C2035352B35353EC6 +:1006600006327D20C36C06A7C0C37506217920CD54 +:100670003B1AC39114217920CD3B1AC3521422484E +:1006800020C9E13A8020FE02C02183207EA7CA0F44 +:10069000053A5620A7C20F05237EA7C2AB063A82B1 +:1006A00020FE08DA0F053601CD3C07118A20CD0661 +:1006B0001AD02185207EA7C2D606218A207E232338 +:1006C00086328A20CD3C07218A207EFE28DAF90670 +:1006D000FEE1D2F906C906FECDDC1923357EFE1FE8 +:1006E000CA4B07FE18CA0C07A7C006EF2198207E48 +:1006F000A077E620D305000000CD4207CDCB142122 +:100700008320060ACD5F0706FEC3DC193E0132F1E5 +:10071000202A8D20460E0421501D114C1D1AB8CAE6 +:10072000280723130DC21D077E3287202600682963 +:1007300029292922F220CD4207C3F108CD4207C35F +:100740003914218720CD3B1AC3471A06102198205F +:100750007EB077CD7017217C1D228720C33C071106 +:10076000831BC3321A3E01329320310024FBCD7922 +:1007700019CDD60921133011F31F0E04CDF3083A19 +:10078000EB203D2110280E14C2570811CF1ACDF3CB +:1007900008DB01E604CA7F070699AF32CE203AEBA8 +:1007A00020802732EB20CD471921000022F820229B +:1007B000FC20CD2519CD2B19CDD7192101017C3273 +:1007C000EF2022E72022E520CD5619CDEF01CDF50F +:1007D00001CDD10832FF2132FF22CDD700AF32FE4A +:1007E0002132FE22CDC001CD041921783822FC210E +:1007F00022FC22CDE401CD7F1ACD8D08CDD6090093 +:00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/01.1 b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/01.1 new file mode 100644 index 00000000..c844e77b --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/01.1 @@ -0,0 +1,97 @@ +   + +    + +    + +    + +    + +    + +    + +    + +    + +    + + + + + +   + + + + + +   + + + + + +   + + + + + +   + + + + + +   + + + + + +   + + + + + +   + + + + + +   + + + + + +   + + + + + +   + +    + +    + +    + +    + +    + +    + +    + +    + + \ No newline at end of file diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/02.2 b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/02.2 new file mode 100644 index 00000000..015b6ae0 --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/02.2 @@ -0,0 +1,97 @@ +  + +   + +   + +   + +   + +   + +   + +   + +   + +   + + + + + +  + + + + + +  + + + + + +  + + + + + +  + + + + + +  + + + + + +  + + + + + +  + + + + + +  + + + + + +  + + + + + +  + +   + +   + +   + +   + +   + +   + +   + +   + +  \ No newline at end of file diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la01.bin b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la01.bin new file mode 100644 index 00000000..a37528d3 Binary files /dev/null and b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la01.bin differ diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la01.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la01.hex new file mode 100644 index 00000000..761aac36 --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la01.hex @@ -0,0 +1,129 @@ +:10000000C34000414B412045FBC9203135353848BC +:10001000D306C380003020434E414B4120454F550D +:100020002031353538480D013932383020434E41C2 +:100030004B4120454F552031353538480D01393277 +:100040002100203600237CFE40C2430031C022CD77 +:100050005A01CD6F01CD0004CD401CAF325020328B +:100060005120325A203252203E0932592032582033 +:1000700000FBC37000454F552031353538480D0120 +:10008000CD990FC3BC00211E20347E0FDA9800CD1D +:10009000D700CDE100C39E00CDE100CDD700CDD289 +:1000A00006CDEE0BCD0903CD7F01CDF80A3A5020E5 +:1000B000A7CC340ACD5907CD8007FBC92147207E44 +:1000C000A7CA001435CACB00C30014214E207EE617 +:1000D000EF77D303C30014CD1104CD1406CD65060C +:1000E000C9CDA707CD8809CDD90900C9487802E054 +:1000F00002504802B002583002A002606002C802FA +:100100006828029802704802E8027820027802808B +:10011000A802B8028840028802905802B80298905B +:1001200002E802A07002B802A85002E002B0300259 +:100130009002007E183C66663C187E000018181875 +:100140003C247E7E180000925428C6285492000059 +:100150000000000000000000000021002111EC0060 +:100160001A7713237DFE47C26001AF32C021C92137 +:1001700000212281213E07328A21AF328B21C93AE8 +:10018000C021A7CA9E013DCA900132C021C39E0171 +:10019000AF32C0213A4E20E6F7D303324E202A81F7 +:1001A000217E328321232284217E328621232287CD +:1001B000217E328921218B21343A8321A7C2E0019B +:1001C0001105002A8121197DFE46C2D0012100219E +:1001D0002281213A8A21218B21BEC29E01AF77C99B +:1001E0003A8321E60F328E21AF328C21328D213AB3 +:1001F0008621A7C22F02218D2134218C21347EFE3D +:1002000002C214023A8D21FE02C211022A8121AFDC +:1002100077C3C0012A842123237E328621228421B0 +:100220002A872123237E328921228721C3EF013AA5 +:100230008921FE01CA3D02DA5502C35E0221460150 +:10024000228F213A4E20F608D303324E203E0A3246 +:10025000C021C37402215001228F21C374023A8E3F +:1002600021A7C26E02213201228F21C37402213CD8 +:1002700001228F21AF3291213A8E21A7C28502CD72 +:100280008B02C3BB02CD8B02C3EA023A83210F0F5C +:100290000FE61F4F06203A86216F260029292929BB +:1002A0002909EB2A8F21EB0120001A7713093A91D3 +:1002B000213C329121FE0AC2AA02C93A8921FE01DB +:1002C000CADA02DAE2022A84217EFEFFC2D5023EA9 +:1002D0001877C3FA013C77C3FA012A8721AF77C3A5 +:1002E000FA012A8421AF77C3FA013A8921FE01CAB3 +:1002F000DA02DAE2022A84217EFE16C204033EFFFD +:1003000077C3FA013D77C3FA013A0D20A7C218035B +:100310003A2C20A7C22F03C921062022A0212107A1 +:100320002022A221CD3E03AF320D20322C20C92144 +:10033000292022A021212A2022A221C324032AA08D +:10034000217E3CE6F8472100211105000E0E0D7EAE +:10035000B8CA5B031979A7C24E03C901140222A4CB +:10036000212AA2217ED60A2AA42123BECA7D0323E4 +:100370002305C26B0306023C0DC26703C93E01237D +:1003800077C9C3BB02CD8B02C3EA023A83210F0FA8 +:100390000FE61F4F06203A86216F260029292929BA +:1003A0002909EB2A8F21EB0120001A7713093A91D2 +:1003B000213C329121FE0AC2AA02C93A8921FE01DA +:1003C000CADA02DAE2022A84217EFEFFC2D5023EA8 +:1003D0001877C3FA013C77C3FA012A8721AF77C3A4 +:1003E000FA012A8421AF77C3FA013A8921FE01CAB2 +:1003F000DA02DAE2022A84217EFE16C204033EFFFC +:10040000065021002011700E1A77132305C208042C +:10041000C93A0C20A7C03A0020A7C265053A0220BD +:10042000A7C207053A0120A7C270043A5020A7CA04 +:10043000D9043A1420A7C0DB01E610CA03053A3BF1 +:1004400020A7C207052F323B20AF323820CD040C45 +:100450003A0820FE05DA07053E01320120CDFF06ED +:100460003A0A20C6073207203E00320520323320E8 +:100470003A05203C320520CD200ACD5A052A062017 +:10048000EBCDAD063A30204F160F3A05205F3A0803 +:1004900020BBDAF6043E26BBDAF6047AA6C249058A +:1004A000E5C5012000097EA7C2CF0401C0FF097E77 +:1004B000A7C2CF04C1E17AB6770DCA5A05CD200A8A +:1004C0003A05203C3205200FD2D40423C38804C14E +:1004D000E1C3490516F0C38A043E013236202138B3 +:1004E000207EA7C249042139207EFE0100CA2B05C7 +:1004F000D23A05C319053A05203D320520CD2A0A16 +:10050000C34F05AF323B203A5020A7CAE604DB01B7 +:100510000707DA2B0507DA3A052A0920EBCDAD06E5 +:10052000EB2A1520EB060FCDC406C93A0A20FEE0DF +:10053000CA19053C320A20C319053A0A20FE30CAFE +:1005400019053D320A20C319057AB677320B203ED1 +:1005500001320C203A32203219203A05208787C612 +:1005600037320620C93A03203D320320A7C03E059A +:10057000320320CD43073A04203D320420A7CAA00D +:10058000053A10203CE601321020070707072A151C +:1005900020856FEB2A0920EBE5CDAD06D1C32505FB +:1005A0003A5020A7CAE105CD4E073A1A203D321A2B +:1005B00020F5CD0711F1CACF053A5020A7CAE105B1 +:1005C000CD740ACD5A01CD581531C022C370002F09 +:1005D000321D203257203E12325820CDB60ACD832C +:1005E000132150203600233600CD4E07AF320122B2 +:1005F000C3C0053A5020A7C82A20203A24208527C6 +:100600006F3A25208C2767222420210000222020F9 +:10061000CD5510C93A0B20A7C83A0520FE25DA416E +:10062000063E013214203E0A3203203E16320420D8 +:1006300021300E2217203E01321020322120C35ECD +:1006400006320D2001070921500E3A0520B8DA5A6A +:100650000623040404040DC24D067E322020AF326E +:100660000B20C3F3053A0C20A7C83A19203D3219D4 +:1006700020A7C02A0620EBCDAD06AF3A0520471FC4 +:10068000CE0036002B3DC28206320C20320120CD36 +:1006900038073A082090320820AF320F203A332032 +:1006A0002FC69B473A0E208027320E20C926006AAB +:1006B0002929292929010020097B0F0F0FE61F0690 +:1006C000004F09C91A7713C501200009C105C2C42A +:1006D00006C93A2D203D322D20C03A3120322D203E +:1006E0003A0820FE64CA12073C3208203A0E20C69F +:1006F0000127320E20DA0A07AF320F20C30F073A64 +:100700004E20F601324E20D303C93E01320F20CDD8 +:10071000BF0F3A2B20FE64C83C322B203A2E20C655 +:100720000127322E20DA2F07AF322F20C334073EA5 +:1007300001322F20000000C93A4E20E6FE324E2042 +:10074000D303C93A4E20F604324E20D303C93A4EA1 +:1007500020E6FB324E20D303C93A4520A7C03A25F4 +:1007600020FE05D8211A2034CD07113A4E20F6106C +:10077000324E20D3033E803247203E01324520C90D +:100780003A4620A7C03A2720FE05D8211B2034CDA9 +:100790001A113A4E20F610324E20D3033E803247D3 +:1007A000203E01324620C93A2820A7C03A1420A78B +:1007B000C205093A0120A7C294083A0220A7C20341 +:1007C000083A0020A7C03A3620A7C27908DB02E623 +:1007D00010CA90083A3C20A7C294082F323C20AFA0 +:1007E000324B223A2B20FE05DA94083E01320220D9 +:1007F000CDFF063A1320C607322A203E00320520DC +:00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la02.bin b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la02.bin new file mode 100644 index 00000000..72885edf Binary files /dev/null and b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la02.bin differ diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la02.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la02.hex new file mode 100644 index 00000000..37b1d86a --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la02.hex @@ -0,0 +1,129 @@ +:100000003233203A05203C320520CD200ACDF708B6 +:100010002A2920EBCDAD063A30204F16F03A0520C4 +:100020005F3A2B20BBDA6C083E26BBDA6C087AA656 +:10003000C2E608E5C5012000097EA7C2620801C02A +:10004000FF097EA7C26208C1E17AB6770DCAF70838 +:10005000CD200A3A05203C3205200FD267082BC379 +:100060001B08C1E1C3E608160FC31D083A05203D71 +:10007000320520CD2A0AC3EC08214B227EA7C2DF1D +:10008000073A4C22FE0100CAB808D2CF08C3A6081E +:10009000AF323C203A3620A7C28108DB020707DADC +:1000A000CF0807DAB8082A1220EBCDAD06EB2A17E5 +:1000B00020EB060FCDC406C93A1320FEE0CAC708DC +:1000C0003C321320C3A6083EFF324C22C3A6083A96 +:1000D0001320FE30CADE083D321320C3A6083E01BD +:1000E000324C22C3A6087AB677321F203E0132284E +:1000F000203A32203219203A052087872FC601C6C0 +:10010000C8322920C93A03203D320320A7C03E054A +:10011000320320CD43073A04203D320420A7CA40D1 +:10012000093A10203CE601321020070707072A177A +:1001300020856FEB2A1220EBE5CDAD06D1C3B208C6 +:100140003A3620A7C25909CD4E073A1B203D321B33 +:1001500020F5CD1A11F1CA5F09CD4E07C3B905C309 +:10016000CF053A5020A7C83A3620A7C02A22203A05 +:10017000262085276F3A27208C27672226202100FA +:1001800000222220CDAE10C93A1F20A7C83A052070 +:10019000FE25DAB5093E013200203E0A3203203E38 +:1001A0001632042021100E2215203E01321020327A +:1001B0002320C3D209322C2001070921500E3A0511 +:1001C00020B8DACE0923040404040DC2C1097E322A +:1001D0002220AF321F20C362093A2820A7C83A194B +:1001E000203D321920C02A2920EBCDAD06AF3A05BB +:1001F00020471FCE003600233DC2F50932282032A9 +:100200000220CD38073A2B2090322B203A33202F72 +:10021000C69B473A2E208027322E20AF322F20C98E +:100220003A3320C60127323320C93A3320C69927F2 +:10023000323320C93A0820C34B0A21372035C03653 +:10024000200FDA590A21392036FFC93A0820FE3832 +:10025000DA3A0A3E01323820C92139203601C92153 +:1002600000002224202226202245203A8A0E321A1B +:1002700020321B2021002011700E1A7713237DFEDF +:100280001ACAA10AFE24CAA80AFE34CAAF0A7DFE11 +:1002900040C27A0A3A3620A7CAA00A3E24321B205E +:1002A000C92E1C1E8CC37A0A2E281E98C37A0A2EC9 +:1002B000371EA7C37A0A3E0232A0212A2420E5C1B4 +:1002C0002A26207CB8CACE0ADAD60AC3DB0A7DB950 +:1002D000DAD60AC3DB0AC5D1C3DD0AE5D13AA021CB +:1002E0003D32A021CAEF0A2A3420424BC3C30A7A06 +:1002F0003235207B323420C93A4D22E601C2820BCE +:10030000CD610C3A3422A7CA630B3A3222A7CA6ED7 +:100310000B3A4A22A7C2380B213C227EA7C27E0B91 +:100320003A4322210A2086E67F323C220FDA5A0B1A +:100330003A5E0C2F3C324C223A3622A7214A227ECA +:10034000CA490BF60177C3F70CE6FE773A4122E67D +:100350000F323622C3F70CC3450B3A5E0C324C22E7 +:10036000C3380B3A2B20FE30D27C0CC3180B3A401A +:1003700022E60F3232223E01324B22C3F70C35C344 +:10038000F70C213C2235C2970B34214D227EE6FE2C +:10039000772BAF77C3000B21332235C2AB0B360866 +:1003A000CD240C21322235F2AB0B3421352235C25B +:1003B000BF0B3607CD240C21342235F2BF0B34217C +:1003C000372235C2D30B3608CD240C21362235F224 +:1003D000D30B3421312235C2E90B3607CD240C2151 +:1003E000302235C2E90BC3140D214F2234C9060750 +:1003F0002147227E172B7E177705C2F50B21472256 +:100400007E1777C9060821590C1147227E122B1B33 +:1004100005C20C0C3E023233223E053235223E012B +:10042000323622C93A2520FE01DA510C35FE02DAB5 +:10043000510C35FE04DA510C35FE10DA510C35FE44 +:1004400020DA510C35FE40DA510C35FE80DA510CC1 +:1004500035C9D44B8CADB5195DE60205010001002C +:10046000023A0A2021132096213F22DA730C772BBF +:10047000AF77C92F3C772B3EFFC3710CDB01E64001 +:10048000C2900CDB01E620C29B0CCDD00CC3E20C69 +:100490003A3E22E680C2DF0CC3A60C3A3E22E6803A +:1004A000C2A60CC3DF0C3A3F22A7CAEC0C3A3E228C +:1004B000E680C2CB0C3E01324C22214C2277CDD0BB +:1004C0000C3A3F22BEDAEC0CC3F70C3EFFC3B70C6C +:1004D000213D2236003A4F22E60786323D22C9CD21 +:1004E000D00C3A3F22213D2296D2A60C3A4122E678 +:1004F0000F323422C3760B214922360FCD240C3A19 +:100500004F22E60FBE00DA970B2101207EA7C21F03 +:100510000DC3970B3A4422E60F323022C3E90B2178 +:100520003F227EFE09D2970B2B7EA7214C2236015B +:10053000C2350D36FF214D227EF601773A4522E67F +:100540000FC60A323C22C3970B0685050B094D5591 +:100550004003060C8F2D511189041512450DC50459 +:10056000A340A14E2008E21925160D192606040500 +:10057000A209515BC5098D05250540449A04010374 +:10058000870B712114002503A79D0309C209633657 +:10059000E102C40D809003840D87880955512E0017 +:1005A000821098C84904260C078BCC0860130709F1 +:1005B000898239435B0530029D808F4283180C4D40 +:1005C00055186048000E938D869480CA70188A046E +:1005D000C90052603E00C84A8982FF80481C8AAC2C +:1005E0004D028804410BDC0B06126DA0800E4F08F3 +:1005F00081001ACACD121D8A62C81C082501454D0A +:10060000001F070F0E153FE53F150E0F071F004A8D +:100610001184404B0B27270F5B030AA305084000FA +:10062000000401130307A30F2F032F4904030C0831 +:1006300000C02092F4C0F4F0CDE0C0C880200000DB +:100640000210A0C550C0DAF0E4E4D0D2022188152F +:1006500001020304050607010011E0170423202905 +:1006600000F8E0F070A8FCA7FCA870F0E0F80082A9 +:10067000000000000000000000303000000000001A +:100680000000C8E000000E600E0005050500000037 +:10069000000000000000000000C8E00000060000AC +:1006A0000403080000000000000025092AC8081CF7 +:1006B000640414041C000000E70546703F4000027B +:1006C0008D086000169064650E210500892E410D8D +:1006D000860F27078B0B2A297C010D03040005498F +:1006E0003C0810414400960B4512470910082C04A1 +:1006F0006A004723690185003F08892BCF04021255 +:10070000AF320122C30C0FAF3C320122AF02CD4405 +:100710000F02CD440F02CD440F210022868686862B +:10072000866F26003A01221E00BBC2330F112D1125 +:10073000C3360F11FF111916057E0223CD440F1584 +:10074000C2390FC9E521200009444DE1C9D11A473A +:10075000131A4F131A13D516FFBACA760F1630BAEA +:10076000C26C0F21000109444DC3720F320022CD2B +:100770000C0FD1C3540FE1E93A0222E60F320022F6 +:10078000011E3DCD000F3A0222E6F00F0F0F0F328F +:100790000022011E3CCD000FC9DB01E601CABA0FE1 +:1007A0003A032247AFB8C2B90F3A02223C273202BD +:1007B00022CD780FAF3C320322C9AF320322C93AAF +:1007C0000E20E60F320022011C37CD000F01032C52 +:1007D000CD070F3A0E20E6F00F0F0F0F3200220167 +:1007E0001C36CD000F01032DCD070F3A0F20FE0060 +:1007F000CAF80F3E01C3FA0F3E24320022011C3515 +:00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la03.bin b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la03.bin new file mode 100644 index 00000000..8f2ab5fb Binary files /dev/null and b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la03.bin differ diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la03.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la03.hex new file mode 100644 index 00000000..3d5b3e4a --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la03.hex @@ -0,0 +1,129 @@ +:10000000CD000F01032ECD070FC93A2E20E60F3287 +:100010000022011B37CD000F01042CCD070F3A2E13 +:1000200020E6F00F0F0F0F320022011B36CD000F1C +:1000300001042DCD070F3A2F20FE00CA43103E01C8 +:10004000C345103E24320022011B35CD000F0104B0 +:100050002ECD070FC93A2520E6F00F0F0F0F320003 +:1000600022011C2ECD000F010335CD070F3A2520AC +:10007000E60F320022011C2FCD000F010334CD0703 +:100080000F3A2420E6F00F0F0F0F320022011C3030 +:10009000CD000F010333CD070F3A2420E60F3200C5 +:1000A00022011C31CD000F010332CD070FC93A27C1 +:1000B00020E6F00F0F0F0F320022011B2ECD000F94 +:1000C000010435CD070F3A2720E60F320022011B2D +:1000D0002FCD000F010434CD070F3A2620E6F00F94 +:1000E0000F0F0F320022011B30CD000F010433CD62 +:1000F000070F3A2620E60F320022011B31CD000FF8 +:10010000010432CD070FC9011C3C3A1A20320022EB +:10011000CD000F010327CD070FC9011B3C3A1B205F +:10012000320022CD000F010427CD070FC93E414107 +:10013000413E00217F010031434549312241494977 +:10014000360C14247F0479494949463E49494926D9 +:1001500040474850303649494936304949493E1FA1 +:100160002444241F7F494949363E414141227F4171 +:1001700041221C7F494949417F484848403E414906 +:10018000492F7F0808087F00417F41000201417E1E +:10019000403F081422417F010101017F2018207F88 +:1001A0007F1008047F3E4141413E7F484848303E31 +:1001B0004145423D7F484C4A3132494949264040F9 +:1001C0007F40407E0101017E7C0201027C7E0106AF +:1001D000017E631408146360100F10604345495199 +:1001E0006100000000000408040800081422410017 +:1001F000004122140822147F142214141414140031 +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:10023000001F2444241F7F494949363E4141412241 +:100240007F4141221C7F494949417F484848403EFF +:100250004149492F7F0808087F00417F4100020182 +:10026000417E403F081422417F010101017F201897 +:10027000207F7F1008047F3E4141413E7F4848482F +:10028000303E4145423D7F484C4A3132494949263A +:1002900040407F40407E0101017E7C0201027C7E65 +:1002A0000106017E22147F142260100F10600000EE +:1002B00003030000000000003E00320122CD4D0F7C +:1002C000261E11121C0C181B0E30000000000030FE +:1002D000300C1B0E0D121D300000FFCD4D0F2E1DDA +:1002E0001C0C181B0E300F1E0E15301C111219FF9E +:1002F000CD4D0F261C2619150A220E1B27000000C3 +:10030000000030303000003030303000FFCD4D0F75 +:10031000261B3030303030303030303030303030FC +:10032000303030303030303030FF3E01320122CDBD +:100330004D0F2E0230211D0A121D18300C181B19EA +:10034000232130FFCD4D0F27033030303030303097 +:10035000303030303030303030303030303030309D +:10036000FFCD4D0F27043030303030303030211C7D +:10037000190A0C0E30150A1C0E1B213030FFAF324B +:100380000122C93A3520E6F00F0F0F0F320022018B +:100390001E2ECD000F3A3520E60F320022011E2F0F +:1003A000CD000F3A3420E6F00F0F0F0F320022017C +:1003B0001E30CD000F3A3420E60F320022011E31EC +:1003C000CD000FC90D1231363536202053484C442C +:1003D0002032314134480D123136363020204C481D +:1003E0004C442032314132480D0F31363634202012 +:1003F0004D4F5620412C4D0D0F31363638202053AD +:100400003A5720A7C27B153A5020E601C286003A2F +:100410000222E6FFC232143A5120FE00CA09163AFF +:100420005120FE02C28600CD62153E03325120C328 +:100430008600DB02E680C2BE143A5520E601C249BE +:1004400014CD17153E01325520DB01E604CA6614AF +:100450003A022206998027320222AF321B203E0147 +:10046000323620C38B14DB01E602C8DB02E680C211 +:100470007A143A02220699C382143A02223DC83CF9 +:1004800006988027320222AF323620AF3252203215 +:100490005C2032552032CC213C325020325B20CDC2 +:1004A0004B15CD481CCD5F0ACD8313CD780FCD07FA +:1004B00011CD1A113E20324E20D303C386003A5587 +:1004C00020A7C2D014CDEB143E01325520C34914ED +:1004D0003A0222FE01CA49143A5520FE01C24914CB +:1004E000CD17153E02325520C34914CD6215AF32E7 +:1004F0000122CD4D0F3014191E1C11FFCD4D0F28B8 +:1005000011303030281C1D0A1B1D300B1E1D1D18FC +:100510001728303030FFC9AF320122DB02E680C23B +:100520002F15CD6215CD4D0F3014191E1C11FFCDA6 +:100530004D0F281124242424281C1D0A1B1D240BC4 +:100540001E1D1D181728242424FFC93E4021002405 +:10055000360023BCC25015C93A1A20A7C83A1B203E +:10056000A7C8110B002106243600237DE61FFE1BC1 +:10057000C26815197CFE40C26815C93A58203D3240 +:100580005820C03A5A20FE01C29D15AF325A20327F +:100590005120324E20D303C620325820C9FE00C25B +:1005A000BE153A5920A7CABE153A59203D325920E6 +:1005B000C2C8153E01325A203E30325820C9AF32EF +:1005C00057203E09325920C93D4787805F160021D8 +:1005D000F115197E2332002246230E08E5CD000FC7 +:1005E000E1460E170000003E09325820AF320122CA +:1005F000C91B362D0E352E1F342F1833300E3033D5 +:10060000162F340A2E35102D363A5220FE00CA78A5 +:10061000183A5B203D325B20C03A5220FE01C239BD +:1006200016CD6215CD4D0F301619150A22FF3E204A +:10063000325B203E02325220C9FE02C25616CD8CD9 +:1006400017A7CA4B163E09325B20C93E20325B20F9 +:100650003E03325220C9FE03C2AE16CD4D0F280F05 +:10066000281C0C181B0E300A0D1F0A170C0E301D0B +:100670000A0B150E28FF3E0A325F20113201010CD1 +:100680002ACD64183E0F325F2011000E01CA29CD19 +:100690006418010C2C3E29320022CD000F010A2CD7 +:1006A000CD000F3E20325B203E04325220C9FE04B2 +:1006B000C2CB16CD8C17A7C2C5163E20325B203E9A +:1006C00005325220C93E09325B20C9FE05C2E81638 +:1006D000CD8C17A7C2E2163E60325B203E06325236 +:1006E00020C93E09325B20C9FE06C20C17CD621537 +:1006F000CD4D0F2C1512171C0E1B1D300C18121788 +:10070000FF3E60325B203E07325220C9FE07C229FD +:1007100017CD8C17A7C223173E20325B203E08322C +:100720005220C93E09325B20C9FE08C24617CD8C53 +:1007300017A7C240173E20325B203E09325220C923 +:100740003E09325B20C9FE09C27C17CD8C17A7C2B7 +:1007500076173A5C20A7CA6B17DB02E680C27617D1 +:100760003A5C20C60B325C20C376173E40325B20D9 +:100770003E0A325220C93E09325B20C9AF325220B4 +:10078000325C203E02325120325B20C921ED171627 +:10079000003A5C205F197EFEFFCAEA17FEFECAAC73 +:1007A00017473A5C203C325C20C3C017237E325E80 +:1007B00020237E325D2023463A5C20C604325C2032 +:1007C000783200222A5D20444D24225D20CD000F86 +:1007D00021ED1716003A5C205F197EFEFECAE8176D +:1007E000FEFFCAEA173EFFC9AFC9C3501CFE2C1357 +:1007F0001C190A0C0E24150A1C0E1BFE2E0C0100DF +:00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la04.bin b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la04.bin new file mode 100644 index 00000000..08a141e7 Binary files /dev/null and b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la04.bin differ diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la04.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la04.hex new file mode 100644 index 00000000..acef86ea --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/la04.hex @@ -0,0 +1,129 @@ +:1000000025070024191812171D1CFE2E0A010000D6 +:10001000002424191812171D1CFE2A112618171562 +:100020002224012419150A220E1B2724FE290E283A +:1000300028282828240109080024282828282824DA +:10004000FE290B281D0A121D18240C181B19181B39 +:100050000A1D121817282424FFFE340B01240C1843 +:10006000121724FF1A023A5F203DC8325F20132185 +:10007000200009444DC364183ACC21A7CA88183D12 +:10008000CA76193DCA7619C9110B0021062436001B +:10009000237DE61FFE1BC28E18197CFE40C28E18FF +:1000A0003E0132CC213E5432B0213EC832B121AFA4 +:1000B00032BF21C3C8183E5532B0213EC932B121EA +:1000C000AF32BF21C3C818C921D81922B2212AB220 +:1000D000217EFE00CAC61BFE07CAB01932B5212A0E +:1000E000B2212322B2217E32B6213AB621A7CACE4E +:1000F000193D32B6213AB52121B021FE00CA23199B +:10010000FE01CA2919FE02CA2F19FE03CA3319FEBD +:1001100004CA3719FE05CA3C19FE09CA4119FE0A6C +:10012000CA4719342334C34D19352335C34D193407 +:10013000C34D1935C34D192334C34D192335C34D50 +:1001400019352334C34D19342335C34D193ACC2105 +:10015000FE02CA6419003ABF21FE02C26F19AF3213 +:10016000BF21FBC93ABF21FE60C26F19C35E193CB3 +:1001700032BF21C376193AB0216F260029292929D7 +:1001800029010020093AB1210F0F0F57E61F060081 +:100190004F097AE6E00F0F0F0F0F4FA7CAA9193EBC +:1001A00001070DC2A119C3AB193E01B677C3EA1806 +:1001B0002AB221237E4F237E572322B2213AB02137 +:1001C0008132B0213AB1218232B121C3CE182AB294 +:1001D000212322B221C3CE180028021C00100308DC +:1001E0000108030C0020030807FCD80220001803B4 +:1001F00008011003180108071414020C0004030C72 +:100200000104070C0C020C0004030C01040710008D +:1002100002040008030401080708000204000803A0 +:1002200004010807F8E002080008020401040204BF +:10023000000803080004030801040308010402087D +:100240000108071800021800100308010C03100130 +:100250000407080802040008030401080708000254 +:10026000040008030401080710F802100028032006 +:10027000011002080008021001180308010807987D +:10028000E005040204051402040414020404040337 +:100290000C070CF80510020A040303060403020607 +:1002A00004040306040302060403030A070D000501 +:1002B00010020804030304040D030407D0E0030242 +:1002C000010405040A0402020904040400040704EA +:1002D000040514020C0414030C0704FC050C0204AE +:1002E000040C0304070C040514020C040C0308049A +:1002F0000402080404030C0704F4050402040404C3 +:100300000304070C080A04050401040202000404A3 +:100310000409040302070C080504020C0506030C7B +:100320000504020C0506030C050402100418031052 +:1003300007140005180210041803100704FC051028 +:10034000020804100308071004050C020C0508033A +:100350000C050402100410030C0404020C04040332 +:10036000100714F60504020404040304070C0A0130 +:10037000040504000405140204041803040708001B +:100380000504020C0506030C0504020C0506030C0B +:1003900005040210041803100714000504020C05DC +:1003A00006030C0504020C0506030C0504021004E8 +:1003B00018031007180001040504000405140204C2 +:1003C0000418030408083ACC21FE02CAD61B3E02D8 +:1003D00032CC21C3B6183E0032CC213E013252202D +:1003E0003E40325B20FBC9F51C352334C3F51C3479 +:1003F0002335C3F51C3ACC21FE02CA0C1D003ABFBE +:10040000F5C5D5E500210524060036BA0023047899 +:10041000FE20C20D1C7CFE40C2081CE1D1C1F1C906 +:1004200000FF00FF00FF00FF00FF00FF00FF00FFD4 +:1004300000FF00FF00FF00FF00FF00FF00FF00FFC4 +:10044000CD001CCDB812C9FFCD001CCDB812C9FF1C +:10045000AF325C20C9FF00FF00FF00FF00FF00FF7C +:1004600000FF00FF00FF00FF00FF00FF00FF00FF94 +:1004700000FF00FF00FF00FF00FF00FF00FF00FF84 +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A0007777336655666666661111555522224484 +:1004B00044222255551111555555555566227777C9 +:1004C0007777336655666666661111555522224464 +:1004D00044222255551111555555555566227777A9 +:1004E0007777336655666666661111555522224444 +:1004F0004422225555111155555555556622777789 +:100500007777336655666666661111555522224423 +:100510004422225555111155555555556622777768 +:100520007777336655666666661111555522224403 +:100530004422225555111155555555556622777748 +:1005400077773366556666666611115555222244E3 +:100550004422225555111155555555556622777728 +:1005600077773366556666666611115555222244C3 +:100570004422225555111155555555556622777708 +:1005800077771166556666666611115555222244C5 +:1005900044222255551111555555555566227777E8 +:1005A00077771166556666666611115555222244A5 +:1005B00044222255551111555555555566227777C8 +:1005C0007777116655666666661111555522224485 +:1005D00044222255551111555555555566227777A8 +:1005E0007777116655666666661111555522224465 +:1005F0004422225555111155555555556622777788 +:100600007777116655666666661111555522224444 +:100610004422225555111155555555556622777767 +:100620007777226655666666661111555522224413 +:100630004422225555111155555555556622777747 +:1006400077772266556666666611115555222244F3 +:100650004422225555111155555555556622777727 +:1006600077772266556666666611115555222244D3 +:100670004422225555111155555555556611777718 +:1006800077772266556666666611115555222244B3 +:1006900044222255551111555555555566117777F8 +:1006A0007777226655666666661111555522224493 +:1006B00044222255551111555555555566117777D8 +:1006C0007777226655666666661111555522224473 +:1006D00044222255551111555555555566117777B8 +:1006E0007777226655666666661111555522224453 +:1006F0004422225555111155555555556611777798 +:100700007777226655666666661111555522224432 +:100710004422225555111155555555556633777755 +:100720007777226655666666661111555522224412 +:100730004422225555111155555555556633777735 +:1007400077772266556666666611115555222244F2 +:100750004422225555111155555555556633777715 +:1007600077772266556666666611115555222244D2 +:1007700044222255551111555555555566337777F5 +:1007800077772266556666666611115555222244B2 +:1007900044222255551111555555555566337777D5 +:1007A0007777226655666666661111555522224492 +:1007B00044222255551111555555555566337777B5 +:1007C0007777226655666666661111555522224472 +:1007D0004422225555111155555555556633777795 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000FFFF00FB +:00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/laser1.bin b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/laser1.bin deleted file mode 100644 index c113ee79..00000000 Binary files a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/laser1.bin and /dev/null differ diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/laser2.bin b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/laser2.bin deleted file mode 100644 index 85ea0d61..00000000 --- a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SpaceLaser/laser2.bin +++ /dev/null @@ -1,193 +0,0 @@ -  - -   - -   - -   - -   - -   - -   - -   - -   - -   - - - - - -  - - - - - -  - - - - - -  - - - - - -  - - - - - -  - - - - - -  - - - - - -  - - - - - -  - - - - - -  - - - - - -  - -   - -   - -   - -   - -   - -   - -   - -   - -     - -    - -    - -    - -    - -    - -    - -    - -    - -    - - - - - -   - - - - - -   - - - - - -   - - - - - -   - - - - - -   - - - - - -   - - - - - -   - - - - - -   - - - - - -   - - - - - -   - -    - -    - -    - -    - -    - -    - -    - -    - - \ No newline at end of file diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Sflush/fr01.sc6 b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr01_sc6.bin similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Sflush/fr01.sc6 rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr01_sc6.bin diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr01_sc6.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr01_sc6.hex new file mode 100644 index 00000000..7a7c4e19 --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr01_sc6.hex @@ -0,0 +1,129 @@ +:10000000781100FF88D803FC02002000000007FBE5 +:10001000820002000000000000000046080000808E +:10002000491AF9D24818F9EA4716FA024614FA1A98 +:100030004512FA32579AFA4A5898FA625996FA7A59 +:100040005A94FA925B92FAAA4810490C49134A153D +:100050004B174C0C4C104C134D164E0A4E114F0CB6 +:100060004F134F154F17520C521352155217530A74 +:1000700053115416550C5510551356175715580C47 +:1000800058135910F88A0EFF8CFF330226021E0205 +:100090001905FF0119061E0326021E022602330659 +:1000A0000000F8A80BFF44FF3302FF0122062803DB +:1000B00033022D0228022602280226021906FF0119 +:1000C0000000051005052005104F064D1E08080903 +:1000D0002B13030F12054F064F1E05140109140FB1 +:1000E00000000020200000232020202000FF02012B +:1000F000FE0202FE0103FD0204FD0105FD0106FDF5 +:10010000FF07FDFF08FDFE09FEFF0AFEFE0BFFFED6 +:100110000C01FE0D02FE0E02FF0F03FE1003FF1185 +:1001200003FF120301130301140302150201160257 +:1001300002170102FF03FE03FD03FDFDFEFDFFFDAF +:1001400001FD02FD03FD03030203010300FD03178C +:100150000202FF04FE04FD03FC02FC01FC01FCFFA3 +:10016000FCFFFCFEFDFDFEFCFFFC01FC02FC03FDB0 +:1001700004FE04FF04FF040104010402030302045B +:1001800001040000010200010015161716170009EE +:100190000A0B0A08000C0D0E0D0E00090C0E0116BC +:1001A000000D090B021500010203041314151617A4 +:1001B0000708090A0B0C0D0E0F10FFFF55D5ABAA4F +:1001C00055D5ABAA55D5ABAA55D5ABAA55D5ABAA33 +:1001D000FFFFFF7F077807709F679F6F9F4F9F4FBD +:1001E0009F6F9F6707700778FF7FFF7FFF7FFF7F0D +:1001F000014001409F79CF73E767F34FF95FFF7FBD +:10020000FF7FFF7F07600760F94FF94FD94FC94F54 +:10021000E14F03600160FD7FFF7FFF7FE74FE74F06 +:10022000F94FF94FF94F07400740FF4FFF4FFF4F7E +:10023000FF7FFF7F03400340FF7F07700770F94F88 +:10024000F94FF94F07700770FF7FFF7F03400340AE +:10025000734E734E734E734E734E734E8F718F7118 +:10026000FF7FFF7F07700770F94FF94FF94FF94F84 +:10027000F94FF94F07700770FF7FFF7F0140014082 +:10028000FF79FF7C7F7E9F7FCF7FE77F014001402A +:10029000FF7FFF7F07400740F97FF97FF97FF97FF4 +:1002A000F97FF97F07400740FF7FFF7FE761E76144 +:1002B000794E794E794E794E794E87738773FF7FE9 +:1002C000FF7FA400A8005001500020002400260059 +:1002D000C700F501FC21FE43FE67FC6F387F207FDD +:1002E000A05BE0787020302020002000200020005B +:1002F0000000A002800A4005400188008C008E00AA +:100300001A009801FC83FC43F807F847606F407EB1 +:10031000407EC05BE078602040204000400040000C +:10032000000000002000200020002000302070206D +:10033000E078A05B207F387FFC6FFE67FE43FC21E6 +:10034000F501C70026002400200050005001A8003D +:10035000A400000040004000400040206020E07801 +:10036000C05B407E407E606FF847F807FC43FC832B +:1003700098011A008E008C00880040014005800A18 +:10038000A00200000000C003E007F00FF80FFC0718 +:10039000FE03FF01FF01FE03FC07F80FF00FE0076B +:1003A000C003E001F003F003F01BE67DC6FEFEFF94 +:1003B000FEFFC6FEE67DF01BF003F003E001000047 +:1003C0000000C000E001F003F807FC0FFE1FFF3F34 +:1003D000FF3FFE1FFC0FF807F003E001C000000024 +:1003E0000000000000008003C007E00FE01FCC3FCA +:1003F0000C7FFCFFFCFF0C7FCC3FE01FE00FC00731 +:10040000800300387C3E1F3E7C38181C69FF691C45 +:10041000180000183C7EFF7E3C18001C3C79FF79D8 +:100420003C1C183C3C18007E5A7E7E5A7E00183CCC +:1004300076DFFB6E3C18C8411A1C3C0251087EFF57 +:10044000E7DBDBE7FF7E0E0F070B0B070F0E81428A +:100450003C3C3C3C4281FFFFFFFFFFFFFFFF0008E9 +:10046000080808080800FFFFF8FFE0FF80FF00FE13 +:1004700000FC00FC00F800F000E000E000C000C05C +:1004800000800080008000800080008000C000C0EC +:1004900000E000E000F000F800FC00FC00FE80FF3F +:1004A000E0FFF8FFFFFF441E1A13030F12052B2174 +:1004B00000000D121B140109140F000013030F128A +:1004C000052B224B090B090E1305121400030F090B +:1004D0000E004B070D2100030F090E00212B100CFD +:1004E0000119004B050D2200030F090E00222B10ED +:1004F0000C011900480311140109140F00030F1215 +:10050000100F120114090F0E59020431323334480E +:10051000121410120513130021100C0119051200FA +:10052000021514140F0E4612171012051313002192 +:100530002B2200100C0119051200021514140F0EC5 +:10054000005303060312050409144D0608100C019C +:100550001905122D2E4D0608100C011905122F3009 +:100560004C040A051814120100100C01194C1E0A43 +:100570000008092B13030F1205005A1803353637EC +:100580004F0F0414090C144B080B020F0E15130027 +:10059000100F090E142520200021202020222020C9 +:1005A0002024202020262020204E84050518141207 +:1005B000014A0F100E150D020512000D011403085B +:1005C000002A21204C0D0A20212223242526272819 +:1005D000294C0D0A05181412010002010C0C591ABD +:1005E0000338393A4D040907010D05000F160512AD +:1005F0004817110E010D0500120507091314120109 +:1006000014090F0E500E051C1D001E1F4906040E76 +:10061000010D054F050A2C2C2C2C2C2C2C2C2C2CB1 +:100620000000000000000000001F2444241F000000 +:10063000007F494949360000003E41414122000007 +:10064000007F4141413E0000007F4949494100008F +:10065000007F484848400000003E414145470000B7 +:10066000007F0808087F00000000417F4100000073 +:1006700000020101017E0000007F081422410000F9 +:10068000007F010101010000007F2018207F000091 +:10069000007F1008047F0000003E4141413E000001 +:1006A000007F484848300000003E4145423D000080 +:1006B000007F484C4A310000003249494926000079 +:1006C0000040407F40400000007E0101017E0000AC +:1006D000007C0201027C0000007F020C027F00000F +:1006E00000631408146300000060100F1060000025 +:1006F0000043454951610000000000030300000071 +:10070000001F141609011E01011E001F15150A0005 +:10071000001F151511001F08041F001F11110E00E6 +:10072000003E4549513E00000000217F01000000CD +:100730000023454949310000004241495966000003 +:10074000000C14247F04000000725151514E00002F +:10075000001E2949494600000040474850600000FB +:100760000036494949360000003149494A3C0000F9 +:100770000041221408142241000808080808080053 +:100780000008080808080818081422410000112170 +:100790007F01010041221408081422410003254969 +:1007A0004931000041221408102041A2948890E0B1 +:1007B000060C18307FC080000000FF2010080000E9 +:1007C0000010101010101000007F494936001F243F +:1007D00044241F00007F010101007F01010100008E +:1007E00040407E40401E2848281E00427E42004075 +:1007F000407E40007E42427EE217D800D800D800FA +:00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Sflush/fr02.sc5 b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr02_sc5.bin similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Sflush/fr02.sc5 rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr02_sc5.bin diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr02_sc5.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr02_sc5.hex new file mode 100644 index 00000000..cbc99b11 --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr02_sc5.hex @@ -0,0 +1,129 @@ +:10000000BDEA25DE72399630270139CEA51886055E +:100010008D1DCE4518DF72CEFAC2DF70C618D774B8 +:100020007EEBE6DE33DF70C660DB70D770DE70C655 +:1000300003D772C6027EE9A2DE33C603D772C602B8 +:10004000BDE966DE33DF7086609B709770DE70C638 +:1000500003D772C6027EE9A09636D6359B34D933D3 +:10006000C1452709C15927129734D733394FCE00DC +:1000700080DF3597397C003720DE8601CEFF802077 +:10008000F096392611963A27064FCEFAC2201686E8 +:1000900001CEFAF2200F963A27064FCEFB2220051A +:1000A0008601CEFB52DF70973ADE33DF72C618D777 +:1000B000747EEBE6DE1BC6017EEE9786FFDF74C61C +:1000C00060DB74D774DE74A700A78039961ED61D36 +:1000D0009B1CD91BC14A2709C156271C971CD71B3B +:1000E00039CE0080DF1D7C00229622810426DD7F30 +:1000F00000228601972320D4CEFF80DF1D20CD96DD +:1001000026810126078602CEFC2620058601CEFC2C +:100110002EDF709726DE1BDF727EEA25CEFC36DFEF +:1001200070DE1BDF72BDEA25DE1B8601E600270EAE +:10013000DF70C660DB70D770DE70A700A78039CE95 +:10014000501ADF1BCE0080DF1D39CE4608DF33CECC +:100150000080DF357F003939860F9774CE4998DFEC +:1001600072CEFC3EDF70BDEA257A007426F37F0074 +:10017000857F00BDBDEDE3BDF7204F9728972997F8 +:100180002A39CE4998C60F7EEE97CEF820DF7458F4 +:1001900058DB7524037C0074D775DE74EE02DF70C3 +:1001A000DE74EE00DF72C660DB72D774D673D7756B +:1001B000DE74A700A701A780A7817C0074DE74A766 +:1001C00000A70139C60CD7747EEBE6D60027087C61 +:1001D00000BBCE014820067C0083CE00EEDF709786 +:1001E00072489B729B7124037C00709771DE70864D +:1001F00001A7008610BDF72C8602973E39C60196EE +:10020000002704D7C32002D78B8602C60A202A867D +:10021000082024D6002605CE00982003CE00D0DF8B +:10022000709772489B729B7124037C00709771DEFB +:10023000708601A7008604C604BDF72CD73E39CED0 +:10024000591ADF72CEFDA1DF7486049776BDE9FEF0 +:10025000CEB91AC60486017EEC56CEFD877EE9ED46 +:10026000CEFDA52003CEFD9DDF74CE4F06DF728646 +:100270000497767EE9FECE4B04C60CD772C6057E87 +:10028000E966DE16D618DF706F0086209B712403A6 +:100290007C00709771DE705A26EEB68008800716D3 +:1002A0004444448B43977058585858585CD77181D0 +:1002B000442205CE4501203AD618DE70DF72862032 +:1002C0009B7324037C007297735A26F29672815CAA +:1002D0002204DE70201CCE5D01DF70D618D7728636 +:1002E000E0C6FF9B71D9709771D7707A007226EFC4 +:1002F000DE70DF16DF70D618D77286E0A700C62042 +:10030000DB7124037C0070D771DE707A007226ECFA +:100310003901010101010101010101010101010195 +:1003200001010101010101010101010101010101BD +:1003300001010101010101010101010101010101AD +:10034000010101010101010101010101010101019D +:10035000010101DE49C601BDEE97B6800844444460 +:100360004A974B4C974CCE46114A2726810A2319AF +:1003700081152207CE460F800B200E811B2305CE50 +:10038000530D200ECE460D8016DF70489B7097707F +:10039000DE70DF49DF72CEFC5EDF70BDEA258601CC +:1003A000976039CEFC22DF70DE12DF72C6049673CE +:1003B0008407B780198D70DE70A60008DF70DE72CA +:1003C000B78018B68009AA00A7007F8018B68009F8 +:1003D000AA01A70186209B7324037C007297735A9D +:1003E00026D539CEFC56DF70DE12DF72C604967356 +:1003F0008407B780198D30DE70A60008DF70B780E3 +:1004000018B68009DE72A800A400A7007F8018B685 +:100410008009A801A401A70186209B7324037C0006 +:100420007297735A26D139379673D672544654460A +:100430005446CB3F9773D772333996738407B7808E +:10044000198DE47F000CDE70A60008DF70B78018FD +:10045000B6800936DE72A40027068601970CDF0DF0 +:1004600032A800A7007F8018B6800936A4012708AB +:100470008601970C08DF0D0932A801A70186209B91 +:100480007324037C007297735A26BB3996738407D2 +:10049000B780198D92DE70A60008DF70B78018B69D +:1004A0008009DE72A800A7007F8018B68009A80125 +:1004B000A70186209B7324037C007297735A26D56C +:1004C0003996002605CE021A2003CE021FA600365A +:1004D000A601E602F00217B2021632B2021522039A +:1004E000270139A600B10215260EA601B102162673 +:1004F00007A602B1021727EAA600EE01B70215FF10 +:1005000002168D0FB6800A850827D796004C9746AD +:100510007EEE92B6021736B6021636B6021536FED3 +:1005200002137EEFB57C00459645810A26037F00C5 +:100530004539CE480CC610D772C604BDE966CEA8B0 +:100540000CC610D772C604BDE9A0CEFDB1BDE9ED61 +:10055000CEFDC4BDE9EDCE4C0DDF72860A97748DD9 +:1005600052B7801A7C00727A007426F37C0044969D +:1005700044810426E1CE4C0DDF7296454C97748D74 +:10058000327C00727A007426F67A0072DE7286017E +:10059000BDF13086FFBDEA6E8660BDEA6E7F004425 +:1005A00096002605B6021C2003B6022144444444AA +:1005B000914539DE728601BDF130C620BDEA64DEA8 +:1005C0007286FF7EF1304FF6020E270286049741B5 +:1005D000B7801D970039CEFD4A8D067EF4C1CEFD51 +:1005E00055BDE9EDCEFDE47EE9EDDF72CEFDE7DF3E +:1005F00074860997767EE9FE86019700BDEF47CEA7 +:1006000000D020097F0000BDEF47CE00988D047F09 +:100610000019395F37DF75A6012619CEF820DF7083 +:100620005858DB7124037C0070D771DE70EE00BD7A +:10063000ED9E2014967536967636A602BDF18ABDDB +:10064000F1C4329776329775DE75080808335CC1BD +:100650000A26C1BDED15BDEE397EEBC8CE008D205A +:1006600003CE00C59630A700963BA701961FA702B0 +:100670009621A7039637A7049639A7059633A706B0 +:100680009634A7079642A7089635A7099636A70A73 +:1006900039CE008D2003CE00C5A6009730A6019765 +:1006A0003BA602971FA6039721A6049737A6059796 +:1006B00039A6069733A6079734A6089742EE09DFB6 +:1006C000353936B6800B850126057F020F3239B6E3 +:1006D000020F26F97C020FB6020E4C81092207B7E1 +:1006E000020E810926E786808D4220E1963F27048D +:1006F0007A003F39960327FB8618204186019742EE +:100700009643260F860120317F004286018D2E966A +:1007100043260939860197439642260F86022019FF +:100720007F004386028D16964226D9399A402003CF +:100730004394409740B7801C399A41200343944129 +:100740009741B7801D39DF70CE006ADF72C606BDE3 +:10075000EA7B964197698424B7801D9640848097F0 +:10076000400FDE6AB6800B85202604A6002606967A +:100770006997410E3908DF70E6008580260F378DB6 +:1007800020BDF6C2335A26F6DE700820D7DE6E0989 +:10079000DF72967226F9BDF6C25A26F1DE70082085 +:1007A000C3DE6C36168620BDF72C17F7801A09DFDA +:1007B00072D67227174A26F68620BDF730323609E0 +:1007C000DF72D67227064A26F63220D73239000168 +:1007D000000000001100FF88D812034F011800002C +:1007E000501A00800000000000F8C2000000000065 +:1007F000FB82FC0204000000460800801200FF8813 +:00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Sflush/fr03.sc4 b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr03_sc4.bin similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Sflush/fr03.sc4 rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr03_sc4.bin diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr03_sc4.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr03_sc4.hex new file mode 100644 index 00000000..220a87bb --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr03_sc4.hex @@ -0,0 +1,129 @@ +:100000007EE51F8609BDF213961581032707860337 +:1000100097157EE709860597157EE70E860820DD91 +:10002000960D81592604860720DB860720CF860699 +:10003000D62827C9CEF94C7EE549960D815726046E +:10004000860520C1860520B5963C260CB6022726DB +:1000500007963D2775BDF282BDF6EC965E27037EBE +:10006000E91CB6800B85102718BDEE92CEF8D6DFBE +:1000700070CE004FDF72C60ABDEA7BBDEEB37EE2F2 +:100080009E9662272DB6800B16850827F1C504279A +:100090002F966426E97C00647C00639663810F23BD +:1000A000DD7F0063C60196622704D76520D0D76242 +:1000B00020CCB6800B16840681062609C50826D1F9 +:1000C0007F006420B97F006320B4DE12DF72CEFCB3 +:1000D00022DF70C604960C26087F000BBDF3EE20CD +:1000E0000ABDF48C960B26037EE36996139B119749 +:1000F0001396129B10971296022703BDF282DE120E +:10010000DF72CEFC22DF70C604BDF43A961281275E +:10011000230781F722037EE8587EE375B6800B85BE +:1001200008260C86019761BDF3537F00602012966C +:100130006127077F00618601975F96602603BDF304 +:10014000537EE29ECE00006F00088C022826F8CE77 +:1001500042006F00088C600026F839CE4500C618B2 +:10016000D772C61C2000DF70D7734FA700A720A747 +:1001700040A760A780A7A0A7C0A7E0085A26EC7CEC +:100180000070DE70D6737A007226E039CEA500C604 +:1001900018D772C61C2009CEA300C61CD772C62071 +:1001A00086FFD773DF70A700A780085A26F87C0067 +:1001B00070DE70D6737A007226EC39CE4A02C60E13 +:1001C000D772C6188DA0CEAA02C60ED772C6182046 +:1001D000CFCE5D008D0ECE4500C618D772C6018DFC +:1001E00085CE4400C608D772C6027EEBA7DF74EE48 +:1001F00000DF72DE74A6029776080808DF74DE74EA +:10020000A60008DF745FCEFE20DF704859485948C9 +:10021000599B71D9709771D7708D0AC60A8D457A2E +:10022000007626DA39DE70C6084FDB719970D77117 +:100230009770A60036A60136A60236A60336A60497 +:1002400036A60536A606E607DE72E7E0A7C032A7A7 +:10025000A032A78032A76032A74032A72032A70081 +:100260007C00723986F84A0126FC5A26F73936C6D0 +:10027000028DF1B7801A324A26F439DE70A60008E2 +:10028000DF70DE72A70008DF725A26EF39D774DEFE +:1002900070A600E6010808DF70DE72A701E7020819 +:1002A0000808DF727A007426E639DE7208DF72C64B +:1002B00005DE70A60008DF70DE72A70008DF725A44 +:1002C00026EF39CEF7CEDF70CE0009DF72C62E20C2 +:1002D000AACE00EEDF70CE00982008CE0148DF7075 +:1002E000CE00D086018D3686058D32DE708601C641 +:1002F0001E6F006F01A7020808084C8107230286C1 +:10030000015A26ED8C01482605CE007E2003CE0042 +:10031000B6DF72CEF806DF70C61A7EEA7BC6056FBE +:10032000006F01A7020808085A26F439964036964D +:100330004136CE00006F00088C004626F832974107 +:100340003297408D8CCE4E1DFF0213CE451DFF020D +:1003500018CE581DFF021D8D82B6800A84038B03C0 +:10036000977E97B6CEF8ECDF70CE01C6DF72C64836 +:10037000BDEA7BCEF982DF70CE01A2DF72C624BD5A +:10038000EA7B4F97669767976839CE44008D12CE07 +:100390005D008D0DCE441CC6D0D772C601867F206D +:1003A00008C608D772C61D86FFD773DF70A700087E +:1003B0005A26FAC620DB7124037C0070D771DE70E8 +:1003C000D6737A007226E639CEFC66DF70CE451A07 +:1003D000DF72C610D7748D0ECEFC86DF70CE5B1A2E +:1003E000DF72C610D774DE70A600E6010808DF7061 +:1003F000DE72A700E7015F86209B73D972D77297E0 +:10040000737A007426E039CE4E1DDF72CEF8E620F6 +:1004100021CE4E1D2017CE0000FF021AFF021F7FC3 +:10042000021C7F0221CE451D8D03CE581DDF72CEEA +:10043000F8E0DF74C606D7767EE9FECEA41EC608B5 +:1004400086018D12C60A86058D0EC60886048D08A3 +:10045000CEFCA67EE9EDDF70A700A7807C0070DEF1 +:10046000705A26F439CEB903C60486048DE8CEB995 +:1004700002C60486018DDFCEB901C60486048DD67E +:10048000CEFCC3BDE9EDB6800A8540270CCEFCD278 +:10049000BDE9EDCEFCE3BDE9EDCEFCF4BDE9EDCE6A +:1004A00059038D68CEFD08BDE9EDCE59018D5DC6BD +:1004B000FFD770C608BDEA64B7801A960226497A4B +:1004C000007026EF96652717CEFDDEBDE9ED86FFAD +:1004D000BDEA6EC603D772C601CE591ABDE9664F92 +:1004E0009762976397649765C618D772C60ACE4518 +:1004F00000BDE966B7801ACEA500C618D772C60A35 +:10050000BDE9A0BDEB8A8D0D7F000939C620D772E9 +:10051000C6017EEBA796002609DE7FDF2DCE00EE1A +:100520002007DEB7DF2DCE01484FE60126028D09F8 +:100530000808084C811E26F23936DF74E602CEF830 +:1005400048DF72489B7324037C00729773DE72EE5F +:1005500000DF72DF7086609B709770DE70E700E7E7 +:1005600080DE2DDF70BDEA25DE7432398D19CE456F +:10057000128D2BCE46148D26CE47168D21CE4818CF +:100580008D1CCE491A2017CE5B928D12CE5A948DB7 +:100590000DCE59968D08CE58988D03CE579ADF70A0 +:1005A000DF7286609B709770DE708606A700A701D9 +:1005B000A780A7817C0070DE70A700A701CEF9BAE2 +:1005C000DF70860C97747EEBE696002605CE0098C9 +:1005D0002003CE00D086056F006F010808084A2668 +:1005E000F6208B96002605CE00A72003CE00DF86DE +:1005F000056F006F010808084A26F6208A96002633 +:1006000005CE00982003CE00D0DF7086059772FEDD +:100610000223A600088CF7CE2603CEE217FF0223A2 +:1006200084012604860120028604DE70A7020808E1 +:1006300008DF707A007226D73996002604DE8720FC +:1006400002DEBFDF2BDF70CE5010DF728610977492 +:100650007EEBE6CEB010C602D7727EE9A2377EEFFF +:10066000BB96002705CE01482003CE00EEC61E6FC4 +:10067000010808085A26F87EED1586FF9770C60116 +:10068000BDEA64960226067A007026F23932327E7E +:10069000D8ABCE4C1EC60ADF704FA700A720A740DC +:1006A000A760A780A7A0A7C0A7E07C0070DE705A53 +:1006B00026E8399653260139CE00517EE9ED4F9751 +:1006C0005E97479748974D974E398D1596002605AA +:1006D000B6021A2003B6021F810922454D272120A8 +:1006E0004C96002605B6021A2003B6021FC60181E9 +:1006F0000722188103220A861897184F9719971A0C +:1007000039961926FBD71986102008961A26F1D794 +:100710001A860C9718CE4500C618D772C6027EE915 +:10072000668D0ACE4A0E8D0DCE570E2008CE4E0E87 +:100730008D03CE530EDF72CEFC4EDF707EEA25CEE7 +:10074000BC17C6017EEC56CEF7FC2003CEF801DFC5 +:1007500070CE000FDF72C6057EEA7BCE000F6F0001 +:100760006F016F026F036F04390F8D020E3996000F +:100770002605CE021A2003CE021FB6021036B6029C +:100780001136B60212AB0219A70232A90119A7014C +:1007900032A90019A7004FB70210B70211B7021211 +:1007A000A60236A60136A60036D6002605FE021899 +:1007B0002003FE021D8D15328D1832368D0E328DBE +:1007C0001132368D07328D0A7F0222394444444467 +:1007D0002002840F260DF60222260DDF707C0070A9 +:1007E000DE7039C601F702228B20DF72CEFE20DFD9 +:1007F000705F4859485948599B71D9709771D770A3 +:00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Sflush/fr04.sc3 b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr04_sc3.bin similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Sflush/fr04.sc3 rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr04_sc3.bin diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr04_sc3.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr04_sc3.hex new file mode 100644 index 00000000..d1a91915 --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr04_sc3.hex @@ -0,0 +1,129 @@ +:10000000967E279FCE0101DF3CBDE95B0F8620BDB8 +:10001000F73D7F00050EBDE98CBDF604BDF661BD60 +:10002000F691CE0000DF3C7EDFA3BDF53226037ED5 +:10003000DF2DBDF5DEBDF4C186FFBDEA6E967E26DE +:10004000C30F8620BDF73DC610BDEA640ECE010188 +:10005000DF3CBDE95BBDF14AB60225260496462683 +:1000600039CE0000FF0225BDF5C6CE4C14BDF5EA21 +:100070008603977286FF9771B6020E260F8601BD22 +:10008000EA6E7A007126F17A007226E8BDE95BBD5E +:10009000E98CCE0000DF3C7ED83B0F4A9700260C4F +:1000A00086FBBDF73DC610BDEA6420058620BDF77E +:1000B000390EBDE95BBDE98CCEA60DDF74860397D2 +:1000C00076C6158601BDEC56DE740808DF747A002A +:1000D0007626EECE00466F00088C006226F8CEFD34 +:1000E000F0BDE9EDCEFE28DF70CE4612DF72C60B02 +:1000F000D774BDEA257C00727A007426F5CE4610CE +:10010000DF72C60BD774BDEA257C00727A007426B4 +:10011000F5CE460EDF72C605D774BDEA257C0072A7 +:100120007A007426F5CEFE04BDE9EDCEFE0CBDE9E5 +:10013000EDCEFE13BDE9EDCE4611DF49CE4F06DF11 +:100140004F86FF975EB60225265E964D2707B602BC +:100150000E2653200B964E2707B6020E810122462B +:10016000964781192240B7801A965F27D8964B810F +:100170001B2233811B2737965381092229CE005435 +:10018000DF7096539B7124037C00709771DE70962C +:100190004CA700DE4FDF72C601D776BDEA057C00B2 +:1001A0004F7C0053203D2041BDEEBE7EE04DCE0091 +:1001B00054965326046F002013DF704A9B7124036A +:1001C0007C00709771DE706F007A004FDE4FDF7237 +:1001D000CEFE20DF70C601D776BDEA2596532703F1 +:1001E0007A00537F005F7EE145BDEE92965327195A +:1001F000CE4C1EDF5116860A10449B519751CE00FB +:1002000051BDE9ED86FFBDEA6EBDEEBECE0101DF58 +:100210003CBDF5C67EE08CDE70DF77DE72DF79DE16 +:1002200074DF7B9676977DB6800B8480D600260699 +:10023000F6800AC4801B9B002704818126037EE888 +:1002400048B6800B852026677F0226BDF6C2965EE3 +:1002500027037EE2E4963E2607867FBDF730200323 +:100260007A003E960527037EE3339603270DB6807A +:100270000B85082729860197052023B6020E270340 +:100280007EE303963C26179613810823037EE365DD +:1002900086019709BDF3E3BDEF5B8601973CDE77EE +:1002A000DF70DE79DF72DE7BDF74967D97763BB69A +:1002B000022626EA8601B70226BDE95BBDE98CCE9F +:1002C000AB0DC60AD772C6038601BDE9A2CEFD807A +:1002D000BDE9EDCE4C0DBDF5EA4FBDEA6E8601B726 +:1002E000022520BAB6800B16840227068601974D98 +:1002F00020ACC40427068601974E20A2DE4708DF03 +:1003000047209B8604BDF739BDEF5B86019702B697 +:10031000800B16840227098601970397067EE29ECA +:10032000C40427F9B6020E810123F28601970397D0 +:100330000720EA963D264E961381072338963027EC +:10034000107C0031963181042607860197327F00A8 +:1003500031961F27107C00209620810426078601F5 +:1003600097277F0020960C261F7F000B7F000C969E +:1003700013810722108601970ABDF3E37F0005BDB4 +:10038000E9D17F00197EE29E960B27037EE5A586C4 +:1003900001970BD60D960E841FD770977181012699 +:1003A0000BC1442729C15D27257EE60A4D27C6815A +:1003B0000723188111271A811122238108271C8104 +:1003C000092718C1442704C15D2662BDF20F7EE5EE +:1003D00054C15A2218C146230D20597EE594811537 +:1003E000220EC14822037EE742C15823557EE747CB +:1003F0008117220AC14A23EEC15622F120448119F5 +:100400002211C14922037EE7DDC15722037EE48920 +:100410007EE82E811A260BC14A23CBC15622CE7EFE +:10042000E735C14A23C0C15622C37EE728810E2684 +:10043000037EE569C1512707C15026067EE5027E8D +:10044000E4F4C1502215C14C22084FC608CEF8482A +:10045000201D8608C607CEF8582014C154220986EC +:100460000FC607CEF86620078616C608CEF8749722 +:1004700072D7739671D670E1002604A101271D087A +:10048000087C00727A007326EE860197297C002A88 +:100490008640BDF72C8603973E7EE55B967236BD9F +:1004A000F1CB32CEE4B8DF70489B7124037C00703E +:1004B0009771DE70EE006E00E515E515E51FE51598 +:1004C000E510E51FE515E51AE515E51FE51AE51543 +:1004D000E510E51FE510E51AE515E51FE515E51A38 +:1004E000E51FE51FE510E51FE510E51AE51FE51F0F +:1004F000E510E51581102605BDF1FD2018BDF1FDC3 +:10050000200E81102605BDF1FD2014BDF1FD200A4D +:10051000CE01A8200DCE01B42008CE01A22003CE2A +:1005200001AEA6004C810526014FA7004C084A26C3 +:10053000FCA600CE01C6DF7097725F489B72599B84 +:1005400071D9709771D770DE70A600970FEE01DF3A +:10055000107EE29ED60F86171020D8D60FC10B232F +:1005600004862320F3860B20EFC14A2709C15827B0 +:1005700005CE01BA2003CE01C0DF75D60327A386BE +:1005800010B70212BDEF6E8610BDF72C8602973EA3 +:10059000DE75208EC144270AC15D27068601973B80 +:1005A00020B97EE3CB960ED60D841F81022219C19D +:1005B00044270DC15D2653960F810B22977EE29E44 +:1005C000960F810B22F7208C8118272D811927295E +:1005D000811A2607962927E57EE5158112270F81C6 +:1005E0001B26DAC14A23F1C15622D27EE51FC1453E +:1005F00023E6C15B23F57EE29EC149230AC157224F +:10060000037EE29E7EE82E7EE7DDBDF20F96672731 +:10061000279668267396002605B6021A2003B602AE +:100620001F2765CE01C6DF72CEF952DF70C618BD36 +:10063000EA8D8601976820507C00669666810323C8 +:100640004786019767CE01C6DF72CEF934DF70C6E8 +:1006500003BDEA8DCE01E1DF72CEF93ADF70C60646 +:10066000BDEA8DCE0205DF72CEF946DF70C603BD4E +:10067000EA8DCE01A2DF72CEF9A6DF70C604D77470 +:10068000BDEAAA7A007426F8DE16DF70D61854C0C8 +:100690000286209B7124037C007097715A26F2DE3B +:1006A000709C0D270C9670D671D00E920D222827C3 +:1006B00026D618545486209B7124037C00709771B1 +:1006C0005A26F2DE709C0D27549670D671D00E9289 +:1006D0000D224F274D2046DE16DF70D61854548663 +:1006E000209B7124037C007097715A26F2DE709C67 +:1006F0000D27119670D671D00E920D22072705CEC8 +:1007000001C62021CE01C9201CCE01CF2017CE0169 +:10071000D52012CE01FF200DCE02052008CE020802 +:100720002003CE020B7EE549BDF20F960F81112208 +:100730000E8105230A860197217F001F7EE29E7E9F +:10074000E55B80114820058011488B18CEE760DFFB +:10075000709B7124037C00709771DE70EE006E0058 +:10076000E790E79CE79CE7CBE7CBE7CFE7D9E7DD6E +:10077000E7DDE7F2E7E9E790E796E7F5E7F5E81C5C +:10078000E81CE820E82AE82EE82EE83AE844E79654 +:10079000BDF20F7EE515BDF20F7EE51F960D814679 +:1007A000270C8604D6302603BDF2137EE515860499 +:1007B000D6302603BDF213961481132707861397AC +:1007C000147EE713861597147EE718860320D596C6 +:1007D0000D81482704860220D7860220C78601D6CD +:1007E0002827C1CEF94F7EE549960D814926034F52 +:1007F00020BE4F20AF960D815B27088609BDF213FE +:00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Sflush/fr05.sc2 b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr05_sc2.bin similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Sflush/fr05.sc2 rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr05_sc2.bin diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr05_sc2.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr05_sc2.hex new file mode 100644 index 00000000..947be3f5 --- /dev/null +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/Strightflush/fr05_sc2.hex @@ -0,0 +1,129 @@ +:100000000F8E03DF7F801DBDE944CEE217FF022380 +:10001000B6800A8508260ABDEC11CEF8C9C60D20A7 +:100020000D8603B70215BDEC07CEF8D6C60ADF7001 +:10003000CE004FDF72BDEA7BBDEC168601B702270A +:10004000BDEB2C8620BDF73DBDE997BDEB8ABDEB2E +:10005000C8BDEC3BBDEAC3BDED15BDED6CBDEE39D1 +:10006000BDEF21CE0000DF3C7F02277F00000EB6EF +:100070000225263CBDEE92BDEEB396022635BDEEBE +:100080007ABDEE92CEFD6DBDE9EDBDEE7A96092604 +:1000900005B7801A20D98601973CBDE9D1B6022563 +:1000A000260EBDEC65BDEE7ABDEF4C7F003C20BF57 +:1000B0007EE04D8601973D4F970B970CBDE95BBDE8 +:1000C000E98CCEFD41BDE9EDB7801AB6020ECE5ADD +:1000D00003BDEFE8B6020E81012205CEFD0F200A16 +:1000E000960826097C0008CEFD26BDE9EDB602255E +:1000F00026BE960627055F86992010960726087F5C +:1001000000037F000520BBC6018698BB020E19B70D +:10011000020ED701810822058680BDF730BDEC169E +:10012000BDE95BBDEBC8BDEB437F00837F00BBBD7A +:10013000EE01BDEE0686019702BDED6CBDED15BD6D +:10014000EB8ABDEE39CEFD7ABDE9ED960026098633 +:1001500001BDEF3FD67E20078604BDEF3FD6B6B681 +:10016000800A84038B0410CE5C17BDEFE87F000A81 +:10017000CE500FC601BDEE970FBDEEFBBDEECABD62 +:10018000EF15BDF29A0EBDF17ABDF23FBDF006BD8E +:10019000F18296002604860120028604CEA501C6BF +:1001A00018BDEC5696002605CEFD4A2003CEFD551F +:1001B000BDE9ED960427097F0004CEFD60BDE9EDA1 +:1001C00086FF97709605260E8604BDEA6E7A00704B +:1001D00026F286019705CE4804C610D772C606BD22 +:1001E000E966BDEF478604BDF739CE0000DF3CB6B7 +:1001F000022527037EE04DB7801A960C26FC962830 +:100200002607960A270F7EDEB3961381BC2206BD11 +:10021000F182BDF17ABDEECA962927417F00298679 +:1002200001B70211BDEF69962A81092330D60D96D8 +:100230000E849F36858026015A32C148231FC1573C +:10024000221B8A80D7729773DE72A60084F027057E +:10025000CEFC462003CEFE20DF70BDEA2596378116 +:100260000526037EDAF49630272C96382610860170 +:100270009738CE4518C603D772C602BDE9669632D6 +:100280002714BDF6FCBDF038BDF0588605BDF0233F +:10029000BDF0817F0032963B261A962327360F7FCA +:1002A0000023BDF7207F001FBDEDE3BDF0B4BDF11D +:1002B0007A0E203D8610B70211BDEF698610BDF79A +:1002C00039860A973F7F003B8601BDF023C640BDBB +:1002D000EA64201D961F260696212715204C962796 +:1002E000270FBDF714BDF0B4BDF0CCBDF0FF7F000B +:1002F000277EDBB07F0037CE0101DF3CBDF0387FC9 +:100300000038BDF00BBDEDFDBDEDC97F00307F00B5 +:100310003BBDF14A960026057F008420037F00BC88 +:10032000CE0000DF3CBDF70820C7CE0101DF3C86D0 +:1003300008BDF7398630973F7F0021BDF3E3BDF15B +:100340001C7F0022DE24A6008120271281102707AF +:100350008605CEFD95200C8610CEFD9920058620C1 +:10036000CEFD9DB70211DF74CE4F19DF7286049760 +:1003700076BDE9FEDE24088CF8C92603CEF8C2DF7C +:1003800024BDEF6986B0BDEA6ECE4A99C60DD7721C +:10039000C603BDE966CEAA99C60DD772C603BDE9EC +:1003A000A0BDF13FBDF15886019728CE0000DF3C8B +:1003B00096002605CE00842003CE00BCA600810551 +:1003C00026686F00CE0101DF3C860197309600263B +:1003D00005CE009A2003CE00D2A600C60408080865 +:1003E000A10026285A26F6BDF25ABDF260CEFDA91C +:1003F000BDE9ED860197048660B70211BDEF6986FD +:10040000A0BDEA6ECEF884BDF7462016BDF25ABDF7 +:10041000F2658620B70211BDEF698640BDEA6EBD68 +:10042000EA6EBDF276CE0000DF3C96002705CE00D6 +:10043000BD2003CE0085A600810526356F00CE01C4 +:1004400001DF3C962F368610B70211BDEF6986405A +:10045000BDF72C860A973EC6F0BDEA64867FBDF7DD +:1004600030B7801A324A26DD8601971FCE0000DFA2 +:100470003C96002705CE00D02003CE00985FA60052 +:1004800026160808085CC10526F4A60026390808C7 +:10049000085CC10A26F420556F00A601260E9600BE +:1004A00027057C00BC20327C0084202DA60281011F +:1004B0002704860120028604A702BDF18A8650B770 +:1004C0000212BDEF6920AA6F00A60126F096002750 +:1004D000057C00BD20037C00858601A701A602BD26 +:1004E000F18ABDF1C48603B70211BDEF69960027FA +:1004F00005CE01482003CE00EE5FA600260A0808BC +:10050000085CC11E26F420470F6F006C01CEF8482E +:10051000DF704F58DB719970D7719770DE70EE0005 +:10052000DF70BDF0BBDE70C601BDEE97BDF3A396D4 +:10053000002704DEB92002DE81FF0211BDEF6EBD8F +:10054000F525960027057C00C420037C008C0E96C0 +:10055000002605CE00862003CE00BEA60527206F0C +:1005600005A604B70211A603B70210A6004C810825 +:1005700026028601A700BDEE53BDEF69BDF52596A5 +:10058000002705CE00B92003CE0081A602811D23DD +:1005900006A60B811D22037ED9EF0F6F026F0B861B +:1005A00001973C973DA600368620AB0119A7013282 +:1005B000890019A700A608368602AB0919A70932D7 +:1005C000890019A7080E0909DF70EE00DF72DE70DE +:1005D000EE08DF748CFBE22607CEFB82DF74200B73 +:1005E00086209B7524037C00749775DE728CFC1A40 +:1005F0002607CEFC02DF72200B86089B7324037C47 +:1006000000729773DE709672D673A700E701967436 +:10061000D675A708E709962F810927094C972FCE91 +:10062000591ABDEFE8BDE9BB96002704DEB72002EA +:10063000DE7FDF70CE5008DF72BDEA25CE5008861F +:1006400004BDF12C96002704DEBF2002DE87DF2BDD +:10065000DF70CE500ADF7286109774BDEBE6CEB025 +:1006600008C602D7728601BDE9A29600270A96B98C +:10067000D6BA373696C220089681D6823736968A01 +:100680005FCE530BBDEE5D3233CE5308BDEE5DCE73 +:10069000F8A2BDF74686A0BDEA6EBDE9BBBDEE611E +:1006A000BDEE39CE00FFDF10BDEB64CE0000DF3CB5 +:1006B0007ED9EF8601973D8601BDF72C8610973EC7 +:1006C000861BBDF73D7F0043BDF0B47F001F7F0058 +:1006D00022BDF13FBDE9D18610BDEA6E9600260825 +:1006E0007F0085CE00A720067F00BDCE00DF6F0112 +:1006F0006F046F076F0A6F0DBDED878604972FBDDE +:10070000F23FBDEB649604260C960127037EDFB30F +:100710007A007E2708C6FFBDEA647EDFA3BDF4C170 +:10072000CE0101DF3CBDF53227037EE04DCE480C03 +:10073000C612D772C604BDE966CEA80CC612D7721F +:10074000C604BDE9A0860636CEFDD1BDE9ED86041E +:10075000BDF7398602BDF72C86FF973EC640BDEA3D +:1007600064CE4C0DC60ABDEE97C640BDEA64324A5F +:1007700026D5867FBDF730C60196002707D7B6CEAF +:1007800000D02005D77ECE0098BDF6137F0044CE62 +:100790004C04C60AD772C603BDE966BDF5254F975E +:1007A0003C9705BDE9D17F000ABDEF5B8601973D0F +:1007B0007ED942960026447A007E270696B6261BEE +:1007C00020E1BDF4C1BDF53226037EDF2DBDF5D697 +:1007D0004FBDEA6E96B626037ED83BCE0101DF3CC4 +:1007E000BDE95B0F8620BDF7397F00050EBDE98CA2 +:1007F000BDF5F8BDF65CBDF69620277A00B6272A2F +:00000001FF diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuEarthInv/earthinv.e.bin b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuEarthInv/earthinv.e.bin deleted file mode 100644 index 0bc91068..00000000 Binary files a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuEarthInv/earthinv.e.bin and /dev/null differ diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuEarthInv/earthinv.f.bin b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuEarthInv/earthinv.f.bin deleted file mode 100644 index e46346ba..00000000 Binary files a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuEarthInv/earthinv.f.bin and /dev/null differ diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuEarthInv/earthinv.g.bin b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuEarthInv/earthinv.g.bin deleted file mode 100644 index 6f15e7c1..00000000 Binary files a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuEarthInv/earthinv.g.bin and /dev/null differ diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuEarthInv/earthinv.h.bin b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuEarthInv/earthinv.h.bin deleted file mode 100644 index c1f5f4d8..00000000 Binary files a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuEarthInv/earthinv.h.bin and /dev/null differ diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuEarthInv/earthinv.e.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuperEarthInvasion/earthinv_e.hex similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuEarthInv/earthinv.e.hex rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuperEarthInvasion/earthinv_e.hex diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuEarthInv/earthinv.f.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuperEarthInvasion/earthinv_f.hex similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuEarthInv/earthinv.f.hex rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuperEarthInvasion/earthinv_f.hex diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuEarthInv/earthinv.g.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuperEarthInvasion/earthinv_g.hex similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuEarthInv/earthinv.g.hex rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuperEarthInvasion/earthinv_g.hex diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuEarthInv/earthinv.h.hex b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuperEarthInvasion/earthinv_h.hex similarity index 100% rename from Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuEarthInv/earthinv.h.hex rename to Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/SuperEarthInvasion/earthinv_h.hex diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/invaders_rom_e.vhd b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/invaders_rom_e.vhd deleted file mode 100644 index b19c4624..00000000 --- a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/invaders_rom_e.vhd +++ /dev/null @@ -1,288 +0,0 @@ --- generated with romgen v3.0 by MikeJ -library ieee; - use ieee.std_logic_1164.all; - use ieee.std_logic_unsigned.all; - use ieee.numeric_std.all; - -entity INVADERS_ROM_E is - port ( - CLK : in std_logic; - ENA : in std_logic; - ADDR : in std_logic_vector(10 downto 0); - DATA : out std_logic_vector(7 downto 0) - ); -end; - -architecture RTL of INVADERS_ROM_E is - - - type ROM_ARRAY is array(0 to 2047) of std_logic_vector(7 downto 0); - constant ROM : ROM_ARRAY := ( - x"20",x"C3",x"C9",x"16",x"21",x"84",x"20",x"7E", -- 0x0000 - x"A7",x"CA",x"07",x"07",x"23",x"7E",x"A7",x"C0", -- 0x0008 - x"06",x"01",x"C3",x"FA",x"18",x"21",x"10",x"28", -- 0x0010 - x"11",x"A3",x"1C",x"0E",x"15",x"CD",x"F3",x"08", -- 0x0018 - x"3E",x"0A",x"32",x"6C",x"20",x"01",x"BE",x"1D", -- 0x0020 - x"CD",x"56",x"18",x"DA",x"37",x"18",x"CD",x"44", -- 0x0028 - x"18",x"C3",x"28",x"18",x"CD",x"B1",x"0A",x"01", -- 0x0030 - x"CF",x"1D",x"CD",x"56",x"18",x"D8",x"CD",x"4C", -- 0x0038 - x"18",x"C3",x"3A",x"18",x"C5",x"06",x"10",x"CD", -- 0x0040 - x"39",x"14",x"C1",x"C9",x"C5",x"3A",x"6C",x"20", -- 0x0048 - x"4F",x"CD",x"93",x"0A",x"C1",x"C9",x"0A",x"FE", -- 0x0050 - x"FF",x"37",x"C8",x"6F",x"03",x"0A",x"67",x"03", -- 0x0058 - x"0A",x"5F",x"03",x"0A",x"57",x"03",x"A7",x"C9", -- 0x0060 - x"21",x"C2",x"20",x"34",x"23",x"4E",x"CD",x"D9", -- 0x0068 - x"01",x"47",x"3A",x"CA",x"20",x"B8",x"CA",x"98", -- 0x0070 - x"18",x"3A",x"C2",x"20",x"E6",x"04",x"2A",x"CC", -- 0x0078 - x"20",x"C2",x"88",x"18",x"11",x"30",x"00",x"19", -- 0x0080 - x"22",x"C7",x"20",x"21",x"C5",x"20",x"CD",x"3B", -- 0x0088 - x"1A",x"EB",x"C3",x"D3",x"15",x"00",x"00",x"00", -- 0x0090 - x"3E",x"01",x"32",x"CB",x"20",x"C9",x"21",x"50", -- 0x0098 - x"20",x"11",x"C0",x"1B",x"06",x"10",x"CD",x"32", -- 0x00A0 - x"1A",x"3E",x"02",x"32",x"80",x"20",x"3E",x"FF", -- 0x00A8 - x"32",x"7E",x"20",x"3E",x"04",x"32",x"C1",x"20", -- 0x00B0 - x"3A",x"55",x"20",x"E6",x"01",x"CA",x"B8",x"18", -- 0x00B8 - x"3A",x"55",x"20",x"E6",x"01",x"C2",x"C0",x"18", -- 0x00C0 - x"21",x"11",x"33",x"3E",x"26",x"00",x"CD",x"FF", -- 0x00C8 - x"08",x"C3",x"B6",x"0A",x"31",x"00",x"24",x"06", -- 0x00D0 - x"00",x"CD",x"E6",x"01",x"CD",x"56",x"19",x"3E", -- 0x00D8 - x"08",x"32",x"CF",x"20",x"C3",x"EA",x"0A",x"3A", -- 0x00E0 - x"67",x"20",x"21",x"E7",x"20",x"0F",x"D0",x"23", -- 0x00E8 - x"C9",x"06",x"02",x"3A",x"82",x"20",x"3D",x"C0", -- 0x00F0 - x"04",x"C9",x"3A",x"94",x"20",x"B0",x"32",x"94", -- 0x00F8 - x"20",x"D3",x"03",x"C9",x"21",x"00",x"22",x"C3", -- 0x0100 - x"C3",x"01",x"CD",x"D8",x"14",x"C3",x"97",x"15", -- 0x0108 - x"21",x"E7",x"20",x"3A",x"67",x"20",x"0F",x"D8", -- 0x0110 - x"23",x"C9",x"0E",x"1C",x"21",x"1E",x"24",x"11", -- 0x0118 - x"E4",x"1A",x"C3",x"F3",x"08",x"21",x"F8",x"20", -- 0x0120 - x"C3",x"31",x"19",x"21",x"FC",x"20",x"C3",x"31", -- 0x0128 - x"19",x"5E",x"23",x"56",x"23",x"7E",x"23",x"66", -- 0x0130 - x"6F",x"C3",x"AD",x"09",x"0E",x"07",x"21",x"01", -- 0x0138 - x"35",x"11",x"A9",x"1F",x"C3",x"F3",x"08",x"3A", -- 0x0140 - x"EB",x"20",x"21",x"01",x"3C",x"C3",x"B2",x"09", -- 0x0148 - x"21",x"F4",x"20",x"C3",x"31",x"19",x"CD",x"5C", -- 0x0150 - x"1A",x"CD",x"1A",x"19",x"CD",x"25",x"19",x"CD", -- 0x0158 - x"2B",x"19",x"CD",x"50",x"19",x"CD",x"3C",x"19", -- 0x0160 - x"C3",x"47",x"19",x"CD",x"DC",x"19",x"C3",x"71", -- 0x0168 - x"16",x"3E",x"01",x"32",x"6D",x"20",x"C3",x"E6", -- 0x0170 - x"16",x"CD",x"D7",x"19",x"CD",x"47",x"19",x"C3", -- 0x0178 - x"3C",x"19",x"32",x"C1",x"20",x"C9",x"8B",x"19", -- 0x0180 - x"C3",x"D6",x"09",x"21",x"03",x"28",x"11",x"BE", -- 0x0188 - x"19",x"0E",x"13",x"C3",x"F3",x"08",x"00",x"00", -- 0x0190 - x"00",x"00",x"3A",x"1E",x"20",x"A7",x"C2",x"AC", -- 0x0198 - x"19",x"DB",x"01",x"E6",x"76",x"D6",x"72",x"C0", -- 0x01A0 - x"3C",x"32",x"1E",x"20",x"DB",x"01",x"E6",x"76", -- 0x01A8 - x"FE",x"34",x"C0",x"21",x"1B",x"2E",x"11",x"F7", -- 0x01B0 - x"0B",x"0E",x"09",x"C3",x"F3",x"08",x"28",x"13", -- 0x01B8 - x"00",x"08",x"13",x"0E",x"26",x"02",x"0E",x"11", -- 0x01C0 - x"0F",x"0E",x"11",x"00",x"13",x"08",x"0E",x"0D", -- 0x01C8 - x"28",x"3E",x"01",x"32",x"E9",x"20",x"C9",x"AF", -- 0x01D0 - x"C3",x"D3",x"19",x"00",x"3A",x"94",x"20",x"A0", -- 0x01D8 - x"32",x"94",x"20",x"D3",x"03",x"C9",x"21",x"01", -- 0x01E0 - x"27",x"CA",x"FA",x"19",x"11",x"60",x"1C",x"06", -- 0x01E8 - x"10",x"4F",x"CD",x"39",x"14",x"79",x"3D",x"C2", -- 0x01F0 - x"EC",x"19",x"06",x"10",x"CD",x"CB",x"14",x"7C", -- 0x01F8 - x"FE",x"35",x"C2",x"FA",x"19",x"C9",x"21",x"72", -- 0x0200 - x"20",x"46",x"1A",x"E6",x"80",x"A8",x"C0",x"37", -- 0x0208 - x"C9",x"32",x"2B",x"24",x"1C",x"16",x"11",x"0D", -- 0x0210 - x"0A",x"08",x"07",x"06",x"05",x"04",x"03",x"02", -- 0x0218 - x"01",x"34",x"2E",x"27",x"22",x"1C",x"18",x"15", -- 0x0220 - x"13",x"10",x"0E",x"0D",x"0C",x"0B",x"09",x"07", -- 0x0228 - x"05",x"FF",x"1A",x"77",x"23",x"13",x"05",x"C2", -- 0x0230 - x"32",x"1A",x"C9",x"5E",x"23",x"56",x"23",x"7E", -- 0x0238 - x"23",x"4E",x"23",x"46",x"61",x"6F",x"C9",x"C5", -- 0x0240 - x"06",x"03",x"7C",x"1F",x"67",x"7D",x"1F",x"6F", -- 0x0248 - x"05",x"C2",x"4A",x"1A",x"7C",x"E6",x"3F",x"F6", -- 0x0250 - x"20",x"67",x"C1",x"C9",x"21",x"00",x"24",x"36", -- 0x0258 - x"00",x"23",x"7C",x"FE",x"40",x"C2",x"5F",x"1A", -- 0x0260 - x"C9",x"C5",x"E5",x"1A",x"B6",x"77",x"13",x"23", -- 0x0268 - x"0D",x"C2",x"6B",x"1A",x"E1",x"01",x"20",x"00", -- 0x0270 - x"09",x"C1",x"05",x"C2",x"69",x"1A",x"C9",x"CD", -- 0x0278 - x"2E",x"09",x"A7",x"C8",x"F5",x"3D",x"77",x"CD", -- 0x0280 - x"E6",x"19",x"F1",x"21",x"01",x"25",x"E6",x"0F", -- 0x0288 - x"C3",x"C5",x"09",x"00",x"00",x"00",x"00",x"FF", -- 0x0290 - x"B8",x"FE",x"20",x"1C",x"10",x"9E",x"00",x"20", -- 0x0298 - x"1C",x"30",x"10",x"0B",x"08",x"07",x"06",x"00", -- 0x02A0 - x"0C",x"04",x"26",x"0E",x"15",x"04",x"11",x"26", -- 0x02A8 - x"26",x"0F",x"0B",x"00",x"18",x"04",x"11",x"24", -- 0x02B0 - x"26",x"25",x"1B",x"26",x"0E",x"11",x"26",x"1C", -- 0x02B8 - x"0F",x"0B",x"00",x"18",x"04",x"11",x"12",x"26", -- 0x02C0 - x"01",x"14",x"13",x"13",x"0E",x"0D",x"26",x"0E", -- 0x02C8 - x"0D",x"0B",x"18",x"26",x"1B",x"0F",x"0B",x"00", -- 0x02D0 - x"18",x"04",x"11",x"26",x"26",x"01",x"14",x"13", -- 0x02D8 - x"13",x"0E",x"0D",x"26",x"26",x"12",x"02",x"0E", -- 0x02E0 - x"11",x"04",x"24",x"1B",x"25",x"26",x"07",x"08", -- 0x02E8 - x"3F",x"12",x"02",x"0E",x"11",x"04",x"26",x"12", -- 0x02F0 - x"02",x"0E",x"11",x"04",x"24",x"1C",x"25",x"26", -- 0x02F8 - x"01",x"00",x"00",x"10",x"00",x"00",x"00",x"00", -- 0x0300 - x"02",x"78",x"38",x"78",x"38",x"00",x"F8",x"00", -- 0x0308 - x"00",x"80",x"00",x"8E",x"02",x"FF",x"05",x"0C", -- 0x0310 - x"60",x"1C",x"20",x"30",x"10",x"01",x"00",x"00", -- 0x0318 - x"00",x"00",x"00",x"BB",x"03",x"00",x"10",x"90", -- 0x0320 - x"1C",x"28",x"30",x"01",x"04",x"00",x"FF",x"FF", -- 0x0328 - x"00",x"00",x"02",x"76",x"04",x"00",x"00",x"00", -- 0x0330 - x"00",x"00",x"04",x"EE",x"1C",x"00",x"00",x"03", -- 0x0338 - x"00",x"00",x"00",x"B6",x"04",x"00",x"00",x"01", -- 0x0340 - x"00",x"1D",x"04",x"E2",x"1C",x"00",x"00",x"03", -- 0x0348 - x"00",x"00",x"00",x"82",x"06",x"00",x"00",x"01", -- 0x0350 - x"06",x"1D",x"04",x"D0",x"1C",x"00",x"00",x"03", -- 0x0358 - x"FF",x"00",x"C0",x"1C",x"00",x"00",x"10",x"21", -- 0x0360 - x"01",x"00",x"30",x"00",x"12",x"00",x"00",x"00", -- 0x0368 - x"0F",x"0B",x"00",x"18",x"26",x"0F",x"0B",x"00", -- 0x0370 - x"18",x"04",x"11",x"24",x"1B",x"25",x"FC",x"00", -- 0x0378 - x"01",x"FF",x"FF",x"00",x"00",x"00",x"20",x"64", -- 0x0380 - x"1D",x"D0",x"29",x"18",x"02",x"54",x"1D",x"00", -- 0x0388 - x"08",x"00",x"06",x"00",x"00",x"01",x"40",x"00", -- 0x0390 - x"01",x"00",x"00",x"10",x"9E",x"00",x"20",x"1C", -- 0x0398 - x"00",x"03",x"04",x"78",x"14",x"13",x"08",x"1A", -- 0x03A0 - x"3D",x"68",x"FC",x"FC",x"68",x"3D",x"1A",x"00", -- 0x03A8 - x"00",x"00",x"01",x"B8",x"98",x"A0",x"1B",x"10", -- 0x03B0 - x"FF",x"00",x"A0",x"1B",x"00",x"00",x"00",x"00", -- 0x03B8 - x"00",x"10",x"00",x"0E",x"05",x"00",x"00",x"00", -- 0x03C0 - x"00",x"00",x"07",x"D0",x"1C",x"C8",x"9B",x"03", -- 0x03C8 - x"00",x"00",x"03",x"04",x"78",x"14",x"0B",x"19", -- 0x03D0 - x"3A",x"6D",x"FA",x"FA",x"6D",x"3A",x"19",x"00", -- 0x03D8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x03E0 - x"00",x"01",x"00",x"00",x"01",x"74",x"1F",x"00", -- 0x03E8 - x"80",x"00",x"00",x"00",x"00",x"00",x"1C",x"2F", -- 0x03F0 - x"00",x"00",x"1C",x"27",x"00",x"00",x"1C",x"39", -- 0x03F8 - x"00",x"00",x"39",x"79",x"7A",x"6E",x"EC",x"FA", -- 0x0400 - x"FA",x"EC",x"6E",x"7A",x"79",x"39",x"00",x"00", -- 0x0408 - x"00",x"00",x"00",x"78",x"1D",x"BE",x"6C",x"3C", -- 0x0410 - x"3C",x"3C",x"6C",x"BE",x"1D",x"78",x"00",x"00", -- 0x0418 - x"00",x"00",x"00",x"00",x"19",x"3A",x"6D",x"FA", -- 0x0420 - x"FA",x"6D",x"3A",x"19",x"00",x"00",x"00",x"00", -- 0x0428 - x"00",x"00",x"38",x"7A",x"7F",x"6D",x"EC",x"FA", -- 0x0430 - x"FA",x"EC",x"6D",x"7F",x"7A",x"38",x"00",x"00", -- 0x0438 - x"00",x"00",x"00",x"0E",x"18",x"BE",x"6D",x"3D", -- 0x0440 - x"3C",x"3D",x"6D",x"BE",x"18",x"0E",x"00",x"00", -- 0x0448 - x"00",x"00",x"00",x"00",x"1A",x"3D",x"68",x"FC", -- 0x0450 - x"FC",x"68",x"3D",x"1A",x"00",x"00",x"00",x"00", -- 0x0458 - x"00",x"00",x"0F",x"1F",x"1F",x"1F",x"1F",x"7F", -- 0x0460 - x"FF",x"7F",x"1F",x"1F",x"1F",x"1F",x"0F",x"00", -- 0x0468 - x"00",x"04",x"01",x"13",x"03",x"07",x"B3",x"0F", -- 0x0470 - x"2F",x"03",x"2F",x"49",x"04",x"03",x"00",x"01", -- 0x0478 - x"40",x"08",x"05",x"A3",x"0A",x"03",x"5B",x"0F", -- 0x0480 - x"27",x"27",x"0B",x"4B",x"40",x"84",x"11",x"48", -- 0x0488 - x"0F",x"99",x"3C",x"7E",x"3D",x"BC",x"3E",x"7C", -- 0x0490 - x"99",x"27",x"1B",x"1A",x"26",x"0F",x"0E",x"08", -- 0x0498 - x"0D",x"13",x"12",x"28",x"12",x"02",x"0E",x"11", -- 0x04A0 - x"04",x"26",x"00",x"03",x"15",x"00",x"0D",x"02", -- 0x04A8 - x"04",x"26",x"13",x"00",x"01",x"0B",x"04",x"28", -- 0x04B0 - x"02",x"10",x"20",x"30",x"13",x"08",x"0B",x"13", -- 0x04B8 - x"00",x"08",x"49",x"22",x"14",x"81",x"42",x"00", -- 0x04C0 - x"42",x"81",x"14",x"22",x"49",x"08",x"00",x"00", -- 0x04C8 - x"44",x"AA",x"10",x"88",x"54",x"22",x"10",x"AA", -- 0x04D0 - x"44",x"22",x"54",x"88",x"4A",x"15",x"BE",x"3F", -- 0x04D8 - x"5E",x"25",x"04",x"FC",x"04",x"10",x"FC",x"10", -- 0x04E0 - x"20",x"FC",x"20",x"80",x"FC",x"80",x"00",x"FE", -- 0x04E8 - x"00",x"24",x"FE",x"12",x"00",x"FE",x"00",x"48", -- 0x04F0 - x"FE",x"90",x"0F",x"0B",x"00",x"29",x"00",x"00", -- 0x04F8 - x"01",x"07",x"01",x"01",x"01",x"04",x"0B",x"01", -- 0x0500 - x"06",x"03",x"01",x"01",x"0B",x"09",x"02",x"08", -- 0x0508 - x"02",x"0B",x"04",x"07",x"0A",x"05",x"02",x"05", -- 0x0510 - x"04",x"06",x"07",x"08",x"0A",x"06",x"0A",x"03", -- 0x0518 - x"FF",x"0F",x"FF",x"1F",x"FF",x"3F",x"FF",x"7F", -- 0x0520 - x"FF",x"FF",x"FC",x"FF",x"F8",x"FF",x"F0",x"FF", -- 0x0528 - x"F0",x"FF",x"F0",x"FF",x"F0",x"FF",x"F0",x"FF", -- 0x0530 - x"F0",x"FF",x"F0",x"FF",x"F8",x"FF",x"FC",x"FF", -- 0x0538 - x"FF",x"FF",x"FF",x"FF",x"FF",x"7F",x"FF",x"3F", -- 0x0540 - x"FF",x"1F",x"FF",x"0F",x"05",x"10",x"15",x"30", -- 0x0548 - x"94",x"97",x"9A",x"9D",x"10",x"05",x"05",x"10", -- 0x0550 - x"15",x"10",x"10",x"05",x"30",x"10",x"10",x"10", -- 0x0558 - x"05",x"15",x"10",x"05",x"00",x"00",x"00",x"00", -- 0x0560 - x"04",x"0C",x"1E",x"37",x"3E",x"7C",x"74",x"7E", -- 0x0568 - x"7E",x"74",x"7C",x"3E",x"37",x"1E",x"0C",x"04", -- 0x0570 - x"00",x"00",x"00",x"00",x"00",x"22",x"00",x"A5", -- 0x0578 - x"40",x"08",x"98",x"3D",x"B6",x"3C",x"36",x"1D", -- 0x0580 - x"10",x"48",x"62",x"B6",x"1D",x"98",x"08",x"42", -- 0x0588 - x"90",x"08",x"00",x"00",x"26",x"1F",x"1A",x"1B", -- 0x0590 - x"1A",x"1A",x"1B",x"1F",x"1A",x"1D",x"1A",x"1A", -- 0x0598 - x"10",x"20",x"30",x"60",x"50",x"48",x"48",x"48", -- 0x05A0 - x"40",x"40",x"40",x"0F",x"0B",x"00",x"18",x"12", -- 0x05A8 - x"0F",x"00",x"02",x"04",x"26",x"26",x"08",x"0D", -- 0x05B0 - x"15",x"00",x"03",x"04",x"11",x"12",x"0E",x"2C", -- 0x05B8 - x"68",x"1D",x"0C",x"2C",x"20",x"1C",x"0A",x"2C", -- 0x05C0 - x"40",x"1C",x"08",x"2C",x"00",x"1C",x"FF",x"0E", -- 0x05C8 - x"2E",x"E0",x"1D",x"0C",x"2E",x"EA",x"1D",x"0A", -- 0x05D0 - x"2E",x"F4",x"1D",x"08",x"2E",x"99",x"1C",x"FF", -- 0x05D8 - x"27",x"38",x"26",x"0C",x"18",x"12",x"13",x"04", -- 0x05E0 - x"11",x"18",x"27",x"1D",x"1A",x"26",x"0F",x"0E", -- 0x05E8 - x"08",x"0D",x"13",x"12",x"27",x"1C",x"1A",x"26", -- 0x05F0 - x"0F",x"0E",x"08",x"0D",x"13",x"12",x"00",x"00", -- 0x05F8 - x"00",x"1F",x"24",x"44",x"24",x"1F",x"00",x"00", -- 0x0600 - x"00",x"7F",x"49",x"49",x"49",x"36",x"00",x"00", -- 0x0608 - x"00",x"3E",x"41",x"41",x"41",x"22",x"00",x"00", -- 0x0610 - x"00",x"7F",x"41",x"41",x"41",x"3E",x"00",x"00", -- 0x0618 - x"00",x"7F",x"49",x"49",x"49",x"41",x"00",x"00", -- 0x0620 - x"00",x"7F",x"48",x"48",x"48",x"40",x"00",x"00", -- 0x0628 - x"00",x"3E",x"41",x"41",x"45",x"47",x"00",x"00", -- 0x0630 - x"00",x"7F",x"08",x"08",x"08",x"7F",x"00",x"00", -- 0x0638 - x"00",x"00",x"41",x"7F",x"41",x"00",x"00",x"00", -- 0x0640 - x"00",x"02",x"01",x"01",x"01",x"7E",x"00",x"00", -- 0x0648 - x"00",x"7F",x"08",x"14",x"22",x"41",x"00",x"00", -- 0x0650 - x"00",x"7F",x"01",x"01",x"01",x"01",x"00",x"00", -- 0x0658 - x"00",x"7F",x"20",x"18",x"20",x"7F",x"00",x"00", -- 0x0660 - x"00",x"7F",x"10",x"08",x"04",x"7F",x"00",x"00", -- 0x0668 - x"00",x"3E",x"41",x"41",x"41",x"3E",x"00",x"00", -- 0x0670 - x"00",x"7F",x"48",x"48",x"48",x"30",x"00",x"00", -- 0x0678 - x"00",x"3E",x"41",x"45",x"42",x"3D",x"00",x"00", -- 0x0680 - x"00",x"7F",x"48",x"4C",x"4A",x"31",x"00",x"00", -- 0x0688 - x"00",x"32",x"49",x"49",x"49",x"26",x"00",x"00", -- 0x0690 - x"00",x"40",x"40",x"7F",x"40",x"40",x"00",x"00", -- 0x0698 - x"00",x"7E",x"01",x"01",x"01",x"7E",x"00",x"00", -- 0x06A0 - x"00",x"7C",x"02",x"01",x"02",x"7C",x"00",x"00", -- 0x06A8 - x"00",x"7F",x"02",x"0C",x"02",x"7F",x"00",x"00", -- 0x06B0 - x"00",x"63",x"14",x"08",x"14",x"63",x"00",x"00", -- 0x06B8 - x"00",x"60",x"10",x"0F",x"10",x"60",x"00",x"00", -- 0x06C0 - x"00",x"43",x"45",x"49",x"51",x"61",x"00",x"00", -- 0x06C8 - x"00",x"3E",x"45",x"49",x"51",x"3E",x"00",x"00", -- 0x06D0 - x"00",x"00",x"21",x"7F",x"01",x"00",x"00",x"00", -- 0x06D8 - x"00",x"23",x"45",x"49",x"49",x"31",x"00",x"00", -- 0x06E0 - x"00",x"42",x"41",x"49",x"59",x"66",x"00",x"00", -- 0x06E8 - x"00",x"0C",x"14",x"24",x"7F",x"04",x"00",x"00", -- 0x06F0 - x"00",x"72",x"51",x"51",x"51",x"4E",x"00",x"00", -- 0x06F8 - x"00",x"1E",x"29",x"49",x"49",x"46",x"00",x"00", -- 0x0700 - x"00",x"40",x"47",x"48",x"50",x"60",x"00",x"00", -- 0x0708 - x"00",x"36",x"49",x"49",x"49",x"36",x"00",x"00", -- 0x0710 - x"00",x"31",x"49",x"49",x"4A",x"3C",x"00",x"00", -- 0x0718 - x"00",x"08",x"14",x"22",x"41",x"00",x"00",x"00", -- 0x0720 - x"00",x"00",x"41",x"22",x"14",x"08",x"00",x"00", -- 0x0728 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0730 - x"00",x"14",x"14",x"14",x"14",x"14",x"00",x"00", -- 0x0738 - x"00",x"22",x"14",x"7F",x"14",x"22",x"00",x"00", -- 0x0740 - x"00",x"03",x"04",x"78",x"04",x"03",x"00",x"00", -- 0x0748 - x"24",x"1B",x"26",x"0E",x"11",x"26",x"1C",x"26", -- 0x0750 - x"0F",x"0B",x"00",x"18",x"04",x"11",x"12",x"25", -- 0x0758 - x"26",x"26",x"28",x"1B",x"26",x"0F",x"0B",x"00", -- 0x0760 - x"18",x"04",x"11",x"26",x"26",x"1B",x"26",x"02", -- 0x0768 - x"0E",x"08",x"0D",x"26",x"01",x"01",x"00",x"00", -- 0x0770 - x"01",x"00",x"02",x"01",x"00",x"02",x"01",x"00", -- 0x0778 - x"60",x"10",x"0F",x"10",x"60",x"30",x"18",x"1A", -- 0x0780 - x"3D",x"68",x"FC",x"FC",x"68",x"3D",x"1A",x"00", -- 0x0788 - x"08",x"0D",x"12",x"04",x"11",x"13",x"26",x"26", -- 0x0790 - x"02",x"0E",x"08",x"0D",x"0D",x"2A",x"50",x"1F", -- 0x0798 - x"0A",x"2A",x"62",x"1F",x"07",x"2A",x"E1",x"1F", -- 0x07A0 - x"FF",x"02",x"11",x"04",x"03",x"08",x"13",x"26", -- 0x07A8 - x"00",x"60",x"10",x"0F",x"10",x"60",x"38",x"19", -- 0x07B0 - x"3A",x"6D",x"FA",x"FA",x"6D",x"3A",x"19",x"00", -- 0x07B8 - x"00",x"20",x"40",x"4D",x"50",x"20",x"00",x"00", -- 0x07C0 - x"00",x"00",x"00",x"FF",x"B8",x"FF",x"80",x"1F", -- 0x07C8 - x"10",x"97",x"00",x"80",x"1F",x"00",x"00",x"01", -- 0x07D0 - x"D0",x"22",x"20",x"1C",x"10",x"94",x"00",x"20", -- 0x07D8 - x"1C",x"28",x"1C",x"26",x"0F",x"0B",x"00",x"18", -- 0x07E0 - x"04",x"11",x"12",x"26",x"1C",x"26",x"02",x"0E", -- 0x07E8 - x"08",x"0D",x"12",x"0F",x"14",x"12",x"07",x"26", -- 0x07F0 - x"00",x"08",x"08",x"08",x"08",x"08",x"00",x"00" -- 0x07F8 - ); - -begin - - p_rom : process - begin - wait until rising_edge(CLK); - if (ENA = '1') then - DATA <= ROM(to_integer(unsigned(ADDR))); - end if; - end process; -end RTL; diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/invaders_rom_f.vhd b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/invaders_rom_f.vhd deleted file mode 100644 index 01bf33e4..00000000 --- a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/invaders_rom_f.vhd +++ /dev/null @@ -1,288 +0,0 @@ --- generated with romgen v3.0 by MikeJ -library ieee; - use ieee.std_logic_1164.all; - use ieee.std_logic_unsigned.all; - use ieee.numeric_std.all; - -entity INVADERS_ROM_F is - port ( - CLK : in std_logic; - ENA : in std_logic; - ADDR : in std_logic_vector(10 downto 0); - DATA : out std_logic_vector(7 downto 0) - ); -end; - -architecture RTL of INVADERS_ROM_F is - - - type ROM_ARRAY is array(0 to 2047) of std_logic_vector(7 downto 0); - constant ROM : ROM_ARRAY := ( - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0000 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0008 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0010 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0018 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0020 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0028 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0030 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0038 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0040 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0048 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0050 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0058 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0060 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0068 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0070 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0078 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0080 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0088 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0090 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0098 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x00A0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x00A8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x00B0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x00B8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x00C0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x00C8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x00D0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x00D8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x00E0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x00E8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x00F0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x00F8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0100 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0108 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0110 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0118 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0120 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0128 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0130 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0138 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0140 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0148 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0150 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0158 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0160 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0168 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0170 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0178 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0180 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0188 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0190 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0198 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x01A0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x01A8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x01B0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x01B8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x01C0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x01C8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x01D0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x01D8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x01E0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x01E8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x01F0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x01F8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0200 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0208 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0210 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0218 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0220 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0228 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0230 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0238 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0240 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0248 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0250 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0258 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0260 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0268 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0270 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0278 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0280 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0288 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0290 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0298 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x02A0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x02A8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x02B0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x02B8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x02C0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x02C8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x02D0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x02D8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x02E0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x02E8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x02F0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x02F8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0300 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0308 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0310 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0318 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0320 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0328 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0330 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0338 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0340 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0348 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0350 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0358 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0360 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0368 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0370 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0378 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0380 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0388 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0390 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0398 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x03A0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x03A8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x03B0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x03B8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x03C0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x03C8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x03D0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x03D8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x03E0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x03E8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x03F0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x03F8 - x"00",x"CD",x"74",x"14",x"00",x"C5",x"E5",x"1A", -- 0x0400 - x"D3",x"04",x"DB",x"03",x"B6",x"77",x"23",x"13", -- 0x0408 - x"AF",x"D3",x"04",x"DB",x"03",x"B6",x"77",x"E1", -- 0x0410 - x"01",x"20",x"00",x"09",x"C1",x"05",x"C2",x"05", -- 0x0418 - x"14",x"C9",x"00",x"00",x"CD",x"74",x"14",x"C5", -- 0x0420 - x"E5",x"AF",x"77",x"23",x"77",x"23",x"E1",x"01", -- 0x0428 - x"20",x"00",x"09",x"C1",x"05",x"C2",x"27",x"14", -- 0x0430 - x"C9",x"C5",x"1A",x"77",x"13",x"01",x"20",x"00", -- 0x0438 - x"09",x"C1",x"05",x"C2",x"39",x"14",x"C9",x"00", -- 0x0440 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0448 - x"00",x"00",x"CD",x"74",x"14",x"C5",x"E5",x"1A", -- 0x0450 - x"D3",x"04",x"DB",x"03",x"2F",x"A6",x"77",x"23", -- 0x0458 - x"13",x"AF",x"D3",x"04",x"DB",x"03",x"2F",x"A6", -- 0x0460 - x"77",x"E1",x"01",x"20",x"00",x"09",x"C1",x"05", -- 0x0468 - x"C2",x"55",x"14",x"C9",x"7D",x"E6",x"07",x"D3", -- 0x0470 - x"02",x"C3",x"47",x"1A",x"C5",x"E5",x"7E",x"12", -- 0x0478 - x"13",x"23",x"0D",x"C2",x"7E",x"14",x"E1",x"01", -- 0x0480 - x"20",x"00",x"09",x"C1",x"05",x"C2",x"7C",x"14", -- 0x0488 - x"C9",x"CD",x"74",x"14",x"AF",x"32",x"61",x"20", -- 0x0490 - x"C5",x"E5",x"1A",x"D3",x"04",x"DB",x"03",x"F5", -- 0x0498 - x"A6",x"CA",x"A9",x"14",x"3E",x"01",x"32",x"61", -- 0x04A0 - x"20",x"F1",x"B6",x"77",x"23",x"13",x"AF",x"D3", -- 0x04A8 - x"04",x"DB",x"03",x"F5",x"A6",x"CA",x"BD",x"14", -- 0x04B0 - x"3E",x"01",x"32",x"61",x"20",x"F1",x"B6",x"77", -- 0x04B8 - x"E1",x"01",x"20",x"00",x"09",x"C1",x"05",x"C2", -- 0x04C0 - x"98",x"14",x"C9",x"AF",x"C5",x"77",x"01",x"20", -- 0x04C8 - x"00",x"09",x"C1",x"05",x"C2",x"CC",x"14",x"C9", -- 0x04D0 - x"3A",x"25",x"20",x"FE",x"05",x"C8",x"FE",x"02", -- 0x04D8 - x"C0",x"3A",x"29",x"20",x"FE",x"D8",x"47",x"D2", -- 0x04E0 - x"30",x"15",x"3A",x"02",x"20",x"A7",x"C8",x"78", -- 0x04E8 - x"FE",x"CE",x"D2",x"79",x"15",x"C6",x"06",x"47", -- 0x04F0 - x"3A",x"09",x"20",x"FE",x"90",x"D2",x"04",x"15", -- 0x04F8 - x"B8",x"D2",x"30",x"15",x"68",x"CD",x"62",x"15", -- 0x0500 - x"3A",x"2A",x"20",x"67",x"CD",x"6F",x"15",x"22", -- 0x0508 - x"64",x"20",x"3E",x"05",x"32",x"25",x"20",x"CD", -- 0x0510 - x"81",x"15",x"7E",x"A7",x"CA",x"30",x"15",x"36", -- 0x0518 - x"00",x"CD",x"5F",x"0A",x"CD",x"3B",x"1A",x"CD", -- 0x0520 - x"D3",x"15",x"3E",x"10",x"32",x"03",x"20",x"C9", -- 0x0528 - x"3E",x"03",x"32",x"25",x"20",x"C3",x"4A",x"15", -- 0x0530 - x"21",x"03",x"20",x"35",x"C0",x"2A",x"64",x"20", -- 0x0538 - x"06",x"10",x"CD",x"24",x"14",x"3E",x"04",x"32", -- 0x0540 - x"25",x"20",x"AF",x"32",x"02",x"20",x"06",x"F7", -- 0x0548 - x"C3",x"DC",x"19",x"00",x"0E",x"00",x"BC",x"D4", -- 0x0550 - x"90",x"15",x"BC",x"D0",x"C6",x"10",x"0C",x"C3", -- 0x0558 - x"5A",x"15",x"3A",x"09",x"20",x"65",x"CD",x"54", -- 0x0560 - x"15",x"41",x"05",x"DE",x"10",x"6F",x"C9",x"3A", -- 0x0568 - x"0A",x"20",x"CD",x"54",x"15",x"DE",x"10",x"67", -- 0x0570 - x"C9",x"3E",x"01",x"32",x"85",x"20",x"C3",x"45", -- 0x0578 - x"15",x"78",x"07",x"07",x"07",x"80",x"80",x"80", -- 0x0580 - x"81",x"3D",x"6F",x"3A",x"67",x"20",x"67",x"C9", -- 0x0588 - x"0C",x"C6",x"10",x"FA",x"90",x"15",x"C9",x"3A", -- 0x0590 - x"0D",x"20",x"A7",x"C2",x"B7",x"15",x"21",x"A4", -- 0x0598 - x"3E",x"CD",x"C5",x"15",x"D0",x"06",x"FE",x"3E", -- 0x05A0 - x"01",x"32",x"0D",x"20",x"78",x"32",x"08",x"20", -- 0x05A8 - x"3A",x"0E",x"20",x"32",x"07",x"20",x"C9",x"21", -- 0x05B0 - x"24",x"25",x"CD",x"C5",x"15",x"D0",x"CD",x"F1", -- 0x05B8 - x"18",x"AF",x"C3",x"A9",x"15",x"06",x"17",x"7E", -- 0x05C0 - x"A7",x"C2",x"6B",x"16",x"23",x"05",x"C2",x"C7", -- 0x05C8 - x"15",x"C9",x"00",x"CD",x"74",x"14",x"E5",x"C5", -- 0x05D0 - x"E5",x"1A",x"D3",x"04",x"DB",x"03",x"77",x"23", -- 0x05D8 - x"13",x"AF",x"D3",x"04",x"DB",x"03",x"77",x"E1", -- 0x05E0 - x"01",x"20",x"00",x"09",x"C1",x"05",x"C2",x"D7", -- 0x05E8 - x"15",x"E1",x"C9",x"CD",x"11",x"16",x"01",x"00", -- 0x05F0 - x"37",x"7E",x"A7",x"CA",x"FF",x"15",x"0C",x"23", -- 0x05F8 - x"05",x"C2",x"F9",x"15",x"79",x"32",x"82",x"20", -- 0x0600 - x"FE",x"01",x"C0",x"21",x"6B",x"20",x"36",x"01", -- 0x0608 - x"C9",x"2E",x"00",x"3A",x"67",x"20",x"67",x"C9", -- 0x0610 - x"3A",x"15",x"20",x"FE",x"FF",x"C0",x"21",x"10", -- 0x0618 - x"20",x"7E",x"23",x"46",x"B0",x"C0",x"3A",x"25", -- 0x0620 - x"20",x"A7",x"C0",x"3A",x"EF",x"20",x"A7",x"CA", -- 0x0628 - x"52",x"16",x"3A",x"2D",x"20",x"A7",x"C2",x"48", -- 0x0630 - x"16",x"CD",x"C0",x"17",x"E6",x"10",x"C8",x"3E", -- 0x0638 - x"01",x"32",x"25",x"20",x"32",x"2D",x"20",x"C9", -- 0x0640 - x"CD",x"C0",x"17",x"E6",x"10",x"C0",x"32",x"2D", -- 0x0648 - x"20",x"C9",x"21",x"25",x"20",x"36",x"01",x"2A", -- 0x0650 - x"ED",x"20",x"23",x"7D",x"FE",x"7E",x"DA",x"63", -- 0x0658 - x"16",x"2E",x"74",x"22",x"ED",x"20",x"7E",x"32", -- 0x0660 - x"1D",x"20",x"C9",x"37",x"C9",x"AF",x"CD",x"8B", -- 0x0668 - x"1A",x"CD",x"10",x"19",x"36",x"00",x"CD",x"CA", -- 0x0670 - x"09",x"23",x"11",x"F5",x"20",x"1A",x"BE",x"1B", -- 0x0678 - x"2B",x"1A",x"CA",x"8B",x"16",x"D2",x"98",x"16", -- 0x0680 - x"C3",x"8F",x"16",x"BE",x"D2",x"98",x"16",x"7E", -- 0x0688 - x"12",x"13",x"23",x"7E",x"12",x"CD",x"50",x"19", -- 0x0690 - x"3A",x"CE",x"20",x"A7",x"CA",x"C9",x"16",x"21", -- 0x0698 - x"03",x"28",x"11",x"A6",x"1A",x"0E",x"14",x"CD", -- 0x06A0 - x"93",x"0A",x"25",x"25",x"06",x"1B",x"3A",x"67", -- 0x06A8 - x"20",x"0F",x"DA",x"B7",x"16",x"06",x"1C",x"78", -- 0x06B0 - x"CD",x"FF",x"08",x"CD",x"B1",x"0A",x"CD",x"E7", -- 0x06B8 - x"18",x"7E",x"A7",x"CA",x"C9",x"16",x"C3",x"ED", -- 0x06C0 - x"02",x"21",x"18",x"2D",x"11",x"A6",x"1A",x"0E", -- 0x06C8 - x"0A",x"CD",x"93",x"0A",x"CD",x"B6",x"0A",x"CD", -- 0x06D0 - x"D6",x"09",x"AF",x"32",x"EF",x"20",x"D3",x"05", -- 0x06D8 - x"CD",x"D1",x"19",x"C3",x"89",x"0B",x"31",x"00", -- 0x06E0 - x"24",x"FB",x"AF",x"32",x"15",x"20",x"CD",x"D8", -- 0x06E8 - x"14",x"06",x"04",x"CD",x"FA",x"18",x"CD",x"59", -- 0x06F0 - x"0A",x"C2",x"EE",x"16",x"CD",x"D7",x"19",x"21", -- 0x06F8 - x"01",x"27",x"CD",x"FA",x"19",x"AF",x"CD",x"8B", -- 0x0700 - x"1A",x"06",x"FB",x"C3",x"6B",x"19",x"CD",x"CA", -- 0x0708 - x"09",x"23",x"7E",x"11",x"B8",x"1C",x"21",x"A1", -- 0x0710 - x"1A",x"0E",x"04",x"47",x"1A",x"B8",x"D2",x"27", -- 0x0718 - x"17",x"23",x"13",x"0D",x"C2",x"1C",x"17",x"7E", -- 0x0720 - x"32",x"CF",x"20",x"C9",x"3A",x"25",x"20",x"FE", -- 0x0728 - x"00",x"C2",x"39",x"17",x"06",x"FD",x"C3",x"DC", -- 0x0730 - x"19",x"06",x"02",x"C3",x"FA",x"18",x"00",x"00", -- 0x0738 - x"21",x"9B",x"20",x"35",x"CC",x"6D",x"17",x"3A", -- 0x0740 - x"68",x"20",x"A7",x"CA",x"6D",x"17",x"21",x"96", -- 0x0748 - x"20",x"35",x"C0",x"21",x"98",x"20",x"7E",x"D3", -- 0x0750 - x"05",x"3A",x"82",x"20",x"A7",x"CA",x"6D",x"17", -- 0x0758 - x"2B",x"7E",x"2B",x"77",x"2B",x"36",x"01",x"3E", -- 0x0760 - x"04",x"32",x"9B",x"20",x"C9",x"3A",x"98",x"20", -- 0x0768 - x"E6",x"30",x"D3",x"05",x"C9",x"3A",x"95",x"20", -- 0x0770 - x"A7",x"CA",x"AA",x"17",x"21",x"11",x"1A",x"11", -- 0x0778 - x"21",x"1A",x"3A",x"82",x"20",x"BE",x"D2",x"8E", -- 0x0780 - x"17",x"23",x"13",x"C3",x"85",x"17",x"1A",x"32", -- 0x0788 - x"97",x"20",x"21",x"98",x"20",x"7E",x"E6",x"30", -- 0x0790 - x"47",x"7E",x"E6",x"0F",x"07",x"FE",x"10",x"C2", -- 0x0798 - x"A4",x"17",x"3E",x"01",x"B0",x"77",x"AF",x"32", -- 0x07A0 - x"95",x"20",x"21",x"99",x"20",x"35",x"C0",x"06", -- 0x07A8 - x"EF",x"C3",x"DC",x"19",x"06",x"EF",x"21",x"98", -- 0x07B0 - x"20",x"7E",x"A0",x"77",x"D3",x"05",x"C9",x"00", -- 0x07B8 - x"3A",x"67",x"20",x"0F",x"D2",x"CA",x"17",x"DB", -- 0x07C0 - x"01",x"C9",x"DB",x"02",x"C9",x"DB",x"02",x"E6", -- 0x07C8 - x"04",x"C8",x"3A",x"9A",x"20",x"A7",x"C0",x"31", -- 0x07D0 - x"00",x"24",x"06",x"04",x"CD",x"D6",x"09",x"05", -- 0x07D8 - x"C2",x"DC",x"17",x"3E",x"01",x"32",x"9A",x"20", -- 0x07E0 - x"CD",x"D7",x"19",x"FB",x"11",x"BC",x"1C",x"21", -- 0x07E8 - x"16",x"30",x"0E",x"04",x"CD",x"93",x"0A",x"CD", -- 0x07F0 - x"B1",x"0A",x"AF",x"32",x"9A",x"20",x"32",x"93" -- 0x07F8 - ); - -begin - - p_rom : process - begin - wait until rising_edge(CLK); - if (ENA = '1') then - DATA <= ROM(to_integer(unsigned(ADDR))); - end if; - end process; -end RTL; diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/invaders_rom_g.vhd b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/invaders_rom_g.vhd deleted file mode 100644 index 2cdc5141..00000000 --- a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/invaders_rom_g.vhd +++ /dev/null @@ -1,288 +0,0 @@ --- generated with romgen v3.0 by MikeJ -library ieee; - use ieee.std_logic_1164.all; - use ieee.std_logic_unsigned.all; - use ieee.numeric_std.all; - -entity INVADERS_ROM_G is - port ( - CLK : in std_logic; - ENA : in std_logic; - ADDR : in std_logic_vector(10 downto 0); - DATA : out std_logic_vector(7 downto 0) - ); -end; - -architecture RTL of INVADERS_ROM_G is - - - type ROM_ARRAY is array(0 to 2047) of std_logic_vector(7 downto 0); - constant ROM : ROM_ARRAY := ( - x"AF",x"32",x"C1",x"20",x"CD",x"CF",x"01",x"3A", -- 0x0000 - x"67",x"20",x"0F",x"DA",x"72",x"08",x"CD",x"13", -- 0x0008 - x"02",x"CD",x"CF",x"01",x"CD",x"B1",x"00",x"CD", -- 0x0010 - x"D1",x"19",x"06",x"20",x"CD",x"FA",x"18",x"CD", -- 0x0018 - x"18",x"16",x"CD",x"0A",x"19",x"CD",x"F3",x"15", -- 0x0020 - x"CD",x"88",x"09",x"3A",x"82",x"20",x"A7",x"CA", -- 0x0028 - x"EF",x"09",x"CD",x"0E",x"17",x"CD",x"35",x"09", -- 0x0030 - x"CD",x"D8",x"08",x"CD",x"2C",x"17",x"CD",x"59", -- 0x0038 - x"0A",x"CA",x"49",x"08",x"06",x"04",x"CD",x"FA", -- 0x0040 - x"18",x"CD",x"75",x"17",x"D3",x"06",x"CD",x"04", -- 0x0048 - x"18",x"C3",x"1F",x"08",x"00",x"00",x"00",x"11", -- 0x0050 - x"BA",x"1A",x"CD",x"F3",x"08",x"06",x"98",x"DB", -- 0x0058 - x"01",x"0F",x"0F",x"DA",x"6D",x"08",x"0F",x"DA", -- 0x0060 - x"98",x"07",x"C3",x"7F",x"07",x"3E",x"01",x"C3", -- 0x0068 - x"9B",x"07",x"CD",x"1A",x"02",x"C3",x"14",x"08", -- 0x0070 - x"3A",x"08",x"20",x"47",x"2A",x"09",x"20",x"EB", -- 0x0078 - x"C3",x"86",x"08",x"00",x"00",x"00",x"3A",x"67", -- 0x0080 - x"20",x"67",x"2E",x"FC",x"C9",x"21",x"11",x"2B", -- 0x0088 - x"11",x"70",x"1B",x"0E",x"0E",x"CD",x"F3",x"08", -- 0x0090 - x"3A",x"67",x"20",x"0F",x"3E",x"1C",x"21",x"11", -- 0x0098 - x"37",x"D4",x"FF",x"08",x"3E",x"B0",x"32",x"C0", -- 0x00A0 - x"20",x"3A",x"C0",x"20",x"A7",x"C8",x"E6",x"04", -- 0x00A8 - x"C2",x"BC",x"08",x"CD",x"CA",x"09",x"CD",x"31", -- 0x00B0 - x"19",x"C3",x"A9",x"08",x"06",x"20",x"21",x"1C", -- 0x00B8 - x"27",x"3A",x"67",x"20",x"0F",x"DA",x"CB",x"08", -- 0x00C0 - x"21",x"1C",x"39",x"CD",x"CB",x"14",x"C3",x"A9", -- 0x00C8 - x"08",x"DB",x"02",x"E6",x"03",x"C6",x"03",x"C9", -- 0x00D0 - x"3A",x"82",x"20",x"FE",x"09",x"D0",x"3E",x"FB", -- 0x00D8 - x"32",x"7E",x"20",x"C9",x"3A",x"CE",x"20",x"A7", -- 0x00E0 - x"C0",x"21",x"1C",x"39",x"06",x"20",x"C3",x"CB", -- 0x00E8 - x"14",x"0E",x"03",x"1A",x"D5",x"CD",x"FF",x"08", -- 0x00F0 - x"D1",x"13",x"0D",x"C2",x"F3",x"08",x"C9",x"11", -- 0x00F8 - x"00",x"1E",x"E5",x"26",x"00",x"6F",x"29",x"29", -- 0x0100 - x"29",x"19",x"EB",x"E1",x"06",x"08",x"D3",x"06", -- 0x0108 - x"C3",x"39",x"14",x"3A",x"09",x"20",x"FE",x"78", -- 0x0110 - x"D0",x"2A",x"91",x"20",x"7D",x"B4",x"C2",x"29", -- 0x0118 - x"09",x"21",x"00",x"06",x"3E",x"01",x"32",x"83", -- 0x0120 - x"20",x"2B",x"22",x"91",x"20",x"C9",x"CD",x"11", -- 0x0128 - x"16",x"2E",x"FF",x"7E",x"C9",x"CD",x"10",x"19", -- 0x0130 - x"2B",x"2B",x"7E",x"A7",x"C8",x"06",x"15",x"DB", -- 0x0138 - x"02",x"E6",x"08",x"CA",x"48",x"09",x"06",x"10", -- 0x0140 - x"CD",x"CA",x"09",x"23",x"7E",x"B8",x"D8",x"CD", -- 0x0148 - x"2E",x"09",x"34",x"7E",x"F5",x"21",x"01",x"25", -- 0x0150 - x"24",x"24",x"3D",x"C2",x"58",x"09",x"06",x"10", -- 0x0158 - x"11",x"60",x"1C",x"CD",x"39",x"14",x"F1",x"3C", -- 0x0160 - x"CD",x"8B",x"1A",x"CD",x"10",x"19",x"2B",x"2B", -- 0x0168 - x"36",x"00",x"3E",x"FF",x"32",x"99",x"20",x"06", -- 0x0170 - x"10",x"C3",x"FA",x"18",x"21",x"A0",x"1D",x"FE", -- 0x0178 - x"02",x"D8",x"23",x"FE",x"04",x"D8",x"23",x"C9", -- 0x0180 - x"CD",x"CA",x"09",x"3A",x"F1",x"20",x"A7",x"C8", -- 0x0188 - x"AF",x"32",x"F1",x"20",x"E5",x"2A",x"F2",x"20", -- 0x0190 - x"EB",x"E1",x"7E",x"83",x"27",x"77",x"5F",x"23", -- 0x0198 - x"7E",x"8A",x"27",x"77",x"57",x"23",x"7E",x"23", -- 0x01A0 - x"66",x"6F",x"C3",x"AD",x"09",x"7A",x"CD",x"B2", -- 0x01A8 - x"09",x"7B",x"D5",x"F5",x"0F",x"0F",x"0F",x"0F", -- 0x01B0 - x"E6",x"0F",x"CD",x"C5",x"09",x"F1",x"E6",x"0F", -- 0x01B8 - x"CD",x"C5",x"09",x"D1",x"C9",x"C6",x"1A",x"C3", -- 0x01C0 - x"FF",x"08",x"3A",x"67",x"20",x"0F",x"21",x"F8", -- 0x01C8 - x"20",x"D8",x"21",x"FC",x"20",x"C9",x"21",x"02", -- 0x01D0 - x"24",x"36",x"00",x"23",x"7D",x"E6",x"1F",x"FE", -- 0x01D8 - x"1C",x"DA",x"E8",x"09",x"11",x"06",x"00",x"19", -- 0x01E0 - x"7C",x"FE",x"40",x"DA",x"D9",x"09",x"C9",x"CD", -- 0x01E8 - x"3C",x"0A",x"AF",x"32",x"E9",x"20",x"CD",x"D6", -- 0x01F0 - x"09",x"3A",x"67",x"20",x"F5",x"CD",x"E4",x"01", -- 0x01F8 - x"F1",x"32",x"67",x"20",x"3A",x"67",x"20",x"67", -- 0x0200 - x"E5",x"2E",x"FE",x"7E",x"E6",x"07",x"3C",x"77", -- 0x0208 - x"21",x"A2",x"1D",x"23",x"3D",x"C2",x"13",x"0A", -- 0x0210 - x"7E",x"E1",x"2E",x"FC",x"77",x"23",x"36",x"38", -- 0x0218 - x"7C",x"0F",x"DA",x"33",x"0A",x"3E",x"21",x"32", -- 0x0220 - x"98",x"20",x"CD",x"F5",x"01",x"CD",x"04",x"19", -- 0x0228 - x"C3",x"04",x"08",x"CD",x"EF",x"01",x"CD",x"C0", -- 0x0230 - x"01",x"C3",x"04",x"08",x"CD",x"59",x"0A",x"C2", -- 0x0238 - x"52",x"0A",x"3E",x"30",x"32",x"C0",x"20",x"3A", -- 0x0240 - x"C0",x"20",x"A7",x"C8",x"CD",x"59",x"0A",x"CA", -- 0x0248 - x"47",x"0A",x"CD",x"59",x"0A",x"C2",x"52",x"0A", -- 0x0250 - x"C9",x"3A",x"15",x"20",x"FE",x"FF",x"C9",x"3A", -- 0x0258 - x"EF",x"20",x"A7",x"CA",x"7C",x"0A",x"48",x"06", -- 0x0260 - x"08",x"CD",x"FA",x"18",x"41",x"78",x"CD",x"7C", -- 0x0268 - x"09",x"7E",x"21",x"F3",x"20",x"36",x"00",x"2B", -- 0x0270 - x"77",x"2B",x"36",x"01",x"21",x"62",x"20",x"C9", -- 0x0278 - x"3E",x"02",x"32",x"C1",x"20",x"D3",x"06",x"3A", -- 0x0280 - x"CB",x"20",x"A7",x"CA",x"85",x"0A",x"AF",x"32", -- 0x0288 - x"C1",x"20",x"C9",x"D5",x"1A",x"CD",x"FF",x"08", -- 0x0290 - x"D1",x"3E",x"07",x"32",x"C0",x"20",x"3A",x"C0", -- 0x0298 - x"20",x"3D",x"C2",x"9E",x"0A",x"13",x"0D",x"C2", -- 0x02A0 - x"93",x"0A",x"C9",x"21",x"50",x"20",x"C3",x"4B", -- 0x02A8 - x"02",x"3E",x"40",x"C3",x"D7",x"0A",x"3E",x"80", -- 0x02B0 - x"C3",x"D7",x"0A",x"E1",x"C3",x"72",x"00",x"3A", -- 0x02B8 - x"C1",x"20",x"0F",x"DA",x"BB",x"0A",x"0F",x"DA", -- 0x02C0 - x"68",x"18",x"0F",x"DA",x"AB",x"0A",x"C9",x"21", -- 0x02C8 - x"14",x"2B",x"0E",x"0F",x"C3",x"93",x"0A",x"32", -- 0x02D0 - x"C0",x"20",x"3A",x"C0",x"20",x"A7",x"C2",x"DA", -- 0x02D8 - x"0A",x"C9",x"21",x"C2",x"20",x"06",x"0C",x"C3", -- 0x02E0 - x"32",x"1A",x"AF",x"D3",x"03",x"D3",x"05",x"CD", -- 0x02E8 - x"82",x"19",x"FB",x"CD",x"B1",x"0A",x"3A",x"EC", -- 0x02F0 - x"20",x"A7",x"21",x"17",x"30",x"0E",x"04",x"C2", -- 0x02F8 - x"E8",x"0B",x"11",x"FA",x"1C",x"CD",x"93",x"0A", -- 0x0300 - x"11",x"AF",x"1D",x"CD",x"CF",x"0A",x"CD",x"B1", -- 0x0308 - x"0A",x"CD",x"15",x"18",x"CD",x"B6",x"0A",x"3A", -- 0x0310 - x"EC",x"20",x"A7",x"C2",x"4A",x"0B",x"11",x"95", -- 0x0318 - x"1A",x"CD",x"E2",x"0A",x"CD",x"80",x"0A",x"11", -- 0x0320 - x"B0",x"1B",x"CD",x"E2",x"0A",x"CD",x"80",x"0A", -- 0x0328 - x"CD",x"B1",x"0A",x"11",x"C9",x"1F",x"CD",x"E2", -- 0x0330 - x"0A",x"CD",x"80",x"0A",x"CD",x"B1",x"0A",x"21", -- 0x0338 - x"B7",x"33",x"06",x"0A",x"CD",x"CB",x"14",x"CD", -- 0x0340 - x"B6",x"0A",x"CD",x"D6",x"09",x"3A",x"FF",x"21", -- 0x0348 - x"A7",x"C2",x"5D",x"0B",x"CD",x"D1",x"08",x"32", -- 0x0350 - x"FF",x"21",x"CD",x"7F",x"1A",x"CD",x"E4",x"01", -- 0x0358 - x"CD",x"C0",x"01",x"CD",x"EF",x"01",x"CD",x"1A", -- 0x0360 - x"02",x"3E",x"01",x"32",x"C1",x"20",x"CD",x"CF", -- 0x0368 - x"01",x"CD",x"18",x"16",x"CD",x"F1",x"0B",x"D3", -- 0x0370 - x"06",x"CD",x"59",x"0A",x"CA",x"71",x"0B",x"AF", -- 0x0378 - x"32",x"25",x"20",x"CD",x"59",x"0A",x"C2",x"83", -- 0x0380 - x"0B",x"AF",x"32",x"C1",x"20",x"CD",x"B1",x"0A", -- 0x0388 - x"CD",x"88",x"19",x"0E",x"0C",x"21",x"11",x"2C", -- 0x0390 - x"11",x"90",x"1F",x"CD",x"F3",x"08",x"3A",x"EC", -- 0x0398 - x"20",x"FE",x"00",x"C2",x"AE",x"0B",x"21",x"11", -- 0x03A0 - x"33",x"3E",x"02",x"CD",x"FF",x"08",x"01",x"9C", -- 0x03A8 - x"1F",x"CD",x"56",x"18",x"CD",x"4C",x"18",x"DB", -- 0x03B0 - x"02",x"07",x"DA",x"C3",x"0B",x"01",x"A0",x"1F", -- 0x03B8 - x"CD",x"3A",x"18",x"CD",x"B6",x"0A",x"3A",x"EC", -- 0x03C0 - x"20",x"FE",x"00",x"C2",x"DA",x"0B",x"11",x"D5", -- 0x03C8 - x"1F",x"CD",x"E2",x"0A",x"CD",x"80",x"0A",x"CD", -- 0x03D0 - x"9E",x"18",x"21",x"EC",x"20",x"7E",x"3C",x"E6", -- 0x03D8 - x"01",x"77",x"CD",x"D6",x"09",x"C3",x"DF",x"18", -- 0x03E0 - x"11",x"AB",x"1D",x"CD",x"93",x"0A",x"C3",x"0B", -- 0x03E8 - x"0B",x"CD",x"0A",x"19",x"C3",x"9A",x"19",x"13", -- 0x03F0 - x"00",x"08",x"13",x"0E",x"26",x"02",x"0E",x"0F", -- 0x03F8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0400 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0408 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0410 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0418 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0420 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0428 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0430 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0438 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0440 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0448 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0450 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0458 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0460 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0468 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0470 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0478 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0480 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0488 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0490 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0498 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x04A0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x04A8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x04B0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x04B8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x04C0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x04C8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x04D0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x04D8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x04E0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x04E8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x04F0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x04F8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0500 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0508 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0510 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0518 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0520 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0528 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0530 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0538 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0540 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0548 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0550 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0558 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0560 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0568 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0570 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0578 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0580 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0588 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0590 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0598 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x05A0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x05A8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x05B0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x05B8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x05C0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x05C8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x05D0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x05D8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x05E0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x05E8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x05F0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x05F8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0600 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0608 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0610 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0618 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0620 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0628 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0630 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0638 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0640 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0648 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0650 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0658 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0660 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0668 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0670 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0678 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0680 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0688 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0690 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0698 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x06A0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x06A8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x06B0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x06B8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x06C0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x06C8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x06D0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x06D8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x06E0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x06E8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x06F0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x06F8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0700 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0708 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0710 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0718 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0720 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0728 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0730 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0738 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0740 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0748 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0750 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0758 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0760 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0768 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0770 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0778 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0780 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0788 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0790 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x0798 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x07A0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x07A8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x07B0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x07B8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x07C0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x07C8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x07D0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x07D8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x07E0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x07E8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x07F0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00" -- 0x07F8 - ); - -begin - - p_rom : process - begin - wait until rising_edge(CLK); - if (ENA = '1') then - DATA <= ROM(to_integer(unsigned(ADDR))); - end if; - end process; -end RTL; diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/invaders_rom_h.vhd b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/invaders_rom_h.vhd deleted file mode 100644 index f2f27278..00000000 --- a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_MiST/rtl/roms/invaders_rom_h.vhd +++ /dev/null @@ -1,288 +0,0 @@ --- generated with romgen v3.0 by MikeJ -library ieee; - use ieee.std_logic_1164.all; - use ieee.std_logic_unsigned.all; - use ieee.numeric_std.all; - -entity INVADERS_ROM_H is - port ( - CLK : in std_logic; - ENA : in std_logic; - ADDR : in std_logic_vector(10 downto 0); - DATA : out std_logic_vector(7 downto 0) - ); -end; - -architecture RTL of INVADERS_ROM_H is - - - type ROM_ARRAY is array(0 to 2047) of std_logic_vector(7 downto 0); - constant ROM : ROM_ARRAY := ( - x"00",x"00",x"00",x"C3",x"D4",x"18",x"00",x"00", -- 0x0000 - x"F5",x"C5",x"D5",x"E5",x"C3",x"8C",x"00",x"00", -- 0x0008 - x"F5",x"C5",x"D5",x"E5",x"3E",x"80",x"32",x"72", -- 0x0010 - x"20",x"21",x"C0",x"20",x"35",x"CD",x"CD",x"17", -- 0x0018 - x"DB",x"01",x"0F",x"DA",x"67",x"00",x"3A",x"EA", -- 0x0020 - x"20",x"A7",x"CA",x"42",x"00",x"3A",x"EB",x"20", -- 0x0028 - x"FE",x"99",x"CA",x"3E",x"00",x"C6",x"01",x"27", -- 0x0030 - x"32",x"EB",x"20",x"CD",x"47",x"19",x"AF",x"32", -- 0x0038 - x"EA",x"20",x"3A",x"E9",x"20",x"A7",x"CA",x"82", -- 0x0040 - x"00",x"3A",x"EF",x"20",x"A7",x"C2",x"6F",x"00", -- 0x0048 - x"3A",x"EB",x"20",x"A7",x"C2",x"5D",x"00",x"CD", -- 0x0050 - x"BF",x"0A",x"C3",x"82",x"00",x"3A",x"93",x"20", -- 0x0058 - x"A7",x"C2",x"82",x"00",x"C3",x"65",x"07",x"3E", -- 0x0060 - x"01",x"32",x"EA",x"20",x"C3",x"3F",x"00",x"CD", -- 0x0068 - x"40",x"17",x"3A",x"32",x"20",x"32",x"80",x"20", -- 0x0070 - x"CD",x"00",x"01",x"CD",x"48",x"02",x"CD",x"13", -- 0x0078 - x"09",x"00",x"E1",x"D1",x"C1",x"F1",x"FB",x"C9", -- 0x0080 - x"00",x"00",x"00",x"00",x"AF",x"32",x"72",x"20", -- 0x0088 - x"3A",x"E9",x"20",x"A7",x"CA",x"82",x"00",x"3A", -- 0x0090 - x"EF",x"20",x"A7",x"C2",x"A5",x"00",x"3A",x"C1", -- 0x0098 - x"20",x"0F",x"D2",x"82",x"00",x"21",x"20",x"20", -- 0x00A0 - x"CD",x"4B",x"02",x"CD",x"41",x"01",x"C3",x"82", -- 0x00A8 - x"00",x"CD",x"86",x"08",x"E5",x"7E",x"23",x"66", -- 0x00B0 - x"6F",x"22",x"09",x"20",x"22",x"0B",x"20",x"E1", -- 0x00B8 - x"2B",x"7E",x"FE",x"03",x"C2",x"C8",x"00",x"3D", -- 0x00C0 - x"32",x"08",x"20",x"FE",x"FE",x"3E",x"00",x"C2", -- 0x00C8 - x"D3",x"00",x"3C",x"32",x"0D",x"20",x"C9",x"3E", -- 0x00D0 - x"02",x"32",x"FB",x"21",x"32",x"FB",x"22",x"C3", -- 0x00D8 - x"E4",x"08",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x00E0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x00E8 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x00F0 - x"00",x"00",x"00",x"00",x"00",x"00",x"00",x"00", -- 0x00F8 - x"21",x"02",x"20",x"7E",x"A7",x"C2",x"38",x"15", -- 0x0100 - x"E5",x"3A",x"06",x"20",x"6F",x"3A",x"67",x"20", -- 0x0108 - x"67",x"7E",x"A7",x"E1",x"CA",x"36",x"01",x"23", -- 0x0110 - x"23",x"7E",x"23",x"46",x"E6",x"FE",x"07",x"07", -- 0x0118 - x"07",x"5F",x"16",x"00",x"21",x"00",x"1C",x"19", -- 0x0120 - x"EB",x"78",x"A7",x"C4",x"3B",x"01",x"2A",x"0B", -- 0x0128 - x"20",x"06",x"10",x"CD",x"D3",x"15",x"AF",x"32", -- 0x0130 - x"00",x"20",x"C9",x"21",x"30",x"00",x"19",x"EB", -- 0x0138 - x"C9",x"3A",x"68",x"20",x"A7",x"C8",x"3A",x"00", -- 0x0140 - x"20",x"A7",x"C0",x"3A",x"67",x"20",x"67",x"3A", -- 0x0148 - x"06",x"20",x"16",x"02",x"3C",x"FE",x"37",x"CC", -- 0x0150 - x"A1",x"01",x"6F",x"46",x"05",x"C2",x"54",x"01", -- 0x0158 - x"32",x"06",x"20",x"CD",x"7A",x"01",x"61",x"22", -- 0x0160 - x"0B",x"20",x"7D",x"FE",x"28",x"DA",x"71",x"19", -- 0x0168 - x"7A",x"32",x"04",x"20",x"3E",x"01",x"32",x"00", -- 0x0170 - x"20",x"C9",x"16",x"00",x"7D",x"21",x"09",x"20", -- 0x0178 - x"46",x"23",x"4E",x"FE",x"0B",x"FA",x"94",x"01", -- 0x0180 - x"DE",x"0B",x"5F",x"78",x"C6",x"10",x"47",x"7B", -- 0x0188 - x"14",x"C3",x"83",x"01",x"68",x"A7",x"C8",x"5F", -- 0x0190 - x"79",x"C6",x"10",x"4F",x"7B",x"3D",x"C3",x"95", -- 0x0198 - x"01",x"15",x"CA",x"CD",x"01",x"21",x"06",x"20", -- 0x01A0 - x"36",x"00",x"23",x"4E",x"36",x"00",x"CD",x"D9", -- 0x01A8 - x"01",x"21",x"05",x"20",x"7E",x"3C",x"E6",x"01", -- 0x01B0 - x"77",x"AF",x"21",x"67",x"20",x"66",x"C9",x"00", -- 0x01B8 - x"21",x"00",x"21",x"06",x"37",x"36",x"01",x"23", -- 0x01C0 - x"05",x"C2",x"C5",x"01",x"C9",x"E1",x"C9",x"3E", -- 0x01C8 - x"01",x"06",x"E0",x"21",x"02",x"24",x"C3",x"CC", -- 0x01D0 - x"14",x"23",x"46",x"23",x"79",x"86",x"77",x"23", -- 0x01D8 - x"78",x"86",x"77",x"C9",x"06",x"C0",x"11",x"00", -- 0x01E0 - x"1B",x"21",x"00",x"20",x"C3",x"32",x"1A",x"21", -- 0x01E8 - x"42",x"21",x"C3",x"F8",x"01",x"21",x"42",x"22", -- 0x01F0 - x"0E",x"04",x"11",x"20",x"1D",x"D5",x"06",x"2C", -- 0x01F8 - x"CD",x"32",x"1A",x"D1",x"0D",x"C2",x"FD",x"01", -- 0x0200 - x"C9",x"3E",x"01",x"C3",x"1B",x"02",x"3E",x"01", -- 0x0208 - x"C3",x"14",x"02",x"AF",x"11",x"42",x"22",x"C3", -- 0x0210 - x"1E",x"02",x"AF",x"11",x"42",x"21",x"32",x"81", -- 0x0218 - x"20",x"01",x"02",x"16",x"21",x"06",x"28",x"3E", -- 0x0220 - x"04",x"F5",x"C5",x"3A",x"81",x"20",x"A7",x"C2", -- 0x0228 - x"42",x"02",x"CD",x"69",x"1A",x"C1",x"F1",x"3D", -- 0x0230 - x"C8",x"D5",x"11",x"E0",x"02",x"19",x"D1",x"C3", -- 0x0238 - x"29",x"02",x"CD",x"7C",x"14",x"C3",x"35",x"02", -- 0x0240 - x"21",x"10",x"20",x"7E",x"FE",x"FF",x"C8",x"FE", -- 0x0248 - x"FE",x"CA",x"81",x"02",x"23",x"46",x"4F",x"B0", -- 0x0250 - x"79",x"C2",x"77",x"02",x"23",x"7E",x"A7",x"C2", -- 0x0258 - x"88",x"02",x"23",x"5E",x"23",x"56",x"E5",x"EB", -- 0x0260 - x"E5",x"21",x"6F",x"02",x"E3",x"D5",x"E9",x"E1", -- 0x0268 - x"11",x"0C",x"00",x"19",x"C3",x"4B",x"02",x"05", -- 0x0270 - x"04",x"C2",x"7D",x"02",x"3D",x"05",x"70",x"2B", -- 0x0278 - x"77",x"11",x"10",x"00",x"19",x"C3",x"4B",x"02", -- 0x0280 - x"35",x"2B",x"2B",x"C3",x"81",x"02",x"E1",x"23", -- 0x0288 - x"7E",x"FE",x"FF",x"CA",x"3B",x"03",x"23",x"35", -- 0x0290 - x"C0",x"47",x"AF",x"32",x"68",x"20",x"32",x"69", -- 0x0298 - x"20",x"3E",x"30",x"32",x"6A",x"20",x"78",x"36", -- 0x02A0 - x"05",x"23",x"35",x"C2",x"9B",x"03",x"2A",x"1A", -- 0x02A8 - x"20",x"06",x"10",x"CD",x"24",x"14",x"21",x"10", -- 0x02B0 - x"20",x"11",x"10",x"1B",x"06",x"10",x"CD",x"32", -- 0x02B8 - x"1A",x"06",x"00",x"CD",x"DC",x"19",x"3A",x"6D", -- 0x02C0 - x"20",x"A7",x"C0",x"3A",x"EF",x"20",x"A7",x"C8", -- 0x02C8 - x"31",x"00",x"24",x"FB",x"CD",x"D7",x"19",x"CD", -- 0x02D0 - x"2E",x"09",x"A7",x"CA",x"6D",x"16",x"CD",x"E7", -- 0x02D8 - x"18",x"7E",x"A7",x"CA",x"2C",x"03",x"3A",x"CE", -- 0x02E0 - x"20",x"A7",x"CA",x"2C",x"03",x"3A",x"67",x"20", -- 0x02E8 - x"F5",x"0F",x"DA",x"32",x"03",x"CD",x"0E",x"02", -- 0x02F0 - x"CD",x"78",x"08",x"73",x"23",x"72",x"2B",x"2B", -- 0x02F8 - x"70",x"00",x"CD",x"E4",x"01",x"F1",x"0F",x"3E", -- 0x0300 - x"21",x"06",x"00",x"D2",x"12",x"03",x"06",x"20", -- 0x0308 - x"3E",x"22",x"32",x"67",x"20",x"CD",x"B6",x"0A", -- 0x0310 - x"AF",x"32",x"11",x"20",x"78",x"D3",x"05",x"3C", -- 0x0318 - x"32",x"98",x"20",x"CD",x"D6",x"09",x"CD",x"7F", -- 0x0320 - x"1A",x"C3",x"F9",x"07",x"CD",x"7F",x"1A",x"C3", -- 0x0328 - x"17",x"08",x"CD",x"09",x"02",x"C3",x"F8",x"02", -- 0x0330 - x"00",x"00",x"00",x"21",x"68",x"20",x"36",x"01", -- 0x0338 - x"23",x"7E",x"A7",x"C3",x"B0",x"03",x"00",x"2B", -- 0x0340 - x"36",x"01",x"3A",x"1B",x"20",x"47",x"3A",x"EF", -- 0x0348 - x"20",x"A7",x"C2",x"63",x"03",x"3A",x"1D",x"20", -- 0x0350 - x"0F",x"DA",x"81",x"03",x"0F",x"DA",x"8E",x"03", -- 0x0358 - x"C3",x"6F",x"03",x"CD",x"C0",x"17",x"07",x"07", -- 0x0360 - x"DA",x"81",x"03",x"07",x"DA",x"8E",x"03",x"21", -- 0x0368 - x"18",x"20",x"CD",x"3B",x"1A",x"CD",x"47",x"1A", -- 0x0370 - x"CD",x"39",x"14",x"3E",x"00",x"32",x"12",x"20", -- 0x0378 - x"C9",x"78",x"FE",x"D9",x"CA",x"6F",x"03",x"3C", -- 0x0380 - x"32",x"1B",x"20",x"C3",x"6F",x"03",x"78",x"FE", -- 0x0388 - x"30",x"CA",x"6F",x"03",x"3D",x"32",x"1B",x"20", -- 0x0390 - x"C3",x"6F",x"03",x"3C",x"E6",x"01",x"32",x"15", -- 0x0398 - x"20",x"07",x"07",x"07",x"07",x"21",x"70",x"1C", -- 0x03A0 - x"85",x"6F",x"22",x"18",x"20",x"C3",x"6F",x"03", -- 0x03A8 - x"C2",x"4A",x"03",x"23",x"35",x"C2",x"4A",x"03", -- 0x03B0 - x"C3",x"46",x"03",x"11",x"2A",x"20",x"CD",x"06", -- 0x03B8 - x"1A",x"E1",x"D0",x"23",x"7E",x"A7",x"C8",x"FE", -- 0x03C0 - x"01",x"CA",x"FA",x"03",x"FE",x"02",x"CA",x"0A", -- 0x03C8 - x"04",x"23",x"FE",x"03",x"C2",x"2A",x"04",x"35", -- 0x03D0 - x"CA",x"36",x"04",x"7E",x"FE",x"0F",x"C0",x"E5", -- 0x03D8 - x"CD",x"30",x"04",x"CD",x"52",x"14",x"E1",x"23", -- 0x03E0 - x"34",x"23",x"23",x"35",x"35",x"23",x"35",x"35", -- 0x03E8 - x"35",x"23",x"36",x"08",x"CD",x"30",x"04",x"C3", -- 0x03F0 - x"00",x"14",x"3C",x"77",x"3A",x"1B",x"20",x"C6", -- 0x03F8 - x"08",x"32",x"2A",x"20",x"CD",x"30",x"04",x"C3", -- 0x0400 - x"00",x"14",x"CD",x"30",x"04",x"D5",x"E5",x"C5", -- 0x0408 - x"CD",x"52",x"14",x"C1",x"E1",x"D1",x"3A",x"2C", -- 0x0410 - x"20",x"85",x"6F",x"32",x"29",x"20",x"CD",x"91", -- 0x0418 - x"14",x"3A",x"61",x"20",x"A7",x"C8",x"32",x"02", -- 0x0420 - x"20",x"C9",x"FE",x"05",x"C8",x"C3",x"36",x"04", -- 0x0428 - x"21",x"27",x"20",x"C3",x"3B",x"1A",x"CD",x"30", -- 0x0430 - x"04",x"CD",x"52",x"14",x"21",x"25",x"20",x"11", -- 0x0438 - x"25",x"1B",x"06",x"07",x"CD",x"32",x"1A",x"2A", -- 0x0440 - x"8D",x"20",x"2C",x"7D",x"FE",x"63",x"DA",x"53", -- 0x0448 - x"04",x"2E",x"54",x"22",x"8D",x"20",x"2A",x"8F", -- 0x0450 - x"20",x"2C",x"22",x"8F",x"20",x"3A",x"84",x"20", -- 0x0458 - x"A7",x"C0",x"7E",x"E6",x"01",x"01",x"29",x"02", -- 0x0460 - x"C2",x"6E",x"04",x"01",x"E0",x"FE",x"21",x"8A", -- 0x0468 - x"20",x"71",x"23",x"23",x"70",x"C9",x"E1",x"3A", -- 0x0470 - x"32",x"1B",x"32",x"32",x"20",x"2A",x"38",x"20", -- 0x0478 - x"7D",x"B4",x"C2",x"8A",x"04",x"2B",x"22",x"38", -- 0x0480 - x"20",x"C9",x"11",x"35",x"20",x"3E",x"F9",x"CD", -- 0x0488 - x"50",x"05",x"3A",x"46",x"20",x"32",x"70",x"20", -- 0x0490 - x"3A",x"56",x"20",x"32",x"71",x"20",x"CD",x"63", -- 0x0498 - x"05",x"3A",x"78",x"20",x"A7",x"21",x"35",x"20", -- 0x04A0 - x"C2",x"5B",x"05",x"11",x"30",x"1B",x"21",x"30", -- 0x04A8 - x"20",x"06",x"10",x"C3",x"32",x"1A",x"E1",x"3A", -- 0x04B0 - x"6E",x"20",x"A7",x"C0",x"3A",x"80",x"20",x"FE", -- 0x04B8 - x"01",x"C0",x"11",x"45",x"20",x"3E",x"ED",x"CD", -- 0x04C0 - x"50",x"05",x"3A",x"36",x"20",x"32",x"70",x"20", -- 0x04C8 - x"3A",x"56",x"20",x"32",x"71",x"20",x"CD",x"63", -- 0x04D0 - x"05",x"3A",x"76",x"20",x"FE",x"10",x"DA",x"E7", -- 0x04D8 - x"04",x"3A",x"48",x"1B",x"32",x"76",x"20",x"3A", -- 0x04E0 - x"78",x"20",x"A7",x"21",x"45",x"20",x"C2",x"5B", -- 0x04E8 - x"05",x"11",x"40",x"1B",x"21",x"40",x"20",x"06", -- 0x04F0 - x"10",x"CD",x"32",x"1A",x"3A",x"82",x"20",x"3D", -- 0x04F8 - x"C2",x"08",x"05",x"3E",x"01",x"32",x"6E",x"20", -- 0x0500 - x"2A",x"76",x"20",x"C3",x"7E",x"06",x"E1",x"11", -- 0x0508 - x"55",x"20",x"3E",x"DB",x"CD",x"50",x"05",x"3A", -- 0x0510 - x"46",x"20",x"32",x"70",x"20",x"3A",x"36",x"20", -- 0x0518 - x"32",x"71",x"20",x"CD",x"63",x"05",x"3A",x"76", -- 0x0520 - x"20",x"FE",x"15",x"DA",x"34",x"05",x"3A",x"58", -- 0x0528 - x"1B",x"32",x"76",x"20",x"3A",x"78",x"20",x"A7", -- 0x0530 - x"21",x"55",x"20",x"C2",x"5B",x"05",x"11",x"50", -- 0x0538 - x"1B",x"21",x"50",x"20",x"06",x"10",x"CD",x"32", -- 0x0540 - x"1A",x"2A",x"76",x"20",x"22",x"58",x"20",x"C9", -- 0x0548 - x"32",x"7F",x"20",x"21",x"73",x"20",x"06",x"0B", -- 0x0550 - x"C3",x"32",x"1A",x"11",x"73",x"20",x"06",x"0B", -- 0x0558 - x"C3",x"32",x"1A",x"21",x"73",x"20",x"7E",x"E6", -- 0x0560 - x"80",x"C2",x"C1",x"05",x"3A",x"C1",x"20",x"FE", -- 0x0568 - x"04",x"3A",x"69",x"20",x"CA",x"B7",x"05",x"A7", -- 0x0570 - x"C8",x"23",x"36",x"00",x"3A",x"70",x"20",x"A7", -- 0x0578 - x"CA",x"89",x"05",x"47",x"3A",x"CF",x"20",x"B8", -- 0x0580 - x"D0",x"3A",x"71",x"20",x"A7",x"CA",x"96",x"05", -- 0x0588 - x"47",x"3A",x"CF",x"20",x"B8",x"D0",x"23",x"7E", -- 0x0590 - x"A7",x"CA",x"1B",x"06",x"2A",x"76",x"20",x"4E", -- 0x0598 - x"23",x"00",x"22",x"76",x"20",x"CD",x"2F",x"06", -- 0x05A0 - x"D0",x"CD",x"7A",x"01",x"79",x"C6",x"07",x"67", -- 0x05A8 - x"7D",x"D6",x"0A",x"6F",x"22",x"7B",x"20",x"21", -- 0x05B0 - x"73",x"20",x"7E",x"F6",x"80",x"77",x"23",x"34", -- 0x05B8 - x"C9",x"11",x"7C",x"20",x"CD",x"06",x"1A",x"D0", -- 0x05C0 - x"23",x"7E",x"E6",x"01",x"C2",x"44",x"06",x"23", -- 0x05C8 - x"34",x"CD",x"75",x"06",x"3A",x"79",x"20",x"C6", -- 0x05D0 - x"03",x"21",x"7F",x"20",x"BE",x"DA",x"E2",x"05", -- 0x05D8 - x"D6",x"0C",x"32",x"79",x"20",x"3A",x"7B",x"20", -- 0x05E0 - x"47",x"3A",x"7E",x"20",x"80",x"32",x"7B",x"20", -- 0x05E8 - x"CD",x"6C",x"06",x"3A",x"7B",x"20",x"FE",x"15", -- 0x05F0 - x"DA",x"12",x"06",x"3A",x"61",x"20",x"A7",x"C8", -- 0x05F8 - x"3A",x"7B",x"20",x"FE",x"1E",x"DA",x"12",x"06", -- 0x0600 - x"FE",x"27",x"00",x"D2",x"12",x"06",x"97",x"32", -- 0x0608 - x"15",x"20",x"3A",x"73",x"20",x"F6",x"01",x"32", -- 0x0610 - x"73",x"20",x"C9",x"3A",x"1B",x"20",x"C6",x"08", -- 0x0618 - x"67",x"CD",x"6F",x"15",x"79",x"FE",x"0C",x"DA", -- 0x0620 - x"A5",x"05",x"0E",x"0B",x"C3",x"A5",x"05",x"0D", -- 0x0628 - x"3A",x"67",x"20",x"67",x"69",x"16",x"05",x"7E", -- 0x0630 - x"A7",x"37",x"C0",x"7D",x"C6",x"0B",x"6F",x"15", -- 0x0638 - x"C2",x"37",x"06",x"C9",x"21",x"78",x"20",x"35", -- 0x0640 - x"7E",x"FE",x"03",x"C2",x"67",x"06",x"CD",x"75", -- 0x0648 - x"06",x"21",x"DC",x"1C",x"22",x"79",x"20",x"21", -- 0x0650 - x"7C",x"20",x"35",x"35",x"2B",x"35",x"35",x"3E", -- 0x0658 - x"06",x"32",x"7D",x"20",x"C3",x"6C",x"06",x"A7", -- 0x0660 - x"C0",x"C3",x"75",x"06",x"21",x"79",x"20",x"CD", -- 0x0668 - x"3B",x"1A",x"C3",x"91",x"14",x"21",x"79",x"20", -- 0x0670 - x"CD",x"3B",x"1A",x"C3",x"52",x"14",x"22",x"48", -- 0x0678 - x"20",x"C9",x"E1",x"3A",x"80",x"20",x"FE",x"02", -- 0x0680 - x"C0",x"21",x"83",x"20",x"7E",x"A7",x"CA",x"0F", -- 0x0688 - x"05",x"3A",x"56",x"20",x"A7",x"C2",x"0F",x"05", -- 0x0690 - x"23",x"7E",x"A7",x"C2",x"AB",x"06",x"3A",x"82", -- 0x0698 - x"20",x"FE",x"08",x"DA",x"0F",x"05",x"36",x"01", -- 0x06A0 - x"CD",x"3C",x"07",x"11",x"8A",x"20",x"CD",x"06", -- 0x06A8 - x"1A",x"D0",x"21",x"85",x"20",x"7E",x"A7",x"C2", -- 0x06B0 - x"D6",x"06",x"21",x"8A",x"20",x"7E",x"23",x"23", -- 0x06B8 - x"86",x"32",x"8A",x"20",x"CD",x"3C",x"07",x"21", -- 0x06C0 - x"8A",x"20",x"7E",x"FE",x"28",x"DA",x"F9",x"06", -- 0x06C8 - x"FE",x"E1",x"D2",x"F9",x"06",x"C9",x"06",x"FE", -- 0x06D0 - x"CD",x"DC",x"19",x"23",x"35",x"7E",x"FE",x"1F", -- 0x06D8 - x"CA",x"4B",x"07",x"FE",x"18",x"CA",x"0C",x"07", -- 0x06E0 - x"A7",x"C0",x"06",x"EF",x"21",x"98",x"20",x"7E", -- 0x06E8 - x"A0",x"77",x"E6",x"20",x"D3",x"05",x"00",x"00", -- 0x06F0 - x"00",x"CD",x"42",x"07",x"CD",x"CB",x"14",x"21", -- 0x06F8 - x"83",x"20",x"06",x"0A",x"CD",x"5F",x"07",x"06", -- 0x0700 - x"FE",x"C3",x"DC",x"19",x"3E",x"01",x"32",x"F1", -- 0x0708 - x"20",x"2A",x"8D",x"20",x"46",x"0E",x"04",x"21", -- 0x0710 - x"50",x"1D",x"11",x"4C",x"1D",x"1A",x"B8",x"CA", -- 0x0718 - x"28",x"07",x"23",x"13",x"0D",x"C2",x"1D",x"07", -- 0x0720 - x"7E",x"32",x"87",x"20",x"26",x"00",x"68",x"29", -- 0x0728 - x"29",x"29",x"29",x"22",x"F2",x"20",x"CD",x"42", -- 0x0730 - x"07",x"C3",x"F1",x"08",x"CD",x"42",x"07",x"C3", -- 0x0738 - x"39",x"14",x"21",x"87",x"20",x"CD",x"3B",x"1A", -- 0x0740 - x"C3",x"47",x"1A",x"06",x"10",x"21",x"98",x"20", -- 0x0748 - x"7E",x"B0",x"77",x"CD",x"70",x"17",x"21",x"7C", -- 0x0750 - x"1D",x"22",x"87",x"20",x"C3",x"3C",x"07",x"11", -- 0x0758 - x"83",x"1B",x"C3",x"32",x"1A",x"3E",x"01",x"32", -- 0x0760 - x"93",x"20",x"31",x"00",x"24",x"FB",x"CD",x"79", -- 0x0768 - x"19",x"CD",x"D6",x"09",x"21",x"13",x"30",x"11", -- 0x0770 - x"F3",x"1F",x"0E",x"04",x"CD",x"F3",x"08",x"3A", -- 0x0778 - x"EB",x"20",x"3D",x"21",x"10",x"28",x"0E",x"14", -- 0x0780 - x"C2",x"57",x"08",x"11",x"CF",x"1A",x"CD",x"F3", -- 0x0788 - x"08",x"DB",x"01",x"E6",x"04",x"CA",x"7F",x"07", -- 0x0790 - x"06",x"99",x"AF",x"32",x"CE",x"20",x"3A",x"EB", -- 0x0798 - x"20",x"80",x"27",x"32",x"EB",x"20",x"CD",x"47", -- 0x07A0 - x"19",x"21",x"00",x"00",x"22",x"F8",x"20",x"22", -- 0x07A8 - x"FC",x"20",x"CD",x"25",x"19",x"CD",x"2B",x"19", -- 0x07B0 - x"CD",x"D7",x"19",x"21",x"01",x"01",x"7C",x"32", -- 0x07B8 - x"EF",x"20",x"22",x"E7",x"20",x"22",x"E5",x"20", -- 0x07C0 - x"CD",x"56",x"19",x"CD",x"EF",x"01",x"CD",x"F5", -- 0x07C8 - x"01",x"CD",x"D1",x"08",x"32",x"FF",x"21",x"32", -- 0x07D0 - x"FF",x"22",x"CD",x"D7",x"00",x"AF",x"32",x"FE", -- 0x07D8 - x"21",x"32",x"FE",x"22",x"CD",x"C0",x"01",x"CD", -- 0x07E0 - x"04",x"19",x"21",x"78",x"38",x"22",x"FC",x"21", -- 0x07E8 - x"22",x"FC",x"22",x"CD",x"E4",x"01",x"CD",x"7F", -- 0x07F0 - x"1A",x"CD",x"8D",x"08",x"CD",x"D6",x"09",x"00" -- 0x07F8 - ); - -begin - - p_rom : process - begin - wait until rising_edge(CLK); - if (ENA = '1') then - DATA <= ROM(to_integer(unsigned(ADDR))); - end if; - end process; -end RTL; diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/Invaders.qsf b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/Invaders.qsf index d8e3aaed..b18fc331 100644 --- a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/Invaders.qsf +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/Invaders.qsf @@ -17,8 +17,8 @@ # -------------------------------------------------------------------------- # # # Quartus II 64-Bit -# Version 13.1.0 Build 162 10/23/2013 SJ Web Edition -# Date created = 21:27:39 November 20, 2017 +# Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Full Version +# Date created = 17:07:30 December 28, 2018 # # -------------------------------------------------------------------------- # # @@ -35,6 +35,41 @@ # # -------------------------------------------------------------------------- # + + +# Project-Wide Assignments +# ======================== +set_global_assignment -name ORIGINAL_QUARTUS_VERSION 13.1 +set_global_assignment -name PROJECT_CREATION_TIME_DATE "21:27:39 NOVEMBER 20, 2017" +set_global_assignment -name LAST_QUARTUS_VERSION "13.0 SP1" +set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files +set_global_assignment -name PRE_FLOW_SCRIPT_FILE "quartus_sh:rtl/build_id.tcl" +set_global_assignment -name SYSTEMVERILOG_FILE rtl/Invaders_mist.sv +set_global_assignment -name VHDL_FILE rtl/invaders.vhd +set_global_assignment -name VHDL_FILE rtl/mw8080.vhd +set_global_assignment -name VHDL_FILE rtl/invaders_audio.vhd +set_global_assignment -name VHDL_FILE rtl/invaders_video.vhd +set_global_assignment -name SYSTEMVERILOG_FILE rtl/invaders_memory.sv +set_global_assignment -name QIP_FILE rtl/pll.qip +set_global_assignment -name SYSTEMVERILOG_FILE rtl/video_mixer.sv +set_global_assignment -name VERILOG_FILE rtl/scandoubler.v +set_global_assignment -name VERILOG_FILE rtl/osd.v +set_global_assignment -name VERILOG_FILE rtl/mist_io.v +set_global_assignment -name VERILOG_FILE rtl/keyboard.v +set_global_assignment -name SYSTEMVERILOG_FILE rtl/hq2x.sv +set_global_assignment -name VHDL_FILE rtl/dac.vhd +set_global_assignment -name VHDL_FILE rtl/sprom.vhd +set_global_assignment -name VHDL_FILE rtl/spram.vhd +set_global_assignment -name VHDL_FILE rtl/cpu68.vhd +set_global_assignment -name VHDL_FILE rtl/T80/T8080se.vhd +set_global_assignment -name VHDL_FILE rtl/T80/T80_Reg.vhd +set_global_assignment -name VHDL_FILE rtl/T80/T80_Pack.vhd +set_global_assignment -name VHDL_FILE rtl/T80/T80_MCode.vhd +set_global_assignment -name VHDL_FILE rtl/T80/T80_ALU.vhd +set_global_assignment -name VHDL_FILE rtl/T80/T80.vhd + +# Pin & Location Assignments +# ========================== set_location_assignment PIN_7 -to LED set_location_assignment PIN_54 -to CLOCK_27 set_location_assignment PIN_144 -to VGA_R[5] @@ -67,29 +102,24 @@ set_location_assignment PIN_91 -to SPI_SS3 set_location_assignment PIN_13 -to CONF_DATA0 set_location_assignment PLL_1 -to "pll:pll|altpll:altpll_component" - - -set_global_assignment -name FAMILY "Cyclone III" -set_global_assignment -name DEVICE EP3C25E144C8 -set_global_assignment -name TOP_LEVEL_ENTITY Invaders_mist -set_global_assignment -name ORIGINAL_QUARTUS_VERSION 13.1 -set_global_assignment -name PROJECT_CREATION_TIME_DATE "21:27:39 NOVEMBER 20, 2017" -set_global_assignment -name LAST_QUARTUS_VERSION "13.0 SP1" -set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files +# Classic Timing Assignments +# ========================== set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 + +# Analysis & Synthesis Assignments +# ================================ +set_global_assignment -name FAMILY "Cyclone III" +set_global_assignment -name TOP_LEVEL_ENTITY Invaders_mist set_global_assignment -name DEVICE_FILTER_PIN_COUNT 144 set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 8 + +# Fitter Assignments +# ================== +set_global_assignment -name DEVICE EP3C25E144C8 set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1 -set_global_assignment -name EDA_SIMULATION_TOOL "ModelSim-Altera (VHDL)" -set_global_assignment -name EDA_OUTPUT_DATA_FORMAT VHDL -section_id eda_simulation set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "3.3-V LVTTL" -set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top -set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top -set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top set_global_assignment -name CYCLONEIII_CONFIGURATION_SCHEME "PASSIVE SERIAL" -set_global_assignment -name USE_CONFIGURATION_DEVICE OFF -set_global_assignment -name GENERATE_RBF_FILE ON set_global_assignment -name CRC_ERROR_OPEN_DRAIN OFF set_global_assignment -name FORCE_CONFIGURATION_VCCIO ON set_global_assignment -name CYCLONEII_RESERVE_NCEO_AFTER_CONFIGURATION "USE AS REGULAR IO" @@ -97,32 +127,54 @@ set_global_assignment -name RESERVE_DATA0_AFTER_CONFIGURATION "USE AS REGULAR IO set_global_assignment -name RESERVE_DATA1_AFTER_CONFIGURATION "USE AS REGULAR IO" set_global_assignment -name RESERVE_FLASH_NCE_AFTER_CONFIGURATION "USE AS REGULAR IO" set_global_assignment -name RESERVE_DCLK_AFTER_CONFIGURATION "USE AS REGULAR IO" + +# EDA Netlist Writer Assignments +# ============================== +set_global_assignment -name EDA_SIMULATION_TOOL "ModelSim-Altera (VHDL)" + +# Assembler Assignments +# ===================== +set_global_assignment -name USE_CONFIGURATION_DEVICE OFF +set_global_assignment -name GENERATE_RBF_FILE ON + +# Power Estimation Assignments +# ============================ +set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW" +set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)" + +# Advanced I/O Timing Assignments +# =============================== set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -rise set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -fall set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -rise set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -fall -set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW" -set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)" -set_global_assignment -name SYSTEMVERILOG_FILE rtl/Invaders_mist.sv -set_global_assignment -name VHDL_FILE rtl/invaders.vhd -set_global_assignment -name VHDL_FILE rtl/mw8080.vhd -set_global_assignment -name VHDL_FILE rtl/invaders_audio.vhd -set_global_assignment -name VHDL_FILE rtl/Invaders_memory.vhd -set_global_assignment -name VHDL_FILE rtl/invaders_video.vhd -set_global_assignment -name VHDL_FILE rtl/T8080se.vhd -set_global_assignment -name VHDL_FILE rtl/T80_Pack.vhd -set_global_assignment -name VHDL_FILE rtl/T80.vhd -set_global_assignment -name VHDL_FILE rtl/T80_MCode.vhd -set_global_assignment -name VHDL_FILE rtl/T80_ALU.vhd -set_global_assignment -name VHDL_FILE rtl/T80_Reg.vhd -set_global_assignment -name QIP_FILE rtl/pll.qip -set_global_assignment -name SYSTEMVERILOG_FILE rtl/video_mixer.sv -set_global_assignment -name VERILOG_FILE rtl/scandoubler.v -set_global_assignment -name VERILOG_FILE rtl/osd.v -set_global_assignment -name VERILOG_FILE rtl/mist_io.v -set_global_assignment -name VERILOG_FILE rtl/keyboard.v -set_global_assignment -name SYSTEMVERILOG_FILE rtl/hq2x.sv -set_global_assignment -name VHDL_FILE rtl/dac.vhd -set_global_assignment -name VHDL_FILE rtl/sprom.vhd -set_global_assignment -name VHDL_FILE rtl/spram.vhd + +# start EDA_TOOL_SETTINGS(eda_simulation) +# --------------------------------------- + + # EDA Netlist Writer Assignments + # ============================== +set_global_assignment -name EDA_OUTPUT_DATA_FORMAT VHDL -section_id eda_simulation + +# end EDA_TOOL_SETTINGS(eda_simulation) +# ------------------------------------- + +# --------------------------- +# start ENTITY(Invaders_mist) + + # start DESIGN_PARTITION(Top) + # --------------------------- + + # Incremental Compilation Assignments + # =================================== +set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top +set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top +set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top + + # end DESIGN_PARTITION(Top) + # ------------------------- + +# end ENTITY(Invaders_mist) +# ------------------------- +set_global_assignment -name SYSTEMVERILOG_FILE rtl/cpu8080.sv set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/Release/Invaders.rbf b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/Release/Invaders.rbf index a5835782..45dcaa92 100644 Binary files a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/Release/Invaders.rbf and b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/Release/Invaders.rbf differ diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/Invaders_memory.vhd b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/Invaders_memory.vhd deleted file mode 100644 index 37f9f99f..00000000 --- a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/Invaders_memory.vhd +++ /dev/null @@ -1,153 +0,0 @@ -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.numeric_std.all; - -entity invaders_memory is - port( - CLK : in std_logic;--10mhz - RWE_n : in std_logic; - AD : in std_logic_vector(15 downto 0); - RAB : in std_logic_vector(12 downto 0); - RDB : out std_logic_vector(7 downto 0); - RWD : in std_logic_vector(7 downto 0); - IB : out std_logic_vector(7 downto 0) - ); -end invaders_memory; - -architecture rtl of invaders_memory is - signal rom_data_0 : std_logic_vector(7 downto 0); - signal rom_data_1 : std_logic_vector(7 downto 0); - signal rom_data_2 : std_logic_vector(7 downto 0); - signal rom_data_3 : std_logic_vector(7 downto 0); - signal rom_data_4 : std_logic_vector(7 downto 0); - signal rom_data_5 : std_logic_vector(7 downto 0); - signal rom_data_6 : std_logic_vector(7 downto 0); - signal rom_data_7 : std_logic_vector(7 downto 0); - -begin - u_rom_j : entity work.sprom - generic map ( --- init_file => "./roms/Gunfight/7609h.hex",--not working - init_file => "./roms/SuEarthInv/earthinv.h.hex",--working --- init_file => "./roms/Seawolf/sw0041.h.hex",--not working --- init_file => "./roms/Dogpatch/dogpatch.h.hex",--not working --- init_file => "./roms/jspecter/romh.hex",--not working --- init_file => "./roms/InvadersRevenge/invrvnge.h.hex", - widthad_a => 11,--11 - width_a => 8) - port map ( - clock => Clk, - Address => AD(10 downto 0), - q => rom_data_0 - ); - - u_rom_i : entity work.sprom - generic map ( --- init_file => "./roms/Gunfight/7609h.hex",--not working - init_file => "./roms/SuEarthInv/earthinv.h.hex",--working --- init_file => "./roms/Seawolf/sw0041.h.hex",--not working --- init_file => "./roms/Dogpatch/dogpatch.h.hex",--not working --- init_file => "./roms/jspecter/romh.hex",--not working --- init_file => "./roms/InvadersRevenge/invrvnge.h.hex", - widthad_a => 11,--11 - width_a => 8) - port map ( - clock => Clk, - Address => AD(10 downto 0), - q => rom_data_0 - ); - - u_rom_h : entity work.sprom - generic map ( --- init_file => "./roms/Gunfight/7609h.hex",--not working - init_file => "./roms/SuEarthInv/earthinv.h.hex",--working --- init_file => "./roms/Seawolf/sw0041.h.hex",--not working --- init_file => "./roms/Dogpatch/dogpatch.h.hex",--not working --- init_file => "./roms/jspecter/romh.hex",--not working --- init_file => "./roms/InvadersRevenge/invrvnge.h.hex", - widthad_a => 11,--11 - width_a => 8) - port map ( - clock => Clk, - Address => AD(10 downto 0), - q => rom_data_0 - ); - -- - u_rom_g : entity work.sprom - generic map ( --- init_file => "./roms/Gunfight/7609g.hex", - init_file => "./roms/SuEarthInv/earthinv.g.hex", --- init_file => "./roms/Seawolf/sw0042.g.hex", --- init_file => "./roms/Dogpatch/dogpatch.g.hex", --- init_file => "./roms/jspecter/romg.hex", --- init_file => "./roms/InvadersRevenge/invrvnge.g.hex", - widthad_a => 11,--11 - width_a => 8) - port map ( - clock => Clk, - Address => AD(10 downto 0), - q => rom_data_1 - ); - -- - u_rom_f : entity work.sprom - generic map ( --- init_file => "./roms/Gunfight/7609f.hex", - init_file => "./roms/SuEarthInv/earthinv.f.hex", --- init_file => "./roms/Seawolf/sw0043.f.hex", --- init_file => "./roms/Dogpatch/dogpatch.f.hex", --- init_file => "./roms/jspecter/romf.hex", --- init_file => "./roms/InvadersRevenge/invrvnge.f.hex", - widthad_a => 11,--11 - width_a => 8) - port map ( - clock => Clk, - Address => AD(10 downto 0), - q => rom_data_2 - ); - -- - u_rom_e : entity work.sprom - generic map ( --- init_file => "./roms/Gunfight/7609e.hex", - init_file => "./roms/SuEarthInv/earthinv.e.hex", --- init_file => "./roms/Seawolf/sw0044.e.hex", --- init_file => "./roms/Dogpatch/dogpatch.e.hex", --- init_file => "./roms/jspecter/rome.hex", --- init_file => "./roms/InvadersRevenge/invrvnge.e.hex", - widthad_a => 11,--11 - width_a => 8) - port map ( - clock => Clk, - Address => AD(10 downto 0), - q => rom_data_3 - ); - -- - p_rom_data : process(AD, rom_data_0, rom_data_1, rom_data_2, rom_data_3) - begin - IB <= (others => '0'); - case AD(12 downto 11) is - when "000" => IB <= rom_data_0; - when "001" => IB <= rom_data_1; - when "010" => IB <= rom_data_2; - when "011" => IB <= rom_data_3; - when "100" => IB <= rom_data_4; - when "101" => IB <= rom_data_5; - when "110" => IB <= rom_data_6; - when "111" => IB <= rom_data_7; - when others => null; - end case; - end process; - - u_ram0 : entity work.spram - generic map ( - addr_width_g => 13, - data_width_g => 8) - port map ( - address => RAB, - clken => '1', - clock => Clk, - data => RWD, - wren => not RWE_n, - q => RDB - ); - -end; \ No newline at end of file diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/Invaders_mist.sv b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/Invaders_mist.sv index 30306b63..80f095d6 100644 --- a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/Invaders_mist.sv +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/Invaders_mist.sv @@ -1,3 +1,38 @@ +`define generic +`define invaders +`ifdef invaders + `define dip = 8'b00000000 +`endif +//`define supearth +`ifdef supearth + `define dip = 8'b11000000 //4 lifes check this +`endif +//`define slaser +`ifdef slaser + `define dip = 8'b00000000 //untested +`endif + +//`define sflush +`ifdef sflush + `define dip = 8'b00000000 //untested +`endif +//TODO +//`define lrescue + +//`define zzzap280 +//`define gunfight +//`define sflush +//`define seawolf +//`define dogpatch +//`define jspecter +//`define invadrev + +`ifndef sflush + `define cpu80 //8080 +`else + `define cpu65 //6500 +`endif + module Invaders_mist ( output LED, @@ -20,7 +55,10 @@ module Invaders_mist `include "rtl\build_id.v" localparam CONF_STR = { - "Space Inv.;;", +`ifdef invaders "Space Inv.;;", `endif +`ifdef supearth "SEarthInv.;;", `endif +`ifdef slaser "Space Laser;;", `endif + "Midway 8080.;;", "O2,Joystick Control,Upright,Normal;", "O34,Scandoubler Fx,None,HQ2x,CRT 25%,CRT 50%;", "T6,Reset;", @@ -126,7 +164,7 @@ wire m_start1 = kbjoy[1]; wire m_start2 = kbjoy[2]; wire m_coin = kbjoy[3]; -wire [12:0]RAB; +wire [15:0]RAB; wire [15:0]AD; wire [7:0]RDB; wire [7:0]RWD; @@ -140,62 +178,61 @@ wire HSync; wire VSync; invaderst invaderst( - .Rst_n(~(status[0] | status[6] | buttons[1])), - .Clk(clk_sys), - .ENA(), - .Coin(m_coin), - .Sel1Player(~m_start1), - .Sel2Player(~m_start2), - .Fire(~m_fire), - .MoveLeft(~m_left), - .MoveRight(~m_right), - .DIP(8'b0), - .RDB(RDB), - .IB(IB), - .RWD(RWD), - .RAB(RAB), - .AD(AD), - .SoundCtrl3(SoundCtrl3), - .SoundCtrl5(SoundCtrl5), - .Rst_n_s(Rst_n_s), - .RWE_n(RWE_n), - .Video(Video), - .HSync(HSync), - .VSync(VSync) - ); + .Rst_n(~(status[0] | status[6] | buttons[1])), + .Clk(clk_sys), + .ENA(), + .Coin(m_coin), + .Sel1Player(~m_start1), + .Sel2Player(~m_start2), + .Fire(~m_fire), + .MoveLeft(~m_left), + .MoveRight(~m_right), + .DIP(dip), + .RDB(RDB), + .IB(IB), + .RWD(RWD), + .RAB(RAB), + .AD(AD), + .SoundCtrl3(SoundCtrl3), + .SoundCtrl5(SoundCtrl5), + .Rst_n_s(Rst_n_s), + .RWE_n(RWE_n), + .Video(Video), + .HSync(HSync), + .VSync(VSync) + ); -Invaders_memory Invaders_memory ( - .CLK(clk_sys), - .RWE_n(RWE_n), - .AD(AD), - .RAB(RAB), - .RDB(RDB), - .RWD(RWD), - .IB(IB) - ); +invaders_memory invaders_memory ( + .Clock(clk_sys), + .RW_n(RWE_n), + .Addr(AD), + .Ram_Addr(RAB), + .Ram_out(RDB), + .Ram_in(RWD), + .Rom_out(IB) + ); invaders_audio invaders_audio ( - .Clk(clk_sys), - .S1(SoundCtrl3), - .S2(SoundCtrl5), - .Aud(audio) - ); + .Clk(clk_sys), + .S1(SoundCtrl3), + .S2(SoundCtrl5), + .Aud(audio) + ); invaders_video invaders_video ( - .Video(Video), - .CLK(clk_sys), - .Rst_n_s(Rst_n_s), - .HSync(HSync), - .VSync(VSync), - .O_VIDEO_R(r), - .O_VIDEO_G(g), - .O_VIDEO_B(b), - .O_HSYNC(hs), - .O_VSYNC(vs) - ); + .Video(Video), + .CLK(clk_sys), + .Rst_n_s(Rst_n_s), + .HSync(HSync), + .VSync(VSync), + .O_VIDEO_R(r), + .O_VIDEO_G(g), + .O_VIDEO_B(b), + .O_HSYNC(hs), + .O_VSYNC(vs) + ); -dac dac -( +dac dac ( .clk_i(clk_mist), .res_n_i(1), .dac_i(audio), diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/T80_RegX.vhd b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/T80_RegX.vhd deleted file mode 100644 index ebeee095..00000000 --- a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/T80_RegX.vhd +++ /dev/null @@ -1,176 +0,0 @@ --- **** --- T80(b) core. In an effort to merge and maintain bug fixes .... --- --- --- Ver 300 started tidyup --- MikeJ March 2005 --- Latest version from www.fpgaarcade.com (original www.opencores.org) --- --- **** --- --- T80 Registers for Xilinx Select RAM --- --- Version : 0244 --- --- Copyright (c) 2002 Daniel Wallner (jesus@opencores.org) --- --- All rights reserved --- --- Redistribution and use in source and synthezised forms, with or without --- modification, are permitted provided that the following conditions are met: --- --- Redistributions of source code must retain the above copyright notice, --- this list of conditions and the following disclaimer. --- --- Redistributions in synthesized form must reproduce the above copyright --- notice, this list of conditions and the following disclaimer in the --- documentation and/or other materials provided with the distribution. --- --- Neither the name of the author nor the names of other contributors may --- be used to endorse or promote products derived from this software without --- specific prior written permission. --- --- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" --- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR --- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE --- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR --- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF --- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS --- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN --- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) --- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE --- POSSIBILITY OF SUCH DAMAGE. --- --- Please report bugs to the author, but before you do so, please --- make sure that this is not a derivative work and that --- you have the latest version of this file. --- --- The latest version of this file can be found at: --- http://www.opencores.org/cvsweb.shtml/t51/ --- --- Limitations : --- --- File history : --- --- 0242 : Initial release --- --- 0244 : Removed UNISIM library and added componet declaration --- - -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.numeric_std.all; - -entity T80_Reg is - port( - Clk : in std_logic; - CEN : in std_logic; - WEH : in std_logic; - WEL : in std_logic; - AddrA : in std_logic_vector(2 downto 0); - AddrB : in std_logic_vector(2 downto 0); - AddrC : in std_logic_vector(2 downto 0); - DIH : in std_logic_vector(7 downto 0); - DIL : in std_logic_vector(7 downto 0); - DOAH : out std_logic_vector(7 downto 0); - DOAL : out std_logic_vector(7 downto 0); - DOBH : out std_logic_vector(7 downto 0); - DOBL : out std_logic_vector(7 downto 0); - DOCH : out std_logic_vector(7 downto 0); - DOCL : out std_logic_vector(7 downto 0) - ); -end T80_Reg; - -architecture rtl of T80_Reg is - - component RAM16X1D - port( - DPO : out std_ulogic; - SPO : out std_ulogic; - A0 : in std_ulogic; - A1 : in std_ulogic; - A2 : in std_ulogic; - A3 : in std_ulogic; - D : in std_ulogic; - DPRA0 : in std_ulogic; - DPRA1 : in std_ulogic; - DPRA2 : in std_ulogic; - DPRA3 : in std_ulogic; - WCLK : in std_ulogic; - WE : in std_ulogic); - end component; - - signal ENH : std_logic; - signal ENL : std_logic; - -begin - - ENH <= CEN and WEH; - ENL <= CEN and WEL; - - bG1: for I in 0 to 7 generate - begin - Reg1H : RAM16X1D - port map( - DPO => DOBH(i), - SPO => DOAH(i), - A0 => AddrA(0), - A1 => AddrA(1), - A2 => AddrA(2), - A3 => '0', - D => DIH(i), - DPRA0 => AddrB(0), - DPRA1 => AddrB(1), - DPRA2 => AddrB(2), - DPRA3 => '0', - WCLK => Clk, - WE => ENH); - Reg1L : RAM16X1D - port map( - DPO => DOBL(i), - SPO => DOAL(i), - A0 => AddrA(0), - A1 => AddrA(1), - A2 => AddrA(2), - A3 => '0', - D => DIL(i), - DPRA0 => AddrB(0), - DPRA1 => AddrB(1), - DPRA2 => AddrB(2), - DPRA3 => '0', - WCLK => Clk, - WE => ENL); - Reg2H : RAM16X1D - port map( - DPO => DOCH(i), - SPO => open, - A0 => AddrA(0), - A1 => AddrA(1), - A2 => AddrA(2), - A3 => '0', - D => DIH(i), - DPRA0 => AddrC(0), - DPRA1 => AddrC(1), - DPRA2 => AddrC(2), - DPRA3 => '0', - WCLK => Clk, - WE => ENH); - Reg2L : RAM16X1D - port map( - DPO => DOCL(i), - SPO => open, - A0 => AddrA(0), - A1 => AddrA(1), - A2 => AddrA(2), - A3 => '0', - D => DIL(i), - DPRA0 => AddrC(0), - DPRA1 => AddrC(1), - DPRA2 => AddrC(2), - DPRA3 => '0', - WCLK => Clk, - WE => ENL); - end generate; - -end; diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/build_id.v b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/build_id.v index 4d429cb5..28058561 100644 --- a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/build_id.v +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/build_id.v @@ -1,2 +1,2 @@ -`define BUILD_DATE "171118" -`define BUILD_TIME "195221" +`define BUILD_DATE "181229" +`define BUILD_TIME "040306" diff --git a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/mw8080.vhd b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/mw8080.vhd index 51d495a6..e7a0ec56 100644 --- a/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/mw8080.vhd +++ b/Arcade_MiST/Midway8080 Hardware/Midway8080v2_Mist/rtl/mw8080.vhd @@ -115,7 +115,7 @@ architecture struct of mw8080 is signal IntE_i : std_logic; signal DBin : std_logic; signal Sync : std_logic; - signal Wr_n : std_logic; + signal Wr_n, Rd_n : std_logic; signal ClkEnCnt : unsigned(2 downto 0); signal Status_i : std_logic_vector(7 downto 0); signal A : std_logic_vector(15 downto 0); @@ -189,6 +189,25 @@ begin DI => DI, DO => DO); +-- Wr_n <= not Rd_n; +-- my_cpu : entity work.cpu68 +-- port map ( +-- clk => Clk, +-- rst => not Rst_n, +-- rw => Rd_n, +-- vma => open, +-- address => A, +-- data_in => DI, +-- data_out => DO, +-- hold => Hold, +-- halt => '0', +-- irq => IntE_i, +-- nmi => Int_i, +-- test_alu => open, +-- test_cc => open +-- ); + + -- Clock enables process (Rst_n, Clk) begin