1 ;-------------------------------------------------------- 2 ; File Created by SDCC : free open source ANSI-C Compiler 3 ; Version 4.2.0 #13081 (Linux) 4 ;-------------------------------------------------------- 5 .module eeprom_init 6 .optsdcc -mmcs51 --model-small 7 8 ;-------------------------------------------------------- 9 ; Public variables in this module 10 ;-------------------------------------------------------- 11 .globl _eeprom_init 12 .globl _write_both_9862s 13 .globl _bitALTERA_DCLK 14 .globl _bitALTERA_DATA0 15 .globl _bitS_IN 16 .globl _bitS_OUT 17 .globl _bitS_CLK 18 .globl _EIPX6 19 .globl _EIPX5 20 .globl _EIPX4 21 .globl _PI2C 22 .globl _PUSB 23 .globl _EIEX6 24 .globl _EIEX5 25 .globl _EIEX4 26 .globl _EI2C 27 .globl _EIUSB 28 .globl _SMOD1 29 .globl _ERESI 30 .globl _RESI 31 .globl _INT6 32 .globl _CY 33 .globl _AC 34 .globl _F0 35 .globl _RS1 36 .globl _RS0 37 .globl _OV 38 .globl _FL 39 .globl _P 40 .globl _TF2 41 .globl _EXF2 42 .globl _RCLK 43 .globl _TCLK 44 .globl _EXEN2 45 .globl _TR2 46 .globl _C_T2 47 .globl _CP_RL2 48 .globl _SM01 49 .globl _SM11 50 .globl _SM21 51 .globl _REN1 52 .globl _TB81 53 .globl _RB81 54 .globl _TI1 55 .globl _RI1 56 .globl _PS1 57 .globl _PT2 58 .globl _PS0 59 .globl _PT1 60 .globl _PX1 61 .globl _PT0 62 .globl _PX0 63 .globl _EA 64 .globl _ES1 65 .globl _ET2 66 .globl _ES0 67 .globl _ET1 68 .globl _EX1 69 .globl _ET0 70 .globl _EX0 71 .globl _SM0 72 .globl _SM1 73 .globl _SM2 74 .globl _REN 75 .globl _TB8 76 .globl _RB8 77 .globl _TI 78 .globl _RI 79 .globl _TF1 80 .globl _TR1 81 .globl _TF0 82 .globl _TR0 83 .globl _IE1 84 .globl _IT1 85 .globl _IE0 86 .globl _IT0 87 .globl _SEL 88 .globl _EIP 89 .globl _B 90 .globl _EIE 91 .globl _ACC 92 .globl _EICON 93 .globl _PSW 94 .globl _TH2 95 .globl _TL2 96 .globl _RCAP2H 97 .globl _RCAP2L 98 .globl _T2CON 99 .globl _SBUF1 100 .globl _SCON1 101 .globl _GPIFSGLDATLNOX 102 .globl _GPIFSGLDATLX 103 .globl _GPIFSGLDATH 104 .globl _GPIFTRIG 105 .globl _EP01STAT 106 .globl _IP 107 .globl _OEE 108 .globl _OED 109 .globl _OEC 110 .globl _OEB 111 .globl _OEA 112 .globl _IOE 113 .globl _IOD 114 .globl _AUTOPTRSETUP 115 .globl _EP68FIFOFLGS 116 .globl _EP24FIFOFLGS 117 .globl _EP2468STAT 118 .globl _IE 119 .globl _INT4CLR 120 .globl _INT2CLR 121 .globl _IOC 122 .globl _AUTODAT2 123 .globl _AUTOPTRL2 124 .globl _AUTOPTRH2 125 .globl _AUTODAT1 126 .globl _APTR1L 127 .globl _APTR1H 128 .globl _SBUF0 129 .globl _SCON0 130 .globl _MPAGE 131 .globl _EXIF 132 .globl _IOB 133 .globl _CKCON 134 .globl _TH1 135 .globl _TH0 136 .globl _TL1 137 .globl _TL0 138 .globl _TMOD 139 .globl _TCON 140 .globl _PCON 141 .globl _DPS 142 .globl _DPH1 143 .globl _DPL1 144 .globl _DPH 145 .globl _DPL 146 .globl _SP 147 .globl _IOA 148 .globl _hash0 149 .globl _EP8FIFOBUF 150 .globl _EP6FIFOBUF 151 .globl _EP4FIFOBUF 152 .globl _EP2FIFOBUF 153 .globl _EP1INBUF 154 .globl _EP1OUTBUF 155 .globl _EP0BUF 156 .globl _CT4 157 .globl _CT3 158 .globl _CT2 159 .globl _CT1 160 .globl _USBTEST 161 .globl _TESTCFG 162 .globl _DBUG 163 .globl _UDMACRCQUAL 164 .globl _UDMACRCL 165 .globl _UDMACRCH 166 .globl _GPIFHOLDAMOUNT 167 .globl _FLOWSTBHPERIOD 168 .globl _FLOWSTBEDGE 169 .globl _FLOWSTB 170 .globl _FLOWHOLDOFF 171 .globl _FLOWEQ1CTL 172 .globl _FLOWEQ0CTL 173 .globl _FLOWLOGIC 174 .globl _FLOWSTATE 175 .globl _GPIFABORT 176 .globl _GPIFREADYSTAT 177 .globl _GPIFREADYCFG 178 .globl _XGPIFSGLDATLNOX 179 .globl _XGPIFSGLDATLX 180 .globl _XGPIFSGLDATH 181 .globl _EP8GPIFTRIG 182 .globl _EP8GPIFPFSTOP 183 .globl _EP8GPIFFLGSEL 184 .globl _EP6GPIFTRIG 185 .globl _EP6GPIFPFSTOP 186 .globl _EP6GPIFFLGSEL 187 .globl _EP4GPIFTRIG 188 .globl _EP4GPIFPFSTOP 189 .globl _EP4GPIFFLGSEL 190 .globl _EP2GPIFTRIG 191 .globl _EP2GPIFPFSTOP 192 .globl _EP2GPIFFLGSEL 193 .globl _GPIFTCB0 194 .globl _GPIFTCB1 195 .globl _GPIFTCB2 196 .globl _GPIFTCB3 197 .globl _GPIFADRL 198 .globl _GPIFADRH 199 .globl _GPIFCTLCFG 200 .globl _GPIFIDLECTL 201 .globl _GPIFIDLECS 202 .globl _GPIFWFSELECT 203 .globl _SETUPDAT 204 .globl _SUDPTRCTL 205 .globl _SUDPTRL 206 .globl _SUDPTRH 207 .globl _EP8FIFOBCL 208 .globl _EP8FIFOBCH 209 .globl _EP6FIFOBCL 210 .globl _EP6FIFOBCH 211 .globl _EP4FIFOBCL 212 .globl _EP4FIFOBCH 213 .globl _EP2FIFOBCL 214 .globl _EP2FIFOBCH 215 .globl _EP8FIFOFLGS 216 .globl _EP6FIFOFLGS 217 .globl _EP4FIFOFLGS 218 .globl _EP2FIFOFLGS 219 .globl _EP8CS 220 .globl _EP6CS 221 .globl _EP4CS 222 .globl _EP2CS 223 .globl _EP1INCS 224 .globl _EP1OUTCS 225 .globl _EP0CS 226 .globl _EP8BCL 227 .globl _EP8BCH 228 .globl _EP6BCL 229 .globl _EP6BCH 230 .globl _EP4BCL 231 .globl _EP4BCH 232 .globl _EP2BCL 233 .globl _EP2BCH 234 .globl _EP1INBC 235 .globl _EP1OUTBC 236 .globl _EP0BCL 237 .globl _EP0BCH 238 .globl _FNADDR 239 .globl _MICROFRAME 240 .globl _USBFRAMEL 241 .globl _USBFRAMEH 242 .globl _TOGCTL 243 .globl _WAKEUPCS 244 .globl _SUSPEND 245 .globl _USBCS 246 .globl _XAUTODAT2 247 .globl _XAUTODAT1 248 .globl _I2CTL 249 .globl _I2DAT 250 .globl _I2CS 251 .globl _PORTECFG 252 .globl _PORTCCFG 253 .globl _PORTACFG 254 .globl _INTSETUP 255 .globl _INT4IVEC 256 .globl _INT2IVEC 257 .globl _CLRERRCNT 258 .globl _ERRCNTLIM 259 .globl _USBERRIRQ 260 .globl _USBERRIE 261 .globl _GPIFIRQ 262 .globl _GPIFIE 263 .globl _EPIRQ 264 .globl _EPIE 265 .globl _USBIRQ 266 .globl _USBIE 267 .globl _NAKIRQ 268 .globl _NAKIE 269 .globl _IBNIRQ 270 .globl _IBNIE 271 .globl _EP8FIFOIRQ 272 .globl _EP8FIFOIE 273 .globl _EP6FIFOIRQ 274 .globl _EP6FIFOIE 275 .globl _EP4FIFOIRQ 276 .globl _EP4FIFOIE 277 .globl _EP2FIFOIRQ 278 .globl _EP2FIFOIE 279 .globl _OUTPKTEND 280 .globl _INPKTEND 281 .globl _EP8ISOINPKTS 282 .globl _EP6ISOINPKTS 283 .globl _EP4ISOINPKTS 284 .globl _EP2ISOINPKTS 285 .globl _EP8FIFOPFL 286 .globl _EP8FIFOPFH 287 .globl _EP6FIFOPFL 288 .globl _EP6FIFOPFH 289 .globl _EP4FIFOPFL 290 .globl _EP4FIFOPFH 291 .globl _EP2FIFOPFL 292 .globl _EP2FIFOPFH 293 .globl _EP8AUTOINLENL 294 .globl _EP8AUTOINLENH 295 .globl _EP6AUTOINLENL 296 .globl _EP6AUTOINLENH 297 .globl _EP4AUTOINLENL 298 .globl _EP4AUTOINLENH 299 .globl _EP2AUTOINLENL 300 .globl _EP2AUTOINLENH 301 .globl _EP8FIFOCFG 302 .globl _EP6FIFOCFG 303 .globl _EP4FIFOCFG 304 .globl _EP2FIFOCFG 305 .globl _EP8CFG 306 .globl _EP6CFG 307 .globl _EP4CFG 308 .globl _EP2CFG 309 .globl _EP1INCFG 310 .globl _EP1OUTCFG 311 .globl _REVCTL 312 .globl _REVID 313 .globl _FIFOPINPOLAR 314 .globl _UART230 315 .globl _BPADDRL 316 .globl _BPADDRH 317 .globl _BREAKPT 318 .globl _FIFORESET 319 .globl _PINFLAGSCD 320 .globl _PINFLAGSAB 321 .globl _IFCONFIG 322 .globl _CPUCS 323 .globl _RES_WAVEDATA_END 324 .globl _GPIF_WAVE_DATA 325 .globl _write_both_9862s_PARM_2 326 ;-------------------------------------------------------- 327 ; special function registers 328 ;-------------------------------------------------------- 329 .area RSEG (ABS,DATA) 000000 330 .org 0x0000 000080 331 _IOA = 0x0080 000081 332 _SP = 0x0081 000082 333 _DPL = 0x0082 000083 334 _DPH = 0x0083 000084 335 _DPL1 = 0x0084 000085 336 _DPH1 = 0x0085 000086 337 _DPS = 0x0086 000087 338 _PCON = 0x0087 000088 339 _TCON = 0x0088 000089 340 _TMOD = 0x0089 00008A 341 _TL0 = 0x008a 00008B 342 _TL1 = 0x008b 00008C 343 _TH0 = 0x008c 00008D 344 _TH1 = 0x008d 00008E 345 _CKCON = 0x008e 000090 346 _IOB = 0x0090 000091 347 _EXIF = 0x0091 000092 348 _MPAGE = 0x0092 000098 349 _SCON0 = 0x0098 000099 350 _SBUF0 = 0x0099 00009A 351 _APTR1H = 0x009a 00009B 352 _APTR1L = 0x009b 00009C 353 _AUTODAT1 = 0x009c 00009D 354 _AUTOPTRH2 = 0x009d 00009E 355 _AUTOPTRL2 = 0x009e 00009F 356 _AUTODAT2 = 0x009f 0000A0 357 _IOC = 0x00a0 0000A1 358 _INT2CLR = 0x00a1 0000A2 359 _INT4CLR = 0x00a2 0000A8 360 _IE = 0x00a8 0000AA 361 _EP2468STAT = 0x00aa 0000AB 362 _EP24FIFOFLGS = 0x00ab 0000AC 363 _EP68FIFOFLGS = 0x00ac 0000AF 364 _AUTOPTRSETUP = 0x00af 0000B0 365 _IOD = 0x00b0 0000B1 366 _IOE = 0x00b1 0000B2 367 _OEA = 0x00b2 0000B3 368 _OEB = 0x00b3 0000B4 369 _OEC = 0x00b4 0000B5 370 _OED = 0x00b5 0000B6 371 _OEE = 0x00b6 0000B8 372 _IP = 0x00b8 0000BA 373 _EP01STAT = 0x00ba 0000BB 374 _GPIFTRIG = 0x00bb 0000BD 375 _GPIFSGLDATH = 0x00bd 0000BE 376 _GPIFSGLDATLX = 0x00be 0000BF 377 _GPIFSGLDATLNOX = 0x00bf 0000C0 378 _SCON1 = 0x00c0 0000C1 379 _SBUF1 = 0x00c1 0000C8 380 _T2CON = 0x00c8 0000CA 381 _RCAP2L = 0x00ca 0000CB 382 _RCAP2H = 0x00cb 0000CC 383 _TL2 = 0x00cc 0000CD 384 _TH2 = 0x00cd 0000D0 385 _PSW = 0x00d0 0000D8 386 _EICON = 0x00d8 0000E0 387 _ACC = 0x00e0 0000E8 388 _EIE = 0x00e8 0000F0 389 _B = 0x00f0 0000F8 390 _EIP = 0x00f8 391 ;-------------------------------------------------------- 392 ; special function bits 393 ;-------------------------------------------------------- 394 .area RSEG (ABS,DATA) 000000 395 .org 0x0000 000086 396 _SEL = 0x0086 000088 397 _IT0 = 0x0088 000089 398 _IE0 = 0x0089 00008A 399 _IT1 = 0x008a 00008B 400 _IE1 = 0x008b 00008C 401 _TR0 = 0x008c 00008D 402 _TF0 = 0x008d 00008E 403 _TR1 = 0x008e 00008F 404 _TF1 = 0x008f 000098 405 _RI = 0x0098 000099 406 _TI = 0x0099 00009A 407 _RB8 = 0x009a 00009B 408 _TB8 = 0x009b 00009C 409 _REN = 0x009c 00009D 410 _SM2 = 0x009d 00009E 411 _SM1 = 0x009e 00009F 412 _SM0 = 0x009f 0000A8 413 _EX0 = 0x00a8 0000A9 414 _ET0 = 0x00a9 0000AA 415 _EX1 = 0x00aa 0000AB 416 _ET1 = 0x00ab 0000AC 417 _ES0 = 0x00ac 0000AD 418 _ET2 = 0x00ad 0000AE 419 _ES1 = 0x00ae 0000AF 420 _EA = 0x00af 0000B8 421 _PX0 = 0x00b8 0000B9 422 _PT0 = 0x00b9 0000BA 423 _PX1 = 0x00ba 0000BB 424 _PT1 = 0x00bb 0000BC 425 _PS0 = 0x00bc 0000BD 426 _PT2 = 0x00bd 0000BE 427 _PS1 = 0x00be 0000C0 428 _RI1 = 0x00c0 0000C1 429 _TI1 = 0x00c1 0000C2 430 _RB81 = 0x00c2 0000C3 431 _TB81 = 0x00c3 0000C4 432 _REN1 = 0x00c4 0000C5 433 _SM21 = 0x00c5 0000C6 434 _SM11 = 0x00c6 0000C7 435 _SM01 = 0x00c7 0000C8 436 _CP_RL2 = 0x00c8 0000C9 437 _C_T2 = 0x00c9 0000CA 438 _TR2 = 0x00ca 0000CB 439 _EXEN2 = 0x00cb 0000CC 440 _TCLK = 0x00cc 0000CD 441 _RCLK = 0x00cd 0000CE 442 _EXF2 = 0x00ce 0000CF 443 _TF2 = 0x00cf 0000D0 444 _P = 0x00d0 0000D1 445 _FL = 0x00d1 0000D2 446 _OV = 0x00d2 0000D3 447 _RS0 = 0x00d3 0000D4 448 _RS1 = 0x00d4 0000D5 449 _F0 = 0x00d5 0000D6 450 _AC = 0x00d6 0000D7 451 _CY = 0x00d7 0000DB 452 _INT6 = 0x00db 0000DC 453 _RESI = 0x00dc 0000DD 454 _ERESI = 0x00dd 0000DF 455 _SMOD1 = 0x00df 0000E8 456 _EIUSB = 0x00e8 0000E9 457 _EI2C = 0x00e9 0000EA 458 _EIEX4 = 0x00ea 0000EB 459 _EIEX5 = 0x00eb 0000EC 460 _EIEX6 = 0x00ec 0000F8 461 _PUSB = 0x00f8 0000F9 462 _PI2C = 0x00f9 0000FA 463 _EIPX4 = 0x00fa 0000FB 464 _EIPX5 = 0x00fb 0000FC 465 _EIPX6 = 0x00fc 000080 466 _bitS_CLK = 0x0080 000081 467 _bitS_OUT = 0x0081 000082 468 _bitS_IN = 0x0082 0000A1 469 _bitALTERA_DATA0 = 0x00a1 0000A3 470 _bitALTERA_DCLK = 0x00a3 471 ;-------------------------------------------------------- 472 ; overlayable register banks 473 ;-------------------------------------------------------- 474 .area REG_BANK_0 (REL,OVR,DATA) 000000 475 .ds 8 476 ;-------------------------------------------------------- 477 ; internal ram data 478 ;-------------------------------------------------------- 479 .area DSEG (DATA) 000008 480 _write_both_9862s_PARM_2: 000008 481 .ds 1 482 ;-------------------------------------------------------- 483 ; overlayable items in internal ram 484 ;-------------------------------------------------------- 485 .area OSEG (OVR,DATA) 486 ;-------------------------------------------------------- 487 ; indirectly addressable internal ram data 488 ;-------------------------------------------------------- 489 .area ISEG (DATA) 490 ;-------------------------------------------------------- 491 ; absolute internal ram data 492 ;-------------------------------------------------------- 493 .area IABS (ABS,DATA) 494 .area IABS (ABS,DATA) 495 ;-------------------------------------------------------- 496 ; bit data 497 ;-------------------------------------------------------- 498 .area BSEG (BIT) 499 ;-------------------------------------------------------- 500 ; paged external ram data 501 ;-------------------------------------------------------- 502 .area PSEG (PAG,XDATA) 503 ;-------------------------------------------------------- 504 ; external ram data 505 ;-------------------------------------------------------- 506 .area XSEG (XDATA) 00E400 507 _GPIF_WAVE_DATA = 0xe400 00E480 508 _RES_WAVEDATA_END = 0xe480 00E600 509 _CPUCS = 0xe600 00E601 510 _IFCONFIG = 0xe601 00E602 511 _PINFLAGSAB = 0xe602 00E603 512 _PINFLAGSCD = 0xe603 00E604 513 _FIFORESET = 0xe604 00E605 514 _BREAKPT = 0xe605 00E606 515 _BPADDRH = 0xe606 00E607 516 _BPADDRL = 0xe607 00E608 517 _UART230 = 0xe608 00E609 518 _FIFOPINPOLAR = 0xe609 00E60A 519 _REVID = 0xe60a 00E60B 520 _REVCTL = 0xe60b 00E610 521 _EP1OUTCFG = 0xe610 00E611 522 _EP1INCFG = 0xe611 00E612 523 _EP2CFG = 0xe612 00E613 524 _EP4CFG = 0xe613 00E614 525 _EP6CFG = 0xe614 00E615 526 _EP8CFG = 0xe615 00E618 527 _EP2FIFOCFG = 0xe618 00E619 528 _EP4FIFOCFG = 0xe619 00E61A 529 _EP6FIFOCFG = 0xe61a 00E61B 530 _EP8FIFOCFG = 0xe61b 00E620 531 _EP2AUTOINLENH = 0xe620 00E621 532 _EP2AUTOINLENL = 0xe621 00E622 533 _EP4AUTOINLENH = 0xe622 00E623 534 _EP4AUTOINLENL = 0xe623 00E624 535 _EP6AUTOINLENH = 0xe624 00E625 536 _EP6AUTOINLENL = 0xe625 00E626 537 _EP8AUTOINLENH = 0xe626 00E627 538 _EP8AUTOINLENL = 0xe627 00E630 539 _EP2FIFOPFH = 0xe630 00E631 540 _EP2FIFOPFL = 0xe631 00E632 541 _EP4FIFOPFH = 0xe632 00E633 542 _EP4FIFOPFL = 0xe633 00E634 543 _EP6FIFOPFH = 0xe634 00E635 544 _EP6FIFOPFL = 0xe635 00E636 545 _EP8FIFOPFH = 0xe636 00E637 546 _EP8FIFOPFL = 0xe637 00E640 547 _EP2ISOINPKTS = 0xe640 00E641 548 _EP4ISOINPKTS = 0xe641 00E642 549 _EP6ISOINPKTS = 0xe642 00E643 550 _EP8ISOINPKTS = 0xe643 00E648 551 _INPKTEND = 0xe648 00E649 552 _OUTPKTEND = 0xe649 00E650 553 _EP2FIFOIE = 0xe650 00E651 554 _EP2FIFOIRQ = 0xe651 00E652 555 _EP4FIFOIE = 0xe652 00E653 556 _EP4FIFOIRQ = 0xe653 00E654 557 _EP6FIFOIE = 0xe654 00E655 558 _EP6FIFOIRQ = 0xe655 00E656 559 _EP8FIFOIE = 0xe656 00E657 560 _EP8FIFOIRQ = 0xe657 00E658 561 _IBNIE = 0xe658 00E659 562 _IBNIRQ = 0xe659 00E65A 563 _NAKIE = 0xe65a 00E65B 564 _NAKIRQ = 0xe65b 00E65C 565 _USBIE = 0xe65c 00E65D 566 _USBIRQ = 0xe65d 00E65E 567 _EPIE = 0xe65e 00E65F 568 _EPIRQ = 0xe65f 00E660 569 _GPIFIE = 0xe660 00E661 570 _GPIFIRQ = 0xe661 00E662 571 _USBERRIE = 0xe662 00E663 572 _USBERRIRQ = 0xe663 00E664 573 _ERRCNTLIM = 0xe664 00E665 574 _CLRERRCNT = 0xe665 00E666 575 _INT2IVEC = 0xe666 00E667 576 _INT4IVEC = 0xe667 00E668 577 _INTSETUP = 0xe668 00E670 578 _PORTACFG = 0xe670 00E671 579 _PORTCCFG = 0xe671 00E672 580 _PORTECFG = 0xe672 00E678 581 _I2CS = 0xe678 00E679 582 _I2DAT = 0xe679 00E67A 583 _I2CTL = 0xe67a 00E67B 584 _XAUTODAT1 = 0xe67b 00E67C 585 _XAUTODAT2 = 0xe67c 00E680 586 _USBCS = 0xe680 00E681 587 _SUSPEND = 0xe681 00E682 588 _WAKEUPCS = 0xe682 00E683 589 _TOGCTL = 0xe683 00E684 590 _USBFRAMEH = 0xe684 00E685 591 _USBFRAMEL = 0xe685 00E686 592 _MICROFRAME = 0xe686 00E687 593 _FNADDR = 0xe687 00E68A 594 _EP0BCH = 0xe68a 00E68B 595 _EP0BCL = 0xe68b 00E68D 596 _EP1OUTBC = 0xe68d 00E68F 597 _EP1INBC = 0xe68f 00E690 598 _EP2BCH = 0xe690 00E691 599 _EP2BCL = 0xe691 00E694 600 _EP4BCH = 0xe694 00E695 601 _EP4BCL = 0xe695 00E698 602 _EP6BCH = 0xe698 00E699 603 _EP6BCL = 0xe699 00E69C 604 _EP8BCH = 0xe69c 00E69D 605 _EP8BCL = 0xe69d 00E6A0 606 _EP0CS = 0xe6a0 00E6A1 607 _EP1OUTCS = 0xe6a1 00E6A2 608 _EP1INCS = 0xe6a2 00E6A3 609 _EP2CS = 0xe6a3 00E6A4 610 _EP4CS = 0xe6a4 00E6A5 611 _EP6CS = 0xe6a5 00E6A6 612 _EP8CS = 0xe6a6 00E6A7 613 _EP2FIFOFLGS = 0xe6a7 00E6A8 614 _EP4FIFOFLGS = 0xe6a8 00E6A9 615 _EP6FIFOFLGS = 0xe6a9 00E6AA 616 _EP8FIFOFLGS = 0xe6aa 00E6AB 617 _EP2FIFOBCH = 0xe6ab 00E6AC 618 _EP2FIFOBCL = 0xe6ac 00E6AD 619 _EP4FIFOBCH = 0xe6ad 00E6AE 620 _EP4FIFOBCL = 0xe6ae 00E6AF 621 _EP6FIFOBCH = 0xe6af 00E6B0 622 _EP6FIFOBCL = 0xe6b0 00E6B1 623 _EP8FIFOBCH = 0xe6b1 00E6B2 624 _EP8FIFOBCL = 0xe6b2 00E6B3 625 _SUDPTRH = 0xe6b3 00E6B4 626 _SUDPTRL = 0xe6b4 00E6B5 627 _SUDPTRCTL = 0xe6b5 00E6B8 628 _SETUPDAT = 0xe6b8 00E6C0 629 _GPIFWFSELECT = 0xe6c0 00E6C1 630 _GPIFIDLECS = 0xe6c1 00E6C2 631 _GPIFIDLECTL = 0xe6c2 00E6C3 632 _GPIFCTLCFG = 0xe6c3 00E6C4 633 _GPIFADRH = 0xe6c4 00E6C5 634 _GPIFADRL = 0xe6c5 00E6CE 635 _GPIFTCB3 = 0xe6ce 00E6CF 636 _GPIFTCB2 = 0xe6cf 00E6D0 637 _GPIFTCB1 = 0xe6d0 00E6D1 638 _GPIFTCB0 = 0xe6d1 00E6D2 639 _EP2GPIFFLGSEL = 0xe6d2 00E6D3 640 _EP2GPIFPFSTOP = 0xe6d3 00E6D4 641 _EP2GPIFTRIG = 0xe6d4 00E6DA 642 _EP4GPIFFLGSEL = 0xe6da 00E6DB 643 _EP4GPIFPFSTOP = 0xe6db 00E6DC 644 _EP4GPIFTRIG = 0xe6dc 00E6E2 645 _EP6GPIFFLGSEL = 0xe6e2 00E6E3 646 _EP6GPIFPFSTOP = 0xe6e3 00E6E4 647 _EP6GPIFTRIG = 0xe6e4 00E6EA 648 _EP8GPIFFLGSEL = 0xe6ea 00E6EB 649 _EP8GPIFPFSTOP = 0xe6eb 00E6EC 650 _EP8GPIFTRIG = 0xe6ec 00E6F0 651 _XGPIFSGLDATH = 0xe6f0 00E6F1 652 _XGPIFSGLDATLX = 0xe6f1 00E6F2 653 _XGPIFSGLDATLNOX = 0xe6f2 00E6F3 654 _GPIFREADYCFG = 0xe6f3 00E6F4 655 _GPIFREADYSTAT = 0xe6f4 00E6F5 656 _GPIFABORT = 0xe6f5 00E6C6 657 _FLOWSTATE = 0xe6c6 00E6C7 658 _FLOWLOGIC = 0xe6c7 00E6C8 659 _FLOWEQ0CTL = 0xe6c8 00E6C9 660 _FLOWEQ1CTL = 0xe6c9 00E6CA 661 _FLOWHOLDOFF = 0xe6ca 00E6CB 662 _FLOWSTB = 0xe6cb 00E6CC 663 _FLOWSTBEDGE = 0xe6cc 00E6CD 664 _FLOWSTBHPERIOD = 0xe6cd 00E60C 665 _GPIFHOLDAMOUNT = 0xe60c 00E67D 666 _UDMACRCH = 0xe67d 00E67E 667 _UDMACRCL = 0xe67e 00E67F 668 _UDMACRCQUAL = 0xe67f 00E6F8 669 _DBUG = 0xe6f8 00E6F9 670 _TESTCFG = 0xe6f9 00E6FA 671 _USBTEST = 0xe6fa 00E6FB 672 _CT1 = 0xe6fb 00E6FC 673 _CT2 = 0xe6fc 00E6FD 674 _CT3 = 0xe6fd 00E6FE 675 _CT4 = 0xe6fe 00E740 676 _EP0BUF = 0xe740 00E780 677 _EP1OUTBUF = 0xe780 00E7C0 678 _EP1INBUF = 0xe7c0 00F000 679 _EP2FIFOBUF = 0xf000 00F400 680 _EP4FIFOBUF = 0xf400 00F800 681 _EP6FIFOBUF = 0xf800 00FC00 682 _EP8FIFOBUF = 0xfc00 00E1E0 683 _hash0 = 0xe1e0 684 ;-------------------------------------------------------- 685 ; absolute external ram data 686 ;-------------------------------------------------------- 687 .area XABS (ABS,XDATA) 688 ;-------------------------------------------------------- 689 ; external initialized ram data 690 ;-------------------------------------------------------- 691 .area HOME (CODE) 692 .area GSINIT0 (CODE) 693 .area GSINIT1 (CODE) 694 .area GSINIT2 (CODE) 695 .area GSINIT3 (CODE) 696 .area GSINIT4 (CODE) 697 .area GSINIT5 (CODE) 698 .area GSINIT (CODE) 699 .area GSFINAL (CODE) 700 .area CSEG (CODE) 701 ;-------------------------------------------------------- 702 ; global & static initialisations 703 ;-------------------------------------------------------- 704 .area HOME (CODE) 705 .area GSINIT (CODE) 706 .area GSFINAL (CODE) 707 .area GSINIT (CODE) 708 ;-------------------------------------------------------- 709 ; Home 710 ;-------------------------------------------------------- 711 .area HOME (CODE) 712 .area HOME (CODE) 713 ;-------------------------------------------------------- 714 ; code 715 ;-------------------------------------------------------- 716 .area CSEG (CODE) 717 ;------------------------------------------------------------ 718 ;Allocation info for local variables in function 'write_both_9862s' 719 ;------------------------------------------------------------ 720 ;v Allocated with name '_write_both_9862s_PARM_2' 721 ;header_lo Allocated to registers r7 722 ;------------------------------------------------------------ 723 ; eeprom_init.c:42: write_both_9862s (unsigned char header_lo, unsigned char v) 724 ; ----------------------------------------- 725 ; function write_both_9862s 726 ; ----------------------------------------- 000008 727 _write_both_9862s: 000007 728 ar7 = 0x07 000006 729 ar6 = 0x06 000005 730 ar5 = 0x05 000004 731 ar4 = 0x04 000003 732 ar3 = 0x03 000002 733 ar2 = 0x02 000001 734 ar1 = 0x01 000000 735 ar0 = 0x00 000008 AF 82 [24] 736 mov r7,dpl 737 ; eeprom_init.c:44: enable_codecs (); 00000A 53 80 CF [24] 738 anl _IOA,#0xcf 739 ; eeprom_init.c:46: write_byte_msb (header_lo); 00000D 8F 82 [24] 740 mov dpl,r7 00000F 12 00 1C [24] 741 lcall _write_byte_msb 742 ; eeprom_init.c:47: write_byte_msb (v); 000012 85 08 82 [24] 743 mov dpl,_write_both_9862s_PARM_2 000015 12 00 1C [24] 744 lcall _write_byte_msb 745 ; eeprom_init.c:49: disable_all (); 000018 43 80 30 [24] 746 orl _IOA,#0x30 747 ; eeprom_init.c:50: } 00001B 22 [24] 748 ret 749 ;------------------------------------------------------------ 750 ;Allocation info for local variables in function 'write_byte_msb' 751 ;------------------------------------------------------------ 752 ;v Allocated to registers r7 753 ;n Allocated to registers r6 754 ;------------------------------------------------------------ 755 ; eeprom_init.c:55: write_byte_msb (unsigned char v) 756 ; ----------------------------------------- 757 ; function write_byte_msb 758 ; ----------------------------------------- 00001C 759 _write_byte_msb: 00001C AF 82 [24] 760 mov r7,dpl 761 ; eeprom_init.c:58: do { 00001E 7E 08 [12] 762 mov r6,#0x08 000020 763 00101$: 764 ; eeprom_init.c:59: v = (v << 1) | (v >> 7); // rotate left (MSB into bottom bit) 000020 EF [12] 765 mov a,r7 000021 23 [12] 766 rl a 767 ; eeprom_init.c:60: bitS_OUT = v & 0x1; 000022 FF [12] 768 mov r7,a 000023 54 01 [12] 769 anl a,#0x01 770 ; assignBit 000025 24 FF [12] 771 add a,#0xff 000027 92 81 [24] 772 mov _bitS_OUT,c 773 ; eeprom_init.c:61: bitS_CLK = 1; 774 ; assignBit 000029 D2 80 [12] 775 setb _bitS_CLK 776 ; eeprom_init.c:62: bitS_CLK = 0; 777 ; assignBit 00002B C2 80 [12] 778 clr _bitS_CLK 779 ; eeprom_init.c:63: } while (--n != 0); 00002D DE F1 [24] 780 djnz r6,00101$ 781 ; eeprom_init.c:64: } 00002F 22 [24] 782 ret 783 ;------------------------------------------------------------ 784 ;Allocation info for local variables in function 'eeprom_init' 785 ;------------------------------------------------------------ 786 ;counter Allocated to registers 787 ;i Allocated to registers r7 788 ;------------------------------------------------------------ 789 ; eeprom_init.c:72: void eeprom_init (void) 790 ; ----------------------------------------- 791 ; function eeprom_init 792 ; ----------------------------------------- 000030 793 _eeprom_init: 794 ; eeprom_init.c:79: IOA = bmPORT_A_INITIAL; // Port A initial state 000030 75 80 38 [24] 795 mov _IOA,#0x38 796 ; eeprom_init.c:80: OEA = bmPORT_A_OUTPUTS; // Port A direction register 000033 75 B2 3B [24] 797 mov _OEA,#0x3b 798 ; eeprom_init.c:82: IOC = bmPORT_C_INITIAL; // Port C initial state 000036 75 A0 C0 [24] 799 mov _IOC,#0xc0 800 ; eeprom_init.c:83: OEC = bmPORT_C_OUTPUTS; // Port C direction register 000039 75 B4 CF [24] 801 mov _OEC,#0xcf 802 ; eeprom_init.c:85: IOE = bmPORT_E_INITIAL; // Port E initial state 00003C 75 B1 F0 [24] 803 mov _IOE,#0xf0 804 ; eeprom_init.c:86: OEE = bmPORT_E_OUTPUTS; // Port E direction register 00003F 75 B6 F8 [24] 805 mov _OEE,#0xf8 806 ; eeprom_init.c:88: EP0BCH = 0; SYNCDELAY; 000042 90 E6 8A [24] 807 mov dptr,#_EP0BCH 000045 E4 [12] 808 clr a 000046 F0 [24] 809 movx @dptr,a 000047 00 [12] 810 nop; nop; nop; 811 ; eeprom_init.c:91: USBCS = 0; // chip firmware handles commands 000048 90 E6 80 [24] 812 mov dptr,#_USBCS 00004B E4 [12] 813 clr a 00004C F0 [24] 814 movx @dptr,a 815 ; eeprom_init.c:93: USRP_PC &= ~bmPC_nRESET; // active low reset 00004D 53 A0 FE [24] 816 anl _IOC,#0xfe 817 ; eeprom_init.c:94: USRP_PC |= bmPC_nRESET; 000050 43 A0 01 [24] 818 orl _IOC,#0x01 819 ; eeprom_init.c:97: bitS_OUT = 0; /* idle state has CLK = 0 */ 820 ; assignBit 000053 C2 81 [12] 821 clr _bitS_OUT 822 ; eeprom_init.c:99: write_both_9862s (REG_RX_PWR_DN, 0x01); 000055 75 08 01 [24] 823 mov _write_both_9862s_PARM_2,#0x01 000058 75 82 01 [24] 824 mov dpl,#0x01 00005B 12 00 08 [24] 825 lcall _write_both_9862s 826 ; eeprom_init.c:100: write_both_9862s (REG_TX_PWR_DN, 0x0f); // pwr dn digital and analog_both 00005E 75 08 0F [24] 827 mov _write_both_9862s_PARM_2,#0x0f 000061 75 82 08 [24] 828 mov dpl,#0x08 000064 12 00 08 [24] 829 lcall _write_both_9862s 830 ; eeprom_init.c:101: write_both_9862s (REG_TX_MODULATOR, 0x00); // coarse & fine modulators disabled 000067 75 08 00 [24] 831 mov _write_both_9862s_PARM_2,#0x00 00006A 75 82 14 [24] 832 mov dpl,#0x14 00006D 12 00 08 [24] 833 lcall _write_both_9862s 834 ; eeprom_init.c:105: do { 000070 7F 00 [12] 835 mov r7,#0x00 000072 836 00101$: 837 ; eeprom_init.c:106: hash0[i] = 0; 000072 EF [12] 838 mov a,r7 000073 24 E0 [12] 839 add a,#_hash0 000075 F5 82 [12] 840 mov dpl,a 000077 E4 [12] 841 clr a 000078 34 E1 [12] 842 addc a,#(_hash0 >> 8) 00007A F5 83 [12] 843 mov dph,a 00007C E4 [12] 844 clr a 00007D F0 [24] 845 movx @dptr,a 846 ; eeprom_init.c:107: i++; 00007E 0F [12] 847 inc r7 848 ; eeprom_init.c:108: } while (i != USRP_HASH_SIZE); 00007F BF 10 F0 [24] 849 cjne r7,#0x10,00101$ 850 ; eeprom_init.c:111: while (1){ 000082 7E 00 [12] 851 mov r6,#0x00 000084 7F 00 [12] 852 mov r7,#0x00 000086 853 00107$: 854 ; eeprom_init.c:112: counter++; 000086 0E [12] 855 inc r6 000087 BE 00 01 [24] 856 cjne r6,#0x00,00130$ 00008A 0F [12] 857 inc r7 00008B 858 00130$: 859 ; eeprom_init.c:113: if (counter & 0x8000) 00008B EF [12] 860 mov a,r7 00008C 30 E7 F7 [24] 861 jnb acc.7,00107$ 862 ; eeprom_init.c:114: IOC ^= bmPC_LED0; 00008F 63 A0 40 [24] 863 xrl _IOC,#0x40 864 ; eeprom_init.c:116: } 000092 80 F2 [24] 865 sjmp 00107$ 866 .area CSEG (CODE) 867 .area CONST (CODE) 868 .area CABS (ABS,CODE)