📄 vars.asm
字号:
;==========================================================================
; File Name : vars.asm
;
; Rev: Date: Author: Reason:
;
;
;==========================================================================
; -------------
; page 0
; -------------
pb_data_crc equ 0x7f ;CRC FOR BUTTON DATA
pbid_14 equ 0x7e ;DATA LENGTH FOR BUTTON #14
pbid_13 equ 0x7d ;DATA LENGTH FOR BUTTON #13
pbid_12 equ 0x7c ;DATA LENGTH FOR BUTTON #12
pbid_11 equ 0x7b ;DATA LENGTH FOR BUTTON #11
pbid_10 equ 0x7a ;DATA LENGTH FOR BUTTON #10
pbid_9 equ 0x79 ;DATA LENGTH FOR BUTTON #9
pbid_8 equ 0x78 ;DATA LENGTH FOR BUTTON #8
pbid_7 equ 0x77 ;DATA LENGTH FOR BUTTON #7
pbid_6 equ 0x76 ;DATA LENGTH FOR BUTTON #6
pbid_5 equ 0x75 ;DATA LENGTH FOR BUTTON #5
pbid_4 equ 0x74 ;DATA LENGTH FOR BUTTON #4
pbid_3 equ 0x73 ;DATA LENGTH FOR BUTTON #3
pbid_2 equ 0x72 ;DATA LENGTH FOR BUTTON #2
pbid_1 equ 0x71 ;DATA LENGTH FOR BUTTON #1
pbid_0 equ 0x70 ;DATA LENGTH FOR BUTTON #0
#define PBID_PTR pbid_0 ;POINTER TO THE FIRST PBID
crc_byte equ 0x6f ;BUFFER FOR CRC VALUE
input_byte equ 0x6e ;DATA INPUT BYTE FOR CRC CALCULATION
mov_count equ 0x6d ;COUNTER NO. OF BYTES TO BE MOVED
mov_buffer equ 0x6c ;TEMPORARY BUFFER FOR DATA MOVE
ptr_src equ 0x6b ;SOURCE POINTER
ptr_end equ 0x6a ;DESTINATION POINTER
ptr_nxt equ 0x69 ;CURRENT STEP POINTER
data_length equ 0x68 ;DATA LENGTH FOR A STEP
pgm_buf0 equ 0x67 ;LOWEST ORDER BYTE OF ENCODE KEY(S)
pgm_buf1 equ 0x66 ;MIDDLE ORDER BYTE OF ENCODE KEY(S)
pgm_buf2 equ 0x65 ;HIGHEST ORDER BYTE OF ENCODE KEY(S)
#define PGM_BUF_PTR pgm_buf0 ;POINTER TO PROGRAM BUFFER
loop_count equ 0x64 ;LOOP COUNTER
temp_buf1 equ 0x63 ;TEMPORARY BUFFER #1
temp_buf2 equ 0x62 ;TEMPORARY BUFFER #2
temp_buf3 equ 0x61 ;TEMPORARY BUFFER #3
ee_buf0 equ 0x60 ;EEPROM TRANSFER LOWER ORDER BYTE
ee_buf1 equ 0x5f ;EEPROM TRANSFER HIGHER ORDER BYTE
ee_addr equ 0x5e ;EEPROM STARTING ADDRESS POINTER
ee_io_buf equ 0x5d ; parameters for ee_io
ee_io_cnt equ 0x5c
#define pforce_0 ee_io_buf
#define pforce_1 ee_io_cnt
; MSB LSB
; RT DN LT UP UC DC LC RC (low byte)
; JR ST EX A B Z L R (high byte)
#define BIT_SEL 7 ; in pb_xxx1
#define BIT_ST 6
#define BIT_E2 5
#define BIT_E1 4
#define BIT_UP 3
#define BIT_RT 2
#define BIT_DN 1
#define BIT_LT 0
#define BIT_L2 7 ; in pb_xxx0
#define BIT_R2 6
#define BIT_L1 5
#define BIT_R1 4
#define BIT_TRI 3
#define BIT_CIR 2
#define BIT_CRO 1
#define BIT_SQU 0
pb_raw0 equ 0x5b ;BUTTON RAW BUFFER LOWER ORDER
pb_raw1 equ 0x5a ;BUTTON RAW BUFFER HIGHER ORDER
#define PTR_PBRAW0 pb_raw0 ;POINTER TO PB_RAW0 BUFFER
pb_old0 equ 0x59 ;BUTTON OLD BUFFER LOWER ORDER
pb_old1 equ 0x58 ;BUTTON OLD BUFFER HIGHER ORDER
pb_out0 equ 0x57 ;BUTTON OUTPUT BUFFER LOWER ORDER
pb_out1 equ 0x56 ;BUTTON OUTPUT BUFFER HIGHER ORDER
pb_auto0 equ 0x55 ; auto fire mask low
pb_auto1 equ 0x54 ; auto fire mask high
#define t_up_bit pb_out1,BIT_UP ;CURSOR UP BIT IN PB_OUT
#define t_rt_bit pb_out1,BIT_RT ;CURSOR RIGHT BIT IN PB_OUT
#define t_dn_bit pb_out1,BIT_DN ;CURSOR DOWN BIT IN PB_OUT
#define t_lt_bit pb_out1,BIT_LT ;CURSOR LEFT BIT IN PB_OUT
#define t_ex_bit pb_out1,BIT_EX ;BUTTON EXTRA BIT IN PB_OUT
#define t_st_bit pb_out1,BIT_ST ;BUTTON START BIT IN PB_OUT
;#define t_rst_bit pb_out1,BIT_JRES ;BUTTON START BIT IN PB_OUT
#define r_up_bit pb_raw1,BIT_UP ;CURSOR UP BIT IN PB_RAW
#define r_rt_bit pb_raw1,BIT_RT ;CURSOR RIGHT BIT IN PB_RAW
#define r_dn_bit pb_raw1,BIT_DN ;CURSOR DOWN BIT IN PB_RAW
#define r_lt_bit pb_raw1,BIT_LT ;CURSOR LEFT BIT IN PB_RAW
#define r_st_bit pb_raw1,BIT_ST ;BUTTON START BIT IN PB_RAW
;#define r_rst_bit pb_raw1,BIT_JRES ;BUTTON START BIT IN PB_RAW
#define o_st_bit pb_old1,BIT_ST ;START BIT IN PB_OLD
fn_button equ 0x53 ; low nib-old buffer, hi nib-raw buffer
#define mode_bit fn_button,0
#define auto_bit fn_button,1 ;AUTO BUTTON STATUS BIT
#define pgm_bit fn_button,2 ;PROGRAM BUTTON STATUS BIT
#define r_mode_bit fn_button,4
#define r_auto_bit fn_button,5
#define r_pgm_bit fn_button,6 ;PROGRAM BUTTON STATUS IN RAW BUFFER
dur_step equ 0x52 ;STEP DURATION
tmr_sled equ 0x51 ;PAUSE LED COUNTER
tmr_aled equ 0x50 ;AUTO FIRE LED COUNTER
dur_dbc equ 0x4f ;BUTTON DEBOUNCE DURATION CONTROL
pbid equ 0x4e ;BUTTON NUMBER, 0-14 VALID
; timer counters, dec. to zero and stop if dec. by p_timer()
tmr_step equ 0x4d ;FIRE STEP TIMER, N/100S
tmr_pled equ 0x4c ;LED TIMER, N/100S
tmr_auto equ 0x4b ;AUTO FIRE TIMER, N/100S
tmr_dbc equ 0x4a ;BUTTON DEBOUNCE TIMER, N/100S
tmr_beep equ 0x49 ;BEEP TIMER, N/100S
flag0 equ 0x48
flag1 equ 0x35
flag2 equ 0x47
flag3 equ 0x46
#define f_nmode flag3,0 ; old mode : 0
#define f_setting_mode flag3,1 ; new mode : 0 = normal
#define f_alt_vr flag3,2
#define f_autled2 flag3,3 ;0=ON ALWAYS, 1=BLINKS
#define f_autled1 flag3,4 ;0=LED OFF, 1=LED ON
#define f_44_lock flag3,5 ; mode button lock by command 44
#define D_A_mode flag3,6 ; 1: analog mode; 0 : digital mode
#define mode_ch flag3,7
#define f_44_chmode flag2,5 ; change mode by command 44
#define f_data1_is_0 flag2,4
#define f_data1_is_1 flag2,3
#define f_prog_mode flag2,2
#define f_vib flag2,1
#define f_arcade flag1,6 ;arache stick mode
#define f_valid_pgm flag1,5
#define f_vr_ex_127 flag1,4
#define f_reset_ram flag1,3 ;0=NORMAL RESET, 1=SPECIAL RESET
#define f_space flag1,2 ;1=FIRE OF A SPACE DONE
#define f_mapbad flag1,1 ;1=BUTTON DATA INVALID
#define f_keystb flag1,0 ;1=KEY BECOMES STABLE
#define f_dbcpb flag0,7 ;1=INCLUDES FIRE BUTTON DEBOUNCE
#define f_newdat flag0,6 ;1=NEW DATA AVAILABLE
#define f_beep flag0,5 ;1=BEEP OUTPUT IS ON
#define f_pbpress flag0,4 ;1=BUTTON PRESSED
#define f_eeexist flag0,3 ;1=EEPROM EXISTS
#define f_eob flag0,2 ;1=END OF BUTTON REACHED
#define f_pause flag0,1 ;1=NOW IS PAUSE
#define f_fire flag0,0 ;1=NOW IS FIRING
delay1 equ 0x45
#define pb_check delay1 ; reuse delay1
delay0 equ 0x44
#define button_max delay0 ; reuse delay0 location
vr_null equ 0x43 ; parameters for adj_axis()
#define sc_byte_count vr_null ; reuse
vr_value equ 0x42
#define sc_shift_byte vr_value ; reuse
led_image equ 0x41
#define pled_img led_image,5
#define sled_img led_image,3
#define aled_img led_image,6
#define mled_img led_image,4
#define LED_MASK b'01100000'
lo_byte equ 0x40
hi_byte equ 0x3f
offset equ 0x3e
#define f_max_tmp1 offset
xaxis_val equ 0x3d
xaxis_null equ 0x3c
yaxis_val equ 0x3b
yaxis_null equ 0x3a
zaxis_val equ 0x39
zaxis_null equ 0x38
raxis_val equ 0x37
raxis_null equ 0x36
pb_l3_r3 equ 0x34 ; button for L3,R3
#define L3_bit pb_l3_r3,0
#define R3_bit pb_l3_r3,1
#define r_L3_bit pb_l3_r3,4
#define r_R3_bit pb_l3_r3,5
pb_auto1_mask equ 0x33
pb_auto0_mask equ 0x32
;----- for TX/RCV.
pad_id equ 0x30
last_command equ 0x31
sc_tmp1 equ 0x2f
sc_tmp2 equ 0x2e
sc_tmp3 equ 0x2d
flag4 equ 0x2c
#define f_old_vib_on flag4,0 ; old vibration mode ON flag
#define f_old_vib_count flag4,1 ; old vib mode ON counter flag
#define f_synchronous flag4,2
#define f_wait_mode flag4,3 ; 1 - chk mode key in waitkey:
#define f_sio_ack flag4,4 ; used in 40,4f
#define f_4f_all_0 flag4,5
#define f_set_force flag4,7 ;
#define f_time_reset flag4,6
pclath_save equ 0x2b
fsr_save equ 0x2a
status_save equ 0x29
w_save equ 0x28
; ----------------------------------------
; page 1 88-FF
; ---------------------------------------
;
sio_tmp1 equ 0x88
sio_tmp2 equ 0x89
sio_tmp3 equ 0x8a
data3_4f equ 0x8b ; data for 4f
data2_4f equ 0x8c
data1_4f equ 0x8d
#define rx0_4f data1_4f,0
#define rx1_4f data1_4f,1
#define RX_4f data1_4f,2
#define RY_4f data1_4f,3
#define LX_4f data1_4f,4
#define LY_4f data1_4f,5
#define right_4f data1_4f,6
#define left_4f data1_4f,7
#define up_4f data2_4f,0
#define down_4f data2_4f,1
#define tri_4f data2_4f,2
#define O_4f data2_4f,3
#define X_4f data2_4f,4
#define square_4f data2_4f,5
#define L1_4f data2_4f,6
#define R1_4f data2_4f,7
#define L2_4f data3_4f,0
#define R2_4f data3_4f,1
; 12 data save in 6 location,
; 2nd data in high byte, 1st data in lower byte
ana_sen_1 equ 0x8e ; lf rt sensitivity
ana_sen_2 equ 0x8f ; dn up sensitivity
ana_sen_3 equ 0x90 ; O trig sensitivity
ana_sen_4 equ 0x91 ; squ X sensitivity
ana_sen_5 equ 0x92 ; R1 L1 sensitivity
ana_sen_6 equ 0x93 ; L2 R2 sensitivity
square_val equ 0x94
X_val equ 0x95
O_val equ 0x96
tri_val equ 0x97
R1_val equ 0x98
L1_val equ 0x99
R2_val equ 0x9a
L2_val equ 0x9b
left_val equ 0x9c
down_val equ 0x9d
right_val equ 0x9e
up_val equ 0x9f
E1_val equ 0xa0
E2_val equ 0xa1
lm_buffer equ 0xa2
sm_buffer equ 0xa3
sonycmd0 equ 0xa4
sonycmd1 equ 0xa5
lm_cmd equ 0xa6
sm_cmd equ 0xa7
; data buffer for send/receive for 4d
pre_data1 equ 0xce
pre_data2 equ 0xcf
pre_data3 equ 0xaa
pre_data4 equ 0xab
pre_data5 equ 0xac
pre_data6 equ 0xad
finadata1 equ 0xae
finadata2 equ 0xaf
finadata3 equ 0xb0
finadata4 equ 0xb1
finadata5 equ 0xb2
finadata6 equ 0xb3
finadata7 equ 0xb4
finadata8 equ 0xb5
finadata9 equ 0xb6
finadata10 equ 0xb7
finadata11 equ 0xb8
finadata12 equ 0xb9
finadata13 equ 0xba
finadata14 equ 0xbb
finadata15 equ 0xbc
finadata16 equ 0xbd
finadata17 equ 0xbe
finadata18 equ 0xbf
m_reset equ 0xc0
fina_index equ 0xc1
force_tmp1 equ 0xc2 ; tmp use in set force
force_id equ 0xc3 ; store the tmp pbid
beep_cnt equ 0xc4 ;BEEP COUNT, 0->BEEP ON, 1->BEEP OFF
pled_cmd equ 0xc5 ;LED CONTROL COMMAND
mem_free equ 0xc6 ;MEMORY FREE LEFT FOR DATA
divisor equ 0xc7
rem equ 0xc8
mul_cnt equ 0xc9
pclath_save2 equ 0xca
sen_null equ 0xcb
count equ 0xcc
data2_4f_t equ 0xcd
bu_force1 equ 0xd0
bu_force2 equ 0xd1
bu_force3 equ 0xd2
bu_force4 equ 0xd3
;d4 to ff for program RAM area
#define do_emloop temp_buf1 ;loop_count
#define do_meloop loop_count
#define byte_count mov_count
#define in_bit_loc temp_buf3
#define bit_count mov_count
#define nk_buf ee_addr
#define total_key pgm_buf2
#define in_pbid pgm_buf1
#define zero_count mov_buffer
#define shift_buf temp_buf1
#define total_bit temp_buf3
#define beep_pul loop_count
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -