On Tue, Mar 28, 2017 at 5:21 PM eddie edwards <[email protected]> wrote:
> Thanks for the the info John. So if I were to take a machine program (.co > file) and placed it on a ROM I would have to change the CALL addresses to > match the memory locations of a ROM. > Yes, at least that, because 8085 code is not position independent code (PIC) But to make a CO into an option rom there's a lot of other stuff to do too. You need to disassemble it You need to include the "option rom boilerplate" code. Basically this code implements all of the interrupt service routines. You need to make all calls to the BASIC ROM "far calls" that jump through a special piece of code in RAM, IIRC. This is because you're running from two different ROMs but when you switch the ROM you actually have to be running from RAM. Otherwise when the change happens the code would jump out from under you. But the RAM doesn't move. You need to make sure that all variables are not within the executing program because most of your program will be in nonmodifiable ROM. Reassemble and debug :-) All of this stuff is covered in "Secrets of the ROM" by Mo Budlong. Also Steve Adolph and I worked on some improvements to the option rom boilerplate code. -- John.
