ROM files (unscrambled) and verilog changes for increased Hub RAM
Cluso99
Posts: 18,069
Over on this thread I asked Chip for information to prepare the ROM hex files unscrambled. He graciously provided all the details to rebuild these files.
http://forums.parallax.com/showthread.php/156866-Question-for-Chip-re-ROM-code
I thought this information deserved it's own thread, together with a better title.
I have modified the two verilog files "hub.v" and "hub_mem.v" to
1) Remove the unscrambling code
2) Modify the Hub Memory to only use RAM, and that the top 4KB of RAM is remapped to $F000..$FFFF also.
3) Provided four files "ROM_$F000-$FFFF_BYTE0.spin" to "ROM_$F000-$FFFF_BYTE3.spin" that are the Hex ROM files
RR20140816g_ROM_$F000-$FFFF_BYTE_x.zip
This enables you to build a P1 with 48KB of hub RAM $0000..$9FFF.
It is simple to change the size of the hub RAM for other builds.
ROM $F000..$FFFF is mapped to the top 4KB of hub RAM (eg 44-48KB $9000..$9FFF).
This means that the Interpreter, Booter and Runner code is available at the same P1 ROM addresses within $F000..$FFFF.
Enjoy
http://forums.parallax.com/showthread.php/156866-Question-for-Chip-re-ROM-code
I thought this information deserved it's own thread, together with a better title.
I have modified the two verilog files "hub.v" and "hub_mem.v" to
1) Remove the unscrambling code
2) Modify the Hub Memory to only use RAM, and that the top 4KB of RAM is remapped to $F000..$FFFF also.
3) Provided four files "ROM_$F000-$FFFF_BYTE0.spin" to "ROM_$F000-$FFFF_BYTE3.spin" that are the Hex ROM files
RR20140816g_ROM_$F000-$FFFF_BYTE_x.zip
This enables you to build a P1 with 48KB of hub RAM $0000..$9FFF.
It is simple to change the size of the hub RAM for other builds.
ROM $F000..$FFFF is mapped to the top 4KB of hub RAM (eg 44-48KB $9000..$9FFF).
This means that the Interpreter, Booter and Runner code is available at the same P1 ROM addresses within $F000..$FFFF.
Enjoy
Comments
I'm going to try integrating this and my PortB changes and whatever else is floating around into one big mess! This will obviously lead me down a perilous path with no certain outcome but it will be a fun adventure!
This is the code I use in hub_ram.v with a parameter HUBSIZE declared in dig.v
parameter HUBSIZE = 48; // hub ram size in KB
I already started merging that code into my Cluso99 branch and I already added a parameter too, except I named it something else (parameter CLUSO99_HUBRAM_SIZE_LONGS = 8192 or something :-). I'll finish it this weekend.
I also have my own idea of implementing a backwards-compatible HUB shadow RAM which I'll present here later (I worked until 2AM last night to write the Verilog for it but it doesn't quite work yet). It will make it possible to have up to 64KB of hub RAM without changing the ROM memory map. Stay tuned!
===Jac