📄 usbd12.lst
字号:
C51 COMPILER V6.20c USBD12 12/03/2002 17:19:43 PAGE 1
C51 COMPILER V6.20c, COMPILATION OF MODULE USBD12
OBJECT MODULE PLACED IN USBD12.OBJ
COMPILER INVOKED BY: E:\WIN98\HARDWARE\KEIL620\C51\BIN\C51.EXE USBD12.C DB OE SMALL ROM(LARGE)
stmt level source
1
2 #include "HAL.H"
3 #include "SMPro.H"
4 #include "USBD12.H"
5 #include "VDOR.H"
6 //#include "FLASH.H"
7
8 extern ZBOARDFLAGS bZBoardFlags;
9 //extern unsigned char idata GenBuf[GENBUF_LENGH];
10 extern unsigned char nFlashPhase;
11 extern CODE_DATA idata CodeData;
12 /*
13 void USBD12_SetAddressEnable(unsigned char bAddress, unsigned char bEnable)
14 {
15 if(bZBoardFlags.bits.bIN_ISR == 0)
16 DISABLE_INTERRUPTS;
17
18 //#ifdef PARALLEL_BUS
19 // P1 &= 0xf1; // Enable D12
20 //#endif
21 ENABLE_D12;
22
23 outportb(IC_D12_COMMAND, 0xD0);
24 if(bEnable)
25 bAddress |= 0x80;
26 outportb(IC_D12_DATA, bAddress);
27
28 //#ifdef PARALLEL_BUS
29 // P1 |= 0x0e; // Disable D12
30 //#endif
31 DISABLE_D12;
32 if(bZBoardFlags.bits.bIN_ISR == 0)
33 ENABLE_INTERRUPTS;
34 }
35
36 void USBD12_SetEndpointEnable(unsigned char bEnable)
37 {
38 if(bZBoardFlags.bits.bIN_ISR == 0)
39 DISABLE_INTERRUPTS;
40
41 //#ifdef PARALLEL_BUS
42 // P1 &= 0xf1; // Enable D12
43 //#endif
44 ENABLE_D12;
45 outportb(IC_D12_COMMAND, 0xD8);
46 if(bEnable)
47 outportb(IC_D12_DATA, 1);
48 else
49 outportb(IC_D12_DATA, 0);
50
51 //#ifdef PARALLEL_BUS
52 // P1 |= 0x0e; // Disable D12
53 //#endif
54 DISABLE_D12;
55 if(bZBoardFlags.bits.bIN_ISR == 0)
C51 COMPILER V6.20c USBD12 12/03/2002 17:19:43 PAGE 2
56 ENABLE_INTERRUPTS;
57 }
58
59 void USBD12_SetMode(unsigned char bConfig, unsigned char bClkDiv)
60 {
61 if(bZBoardFlags.bits.bIN_ISR == 0)
62 DISABLE_INTERRUPTS;
63
64 //#ifdef PARALLEL_BUS
65 // P1 &= 0xf1; // Enable D12
66 //#endif
67 ENABLE_D12;
68 outportb(IC_D12_COMMAND, 0xF3);
69 outportb(IC_D12_DATA, bConfig);
70 outportb(IC_D12_DATA, bClkDiv);
71
72 //#ifdef PARALLEL_BUS
73 // P1 |= 0x0e; // Disable D12
74 //#endif
75 DISABLE_D12;
76 if(bZBoardFlags.bits.bIN_ISR == 0)
77 ENABLE_INTERRUPTS;
78 }
79
80 void USBD12_SetDMA(unsigned char bMode)
81 {
82 if(bZBoardFlags.bits.bIN_ISR == 0)
83 DISABLE_INTERRUPTS;
84
85 //#ifdef PARALLEL_BUS
86 // P1 &= 0xf1; // Enable D12
87 //#endif
88 ENABLE_D12;
89 outportb(IC_D12_COMMAND, 0xFB);
90 outportb(IC_D12_DATA, bMode);
91
92 //#ifdef PARALLEL_BUS
93 // P1 |= 0x0e; // Disable D12
94 //#endif
95 DISABLE_D12;
96 if(bZBoardFlags.bits.bIN_ISR == 0)
97 ENABLE_INTERRUPTS;
98 }
99
100 unsigned short USBD12_ReadInterruptRegister(void)
101 {
102 unsigned char b1;
103 unsigned int j;
104
105 //#ifdef PARALLEL_BUS
106 // P1 &= 0xf1; // Enable D12
107 //#endif
108 ENABLE_D12;
109 outportb(IC_D12_COMMAND, 0xF4);
110 b1 = inportb(IC_D12_DATA);
111 j = inportb(IC_D12_DATA);
112
113 //#ifdef PARALLEL_BUS
114 // P1 |= 0x0e; // Disable D12
115 //#endif
116 DISABLE_D12;
117 j <<= 8;
C51 COMPILER V6.20c USBD12 12/03/2002 17:19:43 PAGE 3
118 j += b1;
119
120 return j;
121 }
122
123 unsigned char USBD12_SelectEndpoint(unsigned char bEndp)
124 {
125 unsigned char c;
126
127 if(bZBoardFlags.bits.bIN_ISR == 0)
128 DISABLE_INTERRUPTS;
129
130 //#ifdef PARALLEL_BUS
131 // P1 &= 0xf1; // Enable D12
132 //#endif
133 ENABLE_D12;
134 outportb(IC_D12_COMMAND, bEndp);
135 c = inportb(IC_D12_DATA);
136
137 //#ifdef PARALLEL_BUS
138 // P1 |= 0x0e; // Disable D12
139 //#endif
140 DISABLE_D12;
141 if(bZBoardFlags.bits.bIN_ISR == 0)
142 ENABLE_INTERRUPTS;
143
144 return c;
145 }
146
147 unsigned char USBD12_ReadLastTransactionStatus(unsigned char bEndp)
148 {
149 unsigned char nVal;
150 //#ifdef PARALLEL_BUS
151 // P1 &= 0xf1; // Enable D12
152 //#endif
153 ENABLE_D12;
154 outportb(IC_D12_COMMAND, 0x40 + bEndp);
155 nVal = inportb(IC_D12_DATA);
156
157 //#ifdef PARALLEL_BUS
158 // P1 |= 0x0e; // Disable D12
159 //#endif
160 DISABLE_D12;
161 return nVal;
162 }
163
164
165 void USBD12_SetEndpointStatus(unsigned char bEndp, unsigned char bStalled)
166 {
167 if(bZBoardFlags.bits.bIN_ISR == 0)
168 DISABLE_INTERRUPTS;
169
170 //#ifdef PARALLEL_BUS
171 // P1 &= 0xf1; // Enable D12
172 //#endif
173 ENABLE_D12;
174 outportb(IC_D12_COMMAND, 0x40 + bEndp);
175 outportb(IC_D12_DATA, bStalled);
176
177 //#ifdef PARALLEL_BUS
178 // P1 |= 0x0e; // Disable D12
179 //#endif
C51 COMPILER V6.20c USBD12 12/03/2002 17:19:43 PAGE 4
180 DISABLE_D12;
181 if(bZBoardFlags.bits.bIN_ISR == 0)
182 ENABLE_INTERRUPTS;
183 }
184
185 unsigned char USBD12_ReadEndpoint(unsigned char endp, unsigned char * buf, unsigned char len)
186 {
187 unsigned char i, j, k = 0;
188
189 if(bZBoardFlags.bits.bIN_ISR == 0)
190 DISABLE_INTERRUPTS;
191
192 //#ifdef PARALLEL_BUS
193 // P1 &= 0xf1; // Enable D12
194 //#endif
195 ENABLE_D12;
196 outportb(IC_D12_COMMAND, endp);
197 if((inportb(IC_D12_DATA) & USBD12_FULLEMPTY) == 0) {
198 if(bZBoardFlags.bits.bIN_ISR == 0)
199 ENABLE_INTERRUPTS;
200 return 0;
201 }
202
203 outportb(IC_D12_COMMAND, 0xF0);
204 j = inportb(IC_D12_DATA);
205 j = inportb(IC_D12_DATA);
206
207 if(j > len)
208 j = len;
209
210 for(i=0; i<j; i++)
211 *(buf+i) = inportb(IC_D12_DATA);
212
213 outportb(IC_D12_COMMAND, 0xF2);
214
215 //#ifdef PARALLEL_BUS
216 // P1 |= 0x0e; // Disable D12
217 //#endif
218 DISABLE_D12;
219 if(bZBoardFlags.bits.bIN_ISR == 0)
220 ENABLE_INTERRUPTS;
221
222 return j;
223 }
224
225 unsigned char USBD12_ReadEndpointStatus(unsigned char bEndp)
226 {
227 unsigned char c;
228
229 if(bZBoardFlags.bits.bIN_ISR == 0)
230 DISABLE_INTERRUPTS;
231
232 //#ifdef PARALLEL_BUS
233 // P1 &= 0xf1; // Enable D12
234 //#endif
235 ENABLE_D12;
236 outportb(IC_D12_COMMAND, 0x80 + bEndp);
237 c = inportb(IC_D12_DATA);
238
239 //#ifdef PARALLEL_BUS
240 // P1 |= 0x0e; // Disable D12
241 //#endif
C51 COMPILER V6.20c USBD12 12/03/2002 17:19:43 PAGE 5
242 DISABLE_D12;
243 if(bZBoardFlags.bits.bIN_ISR == 0)
244 ENABLE_INTERRUPTS;
245
246 return c;
247 }
248 /*
249 void USBD12_SendResume(void)
250 {
251 #ifdef PARALLEL_BUS
252 P1 &= 0xf1; // Enable D12
253 #endif
254
255 outportb(IC_D12_COMMAND, 0xF6);
256
257 #ifdef PARALLEL_BUS
258 P1 |= 0x0e; // Disable D12
259 #endif
260
261 }
262
263 unsigned short USBD12_ReadCurrentFrameNumber(void)
264 {
265 unsigned short i,j;
266
267 if(bZBoardFlags.bits.bIN_ISR == 0)
268 DISABLE_INTERRUPTS;
269
270 #ifdef PARALLEL_BUS
271 P1 &= 0xf1; // Enable D12
272 #endif
273
274 outportb(IC_D12_COMMAND, 0xF5);
275 i= inportb(IC_D12_DATA);
276 j = inportb(IC_D12_DATA);
277
278 #ifdef PARALLEL_BUS
279 P1 |= 0x0e; // Disable D12
280 #endif
281
282 i += (j<<8);
283
284 if(bZBoardFlags.bits.bIN_ISR == 0)
285 ENABLE_INTERRUPTS;
286
287 return i;
288 }
289
290
291 */
292 // USBD12_ReadMainEndpoint() added to support double-buffering.
293 // Caller should assume maxium 128 bytes of returned data.
294
295 /*
296 unsigned char USBD12_WriteEndpoint(unsigned char endp, unsigned char * buf, unsigned char len)
297 {
298 unsigned char i;
299
300 if(bZBoardFlags.bits.bIN_ISR == 0)
301 DISABLE_INTERRUPTS;
302
303 //#ifdef PARALLEL_BUS
C51 COMPILER V6.20c USBD12 12/03/2002 17:19:43 PAGE 6
304 // P1 &= 0xf1; // Enable D12
305 //#endif
306 ENABLE_D12;
307 outportb(IC_D12_COMMAND, endp);
308 inportb(IC_D12_DATA);
309
310 outportb(IC_D12_COMMAND, 0xF0);
311 outportb(IC_D12_DATA, 0);
312 outportb(IC_D12_DATA, len);
313
314 for(i=0; i<len; i++)
315 outportb(IC_D12_DATA, *(buf+i));
316
317 outportb(IC_D12_COMMAND, 0xFA);
318 //#ifdef PARALLEL_BUS
319 // P1 |= 0x0e; // Disable D12
320 //#endif
321 DISABLE_D12;
322 if(bZBoardFlags.bits.bIN_ISR == 0)
323 ENABLE_INTERRUPTS;
324
325 return len;
326 }
327
328 void USBD12_AcknowledgeEndpoint(unsigned char endp)
329 {
330 //#ifdef PARALLEL_BUS
331 // P1 &= 0xf1; // Enable D12
332 //#endif
333 ENABLE_D12;
334 outportb(IC_D12_COMMAND, endp);
335 outportb(IC_D12_COMMAND, 0xF1);
336 if(endp == 0)
337 outportb(IC_D12_COMMAND, 0xF2);
338
339 //#ifdef PARALLEL_BUS
340 // P1 |= 0x0e; // Disable D12
341 //#endif
342 DISABLE_D12;
343 }
344
345
346 */
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = ---- ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -