Welcome, Fenntil! You'll find there are quite a few other forum members who have an interest in music.
Fenntil wrote:
That would require the content of the ROM to be somehow "translated" after assembly; wouldn't that make the addressing more complicated?
Yes, you've hit on the answer right there -- the contents of the ROM are indeed translated after assembly. So, there
is an added step -- but not a very complicated one. Then later at run-time the whole thing just works.
The ROM itself doesn't "know" conventions such as "pin [whatever] is supposed to be Address Input [whatever]." Address lines can be swapped with other address lines. The assignments are actually arbitrary, and can be shuffled at will -- provided the ROM contents are translated in advance with a complementary shuffle. In a similar way, data lines can be swapped with other data lines. Any combination of these tricks is acceptable as long as you arrange things so that normal results are what end up reaching the microprocessor!
The potential advantage has to do with the physical positions of the ROM pins, which become important when you're laying out the traces on a circuit board. Sometimes the task can become significantly easier if you take liberties with the ROM pinout.
Addendum: swapping
RAM pins is easier, because that extra step (the translation) takes care of itself. The data gets written in-system, meaning the data automatically gets scrambled when it's written, and the exactly opposite scramble occurs when it's read back.
cheers,
Jeff
_________________
In 1988 my 65C02 got six new registers and 44 new full-speed instructions!
https://laughtonelectronics.com/Arcana/ ... mmary.html