📄 usbjoy32.lst
字号:
; RESPONSE SIZES
0002= DEVICE_STATUS_LENGTH: equ 2
0001= DEVICE_CONFIG_LENGTH: equ 1
0002= ENDPOINT_STALL_LENGTH: equ 2
0002= INTERFACE_STATUS_LENGTH: equ 2
0001= INTERFACE_ALTERNATE_LENGTH: equ 1
0001= INTERFACE_PROTOCOL_LENGTH: equ 1
;***** TRANSACTION TYPES
0000= DONE_TRANSACTION: equ 00h
0002= CONTROL_READ_TRANSACTION: equ 02h
0004= CONTROL_WRITE_TRANSACTION: equ 04h
0006= NO_DATA_CONTROL_TRANSACTION: equ 06h
;**********************************************************
; USB Descriptor and Request constants
; source p172,,175 USB specification
;**********************************************************
; Characterists of bmRequest Value
;
; D7 Data transfer direction
; 0 = Host to device
; 1 = Device to host
;
; D6..5 Type
; 0 = Standard
; 1 = Class
; 2 = Vendor
; 3 = Reserved
;
; D4..0 Recipient
; 0 = Device
; 1 = Interface
; 2 = Endpoint
; 3 = Other
; 4..31 = Reserved
;***** bmRequestType
0000= HOSTTODEVICE: equ 00h
0080= DEVICETOHOST: equ 80h
0000= STANDARD_TYPE: equ 00h
0020= CLASS_TYPE: equ 20h
0040= VENDOR_TYPE: equ 40h
0060= RESERVED_TYPE: equ 60h
0000= DEVICE_RECIPIENT: equ 00h
0001= INTERFACE_RECIPIENT: equ 01h
0002= ENDPOINT_RECIPIENT: equ 02h
0003= OTHER_RECIPIENT: equ 03h
;***** bRequest
0000= GET_STATUS: equ 00h
0001= CLEAR_FEATURE: equ 01h
0003= SET_FEATURE: equ 03h
0005= SET_ADDRESS: equ 05h
0006= GET_DESCRIPTOR: equ 06h
0007= SET_DESCRIPTOR: equ 07h
0008= GET_CONFIGURATION: equ 08h
0009= SET_CONFIGURATION: equ 09h
000A= GET_INTERFACE: equ 0Ah
000B= SET_INTERFACE: equ 0Bh
000C= SYNCH_FRAME: equ 0Ch
;***** Descriptor Types
0001= DEVICE: equ 01h
0002= CONFIGURATION: equ 02h
0003= STRING: equ 03h
0004= INTERFACE: equ 04h
0005= ENDPOINT: equ 05h
;***** Feature Selectors
0001= DEVICE_REMOTE_WAKEUP: equ 01h
0000= ENDPOINT_STALL: equ 00h
;***** HID Class Request Types
0001= GET_REPORT: equ 01h
0002= GET_IDLE: equ 02h
0003= GET_PROTOCOL: equ 03h
0009= SET_REPORT: equ 09h
000A= SET_IDLE: equ 0Ah
000B= SET_PROTOCOL: equ 0Bh
00F8= ep0_dmabuff: equ F8h ;endpoint 0 fifo
00F8= ep0_dmabuff0: equ ep0_dmabuff+0
00F9= ep0_dmabuff1: equ ep0_dmabuff+1
00FA= ep0_dmabuff2: equ ep0_dmabuff+2
00FB= ep0_dmabuff3: equ ep0_dmabuff+3
00FC= ep0_dmabuff4: equ ep0_dmabuff+4
00FD= ep0_dmabuff5: equ ep0_dmabuff+5
00FE= ep0_dmabuff6: equ ep0_dmabuff+6
00FF= ep0_dmabuff7: equ ep0_dmabuff+7
00F0= ep1_dmabuff: equ F0h ;endpoint 1 fifo
00F0= ep1_dmabuff0: equ ep1_dmabuff+0
00F1= ep1_dmabuff1: equ ep1_dmabuff+1
00F2= ep1_dmabuff2: equ ep1_dmabuff+2
00F3= ep1_dmabuff3: equ ep1_dmabuff+3
00F4= ep1_dmabuff4: equ ep1_dmabuff+4
00F5= ep1_dmabuff5: equ ep1_dmabuff+5
00F6= ep1_dmabuff6: equ ep1_dmabuff+6
00F7= ep1_dmabuff7: equ ep1_dmabuff+7
00E8= ep2_dmabuff: equ E8h ;endpoint 2 fifo
00E8= ep2_dmabuff0: equ ep2_dmabuff+0
00E9= ep2_dmabuff1: equ ep2_dmabuff+1
00EA= ep2_dmabuff2: equ ep2_dmabuff+2
00EB= ep2_dmabuff3: equ ep2_dmabuff+3
00EC= ep2_dmabuff4: equ ep2_dmabuff+4
00ED= ep2_dmabuff5: equ ep2_dmabuff+5
00EE= ep2_dmabuff6: equ ep2_dmabuff+6
00EF= ep2_dmabuff7: equ ep2_dmabuff+7
00F8= bmRequestType: equ ep0_dmabuff0 ;aliasing for enpoint 0
00F9= bRequest: equ ep0_dmabuff1
00FA= wValuelo: equ ep0_dmabuff2
00FB= wValuehi: equ ep0_dmabuff3
00FC= wIndexlo: equ ep0_dmabuff4
00FD= wIndexhi: equ ep0_dmabuff5
00FE= wLengthlo: equ ep0_dmabuff6
00FF= wLengthhi: equ ep0_dmabuff7
0036= button_debounce: equ 36h
003B= new_buttons: equ 3Bh
003D= hat_buttons: equ 3Dh
003E= fire_buttons: equ 3Eh
003F= ep0_temp_store: equ 3Fh ; Added by DEF for problem with P05
0040= rollover_bit: equ 40h
0041= discharge_cnt: equ 41h
0042= capture_a_temp: equ 42h
0043= capture_b_temp: equ 43h
0044= always_zero: equ 44h
0050= x_R1_diff1_new: equ 50h
0051= x_R1_diff2_new: equ 51h
0052= x_R1_diff1_old: equ 52h
0053= x_R1_diff2_old: equ 53h
0054= x_R2_diff1_new: equ 54h
0055= x_R2_diff2_new: equ 55h
0056= x_R2_diff1_old: equ 56h
0057= x_R2_diff2_old: equ 57h
0058= x_R1_average: equ 58h
0059= x_R2_average: equ 59h
005A= x_R12_Sum_MSB: equ 5ah
005B= x_R12_Sum_LSB: equ 5bh
005C= x_position: equ 5ch
0060= y_R1_diff1_new: equ 60h
0061= y_R1_diff2_new: equ 61h
0062= y_R1_diff1_old: equ 62h
0063= y_R1_diff2_old: equ 63h
0064= y_R2_diff1_new: equ 64h
0065= y_R2_diff2_new: equ 65h
0066= y_R2_diff1_old: equ 66h
0067= y_R2_diff2_old: equ 67h
0068= y_R1_average: equ 68h
0069= y_R2_average: equ 69h
006A= y_R12_Sum_MSB: equ 6ah
006B= y_R12_Sum_LSB: equ 6bh
006C= y_position: equ 6ch
0070= z_R1_diff1_new: equ 70h
0071= z_R1_diff2_new: equ 71h
0072= z_R1_diff1_old: equ 72h
0073= z_R1_diff2_old: equ 73h
0074= z_R2_diff1_new: equ 74h
0075= z_R2_diff2_new: equ 75h
0076= z_R2_diff1_old: equ 76h
0077= z_R2_diff2_old: equ 77h
0078= z_R1_average: equ 78h
0079= z_R2_average: equ 79h
007A= z_R12_Sum_MSB: equ 7ah
007B= z_R12_Sum_LSB: equ 7bh
007C= z_position: equ 7ch
0090= divider_top_hi: equ 90h
0091= divider_top_lo: equ 91h
0092= divider_bottom_hi: equ 92h
0093= divider_bottom_lo: equ 93h
0094= acc_a_hi: equ 94h
0095= acc_a_lo: equ 95h
0096= acc_b_hi: equ 96h
0097= acc_b_lo: equ 97h
0098= acc_c_hi: equ 98h
0099= acc_c_lo: equ 99h
009A= acc_d_hi: equ 9ah
009B= acc_d_lo: equ 9bh
009C= temp_div: equ 9ch
009D= RunningSum: equ 9dh
009E= RunningCarry: equ 9eh
009F= button_bits: equ 9fh
0000 MACRO SUB16x16 FirstValueHi, FirstValueLo, SecondValueHi, SecondValueLo, FinalValueHi, FinalValueLo
0000 mov a, [FirstValueLo]
0000 sub a, [SecondValueLo]
0000 mov [FinalValueLo], a
0000 mov a, [FirstValueHi]
0000 sbb a, [SecondValueHi]
0000 mov [FinalValueHi], a
0000 ENDM
0000 MACRO AVERAGE8x8 FirstValue, SecondValue, ThirdValue, FourthValue, RunningCarry, RunningSum, Average
0000 mov a, [FirstValue] ; Obtain first sum and carry bit
0000 add a, [SecondValue]
0000 mov [RunningSum], a
0000 mov a, 00h ; Zero out the accumulator, but keeps carry bit intact
0000 adc a, 00h ; Add carry to accumulator
0000 mov [RunningCarry], a
0000
0000 mov a, [RunningSum] ; Obtain second sum and running carry
0000 add a, [ThirdValue]
0000 mov [RunningSum], a
0000 mov a, 00h ; Zero out the accumulator, but keeps carry bit intact
0000 adc a, [RunningCarry]
0000 mov [RunningCarry], a
0000
0000 mov a, [RunningSum] ; Obtain third and final sum and running carry
0000 add a, [FourthValue]
0000 mov [RunningSum], a
0000 mov a, 00h ; Zero out the accumulator, but keeps carry bit intact
0000 adc a, [RunningCarry]
0000
0000 rrc a ; Move the 2 lsb bits to the 2 msb bit position
0000 rrc a
0000 rrc a
0000 and a, d0h
0000 mov [RunningCarry], a
0000
0000 mov a, [RunningSum] ; Shift Sum 2 bits to right and put carry bits in 2 MSb's
0000 asr a
0000 asr a
0000 and a, 3fh
0000 or a, [RunningCarry]
0000 mov [Average], a
0000 ENDM
0000 MACRO ADD8x8wCarry FirstValue, SecondValue, CarryMSByte, SumLSByte, SumMSByteStored, SumLSByteStored
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -