hexsane
Experienced Member
Anyone know if this has been reverse engineered and is floating around somewhere? I need to see the feasibility of doing a few modifications.
-Matt
-Matt
One thing that may aid your search: the Commodore crowd like to spell it "kernal" (with an "a"). Google will try to "correct" your spelling, but you will get some different results.
Are you aiming to patch the original ROM? It may be easier (and more elegant) to put your modifications into a separate expansion chip.
What does reverse engineered mean in this context? A commented assembly listing of ROM code?
Yes. But a non-commented listing would do. Basically I'm trying to save myself a few steps if possible.
-Matt
You probably know this, but many kernal functions go through a vector in RAM which can easily be redirected, so for those functions it's not necessary to change the kernal itself in order to jump out and back in; there are memory maps out there which may help you.For compatibility reasons (kernAl calls from ML) I will have to jump out of the kernel and run my own code (if needed) then return.
BASIC extensions I can do. But any direct ML calls will kill compatibility and I'd like to be as compatible as possible.
-Matt
There is a Perl tool called recomment which I highly recommend. You take a binary dump and it outputs assembly source code that you can massage to a form you easily can re-assemble again using ... <snip>
By the way, which PET Kernal version are you working with? I think there are a couple, so you should determine that first.
You probably know this, but many kernal functions go through a vector in RAM which can easily be redirected, so for those functions it's not necessary to change the kernal itself in order to jump out and back in; there are memory maps out there which may help you.
I've found a disassembler that can take a memory map and raw bin and do that same. Haven't played with that yet.
I know I have a BASIC 4.0 4032 - but not sure about the kernel. If its a 40 column kernel from a BASIC 4.0 machine it should still work though, right?
At some point I'll need all the newest kernels but I can only work with what I have.
-Matt