ROM switching:

Using, learning, programming and modding the Gigatron and anything related.
Forum rules
Be nice.
Post Reply
at67
Posts: 63
Joined: 14 May 2018, 08:29

ROM switching:

Post by at67 » 10 Jun 2018, 00:22

A thread for ROM switching, ROM cartridges, etc.

at67
Posts: 63
Joined: 14 May 2018, 08:29

Re: ROM switching:

Post by at67 » 10 Jun 2018, 00:25

A first attempt at a hardware ROM switcher:

https://youtu.be/gdF33IdJ85U

ROM Switcher.png
ROM Switcher.png (72.95 KiB) Viewed 510 times

at67
Posts: 63
Joined: 14 May 2018, 08:29

Re: ROM switching:

Post by at67 » 10 Jun 2018, 00:34

emulix wrote:
09 Jun 2018, 15:21
Would it be possible to add a software bank commutation ? Like writing at ROM 0x0 for bank 0, 0x1 for bank 1, 0x2 for bank 2 etc... ?

So a software like Enhanced Basic could use many ROM bank and switch when needed.
It wouldn't be difficult, you could re-purpose as many of the Blinkenlights as you needed and add those as inputs to the truth table. It would also require modification to the original ROM as the Blinkenlights state machine would need to be modified as well, (otherwise all hell would break loose when the LED's were activated).

One of the things I noticed about the ROM switcher is that you can switch ROM's in real time without having to perform a reset as long as the code being run is exactly the same in the ROM's when you switch. This makes sense of course, assuming setup and hold times are met, and metastability isn't introduced in the process of switching, as the program counter and instruction decoder have no idea or care which ROM the next instruction comes from. If instability is introduced because of a metastable window of opportunity, then you would have to get more complicated and probably halt the program counter during the switching process.

So if you have a set of duplicated code within the ROM's, (which you need to have for a realistic ROM banking system anyway), then you can make sure you always switch banks within that code and extend your ROM to theoretically any size that you want, (within the limits of Blinkenlights, when decoded gives 16 possible ROM outputs).

Post Reply