rendered paste body;=============================================================================
;=Spengo Race! by Steven Rogers =
;=anyone may use this source...I can't guarantee that it's good...in fact it =
;=is pretty bad :( If anyone would like to comment or need help with =
;=programming, I am available at: =
;=thespengo@gmail.com =
;=#tcpa on efnet iirc =
;=maxcoderz forum: http://joepnet.com/hosted/maxcoderz/phpBB2/index.php =
;=btw, to make this look neater resize your notepad window until this makes =
;=a nice box. =
;=============================================================================
#define TI83P ;all that ION header stuff
.nolist
#include "ion.inc"
#include "keys.inc"
.list
#ifdef TI83P
.org progstart - 2
.db $BB,$6D
#endif
ret
jr nc, start
.db "Spengo Race",0
score = SafeRam1+1 ;setting the variables to saferam places
x = SafeRam1+2 ;that way, they are safer
y = SafeRam1+3
test = SafeRam1+4
fuel = SafeRam1+5
avocadox = saferam1+6
avocadoy = saferam1+7
avoexist = saferam1+8
sportsx = saferam1+9
sportsy = saferam1+10
sportsexist = saferam1+11
tempx = saferam1+12
tempy = saferam1+13
counter = saferam1+14
tempx2 = saferam1+15
tempy2 = saferam1+16
timer1 = saferam1+17
pickupx = saferam1+18
pickupy = saferam1+19
pickupexist = saferam1+20
timer2 = saferam1+21
corvettex = saferam1+22
corvettey = saferam1+23
corvetteexist = saferam1+24
timer3 = saferam1+25
pty = saferam1+26
ptx = saferam1+27
ptexist = saferam1+28
timer5 = saferam1+33
policey = saferam1+34
policex = saferam1+35
policeexist = saferam1+36
lights = saferam1+37
yesl = saferam1+38
slow = saferam1+39
slowfuel = saferam1+40
roadanim = saferam1+41
speed = saferam1+42
speedtimer = saferam1+43
start: ;sets up game by loading high score
ld a,(score)
ld l,a
ld a,(high)
cp l
jp p,main
ld a,(score)
ld (high),a
set 7,(iy+20)
main: ;main menu loop
ld hl,image ;displays main screen
ld de,plotsscreen
ld bc,768
ldir
call ionFastCopy
bcall(_getCSC)
bcall(_grbufcpy)
set textinverse,(iy+textflags)
ld de,0*256+7 ;writes the high score on the screen
ld (currow),de
ld hl,(high)
ld h,0
bcall(_disphl)
res textinverse,(iy+textflags)
menuloop: ;menu loop- waits for either 2nd or clear
bcall(_getCSC)
cp sk2nd
jp z,game
cp skClear
jp z,asdf
jp nz,menuloop
game: ;sets all the variables in the game :)
bcall(_grbufclr)
bcall(_clrlcdfull)
ld a,0
ld (score),a
ld a,50
ld (x),a
ld a,45
ld (y),a
ld a,200
ld (fuel),a
ld a,0
ld (avocadoy),a
ld a,30
ld (avocadox),a
ld a,1
ld (avoexist),a
ld a,0
ld (sportsy),a
ld a,16
ld (sportsx),a
ld a,1
ld (sportsexist),a
ld a,100
ld (counter),a
ld hl,200
ld (timer1),hl
ld hl,1000
ld (timer2),hl
ld hl,250
ld (timer3),hl
ld hl,300
ld (timer5),hl
ld a,0
ld (pickupx),a
ld a,64
ld (pickupy),a
ld a,0
ld (pickupexist),a
ld a,0
ld (corvettex),a
ld a,64
ld (corvettey),a
ld a,0
ld (corvetteexist),a
ld a,0
ld (ptx),a
ld a,64
ld (pty),a
ld a,0
ld (ptexist),a
ld a,0
ld (policex),a
ld a,8
ld (policey),a
ld a,0
ld (policeexist),a
ld a,0
ld (lights),a
ld a,0
ld (yesl),a
ld a,4
ld (slow),a
ld a,2
ld (slowfuel),a
ld a,0
ld (roadanim),a
ld a,0
ld (speed),a
ld hl,1000
ld (speedtimer),hl
main_loop: ;whee let's get started
;============display stuff==============
bcall(_grbufclr) ;display fuel
ld de,11*256+5
ld (currow),de
ld hl,(fuel)
ld h,0
bcall(_disphl)
ld de,11*256+2 ;display score
ld (currow),de
ld hl,(score)
ld h,0
bcall(_disphl)
ld b,16 ;display car
ld a,(y)
ld l,a
ld a,(x)
ld ix,car
call ionputsprite
; ld a,(roadanim)
; cp 0
; jp z,inner_loop1
; ld a,1
; ld (roadanim),a
; ld bc,640 ; display road
; ld a,0
; ld l,a
; ld a,0
; ld ix,road1
; call ionputsprite
inner_loop1:
; ld a,(roadanim)
; cp 1
; jp z,inner_loop2
; ld a,0
; ld (roadanim),a
; ld bc,640 ; display road2 (animation)
; ld a,0
; ld l,a
; ld a,0
; ld ix,road2
; call ionputsprite
inner_loop2:
ld b,16 ; display sidebar
ld a,0
ld l,a
ld a,72
ld ix,sidebar1
call ionputsprite
ld b,16
ld a,0
ld l,a
ld a,80
ld ix,sidebar2
call ionputsprite
ld b,16
ld a,0
ld l,a
ld a,88
ld ix,sidebar3 ;still displaying the sidebar
call ionputsprite
ld b,16
ld a,24
ld l,a
ld a,72
ld ix,sidebar4
call ionputsprite
ld b,16
ld a,24
ld l,a
ld a,80
ld ix,sidebar5
call ionputsprite
ld b,16
ld a,24
ld l,a
ld a,88
ld ix,sidebar6
call ionputsprite
ld b,16
ld a,48
ld l,a
ld a,72
ld ix,sidebar7
call ionputsprite
ld b,16
ld a,48
ld l,a
ld a,80
ld ix,sidebar8 ;w00t I have a lot of sidebar stuff don't I?
call ionputsprite ;I could probably figure out how to make this
ld b,16 ;better- in fact I know how to make this
ld a,48 ;better...I just didn't when I first made this
ld l,a ;and now I'm too lazy :P
ld a,88
ld ix,sidebar9
call ionputsprite
ld a,(avoexist) ;checking if avocados exist...do they? o_O
cp 0
jp z,main_loop2
ld a,(avocadoy)
ld c,a
ld a,(avocadox)
ld b,a
ld ix,avocado
call clipsprite
main_loop2:
ld a,(sportsexist) ;checking if sports cars exist!
cp 0
jp z,main_loop3
ld a,(sportsy)
ld c,a
ld a,(sportsx)
ld b,a
ld ix,sports
call clipsprite16
main_loop3:
ld a,(pickupexist) ;checking if pickups exist!
cp 0
jp z,main_loop4
ld a,(pickupy)
ld c,a
ld a,(pickupx)
ld b,a
ld ix,pickup
call clipsprite16
main_loop4:
ld a,(corvetteexist) ;checking if corvettes exist!
cp 0
jp z,main_loop5
ld a,(corvettey)
ld c,a
ld a,(corvettex)
ld b,a
ld ix,corvette
call clipsprite16
main_loop5:
ld a,(ptexist) ;checking if pt cruisers exist!
cp 0
jp z,main_loop7
ld a,(pty)
ld c,a
ld a,(ptx)
ld b,a
ld ix,pt
call clipsprite16
main_loop7:
ld a,(lights)
cp 0
jp z,main_loop8
ld a,(policeexist) ;checking if police cars exist!
cp 0
jp z,main_loop9
ld a,(policey)
ld c,a
ld a,(policex)
ld b,a
ld ix,police1
call clipsprite16
main_loop8:
ld a,(lights)
cp 1
jp z,main_loop9
ld a,(policeexist) ;checking if police cars exist!
cp 0
jp z,main_loop9
ld a,(policey)
ld c,a
ld a,(policex)
ld b,a
ld ix,police2
call clipsprite16
main_loop9:
call ionfastcopy
;===================set variables and stuff===============
ei
ld a,(speed) ;levelling and stuff
cp 0
jp z,halt1
cp 1
jp z,halt2
cp 2
jp z,halt3
cp 3
jp z,halt4
cp 4
jp z,halt5
halt1:
halt ;those halt thingies- slow the game down a bit
halt
halt2:
halt ;those halt thingies- slow the game down a bit
halt
halt3:
halt ;those halt thingies- slow the game down a bit
halt
halt4:
halt ;those halt thingies- slow the game down a bit
halt
halt5:
halt ;those halt thingies- slow the game down a bit
halt
timers1:
ld a,(pickupexist)
cp 1
jp z,timers2
ld a,(timer1)
dec a
ld (timer1),a
ld a,(timer1)
cp 0
jp z,nextpickup
timers2:
ld a,(corvetteexist)
cp 1
jp z,timers3
ld a,(timer2)
dec a
ld (timer2),a
ld a,(timer2)
cp 0
jp z,nextcorvette
timers3:
ld a,(ptexist)
cp 1
jp z,timers5
ld a,(timer3)
dec a
ld (timer3),a
ld a,(timer3)
cp 0
jp z,nextpt
timers5:
ld a,(policeexist)
cp 1
jp z,varcheck
ld a,(timer5)
dec a
ld (timer5),a
ld a,(timer5)
cp 0
jp z,nextpolice
varcheck:
ld a,(yesl)
cp 0
jp z,varcheck2
ld a,(lights)
cp 0
call z,light1
call nz,light2
ld a,0
ld (yesl),a
varcheck2:
ld (speedtimer),hl
cp 0
call z,speedtimerset
dec hl
ld hl,(speedtimer)
ld a,1
ld (yesl),a
ld a,(pickupy)
cp 56
call z,nextpickup
ld a,(pickupexist)
cp 1
call z,incpickupy
ld a,(corvettey)
cp 56
call z,nextcorvette
ld a,(corvetteexist)
cp 1
call z,inccorvettey
ld a,(pty)
cp 56
call z,nextpt
ld a,(ptexist)
cp 1
call z,incpty
ld a,(policey)
cp 241
call z,nextpolice
ld a,(policeexist)
cp 1
call z,incpolicey
ld a,(avocadoy) ;if avocadoy = 64 then goto nextavocado
cp 64
jp z,nextavocado
ld a,(avocadoy) ;inc avocadoy
inc a
ld (avocadoy),a
ld a,(sportsy) ;if sportsy = 56 then goto nextsports
cp 56
jp z,nextsports
ld a,(sportsy) ;inc sportsy
inc a
ld (sportsy),a
ld a,(fuel) ;if fuel = 0 then goto lose
cp 0
jp z,lose
ld a,(slowfuel)
cp 0
call z,decfuel
call nz,decslowfuel
ld a,(counter)
cp 0
jp z,morescore
ld a,(counter)
inc a
ld (counter),a
;=====================collision checking===================
ld a,(avoexist) ;I think I must be paranoid or something
cp 0
ld a,(x)
ld (tempx),a
ld a,(y)
ld (tempy),a
call avocollision ;getting the collision checked
ld a,(x)
ld b,8
add a,b
scf
ccf
ld (tempx),a ;this is loading coords into temporary coords to check
ld a,(y) ;different pixels
ld (tempy),a
call avocollision
ld a,(y)
ld b,16
add a,b
scf
ccf
ld (tempy),a
ld a,(x)
ld (tempx),a
call avocollision
ld a,(x)
ld b,8
add a,b
scf
ccf
ld (tempx),a
ld a,(y)
ld b,16
add a,b
scf
ccf
ld (tempy),a
call avocollision ;woot it works
;sports car collision
ld a,(sportsexist) ;I think I must be paranoid or something
cp 0
ld a,(x)
ld (tempx),a
ld a,(y)
ld (tempy),a
call sportscollision ;getting the collision checked
ld a,(x)
ld b,8
add a,b
scf
ccf
ld (tempx),a ;this is loading coords into temporary coords to check
ld a,(y) ;different pixels
ld (tempy),a
call sportscollision
ld a,(y)
ld b,16
add a,b
scf
ccf
ld (tempy),a
ld a,(x)
ld (tempx),a
call sportscollision
ld a,(x)
ld b,8
add a,b
scf
ccf
ld (tempx),a
ld a,(y)
ld b,16
add a,b
scf
ccf
ld (tempy),a
call sportscollision ;woot it works
;pickup truck collision
ld a,(pickupexist) ;I think I must be paranoid or something
cp 0
ld a,(x)
ld (tempx),a
ld a,(y)
ld (tempy),a
call pickupcollision ;getting the collision checked
ld a,(x)
ld b,8
add a,b
scf
ccf
ld (tempx),a ;this is loading coords into temporary coords to check
ld a,(y) ;different pixels
ld (tempy),a
call pickupcollision
ld a,(y)
ld b,16
add a,b
scf
ccf
ld (tempy),a
ld a,(x)
ld (tempx),a
call pickupcollision
ld a,(x)
ld b,8
add a,b
scf
ccf
ld (tempx),a
ld a,(y)
ld b,16
add a,b
scf
ccf
ld (tempy),a
call pickupcollision ;woot it works
;corvette collision
ld a,(corvetteexist) ;I think I must be paranoid or something
cp 0
ld a,(x)
ld (tempx),a
ld a,(y)
ld (tempy),a
call corvettecollision ;getting the collision checked
ld a,(x)
ld b,8
add a,b
scf
ccf
ld (tempx),a ;this is loading coords into temporary coords to check
ld a,(y) ;different pixels
ld (tempy),a
call corvettecollision
ld a,(y)
ld b,16
add a,b
scf
ccf
ld (tempy),a
ld a,(x)
ld (tempx),a
call corvettecollision
ld a,(x)
ld b,8
add a,b
scf
ccf
ld (tempx),a
ld a,(y)
ld b,16
add a,b
scf
ccf
ld (tempy),a
call corvettecollision ;woot it works
;pt collision
ld a,(ptexist) ;I think I must be paranoid or something
cp 0
ld a,(x)
ld (tempx),a
ld a,(y)
ld (tempy),a
call ptcollision ;getting the collision checked
ld a,(x)
ld b,8
add a,b
scf
ccf
ld (tempx),a ;this is loading coords into temporary coords to check
ld a,(y) ;different pixels
ld (tempy),a
call ptcollision
ld a,(y)
ld b,16
add a,b
scf
ccf
ld (tempy),a
ld a,(x)
ld (tempx),a
call ptcollision
ld a,(x)
ld b,8
add a,b
scf
ccf
ld (tempx),a
ld a,(y)
ld b,16
add a,b
scf
ccf
ld (tempy),a
call ptcollision ;woot it works
;police collision
ld a,(policeexist) ;I think I must be paranoid or something
cp 0
ld a,(x)
ld (tempx),a
ld a,(y)
ld (tempy),a
call policecollision ;getting the collision checked
ld a,(x)
ld b,8
add a,b
scf
ccf
ld (tempx),a ;this is loading coords into temporary coords to check
ld a,(y) ;different pixels
ld (tempy),a
call policecollision
ld a,(y)
ld b,16
add a,b
scf
ccf
ld (tempy),a
ld a,(x)
ld (tempx),a
call policecollision
ld a,(x)
ld b,8
add a,b
scf
ccf
ld (tempx),a
ld a,(y)
ld b,16
add a,b
scf
ccf
ld (tempy),a
call policecollision ;woot it works
;======================police collision checking====================
;sports car collision
ld a,(sportsexist) ;I think I must be paranoid or something
cp 0
ld a,(policex)
ld (tempx2),a
ld a,(policey)
ld (tempy2),a
call sportscollision2 ;getting the collision checked
ld a,(policex)
ld b,8
add a,b
scf
ccf
ld (tempx2),a ;this is loading coords into temporary coords to check
ld a,(policey) ;different pixels
ld (tempy2),a
call sportscollision2
ld a,(policey)
ld b,16
add a,b
scf
ccf
ld (tempy2),a
ld a,(policex)
ld (tempx2),a
call sportscollision2
ld a,(policex)
ld b,8
add a,b
scf
ccf
ld (tempx2),a
ld a,(policey)
ld b,16
add a,b
scf
ccf
ld (tempy2),a
call sportscollision2 ;woot it works
;pickup truck collision
ld a,(pickupexist) ;I think I must be paranoid or something
cp 0
ld a,(policex)
ld (tempx2),a
ld a,(policey)
ld (tempy2),a
call pickupcollision2 ;getting the collision checked
ld a,(policex)
ld b,8
add a,b
scf
ccf
ld (tempx2),a ;this is loading coords into temporary coords to check
ld a,(policey) ;different pixels
ld (tempy2),a
call pickupcollision2
ld a,(policey)
ld b,16
add a,b
scf
ccf
ld (tempy2),a
ld a,(policex)
ld (tempx2),a
call pickupcollision2
ld a,(policex)
ld b,8
add a,b
scf
ccf
ld (tempx2),a
ld a,(policey)
ld b,16
add a,b
scf
ccf
ld (tempy2),a
call pickupcollision2 ;woot it works
;corvette collision
ld a,(corvetteexist) ;I think I must be paranoid or something
cp 0
ld a,(policex)
ld (tempx2),a
ld a,(policey)
ld (tempy2),a
call corvettecollision2 ;getting the collision checked
ld a,(policex)
ld b,8
add a,b
scf
ccf
ld (tempx2),a ;this is loading coords into temporary coords to check
ld a,(policey) ;different pixels
ld (tempy2),a
call corvettecollision2
ld a,(policey)
ld b,16
add a,b
scf
ccf
ld (tempy2),a
ld a,(policex)
ld (tempx2),a
call corvettecollision2
ld a,(policex)
ld b,8
add a,b
scf
ccf
ld (tempx2),a
ld a,(policey)
ld b,16
add a,b
scf
ccf
ld (tempy2),a
call corvettecollision2 ;woot it works
;pt collision
ld a,(ptexist) ;I think I must be paranoid or something
cp 0
ld a,(policex)
ld (tempx2),a
ld a,(policey)
ld (tempy2),a
call ptcollision2 ;getting the collision checked
ld a,(policex)
ld b,8
add a,b
scf
ccf
ld (tempx2),a ;this is loading coords into temporary coords to check
ld a,(policey) ;different pixels
ld (tempy2),a
call ptcollision2
ld a,(policey)
ld b,16
add a,b
scf
ccf
ld (tempy2),a
ld a,(policex)
ld (tempx2),a
call ptcollision2
ld a,(policex)
ld b,8
add a,b
scf
ccf
ld (tempx2),a
ld a,(policey)
ld b,16
add a,b
scf
ccf
ld (tempy2),a
call ptcollision2 ;woot it works
;=====================keys stuff===================
ld a,0ffh ;keys are pressed
out (1),a
ld a,0feh
out (1),a
in a,(1)
cp 247
jp z,up
cp 251
jp z,right
cp 253
jp z,left
cp 254
jp z,down
cp %11111100
jp z, Down_And_Left
cp %11111010
jp z, Down_And_Right
cp %11110101
jp z, Up_And_Left
cp %11110011
jp z, Up_And_Right
ld a,0ffh
out (1),a
ld a,0fdh
out (1),a
in a,(1)
cp 191
jp z,start
jp nz,main_loop ;goto main loop- why this comment is here I dunno
;===========next of everything=============
nextavocado:
ld a,1
ld (avoexist),a
ld a,241
ld (avocadoy),a
ld b,66
call ionRandom
ld (avocadox),a
jp main_loop
nextsports:
ld a,1
ld (sportsexist),a
ld a,241
ld (sportsy),a
ld b,66
call ionRandom
ld (sportsx),a
jp main_loop
nextpickup:
ld a,1
ld (pickupexist),a
ld a,241
ld (pickupy),a
ld b,66
call ionRandom
ld (pickupx),a
jp main_loop
nextcorvette:
ld a,1
ld (corvetteexist),a
ld a,241
ld (corvettey),a
ld b,66
call ionRandom
ld (corvettex),a
jp main_loop
nextpt:
ld a,1
ld (ptexist),a
ld a,241
ld (pty),a
ld b,66
call ionRandom
ld (ptx),a
jp main_loop
nextpolice:
ld a,1
ld (policeexist),a
ld a,56
ld (policey),a
ld b,66
ld a,(x)
ld (policex),a
jp main_loop
;===============collisions calls!=============
avocollision:
ld a,(avoexist) ;I think I must be paranoid or something
cp 0
ld a,(avocadox) ;avocado Postion..really!
ld b,a
ld a,(tempx) ;Your position
sub b
cp 8 ;avocado is 8*8 :)
call c, avocollisiony ;Go check Y
ret
avocollisiony:
ld a,(avocadoy)
ld b,a
ld a,(tempy)
sub b
cp 8
call c, morefuel
ret
sportscollision:
ld a,(sportsexist)
cp 0
ld a,(sportsx) ;car position
ld b,a
ld a,(tempx) ;your position
sub b
cp 8 ;car is 8*16 :)
call c, sportscollisiony ;Go check Y
ret
sportscollisiony:
ld a,(sportsy)
ld b,a
ld a,(tempy)
sub b
cp 16
call c, lose
ret
pickupcollision:
ld a,(pickupexist)
cp 0
ld a,(pickupx) ;car position
ld b,a
ld a,(tempx) ;your position
sub b
cp 8 ;car is 8*16 :)
call c, pickupcollisiony ;Go check Y
ret
pickupcollisiony:
ld a,(pickupy)
ld b,a
ld a,(tempy)
sub b
cp 16
call c, lose
ret
corvettecollision:
ld a,(corvetteexist)
cp 0
ld a,(corvettex) ;car position
ld b,a
ld a,(tempx) ;your position
sub b
cp 8 ;car is 8*16 :)
call c, corvettecollisiony ;Go check Y
ret
corvettecollisiony:
ld a,(corvettey)
ld b,a
ld a,(tempy)
sub b
cp 16
call c, lose
ret
ptcollision:
ld a,(ptexist)
cp 0
ld a,(ptx) ;car position
ld b,a
ld a,(tempx) ;your position
sub b
cp 8 ;car is 8*16 :)
call c, ptcollisiony ;Go check Y
ret
ptcollisiony:
ld a,(pty)
ld b,a
ld a,(tempy)
sub b
cp 16
call c, lose
ret
policecollision:
ld a,(policeexist)
cp 0
ld a,(policex) ;car position
ld b,a
ld a,(tempx) ;your position
sub b
cp 8 ;car is 8*16 :)
call c, policecollisiony ;Go check Y
ret
policecollisiony:
ld a,(policey)
ld b,a
ld a,(tempy)
sub b
cp 16
call c, lose
ret
;police car collisions
sportscollision2:
ld a,(sportsexist)
cp 0
ld a,(sportsx) ;car position
ld b,a
ld a,(tempx2) ;your position
sub b
cp 8 ;car is 8*16 :)
call c, sportscollisiony2 ;Go check Y
ret
sportscollisiony2:
ld a,(sportsy)
ld b,a
ld a,(tempy2)
sub b
cp 16
call c, policenotexist
ret
pickupcollision2:
ld a,(pickupexist)
cp 0
ld a,(pickupx) ;car position
ld b,a
ld a,(tempx2) ;your position
sub b
cp 8 ;car is 8*16 :)
call c, pickupcollisiony2 ;Go check Y
ret
pickupcollisiony2:
ld a,(pickupy)
ld b,a
ld a,(tempy2)
sub b
cp 16
call c, policenotexist
ret
corvettecollision2:
ld a,(corvetteexist)
cp 0
ld a,(corvettex) ;car position
ld b,a
ld a,(tempx2) ;your position
sub b
cp 8 ;car is 8*16 :)
call c, corvettecollisiony2 ;Go check Y
ret
corvettecollisiony2:
ld a,(corvettey)
ld b,a
ld a,(tempy2)
sub b
cp 16
call c, policenotexist
ret
ptcollision2:
ld a,(ptexist)
cp 0
ld a,(ptx) ;car position
ld b,a
ld a,(tempx2) ;your position
sub b
cp 8 ;car is 8*16 :)
call c, ptcollisiony2 ;Go check Y
ret
ptcollisiony2:
ld a,(pty)
ld b,a
ld a,(tempy2)
sub b
cp 16
call c, policenotexist
ret
;==============sprite routines===============
; input: ix - 8x8 sprite address
; bc - x,y location
;
; output: sprite xored with clipping
clipsprite:
xor a ;
ld de,8 ;
or c ;
jp m,nclipb ;
ld a,63 ;
sub c ;
ret c ;
cp 7 ;
jr nc,nclipv ;
inc a ;
ld e,a ;
jr nclipv ;
nclipb: cp -7 ;
ret c ;
add a,e ;
ld c,a ;
sub e ;
neg ;
ld e,a ;
add ix,de ;
ld e,c ;
ld c,d ;
nclipv: ld hl,$AA7E ; ld a,(hl) \ xor d
ld (clipl),hl ;
inc h ; ld a,(hl) \ xor e
ld (clipr),hl ;
xor a ;
or b ;
jp m,nclipr ;
cp 89 ;
jr c,clipd ;
cp 96 ;
ret nc ;
ld hl,$0118 ; jr 1
ld (clipr),hl ;
jr clipd ;
nclipr: cp -7 ;
ret c ;
ld hl,$0118 ; jr 1
ld (clipl),hl ;
clipd: ld hl,clipv ;
ld (hl),e ;
ld b,d ;
ld h,b ;
ld l,c ;
add hl,bc ;
add hl,bc ;
add hl,hl ;
add hl,hl ;
ld c,a ;
sra c ;
sra c ;
sra c ;
inc c ;
add hl,bc ;
dec hl ;
and %00000111 ;
ld c,a ;
ld de,gbuf ;
spr: add hl,de ;
clipv =$+1
ld b,8 ;
sl1: push bc ;
ld d,(ix) ;
inc ix ;
ld a,c ;
ld e,0 ;
or a ;
jr z,sl3 ;
sl2: srl d ;
rr e ;
dec a ;
jr nz,sl2 ;
clipl =$
sl3: ld a,(hl) ;
xor d ;
ld (hl),a ;
inc hl ;
clipr =$
ld a,(hl) ;
xor e ;
ld (hl),a ;
ld de,11 ;
add hl,de ;
pop bc ;
djnz sl1 ;
ret ;
; input: ix - 16*16 sprite address
; bc - x,y location
;
; output: sprite xored with clipping
clipsprite16:
xor a ;
ld de,16 ;
or c ;
jp m,nclipb16 ;
ld a,63 ;
sub c ;
ret c ;
cp 7 ;
jr nc,nclipv16 ;
inc a ;
ld e,a ;
jr nclipv16 ;
nclipb16: cp -7 ;
ret c ;
add a,e ;
ld c,a ;
sub e ;
neg ;
ld e,a ;
add ix,de ;
ld e,c ;
ld c,d ;
nclipv16: ld hl,$AA7E ; ld a,(hl) \ xor d
ld (clipl16),hl ;
inc h ; ld a,(hl) \ xor e
ld (clipr16),hl ;
xor a ;
or b ;
jp m,nclipr16 ;
cp 169 ;
jr c,clipd16 ;
cp 96 ;
ret nc ;
ld hl,$01116 ; jr 1
ld (clipr16),hl ;
jr clipd16 ;
nclipr16: cp -7 ;
ret c ;
ld hl,$01116 ; jr 1
ld (clipl16),hl ;
clipd16: ld hl,clipv16 ;
ld (hl),e ;
ld b,d ;
ld h,b ;
ld l,c ;
add hl,bc ;
add hl,bc ;
add hl,hl ;
add hl,hl ;
ld c,a ;
sra c ;
sra c ;
sra c ;
inc c ;
add hl,bc ;
dec hl ;
and %00000111 ;
ld c,a ;
ld de,gbuf ;
spr16: add hl,de ;
clipv16 =$+1
ld b,16 ;
sl116: push bc ;
ld d,(ix) ;
inc ix ;
ld a,c ;
ld e,0 ;
or a ;
jr z,sl316 ;
sl216: srl d ;
rr e ;
dec a ;
jr nz,sl216 ;
clipl16 =$
sl316: ld a,(hl) ;
xor d ;
ld (hl),a ;
inc hl ;
clipr16 =$
ld a,(hl) ;
xor e ;
ld (hl),a ;
ld de,11 ;
add hl,de ;
pop bc ;
djnz sl116 ;
ret ;
;===============going places===============
left: ;make the car move left
ld b,16
ld a,(y)
ld l,a
ld a,(x)
ld ix,car
call ionputsprite
ld a,(x)
ld l,a
ld a,0
cp l
jp z,main_loop
ld a,(x)
dec a
ld (x),a
jp main_loop
right: ;makes the car move right
ld b,16
ld a,(y)
ld l,a
ld a,(x)
ld ix,car
call ionputsprite
ld a,(x)
ld l,a
ld a,63
cp l
jp z,main_loop
ld a,(x)
inc a
ld (x),a
jp main_loop
up: ;I don't think you are really reading these
ld b,16 ;comments :P
ld a,(y)
ld l,a
ld a,(x)
ld ix,car
call ionputsprite
ld a,(y)
ld l,a
ld a,10
cp l
jp z,main_loop
ld a,(y)
dec a
ld (y),a
ld a,(test)
inc a
ld (test),a
jp main_loop
down: ;oh well, maybe there are really dumb people
ld b,16 ;out there who don't understand what LABELs
ld a,(y) ;are >_>
ld l,a
ld a,(x)
ld ix,car
call ionputsprite
ld a,(y)
ld l,a
ld a,48
cp l
jp z,main_loop
ld a,(test)
dec a
ld (test),a
ld a,(y)
inc a
ld (y),a
jp main_loop
Down_And_Left: ;ooo fancy diagonal movement!
ld b,16
ld a,(y)
ld l,a
ld a,(x)
ld ix,car
call ionputsprite
ld a,(x)
ld l,a
ld a,0
cp l
jp z,noleft
ld a,(x)
dec a
ld (x),a
noleft: ;awww man!
ld a,(y)
ld l,a
ld a,48
cp l
jp z,main_loop
ld a,(test)
dec a
ld (test),a
ld a,(y)
inc a
ld (y),a
jp main_loop
Down_And_Right: ;I like bishops...do you?
ld b,16
ld a,(y)
ld l,a
ld a,(x)
ld ix,car
call ionputsprite
ld a,(y)
ld l,a
ld a,48
cp l
jp z,nodown
ld a,(y)
inc a
ld (y),a
ld a,(test)
dec a
ld (test),a
nodown: ;no more downage for you >:O
ld a,(x)
ld l,a
ld a,63
cp l
jp z,main_loop
ld a,(x)
inc a
ld (x),a
jp main_loop
Up_And_Left: ;oh yeah! more pwnage diagonal-ness
ld b,16
ld a,(y)
ld l,a
ld a,(x)
ld ix,car
call ionputsprite
ld a,(y)
ld l,a
ld a,10
cp l
jp z,noup
ld a,(y)
dec a
ld (y),a
ld a,(test)
inc a
ld (test),a
noup: ;oh crap- top o' the screen :(
ld a,(x)
ld l,a
ld a,0
cp l
jp z,main_loop
ld a,(x)
dec a
ld (x),a
jp main_loop
Up_And_Right: ;w00t this is...really boring to comment
ld b,16
ld a,(y)
ld l,a
ld a,(x)
ld ix,car
call ionputsprite
ld a,(y)
ld l,a
ld a,10
cp l
jp z,noright
ld a,(y)
dec a
ld (y),a
ld a,(test)
inc a
ld (test),a
noright ;hum-de-dum-de-dum
ld a,(x)
ld l,a
ld a,63
cp l
jp z,main_loop
ld a,(x)
inc a
ld (x),a
jp main_loop
;===================some more stuff=============
morefuel: ;increases score and fuel
ld a,0
ld (avoexist),a
ld a,200
ld (fuel),a ;here is the fuel thing
ret
morescore:
ld bc,1
ld hl,(score)
add hl,bc
scf
ccf
ld (score),hl ;here is the score thing
ld a,100
ld (counter),a ;gotta reset the counter
jp main_loop
incpickupy:
ld a,(pickupy)
inc a
ld (pickupy),a
ret
pickupexistset:
ld a,0
ld (pickupexist),a
ret
inccorvettey:
ld a,(corvettey)
inc a
inc a
ld (corvettey),a
ret
corvetteexistset:
ld a,0
ld (corvetteexist),a
ret
incpty:
ld a,(pty)
inc a
inc a
ld (pty),a
ret
ptexistset:
ld a,0
ld (ptexist),a
ret
incpolicey:
ld a,(x)
ld (policex),a
ld a,(slow)
cp 0
call z,incpoliceytrue
call nz,incpoliceyfalse
ret
incpoliceytrue:
ld a,(policey)
dec a
ld (policey),a
ld a,4
ld (slow),a
ret
incpoliceyfalse:
ld a,(slow)
dec a
ld (slow),a
ret
policeexistset:
ld a,0
ld (policeexist),a
ld a,100
ld (policey),a
ld (policex),a
ret
policenotexist:
ld a,0
ld (policeexist),a
ld a,100
ld (policex),a
ld (policey),a
ret
light1:
ld a,1
ld (lights),a
ret
light2:
ld a,0
ld (lights),a
ret
decfuel:
ld a,(fuel) ;dec fuel
dec a
ld (fuel),a
ld a,2
ld (slowfuel),a
ret
decslowfuel:
ld a,(slowfuel)
dec a
ld (slowfuel),a
ret
speedtimerset:
ld hl,1000
ld (speedtimer),hl
ld a,(speed)
inc a
ld (speed),a
ret
asdf: ;the real quit 'cause the other one no workie :P
ret
lose: ;displays losing picture
ld b,16
ld a,(y)
ld l,a
ld a,(x)
ld ix,crash
call ionputsprite
call ionfastcopy
loseloop: ;fancy loop- waits for 2nd or clear
bcall(_getCSC)
cp skclear
jp z,start
jp nz,loseloop
quit: ;quiting game :'(
;make sure to play again
ret
data_start:
high: .dw 0
data_end:
;===============graphics==============
car: ;fairly self-explanatory methinks
.db $7E,$18,$BD,$FF,$A5,$24,$66,$7E,$66,$7E,$3C,$DB,$FF,$DB,$3C,$FF
avocado:
.db $60,$3C,$76,$7A,$FB,$DF,$FE,$7C
sidebar1:
.db $F9,$FD,$F0,$E7,$EF,$ED,$C9,$DF,$9F,$B8,$AB,$BB,$BA,$9B,$E3,$FA
sidebar2:
.db $FF,$FF,$7F,$8F,$E7,$F7,$B7,$F3,$FB,$00,$FF,$36,$ED,$2D,$AD,$76
sidebar3:
.db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$00,$FF,$CC,$55,$4C,$55,$D4
sidebar4:
.db $E0,$CF,$9F,$3F,$67,$63,$7F,$7E,$3C,$BD,$9F,$C7,$F5,$F5,$F5,$F5
sidebar5:
.db $0F,$E7,$F3,$F9,$CD,$8D,$FD,$FD,$7D,$40,$DF,$D2,$56,$52,$56,$57
sidebar6:
.db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$00,$FF,$A5,$AD,$A5,$AD,$64
sidebar7:
.db $FF,$C9,$BA,$99,$D6,$36,$FF,$FF,$FF,$F9,$F6,$F1,$EB,$EB,$FF,$FF
sidebar8:
.db $FF,$2D,$65,$25,$DA,$5B,$FF,$FF,$FF,$DE,$AD,$8B,$5B,$5D,$FF,$FF
sidebar9:
.db $FD,$9A,$7A,$55,$D5,$3B,$FF,$FF,$FF,$9F,$BF,$9F,$7F,$3F,$FF,$FF
sports:
.db $3C,$7E,$FF,$FF,$C3,$5A,$FF,$BD,$BD,$FF,$7E,$E7,$FF,$FF,$7E,$3C
pickup:
.db $7E,$FF,$FF,$C3,$42,$7E,$7E,$7E,$42,$7E,$C3,$C3,$C3,$42,$42,$3C
city:
.db $7E,$FF,$7E,$FF,$C3,$C3,$7E,$7E,$7E,$7E,$7E,$FF,$C3,$FF,$FF,$7E
pt:
.db $18,$7E,$BD,$BD,$BD,$FF,$66,$5A,$7E,$7E,$FF,$FF,$BD,$BD,$FF,$7E
corvette:
.db $18,$3C,$7E,$FF,$FF,$E7,$5A,$5A,$7E,$7E,$5A,$FF,$E7,$FF,$BD,$7E
police1:
.db $7E,$BD,$7E,$FF,$FF,$E7,$42,$FF,$CF,$CF,$FF,$42,$E7,$FF,$BD,$7E
police2:
.db $7E,$BD,$7E,$FF,$FF,$E7,$42,$FF,$F3,$F3,$FF,$42,$E7,$FF,$BD,$7E
image:
.db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$3F,$FF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$3F,$FF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FF,$FF,$9F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$F7,$FF,$FF
.db $FF,$87,$FF,$FF,$FF,$FF,$FF,$FF,$80,$E7,$FF,$FF,$FE,$37,$FF,$FF
.db $FF,$FF,$FF,$F8,$01,$E1,$FF,$FF,$FC,$F3,$FF,$FF,$FF,$F8,$7F,$80
.db $03,$E1,$FF,$FF,$F9,$F9,$FF,$FF,$FF,$E0,$7F,$02,$7F,$E4,$FF,$FF
.db $FB,$FD,$FF,$FF,$FF,$E1,$FF,$1E,$7F,$E6,$7F,$FF,$F9,$FC,$FF,$FF
.db $FF,$C3,$FF,$FE,$3F,$C6,$3F,$FF,$FB,$76,$FF,$FF,$FF,$C7,$FF,$FE
.db $3F,$C7,$1F,$FF,$F7,$FA,$7F,$FF,$FF,$C7,$FF,$FE,$3F,$C7,$9F,$FF
.db $F5,$FF,$7F,$FF,$FF,$C7,$FF,$FE,$3F,$C0,$0F,$FF,$F7,$FF,$7F,$FF
.db $FF,$C7,$83,$FE,$3F,$C8,$6F,$FF,$EF,$FF,$3F,$FF,$FF,$C7,$07,$FE
.db $3F,$CB,$E7,$FF,$EE,$FF,$BF,$FF,$FF,$CF,$E7,$FE,$7F,$CF,$E7,$FF
.db $EF,$FF,$BF,$FF,$FF,$CF,$E7,$FE,$7F,$CF,$E7,$FF,$EF,$FB,$BF,$FF
.db $FF,$E7,$C7,$FE,$FF,$DF,$FF,$FF,$E7,$FF,$BF,$FF,$FF,$E0,$07,$FF
.db $FF,$DF,$FF,$FF,$F0,$FF,$3F,$FF,$FF,$F0,$7F,$FF,$FF,$FF,$FF,$FF
.db $FE,$7E,$7F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$00,$FF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$8F,$FF
.db $F6,$0B,$FD,$FE,$FF,$FF,$FE,$FF,$FF,$FF,$77,$FF,$F7,$BB,$FB,$7E
.db $FF,$FF,$FE,$FF,$FF,$FF,$7C,$99,$C7,$B9,$D9,$3D,$6B,$39,$38,$CF
.db $FF,$FF,$65,$EA,$B7,$BA,$AB,$7C,$6A,$D7,$D6,$B7,$FF,$FF,$75,$AA
.db $B7,$BA,$BB,$7B,$B6,$D7,$56,$B7,$FF,$FF,$85,$CA,$C7,$BA,$CB,$BB
.db $B7,$39,$98,$CF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$C7,$F8,$FF,$FF
.db $F8,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$DB,$F7,$BF,$FF,$FB,$7F,$FF,$FF
.db $FF,$FF,$FF,$FF,$C6,$B9,$9B,$5B,$38,$C6,$6C,$9F,$FF,$FF,$FF,$FF
.db $DB,$7E,$B5,$55,$5B,$55,$55,$BF,$FF,$FF,$FF,$FF,$C7,$71,$D3,$B3
.db $5B,$46,$4D,$3F,$FF,$FF,$FF,$FF,$FE,$FF,$FF,$FF,$FF,$FF,$7F,$FF
.db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FF,$7F,$FF,$DF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FE,$7F,$DF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$FF,$FF,$FD,$FF
.db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$DB,$FF,$FF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FD,$E0,$0F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.db $FC,$7F,$DF,$FF,$FE,$D7,$EF,$FF,$FF,$FF,$FF,$FE,$30,$FF,$7F,$DF
.db $FE,$DF,$EF,$FF,$FF,$FF,$FF,$FD,$C1,$3F,$FF,$BF,$FE,$16,$26,$FF
.db $FF,$FF,$FF,$FD,$3C,$CF,$F7,$FF,$FE,$D5,$AB,$FF,$FF,$FF,$FF,$F2
.db $FB,$F7,$FF,$FF,$FE,$D5,$AB,$FF,$FF,$FF,$FF,$EC,$FA,$77,$FF,$FF
.db $FE,$D6,$2A,$FF,$FF,$FF,$FF,$8B,$F9,$F7,$EF,$FF,$FF,$FF,$BF,$FF
.db $FF,$FF,$C4,$67,$C4,$CF,$FF,$7F,$FF,$FE,$7F,$FF,$FF,$FF,$B3,$FE
.db $3F,$3F,$7F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$AF,$F9,$FF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FF,$DE,$27,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FF,$81,$DF,$FF,$F7,$F7,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$8D,$DF
.db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$DF,$FF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FF,$FE,$3F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
road1:
.db $BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F
.db $FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF
.db $E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7
.db $FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD
.db $BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7
.db $FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF
.db $FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD
.db $BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F
.db $FF,$E7,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD
.db $BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F
.db $FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF
.db $E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7
.db $FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD
.db $BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7
.db $FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF
.db $FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD
.db $BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F
.db $FF,$E7,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD
.db $BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F
.db $FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF
.db $E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7
.db $FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD
.db $BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7
.db $FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF
.db $FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD
road2:
.db $BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$E7,$FF
.db $FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD
.db $BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F
.db $FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF
.db $E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD
.db $BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF
.db $E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7
.db $FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF
.db $FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD
.db $BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$E7,$FF
.db $FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD
.db $BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F
.db $FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF
.db $E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD
.db $BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF
.db $E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7
.db $FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF
.db $FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD
.db $BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$E7,$FF
.db $FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD
.db $BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F
.db $FF,$E7,$FF,$FD,$BF,$FF,$E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF
.db $E7,$FF,$FE,$7F,$FF,$E7,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.db $FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF
.db $FF,$FF,$FF,$FF,$FF,$FD,$BF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FD
crash:
.db $43,$80,$40,$00,$88,$00,$00,$08,$08,$48,$C0,$20,$21,$C1,$C4,$C1
.end
.end
;well that's the end of my code.
;did it burn your eyes out with it's horrid-ness?
;It burned mine see? #_#
;that up there is a burned eyes smiley in case you were wondering :P
;okay I'm done with my random rambling now