URL
https://opencores.org/ocsvn/usb_fpga_2_04/usb_fpga_2_04/trunk
Subversion Repositories usb_fpga_2_04
[/] [usb_fpga_2_04/] [trunk/] [default/] [usb-fpga-2.01/] [default.rst] - Rev 2
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:07: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)
0020 751 bits:
0020 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)
0008 765 _eeprom_select_PARM_2:
0008 766 .ds 1
0009 767 _eeprom_select_PARM_3:
0009 768 .ds 1
000A 769 _eeprom_read_PARM_2:
000A 770 .ds 2
000C 771 _eeprom_read_PARM_3:
000C 772 .ds 1
000D 773 _eeprom_write_PARM_2:
000D 774 .ds 2
000F 775 _eeprom_write_PARM_3:
000F 776 .ds 1
0010 777 _mac_eeprom_read_PARM_2:
0010 778 .ds 1
0011 779 _mac_eeprom_read_PARM_3:
0011 780 .ds 1
0012 781 _mac_eeprom_write_PARM_2:
0012 782 .ds 1
0013 783 _mac_eeprom_write_PARM_3:
0013 784 .ds 1
0014 785 _flash_write_PARM_2:
0014 786 .ds 1
0015 787 _fpga_send_ep0_oOEC_1_1:
0015 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)
0016 800 _flash_read_PARM_2::
0016 801 .ds 1
802 .area OSEG (OVR,DATA)
803 .area OSEG (OVR,DATA)
0016 804 _spi_write_PARM_2::
0016 805 .ds 1
806 .area OSEG (OVR,DATA)
0016 807 _sendStringDescriptor_PARM_2::
0016 808 .ds 1
0017 809 _sendStringDescriptor_PARM_3::
0017 810 .ds 1
811 ;--------------------------------------------------------
812 ; Stack segment in internal ram
813 ;--------------------------------------------------------
814 .area SSEG (DATA)
0021 815 __start__stack:
0021 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
3A00 1084 _eeprom_addr::
3A00 1085 .ds 2
3A02 1086 _eeprom_write_bytes::
3A02 1087 .ds 2
3A04 1088 _eeprom_write_checksum::
3A04 1089 .ds 1
3A05 1090 _mac_eeprom_addr::
3A05 1091 .ds 1
3A06 1092 _config_data_valid::
3A06 1093 .ds 1
3A07 1094 _flash_enabled::
3A07 1095 .ds 1
3A08 1096 _flash_sector_size::
3A08 1097 .ds 2
3A0A 1098 _flash_sectors::
3A0A 1099 .ds 4
3A0E 1100 _flash_ec::
3A0E 1101 .ds 1
3A0F 1102 _spi_vendor::
3A0F 1103 .ds 1
3A10 1104 _spi_device::
3A10 1105 .ds 1
3A11 1106 _spi_memtype::
3A11 1107 .ds 1
3A12 1108 _spi_erase_cmd::
3A12 1109 .ds 1
3A13 1110 _spi_last_cmd::
3A13 1111 .ds 1
3A14 1112 _spi_buffer::
3A14 1113 .ds 4
3A18 1114 _spi_write_addr_hi::
3A18 1115 .ds 2
3A1A 1116 _spi_write_addr_lo::
3A1A 1117 .ds 1
3A1B 1118 _spi_need_pp::
3A1B 1119 .ds 1
3A1C 1120 _spi_write_sector::
3A1C 1121 .ds 2
3A1E 1122 _ep0_read_mode::
3A1E 1123 .ds 1
3A1F 1124 _ep0_write_mode::
3A1F 1125 .ds 1
3A20 1126 _fpga_checksum::
3A20 1127 .ds 1
3A21 1128 _fpga_bytes::
3A21 1129 .ds 4
3A25 1130 _fpga_init_b::
3A25 1131 .ds 1
3A26 1132 _fpga_flash_result::
3A26 1133 .ds 1
3A27 1134 _fpga_conf_initialized::
3A27 1135 .ds 1
3A28 1136 _OOEA::
3A28 1137 .ds 1
3A29 1138 _fpga_first_free_sector_buf_1_1:
3A29 1139 .ds 4
3A2D 1140 _fpga_configure_from_flash_init_buf_1_1:
3A2D 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
3A31 1151 _mac_eeprom_init_buf_1_1:
3A31 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)
3A36 1161 _ep0_payload_remaining::
3A36 1162 .ds 2
3A38 1163 _ep0_payload_transfer::
3A38 1164 .ds 1
3A39 1165 _ep0_prev_setup_request::
3A39 1166 .ds 1
3A3A 1167 _ep0_vendor_cmd_setup::
3A3A 1168 .ds 1
3A3B 1169 _ISOFRAME_COUNTER::
3A3B 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)
0200 1185 __interrupt_vect:
0200 02 02 08 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)
0261 02 02 03 1201 ljmp __sdcc_program_startup
1202 ;--------------------------------------------------------
1203 ; Home
1204 ;--------------------------------------------------------
1205 .area HOME (CODE)
1206 .area HOME (CODE)
0203 1207 __sdcc_program_startup:
0203 12 1E 39 1208 lcall _main
1209 ; return from main will lock up
0206 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 ; -----------------------------------------
0264 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
0264 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 ; -----------------------------------------
0265 1467 _wait:
0265 AA 82 1468 mov r2,dpl
0267 AB 83 1469 mov r3,dph
1470 ; ../../include/ztex-utils.h:80: for (j=0; j<ms; j++)
0269 7C 00 1471 mov r4,#0x00
026B 7D 00 1472 mov r5,#0x00
026D 1473 00104$:
026D C3 1474 clr c
026E EC 1475 mov a,r4
026F 9A 1476 subb a,r2
0270 ED 1477 mov a,r5
0271 9B 1478 subb a,r3
0272 50 14 1479 jnc 00108$
1480 ; ../../include/ztex-utils.h:81: for (i=0; i<1200; i++);
0274 7E B0 1481 mov r6,#0xB0
0276 7F 04 1482 mov r7,#0x04
0278 1483 00103$:
0278 1E 1484 dec r6
0279 BE FF 01 1485 cjne r6,#0xff,00117$
027C 1F 1486 dec r7
027D 1487 00117$:
027D EE 1488 mov a,r6
027E 4F 1489 orl a,r7
027F 70 F7 1490 jnz 00103$
1491 ; ../../include/ztex-utils.h:80: for (j=0; j<ms; j++)
0281 0C 1492 inc r4
0282 BC 00 E8 1493 cjne r4,#0x00,00104$
0285 0D 1494 inc r5
0286 80 E5 1495 sjmp 00104$
0288 1496 00108$:
0288 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 ; -----------------------------------------
0289 1509 _uwait:
0289 AA 82 1510 mov r2,dpl
028B AB 83 1511 mov r3,dph
1512 ; ../../include/ztex-utils.h:90: for (j=0; j<us; j++)
028D 7C 00 1513 mov r4,#0x00
028F 7D 00 1514 mov r5,#0x00
0291 1515 00104$:
0291 C3 1516 clr c
0292 EC 1517 mov a,r4
0293 9A 1518 subb a,r2
0294 ED 1519 mov a,r5
0295 9B 1520 subb a,r3
0296 50 14 1521 jnc 00108$
1522 ; ../../include/ztex-utils.h:91: for (i=0; i<10; i++);
0298 7E 0A 1523 mov r6,#0x0A
029A 7F 00 1524 mov r7,#0x00
029C 1525 00103$:
029C 1E 1526 dec r6
029D BE FF 01 1527 cjne r6,#0xff,00117$
02A0 1F 1528 dec r7
02A1 1529 00117$:
02A1 EE 1530 mov a,r6
02A2 4F 1531 orl a,r7
02A3 70 F7 1532 jnz 00103$
1533 ; ../../include/ztex-utils.h:90: for (j=0; j<us; j++)
02A5 0C 1534 inc r4
02A6 BC 00 E8 1535 cjne r4,#0x00,00104$
02A9 0D 1536 inc r5
02AA 80 E5 1537 sjmp 00104$
02AC 1538 00108$:
02AC 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 ; -----------------------------------------
02AD 1548 _MEM_COPY1_int:
1549 ; ../../include/ztex-utils.h:110: __endasm;
1550
02AD 1551 020001$:
02AD 75 AF 07 1552 mov _AUTOPTRSETUP,#0x07
02B0 90 E6 7B 1553 mov dptr,#_XAUTODAT1
02B3 E0 1554 movx a,@dptr
02B4 90 E6 7C 1555 mov dptr,#_XAUTODAT2
02B7 F0 1556 movx @dptr,a
02B8 DA F3 1557 djnz r2, 020001$
02BA 22 1558 ret
1559
02BB 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 ; -----------------------------------------
02BC 1571 _i2c_waitWrite:
1572 ; ../../include/ztex-eeprom.h:44: for ( toc=0; toc<255 && !(I2CS & bmBIT0); toc++ );
02BC 7A 00 1573 mov r2,#0x00
02BE 1574 00105$:
02BE BA FF 00 1575 cjne r2,#0xFF,00116$
02C1 1576 00116$:
02C1 50 0B 1577 jnc 00108$
02C3 90 E6 78 1578 mov dptr,#_I2CS
02C6 E0 1579 movx a,@dptr
02C7 FB 1580 mov r3,a
02C8 20 E0 03 1581 jb acc.0,00108$
02CB 0A 1582 inc r2
02CC 80 F0 1583 sjmp 00105$
02CE 1584 00108$:
1585 ; ../../include/ztex-eeprom.h:45: i2csbuf = I2CS;
02CE 90 E6 78 1586 mov dptr,#_I2CS
02D1 E0 1587 movx a,@dptr
1588 ; ../../include/ztex-eeprom.h:46: if ( (i2csbuf & bmBIT2) || (!(i2csbuf & bmBIT1)) ) {
02D2 FA 1589 mov r2,a
02D3 20 E2 04 1590 jb acc.2,00101$
02D6 EA 1591 mov a,r2
02D7 20 E1 0B 1592 jb acc.1,00102$
02DA 1593 00101$:
1594 ; ../../include/ztex-eeprom.h:47: I2CS |= bmBIT6;
02DA 90 E6 78 1595 mov dptr,#_I2CS
02DD E0 1596 movx a,@dptr
02DE 44 40 1597 orl a,#0x40
02E0 F0 1598 movx @dptr,a
1599 ; ../../include/ztex-eeprom.h:48: return 1;
02E1 75 82 01 1600 mov dpl,#0x01
1601 ; ../../include/ztex-eeprom.h:50: return 0;
02E4 22 1602 ret
02E5 1603 00102$:
02E5 75 82 00 1604 mov dpl,#0x00
02E8 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 ; -----------------------------------------
02E9 1616 _i2c_waitRead:
1617 ; ../../include/ztex-eeprom.h:60: for ( toc=0; toc<255 && !(I2CS & bmBIT0); toc++ );
02E9 7A 00 1618 mov r2,#0x00
02EB 1619 00104$:
02EB BA FF 00 1620 cjne r2,#0xFF,00115$
02EE 1621 00115$:
02EE 50 0B 1622 jnc 00107$
02F0 90 E6 78 1623 mov dptr,#_I2CS
02F3 E0 1624 movx a,@dptr
02F4 FB 1625 mov r3,a
02F5 20 E0 03 1626 jb acc.0,00107$
02F8 0A 1627 inc r2
02F9 80 F0 1628 sjmp 00104$
02FB 1629 00107$:
1630 ; ../../include/ztex-eeprom.h:61: i2csbuf = I2CS;
02FB 90 E6 78 1631 mov dptr,#_I2CS
02FE E0 1632 movx a,@dptr
1633 ; ../../include/ztex-eeprom.h:62: if (i2csbuf & bmBIT2) {
02FF FA 1634 mov r2,a
0300 30 E2 0B 1635 jnb acc.2,00102$
1636 ; ../../include/ztex-eeprom.h:63: I2CS |= bmBIT6;
0303 90 E6 78 1637 mov dptr,#_I2CS
0306 E0 1638 movx a,@dptr
0307 44 40 1639 orl a,#0x40
0309 F0 1640 movx @dptr,a
1641 ; ../../include/ztex-eeprom.h:64: return 1;
030A 75 82 01 1642 mov dpl,#0x01
1643 ; ../../include/ztex-eeprom.h:66: return 0;
030D 22 1644 ret
030E 1645 00102$:
030E 75 82 00 1646 mov dpl,#0x00
0311 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 ; -----------------------------------------
0312 1657 _i2c_waitStart:
1658 ; ../../include/ztex-eeprom.h:76: for ( toc=0; toc<255; toc++ ) {
0312 7A 00 1659 mov r2,#0x00
0314 1660 00103$:
0314 BA FF 00 1661 cjne r2,#0xFF,00112$
0317 1662 00112$:
0317 50 0F 1663 jnc 00106$
1664 ; ../../include/ztex-eeprom.h:77: if ( ! (I2CS & bmBIT2) )
0319 90 E6 78 1665 mov dptr,#_I2CS
031C E0 1666 movx a,@dptr
031D FB 1667 mov r3,a
031E 20 E2 04 1668 jb acc.2,00105$
1669 ; ../../include/ztex-eeprom.h:78: return 0;
0321 75 82 00 1670 mov dpl,#0x00
0324 22 1671 ret
0325 1672 00105$:
1673 ; ../../include/ztex-eeprom.h:76: for ( toc=0; toc<255; toc++ ) {
0325 0A 1674 inc r2
0326 80 EC 1675 sjmp 00103$
0328 1676 00106$:
1677 ; ../../include/ztex-eeprom.h:80: return 1;
0328 75 82 01 1678 mov dpl,#0x01
032B 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 ; -----------------------------------------
032C 1689 _i2c_waitStop:
1690 ; ../../include/ztex-eeprom.h:90: for ( toc=0; toc<255; toc++ ) {
032C 7A 00 1691 mov r2,#0x00
032E 1692 00103$:
032E BA FF 00 1693 cjne r2,#0xFF,00112$
0331 1694 00112$:
0331 50 0F 1695 jnc 00106$
1696 ; ../../include/ztex-eeprom.h:91: if ( ! (I2CS & bmBIT6) )
0333 90 E6 78 1697 mov dptr,#_I2CS
0336 E0 1698 movx a,@dptr
0337 FB 1699 mov r3,a
0338 20 E6 04 1700 jb acc.6,00105$
1701 ; ../../include/ztex-eeprom.h:92: return 0;
033B 75 82 00 1702 mov dpl,#0x00
033E 22 1703 ret
033F 1704 00105$:
1705 ; ../../include/ztex-eeprom.h:90: for ( toc=0; toc<255; toc++ ) {
033F 0A 1706 inc r2
0340 80 EC 1707 sjmp 00103$
0342 1708 00106$:
1709 ; ../../include/ztex-eeprom.h:94: return 1;
0342 75 82 01 1710 mov dpl,#0x01
0345 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 ; -----------------------------------------
0346 1724 _eeprom_select:
0346 AA 82 1725 mov r2,dpl
1726 ; ../../include/ztex-eeprom.h:105: eeprom_select_start:
0348 C3 1727 clr c
0349 E4 1728 clr a
034A 95 08 1729 subb a,_eeprom_select_PARM_2
034C E4 1730 clr a
034D 33 1731 rlc a
034E FB 1732 mov r3,a
034F 1733 00101$:
1734 ; ../../include/ztex-eeprom.h:106: I2CS |= bmBIT7; // start bit
034F 90 E6 78 1735 mov dptr,#_I2CS
0352 E0 1736 movx a,@dptr
0353 44 80 1737 orl a,#0x80
0355 F0 1738 movx @dptr,a
1739 ; ../../include/ztex-eeprom.h:107: i2c_waitStart();
0356 C0 02 1740 push ar2
0358 C0 03 1741 push ar3
035A 12 03 12 1742 lcall _i2c_waitStart
035D D0 03 1743 pop ar3
035F D0 02 1744 pop ar2
1745 ; ../../include/ztex-eeprom.h:108: I2DAT = addr; // select device for writing
0361 90 E6 79 1746 mov dptr,#_I2DAT
0364 EA 1747 mov a,r2
0365 F0 1748 movx @dptr,a
1749 ; ../../include/ztex-eeprom.h:109: if ( ! i2c_waitWrite() ) {
0366 C0 02 1750 push ar2
0368 C0 03 1751 push ar3
036A 12 02 BC 1752 lcall _i2c_waitWrite
036D E5 82 1753 mov a,dpl
036F D0 03 1754 pop ar3
0371 D0 02 1755 pop ar2
0373 70 12 1756 jnz 00107$
1757 ; ../../include/ztex-eeprom.h:110: if ( stop ) {
0375 E5 09 1758 mov a,_eeprom_select_PARM_3
0377 60 0A 1759 jz 00103$
1760 ; ../../include/ztex-eeprom.h:111: I2CS |= bmBIT6;
0379 90 E6 78 1761 mov dptr,#_I2CS
037C E0 1762 movx a,@dptr
037D 44 40 1763 orl a,#0x40
037F F0 1764 movx @dptr,a
1765 ; ../../include/ztex-eeprom.h:112: i2c_waitStop();
0380 12 03 2C 1766 lcall _i2c_waitStop
0383 1767 00103$:
1768 ; ../../include/ztex-eeprom.h:114: return 0;
0383 75 82 00 1769 mov dpl,#0x00
0386 22 1770 ret
0387 1771 00107$:
1772 ; ../../include/ztex-eeprom.h:116: else if (toc<to) {
0387 EB 1773 mov a,r3
0388 60 10 1774 jz 00108$
1775 ; ../../include/ztex-eeprom.h:117: uwait(10);
038A 90 00 0A 1776 mov dptr,#0x000A
038D C0 02 1777 push ar2
038F C0 03 1778 push ar3
0391 12 02 89 1779 lcall _uwait
0394 D0 03 1780 pop ar3
0396 D0 02 1781 pop ar2
1782 ; ../../include/ztex-eeprom.h:118: goto eeprom_select_start;
0398 80 B5 1783 sjmp 00101$
039A 1784 00108$:
1785 ; ../../include/ztex-eeprom.h:120: if ( stop ) {
039A E5 09 1786 mov a,_eeprom_select_PARM_3
039C 60 08 1787 jz 00110$
1788 ; ../../include/ztex-eeprom.h:121: I2CS |= bmBIT6;
039E 90 E6 78 1789 mov dptr,#_I2CS
03A1 E0 1790 movx a,@dptr
03A2 FA 1791 mov r2,a
03A3 44 40 1792 orl a,#0x40
03A5 F0 1793 movx @dptr,a
03A6 1794 00110$:
1795 ; ../../include/ztex-eeprom.h:123: return 1;
03A6 75 82 01 1796 mov dpl,#0x01
03A9 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 ; -----------------------------------------
03AA 1811 _eeprom_read:
03AA AA 82 1812 mov r2,dpl
03AC AB 83 1813 mov r3,dph
1814 ; ../../include/ztex-eeprom.h:132: BYTE bytes = 0,i;
03AE 7C 00 1815 mov r4,#0x00
1816 ; ../../include/ztex-eeprom.h:134: if ( length == 0 )
03B0 E5 0C 1817 mov a,_eeprom_read_PARM_3
1818 ; ../../include/ztex-eeprom.h:135: return 0;
03B2 70 03 1819 jnz 00102$
03B4 F5 82 1820 mov dpl,a
03B6 22 1821 ret
03B7 1822 00102$:
1823 ; ../../include/ztex-eeprom.h:137: if ( eeprom_select(EEPROM_ADDR, 100,0) )
03B7 75 08 64 1824 mov _eeprom_select_PARM_2,#0x64
03BA 75 09 00 1825 mov _eeprom_select_PARM_3,#0x00
03BD 75 82 A2 1826 mov dpl,#0xA2
03C0 C0 02 1827 push ar2
03C2 C0 03 1828 push ar3
03C4 C0 04 1829 push ar4
03C6 12 03 46 1830 lcall _eeprom_select
03C9 E5 82 1831 mov a,dpl
03CB D0 04 1832 pop ar4
03CD D0 03 1833 pop ar3
03CF D0 02 1834 pop ar2
03D1 60 03 1835 jz 00134$
03D3 02 04 B0 1836 ljmp 00117$
03D6 1837 00134$:
1838 ; ../../include/ztex-eeprom.h:140: I2DAT = HI(addr); // write address
03D6 90 E6 79 1839 mov dptr,#_I2DAT
03D9 E5 0B 1840 mov a,(_eeprom_read_PARM_2 + 1)
03DB F0 1841 movx @dptr,a
1842 ; ../../include/ztex-eeprom.h:141: if ( i2c_waitWrite() ) goto eeprom_read_end;
03DC C0 02 1843 push ar2
03DE C0 03 1844 push ar3
03E0 C0 04 1845 push ar4
03E2 12 02 BC 1846 lcall _i2c_waitWrite
03E5 E5 82 1847 mov a,dpl
03E7 D0 04 1848 pop ar4
03E9 D0 03 1849 pop ar3
03EB D0 02 1850 pop ar2
03ED 60 03 1851 jz 00135$
03EF 02 04 B0 1852 ljmp 00117$
03F2 1853 00135$:
1854 ; ../../include/ztex-eeprom.h:142: I2DAT = LO(addr); // write address
03F2 90 E6 79 1855 mov dptr,#_I2DAT
03F5 E5 0A 1856 mov a,_eeprom_read_PARM_2
03F7 F0 1857 movx @dptr,a
1858 ; ../../include/ztex-eeprom.h:143: if ( i2c_waitWrite() ) goto eeprom_read_end;
03F8 C0 02 1859 push ar2
03FA C0 03 1860 push ar3
03FC C0 04 1861 push ar4
03FE 12 02 BC 1862 lcall _i2c_waitWrite
0401 E5 82 1863 mov a,dpl
0403 D0 04 1864 pop ar4
0405 D0 03 1865 pop ar3
0407 D0 02 1866 pop ar2
0409 60 03 1867 jz 00136$
040B 02 04 B0 1868 ljmp 00117$
040E 1869 00136$:
1870 ; ../../include/ztex-eeprom.h:144: I2CS |= bmBIT6;
040E 90 E6 78 1871 mov dptr,#_I2CS
0411 E0 1872 movx a,@dptr
0412 44 40 1873 orl a,#0x40
0414 F0 1874 movx @dptr,a
1875 ; ../../include/ztex-eeprom.h:145: i2c_waitStop();
0415 C0 02 1876 push ar2
0417 C0 03 1877 push ar3
0419 C0 04 1878 push ar4
041B 12 03 2C 1879 lcall _i2c_waitStop
1880 ; ../../include/ztex-eeprom.h:147: I2CS |= bmBIT7; // start bit
041E 90 E6 78 1881 mov dptr,#_I2CS
0421 E0 1882 movx a,@dptr
0422 44 80 1883 orl a,#0x80
0424 F0 1884 movx @dptr,a
1885 ; ../../include/ztex-eeprom.h:148: i2c_waitStart();
0425 12 03 12 1886 lcall _i2c_waitStart
1887 ; ../../include/ztex-eeprom.h:149: I2DAT = EEPROM_ADDR | 1; // select device for reading
0428 90 E6 79 1888 mov dptr,#_I2DAT
042B 74 A3 1889 mov a,#0xA3
042D F0 1890 movx @dptr,a
1891 ; ../../include/ztex-eeprom.h:150: if ( i2c_waitWrite() ) goto eeprom_read_end;
042E 12 02 BC 1892 lcall _i2c_waitWrite
0431 E5 82 1893 mov a,dpl
0433 D0 04 1894 pop ar4
0435 D0 03 1895 pop ar3
0437 D0 02 1896 pop ar2
0439 70 75 1897 jnz 00117$
1898 ; ../../include/ztex-eeprom.h:152: *buf = I2DAT; // dummy read
043B 90 E6 79 1899 mov dptr,#_I2DAT
043E E0 1900 movx a,@dptr
043F 8A 82 1901 mov dpl,r2
0441 8B 83 1902 mov dph,r3
0443 F0 1903 movx @dptr,a
1904 ; ../../include/ztex-eeprom.h:153: if ( i2c_waitRead()) goto eeprom_read_end;
0444 C0 02 1905 push ar2
0446 C0 03 1906 push ar3
0448 C0 04 1907 push ar4
044A 12 02 E9 1908 lcall _i2c_waitRead
044D E5 82 1909 mov a,dpl
044F D0 04 1910 pop ar4
0451 D0 03 1911 pop ar3
0453 D0 02 1912 pop ar2
0455 70 59 1913 jnz 00117$
0457 FD 1914 mov r5,a
0458 1915 00118$:
1916 ; ../../include/ztex-eeprom.h:154: for (; bytes<length; bytes++ ) {
0458 C3 1917 clr c
0459 ED 1918 mov a,r5
045A 95 0C 1919 subb a,_eeprom_read_PARM_3
045C 50 2A 1920 jnc 00121$
1921 ; ../../include/ztex-eeprom.h:155: *buf = I2DAT; // read data
045E 90 E6 79 1922 mov dptr,#_I2DAT
0461 E0 1923 movx a,@dptr
0462 8A 82 1924 mov dpl,r2
0464 8B 83 1925 mov dph,r3
0466 F0 1926 movx @dptr,a
0467 A3 1927 inc dptr
0468 AA 82 1928 mov r2,dpl
046A 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;
046C C0 02 1932 push ar2
046E C0 03 1933 push ar3
0470 C0 04 1934 push ar4
0472 C0 05 1935 push ar5
0474 12 02 E9 1936 lcall _i2c_waitRead
0477 E5 82 1937 mov a,dpl
0479 D0 05 1938 pop ar5
047B D0 04 1939 pop ar4
047D D0 03 1940 pop ar3
047F D0 02 1941 pop ar2
0481 70 2D 1942 jnz 00117$
1943 ; ../../include/ztex-eeprom.h:154: for (; bytes<length; bytes++ ) {
0483 0D 1944 inc r5
0484 8D 04 1945 mov ar4,r5
0486 80 D0 1946 sjmp 00118$
0488 1947 00121$:
1948 ; ../../include/ztex-eeprom.h:160: I2CS |= bmBIT5; // no ACK
0488 90 E6 78 1949 mov dptr,#_I2CS
048B E0 1950 movx a,@dptr
048C 44 20 1951 orl a,#0x20
048E F0 1952 movx @dptr,a
1953 ; ../../include/ztex-eeprom.h:161: i = I2DAT; // dummy read
048F 90 E6 79 1954 mov dptr,#_I2DAT
0492 E0 1955 movx a,@dptr
1956 ; ../../include/ztex-eeprom.h:162: if ( i2c_waitRead()) goto eeprom_read_end;
0493 C0 04 1957 push ar4
0495 12 02 E9 1958 lcall _i2c_waitRead
0498 E5 82 1959 mov a,dpl
049A D0 04 1960 pop ar4
049C 70 12 1961 jnz 00117$
1962 ; ../../include/ztex-eeprom.h:164: I2CS |= bmBIT6; // stop bit
049E 90 E6 78 1963 mov dptr,#_I2CS
04A1 E0 1964 movx a,@dptr
04A2 44 40 1965 orl a,#0x40
04A4 F0 1966 movx @dptr,a
1967 ; ../../include/ztex-eeprom.h:165: i = I2DAT; // dummy read
04A5 90 E6 79 1968 mov dptr,#_I2DAT
04A8 E0 1969 movx a,@dptr
1970 ; ../../include/ztex-eeprom.h:166: i2c_waitStop();
04A9 C0 04 1971 push ar4
04AB 12 03 2C 1972 lcall _i2c_waitStop
04AE D0 04 1973 pop ar4
1974 ; ../../include/ztex-eeprom.h:168: eeprom_read_end:
04B0 1975 00117$:
1976 ; ../../include/ztex-eeprom.h:169: return bytes;
04B0 8C 82 1977 mov dpl,r4
04B2 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 ; -----------------------------------------
04B3 1991 _eeprom_write:
04B3 AA 82 1992 mov r2,dpl
04B5 AB 83 1993 mov r3,dph
1994 ; ../../include/ztex-eeprom.h:179: BYTE bytes = 0;
04B7 7C 00 1995 mov r4,#0x00
1996 ; ../../include/ztex-eeprom.h:181: if ( length == 0 )
04B9 E5 0F 1997 mov a,_eeprom_write_PARM_3
1998 ; ../../include/ztex-eeprom.h:182: return 0;
04BB 70 03 1999 jnz 00102$
04BD F5 82 2000 mov dpl,a
04BF 22 2001 ret
04C0 2002 00102$:
2003 ; ../../include/ztex-eeprom.h:184: if ( eeprom_select(EEPROM_ADDR, 100,0) )
04C0 75 08 64 2004 mov _eeprom_select_PARM_2,#0x64
04C3 75 09 00 2005 mov _eeprom_select_PARM_3,#0x00
04C6 75 82 A2 2006 mov dpl,#0xA2
04C9 C0 02 2007 push ar2
04CB C0 03 2008 push ar3
04CD C0 04 2009 push ar4
04CF 12 03 46 2010 lcall _eeprom_select
04D2 E5 82 2011 mov a,dpl
04D4 D0 04 2012 pop ar4
04D6 D0 03 2013 pop ar3
04D8 D0 02 2014 pop ar2
04DA 60 03 2015 jz 00125$
04DC 02 05 70 2016 ljmp 00111$
04DF 2017 00125$:
2018 ; ../../include/ztex-eeprom.h:187: I2DAT = HI(addr); // write address
04DF 90 E6 79 2019 mov dptr,#_I2DAT
04E2 E5 0E 2020 mov a,(_eeprom_write_PARM_2 + 1)
04E4 F0 2021 movx @dptr,a
2022 ; ../../include/ztex-eeprom.h:188: if ( i2c_waitWrite() ) goto eeprom_write_end;
04E5 C0 02 2023 push ar2
04E7 C0 03 2024 push ar3
04E9 C0 04 2025 push ar4
04EB 12 02 BC 2026 lcall _i2c_waitWrite
04EE E5 82 2027 mov a,dpl
04F0 D0 04 2028 pop ar4
04F2 D0 03 2029 pop ar3
04F4 D0 02 2030 pop ar2
04F6 60 03 2031 jz 00126$
04F8 02 05 70 2032 ljmp 00111$
04FB 2033 00126$:
2034 ; ../../include/ztex-eeprom.h:189: I2DAT = LO(addr); // write address
04FB 90 E6 79 2035 mov dptr,#_I2DAT
04FE E5 0D 2036 mov a,_eeprom_write_PARM_2
0500 F0 2037 movx @dptr,a
2038 ; ../../include/ztex-eeprom.h:190: if ( i2c_waitWrite() ) goto eeprom_write_end;
0501 C0 02 2039 push ar2
0503 C0 03 2040 push ar3
0505 C0 04 2041 push ar4
0507 12 02 BC 2042 lcall _i2c_waitWrite
050A E5 82 2043 mov a,dpl
050C D0 04 2044 pop ar4
050E D0 03 2045 pop ar3
0510 D0 02 2046 pop ar2
0512 70 5C 2047 jnz 00111$
0514 FD 2048 mov r5,a
0515 2049 00112$:
2050 ; ../../include/ztex-eeprom.h:192: for (; bytes<length; bytes++ ) {
0515 C3 2051 clr c
0516 ED 2052 mov a,r5
0517 95 0F 2053 subb a,_eeprom_write_PARM_3
0519 50 47 2054 jnc 00115$
2055 ; ../../include/ztex-eeprom.h:193: I2DAT = *buf; // write data
051B 8A 82 2056 mov dpl,r2
051D 8B 83 2057 mov dph,r3
051F E0 2058 movx a,@dptr
0520 FE 2059 mov r6,a
0521 A3 2060 inc dptr
0522 AA 82 2061 mov r2,dpl
0524 AB 83 2062 mov r3,dph
0526 90 E6 79 2063 mov dptr,#_I2DAT
0529 EE 2064 mov a,r6
052A F0 2065 movx @dptr,a
2066 ; ../../include/ztex-eeprom.h:194: eeprom_write_checksum += *buf;
052B 90 3A 04 2067 mov dptr,#_eeprom_write_checksum
052E E0 2068 movx a,@dptr
052F FF 2069 mov r7,a
0530 EE 2070 mov a,r6
0531 2F 2071 add a,r7
0532 F0 2072 movx @dptr,a
2073 ; ../../include/ztex-eeprom.h:195: buf++;
2074 ; ../../include/ztex-eeprom.h:196: eeprom_write_bytes+=1;
0533 90 3A 02 2075 mov dptr,#_eeprom_write_bytes
0536 E0 2076 movx a,@dptr
0537 FE 2077 mov r6,a
0538 A3 2078 inc dptr
0539 E0 2079 movx a,@dptr
053A FF 2080 mov r7,a
053B 90 3A 02 2081 mov dptr,#_eeprom_write_bytes
053E 74 01 2082 mov a,#0x01
0540 2E 2083 add a,r6
0541 F0 2084 movx @dptr,a
0542 E4 2085 clr a
0543 3F 2086 addc a,r7
0544 A3 2087 inc dptr
0545 F0 2088 movx @dptr,a
2089 ; ../../include/ztex-eeprom.h:197: if ( i2c_waitWrite() ) goto eeprom_write_end;
0546 C0 02 2090 push ar2
0548 C0 03 2091 push ar3
054A C0 04 2092 push ar4
054C C0 05 2093 push ar5
054E 12 02 BC 2094 lcall _i2c_waitWrite
0551 E5 82 2095 mov a,dpl
0553 D0 05 2096 pop ar5
0555 D0 04 2097 pop ar4
0557 D0 03 2098 pop ar3
0559 D0 02 2099 pop ar2
055B 70 13 2100 jnz 00111$
2101 ; ../../include/ztex-eeprom.h:192: for (; bytes<length; bytes++ ) {
055D 0D 2102 inc r5
055E 8D 04 2103 mov ar4,r5
0560 80 B3 2104 sjmp 00112$
0562 2105 00115$:
2106 ; ../../include/ztex-eeprom.h:199: I2CS |= bmBIT6; // stop bit
0562 90 E6 78 2107 mov dptr,#_I2CS
0565 E0 2108 movx a,@dptr
0566 44 40 2109 orl a,#0x40
0568 F0 2110 movx @dptr,a
2111 ; ../../include/ztex-eeprom.h:200: i2c_waitStop();
0569 C0 04 2112 push ar4
056B 12 03 2C 2113 lcall _i2c_waitStop
056E D0 04 2114 pop ar4
2115 ; ../../include/ztex-eeprom.h:202: eeprom_write_end:
0570 2116 00111$:
2117 ; ../../include/ztex-eeprom.h:203: return bytes;
0570 8C 82 2118 mov dpl,r4
0572 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 ; -----------------------------------------
0573 2130 _eeprom_read_ep0:
2131 ; ../../include/ztex-eeprom.h:211: b = ep0_payload_transfer;
0573 90 3A 38 2132 mov dptr,#_ep0_payload_transfer
0576 E0 2133 movx a,@dptr
0577 FA 2134 mov r2,a
2135 ; ../../include/ztex-eeprom.h:212: i = eeprom_read(EP0BUF, eeprom_addr, b);
0578 90 3A 00 2136 mov dptr,#_eeprom_addr
057B E0 2137 movx a,@dptr
057C F5 0A 2138 mov _eeprom_read_PARM_2,a
057E A3 2139 inc dptr
057F E0 2140 movx a,@dptr
0580 F5 0B 2141 mov (_eeprom_read_PARM_2 + 1),a
0582 8A 0C 2142 mov _eeprom_read_PARM_3,r2
0584 90 E7 40 2143 mov dptr,#_EP0BUF
0587 C0 02 2144 push ar2
0589 12 03 AA 2145 lcall _eeprom_read
058C AB 82 2146 mov r3,dpl
058E D0 02 2147 pop ar2
2148 ; ../../include/ztex-eeprom.h:213: eeprom_addr += b;
0590 7C 00 2149 mov r4,#0x00
0592 90 3A 00 2150 mov dptr,#_eeprom_addr
0595 E0 2151 movx a,@dptr
0596 FD 2152 mov r5,a
0597 A3 2153 inc dptr
0598 E0 2154 movx a,@dptr
0599 FE 2155 mov r6,a
059A 90 3A 00 2156 mov dptr,#_eeprom_addr
059D EA 2157 mov a,r2
059E 2D 2158 add a,r5
059F F0 2159 movx @dptr,a
05A0 EC 2160 mov a,r4
05A1 3E 2161 addc a,r6
05A2 A3 2162 inc dptr
05A3 F0 2163 movx @dptr,a
2164 ; ../../include/ztex-eeprom.h:214: return i;
05A4 8B 82 2165 mov dpl,r3
05A6 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 ; -----------------------------------------
05A7 2176 _eeprom_write_ep0:
05A7 AA 82 2177 mov r2,dpl
2178 ; ../../include/ztex-eeprom.h:231: eeprom_write(EP0BUF, eeprom_addr, length);
05A9 90 3A 00 2179 mov dptr,#_eeprom_addr
05AC E0 2180 movx a,@dptr
05AD F5 0D 2181 mov _eeprom_write_PARM_2,a
05AF A3 2182 inc dptr
05B0 E0 2183 movx a,@dptr
05B1 F5 0E 2184 mov (_eeprom_write_PARM_2 + 1),a
05B3 8A 0F 2185 mov _eeprom_write_PARM_3,r2
05B5 90 E7 40 2186 mov dptr,#_EP0BUF
05B8 C0 02 2187 push ar2
05BA 12 04 B3 2188 lcall _eeprom_write
05BD D0 02 2189 pop ar2
2190 ; ../../include/ztex-eeprom.h:232: eeprom_addr += length;
05BF 7B 00 2191 mov r3,#0x00
05C1 90 3A 00 2192 mov dptr,#_eeprom_addr
05C4 E0 2193 movx a,@dptr
05C5 FC 2194 mov r4,a
05C6 A3 2195 inc dptr
05C7 E0 2196 movx a,@dptr
05C8 FD 2197 mov r5,a
05C9 90 3A 00 2198 mov dptr,#_eeprom_addr
05CC EA 2199 mov a,r2
05CD 2C 2200 add a,r4
05CE F0 2201 movx @dptr,a
05CF EB 2202 mov a,r3
05D0 3D 2203 addc a,r5
05D1 A3 2204 inc dptr
05D2 F0 2205 movx @dptr,a
05D3 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 ; -----------------------------------------
05D4 2220 _mac_eeprom_read:
05D4 AA 82 2221 mov r2,dpl
05D6 AB 83 2222 mov r3,dph
2223 ; ../../include/ztex-eeprom.h:273: BYTE bytes = 0,i;
05D8 7C 00 2224 mov r4,#0x00
2225 ; ../../include/ztex-eeprom.h:275: if ( length == 0 )
05DA E5 11 2226 mov a,_mac_eeprom_read_PARM_3
2227 ; ../../include/ztex-eeprom.h:276: return 0;
05DC 70 03 2228 jnz 00102$
05DE F5 82 2229 mov dpl,a
05E0 22 2230 ret
05E1 2231 00102$:
2232 ; ../../include/ztex-eeprom.h:278: if ( eeprom_select(EEPROM_MAC_ADDR, 100,0) )
05E1 75 08 64 2233 mov _eeprom_select_PARM_2,#0x64
05E4 75 09 00 2234 mov _eeprom_select_PARM_3,#0x00
05E7 75 82 A6 2235 mov dpl,#0xA6
05EA C0 02 2236 push ar2
05EC C0 03 2237 push ar3
05EE C0 04 2238 push ar4
05F0 12 03 46 2239 lcall _eeprom_select
05F3 E5 82 2240 mov a,dpl
05F5 D0 04 2241 pop ar4
05F7 D0 03 2242 pop ar3
05F9 D0 02 2243 pop ar2
05FB 60 03 2244 jz 00131$
05FD 02 06 BE 2245 ljmp 00115$
0600 2246 00131$:
2247 ; ../../include/ztex-eeprom.h:281: I2DAT = addr; // write address
0600 90 E6 79 2248 mov dptr,#_I2DAT
0603 E5 10 2249 mov a,_mac_eeprom_read_PARM_2
0605 F0 2250 movx @dptr,a
2251 ; ../../include/ztex-eeprom.h:282: if ( i2c_waitWrite() ) goto mac_eeprom_read_end;
0606 C0 02 2252 push ar2
0608 C0 03 2253 push ar3
060A C0 04 2254 push ar4
060C 12 02 BC 2255 lcall _i2c_waitWrite
060F E5 82 2256 mov a,dpl
0611 D0 04 2257 pop ar4
0613 D0 03 2258 pop ar3
0615 D0 02 2259 pop ar2
0617 60 03 2260 jz 00132$
0619 02 06 BE 2261 ljmp 00115$
061C 2262 00132$:
2263 ; ../../include/ztex-eeprom.h:283: I2CS |= bmBIT6;
061C 90 E6 78 2264 mov dptr,#_I2CS
061F E0 2265 movx a,@dptr
0620 44 40 2266 orl a,#0x40
0622 F0 2267 movx @dptr,a
2268 ; ../../include/ztex-eeprom.h:284: i2c_waitStop();
0623 C0 02 2269 push ar2
0625 C0 03 2270 push ar3
0627 C0 04 2271 push ar4
0629 12 03 2C 2272 lcall _i2c_waitStop
2273 ; ../../include/ztex-eeprom.h:286: I2CS |= bmBIT7; // start bit
062C 90 E6 78 2274 mov dptr,#_I2CS
062F E0 2275 movx a,@dptr
0630 44 80 2276 orl a,#0x80
0632 F0 2277 movx @dptr,a
2278 ; ../../include/ztex-eeprom.h:287: i2c_waitStart();
0633 12 03 12 2279 lcall _i2c_waitStart
2280 ; ../../include/ztex-eeprom.h:288: I2DAT = EEPROM_MAC_ADDR | 1; // select device for reading
0636 90 E6 79 2281 mov dptr,#_I2DAT
0639 74 A7 2282 mov a,#0xA7
063B F0 2283 movx @dptr,a
2284 ; ../../include/ztex-eeprom.h:289: if ( i2c_waitWrite() ) goto mac_eeprom_read_end;
063C 12 02 BC 2285 lcall _i2c_waitWrite
063F E5 82 2286 mov a,dpl
0641 D0 04 2287 pop ar4
0643 D0 03 2288 pop ar3
0645 D0 02 2289 pop ar2
0647 70 75 2290 jnz 00115$
2291 ; ../../include/ztex-eeprom.h:291: *buf = I2DAT; // dummy read
0649 90 E6 79 2292 mov dptr,#_I2DAT
064C E0 2293 movx a,@dptr
064D 8A 82 2294 mov dpl,r2
064F 8B 83 2295 mov dph,r3
0651 F0 2296 movx @dptr,a
2297 ; ../../include/ztex-eeprom.h:292: if ( i2c_waitRead()) goto mac_eeprom_read_end;
0652 C0 02 2298 push ar2
0654 C0 03 2299 push ar3
0656 C0 04 2300 push ar4
0658 12 02 E9 2301 lcall _i2c_waitRead
065B E5 82 2302 mov a,dpl
065D D0 04 2303 pop ar4
065F D0 03 2304 pop ar3
0661 D0 02 2305 pop ar2
0663 70 59 2306 jnz 00115$
0665 FD 2307 mov r5,a
0666 2308 00116$:
2309 ; ../../include/ztex-eeprom.h:293: for (; bytes<length; bytes++ ) {
0666 C3 2310 clr c
0667 ED 2311 mov a,r5
0668 95 11 2312 subb a,_mac_eeprom_read_PARM_3
066A 50 2A 2313 jnc 00119$
2314 ; ../../include/ztex-eeprom.h:294: *buf = I2DAT; // read data
066C 90 E6 79 2315 mov dptr,#_I2DAT
066F E0 2316 movx a,@dptr
0670 8A 82 2317 mov dpl,r2
0672 8B 83 2318 mov dph,r3
0674 F0 2319 movx @dptr,a
0675 A3 2320 inc dptr
0676 AA 82 2321 mov r2,dpl
0678 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;
067A C0 02 2325 push ar2
067C C0 03 2326 push ar3
067E C0 04 2327 push ar4
0680 C0 05 2328 push ar5
0682 12 02 E9 2329 lcall _i2c_waitRead
0685 E5 82 2330 mov a,dpl
0687 D0 05 2331 pop ar5
0689 D0 04 2332 pop ar4
068B D0 03 2333 pop ar3
068D D0 02 2334 pop ar2
068F 70 2D 2335 jnz 00115$
2336 ; ../../include/ztex-eeprom.h:293: for (; bytes<length; bytes++ ) {
0691 0D 2337 inc r5
0692 8D 04 2338 mov ar4,r5
0694 80 D0 2339 sjmp 00116$
0696 2340 00119$:
2341 ; ../../include/ztex-eeprom.h:299: I2CS |= bmBIT5; // no ACK
0696 90 E6 78 2342 mov dptr,#_I2CS
0699 E0 2343 movx a,@dptr
069A 44 20 2344 orl a,#0x20
069C F0 2345 movx @dptr,a
2346 ; ../../include/ztex-eeprom.h:300: i = I2DAT; // dummy read
069D 90 E6 79 2347 mov dptr,#_I2DAT
06A0 E0 2348 movx a,@dptr
2349 ; ../../include/ztex-eeprom.h:301: if ( i2c_waitRead()) goto mac_eeprom_read_end;
06A1 C0 04 2350 push ar4
06A3 12 02 E9 2351 lcall _i2c_waitRead
06A6 E5 82 2352 mov a,dpl
06A8 D0 04 2353 pop ar4
06AA 70 12 2354 jnz 00115$
2355 ; ../../include/ztex-eeprom.h:303: I2CS |= bmBIT6; // stop bit
06AC 90 E6 78 2356 mov dptr,#_I2CS
06AF E0 2357 movx a,@dptr
06B0 44 40 2358 orl a,#0x40
06B2 F0 2359 movx @dptr,a
2360 ; ../../include/ztex-eeprom.h:304: i = I2DAT; // dummy read
06B3 90 E6 79 2361 mov dptr,#_I2DAT
06B6 E0 2362 movx a,@dptr
2363 ; ../../include/ztex-eeprom.h:305: i2c_waitStop();
06B7 C0 04 2364 push ar4
06B9 12 03 2C 2365 lcall _i2c_waitStop
06BC D0 04 2366 pop ar4
2367 ; ../../include/ztex-eeprom.h:307: mac_eeprom_read_end:
06BE 2368 00115$:
2369 ; ../../include/ztex-eeprom.h:308: return bytes;
06BE 8C 82 2370 mov dpl,r4
06C0 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 ; -----------------------------------------
06C1 2384 _mac_eeprom_write:
06C1 AA 82 2385 mov r2,dpl
06C3 AB 83 2386 mov r3,dph
2387 ; ../../include/ztex-eeprom.h:318: BYTE bytes = 0;
06C5 7C 00 2388 mov r4,#0x00
2389 ; ../../include/ztex-eeprom.h:320: if ( length == 0 )
06C7 E5 13 2390 mov a,_mac_eeprom_write_PARM_3
2391 ; ../../include/ztex-eeprom.h:321: return 0;
06C9 70 03 2392 jnz 00102$
06CB F5 82 2393 mov dpl,a
06CD 22 2394 ret
06CE 2395 00102$:
2396 ; ../../include/ztex-eeprom.h:323: if ( eeprom_select(EEPROM_MAC_ADDR, 100,0) )
06CE 75 08 64 2397 mov _eeprom_select_PARM_2,#0x64
06D1 75 09 00 2398 mov _eeprom_select_PARM_3,#0x00
06D4 75 82 A6 2399 mov dpl,#0xA6
06D7 C0 02 2400 push ar2
06D9 C0 03 2401 push ar3
06DB C0 04 2402 push ar4
06DD 12 03 46 2403 lcall _eeprom_select
06E0 E5 82 2404 mov a,dpl
06E2 D0 04 2405 pop ar4
06E4 D0 03 2406 pop ar3
06E6 D0 02 2407 pop ar2
06E8 60 03 2408 jz 00132$
06EA 02 07 B0 2409 ljmp 00119$
06ED 2410 00132$:
2411 ; ../../include/ztex-eeprom.h:326: I2DAT = addr; // write address
06ED 90 E6 79 2412 mov dptr,#_I2DAT
06F0 E5 12 2413 mov a,_mac_eeprom_write_PARM_2
06F2 F0 2414 movx @dptr,a
2415 ; ../../include/ztex-eeprom.h:327: if ( i2c_waitWrite() ) goto mac_eeprom_write_end;
06F3 C0 02 2416 push ar2
06F5 C0 03 2417 push ar3
06F7 C0 04 2418 push ar4
06F9 12 02 BC 2419 lcall _i2c_waitWrite
06FC E5 82 2420 mov a,dpl
06FE D0 04 2421 pop ar4
0700 D0 03 2422 pop ar3
0702 D0 02 2423 pop ar2
0704 60 03 2424 jz 00133$
0706 02 07 B0 2425 ljmp 00119$
0709 2426 00133$:
2427 ; ../../include/ztex-eeprom.h:329: while ( bytes<length ) {
0709 AD 12 2428 mov r5,_mac_eeprom_write_PARM_2
070B 7E 00 2429 mov r6,#0x00
070D 2430 00116$:
070D C3 2431 clr c
070E EE 2432 mov a,r6
070F 95 13 2433 subb a,_mac_eeprom_write_PARM_3
0711 40 03 2434 jc 00134$
0713 02 07 A2 2435 ljmp 00118$
0716 2436 00134$:
2437 ; ../../include/ztex-eeprom.h:330: I2DAT = *buf; // write data
0716 8A 82 2438 mov dpl,r2
0718 8B 83 2439 mov dph,r3
071A E0 2440 movx a,@dptr
071B FF 2441 mov r7,a
071C A3 2442 inc dptr
071D AA 82 2443 mov r2,dpl
071F AB 83 2444 mov r3,dph
0721 90 E6 79 2445 mov dptr,#_I2DAT
0724 EF 2446 mov a,r7
0725 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;
0726 C0 02 2450 push ar2
0728 C0 03 2451 push ar3
072A C0 04 2452 push ar4
072C C0 05 2453 push ar5
072E C0 06 2454 push ar6
0730 12 02 BC 2455 lcall _i2c_waitWrite
0733 E5 82 2456 mov a,dpl
0735 D0 06 2457 pop ar6
0737 D0 05 2458 pop ar5
0739 D0 04 2459 pop ar4
073B D0 03 2460 pop ar3
073D D0 02 2461 pop ar2
073F 70 6F 2462 jnz 00119$
2463 ; ../../include/ztex-eeprom.h:334: addr++;
0741 0D 2464 inc r5
0742 8D 12 2465 mov _mac_eeprom_write_PARM_2,r5
2466 ; ../../include/ztex-eeprom.h:335: bytes++;
0744 0E 2467 inc r6
0745 8E 04 2468 mov ar4,r6
2469 ; ../../include/ztex-eeprom.h:336: if ( ( (addr & 8) == 0 ) && ( bytes<length ) ) {
0747 ED 2470 mov a,r5
0748 20 E3 C2 2471 jb acc.3,00116$
074B C3 2472 clr c
074C EE 2473 mov a,r6
074D 95 13 2474 subb a,_mac_eeprom_write_PARM_3
074F 50 BC 2475 jnc 00116$
2476 ; ../../include/ztex-eeprom.h:337: I2CS |= bmBIT6; // stop bit
0751 90 E6 78 2477 mov dptr,#_I2CS
0754 E0 2478 movx a,@dptr
0755 44 40 2479 orl a,#0x40
0757 F0 2480 movx @dptr,a
2481 ; ../../include/ztex-eeprom.h:338: i2c_waitStop();
0758 C0 02 2482 push ar2
075A C0 03 2483 push ar3
075C C0 04 2484 push ar4
075E C0 05 2485 push ar5
0760 C0 06 2486 push ar6
0762 12 03 2C 2487 lcall _i2c_waitStop
2488 ; ../../include/ztex-eeprom.h:340: if ( eeprom_select(EEPROM_MAC_ADDR, 100,0) )
0765 75 08 64 2489 mov _eeprom_select_PARM_2,#0x64
0768 75 09 00 2490 mov _eeprom_select_PARM_3,#0x00
076B 75 82 A6 2491 mov dpl,#0xA6
076E 12 03 46 2492 lcall _eeprom_select
0771 E5 82 2493 mov a,dpl
0773 D0 06 2494 pop ar6
0775 D0 05 2495 pop ar5
0777 D0 04 2496 pop ar4
0779 D0 03 2497 pop ar3
077B D0 02 2498 pop ar2
077D 70 31 2499 jnz 00119$
2500 ; ../../include/ztex-eeprom.h:343: I2DAT = addr; // write address
077F 90 E6 79 2501 mov dptr,#_I2DAT
0782 ED 2502 mov a,r5
0783 F0 2503 movx @dptr,a
2504 ; ../../include/ztex-eeprom.h:344: if ( i2c_waitWrite() ) goto mac_eeprom_write_end;
0784 C0 02 2505 push ar2
0786 C0 03 2506 push ar3
0788 C0 04 2507 push ar4
078A C0 05 2508 push ar5
078C C0 06 2509 push ar6
078E 12 02 BC 2510 lcall _i2c_waitWrite
0791 E5 82 2511 mov a,dpl
0793 D0 06 2512 pop ar6
0795 D0 05 2513 pop ar5
0797 D0 04 2514 pop ar4
0799 D0 03 2515 pop ar3
079B D0 02 2516 pop ar2
079D 70 11 2517 jnz 00119$
079F 02 07 0D 2518 ljmp 00116$
07A2 2519 00118$:
2520 ; ../../include/ztex-eeprom.h:347: I2CS |= bmBIT6; // stop bit
07A2 90 E6 78 2521 mov dptr,#_I2CS
07A5 E0 2522 movx a,@dptr
07A6 44 40 2523 orl a,#0x40
07A8 F0 2524 movx @dptr,a
2525 ; ../../include/ztex-eeprom.h:348: i2c_waitStop();
07A9 C0 04 2526 push ar4
07AB 12 03 2C 2527 lcall _i2c_waitStop
07AE D0 04 2528 pop ar4
2529 ; ../../include/ztex-eeprom.h:350: mac_eeprom_write_end:
07B0 2530 00119$:
2531 ; ../../include/ztex-eeprom.h:351: mac_eeprom_addr = addr;
07B0 90 3A 05 2532 mov dptr,#_mac_eeprom_addr
07B3 E5 12 2533 mov a,_mac_eeprom_write_PARM_2
07B5 F0 2534 movx @dptr,a
2535 ; ../../include/ztex-eeprom.h:352: return bytes;
07B6 8C 82 2536 mov dpl,r4
07B8 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 ; -----------------------------------------
07B9 2548 _mac_eeprom_read_ep0:
2549 ; ../../include/ztex-eeprom.h:360: b = ep0_payload_transfer;
07B9 90 3A 38 2550 mov dptr,#_ep0_payload_transfer
07BC E0 2551 movx a,@dptr
07BD FA 2552 mov r2,a
2553 ; ../../include/ztex-eeprom.h:361: i = mac_eeprom_read(EP0BUF, mac_eeprom_addr, b);
07BE 90 3A 05 2554 mov dptr,#_mac_eeprom_addr
07C1 E0 2555 movx a,@dptr
07C2 F5 10 2556 mov _mac_eeprom_read_PARM_2,a
07C4 8A 11 2557 mov _mac_eeprom_read_PARM_3,r2
07C6 90 E7 40 2558 mov dptr,#_EP0BUF
07C9 C0 02 2559 push ar2
07CB 12 05 D4 2560 lcall _mac_eeprom_read
07CE AB 82 2561 mov r3,dpl
07D0 D0 02 2562 pop ar2
2563 ; ../../include/ztex-eeprom.h:362: mac_eeprom_addr += b;
07D2 90 3A 05 2564 mov dptr,#_mac_eeprom_addr
07D5 E0 2565 movx a,@dptr
07D6 FC 2566 mov r4,a
07D7 EA 2567 mov a,r2
07D8 2C 2568 add a,r4
07D9 F0 2569 movx @dptr,a
2570 ; ../../include/ztex-eeprom.h:363: return i;
07DA 8B 82 2571 mov dpl,r3
07DC 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 ; -----------------------------------------
07DD 2582 _spi_clocks:
2583 ; ../../include/ztex-flash2.h:110: }
2584
07DD AA 82 2585 mov r2,dpl
07DF 2586 010014$:
07DF D2 80 2587 setb _IOA0
07E1 00 2588 nop
07E2 00 2589 nop
07E3 00 2590 nop
07E4 C2 80 2591 clr _IOA0
07E6 DA F7 2592 djnz r2,010014$
2593 ; # 109 "../../include/ztex-flash2.h"
07E8 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 ; -----------------------------------------
07E9 2603 _flash_read_byte:
2604 ; ../../include/ztex-flash2.h:169: void flash_read(__xdata BYTE *buf, BYTE len) {
2605
2606
07E9 A2 A0 2607 mov c,_IOC0
2608 ; # 121 "../../include/ztex-flash2.h"
07EB D2 80 2609 setb _IOA0
07ED 33 2610 rlc a
07EE C2 80 2611 clr _IOA0
2612
07F0 A2 A0 2613 mov c,_IOC0
2614 ; # 126 "../../include/ztex-flash2.h"
07F2 D2 80 2615 setb _IOA0
07F4 33 2616 rlc a
07F5 C2 80 2617 clr _IOA0
2618
07F7 A2 A0 2619 mov c,_IOC0
2620 ; # 131 "../../include/ztex-flash2.h"
07F9 D2 80 2621 setb _IOA0
07FB 33 2622 rlc a
07FC C2 80 2623 clr _IOA0
2624
07FE A2 A0 2625 mov c,_IOC0
2626 ; # 136 "../../include/ztex-flash2.h"
0800 D2 80 2627 setb _IOA0
0802 33 2628 rlc a
0803 C2 80 2629 clr _IOA0
2630
0805 A2 A0 2631 mov c,_IOC0
2632 ; # 141 "../../include/ztex-flash2.h"
0807 D2 80 2633 setb _IOA0
0809 33 2634 rlc a
080A C2 80 2635 clr _IOA0
2636
080C A2 A0 2637 mov c,_IOC0
2638 ; # 146 "../../include/ztex-flash2.h"
080E D2 80 2639 setb _IOA0
0810 33 2640 rlc a
0811 C2 80 2641 clr _IOA0
2642
0813 A2 A0 2643 mov c,_IOC0
2644 ; # 151 "../../include/ztex-flash2.h"
0815 D2 80 2645 setb _IOA0
0817 33 2646 rlc a
0818 C2 80 2647 clr _IOA0
2648
081A A2 A0 2649 mov c,_IOC0
2650 ; # 156 "../../include/ztex-flash2.h"
081C D2 80 2651 setb _IOA0
081E 33 2652 rlc a
081F C2 80 2653 clr _IOA0
0821 F5 82 2654 mov dpl,a
0823 22 2655 ret
2656 ; ../../include/ztex-flash2.h:170: *buf; // this avoids stupid warnings
0824 75 82 00 2657 mov dpl,#0x00
0827 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 ; -----------------------------------------
0828 2669 _flash_read:
2670 ; ../../include/ztex-flash2.h:228: __asm
2671
2672 ; # 173 "../../include/ztex-flash2.h"
0828 AA 16 2673 mov r2,_flash_read_PARM_2
082A 2674 010012$:
2675
082A A2 A0 2676 mov c,_IOC0
2677 ; # 177 "../../include/ztex-flash2.h"
082C D2 80 2678 setb _IOA0
082E 33 2679 rlc a
082F C2 80 2680 clr _IOA0
2681
0831 A2 A0 2682 mov c,_IOC0
2683 ; # 182 "../../include/ztex-flash2.h"
0833 D2 80 2684 setb _IOA0
0835 33 2685 rlc a
0836 C2 80 2686 clr _IOA0
2687
0838 A2 A0 2688 mov c,_IOC0
2689 ; # 187 "../../include/ztex-flash2.h"
083A D2 80 2690 setb _IOA0
083C 33 2691 rlc a
083D C2 80 2692 clr _IOA0
2693
083F A2 A0 2694 mov c,_IOC0
2695 ; # 192 "../../include/ztex-flash2.h"
0841 D2 80 2696 setb _IOA0
0843 33 2697 rlc a
0844 C2 80 2698 clr _IOA0
2699
0846 A2 A0 2700 mov c,_IOC0
2701 ; # 197 "../../include/ztex-flash2.h"
0848 D2 80 2702 setb _IOA0
084A 33 2703 rlc a
084B C2 80 2704 clr _IOA0
2705
084D A2 A0 2706 mov c,_IOC0
2707 ; # 202 "../../include/ztex-flash2.h"
084F D2 80 2708 setb _IOA0
0851 33 2709 rlc a
0852 C2 80 2710 clr _IOA0
2711
0854 A2 A0 2712 mov c,_IOC0
2713 ; # 207 "../../include/ztex-flash2.h"
0856 D2 80 2714 setb _IOA0
0858 33 2715 rlc a
0859 C2 80 2716 clr _IOA0
2717
085B A2 A0 2718 mov c,_IOC0
2719 ; # 212 "../../include/ztex-flash2.h"
085D D2 80 2720 setb _IOA0
085F 33 2721 rlc a
0860 C2 80 2722 clr _IOA0
2723
0862 F0 2724 movx @dptr,a
0863 A3 2725 inc dptr
0864 DA C4 2726 djnz r2,010012$
0866 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 ; -----------------------------------------
0867 2737 _spi_write_byte:
2738 ; ../../include/ztex-flash2.h:280: *buf; // this avoids stupid warnings
2739
2740 ; # 230 "../../include/ztex-flash2.h"
0867 E5 82 2741 mov a,dpl
0869 33 2742 rlc a
2743 ; # 232 "../../include/ztex-flash2.h"
2744
086A 92 81 2745 mov _IOA1,c
086C D2 80 2746 setb _IOA0
086E 33 2747 rlc a
2748 ; # 236 "../../include/ztex-flash2.h"
086F C2 80 2749 clr _IOA0
2750
0871 92 81 2751 mov _IOA1,c
0873 D2 80 2752 setb _IOA0
0875 33 2753 rlc a
2754 ; # 241 "../../include/ztex-flash2.h"
0876 C2 80 2755 clr _IOA0
2756
0878 92 81 2757 mov _IOA1,c
087A D2 80 2758 setb _IOA0
087C 33 2759 rlc a
2760 ; # 246 "../../include/ztex-flash2.h"
087D C2 80 2761 clr _IOA0
2762
087F 92 81 2763 mov _IOA1,c
0881 D2 80 2764 setb _IOA0
0883 33 2765 rlc a
2766 ; # 251 "../../include/ztex-flash2.h"
0884 C2 80 2767 clr _IOA0
2768
0886 92 81 2769 mov _IOA1,c
0888 D2 80 2770 setb _IOA0
088A 33 2771 rlc a
2772 ; # 256 "../../include/ztex-flash2.h"
088B C2 80 2773 clr _IOA0
2774
088D 92 81 2775 mov _IOA1,c
088F D2 80 2776 setb _IOA0
0891 33 2777 rlc a
2778 ; # 261 "../../include/ztex-flash2.h"
0892 C2 80 2779 clr _IOA0
2780
0894 92 81 2781 mov _IOA1,c
0896 D2 80 2782 setb _IOA0
0898 33 2783 rlc a
2784 ; # 266 "../../include/ztex-flash2.h"
0899 C2 80 2785 clr _IOA0
2786
089B 92 81 2787 mov _IOA1,c
089D D2 80 2788 setb _IOA0
089F 00 2789 nop
08A0 C2 80 2790 clr _IOA0
08A2 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 ; -----------------------------------------
08A3 2802 _spi_write:
2803 ; ../../include/ztex-flash2.h:339: void spi_select() {
2804
2805 ; # 283 "../../include/ztex-flash2.h"
08A3 AA 16 2806 mov r2,_flash_read_PARM_2
08A5 2807 010013$:
2808 ; # 286 "../../include/ztex-flash2.h"
08A5 E0 2809 movx a,@dptr
08A6 33 2810 rlc a
2811 ; # 288 "../../include/ztex-flash2.h"
2812
08A7 92 81 2813 mov _IOA1,c
08A9 D2 80 2814 setb _IOA0
08AB 33 2815 rlc a
2816 ; # 292 "../../include/ztex-flash2.h"
08AC C2 80 2817 clr _IOA0
2818
08AE 92 81 2819 mov _IOA1,c
08B0 D2 80 2820 setb _IOA0
08B2 33 2821 rlc a
2822 ; # 297 "../../include/ztex-flash2.h"
08B3 C2 80 2823 clr _IOA0
2824
08B5 92 81 2825 mov _IOA1,c
08B7 D2 80 2826 setb _IOA0
08B9 33 2827 rlc a
2828 ; # 302 "../../include/ztex-flash2.h"
08BA C2 80 2829 clr _IOA0
2830
08BC 92 81 2831 mov _IOA1,c
08BE D2 80 2832 setb _IOA0
08C0 33 2833 rlc a
2834 ; # 307 "../../include/ztex-flash2.h"
08C1 C2 80 2835 clr _IOA0
2836
08C3 92 81 2837 mov _IOA1,c
08C5 D2 80 2838 setb _IOA0
08C7 33 2839 rlc a
2840 ; # 312 "../../include/ztex-flash2.h"
08C8 C2 80 2841 clr _IOA0
2842
08CA 92 81 2843 mov _IOA1,c
08CC D2 80 2844 setb _IOA0
08CE 33 2845 rlc a
2846 ; # 317 "../../include/ztex-flash2.h"
08CF C2 80 2847 clr _IOA0
2848
08D1 92 81 2849 mov _IOA1,c
08D3 D2 80 2850 setb _IOA0
08D5 33 2851 rlc a
2852 ; # 322 "../../include/ztex-flash2.h"
08D6 C2 80 2853 clr _IOA0
2854
08D8 92 81 2855 mov _IOA1,c
08DA D2 80 2856 setb _IOA0
08DC A3 2857 inc dptr
08DD C2 80 2858 clr _IOA0
2859
08DF DA C4 2860 djnz r2,010013$
08E1 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 ; -----------------------------------------
08E2 2870 _spi_select:
2871 ; ../../include/ztex-flash2.h:349: void spi_deselect() {
08E2 D2 83 2872 setb _IOA3
2873 ; ../../include/ztex-flash2.h:350: SPI_CS = 1; // CS = 1;
08E4 75 82 08 2874 mov dpl,#0x08
08E7 12 07 DD 2875 lcall _spi_clocks
2876 ; ../../include/ztex-flash2.h:342: SPI_CS = 0;
08EA C2 83 2877 clr _IOA3
08EC 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 ; -----------------------------------------
08ED 2887 _spi_deselect:
2888 ; ../../include/ztex-flash2.h:350: SPI_CS = 1; // CS = 1;
08ED D2 83 2889 setb _IOA3
2890 ; ../../include/ztex-flash2.h:351: spi_clocks(8); // 8 dummy clocks to finish a previous command
08EF 75 82 08 2891 mov dpl,#0x08
08F2 02 07 DD 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 ; -----------------------------------------
08F5 2902 _spi_wait:
2903 ; ../../include/ztex-flash2.h:359: spi_last_cmd = $0;
08F5 90 3A 13 2904 mov dptr,#_spi_last_cmd
08F8 74 05 2905 mov a,#0x05
08FA F0 2906 movx @dptr,a
2907 ; ../../include/ztex-flash2.h:360: spi_select(); // select
08FB 12 08 E2 2908 lcall _spi_select
2909 ; ../../include/ztex-flash2.h:361: spi_write_byte($0); // CMD 90h
08FE 75 82 05 2910 mov dpl,#0x05
0901 12 08 67 2911 lcall _spi_write_byte
2912 ; ../../include/ztex-flash2.h:375: for (i=0; (flash_read_byte() & bmBIT0) && i<65535; i++ ) {
0904 7A 00 2913 mov r2,#0x00
0906 7B 00 2914 mov r3,#0x00
0908 2915 00102$:
0908 C0 02 2916 push ar2
090A C0 03 2917 push ar3
090C 12 07 E9 2918 lcall _flash_read_byte
090F E5 82 2919 mov a,dpl
0911 D0 03 2920 pop ar3
0913 D0 02 2921 pop ar2
0915 30 E0 2E 2922 jnb acc.0,00105$
0918 8A 04 2923 mov ar4,r2
091A 8B 05 2924 mov ar5,r3
091C 7E 00 2925 mov r6,#0x00
091E 7F 00 2926 mov r7,#0x00
0920 C3 2927 clr c
0921 EC 2928 mov a,r4
0922 94 FF 2929 subb a,#0xFF
0924 ED 2930 mov a,r5
0925 94 FF 2931 subb a,#0xFF
0927 EE 2932 mov a,r6
0928 94 00 2933 subb a,#0x00
092A EF 2934 mov a,r7
092B 64 80 2935 xrl a,#0x80
092D 94 80 2936 subb a,#0x80
092F 50 15 2937 jnc 00105$
2938 ; ../../include/ztex-flash2.h:376: spi_clocks(0); // 256 dummy clocks
0931 75 82 00 2939 mov dpl,#0x00
0934 C0 02 2940 push ar2
0936 C0 03 2941 push ar3
0938 12 07 DD 2942 lcall _spi_clocks
093B D0 03 2943 pop ar3
093D D0 02 2944 pop ar2
2945 ; ../../include/ztex-flash2.h:375: for (i=0; (flash_read_byte() & bmBIT0) && i<65535; i++ ) {
093F 0A 2946 inc r2
0940 BA 00 C5 2947 cjne r2,#0x00,00102$
0943 0B 2948 inc r3
0944 80 C2 2949 sjmp 00102$
0946 2950 00105$:
2951 ; ../../include/ztex-flash2.h:379: flash_ec = flash_read_byte() & bmBIT0 ? FLASH_EC_TIMEOUT : 0;
0946 12 07 E9 2952 lcall _flash_read_byte
0949 E5 82 2953 mov a,dpl
094B 30 E0 04 2954 jnb acc.0,00108$
094E 7A 02 2955 mov r2,#0x02
0950 80 02 2956 sjmp 00109$
0952 2957 00108$:
0952 7A 00 2958 mov r2,#0x00
0954 2959 00109$:
0954 90 3A 0E 2960 mov dptr,#_flash_ec
0957 EA 2961 mov a,r2
0958 F0 2962 movx @dptr,a
2963 ; ../../include/ztex-flash2.h:380: spi_deselect();
0959 12 08 ED 2964 lcall _spi_deselect
2965 ; ../../include/ztex-flash2.h:381: return flash_ec;
095C 90 3A 0E 2966 mov dptr,#_flash_ec
095F E0 2967 movx a,@dptr
0960 F5 82 2968 mov dpl,a
0962 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 ; -----------------------------------------
0963 2979 _flash_read_init:
0963 AA 82 2980 mov r2,dpl
0965 AB 83 2981 mov r3,dph
2982 ; ../../include/ztex-flash2.h:396: OESPI_OPORT &= ~bmBITSPI_BIT_DO;
0967 20 83 0A 2983 jb _IOA3,00102$
2984 ; ../../include/ztex-flash2.h:393: flash_ec = FLASH_EC_PENDING;
096A 90 3A 0E 2985 mov dptr,#_flash_ec
096D 74 04 2986 mov a,#0x04
096F F0 2987 movx @dptr,a
2988 ; ../../include/ztex-flash2.h:394: return FLASH_EC_PENDING; // we interrupted a pending Flash operation
0970 75 82 04 2989 mov dpl,#0x04
0973 22 2990 ret
0974 2991 00102$:
2992 ; ../../include/ztex-flash2.h:396: OESPI_OPORT &= ~bmBITSPI_BIT_DO;
0974 53 B4 FE 2993 anl _OEC,#0xFE
2994 ; ../../include/ztex-flash2.h:397: OESPI_PORT |= bmBITSPI_BIT_CS | bmBITSPI_BIT_DI | bmBITSPI_BIT_CLK;
0977 43 B2 0B 2995 orl _OEA,#0x0B
2996 ; ../../include/ztex-flash2.h:398: if ( spi_wait() ) {
097A C0 02 2997 push ar2
097C C0 03 2998 push ar3
097E 12 08 F5 2999 lcall _spi_wait
0981 E5 82 3000 mov a,dpl
0983 D0 03 3001 pop ar3
0985 D0 02 3002 pop ar2
0987 60 07 3003 jz 00104$
3004 ; ../../include/ztex-flash2.h:399: return flash_ec;
0989 90 3A 0E 3005 mov dptr,#_flash_ec
098C E0 3006 movx a,@dptr
098D F5 82 3007 mov dpl,a
098F 22 3008 ret
0990 3009 00104$:
3010 ; ../../include/ztex-flash2.h:402: s = s << ((BYTE)flash_sector_size - 8);
0990 90 3A 08 3011 mov dptr,#_flash_sector_size
0993 E0 3012 movx a,@dptr
0994 FC 3013 mov r4,a
0995 A3 3014 inc dptr
0996 E0 3015 movx a,@dptr
0997 7D 00 3016 mov r5,#0x00
0999 EC 3017 mov a,r4
099A 24 F8 3018 add a,#0xf8
099C FC 3019 mov r4,a
099D ED 3020 mov a,r5
099E 34 FF 3021 addc a,#0xff
09A0 FD 3022 mov r5,a
09A1 8C F0 3023 mov b,r4
09A3 05 F0 3024 inc b
09A5 80 06 3025 sjmp 00112$
09A7 3026 00111$:
09A7 EA 3027 mov a,r2
09A8 2A 3028 add a,r2
09A9 FA 3029 mov r2,a
09AA EB 3030 mov a,r3
09AB 33 3031 rlc a
09AC FB 3032 mov r3,a
09AD 3033 00112$:
09AD D5 F0 F7 3034 djnz b,00111$
3035 ; ../../include/ztex-flash2.h:359: spi_last_cmd = $0;
09B0 90 3A 13 3036 mov dptr,#_spi_last_cmd
09B3 74 0B 3037 mov a,#0x0B
09B5 F0 3038 movx @dptr,a
3039 ; ../../include/ztex-flash2.h:360: spi_select(); // select
09B6 C0 02 3040 push ar2
09B8 C0 03 3041 push ar3
09BA 12 08 E2 3042 lcall _spi_select
3043 ; ../../include/ztex-flash2.h:361: spi_write_byte($0); // CMD 90h
09BD 75 82 0B 3044 mov dpl,#0x0B
09C0 12 08 67 3045 lcall _spi_write_byte
09C3 D0 03 3046 pop ar3
3047 ; ../../include/ztex-flash2.h:363:
09C5 8B 82 3048 mov dpl,r3
09C7 C0 03 3049 push ar3
09C9 12 08 67 3050 lcall _spi_write_byte
09CC D0 03 3051 pop ar3
09CE D0 02 3052 pop ar2
3053 ; ../../include/ztex-flash2.h:405: spi_write_byte(s & 255);
09D0 8A 82 3054 mov dpl,r2
09D2 12 08 67 3055 lcall _spi_write_byte
3056 ; ../../include/ztex-flash2.h:406: spi_write_byte(0);
09D5 75 82 00 3057 mov dpl,#0x00
09D8 12 08 67 3058 lcall _spi_write_byte
3059 ; ../../include/ztex-flash2.h:407: spi_clocks(8); // 8 dummy clocks
09DB 75 82 08 3060 mov dpl,#0x08
09DE 12 07 DD 3061 lcall _spi_clocks
3062 ; ../../include/ztex-flash2.h:408: return 0;
09E1 75 82 00 3063 mov dpl,#0x00
09E4 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 ; -----------------------------------------
09E5 3073 _flash_read_next:
3074 ; ../../include/ztex-flash2.h:418: return 0;
09E5 75 82 00 3075 mov dpl,#0x00
09E8 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 ; -----------------------------------------
09E9 3086 _flash_read_finish:
3087 ; ../../include/ztex-flash2.h:430: spi_deselect();
09E9 02 08 ED 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 ; -----------------------------------------
09EC 3097 _spi_pp:
3098 ; ../../include/ztex-flash2.h:438: spi_deselect(); // finish previous write cmd
09EC 12 08 ED 3099 lcall _spi_deselect
3100 ; ../../include/ztex-flash2.h:440: spi_need_pp = 0;
09EF 90 3A 1B 3101 mov dptr,#_spi_need_pp
09F2 E4 3102 clr a
09F3 F0 3103 movx @dptr,a
3104 ; ../../include/ztex-flash2.h:442: if ( spi_wait() ) {
09F4 12 08 F5 3105 lcall _spi_wait
09F7 E5 82 3106 mov a,dpl
09F9 60 07 3107 jz 00102$
3108 ; ../../include/ztex-flash2.h:443: return flash_ec;
09FB 90 3A 0E 3109 mov dptr,#_flash_ec
09FE E0 3110 movx a,@dptr
09FF F5 82 3111 mov dpl,a
0A01 22 3112 ret
0A02 3113 00102$:
3114 ; ../../include/ztex-flash2.h:359: spi_last_cmd = $0;
0A02 90 3A 13 3115 mov dptr,#_spi_last_cmd
0A05 74 06 3116 mov a,#0x06
0A07 F0 3117 movx @dptr,a
3118 ; ../../include/ztex-flash2.h:360: spi_select(); // select
0A08 12 08 E2 3119 lcall _spi_select
3120 ; ../../include/ztex-flash2.h:361: spi_write_byte($0); // CMD 90h
0A0B 75 82 06 3121 mov dpl,#0x06
0A0E 12 08 67 3122 lcall _spi_write_byte
3123 ; ../../include/ztex-flash2.h:446: spi_deselect();
0A11 12 08 ED 3124 lcall _spi_deselect
3125 ; ../../include/ztex-flash2.h:359: spi_last_cmd = $0;
0A14 90 3A 13 3126 mov dptr,#_spi_last_cmd
0A17 74 02 3127 mov a,#0x02
0A19 F0 3128 movx @dptr,a
3129 ; ../../include/ztex-flash2.h:360: spi_select(); // select
0A1A 12 08 E2 3130 lcall _spi_select
3131 ; ../../include/ztex-flash2.h:361: spi_write_byte($0); // CMD 90h
0A1D 75 82 02 3132 mov dpl,#0x02
0A20 12 08 67 3133 lcall _spi_write_byte
3134 ; ../../include/ztex-flash2.h:363:
0A23 90 3A 18 3135 mov dptr,#_spi_write_addr_hi
0A26 E0 3136 movx a,@dptr
0A27 A3 3137 inc dptr
0A28 E0 3138 movx a,@dptr
0A29 F5 82 3139 mov dpl,a
0A2B 12 08 67 3140 lcall _spi_write_byte
3141 ; ../../include/ztex-flash2.h:450: spi_write_byte(spi_write_addr_hi & 255);
0A2E 90 3A 18 3142 mov dptr,#_spi_write_addr_hi
0A31 E0 3143 movx a,@dptr
0A32 FA 3144 mov r2,a
0A33 A3 3145 inc dptr
0A34 E0 3146 movx a,@dptr
0A35 8A 82 3147 mov dpl,r2
0A37 12 08 67 3148 lcall _spi_write_byte
3149 ; ../../include/ztex-flash2.h:451: spi_write_byte(0);
0A3A 75 82 00 3150 mov dpl,#0x00
0A3D 12 08 67 3151 lcall _spi_write_byte
3152 ; ../../include/ztex-flash2.h:452: return 0;
0A40 75 82 00 3153 mov dpl,#0x00
0A43 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 ; -----------------------------------------
0A44 3164 _flash_write_byte:
0A44 AA 82 3165 mov r2,dpl
3166 ; ../../include/ztex-flash2.h:460: if ( spi_need_pp && spi_pp() ) return flash_ec;
0A46 90 3A 1B 3167 mov dptr,#_spi_need_pp
0A49 E0 3168 movx a,@dptr
0A4A FB 3169 mov r3,a
0A4B 60 12 3170 jz 00102$
0A4D C0 02 3171 push ar2
0A4F 12 09 EC 3172 lcall _spi_pp
0A52 E5 82 3173 mov a,dpl
0A54 D0 02 3174 pop ar2
0A56 60 07 3175 jz 00102$
0A58 90 3A 0E 3176 mov dptr,#_flash_ec
0A5B E0 3177 movx a,@dptr
0A5C F5 82 3178 mov dpl,a
0A5E 22 3179 ret
0A5F 3180 00102$:
3181 ; ../../include/ztex-flash2.h:461: spi_write_byte(b);
0A5F 8A 82 3182 mov dpl,r2
0A61 12 08 67 3183 lcall _spi_write_byte
3184 ; ../../include/ztex-flash2.h:462: spi_write_addr_lo++;
0A64 90 3A 1A 3185 mov dptr,#_spi_write_addr_lo
0A67 E0 3186 movx a,@dptr
0A68 90 3A 1A 3187 mov dptr,#_spi_write_addr_lo
0A6B 04 3188 inc a
0A6C F0 3189 movx @dptr,a
3190 ; ../../include/ztex-flash2.h:463: if ( spi_write_addr_lo == 0 ) {
0A6D 90 3A 1A 3191 mov dptr,#_spi_write_addr_lo
0A70 E0 3192 movx a,@dptr
0A71 FA 3193 mov r2,a
0A72 70 1C 3194 jnz 00105$
3195 ; ../../include/ztex-flash2.h:464: spi_write_addr_hi++;
0A74 90 3A 18 3196 mov dptr,#_spi_write_addr_hi
0A77 E0 3197 movx a,@dptr
0A78 FA 3198 mov r2,a
0A79 A3 3199 inc dptr
0A7A E0 3200 movx a,@dptr
0A7B FB 3201 mov r3,a
0A7C 90 3A 18 3202 mov dptr,#_spi_write_addr_hi
0A7F 74 01 3203 mov a,#0x01
0A81 2A 3204 add a,r2
0A82 F0 3205 movx @dptr,a
0A83 E4 3206 clr a
0A84 3B 3207 addc a,r3
0A85 A3 3208 inc dptr
0A86 F0 3209 movx @dptr,a
3210 ; ../../include/ztex-flash2.h:465: spi_deselect(); // finish write cmd
0A87 12 08 ED 3211 lcall _spi_deselect
3212 ; ../../include/ztex-flash2.h:466: spi_need_pp = 1;
0A8A 90 3A 1B 3213 mov dptr,#_spi_need_pp
0A8D 74 01 3214 mov a,#0x01
0A8F F0 3215 movx @dptr,a
0A90 3216 00105$:
3217 ; ../../include/ztex-flash2.h:468: return 0;
0A90 75 82 00 3218 mov dpl,#0x00
0A93 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 ; -----------------------------------------
0A94 3231 _flash_write:
0A94 AA 82 3232 mov r2,dpl
0A96 AB 83 3233 mov r3,dph
3234 ; ../../include/ztex-flash2.h:478: if ( spi_need_pp && spi_pp() ) return flash_ec;
0A98 90 3A 1B 3235 mov dptr,#_spi_need_pp
0A9B E0 3236 movx a,@dptr
0A9C FC 3237 mov r4,a
0A9D 60 16 3238 jz 00102$
0A9F C0 02 3239 push ar2
0AA1 C0 03 3240 push ar3
0AA3 12 09 EC 3241 lcall _spi_pp
0AA6 E5 82 3242 mov a,dpl
0AA8 D0 03 3243 pop ar3
0AAA D0 02 3244 pop ar2
0AAC 60 07 3245 jz 00102$
0AAE 90 3A 0E 3246 mov dptr,#_flash_ec
0AB1 E0 3247 movx a,@dptr
0AB2 F5 82 3248 mov dpl,a
0AB4 22 3249 ret
0AB5 3250 00102$:
3251 ; ../../include/ztex-flash2.h:480: if ( spi_write_addr_lo == 0 ) {
0AB5 90 3A 1A 3252 mov dptr,#_spi_write_addr_lo
0AB8 E0 3253 movx a,@dptr
0AB9 FC 3254 mov r4,a
0ABA 70 0C 3255 jnz 00110$
3256 ; ../../include/ztex-flash2.h:481: spi_write(buf,len);
0ABC 85 14 16 3257 mov _spi_write_PARM_2,_flash_write_PARM_2
0ABF 8A 82 3258 mov dpl,r2
0AC1 8B 83 3259 mov dph,r3
0AC3 12 08 A3 3260 lcall _spi_write
0AC6 80 67 3261 sjmp 00111$
0AC8 3262 00110$:
3263 ; ../../include/ztex-flash2.h:484: b = (~spi_write_addr_lo) + 1;
0AC8 EC 3264 mov a,r4
0AC9 F4 3265 cpl a
0ACA FC 3266 mov r4,a
0ACB 0C 3267 inc r4
3268 ; ../../include/ztex-flash2.h:485: if ( len==0 || len>b ) {
0ACC E5 14 3269 mov a,_flash_write_PARM_2
0ACE 60 06 3270 jz 00106$
0AD0 C3 3271 clr c
0AD1 EC 3272 mov a,r4
0AD2 95 14 3273 subb a,_flash_write_PARM_2
0AD4 50 4F 3274 jnc 00107$
0AD6 3275 00106$:
3276 ; ../../include/ztex-flash2.h:486: spi_write(buf,b);
0AD6 8C 16 3277 mov _spi_write_PARM_2,r4
0AD8 8A 82 3278 mov dpl,r2
0ADA 8B 83 3279 mov dph,r3
0ADC C0 02 3280 push ar2
0ADE C0 03 3281 push ar3
0AE0 C0 04 3282 push ar4
0AE2 12 08 A3 3283 lcall _spi_write
0AE5 D0 04 3284 pop ar4
0AE7 D0 03 3285 pop ar3
0AE9 D0 02 3286 pop ar2
3287 ; ../../include/ztex-flash2.h:487: len-=b;
0AEB E5 14 3288 mov a,_flash_write_PARM_2
0AED C3 3289 clr c
0AEE 9C 3290 subb a,r4
0AEF F5 14 3291 mov _flash_write_PARM_2,a
3292 ; ../../include/ztex-flash2.h:488: spi_write_addr_hi++;
0AF1 90 3A 18 3293 mov dptr,#_spi_write_addr_hi
0AF4 E0 3294 movx a,@dptr
0AF5 FD 3295 mov r5,a
0AF6 A3 3296 inc dptr
0AF7 E0 3297 movx a,@dptr
0AF8 FE 3298 mov r6,a
0AF9 90 3A 18 3299 mov dptr,#_spi_write_addr_hi
0AFC 74 01 3300 mov a,#0x01
0AFE 2D 3301 add a,r5
0AFF F0 3302 movx @dptr,a
0B00 E4 3303 clr a
0B01 3E 3304 addc a,r6
0B02 A3 3305 inc dptr
0B03 F0 3306 movx @dptr,a
3307 ; ../../include/ztex-flash2.h:489: spi_write_addr_lo=0;
0B04 90 3A 1A 3308 mov dptr,#_spi_write_addr_lo
0B07 E4 3309 clr a
0B08 F0 3310 movx @dptr,a
3311 ; ../../include/ztex-flash2.h:490: buf+=b;
0B09 EC 3312 mov a,r4
0B0A 2A 3313 add a,r2
0B0B FA 3314 mov r2,a
0B0C E4 3315 clr a
0B0D 3B 3316 addc a,r3
0B0E FB 3317 mov r3,a
3318 ; ../../include/ztex-flash2.h:491: if ( spi_pp() ) return flash_ec;
0B0F C0 02 3319 push ar2
0B11 C0 03 3320 push ar3
0B13 12 09 EC 3321 lcall _spi_pp
0B16 E5 82 3322 mov a,dpl
0B18 D0 03 3323 pop ar3
0B1A D0 02 3324 pop ar2
0B1C 60 07 3325 jz 00107$
0B1E 90 3A 0E 3326 mov dptr,#_flash_ec
0B21 E0 3327 movx a,@dptr
0B22 F5 82 3328 mov dpl,a
0B24 22 3329 ret
0B25 3330 00107$:
3331 ; ../../include/ztex-flash2.h:493: spi_write(buf,len);
0B25 85 14 16 3332 mov _spi_write_PARM_2,_flash_write_PARM_2
0B28 8A 82 3333 mov dpl,r2
0B2A 8B 83 3334 mov dph,r3
0B2C 12 08 A3 3335 lcall _spi_write
0B2F 3336 00111$:
3337 ; ../../include/ztex-flash2.h:496: spi_write_addr_lo+=len;
0B2F 90 3A 1A 3338 mov dptr,#_spi_write_addr_lo
0B32 E0 3339 movx a,@dptr
0B33 FA 3340 mov r2,a
0B34 E5 14 3341 mov a,_flash_write_PARM_2
0B36 2A 3342 add a,r2
0B37 F0 3343 movx @dptr,a
3344 ; ../../include/ztex-flash2.h:498: if ( spi_write_addr_lo == 0 ) {
0B38 90 3A 1A 3345 mov dptr,#_spi_write_addr_lo
0B3B E0 3346 movx a,@dptr
0B3C FA 3347 mov r2,a
0B3D 70 1C 3348 jnz 00113$
3349 ; ../../include/ztex-flash2.h:499: spi_write_addr_hi++;
0B3F 90 3A 18 3350 mov dptr,#_spi_write_addr_hi
0B42 E0 3351 movx a,@dptr
0B43 FA 3352 mov r2,a
0B44 A3 3353 inc dptr
0B45 E0 3354 movx a,@dptr
0B46 FB 3355 mov r3,a
0B47 90 3A 18 3356 mov dptr,#_spi_write_addr_hi
0B4A 74 01 3357 mov a,#0x01
0B4C 2A 3358 add a,r2
0B4D F0 3359 movx @dptr,a
0B4E E4 3360 clr a
0B4F 3B 3361 addc a,r3
0B50 A3 3362 inc dptr
0B51 F0 3363 movx @dptr,a
3364 ; ../../include/ztex-flash2.h:500: spi_deselect(); // finish write cmd
0B52 12 08 ED 3365 lcall _spi_deselect
3366 ; ../../include/ztex-flash2.h:501: spi_need_pp = 1;
0B55 90 3A 1B 3367 mov dptr,#_spi_need_pp
0B58 74 01 3368 mov a,#0x01
0B5A F0 3369 movx @dptr,a
0B5B 3370 00113$:
3371 ; ../../include/ztex-flash2.h:504: return 0;
0B5B 75 82 00 3372 mov dpl,#0x00
0B5E 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 ; -----------------------------------------
0B5F 3383 _flash_write_init:
0B5F AA 82 3384 mov r2,dpl
0B61 AB 83 3385 mov r3,dph
3386 ; ../../include/ztex-flash2.h:517: if ( !SPI_CS ) {
0B63 20 83 0A 3387 jb _IOA3,00102$
3388 ; ../../include/ztex-flash2.h:518: flash_ec = FLASH_EC_PENDING;
0B66 90 3A 0E 3389 mov dptr,#_flash_ec
0B69 74 04 3390 mov a,#0x04
0B6B F0 3391 movx @dptr,a
3392 ; ../../include/ztex-flash2.h:519: return FLASH_EC_PENDING; // we interrupted a pending Flash operation
0B6C 75 82 04 3393 mov dpl,#0x04
0B6F 22 3394 ret
0B70 3395 00102$:
3396 ; ../../include/ztex-flash2.h:521: OESPI_OPORT &= ~bmBITSPI_BIT_DO;
0B70 53 B4 FE 3397 anl _OEC,#0xFE
3398 ; ../../include/ztex-flash2.h:522: OESPI_PORT |= bmBITSPI_BIT_CS | bmBITSPI_BIT_DI | bmBITSPI_BIT_CLK;
0B73 43 B2 0B 3399 orl _OEA,#0x0B
3400 ; ../../include/ztex-flash2.h:523: if ( spi_wait() ) {
0B76 C0 02 3401 push ar2
0B78 C0 03 3402 push ar3
0B7A 12 08 F5 3403 lcall _spi_wait
0B7D E5 82 3404 mov a,dpl
0B7F D0 03 3405 pop ar3
0B81 D0 02 3406 pop ar2
0B83 60 07 3407 jz 00104$
3408 ; ../../include/ztex-flash2.h:524: return flash_ec;
0B85 90 3A 0E 3409 mov dptr,#_flash_ec
0B88 E0 3410 movx a,@dptr
0B89 F5 82 3411 mov dpl,a
0B8B 22 3412 ret
0B8C 3413 00104$:
3414 ; ../../include/ztex-flash2.h:526: spi_write_sector = s;
0B8C 90 3A 1C 3415 mov dptr,#_spi_write_sector
0B8F EA 3416 mov a,r2
0B90 F0 3417 movx @dptr,a
0B91 A3 3418 inc dptr
0B92 EB 3419 mov a,r3
0B93 F0 3420 movx @dptr,a
3421 ; ../../include/ztex-flash2.h:527: s = s << ((BYTE)flash_sector_size - 8);
0B94 90 3A 08 3422 mov dptr,#_flash_sector_size
0B97 E0 3423 movx a,@dptr
0B98 FC 3424 mov r4,a
0B99 A3 3425 inc dptr
0B9A E0 3426 movx a,@dptr
0B9B 7D 00 3427 mov r5,#0x00
0B9D EC 3428 mov a,r4
0B9E 24 F8 3429 add a,#0xf8
0BA0 FC 3430 mov r4,a
0BA1 ED 3431 mov a,r5
0BA2 34 FF 3432 addc a,#0xff
0BA4 FD 3433 mov r5,a
0BA5 8C F0 3434 mov b,r4
0BA7 05 F0 3435 inc b
0BA9 80 06 3436 sjmp 00112$
0BAB 3437 00111$:
0BAB EA 3438 mov a,r2
0BAC 2A 3439 add a,r2
0BAD FA 3440 mov r2,a
0BAE EB 3441 mov a,r3
0BAF 33 3442 rlc a
0BB0 FB 3443 mov r3,a
0BB1 3444 00112$:
0BB1 D5 F0 F7 3445 djnz b,00111$
3446 ; ../../include/ztex-flash2.h:528: spi_write_addr_hi = s;
0BB4 90 3A 18 3447 mov dptr,#_spi_write_addr_hi
0BB7 EA 3448 mov a,r2
0BB8 F0 3449 movx @dptr,a
0BB9 A3 3450 inc dptr
0BBA EB 3451 mov a,r3
0BBB F0 3452 movx @dptr,a
3453 ; ../../include/ztex-flash2.h:529: spi_write_addr_lo = 0;
0BBC 90 3A 1A 3454 mov dptr,#_spi_write_addr_lo
0BBF E4 3455 clr a
0BC0 F0 3456 movx @dptr,a
3457 ; ../../include/ztex-flash2.h:359: spi_last_cmd = $0;
0BC1 90 3A 13 3458 mov dptr,#_spi_last_cmd
0BC4 74 06 3459 mov a,#0x06
0BC6 F0 3460 movx @dptr,a
3461 ; ../../include/ztex-flash2.h:360: spi_select(); // select
0BC7 C0 02 3462 push ar2
0BC9 C0 03 3463 push ar3
0BCB 12 08 E2 3464 lcall _spi_select
3465 ; ../../include/ztex-flash2.h:361: spi_write_byte($0); // CMD 90h
0BCE 75 82 06 3466 mov dpl,#0x06
0BD1 12 08 67 3467 lcall _spi_write_byte
3468 ; ../../include/ztex-flash2.h:532: spi_deselect();
0BD4 12 08 ED 3469 lcall _spi_deselect
3470 ; ../../include/ztex-flash2.h:359: spi_last_cmd = $0;
0BD7 90 3A 12 3471 mov dptr,#_spi_erase_cmd
0BDA E0 3472 movx a,@dptr
0BDB 90 3A 13 3473 mov dptr,#_spi_last_cmd
0BDE F0 3474 movx @dptr,a
3475 ; ../../include/ztex-flash2.h:360: spi_select(); // select
0BDF 12 08 E2 3476 lcall _spi_select
3477 ; ../../include/ztex-flash2.h:361: spi_write_byte($0); // CMD 90h
0BE2 90 3A 12 3478 mov dptr,#_spi_erase_cmd
0BE5 E0 3479 movx a,@dptr
0BE6 F5 82 3480 mov dpl,a
0BE8 12 08 67 3481 lcall _spi_write_byte
0BEB D0 03 3482 pop ar3
3483 ; ../../include/ztex-flash2.h:363:
0BED 8B 82 3484 mov dpl,r3
0BEF C0 03 3485 push ar3
0BF1 12 08 67 3486 lcall _spi_write_byte
0BF4 D0 03 3487 pop ar3
0BF6 D0 02 3488 pop ar2
3489 ; ../../include/ztex-flash2.h:536: spi_write_byte(s & 255);
0BF8 8A 82 3490 mov dpl,r2
0BFA 12 08 67 3491 lcall _spi_write_byte
3492 ; ../../include/ztex-flash2.h:537: spi_write_byte(0);
0BFD 75 82 00 3493 mov dpl,#0x00
0C00 12 08 67 3494 lcall _spi_write_byte
3495 ; ../../include/ztex-flash2.h:538: spi_deselect();
0C03 12 08 ED 3496 lcall _spi_deselect
3497 ; ../../include/ztex-flash2.h:540: spi_need_pp = 1;
0C06 90 3A 1B 3498 mov dptr,#_spi_need_pp
0C09 74 01 3499 mov a,#0x01
0C0B F0 3500 movx @dptr,a
3501 ; ../../include/ztex-flash2.h:541: return 0;
0C0C 75 82 00 3502 mov dpl,#0x00
0C0F 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 ; -----------------------------------------
0C10 3513 _flash_write_finish_sector:
3514 ; ../../include/ztex-flash2.h:553: spi_deselect();
0C10 12 08 ED 3515 lcall _spi_deselect
3516 ; ../../include/ztex-flash2.h:554: return 0;
0C13 75 82 00 3517 mov dpl,#0x00
0C16 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 ; -----------------------------------------
0C17 3527 _flash_write_finish:
3528 ; ../../include/ztex-flash2.h:565: spi_deselect();
0C17 02 08 ED 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 ; -----------------------------------------
0C1A 3538 _flash_write_next:
3539 ; ../../include/ztex-flash2.h:576: spi_deselect();
0C1A 12 08 ED 3540 lcall _spi_deselect
3541 ; ../../include/ztex-flash2.h:577: return flash_write_init(spi_write_sector+1);
0C1D 90 3A 1C 3542 mov dptr,#_spi_write_sector
0C20 E0 3543 movx a,@dptr
0C21 FA 3544 mov r2,a
0C22 A3 3545 inc dptr
0C23 E0 3546 movx a,@dptr
0C24 FB 3547 mov r3,a
0C25 8A 82 3548 mov dpl,r2
0C27 8B 83 3549 mov dph,r3
0C29 A3 3550 inc dptr
0C2A 02 0B 5F 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 ; -----------------------------------------
0C2D 3561 _flash_init:
3562 ; ../../include/ztex-flash2.h:588: PORTCCFG = 0;
0C2D 90 E6 71 3563 mov dptr,#_PORTCCFG
0C30 E4 3564 clr a
0C31 F0 3565 movx @dptr,a
3566 ; ../../include/ztex-flash2.h:590: flash_enabled = 1;
0C32 90 3A 07 3567 mov dptr,#_flash_enabled
0C35 74 01 3568 mov a,#0x01
0C37 F0 3569 movx @dptr,a
3570 ; ../../include/ztex-flash2.h:591: flash_ec = 0;
0C38 90 3A 0E 3571 mov dptr,#_flash_ec
0C3B E4 3572 clr a
0C3C F0 3573 movx @dptr,a
3574 ; ../../include/ztex-flash2.h:592: flash_sector_size = 0x8010; // 64 KByte
0C3D 90 3A 08 3575 mov dptr,#_flash_sector_size
0C40 74 10 3576 mov a,#0x10
0C42 F0 3577 movx @dptr,a
0C43 A3 3578 inc dptr
0C44 74 80 3579 mov a,#0x80
0C46 F0 3580 movx @dptr,a
3581 ; ../../include/ztex-flash2.h:593: spi_erase_cmd = 0xd8;
0C47 90 3A 12 3582 mov dptr,#_spi_erase_cmd
0C4A 74 D8 3583 mov a,#0xD8
0C4C F0 3584 movx @dptr,a
3585 ; ../../include/ztex-flash2.h:595: OESPI_OPORT &= ~bmBITSPI_BIT_DO;
0C4D 53 B4 FE 3586 anl _OEC,#0xFE
3587 ; ../../include/ztex-flash2.h:596: OESPI_PORT |= bmBITSPI_BIT_CS | bmBITSPI_BIT_DI | bmBITSPI_BIT_CLK;
0C50 43 B2 0B 3588 orl _OEA,#0x0B
3589 ; ../../include/ztex-flash2.h:597: SPI_CS = 1;
0C53 D2 83 3590 setb _IOA3
3591 ; ../../include/ztex-flash2.h:598: spi_clocks(0); // 256 clocks
0C55 75 82 00 3592 mov dpl,#0x00
0C58 12 07 DD 3593 lcall _spi_clocks
3594 ; ../../include/ztex-flash2.h:359: spi_last_cmd = $0;
0C5B 90 3A 13 3595 mov dptr,#_spi_last_cmd
0C5E 74 90 3596 mov a,#0x90
0C60 F0 3597 movx @dptr,a
3598 ; ../../include/ztex-flash2.h:360: spi_select(); // select
0C61 12 08 E2 3599 lcall _spi_select
3600 ; ../../include/ztex-flash2.h:361: spi_write_byte($0); // CMD 90h
0C64 75 82 90 3601 mov dpl,#0x90
0C67 12 08 67 3602 lcall _spi_write_byte
3603 ; ../../include/ztex-flash2.h:363:
0C6A 75 82 18 3604 mov dpl,#0x18
0C6D 12 07 DD 3605 lcall _spi_clocks
3606 ; ../../include/ztex-flash2.h:602: spi_device = flash_read_byte();
0C70 12 07 E9 3607 lcall _flash_read_byte
0C73 E5 82 3608 mov a,dpl
0C75 90 3A 10 3609 mov dptr,#_spi_device
0C78 F0 3610 movx @dptr,a
3611 ; ../../include/ztex-flash2.h:603: spi_deselect(); // deselect
0C79 12 08 ED 3612 lcall _spi_deselect
3613 ; ../../include/ztex-flash2.h:359: spi_last_cmd = $0;
0C7C 90 3A 13 3614 mov dptr,#_spi_last_cmd
0C7F 74 9F 3615 mov a,#0x9F
0C81 F0 3616 movx @dptr,a
3617 ; ../../include/ztex-flash2.h:360: spi_select(); // select
0C82 12 08 E2 3618 lcall _spi_select
3619 ; ../../include/ztex-flash2.h:361: spi_write_byte($0); // CMD 90h
0C85 75 82 9F 3620 mov dpl,#0x9F
0C88 12 08 67 3621 lcall _spi_write_byte
3622 ; ../../include/ztex-flash2.h:363:
0C8B 75 16 03 3623 mov _flash_read_PARM_2,#0x03
0C8E 90 3A 14 3624 mov dptr,#_spi_buffer
0C91 12 08 28 3625 lcall _flash_read
3626 ; ../../include/ztex-flash2.h:364: /* *********************************************************************
0C94 12 08 ED 3627 lcall _spi_deselect
3628 ; ../../include/ztex-flash2.h:608: if ( spi_buffer[2]<16 || spi_buffer[2]>24 ) {
0C97 90 3A 16 3629 mov dptr,#(_spi_buffer + 0x0002)
0C9A E0 3630 movx a,@dptr
0C9B FA 3631 mov r2,a
0C9C BA 10 00 3632 cjne r2,#0x10,00109$
0C9F 3633 00109$:
0C9F 40 3D 3634 jc 00104$
0CA1 EA 3635 mov a,r2
0CA2 24 E7 3636 add a,#0xff - 0x18
0CA4 40 38 3637 jc 00104$
3638 ; ../../include/ztex-flash2.h:611: spi_vendor = spi_buffer[0];
0CA6 90 3A 14 3639 mov dptr,#_spi_buffer
0CA9 E0 3640 movx a,@dptr
0CAA 90 3A 0F 3641 mov dptr,#_spi_vendor
0CAD F0 3642 movx @dptr,a
3643 ; ../../include/ztex-flash2.h:612: spi_memtype = spi_buffer[1];
0CAE 90 3A 15 3644 mov dptr,#(_spi_buffer + 0x0001)
0CB1 E0 3645 movx a,@dptr
0CB2 90 3A 11 3646 mov dptr,#_spi_memtype
0CB5 F0 3647 movx @dptr,a
3648 ; ../../include/ztex-flash2.h:628: i=spi_buffer[2]-16;
0CB6 EA 3649 mov a,r2
0CB7 24 F0 3650 add a,#0xf0
0CB9 FA 3651 mov r2,a
3652 ; ../../include/ztex-flash2.h:630: flash_sectors = 1 << i;
0CBA 8A F0 3653 mov b,r2
0CBC 05 F0 3654 inc b
0CBE 7A 01 3655 mov r2,#0x01
0CC0 7B 00 3656 mov r3,#0x00
0CC2 80 06 3657 sjmp 00113$
0CC4 3658 00112$:
0CC4 EA 3659 mov a,r2
0CC5 2A 3660 add a,r2
0CC6 FA 3661 mov r2,a
0CC7 EB 3662 mov a,r3
0CC8 33 3663 rlc a
0CC9 FB 3664 mov r3,a
0CCA 3665 00113$:
0CCA D5 F0 F7 3666 djnz b,00112$
0CCD 90 3A 0A 3667 mov dptr,#_flash_sectors
0CD0 EA 3668 mov a,r2
0CD1 F0 3669 movx @dptr,a
0CD2 A3 3670 inc dptr
0CD3 EB 3671 mov a,r3
0CD4 F0 3672 movx @dptr,a
0CD5 EB 3673 mov a,r3
0CD6 33 3674 rlc a
0CD7 95 E0 3675 subb a,acc
0CD9 A3 3676 inc dptr
0CDA F0 3677 movx @dptr,a
0CDB A3 3678 inc dptr
0CDC F0 3679 movx @dptr,a
3680 ; ../../include/ztex-flash2.h:632: return;
3681 ; ../../include/ztex-flash2.h:634: disable:
0CDD 22 3682 ret
0CDE 3683 00104$:
3684 ; ../../include/ztex-flash2.h:635: flash_enabled = 0;
0CDE 90 3A 07 3685 mov dptr,#_flash_enabled
0CE1 E4 3686 clr a
0CE2 F0 3687 movx @dptr,a
3688 ; ../../include/ztex-flash2.h:636: flash_ec = FLASH_EC_NOTSUPPORTED;
0CE3 90 3A 0E 3689 mov dptr,#_flash_ec
0CE6 74 07 3690 mov a,#0x07
0CE8 F0 3691 movx @dptr,a
3692 ; ../../include/ztex-flash2.h:637: OESPI_PORT &= ~( bmBITSPI_BIT_CS | bmBITSPI_BIT_DI | bmBITSPI_BIT_CLK );
0CE9 53 B2 F4 3693 anl _OEA,#0xF4
0CEC 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 ; -----------------------------------------
0CED 3703 _spi_read_ep0:
3704 ; ../../include/ztex-flash2.h:664: flash_read(EP0BUF, ep0_payload_transfer);
0CED 90 3A 38 3705 mov dptr,#_ep0_payload_transfer
0CF0 E0 3706 movx a,@dptr
0CF1 F5 16 3707 mov _flash_read_PARM_2,a
0CF3 90 E7 40 3708 mov dptr,#_EP0BUF
0CF6 12 08 28 3709 lcall _flash_read
3710 ; ../../include/ztex-flash2.h:665: if ( ep0_read_mode==2 && ep0_payload_remaining==0 ) {
0CF9 90 3A 1E 3711 mov dptr,#_ep0_read_mode
0CFC E0 3712 movx a,@dptr
0CFD FA 3713 mov r2,a
0CFE BA 02 0E 3714 cjne r2,#0x02,00104$
0D01 90 3A 36 3715 mov dptr,#_ep0_payload_remaining
0D04 E0 3716 movx a,@dptr
0D05 FA 3717 mov r2,a
0D06 A3 3718 inc dptr
0D07 E0 3719 movx a,@dptr
0D08 FB 3720 mov r3,a
0D09 4A 3721 orl a,r2
0D0A 70 03 3722 jnz 00104$
3723 ; ../../include/ztex-flash2.h:666: spi_deselect();
0D0C 02 08 ED 3724 ljmp _spi_deselect
0D0F 3725 00104$:
0D0F 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 ; -----------------------------------------
0D10 3735 _spi_send_ep0:
3736 ; ../../include/ztex-flash2.h:691: flash_write(EP0BUF, ep0_payload_transfer);
0D10 90 3A 38 3737 mov dptr,#_ep0_payload_transfer
0D13 E0 3738 movx a,@dptr
0D14 F5 14 3739 mov _flash_write_PARM_2,a
0D16 90 E7 40 3740 mov dptr,#_EP0BUF
0D19 12 0A 94 3741 lcall _flash_write
3742 ; ../../include/ztex-flash2.h:692: if ( ep0_write_mode==2 && ep0_payload_remaining==0 ) {
0D1C 90 3A 1F 3743 mov dptr,#_ep0_write_mode
0D1F E0 3744 movx a,@dptr
0D20 FA 3745 mov r2,a
0D21 BA 02 0E 3746 cjne r2,#0x02,00104$
0D24 90 3A 36 3747 mov dptr,#_ep0_payload_remaining
0D27 E0 3748 movx a,@dptr
0D28 FA 3749 mov r2,a
0D29 A3 3750 inc dptr
0D2A E0 3751 movx a,@dptr
0D2B FB 3752 mov r3,a
0D2C 4A 3753 orl a,r2
0D2D 70 03 3754 jnz 00104$
3755 ; ../../include/ztex-flash2.h:693: spi_deselect();
0D2F 02 08 ED 3756 ljmp _spi_deselect
0D32 3757 00104$:
0D32 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 ; -----------------------------------------
0D33 3767 _reset_fpga:
3768 ; ../../include/ztex-fpga7.h:40: OEE = (OEE & ~bmBIT6) | bmBIT7;
0D33 AA B6 3769 mov r2,_OEE
0D35 74 BF 3770 mov a,#0xBF
0D37 5A 3771 anl a,r2
0D38 F5 F0 3772 mov b,a
0D3A 74 80 3773 mov a,#0x80
0D3C 45 F0 3774 orl a,b
0D3E F5 B6 3775 mov _OEE,a
3776 ; ../../include/ztex-fpga7.h:41: IOE = IOE & ~bmBIT7;
0D40 53 B1 7F 3777 anl _IOE,#0x7F
3778 ; ../../include/ztex-fpga7.h:42: wait(1);
0D43 90 00 01 3779 mov dptr,#0x0001
0D46 12 02 65 3780 lcall _wait
3781 ; ../../include/ztex-fpga7.h:43: IOE = IOE | bmBIT7;
0D49 43 B1 80 3782 orl _IOE,#0x80
3783 ; ../../include/ztex-fpga7.h:44: fpga_conf_initialized = 0;
0D4C 90 3A 27 3784 mov dptr,#_fpga_conf_initialized
0D4F E4 3785 clr a
0D50 F0 3786 movx @dptr,a
0D51 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 ; -----------------------------------------
0D52 3796 _init_fpga:
3797 ; ../../include/ztex-fpga7.h:51: IOE = IOE | bmBIT7;
0D52 43 B1 80 3798 orl _IOE,#0x80
3799 ; ../../include/ztex-fpga7.h:52: OEE = (OEE & ~bmBIT6) | bmBIT7;
0D55 AA B6 3800 mov r2,_OEE
0D57 74 BF 3801 mov a,#0xBF
0D59 5A 3802 anl a,r2
0D5A F5 F0 3803 mov b,a
0D5C 74 80 3804 mov a,#0x80
0D5E 45 F0 3805 orl a,b
0D60 F5 B6 3806 mov _OEE,a
3807 ; ../../include/ztex-fpga7.h:53: if ( ! (IOE & bmBIT6) ) {
0D62 E5 B1 3808 mov a,_IOE
0D64 20 E6 24 3809 jb acc.6,00102$
3810 ; ../../include/ztex-fpga7.h:55: IOE = IOE & ~bmBIT7; // PROG_B = 0
0D67 53 B1 7F 3811 anl _IOE,#0x7F
3812 ; ../../include/ztex-fpga7.h:56: OEA = (OEA & bmBIT2 ) | bmBIT4 | bmBIT5 | bmBIT6;
0D6A 74 04 3813 mov a,#0x04
0D6C 55 B2 3814 anl a,_OEA
0D6E F5 F0 3815 mov b,a
0D70 74 70 3816 mov a,#0x70
0D72 45 F0 3817 orl a,b
0D74 F5 B2 3818 mov _OEA,a
3819 ; ../../include/ztex-fpga7.h:57: IOA = (IOA & bmBIT2 ) | bmBIT5;
0D76 74 04 3820 mov a,#0x04
0D78 55 80 3821 anl a,_IOA
0D7A F5 F0 3822 mov b,a
0D7C 74 20 3823 mov a,#0x20
0D7E 45 F0 3824 orl a,b
0D80 F5 80 3825 mov _IOA,a
3826 ; ../../include/ztex-fpga7.h:58: wait(1);
0D82 90 00 01 3827 mov dptr,#0x0001
0D85 12 02 65 3828 lcall _wait
3829 ; ../../include/ztex-fpga7.h:59: IOE = IOE | bmBIT7; // PROG_B = 1
0D88 43 B1 80 3830 orl _IOE,#0x80
0D8B 3831 00102$:
3832 ; ../../include/ztex-fpga7.h:62: fpga_conf_initialized = 0;
0D8B 90 3A 27 3833 mov dptr,#_fpga_conf_initialized
0D8E E4 3834 clr a
0D8F F0 3835 movx @dptr,a
0D90 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 ; -----------------------------------------
0D91 3846 _init_fpga_configuration:
3847 ; ../../include/ztex-fpga7.h:75: IFCONFIG = bmBIT7;
0D91 90 E6 01 3848 mov dptr,#_IFCONFIG
0D94 74 80 3849 mov a,#0x80
0D96 F0 3850 movx @dptr,a
3851 ; ../../include/ezregs.h:46: __endasm;
3852
0D97 00 3853 nop
0D98 00 3854 nop
0D99 00 3855 nop
0D9A 00 3856 nop
3857
3858 ; ../../include/ztex-fpga7.h:77: PORTACFG = 0;
0D9B 90 E6 70 3859 mov dptr,#_PORTACFG
3860 ; ../../include/ztex-fpga7.h:78: PORTCCFG = 0;
0D9E E4 3861 clr a
0D9F F0 3862 movx @dptr,a
0DA0 90 E6 71 3863 mov dptr,#_PORTCCFG
0DA3 F0 3864 movx @dptr,a
3865 ; ../../include/ztex-fpga7.h:80: OOEA = OEA;
0DA4 90 3A 28 3866 mov dptr,#_OOEA
0DA7 E5 B2 3867 mov a,_OEA
0DA9 F0 3868 movx @dptr,a
3869 ; ../../include/ztex-fpga7.h:81: fpga_conf_initialized = 123;
0DAA 90 3A 27 3870 mov dptr,#_fpga_conf_initialized
0DAD 74 7B 3871 mov a,#0x7B
0DAF F0 3872 movx @dptr,a
3873 ; ../../include/ztex-fpga7.h:83: OEA &= bmBIT2; // only unsed PA bit
0DB0 53 B2 04 3874 anl _OEA,#0x04
3875 ; ../../include/ztex-fpga7.h:85: OEE = (OEE & ~bmBIT6) | bmBIT7;
0DB3 AA B6 3876 mov r2,_OEE
0DB5 74 BF 3877 mov a,#0xBF
0DB7 5A 3878 anl a,r2
0DB8 F5 F0 3879 mov b,a
0DBA 74 80 3880 mov a,#0x80
0DBC 45 F0 3881 orl a,b
0DBE F5 B6 3882 mov _OEE,a
3883 ; ../../include/ztex-fpga7.h:86: IOE = IOE & ~bmBIT7; // PROG_B = 0
0DC0 53 B1 7F 3884 anl _IOE,#0x7F
3885 ; ../../include/ztex-fpga7.h:89: OEA |= bmBIT1 | bmBIT4 | bmBIT5 | bmBIT6;
0DC3 43 B2 72 3886 orl _OEA,#0x72
3887 ; ../../include/ztex-fpga7.h:90: IOA = ( IOA & bmBIT2 ) | bmBIT1 | bmBIT5;
0DC6 74 04 3888 mov a,#0x04
0DC8 55 80 3889 anl a,_IOA
0DCA F5 F0 3890 mov b,a
0DCC 74 22 3891 mov a,#0x22
0DCE 45 F0 3892 orl a,b
0DD0 F5 80 3893 mov _IOA,a
3894 ; ../../include/ztex-fpga7.h:91: wait(5);
0DD2 90 00 05 3895 mov dptr,#0x0005
0DD5 12 02 65 3896 lcall _wait
3897 ; ../../include/ztex-fpga7.h:93: IOE = IOE | bmBIT7; // PROG_B = 1
0DD8 43 B1 80 3898 orl _IOE,#0x80
3899 ; ../../include/ztex-fpga7.h:94: IOA1 = 0; // CS = 0
0DDB C2 81 3900 clr _IOA1
3901 ; ../../include/ztex-fpga7.h:97: while (!IOA7 && k<65535)
0DDD 7A 00 3902 mov r2,#0x00
0DDF 7B 00 3903 mov r3,#0x00
0DE1 3904 00102$:
0DE1 20 87 20 3905 jb _IOA7,00104$
0DE4 8A 04 3906 mov ar4,r2
0DE6 8B 05 3907 mov ar5,r3
0DE8 7E 00 3908 mov r6,#0x00
0DEA 7F 00 3909 mov r7,#0x00
0DEC C3 3910 clr c
0DED EC 3911 mov a,r4
0DEE 94 FF 3912 subb a,#0xFF
0DF0 ED 3913 mov a,r5
0DF1 94 FF 3914 subb a,#0xFF
0DF3 EE 3915 mov a,r6
0DF4 94 00 3916 subb a,#0x00
0DF6 EF 3917 mov a,r7
0DF7 64 80 3918 xrl a,#0x80
0DF9 94 80 3919 subb a,#0x80
0DFB 50 07 3920 jnc 00104$
3921 ; ../../include/ztex-fpga7.h:98: k++;
0DFD 0A 3922 inc r2
0DFE BA 00 E0 3923 cjne r2,#0x00,00102$
0E01 0B 3924 inc r3
0E02 80 DD 3925 sjmp 00102$
0E04 3926 00104$:
3927 ; ../../include/ztex-fpga7.h:101: OEA |= bmBIT0; // ready for configuration
0E04 43 B2 01 3928 orl _OEA,#0x01
3929 ; ../../include/ztex-fpga7.h:103: fpga_init_b = IOA7 ? 200 : 100;
0E07 30 87 04 3930 jnb _IOA7,00107$
0E0A 7A C8 3931 mov r2,#0xC8
0E0C 80 02 3932 sjmp 00108$
0E0E 3933 00107$:
0E0E 7A 64 3934 mov r2,#0x64
0E10 3935 00108$:
0E10 90 3A 25 3936 mov dptr,#_fpga_init_b
0E13 EA 3937 mov a,r2
0E14 F0 3938 movx @dptr,a
3939 ; ../../include/ztex-fpga7.h:104: fpga_bytes = 0;
0E15 90 3A 21 3940 mov dptr,#_fpga_bytes
0E18 E4 3941 clr a
0E19 F0 3942 movx @dptr,a
0E1A A3 3943 inc dptr
0E1B F0 3944 movx @dptr,a
0E1C A3 3945 inc dptr
0E1D F0 3946 movx @dptr,a
0E1E A3 3947 inc dptr
0E1F F0 3948 movx @dptr,a
3949 ; ../../include/ztex-fpga7.h:105: fpga_checksum = 0;
0E20 90 3A 20 3950 mov dptr,#_fpga_checksum
0E23 E4 3951 clr a
0E24 F0 3952 movx @dptr,a
0E25 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 ; -----------------------------------------
0E26 3962 _post_fpga_config:
3963 ; ../../include/ztex-fpga7.h:113: }
0E26 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 ; -----------------------------------------
0E27 3974 _finish_fpga_configuration:
3975 ; ../../include/ztex-fpga7.h:120: fpga_init_b += IOA7 ? 22 : 11;
0E27 30 87 04 3976 jnb _IOA7,00109$
0E2A 7A 16 3977 mov r2,#0x16
0E2C 80 02 3978 sjmp 00110$
0E2E 3979 00109$:
0E2E 7A 0B 3980 mov r2,#0x0B
0E30 3981 00110$:
0E30 90 3A 25 3982 mov dptr,#_fpga_init_b
0E33 E0 3983 movx a,@dptr
0E34 FB 3984 mov r3,a
0E35 EA 3985 mov a,r2
0E36 2B 3986 add a,r3
0E37 F0 3987 movx @dptr,a
3988 ; ../../include/ztex-fpga7.h:122: for ( w=0; w<64; w++ ) {
0E38 7A 00 3989 mov r2,#0x00
0E3A 3990 00103$:
0E3A BA 40 00 3991 cjne r2,#0x40,00117$
0E3D 3992 00117$:
0E3D 50 07 3993 jnc 00106$
3994 ; ../../include/ztex-fpga7.h:123: IOA0 = 1; IOA0 = 0;
0E3F D2 80 3995 setb _IOA0
0E41 C2 80 3996 clr _IOA0
3997 ; ../../include/ztex-fpga7.h:122: for ( w=0; w<64; w++ ) {
0E43 0A 3998 inc r2
0E44 80 F4 3999 sjmp 00103$
0E46 4000 00106$:
4001 ; ../../include/ztex-fpga7.h:125: IOA1 = 1;
0E46 D2 81 4002 setb _IOA1
4003 ; ../../include/ztex-fpga7.h:126: IOA0 = 1; IOA0 = 0;
0E48 D2 80 4004 setb _IOA0
0E4A C2 80 4005 clr _IOA0
4006 ; ../../include/ztex-fpga7.h:127: IOA0 = 1; IOA0 = 0;
0E4C D2 80 4007 setb _IOA0
0E4E C2 80 4008 clr _IOA0
4009 ; ../../include/ztex-fpga7.h:128: IOA0 = 1; IOA0 = 0;
0E50 D2 80 4010 setb _IOA0
0E52 C2 80 4011 clr _IOA0
4012 ; ../../include/ztex-fpga7.h:129: IOA0 = 1; IOA0 = 0;
0E54 D2 80 4013 setb _IOA0
0E56 C2 80 4014 clr _IOA0
4015 ; ../../include/ztex-fpga7.h:131: OEA = OOEA;
0E58 90 3A 28 4016 mov dptr,#_OOEA
0E5B E0 4017 movx a,@dptr
0E5C F5 B2 4018 mov _OEA,a
4019 ; ../../include/ztex-fpga7.h:132: if ( IOE & bmBIT6 ) {
0E5E E5 B1 4020 mov a,_IOE
0E60 30 E6 03 4021 jnb acc.6,00107$
4022 ; ../../include/ztex-fpga7.h:133: post_fpga_config();
0E63 02 0E 26 4023 ljmp _post_fpga_config
0E66 4024 00107$:
0E66 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 ; -----------------------------------------
0E67 4035 _fpga_send_ep0:
4036 ; ../../include/ztex-fpga7.h:171: oOEC = OEC;
0E67 85 B4 15 4037 mov _fpga_send_ep0_oOEC_1_1,_OEC
4038 ; ../../include/ztex-fpga7.h:172: OEC = 255;
0E6A 75 B4 FF 4039 mov _OEC,#0xFF
4040 ; ../../include/ztex-fpga7.h:173: fpga_bytes += ep0_payload_transfer;
0E6D 90 3A 38 4041 mov dptr,#_ep0_payload_transfer
0E70 E0 4042 movx a,@dptr
0E71 FB 4043 mov r3,a
0E72 90 3A 21 4044 mov dptr,#_fpga_bytes
0E75 E0 4045 movx a,@dptr
0E76 FC 4046 mov r4,a
0E77 A3 4047 inc dptr
0E78 E0 4048 movx a,@dptr
0E79 FD 4049 mov r5,a
0E7A A3 4050 inc dptr
0E7B E0 4051 movx a,@dptr
0E7C FE 4052 mov r6,a
0E7D A3 4053 inc dptr
0E7E E0 4054 movx a,@dptr
0E7F FF 4055 mov r7,a
0E80 78 00 4056 mov r0,#0x00
0E82 79 00 4057 mov r1,#0x00
0E84 7A 00 4058 mov r2,#0x00
0E86 90 3A 21 4059 mov dptr,#_fpga_bytes
0E89 EB 4060 mov a,r3
0E8A 2C 4061 add a,r4
0E8B F0 4062 movx @dptr,a
0E8C E8 4063 mov a,r0
0E8D 3D 4064 addc a,r5
0E8E A3 4065 inc dptr
0E8F F0 4066 movx @dptr,a
0E90 E9 4067 mov a,r1
0E91 3E 4068 addc a,r6
0E92 A3 4069 inc dptr
0E93 F0 4070 movx @dptr,a
0E94 EA 4071 mov a,r2
0E95 3F 4072 addc a,r7
0E96 A3 4073 inc dptr
0E97 F0 4074 movx @dptr,a
4075 ; ../../include/ztex-fpga7.h:201: OEC = oOEC;
4076
0E98 90 E6 8B 4077 mov dptr,#_EP0BCL
0E9B E0 4078 movx a,@dptr
0E9C 60 22 4079 jz 010000$
0E9E FA 4080 mov r2,a
0E9F 75 9B 40 4081 mov _AUTOPTRL1,#(_EP0BUF)
0EA2 75 9A E7 4082 mov _AUTOPTRH1,#(_EP0BUF >> 8)
0EA5 75 AF 07 4083 mov _AUTOPTRSETUP,#0x07
0EA8 90 3A 20 4084 mov dptr,#_fpga_checksum
0EAB E0 4085 movx a,@dptr
0EAC F9 4086 mov r1,a
0EAD 90 E6 7B 4087 mov dptr,#_XAUTODAT1
0EB0 4088 010001$:
0EB0 E0 4089 movx a,@dptr
0EB1 F5 A0 4090 mov _IOC,a
0EB3 D2 80 4091 setb _IOA0
0EB5 29 4092 add a,r1
0EB6 F9 4093 mov r1,a
0EB7 C2 80 4094 clr _IOA0
0EB9 DA F5 4095 djnz r2, 010001$
4096 ; # 194 "../../include/ztex-fpga7.h"
4097
0EBB 90 3A 20 4098 mov dptr,#_fpga_checksum
0EBE E9 4099 mov a,r1
0EBF F0 4100 movx @dptr,a
4101
0EC0 4102 010000$:
4103
4104 ; ../../include/ztex-fpga7.h:202: if ( EP0BCL<64 ) {
0EC0 85 15 B4 4105 mov _OEC,_fpga_send_ep0_oOEC_1_1
4106 ; ../../include/ztex-fpga7.h:203: finish_fpga_configuration();
0EC3 90 E6 8B 4107 mov dptr,#_EP0BCL
0EC6 E0 4108 movx a,@dptr
0EC7 FA 4109 mov r2,a
0EC8 BA 40 00 4110 cjne r2,#0x40,00106$
0ECB 4111 00106$:
0ECB 50 03 4112 jnc 00103$
4113 ; ../../include/ztex-fpga7.h:204: }
0ECD 02 0E 27 4114 ljmp _finish_fpga_configuration
0ED0 4115 00103$:
0ED0 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 ; -----------------------------------------
0ED1 4127 _fpga_configure_from_flash:
4128 ; ../../include/ztex-fpga7.h:231: if ( ( force == 0 ) && ( IOE & bmBIT6 ) ) {
0ED1 E5 82 4129 mov a,dpl
0ED3 FA 4130 mov r2,a
0ED4 70 0F 4131 jnz 00102$
0ED6 E5 B1 4132 mov a,_IOE
0ED8 30 E6 0A 4133 jnb acc.6,00102$
4134 ; ../../include/ztex-fpga7.h:232: fpga_flash_result = 1;
0EDB 90 3A 26 4135 mov dptr,#_fpga_flash_result
0EDE 74 01 4136 mov a,#0x01
0EE0 F0 4137 movx @dptr,a
4138 ; ../../include/ztex-fpga7.h:233: return 1;
0EE1 75 82 01 4139 mov dpl,#0x01
0EE4 22 4140 ret
0EE5 4141 00102$:
4142 ; ../../include/ztex-fpga7.h:236: fpga_flash_result = 0;
0EE5 90 3A 26 4143 mov dptr,#_fpga_flash_result
0EE8 E4 4144 clr a
0EE9 F0 4145 movx @dptr,a
4146 ; ../../include/ztex-fpga7.h:238: IFCONFIG = bmBIT7;
0EEA 90 E6 01 4147 mov dptr,#_IFCONFIG
0EED 74 80 4148 mov a,#0x80
0EEF F0 4149 movx @dptr,a
4150 ; ../../include/ezregs.h:46: __endasm;
4151
0EF0 00 4152 nop
0EF1 00 4153 nop
0EF2 00 4154 nop
0EF3 00 4155 nop
4156
4157 ; ../../include/ztex-fpga7.h:240: PORTACFG = 0;
0EF4 90 E6 70 4158 mov dptr,#_PORTACFG
4159 ; ../../include/ztex-fpga7.h:241: PORTCCFG = 0;
0EF7 E4 4160 clr a
0EF8 F0 4161 movx @dptr,a
0EF9 90 E6 71 4162 mov dptr,#_PORTCCFG
0EFC F0 4163 movx @dptr,a
4164 ; ../../include/ztex-fpga7.h:244: OEA &= bmBIT2; // only unsed PA bit
0EFD 53 B2 04 4165 anl _OEA,#0x04
4166 ; ../../include/ztex-fpga7.h:247: OEC &= ~bmBIT0;
0F00 53 B4 FE 4167 anl _OEC,#0xFE
4168 ; ../../include/ztex-fpga7.h:249: OEE = (OEE & ~bmBIT6) | bmBIT7;
0F03 AA B6 4169 mov r2,_OEE
0F05 74 BF 4170 mov a,#0xBF
0F07 5A 4171 anl a,r2
0F08 F5 F0 4172 mov b,a
0F0A 74 80 4173 mov a,#0x80
0F0C 45 F0 4174 orl a,b
0F0E F5 B6 4175 mov _OEE,a
4176 ; ../../include/ztex-fpga7.h:250: IOE = IOE & ~bmBIT7; // PROG_B = 0
0F10 53 B1 7F 4177 anl _IOE,#0x7F
4178 ; ../../include/ztex-fpga7.h:253: OEA |= bmBIT4 | bmBIT5;
0F13 43 B2 30 4179 orl _OEA,#0x30
4180 ; ../../include/ztex-fpga7.h:254: IOA = ( IOA & bmBIT2 ) | bmBIT4;
0F16 74 04 4181 mov a,#0x04
0F18 55 80 4182 anl a,_IOA
0F1A F5 F0 4183 mov b,a
0F1C 74 10 4184 mov a,#0x10
0F1E 45 F0 4185 orl a,b
0F20 F5 80 4186 mov _IOA,a
4187 ; ../../include/ztex-fpga7.h:255: wait(1);
0F22 90 00 01 4188 mov dptr,#0x0001
0F25 12 02 65 4189 lcall _wait
4190 ; ../../include/ztex-fpga7.h:257: IOE = IOE | bmBIT7; // PROG_B = 1
0F28 43 B1 80 4191 orl _IOE,#0x80
4192 ; ../../include/ztex-fpga7.h:260: wait(20);
0F2B 90 00 14 4193 mov dptr,#0x0014
0F2E 12 02 65 4194 lcall _wait
4195 ; ../../include/ztex-fpga7.h:261: for (i=0; IOA7 && (!IOA1) && i<4000; i++ ) {
0F31 7A 00 4196 mov r2,#0x00
0F33 7B 00 4197 mov r3,#0x00
0F35 4198 00109$:
0F35 30 87 21 4199 jnb _IOA7,00112$
0F38 20 81 1E 4200 jb _IOA1,00112$
0F3B C3 4201 clr c
0F3C EA 4202 mov a,r2
0F3D 94 A0 4203 subb a,#0xA0
0F3F EB 4204 mov a,r3
0F40 94 0F 4205 subb a,#0x0F
0F42 50 15 4206 jnc 00112$
4207 ; ../../include/ztex-fpga7.h:262: wait(1);
0F44 90 00 01 4208 mov dptr,#0x0001
0F47 C0 02 4209 push ar2
0F49 C0 03 4210 push ar3
0F4B 12 02 65 4211 lcall _wait
0F4E D0 03 4212 pop ar3
0F50 D0 02 4213 pop ar2
4214 ; ../../include/ztex-fpga7.h:261: for (i=0; IOA7 && (!IOA1) && i<4000; i++ ) {
0F52 0A 4215 inc r2
0F53 BA 00 DF 4216 cjne r2,#0x00,00109$
0F56 0B 4217 inc r3
0F57 80 DC 4218 sjmp 00109$
0F59 4219 00112$:
4220 ; ../../include/ztex-fpga7.h:265: wait(1);
0F59 90 00 01 4221 mov dptr,#0x0001
0F5C 12 02 65 4222 lcall _wait
4223 ; ../../include/ztex-fpga7.h:267: if ( IOE & bmBIT6 ) {
0F5F E5 B1 4224 mov a,_IOE
0F61 30 E6 05 4225 jnb acc.6,00105$
4226 ; ../../include/ztex-fpga7.h:269: post_fpga_config();
0F64 12 0E 26 4227 lcall _post_fpga_config
0F67 80 09 4228 sjmp 00106$
0F69 4229 00105$:
4230 ; ../../include/ztex-fpga7.h:274: init_fpga();
0F69 12 0D 52 4231 lcall _init_fpga
4232 ; ../../include/ztex-fpga7.h:275: fpga_flash_result = 4;
0F6C 90 3A 26 4233 mov dptr,#_fpga_flash_result
0F6F 74 04 4234 mov a,#0x04
0F71 F0 4235 movx @dptr,a
0F72 4236 00106$:
4237 ; ../../include/ztex-fpga7.h:278: return fpga_flash_result;
0F72 90 3A 26 4238 mov dptr,#_fpga_flash_result
0F75 E0 4239 movx a,@dptr
0F76 F5 82 4240 mov dpl,a
0F78 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 ; -----------------------------------------
0F79 4253 _fpga_first_free_sector:
4254 ; ../../include/ztex-fpga-flash2.h:36: if ( config_data_valid ) {
0F79 90 3A 06 4255 mov dptr,#_config_data_valid
0F7C E0 4256 movx a,@dptr
0F7D FA 4257 mov r2,a
0F7E 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
0F80 75 10 1A 4260 mov _mac_eeprom_read_PARM_2,#0x1A
0F83 75 11 04 4261 mov _mac_eeprom_read_PARM_3,#0x04
0F86 90 3A 29 4262 mov dptr,#_fpga_first_free_sector_buf_1_1
0F89 12 05 D4 4263 lcall _mac_eeprom_read
4264 ; ../../include/ztex-fpga-flash2.h:38: if ( buf[1] != 0 ) {
0F8C 90 3A 2B 4265 mov dptr,#(_fpga_first_free_sector_buf_1_1 + 0x0002)
0F8F E0 4266 movx a,@dptr
0F90 FA 4267 mov r2,a
0F91 A3 4268 inc dptr
0F92 E0 4269 movx a,@dptr
0F93 FB 4270 mov r3,a
0F94 4A 4271 orl a,r2
0F95 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;
0F97 90 3A 29 4274 mov dptr,#_fpga_first_free_sector_buf_1_1
0F9A E0 4275 movx a,@dptr
0F9B FC 4276 mov r4,a
0F9C A3 4277 inc dptr
0F9D E0 4278 movx a,@dptr
0F9E FD 4279 mov r5,a
0F9F C3 4280 clr c
0FA0 EC 4281 mov a,r4
0FA1 9A 4282 subb a,r2
0FA2 ED 4283 mov a,r5
0FA3 9B 4284 subb a,r3
0FA4 40 04 4285 jc 00115$
0FA6 8C 02 4286 mov ar2,r4
0FA8 8D 03 4287 mov ar3,r5
0FAA 4288 00115$:
0FAA 1A 4289 dec r2
0FAB BA FF 01 4290 cjne r2,#0xff,00127$
0FAE 1B 4291 dec r3
0FAF 4292 00127$:
0FAF 90 3A 08 4293 mov dptr,#_flash_sector_size
0FB2 E0 4294 movx a,@dptr
0FB3 FC 4295 mov r4,a
0FB4 A3 4296 inc dptr
0FB5 E0 4297 movx a,@dptr
0FB6 7D 00 4298 mov r5,#0x00
0FB8 EC 4299 mov a,r4
0FB9 24 F4 4300 add a,#0xf4
0FBB FC 4301 mov r4,a
0FBC ED 4302 mov a,r5
0FBD 34 FF 4303 addc a,#0xff
0FBF FD 4304 mov r5,a
0FC0 8C F0 4305 mov b,r4
0FC2 05 F0 4306 inc b
0FC4 80 07 4307 sjmp 00129$
0FC6 4308 00128$:
0FC6 C3 4309 clr c
0FC7 EB 4310 mov a,r3
0FC8 13 4311 rrc a
0FC9 FB 4312 mov r3,a
0FCA EA 4313 mov a,r2
0FCB 13 4314 rrc a
0FCC FA 4315 mov r2,a
0FCD 4316 00129$:
0FCD D5 F0 F6 4317 djnz b,00128$
0FD0 8A 82 4318 mov dpl,r2
0FD2 8B 83 4319 mov dph,r3
0FD4 A3 4320 inc dptr
0FD5 22 4321 ret
0FD6 4322 00104$:
4323 ; ../../include/ztex-fpga-flash2.h:42: #endif
0FD6 90 00 00 4324 mov dptr,#0x0000
0FD9 12 09 63 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++ );
0FDC 7A 00 4327 mov r2,#0x00
0FDE 4328 00108$:
0FDE BA 08 00 4329 cjne r2,#0x08,00130$
0FE1 4330 00130$:
0FE1 50 16 4331 jnc 00111$
0FE3 C0 02 4332 push ar2
0FE5 12 07 E9 4333 lcall _flash_read_byte
0FE8 AB 82 4334 mov r3,dpl
0FEA D0 02 4335 pop ar2
0FEC EA 4336 mov a,r2
0FED 90 1E 55 4337 mov dptr,#_fpga_flash_boot_id
0FF0 93 4338 movc a,@a+dptr
0FF1 FC 4339 mov r4,a
0FF2 EB 4340 mov a,r3
0FF3 B5 04 03 4341 cjne a,ar4,00111$
0FF6 0A 4342 inc r2
0FF7 80 E5 4343 sjmp 00108$
0FF9 4344 00111$:
4345 ; ../../include/ztex-fpga-flash2.h:45: if ( i != 8 ) {
0FF9 BA 08 02 4346 cjne r2,#0x08,00134$
0FFC 80 1A 4347 sjmp 00106$
0FFE 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
0FFE 7B 00 4350 mov r3,#0x00
1000 90 3A 08 4351 mov dptr,#_flash_sector_size
1003 E0 4352 movx a,@dptr
1004 FC 4353 mov r4,a
1005 A3 4354 inc dptr
1006 E0 4355 movx a,@dptr
1007 FD 4356 mov r5,a
1008 EC 4357 mov a,r4
1009 C3 4358 clr c
100A 9A 4359 subb a,r2
100B F5 82 4360 mov dpl,a
100D ED 4361 mov a,r5
100E 9B 4362 subb a,r3
100F F5 83 4363 mov dph,a
1011 12 09 E9 4364 lcall _flash_read_finish
4365 ; ../../include/ztex-fpga-flash2.h:47: return 0;
1014 90 00 00 4366 mov dptr,#0x0000
1017 22 4367 ret
1018 4368 00106$:
4369 ; ../../include/ztex-fpga-flash2.h:49: i=flash_read_byte();
1018 12 07 E9 4370 lcall _flash_read_byte
101B AA 82 4371 mov r2,dpl
4372 ; ../../include/ztex-fpga-flash2.h:50: j=flash_read_byte();
101D C0 02 4373 push ar2
101F 12 07 E9 4374 lcall _flash_read_byte
1022 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
1024 90 3A 08 4377 mov dptr,#_flash_sector_size
1027 E0 4378 movx a,@dptr
1028 FC 4379 mov r4,a
1029 A3 4380 inc dptr
102A E0 4381 movx a,@dptr
102B FD 4382 mov r5,a
102C EC 4383 mov a,r4
102D 24 F6 4384 add a,#0xf6
102F F5 82 4385 mov dpl,a
1031 ED 4386 mov a,r5
1032 34 FF 4387 addc a,#0xff
1034 F5 83 4388 mov dph,a
1036 C0 03 4389 push ar3
1038 12 09 E9 4390 lcall _flash_read_finish
103B D0 03 4391 pop ar3
103D D0 02 4392 pop ar2
4393 ; ../../include/ztex-fpga-flash2.h:53: return (i | (j<<8))+1;
103F 8B 04 4394 mov ar4,r3
1041 E4 4395 clr a
1042 FB 4396 mov r3,a
1043 FD 4397 mov r5,a
1044 EA 4398 mov a,r2
1045 42 03 4399 orl ar3,a
1047 ED 4400 mov a,r5
1048 42 04 4401 orl ar4,a
104A 8B 82 4402 mov dpl,r3
104C 8C 83 4403 mov dph,r4
104E A3 4404 inc dptr
104F 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 ; -----------------------------------------
1050 4416 _fpga_configure_from_flash_init:
4417 ; ../../include/ztex-fpga-flash2.h:66: if ( config_data_valid ) {
1050 90 3A 06 4418 mov dptr,#_config_data_valid
1053 E0 4419 movx a,@dptr
1054 FA 4420 mov r2,a
1055 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
1057 75 10 1A 4423 mov _mac_eeprom_read_PARM_2,#0x1A
105A 75 11 04 4424 mov _mac_eeprom_read_PARM_3,#0x04
105D 90 3A 2D 4425 mov dptr,#_fpga_configure_from_flash_init_buf_1_1
1060 12 05 D4 4426 lcall _mac_eeprom_read
4427 ; ../../include/ztex-fpga-flash2.h:68: if ( buf[1] != 0 ) {
1063 90 3A 2F 4428 mov dptr,#(_fpga_configure_from_flash_init_buf_1_1 + 0x0002)
1066 E0 4429 movx a,@dptr
1067 FA 4430 mov r2,a
1068 A3 4431 inc dptr
1069 E0 4432 movx a,@dptr
106A FB 4433 mov r3,a
106B 4A 4434 orl a,r2
106C 60 18 4435 jz 00106$
4436 ; ../../include/ztex-fpga-flash2.h:69: if ( buf[0] == 0 ) {
106E 90 3A 2D 4437 mov dptr,#_fpga_configure_from_flash_init_buf_1_1
1071 E0 4438 movx a,@dptr
1072 FA 4439 mov r2,a
1073 A3 4440 inc dptr
1074 E0 4441 movx a,@dptr
1075 FB 4442 mov r3,a
1076 4A 4443 orl a,r2
1077 60 03 4444 jz 00140$
1079 02 11 13 4445 ljmp 00113$
107C 4446 00140$:
4447 ; ../../include/ztex-fpga-flash2.h:70: return fpga_flash_result = 3;
107C 90 3A 26 4448 mov dptr,#_fpga_flash_result
107F 74 03 4449 mov a,#0x03
1081 F0 4450 movx @dptr,a
1082 75 82 03 4451 mov dpl,#0x03
1085 22 4452 ret
4453 ; ../../include/ztex-fpga-flash2.h:73: goto flash_config;
1086 4454 00106$:
4455 ; ../../include/ztex-fpga-flash2.h:80: if ( flash_read_init( 0 ) ) // prepare reading sector 0
1086 90 00 00 4456 mov dptr,#0x0000
1089 12 09 63 4457 lcall _flash_read_init
108C E5 82 4458 mov a,dpl
108E 60 0A 4459 jz 00132$
4460 ; ../../include/ztex-fpga-flash2.h:81: return fpga_flash_result = 2;
1090 90 3A 26 4461 mov dptr,#_fpga_flash_result
1093 74 02 4462 mov a,#0x02
1095 F0 4463 movx @dptr,a
1096 75 82 02 4464 mov dpl,#0x02
1099 22 4465 ret
4466 ; ../../include/ztex-fpga-flash2.h:82: for ( i=0; i<8 && flash_read_byte()==fpga_flash_boot_id[i]; i++ );
109A 4467 00132$:
109A 7A 00 4468 mov r2,#0x00
109C 4469 00120$:
109C BA 08 00 4470 cjne r2,#0x08,00142$
109F 4471 00142$:
109F 50 16 4472 jnc 00123$
10A1 C0 02 4473 push ar2
10A3 12 07 E9 4474 lcall _flash_read_byte
10A6 AB 82 4475 mov r3,dpl
10A8 D0 02 4476 pop ar2
10AA EA 4477 mov a,r2
10AB 90 1E 55 4478 mov dptr,#_fpga_flash_boot_id
10AE 93 4479 movc a,@a+dptr
10AF FC 4480 mov r4,a
10B0 EB 4481 mov a,r3
10B1 B5 04 03 4482 cjne a,ar4,00123$
10B4 0A 4483 inc r2
10B5 80 E5 4484 sjmp 00120$
10B7 4485 00123$:
4486 ; ../../include/ztex-fpga-flash2.h:83: if ( i != 8 ) {
10B7 BA 08 02 4487 cjne r2,#0x08,00146$
10BA 80 20 4488 sjmp 00110$
10BC 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
10BC 7B 00 4491 mov r3,#0x00
10BE 90 3A 08 4492 mov dptr,#_flash_sector_size
10C1 E0 4493 movx a,@dptr
10C2 FC 4494 mov r4,a
10C3 A3 4495 inc dptr
10C4 E0 4496 movx a,@dptr
10C5 FD 4497 mov r5,a
10C6 EC 4498 mov a,r4
10C7 C3 4499 clr c
10C8 9A 4500 subb a,r2
10C9 F5 82 4501 mov dpl,a
10CB ED 4502 mov a,r5
10CC 9B 4503 subb a,r3
10CD F5 83 4504 mov dph,a
10CF 12 09 E9 4505 lcall _flash_read_finish
4506 ; ../../include/ztex-fpga-flash2.h:85: return fpga_flash_result = 3;
10D2 90 3A 26 4507 mov dptr,#_fpga_flash_result
10D5 74 03 4508 mov a,#0x03
10D7 F0 4509 movx @dptr,a
10D8 75 82 03 4510 mov dpl,#0x03
10DB 22 4511 ret
10DC 4512 00110$:
4513 ; ../../include/ztex-fpga-flash2.h:87: i = flash_read_byte();
10DC 12 07 E9 4514 lcall _flash_read_byte
10DF AA 82 4515 mov r2,dpl
4516 ; ../../include/ztex-fpga-flash2.h:88: i |= flash_read_byte();
10E1 C0 02 4517 push ar2
10E3 12 07 E9 4518 lcall _flash_read_byte
10E6 AB 82 4519 mov r3,dpl
10E8 D0 02 4520 pop ar2
10EA EB 4521 mov a,r3
10EB 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
10ED 90 3A 08 4524 mov dptr,#_flash_sector_size
10F0 E0 4525 movx a,@dptr
10F1 FB 4526 mov r3,a
10F2 A3 4527 inc dptr
10F3 E0 4528 movx a,@dptr
10F4 FC 4529 mov r4,a
10F5 EB 4530 mov a,r3
10F6 24 F6 4531 add a,#0xf6
10F8 F5 82 4532 mov dpl,a
10FA EC 4533 mov a,r4
10FB 34 FF 4534 addc a,#0xff
10FD F5 83 4535 mov dph,a
10FF C0 02 4536 push ar2
1101 12 09 E9 4537 lcall _flash_read_finish
1104 D0 02 4538 pop ar2
4539 ; ../../include/ztex-fpga-flash2.h:90: if ( i==0 )
1106 EA 4540 mov a,r2
1107 70 0A 4541 jnz 00113$
4542 ; ../../include/ztex-fpga-flash2.h:91: return fpga_flash_result = 3;
1109 90 3A 26 4543 mov dptr,#_fpga_flash_result
110C 74 03 4544 mov a,#0x03
110E F0 4545 movx @dptr,a
110F 75 82 03 4546 mov dpl,#0x03
4547 ; ../../include/ztex-fpga-flash2.h:93: flash_config:
1112 22 4548 ret
1113 4549 00113$:
4550 ; ../../include/ztex-fpga-flash2.h:94: fpga_flash_result = fpga_configure_from_flash(0);
1113 75 82 00 4551 mov dpl,#0x00
1116 12 0E D1 4552 lcall _fpga_configure_from_flash
1119 AA 82 4553 mov r2,dpl
111B 90 3A 26 4554 mov dptr,#_fpga_flash_result
111E EA 4555 mov a,r2
111F F0 4556 movx @dptr,a
4557 ; ../../include/ztex-fpga-flash2.h:95: if ( fpga_flash_result == 1 ) {
1120 BA 01 05 4558 cjne r2,#0x01,00117$
4559 ; ../../include/ztex-fpga-flash2.h:96: post_fpga_config();
1123 12 0E 26 4560 lcall _post_fpga_config
1126 80 0F 4561 sjmp 00118$
1128 4562 00117$:
4563 ; ../../include/ztex-fpga-flash2.h:98: else if ( fpga_flash_result == 4 ) {
1128 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
112B 75 82 00 4566 mov dpl,#0x00
112E 12 0E D1 4567 lcall _fpga_configure_from_flash
1131 E5 82 4568 mov a,dpl
1133 90 3A 26 4569 mov dptr,#_fpga_flash_result
1136 F0 4570 movx @dptr,a
1137 4571 00118$:
4572 ; ../../include/ztex-fpga-flash2.h:101: return fpga_flash_result;
1137 90 3A 26 4573 mov dptr,#_fpga_flash_result
113A E0 4574 movx a,@dptr
113B F5 82 4575 mov dpl,a
113D 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 ; -----------------------------------------
113E 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 12 4601 .db 18
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
113E 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 ; -----------------------------------------
113F 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;
113F 90 E6 83 4654 mov dptr,#_TOGCTL
1142 E4 4655 clr a
1143 F0 4656 movx @dptr,a
1144 74 20 4657 mov a,#0x20
1146 F0 4658 movx @dptr,a
1147 74 10 4659 mov a,#0x10
1149 F0 4660 movx @dptr,a
114A 74 30 4661 mov a,#0x30
114C 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;
114D 90 E6 83 4667 mov dptr,#_TOGCTL
1150 74 01 4668 mov a,#0x01
1152 F0 4669 movx @dptr,a
1153 74 21 4670 mov a,#0x21
1155 F0 4671 movx @dptr,a
1156 74 11 4672 mov a,#0x11
1158 F0 4673 movx @dptr,a
1159 74 31 4674 mov a,#0x31
115B F0 4675 movx @dptr,a
115C 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 ; -----------------------------------------
115D 4689 _sendStringDescriptor:
115D AA 82 4690 mov r2,dpl
4691 ; ../../include/ztex-isr.h:71: if ( size > 31) size = 31;
115F E5 17 4692 mov a,_sendStringDescriptor_PARM_3
1161 24 E0 4693 add a,#0xff - 0x1F
1163 50 03 4694 jnc 00102$
1165 75 17 1F 4695 mov _sendStringDescriptor_PARM_3,#0x1F
1168 4696 00102$:
4697 ; ../../include/ztex-isr.h:72: if (SETUPDAT[7] == 0 && SETUPDAT[6]<size ) size = SETUPDAT[6];
1168 90 E6 BF 4698 mov dptr,#(_SETUPDAT + 0x0007)
116B E0 4699 movx a,@dptr
116C 70 10 4700 jnz 00104$
116E 90 E6 BE 4701 mov dptr,#(_SETUPDAT + 0x0006)
1171 E0 4702 movx a,@dptr
1172 FB 4703 mov r3,a
1173 C3 4704 clr c
1174 95 17 4705 subb a,_sendStringDescriptor_PARM_3
1176 50 06 4706 jnc 00104$
1178 90 E6 BE 4707 mov dptr,#(_SETUPDAT + 0x0006)
117B E0 4708 movx a,@dptr
117C F5 17 4709 mov _sendStringDescriptor_PARM_3,a
117E 4710 00104$:
4711 ; ../../include/ztex-isr.h:73: AUTOPTRSETUP = 7;
117E 75 AF 07 4712 mov _AUTOPTRSETUP,#0x07
4713 ; ../../include/ztex-isr.h:74: AUTOPTRL1 = loAddr;
1181 8A 9B 4714 mov _AUTOPTRL1,r2
4715 ; ../../include/ztex-isr.h:75: AUTOPTRH1 = hiAddr;
1183 85 16 9A 4716 mov _AUTOPTRH1,_sendStringDescriptor_PARM_2
4717 ; ../../include/ztex-isr.h:76: AUTOPTRL2 = (BYTE)(((unsigned short)(&EP0BUF))+1);
1186 75 9E 41 4718 mov _AUTOPTRL2,#0x41
4719 ; ../../include/ztex-isr.h:77: AUTOPTRH2 = (BYTE)((((unsigned short)(&EP0BUF))+1) >> 8);
1189 75 9D E7 4720 mov _AUTOPTRH2,#0xE7
4721 ; ../../include/ztex-isr.h:78: XAUTODAT2 = 3;
118C 90 E6 7C 4722 mov dptr,#_XAUTODAT2
118F 74 03 4723 mov a,#0x03
1191 F0 4724 movx @dptr,a
4725 ; ../../include/ztex-isr.h:79: for (i=0; i<size; i++) {
1192 7A 00 4726 mov r2,#0x00
1194 4727 00106$:
1194 C3 4728 clr c
1195 EA 4729 mov a,r2
1196 95 17 4730 subb a,_sendStringDescriptor_PARM_3
1198 50 11 4731 jnc 00109$
4732 ; ../../include/ztex-isr.h:80: XAUTODAT2 = XAUTODAT1;
119A 90 E6 7B 4733 mov dptr,#_XAUTODAT1
119D E0 4734 movx a,@dptr
119E FB 4735 mov r3,a
119F 90 E6 7C 4736 mov dptr,#_XAUTODAT2
11A2 F0 4737 movx @dptr,a
4738 ; ../../include/ztex-isr.h:81: XAUTODAT2 = 0;
11A3 90 E6 7C 4739 mov dptr,#_XAUTODAT2
11A6 E4 4740 clr a
11A7 F0 4741 movx @dptr,a
4742 ; ../../include/ztex-isr.h:79: for (i=0; i<size; i++) {
11A8 0A 4743 inc r2
11A9 80 E9 4744 sjmp 00106$
11AB 4745 00109$:
4746 ; ../../include/ztex-isr.h:83: i = (size+1) << 1;
11AB E5 17 4747 mov a,_sendStringDescriptor_PARM_3
11AD 04 4748 inc a
4749 ; ../../include/ztex-isr.h:84: EP0BUF[0] = i;
11AE 25 E0 4750 add a,acc
11B0 FA 4751 mov r2,a
11B1 90 E7 40 4752 mov dptr,#_EP0BUF
11B4 F0 4753 movx @dptr,a
4754 ; ../../include/ztex-isr.h:85: EP0BUF[1] = 3;
11B5 90 E7 41 4755 mov dptr,#(_EP0BUF + 0x0001)
11B8 74 03 4756 mov a,#0x03
11BA F0 4757 movx @dptr,a
4758 ; ../../include/ztex-isr.h:86: EP0BCH = 0;
11BB 90 E6 8A 4759 mov dptr,#_EP0BCH
11BE E4 4760 clr a
11BF F0 4761 movx @dptr,a
4762 ; ../../include/ztex-isr.h:87: EP0BCL = i;
11C0 90 E6 8B 4763 mov dptr,#_EP0BCL
11C3 EA 4764 mov a,r2
11C4 F0 4765 movx @dptr,a
11C5 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 ; -----------------------------------------
11C6 4775 _ep0_payload_update:
4776 ; ../../include/ztex-isr.h:94: ep0_payload_transfer = ( ep0_payload_remaining > 64 ) ? 64 : ep0_payload_remaining;
11C6 90 3A 36 4777 mov dptr,#_ep0_payload_remaining
11C9 E0 4778 movx a,@dptr
11CA FA 4779 mov r2,a
11CB A3 4780 inc dptr
11CC E0 4781 movx a,@dptr
11CD FB 4782 mov r3,a
11CE C3 4783 clr c
11CF 74 40 4784 mov a,#0x40
11D1 9A 4785 subb a,r2
11D2 E4 4786 clr a
11D3 9B 4787 subb a,r3
11D4 50 06 4788 jnc 00103$
11D6 7C 40 4789 mov r4,#0x40
11D8 7D 00 4790 mov r5,#0x00
11DA 80 04 4791 sjmp 00104$
11DC 4792 00103$:
11DC 8A 04 4793 mov ar4,r2
11DE 8B 05 4794 mov ar5,r3
11E0 4795 00104$:
11E0 90 3A 38 4796 mov dptr,#_ep0_payload_transfer
11E3 EC 4797 mov a,r4
11E4 F0 4798 movx @dptr,a
4799 ; ../../include/ztex-isr.h:95: ep0_payload_remaining -= ep0_payload_transfer;
11E5 7D 00 4800 mov r5,#0x00
11E7 90 3A 36 4801 mov dptr,#_ep0_payload_remaining
11EA EA 4802 mov a,r2
11EB C3 4803 clr c
11EC 9C 4804 subb a,r4
11ED F0 4805 movx @dptr,a
11EE EB 4806 mov a,r3
11EF 9D 4807 subb a,r5
11F0 A3 4808 inc dptr
11F1 F0 4809 movx @dptr,a
11F2 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 ; -----------------------------------------
11F3 4819 _ep0_vendor_cmd_su:
4820 ; ../../include/ztex-isr.h:103: switch ( ep0_prev_setup_request ) {
11F3 90 3A 39 4821 mov dptr,#_ep0_prev_setup_request
11F6 E0 4822 movx a,@dptr
11F7 FA 4823 mov r2,a
11F8 BA 31 02 4824 cjne r2,#0x31,00123$
11FB 80 77 4825 sjmp 00107$
11FD 4826 00123$:
11FD BA 32 02 4827 cjne r2,#0x32,00124$
1200 80 75 4828 sjmp 00108$
1202 4829 00124$:
1202 BA 39 02 4830 cjne r2,#0x39,00125$
1205 80 0A 4831 sjmp 00101$
1207 4832 00125$:
1207 BA 3C 02 4833 cjne r2,#0x3C,00126$
120A 80 29 4834 sjmp 00102$
120C 4835 00126$:
4836 ; ../../include/ztex-conf.h:123: case $0:
120C BA 42 74 4837 cjne r2,#0x42,00111$
120F 80 2D 4838 sjmp 00103$
1211 4839 00101$:
4840 ; ../../include/ztex-eeprom.h:236: eeprom_write_checksum = 0;
1211 90 3A 04 4841 mov dptr,#_eeprom_write_checksum
4842 ; ../../include/ztex-eeprom.h:237: eeprom_write_bytes = 0;
1214 E4 4843 clr a
1215 F0 4844 movx @dptr,a
1216 90 3A 02 4845 mov dptr,#_eeprom_write_bytes
1219 F0 4846 movx @dptr,a
121A A3 4847 inc dptr
121B F0 4848 movx @dptr,a
4849 ; ../../include/ztex-eeprom.h:238: eeprom_addr = ( SETUPDAT[3] << 8) | SETUPDAT[2]; // Address
121C 90 E6 BB 4850 mov dptr,#(_SETUPDAT + 0x0003)
121F E0 4851 movx a,@dptr
1220 FB 4852 mov r3,a
1221 7A 00 4853 mov r2,#0x00
1223 90 E6 BA 4854 mov dptr,#(_SETUPDAT + 0x0002)
1226 E0 4855 movx a,@dptr
1227 FC 4856 mov r4,a
1228 7D 00 4857 mov r5,#0x00
122A 90 3A 00 4858 mov dptr,#_eeprom_addr
122D EC 4859 mov a,r4
122E 4A 4860 orl a,r2
122F F0 4861 movx @dptr,a
1230 ED 4862 mov a,r5
1231 4B 4863 orl a,r3
1232 A3 4864 inc dptr
1233 F0 4865 movx @dptr,a
4866 ; ../../include/ztex-conf.h:125: break;
4867 ; ../../include/ztex-conf.h:123: case $0:
1234 22 4868 ret
1235 4869 00102$:
4870 ; ../../include/ztex-conf.h:125: break;
1235 90 E6 BA 4871 mov dptr,#(_SETUPDAT + 0x0002)
1238 E0 4872 movx a,@dptr
1239 90 3A 05 4873 mov dptr,#_mac_eeprom_addr
123C F0 4874 movx @dptr,a
4875 ; ../../include/ztex-conf.h:123: case $0:
123D 22 4876 ret
123E 4877 00103$:
4878 ; ../../include/ztex-flash2.h:698: ep0_write_mode = SETUPDAT[5];
123E 90 E6 BD 4879 mov dptr,#(_SETUPDAT + 0x0005)
1241 E0 4880 movx a,@dptr
1242 FA 4881 mov r2,a
1243 90 3A 1F 4882 mov dptr,#_ep0_write_mode
1246 F0 4883 movx @dptr,a
4884 ; ../../include/ztex-flash2.h:699: if ( (ep0_write_mode == 0) && flash_write_init((SETUPDAT[3] << 8) | SETUPDAT[2]) ) {
1247 EA 4885 mov a,r2
1248 70 41 4886 jnz 00113$
124A 90 E6 BB 4887 mov dptr,#(_SETUPDAT + 0x0003)
124D E0 4888 movx a,@dptr
124E FB 4889 mov r3,a
124F 7A 00 4890 mov r2,#0x00
1251 90 E6 BA 4891 mov dptr,#(_SETUPDAT + 0x0002)
1254 E0 4892 movx a,@dptr
1255 7D 00 4893 mov r5,#0x00
1257 4A 4894 orl a,r2
1258 F5 82 4895 mov dpl,a
125A ED 4896 mov a,r5
125B 4B 4897 orl a,r3
125C F5 83 4898 mov dph,a
125E 12 0B 5F 4899 lcall _flash_write_init
1261 E5 82 4900 mov a,dpl
1263 60 26 4901 jz 00113$
4902 ; ../../include/ztex-conf.h:137: EP0CS |= 0x01; // set stall
1265 90 E6 A0 4903 mov dptr,#_EP0CS
1268 E0 4904 movx a,@dptr
1269 44 01 4905 orl a,#0x01
126B F0 4906 movx @dptr,a
4907 ; ../../include/ztex-conf.h:138: ep0_payload_remaining = 0;
126C 90 3A 36 4908 mov dptr,#_ep0_payload_remaining
126F E4 4909 clr a
1270 F0 4910 movx @dptr,a
1271 A3 4911 inc dptr
1272 F0 4912 movx @dptr,a
4913 ; ../../include/ztex-conf.h:139: break;
4914 ; ../../include/ztex-conf.h:123: case $0:
1273 22 4915 ret
1274 4916 00107$:
4917 ; ../../include/ztex-conf.h:124: $1
4918 ; ../../include/ztex-conf.h:125: break;
4919 ; ../../include/ztex-conf.h:123: case $0:
1274 02 0D 33 4920 ljmp _reset_fpga
1277 4921 00108$:
4922 ; ../../include/ztex-fpga7.h:208: if ( fpga_conf_initialized != 123 )
1277 90 3A 27 4923 mov dptr,#_fpga_conf_initialized
127A E0 4924 movx a,@dptr
127B FA 4925 mov r2,a
127C BA 7B 01 4926 cjne r2,#0x7B,00130$
127F 22 4927 ret
1280 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:
1280 02 0D 91 4932 ljmp _init_fpga_configuration
1283 4933 00111$:
4934 ; ../../include/ztex-isr.h:106: EP0CS |= 0x01; // set stall, unknown request
1283 90 E6 A0 4935 mov dptr,#_EP0CS
1286 E0 4936 movx a,@dptr
1287 FA 4937 mov r2,a
1288 44 01 4938 orl a,#0x01
128A F0 4939 movx @dptr,a
4940 ; ../../include/ztex-isr.h:107: }
128B 4941 00113$:
128B 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 ; -----------------------------------------
128C 4952 _SUDAV_ISR:
128C C0 20 4953 push bits
128E C0 E0 4954 push acc
1290 C0 F0 4955 push b
1292 C0 82 4956 push dpl
1294 C0 83 4957 push dph
1296 C0 02 4958 push (0+2)
1298 C0 03 4959 push (0+3)
129A C0 04 4960 push (0+4)
129C C0 05 4961 push (0+5)
129E C0 06 4962 push (0+6)
12A0 C0 07 4963 push (0+7)
12A2 C0 00 4964 push (0+0)
12A4 C0 01 4965 push (0+1)
12A6 C0 D0 4966 push psw
12A8 75 D0 00 4967 mov psw,#0x00
4968 ; ../../include/ztex-isr.h:116: ep0_prev_setup_request = bRequest;
12AB 90 E6 B9 4969 mov dptr,#_bRequest
12AE E0 4970 movx a,@dptr
12AF FA 4971 mov r2,a
12B0 90 3A 39 4972 mov dptr,#_ep0_prev_setup_request
12B3 F0 4973 movx @dptr,a
4974 ; ../../include/ztex-isr.h:117: SUDPTRCTL = 1;
12B4 90 E6 B5 4975 mov dptr,#_SUDPTRCTL
12B7 74 01 4976 mov a,#0x01
12B9 F0 4977 movx @dptr,a
4978 ; ../../include/ztex-isr.h:120: switch ( bRequest ) {
12BA 90 E6 B9 4979 mov dptr,#_bRequest
12BD E0 4980 movx a,@dptr
12BE FA 4981 mov r2,a
12BF 24 F3 4982 add a,#0xff - 0x0C
12C1 50 03 4983 jnc 00238$
12C3 02 16 42 4984 ljmp 00160$
12C6 4985 00238$:
12C6 EA 4986 mov a,r2
12C7 2A 4987 add a,r2
12C8 2A 4988 add a,r2
12C9 90 12 CD 4989 mov dptr,#00239$
12CC 73 4990 jmp @a+dptr
12CD 4991 00239$:
12CD 02 12 F4 4992 ljmp 00101$
12D0 02 13 A8 4993 ljmp 00112$
12D3 02 16 42 4994 ljmp 00160$
12D6 02 14 25 4995 ljmp 00122$
12D9 02 16 42 4996 ljmp 00160$
12DC 02 16 42 4997 ljmp 00160$
12DF 02 14 BD 4998 ljmp 00132$
12E2 02 15 D8 4999 ljmp 00152$
12E5 02 15 DA 5000 ljmp 00153$
12E8 02 15 EB 5001 ljmp 00154$
12EB 02 15 F0 5002 ljmp 00155$
12EE 02 16 01 5003 ljmp 00156$
12F1 02 16 06 5004 ljmp 00157$
5005 ; ../../include/ztex-isr.h:121: case 0x00: // get status
12F4 5006 00101$:
5007 ; ../../include/ztex-isr.h:122: switch(SETUPDAT[0]) {
12F4 90 E6 B8 5008 mov dptr,#_SETUPDAT
12F7 E0 5009 movx a,@dptr
12F8 FA 5010 mov r2,a
12F9 BA 80 02 5011 cjne r2,#0x80,00240$
12FC 80 0D 5012 sjmp 00102$
12FE 5013 00240$:
12FE BA 81 02 5014 cjne r2,#0x81,00241$
1301 80 1E 5015 sjmp 00103$
1303 5016 00241$:
1303 BA 82 02 5017 cjne r2,#0x82,00242$
1306 80 2F 5018 sjmp 00104$
1308 5019 00242$:
1308 02 16 42 5020 ljmp 00160$
5021 ; ../../include/ztex-isr.h:123: case 0x80: // self powered and remote
130B 5022 00102$:
5023 ; ../../include/ztex-isr.h:124: EP0BUF[0] = 0; // not self-powered, no remote wakeup
130B 90 E7 40 5024 mov dptr,#_EP0BUF
5025 ; ../../include/ztex-isr.h:125: EP0BUF[1] = 0;
5026 ; ../../include/ztex-isr.h:126: EP0BCH = 0;
130E E4 5027 clr a
130F F0 5028 movx @dptr,a
1310 90 E7 41 5029 mov dptr,#(_EP0BUF + 0x0001)
1313 F0 5030 movx @dptr,a
1314 90 E6 8A 5031 mov dptr,#_EP0BCH
1317 F0 5032 movx @dptr,a
5033 ; ../../include/ztex-isr.h:127: EP0BCL = 2;
1318 90 E6 8B 5034 mov dptr,#_EP0BCL
131B 74 02 5035 mov a,#0x02
131D F0 5036 movx @dptr,a
5037 ; ../../include/ztex-isr.h:128: break;
131E 02 16 42 5038 ljmp 00160$
5039 ; ../../include/ztex-isr.h:129: case 0x81: // interface (reserved)
1321 5040 00103$:
5041 ; ../../include/ztex-isr.h:130: EP0BUF[0] = 0; // always return zeros
1321 90 E7 40 5042 mov dptr,#_EP0BUF
5043 ; ../../include/ztex-isr.h:131: EP0BUF[1] = 0;
5044 ; ../../include/ztex-isr.h:132: EP0BCH = 0;
1324 E4 5045 clr a
1325 F0 5046 movx @dptr,a
1326 90 E7 41 5047 mov dptr,#(_EP0BUF + 0x0001)
1329 F0 5048 movx @dptr,a
132A 90 E6 8A 5049 mov dptr,#_EP0BCH
132D F0 5050 movx @dptr,a
5051 ; ../../include/ztex-isr.h:133: EP0BCL = 2;
132E 90 E6 8B 5052 mov dptr,#_EP0BCL
1331 74 02 5053 mov a,#0x02
1333 F0 5054 movx @dptr,a
5055 ; ../../include/ztex-isr.h:134: break;
1334 02 16 42 5056 ljmp 00160$
5057 ; ../../include/ztex-isr.h:135: case 0x82:
1337 5058 00104$:
5059 ; ../../include/ztex-isr.h:136: switch ( SETUPDAT[4] ) {
1337 90 E6 BC 5060 mov dptr,#(_SETUPDAT + 0x0004)
133A E0 5061 movx a,@dptr
133B FA 5062 mov r2,a
133C 60 0F 5063 jz 00106$
133E BA 01 02 5064 cjne r2,#0x01,00244$
1341 80 19 5065 sjmp 00107$
1343 5066 00244$:
1343 BA 80 02 5067 cjne r2,#0x80,00245$
1346 80 05 5068 sjmp 00106$
1348 5069 00245$:
5070 ; ../../include/ztex-isr.h:138: case 0x80 :
1348 BA 81 2F 5071 cjne r2,#0x81,00109$
134B 80 1E 5072 sjmp 00108$
134D 5073 00106$:
5074 ; ../../include/ztex-isr.h:139: EP0BUF[0] = EP0CS & bmBIT0;
134D 90 E6 A0 5075 mov dptr,#_EP0CS
1350 E0 5076 movx a,@dptr
1351 FA 5077 mov r2,a
1352 53 02 01 5078 anl ar2,#0x01
1355 90 E7 40 5079 mov dptr,#_EP0BUF
1358 EA 5080 mov a,r2
1359 F0 5081 movx @dptr,a
5082 ; ../../include/ztex-isr.h:140: break;
5083 ; ../../include/ztex-isr.h:141: case 0x01 :
135A 80 3A 5084 sjmp 00110$
135C 5085 00107$:
5086 ; ../../include/ztex-isr.h:142: EP0BUF[0] = EP1OUTCS & bmBIT0;
135C 90 E6 A1 5087 mov dptr,#_EP1OUTCS
135F E0 5088 movx a,@dptr
1360 FA 5089 mov r2,a
1361 53 02 01 5090 anl ar2,#0x01
1364 90 E7 40 5091 mov dptr,#_EP0BUF
1367 EA 5092 mov a,r2
1368 F0 5093 movx @dptr,a
5094 ; ../../include/ztex-isr.h:143: break;
5095 ; ../../include/ztex-isr.h:144: case 0x81 :
1369 80 2B 5096 sjmp 00110$
136B 5097 00108$:
5098 ; ../../include/ztex-isr.h:145: EP0BUF[0] = EP1INCS & bmBIT0;
136B 90 E6 A2 5099 mov dptr,#_EP1INCS
136E E0 5100 movx a,@dptr
136F FA 5101 mov r2,a
1370 53 02 01 5102 anl ar2,#0x01
1373 90 E7 40 5103 mov dptr,#_EP0BUF
1376 EA 5104 mov a,r2
1377 F0 5105 movx @dptr,a
5106 ; ../../include/ztex-isr.h:146: break;
5107 ; ../../include/ztex-isr.h:147: default:
1378 80 1C 5108 sjmp 00110$
137A 5109 00109$:
5110 ; ../../include/ztex-isr.h:148: EP0BUF[0] = EPXCS[ ((SETUPDAT[4] >> 1)-1) & 3 ] & bmBIT0;
137A 90 E6 BC 5111 mov dptr,#(_SETUPDAT + 0x0004)
137D E0 5112 movx a,@dptr
137E C3 5113 clr c
137F 13 5114 rrc a
1380 14 5115 dec a
1381 54 03 5116 anl a,#0x03
1383 24 A3 5117 add a,#_EPXCS
1385 F5 82 5118 mov dpl,a
1387 E4 5119 clr a
1388 34 E6 5120 addc a,#(_EPXCS >> 8)
138A F5 83 5121 mov dph,a
138C E0 5122 movx a,@dptr
138D FA 5123 mov r2,a
138E 53 02 01 5124 anl ar2,#0x01
1391 90 E7 40 5125 mov dptr,#_EP0BUF
1394 EA 5126 mov a,r2
1395 F0 5127 movx @dptr,a
5128 ; ../../include/ztex-isr.h:150: }
1396 5129 00110$:
5130 ; ../../include/ztex-isr.h:151: EP0BUF[1] = 0;
1396 90 E7 41 5131 mov dptr,#(_EP0BUF + 0x0001)
5132 ; ../../include/ztex-isr.h:152: EP0BCH = 0;
1399 E4 5133 clr a
139A F0 5134 movx @dptr,a
139B 90 E6 8A 5135 mov dptr,#_EP0BCH
139E F0 5136 movx @dptr,a
5137 ; ../../include/ztex-isr.h:153: EP0BCL = 2;
139F 90 E6 8B 5138 mov dptr,#_EP0BCL
13A2 74 02 5139 mov a,#0x02
13A4 F0 5140 movx @dptr,a
5141 ; ../../include/ztex-isr.h:156: break;
13A5 02 16 42 5142 ljmp 00160$
5143 ; ../../include/ztex-isr.h:157: case 0x01: // disable feature, e.g. remote wake, stall bit
13A8 5144 00112$:
5145 ; ../../include/ztex-isr.h:158: if ( SETUPDAT[0] == 2 && SETUPDAT[2] == 0 ) {
13A8 90 E6 B8 5146 mov dptr,#_SETUPDAT
13AB E0 5147 movx a,@dptr
13AC FA 5148 mov r2,a
13AD BA 02 02 5149 cjne r2,#0x02,00247$
13B0 80 03 5150 sjmp 00248$
13B2 5151 00247$:
13B2 02 16 42 5152 ljmp 00160$
13B5 5153 00248$:
13B5 90 E6 BA 5154 mov dptr,#(_SETUPDAT + 0x0002)
13B8 E0 5155 movx a,@dptr
13B9 60 03 5156 jz 00249$
13BB 02 16 42 5157 ljmp 00160$
13BE 5158 00249$:
5159 ; ../../include/ztex-isr.h:159: switch ( SETUPDAT[4] ) {
13BE 90 E6 BC 5160 mov dptr,#(_SETUPDAT + 0x0004)
13C1 E0 5161 movx a,@dptr
13C2 FA 5162 mov r2,a
13C3 60 0F 5163 jz 00114$
13C5 BA 01 02 5164 cjne r2,#0x01,00251$
13C8 80 15 5165 sjmp 00115$
13CA 5166 00251$:
13CA BA 80 02 5167 cjne r2,#0x80,00252$
13CD 80 05 5168 sjmp 00114$
13CF 5169 00252$:
5170 ; ../../include/ztex-isr.h:161: case 0x80 :
13CF BA 81 23 5171 cjne r2,#0x81,00117$
13D2 80 16 5172 sjmp 00116$
13D4 5173 00114$:
5174 ; ../../include/ztex-isr.h:162: EP0CS &= ~bmBIT0;
13D4 90 E6 A0 5175 mov dptr,#_EP0CS
13D7 E0 5176 movx a,@dptr
13D8 FA 5177 mov r2,a
13D9 54 FE 5178 anl a,#0xFE
13DB F0 5179 movx @dptr,a
5180 ; ../../include/ztex-isr.h:163: break;
13DC 02 16 42 5181 ljmp 00160$
5182 ; ../../include/ztex-isr.h:164: case 0x01 :
13DF 5183 00115$:
5184 ; ../../include/ztex-isr.h:165: EP1OUTCS &= ~bmBIT0;
13DF 90 E6 A1 5185 mov dptr,#_EP1OUTCS
13E2 E0 5186 movx a,@dptr
13E3 FA 5187 mov r2,a
13E4 54 FE 5188 anl a,#0xFE
13E6 F0 5189 movx @dptr,a
5190 ; ../../include/ztex-isr.h:166: break;
13E7 02 16 42 5191 ljmp 00160$
5192 ; ../../include/ztex-isr.h:167: case 0x81 :
13EA 5193 00116$:
5194 ; ../../include/ztex-isr.h:168: EP1INCS &= ~bmBIT0;
13EA 90 E6 A2 5195 mov dptr,#_EP1INCS
13ED E0 5196 movx a,@dptr
13EE FA 5197 mov r2,a
13EF 54 FE 5198 anl a,#0xFE
13F1 F0 5199 movx @dptr,a
5200 ; ../../include/ztex-isr.h:169: break;
13F2 02 16 42 5201 ljmp 00160$
5202 ; ../../include/ztex-isr.h:170: default:
13F5 5203 00117$:
5204 ; ../../include/ztex-isr.h:171: EPXCS[ ((SETUPDAT[4] >> 1)-1) & 3 ] &= ~bmBIT0;
13F5 90 E6 BC 5205 mov dptr,#(_SETUPDAT + 0x0004)
13F8 E0 5206 movx a,@dptr
13F9 C3 5207 clr c
13FA 13 5208 rrc a
13FB 14 5209 dec a
13FC 54 03 5210 anl a,#0x03
13FE 24 A3 5211 add a,#_EPXCS
1400 FA 5212 mov r2,a
1401 E4 5213 clr a
1402 34 E6 5214 addc a,#(_EPXCS >> 8)
1404 FB 5215 mov r3,a
1405 90 E6 BC 5216 mov dptr,#(_SETUPDAT + 0x0004)
1408 E0 5217 movx a,@dptr
1409 C3 5218 clr c
140A 13 5219 rrc a
140B 14 5220 dec a
140C 54 03 5221 anl a,#0x03
140E 24 A3 5222 add a,#_EPXCS
1410 F5 82 5223 mov dpl,a
1412 E4 5224 clr a
1413 34 E6 5225 addc a,#(_EPXCS >> 8)
1415 F5 83 5226 mov dph,a
1417 E0 5227 movx a,@dptr
1418 FC 5228 mov r4,a
1419 53 04 FE 5229 anl ar4,#0xFE
141C 8A 82 5230 mov dpl,r2
141E 8B 83 5231 mov dph,r3
1420 EC 5232 mov a,r4
1421 F0 5233 movx @dptr,a
5234 ; ../../include/ztex-isr.h:175: break;
1422 02 16 42 5235 ljmp 00160$
5236 ; ../../include/ztex-isr.h:176: case 0x03: // enable feature, e.g. remote wake, test mode, stall bit
1425 5237 00122$:
5238 ; ../../include/ztex-isr.h:177: if ( SETUPDAT[0] == 2 && SETUPDAT[2] == 0 ) {
1425 90 E6 B8 5239 mov dptr,#_SETUPDAT
1428 E0 5240 movx a,@dptr
1429 FA 5241 mov r2,a
142A BA 02 02 5242 cjne r2,#0x02,00254$
142D 80 03 5243 sjmp 00255$
142F 5244 00254$:
142F 02 16 42 5245 ljmp 00160$
1432 5246 00255$:
1432 90 E6 BA 5247 mov dptr,#(_SETUPDAT + 0x0002)
1435 E0 5248 movx a,@dptr
1436 60 03 5249 jz 00256$
1438 02 16 42 5250 ljmp 00160$
143B 5251 00256$:
5252 ; ../../include/ztex-isr.h:178: switch ( SETUPDAT[4] ) {
143B 90 E6 BC 5253 mov dptr,#(_SETUPDAT + 0x0004)
143E E0 5254 movx a,@dptr
143F FA 5255 mov r2,a
1440 60 0F 5256 jz 00124$
1442 BA 01 02 5257 cjne r2,#0x01,00258$
1445 80 14 5258 sjmp 00125$
1447 5259 00258$:
1447 BA 80 02 5260 cjne r2,#0x80,00259$
144A 80 05 5261 sjmp 00124$
144C 5262 00259$:
5263 ; ../../include/ztex-isr.h:180: case 0x80 :
144C BA 81 20 5264 cjne r2,#0x81,00127$
144F 80 14 5265 sjmp 00126$
1451 5266 00124$:
5267 ; ../../include/ztex-isr.h:181: EP0CS |= bmBIT0;
1451 90 E6 A0 5268 mov dptr,#_EP0CS
1454 E0 5269 movx a,@dptr
1455 FA 5270 mov r2,a
1456 44 01 5271 orl a,#0x01
1458 F0 5272 movx @dptr,a
5273 ; ../../include/ztex-isr.h:182: break;
5274 ; ../../include/ztex-isr.h:183: case 0x01 :
1459 80 41 5275 sjmp 00128$
145B 5276 00125$:
5277 ; ../../include/ztex-isr.h:184: EP1OUTCS |= bmBIT0;
145B 90 E6 A1 5278 mov dptr,#_EP1OUTCS
145E E0 5279 movx a,@dptr
145F FA 5280 mov r2,a
1460 44 01 5281 orl a,#0x01
1462 F0 5282 movx @dptr,a
5283 ; ../../include/ztex-isr.h:185: break;
5284 ; ../../include/ztex-isr.h:186: case 0x81 :
1463 80 37 5285 sjmp 00128$
1465 5286 00126$:
5287 ; ../../include/ztex-isr.h:187: EP1INCS |= bmBIT0;
1465 90 E6 A2 5288 mov dptr,#_EP1INCS
1468 E0 5289 movx a,@dptr
1469 FA 5290 mov r2,a
146A 44 01 5291 orl a,#0x01
146C F0 5292 movx @dptr,a
5293 ; ../../include/ztex-isr.h:188: break;
5294 ; ../../include/ztex-isr.h:189: default:
146D 80 2D 5295 sjmp 00128$
146F 5296 00127$:
5297 ; ../../include/ztex-isr.h:190: EPXCS[ ((SETUPDAT[4] >> 1)-1) & 3 ] |= ~bmBIT0;
146F 90 E6 BC 5298 mov dptr,#(_SETUPDAT + 0x0004)
1472 E0 5299 movx a,@dptr
1473 C3 5300 clr c
1474 13 5301 rrc a
1475 14 5302 dec a
1476 54 03 5303 anl a,#0x03
1478 24 A3 5304 add a,#_EPXCS
147A FA 5305 mov r2,a
147B E4 5306 clr a
147C 34 E6 5307 addc a,#(_EPXCS >> 8)
147E FB 5308 mov r3,a
147F 90 E6 BC 5309 mov dptr,#(_SETUPDAT + 0x0004)
1482 E0 5310 movx a,@dptr
1483 C3 5311 clr c
1484 13 5312 rrc a
1485 14 5313 dec a
1486 54 03 5314 anl a,#0x03
1488 24 A3 5315 add a,#_EPXCS
148A F5 82 5316 mov dpl,a
148C E4 5317 clr a
148D 34 E6 5318 addc a,#(_EPXCS >> 8)
148F F5 83 5319 mov dph,a
1491 E0 5320 movx a,@dptr
1492 FC 5321 mov r4,a
1493 43 04 FE 5322 orl ar4,#0xFE
1496 8A 82 5323 mov dpl,r2
1498 8B 83 5324 mov dph,r3
149A EC 5325 mov a,r4
149B F0 5326 movx @dptr,a
5327 ; ../../include/ztex-isr.h:192: }
149C 5328 00128$:
5329 ; ../../include/ztex-isr.h:193: a = ( (SETUPDAT[4] & 0x80) >> 3 ) | (SETUPDAT[4] & 0x0f);
149C 90 E6 BC 5330 mov dptr,#(_SETUPDAT + 0x0004)
149F E0 5331 movx a,@dptr
14A0 54 80 5332 anl a,#0x80
14A2 C4 5333 swap a
14A3 23 5334 rl a
14A4 54 1F 5335 anl a,#0x1f
14A6 FA 5336 mov r2,a
14A7 90 E6 BC 5337 mov dptr,#(_SETUPDAT + 0x0004)
14AA E0 5338 movx a,@dptr
14AB FB 5339 mov r3,a
14AC 74 0F 5340 mov a,#0x0F
14AE 5B 5341 anl a,r3
14AF 42 02 5342 orl ar2,a
5343 ; ../../include/ztex-isr.h:194: TOGCTL = a;
5344 ; ../../include/ztex-isr.h:195: TOGCTL = a | bmBIT5;
14B1 90 E6 83 5345 mov dptr,#_TOGCTL
14B4 EA 5346 mov a,r2
14B5 F0 5347 movx @dptr,a
14B6 74 20 5348 mov a,#0x20
14B8 4A 5349 orl a,r2
14B9 F0 5350 movx @dptr,a
5351 ; ../../include/ztex-isr.h:197: break;
14BA 02 16 42 5352 ljmp 00160$
5353 ; ../../include/ztex-isr.h:198: case 0x06: // get descriptor
14BD 5354 00132$:
5355 ; ../../include/ztex-isr.h:199: switch(SETUPDAT[3]) {
14BD 90 E6 BB 5356 mov dptr,#(_SETUPDAT + 0x0003)
14C0 E0 5357 movx a,@dptr
14C1 FA 5358 mov r2,a
14C2 BA 01 02 5359 cjne r2,#0x01,00261$
14C5 80 19 5360 sjmp 00133$
14C7 5361 00261$:
14C7 BA 02 02 5362 cjne r2,#0x02,00262$
14CA 80 26 5363 sjmp 00134$
14CC 5364 00262$:
14CC BA 03 02 5365 cjne r2,#0x03,00263$
14CF 80 4D 5366 sjmp 00138$
14D1 5367 00263$:
14D1 BA 06 03 5368 cjne r2,#0x06,00264$
14D4 02 15 91 5369 ljmp 00145$
14D7 5370 00264$:
14D7 BA 07 03 5371 cjne r2,#0x07,00265$
14DA 02 15 A3 5372 ljmp 00146$
14DD 5373 00265$:
14DD 02 15 CE 5374 ljmp 00150$
5375 ; ../../include/ztex-isr.h:200: case 0x01: // device
14E0 5376 00133$:
5377 ; ../../include/ztex-isr.h:201: SUDPTRH = MSB(&DeviceDescriptor);
14E0 7A 8A 5378 mov r2,#_DeviceDescriptor
14E2 7B 1E 5379 mov r3,#(_DeviceDescriptor >> 8)
14E4 90 E6 B3 5380 mov dptr,#_SUDPTRH
14E7 EB 5381 mov a,r3
14E8 F0 5382 movx @dptr,a
5383 ; ../../include/ztex-isr.h:202: SUDPTRL = LSB(&DeviceDescriptor);
14E9 90 E6 B4 5384 mov dptr,#_SUDPTRL
14EC 74 8A 5385 mov a,#_DeviceDescriptor
14EE F0 5386 movx @dptr,a
5387 ; ../../include/ztex-isr.h:203: break;
14EF 02 16 42 5388 ljmp 00160$
5389 ; ../../include/ztex-isr.h:204: case 0x02: // configuration
14F2 5390 00134$:
5391 ; ../../include/ztex-isr.h:205: if (USBCS & bmBIT7) {
14F2 90 E6 80 5392 mov dptr,#_USBCS
14F5 E0 5393 movx a,@dptr
14F6 FA 5394 mov r2,a
14F7 30 E7 12 5395 jnb acc.7,00136$
5396 ; ../../include/ztex-isr.h:206: SUDPTRH = MSB(&HighSpeedConfigDescriptor);
14FA 7A A6 5397 mov r2,#_HighSpeedConfigDescriptor
14FC 7B 1E 5398 mov r3,#(_HighSpeedConfigDescriptor >> 8)
14FE 90 E6 B3 5399 mov dptr,#_SUDPTRH
1501 EB 5400 mov a,r3
1502 F0 5401 movx @dptr,a
5402 ; ../../include/ztex-isr.h:207: SUDPTRL = LSB(&HighSpeedConfigDescriptor);
1503 90 E6 B4 5403 mov dptr,#_SUDPTRL
1506 74 A6 5404 mov a,#_HighSpeedConfigDescriptor
1508 F0 5405 movx @dptr,a
1509 02 16 42 5406 ljmp 00160$
150C 5407 00136$:
5408 ; ../../include/ztex-isr.h:210: SUDPTRH = MSB(&FullSpeedConfigDescriptor);
150C 7A C8 5409 mov r2,#_FullSpeedConfigDescriptor
150E 7B 1E 5410 mov r3,#(_FullSpeedConfigDescriptor >> 8)
1510 90 E6 B3 5411 mov dptr,#_SUDPTRH
1513 EB 5412 mov a,r3
1514 F0 5413 movx @dptr,a
5414 ; ../../include/ztex-isr.h:211: SUDPTRL = LSB(&FullSpeedConfigDescriptor);
1515 90 E6 B4 5415 mov dptr,#_SUDPTRL
1518 74 C8 5416 mov a,#_FullSpeedConfigDescriptor
151A F0 5417 movx @dptr,a
5418 ; ../../include/ztex-isr.h:213: break;
151B 02 16 42 5419 ljmp 00160$
5420 ; ../../include/ztex-isr.h:214: case 0x03: // strings
151E 5421 00138$:
5422 ; ../../include/ztex-isr.h:215: switch (SETUPDAT[2]) {
151E 90 E6 BA 5423 mov dptr,#(_SETUPDAT + 0x0002)
1521 E0 5424 movx a,@dptr
1522 FA 5425 mov r2,a
1523 BA 01 02 5426 cjne r2,#0x01,00267$
1526 80 0F 5427 sjmp 00139$
1528 5428 00267$:
1528 BA 02 02 5429 cjne r2,#0x02,00268$
152B 80 1C 5430 sjmp 00140$
152D 5431 00268$:
152D BA 03 02 5432 cjne r2,#0x03,00269$
1530 80 29 5433 sjmp 00141$
1532 5434 00269$:
5435 ; ../../include/ztex-isr.h:216: case 1:
1532 BA 04 4A 5436 cjne r2,#0x04,00143$
1535 80 36 5437 sjmp 00142$
1537 5438 00139$:
5439 ; ../../include/ztex-isr.h:217: SEND_STRING_DESCRIPTOR(manufacturerString);
1537 75 82 5D 5440 mov dpl,#_manufacturerString
153A 7A 5D 5441 mov r2,#_manufacturerString
153C 7B 1E 5442 mov r3,#(_manufacturerString >> 8)
153E 8B 16 5443 mov _sendStringDescriptor_PARM_2,r3
1540 75 17 05 5444 mov _sendStringDescriptor_PARM_3,#0x05
1543 12 11 5D 5445 lcall _sendStringDescriptor
5446 ; ../../include/ztex-isr.h:218: break;
1546 02 16 42 5447 ljmp 00160$
5448 ; ../../include/ztex-isr.h:219: case 2:
1549 5449 00140$:
5450 ; ../../include/ztex-isr.h:220: SEND_STRING_DESCRIPTOR(productString);
1549 75 82 62 5451 mov dpl,#_productString
154C 7A 62 5452 mov r2,#_productString
154E 7B 1E 5453 mov r3,#(_productString >> 8)
1550 8B 16 5454 mov _sendStringDescriptor_PARM_2,r3
1552 75 17 20 5455 mov _sendStringDescriptor_PARM_3,#0x20
1555 12 11 5D 5456 lcall _sendStringDescriptor
5457 ; ../../include/ztex-isr.h:221: break;
1558 02 16 42 5458 ljmp 00160$
5459 ; ../../include/ztex-isr.h:222: case 3:
155B 5460 00141$:
5461 ; ../../include/ztex-isr.h:223: SEND_STRING_DESCRIPTOR(SN_STRING);
155B 75 82 8A 5462 mov dpl,#_SN_STRING
155E 7A 8A 5463 mov r2,#_SN_STRING
1560 7B 00 5464 mov r3,#(_SN_STRING >> 8)
1562 8B 16 5465 mov _sendStringDescriptor_PARM_2,r3
1564 75 17 0A 5466 mov _sendStringDescriptor_PARM_3,#0x0A
1567 12 11 5D 5467 lcall _sendStringDescriptor
5468 ; ../../include/ztex-isr.h:224: break;
156A 02 16 42 5469 ljmp 00160$
5470 ; ../../include/ztex-isr.h:225: case 4:
156D 5471 00142$:
5472 ; ../../include/ztex-isr.h:226: SEND_STRING_DESCRIPTOR(configurationString);
156D 75 82 82 5473 mov dpl,#_configurationString
1570 7A 82 5474 mov r2,#_configurationString
1572 7B 1E 5475 mov r3,#(_configurationString >> 8)
1574 8B 16 5476 mov _sendStringDescriptor_PARM_2,r3
1576 75 17 08 5477 mov _sendStringDescriptor_PARM_3,#0x08
1579 12 11 5D 5478 lcall _sendStringDescriptor
5479 ; ../../include/ztex-isr.h:227: break;
157C 02 16 42 5480 ljmp 00160$
5481 ; ../../include/ztex-isr.h:228: default:
157F 5482 00143$:
5483 ; ../../include/ztex-isr.h:229: SUDPTRH = MSB(&EmptyStringDescriptor);
157F 7A EA 5484 mov r2,#_EmptyStringDescriptor
1581 7B 1E 5485 mov r3,#(_EmptyStringDescriptor >> 8)
1583 90 E6 B3 5486 mov dptr,#_SUDPTRH
1586 EB 5487 mov a,r3
1587 F0 5488 movx @dptr,a
5489 ; ../../include/ztex-isr.h:230: SUDPTRL = LSB(&EmptyStringDescriptor);
1588 90 E6 B4 5490 mov dptr,#_SUDPTRL
158B 74 EA 5491 mov a,#_EmptyStringDescriptor
158D F0 5492 movx @dptr,a
5493 ; ../../include/ztex-isr.h:233: break;
158E 02 16 42 5494 ljmp 00160$
5495 ; ../../include/ztex-isr.h:234: case 0x06: // device qualifier
1591 5496 00145$:
5497 ; ../../include/ztex-isr.h:235: SUDPTRH = MSB(&DeviceQualifierDescriptor);
1591 7A 9C 5498 mov r2,#_DeviceQualifierDescriptor
1593 7B 1E 5499 mov r3,#(_DeviceQualifierDescriptor >> 8)
1595 90 E6 B3 5500 mov dptr,#_SUDPTRH
1598 EB 5501 mov a,r3
1599 F0 5502 movx @dptr,a
5503 ; ../../include/ztex-isr.h:236: SUDPTRL = LSB(&DeviceQualifierDescriptor);
159A 90 E6 B4 5504 mov dptr,#_SUDPTRL
159D 74 9C 5505 mov a,#_DeviceQualifierDescriptor
159F F0 5506 movx @dptr,a
5507 ; ../../include/ztex-isr.h:237: break;
15A0 02 16 42 5508 ljmp 00160$
5509 ; ../../include/ztex-isr.h:238: case 0x07: // other speed configuration
15A3 5510 00146$:
5511 ; ../../include/ztex-isr.h:239: if (USBCS & bmBIT7) {
15A3 90 E6 80 5512 mov dptr,#_USBCS
15A6 E0 5513 movx a,@dptr
15A7 FA 5514 mov r2,a
15A8 30 E7 12 5515 jnb acc.7,00148$
5516 ; ../../include/ztex-isr.h:240: SUDPTRH = MSB(&FullSpeedConfigDescriptor);
15AB 7A C8 5517 mov r2,#_FullSpeedConfigDescriptor
15AD 7B 1E 5518 mov r3,#(_FullSpeedConfigDescriptor >> 8)
15AF 90 E6 B3 5519 mov dptr,#_SUDPTRH
15B2 EB 5520 mov a,r3
15B3 F0 5521 movx @dptr,a
5522 ; ../../include/ztex-isr.h:241: SUDPTRL = LSB(&FullSpeedConfigDescriptor);
15B4 90 E6 B4 5523 mov dptr,#_SUDPTRL
15B7 74 C8 5524 mov a,#_FullSpeedConfigDescriptor
15B9 F0 5525 movx @dptr,a
15BA 02 16 42 5526 ljmp 00160$
15BD 5527 00148$:
5528 ; ../../include/ztex-isr.h:244: SUDPTRH = MSB(&HighSpeedConfigDescriptor);
15BD 7A A6 5529 mov r2,#_HighSpeedConfigDescriptor
15BF 7B 1E 5530 mov r3,#(_HighSpeedConfigDescriptor >> 8)
15C1 90 E6 B3 5531 mov dptr,#_SUDPTRH
15C4 EB 5532 mov a,r3
15C5 F0 5533 movx @dptr,a
5534 ; ../../include/ztex-isr.h:245: SUDPTRL = LSB(&HighSpeedConfigDescriptor);
15C6 90 E6 B4 5535 mov dptr,#_SUDPTRL
15C9 74 A6 5536 mov a,#_HighSpeedConfigDescriptor
15CB F0 5537 movx @dptr,a
5538 ; ../../include/ztex-isr.h:247: break;
5539 ; ../../include/ztex-isr.h:248: default:
15CC 80 74 5540 sjmp 00160$
15CE 5541 00150$:
5542 ; ../../include/ztex-isr.h:249: EP0CS |= 0x01; // set stall, unknown descriptor
15CE 90 E6 A0 5543 mov dptr,#_EP0CS
15D1 E0 5544 movx a,@dptr
15D2 FA 5545 mov r2,a
15D3 44 01 5546 orl a,#0x01
15D5 F0 5547 movx @dptr,a
5548 ; ../../include/ztex-isr.h:251: break;
5549 ; ../../include/ztex-isr.h:252: case 0x07: // set descriptor
15D6 80 6A 5550 sjmp 00160$
15D8 5551 00152$:
5552 ; ../../include/ztex-isr.h:253: break;
5553 ; ../../include/ztex-isr.h:254: case 0x08: // get configuration
15D8 80 68 5554 sjmp 00160$
15DA 5555 00153$:
5556 ; ../../include/ztex-isr.h:255: EP0BUF[0] = 0; // only one configuration
15DA 90 E7 40 5557 mov dptr,#_EP0BUF
5558 ; ../../include/ztex-isr.h:256: EP0BCH = 0;
15DD E4 5559 clr a
15DE F0 5560 movx @dptr,a
15DF 90 E6 8A 5561 mov dptr,#_EP0BCH
15E2 F0 5562 movx @dptr,a
5563 ; ../../include/ztex-isr.h:257: EP0BCL = 1;
15E3 90 E6 8B 5564 mov dptr,#_EP0BCL
15E6 74 01 5565 mov a,#0x01
15E8 F0 5566 movx @dptr,a
5567 ; ../../include/ztex-isr.h:258: break;
5568 ; ../../include/ztex-isr.h:259: case 0x09: // set configuration
15E9 80 57 5569 sjmp 00160$
15EB 5570 00154$:
5571 ; ../../include/ztex-isr.h:260: resetToggleData();
15EB 12 11 3F 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
15EE 80 52 5575 sjmp 00160$
15F0 5576 00155$:
5577 ; ../../include/ztex-isr.h:263: EP0BUF[0] = 0; // only one alternate setting
15F0 90 E7 40 5578 mov dptr,#_EP0BUF
5579 ; ../../include/ztex-isr.h:264: EP0BCH = 0;
15F3 E4 5580 clr a
15F4 F0 5581 movx @dptr,a
15F5 90 E6 8A 5582 mov dptr,#_EP0BCH
15F8 F0 5583 movx @dptr,a
5584 ; ../../include/ztex-isr.h:265: EP0BCL = 1;
15F9 90 E6 8B 5585 mov dptr,#_EP0BCL
15FC 74 01 5586 mov a,#0x01
15FE 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
15FF 80 41 5590 sjmp 00160$
1601 5591 00156$:
5592 ; ../../include/ztex-isr.h:268: resetToggleData();
1601 12 11 3F 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
1604 80 3C 5596 sjmp 00160$
1606 5597 00157$:
5598 ; ../../include/ztex-isr.h:271: if ( SETUPDAT[0] == 0x82 ) {
1606 90 E6 B8 5599 mov dptr,#_SETUPDAT
1609 E0 5600 movx a,@dptr
160A FA 5601 mov r2,a
160B BA 82 34 5602 cjne r2,#0x82,00160$
5603 ; ../../include/ztex-isr.h:272: ISOFRAME_COUNTER[ ((SETUPDAT[4] >> 1)-1) & 3 ] = 0;
160E 90 E6 BC 5604 mov dptr,#(_SETUPDAT + 0x0004)
1611 E0 5605 movx a,@dptr
1612 C3 5606 clr c
1613 13 5607 rrc a
1614 14 5608 dec a
1615 54 03 5609 anl a,#0x03
1617 25 E0 5610 add a,acc
1619 24 3B 5611 add a,#_ISOFRAME_COUNTER
161B F5 82 5612 mov dpl,a
161D E4 5613 clr a
161E 34 3A 5614 addc a,#(_ISOFRAME_COUNTER >> 8)
1620 F5 83 5615 mov dph,a
1622 E4 5616 clr a
1623 F0 5617 movx @dptr,a
1624 A3 5618 inc dptr
1625 F0 5619 movx @dptr,a
5620 ; ../../include/ztex-isr.h:273: EP0BUF[0] = USBFRAMEL; // use current frame as sync frame, i hope that works
1626 90 E6 85 5621 mov dptr,#_USBFRAMEL
1629 E0 5622 movx a,@dptr
162A 90 E7 40 5623 mov dptr,#_EP0BUF
162D F0 5624 movx @dptr,a
5625 ; ../../include/ztex-isr.h:274: EP0BUF[1] = USBFRAMEH;
162E 90 E6 84 5626 mov dptr,#_USBFRAMEH
1631 E0 5627 movx a,@dptr
1632 FA 5628 mov r2,a
1633 90 E7 41 5629 mov dptr,#(_EP0BUF + 0x0001)
1636 F0 5630 movx @dptr,a
5631 ; ../../include/ztex-isr.h:275: EP0BCH = 0;
1637 90 E6 8A 5632 mov dptr,#_EP0BCH
163A E4 5633 clr a
163B F0 5634 movx @dptr,a
5635 ; ../../include/ztex-isr.h:276: EP0BCL = 2;
163C 90 E6 8B 5636 mov dptr,#_EP0BCL
163F 74 02 5637 mov a,#0x02
1641 F0 5638 movx @dptr,a
5639 ; ../../include/ztex-isr.h:280: }
1642 5640 00160$:
5641 ; ../../include/ztex-isr.h:283: switch ( bmRequestType ) {
1642 90 E6 B8 5642 mov dptr,#_bmRequestType
1645 E0 5643 movx a,@dptr
1646 FA 5644 mov r2,a
1647 BA 40 03 5645 cjne r2,#0x40,00274$
164A 02 18 6D 5646 ljmp 00182$
164D 5647 00274$:
164D BA C0 02 5648 cjne r2,#0xC0,00275$
1650 80 03 5649 sjmp 00276$
1652 5650 00275$:
1652 02 18 97 5651 ljmp 00186$
1655 5652 00276$:
5653 ; ../../include/ztex-isr.h:285: ep0_payload_remaining = (SETUPDAT[7] << 8) | SETUPDAT[6];
1655 90 E6 BF 5654 mov dptr,#(_SETUPDAT + 0x0007)
1658 E0 5655 movx a,@dptr
1659 FB 5656 mov r3,a
165A 7A 00 5657 mov r2,#0x00
165C 90 E6 BE 5658 mov dptr,#(_SETUPDAT + 0x0006)
165F E0 5659 movx a,@dptr
1660 FC 5660 mov r4,a
1661 7D 00 5661 mov r5,#0x00
1663 90 3A 36 5662 mov dptr,#_ep0_payload_remaining
1666 EC 5663 mov a,r4
1667 4A 5664 orl a,r2
1668 F0 5665 movx @dptr,a
1669 ED 5666 mov a,r5
166A 4B 5667 orl a,r3
166B A3 5668 inc dptr
166C F0 5669 movx @dptr,a
5670 ; ../../include/ztex-isr.h:286: ep0_payload_update();
166D 12 11 C6 5671 lcall _ep0_payload_update
5672 ; ../../include/ztex-isr.h:288: switch ( bRequest ) {
1670 90 E6 B9 5673 mov dptr,#_bRequest
1673 E0 5674 movx a,@dptr
1674 FA 5675 mov r2,a
1675 BA 22 02 5676 cjne r2,#0x22,00277$
1678 80 31 5677 sjmp 00162$
167A 5678 00277$:
167A BA 30 03 5679 cjne r2,#0x30,00278$
167D 02 18 13 5680 ljmp 00176$
1680 5681 00278$:
1680 BA 38 02 5682 cjne r2,#0x38,00279$
1683 80 43 5683 sjmp 00163$
1685 5684 00279$:
1685 BA 3A 02 5685 cjne r2,#0x3A,00280$
1688 80 67 5686 sjmp 00164$
168A 5687 00280$:
168A BA 3B 03 5688 cjne r2,#0x3B,00281$
168D 02 17 30 5689 ljmp 00165$
1690 5690 00281$:
1690 BA 3D 03 5691 cjne r2,#0x3D,00282$
1693 02 17 49 5692 ljmp 00166$
1696 5693 00282$:
1696 BA 40 03 5694 cjne r2,#0x40,00283$
1699 02 17 6A 5695 ljmp 00167$
169C 5696 00283$:
169C BA 41 03 5697 cjne r2,#0x41,00284$
169F 02 17 A0 5698 ljmp 00171$
16A2 5699 00284$:
16A2 BA 43 03 5700 cjne r2,#0x43,00285$
16A5 02 17 ED 5701 ljmp 00175$
16A8 5702 00285$:
16A8 02 18 63 5703 ljmp 00180$
5704 ; ../../include/ztex-isr.h:289: case 0x22: // get ZTEX descriptor
16AB 5705 00162$:
5706 ; ../../include/ztex-isr.h:290: SUDPTRCTL = 0;
16AB 90 E6 B5 5707 mov dptr,#_SUDPTRCTL
5708 ; ../../include/ztex-isr.h:291: EP0BCH = 0;
16AE E4 5709 clr a
16AF F0 5710 movx @dptr,a
16B0 90 E6 8A 5711 mov dptr,#_EP0BCH
16B3 F0 5712 movx @dptr,a
5713 ; ../../include/ztex-isr.h:292: EP0BCL = ZTEX_DESCRIPTOR_LEN;
16B4 90 E6 8B 5714 mov dptr,#_EP0BCL
16B7 74 28 5715 mov a,#0x28
16B9 F0 5716 movx @dptr,a
5717 ; ../../include/ztex-isr.h:293: SUDPTRH = MSB(ZTEX_DESCRIPTOR_OFFS);
16BA 90 E6 B3 5718 mov dptr,#_SUDPTRH
16BD E4 5719 clr a
16BE F0 5720 movx @dptr,a
5721 ; ../../include/ztex-isr.h:294: SUDPTRL = LSB(ZTEX_DESCRIPTOR_OFFS);
16BF 90 E6 B4 5722 mov dptr,#_SUDPTRL
16C2 74 6C 5723 mov a,#0x6C
16C4 F0 5724 movx @dptr,a
5725 ; ../../include/ztex-isr.h:295: break;
16C5 02 18 97 5726 ljmp 00186$
5727 ; ../../include/ztex-conf.h:100: case $0:
16C8 5728 00163$:
5729 ; ../../include/ztex-conf.h:102: break;
16C8 90 E6 BB 5730 mov dptr,#(_SETUPDAT + 0x0003)
16CB E0 5731 movx a,@dptr
16CC FB 5732 mov r3,a
16CD 7A 00 5733 mov r2,#0x00
16CF 90 E6 BA 5734 mov dptr,#(_SETUPDAT + 0x0002)
16D2 E0 5735 movx a,@dptr
16D3 FC 5736 mov r4,a
16D4 7D 00 5737 mov r5,#0x00
16D6 90 3A 00 5738 mov dptr,#_eeprom_addr
16D9 EC 5739 mov a,r4
16DA 4A 5740 orl a,r2
16DB F0 5741 movx @dptr,a
16DC ED 5742 mov a,r5
16DD 4B 5743 orl a,r3
16DE A3 5744 inc dptr
16DF F0 5745 movx @dptr,a
5746 ; ../../include/ztex-eeprom.h:219: EP0BCH = 0;
16E0 90 E6 8A 5747 mov dptr,#_EP0BCH
16E3 E4 5748 clr a
16E4 F0 5749 movx @dptr,a
5750 ; ../../include/ztex-eeprom.h:220: EP0BCL = eeprom_read_ep0();
16E5 12 05 73 5751 lcall _eeprom_read_ep0
16E8 E5 82 5752 mov a,dpl
16EA 90 E6 8B 5753 mov dptr,#_EP0BCL
16ED F0 5754 movx @dptr,a
5755 ; ../../include/ztex-conf.h:102: break;
16EE 02 18 97 5756 ljmp 00186$
5757 ; ../../include/ztex-conf.h:100: case $0:
16F1 5758 00164$:
5759 ; ../../include/ztex-eeprom.h:247: EP0BUF[0] = LSB(eeprom_write_bytes);
16F1 90 3A 02 5760 mov dptr,#_eeprom_write_bytes
16F4 E0 5761 movx a,@dptr
16F5 FA 5762 mov r2,a
16F6 A3 5763 inc dptr
16F7 E0 5764 movx a,@dptr
16F8 FB 5765 mov r3,a
16F9 8A 04 5766 mov ar4,r2
16FB 90 E7 40 5767 mov dptr,#_EP0BUF
16FE EC 5768 mov a,r4
16FF F0 5769 movx @dptr,a
5770 ; ../../include/ztex-eeprom.h:248: EP0BUF[1] = MSB(eeprom_write_bytes);
1700 8B 02 5771 mov ar2,r3
1702 90 E7 41 5772 mov dptr,#(_EP0BUF + 0x0001)
1705 EA 5773 mov a,r2
1706 F0 5774 movx @dptr,a
5775 ; ../../include/ztex-eeprom.h:249: EP0BUF[2] = eeprom_write_checksum;
1707 90 3A 04 5776 mov dptr,#_eeprom_write_checksum
170A E0 5777 movx a,@dptr
170B 90 E7 42 5778 mov dptr,#(_EP0BUF + 0x0002)
170E F0 5779 movx @dptr,a
5780 ; ../../include/ztex-eeprom.h:250: EP0BUF[3] = eeprom_select(EEPROM_ADDR,0,1); // 1 means busy or error
170F 75 08 00 5781 mov _eeprom_select_PARM_2,#0x00
1712 75 09 01 5782 mov _eeprom_select_PARM_3,#0x01
1715 75 82 A2 5783 mov dpl,#0xA2
1718 12 03 46 5784 lcall _eeprom_select
171B AA 82 5785 mov r2,dpl
171D 90 E7 43 5786 mov dptr,#(_EP0BUF + 0x0003)
1720 EA 5787 mov a,r2
1721 F0 5788 movx @dptr,a
5789 ; ../../include/ztex-eeprom.h:251: EP0BCH = 0;
1722 90 E6 8A 5790 mov dptr,#_EP0BCH
1725 E4 5791 clr a
1726 F0 5792 movx @dptr,a
5793 ; ../../include/ztex-eeprom.h:252: EP0BCL = 4;
1727 90 E6 8B 5794 mov dptr,#_EP0BCL
172A 74 04 5795 mov a,#0x04
172C F0 5796 movx @dptr,a
5797 ; ../../include/ztex-conf.h:102: break;
172D 02 18 97 5798 ljmp 00186$
5799 ; ../../include/ztex-conf.h:100: case $0:
1730 5800 00165$:
5801 ; ../../include/ztex-conf.h:102: break;
1730 90 E6 BA 5802 mov dptr,#(_SETUPDAT + 0x0002)
1733 E0 5803 movx a,@dptr
1734 90 3A 05 5804 mov dptr,#_mac_eeprom_addr
1737 F0 5805 movx @dptr,a
5806 ; ../../include/ztex-eeprom.h:368: EP0BCH = 0;
1738 90 E6 8A 5807 mov dptr,#_EP0BCH
173B E4 5808 clr a
173C F0 5809 movx @dptr,a
5810 ; ../../include/ztex-eeprom.h:369: EP0BCL = mac_eeprom_read_ep0();
173D 12 07 B9 5811 lcall _mac_eeprom_read_ep0
1740 E5 82 5812 mov a,dpl
1742 90 E6 8B 5813 mov dptr,#_EP0BCL
1745 F0 5814 movx @dptr,a
5815 ; ../../include/ztex-conf.h:102: break;
1746 02 18 97 5816 ljmp 00186$
5817 ; ../../include/ztex-conf.h:100: case $0:
1749 5818 00166$:
5819 ; ../../include/ztex-conf.h:102: break;
1749 75 08 00 5820 mov _eeprom_select_PARM_2,#0x00
174C 75 09 01 5821 mov _eeprom_select_PARM_3,#0x01
174F 75 82 A6 5822 mov dpl,#0xA6
1752 12 03 46 5823 lcall _eeprom_select
1755 AA 82 5824 mov r2,dpl
1757 90 E7 40 5825 mov dptr,#_EP0BUF
175A EA 5826 mov a,r2
175B F0 5827 movx @dptr,a
5828 ; ../../include/ztex-eeprom.h:390: EP0BCH = 0;
175C 90 E6 8A 5829 mov dptr,#_EP0BCH
175F E4 5830 clr a
1760 F0 5831 movx @dptr,a
5832 ; ../../include/ztex-eeprom.h:391: EP0BCL = 1;
1761 90 E6 8B 5833 mov dptr,#_EP0BCL
1764 74 01 5834 mov a,#0x01
1766 F0 5835 movx @dptr,a
5836 ; ../../include/ztex-conf.h:102: break;
1767 02 18 97 5837 ljmp 00186$
5838 ; ../../include/ztex-conf.h:100: case $0:
176A 5839 00167$:
5840 ; ../../include/ztex-flash2.h:646: if ( flash_ec == 0 && SPI_CS == 0 ) {
176A 90 3A 0E 5841 mov dptr,#_flash_ec
176D E0 5842 movx a,@dptr
176E FA 5843 mov r2,a
176F 70 09 5844 jnz 00169$
1771 20 83 06 5845 jb _IOA3,00169$
5846 ; ../../include/ztex-flash2.h:647: flash_ec = FLASH_EC_PENDING;
1774 90 3A 0E 5847 mov dptr,#_flash_ec
1777 74 04 5848 mov a,#0x04
1779 F0 5849 movx @dptr,a
177A 5850 00169$:
5851 ; ../../include/ztex-utils.h:121: AUTOPTRL1=LO(&($0));
177A 75 9B 07 5852 mov _AUTOPTRL1,#_flash_enabled
5853 ; ../../include/ztex-utils.h:122: AUTOPTRH1=HI(&($0));
177D 7A 07 5854 mov r2,#_flash_enabled
177F 7B 3A 5855 mov r3,#(_flash_enabled >> 8)
1781 8B 9A 5856 mov _AUTOPTRH1,r3
5857 ; ../../include/ztex-utils.h:123: AUTOPTRL2=LO(&($1));
1783 75 9E 40 5858 mov _AUTOPTRL2,#0x40
5859 ; ../../include/ztex-utils.h:124: AUTOPTRH2=HI(&($1));
1786 75 9D E7 5860 mov _AUTOPTRH2,#0xE7
5861 ; ../../include/ztex-utils.h:130: __endasm;
5862
1789 C0 02 5863 push ar2
178B 7A 08 5864 mov r2,#(8);
178D 12 02 AD 5865 lcall _MEM_COPY1_int
1790 D0 02 5866 pop ar2
5867
5868 ; ../../include/ztex-flash2.h:650: EP0BCH = 0;
1792 90 E6 8A 5869 mov dptr,#_EP0BCH
1795 E4 5870 clr a
1796 F0 5871 movx @dptr,a
5872 ; ../../include/ztex-flash2.h:651: EP0BCL = 8;
1797 90 E6 8B 5873 mov dptr,#_EP0BCL
179A 74 08 5874 mov a,#0x08
179C F0 5875 movx @dptr,a
5876 ; ../../include/ztex-conf.h:102: break;
179D 02 18 97 5877 ljmp 00186$
5878 ; ../../include/ztex-conf.h:100: case $0:
17A0 5879 00171$:
5880 ; ../../include/ztex-flash2.h:671: ep0_read_mode = SETUPDAT[5];
17A0 90 E6 BD 5881 mov dptr,#(_SETUPDAT + 0x0005)
17A3 E0 5882 movx a,@dptr
17A4 FA 5883 mov r2,a
17A5 90 3A 1E 5884 mov dptr,#_ep0_read_mode
17A8 F0 5885 movx @dptr,a
5886 ; ../../include/ztex-flash2.h:672: if ( (ep0_read_mode==0) && flash_read_init((SETUPDAT[3] << 8) | SETUPDAT[2]) ) {
17A9 EA 5887 mov a,r2
17AA 70 2D 5888 jnz 00173$
17AC 90 E6 BB 5889 mov dptr,#(_SETUPDAT + 0x0003)
17AF E0 5890 movx a,@dptr
17B0 FB 5891 mov r3,a
17B1 7A 00 5892 mov r2,#0x00
17B3 90 E6 BA 5893 mov dptr,#(_SETUPDAT + 0x0002)
17B6 E0 5894 movx a,@dptr
17B7 7D 00 5895 mov r5,#0x00
17B9 4A 5896 orl a,r2
17BA F5 82 5897 mov dpl,a
17BC ED 5898 mov a,r5
17BD 4B 5899 orl a,r3
17BE F5 83 5900 mov dph,a
17C0 12 09 63 5901 lcall _flash_read_init
17C3 E5 82 5902 mov a,dpl
17C5 60 12 5903 jz 00173$
5904 ; ../../include/ztex-conf.h:137: EP0CS |= 0x01; // set stall
17C7 90 E6 A0 5905 mov dptr,#_EP0CS
17CA E0 5906 movx a,@dptr
17CB FA 5907 mov r2,a
17CC 44 01 5908 orl a,#0x01
17CE F0 5909 movx @dptr,a
5910 ; ../../include/ztex-conf.h:138: ep0_payload_remaining = 0;
17CF 90 3A 36 5911 mov dptr,#_ep0_payload_remaining
17D2 E4 5912 clr a
17D3 F0 5913 movx @dptr,a
17D4 A3 5914 inc dptr
17D5 F0 5915 movx @dptr,a
5916 ; ../../include/ztex-conf.h:139: break;
17D6 02 18 97 5917 ljmp 00186$
17D9 5918 00173$:
5919 ; ../../include/ztex-flash2.h:675: spi_read_ep0();
17D9 12 0C ED 5920 lcall _spi_read_ep0
5921 ; ../../include/ztex-flash2.h:676: EP0BCH = 0;
17DC 90 E6 8A 5922 mov dptr,#_EP0BCH
17DF E4 5923 clr a
17E0 F0 5924 movx @dptr,a
5925 ; ../../include/ztex-flash2.h:677: EP0BCL = ep0_payload_transfer;
17E1 90 3A 38 5926 mov dptr,#_ep0_payload_transfer
17E4 E0 5927 movx a,@dptr
17E5 FA 5928 mov r2,a
17E6 90 E6 8B 5929 mov dptr,#_EP0BCL
17E9 F0 5930 movx @dptr,a
5931 ; ../../include/ztex-conf.h:102: break;
17EA 02 18 97 5932 ljmp 00186$
5933 ; ../../include/ztex-conf.h:100: case $0:
17ED 5934 00175$:
5935 ; ../../include/ztex-utils.h:121: AUTOPTRL1=LO(&($0));
17ED 75 9B 0E 5936 mov _AUTOPTRL1,#_flash_ec
5937 ; ../../include/ztex-utils.h:122: AUTOPTRH1=HI(&($0));
17F0 7A 0E 5938 mov r2,#_flash_ec
17F2 7B 3A 5939 mov r3,#(_flash_ec >> 8)
17F4 8B 9A 5940 mov _AUTOPTRH1,r3
5941 ; ../../include/ztex-utils.h:123: AUTOPTRL2=LO(&($1));
17F6 75 9E 40 5942 mov _AUTOPTRL2,#0x40
5943 ; ../../include/ztex-utils.h:124: AUTOPTRH2=HI(&($1));
17F9 75 9D E7 5944 mov _AUTOPTRH2,#0xE7
5945 ; ../../include/ztex-utils.h:130: __endasm;
5946
17FC C0 02 5947 push ar2
17FE 7A 0A 5948 mov r2,#(10);
1800 12 02 AD 5949 lcall _MEM_COPY1_int
1803 D0 02 5950 pop ar2
5951
5952 ; ../../include/ztex-flash2.h:719: EP0BCH = 0;
1805 90 E6 8A 5953 mov dptr,#_EP0BCH
1808 E4 5954 clr a
1809 F0 5955 movx @dptr,a
5956 ; ../../include/ztex-flash2.h:720: EP0BCL = 10;
180A 90 E6 8B 5957 mov dptr,#_EP0BCL
180D 74 0A 5958 mov a,#0x0A
180F F0 5959 movx @dptr,a
5960 ; ../../include/ztex-conf.h:102: break;
1810 02 18 97 5961 ljmp 00186$
5962 ; ../../include/ztex-conf.h:100: case $0:
1813 5963 00176$:
5964 ; ../../include/ztex-utils.h:121: AUTOPTRL1=LO(&($0));
1813 75 9B 20 5965 mov _AUTOPTRL1,#_fpga_checksum
5966 ; ../../include/ztex-utils.h:122: AUTOPTRH1=HI(&($0));
1816 7A 20 5967 mov r2,#_fpga_checksum
1818 7B 3A 5968 mov r3,#(_fpga_checksum >> 8)
181A 8B 9A 5969 mov _AUTOPTRH1,r3
5970 ; ../../include/ztex-utils.h:123: AUTOPTRL2=LO(&($1));
181C 75 9E 41 5971 mov _AUTOPTRL2,#(_EP0BUF + 0x0001)
5972 ; ../../include/ztex-utils.h:124: AUTOPTRH2=HI(&($1));
181F 7A 41 5973 mov r2,#(_EP0BUF + 0x0001)
1821 7B E7 5974 mov r3,#((_EP0BUF + 0x0001) >> 8)
1823 8B 9D 5975 mov _AUTOPTRH2,r3
5976 ; ../../include/ztex-utils.h:130: __endasm;
5977
1825 C0 02 5978 push ar2
1827 7A 07 5979 mov r2,#(7);
1829 12 02 AD 5980 lcall _MEM_COPY1_int
182C D0 02 5981 pop ar2
5982
5983 ; ../../include/ztex-fpga7.h:144: OEE = (OEE & ~bmBIT6) | bmBIT7;
182E AA B6 5984 mov r2,_OEE
1830 74 BF 5985 mov a,#0xBF
1832 5A 5986 anl a,r2
1833 F5 F0 5987 mov b,a
1835 74 80 5988 mov a,#0x80
1837 45 F0 5989 orl a,b
1839 F5 B6 5990 mov _OEE,a
5991 ; ../../include/ztex-fpga7.h:145: if ( IOE & bmBIT6 ) {
183B E5 B1 5992 mov a,_IOE
183D 30 E6 07 5993 jnb acc.6,00178$
5994 ; ../../include/ztex-fpga7.h:146: EP0BUF[0] = 0; // FPGA configured
1840 90 E7 40 5995 mov dptr,#_EP0BUF
1843 E4 5996 clr a
1844 F0 5997 movx @dptr,a
1845 80 09 5998 sjmp 00179$
1847 5999 00178$:
6000 ; ../../include/ztex-fpga7.h:149: EP0BUF[0] = 1; // FPGA unconfigured
1847 90 E7 40 6001 mov dptr,#_EP0BUF
184A 74 01 6002 mov a,#0x01
184C F0 6003 movx @dptr,a
6004 ; ../../include/ztex-fpga7.h:150: reset_fpga(); // prepare FPGA for configuration
184D 12 0D 33 6005 lcall _reset_fpga
1850 6006 00179$:
6007 ; ../../include/ztex-fpga7.h:153: EP0BUF[8] = 1; // bit order for bitstream in Flash memory: swapped
1850 90 E7 48 6008 mov dptr,#(_EP0BUF + 0x0008)
1853 74 01 6009 mov a,#0x01
1855 F0 6010 movx @dptr,a
6011 ; ../../include/ztex-fpga7.h:155: EP0BCH = 0;
1856 90 E6 8A 6012 mov dptr,#_EP0BCH
1859 E4 6013 clr a
185A F0 6014 movx @dptr,a
6015 ; ../../include/ztex-fpga7.h:156: EP0BCL = 9;
185B 90 E6 8B 6016 mov dptr,#_EP0BCL
185E 74 09 6017 mov a,#0x09
1860 F0 6018 movx @dptr,a
6019 ; ../../include/ztex-conf.h:102: break;
6020 ; ../../include/ztex-isr.h:297: default:
1861 80 34 6021 sjmp 00186$
1863 6022 00180$:
6023 ; ../../include/ztex-isr.h:298: EP0CS |= 0x01; // set stall, unknown request
1863 90 E6 A0 6024 mov dptr,#_EP0CS
1866 E0 6025 movx a,@dptr
1867 FA 6026 mov r2,a
1868 44 01 6027 orl a,#0x01
186A F0 6028 movx @dptr,a
6029 ; ../../include/ztex-isr.h:300: break;
6030 ; ../../include/ztex-isr.h:301: case 0x40: // vendor command
186B 80 2A 6031 sjmp 00186$
186D 6032 00182$:
6033 ; ../../include/ztex-isr.h:305: if ( SETUPDAT[7]!=0 || SETUPDAT[6]!=0 ) {
186D 90 E6 BF 6034 mov dptr,#(_SETUPDAT + 0x0007)
1870 E0 6035 movx a,@dptr
1871 70 06 6036 jnz 00183$
1873 90 E6 BE 6037 mov dptr,#(_SETUPDAT + 0x0006)
1876 E0 6038 movx a,@dptr
1877 60 16 6039 jz 00184$
1879 6040 00183$:
6041 ; ../../include/ztex-isr.h:306: ep0_vendor_cmd_setup = 1;
1879 90 3A 3A 6042 mov dptr,#_ep0_vendor_cmd_setup
187C 74 01 6043 mov a,#0x01
187E F0 6044 movx @dptr,a
6045 ; ../../include/ztex-isr.h:307: EP0BCL = 0;
187F 90 E6 8B 6046 mov dptr,#_EP0BCL
1882 E4 6047 clr a
1883 F0 6048 movx @dptr,a
6049 ; ../../include/ztex-isr.h:308: EXIF &= ~bmBIT4; // clear main USB interrupt flag
1884 53 91 EF 6050 anl _EXIF,#0xEF
6051 ; ../../include/ztex-isr.h:309: USBIRQ = bmBIT0; // clear SUADV IRQ
1887 90 E6 5D 6052 mov dptr,#_USBIRQ
188A 74 01 6053 mov a,#0x01
188C 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
188D 80 19 6056 sjmp 00187$
188F 6057 00184$:
6058 ; ../../include/ztex-isr.h:312: ep0_vendor_cmd_su(); // setup sequences of vendor command with no payload ara executed immediately
188F 12 11 F3 6059 lcall _ep0_vendor_cmd_su
6060 ; ../../include/ztex-isr.h:313: EP0BCL = 0;
1892 90 E6 8B 6061 mov dptr,#_EP0BCL
1895 E4 6062 clr a
1896 F0 6063 movx @dptr,a
6064 ; ../../include/ztex-isr.h:315: }
1897 6065 00186$:
6066 ; ../../include/ztex-isr.h:317: EXIF &= ~bmBIT4; // clear main USB interrupt flag
1897 53 91 EF 6067 anl _EXIF,#0xEF
6068 ; ../../include/ztex-isr.h:318: USBIRQ = bmBIT0; // clear SUADV IRQ
189A 90 E6 5D 6069 mov dptr,#_USBIRQ
189D 74 01 6070 mov a,#0x01
189F F0 6071 movx @dptr,a
6072 ; ../../include/ztex-isr.h:319: EP0CS |= 0x80; // clear the HSNAK bit
18A0 90 E6 A0 6073 mov dptr,#_EP0CS
18A3 E0 6074 movx a,@dptr
18A4 FA 6075 mov r2,a
18A5 44 80 6076 orl a,#0x80
18A7 F0 6077 movx @dptr,a
18A8 6078 00187$:
18A8 D0 D0 6079 pop psw
18AA D0 01 6080 pop (0+1)
18AC D0 00 6081 pop (0+0)
18AE D0 07 6082 pop (0+7)
18B0 D0 06 6083 pop (0+6)
18B2 D0 05 6084 pop (0+5)
18B4 D0 04 6085 pop (0+4)
18B6 D0 03 6086 pop (0+3)
18B8 D0 02 6087 pop (0+2)
18BA D0 83 6088 pop dph
18BC D0 82 6089 pop dpl
18BE D0 F0 6090 pop b
18C0 D0 E0 6091 pop acc
18C2 D0 20 6092 pop bits
18C4 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 ; -----------------------------------------
18C5 6102 _SOF_ISR:
18C5 C0 E0 6103 push acc
18C7 C0 82 6104 push dpl
18C9 C0 83 6105 push dph
6106 ; ../../include/ztex-isr.h:327: EXIF &= ~bmBIT4;
18CB 53 91 EF 6107 anl _EXIF,#0xEF
6108 ; ../../include/ztex-isr.h:328: USBIRQ = bmBIT1;
18CE 90 E6 5D 6109 mov dptr,#_USBIRQ
18D1 74 02 6110 mov a,#0x02
18D3 F0 6111 movx @dptr,a
18D4 D0 83 6112 pop dph
18D6 D0 82 6113 pop dpl
18D8 D0 E0 6114 pop acc
18DA 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 ; -----------------------------------------
18DB 6126 _SUTOK_ISR:
18DB C0 E0 6127 push acc
18DD C0 82 6128 push dpl
18DF C0 83 6129 push dph
6130 ; ../../include/ztex-isr.h:336: EXIF &= ~bmBIT4;
18E1 53 91 EF 6131 anl _EXIF,#0xEF
6132 ; ../../include/ztex-isr.h:337: USBIRQ = bmBIT2;
18E4 90 E6 5D 6133 mov dptr,#_USBIRQ
18E7 74 04 6134 mov a,#0x04
18E9 F0 6135 movx @dptr,a
18EA D0 83 6136 pop dph
18EC D0 82 6137 pop dpl
18EE D0 E0 6138 pop acc
18F0 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 ; -----------------------------------------
18F1 6150 _SUSP_ISR:
18F1 C0 E0 6151 push acc
18F3 C0 82 6152 push dpl
18F5 C0 83 6153 push dph
6154 ; ../../include/ztex-isr.h:345: EXIF &= ~bmBIT4;
18F7 53 91 EF 6155 anl _EXIF,#0xEF
6156 ; ../../include/ztex-isr.h:346: USBIRQ = bmBIT3;
18FA 90 E6 5D 6157 mov dptr,#_USBIRQ
18FD 74 08 6158 mov a,#0x08
18FF F0 6159 movx @dptr,a
1900 D0 83 6160 pop dph
1902 D0 82 6161 pop dpl
1904 D0 E0 6162 pop acc
1906 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 ; -----------------------------------------
1907 6174 _URES_ISR:
1907 C0 E0 6175 push acc
1909 C0 82 6176 push dpl
190B C0 83 6177 push dph
6178 ; ../../include/ztex-isr.h:354: EXIF &= ~bmBIT4;
190D 53 91 EF 6179 anl _EXIF,#0xEF
6180 ; ../../include/ztex-isr.h:355: USBIRQ = bmBIT4;
1910 90 E6 5D 6181 mov dptr,#_USBIRQ
1913 74 10 6182 mov a,#0x10
1915 F0 6183 movx @dptr,a
1916 D0 83 6184 pop dph
1918 D0 82 6185 pop dpl
191A D0 E0 6186 pop acc
191C 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 ; -----------------------------------------
191D 6198 _HSGRANT_ISR:
191D C0 E0 6199 push acc
191F C0 82 6200 push dpl
1921 C0 83 6201 push dph
6202 ; ../../include/ztex-isr.h:363: EXIF &= ~bmBIT4;
1923 53 91 EF 6203 anl _EXIF,#0xEF
6204 ; ../../include/ztex-isr.h:365: USBIRQ = bmBIT5;
1926 90 E6 5D 6205 mov dptr,#_USBIRQ
1929 74 20 6206 mov a,#0x20
192B F0 6207 movx @dptr,a
192C D0 83 6208 pop dph
192E D0 82 6209 pop dpl
1930 D0 E0 6210 pop acc
1932 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 ; -----------------------------------------
1933 6222 _EP0ACK_ISR:
1933 C0 E0 6223 push acc
1935 C0 82 6224 push dpl
1937 C0 83 6225 push dph
6226 ; ../../include/ztex-isr.h:373: EXIF &= ~bmBIT4; // clear USB interrupt flag
1939 53 91 EF 6227 anl _EXIF,#0xEF
6228 ; ../../include/ztex-isr.h:374: USBIRQ = bmBIT6; // clear EP0ACK IRQ
193C 90 E6 5D 6229 mov dptr,#_USBIRQ
193F 74 40 6230 mov a,#0x40
1941 F0 6231 movx @dptr,a
1942 D0 83 6232 pop dph
1944 D0 82 6233 pop dpl
1946 D0 E0 6234 pop acc
1948 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 ; -----------------------------------------
1949 6246 _EP0IN_ISR:
1949 C0 20 6247 push bits
194B C0 E0 6248 push acc
194D C0 F0 6249 push b
194F C0 82 6250 push dpl
1951 C0 83 6251 push dph
1953 C0 02 6252 push (0+2)
1955 C0 03 6253 push (0+3)
1957 C0 04 6254 push (0+4)
1959 C0 05 6255 push (0+5)
195B C0 06 6256 push (0+6)
195D C0 07 6257 push (0+7)
195F C0 00 6258 push (0+0)
1961 C0 01 6259 push (0+1)
1963 C0 D0 6260 push psw
1965 75 D0 00 6261 mov psw,#0x00
6262 ; ../../include/ztex-isr.h:382: EUSB = 0; // block all USB interrupts
1968 C2 E8 6263 clr _EUSB
6264 ; ../../include/ztex-isr.h:383: ep0_payload_update();
196A 12 11 C6 6265 lcall _ep0_payload_update
6266 ; ../../include/ztex-isr.h:384: switch ( ep0_prev_setup_request ) {
196D 90 3A 39 6267 mov dptr,#_ep0_prev_setup_request
1970 E0 6268 movx a,@dptr
1971 FA 6269 mov r2,a
1972 BA 30 03 6270 cjne r2,#0x30,00124$
1975 02 19 E3 6271 ljmp 00112$
1978 6272 00124$:
1978 BA 38 02 6273 cjne r2,#0x38,00125$
197B 80 1E 6274 sjmp 00101$
197D 6275 00125$:
197D BA 3A 02 6276 cjne r2,#0x3A,00126$
1980 80 61 6277 sjmp 00112$
1982 6278 00126$:
1982 BA 3B 02 6279 cjne r2,#0x3B,00127$
1985 80 24 6280 sjmp 00103$
1987 6281 00127$:
1987 BA 3D 02 6282 cjne r2,#0x3D,00128$
198A 80 57 6283 sjmp 00112$
198C 6284 00128$:
198C BA 40 02 6285 cjne r2,#0x40,00129$
198F 80 52 6286 sjmp 00112$
1991 6287 00129$:
1991 BA 41 02 6288 cjne r2,#0x41,00130$
1994 80 25 6289 sjmp 00106$
1996 6290 00130$:
6291 ; ../../include/ztex-conf.h:105: case $0:
1996 BA 43 41 6292 cjne r2,#0x43,00111$
1999 80 48 6293 sjmp 00112$
199B 6294 00101$:
6295 ; ../../include/ztex-eeprom.h:222: EP0BCH = 0;
199B 90 E6 8A 6296 mov dptr,#_EP0BCH
199E E4 6297 clr a
199F F0 6298 movx @dptr,a
6299 ; ../../include/ztex-eeprom.h:223: EP0BCL = eeprom_read_ep0();
19A0 12 05 73 6300 lcall _eeprom_read_ep0
19A3 E5 82 6301 mov a,dpl
19A5 90 E6 8B 6302 mov dptr,#_EP0BCL
19A8 F0 6303 movx @dptr,a
6304 ; ../../include/ztex-conf.h:107: break;
6305 ; ../../include/ztex-conf.h:105: case $0:
19A9 80 38 6306 sjmp 00112$
19AB 6307 00103$:
6308 ; ../../include/ztex-eeprom.h:371: EP0BCH = 0;
19AB 90 E6 8A 6309 mov dptr,#_EP0BCH
19AE E4 6310 clr a
19AF F0 6311 movx @dptr,a
6312 ; ../../include/ztex-eeprom.h:372: EP0BCL = mac_eeprom_read_ep0();
19B0 12 07 B9 6313 lcall _mac_eeprom_read_ep0
19B3 E5 82 6314 mov a,dpl
19B5 90 E6 8B 6315 mov dptr,#_EP0BCL
19B8 F0 6316 movx @dptr,a
6317 ; ../../include/ztex-conf.h:107: break;
6318 ; ../../include/ztex-conf.h:105: case $0:
19B9 80 28 6319 sjmp 00112$
19BB 6320 00106$:
6321 ; ../../include/ztex-flash2.h:679: if ( ep0_payload_transfer != 0 ) {
19BB 90 3A 38 6322 mov dptr,#_ep0_payload_transfer
19BE E0 6323 movx a,@dptr
19BF FA 6324 mov r2,a
19C0 60 08 6325 jz 00108$
6326 ; ../../include/ztex-flash2.h:680: flash_ec = 0;
19C2 90 3A 0E 6327 mov dptr,#_flash_ec
19C5 E4 6328 clr a
19C6 F0 6329 movx @dptr,a
6330 ; ../../include/ztex-flash2.h:681: spi_read_ep0();
19C7 12 0C ED 6331 lcall _spi_read_ep0
19CA 6332 00108$:
6333 ; ../../include/ztex-flash2.h:683: EP0BCH = 0;
19CA 90 E6 8A 6334 mov dptr,#_EP0BCH
19CD E4 6335 clr a
19CE F0 6336 movx @dptr,a
6337 ; ../../include/ztex-flash2.h:684: EP0BCL = ep0_payload_transfer;
19CF 90 3A 38 6338 mov dptr,#_ep0_payload_transfer
19D2 E0 6339 movx a,@dptr
19D3 FA 6340 mov r2,a
19D4 90 E6 8B 6341 mov dptr,#_EP0BCL
19D7 F0 6342 movx @dptr,a
6343 ; ../../include/ztex-conf.h:107: break;
6344 ; ../../include/ztex-isr.h:386: default:
19D8 80 09 6345 sjmp 00112$
19DA 6346 00111$:
6347 ; ../../include/ztex-isr.h:387: EP0BCH = 0;
19DA 90 E6 8A 6348 mov dptr,#_EP0BCH
6349 ; ../../include/ztex-isr.h:388: EP0BCL = 0;
19DD E4 6350 clr a
19DE F0 6351 movx @dptr,a
19DF 90 E6 8B 6352 mov dptr,#_EP0BCL
19E2 F0 6353 movx @dptr,a
6354 ; ../../include/ztex-isr.h:389: }
19E3 6355 00112$:
6356 ; ../../include/ztex-isr.h:390: EXIF &= ~bmBIT4; // clear USB interrupt flag
19E3 53 91 EF 6357 anl _EXIF,#0xEF
6358 ; ../../include/ztex-isr.h:391: EPIRQ = bmBIT0; // clear EP0IN IRQ
19E6 90 E6 5F 6359 mov dptr,#_EPIRQ
19E9 74 01 6360 mov a,#0x01
19EB F0 6361 movx @dptr,a
6362 ; ../../include/ztex-isr.h:392: EUSB = 1;
19EC D2 E8 6363 setb _EUSB
19EE D0 D0 6364 pop psw
19F0 D0 01 6365 pop (0+1)
19F2 D0 00 6366 pop (0+0)
19F4 D0 07 6367 pop (0+7)
19F6 D0 06 6368 pop (0+6)
19F8 D0 05 6369 pop (0+5)
19FA D0 04 6370 pop (0+4)
19FC D0 03 6371 pop (0+3)
19FE D0 02 6372 pop (0+2)
1A00 D0 83 6373 pop dph
1A02 D0 82 6374 pop dpl
1A04 D0 F0 6375 pop b
1A06 D0 E0 6376 pop acc
1A08 D0 20 6377 pop bits
1A0A 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 ; -----------------------------------------
1A0B 6387 _EP0OUT_ISR:
1A0B C0 20 6388 push bits
1A0D C0 E0 6389 push acc
1A0F C0 F0 6390 push b
1A11 C0 82 6391 push dpl
1A13 C0 83 6392 push dph
1A15 C0 02 6393 push (0+2)
1A17 C0 03 6394 push (0+3)
1A19 C0 04 6395 push (0+4)
1A1B C0 05 6396 push (0+5)
1A1D C0 06 6397 push (0+6)
1A1F C0 07 6398 push (0+7)
1A21 C0 00 6399 push (0+0)
1A23 C0 01 6400 push (0+1)
1A25 C0 D0 6401 push psw
1A27 75 D0 00 6402 mov psw,#0x00
6403 ; ../../include/ztex-isr.h:400: EUSB = 0; // block all USB interrupts
1A2A C2 E8 6404 clr _EUSB
6405 ; ../../include/ztex-isr.h:401: if ( ep0_vendor_cmd_setup ) {
1A2C 90 3A 3A 6406 mov dptr,#_ep0_vendor_cmd_setup
1A2F E0 6407 movx a,@dptr
1A30 FA 6408 mov r2,a
1A31 60 20 6409 jz 00102$
6410 ; ../../include/ztex-isr.h:402: ep0_vendor_cmd_setup = 0;
1A33 90 3A 3A 6411 mov dptr,#_ep0_vendor_cmd_setup
1A36 E4 6412 clr a
1A37 F0 6413 movx @dptr,a
6414 ; ../../include/ztex-isr.h:403: ep0_payload_remaining = (SETUPDAT[7] << 8) | SETUPDAT[6];
1A38 90 E6 BF 6415 mov dptr,#(_SETUPDAT + 0x0007)
1A3B E0 6416 movx a,@dptr
1A3C FB 6417 mov r3,a
1A3D 7A 00 6418 mov r2,#0x00
1A3F 90 E6 BE 6419 mov dptr,#(_SETUPDAT + 0x0006)
1A42 E0 6420 movx a,@dptr
1A43 FC 6421 mov r4,a
1A44 7D 00 6422 mov r5,#0x00
1A46 90 3A 36 6423 mov dptr,#_ep0_payload_remaining
1A49 EC 6424 mov a,r4
1A4A 4A 6425 orl a,r2
1A4B F0 6426 movx @dptr,a
1A4C ED 6427 mov a,r5
1A4D 4B 6428 orl a,r3
1A4E A3 6429 inc dptr
1A4F F0 6430 movx @dptr,a
6431 ; ../../include/ztex-isr.h:404: ep0_vendor_cmd_su();
1A50 12 11 F3 6432 lcall _ep0_vendor_cmd_su
1A53 6433 00102$:
6434 ; ../../include/ztex-isr.h:407: ep0_payload_update();
1A53 12 11 C6 6435 lcall _ep0_payload_update
6436 ; ../../include/ztex-isr.h:409: switch ( ep0_prev_setup_request ) {
1A56 90 3A 39 6437 mov dptr,#_ep0_prev_setup_request
1A59 E0 6438 movx a,@dptr
1A5A FA 6439 mov r2,a
1A5B BA 31 02 6440 cjne r2,#0x31,00127$
1A5E 80 60 6441 sjmp 00112$
1A60 6442 00127$:
1A60 BA 32 02 6443 cjne r2,#0x32,00128$
1A63 80 58 6444 sjmp 00111$
1A65 6445 00128$:
1A65 BA 39 02 6446 cjne r2,#0x39,00129$
1A68 80 0A 6447 sjmp 00103$
1A6A 6448 00129$:
1A6A BA 3C 02 6449 cjne r2,#0x3C,00130$
1A6D 80 10 6450 sjmp 00104$
1A6F 6451 00130$:
6452 ; ../../include/ztex-conf.h:128: case $0:
1A6F BA 42 4E 6453 cjne r2,#0x42,00112$
1A72 80 1F 6454 sjmp 00105$
1A74 6455 00103$:
6456 ; ../../include/ztex-eeprom.h:240: eeprom_write_ep0(EP0BCL);
1A74 90 E6 8B 6457 mov dptr,#_EP0BCL
1A77 E0 6458 movx a,@dptr
1A78 F5 82 6459 mov dpl,a
1A7A 12 05 A7 6460 lcall _eeprom_write_ep0
6461 ; ../../include/ztex-conf.h:130: break;
6462 ; ../../include/ztex-conf.h:128: case $0:
1A7D 80 41 6463 sjmp 00112$
1A7F 6464 00104$:
6465 ; ../../include/ztex-eeprom.h:382: mac_eeprom_write(EP0BUF, mac_eeprom_addr, EP0BCL);
1A7F 90 3A 05 6466 mov dptr,#_mac_eeprom_addr
1A82 E0 6467 movx a,@dptr
1A83 F5 12 6468 mov _mac_eeprom_write_PARM_2,a
1A85 90 E6 8B 6469 mov dptr,#_EP0BCL
1A88 E0 6470 movx a,@dptr
1A89 F5 13 6471 mov _mac_eeprom_write_PARM_3,a
1A8B 90 E7 40 6472 mov dptr,#_EP0BUF
1A8E 12 06 C1 6473 lcall _mac_eeprom_write
6474 ; ../../include/ztex-conf.h:130: break;
6475 ; ../../include/ztex-conf.h:128: case $0:
1A91 80 2D 6476 sjmp 00112$
1A93 6477 00105$:
6478 ; ../../include/ztex-flash2.h:703: if ( ep0_payload_transfer != 0 ) {
1A93 90 3A 38 6479 mov dptr,#_ep0_payload_transfer
1A96 E0 6480 movx a,@dptr
1A97 FA 6481 mov r2,a
1A98 60 26 6482 jz 00112$
6483 ; ../../include/ztex-flash2.h:704: flash_ec = 0;
1A9A 90 3A 0E 6484 mov dptr,#_flash_ec
1A9D E4 6485 clr a
1A9E F0 6486 movx @dptr,a
6487 ; ../../include/ztex-flash2.h:705: spi_send_ep0();
1A9F 12 0D 10 6488 lcall _spi_send_ep0
6489 ; ../../include/ztex-flash2.h:706: if ( flash_ec != 0 ) {
1AA2 90 3A 0E 6490 mov dptr,#_flash_ec
1AA5 E0 6491 movx a,@dptr
1AA6 FA 6492 mov r2,a
1AA7 60 17 6493 jz 00112$
6494 ; ../../include/ztex-flash2.h:707: spi_deselect();
1AA9 12 08 ED 6495 lcall _spi_deselect
6496 ; ../../include/ztex-conf.h:137: EP0CS |= 0x01; // set stall
1AAC 90 E6 A0 6497 mov dptr,#_EP0CS
1AAF E0 6498 movx a,@dptr
1AB0 FA 6499 mov r2,a
1AB1 44 01 6500 orl a,#0x01
1AB3 F0 6501 movx @dptr,a
6502 ; ../../include/ztex-conf.h:138: ep0_payload_remaining = 0;
1AB4 90 3A 36 6503 mov dptr,#_ep0_payload_remaining
1AB7 E4 6504 clr a
1AB8 F0 6505 movx @dptr,a
1AB9 A3 6506 inc dptr
1ABA F0 6507 movx @dptr,a
6508 ; ../../include/ztex-conf.h:139: break;
6509 ; ../../include/ztex-conf.h:128: case $0:
1ABB 80 03 6510 sjmp 00112$
1ABD 6511 00111$:
6512 ; ../../include/ztex-fpga7.h:211: fpga_send_ep0();
1ABD 12 0E 67 6513 lcall _fpga_send_ep0
6514 ; ../../include/ztex-isr.h:411: }
1AC0 6515 00112$:
6516 ; ../../include/ztex-isr.h:413: EP0BCL = 0;
1AC0 90 E6 8B 6517 mov dptr,#_EP0BCL
1AC3 E4 6518 clr a
1AC4 F0 6519 movx @dptr,a
6520 ; ../../include/ztex-isr.h:415: EXIF &= ~bmBIT4; // clear main USB interrupt flag
1AC5 53 91 EF 6521 anl _EXIF,#0xEF
6522 ; ../../include/ztex-isr.h:416: EPIRQ = bmBIT1; // clear EP0OUT IRQ
1AC8 90 E6 5F 6523 mov dptr,#_EPIRQ
1ACB 74 02 6524 mov a,#0x02
1ACD F0 6525 movx @dptr,a
6526 ; ../../include/ztex-isr.h:417: if ( ep0_payload_remaining == 0 ) {
1ACE 90 3A 36 6527 mov dptr,#_ep0_payload_remaining
1AD1 E0 6528 movx a,@dptr
1AD2 FA 6529 mov r2,a
1AD3 A3 6530 inc dptr
1AD4 E0 6531 movx a,@dptr
1AD5 FB 6532 mov r3,a
1AD6 4A 6533 orl a,r2
1AD7 70 08 6534 jnz 00114$
6535 ; ../../include/ztex-isr.h:418: EP0CS |= 0x80; // clear the HSNAK bit
1AD9 90 E6 A0 6536 mov dptr,#_EP0CS
1ADC E0 6537 movx a,@dptr
1ADD FA 6538 mov r2,a
1ADE 44 80 6539 orl a,#0x80
1AE0 F0 6540 movx @dptr,a
1AE1 6541 00114$:
6542 ; ../../include/ztex-isr.h:420: EUSB = 1;
1AE1 D2 E8 6543 setb _EUSB
1AE3 D0 D0 6544 pop psw
1AE5 D0 01 6545 pop (0+1)
1AE7 D0 00 6546 pop (0+0)
1AE9 D0 07 6547 pop (0+7)
1AEB D0 06 6548 pop (0+6)
1AED D0 05 6549 pop (0+5)
1AEF D0 04 6550 pop (0+4)
1AF1 D0 03 6551 pop (0+3)
1AF3 D0 02 6552 pop (0+2)
1AF5 D0 83 6553 pop dph
1AF7 D0 82 6554 pop dpl
1AF9 D0 F0 6555 pop b
1AFB D0 E0 6556 pop acc
1AFD D0 20 6557 pop bits
1AFF 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 ; -----------------------------------------
1B00 6567 _EP1IN_ISR:
1B00 C0 E0 6568 push acc
1B02 C0 82 6569 push dpl
1B04 C0 83 6570 push dph
6571 ; ../../include/ztex-isr.h:429: EXIF &= ~bmBIT4;
1B06 53 91 EF 6572 anl _EXIF,#0xEF
6573 ; ../../include/ztex-isr.h:430: EPIRQ = bmBIT2;
1B09 90 E6 5F 6574 mov dptr,#_EPIRQ
1B0C 74 04 6575 mov a,#0x04
1B0E F0 6576 movx @dptr,a
1B0F D0 83 6577 pop dph
1B11 D0 82 6578 pop dpl
1B13 D0 E0 6579 pop acc
1B15 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 ; -----------------------------------------
1B16 6591 _EP1OUT_ISR:
1B16 C0 E0 6592 push acc
1B18 C0 82 6593 push dpl
1B1A C0 83 6594 push dph
6595 ; ../../include/ztex-isr.h:439: EXIF &= ~bmBIT4;
1B1C 53 91 EF 6596 anl _EXIF,#0xEF
6597 ; ../../include/ztex-isr.h:440: EPIRQ = bmBIT3;
1B1F 90 E6 5F 6598 mov dptr,#_EPIRQ
1B22 74 08 6599 mov a,#0x08
1B24 F0 6600 movx @dptr,a
1B25 D0 83 6601 pop dph
1B27 D0 82 6602 pop dpl
1B29 D0 E0 6603 pop acc
1B2B 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 ; -----------------------------------------
1B2C 6615 _EP2_ISR:
1B2C C0 E0 6616 push acc
1B2E C0 82 6617 push dpl
1B30 C0 83 6618 push dph
6619 ; ../../include/ztex-isr.h:448: EXIF &= ~bmBIT4;
1B32 53 91 EF 6620 anl _EXIF,#0xEF
6621 ; ../../include/ztex-isr.h:449: EPIRQ = bmBIT4;
1B35 90 E6 5F 6622 mov dptr,#_EPIRQ
1B38 74 10 6623 mov a,#0x10
1B3A F0 6624 movx @dptr,a
1B3B D0 83 6625 pop dph
1B3D D0 82 6626 pop dpl
1B3F D0 E0 6627 pop acc
1B41 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 ; -----------------------------------------
1B42 6639 _EP4_ISR:
1B42 C0 E0 6640 push acc
1B44 C0 82 6641 push dpl
1B46 C0 83 6642 push dph
6643 ; ../../include/ztex-isr.h:457: EXIF &= ~bmBIT4;
1B48 53 91 EF 6644 anl _EXIF,#0xEF
6645 ; ../../include/ztex-isr.h:458: EPIRQ = bmBIT5;
1B4B 90 E6 5F 6646 mov dptr,#_EPIRQ
1B4E 74 20 6647 mov a,#0x20
1B50 F0 6648 movx @dptr,a
1B51 D0 83 6649 pop dph
1B53 D0 82 6650 pop dpl
1B55 D0 E0 6651 pop acc
1B57 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 ; -----------------------------------------
1B58 6663 _EP6_ISR:
1B58 C0 E0 6664 push acc
1B5A C0 82 6665 push dpl
1B5C C0 83 6666 push dph
6667 ; ../../include/ztex-isr.h:466: EXIF &= ~bmBIT4;
1B5E 53 91 EF 6668 anl _EXIF,#0xEF
6669 ; ../../include/ztex-isr.h:467: EPIRQ = bmBIT6;
1B61 90 E6 5F 6670 mov dptr,#_EPIRQ
1B64 74 40 6671 mov a,#0x40
1B66 F0 6672 movx @dptr,a
1B67 D0 83 6673 pop dph
1B69 D0 82 6674 pop dpl
1B6B D0 E0 6675 pop acc
1B6D 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 ; -----------------------------------------
1B6E 6687 _EP8_ISR:
1B6E C0 E0 6688 push acc
1B70 C0 82 6689 push dpl
1B72 C0 83 6690 push dph
6691 ; ../../include/ztex-isr.h:475: EXIF &= ~bmBIT4;
1B74 53 91 EF 6692 anl _EXIF,#0xEF
6693 ; ../../include/ztex-isr.h:476: EPIRQ = bmBIT7;
1B77 90 E6 5F 6694 mov dptr,#_EPIRQ
1B7A 74 80 6695 mov a,#0x80
1B7C F0 6696 movx @dptr,a
1B7D D0 83 6697 pop dph
1B7F D0 82 6698 pop dpl
1B81 D0 E0 6699 pop acc
1B83 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 ; -----------------------------------------
1B84 6715 _mac_eeprom_init:
6716 ; ../../include/ztex.h:274: mac_eeprom_read ( buf, 0, 3 ); // read signature
1B84 75 10 00 6717 mov _mac_eeprom_read_PARM_2,#0x00
1B87 75 11 03 6718 mov _mac_eeprom_read_PARM_3,#0x03
1B8A 90 3A 31 6719 mov dptr,#_mac_eeprom_init_buf_1_1
1B8D 12 05 D4 6720 lcall _mac_eeprom_read
6721 ; ../../include/ztex.h:275: if ( buf[0]==67 && buf[1]==68 && buf[2]==48 ) {
1B90 90 3A 31 6722 mov dptr,#_mac_eeprom_init_buf_1_1
1B93 E0 6723 movx a,@dptr
1B94 FA 6724 mov r2,a
1B95 BA 43 24 6725 cjne r2,#0x43,00102$
1B98 90 3A 32 6726 mov dptr,#(_mac_eeprom_init_buf_1_1 + 0x0001)
1B9B E0 6727 movx a,@dptr
1B9C FA 6728 mov r2,a
1B9D BA 44 1C 6729 cjne r2,#0x44,00102$
1BA0 90 3A 33 6730 mov dptr,#(_mac_eeprom_init_buf_1_1 + 0x0002)
1BA3 E0 6731 movx a,@dptr
1BA4 FA 6732 mov r2,a
1BA5 BA 30 14 6733 cjne r2,#0x30,00102$
6734 ; ../../include/ztex.h:276: config_data_valid = 1;
1BA8 90 3A 06 6735 mov dptr,#_config_data_valid
1BAB 74 01 6736 mov a,#0x01
1BAD F0 6737 movx @dptr,a
6738 ; ../../include/ztex.h:277: mac_eeprom_read ( SN_STRING, 16, 10 ); // copy serial number
1BAE 75 10 10 6739 mov _mac_eeprom_read_PARM_2,#0x10
1BB1 75 11 0A 6740 mov _mac_eeprom_read_PARM_3,#0x0A
1BB4 90 00 8A 6741 mov dptr,#_SN_STRING
1BB7 12 05 D4 6742 lcall _mac_eeprom_read
1BBA 80 05 6743 sjmp 00123$
1BBC 6744 00102$:
6745 ; ../../include/ztex.h:280: config_data_valid = 0;
1BBC 90 3A 06 6746 mov dptr,#_config_data_valid
1BBF E4 6747 clr a
1BC0 F0 6748 movx @dptr,a
6749 ; ../../include/ztex.h:283: for (b=0; b<10; b++) { // abort if SN != "0000000000"
1BC1 6750 00123$:
1BC1 7A 00 6751 mov r2,#0x00
1BC3 6752 00108$:
1BC3 BA 0A 00 6753 cjne r2,#0x0A,00133$
1BC6 6754 00133$:
1BC6 50 12 6755 jnc 00111$
6756 ; ../../include/ztex.h:284: if ( SN_STRING[b] != 48 )
1BC8 EA 6757 mov a,r2
1BC9 24 8A 6758 add a,#_SN_STRING
1BCB F5 82 6759 mov dpl,a
1BCD E4 6760 clr a
1BCE 34 00 6761 addc a,#(_SN_STRING >> 8)
1BD0 F5 83 6762 mov dph,a
1BD2 E0 6763 movx a,@dptr
1BD3 FB 6764 mov r3,a
6765 ; ../../include/ztex.h:285: return;
1BD4 BB 30 54 6766 cjne r3,#0x30,00116$
6767 ; ../../include/ztex.h:283: for (b=0; b<10; b++) { // abort if SN != "0000000000"
1BD7 0A 6768 inc r2
1BD8 80 E9 6769 sjmp 00108$
1BDA 6770 00111$:
6771 ; ../../include/ztex.h:288: mac_eeprom_read ( buf, 0xfb, 5 ); // read the last 5 MAC digits
1BDA 75 10 FB 6772 mov _mac_eeprom_read_PARM_2,#0xFB
1BDD 75 11 05 6773 mov _mac_eeprom_read_PARM_3,#0x05
1BE0 90 3A 31 6774 mov dptr,#_mac_eeprom_init_buf_1_1
1BE3 12 05 D4 6775 lcall _mac_eeprom_read
6776 ; ../../include/ztex.h:290: c=0;
1BE6 7A 00 6777 mov r2,#0x00
6778 ; ../../include/ztex.h:291: for (b=0; b<5; b++) { // convert to MAC to SN string
1BE8 7B 00 6779 mov r3,#0x00
1BEA 6780 00112$:
1BEA BB 05 00 6781 cjne r3,#0x05,00136$
1BED 6782 00136$:
1BED 50 3C 6783 jnc 00116$
6784 ; ../../include/ztex.h:292: d = buf[b];
1BEF EB 6785 mov a,r3
1BF0 24 31 6786 add a,#_mac_eeprom_init_buf_1_1
1BF2 F5 82 6787 mov dpl,a
1BF4 E4 6788 clr a
1BF5 34 3A 6789 addc a,#(_mac_eeprom_init_buf_1_1 >> 8)
1BF7 F5 83 6790 mov dph,a
1BF9 E0 6791 movx a,@dptr
1BFA FC 6792 mov r4,a
6793 ; ../../include/ztex.h:293: SN_STRING[c] = hexdigits[d>>4];
1BFB EA 6794 mov a,r2
1BFC 24 8A 6795 add a,#_SN_STRING
1BFE FD 6796 mov r5,a
1BFF E4 6797 clr a
1C00 34 00 6798 addc a,#(_SN_STRING >> 8)
1C02 FE 6799 mov r6,a
1C03 EC 6800 mov a,r4
1C04 C4 6801 swap a
1C05 54 0F 6802 anl a,#0x0f
1C07 90 1E EE 6803 mov dptr,#_mac_eeprom_init_hexdigits_1_1
1C0A 93 6804 movc a,@a+dptr
1C0B FF 6805 mov r7,a
1C0C 8D 82 6806 mov dpl,r5
1C0E 8E 83 6807 mov dph,r6
1C10 F0 6808 movx @dptr,a
6809 ; ../../include/ztex.h:294: c++;
1C11 0A 6810 inc r2
6811 ; ../../include/ztex.h:295: SN_STRING[c] = hexdigits[d & 15];
1C12 EA 6812 mov a,r2
1C13 24 8A 6813 add a,#_SN_STRING
1C15 FD 6814 mov r5,a
1C16 E4 6815 clr a
1C17 34 00 6816 addc a,#(_SN_STRING >> 8)
1C19 FE 6817 mov r6,a
1C1A 74 0F 6818 mov a,#0x0F
1C1C 5C 6819 anl a,r4
1C1D 90 1E EE 6820 mov dptr,#_mac_eeprom_init_hexdigits_1_1
1C20 93 6821 movc a,@a+dptr
1C21 FC 6822 mov r4,a
1C22 8D 82 6823 mov dpl,r5
1C24 8E 83 6824 mov dph,r6
1C26 F0 6825 movx @dptr,a
6826 ; ../../include/ztex.h:296: c++;
1C27 0A 6827 inc r2
6828 ; ../../include/ztex.h:291: for (b=0; b<5; b++) { // convert to MAC to SN string
1C28 0B 6829 inc r3
1C29 80 BF 6830 sjmp 00112$
1C2B 6831 00116$:
1C2B 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 ; -----------------------------------------
1C2C 6841 _init_USB:
6842 ; ../../include/ztex.h:347: USBCS |= bmBIT3;
1C2C 90 E6 80 6843 mov dptr,#_USBCS
1C2F E0 6844 movx a,@dptr
1C30 44 08 6845 orl a,#0x08
1C32 F0 6846 movx @dptr,a
6847 ; ../../include/ztex.h:349: CPUCS = bmBIT4 | bmBIT1;
1C33 90 E6 00 6848 mov dptr,#_CPUCS
1C36 74 12 6849 mov a,#0x12
1C38 F0 6850 movx @dptr,a
6851 ; ../../include/ztex.h:350: wait(2);
1C39 90 00 02 6852 mov dptr,#0x0002
1C3C 12 02 65 6853 lcall _wait
6854 ; ../../include/ztex.h:351: CKCON &= ~7;
1C3F 53 8E F8 6855 anl _CKCON,#0xF8
6856 ; ../../include/ztex.h:378: init_fpga();
1C42 12 0D 52 6857 lcall _init_fpga
6858 ; ../../include/ztex-fpga-flash2.h:105: fpga_flash_result= 255;
1C45 90 3A 26 6859 mov dptr,#_fpga_flash_result
1C48 74 FF 6860 mov a,#0xFF
1C4A F0 6861 movx @dptr,a
6862 ; ../../include/ztex.h:385: EA = 0;
1C4B C2 AF 6863 clr _EA
6864 ; ../../include/ztex.h:386: EUSB = 0;
1C4D C2 E8 6865 clr _EUSB
6866 ; ../../include/ezintavecs.h:123: INT8VEC_USB.op=0x02;
1C4F 90 00 43 6867 mov dptr,#_INT8VEC_USB
1C52 74 02 6868 mov a,#0x02
1C54 F0 6869 movx @dptr,a
6870 ; ../../include/ezintavecs.h:124: INT8VEC_USB.addrH = 0x01;
1C55 90 00 44 6871 mov dptr,#(_INT8VEC_USB + 0x0001)
1C58 74 01 6872 mov a,#0x01
1C5A F0 6873 movx @dptr,a
6874 ; ../../include/ezintavecs.h:125: INT8VEC_USB.addrL = 0xb8;
1C5B 90 00 45 6875 mov dptr,#(_INT8VEC_USB + 0x0002)
1C5E 74 B8 6876 mov a,#0xB8
1C60 F0 6877 movx @dptr,a
6878 ; ../../include/ezintavecs.h:126: INTSETUP |= 8;
1C61 90 E6 68 6879 mov dptr,#_INTSETUP
1C64 E0 6880 movx a,@dptr
1C65 44 08 6881 orl a,#0x08
1C67 F0 6882 movx @dptr,a
6883 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1C68 90 01 00 6884 mov dptr,#_INTVEC_SUDAV
1C6B 74 02 6885 mov a,#0x02
1C6D F0 6886 movx @dptr,a
6887 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1C6E 7A 8C 6888 mov r2,#_SUDAV_ISR
1C70 7B 12 6889 mov r3,#(_SUDAV_ISR >> 8)
1C72 8B 04 6890 mov ar4,r3
1C74 90 01 01 6891 mov dptr,#(_INTVEC_SUDAV + 0x0001)
1C77 EC 6892 mov a,r4
1C78 F0 6893 movx @dptr,a
6894 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1C79 90 01 02 6895 mov dptr,#(_INTVEC_SUDAV + 0x0002)
1C7C EA 6896 mov a,r2
1C7D F0 6897 movx @dptr,a
6898 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1C7E 90 01 04 6899 mov dptr,#_INTVEC_SOF
1C81 74 02 6900 mov a,#0x02
1C83 F0 6901 movx @dptr,a
6902 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1C84 7A C5 6903 mov r2,#_SOF_ISR
1C86 7B 18 6904 mov r3,#(_SOF_ISR >> 8)
1C88 8B 04 6905 mov ar4,r3
1C8A 90 01 05 6906 mov dptr,#(_INTVEC_SOF + 0x0001)
1C8D EC 6907 mov a,r4
1C8E F0 6908 movx @dptr,a
6909 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1C8F 90 01 06 6910 mov dptr,#(_INTVEC_SOF + 0x0002)
1C92 EA 6911 mov a,r2
1C93 F0 6912 movx @dptr,a
6913 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1C94 90 01 08 6914 mov dptr,#_INTVEC_SUTOK
1C97 74 02 6915 mov a,#0x02
1C99 F0 6916 movx @dptr,a
6917 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1C9A 7A DB 6918 mov r2,#_SUTOK_ISR
1C9C 7B 18 6919 mov r3,#(_SUTOK_ISR >> 8)
1C9E 8B 04 6920 mov ar4,r3
1CA0 90 01 09 6921 mov dptr,#(_INTVEC_SUTOK + 0x0001)
1CA3 EC 6922 mov a,r4
1CA4 F0 6923 movx @dptr,a
6924 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1CA5 90 01 0A 6925 mov dptr,#(_INTVEC_SUTOK + 0x0002)
1CA8 EA 6926 mov a,r2
1CA9 F0 6927 movx @dptr,a
6928 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1CAA 90 01 0C 6929 mov dptr,#_INTVEC_SUSPEND
1CAD 74 02 6930 mov a,#0x02
1CAF F0 6931 movx @dptr,a
6932 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1CB0 7A F1 6933 mov r2,#_SUSP_ISR
1CB2 7B 18 6934 mov r3,#(_SUSP_ISR >> 8)
1CB4 8B 04 6935 mov ar4,r3
1CB6 90 01 0D 6936 mov dptr,#(_INTVEC_SUSPEND + 0x0001)
1CB9 EC 6937 mov a,r4
1CBA F0 6938 movx @dptr,a
6939 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1CBB 90 01 0E 6940 mov dptr,#(_INTVEC_SUSPEND + 0x0002)
1CBE EA 6941 mov a,r2
1CBF F0 6942 movx @dptr,a
6943 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1CC0 90 01 10 6944 mov dptr,#_INTVEC_USBRESET
1CC3 74 02 6945 mov a,#0x02
1CC5 F0 6946 movx @dptr,a
6947 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1CC6 7A 07 6948 mov r2,#_URES_ISR
1CC8 7B 19 6949 mov r3,#(_URES_ISR >> 8)
1CCA 8B 04 6950 mov ar4,r3
1CCC 90 01 11 6951 mov dptr,#(_INTVEC_USBRESET + 0x0001)
1CCF EC 6952 mov a,r4
1CD0 F0 6953 movx @dptr,a
6954 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1CD1 90 01 12 6955 mov dptr,#(_INTVEC_USBRESET + 0x0002)
1CD4 EA 6956 mov a,r2
1CD5 F0 6957 movx @dptr,a
6958 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1CD6 90 01 14 6959 mov dptr,#_INTVEC_HISPEED
1CD9 74 02 6960 mov a,#0x02
1CDB F0 6961 movx @dptr,a
6962 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1CDC 7A 1D 6963 mov r2,#_HSGRANT_ISR
1CDE 7B 19 6964 mov r3,#(_HSGRANT_ISR >> 8)
1CE0 8B 04 6965 mov ar4,r3
1CE2 90 01 15 6966 mov dptr,#(_INTVEC_HISPEED + 0x0001)
1CE5 EC 6967 mov a,r4
1CE6 F0 6968 movx @dptr,a
6969 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1CE7 90 01 16 6970 mov dptr,#(_INTVEC_HISPEED + 0x0002)
1CEA EA 6971 mov a,r2
1CEB F0 6972 movx @dptr,a
6973 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1CEC 90 01 18 6974 mov dptr,#_INTVEC_EP0ACK
1CEF 74 02 6975 mov a,#0x02
1CF1 F0 6976 movx @dptr,a
6977 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1CF2 7A 33 6978 mov r2,#_EP0ACK_ISR
1CF4 7B 19 6979 mov r3,#(_EP0ACK_ISR >> 8)
1CF6 8B 04 6980 mov ar4,r3
1CF8 90 01 19 6981 mov dptr,#(_INTVEC_EP0ACK + 0x0001)
1CFB EC 6982 mov a,r4
1CFC F0 6983 movx @dptr,a
6984 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1CFD 90 01 1A 6985 mov dptr,#(_INTVEC_EP0ACK + 0x0002)
1D00 EA 6986 mov a,r2
1D01 F0 6987 movx @dptr,a
6988 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1D02 90 01 20 6989 mov dptr,#_INTVEC_EP0IN
1D05 74 02 6990 mov a,#0x02
1D07 F0 6991 movx @dptr,a
6992 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1D08 7A 49 6993 mov r2,#_EP0IN_ISR
1D0A 7B 19 6994 mov r3,#(_EP0IN_ISR >> 8)
1D0C 8B 04 6995 mov ar4,r3
1D0E 90 01 21 6996 mov dptr,#(_INTVEC_EP0IN + 0x0001)
1D11 EC 6997 mov a,r4
1D12 F0 6998 movx @dptr,a
6999 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1D13 90 01 22 7000 mov dptr,#(_INTVEC_EP0IN + 0x0002)
1D16 EA 7001 mov a,r2
1D17 F0 7002 movx @dptr,a
7003 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1D18 90 01 24 7004 mov dptr,#_INTVEC_EP0OUT
1D1B 74 02 7005 mov a,#0x02
1D1D F0 7006 movx @dptr,a
7007 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1D1E 7A 0B 7008 mov r2,#_EP0OUT_ISR
1D20 7B 1A 7009 mov r3,#(_EP0OUT_ISR >> 8)
1D22 8B 04 7010 mov ar4,r3
1D24 90 01 25 7011 mov dptr,#(_INTVEC_EP0OUT + 0x0001)
1D27 EC 7012 mov a,r4
1D28 F0 7013 movx @dptr,a
7014 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1D29 90 01 26 7015 mov dptr,#(_INTVEC_EP0OUT + 0x0002)
1D2C EA 7016 mov a,r2
1D2D F0 7017 movx @dptr,a
7018 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1D2E 90 01 28 7019 mov dptr,#_INTVEC_EP1IN
1D31 74 02 7020 mov a,#0x02
1D33 F0 7021 movx @dptr,a
7022 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1D34 7A 00 7023 mov r2,#_EP1IN_ISR
1D36 7B 1B 7024 mov r3,#(_EP1IN_ISR >> 8)
1D38 8B 04 7025 mov ar4,r3
1D3A 90 01 29 7026 mov dptr,#(_INTVEC_EP1IN + 0x0001)
1D3D EC 7027 mov a,r4
1D3E F0 7028 movx @dptr,a
7029 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1D3F 90 01 2A 7030 mov dptr,#(_INTVEC_EP1IN + 0x0002)
1D42 EA 7031 mov a,r2
1D43 F0 7032 movx @dptr,a
7033 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1D44 90 01 2C 7034 mov dptr,#_INTVEC_EP1OUT
1D47 74 02 7035 mov a,#0x02
1D49 F0 7036 movx @dptr,a
7037 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1D4A 7A 16 7038 mov r2,#_EP1OUT_ISR
1D4C 7B 1B 7039 mov r3,#(_EP1OUT_ISR >> 8)
1D4E 8B 04 7040 mov ar4,r3
1D50 90 01 2D 7041 mov dptr,#(_INTVEC_EP1OUT + 0x0001)
1D53 EC 7042 mov a,r4
1D54 F0 7043 movx @dptr,a
7044 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1D55 90 01 2E 7045 mov dptr,#(_INTVEC_EP1OUT + 0x0002)
1D58 EA 7046 mov a,r2
1D59 F0 7047 movx @dptr,a
7048 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1D5A 90 01 30 7049 mov dptr,#_INTVEC_EP2
1D5D 74 02 7050 mov a,#0x02
1D5F F0 7051 movx @dptr,a
7052 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1D60 7A 2C 7053 mov r2,#_EP2_ISR
1D62 7B 1B 7054 mov r3,#(_EP2_ISR >> 8)
1D64 8B 04 7055 mov ar4,r3
1D66 90 01 31 7056 mov dptr,#(_INTVEC_EP2 + 0x0001)
1D69 EC 7057 mov a,r4
1D6A F0 7058 movx @dptr,a
7059 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1D6B 90 01 32 7060 mov dptr,#(_INTVEC_EP2 + 0x0002)
1D6E EA 7061 mov a,r2
1D6F F0 7062 movx @dptr,a
7063 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1D70 90 01 34 7064 mov dptr,#_INTVEC_EP4
1D73 74 02 7065 mov a,#0x02
1D75 F0 7066 movx @dptr,a
7067 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1D76 7A 42 7068 mov r2,#_EP4_ISR
1D78 7B 1B 7069 mov r3,#(_EP4_ISR >> 8)
1D7A 8B 04 7070 mov ar4,r3
1D7C 90 01 35 7071 mov dptr,#(_INTVEC_EP4 + 0x0001)
1D7F EC 7072 mov a,r4
1D80 F0 7073 movx @dptr,a
7074 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1D81 90 01 36 7075 mov dptr,#(_INTVEC_EP4 + 0x0002)
1D84 EA 7076 mov a,r2
1D85 F0 7077 movx @dptr,a
7078 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1D86 90 01 38 7079 mov dptr,#_INTVEC_EP6
1D89 74 02 7080 mov a,#0x02
1D8B F0 7081 movx @dptr,a
7082 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1D8C 7A 58 7083 mov r2,#_EP6_ISR
1D8E 7B 1B 7084 mov r3,#(_EP6_ISR >> 8)
1D90 8B 04 7085 mov ar4,r3
1D92 90 01 39 7086 mov dptr,#(_INTVEC_EP6 + 0x0001)
1D95 EC 7087 mov a,r4
1D96 F0 7088 movx @dptr,a
7089 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1D97 90 01 3A 7090 mov dptr,#(_INTVEC_EP6 + 0x0002)
1D9A EA 7091 mov a,r2
1D9B F0 7092 movx @dptr,a
7093 ; ../../include/ezintavecs.h:115: $0.op=0x02;
1D9C 90 01 3C 7094 mov dptr,#_INTVEC_EP8
1D9F 74 02 7095 mov a,#0x02
1DA1 F0 7096 movx @dptr,a
7097 ; ../../include/ezintavecs.h:116: $0.addrH=((unsigned short)(&$1)) >> 8;
1DA2 7A 6E 7098 mov r2,#_EP8_ISR
1DA4 7B 1B 7099 mov r3,#(_EP8_ISR >> 8)
1DA6 8B 04 7100 mov ar4,r3
1DA8 90 01 3D 7101 mov dptr,#(_INTVEC_EP8 + 0x0001)
1DAB EC 7102 mov a,r4
1DAC F0 7103 movx @dptr,a
7104 ; ../../include/ezintavecs.h:117: $0.addrL=(unsigned short)(&$1);
1DAD 90 01 3E 7105 mov dptr,#(_INTVEC_EP8 + 0x0002)
1DB0 EA 7106 mov a,r2
1DB1 F0 7107 movx @dptr,a
7108 ; ../../include/ztex.h:407: EXIF &= ~bmBIT4;
1DB2 53 91 EF 7109 anl _EXIF,#0xEF
7110 ; ../../include/ztex.h:408: USBIRQ = 0x7f;
1DB5 90 E6 5D 7111 mov dptr,#_USBIRQ
1DB8 74 7F 7112 mov a,#0x7F
1DBA F0 7113 movx @dptr,a
7114 ; ../../include/ztex.h:409: USBIE |= 0x7f;
1DBB 90 E6 5C 7115 mov dptr,#_USBIE
1DBE E0 7116 movx a,@dptr
1DBF FA 7117 mov r2,a
1DC0 44 7F 7118 orl a,#0x7F
1DC2 F0 7119 movx @dptr,a
7120 ; ../../include/ztex.h:410: EPIRQ = 0xff;
1DC3 90 E6 5F 7121 mov dptr,#_EPIRQ
1DC6 74 FF 7122 mov a,#0xFF
1DC8 F0 7123 movx @dptr,a
7124 ; ../../include/ztex.h:411: EPIE = 0xff;
1DC9 90 E6 5E 7125 mov dptr,#_EPIE
1DCC 74 FF 7126 mov a,#0xFF
1DCE F0 7127 movx @dptr,a
7128 ; ../../include/ztex.h:413: EUSB = 1;
1DCF D2 E8 7129 setb _EUSB
7130 ; ../../include/ztex.h:414: EA = 1;
1DD1 D2 AF 7131 setb _EA
7132 ; ../../include/ztex.h:333: EP$0CFG = bmBIT7 | bmBIT5;
1DD3 90 E6 11 7133 mov dptr,#_EP1INCFG
1DD6 74 A0 7134 mov a,#0xA0
1DD8 F0 7135 movx @dptr,a
7136 ; ../../include/ezregs.h:46: __endasm;
7137
1DD9 00 7138 nop
1DDA 00 7139 nop
1DDB 00 7140 nop
1DDC 00 7141 nop
7142
7143 ; ../../include/ztex.h:333: EP$0CFG = bmBIT7 | bmBIT5;
1DDD 90 E6 10 7144 mov dptr,#_EP1OUTCFG
1DE0 74 A0 7145 mov a,#0xA0
1DE2 F0 7146 movx @dptr,a
7147 ; ../../include/ezregs.h:46: __endasm;
7148
1DE3 00 7149 nop
1DE4 00 7150 nop
1DE5 00 7151 nop
1DE6 00 7152 nop
7153
7154 ; ../../include/ztex.h:328: ;
1DE7 90 E6 12 7155 mov dptr,#_EP2CFG
1DEA E4 7156 clr a
1DEB F0 7157 movx @dptr,a
7158 ; ../../include/ezregs.h:46: __endasm;
7159
1DEC 00 7160 nop
1DED 00 7161 nop
1DEE 00 7162 nop
1DEF 00 7163 nop
7164
7165 ; ../../include/ztex.h:328: ;
1DF0 90 E6 13 7166 mov dptr,#_EP4CFG
1DF3 E4 7167 clr a
1DF4 F0 7168 movx @dptr,a
7169 ; ../../include/ezregs.h:46: __endasm;
7170
1DF5 00 7171 nop
1DF6 00 7172 nop
1DF7 00 7173 nop
1DF8 00 7174 nop
7175
7176 ; ../../include/ztex.h:328: ;
1DF9 90 E6 14 7177 mov dptr,#_EP6CFG
1DFC E4 7178 clr a
1DFD F0 7179 movx @dptr,a
7180 ; ../../include/ezregs.h:46: __endasm;
7181
1DFE 00 7182 nop
1DFF 00 7183 nop
1E00 00 7184 nop
1E01 00 7185 nop
7186
7187 ; ../../include/ztex.h:328: ;
1E02 90 E6 15 7188 mov dptr,#_EP8CFG
1E05 E4 7189 clr a
1E06 F0 7190 movx @dptr,a
7191 ; ../../include/ezregs.h:46: __endasm;
7192
1E07 00 7193 nop
1E08 00 7194 nop
1E09 00 7195 nop
1E0A 00 7196 nop
7197
7198 ; ../../include/ztex.h:434: flash_init();
1E0B 12 0C 2D 7199 lcall _flash_init
7200 ; ../../include/ztex.h:435: if ( !flash_enabled ) {
1E0E 90 3A 07 7201 mov dptr,#_flash_enabled
1E11 E0 7202 movx a,@dptr
1E12 FA 7203 mov r2,a
1E13 70 09 7204 jnz 00102$
7205 ; ../../include/ztex.h:436: wait(250);
1E15 90 00 FA 7206 mov dptr,#0x00FA
1E18 12 02 65 7207 lcall _wait
7208 ; ../../include/ztex.h:437: flash_init();
1E1B 12 0C 2D 7209 lcall _flash_init
1E1E 7210 00102$:
7211 ; ../../include/ztex.h:447: mac_eeprom_init();
1E1E 12 1B 84 7212 lcall _mac_eeprom_init
7213 ; ../../include/ztex.h:453: fpga_configure_from_flash_init();
1E21 12 10 50 7214 lcall _fpga_configure_from_flash_init
7215 ; ../../include/ztex.h:456: USBCS |= bmBIT7 | bmBIT1;
1E24 90 E6 80 7216 mov dptr,#_USBCS
1E27 E0 7217 movx a,@dptr
1E28 44 82 7218 orl a,#0x82
1E2A F0 7219 movx @dptr,a
7220 ; ../../include/ztex.h:457: wait(10);
1E2B 90 00 0A 7221 mov dptr,#0x000A
1E2E 12 02 65 7222 lcall _wait
7223 ; ../../include/ztex.h:459: USBCS &= ~bmBIT3;
1E31 90 E6 80 7224 mov dptr,#_USBCS
1E34 E0 7225 movx a,@dptr
1E35 54 F7 7226 anl a,#0xF7
1E37 F0 7227 movx @dptr,a
1E38 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 ; -----------------------------------------
1E39 7237 _main:
7238 ; default.c:37: init_USB();
1E39 12 1C 2C 7239 lcall _init_USB
7240 ; default.c:39: if ( config_data_valid ) {
1E3C 90 3A 06 7241 mov dptr,#_config_data_valid
1E3F E0 7242 movx a,@dptr
1E40 FA 7243 mov r2,a
1E41 60 0C 7244 jz 00104$
7245 ; default.c:40: mac_eeprom_read ( (__xdata BYTE*) (productString+20), 6, 1 );
1E43 90 1E 76 7246 mov dptr,#(_productString + 0x0014)
1E46 75 10 06 7247 mov _mac_eeprom_read_PARM_2,#0x06
1E49 75 11 01 7248 mov _mac_eeprom_read_PARM_3,#0x01
1E4C 12 05 D4 7249 lcall _mac_eeprom_read
7250 ; default.c:43: while (1) { } // twiddle thumbs
1E4F 7251 00104$:
1E4F 80 FE 7252 sjmp 00104$
7253 .area CSEG (CODE)
7254 .area CONST (CODE)
1E55 7255 _fpga_flash_boot_id:
1E55 5A 7256 .db #0x5A
1E56 54 7257 .db #0x54
1E57 45 7258 .db #0x45
1E58 58 7259 .db #0x58
1E59 42 7260 .db #0x42
1E5A 53 7261 .db #0x53
1E5B 01 7262 .db #0x01
1E5C 01 7263 .db #0x01
1E5D 7264 _manufacturerString:
1E5D 5A 54 45 58 7265 .ascii "ZTEX"
1E61 00 7266 .db 0x00
1E62 7267 _productString:
1E62 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
1E81 00 7269 .db 0x00
1E82 7270 _configurationString:
1E82 64 65 66 61 75 6C 7271 .ascii "default"
74
1E89 00 7272 .db 0x00
1E8A 7273 _DeviceDescriptor:
1E8A 12 7274 .db #0x12
1E8B 01 7275 .db #0x01
1E8C 00 7276 .db #0x00
1E8D 02 7277 .db #0x02
1E8E FF 7278 .db #0xFF
1E8F FF 7279 .db #0xFF
1E90 FF 7280 .db #0xFF
1E91 40 7281 .db #0x40
1E92 1A 7282 .db #0x1A
1E93 22 7283 .db #0x22
1E94 00 7284 .db #0x00
1E95 01 7285 .db #0x01
1E96 00 7286 .db #0x00
1E97 00 7287 .db #0x00
1E98 01 7288 .db #0x01
1E99 02 7289 .db #0x02
1E9A 03 7290 .db #0x03
1E9B 01 7291 .db #0x01
1E9C 7292 _DeviceQualifierDescriptor:
1E9C 0A 7293 .db #0x0A
1E9D 06 7294 .db #0x06
1E9E 00 7295 .db #0x00
1E9F 02 7296 .db #0x02
1EA0 FF 7297 .db #0xFF
1EA1 FF 7298 .db #0xFF
1EA2 FF 7299 .db #0xFF
1EA3 40 7300 .db #0x40
1EA4 01 7301 .db #0x01
1EA5 00 7302 .db #0x00
1EA6 7303 _HighSpeedConfigDescriptor:
1EA6 09 7304 .db #0x09
1EA7 02 7305 .db #0x02
1EA8 20 7306 .db #0x20
1EA9 00 7307 .db #0x00
1EAA 01 7308 .db #0x01
1EAB 01 7309 .db #0x01
1EAC 04 7310 .db #0x04
1EAD C0 7311 .db #0xC0
1EAE 32 7312 .db #0x32
1EAF 09 7313 .db #0x09
1EB0 04 7314 .db #0x04
1EB1 00 7315 .db #0x00
1EB2 00 7316 .db #0x00
1EB3 02 7317 .db #0x02
1EB4 FF 7318 .db #0xFF
1EB5 FF 7319 .db #0xFF
1EB6 FF 7320 .db #0xFF
1EB7 00 7321 .db #0x00
1EB8 07 7322 .db #0x07
1EB9 05 7323 .db #0x05
1EBA 81 7324 .db #0x81
1EBB 02 7325 .db #0x02
1EBC 00 7326 .db #0x00
1EBD 02 7327 .db #0x02
1EBE 00 7328 .db #0x00
1EBF 07 7329 .db #0x07
1EC0 05 7330 .db #0x05
1EC1 01 7331 .db #0x01
1EC2 02 7332 .db #0x02
1EC3 00 7333 .db #0x00
1EC4 02 7334 .db #0x02
1EC5 00 7335 .db #0x00
1EC6 7336 _HighSpeedConfigDescriptor_PadByte:
1EC6 00 7337 .db #0x00
1EC7 00 7338 .db 0x00
1EC8 7339 _FullSpeedConfigDescriptor:
1EC8 09 7340 .db #0x09
1EC9 02 7341 .db #0x02
1ECA 20 7342 .db #0x20
1ECB 00 7343 .db #0x00
1ECC 01 7344 .db #0x01
1ECD 01 7345 .db #0x01
1ECE 04 7346 .db #0x04
1ECF C0 7347 .db #0xC0
1ED0 32 7348 .db #0x32
1ED1 09 7349 .db #0x09
1ED2 04 7350 .db #0x04
1ED3 00 7351 .db #0x00
1ED4 00 7352 .db #0x00
1ED5 02 7353 .db #0x02
1ED6 FF 7354 .db #0xFF
1ED7 FF 7355 .db #0xFF
1ED8 FF 7356 .db #0xFF
1ED9 00 7357 .db #0x00
1EDA 07 7358 .db #0x07
1EDB 05 7359 .db #0x05
1EDC 81 7360 .db #0x81
1EDD 02 7361 .db #0x02
1EDE 40 7362 .db #0x40
1EDF 00 7363 .db #0x00
1EE0 00 7364 .db #0x00
1EE1 07 7365 .db #0x07
1EE2 05 7366 .db #0x05
1EE3 01 7367 .db #0x01
1EE4 02 7368 .db #0x02
1EE5 40 7369 .db #0x40
1EE6 00 7370 .db #0x00
1EE7 00 7371 .db #0x00
1EE8 7372 _FullSpeedConfigDescriptor_PadByte:
1EE8 00 7373 .db #0x00
1EE9 00 7374 .db 0x00
1EEA 7375 _EmptyStringDescriptor:
1EEA 04 7376 .db #0x04
1EEB 03 7377 .db #0x03
1EEC 00 7378 .db #0x00
1EED 00 7379 .db #0x00
1EEE 7380 _mac_eeprom_init_hexdigits_1_1:
1EEE 30 31 32 33 34 35 7381 .ascii "0123456789ABCDEF"
36 37 38 39 41 42
43 44 45 46
1EFE 00 7382 .db 0x00
7383 .area XINIT (CODE)
1EFF 7384 __xinit__ep0_payload_remaining:
1EFF 00 00 7385 .byte #0x00,#0x00
1F01 7386 __xinit__ep0_payload_transfer:
1F01 00 7387 .db #0x00
1F02 7388 __xinit__ep0_prev_setup_request:
1F02 FF 7389 .db #0xFF
1F03 7390 __xinit__ep0_vendor_cmd_setup:
1F03 00 7391 .db #0x00
1F04 7392 __xinit__ISOFRAME_COUNTER:
1F04 00 00 7393 .byte #0x00,#0x00
1F06 00 00 7394 .byte #0x00,#0x00
1F08 00 00 7395 .byte #0x00,#0x00
1F0A 00 00 7396 .byte #0x00,#0x00
7397 .area CABS (ABS,CODE)