Programmed Bank Switching #176
Replies: 4 comments 4 replies
|
Do you have control over the synthesizer code or must you use existing code
?
If you can craft the instructions used during the changeover you can
provide extra time for processing : for instance, at the trigger address
you could arrange a RET to be fetched. The processor will then do two RAM
read cycles to pop the stack before fetching more code (from the address
that was stacked, which can be arranged to be a safe restart).
…On Sat, Mar 14, 2026 at 4:49 PM Ralph Sommerer ***@***.***> wrote:
I am looking for a way to switch between (for now two) different ROMs at
runtime, e.g. by reading a certain (possibly unused) address. Is OneROM's
internal processing fast enough to accommodate an additional address check?
Judging from a cursory reading of the techical details, it appears that the
timing is rather tight. The target system is a 8085-based synthesizer.
—
Reply to this email directly, view it on GitHub
<#176>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAFFOGPM4GH27DPKQBCZBDT4QWESFAVCNFSM6AAAAACWR7JYCCVHI2DSMVQWIX3LMV43ERDJONRXK43TNFXW4OZZGY2DKNBTGM>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
|
All the One ROM Fires (the red, RP2350 based ones) now use a completely autonomous PIO&DMA chain to serve the ROM. This leaves both cores free for other things. I am in the process of adding plugin support so that users can write their own code that will run on one or both of these unused cores during runtime, to perform custom operations. I depends a little on the specific ROM type you're emulating here, but the easiest way to switch between two ROMs programmatically like this is to
Actually, there's another approach I recently thought of. Have the two ROM images at different locations in RAM, and then have the PIOs change the base address they are giving DMA to look up bytes from. The most tricky part of what you want to do is monitor the address lines for a trigger sequence. I've been thinking about this off an on for over 6 months now but haven't got around to prototyping it. It might require some additional base firmware feature, or a modification of the PIO/DMA algorithms. There's lots of other uses for this type of function (it could essentially become a general communications transport layer between host CPU and One ROM's MCU), so I do plan to get to this. |
|
this is very relevant to what i am planning on doing with oneroms in the future (my first jlcpcb order of 28pin oneroms is on its way.) the first thing i want to try is swapping whole whole rom images, using two buttons to change between a range of eprom images, or maybe even an encoder. but further down the road i would also be interested in swapping only certain ranges of a rom image. |
|
Hello, |
Uh oh!
There was an error while loading. Please reload this page.
I am looking for a way to switch between (for now two) different ROMs at runtime, e.g. by reading a certain (possibly unused) address. Is OneROM's internal processing fast enough to accommodate an additional address check? Judging from a cursory reading of the techical details, it appears that the timing is rather tight. The target system is a 8085-based synthesizer.
All reactions