?? 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 270H '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 2A80 jmp FIFO_Check
34 0002
35 0002 FIFO1_RD_check:
36 0002 0F08 mov a,00001000b
37 0003 2A80 jmp FIFO_Check
38 0004 FIFO2_RD_check:
39 0004 0F10 mov a,00010000b
40 0005 2A80 jmp FIFO_Check
41 0006 FIFO3_RD_check:
42 0006 0F18 mov a,00011000b
43 0007 2A80 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 2A80 jmp FIFO_Check
53 000A FIFO1_Wr_check:
54 000A 0F0A mov a,00001010b
55 000B 2A80 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 2A80 jmp FIFO_Check
59 000E FIFO3_Wr_check:
60 000E 0F1A mov a,00011010b
61 000F 2A80 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 22E2 call wait_4us
72 0018 3002 SET R1.@USB_Req ;Set request
73 0019 22E2 call wait_4us
74 001A 0F40 MOV A,(01H SHL @USB_Ready) ;access ready flag
75 001B Check:
76 001B 22D6 call wait_28us
77 001C 0602 AND A,R1 ;Z=0:ready/1:not ready
78 001D 0003 RET
79 001E
80 001E ;----------------------------------------------------------------------------
81 001E ;----BEGIN (Read FIFO)
82 001E ReadFIFO0:
83 001E 0F48 MOV A,USB_FIFO0
84 001F 2A96 JMP ReadFIFO
85 0020 ReadFIFO1:
86 0020 0F49 MOV A,USB_FIFO1
87 0021 2A96 JMP ReadFIFO
88 0022 ReadFIFO2:
89 0022 0F4A MOV A,USB_FIFO2
90 0023 2A96 JMP ReadFIFO
91 0024 ReadFIFO3:
92 0024 0F4B MOV A,USB_FIFO3
93 0025 2A96 JMP ReadFIFO
94 0026
95 0026 ReadFIFO:
96 0026 0080 E MOV FIFO_NO,A ;FIFO NO.
97 0027 1F00 E CLR FIFO_SendLen ;Initial length to 0
98 0028 0F00 E MOV A,OFFSET FIFO_Type ;set input FIFO buffer pointer
99 0029 0081 MOV MP0,A ;
100 002A ReadFIFOLoop:
101 002A 0700 E MOV A,FIFO_NO ;FIFO NO.
102 002B 0083 MOV MP1,A ;
103 002C 0702 MOV A,R1 ;Read FIFO data
104 002D 0000 nop
105 002E 0080 MOV R0,A ;
106 002F 1480 E INC FIFO_SendLen ;Getting data length++
107 0030 1481 INC MP0 ;Update to next pointer
108 0031 0F08 MOV A,FIFO_SIZE ;FIFO full ?
109 0032 0400 E XOR A,FIFO_SendLen ;
110 0033 3D0A SZ Z ;
111 0034 2AC7 JMP E1ND_Request ;Yes
112 0035 0F46 MOV A,USB_MISC ;Check ready ?
113 0036 0083 MOV MP1,A ;
114 0037 22D6 call wait_28us
115 0038 3F02 SZ R1.@USB_Ready ;
"File: USBLIB2.ASM Holtek Cross-Assembler Version 2.86 Page 3
116 0039 2A9A JMP ReadFIFOLoop ;Yes
117 003A 2AC7 JMP E1ND_Request ;No Exit for not 8 bytes data
118 003B ;----END (Read FIFO)
119 003B
120 003B ;----------------------------------------------------------------------------
121 003B ;----BEGIN (Write FIFO)
122 003B ;Write FIFO_OUT1 Data to FIFO Buffer
123 003B WriteFIFO0:
124 003B 0F48 MOV A,USB_FIFO0
125 003C 2AB3 JMP WriteFIFO
126 003D WriteFIFO1:
127 003D 0F49 MOV A,USB_FIFO1
128 003E 2AB3 JMP WriteFIFO
129 003F WriteFIFO2:
130 003F 0F4A MOV A,USB_FIFO2
131 0040 2AB3 JMP WriteFIFO
132 0041 WriteFIFO3:
133 0041 0F4B MOV A,USB_FIFO3
134 0042 2AB3 JMP WriteFIFO
135 0043
136 0043 WriteFIFO:
137 0043 0080 E MOV FIFO_NO,A ;FIFO NO.
138 0044 0F00 E MOV A,OFFSET FIFO_OUT1 ;set output FIFO buffer pointer
139 0045 0081 MOV MP0,A ;
140 0046 WriteFIFOLoop:
141 0046 1080 E SZ FIFO_SendLen ;Any data to write ?
142 0047 2AB9 JMP WriteFIFOTag ;Yes
143 0048 2AC7 JMP EndWrite ;No
144 0049 WriteFIFOTag:
145 0049 0700 E MOV A,FIFO_NO ;FIFO NO.
146 004A 0083 MOV MP1,A ;
147 004B
148 004B 339B SET FIFO_w_c_b
149 004C 0700 MOV A,R0 ;Write data to FIFO
150 004D 0082 MOV R1,A ;
151 004E 379B CLR FIFO_w_c_b
152 004F
153 004F 1580 E DEC FIFO_SendLen ;Getting data length++
154 0050 1481 INC MP0 ;Update to next pointer
155 0051 0F46 MOV A,USB_MISC ;End of FIFO ?
156 0052 0083 MOV MP1,A ;
157 0053 22D6 call wait_28us
158 0054 3F02 SZ R1.@USB_Ready ;
159 0055 2AB6 JMP WriteFIFOLoop ;No
160 0056 2AC7 jmp EndWrite
161 0057 ;------------------------------------------------------------------------
162 0057 WriteLen0:
163 0057 ;; SnZ bFLAG_FIFO_REDY
164 0057 ;; jmp E1ND_Request
165 0057 ;; set bFLAG_AdrF ;have finished address write
166 0057 ;; clr bFLAG_FIFO_REDY
167 0057 ;; clr int_reg.@int0
168 0057 ;;wait_int0_high:
169 0057 ;; clr wdt
170 0057 ;; snz int_reg.@int0
171 0057 ;; jmp wait_int0_high
172 0057 EndWrite:
173 0057 ;----------------------------------------------------------------------------
174 0057 ;----BEGIN (End request)
175 0057 E1ND_Request:
"File: USBLIB2.ASM Holtek Cross-Assembler Version 2.86 Page 4
176 0057 0F46 MOV A,USB_MISC
177 0058 0083 MOV MP1,A
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -