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
>> >
>
>