		NLIST

;************************************************************************
;*	 CAR RACE  Header file	 -- Define variable --			*
;*					       [ Apr.23, 1990 ]		*
;************************************************************************
;
;=============== Interrupt work ========================================
NMI_flag	EQU	  0040H		      ; 1 byte	:Software NMI flag
IRQ_pointer	EQU	  0041H		      ; 2 byte	:IRQ routine pointer
vertical_timer	EQU	  0043H		      ; 2 byte	:Vertical count timer ( for perspective )
;=============== Sound work ============================================
sound_control	EQU	  0045H		      ; 1 byte	:Sound control flag
sound_status_0	EQU	  0046H		      ; 1 byte	:Sound status 0 ( sound port 0 )
sound_status_1	EQU	  0047H		      ; 1 byte	:Sound status 1 ( sound port 1 )
sound_status_2	EQU	  0048H		      ; 1 byte	:Sound status 2 ( sound port 2 )
sound_status_3	EQU	  0049H		      ; 1 byte	:Sound status 3 ( sound port 3 )
;=============== OAM buffer control ====================================
OAM_counter	EQU	  004AH		      ; 1 byte	:OAM data set counter
OAM_mainptr	EQU	  004BH		      ; 2 byte	:OAM main data pointer
OAM_subptr	EQU	  004DH		      ; 1 byte	:OAM sub data pointer
OAM_submask	EQU	  004EH		      ; 1 byte	:OAM sub mask data
OBJchar_status	EQU	  004FH		      ; 1 byte	:OBJ character status
objwte_flag	EQU	  0050H		      ; 1 byte	:OAM write mode flag
;=============== System control work ===================================
frame_counter	EQU	  0051H		      ; 1 byte	:Frame counter
mycar_number	EQU	  0052H		      ; 1 byte	:My car number
game_scene	EQU	  0053H		      ; 1 byte	:Game scene number
game_mode	EQU	  0054H		      ; 1 byte	:Game mode number
game_process	EQU	  0055H		      ; 1 byte	:Game process number
game_status	EQU	  0056H		      ; 1 byte	:Game status
game_level	EQU	  0057H		      ; 1 byte	:Game level
play_mode	EQU	  0058H		      ; 1 byte	:Game play mode
retry_counter	EQU	  0059H		      ; 1 byte	:Retry counter
menu_select	EQU	  005AH		      ; 0 byte	:Menu select status
end_status	EQU	  005AH		      ; 1 byte	:Game end status
demo_flag	EQU	  005BH		      ; 1 byte	:Enemy debug flag
part_flag	EQU	  005CH		      ; 1 byte	:Part mode change flag
screen_contrast EQU	  005DH		      ; 1 byte	:Screen contrast status
HDMA_switch	EQU	  005EH		      ; 1 byte	:H_DMA switch
meter_switch	EQU	  005FH		      ; 1 byte	:Meter display switch
;=============== Fade_in,fade_out work =================================
fade_flag	EQU	  0060H		      ; 1 byte	:Fade_in,fade_out flag
fade_step	EQU	  0061H		      ; 1 byte	:Fade_in,fade_out step time
fade_count	EQU	  0062H		      ; 1 byte	:Fade_in,fade_out counter
;=============== Controller work =======================================
stick_backst	EQU	  0063H		      ; 2 byte	:Controller back status
stick_status	EQU	  0065H		      ; 2 byte	:Controller status
stick_trigger	EQU	  0067H		      ; 2 byte	:Controller trigger
stick_cleartg	EQU	  0069H		      ; 2 byte	:Controller clear trigger
;=============== Window work ===========================================
window_flag	EQU	  006BH		      ; 1 byte	:Window flag
window_address	EQU	  006CH		      ; 2 byte	:Window DMA data address
window_main	EQU	  006EH		      ; 1 byte	:Window through main
window_sub	EQU	  006FH		      ; 1 byte	:Window through sub
window_color_sw EQU	  0070H		      ; 1 byte	:Window color switch
window_control	EQU	  0071H		      ; 3 byte	:Window control status
;=============== BG scroll work ========================================
scroll_selector EQU	  0074H		      ; 1 byte	:Scroll data buffer selector
BG1_scroll_h	EQU	  0075H		      ; 2 byte	:BG1 scroll horizontal
BG1_scroll_v	EQU	  0077H		      ; 2 byte	:BG1 scroll vertical
BG2_scroll_h	EQU	  0079H		      ; 2 byte	:BG2 scroll horizontal
BG2_scroll_v	EQU	  007BH		      ; 2 byte	:BG2 scroll vertical
center_x	EQU	  007DH		      ; 2 byte	:Rotation center point x
center_y	EQU	  007FH		      ; 2 byte	:Rotation center point y
;=============== Perspective work ======================================
pers_flag	EQU	  0081H		      ; 1 byte	:Change perspective flag
pers_selector	EQU	  0082H		      ; 1 byte	:Pers data buffe selector
pers_angle	EQU	  0083H		      ; 1 byte	:Perspective angle
pers_databank_A EQU	  0084H		      ; 1 byte	:Perspective data bank A
pers_databank_B EQU	  0085H		      ; 1 byte	:Perspective data bank B
pers_databank_C EQU	  0086H		      ; 1 byte	:Perspective data bank C
pers_databank_D EQU	  0087H		      ; 1 byte	:Perspective data bank D
;=============== Rotation matrix =======================================
matrix_A	EQU	  0088H		      ; 2 byte	:Rotation matrix A
matrix_B	EQU	  008AH		      ; 2 byte	:Rotation matrix B
matrix_C	EQU	  008CH		      ; 2 byte	:Rotation matrix C
screen_zoom	EQU	  008EH		      ; 2 byte	:Screen zoom
;-----------------------------------------------------------------------
game_world	EQU	  0090H		      ; 1 byte	:Game world number
;=============== Course write work =====================================
char_wteptr	EQU	  0091H		      ; 1 byte	:Character write data pointer
chrwte_status	EQU	  0092H		      ; 1 byte	:Write character status
srnwte_status	EQU	  0093H		      ; 1 byte	:Write screen flag
Hwrite_address	EQU	  0094H		      ; 2 byte	:Screen write address
Vwrite_address	EQU	  0096H		      ; 2 byte	:Screen write address
;=============== Color write work ======================================
colwte_flag	EQU	  0098H		      ; 1 byte	:Color write flag
colwte_number	EQU	  0099H		      ; 1 byte	:Color write number
color_counter	EQU	  009AH		      ; 1 byte	:BG color change counter
color_add_sw	EQU	  009BH		      ; 1 byte	:BG color add/sub switch ( for no part scroll )
color_addsub	EQU	  009CH		      ; 1 byte	:BG color add/sub switch ( for gradation )
spot_switch	EQU	  009DH		      ; 1 byte	:BG color add/sub switch ( for shadow )
;=============== BG write work =========================================
crater_wteflg	EQU	  009EH		      ; 1 byte	:Crater write flag
VRAMbuf_pointer EQU	  009FH		      ; 1 byte	:VRAM write buffer pointer
;=============== Cource scroll work ====================================
scroll_count_x	EQU	  00A0H		      ; 4 byte	:Scroll counter x
scroll_count_y	EQU	  00A4H		      ; 4 byte	:Scroll counter y
scrl_backct_x	EQU	  00A8H		      ; 2 byte	:Scroll counter x before
scrl_backct_y	EQU	  00AAH		      ; 2 byte	:Scroll counter y before
screen_angle	EQU	  00ACH		      ; 1 byte	:BG screen angle
area_number	EQU	  00ADH		      ; 1 byte	:Car area number
start_room_x	EQU	  00AEH		      ; 1 byte	:Start room x
start_room_y	EQU	  00AFH		      ; 1 byte	:Start room y
world_pointer	EQU	  00B0H		      ; 2 byte	:Map world pointer
;		EQU	  00B2H
;slit_databank	EQU	   00B3H	       ; 1 byte	 :Slit data bank
;=============== Back screen control ===================================
back_offs_angle EQU	  00B4H		      ; 2 byte	:Back screen offset angle ( for goal in demo )
back_zelo_angle EQU	  00B6H		      ; 2 byte	:Back screen zelo angle	  ( for goal in demo )
;=============== Message display work ==================================
message_flag	EQU	  00B8H		      ; 2 byte	:message trigger flag
message_status	EQU	  00BAH		      ; 1 byte	:message display status
message_counter EQU	  00BBH		      ; 1 byte	:message display counter
message_pointer EQU	  00BCH		      ; 1 byte	:message data pointer
message_length	EQU	  00BDH		      ; 1 byte	:message length
;-----------------------------------------------------------------------
ending_timer	EQU	  00BEH		      ; 2 byte	:Ending timer
;=============== Game mode system work =================================
time_counter	EQU	  00C0H		      ; 3 byte	:Time counter ( BCD )
exception_flag	EQU	  00C3H		      ; 1 byte	:
goback_status	EQU	  00C4H		      ; 1 byte	:My car go back status
road_angle	EQU	  00C5H		      ; 2 byte	:road angle
road_status_2	EQU	  00C7H		      ; 1 byte	:
super_flag	EQU	  00C8H		      ; 1 byte	:invicible flag
mycar_damage	EQU	  00C9H		      ; 2 byte	:My car damage
goal_in_count	EQU	  00CBH		      ; 1 byte	:Rival goal in count
;=============== System counter ========================================
repair_UFOwait	EQU	  00CCH		      ; 1 byte	:Shield repair UFO wait timer
startup_timer	EQU	  00CDH		      ; 0 byte	:Start up timer
initial_timer	EQU	  00CDH		      ; 1 byte	:
startup_count	EQU	  00CEH		      ; 0 byte	:
initial_count	EQU	  00CEH		      ; 1 byte	:
explosion_count EQU	  00CFH		      ; 1 byte	:Explosion counter
break_counter	EQU	  00D0H		      ; 1 byte	:My car break counter
mycar_pointer	EQU	  00D1H		      ; 1 byte	:My car work pointer ( mycar_number * 2 )
rank_display_sw EQU	  00D2H		      ; 1 byte	:My car rank display switch ( OAM sub )
;=============== My car control work ===================================
zone_status_1	EQU	  00D3H		      ; 1 byte	:My car zone status 1
zone_status_2	EQU	  00D4H		      ; 1 byte	:My car zone status 2
handle_position EQU	  00D5H		      ; 2 byte	:My car handle position
handle_velocity EQU	  00D7H		      ; 2 byte	:My car handle velocity
drift_status	EQU	  00D9H		      ; 1 byte	:
jump_count	EQU	  00DAH		      ; 1 byte	:My car jump counter
hover_counter	EQU	  00DBH		      ; 1 byte	:Hover counter
hover_level	EQU	  00DCH		      ; 1 byte	:Hover level
;=============== My car anime work =====================================
car_wing	EQU	  00DDH		      ; 1 byte	:car wing pattern number
car_canopy	EQU	  00DEH		      ; 1 byte	:car canopy patten number
wing_spark_cnt	EQU	  00DFH		      ; 1 byte	:car canopy display counter
wing_count	EQU	  00E0H		      ; 1 byte	:Wing counter
;=============== Turbo control work ====================================
turbo_status	EQU	  00E1H		      ; 1 byte	:Turbo jet status
turbo_level	EQU	  00E2H		      ; 1 byte	:Turbo jet level
turbo_count	EQU	  00E3H		      ; 1 byte	:Turbo jet counter
turbo_timer	EQU	  00E4H		      ; 1 byte	:Turbo jet timer
turbo_offset_v	EQU	  00E5H		      ; 1 byte	:Turbo jet display offset vertical
turbo_jump_ptr	EQU	  00E6H		      ; 2 byte	:Turbo jump table
;=============== Super effect work =====================================
laser_counter	EQU	  00E8H		      ; 1 byte	:Wall laser counter
spark_counter	EQU	  00E9H		      ; 1 byte	:spark counter
spark_status	EQU	  00EAH		      ; 1 byte	:spark status
;-----------------------------------------------------------------------
pull_counter_A	EQU	  00EBH		      ; 1 byte	:Pull beam counter
pull_counter_B	EQU	  00ECH		      ; 1 byte	:Pull beam counter
;-----------------------------------------------------------------------
mycar_jet_count EQU	  00EDH		      ; 1 byte	:Enemy jet counter
enemy_air_count EQU	  00EEH		      ; 1 byte	:Enemy air counter
;=======================================================================
handle_perform	EQU	  00EFH		      ; 1 byte	:My car handle performance
shield_status	EQU	  00F0H		      ; 1 byte	:Shield status for meter
slip_perform	EQU	  00F1H		      ; 1 byte	:My car slip performance
course_select	EQU	  00F2H		      ; 1 byte	:Best time display course
repair_counter	EQU	  00F3H		      ; 1 byte	:Shield repair counter
spin_count	EQU	  00F4H		      ; 1 byte	:My car uncontrol spin counter
road_col_count	EQU	  00F5H		      ; 1 byte	:Road color change timer
;=============== for DEBUG =============================================
still_flag	EQU	  00F6H		      ; 1 byte	:DEBUG
final_debug	EQU	  00F7H		      ; 1 byte	:DEBUG
;=============== Parameter =============================================
param0		EQU	  00F8H		      ; 1 byte	:parameter 0
param1		EQU	  00F9H		      ; 1 byte	:parameter 1
param2		EQU	  00FAH		      ; 1 byte	:parameter 2
param3		EQU	  00FBH		      ; 1 byte	:parameter 3
param4		EQU	  00FCH		      ; 1 byte	:parameter 4
param5		EQU	  00FDH		      ; 1 byte	:parameter 5
temp_pointer	EQU	  00FEH		      ; 2 byte	:Temporary pointer
jump_address	EQU	  00FEH		      ; 2 byte	:Index jump address
;=======================================================================
;						     end of header file.
		LIST
