📄 usblib2.lst
字号:
"File: USBLIB2.ASM Holtek Cross-Assembler Version 2.86 Page 1
1 0000 include ht82k96e.inc
2 0000 ;include usbrf.inc
3 0000 include usbfifo.inc
4 0000
5 0000
6 0000
7 0000 extern stall :byte
8 0000 extern FIFO_Type :byte
9 0000 extern FIFO_OUT1 :byte
10 0000 extern int_temp1 :byte
11 0000 extern int_temp2 :byte
12 0000 extern fifo_sendlen :byte
13 0000 extern bhas_len0 :bit
14 0000 ;extern bFLAG_FIFO_REDY :bit
15 0000 ;extern bFLAG_AdrF :bit
16 0000 extern bRmtWakeup :bit
17 0000 extern baddr_state :bit
18 0000
19 0000 extern CMD_ADDR :byte
20 0000
21 0000 FIFO_temp equ int_temp1
22 0000 fifo_no equ int_temp2
23 0000 FIFO_ADDR equ int_temp1
24 0000
25 0000
26 0000
27 0000 USBlib .Section AT 280H 'code' ;AT USBlib_ADDRESS
28 0000 ;----------------------------------------------------------------------------
29 0000 ;FIFO 0 ready to read ?
30 0000
31 0000 FIFO0_Rd_Check:
32 0000 0F00 mov a,00000000b
33 0001 2A90 jmp FIFO_Check
34 0002
35 0002 FIFO1_RD_check:
36 0002 0F08 mov a,00001000b
37 0003 2A90 jmp FIFO_Check
38 0004 FIFO2_RD_check:
39 0004 0F10 mov a,00010000b
40 0005 2A90 jmp FIFO_Check
41 0006 FIFO3_RD_check:
42 0006 0F18 mov a,00011000b
43 0007 2A90 jmp FIFO_Check
44 0008
45 0008
46 0008 ;----------------------------------------------------------------------------
47 0008 ;Len 0 ready to write ?
48 0008 LEN0_Wr_Check:
49 0008 ;FIFO 0 ready to write ?
50 0008 FIFO0_Wr_Check:
51 0008 0F02 mov a,00000010b
52 0009 2A90 jmp FIFO_Check
53 000A FIFO1_Wr_check:
54 000A 0F0A mov a,00001010b
55 000B 2A90 jmp FIFO_Check
"File: USBLIB2.ASM Holtek Cross-Assembler Version 2.86 Page 2
56 000C FIFO2_Wr_check:
57 000C 0F12 mov a,00010010b
58 000D 2A90 jmp FIFO_Check
59 000E FIFO3_Wr_check:
60 000E 0F1A mov a,00011010b
61 000F 2A90 jmp FIFO_Check
62 0010
63 0010 FIFO_Check:
64 0010 0080 E mov FIFO_temp,a
65 0011 0F46 MOV A,USB_MISC
66 0012 0083 MOV MP1,A
67 0013 0702 mov a,r1
68 0014 0EE0 and a,11100000b
69 0015 0500 E or a,fifo_temp
70 0016 0082 mov r1,a
71 0017 22F3 call wait_4us
72 0018 3002 SET R1.@USB_Req ;Set request
73 0019 22F3 call wait_4us
74 001A 22F3 call wait_4us
75 001B 0F40 MOV A,(01H SHL @USB_Ready) ;access ready flag
76 001C Check:
77 001C 22E7 call wait_28us
78 001D 0602 AND A,R1 ;Z=0:ready/1:not ready
79 001E 0003 RET
80 001F
81 001F ;----------------------------------------------------------------------------
82 001F ;----BEGIN (Read FIFO)
83 001F ReadFIFO0:
84 001F 0F48 MOV A,USB_FIFO0
85 0020 2AA7 JMP ReadFIFO
86 0021 ReadFIFO1:
87 0021 0F49 MOV A,USB_FIFO1
88 0022 2AA7 JMP ReadFIFO
89 0023 ReadFIFO2:
90 0023 0F4A MOV A,USB_FIFO2
91 0024 2AA7 JMP ReadFIFO
92 0025 ReadFIFO3:
93 0025 0F4B MOV A,USB_FIFO3
94 0026 2AA7 JMP ReadFIFO
95 0027
96 0027 ReadFIFO:
97 0027 0080 E MOV FIFO_NO,A ;FIFO NO.
98 0028 1F00 E CLR FIFO_SendLen ;Initial length to 0
99 0029 0F00 E MOV A,OFFSET FIFO_Type ;set input FIFO buffer pointer
100 002A 0081 MOV MP0,A ;
101 002B ReadFIFOLoop:
102 002B 0700 E MOV A,FIFO_NO ;FIFO NO.
103 002C 0083 MOV MP1,A ;
104 002D 0702 MOV A,R1 ;Read FIFO data
105 002E 0000 nop
106 002F 0080 MOV R0,A ;
107 0030 1480 E INC FIFO_SendLen ;Getting data length++
108 0031 1481 INC MP0 ;Update to next pointer
109 0032 0F08 MOV A,FIFO_SIZE ;FIFO full ?
110 0033 0400 E XOR A,FIFO_SendLen ;
111 0034 3D0A SZ Z ;
112 0035 2AD8 JMP E1ND_Request ;Yes
113 0036 0F46 MOV A,USB_MISC ;Check ready ?
114 0037 0083 MOV MP1,A ;
115 0038 22E7 call wait_28us
"File: USBLIB2.ASM Holtek Cross-Assembler Version 2.86 Page 3
116 0039 3F02 SZ R1.@USB_Ready ;
117 003A 2AAB JMP ReadFIFOLoop ;Yes
118 003B 2AD8 JMP E1ND_Request ;No Exit for not 8 bytes data
119 003C ;----END (Read FIFO)
120 003C
121 003C ;----------------------------------------------------------------------------
122 003C ;----BEGIN (Write FIFO)
123 003C ;Write FIFO_OUT1 Data to FIFO Buffer
124 003C WriteFIFO0:
125 003C 0F48 MOV A,USB_FIFO0
126 003D 2AC4 JMP WriteFIFO
127 003E WriteFIFO1:
128 003E 0F49 MOV A,USB_FIFO1
129 003F 2AC4 JMP WriteFIFO
130 0040 WriteFIFO2:
131 0040 0F4A MOV A,USB_FIFO2
132 0041 2AC4 JMP WriteFIFO
133 0042 WriteFIFO3:
134 0042 0F4B MOV A,USB_FIFO3
135 0043 2AC4 JMP WriteFIFO
136 0044
137 0044 WriteFIFO:
138 0044 0080 E MOV FIFO_NO,A ;FIFO NO.
139 0045 0F00 E MOV A,OFFSET FIFO_OUT1 ;set output FIFO buffer pointer
140 0046 0081 MOV MP0,A ;
141 0047 WriteFIFOLoop:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -