📄 vars.asm
字号:
;==========================================================================
; File Name : vars.asm
;
; Rev: Date: Author: Reason:
; 0.00 29-06-96 C.H.Lai First Version
; 1.00 xx-07-96 C.H.Lai First Release
;==========================================================================
; -------------
; 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
mem_free equ 0x6b ;MEMORY FREE LEFT FOR DATA
ptr_src equ 0x6a ;SOURCE POINTER
pclath_save2 equ 0x69
ptr_end equ 0x68 ;DESTINATION POINTER
ptr_nxt equ 0x67 ;CURRENT STEP POINTER
data_length equ 0x66 ;DATA LENGTH FOR A STEP
pgm_buf0 equ 0x65 ;LOWEST ORDER BYTE OF ENCODE KEY(S)
pgm_buf1 equ 0x64 ;MIDDLE ORDER BYTE OF ENCODE KEY(S)
pgm_buf2 equ 0x63 ;HIGHEST ORDER BYTE OF ENCODE KEY(S)
#define PGM_BUF_PTR pgm_buf0 ;POINTER TO PROGRAM BUFFER
loop_count equ 0x62 ;LOOP COUNTER
temp_buf1 equ 0x61 ;TEMPORARY BUFFER #1
temp_buf2 equ 0x60 ;TEMPORARY BUFFER #2
temp_buf3 equ 0x5f ;TEMPORARY BUFFER #3
ee_buf0 equ 0x5e ;EEPROM TRANSFER LOWER ORDER BYTE
ee_buf1 equ 0x5d ;EEPROM TRANSFER HIGHER ORDER BYTE
ee_addr equ 0x5c ;EEPROM STARTING ADDRESS POINTER
ee_io_buf equ 0x5b ; parameters for ee_io
ee_io_cnt equ 0x5a
#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_R3 5
#define BIT_L3 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 0x59 ;BUTTON RAW BUFFER LOWER ORDER
pb_raw1 equ 0x58 ;BUTTON RAW BUFFER HIGHER ORDER
#define PTR_PBRAW0 pb_raw0 ;POINTER TO PB_RAW0 BUFFER
pb_old0 equ 0x57 ;BUTTON OLD BUFFER LOWER ORDER
pb_old1 equ 0x56 ;BUTTON OLD BUFFER HIGHER ORDER
pb_out0 equ 0x55 ;BUTTON OUTPUT BUFFER LOWER ORDER
pb_out1 equ 0x54 ;BUTTON OUTPUT BUFFER HIGHER ORDER
pb_auto0 equ 0x53 ; auto fire mask low
pb_auto1 equ 0x52 ; 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 0x51 ; low nib-old buffer, hi nib-raw buffer
;#define auto_en_bit fn_button,0 ;SLOW BUTTON STATUS BIT
#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 auto_dis_bit fn_button,3
;#define r_auto_en_bit fn_button,4
#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
;#define r_auto_dis_bit fn_button,7
pled_cmd equ 0x50 ;LED CONTROL COMMAND
dur_step equ 0x4f ;STEP DURATION
tmr_sled equ 0x4e ;PAUSE LED COUNTER
tmr_aled equ 0x4d ;AUTO FIRE LED COUNTER
dur_dbc equ 0x4c ;BUTTON DEBOUNCE DURATION CONTROL
pbid equ 0x4b ;BUTTON NUMBER, 0-14 VALID
beep_cnt equ 0x4a ;BEEP COUNT, 0->BEEP ON, 1->BEEP OFF
; timer counters, dec. to zero and stop if dec. by p_timer()
tmr_step equ 0x49 ;FIRE STEP TIMER, N/100S
tmr_pled equ 0x48 ;LED TIMER, N/100S
tmr_auto equ 0x47 ;AUTO FIRE TIMER, N/100S
tmr_dbc equ 0x46 ;BUTTON DEBOUNCE TIMER, N/100S
tmr_beep equ 0x45 ;BEEP TIMER, N/100S
flag0 equ 0x44
flag1 equ 0x43
flag2 equ 0x42
flag3 equ 0x41
#define f_nmode flag3,0 ; old mode : 0
#define f_setting_mode flag3,1 ; new mode : 0 = normal
#define f_data1_is_0 flag3,2
#define f_data1_is_1 flag3,3
#define f_44_chmode flag3,4 ; change mode by command 44
#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_alt_vr flag2,7
;#define f_l_axis flag2,6
;#define f_r_axis flag2,5
#define f_auto_en flag2,4
#define f_auto_dis flag2,3
#define f_auto_press flag2,2
#define f_siointr flag2,1
#define f_sign flag1,7
#define f_autled2 flag1,6 ;0=ON ALWAYS, 1=BLINKS
#define f_autled1 flag1,5 ;0=LED OFF, 1=LED ON
#define f_sloled flag1,4 ;0=LED OFF, 1=LED FLASHES
#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 0x40
#define pb_check delay1 ; reuse delay1
delay0 equ 0x3f
#define button_max delay0 ; reuse delay0 location
vr_null equ 0x3e ; parameters for adj_axis()
#define sc_byte_count vr_null ; reuse
vr_value equ 0x3d
#define sc_shift_byte vr_value ; reuse
led_image equ 0x3c
#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'
divisor equ 0x3b
lo_byte equ 0x3a
hi_byte equ 0x39
mul_cnt equ 0x38
rem equ 0x37
offset equ 0x36
#define f_max_tmp1 offset
up_val equ 0x35
right_val equ 0x34
down_val equ 0x33
left_val equ 0x32
L2_val equ 0x31
R2_val equ 0x30
L1_val equ 0x2f
R1_val equ 0x2e
tri_val equ 0x2d
O_val equ 0x2c
X_val equ 0x2b
square_val equ 0x2a
;----- for TX/RCV.
last_command equ 0x29
pad_id equ 0x28
sc_tmp1 equ 0x27
sc_tmp2 equ 0x26
sc_tmp3 equ 0x25
flag4 equ 0x24
#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,6 ;
#define f_time_reset flag4,7
pclath_save equ 0x23
fsr_save equ 0x22
status_save equ 0x21
w_save equ 0x20
; -------------
; page 1
; -------------
; E4 - FF : button program memories
;
; A8 - CF : reserve for DC
;w_save equ 0xA0
;status_save equ 0xA1
;fsr_save equ 0xA2
;pclath_save equ 0xA3
sio_tmp1 equ 0xa4
sio_tmp2 equ 0xa5
sio_tmp3 equ 0xa6
data3_4f equ 0xa7 ; data for 4f
data2_4f equ 0xa8
data1_4f equ 0xa9
#define rx0_4f data1_4f,7
#define rx1_4f data1_4f,6
#define RX_4f data1_4f,5
#define RY_4f data1_4f,4
#define LX_4f data1_4f,3
#define LY_4f data1_4f,2
#define right_4f data1_4f,1
#define left_4f data1_4f,0
#define up_4f data2_4f,7
#define down_4f data2_4f,6
#define tri_4f data2_4f,5
#define O_4f data2_4f,4
#define X_4f data2_4f,3
#define square_4f data2_4f,2
#define L1_4f data2_4f,1
#define R1_4f data2_4f,0
#define L2_4f data3_4f,7
#define R2_4f data3_4f,6
ana_sen_1 equ 0xaa ; rt sensitivity
ana_sen_2 equ 0xab ; lf sensitivity
ana_sen_3 equ 0xac ; up sensitivity
ana_sen_4 equ 0xad ; dn sensitivity
ana_sen_5 equ 0xae ; trig sensitivity
ana_sen_6 equ 0xaf ; O sensitivity
ana_sen_7 equ 0xb0 ; X sensitivity
ana_sen_8 equ 0xb1 ; squ sensitivity
ana_sen_9 equ 0xb2 ; L1 sensitivity
ana_sen_10 equ 0xb3 ; R1 sensitivity
ana_sen_11 equ 0xb4 ; R2 sensitivity
ana_sen_12 equ 0xb5 ; L2 sensitivity
square_null equ 0xb6
X_null equ 0xb7
O_null equ 0xb8
tri_null equ 0xb9
R1_null equ 0xba
L1_null equ 0xbb
R2_null equ 0xbc
L2_null equ 0xbd
left_null equ 0xbe
down_null equ 0xbf
right_null equ 0xc0
up_null equ 0xc1
; data buffer for send/receive for 4d
pre_data1 equ 0xc2
pre_data2 equ 0xc3
pre_data3 equ 0xc4
pre_data4 equ 0xc5
pre_data5 equ 0xc6
pre_data6 equ 0xc7
finadata1 equ 0xc8
finadata2 equ 0xc9
finadata3 equ 0xca
finadata4 equ 0xcb
finadata5 equ 0xcc
finadata6 equ 0xcd
finadata7 equ 0xce
finadata8 equ 0xcf
finadata9 equ 0xd0
finadata10 equ 0xd1
finadata11 equ 0xd2
finadata12 equ 0xd3
finadata13 equ 0xd4
finadata14 equ 0xd5
finadata15 equ 0xd6
finadata16 equ 0xd7
finadata17 equ 0xd8
finadata18 equ 0xd9
m_reset equ 0xda
fina_index equ 0xdb
bu_force1 equ 0xdc
bu_force2 equ 0xdd
bu_force3 equ 0xde
bu_force4 equ 0xdf
force_tmp1 equ 0xe0 ; tmp use in set force
force_id equ 0xe1 ; store the tmp pbid
#define do_meloop loop_count
#define do_emloop 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 + -