URL
https://opencores.org/ocsvn/usb_fpga_1_11/usb_fpga_1_11/trunk
Subversion Repositories usb_fpga_1_11
Compare Revisions
- This comparison shows the changes necessary to convert path
/usb_fpga_1_11/trunk/examples/all
- from Rev 2 to Rev 3
- ↔ Reverse comparison
Rev 2 → Rev 3
/debug/debug.lst
0,0 → 1,4497
1 ;-------------------------------------------------------- |
2 ; File Created by SDCC : free open source ANSI-C Compiler |
3 ; Version 2.8.0 #5117 (May 15 2008) (UNIX) |
4 ; This file was generated Wed Sep 8 20:23:26 2010 |
5 ;-------------------------------------------------------- |
6 .module debug_tmp |
7 .optsdcc -mmcs51 --model-small |
8 |
9 ;-------------------------------------------------------- |
10 ; Public variables in this module |
11 ;-------------------------------------------------------- |
12 .globl _sendStringDescriptor_PARM_3 |
13 .globl _sendStringDescriptor_PARM_2 |
14 .globl _EmptyStringDescriptor |
15 .globl _FullSpeedConfigDescriptor_PadByte |
16 .globl _FullSpeedConfigDescriptor |
17 .globl _HighSpeedConfigDescriptor_PadByte |
18 .globl _HighSpeedConfigDescriptor |
19 .globl _DeviceQualifierDescriptor |
20 .globl _DeviceDescriptor |
21 .globl _PadByte |
22 .globl _configurationString |
23 .globl _productString |
24 .globl _manufacturerString |
25 .globl _main |
26 .globl _init_USB |
27 .globl _EP8_ISR |
28 .globl _EP6_ISR |
29 .globl _EP4_ISR |
30 .globl _EP2_ISR |
31 .globl _EP1OUT_ISR |
32 .globl _EP1IN_ISR |
33 .globl _EP0ACK_ISR |
34 .globl _HSGRANT_ISR |
35 .globl _URES_ISR |
36 .globl _SUSP_ISR |
37 .globl _SUTOK_ISR |
38 .globl _SOF_ISR |
39 .globl _abscode_identity |
40 .globl _debug_read_ep0 |
41 .globl _debug_init |
42 .globl _debug_add_msg |
43 .globl _eeprom_write_ep0 |
44 .globl _eeprom_read_ep0 |
45 .globl _eeprom_write |
46 .globl _eeprom_read |
47 .globl _eeprom_select |
48 .globl _i2c_waitStop |
49 .globl _i2c_waitStart |
50 .globl _i2c_waitRead |
51 .globl _i2c_waitWrite |
52 .globl _MEM_COPY1_int |
53 .globl _uwait |
54 .globl _wait |
55 .globl _abscode_intvec |
56 .globl _EIPX6 |
57 .globl _EIPX5 |
58 .globl _EIPX4 |
59 .globl _PI2C |
60 .globl _PUSB |
61 .globl _BREG7 |
62 .globl _BREG6 |
63 .globl _BREG5 |
64 .globl _BREG4 |
65 .globl _BREG3 |
66 .globl _BREG2 |
67 .globl _BREG1 |
68 .globl _BREG0 |
69 .globl _EIEX6 |
70 .globl _EIEX5 |
71 .globl _EIEX4 |
72 .globl _EI2C |
73 .globl _EUSB |
74 .globl _ACC7 |
75 .globl _ACC6 |
76 .globl _ACC5 |
77 .globl _ACC4 |
78 .globl _ACC3 |
79 .globl _ACC2 |
80 .globl _ACC1 |
81 .globl _ACC0 |
82 .globl _SMOD1 |
83 .globl _ERESI |
84 .globl _RESI |
85 .globl _INT6 |
86 .globl _CY |
87 .globl _AC |
88 .globl _F0 |
89 .globl _RS1 |
90 .globl _RS0 |
91 .globl _OV |
92 .globl _F1 |
93 .globl _PF |
94 .globl _TF2 |
95 .globl _EXF2 |
96 .globl _RCLK |
97 .globl _TCLK |
98 .globl _EXEN2 |
99 .globl _TR2 |
100 .globl _CT2 |
101 .globl _CPRL2 |
102 .globl _SM0_1 |
103 .globl _SM1_1 |
104 .globl _SM2_1 |
105 .globl _REN_1 |
106 .globl _TB8_1 |
107 .globl _RB8_1 |
108 .globl _TI_1 |
109 .globl _RI_1 |
110 .globl _PS1 |
111 .globl _PT2 |
112 .globl _PS0 |
113 .globl _PT1 |
114 .globl _PX1 |
115 .globl _PT0 |
116 .globl _PX0 |
117 .globl _IOD7 |
118 .globl _IOD6 |
119 .globl _IOD5 |
120 .globl _IOD4 |
121 .globl _IOD3 |
122 .globl _IOD2 |
123 .globl _IOD1 |
124 .globl _IOD0 |
125 .globl _EA |
126 .globl _ES1 |
127 .globl _ET2 |
128 .globl _ES0 |
129 .globl _ET1 |
130 .globl _EX1 |
131 .globl _ET0 |
132 .globl _EX0 |
133 .globl _IOC7 |
134 .globl _IOC6 |
135 .globl _IOC5 |
136 .globl _IOC4 |
137 .globl _IOC3 |
138 .globl _IOC2 |
139 .globl _IOC1 |
140 .globl _IOC0 |
141 .globl _SM0_0 |
142 .globl _SM1_0 |
143 .globl _SM2_0 |
144 .globl _REN_0 |
145 .globl _TB8_0 |
146 .globl _RB8_0 |
147 .globl _TI_0 |
148 .globl _RI_0 |
149 .globl _IOB7 |
150 .globl _IOB6 |
151 .globl _IOB5 |
152 .globl _IOB4 |
153 .globl _IOB3 |
154 .globl _IOB2 |
155 .globl _IOB1 |
156 .globl _IOB0 |
157 .globl _TF1 |
158 .globl _TR1 |
159 .globl _TF0 |
160 .globl _TR0 |
161 .globl _IE1 |
162 .globl _IT1 |
163 .globl _IE0 |
164 .globl _IT0 |
165 .globl _IOA7 |
166 .globl _IOA6 |
167 .globl _IOA5 |
168 .globl _IOA4 |
169 .globl _IOA3 |
170 .globl _IOA2 |
171 .globl _IOA1 |
172 .globl _IOA0 |
173 .globl _EIP |
174 .globl _BREG |
175 .globl _EIE |
176 .globl _ACC |
177 .globl _EICON |
178 .globl _PSW |
179 .globl _TH2 |
180 .globl _TL2 |
181 .globl _RCAP2H |
182 .globl _RCAP2L |
183 .globl _T2CON |
184 .globl _SBUF1 |
185 .globl _SCON1 |
186 .globl _GPIFSGLDATLNOX |
187 .globl _GPIFSGLDATLX |
188 .globl _GPIFSGLDATH |
189 .globl _GPIFTRIG |
190 .globl _EP01STAT |
191 .globl _IP |
192 .globl _OEE |
193 .globl _OED |
194 .globl _OEC |
195 .globl _OEB |
196 .globl _OEA |
197 .globl _IOE |
198 .globl _IOD |
199 .globl _AUTOPTRSETUP |
200 .globl _EP68FIFOFLGS |
201 .globl _EP24FIFOFLGS |
202 .globl _EP2468STAT |
203 .globl _IE |
204 .globl _INT4CLR |
205 .globl _INT2CLR |
206 .globl _IOC |
207 .globl _AUTOPTRL2 |
208 .globl _AUTOPTRH2 |
209 .globl _AUTOPTRL1 |
210 .globl _AUTOPTRH1 |
211 .globl _SBUF0 |
212 .globl _SCON0 |
213 .globl __XPAGE |
214 .globl _MPAGE |
215 .globl _EXIF |
216 .globl _IOB |
217 .globl _CKCON |
218 .globl _TH1 |
219 .globl _TH0 |
220 .globl _TL1 |
221 .globl _TL0 |
222 .globl _TMOD |
223 .globl _TCON |
224 .globl _PCON |
225 .globl _DPS |
226 .globl _DPH1 |
227 .globl _DPL1 |
228 .globl _DPH0 |
229 .globl _DPL0 |
230 .globl _SP |
231 .globl _IOA |
232 .globl _ISOFRAME_COUNTER |
233 .globl _ep0_vendor_cmd_setup |
234 .globl _ep0_prev_setup_request |
235 .globl _ep0_payload_transfer |
236 .globl _ep0_payload_remaining |
237 .globl _SN_STRING |
238 .globl _MODULE_RESERVED |
239 .globl _INTERFACE_CAPABILITIES |
240 .globl _INTERFACE_VERSION |
241 .globl _FW_VERSION |
242 .globl _PRODUCT_ID |
243 .globl _ZTEXID |
244 .globl _ZTEX_DESCRIPTOR_VERSION |
245 .globl _ZTEX_DESCRIPTOR |
246 .globl _debug_read_addr |
247 .globl _debug_msg_buf |
248 .globl _debug_stack_ptr |
249 .globl _debug_stack |
250 .globl _debug_msg_size |
251 .globl _debug_stack_size |
252 .globl _debug_counter |
253 .globl _eeprom_write_checksum |
254 .globl _eeprom_write_bytes |
255 .globl _eeprom_addr |
256 .globl _INTVEC_GPIFWF |
257 .globl _INTVEC_GPIFDONE |
258 .globl _INTVEC_EP8FF |
259 .globl _INTVEC_EP6FF |
260 .globl _INTVEC_EP2FF |
261 .globl _INTVEC_EP8EF |
262 .globl _INTVEC_EP6EF |
263 .globl _INTVEC_EP4EF |
264 .globl _INTVEC_EP2EF |
265 .globl _INTVEC_EP8PF |
266 .globl _INTVEC_EP6PF |
267 .globl _INTVEC_EP4PF |
268 .globl _INTVEC_EP2PF |
269 .globl _INTVEC_EP8ISOERR |
270 .globl _INTVEC_EP6ISOERR |
271 .globl _INTVEC_EP4ISOERR |
272 .globl _INTVEC_EP2ISOERR |
273 .globl _INTVEC_ERRLIMIT |
274 .globl _INTVEC_EP8PING |
275 .globl _INTVEC_EP6PING |
276 .globl _INTVEC_EP4PING |
277 .globl _INTVEC_EP2PING |
278 .globl _INTVEC_EP1PING |
279 .globl _INTVEC_EP0PING |
280 .globl _INTVEC_IBN |
281 .globl _INTVEC_EP8 |
282 .globl _INTVEC_EP6 |
283 .globl _INTVEC_EP4 |
284 .globl _INTVEC_EP2 |
285 .globl _INTVEC_EP1OUT |
286 .globl _INTVEC_EP1IN |
287 .globl _INTVEC_EP0OUT |
288 .globl _INTVEC_EP0IN |
289 .globl _INTVEC_EP0ACK |
290 .globl _INTVEC_HISPEED |
291 .globl _INTVEC_USBRESET |
292 .globl _INTVEC_SUSPEND |
293 .globl _INTVEC_SUTOK |
294 .globl _INTVEC_SOF |
295 .globl _INTVEC_SUDAV |
296 .globl _INT12VEC_IE6 |
297 .globl _INT11VEC_IE5 |
298 .globl _INT10VEC_GPIF |
299 .globl _INT9VEC_I2C |
300 .globl _INT8VEC_USB |
301 .globl _INT7VEC_USART1 |
302 .globl _INT6VEC_RESUME |
303 .globl _INT5VEC_T2 |
304 .globl _INT4VEC_USART0 |
305 .globl _INT3VEC_T1 |
306 .globl _INT2VEC_IE1 |
307 .globl _INT1VEC_T0 |
308 .globl _INT0VEC_IE0 |
309 .globl _EP8FIFOBUF |
310 .globl _EP6FIFOBUF |
311 .globl _EP4FIFOBUF |
312 .globl _EP2FIFOBUF |
313 .globl _EP1INBUF |
314 .globl _EP1OUTBUF |
315 .globl _EP0BUF |
316 .globl _GPIFABORT |
317 .globl _GPIFREADYSTAT |
318 .globl _GPIFREADYCFG |
319 .globl _XGPIFSGLDATLNOX |
320 .globl _XGPIFSGLDATLX |
321 .globl _XGPIFSGLDATH |
322 .globl _EP8GPIFTRIG |
323 .globl _EP8GPIFPFSTOP |
324 .globl _EP8GPIFFLGSEL |
325 .globl _EP6GPIFTRIG |
326 .globl _EP6GPIFPFSTOP |
327 .globl _EP6GPIFFLGSEL |
328 .globl _EP4GPIFTRIG |
329 .globl _EP4GPIFPFSTOP |
330 .globl _EP4GPIFFLGSEL |
331 .globl _EP2GPIFTRIG |
332 .globl _EP2GPIFPFSTOP |
333 .globl _EP2GPIFFLGSEL |
334 .globl _GPIFTCB0 |
335 .globl _GPIFTCB1 |
336 .globl _GPIFTCB2 |
337 .globl _GPIFTCB3 |
338 .globl _FLOWSTBHPERIOD |
339 .globl _FLOWSTBEDGE |
340 .globl _FLOWSTB |
341 .globl _FLOWHOLDOFF |
342 .globl _FLOWEQ1CTL |
343 .globl _FLOWEQ0CTL |
344 .globl _FLOWLOGIC |
345 .globl _FLOWSTATE |
346 .globl _GPIFADRL |
347 .globl _GPIFADRH |
348 .globl _GPIFCTLCFG |
349 .globl _GPIFIDLECTL |
350 .globl _GPIFIDLECS |
351 .globl _GPIFWFSELECT |
352 .globl _wLengthH |
353 .globl _wLengthL |
354 .globl _wIndexH |
355 .globl _wIndexL |
356 .globl _wValueH |
357 .globl _wValueL |
358 .globl _bRequest |
359 .globl _bmRequestType |
360 .globl _SETUPDAT |
361 .globl _SUDPTRCTL |
362 .globl _SUDPTRL |
363 .globl _SUDPTRH |
364 .globl _EP8FIFOBCL |
365 .globl _EP8FIFOBCH |
366 .globl _EP6FIFOBCL |
367 .globl _EP6FIFOBCH |
368 .globl _EP4FIFOBCL |
369 .globl _EP4FIFOBCH |
370 .globl _EP2FIFOBCL |
371 .globl _EP2FIFOBCH |
372 .globl _EP8FIFOFLGS |
373 .globl _EP6FIFOFLGS |
374 .globl _EP4FIFOFLGS |
375 .globl _EP2FIFOFLGS |
376 .globl _EP8CS |
377 .globl _EP6CS |
378 .globl _EP4CS |
379 .globl _EP2CS |
380 .globl _EPXCS |
381 .globl _EP1INCS |
382 .globl _EP1OUTCS |
383 .globl _EP0CS |
384 .globl _EP8BCL |
385 .globl _EP8BCH |
386 .globl _EP6BCL |
387 .globl _EP6BCH |
388 .globl _EP4BCL |
389 .globl _EP4BCH |
390 .globl _EP2BCL |
391 .globl _EP2BCH |
392 .globl _EP1INBC |
393 .globl _EP1OUTBC |
394 .globl _EP0BCL |
395 .globl _EP0BCH |
396 .globl _FNADDR |
397 .globl _MICROFRAME |
398 .globl _USBFRAMEL |
399 .globl _USBFRAMEH |
400 .globl _TOGCTL |
401 .globl _WAKEUPCS |
402 .globl _SUSPEND |
403 .globl _USBCS |
404 .globl _UDMACRCQUALIFIER |
405 .globl _UDMACRCL |
406 .globl _UDMACRCH |
407 .globl _EXTAUTODAT2 |
408 .globl _XAUTODAT2 |
409 .globl _EXTAUTODAT1 |
410 .globl _XAUTODAT1 |
411 .globl _I2CTL |
412 .globl _I2DAT |
413 .globl _I2CS |
414 .globl _PORTECFG |
415 .globl _PORTCCFG |
416 .globl _PORTACFG |
417 .globl _INTSETUP |
418 .globl _INT4IVEC |
419 .globl _INT2IVEC |
420 .globl _CLRERRCNT |
421 .globl _ERRCNTLIM |
422 .globl _USBERRIRQ |
423 .globl _USBERRIE |
424 .globl _GPIFIRQ |
425 .globl _GPIFIE |
426 .globl _EPIRQ |
427 .globl _EPIE |
428 .globl _USBIRQ |
429 .globl _USBIE |
430 .globl _NAKIRQ |
431 .globl _NAKIE |
432 .globl _IBNIRQ |
433 .globl _IBNIE |
434 .globl _EP8FIFOIRQ |
435 .globl _EP8FIFOIE |
436 .globl _EP6FIFOIRQ |
437 .globl _EP6FIFOIE |
438 .globl _EP4FIFOIRQ |
439 .globl _EP4FIFOIE |
440 .globl _EP2FIFOIRQ |
441 .globl _EP2FIFOIE |
442 .globl _OUTPKTEND |
443 .globl _INPKTEND |
444 .globl _EP8ISOINPKTS |
445 .globl _EP6ISOINPKTS |
446 .globl _EP4ISOINPKTS |
447 .globl _EP2ISOINPKTS |
448 .globl _EP8FIFOPFL |
449 .globl _EP8FIFOPFH |
450 .globl _EP6FIFOPFL |
451 .globl _EP6FIFOPFH |
452 .globl _EP4FIFOPFL |
453 .globl _EP4FIFOPFH |
454 .globl _EP2FIFOPFL |
455 .globl _EP2FIFOPFH |
456 .globl _ECC2B2 |
457 .globl _ECC2B1 |
458 .globl _ECC2B0 |
459 .globl _ECC1B2 |
460 .globl _ECC1B1 |
461 .globl _ECC1B0 |
462 .globl _ECCRESET |
463 .globl _ECCCFG |
464 .globl _EP8AUTOINLENL |
465 .globl _EP8AUTOINLENH |
466 .globl _EP6AUTOINLENL |
467 .globl _EP6AUTOINLENH |
468 .globl _EP4AUTOINLENL |
469 .globl _EP4AUTOINLENH |
470 .globl _EP2AUTOINLENL |
471 .globl _EP2AUTOINLENH |
472 .globl _EP8FIFOCFG |
473 .globl _EP6FIFOCFG |
474 .globl _EP4FIFOCFG |
475 .globl _EP2FIFOCFG |
476 .globl _EP8CFG |
477 .globl _EP6CFG |
478 .globl _EP4CFG |
479 .globl _EP2CFG |
480 .globl _EP1INCFG |
481 .globl _EP1OUTCFG |
482 .globl _GPIFHOLDAMOUNT |
483 .globl _REVCTL |
484 .globl _REVID |
485 .globl _FIFOPINPOLAR |
486 .globl _UART230 |
487 .globl _BPADDRL |
488 .globl _BPADDRH |
489 .globl _BREAKPT |
490 .globl _FIFORESET |
491 .globl _PINFLAGSCD |
492 .globl _PINFLAGSAB |
493 .globl _IFCONFIG |
494 .globl _CPUCS |
495 .globl _GPCR2 |
496 .globl _GPIF_WAVE3_DATA |
497 .globl _GPIF_WAVE2_DATA |
498 .globl _GPIF_WAVE1_DATA |
499 .globl _GPIF_WAVE0_DATA |
500 .globl _GPIF_WAVE_DATA |
501 .globl _eeprom_write_PARM_3 |
502 .globl _eeprom_write_PARM_2 |
503 .globl _eeprom_read_PARM_3 |
504 .globl _eeprom_read_PARM_2 |
505 .globl _eeprom_select_PARM_2 |
506 ;-------------------------------------------------------- |
507 ; special function registers |
508 ;-------------------------------------------------------- |
509 .area RSEG (DATA) |
0080 510 _IOA = 0x0080 |
0081 511 _SP = 0x0081 |
0082 512 _DPL0 = 0x0082 |
0083 513 _DPH0 = 0x0083 |
0084 514 _DPL1 = 0x0084 |
0085 515 _DPH1 = 0x0085 |
0086 516 _DPS = 0x0086 |
0087 517 _PCON = 0x0087 |
0088 518 _TCON = 0x0088 |
0089 519 _TMOD = 0x0089 |
008A 520 _TL0 = 0x008a |
008B 521 _TL1 = 0x008b |
008C 522 _TH0 = 0x008c |
008D 523 _TH1 = 0x008d |
008E 524 _CKCON = 0x008e |
0090 525 _IOB = 0x0090 |
0091 526 _EXIF = 0x0091 |
0092 527 _MPAGE = 0x0092 |
0092 528 __XPAGE = 0x0092 |
0098 529 _SCON0 = 0x0098 |
0099 530 _SBUF0 = 0x0099 |
009A 531 _AUTOPTRH1 = 0x009a |
009B 532 _AUTOPTRL1 = 0x009b |
009D 533 _AUTOPTRH2 = 0x009d |
009E 534 _AUTOPTRL2 = 0x009e |
00A0 535 _IOC = 0x00a0 |
00A1 536 _INT2CLR = 0x00a1 |
00A2 537 _INT4CLR = 0x00a2 |
00A8 538 _IE = 0x00a8 |
00AA 539 _EP2468STAT = 0x00aa |
00AB 540 _EP24FIFOFLGS = 0x00ab |
00AC 541 _EP68FIFOFLGS = 0x00ac |
00AF 542 _AUTOPTRSETUP = 0x00af |
00B0 543 _IOD = 0x00b0 |
00B1 544 _IOE = 0x00b1 |
00B2 545 _OEA = 0x00b2 |
00B3 546 _OEB = 0x00b3 |
00B4 547 _OEC = 0x00b4 |
00B5 548 _OED = 0x00b5 |
00B6 549 _OEE = 0x00b6 |
00B8 550 _IP = 0x00b8 |
00BA 551 _EP01STAT = 0x00ba |
00BB 552 _GPIFTRIG = 0x00bb |
00BD 553 _GPIFSGLDATH = 0x00bd |
00BE 554 _GPIFSGLDATLX = 0x00be |
00BF 555 _GPIFSGLDATLNOX = 0x00bf |
00C0 556 _SCON1 = 0x00c0 |
00C1 557 _SBUF1 = 0x00c1 |
00C8 558 _T2CON = 0x00c8 |
00CA 559 _RCAP2L = 0x00ca |
00CB 560 _RCAP2H = 0x00cb |
00CC 561 _TL2 = 0x00cc |
00CD 562 _TH2 = 0x00cd |
00D0 563 _PSW = 0x00d0 |
00D8 564 _EICON = 0x00d8 |
00E0 565 _ACC = 0x00e0 |
00E8 566 _EIE = 0x00e8 |
00F0 567 _BREG = 0x00f0 |
00F8 568 _EIP = 0x00f8 |
569 ;-------------------------------------------------------- |
570 ; special function bits |
571 ;-------------------------------------------------------- |
572 .area RSEG (DATA) |
0080 573 _IOA0 = 0x0080 |
0081 574 _IOA1 = 0x0081 |
0082 575 _IOA2 = 0x0082 |
0083 576 _IOA3 = 0x0083 |
0084 577 _IOA4 = 0x0084 |
0085 578 _IOA5 = 0x0085 |
0086 579 _IOA6 = 0x0086 |
0087 580 _IOA7 = 0x0087 |
0088 581 _IT0 = 0x0088 |
0089 582 _IE0 = 0x0089 |
008A 583 _IT1 = 0x008a |
008B 584 _IE1 = 0x008b |
008C 585 _TR0 = 0x008c |
008D 586 _TF0 = 0x008d |
008E 587 _TR1 = 0x008e |
008F 588 _TF1 = 0x008f |
0090 589 _IOB0 = 0x0090 |
0091 590 _IOB1 = 0x0091 |
0092 591 _IOB2 = 0x0092 |
0093 592 _IOB3 = 0x0093 |
0094 593 _IOB4 = 0x0094 |
0095 594 _IOB5 = 0x0095 |
0096 595 _IOB6 = 0x0096 |
0097 596 _IOB7 = 0x0097 |
0098 597 _RI_0 = 0x0098 |
0099 598 _TI_0 = 0x0099 |
009A 599 _RB8_0 = 0x009a |
009B 600 _TB8_0 = 0x009b |
009C 601 _REN_0 = 0x009c |
009D 602 _SM2_0 = 0x009d |
009E 603 _SM1_0 = 0x009e |
009F 604 _SM0_0 = 0x009f |
00A0 605 _IOC0 = 0x00a0 |
00A1 606 _IOC1 = 0x00a1 |
00A2 607 _IOC2 = 0x00a2 |
00A3 608 _IOC3 = 0x00a3 |
00A4 609 _IOC4 = 0x00a4 |
00A5 610 _IOC5 = 0x00a5 |
00A6 611 _IOC6 = 0x00a6 |
00A7 612 _IOC7 = 0x00a7 |
00A8 613 _EX0 = 0x00a8 |
00A9 614 _ET0 = 0x00a9 |
00AA 615 _EX1 = 0x00aa |
00AB 616 _ET1 = 0x00ab |
00AC 617 _ES0 = 0x00ac |
00AD 618 _ET2 = 0x00ad |
00AE 619 _ES1 = 0x00ae |
00AF 620 _EA = 0x00af |
00B0 621 _IOD0 = 0x00b0 |
00B1 622 _IOD1 = 0x00b1 |
00B2 623 _IOD2 = 0x00b2 |
00B3 624 _IOD3 = 0x00b3 |
00B4 625 _IOD4 = 0x00b4 |
00B5 626 _IOD5 = 0x00b5 |
00B6 627 _IOD6 = 0x00b6 |
00B7 628 _IOD7 = 0x00b7 |
00B8 629 _PX0 = 0x00b8 |
00B9 630 _PT0 = 0x00b9 |
00BA 631 _PX1 = 0x00ba |
00BB 632 _PT1 = 0x00bb |
00BC 633 _PS0 = 0x00bc |
00BD 634 _PT2 = 0x00bd |
00BE 635 _PS1 = 0x00be |
00C0 636 _RI_1 = 0x00c0 |
00C1 637 _TI_1 = 0x00c1 |
00C2 638 _RB8_1 = 0x00c2 |
00C3 639 _TB8_1 = 0x00c3 |
00C4 640 _REN_1 = 0x00c4 |
00C5 641 _SM2_1 = 0x00c5 |
00C6 642 _SM1_1 = 0x00c6 |
00C7 643 _SM0_1 = 0x00c7 |
00C8 644 _CPRL2 = 0x00c8 |
00C9 645 _CT2 = 0x00c9 |
00CA 646 _TR2 = 0x00ca |
00CB 647 _EXEN2 = 0x00cb |
00CC 648 _TCLK = 0x00cc |
00CD 649 _RCLK = 0x00cd |
00CE 650 _EXF2 = 0x00ce |
00CF 651 _TF2 = 0x00cf |
00D0 652 _PF = 0x00d0 |
00D1 653 _F1 = 0x00d1 |
00D2 654 _OV = 0x00d2 |
00D3 655 _RS0 = 0x00d3 |
00D4 656 _RS1 = 0x00d4 |
00D5 657 _F0 = 0x00d5 |
00D6 658 _AC = 0x00d6 |
00D7 659 _CY = 0x00d7 |
00DB 660 _INT6 = 0x00db |
00DC 661 _RESI = 0x00dc |
00DD 662 _ERESI = 0x00dd |
00DF 663 _SMOD1 = 0x00df |
00E0 664 _ACC0 = 0x00e0 |
00E1 665 _ACC1 = 0x00e1 |
00E2 666 _ACC2 = 0x00e2 |
00E3 667 _ACC3 = 0x00e3 |
00E4 668 _ACC4 = 0x00e4 |
00E5 669 _ACC5 = 0x00e5 |
00E6 670 _ACC6 = 0x00e6 |
00E7 671 _ACC7 = 0x00e7 |
00E8 672 _EUSB = 0x00e8 |
00E9 673 _EI2C = 0x00e9 |
00EA 674 _EIEX4 = 0x00ea |
00EB 675 _EIEX5 = 0x00eb |
00EC 676 _EIEX6 = 0x00ec |
00F0 677 _BREG0 = 0x00f0 |
00F1 678 _BREG1 = 0x00f1 |
00F2 679 _BREG2 = 0x00f2 |
00F3 680 _BREG3 = 0x00f3 |
00F4 681 _BREG4 = 0x00f4 |
00F5 682 _BREG5 = 0x00f5 |
00F6 683 _BREG6 = 0x00f6 |
00F7 684 _BREG7 = 0x00f7 |
00F8 685 _PUSB = 0x00f8 |
00F9 686 _PI2C = 0x00f9 |
00FA 687 _EIPX4 = 0x00fa |
00FB 688 _EIPX5 = 0x00fb |
00FC 689 _EIPX6 = 0x00fc |
690 ;-------------------------------------------------------- |
691 ; overlayable register banks |
692 ;-------------------------------------------------------- |
693 .area REG_BANK_0 (REL,OVR,DATA) |
0000 694 .ds 8 |
695 ;-------------------------------------------------------- |
696 ; overlayable bit register bank |
697 ;-------------------------------------------------------- |
698 .area BIT_BANK (REL,OVR,DATA) |
0000 699 bits: |
0000 700 .ds 1 |
8000 701 b0 = bits[0] |
8100 702 b1 = bits[1] |
8200 703 b2 = bits[2] |
8300 704 b3 = bits[3] |
8400 705 b4 = bits[4] |
8500 706 b5 = bits[5] |
8600 707 b6 = bits[6] |
8700 708 b7 = bits[7] |
709 ;-------------------------------------------------------- |
710 ; internal ram data |
711 ;-------------------------------------------------------- |
712 .area DSEG (DATA) |
0000 713 _eeprom_select_PARM_2: |
0000 714 .ds 1 |
0001 715 _eeprom_read_PARM_2: |
0001 716 .ds 2 |
0003 717 _eeprom_read_PARM_3: |
0003 718 .ds 1 |
0004 719 _eeprom_write_PARM_2: |
0004 720 .ds 2 |
0006 721 _eeprom_write_PARM_3: |
0006 722 .ds 1 |
723 ;-------------------------------------------------------- |
724 ; overlayable items in internal ram |
725 ;-------------------------------------------------------- |
726 .area OSEG (OVR,DATA) |
727 .area OSEG (OVR,DATA) |
728 .area OSEG (OVR,DATA) |
729 .area OSEG (OVR,DATA) |
730 .area OSEG (OVR,DATA) |
731 .area OSEG (OVR,DATA) |
732 .area OSEG (OVR,DATA) |
733 .area OSEG (OVR,DATA) |
734 .area OSEG (OVR,DATA) |
0000 735 _sendStringDescriptor_PARM_2:: |
0000 736 .ds 1 |
0001 737 _sendStringDescriptor_PARM_3:: |
0001 738 .ds 1 |
739 ;-------------------------------------------------------- |
740 ; Stack segment in internal ram |
741 ;-------------------------------------------------------- |
742 .area SSEG (DATA) |
0000 743 __start__stack: |
0000 744 .ds 1 |
745 |
746 ;-------------------------------------------------------- |
747 ; indirectly addressable internal ram data |
748 ;-------------------------------------------------------- |
749 .area ISEG (DATA) |
750 ;-------------------------------------------------------- |
751 ; absolute internal ram data |
752 ;-------------------------------------------------------- |
753 .area IABS (ABS,DATA) |
754 .area IABS (ABS,DATA) |
755 ;-------------------------------------------------------- |
756 ; bit data |
757 ;-------------------------------------------------------- |
758 .area BSEG (BIT) |
759 ;-------------------------------------------------------- |
760 ; paged external ram data |
761 ;-------------------------------------------------------- |
762 .area PSEG (PAG,XDATA) |
763 ;-------------------------------------------------------- |
764 ; external ram data |
765 ;-------------------------------------------------------- |
766 .area XSEG (XDATA) |
E400 767 _GPIF_WAVE_DATA = 0xe400 |
E400 768 _GPIF_WAVE0_DATA = 0xe400 |
E420 769 _GPIF_WAVE1_DATA = 0xe420 |
E440 770 _GPIF_WAVE2_DATA = 0xe440 |
E460 771 _GPIF_WAVE3_DATA = 0xe460 |
E50D 772 _GPCR2 = 0xe50d |
E600 773 _CPUCS = 0xe600 |
E601 774 _IFCONFIG = 0xe601 |
E602 775 _PINFLAGSAB = 0xe602 |
E603 776 _PINFLAGSCD = 0xe603 |
E604 777 _FIFORESET = 0xe604 |
E605 778 _BREAKPT = 0xe605 |
E606 779 _BPADDRH = 0xe606 |
E607 780 _BPADDRL = 0xe607 |
E608 781 _UART230 = 0xe608 |
E609 782 _FIFOPINPOLAR = 0xe609 |
E60A 783 _REVID = 0xe60a |
E60B 784 _REVCTL = 0xe60b |
E60C 785 _GPIFHOLDAMOUNT = 0xe60c |
E610 786 _EP1OUTCFG = 0xe610 |
E611 787 _EP1INCFG = 0xe611 |
E612 788 _EP2CFG = 0xe612 |
E613 789 _EP4CFG = 0xe613 |
E614 790 _EP6CFG = 0xe614 |
E615 791 _EP8CFG = 0xe615 |
E618 792 _EP2FIFOCFG = 0xe618 |
E619 793 _EP4FIFOCFG = 0xe619 |
E61A 794 _EP6FIFOCFG = 0xe61a |
E61B 795 _EP8FIFOCFG = 0xe61b |
E620 796 _EP2AUTOINLENH = 0xe620 |
E621 797 _EP2AUTOINLENL = 0xe621 |
E622 798 _EP4AUTOINLENH = 0xe622 |
E623 799 _EP4AUTOINLENL = 0xe623 |
E624 800 _EP6AUTOINLENH = 0xe624 |
E625 801 _EP6AUTOINLENL = 0xe625 |
E626 802 _EP8AUTOINLENH = 0xe626 |
E627 803 _EP8AUTOINLENL = 0xe627 |
E628 804 _ECCCFG = 0xe628 |
E629 805 _ECCRESET = 0xe629 |
E62A 806 _ECC1B0 = 0xe62a |
E62B 807 _ECC1B1 = 0xe62b |
E62C 808 _ECC1B2 = 0xe62c |
E62D 809 _ECC2B0 = 0xe62d |
E62E 810 _ECC2B1 = 0xe62e |
E62F 811 _ECC2B2 = 0xe62f |
E630 812 _EP2FIFOPFH = 0xe630 |
E631 813 _EP2FIFOPFL = 0xe631 |
E632 814 _EP4FIFOPFH = 0xe632 |
E633 815 _EP4FIFOPFL = 0xe633 |
E634 816 _EP6FIFOPFH = 0xe634 |
E635 817 _EP6FIFOPFL = 0xe635 |
E636 818 _EP8FIFOPFH = 0xe636 |
E637 819 _EP8FIFOPFL = 0xe637 |
E640 820 _EP2ISOINPKTS = 0xe640 |
E641 821 _EP4ISOINPKTS = 0xe641 |
E642 822 _EP6ISOINPKTS = 0xe642 |
E643 823 _EP8ISOINPKTS = 0xe643 |
E648 824 _INPKTEND = 0xe648 |
E649 825 _OUTPKTEND = 0xe649 |
E650 826 _EP2FIFOIE = 0xe650 |
E651 827 _EP2FIFOIRQ = 0xe651 |
E652 828 _EP4FIFOIE = 0xe652 |
E653 829 _EP4FIFOIRQ = 0xe653 |
E654 830 _EP6FIFOIE = 0xe654 |
E655 831 _EP6FIFOIRQ = 0xe655 |
E656 832 _EP8FIFOIE = 0xe656 |
E657 833 _EP8FIFOIRQ = 0xe657 |
E658 834 _IBNIE = 0xe658 |
E659 835 _IBNIRQ = 0xe659 |
E65A 836 _NAKIE = 0xe65a |
E65B 837 _NAKIRQ = 0xe65b |
E65C 838 _USBIE = 0xe65c |
E65D 839 _USBIRQ = 0xe65d |
E65E 840 _EPIE = 0xe65e |
E65F 841 _EPIRQ = 0xe65f |
E660 842 _GPIFIE = 0xe660 |
E661 843 _GPIFIRQ = 0xe661 |
E662 844 _USBERRIE = 0xe662 |
E663 845 _USBERRIRQ = 0xe663 |
E664 846 _ERRCNTLIM = 0xe664 |
E665 847 _CLRERRCNT = 0xe665 |
E666 848 _INT2IVEC = 0xe666 |
E667 849 _INT4IVEC = 0xe667 |
E668 850 _INTSETUP = 0xe668 |
E670 851 _PORTACFG = 0xe670 |
E671 852 _PORTCCFG = 0xe671 |
E672 853 _PORTECFG = 0xe672 |
E678 854 _I2CS = 0xe678 |
E679 855 _I2DAT = 0xe679 |
E67A 856 _I2CTL = 0xe67a |
E67B 857 _XAUTODAT1 = 0xe67b |
E67B 858 _EXTAUTODAT1 = 0xe67b |
E67C 859 _XAUTODAT2 = 0xe67c |
E67C 860 _EXTAUTODAT2 = 0xe67c |
E67D 861 _UDMACRCH = 0xe67d |
E67E 862 _UDMACRCL = 0xe67e |
E67F 863 _UDMACRCQUALIFIER = 0xe67f |
E680 864 _USBCS = 0xe680 |
E681 865 _SUSPEND = 0xe681 |
E682 866 _WAKEUPCS = 0xe682 |
E683 867 _TOGCTL = 0xe683 |
E684 868 _USBFRAMEH = 0xe684 |
E685 869 _USBFRAMEL = 0xe685 |
E686 870 _MICROFRAME = 0xe686 |
E687 871 _FNADDR = 0xe687 |
E68A 872 _EP0BCH = 0xe68a |
E68B 873 _EP0BCL = 0xe68b |
E68D 874 _EP1OUTBC = 0xe68d |
E68F 875 _EP1INBC = 0xe68f |
E690 876 _EP2BCH = 0xe690 |
E691 877 _EP2BCL = 0xe691 |
E694 878 _EP4BCH = 0xe694 |
E695 879 _EP4BCL = 0xe695 |
E698 880 _EP6BCH = 0xe698 |
E699 881 _EP6BCL = 0xe699 |
E69C 882 _EP8BCH = 0xe69c |
E69D 883 _EP8BCL = 0xe69d |
E6A0 884 _EP0CS = 0xe6a0 |
E6A1 885 _EP1OUTCS = 0xe6a1 |
E6A2 886 _EP1INCS = 0xe6a2 |
E6A3 887 _EPXCS = 0xe6a3 |
E6A3 888 _EP2CS = 0xe6a3 |
E6A4 889 _EP4CS = 0xe6a4 |
E6A5 890 _EP6CS = 0xe6a5 |
E6A6 891 _EP8CS = 0xe6a6 |
E6A7 892 _EP2FIFOFLGS = 0xe6a7 |
E6A8 893 _EP4FIFOFLGS = 0xe6a8 |
E6A9 894 _EP6FIFOFLGS = 0xe6a9 |
E6AA 895 _EP8FIFOFLGS = 0xe6aa |
E6AB 896 _EP2FIFOBCH = 0xe6ab |
E6AC 897 _EP2FIFOBCL = 0xe6ac |
E6AD 898 _EP4FIFOBCH = 0xe6ad |
E6AE 899 _EP4FIFOBCL = 0xe6ae |
E6AF 900 _EP6FIFOBCH = 0xe6af |
E6B0 901 _EP6FIFOBCL = 0xe6b0 |
E6B1 902 _EP8FIFOBCH = 0xe6b1 |
E6B2 903 _EP8FIFOBCL = 0xe6b2 |
E6B3 904 _SUDPTRH = 0xe6b3 |
E6B4 905 _SUDPTRL = 0xe6b4 |
E6B5 906 _SUDPTRCTL = 0xe6b5 |
E6B8 907 _SETUPDAT = 0xe6b8 |
E6B8 908 _bmRequestType = 0xe6b8 |
E6B9 909 _bRequest = 0xe6b9 |
E6BA 910 _wValueL = 0xe6ba |
E6BB 911 _wValueH = 0xe6bb |
E6BC 912 _wIndexL = 0xe6bc |
E6BD 913 _wIndexH = 0xe6bd |
E6BE 914 _wLengthL = 0xe6be |
E6BF 915 _wLengthH = 0xe6bf |
E6C0 916 _GPIFWFSELECT = 0xe6c0 |
E6C1 917 _GPIFIDLECS = 0xe6c1 |
E6C2 918 _GPIFIDLECTL = 0xe6c2 |
E6C3 919 _GPIFCTLCFG = 0xe6c3 |
E6C4 920 _GPIFADRH = 0xe6c4 |
E6C5 921 _GPIFADRL = 0xe6c5 |
E6C6 922 _FLOWSTATE = 0xe6c6 |
E6C7 923 _FLOWLOGIC = 0xe6c7 |
E6C8 924 _FLOWEQ0CTL = 0xe6c8 |
E6C9 925 _FLOWEQ1CTL = 0xe6c9 |
E6CA 926 _FLOWHOLDOFF = 0xe6ca |
E6CB 927 _FLOWSTB = 0xe6cb |
E6CC 928 _FLOWSTBEDGE = 0xe6cc |
E6CD 929 _FLOWSTBHPERIOD = 0xe6cd |
E6CE 930 _GPIFTCB3 = 0xe6ce |
E6CF 931 _GPIFTCB2 = 0xe6cf |
E6D0 932 _GPIFTCB1 = 0xe6d0 |
E6D1 933 _GPIFTCB0 = 0xe6d1 |
E6D2 934 _EP2GPIFFLGSEL = 0xe6d2 |
E6D3 935 _EP2GPIFPFSTOP = 0xe6d3 |
E6D4 936 _EP2GPIFTRIG = 0xe6d4 |
E6DA 937 _EP4GPIFFLGSEL = 0xe6da |
E6DB 938 _EP4GPIFPFSTOP = 0xe6db |
E6DC 939 _EP4GPIFTRIG = 0xe6dc |
E6E2 940 _EP6GPIFFLGSEL = 0xe6e2 |
E6E3 941 _EP6GPIFPFSTOP = 0xe6e3 |
E6E4 942 _EP6GPIFTRIG = 0xe6e4 |
E6EA 943 _EP8GPIFFLGSEL = 0xe6ea |
E6EB 944 _EP8GPIFPFSTOP = 0xe6eb |
E6EC 945 _EP8GPIFTRIG = 0xe6ec |
E6F0 946 _XGPIFSGLDATH = 0xe6f0 |
E6F1 947 _XGPIFSGLDATLX = 0xe6f1 |
E6F2 948 _XGPIFSGLDATLNOX = 0xe6f2 |
E6F3 949 _GPIFREADYCFG = 0xe6f3 |
E6F4 950 _GPIFREADYSTAT = 0xe6f4 |
E6F5 951 _GPIFABORT = 0xe6f5 |
E740 952 _EP0BUF = 0xe740 |
E780 953 _EP1OUTBUF = 0xe780 |
E7C0 954 _EP1INBUF = 0xe7c0 |
F000 955 _EP2FIFOBUF = 0xf000 |
F400 956 _EP4FIFOBUF = 0xf400 |
F800 957 _EP6FIFOBUF = 0xf800 |
FC00 958 _EP8FIFOBUF = 0xfc00 |
0003 959 _INT0VEC_IE0 = 0x0003 |
000B 960 _INT1VEC_T0 = 0x000b |
0013 961 _INT2VEC_IE1 = 0x0013 |
001B 962 _INT3VEC_T1 = 0x001b |
0023 963 _INT4VEC_USART0 = 0x0023 |
002B 964 _INT5VEC_T2 = 0x002b |
0033 965 _INT6VEC_RESUME = 0x0033 |
003B 966 _INT7VEC_USART1 = 0x003b |
0043 967 _INT8VEC_USB = 0x0043 |
004B 968 _INT9VEC_I2C = 0x004b |
0053 969 _INT10VEC_GPIF = 0x0053 |
005B 970 _INT11VEC_IE5 = 0x005b |
0063 971 _INT12VEC_IE6 = 0x0063 |
0100 972 _INTVEC_SUDAV = 0x0100 |
0104 973 _INTVEC_SOF = 0x0104 |
0108 974 _INTVEC_SUTOK = 0x0108 |
010C 975 _INTVEC_SUSPEND = 0x010c |
0110 976 _INTVEC_USBRESET = 0x0110 |
0114 977 _INTVEC_HISPEED = 0x0114 |
0118 978 _INTVEC_EP0ACK = 0x0118 |
0120 979 _INTVEC_EP0IN = 0x0120 |
0124 980 _INTVEC_EP0OUT = 0x0124 |
0128 981 _INTVEC_EP1IN = 0x0128 |
012C 982 _INTVEC_EP1OUT = 0x012c |
0130 983 _INTVEC_EP2 = 0x0130 |
0134 984 _INTVEC_EP4 = 0x0134 |
0138 985 _INTVEC_EP6 = 0x0138 |
013C 986 _INTVEC_EP8 = 0x013c |
0140 987 _INTVEC_IBN = 0x0140 |
0148 988 _INTVEC_EP0PING = 0x0148 |
014C 989 _INTVEC_EP1PING = 0x014c |
0150 990 _INTVEC_EP2PING = 0x0150 |
0154 991 _INTVEC_EP4PING = 0x0154 |
0158 992 _INTVEC_EP6PING = 0x0158 |
015C 993 _INTVEC_EP8PING = 0x015c |
0160 994 _INTVEC_ERRLIMIT = 0x0160 |
0170 995 _INTVEC_EP2ISOERR = 0x0170 |
0174 996 _INTVEC_EP4ISOERR = 0x0174 |
0178 997 _INTVEC_EP6ISOERR = 0x0178 |
017C 998 _INTVEC_EP8ISOERR = 0x017c |
0180 999 _INTVEC_EP2PF = 0x0180 |
0184 1000 _INTVEC_EP4PF = 0x0184 |
0188 1001 _INTVEC_EP6PF = 0x0188 |
018C 1002 _INTVEC_EP8PF = 0x018c |
0190 1003 _INTVEC_EP2EF = 0x0190 |
0194 1004 _INTVEC_EP4EF = 0x0194 |
0198 1005 _INTVEC_EP6EF = 0x0198 |
019C 1006 _INTVEC_EP8EF = 0x019c |
01A0 1007 _INTVEC_EP2FF = 0x01a0 |
01A8 1008 _INTVEC_EP6FF = 0x01a8 |
01AC 1009 _INTVEC_EP8FF = 0x01ac |
01B0 1010 _INTVEC_GPIFDONE = 0x01b0 |
01B4 1011 _INTVEC_GPIFWF = 0x01b4 |
0000 1012 _eeprom_addr:: |
0000 1013 .ds 2 |
0002 1014 _eeprom_write_bytes:: |
0002 1015 .ds 2 |
0004 1016 _eeprom_write_checksum:: |
0004 1017 .ds 1 |
0005 1018 _debug_counter:: |
0005 1019 .ds 2 |
0007 1020 _debug_stack_size:: |
0007 1021 .ds 1 |
0008 1022 _debug_msg_size:: |
0008 1023 .ds 1 |
0009 1024 _debug_stack:: |
0009 1025 .ds 96 |
0069 1026 _debug_stack_ptr:: |
0069 1027 .ds 2 |
006B 1028 _debug_msg_buf:: |
006B 1029 .ds 3 |
006E 1030 _debug_read_addr:: |
006E 1031 .ds 2 |
006C 1032 _ZTEX_DESCRIPTOR = 0x006c |
006D 1033 _ZTEX_DESCRIPTOR_VERSION = 0x006d |
006E 1034 _ZTEXID = 0x006e |
0072 1035 _PRODUCT_ID = 0x0072 |
0076 1036 _FW_VERSION = 0x0076 |
0077 1037 _INTERFACE_VERSION = 0x0077 |
0078 1038 _INTERFACE_CAPABILITIES = 0x0078 |
007E 1039 _MODULE_RESERVED = 0x007e |
008A 1040 _SN_STRING = 0x008a |
1041 ;-------------------------------------------------------- |
1042 ; absolute external ram data |
1043 ;-------------------------------------------------------- |
1044 .area XABS (ABS,XDATA) |
1045 ;-------------------------------------------------------- |
1046 ; external initialized ram data |
1047 ;-------------------------------------------------------- |
1048 .area XISEG (XDATA) |
0000 1049 _ep0_payload_remaining:: |
0000 1050 .ds 2 |
0002 1051 _ep0_payload_transfer:: |
0002 1052 .ds 1 |
0003 1053 _ep0_prev_setup_request:: |
0003 1054 .ds 1 |
0004 1055 _ep0_vendor_cmd_setup:: |
0004 1056 .ds 1 |
0005 1057 _ISOFRAME_COUNTER:: |
0005 1058 .ds 8 |
1059 .area HOME (CODE) |
1060 .area GSINIT0 (CODE) |
1061 .area GSINIT1 (CODE) |
1062 .area GSINIT2 (CODE) |
1063 .area GSINIT3 (CODE) |
1064 .area GSINIT4 (CODE) |
1065 .area GSINIT5 (CODE) |
1066 .area GSINIT (CODE) |
1067 .area GSFINAL (CODE) |
1068 .area CSEG (CODE) |
1069 ;-------------------------------------------------------- |
1070 ; interrupt vector |
1071 ;-------------------------------------------------------- |
1072 .area HOME (CODE) |
0000 1073 __interrupt_vect: |
0000 02s00r00 1074 ljmp __sdcc_gsinit_startup |
1075 ;-------------------------------------------------------- |
1076 ; global & static initialisations |
1077 ;-------------------------------------------------------- |
1078 .area HOME (CODE) |
1079 .area GSINIT (CODE) |
1080 .area GSFINAL (CODE) |
1081 .area GSINIT (CODE) |
1082 .globl __sdcc_gsinit_startup |
1083 .globl __sdcc_program_startup |
1084 .globl __start__stack |
1085 .globl __mcs51_genXINIT |
1086 .globl __mcs51_genXRAMCLEAR |
1087 .globl __mcs51_genRAMCLEAR |
1088 .area GSFINAL (CODE) |
0000 02s00r03 1089 ljmp __sdcc_program_startup |
1090 ;-------------------------------------------------------- |
1091 ; Home |
1092 ;-------------------------------------------------------- |
1093 .area HOME (CODE) |
1094 .area HOME (CODE) |
0003 1095 __sdcc_program_startup: |
0003 12s0DrD2 1096 lcall _main |
1097 ; return from main will lock up |
0006 80 FE 1098 sjmp . |
1099 ;-------------------------------------------------------- |
1100 ; code |
1101 ;-------------------------------------------------------- |
1102 .area CSEG (CODE) |
1103 ;------------------------------------------------------------ |
1104 ;Allocation info for local variables in function 'abscode_intvec' |
1105 ;------------------------------------------------------------ |
1106 ;------------------------------------------------------------ |
1107 ; ../../../include/ezintavecs.h:92: void abscode_intvec() _naked |
1108 ; ----------------------------------------- |
1109 ; function abscode_intvec |
1110 ; ----------------------------------------- |
0000 1111 _abscode_intvec: |
1112 ; naked function: no prologue. |
1113 ; ../../../include/ezintavecs.h:317: ERROR: no line number 317 in file ../../../include/ezintavecs.h |
1114 |
1115 .area ABSCODE (ABS,CODE) |
0000 1116 .org 0x0000 |
0000 1117 ENTRY: |
0000 02 02 00 1118 ljmp #0x0200 |
1119 ; # 94 "../../../include/ezintavecs.h" |
0003 1120 .org 0x0003 |
1121 ; # 34 "../../../include/ezintavecs.h" |
0003 32 1122 reti |
1123 ; # 94 "../../../include/ezintavecs.h" |
000B 1124 .org 0x000b |
1125 ; # 35 "../../../include/ezintavecs.h" |
000B 32 1126 reti |
1127 ; # 94 "../../../include/ezintavecs.h" |
0013 1128 .org 0x0013 |
1129 ; # 36 "../../../include/ezintavecs.h" |
0013 32 1130 reti |
1131 ; # 94 "../../../include/ezintavecs.h" |
001B 1132 .org 0x001b |
1133 ; # 37 "../../../include/ezintavecs.h" |
001B 32 1134 reti |
1135 ; # 94 "../../../include/ezintavecs.h" |
0023 1136 .org 0x0023 |
1137 ; # 38 "../../../include/ezintavecs.h" |
0023 32 1138 reti |
1139 ; # 94 "../../../include/ezintavecs.h" |
002B 1140 .org 0x002b |
1141 ; # 39 "../../../include/ezintavecs.h" |
002B 32 1142 reti |
1143 ; # 94 "../../../include/ezintavecs.h" |
0033 1144 .org 0x0033 |
1145 ; # 40 "../../../include/ezintavecs.h" |
0033 32 1146 reti |
1147 ; # 94 "../../../include/ezintavecs.h" |
003B 1148 .org 0x003b |
1149 ; # 41 "../../../include/ezintavecs.h" |
003B 32 1150 reti |
1151 ; # 94 "../../../include/ezintavecs.h" |
0043 1152 .org 0x0043 |
1153 ; # 42 "../../../include/ezintavecs.h" |
0043 32 1154 reti |
1155 ; # 94 "../../../include/ezintavecs.h" |
004B 1156 .org 0x004b |
1157 ; # 43 "../../../include/ezintavecs.h" |
004B 32 1158 reti |
1159 ; # 94 "../../../include/ezintavecs.h" |
0053 1160 .org 0x0053 |
1161 ; # 44 "../../../include/ezintavecs.h" |
0053 32 1162 reti |
1163 ; # 94 "../../../include/ezintavecs.h" |
005B 1164 .org 0x005b |
1165 ; # 45 "../../../include/ezintavecs.h" |
005B 32 1166 reti |
1167 ; # 94 "../../../include/ezintavecs.h" |
0063 1168 .org 0x0063 |
1169 ; # 46 "../../../include/ezintavecs.h" |
0063 32 1170 reti |
1171 ; # 94 "../../../include/ezintavecs.h" |
0100 1172 .org 0x0100 |
1173 ; # 47 "../../../include/ezintavecs.h" |
0100 32 1174 reti |
1175 ; # 94 "../../../include/ezintavecs.h" |
0104 1176 .org 0x0104 |
1177 ; # 48 "../../../include/ezintavecs.h" |
0104 32 1178 reti |
1179 ; # 94 "../../../include/ezintavecs.h" |
0108 1180 .org 0x0108 |
1181 ; # 49 "../../../include/ezintavecs.h" |
0108 32 1182 reti |
1183 ; # 94 "../../../include/ezintavecs.h" |
010C 1184 .org 0x010C |
1185 ; # 50 "../../../include/ezintavecs.h" |
010C 32 1186 reti |
1187 ; # 94 "../../../include/ezintavecs.h" |
0110 1188 .org 0x0110 |
1189 ; # 51 "../../../include/ezintavecs.h" |
0110 32 1190 reti |
1191 ; # 94 "../../../include/ezintavecs.h" |
0114 1192 .org 0x0114 |
1193 ; # 52 "../../../include/ezintavecs.h" |
0114 32 1194 reti |
1195 ; # 94 "../../../include/ezintavecs.h" |
0118 1196 .org 0x0118 |
1197 ; # 53 "../../../include/ezintavecs.h" |
0118 32 1198 reti |
1199 ; # 94 "../../../include/ezintavecs.h" |
0120 1200 .org 0x0120 |
1201 ; # 54 "../../../include/ezintavecs.h" |
0120 32 1202 reti |
1203 ; # 94 "../../../include/ezintavecs.h" |
0124 1204 .org 0x0124 |
1205 ; # 55 "../../../include/ezintavecs.h" |
0124 32 1206 reti |
1207 ; # 94 "../../../include/ezintavecs.h" |
0128 1208 .org 0x0128 |
1209 ; # 56 "../../../include/ezintavecs.h" |
0128 32 1210 reti |
1211 ; # 94 "../../../include/ezintavecs.h" |
012C 1212 .org 0x012C |
1213 ; # 57 "../../../include/ezintavecs.h" |
012C 32 1214 reti |
1215 ; # 94 "../../../include/ezintavecs.h" |
0130 1216 .org 0x0130 |
1217 ; # 58 "../../../include/ezintavecs.h" |
0130 32 1218 reti |
1219 ; # 94 "../../../include/ezintavecs.h" |
0134 1220 .org 0x0134 |
1221 ; # 59 "../../../include/ezintavecs.h" |
0134 32 1222 reti |
1223 ; # 94 "../../../include/ezintavecs.h" |
0138 1224 .org 0x0138 |
1225 ; # 60 "../../../include/ezintavecs.h" |
0138 32 1226 reti |
1227 ; # 94 "../../../include/ezintavecs.h" |
013C 1228 .org 0x013C |
1229 ; # 61 "../../../include/ezintavecs.h" |
013C 32 1230 reti |
1231 ; # 94 "../../../include/ezintavecs.h" |
0140 1232 .org 0x0140 |
1233 ; # 62 "../../../include/ezintavecs.h" |
0140 32 1234 reti |
1235 ; # 94 "../../../include/ezintavecs.h" |
0148 1236 .org 0x0148 |
1237 ; # 63 "../../../include/ezintavecs.h" |
0148 32 1238 reti |
1239 ; # 94 "../../../include/ezintavecs.h" |
014C 1240 .org 0x014C |
1241 ; # 64 "../../../include/ezintavecs.h" |
014C 32 1242 reti |
1243 ; # 94 "../../../include/ezintavecs.h" |
0150 1244 .org 0x0150 |
1245 ; # 65 "../../../include/ezintavecs.h" |
0150 32 1246 reti |
1247 ; # 94 "../../../include/ezintavecs.h" |
0154 1248 .org 0x0154 |
1249 ; # 66 "../../../include/ezintavecs.h" |
0154 32 1250 reti |
1251 ; # 94 "../../../include/ezintavecs.h" |
0158 1252 .org 0x0158 |
1253 ; # 67 "../../../include/ezintavecs.h" |
0158 32 1254 reti |
1255 ; # 94 "../../../include/ezintavecs.h" |
015C 1256 .org 0x015C |
1257 ; # 68 "../../../include/ezintavecs.h" |
015C 32 1258 reti |
1259 ; # 94 "../../../include/ezintavecs.h" |
0160 1260 .org 0x0160 |
1261 ; # 69 "../../../include/ezintavecs.h" |
0160 32 1262 reti |
1263 ; # 94 "../../../include/ezintavecs.h" |
0170 1264 .org 0x0170 |
1265 ; # 70 "../../../include/ezintavecs.h" |
0170 32 1266 reti |
1267 ; # 94 "../../../include/ezintavecs.h" |
0174 1268 .org 0x0174 |
1269 ; # 71 "../../../include/ezintavecs.h" |
0174 32 1270 reti |
1271 ; # 94 "../../../include/ezintavecs.h" |
0178 1272 .org 0x0178 |
1273 ; # 72 "../../../include/ezintavecs.h" |
0178 32 1274 reti |
1275 ; # 94 "../../../include/ezintavecs.h" |
017C 1276 .org 0x017C |
1277 ; # 73 "../../../include/ezintavecs.h" |
017C 32 1278 reti |
1279 ; # 94 "../../../include/ezintavecs.h" |
0180 1280 .org 0x0180 |
1281 ; # 74 "../../../include/ezintavecs.h" |
0180 32 1282 reti |
1283 ; # 94 "../../../include/ezintavecs.h" |
0184 1284 .org 0x0184 |
1285 ; # 75 "../../../include/ezintavecs.h" |
0184 32 1286 reti |
1287 ; # 94 "../../../include/ezintavecs.h" |
0188 1288 .org 0x0188 |
1289 ; # 76 "../../../include/ezintavecs.h" |
0188 32 1290 reti |
1291 ; # 94 "../../../include/ezintavecs.h" |
018C 1292 .org 0x018C |
1293 ; # 77 "../../../include/ezintavecs.h" |
018C 32 1294 reti |
1295 ; # 94 "../../../include/ezintavecs.h" |
0190 1296 .org 0x0190 |
1297 ; # 78 "../../../include/ezintavecs.h" |
0190 32 1298 reti |
1299 ; # 94 "../../../include/ezintavecs.h" |
0194 1300 .org 0x0194 |
1301 ; # 79 "../../../include/ezintavecs.h" |
0194 32 1302 reti |
1303 ; # 94 "../../../include/ezintavecs.h" |
0198 1304 .org 0x0198 |
1305 ; # 80 "../../../include/ezintavecs.h" |
0198 32 1306 reti |
1307 ; # 94 "../../../include/ezintavecs.h" |
019C 1308 .org 0x019C |
1309 ; # 81 "../../../include/ezintavecs.h" |
019C 32 1310 reti |
1311 ; # 94 "../../../include/ezintavecs.h" |
01A0 1312 .org 0x01A0 |
1313 ; # 82 "../../../include/ezintavecs.h" |
01A0 32 1314 reti |
1315 ; # 94 "../../../include/ezintavecs.h" |
01A8 1316 .org 0x01A8 |
1317 ; # 83 "../../../include/ezintavecs.h" |
01A8 32 1318 reti |
1319 ; # 94 "../../../include/ezintavecs.h" |
01AC 1320 .org 0x01AC |
1321 ; # 84 "../../../include/ezintavecs.h" |
01AC 32 1322 reti |
1323 ; # 94 "../../../include/ezintavecs.h" |
01B0 1324 .org 0x01B0 |
1325 ; # 85 "../../../include/ezintavecs.h" |
01B0 32 1326 reti |
1327 ; # 94 "../../../include/ezintavecs.h" |
01B4 1328 .org 0x01B4 |
1329 ; # 101 "../../../include/ezintavecs.h" |
01B4 32 1330 reti |
01B8 1331 .org 0x01b8 |
01B8 1332 INTVEC_DUMMY: |
01B8 32 1333 reti |
1334 .area CSEG (CODE) |
1335 |
1336 ; naked function: no epilogue. |
1337 ;------------------------------------------------------------ |
1338 ;Allocation info for local variables in function 'wait' |
1339 ;------------------------------------------------------------ |
1340 ;ms Allocated to registers r2 r3 |
1341 ;i Allocated to registers r6 r7 |
1342 ;j Allocated to registers r4 r5 |
1343 ;------------------------------------------------------------ |
1344 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
1345 ; ----------------------------------------- |
1346 ; function wait |
1347 ; ----------------------------------------- |
0000 1348 _wait: |
0002 1349 ar2 = 0x02 |
0003 1350 ar3 = 0x03 |
0004 1351 ar4 = 0x04 |
0005 1352 ar5 = 0x05 |
0006 1353 ar6 = 0x06 |
0007 1354 ar7 = 0x07 |
0000 1355 ar0 = 0x00 |
0001 1356 ar1 = 0x01 |
0000 AA 82 1357 mov r2,dpl |
0002 AB 83 1358 mov r3,dph |
1359 ; ../../../include/ztex-utils.h:80: for (j=0; j<ms; j++) |
0004 7C 00 1360 mov r4,#0x00 |
0006 7D 00 1361 mov r5,#0x00 |
0008 1362 00104$: |
0008 C3 1363 clr c |
0009 EC 1364 mov a,r4 |
000A 9A 1365 subb a,r2 |
000B ED 1366 mov a,r5 |
000C 9B 1367 subb a,r3 |
000D 50 14 1368 jnc 00108$ |
1369 ; ../../../include/ztex-utils.h:81: for (i=0; i<1200; i++); |
000F 7E B0 1370 mov r6,#0xB0 |
0011 7F 04 1371 mov r7,#0x04 |
0013 1372 00103$: |
0013 1E 1373 dec r6 |
0014 BE FF 01 1374 cjne r6,#0xff,00117$ |
0017 1F 1375 dec r7 |
0018 1376 00117$: |
0018 EE 1377 mov a,r6 |
0019 4F 1378 orl a,r7 |
001A 70 F7 1379 jnz 00103$ |
1380 ; ../../../include/ztex-utils.h:80: for (j=0; j<ms; j++) |
001C 0C 1381 inc r4 |
001D BC 00 E8 1382 cjne r4,#0x00,00104$ |
0020 0D 1383 inc r5 |
0021 80 E5 1384 sjmp 00104$ |
0023 1385 00108$: |
0023 22 1386 ret |
1387 ;------------------------------------------------------------ |
1388 ;Allocation info for local variables in function 'uwait' |
1389 ;------------------------------------------------------------ |
1390 ;us Allocated to registers r2 r3 |
1391 ;i Allocated to registers r6 r7 |
1392 ;j Allocated to registers r4 r5 |
1393 ;------------------------------------------------------------ |
1394 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
1395 ; ----------------------------------------- |
1396 ; function uwait |
1397 ; ----------------------------------------- |
0024 1398 _uwait: |
0024 AA 82 1399 mov r2,dpl |
0026 AB 83 1400 mov r3,dph |
1401 ; ../../../include/ztex-utils.h:90: for (j=0; j<us; j++) |
0028 7C 00 1402 mov r4,#0x00 |
002A 7D 00 1403 mov r5,#0x00 |
002C 1404 00104$: |
002C C3 1405 clr c |
002D EC 1406 mov a,r4 |
002E 9A 1407 subb a,r2 |
002F ED 1408 mov a,r5 |
0030 9B 1409 subb a,r3 |
0031 50 14 1410 jnc 00108$ |
1411 ; ../../../include/ztex-utils.h:91: for (i=0; i<10; i++); |
0033 7E 0A 1412 mov r6,#0x0A |
0035 7F 00 1413 mov r7,#0x00 |
0037 1414 00103$: |
0037 1E 1415 dec r6 |
0038 BE FF 01 1416 cjne r6,#0xff,00117$ |
003B 1F 1417 dec r7 |
003C 1418 00117$: |
003C EE 1419 mov a,r6 |
003D 4F 1420 orl a,r7 |
003E 70 F7 1421 jnz 00103$ |
1422 ; ../../../include/ztex-utils.h:90: for (j=0; j<us; j++) |
0040 0C 1423 inc r4 |
0041 BC 00 E8 1424 cjne r4,#0x00,00104$ |
0044 0D 1425 inc r5 |
0045 80 E5 1426 sjmp 00104$ |
0047 1427 00108$: |
0047 22 1428 ret |
1429 ;------------------------------------------------------------ |
1430 ;Allocation info for local variables in function 'MEM_COPY1_int' |
1431 ;------------------------------------------------------------ |
1432 ;------------------------------------------------------------ |
1433 ; ../../../include/ztex-utils.h:99: void MEM_COPY1_int() __naked { |
1434 ; ----------------------------------------- |
1435 ; function MEM_COPY1_int |
1436 ; ----------------------------------------- |
0048 1437 _MEM_COPY1_int: |
1438 ; naked function: no prologue. |
1439 ; ../../../include/ztex-utils.h:109: _endasm; |
1440 |
0048 1441 020001$: |
0048 75 AF 07 1442 mov _AUTOPTRSETUP,#0x07 |
004B 90 E6 7B 1443 mov dptr,#_XAUTODAT1 |
004E E0 1444 movx a,@dptr |
004F 90 E6 7C 1445 mov dptr,#_XAUTODAT2 |
0052 F0 1446 movx @dptr,a |
0053 DA F3 1447 djnz r2, 020001$ |
0055 22 1448 ret |
1449 |
1450 ; naked function: no epilogue. |
1451 ;------------------------------------------------------------ |
1452 ;Allocation info for local variables in function 'i2c_waitWrite' |
1453 ;------------------------------------------------------------ |
1454 ;i2csbuf Allocated to registers r2 |
1455 ;toc Allocated to registers r2 |
1456 ;------------------------------------------------------------ |
1457 ; ../../../include/ztex-eeprom.h:41: BYTE i2c_waitWrite() |
1458 ; ----------------------------------------- |
1459 ; function i2c_waitWrite |
1460 ; ----------------------------------------- |
0056 1461 _i2c_waitWrite: |
1462 ; ../../../include/ztex-eeprom.h:44: for ( toc=0; toc<255 && !(I2CS & bmBIT0); toc++ ); |
0056 7A 00 1463 mov r2,#0x00 |
0058 1464 00105$: |
0058 BA FF 00 1465 cjne r2,#0xFF,00116$ |
005B 1466 00116$: |
005B 50 0B 1467 jnc 00108$ |
005D 90 E6 78 1468 mov dptr,#_I2CS |
0060 E0 1469 movx a,@dptr |
0061 FB 1470 mov r3,a |
0062 20 E0 03 1471 jb acc.0,00108$ |
0065 0A 1472 inc r2 |
0066 80 F0 1473 sjmp 00105$ |
0068 1474 00108$: |
1475 ; ../../../include/ztex-eeprom.h:45: i2csbuf = I2CS; |
0068 90 E6 78 1476 mov dptr,#_I2CS |
006B E0 1477 movx a,@dptr |
1478 ; ../../../include/ztex-eeprom.h:46: if ( (i2csbuf & bmBIT2) || (!(i2csbuf & bmBIT1)) ) { |
006C FA 1479 mov r2,a |
006D 20 E2 04 1480 jb acc.2,00101$ |
0070 EA 1481 mov a,r2 |
0071 20 E1 0B 1482 jb acc.1,00102$ |
0074 1483 00101$: |
1484 ; ../../../include/ztex-eeprom.h:47: I2CS |= bmBIT6; |
0074 90 E6 78 1485 mov dptr,#_I2CS |
0077 E0 1486 movx a,@dptr |
0078 44 40 1487 orl a,#0x40 |
007A F0 1488 movx @dptr,a |
1489 ; ../../../include/ztex-eeprom.h:48: return 1; |
007B 75 82 01 1490 mov dpl,#0x01 |
1491 ; ../../../include/ztex-eeprom.h:50: return 0; |
007E 22 1492 ret |
007F 1493 00102$: |
007F 75 82 00 1494 mov dpl,#0x00 |
0082 22 1495 ret |
1496 ;------------------------------------------------------------ |
1497 ;Allocation info for local variables in function 'i2c_waitRead' |
1498 ;------------------------------------------------------------ |
1499 ;i2csbuf Allocated to registers r2 |
1500 ;toc Allocated to registers r2 |
1501 ;------------------------------------------------------------ |
1502 ; ../../../include/ztex-eeprom.h:57: BYTE i2c_waitRead(void) |
1503 ; ----------------------------------------- |
1504 ; function i2c_waitRead |
1505 ; ----------------------------------------- |
0083 1506 _i2c_waitRead: |
1507 ; ../../../include/ztex-eeprom.h:60: for ( toc=0; toc<255 && !(I2CS & bmBIT0); toc++ ); |
0083 7A 00 1508 mov r2,#0x00 |
0085 1509 00104$: |
0085 BA FF 00 1510 cjne r2,#0xFF,00115$ |
0088 1511 00115$: |
0088 50 0B 1512 jnc 00107$ |
008A 90 E6 78 1513 mov dptr,#_I2CS |
008D E0 1514 movx a,@dptr |
008E FB 1515 mov r3,a |
008F 20 E0 03 1516 jb acc.0,00107$ |
0092 0A 1517 inc r2 |
0093 80 F0 1518 sjmp 00104$ |
0095 1519 00107$: |
1520 ; ../../../include/ztex-eeprom.h:61: i2csbuf = I2CS; |
0095 90 E6 78 1521 mov dptr,#_I2CS |
0098 E0 1522 movx a,@dptr |
1523 ; ../../../include/ztex-eeprom.h:62: if (i2csbuf & bmBIT2) { |
0099 FA 1524 mov r2,a |
009A 30 E2 0B 1525 jnb acc.2,00102$ |
1526 ; ../../../include/ztex-eeprom.h:63: I2CS |= bmBIT6; |
009D 90 E6 78 1527 mov dptr,#_I2CS |
00A0 E0 1528 movx a,@dptr |
00A1 44 40 1529 orl a,#0x40 |
00A3 F0 1530 movx @dptr,a |
1531 ; ../../../include/ztex-eeprom.h:64: return 1; |
00A4 75 82 01 1532 mov dpl,#0x01 |
1533 ; ../../../include/ztex-eeprom.h:66: return 0; |
00A7 22 1534 ret |
00A8 1535 00102$: |
00A8 75 82 00 1536 mov dpl,#0x00 |
00AB 22 1537 ret |
1538 ;------------------------------------------------------------ |
1539 ;Allocation info for local variables in function 'i2c_waitStart' |
1540 ;------------------------------------------------------------ |
1541 ;toc Allocated to registers r2 |
1542 ;------------------------------------------------------------ |
1543 ; ../../../include/ztex-eeprom.h:73: BYTE i2c_waitStart() |
1544 ; ----------------------------------------- |
1545 ; function i2c_waitStart |
1546 ; ----------------------------------------- |
00AC 1547 _i2c_waitStart: |
1548 ; ../../../include/ztex-eeprom.h:76: for ( toc=0; toc<255; toc++ ) { |
00AC 7A 00 1549 mov r2,#0x00 |
00AE 1550 00103$: |
00AE BA FF 00 1551 cjne r2,#0xFF,00112$ |
00B1 1552 00112$: |
00B1 50 0F 1553 jnc 00106$ |
1554 ; ../../../include/ztex-eeprom.h:77: if ( ! (I2CS & bmBIT2) ) |
00B3 90 E6 78 1555 mov dptr,#_I2CS |
00B6 E0 1556 movx a,@dptr |
00B7 FB 1557 mov r3,a |
00B8 20 E2 04 1558 jb acc.2,00105$ |
1559 ; ../../../include/ztex-eeprom.h:78: return 0; |
00BB 75 82 00 1560 mov dpl,#0x00 |
00BE 22 1561 ret |
00BF 1562 00105$: |
1563 ; ../../../include/ztex-eeprom.h:76: for ( toc=0; toc<255; toc++ ) { |
00BF 0A 1564 inc r2 |
00C0 80 EC 1565 sjmp 00103$ |
00C2 1566 00106$: |
1567 ; ../../../include/ztex-eeprom.h:80: return 1; |
00C2 75 82 01 1568 mov dpl,#0x01 |
00C5 22 1569 ret |
1570 ;------------------------------------------------------------ |
1571 ;Allocation info for local variables in function 'i2c_waitStop' |
1572 ;------------------------------------------------------------ |
1573 ;toc Allocated to registers r2 |
1574 ;------------------------------------------------------------ |
1575 ; ../../../include/ztex-eeprom.h:87: BYTE i2c_waitStop() |
1576 ; ----------------------------------------- |
1577 ; function i2c_waitStop |
1578 ; ----------------------------------------- |
00C6 1579 _i2c_waitStop: |
1580 ; ../../../include/ztex-eeprom.h:90: for ( toc=0; toc<255; toc++ ) { |
00C6 7A 00 1581 mov r2,#0x00 |
00C8 1582 00103$: |
00C8 BA FF 00 1583 cjne r2,#0xFF,00112$ |
00CB 1584 00112$: |
00CB 50 0F 1585 jnc 00106$ |
1586 ; ../../../include/ztex-eeprom.h:91: if ( ! (I2CS & bmBIT6) ) |
00CD 90 E6 78 1587 mov dptr,#_I2CS |
00D0 E0 1588 movx a,@dptr |
00D1 FB 1589 mov r3,a |
00D2 20 E6 04 1590 jb acc.6,00105$ |
1591 ; ../../../include/ztex-eeprom.h:92: return 0; |
00D5 75 82 00 1592 mov dpl,#0x00 |
00D8 22 1593 ret |
00D9 1594 00105$: |
1595 ; ../../../include/ztex-eeprom.h:90: for ( toc=0; toc<255; toc++ ) { |
00D9 0A 1596 inc r2 |
00DA 80 EC 1597 sjmp 00103$ |
00DC 1598 00106$: |
1599 ; ../../../include/ztex-eeprom.h:94: return 1; |
00DC 75 82 01 1600 mov dpl,#0x01 |
00DF 22 1601 ret |
1602 ;------------------------------------------------------------ |
1603 ;Allocation info for local variables in function 'eeprom_select' |
1604 ;------------------------------------------------------------ |
1605 ;stop Allocated with name '_eeprom_select_PARM_2' |
1606 ;to Allocated to registers r2 |
1607 ;toc Allocated to registers |
1608 ;------------------------------------------------------------ |
1609 ; ../../../include/ztex-eeprom.h:103: BYTE eeprom_select ( BYTE to, BYTE stop ) { |
1610 ; ----------------------------------------- |
1611 ; function eeprom_select |
1612 ; ----------------------------------------- |
00E0 1613 _eeprom_select: |
00E0 AA 82 1614 mov r2,dpl |
1615 ; ../../../include/ztex-eeprom.h:105: eeprom_select_start: |
00E2 C3 1616 clr c |
00E3 E4 1617 clr a |
00E4 9A 1618 subb a,r2 |
00E5 E4 1619 clr a |
00E6 33 1620 rlc a |
00E7 FA 1621 mov r2,a |
00E8 1622 00101$: |
1623 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
00E8 90 E6 78 1624 mov dptr,#_I2CS |
00EB E0 1625 movx a,@dptr |
00EC 44 80 1626 orl a,#0x80 |
00EE F0 1627 movx @dptr,a |
1628 ; ../../../include/ztex-eeprom.h:107: i2c_waitStart(); |
00EF C0 02 1629 push ar2 |
00F1 12s00rAC 1630 lcall _i2c_waitStart |
1631 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
00F4 90 E6 79 1632 mov dptr,#_I2DAT |
00F7 74 A2 1633 mov a,#0xA2 |
00F9 F0 1634 movx @dptr,a |
1635 ; ../../../include/ztex-eeprom.h:109: if ( ! i2c_waitWrite() ) { |
00FA 12s00r56 1636 lcall _i2c_waitWrite |
00FD E5 82 1637 mov a,dpl |
00FF D0 02 1638 pop ar2 |
0101 70 12 1639 jnz 00107$ |
1640 ; ../../../include/ztex-eeprom.h:110: if ( stop ) { |
0103 E5*00 1641 mov a,_eeprom_select_PARM_2 |
0105 60 0A 1642 jz 00103$ |
1643 ; ../../../include/ztex-eeprom.h:111: I2CS |= bmBIT6; |
0107 90 E6 78 1644 mov dptr,#_I2CS |
010A E0 1645 movx a,@dptr |
010B 44 40 1646 orl a,#0x40 |
010D F0 1647 movx @dptr,a |
1648 ; ../../../include/ztex-eeprom.h:112: i2c_waitStop(); |
010E 12s00rC6 1649 lcall _i2c_waitStop |
0111 1650 00103$: |
1651 ; ../../../include/ztex-eeprom.h:114: return 0; |
0111 75 82 00 1652 mov dpl,#0x00 |
0114 22 1653 ret |
0115 1654 00107$: |
1655 ; ../../../include/ztex-eeprom.h:116: else if (toc<to) { |
0115 EA 1656 mov a,r2 |
0116 60 0C 1657 jz 00108$ |
1658 ; ../../../include/ztex-eeprom.h:117: uwait(10); |
0118 90 00 0A 1659 mov dptr,#0x000A |
011B C0 02 1660 push ar2 |
011D 12s00r24 1661 lcall _uwait |
0120 D0 02 1662 pop ar2 |
1663 ; ../../../include/ztex-eeprom.h:118: goto eeprom_select_start; |
0122 80 C4 1664 sjmp 00101$ |
0124 1665 00108$: |
1666 ; ../../../include/ztex-eeprom.h:120: if ( stop ) { |
0124 E5*00 1667 mov a,_eeprom_select_PARM_2 |
0126 60 08 1668 jz 00110$ |
1669 ; ../../../include/ztex-eeprom.h:121: I2CS |= bmBIT6; |
0128 90 E6 78 1670 mov dptr,#_I2CS |
012B E0 1671 movx a,@dptr |
012C FA 1672 mov r2,a |
012D 44 40 1673 orl a,#0x40 |
012F F0 1674 movx @dptr,a |
0130 1675 00110$: |
1676 ; ../../../include/ztex-eeprom.h:123: return 1; |
0130 75 82 01 1677 mov dpl,#0x01 |
0133 22 1678 ret |
1679 ;------------------------------------------------------------ |
1680 ;Allocation info for local variables in function 'eeprom_read' |
1681 ;------------------------------------------------------------ |
1682 ;addr Allocated with name '_eeprom_read_PARM_2' |
1683 ;length Allocated with name '_eeprom_read_PARM_3' |
1684 ;buf Allocated to registers r2 r3 |
1685 ;bytes Allocated to registers r4 |
1686 ;i Allocated to registers |
1687 ;------------------------------------------------------------ |
1688 ; ../../../include/ztex-eeprom.h:131: BYTE eeprom_read ( __xdata BYTE *buf, WORD addr, BYTE length ) { |
1689 ; ----------------------------------------- |
1690 ; function eeprom_read |
1691 ; ----------------------------------------- |
0134 1692 _eeprom_read: |
0134 AA 82 1693 mov r2,dpl |
0136 AB 83 1694 mov r3,dph |
1695 ; ../../../include/ztex-eeprom.h:132: BYTE bytes = 0,i; |
0138 7C 00 1696 mov r4,#0x00 |
1697 ; ../../../include/ztex-eeprom.h:134: if ( length == 0 ) |
013A E5*03 1698 mov a,_eeprom_read_PARM_3 |
1699 ; ../../../include/ztex-eeprom.h:135: return 0; |
013C 70 03 1700 jnz 00102$ |
013E F5 82 1701 mov dpl,a |
0140 22 1702 ret |
0141 1703 00102$: |
1704 ; ../../../include/ztex-eeprom.h:137: if ( eeprom_select(100,0) ) |
0141 75*00 00 1705 mov _eeprom_select_PARM_2,#0x00 |
0144 75 82 64 1706 mov dpl,#0x64 |
0147 C0 02 1707 push ar2 |
0149 C0 03 1708 push ar3 |
014B C0 04 1709 push ar4 |
014D 12s00rE0 1710 lcall _eeprom_select |
0150 E5 82 1711 mov a,dpl |
0152 D0 04 1712 pop ar4 |
0154 D0 03 1713 pop ar3 |
0156 D0 02 1714 pop ar2 |
0158 60 03 1715 jz 00134$ |
015A 02s02r37 1716 ljmp 00117$ |
015D 1717 00134$: |
1718 ; ../../../include/ztex-eeprom.h:30: ***** global variables ********************************************** |
015D 90 E6 79 1719 mov dptr,#_I2DAT |
0160 E5*02 1720 mov a,(_eeprom_read_PARM_2 + 1) |
0162 F0 1721 movx @dptr,a |
1722 ; ../../../include/ztex-eeprom.h:141: if ( i2c_waitWrite() ) goto eeprom_read_end; |
0163 C0 02 1723 push ar2 |
0165 C0 03 1724 push ar3 |
0167 C0 04 1725 push ar4 |
0169 12s00r56 1726 lcall _i2c_waitWrite |
016C E5 82 1727 mov a,dpl |
016E D0 04 1728 pop ar4 |
0170 D0 03 1729 pop ar3 |
0172 D0 02 1730 pop ar2 |
0174 60 03 1731 jz 00135$ |
0176 02s02r37 1732 ljmp 00117$ |
0179 1733 00135$: |
1734 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0179 90 E6 79 1735 mov dptr,#_I2DAT |
017C E5*01 1736 mov a,_eeprom_read_PARM_2 |
017E F0 1737 movx @dptr,a |
1738 ; ../../../include/ztex-eeprom.h:143: if ( i2c_waitWrite() ) goto eeprom_read_end; |
017F C0 02 1739 push ar2 |
0181 C0 03 1740 push ar3 |
0183 C0 04 1741 push ar4 |
0185 12s00r56 1742 lcall _i2c_waitWrite |
0188 E5 82 1743 mov a,dpl |
018A D0 04 1744 pop ar4 |
018C D0 03 1745 pop ar3 |
018E D0 02 1746 pop ar2 |
0190 60 03 1747 jz 00136$ |
0192 02s02r37 1748 ljmp 00117$ |
0195 1749 00136$: |
1750 ; ../../../include/ztex-eeprom.h:144: I2CS |= bmBIT6; |
0195 90 E6 78 1751 mov dptr,#_I2CS |
0198 E0 1752 movx a,@dptr |
0199 44 40 1753 orl a,#0x40 |
019B F0 1754 movx @dptr,a |
1755 ; ../../../include/ztex-eeprom.h:145: i2c_waitStop(); |
019C C0 02 1756 push ar2 |
019E C0 03 1757 push ar3 |
01A0 C0 04 1758 push ar4 |
01A2 12s00rC6 1759 lcall _i2c_waitStop |
1760 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
01A5 90 E6 78 1761 mov dptr,#_I2CS |
01A8 E0 1762 movx a,@dptr |
01A9 44 80 1763 orl a,#0x80 |
01AB F0 1764 movx @dptr,a |
1765 ; ../../../include/ztex-eeprom.h:148: i2c_waitStart(); |
01AC 12s00rAC 1766 lcall _i2c_waitStart |
1767 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
01AF 90 E6 79 1768 mov dptr,#_I2DAT |
01B2 74 A3 1769 mov a,#0xA3 |
01B4 F0 1770 movx @dptr,a |
1771 ; ../../../include/ztex-eeprom.h:150: if ( i2c_waitWrite() ) goto eeprom_read_end; |
01B5 12s00r56 1772 lcall _i2c_waitWrite |
01B8 E5 82 1773 mov a,dpl |
01BA D0 04 1774 pop ar4 |
01BC D0 03 1775 pop ar3 |
01BE D0 02 1776 pop ar2 |
01C0 70 75 1777 jnz 00117$ |
1778 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
01C2 90 E6 79 1779 mov dptr,#_I2DAT |
01C5 E0 1780 movx a,@dptr |
01C6 8A 82 1781 mov dpl,r2 |
01C8 8B 83 1782 mov dph,r3 |
01CA F0 1783 movx @dptr,a |
1784 ; ../../../include/ztex-eeprom.h:153: if ( i2c_waitRead()) goto eeprom_read_end; |
01CB C0 02 1785 push ar2 |
01CD C0 03 1786 push ar3 |
01CF C0 04 1787 push ar4 |
01D1 12s00r83 1788 lcall _i2c_waitRead |
01D4 E5 82 1789 mov a,dpl |
01D6 D0 04 1790 pop ar4 |
01D8 D0 03 1791 pop ar3 |
01DA D0 02 1792 pop ar2 |
01DC 70 59 1793 jnz 00117$ |
01DE FD 1794 mov r5,a |
01DF 1795 00118$: |
1796 ; ../../../include/ztex-eeprom.h:154: for (; bytes<length; bytes++ ) { |
01DF C3 1797 clr c |
01E0 ED 1798 mov a,r5 |
01E1 95*03 1799 subb a,_eeprom_read_PARM_3 |
01E3 50 2A 1800 jnc 00121$ |
1801 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
01E5 90 E6 79 1802 mov dptr,#_I2DAT |
01E8 E0 1803 movx a,@dptr |
01E9 8A 82 1804 mov dpl,r2 |
01EB 8B 83 1805 mov dph,r3 |
01ED F0 1806 movx @dptr,a |
01EE A3 1807 inc dptr |
01EF AA 82 1808 mov r2,dpl |
01F1 AB 83 1809 mov r3,dph |
1810 ; ../../../include/ztex-eeprom.h:156: buf++; |
1811 ; ../../../include/ztex-eeprom.h:157: if ( i2c_waitRead()) goto eeprom_read_end; |
01F3 C0 02 1812 push ar2 |
01F5 C0 03 1813 push ar3 |
01F7 C0 04 1814 push ar4 |
01F9 C0 05 1815 push ar5 |
01FB 12s00r83 1816 lcall _i2c_waitRead |
01FE E5 82 1817 mov a,dpl |
0200 D0 05 1818 pop ar5 |
0202 D0 04 1819 pop ar4 |
0204 D0 03 1820 pop ar3 |
0206 D0 02 1821 pop ar2 |
0208 70 2D 1822 jnz 00117$ |
1823 ; ../../../include/ztex-eeprom.h:154: for (; bytes<length; bytes++ ) { |
020A 0D 1824 inc r5 |
020B 8D 04 1825 mov ar4,r5 |
020D 80 D0 1826 sjmp 00118$ |
020F 1827 00121$: |
1828 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
020F 90 E6 78 1829 mov dptr,#_I2CS |
0212 E0 1830 movx a,@dptr |
0213 44 20 1831 orl a,#0x20 |
0215 F0 1832 movx @dptr,a |
0216 90 E6 79 1833 mov dptr,#_I2DAT |
0219 E0 1834 movx a,@dptr |
1835 ; ../../../include/ztex-eeprom.h:162: if ( i2c_waitRead()) goto eeprom_read_end; |
021A C0 04 1836 push ar4 |
021C 12s00r83 1837 lcall _i2c_waitRead |
021F E5 82 1838 mov a,dpl |
0221 D0 04 1839 pop ar4 |
0223 70 12 1840 jnz 00117$ |
1841 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0225 90 E6 78 1842 mov dptr,#_I2CS |
0228 E0 1843 movx a,@dptr |
0229 44 40 1844 orl a,#0x40 |
022B F0 1845 movx @dptr,a |
022C 90 E6 79 1846 mov dptr,#_I2DAT |
022F E0 1847 movx a,@dptr |
1848 ; ../../../include/ztex-eeprom.h:166: i2c_waitStop(); |
0230 C0 04 1849 push ar4 |
0232 12s00rC6 1850 lcall _i2c_waitStop |
0235 D0 04 1851 pop ar4 |
1852 ; ../../../include/ztex-eeprom.h:168: eeprom_read_end: |
0237 1853 00117$: |
1854 ; ../../../include/ztex-eeprom.h:169: return bytes; |
0237 8C 82 1855 mov dpl,r4 |
0239 22 1856 ret |
1857 ;------------------------------------------------------------ |
1858 ;Allocation info for local variables in function 'eeprom_write' |
1859 ;------------------------------------------------------------ |
1860 ;addr Allocated with name '_eeprom_write_PARM_2' |
1861 ;length Allocated with name '_eeprom_write_PARM_3' |
1862 ;buf Allocated to registers r2 r3 |
1863 ;bytes Allocated to registers r4 |
1864 ;------------------------------------------------------------ |
1865 ; ../../../include/ztex-eeprom.h:178: BYTE eeprom_write ( __xdata BYTE *buf, WORD addr, BYTE length ) { |
1866 ; ----------------------------------------- |
1867 ; function eeprom_write |
1868 ; ----------------------------------------- |
023A 1869 _eeprom_write: |
023A AA 82 1870 mov r2,dpl |
023C AB 83 1871 mov r3,dph |
1872 ; ../../../include/ztex-eeprom.h:179: BYTE bytes = 0; |
023E 7C 00 1873 mov r4,#0x00 |
1874 ; ../../../include/ztex-eeprom.h:181: if ( eeprom_select(100,0) ) |
0240 75*00 00 1875 mov _eeprom_select_PARM_2,#0x00 |
0243 75 82 64 1876 mov dpl,#0x64 |
0246 C0 02 1877 push ar2 |
0248 C0 03 1878 push ar3 |
024A C0 04 1879 push ar4 |
024C 12s00rE0 1880 lcall _eeprom_select |
024F E5 82 1881 mov a,dpl |
0251 D0 04 1882 pop ar4 |
0253 D0 03 1883 pop ar3 |
0255 D0 02 1884 pop ar2 |
0257 60 03 1885 jz 00121$ |
0259 02s02rED 1886 ljmp 00109$ |
025C 1887 00121$: |
1888 ; ../../../include/ztex-eeprom.h:30: ***** global variables ********************************************** |
025C 90 E6 79 1889 mov dptr,#_I2DAT |
025F E5*05 1890 mov a,(_eeprom_write_PARM_2 + 1) |
0261 F0 1891 movx @dptr,a |
1892 ; ../../../include/ztex-eeprom.h:185: if ( i2c_waitWrite() ) goto eeprom_write_end; |
0262 C0 02 1893 push ar2 |
0264 C0 03 1894 push ar3 |
0266 C0 04 1895 push ar4 |
0268 12s00r56 1896 lcall _i2c_waitWrite |
026B E5 82 1897 mov a,dpl |
026D D0 04 1898 pop ar4 |
026F D0 03 1899 pop ar3 |
0271 D0 02 1900 pop ar2 |
0273 60 03 1901 jz 00122$ |
0275 02s02rED 1902 ljmp 00109$ |
0278 1903 00122$: |
1904 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0278 90 E6 79 1905 mov dptr,#_I2DAT |
027B E5*04 1906 mov a,_eeprom_write_PARM_2 |
027D F0 1907 movx @dptr,a |
1908 ; ../../../include/ztex-eeprom.h:187: if ( i2c_waitWrite() ) goto eeprom_write_end; |
027E C0 02 1909 push ar2 |
0280 C0 03 1910 push ar3 |
0282 C0 04 1911 push ar4 |
0284 12s00r56 1912 lcall _i2c_waitWrite |
0287 E5 82 1913 mov a,dpl |
0289 D0 04 1914 pop ar4 |
028B D0 03 1915 pop ar3 |
028D D0 02 1916 pop ar2 |
028F 70 5C 1917 jnz 00109$ |
0291 FD 1918 mov r5,a |
0292 1919 00110$: |
1920 ; ../../../include/ztex-eeprom.h:189: for (; bytes<length; bytes++ ) { |
0292 C3 1921 clr c |
0293 ED 1922 mov a,r5 |
0294 95*06 1923 subb a,_eeprom_write_PARM_3 |
0296 50 47 1924 jnc 00113$ |
1925 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0298 8A 82 1926 mov dpl,r2 |
029A 8B 83 1927 mov dph,r3 |
029C E0 1928 movx a,@dptr |
029D FE 1929 mov r6,a |
029E A3 1930 inc dptr |
029F AA 82 1931 mov r2,dpl |
02A1 AB 83 1932 mov r3,dph |
02A3 90 E6 79 1933 mov dptr,#_I2DAT |
02A6 EE 1934 mov a,r6 |
02A7 F0 1935 movx @dptr,a |
1936 ; ../../../include/ztex-eeprom.h:191: eeprom_write_checksum += *buf; |
02A8 90s00r04 1937 mov dptr,#_eeprom_write_checksum |
02AB E0 1938 movx a,@dptr |
02AC FF 1939 mov r7,a |
02AD EE 1940 mov a,r6 |
02AE 2F 1941 add a,r7 |
02AF F0 1942 movx @dptr,a |
1943 ; ../../../include/ztex-eeprom.h:192: buf++; |
1944 ; ../../../include/ztex-eeprom.h:193: eeprom_write_bytes+=1; |
02B0 90s00r02 1945 mov dptr,#_eeprom_write_bytes |
02B3 E0 1946 movx a,@dptr |
02B4 FE 1947 mov r6,a |
02B5 A3 1948 inc dptr |
02B6 E0 1949 movx a,@dptr |
02B7 FF 1950 mov r7,a |
02B8 90s00r02 1951 mov dptr,#_eeprom_write_bytes |
02BB 74 01 1952 mov a,#0x01 |
02BD 2E 1953 add a,r6 |
02BE F0 1954 movx @dptr,a |
02BF E4 1955 clr a |
02C0 3F 1956 addc a,r7 |
02C1 A3 1957 inc dptr |
02C2 F0 1958 movx @dptr,a |
1959 ; ../../../include/ztex-eeprom.h:194: if ( i2c_waitWrite() ) goto eeprom_write_end; |
02C3 C0 02 1960 push ar2 |
02C5 C0 03 1961 push ar3 |
02C7 C0 04 1962 push ar4 |
02C9 C0 05 1963 push ar5 |
02CB 12s00r56 1964 lcall _i2c_waitWrite |
02CE E5 82 1965 mov a,dpl |
02D0 D0 05 1966 pop ar5 |
02D2 D0 04 1967 pop ar4 |
02D4 D0 03 1968 pop ar3 |
02D6 D0 02 1969 pop ar2 |
02D8 70 13 1970 jnz 00109$ |
1971 ; ../../../include/ztex-eeprom.h:189: for (; bytes<length; bytes++ ) { |
02DA 0D 1972 inc r5 |
02DB 8D 04 1973 mov ar4,r5 |
02DD 80 B3 1974 sjmp 00110$ |
02DF 1975 00113$: |
1976 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
02DF 90 E6 78 1977 mov dptr,#_I2CS |
02E2 E0 1978 movx a,@dptr |
02E3 44 40 1979 orl a,#0x40 |
02E5 F0 1980 movx @dptr,a |
1981 ; ../../../include/ztex-eeprom.h:197: i2c_waitStop(); |
02E6 C0 04 1982 push ar4 |
02E8 12s00rC6 1983 lcall _i2c_waitStop |
02EB D0 04 1984 pop ar4 |
1985 ; ../../../include/ztex-eeprom.h:199: eeprom_write_end: |
02ED 1986 00109$: |
1987 ; ../../../include/ztex-eeprom.h:200: return bytes; |
02ED 8C 82 1988 mov dpl,r4 |
02EF 22 1989 ret |
1990 ;------------------------------------------------------------ |
1991 ;Allocation info for local variables in function 'eeprom_read_ep0' |
1992 ;------------------------------------------------------------ |
1993 ;i Allocated to registers r3 |
1994 ;b Allocated to registers r2 |
1995 ;------------------------------------------------------------ |
1996 ; ../../../include/ztex-eeprom.h:206: BYTE eeprom_read_ep0 () { |
1997 ; ----------------------------------------- |
1998 ; function eeprom_read_ep0 |
1999 ; ----------------------------------------- |
02F0 2000 _eeprom_read_ep0: |
2001 ; ../../../include/ztex-eeprom.h:208: b = ep0_payload_transfer; |
02F0 90s00r02 2002 mov dptr,#_ep0_payload_transfer |
02F3 E0 2003 movx a,@dptr |
02F4 FA 2004 mov r2,a |
2005 ; ../../../include/ztex-eeprom.h:209: i = eeprom_read(EP0BUF, eeprom_addr, b); |
02F5 90s00r00 2006 mov dptr,#_eeprom_addr |
02F8 E0 2007 movx a,@dptr |
02F9 F5*01 2008 mov _eeprom_read_PARM_2,a |
02FB A3 2009 inc dptr |
02FC E0 2010 movx a,@dptr |
02FD F5*02 2011 mov (_eeprom_read_PARM_2 + 1),a |
02FF 8A*03 2012 mov _eeprom_read_PARM_3,r2 |
0301 90 E7 40 2013 mov dptr,#_EP0BUF |
0304 C0 02 2014 push ar2 |
0306 12s01r34 2015 lcall _eeprom_read |
0309 AB 82 2016 mov r3,dpl |
030B D0 02 2017 pop ar2 |
2018 ; ../../../include/ztex-eeprom.h:210: eeprom_addr += b; |
030D 7C 00 2019 mov r4,#0x00 |
030F 90s00r00 2020 mov dptr,#_eeprom_addr |
0312 E0 2021 movx a,@dptr |
0313 FD 2022 mov r5,a |
0314 A3 2023 inc dptr |
0315 E0 2024 movx a,@dptr |
0316 FE 2025 mov r6,a |
0317 90s00r00 2026 mov dptr,#_eeprom_addr |
031A EA 2027 mov a,r2 |
031B 2D 2028 add a,r5 |
031C F0 2029 movx @dptr,a |
031D EC 2030 mov a,r4 |
031E 3E 2031 addc a,r6 |
031F A3 2032 inc dptr |
0320 F0 2033 movx @dptr,a |
2034 ; ../../../include/ztex-eeprom.h:211: return i; |
0321 8B 82 2035 mov dpl,r3 |
0323 22 2036 ret |
2037 ;------------------------------------------------------------ |
2038 ;Allocation info for local variables in function 'eeprom_write_ep0' |
2039 ;------------------------------------------------------------ |
2040 ;length Allocated to registers r2 |
2041 ;------------------------------------------------------------ |
2042 ; ../../../include/ztex-eeprom.h:227: void eeprom_write_ep0 ( BYTE length ) { |
2043 ; ----------------------------------------- |
2044 ; function eeprom_write_ep0 |
2045 ; ----------------------------------------- |
0324 2046 _eeprom_write_ep0: |
0324 AA 82 2047 mov r2,dpl |
2048 ; ../../../include/ztex-eeprom.h:228: eeprom_write(EP0BUF, eeprom_addr, length); |
0326 90s00r00 2049 mov dptr,#_eeprom_addr |
0329 E0 2050 movx a,@dptr |
032A F5*04 2051 mov _eeprom_write_PARM_2,a |
032C A3 2052 inc dptr |
032D E0 2053 movx a,@dptr |
032E F5*05 2054 mov (_eeprom_write_PARM_2 + 1),a |
0330 8A*06 2055 mov _eeprom_write_PARM_3,r2 |
0332 90 E7 40 2056 mov dptr,#_EP0BUF |
0335 C0 02 2057 push ar2 |
0337 12s02r3A 2058 lcall _eeprom_write |
033A D0 02 2059 pop ar2 |
2060 ; ../../../include/ztex-eeprom.h:229: eeprom_addr += length; |
033C 7B 00 2061 mov r3,#0x00 |
033E 90s00r00 2062 mov dptr,#_eeprom_addr |
0341 E0 2063 movx a,@dptr |
0342 FC 2064 mov r4,a |
0343 A3 2065 inc dptr |
0344 E0 2066 movx a,@dptr |
0345 FD 2067 mov r5,a |
0346 90s00r00 2068 mov dptr,#_eeprom_addr |
0349 EA 2069 mov a,r2 |
034A 2C 2070 add a,r4 |
034B F0 2071 movx @dptr,a |
034C EB 2072 mov a,r3 |
034D 3D 2073 addc a,r5 |
034E A3 2074 inc dptr |
034F F0 2075 movx @dptr,a |
0350 22 2076 ret |
2077 ;------------------------------------------------------------ |
2078 ;Allocation info for local variables in function 'debug_add_msg' |
2079 ;------------------------------------------------------------ |
2080 ;i Allocated to registers r4 |
2081 ;------------------------------------------------------------ |
2082 ; ../../../include/ztex-debug.h:48: void debug_add_msg () { |
2083 ; ----------------------------------------- |
2084 ; function debug_add_msg |
2085 ; ----------------------------------------- |
0351 2086 _debug_add_msg: |
2087 ; ../../../include/ztex-debug.h:50: i = debug_counter % DEBUG_STACK_SIZE; |
0351 90s00r05 2088 mov dptr,#_debug_counter |
0354 E0 2089 movx a,@dptr |
0355 FA 2090 mov r2,a |
0356 A3 2091 inc dptr |
0357 E0 2092 movx a,@dptr |
0358 FB 2093 mov r3,a |
0359 74 1F 2094 mov a,#0x1F |
035B 5A 2095 anl a,r2 |
2096 ; ../../../include/ztex-debug.h:51: debug_stack_ptr = &debug_stack[i*DEBUG_MSG_SIZE]; |
035C 75 F0 03 2097 mov b,#0x03 |
035F A4 2098 mul ab |
0360 24r09 2099 add a,#_debug_stack |
0362 FC 2100 mov r4,a |
0363 E4 2101 clr a |
0364 34s00 2102 addc a,#(_debug_stack >> 8) |
0366 FD 2103 mov r5,a |
0367 90s00r69 2104 mov dptr,#_debug_stack_ptr |
036A EC 2105 mov a,r4 |
036B F0 2106 movx @dptr,a |
036C A3 2107 inc dptr |
036D ED 2108 mov a,r5 |
036E F0 2109 movx @dptr,a |
2110 ; ../../../include/ztex-utils.h:120: AUTOPTRL1=LO(&($0)); |
036F 75 9Br6B 2111 mov _AUTOPTRL1,#_debug_msg_buf |
2112 ; ../../../include/ztex-utils.h:121: AUTOPTRH1=HI(&($0)); |
0372 7Er6B 2113 mov r6,#_debug_msg_buf |
0374 7Fs00 2114 mov r7,#(_debug_msg_buf >> 8) |
0376 8F 9A 2115 mov _AUTOPTRH1,r7 |
2116 ; ../../../include/ztex-utils.h:122: AUTOPTRL2=LO(&($1)); |
0378 8C 06 2117 mov ar6,r4 |
037A 8D 07 2118 mov ar7,r5 |
037C 8E 9E 2119 mov _AUTOPTRL2,r6 |
2120 ; ../../../include/ztex-utils.h:123: AUTOPTRH2=HI(&($1)); |
037E 8D 9D 2121 mov _AUTOPTRH2,r5 |
2122 ; ../../../include/ztex-utils.h:129: _endasm; |
2123 |
0380 C0 02 2124 push ar2 |
0382 7A 03 2125 mov r2,#(3); |
0384 12s00r48 2126 lcall _MEM_COPY1_int |
0387 D0 02 2127 pop ar2 |
2128 |
2129 ; ../../../include/ztex-debug.h:53: debug_counter += 1; |
0389 90s00r05 2130 mov dptr,#_debug_counter |
038C 74 01 2131 mov a,#0x01 |
038E 2A 2132 add a,r2 |
038F F0 2133 movx @dptr,a |
0390 E4 2134 clr a |
0391 3B 2135 addc a,r3 |
0392 A3 2136 inc dptr |
0393 F0 2137 movx @dptr,a |
0394 22 2138 ret |
2139 ;------------------------------------------------------------ |
2140 ;Allocation info for local variables in function 'debug_init' |
2141 ;------------------------------------------------------------ |
2142 ;------------------------------------------------------------ |
2143 ; ../../../include/ztex-debug.h:60: void debug_init () { |
2144 ; ----------------------------------------- |
2145 ; function debug_init |
2146 ; ----------------------------------------- |
0395 2147 _debug_init: |
2148 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0395 90s00r05 2149 mov dptr,#_debug_counter |
0398 E4 2150 clr a |
0399 F0 2151 movx @dptr,a |
039A A3 2152 inc dptr |
039B F0 2153 movx @dptr,a |
2154 ; ../../../include/ztex-debug.h:62: debug_stack_size = DEBUG_STACK_SIZE; |
039C 90s00r07 2155 mov dptr,#_debug_stack_size |
039F 74 20 2156 mov a,#0x20 |
03A1 F0 2157 movx @dptr,a |
2158 ; ../../../include/ztex-debug.h:63: debug_msg_size = DEBUG_MSG_SIZE; |
03A2 90s00r08 2159 mov dptr,#_debug_msg_size |
03A5 74 03 2160 mov a,#0x03 |
03A7 F0 2161 movx @dptr,a |
2162 ; ../../../include/ztex-debug.h:64: debug_stack_ptr = debug_stack; |
03A8 90s00r69 2163 mov dptr,#_debug_stack_ptr |
03AB 74r09 2164 mov a,#_debug_stack |
03AD F0 2165 movx @dptr,a |
03AE A3 2166 inc dptr |
03AF 74s00 2167 mov a,#(_debug_stack >> 8) |
03B1 F0 2168 movx @dptr,a |
03B2 22 2169 ret |
2170 ;------------------------------------------------------------ |
2171 ;Allocation info for local variables in function 'debug_read_ep0' |
2172 ;------------------------------------------------------------ |
2173 ;b Allocated to registers r2 |
2174 ;------------------------------------------------------------ |
2175 ; ../../../include/ztex-debug.h:71: BYTE debug_read_ep0 () { |
2176 ; ----------------------------------------- |
2177 ; function debug_read_ep0 |
2178 ; ----------------------------------------- |
03B3 2179 _debug_read_ep0: |
2180 ; ../../../include/ztex-debug.h:73: b = ep0_payload_transfer; |
03B3 90s00r02 2181 mov dptr,#_ep0_payload_transfer |
03B6 E0 2182 movx a,@dptr |
2183 ; ../../../include/ztex-debug.h:74: if ( b != 0) { |
03B7 FA 2184 mov r2,a |
03B8 70 03 2185 jnz 00106$ |
03BA 02s03rD8 2186 ljmp 00102$ |
03BD 2187 00106$: |
2188 ; ../../../include/ztex-utils.h:120: AUTOPTRL1=LO(&($0)); |
03BD 90s00r6E 2189 mov dptr,#_debug_read_addr |
03C0 E0 2190 movx a,@dptr |
03C1 FB 2191 mov r3,a |
03C2 A3 2192 inc dptr |
03C3 E0 2193 movx a,@dptr |
03C4 FC 2194 mov r4,a |
03C5 8B 9B 2195 mov _AUTOPTRL1,r3 |
2196 ; ../../../include/ztex-utils.h:121: AUTOPTRH1=HI(&($0)); |
03C7 8C 9A 2197 mov _AUTOPTRH1,r4 |
2198 ; ../../../include/ztex-utils.h:122: AUTOPTRL2=LO(&($1)); |
03C9 75 9E 40 2199 mov _AUTOPTRL2,#0x40 |
2200 ; ../../../include/ztex-utils.h:123: AUTOPTRH2=HI(&($1)); |
03CC 75 9D E7 2201 mov _AUTOPTRH2,#0xE7 |
2202 ; ../../../include/ztex-utils.h:129: _endasm; |
2203 |
03CF C0 02 2204 push ar2 |
03D1 7A F0 2205 mov r2,#(b); |
03D3 12s00r48 2206 lcall _MEM_COPY1_int |
03D6 D0 02 2207 pop ar2 |
2208 |
03D8 2209 00102$: |
2210 ; ../../../include/ztex-debug.h:77: debug_read_addr += b; |
03D8 90s00r6E 2211 mov dptr,#_debug_read_addr |
03DB E0 2212 movx a,@dptr |
03DC FB 2213 mov r3,a |
03DD A3 2214 inc dptr |
03DE E0 2215 movx a,@dptr |
03DF FC 2216 mov r4,a |
03E0 90s00r6E 2217 mov dptr,#_debug_read_addr |
03E3 EA 2218 mov a,r2 |
03E4 2B 2219 add a,r3 |
03E5 F0 2220 movx @dptr,a |
03E6 E4 2221 clr a |
03E7 3C 2222 addc a,r4 |
03E8 A3 2223 inc dptr |
03E9 F0 2224 movx @dptr,a |
2225 ; ../../../include/ztex-debug.h:78: return b; |
03EA 8A 82 2226 mov dpl,r2 |
03EC 22 2227 ret |
2228 ;------------------------------------------------------------ |
2229 ;Allocation info for local variables in function 'abscode_identity' |
2230 ;------------------------------------------------------------ |
2231 ;------------------------------------------------------------ |
2232 ; ../../../include/ztex-descriptors.h:116: void abscode_identity() _naked |
2233 ; ----------------------------------------- |
2234 ; function abscode_identity |
2235 ; ----------------------------------------- |
03ED 2236 _abscode_identity: |
2237 ; naked function: no prologue. |
2238 ; ../../../include/ztex-descriptors.h:170: .db MODULE_RESERVED_03 |
2239 |
2240 .area ABSCODE (ABS,CODE) |
2241 |
006C 2242 .org 0x06c |
006C 28 2243 .db 40 |
2244 |
006D 2245 .org _ZTEX_DESCRIPTOR_VERSION |
006D 01 2246 .db 1 |
2247 |
006E 2248 .org _ZTEXID |
006E 5A 54 45 58 2249 .ascii "ZTEX" |
2250 |
0072 2251 .org _PRODUCT_ID |
0072 00 2252 .db 0 |
0073 00 2253 .db 0 |
0074 00 2254 .db 0 |
0075 00 2255 .db 0 |
2256 |
0076 2257 .org _FW_VERSION |
0076 00 2258 .db 0 |
2259 |
0077 2260 .org _INTERFACE_VERSION |
0077 01 2261 .db 1 |
2262 |
0078 2263 .org _INTERFACE_CAPABILITIES |
2264 ; # 158 "../../../include/ztex-descriptors.h" |
0078 09 2265 .db 0 + 1 + 8 |
2266 ; # 160 "../../../include/ztex-descriptors.h" |
0079 00 2267 .db 0 |
007A 00 2268 .db 0 |
007B 00 2269 .db 0 |
007C 00 2270 .db 0 |
007D 00 2271 .db 0 |
2272 |
007E 2273 .org _MODULE_RESERVED |
007E 00 2274 .db 0 |
007F 00 2275 .db 0 |
0080 00 2276 .db 0 |
0081 00 2277 .db 0 |
0082 00 2278 .db 0 |
0083 00 2279 .db 0 |
0084 00 2280 .db 0 |
0085 00 2281 .db 0 |
0086 00 2282 .db 0 |
0087 00 2283 .db 0 |
0088 00 2284 .db 0 |
0089 00 2285 .db 0 |
2286 |
008A 2287 .org _SN_STRING |
008A 30 30 30 30 30 30 2288 .ascii "0000000000" |
30 30 30 30 |
2289 |
2290 .area CSEG (CODE) |
2291 |
2292 ; naked function: no epilogue. |
2293 ;------------------------------------------------------------ |
2294 ;Allocation info for local variables in function 'resetToggleData' |
2295 ;------------------------------------------------------------ |
2296 ;------------------------------------------------------------ |
2297 ; ../../../include/ztex-isr.h:34: static void resetToggleData () { |
2298 ; ----------------------------------------- |
2299 ; function resetToggleData |
2300 ; ----------------------------------------- |
03ED 2301 _resetToggleData: |
2302 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
2303 ; ../../../include/ztex-isr.h:46: TOGCTL = 0 | bmBIT5; |
2304 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
2305 ; ../../../include/ztex-isr.h:48: TOGCTL = 0x10 | bmBIT5; |
03ED 90 E6 83 2306 mov dptr,#_TOGCTL |
03F0 E4 2307 clr a |
03F1 F0 2308 movx @dptr,a |
03F2 74 20 2309 mov a,#0x20 |
03F4 F0 2310 movx @dptr,a |
03F5 74 10 2311 mov a,#0x10 |
03F7 F0 2312 movx @dptr,a |
03F8 74 30 2313 mov a,#0x30 |
03FA F0 2314 movx @dptr,a |
2315 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
2316 ; ../../../include/ztex-isr.h:51: TOGCTL = 1 | bmBIT5; |
2317 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
2318 ; ../../../include/ztex-isr.h:55: TOGCTL = 0x11 | bmBIT5; |
03FB 90 E6 83 2319 mov dptr,#_TOGCTL |
03FE 74 01 2320 mov a,#0x01 |
0400 F0 2321 movx @dptr,a |
0401 74 21 2322 mov a,#0x21 |
0403 F0 2323 movx @dptr,a |
0404 74 11 2324 mov a,#0x11 |
0406 F0 2325 movx @dptr,a |
0407 74 31 2326 mov a,#0x31 |
0409 F0 2327 movx @dptr,a |
040A 22 2328 ret |
2329 ;------------------------------------------------------------ |
2330 ;Allocation info for local variables in function 'sendStringDescriptor' |
2331 ;------------------------------------------------------------ |
2332 ;hiAddr Allocated with name '_sendStringDescriptor_PARM_2' |
2333 ;size Allocated with name '_sendStringDescriptor_PARM_3' |
2334 ;loAddr Allocated to registers r2 |
2335 ;i Allocated to registers r2 |
2336 ;------------------------------------------------------------ |
2337 ; ../../../include/ztex-isr.h:68: static void sendStringDescriptor (BYTE loAddr, BYTE hiAddr, BYTE size) |
2338 ; ----------------------------------------- |
2339 ; function sendStringDescriptor |
2340 ; ----------------------------------------- |
040B 2341 _sendStringDescriptor: |
040B AA 82 2342 mov r2,dpl |
2343 ; ../../../include/ztex-isr.h:71: if ( size > 31) |
040D E5*01 2344 mov a,_sendStringDescriptor_PARM_3 |
040F 24 E0 2345 add a,#0xff - 0x1F |
0411 50 03 2346 jnc 00102$ |
2347 ; ../../../include/ztex-isr.h:72: size = 31; |
0413 75*01 1F 2348 mov _sendStringDescriptor_PARM_3,#0x1F |
0416 2349 00102$: |
2350 ; ../../../include/ztex-isr.h:73: AUTOPTRSETUP = 7; |
0416 75 AF 07 2351 mov _AUTOPTRSETUP,#0x07 |
2352 ; ../../../include/ztex-isr.h:74: AUTOPTRL1 = loAddr; |
0419 8A 9B 2353 mov _AUTOPTRL1,r2 |
2354 ; ../../../include/ztex-isr.h:75: AUTOPTRH1 = hiAddr; |
041B 85*00 9A 2355 mov _AUTOPTRH1,_sendStringDescriptor_PARM_2 |
2356 ; ../../../include/ztex-isr.h:76: AUTOPTRL2 = (BYTE)(((unsigned short)(&EP0BUF))+1); |
041E 75 9E 41 2357 mov _AUTOPTRL2,#0x41 |
2358 ; ../../../include/ztex-isr.h:77: AUTOPTRH2 = (BYTE)((((unsigned short)(&EP0BUF))+1) >> 8); |
0421 75 9D E7 2359 mov _AUTOPTRH2,#0xE7 |
2360 ; ../../../include/ztex-isr.h:78: XAUTODAT2 = 3; |
0424 90 E6 7C 2361 mov dptr,#_XAUTODAT2 |
0427 74 03 2362 mov a,#0x03 |
0429 F0 2363 movx @dptr,a |
2364 ; ../../../include/ztex-isr.h:79: for (i=0; i<size; i++) { |
042A 7A 00 2365 mov r2,#0x00 |
042C 2366 00103$: |
042C C3 2367 clr c |
042D EA 2368 mov a,r2 |
042E 95*01 2369 subb a,_sendStringDescriptor_PARM_3 |
0430 50 11 2370 jnc 00106$ |
2371 ; ../../../include/ztex-isr.h:80: XAUTODAT2 = XAUTODAT1; |
0432 90 E6 7B 2372 mov dptr,#_XAUTODAT1 |
0435 E0 2373 movx a,@dptr |
0436 FB 2374 mov r3,a |
0437 90 E6 7C 2375 mov dptr,#_XAUTODAT2 |
043A F0 2376 movx @dptr,a |
2377 ; ../../../include/ztex-isr.h:81: XAUTODAT2 = 0; |
043B 90 E6 7C 2378 mov dptr,#_XAUTODAT2 |
043E E4 2379 clr a |
043F F0 2380 movx @dptr,a |
2381 ; ../../../include/ztex-isr.h:79: for (i=0; i<size; i++) { |
0440 0A 2382 inc r2 |
0441 80 E9 2383 sjmp 00103$ |
0443 2384 00106$: |
2385 ; ../../../include/ztex-isr.h:83: i = (size+1) << 1; |
0443 E5*01 2386 mov a,_sendStringDescriptor_PARM_3 |
0445 04 2387 inc a |
2388 ; ../../../include/ztex-isr.h:84: EP0BUF[0] = i; |
0446 25 E0 2389 add a,acc |
0448 FA 2390 mov r2,a |
0449 90 E7 40 2391 mov dptr,#_EP0BUF |
044C F0 2392 movx @dptr,a |
2393 ; ../../../include/ztex-isr.h:85: EP0BUF[1] = 3; |
044D 90 E7 41 2394 mov dptr,#(_EP0BUF + 0x0001) |
0450 74 03 2395 mov a,#0x03 |
0452 F0 2396 movx @dptr,a |
2397 ; ../../../include/ztex-isr.h:86: EP0BCH = 0; |
0453 90 E6 8A 2398 mov dptr,#_EP0BCH |
0456 E4 2399 clr a |
0457 F0 2400 movx @dptr,a |
2401 ; ../../../include/ztex-isr.h:87: EP0BCL = i; |
0458 90 E6 8B 2402 mov dptr,#_EP0BCL |
045B EA 2403 mov a,r2 |
045C F0 2404 movx @dptr,a |
045D 22 2405 ret |
2406 ;------------------------------------------------------------ |
2407 ;Allocation info for local variables in function 'ep0_payload_update' |
2408 ;------------------------------------------------------------ |
2409 ;------------------------------------------------------------ |
2410 ; ../../../include/ztex-isr.h:93: static void ep0_payload_update() { |
2411 ; ----------------------------------------- |
2412 ; function ep0_payload_update |
2413 ; ----------------------------------------- |
045E 2414 _ep0_payload_update: |
2415 ; ../../../include/ztex-isr.h:94: ep0_payload_transfer = ( ep0_payload_remaining > 64 ) ? 64 : ep0_payload_remaining; |
045E 90s00r00 2416 mov dptr,#_ep0_payload_remaining |
0461 E0 2417 movx a,@dptr |
0462 FA 2418 mov r2,a |
0463 A3 2419 inc dptr |
0464 E0 2420 movx a,@dptr |
0465 FB 2421 mov r3,a |
0466 C3 2422 clr c |
0467 74 40 2423 mov a,#0x40 |
0469 9A 2424 subb a,r2 |
046A E4 2425 clr a |
046B 9B 2426 subb a,r3 |
046C 50 06 2427 jnc 00103$ |
046E 7C 40 2428 mov r4,#0x40 |
0470 7D 00 2429 mov r5,#0x00 |
0472 80 04 2430 sjmp 00104$ |
0474 2431 00103$: |
0474 8A 04 2432 mov ar4,r2 |
0476 8B 05 2433 mov ar5,r3 |
0478 2434 00104$: |
0478 90s00r02 2435 mov dptr,#_ep0_payload_transfer |
047B EC 2436 mov a,r4 |
047C F0 2437 movx @dptr,a |
2438 ; ../../../include/ztex-isr.h:95: ep0_payload_remaining -= ep0_payload_transfer; |
047D 7D 00 2439 mov r5,#0x00 |
047F 90s00r00 2440 mov dptr,#_ep0_payload_remaining |
0482 EA 2441 mov a,r2 |
0483 C3 2442 clr c |
0484 9C 2443 subb a,r4 |
0485 F0 2444 movx @dptr,a |
0486 EB 2445 mov a,r3 |
0487 9D 2446 subb a,r5 |
0488 A3 2447 inc dptr |
0489 F0 2448 movx @dptr,a |
048A 22 2449 ret |
2450 ;------------------------------------------------------------ |
2451 ;Allocation info for local variables in function 'ep0_vendor_cmd_su' |
2452 ;------------------------------------------------------------ |
2453 ;------------------------------------------------------------ |
2454 ; ../../../include/ztex-isr.h:102: static void ep0_vendor_cmd_su() { |
2455 ; ----------------------------------------- |
2456 ; function ep0_vendor_cmd_su |
2457 ; ----------------------------------------- |
048B 2458 _ep0_vendor_cmd_su: |
2459 ; ../../../include/ztex-isr.h:103: switch ( ep0_prev_setup_request ) { |
048B 90s00r03 2460 mov dptr,#_ep0_prev_setup_request |
048E E0 2461 movx a,@dptr |
048F FA 2462 mov r2,a |
0490 BA 39 24 2463 cjne r2,#0x39,00102$ |
2464 ; ../../../include/ztex-eeprom.h:233: eeprom_write_checksum = 0; |
0493 90s00r04 2465 mov dptr,#_eeprom_write_checksum |
2466 ; ../../../include/ztex-eeprom.h:234: eeprom_write_bytes = 0; |
0496 E4 2467 clr a |
0497 F0 2468 movx @dptr,a |
0498 90s00r02 2469 mov dptr,#_eeprom_write_bytes |
049B F0 2470 movx @dptr,a |
049C A3 2471 inc dptr |
049D F0 2472 movx @dptr,a |
2473 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
049E 90 E6 BB 2474 mov dptr,#(_SETUPDAT + 0x0003) |
04A1 E0 2475 movx a,@dptr |
04A2 FB 2476 mov r3,a |
04A3 7A 00 2477 mov r2,#0x00 |
04A5 90 E6 BA 2478 mov dptr,#(_SETUPDAT + 0x0002) |
04A8 E0 2479 movx a,@dptr |
04A9 FC 2480 mov r4,a |
04AA 7D 00 2481 mov r5,#0x00 |
04AC 90s00r00 2482 mov dptr,#_eeprom_addr |
04AF EC 2483 mov a,r4 |
04B0 4A 2484 orl a,r2 |
04B1 F0 2485 movx @dptr,a |
04B2 ED 2486 mov a,r5 |
04B3 4B 2487 orl a,r3 |
04B4 A3 2488 inc dptr |
04B5 F0 2489 movx @dptr,a |
2490 ; ../../../include/ztex-conf.h:115: break; |
2491 ; ../../../include/ztex-isr.h:105: default: |
04B6 22 2492 ret |
04B7 2493 00102$: |
2494 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
04B7 90 E6 A0 2495 mov dptr,#_EP0CS |
04BA E0 2496 movx a,@dptr |
04BB 44 01 2497 orl a,#0x01 |
04BD F0 2498 movx @dptr,a |
2499 ; ../../../include/ztex-isr.h:107: } |
04BE 22 2500 ret |
2501 ;------------------------------------------------------------ |
2502 ;Allocation info for local variables in function 'SUDAV_ISR' |
2503 ;------------------------------------------------------------ |
2504 ;a Allocated to registers r2 |
2505 ;------------------------------------------------------------ |
2506 ; ../../../include/ztex-isr.h:113: static void SUDAV_ISR () interrupt |
2507 ; ----------------------------------------- |
2508 ; function SUDAV_ISR |
2509 ; ----------------------------------------- |
04BF 2510 _SUDAV_ISR: |
04BF C0*00 2511 push bits |
04C1 C0 E0 2512 push acc |
04C3 C0 F0 2513 push b |
04C5 C0 82 2514 push dpl |
04C7 C0 83 2515 push dph |
04C9 C0 02 2516 push (0+2) |
04CB C0 03 2517 push (0+3) |
04CD C0 04 2518 push (0+4) |
04CF C0 05 2519 push (0+5) |
04D1 C0 06 2520 push (0+6) |
04D3 C0 07 2521 push (0+7) |
04D5 C0 00 2522 push (0+0) |
04D7 C0 01 2523 push (0+1) |
04D9 C0 D0 2524 push psw |
04DB 75 D0 00 2525 mov psw,#0x00 |
2526 ; ../../../include/ztex-isr.h:116: ep0_prev_setup_request = bRequest; |
04DE 90 E6 B9 2527 mov dptr,#_bRequest |
04E1 E0 2528 movx a,@dptr |
04E2 FA 2529 mov r2,a |
04E3 90s00r03 2530 mov dptr,#_ep0_prev_setup_request |
04E6 F0 2531 movx @dptr,a |
2532 ; ../../../include/ztex-isr.h:117: SUDPTRCTL = 1; |
04E7 90 E6 B5 2533 mov dptr,#_SUDPTRCTL |
04EA 74 01 2534 mov a,#0x01 |
04EC F0 2535 movx @dptr,a |
2536 ; ../../../include/ztex-isr.h:120: switch ( bRequest ) { |
04ED 90 E6 B9 2537 mov dptr,#_bRequest |
04F0 E0 2538 movx a,@dptr |
04F1 FA 2539 mov r2,a |
04F2 24 F3 2540 add a,#0xff - 0x0C |
04F4 50 03 2541 jnc 00214$ |
04F6 02s08r75 2542 ljmp 00160$ |
04F9 2543 00214$: |
04F9 EA 2544 mov a,r2 |
04FA 2A 2545 add a,r2 |
04FB 2A 2546 add a,r2 |
04FC 90s05r00 2547 mov dptr,#00215$ |
04FF 73 2548 jmp @a+dptr |
0500 2549 00215$: |
0500 02s05r27 2550 ljmp 00101$ |
0503 02s05rDB 2551 ljmp 00112$ |
0506 02s08r75 2552 ljmp 00160$ |
0509 02s06r58 2553 ljmp 00122$ |
050C 02s08r75 2554 ljmp 00160$ |
050F 02s08r75 2555 ljmp 00160$ |
0512 02s06rF0 2556 ljmp 00132$ |
0515 02s08r0B 2557 ljmp 00152$ |
0518 02s08r0D 2558 ljmp 00153$ |
051B 02s08r1E 2559 ljmp 00154$ |
051E 02s08r23 2560 ljmp 00155$ |
0521 02s08r34 2561 ljmp 00156$ |
0524 02s08r39 2562 ljmp 00157$ |
2563 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0527 2564 00101$: |
2565 ; ../../../include/ztex-isr.h:122: switch(SETUPDAT[0]) { |
0527 90 E6 B8 2566 mov dptr,#_SETUPDAT |
052A E0 2567 movx a,@dptr |
052B FA 2568 mov r2,a |
052C BA 80 02 2569 cjne r2,#0x80,00216$ |
052F 80 0D 2570 sjmp 00102$ |
0531 2571 00216$: |
0531 BA 81 02 2572 cjne r2,#0x81,00217$ |
0534 80 1E 2573 sjmp 00103$ |
0536 2574 00217$: |
0536 BA 82 02 2575 cjne r2,#0x82,00218$ |
0539 80 2F 2576 sjmp 00104$ |
053B 2577 00218$: |
053B 02s08r75 2578 ljmp 00160$ |
2579 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
053E 2580 00102$: |
053E 90 E7 40 2581 mov dptr,#_EP0BUF |
2582 ; ../../../include/ztex-isr.h:125: EP0BUF[1] = 0; |
2583 ; ../../../include/ztex-isr.h:126: EP0BCH = 0; |
0541 E4 2584 clr a |
0542 F0 2585 movx @dptr,a |
0543 90 E7 41 2586 mov dptr,#(_EP0BUF + 0x0001) |
0546 F0 2587 movx @dptr,a |
0547 90 E6 8A 2588 mov dptr,#_EP0BCH |
054A F0 2589 movx @dptr,a |
2590 ; ../../../include/ztex-isr.h:127: EP0BCL = 2; |
054B 90 E6 8B 2591 mov dptr,#_EP0BCL |
054E 74 02 2592 mov a,#0x02 |
0550 F0 2593 movx @dptr,a |
2594 ; ../../../include/ztex-isr.h:128: break; |
0551 02s08r75 2595 ljmp 00160$ |
2596 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0554 2597 00103$: |
0554 90 E7 40 2598 mov dptr,#_EP0BUF |
2599 ; ../../../include/ztex-isr.h:131: EP0BUF[1] = 0; |
2600 ; ../../../include/ztex-isr.h:132: EP0BCH = 0; |
0557 E4 2601 clr a |
0558 F0 2602 movx @dptr,a |
0559 90 E7 41 2603 mov dptr,#(_EP0BUF + 0x0001) |
055C F0 2604 movx @dptr,a |
055D 90 E6 8A 2605 mov dptr,#_EP0BCH |
0560 F0 2606 movx @dptr,a |
2607 ; ../../../include/ztex-isr.h:133: EP0BCL = 2; |
0561 90 E6 8B 2608 mov dptr,#_EP0BCL |
0564 74 02 2609 mov a,#0x02 |
0566 F0 2610 movx @dptr,a |
2611 ; ../../../include/ztex-isr.h:134: break; |
0567 02s08r75 2612 ljmp 00160$ |
2613 ; ../../../include/ztex-isr.h:135: case 0x82: |
056A 2614 00104$: |
2615 ; ../../../include/ztex-isr.h:136: switch ( SETUPDAT[4] ) { |
056A 90 E6 BC 2616 mov dptr,#(_SETUPDAT + 0x0004) |
056D E0 2617 movx a,@dptr |
056E FA 2618 mov r2,a |
056F 60 0F 2619 jz 00106$ |
0571 BA 01 02 2620 cjne r2,#0x01,00220$ |
0574 80 19 2621 sjmp 00107$ |
0576 2622 00220$: |
0576 BA 80 02 2623 cjne r2,#0x80,00221$ |
0579 80 05 2624 sjmp 00106$ |
057B 2625 00221$: |
2626 ; ../../../include/ztex-isr.h:138: case 0x80 : |
057B BA 81 2F 2627 cjne r2,#0x81,00109$ |
057E 80 1E 2628 sjmp 00108$ |
0580 2629 00106$: |
2630 ; ../../../include/ztex-isr.h:139: EP0BUF[0] = EP0CS & bmBIT0; |
0580 90 E6 A0 2631 mov dptr,#_EP0CS |
0583 E0 2632 movx a,@dptr |
0584 FA 2633 mov r2,a |
0585 53 02 01 2634 anl ar2,#0x01 |
0588 90 E7 40 2635 mov dptr,#_EP0BUF |
058B EA 2636 mov a,r2 |
058C F0 2637 movx @dptr,a |
2638 ; ../../../include/ztex-isr.h:140: break; |
2639 ; ../../../include/ztex-isr.h:141: case 0x01 : |
058D 80 3A 2640 sjmp 00110$ |
058F 2641 00107$: |
2642 ; ../../../include/ztex-isr.h:142: EP0BUF[0] = EP1OUTCS & bmBIT0; |
058F 90 E6 A1 2643 mov dptr,#_EP1OUTCS |
0592 E0 2644 movx a,@dptr |
0593 FA 2645 mov r2,a |
0594 53 02 01 2646 anl ar2,#0x01 |
0597 90 E7 40 2647 mov dptr,#_EP0BUF |
059A EA 2648 mov a,r2 |
059B F0 2649 movx @dptr,a |
2650 ; ../../../include/ztex-isr.h:143: break; |
2651 ; ../../../include/ztex-isr.h:144: case 0x81 : |
059C 80 2B 2652 sjmp 00110$ |
059E 2653 00108$: |
2654 ; ../../../include/ztex-isr.h:145: EP0BUF[0] = EP1INCS & bmBIT0; |
059E 90 E6 A2 2655 mov dptr,#_EP1INCS |
05A1 E0 2656 movx a,@dptr |
05A2 FA 2657 mov r2,a |
05A3 53 02 01 2658 anl ar2,#0x01 |
05A6 90 E7 40 2659 mov dptr,#_EP0BUF |
05A9 EA 2660 mov a,r2 |
05AA F0 2661 movx @dptr,a |
2662 ; ../../../include/ztex-isr.h:146: break; |
2663 ; ../../../include/ztex-isr.h:147: default: |
05AB 80 1C 2664 sjmp 00110$ |
05AD 2665 00109$: |
2666 ; ../../../include/ztex-isr.h:148: EP0BUF[0] = EPXCS[ ((SETUPDAT[4] >> 1)-1) & 3 ] & bmBIT0; |
05AD 90 E6 BC 2667 mov dptr,#(_SETUPDAT + 0x0004) |
05B0 E0 2668 movx a,@dptr |
05B1 C3 2669 clr c |
05B2 13 2670 rrc a |
05B3 14 2671 dec a |
05B4 54 03 2672 anl a,#0x03 |
05B6 24 A3 2673 add a,#_EPXCS |
05B8 F5 82 2674 mov dpl,a |
05BA E4 2675 clr a |
05BB 34 E6 2676 addc a,#(_EPXCS >> 8) |
05BD F5 83 2677 mov dph,a |
05BF E0 2678 movx a,@dptr |
05C0 FA 2679 mov r2,a |
05C1 53 02 01 2680 anl ar2,#0x01 |
05C4 90 E7 40 2681 mov dptr,#_EP0BUF |
05C7 EA 2682 mov a,r2 |
05C8 F0 2683 movx @dptr,a |
2684 ; ../../../include/ztex-isr.h:150: } |
05C9 2685 00110$: |
2686 ; ../../../include/ztex-isr.h:151: EP0BUF[1] = 0; |
05C9 90 E7 41 2687 mov dptr,#(_EP0BUF + 0x0001) |
2688 ; ../../../include/ztex-isr.h:152: EP0BCH = 0; |
05CC E4 2689 clr a |
05CD F0 2690 movx @dptr,a |
05CE 90 E6 8A 2691 mov dptr,#_EP0BCH |
05D1 F0 2692 movx @dptr,a |
2693 ; ../../../include/ztex-isr.h:153: EP0BCL = 2; |
05D2 90 E6 8B 2694 mov dptr,#_EP0BCL |
05D5 74 02 2695 mov a,#0x02 |
05D7 F0 2696 movx @dptr,a |
2697 ; ../../../include/ztex-isr.h:156: break; |
05D8 02s08r75 2698 ljmp 00160$ |
2699 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
05DB 2700 00112$: |
2701 ; ../../../include/ztex-isr.h:158: if ( SETUPDAT[0] == 2 && SETUPDAT[2] == 0 ) { |
05DB 90 E6 B8 2702 mov dptr,#_SETUPDAT |
05DE E0 2703 movx a,@dptr |
05DF FA 2704 mov r2,a |
05E0 BA 02 02 2705 cjne r2,#0x02,00223$ |
05E3 80 03 2706 sjmp 00224$ |
05E5 2707 00223$: |
05E5 02s08r75 2708 ljmp 00160$ |
05E8 2709 00224$: |
05E8 90 E6 BA 2710 mov dptr,#(_SETUPDAT + 0x0002) |
05EB E0 2711 movx a,@dptr |
05EC 60 03 2712 jz 00225$ |
05EE 02s08r75 2713 ljmp 00160$ |
05F1 2714 00225$: |
2715 ; ../../../include/ztex-isr.h:159: switch ( SETUPDAT[4] ) { |
05F1 90 E6 BC 2716 mov dptr,#(_SETUPDAT + 0x0004) |
05F4 E0 2717 movx a,@dptr |
05F5 FA 2718 mov r2,a |
05F6 60 0F 2719 jz 00114$ |
05F8 BA 01 02 2720 cjne r2,#0x01,00227$ |
05FB 80 15 2721 sjmp 00115$ |
05FD 2722 00227$: |
05FD BA 80 02 2723 cjne r2,#0x80,00228$ |
0600 80 05 2724 sjmp 00114$ |
0602 2725 00228$: |
2726 ; ../../../include/ztex-isr.h:161: case 0x80 : |
0602 BA 81 23 2727 cjne r2,#0x81,00117$ |
0605 80 16 2728 sjmp 00116$ |
0607 2729 00114$: |
2730 ; ../../../include/ztex-isr.h:162: EP0CS &= ~bmBIT0; |
0607 90 E6 A0 2731 mov dptr,#_EP0CS |
060A E0 2732 movx a,@dptr |
060B FA 2733 mov r2,a |
060C 54 FE 2734 anl a,#0xFE |
060E F0 2735 movx @dptr,a |
2736 ; ../../../include/ztex-isr.h:163: break; |
060F 02s08r75 2737 ljmp 00160$ |
2738 ; ../../../include/ztex-isr.h:164: case 0x01 : |
0612 2739 00115$: |
2740 ; ../../../include/ztex-isr.h:165: EP1OUTCS &= ~bmBIT0; |
0612 90 E6 A1 2741 mov dptr,#_EP1OUTCS |
0615 E0 2742 movx a,@dptr |
0616 FA 2743 mov r2,a |
0617 54 FE 2744 anl a,#0xFE |
0619 F0 2745 movx @dptr,a |
2746 ; ../../../include/ztex-isr.h:166: break; |
061A 02s08r75 2747 ljmp 00160$ |
2748 ; ../../../include/ztex-isr.h:167: case 0x81 : |
061D 2749 00116$: |
2750 ; ../../../include/ztex-isr.h:168: EP1INCS &= ~bmBIT0; |
061D 90 E6 A2 2751 mov dptr,#_EP1INCS |
0620 E0 2752 movx a,@dptr |
0621 FA 2753 mov r2,a |
0622 54 FE 2754 anl a,#0xFE |
0624 F0 2755 movx @dptr,a |
2756 ; ../../../include/ztex-isr.h:169: break; |
0625 02s08r75 2757 ljmp 00160$ |
2758 ; ../../../include/ztex-isr.h:170: default: |
0628 2759 00117$: |
2760 ; ../../../include/ztex-isr.h:171: EPXCS[ ((SETUPDAT[4] >> 1)-1) & 3 ] &= ~bmBIT0; |
0628 90 E6 BC 2761 mov dptr,#(_SETUPDAT + 0x0004) |
062B E0 2762 movx a,@dptr |
062C C3 2763 clr c |
062D 13 2764 rrc a |
062E 14 2765 dec a |
062F 54 03 2766 anl a,#0x03 |
0631 24 A3 2767 add a,#_EPXCS |
0633 FA 2768 mov r2,a |
0634 E4 2769 clr a |
0635 34 E6 2770 addc a,#(_EPXCS >> 8) |
0637 FB 2771 mov r3,a |
0638 90 E6 BC 2772 mov dptr,#(_SETUPDAT + 0x0004) |
063B E0 2773 movx a,@dptr |
063C C3 2774 clr c |
063D 13 2775 rrc a |
063E 14 2776 dec a |
063F 54 03 2777 anl a,#0x03 |
0641 24 A3 2778 add a,#_EPXCS |
0643 F5 82 2779 mov dpl,a |
0645 E4 2780 clr a |
0646 34 E6 2781 addc a,#(_EPXCS >> 8) |
0648 F5 83 2782 mov dph,a |
064A E0 2783 movx a,@dptr |
064B FC 2784 mov r4,a |
064C 53 04 FE 2785 anl ar4,#0xFE |
064F 8A 82 2786 mov dpl,r2 |
0651 8B 83 2787 mov dph,r3 |
0653 EC 2788 mov a,r4 |
0654 F0 2789 movx @dptr,a |
2790 ; ../../../include/ztex-isr.h:175: break; |
0655 02s08r75 2791 ljmp 00160$ |
2792 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0658 2793 00122$: |
2794 ; ../../../include/ztex-isr.h:177: if ( SETUPDAT[0] == 2 && SETUPDAT[2] == 0 ) { |
0658 90 E6 B8 2795 mov dptr,#_SETUPDAT |
065B E0 2796 movx a,@dptr |
065C FA 2797 mov r2,a |
065D BA 02 02 2798 cjne r2,#0x02,00230$ |
0660 80 03 2799 sjmp 00231$ |
0662 2800 00230$: |
0662 02s08r75 2801 ljmp 00160$ |
0665 2802 00231$: |
0665 90 E6 BA 2803 mov dptr,#(_SETUPDAT + 0x0002) |
0668 E0 2804 movx a,@dptr |
0669 60 03 2805 jz 00232$ |
066B 02s08r75 2806 ljmp 00160$ |
066E 2807 00232$: |
2808 ; ../../../include/ztex-isr.h:178: switch ( SETUPDAT[4] ) { |
066E 90 E6 BC 2809 mov dptr,#(_SETUPDAT + 0x0004) |
0671 E0 2810 movx a,@dptr |
0672 FA 2811 mov r2,a |
0673 60 0F 2812 jz 00124$ |
0675 BA 01 02 2813 cjne r2,#0x01,00234$ |
0678 80 14 2814 sjmp 00125$ |
067A 2815 00234$: |
067A BA 80 02 2816 cjne r2,#0x80,00235$ |
067D 80 05 2817 sjmp 00124$ |
067F 2818 00235$: |
2819 ; ../../../include/ztex-isr.h:180: case 0x80 : |
067F BA 81 20 2820 cjne r2,#0x81,00127$ |
0682 80 14 2821 sjmp 00126$ |
0684 2822 00124$: |
2823 ; ../../../include/ztex-isr.h:181: EP0CS |= bmBIT0; |
0684 90 E6 A0 2824 mov dptr,#_EP0CS |
0687 E0 2825 movx a,@dptr |
0688 FA 2826 mov r2,a |
0689 44 01 2827 orl a,#0x01 |
068B F0 2828 movx @dptr,a |
2829 ; ../../../include/ztex-isr.h:182: break; |
2830 ; ../../../include/ztex-isr.h:183: case 0x01 : |
068C 80 41 2831 sjmp 00128$ |
068E 2832 00125$: |
2833 ; ../../../include/ztex-isr.h:184: EP1OUTCS |= bmBIT0; |
068E 90 E6 A1 2834 mov dptr,#_EP1OUTCS |
0691 E0 2835 movx a,@dptr |
0692 FA 2836 mov r2,a |
0693 44 01 2837 orl a,#0x01 |
0695 F0 2838 movx @dptr,a |
2839 ; ../../../include/ztex-isr.h:185: break; |
2840 ; ../../../include/ztex-isr.h:186: case 0x81 : |
0696 80 37 2841 sjmp 00128$ |
0698 2842 00126$: |
2843 ; ../../../include/ztex-isr.h:187: EP1INCS |= bmBIT0; |
0698 90 E6 A2 2844 mov dptr,#_EP1INCS |
069B E0 2845 movx a,@dptr |
069C FA 2846 mov r2,a |
069D 44 01 2847 orl a,#0x01 |
069F F0 2848 movx @dptr,a |
2849 ; ../../../include/ztex-isr.h:188: break; |
2850 ; ../../../include/ztex-isr.h:189: default: |
06A0 80 2D 2851 sjmp 00128$ |
06A2 2852 00127$: |
2853 ; ../../../include/ztex-isr.h:190: EPXCS[ ((SETUPDAT[4] >> 1)-1) & 3 ] |= ~bmBIT0; |
06A2 90 E6 BC 2854 mov dptr,#(_SETUPDAT + 0x0004) |
06A5 E0 2855 movx a,@dptr |
06A6 C3 2856 clr c |
06A7 13 2857 rrc a |
06A8 14 2858 dec a |
06A9 54 03 2859 anl a,#0x03 |
06AB 24 A3 2860 add a,#_EPXCS |
06AD FA 2861 mov r2,a |
06AE E4 2862 clr a |
06AF 34 E6 2863 addc a,#(_EPXCS >> 8) |
06B1 FB 2864 mov r3,a |
06B2 90 E6 BC 2865 mov dptr,#(_SETUPDAT + 0x0004) |
06B5 E0 2866 movx a,@dptr |
06B6 C3 2867 clr c |
06B7 13 2868 rrc a |
06B8 14 2869 dec a |
06B9 54 03 2870 anl a,#0x03 |
06BB 24 A3 2871 add a,#_EPXCS |
06BD F5 82 2872 mov dpl,a |
06BF E4 2873 clr a |
06C0 34 E6 2874 addc a,#(_EPXCS >> 8) |
06C2 F5 83 2875 mov dph,a |
06C4 E0 2876 movx a,@dptr |
06C5 FC 2877 mov r4,a |
06C6 43 04 FE 2878 orl ar4,#0xFE |
06C9 8A 82 2879 mov dpl,r2 |
06CB 8B 83 2880 mov dph,r3 |
06CD EC 2881 mov a,r4 |
06CE F0 2882 movx @dptr,a |
2883 ; ../../../include/ztex-isr.h:192: } |
06CF 2884 00128$: |
2885 ; ../../../include/ztex-isr.h:193: a = ( (SETUPDAT[4] & 0x80) >> 3 ) | (SETUPDAT[4] & 0x0f); |
06CF 90 E6 BC 2886 mov dptr,#(_SETUPDAT + 0x0004) |
06D2 E0 2887 movx a,@dptr |
06D3 54 80 2888 anl a,#0x80 |
06D5 C4 2889 swap a |
06D6 23 2890 rl a |
06D7 54 1F 2891 anl a,#0x1f |
06D9 FA 2892 mov r2,a |
06DA 90 E6 BC 2893 mov dptr,#(_SETUPDAT + 0x0004) |
06DD E0 2894 movx a,@dptr |
06DE FB 2895 mov r3,a |
06DF 74 0F 2896 mov a,#0x0F |
06E1 5B 2897 anl a,r3 |
06E2 42 02 2898 orl ar2,a |
2899 ; ../../../include/ztex-isr.h:194: TOGCTL = a; |
2900 ; ../../../include/ztex-isr.h:195: TOGCTL = a | bmBIT5; |
06E4 90 E6 83 2901 mov dptr,#_TOGCTL |
06E7 EA 2902 mov a,r2 |
06E8 F0 2903 movx @dptr,a |
06E9 74 20 2904 mov a,#0x20 |
06EB 4A 2905 orl a,r2 |
06EC F0 2906 movx @dptr,a |
2907 ; ../../../include/ztex-isr.h:197: break; |
06ED 02s08r75 2908 ljmp 00160$ |
2909 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
06F0 2910 00132$: |
2911 ; ../../../include/ztex-isr.h:199: switch(SETUPDAT[3]) { |
06F0 90 E6 BB 2912 mov dptr,#(_SETUPDAT + 0x0003) |
06F3 E0 2913 movx a,@dptr |
06F4 FA 2914 mov r2,a |
06F5 BA 01 02 2915 cjne r2,#0x01,00237$ |
06F8 80 19 2916 sjmp 00133$ |
06FA 2917 00237$: |
06FA BA 02 02 2918 cjne r2,#0x02,00238$ |
06FD 80 26 2919 sjmp 00134$ |
06FF 2920 00238$: |
06FF BA 03 02 2921 cjne r2,#0x03,00239$ |
0702 80 4D 2922 sjmp 00138$ |
0704 2923 00239$: |
0704 BA 06 03 2924 cjne r2,#0x06,00240$ |
0707 02s07rC4 2925 ljmp 00145$ |
070A 2926 00240$: |
070A BA 07 03 2927 cjne r2,#0x07,00241$ |
070D 02s07rD6 2928 ljmp 00146$ |
0710 2929 00241$: |
0710 02s08r01 2930 ljmp 00150$ |
2931 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0713 2932 00133$: |
2933 ; ../../../include/ztex-isr.h:201: SUDPTRH = MSB(&DeviceDescriptor); |
0713 7Ar29 2934 mov r2,#_DeviceDescriptor |
0715 7Bs00 2935 mov r3,#(_DeviceDescriptor >> 8) |
0717 90 E6 B3 2936 mov dptr,#_SUDPTRH |
071A EB 2937 mov a,r3 |
071B F0 2938 movx @dptr,a |
2939 ; ../../../include/ztex-isr.h:202: SUDPTRL = LSB(&DeviceDescriptor); |
071C 90 E6 B4 2940 mov dptr,#_SUDPTRL |
071F 74r29 2941 mov a,#_DeviceDescriptor |
0721 F0 2942 movx @dptr,a |
2943 ; ../../../include/ztex-isr.h:203: break; |
0722 02s08r75 2944 ljmp 00160$ |
2945 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0725 2946 00134$: |
2947 ; ../../../include/ztex-isr.h:205: if (USBCS & bmBIT7) { |
0725 90 E6 80 2948 mov dptr,#_USBCS |
0728 E0 2949 movx a,@dptr |
0729 FA 2950 mov r2,a |
072A 30 E7 12 2951 jnb acc.7,00136$ |
2952 ; ../../../include/ztex-isr.h:206: SUDPTRH = MSB(&HighSpeedConfigDescriptor); |
072D 7Ar45 2953 mov r2,#_HighSpeedConfigDescriptor |
072F 7Bs00 2954 mov r3,#(_HighSpeedConfigDescriptor >> 8) |
0731 90 E6 B3 2955 mov dptr,#_SUDPTRH |
0734 EB 2956 mov a,r3 |
0735 F0 2957 movx @dptr,a |
2958 ; ../../../include/ztex-isr.h:207: SUDPTRL = LSB(&HighSpeedConfigDescriptor); |
0736 90 E6 B4 2959 mov dptr,#_SUDPTRL |
0739 74r45 2960 mov a,#_HighSpeedConfigDescriptor |
073B F0 2961 movx @dptr,a |
073C 02s08r75 2962 ljmp 00160$ |
073F 2963 00136$: |
2964 ; ../../../include/ztex-isr.h:210: SUDPTRH = MSB(&FullSpeedConfigDescriptor); |
073F 7Ar67 2965 mov r2,#_FullSpeedConfigDescriptor |
0741 7Bs00 2966 mov r3,#(_FullSpeedConfigDescriptor >> 8) |
0743 90 E6 B3 2967 mov dptr,#_SUDPTRH |
0746 EB 2968 mov a,r3 |
0747 F0 2969 movx @dptr,a |
2970 ; ../../../include/ztex-isr.h:211: SUDPTRL = LSB(&FullSpeedConfigDescriptor); |
0748 90 E6 B4 2971 mov dptr,#_SUDPTRL |
074B 74r67 2972 mov a,#_FullSpeedConfigDescriptor |
074D F0 2973 movx @dptr,a |
2974 ; ../../../include/ztex-isr.h:213: break; |
074E 02s08r75 2975 ljmp 00160$ |
2976 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0751 2977 00138$: |
2978 ; ../../../include/ztex-isr.h:215: switch (SETUPDAT[2]) { |
0751 90 E6 BA 2979 mov dptr,#(_SETUPDAT + 0x0002) |
0754 E0 2980 movx a,@dptr |
0755 FA 2981 mov r2,a |
0756 BA 01 02 2982 cjne r2,#0x01,00243$ |
0759 80 0F 2983 sjmp 00139$ |
075B 2984 00243$: |
075B BA 02 02 2985 cjne r2,#0x02,00244$ |
075E 80 1C 2986 sjmp 00140$ |
0760 2987 00244$: |
0760 BA 03 02 2988 cjne r2,#0x03,00245$ |
0763 80 29 2989 sjmp 00141$ |
0765 2990 00245$: |
2991 ; ../../../include/ztex-isr.h:216: case 1: |
0765 BA 04 4A 2992 cjne r2,#0x04,00143$ |
0768 80 36 2993 sjmp 00142$ |
076A 2994 00139$: |
2995 ; ../../../include/ztex-isr.h:217: SEND_STRING_DESCRIPTOR(manufacturerString); |
076A 75 82r00 2996 mov dpl,#_manufacturerString |
076D 7Ar00 2997 mov r2,#_manufacturerString |
076F 7Bs00 2998 mov r3,#(_manufacturerString >> 8) |
0771 8B*00 2999 mov _sendStringDescriptor_PARM_2,r3 |
0773 75*01 05 3000 mov _sendStringDescriptor_PARM_3,#0x05 |
0776 12s04r0B 3001 lcall _sendStringDescriptor |
3002 ; ../../../include/ztex-isr.h:218: break; |
0779 02s08r75 3003 ljmp 00160$ |
3004 ; ../../../include/ztex-isr.h:219: case 2: |
077C 3005 00140$: |
3006 ; ../../../include/ztex-isr.h:220: SEND_STRING_DESCRIPTOR(productString); |
077C 75 82r05 3007 mov dpl,#_productString |
077F 7Ar05 3008 mov r2,#_productString |
0781 7Bs00 3009 mov r3,#(_productString >> 8) |
0783 8B*00 3010 mov _sendStringDescriptor_PARM_2,r3 |
0785 75*01 19 3011 mov _sendStringDescriptor_PARM_3,#0x19 |
0788 12s04r0B 3012 lcall _sendStringDescriptor |
3013 ; ../../../include/ztex-isr.h:221: break; |
078B 02s08r75 3014 ljmp 00160$ |
3015 ; ../../../include/ztex-isr.h:222: case 3: |
078E 3016 00141$: |
3017 ; ../../../include/ztex-isr.h:223: SEND_STRING_DESCRIPTOR(SN_STRING); |
078E 75 82 8A 3018 mov dpl,#_SN_STRING |
0791 7A 8A 3019 mov r2,#_SN_STRING |
0793 7B 00 3020 mov r3,#(_SN_STRING >> 8) |
0795 8B*00 3021 mov _sendStringDescriptor_PARM_2,r3 |
0797 75*01 0A 3022 mov _sendStringDescriptor_PARM_3,#0x0A |
079A 12s04r0B 3023 lcall _sendStringDescriptor |
3024 ; ../../../include/ztex-isr.h:224: break; |
079D 02s08r75 3025 ljmp 00160$ |
3026 ; ../../../include/ztex-isr.h:225: case 4: |
07A0 3027 00142$: |
3028 ; ../../../include/ztex-isr.h:226: SEND_STRING_DESCRIPTOR(configurationString); |
07A0 75 82r1E 3029 mov dpl,#_configurationString |
07A3 7Ar1E 3030 mov r2,#_configurationString |
07A5 7Bs00 3031 mov r3,#(_configurationString >> 8) |
07A7 8B*00 3032 mov _sendStringDescriptor_PARM_2,r3 |
07A9 75*01 0A 3033 mov _sendStringDescriptor_PARM_3,#0x0A |
07AC 12s04r0B 3034 lcall _sendStringDescriptor |
3035 ; ../../../include/ztex-isr.h:227: break; |
07AF 02s08r75 3036 ljmp 00160$ |
3037 ; ../../../include/ztex-isr.h:228: default: |
07B2 3038 00143$: |
3039 ; ../../../include/ztex-isr.h:229: SUDPTRH = MSB(&EmptyStringDescriptor); |
07B2 7Ar89 3040 mov r2,#_EmptyStringDescriptor |
07B4 7Bs00 3041 mov r3,#(_EmptyStringDescriptor >> 8) |
07B6 90 E6 B3 3042 mov dptr,#_SUDPTRH |
07B9 EB 3043 mov a,r3 |
07BA F0 3044 movx @dptr,a |
3045 ; ../../../include/ztex-isr.h:230: SUDPTRL = LSB(&EmptyStringDescriptor); |
07BB 90 E6 B4 3046 mov dptr,#_SUDPTRL |
07BE 74r89 3047 mov a,#_EmptyStringDescriptor |
07C0 F0 3048 movx @dptr,a |
3049 ; ../../../include/ztex-isr.h:233: break; |
07C1 02s08r75 3050 ljmp 00160$ |
3051 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
07C4 3052 00145$: |
3053 ; ../../../include/ztex-isr.h:235: SUDPTRH = MSB(&DeviceQualifierDescriptor); |
07C4 7Ar3B 3054 mov r2,#_DeviceQualifierDescriptor |
07C6 7Bs00 3055 mov r3,#(_DeviceQualifierDescriptor >> 8) |
07C8 90 E6 B3 3056 mov dptr,#_SUDPTRH |
07CB EB 3057 mov a,r3 |
07CC F0 3058 movx @dptr,a |
3059 ; ../../../include/ztex-isr.h:236: SUDPTRL = LSB(&DeviceQualifierDescriptor); |
07CD 90 E6 B4 3060 mov dptr,#_SUDPTRL |
07D0 74r3B 3061 mov a,#_DeviceQualifierDescriptor |
07D2 F0 3062 movx @dptr,a |
3063 ; ../../../include/ztex-isr.h:237: break; |
07D3 02s08r75 3064 ljmp 00160$ |
3065 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
07D6 3066 00146$: |
3067 ; ../../../include/ztex-isr.h:239: if (USBCS & bmBIT7) { |
07D6 90 E6 80 3068 mov dptr,#_USBCS |
07D9 E0 3069 movx a,@dptr |
07DA FA 3070 mov r2,a |
07DB 30 E7 12 3071 jnb acc.7,00148$ |
3072 ; ../../../include/ztex-isr.h:240: SUDPTRH = MSB(&FullSpeedConfigDescriptor); |
07DE 7Ar67 3073 mov r2,#_FullSpeedConfigDescriptor |
07E0 7Bs00 3074 mov r3,#(_FullSpeedConfigDescriptor >> 8) |
07E2 90 E6 B3 3075 mov dptr,#_SUDPTRH |
07E5 EB 3076 mov a,r3 |
07E6 F0 3077 movx @dptr,a |
3078 ; ../../../include/ztex-isr.h:241: SUDPTRL = LSB(&FullSpeedConfigDescriptor); |
07E7 90 E6 B4 3079 mov dptr,#_SUDPTRL |
07EA 74r67 3080 mov a,#_FullSpeedConfigDescriptor |
07EC F0 3081 movx @dptr,a |
07ED 02s08r75 3082 ljmp 00160$ |
07F0 3083 00148$: |
3084 ; ../../../include/ztex-isr.h:244: SUDPTRH = MSB(&HighSpeedConfigDescriptor); |
07F0 7Ar45 3085 mov r2,#_HighSpeedConfigDescriptor |
07F2 7Bs00 3086 mov r3,#(_HighSpeedConfigDescriptor >> 8) |
07F4 90 E6 B3 3087 mov dptr,#_SUDPTRH |
07F7 EB 3088 mov a,r3 |
07F8 F0 3089 movx @dptr,a |
3090 ; ../../../include/ztex-isr.h:245: SUDPTRL = LSB(&HighSpeedConfigDescriptor); |
07F9 90 E6 B4 3091 mov dptr,#_SUDPTRL |
07FC 74r45 3092 mov a,#_HighSpeedConfigDescriptor |
07FE F0 3093 movx @dptr,a |
3094 ; ../../../include/ztex-isr.h:247: break; |
3095 ; ../../../include/ztex-isr.h:248: default: |
07FF 80 74 3096 sjmp 00160$ |
0801 3097 00150$: |
3098 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0801 90 E6 A0 3099 mov dptr,#_EP0CS |
0804 E0 3100 movx a,@dptr |
0805 FA 3101 mov r2,a |
0806 44 01 3102 orl a,#0x01 |
0808 F0 3103 movx @dptr,a |
3104 ; ../../../include/ztex-isr.h:251: break; |
3105 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0809 80 6A 3106 sjmp 00160$ |
080B 3107 00152$: |
3108 ; ../../../include/ztex-isr.h:253: break; |
3109 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
080B 80 68 3110 sjmp 00160$ |
080D 3111 00153$: |
080D 90 E7 40 3112 mov dptr,#_EP0BUF |
3113 ; ../../../include/ztex-isr.h:256: EP0BCH = 0; |
0810 E4 3114 clr a |
0811 F0 3115 movx @dptr,a |
0812 90 E6 8A 3116 mov dptr,#_EP0BCH |
0815 F0 3117 movx @dptr,a |
3118 ; ../../../include/ztex-isr.h:257: EP0BCL = 1; |
0816 90 E6 8B 3119 mov dptr,#_EP0BCL |
0819 74 01 3120 mov a,#0x01 |
081B F0 3121 movx @dptr,a |
3122 ; ../../../include/ztex-isr.h:258: break; |
3123 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
081C 80 57 3124 sjmp 00160$ |
081E 3125 00154$: |
3126 ; ../../../include/ztex-isr.h:260: resetToggleData(); |
081E 12s03rED 3127 lcall _resetToggleData |
3128 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0821 80 52 3129 sjmp 00160$ |
0823 3130 00155$: |
0823 90 E7 40 3131 mov dptr,#_EP0BUF |
3132 ; ../../../include/ztex-isr.h:264: EP0BCH = 0; |
0826 E4 3133 clr a |
0827 F0 3134 movx @dptr,a |
0828 90 E6 8A 3135 mov dptr,#_EP0BCH |
082B F0 3136 movx @dptr,a |
3137 ; ../../../include/ztex-isr.h:265: EP0BCL = 1; |
082C 90 E6 8B 3138 mov dptr,#_EP0BCL |
082F 74 01 3139 mov a,#0x01 |
0831 F0 3140 movx @dptr,a |
3141 ; ../../../include/ztex-isr.h:266: break; |
3142 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0832 80 41 3143 sjmp 00160$ |
0834 3144 00156$: |
3145 ; ../../../include/ztex-isr.h:268: resetToggleData(); |
0834 12s03rED 3146 lcall _resetToggleData |
3147 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0837 80 3C 3148 sjmp 00160$ |
0839 3149 00157$: |
3150 ; ../../../include/ztex-isr.h:271: if ( SETUPDAT[0] == 0x82 ) { |
0839 90 E6 B8 3151 mov dptr,#_SETUPDAT |
083C E0 3152 movx a,@dptr |
083D FA 3153 mov r2,a |
083E BA 82 34 3154 cjne r2,#0x82,00160$ |
3155 ; ../../../include/ztex-isr.h:272: ISOFRAME_COUNTER[ ((SETUPDAT[4] >> 1)-1) & 3 ] = 0; |
0841 90 E6 BC 3156 mov dptr,#(_SETUPDAT + 0x0004) |
0844 E0 3157 movx a,@dptr |
0845 C3 3158 clr c |
0846 13 3159 rrc a |
0847 14 3160 dec a |
0848 54 03 3161 anl a,#0x03 |
084A 25 E0 3162 add a,acc |
084C 24r05 3163 add a,#_ISOFRAME_COUNTER |
084E F5 82 3164 mov dpl,a |
0850 E4 3165 clr a |
0851 34s00 3166 addc a,#(_ISOFRAME_COUNTER >> 8) |
0853 F5 83 3167 mov dph,a |
0855 E4 3168 clr a |
0856 F0 3169 movx @dptr,a |
0857 A3 3170 inc dptr |
0858 F0 3171 movx @dptr,a |
3172 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0859 90 E6 85 3173 mov dptr,#_USBFRAMEL |
085C E0 3174 movx a,@dptr |
085D 90 E7 40 3175 mov dptr,#_EP0BUF |
0860 F0 3176 movx @dptr,a |
3177 ; ../../../include/ztex-isr.h:274: EP0BUF[1] = USBFRAMEH; |
0861 90 E6 84 3178 mov dptr,#_USBFRAMEH |
0864 E0 3179 movx a,@dptr |
0865 FA 3180 mov r2,a |
0866 90 E7 41 3181 mov dptr,#(_EP0BUF + 0x0001) |
0869 F0 3182 movx @dptr,a |
3183 ; ../../../include/ztex-isr.h:275: EP0BCH = 0; |
086A 90 E6 8A 3184 mov dptr,#_EP0BCH |
086D E4 3185 clr a |
086E F0 3186 movx @dptr,a |
3187 ; ../../../include/ztex-isr.h:276: EP0BCL = 2; |
086F 90 E6 8B 3188 mov dptr,#_EP0BCL |
0872 74 02 3189 mov a,#0x02 |
0874 F0 3190 movx @dptr,a |
3191 ; ../../../include/ztex-isr.h:280: } |
0875 3192 00160$: |
3193 ; ../../../include/ztex-isr.h:283: switch ( bmRequestType ) { |
0875 90 E6 B8 3194 mov dptr,#_bmRequestType |
0878 E0 3195 movx a,@dptr |
0879 FA 3196 mov r2,a |
087A BA 40 03 3197 cjne r2,#0x40,00250$ |
087D 02s09r65 3198 ljmp 00168$ |
0880 3199 00250$: |
0880 BA C0 02 3200 cjne r2,#0xC0,00251$ |
0883 80 03 3201 sjmp 00252$ |
0885 3202 00251$: |
0885 02s09r8F 3203 ljmp 00172$ |
0888 3204 00252$: |
3205 ; ../../../include/ztex-isr.h:285: ep0_payload_remaining = (SETUPDAT[7] << 8) | SETUPDAT[6]; |
0888 90 E6 BF 3206 mov dptr,#(_SETUPDAT + 0x0007) |
088B E0 3207 movx a,@dptr |
088C FB 3208 mov r3,a |
088D 7A 00 3209 mov r2,#0x00 |
088F 90 E6 BE 3210 mov dptr,#(_SETUPDAT + 0x0006) |
0892 E0 3211 movx a,@dptr |
0893 FC 3212 mov r4,a |
0894 7D 00 3213 mov r5,#0x00 |
0896 90s00r00 3214 mov dptr,#_ep0_payload_remaining |
0899 EC 3215 mov a,r4 |
089A 4A 3216 orl a,r2 |
089B F0 3217 movx @dptr,a |
089C ED 3218 mov a,r5 |
089D 4B 3219 orl a,r3 |
089E A3 3220 inc dptr |
089F F0 3221 movx @dptr,a |
3222 ; ../../../include/ztex-isr.h:286: ep0_payload_update(); |
08A0 12s04r5E 3223 lcall _ep0_payload_update |
3224 ; ../../../include/ztex-isr.h:288: switch ( bRequest ) { |
08A3 90 E6 B9 3225 mov dptr,#_bRequest |
08A6 E0 3226 movx a,@dptr |
08A7 FA 3227 mov r2,a |
08A8 BA 22 02 3228 cjne r2,#0x22,00253$ |
08AB 80 13 3229 sjmp 00162$ |
08AD 3230 00253$: |
08AD BA 28 03 3231 cjne r2,#0x28,00254$ |
08B0 02s09r41 3232 ljmp 00165$ |
08B3 3233 00254$: |
08B3 BA 38 02 3234 cjne r2,#0x38,00255$ |
08B6 80 25 3235 sjmp 00163$ |
08B8 3236 00255$: |
08B8 BA 3A 02 3237 cjne r2,#0x3A,00256$ |
08BB 80 49 3238 sjmp 00164$ |
08BD 3239 00256$: |
08BD 02s09r5B 3240 ljmp 00166$ |
3241 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
08C0 3242 00162$: |
3243 ; ../../../include/ztex-isr.h:290: SUDPTRCTL = 0; |
08C0 90 E6 B5 3244 mov dptr,#_SUDPTRCTL |
3245 ; ../../../include/ztex-isr.h:291: EP0BCH = 0; |
08C3 E4 3246 clr a |
08C4 F0 3247 movx @dptr,a |
08C5 90 E6 8A 3248 mov dptr,#_EP0BCH |
08C8 F0 3249 movx @dptr,a |
3250 ; ../../../include/ztex-isr.h:292: EP0BCL = ZTEX_DESCRIPTOR_LEN; |
08C9 90 E6 8B 3251 mov dptr,#_EP0BCL |
08CC 74 28 3252 mov a,#0x28 |
08CE F0 3253 movx @dptr,a |
3254 ; ../../../include/ztex-isr.h:293: SUDPTRH = MSB(ZTEX_DESCRIPTOR_OFFS); |
08CF 90 E6 B3 3255 mov dptr,#_SUDPTRH |
08D2 E4 3256 clr a |
08D3 F0 3257 movx @dptr,a |
3258 ; ../../../include/ztex-isr.h:294: SUDPTRL = LSB(ZTEX_DESCRIPTOR_OFFS); |
08D4 90 E6 B4 3259 mov dptr,#_SUDPTRL |
08D7 74 6C 3260 mov a,#0x6C |
08D9 F0 3261 movx @dptr,a |
3262 ; ../../../include/ztex-isr.h:295: break; |
08DA 02s09r8F 3263 ljmp 00172$ |
3264 ; ../../../include/ztex-conf.h:90: case $0: |
08DD 3265 00163$: |
3266 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
08DD 90 E6 BB 3267 mov dptr,#(_SETUPDAT + 0x0003) |
08E0 E0 3268 movx a,@dptr |
08E1 FB 3269 mov r3,a |
08E2 7A 00 3270 mov r2,#0x00 |
08E4 90 E6 BA 3271 mov dptr,#(_SETUPDAT + 0x0002) |
08E7 E0 3272 movx a,@dptr |
08E8 FC 3273 mov r4,a |
08E9 7D 00 3274 mov r5,#0x00 |
08EB 90s00r00 3275 mov dptr,#_eeprom_addr |
08EE EC 3276 mov a,r4 |
08EF 4A 3277 orl a,r2 |
08F0 F0 3278 movx @dptr,a |
08F1 ED 3279 mov a,r5 |
08F2 4B 3280 orl a,r3 |
08F3 A3 3281 inc dptr |
08F4 F0 3282 movx @dptr,a |
3283 ; ../../../include/ztex-eeprom.h:216: EP0BCH = 0; |
08F5 90 E6 8A 3284 mov dptr,#_EP0BCH |
08F8 E4 3285 clr a |
08F9 F0 3286 movx @dptr,a |
3287 ; ../../../include/ztex-eeprom.h:217: EP0BCL = eeprom_read_ep0(); |
08FA 12s02rF0 3288 lcall _eeprom_read_ep0 |
08FD E5 82 3289 mov a,dpl |
08FF 90 E6 8B 3290 mov dptr,#_EP0BCL |
0902 F0 3291 movx @dptr,a |
3292 ; ../../../include/ztex-conf.h:92: break; |
0903 02s09r8F 3293 ljmp 00172$ |
3294 ; ../../../include/ztex-conf.h:90: case $0: |
0906 3295 00164$: |
3296 ; ../../../include/ztex-eeprom.h:244: EP0BUF[0] = LSB(eeprom_write_bytes); |
0906 90s00r02 3297 mov dptr,#_eeprom_write_bytes |
0909 E0 3298 movx a,@dptr |
090A FA 3299 mov r2,a |
090B A3 3300 inc dptr |
090C E0 3301 movx a,@dptr |
090D FB 3302 mov r3,a |
090E 8A 04 3303 mov ar4,r2 |
0910 90 E7 40 3304 mov dptr,#_EP0BUF |
0913 EC 3305 mov a,r4 |
0914 F0 3306 movx @dptr,a |
3307 ; ../../../include/ztex-eeprom.h:245: EP0BUF[1] = MSB(eeprom_write_bytes); |
0915 8B 02 3308 mov ar2,r3 |
0917 90 E7 41 3309 mov dptr,#(_EP0BUF + 0x0001) |
091A EA 3310 mov a,r2 |
091B F0 3311 movx @dptr,a |
3312 ; ../../../include/ztex-eeprom.h:246: EP0BUF[2] = eeprom_write_checksum; |
091C 90s00r04 3313 mov dptr,#_eeprom_write_checksum |
091F E0 3314 movx a,@dptr |
0920 90 E7 42 3315 mov dptr,#(_EP0BUF + 0x0002) |
0923 F0 3316 movx @dptr,a |
3317 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0924 75*00 01 3318 mov _eeprom_select_PARM_2,#0x01 |
0927 75 82 00 3319 mov dpl,#0x00 |
092A 12s00rE0 3320 lcall _eeprom_select |
092D AA 82 3321 mov r2,dpl |
092F 90 E7 43 3322 mov dptr,#(_EP0BUF + 0x0003) |
0932 EA 3323 mov a,r2 |
0933 F0 3324 movx @dptr,a |
3325 ; ../../../include/ztex-eeprom.h:248: EP0BCH = 0; |
0934 90 E6 8A 3326 mov dptr,#_EP0BCH |
0937 E4 3327 clr a |
0938 F0 3328 movx @dptr,a |
3329 ; ../../../include/ztex-eeprom.h:249: EP0BCL = 4; |
0939 90 E6 8B 3330 mov dptr,#_EP0BCL |
093C 74 04 3331 mov a,#0x04 |
093E F0 3332 movx @dptr,a |
3333 ; ../../../include/ztex-conf.h:92: break; |
3334 ; ../../../include/ztex-conf.h:90: case $0: |
093F 80 4E 3335 sjmp 00172$ |
0941 3336 00165$: |
3337 ; ../../../include/ztex-debug.h:82: debug_read_addr = (__xdata BYTE*)&debug_counter; |
0941 90s00r6E 3338 mov dptr,#_debug_read_addr |
0944 74r05 3339 mov a,#_debug_counter |
0946 F0 3340 movx @dptr,a |
0947 A3 3341 inc dptr |
0948 74s00 3342 mov a,#(_debug_counter >> 8) |
094A F0 3343 movx @dptr,a |
3344 ; ../../../include/ztex-debug.h:83: EP0BCH = 0; |
094B 90 E6 8A 3345 mov dptr,#_EP0BCH |
094E E4 3346 clr a |
094F F0 3347 movx @dptr,a |
3348 ; ../../../include/ztex-debug.h:84: EP0BCL = debug_read_ep0(); |
0950 12s03rB3 3349 lcall _debug_read_ep0 |
0953 E5 82 3350 mov a,dpl |
0955 90 E6 8B 3351 mov dptr,#_EP0BCL |
0958 F0 3352 movx @dptr,a |
3353 ; ../../../include/ztex-conf.h:92: break; |
3354 ; ../../../include/ztex-isr.h:297: default: |
0959 80 34 3355 sjmp 00172$ |
095B 3356 00166$: |
3357 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
095B 90 E6 A0 3358 mov dptr,#_EP0CS |
095E E0 3359 movx a,@dptr |
095F FA 3360 mov r2,a |
0960 44 01 3361 orl a,#0x01 |
0962 F0 3362 movx @dptr,a |
3363 ; ../../../include/ztex-isr.h:300: break; |
3364 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0963 80 2A 3365 sjmp 00172$ |
0965 3366 00168$: |
3367 ; ../../../include/ztex-isr.h:305: if ( SETUPDAT[7]!=0 || SETUPDAT[6]!=0 ) { |
0965 90 E6 BF 3368 mov dptr,#(_SETUPDAT + 0x0007) |
0968 E0 3369 movx a,@dptr |
0969 70 06 3370 jnz 00169$ |
096B 90 E6 BE 3371 mov dptr,#(_SETUPDAT + 0x0006) |
096E E0 3372 movx a,@dptr |
096F 60 16 3373 jz 00170$ |
0971 3374 00169$: |
3375 ; ../../../include/ztex-isr.h:306: ep0_vendor_cmd_setup = 1; |
0971 90s00r04 3376 mov dptr,#_ep0_vendor_cmd_setup |
0974 74 01 3377 mov a,#0x01 |
0976 F0 3378 movx @dptr,a |
3379 ; ../../../include/ztex-isr.h:307: EP0BCL = 0; |
0977 90 E6 8B 3380 mov dptr,#_EP0BCL |
097A E4 3381 clr a |
097B F0 3382 movx @dptr,a |
3383 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
097C 53 91 EF 3384 anl _EXIF,#0xEF |
097F 90 E6 5D 3385 mov dptr,#_USBIRQ |
0982 74 01 3386 mov a,#0x01 |
0984 F0 3387 movx @dptr,a |
0985 80 19 3388 sjmp 00173$ |
0987 3389 00170$: |
0987 12s04r8B 3390 lcall _ep0_vendor_cmd_su |
3391 ; ../../../include/ztex-isr.h:313: EP0BCL = 0; |
098A 90 E6 8B 3392 mov dptr,#_EP0BCL |
098D E4 3393 clr a |
098E F0 3394 movx @dptr,a |
3395 ; ../../../include/ztex-isr.h:315: } |
098F 3396 00172$: |
3397 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
098F 53 91 EF 3398 anl _EXIF,#0xEF |
0992 90 E6 5D 3399 mov dptr,#_USBIRQ |
0995 74 01 3400 mov a,#0x01 |
0997 F0 3401 movx @dptr,a |
0998 90 E6 A0 3402 mov dptr,#_EP0CS |
099B E0 3403 movx a,@dptr |
099C FA 3404 mov r2,a |
099D 44 80 3405 orl a,#0x80 |
099F F0 3406 movx @dptr,a |
09A0 3407 00173$: |
09A0 D0 D0 3408 pop psw |
09A2 D0 01 3409 pop (0+1) |
09A4 D0 00 3410 pop (0+0) |
09A6 D0 07 3411 pop (0+7) |
09A8 D0 06 3412 pop (0+6) |
09AA D0 05 3413 pop (0+5) |
09AC D0 04 3414 pop (0+4) |
09AE D0 03 3415 pop (0+3) |
09B0 D0 02 3416 pop (0+2) |
09B2 D0 83 3417 pop dph |
09B4 D0 82 3418 pop dpl |
09B6 D0 F0 3419 pop b |
09B8 D0 E0 3420 pop acc |
09BA D0*00 3421 pop bits |
09BC 32 3422 reti |
3423 ;------------------------------------------------------------ |
3424 ;Allocation info for local variables in function 'SOF_ISR' |
3425 ;------------------------------------------------------------ |
3426 ;------------------------------------------------------------ |
3427 ; ../../../include/ztex-isr.h:325: void SOF_ISR() interrupt |
3428 ; ----------------------------------------- |
3429 ; function SOF_ISR |
3430 ; ----------------------------------------- |
09BD 3431 _SOF_ISR: |
09BD C0 E0 3432 push acc |
09BF C0 82 3433 push dpl |
09C1 C0 83 3434 push dph |
3435 ; ../../../include/ztex-isr.h:327: EXIF &= ~bmBIT4; |
09C3 53 91 EF 3436 anl _EXIF,#0xEF |
3437 ; ../../../include/ztex-isr.h:328: USBIRQ = bmBIT1; |
09C6 90 E6 5D 3438 mov dptr,#_USBIRQ |
09C9 74 02 3439 mov a,#0x02 |
09CB F0 3440 movx @dptr,a |
09CC D0 83 3441 pop dph |
09CE D0 82 3442 pop dpl |
09D0 D0 E0 3443 pop acc |
09D2 32 3444 reti |
3445 ; eliminated unneeded push/pop psw |
3446 ; eliminated unneeded push/pop b |
3447 ;------------------------------------------------------------ |
3448 ;Allocation info for local variables in function 'SUTOK_ISR' |
3449 ;------------------------------------------------------------ |
3450 ;------------------------------------------------------------ |
3451 ; ../../../include/ztex-isr.h:334: void SUTOK_ISR() interrupt |
3452 ; ----------------------------------------- |
3453 ; function SUTOK_ISR |
3454 ; ----------------------------------------- |
09D3 3455 _SUTOK_ISR: |
09D3 C0 E0 3456 push acc |
09D5 C0 82 3457 push dpl |
09D7 C0 83 3458 push dph |
3459 ; ../../../include/ztex-isr.h:336: EXIF &= ~bmBIT4; |
09D9 53 91 EF 3460 anl _EXIF,#0xEF |
3461 ; ../../../include/ztex-isr.h:337: USBIRQ = bmBIT2; |
09DC 90 E6 5D 3462 mov dptr,#_USBIRQ |
09DF 74 04 3463 mov a,#0x04 |
09E1 F0 3464 movx @dptr,a |
09E2 D0 83 3465 pop dph |
09E4 D0 82 3466 pop dpl |
09E6 D0 E0 3467 pop acc |
09E8 32 3468 reti |
3469 ; eliminated unneeded push/pop psw |
3470 ; eliminated unneeded push/pop b |
3471 ;------------------------------------------------------------ |
3472 ;Allocation info for local variables in function 'SUSP_ISR' |
3473 ;------------------------------------------------------------ |
3474 ;------------------------------------------------------------ |
3475 ; ../../../include/ztex-isr.h:343: void SUSP_ISR() interrupt |
3476 ; ----------------------------------------- |
3477 ; function SUSP_ISR |
3478 ; ----------------------------------------- |
09E9 3479 _SUSP_ISR: |
09E9 C0 E0 3480 push acc |
09EB C0 82 3481 push dpl |
09ED C0 83 3482 push dph |
3483 ; ../../../include/ztex-isr.h:345: EXIF &= ~bmBIT4; |
09EF 53 91 EF 3484 anl _EXIF,#0xEF |
3485 ; ../../../include/ztex-isr.h:346: USBIRQ = bmBIT3; |
09F2 90 E6 5D 3486 mov dptr,#_USBIRQ |
09F5 74 08 3487 mov a,#0x08 |
09F7 F0 3488 movx @dptr,a |
09F8 D0 83 3489 pop dph |
09FA D0 82 3490 pop dpl |
09FC D0 E0 3491 pop acc |
09FE 32 3492 reti |
3493 ; eliminated unneeded push/pop psw |
3494 ; eliminated unneeded push/pop b |
3495 ;------------------------------------------------------------ |
3496 ;Allocation info for local variables in function 'URES_ISR' |
3497 ;------------------------------------------------------------ |
3498 ;------------------------------------------------------------ |
3499 ; ../../../include/ztex-isr.h:352: void URES_ISR() interrupt |
3500 ; ----------------------------------------- |
3501 ; function URES_ISR |
3502 ; ----------------------------------------- |
09FF 3503 _URES_ISR: |
09FF C0 E0 3504 push acc |
0A01 C0 82 3505 push dpl |
0A03 C0 83 3506 push dph |
3507 ; ../../../include/ztex-isr.h:354: EXIF &= ~bmBIT4; |
0A05 53 91 EF 3508 anl _EXIF,#0xEF |
3509 ; ../../../include/ztex-isr.h:355: USBIRQ = bmBIT4; |
0A08 90 E6 5D 3510 mov dptr,#_USBIRQ |
0A0B 74 10 3511 mov a,#0x10 |
0A0D F0 3512 movx @dptr,a |
0A0E D0 83 3513 pop dph |
0A10 D0 82 3514 pop dpl |
0A12 D0 E0 3515 pop acc |
0A14 32 3516 reti |
3517 ; eliminated unneeded push/pop psw |
3518 ; eliminated unneeded push/pop b |
3519 ;------------------------------------------------------------ |
3520 ;Allocation info for local variables in function 'HSGRANT_ISR' |
3521 ;------------------------------------------------------------ |
3522 ;------------------------------------------------------------ |
3523 ; ../../../include/ztex-isr.h:361: void HSGRANT_ISR() interrupt |
3524 ; ----------------------------------------- |
3525 ; function HSGRANT_ISR |
3526 ; ----------------------------------------- |
0A15 3527 _HSGRANT_ISR: |
0A15 C0 E0 3528 push acc |
0A17 C0 82 3529 push dpl |
0A19 C0 83 3530 push dph |
3531 ; ../../../include/ztex-isr.h:363: EXIF &= ~bmBIT4; |
0A1B 53 91 EF 3532 anl _EXIF,#0xEF |
3533 ; ../../../include/ztex-isr.h:364: USBIRQ = bmBIT5; |
0A1E 90 E6 5D 3534 mov dptr,#_USBIRQ |
0A21 74 20 3535 mov a,#0x20 |
0A23 F0 3536 movx @dptr,a |
0A24 D0 83 3537 pop dph |
0A26 D0 82 3538 pop dpl |
0A28 D0 E0 3539 pop acc |
0A2A 32 3540 reti |
3541 ; eliminated unneeded push/pop psw |
3542 ; eliminated unneeded push/pop b |
3543 ;------------------------------------------------------------ |
3544 ;Allocation info for local variables in function 'EP0ACK_ISR' |
3545 ;------------------------------------------------------------ |
3546 ;------------------------------------------------------------ |
3547 ; ../../../include/ztex-isr.h:370: void EP0ACK_ISR() interrupt |
3548 ; ----------------------------------------- |
3549 ; function EP0ACK_ISR |
3550 ; ----------------------------------------- |
0A2B 3551 _EP0ACK_ISR: |
0A2B C0 E0 3552 push acc |
0A2D C0 82 3553 push dpl |
0A2F C0 83 3554 push dph |
3555 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0A31 53 91 EF 3556 anl _EXIF,#0xEF |
0A34 90 E6 5D 3557 mov dptr,#_USBIRQ |
0A37 74 40 3558 mov a,#0x40 |
0A39 F0 3559 movx @dptr,a |
0A3A D0 83 3560 pop dph |
0A3C D0 82 3561 pop dpl |
0A3E D0 E0 3562 pop acc |
0A40 32 3563 reti |
3564 ; eliminated unneeded push/pop psw |
3565 ; eliminated unneeded push/pop b |
3566 ;------------------------------------------------------------ |
3567 ;Allocation info for local variables in function 'EP0IN_ISR' |
3568 ;------------------------------------------------------------ |
3569 ;------------------------------------------------------------ |
3570 ; ../../../include/ztex-isr.h:379: static void EP0IN_ISR () interrupt |
3571 ; ----------------------------------------- |
3572 ; function EP0IN_ISR |
3573 ; ----------------------------------------- |
0A41 3574 _EP0IN_ISR: |
0A41 C0*00 3575 push bits |
0A43 C0 E0 3576 push acc |
0A45 C0 F0 3577 push b |
0A47 C0 82 3578 push dpl |
0A49 C0 83 3579 push dph |
0A4B C0 02 3580 push (0+2) |
0A4D C0 03 3581 push (0+3) |
0A4F C0 04 3582 push (0+4) |
0A51 C0 05 3583 push (0+5) |
0A53 C0 06 3584 push (0+6) |
0A55 C0 07 3585 push (0+7) |
0A57 C0 00 3586 push (0+0) |
0A59 C0 01 3587 push (0+1) |
0A5B C0 D0 3588 push psw |
0A5D 75 D0 00 3589 mov psw,#0x00 |
3590 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0A60 C2 E8 3591 clr _EUSB |
3592 ; ../../../include/ztex-isr.h:382: ep0_payload_update(); |
0A62 12s04r5E 3593 lcall _ep0_payload_update |
3594 ; ../../../include/ztex-isr.h:383: switch ( ep0_prev_setup_request ) { |
0A65 90s00r03 3595 mov dptr,#_ep0_prev_setup_request |
0A68 E0 3596 movx a,@dptr |
0A69 FA 3597 mov r2,a |
0A6A BA 28 02 3598 cjne r2,#0x28,00111$ |
0A6D 80 1A 3599 sjmp 00103$ |
0A6F 3600 00111$: |
0A6F BA 38 02 3601 cjne r2,#0x38,00112$ |
0A72 80 05 3602 sjmp 00101$ |
0A74 3603 00112$: |
3604 ; ../../../include/ztex-conf.h:95: case $0: |
0A74 BA 3A 22 3605 cjne r2,#0x3A,00104$ |
0A77 80 29 3606 sjmp 00105$ |
0A79 3607 00101$: |
3608 ; ../../../include/ztex-eeprom.h:219: EP0BCH = 0; |
0A79 90 E6 8A 3609 mov dptr,#_EP0BCH |
0A7C E4 3610 clr a |
0A7D F0 3611 movx @dptr,a |
3612 ; ../../../include/ztex-eeprom.h:220: EP0BCL = eeprom_read_ep0(); |
0A7E 12s02rF0 3613 lcall _eeprom_read_ep0 |
0A81 E5 82 3614 mov a,dpl |
0A83 90 E6 8B 3615 mov dptr,#_EP0BCL |
0A86 F0 3616 movx @dptr,a |
3617 ; ../../../include/ztex-conf.h:97: break; |
3618 ; ../../../include/ztex-conf.h:95: case $0: |
0A87 80 19 3619 sjmp 00105$ |
0A89 3620 00103$: |
3621 ; ../../../include/ztex-debug.h:86: EP0BCH = 0; |
0A89 90 E6 8A 3622 mov dptr,#_EP0BCH |
0A8C E4 3623 clr a |
0A8D F0 3624 movx @dptr,a |
3625 ; ../../../include/ztex-debug.h:87: EP0BCL = debug_read_ep0(); |
0A8E 12s03rB3 3626 lcall _debug_read_ep0 |
0A91 E5 82 3627 mov a,dpl |
0A93 90 E6 8B 3628 mov dptr,#_EP0BCL |
0A96 F0 3629 movx @dptr,a |
3630 ; ../../../include/ztex-conf.h:97: break; |
3631 ; ../../../include/ztex-isr.h:385: default: |
0A97 80 09 3632 sjmp 00105$ |
0A99 3633 00104$: |
3634 ; ../../../include/ztex-isr.h:386: EP0BCH = 0; |
0A99 90 E6 8A 3635 mov dptr,#_EP0BCH |
3636 ; ../../../include/ztex-isr.h:387: EP0BCL = 0; |
0A9C E4 3637 clr a |
0A9D F0 3638 movx @dptr,a |
0A9E 90 E6 8B 3639 mov dptr,#_EP0BCL |
0AA1 F0 3640 movx @dptr,a |
3641 ; ../../../include/ztex-isr.h:388: } |
0AA2 3642 00105$: |
3643 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0AA2 53 91 EF 3644 anl _EXIF,#0xEF |
0AA5 90 E6 5F 3645 mov dptr,#_EPIRQ |
0AA8 74 01 3646 mov a,#0x01 |
0AAA F0 3647 movx @dptr,a |
3648 ; ../../../include/ztex-isr.h:391: EUSB = 1; |
0AAB D2 E8 3649 setb _EUSB |
0AAD D0 D0 3650 pop psw |
0AAF D0 01 3651 pop (0+1) |
0AB1 D0 00 3652 pop (0+0) |
0AB3 D0 07 3653 pop (0+7) |
0AB5 D0 06 3654 pop (0+6) |
0AB7 D0 05 3655 pop (0+5) |
0AB9 D0 04 3656 pop (0+4) |
0ABB D0 03 3657 pop (0+3) |
0ABD D0 02 3658 pop (0+2) |
0ABF D0 83 3659 pop dph |
0AC1 D0 82 3660 pop dpl |
0AC3 D0 F0 3661 pop b |
0AC5 D0 E0 3662 pop acc |
0AC7 D0*00 3663 pop bits |
0AC9 32 3664 reti |
3665 ;------------------------------------------------------------ |
3666 ;Allocation info for local variables in function 'EP0OUT_ISR' |
3667 ;------------------------------------------------------------ |
3668 ;------------------------------------------------------------ |
3669 ; ../../../include/ztex-isr.h:397: static void EP0OUT_ISR () interrupt |
3670 ; ----------------------------------------- |
3671 ; function EP0OUT_ISR |
3672 ; ----------------------------------------- |
0ACA 3673 _EP0OUT_ISR: |
0ACA C0*00 3674 push bits |
0ACC C0 E0 3675 push acc |
0ACE C0 F0 3676 push b |
0AD0 C0 82 3677 push dpl |
0AD2 C0 83 3678 push dph |
0AD4 C0 02 3679 push (0+2) |
0AD6 C0 03 3680 push (0+3) |
0AD8 C0 04 3681 push (0+4) |
0ADA C0 05 3682 push (0+5) |
0ADC C0 06 3683 push (0+6) |
0ADE C0 07 3684 push (0+7) |
0AE0 C0 00 3685 push (0+0) |
0AE2 C0 01 3686 push (0+1) |
0AE4 C0 D0 3687 push psw |
0AE6 75 D0 00 3688 mov psw,#0x00 |
3689 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0AE9 C2 E8 3690 clr _EUSB |
3691 ; ../../../include/ztex-isr.h:400: if ( ep0_vendor_cmd_setup ) { |
0AEB 90s00r04 3692 mov dptr,#_ep0_vendor_cmd_setup |
0AEE E0 3693 movx a,@dptr |
0AEF FA 3694 mov r2,a |
0AF0 60 20 3695 jz 00102$ |
3696 ; ../../../include/ztex-isr.h:401: ep0_vendor_cmd_setup = 0; |
0AF2 90s00r04 3697 mov dptr,#_ep0_vendor_cmd_setup |
0AF5 E4 3698 clr a |
0AF6 F0 3699 movx @dptr,a |
3700 ; ../../../include/ztex-isr.h:402: ep0_payload_remaining = (SETUPDAT[7] << 8) | SETUPDAT[6]; |
0AF7 90 E6 BF 3701 mov dptr,#(_SETUPDAT + 0x0007) |
0AFA E0 3702 movx a,@dptr |
0AFB FB 3703 mov r3,a |
0AFC 7A 00 3704 mov r2,#0x00 |
0AFE 90 E6 BE 3705 mov dptr,#(_SETUPDAT + 0x0006) |
0B01 E0 3706 movx a,@dptr |
0B02 FC 3707 mov r4,a |
0B03 7D 00 3708 mov r5,#0x00 |
0B05 90s00r00 3709 mov dptr,#_ep0_payload_remaining |
0B08 EC 3710 mov a,r4 |
0B09 4A 3711 orl a,r2 |
0B0A F0 3712 movx @dptr,a |
0B0B ED 3713 mov a,r5 |
0B0C 4B 3714 orl a,r3 |
0B0D A3 3715 inc dptr |
0B0E F0 3716 movx @dptr,a |
3717 ; ../../../include/ztex-isr.h:403: ep0_vendor_cmd_su(); |
0B0F 12s04r8B 3718 lcall _ep0_vendor_cmd_su |
0B12 3719 00102$: |
3720 ; ../../../include/ztex-isr.h:406: ep0_payload_update(); |
0B12 12s04r5E 3721 lcall _ep0_payload_update |
3722 ; ../../../include/ztex-isr.h:408: switch ( ep0_prev_setup_request ) { |
0B15 90s00r03 3723 mov dptr,#_ep0_prev_setup_request |
0B18 E0 3724 movx a,@dptr |
0B19 FA 3725 mov r2,a |
0B1A BA 39 09 3726 cjne r2,#0x39,00104$ |
3727 ; ../../../include/ztex-eeprom.h:237: eeprom_write_ep0(EP0BCL); |
0B1D 90 E6 8B 3728 mov dptr,#_EP0BCL |
0B20 E0 3729 movx a,@dptr |
0B21 F5 82 3730 mov dpl,a |
0B23 12s03r24 3731 lcall _eeprom_write_ep0 |
3732 ; ../../../include/ztex-isr.h:410: } |
0B26 3733 00104$: |
3734 ; ../../../include/ztex-isr.h:412: EP0BCL = 0; |
0B26 90 E6 8B 3735 mov dptr,#_EP0BCL |
0B29 E4 3736 clr a |
0B2A F0 3737 movx @dptr,a |
3738 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0B2B 53 91 EF 3739 anl _EXIF,#0xEF |
0B2E 90 E6 5F 3740 mov dptr,#_EPIRQ |
0B31 74 02 3741 mov a,#0x02 |
0B33 F0 3742 movx @dptr,a |
3743 ; ../../../include/ztex-isr.h:416: if ( ep0_payload_remaining == 0 ) { |
0B34 90s00r00 3744 mov dptr,#_ep0_payload_remaining |
0B37 E0 3745 movx a,@dptr |
0B38 FA 3746 mov r2,a |
0B39 A3 3747 inc dptr |
0B3A E0 3748 movx a,@dptr |
0B3B FB 3749 mov r3,a |
0B3C 4A 3750 orl a,r2 |
0B3D 70 08 3751 jnz 00106$ |
3752 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0B3F 90 E6 A0 3753 mov dptr,#_EP0CS |
0B42 E0 3754 movx a,@dptr |
0B43 FA 3755 mov r2,a |
0B44 44 80 3756 orl a,#0x80 |
0B46 F0 3757 movx @dptr,a |
0B47 3758 00106$: |
3759 ; ../../../include/ztex-isr.h:419: EUSB = 1; |
0B47 D2 E8 3760 setb _EUSB |
0B49 D0 D0 3761 pop psw |
0B4B D0 01 3762 pop (0+1) |
0B4D D0 00 3763 pop (0+0) |
0B4F D0 07 3764 pop (0+7) |
0B51 D0 06 3765 pop (0+6) |
0B53 D0 05 3766 pop (0+5) |
0B55 D0 04 3767 pop (0+4) |
0B57 D0 03 3768 pop (0+3) |
0B59 D0 02 3769 pop (0+2) |
0B5B D0 83 3770 pop dph |
0B5D D0 82 3771 pop dpl |
0B5F D0 F0 3772 pop b |
0B61 D0 E0 3773 pop acc |
0B63 D0*00 3774 pop bits |
0B65 32 3775 reti |
3776 ;------------------------------------------------------------ |
3777 ;Allocation info for local variables in function 'EP1IN_ISR' |
3778 ;------------------------------------------------------------ |
3779 ;------------------------------------------------------------ |
3780 ; ../../../include/ztex-isr.h:426: void EP1IN_ISR() interrupt |
3781 ; ----------------------------------------- |
3782 ; function EP1IN_ISR |
3783 ; ----------------------------------------- |
0B66 3784 _EP1IN_ISR: |
0B66 C0 E0 3785 push acc |
0B68 C0 82 3786 push dpl |
0B6A C0 83 3787 push dph |
3788 ; ../../../include/ztex-isr.h:428: EXIF &= ~bmBIT4; |
0B6C 53 91 EF 3789 anl _EXIF,#0xEF |
3790 ; ../../../include/ztex-isr.h:429: EPIRQ = bmBIT2; |
0B6F 90 E6 5F 3791 mov dptr,#_EPIRQ |
0B72 74 04 3792 mov a,#0x04 |
0B74 F0 3793 movx @dptr,a |
0B75 D0 83 3794 pop dph |
0B77 D0 82 3795 pop dpl |
0B79 D0 E0 3796 pop acc |
0B7B 32 3797 reti |
3798 ; eliminated unneeded push/pop psw |
3799 ; eliminated unneeded push/pop b |
3800 ;------------------------------------------------------------ |
3801 ;Allocation info for local variables in function 'EP1OUT_ISR' |
3802 ;------------------------------------------------------------ |
3803 ;------------------------------------------------------------ |
3804 ; ../../../include/ztex-isr.h:436: void EP1OUT_ISR() interrupt |
3805 ; ----------------------------------------- |
3806 ; function EP1OUT_ISR |
3807 ; ----------------------------------------- |
0B7C 3808 _EP1OUT_ISR: |
0B7C C0 E0 3809 push acc |
0B7E C0 82 3810 push dpl |
0B80 C0 83 3811 push dph |
3812 ; ../../../include/ztex-isr.h:438: EXIF &= ~bmBIT4; |
0B82 53 91 EF 3813 anl _EXIF,#0xEF |
3814 ; ../../../include/ztex-isr.h:439: EPIRQ = bmBIT3; |
0B85 90 E6 5F 3815 mov dptr,#_EPIRQ |
0B88 74 08 3816 mov a,#0x08 |
0B8A F0 3817 movx @dptr,a |
0B8B D0 83 3818 pop dph |
0B8D D0 82 3819 pop dpl |
0B8F D0 E0 3820 pop acc |
0B91 32 3821 reti |
3822 ; eliminated unneeded push/pop psw |
3823 ; eliminated unneeded push/pop b |
3824 ;------------------------------------------------------------ |
3825 ;Allocation info for local variables in function 'EP2_ISR' |
3826 ;------------------------------------------------------------ |
3827 ;------------------------------------------------------------ |
3828 ; ../../../include/ztex-isr.h:445: void EP2_ISR() interrupt |
3829 ; ----------------------------------------- |
3830 ; function EP2_ISR |
3831 ; ----------------------------------------- |
0B92 3832 _EP2_ISR: |
0B92 C0 E0 3833 push acc |
0B94 C0 82 3834 push dpl |
0B96 C0 83 3835 push dph |
3836 ; ../../../include/ztex-isr.h:447: EXIF &= ~bmBIT4; |
0B98 53 91 EF 3837 anl _EXIF,#0xEF |
3838 ; ../../../include/ztex-isr.h:448: EPIRQ = bmBIT4; |
0B9B 90 E6 5F 3839 mov dptr,#_EPIRQ |
0B9E 74 10 3840 mov a,#0x10 |
0BA0 F0 3841 movx @dptr,a |
0BA1 D0 83 3842 pop dph |
0BA3 D0 82 3843 pop dpl |
0BA5 D0 E0 3844 pop acc |
0BA7 32 3845 reti |
3846 ; eliminated unneeded push/pop psw |
3847 ; eliminated unneeded push/pop b |
3848 ;------------------------------------------------------------ |
3849 ;Allocation info for local variables in function 'EP4_ISR' |
3850 ;------------------------------------------------------------ |
3851 ;------------------------------------------------------------ |
3852 ; ../../../include/ztex-isr.h:454: void EP4_ISR() interrupt |
3853 ; ----------------------------------------- |
3854 ; function EP4_ISR |
3855 ; ----------------------------------------- |
0BA8 3856 _EP4_ISR: |
0BA8 C0 E0 3857 push acc |
0BAA C0 82 3858 push dpl |
0BAC C0 83 3859 push dph |
3860 ; ../../../include/ztex-isr.h:456: EXIF &= ~bmBIT4; |
0BAE 53 91 EF 3861 anl _EXIF,#0xEF |
3862 ; ../../../include/ztex-isr.h:457: EPIRQ = bmBIT5; |
0BB1 90 E6 5F 3863 mov dptr,#_EPIRQ |
0BB4 74 20 3864 mov a,#0x20 |
0BB6 F0 3865 movx @dptr,a |
0BB7 D0 83 3866 pop dph |
0BB9 D0 82 3867 pop dpl |
0BBB D0 E0 3868 pop acc |
0BBD 32 3869 reti |
3870 ; eliminated unneeded push/pop psw |
3871 ; eliminated unneeded push/pop b |
3872 ;------------------------------------------------------------ |
3873 ;Allocation info for local variables in function 'EP6_ISR' |
3874 ;------------------------------------------------------------ |
3875 ;------------------------------------------------------------ |
3876 ; ../../../include/ztex-isr.h:463: void EP6_ISR() interrupt |
3877 ; ----------------------------------------- |
3878 ; function EP6_ISR |
3879 ; ----------------------------------------- |
0BBE 3880 _EP6_ISR: |
0BBE C0 E0 3881 push acc |
0BC0 C0 82 3882 push dpl |
0BC2 C0 83 3883 push dph |
3884 ; ../../../include/ztex-isr.h:465: EXIF &= ~bmBIT4; |
0BC4 53 91 EF 3885 anl _EXIF,#0xEF |
3886 ; ../../../include/ztex-isr.h:466: EPIRQ = bmBIT6; |
0BC7 90 E6 5F 3887 mov dptr,#_EPIRQ |
0BCA 74 40 3888 mov a,#0x40 |
0BCC F0 3889 movx @dptr,a |
0BCD D0 83 3890 pop dph |
0BCF D0 82 3891 pop dpl |
0BD1 D0 E0 3892 pop acc |
0BD3 32 3893 reti |
3894 ; eliminated unneeded push/pop psw |
3895 ; eliminated unneeded push/pop b |
3896 ;------------------------------------------------------------ |
3897 ;Allocation info for local variables in function 'EP8_ISR' |
3898 ;------------------------------------------------------------ |
3899 ;------------------------------------------------------------ |
3900 ; ../../../include/ztex-isr.h:472: void EP8_ISR() interrupt |
3901 ; ----------------------------------------- |
3902 ; function EP8_ISR |
3903 ; ----------------------------------------- |
0BD4 3904 _EP8_ISR: |
0BD4 C0 E0 3905 push acc |
0BD6 C0 82 3906 push dpl |
0BD8 C0 83 3907 push dph |
3908 ; ../../../include/ztex-isr.h:474: EXIF &= ~bmBIT4; |
0BDA 53 91 EF 3909 anl _EXIF,#0xEF |
3910 ; ../../../include/ztex-isr.h:475: EPIRQ = bmBIT7; |
0BDD 90 E6 5F 3911 mov dptr,#_EPIRQ |
0BE0 74 80 3912 mov a,#0x80 |
0BE2 F0 3913 movx @dptr,a |
0BE3 D0 83 3914 pop dph |
0BE5 D0 82 3915 pop dpl |
0BE7 D0 E0 3916 pop acc |
0BE9 32 3917 reti |
3918 ; eliminated unneeded push/pop psw |
3919 ; eliminated unneeded push/pop b |
3920 ;------------------------------------------------------------ |
3921 ;Allocation info for local variables in function 'init_USB' |
3922 ;------------------------------------------------------------ |
3923 ;------------------------------------------------------------ |
3924 ; ../../../include/ztex.h:165: void init_USB () |
3925 ; ----------------------------------------- |
3926 ; function init_USB |
3927 ; ----------------------------------------- |
0BEA 3928 _init_USB: |
3929 ; ../../../include/ztex.h:167: USBCS |= 0x08; |
0BEA 90 E6 80 3930 mov dptr,#_USBCS |
0BED E0 3931 movx a,@dptr |
0BEE 44 08 3932 orl a,#0x08 |
0BF0 F0 3933 movx @dptr,a |
3934 ; ../../../include/ztex.h:169: CPUCS = bmBIT4 | bmBIT1; |
0BF1 90 E6 00 3935 mov dptr,#_CPUCS |
0BF4 74 12 3936 mov a,#0x12 |
0BF6 F0 3937 movx @dptr,a |
3938 ; ../../../include/ztex.h:170: CKCON &= ~7; |
0BF7 53 8E F8 3939 anl _CKCON,#0xF8 |
3940 ; ../../../include/ztex.h:191: EA = 0; |
0BFA C2 AF 3941 clr _EA |
3942 ; ../../../include/ztex.h:192: EUSB = 0; |
0BFC C2 E8 3943 clr _EUSB |
3944 ; ../../../include/ezintavecs.h:123: INT8VEC_USB.op=0x02; |
0BFE 90 00 43 3945 mov dptr,#_INT8VEC_USB |
0C01 74 02 3946 mov a,#0x02 |
0C03 F0 3947 movx @dptr,a |
3948 ; ../../../include/ezintavecs.h:124: INT8VEC_USB.addrH = 0x01; |
0C04 90 00 44 3949 mov dptr,#(_INT8VEC_USB + 0x0001) |
0C07 74 01 3950 mov a,#0x01 |
0C09 F0 3951 movx @dptr,a |
3952 ; ../../../include/ezintavecs.h:125: INT8VEC_USB.addrL = 0xb8; |
0C0A 90 00 45 3953 mov dptr,#(_INT8VEC_USB + 0x0002) |
0C0D 74 B8 3954 mov a,#0xB8 |
0C0F F0 3955 movx @dptr,a |
3956 ; ../../../include/ezintavecs.h:126: INTSETUP |= 8; |
0C10 90 E6 68 3957 mov dptr,#_INTSETUP |
0C13 E0 3958 movx a,@dptr |
0C14 44 08 3959 orl a,#0x08 |
0C16 F0 3960 movx @dptr,a |
3961 ; ../../../include/ezintavecs.h:115: $0.op=0x02; |
0C17 90 01 00 3962 mov dptr,#_INTVEC_SUDAV |
0C1A 74 02 3963 mov a,#0x02 |
0C1C F0 3964 movx @dptr,a |
3965 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8; |
0C1D 7ArBF 3966 mov r2,#_SUDAV_ISR |
0C1F 7Bs04 3967 mov r3,#(_SUDAV_ISR >> 8) |
0C21 8B 04 3968 mov ar4,r3 |
0C23 90 01 01 3969 mov dptr,#(_INTVEC_SUDAV + 0x0001) |
0C26 EC 3970 mov a,r4 |
0C27 F0 3971 movx @dptr,a |
3972 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1); |
0C28 90 01 02 3973 mov dptr,#(_INTVEC_SUDAV + 0x0002) |
0C2B EA 3974 mov a,r2 |
0C2C F0 3975 movx @dptr,a |
3976 ; ../../../include/ezintavecs.h:115: $0.op=0x02; |
0C2D 90 01 04 3977 mov dptr,#_INTVEC_SOF |
0C30 74 02 3978 mov a,#0x02 |
0C32 F0 3979 movx @dptr,a |
3980 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8; |
0C33 7ArBD 3981 mov r2,#_SOF_ISR |
0C35 7Bs09 3982 mov r3,#(_SOF_ISR >> 8) |
0C37 8B 04 3983 mov ar4,r3 |
0C39 90 01 05 3984 mov dptr,#(_INTVEC_SOF + 0x0001) |
0C3C EC 3985 mov a,r4 |
0C3D F0 3986 movx @dptr,a |
3987 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1); |
0C3E 90 01 06 3988 mov dptr,#(_INTVEC_SOF + 0x0002) |
0C41 EA 3989 mov a,r2 |
0C42 F0 3990 movx @dptr,a |
3991 ; ../../../include/ezintavecs.h:115: $0.op=0x02; |
0C43 90 01 08 3992 mov dptr,#_INTVEC_SUTOK |
0C46 74 02 3993 mov a,#0x02 |
0C48 F0 3994 movx @dptr,a |
3995 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8; |
0C49 7ArD3 3996 mov r2,#_SUTOK_ISR |
0C4B 7Bs09 3997 mov r3,#(_SUTOK_ISR >> 8) |
0C4D 8B 04 3998 mov ar4,r3 |
0C4F 90 01 09 3999 mov dptr,#(_INTVEC_SUTOK + 0x0001) |
0C52 EC 4000 mov a,r4 |
0C53 F0 4001 movx @dptr,a |
4002 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1); |
0C54 90 01 0A 4003 mov dptr,#(_INTVEC_SUTOK + 0x0002) |
0C57 EA 4004 mov a,r2 |
0C58 F0 4005 movx @dptr,a |
4006 ; ../../../include/ezintavecs.h:115: $0.op=0x02; |
0C59 90 01 0C 4007 mov dptr,#_INTVEC_SUSPEND |
0C5C 74 02 4008 mov a,#0x02 |
0C5E F0 4009 movx @dptr,a |
4010 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8; |
0C5F 7ArE9 4011 mov r2,#_SUSP_ISR |
0C61 7Bs09 4012 mov r3,#(_SUSP_ISR >> 8) |
0C63 8B 04 4013 mov ar4,r3 |
0C65 90 01 0D 4014 mov dptr,#(_INTVEC_SUSPEND + 0x0001) |
0C68 EC 4015 mov a,r4 |
0C69 F0 4016 movx @dptr,a |
4017 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1); |
0C6A 90 01 0E 4018 mov dptr,#(_INTVEC_SUSPEND + 0x0002) |
0C6D EA 4019 mov a,r2 |
0C6E F0 4020 movx @dptr,a |
4021 ; ../../../include/ezintavecs.h:115: $0.op=0x02; |
0C6F 90 01 10 4022 mov dptr,#_INTVEC_USBRESET |
0C72 74 02 4023 mov a,#0x02 |
0C74 F0 4024 movx @dptr,a |
4025 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8; |
0C75 7ArFF 4026 mov r2,#_URES_ISR |
0C77 7Bs09 4027 mov r3,#(_URES_ISR >> 8) |
0C79 8B 04 4028 mov ar4,r3 |
0C7B 90 01 11 4029 mov dptr,#(_INTVEC_USBRESET + 0x0001) |
0C7E EC 4030 mov a,r4 |
0C7F F0 4031 movx @dptr,a |
4032 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1); |
0C80 90 01 12 4033 mov dptr,#(_INTVEC_USBRESET + 0x0002) |
0C83 EA 4034 mov a,r2 |
0C84 F0 4035 movx @dptr,a |
4036 ; ../../../include/ezintavecs.h:115: $0.op=0x02; |
0C85 90 01 14 4037 mov dptr,#_INTVEC_HISPEED |
0C88 74 02 4038 mov a,#0x02 |
0C8A F0 4039 movx @dptr,a |
4040 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8; |
0C8B 7Ar15 4041 mov r2,#_HSGRANT_ISR |
0C8D 7Bs0A 4042 mov r3,#(_HSGRANT_ISR >> 8) |
0C8F 8B 04 4043 mov ar4,r3 |
0C91 90 01 15 4044 mov dptr,#(_INTVEC_HISPEED + 0x0001) |
0C94 EC 4045 mov a,r4 |
0C95 F0 4046 movx @dptr,a |
4047 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1); |
0C96 90 01 16 4048 mov dptr,#(_INTVEC_HISPEED + 0x0002) |
0C99 EA 4049 mov a,r2 |
0C9A F0 4050 movx @dptr,a |
4051 ; ../../../include/ezintavecs.h:115: $0.op=0x02; |
0C9B 90 01 18 4052 mov dptr,#_INTVEC_EP0ACK |
0C9E 74 02 4053 mov a,#0x02 |
0CA0 F0 4054 movx @dptr,a |
4055 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8; |
0CA1 7Ar2B 4056 mov r2,#_EP0ACK_ISR |
0CA3 7Bs0A 4057 mov r3,#(_EP0ACK_ISR >> 8) |
0CA5 8B 04 4058 mov ar4,r3 |
0CA7 90 01 19 4059 mov dptr,#(_INTVEC_EP0ACK + 0x0001) |
0CAA EC 4060 mov a,r4 |
0CAB F0 4061 movx @dptr,a |
4062 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1); |
0CAC 90 01 1A 4063 mov dptr,#(_INTVEC_EP0ACK + 0x0002) |
0CAF EA 4064 mov a,r2 |
0CB0 F0 4065 movx @dptr,a |
4066 ; ../../../include/ezintavecs.h:115: $0.op=0x02; |
0CB1 90 01 20 4067 mov dptr,#_INTVEC_EP0IN |
0CB4 74 02 4068 mov a,#0x02 |
0CB6 F0 4069 movx @dptr,a |
4070 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8; |
0CB7 7Ar41 4071 mov r2,#_EP0IN_ISR |
0CB9 7Bs0A 4072 mov r3,#(_EP0IN_ISR >> 8) |
0CBB 8B 04 4073 mov ar4,r3 |
0CBD 90 01 21 4074 mov dptr,#(_INTVEC_EP0IN + 0x0001) |
0CC0 EC 4075 mov a,r4 |
0CC1 F0 4076 movx @dptr,a |
4077 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1); |
0CC2 90 01 22 4078 mov dptr,#(_INTVEC_EP0IN + 0x0002) |
0CC5 EA 4079 mov a,r2 |
0CC6 F0 4080 movx @dptr,a |
4081 ; ../../../include/ezintavecs.h:115: $0.op=0x02; |
0CC7 90 01 24 4082 mov dptr,#_INTVEC_EP0OUT |
0CCA 74 02 4083 mov a,#0x02 |
0CCC F0 4084 movx @dptr,a |
4085 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8; |
0CCD 7ArCA 4086 mov r2,#_EP0OUT_ISR |
0CCF 7Bs0A 4087 mov r3,#(_EP0OUT_ISR >> 8) |
0CD1 8B 04 4088 mov ar4,r3 |
0CD3 90 01 25 4089 mov dptr,#(_INTVEC_EP0OUT + 0x0001) |
0CD6 EC 4090 mov a,r4 |
0CD7 F0 4091 movx @dptr,a |
4092 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1); |
0CD8 90 01 26 4093 mov dptr,#(_INTVEC_EP0OUT + 0x0002) |
0CDB EA 4094 mov a,r2 |
0CDC F0 4095 movx @dptr,a |
4096 ; ../../../include/ezintavecs.h:115: $0.op=0x02; |
0CDD 90 01 28 4097 mov dptr,#_INTVEC_EP1IN |
0CE0 74 02 4098 mov a,#0x02 |
0CE2 F0 4099 movx @dptr,a |
4100 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8; |
0CE3 7Ar66 4101 mov r2,#_EP1IN_ISR |
0CE5 7Bs0B 4102 mov r3,#(_EP1IN_ISR >> 8) |
0CE7 8B 04 4103 mov ar4,r3 |
0CE9 90 01 29 4104 mov dptr,#(_INTVEC_EP1IN + 0x0001) |
0CEC EC 4105 mov a,r4 |
0CED F0 4106 movx @dptr,a |
4107 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1); |
0CEE 90 01 2A 4108 mov dptr,#(_INTVEC_EP1IN + 0x0002) |
0CF1 EA 4109 mov a,r2 |
0CF2 F0 4110 movx @dptr,a |
4111 ; ../../../include/ezintavecs.h:115: $0.op=0x02; |
0CF3 90 01 2C 4112 mov dptr,#_INTVEC_EP1OUT |
0CF6 74 02 4113 mov a,#0x02 |
0CF8 F0 4114 movx @dptr,a |
4115 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8; |
0CF9 7Ar7C 4116 mov r2,#_EP1OUT_ISR |
0CFB 7Bs0B 4117 mov r3,#(_EP1OUT_ISR >> 8) |
0CFD 8B 04 4118 mov ar4,r3 |
0CFF 90 01 2D 4119 mov dptr,#(_INTVEC_EP1OUT + 0x0001) |
0D02 EC 4120 mov a,r4 |
0D03 F0 4121 movx @dptr,a |
4122 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1); |
0D04 90 01 2E 4123 mov dptr,#(_INTVEC_EP1OUT + 0x0002) |
0D07 EA 4124 mov a,r2 |
0D08 F0 4125 movx @dptr,a |
4126 ; ../../../include/ezintavecs.h:115: $0.op=0x02; |
0D09 90 01 30 4127 mov dptr,#_INTVEC_EP2 |
0D0C 74 02 4128 mov a,#0x02 |
0D0E F0 4129 movx @dptr,a |
4130 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8; |
0D0F 7Ar92 4131 mov r2,#_EP2_ISR |
0D11 7Bs0B 4132 mov r3,#(_EP2_ISR >> 8) |
0D13 8B 04 4133 mov ar4,r3 |
0D15 90 01 31 4134 mov dptr,#(_INTVEC_EP2 + 0x0001) |
0D18 EC 4135 mov a,r4 |
0D19 F0 4136 movx @dptr,a |
4137 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1); |
0D1A 90 01 32 4138 mov dptr,#(_INTVEC_EP2 + 0x0002) |
0D1D EA 4139 mov a,r2 |
0D1E F0 4140 movx @dptr,a |
4141 ; ../../../include/ezintavecs.h:115: $0.op=0x02; |
0D1F 90 01 34 4142 mov dptr,#_INTVEC_EP4 |
0D22 74 02 4143 mov a,#0x02 |
0D24 F0 4144 movx @dptr,a |
4145 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8; |
0D25 7ArA8 4146 mov r2,#_EP4_ISR |
0D27 7Bs0B 4147 mov r3,#(_EP4_ISR >> 8) |
0D29 8B 04 4148 mov ar4,r3 |
0D2B 90 01 35 4149 mov dptr,#(_INTVEC_EP4 + 0x0001) |
0D2E EC 4150 mov a,r4 |
0D2F F0 4151 movx @dptr,a |
4152 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1); |
0D30 90 01 36 4153 mov dptr,#(_INTVEC_EP4 + 0x0002) |
0D33 EA 4154 mov a,r2 |
0D34 F0 4155 movx @dptr,a |
4156 ; ../../../include/ezintavecs.h:115: $0.op=0x02; |
0D35 90 01 38 4157 mov dptr,#_INTVEC_EP6 |
0D38 74 02 4158 mov a,#0x02 |
0D3A F0 4159 movx @dptr,a |
4160 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8; |
0D3B 7ArBE 4161 mov r2,#_EP6_ISR |
0D3D 7Bs0B 4162 mov r3,#(_EP6_ISR >> 8) |
0D3F 8B 04 4163 mov ar4,r3 |
0D41 90 01 39 4164 mov dptr,#(_INTVEC_EP6 + 0x0001) |
0D44 EC 4165 mov a,r4 |
0D45 F0 4166 movx @dptr,a |
4167 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1); |
0D46 90 01 3A 4168 mov dptr,#(_INTVEC_EP6 + 0x0002) |
0D49 EA 4169 mov a,r2 |
0D4A F0 4170 movx @dptr,a |
4171 ; ../../../include/ezintavecs.h:115: $0.op=0x02; |
0D4B 90 01 3C 4172 mov dptr,#_INTVEC_EP8 |
0D4E 74 02 4173 mov a,#0x02 |
0D50 F0 4174 movx @dptr,a |
4175 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8; |
0D51 7ArD4 4176 mov r2,#_EP8_ISR |
0D53 7Bs0B 4177 mov r3,#(_EP8_ISR >> 8) |
0D55 8B 04 4178 mov ar4,r3 |
0D57 90 01 3D 4179 mov dptr,#(_INTVEC_EP8 + 0x0001) |
0D5A EC 4180 mov a,r4 |
0D5B F0 4181 movx @dptr,a |
4182 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1); |
0D5C 90 01 3E 4183 mov dptr,#(_INTVEC_EP8 + 0x0002) |
0D5F EA 4184 mov a,r2 |
0D60 F0 4185 movx @dptr,a |
4186 ; ../../../include/ztex.h:213: EXIF &= ~bmBIT4; |
0D61 53 91 EF 4187 anl _EXIF,#0xEF |
4188 ; ../../../include/ztex.h:214: USBIRQ = 0x7f; |
0D64 90 E6 5D 4189 mov dptr,#_USBIRQ |
0D67 74 7F 4190 mov a,#0x7F |
0D69 F0 4191 movx @dptr,a |
4192 ; ../../../include/ztex.h:215: USBIE |= 0x7f; |
0D6A 90 E6 5C 4193 mov dptr,#_USBIE |
0D6D E0 4194 movx a,@dptr |
0D6E FA 4195 mov r2,a |
0D6F 44 7F 4196 orl a,#0x7F |
0D71 F0 4197 movx @dptr,a |
4198 ; ../../../include/ztex.h:216: EPIRQ = 0xff; |
0D72 90 E6 5F 4199 mov dptr,#_EPIRQ |
0D75 74 FF 4200 mov a,#0xFF |
0D77 F0 4201 movx @dptr,a |
4202 ; ../../../include/ztex.h:217: EPIE = 0xff; |
0D78 90 E6 5E 4203 mov dptr,#_EPIE |
0D7B 74 FF 4204 mov a,#0xFF |
0D7D F0 4205 movx @dptr,a |
4206 ; ../../../include/ztex.h:219: EUSB = 1; |
0D7E D2 E8 4207 setb _EUSB |
4208 ; ../../../include/ztex.h:220: EA = 1; |
0D80 D2 AF 4209 setb _EA |
4210 ; ../../../include/ztex.h:154: EP$0CFG = bmBIT7 | bmBIT5; |
0D82 90 E6 11 4211 mov dptr,#_EP1INCFG |
0D85 74 A0 4212 mov a,#0xA0 |
0D87 F0 4213 movx @dptr,a |
4214 ; ../../../include/ezregs.h:46: _endasm; |
4215 |
0D88 00 4216 nop |
0D89 00 4217 nop |
0D8A 00 4218 nop |
0D8B 00 4219 nop |
4220 |
4221 ; ../../../include/ztex.h:154: EP$0CFG = bmBIT7 | bmBIT5; |
0D8C 90 E6 10 4222 mov dptr,#_EP1OUTCFG |
0D8F 74 A0 4223 mov a,#0xA0 |
0D91 F0 4224 movx @dptr,a |
4225 ; ../../../include/ezregs.h:46: _endasm; |
4226 |
0D92 00 4227 nop |
0D93 00 4228 nop |
0D94 00 4229 nop |
0D95 00 4230 nop |
4231 |
4232 ; ../../../include/ztex.h:149: ; |
0D96 90 E6 12 4233 mov dptr,#_EP2CFG |
0D99 E4 4234 clr a |
0D9A F0 4235 movx @dptr,a |
4236 ; ../../../include/ezregs.h:46: _endasm; |
4237 |
0D9B 00 4238 nop |
0D9C 00 4239 nop |
0D9D 00 4240 nop |
0D9E 00 4241 nop |
4242 |
4243 ; ../../../include/ztex.h:149: ; |
0D9F 90 E6 13 4244 mov dptr,#_EP4CFG |
0DA2 E4 4245 clr a |
0DA3 F0 4246 movx @dptr,a |
4247 ; ../../../include/ezregs.h:46: _endasm; |
4248 |
0DA4 00 4249 nop |
0DA5 00 4250 nop |
0DA6 00 4251 nop |
0DA7 00 4252 nop |
4253 |
4254 ; ../../../include/ztex.h:149: ; |
0DA8 90 E6 14 4255 mov dptr,#_EP6CFG |
0DAB E4 4256 clr a |
0DAC F0 4257 movx @dptr,a |
4258 ; ../../../include/ezregs.h:46: _endasm; |
4259 |
0DAD 00 4260 nop |
0DAE 00 4261 nop |
0DAF 00 4262 nop |
0DB0 00 4263 nop |
4264 |
4265 ; ../../../include/ztex.h:149: ; |
0DB1 90 E6 15 4266 mov dptr,#_EP8CFG |
0DB4 E4 4267 clr a |
0DB5 F0 4268 movx @dptr,a |
4269 ; ../../../include/ezregs.h:46: _endasm; |
4270 |
0DB6 00 4271 nop |
0DB7 00 4272 nop |
0DB8 00 4273 nop |
0DB9 00 4274 nop |
4275 |
4276 ; ../../../include/ztex.h:236: debug_init(); |
0DBA 12s03r95 4277 lcall _debug_init |
4278 ; ../../../include/ztex.h:239: USBCS |= bmBIT7 | bmBIT1; |
0DBD 90 E6 80 4279 mov dptr,#_USBCS |
0DC0 E0 4280 movx a,@dptr |
0DC1 44 82 4281 orl a,#0x82 |
0DC3 F0 4282 movx @dptr,a |
4283 ; ../../../include/ztex.h:240: wait(250); |
0DC4 90 00 FA 4284 mov dptr,#0x00FA |
0DC7 12s00r00 4285 lcall _wait |
4286 ; ../../../include/ztex.h:241: USBCS &= ~0x08; |
0DCA 90 E6 80 4287 mov dptr,#_USBCS |
0DCD E0 4288 movx a,@dptr |
0DCE 54 F7 4289 anl a,#0xF7 |
0DD0 F0 4290 movx @dptr,a |
0DD1 22 4291 ret |
4292 ;------------------------------------------------------------ |
4293 ;Allocation info for local variables in function 'main' |
4294 ;------------------------------------------------------------ |
4295 ;i Allocated to registers |
4296 ;b Allocated to registers r4 |
4297 ;------------------------------------------------------------ |
4298 ; debug.c:32: void main(void) |
4299 ; ----------------------------------------- |
4300 ; function main |
4301 ; ----------------------------------------- |
0DD2 4302 _main: |
4303 ; debug.c:38: init_USB(); |
0DD2 12s0BrEA 4304 lcall _init_USB |
4305 ; debug.c:41: while (1) { |
0DD5 7A 00 4306 mov r2,#0x00 |
0DD7 7B 00 4307 mov r3,#0x00 |
0DD9 4308 00102$: |
4309 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0DD9 8A 04 4310 mov ar4,r2 |
0DDB 90s00r6B 4311 mov dptr,#_debug_msg_buf |
0DDE EC 4312 mov a,r4 |
0DDF F0 4313 movx @dptr,a |
4314 ; debug.c:44: debug_msg_buf[1] = i >> 8; |
0DE0 8B 04 4315 mov ar4,r3 |
0DE2 90s00r6C 4316 mov dptr,#(_debug_msg_buf + 0x0001) |
0DE5 EC 4317 mov a,r4 |
0DE6 F0 4318 movx @dptr,a |
4319 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon! |
0DE7 C0 02 4320 push ar2 |
0DE9 C0 03 4321 push ar3 |
0DEB 12s03r51 4322 lcall _debug_add_msg |
0DEE D0 03 4323 pop ar3 |
0DF0 D0 02 4324 pop ar2 |
4325 ; debug.c:46: i+=1; |
0DF2 0A 4326 inc r2 |
0DF3 BA 00 01 4327 cjne r2,#0x00,00113$ |
0DF6 0B 4328 inc r3 |
0DF7 4329 00113$: |
4330 ; debug.c:30: #include[ztex.h] |
0DF7 7C 00 4331 mov r4,#0x00 |
0DF9 4332 00104$: |
0DF9 BC 64 00 4333 cjne r4,#0x64,00114$ |
0DFC 4334 00114$: |
0DFC 50 DB 4335 jnc 00102$ |
0DFE 90s00r69 4336 mov dptr,#_debug_stack_ptr |
0E01 E0 4337 movx a,@dptr |
0E02 FD 4338 mov r5,a |
0E03 A3 4339 inc dptr |
0E04 E0 4340 movx a,@dptr |
0E05 FE 4341 mov r6,a |
0E06 8D 82 4342 mov dpl,r5 |
0E08 8E 83 4343 mov dph,r6 |
0E0A A3 4344 inc dptr |
0E0B A3 4345 inc dptr |
0E0C EC 4346 mov a,r4 |
0E0D F0 4347 movx @dptr,a |
0E0E 90 00 0A 4348 mov dptr,#0x000A |
0E11 C0 02 4349 push ar2 |
0E13 C0 03 4350 push ar3 |
0E15 C0 04 4351 push ar4 |
0E17 12s00r00 4352 lcall _wait |
0E1A D0 04 4353 pop ar4 |
0E1C D0 03 4354 pop ar3 |
0E1E D0 02 4355 pop ar2 |
0E20 0C 4356 inc r4 |
0E21 80 D6 4357 sjmp 00104$ |
4358 .area CSEG (CODE) |
4359 .area CONST (CODE) |
0000 4360 _manufacturerString: |
0000 5A 54 45 58 4361 .ascii "ZTEX" |
0004 00 4362 .db 0x00 |
0005 4363 _productString: |
0005 64 65 62 75 67 20 4364 .ascii "debug for EZ-USB devices" |
66 6F 72 20 45 5A |
2D 55 53 42 20 64 |
65 76 69 63 65 73 |
001D 00 4365 .db 0x00 |
001E 4366 _configurationString: |
001E 28 75 6E 6B 6E 6F 4367 .ascii "(unknown)" |
77 6E 29 |
0027 00 4368 .db 0x00 |
0028 4369 _PadByte: |
0028 00 4370 .db #0x00 |
0029 4371 _DeviceDescriptor: |
0029 12 4372 .db #0x12 |
002A 01 4373 .db #0x01 |
002B 00 4374 .db #0x00 |
002C 02 4375 .db #0x02 |
002D FF 4376 .db #0xFF |
002E FF 4377 .db #0xFF |
002F FF 4378 .db #0xFF |
0030 40 4379 .db #0x40 |
0031 1A 4380 .db #0x1A |
0032 22 4381 .db #0x22 |
0033 00 4382 .db #0x00 |
0034 01 4383 .db #0x01 |
0035 00 4384 .db #0x00 |
0036 00 4385 .db #0x00 |
0037 01 4386 .db #0x01 |
0038 02 4387 .db #0x02 |
0039 03 4388 .db #0x03 |
003A 01 4389 .db #0x01 |
003B 4390 _DeviceQualifierDescriptor: |
003B 0A 4391 .db #0x0A |
003C 06 4392 .db #0x06 |
003D 00 4393 .db #0x00 |
003E 02 4394 .db #0x02 |
003F FF 4395 .db #0xFF |
0040 FF 4396 .db #0xFF |
0041 FF 4397 .db #0xFF |
0042 40 4398 .db #0x40 |
0043 01 4399 .db #0x01 |
0044 00 4400 .db #0x00 |
0045 4401 _HighSpeedConfigDescriptor: |
0045 09 4402 .db #0x09 |
0046 02 4403 .db #0x02 |
0047 20 4404 .db #0x20 |
0048 00 4405 .db #0x00 |
0049 01 4406 .db #0x01 |
004A 01 4407 .db #0x01 |
004B 04 4408 .db #0x04 |
004C C0 4409 .db #0xC0 |
004D 32 4410 .db #0x32 |
004E 09 4411 .db #0x09 |
004F 04 4412 .db #0x04 |
0050 00 4413 .db #0x00 |
0051 00 4414 .db #0x00 |
0052 02 4415 .db #0x02 |
0053 FF 4416 .db #0xFF |
0054 FF 4417 .db #0xFF |
0055 FF 4418 .db #0xFF |
0056 00 4419 .db #0x00 |
0057 07 4420 .db #0x07 |
0058 05 4421 .db #0x05 |
0059 81 4422 .db #0x81 |
005A 02 4423 .db #0x02 |
005B 00 4424 .db #0x00 |
005C 02 4425 .db #0x02 |
005D 00 4426 .db #0x00 |
005E 07 4427 .db #0x07 |
005F 05 4428 .db #0x05 |
0060 01 4429 .db #0x01 |
0061 02 4430 .db #0x02 |
0062 00 4431 .db #0x00 |
0063 02 4432 .db #0x02 |
0064 00 4433 .db #0x00 |
0065 4434 _HighSpeedConfigDescriptor_PadByte: |
0065 00 4435 .db #0x00 |
0066 00 4436 .db 0x00 |
0067 4437 _FullSpeedConfigDescriptor: |
0067 09 4438 .db #0x09 |
0068 02 4439 .db #0x02 |
0069 20 4440 .db #0x20 |
006A 00 4441 .db #0x00 |
006B 01 4442 .db #0x01 |
006C 01 4443 .db #0x01 |
006D 04 4444 .db #0x04 |
006E C0 4445 .db #0xC0 |
006F 32 4446 .db #0x32 |
0070 09 4447 .db #0x09 |
0071 04 4448 .db #0x04 |
0072 00 4449 .db #0x00 |
0073 00 4450 .db #0x00 |
0074 02 4451 .db #0x02 |
0075 FF 4452 .db #0xFF |
0076 FF 4453 .db #0xFF |
0077 FF 4454 .db #0xFF |
0078 00 4455 .db #0x00 |
0079 07 4456 .db #0x07 |
007A 05 4457 .db #0x05 |
007B 81 4458 .db #0x81 |
007C 02 4459 .db #0x02 |
007D 40 4460 .db #0x40 |
007E 00 4461 .db #0x00 |
007F 00 4462 .db #0x00 |
0080 07 4463 .db #0x07 |
0081 05 4464 .db #0x05 |
0082 01 4465 .db #0x01 |
0083 02 4466 .db #0x02 |
0084 40 4467 .db #0x40 |
0085 00 4468 .db #0x00 |
0086 00 4469 .db #0x00 |
0087 4470 _FullSpeedConfigDescriptor_PadByte: |
0087 00 4471 .db #0x00 |
0088 00 4472 .db 0x00 |
0089 4473 _EmptyStringDescriptor: |
0089 04 4474 .db #0x04 |
008A 03 4475 .db #0x03 |
008B 00 4476 .db #0x00 |
008C 00 4477 .db #0x00 |
4478 .area XINIT (CODE) |
0000 4479 __xinit__ep0_payload_remaining: |
0000 00 00 4480 .byte #0x00,#0x00 |
0002 4481 __xinit__ep0_payload_transfer: |
0002 00 4482 .db #0x00 |
0003 4483 __xinit__ep0_prev_setup_request: |
0003 FF 4484 .db #0xFF |
0004 4485 __xinit__ep0_vendor_cmd_setup: |
0004 00 4486 .db #0x00 |
0005 4487 __xinit__ISOFRAME_COUNTER: |
0005 00 00 4488 .byte #0x00,#0x00 |
0007 00 00 4489 .byte #0x00,#0x00 |
0009 00 00 4490 .byte #0x00,#0x00 |
000B 00 00 4491 .byte #0x00,#0x00 |
4492 .area CABS (ABS,CODE) |
/debug/Debug.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
debug/Debug.class
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: debug/debug.bat
===================================================================
--- debug/debug.bat (nonexistent)
+++ debug/debug.bat (revision 3)
@@ -0,0 +1,2 @@
+java -cp Debug.jar Debug
+pause
Index: debug/debug.sym
===================================================================
--- debug/debug.sym (nonexistent)
+++ debug/debug.sym (revision 3)
@@ -0,0 +1,969 @@
+ASxxxx Assembler V01.70 + NoICE + SDCC mods + Flat24 Feb-1999 (Intel 8051), page 1.
+
+Symbol Table
+
+ A 00D6
+ AC 00D6
+ ACC 00E0
+ ACC.0 00E0
+ ACC.1 00E1
+ ACC.2 00E2
+ ACC.3 00E3
+ ACC.4 00E4
+ ACC.5 00E5
+ ACC.6 00E6
+ ACC.7 00E7
+ B 00F0
+ B.0 00F0
+ B.1 00F1
+ B.2 00F2
+ B.3 00F3
+ B.4 00F4
+ B.5 00F5
+ B.6 00F6
+ B.7 00F7
+ CPRL2 00C8
+ CT2 00C9
+ CY 00D7
+ DPH 0083
+ DPL 0082
+ EA 00AF
+ 19 ENTRY 0000 R
+ ES 00AC
+ ET0 00A9
+ ET1 00AB
+ ET2 00AD
+ EX0 00A8
+ EX1 00AA
+ EXEN2 00CB
+ EXF2 00CE
+ F0 00D5
+ IE 00A8
+ IE.0 00A8
+ IE.1 00A9
+ IE.2 00AA
+ IE.3 00AB
+ IE.4 00AC
+ IE.5 00AD
+ IE.7 00AF
+ IE0 0089
+ IE1 008B
+ INT0 00B2
+ INT1 00B3
+ 4F INTVEC_DUMMY 01B8 R
+ IP 00B8
+ IP.0 00B8
+ IP.1 00B9
+ IP.2 00BA
+ IP.3 00BB
+ IP.4 00BC
+ IP.5 00BD
+ IT0 0088
+ IT1 008A
+ OV 00D2
+ P 00D0
+ P0 0080
+ P0.0 0080
+ P0.1 0081
+ P0.2 0082
+ P0.3 0083
+ P0.4 0084
+ P0.5 0085
+ P0.6 0086
+ P0.7 0087
+ P1 0090
+ P1.0 0090
+ P1.1 0091
+ P1.2 0092
+ P1.3 0093
+ P1.4 0094
+ P1.5 0095
+ P1.6 0096
+ P1.7 0097
+ P2 00A0
+ P2.0 00A0
+ P2.1 00A1
+ P2.2 00A2
+ P2.3 00A3
+ P2.4 00A4
+ P2.5 00A5
+ P2.6 00A6
+ P2.7 00A7
+ P3 00B0
+ P3.0 00B0
+ P3.1 00B1
+ P3.2 00B2
+ P3.3 00B3
+ P3.4 00B4
+ P3.5 00B5
+ P3.6 00B6
+ P3.7 00B7
+ PCON 0087
+ PS 00BC
+ PSW 00D0
+ PSW.0 00D0
+ PSW.1 00D1
+ PSW.2 00D2
+ PSW.3 00D3
+ PSW.4 00D4
+ PSW.5 00D5
+ PSW.6 00D6
+ PSW.7 00D7
+ PT0 00B9
+ PT1 00BB
+ PT2 00BD
+ PX0 00B8
+ PX1 00BA
+ RB8 009A
+ RCAP2H 00CB
+ RCAP2L 00CA
+ RCLK 00CD
+ REN 009C
+ RI 0098
+ RS0 00D3
+ RS1 00D4
+ RXD 00B0
+ SBUF 0099
+ SCON 0098
+ SCON.0 0098
+ SCON.1 0099
+ SCON.2 009A
+ SCON.3 009B
+ SCON.4 009C
+ SCON.5 009D
+ SCON.6 009E
+ SCON.7 009F
+ SM0 009F
+ SM1 009E
+ SM2 009D
+ SP 0081
+ T2CON 00C8
+ T2CON.0 00C8
+ T2CON.1 00C9
+ T2CON.2 00CA
+ T2CON.3 00CB
+ T2CON.4 00CC
+ T2CON.5 00CD
+ T2CON.6 00CE
+ T2CON.7 00CF
+ TB8 009B
+ TCLK 00CC
+ TCON 0088
+ TCON.0 0088
+ TCON.1 0089
+ TCON.2 008A
+ TCON.3 008B
+ TCON.4 008C
+ TCON.5 008D
+ TCON.6 008E
+ TCON.7 008F
+ TF0 008D
+ TF1 008F
+ TF2 00CF
+ TH0 008C
+ TH1 008D
+ TH2 00CD
+ TI 0099
+ TL0 008A
+ TL1 008B
+ TL2 00CC
+ TMOD 0089
+ TR0 008C
+ TR1 008E
+ TR2 00CA
+ TXD 00B1
+ _AC = 00D6 G
+ _ACC = 00E0 G
+ _ACC0 = 00E0 G
+ _ACC1 = 00E1 G
+ _ACC2 = 00E2 G
+ _ACC3 = 00E3 G
+ _ACC4 = 00E4 G
+ _ACC5 = 00E5 G
+ _ACC6 = 00E6 G
+ _ACC7 = 00E7 G
+ _AUTOPTRH1 = 009A G
+ _AUTOPTRH2 = 009D G
+ _AUTOPTRL1 = 009B G
+ _AUTOPTRL2 = 009E G
+ _AUTOPTRSETUP = 00AF G
+ _BPADDRH = E606 G
+ _BPADDRL = E607 G
+ _BREAKPT = E605 G
+ _BREG = 00F0 G
+ _BREG0 = 00F0 G
+ _BREG1 = 00F1 G
+ _BREG2 = 00F2 G
+ _BREG3 = 00F3 G
+ _BREG4 = 00F4 G
+ _BREG5 = 00F5 G
+ _BREG6 = 00F6 G
+ _BREG7 = 00F7 G
+ _CKCON = 008E G
+ _CLRERRCNT = E665 G
+ _CPRL2 = 00C8 G
+ _CPUCS = E600 G
+ _CT2 = 00C9 G
+ _CY = 00D7 G
+ _DPH0 = 0083 G
+ _DPH1 = 0085 G
+ _DPL0 = 0082 G
+ _DPL1 = 0084 G
+ _DPS = 0086 G
+ 59 _DeviceDescriptor 0029 GR
+ 59 _DeviceQualifierDescriptor 003B GR
+ _EA = 00AF G
+ _ECC1B0 = E62A G
+ _ECC1B1 = E62B G
+ _ECC1B2 = E62C G
+ _ECC2B0 = E62D G
+ _ECC2B1 = E62E G
+ _ECC2B2 = E62F G
+ _ECCCFG = E628 G
+ _ECCRESET = E629 G
+ _EI2C = 00E9 G
+ _EICON = 00D8 G
+ _EIE = 00E8 G
+ _EIEX4 = 00EA G
+ _EIEX5 = 00EB G
+ _EIEX6 = 00EC G
+ _EIP = 00F8 G
+ _EIPX4 = 00FA G
+ _EIPX5 = 00FB G
+ _EIPX6 = 00FC G
+ _EP01STAT = 00BA G
+ 17 _EP0ACK_ISR 0A2B GR
+ _EP0BCH = E68A G
+ _EP0BCL = E68B G
+ _EP0BUF = E740 G
+ _EP0CS = E6A0 G
+ 17 _EP0IN_ISR 0A41 R
+ 17 _EP0OUT_ISR 0ACA R
+ _EP1INBC = E68F G
+ _EP1INBUF = E7C0 G
+ _EP1INCFG = E611 G
+ _EP1INCS = E6A2 G
+ 17 _EP1IN_ISR 0B66 GR
+ _EP1OUTBC = E68D G
+ _EP1OUTBUF = E780 G
+ _EP1OUTCFG = E610 G
+ _EP1OUTCS = E6A1 G
+ 17 _EP1OUT_ISR 0B7C GR
+ _EP2468STAT = 00AA G
+ _EP24FIFOFLGS = 00AB G
+ _EP2AUTOINLENH = E620 G
+ _EP2AUTOINLENL = E621 G
+ _EP2BCH = E690 G
+ _EP2BCL = E691 G
+ _EP2CFG = E612 G
+ _EP2CS = E6A3 G
+ _EP2FIFOBCH = E6AB G
+ _EP2FIFOBCL = E6AC G
+ _EP2FIFOBUF = F000 G
+ _EP2FIFOCFG = E618 G
+ _EP2FIFOFLGS = E6A7 G
+ _EP2FIFOIE = E650 G
+ _EP2FIFOIRQ = E651 G
+ _EP2FIFOPFH = E630 G
+ _EP2FIFOPFL = E631 G
+ _EP2GPIFFLGSEL = E6D2 G
+ _EP2GPIFPFSTOP = E6D3 G
+ _EP2GPIFTRIG = E6D4 G
+ _EP2ISOINPKTS = E640 G
+ 17 _EP2_ISR 0B92 GR
+ _EP4AUTOINLENH = E622 G
+ _EP4AUTOINLENL = E623 G
+ _EP4BCH = E694 G
+ _EP4BCL = E695 G
+ _EP4CFG = E613 G
+ _EP4CS = E6A4 G
+ _EP4FIFOBCH = E6AD G
+ _EP4FIFOBCL = E6AE G
+ _EP4FIFOBUF = F400 G
+ _EP4FIFOCFG = E619 G
+ _EP4FIFOFLGS = E6A8 G
+ _EP4FIFOIE = E652 G
+ _EP4FIFOIRQ = E653 G
+ _EP4FIFOPFH = E632 G
+ _EP4FIFOPFL = E633 G
+ _EP4GPIFFLGSEL = E6DA G
+ _EP4GPIFPFSTOP = E6DB G
+ _EP4GPIFTRIG = E6DC G
+ _EP4ISOINPKTS = E641 G
+ 17 _EP4_ISR 0BA8 GR
+ _EP68FIFOFLGS = 00AC G
+ _EP6AUTOINLENH = E624 G
+ _EP6AUTOINLENL = E625 G
+ _EP6BCH = E698 G
+ _EP6BCL = E699 G
+ _EP6CFG = E614 G
+ _EP6CS = E6A5 G
+ _EP6FIFOBCH = E6AF G
+ _EP6FIFOBCL = E6B0 G
+ _EP6FIFOBUF = F800 G
+ _EP6FIFOCFG = E61A G
+ _EP6FIFOFLGS = E6A9 G
+ _EP6FIFOIE = E654 G
+ _EP6FIFOIRQ = E655 G
+ _EP6FIFOPFH = E634 G
+ _EP6FIFOPFL = E635 G
+ _EP6GPIFFLGSEL = E6E2 G
+ _EP6GPIFPFSTOP = E6E3 G
+ _EP6GPIFTRIG = E6E4 G
+ _EP6ISOINPKTS = E642 G
+ 17 _EP6_ISR 0BBE GR
+ _EP8AUTOINLENH = E626 G
+ _EP8AUTOINLENL = E627 G
+ _EP8BCH = E69C G
+ _EP8BCL = E69D G
+ _EP8CFG = E615 G
+ _EP8CS = E6A6 G
+ _EP8FIFOBCH = E6B1 G
+ _EP8FIFOBCL = E6B2 G
+ _EP8FIFOBUF = FC00 G
+ _EP8FIFOCFG = E61B G
+ _EP8FIFOFLGS = E6AA G
+ _EP8FIFOIE = E656 G
+ _EP8FIFOIRQ = E657 G
+ _EP8FIFOPFH = E636 G
+ _EP8FIFOPFL = E637 G
+ _EP8GPIFFLGSEL = E6EA G
+ _EP8GPIFPFSTOP = E6EB G
+ _EP8GPIFTRIG = E6EC G
+ _EP8ISOINPKTS = E643 G
+ 17 _EP8_ISR 0BD4 GR
+ _EPIE = E65E G
+ _EPIRQ = E65F G
+ _EPXCS = E6A3 G
+ _ERESI = 00DD G
+ _ERRCNTLIM = E664 G
+ _ES0 = 00AC G
+ _ES1 = 00AE G
+ _ET0 = 00A9 G
+ _ET1 = 00AB G
+ _ET2 = 00AD G
+ _EUSB = 00E8 G
+ _EX0 = 00A8 G
+ _EX1 = 00AA G
+ _EXEN2 = 00CB G
+ _EXF2 = 00CE G
+ _EXIF = 0091 G
+ _EXTAUTODAT1 = E67B G
+ _EXTAUTODAT2 = E67C G
+ 59 _EmptyStringDescriptor 0089 GR
+ _F0 = 00D5 G
+ _F1 = 00D1 G
+ _FIFOPINPOLAR = E609 G
+ _FIFORESET = E604 G
+ _FLOWEQ0CTL = E6C8 G
+ _FLOWEQ1CTL = E6C9 G
+ _FLOWHOLDOFF = E6CA G
+ _FLOWLOGIC = E6C7 G
+ _FLOWSTATE = E6C6 G
+ _FLOWSTB = E6CB G
+ _FLOWSTBEDGE = E6CC G
+ _FLOWSTBHPERIOD = E6CD G
+ _FNADDR = E687 G
+ _FW_VERSION = 0076 G
+ 59 _FullSpeedConfigDescriptor 0067 GR
+ 59 _FullSpeedConfigDescriptor_PadByte 0087 GR
+ _GPCR2 = E50D G
+ _GPIFABORT = E6F5 G
+ _GPIFADRH = E6C4 G
+ _GPIFADRL = E6C5 G
+ _GPIFCTLCFG = E6C3 G
+ _GPIFHOLDAMOUNT = E60C G
+ _GPIFIDLECS = E6C1 G
+ _GPIFIDLECTL = E6C2 G
+ _GPIFIE = E660 G
+ _GPIFIRQ = E661 G
+ _GPIFREADYCFG = E6F3 G
+ _GPIFREADYSTAT = E6F4 G
+ _GPIFSGLDATH = 00BD G
+ _GPIFSGLDATLNOX = 00BF G
+ _GPIFSGLDATLX = 00BE G
+ _GPIFTCB0 = E6D1 G
+ _GPIFTCB1 = E6D0 G
+ _GPIFTCB2 = E6CF G
+ _GPIFTCB3 = E6CE G
+ _GPIFTRIG = 00BB G
+ _GPIFWFSELECT = E6C0 G
+ _GPIF_WAVE0_DATA = E400 G
+ _GPIF_WAVE1_DATA = E420 G
+ _GPIF_WAVE2_DATA = E440 G
+ _GPIF_WAVE3_DATA = E460 G
+ _GPIF_WAVE_DATA = E400 G
+ 17 _HSGRANT_ISR 0A15 GR
+ 59 _HighSpeedConfigDescriptor 0045 GR
+ 59 _HighSpeedConfigDescriptor_PadByte 0065 GR
+ _I2CS = E678 G
+ _I2CTL = E67A G
+ _I2DAT = E679 G
+ _IBNIE = E658 G
+ _IBNIRQ = E659 G
+ _IE = 00A8 G
+ _IE0 = 0089 G
+ _IE1 = 008B G
+ _IFCONFIG = E601 G
+ _INPKTEND = E648 G
+ _INT0VEC_IE0 = 0003 G
+ _INT10VEC_GPIF = 0053 G
+ _INT11VEC_IE5 = 005B G
+ _INT12VEC_IE6 = 0063 G
+ _INT1VEC_T0 = 000B G
+ _INT2CLR = 00A1 G
+ _INT2IVEC = E666 G
+ _INT2VEC_IE1 = 0013 G
+ _INT3VEC_T1 = 001B G
+ _INT4CLR = 00A2 G
+ _INT4IVEC = E667 G
+ _INT4VEC_USART0 = 0023 G
+ _INT5VEC_T2 = 002B G
+ _INT6 = 00DB G
+ _INT6VEC_RESUME = 0033 G
+ _INT7VEC_USART1 = 003B G
+ _INT8VEC_USB = 0043 G
+ _INT9VEC_I2C = 004B G
+ _INTERFACE_CAPABILITIES = 0078 G
+ _INTERFACE_VERSION = 0077 G
+ _INTSETUP = E668 G
+ _INTVEC_EP0ACK = 0118 G
+ _INTVEC_EP0IN = 0120 G
+ _INTVEC_EP0OUT = 0124 G
+ _INTVEC_EP0PING = 0148 G
+ _INTVEC_EP1IN = 0128 G
+ _INTVEC_EP1OUT = 012C G
+ _INTVEC_EP1PING = 014C G
+ _INTVEC_EP2 = 0130 G
+ _INTVEC_EP2EF = 0190 G
+ _INTVEC_EP2FF = 01A0 G
+ _INTVEC_EP2ISOERR = 0170 G
+ _INTVEC_EP2PF = 0180 G
+ _INTVEC_EP2PING = 0150 G
+ _INTVEC_EP4 = 0134 G
+ _INTVEC_EP4EF = 0194 G
+ _INTVEC_EP4ISOERR = 0174 G
+ _INTVEC_EP4PF = 0184 G
+ _INTVEC_EP4PING = 0154 G
+ _INTVEC_EP6 = 0138 G
+ _INTVEC_EP6EF = 0198 G
+ _INTVEC_EP6FF = 01A8 G
+ _INTVEC_EP6ISOERR = 0178 G
+ _INTVEC_EP6PF = 0188 G
+ _INTVEC_EP6PING = 0158 G
+ _INTVEC_EP8 = 013C G
+ _INTVEC_EP8EF = 019C G
+ _INTVEC_EP8FF = 01AC G
+ _INTVEC_EP8ISOERR = 017C G
+ _INTVEC_EP8PF = 018C G
+ _INTVEC_EP8PING = 015C G
+ _INTVEC_ERRLIMIT = 0160 G
+ _INTVEC_GPIFDONE = 01B0 G
+ _INTVEC_GPIFWF = 01B4 G
+ _INTVEC_HISPEED = 0114 G
+ _INTVEC_IBN = 0140 G
+ _INTVEC_SOF = 0104 G
+ _INTVEC_SUDAV = 0100 G
+ _INTVEC_SUSPEND = 010C G
+ _INTVEC_SUTOK = 0108 G
+ _INTVEC_USBRESET = 0110 G
+ _IOA = 0080 G
+ _IOA0 = 0080 G
+ _IOA1 = 0081 G
+ _IOA2 = 0082 G
+ _IOA3 = 0083 G
+ _IOA4 = 0084 G
+ _IOA5 = 0085 G
+ _IOA6 = 0086 G
+ _IOA7 = 0087 G
+ _IOB = 0090 G
+ _IOB0 = 0090 G
+ _IOB1 = 0091 G
+ _IOB2 = 0092 G
+ _IOB3 = 0093 G
+ _IOB4 = 0094 G
+ _IOB5 = 0095 G
+ _IOB6 = 0096 G
+ _IOB7 = 0097 G
+ _IOC = 00A0 G
+ _IOC0 = 00A0 G
+ _IOC1 = 00A1 G
+ _IOC2 = 00A2 G
+ _IOC3 = 00A3 G
+ _IOC4 = 00A4 G
+ _IOC5 = 00A5 G
+ _IOC6 = 00A6 G
+ _IOC7 = 00A7 G
+ _IOD = 00B0 G
+ _IOD0 = 00B0 G
+ _IOD1 = 00B1 G
+ _IOD2 = 00B2 G
+ _IOD3 = 00B3 G
+ _IOD4 = 00B4 G
+ _IOD5 = 00B5 G
+ _IOD6 = 00B6 G
+ _IOD7 = 00B7 G
+ _IOE = 00B1 G
+ _IP = 00B8 G
+ D _ISOFRAME_COUNTER 0005 GR
+ _IT0 = 0088 G
+ _IT1 = 008A G
+ 17 _MEM_COPY1_int 0048 GR
+ _MICROFRAME = E686 G
+ _MODULE_RESERVED = 007E G
+ _MPAGE = 0092 G
+ _NAKIE = E65A G
+ _NAKIRQ = E65B G
+ _OEA = 00B2 G
+ _OEB = 00B3 G
+ _OEC = 00B4 G
+ _OED = 00B5 G
+ _OEE = 00B6 G
+ _OUTPKTEND = E649 G
+ _OV = 00D2 G
+ _PCON = 0087 G
+ _PF = 00D0 G
+ _PI2C = 00F9 G
+ _PINFLAGSAB = E602 G
+ _PINFLAGSCD = E603 G
+ _PORTACFG = E670 G
+ _PORTCCFG = E671 G
+ _PORTECFG = E672 G
+ _PRODUCT_ID = 0072 G
+ _PS0 = 00BC G
+ _PS1 = 00BE G
+ _PSW = 00D0 G
+ _PT0 = 00B9 G
+ _PT1 = 00BB G
+ _PT2 = 00BD G
+ _PUSB = 00F8 G
+ _PX0 = 00B8 G
+ _PX1 = 00BA G
+ 59 _PadByte 0028 GR
+ _RB8_0 = 009A G
+ _RB8_1 = 00C2 G
+ _RCAP2H = 00CB G
+ _RCAP2L = 00CA G
+ _RCLK = 00CD G
+ _REN_0 = 009C G
+ _REN_1 = 00C4 G
+ _RESI = 00DC G
+ _REVCTL = E60B G
+ _REVID = E60A G
+ _RI_0 = 0098 G
+ _RI_1 = 00C0 G
+ _RS0 = 00D3 G
+ _RS1 = 00D4 G
+ _SBUF0 = 0099 G
+ _SBUF1 = 00C1 G
+ _SCON0 = 0098 G
+ _SCON1 = 00C0 G
+ _SETUPDAT = E6B8 G
+ _SM0_0 = 009F G
+ _SM0_1 = 00C7 G
+ _SM1_0 = 009E G
+ _SM1_1 = 00C6 G
+ _SM2_0 = 009D G
+ _SM2_1 = 00C5 G
+ _SMOD1 = 00DF G
+ _SN_STRING = 008A G
+ 17 _SOF_ISR 09BD GR
+ _SP = 0081 G
+ 17 _SUDAV_ISR 04BF R
+ _SUDPTRCTL = E6B5 G
+ _SUDPTRH = E6B3 G
+ _SUDPTRL = E6B4 G
+ _SUSPEND = E681 G
+ 17 _SUSP_ISR 09E9 GR
+ 17 _SUTOK_ISR 09D3 GR
+ _T2CON = 00C8 G
+ _TB8_0 = 009B G
+ _TB8_1 = 00C3 G
+ _TCLK = 00CC G
+ _TCON = 0088 G
+ _TF0 = 008D G
+ _TF1 = 008F G
+ _TF2 = 00CF G
+ _TH0 = 008C G
+ _TH1 = 008D G
+ _TH2 = 00CD G
+ _TI_0 = 0099 G
+ _TI_1 = 00C1 G
+ _TL0 = 008A G
+ _TL1 = 008B G
+ _TL2 = 00CC G
+ _TMOD = 0089 G
+ _TOGCTL = E683 G
+ _TR0 = 008C G
+ _TR1 = 008E G
+ _TR2 = 00CA G
+ _UART230 = E608 G
+ _UDMACRCH = E67D G
+ _UDMACRCL = E67E G
+ _UDMACRCQUALIFIER = E67F G
+ 17 _URES_ISR 09FF GR
+ _USBCS = E680 G
+ _USBERRIE = E662 G
+ _USBERRIRQ = E663 G
+ _USBFRAMEH = E684 G
+ _USBFRAMEL = E685 G
+ _USBIE = E65C G
+ _USBIRQ = E65D G
+ _WAKEUPCS = E682 G
+ _XAUTODAT1 = E67B G
+ _XAUTODAT2 = E67C G
+ _XGPIFSGLDATH = E6F0 G
+ _XGPIFSGLDATLNOX = E6F2 G
+ _XGPIFSGLDATLX = E6F1 G
+ _ZTEXID = 006E G
+ _ZTEX_DESCRIPTOR = 006C G
+ _ZTEX_DESCRIPTOR_VERSION = 006D G
+ __XPAGE = 0092 G
+ E __interrupt_vect 0000 R
+ __mcs51_genRAMCLEAR **** GX
+ __mcs51_genXINIT **** GX
+ __mcs51_genXRAMCLEAR **** GX
+ __sdcc_gsinit_startup **** GX
+ E __sdcc_program_startup 0003 GR
+ 6 __start__stack 0000 GR
+ 5A __xinit__ISOFRAME_COUNTER 0005 R
+ 5A __xinit__ep0_payload_remaining 0000 R
+ 5A __xinit__ep0_payload_transfer 0002 R
+ 5A __xinit__ep0_prev_setup_request 0003 R
+ 5A __xinit__ep0_vendor_cmd_setup 0004 R
+ 17 _abscode_identity 03ED GR
+ 17 _abscode_intvec 0000 GR
+ _bRequest = E6B9 G
+ _bmRequestType = E6B8 G
+ 59 _configurationString 001E GR
+ 17 _debug_add_msg 0351 GR
+ B _debug_counter 0005 GR
+ 17 _debug_init 0395 GR
+ B _debug_msg_buf 006B GR
+ B _debug_msg_size 0008 GR
+ B _debug_read_addr 006E GR
+ 17 _debug_read_ep0 03B3 GR
+ B _debug_stack 0009 GR
+ B _debug_stack_ptr 0069 GR
+ B _debug_stack_size 0007 GR
+ B _eeprom_addr 0000 GR
+ 17 _eeprom_read 0134 GR
+ 4 _eeprom_read_PARM_2 0001 GR
+ 4 _eeprom_read_PARM_3 0003 GR
+ 17 _eeprom_read_ep0 02F0 GR
+ 17 _eeprom_select 00E0 GR
+ 4 _eeprom_select_PARM_2 0000 GR
+ 17 _eeprom_write 023A GR
+ 4 _eeprom_write_PARM_2 0004 GR
+ 4 _eeprom_write_PARM_3 0006 GR
+ B _eeprom_write_bytes 0002 GR
+ B _eeprom_write_checksum 0004 GR
+ 17 _eeprom_write_ep0 0324 GR
+ D _ep0_payload_remaining 0000 GR
+ D _ep0_payload_transfer 0002 GR
+ 17 _ep0_payload_update 045E R
+ D _ep0_prev_setup_request 0003 GR
+ D _ep0_vendor_cmd_setup 0004 GR
+ 17 _ep0_vendor_cmd_su 048B R
+ 17 _i2c_waitRead 0083 GR
+ 17 _i2c_waitStart 00AC GR
+ 17 _i2c_waitStop 00C6 GR
+ 17 _i2c_waitWrite 0056 GR
+ 17 _init_USB 0BEA GR
+ 17 _main 0DD2 GR
+ 59 _manufacturerString 0000 GR
+ 59 _productString 0005 GR
+ 17 _resetToggleData 03ED R
+ 17 _sendStringDescriptor 040B R
+ 5 _sendStringDescriptor_PARM_2 0000 GR
+ 5 _sendStringDescriptor_PARM_3 0001 GR
+ 17 _uwait 0024 GR
+ _wIndexH = E6BD G
+ _wIndexL = E6BC G
+ _wLengthH = E6BF G
+ _wLengthL = E6BE G
+ _wValueH = E6BB G
+ _wValueL = E6BA G
+ 17 _wait 0000 GR
+ a 00D6
+ ac 00D6
+ acc 00E0
+ acc.0 00E0
+ acc.1 00E1
+ acc.2 00E2
+ acc.3 00E3
+ acc.4 00E4
+ acc.5 00E5
+ acc.6 00E6
+ acc.7 00E7
+ ar0 = 0000
+ ar1 = 0001
+ ar2 = 0002
+ ar3 = 0003
+ ar4 = 0004
+ ar5 = 0005
+ ar6 = 0006
+ ar7 = 0007
+ b 00F0
+ b.0 00F0
+ b.1 00F1
+ b.2 00F2
+ b.3 00F3
+ b.4 00F4
+ b.5 00F5
+ b.6 00F6
+ b.7 00F7
+ 3 b0 = 8000 R
+ 3 b1 = 8100 R
+ 3 b2 = 8200 R
+ 3 b3 = 8300 R
+ 3 b4 = 8400 R
+ 3 b5 = 8500 R
+ 3 b6 = 8600 R
+ 3 b7 = 8700 R
+ 3 bits 0000 R
+ cprl2 00C8
+ ct2 00C9
+ cy 00D7
+ dph 0083
+ dpl 0082
+ ea 00AF
+ es 00AC
+ et0 00A9
+ et1 00AB
+ et2 00AD
+ ex0 00A8
+ ex1 00AA
+ exen2 00CB
+ exf2 00CE
+ f0 00D5
+ ie 00A8
+ ie.0 00A8
+ ie.1 00A9
+ ie.2 00AA
+ ie.3 00AB
+ ie.4 00AC
+ ie.5 00AD
+ ie.7 00AF
+ ie0 0089
+ ie1 008B
+ int0 00B2
+ int1 00B3
+ ip 00B8
+ ip.0 00B8
+ ip.1 00B9
+ ip.2 00BA
+ ip.3 00BB
+ ip.4 00BC
+ ip.5 00BD
+ it0 0088
+ it1 008A
+ ov 00D2
+ p 00D0
+ p0 0080
+ p0.0 0080
+ p0.1 0081
+ p0.2 0082
+ p0.3 0083
+ p0.4 0084
+ p0.5 0085
+ p0.6 0086
+ p0.7 0087
+ p1 0090
+ p1.0 0090
+ p1.1 0091
+ p1.2 0092
+ p1.3 0093
+ p1.4 0094
+ p1.5 0095
+ p1.6 0096
+ p1.7 0097
+ p2 00A0
+ p2.0 00A0
+ p2.1 00A1
+ p2.2 00A2
+ p2.3 00A3
+ p2.4 00A4
+ p2.5 00A5
+ p2.6 00A6
+ p2.7 00A7
+ p3 00B0
+ p3.0 00B0
+ p3.1 00B1
+ p3.2 00B2
+ p3.3 00B3
+ p3.4 00B4
+ p3.5 00B5
+ p3.6 00B6
+ p3.7 00B7
+ pcon 0087
+ ps 00BC
+ psw 00D0
+ psw.0 00D0
+ psw.1 00D1
+ psw.2 00D2
+ psw.3 00D3
+ psw.4 00D4
+ psw.5 00D5
+ psw.6 00D6
+ psw.7 00D7
+ pt0 00B9
+ pt1 00BB
+ pt2 00BD
+ px0 00B8
+ px1 00BA
+ rb8 009A
+ rcap2h 00CB
+ rcap2l 00CA
+ rclk 00CD
+ ren 009C
+ ri 0098
+ rs0 00D3
+ rs1 00D4
+ rxd 00B0
+ sbuf 0099
+ scon 0098
+ scon.0 0098
+ scon.1 0099
+ scon.2 009A
+ scon.3 009B
+ scon.4 009C
+ scon.5 009D
+ scon.6 009E
+ scon.7 009F
+ sm0 009F
+ sm1 009E
+ sm2 009D
+ sp 0081
+ t2con 00C8
+ t2con.0 00C8
+ t2con.1 00C9
+ t2con.2 00CA
+ t2con.3 00CB
+ t2con.4 00CC
+ t2con.5 00CD
+ t2con.6 00CE
+ t2con.7 00CF
+ tb8 009B
+ tclk 00CC
+ tcon 0088
+ tcon.0 0088
+ tcon.1 0089
+ tcon.2 008A
+ tcon.3 008B
+ tcon.4 008C
+ tcon.5 008D
+ tcon.6 008E
+ tcon.7 008F
+ tf0 008D
+ tf1 008F
+ tf2 00CF
+ th0 008C
+ th1 008D
+ th2 00CD
+ ti 0099
+ tl0 008A
+ tl1 008B
+ tl2 00CC
+ tmod 0089
+ tr0 008C
+ tr1 008E
+ tr2 00CA
+ txd 00B1
+
+ASxxxx Assembler V01.70 + NoICE + SDCC mods + Flat24 Feb-1999 (Intel 8051), page 2.
+
+Area Table
+
+ 0 _CODE size 0 flags 0
+ 1 RSEG size 0 flags 0
+ 2 REG_BANK_0 size 8 flags 4
+ 3 BIT_BANK size 1 flags 4
+ 4 DSEG size 7 flags 0
+ 5 OSEG size 2 flags 4
+ 6 SSEG size 1 flags 0
+ 7 ISEG size 0 flags 0
+ 8 IABS size 0 flags 8
+ 9 BSEG size 0 flags 80
+ A PSEG size 0 flags 50
+ B XSEG size 70 flags 40
+ C XABS size 0 flags 48
+ D XISEG size D flags 40
+ E HOME size 8 flags 20
+ F GSINIT0 size 0 flags 20
+ 10 GSINIT1 size 0 flags 20
+ 11 GSINIT2 size 0 flags 20
+ 12 GSINIT3 size 0 flags 20
+ 13 GSINIT4 size 0 flags 20
+ 14 GSINIT5 size 0 flags 20
+ 15 GSINIT size 0 flags 20
+ 16 GSFINAL size 3 flags 20
+ 17 CSEG size E23 flags 20
+ 18 ABSCODE size 0 flags 28
+ 19 ABSCODE0 size 3 flags 28
+ 1A ABSCODE3 size 1 flags 28
+ 1B ABSCODEb size 1 flags 28
+ 1C ABSCODE13 size 1 flags 28
+ 1D ABSCODE1b size 1 flags 28
+ 1E ABSCODE23 size 1 flags 28
+ 1F ABSCODE2b size 1 flags 28
+ 20 ABSCODE33 size 1 flags 28
+ 21 ABSCODE3b size 1 flags 28
+ 22 ABSCODE43 size 1 flags 28
+ 23 ABSCODE4b size 1 flags 28
+ 24 ABSCODE53 size 1 flags 28
+ 25 ABSCODE5b size 1 flags 28
+ 26 ABSCODE63 size 1 flags 28
+ 27 ABSCODE100 size 1 flags 28
+ 28 ABSCODE104 size 1 flags 28
+ 29 ABSCODE108 size 1 flags 28
+ 2A ABSCODE10c size 1 flags 28
+ 2B ABSCODE110 size 1 flags 28
+ 2C ABSCODE114 size 1 flags 28
+ 2D ABSCODE118 size 1 flags 28
+ 2E ABSCODE120 size 1 flags 28
+ 2F ABSCODE124 size 1 flags 28
+ 30 ABSCODE128 size 1 flags 28
+ 31 ABSCODE12c size 1 flags 28
+ 32 ABSCODE130 size 1 flags 28
+ 33 ABSCODE134 size 1 flags 28
+ 34 ABSCODE138 size 1 flags 28
+ 35 ABSCODE13c size 1 flags 28
+ 36 ABSCODE140 size 1 flags 28
+ 37 ABSCODE148 size 1 flags 28
+ 38 ABSCODE14c size 1 flags 28
+ 39 ABSCODE150 size 1 flags 28
+ 3A ABSCODE154 size 1 flags 28
+ 3B ABSCODE158 size 1 flags 28
+ 3C ABSCODE15c size 1 flags 28
+ 3D ABSCODE160 size 1 flags 28
+ 3E ABSCODE170 size 1 flags 28
+ 3F ABSCODE174 size 1 flags 28
+ 40 ABSCODE178 size 1 flags 28
+ 41 ABSCODE17c size 1 flags 28
+ 42 ABSCODE180 size 1 flags 28
+ 43 ABSCODE184 size 1 flags 28
+ 44 ABSCODE188 size 1 flags 28
+ 45 ABSCODE18c size 1 flags 28
+ 46 ABSCODE190 size 1 flags 28
+ 47 ABSCODE194 size 1 flags 28
+ 48 ABSCODE198 size 1 flags 28
+ 49 ABSCODE19c size 1 flags 28
+ 4A ABSCODE1a0 size 1 flags 28
+ 4B ABSCODE1a8 size 1 flags 28
+ 4C ABSCODE1ac size 1 flags 28
+ 4D ABSCODE1b0 size 1 flags 28
+ 4E ABSCODE1b4 size 1 flags 28
+ 4F ABSCODE1b8 size 1 flags 28
+ 50 ABSCODE6c size 1 flags 28
+ 51 ABSCODE6d size 1 flags 28
+ 52 ABSCODE6e size 4 flags 28
+ 53 ABSCODE72 size 4 flags 28
+ 54 ABSCODE76 size 1 flags 28
+ 55 ABSCODE77 size 1 flags 28
+ 56 ABSCODE78 size 6 flags 28
+ 57 ABSCODE7e size C flags 28
+ 58 ABSCODE8a size A flags 28
+ 59 CONST size 8D flags 20
+ 5A XINIT size D flags 20
+ 5B CABS size 0 flags 28
Index: debug/debug.rst
===================================================================
--- debug/debug.rst (nonexistent)
+++ debug/debug.rst (revision 3)
@@ -0,0 +1,4497 @@
+ 1 ;--------------------------------------------------------
+ 2 ; File Created by SDCC : free open source ANSI-C Compiler
+ 3 ; Version 2.8.0 #5117 (May 15 2008) (UNIX)
+ 4 ; This file was generated Wed Sep 8 20:23:26 2010
+ 5 ;--------------------------------------------------------
+ 6 .module debug_tmp
+ 7 .optsdcc -mmcs51 --model-small
+ 8
+ 9 ;--------------------------------------------------------
+ 10 ; Public variables in this module
+ 11 ;--------------------------------------------------------
+ 12 .globl _sendStringDescriptor_PARM_3
+ 13 .globl _sendStringDescriptor_PARM_2
+ 14 .globl _EmptyStringDescriptor
+ 15 .globl _FullSpeedConfigDescriptor_PadByte
+ 16 .globl _FullSpeedConfigDescriptor
+ 17 .globl _HighSpeedConfigDescriptor_PadByte
+ 18 .globl _HighSpeedConfigDescriptor
+ 19 .globl _DeviceQualifierDescriptor
+ 20 .globl _DeviceDescriptor
+ 21 .globl _PadByte
+ 22 .globl _configurationString
+ 23 .globl _productString
+ 24 .globl _manufacturerString
+ 25 .globl _main
+ 26 .globl _init_USB
+ 27 .globl _EP8_ISR
+ 28 .globl _EP6_ISR
+ 29 .globl _EP4_ISR
+ 30 .globl _EP2_ISR
+ 31 .globl _EP1OUT_ISR
+ 32 .globl _EP1IN_ISR
+ 33 .globl _EP0ACK_ISR
+ 34 .globl _HSGRANT_ISR
+ 35 .globl _URES_ISR
+ 36 .globl _SUSP_ISR
+ 37 .globl _SUTOK_ISR
+ 38 .globl _SOF_ISR
+ 39 .globl _abscode_identity
+ 40 .globl _debug_read_ep0
+ 41 .globl _debug_init
+ 42 .globl _debug_add_msg
+ 43 .globl _eeprom_write_ep0
+ 44 .globl _eeprom_read_ep0
+ 45 .globl _eeprom_write
+ 46 .globl _eeprom_read
+ 47 .globl _eeprom_select
+ 48 .globl _i2c_waitStop
+ 49 .globl _i2c_waitStart
+ 50 .globl _i2c_waitRead
+ 51 .globl _i2c_waitWrite
+ 52 .globl _MEM_COPY1_int
+ 53 .globl _uwait
+ 54 .globl _wait
+ 55 .globl _abscode_intvec
+ 56 .globl _EIPX6
+ 57 .globl _EIPX5
+ 58 .globl _EIPX4
+ 59 .globl _PI2C
+ 60 .globl _PUSB
+ 61 .globl _BREG7
+ 62 .globl _BREG6
+ 63 .globl _BREG5
+ 64 .globl _BREG4
+ 65 .globl _BREG3
+ 66 .globl _BREG2
+ 67 .globl _BREG1
+ 68 .globl _BREG0
+ 69 .globl _EIEX6
+ 70 .globl _EIEX5
+ 71 .globl _EIEX4
+ 72 .globl _EI2C
+ 73 .globl _EUSB
+ 74 .globl _ACC7
+ 75 .globl _ACC6
+ 76 .globl _ACC5
+ 77 .globl _ACC4
+ 78 .globl _ACC3
+ 79 .globl _ACC2
+ 80 .globl _ACC1
+ 81 .globl _ACC0
+ 82 .globl _SMOD1
+ 83 .globl _ERESI
+ 84 .globl _RESI
+ 85 .globl _INT6
+ 86 .globl _CY
+ 87 .globl _AC
+ 88 .globl _F0
+ 89 .globl _RS1
+ 90 .globl _RS0
+ 91 .globl _OV
+ 92 .globl _F1
+ 93 .globl _PF
+ 94 .globl _TF2
+ 95 .globl _EXF2
+ 96 .globl _RCLK
+ 97 .globl _TCLK
+ 98 .globl _EXEN2
+ 99 .globl _TR2
+ 100 .globl _CT2
+ 101 .globl _CPRL2
+ 102 .globl _SM0_1
+ 103 .globl _SM1_1
+ 104 .globl _SM2_1
+ 105 .globl _REN_1
+ 106 .globl _TB8_1
+ 107 .globl _RB8_1
+ 108 .globl _TI_1
+ 109 .globl _RI_1
+ 110 .globl _PS1
+ 111 .globl _PT2
+ 112 .globl _PS0
+ 113 .globl _PT1
+ 114 .globl _PX1
+ 115 .globl _PT0
+ 116 .globl _PX0
+ 117 .globl _IOD7
+ 118 .globl _IOD6
+ 119 .globl _IOD5
+ 120 .globl _IOD4
+ 121 .globl _IOD3
+ 122 .globl _IOD2
+ 123 .globl _IOD1
+ 124 .globl _IOD0
+ 125 .globl _EA
+ 126 .globl _ES1
+ 127 .globl _ET2
+ 128 .globl _ES0
+ 129 .globl _ET1
+ 130 .globl _EX1
+ 131 .globl _ET0
+ 132 .globl _EX0
+ 133 .globl _IOC7
+ 134 .globl _IOC6
+ 135 .globl _IOC5
+ 136 .globl _IOC4
+ 137 .globl _IOC3
+ 138 .globl _IOC2
+ 139 .globl _IOC1
+ 140 .globl _IOC0
+ 141 .globl _SM0_0
+ 142 .globl _SM1_0
+ 143 .globl _SM2_0
+ 144 .globl _REN_0
+ 145 .globl _TB8_0
+ 146 .globl _RB8_0
+ 147 .globl _TI_0
+ 148 .globl _RI_0
+ 149 .globl _IOB7
+ 150 .globl _IOB6
+ 151 .globl _IOB5
+ 152 .globl _IOB4
+ 153 .globl _IOB3
+ 154 .globl _IOB2
+ 155 .globl _IOB1
+ 156 .globl _IOB0
+ 157 .globl _TF1
+ 158 .globl _TR1
+ 159 .globl _TF0
+ 160 .globl _TR0
+ 161 .globl _IE1
+ 162 .globl _IT1
+ 163 .globl _IE0
+ 164 .globl _IT0
+ 165 .globl _IOA7
+ 166 .globl _IOA6
+ 167 .globl _IOA5
+ 168 .globl _IOA4
+ 169 .globl _IOA3
+ 170 .globl _IOA2
+ 171 .globl _IOA1
+ 172 .globl _IOA0
+ 173 .globl _EIP
+ 174 .globl _BREG
+ 175 .globl _EIE
+ 176 .globl _ACC
+ 177 .globl _EICON
+ 178 .globl _PSW
+ 179 .globl _TH2
+ 180 .globl _TL2
+ 181 .globl _RCAP2H
+ 182 .globl _RCAP2L
+ 183 .globl _T2CON
+ 184 .globl _SBUF1
+ 185 .globl _SCON1
+ 186 .globl _GPIFSGLDATLNOX
+ 187 .globl _GPIFSGLDATLX
+ 188 .globl _GPIFSGLDATH
+ 189 .globl _GPIFTRIG
+ 190 .globl _EP01STAT
+ 191 .globl _IP
+ 192 .globl _OEE
+ 193 .globl _OED
+ 194 .globl _OEC
+ 195 .globl _OEB
+ 196 .globl _OEA
+ 197 .globl _IOE
+ 198 .globl _IOD
+ 199 .globl _AUTOPTRSETUP
+ 200 .globl _EP68FIFOFLGS
+ 201 .globl _EP24FIFOFLGS
+ 202 .globl _EP2468STAT
+ 203 .globl _IE
+ 204 .globl _INT4CLR
+ 205 .globl _INT2CLR
+ 206 .globl _IOC
+ 207 .globl _AUTOPTRL2
+ 208 .globl _AUTOPTRH2
+ 209 .globl _AUTOPTRL1
+ 210 .globl _AUTOPTRH1
+ 211 .globl _SBUF0
+ 212 .globl _SCON0
+ 213 .globl __XPAGE
+ 214 .globl _MPAGE
+ 215 .globl _EXIF
+ 216 .globl _IOB
+ 217 .globl _CKCON
+ 218 .globl _TH1
+ 219 .globl _TH0
+ 220 .globl _TL1
+ 221 .globl _TL0
+ 222 .globl _TMOD
+ 223 .globl _TCON
+ 224 .globl _PCON
+ 225 .globl _DPS
+ 226 .globl _DPH1
+ 227 .globl _DPL1
+ 228 .globl _DPH0
+ 229 .globl _DPL0
+ 230 .globl _SP
+ 231 .globl _IOA
+ 232 .globl _ISOFRAME_COUNTER
+ 233 .globl _ep0_vendor_cmd_setup
+ 234 .globl _ep0_prev_setup_request
+ 235 .globl _ep0_payload_transfer
+ 236 .globl _ep0_payload_remaining
+ 237 .globl _SN_STRING
+ 238 .globl _MODULE_RESERVED
+ 239 .globl _INTERFACE_CAPABILITIES
+ 240 .globl _INTERFACE_VERSION
+ 241 .globl _FW_VERSION
+ 242 .globl _PRODUCT_ID
+ 243 .globl _ZTEXID
+ 244 .globl _ZTEX_DESCRIPTOR_VERSION
+ 245 .globl _ZTEX_DESCRIPTOR
+ 246 .globl _debug_read_addr
+ 247 .globl _debug_msg_buf
+ 248 .globl _debug_stack_ptr
+ 249 .globl _debug_stack
+ 250 .globl _debug_msg_size
+ 251 .globl _debug_stack_size
+ 252 .globl _debug_counter
+ 253 .globl _eeprom_write_checksum
+ 254 .globl _eeprom_write_bytes
+ 255 .globl _eeprom_addr
+ 256 .globl _INTVEC_GPIFWF
+ 257 .globl _INTVEC_GPIFDONE
+ 258 .globl _INTVEC_EP8FF
+ 259 .globl _INTVEC_EP6FF
+ 260 .globl _INTVEC_EP2FF
+ 261 .globl _INTVEC_EP8EF
+ 262 .globl _INTVEC_EP6EF
+ 263 .globl _INTVEC_EP4EF
+ 264 .globl _INTVEC_EP2EF
+ 265 .globl _INTVEC_EP8PF
+ 266 .globl _INTVEC_EP6PF
+ 267 .globl _INTVEC_EP4PF
+ 268 .globl _INTVEC_EP2PF
+ 269 .globl _INTVEC_EP8ISOERR
+ 270 .globl _INTVEC_EP6ISOERR
+ 271 .globl _INTVEC_EP4ISOERR
+ 272 .globl _INTVEC_EP2ISOERR
+ 273 .globl _INTVEC_ERRLIMIT
+ 274 .globl _INTVEC_EP8PING
+ 275 .globl _INTVEC_EP6PING
+ 276 .globl _INTVEC_EP4PING
+ 277 .globl _INTVEC_EP2PING
+ 278 .globl _INTVEC_EP1PING
+ 279 .globl _INTVEC_EP0PING
+ 280 .globl _INTVEC_IBN
+ 281 .globl _INTVEC_EP8
+ 282 .globl _INTVEC_EP6
+ 283 .globl _INTVEC_EP4
+ 284 .globl _INTVEC_EP2
+ 285 .globl _INTVEC_EP1OUT
+ 286 .globl _INTVEC_EP1IN
+ 287 .globl _INTVEC_EP0OUT
+ 288 .globl _INTVEC_EP0IN
+ 289 .globl _INTVEC_EP0ACK
+ 290 .globl _INTVEC_HISPEED
+ 291 .globl _INTVEC_USBRESET
+ 292 .globl _INTVEC_SUSPEND
+ 293 .globl _INTVEC_SUTOK
+ 294 .globl _INTVEC_SOF
+ 295 .globl _INTVEC_SUDAV
+ 296 .globl _INT12VEC_IE6
+ 297 .globl _INT11VEC_IE5
+ 298 .globl _INT10VEC_GPIF
+ 299 .globl _INT9VEC_I2C
+ 300 .globl _INT8VEC_USB
+ 301 .globl _INT7VEC_USART1
+ 302 .globl _INT6VEC_RESUME
+ 303 .globl _INT5VEC_T2
+ 304 .globl _INT4VEC_USART0
+ 305 .globl _INT3VEC_T1
+ 306 .globl _INT2VEC_IE1
+ 307 .globl _INT1VEC_T0
+ 308 .globl _INT0VEC_IE0
+ 309 .globl _EP8FIFOBUF
+ 310 .globl _EP6FIFOBUF
+ 311 .globl _EP4FIFOBUF
+ 312 .globl _EP2FIFOBUF
+ 313 .globl _EP1INBUF
+ 314 .globl _EP1OUTBUF
+ 315 .globl _EP0BUF
+ 316 .globl _GPIFABORT
+ 317 .globl _GPIFREADYSTAT
+ 318 .globl _GPIFREADYCFG
+ 319 .globl _XGPIFSGLDATLNOX
+ 320 .globl _XGPIFSGLDATLX
+ 321 .globl _XGPIFSGLDATH
+ 322 .globl _EP8GPIFTRIG
+ 323 .globl _EP8GPIFPFSTOP
+ 324 .globl _EP8GPIFFLGSEL
+ 325 .globl _EP6GPIFTRIG
+ 326 .globl _EP6GPIFPFSTOP
+ 327 .globl _EP6GPIFFLGSEL
+ 328 .globl _EP4GPIFTRIG
+ 329 .globl _EP4GPIFPFSTOP
+ 330 .globl _EP4GPIFFLGSEL
+ 331 .globl _EP2GPIFTRIG
+ 332 .globl _EP2GPIFPFSTOP
+ 333 .globl _EP2GPIFFLGSEL
+ 334 .globl _GPIFTCB0
+ 335 .globl _GPIFTCB1
+ 336 .globl _GPIFTCB2
+ 337 .globl _GPIFTCB3
+ 338 .globl _FLOWSTBHPERIOD
+ 339 .globl _FLOWSTBEDGE
+ 340 .globl _FLOWSTB
+ 341 .globl _FLOWHOLDOFF
+ 342 .globl _FLOWEQ1CTL
+ 343 .globl _FLOWEQ0CTL
+ 344 .globl _FLOWLOGIC
+ 345 .globl _FLOWSTATE
+ 346 .globl _GPIFADRL
+ 347 .globl _GPIFADRH
+ 348 .globl _GPIFCTLCFG
+ 349 .globl _GPIFIDLECTL
+ 350 .globl _GPIFIDLECS
+ 351 .globl _GPIFWFSELECT
+ 352 .globl _wLengthH
+ 353 .globl _wLengthL
+ 354 .globl _wIndexH
+ 355 .globl _wIndexL
+ 356 .globl _wValueH
+ 357 .globl _wValueL
+ 358 .globl _bRequest
+ 359 .globl _bmRequestType
+ 360 .globl _SETUPDAT
+ 361 .globl _SUDPTRCTL
+ 362 .globl _SUDPTRL
+ 363 .globl _SUDPTRH
+ 364 .globl _EP8FIFOBCL
+ 365 .globl _EP8FIFOBCH
+ 366 .globl _EP6FIFOBCL
+ 367 .globl _EP6FIFOBCH
+ 368 .globl _EP4FIFOBCL
+ 369 .globl _EP4FIFOBCH
+ 370 .globl _EP2FIFOBCL
+ 371 .globl _EP2FIFOBCH
+ 372 .globl _EP8FIFOFLGS
+ 373 .globl _EP6FIFOFLGS
+ 374 .globl _EP4FIFOFLGS
+ 375 .globl _EP2FIFOFLGS
+ 376 .globl _EP8CS
+ 377 .globl _EP6CS
+ 378 .globl _EP4CS
+ 379 .globl _EP2CS
+ 380 .globl _EPXCS
+ 381 .globl _EP1INCS
+ 382 .globl _EP1OUTCS
+ 383 .globl _EP0CS
+ 384 .globl _EP8BCL
+ 385 .globl _EP8BCH
+ 386 .globl _EP6BCL
+ 387 .globl _EP6BCH
+ 388 .globl _EP4BCL
+ 389 .globl _EP4BCH
+ 390 .globl _EP2BCL
+ 391 .globl _EP2BCH
+ 392 .globl _EP1INBC
+ 393 .globl _EP1OUTBC
+ 394 .globl _EP0BCL
+ 395 .globl _EP0BCH
+ 396 .globl _FNADDR
+ 397 .globl _MICROFRAME
+ 398 .globl _USBFRAMEL
+ 399 .globl _USBFRAMEH
+ 400 .globl _TOGCTL
+ 401 .globl _WAKEUPCS
+ 402 .globl _SUSPEND
+ 403 .globl _USBCS
+ 404 .globl _UDMACRCQUALIFIER
+ 405 .globl _UDMACRCL
+ 406 .globl _UDMACRCH
+ 407 .globl _EXTAUTODAT2
+ 408 .globl _XAUTODAT2
+ 409 .globl _EXTAUTODAT1
+ 410 .globl _XAUTODAT1
+ 411 .globl _I2CTL
+ 412 .globl _I2DAT
+ 413 .globl _I2CS
+ 414 .globl _PORTECFG
+ 415 .globl _PORTCCFG
+ 416 .globl _PORTACFG
+ 417 .globl _INTSETUP
+ 418 .globl _INT4IVEC
+ 419 .globl _INT2IVEC
+ 420 .globl _CLRERRCNT
+ 421 .globl _ERRCNTLIM
+ 422 .globl _USBERRIRQ
+ 423 .globl _USBERRIE
+ 424 .globl _GPIFIRQ
+ 425 .globl _GPIFIE
+ 426 .globl _EPIRQ
+ 427 .globl _EPIE
+ 428 .globl _USBIRQ
+ 429 .globl _USBIE
+ 430 .globl _NAKIRQ
+ 431 .globl _NAKIE
+ 432 .globl _IBNIRQ
+ 433 .globl _IBNIE
+ 434 .globl _EP8FIFOIRQ
+ 435 .globl _EP8FIFOIE
+ 436 .globl _EP6FIFOIRQ
+ 437 .globl _EP6FIFOIE
+ 438 .globl _EP4FIFOIRQ
+ 439 .globl _EP4FIFOIE
+ 440 .globl _EP2FIFOIRQ
+ 441 .globl _EP2FIFOIE
+ 442 .globl _OUTPKTEND
+ 443 .globl _INPKTEND
+ 444 .globl _EP8ISOINPKTS
+ 445 .globl _EP6ISOINPKTS
+ 446 .globl _EP4ISOINPKTS
+ 447 .globl _EP2ISOINPKTS
+ 448 .globl _EP8FIFOPFL
+ 449 .globl _EP8FIFOPFH
+ 450 .globl _EP6FIFOPFL
+ 451 .globl _EP6FIFOPFH
+ 452 .globl _EP4FIFOPFL
+ 453 .globl _EP4FIFOPFH
+ 454 .globl _EP2FIFOPFL
+ 455 .globl _EP2FIFOPFH
+ 456 .globl _ECC2B2
+ 457 .globl _ECC2B1
+ 458 .globl _ECC2B0
+ 459 .globl _ECC1B2
+ 460 .globl _ECC1B1
+ 461 .globl _ECC1B0
+ 462 .globl _ECCRESET
+ 463 .globl _ECCCFG
+ 464 .globl _EP8AUTOINLENL
+ 465 .globl _EP8AUTOINLENH
+ 466 .globl _EP6AUTOINLENL
+ 467 .globl _EP6AUTOINLENH
+ 468 .globl _EP4AUTOINLENL
+ 469 .globl _EP4AUTOINLENH
+ 470 .globl _EP2AUTOINLENL
+ 471 .globl _EP2AUTOINLENH
+ 472 .globl _EP8FIFOCFG
+ 473 .globl _EP6FIFOCFG
+ 474 .globl _EP4FIFOCFG
+ 475 .globl _EP2FIFOCFG
+ 476 .globl _EP8CFG
+ 477 .globl _EP6CFG
+ 478 .globl _EP4CFG
+ 479 .globl _EP2CFG
+ 480 .globl _EP1INCFG
+ 481 .globl _EP1OUTCFG
+ 482 .globl _GPIFHOLDAMOUNT
+ 483 .globl _REVCTL
+ 484 .globl _REVID
+ 485 .globl _FIFOPINPOLAR
+ 486 .globl _UART230
+ 487 .globl _BPADDRL
+ 488 .globl _BPADDRH
+ 489 .globl _BREAKPT
+ 490 .globl _FIFORESET
+ 491 .globl _PINFLAGSCD
+ 492 .globl _PINFLAGSAB
+ 493 .globl _IFCONFIG
+ 494 .globl _CPUCS
+ 495 .globl _GPCR2
+ 496 .globl _GPIF_WAVE3_DATA
+ 497 .globl _GPIF_WAVE2_DATA
+ 498 .globl _GPIF_WAVE1_DATA
+ 499 .globl _GPIF_WAVE0_DATA
+ 500 .globl _GPIF_WAVE_DATA
+ 501 .globl _eeprom_write_PARM_3
+ 502 .globl _eeprom_write_PARM_2
+ 503 .globl _eeprom_read_PARM_3
+ 504 .globl _eeprom_read_PARM_2
+ 505 .globl _eeprom_select_PARM_2
+ 506 ;--------------------------------------------------------
+ 507 ; special function registers
+ 508 ;--------------------------------------------------------
+ 509 .area RSEG (DATA)
+ 0080 510 _IOA = 0x0080
+ 0081 511 _SP = 0x0081
+ 0082 512 _DPL0 = 0x0082
+ 0083 513 _DPH0 = 0x0083
+ 0084 514 _DPL1 = 0x0084
+ 0085 515 _DPH1 = 0x0085
+ 0086 516 _DPS = 0x0086
+ 0087 517 _PCON = 0x0087
+ 0088 518 _TCON = 0x0088
+ 0089 519 _TMOD = 0x0089
+ 008A 520 _TL0 = 0x008a
+ 008B 521 _TL1 = 0x008b
+ 008C 522 _TH0 = 0x008c
+ 008D 523 _TH1 = 0x008d
+ 008E 524 _CKCON = 0x008e
+ 0090 525 _IOB = 0x0090
+ 0091 526 _EXIF = 0x0091
+ 0092 527 _MPAGE = 0x0092
+ 0092 528 __XPAGE = 0x0092
+ 0098 529 _SCON0 = 0x0098
+ 0099 530 _SBUF0 = 0x0099
+ 009A 531 _AUTOPTRH1 = 0x009a
+ 009B 532 _AUTOPTRL1 = 0x009b
+ 009D 533 _AUTOPTRH2 = 0x009d
+ 009E 534 _AUTOPTRL2 = 0x009e
+ 00A0 535 _IOC = 0x00a0
+ 00A1 536 _INT2CLR = 0x00a1
+ 00A2 537 _INT4CLR = 0x00a2
+ 00A8 538 _IE = 0x00a8
+ 00AA 539 _EP2468STAT = 0x00aa
+ 00AB 540 _EP24FIFOFLGS = 0x00ab
+ 00AC 541 _EP68FIFOFLGS = 0x00ac
+ 00AF 542 _AUTOPTRSETUP = 0x00af
+ 00B0 543 _IOD = 0x00b0
+ 00B1 544 _IOE = 0x00b1
+ 00B2 545 _OEA = 0x00b2
+ 00B3 546 _OEB = 0x00b3
+ 00B4 547 _OEC = 0x00b4
+ 00B5 548 _OED = 0x00b5
+ 00B6 549 _OEE = 0x00b6
+ 00B8 550 _IP = 0x00b8
+ 00BA 551 _EP01STAT = 0x00ba
+ 00BB 552 _GPIFTRIG = 0x00bb
+ 00BD 553 _GPIFSGLDATH = 0x00bd
+ 00BE 554 _GPIFSGLDATLX = 0x00be
+ 00BF 555 _GPIFSGLDATLNOX = 0x00bf
+ 00C0 556 _SCON1 = 0x00c0
+ 00C1 557 _SBUF1 = 0x00c1
+ 00C8 558 _T2CON = 0x00c8
+ 00CA 559 _RCAP2L = 0x00ca
+ 00CB 560 _RCAP2H = 0x00cb
+ 00CC 561 _TL2 = 0x00cc
+ 00CD 562 _TH2 = 0x00cd
+ 00D0 563 _PSW = 0x00d0
+ 00D8 564 _EICON = 0x00d8
+ 00E0 565 _ACC = 0x00e0
+ 00E8 566 _EIE = 0x00e8
+ 00F0 567 _BREG = 0x00f0
+ 00F8 568 _EIP = 0x00f8
+ 569 ;--------------------------------------------------------
+ 570 ; special function bits
+ 571 ;--------------------------------------------------------
+ 572 .area RSEG (DATA)
+ 0080 573 _IOA0 = 0x0080
+ 0081 574 _IOA1 = 0x0081
+ 0082 575 _IOA2 = 0x0082
+ 0083 576 _IOA3 = 0x0083
+ 0084 577 _IOA4 = 0x0084
+ 0085 578 _IOA5 = 0x0085
+ 0086 579 _IOA6 = 0x0086
+ 0087 580 _IOA7 = 0x0087
+ 0088 581 _IT0 = 0x0088
+ 0089 582 _IE0 = 0x0089
+ 008A 583 _IT1 = 0x008a
+ 008B 584 _IE1 = 0x008b
+ 008C 585 _TR0 = 0x008c
+ 008D 586 _TF0 = 0x008d
+ 008E 587 _TR1 = 0x008e
+ 008F 588 _TF1 = 0x008f
+ 0090 589 _IOB0 = 0x0090
+ 0091 590 _IOB1 = 0x0091
+ 0092 591 _IOB2 = 0x0092
+ 0093 592 _IOB3 = 0x0093
+ 0094 593 _IOB4 = 0x0094
+ 0095 594 _IOB5 = 0x0095
+ 0096 595 _IOB6 = 0x0096
+ 0097 596 _IOB7 = 0x0097
+ 0098 597 _RI_0 = 0x0098
+ 0099 598 _TI_0 = 0x0099
+ 009A 599 _RB8_0 = 0x009a
+ 009B 600 _TB8_0 = 0x009b
+ 009C 601 _REN_0 = 0x009c
+ 009D 602 _SM2_0 = 0x009d
+ 009E 603 _SM1_0 = 0x009e
+ 009F 604 _SM0_0 = 0x009f
+ 00A0 605 _IOC0 = 0x00a0
+ 00A1 606 _IOC1 = 0x00a1
+ 00A2 607 _IOC2 = 0x00a2
+ 00A3 608 _IOC3 = 0x00a3
+ 00A4 609 _IOC4 = 0x00a4
+ 00A5 610 _IOC5 = 0x00a5
+ 00A6 611 _IOC6 = 0x00a6
+ 00A7 612 _IOC7 = 0x00a7
+ 00A8 613 _EX0 = 0x00a8
+ 00A9 614 _ET0 = 0x00a9
+ 00AA 615 _EX1 = 0x00aa
+ 00AB 616 _ET1 = 0x00ab
+ 00AC 617 _ES0 = 0x00ac
+ 00AD 618 _ET2 = 0x00ad
+ 00AE 619 _ES1 = 0x00ae
+ 00AF 620 _EA = 0x00af
+ 00B0 621 _IOD0 = 0x00b0
+ 00B1 622 _IOD1 = 0x00b1
+ 00B2 623 _IOD2 = 0x00b2
+ 00B3 624 _IOD3 = 0x00b3
+ 00B4 625 _IOD4 = 0x00b4
+ 00B5 626 _IOD5 = 0x00b5
+ 00B6 627 _IOD6 = 0x00b6
+ 00B7 628 _IOD7 = 0x00b7
+ 00B8 629 _PX0 = 0x00b8
+ 00B9 630 _PT0 = 0x00b9
+ 00BA 631 _PX1 = 0x00ba
+ 00BB 632 _PT1 = 0x00bb
+ 00BC 633 _PS0 = 0x00bc
+ 00BD 634 _PT2 = 0x00bd
+ 00BE 635 _PS1 = 0x00be
+ 00C0 636 _RI_1 = 0x00c0
+ 00C1 637 _TI_1 = 0x00c1
+ 00C2 638 _RB8_1 = 0x00c2
+ 00C3 639 _TB8_1 = 0x00c3
+ 00C4 640 _REN_1 = 0x00c4
+ 00C5 641 _SM2_1 = 0x00c5
+ 00C6 642 _SM1_1 = 0x00c6
+ 00C7 643 _SM0_1 = 0x00c7
+ 00C8 644 _CPRL2 = 0x00c8
+ 00C9 645 _CT2 = 0x00c9
+ 00CA 646 _TR2 = 0x00ca
+ 00CB 647 _EXEN2 = 0x00cb
+ 00CC 648 _TCLK = 0x00cc
+ 00CD 649 _RCLK = 0x00cd
+ 00CE 650 _EXF2 = 0x00ce
+ 00CF 651 _TF2 = 0x00cf
+ 00D0 652 _PF = 0x00d0
+ 00D1 653 _F1 = 0x00d1
+ 00D2 654 _OV = 0x00d2
+ 00D3 655 _RS0 = 0x00d3
+ 00D4 656 _RS1 = 0x00d4
+ 00D5 657 _F0 = 0x00d5
+ 00D6 658 _AC = 0x00d6
+ 00D7 659 _CY = 0x00d7
+ 00DB 660 _INT6 = 0x00db
+ 00DC 661 _RESI = 0x00dc
+ 00DD 662 _ERESI = 0x00dd
+ 00DF 663 _SMOD1 = 0x00df
+ 00E0 664 _ACC0 = 0x00e0
+ 00E1 665 _ACC1 = 0x00e1
+ 00E2 666 _ACC2 = 0x00e2
+ 00E3 667 _ACC3 = 0x00e3
+ 00E4 668 _ACC4 = 0x00e4
+ 00E5 669 _ACC5 = 0x00e5
+ 00E6 670 _ACC6 = 0x00e6
+ 00E7 671 _ACC7 = 0x00e7
+ 00E8 672 _EUSB = 0x00e8
+ 00E9 673 _EI2C = 0x00e9
+ 00EA 674 _EIEX4 = 0x00ea
+ 00EB 675 _EIEX5 = 0x00eb
+ 00EC 676 _EIEX6 = 0x00ec
+ 00F0 677 _BREG0 = 0x00f0
+ 00F1 678 _BREG1 = 0x00f1
+ 00F2 679 _BREG2 = 0x00f2
+ 00F3 680 _BREG3 = 0x00f3
+ 00F4 681 _BREG4 = 0x00f4
+ 00F5 682 _BREG5 = 0x00f5
+ 00F6 683 _BREG6 = 0x00f6
+ 00F7 684 _BREG7 = 0x00f7
+ 00F8 685 _PUSB = 0x00f8
+ 00F9 686 _PI2C = 0x00f9
+ 00FA 687 _EIPX4 = 0x00fa
+ 00FB 688 _EIPX5 = 0x00fb
+ 00FC 689 _EIPX6 = 0x00fc
+ 690 ;--------------------------------------------------------
+ 691 ; overlayable register banks
+ 692 ;--------------------------------------------------------
+ 693 .area REG_BANK_0 (REL,OVR,DATA)
+ 0000 694 .ds 8
+ 695 ;--------------------------------------------------------
+ 696 ; overlayable bit register bank
+ 697 ;--------------------------------------------------------
+ 698 .area BIT_BANK (REL,OVR,DATA)
+ 0020 699 bits:
+ 0020 700 .ds 1
+ 8000 701 b0 = bits[0]
+ 8100 702 b1 = bits[1]
+ 8200 703 b2 = bits[2]
+ 8300 704 b3 = bits[3]
+ 8400 705 b4 = bits[4]
+ 8500 706 b5 = bits[5]
+ 8600 707 b6 = bits[6]
+ 8700 708 b7 = bits[7]
+ 709 ;--------------------------------------------------------
+ 710 ; internal ram data
+ 711 ;--------------------------------------------------------
+ 712 .area DSEG (DATA)
+ 0008 713 _eeprom_select_PARM_2:
+ 0008 714 .ds 1
+ 0009 715 _eeprom_read_PARM_2:
+ 0009 716 .ds 2
+ 000B 717 _eeprom_read_PARM_3:
+ 000B 718 .ds 1
+ 000C 719 _eeprom_write_PARM_2:
+ 000C 720 .ds 2
+ 000E 721 _eeprom_write_PARM_3:
+ 000E 722 .ds 1
+ 723 ;--------------------------------------------------------
+ 724 ; overlayable items in internal ram
+ 725 ;--------------------------------------------------------
+ 726 .area OSEG (OVR,DATA)
+ 727 .area OSEG (OVR,DATA)
+ 728 .area OSEG (OVR,DATA)
+ 729 .area OSEG (OVR,DATA)
+ 730 .area OSEG (OVR,DATA)
+ 731 .area OSEG (OVR,DATA)
+ 732 .area OSEG (OVR,DATA)
+ 733 .area OSEG (OVR,DATA)
+ 734 .area OSEG (OVR,DATA)
+ 000F 735 _sendStringDescriptor_PARM_2::
+ 000F 736 .ds 1
+ 0010 737 _sendStringDescriptor_PARM_3::
+ 0010 738 .ds 1
+ 739 ;--------------------------------------------------------
+ 740 ; Stack segment in internal ram
+ 741 ;--------------------------------------------------------
+ 742 .area SSEG (DATA)
+ 0021 743 __start__stack:
+ 0021 744 .ds 1
+ 745
+ 746 ;--------------------------------------------------------
+ 747 ; indirectly addressable internal ram data
+ 748 ;--------------------------------------------------------
+ 749 .area ISEG (DATA)
+ 750 ;--------------------------------------------------------
+ 751 ; absolute internal ram data
+ 752 ;--------------------------------------------------------
+ 753 .area IABS (ABS,DATA)
+ 754 .area IABS (ABS,DATA)
+ 755 ;--------------------------------------------------------
+ 756 ; bit data
+ 757 ;--------------------------------------------------------
+ 758 .area BSEG (BIT)
+ 759 ;--------------------------------------------------------
+ 760 ; paged external ram data
+ 761 ;--------------------------------------------------------
+ 762 .area PSEG (PAG,XDATA)
+ 763 ;--------------------------------------------------------
+ 764 ; external ram data
+ 765 ;--------------------------------------------------------
+ 766 .area XSEG (XDATA)
+ E400 767 _GPIF_WAVE_DATA = 0xe400
+ E400 768 _GPIF_WAVE0_DATA = 0xe400
+ E420 769 _GPIF_WAVE1_DATA = 0xe420
+ E440 770 _GPIF_WAVE2_DATA = 0xe440
+ E460 771 _GPIF_WAVE3_DATA = 0xe460
+ E50D 772 _GPCR2 = 0xe50d
+ E600 773 _CPUCS = 0xe600
+ E601 774 _IFCONFIG = 0xe601
+ E602 775 _PINFLAGSAB = 0xe602
+ E603 776 _PINFLAGSCD = 0xe603
+ E604 777 _FIFORESET = 0xe604
+ E605 778 _BREAKPT = 0xe605
+ E606 779 _BPADDRH = 0xe606
+ E607 780 _BPADDRL = 0xe607
+ E608 781 _UART230 = 0xe608
+ E609 782 _FIFOPINPOLAR = 0xe609
+ E60A 783 _REVID = 0xe60a
+ E60B 784 _REVCTL = 0xe60b
+ E60C 785 _GPIFHOLDAMOUNT = 0xe60c
+ E610 786 _EP1OUTCFG = 0xe610
+ E611 787 _EP1INCFG = 0xe611
+ E612 788 _EP2CFG = 0xe612
+ E613 789 _EP4CFG = 0xe613
+ E614 790 _EP6CFG = 0xe614
+ E615 791 _EP8CFG = 0xe615
+ E618 792 _EP2FIFOCFG = 0xe618
+ E619 793 _EP4FIFOCFG = 0xe619
+ E61A 794 _EP6FIFOCFG = 0xe61a
+ E61B 795 _EP8FIFOCFG = 0xe61b
+ E620 796 _EP2AUTOINLENH = 0xe620
+ E621 797 _EP2AUTOINLENL = 0xe621
+ E622 798 _EP4AUTOINLENH = 0xe622
+ E623 799 _EP4AUTOINLENL = 0xe623
+ E624 800 _EP6AUTOINLENH = 0xe624
+ E625 801 _EP6AUTOINLENL = 0xe625
+ E626 802 _EP8AUTOINLENH = 0xe626
+ E627 803 _EP8AUTOINLENL = 0xe627
+ E628 804 _ECCCFG = 0xe628
+ E629 805 _ECCRESET = 0xe629
+ E62A 806 _ECC1B0 = 0xe62a
+ E62B 807 _ECC1B1 = 0xe62b
+ E62C 808 _ECC1B2 = 0xe62c
+ E62D 809 _ECC2B0 = 0xe62d
+ E62E 810 _ECC2B1 = 0xe62e
+ E62F 811 _ECC2B2 = 0xe62f
+ E630 812 _EP2FIFOPFH = 0xe630
+ E631 813 _EP2FIFOPFL = 0xe631
+ E632 814 _EP4FIFOPFH = 0xe632
+ E633 815 _EP4FIFOPFL = 0xe633
+ E634 816 _EP6FIFOPFH = 0xe634
+ E635 817 _EP6FIFOPFL = 0xe635
+ E636 818 _EP8FIFOPFH = 0xe636
+ E637 819 _EP8FIFOPFL = 0xe637
+ E640 820 _EP2ISOINPKTS = 0xe640
+ E641 821 _EP4ISOINPKTS = 0xe641
+ E642 822 _EP6ISOINPKTS = 0xe642
+ E643 823 _EP8ISOINPKTS = 0xe643
+ E648 824 _INPKTEND = 0xe648
+ E649 825 _OUTPKTEND = 0xe649
+ E650 826 _EP2FIFOIE = 0xe650
+ E651 827 _EP2FIFOIRQ = 0xe651
+ E652 828 _EP4FIFOIE = 0xe652
+ E653 829 _EP4FIFOIRQ = 0xe653
+ E654 830 _EP6FIFOIE = 0xe654
+ E655 831 _EP6FIFOIRQ = 0xe655
+ E656 832 _EP8FIFOIE = 0xe656
+ E657 833 _EP8FIFOIRQ = 0xe657
+ E658 834 _IBNIE = 0xe658
+ E659 835 _IBNIRQ = 0xe659
+ E65A 836 _NAKIE = 0xe65a
+ E65B 837 _NAKIRQ = 0xe65b
+ E65C 838 _USBIE = 0xe65c
+ E65D 839 _USBIRQ = 0xe65d
+ E65E 840 _EPIE = 0xe65e
+ E65F 841 _EPIRQ = 0xe65f
+ E660 842 _GPIFIE = 0xe660
+ E661 843 _GPIFIRQ = 0xe661
+ E662 844 _USBERRIE = 0xe662
+ E663 845 _USBERRIRQ = 0xe663
+ E664 846 _ERRCNTLIM = 0xe664
+ E665 847 _CLRERRCNT = 0xe665
+ E666 848 _INT2IVEC = 0xe666
+ E667 849 _INT4IVEC = 0xe667
+ E668 850 _INTSETUP = 0xe668
+ E670 851 _PORTACFG = 0xe670
+ E671 852 _PORTCCFG = 0xe671
+ E672 853 _PORTECFG = 0xe672
+ E678 854 _I2CS = 0xe678
+ E679 855 _I2DAT = 0xe679
+ E67A 856 _I2CTL = 0xe67a
+ E67B 857 _XAUTODAT1 = 0xe67b
+ E67B 858 _EXTAUTODAT1 = 0xe67b
+ E67C 859 _XAUTODAT2 = 0xe67c
+ E67C 860 _EXTAUTODAT2 = 0xe67c
+ E67D 861 _UDMACRCH = 0xe67d
+ E67E 862 _UDMACRCL = 0xe67e
+ E67F 863 _UDMACRCQUALIFIER = 0xe67f
+ E680 864 _USBCS = 0xe680
+ E681 865 _SUSPEND = 0xe681
+ E682 866 _WAKEUPCS = 0xe682
+ E683 867 _TOGCTL = 0xe683
+ E684 868 _USBFRAMEH = 0xe684
+ E685 869 _USBFRAMEL = 0xe685
+ E686 870 _MICROFRAME = 0xe686
+ E687 871 _FNADDR = 0xe687
+ E68A 872 _EP0BCH = 0xe68a
+ E68B 873 _EP0BCL = 0xe68b
+ E68D 874 _EP1OUTBC = 0xe68d
+ E68F 875 _EP1INBC = 0xe68f
+ E690 876 _EP2BCH = 0xe690
+ E691 877 _EP2BCL = 0xe691
+ E694 878 _EP4BCH = 0xe694
+ E695 879 _EP4BCL = 0xe695
+ E698 880 _EP6BCH = 0xe698
+ E699 881 _EP6BCL = 0xe699
+ E69C 882 _EP8BCH = 0xe69c
+ E69D 883 _EP8BCL = 0xe69d
+ E6A0 884 _EP0CS = 0xe6a0
+ E6A1 885 _EP1OUTCS = 0xe6a1
+ E6A2 886 _EP1INCS = 0xe6a2
+ E6A3 887 _EPXCS = 0xe6a3
+ E6A3 888 _EP2CS = 0xe6a3
+ E6A4 889 _EP4CS = 0xe6a4
+ E6A5 890 _EP6CS = 0xe6a5
+ E6A6 891 _EP8CS = 0xe6a6
+ E6A7 892 _EP2FIFOFLGS = 0xe6a7
+ E6A8 893 _EP4FIFOFLGS = 0xe6a8
+ E6A9 894 _EP6FIFOFLGS = 0xe6a9
+ E6AA 895 _EP8FIFOFLGS = 0xe6aa
+ E6AB 896 _EP2FIFOBCH = 0xe6ab
+ E6AC 897 _EP2FIFOBCL = 0xe6ac
+ E6AD 898 _EP4FIFOBCH = 0xe6ad
+ E6AE 899 _EP4FIFOBCL = 0xe6ae
+ E6AF 900 _EP6FIFOBCH = 0xe6af
+ E6B0 901 _EP6FIFOBCL = 0xe6b0
+ E6B1 902 _EP8FIFOBCH = 0xe6b1
+ E6B2 903 _EP8FIFOBCL = 0xe6b2
+ E6B3 904 _SUDPTRH = 0xe6b3
+ E6B4 905 _SUDPTRL = 0xe6b4
+ E6B5 906 _SUDPTRCTL = 0xe6b5
+ E6B8 907 _SETUPDAT = 0xe6b8
+ E6B8 908 _bmRequestType = 0xe6b8
+ E6B9 909 _bRequest = 0xe6b9
+ E6BA 910 _wValueL = 0xe6ba
+ E6BB 911 _wValueH = 0xe6bb
+ E6BC 912 _wIndexL = 0xe6bc
+ E6BD 913 _wIndexH = 0xe6bd
+ E6BE 914 _wLengthL = 0xe6be
+ E6BF 915 _wLengthH = 0xe6bf
+ E6C0 916 _GPIFWFSELECT = 0xe6c0
+ E6C1 917 _GPIFIDLECS = 0xe6c1
+ E6C2 918 _GPIFIDLECTL = 0xe6c2
+ E6C3 919 _GPIFCTLCFG = 0xe6c3
+ E6C4 920 _GPIFADRH = 0xe6c4
+ E6C5 921 _GPIFADRL = 0xe6c5
+ E6C6 922 _FLOWSTATE = 0xe6c6
+ E6C7 923 _FLOWLOGIC = 0xe6c7
+ E6C8 924 _FLOWEQ0CTL = 0xe6c8
+ E6C9 925 _FLOWEQ1CTL = 0xe6c9
+ E6CA 926 _FLOWHOLDOFF = 0xe6ca
+ E6CB 927 _FLOWSTB = 0xe6cb
+ E6CC 928 _FLOWSTBEDGE = 0xe6cc
+ E6CD 929 _FLOWSTBHPERIOD = 0xe6cd
+ E6CE 930 _GPIFTCB3 = 0xe6ce
+ E6CF 931 _GPIFTCB2 = 0xe6cf
+ E6D0 932 _GPIFTCB1 = 0xe6d0
+ E6D1 933 _GPIFTCB0 = 0xe6d1
+ E6D2 934 _EP2GPIFFLGSEL = 0xe6d2
+ E6D3 935 _EP2GPIFPFSTOP = 0xe6d3
+ E6D4 936 _EP2GPIFTRIG = 0xe6d4
+ E6DA 937 _EP4GPIFFLGSEL = 0xe6da
+ E6DB 938 _EP4GPIFPFSTOP = 0xe6db
+ E6DC 939 _EP4GPIFTRIG = 0xe6dc
+ E6E2 940 _EP6GPIFFLGSEL = 0xe6e2
+ E6E3 941 _EP6GPIFPFSTOP = 0xe6e3
+ E6E4 942 _EP6GPIFTRIG = 0xe6e4
+ E6EA 943 _EP8GPIFFLGSEL = 0xe6ea
+ E6EB 944 _EP8GPIFPFSTOP = 0xe6eb
+ E6EC 945 _EP8GPIFTRIG = 0xe6ec
+ E6F0 946 _XGPIFSGLDATH = 0xe6f0
+ E6F1 947 _XGPIFSGLDATLX = 0xe6f1
+ E6F2 948 _XGPIFSGLDATLNOX = 0xe6f2
+ E6F3 949 _GPIFREADYCFG = 0xe6f3
+ E6F4 950 _GPIFREADYSTAT = 0xe6f4
+ E6F5 951 _GPIFABORT = 0xe6f5
+ E740 952 _EP0BUF = 0xe740
+ E780 953 _EP1OUTBUF = 0xe780
+ E7C0 954 _EP1INBUF = 0xe7c0
+ F000 955 _EP2FIFOBUF = 0xf000
+ F400 956 _EP4FIFOBUF = 0xf400
+ F800 957 _EP6FIFOBUF = 0xf800
+ FC00 958 _EP8FIFOBUF = 0xfc00
+ 0003 959 _INT0VEC_IE0 = 0x0003
+ 000B 960 _INT1VEC_T0 = 0x000b
+ 0013 961 _INT2VEC_IE1 = 0x0013
+ 001B 962 _INT3VEC_T1 = 0x001b
+ 0023 963 _INT4VEC_USART0 = 0x0023
+ 002B 964 _INT5VEC_T2 = 0x002b
+ 0033 965 _INT6VEC_RESUME = 0x0033
+ 003B 966 _INT7VEC_USART1 = 0x003b
+ 0043 967 _INT8VEC_USB = 0x0043
+ 004B 968 _INT9VEC_I2C = 0x004b
+ 0053 969 _INT10VEC_GPIF = 0x0053
+ 005B 970 _INT11VEC_IE5 = 0x005b
+ 0063 971 _INT12VEC_IE6 = 0x0063
+ 0100 972 _INTVEC_SUDAV = 0x0100
+ 0104 973 _INTVEC_SOF = 0x0104
+ 0108 974 _INTVEC_SUTOK = 0x0108
+ 010C 975 _INTVEC_SUSPEND = 0x010c
+ 0110 976 _INTVEC_USBRESET = 0x0110
+ 0114 977 _INTVEC_HISPEED = 0x0114
+ 0118 978 _INTVEC_EP0ACK = 0x0118
+ 0120 979 _INTVEC_EP0IN = 0x0120
+ 0124 980 _INTVEC_EP0OUT = 0x0124
+ 0128 981 _INTVEC_EP1IN = 0x0128
+ 012C 982 _INTVEC_EP1OUT = 0x012c
+ 0130 983 _INTVEC_EP2 = 0x0130
+ 0134 984 _INTVEC_EP4 = 0x0134
+ 0138 985 _INTVEC_EP6 = 0x0138
+ 013C 986 _INTVEC_EP8 = 0x013c
+ 0140 987 _INTVEC_IBN = 0x0140
+ 0148 988 _INTVEC_EP0PING = 0x0148
+ 014C 989 _INTVEC_EP1PING = 0x014c
+ 0150 990 _INTVEC_EP2PING = 0x0150
+ 0154 991 _INTVEC_EP4PING = 0x0154
+ 0158 992 _INTVEC_EP6PING = 0x0158
+ 015C 993 _INTVEC_EP8PING = 0x015c
+ 0160 994 _INTVEC_ERRLIMIT = 0x0160
+ 0170 995 _INTVEC_EP2ISOERR = 0x0170
+ 0174 996 _INTVEC_EP4ISOERR = 0x0174
+ 0178 997 _INTVEC_EP6ISOERR = 0x0178
+ 017C 998 _INTVEC_EP8ISOERR = 0x017c
+ 0180 999 _INTVEC_EP2PF = 0x0180
+ 0184 1000 _INTVEC_EP4PF = 0x0184
+ 0188 1001 _INTVEC_EP6PF = 0x0188
+ 018C 1002 _INTVEC_EP8PF = 0x018c
+ 0190 1003 _INTVEC_EP2EF = 0x0190
+ 0194 1004 _INTVEC_EP4EF = 0x0194
+ 0198 1005 _INTVEC_EP6EF = 0x0198
+ 019C 1006 _INTVEC_EP8EF = 0x019c
+ 01A0 1007 _INTVEC_EP2FF = 0x01a0
+ 01A8 1008 _INTVEC_EP6FF = 0x01a8
+ 01AC 1009 _INTVEC_EP8FF = 0x01ac
+ 01B0 1010 _INTVEC_GPIFDONE = 0x01b0
+ 01B4 1011 _INTVEC_GPIFWF = 0x01b4
+ 3200 1012 _eeprom_addr::
+ 3200 1013 .ds 2
+ 3202 1014 _eeprom_write_bytes::
+ 3202 1015 .ds 2
+ 3204 1016 _eeprom_write_checksum::
+ 3204 1017 .ds 1
+ 3205 1018 _debug_counter::
+ 3205 1019 .ds 2
+ 3207 1020 _debug_stack_size::
+ 3207 1021 .ds 1
+ 3208 1022 _debug_msg_size::
+ 3208 1023 .ds 1
+ 3209 1024 _debug_stack::
+ 3209 1025 .ds 96
+ 3269 1026 _debug_stack_ptr::
+ 3269 1027 .ds 2
+ 326B 1028 _debug_msg_buf::
+ 326B 1029 .ds 3
+ 326E 1030 _debug_read_addr::
+ 326E 1031 .ds 2
+ 006C 1032 _ZTEX_DESCRIPTOR = 0x006c
+ 006D 1033 _ZTEX_DESCRIPTOR_VERSION = 0x006d
+ 006E 1034 _ZTEXID = 0x006e
+ 0072 1035 _PRODUCT_ID = 0x0072
+ 0076 1036 _FW_VERSION = 0x0076
+ 0077 1037 _INTERFACE_VERSION = 0x0077
+ 0078 1038 _INTERFACE_CAPABILITIES = 0x0078
+ 007E 1039 _MODULE_RESERVED = 0x007e
+ 008A 1040 _SN_STRING = 0x008a
+ 1041 ;--------------------------------------------------------
+ 1042 ; absolute external ram data
+ 1043 ;--------------------------------------------------------
+ 1044 .area XABS (ABS,XDATA)
+ 1045 ;--------------------------------------------------------
+ 1046 ; external initialized ram data
+ 1047 ;--------------------------------------------------------
+ 1048 .area XISEG (XDATA)
+ 3270 1049 _ep0_payload_remaining::
+ 3270 1050 .ds 2
+ 3272 1051 _ep0_payload_transfer::
+ 3272 1052 .ds 1
+ 3273 1053 _ep0_prev_setup_request::
+ 3273 1054 .ds 1
+ 3274 1055 _ep0_vendor_cmd_setup::
+ 3274 1056 .ds 1
+ 3275 1057 _ISOFRAME_COUNTER::
+ 3275 1058 .ds 8
+ 1059 .area HOME (CODE)
+ 1060 .area GSINIT0 (CODE)
+ 1061 .area GSINIT1 (CODE)
+ 1062 .area GSINIT2 (CODE)
+ 1063 .area GSINIT3 (CODE)
+ 1064 .area GSINIT4 (CODE)
+ 1065 .area GSINIT5 (CODE)
+ 1066 .area GSINIT (CODE)
+ 1067 .area GSFINAL (CODE)
+ 1068 .area CSEG (CODE)
+ 1069 ;--------------------------------------------------------
+ 1070 ; interrupt vector
+ 1071 ;--------------------------------------------------------
+ 1072 .area HOME (CODE)
+ 0200 1073 __interrupt_vect:
+ 0200 02 02 08 1074 ljmp __sdcc_gsinit_startup
+ 1075 ;--------------------------------------------------------
+ 1076 ; global & static initialisations
+ 1077 ;--------------------------------------------------------
+ 1078 .area HOME (CODE)
+ 1079 .area GSINIT (CODE)
+ 1080 .area GSFINAL (CODE)
+ 1081 .area GSINIT (CODE)
+ 1082 .globl __sdcc_gsinit_startup
+ 1083 .globl __sdcc_program_startup
+ 1084 .globl __start__stack
+ 1085 .globl __mcs51_genXINIT
+ 1086 .globl __mcs51_genXRAMCLEAR
+ 1087 .globl __mcs51_genRAMCLEAR
+ 1088 .area GSFINAL (CODE)
+ 0261 02 02 03 1089 ljmp __sdcc_program_startup
+ 1090 ;--------------------------------------------------------
+ 1091 ; Home
+ 1092 ;--------------------------------------------------------
+ 1093 .area HOME (CODE)
+ 1094 .area HOME (CODE)
+ 0203 1095 __sdcc_program_startup:
+ 0203 12 10 36 1096 lcall _main
+ 1097 ; return from main will lock up
+ 0206 80 FE 1098 sjmp .
+ 1099 ;--------------------------------------------------------
+ 1100 ; code
+ 1101 ;--------------------------------------------------------
+ 1102 .area CSEG (CODE)
+ 1103 ;------------------------------------------------------------
+ 1104 ;Allocation info for local variables in function 'abscode_intvec'
+ 1105 ;------------------------------------------------------------
+ 1106 ;------------------------------------------------------------
+ 1107 ; ../../../include/ezintavecs.h:92: void abscode_intvec() _naked
+ 1108 ; -----------------------------------------
+ 1109 ; function abscode_intvec
+ 1110 ; -----------------------------------------
+ 0264 1111 _abscode_intvec:
+ 1112 ; naked function: no prologue.
+ 1113 ; ../../../include/ezintavecs.h:317: ERROR: no line number 317 in file ../../../include/ezintavecs.h
+ 1114
+ 1115 .area ABSCODE (ABS,CODE)
+ 0000 1116 .org 0x0000
+ 0000 1117 ENTRY:
+ 0000 02 02 00 1118 ljmp #0x0200
+ 1119 ; # 94 "../../../include/ezintavecs.h"
+ 0003 1120 .org 0x0003
+ 1121 ; # 34 "../../../include/ezintavecs.h"
+ 0003 32 1122 reti
+ 1123 ; # 94 "../../../include/ezintavecs.h"
+ 000B 1124 .org 0x000b
+ 1125 ; # 35 "../../../include/ezintavecs.h"
+ 000B 32 1126 reti
+ 1127 ; # 94 "../../../include/ezintavecs.h"
+ 0013 1128 .org 0x0013
+ 1129 ; # 36 "../../../include/ezintavecs.h"
+ 0013 32 1130 reti
+ 1131 ; # 94 "../../../include/ezintavecs.h"
+ 001B 1132 .org 0x001b
+ 1133 ; # 37 "../../../include/ezintavecs.h"
+ 001B 32 1134 reti
+ 1135 ; # 94 "../../../include/ezintavecs.h"
+ 0023 1136 .org 0x0023
+ 1137 ; # 38 "../../../include/ezintavecs.h"
+ 0023 32 1138 reti
+ 1139 ; # 94 "../../../include/ezintavecs.h"
+ 002B 1140 .org 0x002b
+ 1141 ; # 39 "../../../include/ezintavecs.h"
+ 002B 32 1142 reti
+ 1143 ; # 94 "../../../include/ezintavecs.h"
+ 0033 1144 .org 0x0033
+ 1145 ; # 40 "../../../include/ezintavecs.h"
+ 0033 32 1146 reti
+ 1147 ; # 94 "../../../include/ezintavecs.h"
+ 003B 1148 .org 0x003b
+ 1149 ; # 41 "../../../include/ezintavecs.h"
+ 003B 32 1150 reti
+ 1151 ; # 94 "../../../include/ezintavecs.h"
+ 0043 1152 .org 0x0043
+ 1153 ; # 42 "../../../include/ezintavecs.h"
+ 0043 32 1154 reti
+ 1155 ; # 94 "../../../include/ezintavecs.h"
+ 004B 1156 .org 0x004b
+ 1157 ; # 43 "../../../include/ezintavecs.h"
+ 004B 32 1158 reti
+ 1159 ; # 94 "../../../include/ezintavecs.h"
+ 0053 1160 .org 0x0053
+ 1161 ; # 44 "../../../include/ezintavecs.h"
+ 0053 32 1162 reti
+ 1163 ; # 94 "../../../include/ezintavecs.h"
+ 005B 1164 .org 0x005b
+ 1165 ; # 45 "../../../include/ezintavecs.h"
+ 005B 32 1166 reti
+ 1167 ; # 94 "../../../include/ezintavecs.h"
+ 0063 1168 .org 0x0063
+ 1169 ; # 46 "../../../include/ezintavecs.h"
+ 0063 32 1170 reti
+ 1171 ; # 94 "../../../include/ezintavecs.h"
+ 0100 1172 .org 0x0100
+ 1173 ; # 47 "../../../include/ezintavecs.h"
+ 0100 32 1174 reti
+ 1175 ; # 94 "../../../include/ezintavecs.h"
+ 0104 1176 .org 0x0104
+ 1177 ; # 48 "../../../include/ezintavecs.h"
+ 0104 32 1178 reti
+ 1179 ; # 94 "../../../include/ezintavecs.h"
+ 0108 1180 .org 0x0108
+ 1181 ; # 49 "../../../include/ezintavecs.h"
+ 0108 32 1182 reti
+ 1183 ; # 94 "../../../include/ezintavecs.h"
+ 010C 1184 .org 0x010C
+ 1185 ; # 50 "../../../include/ezintavecs.h"
+ 010C 32 1186 reti
+ 1187 ; # 94 "../../../include/ezintavecs.h"
+ 0110 1188 .org 0x0110
+ 1189 ; # 51 "../../../include/ezintavecs.h"
+ 0110 32 1190 reti
+ 1191 ; # 94 "../../../include/ezintavecs.h"
+ 0114 1192 .org 0x0114
+ 1193 ; # 52 "../../../include/ezintavecs.h"
+ 0114 32 1194 reti
+ 1195 ; # 94 "../../../include/ezintavecs.h"
+ 0118 1196 .org 0x0118
+ 1197 ; # 53 "../../../include/ezintavecs.h"
+ 0118 32 1198 reti
+ 1199 ; # 94 "../../../include/ezintavecs.h"
+ 0120 1200 .org 0x0120
+ 1201 ; # 54 "../../../include/ezintavecs.h"
+ 0120 32 1202 reti
+ 1203 ; # 94 "../../../include/ezintavecs.h"
+ 0124 1204 .org 0x0124
+ 1205 ; # 55 "../../../include/ezintavecs.h"
+ 0124 32 1206 reti
+ 1207 ; # 94 "../../../include/ezintavecs.h"
+ 0128 1208 .org 0x0128
+ 1209 ; # 56 "../../../include/ezintavecs.h"
+ 0128 32 1210 reti
+ 1211 ; # 94 "../../../include/ezintavecs.h"
+ 012C 1212 .org 0x012C
+ 1213 ; # 57 "../../../include/ezintavecs.h"
+ 012C 32 1214 reti
+ 1215 ; # 94 "../../../include/ezintavecs.h"
+ 0130 1216 .org 0x0130
+ 1217 ; # 58 "../../../include/ezintavecs.h"
+ 0130 32 1218 reti
+ 1219 ; # 94 "../../../include/ezintavecs.h"
+ 0134 1220 .org 0x0134
+ 1221 ; # 59 "../../../include/ezintavecs.h"
+ 0134 32 1222 reti
+ 1223 ; # 94 "../../../include/ezintavecs.h"
+ 0138 1224 .org 0x0138
+ 1225 ; # 60 "../../../include/ezintavecs.h"
+ 0138 32 1226 reti
+ 1227 ; # 94 "../../../include/ezintavecs.h"
+ 013C 1228 .org 0x013C
+ 1229 ; # 61 "../../../include/ezintavecs.h"
+ 013C 32 1230 reti
+ 1231 ; # 94 "../../../include/ezintavecs.h"
+ 0140 1232 .org 0x0140
+ 1233 ; # 62 "../../../include/ezintavecs.h"
+ 0140 32 1234 reti
+ 1235 ; # 94 "../../../include/ezintavecs.h"
+ 0148 1236 .org 0x0148
+ 1237 ; # 63 "../../../include/ezintavecs.h"
+ 0148 32 1238 reti
+ 1239 ; # 94 "../../../include/ezintavecs.h"
+ 014C 1240 .org 0x014C
+ 1241 ; # 64 "../../../include/ezintavecs.h"
+ 014C 32 1242 reti
+ 1243 ; # 94 "../../../include/ezintavecs.h"
+ 0150 1244 .org 0x0150
+ 1245 ; # 65 "../../../include/ezintavecs.h"
+ 0150 32 1246 reti
+ 1247 ; # 94 "../../../include/ezintavecs.h"
+ 0154 1248 .org 0x0154
+ 1249 ; # 66 "../../../include/ezintavecs.h"
+ 0154 32 1250 reti
+ 1251 ; # 94 "../../../include/ezintavecs.h"
+ 0158 1252 .org 0x0158
+ 1253 ; # 67 "../../../include/ezintavecs.h"
+ 0158 32 1254 reti
+ 1255 ; # 94 "../../../include/ezintavecs.h"
+ 015C 1256 .org 0x015C
+ 1257 ; # 68 "../../../include/ezintavecs.h"
+ 015C 32 1258 reti
+ 1259 ; # 94 "../../../include/ezintavecs.h"
+ 0160 1260 .org 0x0160
+ 1261 ; # 69 "../../../include/ezintavecs.h"
+ 0160 32 1262 reti
+ 1263 ; # 94 "../../../include/ezintavecs.h"
+ 0170 1264 .org 0x0170
+ 1265 ; # 70 "../../../include/ezintavecs.h"
+ 0170 32 1266 reti
+ 1267 ; # 94 "../../../include/ezintavecs.h"
+ 0174 1268 .org 0x0174
+ 1269 ; # 71 "../../../include/ezintavecs.h"
+ 0174 32 1270 reti
+ 1271 ; # 94 "../../../include/ezintavecs.h"
+ 0178 1272 .org 0x0178
+ 1273 ; # 72 "../../../include/ezintavecs.h"
+ 0178 32 1274 reti
+ 1275 ; # 94 "../../../include/ezintavecs.h"
+ 017C 1276 .org 0x017C
+ 1277 ; # 73 "../../../include/ezintavecs.h"
+ 017C 32 1278 reti
+ 1279 ; # 94 "../../../include/ezintavecs.h"
+ 0180 1280 .org 0x0180
+ 1281 ; # 74 "../../../include/ezintavecs.h"
+ 0180 32 1282 reti
+ 1283 ; # 94 "../../../include/ezintavecs.h"
+ 0184 1284 .org 0x0184
+ 1285 ; # 75 "../../../include/ezintavecs.h"
+ 0184 32 1286 reti
+ 1287 ; # 94 "../../../include/ezintavecs.h"
+ 0188 1288 .org 0x0188
+ 1289 ; # 76 "../../../include/ezintavecs.h"
+ 0188 32 1290 reti
+ 1291 ; # 94 "../../../include/ezintavecs.h"
+ 018C 1292 .org 0x018C
+ 1293 ; # 77 "../../../include/ezintavecs.h"
+ 018C 32 1294 reti
+ 1295 ; # 94 "../../../include/ezintavecs.h"
+ 0190 1296 .org 0x0190
+ 1297 ; # 78 "../../../include/ezintavecs.h"
+ 0190 32 1298 reti
+ 1299 ; # 94 "../../../include/ezintavecs.h"
+ 0194 1300 .org 0x0194
+ 1301 ; # 79 "../../../include/ezintavecs.h"
+ 0194 32 1302 reti
+ 1303 ; # 94 "../../../include/ezintavecs.h"
+ 0198 1304 .org 0x0198
+ 1305 ; # 80 "../../../include/ezintavecs.h"
+ 0198 32 1306 reti
+ 1307 ; # 94 "../../../include/ezintavecs.h"
+ 019C 1308 .org 0x019C
+ 1309 ; # 81 "../../../include/ezintavecs.h"
+ 019C 32 1310 reti
+ 1311 ; # 94 "../../../include/ezintavecs.h"
+ 01A0 1312 .org 0x01A0
+ 1313 ; # 82 "../../../include/ezintavecs.h"
+ 01A0 32 1314 reti
+ 1315 ; # 94 "../../../include/ezintavecs.h"
+ 01A8 1316 .org 0x01A8
+ 1317 ; # 83 "../../../include/ezintavecs.h"
+ 01A8 32 1318 reti
+ 1319 ; # 94 "../../../include/ezintavecs.h"
+ 01AC 1320 .org 0x01AC
+ 1321 ; # 84 "../../../include/ezintavecs.h"
+ 01AC 32 1322 reti
+ 1323 ; # 94 "../../../include/ezintavecs.h"
+ 01B0 1324 .org 0x01B0
+ 1325 ; # 85 "../../../include/ezintavecs.h"
+ 01B0 32 1326 reti
+ 1327 ; # 94 "../../../include/ezintavecs.h"
+ 01B4 1328 .org 0x01B4
+ 1329 ; # 101 "../../../include/ezintavecs.h"
+ 01B4 32 1330 reti
+ 01B8 1331 .org 0x01b8
+ 01B8 1332 INTVEC_DUMMY:
+ 01B8 32 1333 reti
+ 1334 .area CSEG (CODE)
+ 1335
+ 1336 ; naked function: no epilogue.
+ 1337 ;------------------------------------------------------------
+ 1338 ;Allocation info for local variables in function 'wait'
+ 1339 ;------------------------------------------------------------
+ 1340 ;ms Allocated to registers r2 r3
+ 1341 ;i Allocated to registers r6 r7
+ 1342 ;j Allocated to registers r4 r5
+ 1343 ;------------------------------------------------------------
+ 1344 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 1345 ; -----------------------------------------
+ 1346 ; function wait
+ 1347 ; -----------------------------------------
+ 0264 1348 _wait:
+ 0002 1349 ar2 = 0x02
+ 0003 1350 ar3 = 0x03
+ 0004 1351 ar4 = 0x04
+ 0005 1352 ar5 = 0x05
+ 0006 1353 ar6 = 0x06
+ 0007 1354 ar7 = 0x07
+ 0000 1355 ar0 = 0x00
+ 0001 1356 ar1 = 0x01
+ 0264 AA 82 1357 mov r2,dpl
+ 0266 AB 83 1358 mov r3,dph
+ 1359 ; ../../../include/ztex-utils.h:80: for (j=0; j> 8)
+ 05CA FD 2103 mov r5,a
+ 05CB 90 32 69 2104 mov dptr,#_debug_stack_ptr
+ 05CE EC 2105 mov a,r4
+ 05CF F0 2106 movx @dptr,a
+ 05D0 A3 2107 inc dptr
+ 05D1 ED 2108 mov a,r5
+ 05D2 F0 2109 movx @dptr,a
+ 2110 ; ../../../include/ztex-utils.h:120: AUTOPTRL1=LO(&($0));
+ 05D3 75 9B 6B 2111 mov _AUTOPTRL1,#_debug_msg_buf
+ 2112 ; ../../../include/ztex-utils.h:121: AUTOPTRH1=HI(&($0));
+ 05D6 7E 6B 2113 mov r6,#_debug_msg_buf
+ 05D8 7F 32 2114 mov r7,#(_debug_msg_buf >> 8)
+ 05DA 8F 9A 2115 mov _AUTOPTRH1,r7
+ 2116 ; ../../../include/ztex-utils.h:122: AUTOPTRL2=LO(&($1));
+ 05DC 8C 06 2117 mov ar6,r4
+ 05DE 8D 07 2118 mov ar7,r5
+ 05E0 8E 9E 2119 mov _AUTOPTRL2,r6
+ 2120 ; ../../../include/ztex-utils.h:123: AUTOPTRH2=HI(&($1));
+ 05E2 8D 9D 2121 mov _AUTOPTRH2,r5
+ 2122 ; ../../../include/ztex-utils.h:129: _endasm;
+ 2123
+ 05E4 C0 02 2124 push ar2
+ 05E6 7A 03 2125 mov r2,#(3);
+ 05E8 12 02 AC 2126 lcall _MEM_COPY1_int
+ 05EB D0 02 2127 pop ar2
+ 2128
+ 2129 ; ../../../include/ztex-debug.h:53: debug_counter += 1;
+ 05ED 90 32 05 2130 mov dptr,#_debug_counter
+ 05F0 74 01 2131 mov a,#0x01
+ 05F2 2A 2132 add a,r2
+ 05F3 F0 2133 movx @dptr,a
+ 05F4 E4 2134 clr a
+ 05F5 3B 2135 addc a,r3
+ 05F6 A3 2136 inc dptr
+ 05F7 F0 2137 movx @dptr,a
+ 05F8 22 2138 ret
+ 2139 ;------------------------------------------------------------
+ 2140 ;Allocation info for local variables in function 'debug_init'
+ 2141 ;------------------------------------------------------------
+ 2142 ;------------------------------------------------------------
+ 2143 ; ../../../include/ztex-debug.h:60: void debug_init () {
+ 2144 ; -----------------------------------------
+ 2145 ; function debug_init
+ 2146 ; -----------------------------------------
+ 05F9 2147 _debug_init:
+ 2148 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 05F9 90 32 05 2149 mov dptr,#_debug_counter
+ 05FC E4 2150 clr a
+ 05FD F0 2151 movx @dptr,a
+ 05FE A3 2152 inc dptr
+ 05FF F0 2153 movx @dptr,a
+ 2154 ; ../../../include/ztex-debug.h:62: debug_stack_size = DEBUG_STACK_SIZE;
+ 0600 90 32 07 2155 mov dptr,#_debug_stack_size
+ 0603 74 20 2156 mov a,#0x20
+ 0605 F0 2157 movx @dptr,a
+ 2158 ; ../../../include/ztex-debug.h:63: debug_msg_size = DEBUG_MSG_SIZE;
+ 0606 90 32 08 2159 mov dptr,#_debug_msg_size
+ 0609 74 03 2160 mov a,#0x03
+ 060B F0 2161 movx @dptr,a
+ 2162 ; ../../../include/ztex-debug.h:64: debug_stack_ptr = debug_stack;
+ 060C 90 32 69 2163 mov dptr,#_debug_stack_ptr
+ 060F 74 09 2164 mov a,#_debug_stack
+ 0611 F0 2165 movx @dptr,a
+ 0612 A3 2166 inc dptr
+ 0613 74 32 2167 mov a,#(_debug_stack >> 8)
+ 0615 F0 2168 movx @dptr,a
+ 0616 22 2169 ret
+ 2170 ;------------------------------------------------------------
+ 2171 ;Allocation info for local variables in function 'debug_read_ep0'
+ 2172 ;------------------------------------------------------------
+ 2173 ;b Allocated to registers r2
+ 2174 ;------------------------------------------------------------
+ 2175 ; ../../../include/ztex-debug.h:71: BYTE debug_read_ep0 () {
+ 2176 ; -----------------------------------------
+ 2177 ; function debug_read_ep0
+ 2178 ; -----------------------------------------
+ 0617 2179 _debug_read_ep0:
+ 2180 ; ../../../include/ztex-debug.h:73: b = ep0_payload_transfer;
+ 0617 90 32 72 2181 mov dptr,#_ep0_payload_transfer
+ 061A E0 2182 movx a,@dptr
+ 2183 ; ../../../include/ztex-debug.h:74: if ( b != 0) {
+ 061B FA 2184 mov r2,a
+ 061C 70 03 2185 jnz 00106$
+ 061E 02 06 3C 2186 ljmp 00102$
+ 0621 2187 00106$:
+ 2188 ; ../../../include/ztex-utils.h:120: AUTOPTRL1=LO(&($0));
+ 0621 90 32 6E 2189 mov dptr,#_debug_read_addr
+ 0624 E0 2190 movx a,@dptr
+ 0625 FB 2191 mov r3,a
+ 0626 A3 2192 inc dptr
+ 0627 E0 2193 movx a,@dptr
+ 0628 FC 2194 mov r4,a
+ 0629 8B 9B 2195 mov _AUTOPTRL1,r3
+ 2196 ; ../../../include/ztex-utils.h:121: AUTOPTRH1=HI(&($0));
+ 062B 8C 9A 2197 mov _AUTOPTRH1,r4
+ 2198 ; ../../../include/ztex-utils.h:122: AUTOPTRL2=LO(&($1));
+ 062D 75 9E 40 2199 mov _AUTOPTRL2,#0x40
+ 2200 ; ../../../include/ztex-utils.h:123: AUTOPTRH2=HI(&($1));
+ 0630 75 9D E7 2201 mov _AUTOPTRH2,#0xE7
+ 2202 ; ../../../include/ztex-utils.h:129: _endasm;
+ 2203
+ 0633 C0 02 2204 push ar2
+ 0635 7A F0 2205 mov r2,#(b);
+ 0637 12 02 AC 2206 lcall _MEM_COPY1_int
+ 063A D0 02 2207 pop ar2
+ 2208
+ 063C 2209 00102$:
+ 2210 ; ../../../include/ztex-debug.h:77: debug_read_addr += b;
+ 063C 90 32 6E 2211 mov dptr,#_debug_read_addr
+ 063F E0 2212 movx a,@dptr
+ 0640 FB 2213 mov r3,a
+ 0641 A3 2214 inc dptr
+ 0642 E0 2215 movx a,@dptr
+ 0643 FC 2216 mov r4,a
+ 0644 90 32 6E 2217 mov dptr,#_debug_read_addr
+ 0647 EA 2218 mov a,r2
+ 0648 2B 2219 add a,r3
+ 0649 F0 2220 movx @dptr,a
+ 064A E4 2221 clr a
+ 064B 3C 2222 addc a,r4
+ 064C A3 2223 inc dptr
+ 064D F0 2224 movx @dptr,a
+ 2225 ; ../../../include/ztex-debug.h:78: return b;
+ 064E 8A 82 2226 mov dpl,r2
+ 0650 22 2227 ret
+ 2228 ;------------------------------------------------------------
+ 2229 ;Allocation info for local variables in function 'abscode_identity'
+ 2230 ;------------------------------------------------------------
+ 2231 ;------------------------------------------------------------
+ 2232 ; ../../../include/ztex-descriptors.h:116: void abscode_identity() _naked
+ 2233 ; -----------------------------------------
+ 2234 ; function abscode_identity
+ 2235 ; -----------------------------------------
+ 0651 2236 _abscode_identity:
+ 2237 ; naked function: no prologue.
+ 2238 ; ../../../include/ztex-descriptors.h:170: .db MODULE_RESERVED_03
+ 2239
+ 2240 .area ABSCODE (ABS,CODE)
+ 2241
+ 006C 2242 .org 0x06c
+ 006C 28 2243 .db 40
+ 2244
+ 006D 2245 .org _ZTEX_DESCRIPTOR_VERSION
+ 006D 01 2246 .db 1
+ 2247
+ 006E 2248 .org _ZTEXID
+ 006E 5A 54 45 58 2249 .ascii "ZTEX"
+ 2250
+ 0072 2251 .org _PRODUCT_ID
+ 0072 00 2252 .db 0
+ 0073 00 2253 .db 0
+ 0074 00 2254 .db 0
+ 0075 00 2255 .db 0
+ 2256
+ 0076 2257 .org _FW_VERSION
+ 0076 00 2258 .db 0
+ 2259
+ 0077 2260 .org _INTERFACE_VERSION
+ 0077 01 2261 .db 1
+ 2262
+ 0078 2263 .org _INTERFACE_CAPABILITIES
+ 2264 ; # 158 "../../../include/ztex-descriptors.h"
+ 0078 09 2265 .db 0 + 1 + 8
+ 2266 ; # 160 "../../../include/ztex-descriptors.h"
+ 0079 00 2267 .db 0
+ 007A 00 2268 .db 0
+ 007B 00 2269 .db 0
+ 007C 00 2270 .db 0
+ 007D 00 2271 .db 0
+ 2272
+ 007E 2273 .org _MODULE_RESERVED
+ 007E 00 2274 .db 0
+ 007F 00 2275 .db 0
+ 0080 00 2276 .db 0
+ 0081 00 2277 .db 0
+ 0082 00 2278 .db 0
+ 0083 00 2279 .db 0
+ 0084 00 2280 .db 0
+ 0085 00 2281 .db 0
+ 0086 00 2282 .db 0
+ 0087 00 2283 .db 0
+ 0088 00 2284 .db 0
+ 0089 00 2285 .db 0
+ 2286
+ 008A 2287 .org _SN_STRING
+ 008A 30 30 30 30 30 30 2288 .ascii "0000000000"
+ 30 30 30 30
+ 2289
+ 2290 .area CSEG (CODE)
+ 2291
+ 2292 ; naked function: no epilogue.
+ 2293 ;------------------------------------------------------------
+ 2294 ;Allocation info for local variables in function 'resetToggleData'
+ 2295 ;------------------------------------------------------------
+ 2296 ;------------------------------------------------------------
+ 2297 ; ../../../include/ztex-isr.h:34: static void resetToggleData () {
+ 2298 ; -----------------------------------------
+ 2299 ; function resetToggleData
+ 2300 ; -----------------------------------------
+ 0651 2301 _resetToggleData:
+ 2302 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 2303 ; ../../../include/ztex-isr.h:46: TOGCTL = 0 | bmBIT5;
+ 2304 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 2305 ; ../../../include/ztex-isr.h:48: TOGCTL = 0x10 | bmBIT5;
+ 0651 90 E6 83 2306 mov dptr,#_TOGCTL
+ 0654 E4 2307 clr a
+ 0655 F0 2308 movx @dptr,a
+ 0656 74 20 2309 mov a,#0x20
+ 0658 F0 2310 movx @dptr,a
+ 0659 74 10 2311 mov a,#0x10
+ 065B F0 2312 movx @dptr,a
+ 065C 74 30 2313 mov a,#0x30
+ 065E F0 2314 movx @dptr,a
+ 2315 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 2316 ; ../../../include/ztex-isr.h:51: TOGCTL = 1 | bmBIT5;
+ 2317 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 2318 ; ../../../include/ztex-isr.h:55: TOGCTL = 0x11 | bmBIT5;
+ 065F 90 E6 83 2319 mov dptr,#_TOGCTL
+ 0662 74 01 2320 mov a,#0x01
+ 0664 F0 2321 movx @dptr,a
+ 0665 74 21 2322 mov a,#0x21
+ 0667 F0 2323 movx @dptr,a
+ 0668 74 11 2324 mov a,#0x11
+ 066A F0 2325 movx @dptr,a
+ 066B 74 31 2326 mov a,#0x31
+ 066D F0 2327 movx @dptr,a
+ 066E 22 2328 ret
+ 2329 ;------------------------------------------------------------
+ 2330 ;Allocation info for local variables in function 'sendStringDescriptor'
+ 2331 ;------------------------------------------------------------
+ 2332 ;hiAddr Allocated with name '_sendStringDescriptor_PARM_2'
+ 2333 ;size Allocated with name '_sendStringDescriptor_PARM_3'
+ 2334 ;loAddr Allocated to registers r2
+ 2335 ;i Allocated to registers r2
+ 2336 ;------------------------------------------------------------
+ 2337 ; ../../../include/ztex-isr.h:68: static void sendStringDescriptor (BYTE loAddr, BYTE hiAddr, BYTE size)
+ 2338 ; -----------------------------------------
+ 2339 ; function sendStringDescriptor
+ 2340 ; -----------------------------------------
+ 066F 2341 _sendStringDescriptor:
+ 066F AA 82 2342 mov r2,dpl
+ 2343 ; ../../../include/ztex-isr.h:71: if ( size > 31)
+ 0671 E5 10 2344 mov a,_sendStringDescriptor_PARM_3
+ 0673 24 E0 2345 add a,#0xff - 0x1F
+ 0675 50 03 2346 jnc 00102$
+ 2347 ; ../../../include/ztex-isr.h:72: size = 31;
+ 0677 75 10 1F 2348 mov _sendStringDescriptor_PARM_3,#0x1F
+ 067A 2349 00102$:
+ 2350 ; ../../../include/ztex-isr.h:73: AUTOPTRSETUP = 7;
+ 067A 75 AF 07 2351 mov _AUTOPTRSETUP,#0x07
+ 2352 ; ../../../include/ztex-isr.h:74: AUTOPTRL1 = loAddr;
+ 067D 8A 9B 2353 mov _AUTOPTRL1,r2
+ 2354 ; ../../../include/ztex-isr.h:75: AUTOPTRH1 = hiAddr;
+ 067F 85 0F 9A 2355 mov _AUTOPTRH1,_sendStringDescriptor_PARM_2
+ 2356 ; ../../../include/ztex-isr.h:76: AUTOPTRL2 = (BYTE)(((unsigned short)(&EP0BUF))+1);
+ 0682 75 9E 41 2357 mov _AUTOPTRL2,#0x41
+ 2358 ; ../../../include/ztex-isr.h:77: AUTOPTRH2 = (BYTE)((((unsigned short)(&EP0BUF))+1) >> 8);
+ 0685 75 9D E7 2359 mov _AUTOPTRH2,#0xE7
+ 2360 ; ../../../include/ztex-isr.h:78: XAUTODAT2 = 3;
+ 0688 90 E6 7C 2361 mov dptr,#_XAUTODAT2
+ 068B 74 03 2362 mov a,#0x03
+ 068D F0 2363 movx @dptr,a
+ 2364 ; ../../../include/ztex-isr.h:79: for (i=0; i 64 ) ? 64 : ep0_payload_remaining;
+ 06C2 90 32 70 2416 mov dptr,#_ep0_payload_remaining
+ 06C5 E0 2417 movx a,@dptr
+ 06C6 FA 2418 mov r2,a
+ 06C7 A3 2419 inc dptr
+ 06C8 E0 2420 movx a,@dptr
+ 06C9 FB 2421 mov r3,a
+ 06CA C3 2422 clr c
+ 06CB 74 40 2423 mov a,#0x40
+ 06CD 9A 2424 subb a,r2
+ 06CE E4 2425 clr a
+ 06CF 9B 2426 subb a,r3
+ 06D0 50 06 2427 jnc 00103$
+ 06D2 7C 40 2428 mov r4,#0x40
+ 06D4 7D 00 2429 mov r5,#0x00
+ 06D6 80 04 2430 sjmp 00104$
+ 06D8 2431 00103$:
+ 06D8 8A 04 2432 mov ar4,r2
+ 06DA 8B 05 2433 mov ar5,r3
+ 06DC 2434 00104$:
+ 06DC 90 32 72 2435 mov dptr,#_ep0_payload_transfer
+ 06DF EC 2436 mov a,r4
+ 06E0 F0 2437 movx @dptr,a
+ 2438 ; ../../../include/ztex-isr.h:95: ep0_payload_remaining -= ep0_payload_transfer;
+ 06E1 7D 00 2439 mov r5,#0x00
+ 06E3 90 32 70 2440 mov dptr,#_ep0_payload_remaining
+ 06E6 EA 2441 mov a,r2
+ 06E7 C3 2442 clr c
+ 06E8 9C 2443 subb a,r4
+ 06E9 F0 2444 movx @dptr,a
+ 06EA EB 2445 mov a,r3
+ 06EB 9D 2446 subb a,r5
+ 06EC A3 2447 inc dptr
+ 06ED F0 2448 movx @dptr,a
+ 06EE 22 2449 ret
+ 2450 ;------------------------------------------------------------
+ 2451 ;Allocation info for local variables in function 'ep0_vendor_cmd_su'
+ 2452 ;------------------------------------------------------------
+ 2453 ;------------------------------------------------------------
+ 2454 ; ../../../include/ztex-isr.h:102: static void ep0_vendor_cmd_su() {
+ 2455 ; -----------------------------------------
+ 2456 ; function ep0_vendor_cmd_su
+ 2457 ; -----------------------------------------
+ 06EF 2458 _ep0_vendor_cmd_su:
+ 2459 ; ../../../include/ztex-isr.h:103: switch ( ep0_prev_setup_request ) {
+ 06EF 90 32 73 2460 mov dptr,#_ep0_prev_setup_request
+ 06F2 E0 2461 movx a,@dptr
+ 06F3 FA 2462 mov r2,a
+ 06F4 BA 39 24 2463 cjne r2,#0x39,00102$
+ 2464 ; ../../../include/ztex-eeprom.h:233: eeprom_write_checksum = 0;
+ 06F7 90 32 04 2465 mov dptr,#_eeprom_write_checksum
+ 2466 ; ../../../include/ztex-eeprom.h:234: eeprom_write_bytes = 0;
+ 06FA E4 2467 clr a
+ 06FB F0 2468 movx @dptr,a
+ 06FC 90 32 02 2469 mov dptr,#_eeprom_write_bytes
+ 06FF F0 2470 movx @dptr,a
+ 0700 A3 2471 inc dptr
+ 0701 F0 2472 movx @dptr,a
+ 2473 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0702 90 E6 BB 2474 mov dptr,#(_SETUPDAT + 0x0003)
+ 0705 E0 2475 movx a,@dptr
+ 0706 FB 2476 mov r3,a
+ 0707 7A 00 2477 mov r2,#0x00
+ 0709 90 E6 BA 2478 mov dptr,#(_SETUPDAT + 0x0002)
+ 070C E0 2479 movx a,@dptr
+ 070D FC 2480 mov r4,a
+ 070E 7D 00 2481 mov r5,#0x00
+ 0710 90 32 00 2482 mov dptr,#_eeprom_addr
+ 0713 EC 2483 mov a,r4
+ 0714 4A 2484 orl a,r2
+ 0715 F0 2485 movx @dptr,a
+ 0716 ED 2486 mov a,r5
+ 0717 4B 2487 orl a,r3
+ 0718 A3 2488 inc dptr
+ 0719 F0 2489 movx @dptr,a
+ 2490 ; ../../../include/ztex-conf.h:115: break;
+ 2491 ; ../../../include/ztex-isr.h:105: default:
+ 071A 22 2492 ret
+ 071B 2493 00102$:
+ 2494 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 071B 90 E6 A0 2495 mov dptr,#_EP0CS
+ 071E E0 2496 movx a,@dptr
+ 071F 44 01 2497 orl a,#0x01
+ 0721 F0 2498 movx @dptr,a
+ 2499 ; ../../../include/ztex-isr.h:107: }
+ 0722 22 2500 ret
+ 2501 ;------------------------------------------------------------
+ 2502 ;Allocation info for local variables in function 'SUDAV_ISR'
+ 2503 ;------------------------------------------------------------
+ 2504 ;a Allocated to registers r2
+ 2505 ;------------------------------------------------------------
+ 2506 ; ../../../include/ztex-isr.h:113: static void SUDAV_ISR () interrupt
+ 2507 ; -----------------------------------------
+ 2508 ; function SUDAV_ISR
+ 2509 ; -----------------------------------------
+ 0723 2510 _SUDAV_ISR:
+ 0723 C0 20 2511 push bits
+ 0725 C0 E0 2512 push acc
+ 0727 C0 F0 2513 push b
+ 0729 C0 82 2514 push dpl
+ 072B C0 83 2515 push dph
+ 072D C0 02 2516 push (0+2)
+ 072F C0 03 2517 push (0+3)
+ 0731 C0 04 2518 push (0+4)
+ 0733 C0 05 2519 push (0+5)
+ 0735 C0 06 2520 push (0+6)
+ 0737 C0 07 2521 push (0+7)
+ 0739 C0 00 2522 push (0+0)
+ 073B C0 01 2523 push (0+1)
+ 073D C0 D0 2524 push psw
+ 073F 75 D0 00 2525 mov psw,#0x00
+ 2526 ; ../../../include/ztex-isr.h:116: ep0_prev_setup_request = bRequest;
+ 0742 90 E6 B9 2527 mov dptr,#_bRequest
+ 0745 E0 2528 movx a,@dptr
+ 0746 FA 2529 mov r2,a
+ 0747 90 32 73 2530 mov dptr,#_ep0_prev_setup_request
+ 074A F0 2531 movx @dptr,a
+ 2532 ; ../../../include/ztex-isr.h:117: SUDPTRCTL = 1;
+ 074B 90 E6 B5 2533 mov dptr,#_SUDPTRCTL
+ 074E 74 01 2534 mov a,#0x01
+ 0750 F0 2535 movx @dptr,a
+ 2536 ; ../../../include/ztex-isr.h:120: switch ( bRequest ) {
+ 0751 90 E6 B9 2537 mov dptr,#_bRequest
+ 0754 E0 2538 movx a,@dptr
+ 0755 FA 2539 mov r2,a
+ 0756 24 F3 2540 add a,#0xff - 0x0C
+ 0758 50 03 2541 jnc 00214$
+ 075A 02 0A D9 2542 ljmp 00160$
+ 075D 2543 00214$:
+ 075D EA 2544 mov a,r2
+ 075E 2A 2545 add a,r2
+ 075F 2A 2546 add a,r2
+ 0760 90 07 64 2547 mov dptr,#00215$
+ 0763 73 2548 jmp @a+dptr
+ 0764 2549 00215$:
+ 0764 02 07 8B 2550 ljmp 00101$
+ 0767 02 08 3F 2551 ljmp 00112$
+ 076A 02 0A D9 2552 ljmp 00160$
+ 076D 02 08 BC 2553 ljmp 00122$
+ 0770 02 0A D9 2554 ljmp 00160$
+ 0773 02 0A D9 2555 ljmp 00160$
+ 0776 02 09 54 2556 ljmp 00132$
+ 0779 02 0A 6F 2557 ljmp 00152$
+ 077C 02 0A 71 2558 ljmp 00153$
+ 077F 02 0A 82 2559 ljmp 00154$
+ 0782 02 0A 87 2560 ljmp 00155$
+ 0785 02 0A 98 2561 ljmp 00156$
+ 0788 02 0A 9D 2562 ljmp 00157$
+ 2563 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 078B 2564 00101$:
+ 2565 ; ../../../include/ztex-isr.h:122: switch(SETUPDAT[0]) {
+ 078B 90 E6 B8 2566 mov dptr,#_SETUPDAT
+ 078E E0 2567 movx a,@dptr
+ 078F FA 2568 mov r2,a
+ 0790 BA 80 02 2569 cjne r2,#0x80,00216$
+ 0793 80 0D 2570 sjmp 00102$
+ 0795 2571 00216$:
+ 0795 BA 81 02 2572 cjne r2,#0x81,00217$
+ 0798 80 1E 2573 sjmp 00103$
+ 079A 2574 00217$:
+ 079A BA 82 02 2575 cjne r2,#0x82,00218$
+ 079D 80 2F 2576 sjmp 00104$
+ 079F 2577 00218$:
+ 079F 02 0A D9 2578 ljmp 00160$
+ 2579 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 07A2 2580 00102$:
+ 07A2 90 E7 40 2581 mov dptr,#_EP0BUF
+ 2582 ; ../../../include/ztex-isr.h:125: EP0BUF[1] = 0;
+ 2583 ; ../../../include/ztex-isr.h:126: EP0BCH = 0;
+ 07A5 E4 2584 clr a
+ 07A6 F0 2585 movx @dptr,a
+ 07A7 90 E7 41 2586 mov dptr,#(_EP0BUF + 0x0001)
+ 07AA F0 2587 movx @dptr,a
+ 07AB 90 E6 8A 2588 mov dptr,#_EP0BCH
+ 07AE F0 2589 movx @dptr,a
+ 2590 ; ../../../include/ztex-isr.h:127: EP0BCL = 2;
+ 07AF 90 E6 8B 2591 mov dptr,#_EP0BCL
+ 07B2 74 02 2592 mov a,#0x02
+ 07B4 F0 2593 movx @dptr,a
+ 2594 ; ../../../include/ztex-isr.h:128: break;
+ 07B5 02 0A D9 2595 ljmp 00160$
+ 2596 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 07B8 2597 00103$:
+ 07B8 90 E7 40 2598 mov dptr,#_EP0BUF
+ 2599 ; ../../../include/ztex-isr.h:131: EP0BUF[1] = 0;
+ 2600 ; ../../../include/ztex-isr.h:132: EP0BCH = 0;
+ 07BB E4 2601 clr a
+ 07BC F0 2602 movx @dptr,a
+ 07BD 90 E7 41 2603 mov dptr,#(_EP0BUF + 0x0001)
+ 07C0 F0 2604 movx @dptr,a
+ 07C1 90 E6 8A 2605 mov dptr,#_EP0BCH
+ 07C4 F0 2606 movx @dptr,a
+ 2607 ; ../../../include/ztex-isr.h:133: EP0BCL = 2;
+ 07C5 90 E6 8B 2608 mov dptr,#_EP0BCL
+ 07C8 74 02 2609 mov a,#0x02
+ 07CA F0 2610 movx @dptr,a
+ 2611 ; ../../../include/ztex-isr.h:134: break;
+ 07CB 02 0A D9 2612 ljmp 00160$
+ 2613 ; ../../../include/ztex-isr.h:135: case 0x82:
+ 07CE 2614 00104$:
+ 2615 ; ../../../include/ztex-isr.h:136: switch ( SETUPDAT[4] ) {
+ 07CE 90 E6 BC 2616 mov dptr,#(_SETUPDAT + 0x0004)
+ 07D1 E0 2617 movx a,@dptr
+ 07D2 FA 2618 mov r2,a
+ 07D3 60 0F 2619 jz 00106$
+ 07D5 BA 01 02 2620 cjne r2,#0x01,00220$
+ 07D8 80 19 2621 sjmp 00107$
+ 07DA 2622 00220$:
+ 07DA BA 80 02 2623 cjne r2,#0x80,00221$
+ 07DD 80 05 2624 sjmp 00106$
+ 07DF 2625 00221$:
+ 2626 ; ../../../include/ztex-isr.h:138: case 0x80 :
+ 07DF BA 81 2F 2627 cjne r2,#0x81,00109$
+ 07E2 80 1E 2628 sjmp 00108$
+ 07E4 2629 00106$:
+ 2630 ; ../../../include/ztex-isr.h:139: EP0BUF[0] = EP0CS & bmBIT0;
+ 07E4 90 E6 A0 2631 mov dptr,#_EP0CS
+ 07E7 E0 2632 movx a,@dptr
+ 07E8 FA 2633 mov r2,a
+ 07E9 53 02 01 2634 anl ar2,#0x01
+ 07EC 90 E7 40 2635 mov dptr,#_EP0BUF
+ 07EF EA 2636 mov a,r2
+ 07F0 F0 2637 movx @dptr,a
+ 2638 ; ../../../include/ztex-isr.h:140: break;
+ 2639 ; ../../../include/ztex-isr.h:141: case 0x01 :
+ 07F1 80 3A 2640 sjmp 00110$
+ 07F3 2641 00107$:
+ 2642 ; ../../../include/ztex-isr.h:142: EP0BUF[0] = EP1OUTCS & bmBIT0;
+ 07F3 90 E6 A1 2643 mov dptr,#_EP1OUTCS
+ 07F6 E0 2644 movx a,@dptr
+ 07F7 FA 2645 mov r2,a
+ 07F8 53 02 01 2646 anl ar2,#0x01
+ 07FB 90 E7 40 2647 mov dptr,#_EP0BUF
+ 07FE EA 2648 mov a,r2
+ 07FF F0 2649 movx @dptr,a
+ 2650 ; ../../../include/ztex-isr.h:143: break;
+ 2651 ; ../../../include/ztex-isr.h:144: case 0x81 :
+ 0800 80 2B 2652 sjmp 00110$
+ 0802 2653 00108$:
+ 2654 ; ../../../include/ztex-isr.h:145: EP0BUF[0] = EP1INCS & bmBIT0;
+ 0802 90 E6 A2 2655 mov dptr,#_EP1INCS
+ 0805 E0 2656 movx a,@dptr
+ 0806 FA 2657 mov r2,a
+ 0807 53 02 01 2658 anl ar2,#0x01
+ 080A 90 E7 40 2659 mov dptr,#_EP0BUF
+ 080D EA 2660 mov a,r2
+ 080E F0 2661 movx @dptr,a
+ 2662 ; ../../../include/ztex-isr.h:146: break;
+ 2663 ; ../../../include/ztex-isr.h:147: default:
+ 080F 80 1C 2664 sjmp 00110$
+ 0811 2665 00109$:
+ 2666 ; ../../../include/ztex-isr.h:148: EP0BUF[0] = EPXCS[ ((SETUPDAT[4] >> 1)-1) & 3 ] & bmBIT0;
+ 0811 90 E6 BC 2667 mov dptr,#(_SETUPDAT + 0x0004)
+ 0814 E0 2668 movx a,@dptr
+ 0815 C3 2669 clr c
+ 0816 13 2670 rrc a
+ 0817 14 2671 dec a
+ 0818 54 03 2672 anl a,#0x03
+ 081A 24 A3 2673 add a,#_EPXCS
+ 081C F5 82 2674 mov dpl,a
+ 081E E4 2675 clr a
+ 081F 34 E6 2676 addc a,#(_EPXCS >> 8)
+ 0821 F5 83 2677 mov dph,a
+ 0823 E0 2678 movx a,@dptr
+ 0824 FA 2679 mov r2,a
+ 0825 53 02 01 2680 anl ar2,#0x01
+ 0828 90 E7 40 2681 mov dptr,#_EP0BUF
+ 082B EA 2682 mov a,r2
+ 082C F0 2683 movx @dptr,a
+ 2684 ; ../../../include/ztex-isr.h:150: }
+ 082D 2685 00110$:
+ 2686 ; ../../../include/ztex-isr.h:151: EP0BUF[1] = 0;
+ 082D 90 E7 41 2687 mov dptr,#(_EP0BUF + 0x0001)
+ 2688 ; ../../../include/ztex-isr.h:152: EP0BCH = 0;
+ 0830 E4 2689 clr a
+ 0831 F0 2690 movx @dptr,a
+ 0832 90 E6 8A 2691 mov dptr,#_EP0BCH
+ 0835 F0 2692 movx @dptr,a
+ 2693 ; ../../../include/ztex-isr.h:153: EP0BCL = 2;
+ 0836 90 E6 8B 2694 mov dptr,#_EP0BCL
+ 0839 74 02 2695 mov a,#0x02
+ 083B F0 2696 movx @dptr,a
+ 2697 ; ../../../include/ztex-isr.h:156: break;
+ 083C 02 0A D9 2698 ljmp 00160$
+ 2699 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 083F 2700 00112$:
+ 2701 ; ../../../include/ztex-isr.h:158: if ( SETUPDAT[0] == 2 && SETUPDAT[2] == 0 ) {
+ 083F 90 E6 B8 2702 mov dptr,#_SETUPDAT
+ 0842 E0 2703 movx a,@dptr
+ 0843 FA 2704 mov r2,a
+ 0844 BA 02 02 2705 cjne r2,#0x02,00223$
+ 0847 80 03 2706 sjmp 00224$
+ 0849 2707 00223$:
+ 0849 02 0A D9 2708 ljmp 00160$
+ 084C 2709 00224$:
+ 084C 90 E6 BA 2710 mov dptr,#(_SETUPDAT + 0x0002)
+ 084F E0 2711 movx a,@dptr
+ 0850 60 03 2712 jz 00225$
+ 0852 02 0A D9 2713 ljmp 00160$
+ 0855 2714 00225$:
+ 2715 ; ../../../include/ztex-isr.h:159: switch ( SETUPDAT[4] ) {
+ 0855 90 E6 BC 2716 mov dptr,#(_SETUPDAT + 0x0004)
+ 0858 E0 2717 movx a,@dptr
+ 0859 FA 2718 mov r2,a
+ 085A 60 0F 2719 jz 00114$
+ 085C BA 01 02 2720 cjne r2,#0x01,00227$
+ 085F 80 15 2721 sjmp 00115$
+ 0861 2722 00227$:
+ 0861 BA 80 02 2723 cjne r2,#0x80,00228$
+ 0864 80 05 2724 sjmp 00114$
+ 0866 2725 00228$:
+ 2726 ; ../../../include/ztex-isr.h:161: case 0x80 :
+ 0866 BA 81 23 2727 cjne r2,#0x81,00117$
+ 0869 80 16 2728 sjmp 00116$
+ 086B 2729 00114$:
+ 2730 ; ../../../include/ztex-isr.h:162: EP0CS &= ~bmBIT0;
+ 086B 90 E6 A0 2731 mov dptr,#_EP0CS
+ 086E E0 2732 movx a,@dptr
+ 086F FA 2733 mov r2,a
+ 0870 54 FE 2734 anl a,#0xFE
+ 0872 F0 2735 movx @dptr,a
+ 2736 ; ../../../include/ztex-isr.h:163: break;
+ 0873 02 0A D9 2737 ljmp 00160$
+ 2738 ; ../../../include/ztex-isr.h:164: case 0x01 :
+ 0876 2739 00115$:
+ 2740 ; ../../../include/ztex-isr.h:165: EP1OUTCS &= ~bmBIT0;
+ 0876 90 E6 A1 2741 mov dptr,#_EP1OUTCS
+ 0879 E0 2742 movx a,@dptr
+ 087A FA 2743 mov r2,a
+ 087B 54 FE 2744 anl a,#0xFE
+ 087D F0 2745 movx @dptr,a
+ 2746 ; ../../../include/ztex-isr.h:166: break;
+ 087E 02 0A D9 2747 ljmp 00160$
+ 2748 ; ../../../include/ztex-isr.h:167: case 0x81 :
+ 0881 2749 00116$:
+ 2750 ; ../../../include/ztex-isr.h:168: EP1INCS &= ~bmBIT0;
+ 0881 90 E6 A2 2751 mov dptr,#_EP1INCS
+ 0884 E0 2752 movx a,@dptr
+ 0885 FA 2753 mov r2,a
+ 0886 54 FE 2754 anl a,#0xFE
+ 0888 F0 2755 movx @dptr,a
+ 2756 ; ../../../include/ztex-isr.h:169: break;
+ 0889 02 0A D9 2757 ljmp 00160$
+ 2758 ; ../../../include/ztex-isr.h:170: default:
+ 088C 2759 00117$:
+ 2760 ; ../../../include/ztex-isr.h:171: EPXCS[ ((SETUPDAT[4] >> 1)-1) & 3 ] &= ~bmBIT0;
+ 088C 90 E6 BC 2761 mov dptr,#(_SETUPDAT + 0x0004)
+ 088F E0 2762 movx a,@dptr
+ 0890 C3 2763 clr c
+ 0891 13 2764 rrc a
+ 0892 14 2765 dec a
+ 0893 54 03 2766 anl a,#0x03
+ 0895 24 A3 2767 add a,#_EPXCS
+ 0897 FA 2768 mov r2,a
+ 0898 E4 2769 clr a
+ 0899 34 E6 2770 addc a,#(_EPXCS >> 8)
+ 089B FB 2771 mov r3,a
+ 089C 90 E6 BC 2772 mov dptr,#(_SETUPDAT + 0x0004)
+ 089F E0 2773 movx a,@dptr
+ 08A0 C3 2774 clr c
+ 08A1 13 2775 rrc a
+ 08A2 14 2776 dec a
+ 08A3 54 03 2777 anl a,#0x03
+ 08A5 24 A3 2778 add a,#_EPXCS
+ 08A7 F5 82 2779 mov dpl,a
+ 08A9 E4 2780 clr a
+ 08AA 34 E6 2781 addc a,#(_EPXCS >> 8)
+ 08AC F5 83 2782 mov dph,a
+ 08AE E0 2783 movx a,@dptr
+ 08AF FC 2784 mov r4,a
+ 08B0 53 04 FE 2785 anl ar4,#0xFE
+ 08B3 8A 82 2786 mov dpl,r2
+ 08B5 8B 83 2787 mov dph,r3
+ 08B7 EC 2788 mov a,r4
+ 08B8 F0 2789 movx @dptr,a
+ 2790 ; ../../../include/ztex-isr.h:175: break;
+ 08B9 02 0A D9 2791 ljmp 00160$
+ 2792 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 08BC 2793 00122$:
+ 2794 ; ../../../include/ztex-isr.h:177: if ( SETUPDAT[0] == 2 && SETUPDAT[2] == 0 ) {
+ 08BC 90 E6 B8 2795 mov dptr,#_SETUPDAT
+ 08BF E0 2796 movx a,@dptr
+ 08C0 FA 2797 mov r2,a
+ 08C1 BA 02 02 2798 cjne r2,#0x02,00230$
+ 08C4 80 03 2799 sjmp 00231$
+ 08C6 2800 00230$:
+ 08C6 02 0A D9 2801 ljmp 00160$
+ 08C9 2802 00231$:
+ 08C9 90 E6 BA 2803 mov dptr,#(_SETUPDAT + 0x0002)
+ 08CC E0 2804 movx a,@dptr
+ 08CD 60 03 2805 jz 00232$
+ 08CF 02 0A D9 2806 ljmp 00160$
+ 08D2 2807 00232$:
+ 2808 ; ../../../include/ztex-isr.h:178: switch ( SETUPDAT[4] ) {
+ 08D2 90 E6 BC 2809 mov dptr,#(_SETUPDAT + 0x0004)
+ 08D5 E0 2810 movx a,@dptr
+ 08D6 FA 2811 mov r2,a
+ 08D7 60 0F 2812 jz 00124$
+ 08D9 BA 01 02 2813 cjne r2,#0x01,00234$
+ 08DC 80 14 2814 sjmp 00125$
+ 08DE 2815 00234$:
+ 08DE BA 80 02 2816 cjne r2,#0x80,00235$
+ 08E1 80 05 2817 sjmp 00124$
+ 08E3 2818 00235$:
+ 2819 ; ../../../include/ztex-isr.h:180: case 0x80 :
+ 08E3 BA 81 20 2820 cjne r2,#0x81,00127$
+ 08E6 80 14 2821 sjmp 00126$
+ 08E8 2822 00124$:
+ 2823 ; ../../../include/ztex-isr.h:181: EP0CS |= bmBIT0;
+ 08E8 90 E6 A0 2824 mov dptr,#_EP0CS
+ 08EB E0 2825 movx a,@dptr
+ 08EC FA 2826 mov r2,a
+ 08ED 44 01 2827 orl a,#0x01
+ 08EF F0 2828 movx @dptr,a
+ 2829 ; ../../../include/ztex-isr.h:182: break;
+ 2830 ; ../../../include/ztex-isr.h:183: case 0x01 :
+ 08F0 80 41 2831 sjmp 00128$
+ 08F2 2832 00125$:
+ 2833 ; ../../../include/ztex-isr.h:184: EP1OUTCS |= bmBIT0;
+ 08F2 90 E6 A1 2834 mov dptr,#_EP1OUTCS
+ 08F5 E0 2835 movx a,@dptr
+ 08F6 FA 2836 mov r2,a
+ 08F7 44 01 2837 orl a,#0x01
+ 08F9 F0 2838 movx @dptr,a
+ 2839 ; ../../../include/ztex-isr.h:185: break;
+ 2840 ; ../../../include/ztex-isr.h:186: case 0x81 :
+ 08FA 80 37 2841 sjmp 00128$
+ 08FC 2842 00126$:
+ 2843 ; ../../../include/ztex-isr.h:187: EP1INCS |= bmBIT0;
+ 08FC 90 E6 A2 2844 mov dptr,#_EP1INCS
+ 08FF E0 2845 movx a,@dptr
+ 0900 FA 2846 mov r2,a
+ 0901 44 01 2847 orl a,#0x01
+ 0903 F0 2848 movx @dptr,a
+ 2849 ; ../../../include/ztex-isr.h:188: break;
+ 2850 ; ../../../include/ztex-isr.h:189: default:
+ 0904 80 2D 2851 sjmp 00128$
+ 0906 2852 00127$:
+ 2853 ; ../../../include/ztex-isr.h:190: EPXCS[ ((SETUPDAT[4] >> 1)-1) & 3 ] |= ~bmBIT0;
+ 0906 90 E6 BC 2854 mov dptr,#(_SETUPDAT + 0x0004)
+ 0909 E0 2855 movx a,@dptr
+ 090A C3 2856 clr c
+ 090B 13 2857 rrc a
+ 090C 14 2858 dec a
+ 090D 54 03 2859 anl a,#0x03
+ 090F 24 A3 2860 add a,#_EPXCS
+ 0911 FA 2861 mov r2,a
+ 0912 E4 2862 clr a
+ 0913 34 E6 2863 addc a,#(_EPXCS >> 8)
+ 0915 FB 2864 mov r3,a
+ 0916 90 E6 BC 2865 mov dptr,#(_SETUPDAT + 0x0004)
+ 0919 E0 2866 movx a,@dptr
+ 091A C3 2867 clr c
+ 091B 13 2868 rrc a
+ 091C 14 2869 dec a
+ 091D 54 03 2870 anl a,#0x03
+ 091F 24 A3 2871 add a,#_EPXCS
+ 0921 F5 82 2872 mov dpl,a
+ 0923 E4 2873 clr a
+ 0924 34 E6 2874 addc a,#(_EPXCS >> 8)
+ 0926 F5 83 2875 mov dph,a
+ 0928 E0 2876 movx a,@dptr
+ 0929 FC 2877 mov r4,a
+ 092A 43 04 FE 2878 orl ar4,#0xFE
+ 092D 8A 82 2879 mov dpl,r2
+ 092F 8B 83 2880 mov dph,r3
+ 0931 EC 2881 mov a,r4
+ 0932 F0 2882 movx @dptr,a
+ 2883 ; ../../../include/ztex-isr.h:192: }
+ 0933 2884 00128$:
+ 2885 ; ../../../include/ztex-isr.h:193: a = ( (SETUPDAT[4] & 0x80) >> 3 ) | (SETUPDAT[4] & 0x0f);
+ 0933 90 E6 BC 2886 mov dptr,#(_SETUPDAT + 0x0004)
+ 0936 E0 2887 movx a,@dptr
+ 0937 54 80 2888 anl a,#0x80
+ 0939 C4 2889 swap a
+ 093A 23 2890 rl a
+ 093B 54 1F 2891 anl a,#0x1f
+ 093D FA 2892 mov r2,a
+ 093E 90 E6 BC 2893 mov dptr,#(_SETUPDAT + 0x0004)
+ 0941 E0 2894 movx a,@dptr
+ 0942 FB 2895 mov r3,a
+ 0943 74 0F 2896 mov a,#0x0F
+ 0945 5B 2897 anl a,r3
+ 0946 42 02 2898 orl ar2,a
+ 2899 ; ../../../include/ztex-isr.h:194: TOGCTL = a;
+ 2900 ; ../../../include/ztex-isr.h:195: TOGCTL = a | bmBIT5;
+ 0948 90 E6 83 2901 mov dptr,#_TOGCTL
+ 094B EA 2902 mov a,r2
+ 094C F0 2903 movx @dptr,a
+ 094D 74 20 2904 mov a,#0x20
+ 094F 4A 2905 orl a,r2
+ 0950 F0 2906 movx @dptr,a
+ 2907 ; ../../../include/ztex-isr.h:197: break;
+ 0951 02 0A D9 2908 ljmp 00160$
+ 2909 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0954 2910 00132$:
+ 2911 ; ../../../include/ztex-isr.h:199: switch(SETUPDAT[3]) {
+ 0954 90 E6 BB 2912 mov dptr,#(_SETUPDAT + 0x0003)
+ 0957 E0 2913 movx a,@dptr
+ 0958 FA 2914 mov r2,a
+ 0959 BA 01 02 2915 cjne r2,#0x01,00237$
+ 095C 80 19 2916 sjmp 00133$
+ 095E 2917 00237$:
+ 095E BA 02 02 2918 cjne r2,#0x02,00238$
+ 0961 80 26 2919 sjmp 00134$
+ 0963 2920 00238$:
+ 0963 BA 03 02 2921 cjne r2,#0x03,00239$
+ 0966 80 4D 2922 sjmp 00138$
+ 0968 2923 00239$:
+ 0968 BA 06 03 2924 cjne r2,#0x06,00240$
+ 096B 02 0A 28 2925 ljmp 00145$
+ 096E 2926 00240$:
+ 096E BA 07 03 2927 cjne r2,#0x07,00241$
+ 0971 02 0A 3A 2928 ljmp 00146$
+ 0974 2929 00241$:
+ 0974 02 0A 65 2930 ljmp 00150$
+ 2931 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0977 2932 00133$:
+ 2933 ; ../../../include/ztex-isr.h:201: SUDPTRH = MSB(&DeviceDescriptor);
+ 0977 7A B4 2934 mov r2,#_DeviceDescriptor
+ 0979 7B 10 2935 mov r3,#(_DeviceDescriptor >> 8)
+ 097B 90 E6 B3 2936 mov dptr,#_SUDPTRH
+ 097E EB 2937 mov a,r3
+ 097F F0 2938 movx @dptr,a
+ 2939 ; ../../../include/ztex-isr.h:202: SUDPTRL = LSB(&DeviceDescriptor);
+ 0980 90 E6 B4 2940 mov dptr,#_SUDPTRL
+ 0983 74 B4 2941 mov a,#_DeviceDescriptor
+ 0985 F0 2942 movx @dptr,a
+ 2943 ; ../../../include/ztex-isr.h:203: break;
+ 0986 02 0A D9 2944 ljmp 00160$
+ 2945 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0989 2946 00134$:
+ 2947 ; ../../../include/ztex-isr.h:205: if (USBCS & bmBIT7) {
+ 0989 90 E6 80 2948 mov dptr,#_USBCS
+ 098C E0 2949 movx a,@dptr
+ 098D FA 2950 mov r2,a
+ 098E 30 E7 12 2951 jnb acc.7,00136$
+ 2952 ; ../../../include/ztex-isr.h:206: SUDPTRH = MSB(&HighSpeedConfigDescriptor);
+ 0991 7A D0 2953 mov r2,#_HighSpeedConfigDescriptor
+ 0993 7B 10 2954 mov r3,#(_HighSpeedConfigDescriptor >> 8)
+ 0995 90 E6 B3 2955 mov dptr,#_SUDPTRH
+ 0998 EB 2956 mov a,r3
+ 0999 F0 2957 movx @dptr,a
+ 2958 ; ../../../include/ztex-isr.h:207: SUDPTRL = LSB(&HighSpeedConfigDescriptor);
+ 099A 90 E6 B4 2959 mov dptr,#_SUDPTRL
+ 099D 74 D0 2960 mov a,#_HighSpeedConfigDescriptor
+ 099F F0 2961 movx @dptr,a
+ 09A0 02 0A D9 2962 ljmp 00160$
+ 09A3 2963 00136$:
+ 2964 ; ../../../include/ztex-isr.h:210: SUDPTRH = MSB(&FullSpeedConfigDescriptor);
+ 09A3 7A F2 2965 mov r2,#_FullSpeedConfigDescriptor
+ 09A5 7B 10 2966 mov r3,#(_FullSpeedConfigDescriptor >> 8)
+ 09A7 90 E6 B3 2967 mov dptr,#_SUDPTRH
+ 09AA EB 2968 mov a,r3
+ 09AB F0 2969 movx @dptr,a
+ 2970 ; ../../../include/ztex-isr.h:211: SUDPTRL = LSB(&FullSpeedConfigDescriptor);
+ 09AC 90 E6 B4 2971 mov dptr,#_SUDPTRL
+ 09AF 74 F2 2972 mov a,#_FullSpeedConfigDescriptor
+ 09B1 F0 2973 movx @dptr,a
+ 2974 ; ../../../include/ztex-isr.h:213: break;
+ 09B2 02 0A D9 2975 ljmp 00160$
+ 2976 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 09B5 2977 00138$:
+ 2978 ; ../../../include/ztex-isr.h:215: switch (SETUPDAT[2]) {
+ 09B5 90 E6 BA 2979 mov dptr,#(_SETUPDAT + 0x0002)
+ 09B8 E0 2980 movx a,@dptr
+ 09B9 FA 2981 mov r2,a
+ 09BA BA 01 02 2982 cjne r2,#0x01,00243$
+ 09BD 80 0F 2983 sjmp 00139$
+ 09BF 2984 00243$:
+ 09BF BA 02 02 2985 cjne r2,#0x02,00244$
+ 09C2 80 1C 2986 sjmp 00140$
+ 09C4 2987 00244$:
+ 09C4 BA 03 02 2988 cjne r2,#0x03,00245$
+ 09C7 80 29 2989 sjmp 00141$
+ 09C9 2990 00245$:
+ 2991 ; ../../../include/ztex-isr.h:216: case 1:
+ 09C9 BA 04 4A 2992 cjne r2,#0x04,00143$
+ 09CC 80 36 2993 sjmp 00142$
+ 09CE 2994 00139$:
+ 2995 ; ../../../include/ztex-isr.h:217: SEND_STRING_DESCRIPTOR(manufacturerString);
+ 09CE 75 82 8B 2996 mov dpl,#_manufacturerString
+ 09D1 7A 8B 2997 mov r2,#_manufacturerString
+ 09D3 7B 10 2998 mov r3,#(_manufacturerString >> 8)
+ 09D5 8B 0F 2999 mov _sendStringDescriptor_PARM_2,r3
+ 09D7 75 10 05 3000 mov _sendStringDescriptor_PARM_3,#0x05
+ 09DA 12 06 6F 3001 lcall _sendStringDescriptor
+ 3002 ; ../../../include/ztex-isr.h:218: break;
+ 09DD 02 0A D9 3003 ljmp 00160$
+ 3004 ; ../../../include/ztex-isr.h:219: case 2:
+ 09E0 3005 00140$:
+ 3006 ; ../../../include/ztex-isr.h:220: SEND_STRING_DESCRIPTOR(productString);
+ 09E0 75 82 90 3007 mov dpl,#_productString
+ 09E3 7A 90 3008 mov r2,#_productString
+ 09E5 7B 10 3009 mov r3,#(_productString >> 8)
+ 09E7 8B 0F 3010 mov _sendStringDescriptor_PARM_2,r3
+ 09E9 75 10 19 3011 mov _sendStringDescriptor_PARM_3,#0x19
+ 09EC 12 06 6F 3012 lcall _sendStringDescriptor
+ 3013 ; ../../../include/ztex-isr.h:221: break;
+ 09EF 02 0A D9 3014 ljmp 00160$
+ 3015 ; ../../../include/ztex-isr.h:222: case 3:
+ 09F2 3016 00141$:
+ 3017 ; ../../../include/ztex-isr.h:223: SEND_STRING_DESCRIPTOR(SN_STRING);
+ 09F2 75 82 8A 3018 mov dpl,#_SN_STRING
+ 09F5 7A 8A 3019 mov r2,#_SN_STRING
+ 09F7 7B 00 3020 mov r3,#(_SN_STRING >> 8)
+ 09F9 8B 0F 3021 mov _sendStringDescriptor_PARM_2,r3
+ 09FB 75 10 0A 3022 mov _sendStringDescriptor_PARM_3,#0x0A
+ 09FE 12 06 6F 3023 lcall _sendStringDescriptor
+ 3024 ; ../../../include/ztex-isr.h:224: break;
+ 0A01 02 0A D9 3025 ljmp 00160$
+ 3026 ; ../../../include/ztex-isr.h:225: case 4:
+ 0A04 3027 00142$:
+ 3028 ; ../../../include/ztex-isr.h:226: SEND_STRING_DESCRIPTOR(configurationString);
+ 0A04 75 82 A9 3029 mov dpl,#_configurationString
+ 0A07 7A A9 3030 mov r2,#_configurationString
+ 0A09 7B 10 3031 mov r3,#(_configurationString >> 8)
+ 0A0B 8B 0F 3032 mov _sendStringDescriptor_PARM_2,r3
+ 0A0D 75 10 0A 3033 mov _sendStringDescriptor_PARM_3,#0x0A
+ 0A10 12 06 6F 3034 lcall _sendStringDescriptor
+ 3035 ; ../../../include/ztex-isr.h:227: break;
+ 0A13 02 0A D9 3036 ljmp 00160$
+ 3037 ; ../../../include/ztex-isr.h:228: default:
+ 0A16 3038 00143$:
+ 3039 ; ../../../include/ztex-isr.h:229: SUDPTRH = MSB(&EmptyStringDescriptor);
+ 0A16 7A 14 3040 mov r2,#_EmptyStringDescriptor
+ 0A18 7B 11 3041 mov r3,#(_EmptyStringDescriptor >> 8)
+ 0A1A 90 E6 B3 3042 mov dptr,#_SUDPTRH
+ 0A1D EB 3043 mov a,r3
+ 0A1E F0 3044 movx @dptr,a
+ 3045 ; ../../../include/ztex-isr.h:230: SUDPTRL = LSB(&EmptyStringDescriptor);
+ 0A1F 90 E6 B4 3046 mov dptr,#_SUDPTRL
+ 0A22 74 14 3047 mov a,#_EmptyStringDescriptor
+ 0A24 F0 3048 movx @dptr,a
+ 3049 ; ../../../include/ztex-isr.h:233: break;
+ 0A25 02 0A D9 3050 ljmp 00160$
+ 3051 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0A28 3052 00145$:
+ 3053 ; ../../../include/ztex-isr.h:235: SUDPTRH = MSB(&DeviceQualifierDescriptor);
+ 0A28 7A C6 3054 mov r2,#_DeviceQualifierDescriptor
+ 0A2A 7B 10 3055 mov r3,#(_DeviceQualifierDescriptor >> 8)
+ 0A2C 90 E6 B3 3056 mov dptr,#_SUDPTRH
+ 0A2F EB 3057 mov a,r3
+ 0A30 F0 3058 movx @dptr,a
+ 3059 ; ../../../include/ztex-isr.h:236: SUDPTRL = LSB(&DeviceQualifierDescriptor);
+ 0A31 90 E6 B4 3060 mov dptr,#_SUDPTRL
+ 0A34 74 C6 3061 mov a,#_DeviceQualifierDescriptor
+ 0A36 F0 3062 movx @dptr,a
+ 3063 ; ../../../include/ztex-isr.h:237: break;
+ 0A37 02 0A D9 3064 ljmp 00160$
+ 3065 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0A3A 3066 00146$:
+ 3067 ; ../../../include/ztex-isr.h:239: if (USBCS & bmBIT7) {
+ 0A3A 90 E6 80 3068 mov dptr,#_USBCS
+ 0A3D E0 3069 movx a,@dptr
+ 0A3E FA 3070 mov r2,a
+ 0A3F 30 E7 12 3071 jnb acc.7,00148$
+ 3072 ; ../../../include/ztex-isr.h:240: SUDPTRH = MSB(&FullSpeedConfigDescriptor);
+ 0A42 7A F2 3073 mov r2,#_FullSpeedConfigDescriptor
+ 0A44 7B 10 3074 mov r3,#(_FullSpeedConfigDescriptor >> 8)
+ 0A46 90 E6 B3 3075 mov dptr,#_SUDPTRH
+ 0A49 EB 3076 mov a,r3
+ 0A4A F0 3077 movx @dptr,a
+ 3078 ; ../../../include/ztex-isr.h:241: SUDPTRL = LSB(&FullSpeedConfigDescriptor);
+ 0A4B 90 E6 B4 3079 mov dptr,#_SUDPTRL
+ 0A4E 74 F2 3080 mov a,#_FullSpeedConfigDescriptor
+ 0A50 F0 3081 movx @dptr,a
+ 0A51 02 0A D9 3082 ljmp 00160$
+ 0A54 3083 00148$:
+ 3084 ; ../../../include/ztex-isr.h:244: SUDPTRH = MSB(&HighSpeedConfigDescriptor);
+ 0A54 7A D0 3085 mov r2,#_HighSpeedConfigDescriptor
+ 0A56 7B 10 3086 mov r3,#(_HighSpeedConfigDescriptor >> 8)
+ 0A58 90 E6 B3 3087 mov dptr,#_SUDPTRH
+ 0A5B EB 3088 mov a,r3
+ 0A5C F0 3089 movx @dptr,a
+ 3090 ; ../../../include/ztex-isr.h:245: SUDPTRL = LSB(&HighSpeedConfigDescriptor);
+ 0A5D 90 E6 B4 3091 mov dptr,#_SUDPTRL
+ 0A60 74 D0 3092 mov a,#_HighSpeedConfigDescriptor
+ 0A62 F0 3093 movx @dptr,a
+ 3094 ; ../../../include/ztex-isr.h:247: break;
+ 3095 ; ../../../include/ztex-isr.h:248: default:
+ 0A63 80 74 3096 sjmp 00160$
+ 0A65 3097 00150$:
+ 3098 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0A65 90 E6 A0 3099 mov dptr,#_EP0CS
+ 0A68 E0 3100 movx a,@dptr
+ 0A69 FA 3101 mov r2,a
+ 0A6A 44 01 3102 orl a,#0x01
+ 0A6C F0 3103 movx @dptr,a
+ 3104 ; ../../../include/ztex-isr.h:251: break;
+ 3105 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0A6D 80 6A 3106 sjmp 00160$
+ 0A6F 3107 00152$:
+ 3108 ; ../../../include/ztex-isr.h:253: break;
+ 3109 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0A6F 80 68 3110 sjmp 00160$
+ 0A71 3111 00153$:
+ 0A71 90 E7 40 3112 mov dptr,#_EP0BUF
+ 3113 ; ../../../include/ztex-isr.h:256: EP0BCH = 0;
+ 0A74 E4 3114 clr a
+ 0A75 F0 3115 movx @dptr,a
+ 0A76 90 E6 8A 3116 mov dptr,#_EP0BCH
+ 0A79 F0 3117 movx @dptr,a
+ 3118 ; ../../../include/ztex-isr.h:257: EP0BCL = 1;
+ 0A7A 90 E6 8B 3119 mov dptr,#_EP0BCL
+ 0A7D 74 01 3120 mov a,#0x01
+ 0A7F F0 3121 movx @dptr,a
+ 3122 ; ../../../include/ztex-isr.h:258: break;
+ 3123 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0A80 80 57 3124 sjmp 00160$
+ 0A82 3125 00154$:
+ 3126 ; ../../../include/ztex-isr.h:260: resetToggleData();
+ 0A82 12 06 51 3127 lcall _resetToggleData
+ 3128 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0A85 80 52 3129 sjmp 00160$
+ 0A87 3130 00155$:
+ 0A87 90 E7 40 3131 mov dptr,#_EP0BUF
+ 3132 ; ../../../include/ztex-isr.h:264: EP0BCH = 0;
+ 0A8A E4 3133 clr a
+ 0A8B F0 3134 movx @dptr,a
+ 0A8C 90 E6 8A 3135 mov dptr,#_EP0BCH
+ 0A8F F0 3136 movx @dptr,a
+ 3137 ; ../../../include/ztex-isr.h:265: EP0BCL = 1;
+ 0A90 90 E6 8B 3138 mov dptr,#_EP0BCL
+ 0A93 74 01 3139 mov a,#0x01
+ 0A95 F0 3140 movx @dptr,a
+ 3141 ; ../../../include/ztex-isr.h:266: break;
+ 3142 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0A96 80 41 3143 sjmp 00160$
+ 0A98 3144 00156$:
+ 3145 ; ../../../include/ztex-isr.h:268: resetToggleData();
+ 0A98 12 06 51 3146 lcall _resetToggleData
+ 3147 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0A9B 80 3C 3148 sjmp 00160$
+ 0A9D 3149 00157$:
+ 3150 ; ../../../include/ztex-isr.h:271: if ( SETUPDAT[0] == 0x82 ) {
+ 0A9D 90 E6 B8 3151 mov dptr,#_SETUPDAT
+ 0AA0 E0 3152 movx a,@dptr
+ 0AA1 FA 3153 mov r2,a
+ 0AA2 BA 82 34 3154 cjne r2,#0x82,00160$
+ 3155 ; ../../../include/ztex-isr.h:272: ISOFRAME_COUNTER[ ((SETUPDAT[4] >> 1)-1) & 3 ] = 0;
+ 0AA5 90 E6 BC 3156 mov dptr,#(_SETUPDAT + 0x0004)
+ 0AA8 E0 3157 movx a,@dptr
+ 0AA9 C3 3158 clr c
+ 0AAA 13 3159 rrc a
+ 0AAB 14 3160 dec a
+ 0AAC 54 03 3161 anl a,#0x03
+ 0AAE 25 E0 3162 add a,acc
+ 0AB0 24 75 3163 add a,#_ISOFRAME_COUNTER
+ 0AB2 F5 82 3164 mov dpl,a
+ 0AB4 E4 3165 clr a
+ 0AB5 34 32 3166 addc a,#(_ISOFRAME_COUNTER >> 8)
+ 0AB7 F5 83 3167 mov dph,a
+ 0AB9 E4 3168 clr a
+ 0ABA F0 3169 movx @dptr,a
+ 0ABB A3 3170 inc dptr
+ 0ABC F0 3171 movx @dptr,a
+ 3172 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0ABD 90 E6 85 3173 mov dptr,#_USBFRAMEL
+ 0AC0 E0 3174 movx a,@dptr
+ 0AC1 90 E7 40 3175 mov dptr,#_EP0BUF
+ 0AC4 F0 3176 movx @dptr,a
+ 3177 ; ../../../include/ztex-isr.h:274: EP0BUF[1] = USBFRAMEH;
+ 0AC5 90 E6 84 3178 mov dptr,#_USBFRAMEH
+ 0AC8 E0 3179 movx a,@dptr
+ 0AC9 FA 3180 mov r2,a
+ 0ACA 90 E7 41 3181 mov dptr,#(_EP0BUF + 0x0001)
+ 0ACD F0 3182 movx @dptr,a
+ 3183 ; ../../../include/ztex-isr.h:275: EP0BCH = 0;
+ 0ACE 90 E6 8A 3184 mov dptr,#_EP0BCH
+ 0AD1 E4 3185 clr a
+ 0AD2 F0 3186 movx @dptr,a
+ 3187 ; ../../../include/ztex-isr.h:276: EP0BCL = 2;
+ 0AD3 90 E6 8B 3188 mov dptr,#_EP0BCL
+ 0AD6 74 02 3189 mov a,#0x02
+ 0AD8 F0 3190 movx @dptr,a
+ 3191 ; ../../../include/ztex-isr.h:280: }
+ 0AD9 3192 00160$:
+ 3193 ; ../../../include/ztex-isr.h:283: switch ( bmRequestType ) {
+ 0AD9 90 E6 B8 3194 mov dptr,#_bmRequestType
+ 0ADC E0 3195 movx a,@dptr
+ 0ADD FA 3196 mov r2,a
+ 0ADE BA 40 03 3197 cjne r2,#0x40,00250$
+ 0AE1 02 0B C9 3198 ljmp 00168$
+ 0AE4 3199 00250$:
+ 0AE4 BA C0 02 3200 cjne r2,#0xC0,00251$
+ 0AE7 80 03 3201 sjmp 00252$
+ 0AE9 3202 00251$:
+ 0AE9 02 0B F3 3203 ljmp 00172$
+ 0AEC 3204 00252$:
+ 3205 ; ../../../include/ztex-isr.h:285: ep0_payload_remaining = (SETUPDAT[7] << 8) | SETUPDAT[6];
+ 0AEC 90 E6 BF 3206 mov dptr,#(_SETUPDAT + 0x0007)
+ 0AEF E0 3207 movx a,@dptr
+ 0AF0 FB 3208 mov r3,a
+ 0AF1 7A 00 3209 mov r2,#0x00
+ 0AF3 90 E6 BE 3210 mov dptr,#(_SETUPDAT + 0x0006)
+ 0AF6 E0 3211 movx a,@dptr
+ 0AF7 FC 3212 mov r4,a
+ 0AF8 7D 00 3213 mov r5,#0x00
+ 0AFA 90 32 70 3214 mov dptr,#_ep0_payload_remaining
+ 0AFD EC 3215 mov a,r4
+ 0AFE 4A 3216 orl a,r2
+ 0AFF F0 3217 movx @dptr,a
+ 0B00 ED 3218 mov a,r5
+ 0B01 4B 3219 orl a,r3
+ 0B02 A3 3220 inc dptr
+ 0B03 F0 3221 movx @dptr,a
+ 3222 ; ../../../include/ztex-isr.h:286: ep0_payload_update();
+ 0B04 12 06 C2 3223 lcall _ep0_payload_update
+ 3224 ; ../../../include/ztex-isr.h:288: switch ( bRequest ) {
+ 0B07 90 E6 B9 3225 mov dptr,#_bRequest
+ 0B0A E0 3226 movx a,@dptr
+ 0B0B FA 3227 mov r2,a
+ 0B0C BA 22 02 3228 cjne r2,#0x22,00253$
+ 0B0F 80 13 3229 sjmp 00162$
+ 0B11 3230 00253$:
+ 0B11 BA 28 03 3231 cjne r2,#0x28,00254$
+ 0B14 02 0B A5 3232 ljmp 00165$
+ 0B17 3233 00254$:
+ 0B17 BA 38 02 3234 cjne r2,#0x38,00255$
+ 0B1A 80 25 3235 sjmp 00163$
+ 0B1C 3236 00255$:
+ 0B1C BA 3A 02 3237 cjne r2,#0x3A,00256$
+ 0B1F 80 49 3238 sjmp 00164$
+ 0B21 3239 00256$:
+ 0B21 02 0B BF 3240 ljmp 00166$
+ 3241 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0B24 3242 00162$:
+ 3243 ; ../../../include/ztex-isr.h:290: SUDPTRCTL = 0;
+ 0B24 90 E6 B5 3244 mov dptr,#_SUDPTRCTL
+ 3245 ; ../../../include/ztex-isr.h:291: EP0BCH = 0;
+ 0B27 E4 3246 clr a
+ 0B28 F0 3247 movx @dptr,a
+ 0B29 90 E6 8A 3248 mov dptr,#_EP0BCH
+ 0B2C F0 3249 movx @dptr,a
+ 3250 ; ../../../include/ztex-isr.h:292: EP0BCL = ZTEX_DESCRIPTOR_LEN;
+ 0B2D 90 E6 8B 3251 mov dptr,#_EP0BCL
+ 0B30 74 28 3252 mov a,#0x28
+ 0B32 F0 3253 movx @dptr,a
+ 3254 ; ../../../include/ztex-isr.h:293: SUDPTRH = MSB(ZTEX_DESCRIPTOR_OFFS);
+ 0B33 90 E6 B3 3255 mov dptr,#_SUDPTRH
+ 0B36 E4 3256 clr a
+ 0B37 F0 3257 movx @dptr,a
+ 3258 ; ../../../include/ztex-isr.h:294: SUDPTRL = LSB(ZTEX_DESCRIPTOR_OFFS);
+ 0B38 90 E6 B4 3259 mov dptr,#_SUDPTRL
+ 0B3B 74 6C 3260 mov a,#0x6C
+ 0B3D F0 3261 movx @dptr,a
+ 3262 ; ../../../include/ztex-isr.h:295: break;
+ 0B3E 02 0B F3 3263 ljmp 00172$
+ 3264 ; ../../../include/ztex-conf.h:90: case $0:
+ 0B41 3265 00163$:
+ 3266 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0B41 90 E6 BB 3267 mov dptr,#(_SETUPDAT + 0x0003)
+ 0B44 E0 3268 movx a,@dptr
+ 0B45 FB 3269 mov r3,a
+ 0B46 7A 00 3270 mov r2,#0x00
+ 0B48 90 E6 BA 3271 mov dptr,#(_SETUPDAT + 0x0002)
+ 0B4B E0 3272 movx a,@dptr
+ 0B4C FC 3273 mov r4,a
+ 0B4D 7D 00 3274 mov r5,#0x00
+ 0B4F 90 32 00 3275 mov dptr,#_eeprom_addr
+ 0B52 EC 3276 mov a,r4
+ 0B53 4A 3277 orl a,r2
+ 0B54 F0 3278 movx @dptr,a
+ 0B55 ED 3279 mov a,r5
+ 0B56 4B 3280 orl a,r3
+ 0B57 A3 3281 inc dptr
+ 0B58 F0 3282 movx @dptr,a
+ 3283 ; ../../../include/ztex-eeprom.h:216: EP0BCH = 0;
+ 0B59 90 E6 8A 3284 mov dptr,#_EP0BCH
+ 0B5C E4 3285 clr a
+ 0B5D F0 3286 movx @dptr,a
+ 3287 ; ../../../include/ztex-eeprom.h:217: EP0BCL = eeprom_read_ep0();
+ 0B5E 12 05 54 3288 lcall _eeprom_read_ep0
+ 0B61 E5 82 3289 mov a,dpl
+ 0B63 90 E6 8B 3290 mov dptr,#_EP0BCL
+ 0B66 F0 3291 movx @dptr,a
+ 3292 ; ../../../include/ztex-conf.h:92: break;
+ 0B67 02 0B F3 3293 ljmp 00172$
+ 3294 ; ../../../include/ztex-conf.h:90: case $0:
+ 0B6A 3295 00164$:
+ 3296 ; ../../../include/ztex-eeprom.h:244: EP0BUF[0] = LSB(eeprom_write_bytes);
+ 0B6A 90 32 02 3297 mov dptr,#_eeprom_write_bytes
+ 0B6D E0 3298 movx a,@dptr
+ 0B6E FA 3299 mov r2,a
+ 0B6F A3 3300 inc dptr
+ 0B70 E0 3301 movx a,@dptr
+ 0B71 FB 3302 mov r3,a
+ 0B72 8A 04 3303 mov ar4,r2
+ 0B74 90 E7 40 3304 mov dptr,#_EP0BUF
+ 0B77 EC 3305 mov a,r4
+ 0B78 F0 3306 movx @dptr,a
+ 3307 ; ../../../include/ztex-eeprom.h:245: EP0BUF[1] = MSB(eeprom_write_bytes);
+ 0B79 8B 02 3308 mov ar2,r3
+ 0B7B 90 E7 41 3309 mov dptr,#(_EP0BUF + 0x0001)
+ 0B7E EA 3310 mov a,r2
+ 0B7F F0 3311 movx @dptr,a
+ 3312 ; ../../../include/ztex-eeprom.h:246: EP0BUF[2] = eeprom_write_checksum;
+ 0B80 90 32 04 3313 mov dptr,#_eeprom_write_checksum
+ 0B83 E0 3314 movx a,@dptr
+ 0B84 90 E7 42 3315 mov dptr,#(_EP0BUF + 0x0002)
+ 0B87 F0 3316 movx @dptr,a
+ 3317 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0B88 75 08 01 3318 mov _eeprom_select_PARM_2,#0x01
+ 0B8B 75 82 00 3319 mov dpl,#0x00
+ 0B8E 12 03 44 3320 lcall _eeprom_select
+ 0B91 AA 82 3321 mov r2,dpl
+ 0B93 90 E7 43 3322 mov dptr,#(_EP0BUF + 0x0003)
+ 0B96 EA 3323 mov a,r2
+ 0B97 F0 3324 movx @dptr,a
+ 3325 ; ../../../include/ztex-eeprom.h:248: EP0BCH = 0;
+ 0B98 90 E6 8A 3326 mov dptr,#_EP0BCH
+ 0B9B E4 3327 clr a
+ 0B9C F0 3328 movx @dptr,a
+ 3329 ; ../../../include/ztex-eeprom.h:249: EP0BCL = 4;
+ 0B9D 90 E6 8B 3330 mov dptr,#_EP0BCL
+ 0BA0 74 04 3331 mov a,#0x04
+ 0BA2 F0 3332 movx @dptr,a
+ 3333 ; ../../../include/ztex-conf.h:92: break;
+ 3334 ; ../../../include/ztex-conf.h:90: case $0:
+ 0BA3 80 4E 3335 sjmp 00172$
+ 0BA5 3336 00165$:
+ 3337 ; ../../../include/ztex-debug.h:82: debug_read_addr = (__xdata BYTE*)&debug_counter;
+ 0BA5 90 32 6E 3338 mov dptr,#_debug_read_addr
+ 0BA8 74 05 3339 mov a,#_debug_counter
+ 0BAA F0 3340 movx @dptr,a
+ 0BAB A3 3341 inc dptr
+ 0BAC 74 32 3342 mov a,#(_debug_counter >> 8)
+ 0BAE F0 3343 movx @dptr,a
+ 3344 ; ../../../include/ztex-debug.h:83: EP0BCH = 0;
+ 0BAF 90 E6 8A 3345 mov dptr,#_EP0BCH
+ 0BB2 E4 3346 clr a
+ 0BB3 F0 3347 movx @dptr,a
+ 3348 ; ../../../include/ztex-debug.h:84: EP0BCL = debug_read_ep0();
+ 0BB4 12 06 17 3349 lcall _debug_read_ep0
+ 0BB7 E5 82 3350 mov a,dpl
+ 0BB9 90 E6 8B 3351 mov dptr,#_EP0BCL
+ 0BBC F0 3352 movx @dptr,a
+ 3353 ; ../../../include/ztex-conf.h:92: break;
+ 3354 ; ../../../include/ztex-isr.h:297: default:
+ 0BBD 80 34 3355 sjmp 00172$
+ 0BBF 3356 00166$:
+ 3357 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0BBF 90 E6 A0 3358 mov dptr,#_EP0CS
+ 0BC2 E0 3359 movx a,@dptr
+ 0BC3 FA 3360 mov r2,a
+ 0BC4 44 01 3361 orl a,#0x01
+ 0BC6 F0 3362 movx @dptr,a
+ 3363 ; ../../../include/ztex-isr.h:300: break;
+ 3364 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0BC7 80 2A 3365 sjmp 00172$
+ 0BC9 3366 00168$:
+ 3367 ; ../../../include/ztex-isr.h:305: if ( SETUPDAT[7]!=0 || SETUPDAT[6]!=0 ) {
+ 0BC9 90 E6 BF 3368 mov dptr,#(_SETUPDAT + 0x0007)
+ 0BCC E0 3369 movx a,@dptr
+ 0BCD 70 06 3370 jnz 00169$
+ 0BCF 90 E6 BE 3371 mov dptr,#(_SETUPDAT + 0x0006)
+ 0BD2 E0 3372 movx a,@dptr
+ 0BD3 60 16 3373 jz 00170$
+ 0BD5 3374 00169$:
+ 3375 ; ../../../include/ztex-isr.h:306: ep0_vendor_cmd_setup = 1;
+ 0BD5 90 32 74 3376 mov dptr,#_ep0_vendor_cmd_setup
+ 0BD8 74 01 3377 mov a,#0x01
+ 0BDA F0 3378 movx @dptr,a
+ 3379 ; ../../../include/ztex-isr.h:307: EP0BCL = 0;
+ 0BDB 90 E6 8B 3380 mov dptr,#_EP0BCL
+ 0BDE E4 3381 clr a
+ 0BDF F0 3382 movx @dptr,a
+ 3383 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0BE0 53 91 EF 3384 anl _EXIF,#0xEF
+ 0BE3 90 E6 5D 3385 mov dptr,#_USBIRQ
+ 0BE6 74 01 3386 mov a,#0x01
+ 0BE8 F0 3387 movx @dptr,a
+ 0BE9 80 19 3388 sjmp 00173$
+ 0BEB 3389 00170$:
+ 0BEB 12 06 EF 3390 lcall _ep0_vendor_cmd_su
+ 3391 ; ../../../include/ztex-isr.h:313: EP0BCL = 0;
+ 0BEE 90 E6 8B 3392 mov dptr,#_EP0BCL
+ 0BF1 E4 3393 clr a
+ 0BF2 F0 3394 movx @dptr,a
+ 3395 ; ../../../include/ztex-isr.h:315: }
+ 0BF3 3396 00172$:
+ 3397 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0BF3 53 91 EF 3398 anl _EXIF,#0xEF
+ 0BF6 90 E6 5D 3399 mov dptr,#_USBIRQ
+ 0BF9 74 01 3400 mov a,#0x01
+ 0BFB F0 3401 movx @dptr,a
+ 0BFC 90 E6 A0 3402 mov dptr,#_EP0CS
+ 0BFF E0 3403 movx a,@dptr
+ 0C00 FA 3404 mov r2,a
+ 0C01 44 80 3405 orl a,#0x80
+ 0C03 F0 3406 movx @dptr,a
+ 0C04 3407 00173$:
+ 0C04 D0 D0 3408 pop psw
+ 0C06 D0 01 3409 pop (0+1)
+ 0C08 D0 00 3410 pop (0+0)
+ 0C0A D0 07 3411 pop (0+7)
+ 0C0C D0 06 3412 pop (0+6)
+ 0C0E D0 05 3413 pop (0+5)
+ 0C10 D0 04 3414 pop (0+4)
+ 0C12 D0 03 3415 pop (0+3)
+ 0C14 D0 02 3416 pop (0+2)
+ 0C16 D0 83 3417 pop dph
+ 0C18 D0 82 3418 pop dpl
+ 0C1A D0 F0 3419 pop b
+ 0C1C D0 E0 3420 pop acc
+ 0C1E D0 20 3421 pop bits
+ 0C20 32 3422 reti
+ 3423 ;------------------------------------------------------------
+ 3424 ;Allocation info for local variables in function 'SOF_ISR'
+ 3425 ;------------------------------------------------------------
+ 3426 ;------------------------------------------------------------
+ 3427 ; ../../../include/ztex-isr.h:325: void SOF_ISR() interrupt
+ 3428 ; -----------------------------------------
+ 3429 ; function SOF_ISR
+ 3430 ; -----------------------------------------
+ 0C21 3431 _SOF_ISR:
+ 0C21 C0 E0 3432 push acc
+ 0C23 C0 82 3433 push dpl
+ 0C25 C0 83 3434 push dph
+ 3435 ; ../../../include/ztex-isr.h:327: EXIF &= ~bmBIT4;
+ 0C27 53 91 EF 3436 anl _EXIF,#0xEF
+ 3437 ; ../../../include/ztex-isr.h:328: USBIRQ = bmBIT1;
+ 0C2A 90 E6 5D 3438 mov dptr,#_USBIRQ
+ 0C2D 74 02 3439 mov a,#0x02
+ 0C2F F0 3440 movx @dptr,a
+ 0C30 D0 83 3441 pop dph
+ 0C32 D0 82 3442 pop dpl
+ 0C34 D0 E0 3443 pop acc
+ 0C36 32 3444 reti
+ 3445 ; eliminated unneeded push/pop psw
+ 3446 ; eliminated unneeded push/pop b
+ 3447 ;------------------------------------------------------------
+ 3448 ;Allocation info for local variables in function 'SUTOK_ISR'
+ 3449 ;------------------------------------------------------------
+ 3450 ;------------------------------------------------------------
+ 3451 ; ../../../include/ztex-isr.h:334: void SUTOK_ISR() interrupt
+ 3452 ; -----------------------------------------
+ 3453 ; function SUTOK_ISR
+ 3454 ; -----------------------------------------
+ 0C37 3455 _SUTOK_ISR:
+ 0C37 C0 E0 3456 push acc
+ 0C39 C0 82 3457 push dpl
+ 0C3B C0 83 3458 push dph
+ 3459 ; ../../../include/ztex-isr.h:336: EXIF &= ~bmBIT4;
+ 0C3D 53 91 EF 3460 anl _EXIF,#0xEF
+ 3461 ; ../../../include/ztex-isr.h:337: USBIRQ = bmBIT2;
+ 0C40 90 E6 5D 3462 mov dptr,#_USBIRQ
+ 0C43 74 04 3463 mov a,#0x04
+ 0C45 F0 3464 movx @dptr,a
+ 0C46 D0 83 3465 pop dph
+ 0C48 D0 82 3466 pop dpl
+ 0C4A D0 E0 3467 pop acc
+ 0C4C 32 3468 reti
+ 3469 ; eliminated unneeded push/pop psw
+ 3470 ; eliminated unneeded push/pop b
+ 3471 ;------------------------------------------------------------
+ 3472 ;Allocation info for local variables in function 'SUSP_ISR'
+ 3473 ;------------------------------------------------------------
+ 3474 ;------------------------------------------------------------
+ 3475 ; ../../../include/ztex-isr.h:343: void SUSP_ISR() interrupt
+ 3476 ; -----------------------------------------
+ 3477 ; function SUSP_ISR
+ 3478 ; -----------------------------------------
+ 0C4D 3479 _SUSP_ISR:
+ 0C4D C0 E0 3480 push acc
+ 0C4F C0 82 3481 push dpl
+ 0C51 C0 83 3482 push dph
+ 3483 ; ../../../include/ztex-isr.h:345: EXIF &= ~bmBIT4;
+ 0C53 53 91 EF 3484 anl _EXIF,#0xEF
+ 3485 ; ../../../include/ztex-isr.h:346: USBIRQ = bmBIT3;
+ 0C56 90 E6 5D 3486 mov dptr,#_USBIRQ
+ 0C59 74 08 3487 mov a,#0x08
+ 0C5B F0 3488 movx @dptr,a
+ 0C5C D0 83 3489 pop dph
+ 0C5E D0 82 3490 pop dpl
+ 0C60 D0 E0 3491 pop acc
+ 0C62 32 3492 reti
+ 3493 ; eliminated unneeded push/pop psw
+ 3494 ; eliminated unneeded push/pop b
+ 3495 ;------------------------------------------------------------
+ 3496 ;Allocation info for local variables in function 'URES_ISR'
+ 3497 ;------------------------------------------------------------
+ 3498 ;------------------------------------------------------------
+ 3499 ; ../../../include/ztex-isr.h:352: void URES_ISR() interrupt
+ 3500 ; -----------------------------------------
+ 3501 ; function URES_ISR
+ 3502 ; -----------------------------------------
+ 0C63 3503 _URES_ISR:
+ 0C63 C0 E0 3504 push acc
+ 0C65 C0 82 3505 push dpl
+ 0C67 C0 83 3506 push dph
+ 3507 ; ../../../include/ztex-isr.h:354: EXIF &= ~bmBIT4;
+ 0C69 53 91 EF 3508 anl _EXIF,#0xEF
+ 3509 ; ../../../include/ztex-isr.h:355: USBIRQ = bmBIT4;
+ 0C6C 90 E6 5D 3510 mov dptr,#_USBIRQ
+ 0C6F 74 10 3511 mov a,#0x10
+ 0C71 F0 3512 movx @dptr,a
+ 0C72 D0 83 3513 pop dph
+ 0C74 D0 82 3514 pop dpl
+ 0C76 D0 E0 3515 pop acc
+ 0C78 32 3516 reti
+ 3517 ; eliminated unneeded push/pop psw
+ 3518 ; eliminated unneeded push/pop b
+ 3519 ;------------------------------------------------------------
+ 3520 ;Allocation info for local variables in function 'HSGRANT_ISR'
+ 3521 ;------------------------------------------------------------
+ 3522 ;------------------------------------------------------------
+ 3523 ; ../../../include/ztex-isr.h:361: void HSGRANT_ISR() interrupt
+ 3524 ; -----------------------------------------
+ 3525 ; function HSGRANT_ISR
+ 3526 ; -----------------------------------------
+ 0C79 3527 _HSGRANT_ISR:
+ 0C79 C0 E0 3528 push acc
+ 0C7B C0 82 3529 push dpl
+ 0C7D C0 83 3530 push dph
+ 3531 ; ../../../include/ztex-isr.h:363: EXIF &= ~bmBIT4;
+ 0C7F 53 91 EF 3532 anl _EXIF,#0xEF
+ 3533 ; ../../../include/ztex-isr.h:364: USBIRQ = bmBIT5;
+ 0C82 90 E6 5D 3534 mov dptr,#_USBIRQ
+ 0C85 74 20 3535 mov a,#0x20
+ 0C87 F0 3536 movx @dptr,a
+ 0C88 D0 83 3537 pop dph
+ 0C8A D0 82 3538 pop dpl
+ 0C8C D0 E0 3539 pop acc
+ 0C8E 32 3540 reti
+ 3541 ; eliminated unneeded push/pop psw
+ 3542 ; eliminated unneeded push/pop b
+ 3543 ;------------------------------------------------------------
+ 3544 ;Allocation info for local variables in function 'EP0ACK_ISR'
+ 3545 ;------------------------------------------------------------
+ 3546 ;------------------------------------------------------------
+ 3547 ; ../../../include/ztex-isr.h:370: void EP0ACK_ISR() interrupt
+ 3548 ; -----------------------------------------
+ 3549 ; function EP0ACK_ISR
+ 3550 ; -----------------------------------------
+ 0C8F 3551 _EP0ACK_ISR:
+ 0C8F C0 E0 3552 push acc
+ 0C91 C0 82 3553 push dpl
+ 0C93 C0 83 3554 push dph
+ 3555 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0C95 53 91 EF 3556 anl _EXIF,#0xEF
+ 0C98 90 E6 5D 3557 mov dptr,#_USBIRQ
+ 0C9B 74 40 3558 mov a,#0x40
+ 0C9D F0 3559 movx @dptr,a
+ 0C9E D0 83 3560 pop dph
+ 0CA0 D0 82 3561 pop dpl
+ 0CA2 D0 E0 3562 pop acc
+ 0CA4 32 3563 reti
+ 3564 ; eliminated unneeded push/pop psw
+ 3565 ; eliminated unneeded push/pop b
+ 3566 ;------------------------------------------------------------
+ 3567 ;Allocation info for local variables in function 'EP0IN_ISR'
+ 3568 ;------------------------------------------------------------
+ 3569 ;------------------------------------------------------------
+ 3570 ; ../../../include/ztex-isr.h:379: static void EP0IN_ISR () interrupt
+ 3571 ; -----------------------------------------
+ 3572 ; function EP0IN_ISR
+ 3573 ; -----------------------------------------
+ 0CA5 3574 _EP0IN_ISR:
+ 0CA5 C0 20 3575 push bits
+ 0CA7 C0 E0 3576 push acc
+ 0CA9 C0 F0 3577 push b
+ 0CAB C0 82 3578 push dpl
+ 0CAD C0 83 3579 push dph
+ 0CAF C0 02 3580 push (0+2)
+ 0CB1 C0 03 3581 push (0+3)
+ 0CB3 C0 04 3582 push (0+4)
+ 0CB5 C0 05 3583 push (0+5)
+ 0CB7 C0 06 3584 push (0+6)
+ 0CB9 C0 07 3585 push (0+7)
+ 0CBB C0 00 3586 push (0+0)
+ 0CBD C0 01 3587 push (0+1)
+ 0CBF C0 D0 3588 push psw
+ 0CC1 75 D0 00 3589 mov psw,#0x00
+ 3590 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0CC4 C2 E8 3591 clr _EUSB
+ 3592 ; ../../../include/ztex-isr.h:382: ep0_payload_update();
+ 0CC6 12 06 C2 3593 lcall _ep0_payload_update
+ 3594 ; ../../../include/ztex-isr.h:383: switch ( ep0_prev_setup_request ) {
+ 0CC9 90 32 73 3595 mov dptr,#_ep0_prev_setup_request
+ 0CCC E0 3596 movx a,@dptr
+ 0CCD FA 3597 mov r2,a
+ 0CCE BA 28 02 3598 cjne r2,#0x28,00111$
+ 0CD1 80 1A 3599 sjmp 00103$
+ 0CD3 3600 00111$:
+ 0CD3 BA 38 02 3601 cjne r2,#0x38,00112$
+ 0CD6 80 05 3602 sjmp 00101$
+ 0CD8 3603 00112$:
+ 3604 ; ../../../include/ztex-conf.h:95: case $0:
+ 0CD8 BA 3A 22 3605 cjne r2,#0x3A,00104$
+ 0CDB 80 29 3606 sjmp 00105$
+ 0CDD 3607 00101$:
+ 3608 ; ../../../include/ztex-eeprom.h:219: EP0BCH = 0;
+ 0CDD 90 E6 8A 3609 mov dptr,#_EP0BCH
+ 0CE0 E4 3610 clr a
+ 0CE1 F0 3611 movx @dptr,a
+ 3612 ; ../../../include/ztex-eeprom.h:220: EP0BCL = eeprom_read_ep0();
+ 0CE2 12 05 54 3613 lcall _eeprom_read_ep0
+ 0CE5 E5 82 3614 mov a,dpl
+ 0CE7 90 E6 8B 3615 mov dptr,#_EP0BCL
+ 0CEA F0 3616 movx @dptr,a
+ 3617 ; ../../../include/ztex-conf.h:97: break;
+ 3618 ; ../../../include/ztex-conf.h:95: case $0:
+ 0CEB 80 19 3619 sjmp 00105$
+ 0CED 3620 00103$:
+ 3621 ; ../../../include/ztex-debug.h:86: EP0BCH = 0;
+ 0CED 90 E6 8A 3622 mov dptr,#_EP0BCH
+ 0CF0 E4 3623 clr a
+ 0CF1 F0 3624 movx @dptr,a
+ 3625 ; ../../../include/ztex-debug.h:87: EP0BCL = debug_read_ep0();
+ 0CF2 12 06 17 3626 lcall _debug_read_ep0
+ 0CF5 E5 82 3627 mov a,dpl
+ 0CF7 90 E6 8B 3628 mov dptr,#_EP0BCL
+ 0CFA F0 3629 movx @dptr,a
+ 3630 ; ../../../include/ztex-conf.h:97: break;
+ 3631 ; ../../../include/ztex-isr.h:385: default:
+ 0CFB 80 09 3632 sjmp 00105$
+ 0CFD 3633 00104$:
+ 3634 ; ../../../include/ztex-isr.h:386: EP0BCH = 0;
+ 0CFD 90 E6 8A 3635 mov dptr,#_EP0BCH
+ 3636 ; ../../../include/ztex-isr.h:387: EP0BCL = 0;
+ 0D00 E4 3637 clr a
+ 0D01 F0 3638 movx @dptr,a
+ 0D02 90 E6 8B 3639 mov dptr,#_EP0BCL
+ 0D05 F0 3640 movx @dptr,a
+ 3641 ; ../../../include/ztex-isr.h:388: }
+ 0D06 3642 00105$:
+ 3643 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0D06 53 91 EF 3644 anl _EXIF,#0xEF
+ 0D09 90 E6 5F 3645 mov dptr,#_EPIRQ
+ 0D0C 74 01 3646 mov a,#0x01
+ 0D0E F0 3647 movx @dptr,a
+ 3648 ; ../../../include/ztex-isr.h:391: EUSB = 1;
+ 0D0F D2 E8 3649 setb _EUSB
+ 0D11 D0 D0 3650 pop psw
+ 0D13 D0 01 3651 pop (0+1)
+ 0D15 D0 00 3652 pop (0+0)
+ 0D17 D0 07 3653 pop (0+7)
+ 0D19 D0 06 3654 pop (0+6)
+ 0D1B D0 05 3655 pop (0+5)
+ 0D1D D0 04 3656 pop (0+4)
+ 0D1F D0 03 3657 pop (0+3)
+ 0D21 D0 02 3658 pop (0+2)
+ 0D23 D0 83 3659 pop dph
+ 0D25 D0 82 3660 pop dpl
+ 0D27 D0 F0 3661 pop b
+ 0D29 D0 E0 3662 pop acc
+ 0D2B D0 20 3663 pop bits
+ 0D2D 32 3664 reti
+ 3665 ;------------------------------------------------------------
+ 3666 ;Allocation info for local variables in function 'EP0OUT_ISR'
+ 3667 ;------------------------------------------------------------
+ 3668 ;------------------------------------------------------------
+ 3669 ; ../../../include/ztex-isr.h:397: static void EP0OUT_ISR () interrupt
+ 3670 ; -----------------------------------------
+ 3671 ; function EP0OUT_ISR
+ 3672 ; -----------------------------------------
+ 0D2E 3673 _EP0OUT_ISR:
+ 0D2E C0 20 3674 push bits
+ 0D30 C0 E0 3675 push acc
+ 0D32 C0 F0 3676 push b
+ 0D34 C0 82 3677 push dpl
+ 0D36 C0 83 3678 push dph
+ 0D38 C0 02 3679 push (0+2)
+ 0D3A C0 03 3680 push (0+3)
+ 0D3C C0 04 3681 push (0+4)
+ 0D3E C0 05 3682 push (0+5)
+ 0D40 C0 06 3683 push (0+6)
+ 0D42 C0 07 3684 push (0+7)
+ 0D44 C0 00 3685 push (0+0)
+ 0D46 C0 01 3686 push (0+1)
+ 0D48 C0 D0 3687 push psw
+ 0D4A 75 D0 00 3688 mov psw,#0x00
+ 3689 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0D4D C2 E8 3690 clr _EUSB
+ 3691 ; ../../../include/ztex-isr.h:400: if ( ep0_vendor_cmd_setup ) {
+ 0D4F 90 32 74 3692 mov dptr,#_ep0_vendor_cmd_setup
+ 0D52 E0 3693 movx a,@dptr
+ 0D53 FA 3694 mov r2,a
+ 0D54 60 20 3695 jz 00102$
+ 3696 ; ../../../include/ztex-isr.h:401: ep0_vendor_cmd_setup = 0;
+ 0D56 90 32 74 3697 mov dptr,#_ep0_vendor_cmd_setup
+ 0D59 E4 3698 clr a
+ 0D5A F0 3699 movx @dptr,a
+ 3700 ; ../../../include/ztex-isr.h:402: ep0_payload_remaining = (SETUPDAT[7] << 8) | SETUPDAT[6];
+ 0D5B 90 E6 BF 3701 mov dptr,#(_SETUPDAT + 0x0007)
+ 0D5E E0 3702 movx a,@dptr
+ 0D5F FB 3703 mov r3,a
+ 0D60 7A 00 3704 mov r2,#0x00
+ 0D62 90 E6 BE 3705 mov dptr,#(_SETUPDAT + 0x0006)
+ 0D65 E0 3706 movx a,@dptr
+ 0D66 FC 3707 mov r4,a
+ 0D67 7D 00 3708 mov r5,#0x00
+ 0D69 90 32 70 3709 mov dptr,#_ep0_payload_remaining
+ 0D6C EC 3710 mov a,r4
+ 0D6D 4A 3711 orl a,r2
+ 0D6E F0 3712 movx @dptr,a
+ 0D6F ED 3713 mov a,r5
+ 0D70 4B 3714 orl a,r3
+ 0D71 A3 3715 inc dptr
+ 0D72 F0 3716 movx @dptr,a
+ 3717 ; ../../../include/ztex-isr.h:403: ep0_vendor_cmd_su();
+ 0D73 12 06 EF 3718 lcall _ep0_vendor_cmd_su
+ 0D76 3719 00102$:
+ 3720 ; ../../../include/ztex-isr.h:406: ep0_payload_update();
+ 0D76 12 06 C2 3721 lcall _ep0_payload_update
+ 3722 ; ../../../include/ztex-isr.h:408: switch ( ep0_prev_setup_request ) {
+ 0D79 90 32 73 3723 mov dptr,#_ep0_prev_setup_request
+ 0D7C E0 3724 movx a,@dptr
+ 0D7D FA 3725 mov r2,a
+ 0D7E BA 39 09 3726 cjne r2,#0x39,00104$
+ 3727 ; ../../../include/ztex-eeprom.h:237: eeprom_write_ep0(EP0BCL);
+ 0D81 90 E6 8B 3728 mov dptr,#_EP0BCL
+ 0D84 E0 3729 movx a,@dptr
+ 0D85 F5 82 3730 mov dpl,a
+ 0D87 12 05 88 3731 lcall _eeprom_write_ep0
+ 3732 ; ../../../include/ztex-isr.h:410: }
+ 0D8A 3733 00104$:
+ 3734 ; ../../../include/ztex-isr.h:412: EP0BCL = 0;
+ 0D8A 90 E6 8B 3735 mov dptr,#_EP0BCL
+ 0D8D E4 3736 clr a
+ 0D8E F0 3737 movx @dptr,a
+ 3738 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0D8F 53 91 EF 3739 anl _EXIF,#0xEF
+ 0D92 90 E6 5F 3740 mov dptr,#_EPIRQ
+ 0D95 74 02 3741 mov a,#0x02
+ 0D97 F0 3742 movx @dptr,a
+ 3743 ; ../../../include/ztex-isr.h:416: if ( ep0_payload_remaining == 0 ) {
+ 0D98 90 32 70 3744 mov dptr,#_ep0_payload_remaining
+ 0D9B E0 3745 movx a,@dptr
+ 0D9C FA 3746 mov r2,a
+ 0D9D A3 3747 inc dptr
+ 0D9E E0 3748 movx a,@dptr
+ 0D9F FB 3749 mov r3,a
+ 0DA0 4A 3750 orl a,r2
+ 0DA1 70 08 3751 jnz 00106$
+ 3752 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 0DA3 90 E6 A0 3753 mov dptr,#_EP0CS
+ 0DA6 E0 3754 movx a,@dptr
+ 0DA7 FA 3755 mov r2,a
+ 0DA8 44 80 3756 orl a,#0x80
+ 0DAA F0 3757 movx @dptr,a
+ 0DAB 3758 00106$:
+ 3759 ; ../../../include/ztex-isr.h:419: EUSB = 1;
+ 0DAB D2 E8 3760 setb _EUSB
+ 0DAD D0 D0 3761 pop psw
+ 0DAF D0 01 3762 pop (0+1)
+ 0DB1 D0 00 3763 pop (0+0)
+ 0DB3 D0 07 3764 pop (0+7)
+ 0DB5 D0 06 3765 pop (0+6)
+ 0DB7 D0 05 3766 pop (0+5)
+ 0DB9 D0 04 3767 pop (0+4)
+ 0DBB D0 03 3768 pop (0+3)
+ 0DBD D0 02 3769 pop (0+2)
+ 0DBF D0 83 3770 pop dph
+ 0DC1 D0 82 3771 pop dpl
+ 0DC3 D0 F0 3772 pop b
+ 0DC5 D0 E0 3773 pop acc
+ 0DC7 D0 20 3774 pop bits
+ 0DC9 32 3775 reti
+ 3776 ;------------------------------------------------------------
+ 3777 ;Allocation info for local variables in function 'EP1IN_ISR'
+ 3778 ;------------------------------------------------------------
+ 3779 ;------------------------------------------------------------
+ 3780 ; ../../../include/ztex-isr.h:426: void EP1IN_ISR() interrupt
+ 3781 ; -----------------------------------------
+ 3782 ; function EP1IN_ISR
+ 3783 ; -----------------------------------------
+ 0DCA 3784 _EP1IN_ISR:
+ 0DCA C0 E0 3785 push acc
+ 0DCC C0 82 3786 push dpl
+ 0DCE C0 83 3787 push dph
+ 3788 ; ../../../include/ztex-isr.h:428: EXIF &= ~bmBIT4;
+ 0DD0 53 91 EF 3789 anl _EXIF,#0xEF
+ 3790 ; ../../../include/ztex-isr.h:429: EPIRQ = bmBIT2;
+ 0DD3 90 E6 5F 3791 mov dptr,#_EPIRQ
+ 0DD6 74 04 3792 mov a,#0x04
+ 0DD8 F0 3793 movx @dptr,a
+ 0DD9 D0 83 3794 pop dph
+ 0DDB D0 82 3795 pop dpl
+ 0DDD D0 E0 3796 pop acc
+ 0DDF 32 3797 reti
+ 3798 ; eliminated unneeded push/pop psw
+ 3799 ; eliminated unneeded push/pop b
+ 3800 ;------------------------------------------------------------
+ 3801 ;Allocation info for local variables in function 'EP1OUT_ISR'
+ 3802 ;------------------------------------------------------------
+ 3803 ;------------------------------------------------------------
+ 3804 ; ../../../include/ztex-isr.h:436: void EP1OUT_ISR() interrupt
+ 3805 ; -----------------------------------------
+ 3806 ; function EP1OUT_ISR
+ 3807 ; -----------------------------------------
+ 0DE0 3808 _EP1OUT_ISR:
+ 0DE0 C0 E0 3809 push acc
+ 0DE2 C0 82 3810 push dpl
+ 0DE4 C0 83 3811 push dph
+ 3812 ; ../../../include/ztex-isr.h:438: EXIF &= ~bmBIT4;
+ 0DE6 53 91 EF 3813 anl _EXIF,#0xEF
+ 3814 ; ../../../include/ztex-isr.h:439: EPIRQ = bmBIT3;
+ 0DE9 90 E6 5F 3815 mov dptr,#_EPIRQ
+ 0DEC 74 08 3816 mov a,#0x08
+ 0DEE F0 3817 movx @dptr,a
+ 0DEF D0 83 3818 pop dph
+ 0DF1 D0 82 3819 pop dpl
+ 0DF3 D0 E0 3820 pop acc
+ 0DF5 32 3821 reti
+ 3822 ; eliminated unneeded push/pop psw
+ 3823 ; eliminated unneeded push/pop b
+ 3824 ;------------------------------------------------------------
+ 3825 ;Allocation info for local variables in function 'EP2_ISR'
+ 3826 ;------------------------------------------------------------
+ 3827 ;------------------------------------------------------------
+ 3828 ; ../../../include/ztex-isr.h:445: void EP2_ISR() interrupt
+ 3829 ; -----------------------------------------
+ 3830 ; function EP2_ISR
+ 3831 ; -----------------------------------------
+ 0DF6 3832 _EP2_ISR:
+ 0DF6 C0 E0 3833 push acc
+ 0DF8 C0 82 3834 push dpl
+ 0DFA C0 83 3835 push dph
+ 3836 ; ../../../include/ztex-isr.h:447: EXIF &= ~bmBIT4;
+ 0DFC 53 91 EF 3837 anl _EXIF,#0xEF
+ 3838 ; ../../../include/ztex-isr.h:448: EPIRQ = bmBIT4;
+ 0DFF 90 E6 5F 3839 mov dptr,#_EPIRQ
+ 0E02 74 10 3840 mov a,#0x10
+ 0E04 F0 3841 movx @dptr,a
+ 0E05 D0 83 3842 pop dph
+ 0E07 D0 82 3843 pop dpl
+ 0E09 D0 E0 3844 pop acc
+ 0E0B 32 3845 reti
+ 3846 ; eliminated unneeded push/pop psw
+ 3847 ; eliminated unneeded push/pop b
+ 3848 ;------------------------------------------------------------
+ 3849 ;Allocation info for local variables in function 'EP4_ISR'
+ 3850 ;------------------------------------------------------------
+ 3851 ;------------------------------------------------------------
+ 3852 ; ../../../include/ztex-isr.h:454: void EP4_ISR() interrupt
+ 3853 ; -----------------------------------------
+ 3854 ; function EP4_ISR
+ 3855 ; -----------------------------------------
+ 0E0C 3856 _EP4_ISR:
+ 0E0C C0 E0 3857 push acc
+ 0E0E C0 82 3858 push dpl
+ 0E10 C0 83 3859 push dph
+ 3860 ; ../../../include/ztex-isr.h:456: EXIF &= ~bmBIT4;
+ 0E12 53 91 EF 3861 anl _EXIF,#0xEF
+ 3862 ; ../../../include/ztex-isr.h:457: EPIRQ = bmBIT5;
+ 0E15 90 E6 5F 3863 mov dptr,#_EPIRQ
+ 0E18 74 20 3864 mov a,#0x20
+ 0E1A F0 3865 movx @dptr,a
+ 0E1B D0 83 3866 pop dph
+ 0E1D D0 82 3867 pop dpl
+ 0E1F D0 E0 3868 pop acc
+ 0E21 32 3869 reti
+ 3870 ; eliminated unneeded push/pop psw
+ 3871 ; eliminated unneeded push/pop b
+ 3872 ;------------------------------------------------------------
+ 3873 ;Allocation info for local variables in function 'EP6_ISR'
+ 3874 ;------------------------------------------------------------
+ 3875 ;------------------------------------------------------------
+ 3876 ; ../../../include/ztex-isr.h:463: void EP6_ISR() interrupt
+ 3877 ; -----------------------------------------
+ 3878 ; function EP6_ISR
+ 3879 ; -----------------------------------------
+ 0E22 3880 _EP6_ISR:
+ 0E22 C0 E0 3881 push acc
+ 0E24 C0 82 3882 push dpl
+ 0E26 C0 83 3883 push dph
+ 3884 ; ../../../include/ztex-isr.h:465: EXIF &= ~bmBIT4;
+ 0E28 53 91 EF 3885 anl _EXIF,#0xEF
+ 3886 ; ../../../include/ztex-isr.h:466: EPIRQ = bmBIT6;
+ 0E2B 90 E6 5F 3887 mov dptr,#_EPIRQ
+ 0E2E 74 40 3888 mov a,#0x40
+ 0E30 F0 3889 movx @dptr,a
+ 0E31 D0 83 3890 pop dph
+ 0E33 D0 82 3891 pop dpl
+ 0E35 D0 E0 3892 pop acc
+ 0E37 32 3893 reti
+ 3894 ; eliminated unneeded push/pop psw
+ 3895 ; eliminated unneeded push/pop b
+ 3896 ;------------------------------------------------------------
+ 3897 ;Allocation info for local variables in function 'EP8_ISR'
+ 3898 ;------------------------------------------------------------
+ 3899 ;------------------------------------------------------------
+ 3900 ; ../../../include/ztex-isr.h:472: void EP8_ISR() interrupt
+ 3901 ; -----------------------------------------
+ 3902 ; function EP8_ISR
+ 3903 ; -----------------------------------------
+ 0E38 3904 _EP8_ISR:
+ 0E38 C0 E0 3905 push acc
+ 0E3A C0 82 3906 push dpl
+ 0E3C C0 83 3907 push dph
+ 3908 ; ../../../include/ztex-isr.h:474: EXIF &= ~bmBIT4;
+ 0E3E 53 91 EF 3909 anl _EXIF,#0xEF
+ 3910 ; ../../../include/ztex-isr.h:475: EPIRQ = bmBIT7;
+ 0E41 90 E6 5F 3911 mov dptr,#_EPIRQ
+ 0E44 74 80 3912 mov a,#0x80
+ 0E46 F0 3913 movx @dptr,a
+ 0E47 D0 83 3914 pop dph
+ 0E49 D0 82 3915 pop dpl
+ 0E4B D0 E0 3916 pop acc
+ 0E4D 32 3917 reti
+ 3918 ; eliminated unneeded push/pop psw
+ 3919 ; eliminated unneeded push/pop b
+ 3920 ;------------------------------------------------------------
+ 3921 ;Allocation info for local variables in function 'init_USB'
+ 3922 ;------------------------------------------------------------
+ 3923 ;------------------------------------------------------------
+ 3924 ; ../../../include/ztex.h:165: void init_USB ()
+ 3925 ; -----------------------------------------
+ 3926 ; function init_USB
+ 3927 ; -----------------------------------------
+ 0E4E 3928 _init_USB:
+ 3929 ; ../../../include/ztex.h:167: USBCS |= 0x08;
+ 0E4E 90 E6 80 3930 mov dptr,#_USBCS
+ 0E51 E0 3931 movx a,@dptr
+ 0E52 44 08 3932 orl a,#0x08
+ 0E54 F0 3933 movx @dptr,a
+ 3934 ; ../../../include/ztex.h:169: CPUCS = bmBIT4 | bmBIT1;
+ 0E55 90 E6 00 3935 mov dptr,#_CPUCS
+ 0E58 74 12 3936 mov a,#0x12
+ 0E5A F0 3937 movx @dptr,a
+ 3938 ; ../../../include/ztex.h:170: CKCON &= ~7;
+ 0E5B 53 8E F8 3939 anl _CKCON,#0xF8
+ 3940 ; ../../../include/ztex.h:191: EA = 0;
+ 0E5E C2 AF 3941 clr _EA
+ 3942 ; ../../../include/ztex.h:192: EUSB = 0;
+ 0E60 C2 E8 3943 clr _EUSB
+ 3944 ; ../../../include/ezintavecs.h:123: INT8VEC_USB.op=0x02;
+ 0E62 90 00 43 3945 mov dptr,#_INT8VEC_USB
+ 0E65 74 02 3946 mov a,#0x02
+ 0E67 F0 3947 movx @dptr,a
+ 3948 ; ../../../include/ezintavecs.h:124: INT8VEC_USB.addrH = 0x01;
+ 0E68 90 00 44 3949 mov dptr,#(_INT8VEC_USB + 0x0001)
+ 0E6B 74 01 3950 mov a,#0x01
+ 0E6D F0 3951 movx @dptr,a
+ 3952 ; ../../../include/ezintavecs.h:125: INT8VEC_USB.addrL = 0xb8;
+ 0E6E 90 00 45 3953 mov dptr,#(_INT8VEC_USB + 0x0002)
+ 0E71 74 B8 3954 mov a,#0xB8
+ 0E73 F0 3955 movx @dptr,a
+ 3956 ; ../../../include/ezintavecs.h:126: INTSETUP |= 8;
+ 0E74 90 E6 68 3957 mov dptr,#_INTSETUP
+ 0E77 E0 3958 movx a,@dptr
+ 0E78 44 08 3959 orl a,#0x08
+ 0E7A F0 3960 movx @dptr,a
+ 3961 ; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ 0E7B 90 01 00 3962 mov dptr,#_INTVEC_SUDAV
+ 0E7E 74 02 3963 mov a,#0x02
+ 0E80 F0 3964 movx @dptr,a
+ 3965 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ 0E81 7A 23 3966 mov r2,#_SUDAV_ISR
+ 0E83 7B 07 3967 mov r3,#(_SUDAV_ISR >> 8)
+ 0E85 8B 04 3968 mov ar4,r3
+ 0E87 90 01 01 3969 mov dptr,#(_INTVEC_SUDAV + 0x0001)
+ 0E8A EC 3970 mov a,r4
+ 0E8B F0 3971 movx @dptr,a
+ 3972 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ 0E8C 90 01 02 3973 mov dptr,#(_INTVEC_SUDAV + 0x0002)
+ 0E8F EA 3974 mov a,r2
+ 0E90 F0 3975 movx @dptr,a
+ 3976 ; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ 0E91 90 01 04 3977 mov dptr,#_INTVEC_SOF
+ 0E94 74 02 3978 mov a,#0x02
+ 0E96 F0 3979 movx @dptr,a
+ 3980 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ 0E97 7A 21 3981 mov r2,#_SOF_ISR
+ 0E99 7B 0C 3982 mov r3,#(_SOF_ISR >> 8)
+ 0E9B 8B 04 3983 mov ar4,r3
+ 0E9D 90 01 05 3984 mov dptr,#(_INTVEC_SOF + 0x0001)
+ 0EA0 EC 3985 mov a,r4
+ 0EA1 F0 3986 movx @dptr,a
+ 3987 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ 0EA2 90 01 06 3988 mov dptr,#(_INTVEC_SOF + 0x0002)
+ 0EA5 EA 3989 mov a,r2
+ 0EA6 F0 3990 movx @dptr,a
+ 3991 ; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ 0EA7 90 01 08 3992 mov dptr,#_INTVEC_SUTOK
+ 0EAA 74 02 3993 mov a,#0x02
+ 0EAC F0 3994 movx @dptr,a
+ 3995 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ 0EAD 7A 37 3996 mov r2,#_SUTOK_ISR
+ 0EAF 7B 0C 3997 mov r3,#(_SUTOK_ISR >> 8)
+ 0EB1 8B 04 3998 mov ar4,r3
+ 0EB3 90 01 09 3999 mov dptr,#(_INTVEC_SUTOK + 0x0001)
+ 0EB6 EC 4000 mov a,r4
+ 0EB7 F0 4001 movx @dptr,a
+ 4002 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ 0EB8 90 01 0A 4003 mov dptr,#(_INTVEC_SUTOK + 0x0002)
+ 0EBB EA 4004 mov a,r2
+ 0EBC F0 4005 movx @dptr,a
+ 4006 ; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ 0EBD 90 01 0C 4007 mov dptr,#_INTVEC_SUSPEND
+ 0EC0 74 02 4008 mov a,#0x02
+ 0EC2 F0 4009 movx @dptr,a
+ 4010 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ 0EC3 7A 4D 4011 mov r2,#_SUSP_ISR
+ 0EC5 7B 0C 4012 mov r3,#(_SUSP_ISR >> 8)
+ 0EC7 8B 04 4013 mov ar4,r3
+ 0EC9 90 01 0D 4014 mov dptr,#(_INTVEC_SUSPEND + 0x0001)
+ 0ECC EC 4015 mov a,r4
+ 0ECD F0 4016 movx @dptr,a
+ 4017 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ 0ECE 90 01 0E 4018 mov dptr,#(_INTVEC_SUSPEND + 0x0002)
+ 0ED1 EA 4019 mov a,r2
+ 0ED2 F0 4020 movx @dptr,a
+ 4021 ; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ 0ED3 90 01 10 4022 mov dptr,#_INTVEC_USBRESET
+ 0ED6 74 02 4023 mov a,#0x02
+ 0ED8 F0 4024 movx @dptr,a
+ 4025 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ 0ED9 7A 63 4026 mov r2,#_URES_ISR
+ 0EDB 7B 0C 4027 mov r3,#(_URES_ISR >> 8)
+ 0EDD 8B 04 4028 mov ar4,r3
+ 0EDF 90 01 11 4029 mov dptr,#(_INTVEC_USBRESET + 0x0001)
+ 0EE2 EC 4030 mov a,r4
+ 0EE3 F0 4031 movx @dptr,a
+ 4032 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ 0EE4 90 01 12 4033 mov dptr,#(_INTVEC_USBRESET + 0x0002)
+ 0EE7 EA 4034 mov a,r2
+ 0EE8 F0 4035 movx @dptr,a
+ 4036 ; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ 0EE9 90 01 14 4037 mov dptr,#_INTVEC_HISPEED
+ 0EEC 74 02 4038 mov a,#0x02
+ 0EEE F0 4039 movx @dptr,a
+ 4040 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ 0EEF 7A 79 4041 mov r2,#_HSGRANT_ISR
+ 0EF1 7B 0C 4042 mov r3,#(_HSGRANT_ISR >> 8)
+ 0EF3 8B 04 4043 mov ar4,r3
+ 0EF5 90 01 15 4044 mov dptr,#(_INTVEC_HISPEED + 0x0001)
+ 0EF8 EC 4045 mov a,r4
+ 0EF9 F0 4046 movx @dptr,a
+ 4047 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ 0EFA 90 01 16 4048 mov dptr,#(_INTVEC_HISPEED + 0x0002)
+ 0EFD EA 4049 mov a,r2
+ 0EFE F0 4050 movx @dptr,a
+ 4051 ; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ 0EFF 90 01 18 4052 mov dptr,#_INTVEC_EP0ACK
+ 0F02 74 02 4053 mov a,#0x02
+ 0F04 F0 4054 movx @dptr,a
+ 4055 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ 0F05 7A 8F 4056 mov r2,#_EP0ACK_ISR
+ 0F07 7B 0C 4057 mov r3,#(_EP0ACK_ISR >> 8)
+ 0F09 8B 04 4058 mov ar4,r3
+ 0F0B 90 01 19 4059 mov dptr,#(_INTVEC_EP0ACK + 0x0001)
+ 0F0E EC 4060 mov a,r4
+ 0F0F F0 4061 movx @dptr,a
+ 4062 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ 0F10 90 01 1A 4063 mov dptr,#(_INTVEC_EP0ACK + 0x0002)
+ 0F13 EA 4064 mov a,r2
+ 0F14 F0 4065 movx @dptr,a
+ 4066 ; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ 0F15 90 01 20 4067 mov dptr,#_INTVEC_EP0IN
+ 0F18 74 02 4068 mov a,#0x02
+ 0F1A F0 4069 movx @dptr,a
+ 4070 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ 0F1B 7A A5 4071 mov r2,#_EP0IN_ISR
+ 0F1D 7B 0C 4072 mov r3,#(_EP0IN_ISR >> 8)
+ 0F1F 8B 04 4073 mov ar4,r3
+ 0F21 90 01 21 4074 mov dptr,#(_INTVEC_EP0IN + 0x0001)
+ 0F24 EC 4075 mov a,r4
+ 0F25 F0 4076 movx @dptr,a
+ 4077 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ 0F26 90 01 22 4078 mov dptr,#(_INTVEC_EP0IN + 0x0002)
+ 0F29 EA 4079 mov a,r2
+ 0F2A F0 4080 movx @dptr,a
+ 4081 ; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ 0F2B 90 01 24 4082 mov dptr,#_INTVEC_EP0OUT
+ 0F2E 74 02 4083 mov a,#0x02
+ 0F30 F0 4084 movx @dptr,a
+ 4085 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ 0F31 7A 2E 4086 mov r2,#_EP0OUT_ISR
+ 0F33 7B 0D 4087 mov r3,#(_EP0OUT_ISR >> 8)
+ 0F35 8B 04 4088 mov ar4,r3
+ 0F37 90 01 25 4089 mov dptr,#(_INTVEC_EP0OUT + 0x0001)
+ 0F3A EC 4090 mov a,r4
+ 0F3B F0 4091 movx @dptr,a
+ 4092 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ 0F3C 90 01 26 4093 mov dptr,#(_INTVEC_EP0OUT + 0x0002)
+ 0F3F EA 4094 mov a,r2
+ 0F40 F0 4095 movx @dptr,a
+ 4096 ; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ 0F41 90 01 28 4097 mov dptr,#_INTVEC_EP1IN
+ 0F44 74 02 4098 mov a,#0x02
+ 0F46 F0 4099 movx @dptr,a
+ 4100 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ 0F47 7A CA 4101 mov r2,#_EP1IN_ISR
+ 0F49 7B 0D 4102 mov r3,#(_EP1IN_ISR >> 8)
+ 0F4B 8B 04 4103 mov ar4,r3
+ 0F4D 90 01 29 4104 mov dptr,#(_INTVEC_EP1IN + 0x0001)
+ 0F50 EC 4105 mov a,r4
+ 0F51 F0 4106 movx @dptr,a
+ 4107 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ 0F52 90 01 2A 4108 mov dptr,#(_INTVEC_EP1IN + 0x0002)
+ 0F55 EA 4109 mov a,r2
+ 0F56 F0 4110 movx @dptr,a
+ 4111 ; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ 0F57 90 01 2C 4112 mov dptr,#_INTVEC_EP1OUT
+ 0F5A 74 02 4113 mov a,#0x02
+ 0F5C F0 4114 movx @dptr,a
+ 4115 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ 0F5D 7A E0 4116 mov r2,#_EP1OUT_ISR
+ 0F5F 7B 0D 4117 mov r3,#(_EP1OUT_ISR >> 8)
+ 0F61 8B 04 4118 mov ar4,r3
+ 0F63 90 01 2D 4119 mov dptr,#(_INTVEC_EP1OUT + 0x0001)
+ 0F66 EC 4120 mov a,r4
+ 0F67 F0 4121 movx @dptr,a
+ 4122 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ 0F68 90 01 2E 4123 mov dptr,#(_INTVEC_EP1OUT + 0x0002)
+ 0F6B EA 4124 mov a,r2
+ 0F6C F0 4125 movx @dptr,a
+ 4126 ; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ 0F6D 90 01 30 4127 mov dptr,#_INTVEC_EP2
+ 0F70 74 02 4128 mov a,#0x02
+ 0F72 F0 4129 movx @dptr,a
+ 4130 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ 0F73 7A F6 4131 mov r2,#_EP2_ISR
+ 0F75 7B 0D 4132 mov r3,#(_EP2_ISR >> 8)
+ 0F77 8B 04 4133 mov ar4,r3
+ 0F79 90 01 31 4134 mov dptr,#(_INTVEC_EP2 + 0x0001)
+ 0F7C EC 4135 mov a,r4
+ 0F7D F0 4136 movx @dptr,a
+ 4137 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ 0F7E 90 01 32 4138 mov dptr,#(_INTVEC_EP2 + 0x0002)
+ 0F81 EA 4139 mov a,r2
+ 0F82 F0 4140 movx @dptr,a
+ 4141 ; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ 0F83 90 01 34 4142 mov dptr,#_INTVEC_EP4
+ 0F86 74 02 4143 mov a,#0x02
+ 0F88 F0 4144 movx @dptr,a
+ 4145 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ 0F89 7A 0C 4146 mov r2,#_EP4_ISR
+ 0F8B 7B 0E 4147 mov r3,#(_EP4_ISR >> 8)
+ 0F8D 8B 04 4148 mov ar4,r3
+ 0F8F 90 01 35 4149 mov dptr,#(_INTVEC_EP4 + 0x0001)
+ 0F92 EC 4150 mov a,r4
+ 0F93 F0 4151 movx @dptr,a
+ 4152 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ 0F94 90 01 36 4153 mov dptr,#(_INTVEC_EP4 + 0x0002)
+ 0F97 EA 4154 mov a,r2
+ 0F98 F0 4155 movx @dptr,a
+ 4156 ; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ 0F99 90 01 38 4157 mov dptr,#_INTVEC_EP6
+ 0F9C 74 02 4158 mov a,#0x02
+ 0F9E F0 4159 movx @dptr,a
+ 4160 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ 0F9F 7A 22 4161 mov r2,#_EP6_ISR
+ 0FA1 7B 0E 4162 mov r3,#(_EP6_ISR >> 8)
+ 0FA3 8B 04 4163 mov ar4,r3
+ 0FA5 90 01 39 4164 mov dptr,#(_INTVEC_EP6 + 0x0001)
+ 0FA8 EC 4165 mov a,r4
+ 0FA9 F0 4166 movx @dptr,a
+ 4167 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ 0FAA 90 01 3A 4168 mov dptr,#(_INTVEC_EP6 + 0x0002)
+ 0FAD EA 4169 mov a,r2
+ 0FAE F0 4170 movx @dptr,a
+ 4171 ; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ 0FAF 90 01 3C 4172 mov dptr,#_INTVEC_EP8
+ 0FB2 74 02 4173 mov a,#0x02
+ 0FB4 F0 4174 movx @dptr,a
+ 4175 ; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ 0FB5 7A 38 4176 mov r2,#_EP8_ISR
+ 0FB7 7B 0E 4177 mov r3,#(_EP8_ISR >> 8)
+ 0FB9 8B 04 4178 mov ar4,r3
+ 0FBB 90 01 3D 4179 mov dptr,#(_INTVEC_EP8 + 0x0001)
+ 0FBE EC 4180 mov a,r4
+ 0FBF F0 4181 movx @dptr,a
+ 4182 ; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ 0FC0 90 01 3E 4183 mov dptr,#(_INTVEC_EP8 + 0x0002)
+ 0FC3 EA 4184 mov a,r2
+ 0FC4 F0 4185 movx @dptr,a
+ 4186 ; ../../../include/ztex.h:213: EXIF &= ~bmBIT4;
+ 0FC5 53 91 EF 4187 anl _EXIF,#0xEF
+ 4188 ; ../../../include/ztex.h:214: USBIRQ = 0x7f;
+ 0FC8 90 E6 5D 4189 mov dptr,#_USBIRQ
+ 0FCB 74 7F 4190 mov a,#0x7F
+ 0FCD F0 4191 movx @dptr,a
+ 4192 ; ../../../include/ztex.h:215: USBIE |= 0x7f;
+ 0FCE 90 E6 5C 4193 mov dptr,#_USBIE
+ 0FD1 E0 4194 movx a,@dptr
+ 0FD2 FA 4195 mov r2,a
+ 0FD3 44 7F 4196 orl a,#0x7F
+ 0FD5 F0 4197 movx @dptr,a
+ 4198 ; ../../../include/ztex.h:216: EPIRQ = 0xff;
+ 0FD6 90 E6 5F 4199 mov dptr,#_EPIRQ
+ 0FD9 74 FF 4200 mov a,#0xFF
+ 0FDB F0 4201 movx @dptr,a
+ 4202 ; ../../../include/ztex.h:217: EPIE = 0xff;
+ 0FDC 90 E6 5E 4203 mov dptr,#_EPIE
+ 0FDF 74 FF 4204 mov a,#0xFF
+ 0FE1 F0 4205 movx @dptr,a
+ 4206 ; ../../../include/ztex.h:219: EUSB = 1;
+ 0FE2 D2 E8 4207 setb _EUSB
+ 4208 ; ../../../include/ztex.h:220: EA = 1;
+ 0FE4 D2 AF 4209 setb _EA
+ 4210 ; ../../../include/ztex.h:154: EP$0CFG = bmBIT7 | bmBIT5;
+ 0FE6 90 E6 11 4211 mov dptr,#_EP1INCFG
+ 0FE9 74 A0 4212 mov a,#0xA0
+ 0FEB F0 4213 movx @dptr,a
+ 4214 ; ../../../include/ezregs.h:46: _endasm;
+ 4215
+ 0FEC 00 4216 nop
+ 0FED 00 4217 nop
+ 0FEE 00 4218 nop
+ 0FEF 00 4219 nop
+ 4220
+ 4221 ; ../../../include/ztex.h:154: EP$0CFG = bmBIT7 | bmBIT5;
+ 0FF0 90 E6 10 4222 mov dptr,#_EP1OUTCFG
+ 0FF3 74 A0 4223 mov a,#0xA0
+ 0FF5 F0 4224 movx @dptr,a
+ 4225 ; ../../../include/ezregs.h:46: _endasm;
+ 4226
+ 0FF6 00 4227 nop
+ 0FF7 00 4228 nop
+ 0FF8 00 4229 nop
+ 0FF9 00 4230 nop
+ 4231
+ 4232 ; ../../../include/ztex.h:149: ;
+ 0FFA 90 E6 12 4233 mov dptr,#_EP2CFG
+ 0FFD E4 4234 clr a
+ 0FFE F0 4235 movx @dptr,a
+ 4236 ; ../../../include/ezregs.h:46: _endasm;
+ 4237
+ 0FFF 00 4238 nop
+ 1000 00 4239 nop
+ 1001 00 4240 nop
+ 1002 00 4241 nop
+ 4242
+ 4243 ; ../../../include/ztex.h:149: ;
+ 1003 90 E6 13 4244 mov dptr,#_EP4CFG
+ 1006 E4 4245 clr a
+ 1007 F0 4246 movx @dptr,a
+ 4247 ; ../../../include/ezregs.h:46: _endasm;
+ 4248
+ 1008 00 4249 nop
+ 1009 00 4250 nop
+ 100A 00 4251 nop
+ 100B 00 4252 nop
+ 4253
+ 4254 ; ../../../include/ztex.h:149: ;
+ 100C 90 E6 14 4255 mov dptr,#_EP6CFG
+ 100F E4 4256 clr a
+ 1010 F0 4257 movx @dptr,a
+ 4258 ; ../../../include/ezregs.h:46: _endasm;
+ 4259
+ 1011 00 4260 nop
+ 1012 00 4261 nop
+ 1013 00 4262 nop
+ 1014 00 4263 nop
+ 4264
+ 4265 ; ../../../include/ztex.h:149: ;
+ 1015 90 E6 15 4266 mov dptr,#_EP8CFG
+ 1018 E4 4267 clr a
+ 1019 F0 4268 movx @dptr,a
+ 4269 ; ../../../include/ezregs.h:46: _endasm;
+ 4270
+ 101A 00 4271 nop
+ 101B 00 4272 nop
+ 101C 00 4273 nop
+ 101D 00 4274 nop
+ 4275
+ 4276 ; ../../../include/ztex.h:236: debug_init();
+ 101E 12 05 F9 4277 lcall _debug_init
+ 4278 ; ../../../include/ztex.h:239: USBCS |= bmBIT7 | bmBIT1;
+ 1021 90 E6 80 4279 mov dptr,#_USBCS
+ 1024 E0 4280 movx a,@dptr
+ 1025 44 82 4281 orl a,#0x82
+ 1027 F0 4282 movx @dptr,a
+ 4283 ; ../../../include/ztex.h:240: wait(250);
+ 1028 90 00 FA 4284 mov dptr,#0x00FA
+ 102B 12 02 64 4285 lcall _wait
+ 4286 ; ../../../include/ztex.h:241: USBCS &= ~0x08;
+ 102E 90 E6 80 4287 mov dptr,#_USBCS
+ 1031 E0 4288 movx a,@dptr
+ 1032 54 F7 4289 anl a,#0xF7
+ 1034 F0 4290 movx @dptr,a
+ 1035 22 4291 ret
+ 4292 ;------------------------------------------------------------
+ 4293 ;Allocation info for local variables in function 'main'
+ 4294 ;------------------------------------------------------------
+ 4295 ;i Allocated to registers
+ 4296 ;b Allocated to registers r4
+ 4297 ;------------------------------------------------------------
+ 4298 ; debug.c:32: void main(void)
+ 4299 ; -----------------------------------------
+ 4300 ; function main
+ 4301 ; -----------------------------------------
+ 1036 4302 _main:
+ 4303 ; debug.c:38: init_USB();
+ 1036 12 0E 4E 4304 lcall _init_USB
+ 4305 ; debug.c:41: while (1) {
+ 1039 7A 00 4306 mov r2,#0x00
+ 103B 7B 00 4307 mov r3,#0x00
+ 103D 4308 00102$:
+ 4309 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 103D 8A 04 4310 mov ar4,r2
+ 103F 90 32 6B 4311 mov dptr,#_debug_msg_buf
+ 1042 EC 4312 mov a,r4
+ 1043 F0 4313 movx @dptr,a
+ 4314 ; debug.c:44: debug_msg_buf[1] = i >> 8;
+ 1044 8B 04 4315 mov ar4,r3
+ 1046 90 32 6C 4316 mov dptr,#(_debug_msg_buf + 0x0001)
+ 1049 EC 4317 mov a,r4
+ 104A F0 4318 movx @dptr,a
+ 4319 ; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ 104B C0 02 4320 push ar2
+ 104D C0 03 4321 push ar3
+ 104F 12 05 B5 4322 lcall _debug_add_msg
+ 1052 D0 03 4323 pop ar3
+ 1054 D0 02 4324 pop ar2
+ 4325 ; debug.c:46: i+=1;
+ 1056 0A 4326 inc r2
+ 1057 BA 00 01 4327 cjne r2,#0x00,00113$
+ 105A 0B 4328 inc r3
+ 105B 4329 00113$:
+ 4330 ; debug.c:30: #include[ztex.h]
+ 105B 7C 00 4331 mov r4,#0x00
+ 105D 4332 00104$:
+ 105D BC 64 00 4333 cjne r4,#0x64,00114$
+ 1060 4334 00114$:
+ 1060 50 DB 4335 jnc 00102$
+ 1062 90 32 69 4336 mov dptr,#_debug_stack_ptr
+ 1065 E0 4337 movx a,@dptr
+ 1066 FD 4338 mov r5,a
+ 1067 A3 4339 inc dptr
+ 1068 E0 4340 movx a,@dptr
+ 1069 FE 4341 mov r6,a
+ 106A 8D 82 4342 mov dpl,r5
+ 106C 8E 83 4343 mov dph,r6
+ 106E A3 4344 inc dptr
+ 106F A3 4345 inc dptr
+ 1070 EC 4346 mov a,r4
+ 1071 F0 4347 movx @dptr,a
+ 1072 90 00 0A 4348 mov dptr,#0x000A
+ 1075 C0 02 4349 push ar2
+ 1077 C0 03 4350 push ar3
+ 1079 C0 04 4351 push ar4
+ 107B 12 02 64 4352 lcall _wait
+ 107E D0 04 4353 pop ar4
+ 1080 D0 03 4354 pop ar3
+ 1082 D0 02 4355 pop ar2
+ 1084 0C 4356 inc r4
+ 1085 80 D6 4357 sjmp 00104$
+ 4358 .area CSEG (CODE)
+ 4359 .area CONST (CODE)
+ 108B 4360 _manufacturerString:
+ 108B 5A 54 45 58 4361 .ascii "ZTEX"
+ 108F 00 4362 .db 0x00
+ 1090 4363 _productString:
+ 1090 64 65 62 75 67 20 4364 .ascii "debug for EZ-USB devices"
+ 66 6F 72 20 45 5A
+ 2D 55 53 42 20 64
+ 65 76 69 63 65 73
+ 10A8 00 4365 .db 0x00
+ 10A9 4366 _configurationString:
+ 10A9 28 75 6E 6B 6E 6F 4367 .ascii "(unknown)"
+ 77 6E 29
+ 10B2 00 4368 .db 0x00
+ 10B3 4369 _PadByte:
+ 10B3 00 4370 .db #0x00
+ 10B4 4371 _DeviceDescriptor:
+ 10B4 12 4372 .db #0x12
+ 10B5 01 4373 .db #0x01
+ 10B6 00 4374 .db #0x00
+ 10B7 02 4375 .db #0x02
+ 10B8 FF 4376 .db #0xFF
+ 10B9 FF 4377 .db #0xFF
+ 10BA FF 4378 .db #0xFF
+ 10BB 40 4379 .db #0x40
+ 10BC 1A 4380 .db #0x1A
+ 10BD 22 4381 .db #0x22
+ 10BE 00 4382 .db #0x00
+ 10BF 01 4383 .db #0x01
+ 10C0 00 4384 .db #0x00
+ 10C1 00 4385 .db #0x00
+ 10C2 01 4386 .db #0x01
+ 10C3 02 4387 .db #0x02
+ 10C4 03 4388 .db #0x03
+ 10C5 01 4389 .db #0x01
+ 10C6 4390 _DeviceQualifierDescriptor:
+ 10C6 0A 4391 .db #0x0A
+ 10C7 06 4392 .db #0x06
+ 10C8 00 4393 .db #0x00
+ 10C9 02 4394 .db #0x02
+ 10CA FF 4395 .db #0xFF
+ 10CB FF 4396 .db #0xFF
+ 10CC FF 4397 .db #0xFF
+ 10CD 40 4398 .db #0x40
+ 10CE 01 4399 .db #0x01
+ 10CF 00 4400 .db #0x00
+ 10D0 4401 _HighSpeedConfigDescriptor:
+ 10D0 09 4402 .db #0x09
+ 10D1 02 4403 .db #0x02
+ 10D2 20 4404 .db #0x20
+ 10D3 00 4405 .db #0x00
+ 10D4 01 4406 .db #0x01
+ 10D5 01 4407 .db #0x01
+ 10D6 04 4408 .db #0x04
+ 10D7 C0 4409 .db #0xC0
+ 10D8 32 4410 .db #0x32
+ 10D9 09 4411 .db #0x09
+ 10DA 04 4412 .db #0x04
+ 10DB 00 4413 .db #0x00
+ 10DC 00 4414 .db #0x00
+ 10DD 02 4415 .db #0x02
+ 10DE FF 4416 .db #0xFF
+ 10DF FF 4417 .db #0xFF
+ 10E0 FF 4418 .db #0xFF
+ 10E1 00 4419 .db #0x00
+ 10E2 07 4420 .db #0x07
+ 10E3 05 4421 .db #0x05
+ 10E4 81 4422 .db #0x81
+ 10E5 02 4423 .db #0x02
+ 10E6 00 4424 .db #0x00
+ 10E7 02 4425 .db #0x02
+ 10E8 00 4426 .db #0x00
+ 10E9 07 4427 .db #0x07
+ 10EA 05 4428 .db #0x05
+ 10EB 01 4429 .db #0x01
+ 10EC 02 4430 .db #0x02
+ 10ED 00 4431 .db #0x00
+ 10EE 02 4432 .db #0x02
+ 10EF 00 4433 .db #0x00
+ 10F0 4434 _HighSpeedConfigDescriptor_PadByte:
+ 10F0 00 4435 .db #0x00
+ 10F1 00 4436 .db 0x00
+ 10F2 4437 _FullSpeedConfigDescriptor:
+ 10F2 09 4438 .db #0x09
+ 10F3 02 4439 .db #0x02
+ 10F4 20 4440 .db #0x20
+ 10F5 00 4441 .db #0x00
+ 10F6 01 4442 .db #0x01
+ 10F7 01 4443 .db #0x01
+ 10F8 04 4444 .db #0x04
+ 10F9 C0 4445 .db #0xC0
+ 10FA 32 4446 .db #0x32
+ 10FB 09 4447 .db #0x09
+ 10FC 04 4448 .db #0x04
+ 10FD 00 4449 .db #0x00
+ 10FE 00 4450 .db #0x00
+ 10FF 02 4451 .db #0x02
+ 1100 FF 4452 .db #0xFF
+ 1101 FF 4453 .db #0xFF
+ 1102 FF 4454 .db #0xFF
+ 1103 00 4455 .db #0x00
+ 1104 07 4456 .db #0x07
+ 1105 05 4457 .db #0x05
+ 1106 81 4458 .db #0x81
+ 1107 02 4459 .db #0x02
+ 1108 40 4460 .db #0x40
+ 1109 00 4461 .db #0x00
+ 110A 00 4462 .db #0x00
+ 110B 07 4463 .db #0x07
+ 110C 05 4464 .db #0x05
+ 110D 01 4465 .db #0x01
+ 110E 02 4466 .db #0x02
+ 110F 40 4467 .db #0x40
+ 1110 00 4468 .db #0x00
+ 1111 00 4469 .db #0x00
+ 1112 4470 _FullSpeedConfigDescriptor_PadByte:
+ 1112 00 4471 .db #0x00
+ 1113 00 4472 .db 0x00
+ 1114 4473 _EmptyStringDescriptor:
+ 1114 04 4474 .db #0x04
+ 1115 03 4475 .db #0x03
+ 1116 00 4476 .db #0x00
+ 1117 00 4477 .db #0x00
+ 4478 .area XINIT (CODE)
+ 1118 4479 __xinit__ep0_payload_remaining:
+ 1118 00 00 4480 .byte #0x00,#0x00
+ 111A 4481 __xinit__ep0_payload_transfer:
+ 111A 00 4482 .db #0x00
+ 111B 4483 __xinit__ep0_prev_setup_request:
+ 111B FF 4484 .db #0xFF
+ 111C 4485 __xinit__ep0_vendor_cmd_setup:
+ 111C 00 4486 .db #0x00
+ 111D 4487 __xinit__ISOFRAME_COUNTER:
+ 111D 00 00 4488 .byte #0x00,#0x00
+ 111F 00 00 4489 .byte #0x00,#0x00
+ 1121 00 00 4490 .byte #0x00,#0x00
+ 1123 00 00 4491 .byte #0x00,#0x00
+ 4492 .area CABS (ABS,CODE)
Index: debug/Readme
===================================================================
--- debug/Readme (nonexistent)
+++ debug/Readme (revision 3)
@@ -0,0 +1,74 @@
+debug
+-----
+
+This example explains the usage of the debug helper and should work
+on all EZ-USB Products.
+
+The debug helper provides a simple interface to store status
+informations or other data which can be read out from host PC using the
+API.
+
+The debug helper is stack orientated and initialized using the
+"ENABLE_DEBUG(,);" macro, where
+denotes the maximum number of messages in stack and
+denotes the message size in bytes.
+
+Two variables and one function are used for the message control:
+
+/*
+ This buffer is used to buffer the message. The user should
+ write the data to this buffer.
+*/
+xdata BYTE debug_msg_buf[DEBUG_MSG_SIZE];
+
+/*
+ Points the the last message on message stack. This can be used to
+ modify / update the last message
+*/
+xdata BYTE* xdata debug_stack_ptr;
+
+/*
+ Adds the message stored in debug_msg_buf to the message stack
+*/
+void debug_add_msg ();
+
+The messages can be read out from host PC using the following API
+methods and variables:
+
+/*
+ Is set by debugReadMessages(boolean,byte[]) and contains the number
+ of new messages.
+*/
+public int debugNewMessages;
+
+/*
+ Returns the size of message stack in messages.
+*/
+public int debugStackSize ( );
+
+/*
+ Returns the size of messages in bytes.
+*/
+public int debugMsgSize ( );
+
+/*
+ Returns the number of the last message read out by
+ debugStackSize(boolean,byte[])
+*/
+public final int debuglastMsg ( );
+
+/*
+ Reads debug messages from message stack. The number of messages
+ stored in buf is returned. The total number of new messages is stored
+ in debugNewMessages. The number of the latest message is returned by
+ debuglastMessage().
+
+ If parameter all is true, all messages from stack are written to buf.
+ If it is false, only the new messages are written to buf.
+*/
+public int debugReadMessages ( boolean all, byte[] buf );
+
+
+The example creates one debug message per second. Each message is 3
+bytes long. The first two bytes contain the second counter, the last
+byte contains a another counter which is incremented every 10ms.
Index: debug/debug.sh
===================================================================
--- debug/debug.sh (nonexistent)
+++ debug/debug.sh (revision 3)
@@ -0,0 +1,3 @@
+make -C ../../../java distclean all || exit
+make distclean all || exit
+java -cp Debug.jar Debug $@
debug/debug.sh
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: debug/Debug.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: debug/Debug.jar
===================================================================
--- debug/Debug.jar (nonexistent)
+++ debug/Debug.jar (revision 3)
debug/Debug.jar
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: debug/debug.map
===================================================================
--- debug/debug.map (nonexistent)
+++ debug/debug.map (revision 3)
@@ -0,0 +1,920 @@
+
+Hexadecimal
+
+Area Addr Size Decimal Bytes (Attributes)
+-------------------------------- ---- ---- ------- ----- ------------
+CABS 0000 0000 = 0. bytes (ABS,CON,CODE)
+
+ Value Global
+ -------- --------------------------------
+ 0C:FFFFFF00 s_BSEG
+ 0C:0000 l_ABSCODE
+ 0C:0000 l_BSEG
+ 0C:0000 l_BSEG_BYTES
+ 0C:0000 l_CABS
+ 0C:0000 l_GSINIT
+ 0C:0000 l_GSINIT1
+ 0C:0000 l_GSINIT5
+ 0C:0000 l_IABS
+ 0C:0000 l_ISEG
+ 0C:0000 l_PSEG
+ 0C:0000 l_REG_BANK_1
+ 0C:0000 l_REG_BANK_2
+ 0C:0000 l_REG_BANK_3
+ 0C:0000 l_RSEG
+ 0C:0000 l_XABS
+ 0C:0000 l__CODE
+ 0C:0000 s_ABSCODE
+ 0C:0000 s_ABSCODE0
+ 0C:0000 s_ABSCODE100
+ 0C:0000 s_ABSCODE104
+ 0C:0000 s_ABSCODE108
+ 0C:0000 s_ABSCODE10c
+ 0C:0000 s_ABSCODE110
+ 0C:0000 s_ABSCODE114
+ 0C:0000 s_ABSCODE118
+ 0C:0000 s_ABSCODE120
+ 0C:0000 s_ABSCODE124
+ 0C:0000 s_ABSCODE128
+ 0C:0000 s_ABSCODE12c
+ 0C:0000 s_ABSCODE13
+ 0C:0000 s_ABSCODE130
+ 0C:0000 s_ABSCODE134
+ 0C:0000 s_ABSCODE138
+ 0C:0000 s_ABSCODE13c
+ 0C:0000 s_ABSCODE140
+ 0C:0000 s_ABSCODE148
+ 0C:0000 s_ABSCODE14c
+ 0C:0000 s_ABSCODE150
+ 0C:0000 s_ABSCODE154
+ 0C:0000 s_ABSCODE158
+ 0C:0000 s_ABSCODE15c
+ 0C:0000 s_ABSCODE160
+ 0C:0000 s_ABSCODE170
+ 0C:0000 s_ABSCODE174
+ 0C:0000 s_ABSCODE178
+ 0C:0000 s_ABSCODE17c
+ 0C:0000 s_ABSCODE180
+ 0C:0000 s_ABSCODE184
+ 0C:0000 s_ABSCODE188
+ 0C:0000 s_ABSCODE18c
+ 0C:0000 s_ABSCODE190
+ 0C:0000 s_ABSCODE194
+ 0C:0000 s_ABSCODE198
+ 0C:0000 s_ABSCODE19c
+ 0C:0000 s_ABSCODE1a0
+ 0C:0000 s_ABSCODE1a8
+ 0C:0000 s_ABSCODE1ac
+ 0C:0000 s_ABSCODE1b
+ 0C:0000 s_ABSCODE1b0
+ 0C:0000 s_ABSCODE1b4
+ 0C:0000 s_ABSCODE1b8
+ 0C:0000 s_ABSCODE23
+ 0C:0000 s_ABSCODE2b
+ 0C:0000 s_ABSCODE3
+ 0C:0000 s_ABSCODE33
+ 0C:0000 s_ABSCODE3b
+ 0C:0000 s_ABSCODE43
+ 0C:0000 s_ABSCODE4b
+ 0C:0000 s_ABSCODE53
+ 0C:0000 s_ABSCODE5b
+ 0C:0000 s_ABSCODE63
+ 0C:0000 s_ABSCODE6c
+ 0C:0000 s_ABSCODE6d
+ 0C:0000 s_ABSCODE6e
+ 0C:0000 s_ABSCODE72
+ 0C:0000 s_ABSCODE76
+ 0C:0000 s_ABSCODE77
+ 0C:0000 s_ABSCODE78
+ 0C:0000 s_ABSCODE7e
+ 0C:0000 s_ABSCODE8a
+ 0C:0000 s_ABSCODEb
+ 0C:0000 s_BSEG_BYTES
+ 0C:0000 s_CABS
+ 0C:0000 s_DSEG
+ 0C:0000 s_IABS
+ 0C:0000 s_ISEG
+ 0C:0000 s_REG_BANK_0
+ 0C:0000 s_XABS
+ 0C:0001 l_ABSCODE100
+ 0C:0001 l_ABSCODE104
+ 0C:0001 l_ABSCODE108
+ 0C:0001 l_ABSCODE10c
+ 0C:0001 l_ABSCODE110
+ 0C:0001 l_ABSCODE114
+ 0C:0001 l_ABSCODE118
+ 0C:0001 l_ABSCODE120
+ 0C:0001 l_ABSCODE124
+ 0C:0001 l_ABSCODE128
+ 0C:0001 l_ABSCODE12c
+ 0C:0001 l_ABSCODE13
+ 0C:0001 l_ABSCODE130
+ 0C:0001 l_ABSCODE134
+ 0C:0001 l_ABSCODE138
+ 0C:0001 l_ABSCODE13c
+ 0C:0001 l_ABSCODE140
+ 0C:0001 l_ABSCODE148
+ 0C:0001 l_ABSCODE14c
+ 0C:0001 l_ABSCODE150
+ 0C:0001 l_ABSCODE154
+ 0C:0001 l_ABSCODE158
+ 0C:0001 l_ABSCODE15c
+ 0C:0001 l_ABSCODE160
+ 0C:0001 l_ABSCODE170
+ 0C:0001 l_ABSCODE174
+ 0C:0001 l_ABSCODE178
+ 0C:0001 l_ABSCODE17c
+ 0C:0001 l_ABSCODE180
+ 0C:0001 l_ABSCODE184
+ 0C:0001 l_ABSCODE188
+ 0C:0001 l_ABSCODE18c
+ 0C:0001 l_ABSCODE190
+ 0C:0001 l_ABSCODE194
+ 0C:0001 l_ABSCODE198
+ 0C:0001 l_ABSCODE19c
+ 0C:0001 l_ABSCODE1a0
+ 0C:0001 l_ABSCODE1a8
+ 0C:0001 l_ABSCODE1ac
+ 0C:0001 l_ABSCODE1b
+ 0C:0001 l_ABSCODE1b0
+ 0C:0001 l_ABSCODE1b4
+ 0C:0001 l_ABSCODE1b8
+ 0C:0001 l_ABSCODE23
+ 0C:0001 l_ABSCODE2b
+ 0C:0001 l_ABSCODE3
+ 0C:0001 l_ABSCODE33
+ 0C:0001 l_ABSCODE3b
+ 0C:0001 l_ABSCODE43
+ 0C:0001 l_ABSCODE4b
+ 0C:0001 l_ABSCODE53
+ 0C:0001 l_ABSCODE5b
+ 0C:0001 l_ABSCODE63
+ 0C:0001 l_ABSCODE6c
+ 0C:0001 l_ABSCODE6d
+ 0C:0001 l_ABSCODE76
+ 0C:0001 l_ABSCODE77
+ 0C:0001 l_ABSCODEb
+ 0C:0001 l_BIT_BANK
+ 0C:0002 l_OSEG
+ 0C:0003 l_ABSCODE0
+ 0C:0003 l_GSFINAL
+ 0C:0003 l_GSINIT0
+ 0C:0004 l_ABSCODE6e
+ 0C:0004 l_ABSCODE72
+ 0C:0006 l_ABSCODE78
+ 0C:0008 l_HOME
+ 0C:0008 l_REG_BANK_0
+ 0C:0008 s_REG_BANK_1
+ 0C:000A l_ABSCODE8a
+ 0C:000A l_GSINIT2
+ 0C:000C l_ABSCODE7e
+ 0C:000D l_XINIT
+ 0C:000D l_XISEG
+ 0C:000F s_OSEG
+ 0C:0010 s_REG_BANK_2
+ 0C:0018 s_REG_BANK_3
+ 0C:0020 s_BIT_BANK
+ 0C:0020 s__CODE
+ 0C:0021 s_RSEG
+ 0C:0021 s_SSEG
+ 0C:0022 l_GSINIT3
+ 0C:002A l_GSINIT4
+ 0C:0070 l_XSEG
+ 0C:0071 l_DSEG
+ 0C:008D l_CONST
+ 0C:00DF l_SSEG
+ 0C:0100 l_IRAM
+ 0C:0200 s_HOME
+ 0C:0208 s_GSINIT0
+ 0C:020B s_GSINIT1
+ 0C:020B s_GSINIT2
+ 0C:0215 s_GSINIT3
+ 0C:0237 s_GSINIT4
+ 0C:0261 s_GSFINAL
+ 0C:0261 s_GSINIT
+ 0C:0261 s_GSINIT5
+ 0C:0264 s_CSEG
+ 0C:0E27 l_CSEG
+ 0C:108B s_CONST
+ 0C:1118 s_XINIT
+ 0C:3200 s_PSEG
+ 0C:3200 s_XSEG
+ 0C:3270 s_XISEG
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Hexadecimal
+
+Area Addr Size Decimal Bytes (Attributes)
+-------------------------------- ---- ---- ------- ----- ------------
+. .ABS. 0000 0000 = 0. bytes (ABS,CON)
+
+ Value Global
+ -------- --------------------------------
+ 0003 _INT0VEC_IE0
+ 000B _INT1VEC_T0
+ 0013 _INT2VEC_IE1
+ 001B _INT3VEC_T1
+ 0023 _INT4VEC_USART0
+ 002B _INT5VEC_T2
+ 0033 _INT6VEC_RESUME
+ 003B _INT7VEC_USART1
+ 0043 _INT8VEC_USB
+ 004B _INT9VEC_I2C
+ 0053 _INT10VEC_GPIF
+ 005B _INT11VEC_IE5
+ 0063 _INT12VEC_IE6
+ 006C _ZTEX_DESCRIPTOR
+ 006D _ZTEX_DESCRIPTOR_VERSION
+ 006E _ZTEXID
+ 0072 _PRODUCT_ID
+ 0076 _FW_VERSION
+ 0077 _INTERFACE_VERSION
+ 0078 _INTERFACE_CAPABILITIES
+ 007E _MODULE_RESERVED
+ 0080 _IOA
+ 0080 _IOA0
+ 0081 _IOA1
+ 0081 _SP
+ 0082 _DPL0
+ 0082 _IOA2
+ 0083 _DPH0
+ 0083 _IOA3
+ 0084 _DPL1
+ 0084 _IOA4
+ 0085 _DPH1
+ 0085 _IOA5
+ 0086 _DPS
+ 0086 _IOA6
+ 0087 _IOA7
+ 0087 _PCON
+ 0088 _IT0
+ 0088 _TCON
+ 0089 _IE0
+ 0089 _TMOD
+ 008A _IT1
+ 008A _SN_STRING
+ 008A _TL0
+ 008B _IE1
+ 008B _TL1
+ 008C _TH0
+ 008C _TR0
+ 008D _TF0
+ 008D _TH1
+ 008E _CKCON
+ 008E _TR1
+ 008F _TF1
+ 0090 _IOB
+ 0090 _IOB0
+ 0091 _EXIF
+ 0091 _IOB1
+ 0092 _IOB2
+ 0092 _MPAGE
+ 0092 __XPAGE
+ 0093 _IOB3
+ 0094 _IOB4
+ 0095 _IOB5
+ 0096 _IOB6
+ 0097 _IOB7
+ 0098 _RI_0
+ 0098 _SCON0
+ 0099 _SBUF0
+ 0099 _TI_0
+ 009A _AUTOPTRH1
+ 009A _RB8_0
+ 009B _AUTOPTRL1
+ 009B _TB8_0
+ 009C _REN_0
+ 009D _AUTOPTRH2
+ 009D _SM2_0
+ 009E _AUTOPTRL2
+ 009E _SM1_0
+ 009F _SM0_0
+ 00A0 _IOC
+ 00A0 _IOC0
+ 00A1 _INT2CLR
+ 00A1 _IOC1
+ 00A2 _INT4CLR
+ 00A2 _IOC2
+ 00A3 _IOC3
+ 00A4 _IOC4
+ 00A5 _IOC5
+ 00A6 _IOC6
+ 00A7 _IOC7
+ 00A8 _EX0
+ 00A8 _IE
+ 00A9 _ET0
+ 00AA _EP2468STAT
+ 00AA _EX1
+ 00AB _EP24FIFOFLGS
+ 00AB _ET1
+ 00AC _EP68FIFOFLGS
+ 00AC _ES0
+ 00AD _ET2
+ 00AE _ES1
+ 00AF _AUTOPTRSETUP
+ 00AF _EA
+ 00B0 _IOD
+ 00B0 _IOD0
+ 00B1 _IOD1
+ 00B1 _IOE
+ 00B2 _IOD2
+ 00B2 _OEA
+ 00B3 _IOD3
+ 00B3 _OEB
+ 00B4 _IOD4
+ 00B4 _OEC
+ 00B5 _IOD5
+ 00B5 _OED
+ 00B6 _IOD6
+ 00B6 _OEE
+ 00B7 _IOD7
+ 00B8 _IP
+ 00B8 _PX0
+ 00B9 _PT0
+ 00BA _EP01STAT
+ 00BA _PX1
+ 00BB _GPIFTRIG
+ 00BB _PT1
+ 00BC _PS0
+ 00BD _GPIFSGLDATH
+ 00BD _PT2
+ 00BE _GPIFSGLDATLX
+ 00BE _PS1
+ 00BF _GPIFSGLDATLNOX
+ 00C0 _RI_1
+ 00C0 _SCON1
+ 00C1 _SBUF1
+ 00C1 _TI_1
+ 00C2 _RB8_1
+ 00C3 _TB8_1
+ 00C4 _REN_1
+ 00C5 _SM2_1
+ 00C6 _SM1_1
+ 00C7 _SM0_1
+ 00C8 _CPRL2
+ 00C8 _T2CON
+ 00C9 _CT2
+ 00CA _RCAP2L
+ 00CA _TR2
+ 00CB _EXEN2
+ 00CB _RCAP2H
+ 00CC _TCLK
+ 00CC _TL2
+ 00CD _RCLK
+ 00CD _TH2
+ 00CE _EXF2
+ 00CF _TF2
+ 00D0 _PF
+ 00D0 _PSW
+ 00D1 _F1
+ 00D2 _OV
+ 00D3 _RS0
+ 00D4 _RS1
+ 00D5 _F0
+ 00D6 _AC
+ 00D7 _CY
+ 00D8 _EICON
+ 00DB _INT6
+ 00DC _RESI
+ 00DD _ERESI
+ 00DF _SMOD1
+ 00E0 _ACC
+ 00E0 _ACC0
+ 00E1 _ACC1
+ 00E2 _ACC2
+ 00E3 _ACC3
+ 00E4 _ACC4
+ 00E5 _ACC5
+ 00E6 _ACC6
+ 00E7 _ACC7
+ 00E8 _EIE
+ 00E8 _EUSB
+ 00E9 _EI2C
+ 00EA _EIEX4
+ 00EB _EIEX5
+ 00EC _EIEX6
+ 00F0 _BREG
+ 00F0 _BREG0
+ 00F1 _BREG1
+ 00F2 _BREG2
+ 00F3 _BREG3
+ 00F4 _BREG4
+ 00F5 _BREG5
+ 00F6 _BREG6
+ 00F7 _BREG7
+ 00F8 _EIP
+ 00F8 _PUSB
+ 00F9 _PI2C
+ 00FA _EIPX4
+ 00FB _EIPX5
+ 00FC _EIPX6
+ 0100 _INTVEC_SUDAV
+ 0104 _INTVEC_SOF
+ 0108 _INTVEC_SUTOK
+ 010C _INTVEC_SUSPEND
+ 0110 _INTVEC_USBRESET
+ 0114 _INTVEC_HISPEED
+ 0118 _INTVEC_EP0ACK
+ 0120 _INTVEC_EP0IN
+ 0124 _INTVEC_EP0OUT
+ 0128 _INTVEC_EP1IN
+ 012C _INTVEC_EP1OUT
+ 0130 _INTVEC_EP2
+ 0134 _INTVEC_EP4
+ 0138 _INTVEC_EP6
+ 013C _INTVEC_EP8
+ 0140 _INTVEC_IBN
+ 0148 _INTVEC_EP0PING
+ 014C _INTVEC_EP1PING
+ 0150 _INTVEC_EP2PING
+ 0154 _INTVEC_EP4PING
+ 0158 _INTVEC_EP6PING
+ 015C _INTVEC_EP8PING
+ 0160 _INTVEC_ERRLIMIT
+ 0170 _INTVEC_EP2ISOERR
+ 0174 _INTVEC_EP4ISOERR
+ 0178 _INTVEC_EP6ISOERR
+ 017C _INTVEC_EP8ISOERR
+ 0180 _INTVEC_EP2PF
+ 0184 _INTVEC_EP4PF
+ 0188 _INTVEC_EP6PF
+ 018C _INTVEC_EP8PF
+ 0190 _INTVEC_EP2EF
+ 0194 _INTVEC_EP4EF
+ 0198 _INTVEC_EP6EF
+ 019C _INTVEC_EP8EF
+ 01A0 _INTVEC_EP2FF
+ 01A8 _INTVEC_EP6FF
+ 01AC _INTVEC_EP8FF
+ 01B0 _INTVEC_GPIFDONE
+ 01B4 _INTVEC_GPIFWF
+ E400 _GPIF_WAVE0_DATA
+ E400 _GPIF_WAVE_DATA
+ E420 _GPIF_WAVE1_DATA
+ E440 _GPIF_WAVE2_DATA
+ E460 _GPIF_WAVE3_DATA
+ E50D _GPCR2
+ E600 _CPUCS
+ E601 _IFCONFIG
+ E602 _PINFLAGSAB
+ E603 _PINFLAGSCD
+ E604 _FIFORESET
+ E605 _BREAKPT
+ E606 _BPADDRH
+ E607 _BPADDRL
+ E608 _UART230
+ E609 _FIFOPINPOLAR
+ E60A _REVID
+ E60B _REVCTL
+ E60C _GPIFHOLDAMOUNT
+ E610 _EP1OUTCFG
+ E611 _EP1INCFG
+ E612 _EP2CFG
+ E613 _EP4CFG
+ E614 _EP6CFG
+ E615 _EP8CFG
+ E618 _EP2FIFOCFG
+ E619 _EP4FIFOCFG
+ E61A _EP6FIFOCFG
+ E61B _EP8FIFOCFG
+ E620 _EP2AUTOINLENH
+ E621 _EP2AUTOINLENL
+ E622 _EP4AUTOINLENH
+ E623 _EP4AUTOINLENL
+ E624 _EP6AUTOINLENH
+ E625 _EP6AUTOINLENL
+ E626 _EP8AUTOINLENH
+ E627 _EP8AUTOINLENL
+ E628 _ECCCFG
+ E629 _ECCRESET
+ E62A _ECC1B0
+ E62B _ECC1B1
+ E62C _ECC1B2
+ E62D _ECC2B0
+ E62E _ECC2B1
+ E62F _ECC2B2
+ E630 _EP2FIFOPFH
+ E631 _EP2FIFOPFL
+ E632 _EP4FIFOPFH
+ E633 _EP4FIFOPFL
+ E634 _EP6FIFOPFH
+ E635 _EP6FIFOPFL
+ E636 _EP8FIFOPFH
+ E637 _EP8FIFOPFL
+ E640 _EP2ISOINPKTS
+ E641 _EP4ISOINPKTS
+ E642 _EP6ISOINPKTS
+ E643 _EP8ISOINPKTS
+ E648 _INPKTEND
+ E649 _OUTPKTEND
+ E650 _EP2FIFOIE
+ E651 _EP2FIFOIRQ
+ E652 _EP4FIFOIE
+ E653 _EP4FIFOIRQ
+ E654 _EP6FIFOIE
+ E655 _EP6FIFOIRQ
+ E656 _EP8FIFOIE
+ E657 _EP8FIFOIRQ
+ E658 _IBNIE
+ E659 _IBNIRQ
+ E65A _NAKIE
+ E65B _NAKIRQ
+ E65C _USBIE
+ E65D _USBIRQ
+ E65E _EPIE
+ E65F _EPIRQ
+ E660 _GPIFIE
+ E661 _GPIFIRQ
+ E662 _USBERRIE
+ E663 _USBERRIRQ
+ E664 _ERRCNTLIM
+ E665 _CLRERRCNT
+ E666 _INT2IVEC
+ E667 _INT4IVEC
+ E668 _INTSETUP
+ E670 _PORTACFG
+ E671 _PORTCCFG
+ E672 _PORTECFG
+ E678 _I2CS
+ E679 _I2DAT
+ E67A _I2CTL
+ E67B _EXTAUTODAT1
+ E67B _XAUTODAT1
+ E67C _EXTAUTODAT2
+ E67C _XAUTODAT2
+ E67D _UDMACRCH
+ E67E _UDMACRCL
+ E67F _UDMACRCQUALIFIER
+ E680 _USBCS
+ E681 _SUSPEND
+ E682 _WAKEUPCS
+ E683 _TOGCTL
+ E684 _USBFRAMEH
+ E685 _USBFRAMEL
+ E686 _MICROFRAME
+ E687 _FNADDR
+ E68A _EP0BCH
+ E68B _EP0BCL
+ E68D _EP1OUTBC
+ E68F _EP1INBC
+ E690 _EP2BCH
+ E691 _EP2BCL
+ E694 _EP4BCH
+ E695 _EP4BCL
+ E698 _EP6BCH
+ E699 _EP6BCL
+ E69C _EP8BCH
+ E69D _EP8BCL
+ E6A0 _EP0CS
+ E6A1 _EP1OUTCS
+ E6A2 _EP1INCS
+ E6A3 _EP2CS
+ E6A3 _EPXCS
+ E6A4 _EP4CS
+ E6A5 _EP6CS
+ E6A6 _EP8CS
+ E6A7 _EP2FIFOFLGS
+ E6A8 _EP4FIFOFLGS
+ E6A9 _EP6FIFOFLGS
+ E6AA _EP8FIFOFLGS
+ E6AB _EP2FIFOBCH
+ E6AC _EP2FIFOBCL
+ E6AD _EP4FIFOBCH
+ E6AE _EP4FIFOBCL
+ E6AF _EP6FIFOBCH
+ E6B0 _EP6FIFOBCL
+ E6B1 _EP8FIFOBCH
+ E6B2 _EP8FIFOBCL
+ E6B3 _SUDPTRH
+ E6B4 _SUDPTRL
+ E6B5 _SUDPTRCTL
+ E6B8 _SETUPDAT
+ E6B8 _bmRequestType
+ E6B9 _bRequest
+ E6BA _wValueL
+ E6BB _wValueH
+ E6BC _wIndexL
+ E6BD _wIndexH
+ E6BE _wLengthL
+ E6BF _wLengthH
+ E6C0 _GPIFWFSELECT
+ E6C1 _GPIFIDLECS
+ E6C2 _GPIFIDLECTL
+ E6C3 _GPIFCTLCFG
+ E6C4 _GPIFADRH
+ E6C5 _GPIFADRL
+ E6C6 _FLOWSTATE
+ E6C7 _FLOWLOGIC
+ E6C8 _FLOWEQ0CTL
+ E6C9 _FLOWEQ1CTL
+ E6CA _FLOWHOLDOFF
+ E6CB _FLOWSTB
+ E6CC _FLOWSTBEDGE
+ E6CD _FLOWSTBHPERIOD
+ E6CE _GPIFTCB3
+ E6CF _GPIFTCB2
+ E6D0 _GPIFTCB1
+ E6D1 _GPIFTCB0
+ E6D2 _EP2GPIFFLGSEL
+ E6D3 _EP2GPIFPFSTOP
+ E6D4 _EP2GPIFTRIG
+ E6DA _EP4GPIFFLGSEL
+ E6DB _EP4GPIFPFSTOP
+ E6DC _EP4GPIFTRIG
+ E6E2 _EP6GPIFFLGSEL
+ E6E3 _EP6GPIFPFSTOP
+ E6E4 _EP6GPIFTRIG
+ E6EA _EP8GPIFFLGSEL
+ E6EB _EP8GPIFPFSTOP
+ E6EC _EP8GPIFTRIG
+ E6F0 _XGPIFSGLDATH
+ E6F1 _XGPIFSGLDATLX
+ E6F2 _XGPIFSGLDATLNOX
+ E6F3 _GPIFREADYCFG
+ E6F4 _GPIFREADYSTAT
+ E6F5 _GPIFABORT
+ E740 _EP0BUF
+ E780 _EP1OUTBUF
+ E7C0 _EP1INBUF
+ F000 _EP2FIFOBUF
+ F400 _EP4FIFOBUF
+ F800 _EP6FIFOBUF
+ FC00 _EP8FIFOBUF
+
+
+
+
+
+
+
+
+
+Hexadecimal
+
+Area Addr Size Decimal Bytes (Attributes)
+-------------------------------- ---- ---- ------- ----- ------------
+DSEG 0000 0071 = 113. bytes (REL,CON)
+
+ Value Global
+ -------- --------------------------------
+ 0008 _eeprom_select_PARM_2
+ 0009 _eeprom_read_PARM_2
+ 000B _eeprom_read_PARM_3
+ 000C _eeprom_write_PARM_2
+ 000E _eeprom_write_PARM_3
+
+Hexadecimal
+
+Area Addr Size Decimal Bytes (Attributes)
+-------------------------------- ---- ---- ------- ----- ------------
+OSEG 000F 0002 = 2. bytes (REL,OVR)
+
+ Value Global
+ -------- --------------------------------
+ 000F _sendStringDescriptor_PARM_2
+ 0010 _sendStringDescriptor_PARM_3
+
+
+Hexadecimal
+
+Area Addr Size Decimal Bytes (Attributes)
+-------------------------------- ---- ---- ------- ----- ------------
+SSEG 0021 00DF = 223. bytes (REL,OVR)
+
+ Value Global
+ -------- --------------------------------
+ 0021 __start__stack
+
+
+
+Hexadecimal
+
+Area Addr Size Decimal Bytes (Attributes)
+-------------------------------- ---- ---- ------- ----- ------------
+XSEG 3200 0070 = 112. bytes (REL,CON,XDATA)
+
+ Value Global
+ -------- --------------------------------
+ 0D:3200 _eeprom_addr
+ 0D:3202 _eeprom_write_bytes
+ 0D:3204 _eeprom_write_checksum
+ 0D:3205 _debug_counter
+ 0D:3207 _debug_stack_size
+ 0D:3208 _debug_msg_size
+ 0D:3209 _debug_stack
+ 0D:3269 _debug_stack_ptr
+ 0D:326B _debug_msg_buf
+ 0D:326E _debug_read_addr
+
+Hexadecimal
+
+Area Addr Size Decimal Bytes (Attributes)
+-------------------------------- ---- ---- ------- ----- ------------
+XISEG 3270 000D = 13. bytes (REL,CON,XDATA)
+
+ Value Global
+ -------- --------------------------------
+ 0D:3270 _ep0_payload_remaining
+ 0D:3272 _ep0_payload_transfer
+ 0D:3273 _ep0_prev_setup_request
+ 0D:3274 _ep0_vendor_cmd_setup
+ 0D:3275 _ISOFRAME_COUNTER
+
+Hexadecimal
+
+Area Addr Size Decimal Bytes (Attributes)
+-------------------------------- ---- ---- ------- ----- ------------
+HOME 0200 0008 = 8. bytes (REL,CON,CODE)
+
+ Value Global
+ -------- --------------------------------
+ 0C:0203 __sdcc_program_startup
+
+Hexadecimal
+
+Area Addr Size Decimal Bytes (Attributes)
+-------------------------------- ---- ---- ------- ----- ------------
+GSINIT0 0208 0003 = 3. bytes (REL,CON,CODE)
+
+ Value Global
+ -------- --------------------------------
+ 0C:0208 __sdcc_gsinit_startup
+
+
+
+Hexadecimal
+
+Area Addr Size Decimal Bytes (Attributes)
+-------------------------------- ---- ---- ------- ----- ------------
+GSINIT3 0215 0022 = 34. bytes (REL,CON,CODE)
+
+ Value Global
+ -------- --------------------------------
+ 0C:0215 __mcs51_genXINIT
+
+Hexadecimal
+
+Area Addr Size Decimal Bytes (Attributes)
+-------------------------------- ---- ---- ------- ----- ------------
+GSINIT4 0237 002A = 42. bytes (REL,CON,CODE)
+
+ Value Global
+ -------- --------------------------------
+ 0C:0237 __mcs51_genRAMCLEAR
+ 0C:023D __mcs51_genXRAMCLEAR
+
+
+
+
+Hexadecimal
+
+Area Addr Size Decimal Bytes (Attributes)
+-------------------------------- ---- ---- ------- ----- ------------
+CSEG 0264 0E27 = 3623. bytes (REL,CON,CODE)
+
+ Value Global
+ -------- --------------------------------
+ 0C:0264 _abscode_intvec
+ 0C:0264 _wait
+ 0C:0288 _uwait
+ 0C:02AC _MEM_COPY1_int
+ 0C:02BA _i2c_waitWrite
+ 0C:02E7 _i2c_waitRead
+ 0C:0310 _i2c_waitStart
+ 0C:032A _i2c_waitStop
+ 0C:0344 _eeprom_select
+ 0C:0398 _eeprom_read
+ 0C:049E _eeprom_write
+ 0C:0554 _eeprom_read_ep0
+ 0C:0588 _eeprom_write_ep0
+ 0C:05B5 _debug_add_msg
+ 0C:05F9 _debug_init
+ 0C:0617 _debug_read_ep0
+ 0C:0651 _abscode_identity
+ 0C:0C21 _SOF_ISR
+ 0C:0C37 _SUTOK_ISR
+ 0C:0C4D _SUSP_ISR
+ 0C:0C63 _URES_ISR
+ 0C:0C79 _HSGRANT_ISR
+ 0C:0C8F _EP0ACK_ISR
+ 0C:0DCA _EP1IN_ISR
+ 0C:0DE0 _EP1OUT_ISR
+ 0C:0DF6 _EP2_ISR
+ 0C:0E0C _EP4_ISR
+ 0C:0E22 _EP6_ISR
+ 0C:0E38 _EP8_ISR
+ 0C:0E4E _init_USB
+ 0C:1036 _main
+ 0C:1087 __sdcc_external_startup
+
+Hexadecimal
+
+Area Addr Size Decimal Bytes (Attributes)
+-------------------------------- ---- ---- ------- ----- ------------
+CONST 108B 008D = 141. bytes (REL,CON,CODE)
+
+ Value Global
+ -------- --------------------------------
+ 0C:108B _manufacturerString
+ 0C:1090 _productString
+ 0C:10A9 _configurationString
+ 0C:10B3 _PadByte
+ 0C:10B4 _DeviceDescriptor
+ 0C:10C6 _DeviceQualifierDescriptor
+ 0C:10D0 _HighSpeedConfigDescriptor
+ 0C:10F0 _HighSpeedConfigDescriptor_PadByte
+ 0C:10F2 _FullSpeedConfigDescriptor
+ 0C:1112 _FullSpeedConfigDescriptor_PadByte
+ 0C:1114 _EmptyStringDescriptor
+
+ASxxxx Linker V01.75 + NoICE + SDCC Feb 1999, page 1.
+
+Files Linked [ module(s) ]
+
+debug.rel
+
+Libraries Linked [ object file ]
+
+/usr/bin/../share/sdcc/lib/small/mcs51.lib [ crtclear.rel ]
+/usr/bin/../share/sdcc/lib/small/mcs51.lib [ crtxinit.rel ]
+/usr/bin/../share/sdcc/lib/small/mcs51.lib [ crtxclear.rel ]
+/usr/bin/../share/sdcc/lib/small/mcs51.lib [ crtstart.rel ]
+/usr/bin/../share/sdcc/lib/small/libsdcc.lib [ _startup ]
+
+ASxxxx Linker V01.75 + NoICE + SDCC Feb 1999, page 2.
+
+User Base Address Definitions
+
+HOME = 0x0200
+XSEG = 0x3200
+PSEG = 0x3200
+ISEG = 0x0000
+BSEG = 0x0000
+
+
\ No newline at end of file
Index: debug/debug.mem
===================================================================
--- debug/debug.mem (nonexistent)
+++ debug/debug.mem (revision 3)
@@ -0,0 +1,28 @@
+Internal RAM layout:
+ 0 1 2 3 4 5 6 7 8 9 A B C D E F
+0x00:|0|0|0|0|0|0|0|0|a|a|a|a|a|a|a|Q|
+0x10:|Q| | | | | | | | | | | | | | | |
+0x20:|T|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
+0x30:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
+0x40:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
+0x50:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
+0x60:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
+0x70:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
+0x80:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
+0x90:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
+0xa0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
+0xb0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
+0xc0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
+0xd0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
+0xe0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
+0xf0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
+0-3:Reg Banks, T:Bit regs, a-z:Data, B:Bits, Q:Overlay, I:iData, S:Stack, A:Absolute
+
+Stack starts at: 0x21 (sp set to 0x20) with 223 bytes available.
+
+Other memory:
+ Name Start End Size Max
+ ---------------- -------- -------- -------- --------
+ PAGED EXT. RAM 0 256
+ EXTERNAL RAM 0x3200 0x327c 125 4096
+ ROM/EPROM/FLASH 0x0000 0x1124 3974 11776
Index: debug/ParameterException.class
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: debug/ParameterException.class
===================================================================
--- debug/ParameterException.class (nonexistent)
+++ debug/ParameterException.class (revision 3)
debug/ParameterException.class
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: debug/debug.asm
===================================================================
--- debug/debug.asm (nonexistent)
+++ debug/debug.asm (revision 3)
@@ -0,0 +1,4492 @@
+;--------------------------------------------------------
+; File Created by SDCC : free open source ANSI-C Compiler
+; Version 2.8.0 #5117 (May 15 2008) (UNIX)
+; This file was generated Wed Sep 8 20:23:26 2010
+;--------------------------------------------------------
+ .module debug_tmp
+ .optsdcc -mmcs51 --model-small
+
+;--------------------------------------------------------
+; Public variables in this module
+;--------------------------------------------------------
+ .globl _sendStringDescriptor_PARM_3
+ .globl _sendStringDescriptor_PARM_2
+ .globl _EmptyStringDescriptor
+ .globl _FullSpeedConfigDescriptor_PadByte
+ .globl _FullSpeedConfigDescriptor
+ .globl _HighSpeedConfigDescriptor_PadByte
+ .globl _HighSpeedConfigDescriptor
+ .globl _DeviceQualifierDescriptor
+ .globl _DeviceDescriptor
+ .globl _PadByte
+ .globl _configurationString
+ .globl _productString
+ .globl _manufacturerString
+ .globl _main
+ .globl _init_USB
+ .globl _EP8_ISR
+ .globl _EP6_ISR
+ .globl _EP4_ISR
+ .globl _EP2_ISR
+ .globl _EP1OUT_ISR
+ .globl _EP1IN_ISR
+ .globl _EP0ACK_ISR
+ .globl _HSGRANT_ISR
+ .globl _URES_ISR
+ .globl _SUSP_ISR
+ .globl _SUTOK_ISR
+ .globl _SOF_ISR
+ .globl _abscode_identity
+ .globl _debug_read_ep0
+ .globl _debug_init
+ .globl _debug_add_msg
+ .globl _eeprom_write_ep0
+ .globl _eeprom_read_ep0
+ .globl _eeprom_write
+ .globl _eeprom_read
+ .globl _eeprom_select
+ .globl _i2c_waitStop
+ .globl _i2c_waitStart
+ .globl _i2c_waitRead
+ .globl _i2c_waitWrite
+ .globl _MEM_COPY1_int
+ .globl _uwait
+ .globl _wait
+ .globl _abscode_intvec
+ .globl _EIPX6
+ .globl _EIPX5
+ .globl _EIPX4
+ .globl _PI2C
+ .globl _PUSB
+ .globl _BREG7
+ .globl _BREG6
+ .globl _BREG5
+ .globl _BREG4
+ .globl _BREG3
+ .globl _BREG2
+ .globl _BREG1
+ .globl _BREG0
+ .globl _EIEX6
+ .globl _EIEX5
+ .globl _EIEX4
+ .globl _EI2C
+ .globl _EUSB
+ .globl _ACC7
+ .globl _ACC6
+ .globl _ACC5
+ .globl _ACC4
+ .globl _ACC3
+ .globl _ACC2
+ .globl _ACC1
+ .globl _ACC0
+ .globl _SMOD1
+ .globl _ERESI
+ .globl _RESI
+ .globl _INT6
+ .globl _CY
+ .globl _AC
+ .globl _F0
+ .globl _RS1
+ .globl _RS0
+ .globl _OV
+ .globl _F1
+ .globl _PF
+ .globl _TF2
+ .globl _EXF2
+ .globl _RCLK
+ .globl _TCLK
+ .globl _EXEN2
+ .globl _TR2
+ .globl _CT2
+ .globl _CPRL2
+ .globl _SM0_1
+ .globl _SM1_1
+ .globl _SM2_1
+ .globl _REN_1
+ .globl _TB8_1
+ .globl _RB8_1
+ .globl _TI_1
+ .globl _RI_1
+ .globl _PS1
+ .globl _PT2
+ .globl _PS0
+ .globl _PT1
+ .globl _PX1
+ .globl _PT0
+ .globl _PX0
+ .globl _IOD7
+ .globl _IOD6
+ .globl _IOD5
+ .globl _IOD4
+ .globl _IOD3
+ .globl _IOD2
+ .globl _IOD1
+ .globl _IOD0
+ .globl _EA
+ .globl _ES1
+ .globl _ET2
+ .globl _ES0
+ .globl _ET1
+ .globl _EX1
+ .globl _ET0
+ .globl _EX0
+ .globl _IOC7
+ .globl _IOC6
+ .globl _IOC5
+ .globl _IOC4
+ .globl _IOC3
+ .globl _IOC2
+ .globl _IOC1
+ .globl _IOC0
+ .globl _SM0_0
+ .globl _SM1_0
+ .globl _SM2_0
+ .globl _REN_0
+ .globl _TB8_0
+ .globl _RB8_0
+ .globl _TI_0
+ .globl _RI_0
+ .globl _IOB7
+ .globl _IOB6
+ .globl _IOB5
+ .globl _IOB4
+ .globl _IOB3
+ .globl _IOB2
+ .globl _IOB1
+ .globl _IOB0
+ .globl _TF1
+ .globl _TR1
+ .globl _TF0
+ .globl _TR0
+ .globl _IE1
+ .globl _IT1
+ .globl _IE0
+ .globl _IT0
+ .globl _IOA7
+ .globl _IOA6
+ .globl _IOA5
+ .globl _IOA4
+ .globl _IOA3
+ .globl _IOA2
+ .globl _IOA1
+ .globl _IOA0
+ .globl _EIP
+ .globl _BREG
+ .globl _EIE
+ .globl _ACC
+ .globl _EICON
+ .globl _PSW
+ .globl _TH2
+ .globl _TL2
+ .globl _RCAP2H
+ .globl _RCAP2L
+ .globl _T2CON
+ .globl _SBUF1
+ .globl _SCON1
+ .globl _GPIFSGLDATLNOX
+ .globl _GPIFSGLDATLX
+ .globl _GPIFSGLDATH
+ .globl _GPIFTRIG
+ .globl _EP01STAT
+ .globl _IP
+ .globl _OEE
+ .globl _OED
+ .globl _OEC
+ .globl _OEB
+ .globl _OEA
+ .globl _IOE
+ .globl _IOD
+ .globl _AUTOPTRSETUP
+ .globl _EP68FIFOFLGS
+ .globl _EP24FIFOFLGS
+ .globl _EP2468STAT
+ .globl _IE
+ .globl _INT4CLR
+ .globl _INT2CLR
+ .globl _IOC
+ .globl _AUTOPTRL2
+ .globl _AUTOPTRH2
+ .globl _AUTOPTRL1
+ .globl _AUTOPTRH1
+ .globl _SBUF0
+ .globl _SCON0
+ .globl __XPAGE
+ .globl _MPAGE
+ .globl _EXIF
+ .globl _IOB
+ .globl _CKCON
+ .globl _TH1
+ .globl _TH0
+ .globl _TL1
+ .globl _TL0
+ .globl _TMOD
+ .globl _TCON
+ .globl _PCON
+ .globl _DPS
+ .globl _DPH1
+ .globl _DPL1
+ .globl _DPH0
+ .globl _DPL0
+ .globl _SP
+ .globl _IOA
+ .globl _ISOFRAME_COUNTER
+ .globl _ep0_vendor_cmd_setup
+ .globl _ep0_prev_setup_request
+ .globl _ep0_payload_transfer
+ .globl _ep0_payload_remaining
+ .globl _SN_STRING
+ .globl _MODULE_RESERVED
+ .globl _INTERFACE_CAPABILITIES
+ .globl _INTERFACE_VERSION
+ .globl _FW_VERSION
+ .globl _PRODUCT_ID
+ .globl _ZTEXID
+ .globl _ZTEX_DESCRIPTOR_VERSION
+ .globl _ZTEX_DESCRIPTOR
+ .globl _debug_read_addr
+ .globl _debug_msg_buf
+ .globl _debug_stack_ptr
+ .globl _debug_stack
+ .globl _debug_msg_size
+ .globl _debug_stack_size
+ .globl _debug_counter
+ .globl _eeprom_write_checksum
+ .globl _eeprom_write_bytes
+ .globl _eeprom_addr
+ .globl _INTVEC_GPIFWF
+ .globl _INTVEC_GPIFDONE
+ .globl _INTVEC_EP8FF
+ .globl _INTVEC_EP6FF
+ .globl _INTVEC_EP2FF
+ .globl _INTVEC_EP8EF
+ .globl _INTVEC_EP6EF
+ .globl _INTVEC_EP4EF
+ .globl _INTVEC_EP2EF
+ .globl _INTVEC_EP8PF
+ .globl _INTVEC_EP6PF
+ .globl _INTVEC_EP4PF
+ .globl _INTVEC_EP2PF
+ .globl _INTVEC_EP8ISOERR
+ .globl _INTVEC_EP6ISOERR
+ .globl _INTVEC_EP4ISOERR
+ .globl _INTVEC_EP2ISOERR
+ .globl _INTVEC_ERRLIMIT
+ .globl _INTVEC_EP8PING
+ .globl _INTVEC_EP6PING
+ .globl _INTVEC_EP4PING
+ .globl _INTVEC_EP2PING
+ .globl _INTVEC_EP1PING
+ .globl _INTVEC_EP0PING
+ .globl _INTVEC_IBN
+ .globl _INTVEC_EP8
+ .globl _INTVEC_EP6
+ .globl _INTVEC_EP4
+ .globl _INTVEC_EP2
+ .globl _INTVEC_EP1OUT
+ .globl _INTVEC_EP1IN
+ .globl _INTVEC_EP0OUT
+ .globl _INTVEC_EP0IN
+ .globl _INTVEC_EP0ACK
+ .globl _INTVEC_HISPEED
+ .globl _INTVEC_USBRESET
+ .globl _INTVEC_SUSPEND
+ .globl _INTVEC_SUTOK
+ .globl _INTVEC_SOF
+ .globl _INTVEC_SUDAV
+ .globl _INT12VEC_IE6
+ .globl _INT11VEC_IE5
+ .globl _INT10VEC_GPIF
+ .globl _INT9VEC_I2C
+ .globl _INT8VEC_USB
+ .globl _INT7VEC_USART1
+ .globl _INT6VEC_RESUME
+ .globl _INT5VEC_T2
+ .globl _INT4VEC_USART0
+ .globl _INT3VEC_T1
+ .globl _INT2VEC_IE1
+ .globl _INT1VEC_T0
+ .globl _INT0VEC_IE0
+ .globl _EP8FIFOBUF
+ .globl _EP6FIFOBUF
+ .globl _EP4FIFOBUF
+ .globl _EP2FIFOBUF
+ .globl _EP1INBUF
+ .globl _EP1OUTBUF
+ .globl _EP0BUF
+ .globl _GPIFABORT
+ .globl _GPIFREADYSTAT
+ .globl _GPIFREADYCFG
+ .globl _XGPIFSGLDATLNOX
+ .globl _XGPIFSGLDATLX
+ .globl _XGPIFSGLDATH
+ .globl _EP8GPIFTRIG
+ .globl _EP8GPIFPFSTOP
+ .globl _EP8GPIFFLGSEL
+ .globl _EP6GPIFTRIG
+ .globl _EP6GPIFPFSTOP
+ .globl _EP6GPIFFLGSEL
+ .globl _EP4GPIFTRIG
+ .globl _EP4GPIFPFSTOP
+ .globl _EP4GPIFFLGSEL
+ .globl _EP2GPIFTRIG
+ .globl _EP2GPIFPFSTOP
+ .globl _EP2GPIFFLGSEL
+ .globl _GPIFTCB0
+ .globl _GPIFTCB1
+ .globl _GPIFTCB2
+ .globl _GPIFTCB3
+ .globl _FLOWSTBHPERIOD
+ .globl _FLOWSTBEDGE
+ .globl _FLOWSTB
+ .globl _FLOWHOLDOFF
+ .globl _FLOWEQ1CTL
+ .globl _FLOWEQ0CTL
+ .globl _FLOWLOGIC
+ .globl _FLOWSTATE
+ .globl _GPIFADRL
+ .globl _GPIFADRH
+ .globl _GPIFCTLCFG
+ .globl _GPIFIDLECTL
+ .globl _GPIFIDLECS
+ .globl _GPIFWFSELECT
+ .globl _wLengthH
+ .globl _wLengthL
+ .globl _wIndexH
+ .globl _wIndexL
+ .globl _wValueH
+ .globl _wValueL
+ .globl _bRequest
+ .globl _bmRequestType
+ .globl _SETUPDAT
+ .globl _SUDPTRCTL
+ .globl _SUDPTRL
+ .globl _SUDPTRH
+ .globl _EP8FIFOBCL
+ .globl _EP8FIFOBCH
+ .globl _EP6FIFOBCL
+ .globl _EP6FIFOBCH
+ .globl _EP4FIFOBCL
+ .globl _EP4FIFOBCH
+ .globl _EP2FIFOBCL
+ .globl _EP2FIFOBCH
+ .globl _EP8FIFOFLGS
+ .globl _EP6FIFOFLGS
+ .globl _EP4FIFOFLGS
+ .globl _EP2FIFOFLGS
+ .globl _EP8CS
+ .globl _EP6CS
+ .globl _EP4CS
+ .globl _EP2CS
+ .globl _EPXCS
+ .globl _EP1INCS
+ .globl _EP1OUTCS
+ .globl _EP0CS
+ .globl _EP8BCL
+ .globl _EP8BCH
+ .globl _EP6BCL
+ .globl _EP6BCH
+ .globl _EP4BCL
+ .globl _EP4BCH
+ .globl _EP2BCL
+ .globl _EP2BCH
+ .globl _EP1INBC
+ .globl _EP1OUTBC
+ .globl _EP0BCL
+ .globl _EP0BCH
+ .globl _FNADDR
+ .globl _MICROFRAME
+ .globl _USBFRAMEL
+ .globl _USBFRAMEH
+ .globl _TOGCTL
+ .globl _WAKEUPCS
+ .globl _SUSPEND
+ .globl _USBCS
+ .globl _UDMACRCQUALIFIER
+ .globl _UDMACRCL
+ .globl _UDMACRCH
+ .globl _EXTAUTODAT2
+ .globl _XAUTODAT2
+ .globl _EXTAUTODAT1
+ .globl _XAUTODAT1
+ .globl _I2CTL
+ .globl _I2DAT
+ .globl _I2CS
+ .globl _PORTECFG
+ .globl _PORTCCFG
+ .globl _PORTACFG
+ .globl _INTSETUP
+ .globl _INT4IVEC
+ .globl _INT2IVEC
+ .globl _CLRERRCNT
+ .globl _ERRCNTLIM
+ .globl _USBERRIRQ
+ .globl _USBERRIE
+ .globl _GPIFIRQ
+ .globl _GPIFIE
+ .globl _EPIRQ
+ .globl _EPIE
+ .globl _USBIRQ
+ .globl _USBIE
+ .globl _NAKIRQ
+ .globl _NAKIE
+ .globl _IBNIRQ
+ .globl _IBNIE
+ .globl _EP8FIFOIRQ
+ .globl _EP8FIFOIE
+ .globl _EP6FIFOIRQ
+ .globl _EP6FIFOIE
+ .globl _EP4FIFOIRQ
+ .globl _EP4FIFOIE
+ .globl _EP2FIFOIRQ
+ .globl _EP2FIFOIE
+ .globl _OUTPKTEND
+ .globl _INPKTEND
+ .globl _EP8ISOINPKTS
+ .globl _EP6ISOINPKTS
+ .globl _EP4ISOINPKTS
+ .globl _EP2ISOINPKTS
+ .globl _EP8FIFOPFL
+ .globl _EP8FIFOPFH
+ .globl _EP6FIFOPFL
+ .globl _EP6FIFOPFH
+ .globl _EP4FIFOPFL
+ .globl _EP4FIFOPFH
+ .globl _EP2FIFOPFL
+ .globl _EP2FIFOPFH
+ .globl _ECC2B2
+ .globl _ECC2B1
+ .globl _ECC2B0
+ .globl _ECC1B2
+ .globl _ECC1B1
+ .globl _ECC1B0
+ .globl _ECCRESET
+ .globl _ECCCFG
+ .globl _EP8AUTOINLENL
+ .globl _EP8AUTOINLENH
+ .globl _EP6AUTOINLENL
+ .globl _EP6AUTOINLENH
+ .globl _EP4AUTOINLENL
+ .globl _EP4AUTOINLENH
+ .globl _EP2AUTOINLENL
+ .globl _EP2AUTOINLENH
+ .globl _EP8FIFOCFG
+ .globl _EP6FIFOCFG
+ .globl _EP4FIFOCFG
+ .globl _EP2FIFOCFG
+ .globl _EP8CFG
+ .globl _EP6CFG
+ .globl _EP4CFG
+ .globl _EP2CFG
+ .globl _EP1INCFG
+ .globl _EP1OUTCFG
+ .globl _GPIFHOLDAMOUNT
+ .globl _REVCTL
+ .globl _REVID
+ .globl _FIFOPINPOLAR
+ .globl _UART230
+ .globl _BPADDRL
+ .globl _BPADDRH
+ .globl _BREAKPT
+ .globl _FIFORESET
+ .globl _PINFLAGSCD
+ .globl _PINFLAGSAB
+ .globl _IFCONFIG
+ .globl _CPUCS
+ .globl _GPCR2
+ .globl _GPIF_WAVE3_DATA
+ .globl _GPIF_WAVE2_DATA
+ .globl _GPIF_WAVE1_DATA
+ .globl _GPIF_WAVE0_DATA
+ .globl _GPIF_WAVE_DATA
+ .globl _eeprom_write_PARM_3
+ .globl _eeprom_write_PARM_2
+ .globl _eeprom_read_PARM_3
+ .globl _eeprom_read_PARM_2
+ .globl _eeprom_select_PARM_2
+;--------------------------------------------------------
+; special function registers
+;--------------------------------------------------------
+ .area RSEG (DATA)
+_IOA = 0x0080
+_SP = 0x0081
+_DPL0 = 0x0082
+_DPH0 = 0x0083
+_DPL1 = 0x0084
+_DPH1 = 0x0085
+_DPS = 0x0086
+_PCON = 0x0087
+_TCON = 0x0088
+_TMOD = 0x0089
+_TL0 = 0x008a
+_TL1 = 0x008b
+_TH0 = 0x008c
+_TH1 = 0x008d
+_CKCON = 0x008e
+_IOB = 0x0090
+_EXIF = 0x0091
+_MPAGE = 0x0092
+__XPAGE = 0x0092
+_SCON0 = 0x0098
+_SBUF0 = 0x0099
+_AUTOPTRH1 = 0x009a
+_AUTOPTRL1 = 0x009b
+_AUTOPTRH2 = 0x009d
+_AUTOPTRL2 = 0x009e
+_IOC = 0x00a0
+_INT2CLR = 0x00a1
+_INT4CLR = 0x00a2
+_IE = 0x00a8
+_EP2468STAT = 0x00aa
+_EP24FIFOFLGS = 0x00ab
+_EP68FIFOFLGS = 0x00ac
+_AUTOPTRSETUP = 0x00af
+_IOD = 0x00b0
+_IOE = 0x00b1
+_OEA = 0x00b2
+_OEB = 0x00b3
+_OEC = 0x00b4
+_OED = 0x00b5
+_OEE = 0x00b6
+_IP = 0x00b8
+_EP01STAT = 0x00ba
+_GPIFTRIG = 0x00bb
+_GPIFSGLDATH = 0x00bd
+_GPIFSGLDATLX = 0x00be
+_GPIFSGLDATLNOX = 0x00bf
+_SCON1 = 0x00c0
+_SBUF1 = 0x00c1
+_T2CON = 0x00c8
+_RCAP2L = 0x00ca
+_RCAP2H = 0x00cb
+_TL2 = 0x00cc
+_TH2 = 0x00cd
+_PSW = 0x00d0
+_EICON = 0x00d8
+_ACC = 0x00e0
+_EIE = 0x00e8
+_BREG = 0x00f0
+_EIP = 0x00f8
+;--------------------------------------------------------
+; special function bits
+;--------------------------------------------------------
+ .area RSEG (DATA)
+_IOA0 = 0x0080
+_IOA1 = 0x0081
+_IOA2 = 0x0082
+_IOA3 = 0x0083
+_IOA4 = 0x0084
+_IOA5 = 0x0085
+_IOA6 = 0x0086
+_IOA7 = 0x0087
+_IT0 = 0x0088
+_IE0 = 0x0089
+_IT1 = 0x008a
+_IE1 = 0x008b
+_TR0 = 0x008c
+_TF0 = 0x008d
+_TR1 = 0x008e
+_TF1 = 0x008f
+_IOB0 = 0x0090
+_IOB1 = 0x0091
+_IOB2 = 0x0092
+_IOB3 = 0x0093
+_IOB4 = 0x0094
+_IOB5 = 0x0095
+_IOB6 = 0x0096
+_IOB7 = 0x0097
+_RI_0 = 0x0098
+_TI_0 = 0x0099
+_RB8_0 = 0x009a
+_TB8_0 = 0x009b
+_REN_0 = 0x009c
+_SM2_0 = 0x009d
+_SM1_0 = 0x009e
+_SM0_0 = 0x009f
+_IOC0 = 0x00a0
+_IOC1 = 0x00a1
+_IOC2 = 0x00a2
+_IOC3 = 0x00a3
+_IOC4 = 0x00a4
+_IOC5 = 0x00a5
+_IOC6 = 0x00a6
+_IOC7 = 0x00a7
+_EX0 = 0x00a8
+_ET0 = 0x00a9
+_EX1 = 0x00aa
+_ET1 = 0x00ab
+_ES0 = 0x00ac
+_ET2 = 0x00ad
+_ES1 = 0x00ae
+_EA = 0x00af
+_IOD0 = 0x00b0
+_IOD1 = 0x00b1
+_IOD2 = 0x00b2
+_IOD3 = 0x00b3
+_IOD4 = 0x00b4
+_IOD5 = 0x00b5
+_IOD6 = 0x00b6
+_IOD7 = 0x00b7
+_PX0 = 0x00b8
+_PT0 = 0x00b9
+_PX1 = 0x00ba
+_PT1 = 0x00bb
+_PS0 = 0x00bc
+_PT2 = 0x00bd
+_PS1 = 0x00be
+_RI_1 = 0x00c0
+_TI_1 = 0x00c1
+_RB8_1 = 0x00c2
+_TB8_1 = 0x00c3
+_REN_1 = 0x00c4
+_SM2_1 = 0x00c5
+_SM1_1 = 0x00c6
+_SM0_1 = 0x00c7
+_CPRL2 = 0x00c8
+_CT2 = 0x00c9
+_TR2 = 0x00ca
+_EXEN2 = 0x00cb
+_TCLK = 0x00cc
+_RCLK = 0x00cd
+_EXF2 = 0x00ce
+_TF2 = 0x00cf
+_PF = 0x00d0
+_F1 = 0x00d1
+_OV = 0x00d2
+_RS0 = 0x00d3
+_RS1 = 0x00d4
+_F0 = 0x00d5
+_AC = 0x00d6
+_CY = 0x00d7
+_INT6 = 0x00db
+_RESI = 0x00dc
+_ERESI = 0x00dd
+_SMOD1 = 0x00df
+_ACC0 = 0x00e0
+_ACC1 = 0x00e1
+_ACC2 = 0x00e2
+_ACC3 = 0x00e3
+_ACC4 = 0x00e4
+_ACC5 = 0x00e5
+_ACC6 = 0x00e6
+_ACC7 = 0x00e7
+_EUSB = 0x00e8
+_EI2C = 0x00e9
+_EIEX4 = 0x00ea
+_EIEX5 = 0x00eb
+_EIEX6 = 0x00ec
+_BREG0 = 0x00f0
+_BREG1 = 0x00f1
+_BREG2 = 0x00f2
+_BREG3 = 0x00f3
+_BREG4 = 0x00f4
+_BREG5 = 0x00f5
+_BREG6 = 0x00f6
+_BREG7 = 0x00f7
+_PUSB = 0x00f8
+_PI2C = 0x00f9
+_EIPX4 = 0x00fa
+_EIPX5 = 0x00fb
+_EIPX6 = 0x00fc
+;--------------------------------------------------------
+; overlayable register banks
+;--------------------------------------------------------
+ .area REG_BANK_0 (REL,OVR,DATA)
+ .ds 8
+;--------------------------------------------------------
+; overlayable bit register bank
+;--------------------------------------------------------
+ .area BIT_BANK (REL,OVR,DATA)
+bits:
+ .ds 1
+ b0 = bits[0]
+ b1 = bits[1]
+ b2 = bits[2]
+ b3 = bits[3]
+ b4 = bits[4]
+ b5 = bits[5]
+ b6 = bits[6]
+ b7 = bits[7]
+;--------------------------------------------------------
+; internal ram data
+;--------------------------------------------------------
+ .area DSEG (DATA)
+_eeprom_select_PARM_2:
+ .ds 1
+_eeprom_read_PARM_2:
+ .ds 2
+_eeprom_read_PARM_3:
+ .ds 1
+_eeprom_write_PARM_2:
+ .ds 2
+_eeprom_write_PARM_3:
+ .ds 1
+;--------------------------------------------------------
+; overlayable items in internal ram
+;--------------------------------------------------------
+ .area OSEG (OVR,DATA)
+ .area OSEG (OVR,DATA)
+ .area OSEG (OVR,DATA)
+ .area OSEG (OVR,DATA)
+ .area OSEG (OVR,DATA)
+ .area OSEG (OVR,DATA)
+ .area OSEG (OVR,DATA)
+ .area OSEG (OVR,DATA)
+ .area OSEG (OVR,DATA)
+_sendStringDescriptor_PARM_2::
+ .ds 1
+_sendStringDescriptor_PARM_3::
+ .ds 1
+;--------------------------------------------------------
+; Stack segment in internal ram
+;--------------------------------------------------------
+ .area SSEG (DATA)
+__start__stack:
+ .ds 1
+
+;--------------------------------------------------------
+; indirectly addressable internal ram data
+;--------------------------------------------------------
+ .area ISEG (DATA)
+;--------------------------------------------------------
+; absolute internal ram data
+;--------------------------------------------------------
+ .area IABS (ABS,DATA)
+ .area IABS (ABS,DATA)
+;--------------------------------------------------------
+; bit data
+;--------------------------------------------------------
+ .area BSEG (BIT)
+;--------------------------------------------------------
+; paged external ram data
+;--------------------------------------------------------
+ .area PSEG (PAG,XDATA)
+;--------------------------------------------------------
+; external ram data
+;--------------------------------------------------------
+ .area XSEG (XDATA)
+_GPIF_WAVE_DATA = 0xe400
+_GPIF_WAVE0_DATA = 0xe400
+_GPIF_WAVE1_DATA = 0xe420
+_GPIF_WAVE2_DATA = 0xe440
+_GPIF_WAVE3_DATA = 0xe460
+_GPCR2 = 0xe50d
+_CPUCS = 0xe600
+_IFCONFIG = 0xe601
+_PINFLAGSAB = 0xe602
+_PINFLAGSCD = 0xe603
+_FIFORESET = 0xe604
+_BREAKPT = 0xe605
+_BPADDRH = 0xe606
+_BPADDRL = 0xe607
+_UART230 = 0xe608
+_FIFOPINPOLAR = 0xe609
+_REVID = 0xe60a
+_REVCTL = 0xe60b
+_GPIFHOLDAMOUNT = 0xe60c
+_EP1OUTCFG = 0xe610
+_EP1INCFG = 0xe611
+_EP2CFG = 0xe612
+_EP4CFG = 0xe613
+_EP6CFG = 0xe614
+_EP8CFG = 0xe615
+_EP2FIFOCFG = 0xe618
+_EP4FIFOCFG = 0xe619
+_EP6FIFOCFG = 0xe61a
+_EP8FIFOCFG = 0xe61b
+_EP2AUTOINLENH = 0xe620
+_EP2AUTOINLENL = 0xe621
+_EP4AUTOINLENH = 0xe622
+_EP4AUTOINLENL = 0xe623
+_EP6AUTOINLENH = 0xe624
+_EP6AUTOINLENL = 0xe625
+_EP8AUTOINLENH = 0xe626
+_EP8AUTOINLENL = 0xe627
+_ECCCFG = 0xe628
+_ECCRESET = 0xe629
+_ECC1B0 = 0xe62a
+_ECC1B1 = 0xe62b
+_ECC1B2 = 0xe62c
+_ECC2B0 = 0xe62d
+_ECC2B1 = 0xe62e
+_ECC2B2 = 0xe62f
+_EP2FIFOPFH = 0xe630
+_EP2FIFOPFL = 0xe631
+_EP4FIFOPFH = 0xe632
+_EP4FIFOPFL = 0xe633
+_EP6FIFOPFH = 0xe634
+_EP6FIFOPFL = 0xe635
+_EP8FIFOPFH = 0xe636
+_EP8FIFOPFL = 0xe637
+_EP2ISOINPKTS = 0xe640
+_EP4ISOINPKTS = 0xe641
+_EP6ISOINPKTS = 0xe642
+_EP8ISOINPKTS = 0xe643
+_INPKTEND = 0xe648
+_OUTPKTEND = 0xe649
+_EP2FIFOIE = 0xe650
+_EP2FIFOIRQ = 0xe651
+_EP4FIFOIE = 0xe652
+_EP4FIFOIRQ = 0xe653
+_EP6FIFOIE = 0xe654
+_EP6FIFOIRQ = 0xe655
+_EP8FIFOIE = 0xe656
+_EP8FIFOIRQ = 0xe657
+_IBNIE = 0xe658
+_IBNIRQ = 0xe659
+_NAKIE = 0xe65a
+_NAKIRQ = 0xe65b
+_USBIE = 0xe65c
+_USBIRQ = 0xe65d
+_EPIE = 0xe65e
+_EPIRQ = 0xe65f
+_GPIFIE = 0xe660
+_GPIFIRQ = 0xe661
+_USBERRIE = 0xe662
+_USBERRIRQ = 0xe663
+_ERRCNTLIM = 0xe664
+_CLRERRCNT = 0xe665
+_INT2IVEC = 0xe666
+_INT4IVEC = 0xe667
+_INTSETUP = 0xe668
+_PORTACFG = 0xe670
+_PORTCCFG = 0xe671
+_PORTECFG = 0xe672
+_I2CS = 0xe678
+_I2DAT = 0xe679
+_I2CTL = 0xe67a
+_XAUTODAT1 = 0xe67b
+_EXTAUTODAT1 = 0xe67b
+_XAUTODAT2 = 0xe67c
+_EXTAUTODAT2 = 0xe67c
+_UDMACRCH = 0xe67d
+_UDMACRCL = 0xe67e
+_UDMACRCQUALIFIER = 0xe67f
+_USBCS = 0xe680
+_SUSPEND = 0xe681
+_WAKEUPCS = 0xe682
+_TOGCTL = 0xe683
+_USBFRAMEH = 0xe684
+_USBFRAMEL = 0xe685
+_MICROFRAME = 0xe686
+_FNADDR = 0xe687
+_EP0BCH = 0xe68a
+_EP0BCL = 0xe68b
+_EP1OUTBC = 0xe68d
+_EP1INBC = 0xe68f
+_EP2BCH = 0xe690
+_EP2BCL = 0xe691
+_EP4BCH = 0xe694
+_EP4BCL = 0xe695
+_EP6BCH = 0xe698
+_EP6BCL = 0xe699
+_EP8BCH = 0xe69c
+_EP8BCL = 0xe69d
+_EP0CS = 0xe6a0
+_EP1OUTCS = 0xe6a1
+_EP1INCS = 0xe6a2
+_EPXCS = 0xe6a3
+_EP2CS = 0xe6a3
+_EP4CS = 0xe6a4
+_EP6CS = 0xe6a5
+_EP8CS = 0xe6a6
+_EP2FIFOFLGS = 0xe6a7
+_EP4FIFOFLGS = 0xe6a8
+_EP6FIFOFLGS = 0xe6a9
+_EP8FIFOFLGS = 0xe6aa
+_EP2FIFOBCH = 0xe6ab
+_EP2FIFOBCL = 0xe6ac
+_EP4FIFOBCH = 0xe6ad
+_EP4FIFOBCL = 0xe6ae
+_EP6FIFOBCH = 0xe6af
+_EP6FIFOBCL = 0xe6b0
+_EP8FIFOBCH = 0xe6b1
+_EP8FIFOBCL = 0xe6b2
+_SUDPTRH = 0xe6b3
+_SUDPTRL = 0xe6b4
+_SUDPTRCTL = 0xe6b5
+_SETUPDAT = 0xe6b8
+_bmRequestType = 0xe6b8
+_bRequest = 0xe6b9
+_wValueL = 0xe6ba
+_wValueH = 0xe6bb
+_wIndexL = 0xe6bc
+_wIndexH = 0xe6bd
+_wLengthL = 0xe6be
+_wLengthH = 0xe6bf
+_GPIFWFSELECT = 0xe6c0
+_GPIFIDLECS = 0xe6c1
+_GPIFIDLECTL = 0xe6c2
+_GPIFCTLCFG = 0xe6c3
+_GPIFADRH = 0xe6c4
+_GPIFADRL = 0xe6c5
+_FLOWSTATE = 0xe6c6
+_FLOWLOGIC = 0xe6c7
+_FLOWEQ0CTL = 0xe6c8
+_FLOWEQ1CTL = 0xe6c9
+_FLOWHOLDOFF = 0xe6ca
+_FLOWSTB = 0xe6cb
+_FLOWSTBEDGE = 0xe6cc
+_FLOWSTBHPERIOD = 0xe6cd
+_GPIFTCB3 = 0xe6ce
+_GPIFTCB2 = 0xe6cf
+_GPIFTCB1 = 0xe6d0
+_GPIFTCB0 = 0xe6d1
+_EP2GPIFFLGSEL = 0xe6d2
+_EP2GPIFPFSTOP = 0xe6d3
+_EP2GPIFTRIG = 0xe6d4
+_EP4GPIFFLGSEL = 0xe6da
+_EP4GPIFPFSTOP = 0xe6db
+_EP4GPIFTRIG = 0xe6dc
+_EP6GPIFFLGSEL = 0xe6e2
+_EP6GPIFPFSTOP = 0xe6e3
+_EP6GPIFTRIG = 0xe6e4
+_EP8GPIFFLGSEL = 0xe6ea
+_EP8GPIFPFSTOP = 0xe6eb
+_EP8GPIFTRIG = 0xe6ec
+_XGPIFSGLDATH = 0xe6f0
+_XGPIFSGLDATLX = 0xe6f1
+_XGPIFSGLDATLNOX = 0xe6f2
+_GPIFREADYCFG = 0xe6f3
+_GPIFREADYSTAT = 0xe6f4
+_GPIFABORT = 0xe6f5
+_EP0BUF = 0xe740
+_EP1OUTBUF = 0xe780
+_EP1INBUF = 0xe7c0
+_EP2FIFOBUF = 0xf000
+_EP4FIFOBUF = 0xf400
+_EP6FIFOBUF = 0xf800
+_EP8FIFOBUF = 0xfc00
+_INT0VEC_IE0 = 0x0003
+_INT1VEC_T0 = 0x000b
+_INT2VEC_IE1 = 0x0013
+_INT3VEC_T1 = 0x001b
+_INT4VEC_USART0 = 0x0023
+_INT5VEC_T2 = 0x002b
+_INT6VEC_RESUME = 0x0033
+_INT7VEC_USART1 = 0x003b
+_INT8VEC_USB = 0x0043
+_INT9VEC_I2C = 0x004b
+_INT10VEC_GPIF = 0x0053
+_INT11VEC_IE5 = 0x005b
+_INT12VEC_IE6 = 0x0063
+_INTVEC_SUDAV = 0x0100
+_INTVEC_SOF = 0x0104
+_INTVEC_SUTOK = 0x0108
+_INTVEC_SUSPEND = 0x010c
+_INTVEC_USBRESET = 0x0110
+_INTVEC_HISPEED = 0x0114
+_INTVEC_EP0ACK = 0x0118
+_INTVEC_EP0IN = 0x0120
+_INTVEC_EP0OUT = 0x0124
+_INTVEC_EP1IN = 0x0128
+_INTVEC_EP1OUT = 0x012c
+_INTVEC_EP2 = 0x0130
+_INTVEC_EP4 = 0x0134
+_INTVEC_EP6 = 0x0138
+_INTVEC_EP8 = 0x013c
+_INTVEC_IBN = 0x0140
+_INTVEC_EP0PING = 0x0148
+_INTVEC_EP1PING = 0x014c
+_INTVEC_EP2PING = 0x0150
+_INTVEC_EP4PING = 0x0154
+_INTVEC_EP6PING = 0x0158
+_INTVEC_EP8PING = 0x015c
+_INTVEC_ERRLIMIT = 0x0160
+_INTVEC_EP2ISOERR = 0x0170
+_INTVEC_EP4ISOERR = 0x0174
+_INTVEC_EP6ISOERR = 0x0178
+_INTVEC_EP8ISOERR = 0x017c
+_INTVEC_EP2PF = 0x0180
+_INTVEC_EP4PF = 0x0184
+_INTVEC_EP6PF = 0x0188
+_INTVEC_EP8PF = 0x018c
+_INTVEC_EP2EF = 0x0190
+_INTVEC_EP4EF = 0x0194
+_INTVEC_EP6EF = 0x0198
+_INTVEC_EP8EF = 0x019c
+_INTVEC_EP2FF = 0x01a0
+_INTVEC_EP6FF = 0x01a8
+_INTVEC_EP8FF = 0x01ac
+_INTVEC_GPIFDONE = 0x01b0
+_INTVEC_GPIFWF = 0x01b4
+_eeprom_addr::
+ .ds 2
+_eeprom_write_bytes::
+ .ds 2
+_eeprom_write_checksum::
+ .ds 1
+_debug_counter::
+ .ds 2
+_debug_stack_size::
+ .ds 1
+_debug_msg_size::
+ .ds 1
+_debug_stack::
+ .ds 96
+_debug_stack_ptr::
+ .ds 2
+_debug_msg_buf::
+ .ds 3
+_debug_read_addr::
+ .ds 2
+_ZTEX_DESCRIPTOR = 0x006c
+_ZTEX_DESCRIPTOR_VERSION = 0x006d
+_ZTEXID = 0x006e
+_PRODUCT_ID = 0x0072
+_FW_VERSION = 0x0076
+_INTERFACE_VERSION = 0x0077
+_INTERFACE_CAPABILITIES = 0x0078
+_MODULE_RESERVED = 0x007e
+_SN_STRING = 0x008a
+;--------------------------------------------------------
+; absolute external ram data
+;--------------------------------------------------------
+ .area XABS (ABS,XDATA)
+;--------------------------------------------------------
+; external initialized ram data
+;--------------------------------------------------------
+ .area XISEG (XDATA)
+_ep0_payload_remaining::
+ .ds 2
+_ep0_payload_transfer::
+ .ds 1
+_ep0_prev_setup_request::
+ .ds 1
+_ep0_vendor_cmd_setup::
+ .ds 1
+_ISOFRAME_COUNTER::
+ .ds 8
+ .area HOME (CODE)
+ .area GSINIT0 (CODE)
+ .area GSINIT1 (CODE)
+ .area GSINIT2 (CODE)
+ .area GSINIT3 (CODE)
+ .area GSINIT4 (CODE)
+ .area GSINIT5 (CODE)
+ .area GSINIT (CODE)
+ .area GSFINAL (CODE)
+ .area CSEG (CODE)
+;--------------------------------------------------------
+; interrupt vector
+;--------------------------------------------------------
+ .area HOME (CODE)
+__interrupt_vect:
+ ljmp __sdcc_gsinit_startup
+;--------------------------------------------------------
+; global & static initialisations
+;--------------------------------------------------------
+ .area HOME (CODE)
+ .area GSINIT (CODE)
+ .area GSFINAL (CODE)
+ .area GSINIT (CODE)
+ .globl __sdcc_gsinit_startup
+ .globl __sdcc_program_startup
+ .globl __start__stack
+ .globl __mcs51_genXINIT
+ .globl __mcs51_genXRAMCLEAR
+ .globl __mcs51_genRAMCLEAR
+ .area GSFINAL (CODE)
+ ljmp __sdcc_program_startup
+;--------------------------------------------------------
+; Home
+;--------------------------------------------------------
+ .area HOME (CODE)
+ .area HOME (CODE)
+__sdcc_program_startup:
+ lcall _main
+; return from main will lock up
+ sjmp .
+;--------------------------------------------------------
+; code
+;--------------------------------------------------------
+ .area CSEG (CODE)
+;------------------------------------------------------------
+;Allocation info for local variables in function 'abscode_intvec'
+;------------------------------------------------------------
+;------------------------------------------------------------
+; ../../../include/ezintavecs.h:92: void abscode_intvec() _naked
+; -----------------------------------------
+; function abscode_intvec
+; -----------------------------------------
+_abscode_intvec:
+; naked function: no prologue.
+; ../../../include/ezintavecs.h:317: ERROR: no line number 317 in file ../../../include/ezintavecs.h
+
+ .area ABSCODE (ABS,CODE)
+ .org 0x0000
+ ENTRY:
+ ljmp #0x0200
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0003
+; # 34 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x000b
+; # 35 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0013
+; # 36 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x001b
+; # 37 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0023
+; # 38 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x002b
+; # 39 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0033
+; # 40 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x003b
+; # 41 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0043
+; # 42 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x004b
+; # 43 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0053
+; # 44 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x005b
+; # 45 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0063
+; # 46 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0100
+; # 47 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0104
+; # 48 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0108
+; # 49 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x010C
+; # 50 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0110
+; # 51 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0114
+; # 52 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0118
+; # 53 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0120
+; # 54 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0124
+; # 55 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0128
+; # 56 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x012C
+; # 57 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0130
+; # 58 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0134
+; # 59 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0138
+; # 60 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x013C
+; # 61 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0140
+; # 62 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0148
+; # 63 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x014C
+; # 64 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0150
+; # 65 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0154
+; # 66 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0158
+; # 67 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x015C
+; # 68 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0160
+; # 69 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0170
+; # 70 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0174
+; # 71 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0178
+; # 72 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x017C
+; # 73 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0180
+; # 74 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0184
+; # 75 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0188
+; # 76 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x018C
+; # 77 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0190
+; # 78 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0194
+; # 79 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x0198
+; # 80 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x019C
+; # 81 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x01A0
+; # 82 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x01A8
+; # 83 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x01AC
+; # 84 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x01B0
+; # 85 "../../../include/ezintavecs.h"
+ reti
+; # 94 "../../../include/ezintavecs.h"
+ .org 0x01B4
+; # 101 "../../../include/ezintavecs.h"
+ reti
+ .org 0x01b8
+ INTVEC_DUMMY:
+ reti
+ .area CSEG (CODE)
+
+; naked function: no epilogue.
+;------------------------------------------------------------
+;Allocation info for local variables in function 'wait'
+;------------------------------------------------------------
+;ms Allocated to registers r2 r3
+;i Allocated to registers r6 r7
+;j Allocated to registers r4 r5
+;------------------------------------------------------------
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+; -----------------------------------------
+; function wait
+; -----------------------------------------
+_wait:
+ ar2 = 0x02
+ ar3 = 0x03
+ ar4 = 0x04
+ ar5 = 0x05
+ ar6 = 0x06
+ ar7 = 0x07
+ ar0 = 0x00
+ ar1 = 0x01
+ mov r2,dpl
+ mov r3,dph
+; ../../../include/ztex-utils.h:80: for (j=0; j> 8)
+ mov r5,a
+ mov dptr,#_debug_stack_ptr
+ mov a,r4
+ movx @dptr,a
+ inc dptr
+ mov a,r5
+ movx @dptr,a
+; ../../../include/ztex-utils.h:120: AUTOPTRL1=LO(&($0));
+ mov _AUTOPTRL1,#_debug_msg_buf
+; ../../../include/ztex-utils.h:121: AUTOPTRH1=HI(&($0));
+ mov r6,#_debug_msg_buf
+ mov r7,#(_debug_msg_buf >> 8)
+ mov _AUTOPTRH1,r7
+; ../../../include/ztex-utils.h:122: AUTOPTRL2=LO(&($1));
+ mov ar6,r4
+ mov ar7,r5
+ mov _AUTOPTRL2,r6
+; ../../../include/ztex-utils.h:123: AUTOPTRH2=HI(&($1));
+ mov _AUTOPTRH2,r5
+; ../../../include/ztex-utils.h:129: _endasm;
+
+ push ar2
+ mov r2,#(3);
+ lcall _MEM_COPY1_int
+ pop ar2
+
+; ../../../include/ztex-debug.h:53: debug_counter += 1;
+ mov dptr,#_debug_counter
+ mov a,#0x01
+ add a,r2
+ movx @dptr,a
+ clr a
+ addc a,r3
+ inc dptr
+ movx @dptr,a
+ ret
+;------------------------------------------------------------
+;Allocation info for local variables in function 'debug_init'
+;------------------------------------------------------------
+;------------------------------------------------------------
+; ../../../include/ztex-debug.h:60: void debug_init () {
+; -----------------------------------------
+; function debug_init
+; -----------------------------------------
+_debug_init:
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ mov dptr,#_debug_counter
+ clr a
+ movx @dptr,a
+ inc dptr
+ movx @dptr,a
+; ../../../include/ztex-debug.h:62: debug_stack_size = DEBUG_STACK_SIZE;
+ mov dptr,#_debug_stack_size
+ mov a,#0x20
+ movx @dptr,a
+; ../../../include/ztex-debug.h:63: debug_msg_size = DEBUG_MSG_SIZE;
+ mov dptr,#_debug_msg_size
+ mov a,#0x03
+ movx @dptr,a
+; ../../../include/ztex-debug.h:64: debug_stack_ptr = debug_stack;
+ mov dptr,#_debug_stack_ptr
+ mov a,#_debug_stack
+ movx @dptr,a
+ inc dptr
+ mov a,#(_debug_stack >> 8)
+ movx @dptr,a
+ ret
+;------------------------------------------------------------
+;Allocation info for local variables in function 'debug_read_ep0'
+;------------------------------------------------------------
+;b Allocated to registers r2
+;------------------------------------------------------------
+; ../../../include/ztex-debug.h:71: BYTE debug_read_ep0 () {
+; -----------------------------------------
+; function debug_read_ep0
+; -----------------------------------------
+_debug_read_ep0:
+; ../../../include/ztex-debug.h:73: b = ep0_payload_transfer;
+ mov dptr,#_ep0_payload_transfer
+ movx a,@dptr
+; ../../../include/ztex-debug.h:74: if ( b != 0) {
+ mov r2,a
+ jnz 00106$
+ ljmp 00102$
+00106$:
+; ../../../include/ztex-utils.h:120: AUTOPTRL1=LO(&($0));
+ mov dptr,#_debug_read_addr
+ movx a,@dptr
+ mov r3,a
+ inc dptr
+ movx a,@dptr
+ mov r4,a
+ mov _AUTOPTRL1,r3
+; ../../../include/ztex-utils.h:121: AUTOPTRH1=HI(&($0));
+ mov _AUTOPTRH1,r4
+; ../../../include/ztex-utils.h:122: AUTOPTRL2=LO(&($1));
+ mov _AUTOPTRL2,#0x40
+; ../../../include/ztex-utils.h:123: AUTOPTRH2=HI(&($1));
+ mov _AUTOPTRH2,#0xE7
+; ../../../include/ztex-utils.h:129: _endasm;
+
+ push ar2
+ mov r2,#(b);
+ lcall _MEM_COPY1_int
+ pop ar2
+
+00102$:
+; ../../../include/ztex-debug.h:77: debug_read_addr += b;
+ mov dptr,#_debug_read_addr
+ movx a,@dptr
+ mov r3,a
+ inc dptr
+ movx a,@dptr
+ mov r4,a
+ mov dptr,#_debug_read_addr
+ mov a,r2
+ add a,r3
+ movx @dptr,a
+ clr a
+ addc a,r4
+ inc dptr
+ movx @dptr,a
+; ../../../include/ztex-debug.h:78: return b;
+ mov dpl,r2
+ ret
+;------------------------------------------------------------
+;Allocation info for local variables in function 'abscode_identity'
+;------------------------------------------------------------
+;------------------------------------------------------------
+; ../../../include/ztex-descriptors.h:116: void abscode_identity() _naked
+; -----------------------------------------
+; function abscode_identity
+; -----------------------------------------
+_abscode_identity:
+; naked function: no prologue.
+; ../../../include/ztex-descriptors.h:170: .db MODULE_RESERVED_03
+
+ .area ABSCODE (ABS,CODE)
+
+ .org 0x06c
+ .db 40
+
+ .org _ZTEX_DESCRIPTOR_VERSION
+ .db 1
+
+ .org _ZTEXID
+ .ascii "ZTEX"
+
+ .org _PRODUCT_ID
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+
+ .org _FW_VERSION
+ .db 0
+
+ .org _INTERFACE_VERSION
+ .db 1
+
+ .org _INTERFACE_CAPABILITIES
+; # 158 "../../../include/ztex-descriptors.h"
+ .db 0 + 1 + 8
+; # 160 "../../../include/ztex-descriptors.h"
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+
+ .org _MODULE_RESERVED
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+
+ .org _SN_STRING
+ .ascii "0000000000"
+
+ .area CSEG (CODE)
+
+; naked function: no epilogue.
+;------------------------------------------------------------
+;Allocation info for local variables in function 'resetToggleData'
+;------------------------------------------------------------
+;------------------------------------------------------------
+; ../../../include/ztex-isr.h:34: static void resetToggleData () {
+; -----------------------------------------
+; function resetToggleData
+; -----------------------------------------
+_resetToggleData:
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+; ../../../include/ztex-isr.h:46: TOGCTL = 0 | bmBIT5;
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+; ../../../include/ztex-isr.h:48: TOGCTL = 0x10 | bmBIT5;
+ mov dptr,#_TOGCTL
+ clr a
+ movx @dptr,a
+ mov a,#0x20
+ movx @dptr,a
+ mov a,#0x10
+ movx @dptr,a
+ mov a,#0x30
+ movx @dptr,a
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+; ../../../include/ztex-isr.h:51: TOGCTL = 1 | bmBIT5;
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+; ../../../include/ztex-isr.h:55: TOGCTL = 0x11 | bmBIT5;
+ mov dptr,#_TOGCTL
+ mov a,#0x01
+ movx @dptr,a
+ mov a,#0x21
+ movx @dptr,a
+ mov a,#0x11
+ movx @dptr,a
+ mov a,#0x31
+ movx @dptr,a
+ ret
+;------------------------------------------------------------
+;Allocation info for local variables in function 'sendStringDescriptor'
+;------------------------------------------------------------
+;hiAddr Allocated with name '_sendStringDescriptor_PARM_2'
+;size Allocated with name '_sendStringDescriptor_PARM_3'
+;loAddr Allocated to registers r2
+;i Allocated to registers r2
+;------------------------------------------------------------
+; ../../../include/ztex-isr.h:68: static void sendStringDescriptor (BYTE loAddr, BYTE hiAddr, BYTE size)
+; -----------------------------------------
+; function sendStringDescriptor
+; -----------------------------------------
+_sendStringDescriptor:
+ mov r2,dpl
+; ../../../include/ztex-isr.h:71: if ( size > 31)
+ mov a,_sendStringDescriptor_PARM_3
+ add a,#0xff - 0x1F
+ jnc 00102$
+; ../../../include/ztex-isr.h:72: size = 31;
+ mov _sendStringDescriptor_PARM_3,#0x1F
+00102$:
+; ../../../include/ztex-isr.h:73: AUTOPTRSETUP = 7;
+ mov _AUTOPTRSETUP,#0x07
+; ../../../include/ztex-isr.h:74: AUTOPTRL1 = loAddr;
+ mov _AUTOPTRL1,r2
+; ../../../include/ztex-isr.h:75: AUTOPTRH1 = hiAddr;
+ mov _AUTOPTRH1,_sendStringDescriptor_PARM_2
+; ../../../include/ztex-isr.h:76: AUTOPTRL2 = (BYTE)(((unsigned short)(&EP0BUF))+1);
+ mov _AUTOPTRL2,#0x41
+; ../../../include/ztex-isr.h:77: AUTOPTRH2 = (BYTE)((((unsigned short)(&EP0BUF))+1) >> 8);
+ mov _AUTOPTRH2,#0xE7
+; ../../../include/ztex-isr.h:78: XAUTODAT2 = 3;
+ mov dptr,#_XAUTODAT2
+ mov a,#0x03
+ movx @dptr,a
+; ../../../include/ztex-isr.h:79: for (i=0; i 64 ) ? 64 : ep0_payload_remaining;
+ mov dptr,#_ep0_payload_remaining
+ movx a,@dptr
+ mov r2,a
+ inc dptr
+ movx a,@dptr
+ mov r3,a
+ clr c
+ mov a,#0x40
+ subb a,r2
+ clr a
+ subb a,r3
+ jnc 00103$
+ mov r4,#0x40
+ mov r5,#0x00
+ sjmp 00104$
+00103$:
+ mov ar4,r2
+ mov ar5,r3
+00104$:
+ mov dptr,#_ep0_payload_transfer
+ mov a,r4
+ movx @dptr,a
+; ../../../include/ztex-isr.h:95: ep0_payload_remaining -= ep0_payload_transfer;
+ mov r5,#0x00
+ mov dptr,#_ep0_payload_remaining
+ mov a,r2
+ clr c
+ subb a,r4
+ movx @dptr,a
+ mov a,r3
+ subb a,r5
+ inc dptr
+ movx @dptr,a
+ ret
+;------------------------------------------------------------
+;Allocation info for local variables in function 'ep0_vendor_cmd_su'
+;------------------------------------------------------------
+;------------------------------------------------------------
+; ../../../include/ztex-isr.h:102: static void ep0_vendor_cmd_su() {
+; -----------------------------------------
+; function ep0_vendor_cmd_su
+; -----------------------------------------
+_ep0_vendor_cmd_su:
+; ../../../include/ztex-isr.h:103: switch ( ep0_prev_setup_request ) {
+ mov dptr,#_ep0_prev_setup_request
+ movx a,@dptr
+ mov r2,a
+ cjne r2,#0x39,00102$
+; ../../../include/ztex-eeprom.h:233: eeprom_write_checksum = 0;
+ mov dptr,#_eeprom_write_checksum
+; ../../../include/ztex-eeprom.h:234: eeprom_write_bytes = 0;
+ clr a
+ movx @dptr,a
+ mov dptr,#_eeprom_write_bytes
+ movx @dptr,a
+ inc dptr
+ movx @dptr,a
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ mov dptr,#(_SETUPDAT + 0x0003)
+ movx a,@dptr
+ mov r3,a
+ mov r2,#0x00
+ mov dptr,#(_SETUPDAT + 0x0002)
+ movx a,@dptr
+ mov r4,a
+ mov r5,#0x00
+ mov dptr,#_eeprom_addr
+ mov a,r4
+ orl a,r2
+ movx @dptr,a
+ mov a,r5
+ orl a,r3
+ inc dptr
+ movx @dptr,a
+; ../../../include/ztex-conf.h:115: break;
+; ../../../include/ztex-isr.h:105: default:
+ ret
+00102$:
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ mov dptr,#_EP0CS
+ movx a,@dptr
+ orl a,#0x01
+ movx @dptr,a
+; ../../../include/ztex-isr.h:107: }
+ ret
+;------------------------------------------------------------
+;Allocation info for local variables in function 'SUDAV_ISR'
+;------------------------------------------------------------
+;a Allocated to registers r2
+;------------------------------------------------------------
+; ../../../include/ztex-isr.h:113: static void SUDAV_ISR () interrupt
+; -----------------------------------------
+; function SUDAV_ISR
+; -----------------------------------------
+_SUDAV_ISR:
+ push bits
+ push acc
+ push b
+ push dpl
+ push dph
+ push (0+2)
+ push (0+3)
+ push (0+4)
+ push (0+5)
+ push (0+6)
+ push (0+7)
+ push (0+0)
+ push (0+1)
+ push psw
+ mov psw,#0x00
+; ../../../include/ztex-isr.h:116: ep0_prev_setup_request = bRequest;
+ mov dptr,#_bRequest
+ movx a,@dptr
+ mov r2,a
+ mov dptr,#_ep0_prev_setup_request
+ movx @dptr,a
+; ../../../include/ztex-isr.h:117: SUDPTRCTL = 1;
+ mov dptr,#_SUDPTRCTL
+ mov a,#0x01
+ movx @dptr,a
+; ../../../include/ztex-isr.h:120: switch ( bRequest ) {
+ mov dptr,#_bRequest
+ movx a,@dptr
+ mov r2,a
+ add a,#0xff - 0x0C
+ jnc 00214$
+ ljmp 00160$
+00214$:
+ mov a,r2
+ add a,r2
+ add a,r2
+ mov dptr,#00215$
+ jmp @a+dptr
+00215$:
+ ljmp 00101$
+ ljmp 00112$
+ ljmp 00160$
+ ljmp 00122$
+ ljmp 00160$
+ ljmp 00160$
+ ljmp 00132$
+ ljmp 00152$
+ ljmp 00153$
+ ljmp 00154$
+ ljmp 00155$
+ ljmp 00156$
+ ljmp 00157$
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+00101$:
+; ../../../include/ztex-isr.h:122: switch(SETUPDAT[0]) {
+ mov dptr,#_SETUPDAT
+ movx a,@dptr
+ mov r2,a
+ cjne r2,#0x80,00216$
+ sjmp 00102$
+00216$:
+ cjne r2,#0x81,00217$
+ sjmp 00103$
+00217$:
+ cjne r2,#0x82,00218$
+ sjmp 00104$
+00218$:
+ ljmp 00160$
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+00102$:
+ mov dptr,#_EP0BUF
+; ../../../include/ztex-isr.h:125: EP0BUF[1] = 0;
+; ../../../include/ztex-isr.h:126: EP0BCH = 0;
+ clr a
+ movx @dptr,a
+ mov dptr,#(_EP0BUF + 0x0001)
+ movx @dptr,a
+ mov dptr,#_EP0BCH
+ movx @dptr,a
+; ../../../include/ztex-isr.h:127: EP0BCL = 2;
+ mov dptr,#_EP0BCL
+ mov a,#0x02
+ movx @dptr,a
+; ../../../include/ztex-isr.h:128: break;
+ ljmp 00160$
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+00103$:
+ mov dptr,#_EP0BUF
+; ../../../include/ztex-isr.h:131: EP0BUF[1] = 0;
+; ../../../include/ztex-isr.h:132: EP0BCH = 0;
+ clr a
+ movx @dptr,a
+ mov dptr,#(_EP0BUF + 0x0001)
+ movx @dptr,a
+ mov dptr,#_EP0BCH
+ movx @dptr,a
+; ../../../include/ztex-isr.h:133: EP0BCL = 2;
+ mov dptr,#_EP0BCL
+ mov a,#0x02
+ movx @dptr,a
+; ../../../include/ztex-isr.h:134: break;
+ ljmp 00160$
+; ../../../include/ztex-isr.h:135: case 0x82:
+00104$:
+; ../../../include/ztex-isr.h:136: switch ( SETUPDAT[4] ) {
+ mov dptr,#(_SETUPDAT + 0x0004)
+ movx a,@dptr
+ mov r2,a
+ jz 00106$
+ cjne r2,#0x01,00220$
+ sjmp 00107$
+00220$:
+ cjne r2,#0x80,00221$
+ sjmp 00106$
+00221$:
+; ../../../include/ztex-isr.h:138: case 0x80 :
+ cjne r2,#0x81,00109$
+ sjmp 00108$
+00106$:
+; ../../../include/ztex-isr.h:139: EP0BUF[0] = EP0CS & bmBIT0;
+ mov dptr,#_EP0CS
+ movx a,@dptr
+ mov r2,a
+ anl ar2,#0x01
+ mov dptr,#_EP0BUF
+ mov a,r2
+ movx @dptr,a
+; ../../../include/ztex-isr.h:140: break;
+; ../../../include/ztex-isr.h:141: case 0x01 :
+ sjmp 00110$
+00107$:
+; ../../../include/ztex-isr.h:142: EP0BUF[0] = EP1OUTCS & bmBIT0;
+ mov dptr,#_EP1OUTCS
+ movx a,@dptr
+ mov r2,a
+ anl ar2,#0x01
+ mov dptr,#_EP0BUF
+ mov a,r2
+ movx @dptr,a
+; ../../../include/ztex-isr.h:143: break;
+; ../../../include/ztex-isr.h:144: case 0x81 :
+ sjmp 00110$
+00108$:
+; ../../../include/ztex-isr.h:145: EP0BUF[0] = EP1INCS & bmBIT0;
+ mov dptr,#_EP1INCS
+ movx a,@dptr
+ mov r2,a
+ anl ar2,#0x01
+ mov dptr,#_EP0BUF
+ mov a,r2
+ movx @dptr,a
+; ../../../include/ztex-isr.h:146: break;
+; ../../../include/ztex-isr.h:147: default:
+ sjmp 00110$
+00109$:
+; ../../../include/ztex-isr.h:148: EP0BUF[0] = EPXCS[ ((SETUPDAT[4] >> 1)-1) & 3 ] & bmBIT0;
+ mov dptr,#(_SETUPDAT + 0x0004)
+ movx a,@dptr
+ clr c
+ rrc a
+ dec a
+ anl a,#0x03
+ add a,#_EPXCS
+ mov dpl,a
+ clr a
+ addc a,#(_EPXCS >> 8)
+ mov dph,a
+ movx a,@dptr
+ mov r2,a
+ anl ar2,#0x01
+ mov dptr,#_EP0BUF
+ mov a,r2
+ movx @dptr,a
+; ../../../include/ztex-isr.h:150: }
+00110$:
+; ../../../include/ztex-isr.h:151: EP0BUF[1] = 0;
+ mov dptr,#(_EP0BUF + 0x0001)
+; ../../../include/ztex-isr.h:152: EP0BCH = 0;
+ clr a
+ movx @dptr,a
+ mov dptr,#_EP0BCH
+ movx @dptr,a
+; ../../../include/ztex-isr.h:153: EP0BCL = 2;
+ mov dptr,#_EP0BCL
+ mov a,#0x02
+ movx @dptr,a
+; ../../../include/ztex-isr.h:156: break;
+ ljmp 00160$
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+00112$:
+; ../../../include/ztex-isr.h:158: if ( SETUPDAT[0] == 2 && SETUPDAT[2] == 0 ) {
+ mov dptr,#_SETUPDAT
+ movx a,@dptr
+ mov r2,a
+ cjne r2,#0x02,00223$
+ sjmp 00224$
+00223$:
+ ljmp 00160$
+00224$:
+ mov dptr,#(_SETUPDAT + 0x0002)
+ movx a,@dptr
+ jz 00225$
+ ljmp 00160$
+00225$:
+; ../../../include/ztex-isr.h:159: switch ( SETUPDAT[4] ) {
+ mov dptr,#(_SETUPDAT + 0x0004)
+ movx a,@dptr
+ mov r2,a
+ jz 00114$
+ cjne r2,#0x01,00227$
+ sjmp 00115$
+00227$:
+ cjne r2,#0x80,00228$
+ sjmp 00114$
+00228$:
+; ../../../include/ztex-isr.h:161: case 0x80 :
+ cjne r2,#0x81,00117$
+ sjmp 00116$
+00114$:
+; ../../../include/ztex-isr.h:162: EP0CS &= ~bmBIT0;
+ mov dptr,#_EP0CS
+ movx a,@dptr
+ mov r2,a
+ anl a,#0xFE
+ movx @dptr,a
+; ../../../include/ztex-isr.h:163: break;
+ ljmp 00160$
+; ../../../include/ztex-isr.h:164: case 0x01 :
+00115$:
+; ../../../include/ztex-isr.h:165: EP1OUTCS &= ~bmBIT0;
+ mov dptr,#_EP1OUTCS
+ movx a,@dptr
+ mov r2,a
+ anl a,#0xFE
+ movx @dptr,a
+; ../../../include/ztex-isr.h:166: break;
+ ljmp 00160$
+; ../../../include/ztex-isr.h:167: case 0x81 :
+00116$:
+; ../../../include/ztex-isr.h:168: EP1INCS &= ~bmBIT0;
+ mov dptr,#_EP1INCS
+ movx a,@dptr
+ mov r2,a
+ anl a,#0xFE
+ movx @dptr,a
+; ../../../include/ztex-isr.h:169: break;
+ ljmp 00160$
+; ../../../include/ztex-isr.h:170: default:
+00117$:
+; ../../../include/ztex-isr.h:171: EPXCS[ ((SETUPDAT[4] >> 1)-1) & 3 ] &= ~bmBIT0;
+ mov dptr,#(_SETUPDAT + 0x0004)
+ movx a,@dptr
+ clr c
+ rrc a
+ dec a
+ anl a,#0x03
+ add a,#_EPXCS
+ mov r2,a
+ clr a
+ addc a,#(_EPXCS >> 8)
+ mov r3,a
+ mov dptr,#(_SETUPDAT + 0x0004)
+ movx a,@dptr
+ clr c
+ rrc a
+ dec a
+ anl a,#0x03
+ add a,#_EPXCS
+ mov dpl,a
+ clr a
+ addc a,#(_EPXCS >> 8)
+ mov dph,a
+ movx a,@dptr
+ mov r4,a
+ anl ar4,#0xFE
+ mov dpl,r2
+ mov dph,r3
+ mov a,r4
+ movx @dptr,a
+; ../../../include/ztex-isr.h:175: break;
+ ljmp 00160$
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+00122$:
+; ../../../include/ztex-isr.h:177: if ( SETUPDAT[0] == 2 && SETUPDAT[2] == 0 ) {
+ mov dptr,#_SETUPDAT
+ movx a,@dptr
+ mov r2,a
+ cjne r2,#0x02,00230$
+ sjmp 00231$
+00230$:
+ ljmp 00160$
+00231$:
+ mov dptr,#(_SETUPDAT + 0x0002)
+ movx a,@dptr
+ jz 00232$
+ ljmp 00160$
+00232$:
+; ../../../include/ztex-isr.h:178: switch ( SETUPDAT[4] ) {
+ mov dptr,#(_SETUPDAT + 0x0004)
+ movx a,@dptr
+ mov r2,a
+ jz 00124$
+ cjne r2,#0x01,00234$
+ sjmp 00125$
+00234$:
+ cjne r2,#0x80,00235$
+ sjmp 00124$
+00235$:
+; ../../../include/ztex-isr.h:180: case 0x80 :
+ cjne r2,#0x81,00127$
+ sjmp 00126$
+00124$:
+; ../../../include/ztex-isr.h:181: EP0CS |= bmBIT0;
+ mov dptr,#_EP0CS
+ movx a,@dptr
+ mov r2,a
+ orl a,#0x01
+ movx @dptr,a
+; ../../../include/ztex-isr.h:182: break;
+; ../../../include/ztex-isr.h:183: case 0x01 :
+ sjmp 00128$
+00125$:
+; ../../../include/ztex-isr.h:184: EP1OUTCS |= bmBIT0;
+ mov dptr,#_EP1OUTCS
+ movx a,@dptr
+ mov r2,a
+ orl a,#0x01
+ movx @dptr,a
+; ../../../include/ztex-isr.h:185: break;
+; ../../../include/ztex-isr.h:186: case 0x81 :
+ sjmp 00128$
+00126$:
+; ../../../include/ztex-isr.h:187: EP1INCS |= bmBIT0;
+ mov dptr,#_EP1INCS
+ movx a,@dptr
+ mov r2,a
+ orl a,#0x01
+ movx @dptr,a
+; ../../../include/ztex-isr.h:188: break;
+; ../../../include/ztex-isr.h:189: default:
+ sjmp 00128$
+00127$:
+; ../../../include/ztex-isr.h:190: EPXCS[ ((SETUPDAT[4] >> 1)-1) & 3 ] |= ~bmBIT0;
+ mov dptr,#(_SETUPDAT + 0x0004)
+ movx a,@dptr
+ clr c
+ rrc a
+ dec a
+ anl a,#0x03
+ add a,#_EPXCS
+ mov r2,a
+ clr a
+ addc a,#(_EPXCS >> 8)
+ mov r3,a
+ mov dptr,#(_SETUPDAT + 0x0004)
+ movx a,@dptr
+ clr c
+ rrc a
+ dec a
+ anl a,#0x03
+ add a,#_EPXCS
+ mov dpl,a
+ clr a
+ addc a,#(_EPXCS >> 8)
+ mov dph,a
+ movx a,@dptr
+ mov r4,a
+ orl ar4,#0xFE
+ mov dpl,r2
+ mov dph,r3
+ mov a,r4
+ movx @dptr,a
+; ../../../include/ztex-isr.h:192: }
+00128$:
+; ../../../include/ztex-isr.h:193: a = ( (SETUPDAT[4] & 0x80) >> 3 ) | (SETUPDAT[4] & 0x0f);
+ mov dptr,#(_SETUPDAT + 0x0004)
+ movx a,@dptr
+ anl a,#0x80
+ swap a
+ rl a
+ anl a,#0x1f
+ mov r2,a
+ mov dptr,#(_SETUPDAT + 0x0004)
+ movx a,@dptr
+ mov r3,a
+ mov a,#0x0F
+ anl a,r3
+ orl ar2,a
+; ../../../include/ztex-isr.h:194: TOGCTL = a;
+; ../../../include/ztex-isr.h:195: TOGCTL = a | bmBIT5;
+ mov dptr,#_TOGCTL
+ mov a,r2
+ movx @dptr,a
+ mov a,#0x20
+ orl a,r2
+ movx @dptr,a
+; ../../../include/ztex-isr.h:197: break;
+ ljmp 00160$
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+00132$:
+; ../../../include/ztex-isr.h:199: switch(SETUPDAT[3]) {
+ mov dptr,#(_SETUPDAT + 0x0003)
+ movx a,@dptr
+ mov r2,a
+ cjne r2,#0x01,00237$
+ sjmp 00133$
+00237$:
+ cjne r2,#0x02,00238$
+ sjmp 00134$
+00238$:
+ cjne r2,#0x03,00239$
+ sjmp 00138$
+00239$:
+ cjne r2,#0x06,00240$
+ ljmp 00145$
+00240$:
+ cjne r2,#0x07,00241$
+ ljmp 00146$
+00241$:
+ ljmp 00150$
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+00133$:
+; ../../../include/ztex-isr.h:201: SUDPTRH = MSB(&DeviceDescriptor);
+ mov r2,#_DeviceDescriptor
+ mov r3,#(_DeviceDescriptor >> 8)
+ mov dptr,#_SUDPTRH
+ mov a,r3
+ movx @dptr,a
+; ../../../include/ztex-isr.h:202: SUDPTRL = LSB(&DeviceDescriptor);
+ mov dptr,#_SUDPTRL
+ mov a,#_DeviceDescriptor
+ movx @dptr,a
+; ../../../include/ztex-isr.h:203: break;
+ ljmp 00160$
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+00134$:
+; ../../../include/ztex-isr.h:205: if (USBCS & bmBIT7) {
+ mov dptr,#_USBCS
+ movx a,@dptr
+ mov r2,a
+ jnb acc.7,00136$
+; ../../../include/ztex-isr.h:206: SUDPTRH = MSB(&HighSpeedConfigDescriptor);
+ mov r2,#_HighSpeedConfigDescriptor
+ mov r3,#(_HighSpeedConfigDescriptor >> 8)
+ mov dptr,#_SUDPTRH
+ mov a,r3
+ movx @dptr,a
+; ../../../include/ztex-isr.h:207: SUDPTRL = LSB(&HighSpeedConfigDescriptor);
+ mov dptr,#_SUDPTRL
+ mov a,#_HighSpeedConfigDescriptor
+ movx @dptr,a
+ ljmp 00160$
+00136$:
+; ../../../include/ztex-isr.h:210: SUDPTRH = MSB(&FullSpeedConfigDescriptor);
+ mov r2,#_FullSpeedConfigDescriptor
+ mov r3,#(_FullSpeedConfigDescriptor >> 8)
+ mov dptr,#_SUDPTRH
+ mov a,r3
+ movx @dptr,a
+; ../../../include/ztex-isr.h:211: SUDPTRL = LSB(&FullSpeedConfigDescriptor);
+ mov dptr,#_SUDPTRL
+ mov a,#_FullSpeedConfigDescriptor
+ movx @dptr,a
+; ../../../include/ztex-isr.h:213: break;
+ ljmp 00160$
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+00138$:
+; ../../../include/ztex-isr.h:215: switch (SETUPDAT[2]) {
+ mov dptr,#(_SETUPDAT + 0x0002)
+ movx a,@dptr
+ mov r2,a
+ cjne r2,#0x01,00243$
+ sjmp 00139$
+00243$:
+ cjne r2,#0x02,00244$
+ sjmp 00140$
+00244$:
+ cjne r2,#0x03,00245$
+ sjmp 00141$
+00245$:
+; ../../../include/ztex-isr.h:216: case 1:
+ cjne r2,#0x04,00143$
+ sjmp 00142$
+00139$:
+; ../../../include/ztex-isr.h:217: SEND_STRING_DESCRIPTOR(manufacturerString);
+ mov dpl,#_manufacturerString
+ mov r2,#_manufacturerString
+ mov r3,#(_manufacturerString >> 8)
+ mov _sendStringDescriptor_PARM_2,r3
+ mov _sendStringDescriptor_PARM_3,#0x05
+ lcall _sendStringDescriptor
+; ../../../include/ztex-isr.h:218: break;
+ ljmp 00160$
+; ../../../include/ztex-isr.h:219: case 2:
+00140$:
+; ../../../include/ztex-isr.h:220: SEND_STRING_DESCRIPTOR(productString);
+ mov dpl,#_productString
+ mov r2,#_productString
+ mov r3,#(_productString >> 8)
+ mov _sendStringDescriptor_PARM_2,r3
+ mov _sendStringDescriptor_PARM_3,#0x19
+ lcall _sendStringDescriptor
+; ../../../include/ztex-isr.h:221: break;
+ ljmp 00160$
+; ../../../include/ztex-isr.h:222: case 3:
+00141$:
+; ../../../include/ztex-isr.h:223: SEND_STRING_DESCRIPTOR(SN_STRING);
+ mov dpl,#_SN_STRING
+ mov r2,#_SN_STRING
+ mov r3,#(_SN_STRING >> 8)
+ mov _sendStringDescriptor_PARM_2,r3
+ mov _sendStringDescriptor_PARM_3,#0x0A
+ lcall _sendStringDescriptor
+; ../../../include/ztex-isr.h:224: break;
+ ljmp 00160$
+; ../../../include/ztex-isr.h:225: case 4:
+00142$:
+; ../../../include/ztex-isr.h:226: SEND_STRING_DESCRIPTOR(configurationString);
+ mov dpl,#_configurationString
+ mov r2,#_configurationString
+ mov r3,#(_configurationString >> 8)
+ mov _sendStringDescriptor_PARM_2,r3
+ mov _sendStringDescriptor_PARM_3,#0x0A
+ lcall _sendStringDescriptor
+; ../../../include/ztex-isr.h:227: break;
+ ljmp 00160$
+; ../../../include/ztex-isr.h:228: default:
+00143$:
+; ../../../include/ztex-isr.h:229: SUDPTRH = MSB(&EmptyStringDescriptor);
+ mov r2,#_EmptyStringDescriptor
+ mov r3,#(_EmptyStringDescriptor >> 8)
+ mov dptr,#_SUDPTRH
+ mov a,r3
+ movx @dptr,a
+; ../../../include/ztex-isr.h:230: SUDPTRL = LSB(&EmptyStringDescriptor);
+ mov dptr,#_SUDPTRL
+ mov a,#_EmptyStringDescriptor
+ movx @dptr,a
+; ../../../include/ztex-isr.h:233: break;
+ ljmp 00160$
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+00145$:
+; ../../../include/ztex-isr.h:235: SUDPTRH = MSB(&DeviceQualifierDescriptor);
+ mov r2,#_DeviceQualifierDescriptor
+ mov r3,#(_DeviceQualifierDescriptor >> 8)
+ mov dptr,#_SUDPTRH
+ mov a,r3
+ movx @dptr,a
+; ../../../include/ztex-isr.h:236: SUDPTRL = LSB(&DeviceQualifierDescriptor);
+ mov dptr,#_SUDPTRL
+ mov a,#_DeviceQualifierDescriptor
+ movx @dptr,a
+; ../../../include/ztex-isr.h:237: break;
+ ljmp 00160$
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+00146$:
+; ../../../include/ztex-isr.h:239: if (USBCS & bmBIT7) {
+ mov dptr,#_USBCS
+ movx a,@dptr
+ mov r2,a
+ jnb acc.7,00148$
+; ../../../include/ztex-isr.h:240: SUDPTRH = MSB(&FullSpeedConfigDescriptor);
+ mov r2,#_FullSpeedConfigDescriptor
+ mov r3,#(_FullSpeedConfigDescriptor >> 8)
+ mov dptr,#_SUDPTRH
+ mov a,r3
+ movx @dptr,a
+; ../../../include/ztex-isr.h:241: SUDPTRL = LSB(&FullSpeedConfigDescriptor);
+ mov dptr,#_SUDPTRL
+ mov a,#_FullSpeedConfigDescriptor
+ movx @dptr,a
+ ljmp 00160$
+00148$:
+; ../../../include/ztex-isr.h:244: SUDPTRH = MSB(&HighSpeedConfigDescriptor);
+ mov r2,#_HighSpeedConfigDescriptor
+ mov r3,#(_HighSpeedConfigDescriptor >> 8)
+ mov dptr,#_SUDPTRH
+ mov a,r3
+ movx @dptr,a
+; ../../../include/ztex-isr.h:245: SUDPTRL = LSB(&HighSpeedConfigDescriptor);
+ mov dptr,#_SUDPTRL
+ mov a,#_HighSpeedConfigDescriptor
+ movx @dptr,a
+; ../../../include/ztex-isr.h:247: break;
+; ../../../include/ztex-isr.h:248: default:
+ sjmp 00160$
+00150$:
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ mov dptr,#_EP0CS
+ movx a,@dptr
+ mov r2,a
+ orl a,#0x01
+ movx @dptr,a
+; ../../../include/ztex-isr.h:251: break;
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ sjmp 00160$
+00152$:
+; ../../../include/ztex-isr.h:253: break;
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ sjmp 00160$
+00153$:
+ mov dptr,#_EP0BUF
+; ../../../include/ztex-isr.h:256: EP0BCH = 0;
+ clr a
+ movx @dptr,a
+ mov dptr,#_EP0BCH
+ movx @dptr,a
+; ../../../include/ztex-isr.h:257: EP0BCL = 1;
+ mov dptr,#_EP0BCL
+ mov a,#0x01
+ movx @dptr,a
+; ../../../include/ztex-isr.h:258: break;
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ sjmp 00160$
+00154$:
+; ../../../include/ztex-isr.h:260: resetToggleData();
+ lcall _resetToggleData
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ sjmp 00160$
+00155$:
+ mov dptr,#_EP0BUF
+; ../../../include/ztex-isr.h:264: EP0BCH = 0;
+ clr a
+ movx @dptr,a
+ mov dptr,#_EP0BCH
+ movx @dptr,a
+; ../../../include/ztex-isr.h:265: EP0BCL = 1;
+ mov dptr,#_EP0BCL
+ mov a,#0x01
+ movx @dptr,a
+; ../../../include/ztex-isr.h:266: break;
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ sjmp 00160$
+00156$:
+; ../../../include/ztex-isr.h:268: resetToggleData();
+ lcall _resetToggleData
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ sjmp 00160$
+00157$:
+; ../../../include/ztex-isr.h:271: if ( SETUPDAT[0] == 0x82 ) {
+ mov dptr,#_SETUPDAT
+ movx a,@dptr
+ mov r2,a
+ cjne r2,#0x82,00160$
+; ../../../include/ztex-isr.h:272: ISOFRAME_COUNTER[ ((SETUPDAT[4] >> 1)-1) & 3 ] = 0;
+ mov dptr,#(_SETUPDAT + 0x0004)
+ movx a,@dptr
+ clr c
+ rrc a
+ dec a
+ anl a,#0x03
+ add a,acc
+ add a,#_ISOFRAME_COUNTER
+ mov dpl,a
+ clr a
+ addc a,#(_ISOFRAME_COUNTER >> 8)
+ mov dph,a
+ clr a
+ movx @dptr,a
+ inc dptr
+ movx @dptr,a
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ mov dptr,#_USBFRAMEL
+ movx a,@dptr
+ mov dptr,#_EP0BUF
+ movx @dptr,a
+; ../../../include/ztex-isr.h:274: EP0BUF[1] = USBFRAMEH;
+ mov dptr,#_USBFRAMEH
+ movx a,@dptr
+ mov r2,a
+ mov dptr,#(_EP0BUF + 0x0001)
+ movx @dptr,a
+; ../../../include/ztex-isr.h:275: EP0BCH = 0;
+ mov dptr,#_EP0BCH
+ clr a
+ movx @dptr,a
+; ../../../include/ztex-isr.h:276: EP0BCL = 2;
+ mov dptr,#_EP0BCL
+ mov a,#0x02
+ movx @dptr,a
+; ../../../include/ztex-isr.h:280: }
+00160$:
+; ../../../include/ztex-isr.h:283: switch ( bmRequestType ) {
+ mov dptr,#_bmRequestType
+ movx a,@dptr
+ mov r2,a
+ cjne r2,#0x40,00250$
+ ljmp 00168$
+00250$:
+ cjne r2,#0xC0,00251$
+ sjmp 00252$
+00251$:
+ ljmp 00172$
+00252$:
+; ../../../include/ztex-isr.h:285: ep0_payload_remaining = (SETUPDAT[7] << 8) | SETUPDAT[6];
+ mov dptr,#(_SETUPDAT + 0x0007)
+ movx a,@dptr
+ mov r3,a
+ mov r2,#0x00
+ mov dptr,#(_SETUPDAT + 0x0006)
+ movx a,@dptr
+ mov r4,a
+ mov r5,#0x00
+ mov dptr,#_ep0_payload_remaining
+ mov a,r4
+ orl a,r2
+ movx @dptr,a
+ mov a,r5
+ orl a,r3
+ inc dptr
+ movx @dptr,a
+; ../../../include/ztex-isr.h:286: ep0_payload_update();
+ lcall _ep0_payload_update
+; ../../../include/ztex-isr.h:288: switch ( bRequest ) {
+ mov dptr,#_bRequest
+ movx a,@dptr
+ mov r2,a
+ cjne r2,#0x22,00253$
+ sjmp 00162$
+00253$:
+ cjne r2,#0x28,00254$
+ ljmp 00165$
+00254$:
+ cjne r2,#0x38,00255$
+ sjmp 00163$
+00255$:
+ cjne r2,#0x3A,00256$
+ sjmp 00164$
+00256$:
+ ljmp 00166$
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+00162$:
+; ../../../include/ztex-isr.h:290: SUDPTRCTL = 0;
+ mov dptr,#_SUDPTRCTL
+; ../../../include/ztex-isr.h:291: EP0BCH = 0;
+ clr a
+ movx @dptr,a
+ mov dptr,#_EP0BCH
+ movx @dptr,a
+; ../../../include/ztex-isr.h:292: EP0BCL = ZTEX_DESCRIPTOR_LEN;
+ mov dptr,#_EP0BCL
+ mov a,#0x28
+ movx @dptr,a
+; ../../../include/ztex-isr.h:293: SUDPTRH = MSB(ZTEX_DESCRIPTOR_OFFS);
+ mov dptr,#_SUDPTRH
+ clr a
+ movx @dptr,a
+; ../../../include/ztex-isr.h:294: SUDPTRL = LSB(ZTEX_DESCRIPTOR_OFFS);
+ mov dptr,#_SUDPTRL
+ mov a,#0x6C
+ movx @dptr,a
+; ../../../include/ztex-isr.h:295: break;
+ ljmp 00172$
+; ../../../include/ztex-conf.h:90: case $0:
+00163$:
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ mov dptr,#(_SETUPDAT + 0x0003)
+ movx a,@dptr
+ mov r3,a
+ mov r2,#0x00
+ mov dptr,#(_SETUPDAT + 0x0002)
+ movx a,@dptr
+ mov r4,a
+ mov r5,#0x00
+ mov dptr,#_eeprom_addr
+ mov a,r4
+ orl a,r2
+ movx @dptr,a
+ mov a,r5
+ orl a,r3
+ inc dptr
+ movx @dptr,a
+; ../../../include/ztex-eeprom.h:216: EP0BCH = 0;
+ mov dptr,#_EP0BCH
+ clr a
+ movx @dptr,a
+; ../../../include/ztex-eeprom.h:217: EP0BCL = eeprom_read_ep0();
+ lcall _eeprom_read_ep0
+ mov a,dpl
+ mov dptr,#_EP0BCL
+ movx @dptr,a
+; ../../../include/ztex-conf.h:92: break;
+ ljmp 00172$
+; ../../../include/ztex-conf.h:90: case $0:
+00164$:
+; ../../../include/ztex-eeprom.h:244: EP0BUF[0] = LSB(eeprom_write_bytes);
+ mov dptr,#_eeprom_write_bytes
+ movx a,@dptr
+ mov r2,a
+ inc dptr
+ movx a,@dptr
+ mov r3,a
+ mov ar4,r2
+ mov dptr,#_EP0BUF
+ mov a,r4
+ movx @dptr,a
+; ../../../include/ztex-eeprom.h:245: EP0BUF[1] = MSB(eeprom_write_bytes);
+ mov ar2,r3
+ mov dptr,#(_EP0BUF + 0x0001)
+ mov a,r2
+ movx @dptr,a
+; ../../../include/ztex-eeprom.h:246: EP0BUF[2] = eeprom_write_checksum;
+ mov dptr,#_eeprom_write_checksum
+ movx a,@dptr
+ mov dptr,#(_EP0BUF + 0x0002)
+ movx @dptr,a
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ mov _eeprom_select_PARM_2,#0x01
+ mov dpl,#0x00
+ lcall _eeprom_select
+ mov r2,dpl
+ mov dptr,#(_EP0BUF + 0x0003)
+ mov a,r2
+ movx @dptr,a
+; ../../../include/ztex-eeprom.h:248: EP0BCH = 0;
+ mov dptr,#_EP0BCH
+ clr a
+ movx @dptr,a
+; ../../../include/ztex-eeprom.h:249: EP0BCL = 4;
+ mov dptr,#_EP0BCL
+ mov a,#0x04
+ movx @dptr,a
+; ../../../include/ztex-conf.h:92: break;
+; ../../../include/ztex-conf.h:90: case $0:
+ sjmp 00172$
+00165$:
+; ../../../include/ztex-debug.h:82: debug_read_addr = (__xdata BYTE*)&debug_counter;
+ mov dptr,#_debug_read_addr
+ mov a,#_debug_counter
+ movx @dptr,a
+ inc dptr
+ mov a,#(_debug_counter >> 8)
+ movx @dptr,a
+; ../../../include/ztex-debug.h:83: EP0BCH = 0;
+ mov dptr,#_EP0BCH
+ clr a
+ movx @dptr,a
+; ../../../include/ztex-debug.h:84: EP0BCL = debug_read_ep0();
+ lcall _debug_read_ep0
+ mov a,dpl
+ mov dptr,#_EP0BCL
+ movx @dptr,a
+; ../../../include/ztex-conf.h:92: break;
+; ../../../include/ztex-isr.h:297: default:
+ sjmp 00172$
+00166$:
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ mov dptr,#_EP0CS
+ movx a,@dptr
+ mov r2,a
+ orl a,#0x01
+ movx @dptr,a
+; ../../../include/ztex-isr.h:300: break;
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ sjmp 00172$
+00168$:
+; ../../../include/ztex-isr.h:305: if ( SETUPDAT[7]!=0 || SETUPDAT[6]!=0 ) {
+ mov dptr,#(_SETUPDAT + 0x0007)
+ movx a,@dptr
+ jnz 00169$
+ mov dptr,#(_SETUPDAT + 0x0006)
+ movx a,@dptr
+ jz 00170$
+00169$:
+; ../../../include/ztex-isr.h:306: ep0_vendor_cmd_setup = 1;
+ mov dptr,#_ep0_vendor_cmd_setup
+ mov a,#0x01
+ movx @dptr,a
+; ../../../include/ztex-isr.h:307: EP0BCL = 0;
+ mov dptr,#_EP0BCL
+ clr a
+ movx @dptr,a
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ anl _EXIF,#0xEF
+ mov dptr,#_USBIRQ
+ mov a,#0x01
+ movx @dptr,a
+ sjmp 00173$
+00170$:
+ lcall _ep0_vendor_cmd_su
+; ../../../include/ztex-isr.h:313: EP0BCL = 0;
+ mov dptr,#_EP0BCL
+ clr a
+ movx @dptr,a
+; ../../../include/ztex-isr.h:315: }
+00172$:
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ anl _EXIF,#0xEF
+ mov dptr,#_USBIRQ
+ mov a,#0x01
+ movx @dptr,a
+ mov dptr,#_EP0CS
+ movx a,@dptr
+ mov r2,a
+ orl a,#0x80
+ movx @dptr,a
+00173$:
+ pop psw
+ pop (0+1)
+ pop (0+0)
+ pop (0+7)
+ pop (0+6)
+ pop (0+5)
+ pop (0+4)
+ pop (0+3)
+ pop (0+2)
+ pop dph
+ pop dpl
+ pop b
+ pop acc
+ pop bits
+ reti
+;------------------------------------------------------------
+;Allocation info for local variables in function 'SOF_ISR'
+;------------------------------------------------------------
+;------------------------------------------------------------
+; ../../../include/ztex-isr.h:325: void SOF_ISR() interrupt
+; -----------------------------------------
+; function SOF_ISR
+; -----------------------------------------
+_SOF_ISR:
+ push acc
+ push dpl
+ push dph
+; ../../../include/ztex-isr.h:327: EXIF &= ~bmBIT4;
+ anl _EXIF,#0xEF
+; ../../../include/ztex-isr.h:328: USBIRQ = bmBIT1;
+ mov dptr,#_USBIRQ
+ mov a,#0x02
+ movx @dptr,a
+ pop dph
+ pop dpl
+ pop acc
+ reti
+; eliminated unneeded push/pop psw
+; eliminated unneeded push/pop b
+;------------------------------------------------------------
+;Allocation info for local variables in function 'SUTOK_ISR'
+;------------------------------------------------------------
+;------------------------------------------------------------
+; ../../../include/ztex-isr.h:334: void SUTOK_ISR() interrupt
+; -----------------------------------------
+; function SUTOK_ISR
+; -----------------------------------------
+_SUTOK_ISR:
+ push acc
+ push dpl
+ push dph
+; ../../../include/ztex-isr.h:336: EXIF &= ~bmBIT4;
+ anl _EXIF,#0xEF
+; ../../../include/ztex-isr.h:337: USBIRQ = bmBIT2;
+ mov dptr,#_USBIRQ
+ mov a,#0x04
+ movx @dptr,a
+ pop dph
+ pop dpl
+ pop acc
+ reti
+; eliminated unneeded push/pop psw
+; eliminated unneeded push/pop b
+;------------------------------------------------------------
+;Allocation info for local variables in function 'SUSP_ISR'
+;------------------------------------------------------------
+;------------------------------------------------------------
+; ../../../include/ztex-isr.h:343: void SUSP_ISR() interrupt
+; -----------------------------------------
+; function SUSP_ISR
+; -----------------------------------------
+_SUSP_ISR:
+ push acc
+ push dpl
+ push dph
+; ../../../include/ztex-isr.h:345: EXIF &= ~bmBIT4;
+ anl _EXIF,#0xEF
+; ../../../include/ztex-isr.h:346: USBIRQ = bmBIT3;
+ mov dptr,#_USBIRQ
+ mov a,#0x08
+ movx @dptr,a
+ pop dph
+ pop dpl
+ pop acc
+ reti
+; eliminated unneeded push/pop psw
+; eliminated unneeded push/pop b
+;------------------------------------------------------------
+;Allocation info for local variables in function 'URES_ISR'
+;------------------------------------------------------------
+;------------------------------------------------------------
+; ../../../include/ztex-isr.h:352: void URES_ISR() interrupt
+; -----------------------------------------
+; function URES_ISR
+; -----------------------------------------
+_URES_ISR:
+ push acc
+ push dpl
+ push dph
+; ../../../include/ztex-isr.h:354: EXIF &= ~bmBIT4;
+ anl _EXIF,#0xEF
+; ../../../include/ztex-isr.h:355: USBIRQ = bmBIT4;
+ mov dptr,#_USBIRQ
+ mov a,#0x10
+ movx @dptr,a
+ pop dph
+ pop dpl
+ pop acc
+ reti
+; eliminated unneeded push/pop psw
+; eliminated unneeded push/pop b
+;------------------------------------------------------------
+;Allocation info for local variables in function 'HSGRANT_ISR'
+;------------------------------------------------------------
+;------------------------------------------------------------
+; ../../../include/ztex-isr.h:361: void HSGRANT_ISR() interrupt
+; -----------------------------------------
+; function HSGRANT_ISR
+; -----------------------------------------
+_HSGRANT_ISR:
+ push acc
+ push dpl
+ push dph
+; ../../../include/ztex-isr.h:363: EXIF &= ~bmBIT4;
+ anl _EXIF,#0xEF
+; ../../../include/ztex-isr.h:364: USBIRQ = bmBIT5;
+ mov dptr,#_USBIRQ
+ mov a,#0x20
+ movx @dptr,a
+ pop dph
+ pop dpl
+ pop acc
+ reti
+; eliminated unneeded push/pop psw
+; eliminated unneeded push/pop b
+;------------------------------------------------------------
+;Allocation info for local variables in function 'EP0ACK_ISR'
+;------------------------------------------------------------
+;------------------------------------------------------------
+; ../../../include/ztex-isr.h:370: void EP0ACK_ISR() interrupt
+; -----------------------------------------
+; function EP0ACK_ISR
+; -----------------------------------------
+_EP0ACK_ISR:
+ push acc
+ push dpl
+ push dph
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ anl _EXIF,#0xEF
+ mov dptr,#_USBIRQ
+ mov a,#0x40
+ movx @dptr,a
+ pop dph
+ pop dpl
+ pop acc
+ reti
+; eliminated unneeded push/pop psw
+; eliminated unneeded push/pop b
+;------------------------------------------------------------
+;Allocation info for local variables in function 'EP0IN_ISR'
+;------------------------------------------------------------
+;------------------------------------------------------------
+; ../../../include/ztex-isr.h:379: static void EP0IN_ISR () interrupt
+; -----------------------------------------
+; function EP0IN_ISR
+; -----------------------------------------
+_EP0IN_ISR:
+ push bits
+ push acc
+ push b
+ push dpl
+ push dph
+ push (0+2)
+ push (0+3)
+ push (0+4)
+ push (0+5)
+ push (0+6)
+ push (0+7)
+ push (0+0)
+ push (0+1)
+ push psw
+ mov psw,#0x00
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ clr _EUSB
+; ../../../include/ztex-isr.h:382: ep0_payload_update();
+ lcall _ep0_payload_update
+; ../../../include/ztex-isr.h:383: switch ( ep0_prev_setup_request ) {
+ mov dptr,#_ep0_prev_setup_request
+ movx a,@dptr
+ mov r2,a
+ cjne r2,#0x28,00111$
+ sjmp 00103$
+00111$:
+ cjne r2,#0x38,00112$
+ sjmp 00101$
+00112$:
+; ../../../include/ztex-conf.h:95: case $0:
+ cjne r2,#0x3A,00104$
+ sjmp 00105$
+00101$:
+; ../../../include/ztex-eeprom.h:219: EP0BCH = 0;
+ mov dptr,#_EP0BCH
+ clr a
+ movx @dptr,a
+; ../../../include/ztex-eeprom.h:220: EP0BCL = eeprom_read_ep0();
+ lcall _eeprom_read_ep0
+ mov a,dpl
+ mov dptr,#_EP0BCL
+ movx @dptr,a
+; ../../../include/ztex-conf.h:97: break;
+; ../../../include/ztex-conf.h:95: case $0:
+ sjmp 00105$
+00103$:
+; ../../../include/ztex-debug.h:86: EP0BCH = 0;
+ mov dptr,#_EP0BCH
+ clr a
+ movx @dptr,a
+; ../../../include/ztex-debug.h:87: EP0BCL = debug_read_ep0();
+ lcall _debug_read_ep0
+ mov a,dpl
+ mov dptr,#_EP0BCL
+ movx @dptr,a
+; ../../../include/ztex-conf.h:97: break;
+; ../../../include/ztex-isr.h:385: default:
+ sjmp 00105$
+00104$:
+; ../../../include/ztex-isr.h:386: EP0BCH = 0;
+ mov dptr,#_EP0BCH
+; ../../../include/ztex-isr.h:387: EP0BCL = 0;
+ clr a
+ movx @dptr,a
+ mov dptr,#_EP0BCL
+ movx @dptr,a
+; ../../../include/ztex-isr.h:388: }
+00105$:
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ anl _EXIF,#0xEF
+ mov dptr,#_EPIRQ
+ mov a,#0x01
+ movx @dptr,a
+; ../../../include/ztex-isr.h:391: EUSB = 1;
+ setb _EUSB
+ pop psw
+ pop (0+1)
+ pop (0+0)
+ pop (0+7)
+ pop (0+6)
+ pop (0+5)
+ pop (0+4)
+ pop (0+3)
+ pop (0+2)
+ pop dph
+ pop dpl
+ pop b
+ pop acc
+ pop bits
+ reti
+;------------------------------------------------------------
+;Allocation info for local variables in function 'EP0OUT_ISR'
+;------------------------------------------------------------
+;------------------------------------------------------------
+; ../../../include/ztex-isr.h:397: static void EP0OUT_ISR () interrupt
+; -----------------------------------------
+; function EP0OUT_ISR
+; -----------------------------------------
+_EP0OUT_ISR:
+ push bits
+ push acc
+ push b
+ push dpl
+ push dph
+ push (0+2)
+ push (0+3)
+ push (0+4)
+ push (0+5)
+ push (0+6)
+ push (0+7)
+ push (0+0)
+ push (0+1)
+ push psw
+ mov psw,#0x00
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ clr _EUSB
+; ../../../include/ztex-isr.h:400: if ( ep0_vendor_cmd_setup ) {
+ mov dptr,#_ep0_vendor_cmd_setup
+ movx a,@dptr
+ mov r2,a
+ jz 00102$
+; ../../../include/ztex-isr.h:401: ep0_vendor_cmd_setup = 0;
+ mov dptr,#_ep0_vendor_cmd_setup
+ clr a
+ movx @dptr,a
+; ../../../include/ztex-isr.h:402: ep0_payload_remaining = (SETUPDAT[7] << 8) | SETUPDAT[6];
+ mov dptr,#(_SETUPDAT + 0x0007)
+ movx a,@dptr
+ mov r3,a
+ mov r2,#0x00
+ mov dptr,#(_SETUPDAT + 0x0006)
+ movx a,@dptr
+ mov r4,a
+ mov r5,#0x00
+ mov dptr,#_ep0_payload_remaining
+ mov a,r4
+ orl a,r2
+ movx @dptr,a
+ mov a,r5
+ orl a,r3
+ inc dptr
+ movx @dptr,a
+; ../../../include/ztex-isr.h:403: ep0_vendor_cmd_su();
+ lcall _ep0_vendor_cmd_su
+00102$:
+; ../../../include/ztex-isr.h:406: ep0_payload_update();
+ lcall _ep0_payload_update
+; ../../../include/ztex-isr.h:408: switch ( ep0_prev_setup_request ) {
+ mov dptr,#_ep0_prev_setup_request
+ movx a,@dptr
+ mov r2,a
+ cjne r2,#0x39,00104$
+; ../../../include/ztex-eeprom.h:237: eeprom_write_ep0(EP0BCL);
+ mov dptr,#_EP0BCL
+ movx a,@dptr
+ mov dpl,a
+ lcall _eeprom_write_ep0
+; ../../../include/ztex-isr.h:410: }
+00104$:
+; ../../../include/ztex-isr.h:412: EP0BCL = 0;
+ mov dptr,#_EP0BCL
+ clr a
+ movx @dptr,a
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ anl _EXIF,#0xEF
+ mov dptr,#_EPIRQ
+ mov a,#0x02
+ movx @dptr,a
+; ../../../include/ztex-isr.h:416: if ( ep0_payload_remaining == 0 ) {
+ mov dptr,#_ep0_payload_remaining
+ movx a,@dptr
+ mov r2,a
+ inc dptr
+ movx a,@dptr
+ mov r3,a
+ orl a,r2
+ jnz 00106$
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ mov dptr,#_EP0CS
+ movx a,@dptr
+ mov r2,a
+ orl a,#0x80
+ movx @dptr,a
+00106$:
+; ../../../include/ztex-isr.h:419: EUSB = 1;
+ setb _EUSB
+ pop psw
+ pop (0+1)
+ pop (0+0)
+ pop (0+7)
+ pop (0+6)
+ pop (0+5)
+ pop (0+4)
+ pop (0+3)
+ pop (0+2)
+ pop dph
+ pop dpl
+ pop b
+ pop acc
+ pop bits
+ reti
+;------------------------------------------------------------
+;Allocation info for local variables in function 'EP1IN_ISR'
+;------------------------------------------------------------
+;------------------------------------------------------------
+; ../../../include/ztex-isr.h:426: void EP1IN_ISR() interrupt
+; -----------------------------------------
+; function EP1IN_ISR
+; -----------------------------------------
+_EP1IN_ISR:
+ push acc
+ push dpl
+ push dph
+; ../../../include/ztex-isr.h:428: EXIF &= ~bmBIT4;
+ anl _EXIF,#0xEF
+; ../../../include/ztex-isr.h:429: EPIRQ = bmBIT2;
+ mov dptr,#_EPIRQ
+ mov a,#0x04
+ movx @dptr,a
+ pop dph
+ pop dpl
+ pop acc
+ reti
+; eliminated unneeded push/pop psw
+; eliminated unneeded push/pop b
+;------------------------------------------------------------
+;Allocation info for local variables in function 'EP1OUT_ISR'
+;------------------------------------------------------------
+;------------------------------------------------------------
+; ../../../include/ztex-isr.h:436: void EP1OUT_ISR() interrupt
+; -----------------------------------------
+; function EP1OUT_ISR
+; -----------------------------------------
+_EP1OUT_ISR:
+ push acc
+ push dpl
+ push dph
+; ../../../include/ztex-isr.h:438: EXIF &= ~bmBIT4;
+ anl _EXIF,#0xEF
+; ../../../include/ztex-isr.h:439: EPIRQ = bmBIT3;
+ mov dptr,#_EPIRQ
+ mov a,#0x08
+ movx @dptr,a
+ pop dph
+ pop dpl
+ pop acc
+ reti
+; eliminated unneeded push/pop psw
+; eliminated unneeded push/pop b
+;------------------------------------------------------------
+;Allocation info for local variables in function 'EP2_ISR'
+;------------------------------------------------------------
+;------------------------------------------------------------
+; ../../../include/ztex-isr.h:445: void EP2_ISR() interrupt
+; -----------------------------------------
+; function EP2_ISR
+; -----------------------------------------
+_EP2_ISR:
+ push acc
+ push dpl
+ push dph
+; ../../../include/ztex-isr.h:447: EXIF &= ~bmBIT4;
+ anl _EXIF,#0xEF
+; ../../../include/ztex-isr.h:448: EPIRQ = bmBIT4;
+ mov dptr,#_EPIRQ
+ mov a,#0x10
+ movx @dptr,a
+ pop dph
+ pop dpl
+ pop acc
+ reti
+; eliminated unneeded push/pop psw
+; eliminated unneeded push/pop b
+;------------------------------------------------------------
+;Allocation info for local variables in function 'EP4_ISR'
+;------------------------------------------------------------
+;------------------------------------------------------------
+; ../../../include/ztex-isr.h:454: void EP4_ISR() interrupt
+; -----------------------------------------
+; function EP4_ISR
+; -----------------------------------------
+_EP4_ISR:
+ push acc
+ push dpl
+ push dph
+; ../../../include/ztex-isr.h:456: EXIF &= ~bmBIT4;
+ anl _EXIF,#0xEF
+; ../../../include/ztex-isr.h:457: EPIRQ = bmBIT5;
+ mov dptr,#_EPIRQ
+ mov a,#0x20
+ movx @dptr,a
+ pop dph
+ pop dpl
+ pop acc
+ reti
+; eliminated unneeded push/pop psw
+; eliminated unneeded push/pop b
+;------------------------------------------------------------
+;Allocation info for local variables in function 'EP6_ISR'
+;------------------------------------------------------------
+;------------------------------------------------------------
+; ../../../include/ztex-isr.h:463: void EP6_ISR() interrupt
+; -----------------------------------------
+; function EP6_ISR
+; -----------------------------------------
+_EP6_ISR:
+ push acc
+ push dpl
+ push dph
+; ../../../include/ztex-isr.h:465: EXIF &= ~bmBIT4;
+ anl _EXIF,#0xEF
+; ../../../include/ztex-isr.h:466: EPIRQ = bmBIT6;
+ mov dptr,#_EPIRQ
+ mov a,#0x40
+ movx @dptr,a
+ pop dph
+ pop dpl
+ pop acc
+ reti
+; eliminated unneeded push/pop psw
+; eliminated unneeded push/pop b
+;------------------------------------------------------------
+;Allocation info for local variables in function 'EP8_ISR'
+;------------------------------------------------------------
+;------------------------------------------------------------
+; ../../../include/ztex-isr.h:472: void EP8_ISR() interrupt
+; -----------------------------------------
+; function EP8_ISR
+; -----------------------------------------
+_EP8_ISR:
+ push acc
+ push dpl
+ push dph
+; ../../../include/ztex-isr.h:474: EXIF &= ~bmBIT4;
+ anl _EXIF,#0xEF
+; ../../../include/ztex-isr.h:475: EPIRQ = bmBIT7;
+ mov dptr,#_EPIRQ
+ mov a,#0x80
+ movx @dptr,a
+ pop dph
+ pop dpl
+ pop acc
+ reti
+; eliminated unneeded push/pop psw
+; eliminated unneeded push/pop b
+;------------------------------------------------------------
+;Allocation info for local variables in function 'init_USB'
+;------------------------------------------------------------
+;------------------------------------------------------------
+; ../../../include/ztex.h:165: void init_USB ()
+; -----------------------------------------
+; function init_USB
+; -----------------------------------------
+_init_USB:
+; ../../../include/ztex.h:167: USBCS |= 0x08;
+ mov dptr,#_USBCS
+ movx a,@dptr
+ orl a,#0x08
+ movx @dptr,a
+; ../../../include/ztex.h:169: CPUCS = bmBIT4 | bmBIT1;
+ mov dptr,#_CPUCS
+ mov a,#0x12
+ movx @dptr,a
+; ../../../include/ztex.h:170: CKCON &= ~7;
+ anl _CKCON,#0xF8
+; ../../../include/ztex.h:191: EA = 0;
+ clr _EA
+; ../../../include/ztex.h:192: EUSB = 0;
+ clr _EUSB
+; ../../../include/ezintavecs.h:123: INT8VEC_USB.op=0x02;
+ mov dptr,#_INT8VEC_USB
+ mov a,#0x02
+ movx @dptr,a
+; ../../../include/ezintavecs.h:124: INT8VEC_USB.addrH = 0x01;
+ mov dptr,#(_INT8VEC_USB + 0x0001)
+ mov a,#0x01
+ movx @dptr,a
+; ../../../include/ezintavecs.h:125: INT8VEC_USB.addrL = 0xb8;
+ mov dptr,#(_INT8VEC_USB + 0x0002)
+ mov a,#0xB8
+ movx @dptr,a
+; ../../../include/ezintavecs.h:126: INTSETUP |= 8;
+ mov dptr,#_INTSETUP
+ movx a,@dptr
+ orl a,#0x08
+ movx @dptr,a
+; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ mov dptr,#_INTVEC_SUDAV
+ mov a,#0x02
+ movx @dptr,a
+; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ mov r2,#_SUDAV_ISR
+ mov r3,#(_SUDAV_ISR >> 8)
+ mov ar4,r3
+ mov dptr,#(_INTVEC_SUDAV + 0x0001)
+ mov a,r4
+ movx @dptr,a
+; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ mov dptr,#(_INTVEC_SUDAV + 0x0002)
+ mov a,r2
+ movx @dptr,a
+; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ mov dptr,#_INTVEC_SOF
+ mov a,#0x02
+ movx @dptr,a
+; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ mov r2,#_SOF_ISR
+ mov r3,#(_SOF_ISR >> 8)
+ mov ar4,r3
+ mov dptr,#(_INTVEC_SOF + 0x0001)
+ mov a,r4
+ movx @dptr,a
+; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ mov dptr,#(_INTVEC_SOF + 0x0002)
+ mov a,r2
+ movx @dptr,a
+; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ mov dptr,#_INTVEC_SUTOK
+ mov a,#0x02
+ movx @dptr,a
+; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ mov r2,#_SUTOK_ISR
+ mov r3,#(_SUTOK_ISR >> 8)
+ mov ar4,r3
+ mov dptr,#(_INTVEC_SUTOK + 0x0001)
+ mov a,r4
+ movx @dptr,a
+; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ mov dptr,#(_INTVEC_SUTOK + 0x0002)
+ mov a,r2
+ movx @dptr,a
+; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ mov dptr,#_INTVEC_SUSPEND
+ mov a,#0x02
+ movx @dptr,a
+; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ mov r2,#_SUSP_ISR
+ mov r3,#(_SUSP_ISR >> 8)
+ mov ar4,r3
+ mov dptr,#(_INTVEC_SUSPEND + 0x0001)
+ mov a,r4
+ movx @dptr,a
+; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ mov dptr,#(_INTVEC_SUSPEND + 0x0002)
+ mov a,r2
+ movx @dptr,a
+; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ mov dptr,#_INTVEC_USBRESET
+ mov a,#0x02
+ movx @dptr,a
+; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ mov r2,#_URES_ISR
+ mov r3,#(_URES_ISR >> 8)
+ mov ar4,r3
+ mov dptr,#(_INTVEC_USBRESET + 0x0001)
+ mov a,r4
+ movx @dptr,a
+; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ mov dptr,#(_INTVEC_USBRESET + 0x0002)
+ mov a,r2
+ movx @dptr,a
+; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ mov dptr,#_INTVEC_HISPEED
+ mov a,#0x02
+ movx @dptr,a
+; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ mov r2,#_HSGRANT_ISR
+ mov r3,#(_HSGRANT_ISR >> 8)
+ mov ar4,r3
+ mov dptr,#(_INTVEC_HISPEED + 0x0001)
+ mov a,r4
+ movx @dptr,a
+; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ mov dptr,#(_INTVEC_HISPEED + 0x0002)
+ mov a,r2
+ movx @dptr,a
+; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ mov dptr,#_INTVEC_EP0ACK
+ mov a,#0x02
+ movx @dptr,a
+; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ mov r2,#_EP0ACK_ISR
+ mov r3,#(_EP0ACK_ISR >> 8)
+ mov ar4,r3
+ mov dptr,#(_INTVEC_EP0ACK + 0x0001)
+ mov a,r4
+ movx @dptr,a
+; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ mov dptr,#(_INTVEC_EP0ACK + 0x0002)
+ mov a,r2
+ movx @dptr,a
+; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ mov dptr,#_INTVEC_EP0IN
+ mov a,#0x02
+ movx @dptr,a
+; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ mov r2,#_EP0IN_ISR
+ mov r3,#(_EP0IN_ISR >> 8)
+ mov ar4,r3
+ mov dptr,#(_INTVEC_EP0IN + 0x0001)
+ mov a,r4
+ movx @dptr,a
+; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ mov dptr,#(_INTVEC_EP0IN + 0x0002)
+ mov a,r2
+ movx @dptr,a
+; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ mov dptr,#_INTVEC_EP0OUT
+ mov a,#0x02
+ movx @dptr,a
+; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ mov r2,#_EP0OUT_ISR
+ mov r3,#(_EP0OUT_ISR >> 8)
+ mov ar4,r3
+ mov dptr,#(_INTVEC_EP0OUT + 0x0001)
+ mov a,r4
+ movx @dptr,a
+; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ mov dptr,#(_INTVEC_EP0OUT + 0x0002)
+ mov a,r2
+ movx @dptr,a
+; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ mov dptr,#_INTVEC_EP1IN
+ mov a,#0x02
+ movx @dptr,a
+; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ mov r2,#_EP1IN_ISR
+ mov r3,#(_EP1IN_ISR >> 8)
+ mov ar4,r3
+ mov dptr,#(_INTVEC_EP1IN + 0x0001)
+ mov a,r4
+ movx @dptr,a
+; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ mov dptr,#(_INTVEC_EP1IN + 0x0002)
+ mov a,r2
+ movx @dptr,a
+; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ mov dptr,#_INTVEC_EP1OUT
+ mov a,#0x02
+ movx @dptr,a
+; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ mov r2,#_EP1OUT_ISR
+ mov r3,#(_EP1OUT_ISR >> 8)
+ mov ar4,r3
+ mov dptr,#(_INTVEC_EP1OUT + 0x0001)
+ mov a,r4
+ movx @dptr,a
+; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ mov dptr,#(_INTVEC_EP1OUT + 0x0002)
+ mov a,r2
+ movx @dptr,a
+; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ mov dptr,#_INTVEC_EP2
+ mov a,#0x02
+ movx @dptr,a
+; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ mov r2,#_EP2_ISR
+ mov r3,#(_EP2_ISR >> 8)
+ mov ar4,r3
+ mov dptr,#(_INTVEC_EP2 + 0x0001)
+ mov a,r4
+ movx @dptr,a
+; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ mov dptr,#(_INTVEC_EP2 + 0x0002)
+ mov a,r2
+ movx @dptr,a
+; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ mov dptr,#_INTVEC_EP4
+ mov a,#0x02
+ movx @dptr,a
+; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ mov r2,#_EP4_ISR
+ mov r3,#(_EP4_ISR >> 8)
+ mov ar4,r3
+ mov dptr,#(_INTVEC_EP4 + 0x0001)
+ mov a,r4
+ movx @dptr,a
+; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ mov dptr,#(_INTVEC_EP4 + 0x0002)
+ mov a,r2
+ movx @dptr,a
+; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ mov dptr,#_INTVEC_EP6
+ mov a,#0x02
+ movx @dptr,a
+; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ mov r2,#_EP6_ISR
+ mov r3,#(_EP6_ISR >> 8)
+ mov ar4,r3
+ mov dptr,#(_INTVEC_EP6 + 0x0001)
+ mov a,r4
+ movx @dptr,a
+; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ mov dptr,#(_INTVEC_EP6 + 0x0002)
+ mov a,r2
+ movx @dptr,a
+; ../../../include/ezintavecs.h:115: $0.op=0x02;
+ mov dptr,#_INTVEC_EP8
+ mov a,#0x02
+ movx @dptr,a
+; ../../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
+ mov r2,#_EP8_ISR
+ mov r3,#(_EP8_ISR >> 8)
+ mov ar4,r3
+ mov dptr,#(_INTVEC_EP8 + 0x0001)
+ mov a,r4
+ movx @dptr,a
+; ../../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
+ mov dptr,#(_INTVEC_EP8 + 0x0002)
+ mov a,r2
+ movx @dptr,a
+; ../../../include/ztex.h:213: EXIF &= ~bmBIT4;
+ anl _EXIF,#0xEF
+; ../../../include/ztex.h:214: USBIRQ = 0x7f;
+ mov dptr,#_USBIRQ
+ mov a,#0x7F
+ movx @dptr,a
+; ../../../include/ztex.h:215: USBIE |= 0x7f;
+ mov dptr,#_USBIE
+ movx a,@dptr
+ mov r2,a
+ orl a,#0x7F
+ movx @dptr,a
+; ../../../include/ztex.h:216: EPIRQ = 0xff;
+ mov dptr,#_EPIRQ
+ mov a,#0xFF
+ movx @dptr,a
+; ../../../include/ztex.h:217: EPIE = 0xff;
+ mov dptr,#_EPIE
+ mov a,#0xFF
+ movx @dptr,a
+; ../../../include/ztex.h:219: EUSB = 1;
+ setb _EUSB
+; ../../../include/ztex.h:220: EA = 1;
+ setb _EA
+; ../../../include/ztex.h:154: EP$0CFG = bmBIT7 | bmBIT5;
+ mov dptr,#_EP1INCFG
+ mov a,#0xA0
+ movx @dptr,a
+; ../../../include/ezregs.h:46: _endasm;
+
+ nop
+ nop
+ nop
+ nop
+
+; ../../../include/ztex.h:154: EP$0CFG = bmBIT7 | bmBIT5;
+ mov dptr,#_EP1OUTCFG
+ mov a,#0xA0
+ movx @dptr,a
+; ../../../include/ezregs.h:46: _endasm;
+
+ nop
+ nop
+ nop
+ nop
+
+; ../../../include/ztex.h:149: ;
+ mov dptr,#_EP2CFG
+ clr a
+ movx @dptr,a
+; ../../../include/ezregs.h:46: _endasm;
+
+ nop
+ nop
+ nop
+ nop
+
+; ../../../include/ztex.h:149: ;
+ mov dptr,#_EP4CFG
+ clr a
+ movx @dptr,a
+; ../../../include/ezregs.h:46: _endasm;
+
+ nop
+ nop
+ nop
+ nop
+
+; ../../../include/ztex.h:149: ;
+ mov dptr,#_EP6CFG
+ clr a
+ movx @dptr,a
+; ../../../include/ezregs.h:46: _endasm;
+
+ nop
+ nop
+ nop
+ nop
+
+; ../../../include/ztex.h:149: ;
+ mov dptr,#_EP8CFG
+ clr a
+ movx @dptr,a
+; ../../../include/ezregs.h:46: _endasm;
+
+ nop
+ nop
+ nop
+ nop
+
+; ../../../include/ztex.h:236: debug_init();
+ lcall _debug_init
+; ../../../include/ztex.h:239: USBCS |= bmBIT7 | bmBIT1;
+ mov dptr,#_USBCS
+ movx a,@dptr
+ orl a,#0x82
+ movx @dptr,a
+; ../../../include/ztex.h:240: wait(250);
+ mov dptr,#0x00FA
+ lcall _wait
+; ../../../include/ztex.h:241: USBCS &= ~0x08;
+ mov dptr,#_USBCS
+ movx a,@dptr
+ anl a,#0xF7
+ movx @dptr,a
+ ret
+;------------------------------------------------------------
+;Allocation info for local variables in function 'main'
+;------------------------------------------------------------
+;i Allocated to registers
+;b Allocated to registers r4
+;------------------------------------------------------------
+; debug.c:32: void main(void)
+; -----------------------------------------
+; function main
+; -----------------------------------------
+_main:
+; debug.c:38: init_USB();
+ lcall _init_USB
+; debug.c:41: while (1) {
+ mov r2,#0x00
+ mov r3,#0x00
+00102$:
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ mov ar4,r2
+ mov dptr,#_debug_msg_buf
+ mov a,r4
+ movx @dptr,a
+; debug.c:44: debug_msg_buf[1] = i >> 8;
+ mov ar4,r3
+ mov dptr,#(_debug_msg_buf + 0x0001)
+ mov a,r4
+ movx @dptr,a
+; ../../../include/ztex-conf.h:30: ][#noexpand[!dnapxeon!]//$0!dnapxeon!
+ push ar2
+ push ar3
+ lcall _debug_add_msg
+ pop ar3
+ pop ar2
+; debug.c:46: i+=1;
+ inc r2
+ cjne r2,#0x00,00113$
+ inc r3
+00113$:
+; debug.c:30: #include[ztex.h]
+ mov r4,#0x00
+00104$:
+ cjne r4,#0x64,00114$
+00114$:
+ jnc 00102$
+ mov dptr,#_debug_stack_ptr
+ movx a,@dptr
+ mov r5,a
+ inc dptr
+ movx a,@dptr
+ mov r6,a
+ mov dpl,r5
+ mov dph,r6
+ inc dptr
+ inc dptr
+ mov a,r4
+ movx @dptr,a
+ mov dptr,#0x000A
+ push ar2
+ push ar3
+ push ar4
+ lcall _wait
+ pop ar4
+ pop ar3
+ pop ar2
+ inc r4
+ sjmp 00104$
+ .area CSEG (CODE)
+ .area CONST (CODE)
+_manufacturerString:
+ .ascii "ZTEX"
+ .db 0x00
+_productString:
+ .ascii "debug for EZ-USB devices"
+ .db 0x00
+_configurationString:
+ .ascii "(unknown)"
+ .db 0x00
+_PadByte:
+ .db #0x00
+_DeviceDescriptor:
+ .db #0x12
+ .db #0x01
+ .db #0x00
+ .db #0x02
+ .db #0xFF
+ .db #0xFF
+ .db #0xFF
+ .db #0x40
+ .db #0x1A
+ .db #0x22
+ .db #0x00
+ .db #0x01
+ .db #0x00
+ .db #0x00
+ .db #0x01
+ .db #0x02
+ .db #0x03
+ .db #0x01
+_DeviceQualifierDescriptor:
+ .db #0x0A
+ .db #0x06
+ .db #0x00
+ .db #0x02
+ .db #0xFF
+ .db #0xFF
+ .db #0xFF
+ .db #0x40
+ .db #0x01
+ .db #0x00
+_HighSpeedConfigDescriptor:
+ .db #0x09
+ .db #0x02
+ .db #0x20
+ .db #0x00
+ .db #0x01
+ .db #0x01
+ .db #0x04
+ .db #0xC0
+ .db #0x32
+ .db #0x09
+ .db #0x04
+ .db #0x00
+ .db #0x00
+ .db #0x02
+ .db #0xFF
+ .db #0xFF
+ .db #0xFF
+ .db #0x00
+ .db #0x07
+ .db #0x05
+ .db #0x81
+ .db #0x02
+ .db #0x00
+ .db #0x02
+ .db #0x00
+ .db #0x07
+ .db #0x05
+ .db #0x01
+ .db #0x02
+ .db #0x00
+ .db #0x02
+ .db #0x00
+_HighSpeedConfigDescriptor_PadByte:
+ .db #0x00
+ .db 0x00
+_FullSpeedConfigDescriptor:
+ .db #0x09
+ .db #0x02
+ .db #0x20
+ .db #0x00
+ .db #0x01
+ .db #0x01
+ .db #0x04
+ .db #0xC0
+ .db #0x32
+ .db #0x09
+ .db #0x04
+ .db #0x00
+ .db #0x00
+ .db #0x02
+ .db #0xFF
+ .db #0xFF
+ .db #0xFF
+ .db #0x00
+ .db #0x07
+ .db #0x05
+ .db #0x81
+ .db #0x02
+ .db #0x40
+ .db #0x00
+ .db #0x00
+ .db #0x07
+ .db #0x05
+ .db #0x01
+ .db #0x02
+ .db #0x40
+ .db #0x00
+ .db #0x00
+_FullSpeedConfigDescriptor_PadByte:
+ .db #0x00
+ .db 0x00
+_EmptyStringDescriptor:
+ .db #0x04
+ .db #0x03
+ .db #0x00
+ .db #0x00
+ .area XINIT (CODE)
+__xinit__ep0_payload_remaining:
+ .byte #0x00,#0x00
+__xinit__ep0_payload_transfer:
+ .db #0x00
+__xinit__ep0_prev_setup_request:
+ .db #0xFF
+__xinit__ep0_vendor_cmd_setup:
+ .db #0x00
+__xinit__ISOFRAME_COUNTER:
+ .byte #0x00,#0x00
+ .byte #0x00,#0x00
+ .byte #0x00,#0x00
+ .byte #0x00,#0x00
+ .area CABS (ABS,CODE)
Index: debug/Debug.java
===================================================================
--- debug/Debug.java (nonexistent)
+++ debug/Debug.java (revision 3)
@@ -0,0 +1,146 @@
+/*!
+ debug -- debug helper example
+ Copyright (C) 2009-2010 ZTEX e.K.
+ http://www.ztex.de
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 3 as
+ published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, see http://www.gnu.org/licenses/.
+!*/
+
+import java.io.*;
+import java.util.*;
+
+import ch.ntb.usb.*;
+
+import ztex.*;
+
+// *****************************************************************************
+// ******* ParameterException **************************************************
+// *****************************************************************************
+// Exception the prints a help message
+class ParameterException extends Exception {
+ public final static String helpMsg = new String (
+ "Parameters:\n"+
+ " -d Device Number (default: 0)\n" +
+ " -f Force uploads\n" +
+ " -p Print bus info\n" +
+ " -w Enable certain workarounds\n"+
+ " -h This help" );
+
+ public ParameterException (String msg) {
+ super( msg + "\n" + helpMsg );
+ }
+}
+
+// *****************************************************************************
+// ******* Test0 ***************************************************************
+// *****************************************************************************
+class Debug extends Ztex1v1 {
+
+// ******* Debug ***************************************************************
+// constructor
+ public Debug ( ZtexDevice1 pDev ) throws UsbException {
+ super ( pDev );
+ }
+
+// ******* main ****************************************************************
+ public static void main (String args[]) {
+
+ int devNum = 0;
+ boolean force = false;
+ boolean workarounds = false;
+
+ try {
+// init USB stuff
+ LibusbJava.usb_init();
+
+// scan the USB bus
+ ZtexScanBus1 bus = new ZtexScanBus1( ZtexDevice1.ztexVendorId, ZtexDevice1.ztexProductId, true, false, 1);
+ if ( bus.numberOfDevices() <= 0) {
+ System.err.println("No devices found");
+ System.exit(0);
+ }
+
+// scan the command line arguments
+ for (int i=0; i=args.length) throw new Exception();
+ devNum = Integer.parseInt( args[i] );
+ }
+ catch (Exception e) {
+ throw new ParameterException("Device number expected after -d");
+ }
+ }
+ else if ( args[i].equals("-f") ) {
+ force = true;
+ }
+ else if ( args[i].equals("-p") ) {
+ bus.printBus(System.out);
+ System.exit(0);
+ }
+ else if ( args[i].equals("-p") ) {
+ bus.printBus(System.out);
+ System.exit(0);
+ }
+ else if ( args[i].equals("-w") ) {
+ workarounds = true;
+ }
+ else if ( args[i].equals("-h") ) {
+ System.err.println(ParameterException.helpMsg);
+ System.exit(0);
+ }
+ else throw new ParameterException("Invalid Parameter: "+args[i]);
+ }
+
+
+// create the main class
+ Debug ztex = new Debug ( bus.device(devNum) );
+ ztex.certainWorkarounds = workarounds;
+
+// upload the firmware if necessary
+ if ( force || ! ztex.valid() || ! ztex.dev().productString().equals("debug for EZ-USB devices") ) {
+ System.out.println("Firmware upload time: " + ztex.uploadFirmware( "debug.ihx", force ) + " ms");
+ }
+
+// claim interface 0
+ ztex.trySetConfiguration ( 1 );
+ ztex.claimInterface ( 0 );
+
+// read string from stdin and write it to USB device
+ byte[] buf = new byte[30];
+ BufferedReader reader = new BufferedReader( new InputStreamReader( System.in ) );
+ for (int i=0; i<20; i++ ) {
+ try {
+ Thread.sleep( 2345 );
+ }
+ catch ( InterruptedException e) {
+ }
+ int j = ztex.debugReadMessages(false,buf);
+ System.out.print(ztex.debugNewMessages + " new messages: ");
+ for (int k=0; k 0 ) System.out.print(" ");
+ System.out.println( ((buf[k*3] & 255) | ((buf[k*3+1] & 255)<<8)) + (buf[k*3+2] & 255)*0.01 );
+ }
+ }
+
+// release interface 0
+ ztex.releaseInterface(0);
+
+ }
+ catch (Exception e) {
+ System.out.println("Error: "+e.getLocalizedMessage() );
+ }
+ }
+
+}
Index: debug/debug.tmp.c
===================================================================
--- debug/debug.tmp.c (nonexistent)
+++ debug/debug.tmp.c (revision 3)
@@ -0,0 +1,3561 @@
+#line 1 "debug.c"
+/*!
+ debug -- debug helper example
+ Copyright (C) 2009-2010 ZTEX e.K.
+ http://www.ztex.de
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 3 as
+ published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, see http://www.gnu.org/licenses/.
+!*/
+
+
+#line 1 "../../../include/ztex-conf.h"
+/*!
+ ZTEX Firmware Kit for EZ-USB Microcontrollers
+ Copyright (C) 2009-2010 ZTEX e.K.
+ http://www.ztex.de
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 3 as
+ published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, see http://www.gnu.org/licenses/.
+!*/
+
+/*
+ Configuration macros
+*/
+
+#line 25 "../../../include/ztex-conf.h"
+
+/*
+ Don't expand macros in comments
+*/
+#line 33 "../../../include/ztex-conf.h"
+
+/*
+ This macro defines the USB Vendor ID and USB Product ID (not the product ID
+ from the ZTEX descriptor). The Vendor ID must be purchased from the USB-IF
+ (http://www.usb.org).
+
+ The default vendor ID is the ZTEX vendor ID 0x221A, default product ID is
+ 0x100 which is assigned to ZTEX modules. These ID's can be shared by many
+ different products which are identified by the product ID of the ZTEX
+ descriptor. According to the USB-IF rules these ID's must not be used by
+ hardware which is not manufactured by ZTEX. (Of course, this ID's can be
+ used during the development process or for internal purposes.)
+
+ Please read the http://www.ztex.de/firmware-kit/usb_ids.e.html for more
+ informations about this topic.
+
+ Usage:
+ SET_VPID(,);
+*/
+#line 55 "../../../include/ztex-conf.h"
+
+/*
+ This macro is called before FPGA Firmware is reset, e.g. to save some
+ settings. After this macro is called the I/O ports are set to default
+ states in order to avoid damage during / after the FPGA configuration.
+ To append something to this macro use the following definition:
+#define[PRE_FPGA_RESET][PRE_FPGA_RESET
+...]
+*/
+#line 65 "../../../include/ztex-conf.h"
+
+
+/*
+ This macro is called after FPGA Firmware has been configured. This is
+ usually used to configure the I/O ports.
+ To append something to this macro use the following definition:
+#define[POST_FW_LOAD][POST_FW_LOAD
+...]
+*/
+#line 75 "../../../include/ztex-conf.h"
+
+
+
+/*
+ Add a vedor request for endpoint 0,
+
+ Usage:
+ ADD_EP0_VENDOR_REQUEST((,,
,,''));
+ Example:
+ ADD_EP0_VENDOR_REQUEST((0x33,,initHSFPGAConfiguration();,,));;
+...]
+*/
+#line 99 "../../../include/ztex-conf.h"
+
+
+/*
+ Add a vedor command for endpoint 0,
+
+ Usage:
+ ADD_EP0_VENDOR_COMMAND((,,,,''));
+ Example:
+ ADD_EP0_VENDOR_COMMAND((0x33,,initHSFPGAConfiguration();,,));;
+...]
+*/
+#line 122 "../../../include/ztex-conf.h"
+
+/*
+ This macro generates a EP0 stall and aborts the current loop. Stalls are usually used to indicate errors.
+*/
+#line 131 "../../../include/ztex-conf.h"
+
+
+/*
+ Endoint 1,2,4,5,8 configuration:
+
+ EP_CONFIG(,,,,,)
+ = 1IN | 1OUT | 2 | 4 | 6 | 8 Endpoint number
+ = 0 | 1 | 2 | 3 To which interface this endpoint belongs
+ = BULK | ISO | INT
+ = IN | OUT
+ = 512 | 1024
+ = 1 | 2 | 3 | 4
+ Example: EP_CONFIG(2,0,ISO,OUT,1024,4);
+ Important note: No spaces next to the commas
+
+
+ Endpoint 1 configuration:
+
+ These Endpoints are defined by default as bulk endpoints and are assigned to interface 0.
+ Endpoint size is always 64 bytes, but reported Endpoint size will be 512 bytes for USB 2.0 compliance.
+
+ These Endpoints can be redefined using EP_CONFIG or using:
+
+ EP1IN_CONFIG();
+ = 0 | 1 | 2 | 3 Interface to which EP1IN belongs; default: 0
+ EP1OUT_CONFIG();
+ = 0 | 1 | 2 | 3 Interface to which EP1OUT belongs; default: 0
+ EP1_CONFIG();
+ = 0 | 1 | 2 | 3 Interface to which EP1IN and EP1OUT belongs; default: 0
+
+ The following (maximum) configurations are possible:
+ EP2 EP4 EP6 EP8
+ 2x512 2x512 2x512 2x512
+ 2x512 2x512 4x512
+ 2x512 2x512 2x1024
+ 4x512 2x512 2x512
+ 4x512 4x512
+ 4x512 2x1024
+ 2x1024 2x512 2x512
+ 2x1024 4x512
+ 2x1024 2x1024
+ 3x512 3x512 2x512
+ 3x1024 2x512
+ 4x1024
+*/
+#line 215 "../../../include/ztex-conf.h"
+
+#line 220 "../../../include/ztex-conf.h"
+
+#line 176 "../../../include/ztex-conf.h"
+
+#line 176 "../../../include/ztex-conf.h"
+
+#line 223 "../../../include/ztex-conf.h"
+
+/*
+ ISO and INT Transactions per microframe:
+
+ Default value is 1 for all endpoints.
+
+ EP_PPMF(,)
+ = 1IN | 1OUT | 2 | 4 | 6 | 8 Endpoint
+ = 1 | 2 | 3 Transactions per microframe
+
+ Example: EP_PPMF(2,3);
+ Important note: No spaces next to the commas
+*/
+#line 251 "../../../include/ztex-conf.h"
+
+#line 236 "../../../include/ztex-conf.h"
+
+#line 236 "../../../include/ztex-conf.h"
+
+#line 236 "../../../include/ztex-conf.h"
+
+#line 236 "../../../include/ztex-conf.h"
+
+#line 236 "../../../include/ztex-conf.h"
+
+#line 236 "../../../include/ztex-conf.h"
+
+#line 258 "../../../include/ztex-conf.h"
+
+/*
+ Polling interval in microframes for INT transactions:
+
+ Default value is 1 for all endpoints.
+
+ EP_POLL(,)
+ = 1IN | 1OUT | 2 | 4 | 6 | 8 Endpoint
+ = 1 | 2 | 3 Polling interval
+
+ Example: EP_POLL(2,1);
+ Important note: No spaces next to the commas
+*/
+#line 281 "../../../include/ztex-conf.h"
+
+#line 271 "../../../include/ztex-conf.h"
+
+#line 271 "../../../include/ztex-conf.h"
+
+#line 271 "../../../include/ztex-conf.h"
+
+#line 271 "../../../include/ztex-conf.h"
+
+#line 271 "../../../include/ztex-conf.h"
+
+#line 271 "../../../include/ztex-conf.h"
+
+#line 288 "../../../include/ztex-conf.h"
+
+
+
+/*
+ Settings which depends PRODUCT_ID, e.g extra capabilities.
+ Overwrite this macros as desired.
+*/
+#line 307 "../../../include/ztex-conf.h"
+
+#line 309 "../../../include/ztex-conf.h"
+
+#line 314 "../../../include/ztex-conf.h"
+
+
+/*
+ Identify as ZTEX USB FPGA Module 1.0
+ Usage: IDENTITY_UFM_1_0(..,);
+*/
+#line 327 "../../../include/ztex-conf.h"
+
+
+/*
+ Identify as ZTEX USB FPGA Module 1.1
+ Usage: IDENTITY_UFM_1_1(..,);
+*/
+#line 340 "../../../include/ztex-conf.h"
+
+
+/*
+ Identify as ZTEX USB FPGA Module 1.2
+ Usage: IDENTITY_UFM_1_2(..,);
+*/
+#line 353 "../../../include/ztex-conf.h"
+
+/*
+ Identify as ZTEX USB FPGA Module 1.10
+ Usage: IDENTITY_UFM_1_10(..,);
+*/
+#line 365 "../../../include/ztex-conf.h"
+
+/*
+ Identify as ZTEX USB FPGA Module 1.11
+ Usage: IDENTITY_UFM_1_10(..,);
+*/
+#line 377 "../../../include/ztex-conf.h"
+
+
+/*
+ Identify as ZTEX USB Module 1.0
+ Usage: IDENTITY_UM_1_0(..,);
+*/
+#line 390 "../../../include/ztex-conf.h"
+
+
+/*
+ This macro defines the Manufacturer string. Limited to 31 characters.
+*/
+#line 396 "../../../include/ztex-conf.h"
+
+
+/*
+ This macro defines the Product string. Limited to 31 characters.
+*/
+#line 402 "../../../include/ztex-conf.h"
+
+
+/*
+ This macro defines the Configuration string. Limited to 31 characters.
+*/
+#line 408 "../../../include/ztex-conf.h"
+
+
+/*
+ This macro enables defines the Configuration string. Limited to 31 characters.
+*/
+#line 414 "../../../include/ztex-conf.h"
+
+
+/*
+ This macro disables EEPROM interface and certain I2C functions (enabled by default)
+ Usage: DISABLE_EEPROM;
+*/
+#line 421 "../../../include/ztex-conf.h"
+
+
+/*
+ This macro enables the Flash interface, if available
+ Usage: ENABLE_FLASH;
+*/
+#line 428 "../../../include/ztex-conf.h"
+
+/*
+ This macro enables the FPGA configuration using a bitstream from the Flash memory
+ Usage: ENABLE_FLASH_BITSTREAM;
+*/
+#line 434 "../../../include/ztex-conf.h"
+
+/*
+ This enables the debug helper. The debug helper consists in a stack of messages which can be read out from host software.
+ See ../examples/all/debug/Readme.
+ Usage: ENABLE_DEBUG(,);
+ number of messages in stack
+ message size in bytes
+*/
+#line 445 "../../../include/ztex-conf.h"
+
+#line 30 "../../../include/ztex-conf.h"
+ // Loads the configuration macros, see ztex-conf.h for the available macros
+#line 1 "../../../include/ztex-utils.h"
+/*!
+ ZTEX Firmware Kit for EZ-USB Microcontrollers
+ Copyright (C) 2009-2010 ZTEX e.K.
+ http://www.ztex.de
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 3 as
+ published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, see http://www.gnu.org/licenses/.
+!*/
+
+/*
+ Various utility routines
+*/
+
+#line 25 "../../../include/ztex-utils.h"
+
+#line 34 "../../../include/ztex-utils.h"
+
+#line 39 "../../../include/ztex-utils.h"
+
+#line 44 "../../../include/ztex-utils.h"
+
+typedef unsigned char BYTE;
+typedef unsigned short WORD;
+typedef unsigned long DWORD;
+
+#line 1 "../../../include/ezregs.h"
+/*!
+ ZTEX Firmware Kit for EZ-USB Microcontrollers
+ Copyright (C) 2009-2010 ZTEX e.K.
+ http://www.ztex.de
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 3 as
+ published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, see http://www.gnu.org/licenses/.
+!*/
+
+/*
+ EZ-USB registers
+*/
+
+#line 25 "../../../include/ezregs.h"
+
+#line 1 "../../../include/ztex-utils.h"
+/*!
+ ZTEX Firmware Kit for EZ-USB Microcontrollers
+ Copyright (C) 2009-2010 ZTEX e.K.
+ http://www.ztex.de
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 3 as
+ published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, see http://www.gnu.org/licenses/.
+!*/
+
+/*
+ Various utility routines
+*/
+
+#line 26 "../../../include/ezregs.h"
+
+
+/* This syncronization delay is valid if <= 5/3*,
+ i.e. if the Interface Clock is equal or greater than 28.8 MHz
+
+ The formula for the synchonization delay is:
+
+ / \
+ >= 1.5 * | ----------------- + 1 |
+ \ /
+
+ Overwrite this macro if this formula is not satisfied
+*/
+
+#line 49 "../../../include/ezregs.h"
+
+#line 30 "../../../include/ztex-conf.h"
+// GPIF Waveform Memories
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE400 volatile BYTE GPIF_WAVE_DATA[128]; // GPIF Waveform Descriptor 0, 1, 2 3, data
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE400 volatile BYTE GPIF_WAVE0_DATA[32]; // GPIF Waveform Descriptor 0 data
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE420 volatile BYTE GPIF_WAVE1_DATA[32]; // GPIF Waveform Descriptor 1 data
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE440 volatile BYTE GPIF_WAVE2_DATA[32]; // GPIF Waveform Descriptor 2 data
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE460 volatile BYTE GPIF_WAVE3_DATA[32]; // GPIF Waveform Descriptor 3 data
+#line 56 "../../../include/ezregs.h"
+
+#line 30 "../../../include/ztex-conf.h"
+// General Configuration
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE50D volatile BYTE GPCR2; // General Purpose Configuration Register 2
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE600 volatile BYTE CPUCS; // Control & Status
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE601 volatile BYTE IFCONFIG; // Interface Configuration
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE602 volatile BYTE PINFLAGSAB; // FIFO FLAGA and FLAGB Assignments
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE603 volatile BYTE PINFLAGSCD; // FIFO FLAGC and FLAGD Assignments
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE604 volatile BYTE FIFORESET; // Restore FIFOS to default state
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE605 volatile BYTE BREAKPT; // Breakpoint
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE606 volatile BYTE BPADDRH; // Breakpoint Address H
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE607 volatile BYTE BPADDRL; // Breakpoint Address L
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE608 volatile BYTE UART230; // 230 Kbaud clock for T0,T1,T2
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE609 volatile BYTE FIFOPINPOLAR; // FIFO polarities
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE60A volatile BYTE REVID; // Chip Revision
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE60B volatile BYTE REVCTL; // Chip Revision Control
+#line 71 "../../../include/ezregs.h"
+
+#line 30 "../../../include/ztex-conf.h"
+// UDMA
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE60C volatile BYTE GPIFHOLDAMOUNT; // MSTB Hold Time (for UDMA)
+#line 74 "../../../include/ezregs.h"
+
+#line 30 "../../../include/ztex-conf.h"
+// Endpoint Configuration
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE610 volatile BYTE EP1OUTCFG; // Endpoint 1-OUT Configuration
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE611 volatile BYTE EP1INCFG; // Endpoint 1-IN Configuration
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE612 volatile BYTE EP2CFG; // Endpoint 2 Configuration
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE613 volatile BYTE EP4CFG; // Endpoint 4 Configuration
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE614 volatile BYTE EP6CFG; // Endpoint 6 Configuration
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE615 volatile BYTE EP8CFG; // Endpoint 8 Configuration
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE618 volatile BYTE EP2FIFOCFG; // Endpoint 2 FIFO configuration
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE619 volatile BYTE EP4FIFOCFG; // Endpoint 4 FIFO configuration
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE61A volatile BYTE EP6FIFOCFG; // Endpoint 6 FIFO configuration
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE61B volatile BYTE EP8FIFOCFG; // Endpoint 8 FIFO configuration
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE620 volatile BYTE EP2AUTOINLENH; // Endpoint 2 Packet Length H (IN only)
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE621 volatile BYTE EP2AUTOINLENL; // Endpoint 2 Packet Length L (IN only)
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE622 volatile BYTE EP4AUTOINLENH; // Endpoint 4 Packet Length H (IN only)
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE623 volatile BYTE EP4AUTOINLENL; // Endpoint 4 Packet Length L (IN only)
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE624 volatile BYTE EP6AUTOINLENH; // Endpoint 6 Packet Length H (IN only)
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE625 volatile BYTE EP6AUTOINLENL; // Endpoint 6 Packet Length L (IN only)
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE626 volatile BYTE EP8AUTOINLENH; // Endpoint 8 Packet Length H (IN only)
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE627 volatile BYTE EP8AUTOINLENL; // Endpoint 8 Packet Length L (IN only)
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE628 volatile BYTE ECCCFG; // ECC Configuration
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE629 volatile BYTE ECCRESET; // ECC Reset
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE62A volatile BYTE ECC1B0; // ECC1 Byte 0 Address
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE62B volatile BYTE ECC1B1; // ECC1 Byte 1 Address
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE62C volatile BYTE ECC1B2; // ECC1 Byte 2 Address
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE62D volatile BYTE ECC2B0; // ECC2 Byte 0 Address
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE62E volatile BYTE ECC2B1; // ECC2 Byte 1 Address
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE62F volatile BYTE ECC2B2; // ECC2 Byte 2 Address
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE630 volatile BYTE EP2FIFOPFH; // EP2 Programmable Flag trigger H
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE631 volatile BYTE EP2FIFOPFL; // EP2 Programmable Flag trigger L
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE632 volatile BYTE EP4FIFOPFH; // EP4 Programmable Flag trigger H
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE633 volatile BYTE EP4FIFOPFL; // EP4 Programmable Flag trigger L
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE634 volatile BYTE EP6FIFOPFH; // EP6 Programmable Flag trigger H
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE635 volatile BYTE EP6FIFOPFL; // EP6 Programmable Flag trigger L
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE636 volatile BYTE EP8FIFOPFH; // EP8 Programmable Flag trigger H
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE637 volatile BYTE EP8FIFOPFL; // EP8 Programmable Flag trigger L
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE640 volatile BYTE EP2ISOINPKTS; // EP2 (if ISO) IN Packets per frame (1-3)
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE641 volatile BYTE EP4ISOINPKTS; // EP4 (if ISO) IN Packets per frame (1-3)
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE642 volatile BYTE EP6ISOINPKTS; // EP6 (if ISO) IN Packets per frame (1-3)
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE643 volatile BYTE EP8ISOINPKTS; // EP8 (if ISO) IN Packets per frame (1-3)
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE648 volatile BYTE INPKTEND; // Force IN Packet End
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE649 volatile BYTE OUTPKTEND; // Force OUT Packet End
+#line 116 "../../../include/ezregs.h"
+
+#line 30 "../../../include/ztex-conf.h"
+// Interrupts
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE650 volatile BYTE EP2FIFOIE; // Endpoint 2 Flag Interrupt Enable
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE651 volatile BYTE EP2FIFOIRQ; // Endpoint 2 Flag Interrupt Request
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE652 volatile BYTE EP4FIFOIE; // Endpoint 4 Flag Interrupt Enable
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE653 volatile BYTE EP4FIFOIRQ; // Endpoint 4 Flag Interrupt Request
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE654 volatile BYTE EP6FIFOIE; // Endpoint 6 Flag Interrupt Enable
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE655 volatile BYTE EP6FIFOIRQ; // Endpoint 6 Flag Interrupt Request
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE656 volatile BYTE EP8FIFOIE; // Endpoint 8 Flag Interrupt Enable
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE657 volatile BYTE EP8FIFOIRQ; // Endpoint 8 Flag Interrupt Request
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE658 volatile BYTE IBNIE; // IN-BULK-NAK Interrupt Enable
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE659 volatile BYTE IBNIRQ; // IN-BULK-NAK interrupt Request
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE65A volatile BYTE NAKIE; // Endpoint Ping NAK interrupt Enable
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE65B volatile BYTE NAKIRQ; // Endpoint Ping NAK interrupt Request
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE65C volatile BYTE USBIE; // USB Int Enables
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE65D volatile BYTE USBIRQ; // USB Interrupt Requests
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE65E volatile BYTE EPIE; // Endpoint Interrupt Enables
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE65F volatile BYTE EPIRQ; // Endpoint Interrupt Requests
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE660 volatile BYTE GPIFIE; // GPIF Interrupt Enable
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE661 volatile BYTE GPIFIRQ; // GPIF Interrupt Request
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE662 volatile BYTE USBERRIE; // USB Error Interrupt Enables
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE663 volatile BYTE USBERRIRQ; // USB Error Interrupt Requests
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE664 volatile BYTE ERRCNTLIM; // USB Error counter and limit
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE665 volatile BYTE CLRERRCNT; // Clear Error Counter EC[3..0]
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE666 volatile BYTE INT2IVEC; // Interupt 2 (USB) Autovector
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE667 volatile BYTE INT4IVEC; // Interupt 4 (FIFOS & GPIF) Autovector
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE668 volatile BYTE INTSETUP; // Interrupt 2&4 Setup
+#line 143 "../../../include/ezregs.h"
+
+#line 30 "../../../include/ztex-conf.h"
+// Input/Output
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE670 volatile BYTE PORTACFG; // I/O PORTA Alternate Configuration
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE671 volatile BYTE PORTCCFG; // I/O PORTC Alternate Configuration
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE672 volatile BYTE PORTECFG; // I/O PORTE Alternate Configuration
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE678 volatile BYTE I2CS; // Control & Status
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE679 volatile BYTE I2DAT; // Data
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE67A volatile BYTE I2CTL; // I2C Control
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE67B volatile BYTE XAUTODAT1; // Autoptr1 MOVX access
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE67B volatile BYTE EXTAUTODAT1; // Autoptr1 MOVX access
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE67C volatile BYTE XAUTODAT2; // Autoptr2 MOVX access
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE67C volatile BYTE EXTAUTODAT2; // Autoptr2 MOVX access
+#line 155 "../../../include/ezregs.h"
+
+#line 30 "../../../include/ztex-conf.h"
+// UDMA CRC
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE67D volatile BYTE UDMACRCH; // UDMA CRC MSB
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE67E volatile BYTE UDMACRCL; // UDMA CRC LSB
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE67F volatile BYTE UDMACRCQUALIFIER; // UDMA CRC Qualifier
+#line 160 "../../../include/ezregs.h"
+
+#line 30 "../../../include/ztex-conf.h"
+// USB Control
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE680 volatile BYTE USBCS; // USB Control & Status
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE681 volatile BYTE SUSPEND; // Put chip into suspend
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE682 volatile BYTE WAKEUPCS; // Wakeup source and polarity
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE683 volatile BYTE TOGCTL; // Toggle Control
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE684 volatile BYTE USBFRAMEH; // USB Frame count H
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE685 volatile BYTE USBFRAMEL; // USB Frame count L
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE686 volatile BYTE MICROFRAME; // Microframe count, 0-7
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE687 volatile BYTE FNADDR; // USB Function address
+#line 170 "../../../include/ezregs.h"
+
+#line 30 "../../../include/ztex-conf.h"
+// Endpoints
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE68A volatile BYTE EP0BCH; // Endpoint 0 Byte Count H
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE68B volatile BYTE EP0BCL; // Endpoint 0 Byte Count L
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE68D volatile BYTE EP1OUTBC; // Endpoint 1 OUT Byte Count
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE68F volatile BYTE EP1INBC; // Endpoint 1 IN Byte Count
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE690 volatile BYTE EP2BCH; // Endpoint 2 Byte Count H
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE691 volatile BYTE EP2BCL; // Endpoint 2 Byte Count L
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE694 volatile BYTE EP4BCH; // Endpoint 4 Byte Count H
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE695 volatile BYTE EP4BCL; // Endpoint 4 Byte Count L
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE698 volatile BYTE EP6BCH; // Endpoint 6 Byte Count H
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE699 volatile BYTE EP6BCL; // Endpoint 6 Byte Count L
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE69C volatile BYTE EP8BCH; // Endpoint 8 Byte Count H
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE69D volatile BYTE EP8BCL; // Endpoint 8 Byte Count L
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6A0 volatile BYTE EP0CS; // Endpoint Control and Status
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6A1 volatile BYTE EP1OUTCS; // Endpoint 1 OUT Control and Status
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6A2 volatile BYTE EP1INCS; // Endpoint 1 IN Control and Status
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6A3 volatile BYTE EPXCS[4]; // Endpoint 2-8 Control and Status
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6A3 volatile BYTE EP2CS; // Endpoint 2 Control and Status
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6A4 volatile BYTE EP4CS; // Endpoint 4 Control and Status
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6A5 volatile BYTE EP6CS; // Endpoint 6 Control and Status
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6A6 volatile BYTE EP8CS; // Endpoint 8 Control and Status
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6A7 volatile BYTE EP2FIFOFLGS; // Endpoint 2 Flags
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6A8 volatile BYTE EP4FIFOFLGS; // Endpoint 4 Flags
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6A9 volatile BYTE EP6FIFOFLGS; // Endpoint 6 Flags
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6AA volatile BYTE EP8FIFOFLGS; // Endpoint 8 Flags
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6AB volatile BYTE EP2FIFOBCH; // EP2 FIFO total byte count H
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6AC volatile BYTE EP2FIFOBCL; // EP2 FIFO total byte count L
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6AD volatile BYTE EP4FIFOBCH; // EP4 FIFO total byte count H
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6AE volatile BYTE EP4FIFOBCL; // EP4 FIFO total byte count L
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6AF volatile BYTE EP6FIFOBCH; // EP6 FIFO total byte count H
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6B0 volatile BYTE EP6FIFOBCL; // EP6 FIFO total byte count L
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6B1 volatile BYTE EP8FIFOBCH; // EP8 FIFO total byte count H
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6B2 volatile BYTE EP8FIFOBCL; // EP8 FIFO total byte count L
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6B3 volatile BYTE SUDPTRH; // Setup Data Pointer high address byte
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6B4 volatile BYTE SUDPTRL; // Setup Data Pointer low address byte
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6B5 volatile BYTE SUDPTRCTL; // Setup Data Pointer Auto Mode
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6B8 volatile BYTE SETUPDAT[8]; // 8 bytes of SETUP data
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6B8 volatile BYTE bmRequestType; // Request Type, Direction, and Recipient
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6B9 volatile BYTE bRequest; // The actual request
+#line 210 "../../../include/ezregs.h"
+xdata at 0xE6BA volatile BYTE wValueL;
+xdata at 0xE6BB volatile BYTE wValueH;
+xdata at 0xE6BC volatile BYTE wIndexL;
+xdata at 0xE6BD volatile BYTE wIndexH;
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6BE volatile BYTE wLengthL; // Number of bytes to transfer if there is a data phase
+#line 215 "../../../include/ezregs.h"
+xdata at 0xE6BF volatile BYTE wLengthH;
+
+#line 30 "../../../include/ztex-conf.h"
+// GPIF
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6C0 volatile BYTE GPIFWFSELECT; // Waveform Selector
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6C1 volatile BYTE GPIFIDLECS; // GPIF Done, GPIF IDLE drive mode
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6C2 volatile BYTE GPIFIDLECTL; // Inactive Bus, CTL states
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6C3 volatile BYTE GPIFCTLCFG; // CTL OUT pin drive
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6C4 volatile BYTE GPIFADRH; // GPIF Address H
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6C5 volatile BYTE GPIFADRL; // GPIF Address L
+#line 224 "../../../include/ezregs.h"
+
+#line 30 "../../../include/ztex-conf.h"
+// FLOWSTATE
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6C6 volatile BYTE FLOWSTATE; // Flowstate Enable and Selector
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6C7 volatile BYTE FLOWLOGIC; // Flowstate Logic
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6C8 volatile BYTE FLOWEQ0CTL; // CTL-Pin States in Flowstate (when Logic = 0)
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6C9 volatile BYTE FLOWEQ1CTL; // CTL-Pin States in Flowstate (when Logic = 1)
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6CA volatile BYTE FLOWHOLDOFF; // Holdoff Configuration
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6CB volatile BYTE FLOWSTB; // Flowstate Strobe Configuration
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6CC volatile BYTE FLOWSTBEDGE; // Flowstate Rising/Falling Edge Configuration
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6CD volatile BYTE FLOWSTBHPERIOD; // Master-Strobe Half-Period
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6CE volatile BYTE GPIFTCB3; // GPIF Transaction Count Byte 3
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6CF volatile BYTE GPIFTCB2; // GPIF Transaction Count Byte 2
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6D0 volatile BYTE GPIFTCB1; // GPIF Transaction Count Byte 1
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6D1 volatile BYTE GPIFTCB0; // GPIF Transaction Count Byte 0
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6D2 volatile BYTE EP2GPIFFLGSEL; // EP2 GPIF Flag select
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6D3 volatile BYTE EP2GPIFPFSTOP; // Stop GPIF EP2 transaction on prog. flag
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6D4 volatile BYTE EP2GPIFTRIG; // EP2 FIFO Trigger
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6DA volatile BYTE EP4GPIFFLGSEL; // EP4 GPIF Flag select
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6DB volatile BYTE EP4GPIFPFSTOP; // Stop GPIF EP4 transaction on prog. flag
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6DC volatile BYTE EP4GPIFTRIG; // EP4 FIFO Trigger
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6E2 volatile BYTE EP6GPIFFLGSEL; // EP6 GPIF Flag select
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6E3 volatile BYTE EP6GPIFPFSTOP; // Stop GPIF EP6 transaction on prog. flag
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6E4 volatile BYTE EP6GPIFTRIG; // EP6 FIFO Trigger
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6EA volatile BYTE EP8GPIFFLGSEL; // EP8 GPIF Flag select
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6EB volatile BYTE EP8GPIFPFSTOP; // Stop GPIF EP8 transaction on prog. flag
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6EC volatile BYTE EP8GPIFTRIG; // EP8 FIFO Trigger
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6F0 volatile BYTE XGPIFSGLDATH; // GPIF Data H (16-bit mode only)
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6F1 volatile BYTE XGPIFSGLDATLX; // Read/Write GPIF Data L & trigger transac
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6F2 volatile BYTE XGPIFSGLDATLNOX; // Read GPIF Data L, no transac trigger
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6F3 volatile BYTE GPIFREADYCFG; // Internal RDY,Sync/Async, RDY5CFG
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6F4 volatile BYTE GPIFREADYSTAT; // RDY pin states
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE6F5 volatile BYTE GPIFABORT; // Abort GPIF cycles
+#line 256 "../../../include/ezregs.h"
+
+#line 30 "../../../include/ztex-conf.h"
+// Endpoint Buffers
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE740 volatile BYTE EP0BUF[64]; // EP0 IN-OUT buffer
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE780 volatile BYTE EP1OUTBUF[64]; // EP1-OUT buffer
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xE7C0 volatile BYTE EP1INBUF[64]; // EP1-IN buffer
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xF000 volatile BYTE EP2FIFOBUF[1024]; // 512/1024-byte EP2 buffer (IN or OUT)
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xF400 volatile BYTE EP4FIFOBUF[1024]; // 512 byte EP4 buffer (IN or OUT)
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xF800 volatile BYTE EP6FIFOBUF[1024]; // 512/1024-byte EP6 buffer (IN or OUT)
+#line 30 "../../../include/ztex-conf.h"
+xdata at 0xFC00 volatile BYTE EP8FIFOBUF[1024]; // 512 byte EP8 buffer (IN or OUT)
+#line 265 "../../../include/ezregs.h"
+
+
+#line 30 "../../../include/ztex-conf.h"
+// Special Function Registers (SFRs)
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x80 IOA; // Port A
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x80+0 IOA0; // Port A bit 0
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x80+1 IOA1; // Port A bit 1
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x80+2 IOA2; // Port A bit 2
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x80+3 IOA3; // Port A bit 3
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x80+4 IOA4; // Port A bit 4
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x80+5 IOA5; // Port A bit 5
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x80+6 IOA6; // Port A bit 6
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x80+7 IOA7; // Port A bit 7
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x81 SP; // Stack Pointer
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x82 DPL0; // Data Pointer 0 L
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x83 DPH0; // Data Pointer 0 H
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x84 DPL1; // Data Pointer 1 L
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x85 DPH1; // Data Pointer 0 H
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x86 DPS; // Data Pointer 0/1 select
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x87 PCON; // Power Control
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x88 TCON; // Timer/Counter Control
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x88+0 IT0; // Interrupt 0 Type select
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x88+1 IE0; // Interrupt 0 Edge detect
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x88+2 IT1; // Interrupt 1 Type select
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x88+3 IE1; // Interrupt 1 Edge detect
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x88+4 TR0; // Timer 0 Run Control
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x88+5 TF0; // Timer 0 Overflow Flag
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x88+6 TR1; // Timer 1 Run Control
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x88+7 TF1; // Timer 1 Overflow Flag
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x89 TMOD; // Timer/Counter Mode Control
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x8A TL0; // Timer 0 reload L
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x8B TL1; // Timer 1 reload L
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x8C TH0; // Timer 0 reload H
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x8D TH1; // Timer 1 reload H
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x8E CKCON; // Clock Control
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x90 IOB; // Port B
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x90+0 IOB0; // Port B bit 0
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x90+1 IOB1; // Port B bit 1
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x90+2 IOB2; // Port B bit 2
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x90+3 IOB3; // Port B bit 3
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x90+4 IOB4; // Port B bit 4
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x90+5 IOB5; // Port B bit 5
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x90+6 IOB6; // Port B bit 6
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x90+7 IOB7; // Port B bit 7
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x91 EXIF; // External Interrupt Flag(s)
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x92 MPAGE; // Upper Addr Byte of MOVX using @R0 / @R1
+#line 310 "../../../include/ezregs.h"
+__sfr __at (0x92) _XPAGE;
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x98 SCON0; // Serial Port 0 Control
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x98+0 RI_0; // Recive Interrupt Flag
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x98+1 TI_0; // Transmit Interrupt Flag
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x98+2 RB8_0; // State of the 9th bit / Stop Bit received
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x98+3 TB8_0; // State of the 9th bit transmitted
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x98+4 REN_0; // Receive enable
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x98+5 SM2_0; // Multiprocessor communication enable
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x98+6 SM1_0; // Serial Port 0 mode bit 1
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0x98+7 SM0_0; // Serial Port 0 mode bit 0
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x99 SBUF0; // Serial Port 0 Data Buffer
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x9A AUTOPTRH1; // Autopointer 1 Address H
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x9B AUTOPTRL1; // Autopointer 1 Address L
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x9D AUTOPTRH2; // Autopointer 2 Address H
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0x9E AUTOPTRL2; // Autopointer 2 Address L
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xA0 IOC; // Port C
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xA0+0 IOC0; // Port C bit 0
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xA0+1 IOC1; // Port C bit 1
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xA0+2 IOC2; // Port C bit 2
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xA0+3 IOC3; // Port C bit 3
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xA0+4 IOC4; // Port C bit 4
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xA0+5 IOC5; // Port C bit 5
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xA0+6 IOC6; // Port C bit 6
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xA0+7 IOC7; // Port C bit 7
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xA1 INT2CLR; // Interrupt 2 clear
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xA2 INT4CLR; // Interrupt 4clear
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xA8 IE; // Interrupt Enable
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xA8+0 EX0; // Enable external interrupt 0
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xA8+1 ET0; // Enable Timer 0 interrupt
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xA8+2 EX1; // Enable external interrupt 1
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xA8+3 ET1; // Enable Timer 1 interrupt
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xA8+4 ES0; // Enable Serial Port 0 interrupt
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xA8+5 ET2; // Enable Timer 2 interrupt
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xA8+6 ES1; // Enable Serial Port 1 interrupt
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xA8+7 EA; // Global interrupt enable
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xAA EP2468STAT; // Endpoint 2,4,6,8 status flags
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xAB EP24FIFOFLGS; // Endpoint 2,4 slave FIFO flags
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xAC EP68FIFOFLGS; // Endpoint 6,8 slave FIFO flags
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xAF AUTOPTRSETUP; // Autopointer 1&2 set-up
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xB0 IOD; // Port D
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xB0+0 IOD0; // Port D bit 0
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xB0+1 IOD1; // Port D bit 1
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xB0+2 IOD2; // Port D bit 2
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xB0+3 IOD3; // Port D bit 3
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xB0+4 IOD4; // Port D bit 4
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xB0+5 IOD5; // Port D bit 5
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xB0+6 IOD6; // Port D bit 6
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xB0+7 IOD7; // Port D bit 7
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xB1 IOE; // Port E
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xB2 OEA; // Port A Output Enable
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xB3 OEB; // Port B Output Enable
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xB4 OEC; // Port C Output Enable
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xB5 OED; // Port D Output Enable
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xB6 OEE; // Port E Output Enable
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xB8 IP; // Interrupt priority
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xB8+0 PX0; // External interrupt 0 priority control
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xB8+1 PT0; // Timer 0 interrupt priority control
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xB8+2 PX1; // External interrupt 1 priority control
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xB8+3 PT1; // Timer 1 interrupt priority control
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xB8+4 PS0; // Serial Port 0 interrupt priority control
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xB8+5 PT2; // Timer 2 interrupt priority control
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xB8+6 PS1; // Serial Port 1 interrupt priority control
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xBA EP01STAT; // Endpoint 0&1 Status
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xBB GPIFTRIG; // Endpoint 2,4,6,8 GPIF slafe FIFO Trigger
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xBD GPIFSGLDATH; // GPIF Data H (16-bit mode only)
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xBE GPIFSGLDATLX; // GPIF Data L w/ Trigger
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xBF GPIFSGLDATLNOX; // GPIF Data L w/ No Trigger
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xC0 SCON1; // Serial Port 1 Control
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xC0+0 RI_1; // Recive Interrupt Flag
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xC0+1 TI_1; // Transmit Interrupt Flag
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xC0+2 RB8_1; // State of the 9th bit / Stop Bit received
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xC0+3 TB8_1; // State of the 9th bit transmitted
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xC0+4 REN_1; // Receive enable
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xC0+5 SM2_1; // Multiprocessor communication enable
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xC0+6 SM1_1; // Serial Port 1 mode bit 1
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xC0+7 SM0_1; // Serial Port 1 mode bit 0
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xC1 SBUF1; // Serial Port 1 Data Buffer
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xC8 T2CON; // Timer/Counter 2 Control
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xC8+0 CPRL2; // Capture/reload flag
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xC8+1 CT2; // Counter/Timer select
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xC8+2 TR2; // Timer 2 run control flag
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xC8+3 EXEN2; // Timer 2 external enable
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xC8+4 TCLK; // Transmit clock flag
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xC8+5 RCLK; // Receive clock flag
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xC8+6 EXF2; // Timer 2 external flag
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xC8+7 TF2; // Timer 2 overflow flag
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xCA RCAP2L; // Capture for Timer 2, auto-reload, up-counter L
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xCB RCAP2H; // Capture for Timer 2, auto-reload, up-counter H
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xCC TL2; // Timer 2 reload L
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xCD TH2; // Timer 2 reload H
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xD0 PSW; // Program Status Word
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xD0+0 PF; // Parity flag
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xD0+1 F1; // User flag 1
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xD0+2 OV; // Overflow flag
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xD0+3 RS0; // Register bank select bit 0
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xD0+4 RS1; // Register bank select bit 1
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xD0+5 F0; // User flag 0
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xD0+6 AC; // Auxiliary carry flag
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xD0+7 CY; // Carry flag
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xD8 EICON; // External Interrupt Control
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xD8+3 INT6; // External interrupt 6
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xD8+4 RESI; // Wakeup interrupt flag
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xD8+5 ERESI; // Enable Resume interrupt
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xD8+7 SMOD1; // Serial Port 1 baud rate doubler enable
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xE0 ACC; // Accumulator
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xE0+0 ACC0; // Accumulator bit 0
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xE0+1 ACC1; // Accumulator bit 1
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xE0+2 ACC2; // Accumulator bit 2
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xE0+3 ACC3; // Accumulator bit 3
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xE0+4 ACC4; // Accumulator bit 4
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xE0+5 ACC5; // Accumulator bit 5
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xE0+6 ACC6; // Accumulator bit 6
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xE0+7 ACC7; // Accumulator bit 7
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xE8 EIE; // External Interrupt Enable(s)
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xE8+0 EUSB; // Enable USB interrupt (USBINT)
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xE8+1 EI2C; // Enable I2C bus interrupt (I2CINT)
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xE8+2 EIEX4; // Enable external interrupt 4
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xE8+3 EIEX5; // Enable external interrupt 5
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xE8+4 EIEX6; // Enable external interrupt 6
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xF0 BREG; // B Register
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xF0+0 BREG0; // B Register bit 0
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xF0+1 BREG1; // B Register bit 1
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xF0+2 BREG2; // B Register bit 2
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xF0+3 BREG3; // B Register bit 3
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xF0+4 BREG4; // B Register bit 4
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xF0+5 BREG5; // B Register bit 5
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xF0+6 BREG6; // B Register bit 6
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xF0+7 BREG7; // B Register bit 7
+#line 30 "../../../include/ztex-conf.h"
+sfr at 0xF8 EIP; // External Interrupt Priority Control
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xF8+0 PUSB; // USBINT priority control
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xF8+1 PI2C; // I2CINT priority control
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xF8+2 EIPX4; // External interrupt 4 priority control
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xF8+3 EIPX5; // External interrupt 5 priority control
+#line 30 "../../../include/ztex-conf.h"
+sbit at 0xF8+4 EIPX6; // External interrupt 6 priority control
+#line 444 "../../../include/ezregs.h"
+
+#line 49 "../../../include/ztex-utils.h"
+
+#line 1 "../../../include/ezintavecs.h"
+/*!
+ ZTEX Firmware Kit for EZ-USB Microcontrollers
+ Copyright (C) 2009-2010 ZTEX e.K.
+ http://www.ztex.de
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 3 as
+ published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, see http://www.gnu.org/licenses/.
+!*/
+
+/*
+ EZ-USB Autovectors
+*/
+
+#line 25 "../../../include/ezintavecs.h"
+
+#line 1 "../../../include/ztex-utils.h"
+/*!
+ ZTEX Firmware Kit for EZ-USB Microcontrollers
+ Copyright (C) 2009-2010 ZTEX e.K.
+ http://www.ztex.de
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 3 as
+ published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, see http://www.gnu.org/licenses/.
+!*/
+
+/*
+ Various utility routines
+*/
+
+#line 26 "../../../include/ezintavecs.h"
+
+
+struct INTVEC {
+ BYTE op;
+ BYTE addrH;
+ BYTE addrL;
+};
+
+#line 87 "../../../include/ezintavecs.h"
+
+#line 34 "../../../include/ezintavecs.h"
+xdata at 0x0003 struct INTVEC INT0VEC_IE0;
+xdata at 0x000b struct INTVEC INT1VEC_T0;
+xdata at 0x0013 struct INTVEC INT2VEC_IE1;
+xdata at 0x001b struct INTVEC INT3VEC_T1;
+xdata at 0x0023 struct INTVEC INT4VEC_USART0;
+xdata at 0x002b struct INTVEC INT5VEC_T2;
+xdata at 0x0033 struct INTVEC INT6VEC_RESUME;
+xdata at 0x003b struct INTVEC INT7VEC_USART1;
+xdata at 0x0043 struct INTVEC INT8VEC_USB;
+xdata at 0x004b struct INTVEC INT9VEC_I2C;
+xdata at 0x0053 struct INTVEC INT10VEC_GPIF;
+xdata at 0x005b struct INTVEC INT11VEC_IE5;
+xdata at 0x0063 struct INTVEC INT12VEC_IE6;
+xdata at 0x0100 struct INTVEC INTVEC_SUDAV;
+xdata at 0x0104 struct INTVEC INTVEC_SOF;
+xdata at 0x0108 struct INTVEC INTVEC_SUTOK;
+xdata at 0x010C struct INTVEC INTVEC_SUSPEND;
+xdata at 0x0110 struct INTVEC INTVEC_USBRESET;
+xdata at 0x0114 struct INTVEC INTVEC_HISPEED;
+xdata at 0x0118 struct INTVEC INTVEC_EP0ACK;
+xdata at 0x0120 struct INTVEC INTVEC_EP0IN;
+xdata at 0x0124 struct INTVEC INTVEC_EP0OUT;
+xdata at 0x0128 struct INTVEC INTVEC_EP1IN;
+xdata at 0x012C struct INTVEC INTVEC_EP1OUT;
+xdata at 0x0130 struct INTVEC INTVEC_EP2;
+xdata at 0x0134 struct INTVEC INTVEC_EP4;
+xdata at 0x0138 struct INTVEC INTVEC_EP6;
+xdata at 0x013C struct INTVEC INTVEC_EP8;
+xdata at 0x0140 struct INTVEC INTVEC_IBN;
+xdata at 0x0148 struct INTVEC INTVEC_EP0PING;
+xdata at 0x014C struct INTVEC INTVEC_EP1PING;
+xdata at 0x0150 struct INTVEC INTVEC_EP2PING;
+xdata at 0x0154 struct INTVEC INTVEC_EP4PING;
+xdata at 0x0158 struct INTVEC INTVEC_EP6PING;
+xdata at 0x015C struct INTVEC INTVEC_EP8PING;
+xdata at 0x0160 struct INTVEC INTVEC_ERRLIMIT;
+xdata at 0x0170 struct INTVEC INTVEC_EP2ISOERR;
+xdata at 0x0174 struct INTVEC INTVEC_EP4ISOERR;
+xdata at 0x0178 struct INTVEC INTVEC_EP6ISOERR;
+xdata at 0x017C struct INTVEC INTVEC_EP8ISOERR;
+xdata at 0x0180 struct INTVEC INTVEC_EP2PF;
+xdata at 0x0184 struct INTVEC INTVEC_EP4PF;
+xdata at 0x0188 struct INTVEC INTVEC_EP6PF;
+xdata at 0x018C struct INTVEC INTVEC_EP8PF;
+xdata at 0x0190 struct INTVEC INTVEC_EP2EF;
+xdata at 0x0194 struct INTVEC INTVEC_EP4EF;
+xdata at 0x0198 struct INTVEC INTVEC_EP6EF;
+xdata at 0x019C struct INTVEC INTVEC_EP8EF;
+xdata at 0x01A0 struct INTVEC INTVEC_EP2FF;
+xdata at 0x01A8 struct INTVEC INTVEC_EP6FF;
+xdata at 0x01AC struct INTVEC INTVEC_EP8FF;
+xdata at 0x01B0 struct INTVEC INTVEC_GPIFDONE;
+#line 89 "../../../include/ezintavecs.h"
+xdata at 0x01B4 struct INTVEC INTVEC_GPIFWF;
+#line 91 "../../../include/ezintavecs.h"
+
+void abscode_intvec() _naked
+{
+#line 96 "../../../include/ezintavecs.h"
+ _asm
+ .area ABSCODE (ABS,CODE)
+ .org 0x0000
+ENTRY:
+ ljmp #0x0200
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0003
+#line 34 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x000b
+#line 35 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0013
+#line 36 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x001b
+#line 37 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0023
+#line 38 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x002b
+#line 39 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0033
+#line 40 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x003b
+#line 41 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0043
+#line 42 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x004b
+#line 43 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0053
+#line 44 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x005b
+#line 45 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0063
+#line 46 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0100
+#line 47 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0104
+#line 48 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0108
+#line 49 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x010C
+#line 50 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0110
+#line 51 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0114
+#line 52 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0118
+#line 53 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0120
+#line 54 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0124
+#line 55 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0128
+#line 56 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x012C
+#line 57 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0130
+#line 58 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0134
+#line 59 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0138
+#line 60 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x013C
+#line 61 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0140
+#line 62 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0148
+#line 63 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x014C
+#line 64 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0150
+#line 65 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0154
+#line 66 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0158
+#line 67 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x015C
+#line 68 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0160
+#line 69 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0170
+#line 70 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0174
+#line 71 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0178
+#line 72 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x017C
+#line 73 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0180
+#line 74 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0184
+#line 75 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0188
+#line 76 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x018C
+#line 77 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0190
+#line 78 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0194
+#line 79 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x0198
+#line 80 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x019C
+#line 81 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x01A0
+#line 82 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x01A8
+#line 83 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x01AC
+#line 84 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x01B0
+#line 85 "../../../include/ezintavecs.h"
+ reti
+#line 94 "../../../include/ezintavecs.h"
+ .org 0x01B4
+#line 101 "../../../include/ezintavecs.h"
+ reti
+ .org 0x01b8
+INTVEC_DUMMY:
+ reti
+ .area CSEG (CODE)
+ _endasm;
+}
+
+#line 111 "../../../include/ezintavecs.h"
+
+
+/* Init an interrupt vector */
+#line 119 "../../../include/ezintavecs.h"
+
+
+/* Enable USB autovectors */
+#line 128 "../../../include/ezintavecs.h"
+
+
+/* Disable USB autovectors */
+#line 132 "../../../include/ezintavecs.h"
+
+
+/* Enable GPIF autovectors */
+#line 141 "../../../include/ezintavecs.h"
+
+
+/* Disable GPIF autovectors */
+#line 145 "../../../include/ezintavecs.h"
+
+
+#line 50 "../../../include/ztex-utils.h"
+
+/* *********************************************************************
+ ***** global variables **********************************************
+ ********************************************************************* */
+/*
+ The following two variables are used to control HSNAK bit.
+
+ ep0_payload_remaining is set to the length field of of the Setup Data
+ structure (in SUDAV_ISR). At the begin of each payload data transfer (in
+ SUDAV_ISR, EP0IN_ISR and EP0OUT_ISR) the amount of payload of the current
+ transfer s calculated (<=64 bytes) and subtracted from
+ ep0_payload_remaining. For Vendor Commands HSNAK bit is cleared
+ automatically (at the end of EP0OUT_ISR) ifep0_payload_remaining == 0.
+ For Vendor Requests HSNAK bit is always cleared at the end of SUDAV_ISR.
+*/
+
+#line 30 "../../../include/ztex-conf.h"
+xdata WORD ep0_payload_remaining = 0; // remaining amount of ep0 payload data (excluding the data of the current transfer)
+#line 30 "../../../include/ztex-conf.h"
+xdata BYTE ep0_payload_transfer = 0; // transfer
+#line 68 "../../../include/ztex-utils.h"
+
+/* *********************************************************************
+ *********************************************************************
+ ***** basic functions ***********************************************
+ *********************************************************************
+ ********************************************************************* */
+
+/* *********************************************************************
+ ***** wait **********************************************************
+ ********************************************************************* */
+#line 30 "../../../include/ztex-conf.h"
+void wait(WORD short ms) { // wait in ms
+#line 79 "../../../include/ztex-utils.h"
+ WORD i,j;
+ for (j=0; j specifies the time to wait in 0.1ms steps if the EEPROM is busy (during a write cycle).
+ if =0 no sop bit is sent. Returns 1 on error or if EEPROM is busy. */
+BYTE eeprom_select ( BYTE to, BYTE stop ) {
+ BYTE toc = 0;
+eeprom_select_start:
+#line 30 "../../../include/ztex-conf.h"
+ I2CS |= 128; // start bit
+#line 107 "../../../include/ztex-eeprom.h"
+ i2c_waitStart();
+#line 30 "../../../include/ztex-conf.h"
+ I2DAT = 0xA2; // select device for writing
+#line 109 "../../../include/ztex-eeprom.h"
+ if ( ! i2c_waitWrite() ) {
+ if ( stop ) {
+ I2CS |= 64;
+ i2c_waitStop();
+ }
+ return 0;
+ }
+ else if (toc bytes from EEPROM address and write them to buf.
+ Returns the number of bytes read. This number is 0 during a write cycle. */
+BYTE eeprom_read ( __xdata BYTE *buf, WORD addr, BYTE length ) {
+ BYTE bytes = 0,i;
+
+ if ( length == 0 )
+ return 0;
+
+ if ( eeprom_select(100,0) )
+ goto eeprom_read_end;
+
+#line 30 "../../../include/ztex-conf.h"
+ I2DAT = ((BYTE)((((unsigned short)(addr)) >> 8) & 0xff)) ; // write address
+#line 141 "../../../include/ztex-eeprom.h"
+ if ( i2c_waitWrite() ) goto eeprom_read_end;
+#line 30 "../../../include/ztex-conf.h"
+ I2DAT = ((BYTE)(addr)); // write address
+#line 143 "../../../include/ztex-eeprom.h"
+ if ( i2c_waitWrite() ) goto eeprom_read_end;
+ I2CS |= 64;
+ i2c_waitStop();
+
+#line 30 "../../../include/ztex-conf.h"
+ I2CS |= 128; // start bit
+#line 148 "../../../include/ztex-eeprom.h"
+ i2c_waitStart();
+#line 30 "../../../include/ztex-conf.h"
+ I2DAT = 0xA2 | 1; // select device for reading
+#line 150 "../../../include/ztex-eeprom.h"
+ if ( i2c_waitWrite() ) goto eeprom_read_end;
+
+#line 30 "../../../include/ztex-conf.h"
+ *buf = I2DAT; // dummy read
+#line 153 "../../../include/ztex-eeprom.h"
+ if ( i2c_waitRead()) goto eeprom_read_end;
+ for (; bytes bytes from buf to and write them EEPROM address .
+ must be smaller or equal than 64. Returns the number of bytes
+ read. This number is 0 during a write cycle. */
+BYTE eeprom_write ( __xdata BYTE *buf, WORD addr, BYTE length ) {
+ BYTE bytes = 0;
+
+ if ( eeprom_select(100,0) )
+ goto eeprom_write_end;
+
+#line 30 "../../../include/ztex-conf.h"
+ I2DAT = ((BYTE)((((unsigned short)(addr)) >> 8) & 0xff)) ; // write address
+#line 185 "../../../include/ztex-eeprom.h"
+ if ( i2c_waitWrite() ) goto eeprom_write_end;
+#line 30 "../../../include/ztex-conf.h"
+ I2DAT = ((BYTE)(addr)); // write address
+#line 187 "../../../include/ztex-eeprom.h"
+ if ( i2c_waitWrite() ) goto eeprom_write_end;
+
+ for (; bytes> 8) & 0xff)) );
+ AUTOPTRL2=((BYTE)(&(*debug_stack_ptr)));
+ AUTOPTRH2=((BYTE)((((unsigned short)(&(*debug_stack_ptr)) >> 8) & 0xff)) );
+ _asm
+ push ar2
+ mov r2,#(3);
+ lcall _MEM_COPY1_int
+ pop ar2
+ _endasm;
+#line 52 "../../../include/ztex-debug.h"
+}
+ debug_counter += 1;
+}
+
+/* *********************************************************************
+ ***** debug_add_msg *************************************************
+ ********************************************************************* */
+#line 30 "../../../include/ztex-conf.h"
+// init the variables
+#line 60 "../../../include/ztex-debug.h"
+void debug_init () {
+#line 30 "../../../include/ztex-conf.h"
+ debug_counter = 0; // message number
+#line 62 "../../../include/ztex-debug.h"
+ debug_stack_size = 32;
+ debug_msg_size = 3;
+ debug_stack_ptr = debug_stack;
+}
+
+/* *********************************************************************
+ ***** EP0 vendor request 0x28 ***************************************
+ ********************************************************************* */
+#line 30 "../../../include/ztex-conf.h"
+// read the debug data
+#line 71 "../../../include/ztex-debug.h"
+BYTE debug_read_ep0 () {
+ BYTE b;
+ b = ep0_payload_transfer;
+ if ( b != 0) {
+#line 119 "../../../include/ztex-utils.h"
+ {
+ AUTOPTRL1=((BYTE)(&(*debug_read_addr)));
+ AUTOPTRH1=((BYTE)((((unsigned short)(&(*debug_read_addr)) >> 8) & 0xff)) );
+ AUTOPTRL2=((BYTE)(&(EP0BUF)));
+ AUTOPTRH2=((BYTE)((((unsigned short)(&(EP0BUF)) >> 8) & 0xff)) );
+ _asm
+ push ar2
+ mov r2,#(b);
+ lcall _MEM_COPY1_int
+ pop ar2
+ _endasm;
+#line 75 "../../../include/ztex-debug.h"
+}
+ }
+ debug_read_addr += b;
+ return b;
+}
+
+#line 89 "../../../include/ztex-debug.h"
+
+#line 112 "../../../include/ztex.h"
+
+#line 114 "../../../include/ztex.h"
+
+
+/* *********************************************************************
+ ***** define the descriptors and the interrupt routines *************
+ ********************************************************************* */
+#line 1 "../../../include/ztex-descriptors.h"
+/*!
+ ZTEX Firmware Kit for EZ-USB Microcontrollers
+ Copyright (C) 2009-2010 ZTEX e.K.
+ http://www.ztex.de
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 3 as
+ published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, see http://www.gnu.org/licenses/.
+!*/
+
+/*
+ Defines the USB descriptors
+*/
+
+#line 25 "../../../include/ztex-descriptors.h"
+
+#line 28 "../../../include/ztex-descriptors.h"
+
+xdata at 0x06c BYTE ZTEX_DESCRIPTOR;
+
+/* ZTEX descriptor version. Must be 1. */
+xdata at 0x06c+1 BYTE ZTEX_DESCRIPTOR_VERSION;
+
+/* Must not be modified, ID="ZTEX" */
+xdata at 0x06c+2 BYTE ZTEXID[4];
+
+/*
+ Product ID and firmware compatibility information.
+
+ A firmware can overwrite an installed one if
+ if ( INSTALLED.PRODUCTID[0]==0 || PRODUCTID[0]==0 || INSTALLED.PRODUCTID[0]==PRODUCTID[0] ) &&
+ ( INSTALLED.PRODUCTID[1]==0 || PRODUCTID[1]==0 || INSTALLED.PRODUCTID[1]==PRODUCTID[1] ) &&
+ ( INSTALLED.PRODUCTID[2]==0 || PRODUCTID[2]==0 || INSTALLED.PRODUCTID[2]==PRODUCTID[2] ) &&
+ ( INSTALLED.PRODUCTID[3]==0 || PRODUCTID[3]==0 || INSTALLED.PRODUCTID[3]==PRODUCTID[3] )
+
+ Reserved Product ID's:
+
+ 0.0.0.0 // default Product ID (no product specified)
+ 1.*.*.* // may be used for experimental purposes
+ 10.*.*.* // used for ZTEX products
+ 10.11.*.* // ZTEX USB-FPGA-Module 1.2
+ 10.12.*.* // ZTEX USB-FPGA-Module 1.10
+ 10.20.*.* // ZTEX USB-Module 1.0
+
+ Please contact me (http://www.ztex.de --> Impressum/Kontakt) if you want to register/reserve a Product ID (range).
+*/
+xdata at 0x06c+6 BYTE PRODUCT_ID[4];
+
+/* Firmware version, may be used to distinguish seveveral firmware versions */
+xdata at 0x06c+10 BYTE FW_VERSION;
+
+/* Interface version. Must be 1. */
+xdata at 0x06c+11 BYTE INTERFACE_VERSION;
+
+/*
+ Standard interface capabilities:
+ 0.0 : EEPROM read/write, see ztex-eeprom.h
+ 0.1 : FPGA configuration, see ztex-fpga.h
+ 0.2 : Flash memeory support, see ztex-flash1.h
+ 0.3 : Debug helper, see ztex-debug.h
+*/
+xdata at 0x06c+12 BYTE INTERFACE_CAPABILITIES[6];
+
+/* Space for settings which depends on PRODUCT_ID, e.g extra capabilities */
+xdata at 0x06c+18 BYTE MODULE_RESERVED[12];
+
+/*
+ Serial number string
+ default: "0000000000"
+ Should only be modified by the the firmware upload software
+*/
+xdata at 0x06c+30 BYTE SN_STRING[10];
+
+/* Are Vendor ID and Product ID defined? */
+#line 88 "../../../include/ztex-descriptors.h"
+
+#line 92 "../../../include/ztex-descriptors.h"
+
+/* Prepare the Interfaces, i.e. check which interfaces are defined */
+#line 109 "../../../include/ztex-descriptors.h"
+
+#line 94 "../../../include/ztex-descriptors.h"
+
+#line 30 "../../../include/ztex-conf.h"
+//Interface 0: YES
+#line 94 "../../../include/ztex-descriptors.h"
+
+#line 30 "../../../include/ztex-conf.h"
+//Interface 1: NO
+#line 94 "../../../include/ztex-descriptors.h"
+
+#line 30 "../../../include/ztex-conf.h"
+//Interface 2: NO
+#line 94 "../../../include/ztex-descriptors.h"
+
+#line 30 "../../../include/ztex-conf.h"
+//Interface 3: NO
+#line 114 "../../../include/ztex-descriptors.h"
+
+/* define the ZTEX descriptor */
+void abscode_identity() _naked
+{
+ _asm
+ .area ABSCODE (ABS,CODE)
+
+ .org 0x06c
+ .db 40
+
+ .org _ZTEX_DESCRIPTOR_VERSION
+ .db 1
+
+ .org _ZTEXID
+ .ascii "ZTEX"
+
+ .org _PRODUCT_ID
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+
+ .org _FW_VERSION
+ .db 0
+
+ .org _INTERFACE_VERSION
+ .db 1
+
+ .org _INTERFACE_CAPABILITIES
+#line 158 "../../../include/ztex-descriptors.h"
+ .db 0 + 1 + 8
+#line 160 "../../../include/ztex-descriptors.h"
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+
+ .org _MODULE_RESERVED
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+ .db 0
+
+ .org _SN_STRING
+ .ascii "0000000000"
+
+ .area CSEG (CODE)
+ _endasm;
+}
+
+/* *********************************************************************
+ ***** strings *******************************************************
+ ********************************************************************* */
+code char manufacturerString[] = "ZTEX";
+code char productString[] = "debug for EZ-USB devices";
+code char configurationString[] = "(unknown)";
+
+
+/* *********************************************************************
+ ***** descriptors ***************************************************
+ ********************************************************************* */
+#line 240 "../../../include/ztex-descriptors.h"
+
+#line 304 "../../../include/ztex-descriptors.h"
+
+#line 306 "../../../include/ztex-descriptors.h"
+
+#line 308 "../../../include/ztex-descriptors.h"
+code BYTE PadByte = 0;
+#line 310 "../../../include/ztex-descriptors.h"
+
+code BYTE DeviceDescriptor[] =
+ {
+#line 30 "../../../include/ztex-conf.h"
+ 18, // 0, Descriptor length
+#line 30 "../../../include/ztex-conf.h"
+ 0x01, // 1, Descriptor type
+#line 30 "../../../include/ztex-conf.h"
+ 0x00, // 2, Specification Version (L)
+#line 30 "../../../include/ztex-conf.h"
+ 0x02, // 3, Specification Version (H)
+#line 30 "../../../include/ztex-conf.h"
+ 0xff, // 4, Device class
+#line 30 "../../../include/ztex-conf.h"
+ 0xff, // 5, Device sub-class
+#line 30 "../../../include/ztex-conf.h"
+ 0xff, // 6, Device protocol
+#line 30 "../../../include/ztex-conf.h"
+ 64, // 7, Maximum packet size for EP0
+#line 30 "../../../include/ztex-conf.h"
+ (0x221a) & 255, // 8, VENDOR_ID (L)
+#line 30 "../../../include/ztex-conf.h"
+ (0x221a) >> 8, // 9, VENDOR_ID (H)
+#line 30 "../../../include/ztex-conf.h"
+ (0x100) & 255, // 10, PRODUCT_ID (L)
+#line 30 "../../../include/ztex-conf.h"
+ (0x100) >> 8, // 11, PRODUCT_ID (H)
+#line 30 "../../../include/ztex-conf.h"
+ 0x00, // 12, device release number (BCD, L)
+#line 30 "../../../include/ztex-conf.h"
+ 0x00, // 13, device release number (BCD, H)
+#line 30 "../../../include/ztex-conf.h"
+ 1, // 14, Manufacturer string index
+#line 30 "../../../include/ztex-conf.h"
+ 2, // 15, Product string index
+#line 30 "../../../include/ztex-conf.h"
+ 3, // 16, Serial number string index
+#line 30 "../../../include/ztex-conf.h"
+ 1 // 17, Number of configurations
+#line 331 "../../../include/ztex-descriptors.h"
+ };
+
+code BYTE DeviceQualifierDescriptor[] =
+ {
+#line 30 "../../../include/ztex-conf.h"
+ 10, // 0, Descriptor length
+#line 30 "../../../include/ztex-conf.h"
+ 0x06, // 1, Decriptor type
+#line 30 "../../../include/ztex-conf.h"
+ 0x00, // 2, Specification Version (L)
+#line 30 "../../../include/ztex-conf.h"
+ 0x02, // 3, Specification Version (H)
+#line 30 "../../../include/ztex-conf.h"
+ 0xff, // 4, Device class
+#line 30 "../../../include/ztex-conf.h"
+ 0xff, // 5, Device sub-class
+#line 30 "../../../include/ztex-conf.h"
+ 0xff, // 6, Device protocol
+#line 30 "../../../include/ztex-conf.h"
+ 64, // 7, Maximum packet size (EP0?)
+#line 30 "../../../include/ztex-conf.h"
+ 1, // 8, Number of configurations
+#line 30 "../../../include/ztex-conf.h"
+ 0, // 9, Reserved, must be zero
+#line 345 "../../../include/ztex-descriptors.h"
+ };
+
+code BYTE HighSpeedConfigDescriptor[] =
+ {
+#line 30 "../../../include/ztex-conf.h"
+ 9 // 0, Descriptor length
+#line 30 "../../../include/ztex-conf.h"
+ ,0x02 // 1, Decriptor type
+#line 30 "../../../include/ztex-conf.h"
+ ,sizeof(HighSpeedConfigDescriptor) & 0xff // 2, Total length (LSB)
+#line 30 "../../../include/ztex-conf.h"
+// ,sizeof(HighSpeedConfigDescriptor) >> 8 // 3, Total length (MB)
+#line 30 "../../../include/ztex-conf.h"
+ ,0 // 3, To avoid warnings, descriptor length will never exceed 255 bytes
+#line 30 "../../../include/ztex-conf.h"
+ ,0 // 4, Number of Interfaces
+#line 357 "../../../include/ztex-descriptors.h"
+ +1
+#line 368 "../../../include/ztex-descriptors.h"
+
+#line 30 "../../../include/ztex-conf.h"
+ ,1 // 5, Configuration number
+#line 30 "../../../include/ztex-conf.h"
+ ,4 // 6, Configuration string
+#line 30 "../../../include/ztex-conf.h"
+ ,0xc0 // 7, Attributes: bus and self powered
+#line 30 "../../../include/ztex-conf.h"
+ ,50 // Maximum bus power 100 mA
+#line 241 "../../../include/ztex-descriptors.h"
+
+#line 30 "../../../include/ztex-conf.h"
+ // Interface 0 descriptor
+#line 30 "../../../include/ztex-conf.h"
+ ,9 // 0, Descriptor length
+#line 30 "../../../include/ztex-conf.h"
+ ,0x04 // 1, Descriptor type
+#line 30 "../../../include/ztex-conf.h"
+ ,0 // 2, Zero-based index of this interface
+#line 30 "../../../include/ztex-conf.h"
+ ,0 // 3, Alternate setting 0
+#line 30 "../../../include/ztex-conf.h"
+ ,0 // 4, Number of end points
+#line 264 "../../../include/ztex-descriptors.h"
+ +1
+#line 267 "../../../include/ztex-descriptors.h"
+ +1
+#line 30 "../../../include/ztex-conf.h"
+ ,0xff // 5, Interface class
+#line 30 "../../../include/ztex-conf.h"
+ ,0xff // 6, Interface sub class
+#line 30 "../../../include/ztex-conf.h"
+ ,0xff // 7, Interface protocol
+#line 30 "../../../include/ztex-conf.h"
+ ,0 // 8, Index of interface string descriptor
+#line 198 "../../../include/ztex-descriptors.h"
+
+#line 30 "../../../include/ztex-conf.h"
+ // Endpoint 1IN descriptor
+#line 30 "../../../include/ztex-conf.h"
+ ,7 // 0, Descriptor length
+#line 30 "../../../include/ztex-conf.h"
+ ,5 // 1, Descriptor type
+#line 30 "../../../include/ztex-conf.h"
+ ,0x81 // 2, direction=output, address=1
+#line 30 "../../../include/ztex-conf.h"
+ ,2 // 3, BULK transferns
+#line 30 "../../../include/ztex-conf.h"
+ ,512 & 0xff // 4, max. packet size (L)
+#line 30 "../../../include/ztex-conf.h"
+ ,512 >> 8 // 5, max. packet size (H)
+#line 30 "../../../include/ztex-conf.h"
+ ,0 // 6, Polling interval
+#line 286 "../../../include/ztex-descriptors.h"
+
+#line 198 "../../../include/ztex-descriptors.h"
+
+#line 30 "../../../include/ztex-conf.h"
+ // Endpoint 1OUT descriptor
+#line 30 "../../../include/ztex-conf.h"
+ ,7 // 0, Descriptor length
+#line 30 "../../../include/ztex-conf.h"
+ ,5 // 1, Descriptor type
+#line 30 "../../../include/ztex-conf.h"
+ ,0x01 // 2, direction=output, address=1
+#line 30 "../../../include/ztex-conf.h"
+ ,2 // 3, BULK transferns
+#line 30 "../../../include/ztex-conf.h"
+ ,512 & 0xff // 4, max. packet size (L)
+#line 30 "../../../include/ztex-conf.h"
+ ,512 >> 8 // 5, max. packet size (H)
+#line 30 "../../../include/ztex-conf.h"
+ ,0 // 6, Polling interval
+#line 289 "../../../include/ztex-descriptors.h"
+
+#line 374 "../../../include/ztex-descriptors.h"
+
+#line 386 "../../../include/ztex-descriptors.h"
+ };
+code BYTE HighSpeedConfigDescriptor_PadByte[2-(sizeof(HighSpeedConfigDescriptor) & 1)] = { 0 };
+
+code BYTE FullSpeedConfigDescriptor[] =
+ {
+#line 30 "../../../include/ztex-conf.h"
+ 9 // 0, Descriptor length
+#line 30 "../../../include/ztex-conf.h"
+ ,0x02 // 1, Decriptor type
+#line 30 "../../../include/ztex-conf.h"
+ ,sizeof(FullSpeedConfigDescriptor) & 0xff // 2, Total length (LSB)
+#line 30 "../../../include/ztex-conf.h"
+// ,sizeof(FullSpeedConfigDescriptor) >> 8 // 3, Total length (MSB)
+#line 30 "../../../include/ztex-conf.h"
+ ,0 // 3, To avoid warnings, descriptor length will never exceed 255 bytes
+#line 30 "../../../include/ztex-conf.h"
+ ,0 // 4, Number of Interfaces
+#line 398 "../../../include/ztex-descriptors.h"
+ +1
+#line 409 "../../../include/ztex-descriptors.h"
+
+#line 30 "../../../include/ztex-conf.h"
+ ,1 // 5, Configuration number
+#line 30 "../../../include/ztex-conf.h"
+ ,4 // 6, Configuration string
+#line 30 "../../../include/ztex-conf.h"
+ ,0xc0 // 7, Attributes: bus and self powered
+#line 30 "../../../include/ztex-conf.h"
+ ,50 // Maximum bus power 100 mA
+#line 241 "../../../include/ztex-descriptors.h"
+
+#line 30 "../../../include/ztex-conf.h"
+ // Interface 0 descriptor
+#line 30 "../../../include/ztex-conf.h"
+ ,9 // 0, Descriptor length
+#line 30 "../../../include/ztex-conf.h"
+ ,0x04 // 1, Descriptor type
+#line 30 "../../../include/ztex-conf.h"
+ ,0 // 2, Zero-based index of this interface
+#line 30 "../../../include/ztex-conf.h"
+ ,0 // 3, Alternate setting 0
+#line 30 "../../../include/ztex-conf.h"
+ ,0 // 4, Number of end points
+#line 264 "../../../include/ztex-descriptors.h"
+ +1
+#line 267 "../../../include/ztex-descriptors.h"
+ +1
+#line 30 "../../../include/ztex-conf.h"
+ ,0xff // 5, Interface class
+#line 30 "../../../include/ztex-conf.h"
+ ,0xff // 6, Interface sub class
+#line 30 "../../../include/ztex-conf.h"
+ ,0xff // 7, Interface protocol
+#line 30 "../../../include/ztex-conf.h"
+ ,0 // 8, Index of interface string descriptor
+#line 198 "../../../include/ztex-descriptors.h"
+
+#line 30 "../../../include/ztex-conf.h"
+ // Endpoint 1IN descriptor
+#line 30 "../../../include/ztex-conf.h"
+ ,7 // 0, Descriptor length
+#line 30 "../../../include/ztex-conf.h"
+ ,5 // 1, Descriptor type
+#line 30 "../../../include/ztex-conf.h"
+ ,0x81 // 2, direction=output, address=1
+#line 30 "../../../include/ztex-conf.h"
+ ,2 // 3, BULK transferns
+#line 30 "../../../include/ztex-conf.h"
+ ,64 // 4, max. packet size (L)
+#line 30 "../../../include/ztex-conf.h"
+ ,0 // 5, max. packet size (H)
+#line 30 "../../../include/ztex-conf.h"
+ ,0 // 6, Polling interval
+#line 286 "../../../include/ztex-descriptors.h"
+
+#line 198 "../../../include/ztex-descriptors.h"
+
+#line 30 "../../../include/ztex-conf.h"
+ // Endpoint 1OUT descriptor
+#line 30 "../../../include/ztex-conf.h"
+ ,7 // 0, Descriptor length
+#line 30 "../../../include/ztex-conf.h"
+ ,5 // 1, Descriptor type
+#line 30 "../../../include/ztex-conf.h"
+ ,0x01 // 2, direction=output, address=1
+#line 30 "../../../include/ztex-conf.h"
+ ,2 // 3, BULK transferns
+#line 30 "../../../include/ztex-conf.h"
+ ,64 // 4, max. packet size (L)
+#line 30 "../../../include/ztex-conf.h"
+ ,0 // 5, max. packet size (H)
+#line 30 "../../../include/ztex-conf.h"
+ ,0 // 6, Polling interval
+#line 289 "../../../include/ztex-descriptors.h"
+
+#line 415 "../../../include/ztex-descriptors.h"
+
+#line 426 "../../../include/ztex-descriptors.h"
+ };
+code BYTE FullSpeedConfigDescriptor_PadByte[2-(sizeof(FullSpeedConfigDescriptor) & 1)] = { 0 };
+
+code BYTE EmptyStringDescriptor[] =
+ {
+#line 30 "../../../include/ztex-conf.h"
+ sizeof(EmptyStringDescriptor), // Length
+#line 30 "../../../include/ztex-conf.h"
+ 0x03, // Descriptor type
+#line 433 "../../../include/ztex-descriptors.h"
+ 0, 0
+ };
+
+#line 119 "../../../include/ztex.h"
+
+#line 1 "../../../include/ztex-isr.h"
+/*!
+ ZTEX Firmware Kit for EZ-USB Microcontrollers
+ Copyright (C) 2009-2010 ZTEX e.K.
+ http://www.ztex.de
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 3 as
+ published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, see http://www.gnu.org/licenses/.
+!*/
+
+/*
+ Interrupt routines
+*/
+
+#line 25 "../../../include/ztex-isr.h"
+
+xdata BYTE ep0_prev_setup_request = 0xff;
+xdata BYTE ep0_vendor_cmd_setup = 0;
+
+#line 30 "../../../include/ztex-conf.h"
+xdata WORD ISOFRAME_COUNTER[4] = {0, 0, 0, 0}; // counters for iso frames automatically reset by sync frame request
+#line 30 "../../../include/ztex-isr.h"
+
+/* *********************************************************************
+ ***** toggleData ****************************************************
+ ********************************************************************* */
+static void resetToggleData () {
+#line 44 "../../../include/ztex-isr.h"
+
+#line 30 "../../../include/ztex-conf.h"
+ TOGCTL = 0; // EP0 out
+#line 46 "../../../include/ztex-isr.h"
+ TOGCTL = 0 | 32;
+#line 30 "../../../include/ztex-conf.h"
+ TOGCTL = 0x10; // EP0 in
+#line 48 "../../../include/ztex-isr.h"
+ TOGCTL = 0x10 | 32;
+#line 30 "../../../include/ztex-conf.h"
+ TOGCTL = 1; // EP1 out
+#line 51 "../../../include/ztex-isr.h"
+ TOGCTL = 1 | 32;
+#line 30 "../../../include/ztex-conf.h"
+ TOGCTL = 0x11; // EP1 in
+#line 55 "../../../include/ztex-isr.h"
+ TOGCTL = 0x11 | 32;
+#line 35 "../../../include/ztex-isr.h"
+
+#line 35 "../../../include/ztex-isr.h"
+
+#line 35 "../../../include/ztex-isr.h"
+
+#line 35 "../../../include/ztex-isr.h"
+
+#line 61 "../../../include/ztex-isr.h"
+}
+
+/* *********************************************************************
+ ***** getStringDescriptor *******************************************
+ ********************************************************************* */
+#line 67 "../../../include/ztex-isr.h"
+
+static void sendStringDescriptor (BYTE loAddr, BYTE hiAddr, BYTE size)
+{
+ BYTE i;
+ if ( size > 31)
+ size = 31;
+ AUTOPTRSETUP = 7;
+ AUTOPTRL1 = loAddr;
+ AUTOPTRH1 = hiAddr;
+ AUTOPTRL2 = (BYTE)(((unsigned short)(&EP0BUF))+1);
+ AUTOPTRH2 = (BYTE)((((unsigned short)(&EP0BUF))+1) >> 8);
+ XAUTODAT2 = 3;
+ for (i=0; i 64 ) ? 64 : ep0_payload_remaining;
+ ep0_payload_remaining -= ep0_payload_transfer;
+}
+
+
+/* *********************************************************************
+ ***** ep0_vendor_cmd_su **********************************************
+ ********************************************************************* */
+static void ep0_vendor_cmd_su() {
+ switch ( ep0_prev_setup_request ) {
+#line 112 "../../../include/ztex-conf.h"
+
+case 0x39:
+#line 30 "../../../include/ztex-conf.h"
+ // write to EEPROM
+#line 233 "../../../include/ztex-eeprom.h"
+ eeprom_write_checksum = 0;
+ eeprom_write_bytes = 0;
+#line 30 "../../../include/ztex-conf.h"
+ eeprom_addr = ( SETUPDAT[3] << 8) | SETUPDAT[2]; // Address
+#line 114 "../../../include/ztex-conf.h"
+
+ break;
+#line 104 "../../../include/ztex-isr.h"
+
+ default:
+#line 30 "../../../include/ztex-conf.h"
+ EP0CS |= 0x01; // set stall, unknown request
+#line 107 "../../../include/ztex-isr.h"
+ }
+}
+
+/* *********************************************************************
+ ***** SUDAV_ISR *****************************************************
+ ********************************************************************* */
+static void SUDAV_ISR () interrupt
+{
+ BYTE a;
+ ep0_prev_setup_request = bRequest;
+ SUDPTRCTL = 1;
+
+#line 30 "../../../include/ztex-conf.h"
+ // standard USB requests
+#line 120 "../../../include/ztex-isr.h"
+ switch ( bRequest ) {
+#line 30 "../../../include/ztex-conf.h"
+ case 0x00: // get status
+#line 122 "../../../include/ztex-isr.h"
+ switch(SETUPDAT[0]) {
+#line 30 "../../../include/ztex-conf.h"
+ case 0x80: // self powered and remote
+#line 30 "../../../include/ztex-conf.h"
+ EP0BUF[0] = 0; // not self-powered, no remote wakeup
+#line 125 "../../../include/ztex-isr.h"
+ EP0BUF[1] = 0;
+ EP0BCH = 0;
+ EP0BCL = 2;
+ break;
+#line 30 "../../../include/ztex-conf.h"
+ case 0x81: // interface (reserved)
+#line 30 "../../../include/ztex-conf.h"
+ EP0BUF[0] = 0; // always return zeros
+#line 131 "../../../include/ztex-isr.h"
+ EP0BUF[1] = 0;
+ EP0BCH = 0;
+ EP0BCL = 2;
+ break;
+ case 0x82:
+ switch ( SETUPDAT[4] ) {
+ case 0x00 :
+ case 0x80 :
+ EP0BUF[0] = EP0CS & 1;
+ break;
+ case 0x01 :
+ EP0BUF[0] = EP1OUTCS & 1;
+ break;
+ case 0x81 :
+ EP0BUF[0] = EP1INCS & 1;
+ break;
+ default:
+ EP0BUF[0] = EPXCS[ ((SETUPDAT[4] >> 1)-1) & 3 ] & 1;
+ break;
+ }
+ EP0BUF[1] = 0;
+ EP0BCH = 0;
+ EP0BCL = 2;
+ break;
+ }
+ break;
+#line 30 "../../../include/ztex-conf.h"
+ case 0x01: // disable feature, e.g. remote wake, stall bit
+#line 158 "../../../include/ztex-isr.h"
+ if ( SETUPDAT[0] == 2 && SETUPDAT[2] == 0 ) {
+ switch ( SETUPDAT[4] ) {
+ case 0x00 :
+ case 0x80 :
+ EP0CS &= ~1;
+ break;
+ case 0x01 :
+ EP1OUTCS &= ~1;
+ break;
+ case 0x81 :
+ EP1INCS &= ~1;
+ break;
+ default:
+ EPXCS[ ((SETUPDAT[4] >> 1)-1) & 3 ] &= ~1;
+ break;
+ }
+ }
+ break;
+#line 30 "../../../include/ztex-conf.h"
+ case 0x03: // enable feature, e.g. remote wake, test mode, stall bit
+#line 177 "../../../include/ztex-isr.h"
+ if ( SETUPDAT[0] == 2 && SETUPDAT[2] == 0 ) {
+ switch ( SETUPDAT[4] ) {
+ case 0x00 :
+ case 0x80 :
+ EP0CS |= 1;
+ break;
+ case 0x01 :
+ EP1OUTCS |= 1;
+ break;
+ case 0x81 :
+ EP1INCS |= 1;
+ break;
+ default:
+ EPXCS[ ((SETUPDAT[4] >> 1)-1) & 3 ] |= ~1;
+ break;
+ }
+ a = ( (SETUPDAT[4] & 0x80) >> 3 ) | (SETUPDAT[4] & 0x0f);
+ TOGCTL = a;
+ TOGCTL = a | 32;
+ }
+ break;
+#line 30 "../../../include/ztex-conf.h"
+ case 0x06: // get descriptor
+#line 199 "../../../include/ztex-isr.h"
+ switch(SETUPDAT[3]) {
+#line 30 "../../../include/ztex-conf.h"
+ case 0x01: // device
+#line 201 "../../../include/ztex-isr.h"
+ SUDPTRH = ((BYTE)((((unsigned short)(&DeviceDescriptor)) >> 8) & 0xff)) ;
+ SUDPTRL = ((BYTE)(&DeviceDescriptor));
+ break;
+#line 30 "../../../include/ztex-conf.h"
+ case 0x02: // configuration
+#line 205 "../../../include/ztex-isr.h"
+ if (USBCS & 128) {
+ SUDPTRH = ((BYTE)((((unsigned short)(&HighSpeedConfigDescriptor)) >> 8) & 0xff)) ;
+ SUDPTRL = ((BYTE)(&HighSpeedConfigDescriptor));
+ }
+ else {
+ SUDPTRH = ((BYTE)((((unsigned short)(&FullSpeedConfigDescriptor)) >> 8) & 0xff)) ;
+ SUDPTRL = ((BYTE)(&FullSpeedConfigDescriptor));
+ }
+ break;
+#line 30 "../../../include/ztex-conf.h"
+ case 0x03: // strings
+#line 215 "../../../include/ztex-isr.h"
+ switch (SETUPDAT[2]) {
+ case 1:
+ sendStringDescriptor(((BYTE)(manufacturerString)), ((BYTE)((((unsigned short)(manufacturerString)) >> 8) & 0xff)) , sizeof(manufacturerString) );
+ break;
+ case 2:
+ sendStringDescriptor(((BYTE)(productString)), ((BYTE)((((unsigned short)(productString)) >> 8) & 0xff)) , sizeof(productString) );
+ break;
+ case 3:
+ sendStringDescriptor(((BYTE)(SN_STRING)), ((BYTE)((((unsigned short)(SN_STRING)) >> 8) & 0xff)) , sizeof(SN_STRING) );
+ break;
+ case 4:
+ sendStringDescriptor(((BYTE)(configurationString)), ((BYTE)((((unsigned short)(configurationString)) >> 8) & 0xff)) , sizeof(configurationString) );
+ break;
+ default:
+ SUDPTRH = ((BYTE)((((unsigned short)(&EmptyStringDescriptor)) >> 8) & 0xff)) ;
+ SUDPTRL = ((BYTE)(&EmptyStringDescriptor));
+ break;
+ }
+ break;
+#line 30 "../../../include/ztex-conf.h"
+ case 0x06: // device qualifier
+#line 235 "../../../include/ztex-isr.h"
+ SUDPTRH = ((BYTE)((((unsigned short)(&DeviceQualifierDescriptor)) >> 8) & 0xff)) ;
+ SUDPTRL = ((BYTE)(&DeviceQualifierDescriptor));
+ break;
+#line 30 "../../../include/ztex-conf.h"
+ case 0x07: // other speed configuration
+#line 239 "../../../include/ztex-isr.h"
+ if (USBCS & 128) {
+ SUDPTRH = ((BYTE)((((unsigned short)(&FullSpeedConfigDescriptor)) >> 8) & 0xff)) ;
+ SUDPTRL = ((BYTE)(&FullSpeedConfigDescriptor));
+ }
+ else {
+ SUDPTRH = ((BYTE)((((unsigned short)(&HighSpeedConfigDescriptor)) >> 8) & 0xff)) ;
+ SUDPTRL = ((BYTE)(&HighSpeedConfigDescriptor));
+ }
+ break;
+ default:
+#line 30 "../../../include/ztex-conf.h"
+ EP0CS |= 0x01; // set stall, unknown descriptor
+#line 250 "../../../include/ztex-isr.h"
+ }
+ break;
+#line 30 "../../../include/ztex-conf.h"
+ case 0x07: // set descriptor
+#line 253 "../../../include/ztex-isr.h"
+ break;
+#line 30 "../../../include/ztex-conf.h"
+ case 0x08: // get configuration
+#line 30 "../../../include/ztex-conf.h"
+ EP0BUF[0] = 0; // only one configuration
+#line 256 "../../../include/ztex-isr.h"
+ EP0BCH = 0;
+ EP0BCL = 1;
+ break;
+#line 30 "../../../include/ztex-conf.h"
+ case 0x09: // set configuration
+#line 260 "../../../include/ztex-isr.h"
+ resetToggleData();
+#line 30 "../../../include/ztex-conf.h"
+ break; // do nothing since we have only one configuration
+#line 30 "../../../include/ztex-conf.h"
+ case 0x0a: // get alternate setting for an interface
+#line 30 "../../../include/ztex-conf.h"
+ EP0BUF[0] = 0; // only one alternate setting
+#line 264 "../../../include/ztex-isr.h"
+ EP0BCH = 0;
+ EP0BCL = 1;
+ break;
+#line 30 "../../../include/ztex-conf.h"
+ case 0x0b: // set alternate setting for an interface
+#line 268 "../../../include/ztex-isr.h"
+ resetToggleData();
+#line 30 "../../../include/ztex-conf.h"
+ break; // do nothing since we have only on alternate setting
+#line 30 "../../../include/ztex-conf.h"
+ case 0x0c: // sync frame
+#line 271 "../../../include/ztex-isr.h"
+ if ( SETUPDAT[0] == 0x82 ) {
+ ISOFRAME_COUNTER[ ((SETUPDAT[4] >> 1)-1) & 3 ] = 0;
+#line 30 "../../../include/ztex-conf.h"
+ EP0BUF[0] = USBFRAMEL; // use current frame as sync frame, i hope that works
+#line 274 "../../../include/ztex-isr.h"
+ EP0BUF[1] = USBFRAMEH;
+ EP0BCH = 0;
+ EP0BCL = 2;
+ }
+#line 30 "../../../include/ztex-conf.h"
+ break; // do nothing since we have only on alternate setting
+#line 279 "../../../include/ztex-isr.h"
+
+ }
+
+#line 30 "../../../include/ztex-conf.h"
+ // vendor request and commands
+#line 283 "../../../include/ztex-isr.h"
+ switch ( bmRequestType ) {
+#line 30 "../../../include/ztex-conf.h"
+ case 0xc0: // vendor request
+#line 285 "../../../include/ztex-isr.h"
+ ep0_payload_remaining = (SETUPDAT[7] << 8) | SETUPDAT[6];
+ ep0_payload_update();
+
+ switch ( bRequest ) {
+#line 30 "../../../include/ztex-conf.h"
+ case 0x22: // get ZTEX descriptor
+#line 290 "../../../include/ztex-isr.h"
+ SUDPTRCTL = 0;
+ EP0BCH = 0;
+ EP0BCL = 40;
+ SUDPTRH = ((BYTE)((((unsigned short)(0x06c)) >> 8) & 0xff)) ;
+ SUDPTRL = ((BYTE)(0x06c));
+ break;
+#line 89 "../../../include/ztex-conf.h"
+
+case 0x38:
+#line 30 "../../../include/ztex-conf.h"
+ // read from EEPROM
+#line 30 "../../../include/ztex-conf.h"
+ eeprom_addr = (SETUPDAT[3] << 8) | SETUPDAT[2]; // Address
+#line 216 "../../../include/ztex-eeprom.h"
+ EP0BCH = 0;
+ EP0BCL = eeprom_read_ep0();
+#line 91 "../../../include/ztex-conf.h"
+
+ break;
+#line 89 "../../../include/ztex-conf.h"
+
+case 0x3A:
+#line 30 "../../../include/ztex-conf.h"
+ // EEPROM state
+#line 244 "../../../include/ztex-eeprom.h"
+ EP0BUF[0] = ((BYTE)(eeprom_write_bytes));
+ EP0BUF[1] = ((BYTE)((((unsigned short)(eeprom_write_bytes)) >> 8) & 0xff)) ;
+ EP0BUF[2] = eeprom_write_checksum;
+#line 30 "../../../include/ztex-conf.h"
+ EP0BUF[3] = eeprom_select(0,1); // 1 means busy or error
+#line 248 "../../../include/ztex-eeprom.h"
+ EP0BCH = 0;
+ EP0BCL = 4;
+#line 91 "../../../include/ztex-conf.h"
+
+ break;
+#line 89 "../../../include/ztex-conf.h"
+
+case 0x28:
+#line 30 "../../../include/ztex-conf.h"
+ // read the debug data
+#line 82 "../../../include/ztex-debug.h"
+ debug_read_addr = (__xdata BYTE*)&debug_counter;
+ EP0BCH = 0;
+ EP0BCL = debug_read_ep0();
+#line 91 "../../../include/ztex-conf.h"
+
+ break;
+#line 296 "../../../include/ztex-isr.h"
+
+ default:
+#line 30 "../../../include/ztex-conf.h"
+ EP0CS |= 0x01; // set stall, unknown request
+#line 299 "../../../include/ztex-isr.h"
+ }
+ break;
+#line 30 "../../../include/ztex-conf.h"
+ case 0x40: // vendor command
+#line 302 "../../../include/ztex-isr.h"
+ /* vendor commands may overlap if they are send without pause. To avoid
+ synchronization problems the setup sequences are executed in EP0OUT_ISR, i.e.
+ after the first packet of payload date received. */
+ if ( SETUPDAT[7]!=0 || SETUPDAT[6]!=0 ) {
+ ep0_vendor_cmd_setup = 1;
+ EP0BCL = 0;
+#line 30 "../../../include/ztex-conf.h"
+ EXIF &= ~16; // clear main USB interrupt flag
+#line 30 "../../../include/ztex-conf.h"
+ USBIRQ = 1; // clear SUADV IRQ
+#line 30 "../../../include/ztex-conf.h"
+ return; // don't clear HSNAK bit. This is done after the command has completed
+#line 311 "../../../include/ztex-isr.h"
+ }
+#line 30 "../../../include/ztex-conf.h"
+ ep0_vendor_cmd_su(); // setup sequences of vendor command with no payload ara executed immediately
+#line 313 "../../../include/ztex-isr.h"
+ EP0BCL = 0;
+ break;
+ }
+
+#line 30 "../../../include/ztex-conf.h"
+ EXIF &= ~16; // clear main USB interrupt flag
+#line 30 "../../../include/ztex-conf.h"
+ USBIRQ = 1; // clear SUADV IRQ
+#line 30 "../../../include/ztex-conf.h"
+ EP0CS |= 0x80; // clear the HSNAK bit
+#line 320 "../../../include/ztex-isr.h"
+}
+
+/* *********************************************************************
+ ***** SOF_ISR *******************************************************
+ ********************************************************************* */
+void SOF_ISR() interrupt
+{
+ EXIF &= ~16;
+ USBIRQ = 2;
+}
+
+/* *********************************************************************
+ ***** SUTOK_ISR *****************************************************
+ ********************************************************************* */
+void SUTOK_ISR() interrupt
+{
+ EXIF &= ~16;
+ USBIRQ = 4;
+}
+
+/* *********************************************************************
+ ***** SUSP_ISR ******************************************************
+ ********************************************************************* */
+void SUSP_ISR() interrupt
+{
+ EXIF &= ~16;
+ USBIRQ = 8;
+}
+
+/* *********************************************************************
+ ***** URES_ISR ******************************************************
+ ********************************************************************* */
+void URES_ISR() interrupt
+{
+ EXIF &= ~16;
+ USBIRQ = 16;
+}
+
+/* *********************************************************************
+ ***** HSGRANT_ISR ***************************************************
+ ********************************************************************* */
+void HSGRANT_ISR() interrupt
+{
+ EXIF &= ~16;
+ USBIRQ = 32;
+}
+
+/* *********************************************************************
+ ***** EP0ACK_ISR ****************************************************
+ ********************************************************************* */
+void EP0ACK_ISR() interrupt
+{
+#line 30 "../../../include/ztex-conf.h"
+ EXIF &= ~16; // clear USB interrupt flag
+#line 30 "../../../include/ztex-conf.h"
+ USBIRQ = 64; // clear EP0ACK IRQ
+#line 374 "../../../include/ztex-isr.h"
+}
+
+/* *********************************************************************
+ ***** EP0IN_ISR *****************************************************
+ ********************************************************************* */
+static void EP0IN_ISR () interrupt
+{
+#line 30 "../../../include/ztex-conf.h"
+ EUSB = 0; // block all USB interrupts
+#line 382 "../../../include/ztex-isr.h"
+ ep0_payload_update();
+ switch ( ep0_prev_setup_request ) {
+#line 94 "../../../include/ztex-conf.h"
+
+case 0x38:
+#line 218 "../../../include/ztex-eeprom.h"
+
+ EP0BCH = 0;
+ EP0BCL = eeprom_read_ep0();
+#line 96 "../../../include/ztex-conf.h"
+
+ break;
+#line 94 "../../../include/ztex-conf.h"
+
+case 0x3A:
+
+ break;
+#line 94 "../../../include/ztex-conf.h"
+
+case 0x28:
+#line 85 "../../../include/ztex-debug.h"
+
+ EP0BCH = 0;
+ EP0BCL = debug_read_ep0();
+#line 96 "../../../include/ztex-conf.h"
+
+ break;
+#line 384 "../../../include/ztex-isr.h"
+
+ default:
+ EP0BCH = 0;
+ EP0BCL = 0;
+ }
+#line 30 "../../../include/ztex-conf.h"
+ EXIF &= ~16; // clear USB interrupt flag
+#line 30 "../../../include/ztex-conf.h"
+ EPIRQ = 1; // clear EP0IN IRQ
+#line 391 "../../../include/ztex-isr.h"
+ EUSB = 1;
+}
+
+/* *********************************************************************
+ ***** EP0OUT_ISR ****************************************************
+ ********************************************************************* */
+static void EP0OUT_ISR () interrupt
+{
+#line 30 "../../../include/ztex-conf.h"
+ EUSB = 0; // block all USB interrupts
+#line 400 "../../../include/ztex-isr.h"
+ if ( ep0_vendor_cmd_setup ) {
+ ep0_vendor_cmd_setup = 0;
+ ep0_payload_remaining = (SETUPDAT[7] << 8) | SETUPDAT[6];
+ ep0_vendor_cmd_su();
+ }
+
+ ep0_payload_update();
+
+ switch ( ep0_prev_setup_request ) {
+#line 117 "../../../include/ztex-conf.h"
+
+case 0x39:
+#line 236 "../../../include/ztex-eeprom.h"
+
+ eeprom_write_ep0(EP0BCL);
+#line 119 "../../../include/ztex-conf.h"
+
+ break;
+#line 409 "../../../include/ztex-isr.h"
+
+ }
+
+ EP0BCL = 0;
+
+#line 30 "../../../include/ztex-conf.h"
+ EXIF &= ~16; // clear main USB interrupt flag
+#line 30 "../../../include/ztex-conf.h"
+ EPIRQ = 2; // clear EP0OUT IRQ
+#line 416 "../../../include/ztex-isr.h"
+ if ( ep0_payload_remaining == 0 ) {
+#line 30 "../../../include/ztex-conf.h"
+ EP0CS |= 0x80; // clear the HSNAK bit
+#line 418 "../../../include/ztex-isr.h"
+ }
+ EUSB = 1;
+}
+
+
+/* *********************************************************************
+ ***** EP1IN_ISR *****************************************************
+ ********************************************************************* */
+void EP1IN_ISR() interrupt
+{
+ EXIF &= ~16;
+ EPIRQ = 4;
+
+}
+
+/* *********************************************************************
+ ***** EP1OUT_ISR ****************************************************
+ ********************************************************************* */
+void EP1OUT_ISR() interrupt
+{
+ EXIF &= ~16;
+ EPIRQ = 8;
+}
+
+/* *********************************************************************
+ ***** EP2_ISR *******************************************************
+ ********************************************************************* */
+void EP2_ISR() interrupt
+{
+ EXIF &= ~16;
+ EPIRQ = 16;
+}
+
+/* *********************************************************************
+ ***** EP4_ISR *******************************************************
+ ********************************************************************* */
+void EP4_ISR() interrupt
+{
+ EXIF &= ~16;
+ EPIRQ = 32;
+}
+
+/* *********************************************************************
+ ***** EP6_ISR *******************************************************
+ ********************************************************************* */
+void EP6_ISR() interrupt
+{
+ EXIF &= ~16;
+ EPIRQ = 64;
+}
+
+/* *********************************************************************
+ ***** EP8_ISR *******************************************************
+ ********************************************************************* */
+void EP8_ISR() interrupt
+{
+ EXIF &= ~16;
+ EPIRQ = 128;
+}
+
+#line 120 "../../../include/ztex.h"
+
+
+
+/* *********************************************************************
+ ***** init_USB ******************************************************
+ ********************************************************************* */
+#line 152 "../../../include/ztex.h"
+
+#line 164 "../../../include/ztex.h"
+
+void init_USB ()
+{
+ USBCS |= 0x08;
+
+ CPUCS = 16 | 2;
+ CKCON &= ~7;
+
+#line 188 "../../../include/ztex.h"
+
+
+
+ EA = 0;
+ EUSB = 0;
+
+#line 122 "../../../include/ezintavecs.h"
+ {
+ INT8VEC_USB.op=0x02;
+ INT8VEC_USB.addrH = 0x01;
+ INT8VEC_USB.addrL = 0xb8;
+ INTSETUP |= 8;
+#line 194 "../../../include/ztex.h"
+}
+
+#line 114 "../../../include/ezintavecs.h"
+ {
+ INTVEC_SUDAV.op=0x02;
+ INTVEC_SUDAV.addrH=((unsigned short)(& SUDAV_ISR)) >> 8;
+ INTVEC_SUDAV.addrL=(unsigned short)(& SUDAV_ISR);
+#line 196 "../../../include/ztex.h"
+}
+#line 114 "../../../include/ezintavecs.h"
+ {
+ INTVEC_SOF.op=0x02;
+ INTVEC_SOF.addrH=((unsigned short)(& SOF_ISR)) >> 8;
+ INTVEC_SOF.addrL=(unsigned short)(& SOF_ISR);
+#line 197 "../../../include/ztex.h"
+}
+#line 114 "../../../include/ezintavecs.h"
+ {
+ INTVEC_SUTOK.op=0x02;
+ INTVEC_SUTOK.addrH=((unsigned short)(& SUTOK_ISR)) >> 8;
+ INTVEC_SUTOK.addrL=(unsigned short)(& SUTOK_ISR);
+#line 198 "../../../include/ztex.h"
+}
+#line 114 "../../../include/ezintavecs.h"
+ {
+ INTVEC_SUSPEND.op=0x02;
+ INTVEC_SUSPEND.addrH=((unsigned short)(& SUSP_ISR)) >> 8;
+ INTVEC_SUSPEND.addrL=(unsigned short)(& SUSP_ISR);
+#line 199 "../../../include/ztex.h"
+}
+#line 114 "../../../include/ezintavecs.h"
+ {
+ INTVEC_USBRESET.op=0x02;
+ INTVEC_USBRESET.addrH=((unsigned short)(& URES_ISR)) >> 8;
+ INTVEC_USBRESET.addrL=(unsigned short)(& URES_ISR);
+#line 200 "../../../include/ztex.h"
+}
+#line 114 "../../../include/ezintavecs.h"
+ {
+ INTVEC_HISPEED.op=0x02;
+ INTVEC_HISPEED.addrH=((unsigned short)(& HSGRANT_ISR)) >> 8;
+ INTVEC_HISPEED.addrL=(unsigned short)(& HSGRANT_ISR);
+#line 201 "../../../include/ztex.h"
+}
+#line 114 "../../../include/ezintavecs.h"
+ {
+ INTVEC_EP0ACK.op=0x02;
+ INTVEC_EP0ACK.addrH=((unsigned short)(& EP0ACK_ISR)) >> 8;
+ INTVEC_EP0ACK.addrL=(unsigned short)(& EP0ACK_ISR);
+#line 202 "../../../include/ztex.h"
+}
+
+#line 114 "../../../include/ezintavecs.h"
+ {
+ INTVEC_EP0IN.op=0x02;
+ INTVEC_EP0IN.addrH=((unsigned short)(& EP0IN_ISR)) >> 8;
+ INTVEC_EP0IN.addrL=(unsigned short)(& EP0IN_ISR);
+#line 204 "../../../include/ztex.h"
+}
+#line 114 "../../../include/ezintavecs.h"
+ {
+ INTVEC_EP0OUT.op=0x02;
+ INTVEC_EP0OUT.addrH=((unsigned short)(& EP0OUT_ISR)) >> 8;
+ INTVEC_EP0OUT.addrL=(unsigned short)(& EP0OUT_ISR);
+#line 205 "../../../include/ztex.h"
+}
+#line 114 "../../../include/ezintavecs.h"
+ {
+ INTVEC_EP1IN.op=0x02;
+ INTVEC_EP1IN.addrH=((unsigned short)(& EP1IN_ISR)) >> 8;
+ INTVEC_EP1IN.addrL=(unsigned short)(& EP1IN_ISR);
+#line 206 "../../../include/ztex.h"
+}
+#line 114 "../../../include/ezintavecs.h"
+ {
+ INTVEC_EP1OUT.op=0x02;
+ INTVEC_EP1OUT.addrH=((unsigned short)(& EP1OUT_ISR)) >> 8;
+ INTVEC_EP1OUT.addrL=(unsigned short)(& EP1OUT_ISR);
+#line 207 "../../../include/ztex.h"
+}
+#line 114 "../../../include/ezintavecs.h"
+ {
+ INTVEC_EP2.op=0x02;
+ INTVEC_EP2.addrH=((unsigned short)(& EP2_ISR)) >> 8;
+ INTVEC_EP2.addrL=(unsigned short)(& EP2_ISR);
+#line 208 "../../../include/ztex.h"
+}
+#line 114 "../../../include/ezintavecs.h"
+ {
+ INTVEC_EP4.op=0x02;
+ INTVEC_EP4.addrH=((unsigned short)(& EP4_ISR)) >> 8;
+ INTVEC_EP4.addrL=(unsigned short)(& EP4_ISR);
+#line 209 "../../../include/ztex.h"
+}
+#line 114 "../../../include/ezintavecs.h"
+ {
+ INTVEC_EP6.op=0x02;
+ INTVEC_EP6.addrH=((unsigned short)(& EP6_ISR)) >> 8;
+ INTVEC_EP6.addrL=(unsigned short)(& EP6_ISR);
+#line 210 "../../../include/ztex.h"
+}
+#line 114 "../../../include/ezintavecs.h"
+ {
+ INTVEC_EP8.op=0x02;
+ INTVEC_EP8.addrH=((unsigned short)(& EP8_ISR)) >> 8;
+ INTVEC_EP8.addrL=(unsigned short)(& EP8_ISR);
+#line 211 "../../../include/ztex.h"
+}
+
+ EXIF &= ~16;
+ USBIRQ = 0x7f;
+ USBIE |= 0x7f;
+ EPIRQ = 0xff;
+ EPIE = 0xff;
+
+ EUSB = 1;
+ EA = 1;
+
+#line 154 "../../../include/ztex.h"
+ EP1INCFG = 128 | 32;
+#line 41 "../../../include/ezregs.h"
+ _asm
+ nop
+ nop
+ nop
+ nop
+ _endasm;
+#line 162 "../../../include/ztex.h"
+
+#line 222 "../../../include/ztex.h"
+
+#line 154 "../../../include/ztex.h"
+ EP1OUTCFG = 128 | 32;
+#line 41 "../../../include/ezregs.h"
+ _asm
+ nop
+ nop
+ nop
+ nop
+ _endasm;
+#line 162 "../../../include/ztex.h"
+
+#line 223 "../../../include/ztex.h"
+
+#line 126 "../../../include/ztex.h"
+ EP2CFG =
+#line 132 "../../../include/ztex.h"
+ 0
+#line 149 "../../../include/ztex.h"
+ ;
+#line 41 "../../../include/ezregs.h"
+ _asm
+ nop
+ nop
+ nop
+ nop
+ _endasm;
+#line 150 "../../../include/ztex.h"
+
+#line 224 "../../../include/ztex.h"
+
+#line 126 "../../../include/ztex.h"
+ EP4CFG =
+#line 132 "../../../include/ztex.h"
+ 0
+#line 149 "../../../include/ztex.h"
+ ;
+#line 41 "../../../include/ezregs.h"
+ _asm
+ nop
+ nop
+ nop
+ nop
+ _endasm;
+#line 150 "../../../include/ztex.h"
+
+#line 225 "../../../include/ztex.h"
+
+#line 126 "../../../include/ztex.h"
+ EP6CFG =
+#line 132 "../../../include/ztex.h"
+ 0
+#line 149 "../../../include/ztex.h"
+ ;
+#line 41 "../../../include/ezregs.h"
+ _asm
+ nop
+ nop
+ nop
+ nop
+ _endasm;
+#line 150 "../../../include/ztex.h"
+
+#line 226 "../../../include/ztex.h"
+
+#line 126 "../../../include/ztex.h"
+ EP8CFG =
+#line 132 "../../../include/ztex.h"
+ 0
+#line 149 "../../../include/ztex.h"
+ ;
+#line 41 "../../../include/ezregs.h"
+ _asm
+ nop
+ nop
+ nop
+ nop
+ _endasm;
+#line 150 "../../../include/ztex.h"
+
+#line 227 "../../../include/ztex.h"
+
+
+#line 236 "../../../include/ztex.h"
+ debug_init();
+#line 238 "../../../include/ztex.h"
+
+ USBCS |= 128 | 2;
+ wait(250);
+ USBCS &= ~0x08;
+}
+
+
+#line 30 "debug.c"
+
+
+void main(void)
+{
+ WORD i;
+ BYTE b;
+
+#line 30 "../../../include/ztex-conf.h"
+// init everything
+#line 38 "debug.c"
+ init_USB();
+
+ i=0;
+ while (1) {
+
+#line 30 "../../../include/ztex-conf.h"
+ debug_msg_buf[0] = i; // write second counter to the message buffer
+#line 44 "debug.c"
+ debug_msg_buf[1] = i >> 8;
+#line 30 "../../../include/ztex-conf.h"
+ debug_add_msg(); // add the message to the stack
+#line 46 "debug.c"
+ i+=1;
+
+#line 30 "../../../include/ztex-conf.h"
+ for (b=0; b<100; b++) { // 100 x 10ms
+#line 30 "../../../include/ztex-conf.h"
+ debug_stack_ptr[2] = b; // write the 10ms tick number to the current message in stack
+#line 30 "../../../include/ztex-conf.h"
+ wait(10); // wait 10ms
+#line 51 "debug.c"
+ }
+ }
+}
+
Index: debug/debug.c
===================================================================
--- debug/debug.c (nonexistent)
+++ debug/debug.c (revision 3)
@@ -0,0 +1,54 @@
+/*!
+ debug -- debug helper example
+ Copyright (C) 2009-2010 ZTEX e.K.
+ http://www.ztex.de
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 3 as
+ published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, see http://www.gnu.org/licenses/.
+!*/
+
+
+#include[ztex-conf.h] // Loads the configuration macros, see ztex-conf.h for the available macros
+#include[ztex-utils.h] // include basic functions
+
+// thin initializes the debug helper with a 32 messages stack and 4 bytes per message
+ENABLE_DEBUG(32,3);
+
+// this product string is also used for identification by the host software
+#define[PRODUCT_STRING]["debug for EZ-USB devices"]
+
+// include the main part of the firmware kit, define the descriptors, ...
+#include[ztex.h]
+
+void main(void)
+{
+ WORD i;
+ BYTE b;
+
+// init everything
+ init_USB();
+
+ i=0;
+ while (1) {
+
+ debug_msg_buf[0] = i; // write second counter to the message buffer
+ debug_msg_buf[1] = i >> 8;
+ debug_add_msg(); // add the message to the stack
+ i+=1;
+
+ for (b=0; b<100; b++) { // 100 x 10ms
+ debug_stack_ptr[2] = b; // write the 10ms tick number to the current message in stack
+ wait(10); // wait 10ms
+ }
+ }
+}
+
Index: debug/debug.rel
===================================================================
--- debug/debug.rel (nonexistent)
+++ debug/debug.rel (revision 3)
@@ -0,0 +1,2176 @@
+XH
+H 5C areas 1F4 global symbols
+M debug_tmp
+O -mmcs51 --model-small
+S _GPIF_WAVE0_DATA DefE400
+S _GPIFHOLDAMOUNT DefE60C
+S _EP8FIFOCFG DefE61B
+S _EPIRQ DefE65F
+S _USBERRIE DefE662
+S _UDMACRCQUALIFIER DefE67F
+S _EP6CS DefE6A5
+S _wLengthH DefE6BF
+S _INTVEC_IBN Def0140
+S _INTVEC_EP6PING Def0158
+S _SBUF1 Def00C1
+S _SM2_0 Def009D
+S _SM1_1 Def00C6
+S _EIEX6 Def00EC
+S _GPIF_WAVE1_DATA DefE420
+S _EP1INBC DefE68F
+S _EP8FIFOBCL DefE6B2
+S _SM2_1 Def00C5
+S _EXEN2 Def00CB
+S _GPIF_WAVE2_DATA DefE440
+S _EPIE DefE65E
+S _WAKEUPCS DefE682
+S _EP1OUTBC DefE68D
+S _EPXCS DefE6A3
+S _EP8CS DefE6A6
+S _EP2GPIFTRIG DefE6D4
+S _INTVEC_EP8PING Def015C
+S _SP Def0081
+S _SCON0 Def0098
+S _CPRL2 Def00C8
+S _EI2C Def00E9
+S _GPIF_WAVE3_DATA DefE460
+S _INT2IVEC DefE666
+S _SCON1 Def00C0
+S _SMOD1 Def00DF
+S _MICROFRAME DefE686
+S _SUDPTRCTL DefE6B5
+S _wLengthL DefE6BE
+S _EP4GPIFTRIG DefE6DC
+S _EP2468STAT Def00AA
+S _OV Def00D2
+S _INT4IVEC DefE667
+S _GPIFSGLDATLNOX Def00BF
+S _T2CON Def00C8
+S _EP6GPIFTRIG DefE6E4
+S _ACC Def00E0
+S __mcs51_genRAMCLEAR Ref0000
+S _EP2FIFOBUF DefF000
+S _AUTOPTRH1 Def009A
+S _BREAKPT DefE605
+S _EP2FIFOPFH DefE630
+S _EP8GPIFTRIG DefE6EC
+S _ZTEX_DESCRIPTOR Def006C
+S _AUTOPTRH2 Def009D
+S _IOA0 Def0080
+S _SETUPDAT DefE6B8
+S _EP2GPIFFLGSEL DefE6D2
+S _EP4FIFOBUF DefF400
+S _INT8VEC_USB Def0043
+S _INTVEC_SUSPEND Def010C
+S _IOA1 Def0081
+S _IOB0 Def0090
+S _RI_0 Def0098
+S _EIPX4 Def00FA
+S _EP4FIFOPFH DefE632
+S _EP2ISOINPKTS DefE640
+S _bRequest DefE6B9
+S _GPIFREADYCFG DefE6F3
+S _INTVEC_GPIFWF Def01B4
+S _IOA2 Def0082
+S _IOB1 Def0091
+S _IOC0 Def00A0
+S _RI_1 Def00C0
+S _EIPX5 Def00FB
+S _FLOWSTBHPERIOD DefE6CD
+S _EP4GPIFFLGSEL DefE6DA
+S _EP6FIFOBUF DefF800
+S _DPH0 Def0083
+S _EXIF Def0091
+S _AUTOPTRL1 Def009B
+S _IOA3 Def0083
+S _IOB2 Def0092
+S _TI_0 Def0099
+S _IOC1 Def00A1
+S _IOD0 Def00B0
+S _RCLK Def00CD
+S _EIPX6 Def00FC
+S _EP2FIFOPFL DefE631
+S _EP6FIFOPFH DefE634
+S _EP4ISOINPKTS DefE641
+S _PRODUCT_ID Def0072
+S _DPH1 Def0085
+S _AUTOPTRL2 Def009E
+S _IOA4 Def0084
+S _IOB3 Def0093
+S _IOC2 Def00A2
+S _IOD1 Def00B1
+S _TI_1 Def00C1
+S _ECC1B0 DefE62A
+S _EP6GPIFFLGSEL DefE6E2
+S _EP8FIFOBUF DefFC00
+S _IOA5 Def0085
+S _IOB4 Def0094
+S _IOC3 Def00A3
+S _IOD2 Def00B2
+S _TCLK Def00CC
+S _PI2C Def00F9
+S _ECC1B1 DefE62B
+S _ECC2B0 DefE62D
+S _EP4FIFOPFL DefE633
+S _EP8FIFOPFH DefE636
+S _EP6ISOINPKTS DefE642
+S _FNADDR DefE687
+S _INT6VEC_RESUME Def0033
+S _INT10VEC_GPIF Def0053
+S _INTVEC_EP2 Def0130
+S _IOA6 Def0086
+S _IOB5 Def0095
+S _IOC4 Def00A4
+S _IOD3 Def00B3
+S _EUSB Def00E8
+S _ECC1B2 DefE62C
+S _ECC2B1 DefE62E
+S _EP8GPIFFLGSEL DefE6EA
+S _INTVEC_SOF Def0104
+S _DPL0 Def0082
+S _PCON Def0087
+S _IOA7 Def0087
+S _IOB6 Def0096
+S _IOC5 Def00A5
+S _IOD4 Def00B4
+S _GPIF_WAVE_DATA DefE400
+S _ECC2B2 DefE62F
+S _EP6FIFOPFL DefE635
+S _EP8ISOINPKTS DefE643
+S _I2CS DefE678
+S _INTVEC_EP4 Def0134
+S _DPL1 Def0084
+S _IOB7 Def0097
+S _IOC6 Def00A6
+S _IOD5 Def00B5
+S _GPIFIRQ DefE661
+S _EP0BCH DefE68A
+S _EP01STAT Def00BA
+S _IOC7 Def00A7
+S _IOD6 Def00B6
+S _EP8FIFOPFL DefE637
+S _EP1INCS DefE6A2
+S _INTVEC_EP6 Def0138
+S _EIE Def00E8
+S _IOD7 Def00B7
+S _RESI Def00DC
+S _GPIFIE DefE660
+S _EXTAUTODAT1 DefE67B
+S _EP2BCH DefE690
+S _EP1OUTCS DefE6A1
+S _INTVEC_GPIFDONE Def01B0
+S _TCON Def0088
+S _TMOD Def0089
+S __XPAGE Def0092
+S _EXTAUTODAT2 DefE67C
+S _INTVEC_EP8 Def013C
+S _OEA Def00B2
+S _EXF2 Def00CE
+S _EP0BCL DefE68B
+S _EP4BCH DefE694
+S _OEB Def00B3
+S _EP2CFG DefE612
+S _EP2FIFOIRQ DefE651
+S _wIndexH DefE6BD
+S _GPIFREADYSTAT DefE6F4
+S _OEC Def00B4
+S _EP2BCL DefE691
+S _EP6BCH DefE698
+S _OED Def00B5
+S _EP4CFG DefE613
+S _EP2FIFOIE DefE650
+S _EP4FIFOIRQ DefE653
+S _IOA Def0080
+S _OEE Def00B6
+S _EP4BCL DefE695
+S _EP8BCH DefE69C
+S _INTVEC_EP2EF Def0190
+S _INTERFACE_CAPABILITIES Def0078
+S _IOB Def0090
+S _PUSB Def00F8
+S _EP6CFG DefE614
+S _EP4FIFOIE DefE652
+S _EP6FIFOIRQ DefE655
+S _wIndexL DefE6BC
+S _INT4VEC_USART0 Def0023
+S _INTVEC_EP2FF Def01A0
+S _IOC Def00A0
+S _INTSETUP DefE668
+S _EP6BCL DefE699
+S _wValueH DefE6BB
+S _INTVEC_EP4EF Def0194
+S _IOD Def00B0
+S _EP8CFG DefE615
+S _EP6FIFOIE DefE654
+S _EP8FIFOIRQ DefE657
+S _USBFRAMEH DefE684
+S _INT1VEC_T0 Def000B
+S _IOE Def00B1
+S _EP2AUTOINLENH DefE620
+S _EP8BCL DefE69D
+S _GPIFABORT DefE6F5
+S _INTVEC_EP6EF Def0198
+S _INT2CLR Def00A1
+S _EIP Def00F8
+S _IE0 Def0089
+S _EP8FIFOIE DefE656
+S _INT7VEC_USART1 Def003B
+S _INTVEC_EP6FF Def01A8
+S _IE1 Def008B
+S _EP4AUTOINLENH DefE622
+S _wValueL DefE6BA
+S _INT3VEC_T1 Def001B
+S _INTVEC_EP8EF Def019C
+S _INT4CLR Def00A2
+S _AUTOPTRSETUP Def00AF
+S _RCAP2H Def00CB
+S _USBFRAMEL DefE685
+S _FLOWEQ0CTL DefE6C8
+S _FLOWSTB DefE6CB
+S _XGPIFSGLDATLX DefE6F1
+S _INTVEC_EP8FF Def01AC
+S _INT6 Def00DB
+S _EP2AUTOINLENL DefE621
+S _EP6AUTOINLENH DefE624
+S _SUSPEND DefE681
+S _FLOWEQ1CTL DefE6C9
+S _EP0BUF DefE740
+S _FW_VERSION Def0076
+S _GPIFWFSELECT DefE6C0
+S _INT5VEC_T2 Def002B
+S _INTVEC_EP2ISOERR Def0170
+S _EP4AUTOINLENL DefE623
+S _EP8AUTOINLENH DefE626
+S _INTVEC_EP0IN Def0120
+S _RCAP2L Def00CA
+S _AC Def00D6
+S _IFCONFIG DefE601
+S _IBNIRQ DefE659
+S _GPIFADRH DefE6C4
+S _XGPIFSGLDATH DefE6F0
+S _INTVEC_EP0OUT Def0124
+S _INTVEC_EP1IN Def0128
+S _INTVEC_EP4ISOERR Def0174
+S _INTVEC_EP2PF Def0180
+S _MODULE_RESERVED Def007E
+S _EP6AUTOINLENL DefE625
+S _NAKIRQ DefE65B
+S _FLOWLOGIC DefE6C7
+S _INTVEC_EP1OUT Def012C
+S _EA Def00AF
+S _FIFORESET DefE604
+S _IBNIE DefE658
+S _UDMACRCH DefE67D
+S _GPIFIDLECTL DefE6C2
+S _INTVEC_EP6ISOERR Def0178
+S _INTVEC_EP4PF Def0184
+S _DPS Def0086
+S _EP8AUTOINLENL DefE627
+S _NAKIE DefE65A
+S _ES0 Def00AC
+S _FIFOPINPOLAR DefE609
+S _GPIFADRL DefE6C5
+S _EP2GPIFPFSTOP DefE6D3
+S _INTVEC_EP8ISOERR Def017C
+S _INTVEC_EP6PF Def0188
+S _GPIFSGLDATLX Def00BE
+S _ET0 Def00A9
+S _ES1 Def00AE
+S _CT2 Def00C9
+S _SUDPTRH DefE6B3
+S _INTVEC_HISPEED Def0114
+S _MPAGE Def0092
+S _TF0 Def008D
+S _ET1 Def00AB
+S _UDMACRCL DefE67E
+S _EP4GPIFPFSTOP DefE6DB
+S _INTVEC_SUDAV Def0100
+S _INTVEC_EP8PF Def018C
+S _EP24FIFOFLGS Def00AB
+S _TF1 Def008F
+S _ET2 Def00AD
+S _TH0 Def008C
+S _TF2 Def00CF
+S __mcs51_genXINIT Ref0000
+S _EP1INCFG DefE611
+S _TOGCTL DefE683
+S _EP6GPIFPFSTOP DefE6E3
+S _INT11VEC_IE5 Def005B
+S _TH1 Def008D
+S _GPIFSGLDATH Def00BD
+S _IT0 Def0088
+S _EX0 Def00A8
+S _EP1OUTCFG DefE610
+S _ECCRESET DefE629
+S _SUDPTRL DefE6B4
+S _ZTEX_DESCRIPTOR_VERSION Def006D
+S _CKCON Def008E
+S _IE Def00A8
+S _TH2 Def00CD
+S _EICON Def00D8
+S _IT1 Def008A
+S _EX1 Def00AA
+S _CLRERRCNT DefE665
+S _GPIFTCB0 DefE6D1
+S _EP8GPIFPFSTOP DefE6EB
+S _INT12VEC_IE6 Def0063
+S _REVCTL DefE60B
+S _ERRCNTLIM DefE664
+S _GPIFTCB1 DefE6D0
+S _INTVEC_ERRLIMIT Def0160
+S _TL0 Def008A
+S _BREG0 Def00F0
+S _UART230 DefE608
+S _GPIFTCB2 DefE6CF
+S _TL1 Def008B
+S _BREG1 Def00F1
+S _GPIFTCB3 DefE6CE
+S _TL2 Def00CC
+S _BREG2 Def00F2
+S _EP68FIFOFLGS Def00AC
+S _PS0 Def00BC
+S _BREG3 Def00F3
+S _I2DAT DefE679
+S _REN_0 Def009C
+S _PT0 Def00B9
+S _PS1 Def00BE
+S _BREG4 Def00F4
+S _BPADDRH DefE606
+S _INTVEC_USBRESET Def0110
+S _PT1 Def00BB
+S _REN_1 Def00C4
+S _RS0 Def00D3
+S _BREG5 Def00F5
+S _USBIRQ DefE65D
+S _PORTACFG DefE670
+S _FLOWSTBEDGE DefE6CC
+S _INT0VEC_IE0 Def0003
+S _INTERFACE_VERSION Def0077
+S _TR0 Def008C
+S _PT2 Def00BD
+S _PF Def00D0
+S _RS1 Def00D4
+S _F0 Def00D5
+S _BREG6 Def00F6
+S _PINFLAGSAB DefE602
+S _EP2FIFOFLGS DefE6A7
+S _SN_STRING Def008A
+S _TR1 Def008E
+S _F1 Def00D1
+S _ACC0 Def00E0
+S _BREG7 Def00F7
+S _USBIE DefE65C
+S _PORTCCFG DefE671
+S _EP2FIFOBCH DefE6AB
+S _ZTEXID Def006E
+S _PX0 Def00B8
+S _TR2 Def00CA
+S _ERESI Def00DD
+S _ACC1 Def00E1
+S _BPADDRL DefE607
+S _EP4FIFOFLGS DefE6A8
+S _GPIFCTLCFG DefE6C3
+S _FLOWSTATE DefE6C6
+S _INT2VEC_IE1 Def0013
+S _IP Def00B8
+S _PX1 Def00BA
+S _ACC2 Def00E2
+S _REVID DefE60A
+S _PORTECFG DefE672
+S _EP4FIFOBCH DefE6AD
+S _bmRequestType DefE6B8
+S _GPIFIDLECS DefE6C1
+S _FLOWHOLDOFF DefE6CA
+S _EP1INBUF DefE7C0
+S _PSW Def00D0
+S _ACC3 Def00E3
+S __sdcc_gsinit_startup Ref0000
+S _PINFLAGSCD DefE603
+S _EP2FIFOCFG DefE618
+S _ECCCFG DefE628
+S _XAUTODAT1 DefE67B
+S _EP0CS DefE6A0
+S _EP6FIFOFLGS DefE6A9
+S _EP1OUTBUF DefE780
+S _INTVEC_EP0PING Def0148
+S _RB8_0 Def009A
+S _ACC4 Def00E4
+S _XAUTODAT2 DefE67C
+S _EP2FIFOBCL DefE6AC
+S _EP6FIFOBCH DefE6AF
+S _INTVEC_EP0ACK Def0118
+S _INTVEC_EP1PING Def014C
+S _GPIFTRIG Def00BB
+S _RB8_1 Def00C2
+S _CY Def00D7
+S _ACC5 Def00E5
+S _EP4FIFOCFG DefE619
+S _INPKTEND DefE648
+S _EP2CS DefE6A3
+S _EP8FIFOFLGS DefE6AA
+S _INTVEC_EP2PING Def0150
+S _TB8_0 Def009B
+S _ACC6 Def00E6
+S _GPCR2 DefE50D
+S _CPUCS DefE600
+S _OUTPKTEND DefE649
+S _I2CTL DefE67A
+S _EP4FIFOBCL DefE6AE
+S _EP8FIFOBCH DefE6B1
+S _XGPIFSGLDATLNOX DefE6F2
+S _INTVEC_SUTOK Def0108
+S _TB8_1 Def00C3
+S _ACC7 Def00E7
+S _EP6FIFOCFG DefE61A
+S _USBERRIRQ DefE663
+S _EP4CS DefE6A4
+S _INT9VEC_I2C Def004B
+S _INTVEC_EP4PING Def0154
+S _SM0_0 Def009F
+S _EIEX4 Def00EA
+S __mcs51_genXRAMCLEAR Ref0000
+S _USBCS DefE680
+S _EP6FIFOBCL DefE6B0
+S _SBUF0 Def0099
+S _BREG Def00F0
+S _SM1_0 Def009E
+S _SM0_1 Def00C7
+S _EIEX5 Def00EB
+A _CODE size 0 flags 0 addr 0
+A RSEG size 0 flags 0 addr 0
+A REG_BANK_0 size 8 flags 4 addr 0
+A BIT_BANK size 1 flags 4 addr 0
+A DSEG size 7 flags 0 addr 0
+S _eeprom_read_PARM_2 Def0001
+S _eeprom_read_PARM_3 Def0003
+S _eeprom_write_PARM_2 Def0004
+S _eeprom_write_PARM_3 Def0006
+S _eeprom_select_PARM_2 Def0000
+A OSEG size 2 flags 4 addr 0
+S _sendStringDescriptor_PARM_3 Def0001
+S _sendStringDescriptor_PARM_2 Def0000
+A SSEG size 1 flags 0 addr 0
+S __start__stack Def0000
+A ISEG size 0 flags 0 addr 0
+A IABS size 0 flags 8 addr 0
+A BSEG size 0 flags 80 addr 0
+A PSEG size 0 flags 50 addr 0
+A XSEG size 70 flags 40 addr 0
+S _debug_counter Def0005
+S _debug_stack_ptr Def0069
+S _debug_stack Def0009
+S _debug_read_addr Def006E
+S _eeprom_addr Def0000
+S _eeprom_write_checksum Def0004
+S _debug_msg_size Def0008
+S _debug_msg_buf Def006B
+S _debug_stack_size Def0007
+S _eeprom_write_bytes Def0002
+A XABS size 0 flags 48 addr 0
+A XISEG size D flags 40 addr 0
+S _ep0_payload_remaining Def0000
+S _ISOFRAME_COUNTER Def0005
+S _ep0_payload_transfer Def0002
+S _ep0_vendor_cmd_setup Def0004
+S _ep0_prev_setup_request Def0003
+A HOME size 8 flags 20 addr 0
+S __sdcc_program_startup Def0003
+A GSINIT0 size 0 flags 20 addr 0
+A GSINIT1 size 0 flags 20 addr 0
+A GSINIT2 size 0 flags 20 addr 0
+A GSINIT3 size 0 flags 20 addr 0
+A GSINIT4 size 0 flags 20 addr 0
+A GSINIT5 size 0 flags 20 addr 0
+A GSINIT size 0 flags 20 addr 0
+A GSFINAL size 3 flags 20 addr 0
+A CSEG size E23 flags 20 addr 0
+S _EP0ACK_ISR Def0A2B
+S _SUTOK_ISR Def09D3
+S _HSGRANT_ISR Def0A15
+S _main Def0DD2
+S _debug_read_ep0 Def03B3
+S _eeprom_select Def00E0
+S _eeprom_read_ep0 Def02F0
+S _uwait Def0024
+S _URES_ISR Def09FF
+S _i2c_waitRead Def0083
+S _MEM_COPY1_int Def0048
+S _EP2_ISR Def0B92
+S _wait Def0000
+S _debug_add_msg Def0351
+S _SOF_ISR Def09BD
+S _eeprom_write_ep0 Def0324
+S _EP4_ISR Def0BA8
+S _SUSP_ISR Def09E9
+S _EP6_ISR Def0BBE
+S _abscode_intvec Def0000
+S _EP8_ISR Def0BD4
+S _i2c_waitWrite Def0056
+S _i2c_waitStart Def00AC
+S _eeprom_read Def0134
+S _EP1IN_ISR Def0B66
+S _EP1OUT_ISR Def0B7C
+S _eeprom_write Def023A
+S _i2c_waitStop Def00C6
+S _debug_init Def0395
+S _abscode_identity Def03ED
+S _init_USB Def0BEA
+A ABSCODE size 0 flags 28 addr 0
+A ABSCODE0 size 3 flags 28 addr 0
+A ABSCODE3 size 1 flags 28 addr 3
+A ABSCODEb size 1 flags 28 addr B
+A ABSCODE13 size 1 flags 28 addr 13
+A ABSCODE1b size 1 flags 28 addr 1B
+A ABSCODE23 size 1 flags 28 addr 23
+A ABSCODE2b size 1 flags 28 addr 2B
+A ABSCODE33 size 1 flags 28 addr 33
+A ABSCODE3b size 1 flags 28 addr 3B
+A ABSCODE43 size 1 flags 28 addr 43
+A ABSCODE4b size 1 flags 28 addr 4B
+A ABSCODE53 size 1 flags 28 addr 53
+A ABSCODE5b size 1 flags 28 addr 5B
+A ABSCODE63 size 1 flags 28 addr 63
+A ABSCODE100 size 1 flags 28 addr 100
+A ABSCODE104 size 1 flags 28 addr 104
+A ABSCODE108 size 1 flags 28 addr 108
+A ABSCODE10c size 1 flags 28 addr 10C
+A ABSCODE110 size 1 flags 28 addr 110
+A ABSCODE114 size 1 flags 28 addr 114
+A ABSCODE118 size 1 flags 28 addr 118
+A ABSCODE120 size 1 flags 28 addr 120
+A ABSCODE124 size 1 flags 28 addr 124
+A ABSCODE128 size 1 flags 28 addr 128
+A ABSCODE12c size 1 flags 28 addr 12C
+A ABSCODE130 size 1 flags 28 addr 130
+A ABSCODE134 size 1 flags 28 addr 134
+A ABSCODE138 size 1 flags 28 addr 138
+A ABSCODE13c size 1 flags 28 addr 13C
+A ABSCODE140 size 1 flags 28 addr 140
+A ABSCODE148 size 1 flags 28 addr 148
+A ABSCODE14c size 1 flags 28 addr 14C
+A ABSCODE150 size 1 flags 28 addr 150
+A ABSCODE154 size 1 flags 28 addr 154
+A ABSCODE158 size 1 flags 28 addr 158
+A ABSCODE15c size 1 flags 28 addr 15C
+A ABSCODE160 size 1 flags 28 addr 160
+A ABSCODE170 size 1 flags 28 addr 170
+A ABSCODE174 size 1 flags 28 addr 174
+A ABSCODE178 size 1 flags 28 addr 178
+A ABSCODE17c size 1 flags 28 addr 17C
+A ABSCODE180 size 1 flags 28 addr 180
+A ABSCODE184 size 1 flags 28 addr 184
+A ABSCODE188 size 1 flags 28 addr 188
+A ABSCODE18c size 1 flags 28 addr 18C
+A ABSCODE190 size 1 flags 28 addr 190
+A ABSCODE194 size 1 flags 28 addr 194
+A ABSCODE198 size 1 flags 28 addr 198
+A ABSCODE19c size 1 flags 28 addr 19C
+A ABSCODE1a0 size 1 flags 28 addr 1A0
+A ABSCODE1a8 size 1 flags 28 addr 1A8
+A ABSCODE1ac size 1 flags 28 addr 1AC
+A ABSCODE1b0 size 1 flags 28 addr 1B0
+A ABSCODE1b4 size 1 flags 28 addr 1B4
+A ABSCODE1b8 size 1 flags 28 addr 1B8
+A ABSCODE6c size 1 flags 28 addr 6C
+A ABSCODE6d size 1 flags 28 addr 6D
+A ABSCODE6e size 4 flags 28 addr 6E
+A ABSCODE72 size 4 flags 28 addr 72
+A ABSCODE76 size 1 flags 28 addr 76
+A ABSCODE77 size 1 flags 28 addr 77
+A ABSCODE78 size 6 flags 28 addr 78
+A ABSCODE7e size C flags 28 addr 7E
+A ABSCODE8a size A flags 28 addr 8A
+A CONST size 8D flags 20 addr 0
+S _manufacturerString Def0000
+S _HighSpeedConfigDescriptor Def0045
+S _PadByte Def0028
+S _HighSpeedConfigDescriptor_PadByte Def0065
+S _DeviceDescriptor Def0029
+S _DeviceQualifierDescriptor Def003B
+S _FullSpeedConfigDescriptor Def0067
+S _FullSpeedConfigDescriptor_PadByte Def0087
+S _EmptyStringDescriptor Def0089
+S _configurationString Def001E
+S _productString Def0005
+A XINIT size D flags 20 addr 0
+A CABS size 0 flags 28 addr 0
+T 00 00
+R 00 00 00 02
+T 00 00
+R 00 00 00 03
+T 00 00
+R 00 00 00 03
+T 00 00
+R 00 00 00 04
+T 00 00
+R 00 00 00 04
+T 00 01
+R 00 00 00 04
+T 00 01
+R 00 00 00 04
+T 00 03
+R 00 00 00 04
+T 00 03
+R 00 00 00 04
+T 00 04
+R 00 00 00 04
+T 00 04
+R 00 00 00 04
+T 00 06
+R 00 00 00 04
+T 00 06
+R 00 00 00 04
+T 00 00
+R 00 00 00 05
+T 00 00
+R 00 00 00 05
+T 00 01
+R 00 00 00 05
+T 00 01
+R 00 00 00 05
+T 00 00
+R 00 00 00 06
+T 00 00
+R 00 00 00 06
+T 00 00
+R 00 00 00 0B
+T 00 00
+R 00 00 00 0B
+T 00 02
+R 00 00 00 0B
+T 00 02
+R 00 00 00 0B
+T 00 04
+R 00 00 00 0B
+T 00 04
+R 00 00 00 0B
+T 00 05
+R 00 00 00 0B
+T 00 05
+R 00 00 00 0B
+T 00 07
+R 00 00 00 0B
+T 00 07
+R 00 00 00 0B
+T 00 08
+R 00 00 00 0B
+T 00 08
+R 00 00 00 0B
+T 00 09
+R 00 00 00 0B
+T 00 09
+R 00 00 00 0B
+T 00 69
+R 00 00 00 0B
+T 00 69
+R 00 00 00 0B
+T 00 6B
+R 00 00 00 0B
+T 00 6B
+R 00 00 00 0B
+T 00 6E
+R 00 00 00 0B
+T 00 6E
+R 00 00 00 0B
+T 00 00
+R 00 00 00 0D
+T 00 00
+R 00 00 00 0D
+T 00 02
+R 00 00 00 0D
+T 00 02
+R 00 00 00 0D
+T 00 03
+R 00 00 00 0D
+T 00 03
+R 00 00 00 0D
+T 00 04
+R 00 00 00 0D
+T 00 04
+R 00 00 00 0D
+T 00 05
+R 00 00 00 0D
+T 00 05
+R 00 00 00 0D
+T 00 00
+R 00 00 00 0E
+T 00 00 02 00 00
+R 00 00 00 0E 02 03 01 7E
+T 00 00 02 00 03
+R 00 00 00 16 00 03 00 0E
+T 00 03
+R 00 00 00 0E
+T 00 03 12 0D D2 80 FE
+R 00 00 00 0E 00 03 00 17
+T 00 00
+R 00 00 00 17
+T 00 00
+R 00 00 00 19
+T 00 00
+R 00 00 00 19
+T 00 00 02 02 00
+R 00 00 00 19
+T 00 03
+R 00 00 00 1A
+T 00 03 32
+R 00 00 00 1A
+T 00 0B
+R 00 00 00 1B
+T 00 0B 32
+R 00 00 00 1B
+T 00 13
+R 00 00 00 1C
+T 00 13 32
+R 00 00 00 1C
+T 00 1B
+R 00 00 00 1D
+T 00 1B 32
+R 00 00 00 1D
+T 00 23
+R 00 00 00 1E
+T 00 23 32
+R 00 00 00 1E
+T 00 2B
+R 00 00 00 1F
+T 00 2B 32
+R 00 00 00 1F
+T 00 33
+R 00 00 00 20
+T 00 33 32
+R 00 00 00 20
+T 00 3B
+R 00 00 00 21
+T 00 3B 32
+R 00 00 00 21
+T 00 43
+R 00 00 00 22
+T 00 43 32
+R 00 00 00 22
+T 00 4B
+R 00 00 00 23
+T 00 4B 32
+R 00 00 00 23
+T 00 53
+R 00 00 00 24
+T 00 53 32
+R 00 00 00 24
+T 00 5B
+R 00 00 00 25
+T 00 5B 32
+R 00 00 00 25
+T 00 63
+R 00 00 00 26
+T 00 63 32
+R 00 00 00 26
+T 01 00
+R 00 00 00 27
+T 01 00 32
+R 00 00 00 27
+T 01 04
+R 00 00 00 28
+T 01 04 32
+R 00 00 00 28
+T 01 08
+R 00 00 00 29
+T 01 08 32
+R 00 00 00 29
+T 01 0C
+R 00 00 00 2A
+T 01 0C 32
+R 00 00 00 2A
+T 01 10
+R 00 00 00 2B
+T 01 10 32
+R 00 00 00 2B
+T 01 14
+R 00 00 00 2C
+T 01 14 32
+R 00 00 00 2C
+T 01 18
+R 00 00 00 2D
+T 01 18 32
+R 00 00 00 2D
+T 01 20
+R 00 00 00 2E
+T 01 20 32
+R 00 00 00 2E
+T 01 24
+R 00 00 00 2F
+T 01 24 32
+R 00 00 00 2F
+T 01 28
+R 00 00 00 30
+T 01 28 32
+R 00 00 00 30
+T 01 2C
+R 00 00 00 31
+T 01 2C 32
+R 00 00 00 31
+T 01 30
+R 00 00 00 32
+T 01 30 32
+R 00 00 00 32
+T 01 34
+R 00 00 00 33
+T 01 34 32
+R 00 00 00 33
+T 01 38
+R 00 00 00 34
+T 01 38 32
+R 00 00 00 34
+T 01 3C
+R 00 00 00 35
+T 01 3C 32
+R 00 00 00 35
+T 01 40
+R 00 00 00 36
+T 01 40 32
+R 00 00 00 36
+T 01 48
+R 00 00 00 37
+T 01 48 32
+R 00 00 00 37
+T 01 4C
+R 00 00 00 38
+T 01 4C 32
+R 00 00 00 38
+T 01 50
+R 00 00 00 39
+T 01 50 32
+R 00 00 00 39
+T 01 54
+R 00 00 00 3A
+T 01 54 32
+R 00 00 00 3A
+T 01 58
+R 00 00 00 3B
+T 01 58 32
+R 00 00 00 3B
+T 01 5C
+R 00 00 00 3C
+T 01 5C 32
+R 00 00 00 3C
+T 01 60
+R 00 00 00 3D
+T 01 60 32
+R 00 00 00 3D
+T 01 70
+R 00 00 00 3E
+T 01 70 32
+R 00 00 00 3E
+T 01 74
+R 00 00 00 3F
+T 01 74 32
+R 00 00 00 3F
+T 01 78
+R 00 00 00 40
+T 01 78 32
+R 00 00 00 40
+T 01 7C
+R 00 00 00 41
+T 01 7C 32
+R 00 00 00 41
+T 01 80
+R 00 00 00 42
+T 01 80 32
+R 00 00 00 42
+T 01 84
+R 00 00 00 43
+T 01 84 32
+R 00 00 00 43
+T 01 88
+R 00 00 00 44
+T 01 88 32
+R 00 00 00 44
+T 01 8C
+R 00 00 00 45
+T 01 8C 32
+R 00 00 00 45
+T 01 90
+R 00 00 00 46
+T 01 90 32
+R 00 00 00 46
+T 01 94
+R 00 00 00 47
+T 01 94 32
+R 00 00 00 47
+T 01 98
+R 00 00 00 48
+T 01 98 32
+R 00 00 00 48
+T 01 9C
+R 00 00 00 49
+T 01 9C 32
+R 00 00 00 49
+T 01 A0
+R 00 00 00 4A
+T 01 A0 32
+R 00 00 00 4A
+T 01 A8
+R 00 00 00 4B
+T 01 A8 32
+R 00 00 00 4B
+T 01 AC
+R 00 00 00 4C
+T 01 AC 32
+R 00 00 00 4C
+T 01 B0
+R 00 00 00 4D
+T 01 B0 32
+R 00 00 00 4D
+T 01 B4
+R 00 00 00 4E
+T 01 B4 32
+R 00 00 00 4E
+T 01 B8
+R 00 00 00 4F
+T 01 B8
+R 00 00 00 4F
+T 01 B8 32
+R 00 00 00 4F
+T 00 00
+R 00 00 00 17
+T 00 00 AA 82 AB 83 7C 00 7D 00
+R 00 00 00 17
+T 00 08
+R 00 00 00 17
+T 00 08 C3 EC 9A ED 9B 50 14 7E B0 7F 04
+R 00 00 00 17
+T 00 13
+R 00 00 00 17
+T 00 13 1E BE FF 01 1F
+R 00 00 00 17
+T 00 18
+R 00 00 00 17
+T 00 18 EE 4F 70 F7 0C BC 00 E8 0D 80 E5
+R 00 00 00 17
+T 00 23
+R 00 00 00 17
+T 00 23 22
+R 00 00 00 17
+T 00 24
+R 00 00 00 17
+T 00 24 AA 82 AB 83 7C 00 7D 00
+R 00 00 00 17
+T 00 2C
+R 00 00 00 17
+T 00 2C C3 EC 9A ED 9B 50 14 7E 0A 7F 00
+R 00 00 00 17
+T 00 37
+R 00 00 00 17
+T 00 37 1E BE FF 01 1F
+R 00 00 00 17
+T 00 3C
+R 00 00 00 17
+T 00 3C EE 4F 70 F7 0C BC 00 E8 0D 80 E5
+R 00 00 00 17
+T 00 47
+R 00 00 00 17
+T 00 47 22
+R 00 00 00 17
+T 00 48
+R 00 00 00 17
+T 00 48
+R 00 00 00 17
+T 00 48 75 AF 07 90 E6 7B E0 90 E6 7C F0 DA F3 22
+R 00 00 00 17
+T 00 56
+R 00 00 00 17
+T 00 56 7A 00
+R 00 00 00 17
+T 00 58
+R 00 00 00 17
+T 00 58 BA FF 00
+R 00 00 00 17
+T 00 5B
+R 00 00 00 17
+T 00 5B 50 0B 90 E6 78 E0 FB 20 E0 03 0A 80 F0
+R 00 00 00 17
+T 00 68
+R 00 00 00 17
+T 00 68 90 E6 78 E0 FA 20 E2 04 EA 20 E1 0B
+R 00 00 00 17
+T 00 74
+R 00 00 00 17
+T 00 74 90 E6 78 E0 44 40 F0 75 82 01 22
+R 00 00 00 17
+T 00 7F
+R 00 00 00 17
+T 00 7F 75 82 00 22
+R 00 00 00 17
+T 00 83
+R 00 00 00 17
+T 00 83 7A 00
+R 00 00 00 17
+T 00 85
+R 00 00 00 17
+T 00 85 BA FF 00
+R 00 00 00 17
+T 00 88
+R 00 00 00 17
+T 00 88 50 0B 90 E6 78 E0 FB 20 E0 03 0A 80 F0
+R 00 00 00 17
+T 00 95
+R 00 00 00 17
+T 00 95 90 E6 78 E0 FA 30 E2 0B 90 E6 78 E0 44 40
+R 00 00 00 17
+T 00 A3 F0 75 82 01 22
+R 00 00 00 17
+T 00 A8
+R 00 00 00 17
+T 00 A8 75 82 00 22
+R 00 00 00 17
+T 00 AC
+R 00 00 00 17
+T 00 AC 7A 00
+R 00 00 00 17
+T 00 AE
+R 00 00 00 17
+T 00 AE BA FF 00
+R 00 00 00 17
+T 00 B1
+R 00 00 00 17
+T 00 B1 50 0F 90 E6 78 E0 FB 20 E2 04 75 82 00 22
+R 00 00 00 17
+T 00 BF
+R 00 00 00 17
+T 00 BF 0A 80 EC
+R 00 00 00 17
+T 00 C2
+R 00 00 00 17
+T 00 C2 75 82 01 22
+R 00 00 00 17
+T 00 C6
+R 00 00 00 17
+T 00 C6 7A 00
+R 00 00 00 17
+T 00 C8
+R 00 00 00 17
+T 00 C8 BA FF 00
+R 00 00 00 17
+T 00 CB
+R 00 00 00 17
+T 00 CB 50 0F 90 E6 78 E0 FB 20 E6 04 75 82 00 22
+R 00 00 00 17
+T 00 D9
+R 00 00 00 17
+T 00 D9 0A 80 EC
+R 00 00 00 17
+T 00 DC
+R 00 00 00 17
+T 00 DC 75 82 01 22
+R 00 00 00 17
+T 00 E0
+R 00 00 00 17
+T 00 E0 AA 82 C3 E4 9A E4 33 FA
+R 00 00 00 17
+T 00 E8
+R 00 00 00 17
+T 00 E8 90 E6 78 E0 44 80 F0 C0 02 12 00 AC 90
+R 00 00 00 17 00 0C 00 17
+T 00 F5 E6 79 74 A2 F0 12 00 56 E5 82 D0 02 70 12
+R 00 00 00 17 00 08 00 17
+T 01 03 E5 00 00 00 60 0A 90 E6 78 E0 44 40 F0 12
+R 00 00 00 17 F1 21 03 00 04
+T 01 0F 00 C6
+R 00 00 00 17 00 02 00 17
+T 01 11
+R 00 00 00 17
+T 01 11 75 82 00 22
+R 00 00 00 17
+T 01 15
+R 00 00 00 17
+T 01 15 EA 60 0C 90 00 0A C0 02 12 00 24 D0 02 80
+R 00 00 00 17 00 0B 00 17
+T 01 23 C4
+R 00 00 00 17
+T 01 24
+R 00 00 00 17
+T 01 24 E5 00 00 00 60 08 90 E6 78 E0 FA 44 40 F0
+R 00 00 00 17 F1 21 03 00 04
+T 01 30
+R 00 00 00 17
+T 01 30 75 82 01 22
+R 00 00 00 17
+T 01 34
+R 00 00 00 17
+T 01 34 AA 82 AB 83 7C 00 E5 00 00 03 70 03 F5 82
+R 00 00 00 17 F1 21 09 00 04
+T 01 40 22
+R 00 00 00 17
+T 01 41
+R 00 00 00 17
+T 01 41 75 00 00 00 00 75 82 64 C0 02 C0 03 C0 04
+R 00 00 00 17 F1 21 03 00 04
+T 01 4D 12 00 E0 E5 82 D0 04 D0 03 D0 02 60 03 02
+R 00 00 00 17 00 03 00 17
+T 01 5B 02 37
+R 00 00 00 17 00 02 00 17
+T 01 5D
+R 00 00 00 17
+T 01 5D 90 E6 79 E5 00 00 02 F0 C0 02 C0 03 C0 04
+R 00 00 00 17 F1 21 06 00 04
+T 01 69 12 00 56 E5 82 D0 04 D0 03 D0 02 60 03 02
+R 00 00 00 17 00 03 00 17
+T 01 77 02 37
+R 00 00 00 17 00 02 00 17
+T 01 79
+R 00 00 00 17
+T 01 79 90 E6 79 E5 00 00 01 F0 C0 02 C0 03 C0 04
+R 00 00 00 17 F1 21 06 00 04
+T 01 85 12 00 56 E5 82 D0 04 D0 03 D0 02 60 03 02
+R 00 00 00 17 00 03 00 17
+T 01 93 02 37
+R 00 00 00 17 00 02 00 17
+T 01 95
+R 00 00 00 17
+T 01 95 90 E6 78 E0 44 40 F0 C0 02 C0 03 C0 04 12
+R 00 00 00 17
+T 01 A3 00 C6 90 E6 78 E0 44 80 F0 12 00 AC 90
+R 00 00 00 17 00 02 00 17 00 0C 00 17
+T 01 B0 E6 79 74 A3 F0 12 00 56 E5 82 D0 04 D0 03
+R 00 00 00 17 00 08 00 17
+T 01 BE D0 02 70 75 90 E6 79 E0 8A 82 8B 83 F0 C0
+R 00 00 00 17
+T 01 CC 02 C0 03 C0 04 12 00 83 E5 82 D0 04 D0 03
+R 00 00 00 17 00 08 00 17
+T 01 DA D0 02 70 59 FD
+R 00 00 00 17
+T 01 DF
+R 00 00 00 17
+T 01 DF C3 ED 95 00 00 03 50 2A 90 E6 79 E0 8A 82
+R 00 00 00 17 F1 21 05 00 04
+T 01 EB 8B 83 F0 A3 AA 82 AB 83 C0 02 C0 03 C0 04
+R 00 00 00 17
+T 01 F9 C0 05 12 00 83 E5 82 D0 05 D0 04 D0 03 D0
+R 00 00 00 17 00 05 00 17
+T 02 07 02 70 2D 0D 8D 04 80 D0
+R 00 00 00 17
+T 02 0F
+R 00 00 00 17
+T 02 0F 90 E6 78 E0 44 20 F0 90 E6 79 E0 C0 04 12
+R 00 00 00 17
+T 02 1D 00 83 E5 82 D0 04 70 12 90 E6 78 E0 44 40
+R 00 00 00 17 00 02 00 17
+T 02 2B F0 90 E6 79 E0 C0 04 12 00 C6 D0 04
+R 00 00 00 17 00 0A 00 17
+T 02 37
+R 00 00 00 17
+T 02 37 8C 82 22
+R 00 00 00 17
+T 02 3A
+R 00 00 00 17
+T 02 3A AA 82 AB 83 7C 00 75 00 00 00 00 75 82 64
+R 00 00 00 17 F1 21 09 00 04
+T 02 46 C0 02 C0 03 C0 04 12 00 E0 E5 82 D0 04 D0
+R 00 00 00 17 00 09 00 17
+T 02 54 03 D0 02 60 03 02 02 ED
+R 00 00 00 17 00 08 00 17
+T 02 5C
+R 00 00 00 17
+T 02 5C 90 E6 79 E5 00 00 05 F0 C0 02 C0 03 C0 04
+R 00 00 00 17 F1 21 06 00 04
+T 02 68 12 00 56 E5 82 D0 04 D0 03 D0 02 60 03 02
+R 00 00 00 17 00 03 00 17
+T 02 76 02 ED
+R 00 00 00 17 00 02 00 17
+T 02 78
+R 00 00 00 17
+T 02 78 90 E6 79 E5 00 00 04 F0 C0 02 C0 03 C0 04
+R 00 00 00 17 F1 21 06 00 04
+T 02 84 12 00 56 E5 82 D0 04 D0 03 D0 02 70 5C FD
+R 00 00 00 17 00 03 00 17
+T 02 92
+R 00 00 00 17
+T 02 92 C3 ED 95 00 00 06 50 47 8A 82 8B 83 E0 FE
+R 00 00 00 17 F1 21 05 00 04
+T 02 9E A3 AA 82 AB 83 90 E6 79 EE F0 90 00 04 E0
+R 00 00 00 17 00 0D 00 0B
+T 02 AC FF EE 2F F0 90 00 02 E0 FE A3 E0 FF 90
+R 00 00 00 17 00 07 00 0B
+T 02 B9 00 02 74 01 2E F0 E4 3F A3 F0 C0 02 C0 03
+R 00 00 00 17 00 02 00 0B
+T 02 C7 C0 04 C0 05 12 00 56 E5 82 D0 05 D0 04 D0
+R 00 00 00 17 00 07 00 17
+T 02 D5 03 D0 02 70 13 0D 8D 04 80 B3
+R 00 00 00 17
+T 02 DF
+R 00 00 00 17
+T 02 DF 90 E6 78 E0 44 40 F0 C0 04 12 00 C6 D0 04
+R 00 00 00 17 00 0C 00 17
+T 02 ED
+R 00 00 00 17
+T 02 ED 8C 82 22
+R 00 00 00 17
+T 02 F0
+R 00 00 00 17
+T 02 F0 90 00 02 E0 FA 90 00 00 E0 F5
+R 00 00 00 17 00 03 00 0D 00 08 00 0B
+T 02 FA 00 00 01 A3 E0 F5 00 00 02 8A
+R 00 00 00 17 F1 21 02 00 04 F1 21 08 00 04
+T 03 00 00 00 03 90 E7 40 C0 02 12 01 34 AB 82 D0
+R 00 00 00 17 F1 21 02 00 04 00 0B 00 17
+T 03 0C 02 7C 00 90 00 00 E0 FD A3 E0 FE 90 00 00
+R 00 00 00 17 00 06 00 0B 00 0E 00 0B
+T 03 1A EA 2D F0 EC 3E A3 F0 8B 82 22
+R 00 00 00 17
+T 03 24
+R 00 00 00 17
+T 03 24 AA 82 90 00 00 E0 F5 00 00 04 A3 E0 F5
+R 00 00 00 17 00 05 00 0B F1 21 09 00 04
+T 03 2F 00 00 05 8A 00 00 06 90 E7 40 C0 02 12
+R 00 00 00 17 F1 21 02 00 04 F1 21 06 00 04
+T 03 38 02 3A D0 02 7B 00 90 00 00 E0 FC A3 E0 FD
+R 00 00 00 17 00 02 00 17 00 09 00 0B
+T 03 46 90 00 00 EA 2C F0 EB 3D A3 F0 22
+R 00 00 00 17 00 03 00 0B
+T 03 51
+R 00 00 00 17
+T 03 51 90 00 05 E0 FA A3 E0 FB 74 1F 5A 75 F0 03
+R 00 00 00 17 00 03 00 0B
+T 03 5F A4 24 00 00 09 FC E4 34 00 00 09 FD 90
+R 00 00 00 17 F1 01 04 00 0B F1 81 0A 00 0B
+T 03 68 00 69 EC F0 A3 ED F0 75 9B 00 00 6B 7E
+R 00 00 00 17 00 02 00 0B F1 01 0B 00 0B
+T 03 73 00 00 6B 7F 00 00 6B 8F 9A 8C 06 8D 07 8E
+R 00 00 00 17 F1 01 02 00 0B F1 81 06 00 0B
+T 03 7D 9E 8D 9D C0 02 7A 03 12 00 48 D0 02 90
+R 00 00 00 17 00 0A 00 17
+T 03 8A 00 05 74 01 2A F0 E4 3B A3 F0 22
+R 00 00 00 17 00 02 00 0B
+T 03 95
+R 00 00 00 17
+T 03 95 90 00 05 E4 F0 A3 F0 90 00 07 74 20 F0 90
+R 00 00 00 17 00 03 00 0B 00 0A 00 0B
+T 03 A3 00 08 74 03 F0 90 00 69 74
+R 00 00 00 17 00 02 00 0B 00 08 00 0B
+T 03 AC 00 00 09 F0 A3 74 00 00 09 F0 22
+R 00 00 00 17 F1 01 02 00 0B F1 81 08 00 0B
+T 03 B3
+R 00 00 00 17
+T 03 B3 90 00 02 E0 FA 70 03 02 03 D8
+R 00 00 00 17 00 03 00 0D 00 0A 00 17
+T 03 BD
+R 00 00 00 17
+T 03 BD 90 00 6E E0 FB A3 E0 FC 8B 9B 8C 9A 75 9E
+R 00 00 00 17 00 03 00 0B
+T 03 CB 40 75 9D E7 C0 02 7A F0 12 00 48 D0 02
+R 00 00 00 17 00 0B 00 17
+T 03 D8
+R 00 00 00 17
+T 03 D8 90 00 6E E0 FB A3 E0 FC 90 00 6E EA 2B F0
+R 00 00 00 17 00 03 00 0B 00 0B 00 0B
+T 03 E6 E4 3C A3 F0 8A 82 22
+R 00 00 00 17
+T 03 ED
+R 00 00 00 17
+T 00 6C
+R 00 00 00 50
+T 00 6C 28
+R 00 00 00 50
+T 00 6D
+R 00 00 00 51
+T 00 6D 01
+R 00 00 00 51
+T 00 6E
+R 00 00 00 52
+T 00 6E 5A 54 45 58
+R 00 00 00 52
+T 00 72
+R 00 00 00 53
+T 00 72 00 00 00 00
+R 00 00 00 53
+T 00 76
+R 00 00 00 54
+T 00 76 00
+R 00 00 00 54
+T 00 77
+R 00 00 00 55
+T 00 77 01
+R 00 00 00 55
+T 00 78
+R 00 00 00 56
+T 00 78 09 00 00 00 00 00
+R 00 00 00 56
+T 00 7E
+R 00 00 00 57
+T 00 7E 00 00 00 00 00 00 00 00 00 00 00 00
+R 00 00 00 57
+T 00 8A
+R 00 00 00 58
+T 00 8A 30 30 30 30 30 30 30 30 30 30
+R 00 00 00 58
+T 03 ED
+R 00 00 00 17
+T 03 ED 90 E6 83 E4 F0 74 20 F0 74 10 F0 74 30 F0
+R 00 00 00 17
+T 03 FB 90 E6 83 74 01 F0 74 21 F0 74 11 F0 74 31
+R 00 00 00 17
+T 04 09 F0 22
+R 00 00 00 17
+T 04 0B
+R 00 00 00 17
+T 04 0B AA 82 E5 00 00 01 24 E0 50 03 75 00 00 01
+R 00 00 00 17 F1 21 05 00 05 F1 21 0D 00 05
+T 04 15 1F
+R 00 00 00 17
+T 04 16
+R 00 00 00 17
+T 04 16 75 AF 07 8A 9B 85 00 00 00 9A 75 9E 41 75
+R 00 00 00 17 F1 21 08 00 05
+T 04 22 9D E7 90 E6 7C 74 03 F0 7A 00
+R 00 00 00 17
+T 04 2C
+R 00 00 00 17
+T 04 2C C3 EA 95 00 00 01 50 11 90 E6 7B E0 FB 90
+R 00 00 00 17 F1 21 05 00 05
+T 04 38 E6 7C F0 90 E6 7C E4 F0 0A 80 E9
+R 00 00 00 17
+T 04 43
+R 00 00 00 17
+T 04 43 E5 00 00 01 04 25 E0 FA 90 E7 40 F0 90
+R 00 00 00 17 F1 21 03 00 05
+T 04 4E E7 41 74 03 F0 90 E6 8A E4 F0 90 E6 8B EA
+R 00 00 00 17
+T 04 5C F0 22
+R 00 00 00 17
+T 04 5E
+R 00 00 00 17
+T 04 5E 90 00 00 E0 FA A3 E0 FB C3 74 40 9A E4 9B
+R 00 00 00 17 00 03 00 0D
+T 04 6C 50 06 7C 40 7D 00 80 04
+R 00 00 00 17
+T 04 74
+R 00 00 00 17
+T 04 74 8A 04 8B 05
+R 00 00 00 17
+T 04 78
+R 00 00 00 17
+T 04 78 90 00 02 EC F0 7D 00 90 00 00 EA C3 9C F0
+R 00 00 00 17 00 03 00 0D 00 0A 00 0D
+T 04 86 EB 9D A3 F0 22
+R 00 00 00 17
+T 04 8B
+R 00 00 00 17
+T 04 8B 90 00 03 E0 FA BA 39 24 90 00 04 E4 F0 90
+R 00 00 00 17 00 03 00 0D 00 0B 00 0B
+T 04 99 00 02 F0 A3 F0 90 E6 BB E0 FB 7A 00 90
+R 00 00 00 17 00 02 00 0B
+T 04 A6 E6 BA E0 FC 7D 00 90 00 00 EC 4A F0 ED 4B
+R 00 00 00 17 00 09 00 0B
+T 04 B4 A3 F0 22
+R 00 00 00 17
+T 04 B7
+R 00 00 00 17
+T 04 B7 90 E6 A0 E0 44 01 F0 22
+R 00 00 00 17
+T 04 BF
+R 00 00 00 17
+T 04 BF C0 00 00 00 C0 E0 C0 F0 C0 82 C0 83 C0 02
+R 00 00 00 17 F1 21 03 00 03
+T 04 CB C0 03 C0 04 C0 05 C0 06 C0 07 C0 00 C0 01
+R 00 00 00 17
+T 04 D9 C0 D0 75 D0 00 90 E6 B9 E0 FA 90 00 03 F0
+R 00 00 00 17 00 0D 00 0D
+T 04 E7 90 E6 B5 74 01 F0 90 E6 B9 E0 FA 24 F3 50
+R 00 00 00 17
+T 04 F5 03 02 08 75
+R 00 00 00 17 00 04 00 17
+T 04 F9
+R 00 00 00 17
+T 04 F9 EA 2A 2A 90 05 00 73
+R 00 00 00 17 00 06 00 17
+T 05 00
+R 00 00 00 17
+T 05 00 02 05 27 02 05 DB 02
+R 00 00 00 17 00 03 00 17 00 06 00 17
+T 05 07 08 75 02 06 58 02
+R 00 00 00 17 00 02 00 17 00 05 00 17
+T 05 0D 08 75 02 08 75 02
+R 00 00 00 17 00 02 00 17 00 05 00 17
+T 05 13 06 F0 02 08 0B 02
+R 00 00 00 17 00 02 00 17 00 05 00 17
+T 05 19 08 0D 02 08 1E 02
+R 00 00 00 17 00 02 00 17 00 05 00 17
+T 05 1F 08 23 02 08 34 02
+R 00 00 00 17 00 02 00 17 00 05 00 17
+T 05 25 08 39
+R 00 00 00 17 00 02 00 17
+T 05 27
+R 00 00 00 17
+T 05 27 90 E6 B8 E0 FA BA 80 02 80 0D
+R 00 00 00 17
+T 05 31
+R 00 00 00 17
+T 05 31 BA 81 02 80 1E
+R 00 00 00 17
+T 05 36
+R 00 00 00 17
+T 05 36 BA 82 02 80 2F
+R 00 00 00 17
+T 05 3B
+R 00 00 00 17
+T 05 3B 02 08 75
+R 00 00 00 17 00 03 00 17
+T 05 3E
+R 00 00 00 17
+T 05 3E 90 E7 40 E4 F0 90 E7 41 F0 90 E6 8A F0 90
+R 00 00 00 17
+T 05 4C E6 8B 74 02 F0 02 08 75
+R 00 00 00 17 00 08 00 17
+T 05 54
+R 00 00 00 17
+T 05 54 90 E7 40 E4 F0 90 E7 41 F0 90 E6 8A F0 90
+R 00 00 00 17
+T 05 62 E6 8B 74 02 F0 02 08 75
+R 00 00 00 17 00 08 00 17
+T 05 6A
+R 00 00 00 17
+T 05 6A 90 E6 BC E0 FA 60 0F BA 01 02 80 19
+R 00 00 00 17
+T 05 76
+R 00 00 00 17
+T 05 76 BA 80 02 80 05
+R 00 00 00 17
+T 05 7B
+R 00 00 00 17
+T 05 7B BA 81 2F 80 1E
+R 00 00 00 17
+T 05 80
+R 00 00 00 17
+T 05 80 90 E6 A0 E0 FA 53 02 01 90 E7 40 EA F0 80
+R 00 00 00 17
+T 05 8E 3A
+R 00 00 00 17
+T 05 8F
+R 00 00 00 17
+T 05 8F 90 E6 A1 E0 FA 53 02 01 90 E7 40 EA F0 80
+R 00 00 00 17
+T 05 9D 2B
+R 00 00 00 17
+T 05 9E
+R 00 00 00 17
+T 05 9E 90 E6 A2 E0 FA 53 02 01 90 E7 40 EA F0 80
+R 00 00 00 17
+T 05 AC 1C
+R 00 00 00 17
+T 05 AD
+R 00 00 00 17
+T 05 AD 90 E6 BC E0 C3 13 14 54 03 24 A3 F5 82 E4
+R 00 00 00 17
+T 05 BB 34 E6 F5 83 E0 FA 53 02 01 90 E7 40 EA F0
+R 00 00 00 17
+T 05 C9
+R 00 00 00 17
+T 05 C9 90 E7 41 E4 F0 90 E6 8A F0 90 E6 8B 74 02
+R 00 00 00 17
+T 05 D7 F0 02 08 75
+R 00 00 00 17 00 04 00 17
+T 05 DB
+R 00 00 00 17
+T 05 DB 90 E6 B8 E0 FA BA 02 02 80 03
+R 00 00 00 17
+T 05 E5
+R 00 00 00 17
+T 05 E5 02 08 75
+R 00 00 00 17 00 03 00 17
+T 05 E8
+R 00 00 00 17
+T 05 E8 90 E6 BA E0 60 03 02 08 75
+R 00 00 00 17 00 09 00 17
+T 05 F1
+R 00 00 00 17
+T 05 F1 90 E6 BC E0 FA 60 0F BA 01 02 80 15
+R 00 00 00 17
+T 05 FD
+R 00 00 00 17
+T 05 FD BA 80 02 80 05
+R 00 00 00 17
+T 06 02
+R 00 00 00 17
+T 06 02 BA 81 23 80 16
+R 00 00 00 17
+T 06 07
+R 00 00 00 17
+T 06 07 90 E6 A0 E0 FA 54 FE F0 02 08 75
+R 00 00 00 17 00 0B 00 17
+T 06 12
+R 00 00 00 17
+T 06 12 90 E6 A1 E0 FA 54 FE F0 02 08 75
+R 00 00 00 17 00 0B 00 17
+T 06 1D
+R 00 00 00 17
+T 06 1D 90 E6 A2 E0 FA 54 FE F0 02 08 75
+R 00 00 00 17 00 0B 00 17
+T 06 28
+R 00 00 00 17
+T 06 28 90 E6 BC E0 C3 13 14 54 03 24 A3 FA E4 34
+R 00 00 00 17
+T 06 36 E6 FB 90 E6 BC E0 C3 13 14 54 03 24 A3 F5
+R 00 00 00 17
+T 06 44 82 E4 34 E6 F5 83 E0 FC 53 04 FE 8A 82 8B
+R 00 00 00 17
+T 06 52 83 EC F0 02 08 75
+R 00 00 00 17 00 06 00 17
+T 06 58
+R 00 00 00 17
+T 06 58 90 E6 B8 E0 FA BA 02 02 80 03
+R 00 00 00 17
+T 06 62
+R 00 00 00 17
+T 06 62 02 08 75
+R 00 00 00 17 00 03 00 17
+T 06 65
+R 00 00 00 17
+T 06 65 90 E6 BA E0 60 03 02 08 75
+R 00 00 00 17 00 09 00 17
+T 06 6E
+R 00 00 00 17
+T 06 6E 90 E6 BC E0 FA 60 0F BA 01 02 80 14
+R 00 00 00 17
+T 06 7A
+R 00 00 00 17
+T 06 7A BA 80 02 80 05
+R 00 00 00 17
+T 06 7F
+R 00 00 00 17
+T 06 7F BA 81 20 80 14
+R 00 00 00 17
+T 06 84
+R 00 00 00 17
+T 06 84 90 E6 A0 E0 FA 44 01 F0 80 41
+R 00 00 00 17
+T 06 8E
+R 00 00 00 17
+T 06 8E 90 E6 A1 E0 FA 44 01 F0 80 37
+R 00 00 00 17
+T 06 98
+R 00 00 00 17
+T 06 98 90 E6 A2 E0 FA 44 01 F0 80 2D
+R 00 00 00 17
+T 06 A2
+R 00 00 00 17
+T 06 A2 90 E6 BC E0 C3 13 14 54 03 24 A3 FA E4 34
+R 00 00 00 17
+T 06 B0 E6 FB 90 E6 BC E0 C3 13 14 54 03 24 A3 F5
+R 00 00 00 17
+T 06 BE 82 E4 34 E6 F5 83 E0 FC 43 04 FE 8A 82 8B
+R 00 00 00 17
+T 06 CC 83 EC F0
+R 00 00 00 17
+T 06 CF
+R 00 00 00 17
+T 06 CF 90 E6 BC E0 54 80 C4 23 54 1F FA 90 E6 BC
+R 00 00 00 17
+T 06 DD E0 FB 74 0F 5B 42 02 90 E6 83 EA F0 74 20
+R 00 00 00 17
+T 06 EB 4A F0 02 08 75
+R 00 00 00 17 00 05 00 17
+T 06 F0
+R 00 00 00 17
+T 06 F0 90 E6 BB E0 FA BA 01 02 80 19
+R 00 00 00 17
+T 06 FA
+R 00 00 00 17
+T 06 FA BA 02 02 80 26
+R 00 00 00 17
+T 06 FF
+R 00 00 00 17
+T 06 FF BA 03 02 80 4D
+R 00 00 00 17
+T 07 04
+R 00 00 00 17
+T 07 04 BA 06 03 02 07 C4
+R 00 00 00 17 00 06 00 17
+T 07 0A
+R 00 00 00 17
+T 07 0A BA 07 03 02 07 D6
+R 00 00 00 17 00 06 00 17
+T 07 10
+R 00 00 00 17
+T 07 10 02 08 01
+R 00 00 00 17 00 03 00 17
+T 07 13
+R 00 00 00 17
+T 07 13 7A 00 00 29 7B 00 00 29 90 E6 B3 EB F0 90
+R 00 00 00 17 F1 01 03 00 59 F1 81 07 00 59
+T 07 1D E6 B4 74 00 00 29 F0 02 08 75
+R 00 00 00 17 F1 01 05 00 59 00 0A 00 17
+T 07 25
+R 00 00 00 17
+T 07 25 90 E6 80 E0 FA 30 E7 12 7A 00 00 45 7B
+R 00 00 00 17 F1 01 0B 00 59
+T 07 30 00 00 45 90 E6 B3 EB F0 90 E6 B4 74
+R 00 00 00 17 F1 81 02 00 59
+T 07 3A 00 00 45 F0 02 08 75
+R 00 00 00 17 F1 01 02 00 59 00 07 00 17
+T 07 3F
+R 00 00 00 17
+T 07 3F 7A 00 00 67 7B 00 00 67 90 E6 B3 EB F0 90
+R 00 00 00 17 F1 01 03 00 59 F1 81 07 00 59
+T 07 49 E6 B4 74 00 00 67 F0 02 08 75
+R 00 00 00 17 F1 01 05 00 59 00 0A 00 17
+T 07 51
+R 00 00 00 17
+T 07 51 90 E6 BA E0 FA BA 01 02 80 0F
+R 00 00 00 17
+T 07 5B
+R 00 00 00 17
+T 07 5B BA 02 02 80 1C
+R 00 00 00 17
+T 07 60
+R 00 00 00 17
+T 07 60 BA 03 02 80 29
+R 00 00 00 17
+T 07 65
+R 00 00 00 17
+T 07 65 BA 04 4A 80 36
+R 00 00 00 17
+T 07 6A
+R 00 00 00 17
+T 07 6A 75 82 00 00 00 7A 00 00 00 7B
+R 00 00 00 17 F1 01 04 00 59 F1 01 08 00 59
+T 07 70 00 00 00 8B 00 00 00 75
+R 00 00 00 17 F1 81 02 00 59 F1 21 06 00 05
+T 07 74 00 00 01 05 12 04 0B 02
+R 00 00 00 17 F1 21 02 00 05 00 07 00 17
+T 07 7A 08 75
+R 00 00 00 17 00 02 00 17
+T 07 7C
+R 00 00 00 17
+T 07 7C 75 82 00 00 05 7A 00 00 05 7B
+R 00 00 00 17 F1 01 04 00 59 F1 01 08 00 59
+T 07 82 00 00 05 8B 00 00 00 75
+R 00 00 00 17 F1 81 02 00 59 F1 21 06 00 05
+T 07 86 00 00 01 19 12 04 0B 02
+R 00 00 00 17 F1 21 02 00 05 00 07 00 17
+T 07 8C 08 75
+R 00 00 00 17 00 02 00 17
+T 07 8E
+R 00 00 00 17
+T 07 8E 75 82 8A 7A 8A 7B 00 8B 00 00 00 75
+R 00 00 00 17 F1 21 0A 00 05
+T 07 98 00 00 01 0A 12 04 0B 02
+R 00 00 00 17 F1 21 02 00 05 00 07 00 17
+T 07 9E 08 75
+R 00 00 00 17 00 02 00 17
+T 07 A0
+R 00 00 00 17
+T 07 A0 75 82 00 00 1E 7A 00 00 1E 7B
+R 00 00 00 17 F1 01 04 00 59 F1 01 08 00 59
+T 07 A6 00 00 1E 8B 00 00 00 75
+R 00 00 00 17 F1 81 02 00 59 F1 21 06 00 05
+T 07 AA 00 00 01 0A 12 04 0B 02
+R 00 00 00 17 F1 21 02 00 05 00 07 00 17
+T 07 B0 08 75
+R 00 00 00 17 00 02 00 17
+T 07 B2
+R 00 00 00 17
+T 07 B2 7A 00 00 89 7B 00 00 89 90 E6 B3 EB F0 90
+R 00 00 00 17 F1 01 03 00 59 F1 81 07 00 59
+T 07 BC E6 B4 74 00 00 89 F0 02 08 75
+R 00 00 00 17 F1 01 05 00 59 00 0A 00 17
+T 07 C4
+R 00 00 00 17
+T 07 C4 7A 00 00 3B 7B 00 00 3B 90 E6 B3 EB F0 90
+R 00 00 00 17 F1 01 03 00 59 F1 81 07 00 59
+T 07 CE E6 B4 74 00 00 3B F0 02 08 75
+R 00 00 00 17 F1 01 05 00 59 00 0A 00 17
+T 07 D6
+R 00 00 00 17
+T 07 D6 90 E6 80 E0 FA 30 E7 12 7A 00 00 67 7B
+R 00 00 00 17 F1 01 0B 00 59
+T 07 E1 00 00 67 90 E6 B3 EB F0 90 E6 B4 74
+R 00 00 00 17 F1 81 02 00 59
+T 07 EB 00 00 67 F0 02 08 75
+R 00 00 00 17 F1 01 02 00 59 00 07 00 17
+T 07 F0
+R 00 00 00 17
+T 07 F0 7A 00 00 45 7B 00 00 45 90 E6 B3 EB F0 90
+R 00 00 00 17 F1 01 03 00 59 F1 81 07 00 59
+T 07 FA E6 B4 74 00 00 45 F0 80 74
+R 00 00 00 17 F1 01 05 00 59
+T 08 01
+R 00 00 00 17
+T 08 01 90 E6 A0 E0 FA 44 01 F0 80 6A
+R 00 00 00 17
+T 08 0B
+R 00 00 00 17
+T 08 0B 80 68
+R 00 00 00 17
+T 08 0D
+R 00 00 00 17
+T 08 0D 90 E7 40 E4 F0 90 E6 8A F0 90 E6 8B 74 01
+R 00 00 00 17
+T 08 1B F0 80 57
+R 00 00 00 17
+T 08 1E
+R 00 00 00 17
+T 08 1E 12 03 ED 80 52
+R 00 00 00 17 00 03 00 17
+T 08 23
+R 00 00 00 17
+T 08 23 90 E7 40 E4 F0 90 E6 8A F0 90 E6 8B 74 01
+R 00 00 00 17
+T 08 31 F0 80 41
+R 00 00 00 17
+T 08 34
+R 00 00 00 17
+T 08 34 12 03 ED 80 3C
+R 00 00 00 17 00 03 00 17
+T 08 39
+R 00 00 00 17
+T 08 39 90 E6 B8 E0 FA BA 82 34 90 E6 BC E0 C3 13
+R 00 00 00 17
+T 08 47 14 54 03 25 E0 24 00 00 05 F5 82 E4 34
+R 00 00 00 17 F1 01 08 00 0D
+T 08 52 00 00 05 F5 83 E4 F0 A3 F0 90 E6 85 E0 90
+R 00 00 00 17 F1 81 02 00 0D
+T 08 5E E7 40 F0 90 E6 84 E0 FA 90 E7 41 F0 90
+R 00 00 00 17
+T 08 6B E6 8A E4 F0 90 E6 8B 74 02 F0
+R 00 00 00 17
+T 08 75
+R 00 00 00 17
+T 08 75 90 E6 B8 E0 FA BA 40 03 02 09 65
+R 00 00 00 17 00 0B 00 17
+T 08 80
+R 00 00 00 17
+T 08 80 BA C0 02 80 03
+R 00 00 00 17
+T 08 85
+R 00 00 00 17
+T 08 85 02 09 8F
+R 00 00 00 17 00 03 00 17
+T 08 88
+R 00 00 00 17
+T 08 88 90 E6 BF E0 FB 7A 00 90 E6 BE E0 FC 7D 00
+R 00 00 00 17
+T 08 96 90 00 00 EC 4A F0 ED 4B A3 F0 12 04 5E 90
+R 00 00 00 17 00 03 00 0D 00 0D 00 17
+T 08 A4 E6 B9 E0 FA BA 22 02 80 13
+R 00 00 00 17
+T 08 AD
+R 00 00 00 17
+T 08 AD BA 28 03 02 09 41
+R 00 00 00 17 00 06 00 17
+T 08 B3
+R 00 00 00 17
+T 08 B3 BA 38 02 80 25
+R 00 00 00 17
+T 08 B8
+R 00 00 00 17
+T 08 B8 BA 3A 02 80 49
+R 00 00 00 17
+T 08 BD
+R 00 00 00 17
+T 08 BD 02 09 5B
+R 00 00 00 17 00 03 00 17
+T 08 C0
+R 00 00 00 17
+T 08 C0 90 E6 B5 E4 F0 90 E6 8A F0 90 E6 8B 74 28
+R 00 00 00 17
+T 08 CE F0 90 E6 B3 E4 F0 90 E6 B4 74 6C F0 02
+R 00 00 00 17
+T 08 DB 09 8F
+R 00 00 00 17 00 02 00 17
+T 08 DD
+R 00 00 00 17
+T 08 DD 90 E6 BB E0 FB 7A 00 90 E6 BA E0 FC 7D 00
+R 00 00 00 17
+T 08 EB 90 00 00 EC 4A F0 ED 4B A3 F0 90 E6 8A E4
+R 00 00 00 17 00 03 00 0B
+T 08 F9 F0 12 02 F0 E5 82 90 E6 8B F0 02 09 8F
+R 00 00 00 17 00 04 00 17 00 0D 00 17
+T 09 06
+R 00 00 00 17
+T 09 06 90 00 02 E0 FA A3 E0 FB 8A 04 90 E7 40 EC
+R 00 00 00 17 00 03 00 0B
+T 09 14 F0 8B 02 90 E7 41 EA F0 90 00 04 E0 90
+R 00 00 00 17 00 0B 00 0B
+T 09 21 E7 42 F0 75 00 00 00 01 75 82 00 12 00 E0
+R 00 00 00 17 F1 21 06 00 04 00 0E 00 17
+T 09 2D AA 82 90 E7 43 EA F0 90 E6 8A E4 F0 90
+R 00 00 00 17
+T 09 3A E6 8B 74 04 F0 80 4E
+R 00 00 00 17
+T 09 41
+R 00 00 00 17
+T 09 41 90 00 6E 74 00 00 05 F0 A3 74
+R 00 00 00 17 00 03 00 0B F1 01 06 00 0B
+T 09 49 00 00 05 F0 90 E6 8A E4 F0 12 03 B3 E5 82
+R 00 00 00 17 F1 81 02 00 0B 00 0C 00 17
+T 09 55 90 E6 8B F0 80 34
+R 00 00 00 17
+T 09 5B
+R 00 00 00 17
+T 09 5B 90 E6 A0 E0 FA 44 01 F0 80 2A
+R 00 00 00 17
+T 09 65
+R 00 00 00 17
+T 09 65 90 E6 BF E0 70 06 90 E6 BE E0 60 16
+R 00 00 00 17
+T 09 71
+R 00 00 00 17
+T 09 71 90 00 04 74 01 F0 90 E6 8B E4 F0 53 91 EF
+R 00 00 00 17 00 03 00 0D
+T 09 7F 90 E6 5D 74 01 F0 80 19
+R 00 00 00 17
+T 09 87
+R 00 00 00 17
+T 09 87 12 04 8B 90 E6 8B E4 F0
+R 00 00 00 17 00 03 00 17
+T 09 8F
+R 00 00 00 17
+T 09 8F 53 91 EF 90 E6 5D 74 01 F0 90 E6 A0 E0 FA
+R 00 00 00 17
+T 09 9D 44 80 F0
+R 00 00 00 17
+T 09 A0
+R 00 00 00 17
+T 09 A0 D0 D0 D0 01 D0 00 D0 07 D0 06 D0 05 D0 04
+R 00 00 00 17
+T 09 AE D0 03 D0 02 D0 83 D0 82 D0 F0 D0 E0 D0
+R 00 00 00 17
+T 09 BB 00 00 00 32
+R 00 00 00 17 F1 21 02 00 03
+T 09 BD
+R 00 00 00 17
+T 09 BD C0 E0 C0 82 C0 83 53 91 EF 90 E6 5D 74 02
+R 00 00 00 17
+T 09 CB F0 D0 83 D0 82 D0 E0 32
+R 00 00 00 17
+T 09 D3
+R 00 00 00 17
+T 09 D3 C0 E0 C0 82 C0 83 53 91 EF 90 E6 5D 74 04
+R 00 00 00 17
+T 09 E1 F0 D0 83 D0 82 D0 E0 32
+R 00 00 00 17
+T 09 E9
+R 00 00 00 17
+T 09 E9 C0 E0 C0 82 C0 83 53 91 EF 90 E6 5D 74 08
+R 00 00 00 17
+T 09 F7 F0 D0 83 D0 82 D0 E0 32
+R 00 00 00 17
+T 09 FF
+R 00 00 00 17
+T 09 FF C0 E0 C0 82 C0 83 53 91 EF 90 E6 5D 74 10
+R 00 00 00 17
+T 0A 0D F0 D0 83 D0 82 D0 E0 32
+R 00 00 00 17
+T 0A 15
+R 00 00 00 17
+T 0A 15 C0 E0 C0 82 C0 83 53 91 EF 90 E6 5D 74 20
+R 00 00 00 17
+T 0A 23 F0 D0 83 D0 82 D0 E0 32
+R 00 00 00 17
+T 0A 2B
+R 00 00 00 17
+T 0A 2B C0 E0 C0 82 C0 83 53 91 EF 90 E6 5D 74 40
+R 00 00 00 17
+T 0A 39 F0 D0 83 D0 82 D0 E0 32
+R 00 00 00 17
+T 0A 41
+R 00 00 00 17
+T 0A 41 C0 00 00 00 C0 E0 C0 F0 C0 82 C0 83 C0 02
+R 00 00 00 17 F1 21 03 00 03
+T 0A 4D C0 03 C0 04 C0 05 C0 06 C0 07 C0 00 C0 01
+R 00 00 00 17
+T 0A 5B C0 D0 75 D0 00 C2 E8 12 04 5E 90 00 03 E0
+R 00 00 00 17 00 0A 00 17 00 0D 00 0D
+T 0A 69 FA BA 28 02 80 1A
+R 00 00 00 17
+T 0A 6F
+R 00 00 00 17
+T 0A 6F BA 38 02 80 05
+R 00 00 00 17
+T 0A 74
+R 00 00 00 17
+T 0A 74 BA 3A 22 80 29
+R 00 00 00 17
+T 0A 79
+R 00 00 00 17
+T 0A 79 90 E6 8A E4 F0 12 02 F0 E5 82 90 E6 8B F0
+R 00 00 00 17 00 08 00 17
+T 0A 87 80 19
+R 00 00 00 17
+T 0A 89
+R 00 00 00 17
+T 0A 89 90 E6 8A E4 F0 12 03 B3 E5 82 90 E6 8B F0
+R 00 00 00 17 00 08 00 17
+T 0A 97 80 09
+R 00 00 00 17
+T 0A 99
+R 00 00 00 17
+T 0A 99 90 E6 8A E4 F0 90 E6 8B F0
+R 00 00 00 17
+T 0A A2
+R 00 00 00 17
+T 0A A2 53 91 EF 90 E6 5F 74 01 F0 D2 E8 D0 D0 D0
+R 00 00 00 17
+T 0A B0 01 D0 00 D0 07 D0 06 D0 05 D0 04 D0 03 D0
+R 00 00 00 17
+T 0A BE 02 D0 83 D0 82 D0 F0 D0 E0 D0 00 00 00 32
+R 00 00 00 17 F1 21 0C 00 03
+T 0A CA
+R 00 00 00 17
+T 0A CA C0 00 00 00 C0 E0 C0 F0 C0 82 C0 83 C0 02
+R 00 00 00 17 F1 21 03 00 03
+T 0A D6 C0 03 C0 04 C0 05 C0 06 C0 07 C0 00 C0 01
+R 00 00 00 17
+T 0A E4 C0 D0 75 D0 00 C2 E8 90 00 04 E0 FA 60 20
+R 00 00 00 17 00 0A 00 0D
+T 0A F2 90 00 04 E4 F0 90 E6 BF E0 FB 7A 00 90
+R 00 00 00 17 00 03 00 0D
+T 0A FF E6 BE E0 FC 7D 00 90 00 00 EC 4A F0 ED 4B
+R 00 00 00 17 00 09 00 0D
+T 0B 0D A3 F0 12 04 8B
+R 00 00 00 17 00 05 00 17
+T 0B 12
+R 00 00 00 17
+T 0B 12 12 04 5E 90 00 03 E0 FA BA 39 09 90 E6 8B
+R 00 00 00 17 00 03 00 17 00 06 00 0D
+T 0B 20 E0 F5 82 12 03 24
+R 00 00 00 17 00 06 00 17
+T 0B 26
+R 00 00 00 17
+T 0B 26 90 E6 8B E4 F0 53 91 EF 90 E6 5F 74 02 F0
+R 00 00 00 17
+T 0B 34 90 00 00 E0 FA A3 E0 FB 4A 70 08 90 E6 A0
+R 00 00 00 17 00 03 00 0D
+T 0B 42 E0 FA 44 80 F0
+R 00 00 00 17
+T 0B 47
+R 00 00 00 17
+T 0B 47 D2 E8 D0 D0 D0 01 D0 00 D0 07 D0 06 D0 05
+R 00 00 00 17
+T 0B 55 D0 04 D0 03 D0 02 D0 83 D0 82 D0 F0 D0 E0
+R 00 00 00 17
+T 0B 63 D0 00 00 00 32
+R 00 00 00 17 F1 21 03 00 03
+T 0B 66
+R 00 00 00 17
+T 0B 66 C0 E0 C0 82 C0 83 53 91 EF 90 E6 5F 74 04
+R 00 00 00 17
+T 0B 74 F0 D0 83 D0 82 D0 E0 32
+R 00 00 00 17
+T 0B 7C
+R 00 00 00 17
+T 0B 7C C0 E0 C0 82 C0 83 53 91 EF 90 E6 5F 74 08
+R 00 00 00 17
+T 0B 8A F0 D0 83 D0 82 D0 E0 32
+R 00 00 00 17
+T 0B 92
+R 00 00 00 17
+T 0B 92 C0 E0 C0 82 C0 83 53 91 EF 90 E6 5F 74 10
+R 00 00 00 17
+T 0B A0 F0 D0 83 D0 82 D0 E0 32
+R 00 00 00 17
+T 0B A8
+R 00 00 00 17
+T 0B A8 C0 E0 C0 82 C0 83 53 91 EF 90 E6 5F 74 20
+R 00 00 00 17
+T 0B B6 F0 D0 83 D0 82 D0 E0 32
+R 00 00 00 17
+T 0B BE
+R 00 00 00 17
+T 0B BE C0 E0 C0 82 C0 83 53 91 EF 90 E6 5F 74 40
+R 00 00 00 17
+T 0B CC F0 D0 83 D0 82 D0 E0 32
+R 00 00 00 17
+T 0B D4
+R 00 00 00 17
+T 0B D4 C0 E0 C0 82 C0 83 53 91 EF 90 E6 5F 74 80
+R 00 00 00 17
+T 0B E2 F0 D0 83 D0 82 D0 E0 32
+R 00 00 00 17
+T 0B EA
+R 00 00 00 17
+T 0B EA 90 E6 80 E0 44 08 F0 90 E6 00 74 12 F0 53
+R 00 00 00 17
+T 0B F8 8E F8 C2 AF C2 E8 90 00 43 74 02 F0 90
+R 00 00 00 17
+T 0C 05 00 44 74 01 F0 90 00 45 74 B8 F0 90 E6 68
+R 00 00 00 17
+T 0C 13 E0 44 08 F0 90 01 00 74 02 F0 7A 00 04 BF
+R 00 00 00 17 F1 01 0D 00 17
+T 0C 1F 7B 00 04 BF 8B 04 90 01 01 EC F0 90 01 02
+R 00 00 00 17 F1 81 03 00 17
+T 0C 2B EA F0 90 01 04 74 02 F0 7A 00 09 BD 7B
+R 00 00 00 17 F1 01 0B 00 17
+T 0C 36 00 09 BD 8B 04 90 01 05 EC F0 90 01 06 EA
+R 00 00 00 17 F1 81 02 00 17
+T 0C 42 F0 90 01 08 74 02 F0 7A 00 09 D3 7B
+R 00 00 00 17 F1 01 0A 00 17
+T 0C 4C 00 09 D3 8B 04 90 01 09 EC F0 90 01 0A EA
+R 00 00 00 17 F1 81 02 00 17
+T 0C 58 F0 90 01 0C 74 02 F0 7A 00 09 E9 7B
+R 00 00 00 17 F1 01 0A 00 17
+T 0C 62 00 09 E9 8B 04 90 01 0D EC F0 90 01 0E EA
+R 00 00 00 17 F1 81 02 00 17
+T 0C 6E F0 90 01 10 74 02 F0 7A 00 09 FF 7B
+R 00 00 00 17 F1 01 0A 00 17
+T 0C 78 00 09 FF 8B 04 90 01 11 EC F0 90 01 12 EA
+R 00 00 00 17 F1 81 02 00 17
+T 0C 84 F0 90 01 14 74 02 F0 7A 00 0A 15 7B
+R 00 00 00 17 F1 01 0A 00 17
+T 0C 8E 00 0A 15 8B 04 90 01 15 EC F0 90 01 16 EA
+R 00 00 00 17 F1 81 02 00 17
+T 0C 9A F0 90 01 18 74 02 F0 7A 00 0A 2B 7B
+R 00 00 00 17 F1 01 0A 00 17
+T 0C A4 00 0A 2B 8B 04 90 01 19 EC F0 90 01 1A EA
+R 00 00 00 17 F1 81 02 00 17
+T 0C B0 F0 90 01 20 74 02 F0 7A 00 0A 41 7B
+R 00 00 00 17 F1 01 0A 00 17
+T 0C BA 00 0A 41 8B 04 90 01 21 EC F0 90 01 22 EA
+R 00 00 00 17 F1 81 02 00 17
+T 0C C6 F0 90 01 24 74 02 F0 7A 00 0A CA 7B
+R 00 00 00 17 F1 01 0A 00 17
+T 0C D0 00 0A CA 8B 04 90 01 25 EC F0 90 01 26 EA
+R 00 00 00 17 F1 81 02 00 17
+T 0C DC F0 90 01 28 74 02 F0 7A 00 0B 66 7B
+R 00 00 00 17 F1 01 0A 00 17
+T 0C E6 00 0B 66 8B 04 90 01 29 EC F0 90 01 2A EA
+R 00 00 00 17 F1 81 02 00 17
+T 0C F2 F0 90 01 2C 74 02 F0 7A 00 0B 7C 7B
+R 00 00 00 17 F1 01 0A 00 17
+T 0C FC 00 0B 7C 8B 04 90 01 2D EC F0 90 01 2E EA
+R 00 00 00 17 F1 81 02 00 17
+T 0D 08 F0 90 01 30 74 02 F0 7A 00 0B 92 7B
+R 00 00 00 17 F1 01 0A 00 17
+T 0D 12 00 0B 92 8B 04 90 01 31 EC F0 90 01 32 EA
+R 00 00 00 17 F1 81 02 00 17
+T 0D 1E F0 90 01 34 74 02 F0 7A 00 0B A8 7B
+R 00 00 00 17 F1 01 0A 00 17
+T 0D 28 00 0B A8 8B 04 90 01 35 EC F0 90 01 36 EA
+R 00 00 00 17 F1 81 02 00 17
+T 0D 34 F0 90 01 38 74 02 F0 7A 00 0B BE 7B
+R 00 00 00 17 F1 01 0A 00 17
+T 0D 3E 00 0B BE 8B 04 90 01 39 EC F0 90 01 3A EA
+R 00 00 00 17 F1 81 02 00 17
+T 0D 4A F0 90 01 3C 74 02 F0 7A 00 0B D4 7B
+R 00 00 00 17 F1 01 0A 00 17
+T 0D 54 00 0B D4 8B 04 90 01 3D EC F0 90 01 3E EA
+R 00 00 00 17 F1 81 02 00 17
+T 0D 60 F0 53 91 EF 90 E6 5D 74 7F F0 90 E6 5C E0
+R 00 00 00 17
+T 0D 6E FA 44 7F F0 90 E6 5F 74 FF F0 90 E6 5E 74
+R 00 00 00 17
+T 0D 7C FF F0 D2 E8 D2 AF 90 E6 11 74 A0 F0 00 00
+R 00 00 00 17
+T 0D 8A 00 00 90 E6 10 74 A0 F0 00 00 00 00 90
+R 00 00 00 17
+T 0D 97 E6 12 E4 F0 00 00 00 00 90 E6 13 E4 F0 00
+R 00 00 00 17
+T 0D A5 00 00 00 90 E6 14 E4 F0 00 00 00 00 90
+R 00 00 00 17
+T 0D B2 E6 15 E4 F0 00 00 00 00 12 03 95 90 E6 80
+R 00 00 00 17 00 0B 00 17
+T 0D C0 E0 44 82 F0 90 00 FA 12 00 00 90 E6 80 E0
+R 00 00 00 17 00 0A 00 17
+T 0D CE 54 F7 F0 22
+R 00 00 00 17
+T 0D D2
+R 00 00 00 17
+T 0D D2 12 0B EA 7A 00 7B 00
+R 00 00 00 17 00 03 00 17
+T 0D D9
+R 00 00 00 17
+T 0D D9 8A 04 90 00 6B EC F0 8B 04 90 00 6C EC F0
+R 00 00 00 17 00 05 00 0B 00 0C 00 0B
+T 0D E7 C0 02 C0 03 12 03 51 D0 03 D0 02 0A BA 00
+R 00 00 00 17 00 07 00 17
+T 0D F5 01 0B
+R 00 00 00 17
+T 0D F7
+R 00 00 00 17
+T 0D F7 7C 00
+R 00 00 00 17
+T 0D F9
+R 00 00 00 17
+T 0D F9 BC 64 00
+R 00 00 00 17
+T 0D FC
+R 00 00 00 17
+T 0D FC 50 DB 90 00 69 E0 FD A3 E0 FE 8D 82 8E 83
+R 00 00 00 17 00 05 00 0B
+T 0E 0A A3 A3 EC F0 90 00 0A C0 02 C0 03 C0 04 12
+R 00 00 00 17
+T 0E 18 00 00 D0 04 D0 03 D0 02 0C 80 D6
+R 00 00 00 17 00 02 00 17
+T 00 00
+R 00 00 00 59
+T 00 00 5A 54 45 58 00
+R 00 00 00 59
+T 00 05
+R 00 00 00 59
+T 00 05 64 65 62 75 67 20 66 6F 72 20 45 5A 2D 55
+R 00 00 00 59
+T 00 13 53 42 20 64 65 76 69 63 65 73 00
+R 00 00 00 59
+T 00 1E
+R 00 00 00 59
+T 00 1E 28 75 6E 6B 6E 6F 77 6E 29 00
+R 00 00 00 59
+T 00 28
+R 00 00 00 59
+T 00 28 00
+R 00 00 00 59
+T 00 29
+R 00 00 00 59
+T 00 29 12 01 00 02 FF FF FF 40 1A 22 00 01 00 00
+R 00 00 00 59
+T 00 37 01 02 03 01
+R 00 00 00 59
+T 00 3B
+R 00 00 00 59
+T 00 3B 0A 06 00 02 FF FF FF 40 01 00
+R 00 00 00 59
+T 00 45
+R 00 00 00 59
+T 00 45 09 02 20 00 01 01 04 C0 32 09 04 00 00 02
+R 00 00 00 59
+T 00 53 FF FF FF 00 07 05 81 02 00 02 00 07 05 01
+R 00 00 00 59
+T 00 61 02 00 02 00
+R 00 00 00 59
+T 00 65
+R 00 00 00 59
+T 00 65 00 00
+R 00 00 00 59
+T 00 67
+R 00 00 00 59
+T 00 67 09 02 20 00 01 01 04 C0 32 09 04 00 00 02
+R 00 00 00 59
+T 00 75 FF FF FF 00 07 05 81 02 40 00 00 07 05 01
+R 00 00 00 59
+T 00 83 02 40 00 00
+R 00 00 00 59
+T 00 87
+R 00 00 00 59
+T 00 87 00 00
+R 00 00 00 59
+T 00 89
+R 00 00 00 59
+T 00 89 04 03 00 00
+R 00 00 00 59
+T 00 00
+R 00 00 00 5A
+T 00 00 00 00
+R 00 00 00 5A
+T 00 02
+R 00 00 00 5A
+T 00 02 00
+R 00 00 00 5A
+T 00 03
+R 00 00 00 5A
+T 00 03 FF
+R 00 00 00 5A
+T 00 04
+R 00 00 00 5A
+T 00 04 00
+R 00 00 00 5A
+T 00 05
+R 00 00 00 5A
+T 00 05 00 00 00 00 00 00 00 00
+R 00 00 00 5A
Index: debug/debug.lnk
===================================================================
--- debug/debug.lnk (nonexistent)
+++ debug/debug.lnk (revision 3)
@@ -0,0 +1,20 @@
+-myuxi
+-Y
+-a 0x0100
+-v 0x1000
+-w 0x2e00
+-b HOME = 0x0200
+-b XSEG = 0x3200
+-b PSEG = 0x3200
+-b ISEG = 0x0000
+-b BSEG = 0x0000
+-k /usr/bin/../share/sdcc/lib/small
+-k /usr/share/sdcc/lib/small
+-l mcs51
+-l libsdcc
+-l libint
+-l liblong
+-l libfloat
+debug.rel
+
+-e
Index: debug/debug.ihx
===================================================================
--- debug/debug.ihx (nonexistent)
+++ debug/debug.ihx (revision 3)
@@ -0,0 +1,487 @@
+:03020000020208EF
+:0302610002020393
+:0502030012103680FE20
+:03000000020200F9
+:0100030032CA
+:01000B0032C2
+:0100130032BA
+:01001B0032B2
+:0100230032AA
+:01002B0032A2
+:01003300329A
+:01003B003292
+:01004300328A
+:01004B003282
+:01005300327A
+:01005B003272
+:01006300326A
+:0101000032CC
+:0101040032C8
+:0101080032C4
+:01010C0032C0
+:0101100032BC
+:0101140032B8
+:0101180032B4
+:0101200032AC
+:0101240032A8
+:0101280032A4
+:01012C0032A0
+:01013000329C
+:010134003298
+:010138003294
+:01013C003290
+:01014000328C
+:010148003284
+:01014C003280
+:01015000327C
+:010154003278
+:010158003274
+:01015C003270
+:01016000326C
+:01017000325C
+:010174003258
+:010178003254
+:01017C003250
+:01018000324C
+:010184003248
+:010188003244
+:01018C003240
+:01019000323C
+:010194003238
+:010198003234
+:01019C003230
+:0101A000322C
+:0101A8003224
+:0101AC003220
+:0101B000321C
+:0101B4003218
+:0101B8003214
+:08026400AA82AB837C007D003F
+:0B026C00C3EC9AED9B50147EB07F04A1
+:050277001EBEFF011F87
+:0B027C00EE4F70F70CBC00E80D80E5B1
+:010287002254
+:08028800AA82AB837C007D001B
+:0B029000C3EC9AED9B50147E0A7F0027
+:05029B001EBEFF011F63
+:0B02A000EE4F70F70CBC00E80D80E58D
+:0102AB002230
+:0E02AC0075AF0790E67BE090E67CF0DAF32277
+:0202BA007A00C8
+:0302BC00BAFF0086
+:0D02BF00500B90E678E0FB20E0030A80F091
+:0C02CC0090E678E0FA20E204EA20E10B62
+:0B02D80090E678E04440F075820122BF
+:0402E30075820022FE
+:0202E7007A009B
+:0302E900BAFF0059
+:0D02EC00500B90E678E0FB20E0030A80F064
+:0E02F90090E678E0FA30E20B90E678E04440C0
+:05030700F075820122E7
+:04030C0075820022D4
+:020310007A0071
+:03031200BAFF002F
+:0E031500500F90E678E0FB20E2047582002293
+:030323000A80EC61
+:0403260075820122B9
+:02032A007A0057
+:03032C00BAFF0015
+:0E032F00500F90E678E0FB20E6047582002275
+:03033D000A80EC47
+:04034000758201229F
+:08034400AA82C3E49AE433FA33
+:0D034C0090E678E04480F0C00212031090AB
+:0E035900E67974A2F01202BAE582D0027012A8
+:0C036700E508600A90E678E04440F012DF
+:02037300032A5B
+:04037500758200226B
+:0E037900EA600C90000AC002120288D00280D6
+:01038700C4B1
+:0C038800E508600890E678E0FA4440F0D8
+:04039400758201224B
+:0C039800AA82AB837C00E50B7003F582A9
+:0103A4002236
+:0C03A500750800758264C002C003C0042B
+:0E03B100120344E582D004D003D002600302A0
+:0203BF00049B9D
+:0C03C10090E679E50AF0C002C003C00419
+:0E03CD001202BAE582D004D003D0026003020F
+:0203DB00049B81
+:0C03DD0090E679E509F0C002C003C004FE
+:0E03E9001202BAE582D004D003D002600302F3
+:0203F700049B65
+:0E03F90090E678E04440F0C002C003C0041259
+:0D040700032A90E678E04480F01203109084
+:0E041400E67974A3F01202BAE582D004D00398
+:0E042200D002707590E679E08A828B83F0C07C
+:0E04300002C003C0041202E7E582D004D0032C
+:05043E00D0027059FD21
+:0C044300C3ED950B502A90E679E08A8208
+:0E044F008B83F0A3AA82AB83C002C003C0045B
+:0E045D00C0051202E7E582D005D004D003D01E
+:08046B0002702D0D8D0480D0FC
+:0E04730090E678E04420F090E679E0C00412B4
+:0E04810002E7E582D004701290E678E0444075
+:0C048F00F090E679E0C00412032AD004CB
+:03049B008C82222E
+:0C049E00AA82AB837C00750800758264A4
+:0E04AA00C002C003C004120344E582D004D097
+:0804B80003D0026003020551AC
+:0C04C00090E679E50DF0C002C003C00416
+:0E04CC001202BAE582D004D003D0026003020F
+:0204DA000551CA
+:0C04DC0090E679E50CF0C002C003C004FB
+:0E04E8001202BAE582D004D003D002705CFD8F
+:0C04F600C3ED950E50478A828B83E0FE18
+:0E050200A3AA82AB8390E679EEF0903204E07B
+:0D051000FFEE2FF0903202E0FEA3E0FF901E
+:0E051D00320274012EF0E43FA3F0C002C003CE
+:0E052B00C004C0051202BAE582D005D004D08B
+:0A05390003D00270130D8D0480B38F
+:0E05430090E678E04440F0C00412032AD00491
+:030551008C822277
+:0A055400903272E0FA903200E0F5F8
+:06055E0009A3E0F50A8A82
+:0C0564000B90E740C002120398AB82D05D
+:0E057000027C00903200E0FDA3E0FE9032001D
+:0A057E00EA2DF0EC3EA3F08B822280
+:0B058800AA82903200E0F50CA3E0F521
+:090593000D8A0E90E740C002122F
+:0E059C00049ED0027B00903200E0FCA3E0FD44
+:0B05AA00903200EA2CF0EB3DA3F022A1
+:0E05B500903205E0FAA3E0FB741F5A75F003C4
+:0905C300A42409FCE43432FD908B
+:0B05CC003269ECF0A3EDF0759B6B7E34
+:0A05D7006B7F328F9A8C068D078E21
+:0D05E1009E8D9DC0027A031202ACD00290E4
+:0B05EE00320574012AF0E43BA3F02268
+:0E05F900903205E4F0A3F09032077420F090E9
+:0906070032087403F090326974AA
+:0706100009F0A37432F0228F
+:0A061700903272E0FA700302063C14
+:0E06210090326EE0FBA3E0FC8B9B8C9A759EE2
+:0D062F0040759DE7C0027AF01202ACD002C7
+:0E063C0090326EE0FBA3E0FC90326EEA2BF0F1
+:07064A00E43CA3F08A8222C8
+:01006C00286B
+:01006D000191
+:04006E005A54455843
+:04007200000000008A
+:010076000089
+:010077000187
+:0600780009000000000079
+:0C007E0000000000000000000000000076
+:0A008A00303030303030303030308C
+:0E06510090E683E4F07420F07410F07430F042
+:0E065F0090E6837401F07421F07411F0743190
+:02066D00F02279
+:0A066F00AA82E51024E05003751084
+:010679001F61
+:0C067A0075AF078A9B850F9A759E41752D
+:0A0686009DE790E67C7403F07A0013
+:0C069000C3EA9510501190E67BE0FB904F
+:0B069C00E67CF090E67CE4F00A80E9C8
+:0B06A700E5100425E0FA90E740F09019
+:0E06B200E7417403F090E68AE4F090E68BEAEC
+:0206C000F02226
+:0E06C200903270E0FAA3E0FBC374409AE49B10
+:0806D00050067C407D0080040F
+:0406D8008A048B0500
+:0E06DC00903272ECF07D00903270EAC39CF018
+:0506EA00EB9DA3F022CE
+:0E06EF00903273E0FABA3924903204E4F090AD
+:0D06FD003202F0A3F090E6BBE0FB7A009023
+:0E070A00E6BAE0FC7D00903200EC4AF0ED4BC8
+:03071800A3F02229
+:08071B0090E6A0E04401F02289
+:0C072300C020C0E0C0F0C082C083C00253
+:0E072F00C003C004C005C006C007C000C00162
+:0E073D00C0D075D00090E6B9E0FA903273F0AB
+:0E074B0090E6B57401F090E6B9E0FA24F350A0
+:0407590003020AD9B4
+:07075D00EA2A2A90076473E9
+:0707640002078B02083F02AF
+:06076B000AD90208BC02DD
+:060771000AD9020AD902B8
+:060777000954020A6F02A2
+:06077D000A71020A82026B
+:060783000A87020A980239
+:020789000A9DC7
+:0A078B0090E6B8E0FABA8002800D93
+:05079500BA8102801E84
+:05079A00BA8202802F6D
+:03079F00020AD972
+:0E07A20090E740E4F090E741F090E68AF09096
+:0807B000E68B7402F0020AD985
+:0E07B80090E740E4F090E741F090E68AF09080
+:0807C600E68B7402F0020AD96F
+:0C07CE0090E6BCE0FA600FBA010280194E
+:0507DA00BA8002800559
+:0507DF00BA812F801E0D
+:0E07E40090E6A0E0FA53020190E740EAF080B0
+:0107F2003ACC
+:0E07F30090E6A1E0FA53020190E740EAF080A0
+:010801002BCB
+:0E08020090E6A2E0FA53020190E740EAF0808F
+:010810001CCB
+:0E08110090E6BCE0C31314540324A3F582E464
+:0E081F0034E6F583E0FA53020190E740EAF078
+:0E082D0090E741E4F090E68AF090E68B7402CA
+:04083B00F0020AD9E4
+:0A083F0090E6B8E0FABA0202800366
+:03084900020AD9C7
+:09084C0090E6BAE06003020AD94B
+:0C08550090E6BCE0FA600FBA01028015CA
+:05086100BA80028005D1
+:05086600BA8123801699
+:0B086B0090E6A0E0FA54FEF0020AD96B
+:0B08760090E6A1E0FA54FEF0020AD95F
+:0B08810090E6A2E0FA54FEF0020AD953
+:0E088C0090E6BCE0C31314540324A3FAE43432
+:0E089A00E6FB90E6BCE0C31314540324A3F560
+:0E08A80082E434E6F583E0FC5304FE8A828B82
+:0608B60083ECF0020AD9F8
+:0A08BC0090E6B8E0FABA02028003E9
+:0308C600020AD94A
+:0908C90090E6BAE06003020AD9CE
+:0C08D20090E6BCE0FA600FBA010280144E
+:0508DE00BA8002800554
+:0508E300BA8120801421
+:0A08E80090E6A0E0FA4401F0804120
+:0A08F20090E6A1E0FA4401F080371F
+:0A08FC0090E6A2E0FA4401F0802D1E
+:0E09060090E6BCE0C31314540324A3FAE434B7
+:0E091400E6FB90E6BCE0C31314540324A3F5E5
+:0E09220082E434E6F583E0FC4304FE8A828B17
+:0309300083ECF065
+:0E09330090E6BCE05480C423541FFA90E6BC4A
+:0E094100E0FB740F5B420290E683EAF0742044
+:05094F004AF0020AD984
+:0A09540090E6BBE0FABA0102801938
+:05095E00BA0202802630
+:05096300BA0302804D03
+:06096800BA0603020A2892
+:06096E00BA0703020A3A79
+:03097400020A650F
+:0A0977007AB47B1090E6B3EBF09029
+:08098100E6B474B4F0020AD9D7
+:0B09890090E680E0FA30E7127AD07BA5
+:0A0994001090E6B3EBF090E6B474A7
+:05099E00D0F0020AD9AF
+:0A09A3007AF27B1090E6B3EBF090BF
+:0809AD00E6B474F2F0020AD96D
+:0A09B50090E6BAE0FABA0102800FE2
+:0509BF00BA0202801CD9
+:0509C400BA03028029C6
+:0509C900BA044A80366B
+:0609CE0075828B7A8B7B21
+:0409D400108B0F7500
+:0609D800100512066F027B
+:0209DE000AD934
+:0609E0007582907A907B05
+:0409E600108B0F75EE
+:0609EA00101912066F0255
+:0209F0000AD922
+:0A09F20075828A7A8A7B008B0F75EC
+:0609FC00100A12066F0252
+:020A02000AD90F
+:060A04007582A97AA97BAE
+:040A0A00108B0F75C9
+:060A0E00100A12066F023F
+:020A14000AD9FD
+:0A0A16007A147B1190E6B3EBF09028
+:080A2000E6B47414F0020AD9D7
+:0A0A28007AC67B1090E6B3EBF09065
+:080A3200E6B474C6F0020AD913
+:0B0A3A0090E680E0FA30E7127AF27BD1
+:0A0A45001090E6B3EBF090E6B474F5
+:050A4F00F2F0020AD9DB
+:0A0A54007AD07B1090E6B3EBF0902F
+:070A5E00E6B474D0F08074CF
+:0A0A650090E6A0E0FA4401F0806A78
+:020A6F0080689D
+:0E0A710090E740E4F090E68AF090E68B740186
+:030A7F00F08057AD
+:050A8200120651805234
+:0E0A870090E740E4F090E68AF090E68B740170
+:030A9500F08041AD
+:050A9800120651803C34
+:0E0A9D0090E6B8E0FABA823490E6BCE0C313EB
+:0B0AAB0014540325E02475F582E434A8
+:0C0AB60032F583E4F0A3F090E685E090B8
+:0D0AC200E740F090E684E0FA90E741F09004
+:0A0ACF00E68AE4F090E68B7402F072
+:0B0AD90090E6B8E0FABA4003020BC937
+:050AE400BAC00280030E
+:030AE900020BF30A
+:0E0AEC0090E6BFE0FB7A0090E6BEE0FC7D00E5
+:0E0AFA00903270EC4AF0ED4BA3F01206C29061
+:090B0800E6B9E0FABA22028013FA
+:060B1100BA2803020BA547
+:050B1700BA3802802540
+:050B1C00BA3A02804915
+:030B2100020BBF05
+:0E0B240090E6B5E4F090E68AF090E68B742837
+:0D0B3200F090E6B3E4F090E6B4746CF002CD
+:020B3F000BF3B6
+:0E0B410090E6BBE0FB7A0090E6BAE0FC7D0097
+:0E0B4F00903200EC4AF0ED4BA3F090E68AE401
+:0D0B5D00F0120554E58290E68BF0020BF3D8
+:0E0B6A00903202E0FAA3E0FB8A0490E740EC30
+:0D0B7800F08B0290E741EAF0903204E0902B
+:0C0B8500E742F07508017582001203447D
+:0D0B9100AA8290E743EAF090E68AE4F09033
+:070B9E00E68B7404F0804EA9
+:080BA50090326E7405F0A37498
+:0C0BAD0032F090E68AE4F0120617E582B0
+:060BB90090E68BF0803491
+:0A0BBF0090E6A0E0FA4401F0802A5D
+:0C0BC90090E6BFE0700690E6BEE060160B
+:0E0BD5009032747401F090E68BE4F05391EFCF
+:080BE30090E65D7401F0801939
+:080BEB001206EF90E68BE4F026
+:0E0BF3005391EF90E65D7401F090E6A0E0FAF9
+:030C01004480F03C
+:0E0C0400D0D0D001D000D007D006D005D0044B
+:0D0C1200D003D002D083D082D0F0D0E0D04B
+:020C1F00203281
+:0E0C2100C0E0C082C0835391EF90E65D740284
+:080C2F00F0D083D082D0E03246
+:0E0C3700C0E0C082C0835391EF90E65D74046C
+:080C4500F0D083D082D0E03230
+:0E0C4D00C0E0C082C0835391EF90E65D740852
+:080C5B00F0D083D082D0E0321A
+:0E0C6300C0E0C082C0835391EF90E65D741034
+:080C7100F0D083D082D0E03204
+:0E0C7900C0E0C082C0835391EF90E65D74200E
+:080C8700F0D083D082D0E032EE
+:0E0C8F00C0E0C082C0835391EF90E65D7440D8
+:080C9D00F0D083D082D0E032D8
+:0C0CA500C020C0E0C0F0C082C083C002CC
+:0E0CB100C003C004C005C006C007C000C001DB
+:0E0CBF00C0D075D000C2E81206C2903273E0B9
+:060CCD00FABA2802801AA9
+:050CD300BA38028005A3
+:050CD800BA3A22802958
+:0E0CDD0090E68AE4F0120554E58290E68BF072
+:020CEB0080196E
+:0E0CED0090E68AE4F0120617E58290E68BF09E
+:020CFB0080096E
+:090CFD0090E68AE4F090E68BF029
+:0E0D06005391EF90E65F7401F0D2E8D0D0D0A8
+:0E0D140001D000D007D006D005D004D003D007
+:0C0D220002D083D082D0F0D0E0D020328C
+:0C0D2E00C020C0E0C0F0C082C083C00242
+:0E0D3A00C003C004C005C006C007C000C00151
+:0E0D4800C0D075D000C2E8903274E0FA60208E
+:0D0D5600903274E4F090E6BFE0FB7A00906C
+:0E0D6300E6BEE0FC7D00903270EC4AF0ED4BF5
+:050D7100A3F01206EFE3
+:0E0D76001206C2903273E0FABA390990E68B89
+:060D8400E0F58212058873
+:0E0D8A0090E68BE4F05391EF90E65F7402F078
+:0E0D9800903270E0FAA3E0FB4A700890E6A0EB
+:050DA600E0FA4480F0BA
+:0E0DAB00D2E8D0D0D001D000D007D006D005BD
+:0E0DB900D004D003D002D083D082D0F0D0E09E
+:030DC700D0203207
+:0E0DCA00C0E0C082C0835391EF90E65F7404D6
+:080DD800F0D083D082D0E0329C
+:0E0DE000C0E0C082C0835391EF90E65F7408BC
+:080DEE00F0D083D082D0E03286
+:0E0DF600C0E0C082C0835391EF90E65F74109E
+:080E0400F0D083D082D0E0326F
+:0E0E0C00C0E0C082C0835391EF90E65F742077
+:080E1A00F0D083D082D0E03259
+:0E0E2200C0E0C082C0835391EF90E65F744041
+:080E3000F0D083D082D0E03243
+:0E0E3800C0E0C082C0835391EF90E65F7480EB
+:080E4600F0D083D082D0E0322D
+:0E0E4E0090E680E04408F090E6007412F05345
+:0D0E5C008EF8C2AFC2E89000437402F0901F
+:0E0E690000447401F090004574B8F090E66803
+:0C0E7700E04408F09001007402F07A23BF
+:0C0E83007B078B04900101ECF090010251
+:0B0E8F00EAF09001047402F07A217B6D
+:0C0E9A000C8B04900105ECF0900106EABE
+:0A0EA600F09001087402F07A377B27
+:0C0EB0000C8B04900109ECF090010AEAA0
+:0A0EBC00F090010C7402F07A4D7BF7
+:0C0EC6000C8B0490010DECF090010EEA82
+:0A0ED200F09001107402F07A637BC7
+:0C0EDC000C8B04900111ECF0900112EA64
+:0A0EE800F09001147402F07A797B97
+:0C0EF2000C8B04900115ECF0900116EA46
+:0A0EFE00F09001187402F07A8F7B67
+:0C0F08000C8B04900119ECF090011AEA27
+:0A0F1400F09001207402F07AA57B32
+:0C0F1E000C8B04900121ECF0900122EA01
+:0A0F2A00F09001247402F07A2E7B8F
+:0C0F34000D8B04900125ECF0900126EAE2
+:0A0F4000F09001287402F07ACA7BD9
+:0C0F4A000D8B04900129ECF090012AEAC4
+:0A0F5600F090012C7402F07AE07BA9
+:0C0F60000D8B0490012DECF090012EEAA6
+:0A0F6C00F09001307402F07AF67B79
+:0C0F76000D8B04900131ECF0900132EA88
+:0A0F8200F09001347402F07A0C7B49
+:0C0F8C000E8B04900135ECF0900136EA69
+:0A0F9800F09001387402F07A227B19
+:0C0FA2000E8B04900139ECF090013AEA4B
+:0A0FAE00F090013C7402F07A387BE9
+:0C0FB8000E8B0490013DECF090013EEA2D
+:0E0FC400F05391EF90E65D747FF090E65CE0F4
+:0E0FD200FA447FF090E65F74FFF090E65E74E4
+:0E0FE000FFF0D2E8D2AF90E61174A0F000004E
+:0D0FEE00000090E61074A0F00000000090DC
+:0E0FFB00E612E4F00000000090E613E4F000BF
+:0D10090000000090E614E4F00000000090EC
+:0E101600E615E4F0000000001205F990E680F7
+:0E102400E04482F09000FA12026490E680E050
+:0410320054F7F0225D
+:07103600120E4E7A007B0050
+:0E103D008A0490326BECF08B0490326CECF075
+:0E104B00C002C0031205B5D003D0020ABA00DD
+:02105900010B89
+:02105B007C0017
+:03105D00BC640070
+:0E10600050DB903269E0FDA3E0FE8D828E83AE
+:0E106E00A3A3ECF090000AC002C003C004125D
+:0B107C000264D004D003D0020C80D628
+:05108B005A5445580015
+:0E109000646562756720666F7220455A2D55A3
+:0B109E005342206465766963657300AF
+:0A10A90028756E6B6E6F776E2900DC
+:0110B300003C
+:0E10B40012010002FFFFFF401A22000100009F
+:0410C2000102030123
+:0A10C6000A060002FFFFFF400100D0
+:0E10D00009022000010104C0320904000002E0
+:0E10DE00FFFFFF000705810200020007050169
+:0410EC0002000200FC
+:0210F0000000FE
+:0E10F20009022000010104C0320904000002BE
+:0E110000FFFFFF000705810240000007050108
+:04110E00024000009B
+:021112000000DB
+:0411140004030000D0
+:021118000000D5
+:01111A0000D4
+:01111B00FFD4
+:01111C0000D2
+:08111D000000000000000000CA
+:06023700E478FFF6D8FD9B
+:08021500790DE94400601B7A39
+:05021D000190111878AA
+:0302220070759262
+:0A02250032E493F2A308B8000205CA
+:08022F0092D9F4DAF27592FF96
+:08023D007800E84400600A7932
+:03024500007592AF
+:0602480032E4F309D8FCCA
+:08024E007870E84400600C79AF
+:0B02560001903200E4F0A3D8FCD9FABC
+:03020800758120DD
+:0A020B00121087E58260030202036F
+:04108700758200224C
+:00000001FF
Index: debug/Makefile
===================================================================
--- debug/Makefile (nonexistent)
+++ debug/Makefile (revision 3)
@@ -0,0 +1,21 @@
+#########################
+# configuration section #
+#########################
+
+ZTEXPREFIX=../../..
+
+JARTARGET=Debug.jar
+CLASSTARGETS=Debug.class
+CLASSEXTRADEPS=
+#CLASSEXTRADEPS:=$(shell echo $(ZTEXPREFIX)/java/ztex/*.java)
+
+IHXTARGETS=debug.ihx
+IHXEXTRADEPS=
+#IHXEXTRADEPS:=$(shell echo $(ZTEXPREFIX)/include/*.h)
+EXTRAJARFILES=debug.ihx
+
+################################
+# DO NOT CHANAGE THE FOLLOWING #
+################################
+
+include $(ZTEXPREFIX)/Makefile.mk