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

Reply via email to