pg...@q40.de wrote: > Thanks for the nice essay. A few remarks: > > The "LOWRAM" mode of the Q40/Q60, where read access at $0 to $17FFF > is mapped to shadow RAM, was mostly used for ROM emulation in the > early days. The Q60 had to use two 16 bit EPROMs, because the design > rule was strictly without SMD components. No space saving solution > with Flash was possible at the time, since the 68060 needs memory > always 32 bit wide physically, unlike a 68020. The ROM emulation > saved me from having to UV-erase the EPROMs too often.
I thought it was a handy tool and could maybe utilized more to write-protect critical OS code, but so far it isn't and I'm not sure why. Perhaps for debugging reasons, although I'm pretty sure QMON actually makes use of sms_wbase to be able to write to low RAM. I guess there is no speed difference between this part of RAM and the rest? > On a hardware level, write operations in this mode do not actually > fail, and the mainboard does not generate a bus error exception. > They take place, but are ignored. Ah ok, I'll update that to be more precise. > The CPU does not get its initial instruction pointer from address > $8, as mentioned in the blog, but from $4. (The vector at $8 is > assigned to the bus error exception.) Of course, right. It's just that I've done so much 64-bit development the last week that the second entry for me was naturally at offset 8 :-) Damn. > Funny that an LRESPRed Q40/Q60 SMSQ/E copies itself to $28480, and > not to the more rounded $30000 like QPC. And I did not yet know, > that Q40/Q60 SMSQ/E copies itself twice, not just once. In this case it has to as the host OS might have loaded the file at a location where it would be overwritten by the main SMSQ loader (near RAMTOP). > I think I can guess the reason why SMSQ/E cleared the first 256 > bytes of legacy screen RAM at $00020000: Debugging! Yes, I think so, too. But no reason was given in the code :-) But you're right, it's probably s posh version of "make the LED blink so I know something is running" I usually have to do when programming by Atmels ;-) > After reading the essay, I will add a little new feature to the Q68 > bootloader. It will not just load "ROM" binaries at $0 (used for > QDOS and Minerva), but also "RAM" binaries to $30000. This shall > save SMSQ/E one self-copy ;) I think that makes sense, yes. Thinking about it, it might also make sense to start execution at offset $30004 in this case so LRESPR and "ROM boot" could easily be distinguished. QPC doesn't have this feature and actually crashes if you try LRESPR SMSQ/E, but as this is a new thing anyway... Cheers, Marcel _______________________________________________ QL-Users Mailing List