0 Members and 1 Guest are viewing this topic.
HL is the sprite dataSomehow get A to be the sprite height and BC to be the sprite widthDE must point to the top-left pixel of where the sprite will go.(Put the loop label here) push bc ; Save the sprite width for later on push de ; Save the current pixel for later on ldir ; Does "ld (de),(hl) \ inc hl \ inc de \ dec bc" until BC=0 (so effectively it copies BC bytes from (HL) to (DE) pop de ; Grab the far left pixel of the current row ld bc,320 ex de,hl ; Swap HL and DE temporarily so we can add a number into DE add hl,bc ; Add 320 to the screen pixel pointer (normally DE, but we swapped it with HL) to advance to the next row on the screen ex de,hl ; Swap them back to normal pop bc ; Retrieve the sprite width again dec a jr nz,LoopLabel ; "dec a \ jr nz" is basically DJNZ but using the A register instead of B.nolist#include "includes\ti84pce.inc".list .org userMem-2ProgramStart: .db tExtTok,tAsm84CeCmp;...;---> 8bpp picture ld a,lcdBpp8 ld (mpLcdCtrl),a ld hl,christmastree_paletteStart ; palette mem ld de,mpLcdPalette ld bc,christmastree_paletteEnd-christmastree_paletteStart ldir ld hl,christmastree_sprite call drawSprite8bpp;... ld a,lcdBpp16 ld (mpLcdCtrl),a ret#include "christmastree.bin"
Good luck but I can't really help :/ I have no experience with ASM, sorry ._.
Page created in 0.381 seconds with 40 queries.