URL
https://opencores.org/ocsvn/usb_fpga_1_15/usb_fpga_1_15/trunk
Subversion Repositories usb_fpga_1_15
[/] [usb_fpga_1_15/] [trunk/] [default/] [usb-fpga-2.04/] [default.lst] - Rev 4
Compare with Previous | Blame | View Log
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 Apr 2 23:08:29 2014
5 ;--------------------------------------------------------
6 .module default_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 _spi_write_PARM_2
15 .globl _flash_read_PARM_2
16 .globl _mac_eeprom_init_hexdigits_1_1
17 .globl _EmptyStringDescriptor
18 .globl _FullSpeedConfigDescriptor_PadByte
19 .globl _FullSpeedConfigDescriptor
20 .globl _HighSpeedConfigDescriptor_PadByte
21 .globl _HighSpeedConfigDescriptor
22 .globl _DeviceQualifierDescriptor
23 .globl _DeviceDescriptor
24 .globl _configurationString
25 .globl _productString
26 .globl _manufacturerString
27 .globl _fpga_flash_boot_id
28 .globl _main
29 .globl _init_USB
30 .globl _mac_eeprom_init
31 .globl _EP8_ISR
32 .globl _EP6_ISR
33 .globl _EP4_ISR
34 .globl _EP2_ISR
35 .globl _EP1OUT_ISR
36 .globl _EP1IN_ISR
37 .globl _EP0ACK_ISR
38 .globl _HSGRANT_ISR
39 .globl _URES_ISR
40 .globl _SUSP_ISR
41 .globl _SUTOK_ISR
42 .globl _SOF_ISR
43 .globl _abscode_identity
44 .globl _fpga_configure_from_flash_init
45 .globl _fpga_first_free_sector
46 .globl _fpga_configure_from_flash
47 .globl _fpga_send_ep0
48 .globl _spi_send_ep0
49 .globl _spi_read_ep0
50 .globl _flash_init
51 .globl _flash_write_next
52 .globl _flash_write_finish
53 .globl _flash_write_finish_sector
54 .globl _flash_write_init
55 .globl _flash_write
56 .globl _flash_write_byte
57 .globl _spi_pp
58 .globl _flash_read_finish
59 .globl _flash_read_next
60 .globl _flash_read_init
61 .globl _spi_wait
62 .globl _spi_deselect
63 .globl _spi_select
64 .globl _spi_write
65 .globl _spi_write_byte
66 .globl _flash_read
67 .globl _flash_read_byte
68 .globl _spi_clocks
69 .globl _mac_eeprom_read_ep0
70 .globl _mac_eeprom_write
71 .globl _mac_eeprom_read
72 .globl _eeprom_write_ep0
73 .globl _eeprom_read_ep0
74 .globl _eeprom_write
75 .globl _eeprom_read
76 .globl _eeprom_select
77 .globl _i2c_waitStop
78 .globl _i2c_waitStart
79 .globl _i2c_waitRead
80 .globl _i2c_waitWrite
81 .globl _MEM_COPY1_int
82 .globl _uwait
83 .globl _wait
84 .globl _abscode_intvec
85 .globl _EIPX6
86 .globl _EIPX5
87 .globl _EIPX4
88 .globl _PI2C
89 .globl _PUSB
90 .globl _BREG7
91 .globl _BREG6
92 .globl _BREG5
93 .globl _BREG4
94 .globl _BREG3
95 .globl _BREG2
96 .globl _BREG1
97 .globl _BREG0
98 .globl _EIEX6
99 .globl _EIEX5
100 .globl _EIEX4
101 .globl _EI2C
102 .globl _EUSB
103 .globl _ACC7
104 .globl _ACC6
105 .globl _ACC5
106 .globl _ACC4
107 .globl _ACC3
108 .globl _ACC2
109 .globl _ACC1
110 .globl _ACC0
111 .globl _SMOD1
112 .globl _ERESI
113 .globl _RESI
114 .globl _INT6
115 .globl _CY
116 .globl _AC
117 .globl _F0
118 .globl _RS1
119 .globl _RS0
120 .globl _OV
121 .globl _F1
122 .globl _PF
123 .globl _TF2
124 .globl _EXF2
125 .globl _RCLK
126 .globl _TCLK
127 .globl _EXEN2
128 .globl _TR2
129 .globl _CT2
130 .globl _CPRL2
131 .globl _SM0_1
132 .globl _SM1_1
133 .globl _SM2_1
134 .globl _REN_1
135 .globl _TB8_1
136 .globl _RB8_1
137 .globl _TI_1
138 .globl _RI_1
139 .globl _PS1
140 .globl _PT2
141 .globl _PS0
142 .globl _PT1
143 .globl _PX1
144 .globl _PT0
145 .globl _PX0
146 .globl _IOD7
147 .globl _IOD6
148 .globl _IOD5
149 .globl _IOD4
150 .globl _IOD3
151 .globl _IOD2
152 .globl _IOD1
153 .globl _IOD0
154 .globl _EA
155 .globl _ES1
156 .globl _ET2
157 .globl _ES0
158 .globl _ET1
159 .globl _EX1
160 .globl _ET0
161 .globl _EX0
162 .globl _IOC7
163 .globl _IOC6
164 .globl _IOC5
165 .globl _IOC4
166 .globl _IOC3
167 .globl _IOC2
168 .globl _IOC1
169 .globl _IOC0
170 .globl _SM0_0
171 .globl _SM1_0
172 .globl _SM2_0
173 .globl _REN_0
174 .globl _TB8_0
175 .globl _RB8_0
176 .globl _TI_0
177 .globl _RI_0
178 .globl _IOB7
179 .globl _IOB6
180 .globl _IOB5
181 .globl _IOB4
182 .globl _IOB3
183 .globl _IOB2
184 .globl _IOB1
185 .globl _IOB0
186 .globl _TF1
187 .globl _TR1
188 .globl _TF0
189 .globl _TR0
190 .globl _IE1
191 .globl _IT1
192 .globl _IE0
193 .globl _IT0
194 .globl _IOA7
195 .globl _IOA6
196 .globl _IOA5
197 .globl _IOA4
198 .globl _IOA3
199 .globl _IOA2
200 .globl _IOA1
201 .globl _IOA0
202 .globl _EIP
203 .globl _BREG
204 .globl _EIE
205 .globl _ACC
206 .globl _EICON
207 .globl _PSW
208 .globl _TH2
209 .globl _TL2
210 .globl _RCAP2H
211 .globl _RCAP2L
212 .globl _T2CON
213 .globl _SBUF1
214 .globl _SCON1
215 .globl _GPIFSGLDATLNOX
216 .globl _GPIFSGLDATLX
217 .globl _GPIFSGLDATH
218 .globl _GPIFTRIG
219 .globl _EP01STAT
220 .globl _IP
221 .globl _OEE
222 .globl _OED
223 .globl _OEC
224 .globl _OEB
225 .globl _OEA
226 .globl _IOE
227 .globl _IOD
228 .globl _AUTOPTRSETUP
229 .globl _EP68FIFOFLGS
230 .globl _EP24FIFOFLGS
231 .globl _EP2468STAT
232 .globl _IE
233 .globl _INT4CLR
234 .globl _INT2CLR
235 .globl _IOC
236 .globl _AUTOPTRL2
237 .globl _AUTOPTRH2
238 .globl _AUTOPTRL1
239 .globl _AUTOPTRH1
240 .globl _SBUF0
241 .globl _SCON0
242 .globl __XPAGE
243 .globl _MPAGE
244 .globl _EXIF
245 .globl _IOB
246 .globl _CKCON
247 .globl _TH1
248 .globl _TH0
249 .globl _TL1
250 .globl _TL0
251 .globl _TMOD
252 .globl _TCON
253 .globl _PCON
254 .globl _DPS
255 .globl _DPH1
256 .globl _DPL1
257 .globl _DPH0
258 .globl _DPL0
259 .globl _SP
260 .globl _IOA
261 .globl _ISOFRAME_COUNTER
262 .globl _ep0_vendor_cmd_setup
263 .globl _ep0_prev_setup_request
264 .globl _ep0_payload_transfer
265 .globl _ep0_payload_remaining
266 .globl _SN_STRING
267 .globl _MODULE_RESERVED
268 .globl _INTERFACE_CAPABILITIES
269 .globl _INTERFACE_VERSION
270 .globl _FW_VERSION
271 .globl _PRODUCT_ID
272 .globl _ZTEXID
273 .globl _ZTEX_DESCRIPTOR_VERSION
274 .globl _ZTEX_DESCRIPTOR
275 .globl _OOEA
276 .globl _fpga_conf_initialized
277 .globl _fpga_flash_result
278 .globl _fpga_init_b
279 .globl _fpga_bytes
280 .globl _fpga_checksum
281 .globl _ep0_write_mode
282 .globl _ep0_read_mode
283 .globl _spi_write_sector
284 .globl _spi_need_pp
285 .globl _spi_write_addr_lo
286 .globl _spi_write_addr_hi
287 .globl _spi_buffer
288 .globl _spi_last_cmd
289 .globl _spi_erase_cmd
290 .globl _spi_memtype
291 .globl _spi_device
292 .globl _spi_vendor
293 .globl _flash_ec
294 .globl _flash_sectors
295 .globl _flash_sector_size
296 .globl _flash_enabled
297 .globl _config_data_valid
298 .globl _mac_eeprom_addr
299 .globl _eeprom_write_checksum
300 .globl _eeprom_write_bytes
301 .globl _eeprom_addr
302 .globl _INTVEC_GPIFWF
303 .globl _INTVEC_GPIFDONE
304 .globl _INTVEC_EP8FF
305 .globl _INTVEC_EP6FF
306 .globl _INTVEC_EP2FF
307 .globl _INTVEC_EP8EF
308 .globl _INTVEC_EP6EF
309 .globl _INTVEC_EP4EF
310 .globl _INTVEC_EP2EF
311 .globl _INTVEC_EP8PF
312 .globl _INTVEC_EP6PF
313 .globl _INTVEC_EP4PF
314 .globl _INTVEC_EP2PF
315 .globl _INTVEC_EP8ISOERR
316 .globl _INTVEC_EP6ISOERR
317 .globl _INTVEC_EP4ISOERR
318 .globl _INTVEC_EP2ISOERR
319 .globl _INTVEC_ERRLIMIT
320 .globl _INTVEC_EP8PING
321 .globl _INTVEC_EP6PING
322 .globl _INTVEC_EP4PING
323 .globl _INTVEC_EP2PING
324 .globl _INTVEC_EP1PING
325 .globl _INTVEC_EP0PING
326 .globl _INTVEC_IBN
327 .globl _INTVEC_EP8
328 .globl _INTVEC_EP6
329 .globl _INTVEC_EP4
330 .globl _INTVEC_EP2
331 .globl _INTVEC_EP1OUT
332 .globl _INTVEC_EP1IN
333 .globl _INTVEC_EP0OUT
334 .globl _INTVEC_EP0IN
335 .globl _INTVEC_EP0ACK
336 .globl _INTVEC_HISPEED
337 .globl _INTVEC_USBRESET
338 .globl _INTVEC_SUSPEND
339 .globl _INTVEC_SUTOK
340 .globl _INTVEC_SOF
341 .globl _INTVEC_SUDAV
342 .globl _INT12VEC_IE6
343 .globl _INT11VEC_IE5
344 .globl _INT10VEC_GPIF
345 .globl _INT9VEC_I2C
346 .globl _INT8VEC_USB
347 .globl _INT7VEC_USART1
348 .globl _INT6VEC_RESUME
349 .globl _INT5VEC_T2
350 .globl _INT4VEC_USART0
351 .globl _INT3VEC_T1
352 .globl _INT2VEC_IE1
353 .globl _INT1VEC_T0
354 .globl _INT0VEC_IE0
355 .globl _EP8FIFOBUF
356 .globl _EP6FIFOBUF
357 .globl _EP4FIFOBUF
358 .globl _EP2FIFOBUF
359 .globl _EP1INBUF
360 .globl _EP1OUTBUF
361 .globl _EP0BUF
362 .globl _GPIFABORT
363 .globl _GPIFREADYSTAT
364 .globl _GPIFREADYCFG
365 .globl _XGPIFSGLDATLNOX
366 .globl _XGPIFSGLDATLX
367 .globl _XGPIFSGLDATH
368 .globl _EP8GPIFTRIG
369 .globl _EP8GPIFPFSTOP
370 .globl _EP8GPIFFLGSEL
371 .globl _EP6GPIFTRIG
372 .globl _EP6GPIFPFSTOP
373 .globl _EP6GPIFFLGSEL
374 .globl _EP4GPIFTRIG
375 .globl _EP4GPIFPFSTOP
376 .globl _EP4GPIFFLGSEL
377 .globl _EP2GPIFTRIG
378 .globl _EP2GPIFPFSTOP
379 .globl _EP2GPIFFLGSEL
380 .globl _GPIFTCB0
381 .globl _GPIFTCB1
382 .globl _GPIFTCB2
383 .globl _GPIFTCB3
384 .globl _FLOWSTBHPERIOD
385 .globl _FLOWSTBEDGE
386 .globl _FLOWSTB
387 .globl _FLOWHOLDOFF
388 .globl _FLOWEQ1CTL
389 .globl _FLOWEQ0CTL
390 .globl _FLOWLOGIC
391 .globl _FLOWSTATE
392 .globl _GPIFADRL
393 .globl _GPIFADRH
394 .globl _GPIFCTLCFG
395 .globl _GPIFIDLECTL
396 .globl _GPIFIDLECS
397 .globl _GPIFWFSELECT
398 .globl _wLengthH
399 .globl _wLengthL
400 .globl _wIndexH
401 .globl _wIndexL
402 .globl _wValueH
403 .globl _wValueL
404 .globl _bRequest
405 .globl _bmRequestType
406 .globl _SETUPDAT
407 .globl _SUDPTRCTL
408 .globl _SUDPTRL
409 .globl _SUDPTRH
410 .globl _EP8FIFOBCL
411 .globl _EP8FIFOBCH
412 .globl _EP6FIFOBCL
413 .globl _EP6FIFOBCH
414 .globl _EP4FIFOBCL
415 .globl _EP4FIFOBCH
416 .globl _EP2FIFOBCL
417 .globl _EP2FIFOBCH
418 .globl _EP8FIFOFLGS
419 .globl _EP6FIFOFLGS
420 .globl _EP4FIFOFLGS
421 .globl _EP2FIFOFLGS
422 .globl _EP8CS
423 .globl _EP6CS
424 .globl _EP4CS
425 .globl _EP2CS
426 .globl _EPXCS
427 .globl _EP1INCS
428 .globl _EP1OUTCS
429 .globl _EP0CS
430 .globl _EP8BCL
431 .globl _EP8BCH
432 .globl _EP6BCL
433 .globl _EP6BCH
434 .globl _EP4BCL
435 .globl _EP4BCH
436 .globl _EP2BCL
437 .globl _EP2BCH
438 .globl _EP1INBC
439 .globl _EP1OUTBC
440 .globl _EP0BCL
441 .globl _EP0BCH
442 .globl _FNADDR
443 .globl _MICROFRAME
444 .globl _USBFRAMEL
445 .globl _USBFRAMEH
446 .globl _TOGCTL
447 .globl _WAKEUPCS
448 .globl _SUSPEND
449 .globl _USBCS
450 .globl _UDMACRCQUALIFIER
451 .globl _UDMACRCL
452 .globl _UDMACRCH
453 .globl _EXTAUTODAT2
454 .globl _XAUTODAT2
455 .globl _EXTAUTODAT1
456 .globl _XAUTODAT1
457 .globl _I2CTL
458 .globl _I2DAT
459 .globl _I2CS
460 .globl _PORTECFG
461 .globl _PORTCCFG
462 .globl _PORTACFG
463 .globl _INTSETUP
464 .globl _INT4IVEC
465 .globl _INT2IVEC
466 .globl _CLRERRCNT
467 .globl _ERRCNTLIM
468 .globl _USBERRIRQ
469 .globl _USBERRIE
470 .globl _GPIFIRQ
471 .globl _GPIFIE
472 .globl _EPIRQ
473 .globl _EPIE
474 .globl _USBIRQ
475 .globl _USBIE
476 .globl _NAKIRQ
477 .globl _NAKIE
478 .globl _IBNIRQ
479 .globl _IBNIE
480 .globl _EP8FIFOIRQ
481 .globl _EP8FIFOIE
482 .globl _EP6FIFOIRQ
483 .globl _EP6FIFOIE
484 .globl _EP4FIFOIRQ
485 .globl _EP4FIFOIE
486 .globl _EP2FIFOIRQ
487 .globl _EP2FIFOIE
488 .globl _OUTPKTEND
489 .globl _INPKTEND
490 .globl _EP8ISOINPKTS
491 .globl _EP6ISOINPKTS
492 .globl _EP4ISOINPKTS
493 .globl _EP2ISOINPKTS
494 .globl _EP8FIFOPFL
495 .globl _EP8FIFOPFH
496 .globl _EP6FIFOPFL
497 .globl _EP6FIFOPFH
498 .globl _EP4FIFOPFL
499 .globl _EP4FIFOPFH
500 .globl _EP2FIFOPFL
501 .globl _EP2FIFOPFH
502 .globl _ECC2B2
503 .globl _ECC2B1
504 .globl _ECC2B0
505 .globl _ECC1B2
506 .globl _ECC1B1
507 .globl _ECC1B0
508 .globl _ECCRESET
509 .globl _ECCCFG
510 .globl _EP8AUTOINLENL
511 .globl _EP8AUTOINLENH
512 .globl _EP6AUTOINLENL
513 .globl _EP6AUTOINLENH
514 .globl _EP4AUTOINLENL
515 .globl _EP4AUTOINLENH
516 .globl _EP2AUTOINLENL
517 .globl _EP2AUTOINLENH
518 .globl _EP8FIFOCFG
519 .globl _EP6FIFOCFG
520 .globl _EP4FIFOCFG
521 .globl _EP2FIFOCFG
522 .globl _EP8CFG
523 .globl _EP6CFG
524 .globl _EP4CFG
525 .globl _EP2CFG
526 .globl _EP1INCFG
527 .globl _EP1OUTCFG
528 .globl _GPIFHOLDAMOUNT
529 .globl _REVCTL
530 .globl _REVID
531 .globl _FIFOPINPOLAR
532 .globl _UART230
533 .globl _BPADDRL
534 .globl _BPADDRH
535 .globl _BREAKPT
536 .globl _FIFORESET
537 .globl _PINFLAGSCD
538 .globl _PINFLAGSAB
539 .globl _IFCONFIG
540 .globl _CPUCS
541 .globl _GPCR2
542 .globl _GPIF_WAVE3_DATA
543 .globl _GPIF_WAVE2_DATA
544 .globl _GPIF_WAVE1_DATA
545 .globl _GPIF_WAVE0_DATA
546 .globl _GPIF_WAVE_DATA
547 .globl _flash_write_PARM_2
548 .globl _mac_eeprom_write_PARM_3
549 .globl _mac_eeprom_write_PARM_2
550 .globl _mac_eeprom_read_PARM_3
551 .globl _mac_eeprom_read_PARM_2
552 .globl _eeprom_write_PARM_3
553 .globl _eeprom_write_PARM_2
554 .globl _eeprom_read_PARM_3
555 .globl _eeprom_read_PARM_2
556 .globl _eeprom_select_PARM_3
557 .globl _eeprom_select_PARM_2
558 ;--------------------------------------------------------
559 ; special function registers
560 ;--------------------------------------------------------
561 .area RSEG (DATA)
0080 562 _IOA = 0x0080
0081 563 _SP = 0x0081
0082 564 _DPL0 = 0x0082
0083 565 _DPH0 = 0x0083
0084 566 _DPL1 = 0x0084
0085 567 _DPH1 = 0x0085
0086 568 _DPS = 0x0086
0087 569 _PCON = 0x0087
0088 570 _TCON = 0x0088
0089 571 _TMOD = 0x0089
008A 572 _TL0 = 0x008a
008B 573 _TL1 = 0x008b
008C 574 _TH0 = 0x008c
008D 575 _TH1 = 0x008d
008E 576 _CKCON = 0x008e
0090 577 _IOB = 0x0090
0091 578 _EXIF = 0x0091
0092 579 _MPAGE = 0x0092
0092 580 __XPAGE = 0x0092
0098 581 _SCON0 = 0x0098
0099 582 _SBUF0 = 0x0099
009A 583 _AUTOPTRH1 = 0x009a
009B 584 _AUTOPTRL1 = 0x009b
009D 585 _AUTOPTRH2 = 0x009d
009E 586 _AUTOPTRL2 = 0x009e
00A0 587 _IOC = 0x00a0
00A1 588 _INT2CLR = 0x00a1
00A2 589 _INT4CLR = 0x00a2
00A8 590 _IE = 0x00a8
00AA 591 _EP2468STAT = 0x00aa
00AB 592 _EP24FIFOFLGS = 0x00ab
00AC 593 _EP68FIFOFLGS = 0x00ac
00AF 594 _AUTOPTRSETUP = 0x00af
00B0 595 _IOD = 0x00b0
00B1 596 _IOE = 0x00b1
00B2 597 _OEA = 0x00b2
00B3 598 _OEB = 0x00b3
00B4 599 _OEC = 0x00b4
00B5 600 _OED = 0x00b5
00B6 601 _OEE = 0x00b6
00B8 602 _IP = 0x00b8
00BA 603 _EP01STAT = 0x00ba
00BB 604 _GPIFTRIG = 0x00bb
00BD 605 _GPIFSGLDATH = 0x00bd
00BE 606 _GPIFSGLDATLX = 0x00be
00BF 607 _GPIFSGLDATLNOX = 0x00bf
00C0 608 _SCON1 = 0x00c0
00C1 609 _SBUF1 = 0x00c1
00C8 610 _T2CON = 0x00c8
00CA 611 _RCAP2L = 0x00ca
00CB 612 _RCAP2H = 0x00cb
00CC 613 _TL2 = 0x00cc
00CD 614 _TH2 = 0x00cd
00D0 615 _PSW = 0x00d0
00D8 616 _EICON = 0x00d8
00E0 617 _ACC = 0x00e0
00E8 618 _EIE = 0x00e8
00F0 619 _BREG = 0x00f0
00F8 620 _EIP = 0x00f8
621 ;--------------------------------------------------------
622 ; special function bits
623 ;--------------------------------------------------------
624 .area RSEG (DATA)
0080 625 _IOA0 = 0x0080
0081 626 _IOA1 = 0x0081
0082 627 _IOA2 = 0x0082
0083 628 _IOA3 = 0x0083
0084 629 _IOA4 = 0x0084
0085 630 _IOA5 = 0x0085
0086 631 _IOA6 = 0x0086
0087 632 _IOA7 = 0x0087
0088 633 _IT0 = 0x0088
0089 634 _IE0 = 0x0089
008A 635 _IT1 = 0x008a
008B 636 _IE1 = 0x008b
008C 637 _TR0 = 0x008c
008D 638 _TF0 = 0x008d
008E 639 _TR1 = 0x008e
008F 640 _TF1 = 0x008f
0090 641 _IOB0 = 0x0090
0091 642 _IOB1 = 0x0091
0092 643 _IOB2 = 0x0092
0093 644 _IOB3 = 0x0093
0094 645 _IOB4 = 0x0094
0095 646 _IOB5 = 0x0095
0096 647 _IOB6 = 0x0096
0097 648 _IOB7 = 0x0097
0098 649 _RI_0 = 0x0098
0099 650 _TI_0 = 0x0099
009A 651 _RB8_0 = 0x009a
009B 652 _TB8_0 = 0x009b
009C 653 _REN_0 = 0x009c
009D 654 _SM2_0 = 0x009d
009E 655 _SM1_0 = 0x009e
009F 656 _SM0_0 = 0x009f
00A0 657 _IOC0 = 0x00a0
00A1 658 _IOC1 = 0x00a1
00A2 659 _IOC2 = 0x00a2
00A3 660 _IOC3 = 0x00a3
00A4 661 _IOC4 = 0x00a4
00A5 662 _IOC5 = 0x00a5
00A6 663 _IOC6 = 0x00a6
00A7 664 _IOC7 = 0x00a7
00A8 665 _EX0 = 0x00a8
00A9 666 _ET0 = 0x00a9
00AA 667 _EX1 = 0x00aa
00AB 668 _ET1 = 0x00ab
00AC 669 _ES0 = 0x00ac
00AD 670 _ET2 = 0x00ad
00AE 671 _ES1 = 0x00ae
00AF 672 _EA = 0x00af
00B0 673 _IOD0 = 0x00b0
00B1 674 _IOD1 = 0x00b1
00B2 675 _IOD2 = 0x00b2
00B3 676 _IOD3 = 0x00b3
00B4 677 _IOD4 = 0x00b4
00B5 678 _IOD5 = 0x00b5
00B6 679 _IOD6 = 0x00b6
00B7 680 _IOD7 = 0x00b7
00B8 681 _PX0 = 0x00b8
00B9 682 _PT0 = 0x00b9
00BA 683 _PX1 = 0x00ba
00BB 684 _PT1 = 0x00bb
00BC 685 _PS0 = 0x00bc
00BD 686 _PT2 = 0x00bd
00BE 687 _PS1 = 0x00be
00C0 688 _RI_1 = 0x00c0
00C1 689 _TI_1 = 0x00c1
00C2 690 _RB8_1 = 0x00c2
00C3 691 _TB8_1 = 0x00c3
00C4 692 _REN_1 = 0x00c4
00C5 693 _SM2_1 = 0x00c5
00C6 694 _SM1_1 = 0x00c6
00C7 695 _SM0_1 = 0x00c7
00C8 696 _CPRL2 = 0x00c8
00C9 697 _CT2 = 0x00c9
00CA 698 _TR2 = 0x00ca
00CB 699 _EXEN2 = 0x00cb
00CC 700 _TCLK = 0x00cc
00CD 701 _RCLK = 0x00cd
00CE 702 _EXF2 = 0x00ce
00CF 703 _TF2 = 0x00cf
00D0 704 _PF = 0x00d0
00D1 705 _F1 = 0x00d1
00D2 706 _OV = 0x00d2
00D3 707 _RS0 = 0x00d3
00D4 708 _RS1 = 0x00d4
00D5 709 _F0 = 0x00d5
00D6 710 _AC = 0x00d6
00D7 711 _CY = 0x00d7
00DB 712 _INT6 = 0x00db
00DC 713 _RESI = 0x00dc
00DD 714 _ERESI = 0x00dd
00DF 715 _SMOD1 = 0x00df
00E0 716 _ACC0 = 0x00e0
00E1 717 _ACC1 = 0x00e1
00E2 718 _ACC2 = 0x00e2
00E3 719 _ACC3 = 0x00e3
00E4 720 _ACC4 = 0x00e4
00E5 721 _ACC5 = 0x00e5
00E6 722 _ACC6 = 0x00e6
00E7 723 _ACC7 = 0x00e7
00E8 724 _EUSB = 0x00e8
00E9 725 _EI2C = 0x00e9
00EA 726 _EIEX4 = 0x00ea
00EB 727 _EIEX5 = 0x00eb
00EC 728 _EIEX6 = 0x00ec
00F0 729 _BREG0 = 0x00f0
00F1 730 _BREG1 = 0x00f1
00F2 731 _BREG2 = 0x00f2
00F3 732 _BREG3 = 0x00f3
00F4 733 _BREG4 = 0x00f4
00F5 734 _BREG5 = 0x00f5
00F6 735 _BREG6 = 0x00f6
00F7 736 _BREG7 = 0x00f7
00F8 737 _PUSB = 0x00f8
00F9 738 _PI2C = 0x00f9
00FA 739 _EIPX4 = 0x00fa
00FB 740 _EIPX5 = 0x00fb
00FC 741 _EIPX6 = 0x00fc
742 ;--------------------------------------------------------
743 ; overlayable register banks
744 ;--------------------------------------------------------
745 .area REG_BANK_0 (REL,OVR,DATA)
0000 746 .ds 8
747 ;--------------------------------------------------------
748 ; overlayable bit register bank
749 ;--------------------------------------------------------
750 .area BIT_BANK (REL,OVR,DATA)
0000 751 bits:
0000 752 .ds 1
8000 753 b0 = bits[0]
8100 754 b1 = bits[1]
8200 755 b2 = bits[2]
8300 756 b3 = bits[3]
8400 757 b4 = bits[4]
8500 758 b5 = bits[5]
8600 759 b6 = bits[6]
8700 760 b7 = bits[7]
761 ;--------------------------------------------------------
762 ; internal ram data
763 ;--------------------------------------------------------
764 .area DSEG (DATA)
0000 765 _eeprom_select_PARM_2:
0000 766 .ds 1
0001 767 _eeprom_select_PARM_3:
0001 768 .ds 1
0002 769 _eeprom_read_PARM_2:
0002 770 .ds 2
0004 771 _eeprom_read_PARM_3:
0004 772 .ds 1
0005 773 _eeprom_write_PARM_2:
0005 774 .ds 2
0007 775 _eeprom_write_PARM_3:
0007 776 .ds 1
0008 777 _mac_eeprom_read_PARM_2:
0008 778 .ds 1
0009 779 _mac_eeprom_read_PARM_3:
0009 780 .ds 1
000A 781 _mac_eeprom_write_PARM_2:
000A 782 .ds 1
000B 783 _mac_eeprom_write_PARM_3:
000B 784 .ds 1
000C 785 _flash_write_PARM_2:
000C 786 .ds 1
000D 787 _fpga_send_ep0_oOEC_1_1:
000D 788 .ds 1
789 ;--------------------------------------------------------
790 ; overlayable items in internal ram
791 ;--------------------------------------------------------
792 .area OSEG (OVR,DATA)
793 .area OSEG (OVR,DATA)
794 .area OSEG (OVR,DATA)
795 .area OSEG (OVR,DATA)
796 .area OSEG (OVR,DATA)
797 .area OSEG (OVR,DATA)
798 .area OSEG (OVR,DATA)
799 .area OSEG (OVR,DATA)
0000 800 _flash_read_PARM_2::
0000 801 .ds 1
802 .area OSEG (OVR,DATA)
803 .area OSEG (OVR,DATA)
0000 804 _spi_write_PARM_2::
0000 805 .ds 1
806 .area OSEG (OVR,DATA)
0000 807 _sendStringDescriptor_PARM_2::
0000 808 .ds 1
0001 809 _sendStringDescriptor_PARM_3::
0001 810 .ds 1
811 ;--------------------------------------------------------
812 ; Stack segment in internal ram
813 ;--------------------------------------------------------
814 .area SSEG (DATA)
0000 815 __start__stack:
0000 816 .ds 1
817
818 ;--------------------------------------------------------
819 ; indirectly addressable internal ram data
820 ;--------------------------------------------------------
821 .area ISEG (DATA)
822 ;--------------------------------------------------------
823 ; absolute internal ram data
824 ;--------------------------------------------------------
825 .area IABS (ABS,DATA)
826 .area IABS (ABS,DATA)
827 ;--------------------------------------------------------
828 ; bit data
829 ;--------------------------------------------------------
830 .area BSEG (BIT)
831 ;--------------------------------------------------------
832 ; paged external ram data
833 ;--------------------------------------------------------
834 .area PSEG (PAG,XDATA)
835 ;--------------------------------------------------------
836 ; external ram data
837 ;--------------------------------------------------------
838 .area XSEG (XDATA)
E400 839 _GPIF_WAVE_DATA = 0xe400
E400 840 _GPIF_WAVE0_DATA = 0xe400
E420 841 _GPIF_WAVE1_DATA = 0xe420
E440 842 _GPIF_WAVE2_DATA = 0xe440
E460 843 _GPIF_WAVE3_DATA = 0xe460
E50D 844 _GPCR2 = 0xe50d
E600 845 _CPUCS = 0xe600
E601 846 _IFCONFIG = 0xe601
E602 847 _PINFLAGSAB = 0xe602
E603 848 _PINFLAGSCD = 0xe603
E604 849 _FIFORESET = 0xe604
E605 850 _BREAKPT = 0xe605
E606 851 _BPADDRH = 0xe606
E607 852 _BPADDRL = 0xe607
E608 853 _UART230 = 0xe608
E609 854 _FIFOPINPOLAR = 0xe609
E60A 855 _REVID = 0xe60a
E60B 856 _REVCTL = 0xe60b
E60C 857 _GPIFHOLDAMOUNT = 0xe60c
E610 858 _EP1OUTCFG = 0xe610
E611 859 _EP1INCFG = 0xe611
E612 860 _EP2CFG = 0xe612
E613 861 _EP4CFG = 0xe613
E614 862 _EP6CFG = 0xe614
E615 863 _EP8CFG = 0xe615
E618 864 _EP2FIFOCFG = 0xe618
E619 865 _EP4FIFOCFG = 0xe619
E61A 866 _EP6FIFOCFG = 0xe61a
E61B 867 _EP8FIFOCFG = 0xe61b
E620 868 _EP2AUTOINLENH = 0xe620
E621 869 _EP2AUTOINLENL = 0xe621
E622 870 _EP4AUTOINLENH = 0xe622
E623 871 _EP4AUTOINLENL = 0xe623
E624 872 _EP6AUTOINLENH = 0xe624
E625 873 _EP6AUTOINLENL = 0xe625
E626 874 _EP8AUTOINLENH = 0xe626
E627 875 _EP8AUTOINLENL = 0xe627
E628 876 _ECCCFG = 0xe628
E629 877 _ECCRESET = 0xe629
E62A 878 _ECC1B0 = 0xe62a
E62B 879 _ECC1B1 = 0xe62b
E62C 880 _ECC1B2 = 0xe62c
E62D 881 _ECC2B0 = 0xe62d
E62E 882 _ECC2B1 = 0xe62e
E62F 883 _ECC2B2 = 0xe62f
E630 884 _EP2FIFOPFH = 0xe630
E631 885 _EP2FIFOPFL = 0xe631
E632 886 _EP4FIFOPFH = 0xe632
E633 887 _EP4FIFOPFL = 0xe633
E634 888 _EP6FIFOPFH = 0xe634
E635 889 _EP6FIFOPFL = 0xe635
E636 890 _EP8FIFOPFH = 0xe636
E637 891 _EP8FIFOPFL = 0xe637
E640 892 _EP2ISOINPKTS = 0xe640
E641 893 _EP4ISOINPKTS = 0xe641
E642 894 _EP6ISOINPKTS = 0xe642
E643 895 _EP8ISOINPKTS = 0xe643
E648 896 _INPKTEND = 0xe648
E649 897 _OUTPKTEND = 0xe649
E650 898 _EP2FIFOIE = 0xe650
E651 899 _EP2FIFOIRQ = 0xe651
E652 900 _EP4FIFOIE = 0xe652
E653 901 _EP4FIFOIRQ = 0xe653
E654 902 _EP6FIFOIE = 0xe654
E655 903 _EP6FIFOIRQ = 0xe655
E656 904 _EP8FIFOIE = 0xe656
E657 905 _EP8FIFOIRQ = 0xe657
E658 906 _IBNIE = 0xe658
E659 907 _IBNIRQ = 0xe659
E65A 908 _NAKIE = 0xe65a
E65B 909 _NAKIRQ = 0xe65b
E65C 910 _USBIE = 0xe65c
E65D 911 _USBIRQ = 0xe65d
E65E 912 _EPIE = 0xe65e
E65F 913 _EPIRQ = 0xe65f
E660 914 _GPIFIE = 0xe660
E661 915 _GPIFIRQ = 0xe661
E662 916 _USBERRIE = 0xe662
E663 917 _USBERRIRQ = 0xe663
E664 918 _ERRCNTLIM = 0xe664
E665 919 _CLRERRCNT = 0xe665
E666 920 _INT2IVEC = 0xe666
E667 921 _INT4IVEC = 0xe667
E668 922 _INTSETUP = 0xe668
E670 923 _PORTACFG = 0xe670
E671 924 _PORTCCFG = 0xe671
E672 925 _PORTECFG = 0xe672
E678 926 _I2CS = 0xe678
E679 927 _I2DAT = 0xe679
E67A 928 _I2CTL = 0xe67a
E67B 929 _XAUTODAT1 = 0xe67b
E67B 930 _EXTAUTODAT1 = 0xe67b
E67C 931 _XAUTODAT2 = 0xe67c
E67C 932 _EXTAUTODAT2 = 0xe67c
E67D 933 _UDMACRCH = 0xe67d
E67E 934 _UDMACRCL = 0xe67e
E67F 935 _UDMACRCQUALIFIER = 0xe67f
E680 936 _USBCS = 0xe680
E681 937 _SUSPEND = 0xe681
E682 938 _WAKEUPCS = 0xe682
E683 939 _TOGCTL = 0xe683
E684 940 _USBFRAMEH = 0xe684
E685 941 _USBFRAMEL = 0xe685
E686 942 _MICROFRAME = 0xe686
E687 943 _FNADDR = 0xe687
E68A 944 _EP0BCH = 0xe68a
E68B 945 _EP0BCL = 0xe68b
E68D 946 _EP1OUTBC = 0xe68d
E68F 947 _EP1INBC = 0xe68f
E690 948 _EP2BCH = 0xe690
E691 949 _EP2BCL = 0xe691
E694 950 _EP4BCH = 0xe694
E695 951 _EP4BCL = 0xe695
E698 952 _EP6BCH = 0xe698
E699 953 _EP6BCL = 0xe699
E69C 954 _EP8BCH = 0xe69c
E69D 955 _EP8BCL = 0xe69d
E6A0 956 _EP0CS = 0xe6a0
E6A1 957 _EP1OUTCS = 0xe6a1
E6A2 958 _EP1INCS = 0xe6a2
E6A3 959 _EPXCS = 0xe6a3
E6A3 960 _EP2CS = 0xe6a3
E6A4 961 _EP4CS = 0xe6a4
E6A5 962 _EP6CS = 0xe6a5
E6A6 963 _EP8CS = 0xe6a6
E6A7 964 _EP2FIFOFLGS = 0xe6a7
E6A8 965 _EP4FIFOFLGS = 0xe6a8
E6A9 966 _EP6FIFOFLGS = 0xe6a9
E6AA 967 _EP8FIFOFLGS = 0xe6aa
E6AB 968 _EP2FIFOBCH = 0xe6ab
E6AC 969 _EP2FIFOBCL = 0xe6ac
E6AD 970 _EP4FIFOBCH = 0xe6ad
E6AE 971 _EP4FIFOBCL = 0xe6ae
E6AF 972 _EP6FIFOBCH = 0xe6af
E6B0 973 _EP6FIFOBCL = 0xe6b0
E6B1 974 _EP8FIFOBCH = 0xe6b1
E6B2 975 _EP8FIFOBCL = 0xe6b2
E6B3 976 _SUDPTRH = 0xe6b3
E6B4 977 _SUDPTRL = 0xe6b4
E6B5 978 _SUDPTRCTL = 0xe6b5
E6B8 979 _SETUPDAT = 0xe6b8
E6B8 980 _bmRequestType = 0xe6b8
E6B9 981 _bRequest = 0xe6b9
E6BA 982 _wValueL = 0xe6ba
E6BB 983 _wValueH = 0xe6bb
E6BC 984 _wIndexL = 0xe6bc
E6BD 985 _wIndexH = 0xe6bd
E6BE 986 _wLengthL = 0xe6be
E6BF 987 _wLengthH = 0xe6bf
E6C0 988 _GPIFWFSELECT = 0xe6c0
E6C1 989 _GPIFIDLECS = 0xe6c1
E6C2 990 _GPIFIDLECTL = 0xe6c2
E6C3 991 _GPIFCTLCFG = 0xe6c3
E6C4 992 _GPIFADRH = 0xe6c4
E6C5 993 _GPIFADRL = 0xe6c5
E6C6 994 _FLOWSTATE = 0xe6c6
E6C7 995 _FLOWLOGIC = 0xe6c7
E6C8 996 _FLOWEQ0CTL = 0xe6c8
E6C9 997 _FLOWEQ1CTL = 0xe6c9
E6CA 998 _FLOWHOLDOFF = 0xe6ca
E6CB 999 _FLOWSTB = 0xe6cb
E6CC 1000 _FLOWSTBEDGE = 0xe6cc
E6CD 1001 _FLOWSTBHPERIOD = 0xe6cd
E6CE 1002 _GPIFTCB3 = 0xe6ce
E6CF 1003 _GPIFTCB2 = 0xe6cf
E6D0 1004 _GPIFTCB1 = 0xe6d0
E6D1 1005 _GPIFTCB0 = 0xe6d1
E6D2 1006 _EP2GPIFFLGSEL = 0xe6d2
E6D3 1007 _EP2GPIFPFSTOP = 0xe6d3
E6D4 1008 _EP2GPIFTRIG = 0xe6d4
E6DA 1009 _EP4GPIFFLGSEL = 0xe6da
E6DB 1010 _EP4GPIFPFSTOP = 0xe6db
E6DC 1011 _EP4GPIFTRIG = 0xe6dc
E6E2 1012 _EP6GPIFFLGSEL = 0xe6e2
E6E3 1013 _EP6GPIFPFSTOP = 0xe6e3
E6E4 1014 _EP6GPIFTRIG = 0xe6e4
E6EA 1015 _EP8GPIFFLGSEL = 0xe6ea
E6EB 1016 _EP8GPIFPFSTOP = 0xe6eb
E6EC 1017 _EP8GPIFTRIG = 0xe6ec
E6F0 1018 _XGPIFSGLDATH = 0xe6f0
E6F1 1019 _XGPIFSGLDATLX = 0xe6f1
E6F2 1020 _XGPIFSGLDATLNOX = 0xe6f2
E6F3 1021 _GPIFREADYCFG = 0xe6f3
E6F4 1022 _GPIFREADYSTAT = 0xe6f4
E6F5 1023 _GPIFABORT = 0xe6f5
E740 1024 _EP0BUF = 0xe740
E780 1025 _EP1OUTBUF = 0xe780
E7C0 1026 _EP1INBUF = 0xe7c0
F000 1027 _EP2FIFOBUF = 0xf000
F400 1028 _EP4FIFOBUF = 0xf400
F800 1029 _EP6FIFOBUF = 0xf800
FC00 1030 _EP8FIFOBUF = 0xfc00
0003 1031 _INT0VEC_IE0 = 0x0003
000B 1032 _INT1VEC_T0 = 0x000b
0013 1033 _INT2VEC_IE1 = 0x0013
001B 1034 _INT3VEC_T1 = 0x001b
0023 1035 _INT4VEC_USART0 = 0x0023
002B 1036 _INT5VEC_T2 = 0x002b
0033 1037 _INT6VEC_RESUME = 0x0033
003B 1038 _INT7VEC_USART1 = 0x003b
0043 1039 _INT8VEC_USB = 0x0043
004B 1040 _INT9VEC_I2C = 0x004b
0053 1041 _INT10VEC_GPIF = 0x0053
005B 1042 _INT11VEC_IE5 = 0x005b
0063 1043 _INT12VEC_IE6 = 0x0063
0100 1044 _INTVEC_SUDAV = 0x0100
0104 1045 _INTVEC_SOF = 0x0104
0108 1046 _INTVEC_SUTOK = 0x0108
010C 1047 _INTVEC_SUSPEND = 0x010c
0110 1048 _INTVEC_USBRESET = 0x0110
0114 1049 _INTVEC_HISPEED = 0x0114
0118 1050 _INTVEC_EP0ACK = 0x0118
0120 1051 _INTVEC_EP0IN = 0x0120
0124 1052 _INTVEC_EP0OUT = 0x0124
0128 1053 _INTVEC_EP1IN = 0x0128
012C 1054 _INTVEC_EP1OUT = 0x012c
0130 1055 _INTVEC_EP2 = 0x0130
0134 1056 _INTVEC_EP4 = 0x0134
0138 1057 _INTVEC_EP6 = 0x0138
013C 1058 _INTVEC_EP8 = 0x013c
0140 1059 _INTVEC_IBN = 0x0140
0148 1060 _INTVEC_EP0PING = 0x0148
014C 1061 _INTVEC_EP1PING = 0x014c
0150 1062 _INTVEC_EP2PING = 0x0150
0154 1063 _INTVEC_EP4PING = 0x0154
0158 1064 _INTVEC_EP6PING = 0x0158
015C 1065 _INTVEC_EP8PING = 0x015c
0160 1066 _INTVEC_ERRLIMIT = 0x0160
0170 1067 _INTVEC_EP2ISOERR = 0x0170
0174 1068 _INTVEC_EP4ISOERR = 0x0174
0178 1069 _INTVEC_EP6ISOERR = 0x0178
017C 1070 _INTVEC_EP8ISOERR = 0x017c
0180 1071 _INTVEC_EP2PF = 0x0180
0184 1072 _INTVEC_EP4PF = 0x0184
0188 1073 _INTVEC_EP6PF = 0x0188
018C 1074 _INTVEC_EP8PF = 0x018c
0190 1075 _INTVEC_EP2EF = 0x0190
0194 1076 _INTVEC_EP4EF = 0x0194
0198 1077 _INTVEC_EP6EF = 0x0198
019C 1078 _INTVEC_EP8EF = 0x019c
01A0 1079 _INTVEC_EP2FF = 0x01a0
01A8 1080 _INTVEC_EP6FF = 0x01a8
01AC 1081 _INTVEC_EP8FF = 0x01ac
01B0 1082 _INTVEC_GPIFDONE = 0x01b0
01B4 1083 _INTVEC_GPIFWF = 0x01b4
0000 1084 _eeprom_addr::
0000 1085 .ds 2
0002 1086 _eeprom_write_bytes::
0002 1087 .ds 2
0004 1088 _eeprom_write_checksum::
0004 1089 .ds 1
0005 1090 _mac_eeprom_addr::
0005 1091 .ds 1
0006 1092 _config_data_valid::
0006 1093 .ds 1
0007 1094 _flash_enabled::
0007 1095 .ds 1
0008 1096 _flash_sector_size::
0008 1097 .ds 2
000A 1098 _flash_sectors::
000A 1099 .ds 4
000E 1100 _flash_ec::
000E 1101 .ds 1
000F 1102 _spi_vendor::
000F 1103 .ds 1
0010 1104 _spi_device::
0010 1105 .ds 1
0011 1106 _spi_memtype::
0011 1107 .ds 1
0012 1108 _spi_erase_cmd::
0012 1109 .ds 1
0013 1110 _spi_last_cmd::
0013 1111 .ds 1
0014 1112 _spi_buffer::
0014 1113 .ds 4
0018 1114 _spi_write_addr_hi::
0018 1115 .ds 2
001A 1116 _spi_write_addr_lo::
001A 1117 .ds 1
001B 1118 _spi_need_pp::
001B 1119 .ds 1
001C 1120 _spi_write_sector::
001C 1121 .ds 2
001E 1122 _ep0_read_mode::
001E 1123 .ds 1
001F 1124 _ep0_write_mode::
001F 1125 .ds 1
0020 1126 _fpga_checksum::
0020 1127 .ds 1
0021 1128 _fpga_bytes::
0021 1129 .ds 4
0025 1130 _fpga_init_b::
0025 1131 .ds 1
0026 1132 _fpga_flash_result::
0026 1133 .ds 1
0027 1134 _fpga_conf_initialized::
0027 1135 .ds 1
0028 1136 _OOEA::
0028 1137 .ds 1
0029 1138 _fpga_first_free_sector_buf_1_1:
0029 1139 .ds 4
002D 1140 _fpga_configure_from_flash_init_buf_1_1:
002D 1141 .ds 4
006C 1142 _ZTEX_DESCRIPTOR = 0x006c
006D 1143 _ZTEX_DESCRIPTOR_VERSION = 0x006d
006E 1144 _ZTEXID = 0x006e
0072 1145 _PRODUCT_ID = 0x0072
0076 1146 _FW_VERSION = 0x0076
0077 1147 _INTERFACE_VERSION = 0x0077
0078 1148 _INTERFACE_CAPABILITIES = 0x0078
007E 1149 _MODULE_RESERVED = 0x007e
008A 1150 _SN_STRING = 0x008a
0031 1151 _mac_eeprom_init_buf_1_1:
0031 1152 .ds 5
1153 ;--------------------------------------------------------
1154 ; absolute external ram data
1155 ;--------------------------------------------------------
1156 .area XABS (ABS,XDATA)
1157 ;--------------------------------------------------------
1158 ; external initialized ram data
1159 ;--------------------------------------------------------
1160 .area XISEG (XDATA)
0000 1161 _ep0_payload_remaining::
0000 1162 .ds 2
0002 1163 _ep0_payload_transfer::
0002 1164 .ds 1
0003 1165 _ep0_prev_setup_request::
0003 1166 .ds 1
0004 1167 _ep0_vendor_cmd_setup::
0004 1168 .ds 1
0005 1169 _ISOFRAME_COUNTER::
0005 1170 .ds 8
1171 .area HOME (CODE)
1172 .area GSINIT0 (CODE)
1173 .area GSINIT1 (CODE)
1174 .area GSINIT2 (CODE)
1175 .area GSINIT3 (CODE)
1176 .area GSINIT4 (CODE)
1177 .area GSINIT5 (CODE)
1178 .area GSINIT (CODE)
1179 .area GSFINAL (CODE)
1180 .area CSEG (CODE)
1181 ;--------------------------------------------------------
1182 ; interrupt vector
1183 ;--------------------------------------------------------
1184 .area HOME (CODE)
0000 1185 __interrupt_vect:
0000 02s00r00 1186 ljmp __sdcc_gsinit_startup
1187 ;--------------------------------------------------------
1188 ; global & static initialisations
1189 ;--------------------------------------------------------
1190 .area HOME (CODE)
1191 .area GSINIT (CODE)
1192 .area GSFINAL (CODE)
1193 .area GSINIT (CODE)
1194 .globl __sdcc_gsinit_startup
1195 .globl __sdcc_program_startup
1196 .globl __start__stack
1197 .globl __mcs51_genXINIT
1198 .globl __mcs51_genXRAMCLEAR
1199 .globl __mcs51_genRAMCLEAR
1200 .area GSFINAL (CODE)
0000 02s00r03 1201 ljmp __sdcc_program_startup
1202 ;--------------------------------------------------------
1203 ; Home
1204 ;--------------------------------------------------------
1205 .area HOME (CODE)
1206 .area HOME (CODE)
0003 1207 __sdcc_program_startup:
0003 12s1BrD5 1208 lcall _main
1209 ; return from main will lock up
0006 80 FE 1210 sjmp .
1211 ;--------------------------------------------------------
1212 ; code
1213 ;--------------------------------------------------------
1214 .area CSEG (CODE)
1215 ;------------------------------------------------------------
1216 ;Allocation info for local variables in function 'abscode_intvec'
1217 ;------------------------------------------------------------
1218 ;------------------------------------------------------------
1219 ; ../../include/ezintavecs.h:92: void abscode_intvec()// _naked
1220 ; -----------------------------------------
1221 ; function abscode_intvec
1222 ; -----------------------------------------
0000 1223 _abscode_intvec:
0002 1224 ar2 = 0x02
0003 1225 ar3 = 0x03
0004 1226 ar4 = 0x04
0005 1227 ar5 = 0x05
0006 1228 ar6 = 0x06
0007 1229 ar7 = 0x07
0000 1230 ar0 = 0x00
0001 1231 ar1 = 0x01
1232 ; ../../include/ezintavecs.h:317: ERROR: no line number 317 in file ../../include/ezintavecs.h
1233
1234 .area ABSCODE (ABS,CODE)
0000 1235 .org 0x0000
0000 1236 ENTRY:
0000 02 02 00 1237 ljmp #0x0200
1238 ; # 94 "../../include/ezintavecs.h"
0003 1239 .org 0x0003
1240 ; # 34 "../../include/ezintavecs.h"
0003 32 1241 reti
1242 ; # 94 "../../include/ezintavecs.h"
000B 1243 .org 0x000b
1244 ; # 35 "../../include/ezintavecs.h"
000B 32 1245 reti
1246 ; # 94 "../../include/ezintavecs.h"
0013 1247 .org 0x0013
1248 ; # 36 "../../include/ezintavecs.h"
0013 32 1249 reti
1250 ; # 94 "../../include/ezintavecs.h"
001B 1251 .org 0x001b
1252 ; # 37 "../../include/ezintavecs.h"
001B 32 1253 reti
1254 ; # 94 "../../include/ezintavecs.h"
0023 1255 .org 0x0023
1256 ; # 38 "../../include/ezintavecs.h"
0023 32 1257 reti
1258 ; # 94 "../../include/ezintavecs.h"
002B 1259 .org 0x002b
1260 ; # 39 "../../include/ezintavecs.h"
002B 32 1261 reti
1262 ; # 94 "../../include/ezintavecs.h"
0033 1263 .org 0x0033
1264 ; # 40 "../../include/ezintavecs.h"
0033 32 1265 reti
1266 ; # 94 "../../include/ezintavecs.h"
003B 1267 .org 0x003b
1268 ; # 41 "../../include/ezintavecs.h"
003B 32 1269 reti
1270 ; # 94 "../../include/ezintavecs.h"
0043 1271 .org 0x0043
1272 ; # 42 "../../include/ezintavecs.h"
0043 32 1273 reti
1274 ; # 94 "../../include/ezintavecs.h"
004B 1275 .org 0x004b
1276 ; # 43 "../../include/ezintavecs.h"
004B 32 1277 reti
1278 ; # 94 "../../include/ezintavecs.h"
0053 1279 .org 0x0053
1280 ; # 44 "../../include/ezintavecs.h"
0053 32 1281 reti
1282 ; # 94 "../../include/ezintavecs.h"
005B 1283 .org 0x005b
1284 ; # 45 "../../include/ezintavecs.h"
005B 32 1285 reti
1286 ; # 94 "../../include/ezintavecs.h"
0063 1287 .org 0x0063
1288 ; # 46 "../../include/ezintavecs.h"
0063 32 1289 reti
1290 ; # 94 "../../include/ezintavecs.h"
0100 1291 .org 0x0100
1292 ; # 47 "../../include/ezintavecs.h"
0100 32 1293 reti
1294 ; # 94 "../../include/ezintavecs.h"
0104 1295 .org 0x0104
1296 ; # 48 "../../include/ezintavecs.h"
0104 32 1297 reti
1298 ; # 94 "../../include/ezintavecs.h"
0108 1299 .org 0x0108
1300 ; # 49 "../../include/ezintavecs.h"
0108 32 1301 reti
1302 ; # 94 "../../include/ezintavecs.h"
010C 1303 .org 0x010C
1304 ; # 50 "../../include/ezintavecs.h"
010C 32 1305 reti
1306 ; # 94 "../../include/ezintavecs.h"
0110 1307 .org 0x0110
1308 ; # 51 "../../include/ezintavecs.h"
0110 32 1309 reti
1310 ; # 94 "../../include/ezintavecs.h"
0114 1311 .org 0x0114
1312 ; # 52 "../../include/ezintavecs.h"
0114 32 1313 reti
1314 ; # 94 "../../include/ezintavecs.h"
0118 1315 .org 0x0118
1316 ; # 53 "../../include/ezintavecs.h"
0118 32 1317 reti
1318 ; # 94 "../../include/ezintavecs.h"
0120 1319 .org 0x0120
1320 ; # 54 "../../include/ezintavecs.h"
0120 32 1321 reti
1322 ; # 94 "../../include/ezintavecs.h"
0124 1323 .org 0x0124
1324 ; # 55 "../../include/ezintavecs.h"
0124 32 1325 reti
1326 ; # 94 "../../include/ezintavecs.h"
0128 1327 .org 0x0128
1328 ; # 56 "../../include/ezintavecs.h"
0128 32 1329 reti
1330 ; # 94 "../../include/ezintavecs.h"
012C 1331 .org 0x012C
1332 ; # 57 "../../include/ezintavecs.h"
012C 32 1333 reti
1334 ; # 94 "../../include/ezintavecs.h"
0130 1335 .org 0x0130
1336 ; # 58 "../../include/ezintavecs.h"
0130 32 1337 reti
1338 ; # 94 "../../include/ezintavecs.h"
0134 1339 .org 0x0134
1340 ; # 59 "../../include/ezintavecs.h"
0134 32 1341 reti
1342 ; # 94 "../../include/ezintavecs.h"
0138 1343 .org 0x0138
1344 ; # 60 "../../include/ezintavecs.h"
0138 32 1345 reti
1346 ; # 94 "../../include/ezintavecs.h"
013C 1347 .org 0x013C
1348 ; # 61 "../../include/ezintavecs.h"
013C 32 1349 reti
1350 ; # 94 "../../include/ezintavecs.h"
0140 1351 .org 0x0140
1352 ; # 62 "../../include/ezintavecs.h"
0140 32 1353 reti
1354 ; # 94 "../../include/ezintavecs.h"
0148 1355 .org 0x0148
1356 ; # 63 "../../include/ezintavecs.h"
0148 32 1357 reti
1358 ; # 94 "../../include/ezintavecs.h"
014C 1359 .org 0x014C
1360 ; # 64 "../../include/ezintavecs.h"
014C 32 1361 reti
1362 ; # 94 "../../include/ezintavecs.h"
0150 1363 .org 0x0150
1364 ; # 65 "../../include/ezintavecs.h"
0150 32 1365 reti
1366 ; # 94 "../../include/ezintavecs.h"
0154 1367 .org 0x0154
1368 ; # 66 "../../include/ezintavecs.h"
0154 32 1369 reti
1370 ; # 94 "../../include/ezintavecs.h"
0158 1371 .org 0x0158
1372 ; # 67 "../../include/ezintavecs.h"
0158 32 1373 reti
1374 ; # 94 "../../include/ezintavecs.h"
015C 1375 .org 0x015C
1376 ; # 68 "../../include/ezintavecs.h"
015C 32 1377 reti
1378 ; # 94 "../../include/ezintavecs.h"
0160 1379 .org 0x0160
1380 ; # 69 "../../include/ezintavecs.h"
0160 32 1381 reti
1382 ; # 94 "../../include/ezintavecs.h"
0170 1383 .org 0x0170
1384 ; # 70 "../../include/ezintavecs.h"
0170 32 1385 reti
1386 ; # 94 "../../include/ezintavecs.h"
0174 1387 .org 0x0174
1388 ; # 71 "../../include/ezintavecs.h"
0174 32 1389 reti
1390 ; # 94 "../../include/ezintavecs.h"
0178 1391 .org 0x0178
1392 ; # 72 "../../include/ezintavecs.h"
0178 32 1393 reti
1394 ; # 94 "../../include/ezintavecs.h"
017C 1395 .org 0x017C
1396 ; # 73 "../../include/ezintavecs.h"
017C 32 1397 reti
1398 ; # 94 "../../include/ezintavecs.h"
0180 1399 .org 0x0180
1400 ; # 74 "../../include/ezintavecs.h"
0180 32 1401 reti
1402 ; # 94 "../../include/ezintavecs.h"
0184 1403 .org 0x0184
1404 ; # 75 "../../include/ezintavecs.h"
0184 32 1405 reti
1406 ; # 94 "../../include/ezintavecs.h"
0188 1407 .org 0x0188
1408 ; # 76 "../../include/ezintavecs.h"
0188 32 1409 reti
1410 ; # 94 "../../include/ezintavecs.h"
018C 1411 .org 0x018C
1412 ; # 77 "../../include/ezintavecs.h"
018C 32 1413 reti
1414 ; # 94 "../../include/ezintavecs.h"
0190 1415 .org 0x0190
1416 ; # 78 "../../include/ezintavecs.h"
0190 32 1417 reti
1418 ; # 94 "../../include/ezintavecs.h"
0194 1419 .org 0x0194
1420 ; # 79 "../../include/ezintavecs.h"
0194 32 1421 reti
1422 ; # 94 "../../include/ezintavecs.h"
0198 1423 .org 0x0198
1424 ; # 80 "../../include/ezintavecs.h"
0198 32 1425 reti
1426 ; # 94 "../../include/ezintavecs.h"
019C 1427 .org 0x019C
1428 ; # 81 "../../include/ezintavecs.h"
019C 32 1429 reti
1430 ; # 94 "../../include/ezintavecs.h"
01A0 1431 .org 0x01A0
1432 ; # 82 "../../include/ezintavecs.h"
01A0 32 1433 reti
1434 ; # 94 "../../include/ezintavecs.h"
01A8 1435 .org 0x01A8
1436 ; # 83 "../../include/ezintavecs.h"
01A8 32 1437 reti
1438 ; # 94 "../../include/ezintavecs.h"
01AC 1439 .org 0x01AC
1440 ; # 84 "../../include/ezintavecs.h"
01AC 32 1441 reti
1442 ; # 94 "../../include/ezintavecs.h"
01B0 1443 .org 0x01B0
1444 ; # 85 "../../include/ezintavecs.h"
01B0 32 1445 reti
1446 ; # 94 "../../include/ezintavecs.h"
01B4 1447 .org 0x01B4
1448 ; # 101 "../../include/ezintavecs.h"
01B4 32 1449 reti
01B8 1450 .org 0x01b8
01B8 1451 INTVEC_DUMMY:
01B8 32 1452 reti
1453 .area CSEG (CODE)
1454
0000 22 1455 ret
1456 ;------------------------------------------------------------
1457 ;Allocation info for local variables in function 'wait'
1458 ;------------------------------------------------------------
1459 ;ms Allocated to registers r2 r3
1460 ;i Allocated to registers r6 r7
1461 ;j Allocated to registers r4 r5
1462 ;------------------------------------------------------------
1463 ; ../../include/ztex-utils.h:78: void wait(WORD short ms) { // wait in ms
1464 ; -----------------------------------------
1465 ; function wait
1466 ; -----------------------------------------
0001 1467 _wait:
0001 AA 82 1468 mov r2,dpl
0003 AB 83 1469 mov r3,dph
1470 ; ../../include/ztex-utils.h:80: for (j=0; j<ms; j++)
0005 7C 00 1471 mov r4,#0x00
0007 7D 00 1472 mov r5,#0x00
0009 1473 00104$:
0009 C3 1474 clr c
000A EC 1475 mov a,r4
000B 9A 1476 subb a,r2
000C ED 1477 mov a,r5
000D 9B 1478 subb a,r3
000E 50 14 1479 jnc 00108$
1480 ; ../../include/ztex-utils.h:81: for (i=0; i<1200; i++);
0010 7E B0 1481 mov r6,#0xB0
0012 7F 04 1482 mov r7,#0x04
0014 1483 00103$:
0014 1E 1484 dec r6
0015 BE FF 01 1485 cjne r6,#0xff,00117$
0018 1F 1486 dec r7
0019 1487 00117$:
0019 EE 1488 mov a,r6
001A 4F 1489 orl a,r7
001B 70 F7 1490 jnz 00103$
1491 ; ../../include/ztex-utils.h:80: for (j=0; j<ms; j++)
001D 0C 1492 inc r4
001E BC 00 E8 1493 cjne r4,#0x00,00104$
0021 0D 1494 inc r5
0022 80 E5 1495 sjmp 00104$
0024 1496 00108$:
0024 22 1497 ret
1498 ;------------------------------------------------------------
1499 ;Allocation info for local variables in function 'uwait'
1500 ;------------------------------------------------------------
1501 ;us Allocated to registers r2 r3
1502 ;i Allocated to registers r6 r7
1503 ;j Allocated to registers r4 r5
1504 ;------------------------------------------------------------
1506 ; -----------------------------------------
1507 ; function uwait
1508 ; -----------------------------------------
0025 1509 _uwait:
0025 AA 82 1510 mov r2,dpl
0027 AB 83 1511 mov r3,dph
1512 ; ../../include/ztex-utils.h:90: for (j=0; j<us; j++)
0029 7C 00 1513 mov r4,#0x00
002B 7D 00 1514 mov r5,#0x00
002D 1515 00104$:
002D C3 1516 clr c
002E EC 1517 mov a,r4
002F 9A 1518 subb a,r2
0030 ED 1519 mov a,r5
0031 9B 1520 subb a,r3
0032 50 14 1521 jnc 00108$
1522 ; ../../include/ztex-utils.h:91: for (i=0; i<10; i++);
0034 7E 0A 1523 mov r6,#0x0A
0036 7F 00 1524 mov r7,#0x00
0038 1525 00103$:
0038 1E 1526 dec r6
0039 BE FF 01 1527 cjne r6,#0xff,00117$
003C 1F 1528 dec r7
003D 1529 00117$:
003D EE 1530 mov a,r6
003E 4F 1531 orl a,r7
003F 70 F7 1532 jnz 00103$
1533 ; ../../include/ztex-utils.h:90: for (j=0; j<us; j++)
0041 0C 1534 inc r4
0042 BC 00 E8 1535 cjne r4,#0x00,00104$
0045 0D 1536 inc r5
0046 80 E5 1537 sjmp 00104$
0048 1538 00108$:
0048 22 1539 ret
1540 ;------------------------------------------------------------
1541 ;Allocation info for local variables in function 'MEM_COPY1_int'
1542 ;------------------------------------------------------------
1543 ;------------------------------------------------------------
1544 ; ../../include/ztex-utils.h:99: void MEM_COPY1_int() // __naked
1545 ; -----------------------------------------
1546 ; function MEM_COPY1_int
1547 ; -----------------------------------------
0049 1548 _MEM_COPY1_int:
1549 ; ../../include/ztex-utils.h:110: __endasm;
1550
0049 1551 020001$:
0049 75 AF 07 1552 mov _AUTOPTRSETUP,#0x07
004C 90 E6 7B 1553 mov dptr,#_XAUTODAT1
004F E0 1554 movx a,@dptr
0050 90 E6 7C 1555 mov dptr,#_XAUTODAT2
0053 F0 1556 movx @dptr,a
0054 DA F3 1557 djnz r2, 020001$
0056 22 1558 ret
1559
0057 22 1560 ret
1561 ;------------------------------------------------------------
1562 ;Allocation info for local variables in function 'i2c_waitWrite'
1563 ;------------------------------------------------------------
1564 ;i2csbuf Allocated to registers r2
1565 ;toc Allocated to registers r2
1566 ;------------------------------------------------------------
1567 ; ../../include/ztex-eeprom.h:41: BYTE i2c_waitWrite()
1568 ; -----------------------------------------
1569 ; function i2c_waitWrite
1570 ; -----------------------------------------
0058 1571 _i2c_waitWrite:
1572 ; ../../include/ztex-eeprom.h:44: for ( toc=0; toc<255 && !(I2CS & bmBIT0); toc++ );
0058 7A 00 1573 mov r2,#0x00
005A 1574 00105$:
005A BA FF 00 1575 cjne r2,#0xFF,00116$
005D 1576 00116$:
005D 50 0B 1577 jnc 00108$
005F 90 E6 78 1578 mov dptr,#_I2CS
0062 E0 1579 movx a,@dptr
0063 FB 1580 mov r3,a
0064 20 E0 03 1581 jb acc.0,00108$
0067 0A 1582 inc r2
0068 80 F0 1583 sjmp 00105$
006A 1584 00108$:
1585 ; ../../include/ztex-eeprom.h:45: i2csbuf = I2CS;
006A 90 E6 78 1586 mov dptr,#_I2CS
006D E0 1587 movx a,@dptr
1588 ; ../../include/ztex-eeprom.h:46: if ( (i2csbuf & bmBIT2) || (!(i2csbuf & bmBIT1)) ) {
006E FA 1589 mov r2,a
006F 20 E2 04 1590 jb acc.2,00101$
0072 EA 1591 mov a,r2
0073 20 E1 0B 1592 jb acc.1,00102$
0076 1593 00101$:
1594 ; ../../include/ztex-eeprom.h:47: I2CS |= bmBIT6;
0076 90 E6 78 1595 mov dptr,#_I2CS
0079 E0 1596 movx a,@dptr
007A 44 40 1597 orl a,#0x40
007C F0 1598 movx @dptr,a
1599 ; ../../include/ztex-eeprom.h:48: return 1;
007D 75 82 01 1600 mov dpl,#0x01
1601 ; ../../include/ztex-eeprom.h:50: return 0;
0080 22 1602 ret
0081 1603 00102$:
0081 75 82 00 1604 mov dpl,#0x00
0084 22 1605 ret
1606 ;------------------------------------------------------------
1607 ;Allocation info for local variables in function 'i2c_waitRead'
1608 ;------------------------------------------------------------
1609 ;i2csbuf Allocated to registers r2
1610 ;toc Allocated to registers r2
1611 ;------------------------------------------------------------
1612 ; ../../include/ztex-eeprom.h:57: BYTE i2c_waitRead(void)
1613 ; -----------------------------------------
1614 ; function i2c_waitRead
1615 ; -----------------------------------------
0085 1616 _i2c_waitRead:
1617 ; ../../include/ztex-eeprom.h:60: for ( toc=0; toc<255 && !(I2CS & bmBIT0); toc++ );
0085 7A 00 1618 mov r2,#0x00
0087 1619 00104$:
0087 BA FF 00 1620 cjne r2,#0xFF,00115$
008A 1621 00115$:
008A 50 0B 1622 jnc 00107$
008C 90 E6 78 1623 mov dptr,#_I2CS
008F E0 1624 movx a,@dptr
0090 FB 1625 mov r3,a
0091 20 E0 03 1626 jb acc.0,00107$
0094 0A 1627 inc r2
0095 80 F0 1628 sjmp 00104$
0097 1629 00107$:
1630 ; ../../include/ztex-eeprom.h:61: i2csbuf = I2CS;
0097 90 E6 78 1631 mov dptr,#_I2CS
009A E0 1632 movx a,@dptr
1633 ; ../../include/ztex-eeprom.h:62: if (i2csbuf & bmBIT2) {
009B FA 1634 mov r2,a
009C 30 E2 0B 1635 jnb acc.2,00102$
1636 ; ../../include/ztex-eeprom.h:63: I2CS |= bmBIT6;
009F 90 E6 78 1637 mov dptr,#_I2CS
00A2 E0 1638 movx a,@dptr
00A3 44 40 1639 orl a,#0x40
00A5 F0 1640 movx @dptr,a
1641 ; ../../include/ztex-eeprom.h:64: return 1;
00A6 75 82 01 1642 mov dpl,#0x01
1643 ; ../../include/ztex-eeprom.h:66: return 0;
00A9 22 1644 ret
00AA 1645 00102$:
00AA 75 82 00 1646 mov dpl,#0x00
00AD 22 1647 ret
1648 ;------------------------------------------------------------
1649 ;Allocation info for local variables in function 'i2c_waitStart'
1650 ;------------------------------------------------------------
1651 ;toc Allocated to registers r2
1652 ;------------------------------------------------------------
1653 ; ../../include/ztex-eeprom.h:73: BYTE i2c_waitStart()
1654 ; -----------------------------------------
1655 ; function i2c_waitStart
1656 ; -----------------------------------------
00AE 1657 _i2c_waitStart:
1658 ; ../../include/ztex-eeprom.h:76: for ( toc=0; toc<255; toc++ ) {
00AE 7A 00 1659 mov r2,#0x00
00B0 1660 00103$:
00B0 BA FF 00 1661 cjne r2,#0xFF,00112$
00B3 1662 00112$:
00B3 50 0F 1663 jnc 00106$
1664 ; ../../include/ztex-eeprom.h:77: if ( ! (I2CS & bmBIT2) )
00B5 90 E6 78 1665 mov dptr,#_I2CS
00B8 E0 1666 movx a,@dptr
00B9 FB 1667 mov r3,a
00BA 20 E2 04 1668 jb acc.2,00105$
1669 ; ../../include/ztex-eeprom.h:78: return 0;
00BD 75 82 00 1670 mov dpl,#0x00
00C0 22 1671 ret
00C1 1672 00105$:
1673 ; ../../include/ztex-eeprom.h:76: for ( toc=0; toc<255; toc++ ) {
00C1 0A 1674 inc r2
00C2 80 EC 1675 sjmp 00103$
00C4 1676 00106$:
1677 ; ../../include/ztex-eeprom.h:80: return 1;
00C4 75 82 01 1678 mov dpl,#0x01
00C7 22 1679 ret
1680 ;------------------------------------------------------------
1681 ;Allocation info for local variables in function 'i2c_waitStop'
1682 ;------------------------------------------------------------
1683 ;toc Allocated to registers r2
1684 ;------------------------------------------------------------
1685 ; ../../include/ztex-eeprom.h:87: BYTE i2c_waitStop()
1686 ; -----------------------------------------
1687 ; function i2c_waitStop
1688 ; -----------------------------------------
00C8 1689 _i2c_waitStop:
1690 ; ../../include/ztex-eeprom.h:90: for ( toc=0; toc<255; toc++ ) {
00C8 7A 00 1691 mov r2,#0x00
00CA 1692 00103$:
00CA BA FF 00 1693 cjne r2,#0xFF,00112$
00CD 1694 00112$:
00CD 50 0F 1695 jnc 00106$
1696 ; ../../include/ztex-eeprom.h:91: if ( ! (I2CS & bmBIT6) )
00CF 90 E6 78 1697 mov dptr,#_I2CS
00D2 E0 1698 movx a,@dptr
00D3 FB 1699 mov r3,a
00D4 20 E6 04 1700 jb acc.6,00105$
1701 ; ../../include/ztex-eeprom.h:92: return 0;
00D7 75 82 00 1702 mov dpl,#0x00
00DA 22 1703 ret
00DB 1704 00105$:
1705 ; ../../include/ztex-eeprom.h:90: for ( toc=0; toc<255; toc++ ) {
00DB 0A 1706 inc r2
00DC 80 EC 1707 sjmp 00103$
00DE 1708 00106$:
1709 ; ../../include/ztex-eeprom.h:94: return 1;
00DE 75 82 01 1710 mov dpl,#0x01
00E1 22 1711 ret
1712 ;------------------------------------------------------------
1713 ;Allocation info for local variables in function 'eeprom_select'
1714 ;------------------------------------------------------------
1715 ;to Allocated with name '_eeprom_select_PARM_2'
1716 ;stop Allocated with name '_eeprom_select_PARM_3'
1717 ;addr Allocated to registers r2
1718 ;toc Allocated to registers
1719 ;------------------------------------------------------------
1720 ; ../../include/ztex-eeprom.h:103: BYTE eeprom_select (BYTE addr, BYTE to, BYTE stop ) {
1721 ; -----------------------------------------
1722 ; function eeprom_select
1723 ; -----------------------------------------
00E2 1724 _eeprom_select:
00E2 AA 82 1725 mov r2,dpl
1726 ; ../../include/ztex-eeprom.h:105: eeprom_select_start:
00E4 C3 1727 clr c
00E5 E4 1728 clr a
00E6 95*00 1729 subb a,_eeprom_select_PARM_2
00E8 E4 1730 clr a
00E9 33 1731 rlc a
00EA FB 1732 mov r3,a
00EB 1733 00101$:
1734 ; ../../include/ztex-eeprom.h:106: I2CS |= bmBIT7; // start bit
00EB 90 E6 78 1735 mov dptr,#_I2CS
00EE E0 1736 movx a,@dptr
00EF 44 80 1737 orl a,#0x80
00F1 F0 1738 movx @dptr,a
1739 ; ../../include/ztex-eeprom.h:107: i2c_waitStart();
00F2 C0 02 1740 push ar2
00F4 C0 03 1741 push ar3
00F6 12s00rAE 1742 lcall _i2c_waitStart
00F9 D0 03 1743 pop ar3
00FB D0 02 1744 pop ar2
1745 ; ../../include/ztex-eeprom.h:108: I2DAT = addr; // select device for writing
00FD 90 E6 79 1746 mov dptr,#_I2DAT
0100 EA 1747 mov a,r2
0101 F0 1748 movx @dptr,a
1749 ; ../../include/ztex-eeprom.h:109: if ( ! i2c_waitWrite() ) {
0102 C0 02 1750 push ar2
0104 C0 03 1751 push ar3
0106 12s00r58 1752 lcall _i2c_waitWrite
0109 E5 82 1753 mov a,dpl
010B D0 03 1754 pop ar3
010D D0 02 1755 pop ar2
010F 70 12 1756 jnz 00107$
1757 ; ../../include/ztex-eeprom.h:110: if ( stop ) {
0111 E5*01 1758 mov a,_eeprom_select_PARM_3
0113 60 0A 1759 jz 00103$
1760 ; ../../include/ztex-eeprom.h:111: I2CS |= bmBIT6;
0115 90 E6 78 1761 mov dptr,#_I2CS
0118 E0 1762 movx a,@dptr
0119 44 40 1763 orl a,#0x40
011B F0 1764 movx @dptr,a
1765 ; ../../include/ztex-eeprom.h:112: i2c_waitStop();
011C 12s00rC8 1766 lcall _i2c_waitStop
011F 1767 00103$:
1768 ; ../../include/ztex-eeprom.h:114: return 0;
011F 75 82 00 1769 mov dpl,#0x00
0122 22 1770 ret
0123 1771 00107$:
1772 ; ../../include/ztex-eeprom.h:116: else if (toc<to) {
0123 EB 1773 mov a,r3
0124 60 10 1774 jz 00108$
1775 ; ../../include/ztex-eeprom.h:117: uwait(10);
0126 90 00 0A 1776 mov dptr,#0x000A
0129 C0 02 1777 push ar2
012B C0 03 1778 push ar3
012D 12s00r25 1779 lcall _uwait
0130 D0 03 1780 pop ar3
0132 D0 02 1781 pop ar2
1782 ; ../../include/ztex-eeprom.h:118: goto eeprom_select_start;
0134 80 B5 1783 sjmp 00101$
0136 1784 00108$:
1785 ; ../../include/ztex-eeprom.h:120: if ( stop ) {
0136 E5*01 1786 mov a,_eeprom_select_PARM_3
0138 60 08 1787 jz 00110$
1788 ; ../../include/ztex-eeprom.h:121: I2CS |= bmBIT6;
013A 90 E6 78 1789 mov dptr,#_I2CS
013D E0 1790 movx a,@dptr
013E FA 1791 mov r2,a
013F 44 40 1792 orl a,#0x40
0141 F0 1793 movx @dptr,a
0142 1794 00110$:
1795 ; ../../include/ztex-eeprom.h:123: return 1;
0142 75 82 01 1796 mov dpl,#0x01
0145 22 1797 ret
1798 ;------------------------------------------------------------
1799 ;Allocation info for local variables in function 'eeprom_read'
1800 ;------------------------------------------------------------
1801 ;addr Allocated with name '_eeprom_read_PARM_2'
1802 ;length Allocated with name '_eeprom_read_PARM_3'
1803 ;buf Allocated to registers r2 r3
1804 ;bytes Allocated to registers r4
1805 ;i Allocated to registers
1806 ;------------------------------------------------------------
1807 ; ../../include/ztex-eeprom.h:131: BYTE eeprom_read ( __xdata BYTE *buf, WORD addr, BYTE length ) {
1808 ; -----------------------------------------
1809 ; function eeprom_read
1810 ; -----------------------------------------
0146 1811 _eeprom_read:
0146 AA 82 1812 mov r2,dpl
0148 AB 83 1813 mov r3,dph
1814 ; ../../include/ztex-eeprom.h:132: BYTE bytes = 0,i;
014A 7C 00 1815 mov r4,#0x00
1816 ; ../../include/ztex-eeprom.h:134: if ( length == 0 )
014C E5*04 1817 mov a,_eeprom_read_PARM_3
1818 ; ../../include/ztex-eeprom.h:135: return 0;
014E 70 03 1819 jnz 00102$
0150 F5 82 1820 mov dpl,a
0152 22 1821 ret
0153 1822 00102$:
1823 ; ../../include/ztex-eeprom.h:137: if ( eeprom_select(EEPROM_ADDR, 100,0) )
0153 75*00 64 1824 mov _eeprom_select_PARM_2,#0x64
0156 75*01 00 1825 mov _eeprom_select_PARM_3,#0x00
0159 75 82 A2 1826 mov dpl,#0xA2
015C C0 02 1827 push ar2
015E C0 03 1828 push ar3
0160 C0 04 1829 push ar4
0162 12s00rE2 1830 lcall _eeprom_select
0165 E5 82 1831 mov a,dpl
0167 D0 04 1832 pop ar4
0169 D0 03 1833 pop ar3
016B D0 02 1834 pop ar2
016D 60 03 1835 jz 00134$
016F 02s02r4C 1836 ljmp 00117$
0172 1837 00134$:
1838 ; ../../include/ztex-eeprom.h:140: I2DAT = HI(addr); // write address
0172 90 E6 79 1839 mov dptr,#_I2DAT
0175 E5*03 1840 mov a,(_eeprom_read_PARM_2 + 1)
0177 F0 1841 movx @dptr,a
1842 ; ../../include/ztex-eeprom.h:141: if ( i2c_waitWrite() ) goto eeprom_read_end;
0178 C0 02 1843 push ar2
017A C0 03 1844 push ar3
017C C0 04 1845 push ar4
017E 12s00r58 1846 lcall _i2c_waitWrite
0181 E5 82 1847 mov a,dpl
0183 D0 04 1848 pop ar4
0185 D0 03 1849 pop ar3
0187 D0 02 1850 pop ar2
0189 60 03 1851 jz 00135$
018B 02s02r4C 1852 ljmp 00117$
018E 1853 00135$:
1854 ; ../../include/ztex-eeprom.h:142: I2DAT = LO(addr); // write address
018E 90 E6 79 1855 mov dptr,#_I2DAT
0191 E5*02 1856 mov a,_eeprom_read_PARM_2
0193 F0 1857 movx @dptr,a
1858 ; ../../include/ztex-eeprom.h:143: if ( i2c_waitWrite() ) goto eeprom_read_end;
0194 C0 02 1859 push ar2
0196 C0 03 1860 push ar3
0198 C0 04 1861 push ar4
019A 12s00r58 1862 lcall _i2c_waitWrite
019D E5 82 1863 mov a,dpl
019F D0 04 1864 pop ar4
01A1 D0 03 1865 pop ar3
01A3 D0 02 1866 pop ar2
01A5 60 03 1867 jz 00136$
01A7 02s02r4C 1868 ljmp 00117$
01AA 1869 00136$:
1870 ; ../../include/ztex-eeprom.h:144: I2CS |= bmBIT6;
01AA 90 E6 78 1871 mov dptr,#_I2CS
01AD E0 1872 movx a,@dptr
01AE 44 40 1873 orl a,#0x40
01B0 F0 1874 movx @dptr,a
1875 ; ../../include/ztex-eeprom.h:145: i2c_waitStop();
01B1 C0 02 1876 push ar2
01B3 C0 03 1877 push ar3
01B5 C0 04 1878 push ar4
01B7 12s00rC8 1879 lcall _i2c_waitStop
1880 ; ../../include/ztex-eeprom.h:147: I2CS |= bmBIT7; // start bit
01BA 90 E6 78 1881 mov dptr,#_I2CS
01BD E0 1882 movx a,@dptr
01BE 44 80 1883 orl a,#0x80
01C0 F0 1884 movx @dptr,a
1885 ; ../../include/ztex-eeprom.h:148: i2c_waitStart();
01C1 12s00rAE 1886 lcall _i2c_waitStart
1887 ; ../../include/ztex-eeprom.h:149: I2DAT = EEPROM_ADDR | 1; // select device for reading
01C4 90 E6 79 1888 mov dptr,#_I2DAT
01C7 74 A3 1889 mov a,#0xA3
01C9 F0 1890 movx @dptr,a
1891 ; ../../include/ztex-eeprom.h:150: if ( i2c_waitWrite() ) goto eeprom_read_end;
01CA 12s00r58 1892 lcall _i2c_waitWrite
01CD E5 82 1893 mov a,dpl
01CF D0 04 1894 pop ar4
01D1 D0 03 1895 pop ar3
01D3 D0 02 1896 pop ar2
01D5 70 75 1897 jnz 00117$
1898 ; ../../include/ztex-eeprom.h:152: *buf = I2DAT; // dummy read
01D7 90 E6 79 1899 mov dptr,#_I2DAT
01DA E0 1900 movx a,@dptr
01DB 8A 82 1901 mov dpl,r2
01DD 8B 83 1902 mov dph,r3
01DF F0 1903 movx @dptr,a
1904 ; ../../include/ztex-eeprom.h:153: if ( i2c_waitRead()) goto eeprom_read_end;
01E0 C0 02 1905 push ar2
01E2 C0 03 1906 push ar3
01E4 C0 04 1907 push ar4
01E6 12s00r85 1908 lcall _i2c_waitRead
01E9 E5 82 1909 mov a,dpl
01EB D0 04 1910 pop ar4
01ED D0 03 1911 pop ar3
01EF D0 02 1912 pop ar2
01F1 70 59 1913 jnz 00117$
01F3 FD 1914 mov r5,a
01F4 1915 00118$:
1916 ; ../../include/ztex-eeprom.h:154: for (; bytes<length; bytes++ ) {
01F4 C3 1917 clr c
01F5 ED 1918 mov a,r5
01F6 95*04 1919 subb a,_eeprom_read_PARM_3
01F8 50 2A 1920 jnc 00121$
1921 ; ../../include/ztex-eeprom.h:155: *buf = I2DAT; // read data
01FA 90 E6 79 1922 mov dptr,#_I2DAT
01FD E0 1923 movx a,@dptr
01FE 8A 82 1924 mov dpl,r2
0200 8B 83 1925 mov dph,r3
0202 F0 1926 movx @dptr,a
0203 A3 1927 inc dptr
0204 AA 82 1928 mov r2,dpl
0206 AB 83 1929 mov r3,dph
1930 ; ../../include/ztex-eeprom.h:156: buf++;
1931 ; ../../include/ztex-eeprom.h:157: if ( i2c_waitRead()) goto eeprom_read_end;
0208 C0 02 1932 push ar2
020A C0 03 1933 push ar3
020C C0 04 1934 push ar4
020E C0 05 1935 push ar5
0210 12s00r85 1936 lcall _i2c_waitRead
0213 E5 82 1937 mov a,dpl
0215 D0 05 1938 pop ar5
0217 D0 04 1939 pop ar4
0219 D0 03 1940 pop ar3
021B D0 02 1941 pop ar2
021D 70 2D 1942 jnz 00117$
1943 ; ../../include/ztex-eeprom.h:154: for (; bytes<length; bytes++ ) {
021F 0D 1944 inc r5
0220 8D 04 1945 mov ar4,r5
0222 80 D0 1946 sjmp 00118$
0224 1947 00121$:
1948 ; ../../include/ztex-eeprom.h:160: I2CS |= bmBIT5; // no ACK
0224 90 E6 78 1949 mov dptr,#_I2CS
0227 E0 1950 movx a,@dptr
0228 44 20 1951 orl a,#0x20
022A F0 1952 movx @dptr,a
1953 ; ../../include/ztex-eeprom.h:161: i = I2DAT; // dummy read
022B 90 E6 79 1954 mov dptr,#_I2DAT
022E E0 1955 movx a,@dptr
1956 ; ../../include/ztex-eeprom.h:162: if ( i2c_waitRead()) goto eeprom_read_end;
022F C0 04 1957 push ar4
0231 12s00r85 1958 lcall _i2c_waitRead
0234 E5 82 1959 mov a,dpl
0236 D0 04 1960 pop ar4
0238 70 12 1961 jnz 00117$
1962 ; ../../include/ztex-eeprom.h:164: I2CS |= bmBIT6; // stop bit
023A 90 E6 78 1963 mov dptr,#_I2CS
023D E0 1964 movx a,@dptr
023E 44 40 1965 orl a,#0x40
0240 F0 1966 movx @dptr,a
1967 ; ../../include/ztex-eeprom.h:165: i = I2DAT; // dummy read
0241 90 E6 79 1968 mov dptr,#_I2DAT
0244 E0 1969 movx a,@dptr
1970 ; ../../include/ztex-eeprom.h:166: i2c_waitStop();
0245 C0 04 1971 push ar4
0247 12s00rC8 1972 lcall _i2c_waitStop
024A D0 04 1973 pop ar4
1974 ; ../../include/ztex-eeprom.h:168: eeprom_read_end:
024C 1975 00117$:
1976 ; ../../include/ztex-eeprom.h:169: return bytes;
024C 8C 82 1977 mov dpl,r4
024E 22 1978 ret
1979 ;------------------------------------------------------------
1980 ;Allocation info for local variables in function 'eeprom_write'
1981 ;------------------------------------------------------------
1982 ;addr Allocated with name '_eeprom_write_PARM_2'
1983 ;length Allocated with name '_eeprom_write_PARM_3'
1984 ;buf Allocated to registers r2 r3
1985 ;bytes Allocated to registers r4
1986 ;------------------------------------------------------------
1987 ; ../../include/ztex-eeprom.h:178: BYTE eeprom_write ( __xdata BYTE *buf, WORD addr, BYTE length ) {
1988 ; -----------------------------------------
1989 ; function eeprom_write
1990 ; -----------------------------------------
024F 1991 _eeprom_write:
024F AA 82 1992 mov r2,dpl
0251 AB 83 1993 mov r3,dph
1994 ; ../../include/ztex-eeprom.h:179: BYTE bytes = 0;
0253 7C 00 1995 mov r4,#0x00
1996 ; ../../include/ztex-eeprom.h:181: if ( length == 0 )
0255 E5*07 1997 mov a,_eeprom_write_PARM_3
1998 ; ../../include/ztex-eeprom.h:182: return 0;
0257 70 03 1999 jnz 00102$
0259 F5 82 2000 mov dpl,a
025B 22 2001 ret
025C 2002 00102$:
2003 ; ../../include/ztex-eeprom.h:184: if ( eeprom_select(EEPROM_ADDR, 100,0) )
025C 75*00 64 2004 mov _eeprom_select_PARM_2,#0x64
025F 75*01 00 2005 mov _eeprom_select_PARM_3,#0x00
0262 75 82 A2 2006 mov dpl,#0xA2
0265 C0 02 2007 push ar2
0267 C0 03 2008 push ar3
0269 C0 04 2009 push ar4
026B 12s00rE2 2010 lcall _eeprom_select
026E E5 82 2011 mov a,dpl
0270 D0 04 2012 pop ar4
0272 D0 03 2013 pop ar3
0274 D0 02 2014 pop ar2
0276 60 03 2015 jz 00125$
0278 02s03r0C 2016 ljmp 00111$
027B 2017 00125$:
2018 ; ../../include/ztex-eeprom.h:187: I2DAT = HI(addr); // write address
027B 90 E6 79 2019 mov dptr,#_I2DAT
027E E5*06 2020 mov a,(_eeprom_write_PARM_2 + 1)
0280 F0 2021 movx @dptr,a
2022 ; ../../include/ztex-eeprom.h:188: if ( i2c_waitWrite() ) goto eeprom_write_end;
0281 C0 02 2023 push ar2
0283 C0 03 2024 push ar3
0285 C0 04 2025 push ar4
0287 12s00r58 2026 lcall _i2c_waitWrite
028A E5 82 2027 mov a,dpl
028C D0 04 2028 pop ar4
028E D0 03 2029 pop ar3
0290 D0 02 2030 pop ar2
0292 60 03 2031 jz 00126$
0294 02s03r0C 2032 ljmp 00111$
0297 2033 00126$:
2034 ; ../../include/ztex-eeprom.h:189: I2DAT = LO(addr); // write address
0297 90 E6 79 2035 mov dptr,#_I2DAT
029A E5*05 2036 mov a,_eeprom_write_PARM_2
029C F0 2037 movx @dptr,a
2038 ; ../../include/ztex-eeprom.h:190: if ( i2c_waitWrite() ) goto eeprom_write_end;
029D C0 02 2039 push ar2
029F C0 03 2040 push ar3
02A1 C0 04 2041 push ar4
02A3 12s00r58 2042 lcall _i2c_waitWrite
02A6 E5 82 2043 mov a,dpl
02A8 D0 04 2044 pop ar4
02AA D0 03 2045 pop ar3
02AC D0 02 2046 pop ar2
02AE 70 5C 2047 jnz 00111$
02B0 FD 2048 mov r5,a
02B1 2049 00112$:
2050 ; ../../include/ztex-eeprom.h:192: for (; bytes<length; bytes++ ) {
02B1 C3 2051 clr c
02B2 ED 2052 mov a,r5
02B3 95*07 2053 subb a,_eeprom_write_PARM_3
02B5 50 47 2054 jnc 00115$
2055 ; ../../include/ztex-eeprom.h:193: I2DAT = *buf; // write data
02B7 8A 82 2056 mov dpl,r2
02B9 8B 83 2057 mov dph,r3
02BB E0 2058 movx a,@dptr
02BC FE 2059 mov r6,a
02BD A3 2060 inc dptr
02BE AA 82 2061 mov r2,dpl
02C0 AB 83 2062 mov r3,dph
02C2 90 E6 79 2063 mov dptr,#_I2DAT
02C5 EE 2064 mov a,r6
02C6 F0 2065 movx @dptr,a
2066 ; ../../include/ztex-eeprom.h:194: eeprom_write_checksum += *buf;
02C7 90s00r04 2067 mov dptr,#_eeprom_write_checksum
02CA E0 2068 movx a,@dptr
02CB FF 2069 mov r7,a
02CC EE 2070 mov a,r6
02CD 2F 2071 add a,r7
02CE F0 2072 movx @dptr,a
2073 ; ../../include/ztex-eeprom.h:195: buf++;
2074 ; ../../include/ztex-eeprom.h:196: eeprom_write_bytes+=1;
02CF 90s00r02 2075 mov dptr,#_eeprom_write_bytes
02D2 E0 2076 movx a,@dptr
02D3 FE 2077 mov r6,a
02D4 A3 2078 inc dptr
02D5 E0 2079 movx a,@dptr
02D6 FF 2080 mov r7,a
02D7 90s00r02 2081 mov dptr,#_eeprom_write_bytes
02DA 74 01 2082 mov a,#0x01
02DC 2E 2083 add a,r6
02DD F0 2084 movx @dptr,a
02DE E4 2085 clr a
02DF 3F 2086 addc a,r7
02E0 A3 2087 inc dptr
02E1 F0 2088 movx @dptr,a
2089 ; ../../include/ztex-eeprom.h:197: if ( i2c_waitWrite() ) goto eeprom_write_end;
02E2 C0 02 2090 push ar2
02E4 C0 03 2091 push ar3
02E6 C0 04 2092 push ar4
02E8 C0 05 2093 push ar5
02EA 12s00r58 2094 lcall _i2c_waitWrite
02ED E5 82 2095 mov a,dpl
02EF D0 05 2096 pop ar5
02F1 D0 04 2097 pop ar4
02F3 D0 03 2098 pop ar3
02F5 D0 02 2099 pop ar2
02F7 70 13 2100 jnz 00111$
2101 ; ../../include/ztex-eeprom.h:192: for (; bytes<length; bytes++ ) {
02F9 0D 2102 inc r5
02FA 8D 04 2103 mov ar4,r5
02FC 80 B3 2104 sjmp 00112$
02FE 2105 00115$:
2106 ; ../../include/ztex-eeprom.h:199: I2CS |= bmBIT6; // stop bit
02FE 90 E6 78 2107 mov dptr,#_I2CS
0301 E0 2108 movx a,@dptr
0302 44 40 2109 orl a,#0x40
0304 F0 2110 movx @dptr,a
2111 ; ../../include/ztex-eeprom.h:200: i2c_waitStop();
0305 C0 04 2112 push ar4
0307 12s00rC8 2113 lcall _i2c_waitStop
030A D0 04 2114 pop ar4
2115 ; ../../include/ztex-eeprom.h:202: eeprom_write_end:
030C 2116 00111$:
2117 ; ../../include/ztex-eeprom.h:203: return bytes;
030C 8C 82 2118 mov dpl,r4
030E 22 2119 ret
2120 ;------------------------------------------------------------
2121 ;Allocation info for local variables in function 'eeprom_read_ep0'
2122 ;------------------------------------------------------------
2123 ;i Allocated to registers r3
2124 ;b Allocated to registers r2
2125 ;------------------------------------------------------------
2126 ; ../../include/ztex-eeprom.h:209: BYTE eeprom_read_ep0 () {
2127 ; -----------------------------------------
2128 ; function eeprom_read_ep0
2129 ; -----------------------------------------
030F 2130 _eeprom_read_ep0:
2131 ; ../../include/ztex-eeprom.h:211: b = ep0_payload_transfer;
030F 90s00r02 2132 mov dptr,#_ep0_payload_transfer
0312 E0 2133 movx a,@dptr
0313 FA 2134 mov r2,a
2135 ; ../../include/ztex-eeprom.h:212: i = eeprom_read(EP0BUF, eeprom_addr, b);
0314 90s00r00 2136 mov dptr,#_eeprom_addr
0317 E0 2137 movx a,@dptr
0318 F5*02 2138 mov _eeprom_read_PARM_2,a
031A A3 2139 inc dptr
031B E0 2140 movx a,@dptr
031C F5*03 2141 mov (_eeprom_read_PARM_2 + 1),a
031E 8A*04 2142 mov _eeprom_read_PARM_3,r2
0320 90 E7 40 2143 mov dptr,#_EP0BUF
0323 C0 02 2144 push ar2
0325 12s01r46 2145 lcall _eeprom_read
0328 AB 82 2146 mov r3,dpl
032A D0 02 2147 pop ar2
2148 ; ../../include/ztex-eeprom.h:213: eeprom_addr += b;
032C 7C 00 2149 mov r4,#0x00
032E 90s00r00 2150 mov dptr,#_eeprom_addr
0331 E0 2151 movx a,@dptr
0332 FD 2152 mov r5,a
0333 A3 2153 inc dptr
0334 E0 2154 movx a,@dptr
0335 FE 2155 mov r6,a
0336 90s00r00 2156 mov dptr,#_eeprom_addr
0339 EA 2157 mov a,r2
033A 2D 2158 add a,r5
033B F0 2159 movx @dptr,a
033C EC 2160 mov a,r4
033D 3E 2161 addc a,r6
033E A3 2162 inc dptr
033F F0 2163 movx @dptr,a
2164 ; ../../include/ztex-eeprom.h:214: return i;
0340 8B 82 2165 mov dpl,r3
0342 22 2166 ret
2167 ;------------------------------------------------------------
2168 ;Allocation info for local variables in function 'eeprom_write_ep0'
2169 ;------------------------------------------------------------
2170 ;length Allocated to registers r2
2171 ;------------------------------------------------------------
2172 ; ../../include/ztex-eeprom.h:230: void eeprom_write_ep0 ( BYTE length ) {
2173 ; -----------------------------------------
2174 ; function eeprom_write_ep0
2175 ; -----------------------------------------
0343 2176 _eeprom_write_ep0:
0343 AA 82 2177 mov r2,dpl
2178 ; ../../include/ztex-eeprom.h:231: eeprom_write(EP0BUF, eeprom_addr, length);
0345 90s00r00 2179 mov dptr,#_eeprom_addr
0348 E0 2180 movx a,@dptr
0349 F5*05 2181 mov _eeprom_write_PARM_2,a
034B A3 2182 inc dptr
034C E0 2183 movx a,@dptr
034D F5*06 2184 mov (_eeprom_write_PARM_2 + 1),a
034F 8A*07 2185 mov _eeprom_write_PARM_3,r2
0351 90 E7 40 2186 mov dptr,#_EP0BUF
0354 C0 02 2187 push ar2
0356 12s02r4F 2188 lcall _eeprom_write
0359 D0 02 2189 pop ar2
2190 ; ../../include/ztex-eeprom.h:232: eeprom_addr += length;
035B 7B 00 2191 mov r3,#0x00
035D 90s00r00 2192 mov dptr,#_eeprom_addr
0360 E0 2193 movx a,@dptr
0361 FC 2194 mov r4,a
0362 A3 2195 inc dptr
0363 E0 2196 movx a,@dptr
0364 FD 2197 mov r5,a
0365 90s00r00 2198 mov dptr,#_eeprom_addr
0368 EA 2199 mov a,r2
0369 2C 2200 add a,r4
036A F0 2201 movx @dptr,a
036B EB 2202 mov a,r3
036C 3D 2203 addc a,r5
036D A3 2204 inc dptr
036E F0 2205 movx @dptr,a
036F 22 2206 ret
2207 ;------------------------------------------------------------
2208 ;Allocation info for local variables in function 'mac_eeprom_read'
2209 ;------------------------------------------------------------
2210 ;addr Allocated with name '_mac_eeprom_read_PARM_2'
2211 ;length Allocated with name '_mac_eeprom_read_PARM_3'
2212 ;buf Allocated to registers r2 r3
2213 ;bytes Allocated to registers r4
2214 ;i Allocated to registers
2215 ;------------------------------------------------------------
2216 ; ../../include/ztex-eeprom.h:272: BYTE mac_eeprom_read ( __xdata BYTE *buf, BYTE addr, BYTE length ) {
2217 ; -----------------------------------------
2218 ; function mac_eeprom_read
2219 ; -----------------------------------------
0370 2220 _mac_eeprom_read:
0370 AA 82 2221 mov r2,dpl
0372 AB 83 2222 mov r3,dph
2223 ; ../../include/ztex-eeprom.h:273: BYTE bytes = 0,i;
0374 7C 00 2224 mov r4,#0x00
2225 ; ../../include/ztex-eeprom.h:275: if ( length == 0 )
0376 E5*09 2226 mov a,_mac_eeprom_read_PARM_3
2227 ; ../../include/ztex-eeprom.h:276: return 0;
0378 70 03 2228 jnz 00102$
037A F5 82 2229 mov dpl,a
037C 22 2230 ret
037D 2231 00102$:
2232 ; ../../include/ztex-eeprom.h:278: if ( eeprom_select(EEPROM_MAC_ADDR, 100,0) )
037D 75*00 64 2233 mov _eeprom_select_PARM_2,#0x64
0380 75*01 00 2234 mov _eeprom_select_PARM_3,#0x00
0383 75 82 A6 2235 mov dpl,#0xA6
0386 C0 02 2236 push ar2
0388 C0 03 2237 push ar3
038A C0 04 2238 push ar4
038C 12s00rE2 2239 lcall _eeprom_select
038F E5 82 2240 mov a,dpl
0391 D0 04 2241 pop ar4
0393 D0 03 2242 pop ar3
0395 D0 02 2243 pop ar2
0397 60 03 2244 jz 00131$
0399 02s04r5A 2245 ljmp 00115$
039C 2246 00131$:
2247 ; ../../include/ztex-eeprom.h:281: I2DAT = addr; // write address
039C 90 E6 79 2248 mov dptr,#_I2DAT
039F E5*08 2249 mov a,_mac_eeprom_read_PARM_2
03A1 F0 2250 movx @dptr,a
2251 ; ../../include/ztex-eeprom.h:282: if ( i2c_waitWrite() ) goto mac_eeprom_read_end;
03A2 C0 02 2252 push ar2
03A4 C0 03 2253 push ar3
03A6 C0 04 2254 push ar4
03A8 12s00r58 2255 lcall _i2c_waitWrite
03AB E5 82 2256 mov a,dpl
03AD D0 04 2257 pop ar4
03AF D0 03 2258 pop ar3
03B1 D0 02 2259 pop ar2
03B3 60 03 2260 jz 00132$
03B5 02s04r5A 2261 ljmp 00115$
03B8 2262 00132$:
2263 ; ../../include/ztex-eeprom.h:283: I2CS |= bmBIT6;
03B8 90 E6 78 2264 mov dptr,#_I2CS
03BB E0 2265 movx a,@dptr
03BC 44 40 2266 orl a,#0x40
03BE F0 2267 movx @dptr,a
2268 ; ../../include/ztex-eeprom.h:284: i2c_waitStop();
03BF C0 02 2269 push ar2
03C1 C0 03 2270 push ar3
03C3 C0 04 2271 push ar4
03C5 12s00rC8 2272 lcall _i2c_waitStop
2273 ; ../../include/ztex-eeprom.h:286: I2CS |= bmBIT7; // start bit
03C8 90 E6 78 2274 mov dptr,#_I2CS
03CB E0 2275 movx a,@dptr
03CC 44 80 2276 orl a,#0x80
03CE F0 2277 movx @dptr,a
2278 ; ../../include/ztex-eeprom.h:287: i2c_waitStart();
03CF 12s00rAE 2279 lcall _i2c_waitStart
2280 ; ../../include/ztex-eeprom.h:288: I2DAT = EEPROM_MAC_ADDR | 1; // select device for reading
03D2 90 E6 79 2281 mov dptr,#_I2DAT
03D5 74 A7 2282 mov a,#0xA7
03D7 F0 2283 movx @dptr,a
2284 ; ../../include/ztex-eeprom.h:289: if ( i2c_waitWrite() ) goto mac_eeprom_read_end;
03D8 12s00r58 2285 lcall _i2c_waitWrite
03DB E5 82 2286 mov a,dpl
03DD D0 04 2287 pop ar4
03DF D0 03 2288 pop ar3
03E1 D0 02 2289 pop ar2
03E3 70 75 2290 jnz 00115$
2291 ; ../../include/ztex-eeprom.h:291: *buf = I2DAT; // dummy read
03E5 90 E6 79 2292 mov dptr,#_I2DAT
03E8 E0 2293 movx a,@dptr
03E9 8A 82 2294 mov dpl,r2
03EB 8B 83 2295 mov dph,r3
03ED F0 2296 movx @dptr,a
2297 ; ../../include/ztex-eeprom.h:292: if ( i2c_waitRead()) goto mac_eeprom_read_end;
03EE C0 02 2298 push ar2
03F0 C0 03 2299 push ar3
03F2 C0 04 2300 push ar4
03F4 12s00r85 2301 lcall _i2c_waitRead
03F7 E5 82 2302 mov a,dpl
03F9 D0 04 2303 pop ar4
03FB D0 03 2304 pop ar3
03FD D0 02 2305 pop ar2
03FF 70 59 2306 jnz 00115$
0401 FD 2307 mov r5,a
0402 2308 00116$:
2309 ; ../../include/ztex-eeprom.h:293: for (; bytes<length; bytes++ ) {
0402 C3 2310 clr c
0403 ED 2311 mov a,r5
0404 95*09 2312 subb a,_mac_eeprom_read_PARM_3
0406 50 2A 2313 jnc 00119$
2314 ; ../../include/ztex-eeprom.h:294: *buf = I2DAT; // read data
0408 90 E6 79 2315 mov dptr,#_I2DAT
040B E0 2316 movx a,@dptr
040C 8A 82 2317 mov dpl,r2
040E 8B 83 2318 mov dph,r3
0410 F0 2319 movx @dptr,a
0411 A3 2320 inc dptr
0412 AA 82 2321 mov r2,dpl
0414 AB 83 2322 mov r3,dph
2323 ; ../../include/ztex-eeprom.h:295: buf++;
2324 ; ../../include/ztex-eeprom.h:296: if ( i2c_waitRead()) goto mac_eeprom_read_end;
0416 C0 02 2325 push ar2
0418 C0 03 2326 push ar3
041A C0 04 2327 push ar4
041C C0 05 2328 push ar5
041E 12s00r85 2329 lcall _i2c_waitRead
0421 E5 82 2330 mov a,dpl
0423 D0 05 2331 pop ar5
0425 D0 04 2332 pop ar4
0427 D0 03 2333 pop ar3
0429 D0 02 2334 pop ar2
042B 70 2D 2335 jnz 00115$
2336 ; ../../include/ztex-eeprom.h:293: for (; bytes<length; bytes++ ) {
042D 0D 2337 inc r5
042E 8D 04 2338 mov ar4,r5
0430 80 D0 2339 sjmp 00116$
0432 2340 00119$:
2341 ; ../../include/ztex-eeprom.h:299: I2CS |= bmBIT5; // no ACK
0432 90 E6 78 2342 mov dptr,#_I2CS
0435 E0 2343 movx a,@dptr
0436 44 20 2344 orl a,#0x20
0438 F0 2345 movx @dptr,a
2346 ; ../../include/ztex-eeprom.h:300: i = I2DAT; // dummy read
0439 90 E6 79 2347 mov dptr,#_I2DAT
043C E0 2348 movx a,@dptr
2349 ; ../../include/ztex-eeprom.h:301: if ( i2c_waitRead()) goto mac_eeprom_read_end;
043D C0 04 2350 push ar4
043F 12s00r85 2351 lcall _i2c_waitRead
0442 E5 82 2352 mov a,dpl
0444 D0 04 2353 pop ar4
0446 70 12 2354 jnz 00115$
2355 ; ../../include/ztex-eeprom.h:303: I2CS |= bmBIT6; // stop bit
0448 90 E6 78 2356 mov dptr,#_I2CS
044B E0 2357 movx a,@dptr
044C 44 40 2358 orl a,#0x40
044E F0 2359 movx @dptr,a
2360 ; ../../include/ztex-eeprom.h:304: i = I2DAT; // dummy read
044F 90 E6 79 2361 mov dptr,#_I2DAT
0452 E0 2362 movx a,@dptr
2363 ; ../../include/ztex-eeprom.h:305: i2c_waitStop();
0453 C0 04 2364 push ar4
0455 12s00rC8 2365 lcall _i2c_waitStop
0458 D0 04 2366 pop ar4
2367 ; ../../include/ztex-eeprom.h:307: mac_eeprom_read_end:
045A 2368 00115$:
2369 ; ../../include/ztex-eeprom.h:308: return bytes;
045A 8C 82 2370 mov dpl,r4
045C 22 2371 ret
2372 ;------------------------------------------------------------
2373 ;Allocation info for local variables in function 'mac_eeprom_write'
2374 ;------------------------------------------------------------
2375 ;addr Allocated with name '_mac_eeprom_write_PARM_2'
2376 ;length Allocated with name '_mac_eeprom_write_PARM_3'
2377 ;buf Allocated to registers r2 r3
2378 ;bytes Allocated to registers r4
2379 ;------------------------------------------------------------
2380 ; ../../include/ztex-eeprom.h:317: BYTE mac_eeprom_write ( __xdata BYTE *buf, BYTE addr, BYTE length ) {
2381 ; -----------------------------------------
2382 ; function mac_eeprom_write
2383 ; -----------------------------------------
045D 2384 _mac_eeprom_write:
045D AA 82 2385 mov r2,dpl
045F AB 83 2386 mov r3,dph
2387 ; ../../include/ztex-eeprom.h:318: BYTE bytes = 0;
0461 7C 00 2388 mov r4,#0x00
2389 ; ../../include/ztex-eeprom.h:320: if ( length == 0 )
0463 E5*0B 2390 mov a,_mac_eeprom_write_PARM_3
2391 ; ../../include/ztex-eeprom.h:321: return 0;
0465 70 03 2392 jnz 00102$
0467 F5 82 2393 mov dpl,a
0469 22 2394 ret
046A 2395 00102$:
2396 ; ../../include/ztex-eeprom.h:323: if ( eeprom_select(EEPROM_MAC_ADDR, 100,0) )
046A 75*00 64 2397 mov _eeprom_select_PARM_2,#0x64
046D 75*01 00 2398 mov _eeprom_select_PARM_3,#0x00
0470 75 82 A6 2399 mov dpl,#0xA6
0473 C0 02 2400 push ar2
0475 C0 03 2401 push ar3
0477 C0 04 2402 push ar4
0479 12s00rE2 2403 lcall _eeprom_select
047C E5 82 2404 mov a,dpl
047E D0 04 2405 pop ar4
0480 D0 03 2406 pop ar3
0482 D0 02 2407 pop ar2
0484 60 03 2408 jz 00132$
0486 02s05r4C 2409 ljmp 00119$
0489 2410 00132$:
2411 ; ../../include/ztex-eeprom.h:326: I2DAT = addr; // write address
0489 90 E6 79 2412 mov dptr,#_I2DAT
048C E5*0A 2413 mov a,_mac_eeprom_write_PARM_2
048E F0 2414 movx @dptr,a
2415 ; ../../include/ztex-eeprom.h:327: if ( i2c_waitWrite() ) goto mac_eeprom_write_end;
048F C0 02 2416 push ar2
0491 C0 03 2417 push ar3
0493 C0 04 2418 push ar4
0495 12s00r58 2419 lcall _i2c_waitWrite
0498 E5 82 2420 mov a,dpl
049A D0 04 2421 pop ar4
049C D0 03 2422 pop ar3
049E D0 02 2423 pop ar2
04A0 60 03 2424 jz 00133$
04A2 02s05r4C 2425 ljmp 00119$
04A5 2426 00133$:
2427 ; ../../include/ztex-eeprom.h:329: while ( bytes<length ) {
04A5 AD*0A 2428 mov r5,_mac_eeprom_write_PARM_2
04A7 7E 00 2429 mov r6,#0x00
04A9 2430 00116$:
04A9 C3 2431 clr c
04AA EE 2432 mov a,r6
04AB 95*0B 2433 subb a,_mac_eeprom_write_PARM_3
04AD 40 03 2434 jc 00134$
04AF 02s05r3E 2435 ljmp 00118$
04B2 2436 00134$:
2437 ; ../../include/ztex-eeprom.h:330: I2DAT = *buf; // write data
04B2 8A 82 2438 mov dpl,r2
04B4 8B 83 2439 mov dph,r3
04B6 E0 2440 movx a,@dptr
04B7 FF 2441 mov r7,a
04B8 A3 2442 inc dptr
04B9 AA 82 2443 mov r2,dpl
04BB AB 83 2444 mov r3,dph
04BD 90 E6 79 2445 mov dptr,#_I2DAT
04C0 EF 2446 mov a,r7
04C1 F0 2447 movx @dptr,a
2448 ; ../../include/ztex-eeprom.h:331: buf++;
2449 ; ../../include/ztex-eeprom.h:332: if ( i2c_waitWrite() ) goto mac_eeprom_write_end;
04C2 C0 02 2450 push ar2
04C4 C0 03 2451 push ar3
04C6 C0 04 2452 push ar4
04C8 C0 05 2453 push ar5
04CA C0 06 2454 push ar6
04CC 12s00r58 2455 lcall _i2c_waitWrite
04CF E5 82 2456 mov a,dpl
04D1 D0 06 2457 pop ar6
04D3 D0 05 2458 pop ar5
04D5 D0 04 2459 pop ar4
04D7 D0 03 2460 pop ar3
04D9 D0 02 2461 pop ar2
04DB 70 6F 2462 jnz 00119$
2463 ; ../../include/ztex-eeprom.h:334: addr++;
04DD 0D 2464 inc r5
04DE 8D*0A 2465 mov _mac_eeprom_write_PARM_2,r5
2466 ; ../../include/ztex-eeprom.h:335: bytes++;
04E0 0E 2467 inc r6
04E1 8E 04 2468 mov ar4,r6
2469 ; ../../include/ztex-eeprom.h:336: if ( ( (addr & 8) == 0 ) && ( bytes<length ) ) {
04E3 ED 2470 mov a,r5
04E4 20 E3 C2 2471 jb acc.3,00116$
04E7 C3 2472 clr c
04E8 EE 2473 mov a,r6
04E9 95*0B 2474 subb a,_mac_eeprom_write_PARM_3
04EB 50 BC 2475 jnc 00116$
2476 ; ../../include/ztex-eeprom.h:337: I2CS |= bmBIT6; // stop bit
04ED 90 E6 78 2477 mov dptr,#_I2CS
04F0 E0 2478 movx a,@dptr
04F1 44 40 2479 orl a,#0x40
04F3 F0 2480 movx @dptr,a
2481 ; ../../include/ztex-eeprom.h:338: i2c_waitStop();
04F4 C0 02 2482 push ar2
04F6 C0 03 2483 push ar3
04F8 C0 04 2484 push ar4
04FA C0 05 2485 push ar5
04FC C0 06 2486 push ar6
04FE 12s00rC8 2487 lcall _i2c_waitStop
2488 ; ../../include/ztex-eeprom.h:340: if ( eeprom_select(EEPROM_MAC_ADDR, 100,0) )
0501 75*00 64 2489 mov _eeprom_select_PARM_2,#0x64
0504 75*01 00 2490 mov _eeprom_select_PARM_3,#0x00
0507 75 82 A6 2491 mov dpl,#0xA6
050A 12s00rE2 2492 lcall _eeprom_select
050D E5 82 2493 mov a,dpl
050F D0 06 2494 pop ar6
0511 D0 05 2495 pop ar5
0513 D0 04 2496 pop ar4
0515 D0 03 2497 pop ar3
0517 D0 02 2498 pop ar2
0519 70 31 2499 jnz 00119$
2500 ; ../../include/ztex-eeprom.h:343: I2DAT = addr; // write address
051B 90 E6 79 2501 mov dptr,#_I2DAT
051E ED 2502 mov a,r5
051F F0 2503 movx @dptr,a
2504 ; ../../include/ztex-eeprom.h:344: if ( i2c_waitWrite() ) goto mac_eeprom_write_end;
0520 C0 02 2505 push ar2
0522 C0 03 2506 push ar3
0524 C0 04 2507 push ar4
0526 C0 05 2508 push ar5
0528 C0 06 2509 push ar6
052A 12s00r58 2510 lcall _i2c_waitWrite
052D E5 82 2511 mov a,dpl
052F D0 06 2512 pop ar6
0531 D0 05 2513 pop ar5
0533 D0 04 2514 pop ar4
0535 D0 03 2515 pop ar3
0537 D0 02 2516 pop ar2
0539 70 11 2517 jnz 00119$
053B 02s04rA9 2518 ljmp 00116$
053E 2519 00118$:
2520 ; ../../include/ztex-eeprom.h:347: I2CS |= bmBIT6; // stop bit
053E 90 E6 78 2521 mov dptr,#_I2CS
0541 E0 2522 movx a,@dptr
0542 44 40 2523 orl a,#0x40
0544 F0 2524 movx @dptr,a
2525 ; ../../include/ztex-eeprom.h:348: i2c_waitStop();
0545 C0 04 2526 push ar4
0547 12s00rC8 2527 lcall _i2c_waitStop
054A D0 04 2528 pop ar4
2529 ; ../../include/ztex-eeprom.h:350: mac_eeprom_write_end:
054C 2530 00119$:
2531 ; ../../include/ztex-eeprom.h:351: mac_eeprom_addr = addr;
054C 90s00r05 2532 mov dptr,#_mac_eeprom_addr
054F E5*0A 2533 mov a,_mac_eeprom_write_PARM_2
0551 F0 2534 movx @dptr,a
2535 ; ../../include/ztex-eeprom.h:352: return bytes;
0552 8C 82 2536 mov dpl,r4
0554 22 2537 ret
2538 ;------------------------------------------------------------
2539 ;Allocation info for local variables in function 'mac_eeprom_read_ep0'
2540 ;------------------------------------------------------------
2541 ;i Allocated to registers r3
2542 ;b Allocated to registers r2
2543 ;------------------------------------------------------------
2544 ; ../../include/ztex-eeprom.h:358: BYTE mac_eeprom_read_ep0 () {
2545 ; -----------------------------------------
2546 ; function mac_eeprom_read_ep0
2547 ; -----------------------------------------
0555 2548 _mac_eeprom_read_ep0:
2549 ; ../../include/ztex-eeprom.h:360: b = ep0_payload_transfer;
0555 90s00r02 2550 mov dptr,#_ep0_payload_transfer
0558 E0 2551 movx a,@dptr
0559 FA 2552 mov r2,a
2553 ; ../../include/ztex-eeprom.h:361: i = mac_eeprom_read(EP0BUF, mac_eeprom_addr, b);
055A 90s00r05 2554 mov dptr,#_mac_eeprom_addr
055D E0 2555 movx a,@dptr
055E F5*08 2556 mov _mac_eeprom_read_PARM_2,a
0560 8A*09 2557 mov _mac_eeprom_read_PARM_3,r2
0562 90 E7 40 2558 mov dptr,#_EP0BUF
0565 C0 02 2559 push ar2
0567 12s03r70 2560 lcall _mac_eeprom_read
056A AB 82 2561 mov r3,dpl
056C D0 02 2562 pop ar2
2563 ; ../../include/ztex-eeprom.h:362: mac_eeprom_addr += b;
056E 90s00r05 2564 mov dptr,#_mac_eeprom_addr
0571 E0 2565 movx a,@dptr
0572 FC 2566 mov r4,a
0573 EA 2567 mov a,r2
0574 2C 2568 add a,r4
0575 F0 2569 movx @dptr,a
2570 ; ../../include/ztex-eeprom.h:363: return i;
0576 8B 82 2571 mov dpl,r3
0578 22 2572 ret
2573 ;------------------------------------------------------------
2574 ;Allocation info for local variables in function 'spi_clocks'
2575 ;------------------------------------------------------------
2576 ;c Allocated to registers
2577 ;------------------------------------------------------------
2578 ; ../../include/ztex-flash2.h:98: void spi_clocks (BYTE c) {
2579 ; -----------------------------------------
2580 ; function spi_clocks
2581 ; -----------------------------------------
0579 2582 _spi_clocks:
2583 ; ../../include/ztex-flash2.h:110: }
2584
0579 AA 82 2585 mov r2,dpl
057B 2586 010014$:
057B D2 80 2587 setb _IOA0
057D 00 2588 nop
057E 00 2589 nop
057F 00 2590 nop
0580 C2 80 2591 clr _IOA0
0582 DA F7 2592 djnz r2,010014$
2593 ; # 109 "../../include/ztex-flash2.h"
0584 22 2594 ret
2595 ;------------------------------------------------------------
2596 ;Allocation info for local variables in function 'flash_read_byte'
2597 ;------------------------------------------------------------
2598 ;------------------------------------------------------------
2599 ; ../../include/ztex-flash2.h:118: __asm
2600 ; -----------------------------------------
2601 ; function flash_read_byte
2602 ; -----------------------------------------
0585 2603 _flash_read_byte:
2604 ; ../../include/ztex-flash2.h:169: void flash_read(__xdata BYTE *buf, BYTE len) {
2605
2606
0585 A2 A0 2607 mov c,_IOC0
2608 ; # 121 "../../include/ztex-flash2.h"
0587 D2 80 2609 setb _IOA0
0589 33 2610 rlc a
058A C2 80 2611 clr _IOA0
2612
058C A2 A0 2613 mov c,_IOC0
2614 ; # 126 "../../include/ztex-flash2.h"
058E D2 80 2615 setb _IOA0
0590 33 2616 rlc a
0591 C2 80 2617 clr _IOA0
2618
0593 A2 A0 2619 mov c,_IOC0
2620 ; # 131 "../../include/ztex-flash2.h"
0595 D2 80 2621 setb _IOA0
0597 33 2622 rlc a
0598 C2 80 2623 clr _IOA0
2624
059A A2 A0 2625 mov c,_IOC0
2626 ; # 136 "../../include/ztex-flash2.h"
059C D2 80 2627 setb _IOA0
059E 33 2628 rlc a
059F C2 80 2629 clr _IOA0
2630
05A1 A2 A0 2631 mov c,_IOC0
2632 ; # 141 "../../include/ztex-flash2.h"
05A3 D2 80 2633 setb _IOA0
05A5 33 2634 rlc a
05A6 C2 80 2635 clr _IOA0
2636
05A8 A2 A0 2637 mov c,_IOC0
2638 ; # 146 "../../include/ztex-flash2.h"
05AA D2 80 2639 setb _IOA0
05AC 33 2640 rlc a
05AD C2 80 2641 clr _IOA0
2642
05AF A2 A0 2643 mov c,_IOC0
2644 ; # 151 "../../include/ztex-flash2.h"
05B1 D2 80 2645 setb _IOA0
05B3 33 2646 rlc a
05B4 C2 80 2647 clr _IOA0
2648
05B6 A2 A0 2649 mov c,_IOC0
2650 ; # 156 "../../include/ztex-flash2.h"
05B8 D2 80 2651 setb _IOA0
05BA 33 2652 rlc a
05BB C2 80 2653 clr _IOA0
05BD F5 82 2654 mov dpl,a
05BF 22 2655 ret
2656 ; ../../include/ztex-flash2.h:170: *buf; // this avoids stupid warnings
05C0 75 82 00 2657 mov dpl,#0x00
05C3 22 2658 ret
2659 ;------------------------------------------------------------
2660 ;Allocation info for local variables in function 'flash_read'
2661 ;------------------------------------------------------------
2662 ;len Allocated with name '_flash_read_PARM_2'
2663 ;buf Allocated to registers
2664 ;------------------------------------------------------------
2665 ; ../../include/ztex-flash2.h:169: void flash_read(__xdata BYTE *buf, BYTE len) {
2666 ; -----------------------------------------
2667 ; function flash_read
2668 ; -----------------------------------------
05C4 2669 _flash_read:
2670 ; ../../include/ztex-flash2.h:228: __asm
2671
2672 ; # 173 "../../include/ztex-flash2.h"
05C4 AA*00 2673 mov r2,_flash_read_PARM_2
05C6 2674 010012$:
2675
05C6 A2 A0 2676 mov c,_IOC0
2677 ; # 177 "../../include/ztex-flash2.h"
05C8 D2 80 2678 setb _IOA0
05CA 33 2679 rlc a
05CB C2 80 2680 clr _IOA0
2681
05CD A2 A0 2682 mov c,_IOC0
2683 ; # 182 "../../include/ztex-flash2.h"
05CF D2 80 2684 setb _IOA0
05D1 33 2685 rlc a
05D2 C2 80 2686 clr _IOA0
2687
05D4 A2 A0 2688 mov c,_IOC0
2689 ; # 187 "../../include/ztex-flash2.h"
05D6 D2 80 2690 setb _IOA0
05D8 33 2691 rlc a
05D9 C2 80 2692 clr _IOA0
2693
05DB A2 A0 2694 mov c,_IOC0
2695 ; # 192 "../../include/ztex-flash2.h"
05DD D2 80 2696 setb _IOA0
05DF 33 2697 rlc a
05E0 C2 80 2698 clr _IOA0
2699
05E2 A2 A0 2700 mov c,_IOC0
2701 ; # 197 "../../include/ztex-flash2.h"
05E4 D2 80 2702 setb _IOA0
05E6 33 2703 rlc a
05E7 C2 80 2704 clr _IOA0
2705
05E9 A2 A0 2706 mov c,_IOC0
2707 ; # 202 "../../include/ztex-flash2.h"
05EB D2 80 2708 setb _IOA0
05ED 33 2709 rlc a
05EE C2 80 2710 clr _IOA0
2711
05F0 A2 A0 2712 mov c,_IOC0
2713 ; # 207 "../../include/ztex-flash2.h"
05F2 D2 80 2714 setb _IOA0
05F4 33 2715 rlc a
05F5 C2 80 2716 clr _IOA0
2717
05F7 A2 A0 2718 mov c,_IOC0
2719 ; # 212 "../../include/ztex-flash2.h"
05F9 D2 80 2720 setb _IOA0
05FB 33 2721 rlc a
05FC C2 80 2722 clr _IOA0
2723
05FE F0 2724 movx @dptr,a
05FF A3 2725 inc dptr
0600 DA C4 2726 djnz r2,010012$
0602 22 2727 ret
2728 ;------------------------------------------------------------
2729 ;Allocation info for local variables in function 'spi_write_byte'
2730 ;------------------------------------------------------------
2731 ;b Allocated to registers
2732 ;------------------------------------------------------------
2733 ; ../../include/ztex-flash2.h:235: rlc a // 6
2734 ; -----------------------------------------
2735 ; function spi_write_byte
2736 ; -----------------------------------------
0603 2737 _spi_write_byte:
2738 ; ../../include/ztex-flash2.h:280: *buf; // this avoids stupid warnings
2739
2740 ; # 230 "../../include/ztex-flash2.h"
0603 E5 82 2741 mov a,dpl
0605 33 2742 rlc a
2743 ; # 232 "../../include/ztex-flash2.h"
2744
0606 92 81 2745 mov _IOA1,c
0608 D2 80 2746 setb _IOA0
060A 33 2747 rlc a
2748 ; # 236 "../../include/ztex-flash2.h"
060B C2 80 2749 clr _IOA0
2750
060D 92 81 2751 mov _IOA1,c
060F D2 80 2752 setb _IOA0
0611 33 2753 rlc a
2754 ; # 241 "../../include/ztex-flash2.h"
0612 C2 80 2755 clr _IOA0
2756
0614 92 81 2757 mov _IOA1,c
0616 D2 80 2758 setb _IOA0
0618 33 2759 rlc a
2760 ; # 246 "../../include/ztex-flash2.h"
0619 C2 80 2761 clr _IOA0
2762
061B 92 81 2763 mov _IOA1,c
061D D2 80 2764 setb _IOA0
061F 33 2765 rlc a
2766 ; # 251 "../../include/ztex-flash2.h"
0620 C2 80 2767 clr _IOA0
2768
0622 92 81 2769 mov _IOA1,c
0624 D2 80 2770 setb _IOA0
0626 33 2771 rlc a
2772 ; # 256 "../../include/ztex-flash2.h"
0627 C2 80 2773 clr _IOA0
2774
0629 92 81 2775 mov _IOA1,c
062B D2 80 2776 setb _IOA0
062D 33 2777 rlc a
2778 ; # 261 "../../include/ztex-flash2.h"
062E C2 80 2779 clr _IOA0
2780
0630 92 81 2781 mov _IOA1,c
0632 D2 80 2782 setb _IOA0
0634 33 2783 rlc a
2784 ; # 266 "../../include/ztex-flash2.h"
0635 C2 80 2785 clr _IOA0
2786
0637 92 81 2787 mov _IOA1,c
0639 D2 80 2788 setb _IOA0
063B 00 2789 nop
063C C2 80 2790 clr _IOA0
063E 22 2791 ret
2792 ;------------------------------------------------------------
2793 ;Allocation info for local variables in function 'spi_write'
2794 ;------------------------------------------------------------
2795 ;len Allocated with name '_spi_write_PARM_2'
2796 ;buf Allocated to registers
2797 ;------------------------------------------------------------
2798 ; ../../include/ztex-flash2.h:279: void spi_write(__xdata BYTE *buf, BYTE len) {
2799 ; -----------------------------------------
2800 ; function spi_write
2801 ; -----------------------------------------
063F 2802 _spi_write:
2803 ; ../../include/ztex-flash2.h:339: void spi_select() {
2804
2805 ; # 283 "../../include/ztex-flash2.h"
063F AA*00 2806 mov r2,_flash_read_PARM_2
0641 2807 010013$:
2808 ; # 286 "../../include/ztex-flash2.h"
0641 E0 2809 movx a,@dptr
0642 33 2810 rlc a
2811 ; # 288 "../../include/ztex-flash2.h"
2812
0643 92 81 2813 mov _IOA1,c
0645 D2 80 2814 setb _IOA0
0647 33 2815 rlc a
2816 ; # 292 "../../include/ztex-flash2.h"
0648 C2 80 2817 clr _IOA0
2818
064A 92 81 2819 mov _IOA1,c
064C D2 80 2820 setb _IOA0
064E 33 2821 rlc a
2822 ; # 297 "../../include/ztex-flash2.h"
064F C2 80 2823 clr _IOA0
2824
0651 92 81 2825 mov _IOA1,c
0653 D2 80 2826 setb _IOA0
0655 33 2827 rlc a
2828 ; # 302 "../../include/ztex-flash2.h"
0656 C2 80 2829 clr _IOA0
2830
0658 92 81 2831 mov _IOA1,c
065A D2 80 2832 setb _IOA0
065C 33 2833 rlc a
2834 ; # 307 "../../include/ztex-flash2.h"
065D C2 80 2835 clr _IOA0
2836
065F 92 81 2837 mov _IOA1,c
0661 D2 80 2838 setb _IOA0
0663 33 2839 rlc a
2840 ; # 312 "../../include/ztex-flash2.h"
0664 C2 80 2841 clr _IOA0
2842
0666 92 81 2843 mov _IOA1,c
0668 D2 80 2844 setb _IOA0
066A 33 2845 rlc a
2846 ; # 317 "../../include/ztex-flash2.h"
066B C2 80 2847 clr _IOA0
2848
066D 92 81 2849 mov _IOA1,c
066F D2 80 2850 setb _IOA0
0671 33 2851 rlc a
2852 ; # 322 "../../include/ztex-flash2.h"
0672 C2 80 2853 clr _IOA0
2854
0674 92 81 2855 mov _IOA1,c
0676 D2 80 2856 setb _IOA0
0678 A3 2857 inc dptr
0679 C2 80 2858 clr _IOA0
2859
067B DA C4 2860 djnz r2,010013$
067D 22 2861 ret
2862 ;------------------------------------------------------------
2863 ;Allocation info for local variables in function 'spi_select'
2864 ;------------------------------------------------------------
2865 ;------------------------------------------------------------
2866 ; ../../include/ztex-flash2.h:348: // de-select the flash (CS)
2867 ; -----------------------------------------
2868 ; function spi_select
2869 ; -----------------------------------------
067E 2870 _spi_select:
2871 ; ../../include/ztex-flash2.h:349: void spi_deselect() {
067E D2 83 2872 setb _IOA3
2873 ; ../../include/ztex-flash2.h:350: SPI_CS = 1; // CS = 1;
0680 75 82 08 2874 mov dpl,#0x08
0683 12s05r79 2875 lcall _spi_clocks
2876 ; ../../include/ztex-flash2.h:342: SPI_CS = 0;
0686 C2 83 2877 clr _IOA3
0688 22 2878 ret
2879 ;------------------------------------------------------------
2880 ;Allocation info for local variables in function 'spi_deselect'
2881 ;------------------------------------------------------------
2882 ;------------------------------------------------------------
2883 ; ../../include/ztex-flash2.h:349: void spi_deselect() {
2884 ; -----------------------------------------
2885 ; function spi_deselect
2886 ; -----------------------------------------
0689 2887 _spi_deselect:
2888 ; ../../include/ztex-flash2.h:350: SPI_CS = 1; // CS = 1;
0689 D2 83 2889 setb _IOA3
2890 ; ../../include/ztex-flash2.h:351: spi_clocks(8); // 8 dummy clocks to finish a previous command
068B 75 82 08 2891 mov dpl,#0x08
068E 02s05r79 2892 ljmp _spi_clocks
2893 ;------------------------------------------------------------
2894 ;Allocation info for local variables in function 'spi_wait'
2895 ;------------------------------------------------------------
2896 ;i Allocated to registers r2 r3
2897 ;------------------------------------------------------------
2898 ; ../../include/ztex-flash2.h:371: BYTE spi_wait() {
2899 ; -----------------------------------------
2900 ; function spi_wait
2901 ; -----------------------------------------
0691 2902 _spi_wait:
2903 ; ../../include/ztex-flash2.h:359: spi_last_cmd = $0;
0691 90s00r13 2904 mov dptr,#_spi_last_cmd
0694 74 05 2905 mov a,#0x05
0696 F0 2906 movx @dptr,a
2907 ; ../../include/ztex-flash2.h:360: spi_select(); // select
0697 12s06r7E 2908 lcall _spi_select
2909 ; ../../include/ztex-flash2.h:361: spi_write_byte($0); // CMD 90h
069A 75 82 05 2910 mov dpl,#0x05
069D 12s06r03 2911 lcall _spi_write_byte
2912 ; ../../include/ztex-flash2.h:375: for (i=0; (flash_read_byte() & bmBIT0) && i<65535; i++ ) {
06A0 7A 00 2913 mov r2,#0x00
06A2 7B 00 2914 mov r3,#0x00
06A4 2915 00102$:
06A4 C0 02 2916 push ar2
06A6 C0 03 2917 push ar3
06A8 12s05r85 2918 lcall _flash_read_byte
06AB E5 82 2919 mov a,dpl
06AD D0 03 2920 pop ar3
06AF D0 02 2921 pop ar2
06B1 30 E0 2E 2922 jnb acc.0,00105$
06B4 8A 04 2923 mov ar4,r2
06B6 8B 05 2924 mov ar5,r3
06B8 7E 00 2925 mov r6,#0x00
06BA 7F 00 2926 mov r7,#0x00
06BC C3 2927 clr c
06BD EC 2928 mov a,r4
06BE 94 FF 2929 subb a,#0xFF
06C0 ED 2930 mov a,r5
06C1 94 FF 2931 subb a,#0xFF
06C3 EE 2932 mov a,r6
06C4 94 00 2933 subb a,#0x00
06C6 EF 2934 mov a,r7
06C7 64 80 2935 xrl a,#0x80
06C9 94 80 2936 subb a,#0x80
06CB 50 15 2937 jnc 00105$
2938 ; ../../include/ztex-flash2.h:376: spi_clocks(0); // 256 dummy clocks
06CD 75 82 00 2939 mov dpl,#0x00
06D0 C0 02 2940 push ar2
06D2 C0 03 2941 push ar3
06D4 12s05r79 2942 lcall _spi_clocks
06D7 D0 03 2943 pop ar3
06D9 D0 02 2944 pop ar2
2945 ; ../../include/ztex-flash2.h:375: for (i=0; (flash_read_byte() & bmBIT0) && i<65535; i++ ) {
06DB 0A 2946 inc r2
06DC BA 00 C5 2947 cjne r2,#0x00,00102$
06DF 0B 2948 inc r3
06E0 80 C2 2949 sjmp 00102$
06E2 2950 00105$:
2951 ; ../../include/ztex-flash2.h:379: flash_ec = flash_read_byte() & bmBIT0 ? FLASH_EC_TIMEOUT : 0;
06E2 12s05r85 2952 lcall _flash_read_byte
06E5 E5 82 2953 mov a,dpl
06E7 30 E0 04 2954 jnb acc.0,00108$
06EA 7A 02 2955 mov r2,#0x02
06EC 80 02 2956 sjmp 00109$
06EE 2957 00108$:
06EE 7A 00 2958 mov r2,#0x00
06F0 2959 00109$:
06F0 90s00r0E 2960 mov dptr,#_flash_ec
06F3 EA 2961 mov a,r2
06F4 F0 2962 movx @dptr,a
2963 ; ../../include/ztex-flash2.h:380: spi_deselect();
06F5 12s06r89 2964 lcall _spi_deselect
2965 ; ../../include/ztex-flash2.h:381: return flash_ec;
06F8 90s00r0E 2966 mov dptr,#_flash_ec
06FB E0 2967 movx a,@dptr
06FC F5 82 2968 mov dpl,a
06FE 22 2969 ret
2970 ;------------------------------------------------------------
2971 ;Allocation info for local variables in function 'flash_read_init'
2972 ;------------------------------------------------------------
2973 ;s Allocated to registers r2 r3
2974 ;------------------------------------------------------------
2975 ; ../../include/ztex-flash2.h:391: BYTE flash_read_init(WORD s) {
2976 ; -----------------------------------------
2977 ; function flash_read_init
2978 ; -----------------------------------------
06FF 2979 _flash_read_init:
06FF AA 82 2980 mov r2,dpl
0701 AB 83 2981 mov r3,dph
2982 ; ../../include/ztex-flash2.h:396: OESPI_OPORT &= ~bmBITSPI_BIT_DO;
0703 20 83 0A 2983 jb _IOA3,00102$
2984 ; ../../include/ztex-flash2.h:393: flash_ec = FLASH_EC_PENDING;
0706 90s00r0E 2985 mov dptr,#_flash_ec
0709 74 04 2986 mov a,#0x04
070B F0 2987 movx @dptr,a
2988 ; ../../include/ztex-flash2.h:394: return FLASH_EC_PENDING; // we interrupted a pending Flash operation
070C 75 82 04 2989 mov dpl,#0x04
070F 22 2990 ret
0710 2991 00102$:
2992 ; ../../include/ztex-flash2.h:396: OESPI_OPORT &= ~bmBITSPI_BIT_DO;
0710 53 B4 FE 2993 anl _OEC,#0xFE
2994 ; ../../include/ztex-flash2.h:397: OESPI_PORT |= bmBITSPI_BIT_CS | bmBITSPI_BIT_DI | bmBITSPI_BIT_CLK;
0713 43 B2 0B 2995 orl _OEA,#0x0B
2996 ; ../../include/ztex-flash2.h:398: if ( spi_wait() ) {
0716 C0 02 2997 push ar2
0718 C0 03 2998 push ar3
071A 12s06r91 2999 lcall _spi_wait
071D E5 82 3000 mov a,dpl
071F D0 03 3001 pop ar3
0721 D0 02 3002 pop ar2
0723 60 07 3003 jz 00104$
3004 ; ../../include/ztex-flash2.h:399: return flash_ec;
0725 90s00r0E 3005 mov dptr,#_flash_ec
0728 E0 3006 movx a,@dptr
0729 F5 82 3007 mov dpl,a
072B 22 3008 ret
072C 3009 00104$:
3010 ; ../../include/ztex-flash2.h:402: s = s << ((BYTE)flash_sector_size - 8);
072C 90s00r08 3011 mov dptr,#_flash_sector_size
072F E0 3012 movx a,@dptr
0730 FC 3013 mov r4,a
0731 A3 3014 inc dptr
0732 E0 3015 movx a,@dptr
0733 7D 00 3016 mov r5,#0x00
0735 EC 3017 mov a,r4
0736 24 F8 3018 add a,#0xf8
0738 FC 3019 mov r4,a
0739 ED 3020 mov a,r5
073A 34 FF 3021 addc a,#0xff
073C FD 3022 mov r5,a
073D 8C F0 3023 mov b,r4
073F 05 F0 3024 inc b
0741 80 06 3025 sjmp 00112$
0743 3026 00111$:
0743 EA 3027 mov a,r2
0744 2A 3028 add a,r2
0745 FA 3029 mov r2,a
0746 EB 3030 mov a,r3
0747 33 3031 rlc a
0748 FB 3032 mov r3,a
0749 3033 00112$:
0749 D5 F0 F7 3034 djnz b,00111$
3035 ; ../../include/ztex-flash2.h:359: spi_last_cmd = $0;
074C 90s00r13 3036 mov dptr,#_spi_last_cmd
074F 74 0B 3037 mov a,#0x0B
0751 F0 3038 movx @dptr,a
3039 ; ../../include/ztex-flash2.h:360: spi_select(); // select
0752 C0 02 3040 push ar2
0754 C0 03 3041 push ar3
0756 12s06r7E 3042 lcall _spi_select
3043 ; ../../include/ztex-flash2.h:361: spi_write_byte($0); // CMD 90h
0759 75 82 0B 3044 mov dpl,#0x0B
075C 12s06r03 3045 lcall _spi_write_byte
075F D0 03 3046 pop ar3
3047 ; ../../include/ztex-flash2.h:363:
0761 8B 82 3048 mov dpl,r3
0763 C0 03 3049 push ar3
0765 12s06r03 3050 lcall _spi_write_byte
0768 D0 03 3051 pop ar3
076A D0 02 3052 pop ar2
3053 ; ../../include/ztex-flash2.h:405: spi_write_byte(s & 255);
076C 8A 82 3054 mov dpl,r2
076E 12s06r03 3055 lcall _spi_write_byte
3056 ; ../../include/ztex-flash2.h:406: spi_write_byte(0);
0771 75 82 00 3057 mov dpl,#0x00
0774 12s06r03 3058 lcall _spi_write_byte
3059 ; ../../include/ztex-flash2.h:407: spi_clocks(8); // 8 dummy clocks
0777 75 82 08 3060 mov dpl,#0x08
077A 12s05r79 3061 lcall _spi_clocks
3062 ; ../../include/ztex-flash2.h:408: return 0;
077D 75 82 00 3063 mov dpl,#0x00
0780 22 3064 ret
3065 ;------------------------------------------------------------
3066 ;Allocation info for local variables in function 'flash_read_next'
3067 ;------------------------------------------------------------
3068 ;------------------------------------------------------------
3069 ; ../../include/ztex-flash2.h:417: BYTE flash_read_next() {
3070 ; -----------------------------------------
3071 ; function flash_read_next
3072 ; -----------------------------------------
0781 3073 _flash_read_next:
3074 ; ../../include/ztex-flash2.h:418: return 0;
0781 75 82 00 3075 mov dpl,#0x00
0784 22 3076 ret
3077 ;------------------------------------------------------------
3078 ;Allocation info for local variables in function 'flash_read_finish'
3079 ;------------------------------------------------------------
3080 ;n Allocated to registers
3081 ;------------------------------------------------------------
3082 ; ../../include/ztex-flash2.h:428: void flash_read_finish(WORD n) {
3083 ; -----------------------------------------
3084 ; function flash_read_finish
3085 ; -----------------------------------------
0785 3086 _flash_read_finish:
3087 ; ../../include/ztex-flash2.h:430: spi_deselect();
0785 02s06r89 3088 ljmp _spi_deselect
3089 ;------------------------------------------------------------
3090 ;Allocation info for local variables in function 'spi_pp'
3091 ;------------------------------------------------------------
3092 ;------------------------------------------------------------
3093 ; ../../include/ztex-flash2.h:437: BYTE spi_pp () {
3094 ; -----------------------------------------
3095 ; function spi_pp
3096 ; -----------------------------------------
0788 3097 _spi_pp:
3098 ; ../../include/ztex-flash2.h:438: spi_deselect(); // finish previous write cmd
0788 12s06r89 3099 lcall _spi_deselect
3100 ; ../../include/ztex-flash2.h:440: spi_need_pp = 0;
078B 90s00r1B 3101 mov dptr,#_spi_need_pp
078E E4 3102 clr a
078F F0 3103 movx @dptr,a
3104 ; ../../include/ztex-flash2.h:442: if ( spi_wait() ) {
0790 12s06r91 3105 lcall _spi_wait
0793 E5 82 3106 mov a,dpl
0795 60 07 3107 jz 00102$
3108 ; ../../include/ztex-flash2.h:443: return flash_ec;
0797 90s00r0E 3109 mov dptr,#_flash_ec
079A E0 3110 movx a,@dptr
079B F5 82 3111 mov dpl,a
079D 22 3112 ret
079E 3113 00102$:
3114 ; ../../include/ztex-flash2.h:359: spi_last_cmd = $0;
079E 90s00r13 3115 mov dptr,#_spi_last_cmd
07A1 74 06 3116 mov a,#0x06
07A3 F0 3117 movx @dptr,a
3118 ; ../../include/ztex-flash2.h:360: spi_select(); // select
07A4 12s06r7E 3119 lcall _spi_select
3120 ; ../../include/ztex-flash2.h:361: spi_write_byte($0); // CMD 90h
07A7 75 82 06 3121 mov dpl,#0x06
07AA 12s06r03 3122 lcall _spi_write_byte
3123 ; ../../include/ztex-flash2.h:446: spi_deselect();
07AD 12s06r89 3124 lcall _spi_deselect
3125 ; ../../include/ztex-flash2.h:359: spi_last_cmd = $0;
07B0 90s00r13 3126 mov dptr,#_spi_last_cmd
07B3 74 02 3127 mov a,#0x02
07B5 F0 3128 movx @dptr,a
3129 ; ../../include/ztex-flash2.h:360: spi_select(); // select
07B6 12s06r7E 3130 lcall _spi_select
3131 ; ../../include/ztex-flash2.h:361: spi_write_byte($0); // CMD 90h
07B9 75 82 02 3132 mov dpl,#0x02
07BC 12s06r03 3133 lcall _spi_write_byte
3134 ; ../../include/ztex-flash2.h:363:
07BF 90s00r18 3135 mov dptr,#_spi_write_addr_hi
07C2 E0 3136 movx a,@dptr
07C3 A3 3137 inc dptr
07C4 E0 3138 movx a,@dptr
07C5 F5 82 3139 mov dpl,a
07C7 12s06r03 3140 lcall _spi_write_byte
3141 ; ../../include/ztex-flash2.h:450: spi_write_byte(spi_write_addr_hi & 255);
07CA 90s00r18 3142 mov dptr,#_spi_write_addr_hi
07CD E0 3143 movx a,@dptr
07CE FA 3144 mov r2,a
07CF A3 3145 inc dptr
07D0 E0 3146 movx a,@dptr
07D1 8A 82 3147 mov dpl,r2
07D3 12s06r03 3148 lcall _spi_write_byte
3149 ; ../../include/ztex-flash2.h:451: spi_write_byte(0);
07D6 75 82 00 3150 mov dpl,#0x00
07D9 12s06r03 3151 lcall _spi_write_byte
3152 ; ../../include/ztex-flash2.h:452: return 0;
07DC 75 82 00 3153 mov dpl,#0x00
07DF 22 3154 ret
3155 ;------------------------------------------------------------
3156 ;Allocation info for local variables in function 'flash_write_byte'
3157 ;------------------------------------------------------------
3158 ;b Allocated to registers r2
3159 ;------------------------------------------------------------
3160 ; ../../include/ztex-flash2.h:459: BYTE flash_write_byte (BYTE b) {
3161 ; -----------------------------------------
3162 ; function flash_write_byte
3163 ; -----------------------------------------
07E0 3164 _flash_write_byte:
07E0 AA 82 3165 mov r2,dpl
3166 ; ../../include/ztex-flash2.h:460: if ( spi_need_pp && spi_pp() ) return flash_ec;
07E2 90s00r1B 3167 mov dptr,#_spi_need_pp
07E5 E0 3168 movx a,@dptr
07E6 FB 3169 mov r3,a
07E7 60 12 3170 jz 00102$
07E9 C0 02 3171 push ar2
07EB 12s07r88 3172 lcall _spi_pp
07EE E5 82 3173 mov a,dpl
07F0 D0 02 3174 pop ar2
07F2 60 07 3175 jz 00102$
07F4 90s00r0E 3176 mov dptr,#_flash_ec
07F7 E0 3177 movx a,@dptr
07F8 F5 82 3178 mov dpl,a
07FA 22 3179 ret
07FB 3180 00102$:
3181 ; ../../include/ztex-flash2.h:461: spi_write_byte(b);
07FB 8A 82 3182 mov dpl,r2
07FD 12s06r03 3183 lcall _spi_write_byte
3184 ; ../../include/ztex-flash2.h:462: spi_write_addr_lo++;
0800 90s00r1A 3185 mov dptr,#_spi_write_addr_lo
0803 E0 3186 movx a,@dptr
0804 90s00r1A 3187 mov dptr,#_spi_write_addr_lo
0807 04 3188 inc a
0808 F0 3189 movx @dptr,a
3190 ; ../../include/ztex-flash2.h:463: if ( spi_write_addr_lo == 0 ) {
0809 90s00r1A 3191 mov dptr,#_spi_write_addr_lo
080C E0 3192 movx a,@dptr
080D FA 3193 mov r2,a
080E 70 1C 3194 jnz 00105$
3195 ; ../../include/ztex-flash2.h:464: spi_write_addr_hi++;
0810 90s00r18 3196 mov dptr,#_spi_write_addr_hi
0813 E0 3197 movx a,@dptr
0814 FA 3198 mov r2,a
0815 A3 3199 inc dptr
0816 E0 3200 movx a,@dptr
0817 FB 3201 mov r3,a
0818 90s00r18 3202 mov dptr,#_spi_write_addr_hi
081B 74 01 3203 mov a,#0x01
081D 2A 3204 add a,r2
081E F0 3205 movx @dptr,a
081F E4 3206 clr a
0820 3B 3207 addc a,r3
0821 A3 3208 inc dptr
0822 F0 3209 movx @dptr,a
3210 ; ../../include/ztex-flash2.h:465: spi_deselect(); // finish write cmd
0823 12s06r89 3211 lcall _spi_deselect
3212 ; ../../include/ztex-flash2.h:466: spi_need_pp = 1;
0826 90s00r1B 3213 mov dptr,#_spi_need_pp
0829 74 01 3214 mov a,#0x01
082B F0 3215 movx @dptr,a
082C 3216 00105$:
3217 ; ../../include/ztex-flash2.h:468: return 0;
082C 75 82 00 3218 mov dpl,#0x00
082F 22 3219 ret
3220 ;------------------------------------------------------------
3221 ;Allocation info for local variables in function 'flash_write'
3222 ;------------------------------------------------------------
3223 ;len Allocated with name '_flash_write_PARM_2'
3224 ;buf Allocated to registers r2 r3
3225 ;b Allocated to registers r4
3226 ;------------------------------------------------------------
3227 ; ../../include/ztex-flash2.h:476: BYTE flash_write(__xdata BYTE *buf, BYTE len) {
3228 ; -----------------------------------------
3229 ; function flash_write
3230 ; -----------------------------------------
0830 3231 _flash_write:
0830 AA 82 3232 mov r2,dpl
0832 AB 83 3233 mov r3,dph
3234 ; ../../include/ztex-flash2.h:478: if ( spi_need_pp && spi_pp() ) return flash_ec;
0834 90s00r1B 3235 mov dptr,#_spi_need_pp
0837 E0 3236 movx a,@dptr
0838 FC 3237 mov r4,a
0839 60 16 3238 jz 00102$
083B C0 02 3239 push ar2
083D C0 03 3240 push ar3
083F 12s07r88 3241 lcall _spi_pp
0842 E5 82 3242 mov a,dpl
0844 D0 03 3243 pop ar3
0846 D0 02 3244 pop ar2
0848 60 07 3245 jz 00102$
084A 90s00r0E 3246 mov dptr,#_flash_ec
084D E0 3247 movx a,@dptr
084E F5 82 3248 mov dpl,a
0850 22 3249 ret
0851 3250 00102$:
3251 ; ../../include/ztex-flash2.h:480: if ( spi_write_addr_lo == 0 ) {
0851 90s00r1A 3252 mov dptr,#_spi_write_addr_lo
0854 E0 3253 movx a,@dptr
0855 FC 3254 mov r4,a
0856 70 0C 3255 jnz 00110$
3256 ; ../../include/ztex-flash2.h:481: spi_write(buf,len);
0858 85*0C*00 3257 mov _spi_write_PARM_2,_flash_write_PARM_2
085B 8A 82 3258 mov dpl,r2
085D 8B 83 3259 mov dph,r3
085F 12s06r3F 3260 lcall _spi_write
0862 80 67 3261 sjmp 00111$
0864 3262 00110$:
3263 ; ../../include/ztex-flash2.h:484: b = (~spi_write_addr_lo) + 1;
0864 EC 3264 mov a,r4
0865 F4 3265 cpl a
0866 FC 3266 mov r4,a
0867 0C 3267 inc r4
3268 ; ../../include/ztex-flash2.h:485: if ( len==0 || len>b ) {
0868 E5*0C 3269 mov a,_flash_write_PARM_2
086A 60 06 3270 jz 00106$
086C C3 3271 clr c
086D EC 3272 mov a,r4
086E 95*0C 3273 subb a,_flash_write_PARM_2
0870 50 4F 3274 jnc 00107$
0872 3275 00106$:
3276 ; ../../include/ztex-flash2.h:486: spi_write(buf,b);
0872 8C*00 3277 mov _spi_write_PARM_2,r4
0874 8A 82 3278 mov dpl,r2
0876 8B 83 3279 mov dph,r3
0878 C0 02 3280 push ar2
087A C0 03 3281 push ar3
087C C0 04 3282 push ar4
087E 12s06r3F 3283 lcall _spi_write
0881 D0 04 3284 pop ar4
0883 D0 03 3285 pop ar3
0885 D0 02 3286 pop ar2
3287 ; ../../include/ztex-flash2.h:487: len-=b;
0887 E5*0C 3288 mov a,_flash_write_PARM_2
0889 C3 3289 clr c
088A 9C 3290 subb a,r4
088B F5*0C 3291 mov _flash_write_PARM_2,a
3292 ; ../../include/ztex-flash2.h:488: spi_write_addr_hi++;
088D 90s00r18 3293 mov dptr,#_spi_write_addr_hi
0890 E0 3294 movx a,@dptr
0891 FD 3295 mov r5,a
0892 A3 3296 inc dptr
0893 E0 3297 movx a,@dptr
0894 FE 3298 mov r6,a
0895 90s00r18 3299 mov dptr,#_spi_write_addr_hi
0898 74 01 3300 mov a,#0x01
089A 2D 3301 add a,r5
089B F0 3302 movx @dptr,a
089C E4 3303 clr a
089D 3E 3304 addc a,r6
089E A3 3305 inc dptr
089F F0 3306 movx @dptr,a
3307 ; ../../include/ztex-flash2.h:489: spi_write_addr_lo=0;
08A0 90s00r1A 3308 mov dptr,#_spi_write_addr_lo
08A3 E4 3309 clr a
08A4 F0 3310 movx @dptr,a
3311 ; ../../include/ztex-flash2.h:490: buf+=b;
08A5 EC 3312 mov a,r4
08A6 2A 3313 add a,r2
08A7 FA 3314 mov r2,a
08A8 E4 3315 clr a
08A9 3B 3316 addc a,r3
08AA FB 3317 mov r3,a
3318 ; ../../include/ztex-flash2.h:491: if ( spi_pp() ) return flash_ec;
08AB C0 02 3319 push ar2
08AD C0 03 3320 push ar3
08AF 12s07r88 3321 lcall _spi_pp
08B2 E5 82 3322 mov a,dpl
08B4 D0 03 3323 pop ar3
08B6 D0 02 3324 pop ar2
08B8 60 07 3325 jz 00107$
08BA 90s00r0E 3326 mov dptr,#_flash_ec
08BD E0 3327 movx a,@dptr
08BE F5 82 3328 mov dpl,a
08C0 22 3329 ret
08C1 3330 00107$:
3331 ; ../../include/ztex-flash2.h:493: spi_write(buf,len);
08C1 85*0C*00 3332 mov _spi_write_PARM_2,_flash_write_PARM_2
08C4 8A 82 3333 mov dpl,r2
08C6 8B 83 3334 mov dph,r3
08C8 12s06r3F 3335 lcall _spi_write
08CB 3336 00111$:
3337 ; ../../include/ztex-flash2.h:496: spi_write_addr_lo+=len;
08CB 90s00r1A 3338 mov dptr,#_spi_write_addr_lo
08CE E0 3339 movx a,@dptr
08CF FA 3340 mov r2,a
08D0 E5*0C 3341 mov a,_flash_write_PARM_2
08D2 2A 3342 add a,r2
08D3 F0 3343 movx @dptr,a
3344 ; ../../include/ztex-flash2.h:498: if ( spi_write_addr_lo == 0 ) {
08D4 90s00r1A 3345 mov dptr,#_spi_write_addr_lo
08D7 E0 3346 movx a,@dptr
08D8 FA 3347 mov r2,a
08D9 70 1C 3348 jnz 00113$
3349 ; ../../include/ztex-flash2.h:499: spi_write_addr_hi++;
08DB 90s00r18 3350 mov dptr,#_spi_write_addr_hi
08DE E0 3351 movx a,@dptr
08DF FA 3352 mov r2,a
08E0 A3 3353 inc dptr
08E1 E0 3354 movx a,@dptr
08E2 FB 3355 mov r3,a
08E3 90s00r18 3356 mov dptr,#_spi_write_addr_hi
08E6 74 01 3357 mov a,#0x01
08E8 2A 3358 add a,r2
08E9 F0 3359 movx @dptr,a
08EA E4 3360 clr a
08EB 3B 3361 addc a,r3
08EC A3 3362 inc dptr
08ED F0 3363 movx @dptr,a
3364 ; ../../include/ztex-flash2.h:500: spi_deselect(); // finish write cmd
08EE 12s06r89 3365 lcall _spi_deselect
3366 ; ../../include/ztex-flash2.h:501: spi_need_pp = 1;
08F1 90s00r1B 3367 mov dptr,#_spi_need_pp
08F4 74 01 3368 mov a,#0x01
08F6 F0 3369 movx @dptr,a
08F7 3370 00113$:
3371 ; ../../include/ztex-flash2.h:504: return 0;
08F7 75 82 00 3372 mov dpl,#0x00
08FA 22 3373 ret
3374 ;------------------------------------------------------------
3375 ;Allocation info for local variables in function 'flash_write_init'
3376 ;------------------------------------------------------------
3377 ;s Allocated to registers r2 r3
3378 ;------------------------------------------------------------
3379 ; ../../include/ztex-flash2.h:516: BYTE flash_write_init(WORD s) {
3380 ; -----------------------------------------
3381 ; function flash_write_init
3382 ; -----------------------------------------
08FB 3383 _flash_write_init:
08FB AA 82 3384 mov r2,dpl
08FD AB 83 3385 mov r3,dph
3386 ; ../../include/ztex-flash2.h:517: if ( !SPI_CS ) {
08FF 20 83 0A 3387 jb _IOA3,00102$
3388 ; ../../include/ztex-flash2.h:518: flash_ec = FLASH_EC_PENDING;
0902 90s00r0E 3389 mov dptr,#_flash_ec
0905 74 04 3390 mov a,#0x04
0907 F0 3391 movx @dptr,a
3392 ; ../../include/ztex-flash2.h:519: return FLASH_EC_PENDING; // we interrupted a pending Flash operation
0908 75 82 04 3393 mov dpl,#0x04
090B 22 3394 ret
090C 3395 00102$:
3396 ; ../../include/ztex-flash2.h:521: OESPI_OPORT &= ~bmBITSPI_BIT_DO;
090C 53 B4 FE 3397 anl _OEC,#0xFE
3398 ; ../../include/ztex-flash2.h:522: OESPI_PORT |= bmBITSPI_BIT_CS | bmBITSPI_BIT_DI | bmBITSPI_BIT_CLK;
090F 43 B2 0B 3399 orl _OEA,#0x0B
3400 ; ../../include/ztex-flash2.h:523: if ( spi_wait() ) {
0912 C0 02 3401 push ar2
0914 C0 03 3402 push ar3
0916 12s06r91 3403 lcall _spi_wait
0919 E5 82 3404 mov a,dpl
091B D0 03 3405 pop ar3
091D D0 02 3406 pop ar2
091F 60 07 3407 jz 00104$
3408 ; ../../include/ztex-flash2.h:524: return flash_ec;
0921 90s00r0E 3409 mov dptr,#_flash_ec
0924 E0 3410 movx a,@dptr
0925 F5 82 3411 mov dpl,a
0927 22 3412 ret
0928 3413 00104$:
3414 ; ../../include/ztex-flash2.h:526: spi_write_sector = s;
0928 90s00r1C 3415 mov dptr,#_spi_write_sector
092B EA 3416 mov a,r2
092C F0 3417 movx @dptr,a
092D A3 3418 inc dptr
092E EB 3419 mov a,r3
092F F0 3420 movx @dptr,a
3421 ; ../../include/ztex-flash2.h:527: s = s << ((BYTE)flash_sector_size - 8);
0930 90s00r08 3422 mov dptr,#_flash_sector_size
0933 E0 3423 movx a,@dptr
0934 FC 3424 mov r4,a
0935 A3 3425 inc dptr
0936 E0 3426 movx a,@dptr
0937 7D 00 3427 mov r5,#0x00
0939 EC 3428 mov a,r4
093A 24 F8 3429 add a,#0xf8
093C FC 3430 mov r4,a
093D ED 3431 mov a,r5
093E 34 FF 3432 addc a,#0xff
0940 FD 3433 mov r5,a
0941 8C F0 3434 mov b,r4
0943 05 F0 3435 inc b
0945 80 06 3436 sjmp 00112$
0947 3437 00111$:
0947 EA 3438 mov a,r2
0948 2A 3439 add a,r2
0949 FA 3440 mov r2,a
094A EB 3441 mov a,r3
094B 33 3442 rlc a
094C FB 3443 mov r3,a
094D 3444 00112$:
094D D5 F0 F7 3445 djnz b,00111$
3446 ; ../../include/ztex-flash2.h:528: spi_write_addr_hi = s;
0950 90s00r18 3447 mov dptr,#_spi_write_addr_hi
0953 EA 3448 mov a,r2
0954 F0 3449 movx @dptr,a
0955 A3 3450 inc dptr
0956 EB 3451 mov a,r3
0957 F0 3452 movx @dptr,a
3453 ; ../../include/ztex-flash2.h:529: spi_write_addr_lo = 0;
0958 90s00r1A 3454 mov dptr,#_spi_write_addr_lo
095B E4 3455 clr a
095C F0 3456 movx @dptr,a
3457 ; ../../include/ztex-flash2.h:359: spi_last_cmd = $0;
095D 90s00r13 3458 mov dptr,#_spi_last_cmd
0960 74 06 3459 mov a,#0x06
0962 F0 3460 movx @dptr,a
3461 ; ../../include/ztex-flash2.h:360: spi_select(); // select
0963 C0 02 3462 push ar2
0965 C0 03 3463 push ar3
0967 12s06r7E 3464 lcall _spi_select
3465 ; ../../include/ztex-flash2.h:361: spi_write_byte($0); // CMD 90h
096A 75 82 06 3466 mov dpl,#0x06
096D 12s06r03 3467 lcall _spi_write_byte
3468 ; ../../include/ztex-flash2.h:532: spi_deselect();
0970 12s06r89 3469 lcall _spi_deselect
3470 ; ../../include/ztex-flash2.h:359: spi_last_cmd = $0;
0973 90s00r12 3471 mov dptr,#_spi_erase_cmd
0976 E0 3472 movx a,@dptr
0977 90s00r13 3473 mov dptr,#_spi_last_cmd
097A F0 3474 movx @dptr,a
3475 ; ../../include/ztex-flash2.h:360: spi_select(); // select
097B 12s06r7E 3476 lcall _spi_select
3477 ; ../../include/ztex-flash2.h:361: spi_write_byte($0); // CMD 90h
097E 90s00r12 3478 mov dptr,#_spi_erase_cmd
0981 E0 3479 movx a,@dptr
0982 F5 82 3480 mov dpl,a
0984 12s06r03 3481 lcall _spi_write_byte
0987 D0 03 3482 pop ar3
3483 ; ../../include/ztex-flash2.h:363:
0989 8B 82 3484 mov dpl,r3
098B C0 03 3485 push ar3
098D 12s06r03 3486 lcall _spi_write_byte
0990 D0 03 3487 pop ar3
0992 D0 02 3488 pop ar2
3489 ; ../../include/ztex-flash2.h:536: spi_write_byte(s & 255);
0994 8A 82 3490 mov dpl,r2
0996 12s06r03 3491 lcall _spi_write_byte
3492 ; ../../include/ztex-flash2.h:537: spi_write_byte(0);
0999 75 82 00 3493 mov dpl,#0x00
099C 12s06r03 3494 lcall _spi_write_byte
3495 ; ../../include/ztex-flash2.h:538: spi_deselect();
099F 12s06r89 3496 lcall _spi_deselect
3497 ; ../../include/ztex-flash2.h:540: spi_need_pp = 1;
09A2 90s00r1B 3498 mov dptr,#_spi_need_pp
09A5 74 01 3499 mov a,#0x01
09A7 F0 3500 movx @dptr,a
3501 ; ../../include/ztex-flash2.h:541: return 0;
09A8 75 82 00 3502 mov dpl,#0x00
09AB 22 3503 ret
3504 ;------------------------------------------------------------
3505 ;Allocation info for local variables in function 'flash_write_finish_sector'
3506 ;------------------------------------------------------------
3507 ;n Allocated to registers
3508 ;------------------------------------------------------------
3509 ; ../../include/ztex-flash2.h:551: BYTE flash_write_finish_sector (WORD n) {
3510 ; -----------------------------------------
3511 ; function flash_write_finish_sector
3512 ; -----------------------------------------
09AC 3513 _flash_write_finish_sector:
3514 ; ../../include/ztex-flash2.h:553: spi_deselect();
09AC 12s06r89 3515 lcall _spi_deselect
3516 ; ../../include/ztex-flash2.h:554: return 0;
09AF 75 82 00 3517 mov dpl,#0x00
09B2 22 3518 ret
3519 ;------------------------------------------------------------
3520 ;Allocation info for local variables in function 'flash_write_finish'
3521 ;------------------------------------------------------------
3522 ;------------------------------------------------------------
3523 ; ../../include/ztex-flash2.h:564: void flash_write_finish () {
3524 ; -----------------------------------------
3525 ; function flash_write_finish
3526 ; -----------------------------------------
09B3 3527 _flash_write_finish:
3528 ; ../../include/ztex-flash2.h:565: spi_deselect();
09B3 02s06r89 3529 ljmp _spi_deselect
3530 ;------------------------------------------------------------
3531 ;Allocation info for local variables in function 'flash_write_next'
3532 ;------------------------------------------------------------
3533 ;------------------------------------------------------------
3534 ; ../../include/ztex-flash2.h:575: BYTE flash_write_next () {
3535 ; -----------------------------------------
3536 ; function flash_write_next
3537 ; -----------------------------------------
09B6 3538 _flash_write_next:
3539 ; ../../include/ztex-flash2.h:576: spi_deselect();
09B6 12s06r89 3540 lcall _spi_deselect
3541 ; ../../include/ztex-flash2.h:577: return flash_write_init(spi_write_sector+1);
09B9 90s00r1C 3542 mov dptr,#_spi_write_sector
09BC E0 3543 movx a,@dptr
09BD FA 3544 mov r2,a
09BE A3 3545 inc dptr
09BF E0 3546 movx a,@dptr
09C0 FB 3547 mov r3,a
09C1 8A 82 3548 mov dpl,r2
09C3 8B 83 3549 mov dph,r3
09C5 A3 3550 inc dptr
09C6 02s08rFB 3551 ljmp _flash_write_init
3552 ;------------------------------------------------------------
3553 ;Allocation info for local variables in function 'flash_init'
3554 ;------------------------------------------------------------
3555 ;i Allocated to registers r2
3556 ;------------------------------------------------------------
3557 ; ../../include/ztex-flash2.h:585: void flash_init() {
3558 ; -----------------------------------------
3559 ; function flash_init
3560 ; -----------------------------------------
09C9 3561 _flash_init:
3562 ; ../../include/ztex-flash2.h:588: PORTCCFG = 0;
09C9 90 E6 71 3563 mov dptr,#_PORTCCFG
09CC E4 3564 clr a
09CD F0 3565 movx @dptr,a
3566 ; ../../include/ztex-flash2.h:590: flash_enabled = 1;
09CE 90s00r07 3567 mov dptr,#_flash_enabled
09D1 74 01 3568 mov a,#0x01
09D3 F0 3569 movx @dptr,a
3570 ; ../../include/ztex-flash2.h:591: flash_ec = 0;
09D4 90s00r0E 3571 mov dptr,#_flash_ec
09D7 E4 3572 clr a
09D8 F0 3573 movx @dptr,a
3574 ; ../../include/ztex-flash2.h:592: flash_sector_size = 0x8010; // 64 KByte
09D9 90s00r08 3575 mov dptr,#_flash_sector_size
09DC 74 10 3576 mov a,#0x10
09DE F0 3577 movx @dptr,a
09DF A3 3578 inc dptr
09E0 74 80 3579 mov a,#0x80
09E2 F0 3580 movx @dptr,a
3581 ; ../../include/ztex-flash2.h:593: spi_erase_cmd = 0xd8;
09E3 90s00r12 3582 mov dptr,#_spi_erase_cmd
09E6 74 D8 3583 mov a,#0xD8
09E8 F0 3584 movx @dptr,a
3585 ; ../../include/ztex-flash2.h:595: OESPI_OPORT &= ~bmBITSPI_BIT_DO;
09E9 53 B4 FE 3586 anl _OEC,#0xFE
3587 ; ../../include/ztex-flash2.h:596: OESPI_PORT |= bmBITSPI_BIT_CS | bmBITSPI_BIT_DI | bmBITSPI_BIT_CLK;
09EC 43 B2 0B 3588 orl _OEA,#0x0B
3589 ; ../../include/ztex-flash2.h:597: SPI_CS = 1;
09EF D2 83 3590 setb _IOA3
3591 ; ../../include/ztex-flash2.h:598: spi_clocks(0); // 256 clocks
09F1 75 82 00 3592 mov dpl,#0x00
09F4 12s05r79 3593 lcall _spi_clocks
3594 ; ../../include/ztex-flash2.h:359: spi_last_cmd = $0;
09F7 90s00r13 3595 mov dptr,#_spi_last_cmd
09FA 74 90 3596 mov a,#0x90
09FC F0 3597 movx @dptr,a
3598 ; ../../include/ztex-flash2.h:360: spi_select(); // select
09FD 12s06r7E 3599 lcall _spi_select
3600 ; ../../include/ztex-flash2.h:361: spi_write_byte($0); // CMD 90h
0A00 75 82 90 3601 mov dpl,#0x90
0A03 12s06r03 3602 lcall _spi_write_byte
3603 ; ../../include/ztex-flash2.h:363:
0A06 75 82 18 3604 mov dpl,#0x18
0A09 12s05r79 3605 lcall _spi_clocks
3606 ; ../../include/ztex-flash2.h:602: spi_device = flash_read_byte();
0A0C 12s05r85 3607 lcall _flash_read_byte
0A0F E5 82 3608 mov a,dpl
0A11 90s00r10 3609 mov dptr,#_spi_device
0A14 F0 3610 movx @dptr,a
3611 ; ../../include/ztex-flash2.h:603: spi_deselect(); // deselect
0A15 12s06r89 3612 lcall _spi_deselect
3613 ; ../../include/ztex-flash2.h:359: spi_last_cmd = $0;
0A18 90s00r13 3614 mov dptr,#_spi_last_cmd
0A1B 74 9F 3615 mov a,#0x9F
0A1D F0 3616 movx @dptr,a
3617 ; ../../include/ztex-flash2.h:360: spi_select(); // select
0A1E 12s06r7E 3618 lcall _spi_select
3619 ; ../../include/ztex-flash2.h:361: spi_write_byte($0); // CMD 90h
0A21 75 82 9F 3620 mov dpl,#0x9F
0A24 12s06r03 3621 lcall _spi_write_byte
3622 ; ../../include/ztex-flash2.h:363:
0A27 75*00 03 3623 mov _flash_read_PARM_2,#0x03
0A2A 90s00r14 3624 mov dptr,#_spi_buffer
0A2D 12s05rC4 3625 lcall _flash_read
3626 ; ../../include/ztex-flash2.h:364: /* *********************************************************************
0A30 12s06r89 3627 lcall _spi_deselect
3628 ; ../../include/ztex-flash2.h:608: if ( spi_buffer[2]<16 || spi_buffer[2]>24 ) {
0A33 90s00r16 3629 mov dptr,#(_spi_buffer + 0x0002)
0A36 E0 3630 movx a,@dptr
0A37 FA 3631 mov r2,a
0A38 BA 10 00 3632 cjne r2,#0x10,00109$
0A3B 3633 00109$:
0A3B 40 3D 3634 jc 00104$
0A3D EA 3635 mov a,r2
0A3E 24 E7 3636 add a,#0xff - 0x18
0A40 40 38 3637 jc 00104$
3638 ; ../../include/ztex-flash2.h:611: spi_vendor = spi_buffer[0];
0A42 90s00r14 3639 mov dptr,#_spi_buffer
0A45 E0 3640 movx a,@dptr
0A46 90s00r0F 3641 mov dptr,#_spi_vendor
0A49 F0 3642 movx @dptr,a
3643 ; ../../include/ztex-flash2.h:612: spi_memtype = spi_buffer[1];
0A4A 90s00r15 3644 mov dptr,#(_spi_buffer + 0x0001)
0A4D E0 3645 movx a,@dptr
0A4E 90s00r11 3646 mov dptr,#_spi_memtype
0A51 F0 3647 movx @dptr,a
3648 ; ../../include/ztex-flash2.h:628: i=spi_buffer[2]-16;
0A52 EA 3649 mov a,r2
0A53 24 F0 3650 add a,#0xf0
0A55 FA 3651 mov r2,a
3652 ; ../../include/ztex-flash2.h:630: flash_sectors = 1 << i;
0A56 8A F0 3653 mov b,r2
0A58 05 F0 3654 inc b
0A5A 7A 01 3655 mov r2,#0x01
0A5C 7B 00 3656 mov r3,#0x00
0A5E 80 06 3657 sjmp 00113$
0A60 3658 00112$:
0A60 EA 3659 mov a,r2
0A61 2A 3660 add a,r2
0A62 FA 3661 mov r2,a
0A63 EB 3662 mov a,r3
0A64 33 3663 rlc a
0A65 FB 3664 mov r3,a
0A66 3665 00113$:
0A66 D5 F0 F7 3666 djnz b,00112$
0A69 90s00r0A 3667 mov dptr,#_flash_sectors
0A6C EA 3668 mov a,r2
0A6D F0 3669 movx @dptr,a
0A6E A3 3670 inc dptr
0A6F EB 3671 mov a,r3
0A70 F0 3672 movx @dptr,a
0A71 EB 3673 mov a,r3
0A72 33 3674 rlc a
0A73 95 E0 3675 subb a,acc
0A75 A3 3676 inc dptr
0A76 F0 3677 movx @dptr,a
0A77 A3 3678 inc dptr
0A78 F0 3679 movx @dptr,a
3680 ; ../../include/ztex-flash2.h:632: return;
3681 ; ../../include/ztex-flash2.h:634: disable:
0A79 22 3682 ret
0A7A 3683 00104$:
3684 ; ../../include/ztex-flash2.h:635: flash_enabled = 0;
0A7A 90s00r07 3685 mov dptr,#_flash_enabled
0A7D E4 3686 clr a
0A7E F0 3687 movx @dptr,a
3688 ; ../../include/ztex-flash2.h:636: flash_ec = FLASH_EC_NOTSUPPORTED;
0A7F 90s00r0E 3689 mov dptr,#_flash_ec
0A82 74 07 3690 mov a,#0x07
0A84 F0 3691 movx @dptr,a
3692 ; ../../include/ztex-flash2.h:637: OESPI_PORT &= ~( bmBITSPI_BIT_CS | bmBITSPI_BIT_DI | bmBITSPI_BIT_CLK );
0A85 53 B2 F4 3693 anl _OEA,#0xF4
0A88 22 3694 ret
3695 ;------------------------------------------------------------
3696 ;Allocation info for local variables in function 'spi_read_ep0'
3697 ;------------------------------------------------------------
3698 ;------------------------------------------------------------
3699 ; ../../include/ztex-flash2.h:663: void spi_read_ep0 () {
3700 ; -----------------------------------------
3701 ; function spi_read_ep0
3702 ; -----------------------------------------
0A89 3703 _spi_read_ep0:
3704 ; ../../include/ztex-flash2.h:664: flash_read(EP0BUF, ep0_payload_transfer);
0A89 90s00r02 3705 mov dptr,#_ep0_payload_transfer
0A8C E0 3706 movx a,@dptr
0A8D F5*00 3707 mov _flash_read_PARM_2,a
0A8F 90 E7 40 3708 mov dptr,#_EP0BUF
0A92 12s05rC4 3709 lcall _flash_read
3710 ; ../../include/ztex-flash2.h:665: if ( ep0_read_mode==2 && ep0_payload_remaining==0 ) {
0A95 90s00r1E 3711 mov dptr,#_ep0_read_mode
0A98 E0 3712 movx a,@dptr
0A99 FA 3713 mov r2,a
0A9A BA 02 0E 3714 cjne r2,#0x02,00104$
0A9D 90s00r00 3715 mov dptr,#_ep0_payload_remaining
0AA0 E0 3716 movx a,@dptr
0AA1 FA 3717 mov r2,a
0AA2 A3 3718 inc dptr
0AA3 E0 3719 movx a,@dptr
0AA4 FB 3720 mov r3,a
0AA5 4A 3721 orl a,r2
0AA6 70 03 3722 jnz 00104$
3723 ; ../../include/ztex-flash2.h:666: spi_deselect();
0AA8 02s06r89 3724 ljmp _spi_deselect
0AAB 3725 00104$:
0AAB 22 3726 ret
3727 ;------------------------------------------------------------
3728 ;Allocation info for local variables in function 'spi_send_ep0'
3729 ;------------------------------------------------------------
3730 ;------------------------------------------------------------
3731 ; ../../include/ztex-flash2.h:690: void spi_send_ep0 () {
3732 ; -----------------------------------------
3733 ; function spi_send_ep0
3734 ; -----------------------------------------
0AAC 3735 _spi_send_ep0:
3736 ; ../../include/ztex-flash2.h:691: flash_write(EP0BUF, ep0_payload_transfer);
0AAC 90s00r02 3737 mov dptr,#_ep0_payload_transfer
0AAF E0 3738 movx a,@dptr
0AB0 F5*0C 3739 mov _flash_write_PARM_2,a
0AB2 90 E7 40 3740 mov dptr,#_EP0BUF
0AB5 12s08r30 3741 lcall _flash_write
3742 ; ../../include/ztex-flash2.h:692: if ( ep0_write_mode==2 && ep0_payload_remaining==0 ) {
0AB8 90s00r1F 3743 mov dptr,#_ep0_write_mode
0ABB E0 3744 movx a,@dptr
0ABC FA 3745 mov r2,a
0ABD BA 02 0E 3746 cjne r2,#0x02,00104$
0AC0 90s00r00 3747 mov dptr,#_ep0_payload_remaining
0AC3 E0 3748 movx a,@dptr
0AC4 FA 3749 mov r2,a
0AC5 A3 3750 inc dptr
0AC6 E0 3751 movx a,@dptr
0AC7 FB 3752 mov r3,a
0AC8 4A 3753 orl a,r2
0AC9 70 03 3754 jnz 00104$
3755 ; ../../include/ztex-flash2.h:693: spi_deselect();
0ACB 02s06r89 3756 ljmp _spi_deselect
0ACE 3757 00104$:
0ACE 22 3758 ret
3759 ;------------------------------------------------------------
3760 ;Allocation info for local variables in function 'reset_fpga'
3761 ;------------------------------------------------------------
3762 ;------------------------------------------------------------
3763 ; ../../include/ztex-fpga7.h:39: static void reset_fpga () {
3764 ; -----------------------------------------
3765 ; function reset_fpga
3766 ; -----------------------------------------
0ACF 3767 _reset_fpga:
3768 ; ../../include/ztex-fpga7.h:40: OEE = (OEE & ~bmBIT6) | bmBIT7;
0ACF AA B6 3769 mov r2,_OEE
0AD1 74 BF 3770 mov a,#0xBF
0AD3 5A 3771 anl a,r2
0AD4 F5 F0 3772 mov b,a
0AD6 74 80 3773 mov a,#0x80
0AD8 45 F0 3774 orl a,b
0ADA F5 B6 3775 mov _OEE,a
3776 ; ../../include/ztex-fpga7.h:41: IOE = IOE & ~bmBIT7;
0ADC 53 B1 7F 3777 anl _IOE,#0x7F
3778 ; ../../include/ztex-fpga7.h:42: wait(1);
0ADF 90 00 01 3779 mov dptr,#0x0001
0AE2 12s00r01 3780 lcall _wait
3781 ; ../../include/ztex-fpga7.h:43: IOE = IOE | bmBIT7;
0AE5 43 B1 80 3782 orl _IOE,#0x80
3783 ; ../../include/ztex-fpga7.h:44: fpga_conf_initialized = 0;
0AE8 90s00r27 3784 mov dptr,#_fpga_conf_initialized
0AEB E4 3785 clr a
0AEC F0 3786 movx @dptr,a
0AED 22 3787 ret
3788 ;------------------------------------------------------------
3789 ;Allocation info for local variables in function 'init_fpga'
3790 ;------------------------------------------------------------
3791 ;------------------------------------------------------------
3792 ; ../../include/ztex-fpga7.h:50: static void init_fpga () {
3793 ; -----------------------------------------
3794 ; function init_fpga
3795 ; -----------------------------------------
0AEE 3796 _init_fpga:
3797 ; ../../include/ztex-fpga7.h:51: IOE = IOE | bmBIT7;
0AEE 43 B1 80 3798 orl _IOE,#0x80
3799 ; ../../include/ztex-fpga7.h:52: OEE = (OEE & ~bmBIT6) | bmBIT7;
0AF1 AA B6 3800 mov r2,_OEE
0AF3 74 BF 3801 mov a,#0xBF
0AF5 5A 3802 anl a,r2
0AF6 F5 F0 3803 mov b,a
0AF8 74 80 3804 mov a,#0x80
0AFA 45 F0 3805 orl a,b
0AFC F5 B6 3806 mov _OEE,a
3807 ; ../../include/ztex-fpga7.h:53: if ( ! (IOE & bmBIT6) ) {
0AFE E5 B1 3808 mov a,_IOE
0B00 20 E6 24 3809 jb acc.6,00102$
3810 ; ../../include/ztex-fpga7.h:55: IOE = IOE & ~bmBIT7; // PROG_B = 0
0B03 53 B1 7F 3811 anl _IOE,#0x7F
3812 ; ../../include/ztex-fpga7.h:56: OEA = (OEA & bmBIT2 ) | bmBIT4 | bmBIT5 | bmBIT6;
0B06 74 04 3813 mov a,#0x04
0B08 55 B2 3814 anl a,_OEA
0B0A F5 F0 3815 mov b,a
0B0C 74 70 3816 mov a,#0x70
0B0E 45 F0 3817 orl a,b
0B10 F5 B2 3818 mov _OEA,a
3819 ; ../../include/ztex-fpga7.h:57: IOA = (IOA & bmBIT2 ) | bmBIT5;
0B12 74 04 3820 mov a,#0x04
0B14 55 80 3821 anl a,_IOA
0B16 F5 F0 3822 mov b,a
0B18 74 20 3823 mov a,#0x20
0B1A 45 F0 3824 orl a,b
0B1C F5 80 3825 mov _IOA,a
3826 ; ../../include/ztex-fpga7.h:58: wait(1);
0B1E 90 00 01 3827 mov dptr,#0x0001
0B21 12s00r01 3828 lcall _wait
3829 ; ../../include/ztex-fpga7.h:59: IOE = IOE | bmBIT7; // PROG_B = 1
0B24 43 B1 80 3830 orl _IOE,#0x80
0B27 3831 00102$:
3832 ; ../../include/ztex-fpga7.h:62: fpga_conf_initialized = 0;
0B27 90s00r27 3833 mov dptr,#_fpga_conf_initialized
0B2A E4 3834 clr a
0B2B F0 3835 movx @dptr,a
0B2C 22 3836 ret
3837 ;------------------------------------------------------------
3838 ;Allocation info for local variables in function 'init_fpga_configuration'
3839 ;------------------------------------------------------------
3840 ;k Allocated to registers r2 r3
3841 ;------------------------------------------------------------
3842 ; ../../include/ztex-fpga7.h:68: static void init_fpga_configuration () {
3843 ; -----------------------------------------
3844 ; function init_fpga_configuration
3845 ; -----------------------------------------
0B2D 3846 _init_fpga_configuration:
3847 ; ../../include/ztex-fpga7.h:75: IFCONFIG = bmBIT7;
0B2D 90 E6 01 3848 mov dptr,#_IFCONFIG
0B30 74 80 3849 mov a,#0x80
0B32 F0 3850 movx @dptr,a
3851 ; ../../include/ezregs.h:46: __endasm;
3852
0B33 00 3853 nop
0B34 00 3854 nop
0B35 00 3855 nop
0B36 00 3856 nop
3857
3858 ; ../../include/ztex-fpga7.h:77: PORTACFG = 0;
0B37 90 E6 70 3859 mov dptr,#_PORTACFG
3860 ; ../../include/ztex-fpga7.h:78: PORTCCFG = 0;
0B3A E4 3861 clr a
0B3B F0 3862 movx @dptr,a
0B3C 90 E6 71 3863 mov dptr,#_PORTCCFG
0B3F F0 3864 movx @dptr,a
3865 ; ../../include/ztex-fpga7.h:80: OOEA = OEA;
0B40 90s00r28 3866 mov dptr,#_OOEA
0B43 E5 B2 3867 mov a,_OEA
0B45 F0 3868 movx @dptr,a
3869 ; ../../include/ztex-fpga7.h:81: fpga_conf_initialized = 123;
0B46 90s00r27 3870 mov dptr,#_fpga_conf_initialized
0B49 74 7B 3871 mov a,#0x7B
0B4B F0 3872 movx @dptr,a
3873 ; ../../include/ztex-fpga7.h:83: OEA &= bmBIT2; // only unsed PA bit
0B4C 53 B2 04 3874 anl _OEA,#0x04
3875 ; ../../include/ztex-fpga7.h:85: OEE = (OEE & ~bmBIT6) | bmBIT7;
0B4F AA B6 3876 mov r2,_OEE
0B51 74 BF 3877 mov a,#0xBF
0B53 5A 3878 anl a,r2
0B54 F5 F0 3879 mov b,a
0B56 74 80 3880 mov a,#0x80
0B58 45 F0 3881 orl a,b
0B5A F5 B6 3882 mov _OEE,a
3883 ; ../../include/ztex-fpga7.h:86: IOE = IOE & ~bmBIT7; // PROG_B = 0
0B5C 53 B1 7F 3884 anl _IOE,#0x7F
3885 ; ../../include/ztex-fpga7.h:89: OEA |= bmBIT1 | bmBIT4 | bmBIT5 | bmBIT6;
0B5F 43 B2 72 3886 orl _OEA,#0x72
3887 ; ../../include/ztex-fpga7.h:90: IOA = ( IOA & bmBIT2 ) | bmBIT1 | bmBIT5;
0B62 74 04 3888 mov a,#0x04
0B64 55 80 3889 anl a,_IOA
0B66 F5 F0 3890 mov b,a
0B68 74 22 3891 mov a,#0x22
0B6A 45 F0 3892 orl a,b
0B6C F5 80 3893 mov _IOA,a
3894 ; ../../include/ztex-fpga7.h:91: wait(5);
0B6E 90 00 05 3895 mov dptr,#0x0005
0B71 12s00r01 3896 lcall _wait
3897 ; ../../include/ztex-fpga7.h:93: IOE = IOE | bmBIT7; // PROG_B = 1
0B74 43 B1 80 3898 orl _IOE,#0x80
3899 ; ../../include/ztex-fpga7.h:94: IOA1 = 0; // CS = 0
0B77 C2 81 3900 clr _IOA1
3901 ; ../../include/ztex-fpga7.h:97: while (!IOA7 && k<65535)
0B79 7A 00 3902 mov r2,#0x00
0B7B 7B 00 3903 mov r3,#0x00
0B7D 3904 00102$:
0B7D 20 87 20 3905 jb _IOA7,00104$
0B80 8A 04 3906 mov ar4,r2
0B82 8B 05 3907 mov ar5,r3
0B84 7E 00 3908 mov r6,#0x00
0B86 7F 00 3909 mov r7,#0x00
0B88 C3 3910 clr c
0B89 EC 3911 mov a,r4
0B8A 94 FF 3912 subb a,#0xFF
0B8C ED 3913 mov a,r5
0B8D 94 FF 3914 subb a,#0xFF
0B8F EE 3915 mov a,r6
0B90 94 00 3916 subb a,#0x00
0B92 EF 3917 mov a,r7
0B93 64 80 3918 xrl a,#0x80
0B95 94 80 3919 subb a,#0x80
0B97 50 07 3920 jnc 00104$
3921 ; ../../include/ztex-fpga7.h:98: k++;
0B99 0A 3922 inc r2
0B9A BA 00 E0 3923 cjne r2,#0x00,00102$
0B9D 0B 3924 inc r3
0B9E 80 DD 3925 sjmp 00102$
0BA0 3926 00104$:
3927 ; ../../include/ztex-fpga7.h:101: OEA |= bmBIT0; // ready for configuration
0BA0 43 B2 01 3928 orl _OEA,#0x01
3929 ; ../../include/ztex-fpga7.h:103: fpga_init_b = IOA7 ? 200 : 100;
0BA3 30 87 04 3930 jnb _IOA7,00107$
0BA6 7A C8 3931 mov r2,#0xC8
0BA8 80 02 3932 sjmp 00108$
0BAA 3933 00107$:
0BAA 7A 64 3934 mov r2,#0x64
0BAC 3935 00108$:
0BAC 90s00r25 3936 mov dptr,#_fpga_init_b
0BAF EA 3937 mov a,r2
0BB0 F0 3938 movx @dptr,a
3939 ; ../../include/ztex-fpga7.h:104: fpga_bytes = 0;
0BB1 90s00r21 3940 mov dptr,#_fpga_bytes
0BB4 E4 3941 clr a
0BB5 F0 3942 movx @dptr,a
0BB6 A3 3943 inc dptr
0BB7 F0 3944 movx @dptr,a
0BB8 A3 3945 inc dptr
0BB9 F0 3946 movx @dptr,a
0BBA A3 3947 inc dptr
0BBB F0 3948 movx @dptr,a
3949 ; ../../include/ztex-fpga7.h:105: fpga_checksum = 0;
0BBC 90s00r20 3950 mov dptr,#_fpga_checksum
0BBF E4 3951 clr a
0BC0 F0 3952 movx @dptr,a
0BC1 22 3953 ret
3954 ;------------------------------------------------------------
3955 ;Allocation info for local variables in function 'post_fpga_config'
3956 ;------------------------------------------------------------
3957 ;------------------------------------------------------------
3958 ; ../../include/ztex-fpga7.h:111: static void post_fpga_config () {
3959 ; -----------------------------------------
3960 ; function post_fpga_config
3961 ; -----------------------------------------
0BC2 3962 _post_fpga_config:
3963 ; ../../include/ztex-fpga7.h:113: }
0BC2 22 3964 ret
3965 ;------------------------------------------------------------
3966 ;Allocation info for local variables in function 'finish_fpga_configuration'
3967 ;------------------------------------------------------------
3968 ;w Allocated to registers r2
3969 ;------------------------------------------------------------
3970 ; ../../include/ztex-fpga7.h:118: static void finish_fpga_configuration () {
3971 ; -----------------------------------------
3972 ; function finish_fpga_configuration
3973 ; -----------------------------------------
0BC3 3974 _finish_fpga_configuration:
3975 ; ../../include/ztex-fpga7.h:120: fpga_init_b += IOA7 ? 22 : 11;
0BC3 30 87 04 3976 jnb _IOA7,00109$
0BC6 7A 16 3977 mov r2,#0x16
0BC8 80 02 3978 sjmp 00110$
0BCA 3979 00109$:
0BCA 7A 0B 3980 mov r2,#0x0B
0BCC 3981 00110$:
0BCC 90s00r25 3982 mov dptr,#_fpga_init_b
0BCF E0 3983 movx a,@dptr
0BD0 FB 3984 mov r3,a
0BD1 EA 3985 mov a,r2
0BD2 2B 3986 add a,r3
0BD3 F0 3987 movx @dptr,a
3988 ; ../../include/ztex-fpga7.h:122: for ( w=0; w<64; w++ ) {
0BD4 7A 00 3989 mov r2,#0x00
0BD6 3990 00103$:
0BD6 BA 40 00 3991 cjne r2,#0x40,00117$
0BD9 3992 00117$:
0BD9 50 07 3993 jnc 00106$
3994 ; ../../include/ztex-fpga7.h:123: IOA0 = 1; IOA0 = 0;
0BDB D2 80 3995 setb _IOA0
0BDD C2 80 3996 clr _IOA0
3997 ; ../../include/ztex-fpga7.h:122: for ( w=0; w<64; w++ ) {
0BDF 0A 3998 inc r2
0BE0 80 F4 3999 sjmp 00103$
0BE2 4000 00106$:
4001 ; ../../include/ztex-fpga7.h:125: IOA1 = 1;
0BE2 D2 81 4002 setb _IOA1
4003 ; ../../include/ztex-fpga7.h:126: IOA0 = 1; IOA0 = 0;
0BE4 D2 80 4004 setb _IOA0
0BE6 C2 80 4005 clr _IOA0
4006 ; ../../include/ztex-fpga7.h:127: IOA0 = 1; IOA0 = 0;
0BE8 D2 80 4007 setb _IOA0
0BEA C2 80 4008 clr _IOA0
4009 ; ../../include/ztex-fpga7.h:128: IOA0 = 1; IOA0 = 0;
0BEC D2 80 4010 setb _IOA0
0BEE C2 80 4011 clr _IOA0
4012 ; ../../include/ztex-fpga7.h:129: IOA0 = 1; IOA0 = 0;
0BF0 D2 80 4013 setb _IOA0
0BF2 C2 80 4014 clr _IOA0
4015 ; ../../include/ztex-fpga7.h:131: OEA = OOEA;
0BF4 90s00r28 4016 mov dptr,#_OOEA
0BF7 E0 4017 movx a,@dptr
0BF8 F5 B2 4018 mov _OEA,a
4019 ; ../../include/ztex-fpga7.h:132: if ( IOE & bmBIT6 ) {
0BFA E5 B1 4020 mov a,_IOE
0BFC 30 E6 03 4021 jnb acc.6,00107$
4022 ; ../../include/ztex-fpga7.h:133: post_fpga_config();
0BFF 02s0BrC2 4023 ljmp _post_fpga_config
0C02 4024 00107$:
0C02 22 4025 ret
4026 ;------------------------------------------------------------
4027 ;Allocation info for local variables in function 'fpga_send_ep0'
4028 ;------------------------------------------------------------
4029 ;oOEC Allocated with name '_fpga_send_ep0_oOEC_1_1'
4030 ;------------------------------------------------------------
4031 ; ../../include/ztex-fpga7.h:169: void fpga_send_ep0() {
4032 ; -----------------------------------------
4033 ; function fpga_send_ep0
4034 ; -----------------------------------------
0C03 4035 _fpga_send_ep0:
4036 ; ../../include/ztex-fpga7.h:171: oOEC = OEC;
0C03 85 B4*0D 4037 mov _fpga_send_ep0_oOEC_1_1,_OEC
4038 ; ../../include/ztex-fpga7.h:172: OEC = 255;
0C06 75 B4 FF 4039 mov _OEC,#0xFF
4040 ; ../../include/ztex-fpga7.h:173: fpga_bytes += ep0_payload_transfer;
0C09 90s00r02 4041 mov dptr,#_ep0_payload_transfer
0C0C E0 4042 movx a,@dptr
0C0D FB 4043 mov r3,a
0C0E 90s00r21 4044 mov dptr,#_fpga_bytes
0C11 E0 4045 movx a,@dptr
0C12 FC 4046 mov r4,a
0C13 A3 4047 inc dptr
0C14 E0 4048 movx a,@dptr
0C15 FD 4049 mov r5,a
0C16 A3 4050 inc dptr
0C17 E0 4051 movx a,@dptr
0C18 FE 4052 mov r6,a
0C19 A3 4053 inc dptr
0C1A E0 4054 movx a,@dptr
0C1B FF 4055 mov r7,a
0C1C 78 00 4056 mov r0,#0x00
0C1E 79 00 4057 mov r1,#0x00
0C20 7A 00 4058 mov r2,#0x00
0C22 90s00r21 4059 mov dptr,#_fpga_bytes
0C25 EB 4060 mov a,r3
0C26 2C 4061 add a,r4
0C27 F0 4062 movx @dptr,a
0C28 E8 4063 mov a,r0
0C29 3D 4064 addc a,r5
0C2A A3 4065 inc dptr
0C2B F0 4066 movx @dptr,a
0C2C E9 4067 mov a,r1
0C2D 3E 4068 addc a,r6
0C2E A3 4069 inc dptr
0C2F F0 4070 movx @dptr,a
0C30 EA 4071 mov a,r2
0C31 3F 4072 addc a,r7
0C32 A3 4073 inc dptr
0C33 F0 4074 movx @dptr,a
4075 ; ../../include/ztex-fpga7.h:201: OEC = oOEC;
4076
0C34 90 E6 8B 4077 mov dptr,#_EP0BCL
0C37 E0 4078 movx a,@dptr
0C38 60 22 4079 jz 010000$
0C3A FA 4080 mov r2,a
0C3B 75 9B 40 4081 mov _AUTOPTRL1,#(_EP0BUF)
0C3E 75 9A E7 4082 mov _AUTOPTRH1,#(_EP0BUF >> 8)
0C41 75 AF 07 4083 mov _AUTOPTRSETUP,#0x07
0C44 90s00r20 4084 mov dptr,#_fpga_checksum
0C47 E0 4085 movx a,@dptr
0C48 F9 4086 mov r1,a
0C49 90 E6 7B 4087 mov dptr,#_XAUTODAT1
0C4C 4088 010001$:
0C4C E0 4089 movx a,@dptr
0C4D F5 A0 4090 mov _IOC,a
0C4F D2 80 4091 setb _IOA0
0C51 29 4092 add a,r1
0C52 F9 4093 mov r1,a
0C53 C2 80 4094 clr _IOA0
0C55 DA F5 4095 djnz r2, 010001$
4096 ; # 194 "../../include/ztex-fpga7.h"
4097
0C57 90s00r20 4098 mov dptr,#_fpga_checksum
0C5A E9 4099 mov a,r1
0C5B F0 4100 movx @dptr,a
4101
0C5C 4102 010000$:
4103
4104 ; ../../include/ztex-fpga7.h:202: if ( EP0BCL<64 ) {
0C5C 85*0D B4 4105 mov _OEC,_fpga_send_ep0_oOEC_1_1
4106 ; ../../include/ztex-fpga7.h:203: finish_fpga_configuration();
0C5F 90 E6 8B 4107 mov dptr,#_EP0BCL
0C62 E0 4108 movx a,@dptr
0C63 FA 4109 mov r2,a
0C64 BA 40 00 4110 cjne r2,#0x40,00106$
0C67 4111 00106$:
0C67 50 03 4112 jnc 00103$
4113 ; ../../include/ztex-fpga7.h:204: }
0C69 02s0BrC3 4114 ljmp _finish_fpga_configuration
0C6C 4115 00103$:
0C6C 22 4116 ret
4117 ;------------------------------------------------------------
4118 ;Allocation info for local variables in function 'fpga_configure_from_flash'
4119 ;------------------------------------------------------------
4120 ;force Allocated to registers r2
4121 ;i Allocated to registers r2 r3
4122 ;------------------------------------------------------------
4123 ; ../../include/ztex-fpga7.h:227: BYTE fpga_configure_from_flash( BYTE force ) {
4124 ; -----------------------------------------
4125 ; function fpga_configure_from_flash
4126 ; -----------------------------------------
0C6D 4127 _fpga_configure_from_flash:
4128 ; ../../include/ztex-fpga7.h:231: if ( ( force == 0 ) && ( IOE & bmBIT6 ) ) {
0C6D E5 82 4129 mov a,dpl
0C6F FA 4130 mov r2,a
0C70 70 0F 4131 jnz 00102$
0C72 E5 B1 4132 mov a,_IOE
0C74 30 E6 0A 4133 jnb acc.6,00102$
4134 ; ../../include/ztex-fpga7.h:232: fpga_flash_result = 1;
0C77 90s00r26 4135 mov dptr,#_fpga_flash_result
0C7A 74 01 4136 mov a,#0x01
0C7C F0 4137 movx @dptr,a
4138 ; ../../include/ztex-fpga7.h:233: return 1;
0C7D 75 82 01 4139 mov dpl,#0x01
0C80 22 4140 ret
0C81 4141 00102$:
4142 ; ../../include/ztex-fpga7.h:236: fpga_flash_result = 0;
0C81 90s00r26 4143 mov dptr,#_fpga_flash_result
0C84 E4 4144 clr a
0C85 F0 4145 movx @dptr,a
4146 ; ../../include/ztex-fpga7.h:238: IFCONFIG = bmBIT7;
0C86 90 E6 01 4147 mov dptr,#_IFCONFIG
0C89 74 80 4148 mov a,#0x80
0C8B F0 4149 movx @dptr,a
4150 ; ../../include/ezregs.h:46: __endasm;
4151
0C8C 00 4152 nop
0C8D 00 4153 nop
0C8E 00 4154 nop
0C8F 00 4155 nop
4156
4157 ; ../../include/ztex-fpga7.h:240: PORTACFG = 0;
0C90 90 E6 70 4158 mov dptr,#_PORTACFG
4159 ; ../../include/ztex-fpga7.h:241: PORTCCFG = 0;
0C93 E4 4160 clr a
0C94 F0 4161 movx @dptr,a
0C95 90 E6 71 4162 mov dptr,#_PORTCCFG
0C98 F0 4163 movx @dptr,a
4164 ; ../../include/ztex-fpga7.h:244: OEA &= bmBIT2; // only unsed PA bit
0C99 53 B2 04 4165 anl _OEA,#0x04
4166 ; ../../include/ztex-fpga7.h:247: OEC &= ~bmBIT0;
0C9C 53 B4 FE 4167 anl _OEC,#0xFE
4168 ; ../../include/ztex-fpga7.h:249: OEE = (OEE & ~bmBIT6) | bmBIT7;
0C9F AA B6 4169 mov r2,_OEE
0CA1 74 BF 4170 mov a,#0xBF
0CA3 5A 4171 anl a,r2
0CA4 F5 F0 4172 mov b,a
0CA6 74 80 4173 mov a,#0x80
0CA8 45 F0 4174 orl a,b
0CAA F5 B6 4175 mov _OEE,a
4176 ; ../../include/ztex-fpga7.h:250: IOE = IOE & ~bmBIT7; // PROG_B = 0
0CAC 53 B1 7F 4177 anl _IOE,#0x7F
4178 ; ../../include/ztex-fpga7.h:253: OEA |= bmBIT4 | bmBIT5;
0CAF 43 B2 30 4179 orl _OEA,#0x30
4180 ; ../../include/ztex-fpga7.h:254: IOA = ( IOA & bmBIT2 ) | bmBIT4;
0CB2 74 04 4181 mov a,#0x04
0CB4 55 80 4182 anl a,_IOA
0CB6 F5 F0 4183 mov b,a
0CB8 74 10 4184 mov a,#0x10
0CBA 45 F0 4185 orl a,b
0CBC F5 80 4186 mov _IOA,a
4187 ; ../../include/ztex-fpga7.h:255: wait(1);
0CBE 90 00 01 4188 mov dptr,#0x0001
0CC1 12s00r01 4189 lcall _wait
4190 ; ../../include/ztex-fpga7.h:257: IOE = IOE | bmBIT7; // PROG_B = 1
0CC4 43 B1 80 4191 orl _IOE,#0x80
4192 ; ../../include/ztex-fpga7.h:260: wait(20);
0CC7 90 00 14 4193 mov dptr,#0x0014
0CCA 12s00r01 4194 lcall _wait
4195 ; ../../include/ztex-fpga7.h:261: for (i=0; IOA7 && (!IOA1) && i<4000; i++ ) {
0CCD 7A 00 4196 mov r2,#0x00
0CCF 7B 00 4197 mov r3,#0x00
0CD1 4198 00109$:
0CD1 30 87 21 4199 jnb _IOA7,00112$
0CD4 20 81 1E 4200 jb _IOA1,00112$
0CD7 C3 4201 clr c
0CD8 EA 4202 mov a,r2
0CD9 94 A0 4203 subb a,#0xA0
0CDB EB 4204 mov a,r3
0CDC 94 0F 4205 subb a,#0x0F
0CDE 50 15 4206 jnc 00112$
4207 ; ../../include/ztex-fpga7.h:262: wait(1);
0CE0 90 00 01 4208 mov dptr,#0x0001
0CE3 C0 02 4209 push ar2
0CE5 C0 03 4210 push ar3
0CE7 12s00r01 4211 lcall _wait
0CEA D0 03 4212 pop ar3
0CEC D0 02 4213 pop ar2
4214 ; ../../include/ztex-fpga7.h:261: for (i=0; IOA7 && (!IOA1) && i<4000; i++ ) {
0CEE 0A 4215 inc r2
0CEF BA 00 DF 4216 cjne r2,#0x00,00109$
0CF2 0B 4217 inc r3
0CF3 80 DC 4218 sjmp 00109$
0CF5 4219 00112$:
4220 ; ../../include/ztex-fpga7.h:265: wait(1);
0CF5 90 00 01 4221 mov dptr,#0x0001
0CF8 12s00r01 4222 lcall _wait
4223 ; ../../include/ztex-fpga7.h:267: if ( IOE & bmBIT6 ) {
0CFB E5 B1 4224 mov a,_IOE
0CFD 30 E6 05 4225 jnb acc.6,00105$
4226 ; ../../include/ztex-fpga7.h:269: post_fpga_config();
0D00 12s0BrC2 4227 lcall _post_fpga_config
0D03 80 09 4228 sjmp 00106$
0D05 4229 00105$:
4230 ; ../../include/ztex-fpga7.h:274: init_fpga();
0D05 12s0ArEE 4231 lcall _init_fpga
4232 ; ../../include/ztex-fpga7.h:275: fpga_flash_result = 4;
0D08 90s00r26 4233 mov dptr,#_fpga_flash_result
0D0B 74 04 4234 mov a,#0x04
0D0D F0 4235 movx @dptr,a
0D0E 4236 00106$:
4237 ; ../../include/ztex-fpga7.h:278: return fpga_flash_result;
0D0E 90s00r26 4238 mov dptr,#_fpga_flash_result
0D11 E0 4239 movx a,@dptr
0D12 F5 82 4240 mov dpl,a
0D14 22 4241 ret
4242 ;------------------------------------------------------------
4243 ;Allocation info for local variables in function 'fpga_first_free_sector'
4244 ;------------------------------------------------------------
4245 ;i Allocated to registers r2
4246 ;j Allocated to registers r3
4247 ;buf Allocated with name '_fpga_first_free_sector_buf_1_1'
4248 ;------------------------------------------------------------
4249 ; ../../include/ztex-fpga-flash2.h:31: WORD fpga_first_free_sector() {
4250 ; -----------------------------------------
4251 ; function fpga_first_free_sector
4252 ; -----------------------------------------
0D15 4253 _fpga_first_free_sector:
4254 ; ../../include/ztex-fpga-flash2.h:36: if ( config_data_valid ) {
0D15 90s00r06 4255 mov dptr,#_config_data_valid
0D18 E0 4256 movx a,@dptr
0D19 FA 4257 mov r2,a
0D1A 60 56 4258 jz 00104$
4259 ; ../../include/ztex-fpga-flash2.h:37: mac_eeprom_read ( (__xdata BYTE*) buf, 26, 4 ); // read actual and max bitstream size
0D1C 75*08 1A 4260 mov _mac_eeprom_read_PARM_2,#0x1A
0D1F 75*09 04 4261 mov _mac_eeprom_read_PARM_3,#0x04
0D22 90s00r29 4262 mov dptr,#_fpga_first_free_sector_buf_1_1
0D25 12s03r70 4263 lcall _mac_eeprom_read
4264 ; ../../include/ztex-fpga-flash2.h:38: if ( buf[1] != 0 ) {
0D28 90s00r2B 4265 mov dptr,#(_fpga_first_free_sector_buf_1_1 + 0x0002)
0D2B E0 4266 movx a,@dptr
0D2C FA 4267 mov r2,a
0D2D A3 4268 inc dptr
0D2E E0 4269 movx a,@dptr
0D2F FB 4270 mov r3,a
0D30 4A 4271 orl a,r2
0D31 60 3F 4272 jz 00104$
4273 ; ../../include/ztex-fpga-flash2.h:39: return ( ( ( buf[1] > buf[0] ? buf[1] : buf[0] ) - 1 ) >> ((flash_sector_size & 255) - 12) ) + 1;
0D33 90s00r29 4274 mov dptr,#_fpga_first_free_sector_buf_1_1
0D36 E0 4275 movx a,@dptr
0D37 FC 4276 mov r4,a
0D38 A3 4277 inc dptr
0D39 E0 4278 movx a,@dptr
0D3A FD 4279 mov r5,a
0D3B C3 4280 clr c
0D3C EC 4281 mov a,r4
0D3D 9A 4282 subb a,r2
0D3E ED 4283 mov a,r5
0D3F 9B 4284 subb a,r3
0D40 40 04 4285 jc 00115$
0D42 8C 02 4286 mov ar2,r4
0D44 8D 03 4287 mov ar3,r5
0D46 4288 00115$:
0D46 1A 4289 dec r2
0D47 BA FF 01 4290 cjne r2,#0xff,00127$
0D4A 1B 4291 dec r3
0D4B 4292 00127$:
0D4B 90s00r08 4293 mov dptr,#_flash_sector_size
0D4E E0 4294 movx a,@dptr
0D4F FC 4295 mov r4,a
0D50 A3 4296 inc dptr
0D51 E0 4297 movx a,@dptr
0D52 7D 00 4298 mov r5,#0x00
0D54 EC 4299 mov a,r4
0D55 24 F4 4300 add a,#0xf4
0D57 FC 4301 mov r4,a
0D58 ED 4302 mov a,r5
0D59 34 FF 4303 addc a,#0xff
0D5B FD 4304 mov r5,a
0D5C 8C F0 4305 mov b,r4
0D5E 05 F0 4306 inc b
0D60 80 07 4307 sjmp 00129$
0D62 4308 00128$:
0D62 C3 4309 clr c
0D63 EB 4310 mov a,r3
0D64 13 4311 rrc a
0D65 FB 4312 mov r3,a
0D66 EA 4313 mov a,r2
0D67 13 4314 rrc a
0D68 FA 4315 mov r2,a
0D69 4316 00129$:
0D69 D5 F0 F6 4317 djnz b,00128$
0D6C 8A 82 4318 mov dpl,r2
0D6E 8B 83 4319 mov dph,r3
0D70 A3 4320 inc dptr
0D71 22 4321 ret
0D72 4322 00104$:
4323 ; ../../include/ztex-fpga-flash2.h:42: #endif
0D72 90 00 00 4324 mov dptr,#0x0000
0D75 12s06rFF 4325 lcall _flash_read_init
4326 ; ../../include/ztex-fpga-flash2.h:44: for ( i=0; i<8 && flash_read_byte()==fpga_flash_boot_id[i]; i++ );
0D78 7A 00 4327 mov r2,#0x00
0D7A 4328 00108$:
0D7A BA 08 00 4329 cjne r2,#0x08,00130$
0D7D 4330 00130$:
0D7D 50 16 4331 jnc 00111$
0D7F C0 02 4332 push ar2
0D81 12s05r85 4333 lcall _flash_read_byte
0D84 AB 82 4334 mov r3,dpl
0D86 D0 02 4335 pop ar2
0D88 EA 4336 mov a,r2
0D89 90s00r00 4337 mov dptr,#_fpga_flash_boot_id
0D8C 93 4338 movc a,@a+dptr
0D8D FC 4339 mov r4,a
0D8E EB 4340 mov a,r3
0D8F B5 04 03 4341 cjne a,ar4,00111$
0D92 0A 4342 inc r2
0D93 80 E5 4343 sjmp 00108$
0D95 4344 00111$:
4345 ; ../../include/ztex-fpga-flash2.h:45: if ( i != 8 ) {
0D95 BA 08 02 4346 cjne r2,#0x08,00134$
0D98 80 1A 4347 sjmp 00106$
0D9A 4348 00134$:
4349 ; ../../include/ztex-fpga-flash2.h:46: flash_read_finish(flash_sector_size - i); // dummy-read the rest of the sector + finish read opration
0D9A 7B 00 4350 mov r3,#0x00
0D9C 90s00r08 4351 mov dptr,#_flash_sector_size
0D9F E0 4352 movx a,@dptr
0DA0 FC 4353 mov r4,a
0DA1 A3 4354 inc dptr
0DA2 E0 4355 movx a,@dptr
0DA3 FD 4356 mov r5,a
0DA4 EC 4357 mov a,r4
0DA5 C3 4358 clr c
0DA6 9A 4359 subb a,r2
0DA7 F5 82 4360 mov dpl,a
0DA9 ED 4361 mov a,r5
0DAA 9B 4362 subb a,r3
0DAB F5 83 4363 mov dph,a
0DAD 12s07r85 4364 lcall _flash_read_finish
4365 ; ../../include/ztex-fpga-flash2.h:47: return 0;
0DB0 90 00 00 4366 mov dptr,#0x0000
0DB3 22 4367 ret
0DB4 4368 00106$:
4369 ; ../../include/ztex-fpga-flash2.h:49: i=flash_read_byte();
0DB4 12s05r85 4370 lcall _flash_read_byte
0DB7 AA 82 4371 mov r2,dpl
4372 ; ../../include/ztex-fpga-flash2.h:50: j=flash_read_byte();
0DB9 C0 02 4373 push ar2
0DBB 12s05r85 4374 lcall _flash_read_byte
0DBE AB 82 4375 mov r3,dpl
4376 ; ../../include/ztex-fpga-flash2.h:51: flash_read_finish(flash_sector_size - 10); // dummy-read the rest of the sector + finish read opration
0DC0 90s00r08 4377 mov dptr,#_flash_sector_size
0DC3 E0 4378 movx a,@dptr
0DC4 FC 4379 mov r4,a
0DC5 A3 4380 inc dptr
0DC6 E0 4381 movx a,@dptr
0DC7 FD 4382 mov r5,a
0DC8 EC 4383 mov a,r4
0DC9 24 F6 4384 add a,#0xf6
0DCB F5 82 4385 mov dpl,a
0DCD ED 4386 mov a,r5
0DCE 34 FF 4387 addc a,#0xff
0DD0 F5 83 4388 mov dph,a
0DD2 C0 03 4389 push ar3
0DD4 12s07r85 4390 lcall _flash_read_finish
0DD7 D0 03 4391 pop ar3
0DD9 D0 02 4392 pop ar2
4393 ; ../../include/ztex-fpga-flash2.h:53: return (i | (j<<8))+1;
0DDB 8B 04 4394 mov ar4,r3
0DDD E4 4395 clr a
0DDE FB 4396 mov r3,a
0DDF FD 4397 mov r5,a
0DE0 EA 4398 mov a,r2
0DE1 42 03 4399 orl ar3,a
0DE3 ED 4400 mov a,r5
0DE4 42 04 4401 orl ar4,a
0DE6 8B 82 4402 mov dpl,r3
0DE8 8C 83 4403 mov dph,r4
0DEA A3 4404 inc dptr
0DEB 22 4405 ret
4406 ;------------------------------------------------------------
4407 ;Allocation info for local variables in function 'fpga_configure_from_flash_init'
4408 ;------------------------------------------------------------
4409 ;i Allocated to registers r2
4410 ;buf Allocated with name '_fpga_configure_from_flash_init_buf_1_1'
4411 ;------------------------------------------------------------
4412 ; ../../include/ztex-fpga-flash2.h:60: BYTE fpga_configure_from_flash_init() {
4413 ; -----------------------------------------
4414 ; function fpga_configure_from_flash_init
4415 ; -----------------------------------------
0DEC 4416 _fpga_configure_from_flash_init:
4417 ; ../../include/ztex-fpga-flash2.h:66: if ( config_data_valid ) {
0DEC 90s00r06 4418 mov dptr,#_config_data_valid
0DEF E0 4419 movx a,@dptr
0DF0 FA 4420 mov r2,a
0DF1 60 2F 4421 jz 00106$
4422 ; ../../include/ztex-fpga-flash2.h:67: mac_eeprom_read ( (__xdata BYTE*) buf, 26, 4 ); // read actual and max bitstream size
0DF3 75*08 1A 4423 mov _mac_eeprom_read_PARM_2,#0x1A
0DF6 75*09 04 4424 mov _mac_eeprom_read_PARM_3,#0x04
0DF9 90s00r2D 4425 mov dptr,#_fpga_configure_from_flash_init_buf_1_1
0DFC 12s03r70 4426 lcall _mac_eeprom_read
4427 ; ../../include/ztex-fpga-flash2.h:68: if ( buf[1] != 0 ) {
0DFF 90s00r2F 4428 mov dptr,#(_fpga_configure_from_flash_init_buf_1_1 + 0x0002)
0E02 E0 4429 movx a,@dptr
0E03 FA 4430 mov r2,a
0E04 A3 4431 inc dptr
0E05 E0 4432 movx a,@dptr
0E06 FB 4433 mov r3,a
0E07 4A 4434 orl a,r2
0E08 60 18 4435 jz 00106$
4436 ; ../../include/ztex-fpga-flash2.h:69: if ( buf[0] == 0 ) {
0E0A 90s00r2D 4437 mov dptr,#_fpga_configure_from_flash_init_buf_1_1
0E0D E0 4438 movx a,@dptr
0E0E FA 4439 mov r2,a
0E0F A3 4440 inc dptr
0E10 E0 4441 movx a,@dptr
0E11 FB 4442 mov r3,a
0E12 4A 4443 orl a,r2
0E13 60 03 4444 jz 00140$
0E15 02s0ErAF 4445 ljmp 00113$
0E18 4446 00140$:
4447 ; ../../include/ztex-fpga-flash2.h:70: return fpga_flash_result = 3;
0E18 90s00r26 4448 mov dptr,#_fpga_flash_result
0E1B 74 03 4449 mov a,#0x03
0E1D F0 4450 movx @dptr,a
0E1E 75 82 03 4451 mov dpl,#0x03
0E21 22 4452 ret
4453 ; ../../include/ztex-fpga-flash2.h:73: goto flash_config;
0E22 4454 00106$:
4455 ; ../../include/ztex-fpga-flash2.h:80: if ( flash_read_init( 0 ) ) // prepare reading sector 0
0E22 90 00 00 4456 mov dptr,#0x0000
0E25 12s06rFF 4457 lcall _flash_read_init
0E28 E5 82 4458 mov a,dpl
0E2A 60 0A 4459 jz 00132$
4460 ; ../../include/ztex-fpga-flash2.h:81: return fpga_flash_result = 2;
0E2C 90s00r26 4461 mov dptr,#_fpga_flash_result
0E2F 74 02 4462 mov a,#0x02
0E31 F0 4463 movx @dptr,a
0E32 75 82 02 4464 mov dpl,#0x02
0E35 22 4465 ret
4466 ; ../../include/ztex-fpga-flash2.h:82: for ( i=0; i<8 && flash_read_byte()==fpga_flash_boot_id[i]; i++ );
0E36 4467 00132$:
0E36 7A 00 4468 mov r2,#0x00
0E38 4469 00120$:
0E38 BA 08 00 4470 cjne r2,#0x08,00142$
0E3B 4471 00142$:
0E3B 50 16 4472 jnc 00123$
0E3D C0 02 4473 push ar2
0E3F 12s05r85 4474 lcall _flash_read_byte
0E42 AB 82 4475 mov r3,dpl
0E44 D0 02 4476 pop ar2
0E46 EA 4477 mov a,r2
0E47 90s00r00 4478 mov dptr,#_fpga_flash_boot_id
0E4A 93 4479 movc a,@a+dptr
0E4B FC 4480 mov r4,a
0E4C EB 4481 mov a,r3
0E4D B5 04 03 4482 cjne a,ar4,00123$
0E50 0A 4483 inc r2
0E51 80 E5 4484 sjmp 00120$
0E53 4485 00123$:
4486 ; ../../include/ztex-fpga-flash2.h:83: if ( i != 8 ) {
0E53 BA 08 02 4487 cjne r2,#0x08,00146$
0E56 80 20 4488 sjmp 00110$
0E58 4489 00146$:
4490 ; ../../include/ztex-fpga-flash2.h:84: flash_read_finish(flash_sector_size - i); // dummy-read the rest of the sector + finish read opration
0E58 7B 00 4491 mov r3,#0x00
0E5A 90s00r08 4492 mov dptr,#_flash_sector_size
0E5D E0 4493 movx a,@dptr
0E5E FC 4494 mov r4,a
0E5F A3 4495 inc dptr
0E60 E0 4496 movx a,@dptr
0E61 FD 4497 mov r5,a
0E62 EC 4498 mov a,r4
0E63 C3 4499 clr c
0E64 9A 4500 subb a,r2
0E65 F5 82 4501 mov dpl,a
0E67 ED 4502 mov a,r5
0E68 9B 4503 subb a,r3
0E69 F5 83 4504 mov dph,a
0E6B 12s07r85 4505 lcall _flash_read_finish
4506 ; ../../include/ztex-fpga-flash2.h:85: return fpga_flash_result = 3;
0E6E 90s00r26 4507 mov dptr,#_fpga_flash_result
0E71 74 03 4508 mov a,#0x03
0E73 F0 4509 movx @dptr,a
0E74 75 82 03 4510 mov dpl,#0x03
0E77 22 4511 ret
0E78 4512 00110$:
4513 ; ../../include/ztex-fpga-flash2.h:87: i = flash_read_byte();
0E78 12s05r85 4514 lcall _flash_read_byte
0E7B AA 82 4515 mov r2,dpl
4516 ; ../../include/ztex-fpga-flash2.h:88: i |= flash_read_byte();
0E7D C0 02 4517 push ar2
0E7F 12s05r85 4518 lcall _flash_read_byte
0E82 AB 82 4519 mov r3,dpl
0E84 D0 02 4520 pop ar2
0E86 EB 4521 mov a,r3
0E87 42 02 4522 orl ar2,a
4523 ; ../../include/ztex-fpga-flash2.h:89: flash_read_finish(flash_sector_size - 10); // dummy-read the rest of the sector + finish read opration
0E89 90s00r08 4524 mov dptr,#_flash_sector_size
0E8C E0 4525 movx a,@dptr
0E8D FB 4526 mov r3,a
0E8E A3 4527 inc dptr
0E8F E0 4528 movx a,@dptr
0E90 FC 4529 mov r4,a
0E91 EB 4530 mov a,r3
0E92 24 F6 4531 add a,#0xf6
0E94 F5 82 4532 mov dpl,a
0E96 EC 4533 mov a,r4
0E97 34 FF 4534 addc a,#0xff
0E99 F5 83 4535 mov dph,a
0E9B C0 02 4536 push ar2
0E9D 12s07r85 4537 lcall _flash_read_finish
0EA0 D0 02 4538 pop ar2
4539 ; ../../include/ztex-fpga-flash2.h:90: if ( i==0 )
0EA2 EA 4540 mov a,r2
0EA3 70 0A 4541 jnz 00113$
4542 ; ../../include/ztex-fpga-flash2.h:91: return fpga_flash_result = 3;
0EA5 90s00r26 4543 mov dptr,#_fpga_flash_result
0EA8 74 03 4544 mov a,#0x03
0EAA F0 4545 movx @dptr,a
0EAB 75 82 03 4546 mov dpl,#0x03
4547 ; ../../include/ztex-fpga-flash2.h:93: flash_config:
0EAE 22 4548 ret
0EAF 4549 00113$:
4550 ; ../../include/ztex-fpga-flash2.h:94: fpga_flash_result = fpga_configure_from_flash(0);
0EAF 75 82 00 4551 mov dpl,#0x00
0EB2 12s0Cr6D 4552 lcall _fpga_configure_from_flash
0EB5 AA 82 4553 mov r2,dpl
0EB7 90s00r26 4554 mov dptr,#_fpga_flash_result
0EBA EA 4555 mov a,r2
0EBB F0 4556 movx @dptr,a
4557 ; ../../include/ztex-fpga-flash2.h:95: if ( fpga_flash_result == 1 ) {
0EBC BA 01 05 4558 cjne r2,#0x01,00117$
4559 ; ../../include/ztex-fpga-flash2.h:96: post_fpga_config();
0EBF 12s0BrC2 4560 lcall _post_fpga_config
0EC2 80 0F 4561 sjmp 00118$
0EC4 4562 00117$:
4563 ; ../../include/ztex-fpga-flash2.h:98: else if ( fpga_flash_result == 4 ) {
0EC4 BA 04 0C 4564 cjne r2,#0x04,00118$
4565 ; ../../include/ztex-fpga-flash2.h:99: fpga_flash_result = fpga_configure_from_flash(0); // up to two tries
0EC7 75 82 00 4566 mov dpl,#0x00
0ECA 12s0Cr6D 4567 lcall _fpga_configure_from_flash
0ECD E5 82 4568 mov a,dpl
0ECF 90s00r26 4569 mov dptr,#_fpga_flash_result
0ED2 F0 4570 movx @dptr,a
0ED3 4571 00118$:
4572 ; ../../include/ztex-fpga-flash2.h:101: return fpga_flash_result;
0ED3 90s00r26 4573 mov dptr,#_fpga_flash_result
0ED6 E0 4574 movx a,@dptr
0ED7 F5 82 4575 mov dpl,a
0ED9 22 4576 ret
4577 ;------------------------------------------------------------
4578 ;Allocation info for local variables in function 'abscode_identity'
4579 ;------------------------------------------------------------
4580 ;------------------------------------------------------------
4581 ; ../../include/ztex-descriptors.h:131: void abscode_identity()// _naked
4582 ; -----------------------------------------
4583 ; function abscode_identity
4584 ; -----------------------------------------
0EDA 4585 _abscode_identity:
4586 ; ../../include/ztex-descriptors.h:185: + 64
4587
4588 .area ABSCODE (ABS,CODE)
4589
006C 4590 .org 0x06c
006C 28 4591 .db 40
4592
006D 4593 .org _ZTEX_DESCRIPTOR_VERSION
006D 01 4594 .db 1
4595
006E 4596 .org _ZTEXID
006E 5A 54 45 58 4597 .ascii "ZTEX"
4598
0072 4599 .org _PRODUCT_ID
0072 0A 4600 .db 10
0073 13 4601 .db 19
0074 00 4602 .db 0
0075 00 4603 .db 0
4604
0076 4605 .org _FW_VERSION
0076 00 4606 .db 0
4607
0077 4608 .org _INTERFACE_VERSION
0077 01 4609 .db 1
4610
0078 4611 .org _INTERFACE_CAPABILITIES
4612 ; # 185 "../../include/ztex-descriptors.h"
0078 47 4613 .db 0 + 1 + 2 + 4 + 64
4614 ; # 191 "../../include/ztex-descriptors.h"
0079 00 4615 .db 0
007A 00 4616 .db 0
007B 00 4617 .db 0
007C 00 4618 .db 0
007D 00 4619 .db 0
4620
007E 4621 .org _MODULE_RESERVED
007E 00 4622 .db 0
007F 00 4623 .db 0
0080 00 4624 .db 0
0081 00 4625 .db 0
0082 00 4626 .db 0
0083 00 4627 .db 0
0084 00 4628 .db 0
0085 00 4629 .db 0
0086 00 4630 .db 0
0087 00 4631 .db 0
0088 00 4632 .db 0
0089 00 4633 .db 0
4634
008A 4635 .org _SN_STRING
008A 30 30 30 30 30 30 4636 .ascii "0000000000"
30 30 30 30
4637
4638 .area CSEG (CODE)
4639
0EDA 22 4640 ret
4641 ;------------------------------------------------------------
4642 ;Allocation info for local variables in function 'resetToggleData'
4643 ;------------------------------------------------------------
4644 ;------------------------------------------------------------
4645 ; ../../include/ztex-isr.h:34: static void resetToggleData () {
4646 ; -----------------------------------------
4647 ; function resetToggleData
4648 ; -----------------------------------------
0EDB 4649 _resetToggleData:
4650 ; ../../include/ztex-isr.h:45: TOGCTL = 0; // EP0 out
4651 ; ../../include/ztex-isr.h:46: TOGCTL = 0 | bmBIT5;
4652 ; ../../include/ztex-isr.h:47: TOGCTL = 0x10; // EP0 in
4653 ; ../../include/ztex-isr.h:48: TOGCTL = 0x10 | bmBIT5;
0EDB 90 E6 83 4654 mov dptr,#_TOGCTL
0EDE E4 4655 clr a
0EDF F0 4656 movx @dptr,a
0EE0 74 20 4657 mov a,#0x20
0EE2 F0 4658 movx @dptr,a
0EE3 74 10 4659 mov a,#0x10
0EE5 F0 4660 movx @dptr,a
0EE6 74 30 4661 mov a,#0x30
0EE8 F0 4662 movx @dptr,a
4663 ; ../../include/ztex-isr.h:49: #ifeq[EP1OUT_DIR][OUT]
4664 ; ../../include/ztex-isr.h:51: TOGCTL = 1 | bmBIT5;
4665 ; ../../include/ztex-isr.h:52: #endif
4666 ; ../../include/ztex-isr.h:55: TOGCTL = 0x11 | bmBIT5;
0EE9 90 E6 83 4667 mov dptr,#_TOGCTL
0EEC 74 01 4668 mov a,#0x01
0EEE F0 4669 movx @dptr,a
0EEF 74 21 4670 mov a,#0x21
0EF1 F0 4671 movx @dptr,a
0EF2 74 11 4672 mov a,#0x11
0EF4 F0 4673 movx @dptr,a
0EF5 74 31 4674 mov a,#0x31
0EF7 F0 4675 movx @dptr,a
0EF8 22 4676 ret
4677 ;------------------------------------------------------------
4678 ;Allocation info for local variables in function 'sendStringDescriptor'
4679 ;------------------------------------------------------------
4680 ;hiAddr Allocated with name '_sendStringDescriptor_PARM_2'
4681 ;size Allocated with name '_sendStringDescriptor_PARM_3'
4682 ;loAddr Allocated to registers r2
4683 ;i Allocated to registers r2
4684 ;------------------------------------------------------------
4685 ; ../../include/ztex-isr.h:68: static void sendStringDescriptor (BYTE loAddr, BYTE hiAddr, BYTE size)
4686 ; -----------------------------------------
4687 ; function sendStringDescriptor
4688 ; -----------------------------------------
0EF9 4689 _sendStringDescriptor:
0EF9 AA 82 4690 mov r2,dpl
4691 ; ../../include/ztex-isr.h:71: if ( size > 31) size = 31;
0EFB E5*01 4692 mov a,_sendStringDescriptor_PARM_3
0EFD 24 E0 4693 add a,#0xff - 0x1F
0EFF 50 03 4694 jnc 00102$
0F01 75*01 1F 4695 mov _sendStringDescriptor_PARM_3,#0x1F
0F04 4696 00102$:
4697 ; ../../include/ztex-isr.h:72: if (SETUPDAT[7] == 0 && SETUPDAT[6]<size ) size = SETUPDAT[6];
0F04 90 E6 BF 4698 mov dptr,#(_SETUPDAT + 0x0007)
0F07 E0 4699 movx a,@dptr
0F08 70 10 4700 jnz 00104$
0F0A 90 E6 BE 4701 mov dptr,#(_SETUPDAT + 0x0006)
0F0D E0 4702 movx a,@dptr
0F0E FB 4703 mov r3,a
0F0F C3 4704 clr c
0F10 95*01 4705 subb a,_sendStringDescriptor_PARM_3
0F12 50 06 4706 jnc 00104$
0F14 90 E6 BE 4707 mov dptr,#(_SETUPDAT + 0x0006)
0F17 E0 4708 movx a,@dptr
0F18 F5*01 4709 mov _sendStringDescriptor_PARM_3,a
0F1A 4710 00104$:
4711 ; ../../include/ztex-isr.h:73: AUTOPTRSETUP = 7;
0F1A 75 AF 07 4712 mov _AUTOPTRSETUP,#0x07
4713 ; ../../include/ztex-isr.h:74: AUTOPTRL1 = loAddr;
0F1D 8A 9B 4714 mov _AUTOPTRL1,r2
4715 ; ../../include/ztex-isr.h:75: AUTOPTRH1 = hiAddr;
0F1F 85*00 9A 4716 mov _AUTOPTRH1,_sendStringDescriptor_PARM_2
4717 ; ../../include/ztex-isr.h:76: AUTOPTRL2 = (BYTE)(((unsigned short)(&EP0BUF))+1);
0F22 75 9E 41 4718 mov _AUTOPTRL2,#0x41
4719 ; ../../include/ztex-isr.h:77: AUTOPTRH2 = (BYTE)((((unsigned short)(&EP0BUF))+1) >> 8);
0F25 75 9D E7 4720 mov _AUTOPTRH2,#0xE7
4721 ; ../../include/ztex-isr.h:78: XAUTODAT2 = 3;
0F28 90 E6 7C 4722 mov dptr,#_XAUTODAT2
0F2B 74 03 4723 mov a,#0x03
0F2D F0 4724 movx @dptr,a
4725 ; ../../include/ztex-isr.h:79: for (i=0; i<size; i++) {
0F2E 7A 00 4726 mov r2,#0x00
0F30 4727 00106$:
0F30 C3 4728 clr c
0F31 EA 4729 mov a,r2
0F32 95*01 4730 subb a,_sendStringDescriptor_PARM_3
0F34 50 11 4731 jnc 00109$
4732 ; ../../include/ztex-isr.h:80: XAUTODAT2 = XAUTODAT1;
0F36 90 E6 7B 4733 mov dptr,#_XAUTODAT1
0F39 E0 4734 movx a,@dptr
0F3A FB 4735 mov r3,a
0F3B 90 E6 7C 4736 mov dptr,#_XAUTODAT2
0F3E F0 4737 movx @dptr,a
4738 ; ../../include/ztex-isr.h:81: XAUTODAT2 = 0;
0F3F 90 E6 7C 4739 mov dptr,#_XAUTODAT2
0F42 E4 4740 clr a
0F43 F0 4741 movx @dptr,a
4742 ; ../../include/ztex-isr.h:79: for (i=0; i<size; i++) {
0F44 0A 4743 inc r2
0F45 80 E9 4744 sjmp 00106$
0F47 4745 00109$:
4746 ; ../../include/ztex-isr.h:83: i = (size+1) << 1;
0F47 E5*01 4747 mov a,_sendStringDescriptor_PARM_3
0F49 04 4748 inc a
4749 ; ../../include/ztex-isr.h:84: EP0BUF[0] = i;
0F4A 25 E0 4750 add a,acc
0F4C FA 4751 mov r2,a
0F4D 90 E7 40 4752 mov dptr,#_EP0BUF
0F50 F0 4753 movx @dptr,a
4754 ; ../../include/ztex-isr.h:85: EP0BUF[1] = 3;
0F51 90 E7 41 4755 mov dptr,#(_EP0BUF + 0x0001)
0F54 74 03 4756 mov a,#0x03
0F56 F0 4757 movx @dptr,a
4758 ; ../../include/ztex-isr.h:86: EP0BCH = 0;
0F57 90 E6 8A 4759 mov dptr,#_EP0BCH
0F5A E4 4760 clr a
0F5B F0 4761 movx @dptr,a
4762 ; ../../include/ztex-isr.h:87: EP0BCL = i;
0F5C 90 E6 8B 4763 mov dptr,#_EP0BCL
0F5F EA 4764 mov a,r2
0F60 F0 4765 movx @dptr,a
0F61 22 4766 ret
4767 ;------------------------------------------------------------
4768 ;Allocation info for local variables in function 'ep0_payload_update'
4769 ;------------------------------------------------------------
4770 ;------------------------------------------------------------
4771 ; ../../include/ztex-isr.h:93: static void ep0_payload_update() {
4772 ; -----------------------------------------
4773 ; function ep0_payload_update
4774 ; -----------------------------------------
0F62 4775 _ep0_payload_update:
4776 ; ../../include/ztex-isr.h:94: ep0_payload_transfer = ( ep0_payload_remaining > 64 ) ? 64 : ep0_payload_remaining;
0F62 90s00r00 4777 mov dptr,#_ep0_payload_remaining
0F65 E0 4778 movx a,@dptr
0F66 FA 4779 mov r2,a
0F67 A3 4780 inc dptr
0F68 E0 4781 movx a,@dptr
0F69 FB 4782 mov r3,a
0F6A C3 4783 clr c
0F6B 74 40 4784 mov a,#0x40
0F6D 9A 4785 subb a,r2
0F6E E4 4786 clr a
0F6F 9B 4787 subb a,r3
0F70 50 06 4788 jnc 00103$
0F72 7C 40 4789 mov r4,#0x40
0F74 7D 00 4790 mov r5,#0x00
0F76 80 04 4791 sjmp 00104$
0F78 4792 00103$:
0F78 8A 04 4793 mov ar4,r2
0F7A 8B 05 4794 mov ar5,r3
0F7C 4795 00104$:
0F7C 90s00r02 4796 mov dptr,#_ep0_payload_transfer
0F7F EC 4797 mov a,r4
0F80 F0 4798 movx @dptr,a
4799 ; ../../include/ztex-isr.h:95: ep0_payload_remaining -= ep0_payload_transfer;
0F81 7D 00 4800 mov r5,#0x00
0F83 90s00r00 4801 mov dptr,#_ep0_payload_remaining
0F86 EA 4802 mov a,r2
0F87 C3 4803 clr c
0F88 9C 4804 subb a,r4
0F89 F0 4805 movx @dptr,a
0F8A EB 4806 mov a,r3
0F8B 9D 4807 subb a,r5
0F8C A3 4808 inc dptr
0F8D F0 4809 movx @dptr,a
0F8E 22 4810 ret
4811 ;------------------------------------------------------------
4812 ;Allocation info for local variables in function 'ep0_vendor_cmd_su'
4813 ;------------------------------------------------------------
4814 ;------------------------------------------------------------
4815 ; ../../include/ztex-isr.h:102: static void ep0_vendor_cmd_su() {
4816 ; -----------------------------------------
4817 ; function ep0_vendor_cmd_su
4818 ; -----------------------------------------
0F8F 4819 _ep0_vendor_cmd_su:
4820 ; ../../include/ztex-isr.h:103: switch ( ep0_prev_setup_request ) {
0F8F 90s00r03 4821 mov dptr,#_ep0_prev_setup_request
0F92 E0 4822 movx a,@dptr
0F93 FA 4823 mov r2,a
0F94 BA 31 02 4824 cjne r2,#0x31,00123$
0F97 80 77 4825 sjmp 00107$
0F99 4826 00123$:
0F99 BA 32 02 4827 cjne r2,#0x32,00124$
0F9C 80 75 4828 sjmp 00108$
0F9E 4829 00124$:
0F9E BA 39 02 4830 cjne r2,#0x39,00125$
0FA1 80 0A 4831 sjmp 00101$
0FA3 4832 00125$:
0FA3 BA 3C 02 4833 cjne r2,#0x3C,00126$
0FA6 80 29 4834 sjmp 00102$
0FA8 4835 00126$:
4836 ; ../../include/ztex-conf.h:123: case $0:
0FA8 BA 42 74 4837 cjne r2,#0x42,00111$
0FAB 80 2D 4838 sjmp 00103$
0FAD 4839 00101$:
4840 ; ../../include/ztex-eeprom.h:236: eeprom_write_checksum = 0;
0FAD 90s00r04 4841 mov dptr,#_eeprom_write_checksum
4842 ; ../../include/ztex-eeprom.h:237: eeprom_write_bytes = 0;
0FB0 E4 4843 clr a
0FB1 F0 4844 movx @dptr,a
0FB2 90s00r02 4845 mov dptr,#_eeprom_write_bytes
0FB5 F0 4846 movx @dptr,a
0FB6 A3 4847 inc dptr
0FB7 F0 4848 movx @dptr,a
4849 ; ../../include/ztex-eeprom.h:238: eeprom_addr = ( SETUPDAT[3] << 8) | SETUPDAT[2]; // Address
0FB8 90 E6 BB 4850 mov dptr,#(_SETUPDAT + 0x0003)
0FBB E0 4851 movx a,@dptr
0FBC FB 4852 mov r3,a
0FBD 7A 00 4853 mov r2,#0x00
0FBF 90 E6 BA 4854 mov dptr,#(_SETUPDAT + 0x0002)
0FC2 E0 4855 movx a,@dptr
0FC3 FC 4856 mov r4,a
0FC4 7D 00 4857 mov r5,#0x00
0FC6 90s00r00 4858 mov dptr,#_eeprom_addr
0FC9 EC 4859 mov a,r4
0FCA 4A 4860 orl a,r2
0FCB F0 4861 movx @dptr,a
0FCC ED 4862 mov a,r5
0FCD 4B 4863 orl a,r3
0FCE A3 4864 inc dptr
0FCF F0 4865 movx @dptr,a
4866 ; ../../include/ztex-conf.h:125: break;
4867 ; ../../include/ztex-conf.h:123: case $0:
0FD0 22 4868 ret
0FD1 4869 00102$:
4870 ; ../../include/ztex-conf.h:125: break;
0FD1 90 E6 BA 4871 mov dptr,#(_SETUPDAT + 0x0002)
0FD4 E0 4872 movx a,@dptr
0FD5 90s00r05 4873 mov dptr,#_mac_eeprom_addr
0FD8 F0 4874 movx @dptr,a
4875 ; ../../include/ztex-conf.h:123: case $0:
0FD9 22 4876 ret
0FDA 4877 00103$:
4878 ; ../../include/ztex-flash2.h:698: ep0_write_mode = SETUPDAT[5];
0FDA 90 E6 BD 4879 mov dptr,#(_SETUPDAT + 0x0005)
0FDD E0 4880 movx a,@dptr
0FDE FA 4881 mov r2,a
0FDF 90s00r1F 4882 mov dptr,#_ep0_write_mode
0FE2 F0 4883 movx @dptr,a
4884 ; ../../include/ztex-flash2.h:699: if ( (ep0_write_mode == 0) && flash_write_init((SETUPDAT[3] << 8) | SETUPDAT[2]) ) {
0FE3 EA 4885 mov a,r2
0FE4 70 41 4886 jnz 00113$
0FE6 90 E6 BB 4887 mov dptr,#(_SETUPDAT + 0x0003)
0FE9 E0 4888 movx a,@dptr
0FEA FB 4889 mov r3,a
0FEB 7A 00 4890 mov r2,#0x00
0FED 90 E6 BA 4891 mov dptr,#(_SETUPDAT + 0x0002)
0FF0 E0 4892 movx a,@dptr
0FF1 7D 00 4893 mov r5,#0x00
0FF3 4A 4894 orl a,r2
0FF4 F5 82 4895 mov dpl,a
0FF6 ED 4896 mov a,r5
0FF7 4B 4897 orl a,r3
0FF8 F5 83 4898 mov dph,a
0FFA 12s08rFB 4899 lcall _flash_write_init
0FFD E5 82 4900 mov a,dpl
0FFF 60 26 4901 jz 00113$
4902 ; ../../include/ztex-conf.h:137: EP0CS |= 0x01; // set stall
1001 90 E6 A0 4903 mov dptr,#_EP0CS
1004 E0 4904 movx a,@dptr
1005 44 01 4905 orl a,#0x01
1007 F0 4906 movx @dptr,a
4907 ; ../../include/ztex-conf.h:138: ep0_payload_remaining = 0;
1008 90s00r00 4908 mov dptr,#_ep0_payload_remaining
100B E4 4909 clr a
100C F0 4910 movx @dptr,a
100D A3 4911 inc dptr
100E F0 4912 movx @dptr,a
4913 ; ../../include/ztex-conf.h:139: break;
4914 ; ../../include/ztex-conf.h:123: case $0:
100F 22 4915 ret
1010 4916 00107$:
4917 ; ../../include/ztex-conf.h:124: $1
4918 ; ../../include/ztex-conf.h:125: break;
4919 ; ../../include/ztex-conf.h:123: case $0:
1010 02s0ArCF 4920 ljmp _reset_fpga
1013 4921 00108$:
4922 ; ../../include/ztex-fpga7.h:208: if ( fpga_conf_initialized != 123 )
1013 90s00r27 4923 mov dptr,#_fpga_conf_initialized
1016 E0 4924 movx a,@dptr
1017 FA 4925 mov r2,a
1018 BA 7B 01 4926 cjne r2,#0x7B,00130$
101B 22 4927 ret
101C 4928 00130$:
4929 ; ../../include/ztex-fpga7.h:209: init_fpga_configuration();
4930 ; ../../include/ztex-conf.h:125: break;
4931 ; ../../include/ztex-isr.h:105: default:
101C 02s0Br2D 4932 ljmp _init_fpga_configuration
101F 4933 00111$:
4934 ; ../../include/ztex-isr.h:106: EP0CS |= 0x01; // set stall, unknown request
101F 90 E6 A0 4935 mov dptr,#_EP0CS
1022 E0 4936 movx a,@dptr
1023 FA 4937 mov r2,a
1024 44 01 4938 orl a,#0x01
1026 F0 4939 movx @dptr,a
4940 ; ../../include/ztex-isr.h:107: }
1027 4941 00113$:
1027 22 4942 ret
4943 ;------------------------------------------------------------
4944 ;Allocation info for local variables in function 'SUDAV_ISR'
4945 ;------------------------------------------------------------
4946 ;a Allocated to registers r2
4947 ;------------------------------------------------------------
4948 ; ../../include/ztex-isr.h:113: static void SUDAV_ISR () __interrupt
4949 ; -----------------------------------------
4950 ; function SUDAV_ISR
4951 ; -----------------------------------------
1028 4952 _SUDAV_ISR:
1028 C0*00 4953 push bits
102A C0 E0 4954 push acc
102C C0 F0 4955 push b
102E C0 82 4956 push dpl
1030 C0 83 4957 push dph
1032 C0 02 4958 push (0+2)
1034 C0 03 4959 push (0+3)
1036 C0 04 4960 push (0+4)
1038 C0 05 4961 push (0+5)
103A C0 06 4962 push (0+6)
103C C0 07 4963 push (0+7)
103E C0 00 4964 push (0+0)
1040 C0 01 4965 push (0+1)
1042 C0 D0 4966 push psw
1044 75 D0 00 4967 mov psw,#0x00
4968 ; ../../include/ztex-isr.h:116: ep0_prev_setup_request = bRequest;
1047 90 E6 B9 4969 mov dptr,#_bRequest
104A E0 4970 movx a,@dptr
104B FA 4971 mov r2,a
104C 90s00r03 4972 mov dptr,#_ep0_prev_setup_request
104F F0 4973 movx @dptr,a
4974 ; ../../include/ztex-isr.h:117: SUDPTRCTL = 1;
1050 90 E6 B5 4975 mov dptr,#_SUDPTRCTL
1053 74 01 4976 mov a,#0x01
1055 F0 4977 movx @dptr,a
4978 ; ../../include/ztex-isr.h:120: switch ( bRequest ) {
1056 90 E6 B9 4979 mov dptr,#_bRequest
1059 E0 4980 movx a,@dptr
105A FA 4981 mov r2,a
105B 24 F3 4982 add a,#0xff - 0x0C
105D 50 03 4983 jnc 00238$
105F 02s13rDE 4984 ljmp 00160$
1062 4985 00238$:
1062 EA 4986 mov a,r2
1063 2A 4987 add a,r2
1064 2A 4988 add a,r2
1065 90s10r69 4989 mov dptr,#00239$
1068 73 4990 jmp @a+dptr
1069 4991 00239$:
1069 02s10r90 4992 ljmp 00101$
106C 02s11r44 4993 ljmp 00112$
106F 02s13rDE 4994 ljmp 00160$
1072 02s11rC1 4995 ljmp 00122$
1075 02s13rDE 4996 ljmp 00160$
1078 02s13rDE 4997 ljmp 00160$
107B 02s12r59 4998 ljmp 00132$
107E 02s13r74 4999 ljmp 00152$
1081 02s13r76 5000 ljmp 00153$
1084 02s13r87 5001 ljmp 00154$
1087 02s13r8C 5002 ljmp 00155$
108A 02s13r9D 5003 ljmp 00156$
108D 02s13rA2 5004 ljmp 00157$
5005 ; ../../include/ztex-isr.h:121: case 0x00: // get status
1090 5006 00101$:
5007 ; ../../include/ztex-isr.h:122: switch(SETUPDAT[0]) {
1090 90 E6 B8 5008 mov dptr,#_SETUPDAT
1093 E0 5009 movx a,@dptr
1094 FA 5010 mov r2,a
1095 BA 80 02 5011 cjne r2,#0x80,00240$
1098 80 0D 5012 sjmp 00102$
109A 5013 00240$:
109A BA 81 02 5014 cjne r2,#0x81,00241$
109D 80 1E 5015 sjmp 00103$
109F 5016 00241$:
109F BA 82 02 5017 cjne r2,#0x82,00242$
10A2 80 2F 5018 sjmp 00104$
10A4 5019 00242$:
10A4 02s13rDE 5020 ljmp 00160$
5021 ; ../../include/ztex-isr.h:123: case 0x80: // self powered and remote
10A7 5022 00102$:
5023 ; ../../include/ztex-isr.h:124: EP0BUF[0] = 0; // not self-powered, no remote wakeup
10A7 90 E7 40 5024 mov dptr,#_EP0BUF
5025 ; ../../include/ztex-isr.h:125: EP0BUF[1] = 0;
5026 ; ../../include/ztex-isr.h:126: EP0BCH = 0;
10AA E4 5027 clr a
10AB F0 5028 movx @dptr,a
10AC 90 E7 41 5029 mov dptr,#(_EP0BUF + 0x0001)
10AF F0 5030 movx @dptr,a
10B0 90 E6 8A 5031 mov dptr,#_EP0BCH
10B3 F0 5032 movx @dptr,a
5033 ; ../../include/ztex-isr.h:127: EP0BCL = 2;
10B4 90 E6 8B 5034 mov dptr,#_EP0BCL
10B7 74 02 5035 mov a,#0x02
10B9 F0 5036 movx @dptr,a
5037 ; ../../include/ztex-isr.h:128: break;
10BA 02s13rDE 5038 ljmp 00160$
5039 ; ../../include/ztex-isr.h:129: case 0x81: // interface (reserved)
10BD 5040 00103$:
5041 ; ../../include/ztex-isr.h:130: EP0BUF[0] = 0; // always return zeros
10BD 90 E7 40 5042 mov dptr,#_EP0BUF
5043 ; ../../include/ztex-isr.h:131: EP0BUF[1] = 0;
5044 ; ../../include/ztex-isr.h:132: EP0BCH = 0;
10C0 E4 5045 clr a
10C1 F0 5046 movx @dptr,a
10C2 90 E7 41 5047 mov dptr,#(_EP0BUF + 0x0001)
10C5 F0 5048 movx @dptr,a
10C6 90 E6 8A 5049 mov dptr,#_EP0BCH
10C9 F0 5050 movx @dptr,a
5051 ; ../../include/ztex-isr.h:133: EP0BCL = 2;
10CA 90 E6 8B 5052 mov dptr,#_EP0BCL
10CD 74 02 5053 mov a,#0x02
10CF F0 5054 movx @dptr,a
5055 ; ../../include/ztex-isr.h:134: break;
10D0 02s13rDE 5056 ljmp 00160$
5057 ; ../../include/ztex-isr.h:135: case 0x82:
10D3 5058 00104$:
5059 ; ../../include/ztex-isr.h:136: switch ( SETUPDAT[4] ) {
10D3 90 E6 BC 5060 mov dptr,#(_SETUPDAT + 0x0004)
10D6 E0 5061 movx a,@dptr
10D7 FA 5062 mov r2,a
10D8 60 0F 5063 jz 00106$
10DA BA 01 02 5064 cjne r2,#0x01,00244$
10DD 80 19 5065 sjmp 00107$
10DF 5066 00244$:
10DF BA 80 02 5067 cjne r2,#0x80,00245$
10E2 80 05 5068 sjmp 00106$
10E4 5069 00245$:
5070 ; ../../include/ztex-isr.h:138: case 0x80 :
10E4 BA 81 2F 5071 cjne r2,#0x81,00109$
10E7 80 1E 5072 sjmp 00108$
10E9 5073 00106$:
5074 ; ../../include/ztex-isr.h:139: EP0BUF[0] = EP0CS & bmBIT0;
10E9 90 E6 A0 5075 mov dptr,#_EP0CS
10EC E0 5076 movx a,@dptr
10ED FA 5077 mov r2,a
10EE 53 02 01 5078 anl ar2,#0x01
10F1 90 E7 40 5079 mov dptr,#_EP0BUF
10F4 EA 5080 mov a,r2
10F5 F0 5081 movx @dptr,a
5082 ; ../../include/ztex-isr.h:140: break;
5083 ; ../../include/ztex-isr.h:141: case 0x01 :
10F6 80 3A 5084 sjmp 00110$
10F8 5085 00107$:
5086 ; ../../include/ztex-isr.h:142: EP0BUF[0] = EP1OUTCS & bmBIT0;
10F8 90 E6 A1 5087 mov dptr,#_EP1OUTCS
10FB E0 5088 movx a,@dptr
10FC FA 5089 mov r2,a
10FD 53 02 01 5090 anl ar2,#0x01
1100 90 E7 40 5091 mov dptr,#_EP0BUF
1103 EA 5092 mov a,r2
1104 F0 5093 movx @dptr,a
5094 ; ../../include/ztex-isr.h:143: break;
5095 ; ../../include/ztex-isr.h:144: case 0x81 :
1105 80 2B 5096 sjmp 00110$
1107 5097 00108$:
5098 ; ../../include/ztex-isr.h:145: EP0BUF[0] = EP1INCS & bmBIT0;
1107 90 E6 A2 5099 mov dptr,#_EP1INCS
110A E0 5100 movx a,@dptr
110B FA 5101 mov r2,a
110C 53 02 01 5102 anl ar2,#0x01
110F 90 E7 40 5103 mov dptr,#_EP0BUF
1112 EA 5104 mov a,r2
1113 F0 5105 movx @dptr,a
5106 ; ../../include/ztex-isr.h:146: break;
5107 ; ../../include/ztex-isr.h:147: default:
1114 80 1C 5108 sjmp 00110$
1116 5109 00109$:
5110 ; ../../include/ztex-isr.h:148: EP0BUF[0] = EPXCS[ ((SETUPDAT[4] >> 1)-1) & 3 ] & bmBIT0;
1116 90 E6 BC 5111 mov dptr,#(_SETUPDAT + 0x0004)
1119 E0 5112 movx a,@dptr
111A C3 5113 clr c
111B 13 5114 rrc a
111C 14 5115 dec a
111D 54 03 5116 anl a,#0x03
111F 24 A3 5117 add a,#_EPXCS
1121 F5 82 5118 mov dpl,a
1123 E4 5119 clr a
1124 34 E6 5120 addc a,#(_EPXCS >> 8)
1126 F5 83 5121 mov dph,a
1128 E0 5122 movx a,@dptr
1129 FA 5123 mov r2,a
112A 53 02 01 5124 anl ar2,#0x01
112D 90 E7 40 5125 mov dptr,#_EP0BUF
1130 EA 5126 mov a,r2
1131 F0 5127 movx @dptr,a
5128 ; ../../include/ztex-isr.h:150: }
1132 5129 00110$:
5130 ; ../../include/ztex-isr.h:151: EP0BUF[1] = 0;
1132 90 E7 41 5131 mov dptr,#(_EP0BUF + 0x0001)
5132 ; ../../include/ztex-isr.h:152: EP0BCH = 0;
1135 E4 5133 clr a
1136 F0 5134 movx @dptr,a
1137 90 E6 8A 5135 mov dptr,#_EP0BCH
113A F0 5136 movx @dptr,a
5137 ; ../../include/ztex-isr.h:153: EP0BCL = 2;
113B 90 E6 8B 5138 mov dptr,#_EP0BCL
113E 74 02 5139 mov a,#0x02
1140 F0 5140 movx @dptr,a
5141 ; ../../include/ztex-isr.h:156: break;
1141 02s13rDE 5142 ljmp 00160$
5143 ; ../../include/ztex-isr.h:157: case 0x01: // disable feature, e.g. remote wake, stall bit
1144 5144 00112$:
5145 ; ../../include/ztex-isr.h:158: if ( SETUPDAT[0] == 2 && SETUPDAT[2] == 0 ) {
1144 90 E6 B8 5146 mov dptr,#_SETUPDAT
1147 E0 5147 movx a,@dptr
1148 FA 5148 mov r2,a
1149 BA 02 02 5149 cjne r2,#0x02,00247$
114C 80 03 5150 sjmp 00248$
114E 5151 00247$:
114E 02s13rDE 5152 ljmp 00160$
1151 5153 00248$:
1151 90 E6 BA 5154 mov dptr,#(_SETUPDAT + 0x0002)
1154 E0 5155 movx a,@dptr
1155 60 03 5156 jz 00249$
1157 02s13rDE 5157 ljmp 00160$
115A 5158 00249$:
5159 ; ../../include/ztex-isr.h:159: switch ( SETUPDAT[4] ) {
115A 90 E6 BC 5160 mov dptr,#(_SETUPDAT + 0x0004)
115D E0 5161 movx a,@dptr
115E FA 5162 mov r2,a
115F 60 0F 5163 jz 00114$
1161 BA 01 02 5164 cjne r2,#0x01,00251$
1164 80 15 5165 sjmp 00115$
1166 5166 00251$:
1166 BA 80 02 5167 cjne r2,#0x80,00252$
1169 80 05 5168 sjmp 00114$
116B 5169 00252$:
5170 ; ../../include/ztex-isr.h:161: case 0x80 :
116B BA 81 23 5171 cjne r2,#0x81,00117$
116E 80 16 5172 sjmp 00116$
1170 5173 00114$:
5174 ; ../../include/ztex-isr.h:162: EP0CS &= ~bmBIT0;
1170 90 E6 A0 5175 mov dptr,#_EP0CS
1173 E0 5176 movx a,@dptr
1174 FA 5177 mov r2,a
1175 54 FE 5178 anl a,#0xFE
1177 F0 5179 movx @dptr,a
5180 ; ../../include/ztex-isr.h:163: break;
1178 02s13rDE 5181 ljmp 00160$
5182 ; ../../include/ztex-isr.h:164: case 0x01 :
117B 5183 00115$:
5184 ; ../../include/ztex-isr.h:165: EP1OUTCS &= ~bmBIT0;
117B 90 E6 A1 5185 mov dptr,#_EP1OUTCS
117E E0 5186 movx a,@dptr
117F FA 5187 mov r2,a
1180 54 FE 5188 anl a,#0xFE
1182 F0 5189 movx @dptr,a
5190 ; ../../include/ztex-isr.h:166: break;
1183 02s13rDE 5191 ljmp 00160$
5192 ; ../../include/ztex-isr.h:167: case 0x81 :
1186 5193 00116$:
5194 ; ../../include/ztex-isr.h:168: EP1INCS &= ~bmBIT0;
1186 90 E6 A2 5195 mov dptr,#_EP1INCS
1189 E0 5196 movx a,@dptr
118A FA 5197 mov r2,a
118B 54 FE 5198 anl a,#0xFE
118D F0 5199 movx @dptr,a
5200 ; ../../include/ztex-isr.h:169: break;
118E 02s13rDE 5201 ljmp 00160$
5202 ; ../../include/ztex-isr.h:170: default:
1191 5203 00117$:
5204 ; ../../include/ztex-isr.h:171: EPXCS[ ((SETUPDAT[4] >> 1)-1) & 3 ] &= ~bmBIT0;
1191 90 E6 BC 5205 mov dptr,#(_SETUPDAT + 0x0004)
1194 E0 5206 movx a,@dptr
1195 C3 5207 clr c
1196 13 5208 rrc a
1197 14 5209 dec a
1198 54 03 5210 anl a,#0x03
119A 24 A3 5211 add a,#_EPXCS
119C FA 5212 mov r2,a
119D E4 5213 clr a
119E 34 E6 5214 addc a,#(_EPXCS >> 8)
11A0 FB 5215 mov r3,a
11A1 90 E6 BC 5216 mov dptr,#(_SETUPDAT + 0x0004)
11A4 E0 5217 movx a,@dptr
11A5 C3 5218 clr c
11A6 13 5219 rrc a
11A7 14 5220 dec a
11A8 54 03 5221 anl a,#0x03
11AA 24 A3 5222 add a,#_EPXCS
11AC F5 82 5223 mov dpl,a
11AE E4 5224 clr a
11AF 34 E6 5225 addc a,#(_EPXCS >> 8)
11B1 F5 83 5226 mov dph,a
11B3 E0 5227 movx a,@dptr
11B4 FC 5228 mov r4,a
11B5 53 04 FE 5229 anl ar4,#0xFE
11B8 8A 82 5230 mov dpl,r2
11BA 8B 83 5231 mov dph,r3
11BC EC 5232 mov a,r4
11BD F0 5233 movx @dptr,a
5234 ; ../../include/ztex-isr.h:175: break;
11BE 02s13rDE 5235 ljmp 00160$
5236 ; ../../include/ztex-isr.h:176: case 0x03: // enable feature, e.g. remote wake, test mode, stall bit
11C1 5237 00122$:
5238 ; ../../include/ztex-isr.h:177: if ( SETUPDAT[0] == 2 && SETUPDAT[2] == 0 ) {
11C1 90 E6 B8 5239 mov dptr,#_SETUPDAT
11C4 E0 5240 movx a,@dptr
11C5 FA 5241 mov r2,a
11C6 BA 02 02 5242 cjne r2,#0x02,00254$
11C9 80 03 5243 sjmp 00255$
11CB 5244 00254$:
11CB 02s13rDE 5245 ljmp 00160$
11CE 5246 00255$:
11CE 90 E6 BA 5247 mov dptr,#(_SETUPDAT + 0x0002)
11D1 E0 5248 movx a,@dptr
11D2 60 03 5249 jz 00256$
11D4 02s13rDE 5250 ljmp 00160$
11D7 5251 00256$:
5252 ; ../../include/ztex-isr.h:178: switch ( SETUPDAT[4] ) {
11D7 90 E6 BC 5253 mov dptr,#(_SETUPDAT + 0x0004)
11DA E0 5254 movx a,@dptr
11DB FA 5255 mov r2,a
11DC 60 0F 5256 jz 00124$
11DE BA 01 02 5257 cjne r2,#0x01,00258$
11E1 80 14 5258 sjmp 00125$
11E3 5259 00258$:
11E3 BA 80 02 5260 cjne r2,#0x80,00259$
11E6 80 05 5261 sjmp 00124$
11E8 5262 00259$:
5263 ; ../../include/ztex-isr.h:180: case 0x80 :
11E8 BA 81 20 5264 cjne r2,#0x81,00127$
11EB 80 14 5265 sjmp 00126$
11ED 5266 00124$:
5267 ; ../../include/ztex-isr.h:181: EP0CS |= bmBIT0;
11ED 90 E6 A0 5268 mov dptr,#_EP0CS
11F0 E0 5269 movx a,@dptr
11F1 FA 5270 mov r2,a
11F2 44 01 5271 orl a,#0x01
11F4 F0 5272 movx @dptr,a
5273 ; ../../include/ztex-isr.h:182: break;
5274 ; ../../include/ztex-isr.h:183: case 0x01 :
11F5 80 41 5275 sjmp 00128$
11F7 5276 00125$:
5277 ; ../../include/ztex-isr.h:184: EP1OUTCS |= bmBIT0;
11F7 90 E6 A1 5278 mov dptr,#_EP1OUTCS
11FA E0 5279 movx a,@dptr
11FB FA 5280 mov r2,a
11FC 44 01 5281 orl a,#0x01
11FE F0 5282 movx @dptr,a
5283 ; ../../include/ztex-isr.h:185: break;
5284 ; ../../include/ztex-isr.h:186: case 0x81 :
11FF 80 37 5285 sjmp 00128$
1201 5286 00126$:
5287 ; ../../include/ztex-isr.h:187: EP1INCS |= bmBIT0;
1201 90 E6 A2 5288 mov dptr,#_EP1INCS
1204 E0 5289 movx a,@dptr
1205 FA 5290 mov r2,a
1206 44 01 5291 orl a,#0x01
1208 F0 5292 movx @dptr,a
5293 ; ../../include/ztex-isr.h:188: break;
5294 ; ../../include/ztex-isr.h:189: default:
1209 80 2D 5295 sjmp 00128$
120B 5296 00127$:
5297 ; ../../include/ztex-isr.h:190: EPXCS[ ((SETUPDAT[4] >> 1)-1) & 3 ] |= ~bmBIT0;
120B 90 E6 BC 5298 mov dptr,#(_SETUPDAT + 0x0004)
120E E0 5299 movx a,@dptr
120F C3 5300 clr c
1210 13 5301 rrc a
1211 14 5302 dec a
1212 54 03 5303 anl a,#0x03
1214 24 A3 5304 add a,#_EPXCS
1216 FA 5305 mov r2,a
1217 E4 5306 clr a
1218 34 E6 5307 addc a,#(_EPXCS >> 8)
121A FB 5308 mov r3,a
121B 90 E6 BC 5309 mov dptr,#(_SETUPDAT + 0x0004)
121E E0 5310 movx a,@dptr
121F C3 5311 clr c
1220 13 5312 rrc a
1221 14 5313 dec a
1222 54 03 5314 anl a,#0x03
1224 24 A3 5315 add a,#_EPXCS
1226 F5 82 5316 mov dpl,a
1228 E4 5317 clr a
1229 34 E6 5318 addc a,#(_EPXCS >> 8)
122B F5 83 5319 mov dph,a
122D E0 5320 movx a,@dptr
122E FC 5321 mov r4,a
122F 43 04 FE 5322 orl ar4,#0xFE
1232 8A 82 5323 mov dpl,r2
1234 8B 83 5324 mov dph,r3
1236 EC 5325 mov a,r4
1237 F0 5326 movx @dptr,a
5327 ; ../../include/ztex-isr.h:192: }
1238 5328 00128$:
5329 ; ../../include/ztex-isr.h:193: a = ( (SETUPDAT[4] & 0x80) >> 3 ) | (SETUPDAT[4] & 0x0f);
1238 90 E6 BC 5330 mov dptr,#(_SETUPDAT + 0x0004)
123B E0 5331 movx a,@dptr
123C 54 80 5332 anl a,#0x80
123E C4 5333 swap a
123F 23 5334 rl a
1240 54 1F 5335 anl a,#0x1f
1242 FA 5336 mov r2,a
1243 90 E6 BC 5337 mov dptr,#(_SETUPDAT + 0x0004)
1246 E0 5338 movx a,@dptr
1247 FB 5339 mov r3,a
1248 74 0F 5340 mov a,#0x0F
124A 5B 5341 anl a,r3
124B 42 02 5342 orl ar2,a
5343 ; ../../include/ztex-isr.h:194: TOGCTL = a;
5344 ; ../../include/ztex-isr.h:195: TOGCTL = a | bmBIT5;
124D 90 E6 83 5345 mov dptr,#_TOGCTL
1250 EA 5346 mov a,r2
1251 F0 5347 movx @dptr,a
1252 74 20 5348 mov a,#0x20
1254 4A 5349 orl a,r2
1255 F0 5350 movx @dptr,a
5351 ; ../../include/ztex-isr.h:197: break;
1256 02s13rDE 5352 ljmp 00160$
5353 ; ../../include/ztex-isr.h:198: case 0x06: // get descriptor
1259 5354 00132$:
5355 ; ../../include/ztex-isr.h:199: switch(SETUPDAT[3]) {
1259 90 E6 BB 5356 mov dptr,#(_SETUPDAT + 0x0003)
125C E0 5357 movx a,@dptr
125D FA 5358 mov r2,a
125E BA 01 02 5359 cjne r2,#0x01,00261$
1261 80 19 5360 sjmp 00133$
1263 5361 00261$:
1263 BA 02 02 5362 cjne r2,#0x02,00262$
1266 80 26 5363 sjmp 00134$
1268 5364 00262$:
1268 BA 03 02 5365 cjne r2,#0x03,00263$
126B 80 4D 5366 sjmp 00138$
126D 5367 00263$:
126D BA 06 03 5368 cjne r2,#0x06,00264$
1270 02s13r2D 5369 ljmp 00145$
1273 5370 00264$:
1273 BA 07 03 5371 cjne r2,#0x07,00265$
1276 02s13r3F 5372 ljmp 00146$
1279 5373 00265$:
1279 02s13r6A 5374 ljmp 00150$
5375 ; ../../include/ztex-isr.h:200: case 0x01: // device
127C 5376 00133$:
5377 ; ../../include/ztex-isr.h:201: SUDPTRH = MSB(&DeviceDescriptor);
127C 7Ar35 5378 mov r2,#_DeviceDescriptor
127E 7Bs00 5379 mov r3,#(_DeviceDescriptor >> 8)
1280 90 E6 B3 5380 mov dptr,#_SUDPTRH
1283 EB 5381 mov a,r3
1284 F0 5382 movx @dptr,a
5383 ; ../../include/ztex-isr.h:202: SUDPTRL = LSB(&DeviceDescriptor);
1285 90 E6 B4 5384 mov dptr,#_SUDPTRL
1288 74r35 5385 mov a,#_DeviceDescriptor
128A F0 5386 movx @dptr,a
5387 ; ../../include/ztex-isr.h:203: break;
128B 02s13rDE 5388 ljmp 00160$
5389 ; ../../include/ztex-isr.h:204: case 0x02: // configuration
128E 5390 00134$:
5391 ; ../../include/ztex-isr.h:205: if (USBCS & bmBIT7) {
128E 90 E6 80 5392 mov dptr,#_USBCS
1291 E0 5393 movx a,@dptr
1292 FA 5394 mov r2,a
1293 30 E7 12 5395 jnb acc.7,00136$
5396 ; ../../include/ztex-isr.h:206: SUDPTRH = MSB(&HighSpeedConfigDescriptor);
1296 7Ar51 5397 mov r2,#_HighSpeedConfigDescriptor
1298 7Bs00 5398 mov r3,#(_HighSpeedConfigDescriptor >> 8)
129A 90 E6 B3 5399 mov dptr,#_SUDPTRH
129D EB 5400 mov a,r3
129E F0 5401 movx @dptr,a
5402 ; ../../include/ztex-isr.h:207: SUDPTRL = LSB(&HighSpeedConfigDescriptor);
129F 90 E6 B4 5403 mov dptr,#_SUDPTRL
12A2 74r51 5404 mov a,#_HighSpeedConfigDescriptor
12A4 F0 5405 movx @dptr,a
12A5 02s13rDE 5406 ljmp 00160$
12A8 5407 00136$:
5408 ; ../../include/ztex-isr.h:210: SUDPTRH = MSB(&FullSpeedConfigDescriptor);
12A8 7Ar73 5409 mov r2,#_FullSpeedConfigDescriptor
12AA 7Bs00 5410 mov r3,#(_FullSpeedConfigDescriptor >> 8)
12AC 90 E6 B3 5411 mov dptr,#_SUDPTRH
12AF EB 5412 mov a,r3
12B0 F0 5413 movx @dptr,a
5414 ; ../../include/ztex-isr.h:211: SUDPTRL = LSB(&FullSpeedConfigDescriptor);
12B1 90 E6 B4 5415 mov dptr,#_SUDPTRL
12B4 74r73 5416 mov a,#_FullSpeedConfigDescriptor
12B6 F0 5417 movx @dptr,a
5418 ; ../../include/ztex-isr.h:213: break;
12B7 02s13rDE 5419 ljmp 00160$
5420 ; ../../include/ztex-isr.h:214: case 0x03: // strings
12BA 5421 00138$:
5422 ; ../../include/ztex-isr.h:215: switch (SETUPDAT[2]) {
12BA 90 E6 BA 5423 mov dptr,#(_SETUPDAT + 0x0002)
12BD E0 5424 movx a,@dptr
12BE FA 5425 mov r2,a
12BF BA 01 02 5426 cjne r2,#0x01,00267$
12C2 80 0F 5427 sjmp 00139$
12C4 5428 00267$:
12C4 BA 02 02 5429 cjne r2,#0x02,00268$
12C7 80 1C 5430 sjmp 00140$
12C9 5431 00268$:
12C9 BA 03 02 5432 cjne r2,#0x03,00269$
12CC 80 29 5433 sjmp 00141$
12CE 5434 00269$:
5435 ; ../../include/ztex-isr.h:216: case 1:
12CE BA 04 4A 5436 cjne r2,#0x04,00143$
12D1 80 36 5437 sjmp 00142$
12D3 5438 00139$:
5439 ; ../../include/ztex-isr.h:217: SEND_STRING_DESCRIPTOR(manufacturerString);
12D3 75 82r08 5440 mov dpl,#_manufacturerString
12D6 7Ar08 5441 mov r2,#_manufacturerString
12D8 7Bs00 5442 mov r3,#(_manufacturerString >> 8)
12DA 8B*00 5443 mov _sendStringDescriptor_PARM_2,r3
12DC 75*01 05 5444 mov _sendStringDescriptor_PARM_3,#0x05
12DF 12s0ErF9 5445 lcall _sendStringDescriptor
5446 ; ../../include/ztex-isr.h:218: break;
12E2 02s13rDE 5447 ljmp 00160$
5448 ; ../../include/ztex-isr.h:219: case 2:
12E5 5449 00140$:
5450 ; ../../include/ztex-isr.h:220: SEND_STRING_DESCRIPTOR(productString);
12E5 75 82r0D 5451 mov dpl,#_productString
12E8 7Ar0D 5452 mov r2,#_productString
12EA 7Bs00 5453 mov r3,#(_productString >> 8)
12EC 8B*00 5454 mov _sendStringDescriptor_PARM_2,r3
12EE 75*01 20 5455 mov _sendStringDescriptor_PARM_3,#0x20
12F1 12s0ErF9 5456 lcall _sendStringDescriptor
5457 ; ../../include/ztex-isr.h:221: break;
12F4 02s13rDE 5458 ljmp 00160$
5459 ; ../../include/ztex-isr.h:222: case 3:
12F7 5460 00141$:
5461 ; ../../include/ztex-isr.h:223: SEND_STRING_DESCRIPTOR(SN_STRING);
12F7 75 82 8A 5462 mov dpl,#_SN_STRING
12FA 7A 8A 5463 mov r2,#_SN_STRING
12FC 7B 00 5464 mov r3,#(_SN_STRING >> 8)
12FE 8B*00 5465 mov _sendStringDescriptor_PARM_2,r3
1300 75*01 0A 5466 mov _sendStringDescriptor_PARM_3,#0x0A
1303 12s0ErF9 5467 lcall _sendStringDescriptor
5468 ; ../../include/ztex-isr.h:224: break;
1306 02s13rDE 5469 ljmp 00160$
5470 ; ../../include/ztex-isr.h:225: case 4:
1309 5471 00142$:
5472 ; ../../include/ztex-isr.h:226: SEND_STRING_DESCRIPTOR(configurationString);
1309 75 82r2D 5473 mov dpl,#_configurationString
130C 7Ar2D 5474 mov r2,#_configurationString
130E 7Bs00 5475 mov r3,#(_configurationString >> 8)
1310 8B*00 5476 mov _sendStringDescriptor_PARM_2,r3
1312 75*01 08 5477 mov _sendStringDescriptor_PARM_3,#0x08
1315 12s0ErF9 5478 lcall _sendStringDescriptor
5479 ; ../../include/ztex-isr.h:227: break;
1318 02s13rDE 5480 ljmp 00160$
5481 ; ../../include/ztex-isr.h:228: default:
131B 5482 00143$:
5483 ; ../../include/ztex-isr.h:229: SUDPTRH = MSB(&EmptyStringDescriptor);
131B 7Ar95 5484 mov r2,#_EmptyStringDescriptor
131D 7Bs00 5485 mov r3,#(_EmptyStringDescriptor >> 8)
131F 90 E6 B3 5486 mov dptr,#_SUDPTRH
1322 EB 5487 mov a,r3
1323 F0 5488 movx @dptr,a
5489 ; ../../include/ztex-isr.h:230: SUDPTRL = LSB(&EmptyStringDescriptor);
1324 90 E6 B4 5490 mov dptr,#_SUDPTRL
1327 74r95 5491 mov a,#_EmptyStringDescriptor
1329 F0 5492 movx @dptr,a
5493 ; ../../include/ztex-isr.h:233: break;
132A 02s13rDE 5494 ljmp 00160$
5495 ; ../../include/ztex-isr.h:234: case 0x06: // device qualifier
132D 5496 00145$:
5497 ; ../../include/ztex-isr.h:235: SUDPTRH = MSB(&DeviceQualifierDescriptor);
132D 7Ar47 5498 mov r2,#_DeviceQualifierDescriptor
132F 7Bs00 5499 mov r3,#(_DeviceQualifierDescriptor >> 8)
1331 90 E6 B3 5500 mov dptr,#_SUDPTRH
1334 EB 5501 mov a,r3
1335 F0 5502 movx @dptr,a
5503 ; ../../include/ztex-isr.h:236: SUDPTRL = LSB(&DeviceQualifierDescriptor);
1336 90 E6 B4 5504 mov dptr,#_SUDPTRL
1339 74r47 5505 mov a,#_DeviceQualifierDescriptor
133B F0 5506 movx @dptr,a
5507 ; ../../include/ztex-isr.h:237: break;
133C 02s13rDE 5508 ljmp 00160$
5509 ; ../../include/ztex-isr.h:238: case 0x07: // other speed configuration
133F 5510 00146$:
5511 ; ../../include/ztex-isr.h:239: if (USBCS & bmBIT7) {
133F 90 E6 80 5512 mov dptr,#_USBCS
1342 E0 5513 movx a,@dptr
1343 FA 5514 mov r2,a
1344 30 E7 12 5515 jnb acc.7,00148$
5516 ; ../../include/ztex-isr.h:240: SUDPTRH = MSB(&FullSpeedConfigDescriptor);
1347 7Ar73 5517 mov r2,#_FullSpeedConfigDescriptor
1349 7Bs00 5518 mov r3,#(_FullSpeedConfigDescriptor >> 8)
134B 90 E6 B3 5519 mov dptr,#_SUDPTRH
134E EB 5520 mov a,r3
134F F0 5521 movx @dptr,a
5522 ; ../../include/ztex-isr.h:241: SUDPTRL = LSB(&FullSpeedConfigDescriptor);
1350 90 E6 B4 5523 mov dptr,#_SUDPTRL
1353 74r73 5524 mov a,#_FullSpeedConfigDescriptor
1355 F0 5525 movx @dptr,a
1356 02s13rDE 5526 ljmp 00160$
1359 5527 00148$:
5528 ; ../../include/ztex-isr.h:244: SUDPTRH = MSB(&HighSpeedConfigDescriptor);
1359 7Ar51 5529 mov r2,#_HighSpeedConfigDescriptor
135B 7Bs00 5530 mov r3,#(_HighSpeedConfigDescriptor >> 8)
135D 90 E6 B3 5531 mov dptr,#_SUDPTRH
1360 EB 5532 mov a,r3
1361 F0 5533 movx @dptr,a
5534 ; ../../include/ztex-isr.h:245: SUDPTRL = LSB(&HighSpeedConfigDescriptor);
1362 90 E6 B4 5535 mov dptr,#_SUDPTRL
1365 74r51 5536 mov a,#_HighSpeedConfigDescriptor
1367 F0 5537 movx @dptr,a
5538 ; ../../include/ztex-isr.h:247: break;
5539 ; ../../include/ztex-isr.h:248: default:
1368 80 74 5540 sjmp 00160$
136A 5541 00150$:
5542 ; ../../include/ztex-isr.h:249: EP0CS |= 0x01; // set stall, unknown descriptor
136A 90 E6 A0 5543 mov dptr,#_EP0CS
136D E0 5544 movx a,@dptr
136E FA 5545 mov r2,a
136F 44 01 5546 orl a,#0x01
1371 F0 5547 movx @dptr,a
5548 ; ../../include/ztex-isr.h:251: break;
5549 ; ../../include/ztex-isr.h:252: case 0x07: // set descriptor
1372 80 6A 5550 sjmp 00160$
1374 5551 00152$:
5552 ; ../../include/ztex-isr.h:253: break;
5553 ; ../../include/ztex-isr.h:254: case 0x08: // get configuration
1374 80 68 5554 sjmp 00160$
1376 5555 00153$:
5556 ; ../../include/ztex-isr.h:255: EP0BUF[0] = 0; // only one configuration
1376 90 E7 40 5557 mov dptr,#_EP0BUF
5558 ; ../../include/ztex-isr.h:256: EP0BCH = 0;
1379 E4 5559 clr a
137A F0 5560 movx @dptr,a
137B 90 E6 8A 5561 mov dptr,#_EP0BCH
137E F0 5562 movx @dptr,a
5563 ; ../../include/ztex-isr.h:257: EP0BCL = 1;
137F 90 E6 8B 5564 mov dptr,#_EP0BCL
1382 74 01 5565 mov a,#0x01
1384 F0 5566 movx @dptr,a
5567 ; ../../include/ztex-isr.h:258: break;
5568 ; ../../include/ztex-isr.h:259: case 0x09: // set configuration
1385 80 57 5569 sjmp 00160$
1387 5570 00154$:
5571 ; ../../include/ztex-isr.h:260: resetToggleData();
1387 12s0ErDB 5572 lcall _resetToggleData
5573 ; ../../include/ztex-isr.h:261: break; // do nothing since we have only one configuration
5574 ; ../../include/ztex-isr.h:262: case 0x0a: // get alternate setting for an interface
138A 80 52 5575 sjmp 00160$
138C 5576 00155$:
5577 ; ../../include/ztex-isr.h:263: EP0BUF[0] = 0; // only one alternate setting
138C 90 E7 40 5578 mov dptr,#_EP0BUF
5579 ; ../../include/ztex-isr.h:264: EP0BCH = 0;
138F E4 5580 clr a
1390 F0 5581 movx @dptr,a
1391 90 E6 8A 5582 mov dptr,#_EP0BCH
1394 F0 5583 movx @dptr,a
5584 ; ../../include/ztex-isr.h:265: EP0BCL = 1;
1395 90 E6 8B 5585 mov dptr,#_EP0BCL
1398 74 01 5586 mov a,#0x01
139A F0 5587 movx @dptr,a
5588 ; ../../include/ztex-isr.h:266: break;
5589 ; ../../include/ztex-isr.h:267: case 0x0b: // set alternate setting for an interface
139B 80 41 5590 sjmp 00160$
139D 5591 00156$:
5592 ; ../../include/ztex-isr.h:268: resetToggleData();
139D 12s0ErDB 5593 lcall _resetToggleData
5594 ; ../../include/ztex-isr.h:269: break; // do nothing since we have only on alternate setting
5595 ; ../../include/ztex-isr.h:270: case 0x0c: // sync frame
13A0 80 3C 5596 sjmp 00160$
13A2 5597 00157$:
5598 ; ../../include/ztex-isr.h:271: if ( SETUPDAT[0] == 0x82 ) {
13A2 90 E6 B8 5599 mov dptr,#_SETUPDAT
13A5 E0 5600 movx a,@dptr
13A6 FA 5601 mov r2,a
13A7 BA 82 34 5602 cjne r2,#0x82,00160$
5603 ; ../../include/ztex-isr.h:272: ISOFRAME_COUNTER[ ((SETUPDAT[4] >> 1)-1) & 3 ] = 0;
13AA 90 E6 BC 5604 mov dptr,#(_SETUPDAT + 0x0004)
13AD E0 5605 movx a,@dptr
13AE C3 5606 clr c
13AF 13 5607 rrc a
13B0 14 5608 dec a
13B1 54 03 5609 anl a,#0x03
13B3 25 E0 5610 add a,acc
13B5 24r05 5611 add a,#_ISOFRAME_COUNTER
13B7 F5 82 5612 mov dpl,a
13B9 E4 5613 clr a
13BA 34s00 5614 addc a,#(_ISOFRAME_COUNTER >> 8)
13BC F5 83 5615 mov dph,a
13BE E4 5616 clr a
13BF F0 5617 movx @dptr,a
13C0 A3 5618 inc dptr
13C1 F0 5619 movx @dptr,a
5620 ; ../../include/ztex-isr.h:273: EP0BUF[0] = USBFRAMEL; // use current frame as sync frame, i hope that works
13C2 90 E6 85 5621 mov dptr,#_USBFRAMEL
13C5 E0 5622 movx a,@dptr
13C6 90 E7 40 5623 mov dptr,#_EP0BUF
13C9 F0 5624 movx @dptr,a
5625 ; ../../include/ztex-isr.h:274: EP0BUF[1] = USBFRAMEH;
13CA 90 E6 84 5626 mov dptr,#_USBFRAMEH
13CD E0 5627 movx a,@dptr
13CE FA 5628 mov r2,a
13CF 90 E7 41 5629 mov dptr,#(_EP0BUF + 0x0001)
13D2 F0 5630 movx @dptr,a
5631 ; ../../include/ztex-isr.h:275: EP0BCH = 0;
13D3 90 E6 8A 5632 mov dptr,#_EP0BCH
13D6 E4 5633 clr a
13D7 F0 5634 movx @dptr,a
5635 ; ../../include/ztex-isr.h:276: EP0BCL = 2;
13D8 90 E6 8B 5636 mov dptr,#_EP0BCL
13DB 74 02 5637 mov a,#0x02
13DD F0 5638 movx @dptr,a
5639 ; ../../include/ztex-isr.h:280: }
13DE 5640 00160$:
5641 ; ../../include/ztex-isr.h:283: switch ( bmRequestType ) {
13DE 90 E6 B8 5642 mov dptr,#_bmRequestType
13E1 E0 5643 movx a,@dptr
13E2 FA 5644 mov r2,a
13E3 BA 40 03 5645 cjne r2,#0x40,00274$
13E6 02s16r09 5646 ljmp 00182$
13E9 5647 00274$:
13E9 BA C0 02 5648 cjne r2,#0xC0,00275$
13EC 80 03 5649 sjmp 00276$
13EE 5650 00275$:
13EE 02s16r33 5651 ljmp 00186$
13F1 5652 00276$:
5653 ; ../../include/ztex-isr.h:285: ep0_payload_remaining = (SETUPDAT[7] << 8) | SETUPDAT[6];
13F1 90 E6 BF 5654 mov dptr,#(_SETUPDAT + 0x0007)
13F4 E0 5655 movx a,@dptr
13F5 FB 5656 mov r3,a
13F6 7A 00 5657 mov r2,#0x00
13F8 90 E6 BE 5658 mov dptr,#(_SETUPDAT + 0x0006)
13FB E0 5659 movx a,@dptr
13FC FC 5660 mov r4,a
13FD 7D 00 5661 mov r5,#0x00
13FF 90s00r00 5662 mov dptr,#_ep0_payload_remaining
1402 EC 5663 mov a,r4
1403 4A 5664 orl a,r2
1404 F0 5665 movx @dptr,a
1405 ED 5666 mov a,r5
1406 4B 5667 orl a,r3
1407 A3 5668 inc dptr
1408 F0 5669 movx @dptr,a
5670 ; ../../include/ztex-isr.h:286: ep0_payload_update();
1409 12s0Fr62 5671 lcall _ep0_payload_update
5672 ; ../../include/ztex-isr.h:288: switch ( bRequest ) {
140C 90 E6 B9 5673 mov dptr,#_bRequest
140F E0 5674 movx a,@dptr
1410 FA 5675 mov r2,a
1411 BA 22 02 5676 cjne r2,#0x22,00277$
1414 80 31 5677 sjmp 00162$
1416 5678 00277$:
1416 BA 30 03 5679 cjne r2,#0x30,00278$
1419 02s15rAF 5680 ljmp 00176$
141C 5681 00278$:
141C BA 38 02 5682 cjne r2,#0x38,00279$
141F 80 43 5683 sjmp 00163$
1421 5684 00279$:
1421 BA 3A 02 5685 cjne r2,#0x3A,00280$
1424 80 67 5686 sjmp 00164$
1426 5687 00280$:
1426 BA 3B 03 5688 cjne r2,#0x3B,00281$
1429 02s14rCC 5689 ljmp 00165$
142C 5690 00281$:
142C BA 3D 03 5691 cjne r2,#0x3D,00282$
142F 02s14rE5 5692 ljmp 00166$
1432 5693 00282$:
1432 BA 40 03 5694 cjne r2,#0x40,00283$
1435 02s15r06 5695 ljmp 00167$
1438 5696 00283$:
1438 BA 41 03 5697 cjne r2,#0x41,00284$
143B 02s15r3C 5698 ljmp 00171$
143E 5699 00284$:
143E BA 43 03 5700 cjne r2,#0x43,00285$
1441 02s15r89 5701 ljmp 00175$
1444 5702 00285$:
1444 02s15rFF 5703 ljmp 00180$
5704 ; ../../include/ztex-isr.h:289: case 0x22: // get ZTEX descriptor
1447 5705 00162$:
5706 ; ../../include/ztex-isr.h:290: SUDPTRCTL = 0;
1447 90 E6 B5 5707 mov dptr,#_SUDPTRCTL
5708 ; ../../include/ztex-isr.h:291: EP0BCH = 0;
144A E4 5709 clr a
144B F0 5710 movx @dptr,a
144C 90 E6 8A 5711 mov dptr,#_EP0BCH
144F F0 5712 movx @dptr,a
5713 ; ../../include/ztex-isr.h:292: EP0BCL = ZTEX_DESCRIPTOR_LEN;
1450 90 E6 8B 5714 mov dptr,#_EP0BCL
1453 74 28 5715 mov a,#0x28
1455 F0 5716 movx @dptr,a
5717 ; ../../include/ztex-isr.h:293: SUDPTRH = MSB(ZTEX_DESCRIPTOR_OFFS);
1456 90 E6 B3 5718 mov dptr,#_SUDPTRH
1459 E4 5719 clr a
145A F0 5720 movx @dptr,a
5721 ; ../../include/ztex-isr.h:294: SUDPTRL = LSB(ZTEX_DESCRIPTOR_OFFS);
145B 90 E6 B4 5722 mov dptr,#_SUDPTRL
145E 74 6C 5723 mov a,#0x6C
1460 F0 5724 movx @dptr,a
5725 ; ../../include/ztex-isr.h:295: break;
1461 02s16r33 5726 ljmp 00186$
5727 ; ../../include/ztex-conf.h:100: case $0:
1464 5728 00163$:
5729 ; ../../include/ztex-conf.h:102: break;
1464 90 E6 BB 5730 mov dptr,#(_SETUPDAT + 0x0003)
1467 E0 5731 movx a,@dptr
1468 FB 5732 mov r3,a
1469 7A 00 5733 mov r2,#0x00
146B 90 E6 BA 5734 mov dptr,#(_SETUPDAT + 0x0002)
146E E0 5735 movx a,@dptr
146F FC 5736 mov r4,a
1470 7D 00 5737 mov r5,#0x00
1472 90s00r00 5738 mov dptr,#_eeprom_addr
1475 EC 5739 mov a,r4
1476 4A 5740 orl a,r2
1477 F0 5741 movx @dptr,a
1478 ED 5742 mov a,r5
1479 4B 5743 orl a,r3
147A A3 5744 inc dptr
147B F0 5745 movx @dptr,a
5746 ; ../../include/ztex-eeprom.h:219: EP0BCH = 0;
147C 90 E6 8A 5747 mov dptr,#_EP0BCH
147F E4 5748 clr a
1480 F0 5749 movx @dptr,a
5750 ; ../../include/ztex-eeprom.h:220: EP0BCL = eeprom_read_ep0();
1481 12s03r0F 5751 lcall _eeprom_read_ep0
1484 E5 82 5752 mov a,dpl
1486 90 E6 8B 5753 mov dptr,#_EP0BCL
1489 F0 5754 movx @dptr,a
5755 ; ../../include/ztex-conf.h:102: break;
148A 02s16r33 5756 ljmp 00186$
5757 ; ../../include/ztex-conf.h:100: case $0:
148D 5758 00164$:
5759 ; ../../include/ztex-eeprom.h:247: EP0BUF[0] = LSB(eeprom_write_bytes);
148D 90s00r02 5760 mov dptr,#_eeprom_write_bytes
1490 E0 5761 movx a,@dptr
1491 FA 5762 mov r2,a
1492 A3 5763 inc dptr
1493 E0 5764 movx a,@dptr
1494 FB 5765 mov r3,a
1495 8A 04 5766 mov ar4,r2
1497 90 E7 40 5767 mov dptr,#_EP0BUF
149A EC 5768 mov a,r4
149B F0 5769 movx @dptr,a
5770 ; ../../include/ztex-eeprom.h:248: EP0BUF[1] = MSB(eeprom_write_bytes);
149C 8B 02 5771 mov ar2,r3
149E 90 E7 41 5772 mov dptr,#(_EP0BUF + 0x0001)
14A1 EA 5773 mov a,r2
14A2 F0 5774 movx @dptr,a
5775 ; ../../include/ztex-eeprom.h:249: EP0BUF[2] = eeprom_write_checksum;
14A3 90s00r04 5776 mov dptr,#_eeprom_write_checksum
14A6 E0 5777 movx a,@dptr
14A7 90 E7 42 5778 mov dptr,#(_EP0BUF + 0x0002)
14AA F0 5779 movx @dptr,a
5780 ; ../../include/ztex-eeprom.h:250: EP0BUF[3] = eeprom_select(EEPROM_ADDR,0,1); // 1 means busy or error
14AB 75*00 00 5781 mov _eeprom_select_PARM_2,#0x00
14AE 75*01 01 5782 mov _eeprom_select_PARM_3,#0x01
14B1 75 82 A2 5783 mov dpl,#0xA2
14B4 12s00rE2 5784 lcall _eeprom_select
14B7 AA 82 5785 mov r2,dpl
14B9 90 E7 43 5786 mov dptr,#(_EP0BUF + 0x0003)
14BC EA 5787 mov a,r2
14BD F0 5788 movx @dptr,a
5789 ; ../../include/ztex-eeprom.h:251: EP0BCH = 0;
14BE 90 E6 8A 5790 mov dptr,#_EP0BCH
14C1 E4 5791 clr a
14C2 F0 5792 movx @dptr,a
5793 ; ../../include/ztex-eeprom.h:252: EP0BCL = 4;
14C3 90 E6 8B 5794 mov dptr,#_EP0BCL
14C6 74 04 5795 mov a,#0x04
14C8 F0 5796 movx @dptr,a
5797 ; ../../include/ztex-conf.h:102: break;
14C9 02s16r33 5798 ljmp 00186$
5799 ; ../../include/ztex-conf.h:100: case $0:
14CC 5800 00165$:
5801 ; ../../include/ztex-conf.h:102: break;
14CC 90 E6 BA 5802 mov dptr,#(_SETUPDAT + 0x0002)
14CF E0 5803 movx a,@dptr
14D0 90s00r05 5804 mov dptr,#_mac_eeprom_addr
14D3 F0 5805 movx @dptr,a
5806 ; ../../include/ztex-eeprom.h:368: EP0BCH = 0;
14D4 90 E6 8A 5807 mov dptr,#_EP0BCH
14D7 E4 5808 clr a
14D8 F0 5809 movx @dptr,a
5810 ; ../../include/ztex-eeprom.h:369: EP0BCL = mac_eeprom_read_ep0();
14D9 12s05r55 5811 lcall _mac_eeprom_read_ep0
14DC E5 82 5812 mov a,dpl
14DE 90 E6 8B 5813 mov dptr,#_EP0BCL
14E1 F0 5814 movx @dptr,a
5815 ; ../../include/ztex-conf.h:102: break;
14E2 02s16r33 5816 ljmp 00186$
5817 ; ../../include/ztex-conf.h:100: case $0:
14E5 5818 00166$:
5819 ; ../../include/ztex-conf.h:102: break;
14E5 75*00 00 5820 mov _eeprom_select_PARM_2,#0x00
14E8 75*01 01 5821 mov _eeprom_select_PARM_3,#0x01
14EB 75 82 A6 5822 mov dpl,#0xA6
14EE 12s00rE2 5823 lcall _eeprom_select
14F1 AA 82 5824 mov r2,dpl
14F3 90 E7 40 5825 mov dptr,#_EP0BUF
14F6 EA 5826 mov a,r2
14F7 F0 5827 movx @dptr,a
5828 ; ../../include/ztex-eeprom.h:390: EP0BCH = 0;
14F8 90 E6 8A 5829 mov dptr,#_EP0BCH
14FB E4 5830 clr a
14FC F0 5831 movx @dptr,a
5832 ; ../../include/ztex-eeprom.h:391: EP0BCL = 1;
14FD 90 E6 8B 5833 mov dptr,#_EP0BCL
1500 74 01 5834 mov a,#0x01
1502 F0 5835 movx @dptr,a
5836 ; ../../include/ztex-conf.h:102: break;
1503 02s16r33 5837 ljmp 00186$
5838 ; ../../include/ztex-conf.h:100: case $0:
1506 5839 00167$:
5840 ; ../../include/ztex-flash2.h:646: if ( flash_ec == 0 && SPI_CS == 0 ) {
1506 90s00r0E 5841 mov dptr,#_flash_ec
1509 E0 5842 movx a,@dptr
150A FA 5843 mov r2,a
150B 70 09 5844 jnz 00169$
150D 20 83 06 5845 jb _IOA3,00169$
5846 ; ../../include/ztex-flash2.h:647: flash_ec = FLASH_EC_PENDING;
1510 90s00r0E 5847 mov dptr,#_flash_ec
1513 74 04 5848 mov a,#0x04
1515 F0 5849 movx @dptr,a
1516 5850 00169$:
5851 ; ../../include/ztex-utils.h:121: AUTOPTRL1=LO(&($0));
1516 75 9Br07 5852 mov _AUTOPTRL1,#_flash_enabled
5853 ; ../../include/ztex-utils.h:122: AUTOPTRH1=HI(&($0));
1519 7Ar07 5854 mov r2,#_flash_enabled
151B 7Bs00 5855 mov r3,#(_flash_enabled >> 8)
151D 8B 9A 5856 mov _AUTOPTRH1,r3
5857 ; ../../include/ztex-utils.h:123: AUTOPTRL2=LO(&($1));
151F 75 9E 40 5858 mov _AUTOPTRL2,#0x40
5859 ; ../../include/ztex-utils.h:124: AUTOPTRH2=HI(&($1));
1522 75 9D E7 5860 mov _AUTOPTRH2,#0xE7
5861 ; ../../include/ztex-utils.h:130: __endasm;
5862
1525 C0 02 5863 push ar2
1527 7A 08 5864 mov r2,#(8);
1529 12s00r49 5865 lcall _MEM_COPY1_int
152C D0 02 5866 pop ar2
5867
5868 ; ../../include/ztex-flash2.h:650: EP0BCH = 0;
152E 90 E6 8A 5869 mov dptr,#_EP0BCH
1531 E4 5870 clr a
1532 F0 5871 movx @dptr,a
5872 ; ../../include/ztex-flash2.h:651: EP0BCL = 8;
1533 90 E6 8B 5873 mov dptr,#_EP0BCL
1536 74 08 5874 mov a,#0x08
1538 F0 5875 movx @dptr,a
5876 ; ../../include/ztex-conf.h:102: break;
1539 02s16r33 5877 ljmp 00186$
5878 ; ../../include/ztex-conf.h:100: case $0:
153C 5879 00171$:
5880 ; ../../include/ztex-flash2.h:671: ep0_read_mode = SETUPDAT[5];
153C 90 E6 BD 5881 mov dptr,#(_SETUPDAT + 0x0005)
153F E0 5882 movx a,@dptr
1540 FA 5883 mov r2,a
1541 90s00r1E 5884 mov dptr,#_ep0_read_mode
1544 F0 5885 movx @dptr,a
5886 ; ../../include/ztex-flash2.h:672: if ( (ep0_read_mode==0) && flash_read_init((SETUPDAT[3] << 8) | SETUPDAT[2]) ) {
1545 EA 5887 mov a,r2
1546 70 2D 5888 jnz 00173$
1548 90 E6 BB 5889 mov dptr,#(_SETUPDAT + 0x0003)
154B E0 5890 movx a,@dptr
154C FB 5891 mov r3,a
154D 7A 00 5892 mov r2,#0x00
154F 90 E6 BA 5893 mov dptr,#(_SETUPDAT + 0x0002)
1552 E0 5894 movx a,@dptr
1553 7D 00 5895 mov r5,#0x00
1555 4A 5896 orl a,r2
1556 F5 82 5897 mov dpl,a
1558 ED 5898 mov a,r5
1559 4B 5899 orl a,r3
155A F5 83 5900 mov dph,a
155C 12s06rFF 5901 lcall _flash_read_init
155F E5 82 5902 mov a,dpl
1561 60 12 5903 jz 00173$
5904 ; ../../include/ztex-conf.h:137: EP0CS |= 0x01; // set stall
1563 90 E6 A0 5905 mov dptr,#_EP0CS
1566 E0 5906 movx a,@dptr
1567 FA 5907 mov r2,a
1568 44 01 5908 orl a,#0x01
156A F0 5909 movx @dptr,a
5910 ; ../../include/ztex-conf.h:138: ep0_payload_remaining = 0;
156B 90s00r00 5911 mov dptr,#_ep0_payload_remaining
156E E4 5912 clr a
156F F0 5913 movx @dptr,a
1570 A3 5914 inc dptr
1571 F0 5915 movx @dptr,a
5916 ; ../../include/ztex-conf.h:139: break;
1572 02s16r33 5917 ljmp 00186$
1575 5918 00173$:
5919 ; ../../include/ztex-flash2.h:675: spi_read_ep0();
1575 12s0Ar89 5920 lcall _spi_read_ep0
5921 ; ../../include/ztex-flash2.h:676: EP0BCH = 0;
1578 90 E6 8A 5922 mov dptr,#_EP0BCH
157B E4 5923 clr a
157C F0 5924 movx @dptr,a
5925 ; ../../include/ztex-flash2.h:677: EP0BCL = ep0_payload_transfer;
157D 90s00r02 5926 mov dptr,#_ep0_payload_transfer
1580 E0 5927 movx a,@dptr
1581 FA 5928 mov r2,a
1582 90 E6 8B 5929 mov dptr,#_EP0BCL
1585 F0 5930 movx @dptr,a
5931 ; ../../include/ztex-conf.h:102: break;
1586 02s16r33 5932 ljmp 00186$
5933 ; ../../include/ztex-conf.h:100: case $0:
1589 5934 00175$:
5935 ; ../../include/ztex-utils.h:121: AUTOPTRL1=LO(&($0));
1589 75 9Br0E 5936 mov _AUTOPTRL1,#_flash_ec
5937 ; ../../include/ztex-utils.h:122: AUTOPTRH1=HI(&($0));
158C 7Ar0E 5938 mov r2,#_flash_ec
158E 7Bs00 5939 mov r3,#(_flash_ec >> 8)
1590 8B 9A 5940 mov _AUTOPTRH1,r3
5941 ; ../../include/ztex-utils.h:123: AUTOPTRL2=LO(&($1));
1592 75 9E 40 5942 mov _AUTOPTRL2,#0x40
5943 ; ../../include/ztex-utils.h:124: AUTOPTRH2=HI(&($1));
1595 75 9D E7 5944 mov _AUTOPTRH2,#0xE7
5945 ; ../../include/ztex-utils.h:130: __endasm;
5946
1598 C0 02 5947 push ar2
159A 7A 0A 5948 mov r2,#(10);
159C 12s00r49 5949 lcall _MEM_COPY1_int
159F D0 02 5950 pop ar2
5951
5952 ; ../../include/ztex-flash2.h:719: EP0BCH = 0;
15A1 90 E6 8A 5953 mov dptr,#_EP0BCH
15A4 E4 5954 clr a
15A5 F0 5955 movx @dptr,a
5956 ; ../../include/ztex-flash2.h:720: EP0BCL = 10;
15A6 90 E6 8B 5957 mov dptr,#_EP0BCL
15A9 74 0A 5958 mov a,#0x0A
15AB F0 5959 movx @dptr,a
5960 ; ../../include/ztex-conf.h:102: break;
15AC 02s16r33 5961 ljmp 00186$
5962 ; ../../include/ztex-conf.h:100: case $0:
15AF 5963 00176$:
5964 ; ../../include/ztex-utils.h:121: AUTOPTRL1=LO(&($0));
15AF 75 9Br20 5965 mov _AUTOPTRL1,#_fpga_checksum
5966 ; ../../include/ztex-utils.h:122: AUTOPTRH1=HI(&($0));
15B2 7Ar20 5967 mov r2,#_fpga_checksum
15B4 7Bs00 5968 mov r3,#(_fpga_checksum >> 8)
15B6 8B 9A 5969 mov _AUTOPTRH1,r3
5970 ; ../../include/ztex-utils.h:123: AUTOPTRL2=LO(&($1));
15B8 75 9E 41 5971 mov _AUTOPTRL2,#(_EP0BUF + 0x0001)
5972 ; ../../include/ztex-utils.h:124: AUTOPTRH2=HI(&($1));
15BB 7A 41 5973 mov r2,#(_EP0BUF + 0x0001)
15BD 7B E7 5974 mov r3,#((_EP0BUF + 0x0001) >> 8)
15BF 8B 9D 5975 mov _AUTOPTRH2,r3
5976 ; ../../include/ztex-utils.h:130: __endasm;
5977
15C1 C0 02 5978 push ar2
15C3 7A 07 5979 mov r2,#(7);
15C5 12s00r49 5980 lcall _MEM_COPY1_int
15C8 D0 02 5981 pop ar2
5982
5983 ; ../../include/ztex-fpga7.h:144: OEE = (OEE & ~bmBIT6) | bmBIT7;
15CA AA B6 5984 mov r2,_OEE
15CC 74 BF 5985 mov a,#0xBF
15CE 5A 5986 anl a,r2
15CF F5 F0 5987 mov b,a
15D1 74 80 5988 mov a,#0x80
15D3 45 F0 5989 orl a,b
15D5 F5 B6 5990 mov _OEE,a
5991 ; ../../include/ztex-fpga7.h:145: if ( IOE & bmBIT6 ) {
15D7 E5 B1 5992 mov a,_IOE
15D9 30 E6 07 5993 jnb acc.6,00178$
5994 ; ../../include/ztex-fpga7.h:146: EP0BUF[0] = 0; // FPGA configured
15DC 90 E7 40 5995 mov dptr,#_EP0BUF
15DF E4 5996 clr a
15E0 F0 5997 movx @dptr,a
15E1 80 09 5998 sjmp 00179$
15E3 5999 00178$:
6000 ; ../../include/ztex-fpga7.h:149: EP0BUF[0] = 1; // FPGA unconfigured
15E3 90 E7 40 6001 mov dptr,#_EP0BUF
15E6 74 01 6002 mov a,#0x01
15E8 F0 6003 movx @dptr,a
6004 ; ../../include/ztex-fpga7.h:150: reset_fpga(); // prepare FPGA for configuration
15E9 12s0ArCF 6005 lcall _reset_fpga
15EC 6006 00179$:
6007 ; ../../include/ztex-fpga7.h:153: EP0BUF[8] = 1; // bit order for bitstream in Flash memory: swapped
15EC 90 E7 48 6008 mov dptr,#(_EP0BUF + 0x0008)
15EF 74 01 6009 mov a,#0x01
15F1 F0 6010 movx @dptr,a
6011 ; ../../include/ztex-fpga7.h:155: EP0BCH = 0;
15F2 90 E6 8A 6012 mov dptr,#_EP0BCH
15F5 E4 6013 clr a
15F6 F0 6014 movx @dptr,a
6015 ; ../../include/ztex-fpga7.h:156: EP0BCL = 9;
15F7 90 E6 8B 6016 mov dptr,#_EP0BCL
15FA 74 09 6017 mov a,#0x09
15FC F0 6018 movx @dptr,a
6019 ; ../../include/ztex-conf.h:102: break;
6020 ; ../../include/ztex-isr.h:297: default:
15FD 80 34 6021 sjmp 00186$
15FF 6022 00180$:
6023 ; ../../include/ztex-isr.h:298: EP0CS |= 0x01; // set stall, unknown request
15FF 90 E6 A0 6024 mov dptr,#_EP0CS
1602 E0 6025 movx a,@dptr
1603 FA 6026 mov r2,a
1604 44 01 6027 orl a,#0x01
1606 F0 6028 movx @dptr,a
6029 ; ../../include/ztex-isr.h:300: break;
6030 ; ../../include/ztex-isr.h:301: case 0x40: // vendor command
1607 80 2A 6031 sjmp 00186$
1609 6032 00182$:
6033 ; ../../include/ztex-isr.h:305: if ( SETUPDAT[7]!=0 || SETUPDAT[6]!=0 ) {
1609 90 E6 BF 6034 mov dptr,#(_SETUPDAT + 0x0007)
160C E0 6035 movx a,@dptr
160D 70 06 6036 jnz 00183$
160F 90 E6 BE 6037 mov dptr,#(_SETUPDAT + 0x0006)
1612 E0 6038 movx a,@dptr
1613 60 16 6039 jz 00184$
1615 6040 00183$:
6041 ; ../../include/ztex-isr.h:306: ep0_vendor_cmd_setup = 1;
1615 90s00r04 6042 mov dptr,#_ep0_vendor_cmd_setup
1618 74 01 6043 mov a,#0x01
161A F0 6044 movx @dptr,a
6045 ; ../../include/ztex-isr.h:307: EP0BCL = 0;
161B 90 E6 8B 6046 mov dptr,#_EP0BCL
161E E4 6047 clr a
161F F0 6048 movx @dptr,a
6049 ; ../../include/ztex-isr.h:308: EXIF &= ~bmBIT4; // clear main USB interrupt flag
1620 53 91 EF 6050 anl _EXIF,#0xEF
6051 ; ../../include/ztex-isr.h:309: USBIRQ = bmBIT0; // clear SUADV IRQ
1623 90 E6 5D 6052 mov dptr,#_USBIRQ
1626 74 01 6053 mov a,#0x01
1628 F0 6054 movx @dptr,a
6055 ; ../../include/ztex-isr.h:310: return; // don't clear HSNAK bit. This is done after the command has completed
1629 80 19 6056 sjmp 00187$
162B 6057 00184$:
6058 ; ../../include/ztex-isr.h:312: ep0_vendor_cmd_su(); // setup sequences of vendor command with no payload ara executed immediately
162B 12s0Fr8F 6059 lcall _ep0_vendor_cmd_su
6060 ; ../../include/ztex-isr.h:313: EP0BCL = 0;
162E 90 E6 8B 6061 mov dptr,#_EP0BCL
1631 E4 6062 clr a
1632 F0 6063 movx @dptr,a
6064 ; ../../include/ztex-isr.h:315: }
1633 6065 00186$:
6066 ; ../../include/ztex-isr.h:317: EXIF &= ~bmBIT4; // clear main USB interrupt flag
1633 53 91 EF 6067 anl _EXIF,#0xEF
6068 ; ../../include/ztex-isr.h:318: USBIRQ = bmBIT0; // clear SUADV IRQ
1636 90 E6 5D 6069 mov dptr,#_USBIRQ
1639 74 01 6070 mov a,#0x01
163B F0 6071 movx @dptr,a
6072 ; ../../include/ztex-isr.h:319: EP0CS |= 0x80; // clear the HSNAK bit
163C 90 E6 A0 6073 mov dptr,#_EP0CS
163F E0 6074 movx a,@dptr
1640 FA 6075 mov r2,a
1641 44 80 6076 orl a,#0x80
1643 F0 6077 movx @dptr,a
1644 6078 00187$:
1644 D0 D0 6079 pop psw
1646 D0 01 6080 pop (0+1)
1648 D0 00 6081 pop (0+0)
164A D0 07 6082 pop (0+7)
164C D0 06 6083 pop (0+6)
164E D0 05 6084 pop (0+5)
1650 D0 04 6085 pop (0+4)
1652 D0 03 6086 pop (0+3)
1654 D0 02 6087 pop (0+2)
1656 D0 83 6088 pop dph
1658 D0 82 6089 pop dpl
165A D0 F0 6090 pop b
165C D0 E0 6091 pop acc
165E D0*00 6092 pop bits
1660 32 6093 reti
6094 ;------------------------------------------------------------
6095 ;Allocation info for local variables in function 'SOF_ISR'
6096 ;------------------------------------------------------------
6097 ;------------------------------------------------------------
6098 ; ../../include/ztex-isr.h:325: void SOF_ISR() __interrupt
6099 ; -----------------------------------------
6100 ; function SOF_ISR
6101 ; -----------------------------------------
1661 6102 _SOF_ISR:
1661 C0 E0 6103 push acc
1663 C0 82 6104 push dpl
1665 C0 83 6105 push dph
6106 ; ../../include/ztex-isr.h:327: EXIF &= ~bmBIT4;
1667 53 91 EF 6107 anl _EXIF,#0xEF
6108 ; ../../include/ztex-isr.h:328: USBIRQ = bmBIT1;
166A 90 E6 5D 6109 mov dptr,#_USBIRQ
166D 74 02 6110 mov a,#0x02
166F F0 6111 movx @dptr,a
1670 D0 83 6112 pop dph
1672 D0 82 6113 pop dpl
1674 D0 E0 6114 pop acc
1676 32 6115 reti
6116 ; eliminated unneeded push/pop psw
6117 ; eliminated unneeded push/pop b
6118 ;------------------------------------------------------------
6119 ;Allocation info for local variables in function 'SUTOK_ISR'
6120 ;------------------------------------------------------------
6121 ;------------------------------------------------------------
6122 ; ../../include/ztex-isr.h:334: void SUTOK_ISR() __interrupt
6123 ; -----------------------------------------
6124 ; function SUTOK_ISR
6125 ; -----------------------------------------
1677 6126 _SUTOK_ISR:
1677 C0 E0 6127 push acc
1679 C0 82 6128 push dpl
167B C0 83 6129 push dph
6130 ; ../../include/ztex-isr.h:336: EXIF &= ~bmBIT4;
167D 53 91 EF 6131 anl _EXIF,#0xEF
6132 ; ../../include/ztex-isr.h:337: USBIRQ = bmBIT2;
1680 90 E6 5D 6133 mov dptr,#_USBIRQ
1683 74 04 6134 mov a,#0x04
1685 F0 6135 movx @dptr,a
1686 D0 83 6136 pop dph
1688 D0 82 6137 pop dpl
168A D0 E0 6138 pop acc
168C 32 6139 reti
6140 ; eliminated unneeded push/pop psw
6141 ; eliminated unneeded push/pop b
6142 ;------------------------------------------------------------
6143 ;Allocation info for local variables in function 'SUSP_ISR'
6144 ;------------------------------------------------------------
6145 ;------------------------------------------------------------
6146 ; ../../include/ztex-isr.h:343: void SUSP_ISR() __interrupt
6147 ; -----------------------------------------
6148 ; function SUSP_ISR
6149 ; -----------------------------------------
168D 6150 _SUSP_ISR:
168D C0 E0 6151 push acc
168F C0 82 6152 push dpl
1691 C0 83 6153 push dph
6154 ; ../../include/ztex-isr.h:345: EXIF &= ~bmBIT4;
1693 53 91 EF 6155 anl _EXIF,#0xEF
6156 ; ../../include/ztex-isr.h:346: USBIRQ = bmBIT3;
1696 90 E6 5D 6157 mov dptr,#_USBIRQ
1699 74 08 6158 mov a,#0x08
169B F0 6159 movx @dptr,a
169C D0 83 6160 pop dph
169E D0 82 6161 pop dpl
16A0 D0 E0 6162 pop acc
16A2 32 6163 reti
6164 ; eliminated unneeded push/pop psw
6165 ; eliminated unneeded push/pop b
6166 ;------------------------------------------------------------
6167 ;Allocation info for local variables in function 'URES_ISR'
6168 ;------------------------------------------------------------
6169 ;------------------------------------------------------------
6170 ; ../../include/ztex-isr.h:352: void URES_ISR() __interrupt
6171 ; -----------------------------------------
6172 ; function URES_ISR
6173 ; -----------------------------------------
16A3 6174 _URES_ISR:
16A3 C0 E0 6175 push acc
16A5 C0 82 6176 push dpl
16A7 C0 83 6177 push dph
6178 ; ../../include/ztex-isr.h:354: EXIF &= ~bmBIT4;
16A9 53 91 EF 6179 anl _EXIF,#0xEF
6180 ; ../../include/ztex-isr.h:355: USBIRQ = bmBIT4;
16AC 90 E6 5D 6181 mov dptr,#_USBIRQ
16AF 74 10 6182 mov a,#0x10
16B1 F0 6183 movx @dptr,a
16B2 D0 83 6184 pop dph
16B4 D0 82 6185 pop dpl
16B6 D0 E0 6186 pop acc
16B8 32 6187 reti
6188 ; eliminated unneeded push/pop psw
6189 ; eliminated unneeded push/pop b
6190 ;------------------------------------------------------------
6191 ;Allocation info for local variables in function 'HSGRANT_ISR'
6192 ;------------------------------------------------------------
6193 ;------------------------------------------------------------
6194 ; ../../include/ztex-isr.h:361: void HSGRANT_ISR() __interrupt
6195 ; -----------------------------------------
6196 ; function HSGRANT_ISR
6197 ; -----------------------------------------
16B9 6198 _HSGRANT_ISR:
16B9 C0 E0 6199 push acc
16BB C0 82 6200 push dpl
16BD C0 83 6201 push dph
6202 ; ../../include/ztex-isr.h:363: EXIF &= ~bmBIT4;
16BF 53 91 EF 6203 anl _EXIF,#0xEF
6204 ; ../../include/ztex-isr.h:365: USBIRQ = bmBIT5;
16C2 90 E6 5D 6205 mov dptr,#_USBIRQ
16C5 74 20 6206 mov a,#0x20
16C7 F0 6207 movx @dptr,a
16C8 D0 83 6208 pop dph
16CA D0 82 6209 pop dpl
16CC D0 E0 6210 pop acc
16CE 32 6211 reti
6212 ; eliminated unneeded push/pop psw
6213 ; eliminated unneeded push/pop b
6214 ;------------------------------------------------------------
6215 ;Allocation info for local variables in function 'EP0ACK_ISR'
6216 ;------------------------------------------------------------
6217 ;------------------------------------------------------------
6218 ; ../../include/ztex-isr.h:371: void EP0ACK_ISR() __interrupt
6219 ; -----------------------------------------
6220 ; function EP0ACK_ISR
6221 ; -----------------------------------------
16CF 6222 _EP0ACK_ISR:
16CF C0 E0 6223 push acc
16D1 C0 82 6224 push dpl
16D3 C0 83 6225 push dph
6226 ; ../../include/ztex-isr.h:373: EXIF &= ~bmBIT4; // clear USB interrupt flag
16D5 53 91 EF 6227 anl _EXIF,#0xEF
6228 ; ../../include/ztex-isr.h:374: USBIRQ = bmBIT6; // clear EP0ACK IRQ
16D8 90 E6 5D 6229 mov dptr,#_USBIRQ
16DB 74 40 6230 mov a,#0x40
16DD F0 6231 movx @dptr,a
16DE D0 83 6232 pop dph
16E0 D0 82 6233 pop dpl
16E2 D0 E0 6234 pop acc
16E4 32 6235 reti
6236 ; eliminated unneeded push/pop psw
6237 ; eliminated unneeded push/pop b
6238 ;------------------------------------------------------------
6239 ;Allocation info for local variables in function 'EP0IN_ISR'
6240 ;------------------------------------------------------------
6241 ;------------------------------------------------------------
6242 ; ../../include/ztex-isr.h:380: static void EP0IN_ISR () __interrupt
6243 ; -----------------------------------------
6244 ; function EP0IN_ISR
6245 ; -----------------------------------------
16E5 6246 _EP0IN_ISR:
16E5 C0*00 6247 push bits
16E7 C0 E0 6248 push acc
16E9 C0 F0 6249 push b
16EB C0 82 6250 push dpl
16ED C0 83 6251 push dph
16EF C0 02 6252 push (0+2)
16F1 C0 03 6253 push (0+3)
16F3 C0 04 6254 push (0+4)
16F5 C0 05 6255 push (0+5)
16F7 C0 06 6256 push (0+6)
16F9 C0 07 6257 push (0+7)
16FB C0 00 6258 push (0+0)
16FD C0 01 6259 push (0+1)
16FF C0 D0 6260 push psw
1701 75 D0 00 6261 mov psw,#0x00
6262 ; ../../include/ztex-isr.h:382: EUSB = 0; // block all USB interrupts
1704 C2 E8 6263 clr _EUSB
6264 ; ../../include/ztex-isr.h:383: ep0_payload_update();
1706 12s0Fr62 6265 lcall _ep0_payload_update
6266 ; ../../include/ztex-isr.h:384: switch ( ep0_prev_setup_request ) {
1709 90s00r03 6267 mov dptr,#_ep0_prev_setup_request
170C E0 6268 movx a,@dptr
170D FA 6269 mov r2,a
170E BA 30 03 6270 cjne r2,#0x30,00124$
1711 02s17r7F 6271 ljmp 00112$
1714 6272 00124$:
1714 BA 38 02 6273 cjne r2,#0x38,00125$
1717 80 1E 6274 sjmp 00101$
1719 6275 00125$:
1719 BA 3A 02 6276 cjne r2,#0x3A,00126$
171C 80 61 6277 sjmp 00112$
171E 6278 00126$:
171E BA 3B 02 6279 cjne r2,#0x3B,00127$
1721 80 24 6280 sjmp 00103$
1723 6281 00127$:
1723 BA 3D 02 6282 cjne r2,#0x3D,00128$
1726 80 57 6283 sjmp 00112$
1728 6284 00128$:
1728 BA 40 02 6285 cjne r2,#0x40,00129$
172B 80 52 6286 sjmp 00112$
172D 6287 00129$:
172D BA 41 02 6288 cjne r2,#0x41,00130$
1730 80 25 6289 sjmp 00106$
1732 6290 00130$:
6291 ; ../../include/ztex-conf.h:105: case $0:
1732 BA 43 41 6292 cjne r2,#0x43,00111$
1735 80 48 6293 sjmp 00112$
1737 6294 00101$:
6295 ; ../../include/ztex-eeprom.h:222: EP0BCH = 0;
1737 90 E6 8A 6296 mov dptr,#_EP0BCH
173A E4 6297 clr a
173B F0 6298 movx @dptr,a
6299 ; ../../include/ztex-eeprom.h:223: EP0BCL = eeprom_read_ep0();
173C 12s03r0F 6300 lcall _eeprom_read_ep0
173F E5 82 6301 mov a,dpl
1741 90 E6 8B 6302 mov dptr,#_EP0BCL
1744 F0 6303 movx @dptr,a
6304 ; ../../include/ztex-conf.h:107: break;
6305 ; ../../include/ztex-conf.h:105: case $0:
1745 80 38 6306 sjmp 00112$
1747 6307 00103$:
6308 ; ../../include/ztex-eeprom.h:371: EP0BCH = 0;
1747 90 E6 8A 6309 mov dptr,#_EP0BCH
174A E4 6310 clr a
174B F0 6311 movx @dptr,a
6312 ; ../../include/ztex-eeprom.h:372: EP0BCL = mac_eeprom_read_ep0();
174C 12s05r55 6313 lcall _mac_eeprom_read_ep0
174F E5 82 6314 mov a,dpl
1751 90 E6 8B 6315 mov dptr,#_EP0BCL
1754 F0 6316 movx @dptr,a
6317 ; ../../include/ztex-conf.h:107: break;
6318 ; ../../include/ztex-conf.h:105: case $0:
1755 80 28 6319 sjmp 00112$
1757 6320 00106$:
6321 ; ../../include/ztex-flash2.h:679: if ( ep0_payload_transfer != 0 ) {
1757 90s00r02 6322 mov dptr,#_ep0_payload_transfer
175A E0 6323 movx a,@dptr
175B FA 6324 mov r2,a
175C 60 08 6325 jz 00108$
6326 ; ../../include/ztex-flash2.h:680: flash_ec = 0;
175E 90s00r0E 6327 mov dptr,#_flash_ec
1761 E4 6328 clr a
1762 F0 6329 movx @dptr,a
6330 ; ../../include/ztex-flash2.h:681: spi_read_ep0();
1763 12s0Ar89 6331 lcall _spi_read_ep0
1766 6332 00108$:
6333 ; ../../include/ztex-flash2.h:683: EP0BCH = 0;
1766 90 E6 8A 6334 mov dptr,#_EP0BCH
1769 E4 6335 clr a
176A F0 6336 movx @dptr,a
6337 ; ../../include/ztex-flash2.h:684: EP0BCL = ep0_payload_transfer;
176B 90s00r02 6338 mov dptr,#_ep0_payload_transfer
176E E0 6339 movx a,@dptr
176F FA 6340 mov r2,a
1770 90 E6 8B 6341 mov dptr,#_EP0BCL
1773 F0 6342 movx @dptr,a
6343 ; ../../include/ztex-conf.h:107: break;
6344 ; ../../include/ztex-isr.h:386: default:
1774 80 09 6345 sjmp 00112$
1776 6346 00111$:
6347 ; ../../include/ztex-isr.h:387: EP0BCH = 0;
1776 90 E6 8A 6348 mov dptr,#_EP0BCH
6349 ; ../../include/ztex-isr.h:388: EP0BCL = 0;
1779 E4 6350 clr a
177A F0 6351 movx @dptr,a
177B 90 E6 8B 6352 mov dptr,#_EP0BCL
177E F0 6353 movx @dptr,a
6354 ; ../../include/ztex-isr.h:389: }
177F 6355 00112$:
6356 ; ../../include/ztex-isr.h:390: EXIF &= ~bmBIT4; // clear USB interrupt flag
177F 53 91 EF 6357 anl _EXIF,#0xEF
6358 ; ../../include/ztex-isr.h:391: EPIRQ = bmBIT0; // clear EP0IN IRQ
1782 90 E6 5F 6359 mov dptr,#_EPIRQ
1785 74 01 6360 mov a,#0x01
1787 F0 6361 movx @dptr,a
6362 ; ../../include/ztex-isr.h:392: EUSB = 1;
1788 D2 E8 6363 setb _EUSB
178A D0 D0 6364 pop psw
178C D0 01 6365 pop (0+1)
178E D0 00 6366 pop (0+0)
1790 D0 07 6367 pop (0+7)
1792 D0 06 6368 pop (0+6)
1794 D0 05 6369 pop (0+5)
1796 D0 04 6370 pop (0+4)
1798 D0 03 6371 pop (0+3)
179A D0 02 6372 pop (0+2)
179C D0 83 6373 pop dph
179E D0 82 6374 pop dpl
17A0 D0 F0 6375 pop b
17A2 D0 E0 6376 pop acc
17A4 D0*00 6377 pop bits
17A6 32 6378 reti
6379 ;------------------------------------------------------------
6380 ;Allocation info for local variables in function 'EP0OUT_ISR'
6381 ;------------------------------------------------------------
6382 ;------------------------------------------------------------
6383 ; ../../include/ztex-isr.h:398: static void EP0OUT_ISR () __interrupt
6384 ; -----------------------------------------
6385 ; function EP0OUT_ISR
6386 ; -----------------------------------------
17A7 6387 _EP0OUT_ISR:
17A7 C0*00 6388 push bits
17A9 C0 E0 6389 push acc
17AB C0 F0 6390 push b
17AD C0 82 6391 push dpl
17AF C0 83 6392 push dph
17B1 C0 02 6393 push (0+2)
17B3 C0 03 6394 push (0+3)
17B5 C0 04 6395 push (0+4)
17B7 C0 05 6396 push (0+5)
17B9 C0 06 6397 push (0+6)
17BB C0 07 6398 push (0+7)
17BD C0 00 6399 push (0+0)
17BF C0 01 6400 push (0+1)
17C1 C0 D0 6401 push psw
17C3 75 D0 00 6402 mov psw,#0x00
6403 ; ../../include/ztex-isr.h:400: EUSB = 0; // block all USB interrupts
17C6 C2 E8 6404 clr _EUSB
6405 ; ../../include/ztex-isr.h:401: if ( ep0_vendor_cmd_setup ) {
17C8 90s00r04 6406 mov dptr,#_ep0_vendor_cmd_setup
17CB E0 6407 movx a,@dptr
17CC FA 6408 mov r2,a
17CD 60 20 6409 jz 00102$
6410 ; ../../include/ztex-isr.h:402: ep0_vendor_cmd_setup = 0;
17CF 90s00r04 6411 mov dptr,#_ep0_vendor_cmd_setup
17D2 E4 6412 clr a
17D3 F0 6413 movx @dptr,a
6414 ; ../../include/ztex-isr.h:403: ep0_payload_remaining = (SETUPDAT[7] << 8) | SETUPDAT[6];
17D4 90 E6 BF 6415 mov dptr,#(_SETUPDAT + 0x0007)
17D7 E0 6416 movx a,@dptr
17D8 FB 6417 mov r3,a
17D9 7A 00 6418 mov r2,#0x00
17DB 90 E6 BE 6419 mov dptr,#(_SETUPDAT + 0x0006)
17DE E0 6420 movx a,@dptr
17DF FC 6421 mov r4,a
17E0 7D 00 6422 mov r5,#0x00
17E2 90s00r00 6423 mov dptr,#_ep0_payload_remaining
17E5 EC 6424 mov a,r4
17E6 4A 6425 orl a,r2
17E7 F0 6426 movx @dptr,a
17E8 ED 6427 mov a,r5
17E9 4B 6428 orl a,r3
17EA A3 6429 inc dptr
17EB F0 6430 movx @dptr,a
6431 ; ../../include/ztex-isr.h:404: ep0_vendor_cmd_su();
17EC 12s0Fr8F 6432 lcall _ep0_vendor_cmd_su
17EF 6433 00102$:
6434 ; ../../include/ztex-isr.h:407: ep0_payload_update();
17EF 12s0Fr62 6435 lcall _ep0_payload_update
6436 ; ../../include/ztex-isr.h:409: switch ( ep0_prev_setup_request ) {
17F2 90s00r03 6437 mov dptr,#_ep0_prev_setup_request
17F5 E0 6438 movx a,@dptr
17F6 FA 6439 mov r2,a
17F7 BA 31 02 6440 cjne r2,#0x31,00127$
17FA 80 60 6441 sjmp 00112$
17FC 6442 00127$:
17FC BA 32 02 6443 cjne r2,#0x32,00128$
17FF 80 58 6444 sjmp 00111$
1801 6445 00128$:
1801 BA 39 02 6446 cjne r2,#0x39,00129$
1804 80 0A 6447 sjmp 00103$
1806 6448 00129$:
1806 BA 3C 02 6449 cjne r2,#0x3C,00130$
1809 80 10 6450 sjmp 00104$
180B 6451 00130$:
6452 ; ../../include/ztex-conf.h:128: case $0:
180B BA 42 4E 6453 cjne r2,#0x42,00112$
180E 80 1F 6454 sjmp 00105$
1810 6455 00103$:
6456 ; ../../include/ztex-eeprom.h:240: eeprom_write_ep0(EP0BCL);
1810 90 E6 8B 6457 mov dptr,#_EP0BCL
1813 E0 6458 movx a,@dptr
1814 F5 82 6459 mov dpl,a
1816 12s03r43 6460 lcall _eeprom_write_ep0
6461 ; ../../include/ztex-conf.h:130: break;
6462 ; ../../include/ztex-conf.h:128: case $0:
1819 80 41 6463 sjmp 00112$
181B 6464 00104$:
6465 ; ../../include/ztex-eeprom.h:382: mac_eeprom_write(EP0BUF, mac_eeprom_addr, EP0BCL);
181B 90s00r05 6466 mov dptr,#_mac_eeprom_addr
181E E0 6467 movx a,@dptr
181F F5*0A 6468 mov _mac_eeprom_write_PARM_2,a
1821 90 E6 8B 6469 mov dptr,#_EP0BCL
1824 E0 6470 movx a,@dptr
1825 F5*0B 6471 mov _mac_eeprom_write_PARM_3,a
1827 90 E7 40 6472 mov dptr,#_EP0BUF
182A 12s04r5D 6473 lcall _mac_eeprom_write
6474 ; ../../include/ztex-conf.h:130: break;
6475 ; ../../include/ztex-conf.h:128: case $0:
182D 80 2D 6476 sjmp 00112$
182F 6477 00105$:
6478 ; ../../include/ztex-flash2.h:703: if ( ep0_payload_transfer != 0 ) {
182F 90s00r02 6479 mov dptr,#_ep0_payload_transfer
1832 E0 6480 movx a,@dptr
1833 FA 6481 mov r2,a
1834 60 26 6482 jz 00112$
6483 ; ../../include/ztex-flash2.h:704: flash_ec = 0;
1836 90s00r0E 6484 mov dptr,#_flash_ec
1839 E4 6485 clr a
183A F0 6486 movx @dptr,a
6487 ; ../../include/ztex-flash2.h:705: spi_send_ep0();
183B 12s0ArAC 6488 lcall _spi_send_ep0
6489 ; ../../include/ztex-flash2.h:706: if ( flash_ec != 0 ) {
183E 90s00r0E 6490 mov dptr,#_flash_ec
1841 E0 6491 movx a,@dptr
1842 FA 6492 mov r2,a
1843 60 17 6493 jz 00112$
6494 ; ../../include/ztex-flash2.h:707: spi_deselect();
1845 12s06r89 6495 lcall _spi_deselect
6496 ; ../../include/ztex-conf.h:137: EP0CS |= 0x01; // set stall
1848 90 E6 A0 6497 mov dptr,#_EP0CS
184B E0 6498 movx a,@dptr
184C FA 6499 mov r2,a
184D 44 01 6500 orl a,#0x01
184F F0 6501 movx @dptr,a
6502 ; ../../include/ztex-conf.h:138: ep0_payload_remaining = 0;
1850 90s00r00 6503 mov dptr,#_ep0_payload_remaining
1853 E4 6504 clr a
1854 F0 6505 movx @dptr,a
1855 A3 6506 inc dptr
1856 F0 6507 movx @dptr,a
6508 ; ../../include/ztex-conf.h:139: break;
6509 ; ../../include/ztex-conf.h:128: case $0:
1857 80 03 6510 sjmp 00112$
1859 6511 00111$:
6512 ; ../../include/ztex-fpga7.h:211: fpga_send_ep0();
1859 12s0Cr03 6513 lcall _fpga_send_ep0
6514 ; ../../include/ztex-isr.h:411: }
185C 6515 00112$:
6516 ; ../../include/ztex-isr.h:413: EP0BCL = 0;
185C 90 E6 8B 6517 mov dptr,#_EP0BCL
185F E4 6518 clr a
1860 F0 6519 movx @dptr,a
6520 ; ../../include/ztex-isr.h:415: EXIF &= ~bmBIT4; // clear main USB interrupt flag
1861 53 91 EF 6521 anl _EXIF,#0xEF
6522 ; ../../include/ztex-isr.h:416: EPIRQ = bmBIT1; // clear EP0OUT IRQ
1864 90 E6 5F 6523 mov dptr,#_EPIRQ
1867 74 02 6524 mov a,#0x02
1869 F0 6525 movx @dptr,a
6526 ; ../../include/ztex-isr.h:417: if ( ep0_payload_remaining == 0 ) {
186A 90s00r00 6527 mov dptr,#_ep0_payload_remaining
186D E0 6528 movx a,@dptr
186E FA 6529 mov r2,a
186F A3 6530 inc dptr
1870 E0 6531 movx a,@dptr
1871 FB 6532 mov r3,a
1872 4A 6533 orl a,r2
1873 70 08 6534 jnz 00114$
6535 ; ../../include/ztex-isr.h:418: EP0CS |= 0x80; // clear the HSNAK bit
1875 90 E6 A0 6536 mov dptr,#_EP0CS
1878 E0 6537 movx a,@dptr
1879 FA 6538 mov r2,a
187A 44 80 6539 orl a,#0x80
187C F0 6540 movx @dptr,a
187D 6541 00114$:
6542 ; ../../include/ztex-isr.h:420: EUSB = 1;
187D D2 E8 6543 setb _EUSB
187F D0 D0 6544 pop psw
1881 D0 01 6545 pop (0+1)
1883 D0 00 6546 pop (0+0)
1885 D0 07 6547 pop (0+7)
1887 D0 06 6548 pop (0+6)
1889 D0 05 6549 pop (0+5)
188B D0 04 6550 pop (0+4)
188D D0 03 6551 pop (0+3)
188F D0 02 6552 pop (0+2)
1891 D0 83 6553 pop dph
1893 D0 82 6554 pop dpl
1895 D0 F0 6555 pop b
1897 D0 E0 6556 pop acc
1899 D0*00 6557 pop bits
189B 32 6558 reti
6559 ;------------------------------------------------------------
6560 ;Allocation info for local variables in function 'EP1IN_ISR'
6561 ;------------------------------------------------------------
6562 ;------------------------------------------------------------
6563 ; ../../include/ztex-isr.h:427: void EP1IN_ISR() __interrupt
6564 ; -----------------------------------------
6565 ; function EP1IN_ISR
6566 ; -----------------------------------------
189C 6567 _EP1IN_ISR:
189C C0 E0 6568 push acc
189E C0 82 6569 push dpl
18A0 C0 83 6570 push dph
6571 ; ../../include/ztex-isr.h:429: EXIF &= ~bmBIT4;
18A2 53 91 EF 6572 anl _EXIF,#0xEF
6573 ; ../../include/ztex-isr.h:430: EPIRQ = bmBIT2;
18A5 90 E6 5F 6574 mov dptr,#_EPIRQ
18A8 74 04 6575 mov a,#0x04
18AA F0 6576 movx @dptr,a
18AB D0 83 6577 pop dph
18AD D0 82 6578 pop dpl
18AF D0 E0 6579 pop acc
18B1 32 6580 reti
6581 ; eliminated unneeded push/pop psw
6582 ; eliminated unneeded push/pop b
6583 ;------------------------------------------------------------
6584 ;Allocation info for local variables in function 'EP1OUT_ISR'
6585 ;------------------------------------------------------------
6586 ;------------------------------------------------------------
6587 ; ../../include/ztex-isr.h:437: void EP1OUT_ISR() __interrupt
6588 ; -----------------------------------------
6589 ; function EP1OUT_ISR
6590 ; -----------------------------------------
18B2 6591 _EP1OUT_ISR:
18B2 C0 E0 6592 push acc
18B4 C0 82 6593 push dpl
18B6 C0 83 6594 push dph
6595 ; ../../include/ztex-isr.h:439: EXIF &= ~bmBIT4;
18B8 53 91 EF 6596 anl _EXIF,#0xEF
6597 ; ../../include/ztex-isr.h:440: EPIRQ = bmBIT3;
18BB 90 E6 5F 6598 mov dptr,#_EPIRQ
18BE 74 08 6599 mov a,#0x08
18C0 F0 6600 movx @dptr,a
18C1 D0 83 6601 pop dph
18C3 D0 82 6602 pop dpl
18C5 D0 E0 6603 pop acc
18C7 32 6604 reti
6605 ; eliminated unneeded push/pop psw
6606 ; eliminated unneeded push/pop b
6607 ;------------------------------------------------------------
6608 ;Allocation info for local variables in function 'EP2_ISR'
6609 ;------------------------------------------------------------
6610 ;------------------------------------------------------------
6611 ; ../../include/ztex-isr.h:446: void EP2_ISR() __interrupt
6612 ; -----------------------------------------
6613 ; function EP2_ISR
6614 ; -----------------------------------------
18C8 6615 _EP2_ISR:
18C8 C0 E0 6616 push acc
18CA C0 82 6617 push dpl
18CC C0 83 6618 push dph
6619 ; ../../include/ztex-isr.h:448: EXIF &= ~bmBIT4;
18CE 53 91 EF 6620 anl _EXIF,#0xEF
6621 ; ../../include/ztex-isr.h:449: EPIRQ = bmBIT4;
18D1 90 E6 5F 6622 mov dptr,#_EPIRQ
18D4 74 10 6623 mov a,#0x10
18D6 F0 6624 movx @dptr,a
18D7 D0 83 6625 pop dph
18D9 D0 82 6626 pop dpl
18DB D0 E0 6627 pop acc
18DD 32 6628 reti
6629 ; eliminated unneeded push/pop psw
6630 ; eliminated unneeded push/pop b
6631 ;------------------------------------------------------------
6632 ;Allocation info for local variables in function 'EP4_ISR'
6633 ;------------------------------------------------------------
6634 ;------------------------------------------------------------
6635 ; ../../include/ztex-isr.h:455: void EP4_ISR() __interrupt
6636 ; -----------------------------------------
6637 ; function EP4_ISR
6638 ; -----------------------------------------
18DE 6639 _EP4_ISR:
18DE C0 E0 6640 push acc
18E0 C0 82 6641 push dpl
18E2 C0 83 6642 push dph
6643 ; ../../include/ztex-isr.h:457: EXIF &= ~bmBIT4;
18E4 53 91 EF 6644 anl _EXIF,#0xEF
6645 ; ../../include/ztex-isr.h:458: EPIRQ = bmBIT5;
18E7 90 E6 5F 6646 mov dptr,#_EPIRQ
18EA 74 20 6647 mov a,#0x20
18EC F0 6648 movx @dptr,a
18ED D0 83 6649 pop dph
18EF D0 82 6650 pop dpl
18F1 D0 E0 6651 pop acc
18F3 32 6652 reti
6653 ; eliminated unneeded push/pop psw
6654 ; eliminated unneeded push/pop b
6655 ;------------------------------------------------------------
6656 ;Allocation info for local variables in function 'EP6_ISR'
6657 ;------------------------------------------------------------
6658 ;------------------------------------------------------------
6659 ; ../../include/ztex-isr.h:464: void EP6_ISR() __interrupt
6660 ; -----------------------------------------
6661 ; function EP6_ISR
6662 ; -----------------------------------------
18F4 6663 _EP6_ISR:
18F4 C0 E0 6664 push acc
18F6 C0 82 6665 push dpl
18F8 C0 83 6666 push dph
6667 ; ../../include/ztex-isr.h:466: EXIF &= ~bmBIT4;
18FA 53 91 EF 6668 anl _EXIF,#0xEF
6669 ; ../../include/ztex-isr.h:467: EPIRQ = bmBIT6;
18FD 90 E6 5F 6670 mov dptr,#_EPIRQ
1900 74 40 6671 mov a,#0x40
1902 F0 6672 movx @dptr,a
1903 D0 83 6673 pop dph
1905 D0 82 6674 pop dpl
1907 D0 E0 6675 pop acc
1909 32 6676 reti
6677 ; eliminated unneeded push/pop psw
6678 ; eliminated unneeded push/pop b
6679 ;------------------------------------------------------------
6680 ;Allocation info for local variables in function 'EP8_ISR'
6681 ;------------------------------------------------------------
6682 ;------------------------------------------------------------
6683 ; ../../include/ztex-isr.h:473: void EP8_ISR() __interrupt
6684 ; -----------------------------------------
6685 ; function EP8_ISR
6686 ; -----------------------------------------
190A 6687 _EP8_ISR:
190A C0 E0 6688 push acc
190C C0 82 6689 push dpl
190E C0 83 6690 push dph
6691 ; ../../include/ztex-isr.h:475: EXIF &= ~bmBIT4;
1910 53 91 EF 6692 anl _EXIF,#0xEF
6693 ; ../../include/ztex-isr.h:476: EPIRQ = bmBIT7;
1913 90 E6 5F 6694 mov dptr,#_EPIRQ
1916 74 80 6695 mov a,#0x80
1918 F0 6696 movx @dptr,a
1919 D0 83 6697 pop dph
191B D0 82 6698 pop dpl
191D D0 E0 6699 pop acc
191F 32 6700 reti
6701 ; eliminated unneeded push/pop psw
6702 ; eliminated unneeded push/pop b
6703 ;------------------------------------------------------------
6704 ;Allocation info for local variables in function 'mac_eeprom_init'
6705 ;------------------------------------------------------------
6706 ;b Allocated to registers r2
6707 ;c Allocated to registers r2
6708 ;d Allocated to registers r4
6709 ;buf Allocated with name '_mac_eeprom_init_buf_1_1'
6710 ;------------------------------------------------------------
6711 ; ../../include/ztex.h:269: void mac_eeprom_init ( ) {
6712 ; -----------------------------------------
6713 ; function mac_eeprom_init
6714 ; -----------------------------------------
1920 6715 _mac_eeprom_init:
6716 ; ../../include/ztex.h:274: mac_eeprom_read ( buf, 0, 3 ); // read signature
1920 75*08 00 6717 mov _mac_eeprom_read_PARM_2,#0x00
1923 75*09 03 6718 mov _mac_eeprom_read_PARM_3,#0x03
1926 90s00r31 6719 mov dptr,#_mac_eeprom_init_buf_1_1
1929 12s03r70 6720 lcall _mac_eeprom_read
6721 ; ../../include/ztex.h:275: if ( buf[0]==67 && buf[1]==68 && buf[2]==48 ) {
192C 90s00r31 6722 mov dptr,#_mac_eeprom_init_buf_1_1
192F E0 6723 movx a,@dptr
1930 FA 6724 mov r2,a
1931 BA 43 24 6725 cjne r2,#0x43,00102$
1934 90s00r32 6726 mov dptr,#(_mac_eeprom_init_buf_1_1 + 0x0001)
1937 E0 6727 movx a,@dptr
1938 FA 6728 mov r2,a
1939 BA 44 1C 6729 cjne r2,#0x44,00102$
193C 90s00r33 6730 mov dptr,#(_mac_eeprom_init_buf_1_1 + 0x0002)
193F E0 6731 movx a,@dptr
1940 FA 6732 mov r2,a
1941 BA 30 14 6733 cjne r2,#0x30,00102$
6734 ; ../../include/ztex.h:276: config_data_valid = 1;
1944 90s00r06 6735 mov dptr,#_config_data_valid
1947 74 01 6736 mov a,#0x01
1949 F0 6737 movx @dptr,a
6738 ; ../../include/ztex.h:277: mac_eeprom_read ( SN_STRING, 16, 10 ); // copy serial number
194A 75*08 10 6739 mov _mac_eeprom_read_PARM_2,#0x10
194D 75*09 0A 6740 mov _mac_eeprom_read_PARM_3,#0x0A
1950 90 00 8A 6741 mov dptr,#_SN_STRING
1953 12s03r70 6742 lcall _mac_eeprom_read
1956 80 05 6743 sjmp 00123$
1958 6744 00102$:
6745 ; ../../include/ztex.h:280: config_data_valid = 0;
1958 90s00r06 6746 mov dptr,#_config_data_valid
195B E4 6747 clr a
195C F0 6748 movx @dptr,a
6749 ; ../../include/ztex.h:283: for (b=0; b<10; b++) { // abort if SN != "0000000000"
195D 6750 00123$:
195D 7A 00 6751 mov r2,#0x00
195F 6752 00108$:
195F BA 0A 00 6753 cjne r2,#0x0A,00133$
1962 6754 00133$:
1962 50 12 6755 jnc 00111$
6756 ; ../../include/ztex.h:284: if ( SN_STRING[b] != 48 )
1964 EA 6757 mov a,r2
1965 24 8A 6758 add a,#_SN_STRING
1967 F5 82 6759 mov dpl,a
1969 E4 6760 clr a
196A 34 00 6761 addc a,#(_SN_STRING >> 8)
196C F5 83 6762 mov dph,a
196E E0 6763 movx a,@dptr
196F FB 6764 mov r3,a
6765 ; ../../include/ztex.h:285: return;
1970 BB 30 54 6766 cjne r3,#0x30,00116$
6767 ; ../../include/ztex.h:283: for (b=0; b<10; b++) { // abort if SN != "0000000000"
1973 0A 6768 inc r2
1974 80 E9 6769 sjmp 00108$
1976 6770 00111$:
6771 ; ../../include/ztex.h:288: mac_eeprom_read ( buf, 0xfb, 5 ); // read the last 5 MAC digits
1976 75*08 FB 6772 mov _mac_eeprom_read_PARM_2,#0xFB
1979 75*09 05 6773 mov _mac_eeprom_read_PARM_3,#0x05
197C 90s00r31 6774 mov dptr,#_mac_eeprom_init_buf_1_1
197F 12s03r70 6775 lcall _mac_eeprom_read
6776 ; ../../include/ztex.h:290: c=0;
1982 7A 00 6777 mov r2,#0x00
6778 ; ../../include/ztex.h:291: for (b=0; b<5; b++) { // convert to MAC to SN string
1984 7B 00 6779 mov r3,#0x00
1986 6780 00112$:
1986 BB 05 00 6781 cjne r3,#0x05,00136$
1989 6782 00136$:
1989 50 3C 6783 jnc 00116$
6784 ; ../../include/ztex.h:292: d = buf[b];
198B EB 6785 mov a,r3
198C 24r31 6786 add a,#_mac_eeprom_init_buf_1_1
198E F5 82 6787 mov dpl,a
1990 E4 6788 clr a
1991 34s00 6789 addc a,#(_mac_eeprom_init_buf_1_1 >> 8)
1993 F5 83 6790 mov dph,a
1995 E0 6791 movx a,@dptr
1996 FC 6792 mov r4,a
6793 ; ../../include/ztex.h:293: SN_STRING[c] = hexdigits[d>>4];
1997 EA 6794 mov a,r2
1998 24 8A 6795 add a,#_SN_STRING
199A FD 6796 mov r5,a
199B E4 6797 clr a
199C 34 00 6798 addc a,#(_SN_STRING >> 8)
199E FE 6799 mov r6,a
199F EC 6800 mov a,r4
19A0 C4 6801 swap a
19A1 54 0F 6802 anl a,#0x0f
19A3 90s00r99 6803 mov dptr,#_mac_eeprom_init_hexdigits_1_1
19A6 93 6804 movc a,@a+dptr
19A7 FF 6805 mov r7,a
19A8 8D 82 6806 mov dpl,r5
19AA 8E 83 6807 mov dph,r6
19AC F0 6808 movx @dptr,a
6809 ; ../../include/ztex.h:294: c++;
19AD 0A 6810 inc r2
6811 ; ../../include/ztex.h:295: SN_STRING[c] = hexdigits[d & 15];
19AE EA 6812 mov a,r2
19AF 24 8A 6813 add a,#_SN_STRING
19B1 FD 6814 mov r5,a
19B2 E4 6815 clr a
19B3 34 00 6816 addc a,#(_SN_STRING >> 8)
19B5 FE 6817 mov r6,a
19B6 74 0F 6818 mov a,#0x0F
19B8 5C 6819 anl a,r4
19B9 90s00r99 6820 mov dptr,#_mac_eeprom_init_hexdigits_1_1
19BC 93 6821 movc a,@a+dptr
19BD FC 6822 mov r4,a
19BE 8D 82 6823 mov dpl,r5
19C0 8E 83 6824 mov dph,r6
19C2 F0 6825 movx @dptr,a
6826 ; ../../include/ztex.h:296: c++;
19C3 0A 6827 inc r2
6828 ; ../../include/ztex.h:291: for (b=0; b<5; b++) { // convert to MAC to SN string
19C4 0B 6829 inc r3
19C5 80 BF 6830 sjmp 00112$
19C7 6831 00116$:
19C7 22 6832 ret
6833 ;------------------------------------------------------------
6834 ;Allocation info for local variables in function 'init_USB'
6835 ;------------------------------------------------------------
6836 ;------------------------------------------------------------
6837 ; ../../include/ztex.h:345: void init_USB ()
6838 ; -----------------------------------------
6839 ; function init_USB
6840 ; -----------------------------------------
19C8 6841 _init_USB:
6842 ; ../../include/ztex.h:347: USBCS |= bmBIT3;
19C8 90 E6 80 6843 mov dptr,#_USBCS
19CB E0 6844 movx a,@dptr
19CC 44 08 6845 orl a,#0x08
19CE F0 6846 movx @dptr,a
6847 ; ../../include/ztex.h:349: CPUCS = bmBIT4 | bmBIT1;
19CF 90 E6 00 6848 mov dptr,#_CPUCS
19D2 74 12 6849 mov a,#0x12
19D4 F0 6850 movx @dptr,a
6851 ; ../../include/ztex.h:350: wait(2);
19D5 90 00 02 6852 mov dptr,#0x0002
19D8 12s00r01 6853 lcall _wait
6854 ; ../../include/ztex.h:351: CKCON &= ~7;
19DB 53 8E F8 6855 anl _CKCON,#0xF8
6856 ; ../../include/ztex.h:380: init_fpga();
19DE 12s0ArEE 6857 lcall _init_fpga
6858 ; ../../include/ztex-fpga-flash2.h:105: fpga_flash_result= 255;
19E1 90s00r26 6859 mov dptr,#_fpga_flash_result
19E4 74 FF 6860 mov a,#0xFF
19E6 F0 6861 movx @dptr,a
6862 ; ../../include/ztex.h:385: EA = 0;
19E7 C2 AF 6863 clr _EA
6864 ; ../../include/ztex.h:386: EUSB = 0;
19E9 C2 E8 6865 clr _EUSB
6866 ; ../../include/ezintavecs.h:123: INT8VEC_USB.op=0x02;
19EB 90 00 43 6867 mov dptr,#_INT8VEC_USB
19EE 74 02 6868 mov a,#0x02
19F0 F0 6869 movx @dptr,a
6870 ; ../../include/ezintavecs.h:124: INT8VEC_USB.addrH = 0x01;
19F1 90 00 44 6871 mov dptr,#(_INT8VEC_USB + 0x0001)
19F4 74 01 6872 mov a,#0x01
19F6 F0 6873 movx @dptr,a
6874 ; ../../include/ezintavecs.h:125: INT8VEC_USB.addrL = 0xb8;
19F7 90 00 45 6875 mov dptr,#(_INT8VEC_USB + 0x0002)
19FA 74 B8 6876 mov a,#0xB8
19FC F0 6877 movx @dptr,a
6878 ; ../../include/ezintavecs.h:126: INTSETUP |= 8;
19FD 90 E6 68 6879 mov dptr,#_INTSETUP
1A00 E0 6880 movx a,@dptr
1A01 44 08 6881 orl a,#0x08
1A03 F0 6882 movx @dptr,a
6883 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1A04 90 01 00 6884 mov dptr,#_INTVEC_SUDAV
1A07 74 02 6885 mov a,#0x02
1A09 F0 6886 movx @dptr,a
6887 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1A0A 7Ar28 6888 mov r2,#_SUDAV_ISR
1A0C 7Bs10 6889 mov r3,#(_SUDAV_ISR >> 8)
1A0E 8B 04 6890 mov ar4,r3
1A10 90 01 01 6891 mov dptr,#(_INTVEC_SUDAV + 0x0001)
1A13 EC 6892 mov a,r4
1A14 F0 6893 movx @dptr,a
6894 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1A15 90 01 02 6895 mov dptr,#(_INTVEC_SUDAV + 0x0002)
1A18 EA 6896 mov a,r2
1A19 F0 6897 movx @dptr,a
6898 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1A1A 90 01 04 6899 mov dptr,#_INTVEC_SOF
1A1D 74 02 6900 mov a,#0x02
1A1F F0 6901 movx @dptr,a
6902 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1A20 7Ar61 6903 mov r2,#_SOF_ISR
1A22 7Bs16 6904 mov r3,#(_SOF_ISR >> 8)
1A24 8B 04 6905 mov ar4,r3
1A26 90 01 05 6906 mov dptr,#(_INTVEC_SOF + 0x0001)
1A29 EC 6907 mov a,r4
1A2A F0 6908 movx @dptr,a
6909 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1A2B 90 01 06 6910 mov dptr,#(_INTVEC_SOF + 0x0002)
1A2E EA 6911 mov a,r2
1A2F F0 6912 movx @dptr,a
6913 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1A30 90 01 08 6914 mov dptr,#_INTVEC_SUTOK
1A33 74 02 6915 mov a,#0x02
1A35 F0 6916 movx @dptr,a
6917 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1A36 7Ar77 6918 mov r2,#_SUTOK_ISR
1A38 7Bs16 6919 mov r3,#(_SUTOK_ISR >> 8)
1A3A 8B 04 6920 mov ar4,r3
1A3C 90 01 09 6921 mov dptr,#(_INTVEC_SUTOK + 0x0001)
1A3F EC 6922 mov a,r4
1A40 F0 6923 movx @dptr,a
6924 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1A41 90 01 0A 6925 mov dptr,#(_INTVEC_SUTOK + 0x0002)
1A44 EA 6926 mov a,r2
1A45 F0 6927 movx @dptr,a
6928 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1A46 90 01 0C 6929 mov dptr,#_INTVEC_SUSPEND
1A49 74 02 6930 mov a,#0x02
1A4B F0 6931 movx @dptr,a
6932 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1A4C 7Ar8D 6933 mov r2,#_SUSP_ISR
1A4E 7Bs16 6934 mov r3,#(_SUSP_ISR >> 8)
1A50 8B 04 6935 mov ar4,r3
1A52 90 01 0D 6936 mov dptr,#(_INTVEC_SUSPEND + 0x0001)
1A55 EC 6937 mov a,r4
1A56 F0 6938 movx @dptr,a
6939 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1A57 90 01 0E 6940 mov dptr,#(_INTVEC_SUSPEND + 0x0002)
1A5A EA 6941 mov a,r2
1A5B F0 6942 movx @dptr,a
6943 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1A5C 90 01 10 6944 mov dptr,#_INTVEC_USBRESET
1A5F 74 02 6945 mov a,#0x02
1A61 F0 6946 movx @dptr,a
6947 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1A62 7ArA3 6948 mov r2,#_URES_ISR
1A64 7Bs16 6949 mov r3,#(_URES_ISR >> 8)
1A66 8B 04 6950 mov ar4,r3
1A68 90 01 11 6951 mov dptr,#(_INTVEC_USBRESET + 0x0001)
1A6B EC 6952 mov a,r4
1A6C F0 6953 movx @dptr,a
6954 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1A6D 90 01 12 6955 mov dptr,#(_INTVEC_USBRESET + 0x0002)
1A70 EA 6956 mov a,r2
1A71 F0 6957 movx @dptr,a
6958 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1A72 90 01 14 6959 mov dptr,#_INTVEC_HISPEED
1A75 74 02 6960 mov a,#0x02
1A77 F0 6961 movx @dptr,a
6962 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1A78 7ArB9 6963 mov r2,#_HSGRANT_ISR
1A7A 7Bs16 6964 mov r3,#(_HSGRANT_ISR >> 8)
1A7C 8B 04 6965 mov ar4,r3
1A7E 90 01 15 6966 mov dptr,#(_INTVEC_HISPEED + 0x0001)
1A81 EC 6967 mov a,r4
1A82 F0 6968 movx @dptr,a
6969 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1A83 90 01 16 6970 mov dptr,#(_INTVEC_HISPEED + 0x0002)
1A86 EA 6971 mov a,r2
1A87 F0 6972 movx @dptr,a
6973 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1A88 90 01 18 6974 mov dptr,#_INTVEC_EP0ACK
1A8B 74 02 6975 mov a,#0x02
1A8D F0 6976 movx @dptr,a
6977 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1A8E 7ArCF 6978 mov r2,#_EP0ACK_ISR
1A90 7Bs16 6979 mov r3,#(_EP0ACK_ISR >> 8)
1A92 8B 04 6980 mov ar4,r3
1A94 90 01 19 6981 mov dptr,#(_INTVEC_EP0ACK + 0x0001)
1A97 EC 6982 mov a,r4
1A98 F0 6983 movx @dptr,a
6984 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1A99 90 01 1A 6985 mov dptr,#(_INTVEC_EP0ACK + 0x0002)
1A9C EA 6986 mov a,r2
1A9D F0 6987 movx @dptr,a
6988 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1A9E 90 01 20 6989 mov dptr,#_INTVEC_EP0IN
1AA1 74 02 6990 mov a,#0x02
1AA3 F0 6991 movx @dptr,a
6992 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1AA4 7ArE5 6993 mov r2,#_EP0IN_ISR
1AA6 7Bs16 6994 mov r3,#(_EP0IN_ISR >> 8)
1AA8 8B 04 6995 mov ar4,r3
1AAA 90 01 21 6996 mov dptr,#(_INTVEC_EP0IN + 0x0001)
1AAD EC 6997 mov a,r4
1AAE F0 6998 movx @dptr,a
6999 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1AAF 90 01 22 7000 mov dptr,#(_INTVEC_EP0IN + 0x0002)
1AB2 EA 7001 mov a,r2
1AB3 F0 7002 movx @dptr,a
7003 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1AB4 90 01 24 7004 mov dptr,#_INTVEC_EP0OUT
1AB7 74 02 7005 mov a,#0x02
1AB9 F0 7006 movx @dptr,a
7007 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1ABA 7ArA7 7008 mov r2,#_EP0OUT_ISR
1ABC 7Bs17 7009 mov r3,#(_EP0OUT_ISR >> 8)
1ABE 8B 04 7010 mov ar4,r3
1AC0 90 01 25 7011 mov dptr,#(_INTVEC_EP0OUT + 0x0001)
1AC3 EC 7012 mov a,r4
1AC4 F0 7013 movx @dptr,a
7014 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1AC5 90 01 26 7015 mov dptr,#(_INTVEC_EP0OUT + 0x0002)
1AC8 EA 7016 mov a,r2
1AC9 F0 7017 movx @dptr,a
7018 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1ACA 90 01 28 7019 mov dptr,#_INTVEC_EP1IN
1ACD 74 02 7020 mov a,#0x02
1ACF F0 7021 movx @dptr,a
7022 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1AD0 7Ar9C 7023 mov r2,#_EP1IN_ISR
1AD2 7Bs18 7024 mov r3,#(_EP1IN_ISR >> 8)
1AD4 8B 04 7025 mov ar4,r3
1AD6 90 01 29 7026 mov dptr,#(_INTVEC_EP1IN + 0x0001)
1AD9 EC 7027 mov a,r4
1ADA F0 7028 movx @dptr,a
7029 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1ADB 90 01 2A 7030 mov dptr,#(_INTVEC_EP1IN + 0x0002)
1ADE EA 7031 mov a,r2
1ADF F0 7032 movx @dptr,a
7033 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1AE0 90 01 2C 7034 mov dptr,#_INTVEC_EP1OUT
1AE3 74 02 7035 mov a,#0x02
1AE5 F0 7036 movx @dptr,a
7037 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1AE6 7ArB2 7038 mov r2,#_EP1OUT_ISR
1AE8 7Bs18 7039 mov r3,#(_EP1OUT_ISR >> 8)
1AEA 8B 04 7040 mov ar4,r3
1AEC 90 01 2D 7041 mov dptr,#(_INTVEC_EP1OUT + 0x0001)
1AEF EC 7042 mov a,r4
1AF0 F0 7043 movx @dptr,a
7044 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1AF1 90 01 2E 7045 mov dptr,#(_INTVEC_EP1OUT + 0x0002)
1AF4 EA 7046 mov a,r2
1AF5 F0 7047 movx @dptr,a
7048 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1AF6 90 01 30 7049 mov dptr,#_INTVEC_EP2
1AF9 74 02 7050 mov a,#0x02
1AFB F0 7051 movx @dptr,a
7052 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1AFC 7ArC8 7053 mov r2,#_EP2_ISR
1AFE 7Bs18 7054 mov r3,#(_EP2_ISR >> 8)
1B00 8B 04 7055 mov ar4,r3
1B02 90 01 31 7056 mov dptr,#(_INTVEC_EP2 + 0x0001)
1B05 EC 7057 mov a,r4
1B06 F0 7058 movx @dptr,a
7059 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1B07 90 01 32 7060 mov dptr,#(_INTVEC_EP2 + 0x0002)
1B0A EA 7061 mov a,r2
1B0B F0 7062 movx @dptr,a
7063 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1B0C 90 01 34 7064 mov dptr,#_INTVEC_EP4
1B0F 74 02 7065 mov a,#0x02
1B11 F0 7066 movx @dptr,a
7067 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1B12 7ArDE 7068 mov r2,#_EP4_ISR
1B14 7Bs18 7069 mov r3,#(_EP4_ISR >> 8)
1B16 8B 04 7070 mov ar4,r3
1B18 90 01 35 7071 mov dptr,#(_INTVEC_EP4 + 0x0001)
1B1B EC 7072 mov a,r4
1B1C F0 7073 movx @dptr,a
7074 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1B1D 90 01 36 7075 mov dptr,#(_INTVEC_EP4 + 0x0002)
1B20 EA 7076 mov a,r2
1B21 F0 7077 movx @dptr,a
7078 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1B22 90 01 38 7079 mov dptr,#_INTVEC_EP6
1B25 74 02 7080 mov a,#0x02
1B27 F0 7081 movx @dptr,a
7082 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1B28 7ArF4 7083 mov r2,#_EP6_ISR
1B2A 7Bs18 7084 mov r3,#(_EP6_ISR >> 8)
1B2C 8B 04 7085 mov ar4,r3
1B2E 90 01 39 7086 mov dptr,#(_INTVEC_EP6 + 0x0001)
1B31 EC 7087 mov a,r4
1B32 F0 7088 movx @dptr,a
7089 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1B33 90 01 3A 7090 mov dptr,#(_INTVEC_EP6 + 0x0002)
1B36 EA 7091 mov a,r2
1B37 F0 7092 movx @dptr,a
7093 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1B38 90 01 3C 7094 mov dptr,#_INTVEC_EP8
1B3B 74 02 7095 mov a,#0x02
1B3D F0 7096 movx @dptr,a
7097 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1B3E 7Ar0A 7098 mov r2,#_EP8_ISR
1B40 7Bs19 7099 mov r3,#(_EP8_ISR >> 8)
1B42 8B 04 7100 mov ar4,r3
1B44 90 01 3D 7101 mov dptr,#(_INTVEC_EP8 + 0x0001)
1B47 EC 7102 mov a,r4
1B48 F0 7103 movx @dptr,a
7104 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1B49 90 01 3E 7105 mov dptr,#(_INTVEC_EP8 + 0x0002)
1B4C EA 7106 mov a,r2
1B4D F0 7107 movx @dptr,a
7108 ; ../../include/ztex.h:407: EXIF &= ~bmBIT4;
1B4E 53 91 EF 7109 anl _EXIF,#0xEF
7110 ; ../../include/ztex.h:408: USBIRQ = 0x7f;
1B51 90 E6 5D 7111 mov dptr,#_USBIRQ
1B54 74 7F 7112 mov a,#0x7F
1B56 F0 7113 movx @dptr,a
7114 ; ../../include/ztex.h:409: USBIE |= 0x7f;
1B57 90 E6 5C 7115 mov dptr,#_USBIE
1B5A E0 7116 movx a,@dptr
1B5B FA 7117 mov r2,a
1B5C 44 7F 7118 orl a,#0x7F
1B5E F0 7119 movx @dptr,a
7120 ; ../../include/ztex.h:410: EPIRQ = 0xff;
1B5F 90 E6 5F 7121 mov dptr,#_EPIRQ
1B62 74 FF 7122 mov a,#0xFF
1B64 F0 7123 movx @dptr,a
7124 ; ../../include/ztex.h:411: EPIE = 0xff;
1B65 90 E6 5E 7125 mov dptr,#_EPIE
1B68 74 FF 7126 mov a,#0xFF
1B6A F0 7127 movx @dptr,a
7128 ; ../../include/ztex.h:413: EUSB = 1;
1B6B D2 E8 7129 setb _EUSB
7130 ; ../../include/ztex.h:414: EA = 1;
1B6D D2 AF 7131 setb _EA
7132 ; ../../include/ztex.h:333: EP$0CFG = bmBIT7 | bmBIT5;
1B6F 90 E6 11 7133 mov dptr,#_EP1INCFG
1B72 74 A0 7134 mov a,#0xA0
1B74 F0 7135 movx @dptr,a
7136 ; ../../include/ezregs.h:46: __endasm;
7137
1B75 00 7138 nop
1B76 00 7139 nop
1B77 00 7140 nop
1B78 00 7141 nop
7142
7143 ; ../../include/ztex.h:333: EP$0CFG = bmBIT7 | bmBIT5;
1B79 90 E6 10 7144 mov dptr,#_EP1OUTCFG
1B7C 74 A0 7145 mov a,#0xA0
1B7E F0 7146 movx @dptr,a
7147 ; ../../include/ezregs.h:46: __endasm;
7148
1B7F 00 7149 nop
1B80 00 7150 nop
1B81 00 7151 nop
1B82 00 7152 nop
7153
7154 ; ../../include/ztex.h:328: ;
1B83 90 E6 12 7155 mov dptr,#_EP2CFG
1B86 E4 7156 clr a
1B87 F0 7157 movx @dptr,a
7158 ; ../../include/ezregs.h:46: __endasm;
7159
1B88 00 7160 nop
1B89 00 7161 nop
1B8A 00 7162 nop
1B8B 00 7163 nop
7164
7165 ; ../../include/ztex.h:328: ;
1B8C 90 E6 13 7166 mov dptr,#_EP4CFG
1B8F E4 7167 clr a
1B90 F0 7168 movx @dptr,a
7169 ; ../../include/ezregs.h:46: __endasm;
7170
1B91 00 7171 nop
1B92 00 7172 nop
1B93 00 7173 nop
1B94 00 7174 nop
7175
7176 ; ../../include/ztex.h:328: ;
1B95 90 E6 14 7177 mov dptr,#_EP6CFG
1B98 E4 7178 clr a
1B99 F0 7179 movx @dptr,a
7180 ; ../../include/ezregs.h:46: __endasm;
7181
1B9A 00 7182 nop
1B9B 00 7183 nop
1B9C 00 7184 nop
1B9D 00 7185 nop
7186
7187 ; ../../include/ztex.h:328: ;
1B9E 90 E6 15 7188 mov dptr,#_EP8CFG
1BA1 E4 7189 clr a
1BA2 F0 7190 movx @dptr,a
7191 ; ../../include/ezregs.h:46: __endasm;
7192
1BA3 00 7193 nop
1BA4 00 7194 nop
1BA5 00 7195 nop
1BA6 00 7196 nop
7197
7198 ; ../../include/ztex.h:434: flash_init();
1BA7 12s09rC9 7199 lcall _flash_init
7200 ; ../../include/ztex.h:435: if ( !flash_enabled ) {
1BAA 90s00r07 7201 mov dptr,#_flash_enabled
1BAD E0 7202 movx a,@dptr
1BAE FA 7203 mov r2,a
1BAF 70 09 7204 jnz 00102$
7205 ; ../../include/ztex.h:436: wait(250);
1BB1 90 00 FA 7206 mov dptr,#0x00FA
1BB4 12s00r01 7207 lcall _wait
7208 ; ../../include/ztex.h:437: flash_init();
1BB7 12s09rC9 7209 lcall _flash_init
1BBA 7210 00102$:
7211 ; ../../include/ztex.h:447: mac_eeprom_init();
1BBA 12s19r20 7212 lcall _mac_eeprom_init
7213 ; ../../include/ztex.h:453: fpga_configure_from_flash_init();
1BBD 12s0DrEC 7214 lcall _fpga_configure_from_flash_init
7215 ; ../../include/ztex.h:456: USBCS |= bmBIT7 | bmBIT1;
1BC0 90 E6 80 7216 mov dptr,#_USBCS
1BC3 E0 7217 movx a,@dptr
1BC4 44 82 7218 orl a,#0x82
1BC6 F0 7219 movx @dptr,a
7220 ; ../../include/ztex.h:457: wait(10);
1BC7 90 00 0A 7221 mov dptr,#0x000A
1BCA 12s00r01 7222 lcall _wait
7223 ; ../../include/ztex.h:459: USBCS &= ~bmBIT3;
1BCD 90 E6 80 7224 mov dptr,#_USBCS
1BD0 E0 7225 movx a,@dptr
1BD1 54 F7 7226 anl a,#0xF7
1BD3 F0 7227 movx @dptr,a
1BD4 22 7228 ret
7229 ;------------------------------------------------------------
7230 ;Allocation info for local variables in function 'main'
7231 ;------------------------------------------------------------
7232 ;------------------------------------------------------------
7233 ; default.c:35: void main(void)
7234 ; -----------------------------------------
7235 ; function main
7236 ; -----------------------------------------
1BD5 7237 _main:
7238 ; default.c:37: init_USB();
1BD5 12s19rC8 7239 lcall _init_USB
7240 ; default.c:39: if ( config_data_valid ) {
1BD8 90s00r06 7241 mov dptr,#_config_data_valid
1BDB E0 7242 movx a,@dptr
1BDC FA 7243 mov r2,a
1BDD 60 0C 7244 jz 00104$
7245 ; default.c:40: mac_eeprom_read ( (__xdata BYTE*) (productString+20), 6, 1 );
1BDF 90s00r21 7246 mov dptr,#(_productString + 0x0014)
1BE2 75*08 06 7247 mov _mac_eeprom_read_PARM_2,#0x06
1BE5 75*09 01 7248 mov _mac_eeprom_read_PARM_3,#0x01
1BE8 12s03r70 7249 lcall _mac_eeprom_read
7250 ; default.c:43: while (1) { } // twiddle thumbs
1BEB 7251 00104$:
1BEB 80 FE 7252 sjmp 00104$
7253 .area CSEG (CODE)
7254 .area CONST (CODE)
0000 7255 _fpga_flash_boot_id:
0000 5A 7256 .db #0x5A
0001 54 7257 .db #0x54
0002 45 7258 .db #0x45
0003 58 7259 .db #0x58
0004 42 7260 .db #0x42
0005 53 7261 .db #0x53
0006 01 7262 .db #0x01
0007 01 7263 .db #0x01
0008 7264 _manufacturerString:
0008 5A 54 45 58 7265 .ascii "ZTEX"
000C 00 7266 .db 0x00
000D 7267 _productString:
000D 55 53 42 2D 46 50 7268 .ascii "USB-FPGA Module 2.01 (default)"
47 41 20 4D 6F 64
75 6C 65 20 32 2E
30 31 20 20 28 64
65 66 61 75 6C 74
29
002C 00 7269 .db 0x00
002D 7270 _configurationString:
002D 64 65 66 61 75 6C 7271 .ascii "default"
74
0034 00 7272 .db 0x00
0035 7273 _DeviceDescriptor:
0035 12 7274 .db #0x12
0036 01 7275 .db #0x01
0037 00 7276 .db #0x00
0038 02 7277 .db #0x02
0039 FF 7278 .db #0xFF
003A FF 7279 .db #0xFF
003B FF 7280 .db #0xFF
003C 40 7281 .db #0x40
003D 1A 7282 .db #0x1A
003E 22 7283 .db #0x22
003F 00 7284 .db #0x00
0040 01 7285 .db #0x01
0041 00 7286 .db #0x00
0042 00 7287 .db #0x00
0043 01 7288 .db #0x01
0044 02 7289 .db #0x02
0045 03 7290 .db #0x03
0046 01 7291 .db #0x01
0047 7292 _DeviceQualifierDescriptor:
0047 0A 7293 .db #0x0A
0048 06 7294 .db #0x06
0049 00 7295 .db #0x00
004A 02 7296 .db #0x02
004B FF 7297 .db #0xFF
004C FF 7298 .db #0xFF
004D FF 7299 .db #0xFF
004E 40 7300 .db #0x40
004F 01 7301 .db #0x01
0050 00 7302 .db #0x00
0051 7303 _HighSpeedConfigDescriptor:
0051 09 7304 .db #0x09
0052 02 7305 .db #0x02
0053 20 7306 .db #0x20
0054 00 7307 .db #0x00
0055 01 7308 .db #0x01
0056 01 7309 .db #0x01
0057 04 7310 .db #0x04
0058 C0 7311 .db #0xC0
0059 32 7312 .db #0x32
005A 09 7313 .db #0x09
005B 04 7314 .db #0x04
005C 00 7315 .db #0x00
005D 00 7316 .db #0x00
005E 02 7317 .db #0x02
005F FF 7318 .db #0xFF
0060 FF 7319 .db #0xFF
0061 FF 7320 .db #0xFF
0062 00 7321 .db #0x00
0063 07 7322 .db #0x07
0064 05 7323 .db #0x05
0065 81 7324 .db #0x81
0066 02 7325 .db #0x02
0067 00 7326 .db #0x00
0068 02 7327 .db #0x02
0069 00 7328 .db #0x00
006A 07 7329 .db #0x07
006B 05 7330 .db #0x05
006C 01 7331 .db #0x01
006D 02 7332 .db #0x02
006E 00 7333 .db #0x00
006F 02 7334 .db #0x02
0070 00 7335 .db #0x00
0071 7336 _HighSpeedConfigDescriptor_PadByte:
0071 00 7337 .db #0x00
0072 00 7338 .db 0x00
0073 7339 _FullSpeedConfigDescriptor:
0073 09 7340 .db #0x09
0074 02 7341 .db #0x02
0075 20 7342 .db #0x20
0076 00 7343 .db #0x00
0077 01 7344 .db #0x01
0078 01 7345 .db #0x01
0079 04 7346 .db #0x04
007A C0 7347 .db #0xC0
007B 32 7348 .db #0x32
007C 09 7349 .db #0x09
007D 04 7350 .db #0x04
007E 00 7351 .db #0x00
007F 00 7352 .db #0x00
0080 02 7353 .db #0x02
0081 FF 7354 .db #0xFF
0082 FF 7355 .db #0xFF
0083 FF 7356 .db #0xFF
0084 00 7357 .db #0x00
0085 07 7358 .db #0x07
0086 05 7359 .db #0x05
0087 81 7360 .db #0x81
0088 02 7361 .db #0x02
0089 40 7362 .db #0x40
008A 00 7363 .db #0x00
008B 00 7364 .db #0x00
008C 07 7365 .db #0x07
008D 05 7366 .db #0x05
008E 01 7367 .db #0x01
008F 02 7368 .db #0x02
0090 40 7369 .db #0x40
0091 00 7370 .db #0x00
0092 00 7371 .db #0x00
0093 7372 _FullSpeedConfigDescriptor_PadByte:
0093 00 7373 .db #0x00
0094 00 7374 .db 0x00
0095 7375 _EmptyStringDescriptor:
0095 04 7376 .db #0x04
0096 03 7377 .db #0x03
0097 00 7378 .db #0x00
0098 00 7379 .db #0x00
0099 7380 _mac_eeprom_init_hexdigits_1_1:
0099 30 31 32 33 34 35 7381 .ascii "0123456789ABCDEF"
36 37 38 39 41 42
43 44 45 46
00A9 00 7382 .db 0x00
7383 .area XINIT (CODE)
0000 7384 __xinit__ep0_payload_remaining:
0000 00 00 7385 .byte #0x00,#0x00
0002 7386 __xinit__ep0_payload_transfer:
0002 00 7387 .db #0x00
0003 7388 __xinit__ep0_prev_setup_request:
0003 FF 7389 .db #0xFF
0004 7390 __xinit__ep0_vendor_cmd_setup:
0004 00 7391 .db #0x00
0005 7392 __xinit__ISOFRAME_COUNTER:
0005 00 00 7393 .byte #0x00,#0x00
0007 00 00 7394 .byte #0x00,#0x00
0009 00 00 7395 .byte #0x00,#0x00
000B 00 00 7396 .byte #0x00,#0x00
7397 .area CABS (ABS,CODE)