Re: A86: Super fast GridPutSprite
[Prev][Next][Index][Thread]
Re: A86: Super fast GridPutSprite
Yes. Alternatively, you could get the size of the string from the vat and
use that, but why bother if you know the size beforehand?
-----Original Message-----
From: Timothy Buckingham <zoneti@home.com>
To: assembly-86@lists.ticalc.org <assembly-86@lists.ticalc.org>
Date: Tuesday, November 03, 1998 7:11 PM
Subject: Re: A86: Super fast GridPutSprite
>
>Hmmmm...My maps are only 256 bytes...How would you change the routine fir
that?
>
>would you change ld hl,4096 to ld hl,256 ?
>
>-InFuZeD
>
>David Phillips wrote:
>
>> Yes, I mean that one row of 8 pixels fits evenly into one byte, without
>> shifting. Thus, there is a "grid" of 16x8 sprites that fit on the screen
>> without shifting or overlapping.
>>
>> The code below loads a 4k (exactly, 4096 bytes) into Ram page 1, starting
at
>> address $800b.
>>
>> TempRam = $800b ; $800b to $bfea = 16352 bytes (thanks Dux!)
>> Map = TempRam ; [4096]
>>
>> loaddata:
>> ld hl,mapvar-1 ; point to var name (first byte is irrelevant)
>> rst 20h ; load name into OP1
>> rst 10h ; call _FINDSYM
>> ret c ; if it doesn't exist, return
>> ld a,b ; copy high byte
>> ex de,hl ; swap low bytes
>> inc hl ; skip length word
>> inc hl ; it is a word, not a byte...
>> call _SET_ABS_SRC_ADDR ; set the source address as the var
>> ld a,1 ; copy to ram page 1
>> ld hl,Map-$8000 ; start at $8000 on page 1 (page 1 is at $10000 ABS)
>> call _SET_ABS_DEST_ADDR ; set the destination as ram page 1
>> xor a ; clear high byte
>> ld hl,4096 ; size of string var
>> call _SET_MM_NUM_BYTES ; set the number of bytes to copy
>> call _mm_ldir ; copy the map
>> call _RAM_PAGE_1 ; make sure ram page 1 is still loaded
>> jr dataloaded
>> mapvar:
>> .db 8,"cnc86map"
>> dataloaded:
>>
>> -----Original Message-----
>> From: InFuZeD <zoneti@home.com>
>> To: assembly-86@lists.ticalc.org <assembly-86@lists.ticalc.org>
>> Date: Tuesday, November 03, 1998 10:28 AM
>> Subject: Re: A86: Super fast GridPutSprite
>>
>> >
>> >
>> >I needed to know how to address the data in RAM page 1 to load it.
>> >Second, By saying the sprite fits in 1 byte, do you mean that It is one
>> >row of a sprite? Just wondering.
>> >
>> >-InFuZeD
>> >
>
>