|
Post by mirkosoft on Jun 3, 2019 23:34:11 GMT
Hi!
Longer time ago I'm lacking some Kernal and Basic mods which I had in my older C128 directly burned into ROM. I have these ROMs also modified later in binary files and use them in emulators.
I know that title Q is bit naive, but really want to have not touched my new DCR. We all know that MMU allows to use and hide all. But: 1. how to override when is called Kernal/Basic routine from modified copy in RAM and in call it switches to bank where is visible ROM part, but really it needs modified part copied into RAM? 2. or even more stupid Q: is possible to take computer to see modified RAM copies instead untouched ROM originals?
Thank you for patience. Miro
|
|
|
Post by bjonte on Jun 7, 2019 8:49:18 GMT
I think it is difficult to do. The ROM has to be patched in RAM to avoid turning on ROM again. This could be a few places or a lot of them. Also, a lot of RAM will be occupied by ROM code so there will be a lot less free memory. I don’t know if BASIC uses the top or bottom memory for variable storage. If it starts at the top it will have to be relocated and that needs additional patches.
|
|
|
Post by mirkosoft on Jun 7, 2019 16:45:26 GMT
Ok, of course I know that RAM limitation...
Miro
|
|
|
Post by bjonte on Jun 7, 2019 16:55:30 GMT
I checked the variable storage method. It’s the same as C64 where BASIC strings are stored from top to bottom in memory so that needs to be patched, but it could be as easy as changing a single address somewhere.
|
|
|
Post by oziphantom on Jun 15, 2019 11:46:04 GMT
the problem with doing it in RAM is you will probably need it in both banks eating 4000-ffff and 14000-1fff .I can't see anyway in which this would be practical. The Kernal always directly sets FFF0 so you would need to patch every location, BASIC however does expect the Pre config registers to be "just so", so you could modify them to use your RAM code. The smarter choice would be to use EXTERNAL ROM and then patch the code to switch to external ROM rather than KERNAL/BASIC internally. This would allow you to put everything on a cart and not touch the insides. Since the External ROM has a higher boot precedence you could easily use it to take over.
|
|