⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vars.asm

📁 VCP201_CODE is a FPGA source code.
💻 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 + -