The one thing that bothers me with hot flashing, you would have to shadow the ROM, no? because if I am not mistaken, there are constant calls in and out of ROM. you would almost need to disable ALL interrupts and calls during the flash, which means video would go bye bye.
I would imagine if you write or re-arrange code while that block is running might cause a freeze/hang and poof done.
I don't think you'd have to shadow the ROM, but you would need to make sure not to access it, which would mean disabling all interrupts while updating the first 128K of Flash ROM where all the Mac toolbox code lives. I don't think that means you'd lose video, though. If I recall, video is a separate circuit that somehow timeshares with the 68000, and it's not interrupt driven. So the update tool would allocate a bunch of RAM, read the new image data from disk into the RAM buffer, disable interrupts, copy the data from the RAM buffer to Flash ROM, then re-enable interrupts.
I see there is 23 address lines, just trying to figure out how rob knew to grab lines 18 and 19, because they were not supplied to the stock rom sockets.
lol do i take 16 million and divide it by 23? and that is your space per line? Ah never mind i'll leave it to the pro's.
There's a thread about it at mac68k.info with some more of the details. Rob knew to grab A18 and A19 because they are the next two higher address lines from the ones that are already wired to the stock ROM sockets.
All the address lines taken together create a binary number, which is the memory address of whatever the CPU is accessing. The 68000 has 24 address lines*, which means there are 2 to the 24th power different possible binary numbers, or 16777216. That's the total number of bytes of memory the 68000 can possibly access. This address space is divided between RAM, ROM, chips like the IWM, SCC, and VIA, as well as some unused sections. There are other chips on the motherboard whose job is to figure out which chip should be activated, depending on what address the CPU has on the address lines. The beauty of Rob's ROM adapter idea is that these chips are already set up to activate the ROM for any memory access to addresses in the range 400000 to 4FFFFF (hex), even though the stock ROM only goes from 400000 to 41FFFF. So you can just drop in bigger ROM chips with a physical 32-to-28 pin adapter, and then it all just works. You couldn't necessarily do the same by trying to drop more memory into other unused regions in the address space.
400000 hex is 010000000000000000000000 binary. 4FFFFF is 010011111111111111111111 binary. The first 4 bits (A23-A20, the 0100 part) go to the address decoder - those chips on the motherboard I mentioned that figure out what to activate. That leaves the 20 lower bits that are actually connected to the new 1MB ROM socket: these are A19 through A0.
* actually the 68000 has 23 address lines numbered A23 to A1. There's no A0, but there are two other signals for "upper and lower data strobe", and the effect is basically the same.
Sorry for the long boring digression, please return to your normally scheduled Mac activities now.