> Just use the Fast 16-bit Loop I use in my routines instead of this one and
> the VRAM loading will go a lot faster. It is a bit complicated to understand
> (I wrote an article in Dutch about it), but it does work and is as fast as a
> 'normal' 8-bit OTIR.
Probably even faster is replacing the otir in your routine by 256
outi's. A tiny bit slower, but less memory consuming it putting 64
outi's after each other and calling the loop 256 times for outputting
the 16384 bytes. So something like:
xor a
ld c,098h
ld hl,address
loop: outi
.
.
.
outi
dec a
jp nz,loop
With a small modification it also works for any number of bytes
smaller than 16384. Make sure "loop" start at a fixed memory address
0xx00h and put the number of bytes in [DE].
ld a,e
and %0011 1111
ld (jump+1),a
ld a,d
rl e
rla
rl e
rla
jump: jp loop
When "loop" doesn't start at a fixed memory address then add the
following modification.
ld a,e
and %0011 1111
add a,loop mod 256
ld (jump+1),a
ld a,loop \ 256
adc a,0
ld (jump+2),a
Oh well, since it's friday afternoon I'll add as a bonus a nice macro
for adding [A] to [HL]. =)
add_hl_a: macro
add a,l
ld l,a
jr nc,$+3
inc h
endm
Bye, /\/\ark
****
MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)
****