> } This difference is because you've just RESPRed another 1024 bytes of
> } memory (subject to system rounding/overheads) in line 150!
> }
> 
> Why do you RESPR ?
> Why not ALCHP ...

Prob cos prog is old (published Oct '86) and most ppl (...well I) didn't
have ALCHP then.

> My current guess would be that 'start' is a float number and
> that the 4.07296E6 is missing precision, hence a bad address.

The QL uses a 31+sign bit Mantissa which means that, as integers can
ALWAYS be specified exactly in any base (with enough digits), the QL
will hold integer values accurately to 2^31-1 or 2.17483647E9 =
217,483,647 (tested on my Classic JM) - it's just the display routines
that only convert this to 7 significant figures.

Checking through my copies of QL World, I've finally found a description
of the TRA command (Aug '87).  Please accept my apologies for incorrect
suggestions.  Assuming that the default of an arg is zero if missing,
try:

                TRA start
instead of
                TRA start,0

Or, assuming you haven't changed the message table, try: TRA start,1

If both these fail, I can only assume it's an interpreter bug and it's
got a paramter count check wrong (not unknown...CLS & CURSOR have/had
this problem), or it can't handle large numbers properly (INT fails/ed
on 2^31-2).  Try running the program 'til it crashes and then enter
these TRAs in immediate mode ('TRA start', etc). Also, check the whole
value of start: eg:

        PRINT start
        4.07296E6
        PRINT start-4.0729E6
        60

As a final warning (QLW Jun '88; though this may have been corrected by
SMSQ/E stage), the Sinclair ROMs only used the TRA table AFTER adjusting
parity.  So if not using no-parity, it may cause odd effects/errors on
output (assuming you get it to work).

Robert

Reply via email to