All pastes #560688 Raw Edit

grand theft avocado source

public text v1 · immutable
·published 2007-06-12 05:13 UTC
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