A83: Re: Re: LDIR timing / saferam1


[Prev][Next][Index][Thread]

A83: Re: Re: LDIR timing / saferam1




I'm using the saferam1 location to store the contents of the graph buf
(using it as double buffer to reduce flickering). I use this routine (which
eventually screws the calc):

Graphbackup:
ld hl,plotsscreen
ld de,saferam1
ld bc,768
ldir
ret

Restorebackup:
ld de,plotsscreen
ld hl,saferam1
ld bc,768
ldir
ret

The restore code is executed more often than the bacup itself. This is
because sometime only certain sprites need to be redrawn. I would also like
to know if there is a substitute for Iline which is much faster...

Thanks in advance (and thx for the LDIR timing),
Frank Schoep
    -----Oorspronkelijk bericht-----
    Van: Dan Englender <dan@calc.org>
    Aan: assembly-83@lists.ticalc.org <assembly-83@lists.ticalc.org>
    Datum: dinsdag 22 augustus 2000 18:17
    Onderwerp: A83: Re: LDIR timing / saferam1


    The correct timing for LDIR is 21*BC+16.  Keep in mind that in terms of
the actual time it takes to go through the complete command, it may be
longer if interrupts are enabled.  Interrupts can occur i the middle of an
LDIR command.

    Saferam1 (aka savesscreen) is a 768 byte area that you can use for
whatever you want.  If it's crashing due to you loading there, it means
you're probably loading past the boundaries of the memory block.  TIOS does
not care what sort of data you leave there.  Also keep in mind that the
address is not the same on the 83 and 83 Plus, so if you're trying to do
something on the 83 Plus, don't load directly to 8265h, load to the
SavesScreen equate.

    Hope this helps,
    -Dan Englender
        ----- Original Message -----
        From: Frank Schoep
        To: assembly-83@lists.ticalc.org
        Sent: Tuesday, August 22, 2000 11:37 AM
        Subject: A83: LDIR timing / saferam1


        My problems with the AND sprite routine have been solved. I've now
got a fully functional AND XOR routine that is very fast. I still want to
know what the correct timing is for LDIR (1+21*[bc] ?). Also, when I write
768 bytes of data to the saferam1 location (8265h), my program scews up
sometimes when I quit it. This only happens when I write/read a lot of times
to this location. Should the APD(?) ram at that position be rewritten by
0's, or is the 'safe ram' not as safe as stated?

        Thanks in advance,
        Frank Schoep




Follow-Ups: