; Long Worms 1.0 is Coded by: Tim Hegyi (tim_hegyi@hotmail.com)
; Feel free to copy or change the source code... By pleas e-mail me if you do that.
; This is my first asm game.. wow!
#DEFINE EQU .equ
#include "ti83asm.inc"
#include "tokens.inc"
#DEFINE way 9327h
#DEFINE curco 8280h
#DEFINE curcoo 8285h ;you can delete this.. if you wan't to
#DEFINE xcoord 8270h
#DEFINE ycoord 8275h
.org $9327
prog_s:
call _clrlcdfull
call _runindicoff
;call _gfbufclr
ld hl,1
push hl
ld hl,32
ld (ycoord),hl
ld hl,48
ld (xcoord),hl
ld hl,1
ld (way),hl
call _homeup
ld hl,fp
call _puts
ld hl,17
ld (pencol),hl
ld hl,25
ld (penrow),hl
ld hl,codedby
call _vputs
ld hl,8
ld (pencol),hl
ld hl,35
ld (penrow),hl
ld hl,email
call _vputs
ld hl,31
ld (pencol),hl
ld hl,55
ld (penrow),hl
ld hl,pent
call _vputs
;call _newline
;ld a,(highscore)
;ld l,a
;ld h,0
;call _dispHL
call _getkey
call _clrlcdfull
ld b,0
ld c,54
ld d,96
ld e,54
ld h,1
call _iline
ld hl,1
ld (pencol),hl
ld hl,1
ld (penrow),hl
ld hl,tit
call _vputs
ld a,1
ld (curco),a
mainloop:
; loop so the worm dosen't go so fast.
; but the "loop" code can be smaler but i cuden't do that...
ml:
ld a,(curco)
inc a
ld (curco),a
sub 255
jp z,el
jp ml
el:
ld a,1
mll:
ld a,(curco)
inc a
ld (curco),a
sub 255
jp z,ell
jp mll
ell:
ld a,1
mlll:
ld a,(curco)
inc a
ld (curco),a
sub 255
jp z,elll
jp mlll
elll:
ld a,1
mllll:
ld a,(curco)
inc a
ld (curco),a
sub 255
jp z,ellll
jp mllll
ellll:
ld a,1
mlllll:
ld a,(curco)
inc a
ld (curco),a
sub 255
jp z,elllll
jp mlllll
elllll:
ld a,1
mllllll:
ld a,(curco)
inc a
ld (curco),a
sub 255
jp z,ellllll
jp mllllll
ellllll:
ld a,1
mlllllll:
ld a,(curco)
inc a
ld (curco),a
sub 255
jp z,elllllll
jp mlllllll
elllllll:
ld a,1
mllllllll:
ld a,(curco)
inc a
ld (curco),a
sub 255
jp z,ellllllll
jp mllllllll
ellllllll:
;get keys
ld a,0ffh
out (1),a
ld a,0feh
out (1),a
in a,(1)
cp 253
jp z,only_left
cp 251
jp z,only_right
cp 254
jp z,only_down
cp 247
jp z,only_up
ld a,0ffh
out (1),a
ld a,0fdh
out (1),a
in a,(1)
cp 191
jp z,Crash
back_gk:
ld a,(way)
sub 1
jp z,left
ld a,(way)
sub 2
jp z,up
ld a,(way)
sub 3
jp z,right
ld a,(way)
sub 4
jp z,down
bf_rk:
ld a,(xcoord)
ld b,a
ld a,(ycoord)
ld c,a
ld d,3
call _ipoint
sub 0
jp z,hh
jp Crash
hh:
ld a,(ycoord)
cp 0
jp z,crash
ld a,(xcoord)
cp 97
jp z,crash
ld a,(xcoord)
cp 0
jp z,crash
ld a,(xcoord)
ld b,a
ld a,(ycoord)
ld c,a
ld d,1
call _ipoint
pop hl
ld de,1
add hl,de
push hl
ld a,1
jp mainloop
Only_Up:
ld hl,4
ld (way),hl
jp back_gk
Only_Down:
ld hl,2
ld (way),hl
jp back_gk
Only_Left:
ld hl,1
ld (way),hl
jp back_gk
Only_Right:
ld hl,3
ld (way),hl
jp back_gk
up:
ld a,(ycoord)
dec a
ld (ycoord),a
jp bf_rk
down:
ld a,(ycoord)
inc a
ld (ycoord),a
jp bf_rk
left:
ld a,(xcoord)
dec a
ld (xcoord),a
jp bf_rk
right:
ld a,(xcoord)
inc a
ld (xcoord),a
jp bf_rk
Crash:
call _clrlcdfull
ld hl,1
ld (currow),hl
ld hl,1
ld (curcol),hl
ld hl,score
call _puts
ld hl,1
ld (currow),hl
ld hl,6
ld (curcol),hl
pop hl
call _disphl
call _newline
ld hl,mb
call _puts
call _newline
ret
score:
.db "Score: ",0
tit:
.db "Long Worms By Tim Hegyi",0
mb: ; 1234567890123456
.db " By: Tim Hegyi ",0
fp:
.db " "
.db " Long Worms 1.0 ",0
codedby:
.db "Coded by: Tim Hegyi",0
email:
.db "tim_hegyi@hotmail.com",0
pent:
.db "Hit any key!",0
.end