		NLIST

;************************************************************************
;*	 SFX CAR RACE	   Header file	-- define data buffer --	*
;*					       [ Jul.24, 1990 ]		*
;************************************************************************

;=============== OAM buffer ============================================
OAM_main	EQU	  0200H		      ; 512 byte  :OAM main buffer
OAM_sub		EQU	  0400H		      ;	 32 byte  :OAM sub buffer
;=============== Screen write buffer ===================================
VRAMwte_buffer	EQU	  0420H		      ;	 96 byte  :VRAM write buffer
string_buffer	EQU	  0480H		      ; 128 byte  :String buffer
color_buffer	EQU	  0500H		      ; 512 byte  :Color write buffer
car_color_buff	EQU	  0700H		      ; 256 byte  :Car original color buffer
car_clear_buff	EQU	  0800H		      ; 256 byte  :Car clear color buffer
road_color_init EQU	  0900H		      ;	  8 byte  :Initial road color
road_color_half EQU	  0908H		      ;	  8 byte  :half tone road color
laser_color	EQU	  0910H		      ;	 80 byte  :Laser wall color buffer
;=============== Roll display work =====================================
lap_time_buffer EQU	  0960H		      ;	 18 byte  :lap time buffer
roll_course	EQU	  0972H		      ;	  1 byte  :Roll display course number
roll_timer	EQU	  0973H		      ;	  1 byte  :Roll wait timer
roll_counter	EQU	  0974H		      ;	  1 byte  :Roll loop counter
roll_pointer	EQU	  0975H		      ;	  1 byte  :Roll data pointer
roll_attribute	EQU	  0976H		      ;	  1 byte  :Roll display attribute
roll_cursor_x	EQU	  0977H		      ;	  1 byte  :Roll cursor position x
roll_cursor_y	EQU	  0978H		      ;	  1 byte  :Roll cursor position y
score_disp_buff EQU	  097AH		      ;	  3 byte  :Score display buffer
score_buffer	EQU	  097DH		      ;	  3 byte  :Score buffer
;;;;		EQU	  0980H		      ; FREE
;=======================================================================
meter_buffer	EQU	  0A00H		      ; 128 byte  :Meter buffer
;=============== Pers HDMA table =======================================
pers_tableA1	EQU	  0A80H		      ; 16 byte	  :Perspective HDMA table A_1
pers_tableA2	EQU	  0A90H		      ; 16 byte	  :Perspective HDMA table A_2
pers_tableB1	EQU	  0AA0H		      ; 16 buye	  :Perspective HDMA table B_1
pers_tableB2	EQU	  0AB0H		      ; 16 byte	  :Perspective HDMA table B_2
;-----------------------------------------------------------------------
OAM_address	EQU	  0AC0H		      ; 2*8 byte  :Car OAM data address
alarm_counter	EQU	  0AD0H		      ;	  1 byte  :Alarm counter
alarm_priority	EQU	  0AD1H		      ;	  1 byte  :Alarm sound priority status
crash_priority	EQU	  0AD2H		      ;	  1 byte  :Crash sound priority status
wind_priority	EQU	  0AD3H		      ;	  1 byte  :WInd sound priority status
safe_rank_char	EQU	  0AD4H		      ;	  2 byte  :Safe rank character
best_time_renew EQU	  0AD6H		      ;	  1 byte  :Best time renew rank
best_lap_renew	EQU	  0AD7H		      ;	  1 byte  :Best lap renew flag
course_code	EQU	  0AD8H		      ;	  1 byte  :Course code number
map_offset_h	EQU	  0AD9H		      ;	  2 byte  :Map dot display offset h
map_offset_v	EQU	  0ADBH		      ;	  2 byte  :Map dot display offset v
course_colnum	EQU	  0ADDH		      ;	  1 byte  :Course color number
map_data_code	EQU	  0ADEH		      ;	  1 byte  :Map data code
music_flag	EQU	  0ADFH		      ;	  1 byte  :music flag
;=============== Character write buffer ================================
chrwte_length	EQU	  0AE0H		      ; 2*4 byte  :Character write length
chrwte_address	EQU	  0AE8H		      ; 2*4 byte  :Character write address
chrdat_bank	EQU	  0AF0H		      ; 2*4 byte  :Character data bank
chrdat_address	EQU	  0AF8H		      ; 2*4 byte  :Character data address
;=============== Car data buffer =======================================
car_flag	EQU	  0B00H		      ; 2*8 byte  :Car flag
car_control	EQU	  0B10H		      ; 2*8 byte  :Car control status
;-----------------------------------------------------------------------
car_speed	EQU	  0B20H		      ; 2*8 byte  :Car speed
car_speedx_h	EQU	  0B30H		      ; 2*8 byte  :Car speed x high
car_speedx_l	EQU	  0B40H		      ; 2*8 byte  :Car speed x low
car_speedy_h	EQU	  0B50H		      ; 2*8 byte  :Car speed y high
car_speedy_l	EQU	  0B60H		      ; 2*8 byte  :Car speed y low
;-----------------------------------------------------------------------
car_locatex_h	EQU	  0B70H		      ; 2*8 byte  :Car location x high
car_locatex_l	EQU	  0B80H		      ; 2*8 byte  :Car location x low
car_locatey_h	EQU	  0B90H		      ; 2*8 byte  :Car location y high
car_locatey_l	EQU	  0BA0H		      ; 2*8 byte  :Car location y low
;-----------------------------------------------------------------------
car_jump_speed	EQU	  0BB0H		      ; 2*8 byte  :Car jump speed
car_hight	EQU	  0BC0H		      ; 2*8 byte  :Car hight
;-----------------------------------------------------------------------
car_angle	EQU	  0BD0H		      ; 2*8 byte  :Car angle
car_scrl_angle	EQU	  0BE0H		      ; 2*8 byte  :Car scroll angle
car_old_angle	EQU	  0BF0H		      ; 2*8 byte  :Car scroll old angle
;-----------------------------------------------------------------------
car_accele	EQU	  0C00H		      ; 2*8 byte  :Car accele
car_handle	EQU	  0C10H		      ; 2*8 byte  :Car handle
car_spin_velo	EQU	  0C20H		      ; 2*8 byte  :Car spin celocity
;-----------------------------------------------------------------------
car_pose	EQU	  0C30H		      ; 1*8 byte  :Car pose
car_size	EQU	  0C31H		      ; 1*8 byte  :Car size
car_char_num	EQU	  0C40H		      ; 2*8 byte  :Car character number
car_position_h	EQU	  0C50H		      ; 2*8 byte  :Car screen position h
car_position_v	EQU	  0C60H		      ; 2*8 byte  :Car screen poinsion v
car_display_h	EQU	  0C70H		      ; 2*8 byte  :Car display position h
car_display_v	EQU	  0C80H		      ; 2*8 byte  :Car display position v
car_data_leng	EQU	  0C90H		      ; 2*8 byte  :Car character data length
car_char_addr	EQU	  0CA0H		      ; 2*8 byte  :Car character address
car_table_addr	EQU	  0CB0H		      ; 2*8 byte  :Car table address
;-----------------------------------------------------------------------
car_BG_flag	EQU	  0CC0H		      ; 2*8 byte  :Car BG hit trigger flag
car_BGdata	EQU	  0CD0H		      ; 1*8 byte  :BG data under player
car_spark_pos	EQU	  0CD1H		      ; 1*8 byte  :Car spark position
car_rebound	EQU	  0CE0H		      ; 2*8 byte  :Car rebound angle
;-----------------------------------------------------------------------
clear_rank	EQU	  0CF0H		      ;	  1 byte  :Lap clear rank
goback_counter	EQU	  0CF1H		      ;	  1 byte  :Go back counter
rival_number	EQU	  0CF2H		      ;	  1 byte  :Rival car number
burner_count	EQU	  0CF3H		      ;	  1 byte  :After burner counter
burner_timer	EQU	  0CF4H		      ;	  1 byte  :After burner timer
course_number	EQU	  0CF5H		      ;	  1 byte  :Course number
jump_pose_flag	EQU	  0CF7H		      ;	  1 byte  :Jump pose transfer request flag
burner_inc_flag EQU	  0CF8H		      ;	  1 byte  :After burner increment flag
rank_disp_count EQU	  0CF9H		      ;	  1 byte  :Rank display counter
crater_pos_x	EQU	  0CFAH		      ;	  2 byte  :Crater write position x
crater_pos_y	EQU	  0CFCH		      ;	  2 byte  :Crater write position y
turbo_ok_count	EQU	  0CFEH		      ;	  1 byte  :TURBO OK display count
course_change	EQU	  0CFFH		      ;	  1 byte  :Course change switch
;-----------------------------------------------------------------------
car_area	EQU	  0D00H		      ; 1*8 byte  :Car area
car_counter	EQU	  0D01H		      ; 1*8 byte  :Car area counter
car_rank	EQU	  0D10H		      ; 1*8 byte  :Car rank
car_disp_status EQU	  0D11H		      ; 1*8 byte  :Car point angle
;-----------------------------------------------------------------------
car_unctrl_flag EQU	  0D20H		      ; 2*8 byte  :Car uncontrol flag
car_crash_flag	EQU	  0D30H		      ; 2*8 byte  :Car crash flag
round_counter	EQU	  0D40H		      ; 2*8 byte  :Car round counter
road_status_1	EQU	  0D50H		      ; 1*8 byte  :Road status 1
control_status	EQU	  0D51H		      ; 1*8 byte  :Car control status
car_speed_small EQU	  0D60H		      ; 2*8 byte  :Car speed small
road_branch	EQU	  0D70H		      ; 1*8 byte  :Road branch status
accele_perform	EQU	  0D71H		      ; 1*8 byte  :Accele performance
car_OAM_sub	EQU	  0D80H		      ; 2*6 byte  :Car OAM sub
carcol_change	EQU	  0D90H		      ; 2*8 byte  :Car color change counter
;=============== OAM sort buffer =======================================
OAM_priority	EQU	  0DA0H		      ; 2*8 byte  :OAM priority buffer
car_write_flag	EQU	  0DB0H		      ; 1*8 byte  :Car character write flag
car_write_size	EQU	  0DB8H		      ; 1*8 byte  :Car character write size
car_write_pose	EQU	  0DC0H		      ; 1*8 byte  :Car character write pose
;=============== etc. work =============================================
mycar_rank	EQU	  0DC8H		      ;	  1 byte  :My car rank
mycar_rank_flag EQU	  0DC9H		      ;	  1 byte  :My car tank change flag
course_half	EQU	  0DCAH		      ;	  1 byte  :Course half flag
demo_back_data	EQU	  0DCBH		      ;	  1 byte  :Demo back data
goal_in_rank	EQU	  0DCCH		      ;	  1 byte  :My car goal in rank
anime_car_index EQU	  0DCDH		      ;	  1 byte  :Animation car index
top_prio_sub	EQU	  0DCEH		      ;	  1 byte  :Enemy top priority sub
demo_status	EQU	  0DCFH		      ;	  1 byte  :Demo status
;=============== Window work ===========================================
window_table	EQU	  0DD0H		      ;	 32 byte  :Game window table
rank_window	EQU	  0DF0H		      ;	 48 byte  :Rank display window table
shadow_address	EQU	  0E20H		      ;	  2 byte  :My car shadow data address
shield_meter	EQU	  0E22H		      ;	  2 byte  :Shield meter window
;=============== Supper effect color work ==============================
meter_addsub	EQU	  0E25H		      ;	  1 byte  :Meter window color add switch
flash_color	EQU	  0E26H		      ;	  1 byte  :Screen flash color
const_color_R	EQU	  0E27H		      ;	  1 byte  :Constant color red
const_color_G	EQU	  0E28H		      ;	  1 byte  :Constant color green
const_color_B	EQU	  0E29H		      ;	  1 byte  :Constant color blue
meter_color_R	EQU	  0E2AH		      ;	  1 byte  :Meter color red
meter_color_G	EQU	  0E2BH		      ;	  1 byte  :Meter color green
meter_color_B	EQU	  0E2CH		      ;	  1 byte  :Meter color blue
spot_color_R	EQU	  0E2DH		      ;	  1 byte  :My car shadow color red
spot_color_G	EQU	  0E2EH		      ;	  1 byte  :My car shadow color green
spot_color_B	EQU	  0E2FH		      ;	  1 byte  :My car shadow color blue
;=============== Course time buffer ====================================
course_time	EQU	  0E30H		      ;
course_time_1	EQU	  0E30H		      ;	 16 byte  :My car course time
course_time_2	EQU	  0E40H		      ;	 16 byte  :My car course time
course_time_3	EQU	  0E50H		      ;	 16 byte  :My car course time
course_time_4	EQU	  0E60H		      ;	 16 byte  :My car course time
course_time_5	EQU	  0E70H		      ;	 16 byte  :My car course time
course_time_6	EQU	  0E80H		      ;	 16 byte  :My car course time
course_time_7	EQU	  0E90H		      ;	 16 byte  :My car course time
time_buffer	EQU	  0E90H		      ;	 16 byte  :My car lap time
;=============== scroll HDMA table =====================================
scroll_table_1	EQU	  0EA0H		      ;	 11 byte  :Scroll H_DMA table
scroll_table_2	EQU	  0EB0H		      ;	 11 byte  :Scroll H_DMA table
scroll_table_L1 EQU	  0EA0H		      ;	  1 byte  :
scroll_table_H1 EQU	  0EA1H		      ;	  2 byte  :
scroll_table_V1 EQU	  0EA3H		      ;	  2 byte  :
scroll_table_L2 EQU	  0EA5H		      ;	  1 byte  :
scroll_table_H2 EQU	  0EA6H		      ;	  2 byte  :
scroll_table_V2 EQU	  0EA8H		      ;	  2 byte  :
scroll_table_en EQU	  0EAAH		      ;	  1 byte  :
;=============== Crater table data =====================================
crater_table	EQU	  0EC0H		      ;	 32 byte  :Crater write table
;=======================================================================
short_cut_posy	EQU	  0EE0H		      ;	  2 byte  :
short_cut_posx	EQU	  0EE2H		      ;	  2 byte  :
short_cut_angle EQU	  0EE4H		      ;	  2 byte  :
short_cut_flag	EQU	  0EE6H		      ;	  1 byte  :
;-----------------------------------------------------------------------
course_clr_flag EQU	  0EE7H		      ;	  1 byte  :Course clear flag
demo_data_point EQU	  0EE8H		      ;	  1 byte  :Demo data pointer
jump_end_sound	EQU	  0EE9H		      ;	  1 byte  :Jump end sound status
selsnd_status	EQU	  0EEAH		      ;	  1 byte  :Select sound counter
backup_bank	EQU	  0EEBH		      ;	  1 byte  :Backup bank
backup_number	EQU	  0EECH		      ;	  1 byte  :Backup number
backup_pointer	EQU	  0EEDH		      ;	  2 byte  :Backup data pointer
rank_warnning	EQU	  0EEFH		      ;	  1 byte  :Rank warnning flag
;=============== Course time buffer ====================================
course_rank	EQU	  0F00H		      ;
course_rank_1	EQU	  0F00H		      ;	  8 byte  :My car course rank
course_rank_2	EQU	  0F08H		      ;	  8 byte  :My car course rank
course_rank_3	EQU	  0F10H		      ;	  8 byte  :My car course rank
course_rank_4	EQU	  0F18H		      ;	  8 byte  :My car course rank
course_rank_5	EQU	  0F20H		      ;	  8 byte  :My car course rank
course_rank_6	EQU	  0F28H		      ;	  8 byte  :My car course rank
course_rank_7	EQU	  0F30H		      ;	  8 byte  :My car course rank
rank_buffer	EQU	  0F30H		      ;	  8 byte  :My car lap rank
;-----------------------------------------------------------------------
rast_round	EQU	  0F38H		      ;	  1 byte  :Rast round
over_rank	EQU	  0F39H		      ;	  1 byte  :Game over rank
over_status	EQU	  0F3AH		      ;	  1 byte  :Game over status
lap_sound_cnt	EQU	  0F3BH		      ;	  1 byte  :Free mode lap clear sound counter
non_turbo_cnt	EQU	  0F3CH		      ;	  1 byte  :Can not turbo on
master_level	EQU	  0F3DH		      ;	  1 byte  :Master level flag
;-----------------------------------------------------------------------
lap_time_point	EQU	  0F40H		      ;	 16 byte  :Lap time display OAM point
special_demo	EQU	  0F50H		      ;	  1 byte  :
special_car	EQU	  0F51H		      ;	  1 byte  :
demo_contrast	EQU	  0F52H		      ;	  1 byte  :
clear_round	EQU	  0F53H		      ;	  1 byte  :
staff_abort_flg EQU	  0F54H		      ;	  1 byte  :
time_over_flag	EQU	  0F55H		      ;	  1 byte  :
;-----------------------------------------------------------------------
best_time_rank	EQU	  0F60H		      ;	 16 byte  :
best_lap_flag	EQU	  0F70H		      ;	 16 byte  :
round_counter2	EQU	  0F80H		      ; 2*8 byte  :Car round counter
;=======================================================================
free_area	EQU	  001000H	      ;4096 byte  :Free area
SIN_absolute	EQU	  08EC00H
COS_absolute	EQU	  08EC30H
SIN_sign	EQU	  08ECF0H
COS_sign	EQU	  08ED20H
Jump_pers_data	EQU	  08EDE0H
;-----------------------------------------------------------------------
Pers_data	EQU	  09EC00H
Position_data	EQU	  09ED00H
;=======================================================================
Course_pointer	EQU	  039F00H	       ; for REAL
;;;;Course_pointer  EQU	      789F00H		 ; for EMULATOR
;-----------------------------------------------------------------------
Map_panel_data	EQU	  7F0000H
Map_world_sub	EQU	  7F4C00H
Map_world_data	EQU	  7F4E00H
Map_room_data	EQU	  7F5000H
Map_slit_data	EQU	  7F7000H
;-----------------------------------------------------------------------
Hwrite_buffer1	EQU	  7F4A00H	      ; 128 byte  :Horizontal write buffer 1
Hwrite_buffer2	EQU	  7F4A80H	      ; 128 byte  :Horizontal write buffer 2
Vwrite_buffer1	EQU	  7F4B00H	      ; 128 byte  :Vertical write buffer
Vwrite_buffer2	EQU	  7F4B80H	      ; 128 byte  :Vertical write buffer
;-----------------------------------------------------------------------
Bomb_slit_data	EQU	  7F4000H	      ;2048 byte  :
Crater_panel	EQU	  7F3FF0H	      ;	 16 byte  :
;-----------------------------------------------------------------------
backup_buffer	EQU	  7F4800H	      ; 512 byte  :Backup RAM copy buffer
;
;					      end of header file.
		LIST
