diff --git a/fpga/rtl/memcontrol.sv b/fpga/rtl/memcontrol.sv index 2f76506..e84b6af 100644 --- a/fpga/rtl/memcontrol.sv +++ b/fpga/rtl/memcontrol.sv @@ -78,23 +78,24 @@ always @(posedge clk28) begin {2'b11, bus.a[14], bus.a[15], bus.a[14], bus.a[13]} ; end -reg [16:14] rom_a; +reg [16:13] rom_a; always @(posedge clk28) begin rom_a <= - magic_map? 3'd2 : - div_map? 3'd3 : - (machine == MACHINE_S3 && port_1ffd[2] == 1'b0 && rompage128 == 1'b0)? 3'd4 : - (machine == MACHINE_S3 && port_1ffd[2] == 1'b0 && rompage128 == 1'b1)? 3'd5 : - (machine == MACHINE_S3 && port_1ffd[2] == 1'b1 && rompage128 == 1'b0)? 3'd6 : - (rompage128 == 1'b1)? 3'd1 : - 3'd0; + magic_map? {3'd2, 1'b0} : + div_map? {3'd2, 1'b1} : + (machine == MACHINE_S3 && port_1ffd[2] == 1'b0 && rompage128 == 1'b0)? {3'd4, bus.a[13]} : + (machine == MACHINE_S3 && port_1ffd[2] == 1'b0 && rompage128 == 1'b1)? {3'd5, bus.a[13]} : + (machine == MACHINE_S3 && port_1ffd[2] == 1'b1 && rompage128 == 1'b0)? {3'd6, bus.a[13]} : + (machine == MACHINE_S48)? {3'd3, bus.a[13]} : + (rompage128 == 1'b1)? {3'd1, bus.a[13]} : + {3'd0, bus.a[13]}; end assign va[18:0] = rom2ram_ram_wren? {2'b00, rom2ram_ram_address} : screen_fetch && snow? {3'b111, screenpage, screen_addr[14:8], {8{1'bz}}} : screen_fetch? {3'b111, screenpage, screen_addr} : - romreq? {2'b00, rom_a[16:14], bus.a[13], {13{1'bz}}} : + romreq? {2'b00, rom_a[16:13], {13{1'bz}}} : {ram_a[18:13], {13{1'bz}}}; assign vd[7:0] = diff --git a/rom/48.rom b/rom/48.rom new file mode 100644 index 0000000..4d6895e Binary files /dev/null and b/rom/48.rom differ diff --git a/rom/Makefile b/rom/Makefile index b3e382d..ab4d85f 100644 --- a/rom/Makefile +++ b/rom/Makefile @@ -1,12 +1,12 @@ # Each bank = 16Kb -bank00=128-0.rom # 0x00000 -bank01=128-1.rom # 0x04000 -bank02=../rom_src/main.bin # 0x08000 -bank03=ESXMMC.BIN ESXMMC.BIN # 0x0C000 -bank04=zcen3e0.rom # 0x10000 -bank05=zcen3e1.rom # 0x14000 -bank06=zcen3e2.rom # 0x18000 -bank07=zero8k.bin zero8k.bin # 0x1C000 +bank00=128-0.rom # 0x00000 +bank01=128-1.rom # 0x04000 +bank02=../rom_src/main.bin ESXMMC.BIN # 0x08000 +bank03=48.rom # 0x0C000 +bank04=zcen3e0.rom # 0x10000 +bank05=zcen3e1.rom # 0x14000 +bank06=zcen3e2.rom # 0x18000 +bank07=zero8k.bin zero8k.bin # 0x1C000 sizif.rom: ${bank00} ${bank01} ${bank02} ${bank03} ${bank04} ${bank05} ${bank06} ${bank07} diff --git a/rom_src/main.asm b/rom_src/main.asm index 24f8669..ca67cc7 100644 --- a/rom_src/main.asm +++ b/rom_src/main.asm @@ -497,12 +497,12 @@ wait_for_keys_release: include font.asm include strings.asm - DISPLAY "Free space: ",/D,#3FE8-$ - ASSERT $ < #3FE8 + DISPLAY "Free space: ",/D,#1FE8-$ + ASSERT $ < #1FE8 ; Just some string at the end of ROM - ORG #3FE8 + ORG #1FE8 DB 0,"End of Sizif Magic ROM",0 ; Variables @@ -526,4 +526,4 @@ Ulaplus_pallete: CSPECTMAP "main.map" - SAVEBIN "main.bin",0,16384 + SAVEBIN "main.bin",0,8192