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

📄 vars.asm

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