Marcel Kilgus wrote: > For anybody interested: I've just written a short essay about the low > level boot process of SMSQ/E for anybody daring enough to try to > understand it: > > http://www.kilgus.net/2016/03/17/smsqe-boot-sequence/ > > Cheers, Marcel
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. 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. 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.) 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. I think I can guess the reason why SMSQ/E cleared the first 256 bytes of legacy screen RAM at $00020000: Debugging! At very early stage of firmware development, one usually has no working serial driver, nor character output on the screen. The easiest thing to generate some debug output is to "poke" to the screen, when the code reaches certain locations. At least that's how I worked myself ;-) Of course one needs to clear that area first, because reset or power-off does not reset video memory contents. 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 ;) Peter _______________________________________________ QL-Users Mailing List