HelloTinyROM.elf: file format elf32-zpu Disassembly of section .fixed_vectors: 00000000 <_start>: 0: 0b nop 1: 0b nop 2: 0b nop 3: 89 im 9 4: ad im 45 5: 04 poppc 6: 0b nop 7: 0b nop 8: 0b nop 9: 0b nop a: 0b nop b: 0b nop c: 0b nop d: 0b nop e: 0b nop f: 0b nop 10: 0b nop 11: 0b nop 12: 0b nop 13: 0b nop 14: 0b nop 15: 0b nop 16: 0b nop 17: 0b nop 18: 0b nop 19: 0b nop 1a: 0b nop 1b: 0b nop 1c: 0b nop 1d: 0b nop 1e: 0b nop 1f: 0b nop 20: 0b nop 21: 0b nop 22: 0b nop 23: 0b nop ... 00000040 <_loadh>: 40: 71 loadsp 4 41: fd im -3 42: 06 and 43: 08 load 44: 72 loadsp 8 45: 83 im 3 46: 06 and 47: 09 not 48: 81 im 1 49: 05 add 4a: 82 im 2 4b: 05 add 4c: 83 im 3 4d: 2b ashiftleft 4e: 2a lshiftright 4f: 83 im 3 50: ff im -1 51: ff im -1 52: 06 and 53: 52 storesp 8 54: 04 poppc ... 00000060 <_storeh>: 60: 71 loadsp 4 61: fd im -3 62: 06 and 63: 08 load 64: 83 im 3 65: ff im -1 66: ff im -1 67: 73 loadsp 12 68: 83 im 3 69: 06 and 6a: 09 not 6b: 81 im 1 6c: 05 add 6d: 82 im 2 6e: 05 add 6f: 83 im 3 70: 2b ashiftleft 71: 2b ashiftleft 72: 09 not 73: 06 and 74: 73 loadsp 12 75: 83 im 3 76: ff im -1 77: ff im -1 78: 0b nop 79: 0b nop 7a: 0b nop 7b: 0b nop 7c: 83 im 3 7d: a7 im 39 7e: 04 poppc ... 00000080 <_lessthan>: 80: 72 loadsp 8 81: 09 not 82: 81 im 1 83: 05 add 84: 72 loadsp 8 85: 05 add 86: 73 loadsp 12 87: 73 loadsp 12 88: 09 not 89: 06 and 8a: 09 not 8b: 06 and 8c: 73 loadsp 12 8d: 09 not 8e: 73 loadsp 12 8f: 06 and 90: 07 or 91: 0a flip 92: 81 im 1 93: 06 and 94: 53 storesp 12 95: 51 storesp 4 96: 04 poppc ... 000000a0 <_lessthanorequal>: a0: 72 loadsp 8 a1: 72 loadsp 8 a2: 24 lessthan a3: 73 loadsp 12 a4: 73 loadsp 12 a5: 2e eq a6: 07 or a7: 53 storesp 12 a8: 51 storesp 4 a9: 04 poppc ... 000000c0 <_ulessthan>: c0: 71 loadsp 4 c1: 73 loadsp 12 c2: 71 loadsp 4 c3: 09 not c4: 71 loadsp 4 c5: 06 and c6: 81 im 1 c7: 06 and c8: 30 neg c9: 72 loadsp 8 ca: 0a flip cb: 10 addsp 0 cc: 0a flip cd: 72 loadsp 8 ce: 0a flip cf: 10 addsp 0 d0: 0a flip d1: 31 sub d2: 05 add d3: 0a flip d4: 81 im 1 d5: 06 and d6: 51 storesp 4 d7: 51 storesp 4 d8: 53 storesp 12 d9: 51 storesp 4 da: 04 poppc db: 00 breakpoint dc: 00 breakpoint dd: 00 breakpoint ... 000000e0 <_ulessthanorequal>: e0: 72 loadsp 8 e1: 72 loadsp 8 e2: 26 ulessthan e3: 73 loadsp 12 e4: 73 loadsp 12 e5: 2e eq e6: 07 or e7: 53 storesp 12 e8: 51 storesp 4 e9: 04 poppc ... 00000100 <_swap>: ... 00000120 <_slowmult>: 120: 0b nop 121: 0b nop 122: 0b nop 123: 88 im 8 124: bc im 60 125: 04 poppc ... 00000140 <_lshiftright>: 140: 72 loadsp 8 141: 0a flip 142: 72 loadsp 8 143: 2b ashiftleft 144: 0a flip 145: 53 storesp 12 146: 51 storesp 4 147: 04 poppc ... 00000160 <_ashiftleft>: 160: 72 loadsp 8 161: 72 loadsp 8 162: 9f im 31 163: 06 and 164: 09 not 165: 81 im 1 166: 05 add 167: 0b nop 168: 0b nop 169: 0b nop 16a: 88 im 8 16b: 9f im 31 16c: 05 add 16d: 04 poppc ... 00000180 <_ashiftright>: 180: 72 loadsp 8 181: 72 loadsp 8 182: 2a lshiftright 183: ff im -1 184: 73 loadsp 12 185: 9f im 31 186: 06 and 187: 2a lshiftright 188: 09 not 189: 74 loadsp 16 18a: 09 not 18b: 0a flip 18c: 81 im 1 18d: 06 and 18e: ff im -1 18f: 05 add 190: 06 and 191: 07 or 192: 53 storesp 12 193: 51 storesp 4 194: 04 poppc ... 000001a0 <_call>: 1a0: 71 loadsp 4 1a1: 71 loadsp 4 1a2: 53 storesp 12 1a3: 51 storesp 4 1a4: 02 pushsp 1a5: 0d popsp 1a6: 04 poppc 000001a7 <_storehtail>: 1a7: 06 and 1a8: 73 loadsp 12 1a9: 83 im 3 1aa: 06 and 1ab: 09 not 1ac: 81 im 1 1ad: 05 add 1ae: 82 im 2 1af: 05 add 1b0: 83 im 3 1b1: 2b ashiftleft 1b2: 0b nop 1b3: 2b ashiftleft 1b4: 07 or 1b5: 72 loadsp 8 1b6: fc im -4 1b7: 06 and 1b8: 0c store 1b9: 51 storesp 4 1ba: 51 storesp 4 1bb: 04 poppc 1bc: 00 breakpoint 1bd: 00 breakpoint ... 000001c0 <_eq>: 1c0: 72 loadsp 8 1c1: 09 not 1c2: 81 im 1 1c3: 05 add 1c4: 72 loadsp 8 1c5: 05 add 1c6: 09 not 1c7: 70 loadsp 0 1c8: 81 im 1 1c9: 05 add 1ca: 09 not 1cb: 06 and 1cc: 0a flip 1cd: 81 im 1 1ce: 06 and 1cf: 53 storesp 12 1d0: 51 storesp 4 1d1: 04 poppc ... 000001e0 <_neq>: 1e0: 72 loadsp 8 1e1: 09 not 1e2: 81 im 1 1e3: 05 add 1e4: 72 loadsp 8 1e5: 05 add 1e6: 09 not 1e7: 70 loadsp 0 1e8: 81 im 1 1e9: 05 add 1ea: 09 not 1eb: 06 and 1ec: 0a flip 1ed: 09 not 1ee: 81 im 1 1ef: 06 and 1f0: 53 storesp 12 1f1: 51 storesp 4 1f2: 04 poppc ... 00000200 <_neg>: 200: 71 loadsp 4 201: 09 not 202: 81 im 1 203: 05 add 204: 52 storesp 8 205: 04 poppc ... 00000220 <_sub>: 220: 72 loadsp 8 221: 72 loadsp 8 222: 09 not 223: 81 im 1 224: 05 add 225: 05 add 226: 53 storesp 12 227: 51 storesp 4 228: 04 poppc ... 00000240 <_xor>: 240: 72 loadsp 8 241: 09 not 242: 72 loadsp 8 243: 06 and 244: 73 loadsp 12 245: 73 loadsp 12 246: 09 not 247: 06 and 248: 07 or 249: 53 storesp 12 24a: 51 storesp 4 24b: 04 poppc ... 00000260 <_loadb>: 260: 71 loadsp 4 261: fc im -4 262: 06 and 263: 08 load 264: 72 loadsp 8 265: 83 im 3 266: 06 and 267: 09 not 268: 81 im 1 269: 05 add 26a: 83 im 3 26b: 05 add 26c: 10 addsp 0 26d: 10 addsp 0 26e: 10 addsp 0 26f: 2a lshiftright 270: 81 im 1 271: ff im -1 272: 06 and 273: 52 storesp 8 274: 04 poppc ... 00000280 <_storeb>: 280: 71 loadsp 4 281: fc im -4 282: 06 and 283: 08 load 284: 0b nop 285: 0b nop 286: 80 im 0 287: f4 im -12 288: a4 im 36 289: 73 loadsp 12 28a: 83 im 3 28b: 06 and 28c: 10 addsp 0 28d: 10 addsp 0 28e: 05 add 28f: 08 load 290: 06 and 291: 0b nop 292: 0b nop 293: 0b nop 294: 88 im 8 295: a2 im 34 296: 04 poppc ... 000002a0 <_div>: 2a0: 0b nop 2a1: 0b nop 2a2: 0b nop 2a3: 88 im 8 2a4: ff im -1 2a5: 04 poppc ... 000002c0 <_mod>: 2c0: 0b nop 2c1: 0b nop 2c2: 0b nop 2c3: 88 im 8 2c4: d8 im -40 2c5: 04 poppc ... 000002e0 <_eqbranch>: 2e0: 72 loadsp 8 2e1: 09 not 2e2: 70 loadsp 0 2e3: 81 im 1 2e4: 05 add 2e5: 09 not 2e6: 06 and 2e7: 0a flip 2e8: 81 im 1 2e9: 06 and 2ea: ff im -1 2eb: 05 add 2ec: 70 loadsp 0 2ed: 54 storesp 16 2ee: 71 loadsp 4 2ef: 06 and 2f0: 73 loadsp 12 2f1: 09 not 2f2: 72 loadsp 8 2f3: 74 loadsp 16 2f4: 05 add 2f5: ff im -1 2f6: 05 add 2f7: 06 and 2f8: 07 or 2f9: 51 storesp 4 2fa: 51 storesp 4 2fb: 51 storesp 4 2fc: 04 poppc 2fd: 00 breakpoint ... 00000300 <_neqbranch>: 300: 72 loadsp 8 301: 09 not 302: 70 loadsp 0 303: 81 im 1 304: 05 add 305: 09 not 306: 06 and 307: 0a flip 308: 09 not 309: 81 im 1 30a: 06 and 30b: ff im -1 30c: 05 add 30d: 70 loadsp 0 30e: 54 storesp 16 30f: 71 loadsp 4 310: 06 and 311: 73 loadsp 12 312: 09 not 313: 72 loadsp 8 314: 74 loadsp 16 315: 05 add 316: ff im -1 317: 05 add 318: 06 and 319: 07 or 31a: 51 storesp 4 31b: 51 storesp 4 31c: 51 storesp 4 31d: 04 poppc ... 00000320 <_poppcrel>: 320: 05 add 321: ff im -1 322: 05 add 323: 04 poppc ... 00000340 <_config>: 340: 81 im 1 341: 0b nop 342: 80 im 0 343: f9 im -7 344: f0 im -16 345: 0c store 346: 51 storesp 4 347: 04 poppc ... 0000035e <_pushpc>: 35e: 71 loadsp 4 35f: 81 im 1 360: 05 add 361: 52 storesp 8 362: 04 poppc ... 0000037e <_syscall_emulate>: ... 0000039e <_pushspadd>: 39e: 02 pushsp 39f: 84 im 4 3a0: 05 add 3a1: 72 loadsp 8 3a2: 10 addsp 0 3a3: 10 addsp 0 3a4: 05 add 3a5: 52 storesp 8 3a6: 04 poppc ... 000003be <_halfmult>: ... 000003de <_callpcrel>: 3de: 71 loadsp 4 3df: 71 loadsp 4 3e0: 05 add 3e1: ff im -1 3e2: 05 add 3e3: 71 loadsp 4 3e4: 53 storesp 12 3e5: 51 storesp 4 3e6: 02 pushsp 3e7: 0d popsp 3e8: 04 poppc ... Disassembly of section .text: 00000400 <_ashiftleftBegin>: 400: 10 addsp 0 401: 10 addsp 0 402: 10 addsp 0 403: 10 addsp 0 404: 10 addsp 0 405: 10 addsp 0 406: 10 addsp 0 407: 10 addsp 0 408: 10 addsp 0 409: 10 addsp 0 40a: 10 addsp 0 40b: 10 addsp 0 40c: 10 addsp 0 40d: 10 addsp 0 40e: 10 addsp 0 40f: 10 addsp 0 410: 10 addsp 0 411: 10 addsp 0 412: 10 addsp 0 413: 10 addsp 0 414: 10 addsp 0 415: 10 addsp 0 416: 10 addsp 0 417: 10 addsp 0 418: 10 addsp 0 419: 10 addsp 0 41a: 10 addsp 0 41b: 10 addsp 0 41c: 10 addsp 0 41d: 10 addsp 0 41e: 10 addsp 0 0000041f <_ashiftleftEnd>: 41f: 53 storesp 12 420: 51 storesp 4 421: 04 poppc 00000422 <_storebtail>: 422: 73 loadsp 12 423: 81 im 1 424: ff im -1 425: 06 and 426: 73 loadsp 12 427: 83 im 3 428: 06 and 429: 09 not 42a: 81 im 1 42b: 05 add 42c: 83 im 3 42d: 05 add 42e: 10 addsp 0 42f: 10 addsp 0 430: 10 addsp 0 431: 2b ashiftleft 432: 07 or 433: 72 loadsp 8 434: fc im -4 435: 06 and 436: 0c store 437: 51 storesp 4 438: 51 storesp 4 439: 04 poppc 0000043a <_syscall>: 43a: 3c syscall 43b: 04 poppc 0000043c <_slowmultImpl>: 43c: 72 loadsp 8 43d: 72 loadsp 8 43e: 80 im 0 43f: 72 loadsp 8 440: 81 im 1 441: 06 and 442: ff im -1 443: 05 add 444: 09 not 445: 72 loadsp 8 446: 06 and 447: 05 add 448: 71 loadsp 4 449: 10 addsp 0 44a: 52 storesp 8 44b: 72 loadsp 8 44c: 0a flip 44d: 10 addsp 0 44e: 0a flip 44f: 53 storesp 12 450: 72 loadsp 8 451: ed im -19 452: 38 neqbranch 453: 51 storesp 4 454: 51 storesp 4 455: 53 storesp 12 456: 51 storesp 4 457: 04 poppc 00000458 <___mod>: 458: 83 im 3 459: e0 im -32 45a: 80 im 0 45b: 08 load 45c: 83 im 3 45d: e0 im -32 45e: 84 im 4 45f: 08 load 460: 83 im 3 461: e0 im -32 462: 88 im 8 463: 08 load 464: 75 loadsp 20 465: 75 loadsp 20 466: 80 im 0 467: ee im -18 468: d4 im -44 469: 2d call 46a: 50 storesp 0 46b: 50 storesp 0 46c: 83 im 3 46d: e0 im -32 46e: 80 im 0 46f: 08 load 470: 56 storesp 24 471: 83 im 3 472: e0 im -32 473: 88 im 8 474: 0c store 475: 83 im 3 476: e0 im -32 477: 84 im 4 478: 0c store 479: 83 im 3 47a: e0 im -32 47b: 80 im 0 47c: 0c store 47d: 51 storesp 4 47e: 04 poppc 0000047f <___div>: 47f: 83 im 3 480: e0 im -32 481: 80 im 0 482: 08 load 483: 83 im 3 484: e0 im -32 485: 84 im 4 486: 08 load 487: 83 im 3 488: e0 im -32 489: 88 im 8 48a: 08 load 48b: 75 loadsp 20 48c: 75 loadsp 20 48d: 80 im 0 48e: ec im -20 48f: e8 im -24 490: 2d call 491: 50 storesp 0 492: 50 storesp 0 493: 83 im 3 494: e0 im -32 495: 80 im 0 496: 08 load 497: 56 storesp 24 498: 83 im 3 499: e0 im -32 49a: 88 im 8 49b: 0c store 49c: 83 im 3 49d: e0 im -32 49e: 84 im 4 49f: 0c store 4a0: 83 im 3 4a1: e0 im -32 4a2: 80 im 0 4a3: 0c store 4a4: 51 storesp 4 4a5: 04 poppc ... 000004a8 <_boot>: 4a8: 80 im 0 4a9: 04 poppc 000004aa <_break>: 4aa: 89 im 9 4ab: aa im 42 4ac: 04 poppc 000004ad <_premain>: 4ad: 89 im 9 4ae: aa im 42 4af: 0b nop 4b0: bf im 63 4b1: fb im -5 4b2: 04 poppc 000004b3 : #define XEX_SECTOR_SIZE 128 void wait_us(int unsigned num) { 4b3: fd im -3 4b4: 3d pushspadd 4b5: 0d popsp 000004b6 <.LM2>: // 57.5MHz int unsigned cycles = num*57 + num/2; 4b6: 75 loadsp 20 4b7: b9 im 57 4b8: 29 mult 4b9: 76 loadsp 24 4ba: 81 im 1 4bb: 2a lshiftright 4bc: 05 add 000004bd <.LM3>: *zpu_pause = cycles; 4bd: 80 im 0 4be: fc im -4 4bf: c0 im -64 4c0: 08 load 4c1: 54 storesp 16 4c2: 73 loadsp 12 4c3: 0c store 4c4: 85 im 5 4c5: 3d pushspadd 4c6: 0d popsp 4c7: 04 poppc 000004c8 : } void openfile(const char * filename); void sdcard(); void mmcReadCached(u32 sector); u32 n_actual_mmc_sector; extern unsigned char mmc_sector_buffer[512]; unsigned char atari_sector_buffer[256]; unsigned char get_checksum(unsigned char* buffer, u16 len); #define TWOBYTESTOWORD(ptr,val) (*((u08*)(ptr)) = val&0xff);(*(1+(u08*)(ptr)) = (val>>8)&0xff); void USART_Send_cmpl_and_atari_sector_buffer_and_check_sum(unsigned short len); void clearAtariSectorBuffer() { 4c8: 80 im 0 4c9: 3d pushspadd 4ca: 0d popsp 000004cb <.LM5>: int i=256; while (--i) atari_sector_buffer[i] = 0; 4cb: 81 im 1 4cc: ff im -1 4cd: 51 storesp 4 000004ce <.L5>: 4ce: 80 im 0 4cf: 0b nop 4d0: 83 im 3 4d1: e0 im -32 4d2: c8 im -56 4d3: 12 addsp 8 4d4: 34 storeb 4d5: ff im -1 4d6: 11 addsp 4 4d7: 51 storesp 4 4d8: 70 loadsp 0 4d9: f4 im -12 4da: 38 neqbranch 4db: 82 im 2 4dc: 3d pushspadd 4dd: 0d popsp 4de: 04 poppc 000004df : } int filesize(char const * filename) { 4df: fa im -6 4e0: 3d pushspadd 4e1: 0d popsp 4e2: 78 loadsp 32 000004e3 <.LM7>: char const * tmp; char const * tmp2; if (FR_OK != pf_opendir(&dir,"/")) 4e3: 0b nop 4e4: 0b nop 4e5: 80 im 0 4e6: f4 im -12 4e7: fc im -4 4e8: 53 storesp 12 4e9: 83 im 3 4ea: e2 im -30 4eb: f4 im -12 4ec: 52 storesp 8 4ed: 56 storesp 24 4ee: 80 im 0 4ef: cc im -52 4f0: a8 im 40 4f1: 3f callpcrel 000004f2 <.LM8>: { return 0; 4f2: 80 im 0 4f3: 53 storesp 12 000004f4 <.LM9>: 4f4: 83 im 3 4f5: e0 im -32 4f6: 80 im 0 4f7: 08 load 4f8: 73 loadsp 12 4f9: 2e eq 4fa: 8a im 10 4fb: 38 neqbranch 000004fc <.LM10>: } while (FR_OK == pf_readdir(&dir,&filinfo) && filinfo.fname[0]!='\0') { if (filinfo.fattrib & AM_SYS) { continue; } if (filinfo.fattrib & AM_HID) { continue; } if (filinfo.fattrib & AM_DIR) { continue; } tmp = filename; tmp2 = filinfo.fname; while (1) { if (*tmp == *tmp2) { if (*tmp == '\0') { return filinfo.fsize; } ++tmp; ++tmp2; } else break; } } return 0; } 4fc: 72 loadsp 8 4fd: 83 im 3 4fe: e0 im -32 4ff: 80 im 0 500: 0c store 501: 88 im 8 502: 3d pushspadd 503: 0d popsp 504: 04 poppc 00000505 <.L26>: 505: 83 im 3 506: e0 im -32 507: 94 im 20 508: 52 storesp 8 509: 83 im 3 50a: e2 im -30 50b: f4 im -12 50c: 51 storesp 4 50d: 80 im 0 50e: cd im -51 50f: 9c im 28 510: 3f callpcrel 511: 83 im 3 512: e0 im -32 513: 80 im 0 514: 08 load 515: 80 im 0 516: d5 im -43 517: 38 neqbranch 518: 83 im 3 519: e0 im -32 51a: 9d im 29 51b: 33 loadb 51c: 53 storesp 12 51d: 72 loadsp 8 51e: 80 im 0 51f: 2e eq 520: 80 im 0 521: ca im -54 522: 38 neqbranch 00000523 <.LM12>: 523: 83 im 3 524: e0 im -32 525: 9c im 28 526: 33 loadb 527: 70 loadsp 0 528: 82 im 2 529: 2a lshiftright 52a: 70 loadsp 0 52b: 81 im 1 52c: 06 and 52d: 51 storesp 4 52e: 54 storesp 16 52f: 54 storesp 16 530: 72 loadsp 8 531: d3 im -45 532: 38 neqbranch 00000533 <.LM13>: 533: 73 loadsp 12 534: 81 im 1 535: 2a lshiftright 536: 70 loadsp 0 537: 81 im 1 538: 06 and 539: 51 storesp 4 53a: 53 storesp 12 53b: 72 loadsp 8 53c: c8 im -56 53d: 38 neqbranch 0000053e <.LM14>: 53e: 73 loadsp 12 53f: 84 im 4 540: 2a lshiftright 541: 70 loadsp 0 542: 81 im 1 543: 06 and 544: 51 storesp 4 545: 53 storesp 12 546: 72 loadsp 8 547: ff im -1 548: bc im 60 549: 38 neqbranch 0000054a <.LM15>: 54a: 75 loadsp 20 0000054b <.LM16>: 54b: 83 im 3 54c: e0 im -32 54d: 9d im 29 54e: 56 storesp 24 54f: 54 storesp 16 00000550 <.L16>: 550: 73 loadsp 12 551: 33 loadb 552: 75 loadsp 20 553: 33 loadb 554: 58 storesp 32 555: 53 storesp 12 556: 72 loadsp 8 557: 77 loadsp 28 558: 2e eq 559: 09 not 55a: 81 im 1 55b: 06 and 55c: ff im -1 55d: a7 im 39 55e: 38 neqbranch 0000055f <.LM18>: 55f: 72 loadsp 8 560: 80 im 0 561: 2e eq 562: 93 im 19 563: 38 neqbranch 00000564 <.LM19>: 564: 81 im 1 565: 14 addsp 16 00000566 <.LM20>: 566: 81 im 1 567: 16 addsp 24 568: 56 storesp 24 569: 54 storesp 16 56a: e5 im -27 56b: 39 poppcrel 0000056c <.L12>: 56c: 80 im 0 0000056d <.LM22>: 56d: 0b nop 56e: 83 im 3 56f: e0 im -32 570: 80 im 0 571: 0c store 572: 88 im 8 573: 3d pushspadd 574: 0d popsp 575: 04 poppc 00000576 <.L22>: 576: 83 im 3 577: e0 im -32 578: 94 im 20 579: 08 load 0000057a <.LM24>: 57a: 83 im 3 57b: e0 im -32 57c: 80 im 0 57d: 0c store 57e: 88 im 8 57f: 3d pushspadd 580: 0d popsp 581: 04 poppc 00000582 : int selectfile(char * filename) { int fileno; int skip; int plotted = 0; wait_us(200000); for(;;) { int i = 0; int go = 0; fileno = 0; topofscreen(); for (i=0; i!=(24*40); ++i) { *(unsigned char volatile *)(i+0x10000+40000) = 0x00; } if (FR_OK != pf_opendir(&dir,"/")) { debug("opendir failed\n"); while(1); } plotted = 0; skip = 0; if (selfileno>20) { skip = selfileno-20; skip&=0xfffffffe; } if (selfileno<0) { selfileno = 0; } while (FR_OK == pf_readdir(&dir,&filinfo) && filinfo.fname[0]!='\0') { if (filinfo.fattrib & AM_SYS) { continue; } if (filinfo.fattrib & AM_HID) { continue; } if (filinfo.fattrib & AM_DIR) { debug("DIR "); } if (selfileno == fileno) { for (i=0;i!=15;++i) { filename[i] = filinfo.fname[i]; if (0==filinfo.fname[i]) break; filinfo.fname[i]+=128; } } if (--skip<0) { debug(filinfo.fname); ++plotted; if (plotted&1) { setxpos(20); } else { debug("\n"); } if (plotted==40) { break; } } fileno++; } debug("\n"); setypos(21); opendrive = 0; openfile(filename); for (;;) { unsigned char porta = *atari_porta; if (0==(porta&0x2)) // down { selfileno+=2; break; } else if (0==(porta&0x1)) // up { selfileno-=2; break; } else if (0==(porta&0x8)) // right { selfileno|=1; break; } else if (0==(porta&0x4)) // left { selfileno&=0xfffffffe; break; } else if (0==(*atari_trig0)) // fire { go = 1; while(0==(*atari_trig0)); break; } topofscreen(); //plotnextnumber(porta); *atari_colbk = *atari_random; //wait_us(200); } if (go == 1) { wait_us(200000); return validfile; // TODO, another way to quit without selecting... } wait_us(80000); } return 0; } void clear_ram() { 582: fd im -3 583: 3d pushspadd 584: 0d popsp 00000585 <.LM26>: int i=0; 585: 80 im 0 00000586 <.LM27>: // sdram from 8MB to 16MB // sram from 0x200000 *zpu_ledr = 0xffffffff; 586: 0b nop 587: 80 im 0 588: fc im -4 589: b0 im 48 58a: 08 load 58b: 53 storesp 12 58c: 53 storesp 12 58d: ff im -1 58e: 72 loadsp 8 58f: 0c store 00000590 <.LM28>: *zpu_ledg = 0x0; 590: 80 im 0 591: fc im -4 592: b4 im 52 593: 08 load 594: 73 loadsp 12 595: 71 loadsp 4 596: 0c store 597: 52 storesp 8 00000598 <.LM29>: wait_us(600); 598: 84 im 4 599: d8 im -40 59a: 51 storesp 4 59b: fe im -2 59c: 96 im 22 59d: 3f callpcrel 0000059e <.LM30>: for (i=0x200000; i!=0x280000; i+=1) 59e: 88 im 8 59f: 80 im 0 5a0: 0a flip 5a1: 53 storesp 12 000005a2 <.L32>: { // TODO - use short! *(unsigned char volatile *)(i) = 0x0000; 5a2: 80 im 0 5a3: 73 loadsp 12 5a4: 70 loadsp 0 5a5: 81 im 1 5a6: 05 add 5a7: 55 storesp 20 5a8: 34 storeb 000005a9 <.LM32>: 5a9: 72 loadsp 8 5aa: a8 im 40 5ab: 80 im 0 5ac: 0a flip 5ad: 2e eq 5ae: 09 not 5af: 81 im 1 5b0: 06 and 5b1: f0 im -16 5b2: 38 neqbranch 000005b3 <.LM33>: } *zpu_ledr = 0x55555555; 5b3: 80 im 0 5b4: fc im -4 5b5: b0 im 48 5b6: 08 load 5b7: 54 storesp 16 5b8: 85 im 5 5b9: aa im 42 5ba: d5 im -43 5bb: aa im 42 5bc: d5 im -43 5bd: 74 loadsp 16 5be: 0c store 000005bf <.LM34>: *zpu_ledg = 0x55555555; 5bf: 80 im 0 5c0: fc im -4 5c1: b4 im 52 5c2: 08 load 5c3: 52 storesp 8 5c4: 85 im 5 5c5: aa im 42 5c6: d5 im -43 5c7: aa im 42 5c8: d5 im -43 5c9: 72 loadsp 8 5ca: 0c store 000005cb <.LM35>: for (i=0x800000; i!=0x1000000; i+=4) 5cb: 82 im 2 5cc: 80 im 0 5cd: 0a flip 5ce: 53 storesp 12 000005cf <.L36>: { *(unsigned int volatile *)(i) = 0x00000000; 5cf: 80 im 0 5d0: 73 loadsp 12 5d1: 70 loadsp 0 5d2: 84 im 4 5d3: 05 add 5d4: 55 storesp 20 5d5: 0c store 000005d6 <.LM37>: 5d6: 72 loadsp 8 5d7: 81 im 1 5d8: 80 im 0 5d9: 0a flip 5da: 2e eq 5db: 09 not 5dc: 81 im 1 5dd: 06 and 5de: f0 im -16 5df: 38 neqbranch 000005e0 <.LM38>: } *zpu_ledr = 0; 5e0: 80 im 0 5e1: 74 loadsp 16 5e2: 0c store 000005e3 <.LM39>: *zpu_ledg = 0xffffffff; 5e3: ff im -1 5e4: 72 loadsp 8 5e5: 0c store 000005e6 <.LM40>: wait_us(600); 5e6: 84 im 4 5e7: d8 im -40 5e8: 51 storesp 4 5e9: fd im -3 5ea: c8 im -56 5eb: 3f callpcrel 000005ec <.LM41>: return; 5ec: 85 im 5 5ed: 3d pushspadd 5ee: 0d popsp 5ef: 04 poppc 000005f0 : } void clear_64k_ram() { 5f0: fd im -3 5f1: 3d pushspadd 5f2: 0d popsp 000005f3 <.LM43>: int i=0; 5f3: 80 im 0 000005f4 <.LM44>: // sdram from 8MB to 16MB // sram from 0x200000 *zpu_ledr = 0xf0f0f0f0; 5f4: 0b nop 5f5: 80 im 0 5f6: fc im -4 5f7: b0 im 48 5f8: 08 load 5f9: 53 storesp 12 5fa: 53 storesp 12 5fb: ff im -1 5fc: 87 im 7 5fd: c3 im -61 5fe: e1 im -31 5ff: f0 im -16 600: 72 loadsp 8 601: 0c store 00000602 <.LM45>: *zpu_ledg = 0x0; 602: 80 im 0 603: fc im -4 604: b4 im 52 605: 08 load 606: 73 loadsp 12 607: 71 loadsp 4 608: 0c store 609: 52 storesp 8 0000060a <.LM46>: wait_us(200000); 60a: 8c im 12 60b: 9a im 26 60c: c0 im -64 60d: 51 storesp 4 60e: fd im -3 60f: a3 im 35 610: 3f callpcrel 00000611 <.LM47>: for (i=0x200000; i!=0x210000; i+=1) 611: 88 im 8 612: 80 im 0 613: 0a flip 614: 53 storesp 12 00000615 <.L46>: { // TODO - use short! *(unsigned char volatile *)(i) = 0x0000; 615: 80 im 0 616: 73 loadsp 12 617: 70 loadsp 0 618: 81 im 1 619: 05 add 61a: 55 storesp 20 61b: 34 storeb 0000061c <.LM49>: 61c: 72 loadsp 8 61d: 81 im 1 61e: 84 im 4 61f: 80 im 0 620: 80 im 0 621: 2e eq 622: 09 not 623: 81 im 1 624: 06 and 625: ef im -17 626: 38 neqbranch 00000627 <.LM50>: } *zpu_ledr = 0x55555555; 627: 80 im 0 628: fc im -4 629: b0 im 48 62a: 08 load 62b: 54 storesp 16 62c: 85 im 5 62d: aa im 42 62e: d5 im -43 62f: aa im 42 630: d5 im -43 631: 74 loadsp 16 632: 0c store 00000633 <.LM51>: *zpu_ledg = 0x55555555; 633: 80 im 0 634: fc im -4 635: b4 im 52 636: 08 load 637: 52 storesp 8 638: 85 im 5 639: aa im 42 63a: d5 im -43 63b: aa im 42 63c: d5 im -43 63d: 72 loadsp 8 63e: 0c store 0000063f <.LM52>: for (i=0x800000; i!=0x810000; i+=4) 63f: 82 im 2 640: 80 im 0 641: 0a flip 642: 53 storesp 12 00000643 <.L50>: { *(unsigned int volatile *)(i) = 0x00000000; 643: 80 im 0 644: 73 loadsp 12 645: 70 loadsp 0 646: 84 im 4 647: 05 add 648: 55 storesp 20 649: 0c store 0000064a <.LM54>: 64a: 72 loadsp 8 64b: 84 im 4 64c: 84 im 4 64d: 80 im 0 64e: 80 im 0 64f: 2e eq 650: 09 not 651: 81 im 1 652: 06 and 653: ef im -17 654: 38 neqbranch 00000655 <.LM55>: } *zpu_ledr = 0; 655: 80 im 0 656: 74 loadsp 16 657: 0c store 00000658 <.LM56>: *zpu_ledg = 0xf0f0f0f0; 658: ff im -1 659: 87 im 7 65a: c3 im -61 65b: e1 im -31 65c: f0 im -16 65d: 72 loadsp 8 65e: 0c store 0000065f <.LM57>: wait_us(200000); 65f: 8c im 12 660: 9a im 26 661: c0 im -64 662: 51 storesp 4 663: fc im -4 664: ce im -50 665: 3f callpcrel 00000666 <.LM58>: return; 666: 85 im 5 667: 3d pushspadd 668: 0d popsp 669: 04 poppc 0000066a : } void reset_6502(unsigned int reset_n) { 66a: ff im -1 66b: 3d pushspadd 66c: 0d popsp 0000066d <.LM60>: int prev = *zpu_config; 66d: 80 im 0 66e: fc im -4 66f: c4 im -60 670: 08 load 671: 70 loadsp 0 672: 08 load 673: 52 storesp 8 674: 52 storesp 8 00000675 <.LM61>: if (reset_n == 1) 675: 73 loadsp 12 676: 81 im 1 677: 2e eq 678: 8b im 11 679: 38 neqbranch 0000067a <.LM62>: *zpu_config = prev&~(1<<7); else *zpu_config = prev|(1<<7); 67a: 70 loadsp 0 67b: 81 im 1 67c: 80 im 0 67d: 07 or 67e: 72 loadsp 8 67f: 0c store 00000680 <.LM63>: // USES ASHIFTLEFT even with it disabled!! *reset_6502 = reset_n<<7; } 680: 83 im 3 681: 3d pushspadd 682: 0d popsp 683: 04 poppc 00000684 <.L61>: 684: 70 loadsp 0 685: fe im -2 686: ff im -1 687: 06 and 00000688 <.LM65>: 688: 72 loadsp 8 689: 0c store 0000068a <.LM66>: 68a: 83 im 3 68b: 3d pushspadd 68c: 0d popsp 68d: 04 poppc 0000068e : void pause_6502(unsigned int pause) { 68e: ff im -1 68f: 3d pushspadd 690: 0d popsp 00000691 <.LM68>: int prev = *zpu_config; 691: 80 im 0 692: fc im -4 693: c4 im -60 694: 08 load 695: 70 loadsp 0 696: 08 load 697: 52 storesp 8 698: 52 storesp 8 00000699 <.LM69>: if (pause == 0) 699: 73 loadsp 12 69a: 8b im 11 69b: 38 neqbranch 0000069c <.LM70>: *zpu_config = prev&~(1<<6); 69c: 70 loadsp 0 69d: ff im -1 69e: bf im 63 69f: 06 and 000006a0 <.LM71>: else *zpu_config = prev|(1<<6); 6a0: 72 loadsp 8 6a1: 0c store 000006a2 <.LM72>: // USES ASHIFTLEFT even with it disabled!! *reset_6502 = reset_n<<7; } 6a2: 83 im 3 6a3: 3d pushspadd 6a4: 0d popsp 6a5: 04 poppc 000006a6 <.L63>: 6a6: 70 loadsp 0 6a7: 80 im 0 6a8: c0 im -64 6a9: 07 or 6aa: 72 loadsp 8 6ab: 0c store 000006ac <.LM74>: 6ac: 83 im 3 6ad: 3d pushspadd 6ae: 0d popsp 6af: 04 poppc 000006b0 : void actions() { unsigned int i = 0; //unsigned volatile char * store = 0xf00000; // SDRAM - fails!! unsigned volatile char * store = 0x27f000; // SRAM... unsigned volatile char * store2 = 0x270000; // custom chips... if ((1&*zpu_key) == 1) { unsigned char volatile * mem; unsigned char volatile * mem2; unsigned char volatile * mem3; unsigned char store_portb; int reboot = 0; int temp; int row = 0; int next = 0; int go = 0; // stop 6502 pause_6502(1); // TODO - // menu for 64k/128k/320K Compy/320K Rambo // menu for ROM bank // menu for GPIO on/off initdebug(1); mem = 0x9c00 + 0x10000; // Copy 1k from 0x$9c00 to sdram // 0x200000; sram // 0x800000; sdram (always use...) for (i=0x0; i!=1024; i++) { store[i] = mem[i]; } for (i=0x40; i!=1024; i++) { mem[i] = 0; } { //gtia mem2 = 0x20000; mem3 = 0x10000; for (i=0xd000; i!=0xd01f; i++) { store2[i] = mem2[i]; mem3[i] = 0; } //pokey1/2 for (i=0xd200; i!=0xd21f; i++) { store2[i] = mem2[i]; mem3[i] = 0; } //antic for (i=0xd400; i!=0xd40f; i++) { store2[i] = mem2[i]; mem3[i] = 0; } } store_portb = *atari_portb; // write a display list at 9c00 char dl[] = { 0x70,0x70,0x70, 0x42,0x40,0x9c, 0x2,0x2,0x2,0x2,0x2, 0x2,0x2,0x2,0x2,0x2, 0x2,0x2,0x2,0x2,0x2, 0x2,0x2,0x2,0x2,0x2, 0x2,0x2,0x2, 0x70, 0x41,0x00,0x9c }; for (i=0; i!=sizeof(dl); ++i) { mem[i] = dl[i]; } // point antic at my display list *atari_dlistl = 0x00; *atari_dlisth = 0x9c; *atari_colbk = 0x00; *atari_colpf1 = 0x0f; *atari_colpf2 = 0x00; *atari_prior = 0x00; *atari_chbase = 0xe0; *atari_dmactl = 0x22; *atari_portb = 0xff; *atari_skctl = 0x3; *atari_chactl = 0x2; for (;;) { wait_us(120000); topofscreen(); for (i=0; i!=(24*40); ++i) { *(unsigned char volatile *)(i+0x10000+40000) = 0x00; } // 0-5 speed // 6-pause // 7-reset // 8-9-ram // 12-13-rom // 16-gpio_enable debug("System settings\n"); debug("---------------\n"); debug("Memory:"); temp = 0xf&((*zpu_config)>>8); if (row == 0) { if (next != 0) { temp = temp+next; *zpu_config = (*zpu_config&0xfffff0ff)|((temp&0x3)<<8); next = 0; go = 0; continue; } debugoffset(128); } switch (temp) { case 0: debug("64KiB"); break; case 1: debug("128KiB"); break; case 2: debug("320KiB Compy Shop"); break; case 3: debug("320KiB Rambo"); break; default: debug("Unknown"); break; } debug("\n"); debug("ROM bank:"); temp = 0xf&((*zpu_config)>>12); if (row == 1) { if (next != 0) { temp = temp+next; *zpu_config = (*zpu_config&0xffff0fff)|((temp&0x3)<<12); next = 0; go = 0; continue; } debugoffset(128); } switch (temp) { case 0: debug("0 (default:XL)"); break; case 1: debug("1 (default:XL + hi speed)"); break; case 2: debug("2 (default:Ultimon)"); break; case 3: debug("3 (default:OS B + hi speed)"); break; default: debug("Unknown"); break; } debug("\n"); debug("Speed:"); temp = 0x3f&((*zpu_config)>>0); if (row == 2) { if (next != 0) { temp = temp+next; if (temp < 0) temp =0; *zpu_config = (*zpu_config&0xffffffc0)|(temp&0x3f); next = 0; go = 0; continue; } debugoffset(128); } plotnextnumber(57500/(temp+1)); debug(" KHz\nD1:"); // Bring up selector, instead of booting changes disk image if (row == 3) { debugoffset(128); } debug(filename_d1); debug("\nD2:"); if (row == 4) { debugoffset(128); } debug(filename_d2); debug("\nD3:"); if (row == 5) { debugoffset(128); } debug(filename_d3); debug("\nD4:"); if (row == 6) { debugoffset(128); } debug(filename_d4); if (row>=3 && row<7) { if (go==1) { switch (row) { case 3: selectfile(filename_d1); break; case 4: selectfile(filename_d2); break; case 5: selectfile(filename_d3); break; case 6: selectfile(filename_d4); break; } opendrive = row-2; next = 0; go = 0; continue; } if (next==1) { for (i=0;i!=15;++i) { char temp = filename_d4[i]; filename_d4[i] = filename_d3[i]; filename_d3[i] = filename_d2[i]; filename_d2[i] = filename_d1[i]; filename_d1[i] = temp; } next = 0; go = 0; continue; } if (next==-1) { for (i=0;i!=15;++i) { char temp = filename_d1[i]; filename_d1[i] = filename_d2[i]; filename_d2[i] = filename_d3[i]; filename_d3[i] = filename_d4[i]; filename_d4[i] = temp; } next = 0; go = 0; continue; } } if (row == 7) { debugoffset(128); } debug("\nReboot"); if (row == 7) { if (go==1) { reboot = 1; break; } } if (row == 8) { debugoffset(128); } debug("\nExit"); if (row == 8) { if (go==1) break; } next = 0; go = 0; for (;;) { unsigned char porta = *atari_porta; if (0==(porta&0x2)) // down { row+=1; if (row>8) row = 8; break; } else if (0==(porta&0x1)) // up { row-=1; if (row<0) row = 0; break; } else if (0==(porta&0x8)) // right { next = 1; break; } else if (0==(porta&0x4)) // left { next = -1; break; } else if (0==(*atari_trig0)) // fire { go = 1; while(0==(*atari_trig0)); break; } topofscreen(); //plotnextnumber(porta); *atari_colbk = *atari_random; //wait_us(200); } } // wait 2 seconds //for (i=0; i!=2000; ++i) //{ // *atari_colbk = *atari_random; // wait_us(1000); //} for (i=0x040; i!=1024; i++) { mem[i] = store[i]; } { //gtia mem3 = 0x10000; for (i=0xd000; i!=0xd01f; i++) { mem3[i] = store2[i]; } //pokey1/2 for (i=0xd200; i!=0xd21f; i++) { mem3[i] = store2[i]; } //antic for (i=0xd400; i!=0xd40f; i++) { mem3[i] = store2[i]; } } *atari_portb = store_portb; initdebug(debugmode); if (reboot) { debug("Booting..."); wait_us(500000); // reset process reset_6502(0); *atari_nmien = 0x00; clear_64k_ram(); reset_6502(1); } // start 6502 pause_6502(0); } if ((2&*zpu_key) == 2) { int i; unsigned char volatile * mem; // TODO - disk swapping! // OSD file selector... // stop 6502 pause_6502(1); clear_64k_ram(); char dl[] = { 0x70,0x70,0x70, 0x42,0x40,0x9c, 0x2,0x2,0x2,0x2,0x2, 0x2,0x2,0x2,0x2,0x2, 0x2,0x2,0x2,0x2,0x2, 0x2,0x2,0x2,0x2,0x2, 0x2,0x2,0x2, 0x70, 0x41,0x00,0x06 }; mem = 0x600 + 0x10000; for (i=0; i!=sizeof(dl); ++i) { mem[i] = dl[i]; } // point antic at my display list *atari_dlistl = 0x00; *atari_dlisth = 0x06; *atari_colbk = 0x00; *atari_colpf1 = 0x0f; *atari_colpf2 = 0x00; *atari_prior = 0x00; *atari_portb = 0xff; *atari_chbase = 0xe0; *atari_dmactl = 0x22; initdebug(1); if (selectfile(filename_d1)) { opendrive = 1; debug("Booting..."); wait_us(500000); // reset process reset_6502(0); *atari_nmien = 0x00; clear_64k_ram(); reset_6502(1); } initdebug(debugmode); pause_6502(0); } if ((4&*zpu_key) == 4) { // reset process reset_6502(0); reset_6502(1); } if ((8&*zpu_key) == 8) { // reset process reset_6502(0); *atari_nmien = 0x00; clear_64k_ram(); reset_6502(1); } } int sdrive_main(); int main(void) { unsigned int i=0; debugmode = 0; selfileno = 0; opendrive = 0; pause_6502(1); speed = speedslow; //FIXME if (2==(2&(*zpu_switches))) if (0) { debugmode = 1; } initdebug(debugmode); if (debugmode) { reset_6502(0); *atari_nmien = 0x00; clear_64k_ram(); reset_6502(1); pause_6502(0); wait_us(2000000); } //FIXME if (1==(1&(*zpu_switches))) { sdcard(); } pause_6502(1); reset_6502(0); *atari_nmien = 0x00; clear_64k_ram(); reset_6502(1); pause_6502(0); while (1) { actions(); } return 0; } /*-----------------------------------------------------------------------*/ /* Low level disk I/O module skeleton for Petit FatFs (C)ChaN, 2009 */ /*-----------------------------------------------------------------------*/ #include "diskio.h" /*-----------------------------------------------------------------------*/ /* Initialize Disk Drive */ /*-----------------------------------------------------------------------*/ DSTATUS disk_initialize (void) { DSTATUS stat; n_actual_mmc_sector = 0xffffffff; 6b0: ff im -1 6b1: 0b nop 6b2: 83 im 3 6b3: e0 im -32 6b4: b0 im 48 6b5: 0c store 000006b6 <.L68>: do { mmcInit(); 6b6: 80 im 0 6b7: cd im -51 6b8: ba im 58 6b9: 3f callpcrel 000006ba <.LBE2>: } 6ba: 80 im 0 6bb: d0 im -48 6bc: be im 62 6bd: 3f callpcrel 6be: 83 im 3 6bf: e0 im -32 6c0: 80 im 0 6c1: 08 load 6c2: f3 im -13 6c3: 38 neqbranch 000006c4 <.LM79>: while(mmcReset()); //dokud nenulove, tak smycka (return 0 => ok!) set_spi_clock_freq(); 6c4: 80 im 0 6c5: d3 im -45 6c6: 83 im 3 6c7: 3f callpcrel 000006c8 <.LM80>: stat = RES_OK; return stat; } 6c8: 80 im 0 6c9: 0b nop 6ca: 83 im 3 6cb: e0 im -32 6cc: 80 im 0 6cd: 0c store 6ce: 04 poppc 000006cf : /*-----------------------------------------------------------------------*/ /* Read Partial Sector */ /*-----------------------------------------------------------------------*/ DRESULT disk_readp ( BYTE* dest, /* Pointer to the destination object */ DWORD sector, /* Sector number (LBA) */ WORD sofs, /* Offset in the sector */ WORD count /* Byte count (bit15:destination) */ ) { DRESULT res; /*debug("readp:"); plotnextnumber(sector); debug(" "); plotnextnumber((int)dest); debug(" "); plotnextnumber(sofs); debug(" "); plotnextnumber(count); debug(" "); plotnextnumber(atari_sector_buffer); debug(" "); plotnextnumber(mmc_sector_buffer); debug("\n"); */ // Put your code here mmcReadCached(sector); for(;count>0;++sofs,--count) { unsigned char x = mmc_sector_buffer[sofs]; //printf("char:%02x loc:%d", x,sofs); *dest++ = x; } res = RES_OK; return res; } /*-----------------------------------------------------------------------*/ /* Write Partial Sector */ /*-----------------------------------------------------------------------*/ DRESULT disk_writep (const BYTE* buff, DWORD sc) { 6cf: 80 im 0 6d0: 3d pushspadd 6d1: 0d popsp 000006d2 <.LM82>: DRESULT res; if (!buff) { if (sc) { // Initiate write process } else { // Finalize write process } } else { // Send data to the disk } return res; } 6d2: 70 loadsp 0 6d3: 83 im 3 6d4: e0 im -32 6d5: 80 im 0 6d6: 0c store 6d7: 82 im 2 6d8: 3d pushspadd 6d9: 0d popsp 6da: 04 poppc 000006db : struct ATRHeader { u16 wMagic; u16 wPars; u16 wSecSize; u08 btParsHigh; u32 dwCRC; } __attribute__((packed)); int offset; int xex_loader; int xex_size; uint8_t xex_name[12]; uint8_t boot_xex_loader[179] = { 0x72,0x02,0x5f,0x07,0xf8,0x07,0xa9,0x00,0x8d,0x04,0x03,0x8d,0x44,0x02,0xa9,0x07, 0x8d,0x05,0x03,0xa9,0x70,0x8d,0x0a,0x03,0xa9,0x01,0x8d,0x0b,0x03,0x85,0x09,0x60, 0x7d,0x8a,0x48,0x20,0x53,0xe4,0x88,0xd0,0xfa,0x68,0xaa,0x8c,0x8e,0x07,0xad,0x7d, 0x07,0xee,0x8e,0x07,0x60,0xa9,0x93,0x8d,0xe2,0x02,0xa9,0x07,0x8d,0xe3,0x02,0xa2, 0x02,0x20,0xda,0x07,0x95,0x43,0x20,0xda,0x07,0x95,0x44,0x35,0x43,0xc9,0xff,0xf0, 0xf0,0xca,0xca,0x10,0xec,0x30,0x06,0xe6,0x45,0xd0,0x02,0xe6,0x46,0x20,0xda,0x07, 0xa2,0x01,0x81,0x44,0xb5,0x45,0xd5,0x43,0xd0,0xed,0xca,0x10,0xf7,0x20,0xd2,0x07, 0x4c,0x94,0x07,0xa9,0x03,0x8d,0x0f,0xd2,0x6c,0xe2,0x02,0xad,0x8e,0x07,0xcd,0x7f, 0x07,0xd0,0xab,0xee,0x0a,0x03,0xd0,0x03,0xee,0x0b,0x03,0xad,0x7d,0x07,0x0d,0x7e, 0x07,0xd0,0x8e,0x20,0xd2,0x07,0x6c,0xe0,0x02,0x20,0xda,0x07,0x8d,0xe0,0x02,0x20, 0xda,0x07,0x8d,0xe1,0x02,0x2d,0xe0,0x02,0xc9,0xff,0xf0,0xed,0xa9,0x00,0x8d,0x8e, 0x07,0xf0,0x82 }; // relokacni tabulka neni potreba, meni se vsechny hodnoty 0x07 // (melo by byt PRESNE 20 vyskytu! pokud je jich vic, pak bacha!!!) void byteswap(WORD * inw) { 6db: ff im -1 6dc: 3d pushspadd 6dd: 0d popsp 6de: 73 loadsp 12 000006df <.LM84>: unsigned char * in = (unsigned char *)inw; unsigned char temp = in[0]; 6df: 70 loadsp 0 6e0: 33 loadb 6e1: 53 storesp 12 6e2: 51 storesp 4 000006e3 <.LM85>: in[0] = in[1]; 6e3: 81 im 1 6e4: 11 addsp 4 6e5: 33 loadb 6e6: 71 loadsp 4 6e7: 34 storeb 000006e8 <.LM86>: in[1] = temp; 6e8: 71 loadsp 4 6e9: 81 im 1 6ea: 12 addsp 8 6eb: 34 storeb 6ec: 83 im 3 6ed: 3d pushspadd 6ee: 0d popsp 6ef: 04 poppc 000006f0 : } struct command { u08 deviceId; u08 command; u08 aux1; u08 aux2; u08 chksum; } __attribute__((packed)); void getCommand(struct command * cmd) { int expchk; //debug("Waiting for command\n"); //USART_Data_Ready(); while (0 == (1&(*zpu_sio))); //debug("Init:"); //plotnextnumber(*zpu_sio); USART_Init(speed+6); //plotnextnumber(speed); //debug("\n"); while (1 == (1&(*zpu_sio))) { actions(); } cmd->deviceId = USART_Receive_Byte(); cmd->command = USART_Receive_Byte(); cmd->aux1 = USART_Receive_Byte(); cmd->aux2 = USART_Receive_Byte(); cmd->chksum = USART_Receive_Byte(); while (0 == (1&(*zpu_sio))); debug("cmd:"); //debug("Gone high\n"); atari_sector_buffer[0] = cmd->deviceId; atari_sector_buffer[1] = cmd->command; atari_sector_buffer[2] = cmd->aux1; atari_sector_buffer[3] = cmd->aux2; expchk = get_checksum(&atari_sector_buffer[0],4); //debug("Device id:"); plotnextnumber(cmd->deviceId); //debug("\n"); //debug("command:"); plotnextnumber(cmd->command); //debug("\n"); //debug("aux1:"); plotnextnumber(cmd->aux1); //debug("\n"); //debug("aux2:"); plotnextnumber(cmd->aux2); //debug("\n"); //debug("chksum:"); plotnextnumber(cmd->chksum); plotnextnumber(expchk); if (expchk!=cmd->chksum || USART_Framing_Error()) { debug("ERR "); //wait_us(1000000); if (speed == speedslow) { speed = speedfast; debug("SPDF"); plotnextnumber(speed); } else { speed = speedslow; debug("SPDS"); plotnextnumber(speed); } } debug("\n"); DELAY_T2_MIN; } void openfile(const char * filename) { WORD read = 0; int dot = 0; int xfd = 0; validfile = 0; debug("Opening:"); debug(filename); debug(":"); if (FR_OK!=pf_open(filename)) { debug("fail\n"); return; //while(1); //while(1); } debug("ok\n"); while (1) { if (filename[dot] == '\0') break; if (filename[dot] != '.') { ++dot; continue; } if (filename[dot+1] == 'X' || filename[dot+1] == 'x') if (filename[dot+2] == 'F' || filename[dot+2] == 'f') if (filename[dot+3] == 'D' || filename[dot+3] == 'd') { xfd = 1; break; } break; } // Read header read = 0; pf_read(&atr_header, 16, &read); if (read!=16) { debug("Could not read header\n"); return; //while(1); } byteswap(&atr_header.wMagic); byteswap(&atr_header.wPars); byteswap(&atr_header.wSecSize); /*debug("\nHeader:"); plotnextnumber(atr_header.wMagic); plotnext(toatarichar(' ')); plotnextnumber(atr_header.wPars); plotnext(toatarichar(' ')); plotnextnumber(atr_header.wSecSize); plotnext(toatarichar(' ')); plotnextnumber(atr_header.btParsHigh); plotnext(toatarichar(' ')); plotnextnumber(atr_header.dwCRC); debug("\n"); */ xex_loader = 0; if (xfd == 1) { debug("XFD "); // build a fake atr header offset = 0; atr_header.wMagic = 0x296; atr_header.wPars = filesize(filename)/16; atr_header.wSecSize = 0x80; } else if (atr_header.wMagic == 0xFFFF) // XEX { int i; debug("XEX "); offset = -256; xex_loader = 1; atr_header.wMagic = 0xffff; xex_size = filesize(filename); atr_header.wPars = xex_size/16; atr_header.wSecSize = XEX_SECTOR_SIZE; for (i=0;i!=12;++i) xex_name[i] = filename[i]; } else if (atr_header.wMagic == 0x296) // ATR { debug("ATR "); offset = 16; } else { debug("Unknown file type"); return; } if (atr_header.wSecSize == 0x80) { if (atr_header.wPars>(720*128/16)) debug("MD "); else debug("SD "); } else if (atr_header.wSecSize == 0x100) { debug("DD "); } else if (atr_header.wSecSize < 0x100) { debug("XD "); } else { debug("BAD sector size"); return; } plotnextnumber(atr_header.wPars); debug("0\n"); validfile = 1; } void sdcard() { int i; int commandcount = 0; int badcommandcount = 0; WORD read; struct command command; int location; char const * default_filename = "BOOT.ATR"; debug("sdcard\n"); debug("disk_init:"); if(disk_initialize()!=RES_OK) { debug("fail\n"); return; } debug("ok\n"); debug("mount:"); if(pf_mount(&fatfs)!=FR_OK) { debug("fail\n"); return; } debug("ok\n"); debug("opendir:"); if (FR_OK != pf_opendir(&dir,"/")) { debug("fail\n"); return; } debug("ok\n"); while (FR_OK == pf_readdir(&dir,&filinfo) && filinfo.fname[0]!='\0') { debug(filinfo.fname); } for (i=0;i!=15;++i) { filename_d1[i] = default_filename[i]; filename_d2[i] = default_filename[i]; filename_d3[i] = default_filename[i]; filename_d4[i] = default_filename[i]; if (default_filename[i] == 0) break; } opendrive = 1; openfile(filename_d1); reset_6502(0); *atari_nmien = 0x00; clear_64k_ram(); reset_6502(1); pause_6502(0); USART_Init(speed+6); while (1) { getCommand(&command); ++commandcount; /*FIXME if (commandcount==4 && (4==(4&(*zpu_switches)))) { debug("Paused\n"); pause_6502(1); while(1); }*/ /*if (badcommandcount==8) { debug("Stuck?\n"); pause_6502(1); while(1); }*/ if (command.deviceId >= 0x31 && command.deviceId < 0x34) { int sent = 0; int drive = 0; drive = command.deviceId&0xf; if (drive!=opendrive) { opendrive = drive; switch(drive) { case 1: openfile(filename_d1); break; case 2: openfile(filename_d2); break; case 3: openfile(filename_d3); break; case 4: openfile(filename_d4); break; } } if (!validfile) { //USART_Transmit_Mode(); //send_NACK(); //USART_Wait_Transmit_Complete(); //wait_us(100); // Wait for transmission to complete - Pokey bug, gets stuck active... //USART_Receive_Mode(); continue; } switch (command.command) { case 0x3f: { debug("Speed:"); int sector = ((int)command.aux1) + (((int)command.aux2&0x7f)<<8); USART_Transmit_Mode(); send_ACK(); clearAtariSectorBuffer(); atari_sector_buffer[0] = speedfast; hexdump_pure(atari_sector_buffer,1); USART_Send_cmpl_and_atari_sector_buffer_and_check_sum(1); sent = 1; if (sector == 0) { speed = speedfast; debug("SPDF"); plotnextnumber(speed); } else { speed = speedslow; debug("SPDS"); plotnextnumber(speed); } } case 0x53: { unsigned char status; debug("Stat:"); USART_Transmit_Mode(); send_ACK(); clearAtariSectorBuffer(); status = 0x10; // Motor on; status |= 0x08; // write protected; // no write support yet... if (atr_header.wSecSize == 0x80) // normal sector size { if (atr_header.wPars>(720*128/16)) { status |= 0x80; // medium density - or a strange one... } } else { status |= 0x20; // 256 byte sectors } atari_sector_buffer[0] = status; atari_sector_buffer[1] = 0xff; atari_sector_buffer[2] = 0xe0; atari_sector_buffer[3] = 0x0; hexdump_pure(atari_sector_buffer,4); // Somehow with this... USART_Send_cmpl_and_atari_sector_buffer_and_check_sum(4); sent = 1; plotnextnumber(atari_sector_buffer[0]); // and this... The wrong checksum is sent!! debug(":done\n"); } break; case 0x50: // write case 0x57: // write with verify default: // TODO //USART_Transmit_Mode(); //send_NACK(); //USART_Wait_Transmit_Complete(); //USART_Receive_Mode(); break; case 0x52: // read { int sector = ((int)command.aux1) + (((int)command.aux2&0x7f)<<8); int sectorSize = 0; USART_Transmit_Mode(); send_ACK(); read = 0; debug("Sector:"); plotnextnumber(sector); debug(":"); if(xex_loader) //n_sector>0 && //==0 se overuje hned na zacatku { //sektory xex bootloaderu, tj. 1 nebo 2 u08 i,b; u08 *spt, *dpt; int file_sectors; //file_sectors se pouzije pro sektory $168 i $169 (optimalizace) //zarovnano nahoru, tj. =(size+124)/125 file_sectors = ((xex_size+(u32)(XEX_SECTOR_SIZE-3-1))/((u32)XEX_SECTOR_SIZE-3)); debug("XEX "); if (sector<=2) { debug("boot "); spt= &boot_xex_loader[(u16)(sector-1)*((u16)XEX_SECTOR_SIZE)]; dpt= atari_sector_buffer; i=XEX_SECTOR_SIZE; do { b=*spt++; //relokace bootloaderu z $0700 na jine misto //TODO if (b==0x07) b+=bootloader_relocation; *dpt++=b; i--; } while(i); } else if(sector==0x168) { debug("numtobuffer "); //vrati pocet sektoru diskety //byty 1,2 goto set_number_of_sectors_to_buffer_1_2; } else if(sector==0x169) { debug("name "); //fatGetDirEntry(FileInfo.vDisk.file_index,5,0); //fatGetDirEntry(FileInfo.vDisk.file_index,0); //ale musi to posunout o 5 bajtu doprava { u08 i,j; for(i=j=0;i<8+3;i++) { if( ((xex_name[i]>='A' && xex_name[i]<='Z') || (xex_name[i]>='0' && xex_name[i]<='9')) ) { //znak je pouzitelny na Atari atari_sector_buffer[j]=xex_name[i]; j++; } if ( (i==7) || (i==8+2) ) { for(;j<=i;j++) atari_sector_buffer[j]=' '; } } //posune nazev z 0-10 na 5-15 (0-4 budou systemova adresarova data) //musi pozpatku for(i=15;i>=5;i--) atari_sector_buffer[i]=atari_sector_buffer[i-5]; //a pak uklidi cely zbytek tohoto sektoru for(i=5+8+3;i(0x400-0x171))? 0x46 : 0x42; //0 TWOBYTESTOWORD(atari_sector_buffer+3,0x0171); //3,4 set_number_of_sectors_to_buffer_1_2: TWOBYTESTOWORD(atari_sector_buffer+1,file_sectors); //1,2 } else if(sector>=0x171) { debug("data "); pf_lseek(((u32)sector-0x171)*((u32)XEX_SECTOR_SIZE-3)); pf_read(&atari_sector_buffer[0], XEX_SECTOR_SIZE-3, &read); if(read<(XEX_SECTOR_SIZE-3)) sector=0; //je to posledni sektor else sector++; //ukazatel na dalsi atari_sector_buffer[XEX_SECTOR_SIZE-3]=((sector)>>8); //nejdriv HB !!! atari_sector_buffer[XEX_SECTOR_SIZE-2]=((sector)&0xff); //pak DB!!! (je to HB,DB) atari_sector_buffer[XEX_SECTOR_SIZE-1]=read; } debug(" sending\n"); sectorSize = XEX_SECTOR_SIZE; } else { location = offset; if (sector>3) { sector-=4; location += 128*3; location += sector*atr_header.wSecSize; sectorSize = atr_header.wSecSize; } else { location += 128*(sector-1); sectorSize = 128; } plotnextnumber(location); debug("\n"); pf_lseek(location); pf_read(&atari_sector_buffer[0], sectorSize, &read); } //topofscreen(); //hexdump_pure(atari_sector_buffer,sectorSize); //debug("Sending\n"); USART_Send_cmpl_and_atari_sector_buffer_and_check_sum(sectorSize); sent = 1; //pause_6502(1); //hexdump_pure(0x10000+0x400,128); unsigned char chksumreceive = get_checksum(0x10000+0x400, sectorSize); debug(" receive:"); plotnextnumber(chksumreceive); debug("\n"); //pause_6502(1); //while(1); } break; } //wait_us(100); // Wait for transmission to complete - Pokey bug, gets stuck active... if (sent) USART_Wait_Transmit_Complete(); USART_Receive_Mode(); } else { ++badcommandcount; } } } void mmcReadCached(u32 sector) { //debug("mmcReadCached"); //plotnext(toatarichar(' ')); //plotnextnumber(sector); //debug("\n"); if(sector==n_actual_mmc_sector) return; //debug("mmcReadREAL"); //plotnext(toatarichar(' ')); //plotnextnumber(sector); //debug("\n"); u08 ret,retry; //predtim nez nacte jiny, musi ulozit soucasny // TODO mmcWriteCachedFlush(); //az ted nacte novy retry=0; //zkusi to maximalne 256x do { ret = mmcRead(sector); //vraci 0 kdyz ok retry--; } while (ret && retry); while(ret); //a pokud se vubec nepovedlo, tady zustane zablokovany cely SDrive! n_actual_mmc_sector=sector; } unsigned char get_checksum(unsigned char* buffer, u16 len) { 6f0: fb im -5 6f1: 3d pushspadd 6f2: 0d popsp 6f3: 77 loadsp 28 6f4: 02 pushsp 6f5: 84 im 4 6f6: 05 add 6f7: a2 im 34 6f8: 05 add 6f9: 22 loadh 6fa: 56 storesp 24 6fb: 56 storesp 24 000006fc <.LM88>: u16 i; u08 sumo,sum; sum=sumo=0; 6fc: 80 im 0 6fd: 70 loadsp 0 000006fe <.LM89>: for(i=0;i: { sum+=buffer[i]; 707: 75 loadsp 20 708: 13 addsp 12 709: 70 loadsp 0 70a: 33 loadb 70b: 70 loadsp 0 70c: 14 addsp 16 70d: 70 loadsp 0 70e: 81 im 1 70f: ff im -1 710: 06 and 711: 55 storesp 20 712: 51 storesp 4 713: 51 storesp 4 714: 51 storesp 4 00000715 <.LM91>: if(sum: sumo = sum; 722: 71 loadsp 4 00000723 <.LM93>: 723: 81 im 1 724: 14 addsp 16 725: 70 loadsp 0 726: 83 im 3 727: ff im -1 728: ff im -1 729: 06 and 72a: 55 storesp 20 72b: 52 storesp 8 72c: 54 storesp 16 72d: 74 loadsp 16 72e: 73 loadsp 12 72f: 26 ulessthan 730: d6 im -42 731: 38 neqbranch 00000732 <.L85>: } return sum; } 732: 71 loadsp 4 733: 83 im 3 734: e0 im -32 735: 80 im 0 736: 0c store 737: 87 im 7 738: 3d pushspadd 739: 0d popsp 73a: 04 poppc 0000073b : 73b: f8 im -8 73c: 3d pushspadd 73d: 0d popsp 73e: 7a loadsp 40 73f: 57 storesp 28 00000740 <.LM96>: 740: 80 im 0 741: 0b nop 742: 8a im 10 743: 3d pushspadd 744: 23 storeh 00000745 <.LM97>: 745: 80 im 0 00000746 <.LM98>: 746: 70 loadsp 0 00000747 <.LM99>: 747: 71 loadsp 4 748: 83 im 3 749: e2 im -30 74a: e4 im -28 74b: 0c store 0000074c <.LM100>: 74c: 0b nop 74d: 0b nop 74e: 80 im 0 74f: f5 im -11 750: 80 im 0 751: 53 storesp 12 752: 57 storesp 28 753: 58 storesp 32 754: 80 im 0 755: d9 im -39 756: 96 im 22 757: 3f callpcrel 00000758 <.LM101>: 758: 76 loadsp 24 759: 51 storesp 4 75a: 80 im 0 75b: d9 im -39 75c: 90 im 16 75d: 3f callpcrel 0000075e <.LM102>: 75e: 0b nop 75f: 0b nop 760: 80 im 0 761: f9 im -7 762: b8 im 56 763: 51 storesp 4 764: 80 im 0 765: d9 im -39 766: 86 im 6 767: 3f callpcrel 00000768 <.LM103>: 768: 76 loadsp 24 769: 51 storesp 4 76a: 80 im 0 76b: c1 im -63 76c: c8 im -56 76d: 3f callpcrel 76e: 83 im 3 76f: e0 im -32 770: 80 im 0 771: 08 load 772: 78 loadsp 32 773: 2e eq 774: 8f im 15 775: 38 neqbranch 00000776 <.LM104>: 776: 0b nop 777: 0b nop 778: 80 im 0 779: f5 im -11 77a: 8c im 12 77b: 51 storesp 4 0000077c <.LM105>: 77c: 80 im 0 77d: d8 im -40 77e: ee im -18 77f: 3f callpcrel 00000780 <.L87>: 780: 8a im 10 781: 3d pushspadd 782: 0d popsp 783: 04 poppc 00000784 <.L88>: 784: 0b nop 785: 0b nop 786: 80 im 0 787: f5 im -11 788: 94 im 20 789: 51 storesp 4 78a: 80 im 0 78b: d8 im -40 78c: e0 im -32 78d: 3f callpcrel 0000078e <.L89>: 78e: 75 loadsp 20 78f: 17 addsp 28 790: 70 loadsp 0 791: 33 loadb 792: 55 storesp 20 793: 55 storesp 20 794: 73 loadsp 12 795: 80 im 0 796: 2e eq 797: 80 im 0 798: fd im -3 799: 38 neqbranch 0000079a <.LM109>: 79a: 73 loadsp 12 79b: ae im 46 79c: 2e eq 79d: 86 im 6 79e: 38 neqbranch 0000079f <.LM110>: 79f: 81 im 1 7a0: 16 addsp 24 7a1: 56 storesp 24 7a2: eb im -21 7a3: 39 poppcrel 000007a4 <.L92>: 7a4: 80 im 0 7a5: 0b nop 7a6: 81 im 1 7a7: 16 addsp 24 7a8: 33 loadb 7a9: 55 storesp 20 7aa: 56 storesp 24 7ab: 73 loadsp 12 7ac: 80 im 0 7ad: d8 im -40 7ae: 2e eq 7af: 09 not 7b0: 81 im 1 7b1: 06 and 7b2: 83 im 3 7b3: 38 neqbranch 7b4: 81 im 1 7b5: 56 storesp 24 000007b6 <.L94>: 7b6: 73 loadsp 12 7b7: 80 im 0 7b8: f8 im -8 7b9: 32 xor 7ba: 70 loadsp 0 7bb: 30 neg 7bc: 70 loadsp 0 7bd: 80 im 0 7be: 25 lessthanorequal 7bf: 78 loadsp 32 7c0: 07 or 7c1: 51 storesp 4 7c2: 51 storesp 4 7c3: 54 storesp 16 7c4: 73 loadsp 12 7c5: 80 im 0 7c6: 2e eq 7c7: 80 im 0 7c8: cd im -51 7c9: 38 neqbranch 000007ca <.LM112>: 7ca: 80 im 0 7cb: 0b nop 7cc: 82 im 2 7cd: 16 addsp 24 7ce: 33 loadb 7cf: 55 storesp 20 7d0: 56 storesp 24 7d1: 73 loadsp 12 7d2: 80 im 0 7d3: c6 im -58 7d4: 2e eq 7d5: 09 not 7d6: 81 im 1 7d7: 06 and 7d8: 83 im 3 7d9: 38 neqbranch 7da: 81 im 1 7db: 56 storesp 24 000007dc <.L97>: 7dc: 73 loadsp 12 7dd: 80 im 0 7de: e6 im -26 7df: 32 xor 7e0: 70 loadsp 0 7e1: 30 neg 7e2: 70 loadsp 0 7e3: 80 im 0 7e4: 25 lessthanorequal 7e5: 78 loadsp 32 7e6: 07 or 7e7: 51 storesp 4 7e8: 51 storesp 4 7e9: 54 storesp 16 7ea: 73 loadsp 12 7eb: 80 im 0 7ec: 2e eq 7ed: a8 im 40 7ee: 38 neqbranch 000007ef <.LM113>: 7ef: 80 im 0 7f0: 0b nop 7f1: 83 im 3 7f2: 16 addsp 24 7f3: 33 loadb 7f4: 55 storesp 20 7f5: 56 storesp 24 7f6: 73 loadsp 12 7f7: 80 im 0 7f8: c4 im -60 7f9: 2e eq 7fa: 09 not 7fb: 81 im 1 7fc: 06 and 7fd: 83 im 3 7fe: 38 neqbranch 7ff: 81 im 1 800: 56 storesp 24 00000801 <.L100>: 801: 73 loadsp 12 802: 80 im 0 803: e4 im -28 804: 32 xor 805: 70 loadsp 0 806: 30 neg 807: 70 loadsp 0 808: 80 im 0 809: 25 lessthanorequal 80a: 78 loadsp 32 80b: 07 or 80c: 51 storesp 4 80d: 51 storesp 4 80e: 54 storesp 16 80f: 73 loadsp 12 810: 80 im 0 811: 2e eq 812: 83 im 3 813: 38 neqbranch 00000814 <.LM114>: 814: 81 im 1 815: 58 storesp 32 00000816 <.L90>: 816: 80 im 0 817: 0b nop 818: 8a im 10 819: 3d pushspadd 81a: 23 storeh 0000081b <.LM116>: 81b: 8a im 10 81c: 3d pushspadd 81d: fc im -4 81e: 05 add 81f: 53 storesp 12 820: 90 im 16 821: 52 storesp 8 822: 83 im 3 823: e2 im -30 824: e8 im -24 825: 51 storesp 4 826: 80 im 0 827: c1 im -63 828: cc im -52 829: 3f callpcrel 0000082a <.LM117>: 82a: 89 im 9 82b: 3d pushspadd 82c: 22 loadh 82d: 55 storesp 20 82e: 74 loadsp 16 82f: 90 im 16 830: 2e eq 831: 8e im 14 832: 38 neqbranch 00000833 <.LM118>: 833: 0b nop 834: 0b nop 835: 80 im 0 836: f5 im -11 837: 98 im 24 838: 51 storesp 4 00000839 <.LM119>: 839: 80 im 0 83a: d7 im -41 83b: b1 im 49 83c: 3f callpcrel 83d: fe im -2 83e: c1 im -63 83f: 39 poppcrel 00000840 <.L102>: 840: 83 im 3 841: e2 im -30 842: e8 im -24 843: 51 storesp 4 844: fd im -3 845: 95 im 21 846: 3f callpcrel 00000847 <.LM121>: 847: 83 im 3 848: e2 im -30 849: ea im -22 84a: 51 storesp 4 84b: fd im -3 84c: 8e im 14 84d: 3f callpcrel 0000084e <.LM122>: 84e: 83 im 3 84f: e2 im -30 850: ec im -20 851: 51 storesp 4 852: fd im -3 853: 87 im 7 854: 3f callpcrel 00000855 <.LM123>: 855: 80 im 0 856: 0b nop 857: 83 im 3 858: e3 im -29 859: 88 im 8 85a: 0c store 0000085b <.LM124>: 85b: 77 loadsp 28 85c: 81 im 1 85d: 2e eq 85e: 81 im 1 85f: 8c im 12 860: 38 neqbranch 00000861 <.LM125>: 861: 83 im 3 862: e2 im -30 863: e8 im -24 864: 33 loadb 865: 83 im 3 866: e2 im -30 867: e9 im -23 868: 33 loadb 869: 71 loadsp 4 86a: 88 im 8 86b: 2b ashiftleft 86c: 07 or 86d: 55 storesp 20 86e: 56 storesp 24 86f: 73 loadsp 12 870: 83 im 3 871: ff im -1 872: ff im -1 873: 2e eq 874: 82 im 2 875: ce im -50 876: 38 neqbranch 00000877 <.LM126>: 877: 73 loadsp 12 878: 85 im 5 879: 96 im 22 87a: 2e eq 87b: 8e im 14 87c: 38 neqbranch 0000087d <.LM127>: 87d: 0b nop 87e: 0b nop 87f: 80 im 0 880: f5 im -11 881: b0 im 48 882: 51 storesp 4 00000883 <.LM128>: 883: 80 im 0 884: d6 im -42 885: e7 im -25 886: 3f callpcrel 887: fd im -3 888: f7 im -9 889: 39 poppcrel 0000088a <.L131>: 88a: 0b nop 88b: 0b nop 88c: 80 im 0 88d: f5 im -11 88e: c4 im -60 88f: 51 storesp 4 890: 80 im 0 891: d6 im -42 892: da im -38 893: 3f callpcrel 00000894 <.LM130>: 894: 74 loadsp 16 895: 83 im 3 896: e3 im -29 897: 90 im 16 898: 0c store 00000899 <.L105>: 899: 83 im 3 89a: e2 im -30 89b: ec im -20 89c: 33 loadb 89d: 83 im 3 89e: e2 im -30 89f: ed im -19 8a0: 33 loadb 8a1: 71 loadsp 4 8a2: 88 im 8 8a3: 2b ashiftleft 8a4: 07 or 8a5: 55 storesp 20 8a6: 55 storesp 20 8a7: 73 loadsp 12 8a8: 81 im 1 8a9: 80 im 0 8aa: 2e eq 8ab: 81 im 1 8ac: d3 im -45 8ad: 38 neqbranch 000008ae <.LM132>: 8ae: 73 loadsp 12 8af: 82 im 2 8b0: 80 im 0 8b1: 2e eq 8b2: 84 im 4 8b3: 81 im 1 8b4: 38 neqbranch 000008b5 <.LM133>: 8b5: 73 loadsp 12 8b6: 81 im 1 8b7: ff im -1 8b8: 26 ulessthan 8b9: 81 im 1 8ba: b8 im 56 8bb: 38 neqbranch 000008bc <.LM134>: 8bc: 0b nop 8bd: 0b nop 8be: 80 im 0 8bf: f5 im -11 8c0: cc im -52 8c1: 51 storesp 4 8c2: 80 im 0 8c3: d6 im -42 8c4: a8 im 40 8c5: 3f callpcrel 000008c6 <.LM135>: 8c6: 83 im 3 8c7: e2 im -30 8c8: ea im -22 8c9: 33 loadb 8ca: 83 im 3 8cb: e2 im -30 8cc: eb im -21 8cd: 33 loadb 8ce: 71 loadsp 4 8cf: 88 im 8 8d0: 2b ashiftleft 8d1: 07 or 8d2: 52 storesp 8 8d3: 56 storesp 24 8d4: 80 im 0 8d5: d7 im -41 8d6: a5 im 37 8d7: 3f callpcrel 000008d8 <.LM136>: 8d8: 0b nop 8d9: 0b nop 8da: 80 im 0 8db: f5 im -11 8dc: d0 im -48 8dd: 51 storesp 4 8de: 80 im 0 8df: d6 im -42 8e0: 8c im 12 8e1: 3f callpcrel 000008e2 <.LM137>: 8e2: 81 im 1 8e3: 0b nop 8e4: 83 im 3 8e5: e2 im -30 8e6: e4 im -28 8e7: 0c store 000008e8 <.L135>: 8e8: 8a im 10 8e9: 3d pushspadd 8ea: 0d popsp 8eb: 04 poppc 000008ec <.L129>: 8ec: 0b nop 8ed: 0b nop 8ee: 80 im 0 8ef: f5 im -11 8f0: d4 im -44 8f1: 51 storesp 4 8f2: 80 im 0 8f3: d5 im -43 8f4: f8 im -8 8f5: 3f callpcrel 000008f6 <.LM140>: 8f6: 80 im 0 8f7: 0b nop 8f8: 83 im 3 8f9: e3 im -29 8fa: 90 im 16 8fb: 0c store 000008fc <.LM141>: 8fc: 82 im 2 8fd: 0b nop 8fe: 83 im 3 8ff: e2 im -30 900: e8 im -24 901: 34 storeb 902: ff im -1 903: 96 im 22 904: 0b nop 905: 83 im 3 906: e2 im -30 907: e9 im -23 908: 34 storeb 00000909 <.LM142>: 909: 76 loadsp 24 90a: 51 storesp 4 90b: f7 im -9 90c: d2 im -46 90d: 3f callpcrel 90e: 83 im 3 90f: e0 im -32 910: 80 im 0 911: 08 load 912: 54 storesp 16 913: 80 im 0 914: 0b nop 915: 83 im 3 916: e0 im -32 917: 80 im 0 918: 08 load 919: 24 lessthan 91a: a9 im 41 91b: 38 neqbranch 91c: 73 loadsp 12 91d: 84 im 4 91e: 2c ashiftright 91f: 70 loadsp 0 920: 83 im 3 921: ff im -1 922: ff im -1 923: 06 and 924: 70 loadsp 0 925: 88 im 8 926: 2a lshiftright 927: 57 storesp 28 928: 51 storesp 4 929: 54 storesp 16 92a: 74 loadsp 16 92b: 83 im 3 92c: e2 im -30 92d: ea im -22 92e: 34 storeb 92f: 73 loadsp 12 930: 83 im 3 931: e2 im -30 932: eb im -21 933: 34 storeb 00000934 <.LM143>: 934: 80 im 0 935: 0b nop 936: 83 im 3 937: e2 im -30 938: ec im -20 939: 34 storeb 93a: ff im -1 93b: 80 im 0 93c: 0b nop 93d: 83 im 3 93e: e2 im -30 93f: ed im -19 940: 34 storeb 941: fe im -2 942: d6 im -42 943: 39 poppcrel 00000944 <.L134>: 944: 83 im 3 945: e0 im -32 946: 80 im 0 947: 08 load 948: 8f im 15 949: 05 add 94a: 70 loadsp 0 94b: 84 im 4 94c: 2c ashiftright 94d: 70 loadsp 0 94e: 83 im 3 94f: ff im -1 950: ff im -1 951: 06 and 952: 70 loadsp 0 953: 88 im 8 954: 2a lshiftright 955: 58 storesp 32 956: 51 storesp 4 957: 51 storesp 4 958: 54 storesp 16 959: 74 loadsp 16 95a: 83 im 3 95b: e2 im -30 95c: ea im -22 95d: 34 storeb 95e: 73 loadsp 12 95f: 83 im 3 960: e2 im -30 961: eb im -21 962: 34 storeb 00000963 <.LM145>: 963: 80 im 0 964: 0b nop 965: 83 im 3 966: e2 im -30 967: ec im -20 968: 34 storeb 969: ff im -1 96a: 80 im 0 96b: 0b nop 96c: 83 im 3 96d: e2 im -30 96e: ed im -19 96f: 34 storeb 970: fe im -2 971: a7 im 39 972: 39 poppcrel 00000973 <.L121>: 973: 0b nop 974: 0b nop 975: 80 im 0 976: f5 im -11 977: dc im -36 978: 51 storesp 4 979: 80 im 0 97a: d4 im -44 97b: f1 im -15 97c: 3f callpcrel 97d: fc im -4 97e: 81 im 1 97f: 39 poppcrel 00000980 <.L132>: 980: 83 im 3 981: e2 im -30 982: ea im -22 983: 33 loadb 984: 83 im 3 985: e2 im -30 986: eb im -21 987: 33 loadb 988: 71 loadsp 4 989: 88 im 8 98a: 2b ashiftleft 98b: 07 or 98c: 55 storesp 20 98d: 58 storesp 32 98e: ad im 45 98f: 80 im 0 990: 74 loadsp 16 991: 27 ulessthanorequal 992: 81 im 1 993: f2 im -14 994: 38 neqbranch 00000995 <.LM148>: 995: 0b nop 996: 0b nop 997: 80 im 0 998: f5 im -11 999: ec im -20 99a: 51 storesp 4 0000099b <.LM149>: 99b: 80 im 0 99c: d4 im -44 99d: cf im -49 99e: 3f callpcrel 0000099f <.LM150>: 99f: 83 im 3 9a0: e2 im -30 9a1: ea im -22 9a2: 33 loadb 9a3: 83 im 3 9a4: e2 im -30 9a5: eb im -21 9a6: 33 loadb 9a7: 71 loadsp 4 9a8: 88 im 8 9a9: 2b ashiftleft 9aa: 07 or 9ab: 52 storesp 8 9ac: 56 storesp 24 9ad: 80 im 0 9ae: d5 im -43 9af: cc im -52 9b0: 3f callpcrel 000009b1 <.LM151>: 9b1: 0b nop 9b2: 0b nop 9b3: 80 im 0 9b4: f5 im -11 9b5: d0 im -48 9b6: 51 storesp 4 9b7: 80 im 0 9b8: d4 im -44 9b9: b3 im 51 9ba: 3f callpcrel 000009bb <.LM152>: 9bb: 81 im 1 9bc: 0b nop 9bd: 83 im 3 9be: e2 im -30 9bf: e4 im -28 9c0: 0c store 9c1: fe im -2 9c2: a5 im 37 9c3: 39 poppcrel 000009c4 <.L130>: 9c4: 0b nop 9c5: 0b nop 9c6: 80 im 0 9c7: f5 im -11 9c8: f0 im -16 9c9: 51 storesp 4 9ca: 80 im 0 9cb: d4 im -44 9cc: a0 im 32 9cd: 3f callpcrel 000009ce <.LM154>: 9ce: fe im -2 9cf: 80 im 0 9d0: 0b nop 9d1: 83 im 3 9d2: e3 im -29 9d3: 90 im 16 9d4: 0c store 000009d5 <.LM155>: 9d5: 81 im 1 9d6: 0b nop 9d7: 83 im 3 9d8: e3 im -29 9d9: 88 im 8 9da: 0c store 000009db <.LM156>: 9db: ff im -1 9dc: 0b nop 9dd: 83 im 3 9de: e2 im -30 9df: e8 im -24 9e0: 34 storeb 9e1: ff im -1 9e2: 0b nop 9e3: 83 im 3 9e4: e2 im -30 9e5: e9 im -23 9e6: 34 storeb 000009e7 <.LM157>: 9e7: 76 loadsp 24 9e8: 51 storesp 4 9e9: f5 im -11 9ea: f4 im -12 9eb: 3f callpcrel 9ec: 83 im 3 9ed: e0 im -32 9ee: 80 im 0 9ef: 08 load 9f0: 83 im 3 9f1: e3 im -29 9f2: 94 im 20 9f3: 0c store 000009f4 <.LM158>: 9f4: 83 im 3 9f5: e0 im -32 9f6: 80 im 0 9f7: 08 load 9f8: 54 storesp 16 9f9: 80 im 0 9fa: 0b nop 9fb: 83 im 3 9fc: e0 im -32 9fd: 80 im 0 9fe: 08 load 9ff: 24 lessthan a00: 80 im 0 a01: d3 im -45 a02: 38 neqbranch a03: 73 loadsp 12 a04: 84 im 4 a05: 2c ashiftright a06: 70 loadsp 0 a07: 83 im 3 a08: ff im -1 a09: ff im -1 a0a: 06 and a0b: 70 loadsp 0 a0c: 88 im 8 a0d: 2a lshiftright a0e: 57 storesp 28 a0f: 51 storesp 4 a10: 54 storesp 16 a11: 74 loadsp 16 a12: 83 im 3 a13: e2 im -30 a14: ea im -22 a15: 34 storeb a16: 73 loadsp 12 a17: 83 im 3 a18: e2 im -30 a19: eb im -21 a1a: 34 storeb 00000a1b <.LM159>: a1b: 80 im 0 a1c: 0b nop a1d: 83 im 3 a1e: e2 im -30 a1f: ec im -20 a20: 34 storeb a21: ff im -1 a22: 80 im 0 a23: 0b nop a24: 83 im 3 a25: e2 im -30 a26: ed im -19 a27: 34 storeb 00000a28 <.LM160>: a28: 80 im 0 a29: 55 storesp 20 00000a2a <.L111>: a2a: 74 loadsp 16 a2b: 17 addsp 28 a2c: 54 storesp 16 a2d: 73 loadsp 12 a2e: 33 loadb a2f: 83 im 3 a30: e2 im -30 a31: d8 im -40 a32: 16 addsp 24 a33: 34 storeb 00000a34 <.LM162>: a34: 81 im 1 a35: 15 addsp 20 a36: 55 storesp 20 a37: 74 loadsp 16 a38: 8c im 12 a39: 2e eq a3a: fc im -4 a3b: dd im -35 a3c: 38 neqbranch 00000a3d <.LM163>: a3d: 74 loadsp 16 a3e: 17 addsp 28 a3f: 54 storesp 16 a40: 73 loadsp 12 a41: 33 loadb a42: 83 im 3 a43: e2 im -30 a44: d8 im -40 a45: 16 addsp 24 a46: 34 storeb 00000a47 <.LM164>: a47: 81 im 1 a48: 15 addsp 20 a49: 55 storesp 20 a4a: 74 loadsp 16 a4b: 8c im 12 a4c: 2e eq a4d: 09 not a4e: 81 im 1 a4f: 06 and a50: d9 im -39 a51: 38 neqbranch a52: fc im -4 a53: c5 im -59 a54: 39 poppcrel 00000a55 <.L136>: a55: 83 im 3 a56: e0 im -32 a57: 80 im 0 a58: 08 load a59: 8f im 15 a5a: 05 add a5b: 70 loadsp 0 a5c: 84 im 4 a5d: 2c ashiftright a5e: 70 loadsp 0 a5f: 83 im 3 a60: ff im -1 a61: ff im -1 a62: 06 and a63: 70 loadsp 0 a64: 88 im 8 a65: 2a lshiftright a66: 58 storesp 32 a67: 51 storesp 4 a68: 51 storesp 4 a69: 54 storesp 16 a6a: 74 loadsp 16 a6b: 83 im 3 a6c: e2 im -30 a6d: ea im -22 a6e: 34 storeb a6f: 73 loadsp 12 a70: 83 im 3 a71: e2 im -30 a72: eb im -21 a73: 34 storeb 00000a74 <.LM166>: a74: 80 im 0 a75: 0b nop a76: 83 im 3 a77: e2 im -30 a78: ec im -20 a79: 34 storeb a7a: ff im -1 a7b: 80 im 0 a7c: 0b nop a7d: 83 im 3 a7e: e2 im -30 a7f: ed im -19 a80: 34 storeb 00000a81 <.LM167>: a81: 80 im 0 a82: 55 storesp 20 a83: ff im -1 a84: a5 im 37 a85: 39 poppcrel 00000a86 <.L116>: a86: 0b nop a87: 0b nop a88: 80 im 0 a89: f5 im -11 a8a: f8 im -8 a8b: 51 storesp 4 00000a8c <.LM169>: a8c: 80 im 0 a8d: d2 im -46 a8e: de im -34 a8f: 3f callpcrel 00000a90 <.LM170>: a90: 83 im 3 a91: e2 im -30 a92: ea im -22 a93: 33 loadb a94: 83 im 3 a95: e2 im -30 a96: eb im -21 a97: 33 loadb a98: 71 loadsp 4 a99: 88 im 8 a9a: 2b ashiftleft a9b: 07 or a9c: 52 storesp 8 a9d: 56 storesp 24 a9e: 80 im 0 a9f: d3 im -45 aa0: db im -37 aa1: 3f callpcrel 00000aa2 <.LM171>: aa2: 0b nop aa3: 0b nop aa4: 80 im 0 aa5: f5 im -11 aa6: d0 im -48 aa7: 51 storesp 4 aa8: 80 im 0 aa9: d2 im -46 aaa: c2 im -62 aab: 3f callpcrel 00000aac <.LM172>: aac: 81 im 1 aad: 0b nop aae: 83 im 3 aaf: e2 im -30 ab0: e4 im -28 ab1: 0c store ab2: fc im -4 ab3: b4 im 52 ab4: 39 poppcrel 00000ab5 <.L133>: ab5: 0b nop ab6: 0b nop ab7: 80 im 0 ab8: f5 im -11 ab9: fc im -4 aba: 51 storesp 4 00000abb <.LM174>: abb: 80 im 0 abc: d2 im -46 abd: af im 47 abe: 3f callpcrel 00000abf <.LM175>: abf: 83 im 3 ac0: e2 im -30 ac1: ea im -22 ac2: 33 loadb ac3: 83 im 3 ac4: e2 im -30 ac5: eb im -21 ac6: 33 loadb ac7: 71 loadsp 4 ac8: 88 im 8 ac9: 2b ashiftleft aca: 07 or acb: 52 storesp 8 acc: 56 storesp 24 acd: 80 im 0 ace: d3 im -45 acf: ac im 44 ad0: 3f callpcrel 00000ad1 <.LM176>: ad1: 0b nop ad2: 0b nop ad3: 80 im 0 ad4: f5 im -11 ad5: d0 im -48 ad6: 51 storesp 4 ad7: 80 im 0 ad8: d2 im -46 ad9: 93 im 19 ada: 3f callpcrel 00000adb <.LM177>: adb: 81 im 1 adc: 0b nop add: 83 im 3 ade: e2 im -30 adf: e4 im -28 ae0: 0c store ae1: fc im -4 ae2: 85 im 5 ae3: 39 poppcrel 00000ae4 : ae4: f7 im -9 ae5: 3d pushspadd ae6: 0d popsp ae7: 7b loadsp 44 ae8: 5a storesp 40 00000ae9 <.LM179>: ae9: 8c im 12 aea: 9a im 26 aeb: c0 im -64 aec: 51 storesp 4 aed: f3 im -13 aee: c4 im -60 aef: 3f callpcrel 00000af0 <.LM180>: af0: 80 im 0 af1: 57 storesp 28 00000af2 <.LM181>: af2: 80 im 0 af3: cf im -49 af4: cf im -49 af5: 3f callpcrel 00000af6 <.LM182>: af6: 76 loadsp 24 af7: 54 storesp 16 00000af8 <.L143>: af8: 80 im 0 af9: 0b nop afa: 86 im 6 afb: b8 im 56 afc: c0 im -64 afd: 15 addsp 20 afe: 34 storeb 00000aff <.LM184>: aff: 81 im 1 b00: 14 addsp 16 b01: 54 storesp 16 b02: 73 loadsp 12 b03: 87 im 7 b04: c0 im -64 b05: 2e eq b06: 09 not b07: 81 im 1 b08: 06 and b09: ee im -18 b0a: 38 neqbranch 00000b0b <.LM185>: b0b: 0b nop b0c: 0b nop b0d: 80 im 0 b0e: f4 im -12 b0f: fc im -4 b10: 52 storesp 8 b11: 83 im 3 b12: e2 im -30 b13: f4 im -12 b14: 51 storesp 4 b15: 80 im 0 b16: c0 im -64 b17: 81 im 1 b18: 3f callpcrel b19: 83 im 3 b1a: e0 im -32 b1b: 80 im 0 b1c: 08 load b1d: 83 im 3 b1e: db im -37 b1f: 38 neqbranch 00000b20 <.LM186>: b20: 80 im 0 00000b21 <.LM187>: b21: 70 loadsp 0 00000b22 <.LM188>: b22: 83 im 3 b23: e3 im -29 b24: a8 im 40 b25: 08 load b26: 55 storesp 20 b27: 59 storesp 36 b28: 59 storesp 36 b29: 94 im 20 b2a: 73 loadsp 12 b2b: 25 lessthanorequal b2c: 86 im 6 b2d: 38 neqbranch 00000b2e <.LM189>: b2e: ec im -20 b2f: 13 addsp 12 b30: fe im -2 b31: 06 and b32: 58 storesp 32 00000b33 <.L147>: b33: 80 im 0 b34: 73 loadsp 12 b35: 24 lessthan b36: 82 im 2 b37: ff im -1 b38: 38 neqbranch 00000b39 <.L192>: b39: 83 im 3 b3a: e0 im -32 b3b: 94 im 20 b3c: 52 storesp 8 b3d: 83 im 3 b3e: e2 im -30 b3f: f4 im -12 b40: 51 storesp 4 b41: 80 im 0 b42: c0 im -64 b43: e8 im -24 b44: 3f callpcrel b45: 83 im 3 b46: e0 im -32 b47: 80 im 0 b48: 08 load b49: 80 im 0 b4a: db im -37 b4b: 38 neqbranch 00000b4c <.L199>: b4c: 83 im 3 b4d: e0 im -32 b4e: 9d im 29 b4f: 33 loadb b50: 53 storesp 12 b51: 72 loadsp 8 b52: 80 im 0 b53: 2e eq b54: 80 im 0 b55: d0 im -48 b56: 38 neqbranch 00000b57 <.LM192>: b57: 83 im 3 b58: e0 im -32 b59: 9c im 28 b5a: 33 loadb b5b: 70 loadsp 0 b5c: 82 im 2 b5d: 2a lshiftright b5e: 70 loadsp 0 b5f: 81 im 1 b60: 06 and b61: 51 storesp 4 b62: 54 storesp 16 b63: 54 storesp 16 b64: 72 loadsp 8 b65: d3 im -45 b66: 38 neqbranch 00000b67 <.LM193>: b67: 73 loadsp 12 b68: 81 im 1 b69: 2a lshiftright b6a: 81 im 1 b6b: 06 and b6c: 55 storesp 20 b6d: 74 loadsp 16 b6e: ca im -54 b6f: 38 neqbranch 00000b70 <.LM194>: b70: 73 loadsp 12 b71: 84 im 4 b72: 2a lshiftright b73: 70 loadsp 0 b74: 81 im 1 b75: 06 and b76: 51 storesp 4 b77: 53 storesp 12 b78: 72 loadsp 8 b79: 82 im 2 b7a: a3 im 35 b7b: 38 neqbranch 00000b7c <.LM195>: b7c: 83 im 3 b7d: e3 im -29 b7e: a8 im 40 b7f: 08 load b80: 77 loadsp 28 b81: 2e eq b82: 81 im 1 b83: de im -34 b84: 38 neqbranch 00000b85 <.L154>: b85: ff im -1 b86: 18 addsp 32 b87: 58 storesp 32 b88: 80 im 0 b89: 78 loadsp 32 b8a: 24 lessthan b8b: 82 im 2 b8c: b2 im 50 b8d: 38 neqbranch 00000b8e <.L160>: b8e: 81 im 1 b8f: 17 addsp 28 b90: 57 storesp 28 00000b91 <.L201>: b91: 83 im 3 b92: e0 im -32 b93: 94 im 20 b94: 52 storesp 8 b95: 83 im 3 b96: e2 im -30 b97: f4 im -12 b98: 51 storesp 4 b99: 80 im 0 b9a: c0 im -64 b9b: 90 im 16 b9c: 3f callpcrel b9d: 83 im 3 b9e: e0 im -32 b9f: 80 im 0 ba0: 08 load ba1: 80 im 0 ba2: 2e eq ba3: ff im -1 ba4: a7 im 39 ba5: 38 neqbranch 00000ba6 <.L150>: ba6: 0b nop ba7: 0b nop ba8: 80 im 0 ba9: f9 im -7 baa: c4 im -60 bab: 51 storesp 4 bac: 80 im 0 bad: d0 im -48 bae: be im 62 baf: 3f callpcrel 00000bb0 <.LM199>: bb0: 95 im 21 bb1: 51 storesp 4 bb2: 80 im 0 bb3: ce im -50 bb4: a2 im 34 bb5: 3f callpcrel 00000bb6 <.LM200>: bb6: 80 im 0 bb7: 0b nop bb8: 83 im 3 bb9: e0 im -32 bba: b4 im 52 bbb: 0c store 00000bbc <.LM201>: bbc: 79 loadsp 36 bbd: 51 storesp 4 bbe: f6 im -10 bbf: fb im -5 bc0: 3f callpcrel 00000bc1 <.LM202>: bc1: 80 im 0 bc2: fb im -5 bc3: c4 im -60 bc4: 08 load bc5: 70 loadsp 0 bc6: 33 loadb bc7: 70 loadsp 0 bc8: 81 im 1 bc9: ff im -1 bca: 06 and 00000bcb <.LM203>: bcb: 70 loadsp 0 bcc: 81 im 1 bcd: 2a lshiftright bce: 81 im 1 bcf: 32 xor bd0: 70 loadsp 0 bd1: 81 im 1 bd2: 06 and bd3: 51 storesp 4 bd4: 52 storesp 8 bd5: 56 storesp 24 bd6: 51 storesp 4 bd7: 53 storesp 12 bd8: 72 loadsp 8 bd9: 80 im 0 bda: eb im -21 bdb: 38 neqbranch 00000bdc <.L200>: bdc: 73 loadsp 12 bdd: 81 im 1 bde: 32 xor bdf: 70 loadsp 0 be0: 81 im 1 be1: 06 and be2: 51 storesp 4 be3: 53 storesp 12 be4: 72 loadsp 8 be5: 82 im 2 be6: e1 im -31 be7: 38 neqbranch 00000be8 <.LM205>: be8: 73 loadsp 12 be9: 83 im 3 bea: 2a lshiftright beb: 81 im 1 bec: 32 xor bed: 70 loadsp 0 bee: 81 im 1 bef: 06 and bf0: 51 storesp 4 bf1: 53 storesp 12 bf2: 72 loadsp 8 bf3: 82 im 2 bf4: c2 im -62 bf5: 38 neqbranch 00000bf6 <.LM206>: bf6: 73 loadsp 12 bf7: 82 im 2 bf8: 2a lshiftright bf9: 81 im 1 bfa: 32 xor bfb: 70 loadsp 0 bfc: 81 im 1 bfd: 06 and bfe: 51 storesp 4 bff: 53 storesp 12 c00: 72 loadsp 8 c01: 82 im 2 c02: a3 im 35 c03: 38 neqbranch 00000c04 <.LM207>: c04: 80 im 0 c05: fb im -5 c06: bc im 60 c07: 08 load c08: 70 loadsp 0 c09: 33 loadb c0a: 70 loadsp 0 c0b: 81 im 1 c0c: ff im -1 c0d: 06 and c0e: 51 storesp 4 c0f: 54 storesp 16 c10: 54 storesp 16 c11: 72 loadsp 8 c12: 80 im 0 c13: 2e eq c14: 81 im 1 c15: f0 im -16 c16: 38 neqbranch 00000c17 <.LM208>: c17: 80 im 0 c18: cd im -51 c19: aa im 42 c1a: 3f callpcrel 00000c1b <.LM209>: c1b: 80 im 0 c1c: fb im -5 c1d: c8 im -56 c1e: 08 load c1f: 80 im 0 c20: fb im -5 c21: d8 im -40 c22: 08 load c23: 54 storesp 16 c24: 54 storesp 16 c25: 73 loadsp 12 c26: 33 loadb c27: 73 loadsp 12 c28: 34 storeb 00000c29 <.LM210>: c29: 80 im 0 c2a: fb im -5 c2b: c4 im -60 c2c: 08 load c2d: 70 loadsp 0 c2e: 33 loadb c2f: 70 loadsp 0 c30: 81 im 1 c31: ff im -1 c32: 06 and 00000c33 <.LM211>: c33: 70 loadsp 0 c34: 81 im 1 c35: 2a lshiftright c36: 81 im 1 c37: 32 xor c38: 70 loadsp 0 c39: 81 im 1 c3a: 06 and c3b: 51 storesp 4 c3c: 52 storesp 8 c3d: 56 storesp 24 c3e: 51 storesp 4 c3f: 53 storesp 12 c40: 72 loadsp 8 c41: 80 im 0 c42: 2e eq c43: ff im -1 c44: 97 im 23 c45: 38 neqbranch 00000c46 <.L183>: c46: 83 im 3 c47: e3 im -29 c48: a8 im 40 c49: 08 load c4a: 82 im 2 c4b: 05 add c4c: 83 im 3 c4d: e3 im -29 c4e: a8 im 40 c4f: 0c store 00000c50 <.LM213>: c50: 84 im 4 c51: f1 im -15 c52: 80 im 0 c53: 51 storesp 4 00000c54 <.L203>: c54: f0 im -16 c55: dd im -35 c56: 3f callpcrel 00000c57 <.LM215>: c57: 80 im 0 c58: 57 storesp 28 00000c59 <.LM216>: c59: 80 im 0 c5a: cc im -52 c5b: e8 im -24 c5c: 3f callpcrel 00000c5d <.LM217>: c5d: 76 loadsp 24 c5e: 54 storesp 16 c5f: fd im -3 c60: 97 im 23 c61: 39 poppcrel 00000c62 <.L197>: c62: 74 loadsp 16 c63: 83 im 3 c64: e0 im -32 c65: 9d im 29 c66: 57 storesp 28 c67: 54 storesp 16 00000c68 <.L159>: c68: 73 loadsp 12 c69: 1a addsp 40 c6a: 53 storesp 12 c6b: 75 loadsp 20 c6c: 33 loadb c6d: 73 loadsp 12 c6e: 34 storeb 00000c6f <.LM220>: c6f: 75 loadsp 20 c70: 33 loadb c71: 70 loadsp 0 c72: 81 im 1 c73: ff im -1 c74: 06 and c75: 54 storesp 16 c76: 55 storesp 20 c77: 72 loadsp 8 c78: 80 im 0 c79: 2e eq c7a: fe im -2 c7b: 89 im 9 c7c: 38 neqbranch 00000c7d <.LM221>: c7d: ff im -1 c7e: 80 im 0 c7f: 15 addsp 20 c80: 53 storesp 12 c81: 72 loadsp 8 c82: 76 loadsp 24 c83: 70 loadsp 0 c84: 81 im 1 c85: 05 add c86: 58 storesp 32 c87: 34 storeb 00000c88 <.LM222>: c88: 81 im 1 c89: 14 addsp 16 c8a: 54 storesp 16 c8b: 73 loadsp 12 c8c: 8f im 15 c8d: 2e eq c8e: 09 not c8f: 81 im 1 c90: 06 and c91: d6 im -42 c92: 38 neqbranch 00000c93 <.LM223>: c93: ff im -1 c94: 18 addsp 32 c95: 58 storesp 32 c96: 77 loadsp 28 c97: 80 im 0 c98: 25 lessthanorequal c99: fd im -3 c9a: f3 im -13 c9b: 38 neqbranch c9c: a2 im 34 c9d: 39 poppcrel 00000c9e <.L196>: c9e: 0b nop c9f: 0b nop ca0: 80 im 0 ca1: f6 im -10 ca2: 80 im 0 ca3: 51 storesp 4 ca4: 80 im 0 ca5: ce im -50 ca6: c6 im -58 ca7: 3f callpcrel 00000ca8 <.LM225>: ca8: 83 im 3 ca9: e3 im -29 caa: a8 im 40 cab: 08 load cac: 77 loadsp 28 cad: 2e eq cae: 09 not caf: 81 im 1 cb0: 06 and cb1: fd im -3 cb2: d2 im -46 cb3: 38 neqbranch cb4: ff im -1 cb5: ac im 44 cb6: 39 poppcrel 00000cb7 <.L195>: cb7: 78 loadsp 32 cb8: 83 im 3 cb9: e3 im -29 cba: a8 im 40 cbb: 0c store cbc: fc im -4 cbd: fb im -5 cbe: 39 poppcrel 00000cbf <.L198>: cbf: 83 im 3 cc0: e0 im -32 cc1: 9d im 29 cc2: 51 storesp 4 cc3: 80 im 0 cc4: ce im -50 cc5: a7 im 39 cc6: 3f callpcrel 00000cc7 <.LM228>: cc7: 81 im 1 cc8: 19 addsp 36 00000cc9 <.LM229>: cc9: 70 loadsp 0 cca: 81 im 1 ccb: 06 and ccc: 54 storesp 16 ccd: 59 storesp 36 cce: 72 loadsp 8 ccf: 80 im 0 cd0: 2e eq cd1: 93 im 19 cd2: 38 neqbranch 00000cd3 <.LM230>: cd3: 94 im 20 cd4: 51 storesp 4 cd5: 80 im 0 cd6: cb im -53 cd7: f9 im -7 cd8: 3f callpcrel 00000cd9 <.LM231>: cd9: 78 loadsp 32 cda: a8 im 40 cdb: 2e eq cdc: fd im -3 cdd: c8 im -56 cde: 38 neqbranch 00000cdf <.L202>: cdf: 81 im 1 ce0: 17 addsp 28 ce1: 57 storesp 28 ce2: fd im -3 ce3: ad im 45 ce4: 39 poppcrel 00000ce5 <.L161>: ce5: 0b nop ce6: 0b nop ce7: 80 im 0 ce8: f9 im -7 ce9: c4 im -60 cea: 51 storesp 4 ceb: 80 im 0 cec: cd im -51 ced: ff im -1 cee: 3f callpcrel 00000cef <.LM234>: cef: 78 loadsp 32 cf0: a8 im 40 cf1: 2e eq cf2: 09 not cf3: 81 im 1 cf4: 06 and cf5: e9 im -23 cf6: 38 neqbranch cf7: fd im -3 cf8: ad im 45 cf9: 39 poppcrel 00000cfa <.L194>: cfa: 0b nop cfb: 0b nop cfc: 80 im 0 cfd: f6 im -10 cfe: 88 im 8 cff: 51 storesp 4 d00: 80 im 0 d01: cd im -51 d02: ea im -22 d03: 3f callpcrel 00000d04 <.L145>: d04: ff im -1 d05: 39 poppcrel 00000d06 <.L176>: d06: 73 loadsp 12 d07: 33 loadb d08: 70 loadsp 0 d09: 81 im 1 d0a: ff im -1 d0b: 06 and d0c: 51 storesp 4 d0d: 53 storesp 12 d0e: 72 loadsp 8 d0f: 80 im 0 d10: 2e eq d11: f4 im -12 d12: 38 neqbranch 00000d13 <.LM237>: d13: 8c im 12 d14: 9a im 26 d15: c0 im -64 d16: 51 storesp 4 d17: ef im -17 d18: 9a im 26 d19: 3f callpcrel 00000d1a <.LM238>: d1a: 83 im 3 d1b: e2 im -30 d1c: e4 im -28 d1d: 08 load d1e: 83 im 3 d1f: e0 im -32 d20: 80 im 0 d21: 0c store 00000d22 <.LM239>: d22: 8b im 11 d23: 3d pushspadd d24: 0d popsp d25: 04 poppc 00000d26 <.L186>: d26: 83 im 3 d27: e3 im -29 d28: a8 im 40 d29: 08 load d2a: fe im -2 d2b: 06 and d2c: 83 im 3 d2d: e3 im -29 d2e: a8 im 40 d2f: 0c store 00000d30 <.LM241>: d30: 84 im 4 d31: f1 im -15 d32: 80 im 0 d33: 51 storesp 4 d34: fe im -2 d35: 9e im 30 d36: 39 poppcrel 00000d37 <.L185>: d37: 83 im 3 d38: e3 im -29 d39: a8 im 40 d3a: 08 load d3b: 81 im 1 d3c: 07 or d3d: 83 im 3 d3e: e3 im -29 d3f: a8 im 40 d40: 0c store 00000d41 <.LM243>: d41: 84 im 4 d42: f1 im -15 d43: 80 im 0 d44: 51 storesp 4 d45: fe im -2 d46: 8d im 13 d47: 39 poppcrel 00000d48 <.L184>: d48: 83 im 3 d49: e3 im -29 d4a: a8 im 40 d4b: 08 load d4c: fe im -2 d4d: 05 add d4e: 83 im 3 d4f: e3 im -29 d50: a8 im 40 d51: 0c store 00000d52 <.LM245>: d52: 84 im 4 d53: f1 im -15 d54: 80 im 0 d55: 51 storesp 4 d56: fd im -3 d57: fc im -4 d58: 39 poppcrel 00000d59 : d59: e2 im -30 d5a: 3d pushspadd d5b: 0d popsp 00000d5c <.LM247>: d5c: 80 im 0 00000d5d <.LM248>: d5d: 0b nop d5e: 80 im 0 d5f: fc im -4 d60: b8 im 56 d61: 08 load d62: 70 loadsp 0 d63: 08 load d64: 70 loadsp 0 d65: 81 im 1 d66: 06 and d67: 51 storesp 4 d68: 56 storesp 24 d69: 56 storesp 24 d6a: 58 storesp 32 d6b: 73 loadsp 12 d6c: 78 loadsp 32 d6d: 2e eq d6e: 09 not d6f: 81 im 1 d70: 06 and d71: 82 im 2 d72: a7 im 39 d73: 38 neqbranch 00000d74 <.L205>: d74: 74 loadsp 16 d75: 08 load d76: 70 loadsp 0 d77: 81 im 1 d78: 2a lshiftright d79: 70 loadsp 0 d7a: 81 im 1 d7b: 06 and d7c: 51 storesp 4 d7d: 51 storesp 4 d7e: 54 storesp 16 d7f: 73 loadsp 12 d80: 80 im 0 d81: c9 im -55 d82: 38 neqbranch 00000d83 <.L317>: d83: 74 loadsp 16 d84: 08 load d85: 70 loadsp 0 d86: 82 im 2 d87: 2a lshiftright d88: 70 loadsp 0 d89: 81 im 1 d8a: 06 and d8b: 51 storesp 4 d8c: 51 storesp 4 d8d: 54 storesp 16 d8e: 73 loadsp 12 d8f: 80 im 0 d90: 2e eq d91: 90 im 16 d92: 38 neqbranch 00000d93 <.LM251>: d93: 80 im 0 d94: 51 storesp 4 d95: f1 im -15 d96: d3 im -45 d97: 3f callpcrel 00000d98 <.LM252>: d98: 81 im 1 d99: 51 storesp 4 d9a: f1 im -15 d9b: ce im -50 d9c: 3f callpcrel d9d: 80 im 0 d9e: fc im -4 d9f: b8 im 56 da0: 08 load da1: 55 storesp 20 00000da2 <.L323>: da2: 74 loadsp 16 da3: 08 load da4: 70 loadsp 0 da5: 83 im 3 da6: 2a lshiftright da7: 70 loadsp 0 da8: 81 im 1 da9: 06 and daa: 51 storesp 4 dab: 51 storesp 4 dac: 54 storesp 16 dad: 73 loadsp 12 dae: 80 im 0 daf: 2e eq db0: 96 im 22 db1: 38 neqbranch 00000db2 <.LM254>: db2: 80 im 0 db3: 51 storesp 4 db4: f1 im -15 db5: b4 im 52 db6: 3f callpcrel 00000db7 <.LM255>: db7: 80 im 0 db8: fb im -5 db9: e4 im -28 dba: 08 load dbb: 54 storesp 16 dbc: 80 im 0 dbd: 74 loadsp 16 dbe: 34 storeb 00000dbf <.LM256>: dbf: f0 im -16 dc0: af im 47 dc1: 3f callpcrel 00000dc2 <.LM257>: dc2: 81 im 1 dc3: 51 storesp 4 dc4: f1 im -15 dc5: a4 im 36 dc6: 3f callpcrel 00000dc7 <.L204>: dc7: a0 im 32 dc8: 3d pushspadd dc9: 0d popsp dca: 04 poppc 00000dcb <.L372>: dcb: 81 im 1 dcc: 51 storesp 4 dcd: f1 im -15 dce: bf im 63 dcf: 3f callpcrel 00000dd0 <.LM260>: dd0: f0 im -16 dd1: 9e im 30 dd2: 3f callpcrel 00000dd3 <.LM261>: dd3: 8e im 14 dd4: 3d pushspadd dd5: 57 storesp 28 dd6: a1 im 33 dd7: 53 storesp 12 dd8: 80 im 0 dd9: f4 im -12 dda: b4 im 52 ddb: 52 storesp 8 ddc: 76 loadsp 24 ddd: 51 storesp 4 dde: 80 im 0 ddf: d7 im -41 de0: a8 im 40 de1: 3f callpcrel 00000de2 <.LM262>: de2: 80 im 0 de3: 56 storesp 24 00000de4 <.L321>: de4: 84 im 4 de5: 8c im 12 de6: 80 im 0 de7: 16 addsp 24 de8: 76 loadsp 24 de9: 18 addsp 32 dea: 55 storesp 20 deb: 55 storesp 20 dec: 73 loadsp 12 ded: 33 loadb dee: 75 loadsp 20 def: 34 storeb 00000df0 <.LM264>: df0: 81 im 1 df1: 16 addsp 24 df2: 56 storesp 24 df3: 75 loadsp 20 df4: a1 im 33 df5: 2e eq df6: 09 not df7: 81 im 1 df8: 06 and df9: ea im -22 dfa: 38 neqbranch 00000dfb <.LM265>: dfb: 80 im 0 dfc: fb im -5 dfd: e0 im -32 dfe: 08 load dff: 54 storesp 16 e00: 80 im 0 e01: 74 loadsp 16 e02: 34 storeb 00000e03 <.LM266>: e03: 80 im 0 e04: fb im -5 e05: dc im -36 e06: 08 load e07: 54 storesp 16 e08: 86 im 6 e09: 74 loadsp 16 e0a: 34 storeb 00000e0b <.LM267>: e0b: 80 im 0 e0c: fb im -5 e0d: d8 im -40 e0e: 08 load e0f: 54 storesp 16 e10: 80 im 0 e11: 74 loadsp 16 e12: 34 storeb 00000e13 <.LM268>: e13: 80 im 0 e14: fb im -5 e15: d4 im -44 e16: 08 load e17: 54 storesp 16 e18: 8f im 15 e19: 74 loadsp 16 e1a: 34 storeb 00000e1b <.LM269>: e1b: 80 im 0 e1c: fb im -5 e1d: d0 im -48 e1e: 08 load e1f: 54 storesp 16 e20: 80 im 0 e21: 74 loadsp 16 e22: 34 storeb 00000e23 <.LM270>: e23: 80 im 0 e24: fb im -5 e25: cc im -52 e26: 08 load e27: 54 storesp 16 e28: 80 im 0 e29: 74 loadsp 16 e2a: 34 storeb 00000e2b <.LM271>: e2b: 80 im 0 e2c: fb im -5 e2d: c0 im -64 e2e: 08 load e2f: 54 storesp 16 e30: ff im -1 e31: 74 loadsp 16 e32: 34 storeb 00000e33 <.LM272>: e33: 80 im 0 e34: fb im -5 e35: b8 im 56 e36: 08 load e37: 54 storesp 16 e38: e0 im -32 e39: 74 loadsp 16 e3a: 34 storeb 00000e3b <.LM273>: e3b: 80 im 0 e3c: fb im -5 e3d: b0 im 48 e3e: 08 load e3f: 54 storesp 16 e40: a2 im 34 e41: 74 loadsp 16 e42: 34 storeb 00000e43 <.LM274>: e43: 81 im 1 e44: 51 storesp 4 e45: 80 im 0 e46: c9 im -55 e47: 95 im 21 e48: 3f callpcrel 00000e49 <.LM275>: e49: 83 im 3 e4a: e3 im -29 e4b: 98 im 24 e4c: 51 storesp 4 e4d: f9 im -7 e4e: 95 im 21 e4f: 3f callpcrel e50: 83 im 3 e51: e0 im -32 e52: 80 im 0 e53: 08 load e54: 80 im 0 e55: 2e eq e56: ad im 45 e57: 38 neqbranch 00000e58 <.LM276>: e58: 81 im 1 e59: 0b nop e5a: 83 im 3 e5b: e0 im -32 e5c: b4 im 52 e5d: 0c store 00000e5e <.LM277>: e5e: 0b nop e5f: 0b nop e60: 80 im 0 e61: f6 im -10 e62: 98 im 24 e63: 51 storesp 4 e64: 80 im 0 e65: cb im -53 e66: 86 im 6 e67: 3f callpcrel 00000e68 <.LM278>: e68: 9e im 30 e69: c2 im -62 e6a: a0 im 32 e6b: 51 storesp 4 e6c: ec im -20 e6d: c5 im -59 e6e: 3f callpcrel 00000e6f <.LM279>: e6f: 80 im 0 e70: 51 storesp 4 e71: ef im -17 e72: f7 im -9 e73: 3f callpcrel 00000e74 <.LM280>: e74: 80 im 0 e75: fb im -5 e76: e4 im -28 e77: 08 load e78: 54 storesp 16 e79: 80 im 0 e7a: 74 loadsp 16 e7b: 34 storeb 00000e7c <.LM281>: e7c: ee im -18 e7d: f2 im -14 e7e: 3f callpcrel 00000e7f <.LM282>: e7f: 81 im 1 e80: 51 storesp 4 e81: ef im -17 e82: e7 im -25 e83: 3f callpcrel 00000e84 <.L322>: e84: 83 im 3 e85: e0 im -32 e86: ac im 44 e87: 08 load e88: 51 storesp 4 e89: 80 im 0 e8a: c8 im -56 e8b: d1 im -47 e8c: 3f callpcrel 00000e8d <.LM284>: e8d: 80 im 0 e8e: 51 storesp 4 e8f: ef im -17 e90: fd im -3 e91: 3f callpcrel e92: 80 im 0 e93: fc im -4 e94: b8 im 56 e95: 08 load e96: 55 storesp 20 e97: fd im -3 e98: ea im -22 e99: 39 poppcrel 00000e9a <.L371>: e9a: 77 loadsp 28 00000e9b <.LM286>: e9b: 78 loadsp 32 00000e9c <.LM287>: e9c: 79 loadsp 36 00000e9d <.LM288>: e9d: 7a loadsp 40 e9e: 5f storesp 60 e9f: 59 storesp 36 ea0: 5a storesp 40 ea1: 5b storesp 44 00000ea2 <.LM289>: ea2: 81 im 1 ea3: 51 storesp 4 ea4: ef im -17 ea5: e8 im -24 ea6: 3f callpcrel 00000ea7 <.LM290>: ea7: 81 im 1 ea8: 51 storesp 4 ea9: 80 im 0 eaa: c8 im -56 eab: b1 im 49 eac: 3f callpcrel 00000ead <.L209>: ead: 81 im 1 eae: 9f im 31 eaf: e0 im -32 eb0: 80 im 0 eb1: 18 addsp 32 eb2: 86 im 6 eb3: b8 im 56 eb4: 80 im 0 eb5: 19 addsp 36 eb6: 55 storesp 20 eb7: 55 storesp 20 eb8: 73 loadsp 12 eb9: 33 loadb eba: 75 loadsp 20 ebb: 34 storeb 00000ebc <.LM292>: ebc: 81 im 1 ebd: 18 addsp 32 ebe: 58 storesp 32 ebf: 77 loadsp 28 ec0: 88 im 8 ec1: 80 im 0 ec2: 2e eq ec3: 09 not ec4: 81 im 1 ec5: 06 and ec6: e6 im -26 ec7: 38 neqbranch 00000ec8 <.LM293>: ec8: 80 im 0 ec9: c0 im -64 eca: 58 storesp 32 00000ecb <.L213>: ecb: 86 im 6 ecc: b8 im 56 ecd: 80 im 0 ece: 18 addsp 32 ecf: 54 storesp 16 ed0: 80 im 0 ed1: 74 loadsp 16 ed2: 34 storeb 00000ed3 <.LM295>: ed3: 81 im 1 ed4: 18 addsp 32 ed5: 58 storesp 32 ed6: 77 loadsp 28 ed7: 88 im 8 ed8: 80 im 0 ed9: 2e eq eda: 09 not edb: 81 im 1 edc: 06 and edd: ed im -19 ede: 38 neqbranch 00000edf <.LM296>: edf: 83 im 3 ee0: a0 im 32 ee1: 80 im 0 ee2: 58 storesp 32 00000ee3 <.L217>: ee3: 81 im 1 ee4: 9c im 28 ee5: 80 im 0 ee6: 80 im 0 ee7: 18 addsp 32 ee8: 88 im 8 ee9: 80 im 0 eea: 80 im 0 eeb: 19 addsp 36 eec: 56 storesp 24 eed: 54 storesp 16 eee: 74 loadsp 16 eef: 33 loadb ef0: 74 loadsp 16 ef1: 34 storeb 00000ef2 <.LM298>: ef2: 84 im 4 ef3: 80 im 0 ef4: 80 im 0 ef5: 18 addsp 32 ef6: 54 storesp 16 ef7: 80 im 0 ef8: 74 loadsp 16 ef9: 34 storeb 00000efa <.LM299>: efa: 81 im 1 efb: 18 addsp 32 efc: 58 storesp 32 efd: 77 loadsp 28 efe: 83 im 3 eff: a0 im 32 f00: 9f im 31 f01: 2e eq f02: 09 not f03: 81 im 1 f04: 06 and f05: dd im -35 f06: 38 neqbranch 00000f07 <.LM300>: f07: 83 im 3 f08: a4 im 36 f09: 80 im 0 f0a: 58 storesp 32 00000f0b <.L221>: f0b: 81 im 1 f0c: 9c im 28 f0d: 80 im 0 f0e: 80 im 0 f0f: 18 addsp 32 f10: 88 im 8 f11: 80 im 0 f12: 80 im 0 f13: 19 addsp 36 f14: 56 storesp 24 f15: 54 storesp 16 f16: 74 loadsp 16 f17: 33 loadb f18: 74 loadsp 16 f19: 34 storeb 00000f1a <.LM302>: f1a: 84 im 4 f1b: 80 im 0 f1c: 80 im 0 f1d: 18 addsp 32 f1e: 54 storesp 16 f1f: 80 im 0 f20: 74 loadsp 16 f21: 34 storeb 00000f22 <.LM303>: f22: 81 im 1 f23: 18 addsp 32 f24: 58 storesp 32 f25: 77 loadsp 28 f26: 83 im 3 f27: a4 im 36 f28: 9f im 31 f29: 2e eq f2a: 09 not f2b: 81 im 1 f2c: 06 and f2d: dd im -35 f2e: 38 neqbranch 00000f2f <.LM304>: f2f: 83 im 3 f30: a8 im 40 f31: 80 im 0 f32: 58 storesp 32 00000f33 <.L225>: f33: 81 im 1 f34: 9c im 28 f35: 80 im 0 f36: 80 im 0 f37: 18 addsp 32 f38: 88 im 8 f39: 80 im 0 f3a: 80 im 0 f3b: 19 addsp 36 f3c: 56 storesp 24 f3d: 54 storesp 16 f3e: 74 loadsp 16 f3f: 33 loadb f40: 74 loadsp 16 f41: 34 storeb 00000f42 <.LM306>: f42: 84 im 4 f43: 80 im 0 f44: 80 im 0 f45: 18 addsp 32 f46: 54 storesp 16 f47: 80 im 0 f48: 74 loadsp 16 f49: 34 storeb 00000f4a <.LM307>: f4a: 81 im 1 f4b: 18 addsp 32 f4c: 58 storesp 32 f4d: 77 loadsp 28 f4e: 83 im 3 f4f: a8 im 40 f50: 8f im 15 f51: 2e eq f52: 09 not f53: 81 im 1 f54: 06 and f55: dd im -35 f56: 38 neqbranch 00000f57 <.LM308>: f57: 80 im 0 f58: fb im -5 f59: c0 im -64 f5a: 08 load f5b: 70 loadsp 0 f5c: 33 loadb f5d: 70 loadsp 0 f5e: 81 im 1 f5f: ff im -1 f60: 06 and 00000f61 <.LM309>: f61: 9a im 26 f62: 3d pushspadd f63: 59 storesp 36 f64: 5c storesp 48 f65: 51 storesp 4 f66: 54 storesp 16 f67: a1 im 33 f68: 53 storesp 12 f69: 80 im 0 f6a: f4 im -12 f6b: d8 im -40 f6c: 52 storesp 8 f6d: 75 loadsp 20 f6e: 51 storesp 4 f6f: 80 im 0 f70: d4 im -44 f71: 97 im 23 f72: 3f callpcrel 00000f73 <.LM310>: f73: 80 im 0 f74: 58 storesp 32 00000f75 <.L229>: f75: 86 im 6 f76: b8 im 56 f77: 80 im 0 f78: 18 addsp 32 f79: 78 loadsp 32 f7a: 17 addsp 28 f7b: 55 storesp 20 f7c: 55 storesp 20 f7d: 73 loadsp 12 f7e: 33 loadb f7f: 75 loadsp 20 f80: 34 storeb 00000f81 <.LM312>: f81: 81 im 1 f82: 18 addsp 32 f83: 58 storesp 32 f84: 77 loadsp 28 f85: a1 im 33 f86: 2e eq f87: 09 not f88: 81 im 1 f89: 06 and f8a: ea im -22 f8b: 38 neqbranch 00000f8c <.LM313>: f8c: 80 im 0 f8d: fb im -5 f8e: e0 im -32 f8f: 08 load f90: 54 storesp 16 f91: 80 im 0 f92: 74 loadsp 16 f93: 34 storeb 00000f94 <.LM314>: f94: 80 im 0 f95: fb im -5 f96: dc im -36 f97: 08 load f98: 54 storesp 16 f99: ff im -1 f9a: 9c im 28 f9b: 74 loadsp 16 f9c: 34 storeb 00000f9d <.LM315>: f9d: 80 im 0 f9e: fb im -5 f9f: d8 im -40 fa0: 08 load fa1: 54 storesp 16 fa2: 80 im 0 fa3: 74 loadsp 16 fa4: 34 storeb 00000fa5 <.LM316>: fa5: 80 im 0 fa6: fb im -5 fa7: d4 im -44 fa8: 08 load fa9: 54 storesp 16 faa: 8f im 15 fab: 74 loadsp 16 fac: 34 storeb 00000fad <.LM317>: fad: 80 im 0 fae: fb im -5 faf: d0 im -48 fb0: 08 load fb1: 54 storesp 16 fb2: 80 im 0 fb3: 74 loadsp 16 fb4: 34 storeb 00000fb5 <.LM318>: fb5: 80 im 0 fb6: fb im -5 fb7: cc im -52 fb8: 08 load fb9: 54 storesp 16 fba: 80 im 0 fbb: 74 loadsp 16 fbc: 34 storeb 00000fbd <.LM319>: fbd: 80 im 0 fbe: fb im -5 fbf: b8 im 56 fc0: 08 load fc1: 54 storesp 16 fc2: e0 im -32 fc3: 74 loadsp 16 fc4: 34 storeb 00000fc5 <.LM320>: fc5: 80 im 0 fc6: fb im -5 fc7: b0 im 48 fc8: 08 load fc9: 54 storesp 16 fca: a2 im 34 fcb: 74 loadsp 16 fcc: 34 storeb 00000fcd <.LM321>: fcd: 80 im 0 fce: fb im -5 fcf: c0 im -64 fd0: 08 load fd1: 54 storesp 16 fd2: ff im -1 fd3: 74 loadsp 16 fd4: 34 storeb 00000fd5 <.LM322>: fd5: 80 im 0 fd6: fb im -5 fd7: ac im 44 fd8: 08 load fd9: 54 storesp 16 fda: 83 im 3 fdb: 74 loadsp 16 fdc: 34 storeb 00000fdd <.LM323>: fdd: 80 im 0 fde: fb im -5 fdf: b4 im 52 fe0: 08 load fe1: 54 storesp 16 fe2: 82 im 2 fe3: 74 loadsp 16 fe4: 34 storeb 00000fe5 <.L360>: fe5: fd im -3 fe6: 5d storesp 52 00000fe7 <.L366>: fe7: 87 im 7 fe8: a9 im 41 fe9: c0 im -64 fea: 51 storesp 4 feb: e9 im -23 fec: c6 im -58 fed: 3f callpcrel 00000fee <.LM325>: fee: 80 im 0 fef: c5 im -59 ff0: d3 im -45 ff1: 3f callpcrel 00000ff2 <.LM326>: ff2: 80 im 0 ff3: 58 storesp 32 00000ff4 <.L235>: ff4: 80 im 0 ff5: 0b nop ff6: 86 im 6 ff7: b8 im 56 ff8: c0 im -64 ff9: 19 addsp 36 ffa: 34 storeb 00000ffb <.LM328>: ffb: 81 im 1 ffc: 18 addsp 32 ffd: 58 storesp 32 ffe: 77 loadsp 28 fff: 87 im 7 1000: c0 im -64 1001: 2e eq 1002: 09 not 1003: 81 im 1 1004: 06 and 1005: ee im -18 1006: 38 neqbranch 00001007 <.LM329>: 1007: 0b nop 1008: 0b nop 1009: 80 im 0 100a: f6 im -10 100b: a4 im 36 100c: 51 storesp 4 100d: 80 im 0 100e: c7 im -57 100f: dd im -35 1010: 3f callpcrel 00001011 <.LM330>: 1011: 0b nop 1012: 0b nop 1013: 80 im 0 1014: f6 im -10 1015: b8 im 56 1016: 51 storesp 4 1017: 80 im 0 1018: c7 im -57 1019: d3 im -45 101a: 3f callpcrel 0000101b <.LM331>: 101b: 0b nop 101c: 0b nop 101d: 80 im 0 101e: f6 im -10 101f: cc im -52 1020: 51 storesp 4 1021: 80 im 0 1022: c7 im -57 1023: c9 im -55 1024: 3f callpcrel 00001025 <.LM332>: 1025: 80 im 0 1026: fc im -4 1027: c4 im -60 1028: 08 load 1029: 70 loadsp 0 102a: 08 load 102b: 70 loadsp 0 102c: 88 im 8 102d: 2c ashiftright 102e: 8f im 15 102f: 06 and 1030: 57 storesp 28 1031: 55 storesp 20 1032: 56 storesp 24 00001033 <.LM333>: 1033: 78 loadsp 32 1034: b3 im 51 1035: 38 neqbranch 00001036 <.LM334>: 1036: 76 loadsp 24 1037: 80 im 0 1038: 2e eq 1039: a7 im 39 103a: 38 neqbranch 0000103b <.LM335>: 103b: 75 loadsp 20 103c: 08 load 103d: 77 loadsp 28 103e: 16 addsp 24 103f: 83 im 3 1040: 06 and 1041: 71 loadsp 4 1042: e1 im -31 1043: ff im -1 1044: 06 and 1045: 71 loadsp 4 1046: 88 im 8 1047: 2b ashiftleft 1048: 07 or 1049: 78 loadsp 32 104a: 0c store 0000104b <.LM336>: 104b: 7a loadsp 40 0000104c <.LM337>: 104c: 7b loadsp 44 104d: 5a storesp 40 104e: 5e storesp 56 104f: 56 storesp 24 1050: 54 storesp 16 00001051 <.LM338>: 1051: 87 im 7 1052: a9 im 41 1053: c0 im -64 1054: 51 storesp 4 1055: e8 im -24 1056: dc im -36 1057: 3f callpcrel 00001058 <.LM339>: 1058: 80 im 0 1059: c4 im -60 105a: e9 im -23 105b: 3f callpcrel 0000105c <.LM340>: 105c: 80 im 0 105d: 58 storesp 32 105e: ff im -1 105f: 94 im 20 1060: 39 poppcrel 00001061 <.L237>: 1061: 81 im 1 1062: 80 im 0 1063: 51 storesp 4 1064: 80 im 0 1065: c7 im -57 1066: 80 im 0 1067: 3f callpcrel 00001068 <.L236>: 1068: 74 loadsp 16 1069: 81 im 1 106a: 2e eq 106b: 89 im 9 106c: 93 im 19 106d: 38 neqbranch 106e: 81 im 1 106f: 75 loadsp 20 1070: 25 lessthanorequal 1071: 88 im 8 1072: d4 im -44 1073: 38 neqbranch 1074: 74 loadsp 16 1075: 82 im 2 1076: 2e eq 1077: 88 im 8 1078: 8b im 11 1079: 38 neqbranch 107a: 74 loadsp 16 107b: 83 im 3 107c: 2e eq 107d: 86 im 6 107e: 9a im 26 107f: 38 neqbranch 00001080 <.L243>: 1080: 0b nop 1081: 0b nop 1082: 80 im 0 1083: f6 im -10 1084: d4 im -44 1085: 51 storesp 4 1086: 80 im 0 1087: c6 im -58 1088: e4 im -28 1089: 3f callpcrel 0000108a <.LM344>: 108a: 0b nop 108b: 0b nop 108c: 80 im 0 108d: f9 im -7 108e: c4 im -60 108f: 51 storesp 4 1090: 80 im 0 1091: c6 im -58 1092: da im -38 1093: 3f callpcrel 00001094 <.LM345>: 1094: 0b nop 1095: 0b nop 1096: 80 im 0 1097: f6 im -10 1098: dc im -36 1099: 51 storesp 4 109a: 80 im 0 109b: c6 im -58 109c: d0 im -48 109d: 3f callpcrel 0000109e <.LM346>: 109e: 80 im 0 109f: fc im -4 10a0: c4 im -60 10a1: 08 load 10a2: 70 loadsp 0 10a3: 08 load 10a4: 70 loadsp 0 10a5: 8c im 12 10a6: 2c ashiftright 10a7: 8f im 15 10a8: 06 and 10a9: 57 storesp 28 10aa: 55 storesp 20 10ab: 56 storesp 24 000010ac <.LM347>: 10ac: 78 loadsp 32 10ad: 81 im 1 10ae: 2e eq 10af: 83 im 3 10b0: a2 im 34 10b1: 38 neqbranch 000010b2 <.L245>: 10b2: 74 loadsp 16 10b3: 81 im 1 10b4: 2e eq 10b5: 87 im 7 10b6: 9c im 28 10b7: 38 neqbranch 10b8: 81 im 1 10b9: 75 loadsp 20 10ba: 25 lessthanorequal 10bb: 86 im 6 10bc: e1 im -31 10bd: 38 neqbranch 10be: 74 loadsp 16 10bf: 82 im 2 10c0: 2e eq 10c1: 8c im 12 10c2: a9 im 41 10c3: 38 neqbranch 10c4: 74 loadsp 16 10c5: 83 im 3 10c6: 2e eq 10c7: 8c im 12 10c8: e2 im -30 10c9: 38 neqbranch 000010ca <.L252>: 10ca: 0b nop 10cb: 0b nop 10cc: 80 im 0 10cd: f6 im -10 10ce: d4 im -44 10cf: 51 storesp 4 10d0: 80 im 0 10d1: c6 im -58 10d2: 9a im 26 10d3: 3f callpcrel 000010d4 <.LM350>: 10d4: 0b nop 10d5: 0b nop 10d6: 80 im 0 10d7: f9 im -7 10d8: c4 im -60 10d9: 51 storesp 4 10da: 80 im 0 10db: c6 im -58 10dc: 90 im 16 10dd: 3f callpcrel 000010de <.LM351>: 10de: 0b nop 10df: 0b nop 10e0: 80 im 0 10e1: f6 im -10 10e2: e8 im -24 10e3: 51 storesp 4 10e4: 80 im 0 10e5: c6 im -58 10e6: 86 im 6 10e7: 3f callpcrel 000010e8 <.LM352>: 10e8: 80 im 0 10e9: fc im -4 10ea: c4 im -60 10eb: 08 load 10ec: 70 loadsp 0 10ed: 08 load 10ee: bf im 63 10ef: 06 and 10f0: 56 storesp 24 10f1: 56 storesp 24 000010f2 <.LM353>: 10f2: 78 loadsp 32 10f3: 82 im 2 10f4: 2e eq 10f5: 85 im 5 10f6: ff im -1 10f7: 38 neqbranch 000010f8 <.L254>: 10f8: 81 im 1 10f9: 15 addsp 20 10fa: 70 loadsp 0 10fb: 83 im 3 10fc: c1 im -63 10fd: 9c im 28 10fe: 35 div 10ff: 70 loadsp 0 1100: 83 im 3 1101: ff im -1 1102: ff im -1 1103: 06 and 1104: 53 storesp 12 1105: 51 storesp 4 1106: 54 storesp 16 1107: 80 im 0 1108: c6 im -58 1109: f2 im -14 110a: 3f callpcrel 0000110b <.LM355>: 110b: 0b nop 110c: 0b nop 110d: 80 im 0 110e: f6 im -10 110f: f0 im -16 1110: 51 storesp 4 1111: 80 im 0 1112: c5 im -59 1113: d9 im -39 1114: 3f callpcrel 00001115 <.LM356>: 1115: 78 loadsp 32 1116: 83 im 3 1117: 2e eq 1118: 85 im 5 1119: b7 im 55 111a: 38 neqbranch 0000111b <.L257>: 111b: 83 im 3 111c: e3 im -29 111d: 98 im 24 111e: 51 storesp 4 111f: 80 im 0 1120: c5 im -59 1121: cb im -53 1122: 3f callpcrel 00001123 <.LM358>: 1123: 0b nop 1124: 0b nop 1125: 80 im 0 1126: f6 im -10 1127: fc im -4 1128: 51 storesp 4 1129: 80 im 0 112a: c5 im -59 112b: c1 im -63 112c: 3f callpcrel 0000112d <.LM359>: 112d: 78 loadsp 32 112e: 84 im 4 112f: 2e eq 1130: 84 im 4 1131: c2 im -62 1132: 38 neqbranch 00001133 <.L258>: 1133: 83 im 3 1134: e3 im -29 1135: d8 im -40 1136: 51 storesp 4 1137: 80 im 0 1138: c5 im -59 1139: b3 im 51 113a: 3f callpcrel 0000113b <.LM361>: 113b: 0b nop 113c: 0b nop 113d: 80 im 0 113e: f7 im -9 113f: 84 im 4 1140: 51 storesp 4 1141: 80 im 0 1142: c5 im -59 1143: a9 im 41 1144: 3f callpcrel 00001145 <.LM362>: 1145: 78 loadsp 32 1146: 85 im 5 1147: 2e eq 1148: 84 im 4 1149: 85 im 5 114a: 38 neqbranch 0000114b <.L259>: 114b: 83 im 3 114c: e2 im -30 114d: c8 im -56 114e: 51 storesp 4 114f: 80 im 0 1150: c5 im -59 1151: 9b im 27 1152: 3f callpcrel 00001153 <.LM364>: 1153: 0b nop 1154: 0b nop 1155: 80 im 0 1156: f7 im -9 1157: 8c im 12 1158: 51 storesp 4 1159: 80 im 0 115a: c5 im -59 115b: 91 im 17 115c: 3f callpcrel 0000115d <.LM365>: 115d: 78 loadsp 32 115e: 86 im 6 115f: 2e eq 1160: 85 im 5 1161: b3 im 51 1162: 38 neqbranch 00001163 <.L260>: 1163: 83 im 3 1164: e0 im -32 1165: b8 im 56 1166: 51 storesp 4 1167: 80 im 0 1168: c5 im -59 1169: 83 im 3 116a: 3f callpcrel 0000116b <.LM367>: 116b: 7c loadsp 48 116c: 83 im 3 116d: 26 ulessthan 116e: 93 im 19 116f: 38 neqbranch 00001170 <.LM368>: 1170: 7b loadsp 44 1171: 81 im 1 1172: 2e eq 1173: 87 im 7 1174: c0 im -64 1175: 38 neqbranch 00001176 <.LM369>: 1176: 76 loadsp 24 1177: 81 im 1 1178: 2e eq 1179: 8a im 10 117a: 8b im 11 117b: 38 neqbranch 0000117c <.LM370>: 117c: 76 loadsp 24 117d: ff im -1 117e: 2e eq 117f: 89 im 9 1180: 9f im 31 1181: 38 neqbranch 00001182 <.L261>: 1182: 78 loadsp 32 1183: 87 im 7 1184: 2e eq 1185: 88 im 8 1186: 9b im 27 1187: 38 neqbranch 00001188 <.L279>: 1188: 0b nop 1189: 0b nop 118a: 80 im 0 118b: f7 im -9 118c: 94 im 20 118d: 51 storesp 4 118e: 80 im 0 118f: c4 im -60 1190: dc im -36 1191: 3f callpcrel 00001192 <.LM373>: 1192: 78 loadsp 32 1193: 87 im 7 1194: 2e eq 1195: 86 im 6 1196: a2 im 34 1197: 38 neqbranch 00001198 <.LM374>: 1198: 78 loadsp 32 1199: 88 im 8 119a: 2e eq 119b: 88 im 8 119c: 8e im 14 119d: 38 neqbranch 0000119e <.L282>: 119e: 0b nop 119f: 0b nop 11a0: 80 im 0 11a1: f7 im -9 11a2: 9c im 28 11a3: 51 storesp 4 11a4: 80 im 0 11a5: c4 im -60 11a6: c6 im -58 11a7: 3f callpcrel 000011a8 <.LM376>: 11a8: 78 loadsp 32 11a9: 88 im 8 11aa: 2e eq 11ab: 81 im 1 11ac: d3 im -45 11ad: 38 neqbranch 000011ae <.L283>: 11ae: 80 im 0 000011af <.LM378>: 11af: 70 loadsp 0 000011b0 <.LM379>: 11b0: 80 im 0 11b1: fb im -5 11b2: c4 im -60 11b3: 08 load 11b4: 70 loadsp 0 11b5: 33 loadb 11b6: 70 loadsp 0 11b7: 81 im 1 11b8: ff im -1 11b9: 06 and 000011ba <.LM380>: 11ba: 70 loadsp 0 11bb: 81 im 1 11bc: 2a lshiftright 11bd: 81 im 1 11be: 32 xor 11bf: 81 im 1 11c0: 06 and 11c1: 5b storesp 44 11c2: 59 storesp 36 11c3: 51 storesp 4 11c4: 56 storesp 24 11c5: 58 storesp 32 11c6: 5c storesp 48 11c7: 75 loadsp 20 11c8: 80 im 0 11c9: e9 im -23 11ca: 38 neqbranch 000011cb <.L287>: 11cb: 74 loadsp 16 11cc: 81 im 1 11cd: 32 xor 11ce: 70 loadsp 0 11cf: 81 im 1 11d0: 06 and 11d1: 51 storesp 4 11d2: 54 storesp 16 11d3: 73 loadsp 12 11d4: 88 im 8 11d5: b0 im 48 11d6: 38 neqbranch 000011d7 <.LM382>: 11d7: 74 loadsp 16 11d8: 83 im 3 11d9: 2a lshiftright 11da: 81 im 1 11db: 32 xor 11dc: 70 loadsp 0 11dd: 81 im 1 11de: 06 and 11df: 51 storesp 4 11e0: 54 storesp 16 11e1: 73 loadsp 12 11e2: 88 im 8 11e3: 91 im 17 11e4: 38 neqbranch 000011e5 <.LM383>: 11e5: 74 loadsp 16 11e6: 82 im 2 11e7: 2a lshiftright 11e8: 81 im 1 11e9: 32 xor 11ea: 70 loadsp 0 11eb: 81 im 1 11ec: 06 and 11ed: 51 storesp 4 11ee: 54 storesp 16 11ef: 73 loadsp 12 11f0: 87 im 7 11f1: f2 im -14 11f2: 38 neqbranch 000011f3 <.LM384>: 11f3: 80 im 0 11f4: fb im -5 11f5: bc im 60 11f6: 08 load 11f7: 70 loadsp 0 11f8: 33 loadb 11f9: 70 loadsp 0 11fa: 81 im 1 11fb: ff im -1 11fc: 06 and 11fd: 51 storesp 4 11fe: 55 storesp 20 11ff: 55 storesp 20 1200: 73 loadsp 12 1201: 80 im 0 1202: 2e eq 1203: 87 im 7 1204: c1 im -63 1205: 38 neqbranch 00001206 <.LM385>: 1206: 80 im 0 1207: c1 im -63 1208: bb im 59 1209: 3f callpcrel 0000120a <.LM386>: 120a: 80 im 0 120b: fb im -5 120c: c8 im -56 120d: 08 load 120e: 80 im 0 120f: fb im -5 1210: d8 im -40 1211: 08 load 1212: 55 storesp 20 1213: 55 storesp 20 1214: 74 loadsp 16 1215: 33 loadb 1216: 74 loadsp 16 1217: 34 storeb 00001218 <.LM387>: 1218: 80 im 0 1219: fb im -5 121a: c4 im -60 121b: 08 load 121c: 70 loadsp 0 121d: 33 loadb 121e: 70 loadsp 0 121f: 81 im 1 1220: ff im -1 1221: 06 and 00001222 <.LM388>: 1222: 70 loadsp 0 1223: 81 im 1 1224: 2a lshiftright 1225: 81 im 1 1226: 32 xor 1227: 81 im 1 1228: 06 and 1229: 59 storesp 36 122a: 57 storesp 28 122b: 51 storesp 4 122c: 54 storesp 16 122d: 75 loadsp 20 122e: 80 im 0 122f: 2e eq 1230: ff im -1 1231: 99 im 25 1232: 38 neqbranch 00001233 <.L388>: 1233: 81 im 1 1234: 19 addsp 36 1235: fd im -3 1236: 11 addsp 4 1237: 5e storesp 56 1238: 59 storesp 36 00001239 <.LM390>: 1239: 88 im 8 123a: 79 loadsp 36 123b: 25 lessthanorequal 123c: fb im -5 123d: a9 im 41 123e: 38 neqbranch 123f: 88 im 8 1240: 59 storesp 36 1241: 85 im 5 1242: 5d storesp 52 00001243 <.LM391>: 1243: 87 im 7 1244: a9 im 41 1245: c0 im -64 1246: 51 storesp 4 1247: e4 im -28 1248: ea im -22 1249: 3f callpcrel 0000124a <.LM392>: 124a: 80 im 0 124b: c0 im -64 124c: f7 im -9 124d: 3f callpcrel 0000124e <.LM393>: 124e: 80 im 0 124f: 58 storesp 32 1250: fb im -5 1251: a2 im 34 1252: 39 poppcrel 00001253 <.L374>: 1253: 76 loadsp 24 1254: 80 im 0 1255: 2e eq 1256: 87 im 7 1257: bf im 63 1258: 38 neqbranch 00001259 <.LM395>: 1259: 75 loadsp 20 125a: 08 load 125b: 77 loadsp 28 125c: 16 addsp 24 125d: 83 im 3 125e: 06 and 125f: 71 loadsp 4 1260: fc im -4 1261: 9f im 31 1262: ff im -1 1263: 06 and 1264: 71 loadsp 4 1265: 8c im 12 1266: 2b ashiftleft 1267: 07 or 00001268 <.LM396>: 1268: 78 loadsp 32 1269: 0c store 126a: 56 storesp 24 126b: 54 storesp 16 0000126c <.L361>: 126c: 80 im 0 0000126d <.LM398>: 126d: 70 loadsp 0 126e: 58 storesp 32 126f: 5c storesp 48 00001270 <.L391>: 1270: 87 im 7 1271: a9 im 41 1272: c0 im -64 1273: 51 storesp 4 1274: e4 im -28 1275: bd im 61 1276: 3f callpcrel 00001277 <.LM400>: 1277: 80 im 0 1278: c0 im -64 1279: ca im -54 127a: 3f callpcrel 0000127b <.LM401>: 127b: 80 im 0 127c: 58 storesp 32 127d: fa im -6 127e: f5 im -11 127f: 39 poppcrel 00001280 <.L387>: 1280: 7b loadsp 44 1281: 81 im 1 1282: 2e eq 1283: 09 not 1284: 81 im 1 1285: 06 and 1286: fe im -2 1287: a6 im 38 1288: 38 neqbranch 00001289 <.L231>: 1289: 80 im 0 128a: c0 im -64 128b: 58 storesp 32 0000128c <.L303>: 128c: 86 im 6 128d: b8 im 56 128e: 80 im 0 128f: 18 addsp 32 1290: 81 im 1 1291: 9f im 31 1292: e0 im -32 1293: 80 im 0 1294: 19 addsp 36 1295: 55 storesp 20 1296: 55 storesp 20 1297: 73 loadsp 12 1298: 33 loadb 1299: 75 loadsp 20 129a: 34 storeb 0000129b <.LM405>: 129b: 81 im 1 129c: 18 addsp 32 129d: 58 storesp 32 129e: 77 loadsp 28 129f: 88 im 8 12a0: 80 im 0 12a1: 2e eq 12a2: 09 not 12a3: 81 im 1 12a4: 06 and 12a5: e6 im -26 12a6: 38 neqbranch 000012a7 <.LM406>: 12a7: 83 im 3 12a8: a0 im 32 12a9: 80 im 0 12aa: 58 storesp 32 000012ab <.L307>: 12ab: 84 im 4 12ac: 80 im 0 12ad: 80 im 0 12ae: 18 addsp 32 12af: 81 im 1 12b0: 9c im 28 12b1: 80 im 0 12b2: 80 im 0 12b3: 19 addsp 36 12b4: 55 storesp 20 12b5: 55 storesp 20 12b6: 73 loadsp 12 12b7: 33 loadb 12b8: 75 loadsp 20 12b9: 34 storeb 000012ba <.LM408>: 12ba: 81 im 1 12bb: 18 addsp 32 12bc: 58 storesp 32 12bd: 77 loadsp 28 12be: 83 im 3 12bf: a0 im 32 12c0: 9f im 31 12c1: 2e eq 12c2: 09 not 12c3: 81 im 1 12c4: 06 and 12c5: e5 im -27 12c6: 38 neqbranch 000012c7 <.LM409>: 12c7: 83 im 3 12c8: a4 im 36 12c9: 80 im 0 12ca: 58 storesp 32 000012cb <.L311>: 12cb: 84 im 4 12cc: 80 im 0 12cd: 80 im 0 12ce: 18 addsp 32 12cf: 81 im 1 12d0: 9c im 28 12d1: 80 im 0 12d2: 80 im 0 12d3: 19 addsp 36 12d4: 55 storesp 20 12d5: 55 storesp 20 12d6: 73 loadsp 12 12d7: 33 loadb 12d8: 75 loadsp 20 12d9: 34 storeb 000012da <.LM411>: 12da: 81 im 1 12db: 18 addsp 32 12dc: 58 storesp 32 12dd: 77 loadsp 28 12de: 83 im 3 12df: a4 im 36 12e0: 9f im 31 12e1: 2e eq 12e2: 09 not 12e3: 81 im 1 12e4: 06 and 12e5: e5 im -27 12e6: 38 neqbranch 000012e7 <.LM412>: 12e7: 83 im 3 12e8: a8 im 40 12e9: 80 im 0 12ea: 58 storesp 32 000012eb <.L315>: 12eb: 84 im 4 12ec: 80 im 0 12ed: 80 im 0 12ee: 18 addsp 32 12ef: 81 im 1 12f0: 9c im 28 12f1: 80 im 0 12f2: 80 im 0 12f3: 19 addsp 36 12f4: 55 storesp 20 12f5: 55 storesp 20 12f6: 73 loadsp 12 12f7: 33 loadb 12f8: 75 loadsp 20 12f9: 34 storeb 000012fa <.LM414>: 12fa: 81 im 1 12fb: 18 addsp 32 12fc: 58 storesp 32 12fd: 77 loadsp 28 12fe: 83 im 3 12ff: a8 im 40 1300: 8f im 15 1301: 2e eq 1302: 09 not 1303: 81 im 1 1304: 06 and 1305: e5 im -27 1306: 38 neqbranch 00001307 <.LM415>: 1307: 80 im 0 1308: fb im -5 1309: c0 im -64 130a: 08 load 130b: 54 storesp 16 130c: 79 loadsp 36 130d: 74 loadsp 16 130e: 34 storeb 0000130f <.LM416>: 130f: 83 im 3 1310: e0 im -32 1311: ac im 44 1312: 08 load 1313: 51 storesp 4 1314: bf im 63 1315: c7 im -57 1316: 3f callpcrel 00001317 <.LM417>: 1317: 7a loadsp 40 1318: 80 im 0 1319: 2e eq 131a: a7 im 39 131b: 38 neqbranch 0000131c <.LM418>: 131c: 0b nop 131d: 0b nop 131e: 80 im 0 131f: f6 im -10 1320: 98 im 24 1321: 51 storesp 4 1322: 80 im 0 1323: c1 im -63 1324: c8 im -56 1325: 3f callpcrel 00001326 <.LM419>: 1326: 9e im 30 1327: c2 im -62 1328: a0 im 32 1329: 51 storesp 4 132a: e3 im -29 132b: 87 im 7 132c: 3f callpcrel 0000132d <.LM420>: 132d: 80 im 0 132e: 51 storesp 4 132f: e6 im -26 1330: b9 im 57 1331: 3f callpcrel 00001332 <.LM421>: 1332: 80 im 0 1333: fb im -5 1334: e4 im -28 1335: 08 load 1336: 54 storesp 16 1337: 80 im 0 1338: 74 loadsp 16 1339: 34 storeb 0000133a <.LM422>: 133a: e5 im -27 133b: b4 im 52 133c: 3f callpcrel 0000133d <.LM423>: 133d: 81 im 1 133e: 51 storesp 4 133f: e6 im -26 1340: a9 im 41 1341: 3f callpcrel 00001342 <.L316>: 1342: 80 im 0 1343: 51 storesp 4 1344: e6 im -26 1345: c8 im -56 1346: 3f callpcrel 1347: 80 im 0 1348: fc im -4 1349: b8 im 56 134a: 08 load 134b: 55 storesp 20 134c: f4 im -12 134d: a6 im 38 134e: 39 poppcrel 0000134f <.L379>: 134f: 81 im 1 1350: 80 im 0 1351: 51 storesp 4 1352: 80 im 0 1353: c1 im -63 1354: 92 im 18 1355: 3f callpcrel 00001356 <.LM426>: 1356: 83 im 3 1357: e2 im -30 1358: c8 im -56 1359: 51 storesp 4 135a: 80 im 0 135b: c1 im -63 135c: 90 im 16 135d: 3f callpcrel 0000135e <.LM427>: 135e: 0b nop 135f: 0b nop 1360: 80 im 0 1361: f7 im -9 1362: 8c im 12 1363: 51 storesp 4 1364: 80 im 0 1365: c1 im -63 1366: 86 im 6 1367: 3f callpcrel 00001368 <.LM428>: 1368: 78 loadsp 32 1369: 86 im 6 136a: 2e eq 136b: 09 not 136c: 81 im 1 136d: 06 and 136e: fb im -5 136f: f3 im -13 1370: 38 neqbranch 1371: 81 im 1 1372: a2 im 34 1373: 39 poppcrel 00001374 <.L378>: 1374: 81 im 1 1375: 80 im 0 1376: 51 storesp 4 1377: 80 im 0 1378: c0 im -64 1379: ed im -19 137a: 3f callpcrel 0000137b <.LM430>: 137b: 83 im 3 137c: e3 im -29 137d: d8 im -40 137e: 51 storesp 4 137f: 80 im 0 1380: c0 im -64 1381: eb im -21 1382: 3f callpcrel 00001383 <.LM431>: 1383: 0b nop 1384: 0b nop 1385: 80 im 0 1386: f7 im -9 1387: 84 im 4 1388: 51 storesp 4 1389: 80 im 0 138a: c0 im -64 138b: e1 im -31 138c: 3f callpcrel 0000138d <.LM432>: 138d: 78 loadsp 32 138e: 85 im 5 138f: 2e eq 1390: 09 not 1391: 81 im 1 1392: 06 and 1393: fb im -5 1394: b6 im 54 1395: 38 neqbranch 1396: ff im -1 1397: b7 im 55 1398: 39 poppcrel 00001399 <.L242>: 1399: 0b nop 139a: 0b nop 139b: 80 im 0 139c: f7 im -9 139d: a4 im 36 139e: 51 storesp 4 0000139f <.LM434>: 139f: 80 im 0 13a0: c0 im -64 13a1: cb im -53 13a2: 3f callpcrel 000013a3 <.LM435>: 13a3: 0b nop 13a4: 0b nop 13a5: 80 im 0 13a6: f9 im -7 13a7: c4 im -60 13a8: 51 storesp 4 13a9: 80 im 0 13aa: c0 im -64 13ab: c1 im -63 13ac: 3f callpcrel 000013ad <.LM436>: 13ad: 0b nop 13ae: 0b nop 13af: 80 im 0 13b0: f6 im -10 13b1: dc im -36 13b2: 51 storesp 4 13b3: 80 im 0 13b4: c0 im -64 13b5: b7 im 55 13b6: 3f callpcrel 000013b7 <.LM437>: 13b7: 80 im 0 13b8: fc im -4 13b9: c4 im -60 13ba: 08 load 13bb: 70 loadsp 0 13bc: 08 load 13bd: 70 loadsp 0 13be: 8c im 12 13bf: 2c ashiftright 13c0: 8f im 15 13c1: 06 and 13c2: 57 storesp 28 13c3: 55 storesp 20 13c4: 56 storesp 24 000013c5 <.LM438>: 13c5: 78 loadsp 32 13c6: 81 im 1 13c7: 2e eq 13c8: 09 not 13c9: 81 im 1 13ca: 06 and 13cb: f9 im -7 13cc: e5 im -27 13cd: 38 neqbranch 13ce: fd im -3 13cf: 83 im 3 13d0: 39 poppcrel 000013d1 <.L377>: 13d1: 81 im 1 13d2: 80 im 0 13d3: 51 storesp 4 13d4: 80 im 0 13d5: c0 im -64 13d6: 90 im 16 13d7: 3f callpcrel 000013d8 <.LM440>: 13d8: 83 im 3 13d9: e3 im -29 13da: 98 im 24 13db: 51 storesp 4 13dc: 80 im 0 13dd: c0 im -64 13de: 8e im 14 13df: 3f callpcrel 000013e0 <.LM441>: 13e0: 0b nop 13e1: 0b nop 13e2: 80 im 0 13e3: f6 im -10 13e4: fc im -4 13e5: 51 storesp 4 13e6: 80 im 0 13e7: c0 im -64 13e8: 84 im 4 13e9: 3f callpcrel 000013ea <.LM442>: 13ea: 78 loadsp 32 13eb: 84 im 4 13ec: 2e eq 13ed: 09 not 13ee: 81 im 1 13ef: 06 and 13f0: fa im -6 13f1: c1 im -63 13f2: 38 neqbranch 13f3: fe im -2 13f4: ff im -1 13f5: 39 poppcrel 000013f6 <.L376>: 13f6: 76 loadsp 24 13f7: 80 im 0 13f8: 2e eq 13f9: 82 im 2 13fa: fa im -6 13fb: 38 neqbranch 000013fc <.LM444>: 13fc: 76 loadsp 24 13fd: 15 addsp 20 000013fe <.LM445>: 13fe: 70 loadsp 0 13ff: 09 not 1400: 70 loadsp 0 1401: 9f im 31 1402: 2c ashiftright 1403: 72 loadsp 8 1404: 06 and 00001405 <.LM446>: 1405: 78 loadsp 32 1406: 08 load 1407: 52 storesp 8 1408: bf im 63 1409: 06 and 140a: 71 loadsp 4 140b: c0 im -64 140c: 06 and 140d: 07 or 140e: 78 loadsp 32 140f: 0c store 1410: 55 storesp 20 1411: 55 storesp 20 1412: fc im -4 1413: d8 im -40 1414: 39 poppcrel 00001415 <.L380>: 1415: 81 im 1 1416: 80 im 0 1417: 51 storesp 4 1418: bf im 63 1419: cd im -51 141a: 3f callpcrel 141b: fa im -6 141c: c6 im -58 141d: 39 poppcrel 0000141e <.L375>: 141e: 74 loadsp 16 141f: f9 im -7 1420: a9 im 41 1421: 38 neqbranch 00001422 <.LM449>: 1422: 0b nop 1423: 0b nop 1424: 80 im 0 1425: f7 im -9 1426: b4 im 52 1427: 51 storesp 4 00001428 <.LM450>: 1428: bf im 63 1429: c3 im -61 142a: 3f callpcrel 0000142b <.LM451>: 142b: 0b nop 142c: 0b nop 142d: 80 im 0 142e: f9 im -7 142f: c4 im -60 1430: 51 storesp 4 1431: bf im 63 1432: ba im 58 1433: 3f callpcrel 00001434 <.LM452>: 1434: 0b nop 1435: 0b nop 1436: 80 im 0 1437: f6 im -10 1438: e8 im -24 1439: 51 storesp 4 143a: bf im 63 143b: b1 im 49 143c: 3f callpcrel 0000143d <.LM453>: 143d: 80 im 0 143e: fc im -4 143f: c4 im -60 1440: 08 load 1441: 70 loadsp 0 1442: 08 load 1443: bf im 63 1444: 06 and 1445: 56 storesp 24 1446: 56 storesp 24 00001447 <.LM454>: 1447: 78 loadsp 32 1448: 82 im 2 1449: 2e eq 144a: 09 not 144b: 81 im 1 144c: 06 and 144d: f9 im -7 144e: a9 im 41 144f: 38 neqbranch 1450: ff im -1 1451: a4 im 36 1452: 39 poppcrel 00001453 <.L249>: 1453: 0b nop 1454: 0b nop 1455: 80 im 0 1456: f7 im -9 1457: c4 im -60 1458: 51 storesp 4 00001459 <.LM456>: 1459: bf im 63 145a: 92 im 18 145b: 3f callpcrel 0000145c <.LM457>: 145c: 0b nop 145d: 0b nop 145e: 80 im 0 145f: f9 im -7 1460: c4 im -60 1461: 51 storesp 4 1462: bf im 63 1463: 89 im 9 1464: 3f callpcrel 00001465 <.LM458>: 1465: 0b nop 1466: 0b nop 1467: 80 im 0 1468: f6 im -10 1469: e8 im -24 146a: 51 storesp 4 146b: bf im 63 146c: 80 im 0 146d: 3f callpcrel 0000146e <.LM459>: 146e: 80 im 0 146f: fc im -4 1470: c4 im -60 1471: 08 load 1472: 70 loadsp 0 1473: 08 load 1474: bf im 63 1475: 06 and 1476: 56 storesp 24 1477: 56 storesp 24 00001478 <.LM460>: 1478: 78 loadsp 32 1479: 82 im 2 147a: 2e eq 147b: 09 not 147c: 81 im 1 147d: 06 and 147e: f8 im -8 147f: f8 im -8 1480: 38 neqbranch 1481: fe im -2 1482: f3 im -13 1483: 39 poppcrel 00001484 <.L241>: 1484: 0b nop 1485: 0b nop 1486: 80 im 0 1487: f7 im -9 1488: e0 im -32 1489: 51 storesp 4 0000148a <.LM462>: 148a: be im 62 148b: e1 im -31 148c: 3f callpcrel 0000148d <.LM463>: 148d: 0b nop 148e: 0b nop 148f: 80 im 0 1490: f9 im -7 1491: c4 im -60 1492: 51 storesp 4 1493: be im 62 1494: d8 im -40 1495: 3f callpcrel 00001496 <.LM464>: 1496: 0b nop 1497: 0b nop 1498: 80 im 0 1499: f6 im -10 149a: dc im -36 149b: 51 storesp 4 149c: be im 62 149d: cf im -49 149e: 3f callpcrel 0000149f <.LM465>: 149f: 80 im 0 14a0: fc im -4 14a1: c4 im -60 14a2: 08 load 14a3: 70 loadsp 0 14a4: 08 load 14a5: 70 loadsp 0 14a6: 8c im 12 14a7: 2c ashiftright 14a8: 8f im 15 14a9: 06 and 14aa: 57 storesp 28 14ab: 55 storesp 20 14ac: 56 storesp 24 000014ad <.LM466>: 14ad: 78 loadsp 32 14ae: 81 im 1 14af: 2e eq 14b0: 09 not 14b1: 81 im 1 14b2: 06 and 14b3: f7 im -9 14b4: fd im -3 14b5: 38 neqbranch 14b6: fb im -5 14b7: 9b im 27 14b8: 39 poppcrel 000014b9 <.L385>: 14b9: 7b loadsp 44 14ba: 81 im 1 14bb: 2e eq 14bc: 09 not 14bd: 81 im 1 14be: 06 and 14bf: f9 im -7 14c0: dd im -35 14c1: 38 neqbranch 000014c2 <.LM468>: 14c2: 7b loadsp 44 14c3: 5b storesp 44 14c4: fb im -5 14c5: c3 im -61 14c6: 39 poppcrel 000014c7 <.L373>: 14c7: 74 loadsp 16 14c8: f7 im -9 14c9: b6 im 54 14ca: 38 neqbranch 000014cb <.LM470>: 14cb: 0b nop 14cc: 0b nop 14cd: 80 im 0 14ce: f7 im -9 14cf: f4 im -12 14d0: 51 storesp 4 000014d1 <.LM471>: 14d1: be im 62 14d2: 9a im 26 14d3: 3f callpcrel 000014d4 <.LM472>: 14d4: 0b nop 14d5: 0b nop 14d6: 80 im 0 14d7: f9 im -7 14d8: c4 im -60 14d9: 51 storesp 4 14da: be im 62 14db: 91 im 17 14dc: 3f callpcrel 000014dd <.LM473>: 14dd: 0b nop 14de: 0b nop 14df: 80 im 0 14e0: f6 im -10 14e1: dc im -36 14e2: 51 storesp 4 14e3: be im 62 14e4: 88 im 8 14e5: 3f callpcrel 000014e6 <.LM474>: 14e6: 80 im 0 14e7: fc im -4 14e8: c4 im -60 14e9: 08 load 14ea: 70 loadsp 0 14eb: 08 load 14ec: 70 loadsp 0 14ed: 8c im 12 14ee: 2c ashiftright 14ef: 8f im 15 14f0: 06 and 14f1: 57 storesp 28 14f2: 55 storesp 20 14f3: 56 storesp 24 000014f4 <.LM475>: 14f4: 78 loadsp 32 14f5: 81 im 1 14f6: 2e eq 14f7: 09 not 14f8: 81 im 1 14f9: 06 and 14fa: f7 im -9 14fb: b6 im 54 14fc: 38 neqbranch 14fd: fa im -6 14fe: d4 im -44 14ff: 39 poppcrel 00001500 <.L240>: 1500: 0b nop 1501: 0b nop 1502: 80 im 0 1503: f7 im -9 1504: fc im -4 1505: 51 storesp 4 00001506 <.LM477>: 1506: bd im 61 1507: e5 im -27 1508: 3f callpcrel 00001509 <.LM478>: 1509: 0b nop 150a: 0b nop 150b: 80 im 0 150c: f9 im -7 150d: c4 im -60 150e: 51 storesp 4 150f: bd im 61 1510: dc im -36 1511: 3f callpcrel 00001512 <.LM479>: 1512: 0b nop 1513: 0b nop 1514: 80 im 0 1515: f6 im -10 1516: dc im -36 1517: 51 storesp 4 1518: bd im 61 1519: d3 im -45 151a: 3f callpcrel 0000151b <.LM480>: 151b: 80 im 0 151c: fc im -4 151d: c4 im -60 151e: 08 load 151f: 70 loadsp 0 1520: 08 load 1521: 70 loadsp 0 1522: 8c im 12 1523: 2c ashiftright 1524: 8f im 15 1525: 06 and 1526: 57 storesp 28 1527: 55 storesp 20 1528: 56 storesp 24 00001529 <.LM481>: 1529: 78 loadsp 32 152a: 81 im 1 152b: 2e eq 152c: 09 not 152d: 81 im 1 152e: 06 and 152f: f7 im -9 1530: 81 im 1 1531: 38 neqbranch 1532: fa im -6 1533: 9f im 31 1534: 39 poppcrel 00001535 <.L381>: 1535: 78 loadsp 32 1536: 84 im 4 1537: 2e eq 1538: b6 im 54 1539: 38 neqbranch 153a: 78 loadsp 32 153b: 84 im 4 153c: 24 lessthan 153d: 94 im 20 153e: 38 neqbranch 153f: 78 loadsp 32 1540: 83 im 3 1541: 2e eq 1542: 83 im 3 1543: d9 im -39 1544: 38 neqbranch 00001545 <.L263>: 1545: fe im -2 1546: 19 addsp 36 1547: 83 im 3 1548: e0 im -32 1549: b4 im 52 154a: 0c store 0000154b <.L392>: 154b: 80 im 0 0000154c <.LM485>: 154c: 70 loadsp 0 154d: 58 storesp 32 154e: 5c storesp 48 154f: fa im -6 1550: 9f im 31 1551: 39 poppcrel 00001552 <.L268>: 1552: 78 loadsp 32 1553: 85 im 5 1554: 2e eq 1555: 83 im 3 1556: cd im -51 1557: 38 neqbranch 1558: 78 loadsp 32 1559: 86 im 6 155a: 2e eq 155b: 09 not 155c: 81 im 1 155d: 06 and 155e: e6 im -26 155f: 38 neqbranch 00001560 <.LM487>: 1560: 83 im 3 1561: e0 im -32 1562: b8 im 56 1563: 51 storesp 4 00001564 <.L364>: 1564: ea im -22 1565: fe im -2 1566: 3f callpcrel 00001567 <.LM488>: 1567: fe im -2 1568: 19 addsp 36 1569: 83 im 3 156a: e0 im -32 156b: b4 im 52 156c: 0c store 156d: dd im -35 156e: 39 poppcrel 0000156f <.L265>: 156f: 83 im 3 1570: e3 im -29 1571: d8 im -40 1572: 51 storesp 4 1573: f0 im -16 1574: 39 poppcrel 00001575 <.L255>: 1575: 81 im 1 1576: 80 im 0 1577: 51 storesp 4 1578: bc im 60 1579: ed im -19 157a: 3f callpcrel 0000157b <.LM491>: 157b: 81 im 1 157c: 15 addsp 20 157d: 70 loadsp 0 157e: 83 im 3 157f: c1 im -63 1580: 9c im 28 1581: 35 div 1582: 70 loadsp 0 1583: 83 im 3 1584: ff im -1 1585: ff im -1 1586: 06 and 1587: 53 storesp 12 1588: 51 storesp 4 1589: 54 storesp 16 158a: bd im 61 158b: f0 im -16 158c: 3f callpcrel 0000158d <.LM492>: 158d: 0b nop 158e: 0b nop 158f: 80 im 0 1590: f6 im -10 1591: f0 im -16 1592: 51 storesp 4 1593: bc im 60 1594: d8 im -40 1595: 3f callpcrel 00001596 <.LM493>: 1596: 78 loadsp 32 1597: 83 im 3 1598: 2e eq 1599: 09 not 159a: 81 im 1 159b: 06 and 159c: f6 im -10 159d: fd im -3 159e: 38 neqbranch 159f: fc im -4 15a0: b0 im 48 15a1: 39 poppcrel 000015a2 <.L384>: 15a2: 81 im 1 15a3: 80 im 0 15a4: 51 storesp 4 15a5: bc im 60 15a6: c0 im -64 15a7: 3f callpcrel 15a8: f7 im -9 15a9: de im -34 15aa: 39 poppcrel 000015ab <.L386>: 15ab: 81 im 1 15ac: 80 im 0 15ad: 51 storesp 4 15ae: bc im 60 15af: b7 im 55 15b0: 3f callpcrel 000015b1 <.LM496>: 15b1: 0b nop 15b2: 0b nop 15b3: 80 im 0 15b4: f7 im -9 15b5: 9c im 28 15b6: 51 storesp 4 15b7: bc im 60 15b8: b4 im 52 15b9: 3f callpcrel 000015ba <.LM497>: 15ba: 78 loadsp 32 15bb: 88 im 8 15bc: 2e eq 15bd: 09 not 15be: 81 im 1 15bf: 06 and 15c0: f7 im -9 15c1: ec im -20 15c2: 38 neqbranch 15c3: f9 im -7 15c4: bb im 59 15c5: 39 poppcrel 000015c6 <.L390>: 15c6: 81 im 1 15c7: 5c storesp 48 000015c8 <.L298>: 15c8: 74 loadsp 16 15c9: 33 loadb 15ca: 70 loadsp 0 15cb: 81 im 1 15cc: ff im -1 15cd: 06 and 15ce: 51 storesp 4 15cf: 54 storesp 16 15d0: 73 loadsp 12 15d1: f4 im -12 15d2: 94 im 20 15d3: 38 neqbranch 15d4: 74 loadsp 16 15d5: 33 loadb 15d6: 70 loadsp 0 15d7: 81 im 1 15d8: ff im -1 15d9: 06 and 15da: 51 storesp 4 15db: 54 storesp 16 15dc: 73 loadsp 12 15dd: 80 im 0 15de: 2e eq 15df: e8 im -24 15e0: 38 neqbranch 15e1: f4 im -12 15e2: 84 im 4 15e3: 39 poppcrel 000015e4 <.L356>: 15e4: ff im -1 15e5: 57 storesp 28 000015e6 <.LM501>: 15e6: 87 im 7 15e7: a9 im 41 15e8: c0 im -64 15e9: 51 storesp 4 15ea: dd im -35 15eb: c7 im -57 15ec: 3f callpcrel 000015ed <.LM502>: 15ed: b9 im 57 15ee: d5 im -43 15ef: 3f callpcrel 000015f0 <.LM503>: 15f0: 80 im 0 15f1: 58 storesp 32 15f2: f4 im -12 15f3: 80 im 0 15f4: 39 poppcrel 000015f5 <.L355>: 15f5: 81 im 1 15f6: 57 storesp 28 000015f7 <.LM505>: 15f7: 87 im 7 15f8: a9 im 41 15f9: c0 im -64 15fa: 51 storesp 4 15fb: dd im -35 15fc: b6 im 54 15fd: 3f callpcrel 000015fe <.LM506>: 15fe: b9 im 57 15ff: c4 im -60 1600: 3f callpcrel 00001601 <.LM507>: 1601: 80 im 0 1602: 58 storesp 32 1603: f3 im -13 1604: ef im -17 1605: 39 poppcrel 00001606 <.L389>: 1606: ff im -1 1607: 19 addsp 36 1608: fd im -3 1609: 11 addsp 4 160a: 5e storesp 56 160b: 59 storesp 36 0000160c <.LM509>: 160c: 78 loadsp 32 160d: 80 im 0 160e: 25 lessthanorequal 160f: f3 im -13 1610: d6 im -42 1611: 38 neqbranch 1612: 75 loadsp 20 1613: 59 storesp 36 1614: f3 im -13 1615: cf im -49 1616: 39 poppcrel 00001617 <.L246>: 1617: 81 im 1 1618: 80 im 0 1619: 51 storesp 4 161a: bb im 59 161b: cb im -53 161c: 3f callpcrel 161d: f5 im -11 161e: 93 im 19 161f: 39 poppcrel 00001620 <.L383>: 1620: 80 im 0 1621: 58 storesp 32 00001622 <.L278>: 1622: 83 im 3 1623: e3 im -29 1624: 98 im 24 1625: 18 addsp 32 1626: 70 loadsp 0 1627: 33 loadb 00001628 <.LM513>: 1628: 83 im 3 1629: e3 im -29 162a: d8 im -40 162b: 1a addsp 40 162c: 57 storesp 28 162d: 58 storesp 32 162e: 54 storesp 16 162f: 74 loadsp 16 1630: 33 loadb 1631: 74 loadsp 16 1632: 34 storeb 00001633 <.LM514>: 1633: 83 im 3 1634: e2 im -30 1635: c8 im -56 1636: 18 addsp 32 1637: 56 storesp 24 1638: 75 loadsp 20 1639: 33 loadb 163a: 75 loadsp 20 163b: 34 storeb 0000163c <.LM515>: 163c: 83 im 3 163d: e0 im -32 163e: b8 im 56 163f: 18 addsp 32 1640: 54 storesp 16 1641: 73 loadsp 12 1642: 33 loadb 1643: 76 loadsp 24 1644: 34 storeb 00001645 <.LM516>: 1645: 76 loadsp 24 1646: 74 loadsp 16 1647: 34 storeb 00001648 <.LM517>: 1648: 81 im 1 1649: 18 addsp 32 164a: 58 storesp 32 164b: 77 loadsp 28 164c: 8f im 15 164d: 2e eq 164e: f8 im -8 164f: 9c im 28 1650: 38 neqbranch 00001651 <.LM518>: 1651: 83 im 3 1652: e3 im -29 1653: 98 im 24 1654: 18 addsp 32 1655: 70 loadsp 0 1656: 33 loadb 00001657 <.LM519>: 1657: 83 im 3 1658: e3 im -29 1659: d8 im -40 165a: 1a addsp 40 165b: 57 storesp 28 165c: 58 storesp 32 165d: 54 storesp 16 165e: 74 loadsp 16 165f: 33 loadb 1660: 74 loadsp 16 1661: 34 storeb 00001662 <.LM520>: 1662: 83 im 3 1663: e2 im -30 1664: c8 im -56 1665: 18 addsp 32 1666: 56 storesp 24 1667: 75 loadsp 20 1668: 33 loadb 1669: 75 loadsp 20 166a: 34 storeb 0000166b <.LM521>: 166b: 83 im 3 166c: e0 im -32 166d: b8 im 56 166e: 18 addsp 32 166f: 54 storesp 16 1670: 73 loadsp 12 1671: 33 loadb 1672: 76 loadsp 24 1673: 34 storeb 00001674 <.LM522>: 1674: 76 loadsp 24 1675: 74 loadsp 16 1676: 34 storeb 00001677 <.LM523>: 1677: 81 im 1 1678: 18 addsp 32 1679: 58 storesp 32 167a: 77 loadsp 28 167b: 8f im 15 167c: 2e eq 167d: 09 not 167e: 81 im 1 167f: 06 and 1680: ff im -1 1681: a0 im 32 1682: 38 neqbranch 1683: f7 im -9 1684: e7 im -25 1685: 39 poppcrel 00001686 <.L382>: 1686: 80 im 0 1687: 58 storesp 32 00001688 <.L273>: 1688: 83 im 3 1689: e0 im -32 168a: b8 im 56 168b: 18 addsp 32 168c: 70 loadsp 0 168d: 33 loadb 0000168e <.LM526>: 168e: 83 im 3 168f: e2 im -30 1690: c8 im -56 1691: 1a addsp 40 1692: 57 storesp 28 1693: 58 storesp 32 1694: 54 storesp 16 1695: 74 loadsp 16 1696: 33 loadb 1697: 74 loadsp 16 1698: 34 storeb 00001699 <.LM527>: 1699: 83 im 3 169a: e3 im -29 169b: d8 im -40 169c: 18 addsp 32 169d: 56 storesp 24 169e: 75 loadsp 20 169f: 33 loadb 16a0: 75 loadsp 20 16a1: 34 storeb 000016a2 <.LM528>: 16a2: 83 im 3 16a3: e3 im -29 16a4: 98 im 24 16a5: 18 addsp 32 16a6: 54 storesp 16 16a7: 73 loadsp 12 16a8: 33 loadb 16a9: 76 loadsp 24 16aa: 34 storeb 000016ab <.LM529>: 16ab: 76 loadsp 24 16ac: 74 loadsp 16 16ad: 34 storeb 000016ae <.LM530>: 16ae: 81 im 1 16af: 18 addsp 32 16b0: 58 storesp 32 16b1: 77 loadsp 28 16b2: 8f im 15 16b3: 2e eq 16b4: f7 im -9 16b5: b6 im 54 16b6: 38 neqbranch 000016b7 <.LM531>: 16b7: 83 im 3 16b8: e0 im -32 16b9: b8 im 56 16ba: 18 addsp 32 16bb: 70 loadsp 0 16bc: 33 loadb 000016bd <.LM532>: 16bd: 83 im 3 16be: e2 im -30 16bf: c8 im -56 16c0: 1a addsp 40 16c1: 57 storesp 28 16c2: 58 storesp 32 16c3: 54 storesp 16 16c4: 74 loadsp 16 16c5: 33 loadb 16c6: 74 loadsp 16 16c7: 34 storeb 000016c8 <.LM533>: 16c8: 83 im 3 16c9: e3 im -29 16ca: d8 im -40 16cb: 18 addsp 32 16cc: 56 storesp 24 16cd: 75 loadsp 20 16ce: 33 loadb 16cf: 75 loadsp 20 16d0: 34 storeb 000016d1 <.LM534>: 16d1: 83 im 3 16d2: e3 im -29 16d3: 98 im 24 16d4: 18 addsp 32 16d5: 54 storesp 16 16d6: 73 loadsp 12 16d7: 33 loadb 16d8: 76 loadsp 24 16d9: 34 storeb 000016da <.LM535>: 16da: 76 loadsp 24 16db: 74 loadsp 16 16dc: 34 storeb 000016dd <.LM536>: 16dd: 81 im 1 16de: 18 addsp 32 16df: 58 storesp 32 16e0: 77 loadsp 28 16e1: 8f im 15 16e2: 2e eq 16e3: 09 not 16e4: 81 im 1 16e5: 06 and 16e6: ff im -1 16e7: a0 im 32 16e8: 38 neqbranch 16e9: f7 im -9 16ea: 81 im 1 16eb: 39 poppcrel 000016ec <.L250>: 16ec: 0b nop 16ed: 0b nop 16ee: 80 im 0 16ef: f8 im -8 16f0: 84 im 4 16f1: 51 storesp 4 000016f2 <.LM538>: 16f2: b9 im 57 16f3: f9 im -7 16f4: 3f callpcrel 000016f5 <.LM539>: 16f5: 0b nop 16f6: 0b nop 16f7: 80 im 0 16f8: f9 im -7 16f9: c4 im -60 16fa: 51 storesp 4 16fb: b9 im 57 16fc: f0 im -16 16fd: 3f callpcrel 000016fe <.LM540>: 16fe: 0b nop 16ff: 0b nop 1700: 80 im 0 1701: f6 im -10 1702: e8 im -24 1703: 51 storesp 4 1704: b9 im 57 1705: e7 im -25 1706: 3f callpcrel 00001707 <.LM541>: 1707: 80 im 0 1708: fc im -4 1709: c4 im -60 170a: 08 load 170b: 70 loadsp 0 170c: 08 load 170d: bf im 63 170e: 06 and 170f: 56 storesp 24 1710: 56 storesp 24 00001711 <.LM542>: 1711: 78 loadsp 32 1712: 82 im 2 1713: 2e eq 1714: 09 not 1715: 81 im 1 1716: 06 and 1717: f3 im -13 1718: df im -33 1719: 38 neqbranch 171a: f9 im -7 171b: da im -38 171c: 39 poppcrel 0000171d <.L264>: 171d: 83 im 3 171e: e3 im -29 171f: 98 im 24 1720: 51 storesp 4 1721: fc im -4 1722: c1 im -63 1723: 39 poppcrel 00001724 <.L266>: 1724: 83 im 3 1725: e2 im -30 1726: c8 im -56 1727: 51 storesp 4 1728: fc im -4 1729: ba im 58 172a: 39 poppcrel 0000172b <.L251>: 172b: 0b nop 172c: 0b nop 172d: 80 im 0 172e: f8 im -8 172f: 98 im 24 1730: 51 storesp 4 00001731 <.LM546>: 1731: b9 im 57 1732: ba im 58 1733: 3f callpcrel 00001734 <.LM547>: 1734: 0b nop 1735: 0b nop 1736: 80 im 0 1737: f9 im -7 1738: c4 im -60 1739: 51 storesp 4 173a: b9 im 57 173b: b1 im 49 173c: 3f callpcrel 0000173d <.LM548>: 173d: 0b nop 173e: 0b nop 173f: 80 im 0 1740: f6 im -10 1741: e8 im -24 1742: 51 storesp 4 1743: b9 im 57 1744: a8 im 40 1745: 3f callpcrel 00001746 <.LM549>: 1746: 80 im 0 1747: fc im -4 1748: c4 im -60 1749: 08 load 174a: 70 loadsp 0 174b: 08 load 174c: bf im 63 174d: 06 and 174e: 56 storesp 24 174f: 56 storesp 24 00001750 <.LM550>: 1750: 78 loadsp 32 1751: 82 im 2 1752: 2e eq 1753: 09 not 1754: 81 im 1 1755: 06 and 1756: f3 im -13 1757: a0 im 32 1758: 38 neqbranch 1759: f9 im -7 175a: 9b im 27 175b: 39 poppcrel 0000175c : 175c: fc im -4 175d: 3d pushspadd 175e: 0d popsp 175f: 76 loadsp 24 1760: 80 im 0 1761: fc im -4 1762: a4 im 36 1763: 08 load 1764: 55 storesp 20 1765: 55 storesp 20 00001766 <.L394>: 1766: 73 loadsp 12 1767: 08 load 1768: 70 loadsp 0 1769: 81 im 1 176a: 32 xor 176b: 70 loadsp 0 176c: 81 im 1 176d: 06 and 176e: 51 storesp 4 176f: 51 storesp 4 1770: 53 storesp 12 1771: 72 loadsp 8 1772: f3 im -13 1773: 38 neqbranch 00001774 <.LM553>: 1774: 83 im 3 1775: e3 im -29 1776: 8c im 12 1777: 08 load 1778: 86 im 6 1779: 05 add 177a: 51 storesp 4 177b: b3 im 51 177c: f2 im -14 177d: 3f callpcrel 0000177e <.LM554>: 177e: 80 im 0 177f: fc im -4 1780: a4 im 36 1781: 08 load 1782: 70 loadsp 0 1783: 08 load 1784: 70 loadsp 0 1785: 81 im 1 1786: 06 and 1787: 51 storesp 4 1788: 51 storesp 4 1789: 53 storesp 12 178a: 72 loadsp 8 178b: 80 im 0 178c: 2e eq 178d: 93 im 19 178e: 38 neqbranch 0000178f <.L410>: 178f: eb im -21 1790: c8 im -56 1791: 3f callpcrel 1792: 80 im 0 1793: fc im -4 1794: a4 im 36 1795: 08 load 1796: 70 loadsp 0 1797: 08 load 1798: 70 loadsp 0 1799: 81 im 1 179a: 06 and 179b: 51 storesp 4 179c: 51 storesp 4 179d: 53 storesp 12 179e: 72 loadsp 8 179f: ef im -17 17a0: 38 neqbranch 000017a1 <.L406>: 17a1: b4 im 52 17a2: c3 im -61 17a3: 3f callpcrel 17a4: 83 im 3 17a5: e0 im -32 17a6: 80 im 0 17a7: 08 load 17a8: 75 loadsp 20 17a9: 34 storeb 000017aa <.LM556>: 17aa: b4 im 52 17ab: ba im 58 17ac: 3f callpcrel 17ad: 83 im 3 17ae: e0 im -32 17af: 80 im 0 17b0: 08 load 17b1: 81 im 1 17b2: 16 addsp 24 17b3: 34 storeb 000017b4 <.LM557>: 17b4: b4 im 52 17b5: b0 im 48 17b6: 3f callpcrel 17b7: 83 im 3 17b8: e0 im -32 17b9: 80 im 0 17ba: 08 load 17bb: 82 im 2 17bc: 16 addsp 24 17bd: 34 storeb 000017be <.LM558>: 17be: b4 im 52 17bf: a6 im 38 17c0: 3f callpcrel 17c1: 83 im 3 17c2: e0 im -32 17c3: 80 im 0 17c4: 08 load 17c5: 83 im 3 17c6: 16 addsp 24 17c7: 34 storeb 000017c8 <.LM559>: 17c8: b4 im 52 17c9: 9c im 28 17ca: 3f callpcrel 17cb: 83 im 3 17cc: e0 im -32 17cd: 80 im 0 17ce: 08 load 17cf: 84 im 4 17d0: 16 addsp 24 17d1: 34 storeb 17d2: 80 im 0 17d3: fc im -4 17d4: a4 im 36 17d5: 08 load 17d6: 54 storesp 16 000017d7 <.L399>: 17d7: 73 loadsp 12 17d8: 08 load 17d9: 70 loadsp 0 17da: 81 im 1 17db: 32 xor 17dc: 70 loadsp 0 17dd: 81 im 1 17de: 06 and 17df: 51 storesp 4 17e0: 51 storesp 4 17e1: 53 storesp 12 17e2: 72 loadsp 8 17e3: f3 im -13 17e4: 38 neqbranch 000017e5 <.LM561>: 17e5: 0b nop 17e6: 0b nop 17e7: 80 im 0 17e8: f8 im -8 17e9: b4 im 52 17ea: 51 storesp 4 17eb: b8 im 56 17ec: 80 im 0 17ed: 3f callpcrel 000017ee <.LM562>: 17ee: 74 loadsp 16 17ef: 33 loadb 17f0: 83 im 3 17f1: e0 im -32 17f2: c8 im -56 17f3: 34 storeb 000017f4 <.LM563>: 17f4: 81 im 1 17f5: 15 addsp 20 17f6: 33 loadb 17f7: 83 im 3 17f8: e0 im -32 17f9: c9 im -55 17fa: 34 storeb 000017fb <.LM564>: 17fb: 82 im 2 17fc: 15 addsp 20 17fd: 33 loadb 17fe: 83 im 3 17ff: e0 im -32 1800: ca im -54 1801: 34 storeb 00001802 <.LM565>: 1802: 83 im 3 1803: 15 addsp 20 1804: 33 loadb 1805: 83 im 3 1806: e0 im -32 1807: cb im -53 1808: 34 storeb 00001809 <.LM566>: 1809: 84 im 4 180a: 52 storesp 8 180b: 83 im 3 180c: e0 im -32 180d: c8 im -56 180e: 51 storesp 4 180f: dd im -35 1810: df im -33 1811: 3f callpcrel 1812: 83 im 3 1813: e0 im -32 1814: 80 im 0 1815: 08 load 1816: 81 im 1 1817: ff im -1 1818: 06 and 00001819 <.LM567>: 1819: 75 loadsp 20 181a: 33 loadb 181b: 52 storesp 8 181c: 53 storesp 12 181d: b8 im 56 181e: dd im -35 181f: 3f callpcrel 00001820 <.LM568>: 1820: 81 im 1 1821: 15 addsp 20 1822: 33 loadb 1823: 51 storesp 4 1824: b8 im 56 1825: d6 im -42 1826: 3f callpcrel 00001827 <.LM569>: 1827: 82 im 2 1828: 15 addsp 20 1829: 33 loadb 182a: 51 storesp 4 182b: b8 im 56 182c: cf im -49 182d: 3f callpcrel 0000182e <.LM570>: 182e: 83 im 3 182f: 15 addsp 20 1830: 33 loadb 1831: 51 storesp 4 1832: b8 im 56 1833: c8 im -56 1834: 3f callpcrel 00001835 <.LM571>: 1835: 84 im 4 1836: 15 addsp 20 1837: 33 loadb 1838: 51 storesp 4 1839: b8 im 56 183a: c1 im -63 183b: 3f callpcrel 0000183c <.LM572>: 183c: 72 loadsp 8 183d: 51 storesp 4 183e: b8 im 56 183f: bc im 60 1840: 3f callpcrel 00001841 <.LM573>: 1841: 84 im 4 1842: 15 addsp 20 1843: 33 loadb 1844: 55 storesp 20 1845: 72 loadsp 8 1846: 75 loadsp 20 1847: 2e eq 1848: bd im 61 1849: 38 neqbranch 0000184a <.LM574>: 184a: 0b nop 184b: 0b nop 184c: 80 im 0 184d: f8 im -8 184e: bc im 60 184f: 51 storesp 4 1850: b7 im 55 1851: 9b im 27 1852: 3f callpcrel 00001853 <.LM575>: 1853: 83 im 3 1854: e3 im -29 1855: 8c im 12 1856: 08 load 1857: a8 im 40 1858: 2e eq 1859: 80 im 0 185a: cb im -53 185b: 38 neqbranch 0000185c <.L403>: 185c: a8 im 40 185d: 0b nop 185e: 83 im 3 185f: e3 im -29 1860: 8c im 12 1861: 0c store 00001862 <.LM577>: 1862: 0b nop 1863: 0b nop 1864: 80 im 0 1865: f8 im -8 1866: c4 im -60 1867: 51 storesp 4 1868: b7 im 55 1869: 83 im 3 186a: 3f callpcrel 0000186b <.LM578>: 186b: 83 im 3 186c: e3 im -29 186d: 8e im 14 186e: 22 loadh 186f: 51 storesp 4 1870: b8 im 56 1871: 8a im 10 1872: 3f callpcrel 00001873 <.L401>: 1873: 0b nop 1874: 0b nop 1875: 80 im 0 1876: f9 im -7 1877: c4 im -60 1878: 51 storesp 4 1879: b6 im 54 187a: f2 im -14 187b: 3f callpcrel 0000187c <.LM580>: 187c: 80 im 0 187d: e4 im -28 187e: 51 storesp 4 187f: d8 im -40 1880: b2 im 50 1881: 3f callpcrel 1882: 86 im 6 1883: 3d pushspadd 1884: 0d popsp 1885: 04 poppc 00001886 <.L411>: 1886: b3 im 51 1887: b4 im 52 1888: 3f callpcrel 1889: 83 im 3 188a: e0 im -32 188b: 80 im 0 188c: 08 load 188d: 80 im 0 188e: 2e eq 188f: e3 im -29 1890: 38 neqbranch 00001891 <.LM582>: 1891: 0b nop 1892: 0b nop 1893: 80 im 0 1894: f8 im -8 1895: bc im 60 1896: 51 storesp 4 1897: b6 im 54 1898: d4 im -44 1899: 3f callpcrel 0000189a <.LM583>: 189a: 83 im 3 189b: e3 im -29 189c: 8c im 12 189d: 08 load 189e: a8 im 40 189f: 2e eq 18a0: 09 not 18a1: 81 im 1 18a2: 06 and 18a3: ff im -1 18a4: b7 im 55 18a5: 38 neqbranch 000018a6 <.L412>: 18a6: 86 im 6 18a7: 0b nop 18a8: 83 im 3 18a9: e3 im -29 18aa: 8c im 12 18ab: 0c store 000018ac <.LM585>: 18ac: 0b nop 18ad: 0b nop 18ae: 80 im 0 18af: f8 im -8 18b0: cc im -52 18b1: 51 storesp 4 000018b2 <.LM586>: 18b2: b6 im 54 18b3: b9 im 57 18b4: 3f callpcrel 000018b5 <.LM587>: 18b5: 83 im 3 18b6: e3 im -29 18b7: 8e im 14 18b8: 22 loadh 18b9: 51 storesp 4 18ba: b7 im 55 18bb: c0 im -64 18bc: 3f callpcrel 18bd: ff im -1 18be: b4 im 52 18bf: 39 poppcrel 000018c0 : 18c0: fc im -4 18c1: 3d pushspadd 18c2: 0d popsp 18c3: 76 loadsp 24 18c4: 55 storesp 20 000018c5 <.LM589>: 18c5: 74 loadsp 16 18c6: 83 im 3 18c7: e0 im -32 18c8: b0 im 48 18c9: 08 load 18ca: 2e eq 18cb: af im 47 18cc: 38 neqbranch 000018cd <.LM590>: 18cd: 80 im 0 18ce: 54 storesp 16 000018cf <.L415>: 18cf: 74 loadsp 16 18d0: 51 storesp 4 18d1: ab im 43 18d2: a9 im 41 18d3: 3f callpcrel 18d4: 83 im 3 18d5: e0 im -32 18d6: 80 im 0 18d7: 08 load 18d8: 81 im 1 18d9: ff im -1 18da: 06 and 000018db <.LM592>: 18db: ff im -1 18dc: 15 addsp 20 18dd: 70 loadsp 0 18de: 81 im 1 18df: ff im -1 18e0: 06 and 000018e1 <.LBE22>: 18e1: 72 loadsp 8 18e2: 30 neg 18e3: 70 loadsp 0 18e4: 9f im 31 18e5: 2a lshiftright 18e6: 51 storesp 4 18e7: 52 storesp 8 18e8: 56 storesp 24 18e9: 53 storesp 12 18ea: 53 storesp 12 18eb: 73 loadsp 12 18ec: 80 im 0 18ed: 2e eq 18ee: 84 im 4 18ef: 38 neqbranch 18f0: 71 loadsp 4 18f1: dd im -35 18f2: 38 neqbranch 000018f3 <.L420>: 18f3: 72 loadsp 8 18f4: fe im -2 18f5: 38 neqbranch 000018f6 <.LM595>: 18f6: 74 loadsp 16 18f7: 83 im 3 18f8: e0 im -32 18f9: b0 im 48 18fa: 0c store 000018fb <.L413>: 18fb: 86 im 6 18fc: 3d pushspadd 18fd: 0d popsp 18fe: 04 poppc 000018ff : 18ff: fc im -4 1900: 3d pushspadd 1901: 0d popsp 1902: 76 loadsp 24 1903: 02 pushsp 1904: 84 im 4 1905: 05 add 1906: a2 im 34 1907: 05 add 1908: 22 loadh 1909: 02 pushsp 190a: 88 im 8 190b: 05 add 190c: a6 im 38 190d: 05 add 190e: 22 loadh 0000190f <.LM598>: 190f: 7a loadsp 40 1910: 54 storesp 16 1911: 55 storesp 20 1912: 55 storesp 20 1913: 55 storesp 20 1914: ff im -1 1915: aa im 42 1916: 3f callpcrel 00001917 <.LM599>: 1917: 72 loadsp 8 1918: 80 im 0 1919: 2e eq 191a: a1 im 33 191b: 38 neqbranch 0000191c <.L433>: 191c: 83 im 3 191d: e3 im -29 191e: e8 im -24 191f: 14 addsp 16 1920: 33 loadb 1921: 75 loadsp 20 1922: 70 loadsp 0 1923: 81 im 1 1924: 05 add 1925: 57 storesp 28 1926: 34 storeb 00001927 <.LBE23>: 1927: 81 im 1 1928: 14 addsp 16 1929: 70 loadsp 0 192a: 83 im 3 192b: ff im -1 192c: ff im -1 192d: 06 and 192e: ff im -1 192f: 15 addsp 20 1930: 70 loadsp 0 1931: 83 im 3 1932: ff im -1 1933: ff im -1 1934: 06 and 1935: 56 storesp 24 1936: 52 storesp 8 1937: 55 storesp 20 1938: 52 storesp 8 1939: 72 loadsp 8 193a: e1 im -31 193b: 38 neqbranch 0000193c <.L430>: 193c: 80 im 0 193d: 0b nop 193e: 83 im 3 193f: e0 im -32 1940: 80 im 0 1941: 0c store 1942: 86 im 6 1943: 3d pushspadd 1944: 0d popsp 1945: 04 poppc 00001946 : void USART_Send_Buffer(unsigned char *buff, u16 len) { 1946: fe im -2 1947: 3d pushspadd 1948: 0d popsp 1949: 74 loadsp 16 194a: 02 pushsp 194b: 84 im 4 194c: 05 add 194d: 96 im 22 194e: 05 add 194f: 22 loadh 1950: 53 storesp 12 1951: 53 storesp 12 00001952 <.LM604>: while(len>0) { USART_Transmit_Byte(*buff++); len--; } 1952: 71 loadsp 4 1953: 80 im 0 1954: 2e eq 1955: 97 im 23 1956: 38 neqbranch 00001957 <.L442>: 1957: 72 loadsp 8 1958: 70 loadsp 0 1959: 81 im 1 195a: 05 add 195b: 54 storesp 16 195c: 33 loadb 195d: 51 storesp 4 195e: b0 im 48 195f: e7 im -25 1960: 3f callpcrel 1961: ff im -1 1962: 12 addsp 8 1963: 70 loadsp 0 1964: 83 im 3 1965: ff im -1 1966: ff im -1 1967: 06 and 1968: 51 storesp 4 1969: 52 storesp 8 0000196a <.LBE24>: 196a: 71 loadsp 4 196b: eb im -21 196c: 38 neqbranch 0000196d <.L439>: 196d: 84 im 4 196e: 3d pushspadd 196f: 0d popsp 1970: 04 poppc 00001971 : } void USART_Send_cmpl_and_atari_sector_buffer_and_check_sum(unsigned short len) { 1971: fe im -2 1972: 3d pushspadd 1973: 0d popsp 1974: 02 pushsp 1975: 92 im 18 1976: 05 add 1977: 22 loadh 00001978 <.LM606>: u08 check_sum; debug("(send:"); 1978: 0b nop 1979: 0b nop 197a: 80 im 0 197b: f8 im -8 197c: d4 im -44 197d: 52 storesp 8 197e: 53 storesp 12 197f: b4 im 52 1980: ec im -20 1981: 3f callpcrel 00001982 <.LM607>: plotnextnumber(len); 1982: 72 loadsp 8 1983: 51 storesp 4 1984: b5 im 53 1985: f6 im -10 1986: 3f callpcrel 00001987 <.LM608>: DELAY_T5_MIN; 1987: 82 im 2 1988: ac im 44 1989: 51 storesp 4 198a: d6 im -42 198b: a7 im 39 198c: 3f callpcrel 0000198d <.LM609>: send_CMPL(); 198d: 80 im 0 198e: c3 im -61 198f: 51 storesp 4 1990: b0 im 48 1991: b5 im 53 1992: 3f callpcrel 00001993 <.LM610>: // Hias: changed to 100us so that Qmeg3 works again with the // new bit-banging transmission code DELAY_T3_PERIPH; 1993: 81 im 1 1994: 96 im 22 1995: 51 storesp 4 1996: d6 im -42 1997: 9b im 27 1998: 3f callpcrel 00001999 <.LM611>: check_sum = 0; USART_Send_Buffer(atari_sector_buffer,len); 1999: 72 loadsp 8 199a: 52 storesp 8 199b: 83 im 3 199c: e0 im -32 199d: c8 im -56 199e: 51 storesp 4 199f: ff im -1 19a0: a5 im 37 19a1: 3f callpcrel 000019a2 <.LM612>: // tx_checksum is updated by bit-banging USART_Transmit_Byte, // so we can skip separate calculation check_sum = get_checksum(atari_sector_buffer,len); 19a2: 72 loadsp 8 19a3: 52 storesp 8 19a4: 83 im 3 19a5: e0 im -32 19a6: c8 im -56 19a7: 51 storesp 4 19a8: da im -38 19a9: c6 im -58 19aa: 3f callpcrel 19ab: 83 im 3 19ac: e0 im -32 19ad: 80 im 0 19ae: 08 load 19af: 81 im 1 19b0: ff im -1 19b1: 06 and 000019b2 <.LM613>: USART_Transmit_Byte(check_sum); 19b2: 70 loadsp 0 19b3: 52 storesp 8 19b4: 53 storesp 12 19b5: b0 im 48 19b6: 90 im 16 19b7: 3f callpcrel 000019b8 <.LM614>: //hexdump_pure(atari_sector_buffer,len); debug(":chk:"); 19b8: 0b nop 19b9: 0b nop 19ba: 80 im 0 19bb: f8 im -8 19bc: dc im -36 19bd: 51 storesp 4 19be: b4 im 52 19bf: ad im 45 19c0: 3f callpcrel 000019c1 <.LM615>: plotnextnumber(check_sum); 19c1: 72 loadsp 8 19c2: 51 storesp 4 19c3: b5 im 53 19c4: b7 im 55 19c5: 3f callpcrel 000019c6 <.LM616>: debug(")"); 19c6: 0b nop 19c7: 0b nop 19c8: 80 im 0 19c9: f7 im -9 19ca: dc im -36 19cb: 51 storesp 4 19cc: b4 im 52 19cd: 9f im 31 19ce: 3f callpcrel 19cf: 84 im 4 19d0: 3d pushspadd 19d1: 0d popsp 19d2: 04 poppc 000019d3 : 19d3: f1 im -15 19d4: 3d pushspadd 19d5: 0d popsp 000019d6 <.LM618>: 19d6: 0b nop 19d7: 0b nop 19d8: 80 im 0 19d9: f8 im -8 19da: e4 im -28 19db: 51 storesp 4 19dc: b4 im 52 19dd: 8f im 15 19de: 3f callpcrel 000019df <.LM619>: 19df: 0b nop 19e0: 0b nop 19e1: 80 im 0 19e2: f8 im -8 19e3: ec im -20 19e4: 51 storesp 4 19e5: b4 im 52 19e6: 86 im 6 19e7: 3f callpcrel 000019e8 <.LM620>: 19e8: d9 im -39 19e9: c6 im -58 19ea: 3f callpcrel 19eb: 83 im 3 19ec: e0 im -32 19ed: 80 im 0 19ee: 08 load 19ef: 81 im 1 19f0: ff im -1 19f1: 06 and 19f2: 54 storesp 16 19f3: 73 loadsp 12 19f4: 82 im 2 19f5: d2 im -46 19f6: 38 neqbranch 000019f7 <.LM621>: 19f7: 0b nop 19f8: 0b nop 19f9: 80 im 0 19fa: f5 im -11 19fb: 94 im 20 19fc: 51 storesp 4 19fd: b3 im 51 19fe: ee im -18 19ff: 3f callpcrel 00001a00 <.LM622>: 1a00: 0b nop 1a01: 0b nop 1a02: 80 im 0 1a03: f8 im -8 1a04: f8 im -8 1a05: 51 storesp 4 1a06: b3 im 51 1a07: e5 im -27 1a08: 3f callpcrel 00001a09 <.LM623>: 1a09: 83 im 3 1a0a: e3 im -29 1a0b: ac im 44 1a0c: 51 storesp 4 1a0d: 98 im 24 1a0e: 80 im 0 1a0f: 3f callpcrel 1a10: 83 im 3 1a11: e0 im -32 1a12: 80 im 0 1a13: 08 load 1a14: 82 im 2 1a15: b2 im 50 1a16: 38 neqbranch 00001a17 <.LM624>: 1a17: 0b nop 1a18: 0b nop 1a19: 80 im 0 1a1a: f5 im -11 1a1b: 94 im 20 1a1c: 51 storesp 4 1a1d: b3 im 51 1a1e: ce im -50 1a1f: 3f callpcrel 00001a20 <.LM625>: 1a20: 0b nop 1a21: 0b nop 1a22: 80 im 0 1a23: f9 im -7 1a24: 80 im 0 1a25: 51 storesp 4 1a26: b3 im 51 1a27: c5 im -59 1a28: 3f callpcrel 00001a29 <.LM626>: 1a29: 0b nop 1a2a: 0b nop 1a2b: 80 im 0 1a2c: f4 im -12 1a2d: fc im -4 1a2e: 52 storesp 8 1a2f: 83 im 3 1a30: e2 im -30 1a31: f4 im -12 1a32: 51 storesp 4 1a33: a1 im 33 1a34: e4 im -28 1a35: 3f callpcrel 1a36: 83 im 3 1a37: e0 im -32 1a38: 80 im 0 1a39: 08 load 1a3a: 82 im 2 1a3b: 8c im 12 1a3c: 38 neqbranch 00001a3d <.LM627>: 1a3d: 0b nop 1a3e: 0b nop 1a3f: 80 im 0 1a40: f5 im -11 1a41: 94 im 20 1a42: 51 storesp 4 00001a43 <.LM628>: 1a43: b3 im 51 1a44: a8 im 40 1a45: 3f callpcrel 1a46: 83 im 3 1a47: e0 im -32 1a48: 94 im 20 1a49: 52 storesp 8 1a4a: 83 im 3 1a4b: e2 im -30 1a4c: f4 im -12 1a4d: 51 storesp 4 1a4e: a2 im 34 1a4f: dc im -36 1a50: 3f callpcrel 1a51: 83 im 3 1a52: e0 im -32 1a53: 80 im 0 1a54: 08 load 1a55: a5 im 37 1a56: 38 neqbranch 00001a57 <.L544>: 1a57: 83 im 3 1a58: e0 im -32 1a59: 9d im 29 1a5a: 33 loadb 1a5b: 54 storesp 16 1a5c: 73 loadsp 12 1a5d: 80 im 0 1a5e: 2e eq 1a5f: 9b im 27 1a60: 38 neqbranch 1a61: 83 im 3 1a62: e0 im -32 1a63: 9d im 29 1a64: 51 storesp 4 1a65: b3 im 51 1a66: 86 im 6 1a67: 3f callpcrel 1a68: 83 im 3 1a69: e0 im -32 1a6a: 94 im 20 1a6b: 52 storesp 8 1a6c: 83 im 3 1a6d: e2 im -30 1a6e: f4 im -12 1a6f: 51 storesp 4 1a70: a2 im 34 1a71: ba im 58 1a72: 3f callpcrel 1a73: 83 im 3 1a74: e0 im -32 1a75: 80 im 0 1a76: 08 load 1a77: 80 im 0 1a78: 2e eq 1a79: dd im -35 1a7a: 38 neqbranch 00001a7b <.L449>: 1a7b: 80 im 0 1a7c: 55 storesp 20 00001a7d <.L455>: 1a7d: 0b nop 1a7e: 0b nop 1a7f: 80 im 0 1a80: f9 im -7 1a81: 8c im 12 1a82: 15 addsp 20 1a83: 54 storesp 16 1a84: 73 loadsp 12 1a85: 33 loadb 1a86: 83 im 3 1a87: e3 im -29 1a88: 98 im 24 1a89: 16 addsp 24 1a8a: 34 storeb 00001a8b <.LM631>: 1a8b: 73 loadsp 12 1a8c: 33 loadb 1a8d: 83 im 3 1a8e: e3 im -29 1a8f: d8 im -40 1a90: 16 addsp 24 1a91: 34 storeb 00001a92 <.LM632>: 1a92: 73 loadsp 12 1a93: 33 loadb 1a94: 83 im 3 1a95: e2 im -30 1a96: c8 im -56 1a97: 16 addsp 24 1a98: 34 storeb 00001a99 <.LM633>: 1a99: 73 loadsp 12 1a9a: 33 loadb 1a9b: 83 im 3 1a9c: e0 im -32 1a9d: b8 im 56 1a9e: 16 addsp 24 1a9f: 34 storeb 00001aa0 <.LM634>: 1aa0: 73 loadsp 12 1aa1: 33 loadb 1aa2: 54 storesp 16 1aa3: 73 loadsp 12 1aa4: 80 im 0 1aa5: 2e eq 1aa6: 8c im 12 1aa7: 38 neqbranch 00001aa8 <.LM635>: 1aa8: 81 im 1 1aa9: 15 addsp 20 1aaa: 55 storesp 20 1aab: 74 loadsp 16 1aac: 8f im 15 1aad: 2e eq 1aae: 09 not 1aaf: 81 im 1 1ab0: 06 and 1ab1: cb im -53 1ab2: 38 neqbranch 00001ab3 <.L452>: 1ab3: 81 im 1 1ab4: 0b nop 1ab5: 83 im 3 1ab6: e0 im -32 1ab7: b4 im 52 1ab8: 0c store 00001ab9 <.LM637>: 1ab9: 83 im 3 1aba: e3 im -29 1abb: 98 im 24 1abc: 51 storesp 4 1abd: d8 im -40 1abe: fc im -4 1abf: 3f callpcrel 00001ac0 <.LM638>: 1ac0: 80 im 0 1ac1: 51 storesp 4 1ac2: d7 im -41 1ac3: a6 im 38 1ac4: 3f callpcrel 00001ac5 <.LM639>: 1ac5: 80 im 0 1ac6: fb im -5 1ac7: e4 im -28 1ac8: 08 load 1ac9: 54 storesp 16 1aca: 80 im 0 1acb: 74 loadsp 16 1acc: 34 storeb 00001acd <.LM640>: 1acd: d6 im -42 1ace: a1 im 33 1acf: 3f callpcrel 00001ad0 <.LM641>: 1ad0: 81 im 1 1ad1: 51 storesp 4 1ad2: d7 im -41 1ad3: 96 im 22 1ad4: 3f callpcrel 00001ad5 <.LM642>: 1ad5: 80 im 0 1ad6: 51 storesp 4 1ad7: d7 im -41 1ad8: b5 im 53 1ad9: 3f callpcrel 00001ada <.LM643>: 1ada: 83 im 3 1adb: e3 im -29 1adc: 8c im 12 1add: 08 load 1ade: 86 im 6 1adf: 05 add 1ae0: 51 storesp 4 1ae1: ad im 45 1ae2: 8c im 12 1ae3: 3f callpcrel 1ae4: 8e im 14 1ae5: 3d pushspadd 1ae6: 91 im 17 1ae7: 3d pushspadd 1ae8: 5e storesp 56 1ae9: 59 storesp 36 00001aea <.L541>: 1aea: 78 loadsp 32 1aeb: 51 storesp 4 1aec: f8 im -8 1aed: ee im -18 1aee: 3f callpcrel 00001aef <.LM645>: 1aef: 8e im 14 1af0: 3d pushspadd 1af1: 33 loadb 1af2: cf im -49 1af3: 11 addsp 4 1af4: 70 loadsp 0 1af5: 81 im 1 1af6: ff im -1 1af7: 06 and 1af8: 51 storesp 4 1af9: 55 storesp 20 1afa: 55 storesp 20 1afb: 73 loadsp 12 1afc: 82 im 2 1afd: 26 ulessthan 1afe: eb im -21 1aff: 38 neqbranch 00001b00 <.LM646>: 1b00: 74 loadsp 16 1b01: 8f im 15 1b02: 06 and 1b03: 54 storesp 16 00001b04 <.LM647>: 1b04: 73 loadsp 12 1b05: 83 im 3 1b06: e0 im -32 1b07: b4 im 52 1b08: 08 load 1b09: 2e eq 1b0a: 97 im 23 1b0b: 38 neqbranch 00001b0c <.LM648>: 1b0c: 73 loadsp 12 1b0d: 83 im 3 1b0e: e0 im -32 1b0f: b4 im 52 1b10: 0c store 00001b11 <.LM649>: 1b11: 73 loadsp 12 1b12: 82 im 2 1b13: 2e eq 1b14: 82 im 2 1b15: b6 im 54 1b16: 38 neqbranch 1b17: 73 loadsp 12 1b18: 82 im 2 1b19: 24 lessthan 1b1a: 82 im 2 1b1b: 8a im 10 1b1c: 38 neqbranch 1b1d: 73 loadsp 12 1b1e: 81 im 1 1b1f: 2e eq 1b20: b4 im 52 1b21: 38 neqbranch 00001b22 <.L459>: 1b22: 83 im 3 1b23: e2 im -30 1b24: e4 im -28 1b25: 08 load 1b26: 80 im 0 1b27: 2e eq 1b28: c1 im -63 1b29: 38 neqbranch 00001b2a <.LM651>: 1b2a: 02 pushsp 1b2b: b5 im 53 1b2c: 05 add 1b2d: 33 loadb 1b2e: 54 storesp 16 1b2f: 73 loadsp 12 1b30: 80 im 0 1b31: d2 im -46 1b32: 2e eq 1b33: 82 im 2 1b34: a1 im 33 1b35: 38 neqbranch 1b36: 73 loadsp 12 1b37: 80 im 0 1b38: d2 im -46 1b39: 24 lessthan 1b3a: 82 im 2 1b3b: 83 im 3 1b3c: 38 neqbranch 1b3d: 73 loadsp 12 1b3e: bf im 63 1b3f: 2e eq 1b40: 9d im 29 1b41: 38 neqbranch 00001b42 <.LM652>: 1b42: ac im 44 1b43: 94 im 20 1b44: 3f callpcrel 1b45: ff im -1 1b46: a3 im 35 1b47: 39 poppcrel 00001b48 <.L540>: 1b48: 0b nop 1b49: 0b nop 1b4a: 80 im 0 1b4b: f5 im -11 1b4c: 8c im 12 1b4d: 51 storesp 4 1b4e: b1 im 49 1b4f: 9d im 29 1b50: 3f callpcrel 00001b51 <.LM654>: 1b51: 91 im 17 1b52: 3d pushspadd 1b53: 0d popsp 1b54: 04 poppc 00001b55 <.L461>: 1b55: 83 im 3 1b56: e3 im -29 1b57: 98 im 24 1b58: 51 storesp 4 00001b59 <.LM656>: 1b59: d7 im -41 1b5a: e0 im -32 1b5b: 3f callpcrel 1b5c: c5 im -59 1b5d: 39 poppcrel 00001b5e <.L468>: 1b5e: 0b nop 1b5f: 0b nop 1b60: 80 im 0 1b61: f6 im -10 1b62: e8 im -24 1b63: 51 storesp 4 1b64: b1 im 49 1b65: 87 im 7 1b66: 3f callpcrel 00001b67 <.LM658>: 1b67: 02 pushsp 1b68: b7 im 55 1b69: 05 add 1b6a: 33 loadb 1b6b: 70 loadsp 0 1b6c: 88 im 8 1b6d: 2b ashiftleft 1b6e: 81 im 1 1b6f: fe im -2 1b70: 80 im 0 1b71: 06 and 1b72: 02 pushsp 1b73: 88 im 8 1b74: 05 add 1b75: b6 im 54 1b76: 05 add 1b77: 33 loadb 1b78: 71 loadsp 4 1b79: 05 add 1b7a: 51 storesp 4 1b7b: 55 storesp 20 1b7c: 55 storesp 20 00001b7d <.LM659>: 1b7d: ad im 45 1b7e: 96 im 22 1b7f: 3f callpcrel 00001b80 <.LM660>: 1b80: 80 im 0 1b81: c1 im -63 1b82: 51 storesp 4 1b83: ac im 44 1b84: c2 im -62 1b85: 3f callpcrel 00001b86 <.LM661>: 1b86: d2 im -46 1b87: c0 im -64 1b88: 3f callpcrel 00001b89 <.LM662>: 1b89: 86 im 6 1b8a: 0b nop 1b8b: 83 im 3 1b8c: e0 im -32 1b8d: c8 im -56 1b8e: 34 storeb 00001b8f <.LM663>: 1b8f: 81 im 1 1b90: 52 storesp 8 1b91: 83 im 3 1b92: e0 im -32 1b93: c8 im -56 1b94: 51 storesp 4 1b95: b3 im 51 1b96: e2 im -30 1b97: 3f callpcrel 00001b98 <.LM664>: 1b98: 81 im 1 1b99: 51 storesp 4 1b9a: fb im -5 1b9b: d5 im -43 1b9c: 3f callpcrel 00001b9d <.LM665>: 1b9d: 73 loadsp 12 1b9e: 85 im 5 1b9f: d4 im -44 1ba0: 38 neqbranch 00001ba1 <.LM666>: 1ba1: 86 im 6 1ba2: 0b nop 1ba3: 83 im 3 1ba4: e3 im -29 1ba5: 8c im 12 1ba6: 0c store 00001ba7 <.LM667>: 1ba7: 0b nop 1ba8: 0b nop 1ba9: 80 im 0 1baa: f8 im -8 1bab: cc im -52 1bac: 51 storesp 4 00001bad <.LM668>: 1bad: b0 im 48 1bae: be im 62 1baf: 3f callpcrel 00001bb0 <.LM669>: 1bb0: 83 im 3 1bb1: e3 im -29 1bb2: 8e im 14 1bb3: 22 loadh 1bb4: 51 storesp 4 1bb5: b1 im 49 1bb6: c5 im -59 1bb7: 3f callpcrel 00001bb8 <.L471>: 1bb8: 0b nop 1bb9: 0b nop 1bba: 80 im 0 1bbb: f9 im -7 1bbc: 98 im 24 1bbd: 51 storesp 4 1bbe: b0 im 48 1bbf: ad im 45 1bc0: 3f callpcrel 00001bc1 <.LM671>: 1bc1: ac im 44 1bc2: d2 im -46 1bc3: 3f callpcrel 00001bc4 <.LM672>: 1bc4: 80 im 0 1bc5: c1 im -63 1bc6: 51 storesp 4 1bc7: ab im 43 1bc8: fe im -2 1bc9: 3f callpcrel 00001bca <.LM673>: 1bca: d1 im -47 1bcb: fc im -4 1bcc: 3f callpcrel 00001bcd <.LM674>: 1bcd: 98 im 24 00001bce <.LM675>: 1bce: 0b nop 1bcf: 83 im 3 1bd0: e2 im -30 1bd1: ec im -20 1bd2: 33 loadb 1bd3: 83 im 3 1bd4: e2 im -30 1bd5: ed im -19 1bd6: 33 loadb 1bd7: 71 loadsp 4 1bd8: 88 im 8 1bd9: 2b ashiftleft 1bda: 07 or 1bdb: 56 storesp 24 1bdc: 58 storesp 32 1bdd: 55 storesp 20 1bde: 73 loadsp 12 1bdf: 81 im 1 1be0: 80 im 0 1be1: 2e eq 1be2: 82 im 2 1be3: c2 im -62 1be4: 38 neqbranch 00001be5 <.LM676>: 1be5: b8 im 56 1be6: 55 storesp 20 00001be7 <.L474>: 1be7: 74 loadsp 16 1be8: 83 im 3 1be9: e0 im -32 1bea: c8 im -56 1beb: 34 storeb 00001bec <.LM678>: 1bec: ff im -1 1bed: 0b nop 1bee: 83 im 3 1bef: e0 im -32 1bf0: c9 im -55 1bf1: 34 storeb 00001bf2 <.LM679>: 1bf2: e0 im -32 1bf3: 0b nop 1bf4: 83 im 3 1bf5: e0 im -32 1bf6: ca im -54 1bf7: 34 storeb 00001bf8 <.LM680>: 1bf8: 80 im 0 1bf9: 0b nop 1bfa: 83 im 3 1bfb: e0 im -32 1bfc: cb im -53 1bfd: 34 storeb 00001bfe <.LM681>: 1bfe: 84 im 4 1bff: 52 storesp 8 1c00: 83 im 3 1c01: e0 im -32 1c02: c8 im -56 1c03: 51 storesp 4 1c04: b2 im 50 1c05: f3 im -13 1c06: 3f callpcrel 00001c07 <.LM682>: 1c07: 84 im 4 1c08: 51 storesp 4 1c09: fa im -6 1c0a: e6 im -26 1c0b: 3f callpcrel 00001c0c <.LM683>: 1c0c: 83 im 3 1c0d: e0 im -32 1c0e: c8 im -56 1c0f: 33 loadb 1c10: 51 storesp 4 1c11: b0 im 48 1c12: e9 im -23 1c13: 3f callpcrel 00001c14 <.LM684>: 1c14: 0b nop 1c15: 0b nop 1c16: 80 im 0 1c17: f9 im -7 1c18: a0 im 32 1c19: 51 storesp 4 00001c1a <.L539>: 1c1a: af im 47 1c1b: d1 im -47 1c1c: 3f callpcrel 00001c1d <.LM686>: 1c1d: ac im 44 1c1e: bb im 59 1c1f: 3f callpcrel 00001c20 <.L547>: 1c20: aa im 42 1c21: b6 im 54 1c22: 3f callpcrel 1c23: fd im -3 1c24: c5 im -59 1c25: 39 poppcrel 00001c26 <.L465>: 1c26: 73 loadsp 12 1c27: 83 im 3 1c28: 2e eq 1c29: 81 im 1 1c2a: f1 im -15 1c2b: 38 neqbranch 1c2c: 73 loadsp 12 1c2d: 84 im 4 1c2e: 2e eq 1c2f: 09 not 1c30: 81 im 1 1c31: 06 and 1c32: fd im -3 1c33: ee im -18 1c34: 38 neqbranch 00001c35 <.LM689>: 1c35: 83 im 3 1c36: e0 im -32 1c37: b8 im 56 1c38: 51 storesp 4 1c39: d6 im -42 1c3a: 80 im 0 1c3b: 3f callpcrel 1c3c: fd im -3 1c3d: e4 im -28 1c3e: 39 poppcrel 00001c3f <.L520>: 1c3f: 73 loadsp 12 1c40: 80 im 0 1c41: d3 im -45 1c42: 2e eq 1c43: fe im -2 1c44: f3 im -13 1c45: 38 neqbranch 00001c46 <.LM691>: 1c46: aa im 42 1c47: 90 im 16 1c48: 3f callpcrel 1c49: fd im -3 1c4a: 9f im 31 1c4b: 39 poppcrel 00001c4c <.L462>: 1c4c: 83 im 3 1c4d: e3 im -29 1c4e: d8 im -40 1c4f: 51 storesp 4 00001c50 <.LM693>: 1c50: d5 im -43 1c51: e9 im -23 1c52: 3f callpcrel 1c53: fd im -3 1c54: cd im -51 1c55: 39 poppcrel 00001c56 <.L478>: 1c56: 02 pushsp 1c57: b7 im 55 1c58: 05 add 1c59: 33 loadb 1c5a: 70 loadsp 0 1c5b: 88 im 8 1c5c: 2b ashiftleft 1c5d: 81 im 1 1c5e: fe im -2 1c5f: 80 im 0 1c60: 06 and 1c61: 02 pushsp 1c62: 88 im 8 1c63: 05 add 1c64: b6 im 54 1c65: 05 add 1c66: 33 loadb 1c67: 57 storesp 28 1c68: 76 loadsp 24 1c69: 05 add 1c6a: 58 storesp 32 1c6b: 58 storesp 32 00001c6c <.LM695>: 1c6c: 80 im 0 1c6d: 55 storesp 20 00001c6e <.LM696>: 1c6e: ab im 43 1c6f: a5 im 37 1c70: 3f callpcrel 00001c71 <.LM697>: 1c71: 80 im 0 1c72: c1 im -63 1c73: 51 storesp 4 1c74: aa im 42 1c75: d1 im -47 1c76: 3f callpcrel 00001c77 <.LM698>: 1c77: 74 loadsp 16 1c78: 91 im 17 1c79: 3d pushspadd 1c7a: 23 storeh 00001c7b <.LM699>: 1c7b: 0b nop 1c7c: 0b nop 1c7d: 80 im 0 1c7e: f9 im -7 1c7f: a8 im 40 1c80: 51 storesp 4 1c81: ae im 46 1c82: ea im -22 1c83: 3f callpcrel 00001c84 <.LM700>: 1c84: 76 loadsp 24 1c85: 51 storesp 4 1c86: af im 47 1c87: f4 im -12 1c88: 3f callpcrel 00001c89 <.LM701>: 1c89: 0b nop 1c8a: 0b nop 1c8b: 80 im 0 1c8c: f9 im -7 1c8d: b8 im 56 1c8e: 51 storesp 4 1c8f: ae im 46 1c90: dc im -36 1c91: 3f callpcrel 00001c92 <.LM702>: 1c92: 83 im 3 1c93: e3 im -29 1c94: 88 im 8 1c95: 08 load 1c96: 75 loadsp 20 1c97: 2e eq 1c98: 09 not 1c99: 81 im 1 1c9a: 06 and 1c9b: 82 im 2 1c9c: 8e im 14 1c9d: 38 neqbranch 00001c9e <.LM703>: 1c9e: 83 im 3 1c9f: e3 im -29 1ca0: 90 im 16 1ca1: 08 load 1ca2: 56 storesp 24 00001ca3 <.LM704>: 1ca3: 83 im 3 1ca4: 77 loadsp 28 1ca5: 25 lessthanorequal 1ca6: 81 im 1 1ca7: cc im -52 1ca8: 38 neqbranch 00001ca9 <.LM705>: 1ca9: 83 im 3 1caa: e2 im -30 1cab: ec im -20 1cac: 33 loadb 1cad: 83 im 3 1cae: e2 im -30 1caf: ed im -19 1cb0: 33 loadb 1cb1: 71 loadsp 4 1cb2: 88 im 8 1cb3: 2b ashiftleft 1cb4: 07 or 1cb5: fc im -4 1cb6: 19 addsp 36 1cb7: 71 loadsp 4 1cb8: 29 mult 1cb9: 78 loadsp 32 1cba: 05 add 1cbb: 83 im 3 1cbc: 80 im 0 1cbd: 05 add 00001cbe <.LM706>: 1cbe: 70 loadsp 0 1cbf: 83 im 3 1cc0: ff im -1 1cc1: ff im -1 1cc2: 06 and 1cc3: 54 storesp 16 1cc4: 58 storesp 32 1cc5: 56 storesp 24 1cc6: 58 storesp 32 1cc7: af im 47 1cc8: b3 im 51 1cc9: 3f callpcrel 00001cca <.LM707>: 1cca: 0b nop 1ccb: 0b nop 1ccc: 80 im 0 1ccd: f9 im -7 1cce: c4 im -60 1ccf: 51 storesp 4 1cd0: ae im 46 1cd1: 9b im 27 1cd2: 3f callpcrel 00001cd3 <.LM708>: 1cd3: 75 loadsp 20 1cd4: 51 storesp 4 1cd5: 9a im 26 1cd6: bc im 60 1cd7: 3f callpcrel 00001cd8 <.LM709>: 1cd8: 7c loadsp 48 1cd9: 53 storesp 12 1cda: 74 loadsp 16 1cdb: 83 im 3 1cdc: ff im -1 1cdd: ff im -1 1cde: 06 and 1cdf: 70 loadsp 0 1ce0: 53 storesp 12 1ce1: 83 im 3 1ce2: e0 im -32 1ce3: c8 im -56 1ce4: 52 storesp 8 1ce5: 54 storesp 16 1ce6: 98 im 24 1ce7: 8d im 13 1ce8: 3f callpcrel 00001ce9 <.L517>: 1ce9: 73 loadsp 12 1cea: 51 storesp 4 1ceb: f9 im -7 1cec: 84 im 4 1ced: 3f callpcrel 00001cee <.LM711>: 1cee: 73 loadsp 12 1cef: 52 storesp 8 1cf0: 84 im 4 1cf1: 88 im 8 1cf2: 80 im 0 1cf3: 51 storesp 4 1cf4: d3 im -45 1cf5: fa im -6 1cf6: 3f callpcrel 1cf7: 83 im 3 1cf8: e0 im -32 1cf9: 80 im 0 1cfa: 08 load 1cfb: 81 im 1 1cfc: ff im -1 1cfd: 06 and 00001cfe <.LM712>: 1cfe: 0b nop 1cff: 0b nop 1d00: 80 im 0 1d01: f9 im -7 1d02: b0 im 48 1d03: 52 storesp 8 1d04: 54 storesp 16 1d05: ad im 45 1d06: e6 im -26 1d07: 3f callpcrel 00001d08 <.LM713>: 1d08: 73 loadsp 12 1d09: 51 storesp 4 1d0a: ae im 46 1d0b: f0 im -16 1d0c: 3f callpcrel 00001d0d <.LM714>: 1d0d: 0b nop 1d0e: 0b nop 1d0f: 80 im 0 1d10: f9 im -7 1d11: c4 im -60 1d12: 51 storesp 4 00001d13 <.L552>: 1d13: ad im 45 1d14: d8 im -40 1d15: 3f callpcrel 00001d16 <.LM715>: 1d16: aa im 42 1d17: c2 im -62 1d18: 3f callpcrel 1d19: fe im -2 1d1a: 85 im 5 1d1b: 39 poppcrel 00001d1c <.L463>: 1d1c: 83 im 3 1d1d: e2 im -30 1d1e: c8 im -56 1d1f: 51 storesp 4 00001d20 <.LM717>: 1d20: d4 im -44 1d21: 99 im 25 1d22: 3f callpcrel 1d23: fb im -5 1d24: fd im -3 1d25: 39 poppcrel 00001d26 <.L545>: 1d26: 83 im 3 1d27: e2 im -30 1d28: ea im -22 1d29: 33 loadb 1d2a: 83 im 3 1d2b: e2 im -30 1d2c: eb im -21 1d2d: 33 loadb 1d2e: 71 loadsp 4 1d2f: 88 im 8 1d30: 2b ashiftleft 1d31: 07 or 1d32: 55 storesp 20 1d33: 56 storesp 24 1d34: ad im 45 1d35: 80 im 0 1d36: 74 loadsp 16 1d37: 27 ulessthanorequal 1d38: fd im -3 1d39: ad im 45 1d3a: 38 neqbranch 00001d3b <.LM719>: 1d3b: 81 im 1 1d3c: 98 im 24 1d3d: 55 storesp 20 00001d3e <.LM720>: 1d3e: 74 loadsp 16 1d3f: 83 im 3 1d40: e0 im -32 1d41: c8 im -56 1d42: 34 storeb 00001d43 <.LM721>: 1d43: ff im -1 1d44: 0b nop 1d45: 83 im 3 1d46: e0 im -32 1d47: c9 im -55 1d48: 34 storeb 00001d49 <.LM722>: 1d49: e0 im -32 1d4a: 0b nop 1d4b: 83 im 3 1d4c: e0 im -32 1d4d: ca im -54 1d4e: 34 storeb 00001d4f <.LM723>: 1d4f: 80 im 0 1d50: 0b nop 1d51: 83 im 3 1d52: e0 im -32 1d53: cb im -53 1d54: 34 storeb 00001d55 <.LM724>: 1d55: 84 im 4 1d56: 52 storesp 8 1d57: 83 im 3 1d58: e0 im -32 1d59: c8 im -56 1d5a: 51 storesp 4 1d5b: b0 im 48 1d5c: 9c im 28 1d5d: 3f callpcrel 00001d5e <.LM725>: 1d5e: 84 im 4 1d5f: 51 storesp 4 1d60: f8 im -8 1d61: 8f im 15 1d62: 3f callpcrel 00001d63 <.LM726>: 1d63: 83 im 3 1d64: e0 im -32 1d65: c8 im -56 1d66: 33 loadb 1d67: 51 storesp 4 1d68: ae im 46 1d69: 92 im 18 1d6a: 3f callpcrel 00001d6b <.LM727>: 1d6b: 0b nop 1d6c: 0b nop 1d6d: 80 im 0 1d6e: f9 im -7 1d6f: a0 im 32 1d70: 51 storesp 4 1d71: fd im -3 1d72: a7 im 39 1d73: 39 poppcrel 00001d74 <.L518>: 1d74: 76 loadsp 24 1d75: 81 im 1 1d76: 80 im 0 1d77: 29 mult 1d78: 16 addsp 24 1d79: ff im -1 1d7a: 80 im 0 1d7b: 05 add 1d7c: 56 storesp 24 00001d7d <.LM729>: 1d7d: 81 im 1 1d7e: 80 im 0 00001d7f <.LM730>: 1d7f: 76 loadsp 24 1d80: 83 im 3 1d81: ff im -1 1d82: ff im -1 1d83: 06 and 1d84: 52 storesp 8 1d85: 55 storesp 20 1d86: ad im 45 1d87: f4 im -12 1d88: 3f callpcrel 00001d89 <.LM731>: 1d89: 0b nop 1d8a: 0b nop 1d8b: 80 im 0 1d8c: f9 im -7 1d8d: c4 im -60 1d8e: 51 storesp 4 1d8f: ac im 44 1d90: dc im -36 1d91: 3f callpcrel 00001d92 <.LM732>: 1d92: 75 loadsp 20 1d93: 51 storesp 4 1d94: 98 im 24 1d95: fd im -3 1d96: 3f callpcrel 00001d97 <.LM733>: 1d97: 7c loadsp 48 1d98: 53 storesp 12 1d99: 74 loadsp 16 1d9a: 83 im 3 1d9b: ff im -1 1d9c: ff im -1 1d9d: 06 and 1d9e: 70 loadsp 0 1d9f: 53 storesp 12 1da0: 83 im 3 1da1: e0 im -32 1da2: c8 im -56 1da3: 52 storesp 8 1da4: 54 storesp 16 1da5: 96 im 22 1da6: ce im -50 1da7: 3f callpcrel 1da8: fe im -2 1da9: bf im 63 1daa: 39 poppcrel 00001dab <.L546>: 1dab: 83 im 3 1dac: e3 im -29 1dad: 94 im 20 1dae: 08 load 1daf: 80 im 0 1db0: fc im -4 1db1: 05 add 1db2: 54 storesp 16 1db3: 80 im 0 1db4: fd im -3 1db5: 52 storesp 8 1db6: 73 loadsp 12 1db7: 51 storesp 4 1db8: b0 im 48 1db9: c8 im -56 1dba: 3f callpcrel 1dbb: 83 im 3 1dbc: e0 im -32 1dbd: 80 im 0 1dbe: 08 load 00001dbf <.LM735>: 1dbf: 0b nop 1dc0: 0b nop 1dc1: 80 im 0 1dc2: f5 im -11 1dc3: f0 im -16 1dc4: 52 storesp 8 1dc5: 5c storesp 48 1dc6: ac im 44 1dc7: a5 im 37 1dc8: 3f callpcrel 00001dc9 <.LM736>: 1dc9: 82 im 2 1dca: 77 loadsp 28 1dcb: 25 lessthanorequal 1dcc: 81 im 1 1dcd: c0 im -64 1dce: 38 neqbranch 00001dcf <.LM737>: 1dcf: 76 loadsp 24 1dd0: 82 im 2 1dd1: e8 im -24 1dd2: 2e eq 1dd3: 84 im 4 1dd4: 8d im 13 1dd5: 38 neqbranch 00001dd6 <.LM738>: 1dd6: 76 loadsp 24 1dd7: 82 im 2 1dd8: e9 im -23 1dd9: 2e eq 1dda: 82 im 2 1ddb: 86 im 6 1ddc: 38 neqbranch 00001ddd <.LM739>: 1ddd: 76 loadsp 24 1dde: 82 im 2 1ddf: f0 im -16 1de0: 24 lessthan 1de1: ba im 58 1de2: 38 neqbranch 00001de3 <.L484>: 1de3: 0b nop 1de4: 0b nop 1de5: 80 im 0 1de6: f9 im -7 1de7: bc im 60 1de8: 51 storesp 4 1de9: ac im 44 1dea: 82 im 2 1deb: 3f callpcrel 00001dec <.LM741>: 1dec: 81 im 1 1ded: 80 im 0 1dee: 54 storesp 16 00001def <.L553>: 1def: 73 loadsp 12 1df0: 51 storesp 4 1df1: f6 im -10 1df2: fe im -2 1df3: 3f callpcrel 00001df4 <.LM743>: 1df4: 73 loadsp 12 1df5: 52 storesp 8 1df6: 84 im 4 1df7: 88 im 8 1df8: 80 im 0 1df9: 51 storesp 4 1dfa: d1 im -47 1dfb: f4 im -12 1dfc: 3f callpcrel 1dfd: 83 im 3 1dfe: e0 im -32 1dff: 80 im 0 1e00: 08 load 1e01: 81 im 1 1e02: ff im -1 1e03: 06 and 00001e04 <.LM744>: 1e04: 0b nop 1e05: 0b nop 1e06: 80 im 0 1e07: f9 im -7 1e08: b0 im 48 1e09: 52 storesp 8 1e0a: 54 storesp 16 1e0b: ab im 43 1e0c: e0 im -32 1e0d: 3f callpcrel 00001e0e <.LM745>: 1e0e: 73 loadsp 12 1e0f: 51 storesp 4 1e10: ac im 44 1e11: ea im -22 1e12: 3f callpcrel 00001e13 <.LM746>: 1e13: 0b nop 1e14: 0b nop 1e15: 80 im 0 1e16: f9 im -7 1e17: c4 im -60 1e18: 51 storesp 4 1e19: fd im -3 1e1a: f8 im -8 1e1b: 39 poppcrel 00001e1c <.L551>: 1e1c: 0b nop 1e1d: 0b nop 1e1e: 80 im 0 1e1f: f9 im -7 1e20: c8 im -56 1e21: 51 storesp 4 1e22: ab im 43 1e23: c9 im -55 1e24: 3f callpcrel 00001e25 <.LM748>: 1e25: 76 loadsp 24 1e26: 80 im 0 1e27: fd im -3 1e28: 29 mult 1e29: fd im -3 1e2a: 97 im 23 1e2b: d3 im -45 1e2c: 05 add 1e2d: 51 storesp 4 1e2e: 97 im 23 1e2f: e3 im -29 1e30: 3f callpcrel 00001e31 <.LM749>: 1e31: 7c loadsp 48 1e32: 53 storesp 12 1e33: 80 im 0 1e34: fd im -3 1e35: 52 storesp 8 1e36: 83 im 3 1e37: e0 im -32 1e38: c8 im -56 1e39: 51 storesp 4 1e3a: 95 im 21 1e3b: b9 im 57 1e3c: 3f callpcrel 00001e3d <.LM750>: 1e3d: 90 im 16 1e3e: 3d pushspadd 1e3f: 22 loadh 1e40: 70 loadsp 0 1e41: 83 im 3 1e42: ff im -1 1e43: ff im -1 1e44: 06 and 00001e45 <.LM751>: 1e45: 81 im 1 1e46: 19 addsp 36 1e47: 59 storesp 36 1e48: 55 storesp 20 1e49: 56 storesp 24 00001e4a <.LM752>: 1e4a: 73 loadsp 12 1e4b: 80 im 0 1e4c: fc im -4 1e4d: 26 ulessthan 1e4e: 83 im 3 1e4f: 38 neqbranch 00001e50 <.LM753>: 1e50: 74 loadsp 16 1e51: 57 storesp 28 00001e52 <.L516>: 1e52: 76 loadsp 24 1e53: 88 im 8 1e54: 2c ashiftright 1e55: 54 storesp 16 1e56: 73 loadsp 12 1e57: 83 im 3 1e58: e1 im -31 1e59: c5 im -59 1e5a: 34 storeb 00001e5b <.LM755>: 1e5b: 76 loadsp 24 1e5c: 83 im 3 1e5d: e1 im -31 1e5e: c6 im -58 1e5f: 34 storeb 00001e60 <.LM756>: 1e60: 75 loadsp 20 1e61: 83 im 3 1e62: e1 im -31 1e63: c7 im -57 1e64: 34 storeb 00001e65 <.LM757>: 1e65: 0b nop 1e66: 0b nop 1e67: 80 im 0 1e68: f9 im -7 1e69: bc im 60 1e6a: 51 storesp 4 1e6b: ab im 43 1e6c: 80 im 0 1e6d: 3f callpcrel 00001e6e <.LM758>: 1e6e: 81 im 1 1e6f: 80 im 0 1e70: 54 storesp 16 1e71: fe im -2 1e72: fc im -4 1e73: 39 poppcrel 00001e74 <.L469>: 1e74: a8 im 40 1e75: 0b nop 1e76: 83 im 3 1e77: e3 im -29 1e78: 8c im 12 1e79: 0c store 00001e7a <.LM760>: 1e7a: 0b nop 1e7b: 0b nop 1e7c: 80 im 0 1e7d: f8 im -8 1e7e: c4 im -60 1e7f: 51 storesp 4 1e80: aa im 42 1e81: eb im -21 1e82: 3f callpcrel 00001e83 <.LM761>: 1e83: 83 im 3 1e84: e3 im -29 1e85: 8e im 14 1e86: 22 loadh 1e87: 51 storesp 4 1e88: ab im 43 1e89: f2 im -14 1e8a: 3f callpcrel 1e8b: fa im -6 1e8c: ab im 43 1e8d: 39 poppcrel 00001e8e <.L548>: 1e8e: 0b nop 1e8f: 0b nop 1e90: 80 im 0 1e91: f9 im -7 1e92: d0 im -48 1e93: 51 storesp 4 1e94: aa im 42 1e95: d7 im -41 1e96: 3f callpcrel 00001e97 <.LM763>: 1e97: ff im -1 1e98: 17 addsp 28 1e99: 70 loadsp 0 1e9a: 87 im 7 1e9b: 2b ashiftleft 1e9c: 83 im 3 1e9d: ff im -1 1e9e: ff im -1 1e9f: 80 im 0 1ea0: 06 and 1ea1: 80 im 0 1ea2: f9 im -7 1ea3: f8 im -8 1ea4: 05 add 00001ea5 <.LM764>: 1ea5: 83 im 3 1ea6: e0 im -32 1ea7: c8 im -56 1ea8: 58 storesp 32 1ea9: 56 storesp 24 1eaa: 54 storesp 16 00001eab <.LM765>: 1eab: 81 im 1 1eac: 80 im 0 1ead: 54 storesp 16 00001eae <.L481>: 1eae: 74 loadsp 16 1eaf: 70 loadsp 0 1eb0: 81 im 1 1eb1: 05 add 1eb2: 56 storesp 24 1eb3: 33 loadb 1eb4: 76 loadsp 24 1eb5: 70 loadsp 0 1eb6: 81 im 1 1eb7: 05 add 1eb8: 58 storesp 32 1eb9: 34 storeb 00001eba <.LM767>: 1eba: ff im -1 1ebb: 14 addsp 16 1ebc: 70 loadsp 0 1ebd: 81 im 1 1ebe: ff im -1 1ebf: 06 and 1ec0: 51 storesp 4 1ec1: 54 storesp 16 00001ec2 <.LM768>: 1ec2: 73 loadsp 12 1ec3: 80 im 0 1ec4: 2e eq 1ec5: fe im -2 1ec6: 9c im 28 1ec7: 38 neqbranch 00001ec8 <.LM769>: 1ec8: 74 loadsp 16 1ec9: 70 loadsp 0 1eca: 81 im 1 1ecb: 05 add 1ecc: 56 storesp 24 1ecd: 33 loadb 1ece: 76 loadsp 24 1ecf: 70 loadsp 0 1ed0: 81 im 1 1ed1: 05 add 1ed2: 58 storesp 32 1ed3: 34 storeb 00001ed4 <.LM770>: 1ed4: ff im -1 1ed5: 14 addsp 16 1ed6: 70 loadsp 0 1ed7: 81 im 1 1ed8: ff im -1 1ed9: 06 and 1eda: 51 storesp 4 1edb: 54 storesp 16 00001edc <.LM771>: 1edc: 73 loadsp 12 1edd: d0 im -48 1ede: 38 neqbranch 1edf: fe im -2 1ee0: 82 im 2 1ee1: 39 poppcrel 00001ee2 <.L550>: 1ee2: 0b nop 1ee3: 0b nop 1ee4: 80 im 0 1ee5: f9 im -7 1ee6: d8 im -40 1ee7: 51 storesp 4 1ee8: aa im 42 1ee9: 83 im 3 1eea: 3f callpcrel 00001eeb <.LBB38>: 1eeb: 74 loadsp 16 1eec: 75 loadsp 20 1eed: 59 storesp 36 1eee: 57 storesp 28 00001eef <.L502>: 1eef: 80 im 0 1ef0: 0b nop 1ef1: 83 im 3 1ef2: e2 im -30 1ef3: d8 im -40 1ef4: 18 addsp 32 1ef5: 33 loadb 1ef6: 70 loadsp 0 1ef7: 81 im 1 1ef8: ff im -1 1ef9: 06 and 1efa: ff im -1 1efb: bf im 63 1efc: 11 addsp 4 1efd: 57 storesp 28 1efe: 57 storesp 28 1eff: 5b storesp 44 1f00: 5b storesp 44 1f01: 73 loadsp 12 1f02: 99 im 25 1f03: 26 ulessthan 1f04: 83 im 3 1f05: 38 neqbranch 1f06: 81 im 1 1f07: 5b storesp 44 00001f08 <.L493>: 1f08: 80 im 0 1f09: 0b nop 1f0a: d0 im -48 1f0b: 16 addsp 24 1f0c: 55 storesp 20 1f0d: 56 storesp 24 1f0e: 73 loadsp 12 1f0f: 89 im 9 1f10: 26 ulessthan 1f11: 83 im 3 1f12: 38 neqbranch 1f13: 81 im 1 1f14: 56 storesp 24 00001f15 <.L494>: 1f15: 7a loadsp 40 1f16: 76 loadsp 24 1f17: 07 or 1f18: 54 storesp 16 1f19: 73 loadsp 12 1f1a: 80 im 0 1f1b: 2e eq 1f1c: 8f im 15 1f1d: 38 neqbranch 00001f1e <.LM775>: 1f1e: 79 loadsp 36 1f1f: 83 im 3 1f20: e0 im -32 1f21: c8 im -56 1f22: 19 addsp 36 1f23: 34 storeb 00001f24 <.LM776>: 1f24: 81 im 1 1f25: 18 addsp 32 1f26: 70 loadsp 0 1f27: 81 im 1 1f28: ff im -1 1f29: 06 and 1f2a: 59 storesp 36 1f2b: 54 storesp 16 00001f2c <.L492>: 1f2c: 76 loadsp 24 1f2d: 87 im 7 1f2e: 32 xor 1f2f: 70 loadsp 0 1f30: 30 neg 1f31: 70 loadsp 0 1f32: 72 loadsp 8 1f33: 07 or 1f34: 80 im 0 1f35: 25 lessthanorequal 1f36: 79 loadsp 36 1f37: 8a im 10 1f38: 32 xor 1f39: 70 loadsp 0 1f3a: 30 neg 1f3b: 70 loadsp 0 1f3c: 72 loadsp 8 1f3d: 07 or 1f3e: 80 im 0 1f3f: 25 lessthanorequal 1f40: 73 loadsp 12 1f41: 07 or 1f42: 53 storesp 12 1f43: 54 storesp 16 1f44: 59 storesp 36 1f45: 51 storesp 4 1f46: 56 storesp 24 1f47: 54 storesp 16 1f48: 74 loadsp 16 1f49: 80 im 0 1f4a: 2e eq 1f4b: 9a im 26 1f4c: 38 neqbranch 00001f4d <.LM778>: 1f4d: 77 loadsp 28 1f4e: 77 loadsp 28 1f4f: 26 ulessthan 1f50: 95 im 21 1f51: 38 neqbranch 00001f52 <.L554>: 1f52: a0 im 32 1f53: 0b nop 1f54: 83 im 3 1f55: e0 im -32 1f56: c8 im -56 1f57: 19 addsp 36 1f58: 34 storeb 1f59: 81 im 1 1f5a: 18 addsp 32 1f5b: 70 loadsp 0 1f5c: 81 im 1 1f5d: ff im -1 1f5e: 06 and 1f5f: 59 storesp 36 1f60: 54 storesp 16 1f61: 76 loadsp 24 1f62: 78 loadsp 32 1f63: 27 ulessthanorequal 1f64: ed im -19 1f65: 38 neqbranch 00001f66 <.L491>: 1f66: 81 im 1 1f67: 17 addsp 28 1f68: 70 loadsp 0 1f69: 81 im 1 1f6a: ff im -1 1f6b: 06 and 1f6c: 58 storesp 32 1f6d: 54 storesp 16 1f6e: 8a im 10 1f6f: 77 loadsp 28 1f70: 27 ulessthanorequal 1f71: fe im -2 1f72: fc im -4 1f73: 38 neqbranch 00001f74 <.LM780>: 1f74: 8f im 15 1f75: 57 storesp 28 00001f76 <.L506>: 1f76: 83 im 3 1f77: e0 im -32 1f78: c3 im -61 1f79: 17 addsp 28 1f7a: 33 loadb 1f7b: 83 im 3 1f7c: e0 im -32 1f7d: c8 im -56 1f7e: 18 addsp 32 1f7f: 34 storeb 1f80: ff im -1 1f81: 17 addsp 28 1f82: 70 loadsp 0 1f83: 81 im 1 1f84: ff im -1 1f85: 06 and 1f86: 58 storesp 32 1f87: 54 storesp 16 1f88: 76 loadsp 24 1f89: 84 im 4 1f8a: 26 ulessthan 1f8b: ea im -22 1f8c: 38 neqbranch 00001f8d <.LM781>: 1f8d: 90 im 16 1f8e: 57 storesp 28 00001f8f <.L510>: 1f8f: 80 im 0 1f90: 0b nop 1f91: 83 im 3 1f92: e0 im -32 1f93: c8 im -56 1f94: 18 addsp 32 1f95: 34 storeb 00001f96 <.LM783>: 1f96: 81 im 1 1f97: 17 addsp 28 1f98: 70 loadsp 0 1f99: 81 im 1 1f9a: ff im -1 1f9b: 06 and 1f9c: 70 loadsp 0 1f9d: 98 im 24 1f9e: 2b ashiftleft 1f9f: 52 storesp 8 1fa0: 58 storesp 32 1fa1: 54 storesp 16 1fa2: 73 loadsp 12 1fa3: 80 im 0 1fa4: 25 lessthanorequal 1fa5: e9 im -23 1fa6: 38 neqbranch 00001fa7 <.LBE38>: 1fa7: 80 im 0 1fa8: c6 im -58 1fa9: 54 storesp 16 1faa: 7b loadsp 44 1fab: 85 im 5 1fac: 8f im 15 1fad: 24 lessthan 1fae: 84 im 4 1faf: 38 neqbranch 1fb0: 80 im 0 1fb1: c2 im -62 1fb2: 54 storesp 16 00001fb3 <.L512>: 1fb3: 73 loadsp 12 1fb4: 83 im 3 1fb5: e0 im -32 1fb6: c8 im -56 1fb7: 34 storeb 00001fb8 <.LM785>: 1fb8: 80 im 0 1fb9: f1 im -15 1fba: 0b nop 1fbb: 83 im 3 1fbc: e0 im -32 1fbd: cb im -53 1fbe: 34 storeb 1fbf: 81 im 1 1fc0: 0b nop 1fc1: 83 im 3 1fc2: e0 im -32 1fc3: cc im -52 1fc4: 34 storeb 00001fc5 <.L486>: 1fc5: 7b loadsp 44 1fc6: 83 im 3 1fc7: e0 im -32 1fc8: c9 im -55 1fc9: 34 storeb 1fca: 7b loadsp 44 1fcb: 88 im 8 1fcc: 2c ashiftright 1fcd: 54 storesp 16 1fce: 73 loadsp 12 1fcf: 83 im 3 1fd0: e0 im -32 1fd1: ca im -54 1fd2: 34 storeb 00001fd3 <.L555>: 1fd3: 0b nop 1fd4: 0b nop 1fd5: 80 im 0 1fd6: f9 im -7 1fd7: bc im 60 1fd8: 51 storesp 4 1fd9: a8 im 40 1fda: 92 im 18 1fdb: 3f callpcrel 00001fdc <.LM788>: 1fdc: 81 im 1 1fdd: 80 im 0 1fde: 54 storesp 16 1fdf: fc im -4 1fe0: 8e im 14 1fe1: 39 poppcrel 00001fe2 <.L549>: 1fe2: 0b nop 1fe3: 0b nop 1fe4: 80 im 0 1fe5: f9 im -7 1fe6: e0 im -32 1fe7: 51 storesp 4 1fe8: a8 im 40 1fe9: 83 im 3 1fea: 3f callpcrel 00001feb <.LM790>: 1feb: 7b loadsp 44 1fec: 83 im 3 1fed: e0 im -32 1fee: c9 im -55 1fef: 34 storeb 1ff0: 7b loadsp 44 1ff1: 88 im 8 1ff2: 2c ashiftright 1ff3: 54 storesp 16 1ff4: 73 loadsp 12 1ff5: 83 im 3 1ff6: e0 im -32 1ff7: ca im -54 1ff8: 34 storeb 1ff9: d9 im -39 1ffa: 39 poppcrel 00001ffb
: 1ffb: ff im -1 1ffc: 3d pushspadd 1ffd: 0d popsp 00001ffe <.LM792>: 1ffe: 80 im 0 1fff: 0b nop 2000: 83 im 3 2001: e0 im -32 2002: ac im 44 2003: 0c store 00002004 <.LM793>: 2004: 80 im 0 2005: 0b nop 2006: 83 im 3 2007: e3 im -29 2008: a8 im 40 2009: 0c store 0000200a <.LM794>: 200a: 80 im 0 200b: 0b nop 200c: 83 im 3 200d: e0 im -32 200e: b4 im 52 200f: 0c store 00002010 <.LM795>: 2010: 81 im 1 2011: 51 storesp 4 2012: cc im -52 2013: fa im -6 2014: 3f callpcrel 00002015 <.LM796>: 2015: a8 im 40 2016: 0b nop 2017: 83 im 3 2018: e3 im -29 2019: 8c im 12 201a: 0c store 0000201b <.LM797>: 201b: 83 im 3 201c: e0 im -32 201d: ac im 44 201e: 08 load 201f: 51 storesp 4 2020: a5 im 37 2021: bb im 59 2022: 3f callpcrel 00002023 <.LM798>: 2023: 83 im 3 2024: e0 im -32 2025: ac im 44 2026: 08 load 2027: ab im 43 2028: 38 neqbranch 00002029 <.LM799>: 2029: f3 im -13 202a: a8 im 40 202b: 3f callpcrel 0000202c <.LM800>: 202c: 81 im 1 202d: 51 storesp 4 202e: cc im -52 202f: de im -34 2030: 3f callpcrel 00002031 <.LM801>: 2031: 80 im 0 2032: 51 storesp 4 2033: cc im -52 2034: b5 im 53 2035: 3f callpcrel 00002036 <.LM802>: 2036: 80 im 0 2037: fb im -5 2038: e4 im -28 2039: 08 load 203a: 52 storesp 8 203b: 80 im 0 203c: 72 loadsp 8 203d: 34 storeb 0000203e <.LM803>: 203e: cb im -53 203f: b0 im 48 2040: 3f callpcrel 00002041 <.LM804>: 2041: 81 im 1 2042: 51 storesp 4 2043: cc im -52 2044: a5 im 37 2045: 3f callpcrel 00002046 <.LM805>: 2046: 80 im 0 2047: 51 storesp 4 2048: cc im -52 2049: c4 im -60 204a: 3f callpcrel 0000204b <.L559>: 204b: da im -38 204c: 8c im 12 204d: 3f callpcrel 204e: da im -38 204f: 89 im 9 2050: 3f callpcrel 2051: f9 im -7 2052: 39 poppcrel 00002053 <.L562>: 2053: 80 im 0 2054: 51 storesp 4 2055: cc im -52 2056: 93 im 19 2057: 3f callpcrel 00002058 <.LM808>: 2058: 80 im 0 2059: fb im -5 205a: e4 im -28 205b: 08 load 205c: 52 storesp 8 205d: 80 im 0 205e: 72 loadsp 8 205f: 34 storeb 00002060 <.LM809>: 2060: cb im -53 2061: 8e im 14 2062: 3f callpcrel 00002063 <.LM810>: 2063: 81 im 1 2064: 51 storesp 4 2065: cc im -52 2066: 83 im 3 2067: 3f callpcrel 00002068 <.LM811>: 2068: 80 im 0 2069: 51 storesp 4 206a: cc im -52 206b: a2 im 34 206c: 3f callpcrel 0000206d <.LM812>: 206d: 80 im 0 206e: fa im -6 206f: 89 im 9 2070: 80 im 0 2071: 51 storesp 4 2072: c8 im -56 2073: bf im 63 2074: 3f callpcrel 00002075 <.LM813>: 2075: f2 im -14 2076: dc im -36 2077: 3f callpcrel 00002078 <.LM814>: 2078: 81 im 1 2079: 51 storesp 4 207a: cc im -52 207b: 92 im 18 207c: 3f callpcrel 0000207d <.LM815>: 207d: 80 im 0 207e: 51 storesp 4 207f: cb im -53 2080: e9 im -23 2081: 3f callpcrel 00002082 <.LM816>: 2082: 80 im 0 2083: fb im -5 2084: e4 im -28 2085: 08 load 2086: 52 storesp 8 2087: 80 im 0 2088: 72 loadsp 8 2089: 34 storeb 0000208a <.LM817>: 208a: ca im -54 208b: e4 im -28 208c: 3f callpcrel 0000208d <.LM818>: 208d: 81 im 1 208e: 51 storesp 4 208f: cb im -53 2090: d9 im -39 2091: 3f callpcrel 00002092 <.LM819>: 2092: 80 im 0 2093: 51 storesp 4 2094: cb im -53 2095: f8 im -8 2096: 3f callpcrel 2097: ff im -1 2098: b2 im 50 2099: 39 poppcrel 0000209a : static CLUST get_fat ( /* 1:IO error, Else:Cluster status */ CLUST clst /* Cluster# to get the link information */ ) { 209a: f7 im -9 209b: 3d pushspadd 209c: 0d popsp 209d: 7b loadsp 44 0000209e <.LM2>: WORD wc, bc, ofs; BYTE buf[4]; FATFS *fs = FatFs; 209e: 83 im 3 209f: e0 im -32 20a0: 90 im 16 20a1: 08 load 20a2: 57 storesp 28 20a3: 58 storesp 32 000020a4 <.LM3>: if (clst < 2 || clst >= fs->n_fatent) /* Range check */ 20a4: 81 im 1 20a5: 78 loadsp 32 20a6: 27 ulessthanorequal 20a7: 9c im 28 20a8: 38 neqbranch 20a9: 77 loadsp 28 20aa: 88 im 8 20ab: 17 addsp 28 20ac: 08 load 20ad: 27 ulessthanorequal 20ae: 95 im 21 20af: 38 neqbranch 000020b0 <.LM4>: return 1; switch (fs->fs_type) { 20b0: 75 loadsp 20 20b1: 33 loadb 20b2: 57 storesp 28 20b3: 76 loadsp 24 20b4: 82 im 2 20b5: 2e eq 20b6: 81 im 1 20b7: d0 im -48 20b8: 38 neqbranch 20b9: 76 loadsp 24 20ba: 82 im 2 20bb: 24 lessthan 20bc: 91 im 17 20bd: 38 neqbranch 20be: 76 loadsp 24 20bf: 81 im 1 20c0: 2e eq 20c1: 80 im 0 20c2: e6 im -26 20c3: 38 neqbranch 000020c4 <.L4>: #if _FS_FAT12 case FS_FAT12 : bc = (WORD)clst; bc += bc / 2; ofs = bc % 512; bc /= 512; if (ofs != 511) { if (disk_readp(buf, fs->fatbase + bc, ofs, 2)) break; } else { if (disk_readp(buf, fs->fatbase + bc, 511, 1)) break; if (disk_readp(buf+1, fs->fatbase + bc + 1, 0, 1)) break; } wc = LD_WORD(buf); return (clst & 1) ? (wc >> 4) : (wc & 0xFFF); #endif case FS_FAT16 : if (disk_readp(buf, fs->fatbase + clst / 256, (WORD)(((WORD)clst % 256) * 2), 2)) break; return LD_WORD(buf); #if _FS_FAT32 case FS_FAT32 : if (disk_readp(buf, fs->fatbase + clst / 128, (WORD)(((WORD)clst % 128) * 4), 4)) break; return LD_DWORD(buf) & 0x0FFFFFFF; #endif } return 1; /* An error occured at the disk I/O layer */ 20c4: 81 im 1 000020c5 <.LM6>: } 20c5: 0b nop 20c6: 83 im 3 20c7: e0 im -32 20c8: 80 im 0 20c9: 0c store 20ca: 8b im 11 20cb: 3d pushspadd 20cc: 0d popsp 20cd: 04 poppc 000020ce <.L17>: 20ce: 76 loadsp 24 20cf: 83 im 3 20d0: 2e eq 20d1: 09 not 20d2: 81 im 1 20d3: 06 and 20d4: ef im -17 20d5: 38 neqbranch 000020d6 <.LM8>: 20d6: 84 im 4 20d7: 54 storesp 16 20d8: 77 loadsp 28 20d9: 82 im 2 20da: 2b ashiftleft 20db: 83 im 3 20dc: fc im -4 20dd: 06 and 20de: 53 storesp 12 20df: 77 loadsp 28 20e0: 87 im 7 20e1: 2a lshiftright 20e2: 8c im 12 20e3: 17 addsp 28 20e4: 08 load 20e5: 05 add 20e6: 52 storesp 8 20e7: 8b im 11 20e8: 3d pushspadd 20e9: fc im -4 20ea: 05 add 20eb: 51 storesp 4 20ec: f0 im -16 20ed: 91 im 17 20ee: 3f callpcrel 20ef: 83 im 3 20f0: e0 im -32 20f1: 80 im 0 20f2: 08 load 20f3: d0 im -48 20f4: 38 neqbranch 000020f5 <.LM9>: 20f5: 02 pushsp 20f6: a7 im 39 20f7: 05 add 20f8: 33 loadb 20f9: 02 pushsp 20fa: 84 im 4 20fb: 05 add 20fc: a6 im 38 20fd: 05 add 20fe: 33 loadb 20ff: 71 loadsp 4 2100: 98 im 24 2101: 2b ashiftleft 2102: 71 loadsp 4 2103: 90 im 16 2104: 2b ashiftleft 2105: 07 or 2106: 02 pushsp 2107: 8c im 12 2108: 05 add 2109: a5 im 37 210a: 05 add 210b: 33 loadb 210c: 70 loadsp 0 210d: 88 im 8 210e: 2b ashiftleft 210f: 72 loadsp 8 2110: 07 or 2111: 8f im 15 2112: 3d pushspadd 2113: 33 loadb 2114: 71 loadsp 4 2115: 80 im 0 2116: ff im -1 2117: ff im -1 2118: fe im -2 2119: 80 im 0 211a: 06 and 211b: 07 or 0000211c <.LM10>: 211c: 83 im 3 211d: e0 im -32 211e: 80 im 0 211f: 0c store 2120: 52 storesp 8 2121: 5c storesp 48 2122: 57 storesp 28 2123: 58 storesp 32 2124: 56 storesp 24 2125: 8b im 11 2126: 3d pushspadd 2127: 0d popsp 2128: 04 poppc 00002129 <.L5>: 2129: 77 loadsp 28 212a: 83 im 3 212b: ff im -1 212c: ff im -1 212d: 06 and 212e: 70 loadsp 0 212f: 81 im 1 2130: 2a lshiftright 2131: 11 addsp 4 2132: 70 loadsp 0 2133: 83 im 3 2134: ff im -1 2135: ff im -1 2136: 06 and 00002137 <.LM12>: 2137: 70 loadsp 0 2138: 83 im 3 2139: ff im -1 213a: 06 and 213b: 71 loadsp 4 213c: 89 im 9 213d: 2a lshiftright 213e: 52 storesp 8 213f: 5c storesp 48 2140: 51 storesp 4 2141: 51 storesp 4 2142: 55 storesp 20 00002143 <.LM13>: 2143: 78 loadsp 32 2144: 83 im 3 2145: ff im -1 2146: 2e eq 2147: 80 im 0 2148: f2 im -14 2149: 38 neqbranch 0000214a <.LM14>: 214a: 82 im 2 214b: 54 storesp 16 214c: 78 loadsp 32 214d: 53 storesp 12 214e: 8c im 12 214f: 16 addsp 24 2150: 08 load 2151: 15 addsp 20 2152: 52 storesp 8 2153: 8b im 11 2154: 3d pushspadd 2155: fc im -4 2156: 05 add 2157: 51 storesp 4 00002158 <.L18>: 2158: ef im -17 2159: a5 im 37 215a: 3f callpcrel 215b: 83 im 3 215c: e0 im -32 215d: 80 im 0 215e: 08 load 215f: fe im -2 2160: e3 im -29 2161: 38 neqbranch 00002162 <.LM16>: 2162: 02 pushsp 2163: a5 im 37 2164: 05 add 2165: 33 loadb 2166: 8b im 11 2167: 3d pushspadd 2168: 33 loadb 2169: 71 loadsp 4 216a: 88 im 8 216b: 2b ashiftleft 216c: 07 or 0000216d <.LM17>: 216d: 79 loadsp 36 216e: 81 im 1 216f: 06 and 2170: 71 loadsp 4 2171: 84 im 4 2172: 2a lshiftright 2173: 53 storesp 12 2174: 57 storesp 28 2175: 58 storesp 32 2176: 56 storesp 24 2177: 74 loadsp 16 2178: 86 im 6 2179: 38 neqbranch 217a: 76 loadsp 24 217b: 9f im 31 217c: ff im -1 217d: 06 and 217e: 56 storesp 24 0000217f <.L12>: 217f: 75 loadsp 20 00002180 <.LM18>: 2180: 83 im 3 2181: e0 im -32 2182: 80 im 0 2183: 0c store 2184: 8b im 11 2185: 3d pushspadd 2186: 0d popsp 2187: 04 poppc 00002188 <.L13>: 2188: 76 loadsp 24 2189: 54 storesp 16 218a: 77 loadsp 28 218b: 10 addsp 0 218c: 83 im 3 218d: fe im -2 218e: 06 and 218f: 53 storesp 12 2190: 77 loadsp 28 2191: 88 im 8 2192: 2a lshiftright 2193: 8c im 12 2194: 17 addsp 28 2195: 08 load 2196: 05 add 2197: 52 storesp 8 2198: 8b im 11 2199: 3d pushspadd 219a: fc im -4 219b: 05 add 219c: 51 storesp 4 219d: ee im -18 219e: e0 im -32 219f: 3f callpcrel 21a0: 83 im 3 21a1: e0 im -32 21a2: 80 im 0 21a3: 08 load 21a4: fe im -2 21a5: 9e im 30 21a6: 38 neqbranch 000021a7 <.LM20>: 21a7: 02 pushsp 21a8: a5 im 37 21a9: 05 add 21aa: 33 loadb 21ab: 8b im 11 21ac: 3d pushspadd 21ad: 33 loadb 21ae: 71 loadsp 4 21af: 88 im 8 21b0: 2b ashiftleft 21b1: 07 or 000021b2 <.LM21>: 21b2: 83 im 3 21b3: e0 im -32 21b4: 80 im 0 21b5: 0c store 21b6: 56 storesp 24 21b7: 8b im 11 21b8: 3d pushspadd 21b9: 0d popsp 21ba: 04 poppc 000021bb <.L6>: 21bb: 76 loadsp 24 21bc: 54 storesp 16 21bd: 78 loadsp 32 21be: 53 storesp 12 21bf: 8c im 12 21c0: 16 addsp 24 21c1: 08 load 21c2: 15 addsp 20 21c3: 52 storesp 8 21c4: 8b im 11 21c5: 3d pushspadd 21c6: fc im -4 21c7: 05 add 21c8: 51 storesp 4 21c9: ee im -18 21ca: b4 im 52 21cb: 3f callpcrel 21cc: 83 im 3 21cd: e0 im -32 21ce: 80 im 0 21cf: 08 load 21d0: fd im -3 21d1: f2 im -14 21d2: 38 neqbranch 000021d3 <.LM23>: 21d3: 76 loadsp 24 21d4: 54 storesp 16 21d5: 83 im 3 21d6: e0 im -32 21d7: 80 im 0 21d8: 08 load 21d9: 53 storesp 12 21da: 8c im 12 21db: 16 addsp 24 21dc: 08 load 21dd: 15 addsp 20 21de: 81 im 1 21df: 05 add 21e0: 52 storesp 8 21e1: 8b im 11 21e2: 3d pushspadd 21e3: fd im -3 21e4: 05 add 21e5: 51 storesp 4 21e6: fe im -2 21e7: f0 im -16 21e8: 39 poppcrel 000021e9 : /*-----------------------------------------------------------------------*/ /* Get sector# from cluster# */ /*-----------------------------------------------------------------------*/ static DWORD clust2sect ( /* !=0: Sector number, 0: Failed - invalid cluster# */ CLUST clst /* Cluster# to be converted */ ) { 21e9: fb im -5 21ea: 3d pushspadd 21eb: 0d popsp 000021ec <.LM25>: FATFS *fs = FatFs; 21ec: 83 im 3 21ed: e0 im -32 21ee: 90 im 16 21ef: 08 load 000021f0 <.LM26>: clst -= 2; 21f0: fe im -2 21f1: 19 addsp 36 000021f2 <.LM27>: if (clst >= (fs->n_fatent - 2)) return 0; /* Invalid cluster# */ 21f2: 88 im 8 21f3: 12 addsp 8 21f4: 08 load 21f5: fe im -2 21f6: 05 add 21f7: 55 storesp 20 21f8: 56 storesp 24 21f9: 54 storesp 16 21fa: 80 im 0 21fb: 56 storesp 24 21fc: 74 loadsp 16 21fd: 73 loadsp 12 21fe: 27 ulessthanorequal 21ff: 8d im 13 2200: 38 neqbranch 00002201 <.LM28>: return (DWORD)clst * fs->csize + fs->database; 2201: 82 im 2 2202: 14 addsp 16 2203: 33 loadb 2204: 75 loadsp 20 2205: 71 loadsp 4 2206: 29 mult 2207: 94 im 20 2208: 16 addsp 24 2209: 08 load 220a: 05 add 220b: 57 storesp 28 220c: 53 storesp 12 0000220d <.L20>: } 220d: 75 loadsp 20 220e: 83 im 3 220f: e0 im -32 2210: 80 im 0 2211: 0c store 2212: 87 im 7 2213: 3d pushspadd 2214: 0d popsp 2215: 04 poppc 00002216 : /*-----------------------------------------------------------------------*/ /* Directory handling - Rewind directory index */ /*-----------------------------------------------------------------------*/ static FRESULT dir_rewind ( DIR *dj /* Pointer to directory object */ ) { 2216: fc im -4 2217: 3d pushspadd 2218: 0d popsp 2219: 76 loadsp 24 0000221a <.LM31>: CLUST clst; FATFS *fs = FatFs; 221a: 83 im 3 221b: e0 im -32 221c: 90 im 16 221d: 08 load 221e: 55 storesp 20 221f: 55 storesp 20 00002220 <.LM32>: dj->index = 0; 2220: 80 im 0 2221: 75 loadsp 20 2222: 23 storeh 00002223 <.LM33>: clst = dj->sclust; 2223: 88 im 8 2224: 15 addsp 20 2225: 08 load 2226: 53 storesp 12 00002227 <.LM34>: if (clst == 1 || clst >= fs->n_fatent) /* Check start cluster range */ 2227: 72 loadsp 8 2228: 81 im 1 2229: 2e eq 222a: 88 im 8 222b: 38 neqbranch 222c: 88 im 8 222d: 14 addsp 16 222e: 08 load 222f: 73 loadsp 12 2230: 26 ulessthan 2231: 8b im 11 2232: 38 neqbranch 00002233 <.L25>: return FR_DISK_ERR; 2233: 81 im 1 00002234 <.LM36>: if (_FS_FAT32 && !clst && fs->fs_type == FS_FAT32) /* Replace cluster# 0 with root cluster# if in FAT32 */ clst = (CLUST)fs->dirbase; dj->clust = clst; /* Current cluster */ dj->sect = clst ? clust2sect(clst) : fs->dirbase; /* Current sector */ return FR_OK; /* Seek succeeded */ } 2234: 0b nop 2235: 83 im 3 2236: e0 im -32 2237: 80 im 0 2238: 0c store 2239: 86 im 6 223a: 3d pushspadd 223b: 0d popsp 223c: 04 poppc 0000223d <.L24>: 223d: 72 loadsp 8 223e: 90 im 16 223f: 38 neqbranch 2240: 73 loadsp 12 2241: 33 loadb 2242: 52 storesp 8 2243: 71 loadsp 4 2244: 83 im 3 2245: 2e eq 2246: 09 not 2247: 81 im 1 2248: 06 and 2249: 85 im 5 224a: 38 neqbranch 0000224b <.LM38>: 224b: 90 im 16 224c: 14 addsp 16 224d: 08 load 224e: 53 storesp 12 0000224f <.L26>: 224f: 72 loadsp 8 2250: 8c im 12 2251: 16 addsp 24 2252: 0c store 00002253 <.LM40>: 2253: 72 loadsp 8 2254: 80 im 0 2255: 2e eq 2256: 98 im 24 2257: 38 neqbranch 2258: 72 loadsp 8 2259: 51 storesp 4 225a: ff im -1 225b: 8d im 13 225c: 3f callpcrel 225d: 83 im 3 225e: e0 im -32 225f: 80 im 0 2260: 08 load 2261: 90 im 16 2262: 16 addsp 24 2263: 0c store 00002264 <.LM41>: 2264: 80 im 0 2265: 52 storesp 8 00002266 <.L30>: 2266: 71 loadsp 4 2267: 83 im 3 2268: e0 im -32 2269: 80 im 0 226a: 0c store 226b: 86 im 6 226c: 3d pushspadd 226d: 0d popsp 226e: 04 poppc 0000226f <.L27>: 226f: 90 im 16 2270: 14 addsp 16 2271: 08 load 2272: 90 im 16 2273: 16 addsp 24 2274: 0c store 00002275 <.LM44>: 2275: 80 im 0 2276: 52 storesp 8 2277: ee im -18 2278: 39 poppcrel 00002279 : /*-----------------------------------------------------------------------*/ /* Directory handling - Move directory index next */ /*-----------------------------------------------------------------------*/ static FRESULT dir_next ( /* FR_OK:Succeeded, FR_NO_FILE:End of table */ DIR *dj /* Pointer to directory object */ ) { 2279: fa im -6 227a: 3d pushspadd 227b: 0d popsp 227c: 78 loadsp 32 0000227d <.LM46>: CLUST clst; WORD i; FATFS *fs = FatFs; 227d: 83 im 3 227e: e0 im -32 227f: 90 im 16 2280: 08 load 00002281 <.LM47>: i = dj->index + 1; 2281: 71 loadsp 4 2282: 22 loadh 2283: 81 im 1 2284: 05 add 2285: 70 loadsp 0 2286: 83 im 3 2287: ff im -1 2288: ff im -1 2289: 06 and 228a: 57 storesp 28 228b: 54 storesp 16 228c: 57 storesp 28 228d: 55 storesp 20 0000228e <.LM48>: if (!i || !dj->sect) /* Report EOT when index has reached 65535 */ 228e: 73 loadsp 12 228f: 80 im 0 2290: 2e eq 2291: b7 im 55 2292: 38 neqbranch 2293: 90 im 16 2294: 15 addsp 20 2295: 08 load 2296: 53 storesp 12 2297: 72 loadsp 8 2298: 80 im 0 2299: 2e eq 229a: ae im 46 229b: 38 neqbranch 0000229c <.LM49>: return FR_NO_FILE; if (!(i % 16)) { /* Sector changed? */ 229c: 73 loadsp 12 229d: 8f im 15 229e: 06 and 229f: 52 storesp 8 22a0: 71 loadsp 4 22a1: 99 im 25 22a2: 38 neqbranch 000022a3 <.LM50>: dj->sect++; /* Next sector */ 22a3: 81 im 1 22a4: 13 addsp 12 22a5: 90 im 16 22a6: 16 addsp 24 22a7: 0c store 000022a8 <.LM51>: if (dj->clust == 0) { /* Static table */ 22a8: 8c im 12 22a9: 15 addsp 20 22aa: 08 load 22ab: 53 storesp 12 22ac: 72 loadsp 8 22ad: a5 im 37 22ae: 38 neqbranch 000022af <.LM52>: if (i >= fs->n_rootdir) /* Report EOT when end of table */ return FR_NO_FILE; 22af: 83 im 3 000022b0 <.LM53>: 22b0: 0b nop 22b1: 84 im 4 22b2: 17 addsp 28 22b3: 22 loadh 22b4: 57 storesp 28 22b5: 52 storesp 8 22b6: 73 loadsp 12 22b7: 76 loadsp 24 22b8: 27 ulessthanorequal 22b9: 86 im 6 22ba: 38 neqbranch 000022bb <.L34>: } else { /* Dynamic table */ if (((i / 16) & (fs->csize-1)) == 0) { /* Cluster changed? */ clst = get_fat(dj->clust); /* Get next cluster */ if (clst <= 1) return FR_DISK_ERR; if (clst >= fs->n_fatent) /* When it reached end of dynamic table */ return FR_NO_FILE; /* Report EOT */ dj->clust = clst; /* Initialize data for new cluster */ dj->sect = clust2sect(clst); } } } dj->index = i; 22bb: 73 loadsp 12 22bc: 75 loadsp 20 22bd: 23 storeh 000022be <.LM55>: return FR_OK; 22be: 80 im 0 22bf: 52 storesp 8 000022c0 <.L31>: } 22c0: 71 loadsp 4 22c1: 83 im 3 22c2: e0 im -32 22c3: 80 im 0 22c4: 0c store 22c5: 88 im 8 22c6: 3d pushspadd 22c7: 0d popsp 22c8: 04 poppc 000022c9 <.L33>: 22c9: 83 im 3 000022ca <.LM58>: 22ca: 0b nop 22cb: 83 im 3 22cc: e0 im -32 22cd: 80 im 0 22ce: 0c store 22cf: 88 im 8 22d0: 3d pushspadd 22d1: 0d popsp 22d2: 04 poppc 000022d3 <.L35>: 22d3: 82 im 2 22d4: 16 addsp 24 22d5: 33 loadb 22d6: ff im -1 22d7: 05 add 22d8: 74 loadsp 16 22d9: 84 im 4 22da: 2a lshiftright 22db: 06 and 22dc: 52 storesp 8 22dd: 71 loadsp 4 22de: dc im -36 22df: 38 neqbranch 000022e0 <.LM60>: 22e0: 72 loadsp 8 22e1: 51 storesp 4 22e2: fb im -5 22e3: b6 im 54 22e4: 3f callpcrel 000022e5 <.LM61>: 22e5: 81 im 1 22e6: 52 storesp 8 22e7: 71 loadsp 4 22e8: 83 im 3 22e9: e0 im -32 22ea: 80 im 0 22eb: 08 load 22ec: 27 ulessthanorequal 22ed: d2 im -46 22ee: 38 neqbranch 000022ef <.LM62>: 22ef: 83 im 3 22f0: 52 storesp 8 000022f1 <.LM63>: 22f1: 83 im 3 22f2: e0 im -32 22f3: 80 im 0 22f4: 08 load 22f5: 88 im 8 22f6: 17 addsp 28 22f7: 08 load 22f8: 27 ulessthanorequal 22f9: c6 im -58 22fa: 38 neqbranch 000022fb <.LM64>: 22fb: 83 im 3 22fc: e0 im -32 22fd: 80 im 0 22fe: 08 load 22ff: 8c im 12 2300: 16 addsp 24 2301: 0c store 00002302 <.LM65>: 2302: 83 im 3 2303: e0 im -32 2304: 80 im 0 2305: 08 load 2306: 51 storesp 4 2307: fd im -3 2308: e0 im -32 2309: 3f callpcrel 230a: 83 im 3 230b: e0 im -32 230c: 80 im 0 230d: 08 load 230e: 90 im 16 230f: 16 addsp 24 2310: 0c store 00002311 <.LM66>: 2311: 73 loadsp 12 2312: 75 loadsp 20 2313: 23 storeh 00002314 <.LM67>: 2314: 80 im 0 2315: 52 storesp 8 2316: ff im -1 2317: a8 im 40 2318: 39 poppcrel 00002319 : /*-----------------------------------------------------------------------*/ /* Directory handling - Find an object in the directory */ /*-----------------------------------------------------------------------*/ static FRESULT dir_find ( DIR *dj, /* Pointer to the directory object linked to the file name */ BYTE *dir /* 32-byte working buffer */ ) { FRESULT res; BYTE c; res = dir_rewind(dj); /* Rewind directory object */ if (res != FR_OK) return res; do { res = disk_readp(dir, dj->sect, (WORD)((dj->index % 16) * 32), 32) /* Read an entry */ ? FR_DISK_ERR : FR_OK; if (res != FR_OK) break; c = dir[DIR_Name]; /* First character */ if (c == 0) { res = FR_NO_FILE; break; } /* Reached to end of table */ if (!(dir[DIR_Attr] & AM_VOL) && !mem_cmp(dir, dj->fn, 11)) /* Is it a valid entry? */ break; res = dir_next(dj); /* Next entry */ } while (res == FR_OK); return res; } /*-----------------------------------------------------------------------*/ /* Read an object from the directory */ /*-----------------------------------------------------------------------*/ #if _USE_DIR static FRESULT dir_read ( DIR *dj, /* Pointer to the directory object to store read object name */ BYTE *dir /* 32-byte working buffer */ ) { FRESULT res; BYTE a, c; res = FR_NO_FILE; while (dj->sect) { res = disk_readp(dir, dj->sect, (WORD)((dj->index % 16) * 32), 32) /* Read an entry */ ? FR_DISK_ERR : FR_OK; if (res != FR_OK) break; c = dir[DIR_Name]; if (c == 0) { res = FR_NO_FILE; break; } /* Reached to end of table */ a = dir[DIR_Attr] & AM_MASK; if (c != 0xE5 && c != '.' && !(a & AM_VOL)) /* Is it a valid entry? */ break; res = dir_next(dj); /* Next entry */ if (res != FR_OK) break; } if (res != FR_OK) dj->sect = 0; return res; } #endif /*-----------------------------------------------------------------------*/ /* Pick a segment and create the object name in directory form */ /*-----------------------------------------------------------------------*/ #ifdef _EXCVT static const BYTE cvt[] = _EXCVT; #endif static FRESULT create_name ( DIR *dj, /* Pointer to the directory object */ const char **path /* Pointer to pointer to the segment in the path string */ ) { BYTE c, d, ni, si, i, *sfn; const char *p; /* Create file name in directory form */ sfn = dj->fn; mem_set(sfn, ' ', 11); si = i = 0; ni = 8; p = *path; for (;;) { c = p[si++]; if (c <= ' ' || c == '/') break; /* Break on end of segment */ if (c == '.' || i >= ni) { if (ni != 8 || c != '.') break; i = 8; ni = 11; continue; } #ifdef _EXCVT if (c >= 0x80) /* To upper extended char (SBCS) */ c = cvt[c - 0x80]; #endif if (IsDBCS1(c) && i < ni - 1) { /* DBC 1st byte? */ d = p[si++]; /* Get 2nd byte */ sfn[i++] = c; sfn[i++] = d; } else { /* Single byte code */ if (IsLower(c)) c -= 0x20; /* toupper */ sfn[i++] = c; } } *path = &p[si]; /* Rerurn pointer to the next segment */ sfn[11] = (c <= ' ') ? 1 : 0; /* Set last segment flag if end of path */ return FR_OK; } /*-----------------------------------------------------------------------*/ /* Get file information from directory entry */ /*-----------------------------------------------------------------------*/ #if _USE_DIR static void get_fileinfo ( /* No return code */ DIR *dj, /* Pointer to the directory object */ BYTE *dir, /* 32-byte working buffer */ FILINFO *fno /* Pointer to store the file information */ ) { BYTE i, c; char *p; p = fno->fname; if (dj->sect) { for (i = 0; i < 8; i++) { /* Copy file name body */ c = dir[i]; if (c == ' ') break; if (c == 0x05) c = 0xE5; *p++ = c; } if (dir[8] != ' ') { /* Copy file name extension */ *p++ = '.'; for (i = 8; i < 11; i++) { c = dir[i]; if (c == ' ') break; *p++ = c; } } fno->fattrib = dir[DIR_Attr]; /* Attribute */ fno->fsize = LD_DWORD(dir+DIR_FileSize); /* Size */ fno->fdate = LD_WORD(dir+DIR_WrtDate); /* Date */ fno->ftime = LD_WORD(dir+DIR_WrtTime); /* Time */ } *p = 0; } #endif /* _USE_DIR */ /*-----------------------------------------------------------------------*/ /* Follow a file path */ /*-----------------------------------------------------------------------*/ static FRESULT follow_path ( /* FR_OK(0): successful, !=0: error code */ DIR *dj, /* Directory object to return last directory and found object */ BYTE *dir, /* 32-byte working buffer */ const char *path /* Full-path string to find a file or directory */ ) { 2319: f2 im -14 231a: 3d pushspadd 231b: 0d popsp 231c: 60 loadsp 64 231d: 62 loadsp 72 0000231e <.LM69>: FRESULT res; while (*path == ' ') path++; /* Skip leading spaces */ 231e: 64 loadsp 80 231f: 70 loadsp 0 2320: 33 loadb 2321: 58 storesp 32 2322: 58 storesp 32 2323: 5e storesp 56 2324: 5e storesp 56 2325: 74 loadsp 16 2326: a0 im 32 2327: 2e eq 2328: 09 not 2329: 81 im 1 232a: 06 and 232b: 8e im 14 232c: 38 neqbranch 0000232d <.L105>: 232d: 81 im 1 232e: 16 addsp 24 232f: 70 loadsp 0 2330: 44 storesp 80 2331: 70 loadsp 0 2332: 33 loadb 2333: 56 storesp 24 2334: 56 storesp 24 2335: 74 loadsp 16 2336: a0 im 32 2337: 2e eq 2338: f4 im -12 2339: 38 neqbranch 0000233a <.L89>: if (*path == '/') path++; /* Strip heading separator */ 233a: 75 loadsp 20 233b: 33 loadb 233c: 55 storesp 20 233d: 74 loadsp 16 233e: af im 47 233f: 2e eq 2340: 82 im 2 2341: 9c im 28 2342: 38 neqbranch 00002343 <.LM71>: dj->sclust = 0; /* Set start directory (always root dir) */ 2343: 80 im 0 2344: 0b nop 2345: 88 im 8 2346: 1f addsp 60 2347: 0c store 00002348 <.LM72>: if ((BYTE)*path <= ' ') { /* Null path means the root directory */ 2348: 75 loadsp 20 2349: 33 loadb 234a: 55 storesp 20 234b: a0 im 32 234c: 75 loadsp 20 234d: 27 ulessthanorequal 234e: 82 im 2 234f: a1 im 33 2350: 38 neqbranch 00002351 <.L47>: 2351: 93 im 19 2352: 3d pushspadd 2353: 84 im 4 2354: 1f addsp 60 2355: 08 load 00002356 <.LBB2>: 2356: 70 loadsp 0 2357: 58 storesp 32 2358: 5c storesp 48 2359: 5f storesp 60 0000235a <.LM74>: 235a: 8a im 10 235b: 55 storesp 20 0000235c <.L53>: 235c: a0 im 32 235d: 76 loadsp 24 235e: 70 loadsp 0 235f: 81 im 1 2360: 05 add 2361: 58 storesp 32 2362: 34 storeb 2363: ff im -1 2364: 15 addsp 20 2365: 55 storesp 20 2366: 74 loadsp 16 2367: ff im -1 2368: 2e eq 2369: 09 not 236a: 81 im 1 236b: 06 and 236c: ef im -17 236d: 38 neqbranch 0000236e <.LBE4>: 236e: 80 im 0 236f: 70 loadsp 0 2370: 59 storesp 36 2371: 59 storesp 36 2372: 88 im 8 00002373 <.LM76>: 2373: 7f loadsp 60 2374: 08 load 2375: 5d storesp 52 2376: 5a storesp 40 00002377 <.L103>: 2377: 78 loadsp 32 2378: 81 im 1 2379: 1a addsp 40 237a: 70 loadsp 0 237b: 81 im 1 237c: ff im -1 237d: 06 and 237e: 7e loadsp 56 237f: 13 addsp 12 2380: 70 loadsp 0 2381: 33 loadb 00002382 <.LM78>: 2382: 70 loadsp 0 2383: af im 47 2384: 32 xor 2385: 70 loadsp 0 2386: 30 neg 2387: a0 im 32 2388: 73 loadsp 12 2389: 27 ulessthanorequal 238a: 71 loadsp 4 238b: 80 im 0 238c: 25 lessthanorequal 238d: 07 or 238e: 51 storesp 4 238f: 51 storesp 4 2390: 52 storesp 8 2391: 5b storesp 44 2392: 53 storesp 12 2393: 5b storesp 44 2394: 57 storesp 28 2395: 55 storesp 20 2396: 74 loadsp 16 2397: 80 im 0 2398: d3 im -45 2399: 38 neqbranch 0000239a <.L109>: 239a: 76 loadsp 24 239b: ae im 46 239c: 2e eq 239d: 81 im 1 239e: e8 im -24 239f: 38 neqbranch 23a0: 77 loadsp 28 23a1: 7a loadsp 40 23a2: 27 ulessthanorequal 23a3: 75 loadsp 20 23a4: 07 or 23a5: 55 storesp 20 23a6: 74 loadsp 16 23a7: 80 im 0 23a8: 2e eq 23a9: 81 im 1 23aa: e8 im -24 23ab: 38 neqbranch 000023ac <.L111>: 23ac: 79 loadsp 36 23ad: 88 im 8 23ae: 32 xor 23af: 70 loadsp 0 23b0: 30 neg 23b1: 78 loadsp 32 23b2: ae im 46 23b3: 32 xor 23b4: 70 loadsp 0 23b5: 30 neg 23b6: 70 loadsp 0 23b7: 73 loadsp 12 23b8: 07 or 23b9: 9f im 31 23ba: 2a lshiftright 23bb: 53 storesp 12 23bc: 51 storesp 4 23bd: 57 storesp 28 23be: 51 storesp 4 23bf: 56 storesp 24 23c0: 75 loadsp 20 23c1: aa im 42 23c2: 38 neqbranch 000023c3 <.LM81>: 23c3: 88 im 8 23c4: 58 storesp 32 23c5: 8b im 11 000023c6 <.LM82>: 23c6: 79 loadsp 36 23c7: 81 im 1 23c8: 1b addsp 44 23c9: 70 loadsp 0 23ca: 81 im 1 23cb: ff im -1 23cc: 06 and 23cd: 7f loadsp 60 23ce: 13 addsp 12 23cf: 70 loadsp 0 23d0: 33 loadb 000023d1 <.LM83>: 23d1: 70 loadsp 0 23d2: af im 47 23d3: 32 xor 23d4: 70 loadsp 0 23d5: 30 neg 23d6: a0 im 32 23d7: 73 loadsp 12 23d8: 27 ulessthanorequal 23d9: 71 loadsp 4 23da: 80 im 0 23db: 25 lessthanorequal 23dc: 07 or 23dd: 51 storesp 4 23de: 51 storesp 4 23df: 52 storesp 8 23e0: 5c storesp 48 23e1: 53 storesp 12 23e2: 5c storesp 48 23e3: 58 storesp 32 23e4: 56 storesp 24 23e5: 5a storesp 40 23e6: 74 loadsp 16 23e7: 80 im 0 23e8: 2e eq 23e9: ff im -1 23ea: af im 47 23eb: 38 neqbranch 000023ec <.L56>: 23ec: 7b loadsp 44 23ed: 19 addsp 36 23ee: 7f loadsp 60 23ef: 0c store 000023f0 <.LM85>: 23f0: 80 im 0 23f1: 55 storesp 20 23f2: 76 loadsp 24 23f3: a0 im 32 23f4: 26 ulessthan 23f5: 83 im 3 23f6: 38 neqbranch 23f7: 81 im 1 23f8: 55 storesp 20 000023f9 <.L69>: 23f9: 74 loadsp 16 23fa: 8b im 11 23fb: 1c addsp 48 23fc: 34 storeb 000023fd <.LBB6>: 23fd: 7d loadsp 52 23fe: 51 storesp 4 23ff: fc im -4 2400: 95 im 21 2401: 3f callpcrel 2402: 83 im 3 2403: e0 im -32 2404: 80 im 0 2405: 08 load 2406: 5a storesp 40 00002407 <.LM87>: 2407: 83 im 3 2408: e0 im -32 2409: 80 im 0 240a: 08 load 240b: 80 im 0 240c: 2e eq 240d: 81 im 1 240e: d9 im -39 240f: 38 neqbranch 00002410 <.L73>: 2410: 79 loadsp 36 2411: 56 storesp 24 00002412 <.LM89>: res = dir_rewind(dj); dir[0] = 0; } else { /* Follow path */ for (;;) { res = create_name(dj, &path); /* Get a segment */ if (res != FR_OK) break; res = dir_find(dj, dir); /* Find it */ if (res != FR_OK) { /* Could not find the object */ 2412: 79 loadsp 36 2413: 82 im 2 2414: b0 im 48 2415: 38 neqbranch 00002416 <.L84>: if (res == FR_NO_FILE && !*(dj->fn+11)) res = FR_NO_PATH; break; } if (*(dj->fn+11)) break; /* Last segment match. Function completed. */ 2416: 84 im 4 2417: 1e addsp 56 2418: 08 load 2419: 8b im 11 241a: 11 addsp 4 241b: 33 loadb 241c: 56 storesp 24 241d: 5b storesp 44 241e: 74 loadsp 16 241f: 80 im 0 2420: dd im -35 2421: 38 neqbranch 00002422 <.LM91>: if (!(dir[DIR_Attr] & AM_DIR)) { /* Cannot follow because it is a file */ 2422: 8b im 11 2423: 1d addsp 52 2424: 33 loadb 2425: 70 loadsp 0 2426: 84 im 4 2427: 2a lshiftright 2428: 70 loadsp 0 2429: 81 im 1 242a: 06 and 242b: 51 storesp 4 242c: 56 storesp 24 242d: 57 storesp 28 242e: 74 loadsp 16 242f: 80 im 0 2430: 2e eq 2431: 82 im 2 2432: a7 im 39 2433: 38 neqbranch 00002434 <.LM92>: res = FR_NO_PATH; break; } dj->sclust = LD_CLUST(dir); 2434: 95 im 21 2435: 1d addsp 52 2436: 33 loadb 2437: 94 im 20 2438: 1e addsp 56 2439: 33 loadb 243a: 71 loadsp 4 243b: 98 im 24 243c: 2b ashiftleft 243d: 71 loadsp 4 243e: 90 im 16 243f: 2b ashiftleft 2440: 07 or 2441: 7f loadsp 60 2442: 9b im 27 2443: 05 add 2444: 33 loadb 2445: 60 loadsp 64 2446: 9a im 26 2447: 05 add 2448: 33 loadb 2449: 71 loadsp 4 244a: 88 im 8 244b: 2b ashiftleft 244c: 07 or 244d: 72 loadsp 8 244e: 07 or 244f: 62 loadsp 72 2450: 88 im 8 2451: 05 add 2452: 0c store 00002453 <.LM93>: 2453: 7e loadsp 56 2454: 52 storesp 8 2455: 5a storesp 40 2456: 58 storesp 32 2457: 56 storesp 24 2458: 58 storesp 32 00002459 <.LM94>: 2459: 8a im 10 245a: 55 storesp 20 245b: fd im -3 245c: ff im -1 245d: 39 poppcrel 0000245e <.L106>: 245e: 81 im 1 245f: 16 addsp 24 2460: 70 loadsp 0 2461: 44 storesp 80 2462: 56 storesp 24 00002463 <.LM96>: 2463: 80 im 0 2464: 0b nop 2465: 88 im 8 2466: 1f addsp 60 2467: 0c store 00002468 <.LM97>: 2468: 75 loadsp 20 2469: 33 loadb 246a: 55 storesp 20 246b: 74 loadsp 16 246c: a0 im 32 246d: 26 ulessthan 246e: fd im -3 246f: e1 im -31 2470: 38 neqbranch 00002471 <.L107>: 2471: 7d loadsp 52 2472: 51 storesp 4 2473: fb im -5 2474: a1 im 33 2475: 3f callpcrel 2476: 83 im 3 2477: e0 im -32 2478: 80 im 0 2479: 08 load 247a: 56 storesp 24 0000247b <.LM99>: 247b: 80 im 0 247c: 7d loadsp 52 247d: 34 storeb 0000247e <.L48>: } } return res; } 247e: 75 loadsp 20 247f: 83 im 3 2480: e0 im -32 2481: 80 im 0 2482: 0c store 2483: 90 im 16 2484: 3d pushspadd 2485: 0d popsp 2486: 04 poppc 00002487 <.L108>: 2487: 81 im 1 2488: 70 loadsp 0 2489: 79 loadsp 36 248a: 7c loadsp 48 248b: 27 ulessthanorequal 248c: 07 or 248d: 51 storesp 4 248e: 55 storesp 20 248f: 74 loadsp 16 2490: fe im -2 2491: 9a im 26 2492: 38 neqbranch 00002493 <.L66>: 2493: ff im -1 2494: 9f im 31 2495: 17 addsp 28 2496: 55 storesp 20 2497: 74 loadsp 16 2498: 99 im 25 2499: 26 ulessthan 249a: 89 im 9 249b: 38 neqbranch 249c: e0 im -32 249d: 17 addsp 28 249e: 70 loadsp 0 249f: 81 im 1 24a0: ff im -1 24a1: 06 and 24a2: 58 storesp 32 24a3: 55 storesp 20 000024a4 <.L68>: 24a4: 77 loadsp 28 24a5: 81 im 1 24a6: 19 addsp 36 24a7: 70 loadsp 0 24a8: 81 im 1 24a9: ff im -1 24aa: 06 and 24ab: 7d loadsp 52 24ac: 13 addsp 12 24ad: 53 storesp 12 24ae: 5a storesp 40 24af: 57 storesp 28 24b0: 55 storesp 20 24b1: 76 loadsp 24 24b2: 75 loadsp 20 24b3: 34 storeb 24b4: fd im -3 24b5: c1 im -63 24b6: 39 poppcrel 000024b7 <.L81>: 24b7: ff im -1 24b8: 17 addsp 28 24b9: 57 storesp 28 24ba: 76 loadsp 24 24bb: ff im -1 24bc: 2e eq 24bd: 80 im 0 24be: fd im -3 24bf: 38 neqbranch 000024c0 <.L112>: 24c0: 78 loadsp 32 24c1: 70 loadsp 0 24c2: 81 im 1 24c3: 05 add 24c4: 5a storesp 40 24c5: 33 loadb 24c6: 78 loadsp 32 24c7: 70 loadsp 0 24c8: 81 im 1 24c9: 05 add 24ca: 5a storesp 40 24cb: 33 loadb 24cc: 71 loadsp 4 24cd: 71 loadsp 4 24ce: 31 sub 24cf: 52 storesp 8 24d0: 56 storesp 24 24d1: 56 storesp 24 24d2: 75 loadsp 20 24d3: 80 im 0 24d4: 2e eq 24d5: e1 im -31 24d6: 38 neqbranch 000024d7 <.L80>: 24d7: 7d loadsp 52 24d8: 51 storesp 4 24d9: fb im -5 24da: 9e im 30 24db: 3f callpcrel 24dc: 83 im 3 24dd: e0 im -32 24de: 80 im 0 24df: 08 load 24e0: 5a storesp 40 000024e1 <.LM106>: 24e1: 83 im 3 24e2: e0 im -32 24e3: 80 im 0 24e4: 08 load 24e5: fe im -2 24e6: a9 im 41 24e7: 38 neqbranch 000024e8 <.L74>: 24e8: a0 im 32 24e9: 54 storesp 16 24ea: 7d loadsp 52 24eb: 22 loadh 24ec: 70 loadsp 0 24ed: 85 im 5 24ee: 2b ashiftleft 24ef: 83 im 3 24f0: e0 im -32 24f1: 06 and 24f2: 54 storesp 16 24f3: 55 storesp 20 24f4: 90 im 16 24f5: 1e addsp 56 24f6: 08 load 24f7: 52 storesp 8 24f8: 7c loadsp 48 24f9: 51 storesp 4 24fa: e8 im -24 24fb: 83 im 3 24fc: 3f callpcrel 24fd: 83 im 3 24fe: e0 im -32 24ff: 80 im 0 2500: 08 load 2501: 5a storesp 40 2502: 83 im 3 2503: e0 im -32 2504: 80 im 0 2505: 08 load 2506: 80 im 0 2507: dc im -36 2508: 38 neqbranch 00002509 <.LM108>: 2509: 7c loadsp 48 250a: 33 loadb 250b: 55 storesp 20 0000250c <.LM109>: 250c: 74 loadsp 16 250d: 80 im 0 250e: 2e eq 250f: 80 im 0 2510: dd im -35 2511: 38 neqbranch 00002512 <.LM110>: 2512: 8b im 11 2513: 1d addsp 52 2514: 33 loadb 2515: 70 loadsp 0 2516: 83 im 3 2517: 2a lshiftright 2518: 70 loadsp 0 2519: 81 im 1 251a: 06 and 251b: 51 storesp 4 251c: 56 storesp 24 251d: 56 storesp 24 251e: 74 loadsp 16 251f: ff im -1 2520: b6 im 54 2521: 38 neqbranch 00002522 <.LM111>: 2522: 8b im 11 00002523 <.LM112>: 2523: 7d loadsp 52 2524: 7f loadsp 60 2525: 84 im 4 2526: 05 add 2527: 08 load 00002528 <.LM113>: 2528: 83 im 3 2529: e0 im -32 252a: 80 im 0 252b: 08 load 0000252c <.LM114>: 252c: ff im -1 252d: 14 addsp 16 252e: 54 storesp 16 252f: 59 storesp 36 2530: 5a storesp 40 2531: 5a storesp 40 2532: 57 storesp 28 2533: 76 loadsp 24 2534: ff im -1 2535: 2e eq 2536: 09 not 2537: 81 im 1 2538: 06 and 2539: ff im -1 253a: 85 im 5 253b: 38 neqbranch 0000253c <.L82>: 253c: 75 loadsp 20 253d: ff im -1 253e: 98 im 24 253f: 38 neqbranch 2540: 79 loadsp 36 2541: 56 storesp 24 2542: fd im -3 2543: d2 im -46 2544: 39 poppcrel 00002545 <.L110>: 2545: 79 loadsp 36 2546: 83 im 3 2547: 2e eq 2548: 09 not 2549: 81 im 1 254a: 06 and 254b: fe im -2 254c: b1 im 49 254d: 38 neqbranch 254e: 84 im 4 254f: 1e addsp 56 2550: 08 load 2551: 8b im 11 2552: 11 addsp 4 2553: 33 loadb 2554: 51 storesp 4 2555: 55 storesp 20 2556: 74 loadsp 16 2557: fe im -2 2558: a5 im 37 2559: 38 neqbranch 0000255a <.L102>: 255a: 84 im 4 0000255b <.LM118>: 255b: 0b nop 255c: 83 im 3 255d: e0 im -32 255e: 80 im 0 255f: 0c store 2560: 90 im 16 2561: 3d pushspadd 2562: 0d popsp 2563: 04 poppc 00002564 <.L92>: 2564: 81 im 1 00002565 <.LM120>: 2565: 0b nop 2566: 83 im 3 2567: e0 im -32 2568: 80 im 0 2569: 0c store 256a: 90 im 16 256b: 3d pushspadd 256c: 0d popsp 256d: 04 poppc 0000256e <.L93>: 256e: 83 im 3 0000256f <.LM122>: 256f: 0b nop 2570: 84 im 4 2571: 1f addsp 60 2572: 08 load 2573: 8b im 11 2574: 11 addsp 4 2575: 33 loadb 2576: 51 storesp 4 2577: 56 storesp 24 2578: 56 storesp 24 2579: 74 loadsp 16 257a: fe im -2 257b: 82 im 2 257c: 38 neqbranch 257d: dc im -36 257e: 39 poppcrel 0000257f : /*-----------------------------------------------------------------------*/ /* Check a sector if it is an FAT boot record */ /*-----------------------------------------------------------------------*/ static BYTE check_fs ( /* 0:The FAT boot record, 1:Valid boot record but not an FAT, 2:Not a boot record, 3:Error */ BYTE *buf, /* Working buffer */ DWORD sect /* Sector# (lba) to check if it is an FAT boot record or not */ ) { 257f: f8 im -8 2580: 3d pushspadd 2581: 0d popsp 2582: 7a loadsp 40 2583: 7c loadsp 48 2584: 59 storesp 36 2585: 57 storesp 28 00002586 <.LM124>: if (disk_readp(buf, sect, 510, 2)) /* Read the boot sector */ 2586: 82 im 2 2587: 54 storesp 16 2588: 83 im 3 2589: fe im -2 258a: 53 storesp 12 258b: 77 loadsp 28 258c: 52 storesp 8 258d: 76 loadsp 24 258e: 51 storesp 4 258f: e6 im -26 2590: ee im -18 2591: 3f callpcrel 00002592 <.LM125>: return 3; 2592: 83 im 3 2593: 56 storesp 24 00002594 <.LM126>: 2594: 83 im 3 2595: e0 im -32 2596: 80 im 0 2597: 08 load 2598: 80 im 0 2599: ec im -20 259a: 38 neqbranch 0000259b <.LM127>: if (LD_WORD(buf) != 0xAA55) /* Check record signature */ 259b: 81 im 1 259c: 17 addsp 28 259d: 33 loadb 259e: 77 loadsp 28 259f: 33 loadb 25a0: 71 loadsp 4 25a1: 88 im 8 25a2: 2b ashiftleft 25a3: 07 or 25a4: 56 storesp 24 25a5: 56 storesp 24 000025a6 <.LM128>: return 2; 25a6: 82 im 2 25a7: 56 storesp 24 000025a8 <.LM129>: 25a8: 74 loadsp 16 25a9: 82 im 2 25aa: d4 im -44 25ab: d5 im -43 25ac: 2e eq 25ad: 09 not 25ae: 81 im 1 25af: 06 and 25b0: 80 im 0 25b1: d4 im -44 25b2: 38 neqbranch 000025b3 <.LM130>: if (!disk_readp(buf, sect, BS_FilSysType, 2) && LD_WORD(buf) == 0x4146) /* Check FAT12/16 */ 25b3: 75 loadsp 20 25b4: 54 storesp 16 25b5: b6 im 54 25b6: 53 storesp 12 25b7: 77 loadsp 28 25b8: 52 storesp 8 25b9: 76 loadsp 24 25ba: 51 storesp 4 25bb: e6 im -26 25bc: c2 im -62 25bd: 3f callpcrel 25be: 83 im 3 25bf: e0 im -32 25c0: 80 im 0 25c1: 08 load 25c2: 98 im 24 25c3: 38 neqbranch 25c4: 81 im 1 25c5: 17 addsp 28 25c6: 33 loadb 25c7: 77 loadsp 28 25c8: 33 loadb 25c9: 71 loadsp 4 25ca: 88 im 8 25cb: 2b ashiftleft 25cc: 07 or 000025cd <.LM131>: return 0; 25cd: 83 im 3 25ce: e0 im -32 25cf: 80 im 0 25d0: 08 load 25d1: 52 storesp 8 25d2: 56 storesp 24 25d3: 56 storesp 24 000025d4 <.LM132>: 25d4: 74 loadsp 16 25d5: 81 im 1 25d6: 82 im 2 25d7: c6 im -58 25d8: 2e eq 25d9: ac im 44 25da: 38 neqbranch 000025db <.L116>: if (_FS_FAT32 && !disk_readp(buf, sect, BS_FilSysType32, 2) && LD_WORD(buf) == 0x4146) /* Check FAT32 */ 25db: 82 im 2 25dc: 54 storesp 16 25dd: 80 im 0 25de: d2 im -46 25df: 53 storesp 12 25e0: 77 loadsp 28 25e1: 52 storesp 8 25e2: 76 loadsp 24 25e3: 51 storesp 4 25e4: e6 im -26 25e5: 99 im 25 25e6: 3f callpcrel 25e7: 83 im 3 25e8: e0 im -32 25e9: 80 im 0 25ea: 08 load 25eb: 98 im 24 25ec: 38 neqbranch 25ed: 81 im 1 25ee: 17 addsp 28 25ef: 33 loadb 25f0: 77 loadsp 28 25f1: 33 loadb 25f2: 71 loadsp 4 25f3: 88 im 8 25f4: 2b ashiftleft 25f5: 07 or 000025f6 <.LM134>: return 0; 25f6: 83 im 3 25f7: e0 im -32 25f8: 80 im 0 25f9: 08 load 25fa: 52 storesp 8 25fb: 56 storesp 24 25fc: 56 storesp 24 000025fd <.LM135>: 25fd: 74 loadsp 16 25fe: 81 im 1 25ff: 82 im 2 2600: c6 im -58 2601: 2e eq 2602: 83 im 3 2603: 38 neqbranch 00002604 <.L117>: return 1; 2604: 81 im 1 2605: 56 storesp 24 00002606 <.L113>: } 2606: 75 loadsp 20 2607: 83 im 3 2608: e0 im -32 2609: 80 im 0 260a: 0c store 260b: 8a im 10 260c: 3d pushspadd 260d: 0d popsp 260e: 04 poppc 0000260f : /*-------------------------------------------------------------------------- Public Functions --------------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/ /* Mount/Unmount a Locical Drive */ /*-----------------------------------------------------------------------*/ FRESULT pf_mount ( FATFS *fs /* Pointer to new file system object (NULL: Unmount) */ ) { 260f: ec im -20 2610: 3d pushspadd 2611: 0d popsp 2612: 66 loadsp 88 2613: 58 storesp 32 00002614 <.LM139>: BYTE fmt, buf[36]; DWORD bsect, fsize, tsect, mclst; FatFs = 0; 2614: 80 im 0 2615: 0b nop 2616: 83 im 3 2617: e0 im -32 2618: 90 im 16 2619: 0c store 0000261a <.LM140>: if (!fs) return FR_OK; /* Unregister fs object */ 261a: 77 loadsp 28 261b: 56 storesp 24 261c: 77 loadsp 28 261d: 80 im 0 261e: 2e eq 261f: 82 im 2 2620: d3 im -45 2621: 38 neqbranch 00002622 <.LM141>: if (disk_initialize() & STA_NOINIT) /* Check if the drive is ready or not */ 2622: c1 im -63 2623: 8c im 12 2624: 3f callpcrel 2625: 83 im 3 2626: e0 im -32 2627: 80 im 0 2628: 08 load 2629: 81 im 1 262a: 06 and 262b: 55 storesp 20 0000262c <.LM142>: return FR_NOT_READY; 262c: 82 im 2 262d: 56 storesp 24 0000262e <.LM143>: 262e: 74 loadsp 16 262f: 82 im 2 2630: c3 im -61 2631: 38 neqbranch 00002632 <.LM144>: /* Search FAT partition on the drive */ bsect = 0; 2632: 74 loadsp 16 00002633 <.LM145>: fmt = check_fs(buf, bsect); /* Check sector 0 as an SFD format */ 2633: 75 loadsp 20 2634: 53 storesp 12 2635: 8e im 14 2636: 3d pushspadd 2637: 70 loadsp 0 2638: 53 storesp 12 2639: 58 storesp 32 263a: 59 storesp 36 263b: fe im -2 263c: c2 im -62 263d: 3f callpcrel 263e: 83 im 3 263f: e0 im -32 2640: 80 im 0 2641: 08 load 2642: 81 im 1 2643: ff im -1 2644: 06 and 2645: 56 storesp 24 00002646 <.LM146>: if (fmt == 1) { /* Not an FAT boot record, it may be FDISK format */ 2646: 75 loadsp 20 2647: 81 im 1 2648: 2e eq 2649: 82 im 2 264a: b2 im 50 264b: 38 neqbranch 0000264c <.LM147>: /* Check a partition listed in top of the partition table */ if (disk_readp(buf, bsect, MBR_Table, 16)) { /* 1st partition entry */ fmt = 3; } else { if (buf[4]) { /* Is the partition existing? */ bsect = LD_DWORD(&buf[8]); /* Partition offset in LBA */ fmt = check_fs(buf, bsect); /* Check the partition */ } } } if (fmt == 3) return FR_DISK_ERR; 264c: 75 loadsp 20 264d: 83 im 3 264e: 2e eq 264f: 83 im 3 2650: 88 im 8 2651: 38 neqbranch 00002652 <.L126>: if (fmt) return FR_NO_FILESYSTEM; /* No valid FAT patition is found */ 2652: 75 loadsp 20 2653: 83 im 3 2654: 8e im 14 2655: 38 neqbranch 00002656 <.LM149>: /* Initialize the file system object */ if (disk_readp(buf, bsect, 13, sizeof(buf))) return FR_DISK_ERR; 2656: a4 im 36 2657: 54 storesp 16 2658: 8d im 13 2659: 53 storesp 12 265a: 78 loadsp 32 265b: 52 storesp 8 265c: 76 loadsp 24 265d: 51 storesp 4 265e: e5 im -27 265f: 9f im 31 2660: 3f callpcrel 2661: 81 im 1 2662: 56 storesp 24 2663: 83 im 3 2664: e0 im -32 2665: 80 im 0 2666: 08 load 2667: 82 im 2 2668: 8b im 11 2669: 38 neqbranch 0000266a <.LM150>: fsize = LD_WORD(buf+BPB_FATSz16-13); /* Number of sectors per FAT */ 266a: 02 pushsp 266b: ba im 58 266c: 05 add 266d: 33 loadb 266e: 02 pushsp 266f: 84 im 4 2670: 05 add 2671: b9 im 57 2672: 05 add 2673: 33 loadb 2674: 71 loadsp 4 2675: 88 im 8 2676: 2b ashiftleft 2677: 07 or 2678: 58 storesp 32 2679: 5c storesp 48 0000267a <.LM151>: if (!fsize) fsize = LD_DWORD(buf+BPB_FATSz32-13); 267a: 76 loadsp 24 267b: ab im 43 267c: 38 neqbranch 267d: 02 pushsp 267e: 80 im 0 267f: ca im -54 2680: 05 add 2681: 33 loadb 2682: 02 pushsp 2683: 84 im 4 2684: 05 add 2685: 80 im 0 2686: c9 im -55 2687: 05 add 2688: 33 loadb 2689: 71 loadsp 4 268a: 98 im 24 268b: 2b ashiftleft 268c: 71 loadsp 4 268d: 90 im 16 268e: 2b ashiftleft 268f: 07 or 2690: 96 im 22 2691: 3d pushspadd 2692: 33 loadb 2693: 70 loadsp 0 2694: 88 im 8 2695: 2b ashiftleft 2696: 72 loadsp 8 2697: 07 or 2698: 02 pushsp 2699: 94 im 20 269a: 05 add 269b: 80 im 0 269c: c7 im -57 269d: 05 add 269e: 33 loadb 269f: 71 loadsp 4 26a0: 07 or 26a1: 54 storesp 16 26a2: 52 storesp 8 26a3: 5d storesp 52 26a4: 57 storesp 28 26a5: 58 storesp 32 26a6: 56 storesp 24 000026a7 <.L129>: fsize *= buf[BPB_NumFATs-13]; /* Number of sectors in FAT area */ 26a7: 02 pushsp 26a8: b3 im 51 26a9: 05 add 26aa: 33 loadb 26ab: 77 loadsp 28 26ac: 71 loadsp 4 26ad: 29 mult 000026ae <.LM153>: fs->fatbase = bsect + LD_WORD(buf+BPB_RsvdSecCnt-13); /* FAT start sector (lba) */ 26ae: 02 pushsp 26af: 88 im 8 26b0: 05 add 26b1: b2 im 50 26b2: 05 add 26b3: 33 loadb 26b4: 02 pushsp 26b5: 8c im 12 26b6: 05 add 26b7: b1 im 49 26b8: 05 add 26b9: 33 loadb 26ba: 71 loadsp 4 26bb: 88 im 8 26bc: 2b ashiftleft 26bd: 07 or 26be: 7c loadsp 48 26bf: 11 addsp 4 26c0: 70 loadsp 0 26c1: 8c im 12 26c2: 1e addsp 56 26c3: 0c store 26c4: 5e storesp 56 26c5: 59 storesp 36 26c6: 57 storesp 28 26c7: 58 storesp 32 26c8: 5c storesp 48 000026c9 <.LM154>: fs->csize = buf[BPB_SecPerClus-13]; /* Number of sectors per cluster */ 26c9: 8d im 13 26ca: 3d pushspadd 26cb: 33 loadb 26cc: 82 im 2 26cd: 19 addsp 36 26ce: 34 storeb 000026cf <.LM155>: fs->n_rootdir = LD_WORD(buf+BPB_RootEntCnt-13); /* Nmuber of root directory entries */ 26cf: 02 pushsp 26d0: b5 im 53 26d1: 05 add 26d2: 33 loadb 26d3: 8f im 15 26d4: 3d pushspadd 26d5: 33 loadb 26d6: 71 loadsp 4 26d7: 88 im 8 26d8: 2b ashiftleft 26d9: 07 or 26da: 5a storesp 40 26db: 5b storesp 44 26dc: 78 loadsp 32 26dd: 84 im 4 26de: 19 addsp 36 26df: 23 storeh 000026e0 <.LM156>: tsect = LD_WORD(buf+BPB_TotSec16-13); /* Number of sectors on the file system */ 26e0: 02 pushsp 26e1: b7 im 55 26e2: 05 add 26e3: 33 loadb 26e4: 02 pushsp 26e5: 84 im 4 26e6: 05 add 26e7: b6 im 54 26e8: 05 add 26e9: 33 loadb 26ea: 71 loadsp 4 26eb: 88 im 8 26ec: 2b ashiftleft 26ed: 07 or 26ee: 56 storesp 24 26ef: 5b storesp 44 000026f0 <.LM157>: if (!tsect) tsect = LD_DWORD(buf+BPB_TotSec32-13); 26f0: 74 loadsp 16 26f1: ab im 43 26f2: 38 neqbranch 26f3: 02 pushsp 26f4: 80 im 0 26f5: c6 im -58 26f6: 05 add 26f7: 33 loadb 26f8: 02 pushsp 26f9: 84 im 4 26fa: 05 add 26fb: 80 im 0 26fc: c5 im -59 26fd: 05 add 26fe: 33 loadb 26ff: 71 loadsp 4 2700: 98 im 24 2701: 2b ashiftleft 2702: 71 loadsp 4 2703: 90 im 16 2704: 2b ashiftleft 2705: 07 or 2706: 95 im 21 2707: 3d pushspadd 2708: 33 loadb 2709: 70 loadsp 0 270a: 88 im 8 270b: 2b ashiftleft 270c: 72 loadsp 8 270d: 07 or 270e: 02 pushsp 270f: 94 im 20 2710: 05 add 2711: 80 im 0 2712: c3 im -61 2713: 05 add 2714: 33 loadb 2715: 71 loadsp 4 2716: 07 or 2717: 51 storesp 4 2718: 52 storesp 8 2719: 53 storesp 12 271a: 57 storesp 28 271b: 5d storesp 52 271c: 5b storesp 44 0000271d <.L130>: mclst = (tsect /* Last cluster# + 1 */ 271d: 74 loadsp 16 271e: 76 loadsp 24 271f: 31 sub 2720: 77 loadsp 28 2721: 31 sub 2722: 79 loadsp 36 2723: 84 im 4 2724: 2a lshiftright 2725: 8f im 15 2726: 3d pushspadd 2727: 33 loadb 2728: 54 storesp 16 2729: 71 loadsp 4 272a: 71 loadsp 4 272b: 31 sub 272c: 53 storesp 12 272d: 56 storesp 24 272e: 56 storesp 24 272f: 9d im 29 2730: d1 im -47 2731: 3f callpcrel 2732: 83 im 3 2733: e0 im -32 2734: 80 im 0 2735: 08 load 2736: 82 im 2 2737: 05 add 00002738 <.LM159>: - LD_WORD(buf+BPB_RsvdSecCnt-13) - fsize - fs->n_rootdir / 16 ) / fs->csize + 2; fs->n_fatent = (CLUST)mclst; 2738: 70 loadsp 0 2739: 88 im 8 273a: 1a addsp 40 273b: 0c store 0000273c <.LM160>: fmt = FS_FAT16; /* Determine the FAT sub type */ if (mclst < 0xFF7) /* Number of clusters < 0xFF5 */ #if _FS_FAT12 fmt = FS_FAT12; 273c: 70 loadsp 0 273d: 9f im 31 273e: f6 im -10 273f: 26 ulessthan 2740: 81 im 1 2741: 05 add 2742: 57 storesp 28 2743: 55 storesp 20 00002744 <.LM161>: #else return FR_NO_FILESYSTEM; #endif if (mclst >= 0xFFF7) /* Number of clusters >= 0xFFF5 */ 2744: 83 im 3 2745: ff im -1 2746: f6 im -10 2747: 75 loadsp 20 2748: 27 ulessthanorequal 2749: 83 im 3 274a: 38 neqbranch 0000274b <.LM162>: #if _FS_FAT32 fmt = FS_FAT32; 274b: 83 im 3 274c: 56 storesp 24 0000274d <.L132>: #else return FR_NO_FILESYSTEM; #endif fs->fs_type = fmt; /* FAT sub-type */ 274d: 75 loadsp 20 274e: 78 loadsp 32 274f: 34 storeb 00002750 <.LM164>: if (_FS_FAT32 && fmt == FS_FAT32) 2750: 75 loadsp 20 2751: 83 im 3 2752: 2e eq 2753: 81 im 1 2754: 98 im 24 2755: 38 neqbranch 00002756 <.LM165>: fs->dirbase = LD_DWORD(buf+(BPB_RootClus-13)); /* Root directory start cluster */ else fs->dirbase = fs->fatbase + fsize; /* Root directory start sector (lba) */ 2756: 76 loadsp 24 2757: 1a addsp 40 2758: 90 im 16 2759: 19 addsp 36 275a: 0c store 0000275b <.LM166>: fs->database = fs->fatbase + fsize + fs->n_rootdir / 16; /* Data start sector (lba) */ 275b: 84 im 4 275c: 18 addsp 32 275d: 22 loadh 275e: 77 loadsp 28 275f: 1b addsp 44 2760: 71 loadsp 4 2761: 84 im 4 2762: 2a lshiftright 2763: 05 add 2764: 94 im 20 2765: 1a addsp 40 2766: 0c store 2767: 55 storesp 20 00002768 <.LM167>: fs->flag = 0; 2768: 80 im 0 2769: 0b nop 276a: 81 im 1 276b: 19 addsp 36 276c: 34 storeb 0000276d <.LM168>: FatFs = fs; 276d: 77 loadsp 28 276e: 83 im 3 276f: e0 im -32 2770: 90 im 16 2771: 0c store 00002772 <.LM169>: return FR_OK; 2772: 80 im 0 2773: 56 storesp 24 00002774 <.L119>: } 2774: 75 loadsp 20 2775: 83 im 3 2776: e0 im -32 2777: 80 im 0 2778: 0c store 2779: 96 im 22 277a: 3d pushspadd 277b: 0d popsp 277c: 04 poppc 0000277d <.L138>: 277d: 90 im 16 277e: 54 storesp 16 277f: 83 im 3 2780: be im 62 2781: 53 storesp 12 2782: 74 loadsp 16 2783: 52 storesp 8 2784: 76 loadsp 24 2785: 51 storesp 4 2786: e2 im -30 2787: f7 im -9 2788: 3f callpcrel 2789: 83 im 3 278a: e0 im -32 278b: 80 im 0 278c: 08 load 278d: 80 im 0 278e: ca im -54 278f: 38 neqbranch 00002790 <.LM172>: 2790: 8e im 14 2791: 3d pushspadd 2792: 33 loadb 2793: 55 storesp 20 2794: 74 loadsp 16 2795: 80 im 0 2796: 2e eq 2797: 80 im 0 2798: ca im -54 2799: 38 neqbranch 0000279a <.LM173>: 279a: 02 pushsp 279b: bb im 59 279c: 05 add 279d: 33 loadb 279e: 02 pushsp 279f: 84 im 4 27a0: 05 add 27a1: ba im 58 27a2: 05 add 27a3: 33 loadb 27a4: 71 loadsp 4 27a5: 98 im 24 27a6: 2b ashiftleft 27a7: 71 loadsp 4 27a8: 90 im 16 27a9: 2b ashiftleft 27aa: 07 or 27ab: 02 pushsp 27ac: 8c im 12 27ad: 05 add 27ae: b9 im 57 27af: 05 add 27b0: 33 loadb 27b1: 70 loadsp 0 27b2: 88 im 8 27b3: 2b ashiftleft 27b4: 72 loadsp 8 27b5: 07 or 27b6: 94 im 20 27b7: 3d pushspadd 27b8: 33 loadb 27b9: 71 loadsp 4 27ba: 07 or 000027bb <.LM174>: 27bb: 70 loadsp 0 27bc: 58 storesp 32 27bd: 7c loadsp 48 27be: 57 storesp 28 27bf: 54 storesp 16 27c0: 52 storesp 8 27c1: 5d storesp 52 27c2: 57 storesp 28 27c3: 5a storesp 40 27c4: 56 storesp 24 27c5: fb im -5 27c6: b8 im 56 27c7: 3f callpcrel 27c8: 83 im 3 27c9: e0 im -32 27ca: 80 im 0 27cb: 08 load 27cc: 81 im 1 27cd: ff im -1 27ce: 06 and 27cf: 56 storesp 24 000027d0 <.LM175>: 27d0: 75 loadsp 20 27d1: 83 im 3 27d2: 2e eq 27d3: 09 not 27d4: 81 im 1 27d5: 06 and 27d6: fc im -4 27d7: fa im -6 27d8: 38 neqbranch 000027d9 <.L135>: 27d9: 81 im 1 000027da <.LM176>: 27da: 0b nop 27db: 83 im 3 27dc: e0 im -32 27dd: 80 im 0 27de: 0c store 27df: 96 im 22 27e0: 3d pushspadd 27e1: 0d popsp 27e2: 04 poppc 000027e3 <.L136>: 27e3: 87 im 7 000027e4 <.LM178>: 27e4: 0b nop 27e5: 83 im 3 27e6: e0 im -32 27e7: 80 im 0 27e8: 0c store 27e9: 96 im 22 27ea: 3d pushspadd 27eb: 0d popsp 27ec: 04 poppc 000027ed <.L139>: 27ed: 02 pushsp 27ee: 80 im 0 27ef: d2 im -46 27f0: 05 add 27f1: 33 loadb 27f2: 02 pushsp 27f3: 84 im 4 27f4: 05 add 27f5: 80 im 0 27f6: d1 im -47 27f7: 05 add 27f8: 33 loadb 27f9: 71 loadsp 4 27fa: 98 im 24 27fb: 2b ashiftleft 27fc: 71 loadsp 4 27fd: 90 im 16 27fe: 2b ashiftleft 27ff: 07 or 2800: 98 im 24 2801: 3d pushspadd 2802: 33 loadb 2803: 70 loadsp 0 2804: 88 im 8 2805: 2b ashiftleft 2806: 72 loadsp 8 2807: 07 or 2808: 02 pushsp 2809: 94 im 20 280a: 05 add 280b: 80 im 0 280c: cf im -49 280d: 05 add 280e: 33 loadb 280f: 71 loadsp 4 2810: 07 or 2811: 90 im 16 2812: 1e addsp 56 2813: 0c store 2814: 52 storesp 8 00002815 <.LM180>: 2815: 84 im 4 2816: 1c addsp 48 2817: 22 loadh 2818: 7b loadsp 44 2819: 1f addsp 60 281a: 71 loadsp 4 281b: 84 im 4 281c: 2a lshiftright 281d: 05 add 281e: 94 im 20 281f: 1e addsp 56 2820: 0c store 2821: 52 storesp 8 2822: 5e storesp 56 2823: 57 storesp 28 2824: 5a storesp 40 2825: 56 storesp 24 00002826 <.LM181>: 2826: 80 im 0 2827: 0b nop 2828: 81 im 1 2829: 19 addsp 36 282a: 34 storeb 0000282b <.LM182>: 282b: 77 loadsp 28 282c: 83 im 3 282d: e0 im -32 282e: 90 im 16 282f: 0c store 00002830 <.LM183>: 2830: 80 im 0 2831: 56 storesp 24 2832: fe im -2 2833: c0 im -64 2834: 39 poppcrel 00002835 : /*-----------------------------------------------------------------------*/ /* Open or Create a File */ /*-----------------------------------------------------------------------*/ FRESULT pf_open ( const char *path /* Pointer to the file name */ ) { 2835: e9 im -23 2836: 3d pushspadd 2837: 0d popsp 00002838 <.LM185>: FRESULT res; DIR dj; BYTE sp[12], dir[32]; FATFS *fs = FatFs; 2838: 83 im 3 2839: e0 im -32 283a: 90 im 16 283b: 08 load 283c: 56 storesp 24 0000283d <.LM186>: if (!fs) /* Check file system */ return FR_NOT_ENABLED; 283d: 86 im 6 283e: 54 storesp 16 0000283f <.LM187>: 283f: 75 loadsp 20 2840: 80 im 0 2841: 2e eq 2842: be im 62 2843: 38 neqbranch 00002844 <.LM188>: fs->flag = 0; 2844: 80 im 0 2845: 0b nop 2846: 81 im 1 2847: 17 addsp 28 2848: 34 storeb 00002849 <.LM189>: dj.fn = sp; 2849: 99 im 25 284a: 3d pushspadd 284b: e0 im -32 284c: 11 addsp 4 284d: 46 storesp 88 0000284e <.LM190>: res = follow_path(&dj, dir, path); /* Follow the file path */ 284e: 6a loadsp 104 284f: 54 storesp 16 2850: c0 im -64 2851: 11 addsp 4 2852: 53 storesp 12 2853: ec im -20 2854: 05 add 2855: 51 storesp 4 2856: f5 im -11 2857: c1 im -63 2858: 3f callpcrel 00002859 <.LM191>: if (res != FR_OK) return res; /* Follow failed */ 2859: 83 im 3 285a: e0 im -32 285b: 80 im 0 285c: 08 load 285d: 54 storesp 16 285e: 83 im 3 285f: e0 im -32 2860: 80 im 0 2861: 08 load 2862: 9e im 30 2863: 38 neqbranch 00002864 <.LM192>: if (!dir[0] || (dir[DIR_Attr] & AM_DIR)) /* It is a directory */ 2864: 89 im 9 2865: 3d pushspadd 2866: 33 loadb 2867: 54 storesp 16 2868: 73 loadsp 12 2869: 80 im 0 286a: 2e eq 286b: 93 im 19 286c: 38 neqbranch 286d: 02 pushsp 286e: ab im 43 286f: 05 add 2870: 33 loadb 2871: 70 loadsp 0 2872: 84 im 4 2873: 2a lshiftright 2874: 70 loadsp 0 2875: 81 im 1 2876: 06 and 2877: 51 storesp 4 2878: 55 storesp 20 2879: 55 storesp 20 287a: 73 loadsp 12 287b: 80 im 0 287c: 2e eq 287d: 8c im 12 287e: 38 neqbranch 0000287f <.L144>: return FR_NO_FILE; 287f: 83 im 3 2880: 54 storesp 16 00002881 <.L140>: fs->org_clust = LD_CLUST(dir); /* File start cluster */ fs->fsize = LD_DWORD(dir+DIR_FileSize); /* File size */ fs->fptr = 0; /* File pointer */ fs->flag = FA_OPENED; return FR_OK; } 2881: 73 loadsp 12 2882: 83 im 3 2883: e0 im -32 2884: 80 im 0 2885: 0c store 2886: 99 im 25 2887: 3d pushspadd 2888: 0d popsp 2889: 04 poppc 0000288a <.L143>: 288a: 02 pushsp 288b: b5 im 53 288c: 05 add 288d: 33 loadb 288e: 8f im 15 288f: 3d pushspadd 2890: 33 loadb 2891: 71 loadsp 4 2892: 98 im 24 2893: 2b ashiftleft 2894: 71 loadsp 4 2895: 90 im 16 2896: 2b ashiftleft 2897: 07 or 2898: 02 pushsp 2899: 8c im 12 289a: 05 add 289b: bb im 59 289c: 05 add 289d: 33 loadb 289e: 02 pushsp 289f: 90 im 16 28a0: 05 add 28a1: ba im 58 28a2: 05 add 28a3: 33 loadb 28a4: 71 loadsp 4 28a5: 88 im 8 28a6: 2b ashiftleft 28a7: 07 or 28a8: 72 loadsp 8 28a9: 07 or 28aa: a0 im 32 28ab: 1b addsp 44 28ac: 0c store 000028ad <.LM196>: 28ad: 02 pushsp 28ae: 90 im 16 28af: 05 add 28b0: bf im 63 28b1: 05 add 28b2: 33 loadb 28b3: 02 pushsp 28b4: 94 im 20 28b5: 05 add 28b6: be im 62 28b7: 05 add 28b8: 33 loadb 28b9: 71 loadsp 4 28ba: 98 im 24 28bb: 2b ashiftleft 28bc: 71 loadsp 4 28bd: 90 im 16 28be: 2b ashiftleft 28bf: 07 or 28c0: 02 pushsp 28c1: 9c im 28 28c2: 05 add 28c3: bd im 61 28c4: 05 add 28c5: 33 loadb 28c6: 70 loadsp 0 28c7: 88 im 8 28c8: 2b ashiftleft 28c9: 72 loadsp 8 28ca: 07 or 28cb: 99 im 25 28cc: 3d pushspadd 28cd: 33 loadb 28ce: 71 loadsp 4 28cf: 07 or 28d0: 7f loadsp 60 28d1: 9c im 28 28d2: 05 add 28d3: 0c store 28d4: 52 storesp 8 000028d5 <.LM197>: 28d5: 83 im 3 28d6: e0 im -32 28d7: 80 im 0 28d8: 08 load 28d9: 98 im 24 28da: 1f addsp 60 28db: 0c store 28dc: 56 storesp 24 28dd: 5a storesp 40 28de: 52 storesp 8 28df: 52 storesp 8 28e0: 53 storesp 12 28e1: 57 storesp 28 28e2: 59 storesp 36 28e3: 57 storesp 28 000028e4 <.LM198>: 28e4: 81 im 1 28e5: 0b nop 28e6: 81 im 1 28e7: 17 addsp 28 28e8: 34 storeb 000028e9 <.LM199>: 28e9: 83 im 3 28ea: e0 im -32 28eb: 80 im 0 28ec: 08 load 000028ed <.LM200>: 28ed: 83 im 3 28ee: e0 im -32 28ef: 80 im 0 28f0: 0c store 28f1: 99 im 25 28f2: 3d pushspadd 28f3: 0d popsp 28f4: 04 poppc 000028f5 : /*-----------------------------------------------------------------------*/ /* Read File */ /*-----------------------------------------------------------------------*/ #if _USE_READ FRESULT pf_read ( void* buff, /* Pointer to the read buffer (NULL:Forward data to the stream)*/ WORD btr, /* Number of bytes to read */ WORD* br /* Pointer to number of bytes read */ ) { 28f5: f4 im -12 28f6: 3d pushspadd 28f7: 0d popsp 28f8: 7e loadsp 56 28f9: 61 loadsp 68 28fa: 02 pushsp 28fb: 88 im 8 28fc: 05 add 28fd: be im 62 28fe: 05 add 28ff: 22 loadh 00002900 <.LM202>: DRESULT dr; CLUST clst; DWORD sect, remain; WORD rcnt; BYTE cs, *rbuff = buff; 2900: 72 loadsp 8 00002901 <.LM203>: FATFS *fs = FatFs; 2901: 83 im 3 2902: e0 im -32 2903: 90 im 16 2904: 08 load 2905: 5c storesp 48 2906: 5d storesp 52 2907: 5b storesp 44 2908: 5c storesp 48 2909: 5c storesp 48 0000290a <.LM204>: *br = 0; 290a: 80 im 0 290b: 7b loadsp 44 290c: 23 storeh 0000290d <.LM205>: if (!fs) return FR_NOT_ENABLED; /* Check file system */ 290d: 86 im 6 290e: 56 storesp 24 290f: 77 loadsp 28 2910: 80 im 0 2911: 2e eq 2912: 81 im 1 2913: ca im -54 2914: 38 neqbranch 00002915 <.LM206>: if (!(fs->flag & FA_OPENED)) /* Check if opened */ 2915: 81 im 1 2916: 18 addsp 32 2917: 33 loadb 2918: 81 im 1 2919: 06 and 291a: 55 storesp 20 0000291b <.LM207>: return FR_NOT_OPENED; 291b: 85 im 5 291c: 56 storesp 24 0000291d <.LM208>: 291d: 74 loadsp 16 291e: 80 im 0 291f: 2e eq 2920: 81 im 1 2921: bc im 60 2922: 38 neqbranch 00002923 <.LM209>: remain = fs->fsize - fs->fptr; 2923: 98 im 24 2924: 18 addsp 32 2925: 08 load 2926: 9c im 28 2927: 19 addsp 36 2928: 08 load 2929: 71 loadsp 4 292a: 31 sub 292b: 56 storesp 24 292c: 57 storesp 28 0000292d <.LM210>: if (btr > remain) btr = (WORD)remain; /* Truncate btr by remaining bytes */ 292d: 78 loadsp 32 292e: 75 loadsp 20 292f: 26 ulessthan 2930: 81 im 1 2931: b5 im 53 2932: 38 neqbranch 00002933 <.L149>: while (btr) { /* Repeat until all data transferred */ if ((fs->fptr % 512) == 0) { /* On the sector boundary? */ cs = (BYTE)(fs->fptr / 512 & (fs->csize - 1)); /* Sector offset in the cluster */ if (!cs) { /* On the cluster boundary? */ clst = (fs->fptr == 0) ? /* On the top of the file? */ fs->org_clust : get_fat(fs->curr_clust); if (clst <= 1) goto fr_abort; fs->curr_clust = clst; /* Update current cluster */ } sect = clust2sect(fs->curr_clust); /* Get current sector */ if (!sect) goto fr_abort; fs->dsect = sect + cs; } rcnt = (WORD)(512 - (fs->fptr % 512)); /* Get partial sector data from sector buffer */ if (rcnt > btr) rcnt = btr; dr = disk_readp(!buff ? 0 : rbuff, fs->dsect, (WORD)(fs->fptr % 512), rcnt); if (dr) goto fr_abort; fs->fptr += rcnt; rbuff += rcnt; /* Update pointers and counters */ btr -= rcnt; *br += rcnt; 2933: 78 loadsp 32 2934: 80 im 0 2935: 2e eq 2936: 81 im 1 2937: a4 im 36 2938: 38 neqbranch 00002939 <.L169>: 2939: 76 loadsp 24 293a: 83 im 3 293b: ff im -1 293c: 06 and 293d: 55 storesp 20 293e: 74 loadsp 16 293f: 80 im 0 2940: c1 im -63 2941: 38 neqbranch 00002942 <.LM213>: 2942: 82 im 2 2943: 18 addsp 32 2944: 33 loadb 2945: ff im -1 2946: 05 add 2947: 77 loadsp 28 2948: 89 im 9 2949: 2a lshiftright 294a: 06 and 294b: 70 loadsp 0 294c: 81 im 1 294d: ff im -1 294e: 06 and 294f: 51 storesp 4 2950: 55 storesp 20 00002951 <.LM214>: 2951: 74 loadsp 16 2952: 93 im 19 2953: 38 neqbranch 00002954 <.LM215>: 2954: 76 loadsp 24 2955: 81 im 1 2956: 99 im 25 2957: 38 neqbranch 2958: a0 im 32 2959: 18 addsp 32 295a: 08 load 295b: 56 storesp 24 0000295c <.L155>: 295c: 81 im 1 295d: 76 loadsp 24 295e: 27 ulessthanorequal 295f: 81 im 1 2960: a3 im 35 2961: 38 neqbranch 00002962 <.LM217>: 2962: 75 loadsp 20 2963: a4 im 36 2964: 19 addsp 36 2965: 0c store 00002966 <.L153>: 2966: a4 im 36 2967: 18 addsp 32 2968: 08 load 2969: 51 storesp 4 296a: f0 im -16 296b: fd im -3 296c: 3f callpcrel 0000296d <.LM219>: 296d: 83 im 3 296e: e0 im -32 296f: 80 im 0 2970: 08 load 2971: 80 im 0 2972: 2e eq 2973: 81 im 1 2974: 8f im 15 2975: 38 neqbranch 00002976 <.LM220>: 2976: 83 im 3 2977: e0 im -32 2978: 80 im 0 2979: 08 load 297a: 15 addsp 20 297b: a8 im 40 297c: 19 addsp 36 297d: 0c store 297e: 98 im 24 297f: 18 addsp 32 2980: 08 load 2981: 57 storesp 28 00002982 <.L152>: 2982: 76 loadsp 24 2983: 83 im 3 2984: ff im -1 2985: 06 and 2986: 84 im 4 2987: 80 im 0 2988: 71 loadsp 4 2989: 31 sub 298a: 70 loadsp 0 298b: 83 im 3 298c: ff im -1 298d: ff im -1 298e: 06 and 298f: 58 storesp 32 2990: 51 storesp 4 2991: 55 storesp 20 00002992 <.LM222>: 2992: 78 loadsp 32 2993: 76 loadsp 24 2994: 27 ulessthanorequal 2995: 83 im 3 2996: 38 neqbranch 2997: 78 loadsp 32 2998: 56 storesp 24 00002999 <.L159>: 2999: 75 loadsp 20 299a: 54 storesp 16 299b: 98 im 24 299c: 18 addsp 32 299d: 08 load 299e: 83 im 3 299f: ff im -1 29a0: 06 and 29a1: 53 storesp 12 29a2: a8 im 40 29a3: 18 addsp 32 29a4: 08 load 29a5: 52 storesp 8 29a6: 79 loadsp 36 29a7: 55 storesp 20 29a8: 7b loadsp 44 29a9: 80 im 0 29aa: 2e eq 29ab: 80 im 0 29ac: d2 im -46 29ad: 38 neqbranch 000029ae <.L161>: 29ae: 74 loadsp 16 29af: 51 storesp 4 29b0: de im -34 29b1: cd im -51 29b2: 3f callpcrel 000029b3 <.LM224>: 29b3: 83 im 3 29b4: e0 im -32 29b5: 80 im 0 29b6: 08 load 29b7: 80 im 0 29b8: cb im -53 29b9: 38 neqbranch 000029ba <.LM225>: 29ba: 98 im 24 29bb: 18 addsp 32 29bc: 08 load 29bd: 16 addsp 24 29be: 70 loadsp 0 29bf: 58 storesp 32 29c0: 98 im 24 29c1: 19 addsp 36 29c2: 0c store 29c3: 75 loadsp 20 29c4: 1a addsp 40 000029c5 <.LM226>: 29c5: 79 loadsp 36 29c6: 77 loadsp 28 29c7: 31 sub 29c8: 70 loadsp 0 29c9: 83 im 3 29ca: ff im -1 29cb: ff im -1 29cc: 06 and 29cd: 7d loadsp 52 29ce: 22 loadh 29cf: 79 loadsp 36 29d0: 05 add 29d1: 52 storesp 8 29d2: 5b storesp 44 29d3: 56 storesp 24 29d4: 5a storesp 40 29d5: 74 loadsp 16 29d6: 7b loadsp 44 29d7: 23 storeh 29d8: 78 loadsp 32 29d9: fe im -2 29da: de im -34 29db: 38 neqbranch 000029dc <.L165>: } return FR_OK; 29dc: 80 im 0 29dd: 56 storesp 24 000029de <.L146>: fr_abort: fs->flag = 0; return FR_DISK_ERR; } 29de: 75 loadsp 20 29df: 83 im 3 29e0: e0 im -32 29e1: 80 im 0 29e2: 0c store 29e3: 8e im 14 29e4: 3d pushspadd 29e5: 0d popsp 29e6: 04 poppc 000029e7 <.L167>: 29e7: 74 loadsp 16 29e8: 83 im 3 29e9: ff im -1 29ea: ff im -1 29eb: 06 and 29ec: 59 storesp 36 29ed: fe im -2 29ee: c4 im -60 29ef: 39 poppcrel 000029f0 <.L154>: 29f0: a4 im 36 29f1: 18 addsp 32 29f2: 08 load 29f3: 51 storesp 4 29f4: ed im -19 29f5: a4 im 36 29f6: 3f callpcrel 29f7: 83 im 3 29f8: e0 im -32 29f9: 80 im 0 29fa: 08 load 29fb: 56 storesp 24 29fc: fe im -2 29fd: de im -34 29fe: 39 poppcrel 000029ff <.L168>: 29ff: 7b loadsp 44 2a00: 55 storesp 20 2a01: ff im -1 2a02: ab im 43 2a03: 39 poppcrel 00002a04 <.L157>: 2a04: 80 im 0 2a05: 0b nop 2a06: 81 im 1 2a07: 19 addsp 36 2a08: 34 storeb 00002a09 <.LM233>: 2a09: 81 im 1 00002a0a <.LM234>: 2a0a: 0b nop 2a0b: 83 im 3 2a0c: e0 im -32 2a0d: 80 im 0 2a0e: 0c store 2a0f: 8e im 14 2a10: 3d pushspadd 2a11: 0d popsp 2a12: 04 poppc 00002a13 : #endif /*-----------------------------------------------------------------------*/ /* Write File */ /*-----------------------------------------------------------------------*/ #if _USE_WRITE FRESULT pf_write ( const void* buff, /* Pointer to the data to be written */ WORD btw, /* Number of bytes to write (0:Finalize the current write operation) */ WORD* bw /* Pointer to number of bytes written */ ) { CLUST clst; DWORD sect, remain; const BYTE *p = buff; BYTE cs; WORD wcnt; FATFS *fs = FatFs; *bw = 0; if (!fs) return FR_NOT_ENABLED; /* Check file system */ if (!(fs->flag & FA_OPENED)) /* Check if opened */ return FR_NOT_OPENED; if (!btw) { /* Finalize request */ if ((fs->flag & FA__WIP) && disk_writep(0, 0)) goto fw_abort; fs->flag &= ~FA__WIP; return FR_OK; } else { /* Write data request */ if (!(fs->flag & FA__WIP)) /* Round-down fptr to the sector boundary */ fs->fptr &= 0xFFFFFE00; } remain = fs->fsize - fs->fptr; if (btw > remain) btw = (WORD)remain; /* Truncate btw by remaining bytes */ while (btw) { /* Repeat until all data transferred */ if (((WORD)fs->fptr % 512) == 0) { /* On the sector boundary? */ cs = (BYTE)(fs->fptr / 512 & (fs->csize - 1)); /* Sector offset in the cluster */ if (!cs) { /* On the cluster boundary? */ clst = (fs->fptr == 0) ? /* On the top of the file? */ fs->org_clust : get_fat(fs->curr_clust); if (clst <= 1) goto fw_abort; fs->curr_clust = clst; /* Update current cluster */ } sect = clust2sect(fs->curr_clust); /* Get current sector */ if (!sect) goto fw_abort; fs->dsect = sect + cs; if (disk_writep(0, fs->dsect)) goto fw_abort; /* Initiate a sector write operation */ fs->flag |= FA__WIP; } wcnt = 512 - ((WORD)fs->fptr % 512); /* Number of bytes to write to the sector */ if (wcnt > btw) wcnt = btw; if (disk_writep(p, wcnt)) goto fw_abort; /* Send data to the sector */ fs->fptr += wcnt; p += wcnt; /* Update pointers and counters */ btw -= wcnt; *bw += wcnt; if (((WORD)fs->fptr % 512) == 0) { if (disk_writep(0, 0)) goto fw_abort; /* Finalize the currtent secter write operation */ fs->flag &= ~FA__WIP; } } return FR_OK; fw_abort: fs->flag = 0; return FR_DISK_ERR; } #endif /*-----------------------------------------------------------------------*/ /* Seek File R/W Pointer */ /*-----------------------------------------------------------------------*/ #if _USE_LSEEK FRESULT pf_lseek ( DWORD ofs /* File pointer from top of file */ ) { 2a13: fa im -6 2a14: 3d pushspadd 2a15: 0d popsp 2a16: 78 loadsp 32 00002a17 <.LM236>: CLUST clst; DWORD bcs, sect, ifptr; FATFS *fs = FatFs; 2a17: 83 im 3 2a18: e0 im -32 2a19: 90 im 16 2a1a: 08 load 2a1b: 55 storesp 20 2a1c: 55 storesp 20 00002a1d <.LM237>: if (!fs) return FR_NOT_ENABLED; /* Check file system */ 2a1d: 86 im 6 2a1e: 56 storesp 24 2a1f: 73 loadsp 12 2a20: 80 im 0 2a21: 2e eq 2a22: 81 im 1 2a23: cd im -51 2a24: 38 neqbranch 00002a25 <.LM238>: if (!(fs->flag & FA_OPENED)) /* Check if opened */ 2a25: 81 im 1 2a26: 14 addsp 16 2a27: 33 loadb 2a28: 81 im 1 2a29: 06 and 2a2a: 53 storesp 12 00002a2b <.LM239>: return FR_NOT_OPENED; 2a2b: 85 im 5 2a2c: 56 storesp 24 00002a2d <.LM240>: 2a2d: 72 loadsp 8 2a2e: 80 im 0 2a2f: 2e eq 2a30: 81 im 1 2a31: bf im 63 2a32: 38 neqbranch 00002a33 <.LM241>: if (ofs > fs->fsize) ofs = fs->fsize; /* Clip offset with the file size */ 2a33: 9c im 28 2a34: 14 addsp 16 2a35: 08 load 2a36: 53 storesp 12 2a37: 74 loadsp 16 2a38: 73 loadsp 12 2a39: 26 ulessthan 2a3a: 81 im 1 2a3b: be im 62 2a3c: 38 neqbranch 00002a3d <.L173>: ifptr = fs->fptr; 2a3d: 98 im 24 2a3e: 14 addsp 16 2a3f: 08 load 2a40: 57 storesp 28 00002a41 <.LM243>: fs->fptr = 0; 2a41: 80 im 0 2a42: 0b nop 2a43: 98 im 24 2a44: 15 addsp 20 2a45: 0c store 00002a46 <.LM244>: if (ofs > 0) { 2a46: 74 loadsp 16 2a47: 80 im 0 2a48: 2e eq 2a49: 81 im 1 2a4a: a4 im 36 2a4b: 38 neqbranch 00002a4c <.LM245>: bcs = (DWORD)fs->csize * 512; /* Cluster size (byte) */ 2a4c: 82 im 2 2a4d: 14 addsp 16 2a4e: 33 loadb 2a4f: 70 loadsp 0 2a50: 89 im 9 2a51: 2b ashiftleft 2a52: 57 storesp 28 2a53: 53 storesp 12 00002a54 <.LM246>: if (ifptr > 0 && 2a54: 76 loadsp 24 2a55: 80 im 0 2a56: 2e eq 2a57: 81 im 1 2a58: a6 im 38 2a59: 38 neqbranch 2a5a: 75 loadsp 20 2a5b: 52 storesp 8 2a5c: ff im -1 2a5d: 15 addsp 20 2a5e: 51 storesp 4 2a5f: 97 im 23 2a60: a1 im 33 2a61: 3f callpcrel 2a62: 83 im 3 2a63: e0 im -32 2a64: 80 im 0 2a65: 08 load 2a66: ff im -1 2a67: 18 addsp 32 2a68: 77 loadsp 28 2a69: 54 storesp 16 2a6a: 70 loadsp 0 2a6b: 53 storesp 12 2a6c: 58 storesp 32 2a6d: 53 storesp 12 2a6e: 97 im 23 2a6f: 92 im 18 2a70: 3f callpcrel 2a71: 83 im 3 2a72: e0 im -32 2a73: 80 im 0 2a74: 08 load 2a75: 73 loadsp 12 2a76: 26 ulessthan 2a77: 81 im 1 2a78: 86 im 6 2a79: 38 neqbranch 00002a7a <.LM247>: (ofs - 1) / bcs >= (ifptr - 1) / bcs) { /* When seek to same or following cluster, */ fs->fptr = (ifptr - 1) & ~(bcs - 1); /* start from the current cluster */ 2a7a: 75 loadsp 20 2a7b: 30 neg 2a7c: 70 loadsp 0 2a7d: 78 loadsp 32 2a7e: 06 and 2a7f: 70 loadsp 0 2a80: 98 im 24 2a81: 17 addsp 28 2a82: 0c store 00002a83 <.LM248>: ofs -= fs->fptr; 2a83: 76 loadsp 24 2a84: 71 loadsp 4 2a85: 31 sub 00002a86 <.LM249>: clst = fs->curr_clust; 2a86: a4 im 36 2a87: 17 addsp 28 2a88: 08 load 2a89: 52 storesp 8 2a8a: 57 storesp 28 2a8b: 51 storesp 4 2a8c: 53 storesp 12 00002a8d <.L176>: } else { /* When seek to back cluster, */ clst = fs->org_clust; /* start from the first cluster */ fs->curr_clust = clst; } while (ofs > bcs) { /* Cluster following loop */ clst = get_fat(clst); /* Follow cluster chain */ if (clst <= 1 || clst >= fs->n_fatent) goto fe_abort; fs->curr_clust = clst; fs->fptr += bcs; ofs -= bcs; 2a8d: 75 loadsp 20 2a8e: 75 loadsp 20 2a8f: 27 ulessthanorequal 2a90: b7 im 55 2a91: 38 neqbranch 00002a92 <.L188>: 2a92: 72 loadsp 8 2a93: 51 storesp 4 2a94: ec im -20 2a95: 84 im 4 2a96: 3f callpcrel 2a97: 83 im 3 2a98: e0 im -32 2a99: 80 im 0 2a9a: 08 load 2a9b: 53 storesp 12 00002a9c <.LM252>: 2a9c: 81 im 1 2a9d: 0b nop 2a9e: 83 im 3 2a9f: e0 im -32 2aa0: 80 im 0 2aa1: 08 load 2aa2: 27 ulessthanorequal 2aa3: 80 im 0 2aa4: e5 im -27 2aa5: 38 neqbranch 2aa6: 83 im 3 2aa7: e0 im -32 2aa8: 80 im 0 2aa9: 08 load 2aaa: 88 im 8 2aab: 15 addsp 20 2aac: 08 load 2aad: 27 ulessthanorequal 2aae: 80 im 0 2aaf: da im -38 2ab0: 38 neqbranch 00002ab1 <.LM253>: 2ab1: 83 im 3 2ab2: e0 im -32 2ab3: 80 im 0 2ab4: 08 load 2ab5: a4 im 36 2ab6: 15 addsp 20 2ab7: 0c store 00002ab8 <.LM254>: 2ab8: 98 im 24 2ab9: 14 addsp 16 2aba: 08 load 2abb: 16 addsp 24 2abc: 98 im 24 2abd: 15 addsp 20 2abe: 0c store 00002abf <.LM255>: 2abf: 74 loadsp 16 2ac0: 76 loadsp 24 2ac1: 31 sub 2ac2: 55 storesp 20 2ac3: 74 loadsp 16 2ac4: 76 loadsp 24 2ac5: 26 ulessthan 2ac6: cb im -53 2ac7: 38 neqbranch 00002ac8 <.L185>: } fs->fptr += ofs; 2ac8: 98 im 24 2ac9: 14 addsp 16 2aca: 08 load 2acb: 15 addsp 20 2acc: 70 loadsp 0 2acd: 98 im 24 2ace: 16 addsp 24 2acf: 0c store 00002ad0 <.LM257>: sect = clust2sect(clst); /* Current sector */ 2ad0: 73 loadsp 12 2ad1: 52 storesp 8 2ad2: 56 storesp 24 2ad3: ee im -18 2ad4: 94 im 20 2ad5: 3f callpcrel 00002ad6 <.LM258>: if (!sect) goto fe_abort; 2ad6: 83 im 3 2ad7: e0 im -32 2ad8: 80 im 0 2ad9: 08 load 2ada: 80 im 0 2adb: 2e eq 2adc: ad im 45 2add: 38 neqbranch 00002ade <.LM259>: fs->dsect = sect + (fs->fptr / 512 & (fs->csize - 1)); 2ade: 82 im 2 2adf: 14 addsp 16 2ae0: 33 loadb 2ae1: ff im -1 2ae2: 05 add 2ae3: 76 loadsp 24 2ae4: 89 im 9 2ae5: 2a lshiftright 2ae6: 06 and 2ae7: 83 im 3 2ae8: e0 im -32 2ae9: 80 im 0 2aea: 08 load 2aeb: 05 add 2aec: a8 im 40 2aed: 15 addsp 20 2aee: 0c store 00002aef <.L174>: } return FR_OK; 2aef: 80 im 0 2af0: 56 storesp 24 00002af1 <.L170>: fe_abort: fs->flag = 0; return FR_DISK_ERR; } 2af1: 75 loadsp 20 2af2: 83 im 3 2af3: e0 im -32 2af4: 80 im 0 2af5: 0c store 2af6: 88 im 8 2af7: 3d pushspadd 2af8: 0d popsp 2af9: 04 poppc 00002afa <.L187>: 2afa: 72 loadsp 8 2afb: 55 storesp 20 2afc: fe im -2 2afd: bf im 63 2afe: 39 poppcrel 00002aff <.L175>: 2aff: a0 im 32 2b00: 14 addsp 16 2b01: 08 load 00002b02 <.LM264>: 2b02: 70 loadsp 0 2b03: a4 im 36 2b04: 16 addsp 24 2b05: 0c store 2b06: 53 storesp 12 2b07: ff im -1 2b08: 84 im 4 2b09: 39 poppcrel 00002b0a <.L181>: 2b0a: 80 im 0 2b0b: 0b nop 2b0c: 81 im 1 2b0d: 15 addsp 20 2b0e: 34 storeb 00002b0f <.LM266>: 2b0f: 81 im 1 00002b10 <.LM267>: 2b10: 0b nop 2b11: 83 im 3 2b12: e0 im -32 2b13: 80 im 0 2b14: 0c store 2b15: 88 im 8 2b16: 3d pushspadd 2b17: 0d popsp 2b18: 04 poppc 00002b19 : #endif /*-----------------------------------------------------------------------*/ /* Create a Directroy Object */ /*-----------------------------------------------------------------------*/ #if _USE_DIR FRESULT pf_opendir ( DIR *dj, /* Pointer to directory object to create */ const char *path /* Pointer to the directory path */ ) { 2b19: ee im -18 2b1a: 3d pushspadd 2b1b: 0d popsp 2b1c: 64 loadsp 80 2b1d: 56 storesp 24 00002b1e <.LM269>: FRESULT res; BYTE sp[12], dir[32]; FATFS *fs = FatFs; if (!fs) { /* Check file system */ res = FR_NOT_ENABLED; 2b1e: 86 im 6 2b1f: 55 storesp 20 00002b20 <.LM270>: 2b20: 83 im 3 2b21: e0 im -32 2b22: 90 im 16 2b23: 08 load 2b24: 80 im 0 2b25: 2e eq 2b26: 80 im 0 2b27: f1 im -15 2b28: 38 neqbranch 00002b29 <.LM271>: } else { dj->fn = sp; 2b29: 94 im 20 2b2a: 3d pushspadd 2b2b: f4 im -12 2b2c: 11 addsp 4 2b2d: 84 im 4 2b2e: 18 addsp 32 2b2f: 0c store 00002b30 <.LM272>: res = follow_path(dj, dir, path); /* Follow the path to the directory */ 2b30: 66 loadsp 88 2b31: 54 storesp 16 2b32: d4 im -44 2b33: 05 add 2b34: 52 storesp 8 2b35: 75 loadsp 20 2b36: 51 storesp 4 2b37: ef im -17 2b38: e0 im -32 2b39: 3f callpcrel 2b3a: 83 im 3 2b3b: e0 im -32 2b3c: 80 im 0 2b3d: 08 load 2b3e: 55 storesp 20 00002b3f <.LM273>: if (res == FR_OK) { /* Follow completed */ 2b3f: 83 im 3 2b40: e0 im -32 2b41: 80 im 0 2b42: 08 load 2b43: 80 im 0 2b44: cf im -49 2b45: 38 neqbranch 00002b46 <.LM274>: if (dir[0]) { /* It is not the root dir */ 2b46: 89 im 9 2b47: 3d pushspadd 2b48: 33 loadb 2b49: 54 storesp 16 2b4a: 73 loadsp 12 2b4b: 80 im 0 2b4c: 2e eq 2b4d: bc im 60 2b4e: 38 neqbranch 00002b4f <.LM275>: if (dir[DIR_Attr] & AM_DIR) /* The object is a directory */ 2b4f: 02 pushsp 2b50: ab im 43 2b51: 05 add 2b52: 33 loadb 2b53: 70 loadsp 0 2b54: 84 im 4 2b55: 2a lshiftright 2b56: 70 loadsp 0 2b57: 81 im 1 2b58: 06 and 2b59: 51 storesp 4 2b5a: 55 storesp 20 2b5b: 55 storesp 20 00002b5c <.LM276>: dj->sclust = LD_CLUST(dir); else /* The object is not a directory */ res = FR_NO_PATH; 2b5c: 84 im 4 2b5d: 55 storesp 20 00002b5e <.LM277>: 2b5e: 73 loadsp 12 2b5f: 80 im 0 2b60: 2e eq 2b61: b7 im 55 2b62: 38 neqbranch 00002b63 <.LM278>: 2b63: 02 pushsp 2b64: b5 im 53 2b65: 05 add 2b66: 33 loadb 2b67: 8f im 15 2b68: 3d pushspadd 2b69: 33 loadb 2b6a: 71 loadsp 4 2b6b: 98 im 24 2b6c: 2b ashiftleft 2b6d: 71 loadsp 4 2b6e: 90 im 16 2b6f: 2b ashiftleft 2b70: 07 or 2b71: 02 pushsp 2b72: 8c im 12 2b73: 05 add 2b74: bb im 59 2b75: 05 add 2b76: 33 loadb 2b77: 02 pushsp 2b78: 90 im 16 2b79: 05 add 2b7a: ba im 58 2b7b: 05 add 2b7c: 33 loadb 2b7d: 71 loadsp 4 2b7e: 88 im 8 2b7f: 2b ashiftleft 2b80: 07 or 2b81: 72 loadsp 8 2b82: 07 or 2b83: 88 im 8 2b84: 1b addsp 44 2b85: 0c store 2b86: 53 storesp 12 2b87: 57 storesp 28 2b88: 59 storesp 36 2b89: 57 storesp 28 00002b8a <.L198>: } if (res == FR_OK) res = dir_rewind(dj); /* Rewind dir */ 2b8a: 75 loadsp 20 2b8b: 51 storesp 4 2b8c: ed im -19 2b8d: 88 im 8 2b8e: 3f callpcrel 2b8f: 83 im 3 2b90: e0 im -32 2b91: 80 im 0 2b92: 08 load 2b93: 55 storesp 20 00002b94 <.L192>: } if (res == FR_NO_FILE) res = FR_NO_PATH; 2b94: 74 loadsp 16 2b95: 83 im 3 2b96: 2e eq 2b97: 8a im 10 2b98: 38 neqbranch 00002b99 <.L191>: } return res; } 2b99: 74 loadsp 16 2b9a: 83 im 3 2b9b: e0 im -32 2b9c: 80 im 0 2b9d: 0c store 2b9e: 94 im 20 2b9f: 3d pushspadd 2ba0: 0d popsp 2ba1: 04 poppc 00002ba2 <.L200>: 2ba2: 84 im 4 00002ba3 <.LM283>: 2ba3: 0b nop 2ba4: 83 im 3 2ba5: e0 im -32 2ba6: 80 im 0 2ba7: 0c store 2ba8: 94 im 20 2ba9: 3d pushspadd 2baa: 0d popsp 2bab: 04 poppc 00002bac : /*-----------------------------------------------------------------------*/ /* Read Directory Entry in Sequense */ /*-----------------------------------------------------------------------*/ FRESULT pf_readdir ( DIR *dj, /* Pointer to the open directory object */ FILINFO *fno /* Pointer to file information to return */ ) { 2bac: eb im -21 2bad: 3d pushspadd 2bae: 0d popsp 2baf: 67 loadsp 92 2bb0: 69 loadsp 100 2bb1: 5b storesp 44 2bb2: 59 storesp 36 00002bb3 <.LM285>: FRESULT res; BYTE sp[12], dir[32]; FATFS *fs = FatFs; if (!fs) { /* Check file system */ res = FR_NOT_ENABLED; 2bb3: 86 im 6 2bb4: 55 storesp 20 00002bb5 <.LM286>: 2bb5: 83 im 3 2bb6: e0 im -32 2bb7: 90 im 16 2bb8: 08 load 2bb9: 80 im 0 2bba: 2e eq 2bbb: 81 im 1 2bbc: f1 im -15 2bbd: 38 neqbranch 00002bbe <.LM287>: } else { dj->fn = sp; 2bbe: 97 im 23 2bbf: 3d pushspadd 2bc0: f4 im -12 2bc1: 05 add 2bc2: 84 im 4 2bc3: 1a addsp 40 2bc4: 0c store 00002bc5 <.LM288>: if (!fno) { 2bc5: 79 loadsp 36 2bc6: 80 im 0 2bc7: 2e eq 2bc8: 83 im 3 2bc9: 84 im 4 2bca: 38 neqbranch 00002bcb <.LBB24>: 2bcb: 8c im 12 2bcc: 3d pushspadd 2bcd: 58 storesp 32 00002bce <.LM290>: 2bce: 83 im 3 2bcf: 55 storesp 20 00002bd0 <.LM291>: 2bd0: 90 im 16 2bd1: 19 addsp 36 2bd2: 08 load 2bd3: 81 im 1 2bd4: fb im -5 2bd5: 38 neqbranch 00002bd6 <.L240>: 2bd6: 80 im 0 2bd7: 0b nop 2bd8: 90 im 16 2bd9: 1a addsp 40 2bda: 0c store 00002bdb <.L216>: res = dir_rewind(dj); } else { res = dir_read(dj, dir); if (res == FR_NO_FILE) { 2bdb: 74 loadsp 16 2bdc: 83 im 3 2bdd: 2e eq 2bde: 82 im 2 2bdf: e6 im -26 2be0: 38 neqbranch 00002be1 <.LM294>: dj->sect = 0; res = FR_OK; } if (res == FR_OK) { /* A valid entry is found */ 2be1: 74 loadsp 16 2be2: 81 im 1 2be3: ca im -54 2be4: 38 neqbranch 00002be5 <.L241>: 2be5: 89 im 9 2be6: 1a addsp 40 2be7: 57 storesp 28 00002be8 <.LM296>: 2be8: 90 im 16 2be9: 19 addsp 36 2bea: 08 load 2beb: 80 im 0 2bec: 2e eq 2bed: 81 im 1 2bee: a0 im 32 2bef: 38 neqbranch 00002bf0 <.LM297>: 2bf0: 80 im 0 2bf1: 56 storesp 24 00002bf2 <.L226>: 2bf2: 77 loadsp 28 2bf3: 16 addsp 24 2bf4: 70 loadsp 0 2bf5: 33 loadb 2bf6: 51 storesp 4 2bf7: 55 storesp 20 00002bf8 <.LM299>: 2bf8: 74 loadsp 16 2bf9: a0 im 32 2bfa: 2e eq 2bfb: 9b im 27 2bfc: 38 neqbranch 00002bfd <.LM300>: 2bfd: 74 loadsp 16 2bfe: 85 im 5 2bff: 2e eq 2c00: 82 im 2 2c01: a9 im 41 2c02: 38 neqbranch 00002c03 <.LM301>: 2c03: 74 loadsp 16 2c04: 77 loadsp 28 2c05: 70 loadsp 0 2c06: 81 im 1 2c07: 05 add 2c08: 59 storesp 36 2c09: 34 storeb 00002c0a <.LM302>: 2c0a: 81 im 1 2c0b: 16 addsp 24 2c0c: 70 loadsp 0 2c0d: 81 im 1 2c0e: ff im -1 2c0f: 06 and 2c10: 57 storesp 28 2c11: 55 storesp 20 2c12: 87 im 7 2c13: 76 loadsp 24 2c14: 27 ulessthanorequal 2c15: dc im -36 2c16: 38 neqbranch 00002c17 <.L222>: 2c17: 88 im 8 2c18: 18 addsp 32 2c19: 33 loadb 2c1a: 55 storesp 20 2c1b: 74 loadsp 16 2c1c: a0 im 32 2c1d: 2e eq 2c1e: a9 im 41 2c1f: 38 neqbranch 00002c20 <.LM304>: 2c20: ae im 46 2c21: 77 loadsp 28 2c22: 70 loadsp 0 2c23: 81 im 1 2c24: 05 add 2c25: 59 storesp 36 2c26: 34 storeb 00002c27 <.LM305>: 2c27: 88 im 8 2c28: 56 storesp 24 00002c29 <.L232>: 2c29: 77 loadsp 28 2c2a: 16 addsp 24 2c2b: 70 loadsp 0 2c2c: 33 loadb 2c2d: 51 storesp 4 2c2e: 55 storesp 20 00002c2f <.LM307>: 2c2f: 74 loadsp 16 2c30: a0 im 32 2c31: 2e eq 2c32: 95 im 21 2c33: 38 neqbranch 00002c34 <.LM308>: 2c34: 74 loadsp 16 2c35: 77 loadsp 28 2c36: 70 loadsp 0 2c37: 81 im 1 2c38: 05 add 2c39: 59 storesp 36 2c3a: 34 storeb 00002c3b <.LM309>: 2c3b: 81 im 1 2c3c: 16 addsp 24 2c3d: 70 loadsp 0 2c3e: 81 im 1 2c3f: ff im -1 2c40: 06 and 2c41: 57 storesp 28 2c42: 55 storesp 20 2c43: 8a im 10 2c44: 76 loadsp 24 2c45: 27 ulessthanorequal 2c46: e2 im -30 2c47: 38 neqbranch 00002c48 <.L227>: 2c48: 8b im 11 2c49: 18 addsp 32 2c4a: 33 loadb 2c4b: 88 im 8 2c4c: 1b addsp 44 2c4d: 34 storeb 00002c4e <.LM311>: 2c4e: 9f im 31 2c4f: 18 addsp 32 2c50: 33 loadb 2c51: 9e im 30 2c52: 19 addsp 36 2c53: 33 loadb 2c54: 71 loadsp 4 2c55: 98 im 24 2c56: 2b ashiftleft 2c57: 71 loadsp 4 2c58: 90 im 16 2c59: 2b ashiftleft 2c5a: 07 or 2c5b: 9d im 29 2c5c: 1b addsp 44 2c5d: 33 loadb 2c5e: 70 loadsp 0 2c5f: 88 im 8 2c60: 2b ashiftleft 2c61: 72 loadsp 8 2c62: 07 or 2c63: 9c im 28 2c64: 1d addsp 52 2c65: 33 loadb 2c66: 71 loadsp 4 2c67: 07 or 2c68: 7f loadsp 60 2c69: 0c store 2c6a: 52 storesp 8 00002c6b <.LM312>: 2c6b: 99 im 25 2c6c: 1c addsp 48 2c6d: 33 loadb 2c6e: 98 im 24 2c6f: 1d addsp 52 2c70: 33 loadb 2c71: 71 loadsp 4 2c72: 88 im 8 2c73: 2b ashiftleft 2c74: 07 or 2c75: 53 storesp 12 2c76: 51 storesp 4 2c77: 53 storesp 12 2c78: 57 storesp 28 2c79: 5c storesp 48 2c7a: 56 storesp 24 2c7b: 74 loadsp 16 2c7c: 84 im 4 2c7d: 1b addsp 44 2c7e: 23 storeh 00002c7f <.LM313>: 2c7f: 97 im 23 2c80: 18 addsp 32 2c81: 33 loadb 2c82: 96 im 22 2c83: 19 addsp 36 2c84: 33 loadb 2c85: 71 loadsp 4 2c86: 88 im 8 2c87: 2b ashiftleft 2c88: 07 or 2c89: 56 storesp 24 2c8a: 56 storesp 24 2c8b: 74 loadsp 16 2c8c: 86 im 6 2c8d: 1b addsp 44 2c8e: 23 storeh 00002c8f <.L220>: 2c8f: 80 im 0 2c90: 77 loadsp 28 2c91: 34 storeb 00002c92 <.LBE26>: get_fileinfo(dj, dir, fno); /* Get the object information */ res = dir_next(dj); /* Increment index for next */ 2c92: 78 loadsp 32 2c93: 51 storesp 4 2c94: eb im -21 2c95: e3 im -29 2c96: 3f callpcrel 2c97: 83 im 3 2c98: e0 im -32 2c99: 80 im 0 2c9a: 08 load 2c9b: 55 storesp 20 00002c9c <.LM316>: if (res == FR_NO_FILE) { 2c9c: 83 im 3 2c9d: e0 im -32 2c9e: 80 im 0 2c9f: 08 load 2ca0: 83 im 3 2ca1: 2e eq 2ca2: 09 not 2ca3: 81 im 1 2ca4: 06 and 2ca5: 88 im 8 2ca6: 38 neqbranch 00002ca7 <.LM317>: dj->sect = 0; 2ca7: 80 im 0 2ca8: 0b nop 2ca9: 90 im 16 2caa: 1a addsp 40 2cab: 0c store 00002cac <.LM318>: res = FR_OK; 2cac: 80 im 0 2cad: 55 storesp 20 00002cae <.L203>: } } } } return res; } 2cae: 74 loadsp 16 2caf: 83 im 3 2cb0: e0 im -32 2cb1: 80 im 0 2cb2: 0c store 2cb3: 97 im 23 2cb4: 3d pushspadd 2cb5: 0d popsp 2cb6: 04 poppc 00002cb7 <.L211>: 2cb7: 78 loadsp 32 2cb8: 51 storesp 4 2cb9: eb im -21 2cba: be im 62 2cbb: 3f callpcrel 2cbc: 83 im 3 2cbd: e0 im -32 2cbe: 80 im 0 2cbf: 08 load 2cc0: 55 storesp 20 00002cc1 <.LM321>: 2cc1: 83 im 3 2cc2: e0 im -32 2cc3: 80 im 0 2cc4: 08 load 2cc5: fe im -2 2cc6: 8f im 15 2cc7: 38 neqbranch 2cc8: 90 im 16 2cc9: 19 addsp 36 2cca: 08 load 2ccb: 80 im 0 2ccc: 2e eq 2ccd: fe im -2 2cce: 8c im 12 2ccf: 38 neqbranch 00002cd0 <.L215>: 2cd0: a0 im 32 2cd1: 54 storesp 16 2cd2: 78 loadsp 32 2cd3: 22 loadh 2cd4: 70 loadsp 0 2cd5: 85 im 5 2cd6: 2b ashiftleft 2cd7: 83 im 3 2cd8: e0 im -32 2cd9: 06 and 2cda: 54 storesp 16 2cdb: 56 storesp 24 2cdc: 90 im 16 2cdd: 19 addsp 36 2cde: 08 load 2cdf: 52 storesp 8 2ce0: 77 loadsp 28 2ce1: 51 storesp 4 2ce2: d8 im -40 2ce3: 9b im 27 2ce4: 3f callpcrel 2ce5: 83 im 3 2ce6: e0 im -32 2ce7: 80 im 0 2ce8: 08 load 2ce9: 80 im 0 2cea: f4 im -12 2ceb: 38 neqbranch 00002cec <.LM323>: 2cec: 77 loadsp 28 2ced: 33 loadb 2cee: 56 storesp 24 00002cef <.LM324>: 2cef: 75 loadsp 20 2cf0: 80 im 0 2cf1: 2e eq 2cf2: 80 im 0 2cf3: f5 im -11 2cf4: 38 neqbranch 00002cf5 <.LM325>: 2cf5: 8b im 11 2cf6: 18 addsp 32 2cf7: 33 loadb 2cf8: bf im 63 2cf9: 06 and 00002cfa <.LM326>: 2cfa: 76 loadsp 24 2cfb: 81 im 1 2cfc: e5 im -27 2cfd: 32 xor 2cfe: 70 loadsp 0 2cff: 30 neg 2d00: 70 loadsp 0 2d01: 9f im 31 2d02: 2a lshiftright 2d03: 51 storesp 4 2d04: 51 storesp 4 2d05: 56 storesp 24 2d06: 57 storesp 28 2d07: 75 loadsp 20 2d08: ae im 46 2d09: 2e eq 2d0a: ff im -1 2d0b: ab im 43 2d0c: 38 neqbranch 2d0d: 74 loadsp 16 2d0e: 80 im 0 2d0f: 2e eq 2d10: ff im -1 2d11: a5 im 37 2d12: 38 neqbranch 2d13: 76 loadsp 24 2d14: 83 im 3 2d15: 2a lshiftright 2d16: 70 loadsp 0 2d17: 81 im 1 2d18: 06 and 2d19: 51 storesp 4 2d1a: 55 storesp 20 2d1b: 74 loadsp 16 2d1c: ff im -1 2d1d: 99 im 25 2d1e: 38 neqbranch 2d1f: 83 im 3 2d20: e0 im -32 2d21: 80 im 0 2d22: 08 load 2d23: 55 storesp 20 00002d24 <.LM327>: 2d24: 74 loadsp 16 2d25: ff im -1 2d26: 87 im 7 2d27: 38 neqbranch 2d28: fd im -3 2d29: bb im 59 2d2a: 39 poppcrel 00002d2b <.L247>: 2d2b: 81 im 1 2d2c: e5 im -27 2d2d: 55 storesp 20 00002d2e <.LM329>: 2d2e: 74 loadsp 16 2d2f: 77 loadsp 28 2d30: 70 loadsp 0 2d31: 81 im 1 2d32: 05 add 2d33: 59 storesp 36 2d34: 34 storeb 00002d35 <.LM330>: 2d35: 81 im 1 2d36: 16 addsp 24 2d37: 70 loadsp 0 2d38: 81 im 1 2d39: ff im -1 2d3a: 06 and 2d3b: 57 storesp 28 2d3c: 55 storesp 20 2d3d: 87 im 7 2d3e: 76 loadsp 24 2d3f: 27 ulessthanorequal 2d40: fd im -3 2d41: b0 im 48 2d42: 38 neqbranch 2d43: fd im -3 2d44: d2 im -46 2d45: 39 poppcrel 00002d46 <.L246>: 2d46: 80 im 0 2d47: 0b nop 2d48: 90 im 16 2d49: 1a addsp 40 2d4a: 0c store 2d4b: fd im -3 2d4c: 98 im 24 2d4d: 39 poppcrel 00002d4e <.L245>: 2d4e: 78 loadsp 32 2d4f: 51 storesp 4 2d50: e9 im -23 2d51: c4 im -60 2d52: 3f callpcrel 2d53: 83 im 3 2d54: e0 im -32 2d55: 80 im 0 2d56: 08 load 00002d57 <.LM333>: 2d57: 83 im 3 2d58: e0 im -32 2d59: 80 im 0 2d5a: 0c store 2d5b: 97 im 23 2d5c: 3d pushspadd 2d5d: 0d popsp 2d5e: 04 poppc 00002d5f <.L238>: 2d5f: 81 im 1 2d60: 55 storesp 20 00002d61 <.LM335>: 2d61: 80 im 0 2d62: 0b nop 2d63: 90 im 16 2d64: 1a addsp 40 2d65: 0c store 2d66: fc im -4 2d67: f3 im -13 2d68: 39 poppcrel 00002d69 <.L239>: 2d69: 83 im 3 2d6a: 55 storesp 20 00002d6b <.LM337>: 2d6b: 80 im 0 2d6c: 0b nop 2d6d: 90 im 16 2d6e: 1a addsp 40 2d6f: 0c store 2d70: fc im -4 2d71: e9 im -23 2d72: 39 poppcrel 00002d73 : #include "mmcconf.h" #include "debug.h" void mmcInit(void) { 2d73: 80 im 0 2d74: 3d pushspadd 2d75: 0d popsp 00002d76 <.LM2>: // initialize SPI interface spiInit(); 2d76: 85 im 5 2d77: db im -37 2d78: 3f callpcrel 00002d79 <.LM3>: // release chip select mmcChipSelect(0); 2d79: 80 im 0 2d7a: 51 storesp 4 2d7b: 85 im 5 2d7c: f0 im -16 2d7d: 3f callpcrel 2d7e: 82 im 2 2d7f: 3d pushspadd 2d80: 0d popsp 2d81: 04 poppc 00002d82 : } u08 mmcReset(void) { u16 retry; u08 r1; u08 i; u08 sdcard; // i=0xff; //255x do { spiTransferFF(); i--; } while(i); //255x // r1 = mmcSendCommand(MMC_GO_IDLE_STATE, 0); if (r1!=1) return -1; retry=0xffff; //65535x do { r1 = mmcSendCommand(55, 0); if (r1!=1) break; //MMC //if (r1==5) break; //MMC <--- kontrolovat takhle rekl Bob 27.6.2008 //Strana 120 ve specifikaci. //bit 0 - in idle state, bit 2 - illegal command r1 = mmcSendCommand(41, 0); if (r1==0) break; //SD retry--; } while(retry); // initializing card for operation r1 = mmcSendCommand(MMC_SEND_OP_COND, 0); // SDkarty vraceji 0 // MMCkarta vraci 1 //if (r1>=2) return -1; //problem (MMC taky nefunguje) if (r1!=0) return -1; //kdyz jsem to tady nechal jit s MMC kartou dal (s r1=1) //tak to na nekterem z dalsich povelu zustalo zasekle //a po vytazeni MMC a vlozeni jine SD se muset mackat Reset :-( /* if( r1!=0 && r1!=5) { u08 v; v=inb(PINC)&0xf0; v|=(0x0f ^ (r1 & 0x0f) ); PORTC=v; while(1); //nekonecna smycka return -1; } */ // turn off CRC checking to simplify communication //r1 = mmcSendCommand(MMC_CRC_ON_OFF, 0); // set block length to 512 bytes //r1 = mmcSendCommand(MMC_SET_BLOCKLEN, 512); // return success return 0; } u08 mmcSendCommand(u08 cmd, u32 arg) { u08 r1; // assert chip select mmcChipSelect(1); // //spiTransferFF(); //pribude 34 bajtu kodu (!) // issue the command r1 = mmcCommand(cmd, arg); // //spiTransferFF(); // release chip select mmcChipSelect(0); return r1; } unsigned char mmc_sector_buffer[512]; void mmcReadLoop() { 2d82: ff im -1 2d83: 3d pushspadd 2d84: 0d popsp 00002d85 <.LM5>: u16 i; u08 *buffer=mmc_sector_buffer; //natvrdo! 2d85: 83 im 3 2d86: e3 im -29 2d87: e8 im -24 2d88: 52 storesp 8 00002d89 <.LM6>: i=0x80; //512 2d89: 81 im 1 2d8a: 80 im 0 2d8b: 51 storesp 4 00002d8c <.L3>: do { *buffer++ = spiTransferFF(); i--; } while(i); 2d8c: 86 im 6 2d8d: d0 im -48 2d8e: 3f callpcrel 2d8f: 83 im 3 2d90: e0 im -32 2d91: 80 im 0 2d92: 08 load 2d93: 72 loadsp 8 2d94: 70 loadsp 0 2d95: 81 im 1 2d96: 05 add 2d97: 54 storesp 16 2d98: 34 storeb 2d99: ff im -1 2d9a: 11 addsp 4 2d9b: 70 loadsp 0 2d9c: 83 im 3 2d9d: ff im -1 2d9e: ff im -1 2d9f: 06 and 2da0: 51 storesp 4 2da1: 51 storesp 4 2da2: 70 loadsp 0 2da3: e8 im -24 2da4: 38 neqbranch 00002da5 <.LM8>: //spiDisplay(1); i=0x80; //512 2da5: 81 im 1 2da6: 80 im 0 2da7: 51 storesp 4 00002da8 <.L6>: do { *buffer++ = spiTransferFF(); i--; } while(i); 2da8: 86 im 6 2da9: b4 im 52 2daa: 3f callpcrel 2dab: 83 im 3 2dac: e0 im -32 2dad: 80 im 0 2dae: 08 load 2daf: 72 loadsp 8 2db0: 70 loadsp 0 2db1: 81 im 1 2db2: 05 add 2db3: 54 storesp 16 2db4: 34 storeb 2db5: ff im -1 2db6: 11 addsp 4 2db7: 70 loadsp 0 2db8: 83 im 3 2db9: ff im -1 2dba: ff im -1 2dbb: 06 and 2dbc: 51 storesp 4 2dbd: 51 storesp 4 2dbe: 70 loadsp 0 2dbf: e8 im -24 2dc0: 38 neqbranch 00002dc1 <.LM10>: i=0x80; //512 2dc1: 81 im 1 2dc2: 80 im 0 2dc3: 51 storesp 4 00002dc4 <.L9>: do { *buffer++ = spiTransferFF(); i--; } while(i); 2dc4: 86 im 6 2dc5: 98 im 24 2dc6: 3f callpcrel 2dc7: 83 im 3 2dc8: e0 im -32 2dc9: 80 im 0 2dca: 08 load 2dcb: 72 loadsp 8 2dcc: 70 loadsp 0 2dcd: 81 im 1 2dce: 05 add 2dcf: 54 storesp 16 2dd0: 34 storeb 2dd1: ff im -1 2dd2: 11 addsp 4 2dd3: 70 loadsp 0 2dd4: 83 im 3 2dd5: ff im -1 2dd6: ff im -1 2dd7: 06 and 2dd8: 51 storesp 4 2dd9: 51 storesp 4 2dda: 70 loadsp 0 2ddb: e8 im -24 2ddc: 38 neqbranch 00002ddd <.LM12>: i=0x80; //512 2ddd: 81 im 1 2dde: 80 im 0 2ddf: 51 storesp 4 00002de0 <.L12>: do { *buffer++ = spiTransferFF(); i--; } while(i); 2de0: 85 im 5 2de1: fc im -4 2de2: 3f callpcrel 2de3: 83 im 3 2de4: e0 im -32 2de5: 80 im 0 2de6: 08 load 2de7: 72 loadsp 8 2de8: 70 loadsp 0 2de9: 81 im 1 2dea: 05 add 2deb: 54 storesp 16 2dec: 34 storeb 2ded: ff im -1 2dee: 11 addsp 4 2def: 70 loadsp 0 2df0: 83 im 3 2df1: ff im -1 2df2: ff im -1 2df3: 06 and 2df4: 51 storesp 4 2df5: 51 storesp 4 2df6: 70 loadsp 0 2df7: e8 im -24 2df8: 38 neqbranch 2df9: 83 im 3 2dfa: 3d pushspadd 2dfb: 0d popsp 2dfc: 04 poppc 00002dfd : //spiDisplay(0); } u08 mmcRead(u32 sector) { u08 r1; // assert chip select mmcChipSelect(1); // issue command r1 = mmcCommand(MMC_READ_SINGLE_BLOCK, sector<<9); // check for valid response if(r1 != 0x00) return r1; // wait for block start while(spiTransferFF() != MMC_STARTBLOCK_READ); //zacatek bloku //nacti 512 bytu mmcReadLoop(); // read 16-bit CRC //2x FF: spiTransferFF(); spiTransferFF(); //// + 1x FF navic pred releasnutim chip selectu //spiTransferFF(); // // release chip select mmcChipSelect(0); //debug("Hexdump\n"); //hexdump(mmc_sector_buffer,80); // return 0; //success } u08 mmcWrite(u32 sector) { u08 r1; u16 i; u08 *buffer=mmc_sector_buffer; //natvrdo! // assert chip select mmcChipSelect(1); // issue command r1 = mmcCommand(MMC_WRITE_BLOCK, sector<<9); // check for valid response if(r1 != 0x00) return r1; // send dummy spiTransferFF(); // send data start token spiTransferByte(MMC_STARTBLOCK_WRITE); // write data (512 bytes) i=0x200; do { spiTransferByte(*buffer++); i--; } while(i); // write 16-bit CRC (dummy values) //2x FF: spiTransferFF(); spiTransferFF(); // read data response token r1 = spiTransferFF(); if( (r1&MMC_DR_MASK) != MMC_DR_ACCEPT) return r1; // wait until card not busy while(!spiTransferFF()); // release chip select mmcChipSelect(0); // return success return 0; } u08 mmcCommand(u08 cmd, u32 arg) { 2dfd: fd im -3 2dfe: 3d pushspadd 2dff: 0d popsp 2e00: 76 loadsp 24 2e01: 02 pushsp 2e02: 84 im 4 2e03: 05 add 2e04: 97 im 23 2e05: 05 add 2e06: 33 loadb 2e07: 53 storesp 12 2e08: 53 storesp 12 00002e09 <.LM15>: u08 r1; u08 retry=0xff; //255x 2e09: 81 im 1 2e0a: ff im -1 2e0b: 54 storesp 16 00002e0c <.LM16>: // spiTransferFF(); 2e0c: 85 im 5 2e0d: d0 im -48 2e0e: 3f callpcrel 00002e0f <.LM17>: spiTransferFF(); //pridano navic! 27.6.2008 doporucil Bob!k 2e0f: 85 im 5 2e10: cd im -51 2e11: 3f callpcrel 00002e12 <.LM18>: spiTransferFF(); //pridano navic! 27.6.2008 doporucil Bob!k 2e12: 85 im 5 2e13: ca im -54 2e14: 3f callpcrel 00002e15 <.LM19>: spiTransferFF(); //pridano navic! 27.6.2008 doporucil Bob!k 2e15: 85 im 5 2e16: c7 im -57 2e17: 3f callpcrel 00002e18 <.LM20>: // send command spiTransferByte(cmd | 0x40); 2e18: 71 loadsp 4 2e19: 80 im 0 2e1a: c0 im -64 2e1b: 07 or 2e1c: 51 storesp 4 2e1d: 84 im 4 2e1e: e4 im -28 2e1f: 3f callpcrel 00002e20 <.LM21>: // spiTransferByte(arg>>24); 2e20: 72 loadsp 8 2e21: 98 im 24 2e22: 2a lshiftright 2e23: 51 storesp 4 2e24: 84 im 4 2e25: dd im -35 2e26: 3f callpcrel 00002e27 <.LM22>: spiTransferByte(arg>>16); 2e27: 72 loadsp 8 2e28: 90 im 16 2e29: 2a lshiftright 2e2a: 70 loadsp 0 2e2b: 81 im 1 2e2c: ff im -1 2e2d: 06 and 2e2e: 52 storesp 8 2e2f: 52 storesp 8 2e30: 84 im 4 2e31: d1 im -47 2e32: 3f callpcrel 00002e33 <.LM23>: spiTransferByte(arg>>8); 2e33: 72 loadsp 8 2e34: 88 im 8 2e35: 2a lshiftright 2e36: 70 loadsp 0 2e37: 81 im 1 2e38: ff im -1 2e39: 06 and 2e3a: 52 storesp 8 2e3b: 52 storesp 8 2e3c: 84 im 4 2e3d: c5 im -59 2e3e: 3f callpcrel 00002e3f <.LM24>: spiTransferByte(arg); 2e3f: 72 loadsp 8 2e40: 81 im 1 2e41: ff im -1 2e42: 06 and 2e43: 51 storesp 4 2e44: 84 im 4 2e45: bd im 61 2e46: 3f callpcrel 00002e47 <.LM25>: //Alternativni zpusob pres ((u08*)&arg)[] je delsi. spiTransferByte(0x95); // crc valid only for MMC_GO_IDLE_STATE 2e47: 81 im 1 2e48: 95 im 21 2e49: 51 storesp 4 2e4a: 84 im 4 2e4b: b7 im 55 2e4c: 3f callpcrel 00002e4d <.L17>: // end command // wait for response // if more than 255 retries, card has timed-out // return the received 0xFF do { r1 = spiTransferFF(); 2e4d: 85 im 5 2e4e: 8f im 15 2e4f: 3f callpcrel 2e50: 83 im 3 2e51: e0 im -32 2e52: 80 im 0 2e53: 08 load 2e54: 81 im 1 2e55: ff im -1 2e56: 06 and 00002e57 <.LM27>: retry--; 2e57: ff im -1 2e58: 15 addsp 20 2e59: 70 loadsp 0 2e5a: 81 im 1 2e5b: ff im -1 2e5c: 06 and 00002e5d <.LM28>: } 2e5d: 70 loadsp 0 2e5e: 30 neg 2e5f: 70 loadsp 0 2e60: 9f im 31 2e61: 2a lshiftright 2e62: 51 storesp 4 2e63: 52 storesp 8 2e64: 56 storesp 24 2e65: 53 storesp 12 2e66: 53 storesp 12 2e67: 72 loadsp 8 2e68: 81 im 1 2e69: ff im -1 2e6a: 2e eq 2e6b: 09 not 2e6c: 81 im 1 2e6d: 06 and 2e6e: 84 im 4 2e6f: 38 neqbranch 2e70: 71 loadsp 4 2e71: db im -37 2e72: 38 neqbranch 00002e73 <.L22>: while(retry && (r1 == 0xFF) ); // return response return r1; } 2e73: 72 loadsp 8 2e74: 83 im 3 2e75: e0 im -32 2e76: 80 im 0 2e77: 0c store 2e78: 85 im 5 2e79: 3d pushspadd 2e7a: 0d popsp 2e7b: 04 poppc 00002e7c : 2e7c: fd im -3 2e7d: 3d pushspadd 2e7e: 0d popsp 00002e7f <.LM31>: 2e7f: 81 im 1 2e80: 51 storesp 4 2e81: 83 im 3 2e82: ea im -22 2e83: 3f callpcrel 00002e84 <.LM32>: 2e84: 75 loadsp 20 2e85: 89 im 9 2e86: 2b ashiftleft 2e87: 52 storesp 8 2e88: 91 im 17 2e89: 51 storesp 4 2e8a: fe im -2 2e8b: f1 im -15 2e8c: 3f callpcrel 2e8d: 83 im 3 2e8e: e0 im -32 2e8f: 80 im 0 2e90: 08 load 2e91: 81 im 1 2e92: ff im -1 2e93: 06 and 00002e94 <.LM33>: 2e94: 70 loadsp 0 2e95: 55 storesp 20 2e96: 53 storesp 12 2e97: 72 loadsp 8 2e98: 80 im 0 2e99: 2e eq 2e9a: 8a im 10 2e9b: 38 neqbranch 00002e9c <.LM34>: 2e9c: 73 loadsp 12 2e9d: 83 im 3 2e9e: e0 im -32 2e9f: 80 im 0 2ea0: 0c store 2ea1: 85 im 5 2ea2: 3d pushspadd 2ea3: 0d popsp 2ea4: 04 poppc 00002ea5 <.L27>: 2ea5: 84 im 4 2ea6: b7 im 55 2ea7: 3f callpcrel 2ea8: 83 im 3 2ea9: e0 im -32 2eaa: 80 im 0 2eab: 08 load 2eac: 81 im 1 2ead: ff im -1 2eae: 06 and 2eaf: 53 storesp 12 2eb0: 72 loadsp 8 2eb1: 81 im 1 2eb2: fe im -2 2eb3: 2e eq 2eb4: 09 not 2eb5: 81 im 1 2eb6: 06 and 2eb7: ed im -19 2eb8: 38 neqbranch 00002eb9 <.LM36>: 2eb9: fd im -3 2eba: c7 im -57 2ebb: 3f callpcrel 00002ebc <.LM37>: 2ebc: 84 im 4 2ebd: a0 im 32 2ebe: 3f callpcrel 00002ebf <.LM38>: 2ebf: 84 im 4 2ec0: 9d im 29 2ec1: 3f callpcrel 00002ec2 <.LM39>: 2ec2: 80 im 0 2ec3: 51 storesp 4 2ec4: 83 im 3 2ec5: a7 im 39 2ec6: 3f callpcrel 00002ec7 <.LM40>: 2ec7: 80 im 0 00002ec8 <.LM41>: 2ec8: 0b nop 2ec9: 83 im 3 2eca: e0 im -32 2ecb: 80 im 0 2ecc: 0c store 2ecd: 85 im 5 2ece: 3d pushspadd 2ecf: 0d popsp 2ed0: 04 poppc 00002ed1 : 2ed1: fe im -2 2ed2: 3d pushspadd 2ed3: 0d popsp 2ed4: 02 pushsp 2ed5: 93 im 19 2ed6: 05 add 2ed7: 33 loadb 2ed8: 53 storesp 12 00002ed9 <.LM43>: 2ed9: 81 im 1 2eda: 51 storesp 4 2edb: 83 im 3 2edc: 90 im 16 2edd: 3f callpcrel 00002ede <.LM44>: 2ede: 75 loadsp 20 2edf: 52 storesp 8 2ee0: 72 loadsp 8 2ee1: 51 storesp 4 2ee2: fe im -2 2ee3: 99 im 25 2ee4: 3f callpcrel 2ee5: 83 im 3 2ee6: e0 im -32 2ee7: 80 im 0 2ee8: 08 load 2ee9: 81 im 1 2eea: ff im -1 2eeb: 06 and 2eec: 53 storesp 12 00002eed <.LM45>: 2eed: 80 im 0 2eee: 51 storesp 4 2eef: 82 im 2 2ef0: fc im -4 2ef1: 3f callpcrel 00002ef2 <.LM46>: 2ef2: 72 loadsp 8 2ef3: 83 im 3 2ef4: e0 im -32 2ef5: 80 im 0 2ef6: 0c store 2ef7: 84 im 4 2ef8: 3d pushspadd 2ef9: 0d popsp 2efa: 04 poppc 00002efb : 2efb: fd im -3 2efc: 3d pushspadd 2efd: 0d popsp 00002efe <.LM48>: 2efe: 81 im 1 2eff: ff im -1 2f00: 53 storesp 12 00002f01 <.L32>: 2f01: 83 im 3 2f02: db im -37 2f03: 3f callpcrel 2f04: ff im -1 2f05: 13 addsp 12 2f06: 70 loadsp 0 2f07: 81 im 1 2f08: ff im -1 2f09: 06 and 2f0a: 51 storesp 4 2f0b: 53 storesp 12 2f0c: 72 loadsp 8 2f0d: f3 im -13 2f0e: 38 neqbranch 00002f0f <.LM50>: 2f0f: 72 loadsp 8 2f10: 52 storesp 8 2f11: 72 loadsp 8 2f12: 51 storesp 4 2f13: ff im -1 2f14: bc im 60 2f15: 3f callpcrel 2f16: 83 im 3 2f17: e0 im -32 2f18: 80 im 0 2f19: 08 load 2f1a: 81 im 1 2f1b: ff im -1 2f1c: 06 and 2f1d: 53 storesp 12 00002f1e <.LM51>: 2f1e: 81 im 1 2f1f: ff im -1 2f20: 54 storesp 16 2f21: 72 loadsp 8 2f22: 81 im 1 2f23: 2e eq 2f24: 09 not 2f25: 81 im 1 2f26: 06 and 2f27: 80 im 0 2f28: e2 im -30 2f29: 38 neqbranch 00002f2a <.LM52>: 2f2a: 83 im 3 2f2b: ff im -1 2f2c: ff im -1 2f2d: 54 storesp 16 00002f2e <.L36>: 2f2e: 80 im 0 2f2f: 52 storesp 8 2f30: b7 im 55 2f31: 51 storesp 4 2f32: ff im -1 2f33: 9d im 29 2f34: 3f callpcrel 2f35: 83 im 3 2f36: e0 im -32 2f37: 80 im 0 2f38: 08 load 2f39: 81 im 1 2f3a: ff im -1 2f3b: 06 and 2f3c: 53 storesp 12 00002f3d <.LM54>: 2f3d: 72 loadsp 8 2f3e: 81 im 1 2f3f: 2e eq 2f40: 09 not 2f41: 81 im 1 2f42: 06 and 2f43: a1 im 33 2f44: 38 neqbranch 00002f45 <.LM55>: 2f45: 80 im 0 2f46: 52 storesp 8 2f47: a9 im 41 2f48: 51 storesp 4 2f49: ff im -1 2f4a: 86 im 6 2f4b: 3f callpcrel 2f4c: 83 im 3 2f4d: e0 im -32 2f4e: 80 im 0 2f4f: 08 load 2f50: 81 im 1 2f51: ff im -1 2f52: 06 and 2f53: 53 storesp 12 00002f54 <.LM56>: 2f54: 72 loadsp 8 2f55: 80 im 0 2f56: 2e eq 2f57: 8d im 13 2f58: 38 neqbranch 00002f59 <.LM57>: 2f59: ff im -1 2f5a: 14 addsp 16 2f5b: 70 loadsp 0 2f5c: 83 im 3 2f5d: ff im -1 2f5e: ff im -1 2f5f: 06 and 2f60: 55 storesp 20 2f61: 53 storesp 12 00002f62 <.LM58>: 2f62: 73 loadsp 12 2f63: ca im -54 2f64: 38 neqbranch 00002f65 <.L37>: 2f65: 80 im 0 2f66: 52 storesp 8 2f67: 81 im 1 2f68: 51 storesp 4 2f69: fe im -2 2f6a: e6 im -26 2f6b: 3f callpcrel 2f6c: 83 im 3 2f6d: e0 im -32 2f6e: 80 im 0 2f6f: 08 load 2f70: 81 im 1 2f71: ff im -1 2f72: 06 and 2f73: 53 storesp 12 00002f74 <.LM60>: 2f74: 81 im 1 2f75: ff im -1 2f76: 54 storesp 16 2f77: 72 loadsp 8 2f78: 92 im 18 2f79: 38 neqbranch 00002f7a <.LM61>: 2f7a: 72 loadsp 8 2f7b: 52 storesp 8 2f7c: bb im 59 2f7d: 51 storesp 4 2f7e: fe im -2 2f7f: d1 im -47 2f80: 3f callpcrel 00002f81 <.LM62>: 2f81: 84 im 4 2f82: 80 im 0 2f83: 52 storesp 8 2f84: 90 im 16 2f85: 51 storesp 4 2f86: fe im -2 2f87: c9 im -55 2f88: 3f callpcrel 00002f89 <.LM63>: 2f89: 72 loadsp 8 2f8a: 54 storesp 16 00002f8b <.L31>: 2f8b: 73 loadsp 12 2f8c: 83 im 3 2f8d: e0 im -32 2f8e: 80 im 0 2f8f: 0c store 2f90: 85 im 5 2f91: 3d pushspadd 2f92: 0d popsp 2f93: 04 poppc 00002f94 : 2f94: fb im -5 2f95: 3d pushspadd 2f96: 0d popsp 00002f97 <.LM66>: 2f97: 83 im 3 2f98: e3 im -29 2f99: e8 im -24 2f9a: 56 storesp 24 00002f9b <.LM67>: 2f9b: 81 im 1 2f9c: 51 storesp 4 2f9d: 81 im 1 2f9e: ce im -50 2f9f: 3f callpcrel 00002fa0 <.LM68>: 2fa0: 77 loadsp 28 2fa1: 89 im 9 2fa2: 2b ashiftleft 2fa3: 52 storesp 8 2fa4: 98 im 24 2fa5: 51 storesp 4 2fa6: fc im -4 2fa7: d5 im -43 2fa8: 3f callpcrel 2fa9: 83 im 3 2faa: e0 im -32 2fab: 80 im 0 2fac: 08 load 2fad: 81 im 1 2fae: ff im -1 2faf: 06 and 00002fb0 <.LM69>: 2fb0: 70 loadsp 0 2fb1: 56 storesp 24 2fb2: 54 storesp 16 00002fb3 <.LM70>: 2fb3: 73 loadsp 12 2fb4: 80 im 0 2fb5: 2e eq 2fb6: 8a im 10 2fb7: 38 neqbranch 00002fb8 <.L43>: 2fb8: 74 loadsp 16 2fb9: 83 im 3 2fba: e0 im -32 2fbb: 80 im 0 2fbc: 0c store 2fbd: 87 im 7 2fbe: 3d pushspadd 2fbf: 0d popsp 2fc0: 04 poppc 00002fc1 <.L52>: 2fc1: 82 im 2 2fc2: 9b im 27 2fc3: 3f callpcrel 00002fc4 <.LM73>: 2fc4: 81 im 1 2fc5: fe im -2 2fc6: 51 storesp 4 2fc7: 81 im 1 2fc8: ba im 58 2fc9: 3f callpcrel 00002fca <.LM74>: 2fca: 84 im 4 2fcb: 80 im 0 2fcc: 53 storesp 12 00002fcd <.L45>: 2fcd: 75 loadsp 20 2fce: 70 loadsp 0 2fcf: 81 im 1 2fd0: 05 add 2fd1: 57 storesp 28 2fd2: 33 loadb 2fd3: 51 storesp 4 2fd4: 81 im 1 2fd5: ad im 45 2fd6: 3f callpcrel 2fd7: ff im -1 2fd8: 13 addsp 12 2fd9: 70 loadsp 0 2fda: 83 im 3 2fdb: ff im -1 2fdc: ff im -1 2fdd: 06 and 2fde: 51 storesp 4 2fdf: 53 storesp 12 2fe0: 72 loadsp 8 2fe1: eb im -21 2fe2: 38 neqbranch 00002fe3 <.LM76>: 2fe3: 81 im 1 2fe4: f9 im -7 2fe5: 3f callpcrel 00002fe6 <.LM77>: 2fe6: 81 im 1 2fe7: f6 im -10 2fe8: 3f callpcrel 00002fe9 <.LM78>: 2fe9: 81 im 1 2fea: f3 im -13 2feb: 3f callpcrel 2fec: 83 im 3 2fed: e0 im -32 2fee: 80 im 0 2fef: 08 load 2ff0: 81 im 1 2ff1: ff im -1 2ff2: 06 and 00002ff3 <.LM79>: 2ff3: 70 loadsp 0 2ff4: 9f im 31 2ff5: 06 and 00002ff6 <.LM80>: 2ff6: 54 storesp 16 2ff7: 55 storesp 20 00002ff8 <.LM81>: 2ff8: 72 loadsp 8 2ff9: 85 im 5 2ffa: 2e eq 2ffb: 09 not 2ffc: 81 im 1 2ffd: 06 and 2ffe: ff im -1 2fff: b8 im 56 3000: 38 neqbranch 00003001 <.L49>: 3001: 81 im 1 3002: db im -37 3003: 3f callpcrel 3004: 83 im 3 3005: e0 im -32 3006: 80 im 0 3007: 08 load 3008: 81 im 1 3009: ff im -1 300a: 06 and 300b: 53 storesp 12 300c: 72 loadsp 8 300d: 80 im 0 300e: 2e eq 300f: f1 im -15 3010: 38 neqbranch 00003011 <.LM83>: 3011: 80 im 0 3012: 51 storesp 4 3013: 80 im 0 3014: d8 im -40 3015: 3f callpcrel 00003016 <.LM84>: 3016: 80 im 0 00003017 <.LM85>: 3017: 0b nop 3018: 83 im 3 3019: e0 im -32 301a: 80 im 0 301b: 0c store 301c: 87 im 7 301d: 3d pushspadd 301e: 0d popsp 301f: 04 poppc 00003020 : int spi_slow; // 1 is slow int spi_chip_select_n; // 0 is selected int display; void updateSpiState() { 3020: ff im -1 3021: 3d pushspadd 3022: 0d popsp 00003023 <.LM2>: *zpu_spi_state = (spi_slow<<1)|(spi_chip_select_n); 3023: 83 im 3 3024: e7 im -25 3025: f0 im -16 3026: 08 load 3027: 10 addsp 0 3028: 83 im 3 3029: e7 im -25 302a: e8 im -24 302b: 08 load 302c: 07 or 302d: 80 im 0 302e: fc im -4 302f: a8 im 40 3030: 08 load 3031: 52 storesp 8 3032: 71 loadsp 4 3033: 0c store 3034: 83 im 3 3035: 3d pushspadd 3036: 0d popsp 3037: 04 poppc 00003038 : } // access routines void setSpiFast() { spi_slow = 0; 3038: 80 im 0 3039: 0b nop 303a: 83 im 3 303b: e7 im -25 303c: f0 im -16 303d: 0c store 0000303e <.LM5>: updateSpiState(); 303e: e1 im -31 303f: 3f callpcrel 3040: 04 poppc 00003041 : } void setSpiSlow() { spi_slow = 1; 3041: 81 im 1 3042: 0b nop 3043: 83 im 3 3044: e7 im -25 3045: f0 im -16 3046: 0c store 00003047 <.LM8>: updateSpiState(); 3047: d8 im -40 3048: 3f callpcrel 3049: 04 poppc 0000304a : } void set_spi_clock_freq() // avr handles spi clock? { setSpiFast(); 304a: ed im -19 304b: 3f callpcrel 304c: 04 poppc 0000304d : } void spiInit() { spiDisplay(0); spi_slow = 1; spi_chip_select_n = 1; updateSpiState(); } void mmcChipSelect(int select) { spi_chip_select_n = !select; updateSpiState(); } u08 spiTransferByte(u08 data) { u08 res = 0; //debug("spiTransferByte"); /*if (display!=0) { plotnext(hextoatarichar((data&0xf0) >> 4)); plotnext(hextoatarichar((data&0xf))); }*/ // send the given data *zpu_spi_data = data; // wait for transfer to complete while ((1&*zpu_spi_state) == 1); // return the received data res = *zpu_spi_data; if (display!=0) { plotnext(hextoatarichar((res&0xf0) >> 4)); plotnext(hextoatarichar((res&0xf))); //plotnext(toatarichar(' ')); } return res; } u08 spiTransferFF() { return spiTransferByte(0xFF); } void spiDisplay(int i) { display = i; 304d: 71 loadsp 4 304e: 83 im 3 304f: e7 im -25 3050: ec im -20 3051: 0c store 3052: 04 poppc 00003053 : 3053: 80 im 0 3054: 3d pushspadd 3055: 0d popsp 00003056 <.LM14>: 3056: 80 im 0 3057: 51 storesp 4 3058: f4 im -12 3059: 3f callpcrel 0000305a <.LM15>: 305a: 81 im 1 305b: 0b nop 305c: 83 im 3 305d: e7 im -25 305e: f0 im -16 305f: 0c store 00003060 <.LM16>: 3060: 81 im 1 3061: 0b nop 3062: 83 im 3 3063: e7 im -25 3064: e8 im -24 3065: 0c store 00003066 <.LM17>: 3066: ff im -1 3067: b8 im 56 3068: 3f callpcrel 3069: 82 im 2 306a: 3d pushspadd 306b: 0d popsp 306c: 04 poppc 0000306d : 306d: 80 im 0 306e: 3d pushspadd 306f: 0d popsp 00003070 <.LM19>: 3070: 72 loadsp 8 3071: 30 neg 3072: 70 loadsp 0 3073: 74 loadsp 16 3074: 07 or 3075: 80 im 0 3076: 25 lessthanorequal 3077: 83 im 3 3078: e7 im -25 3079: e8 im -24 307a: 0c store 307b: 51 storesp 4 0000307c <.LM20>: 307c: ff im -1 307d: a2 im 34 307e: 3f callpcrel 307f: 82 im 2 3080: 3d pushspadd 3081: 0d popsp 3082: 04 poppc 00003083 : 3083: fd im -3 3084: 3d pushspadd 3085: 0d popsp 3086: 02 pushsp 3087: 97 im 23 3088: 05 add 3089: 33 loadb 0000308a <.LM22>: 308a: 80 im 0 308b: fc im -4 308c: ac im 44 308d: 08 load 308e: 55 storesp 20 308f: 74 loadsp 16 3090: 0c store 3091: 80 im 0 3092: fc im -4 3093: a8 im 40 3094: 08 load 3095: 53 storesp 12 00003096 <.L10>: 3096: 72 loadsp 8 3097: 08 load 3098: 70 loadsp 0 3099: 81 im 1 309a: 06 and 309b: 51 storesp 4 309c: 52 storesp 8 309d: 71 loadsp 4 309e: f7 im -9 309f: 38 neqbranch 000030a0 <.LM24>: 30a0: 73 loadsp 12 30a1: 08 load 30a2: 70 loadsp 0 30a3: 81 im 1 30a4: ff im -1 30a5: 06 and 30a6: 51 storesp 4 30a7: 52 storesp 8 000030a8 <.LM25>: 30a8: 83 im 3 30a9: e7 im -25 30aa: ec im -20 30ab: 08 load 30ac: 8a im 10 30ad: 38 neqbranch 000030ae <.LM26>: 30ae: 71 loadsp 4 30af: 83 im 3 30b0: e0 im -32 30b1: 80 im 0 30b2: 0c store 30b3: 85 im 5 30b4: 3d pushspadd 30b5: 0d popsp 30b6: 04 poppc 000030b7 <.L14>: 30b7: 71 loadsp 4 30b8: 84 im 4 30b9: 2a lshiftright 30ba: 51 storesp 4 30bb: 85 im 5 30bc: fa im -6 30bd: 3f callpcrel 30be: 83 im 3 30bf: e0 im -32 30c0: 80 im 0 30c1: 08 load 30c2: 51 storesp 4 30c3: 87 im 7 30c4: 85 im 5 30c5: 3f callpcrel 000030c6 <.LM28>: 30c6: 71 loadsp 4 30c7: 8f im 15 30c8: 06 and 30c9: 51 storesp 4 30ca: 85 im 5 30cb: eb im -21 30cc: 3f callpcrel 30cd: 83 im 3 30ce: e0 im -32 30cf: 80 im 0 30d0: 08 load 30d1: 51 storesp 4 30d2: 86 im 6 30d3: f6 im -10 30d4: 3f callpcrel 000030d5 <.LBE2>: 30d5: 71 loadsp 4 30d6: 83 im 3 30d7: e0 im -32 30d8: 80 im 0 30d9: 0c store 30da: 85 im 5 30db: 3d pushspadd 30dc: 0d popsp 30dd: 04 poppc 000030de : 30de: 80 im 0 30df: 3d pushspadd 30e0: 0d popsp 000030e1 <.LM31>: 30e1: 81 im 1 30e2: ff im -1 30e3: 51 storesp 4 30e4: ff im -1 30e5: 9d im 29 30e6: 3f callpcrel 30e7: 83 im 3 30e8: e0 im -32 30e9: 80 im 0 30ea: 08 load 30eb: 81 im 1 30ec: ff im -1 30ed: 06 and 30ee: 83 im 3 30ef: e0 im -32 30f0: 80 im 0 30f1: 0c store 000030f2 <.LM32>: 30f2: 82 im 2 30f3: 3d pushspadd 30f4: 0d popsp 30f5: 04 poppc 000030f6 : void actions(); int USART_Data_Needed() { 30f6: fe im -2 30f7: 3d pushspadd 30f8: 0d popsp 000030f9 <.LM2>: int needed = 0==(0x10&(*zpu_pokey_irqen)); 30f9: 80 im 0 30fa: fb im -5 30fb: ec im -20 30fc: 08 load 30fd: 70 loadsp 0 30fe: 33 loadb 30ff: 70 loadsp 0 3100: 81 im 1 3101: ff im -1 3102: 06 and 3103: 70 loadsp 0 3104: 84 im 4 3105: 2a lshiftright 3106: 81 im 1 3107: 32 xor 3108: 81 im 1 3109: 06 and 310a: 55 storesp 20 310b: 51 storesp 4 310c: 52 storesp 8 310d: 53 storesp 12 0000310e <.LM3>: if (needed) 310e: 71 loadsp 4 310f: 80 im 0 3110: 2e eq 3111: 8c im 12 3112: 38 neqbranch 00003113 <.LM4>: { *zpu_pokey_irqen = 0x28; 3113: a8 im 40 3114: 73 loadsp 12 3115: 34 storeb 00003116 <.LM5>: *zpu_pokey_irqen = 0x38; 3116: 80 im 0 3117: fb im -5 3118: ec im -20 3119: 08 load 311a: 51 storesp 4 311b: b8 im 56 311c: 71 loadsp 4 311d: 34 storeb 0000311e <.L2>: } return needed; } 311e: 71 loadsp 4 311f: 83 im 3 3120: e0 im -32 3121: 80 im 0 3122: 0c store 3123: 84 im 4 3124: 3d pushspadd 3125: 0d popsp 3126: 04 poppc 00003127 : int USART_Data_Ready() { 3127: fe im -2 3128: 3d pushspadd 3129: 0d popsp 0000312a <.LM8>: int ready = 0==(0x20&(*zpu_pokey_irqen)); 312a: 80 im 0 312b: fb im -5 312c: ec im -20 312d: 08 load 312e: 70 loadsp 0 312f: 33 loadb 3130: 70 loadsp 0 3131: 81 im 1 3132: ff im -1 3133: 06 and 3134: 70 loadsp 0 3135: 85 im 5 3136: 2a lshiftright 3137: 81 im 1 3138: 32 xor 3139: 81 im 1 313a: 06 and 313b: 55 storesp 20 313c: 51 storesp 4 313d: 52 storesp 8 313e: 53 storesp 12 0000313f <.LM9>: if (ready) 313f: 71 loadsp 4 3140: 80 im 0 3141: 2e eq 3142: 8c im 12 3143: 38 neqbranch 00003144 <.LM10>: { *zpu_pokey_irqen = 0x18; 3144: 98 im 24 3145: 73 loadsp 12 3146: 34 storeb 00003147 <.LM11>: *zpu_pokey_irqen = 0x38; 3147: 80 im 0 3148: fb im -5 3149: ec im -20 314a: 08 load 314b: 51 storesp 4 314c: b8 im 56 314d: 71 loadsp 4 314e: 34 storeb 0000314f <.L5>: } return ready; } 314f: 71 loadsp 4 3150: 83 im 3 3151: e0 im -32 3152: 80 im 0 3153: 0c store 3154: 84 im 4 3155: 3d pushspadd 3156: 0d popsp 3157: 04 poppc 00003158 : void USART_Init( u08 value ) { // value is pokey div + 6 *zpu_pokey_skctl = 0; wait_us(10); USART_Receive_Mode(); // turn of reset and listen to commands *zpu_pokey_audctl = 0x78; // linked channels, fast clocked *zpu_pokey_audf1 = 0x00; *zpu_pokey_audf0 = value-6; *zpu_pokey_audf3 = 0x00; *zpu_pokey_audf2 = value-6; *zpu_pokey_irqen = 0x00; *zpu_pokey_irqen = 0x38; } void USART_Transmit_Byte( unsigned char data ) { *zpu_pokey_serout = data; // wait until next byte is needed while (!USART_Data_Needed()); } unsigned char USART_Receive_Byte( void ) { // wait for data while (!USART_Data_Ready()) { actions(); } u08 res = *zpu_pokey_serout; //serin at same address return res; } void USART_Transmit_Mode() { *zpu_pokey_skctl = 0x23; // 010 for transmission *zpu_pokey_skrest = 0xff; *zpu_pokey_irqen = 0x28; // clear data needed *zpu_pokey_irqen = 0x38; } void USART_Receive_Mode() { 3158: 80 im 0 3159: 3d pushspadd 315a: 0d popsp 0000315b <.LM14>: *zpu_pokey_skctl = 0x13; // 001 for receiving 315b: 80 im 0 315c: fb im -5 315d: e8 im -24 315e: 08 load 315f: 51 storesp 4 3160: 93 im 19 3161: 71 loadsp 4 3162: 34 storeb 00003163 <.LM15>: *zpu_pokey_skrest = 0xff; 3163: 80 im 0 3164: fb im -5 3165: f4 im -12 3166: 08 load 3167: 51 storesp 4 3168: ff im -1 3169: 71 loadsp 4 316a: 34 storeb 316b: 82 im 2 316c: 3d pushspadd 316d: 0d popsp 316e: 04 poppc 0000316f : 316f: fe im -2 3170: 3d pushspadd 3171: 0d popsp 3172: 02 pushsp 3173: 93 im 19 3174: 05 add 3175: 33 loadb 00003176 <.LM17>: 3176: 80 im 0 3177: fb im -5 3178: e8 im -24 3179: 08 load 317a: 53 storesp 12 317b: 53 storesp 12 317c: 80 im 0 317d: 72 loadsp 8 317e: 34 storeb 0000317f <.LM18>: 317f: 8a im 10 3180: 51 storesp 4 3181: ff im -1 3182: a6 im 38 3183: af im 47 3184: 3f callpcrel 00003185 <.LM19>: 3185: d2 im -46 3186: 3f callpcrel 00003187 <.LM20>: 3187: 80 im 0 3188: fb im -5 3189: f8 im -8 318a: 08 load 318b: 52 storesp 8 318c: 80 im 0 318d: f8 im -8 318e: 72 loadsp 8 318f: 34 storeb 00003190 <.LM21>: 3190: 80 im 0 3191: fc im -4 3192: 90 im 16 3193: 08 load 3194: 52 storesp 8 3195: 80 im 0 3196: 72 loadsp 8 3197: 34 storeb 00003198 <.LM22>: 3198: fa im -6 3199: 13 addsp 12 319a: 80 im 0 319b: fc im -4 319c: 98 im 24 319d: 08 load 319e: 53 storesp 12 319f: 53 storesp 12 31a0: 72 loadsp 8 31a1: 72 loadsp 8 31a2: 34 storeb 000031a3 <.LM23>: 31a3: 80 im 0 31a4: fc im -4 31a5: 80 im 0 31a6: 08 load 31a7: 52 storesp 8 31a8: 80 im 0 31a9: 72 loadsp 8 31aa: 34 storeb 000031ab <.LM24>: 31ab: 80 im 0 31ac: fc im -4 31ad: 88 im 8 31ae: 08 load 31af: 52 storesp 8 31b0: 72 loadsp 8 31b1: 72 loadsp 8 31b2: 34 storeb 000031b3 <.LM25>: 31b3: 80 im 0 31b4: fb im -5 31b5: ec im -20 31b6: 08 load 31b7: 52 storesp 8 31b8: 80 im 0 31b9: 72 loadsp 8 31ba: 34 storeb 000031bb <.LM26>: 31bb: 80 im 0 31bc: fb im -5 31bd: ec im -20 31be: 08 load 31bf: 52 storesp 8 31c0: b8 im 56 31c1: 72 loadsp 8 31c2: 34 storeb 31c3: 84 im 4 31c4: 3d pushspadd 31c5: 0d popsp 31c6: 04 poppc 000031c7 : 31c7: ff im -1 31c8: 3d pushspadd 31c9: 0d popsp 31ca: 02 pushsp 31cb: 8f im 15 31cc: 05 add 31cd: 33 loadb 000031ce <.LM28>: 31ce: 80 im 0 31cf: fb im -5 31d0: f0 im -16 31d1: 08 load 31d2: 52 storesp 8 31d3: 52 storesp 8 31d4: 71 loadsp 4 31d5: 71 loadsp 4 31d6: 34 storeb 000031d7 <.L10>: 31d7: fe im -2 31d8: 9d im 29 31d9: 3f callpcrel 31da: 83 im 3 31db: e0 im -32 31dc: 80 im 0 31dd: 08 load 31de: 80 im 0 31df: 2e eq 31e0: f6 im -10 31e1: 38 neqbranch 31e2: 83 im 3 31e3: 3d pushspadd 31e4: 0d popsp 31e5: 04 poppc 000031e6 : 31e6: 80 im 0 31e7: 3d pushspadd 31e8: 0d popsp 000031e9 <.LM31>: 31e9: fe im -2 31ea: bc im 60 31eb: 3f callpcrel 31ec: 83 im 3 31ed: e0 im -32 31ee: 80 im 0 31ef: 08 load 31f0: 90 im 16 31f1: 38 neqbranch 000031f2 <.L16>: 31f2: ff im -1 31f3: b6 im 54 31f4: e4 im -28 31f5: 3f callpcrel 31f6: fe im -2 31f7: af im 47 31f8: 3f callpcrel 31f9: 83 im 3 31fa: e0 im -32 31fb: 80 im 0 31fc: 08 load 31fd: 80 im 0 31fe: 2e eq 31ff: f2 im -14 3200: 38 neqbranch 00003201 <.L18>: 3201: 80 im 0 3202: fb im -5 3203: f0 im -16 3204: 08 load 3205: 70 loadsp 0 3206: 33 loadb 3207: 70 loadsp 0 3208: 81 im 1 3209: ff im -1 320a: 06 and 320b: 83 im 3 320c: e0 im -32 320d: 80 im 0 320e: 0c store 320f: 51 storesp 4 3210: 51 storesp 4 00003211 <.LM33>: 3211: 82 im 2 3212: 3d pushspadd 3213: 0d popsp 3214: 04 poppc 00003215 : 3215: 80 im 0 3216: 3d pushspadd 3217: 0d popsp 00003218 <.LM35>: 3218: 80 im 0 3219: fb im -5 321a: e8 im -24 321b: 08 load 321c: 51 storesp 4 321d: a3 im 35 321e: 71 loadsp 4 321f: 34 storeb 00003220 <.LM36>: 3220: 80 im 0 3221: fb im -5 3222: f4 im -12 3223: 08 load 3224: 51 storesp 4 3225: ff im -1 3226: 71 loadsp 4 3227: 34 storeb 00003228 <.LM37>: 3228: 80 im 0 3229: fb im -5 322a: ec im -20 322b: 08 load 322c: 51 storesp 4 322d: a8 im 40 322e: 71 loadsp 4 322f: 34 storeb 00003230 <.LM38>: 3230: 80 im 0 3231: fb im -5 3232: ec im -20 3233: 08 load 3234: 51 storesp 4 3235: b8 im 56 3236: 71 loadsp 4 3237: 34 storeb 3238: 82 im 2 3239: 3d pushspadd 323a: 0d popsp 323b: 04 poppc 0000323c : } int USART_Framing_Error() { 323c: 80 im 0 323d: 3d pushspadd 323e: 0d popsp 0000323f <.LM40>: if (0xc0&(*zpu_pokey_skctl)) 323f: 80 im 0 3240: fb im -5 3241: e8 im -24 3242: 08 load 3243: 70 loadsp 0 3244: 33 loadb 3245: 70 loadsp 0 3246: 81 im 1 3247: c0 im -64 3248: 06 and 00003249 <.LM41>: { return 0; 3249: 70 loadsp 0 324a: 30 neg 0000324b <.LM42>: } else { return 1; } } 324b: 70 loadsp 0 324c: 80 im 0 324d: 25 lessthanorequal 324e: 83 im 3 324f: e0 im -32 3250: 80 im 0 3251: 0c store 3252: 51 storesp 4 3253: 51 storesp 4 3254: 51 storesp 4 3255: 51 storesp 4 3256: 82 im 2 3257: 3d pushspadd 3258: 0d popsp 3259: 04 poppc 0000325a : void USART_Wait_Transmit_Complete() { 325a: ff im -1 325b: 3d pushspadd 325c: 0d popsp 325d: 80 im 0 325e: fb im -5 325f: ec im -20 3260: 08 load 3261: 52 storesp 8 00003262 <.L24>: while (1) { int ready = 0==(0x08&(*zpu_pokey_irqen)); 3262: 71 loadsp 4 3263: 33 loadb 3264: 70 loadsp 0 3265: 81 im 1 3266: ff im -1 3267: 06 and 3268: 70 loadsp 0 3269: 83 im 3 326a: 2a lshiftright 326b: 81 im 1 326c: 32 xor 326d: 70 loadsp 0 326e: 81 im 1 326f: 06 and 3270: 51 storesp 4 3271: 51 storesp 4 3272: 51 storesp 4 3273: 51 storesp 4 00003274 <.LM45>: if (ready) 3274: 70 loadsp 0 3275: 80 im 0 3276: 2e eq 3277: ea im -22 3278: 38 neqbranch 00003279 <.LM46>: { *zpu_pokey_irqen = 0x30; 3279: b0 im 48 327a: 72 loadsp 8 327b: 34 storeb 0000327c <.LM47>: *zpu_pokey_irqen = 0x38; 327c: 80 im 0 327d: fb im -5 327e: ec im -20 327f: 08 load 3280: 51 storesp 4 3281: b8 im 56 3282: 71 loadsp 4 3283: 34 storeb 00003284 <.LBE2>: 3284: 83 im 3 3285: 3d pushspadd 3286: 0d popsp 3287: 04 poppc 00003288 : #include "regs.h" void set_green_led(int i) { 3288: 80 im 0 3289: 3d pushspadd 328a: 0d popsp 0000328b <.LM2>: *zpu_ledg = i; 328b: 80 im 0 328c: fc im -4 328d: b4 im 52 328e: 08 load 328f: 73 loadsp 12 3290: 71 loadsp 4 3291: 0c store 3292: 51 storesp 4 3293: 82 im 2 3294: 3d pushspadd 3295: 0d popsp 3296: 04 poppc 00003297 : } void set_red_led(int i) { 3297: 80 im 0 3298: 3d pushspadd 3299: 0d popsp 0000329a <.LM4>: *zpu_ledr = i; 329a: 80 im 0 329b: fc im -4 329c: b0 im 48 329d: 08 load 329e: 73 loadsp 12 329f: 71 loadsp 4 32a0: 0c store 32a1: 51 storesp 4 32a2: 82 im 2 32a3: 3d pushspadd 32a4: 0d popsp 32a5: 04 poppc 000032a6 : } void set_drive_number(int i) { 32a6: 80 im 0 32a7: 3d pushspadd 32a8: 0d popsp 000032a9 <.LM6>: *zpu_hex = i; 32a9: 80 im 0 32aa: fc im -4 32ab: 9c im 28 32ac: 08 load 32ad: 73 loadsp 12 32ae: 71 loadsp 4 32af: 0c store 32b0: 51 storesp 4 32b1: 82 im 2 32b2: 3d pushspadd 32b3: 0d popsp 32b4: 04 poppc 000032b5 : } void init_display() { 32b5: 80 im 0 32b6: 3d pushspadd 32b7: 0d popsp 000032b8 <.LM8>: *zpu_hex = 0; 32b8: 80 im 0 32b9: fc im -4 32ba: 9c im 28 32bb: 08 load 32bc: 51 storesp 4 32bd: 80 im 0 32be: 71 loadsp 4 32bf: 0c store 32c0: 82 im 2 32c1: 3d pushspadd 32c2: 0d popsp 32c3: 04 poppc 000032c4 : int debugoffsetval; void topofscreen() { xpos = 0; 32c4: 80 im 0 32c5: 0b nop 32c6: 83 im 3 32c7: e7 im -25 32c8: f4 im -12 32c9: 0c store 000032ca <.LM3>: ypos = 0; 32ca: 80 im 0 32cb: 0b nop 32cc: 83 im 3 32cd: e8 im -24 32ce: 80 im 0 32cf: 0c store 32d0: 04 poppc 000032d1 : } void setxpos(int val) { xpos = val; 32d1: 71 loadsp 4 32d2: 83 im 3 32d3: e7 im -25 32d4: f4 im -12 32d5: 0c store 32d6: 04 poppc 000032d7 : } void setypos(int val) { ypos = val; 32d7: 71 loadsp 4 32d8: 83 im 3 32d9: e8 im -24 32da: 80 im 0 32db: 0c store 32dc: 04 poppc 000032dd : } void initdebug(int onoff_in) { xpos = 0; 32dd: 80 im 0 32de: 0b nop 32df: 83 im 3 32e0: e7 im -25 32e1: f4 im -12 32e2: 0c store 000032e3 <.LM10>: ypos = 0; 32e3: 80 im 0 32e4: 0b nop 32e5: 83 im 3 32e6: e8 im -24 32e7: 80 im 0 32e8: 0c store 000032e9 <.LM11>: onoff = onoff_in; 32e9: 71 loadsp 4 32ea: 83 im 3 32eb: e7 im -25 32ec: fc im -4 32ed: 0c store 32ee: 04 poppc 000032ef : } void nextline() { int i; xpos=0; ypos+=1; if (ypos==24) ypos = 0; for (i=0;i!=40;++i) plot(0,i,ypos); //Delay100usX(5000); } unsigned char toatarichar(int val) { int inv = val>=128; if (inv) { val-=128; } if (val>='A' && val<='Z') { val+=-'A'+33; } else if (val>='a' && val<='z') { val+=-'a'+33+64; } else if (val>='0' && val<='9') { val+=-'0'+16; } else if (val>=32 && val<=47) { val+=-32; } else { val = 0; } if (inv) { val+=128; } return val; } unsigned char hextoatarichar(int val) { if (val>=0 && val<=9) { val+=+16; } else if (val>=10 && val<=15) { val+=-10+33; } return val; } void plot(unsigned char val, int x, int y) { 32ef: ff im -1 32f0: 3d pushspadd 32f1: 0d popsp 32f2: 75 loadsp 20 32f3: 02 pushsp 32f4: 84 im 4 32f5: 05 add 32f6: 8f im 15 32f7: 05 add 32f8: 33 loadb 32f9: 53 storesp 12 32fa: 51 storesp 4 000032fb <.LM13>: if (onoff == 0) return; 32fb: 83 im 3 32fc: e7 im -25 32fd: fc im -4 32fe: 08 load 32ff: 80 im 0 3300: 2e eq 3301: 9a im 26 3302: 38 neqbranch 00003303 <.LM14>: unsigned char volatile * baseaddr = (unsigned char volatile *)(40000 + 0x10000); *(baseaddr + y*40+x) = val+debugoffsetval; 3303: 70 loadsp 0 3304: 10 addsp 0 3305: 10 addsp 0 3306: 11 addsp 4 3307: 70 loadsp 0 3308: 10 addsp 0 3309: 10 addsp 0 330a: 10 addsp 0 330b: 16 addsp 24 330c: 86 im 6 330d: b8 im 56 330e: c0 im -64 330f: 11 addsp 4 3310: 83 im 3 3311: e7 im -25 3312: f8 im -8 3313: 08 load 3314: 15 addsp 20 3315: 55 storesp 20 3316: 51 storesp 4 3317: 51 storesp 4 3318: 51 storesp 4 3319: 71 loadsp 4 331a: 71 loadsp 4 331b: 34 storeb 0000331c <.L5>: } 331c: 83 im 3 331d: 3d pushspadd 331e: 0d popsp 331f: 04 poppc 00003320 : 3320: fd im -3 3321: 3d pushspadd 3322: 0d popsp 00003323 <.LM17>: 3323: 80 im 0 3324: 0b nop 3325: 83 im 3 3326: e7 im -25 3327: f4 im -12 3328: 0c store 00003329 <.LM18>: 3329: 83 im 3 332a: e8 im -24 332b: 80 im 0 332c: 08 load 332d: 81 im 1 332e: 05 add 332f: 54 storesp 16 00003330 <.LM19>: 3330: 73 loadsp 12 3331: 98 im 24 3332: 2e eq 3333: a3 im 35 3334: 38 neqbranch 3335: 73 loadsp 12 3336: 83 im 3 3337: e8 im -24 3338: 80 im 0 3339: 0c store 0000333a <.LM20>: 333a: 80 im 0 333b: 54 storesp 16 0000333c <.L13>: 333c: 83 im 3 333d: e8 im -24 333e: 80 im 0 333f: 08 load 3340: 53 storesp 12 3341: 73 loadsp 12 3342: 52 storesp 8 3343: 80 im 0 3344: 51 storesp 4 3345: ff im -1 3346: a8 im 40 3347: 3f callpcrel 00003348 <.LM22>: 3348: 81 im 1 3349: 14 addsp 16 334a: 54 storesp 16 334b: 73 loadsp 12 334c: a8 im 40 334d: 2e eq 334e: 09 not 334f: 81 im 1 3350: 06 and 3351: ea im -22 3352: 38 neqbranch 3353: 85 im 5 3354: 3d pushspadd 3355: 0d popsp 3356: 04 poppc 00003357 <.L18>: 3357: 80 im 0 3358: 0b nop 3359: 83 im 3 335a: e8 im -24 335b: 80 im 0 335c: 0c store 0000335d <.LM24>: 335d: 80 im 0 335e: 54 storesp 16 335f: dc im -36 3360: 39 poppcrel 00003361 : 3361: fe im -2 3362: 3d pushspadd 3363: 0d popsp 3364: 74 loadsp 16 3365: 52 storesp 8 00003366 <.LM26>: 3366: 80 im 0 3367: 53 storesp 12 3368: 80 im 0 3369: ff im -1 336a: 72 loadsp 8 336b: 25 lessthanorequal 336c: 88 im 8 336d: 38 neqbranch 336e: 81 im 1 0000336f <.LM27>: 336f: 0b nop 3370: ff im -1 3371: 80 im 0 3372: 13 addsp 12 3373: 53 storesp 12 3374: 53 storesp 12 00003375 <.L21>: 3375: ff im -1 3376: bf im 63 3377: 12 addsp 8 3378: 51 storesp 4 3379: 99 im 25 337a: 71 loadsp 4 337b: 27 ulessthanorequal 337c: a7 im 39 337d: 38 neqbranch 0000337e <.LM29>: 337e: ff im -1 337f: 9f im 31 3380: 12 addsp 8 3381: 51 storesp 4 3382: 70 loadsp 0 3383: 99 im 25 3384: 26 ulessthan 3385: 96 im 22 3386: 38 neqbranch 00003387 <.L23>: 3387: 72 loadsp 8 3388: 80 im 0 3389: 2e eq 338a: 85 im 5 338b: 38 neqbranch 0000338c <.LM31>: 338c: 81 im 1 338d: 80 im 0 338e: 12 addsp 8 338f: 52 storesp 8 00003390 <.L30>: 3390: 71 loadsp 4 3391: 81 im 1 3392: ff im -1 3393: 06 and 3394: 83 im 3 3395: e0 im -32 3396: 80 im 0 3397: 0c store 00003398 <.LM33>: 3398: 84 im 4 3399: 3d pushspadd 339a: 0d popsp 339b: 04 poppc 0000339c <.L34>: 339c: d0 im -48 339d: 12 addsp 8 339e: 51 storesp 4 339f: 70 loadsp 0 33a0: 89 im 9 33a1: 26 ulessthan 33a2: 86 im 6 33a3: 38 neqbranch 000033a4 <.L32>: 33a4: e0 im -32 33a5: 12 addsp 8 33a6: 52 storesp 8 33a7: df im -33 33a8: 39 poppcrel 000033a9 <.L26>: 33a9: e0 im -32 33aa: 12 addsp 8 000033ab <.LM37>: 33ab: 70 loadsp 0 33ac: 53 storesp 12 33ad: 51 storesp 4 000033ae <.LM38>: 33ae: 8f im 15 33af: 71 loadsp 4 33b0: 27 ulessthanorequal 33b1: d5 im -43 33b2: 38 neqbranch 000033b3 <.LM39>: 33b3: 80 im 0 33b4: 52 storesp 8 33b5: d1 im -47 33b6: 39 poppcrel 000033b7 : 33b7: ff im -1 33b8: 3d pushspadd 33b9: 0d popsp 33ba: 73 loadsp 12 33bb: 52 storesp 8 000033bc <.LM41>: 33bc: 71 loadsp 4 33bd: 89 im 9 33be: 26 ulessthan 33bf: 90 im 16 33c0: 38 neqbranch 000033c1 <.LM42>: 33c1: 90 im 16 33c2: 12 addsp 8 33c3: 52 storesp 8 000033c4 <.L37>: 33c4: 71 loadsp 4 33c5: 81 im 1 33c6: ff im -1 33c7: 06 and 33c8: 83 im 3 33c9: e0 im -32 33ca: 80 im 0 33cb: 0c store 000033cc <.LM44>: 33cc: 83 im 3 33cd: 3d pushspadd 33ce: 0d popsp 33cf: 04 poppc 000033d0 <.L36>: 33d0: f6 im -10 33d1: 12 addsp 8 33d2: 51 storesp 4 33d3: 70 loadsp 0 33d4: 85 im 5 33d5: 26 ulessthan 33d6: ed im -19 33d7: 38 neqbranch 000033d8 <.LM46>: 33d8: 97 im 23 33d9: 12 addsp 8 000033da <.LM47>: 33da: 70 loadsp 0 33db: 81 im 1 33dc: ff im -1 33dd: 06 and 33de: 83 im 3 33df: e0 im -32 33e0: 80 im 0 33e1: 0c store 33e2: 52 storesp 8 000033e3 <.LM48>: 33e3: 83 im 3 33e4: 3d pushspadd 33e5: 0d popsp 33e6: 04 poppc 000033e7 : void debugoffset(int x) { debugoffsetval = x; 33e7: 71 loadsp 4 33e8: 83 im 3 33e9: e7 im -25 33ea: f8 im -8 33eb: 0c store 33ec: 04 poppc 000033ed : } void debug(char const * str) { 33ed: fc im -4 33ee: 3d pushspadd 33ef: 0d popsp 33f0: 76 loadsp 24 33f1: 55 storesp 20 000033f2 <.L51>: while (1) { int val = *str++; 33f2: 74 loadsp 16 33f3: 70 loadsp 0 33f4: 81 im 1 33f5: 05 add 33f6: 56 storesp 24 33f7: 33 loadb 33f8: 54 storesp 16 000033f9 <.LM53>: if (val==0) break; 33f9: 73 loadsp 12 33fa: 80 im 0 33fb: 2e eq 33fc: 80 im 0 33fd: c2 im -62 33fe: 38 neqbranch 000033ff <.L53>: if (val=='\n') {nextline();continue;}; 33ff: 73 loadsp 12 3400: 8a im 10 3401: 2e eq 3402: b0 im 48 3403: 38 neqbranch 00003404 <.LM55>: plot(toatarichar(val),xpos,ypos); 3404: 73 loadsp 12 3405: 51 storesp 4 3406: fe im -2 3407: d9 im -39 3408: 3f callpcrel 3409: 83 im 3 340a: e8 im -24 340b: 80 im 0 340c: 08 load 340d: 53 storesp 12 340e: 83 im 3 340f: e7 im -25 3410: f4 im -12 3411: 08 load 3412: 52 storesp 8 3413: 83 im 3 3414: e0 im -32 3415: 80 im 0 3416: 08 load 3417: 81 im 1 3418: ff im -1 3419: 06 and 341a: 51 storesp 4 341b: fd im -3 341c: d2 im -46 341d: 3f callpcrel 0000341e <.LM56>: ++xpos; 341e: 83 im 3 341f: e7 im -25 3420: f4 im -12 3421: 08 load 3422: 81 im 1 3423: 05 add 3424: 83 im 3 3425: e7 im -25 3426: f4 im -12 3427: 0c store 00003428 <.LM57>: if (xpos==40) 3428: 83 im 3 3429: e7 im -25 342a: f4 im -12 342b: 08 load 342c: a8 im 40 342d: 2e eq 342e: 09 not 342f: 81 im 1 3430: 06 and 3431: c0 im -64 3432: 38 neqbranch 00003433 <.L50>: { nextline(); 3433: fd im -3 3434: eb im -21 3435: 3f callpcrel 00003436 <.LM59>: 3436: 74 loadsp 16 3437: 70 loadsp 0 3438: 81 im 1 3439: 05 add 343a: 56 storesp 24 343b: 33 loadb 343c: 54 storesp 16 0000343d <.LM60>: 343d: 73 loadsp 12 343e: c0 im -64 343f: 38 neqbranch 00003440 <.L43>: } } debugoffsetval = 0; 3440: 80 im 0 3441: 0b nop 3442: 83 im 3 3443: e7 im -25 3444: f8 im -8 3445: 0c store 3446: 86 im 6 3447: 3d pushspadd 3448: 0d popsp 3449: 04 poppc 0000344a : } void plotnext(unsigned char val) { 344a: fd im -3 344b: 3d pushspadd 344c: 0d popsp 344d: 02 pushsp 344e: 97 im 23 344f: 05 add 3450: 33 loadb 00003451 <.LM63>: plot(val,xpos,ypos); 3451: 83 im 3 3452: e8 im -24 3453: 80 im 0 3454: 08 load 3455: 54 storesp 16 3456: 83 im 3 3457: e7 im -25 3458: f4 im -12 3459: 08 load 345a: 53 storesp 12 345b: 51 storesp 4 345c: fd im -3 345d: 91 im 17 345e: 3f callpcrel 0000345f <.LM64>: ++xpos; 345f: 83 im 3 3460: e7 im -25 3461: f4 im -12 3462: 08 load 3463: 81 im 1 3464: 05 add 3465: 83 im 3 3466: e7 im -25 3467: f4 im -12 3468: 0c store 00003469 <.LM65>: if (xpos==40) nextline(); 3469: 83 im 3 346a: e7 im -25 346b: f4 im -12 346c: 08 load 346d: a8 im 40 346e: 2e eq 346f: 85 im 5 3470: 38 neqbranch 00003471 <.LM66>: } 3471: 85 im 5 3472: 3d pushspadd 3473: 0d popsp 3474: 04 poppc 00003475 <.L57>: 3475: fd im -3 3476: a9 im 41 3477: 3f callpcrel 00003478 <.LM68>: 3478: 85 im 5 3479: 3d pushspadd 347a: 0d popsp 347b: 04 poppc 0000347c : void plotnextnumber(unsigned short val) { 347c: fe im -2 347d: 3d pushspadd 347e: 0d popsp 347f: 02 pushsp 3480: 92 im 18 3481: 05 add 3482: 22 loadh 00003483 <.LM70>: plotnext(hextoatarichar((val&0xf000)>>12)); 3483: 70 loadsp 0 3484: 8c im 12 3485: 2a lshiftright 3486: 52 storesp 8 3487: 52 storesp 8 3488: fe im -2 3489: ad im 45 348a: 3f callpcrel 348b: 83 im 3 348c: e0 im -32 348d: 80 im 0 348e: 08 load 348f: 81 im 1 3490: ff im -1 3491: 06 and 3492: 51 storesp 4 3493: ff im -1 3494: b5 im 53 3495: 3f callpcrel 00003496 <.LM71>: plotnext(hextoatarichar((val&0x0f00)>>8)); 3496: 71 loadsp 4 3497: 9e im 30 3498: 80 im 0 3499: 06 and 349a: 70 loadsp 0 349b: 88 im 8 349c: 2a lshiftright 349d: 52 storesp 8 349e: 53 storesp 12 349f: fe im -2 34a0: 96 im 22 34a1: 3f callpcrel 34a2: 83 im 3 34a3: e0 im -32 34a4: 80 im 0 34a5: 08 load 34a6: 81 im 1 34a7: ff im -1 34a8: 06 and 34a9: 51 storesp 4 34aa: ff im -1 34ab: 9e im 30 34ac: 3f callpcrel 000034ad <.LM72>: plotnext(hextoatarichar((val&0x00f0)>>4)); 34ad: 71 loadsp 4 34ae: 81 im 1 34af: f0 im -16 34b0: 06 and 34b1: 70 loadsp 0 34b2: 84 im 4 34b3: 2a lshiftright 34b4: 52 storesp 8 34b5: 53 storesp 12 34b6: fd im -3 34b7: ff im -1 34b8: 3f callpcrel 34b9: 83 im 3 34ba: e0 im -32 34bb: 80 im 0 34bc: 08 load 34bd: 81 im 1 34be: ff im -1 34bf: 06 and 34c0: 51 storesp 4 34c1: ff im -1 34c2: 87 im 7 34c3: 3f callpcrel 000034c4 <.LM73>: plotnext(hextoatarichar((val&0x000f)>>0)); 34c4: 71 loadsp 4 34c5: 8f im 15 34c6: 06 and 34c7: 51 storesp 4 34c8: fd im -3 34c9: ed im -19 34ca: 3f callpcrel 34cb: 83 im 3 34cc: e0 im -32 34cd: 80 im 0 34ce: 08 load 34cf: 81 im 1 34d0: ff im -1 34d1: 06 and 34d2: 51 storesp 4 34d3: fe im -2 34d4: f5 im -11 34d5: 3f callpcrel 000034d6 <.LM74>: debugoffsetval = 0; 34d6: 80 im 0 34d7: 0b nop 34d8: 83 im 3 34d9: e7 im -25 34da: f8 im -8 34db: 0c store 34dc: 84 im 4 34dd: 3d pushspadd 34de: 0d popsp 34df: 04 poppc 000034e0 : } void hexdump(char const * str, int length) { 34e0: fb im -5 34e1: 3d pushspadd 34e2: 0d popsp 34e3: 77 loadsp 28 34e4: 79 loadsp 36 34e5: 56 storesp 24 34e6: 56 storesp 24 000034e7 <.LM76>: nextline(); 34e7: fc im -4 34e8: b7 im 55 34e9: 3f callpcrel 000034ea <.LM77>: for (;length>0;--length) 34ea: 80 im 0 34eb: 75 loadsp 20 34ec: 25 lessthanorequal 34ed: 80 im 0 34ee: fb im -5 34ef: 38 neqbranch 000034f0 <.L70>: { unsigned char val= *str++; 34f0: 75 loadsp 20 34f1: 70 loadsp 0 34f2: 81 im 1 34f3: 05 add 34f4: 57 storesp 28 34f5: 33 loadb 000034f6 <.LM79>: // LH 10 cols = char // RH 20 cols = hex plot(toatarichar(val),xpos,ypos); 34f6: 70 loadsp 0 34f7: 52 storesp 8 34f8: 54 storesp 16 34f9: fc im -4 34fa: e6 im -26 34fb: 3f callpcrel 34fc: 83 im 3 34fd: e8 im -24 34fe: 80 im 0 34ff: 08 load 3500: 53 storesp 12 3501: 83 im 3 3502: e7 im -25 3503: f4 im -12 3504: 08 load 3505: 52 storesp 8 3506: 83 im 3 3507: e0 im -32 3508: 80 im 0 3509: 08 load 350a: 81 im 1 350b: ff im -1 350c: 06 and 350d: 51 storesp 4 350e: fb im -5 350f: df im -33 3510: 3f callpcrel 00003511 <.LM80>: plot(hextoatarichar((val&0xf0) >> 4),xpos*2+20,ypos); 3511: 73 loadsp 12 3512: 84 im 4 3513: 2a lshiftright 3514: 51 storesp 4 3515: fd im -3 3516: a0 im 32 3517: 3f callpcrel 3518: 83 im 3 3519: e8 im -24 351a: 80 im 0 351b: 08 load 351c: 53 storesp 12 351d: 83 im 3 351e: e7 im -25 351f: f4 im -12 3520: 08 load 3521: 10 addsp 0 3522: 94 im 20 3523: 05 add 3524: 52 storesp 8 3525: 83 im 3 3526: e0 im -32 3527: 80 im 0 3528: 08 load 3529: 81 im 1 352a: ff im -1 352b: 06 and 352c: 51 storesp 4 352d: fb im -5 352e: c0 im -64 352f: 3f callpcrel 00003530 <.LM81>: plot(hextoatarichar(val&0xf),xpos*2+21,ypos); 3530: 73 loadsp 12 3531: 8f im 15 3532: 06 and 3533: 51 storesp 4 3534: fd im -3 3535: 81 im 1 3536: 3f callpcrel 3537: 83 im 3 3538: e8 im -24 3539: 80 im 0 353a: 08 load 353b: 53 storesp 12 353c: 83 im 3 353d: e7 im -25 353e: f4 im -12 353f: 08 load 3540: 10 addsp 0 3541: 95 im 21 3542: 05 add 3543: 52 storesp 8 3544: 83 im 3 3545: e0 im -32 3546: 80 im 0 3547: 08 load 3548: 81 im 1 3549: ff im -1 354a: 06 and 354b: 51 storesp 4 354c: fb im -5 354d: a1 im 33 354e: 3f callpcrel 0000354f <.LM82>: ++xpos; 354f: 83 im 3 3550: e7 im -25 3551: f4 im -12 3552: 08 load 3553: 81 im 1 3554: 05 add 3555: 83 im 3 3556: e7 im -25 3557: f4 im -12 3558: 0c store 00003559 <.LM83>: if (xpos==10) 3559: 83 im 3 355a: e7 im -25 355b: f4 im -12 355c: 08 load 355d: 8a im 10 355e: 2e eq 355f: 91 im 17 3560: 38 neqbranch 00003561 <.LM84>: 3561: ff im -1 3562: 15 addsp 20 3563: 55 storesp 20 00003564 <.L71>: 3564: 74 loadsp 16 3565: 80 im 0 3566: 24 lessthan 3567: ff im -1 3568: 87 im 7 3569: 38 neqbranch 0000356a <.L66>: { nextline(); } } nextline(); 356a: fb im -5 356b: b4 im 52 356c: 3f callpcrel 356d: 87 im 7 356e: 3d pushspadd 356f: 0d popsp 3570: 04 poppc 00003571 <.L69>: 3571: fb im -5 3572: ad im 45 3573: 3f callpcrel 00003574 <.LM87>: 3574: ff im -1 3575: 15 addsp 20 3576: 55 storesp 20 3577: ec im -20 3578: 39 poppcrel 00003579 : } void hexdump_pure(char const * str, int length) { 3579: fb im -5 357a: 3d pushspadd 357b: 0d popsp 357c: 77 loadsp 28 357d: 79 loadsp 36 0000357e <.LM89>: xpos = xpos&0xfffe; 357e: 83 im 3 357f: e7 im -25 3580: f4 im -12 3581: 08 load 3582: 83 im 3 3583: ff im -1 3584: fe im -2 3585: 06 and 3586: 83 im 3 3587: e7 im -25 3588: f4 im -12 3589: 0c store 358a: 56 storesp 24 358b: 56 storesp 24 0000358c <.LM90>: for (;length>0;--length) 358c: 80 im 0 358d: 75 loadsp 20 358e: 25 lessthanorequal 358f: 80 im 0 3590: e5 im -27 3591: 38 neqbranch 00003592 <.L83>: { unsigned char val= *str++; 3592: 75 loadsp 20 3593: 70 loadsp 0 3594: 81 im 1 3595: 05 add 3596: 57 storesp 28 3597: 33 loadb 00003598 <.LM92>: plot(hextoatarichar((val&0xf0) >> 4),xpos++,ypos); 3598: 70 loadsp 0 3599: 84 im 4 359a: 2a lshiftright 359b: 52 storesp 8 359c: 54 storesp 16 359d: fc im -4 359e: 98 im 24 359f: 3f callpcrel 35a0: 83 im 3 35a1: e8 im -24 35a2: 80 im 0 35a3: 08 load 35a4: 53 storesp 12 35a5: 83 im 3 35a6: e7 im -25 35a7: f4 im -12 35a8: 08 load 35a9: 52 storesp 8 35aa: 83 im 3 35ab: e7 im -25 35ac: f4 im -12 35ad: 08 load 35ae: 81 im 1 35af: 05 add 35b0: 83 im 3 35b1: e7 im -25 35b2: f4 im -12 35b3: 0c store 35b4: 83 im 3 35b5: e0 im -32 35b6: 80 im 0 35b7: 08 load 35b8: 81 im 1 35b9: ff im -1 35ba: 06 and 35bb: 51 storesp 4 35bc: fa im -6 35bd: b1 im 49 35be: 3f callpcrel 000035bf <.LM93>: plot(hextoatarichar(val&0xf),xpos++,ypos); 35bf: 73 loadsp 12 35c0: 8f im 15 35c1: 06 and 35c2: 51 storesp 4 35c3: fb im -5 35c4: f2 im -14 35c5: 3f callpcrel 35c6: 83 im 3 35c7: e8 im -24 35c8: 80 im 0 35c9: 08 load 35ca: 53 storesp 12 35cb: 83 im 3 35cc: e7 im -25 35cd: f4 im -12 35ce: 08 load 35cf: 52 storesp 8 35d0: 83 im 3 35d1: e7 im -25 35d2: f4 im -12 35d3: 08 load 35d4: 81 im 1 35d5: 05 add 35d6: 83 im 3 35d7: e7 im -25 35d8: f4 im -12 35d9: 0c store 35da: 83 im 3 35db: e0 im -32 35dc: 80 im 0 35dd: 08 load 35de: 81 im 1 35df: ff im -1 35e0: 06 and 35e1: 51 storesp 4 35e2: fa im -6 35e3: 8b im 11 35e4: 3f callpcrel 000035e5 <.LM94>: if (xpos==40) 35e5: 83 im 3 35e6: e7 im -25 35e7: f4 im -12 35e8: 08 load 35e9: a8 im 40 35ea: 2e eq 35eb: 8e im 14 35ec: 38 neqbranch 000035ed <.LM95>: 35ed: ff im -1 35ee: 15 addsp 20 35ef: 55 storesp 20 000035f0 <.L84>: 35f0: 74 loadsp 16 35f1: 80 im 0 35f2: 24 lessthan 35f3: ff im -1 35f4: 9d im 29 35f5: 38 neqbranch 000035f6 <.L79>: 35f6: 87 im 7 35f7: 3d pushspadd 35f8: 0d popsp 35f9: 04 poppc 000035fa <.L82>: { nextline(); 35fa: fa im -6 35fb: a4 im 36 35fc: 3f callpcrel 000035fd <.LM97>: 35fd: ff im -1 35fe: 15 addsp 20 35ff: 55 storesp 20 3600: ef im -17 3601: 39 poppcrel 00003602 <__udivsi3>: 3602: 83 im 3 3603: e0 im -32 3604: 8c im 12 3605: 08 load 3606: 02 pushsp 3607: 83 im 3 3608: e0 im -32 3609: 8c im 12 360a: 0c store 360b: fd im -3 360c: 3d pushspadd 360d: 0d popsp 360e: 80 im 0 360f: 53 storesp 12 3610: 83 im 3 3611: e0 im -32 3612: 8c im 12 3613: 08 load 3614: 8c im 12 3615: 05 add 3616: 08 load 3617: 52 storesp 8 3618: 83 im 3 3619: e0 im -32 361a: 8c im 12 361b: 08 load 361c: 88 im 8 361d: 05 add 361e: 08 load 361f: 51 storesp 4 3620: 83 im 3 3621: d4 im -44 3622: 3f callpcrel 3623: 83 im 3 3624: e0 im -32 3625: 80 im 0 3626: 08 load 3627: 70 loadsp 0 3628: 83 im 3 3629: e0 im -32 362a: 80 im 0 362b: 0c store 362c: 54 storesp 16 362d: 85 im 5 362e: 3d pushspadd 362f: 0d popsp 3630: 83 im 3 3631: e0 im -32 3632: 8c im 12 3633: 0c store 3634: 04 poppc 00003635 <__umodsi3>: 3635: 83 im 3 3636: e0 im -32 3637: 8c im 12 3638: 08 load 3639: 02 pushsp 363a: 83 im 3 363b: e0 im -32 363c: 8c im 12 363d: 0c store 363e: fd im -3 363f: 3d pushspadd 3640: 0d popsp 3641: 81 im 1 3642: 53 storesp 12 3643: 83 im 3 3644: e0 im -32 3645: 8c im 12 3646: 08 load 3647: 8c im 12 3648: 05 add 3649: 08 load 364a: 52 storesp 8 364b: 83 im 3 364c: e0 im -32 364d: 8c im 12 364e: 08 load 364f: 88 im 8 3650: 05 add 3651: 08 load 3652: 51 storesp 4 3653: 83 im 3 3654: a1 im 33 3655: 3f callpcrel 3656: 83 im 3 3657: e0 im -32 3658: 80 im 0 3659: 08 load 365a: 70 loadsp 0 365b: 83 im 3 365c: e0 im -32 365d: 80 im 0 365e: 0c store 365f: 54 storesp 16 3660: 85 im 5 3661: 3d pushspadd 3662: 0d popsp 3663: 83 im 3 3664: e0 im -32 3665: 8c im 12 3666: 0c store 3667: 04 poppc 00003668 <__divsi3>: 3668: 83 im 3 3669: e0 im -32 366a: 8c im 12 366b: 08 load 366c: 02 pushsp 366d: 83 im 3 366e: e0 im -32 366f: 8c im 12 3670: 0c store 3671: f9 im -7 3672: 3d pushspadd 3673: 0d popsp 3674: 80 im 0 3675: 0b nop 3676: 83 im 3 3677: e0 im -32 3678: 8c im 12 3679: 08 load 367a: fc im -4 367b: 05 add 367c: 0c store 367d: 83 im 3 367e: e0 im -32 367f: 8c im 12 3680: 08 load 3681: 88 im 8 3682: 05 add 3683: 08 load 3684: 80 im 0 3685: 25 lessthanorequal 3686: b9 im 57 3687: 38 neqbranch 3688: 83 im 3 3689: e0 im -32 368a: 8c im 12 368b: 08 load 368c: 88 im 8 368d: 05 add 368e: 08 load 368f: 30 neg 3690: 83 im 3 3691: e0 im -32 3692: 8c im 12 3693: 08 load 3694: 88 im 8 3695: 05 add 3696: 0c store 3697: 80 im 0 3698: 0b nop 3699: 83 im 3 369a: e0 im -32 369b: 8c im 12 369c: 08 load 369d: f4 im -12 369e: 05 add 369f: 0c store 36a0: 83 im 3 36a1: e0 im -32 36a2: 8c im 12 36a3: 08 load 36a4: fc im -4 36a5: 05 add 36a6: 08 load 36a7: 8a im 10 36a8: 38 neqbranch 36a9: 81 im 1 36aa: 0b nop 36ab: 83 im 3 36ac: e0 im -32 36ad: 8c im 12 36ae: 08 load 36af: f4 im -12 36b0: 05 add 36b1: 0c store 000036b2 <.L3>: 36b2: 83 im 3 36b3: e0 im -32 36b4: 8c im 12 36b5: 08 load 36b6: f4 im -12 36b7: 05 add 36b8: 08 load 36b9: 83 im 3 36ba: e0 im -32 36bb: 8c im 12 36bc: 08 load 36bd: fc im -4 36be: 05 add 36bf: 0c store 000036c0 <.L2>: 36c0: 83 im 3 36c1: e0 im -32 36c2: 8c im 12 36c3: 08 load 36c4: 8c im 12 36c5: 05 add 36c6: 08 load 36c7: 80 im 0 36c8: 25 lessthanorequal 36c9: b9 im 57 36ca: 38 neqbranch 36cb: 83 im 3 36cc: e0 im -32 36cd: 8c im 12 36ce: 08 load 36cf: 8c im 12 36d0: 05 add 36d1: 08 load 36d2: 30 neg 36d3: 83 im 3 36d4: e0 im -32 36d5: 8c im 12 36d6: 08 load 36d7: 8c im 12 36d8: 05 add 36d9: 0c store 36da: 80 im 0 36db: 0b nop 36dc: 83 im 3 36dd: e0 im -32 36de: 8c im 12 36df: 08 load 36e0: f0 im -16 36e1: 05 add 36e2: 0c store 36e3: 83 im 3 36e4: e0 im -32 36e5: 8c im 12 36e6: 08 load 36e7: fc im -4 36e8: 05 add 36e9: 08 load 36ea: 8a im 10 36eb: 38 neqbranch 36ec: 81 im 1 36ed: 0b nop 36ee: 83 im 3 36ef: e0 im -32 36f0: 8c im 12 36f1: 08 load 36f2: f0 im -16 36f3: 05 add 36f4: 0c store 000036f5 <.L5>: 36f5: 83 im 3 36f6: e0 im -32 36f7: 8c im 12 36f8: 08 load 36f9: f0 im -16 36fa: 05 add 36fb: 08 load 36fc: 83 im 3 36fd: e0 im -32 36fe: 8c im 12 36ff: 08 load 3700: fc im -4 3701: 05 add 3702: 0c store 00003703 <.L4>: 3703: 80 im 0 3704: 53 storesp 12 3705: 83 im 3 3706: e0 im -32 3707: 8c im 12 3708: 08 load 3709: 8c im 12 370a: 05 add 370b: 08 load 370c: 52 storesp 8 370d: 83 im 3 370e: e0 im -32 370f: 8c im 12 3710: 08 load 3711: 88 im 8 3712: 05 add 3713: 08 load 3714: 51 storesp 4 3715: 81 im 1 3716: df im -33 3717: 3f callpcrel 3718: 83 im 3 3719: e0 im -32 371a: 80 im 0 371b: 08 load 371c: 70 loadsp 0 371d: 83 im 3 371e: e0 im -32 371f: 8c im 12 3720: 08 load 3721: f8 im -8 3722: 05 add 3723: 0c store 3724: 54 storesp 16 3725: 83 im 3 3726: e0 im -32 3727: 8c im 12 3728: 08 load 3729: fc im -4 372a: 05 add 372b: 08 load 372c: 80 im 0 372d: 2e eq 372e: 90 im 16 372f: 38 neqbranch 3730: 83 im 3 3731: e0 im -32 3732: 8c im 12 3733: 08 load 3734: f8 im -8 3735: 05 add 3736: 08 load 3737: 30 neg 3738: 83 im 3 3739: e0 im -32 373a: 8c im 12 373b: 08 load 373c: f8 im -8 373d: 05 add 373e: 0c store 0000373f <.L6>: 373f: 83 im 3 3740: e0 im -32 3741: 8c im 12 3742: 08 load 3743: f8 im -8 3744: 05 add 3745: 08 load 3746: 70 loadsp 0 3747: 83 im 3 3748: e0 im -32 3749: 80 im 0 374a: 0c store 374b: 54 storesp 16 374c: 89 im 9 374d: 3d pushspadd 374e: 0d popsp 374f: 83 im 3 3750: e0 im -32 3751: 8c im 12 3752: 0c store 3753: 04 poppc 00003754 <__modsi3>: 3754: 83 im 3 3755: e0 im -32 3756: 8c im 12 3757: 08 load 3758: 02 pushsp 3759: 83 im 3 375a: e0 im -32 375b: 8c im 12 375c: 0c store 375d: fb im -5 375e: 3d pushspadd 375f: 0d popsp 3760: 80 im 0 3761: 0b nop 3762: 83 im 3 3763: e0 im -32 3764: 8c im 12 3765: 08 load 3766: fc im -4 3767: 05 add 3768: 0c store 3769: 83 im 3 376a: e0 im -32 376b: 8c im 12 376c: 08 load 376d: 88 im 8 376e: 05 add 376f: 08 load 3770: 80 im 0 3771: 25 lessthanorequal 3772: 99 im 25 3773: 38 neqbranch 3774: 83 im 3 3775: e0 im -32 3776: 8c im 12 3777: 08 load 3778: 88 im 8 3779: 05 add 377a: 08 load 377b: 30 neg 377c: 83 im 3 377d: e0 im -32 377e: 8c im 12 377f: 08 load 3780: 88 im 8 3781: 05 add 3782: 0c store 3783: 81 im 1 3784: 0b nop 3785: 83 im 3 3786: e0 im -32 3787: 8c im 12 3788: 08 load 3789: fc im -4 378a: 05 add 378b: 0c store 0000378c <.L8>: 378c: 83 im 3 378d: e0 im -32 378e: 8c im 12 378f: 08 load 3790: 8c im 12 3791: 05 add 3792: 08 load 3793: 80 im 0 3794: 25 lessthanorequal 3795: 90 im 16 3796: 38 neqbranch 3797: 83 im 3 3798: e0 im -32 3799: 8c im 12 379a: 08 load 379b: 8c im 12 379c: 05 add 379d: 08 load 379e: 30 neg 379f: 83 im 3 37a0: e0 im -32 37a1: 8c im 12 37a2: 08 load 37a3: 8c im 12 37a4: 05 add 37a5: 0c store 000037a6 <.L9>: 37a6: 81 im 1 37a7: 53 storesp 12 37a8: 83 im 3 37a9: e0 im -32 37aa: 8c im 12 37ab: 08 load 37ac: 8c im 12 37ad: 05 add 37ae: 08 load 37af: 52 storesp 8 37b0: 83 im 3 37b1: e0 im -32 37b2: 8c im 12 37b3: 08 load 37b4: 88 im 8 37b5: 05 add 37b6: 08 load 37b7: 51 storesp 4 37b8: bd im 61 37b9: 3f callpcrel 37ba: 83 im 3 37bb: e0 im -32 37bc: 80 im 0 37bd: 08 load 37be: 70 loadsp 0 37bf: 83 im 3 37c0: e0 im -32 37c1: 8c im 12 37c2: 08 load 37c3: f8 im -8 37c4: 05 add 37c5: 0c store 37c6: 54 storesp 16 37c7: 83 im 3 37c8: e0 im -32 37c9: 8c im 12 37ca: 08 load 37cb: fc im -4 37cc: 05 add 37cd: 08 load 37ce: 80 im 0 37cf: 2e eq 37d0: 90 im 16 37d1: 38 neqbranch 37d2: 83 im 3 37d3: e0 im -32 37d4: 8c im 12 37d5: 08 load 37d6: f8 im -8 37d7: 05 add 37d8: 08 load 37d9: 30 neg 37da: 83 im 3 37db: e0 im -32 37dc: 8c im 12 37dd: 08 load 37de: f8 im -8 37df: 05 add 37e0: 0c store 000037e1 <.L10>: 37e1: 83 im 3 37e2: e0 im -32 37e3: 8c im 12 37e4: 08 load 37e5: f8 im -8 37e6: 05 add 37e7: 08 load 37e8: 70 loadsp 0 37e9: 83 im 3 37ea: e0 im -32 37eb: 80 im 0 37ec: 0c store 37ed: 54 storesp 16 37ee: 87 im 7 37ef: 3d pushspadd 37f0: 0d popsp 37f1: 83 im 3 37f2: e0 im -32 37f3: 8c im 12 37f4: 0c store 37f5: 04 poppc 000037f6 : 37f6: 83 im 3 37f7: e0 im -32 37f8: 8c im 12 37f9: 08 load 37fa: 02 pushsp 37fb: 83 im 3 37fc: e0 im -32 37fd: 8c im 12 37fe: 0c store 37ff: fd im -3 3800: 3d pushspadd 3801: 0d popsp 3802: 81 im 1 3803: 0b nop 3804: 83 im 3 3805: e0 im -32 3806: 8c im 12 3807: 08 load 3808: fc im -4 3809: 05 add 380a: 0c store 380b: 80 im 0 380c: 0b nop 380d: 83 im 3 380e: e0 im -32 380f: 8c im 12 3810: 08 load 3811: f8 im -8 3812: 05 add 3813: 0c store 00003814 <.L2>: 3814: 83 im 3 3815: e0 im -32 3816: 8c im 12 3817: 08 load 3818: 8c im 12 3819: 05 add 381a: 08 load 381b: 83 im 3 381c: e0 im -32 381d: 8c im 12 381e: 08 load 381f: 88 im 8 3820: 05 add 3821: 08 load 3822: 27 ulessthanorequal 3823: b9 im 57 3824: 38 neqbranch 3825: 83 im 3 3826: e0 im -32 3827: 8c im 12 3828: 08 load 3829: fc im -4 382a: 05 add 382b: 08 load 382c: 80 im 0 382d: 2e eq 382e: ae im 46 382f: 38 neqbranch 3830: 80 im 0 3831: 0b nop 3832: 83 im 3 3833: e0 im -32 3834: 8c im 12 3835: 08 load 3836: 8c im 12 3837: 05 add 3838: 08 load 3839: 24 lessthan 383a: a2 im 34 383b: 38 neqbranch 383c: 83 im 3 383d: e0 im -32 383e: 8c im 12 383f: 08 load 3840: 8c im 12 3841: 05 add 3842: 08 load 3843: 10 addsp 0 3844: 83 im 3 3845: e0 im -32 3846: 8c im 12 3847: 08 load 3848: 8c im 12 3849: 05 add 384a: 0c store 384b: 83 im 3 384c: e0 im -32 384d: 8c im 12 384e: 08 load 384f: fc im -4 3850: 05 add 3851: 08 load 3852: 10 addsp 0 3853: 83 im 3 3854: e0 im -32 3855: 8c im 12 3856: 08 load 3857: fc im -4 3858: 05 add 3859: 0c store 385a: ff im -1 385b: b8 im 56 385c: 39 poppcrel 0000385d <.L4>: 385d: 83 im 3 385e: e0 im -32 385f: 8c im 12 3860: 08 load 3861: fc im -4 3862: 05 add 3863: 08 load 3864: 80 im 0 3865: 2e eq 3866: 80 im 0 3867: e1 im -31 3868: 38 neqbranch 3869: 83 im 3 386a: e0 im -32 386b: 8c im 12 386c: 08 load 386d: 8c im 12 386e: 05 add 386f: 08 load 3870: 83 im 3 3871: e0 im -32 3872: 8c im 12 3873: 08 load 3874: 88 im 8 3875: 05 add 3876: 08 load 3877: 26 ulessthan 3878: ad im 45 3879: 38 neqbranch 387a: 83 im 3 387b: e0 im -32 387c: 8c im 12 387d: 08 load 387e: 88 im 8 387f: 05 add 3880: 08 load 3881: 83 im 3 3882: e0 im -32 3883: 8c im 12 3884: 08 load 3885: 8c im 12 3886: 05 add 3887: 08 load 3888: 31 sub 3889: 83 im 3 388a: e0 im -32 388b: 8c im 12 388c: 08 load 388d: 88 im 8 388e: 05 add 388f: 0c store 3890: 83 im 3 3891: e0 im -32 3892: 8c im 12 3893: 08 load 3894: f8 im -8 3895: 05 add 3896: 08 load 3897: 83 im 3 3898: e0 im -32 3899: 8c im 12 389a: 08 load 389b: fc im -4 389c: 05 add 389d: 08 load 389e: 07 or 389f: 83 im 3 38a0: e0 im -32 38a1: 8c im 12 38a2: 08 load 38a3: f8 im -8 38a4: 05 add 38a5: 0c store 000038a6 <.L6>: 38a6: 83 im 3 38a7: e0 im -32 38a8: 8c im 12 38a9: 08 load 38aa: fc im -4 38ab: 05 add 38ac: 08 load 38ad: 81 im 1 38ae: 2a lshiftright 38af: 83 im 3 38b0: e0 im -32 38b1: 8c im 12 38b2: 08 load 38b3: fc im -4 38b4: 05 add 38b5: 0c store 38b6: 83 im 3 38b7: e0 im -32 38b8: 8c im 12 38b9: 08 load 38ba: 8c im 12 38bb: 05 add 38bc: 08 load 38bd: 81 im 1 38be: 2a lshiftright 38bf: 83 im 3 38c0: e0 im -32 38c1: 8c im 12 38c2: 08 load 38c3: 8c im 12 38c4: 05 add 38c5: 0c store 38c6: ff im -1 38c7: 95 im 21 38c8: 39 poppcrel 000038c9 <.L5>: 38c9: 83 im 3 38ca: e0 im -32 38cb: 8c im 12 38cc: 08 load 38cd: 90 im 16 38ce: 05 add 38cf: 08 load 38d0: 80 im 0 38d1: 2e eq 38d2: 93 im 19 38d3: 38 neqbranch 38d4: 83 im 3 38d5: e0 im -32 38d6: 8c im 12 38d7: 08 load 38d8: 88 im 8 38d9: 05 add 38da: 08 load 38db: 70 loadsp 0 38dc: 83 im 3 38dd: e0 im -32 38de: 8c im 12 38df: 08 load 38e0: f4 im -12 38e1: 05 add 38e2: 0c store 38e3: 51 storesp 4 38e4: 91 im 17 38e5: 39 poppcrel 000038e6 <.L7>: 38e6: 83 im 3 38e7: e0 im -32 38e8: 8c im 12 38e9: 08 load 38ea: f8 im -8 38eb: 05 add 38ec: 08 load 38ed: 70 loadsp 0 38ee: 83 im 3 38ef: e0 im -32 38f0: 8c im 12 38f1: 08 load 38f2: f4 im -12 38f3: 05 add 38f4: 0c store 38f5: 51 storesp 4 000038f6 <.L1>: 38f6: 83 im 3 38f7: e0 im -32 38f8: 8c im 12 38f9: 08 load 38fa: f4 im -12 38fb: 05 add 38fc: 08 load 38fd: 83 im 3 38fe: e0 im -32 38ff: 80 im 0 3900: 0c store 3901: 85 im 5 3902: 3d pushspadd 3903: 0d popsp 3904: 83 im 3 3905: e0 im -32 3906: 8c im 12 3907: 0c store 3908: 04 poppc 00003909 <__mulsi3>: 3909: 83 im 3 390a: e0 im -32 390b: 8c im 12 390c: 08 load 390d: 02 pushsp 390e: 83 im 3 390f: e0 im -32 3910: 8c im 12 3911: 0c store 3912: ff im -1 3913: 3d pushspadd 3914: 0d popsp 3915: 80 im 0 3916: 0b nop 3917: 83 im 3 3918: e0 im -32 3919: 8c im 12 391a: 08 load 391b: fc im -4 391c: 05 add 391d: 0c store 0000391e <.L2>: 391e: 83 im 3 391f: e0 im -32 3920: 8c im 12 3921: 08 load 3922: 88 im 8 3923: 05 add 3924: 08 load 3925: 81 im 1 3926: 06 and 3927: ff im -1 3928: 11 addsp 4 3929: 70 loadsp 0 392a: 09 not 392b: 70 loadsp 0 392c: 83 im 3 392d: e0 im -32 392e: 8c im 12 392f: 08 load 3930: 8c im 12 3931: 05 add 3932: 08 load 3933: 06 and 3934: 83 im 3 3935: e0 im -32 3936: 8c im 12 3937: 08 load 3938: fc im -4 3939: 05 add 393a: 08 load 393b: 11 addsp 4 393c: 83 im 3 393d: e0 im -32 393e: 8c im 12 393f: 08 load 3940: fc im -4 3941: 05 add 3942: 0c store 3943: 83 im 3 3944: e0 im -32 3945: 8c im 12 3946: 08 load 3947: 88 im 8 3948: 05 add 3949: 08 load 394a: 81 im 1 394b: 2a lshiftright 394c: 83 im 3 394d: e0 im -32 394e: 8c im 12 394f: 08 load 3950: 88 im 8 3951: 05 add 3952: 0c store 3953: 83 im 3 3954: e0 im -32 3955: 8c im 12 3956: 08 load 3957: 8c im 12 3958: 05 add 3959: 08 load 395a: 10 addsp 0 395b: 83 im 3 395c: e0 im -32 395d: 8c im 12 395e: 08 load 395f: 8c im 12 3960: 05 add 3961: 0c store 3962: 51 storesp 4 3963: 51 storesp 4 3964: 51 storesp 4 3965: 51 storesp 4 3966: 83 im 3 3967: e0 im -32 3968: 8c im 12 3969: 08 load 396a: 88 im 8 396b: 05 add 396c: 08 load 396d: 80 im 0 396e: 2e eq 396f: 84 im 4 3970: 38 neqbranch 3971: ff im -1 3972: ab im 43 3973: 39 poppcrel 00003974 <.L3>: 3974: 83 im 3 3975: e0 im -32 3976: 8c im 12 3977: 08 load 3978: fc im -4 3979: 05 add 397a: 08 load 397b: 70 loadsp 0 397c: 83 im 3 397d: e0 im -32 397e: 80 im 0 397f: 0c store 3980: 51 storesp 4 3981: 83 im 3 3982: 3d pushspadd 3983: 0d popsp 3984: 83 im 3 3985: e0 im -32 3986: 8c im 12 3987: 0c store 3988: 04 poppc 00003989 : 3989: fc im -4 398a: 3d pushspadd 398b: 0d popsp 398c: 76 loadsp 24 0000398d <.LM2>: 398d: 70 loadsp 0 0000398e <.LM3>: 398e: 79 loadsp 36 0000398f <.LM4>: 398f: 7b loadsp 44 3990: 55 storesp 20 3991: 55 storesp 20 3992: 55 storesp 20 3993: 55 storesp 20 00003994 <.LM5>: 3994: 8f im 15 3995: 72 loadsp 8 3996: 27 ulessthanorequal 3997: 8c im 12 3998: 38 neqbranch 3999: 72 loadsp 8 399a: 75 loadsp 20 399b: 07 or 399c: 83 im 3 399d: 06 and 399e: 51 storesp 4 399f: 70 loadsp 0 39a0: 80 im 0 39a1: 2e eq 39a2: a9 im 41 39a3: 38 neqbranch 000039a4 <.L2>: 39a4: ff im -1 39a5: 12 addsp 8 39a6: 52 storesp 8 39a7: 71 loadsp 4 39a8: ff im -1 39a9: 2e eq 39aa: 98 im 24 39ab: 38 neqbranch 000039ac <.L21>: 39ac: 72 loadsp 8 39ad: 70 loadsp 0 39ae: 81 im 1 39af: 05 add 39b0: 54 storesp 16 39b1: 33 loadb 39b2: 74 loadsp 16 39b3: 70 loadsp 0 39b4: 81 im 1 39b5: 05 add 39b6: 56 storesp 24 39b7: 34 storeb 39b8: ff im -1 39b9: 12 addsp 8 39ba: 52 storesp 8 39bb: 71 loadsp 4 39bc: ff im -1 39bd: 2e eq 39be: 09 not 39bf: 81 im 1 39c0: 06 and 39c1: ea im -22 39c2: 38 neqbranch 000039c3 <.L17>: 39c3: 74 loadsp 16 39c4: 83 im 3 39c5: e0 im -32 39c6: 80 im 0 39c7: 0c store 39c8: 86 im 6 39c9: 3d pushspadd 39ca: 0d popsp 39cb: 04 poppc 000039cc <.L20>: 39cc: 74 loadsp 16 39cd: 51 storesp 4 000039ce <.L5>: 39ce: 72 loadsp 8 39cf: 70 loadsp 0 39d0: 84 im 4 39d1: 05 add 39d2: 54 storesp 16 39d3: 08 load 39d4: 71 loadsp 4 39d5: 70 loadsp 0 39d6: 84 im 4 39d7: 05 add 39d8: 53 storesp 12 39d9: 0c store 000039da <.LM10>: 39da: 72 loadsp 8 39db: 70 loadsp 0 39dc: 84 im 4 39dd: 05 add 39de: 54 storesp 16 39df: 08 load 39e0: 71 loadsp 4 39e1: 70 loadsp 0 39e2: 84 im 4 39e3: 05 add 39e4: 53 storesp 12 39e5: 0c store 000039e6 <.LM11>: 39e6: 72 loadsp 8 39e7: 70 loadsp 0 39e8: 84 im 4 39e9: 05 add 39ea: 54 storesp 16 39eb: 08 load 39ec: 71 loadsp 4 39ed: 70 loadsp 0 39ee: 84 im 4 39ef: 05 add 39f0: 53 storesp 12 39f1: 0c store 000039f2 <.LM12>: 39f2: 72 loadsp 8 39f3: 70 loadsp 0 39f4: 84 im 4 39f5: 05 add 39f6: 54 storesp 16 39f7: 08 load 39f8: 71 loadsp 4 39f9: 70 loadsp 0 39fa: 84 im 4 39fb: 05 add 39fc: 53 storesp 12 39fd: 0c store 000039fe <.LM13>: 39fe: f0 im -16 39ff: 12 addsp 8 3a00: 52 storesp 8 3a01: 71 loadsp 4 3a02: 8f im 15 3a03: 26 ulessthan 3a04: c9 im -55 3a05: 38 neqbranch 00003a06 <.LM14>: 3a06: 83 im 3 3a07: 72 loadsp 8 3a08: 27 ulessthanorequal 3a09: 95 im 21 3a0a: 38 neqbranch 00003a0b <.L22>: 3a0b: 72 loadsp 8 3a0c: 70 loadsp 0 3a0d: 84 im 4 3a0e: 05 add 3a0f: 54 storesp 16 3a10: 08 load 3a11: 71 loadsp 4 3a12: 70 loadsp 0 3a13: 84 im 4 3a14: 05 add 3a15: 53 storesp 12 3a16: 0c store 00003a17 <.LM16>: 3a17: fc im -4 3a18: 12 addsp 8 3a19: 52 storesp 8 3a1a: 71 loadsp 4 3a1b: 83 im 3 3a1c: 26 ulessthan 3a1d: ed im -19 3a1e: 38 neqbranch 00003a1f <.L15>: 3a1f: 70 loadsp 0 3a20: 54 storesp 16 3a21: ff im -1 3a22: 81 im 1 3a23: 39 poppcrel