-
Notifications
You must be signed in to change notification settings - Fork 19
Description
Since we are getting to the limit of available ROM space we need to do something. I see that we have at least two different interests:
- The possibility to customize the ROMs with various modern features
- To be compatible with the original C64 ROMs
To be able to cater to both of these and to be able to fit as much as possible my suggestion is to do the following (and I think the first would take us the furthest):
1. Make BASIC optional
To be able to cater for both of these I think we should make the BASIC optional. I mean the parts of the BASIC that are needed to make BASIC programs, not the commands needed to operate the machine, like for example LOADand RUN. We could have more fine grained options in the future with including or excluding specific basic functions (for example excluding trigonometric functions), but I think splitting it in two pieces would be enough for now.
2. Try to fit the BASIC functions
In many cases we know how much space a BASIC or KERNAL function takes. We could document this and try to optimize the functions so that they fit. If we don't do this it might even become impossible to fit everything that the original ROMs contains.
3. Make fixed addresses optional
This might be harder to do, but it would be good to allow functions to not have to be put at a certain address. This will reduce compatibility, but more might fit, and it might not be needed for some machines. This would also be useful if we also want to support machines like the VIC-20, the Apple II etc. For this even different fixed addresses could be necessary for the same function. One solution to this would be to put the fixed address inside the file in the header and tie it to a certain configuration instead of having it in the file name.
Any comments or further ideas would be much appreciated!