- FasterCopy (FastCopy optimised for recent TIs)
- 01 Jan 2016 03:44:50 pm
- Last edited by grosged on 06 Jan 2016 01:34:07 pm; edited 7 times in total
Hello there!
Perhaps this is already known...Anyway I post my work
Well...While studying Joe Wingbermuehle's FastCopy
(see http://wikiti.brandonw.net/index.php?title=Z80_Routines:Graphic:Fastcopy#IonFastCopy )
which, according to my counting, takes 51588 T-States,
I noticed that some of my TI's could manage "faster" fastcopy :
e.g. my TI-84 Pocket.fr & TI-82 Plus just don't need to wait a while between OUTs
Also my old TI-83 Plus (1999) needs no more than 45 T-States between out($11),a
So, I wrote a kind of faster fastcopy dedicated to those er, "not so old" TI's :
Code:
My version takes 13198 T-States (nearly four times faster)
Perhaps this is already known...Anyway I post my work
Well...While studying Joe Wingbermuehle's FastCopy
(see http://wikiti.brandonw.net/index.php?title=Z80_Routines:Graphic:Fastcopy#IonFastCopy )
which, according to my counting, takes 51588 T-States,
I noticed that some of my TI's could manage "faster" fastcopy :
e.g. my TI-84 Pocket.fr & TI-82 Plus just don't need to wait a while between OUTs
Also my old TI-83 Plus (1999) needs no more than 45 T-States between out($11),a
So, I wrote a kind of faster fastcopy dedicated to those er, "not so old" TI's :
Code:
di ; (4) forbid interruptions
ld hl,plotSScreen+767 ; (10) graphic buffer 's last byte (=bottom right corner)
ld c,$11 ; (7) lcd data port
ld a,6 ; (7) one column to the left, after each "OUT"
out($10),a ; (11)
ld a,$2b ; (7) column #12
out($10),a ; (11)
ld a,$bf ; (7) bottom row
line:
out ($10),a ; (11) modify row
outd ; (15) Equal out(c),(hl) / dec hl / dec b
outd ; (15) during
outd ; (15) twelve
outd ; (15) times
outd ; (15)
outd ; (15)
outd ; (15)
outd ; (15)
outd ; (15)
outd ; (15)
outd ; (15)
outd ; (15)
dec a ; (4) One row up
jp m,line ; (10) not yet under $80 ? so we loop
ei ; (4) Allow interruptions.
ret ; (10) The End.
My version takes 13198 T-States (nearly four times faster)