home *** CD-ROM | disk | FTP | other *** search
- ;────────────────────────────────────────────────────────────────────────────
- ; SpriteClip v1.2 by CrASH_Man 02/14/98
- ;────────────────────────────────────────────────────────────────────────────
- ;
- ; This is some example source for CrASH v1.3 to test the sprite clipping
- ; routines inside SPRCLIP.ASM.
- ;
- ; Will not run if an interrupt is loaded.
- ;
- ; The arrow keys will move the sprite.
- ; 2nd slows down the sprite.
- ; Mode quits.
- ;
- ; by CrASH_Man
-
- DefaultSpriteHeight = 8
-
- .INCLUDE CrASH82.INC
- .DB "Sprite Test v1.2", 0
-
- LD A, (INT_STATE)
- OR A \ RET NZ
-
- ; Clear the screen
- LD HL, APD_BUF ; Fill APD_BUF
- LD DE, APD_BUF+1
- LD BC, 768
- LD (HL), 0
- LDIR
-
- ; Make the screen
- LD A, %11111111
- LD HL, APD_BUF
- LD (HL), A
- INC HL
- LD (HL), A
- INC HL
- LD (HL), A
- LD HL, APD_BUF+11
- LD (HL), A
- DEC HL
- LD (HL), A
- DEC HL
- LD (HL), A
- LD HL, APD_BUF
- LD DE, APD_BUF+12
- LD BC, 12*19 ; 19 rows
- LDIR
- LD HL, APD_BUF
- LD DE, APD_BUF+528
- LD BC, 12*20 ; 20 rows
- LDIR
-
- LD BC, $2C1C ; Center Sprite (44, 28)
- KeyLoop:
- PUSH BC ; Save coordinates for sprite
- LD HL, APD_BUF \ LD DE, GRAPH_MEM \ LD BC, 768 \ LDIR
- POP BC
-
- LD HL, Spr ; Point to sprite
- CALL PutSprClp
- CALL CR_GRBCopy
-
- LD A, $FF \ OUT ($01), A ; Reset Port
- LD A, $BF \ OUT ($01), A ; Mask out MODE and 2nd
- IN A, ($01)
- BIT 6, A \ RET Z ; If MODE pressed, done
- BIT 5, A \ CALL Z, Delay ; If 2nd pressed, delay
-
- LD A, $FF \ OUT ($01), A ; Reset Port
- LD A, $FE \ OUT ($01), A ; Mask out Arrows
- IN A, ($01)
- BIT 0, A \ CALL Z, Down
- BIT 3, A \ CALL Z, Up
- Horiz:
- BIT 1, A \ CALL Z, Left
- BIT 2, A \ CALL Z, Right
-
- JR KeyLoop
-
- Delay:
- LD DE, $3000
- _DelLoop:
- DEC DE
- LD A, D
- OR E
- JR NZ, _DelLoop
- RET
- Up:
- DEC C
- RET
- Down:
- INC C
- RET
- Left:
- DEC B
- RET
- Right:
- INC B
- RET
-
- .INCLUDE SPRCLIP.ASM
-
- Spr:
- .DB %11100111 ; AND mask
- .DB %11000011
- .DB %10000001
- .DB %00011000
- .DB %00011000
- .DB %10000001
- .DB %11000011
- .DB %11100111
-
- .DB %00011000 ; XOR mask
- .DB %00100100
- .DB %01000010
- .DB %10011001
- .DB %10011001
- .DB %01000010
- .DB %00100100
- .DB %00011000
-