# HG changeset patch # User Michael Spacefalcon # Date 1395904061 0 # Node ID 8b15a0969c9e0e486bcc35530c2a3558c0cd6f0d # Parent 3dfecd91c5b039b858556d26787b0ee31bd3f732 beginning of C139 boot ROM re diff -r 3dfecd91c5b0 -r 8b15a0969c9e compal/c139-boot.90.04.bin Binary file compal/c139-boot.90.04.bin has changed diff -r 3dfecd91c5b0 -r 8b15a0969c9e compal/c139-boot.disasm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compal/c139-boot.disasm Thu Mar 27 07:07:41 2014 +0000 @@ -0,0 +1,120 @@ +RESET entry and exception vectors: + 0: ea000225 b 0x89c + 4: ea000825 b 0x20a0 + 8: ea000825 b 0x20a4 + c: ea000825 b 0x20a8 + 10: ea000825 b 0x20ac + 14: ea000825 b 0x20b0 + 18: ea000825 b 0x20b4 + 1c: ea000825 b 0x20b8 + +; some magic words? + 20: 444efc57 + 24: 444efc58 + 28: 444efc86 + 2c: 444efc87 + +<30-7FF: all FFs> + +00000800: 42 4F 4F 54 2E 39 30 2E 30 34 00 00 00 00 00 00 BOOT.90.04...... +00000810: 31 30 30 33 01 01 00 00 FF FF FF FF FF FF FF FF 1003............ +00000820: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ + + 830: 00000006 + ... + 83c: 00000048 + 840: 00000044 + 844: 00000052 + 848: 0000001b + 84c: 00000005 + ... + 860: 000000fa + 864: ffff5800 + 868: ffff5000 + 86c: fffffb00 + 870: 02a1 + 872: 02a1 + 874: 02a1 + 876: 0283 + 878: 0281 + 87a: 00c0 + 87c: 0040 + 87e: 002a + 880: 0040 + 882: 0000 + 884: fffffd00 + 888: ffff9800 + 88c: fffffb10 + 890: ffffff08 + 894: 20061081 + 898: 00000800 + +; RESET entry point + 89c: e51f1020 ldr r1, [pc, #-32] ; 0x884 + 8a0: e1d120b2 ldrh r2, [r1, #2] + 8a4: e51f002c ldr r0, [pc, #-44] ; 0x880 + 8a8: e1800002 orr r0, r0, r2 + 8ac: e1c100b2 strh r0, [r1, #2] + 8b0: e51f1030 ldr r1, [pc, #-48] ; 0x888 + 8b4: e15f22b6 ldrh r2, [pc, #-38] ; 0x896 + 8b8: e1c120b0 strh r2, [r1] + 8bc: e5912000 ldr r2, [r1] + 8c0: e2022001 and r2, r2, #1 ; 0x1 + 8c4: e3520001 cmp r2, #1 ; 0x1 + 8c8: 0afffffb beq 0x8bc + 8cc: e51f1050 ldr r1, [pc, #-80] ; 0x884 + 8d0: e15f24b4 ldrh r2, [pc, #-68] ; 0x894 + 8d4: e1c120b0 strh r2, [r1] + 8d8: e51f1054 ldr r1, [pc, #-84] ; 0x88c + 8dc: e15f24bc ldrh r2, [pc, #-76] ; 0x898 + 8e0: e1d100b0 ldrh r0, [r1] + 8e4: e1800002 orr r0, r0, r2 + 8e8: e1c100b0 strh r0, [r1] + 8ec: e51f1064 ldr r1, [pc, #-100] ; 0x890 + 8f0: e15f25be ldrh r2, [pc, #-94] ; 0x89a + 8f4: e1c120b0 strh r2, [r1] + 8f8: e51f1094 ldr r1, [pc, #-148] ; 0x86c + 8fc: e15f29b4 ldrh r2, [pc, #-148] ; 0x870 + 900: e1c120b0 strh r2, [r1] + 904: e15f29ba ldrh r2, [pc, #-154] ; 0x872 + 908: e1c120b2 strh r2, [r1, #2] + 90c: e15f2ab0 ldrh r2, [pc, #-160] ; 0x874 + 910: e1c120b4 strh r2, [r1, #4] + 914: e15f2ab6 ldrh r2, [pc, #-166] ; 0x876 + 918: e1c120b6 strh r2, [r1, #6] + 91c: e15f2abc ldrh r2, [pc, #-172] ; 0x878 + 920: e1c120ba strh r2, [r1, #10] + 924: e15f2bb2 ldrh r2, [pc, #-178] ; 0x87a + 928: e1c120bc strh r2, [r1, #12] + 92c: e15f2bb8 ldrh r2, [pc, #-184] ; 0x87c + 930: e1c120b8 strh r2, [r1, #8] + 934: e15f2bbe ldrh r2, [pc, #-190] ; 0x87e + 938: e1c120be strh r2, [r1, #14] + 93c: e59f0020 ldr r0, [pc, #32] ; 0x964 + 940: e3a01b01 mov r1, #1024 ; 0x400 + 944: e2411004 sub r1, r1, #4 ; 0x4 + 948: e0802001 add r2, r0, r1 + 94c: e3c22003 bic r2, r2, #3 ; 0x3 + 950: e1a0d002 mov sp, r2 + 954: e92d100f stmdb sp!, {r0, r1, r2, r3, r12} + 958: eb000534 bl 0x1e30 + 95c: e8bd100f ldmia sp!, {r0, r1, r2, r3, r12} + 960: ea0005e4 b 0x20f8 + + 964: 0083e574 + +<968-1E2F: not yet analyzed> + + 1e30: e92d4000 stmdb sp!, {lr} + 1e34: e28fe001 add lr, pc, #1 ; 0x1 + 1e38: e12fff1e bx lr + 1e3c: fe49f7fe bl 0xad2 + 1e40: 4778 bx pc + 1e42: 46c0 nop (mov r8, r8) + 1e44: e8bd8000 ldmia sp!, {pc} + +<1E48-1EFF: all FFs> + + 1f00: 00000001 + +<1F04-end: all FFs>