On Wed, Mar 21, 2001 at 08:58:41AM -0800, Timothy Swenson wrote:
> Can you explain a little more on what the glitch is with SMSQ/E 2.98 on the Q40
> and exactly what the patch fixes?

it is this nice move.l instruction, anyone who has ever programmed m68k 
assembler will have similar experiences. What TT wanted it to do is load
the value 0xc000 into d0 and subsequently tc (translation control 
register), instead it loads random garbage located at address 0xc000.

518:    2039 0000 c000  movel 0xc000,%d0 ; 0xc000 = enable MMU, 8K pages
51e:    4e7b 0003       movec %d0,%tc

The 68040 then reacts in interesting ways because several unimplemented
bits are set.

Btw the disassembly is generated by binutils,
   objdump --target=binary  --architecture=m68k \
            --show-raw-insn --disassemble-all -S 
thus the unusual syntax.

> Also, will this fix be in a future release of SMSQ/E?

sure, if it actually fixes something. What it does now is enable code
that was effectively disabled previously and may contain more bugs.
There will be more changes, partly to support more memory (for now 
only physical but who knows) and also to cleanup the code dealing with 
pagedescriptors. It won't break by itself but makes use of some 68040 
instructions dangerous and sooner or later programs using this 
instructions will appear.

Bye
Richard

Reply via email to