Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ti83pce.inc"
- .assume ADL=1
- .db tExtTok, tAsm84CeCmp
- .org userMem
- ; code starts here
- call _ClrScrnFull
- ld hl, 10
- border_aff_loop:
- dec l
- push hl
- ld (curRow), hl
- ld hl, $08
- ld (curCol), hl
- ld hl, timesign
- call _PutS
- pop hl
- ld a, $0
- cp a, l
- jp nz, border_aff_loop
- call new_e1p
- ld a, (e1posy) \ ld (curRow), a
- ld a, (e1posx) \ ld (curCol), a
- ld hl, exclamationsign
- call _PutS
- call new_e2p
- ld a, (e2posy) \ ld (curRow), a
- ld a, (e2posx) \ ld (curCol), a
- ld hl, exclamationsign
- call _PutS
- ld a, (xpos)
- ld (curCol), a
- ld a, $9
- ld (curRow), a
- ld hl, Xsign
- call _PutS
- main_loop_start:
- ld a, $6
- call _DelayTenTimesAms
- di
- ld hl, mpKeyRange
- ld (hl), 2
- xor a, a
- scan_wait:
- cp a, (hl)
- jr z, scan_wait
- jp z, no_key
- ld a, (kbdG6)
- cp a, kbdClear
- jp z, main_loop_end
- ld a, (kbdG7)
- cp a, kbdLeft
- call z, moveLeft
- ld a, (kbdG7)
- cp a, kbdRight
- call z, moveRight
- no_key:
- ei
- ld a, $0 \ ld (curRow), a
- ld a, $9 \ ld (curCol), a
- ld hl, (score)
- call _DispHL
- ld a, (e1posy) \ ld (curRow), a
- ld a, (e1posx) \ ld (curCol), a
- ld hl, whitespace
- call _PutS
- ld a, (e1posy)
- inc a
- ld d, a
- ld b, a
- ld a, $9
- cp a, b
- jp nz, no_coll1
- ld a, (e1posx)
- ld b, a
- ld a, (xpos)
- cp a, b
- jp nz, no_coll1
- jp main_loop_end
- no_coll1:
- ld a, d
- ld (e1posy), a \ ld (curRow), a
- ld b, a
- ld a, $A
- cp a, b
- jp nz, continue_e1
- call new_e1p
- ld hl, (score)
- inc hl
- ld (score), hl
- ld a, (e1posy) \ ld (curRow), a
- ld a, (e1posx) \ ld (curCol), a
- ld hl, exclamationsign
- call _PutS
- jp noc_e1
- continue_e1:
- ld a, (e1posx) \ ld (curCol), a
- ld hl, exclamationsign
- call _PutS
- noc_e1:
- ld a, (e2posy) \ ld (curRow), a
- ld a, (e2posx) \ ld (curCol), a
- ld hl, whitespace
- call _PutS
- ld a, (e2posy)
- inc a
- ld d, a
- ld b, a
- ld a, $9
- cp a, b
- jp nz, no_coll2
- ld a, (e2posx)
- ld b, a
- ld a, (xpos)
- cp a, b
- jp nz, no_coll2
- jp main_loop_end
- no_coll2:
- ld a, d
- ld (e2posy), a \ ld (curRow), a
- ld b, a
- ld a, $A
- cp a, b
- jp nz, continue_e2
- call new_e2p
- ld hl, (score)
- inc hl
- ld (score), hl
- ld a, (e2posy) \ ld (curRow), a
- ld a, (e2posx) \ ld (curCol), a
- ld hl, exclamationsign
- call _PutS
- jp noc_e2
- continue_e2:
- ld a, (e2posx) \ ld (curCol), a
- ld hl, exclamationsign
- call _PutS
- noc_e2:
- jp main_loop_start
- ; ---
- main_loop_end:
- ei
- ; ---
- call _ClrScrnFull
- ld a, $0 \ ld (curCol), a \ ld (curRow), a
- ld hl, (score)
- call _DispHL
- call _NewLine
- ret
- moveLeft:
- ld a, $9 \ ld (curRow), a
- ld a, (xpos) \ ld (curCol), a
- ld hl, whitespace
- call _PutS
- ld a, (xpos)
- cp a, 0
- jp z, noincl
- dec a
- noincl:
- ld (xpos), a \ ld (curCol), a
- ld a, $9 \ ld (curRow), a
- ld hl, Xsign
- call _PutS
- ret
- moveRight:
- ld a, $9 \ ld (curRow), a
- ld a, (xpos) \ ld (curCol), a
- ld hl, whitespace
- call _PutS
- ld a, (xpos)
- cp a, 7
- jp z, noincr
- inc a
- noincr:
- ld (xpos), a \ ld (curCol), a
- ld a, $9 \ ld (curRow), a
- ld hl, Xsign
- call _PutS
- ret
- new_e1p:
- call randpos
- ld (e1posy), a
- ld a, b
- ld (e1posx), a
- ret
- ; ---
- new_e2p:
- call randpos
- ld (e2posy), a
- ld a, b
- ld (e2posx), a
- ret
- ; ---
- randpos:
- call _Random
- ld hl, 2
- call _setxxxxop2
- call _FPMult
- call _convop1
- push de
- call _Random
- ld hl, 8
- call _setxxxxop2
- call _FPMult
- call _convop1
- pop hl
- ld a, l
- ld b, e
- ret
- RestoreKeyboard:
- ld hl, mpKeyRange
- xor a
- ld (hl), a
- inc l
- ld (hl), 15
- inc l
- xor a
- ld (hl), a
- inc l
- ld (hl), 15
- inc l
- ld a, 8
- ld (hl), a
- inc l
- ld (hl), a
- ret
- whitespace:
- .db " ", 0
- timesign:
- .db "*", 0
- Xsign:
- .db "X", 0
- exclamationsign:
- .db "!", 0
- ; ALL VARS
- kyleft:
- .db 00h
- kyright:
- .db 00h
- xpos:
- .db 03h
- e1posy:
- .db 00h
- e1posx:
- .db 00h
- e2posy:
- .db 00h
- e2posx:
- .db 00h
- score:
- .db 0000h
Advertisement
Add Comment
Please, Sign In to add comment