📄 function.lst
字号:
"File: FUNCTION.ASM Holtek Cross-Assembler Version 2.86 Page 1
1 0000 ;*********************************************************************
2 0000 ; Functin Library
3 0000 ; Author : Ansonku
4 0000 ; EMail : ansonku@holtek.com.tw
5 0000 ; Date : 2005/01/11
6 0000 ;*********************************************************************
7 0000 #include ht82a851r.inc
8 0000 #include const.inc
9 0000 ;=====================================================================
10 0000 ; Descriptor Label
11 0000 ;=====================================================================
12 0000 ;2005/11/01 ClearFeature_Endpoint add Send_Hand_Shake
13 0000 ;
14 0000 ;
15 0000 ;
16 0000 ;
17 0000 ;
18 0000 ;
19 0000 ;
20 0000 ;
21 0000
22 0000
23 0000
24 0000
25 0000
26 0000 extern control_read_table:NEAR
27 0000 extern device_desc_table:NEAR
28 0000 extern config_desc_table:NEAR
29 0000
30 0000 extern end_config_desc_table:NEAR
31 0000 extern hid_report_desc_table:NEAR
32 0000 extern end_hid_report_desc_table:NEAR
33 0000
34 0000 extern USBStringLanguageDescription:NEAR
35 0000 extern USBStringDescription1:NEAR
36 0000 extern USBStringDescription2:NEAR
37 0000 extern USBStringDescription3:NEAR
38 0000 extern HID_Desc:NEAR
39 0000
40 0000 extern config_desc_length:NEAR
41 0000 extern hid_desc_length:NEAR
42 0000 extern report_desc_length:NEAR
43 0000
44 0000
45 0000 extern USB_EP0_ISR_END:NEAR
46 0000
47 0000 ;=====================================================================
48 0000 ; External Variable
49 0000 ;=====================================================================
50 0000
51 0000 ;modify 2006-09-22
52 0000 extern FIFO_SIZE:byte
53 0000 ;-----------------------------
54 0000 extern FIFO_SendLen:byte
55 0000 extern FIFO_Type:byte
"File: FUNCTION.ASM Holtek Cross-Assembler Version 2.86 Page 2
56 0000 extern FIFO_Request:byte
57 0000 extern FIFO_wValueL:byte
58 0000 extern FIFO_wValueH:byte
59 0000 extern FIFO_wIndexL:byte
60 0000 extern FIFO_wIndexH:byte
61 0000 extern FIFO_wLengthL:byte
62 0000 extern FIFO_wLengthH:byte
63 0000
64 0000 extern FIFO_Out1:byte
65 0000 extern FIFO_Out2:byte
66 0000 extern FIFO_Out3:byte
67 0000 extern FIFO_Out4:byte
68 0000 extern FIFO_Out5:byte
69 0000 extern FIFO_Out6:byte
70 0000 extern FIFO_Out7:byte
71 0000 extern FIFO_Out8:byte
72 0000
73 0000 extern USB_Interface:byte
74 0000 extern USB_Interface_Alt:byte
75 0000 extern USB_Configuration:byte
76 0000
77 0000 extern FIFO_ADDR:byte
78 0000
79 0000
80 0000
81 0000 extern Loop_Counter:byte
82 0000 extern Data_Count:byte
83 0000 extern Data_Start:byte
84 0000
85 0000
86 0000 extern nCmdIndex1:byte
87 0000 extern nCmdIndex2:byte
88 0000 extern nCmdIndex3:byte
89 0000 extern VolumeH_Save:byte
90 0000 extern VolumeL_Save:byte
91 0000 extern bFlag_Audio_Mute:bit
92 0000 ;modify 2006-09-28
93 0000 extern bFlag_Mic_Mute:bit
94 0000
95 0000 ;=====================================================================
96 0000 ; FIFO Status
97 0000 ;=====================================================================
98 0000
99 0000 ;FIFO
100 0000 extern FIFO_TEMP:byte
101 0000 extern bFlag_Real_Cmd:bit
102 0000 extern bFlag_FIFO_Ready:bit
103 0000 extern bFlag_FIFO_LEN0:bit
104 0000 extern bFlag_RD_HTable:bit
105 0000 extern bFlag_wait_control_out:bit
106 0000 extern bFlag_SET_ADDRESS:bit
107 0000 extern bFlag_SCMD:bit
108 0000 extern bFlag_Enum_Ready:bit
109 0000
110 0000 extern bFlag_SetConfiguration_Ready:bit
111 0000 extern bFlag_SetInterface_Ready:bit
112 0000
113 0000 extern StageOne:NEAR
114 0000 extern USB_ISR_END:NEAR
115 0000 ;********************************************************************
"File: FUNCTION.ASM Holtek Cross-Assembler Version 2.86 Page 3
116 0000 ; USB LIB
117 0000 ; 1.CHECK FIFOX RD READEY? bFlag_FIFO_Ready = 1:bFlag_FIFO_Ready = 0
118 0000 ;********************************************************************
119 0000 FIFO0_RD_CHECK:
120 0000 0722 MOV A,UCC
121 0001 0D07 OR A,00000111b
122 0002 0EF8 AND A,11111000b
123 0003 00A2 MOV UCC,A
124 0004
125 0004 0F00 MOV A,00000000b
126 0005 2800 R JMP FIFO_CHECK
127 0006 FIFO1_RD_CHECK:
128 0006 0722 MOV A,UCC
129 0007 0D07 OR A,00000111b
130 0008 0EF9 AND A,11111001b
131 0009 00A2 MOV UCC,A
132 000A
133 000A 0F00 MOV A,00000000b
134 000B 2800 R JMP FIFO_CHECK
135 000C FIFO2_RD_CHECK:
136 000C 0722 MOV A,UCC
137 000D 0D07 OR A,00000111b
138 000E 0EFA AND A,11111010b
139 000F 00A2 MOV UCC,A
140 0010
141 0010 0F00 MOV A,00000000b
142 0011 2800 R JMP FIFO_CHECK
143 0012 FIFO3_RD_CHECK:
144 0012 0722 MOV A,UCC
145 0013 0D07 OR A,00000111b
146 0014 0EFB AND A,11111011b
147 0015 00A2 MOV UCC,A
148 0016
149 0016 0F00 MOV A,00000000b
150 0017 2800 R JMP FIFO_CHECK
151 0018 FIFO4_RD_CHECK:
152 0018 0722 MOV A,UCC
153 0019 0D07 OR A,00000111b
154 001A 0EFC AND A,11111100b
155 001B 00A2 MOV UCC,A
156 001C
157 001C 0F00 MOV A,00000000b
158 001D 2800 R JMP FIFO_CHECK
159 001E
160 001E FIFO5_RD_CHECK:
161 001E 0722 MOV A,UCC
162 001F 0D07 OR A,00000111b
163 0020 0EFD AND A,11111101b
164 0021 00A2 MOV UCC,A
165 0022
166 0022 0F00 MOV A,00000000b
167 0023 2800 R JMP FIFO_CHECK
168 0024 ;********************************************************************
169 0024 ; USB LIB
170 0024 ; 1.CHECK FIFOX WR READEY ? bFlag_FIFO_Ready = 1:bFlag_FIFO_Ready = 0
171 0024 ;********************************************************************
172 0024
173 0024 ;LEN0 ready to write??
174 0024 LEN0_WR_CHECK:
175 0024 ;CHECK FIFOX ready to write?
"File: FUNCTION.ASM Holtek Cross-Assembler Version 2.86 Page 4
176 0024 FIFO0_WR_CHECK:
177 0024 0722 MOV A,UCC
178 0025 0D07 OR A,00000111b
179 0026 0EF8 AND A,11111000b
180 0027 00A2 MOV UCC,A
181 0028
182 0028 0F02 MOV A,00000010b
183 0029 2800 R JMP FIFO_CHECK
184 002A FIFO1_WR_CHECK:
185 002A 0722 MOV A,UCC
186 002B 0D07 OR A,00000111b
187 002C 0EF9 AND A,11111001b
188 002D 00A2 MOV UCC,A
189 002E
190 002E 0F02 MOV A,00000010b
191 002F 2800 R JMP FIFO_CHECK
192 0030 FIFO2_WR_CHECK:
193 0030 0722 MOV A,UCC
194 0031 0D07 OR A,00000111b
195 0032 0EFA AND A,11111010b
196 0033 00A2 MOV UCC,A
197 0034
198 0034 0F02 MOV A,00000010b
199 0035 2800 R JMP FIFO_CHECK
200 0036 FIFO3_WR_CHECK:
201 0036 0722 MOV A,UCC
202 0037 0D07 OR A,00000111b
203 0038 0EFB AND A,11111011b
204 0039 00A2 MOV UCC,A
205 003A
206 003A 0F02 MOV A,00000010b
207 003B 2800 R JMP FIFO_CHECK
208 003C FIFO4_WR_CHECK:
209 003C 0722 MOV A,UCC
210 003D 0D07 OR A,00000111b
211 003E 0EFC AND A,11111100b
212 003F 00A2 MOV UCC,A
213 0040
214 0040 0F02 MOV A,00000010b
215 0041 2800 R JMP FIFO_CHECK
216 0042
217 0042 FIFO5_WR_CHECK:
218 0042 0722 MOV A,UCC
219 0043 0D07 OR A,00000111b
220 0044 0EFD AND A,11111101b
221 0045 00A2 MOV UCC,A
222 0046
223 0046 0F02 MOV A,00000010b
224 0047 2800 R JMP FIFO_CHECK
225 0048
226 0048 FIFO_CHECK:
227 0048 0001 clr wdt
228 0049 0080 E MOV FIFO_TEMP,A
229 004A 0F26 MOV A,USB_MISC
230 004B 0083 MOV MP1,A
231 004C 0702 MOV A,R1
232 004D 0EF8 AND A,11111000b
233 004E 0500 E OR A,FIFO_TEMP
234 004F 0082 MOV R1,A
235 0050 2000 R CALL Delay_3us
"File: FUNCTION.ASM Holtek Cross-Assembler Version 2.86 Page 5
236 0051 3002 SET R1.@MISC_REQ ;set request
237 0052 2000 R CALL Delay_28us
238 0053 3000 E SET bFlag_FIFO_Ready
239 0054 3B02 SNZ R1.@MISC_Ready
240 0055 3400 E CLR bFlag_FIFO_Ready ;if MISC.Ready = 1 -> bFlag_FIFO_Ready = 1
241 0056 3000 E SET bFlag_FIFO_LEN0
242 0057 3B82 SNZ R1.@MISC_LEN0
243 0058 3400 E CLR bFlag_FIFO_LEN0
244 0059
245 0059 ;;SZ bFlag_FIFO_Ready
246 0059 3426 clr MISC.@MISC_REQ
247 005A 0001 clr wdt
248 005B 0003 RET
249 005C
250 005C ;modify 2006-09-22
251 005C ReadLen0:
252 005C 0F28 MOV A,USB_FIFO0
253 005D 0083 MOV MP1,A
254 005E 0702 MOV A,R1
255 005F 0000 NOP
256 0060 2800 R JMP Read_FIFO_END
257 0061 Read_FIFO0:
258 0061 0F08 MOV A,USB_FIFO0_SIZE
259 0062 0080 E MOV FIFO_SIZE,A
260 0063 0F28 MOV A,USB_FIFO0
261 0064 2800 R JMP Read_FIFO
262 0065 Read_FIFO1:
263 0065 0F08 MOV A,USB_FIFO1_SIZE
264 0066 0080 E MOV FIFO_SIZE,A
265 0067 0F29 MOV A,USB_FIFO1
266 0068 2800 R JMP Read_FIFO
267 0069 Read_FIFO2:
268 0069 0F08 MOV A,USB_FIFO2_SIZE
269 006A 0080 E MOV FIFO_SIZE,A
270 006B 0F2A MOV A,USB_FIFO2
271 006C 2800 R JMP Read_FIFO
272 006D Read_FIFO3:
273 006D 0F08 MOV A,USB_FIFO3_SIZE
274 006E 0080 E MOV FIFO_SIZE,A
275 006F 0F2B MOV A,USB_FIFO3
276 0070 2800 R JMP Read_FIFO
277 0071 Read_FIFO4:
278 0071 0F08 MOV A,USB_FIFO4_SIZE
279 0072 0080 E MOV FIFO_SIZE,A
280 0073 0F2C MOV A,USB_FIFO4
281 0074 2800 R JMP Read_FIFO
282 0075 Read_FIFO5:
283 0075 0F08 MOV A,USB_FIFO5_SIZE
284 0076 0080 E MOV FIFO_SIZE,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -