1 ;-------------------------------------------------------- 2 ; Hand tweaked minimal eeprom boot code 3 ;-------------------------------------------------------- 4 .module eeprom_boot 5 .optsdcc -mmcs51 --model-small 6 7 ;-------------------------------------------------------- 8 ; Public variables in this module 9 ;-------------------------------------------------------- 10 .globl _eeprom_init 11 .globl _EP8FIFOBUF 12 .globl _EP6FIFOBUF 13 .globl _EP4FIFOBUF 14 .globl _EP2FIFOBUF 15 .globl _EP1INBUF 16 .globl _EP1OUTBUF 17 .globl _EP0BUF 18 .globl _CT4 19 .globl _CT3 20 .globl _CT2 21 .globl _CT1 22 .globl _USBTEST 23 .globl _TESTCFG 24 .globl _DBUG 25 .globl _UDMACRCQUAL 26 .globl _UDMACRCL 27 .globl _UDMACRCH 28 .globl _GPIFHOLDAMOUNT 29 .globl _FLOWSTBHPERIOD 30 .globl _FLOWSTBEDGE 31 .globl _FLOWSTB 32 .globl _FLOWHOLDOFF 33 .globl _FLOWEQ1CTL 34 .globl _FLOWEQ0CTL 35 .globl _FLOWLOGIC 36 .globl _FLOWSTATE 37 .globl _GPIFABORT 38 .globl _GPIFREADYSTAT 39 .globl _GPIFREADYCFG 40 .globl _XGPIFSGLDATLNOX 41 .globl _XGPIFSGLDATLX 42 .globl _XGPIFSGLDATH 43 .globl _EP8GPIFTRIG 44 .globl _EP8GPIFPFSTOP 45 .globl _EP8GPIFFLGSEL 46 .globl _EP6GPIFTRIG 47 .globl _EP6GPIFPFSTOP 48 .globl _EP6GPIFFLGSEL 49 .globl _EP4GPIFTRIG 50 .globl _EP4GPIFPFSTOP 51 .globl _EP4GPIFFLGSEL 52 .globl _EP2GPIFTRIG 53 .globl _EP2GPIFPFSTOP 54 .globl _EP2GPIFFLGSEL 55 .globl _GPIFTCB0 56 .globl _GPIFTCB1 57 .globl _GPIFTCB2 58 .globl _GPIFTCB3 59 .globl _GPIFADRL 60 .globl _GPIFADRH 61 .globl _GPIFCTLCFG 62 .globl _GPIFIDLECTL 63 .globl _GPIFIDLECS 64 .globl _GPIFWFSELECT 65 .globl _SETUPDAT 66 .globl _SUDPTRCTL 67 .globl _SUDPTRL 68 .globl _SUDPTRH 69 .globl _EP8FIFOBCL 70 .globl _EP8FIFOBCH 71 .globl _EP6FIFOBCL 72 .globl _EP6FIFOBCH 73 .globl _EP4FIFOBCL 74 .globl _EP4FIFOBCH 75 .globl _EP2FIFOBCL 76 .globl _EP2FIFOBCH 77 .globl _EP8FIFOFLGS 78 .globl _EP6FIFOFLGS 79 .globl _EP4FIFOFLGS 80 .globl _EP2FIFOFLGS 81 .globl _EP8CS 82 .globl _EP6CS 83 .globl _EP4CS 84 .globl _EP2CS 85 .globl _EP1INCS 86 .globl _EP1OUTCS 87 .globl _EP0CS 88 .globl _EP8BCL 89 .globl _EP8BCH 90 .globl _EP6BCL 91 .globl _EP6BCH 92 .globl _EP4BCL 93 .globl _EP4BCH 94 .globl _EP2BCL 95 .globl _EP2BCH 96 .globl _EP1INBC 97 .globl _EP1OUTBC 98 .globl _EP0BCL 99 .globl _EP0BCH 100 .globl _FNADDR 101 .globl _MICROFRAME 102 .globl _USBFRAMEL 103 .globl _USBFRAMEH 104 .globl _TOGCTL 105 .globl _WAKEUPCS 106 .globl _SUSPEND 107 .globl _USBCS 108 .globl _XAUTODAT2 109 .globl _XAUTODAT1 110 .globl _I2CTL 111 .globl _I2DAT 112 .globl _I2CS 113 .globl _PORTECFG 114 .globl _PORTCCFG 115 .globl _PORTACFG 116 .globl _INTSETUP 117 .globl _INT4IVEC 118 .globl _INT2IVEC 119 .globl _CLRERRCNT 120 .globl _ERRCNTLIM 121 .globl _USBERRIRQ 122 .globl _USBERRIE 123 .globl _GPIFIRQ 124 .globl _GPIFIE 125 .globl _EPIRQ 126 .globl _EPIE 127 .globl _USBIRQ 128 .globl _USBIE 129 .globl _NAKIRQ 130 .globl _NAKIE 131 .globl _IBNIRQ 132 .globl _IBNIE 133 .globl _EP8FIFOIRQ 134 .globl _EP8FIFOIE 135 .globl _EP6FIFOIRQ 136 .globl _EP6FIFOIE 137 .globl _EP4FIFOIRQ 138 .globl _EP4FIFOIE 139 .globl _EP2FIFOIRQ 140 .globl _EP2FIFOIE 141 .globl _OUTPKTEND 142 .globl _INPKTEND 143 .globl _EP8ISOINPKTS 144 .globl _EP6ISOINPKTS 145 .globl _EP4ISOINPKTS 146 .globl _EP2ISOINPKTS 147 .globl _EP8FIFOPFL 148 .globl _EP8FIFOPFH 149 .globl _EP6FIFOPFL 150 .globl _EP6FIFOPFH 151 .globl _EP4FIFOPFL 152 .globl _EP4FIFOPFH 153 .globl _EP2FIFOPFL 154 .globl _EP2FIFOPFH 155 .globl _EP8AUTOINLENL 156 .globl _EP8AUTOINLENH 157 .globl _EP6AUTOINLENL 158 .globl _EP6AUTOINLENH 159 .globl _EP4AUTOINLENL 160 .globl _EP4AUTOINLENH 161 .globl _EP2AUTOINLENL 162 .globl _EP2AUTOINLENH 163 .globl _EP8FIFOCFG 164 .globl _EP6FIFOCFG 165 .globl _EP4FIFOCFG 166 .globl _EP2FIFOCFG 167 .globl _EP8CFG 168 .globl _EP6CFG 169 .globl _EP4CFG 170 .globl _EP2CFG 171 .globl _EP1INCFG 172 .globl _EP1OUTCFG 173 .globl _REVCTL 174 .globl _REVID 175 .globl _FIFOPINPOLAR 176 .globl _UART230 177 .globl _BPADDRL 178 .globl _BPADDRH 179 .globl _BREAKPT 180 .globl _FIFORESET 181 .globl _PINFLAGSCD 182 .globl _PINFLAGSAB 183 .globl _IFCONFIG 184 .globl _CPUCS 185 .globl _RES_WAVEDATA_END 186 .globl _GPIF_WAVE_DATA 187 ;-------------------------------------------------------- 188 ; special function registers 189 ;-------------------------------------------------------- 000080 190 _IOA = 0x0080 000081 191 _SP = 0x0081 000082 192 _DPL = 0x0082 000083 193 _DPH = 0x0083 000084 194 _DPL1 = 0x0084 000085 195 _DPH1 = 0x0085 000086 196 _DPS = 0x0086 000087 197 _PCON = 0x0087 000088 198 _TCON = 0x0088 000089 199 _TMOD = 0x0089 00008A 200 _TL0 = 0x008a 00008B 201 _TL1 = 0x008b 00008C 202 _TH0 = 0x008c 00008D 203 _TH1 = 0x008d 00008E 204 _CKCON = 0x008e 000090 205 _IOB = 0x0090 000091 206 _EXIF = 0x0091 000092 207 _MPAGE = 0x0092 000098 208 _SCON0 = 0x0098 000099 209 _SBUF0 = 0x0099 00009A 210 _APTR1H = 0x009a 00009B 211 _APTR1L = 0x009b 00009C 212 _AUTODAT1 = 0x009c 00009D 213 _AUTOPTRH2 = 0x009d 00009E 214 _AUTOPTRL2 = 0x009e 00009F 215 _AUTODAT2 = 0x009f 0000A0 216 _IOC = 0x00a0 0000A1 217 _INT2CLR = 0x00a1 0000A2 218 _INT4CLR = 0x00a2 0000A8 219 _IE = 0x00a8 0000AA 220 _EP2468STAT = 0x00aa 0000AB 221 _EP24FIFOFLGS = 0x00ab 0000AC 222 _EP68FIFOFLGS = 0x00ac 0000AF 223 _AUTOPTRSETUP = 0x00af 0000B0 224 _IOD = 0x00b0 0000B1 225 _IOE = 0x00b1 0000B2 226 _OEA = 0x00b2 0000B3 227 _OEB = 0x00b3 0000B4 228 _OEC = 0x00b4 0000B5 229 _OED = 0x00b5 0000B6 230 _OEE = 0x00b6 0000B8 231 _IP = 0x00b8 0000BA 232 _EP01STAT = 0x00ba 0000BB 233 _GPIFTRIG = 0x00bb 0000BD 234 _GPIFSGLDATH = 0x00bd 0000BE 235 _GPIFSGLDATLX = 0x00be 0000BF 236 _GPIFSGLDATLNOX = 0x00bf 0000C0 237 _SCON1 = 0x00c0 0000C1 238 _SBUF1 = 0x00c1 0000C8 239 _T2CON = 0x00c8 0000CA 240 _RCAP2L = 0x00ca 0000CB 241 _RCAP2H = 0x00cb 0000CC 242 _TL2 = 0x00cc 0000CD 243 _TH2 = 0x00cd 0000D0 244 _PSW = 0x00d0 0000D8 245 _EICON = 0x00d8 0000E0 246 _ACC = 0x00e0 0000E8 247 _EIE = 0x00e8 0000F0 248 _B = 0x00f0 0000F8 249 _EIP = 0x00f8 250 ;-------------------------------------------------------- 251 ; special function bits 252 ;-------------------------------------------------------- 000086 253 _SEL = 0x0086 000088 254 _IT0 = 0x0088 000089 255 _IE0 = 0x0089 00008A 256 _IT1 = 0x008a 00008B 257 _IE1 = 0x008b 00008C 258 _TR0 = 0x008c 00008D 259 _TF0 = 0x008d 00008E 260 _TR1 = 0x008e 00008F 261 _TF1 = 0x008f 000098 262 _RI = 0x0098 000099 263 _TI = 0x0099 00009A 264 _RB8 = 0x009a 00009B 265 _TB8 = 0x009b 00009C 266 _REN = 0x009c 00009D 267 _SM2 = 0x009d 00009E 268 _SM1 = 0x009e 00009F 269 _SM0 = 0x009f 0000A8 270 _EX0 = 0x00a8 0000A9 271 _ET0 = 0x00a9 0000AA 272 _EX1 = 0x00aa 0000AB 273 _ET1 = 0x00ab 0000AC 274 _ES0 = 0x00ac 0000AD 275 _ET2 = 0x00ad 0000AE 276 _ES1 = 0x00ae 0000AF 277 _EA = 0x00af 0000B8 278 _PX0 = 0x00b8 0000B9 279 _PT0 = 0x00b9 0000BA 280 _PX1 = 0x00ba 0000BB 281 _PT1 = 0x00bb 0000BC 282 _PS0 = 0x00bc 0000BD 283 _PT2 = 0x00bd 0000BE 284 _PS1 = 0x00be 0000C0 285 _RI1 = 0x00c0 0000C1 286 _TI1 = 0x00c1 0000C2 287 _RB81 = 0x00c2 0000C3 288 _TB81 = 0x00c3 0000C4 289 _REN1 = 0x00c4 0000C5 290 _SM21 = 0x00c5 0000C6 291 _SM11 = 0x00c6 0000C7 292 _SM01 = 0x00c7 0000C8 293 _CP_RL2 = 0x00c8 0000C9 294 _C_T2 = 0x00c9 0000CA 295 _TR2 = 0x00ca 0000CB 296 _EXEN2 = 0x00cb 0000CC 297 _TCLK = 0x00cc 0000CD 298 _RCLK = 0x00cd 0000CE 299 _EXF2 = 0x00ce 0000CF 300 _TF2 = 0x00cf 0000D0 301 _P = 0x00d0 0000D1 302 _FL = 0x00d1 0000D2 303 _OV = 0x00d2 0000D3 304 _RS0 = 0x00d3 0000D4 305 _RS1 = 0x00d4 0000D5 306 _F0 = 0x00d5 0000D6 307 _AC = 0x00d6 0000D7 308 _CY = 0x00d7 0000DB 309 _INT6 = 0x00db 0000DC 310 _RESI = 0x00dc 0000DD 311 _ERESI = 0x00dd 0000DF 312 _SMOD1 = 0x00df 0000E8 313 _EIUSB = 0x00e8 0000E9 314 _EI2C = 0x00e9 0000EA 315 _EIEX4 = 0x00ea 0000EB 316 _EIEX5 = 0x00eb 0000EC 317 _EIEX6 = 0x00ec 0000F8 318 _PUSB = 0x00f8 0000F9 319 _PI2C = 0x00f9 0000FA 320 _EIPX4 = 0x00fa 0000FB 321 _EIPX5 = 0x00fb 0000FC 322 _EIPX6 = 0x00fc 000080 323 _bitS_CLK = 0x0080 000081 324 _bitS_OUT = 0x0081 000082 325 _bitS_IN = 0x0082 0000A1 326 _bitALTERA_DATA0 = 0x00a1 0000A3 327 _bitALTERA_DCLK = 0x00a3 328 ;-------------------------------------------------------- 329 ; overlayable register banks 330 ;-------------------------------------------------------- 331 .area REG_BANK_0 (REL,OVR,DATA) 000000 332 .ds 8 333 ;-------------------------------------------------------- 334 ; internal ram data 335 ;-------------------------------------------------------- 336 .area DSEG (DATA) 337 ;-------------------------------------------------------- 338 ; overlayable items in internal ram 339 ;-------------------------------------------------------- 340 .area OSEG (OVR,DATA) 341 ;-------------------------------------------------------- 342 ; Stack segment in internal ram 343 ;-------------------------------------------------------- 344 .area SSEG (DATA) 000009 345 __start__stack: 000009 346 .ds 1 347 348 ;-------------------------------------------------------- 349 ; indirectly addressable internal ram data 350 ;-------------------------------------------------------- 351 .area ISEG (DATA) 352 ;-------------------------------------------------------- 353 ; bit data 354 ;-------------------------------------------------------- 355 .area BSEG (BIT) 356 ;-------------------------------------------------------- 357 ; external ram data 358 ;-------------------------------------------------------- 359 .area XSEG (XDATA) 00E400 360 _GPIF_WAVE_DATA = 0xe400 00E480 361 _RES_WAVEDATA_END = 0xe480 00E600 362 _CPUCS = 0xe600 00E601 363 _IFCONFIG = 0xe601 00E602 364 _PINFLAGSAB = 0xe602 00E603 365 _PINFLAGSCD = 0xe603 00E604 366 _FIFORESET = 0xe604 00E605 367 _BREAKPT = 0xe605 00E606 368 _BPADDRH = 0xe606 00E607 369 _BPADDRL = 0xe607 00E608 370 _UART230 = 0xe608 00E609 371 _FIFOPINPOLAR = 0xe609 00E60A 372 _REVID = 0xe60a 00E60B 373 _REVCTL = 0xe60b 00E610 374 _EP1OUTCFG = 0xe610 00E611 375 _EP1INCFG = 0xe611 00E612 376 _EP2CFG = 0xe612 00E613 377 _EP4CFG = 0xe613 00E614 378 _EP6CFG = 0xe614 00E615 379 _EP8CFG = 0xe615 00E618 380 _EP2FIFOCFG = 0xe618 00E619 381 _EP4FIFOCFG = 0xe619 00E61A 382 _EP6FIFOCFG = 0xe61a 00E61B 383 _EP8FIFOCFG = 0xe61b 00E620 384 _EP2AUTOINLENH = 0xe620 00E621 385 _EP2AUTOINLENL = 0xe621 00E622 386 _EP4AUTOINLENH = 0xe622 00E623 387 _EP4AUTOINLENL = 0xe623 00E624 388 _EP6AUTOINLENH = 0xe624 00E625 389 _EP6AUTOINLENL = 0xe625 00E626 390 _EP8AUTOINLENH = 0xe626 00E627 391 _EP8AUTOINLENL = 0xe627 00E630 392 _EP2FIFOPFH = 0xe630 00E631 393 _EP2FIFOPFL = 0xe631 00E632 394 _EP4FIFOPFH = 0xe632 00E633 395 _EP4FIFOPFL = 0xe633 00E634 396 _EP6FIFOPFH = 0xe634 00E635 397 _EP6FIFOPFL = 0xe635 00E636 398 _EP8FIFOPFH = 0xe636 00E637 399 _EP8FIFOPFL = 0xe637 00E640 400 _EP2ISOINPKTS = 0xe640 00E641 401 _EP4ISOINPKTS = 0xe641 00E642 402 _EP6ISOINPKTS = 0xe642 00E643 403 _EP8ISOINPKTS = 0xe643 00E648 404 _INPKTEND = 0xe648 00E649 405 _OUTPKTEND = 0xe649 00E650 406 _EP2FIFOIE = 0xe650 00E651 407 _EP2FIFOIRQ = 0xe651 00E652 408 _EP4FIFOIE = 0xe652 00E653 409 _EP4FIFOIRQ = 0xe653 00E654 410 _EP6FIFOIE = 0xe654 00E655 411 _EP6FIFOIRQ = 0xe655 00E656 412 _EP8FIFOIE = 0xe656 00E657 413 _EP8FIFOIRQ = 0xe657 00E658 414 _IBNIE = 0xe658 00E659 415 _IBNIRQ = 0xe659 00E65A 416 _NAKIE = 0xe65a 00E65B 417 _NAKIRQ = 0xe65b 00E65C 418 _USBIE = 0xe65c 00E65D 419 _USBIRQ = 0xe65d 00E65E 420 _EPIE = 0xe65e 00E65F 421 _EPIRQ = 0xe65f 00E660 422 _GPIFIE = 0xe660 00E661 423 _GPIFIRQ = 0xe661 00E662 424 _USBERRIE = 0xe662 00E663 425 _USBERRIRQ = 0xe663 00E664 426 _ERRCNTLIM = 0xe664 00E665 427 _CLRERRCNT = 0xe665 00E666 428 _INT2IVEC = 0xe666 00E667 429 _INT4IVEC = 0xe667 00E668 430 _INTSETUP = 0xe668 00E670 431 _PORTACFG = 0xe670 00E671 432 _PORTCCFG = 0xe671 00E672 433 _PORTECFG = 0xe672 00E678 434 _I2CS = 0xe678 00E679 435 _I2DAT = 0xe679 00E67A 436 _I2CTL = 0xe67a 00E67B 437 _XAUTODAT1 = 0xe67b 00E67C 438 _XAUTODAT2 = 0xe67c 00E680 439 _USBCS = 0xe680 00E681 440 _SUSPEND = 0xe681 00E682 441 _WAKEUPCS = 0xe682 00E683 442 _TOGCTL = 0xe683 00E684 443 _USBFRAMEH = 0xe684 00E685 444 _USBFRAMEL = 0xe685 00E686 445 _MICROFRAME = 0xe686 00E687 446 _FNADDR = 0xe687 00E68A 447 _EP0BCH = 0xe68a 00E68B 448 _EP0BCL = 0xe68b 00E68D 449 _EP1OUTBC = 0xe68d 00E68F 450 _EP1INBC = 0xe68f 00E690 451 _EP2BCH = 0xe690 00E691 452 _EP2BCL = 0xe691 00E694 453 _EP4BCH = 0xe694 00E695 454 _EP4BCL = 0xe695 00E698 455 _EP6BCH = 0xe698 00E699 456 _EP6BCL = 0xe699 00E69C 457 _EP8BCH = 0xe69c 00E69D 458 _EP8BCL = 0xe69d 00E6A0 459 _EP0CS = 0xe6a0 00E6A1 460 _EP1OUTCS = 0xe6a1 00E6A2 461 _EP1INCS = 0xe6a2 00E6A3 462 _EP2CS = 0xe6a3 00E6A4 463 _EP4CS = 0xe6a4 00E6A5 464 _EP6CS = 0xe6a5 00E6A6 465 _EP8CS = 0xe6a6 00E6A7 466 _EP2FIFOFLGS = 0xe6a7 00E6A8 467 _EP4FIFOFLGS = 0xe6a8 00E6A9 468 _EP6FIFOFLGS = 0xe6a9 00E6AA 469 _EP8FIFOFLGS = 0xe6aa 00E6AB 470 _EP2FIFOBCH = 0xe6ab 00E6AC 471 _EP2FIFOBCL = 0xe6ac 00E6AD 472 _EP4FIFOBCH = 0xe6ad 00E6AE 473 _EP4FIFOBCL = 0xe6ae 00E6AF 474 _EP6FIFOBCH = 0xe6af 00E6B0 475 _EP6FIFOBCL = 0xe6b0 00E6B1 476 _EP8FIFOBCH = 0xe6b1 00E6B2 477 _EP8FIFOBCL = 0xe6b2 00E6B3 478 _SUDPTRH = 0xe6b3 00E6B4 479 _SUDPTRL = 0xe6b4 00E6B5 480 _SUDPTRCTL = 0xe6b5 00E6B8 481 _SETUPDAT = 0xe6b8 00E6C0 482 _GPIFWFSELECT = 0xe6c0 00E6C1 483 _GPIFIDLECS = 0xe6c1 00E6C2 484 _GPIFIDLECTL = 0xe6c2 00E6C3 485 _GPIFCTLCFG = 0xe6c3 00E6C4 486 _GPIFADRH = 0xe6c4 00E6C5 487 _GPIFADRL = 0xe6c5 00E6CE 488 _GPIFTCB3 = 0xe6ce 00E6CF 489 _GPIFTCB2 = 0xe6cf 00E6D0 490 _GPIFTCB1 = 0xe6d0 00E6D1 491 _GPIFTCB0 = 0xe6d1 00E6D2 492 _EP2GPIFFLGSEL = 0xe6d2 00E6D3 493 _EP2GPIFPFSTOP = 0xe6d3 00E6D4 494 _EP2GPIFTRIG = 0xe6d4 00E6DA 495 _EP4GPIFFLGSEL = 0xe6da 00E6DB 496 _EP4GPIFPFSTOP = 0xe6db 00E6DC 497 _EP4GPIFTRIG = 0xe6dc 00E6E2 498 _EP6GPIFFLGSEL = 0xe6e2 00E6E3 499 _EP6GPIFPFSTOP = 0xe6e3 00E6E4 500 _EP6GPIFTRIG = 0xe6e4 00E6EA 501 _EP8GPIFFLGSEL = 0xe6ea 00E6EB 502 _EP8GPIFPFSTOP = 0xe6eb 00E6EC 503 _EP8GPIFTRIG = 0xe6ec 00E6F0 504 _XGPIFSGLDATH = 0xe6f0 00E6F1 505 _XGPIFSGLDATLX = 0xe6f1 00E6F2 506 _XGPIFSGLDATLNOX = 0xe6f2 00E6F3 507 _GPIFREADYCFG = 0xe6f3 00E6F4 508 _GPIFREADYSTAT = 0xe6f4 00E6F5 509 _GPIFABORT = 0xe6f5 00E6C6 510 _FLOWSTATE = 0xe6c6 00E6C7 511 _FLOWLOGIC = 0xe6c7 00E6C8 512 _FLOWEQ0CTL = 0xe6c8 00E6C9 513 _FLOWEQ1CTL = 0xe6c9 00E6CA 514 _FLOWHOLDOFF = 0xe6ca 00E6CB 515 _FLOWSTB = 0xe6cb 00E6CC 516 _FLOWSTBEDGE = 0xe6cc 00E6CD 517 _FLOWSTBHPERIOD = 0xe6cd 00E60C 518 _GPIFHOLDAMOUNT = 0xe60c 00E67D 519 _UDMACRCH = 0xe67d 00E67E 520 _UDMACRCL = 0xe67e 00E67F 521 _UDMACRCQUAL = 0xe67f 00E6F8 522 _DBUG = 0xe6f8 00E6F9 523 _TESTCFG = 0xe6f9 00E6FA 524 _USBTEST = 0xe6fa 00E6FB 525 _CT1 = 0xe6fb 00E6FC 526 _CT2 = 0xe6fc 00E6FD 527 _CT3 = 0xe6fd 00E6FE 528 _CT4 = 0xe6fe 00E740 529 _EP0BUF = 0xe740 00E780 530 _EP1OUTBUF = 0xe780 00E7C0 531 _EP1INBUF = 0xe7c0 00F000 532 _EP2FIFOBUF = 0xf000 00F400 533 _EP4FIFOBUF = 0xf400 00F800 534 _EP6FIFOBUF = 0xf800 00FC00 535 _EP8FIFOBUF = 0xfc00 536 ;-------------------------------------------------------- 537 ; external initialized ram data 538 ;-------------------------------------------------------- 539 ;-------------------------------------------------------- 540 ; interrupt vector 541 ;-------------------------------------------------------- 542 .area CSEG (CODE) 000000 543 __interrupt_vect: 000000 02 00 B6 [24] 544 ljmp __sdcc_gsinit_startup 545 ;-------------------------------------------------------- 546 ; global & static initialisations 547 ;-------------------------------------------------------- 548 .area GSINIT (CODE) 549 .area GSFINAL (CODE) 550 .area GSINIT (CODE) 0000B6 551 __sdcc_gsinit_startup: 0000B6 75 81 08 [24] 552 mov sp,#__start__stack - 1 0000B9 12 00 94 [24] 553 lcall __sdcc_external_startup 0000BC E5 82 [12] 554 mov a,dpl 0000BE 60 03 [24] 555 jz __sdcc_init_data 0000C0 02 00 03 [24] 556 ljmp __sdcc_program_startup 0000C3 557 __sdcc_init_data: 558 .area GSFINAL (CODE) 0000C3 02 00 03 [24] 559 ljmp __sdcc_program_startup 560 ;-------------------------------------------------------- 561 ; Home 562 ;-------------------------------------------------------- 563 .area HOME (CODE) 564 .area CSEG (CODE) 565 ;-------------------------------------------------------- 566 ; code 567 ;-------------------------------------------------------- 568 .area CSEG (CODE) 000003 569 __sdcc_program_startup: 000003 12 00 30 [24] 570 lcall _eeprom_init 571 ; return from _eeprom_init will spin here 000006 80 FE [24] 572 sjmp . 573 .area CSEG (CODE)