On 5/13/2021 at 3:17 PM, Ed Minchau said:
If people are intent on adding their own ROM to the board, then an extra socket and a few jumpers could be used to address that ROM separately from the one on board. It's probably way too late to add that to the X16, but maybe a breakout with the address, data, and control lines is possible? Then a ROM or multiple can be on a daughter board and only a few jumpers need to be set on the main board. It would act like a cartridge port.
If they have a 512K Flash ROM, which is 32 ROM segments, and there clearly isn't going to be 32 segments worth of essential system code included, it is hard to see why adding ANOTHER ROM to populate would attract more attention than populating the Flash ROM that is already there.
______________________
On 5/13/2021 at 5:44 PM, Scott Robison said:
A robust pair of "KERNAL" functions. One in the formal kernal that allows writing to any bank other than the kernal itself. Another that allows overwriting the kernal, probably in another bank I would imagine to avoid the problem of the kernal changing in the middle of the update.
You have pretty much hit the underlying point for the argument that a Kernel upgrade ... or any core system ROM bank upgrade ... should NOT be done by a ROM routine, but instead should be a program loaded into low RAM that contains the writing routines AND the information intended for the target Bank. A Kernel routine for writing a bank could indeed be designed to ONLY accept ROM Bank targets that do NOT contain the core CX16 functionality: the Kernel, the SD card manager, Boot BASIC, the GEOS Kernel, the Assembler Environment and the Menu system.
While over-writing the base platform cannot be "forbidden" if there is a jumper setting that enables writing the Flash ROM, it should be very much an activity where "this is not recommended: you are on your own if you do this." Part of what allowed these 8bit system to be pushed to the limits of the platform was the stability of the target for programming.
Given an ability to have an autostart statement stored in non-volatile RAM in the RTC, setting up the system to autostart into USING an ENTIRELY DIFFERENT set-up ALL in "User ROM Banks" ought to be quite easy, so there shouldn't be any urgent reason to have to overwrite the standard default system banks.