Permalink
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
8321 lines (7986 sloc) 542 KB
;;
;; This is the disassembled 3B2 Model 400 ROM. I'm attempting to trace it to
;; the best of my ability to understand what the 3B2 does at startup.
;;
;; Disassembled with:
;;
;; we32dis.rb -s 0x1274 -i 400_full.bin > disassembled.txt
;;
;;; Strings
628: "SBD"
62c: "\nEnter name of program to execute [ %s ]: "
659: "passwd"
660: "\nenter old password: "
676: "\nenter new password: "
68c: "\nconfirmation: "
69c: "\n"
69e: "newkey"
6a5: "\nCreating a floppy key to enable clearing of saved NVRAM information.\n\n"
6ec: "go"
6ef: "Insert a formatted floppy, then type 'go' (q to quit): "
727: "\nCreation of floppy key complete\n\n"
74a: "sysdump"
752: "version"
75a: "\nCreated: %s\n"
768: "Issue: %08lx\n"
776: "Release: %s\nLoad: %s\n"
78c: "Serial Number: %08lx\n\n"
7a3: "q"
7a5: "edt"
7a9: "error info"
7b4: "baud"
7b9: "?"
7bb: "Enter an executable or system file, a directory name,\n"
7f3: "or one of the possible firmware program names:\n\n"
824: "baud edt newkey passwd sysdump version q(uit)\n\n"
866: "*VOID*"
86d: "\tPossible load devices are:\n\n"
88b: "Option Number Slot Name\n"
8ab: "---------------------------------------\n"
8d4: " %2d %2d"
8ea: "*VOID*"
8f1: " %10s\n"
8fd: "\nEnter Load Device Option Number "
91f: "[%d"
923: "*VOID*"
92a: " (%s)"
930: "]: "
936: "\n%s is not a valid option number.\n"
959: "Possible subdevices are:\n\n"
974: "Option Number Subdevice Name\n"
997: "--------------------------------------------\n"
;;; Exception Vector Table
;;; ----------------------
;;;
;;; Normal Exception Vector = 0x00000548 which points to 0x421F
;;;
;;; Interrupt Vector Table Pointers
;;; -------------------------------
;;;
;;; NMI Interrupt Handler
;;;
;;; 0x8C = 02000bc8
;;;
;;; Auto Vector Interrupts
;;;
;;; 0x090: 02000bc8
;;; 0x094: 02000bc8
;;; 0x098: 02000bc8
;;; 0x09C: 02000bc8
;;; 0x0A0: 02000bc8
;;; 0x0A4: 02000bc8
;;; 0x0A8: 02000bc8
;;; 0x0AC: 02000c18
;;; 0x0B0: 02000c68
;;; 0x0B4: 02000cb8
;;; 0x0B8: 02000d08
;;; 0x0BC: 02000d58
;;; 0x0C0: 0x200da8
;;; 0x0C4: 0x200da8
;;; 0x0C8: 0x200e48
;;; 0x0CC: 0x200bc8
;;; 0x0D0: 0x200bc8
;;; ... [same] ...
;;; 0x104: 0x200bc8
;;; 0x108: 0x200bc8
;;;
;;; Device Interrupt Handlers
;;;
;;; 0x10c: 0x200bc8
;;; 0x110: 0x200bc8
;;; ... [same] ...
;;; 0x484: 0x200bc8
;;; 0x488: 0x200bc8
;;;
;;;
;;; In all, there are 8 distinct interrupt PCBPs:
;;;
;;; 02000bc8
;;; 02000c18
;;; 02000c68
;;; 02000d08
;;; 02000cb8
;;; 02000d58
;;; 02000da8
;;; 02000e48
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Reset entry point. We start running here at power-up.
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Set up the stack pointer, frame pointer, argument pointer,
;; and the interrupt stack pointer.
00001274: 04 7f 08 00 00 02 4c MOVAW $0x2000008,%sp
0000127b: 04 7f 08 00 00 02 49 MOVAW $0x2000008,%fp
00001282: 04 7f 08 00 00 02 4a MOVAW $0x2000008,%ap
00001289: 04 7f 08 08 00 02 4e MOVAW $0x2000808,%isp
;; Next we set some timers. These commands write to the 8253 programmable
;; timer chip and configure Counter 0 and Counter 2. It is as yet unknown what
;; these timers are used for or what they're connected to.
;; Send 0x16 to the command register of the 8253.
;; BCD=0, M=011, RL=01, SC=00
;; This selects counter 0, sets Read/Load to "Lest significant byte only",
;; and sets mode to "Mode 3" (Square Wave generator)
00001290: 87 16 7f 0f 20 04 00 MOVB &0x16,$0x4200f
00001297: 70 NOP
;; Put 0x64 (SITINIT in firmware.h) into Counter 0
00001298: 87 6f 64 7f 03 20 04 00 MOVB &0x64,$0x42003
000012a0: 70 NOP
;; Send 0x94 to the command register of the 8253.
;; BCD=0, M=010, RL=01, SC=10
;; This selects counter 2, sets Read/Load to "Least significant byte only",
;; and sets mode to "Mode 2" (Rate generator)
000012a1: 87 5f 94 00 7f 0f 20 04 00 MOVB &0x94,$0x4200f
000012aa: 70 NOP
;; Puts 0xa into Counter 2
000012ab: 87 0a 7f 0b 20 04 00 MOVB &0xa,$0x4200b
000012b2: 70 NOP
;; Send 0x74 to the command register of the 8253.
;; BCD=0, M=010, RL=11, SC=01
;; Select counter 1, sets Read/Load to "Least, then most SB",
;; then sets mode to "Mode 2" (Rate generator)
000012b3: 87 6f 74 7f 0f 20 04 00 MOVB &0x74,$0x4200f
000012bb: 70 NOP
;; ... but oddly, we don't seem to do anything with timer 1, we just let it
;; sit there without loading any data into it, so its period is unknown.
;; Counter 1 (0x42007) is unused in the rest of the ROM!
;; Unconditional jump to 0x12d5 -- basically we skip the next block
000012bc: 24 7f d5 12 00 00 JMP $0x12d5
000012c2: 70 NOP
000012c3: 70 NOP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Unknown Entry Point. Who jumps here?
000012c4: 10 43 SAVE %r3
000012c6: 9c 4f 08 00 00 00 4c ADDW2 &0x8,%sp
000012cd: 87 01 7f 1b 40 04 00 MOVB &0x1,$0x4401b
000012d4: 70 NOP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Unknown Entry Point, but my current guess is that this is some
;; kind of sanity check or power-on self-test of the CPU.
;;
;;
;; Set the PSW's NZCV flags to all '0's, leaving the rest of the PSW
;; unaffected.
;;
000012d5: 70 NOP
000012d6: 84 4b 40 MOVW %psw,%r0
000012d9: b8 4f ff ff c3 ff 40 ANDW2 &0xffc3ffff,%r0
000012e0: 84 40 4b MOVW %r0,%psw
;;
;; Branches based on the state of the PSW after clearing
;; the NZCV bits. In short, each check looks to see if one
;; of the bits is set when it should not be set. If they
;; are, we jump to 0x1923. If not, we branch to the next
;; check.
;;
;; If (Z == 0), branch to 0x12e8
000012e3: 77 05 BNEB &0x5 <0x12e8>
;; No, branch to 0x1923
000012e5: 7a 3e 06 BRH &0x63e <0x1923>
;; If ((N|Z) == 0), branch to 0x12ed
000012e8: 47 05 BGB &0x5 <0x12ed>
;; No, branch to 0x1923
000012ea: 7a 39 06 BRH &0x639 <0x1923>
;; If ((N == 0)|(Z == 1)), branch to 0x12f2
000012ed: 43 05 BGEB &0x5 <0x12f2>
;; No, branch to 0x1923
000012ef: 7a 34 06 BRH &0x634 <0x1923>
;; If ((C|Z) == 0), branch to 0x12f7
000012f2: 57 05 BGUB &0x5 <0x12f7>
;; No, branch to 0x1923
000012f4: 7a 2f 06 BRH &0x62f <0x1923>
;; If (C == 0) branch to 0x12fc
000012f7: 53 05 BGEUB &0x5 <0x12fc>
;; No, branch to 0x1923
000012f9: 7a 2a 06 BRH &0x62a <0x1923>
;; if (C == 0) branch to 0x12fc
;; Why are we repeating this check?
000012fc: 53 05 BGEUB &0x5 <0x1301>
;; No, branch to 0x1923
000012fe: 7a 25 06 BRH &0x625 <0x1923>
;; if (V == 0) branch to 0x1306
00001301: 63 05 BVCB &0x5 <0x1306>
;; No, branch to 0x1923
;; We've fallen through.
;; Now we set the PSW's NZCV flags to all 1's.
00001303: 7a 20 06 BRH &0x620 <0x1923>
00001306: 70 NOP
00001307: 84 4b 40 MOVW %psw,%r0
0000130a: b0 4f 00 00 3c 00 40 ORW2 &0x3c0000,%r0
00001311: 84 40 4b MOVW %r0,%psw
;;
;; Now we do another check of the flags, very similar to
;; the behavior above. Each check looks to see if a flag
;; is clear when it should not be clear.
;;
;; If (Z == 1), branch to 0x1319
00001314: 7f 05 BEB &0x5 <0x1319>
;; No, branch to 0x1923
00001316: 7a 0d 06 BRH &0x60d <0x1923>
;; If ((N|Z) == 1), branch to 0x131e
00001319: 4f 05 BLEB &0x5 <0x131e>
;; No, branch to 0x1923
0000131b: 7a 08 06 BRH &0x608 <0x1923>
;; If ((N == 0) | (Z == 1)), branch to 0x1323
0000131e: 43 05 BGEB &0x5 <0x1323>
;; No, branch to 0x1923
00001320: 7a 03 06 BRH &0x603 <0x1923>
;; If ((C|Z) == 1), branch to 0x1328
00001323: 5f 05 BLEUB &0x5 <0x1328>
;; No, branch to 0x1923
00001325: 7a fe 05 BRH &0x5fe <0x1923>
;; If (C == 1), branch to 0x132d
00001328: 5b 05 BLUB &0x5 <0x132d>
;; No, branch to 0x1923
0000132a: 7a f9 05 BRH &0x5f9 <0x1923>
;; If (C == 1), branch to 0x1332.
;; Again, we repeat a check -- why?
0000132d: 5b 05 BLUB &0x5 <0x1332>
;; No, branch to 0x1923
0000132f: 7a f4 05 BRH &0x5f4 <0x1923>
;; If (V == 1), branch to 0x1337
00001332: 6b 05 BVSB &0x5 <0x1337>
;; No, branch to 0x1923
00001334: 7a ef 05 BRH &0x5ef <0x1923>
;; We've fallen through.
;; Time for some more self-testing!
00001337: 70 NOP
00001338: 84 4b 40 MOVW %psw,%r0
0000133b: b8 4f ff ff c3 ff 40 ANDW2 &0xffc3ffff,%r0
00001342: b0 4f 00 00 10 00 40 ORW2 &0x100000,%r0
00001349: 84 40 4b MOVW %r0,%psw
0000134c: 43 05 BGEB &0x5 <0x1351>
0000134e: 7a d5 05 BRH &0x5d5 <0x1923>
00001351: 70 NOP
00001352: 84 4b 40 MOVW %psw,%r0
00001355: b8 4f ff ff c3 ff 40 ANDW2 &0xffc3ffff,%r0
0000135c: b0 4f 00 00 04 00 40 ORW2 &0x40000,%r0
00001363: 84 40 4b MOVW %r0,%psw
00001366: 5e 06 00 BLEUH &0x6 <0x136c>
00001369: 7a ba 05 BRH &0x5ba <0x1923>
0000136c: 70 NOP
0000136d: 84 4b 40 MOVW %psw,%r0
00001370: b8 4f ff ff c3 ff 40 ANDW2 &0xffc3ffff,%r0
00001377: b0 4f 00 00 20 00 40 ORW2 &0x200000,%r0
0000137e: 84 40 4b MOVW %r0,%psw
00001381: 4b 05 BLB &0x5 <0x1386>
00001383: 7a a0 05 BRH &0x5a0 <0x1923>
;; Put 0xff into R0, then rotate it through R1-R8
00001386: 84 ff 40 MOVW &-1,%r0
00001389: 84 40 41 MOVW %r0,%r1
0000138c: 84 41 42 MOVW %r1,%r2
0000138f: 84 42 43 MOVW %r2,%r3
00001392: 84 43 44 MOVW %r3,%r4
00001395: 84 44 45 MOVW %r4,%r5
00001398: 84 45 46 MOVW %r5,%r6
0000139b: 84 46 47 MOVW %r6,%r7
0000139e: 84 47 48 MOVW %r7,%r8
000013a1: 3c 40 48 CMPW %r0,%r8
;; If R0 != R8, fail.
000013a4: 76 7f 05 BNEH &0x57f <0x1923>
;; Success. Now left-shift R0 by 1, store in R0
000013a7: d0 01 40 40 LLSW3 &0x1,%r0,%r0
;; Is zero flag set?
000013ab: 43 04 BGEB &0x4 <0x13af>
;; No, it's not, jump back and keep left-shifting until it is.
000013ad: 7b dc BRB &0xdc <0x1389>
;; Next check:
000013af: 84 fe 40 MOVW &-2,%r0
000013b2: 88 40 41 MCOMW %r0,%r1
000013b5: 88 41 42 MCOMW %r1,%r2
000013b8: 88 42 43 MCOMW %r2,%r3
000013bb: 88 43 44 MCOMW %r3,%r4
000013be: 88 44 45 MCOMW %r4,%r5
000013c1: 88 45 46 MCOMW %r5,%r6
000013c4: 88 46 47 MCOMW %r6,%r7
000013c7: 88 47 48 MCOMW %r7,%r8
000013ca: 88 40 48 MCOMW %r0,%r8
000013cd: 88 41 47 MCOMW %r1,%r7
000013d0: 88 42 46 MCOMW %r2,%r6
000013d3: 88 43 45 MCOMW %r3,%r5
000013d6: 88 48 41 MCOMW %r8,%r1
000013d9: 88 47 42 MCOMW %r7,%r2
000013dc: 88 46 43 MCOMW %r6,%r3
000013df: 88 44 40 MCOMW %r4,%r0
000013e2: 88 41 44 MCOMW %r1,%r4
000013e5: 3c 40 48 CMPW %r0,%r8
000013e8: 76 3b 05 BNEH &0x53b <0x1923>
000013eb: d0 01 40 40 LLSW3 &0x1,%r0,%r0
000013ef: 4b 07 BLB &0x7 <0x13f6>
000013f1: 88 40 40 MCOMW %r0,%r0
000013f4: 7b be BRB &0xbe <0x13b2>
000013f6: 84 49 41 MOVW %fp,%r1
000013f9: 84 4a 42 MOVW %ap,%r2
000013fc: 84 4c 43 MOVW %sp,%r3
000013ff: 84 4d 44 MOVW %pcbp,%r4
00001402: 84 4e 45 MOVW %isp,%r5
00001405: 84 ff 40 MOVW &-1,%r0
00001408: 84 40 49 MOVW %r0,%fp
0000140b: 84 49 4a MOVW %fp,%ap
0000140e: 84 4a 4c MOVW %ap,%sp
00001411: 84 4c 4d MOVW %sp,%pcbp
00001414: 84 4d 4e MOVW %pcbp,%isp
00001417: 3c 49 4e CMPW %fp,%isp
0000141a: 76 4c 00 BNEH &0x4c <0x1466>
0000141d: d0 01 40 40 LLSW3 &0x1,%r0,%r0
00001421: 43 04 BGEB &0x4 <0x1425>
00001423: 7b e5 BRB &0xe5 <0x1408>
00001425: 84 01 40 MOVW &0x1,%r0
00001428: 88 40 49 MCOMW %r0,%fp
0000142b: 88 49 4a MCOMW %fp,%ap
0000142e: 88 4a 4c MCOMW %ap,%sp
00001431: 88 4c 4d MCOMW %sp,%pcbp
00001434: 88 4d 4e MCOMW %pcbp,%isp
00001437: 88 49 4e MCOMW %fp,%isp
0000143a: 88 4a 4d MCOMW %ap,%pcbp
0000143d: 88 4c 49 MCOMW %sp,%fp
00001440: 88 4e 4a MCOMW %isp,%ap
00001443: 88 4d 4c MCOMW %pcbp,%sp
00001446: 3c 49 4e CMPW %fp,%isp
00001449: 76 1d 00 BNEH &0x1d <0x1466>
0000144c: d0 01 40 40 LLSW3 &0x1,%r0,%r0
00001450: 4b 04 BLB &0x4 <0x1454>
00001452: 7b d6 BRB &0xd6 <0x1428>
00001454: 84 41 49 MOVW %r1,%fp
00001457: 84 42 4a MOVW %r2,%ap
0000145a: 84 43 4c MOVW %r3,%sp
0000145d: 84 44 4d MOVW %r4,%pcbp
00001460: 84 45 4e MOVW %r5,%isp
00001463: 7a 15 00 BRH &0x15 <0x1478>
00001466: 84 41 49 MOVW %r1,%fp
00001469: 84 42 4a MOVW %r2,%ap
0000146c: 84 43 4c MOVW %r3,%sp
0000146f: 84 44 4d MOVW %r4,%pcbp
00001472: 84 45 4e MOVW %r5,%isp
00001475: 7a ae 04 BRH &0x4ae <0x1923>
;;; Here is where we checksum the ROM
00001478: 82 48 CLRH %r8
;;; We're going to read 7FEE bytes
0000147a: 84 5f ee 7f 45 MOVW &0x7fee,%r5
0000147f: 80 47 CLRW %r7
;; First jump to 14c0 to start the test...
00001481: 7b 3f BRB &0x3f <0x14c0>
;; While r5 < r7...
00001483: 86 e2 48 e0 40 MOVH {uhalf}%r8,{uword}%r0
00001488: 87 57 e2 41 MOVB (%r7),{uhalf}%r1
0000148c: ba 5f ff 00 41 ANDH2 &0xff,%r1
00001491: 86 e2 41 e0 41 MOVH {uhalf}%r1,{uword}%r1
00001496: 9c 41 40 ADDW2 %r1,%r0
00001499: 86 40 48 MOVH %r0,%r8
0000149c: 86 e2 48 e0 40 MOVH {uhalf}%r8,{uword}%r0
000014a1: d0 01 40 40 LLSW3 &0x1,%r0,%r0
000014a5: 86 e2 40 e0 40 MOVH {uhalf}%r0,{uword}%r0
000014aa: 86 e2 48 e0 41 MOVH {uhalf}%r8,{uword}%r1
000014af: d4 0f 41 41 LRSW3 &0xf,%r1,%r1
000014b3: 86 e2 41 e0 41 MOVH {uhalf}%r1,{uword}%r1
000014b8: b0 41 40 ORW2 %r1,%r0
000014bb: 86 40 48 MOVH %r0,%r8
000014be: 90 47 INCW %r7
000014c0: 3c 45 47 CMPW %r5,%r7
000014c3: 5b c0 BLUB &0xc0 <0x1483>
000014c5: 86 e2 48 e0 40 MOVH {uhalf}%r8,{uword}%r0
000014ca: 88 40 40 MCOMW %r0,%r0
000014cd: 86 40 48 MOVH %r0,%r8
000014d0: 86 e2 48 e0 40 MOVH {uhalf}%r8,{uword}%r0
000014d5: 87 57 e0 41 MOVB (%r7),{uword}%r1
000014d9: 87 c7 01 e0 42 MOVB 1(%r7),{uword}%r2
000014de: d0 08 42 42 LLSW3 &0x8,%r2,%r2
000014e2: b0 42 41 ORW2 %r2,%r1
000014e5: 3c 41 40 CMPW %r1,%r0
000014e8: 77 08 BNEB &0x8 <0x14f0>
;;; Skip additional tests
000014ea: 24 7f 6e 15 00 00 JMP $0x156e
;;; Some sort of additional ROM tests
000014f0: 86 e2 48 e0 40 MOVH {uhalf}%r8,{uword}%r0
000014f5: 88 40 40 MCOMW %r0,%r0
000014f8: 86 40 48 MOVH %r0,%r8
000014fb: 9c 4f 00 80 00 00 45 ADDW2 &0x8000,%r5
00001502: 7b 3f BRB &0x3f <0x1541>
00001504: 86 e2 48 e0 40 MOVH {uhalf}%r8,{uword}%r0
00001509: 87 57 e2 41 MOVB (%r7),{uhalf}%r1
0000150d: ba 5f ff 00 41 ANDH2 &0xff,%r1
00001512: 86 e2 41 e0 41 MOVH {uhalf}%r1,{uword}%r1
00001517: 9c 41 40 ADDW2 %r1,%r0
0000151a: 86 40 48 MOVH %r0,%r8
0000151d: 86 e2 48 e0 40 MOVH {uhalf}%r8,{uword}%r0
00001522: d0 01 40 40 LLSW3 &0x1,%r0,%r0
00001526: 86 e2 40 e0 40 MOVH {uhalf}%r0,{uword}%r0
0000152b: 86 e2 48 e0 41 MOVH {uhalf}%r8,{uword}%r1
00001530: d4 0f 41 41 LRSW3 &0xf,%r1,%r1
00001534: 86 e2 41 e0 41 MOVH {uhalf}%r1,{uword}%r1
00001539: b0 41 40 ORW2 %r1,%r0
0000153c: 86 40 48 MOVH %r0,%r8
0000153f: 90 47 INCW %r7
00001541: 3c 45 47 CMPW %r5,%r7
00001544: 5b c0 BLUB &0xc0 <0x1504>
00001546: 86 e2 48 e0 40 MOVH {uhalf}%r8,{uword}%r0
0000154b: 88 40 40 MCOMW %r0,%r0
0000154e: 86 40 48 MOVH %r0,%r8
00001551: 86 e2 48 e0 40 MOVH {uhalf}%r8,{uword}%r0
00001556: 87 57 e0 41 MOVB (%r7),{uword}%r1
0000155a: 87 c7 01 e0 42 MOVB 1(%r7),{uword}%r2
0000155f: d0 08 42 42 LLSW3 &0x8,%r2,%r2
00001563: b0 42 41 ORW2 %r2,%r1
00001566: 3c 41 40 CMPW %r1,%r0
00001569: 7f 05 BEB &0x5 <0x156e>
;;; Checksum failure (?)
0000156b: 7a c1 03 BRH &0x3c1 <0x192c>
;;; Checksum success (?)
0000156e: 3c 4f ed 0d 1c a1 7f 64 08 00 02 CMPW &0xa11c0ded,$0x2000864
00001579: 7f 15 BEB &0x15 <0x158e>
0000157b: 3c 4f 0d f0 ad 8b 7f 64 08 00 02 CMPW &0x8badf00d,$0x2000864
00001586: 7f 08 BEB &0x8 <0x158e>
00001588: 24 7f bc 16 00 00 JMP $0x16bc
0000158e: 2c 5c 7f 90 3b 00 00 CALL (%sp),$0x3b90
00001595: dc 01 7f a0 04 00 00 40 ADDW3 &0x1,$0x4a0,%r0
0000159d: 3f 02 50 CMPB &0x2,(%r0)
000015a0: 77 07 BNEB &0x7 <0x15a7>
000015a2: 84 01 40 MOVW &0x1,%r0
000015a5: 7b 04 BRB &0x4 <0x15a9>
000015a7: 80 40 CLRW %r0
000015a9: a0 40 PUSHW %r0
000015ab: 2c cc fc 7f 2c 73 00 00 CALL -4(%sp),$0x732c
000015b3: a0 00 PUSHW &0x0
000015b5: 2c cc fc 7f 8c 79 00 00 CALL -4(%sp),$0x798c
000015bd: 87 7f 00 d0 04 00 e0 45 MOVB $0x4d000,{uword}%r5
000015c5: 87 01 7f 1f 40 04 00 MOVB &0x1,$0x4401f
000015cc: 70 NOP
000015cd: 87 10 7f 0f 90 04 00 MOVB &0x10,$0x4900f
000015d4: 70 NOP
000015d5: 87 20 7f 0f 90 04 00 MOVB &0x20,$0x4900f
000015dc: 70 NOP
000015dd: 87 01 7f 68 08 00 02 MOVB &0x1,$0x2000868
000015e4: 70 NOP
000015e5: dc 02 7f a4 04 00 00 40 ADDW3 &0x2,$0x4a4,%r0
000015ed: 2b 50 TSTB (%r0)
000015ef: 7f 10 BEB &0x10 <0x15ff>
000015f1: 2c 5c 7f 72 5f 00 00 CALL (%sp),$0x5f72
000015f8: 2c 5c 7f 78 63 00 00 CALL (%sp),$0x6378
000015ff: dc 04 7f a4 04 00 00 40 ADDW3 &0x4,$0x4a4,%r0
00001607: 3f 01 50 CMPB &0x1,(%r0)
0000160a: 77 08 BNEB &0x8 <0x1612>
0000160c: 24 7f a0 16 00 00 JMP $0x16a0
00001612: 2c 5c 7f 72 5f 00 00 CALL (%sp),$0x5f72
00001619: a0 4f 0c 30 04 00 PUSHW &0x4300c
0000161f: dc 01 7f a0 04 00 00 40 ADDW3 &0x1,$0x4a0,%r0
00001627: a0 40 PUSHW %r0
00001629: a0 01 PUSHW &0x1
;; Read NVRAM
0000162b: 2c cc f4 7f 24 52 00 00 CALL -12(%sp),$0x5224
00001633: 28 40 TSTW %r0
00001635: 77 28 BNEB &0x28 <0x165d>
00001637: dc 01 7f a0 04 00 00 40 ADDW3 &0x1,$0x4a0,%r0
0000163f: 87 01 50 MOVB &0x1,(%r0)
00001642: 70 NOP
00001643: dc 01 7f a0 04 00 00 40 ADDW3 &0x1,$0x4a0,%r0
0000164b: a0 40 PUSHW %r0
0000164d: a0 4f 0c 30 04 00 PUSHW &0x4300c
00001653: a0 01 PUSHW &0x1
00001655: 2c cc f4 7f a0 52 00 00 CALL -12(%sp),$0x52a0
0000165d: 84 7f 64 08 00 02 59 MOVW $0x2000864,(%fp)
00001664: 70 NOP
00001665: 83 ef a0 04 00 00 CLRB *$0x4a0
0000166b: 70 NOP
0000166c: dc 02 7f a0 04 00 00 40 ADDW3 &0x2,$0x4a0,%r0
;; Copy string "/filledt" (to where?)
00001674: a0 40 PUSHW %r0
00001676: a0 4f c8 05 00 00 PUSHW &0x5c8
0000167c: 2c cc f8 7f b0 7f 00 00 CALL -8(%sp),$0x7fb0
00001684: 2c 5c 7f 70 69 00 00 CALL (%sp),$0x6970
0000168b: 3c 4f ef be ed fe 7f 64 08 00 02 CMPW &0xfeedbeef,$0x2000864
00001696: 7f 0a BEB &0xa <0x16a0>
00001698: 84 59 7f 64 08 00 02 MOVW (%fp),$0x2000864
0000169f: 70 NOP
000016a0: 3c 4f ed 0d 1c a1 7f 64 08 00 02 CMPW &0xa11c0ded,$0x2000864
000016ab: 77 0b BNEB &0xb <0x16b6>
000016ad: 2c 5c ef 58 08 00 02 CALL (%sp),*$0x2000858
000016b4: 7b 08 BRB &0x8 <0x16bc>
000016b6: 24 7f f0 65 00 00 JMP $0x65f0
000016bc: 3c 4f d0 f1 02 3b 7f 6c 08 00 02 CMPW &0x3b02f1d0,$0x200086c
000016c7: 7f 2a BEB &0x2a <0x16f1>
000016c9: 87 6f 70 7f 04 90 04 00 MOVB &0x70,$0x49004
000016d1: 70 NOP
000016d2: 87 6f 40 7f 06 90 04 00 MOVB &0x40,$0x49006
000016da: 70 NOP
000016db: 83 7f 07 90 04 00 CLRB $0x49007
000016e1: 70 NOP
000016e2: 87 04 7f 0d 90 04 00 MOVB &0x4,$0x4900d
000016e9: 70 NOP
000016ea: 80 7f 5c 08 00 02 CLRW $0x200085c
000016f0: 70 NOP
000016f1: 84 7f 64 08 00 02 45 MOVW $0x2000864,%r5
000016f8: 84 7f 6c 08 00 02 44 MOVW $0x200086c,%r4
000016ff: 84 7f 5c 08 00 02 43 MOVW $0x200085c,%r3
00001706: 84 4f 00 00 00 02 47 MOVW &0x2000000,%r7
0000170d: 84 4f 04 15 00 02 46 MOVW &0x2001504,%r6
00001714: 7b 4b BRB &0x4b <0x175f>
00001716: 87 5f ff 00 57 MOVB &0xff,(%r7)
0000171b: 70 NOP
0000171c: 3f 5f ff 00 57 CMPB &0xff,(%r7)
00001721: 7f 08 BEB &0x8 <0x1729>
00001723: 24 7f 35 19 00 00 JMP $0x1935
00001729: 87 5f aa 00 57 MOVB &0xaa,(%r7)
0000172e: 70 NOP
0000172f: 3f 5f aa 00 57 CMPB &0xaa,(%r7)
00001734: 7f 08 BEB &0x8 <0x173c>
00001736: 24 7f 35 19 00 00 JMP $0x1935
0000173c: 87 6f 55 57 MOVB &0x55,(%r7)
00001740: 70 NOP
00001741: 3f 6f 55 57 CMPB &0x55,(%r7)
00001745: 7f 08 BEB &0x8 <0x174d>
00001747: 24 7f 35 19 00 00 JMP $0x1935
0000174d: 83 57 CLRB (%r7)
0000174f: 70 NOP
00001750: 84 47 40 MOVW %r7,%r0
00001753: 90 47 INCW %r7
00001755: 2b 50 TSTB (%r0)
00001757: 7f 08 BEB &0x8 <0x175f>
00001759: 24 7f 35 19 00 00 JMP $0x1935
0000175f: 3c 46 47 CMPW %r6,%r7
00001762: 5b b4 BLUB &0xb4 <0x1716>
00001764: 3c 4f 00 40 00 02 47 CMPW &0x2004000,%r7
0000176b: 4b 04 BLB &0x4 <0x176f>
0000176d: 7b 40 BRB &0x40 <0x17ad>
0000176f: 3c 4f ef be ed fe 45 CMPW &0xfeedbeef,%r5
00001776: 7f 26 BEB &0x26 <0x179c>
00001778: 3c 4f d0 f1 02 3b 45 CMPW &0x3b02f1d0,%r5
0000177f: 7f 1d BEB &0x1d <0x179c>
00001781: 3c 4f 0d f0 ad 8b 45 CMPW &0x8badf00d,%r5
00001788: 7f 14 BEB &0x14 <0x179c>
0000178a: 3c 4f 1e ac eb ad 45 CMPW &0xadebac1e,%r5
00001791: 7f 0b BEB &0xb <0x179c>
00001793: 3c 4f ed 0d 1c a1 45 CMPW &0xa11c0ded,%r5
0000179a: 77 09 BNEB &0x9 <0x17a3>
0000179c: 84 4f 00 30 00 02 47 MOVW &0x2003000,%r7
000017a3: 84 4f 00 40 00 02 46 MOVW &0x2004000,%r6
000017aa: 7a 6a ff BRH &0xff6a <0x1714>
000017ad: 84 44 7f 6c 08 00 02 MOVW %r4,$0x200086c
000017b4: 70 NOP
000017b5: 84 45 7f 64 08 00 02 MOVW %r5,$0x2000864
000017bc: 70 NOP
000017bd: 84 43 7f 5c 08 00 02 MOVW %r3,$0x200085c
000017c4: 70 NOP
000017c5: 87 01 7f 68 08 00 02 MOVB &0x1,$0x2000868
000017cc: 70 NOP
000017cd: 82 48 CLRH %r8
;; Put $43800 into R5. This is the top of NVRAM, and the stopping
;; point for the upcoming block that clears NVRAM.
000017cf: 84 4f 00 38 04 00 45 MOVW &0x43800,%r5
;; Put $43000 into R7. This is the base of NVRAM.
000017d6: 84 4f 00 30 04 00 47 MOVW &0x43000,%r7
;;
000017dd: 7b 40 BRB &0x40 <0x181d>
000017df: 86 e2 48 e0 40 MOVH {uhalf}%r8,{uword}%r0
;; Read NVRAM address + 2 into R1
000017e4: 86 e2 c7 02 e0 41 MOVH {uhalf}2(%r7),{uword}%r1
;; Mask the low nybble of R1
000017ea: ba 0f 41 ANDH2 &0xf,%r1
;; Zero-extend the halfword into a word
000017ed: 86 e2 41 e0 41 MOVH {uhalf}%r1,{uword}%r1
;; Add R1 to R0, store in R0
000017f2: 9c 41 40 ADDW2 %r1,%r0
;; Move R0 to R8
000017f5: 86 40 48 MOVH %r0,%r8
000017f8: 86 e2 48 e0 40 MOVH {uhalf}%r8,{uword}%r0
;; Left-shift R0 by 1
000017fd: d0 01 40 40 LLSW3 &0x1,%r0,%r0
00001801: 86 e2 40 e0 40 MOVH {uhalf}%r0,{uword}%r0
00001806: 86 e2 48 e0 41 MOVH {uhalf}%r8,{uword}%r1
0000180b: d4 0f 41 41 LRSW3 &0xf,%r1,%r1
0000180f: 86 e2 41 e0 41 MOVH {uhalf}%r1,{uword}%r1
00001814: b0 41 40 ORW2 %r1,%r0
00001817: 86 40 48 MOVH %r0,%r8
;; Increment the address in R7 by 4 bytes
0000181a: 9c 04 47 ADDW2 &0x4,%r7
;; While R5 < R7, keep going
0000181d: 3c 45 47 CMPW %r5,%r7
00001820: 5b bf BLUB &0xbf <0x17df>
;; Now we do something odd with 43800, 43804, 43808, and 4380c. What
;; is this? Serial number structure of some kind?
00001822: 86 e2 48 e0 40 MOVH {uhalf}%r8,{uword}%r0
00001827: 88 40 40 MCOMW %r0,%r0
0000182a: 86 40 48 MOVH %r0,%r8
0000182d: 86 e2 48 e0 40 MOVH {uhalf}%r8,{uword}%r0
00001832: f8 0f 57 41 ANDW3 &0xf,(%r7),%r1
00001836: f8 0f c7 04 42 ANDW3 &0xf,4(%r7),%r2
0000183b: d0 04 42 42 LLSW3 &0x4,%r2,%r2
0000183f: b0 42 41 ORW2 %r2,%r1
00001842: f8 0f c7 08 42 ANDW3 &0xf,8(%r7),%r2
00001847: d0 08 42 42 LLSW3 &0x8,%r2,%r2
0000184b: b0 42 41 ORW2 %r2,%r1
0000184e: f8 0f c7 0c 42 ANDW3 &0xf,12(%r7),%r2
00001853: d0 0c 42 42 LLSW3 &0xc,%r2,%r2
00001857: b0 42 41 ORW2 %r2,%r1
0000185a: 3c 41 40 CMPW %r1,%r0
;; If R1 != R0, we clear out the NVRAM. Othwerise, jump to 191d
0000185d: 77 08 BNEB &0x8 <0x1865>
0000185f: 24 7f 1d 19 00 00 JMP $0x191d
;; Load the NVRAM base address into R7
00001865: 84 4f 00 30 04 00 47 MOVW &0x43000,%r7
0000186c: 7b 08 BRB &0x8 <0x1874>
;; Clear the NVRAM memory location stored in %r7
0000186e: 80 57 CLRW (%r7)
00001870: 70 NOP
;; Add 4 bytes to the address
00001871: 9c 04 47 ADDW2 &0x4,%r7
;; Is %r7 == %r5?
00001874: 3c 45 47 CMPW %r5,%r7
;; No, jump back and keep zeroing NVRAM.
00001877: 5b f7 BLUB &0xf7 <0x186e>
;; Yes, we're done.
;; Store 01 in $43060
00001879: 84 01 7f 60 30 04 00 MOVW &0x1,$0x43060
00001880: 70 NOP
;; Store 00 in $43064
00001881: 80 7f 64 30 04 00 CLRW $0x43064
00001887: 70 NOP
00001888: 82 48 CLRH %r8
0000188a: 84 4f 00 30 04 00 47 MOVW &0x43000,%r7
00001891: 7b 40 BRB &0x40 <0x18d1>
00001893: 86 e2 48 e0 40 MOVH {uhalf}%r8,{uword}%r0
00001898: 86 e2 c7 02 e0 41 MOVH {uhalf}2(%r7),{uword}%r1
0000189e: ba 0f 41 ANDH2 &0xf,%r1
000018a1: 86 e2 41 e0 41 MOVH {uhalf}%r1,{uword}%r1
000018a6: 9c 41 40 ADDW2 %r1,%r0
000018a9: 86 40 48 MOVH %r0,%r8
000018ac: 86 e2 48 e0 40 MOVH {uhalf}%r8,{uword}%r0
000018b1: d0 01 40 40 LLSW3 &0x1,%r0,%r0
000018b5: 86 e2 40 e0 40 MOVH {uhalf}%r0,{uword}%r0
000018ba: 86 e2 48 e0 41 MOVH {uhalf}%r8,{uword}%r1
000018bf: d4 0f 41 41 LRSW3 &0xf,%r1,%r1
000018c3: 86 e2 41 e0 41 MOVH {uhalf}%r1,{uword}%r1
000018c8: b0 41 40 ORW2 %r1,%r0
000018cb: 86 40 48 MOVH %r0,%r8
000018ce: 9c 04 47 ADDW2 &0x4,%r7
000018d1: 3c 45 47 CMPW %r5,%r7
000018d4: 5b bf BLUB &0xbf <0x1893>
000018d6: 86 e2 48 e0 40 MOVH {uhalf}%r8,{uword}%r0
000018db: 88 40 40 MCOMW %r0,%r0
000018de: 86 40 48 MOVH %r0,%r8
000018e1: 86 e2 48 e0 57 MOVH {uhalf}%r8,{uword}(%r7)
000018e6: 70 NOP
000018e7: 86 e2 48 e0 40 MOVH {uhalf}%r8,{uword}%r0
000018ec: d4 04 40 40 LRSW3 &0x4,%r0,%r0
000018f0: 84 40 c7 04 MOVW %r0,4(%r7)
000018f4: 70 NOP
000018f5: 86 e2 48 e0 40 MOVH {uhalf}%r8,{uword}%r0
000018fa: d4 08 40 40 LRSW3 &0x8,%r0,%r0
000018fe: 84 40 c7 08 MOVW %r0,8(%r7)
00001902: 70 NOP
00001903: 86 e2 48 e0 40 MOVH {uhalf}%r8,{uword}%r0
00001908: d4 0c 40 40 LRSW3 &0xc,%r0,%r0
0000190c: 84 40 c7 0c MOVW %r0,12(%r7)
00001910: 70 NOP
00001911: b0 4f 00 00 00 20 7f 5c 08 00 02 ORW2 &0x20000000,$0x200085c
0000191c: 70 NOP
;;
0000191d: 24 7f b1 21 00 00 JMP $0x21b1
;;
;; Test failure entry points, I think.
;;
;; Set %r4 based on the entry point. %r4 will be either: 2, 3, 4 or 5.
;;
;; Set %r4 to 2, then jump to 0x1941
00001923: 84 02 44 MOVW &0x2,%r4
00001926: 24 7f 41 19 00 00 JMP $0x1941
;; Set %r4 to 3, then jump to 0x1941
0000192c: 84 03 44 MOVW &0x3,%r4
0000192f: 24 7f 41 19 00 00 JMP $0x1941
;; Set %r4 to 4, then jump to 0x1941
00001935: 84 04 44 MOVW &0x4,%r4
00001938: 24 7f 41 19 00 00 JMP $0x1941
;; Set %r4 to 5, fall through to 0x1941
0000193e: 84 05 44 MOVW &0x5,%r4
;; Set 0x4900d to 0. This is 2681 UART.
00001941: 83 7f 0d 90 04 00 CLRB $0x4900d
00001947: 70 NOP
00001948: 87 08 7f 0f 90 04 00 MOVB &0x8,$0x4900f
0000194f: 70 NOP
;; 0x440?? == System Board Status register
00001950: 87 01 7f 17 40 04 00 MOVB &0x1,$0x44017
00001957: 70 NOP
00001958: 87 01 7f 03 40 04 00 MOVB &0x1,$0x44003
0000195f: 70 NOP
00001960: 80 45 CLRW %r5
00001962: 7b 32 BRB &0x32 <0x1994>
00001964: 80 43 CLRW %r3
00001966: 7b 04 BRB &0x4 <0x196a>
00001968: 90 43 INCW %r3
0000196a: 3c 4f 50 c3 00 00 43 CMPW &0xc350,%r3
00001971: 5f f7 BLEUB &0xf7 <0x1968>
00001973: 87 01 7f 13 40 04 00 MOVB &0x1,$0x44013
0000197a: 70 NOP
0000197b: 80 43 CLRW %r3
0000197d: 7b 04 BRB &0x4 <0x1981>
0000197f: 90 43 INCW %r3
00001981: 3c 4f 50 c3 00 00 43 CMPW &0xc350,%r3
00001988: 5f f7 BLEUB &0xf7 <0x197f>
;; Write to the CSR (what register?)
0000198a: 87 01 7f 17 40 04 00 MOVB &0x1,$0x44017
00001991: 70 NOP
00001992: 90 45 INCW %r5
00001994: 3c 44 45 CMPW %r4,%r5
00001997: 5b cd BLUB &0xcd <0x1964>
00001999: 3f 01 ef 10 05 00 00 CMPB &0x1,*$0x510
000019a0: 7f 2b BEB &0x2b <0x19cb>
000019a2: 3f 6f 64 7f 03 20 04 00 CMPB &0x64,$0x42003
;; If *0x42003 == 0x64, jump over the up-coming infinite loop...
000019aa: 7f 21 BEB &0x21 <0x19cb>
;; Otherwise, we're terminal. Set some state...
000019ac: 80 ef 8c 04 00 00 CLRW *$0x48c
000019b2: 70 NOP
000019b3: 80 ef 14 05 00 00 CLRW *$0x514
000019b9: 70 NOP
000019ba: 83 7f 0d 90 04 00 CLRB $0x4900d
000019c0: 70 NOP
000019c1: 87 04 7f 0e 90 04 00 MOVB &0x4,$0x4900e
000019c8: 70 NOP
;; ... and then die in an infinite loop (BRB 0)
000019c9: 7b 00 BRB &0x0 <0x19c9>
;; R3 = 0
000019cb: 80 43 CLRW %r3
;; Skip first increment, so R3 still = 0. Go to 19d1
000019cd: 7b 04 BRB &0x4 <0x19d1>
000019cf: 90 43 INCW %r3
;; Multiply R4 by 0xC350 (50000d) and store in R0.
000019d1: e8 4f 50 c3 00 00 44 40 MULW3 &0xc350,%r4,%r0
;; While R3 < R0, keep incremting R3.
000019d9: 3c 40 43 CMPW %r0,%r3
000019dc: 5f f3 BLEUB &0xf3 <0x19cf>
000019de: 24 7f 60 19 00 00 JMP $0x1960
;; OK, I don't actually see how any code can reach this point. The
;; unconditional jump above catches everything, and I don't see any
;; other branches to this location. Weird.
000019e4: 04 59 4c MOVAW (%fp),%sp
000019e7: 20 48 POPW %r8
000019e9: 20 47 POPW %r7
000019eb: 20 46 POPW %r6
000019ed: 20 45 POPW %r5
000019ef: 20 44 POPW %r4
000019f1: 20 43 POPW %r3
000019f3: 20 49 POPW %fp
000019f5: 08 RET
000019f6: 70 NOP
000019f7: 70 NOP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Unknown Routine - in fact, nothing calls this code! It looks unreachable.
;;
000019f8: 10 43 SAVE %r3
000019fa: 9c 4f 00 00 00 00 4c ADDW2 &0x0,%sp
;; Jump point from 0x25d3
00001a01: 87 5f d0 00 7f 00 d0 04 00 MOVB &0xd0,$0x4d000
00001a0a: 70 NOP
00001a0b: a0 01 PUSHW &0x1
00001a0d: 2c cc fc ef 28 05 00 00 CALL -4(%sp),*$0x528
00001a15: 87 01 7f 70 08 00 02 MOVB &0x1,$0x2000870
00001a1c: 70 NOP
00001a1d: 87 5f ff 00 7f 71 08 00 02 MOVB &0xff,$0x2000871
00001a26: 70 NOP
00001a27: 84 4f 00 38 04 00 43 MOVW &0x43800,%r3
00001a2e: a0 00 PUSHW &0x0
00001a30: a0 4f 74 08 00 02 PUSHW &0x2000874
00001a36: a0 00 PUSHW &0x0
00001a38: a0 03 PUSHW &0x3
00001a3a: 2c cc f0 7f 2c 7b 00 00 CALL -16(%sp),$0x7b2c
00001a42: 28 40 TSTW %r0
00001a44: 77 08 BNEB &0x8 <0x1a4c>
00001a46: 24 7f 67 1b 00 00 JMP $0x1b67
00001a4c: dc 03 7f 08 05 00 00 40 ADDW3 &0x3,$0x508,%r0
00001a54: 3f 50 7f 74 08 00 02 CMPB (%r0),$0x2000874
00001a5b: 7f 08 BEB &0x8 <0x1a63>
00001a5d: 24 7f 67 1b 00 00 JMP $0x1b67
00001a63: dc 07 7f 08 05 00 00 40 ADDW3 &0x7,$0x508,%r0
00001a6b: 3f 50 7f 75 08 00 02 CMPB (%r0),$0x2000875
00001a72: 7f 08 BEB &0x8 <0x1a7a>
00001a74: 24 7f 67 1b 00 00 JMP $0x1b67
00001a7a: dc 0b 7f 08 05 00 00 40 ADDW3 &0xb,$0x508,%r0
00001a82: 3f 50 7f 76 08 00 02 CMPB (%r0),$0x2000876
00001a89: 7f 08 BEB &0x8 <0x1a91>
00001a8b: 24 7f 67 1b 00 00 JMP $0x1b67
00001a91: dc 0f 7f 08 05 00 00 40 ADDW3 &0xf,$0x508,%r0
00001a99: 3f 50 7f 77 08 00 02 CMPB (%r0),$0x2000877
00001aa0: 7f 08 BEB &0x8 <0x1aa8>
00001aa2: 24 7f 67 1b 00 00 JMP $0x1b67
00001aa8: 84 4f 00 30 04 00 48 MOVW &0x43000,%r8
00001aaf: 7b 08 BRB &0x8 <0x1ab7>
00001ab1: 80 58 CLRW (%r8)
00001ab3: 70 NOP
00001ab4: 9c 04 48 ADDW2 &0x4,%r8
00001ab7: 3c 43 48 CMPW %r3,%r8
00001aba: 5b f7 BLUB &0xf7 <0x1ab1>
00001abc: 84 01 7f 60 30 04 00 MOVW &0x1,$0x43060
00001ac3: 70 NOP
00001ac4: 80 7f 64 30 04 00 CLRW $0x43064
00001aca: 70 NOP
00001acb: 82 44 CLRH %r4
00001acd: 84 4f 00 30 04 00 48 MOVW &0x43000,%r8
00001ad4: 7b 40 BRB &0x40 <0x1b14>
00001ad6: 86 e2 44 e0 40 MOVH {uhalf}%r4,{uword}%r0
00001adb: 86 e2 c8 02 e0 41 MOVH {uhalf}2(%r8),{uword}%r1
00001ae1: ba 0f 41 ANDH2 &0xf,%r1
00001ae4: 86 e2 41 e0 41 MOVH {uhalf}%r1,{uword}%r1
00001ae9: 9c 41 40 ADDW2 %r1,%r0
00001aec: 86 40 44 MOVH %r0,%r4
00001aef: 86 e2 44 e0 40 MOVH {uhalf}%r4,{uword}%r0
00001af4: d0 01 40 40 LLSW3 &0x1,%r0,%r0
00001af8: 86 e2 40 e0 40 MOVH {uhalf}%r0,{uword}%r0
00001afd: 86 e2 44 e0 41 MOVH {uhalf}%r4,{uword}%r1
00001b02: d4 0f 41 41 LRSW3 &0xf,%r1,%r1
00001b06: 86 e2 41 e0 41 MOVH {uhalf}%r1,{uword}%r1
00001b0b: b0 41 40 ORW2 %r1,%r0
00001b0e: 86 40 44 MOVH %r0,%r4
00001b11: 9c 04 48 ADDW2 &0x4,%r8
00001b14: 3c 43 48 CMPW %r3,%r8
00001b17: 5b bf BLUB &0xbf <0x1ad6>
00001b19: 86 e2 44 e0 40 MOVH {uhalf}%r4,{uword}%r0
00001b1e: 88 40 40 MCOMW %r0,%r0
00001b21: 86 40 44 MOVH %r0,%r4
00001b24: 86 e2 44 e0 58 MOVH {uhalf}%r4,{uword}(%r8)
00001b29: 70 NOP
00001b2a: 86 e2 44 e0 40 MOVH {uhalf}%r4,{uword}%r0
00001b2f: d4 04 40 40 LRSW3 &0x4,%r0,%r0
00001b33: 84 40 c8 04 MOVW %r0,4(%r8)
00001b37: 70 NOP
00001b38: 86 e2 44 e0 40 MOVH {uhalf}%r4,{uword}%r0
00001b3d: d4 08 40 40 LRSW3 &0x8,%r0,%r0
00001b41: 84 40 c8 08 MOVW %r0,8(%r8)
00001b45: 70 NOP
00001b46: 86 e2 44 e0 40 MOVH {uhalf}%r4,{uword}%r0
00001b4b: d4 0c 40 40 LRSW3 &0xc,%r0,%r0
00001b4f: 84 40 c8 0c MOVW %r0,12(%r8)
00001b53: 70 NOP
00001b54: b0 4f 00 00 00 40 7f 5c 08 00 02 ORW2 &0x40000000,$0x200085c
00001b5f: 70 NOP
00001b60: 2c 5c 7f e0 5d 00 00 CALL (%sp),$0x5de0
00001b67: a0 4f 0c 30 04 00 PUSHW &0x4300c
00001b6d: a0 4f 61 08 00 02 PUSHW &0x2000861
00001b73: a0 01 PUSHW &0x1
00001b75: 2c cc f4 7f 24 52 00 00 CALL -12(%sp),$0x5224
00001b7d: 28 40 TSTW %r0
00001b7f: 77 20 BNEB &0x20 <0x1b9f>
00001b81: 87 01 7f 61 08 00 02 MOVB &0x1,$0x2000861
00001b88: 70 NOP
00001b89: a0 4f 61 08 00 02 PUSHW &0x2000861
00001b8f: a0 4f 0c 30 04 00 PUSHW &0x4300c
00001b95: a0 01 PUSHW &0x1
00001b97: 2c cc f4 7f a0 52 00 00 CALL -12(%sp),$0x52a0
00001b9f: 3f 01 7f 61 08 00 02 CMPB &0x1,$0x2000861
00001ba6: 7f 0b BEB &0xb <0x1bb1>
00001ba8: 3f 02 7f 61 08 00 02 CMPB &0x2,$0x2000861
00001baf: 77 12 BNEB &0x12 <0x1bc1>
00001bb1: 87 01 45 MOVB &0x1,%r5
00001bb4: ff 01 7f 61 08 00 02 40 SUBB3 &0x1,$0x2000861,%r0
00001bbc: 87 40 47 MOVB %r0,%r7
00001bbf: 7b 06 BRB &0x6 <0x1bc5>
00001bc1: 83 45 CLRB %r5
00001bc3: 83 47 CLRB %r7
00001bc5: 83 7f 60 08 00 02 CLRB $0x2000860
00001bcb: 70 NOP
00001bcc: 82 44 CLRH %r4
00001bce: 7b 1a BRB &0x1a <0x1be8>
00001bd0: 86 e2 44 e0 40 MOVH {uhalf}%r4,{uword}%r0
00001bd5: 86 e2 44 e0 41 MOVH {uhalf}%r4,{uword}%r1
00001bda: 87 81 ec 10 00 00 80 74 0a 00 02 MOVB 0x10ec(%r1),0x2000a74(%r0)
00001be5: 70 NOP
00001be6: 92 44 INCH %r4
00001be8: 86 e2 44 e0 40 MOVH {uhalf}%r4,{uword}%r0
00001bed: 3c 08 40 CMPW &0x8,%r0
00001bf0: 5b e0 BLUB &0xe0 <0x1bd0>
00001bf2: 82 44 CLRH %r4
00001bf4: 7b 23 BRB &0x23 <0x1c17>
00001bf6: 87 47 e0 40 MOVB %r7,{uword}%r0
00001bfa: a0 40 PUSHW %r0
00001bfc: 2c cc fc 7f 2c 73 00 00 CALL -4(%sp),$0x732c
00001c04: 28 40 TSTW %r0
00001c06: 7f 04 BEB &0x4 <0x1c0a>
00001c08: 7b 19 BRB &0x19 <0x1c21>
00001c0a: a0 6f 64 PUSHW &0x64
00001c0d: 2c cc fc ef 28 05 00 00 CALL -4(%sp),*$0x528
00001c15: 92 44 INCH %r4
00001c17: 86 e2 44 e0 40 MOVH {uhalf}%r4,{uword}%r0
00001c1c: 3c 3c 40 CMPW &0x3c,%r0
00001c1f: 5b d7 BLUB &0xd7 <0x1bf6>
00001c21: 87 47 e0 40 MOVB %r7,{uword}%r0
00001c25: a0 40 PUSHW %r0
;; XXX Call to 6e28
00001c27: 2c cc fc 7f 28 6e 00 00 CALL -4(%sp),$0x6e28
00001c2f: 28 40 TSTW %r0
00001c31: 77 39 BNEB &0x39 <0x1c6a>
;; Here we seem to be setting 0x2 in r0
00001c33: f0 02 7f 7c 0a 00 02 40 ORW3 &0x2,$0x2000a7c,%r0
00001c3b: 87 47 e0 41 MOVB %r7,{uword}%r1
00001c3f: d0 17 41 41 LLSW3 &0x17,%r1,%r1
00001c43: b0 41 40 ORW2 %r1,%r0
00001c46: a0 40 PUSHW %r0
00001c48: 2c cc fc 7f c0 61 00 00 CALL -4(%sp),$0x61c0
00001c50: 87 01 7f 13 40 04 00 MOVB &0x1,$0x44013
00001c57: 70 NOP
00001c58: 84 4f ef be ed fe ef 8c 04 00 00 MOVW &0xfeedbeef,*$0x48c
00001c63: 70 NOP
00001c64: 24 7f 37 1e 00 00 JMP $0x1e37
00001c6a: eb 6f 54 47 40 MULB3 &0x54,%r7,%r0
00001c6f: 3c 4f 0d 60 5e ca 80 84 0a 00 02 CMPW &0xca5e600d,0x2000a84(%r0)
00001c7a: 7f 08 BEB &0x8 <0x1c82>
00001c7c: 24 7f a0 1d 00 00 JMP $0x1da0
00001c82: df 01 47 40 ADDB3 &0x1,%r7,%r0
00001c86: b3 40 7f 60 08 00 02 ORB2 %r0,$0x2000860
00001c8d: 70 NOP
00001c8e: bb 5f f0 00 7f 75 0a 00 02 ANDB2 &0xf0,$0x2000a75
00001c97: 70 NOP
00001c98: eb 6f 54 47 40 MULB3 &0x54,%r7,%r0
00001c9d: d4 08 80 a4 0a 00 02 40 LRSW3 &0x8,0x2000aa4(%r0),%r0
00001ca5: b3 40 7f 75 0a 00 02 ORB2 %r0,$0x2000a75
00001cac: 70 NOP
00001cad: eb 6f 54 47 40 MULB3 &0x54,%r7,%r0
00001cb2: 87 80 a7 0a 00 02 7f 76 0a 00 02 MOVB 0x2000aa7(%r0),$0x2000a76
00001cbd: 70 NOP
00001cbe: eb 6f 54 47 40 MULB3 &0x54,%r7,%r0
00001cc3: ff 01 80 9f 0a 00 02 40 SUBB3 &0x1,0x2000a9f(%r0),%r0
00001ccb: 87 40 7f 77 0a 00 02 MOVB %r0,$0x2000a77
00001cd2: 70 NOP
00001cd3: eb 6f 54 47 40 MULB3 &0x54,%r7,%r0
00001cd8: ff 01 80 a3 0a 00 02 40 SUBB3 &0x1,0x2000aa3(%r0),%r0
00001ce0: 87 40 7f 78 0a 00 02 MOVB %r0,$0x2000a78
00001ce7: 70 NOP
00001ce8: eb 6f 54 47 40 MULB3 &0x54,%r7,%r0
00001ced: d4 09 80 98 0a 00 02 40 LRSW3 &0x9,0x2000a98(%r0),%r0
00001cf5: 87 40 7f 7a 0a 00 02 MOVB %r0,$0x2000a7a
00001cfc: 70 NOP
00001cfd: eb 6f 54 47 40 MULB3 &0x54,%r7,%r0
00001d02: d4 01 80 98 0a 00 02 40 LRSW3 &0x1,0x2000a98(%r0),%r0
00001d0a: 87 40 7f 7b 0a 00 02 MOVB %r0,$0x2000a7b
00001d11: 70 NOP
00001d12: 87 47 e0 40 MOVB %r7,{uword}%r0
00001d16: a0 40 PUSHW %r0
00001d18: 2c cc fc 7f 2c 73 00 00 CALL -4(%sp),$0x732c
00001d20: 28 40 TSTW %r0
00001d22: 77 35 BNEB &0x35 <0x1d57>
00001d24: 2b 45 TSTB %r5
00001d26: 7f 31 BEB &0x31 <0x1d57>
00001d28: 87 47 e0 40 MOVB %r7,{uword}%r0
00001d2c: d0 17 40 40 LLSW3 &0x17,%r0,%r0
00001d30: b0 4f 02 00 04 00 40 ORW2 &0x40002,%r0
00001d37: a0 40 PUSHW %r0
00001d39: 2c cc fc 7f c0 61 00 00 CALL -4(%sp),$0x61c0
00001d41: 87 01 7f 13 40 04 00 MOVB &0x1,$0x44013
00001d48: 70 NOP
00001d49: 84 4f ef be ed fe ef 8c 04 00 00 MOVW &0xfeedbeef,*$0x48c
00001d54: 70 NOP
00001d55: 7b 45 BRB &0x45 <0x1d9a>
00001d57: 2b 45 TSTB %r5
00001d59: 7f 41 BEB &0x41 <0x1d9a>
00001d5b: 87 47 e0 40 MOVB %r7,{uword}%r0
00001d5f: a0 40 PUSHW %r0
00001d61: 2c cc fc 7f d4 78 00 00 CALL -4(%sp),$0x78d4
00001d69: 28 40 TSTW %r0
00001d6b: 77 2f BNEB &0x2f <0x1d9a>
00001d6d: 87 47 e0 40 MOVB %r7,{uword}%r0
00001d71: d0 17 40 40 LLSW3 &0x17,%r0,%r0
00001d75: b0 4f 02 00 05 00 40 ORW2 &0x50002,%r0
00001d7c: a0 40 PUSHW %r0
00001d7e: 2c cc fc 7f c0 61 00 00 CALL -4(%sp),$0x61c0
00001d86: 87 01 7f 13 40 04 00 MOVB &0x1,$0x44013
00001d8d: 70 NOP
00001d8e: 84 4f ef be ed fe ef 8c 04 00 00 MOVW &0xfeedbeef,*$0x48c
00001d99: 70 NOP
00001d9a: 24 7f 37 1e 00 00 JMP $0x1e37
00001da0: 3c 4f ef be ed fe 7f 78 08 00 02 CMPW &0xfeedbeef,$0x2000878
00001dab: 77 5b BNEB &0x5b <0x1e06>
00001dad: 84 3d 7f 64 08 00 02 MOVW &0x3d,$0x2000864
00001db4: 70 NOP
00001db5: a0 4f 64 08 00 02 PUSHW &0x2000864
00001dbb: a0 4f 0a 30 04 00 PUSHW &0x4300a
00001dc1: a0 02 PUSHW &0x2
00001dc3: 2c cc f4 7f a0 52 00 00 CALL -12(%sp),$0x52a0
00001dcb: 2c 5c 7f 90 3b 00 00 CALL (%sp),$0x3b90
00001dd2: 87 01 7f 61 08 00 02 MOVB &0x1,$0x2000861
00001dd9: 70 NOP
00001dda: a0 4f 61 08 00 02 PUSHW &0x2000861
00001de0: a0 4f 0c 30 04 00 PUSHW &0x4300c
00001de6: a0 01 PUSHW &0x1
00001de8: 2c cc f4 7f a0 52 00 00 CALL -12(%sp),$0x52a0
00001df0: 84 4f 1e ac eb ad 7f 64 08 00 02 MOVW &0xadebac1e,$0x2000864
00001dfb: 70 NOP
00001dfc: b0 10 7f 5c 08 00 02 ORW2 &0x10,$0x200085c
00001e03: 70 NOP
00001e04: 7b 33 BRB &0x33 <0x1e37>
00001e06: 2b 45 TSTB %r5
00001e08: 7f 2f BEB &0x2f <0x1e37>
00001e0a: 87 47 e0 40 MOVB %r7,{uword}%r0
00001e0e: d0 17 40 40 LLSW3 &0x17,%r0,%r0
00001e12: b0 4f 02 00 02 00 40 ORW2 &0x20002,%r0
00001e19: a0 40 PUSHW %r0
00001e1b: 2c cc fc 7f c0 61 00 00 CALL -4(%sp),$0x61c0
00001e23: 87 01 7f 13 40 04 00 MOVB &0x1,$0x44013
00001e2a: 70 NOP
00001e2b: 84 4f ef be ed fe ef 8c 04 00 00 MOVW &0xfeedbeef,*$0x48c
00001e36: 70 NOP
00001e37: f7 01 47 40 XORB3 &0x1,%r7,%r0
00001e3b: 87 40 46 MOVB %r0,%r6
00001e3e: a0 4f 3a 30 04 00 PUSHW &0x4303a
00001e44: a0 4f 61 08 00 02 PUSHW &0x2000861
00001e4a: a0 01 PUSHW &0x1
00001e4c: 2c cc f4 7f 24 52 00 00 CALL -12(%sp),$0x5224
00001e54: 28 40 TSTW %r0
00001e56: 77 1f BNEB &0x1f <0x1e75>
00001e58: 83 7f 61 08 00 02 CLRB $0x2000861
00001e5e: 70 NOP
00001e5f: a0 4f 61 08 00 02 PUSHW &0x2000861
00001e65: a0 4f 3a 30 04 00 PUSHW &0x4303a
00001e6b: a0 01 PUSHW &0x1
00001e6d: 2c cc f4 7f a0 52 00 00 CALL -12(%sp),$0x52a0
00001e75: 3f 01 7f 61 08 00 02 CMPB &0x1,$0x2000861
00001e7c: 77 05 BNEB &0x5 <0x1e81>
00001e7e: 86 3b 44 MOVH &0x3b,%r4
00001e81: a0 6f 64 PUSHW &0x64
00001e84: 2c cc fc ef 28 05 00 00 CALL -4(%sp),*$0x528
00001e8c: 87 46 e0 40 MOVB %r6,{uword}%r0
00001e90: a0 40 PUSHW %r0
00001e92: 2c cc fc 7f 80 73 00 00 CALL -4(%sp),$0x7380
00001e9a: 28 40 TSTW %r0
00001e9c: 7f 04 BEB &0x4 <0x1ea0>
00001e9e: 7b 0e BRB &0xe <0x1eac>
00001ea0: 92 44 INCH %r4
00001ea2: 86 e2 44 e0 40 MOVH {uhalf}%r4,{uword}%r0
00001ea7: 3c 3c 40 CMPW &0x3c,%r0
00001eaa: 5b d7 BLUB &0xd7 <0x1e81>
00001eac: 86 e2 44 e0 40 MOVH {uhalf}%r4,{uword}%r0
00001eb1: 3c 3c 40 CMPW &0x3c,%r0
00001eb4: 5b 26 BLUB &0x26 <0x1eda>
00001eb6: 87 01 7f 61 08 00 02 MOVB &0x1,$0x2000861
00001ebd: 70 NOP
00001ebe: a0 4f 61 08 00 02 PUSHW &0x2000861
00001ec4: a0 4f 3a 30 04 00 PUSHW &0x4303a
00001eca: a0 01 PUSHW &0x1
00001ecc: 2c cc f4 7f a0 52 00 00 CALL -12(%sp),$0x52a0
00001ed4: 24 7f a9 20 00 00 JMP $0x20a9
00001eda: 87 46 e0 40 MOVB %r6,{uword}%r0
00001ede: a0 40 PUSHW %r0
00001ee0: 2c cc fc 7f 28 6e 00 00 CALL -4(%sp),$0x6e28
00001ee8: 28 40 TSTW %r0
00001eea: 77 39 BNEB &0x39 <0x1f23>
00001eec: f0 02 7f 7c 0a 00 02 40 ORW3 &0x2,$0x2000a7c,%r0
00001ef4: 87 46 e0 41 MOVB %r6,{uword}%r1
00001ef8: d0 17 41 41 LLSW3 &0x17,%r1,%r1
00001efc: b0 41 40 ORW2 %r1,%r0
00001eff: a0 40 PUSHW %r0
00001f01: 2c cc fc 7f c0 61 00 00 CALL -4(%sp),$0x61c0
00001f09: 87 01 7f 13 40 04 00 MOVB &0x1,$0x44013
00001f10: 70 NOP
00001f11: 84 4f ef be ed fe ef 8c 04 00 00 MOVW &0xfeedbeef,*$0x48c
00001f1c: 70 NOP
00001f1d: 24 7f a9 20 00 00 JMP $0x20a9
00001f23: eb 6f 54 46 40 MULB3 &0x54,%r6,%r0
00001f28: 3c 4f 0d 60 5e ca 80 84 0a 00 02 CMPW &0xca5e600d,0x2000a84(%r0)
00001f33: 7f 35 BEB &0x35 <0x1f68>
00001f35: 87 46 e0 40 MOVB %r6,{uword}%r0
00001f39: d0 17 40 40 LLSW3 &0x17,%r0,%r0
00001f3d: b0 4f 02 00 02 00 40 ORW2 &0x20002,%r0
00001f44: a0 40 PUSHW %r0
00001f46: 2c cc fc 7f c0 61 00 00 CALL -4(%sp),$0x61c0
00001f4e: 87 01 7f 13 40 04 00 MOVB &0x1,$0x44013
00001f55: 70 NOP
00001f56: 84 4f ef be ed fe ef 8c 04 00 00 MOVW &0xfeedbeef,*$0x48c
00001f61: 70 NOP
00001f62: 24 7f a9 20 00 00 JMP $0x20a9
00001f68: df 01 46 40 ADDB3 &0x1,%r6,%r0
00001f6c: b3 40 7f 60 08 00 02 ORB2 %r0,$0x2000860
00001f73: 70 NOP
00001f74: 80 43 CLRW %r3
00001f76: eb 6f 54 46 40 MULB3 &0x54,%r6,%r0
00001f7b: eb 6f 54 47 41 MULB3 &0x54,%r7,%r1
00001f80: 3c 81 a4 0a 00 02 80 a4 0a 00 02 CMPW 0x2000aa4(%r1),0x2000aa4(%r0)
00001f8b: 5f 35 BLEUB &0x35 <0x1fc0>
00001f8d: bb 5f f0 00 7f 75 0a 00 02 ANDB2 &0xf0,$0x2000a75
00001f96: 70 NOP
00001f97: eb 6f 54 46 40 MULB3 &0x54,%r6,%r0
00001f9c: d4 08 80 a4 0a 00 02 40 LRSW3 &0x8,0x2000aa4(%r0),%r0
00001fa4: b3 40 7f 75 0a 00 02 ORB2 %r0,$0x2000a75
00001fab: 70 NOP
00001fac: eb 6f 54 46 40 MULB3 &0x54,%r6,%r0
00001fb1: 87 80 a7 0a 00 02 7f 76 0a 00 02 MOVB 0x2000aa7(%r0),$0x2000a76
00001fbc: 70 NOP
00001fbd: 84 01 43 MOVW &0x1,%r3
00001fc0: eb 6f 54 46 40 MULB3 &0x54,%r6,%r0
00001fc5: eb 6f 54 47 41 MULB3 &0x54,%r7,%r1
00001fca: 3c 81 9c 0a 00 02 80 9c 0a 00 02 CMPW 0x2000a9c(%r1),0x2000a9c(%r0)
00001fd5: 5f 1a BLEUB &0x1a <0x1fef>
00001fd7: eb 6f 54 46 40 MULB3 &0x54,%r6,%r0
00001fdc: ff 01 80 9f 0a 00 02 40 SUBB3 &0x1,0x2000a9f(%r0),%r0
00001fe4: 87 40 7f 77 0a 00 02 MOVB %r0,$0x2000a77
00001feb: 70 NOP
00001fec: 84 01 43 MOVW &0x1,%r3
00001fef: eb 6f 54 46 40 MULB3 &0x54,%r6,%r0
00001ff4: eb 6f 54 47 41 MULB3 &0x54,%r7,%r1
00001ff9: 3c 81 a0 0a 00 02 80 a0 0a 00 02 CMPW 0x2000aa0(%r1),0x2000aa0(%r0)
00002004: 5f 1a BLEUB &0x1a <0x201e>
00002006: eb 6f 54 46 40 MULB3 &0x54,%r6,%r0
0000200b: ff 01 80 a3 0a 00 02 40 SUBB3 &0x1,0x2000aa3(%r0),%r0
00002013: 87 40 7f 78 0a 00 02 MOVB %r0,$0x2000a78
0000201a: 70 NOP
0000201b: 84 01 43 MOVW &0x1,%r3
0000201e: eb 6f 54 46 40 MULB3 &0x54,%r6,%r0
00002023: eb 6f 54 47 41 MULB3 &0x54,%r7,%r1
00002028: 3c 81 98 0a 00 02 80 98 0a 00 02 CMPW 0x2000a98(%r1),0x2000a98(%r0)
00002033: 5f 2f BLEUB &0x2f <0x2062>
00002035: eb 6f 54 46 40 MULB3 &0x54,%r6,%r0
0000203a: d4 09 80 98 0a 00 02 40 LRSW3 &0x9,0x2000a98(%r0),%r0
00002042: 87 40 7f 7a 0a 00 02 MOVB %r0,$0x2000a7a
00002049: 70 NOP
0000204a: eb 6f 54 46 40 MULB3 &0x54,%r6,%r0
0000204f: d4 01 80 98 0a 00 02 40 LRSW3 &0x1,0x2000a98(%r0),%r0
00002057: 87 40 7f 7b 0a 00 02 MOVB %r0,$0x2000a7b
0000205e: 70 NOP
0000205f: 84 01 43 MOVW &0x1,%r3
00002062: 28 43 TSTW %r3
00002064: 7f 45 BEB &0x45 <0x20a9>
00002066: 87 46 e0 40 MOVB %r6,{uword}%r0
0000206a: a0 40 PUSHW %r0
0000206c: 2c cc fc 7f 2c 73 00 00 CALL -4(%sp),$0x732c
00002074: 28 40 TSTW %r0
00002076: 77 33 BNEB &0x33 <0x20a9>
00002078: 2b 45 TSTB %r5
0000207a: 7f 2f BEB &0x2f <0x20a9>
0000207c: 87 46 e0 40 MOVB %r6,{uword}%r0
00002080: d0 17 40 40 LLSW3 &0x17,%r0,%r0
00002084: b0 4f 02 00 04 00 40 ORW2 &0x40002,%r0
0000208b: a0 40 PUSHW %r0
0000208d: 2c cc fc 7f c0 61 00 00 CALL -4(%sp),$0x61c0
00002095: 87 01 7f 13 40 04 00 MOVB &0x1,$0x44013
0000209c: 70 NOP
0000209d: 84 4f ef be ed fe ef 8c 04 00 00 MOVW &0xfeedbeef,*$0x48c
000020a8: 70 NOP
000020a9: 2c 5c 7f e0 5d 00 00 CALL (%sp),$0x5de0
000020b0: 3f 02 7f 60 08 00 02 CMPB &0x2,$0x2000860
000020b7: 4f 12 BLEB &0x12 <0x20c9>
000020b9: 87 7f 60 08 00 02 e2 40 MOVB $0x2000860,{uhalf}%r0
000020c1: be 01 40 SUBH2 &0x1,%r0
000020c4: 86 40 44 MOVH %r0,%r4
000020c7: 7b 0d BRB &0xd <0x20d4>
000020c9: 87 7f 60 08 00 02 e2 40 MOVB $0x2000860,{uhalf}%r0
000020d1: 86 40 44 MOVH %r0,%r4
000020d4: dc 04 7f 90 04 00 00 40 ADDW3 &0x4,$0x490,%r0
000020dc: 86 e2 44 e0 41 MOVH {uhalf}%r4,{uword}%r1
000020e1: 90 41 INCW %r1
000020e3: c8 03 00 41 50 INSFW &0x3,&0x0,%r1,(%r0)
000020e8: 70 NOP
000020e9: dc 08 7f 90 04 00 00 40 ADDW3 &0x8,$0x490,%r0
000020f1: 84 ef e8 04 00 00 50 MOVW *$0x4e8,(%r0)
000020f8: 70 NOP
000020f9: dc 04 7f 90 04 00 00 40 ADDW3 &0x4,$0x490,%r0
00002101: cc 03 00 50 40 EXTFW &0x3,&0x0,(%r0),%r0
00002106: a8 0c 40 MULW2 &0xc,%r0
00002109: 9c 40 ef e8 04 00 00 ADDW2 %r0,*$0x4e8
00002110: 70 NOP
00002111: dc 08 7f 90 04 00 00 40 ADDW3 &0x8,$0x490,%r0
00002119: 86 01 d0 00 MOVH &0x1,*0(%r0)
0000211d: 70 NOP
0000211e: dc 08 7f 90 04 00 00 40 ADDW3 &0x8,$0x490,%r0
00002126: dc 02 50 40 ADDW3 &0x2,(%r0),%r0
0000212a: a0 40 PUSHW %r0
0000212c: a0 4f d1 05 00 00 PUSHW &0x5d1
00002132: 2c cc f8 7f b0 7f 00 00 CALL -8(%sp),$0x7fb0
0000213a: 3b 7f 60 08 00 02 01 BITB $0x2000860,&0x1
00002141: 7f 23 BEB &0x23 <0x2164>
00002143: 3c 4f 0d 60 5e ca 7f 84 0a 00 02 CMPW &0xca5e600d,$0x2000a84
0000214e: 77 16 BNEB &0x16 <0x2164>
00002150: dc 08 7f 90 04 00 00 40 ADDW3 &0x8,$0x490,%r0
00002158: 84 50 40 MOVW (%r0),%r0
0000215b: 86 7f 82 0a 00 02 c0 0c MOVH $0x2000a82,12(%r0)
00002163: 70 NOP
00002164: 3b 7f 60 08 00 02 02 BITB $0x2000860,&0x2
0000216b: 7f 23 BEB &0x23 <0x218e>
0000216d: 3c 4f 0d 60 5e ca 7f d8 0a 00 02 CMPW &0xca5e600d,$0x2000ad8
00002178: 77 16 BNEB &0x16 <0x218e>
0000217a: dc 08 7f 90 04 00 00 40 ADDW3 &0x8,$0x490,%r0
00002182: 84 50 40 MOVW (%r0),%r0
00002185: 86 7f d6 0a 00 02 c0 18 MOVH $0x2000ad6,24(%r0)
0000218d: 70 NOP
0000218e: 24 7f f0 65 00 00 JMP $0x65f0
00002194: 04 59 4c MOVAW (%fp),%sp
00002197: 20 48 POPW %r8
00002199: 20 47 POPW %r7
0000219b: 20 46 POPW %r6
0000219d: 20 45 POPW %r5
0000219f: 20 44 POPW %r4
000021a1: 20 43 POPW %r3
000021a3: 20 49 POPW %fp
000021a5: 08 RET
000021a6: 70 NOP
000021a7: 70 NOP
000021a8: 10 45 SAVE %r5
000021aa: 9c 4f 00 00 00 00 4c ADDW2 &0x0,%sp
;; Jump point from 0x191d
000021b1: 84 4f 28 0b 00 02 48 MOVW &0x2000b28,%r8
000021b8: 84 4f e4 05 00 00 47 MOVW &0x5e4,%r7
000021bf: 80 45 CLRW %r5
000021c1: 7b 12 BRB &0x12 <0x21d3>
000021c3: 84 48 40 MOVW %r8,%r0
000021c6: 90 48 INCW %r8
000021c8: 84 47 41 MOVW %r7,%r1
000021cb: 90 47 INCW %r7
000021cd: 87 51 50 MOVB (%r1),(%r0)
000021d0: 70 NOP
000021d1: 90 45 INCW %r5
000021d3: 3c 6f 44 45 CMPW &0x44,%r5
000021d7: 5b ec BLUB &0xec <0x21c3>
;;; Stick initial PSW 0x81e180 into PCB at 0x2000b78
000021d9: 84 4f 80 e1 81 00 7f 78 0b 00 02 MOVW &0x81e180,$0x2000b78
000021e4: 70 NOP
;;; Stick PC 0x41f8 into PCB at 0x2000b78
000021e5: 84 4f f8 41 00 00 7f 7c 0b 00 02 MOVW &0x41f8,$0x2000b7c
000021f0: 70 NOP
000021f1: 84 4f e8 0e 00 02 7f 80 0b 00 02 MOVW &0x2000ee8,$0x2000b80
000021fc: 70 NOP
000021fd: 84 4f e8 0e 00 02 7f 90 0b 00 02 MOVW &0x2000ee8,$0x2000b90
00002208: 70 NOP
00002209: 84 4f e8 10 00 02 7f 94 0b 00 02 MOVW &0x20010e8,$0x2000b94
00002214: 70 NOP
00002215: 80 7f c4 0b 00 02 CLRW $0x2000bc4
0000221b: 70 NOP
0000221c: 80 45 CLRW %r5
;;; GOTO 2258
0000221e: 7b 3a BRB &0x3a <0x2258>
;;; Each time through this loop, we're incrementing the PCBP by 50, to
;;; point at the next PCBP.
;;; Loop 0: r5 = 0
;;; Loop 1: r5 = 1
;;; Loop 2: r5 = 2, etc...
;;;
;;; %r0 accumulates the new PCBP, which we stuff into R6.
00002220: e8 6f 50 45 40 MULW3 &0x50,%r5,%r0
00002225: 9c 4f c8 0b 00 02 40 ADDW2 &0x2000bc8,%r0
0000222c: 84 40 46 MOVW %r0,%r6
0000222f: 84 4f 80 e1 81 00 56 MOVW &0x81e180,(%r6)
00002236: 70 NOP
00002237: 84 4f e8 10 00 02 c6 08 MOVW &0x20010e8,8(%r6)
0000223f: 70 NOP
00002240: 84 4f e8 10 00 02 c6 18 MOVW &0x20010e8,24(%r6)
00002248: 70 NOP
00002249: 84 4f e8 11 00 02 c6 1c MOVW &0x20011e8,28(%r6)
00002251: 70 NOP
00002252: 80 c6 4c CLRW 76(%r6)
00002255: 70 NOP
00002256: 90 45 INCW %r5
;;; If R5 < 9, GOTO 2220
00002258: 3c 09 45 CMPW &0x9,%r5
0000225b: 4b c5 BLB &0xc5 <0x2220>
;;; After the loop, PCBPs look like this:
;;;
;;; PSW = 0x81e180
;;; PC = Undefined (filled out below)
;;; Stack Pointer = 0x20010e8
;;; Stack Lower Bound = 0x200010e8
;;; Stack Upper Bound = 0x200011e8
;;;
;;; Now, fill the Interrupt PCB Program Counters
;;;
;;; Each interrupt vector in the ROM interrupt vectors table (located at
;;; 0x090 through 0x108) points to a PCB in RAM, consisting of
;;; at least a PSW/PC/SP "initial context". This set of MOVs appears
;;; to fill the PCB PC's
;;;
;;; PCBP = 0x2000bc8. Handler = 0x40a0
0000225d: 84 4f a0 40 00 00 7f cc 0b 00 02 MOVW &0x40a0,$0x2000bcc
00002268: 70 NOP
;;; PCBP = 0x2000c18. Handler = 0x40c6
00002269: 84 4f c6 40 00 00 7f 1c 0c 00 02 MOVW &0x40c6,$0x2000c1c
00002274: 70 NOP
;;; PCBP = 0x2000c68. Handler = 0x40ec
00002275: 84 4f ec 40 00 00 7f 6c 0c 00 02 MOVW &0x40ec,$0x2000c6c
00002280: 70 NOP
;;; PCBP = 0x2000cb8. Handler = 0x4112
00002281: 84 4f 12 41 00 00 7f bc 0c 00 02 MOVW &0x4112,$0x2000cbc
0000228c: 70 NOP
;;; PCBP = 0x2000d08. Handler = 0x4138
0000228d: 84 4f 38 41 00 00 7f 0c 0d 00 02 MOVW &0x4138,$0x2000d0c
00002298: 70 NOP
;;; PCBP = 0x2000d58. Handler = 0x415e
00002299: 84 4f 5e 41 00 00 7f 5c 0d 00 02 MOVW &0x415e,$0x2000d5c
000022a4: 70 NOP
;;; PCBP = 0x2000da8. Handler = 0x4184
000022a5: 84 4f 84 41 00 00 7f ac 0d 00 02 MOVW &0x4184,$0x2000dac
000022b0: 70 NOP
;;; PCBP = 0x2000df8. Handler = 0x41aa
;;; (n.b.: This PCBP doesn't seem to appear in the vector table. Mysterious!)
000022b1: 84 4f aa 41 00 00 7f fc 0d 00 02 MOVW &0x41aa,$0x2000dfc
000022bc: 70 NOP
;;; PCBP = 0x2000e48. Handler = 0x41d0
000022bd: 84 4f d0 41 00 00 7f 4c 0e 00 02 MOVW &0x41d0,$0x2000e4c
000022c8: 70 NOP
;;; PCBP = 0x2000e90. PSW = 0x81e180.
;;; (n.b.: This PCBP doesn't seem to appear in the vector table, either.)
000022c9: 84 4f 80 e1 81 00 7f 98 0e 00 02 MOVW &0x81e180,$0x2000e98
000022d4: 70 NOP
000022d5: 84 4f 8e 42 00 00 7f 9c 0e 00 02 MOVW &0x428e,$0x2000e9c
000022e0: 70 NOP
000022e1: 84 4f e8 0e 00 02 7f a0 0e 00 02 MOVW &0x2000ee8,$0x2000ea0
000022ec: 70 NOP
000022ed: 84 4f e8 0e 00 02 7f b0 0e 00 02 MOVW &0x2000ee8,$0x2000eb0
000022f8: 70 NOP
000022f9: 84 4f e8 10 00 02 7f b4 0e 00 02 MOVW &0x20010e8,$0x2000eb4
00002304: 70 NOP
00002305: 80 7f e4 0e 00 02 CLRW $0x2000ee4
0000230b: 70 NOP
0000230c: 04 7f 28 0b 00 02 4d MOVAW $0x2000b28,%pcbp
00002313: 24 7f 31 23 00 00 JMP $0x2331
00002319: 04 c9 f8 4c MOVAW -8(%fp),%sp
0000231d: 20 48 POPW %r8
0000231f: 20 47 POPW %r7
00002321: 20 46 POPW %r6
00002323: 20 45 POPW %r5
00002325: 20 49 POPW %fp
00002327: 08 RET
;; Who jumps here?
00002328: 10 49 SAVE %fp
0000232a: 9c 4f 08 00 00 00 4c ADDW2 &0x8,%sp
;; Jumped to from $0x2313
00002331: 84 4f 00 90 04 00 7f e8 11 00 02 MOVW &0x49000,$0x20011e8
0000233c: 70 NOP
0000233d: 2c 5c 7f 90 3b 00 00 CALL (%sp),$0x3b90
00002344: 2c 5c af 7c 03 CALL (%sp),0x37c(%pc)
00002349: 87 40 59 MOVB %r0,(%fp)
0000234c: 70 NOP
0000234d: 2b 59 TSTB (%fp)
0000234f: 77 0a BNEB &0xa <0x2359>
;; If the contents of the address pointed to by %fp are == 0,
;; jump to a failure point.
00002351: 24 7f 3e 19 00 00 JMP $0x193e
00002357: 7b 0d BRB &0xd <0x2364>
00002359: 3f 02 59 CMPB &0x2,(%fp)
0000235c: 77 08 BNEB &0x8 <0x2364>
0000235e: 24 7f d5 12 00 00 JMP $0x12d5
;; Set the fatal "EXECUTION HALTED" bit in 2000085C
00002364: b0 4f 00 00 00 80 7f 5c 08 00 02 ORW2 &0x80000000,$0x200085c
0000236f: 70 NOP
00002370: 2c 5c 7f e0 5d 00 00 CALL (%sp),$0x5de0
00002377: 2c 5c 7f 7c 29 00 00 CALL (%sp),$0x297c
0000237e: 84 40 ef e4 04 00 00 MOVW %r0,*$0x4e4
00002385: 70 NOP
00002386: 84 4f 14 15 00 02 ef e8 04 00 00 MOVW &0x2001514,*$0x4e8
00002391: 70 NOP
00002392: 9c 20 ef e8 04 00 00 ADDW2 &0x20,*$0x4e8
00002399: 70 NOP
0000239a: 87 00 e0 40 MOVB &0x0,{uword}%r0
0000239e: c8 03 0c 40 ef 90 04 00 00 INSFW &0x3,&0xc,%r0,*$0x490
000023a7: 70 NOP
000023a8: 87 01 e0 40 MOVB &0x1,{uword}%r0
000023ac: c8 0f 10 40 ef 90 04 00 00 INSFW &0xf,&0x10,%r0,*$0x490
000023b5: 70 NOP
000023b6: dc 04 7f 90 04 00 00 40 ADDW3 &0x4,$0x490,%r0
000023be: 87 01 e0 41 MOVB &0x1,{uword}%r1
000023c2: c8 00 05 41 50 INSFW &0x0,&0x5,%r1,(%r0)
000023c7: 70 NOP
000023c8: dc 04 7f 90 04 00 00 40 ADDW3 &0x4,$0x490,%r0
000023d0: 87 01 e0 41 MOVB &0x1,{uword}%r1
000023d4: c8 00 06 41 50 INSFW &0x0,&0x6,%r1,(%r0)
000023d9: 70 NOP
000023da: dc 0c 7f 90 04 00 00 40 ADDW3 &0xc,$0x490,%r0
000023e2: a0 40 PUSHW %r0
000023e4: a0 4f 28 06 00 00 PUSHW &0x628
000023ea: 2c cc f8 7f b0 7f 00 00 CALL -8(%sp),$0x7fb0
000023f2: dc 04 7f 90 04 00 00 40 ADDW3 &0x4,$0x490,%r0
000023fa: 87 01 e0 41 MOVB &0x1,{uword}%r1
000023fe: c8 00 07 41 50 INSFW &0x0,&0x7,%r1,(%r0)
00002403: 70 NOP
00002404: dc 04 7f 90 04 00 00 40 ADDW3 &0x4,$0x490,%r0
0000240c: 87 01 e0 41 MOVB &0x1,{uword}%r1
00002410: c8 00 09 41 50 INSFW &0x0,&0x9,%r1,(%r0)
00002415: 70 NOP
00002416: 84 4f a4 65 00 00 ef 98 04 00 00 MOVW &0x65a4,*$0x498
00002421: 70 NOP
00002422: 84 4f a4 65 00 00 ef 0c 05 00 00 MOVW &0x65a4,*$0x50c
0000242d: 70 NOP
0000242e: 2c 5c 7f 72 5f 00 00 CALL (%sp),$0x5f72
00002435: 87 01 7f 1f 40 04 00 MOVB &0x1,$0x4401f
0000243c: 70 NOP
0000243d: 87 01 ef e0 04 00 00 MOVB &0x1,*$0x4e0
00002444: 70 NOP
00002445: 83 7f f1 11 00 02 CLRB $0x20011f1
0000244b: 70 NOP
0000244c: 84 4f e0 25 00 00 ef 98 04 00 00 MOVW &0x25e0,*$0x498
00002457: 70 NOP
00002458: 84 4f e0 25 00 00 ef 0c 05 00 00 MOVW &0x25e0,*$0x50c
00002463: 70 NOP
00002464: 2c 5c ef c0 04 00 00 CALL (%sp),*$0x4c0
0000246b: 24 7f 3a 25 00 00 JMP $0x253a
00002471: 87 7f f1 11 00 02 e0 40 MOVB $0x20011f1,{uword}%r0
00002479: d0 15 40 40 LLSW3 &0x15,%r0,%r0
0000247d: 83 c0 05 CLRB 5(%r0)
00002480: 70 NOP
00002481: a0 14 PUSHW &0x14
00002483: 2c cc fc ef 28 05 00 00 CALL -4(%sp),*$0x528
0000248b: 87 ef e0 04 00 00 e0 40 MOVB *$0x4e0,{uword}%r0
00002493: d0 05 40 40 LLSW3 &0x5,%r0,%r0
00002497: 9c 7f 90 04 00 00 40 ADDW2 $0x490,%r0
0000249e: 87 7f f1 11 00 02 e0 41 MOVB $0x20011f1,{uword}%r1
000024a6: d0 15 41 41 LLSW3 &0x15,%r1,%r1
000024aa: 87 c1 01 e0 42 MOVB 1(%r1),{uword}%r2
000024af: c8 0f 10 42 50 INSFW &0xf,&0x10,%r2,(%r0)
000024b4: 70 NOP
000024b5: 9c 20 ef e8 04 00 00 ADDW2 &0x20,*$0x4e8
000024bc: 70 NOP
000024bd: 87 ef e0 04 00 00 40 MOVB *$0x4e0,%r0
000024c4: 93 ef e0 04 00 00 INCB *$0x4e0
000024ca: 70 NOP
000024cb: 87 40 e0 40 MOVB %r0,{uword}%r0
000024cf: d0 05 40 40 LLSW3 &0x5,%r0,%r0
000024d3: 9c 7f 90 04 00 00 40 ADDW2 $0x490,%r0
000024da: 87 7f f1 11 00 02 e0 41 MOVB $0x20011f1,{uword}%r1
000024e2: c8 03 0c 41 50 INSFW &0x3,&0xc,%r1,(%r0)
000024e7: 70 NOP
000024e8: 87 7f f1 11 00 02 e0 40 MOVB $0x20011f1,{uword}%r0
000024f0: d0 15 40 40 LLSW3 &0x15,%r0,%r0
000024f4: 87 50 e2 40 MOVB (%r0),{uhalf}%r0
000024f8: 86 40 62 MOVH %r0,2(%fp)
000024fb: 70 NOP
000024fc: 97 ef e0 04 00 00 DECB *$0x4e0
00002502: 70 NOP
00002503: 87 ef e0 04 00 00 e0 40 MOVB *$0x4e0,{uword}%r0
0000250b: d0 05 40 40 LLSW3 &0x5,%r0,%r0
0000250f: 9c 7f 90 04 00 00 40 ADDW2 $0x490,%r0
00002516: 84 40 64 MOVW %r0,4(%fp)
00002519: 70 NOP
0000251a: cc 0f 10 d9 04 40 EXTFW &0xf,&0x10,*4(%fp),%r0
00002520: 86 e2 62 e0 41 MOVH {uhalf}2(%fp),{uword}%r1
00002525: d0 08 41 41 LLSW3 &0x8,%r1,%r1
00002529: b0 41 40 ORW2 %r1,%r0
0000252c: c8 0f 10 40 d9 04 INSFW &0xf,&0x10,%r0,*4(%fp)
00002532: 70 NOP
00002533: 93 ef e0 04 00 00 INCB *$0x4e0
00002539: 70 NOP
0000253a: 93 7f f1 11 00 02 INCB $0x20011f1
00002540: 70 NOP
00002541: 3f 0c 7f f1 11 00 02 CMPB &0xc,$0x20011f1
00002548: 4e 29 ff BLEH &0xff29 <0x2471>
0000254b: 84 4f a4 65 00 00 ef 98 04 00 00 MOVW &0x65a4,*$0x498
00002556: 70 NOP
00002557: 84 4f a4 65 00 00 ef 0c 05 00 00 MOVW &0x65a4,*$0x50c
00002562: 70 NOP
00002563: dc 02 7f a4 04 00 00 40 ADDW3 &0x2,$0x4a4,%r0
0000256b: 2b 50 TSTB (%r0)
0000256d: 7f 28 BEB &0x28 <0x2595>
0000256f: 2c 5c 7f 72 5f 00 00 CALL (%sp),$0x5f72
00002576: 2c 5c 7f 78 63 00 00 CALL (%sp),$0x6378
0000257d: 3c 01 40 CMPW &0x1,%r0
00002580: 77 15 BNEB &0x15 <0x2595>
00002582: b0 4f 00 00 00 80 7f 5c 08 00 02 ORW2 &0x80000000,$0x200085c
0000258d: 70 NOP
0000258e: 2c 5c 7f e0 5d 00 00 CALL (%sp),$0x5de0
00002595: 3c 4f ef be ed fe 7f 64 08 00 02 CMPW &0xfeedbeef,$0x2000864
000025a0: 7f 2c BEB &0x2c <0x25cc>
000025a2: 3c 4f 0d f0 ad 8b 7f 64 08 00 02 CMPW &0x8badf00d,$0x2000864
000025ad: 7f 1f BEB &0x1f <0x25cc>
000025af: 3c 4f 1e ac eb ad 7f 64 08 00 02 CMPW &0xadebac1e,$0x2000864
000025ba: 7f 12 BEB &0x12 <0x25cc>
000025bc: 2c 5c af 80 00 CALL (%sp),0x80(%pc)
000025c1: 28 40 TSTW %r0
000025c3: 77 09 BNEB &0x9 <0x25cc>
000025c5: 2c 5c 7f e0 5d 00 00 CALL (%sp),$0x5de0
000025cc: 2c 5c 7f 72 5f 00 00 CALL (%sp),$0x5f72
000025d3: 24 7f 01 1a 00 00 JMP $0x1a01
000025d9: 04 c9 e8 4c MOVAW -24(%fp),%sp
000025dd: 20 49 POPW %fp
000025df: 08 RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Routine that sets the "Self-config failure" flag in 0x200085C
;;
000025e0: 10 49 SAVE %fp
000025e2: 9c 4f 00 00 00 00 4c ADDW2 &0x0,%sp
000025e9: 86 e2 7f 02 40 04 00 e0 40 MOVH {uhalf}$0x44002,{uword}%r0
000025f2: 38 40 4f 00 80 00 00 BITW %r0,&0x8000
000025f9: 7f 0c BEB &0xc <0x2605>
000025fb: 87 01 7f 27 40 04 00 MOVB &0x1,$0x44027
00002602: 70 NOP
00002603: 7b 32 BRB &0x32 <0x2635>
00002605: 84 4f ef be ed fe ef 8c 04 00 00 MOVW &0xfeedbeef,*$0x48c
00002610: 70 NOP
00002611: 2c 5c 7f 72 5f 00 00 CALL (%sp),$0x5f72
00002618: 87 01 7f 1f 40 04 00 MOVB &0x1,$0x4401f
0000261f: 70 NOP
;; This appears to set a flag meaning "Self-config failure" in the
;; failure flags.
00002620: b0 01 7f 5c 08 00 02 ORW2 &0x1,$0x200085c
00002627: 70 NOP
00002628: 2c 5c 7f e0 5d 00 00 CALL (%sp),$0x5de0
0000262f: 24 7f f0 65 00 00 JMP $0x65f0
00002635: 04 c9 e8 4c MOVAW -24(%fp),%sp
00002639: 20 49 POPW %fp
0000263b: 08 RET
0000263c: 10 47 SAVE %r7
0000263e: 9c 4f 00 00 00 00 4c ADDW2 &0x0,%sp
00002645: 84 4f 00 40 00 02 48 MOVW &0x2004000,%r8
0000264c: 84 4f 00 00 04 02 47 MOVW &0x2040000,%r7
00002653: 7b 3b BRB &0x3b <0x268e>
00002655: 87 5f ff 00 58 MOVB &0xff,(%r8)
0000265a: 70 NOP
0000265b: 3f 5f ff 00 58 CMPB &0xff,(%r8)
00002660: 7f 04 BEB &0x4 <0x2664>
00002662: 7b 31 BRB &0x31 <0x2693>
00002664: 87 5f aa 00 58 MOVB &0xaa,(%r8)
00002669: 70 NOP
0000266a: 3f 5f aa 00 58 CMPB &0xaa,(%r8)
0000266f: 7f 04 BEB &0x4 <0x2673>
00002671: 7b 22 BRB &0x22 <0x2693>
00002673: 87 6f 55 58 MOVB &0x55,(%r8)
00002677: 70 NOP
00002678: 3f 6f 55 58 CMPB &0x55,(%r8)
0000267c: 7f 04 BEB &0x4 <0x2680>
0000267e: 7b 15 BRB &0x15 <0x2693>
00002680: 83 58 CLRB (%r8)
00002682: 70 NOP
00002683: 84 48 40 MOVW %r8,%r0
00002686: 90 48 INCW %r8
00002688: 2b 50 TSTB (%r0)
0000268a: 7f 04 BEB &0x4 <0x268e>
0000268c: 7b 07 BRB &0x7 <0x2693>
0000268e: 3c 47 48 CMPW %r7,%r8
00002691: 5b c4 BLUB &0xc4 <0x2655>
00002693: 3c 47 48 CMPW %r7,%r8
00002696: 53 1a BGEUB &0x1a <0x26b0>
00002698: b0 08 7f 5c 08 00 02 ORW2 &0x8,$0x200085c
0000269f: 70 NOP
000026a0: 84 4f ef be ed fe 7f 64 08 00 02 MOVW &0xfeedbeef,$0x2000864
000026ab: 70 NOP
000026ac: 80 40 CLRW %r0
000026ae: 7b 07 BRB &0x7 <0x26b5>
000026b0: 84 01 40 MOVW &0x1,%r0
000026b3: 7b 02 BRB &0x2 <0x26b5>
000026b5: 04 c9 f0 4c MOVAW -16(%fp),%sp
000026b9: 20 48 POPW %r8
000026bb: 20 47 POPW %r7
000026bd: 20 49 POPW %fp
000026bf: 08 RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; These look like UART tests, specifically testing the Tx/Rx buffer
;;
000026c0: 10 49 SAVE %fp
000026c2: 9c 4f 04 00 00 00 4c ADDW2 &0x4,%sp
;; Set up the UART for our test. These three commands are as follows:
;; 0x20 = Reset Receiver (Disable receiver, flush FIFO)
;; 0x30 = Start Break (Forces TxDA output low)
;; 0x10 = Reset MR pointer. Causes channel A MR pointer to point to
;; channel 1.
000026c9: 87 20 7f 02 90 04 00 MOVB &0x20,$0x49002
000026d0: 70 NOP
000026d1: 87 30 7f 02 90 04 00 MOVB &0x30,$0x49002
000026d8: 70 NOP
000026d9: 87 10 7f 02 90 04 00 MOVB &0x10,$0x49002
000026e0: 70 NOP
;; Now set bit 4 of the MRA (no parity)
000026e1: 87 7f 00 90 04 00 e2 40 MOVB $0x49000,{uhalf}%r0
000026e9: 86 40 59 MOVH %r0,(%fp)
000026ec: 70 NOP
000026ed: b3 5f 80 00 7f 00 90 04 00 ORB2 &0x80,$0x49000
000026f6: 70 NOP
;; Now reset chanel a break change interrupt.
000026f7: 87 05 7f 02 90 04 00 MOVB &0x5,$0x49002
000026fe: 70 NOP
;; Run the UART delay clock for 14 clock cycles
000026ff: a0 14 PUSHW &0x14
00002701: 2c cc fc ef 28 05 00 00 CALL -4(%sp),*$0x528
;; Write 0x55 into the UART's buffer.
00002709: 87 6f 55 7f 03 90 04 00 MOVB &0x55,$0x49003
00002711: 70 NOP
;; Run the UART delay clock for 14 clock cycles
00002712: a0 14 PUSHW &0x14
00002714: 2c cc fc ef 28 05 00 00 CALL -4(%sp),*$0x528
;; Check to see if UART status bit RxRDY is set. If it is, go to next
;; check. If not, return.
0000271c: 3b 7f 01 90 04 00 01 BITB $0x49001,&0x1
00002723: 77 0a BNEB &0xa <0x272d>
00002725: 80 40 CLRW %r0
00002727: 24 7f 73 29 00 00 JMP $0x2973
;; Check if 0x55 is in the UART's buffer. If it is, go to next check.
;; If not, return.
0000272d: 3f 6f 55 7f 03 90 04 00 CMPB &0x55,$0x49003
00002735: 7f 0a BEB &0xa <0x273f>
00002737: 80 40 CLRW %r0
00002739: 24 7f 73 29 00 00 JMP $0x2973
;; Check to see if UART status bit RxRDY is set. If it is, go to next
;; check. If not, return.
0000273f: 3b 7f 01 90 04 00 01 BITB $0x49001,&0x1
00002746: 7f 0a BEB &0xa <0x2750>
00002748: 80 40 CLRW %r0
;; Write 0xAA to the TX buffer
0000274a: 24 7f 73 29 00 00 JMP $0x2973
00002750: 87 5f aa 00 7f 03 90 04 00 MOVB &0xaa,$0x49003
00002759: 70 NOP
;; Call UART delay for 14 clock cycles
0000275a: a0 14 PUSHW &0x14
0000275c: 2c cc fc ef 28 05 00 00 CALL -4(%sp),*$0x528
;; Check to see if RxRDY is set again
00002764: 3b 7f 01 90 04 00 01 BITB $0x49001,&0x1
0000276b: 77 0a BNEB &0xa <0x2775>
0000276d: 80 40 CLRW %r0
0000276f: 24 7f 73 29 00 00 JMP $0x2973
00002775: 3f 5f aa 00 7f 03 90 04 00 CMPB &0xaa,$0x49003
0000277e: 7f 0a BEB &0xa <0x2788>
00002780: 80 40 CLRW %r0
00002782: 24 7f 73 29 00 00 JMP $0x2973
00002788: 87 20 7f 02 90 04 00 MOVB &0x20,$0x49002
0000278f: 70 NOP
00002790: 87 30 7f 02 90 04 00 MOVB &0x30,$0x49002
00002797: 70 NOP
00002798: 87 10 7f 02 90 04 00 MOVB &0x10,$0x49002
0000279f: 70 NOP
000027a0: 87 7f 00 90 04 00 e2 40 MOVB $0x49000,{uhalf}%r0
000027a8: 86 40 59 MOVH %r0,(%fp)
000027ab: 70 NOP
000027ac: bb 6f 7f 7f 00 90 04 00 ANDB2 &0x7f,$0x49000
000027b4: 70 NOP
000027b5: 87 05 7f 02 90 04 00 MOVB &0x5,$0x49002
000027bc: 70 NOP
000027bd: a0 14 PUSHW &0x14
000027bf: 2c cc fc ef 28 05 00 00 CALL -4(%sp),*$0x528
000027c7: 87 20 7f 0a 90 04 00 MOVB &0x20,$0x4900a
000027ce: 70 NOP
000027cf: 87 30 7f 0a 90 04 00 MOVB &0x30,$0x4900a
000027d6: 70 NOP
000027d7: 87 10 7f 0a 90 04 00 MOVB &0x10,$0x4900a
000027de: 70 NOP
000027df: 87 7f 08 90 04 00 e2 40 MOVB $0x49008,{uhalf}%r0
000027e7: 86 40 59 MOVH %r0,(%fp)
000027ea: 70 NOP
000027eb: b3 5f 80 00 7f 08 90 04 00 ORB2 &0x80,$0x49008
000027f4: 70 NOP
000027f5: 87 05 7f 0a 90 04 00 MOVB &0x5,$0x4900a
000027fc: 70 NOP
000027fd: a0 14 PUSHW &0x14
000027ff: 2c cc fc ef 28 05 00 00 CALL -4(%sp),*$0x528
00002807: 87 6f 55 7f 0b 90 04 00 MOVB &0x55,$0x4900b
0000280f: 70 NOP
00002810: a0 14 PUSHW &0x14
00002812: 2c cc fc ef 28 05 00 00 CALL -4(%sp),*$0x528
0000281a: 3b 7f 09 90 04 00 01 BITB $0x49009,&0x1
00002821: 77 0a BNEB &0xa <0x282b>
00002823: 80 40 CLRW %r0
00002825: 24 7f 73 29 00 00 JMP $0x2973
0000282b: 3f 6f 55 7f 0b 90 04 00 CMPB &0x55,$0x4900b
00002833: 7f 0a BEB &0xa <0x283d>
00002835: 80 40 CLRW %r0
00002837: 24 7f 73 29 00 00 JMP $0x2973
0000283d: 3b 7f 09 90 04 00 01 BITB $0x49009,&0x1
00002844: 7f 0a BEB &0xa <0x284e>
00002846: 80 40 CLRW %r0
00002848: 24 7f 73 29 00 00 JMP $0x2973
0000284e: 87 5f aa 00 7f 0b 90 04 00 MOVB &0xaa,$0x4900b
00002857: 70 NOP
00002858: a0 14 PUSHW &0x14
0000285a: 2c cc fc ef 28 05 00 00 CALL -4(%sp),*$0x528
00002862: 3b 7f 09 90 04 00 01 BITB $0x49009,&0x1
00002869: 77 0a BNEB &0xa <0x2873>
0000286b: 80 40 CLRW %r0
0000286d: 24 7f 73 29 00 00 JMP $0x2973
00002873: 3f 5f aa 00 7f 0b 90 04 00 CMPB &0xaa,$0x4900b
0000287c: 7f 0a BEB &0xa <0x2886>
0000287e: 80 40 CLRW %r0
00002880: 24 7f 73 29 00 00 JMP $0x2973
00002886: 87 20 7f 0a 90 04 00 MOVB &0x20,$0x4900a
0000288d: 70 NOP
0000288e: 87 30 7f 0a 90 04 00 MOVB &0x30,$0x4900a
00002895: 70 NOP
00002896: 87 10 7f 0a 90 04 00 MOVB &0x10,$0x4900a
0000289d: 70 NOP
0000289e: 87 7f 08 90 04 00 e0 40 MOVB $0x49008,{uword}%r0
000028a6: d0 08 40 40 LLSW3 &0x8,%r0,%r0
000028aa: 86 e2 40 e0 40 MOVH {uhalf}%r0,{uword}%r0
000028af: 87 7f 08 90 04 00 e0 41 MOVB $0x49008,{uword}%r1
000028b7: 84 4f 7f ff 00 00 42 MOVW &0xff7f,%r2
000028be: 86 e2 42 e0 42 MOVH {uhalf}%r2,{uword}%r2
000028c3: b8 42 41 ANDW2 %r2,%r1
000028c6: 86 e2 41 e0 41 MOVH {uhalf}%r1,{uword}%r1
000028cb: b0 41 40 ORW2 %r1,%r0
000028ce: 86 40 59 MOVH %r0,(%fp)
000028d1: 70 NOP
000028d2: 87 10 7f 02 90 04 00 MOVB &0x10,$0x49002
000028d9: 70 NOP
000028da: 87 10 7f 0a 90 04 00 MOVB &0x10,$0x4900a
000028e1: 70 NOP
000028e2: 87 7f 00 90 04 00 7f 08 90 04 00 MOVB $0x49000,$0x49008
000028ed: 70 NOP
000028ee: 87 7f 00 90 04 00 7f 08 90 04 00 MOVB $0x49000,$0x49008
000028f9: 70 NOP
000028fa: 87 05 7f 0a 90 04 00 MOVB &0x5,$0x4900a
00002901: 70 NOP
00002902: a0 14 PUSHW &0x14
00002904: 2c cc fc ef 28 05 00 00 CALL -4(%sp),*$0x528
0000290c: 87 20 7f 03 90 04 00 MOVB &0x20,$0x49003
00002913: 70 NOP
00002914: a0 14 PUSHW &0x14
00002916: 2c cc fc ef 28 05 00 00 CALL -4(%sp),*$0x528
0000291e: 3b 7f 09 90 04 00 01 BITB $0x49009,&0x1
00002925: 7f 10 BEB &0x10 <0x2935>
00002927: 3f 20 7f 0b 90 04 00 CMPB &0x20,$0x4900b
0000292e: 77 07 BNEB &0x7 <0x2935>
00002930: 84 02 40 MOVW &0x2,%r0
00002933: 7b 40 BRB &0x40 <0x2973>
00002935: 87 20 7f 0a 90 04 00 MOVB &0x20,$0x4900a
0000293c: 70 NOP
0000293d: 87 30 7f 0a 90 04 00 MOVB &0x30,$0x4900a
00002944: 70 NOP
00002945: 87 10 7f 0a 90 04 00 MOVB &0x10,$0x4900a
0000294c: 70 NOP
0000294d: 86 e2 59 e0 40 MOVH {uhalf}(%fp),{uword}%r0
00002952: d4 08 40 40 LRSW3 &0x8,%r0,%r0
00002956: 87 40 7f 08 90 04 00 MOVB %r0,$0x49008
0000295d: 70 NOP
0000295e: 87 61 7f 08 90 04 00 MOVB 1(%fp),$0x49008
00002965: 70 NOP
00002966: 87 05 7f 0a 90 04 00 MOVB &0x5,$0x4900a
0000296d: 70 NOP
0000296e: 84 01 40 MOVW &0x1,%r0
00002971: 7b 02 BRB &0x2 <0x2973>
00002973: 04 c9 e8 4c MOVAW -24(%fp),%sp
00002977: 20 49 POPW %fp
00002979: 08 RET
0000297a: 70 NOP
0000297b: 70 NOP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Set up RAM size. This procedure tests two bits at 0x4C003, and uses
;;; them to determine how much RAM is installed in the system.
;;; The mapping is essentially:
;;;
;;; 0x4C003 Installed RAM
;;; --------- -------------
;;; 00b 512KB
;;; 01b 2MB
;;; 10b 1MB
;;; 11b 4MB
;;;
0000297c: 10 45 SAVE %r5
0000297e: 9c 4f 00 00 00 00 4c ADDW2 &0x0,%sp
00002985: 84 4f c4 2a 00 00 7f f4 11 00 02 MOVW &0x2ac4,$0x20011f4
00002990: 70 NOP
00002991: 84 4f dc 2a 00 00 7f f8 11 00 02 MOVW &0x2adc,$0x20011f8
0000299c: 70 NOP
0000299d: 83 ef c4 04 00 00 CLRB *$0x4c4
000029a3: 70 NOP
000029a4: 83 7f f2 11 00 02 CLRB $0x20011f2
000029aa: 70 NOP
000029ab: 80 46 CLRW %r6
000029ad: 3b 7f 03 c0 04 00 01 BITB $0x4c003,&0x1
000029b4: 7f 0e BEB &0xe <0x29c2>
000029b6: 84 4f 00 00 10 00 48 MOVW &0x100000,%r8
000029bd: 84 48 40 MOVW %r8,%r0
000029c0: 7b 0c BRB &0xc <0x29cc>
000029c2: 84 4f 00 00 04 00 48 MOVW &0x40000,%r8
000029c9: 84 48 40 MOVW %r8,%r0
000029cc: 3b 7f 03 c0 04 00 02 BITB $0x4c003,&0x2
000029d3: 7f 06 BEB &0x6 <0x29d9>
000029d5: d0 01 48 48 LLSW3 &0x1,%r8,%r8
000029d9: 2c 5c ef c0 04 00 00 CALL (%sp),*$0x4c0
000029e0: 2b 7f f2 11 00 02 TSTB $0x20011f2
000029e6: 7f 08 BEB &0x8 <0x29ee>
000029e8: 24 7f 97 2a 00 00 JMP $0x2a97
000029ee: 3c 4f d0 f1 02 3b 7f 6c 08 00 02 CMPW &0x3b02f1d0,$0x200086c
000029f9: 77 09 BNEB &0x9 <0x2a02>
000029fb: 84 88 00 00 00 02 47 MOVW 0x2000000(%r8),%r7
00002a02: 84 4f ef be ed fe 88 00 00 00 02 MOVW &0xfeedbeef,0x2000000(%r8)
00002a0d: 70 NOP
00002a0e: 3c 4f ef be ed fe 88 00 00 00 02 CMPW &0xfeedbeef,0x2000000(%r8)
00002a19: 77 05 BNEB &0x5 <0x2a1e>
00002a1b: 84 01 46 MOVW &0x1,%r6
00002a1e: 84 47 88 00 00 00 02 MOVW %r7,0x2000000(%r8)
00002a25: 70 NOP
00002a26: 28 46 TSTW %r6
00002a28: 7f 6f BEB &0x6f <0x2a97>
00002a2a: 3c 4f 00 00 20 00 48 CMPW &0x200000,%r8
00002a31: 77 66 BNEB &0x66 <0x2a97>
00002a33: e8 03 48 40 MULW3 &0x3,%r8,%r0
00002a37: ac 04 40 DIVW2 &0x4,%r0
00002a3a: 70 NOP
00002a3b: 84 40 48 MOVW %r0,%r8
00002a3e: d0 01 48 40 LLSW3 &0x1,%r8,%r0
00002a42: 84 40 45 MOVW %r0,%r5
00002a45: 83 7f f2 11 00 02 CLRB $0x20011f2
00002a4b: 70 NOP
00002a4c: 2c 5c ef c0 04 00 00 CALL (%sp),*$0x4c0
00002a53: 2b 7f f2 11 00 02 TSTB $0x20011f2
00002a59: 77 3e BNEB &0x3e <0x2a97>
00002a5b: 3c 4f d0 f1 02 3b 7f 6c 08 00 02 CMPW &0x3b02f1d0,$0x200086c
00002a66: 77 09 BNEB &0x9 <0x2a6f>
00002a68: 84 85 00 00 00 02 47 MOVW 0x2000000(%r5),%r7
00002a6f: 84 4f ef be ed fe 85 00 00 00 02 MOVW &0xfeedbeef,0x2000000(%r5)
00002a7a: 70 NOP
00002a7b: 3c 4f ef be ed fe 85 00 00 00 02 CMPW &0xfeedbeef,0x2000000(%r5)
00002a86: 77 09 BNEB &0x9 <0x2a8f>
00002a88: 84 4f 00 00 20 00 48 MOVW &0x200000,%r8
00002a8f: 84 47 85 00 00 00 02 MOVW %r7,0x2000000(%r5)
00002a96: 70 NOP
00002a97: 84 4f a4 65 00 00 7f f4 11 00 02 MOVW &0x65a4,$0x20011f4
00002aa2: 70 NOP
00002aa3: 84 4f 04 65 00 00 7f f8 11 00 02 MOVW &0x6504,$0x20011f8
00002aae: 70 NOP
00002aaf: d0 46 48 40 LLSW3 %r6,%r8,%r0
00002ab3: 7b 02 BRB &0x2 <0x2ab5>
00002ab5: 04 c9 f8 4c MOVAW -8(%fp),%sp
00002ab9: 20 48 POPW %r8
00002abb: 20 47 POPW %r7
00002abd: 20 46 POPW %r6
00002abf: 20 45 POPW %r5
00002ac1: 20 49 POPW %fp
00002ac3: 08 RET
00002ac4: 10 49 SAVE %fp
00002ac6: 9c 4f 00 00 00 00 4c ADDW2 &0x0,%sp
00002acd: 87 01 7f f2 11 00 02 MOVB &0x1,$0x20011f2
00002ad4: 70 NOP
00002ad5: 04 c9 e8 4c MOVAW -24(%fp),%sp
00002ad9: 20 49 POPW %fp
00002adb: 08 RET
00002adc: 10 49 SAVE %fp
00002ade: 9c 4f 00 00 00 00 4c ADDW2 &0x0,%sp
00002ae5: 84 4f 00 e1 81 00 cd 0c MOVW &0x81e100,12(%pcbp)
00002aed: 70 NOP
00002aee: 04 c9 e8 4c MOVAW -24(%fp),%sp
00002af2: 20 49 POPW %fp
00002af4: 08 RET
00002af5: 70 NOP
00002af6: 70 NOP
00002af7: 70 NOP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Exception Return Point Routine (excret)
;;
00002af8: 84 cc f8 7f fc 11 00 02 MOVW -8(%sp),$0x20011fc
00002b00: 70 NOP
00002b01: 08 RET
00002b02: 70 NOP
00002b03: 70 NOP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Unknown Routine
;;
00002b04: 10 49 SAVE %fp
00002b06: 9c 4f b8 01 00 00 4c ADDW2 &0x1b8,%sp
00002b0d: a0 4f 0d 30 04 00 PUSHW &0x4300d
00002b13: e0 59 PUSHAW (%fp)
00002b15: a0 2d PUSHW &0x2d
00002b17: 2c cc f4 7f 24 52 00 00 CALL -12(%sp),$0x5224
;; Print "\nEnter name of program to execute [%s]"
00002b1f: a0 4f 2c 06 00 00 PUSHW &0x62c
00002b25: e0 59 PUSHAW (%fp)
00002b27: 2c cc f8 7f e4 44 00 00 CALL -8(%sp),$0x44e4
00002b2f: a0 00 PUSHW &0x0
00002b31: 2c cc fc ef 40 05 00 00 CALL -4(%sp),*$0x540
00002b39: dc 02 7f a0 04 00 00 40 ADDW3 &0x2,$0x4a0,%r0
00002b41: a0 40 PUSHW %r0
00002b43: 2c cc fc 7f 60 43 00 00 CALL -4(%sp),$0x4360
00002b4b: 3c ff 40 CMPW &-1,%r0
00002b4e: 77 20 BNEB &0x20 <0x2b6e>
00002b50: a0 01 PUSHW &0x1
00002b52: 2c cc fc ef 40 05 00 00 CALL -4(%sp),*$0x540
;; Print "\n"
00002b5a: a0 4f 57 06 00 00 PUSHW &0x657
00002b60: 2c cc fc 7f e4 44 00 00 CALL -4(%sp),$0x44e4
00002b68: 24 7f ab 3a 00 00 JMP $0x3aab
00002b6e: a0 01 PUSHW &0x1
00002b70: 2c cc fc ef 40 05 00 00 CALL -4(%sp),*$0x540
00002b78: dc 02 7f a0 04 00 00 40 ADDW3 &0x2,$0x4a0,%r0
00002b80: a0 40 PUSHW %r0
00002b82: a0 4f 59 06 00 00 PUSHW &0x659
00002b88: 2c cc f8 7f 68 7f 00 00 CALL -8(%sp),$0x7f68
00002b90: 28 40 TSTW %r0
00002b92: 7f 08 BEB &0x8 <0x2b9a>
00002b94: 24 7f 6b 2c 00 00 JMP $0x2c6b
;; Print "\nenter old password: "
00002b9a: a0 4f 60 06 00 00 PUSHW &0x660
00002ba0: 2c cc fc 7f e4 44 00 00 CALL -4(%sp),$0x44e4
00002ba8: e0 c9 50 PUSHAW 80(%fp)
00002bab: 2c cc fc af 09 0f CALL -4(%sp),0xf09(%pc)
00002bb1: 28 40 TSTW %r0
00002bb3: 77 07 BNEB &0x7 <0x2bba>
00002bb5: 2c 5c af 59 0f CALL (%sp),0xf59(%pc)
00002bba: a0 4f 00 30 04 00 PUSHW &0x43000
00002bc0: e0 c9 5a PUSHAW 90(%fp)
00002bc3: a0 09 PUSHW &0x9
00002bc5: 2c cc f4 7f 24 52 00 00 CALL -12(%sp),$0x5224
00002bcd: e0 c9 50 PUSHAW 80(%fp)
00002bd0: e0 c9 5a PUSHAW 90(%fp)
00002bd3: 2c cc f8 7f 68 7f 00 00 CALL -8(%sp),$0x7f68
00002bdb: 28 40 TSTW %r0
00002bdd: 7f 07 BEB &0x7 <0x2be4>
00002bdf: 2c 5c af 2f 0f CALL (%sp),0xf2f(%pc)
;; Print "\nenter new password: "
00002be4: a0 4f 76 06 00 00 PUSHW &0x676
00002bea: 2c cc fc 7f e4 44 00 00 CALL -4(%sp),$0x44e4
00002bf2: e0 59 PUSHAW (%fp)
00002bf4: 2c cc fc af c0 0e CALL -4(%sp),0xec0(%pc)
00002bfa: 28 40 TSTW %r0
00002bfc: 77 07 BNEB &0x7 <0x2c03>
00002bfe: 2c 5c af 10 0f CALL (%sp),0xf10(%pc)
;; Print "\nconfirmation: "
00002c03: a0 4f 8c 06 00 00 PUSHW &0x68c
00002c09: 2c cc fc 7f e4 44 00 00 CALL -4(%sp),$0x44e4
00002c11: e0 c9 50 PUSHAW 80(%fp)
00002c14: 2c cc fc af a0 0e CALL -4(%sp),0xea0(%pc)
00002c1a: 28 40 TSTW %r0
00002c1c: 77 07 BNEB &0x7 <0x2c23>
00002c1e: 2c 5c af f0 0e CALL (%sp),0xef0(%pc)
00002c23: e0 c9 50 PUSHAW 80(%fp)
00002c26: e0 59 PUSHAW (%fp)
00002c28: 2c cc f8 7f 68 7f 00 00 CALL -8(%sp),$0x7f68
00002c30: 28 40 TSTW %r0
00002c32: 7f 07 BEB &0x7 <0x2c39>
00002c34: 2c 5c af da 0e CALL (%sp),0xeda(%pc)
;; Print "\nnewkey"
00002c39: a0 4f 9c 06 00 00 PUSHW &0x69c
00002c3f: 2c cc fc 7f e4 44 00 00 CALL -4(%sp),$0x44e4
00002c47: e0 59 PUSHAW (%fp)
00002c49: a0 4f 00 30 04 00 PUSHW &0x43000
00002c4f: e0 59 PUSHAW (%fp)
00002c51: 2c cc fc 7f 98 7f 00 00 CALL -4(%sp),$0x7f98
00002c59: 90 40 INCW %r0
00002c5b: a0 40 PUSHW %r0
00002c5d: 2c cc f4 7f a0 52 00 00 CALL -12(%sp),$0x52a0
00002c65: 24 7f a8 3a 00 00 JMP $0x3aa8
00002c6b: dc 02 7f a0 04 00 00 40 ADDW3 &0x2,$0x4a0,%r0
00002c73: a0 40 PUSHW %r0
00002c75: a0 4f 9e 06 00 00 PUSHW &0x69e
00002c7b: 2c cc f8 7f 68 7f 00 00 CALL -8(%sp),$0x7f68
00002c83: 28 40 TSTW %r0
00002c85: 7f 08 BEB &0x8 <0x2c8d>
00002c87: 24 7f 52 2d 00 00 JMP $0x2d52
;; Print "Creating a floppy key to to enable clearing of saved NVRAM information\n"
00002c8d: a0 4f a5 06 00 00 PUSHW &0x6a5
00002c93: 2c cc fc 7f e4 44 00 00 CALL -4(%sp),$0x44e4
00002c9b: 83 59 CLRB (%fp)
00002c9d: 70 NOP
00002c9e: 7b 26 BRB &0x26 <0x2cc4>
;; Print "Insert a formatted floppy, then type 'go' (q to quit)"
00002ca0: a0 4f ef 06 00 00 PUSHW &0x6ef
00002ca6: 2c cc fc 7f e4 44 00 00 CALL -4(%sp),$0x44e4
00002cae: e0 59 PUSHAW (%fp)
00002cb0: 2c cc fc 7f 60 43 00 00 CALL -4(%sp),$0x4360
00002cb8: 3f 6f 71 59 CMPB &0x71,(%fp)
00002cbc: 77 08 BNEB &0x8 <0x2cc4>
00002cbe: 24 7f ab 3a 00 00 JMP $0x3aab
00002cc4: e0 59 PUSHAW (%fp)
00002cc6: a0 4f ec 06 00 00 PUSHW &0x6ec
00002ccc: 2c cc f8 7f 68 7f 00 00 CALL -8(%sp),$0x7f68
00002cd4: 28 40 TSTW %r0
00002cd6: 77 ca BNEB &0xca <0x2ca0>
00002cd8: dc 03 7f 08 05 00 00 40 ADDW3 &0x3,$0x508,%r0
00002ce0: 87 50 c9 5a MOVB (%r0),90(%fp)
00002ce4: 70 NOP
00002ce5: dc 07 7f 08 05 00 00 40 ADDW3 &0x7,$0x508,%r0
00002ced: 87 50 c9 5b MOVB (%r0),91(%fp)
00002cf1: 70 NOP
00002cf2: dc 0b 7f 08 05 00 00 40 ADDW3 &0xb,$0x508,%r0
00002cfa: 87 50 c9 5c MOVB (%r0),92(%fp)
00002cfe: 70 NOP
00002cff: dc 0f 7f 08 05 00 00 40 ADDW3 &0xf,$0x508,%r0
00002d07: 87 50 c9 5d MOVB (%r0),93(%fp)
00002d0b: 70 NOP
00002d0c: a0 00 PUSHW &0x0
00002d0e: e0 c9 5a PUSHAW 90(%fp)
00002d11: a0 01 PUSHW &0x1
00002d13: a0 03 PUSHW &0x3
00002d15: 2c cc f0 7f 2c 7b 00 00 CALL -16(%sp),$0x7b2c
00002d1d: 28 40 TSTW %r0
00002d1f: 77 1f BNEB &0x1f <0x2d3e>
00002d21: b0 20 7f 5c 08 00 02 ORW2 &0x20,$0x200085c
00002d28: 70 NOP
00002d29: 2c 5c 7f e0 5d 00 00 CALL (%sp),$0x5de0
00002d30: a0 4f ef be ed fe PUSHW &0xfeedbeef
00002d36: 2c cc fc 7f 22 63 00 00 CALL -4(%sp),$0x6322
00002d3e: a0 4f 27 07 00 00 PUSHW &0x727
00002d44: 2c cc fc 7f e4 44 00 00 CALL -4(%sp),$0x44e4
00002d4c: 24 7f a8 3a 00 00 JMP $0x3aa8
00002d52: dc 02 7f a0 04 00 00 40 ADDW3 &0x2,$0x4a0,%r0
00002d5a: a0 40 PUSHW %r0
00002d5c: a0 4f 4a 07 00 00 PUSHW &0x74a
00002d62: 2c cc f8 7f 68 7f 00 00 CALL -8(%sp),$0x7f68
00002d6a: 28 40 TSTW %r0
00002d6c: 77 1d BNEB &0x1d <0x2d89>
00002d6e: 2c 5c 7f 00 40 00 02 CALL (%sp),$0x2004000
00002d75: a0 4f ef be ed fe PUSHW &0xfeedbeef
00002d7b: 2c cc fc 7f 22 63 00 00 CALL -4(%sp),$0x6322
00002d83: 24 7f a8 3a 00 00 JMP $0x3aa8
00002d89: dc 02 7f a0 04 00 00 40 ADDW3 &0x2,$0x4a0,%r0
00002d91: a0 40 PUSHW %r0
00002d93: a0 4f 52 07 00 00 PUSHW &0x752
00002d99: 2c cc f8 7f 68 7f 00 00 CALL -8(%sp),$0x7f68
00002da1: 28 40 TSTW %r0
00002da3: 7f 08 BEB &0x8 <0x2dab>
00002da5: 24 7f 38 2e 00 00 JMP $0x2e38
;; Print "Created: 05/31/85"
00002dab: a0 4f 5a 07 00 00 PUSHW &0x75a
00002db1: a0 4f 58 11 00 00 PUSHW &0x1158
00002db7: 2c cc f8 7f e4 44 00 00 CALL -8(%sp),$0x44e4
;; Print "Issue: %s"
00002dbf: a0 4f 68 07 00 00 PUSHW &0x768
00002dc5: a0 7f f0 7f 00 00 PUSHW $0x7ff0
00002dcb: 2c cc f8 7f e4 44 00 00 CALL -8(%sp),$0x44e4
;; Print "Release: 1.2.1.PF3"
00002dd3: a0 4f 76 07 00 00 PUSHW &0x776
00002dd9: a0 4f 68 11 00 00 PUSHW &0x1168
00002ddf: a0 4f 64 11 00 00 PUSHW &0x1164
00002de5: 2c cc f4 7f e4 44 00 00 CALL -12(%sp),$0x44e4
00002ded: a0 4f 8c 07 00 00 PUSHW &0x78c
00002df3: 87 7f f3 7f 00 00 e0 40 MOVB $0x7ff3,{uword}%r0
00002dfb: d0 08 40 40 LLSW3 &0x8,%r0,%r0
00002dff: 87 7f f7 7f 00 00 e0 41 MOVB $0x7ff7,{uword}%r1
00002e07: b0 41 40 ORW2 %r1,%r0
00002e0a: d0 08 40 40 LLSW3 &0x8,%r0,%r0
00002e0e: 87 7f fb 7f 00 00 e0 41 MOVB $0x7ffb,{uword}%r1
00002e16: b0 41 40 ORW2 %r1,%r0
00002e19: d0 08 40 40 LLSW3 &0x8,%r0,%r0
00002e1d: 87 7f ff 7f 00 00 e0 41 MOVB $0x7fff,{uword}%r1
00002e25: b0 41 40 ORW2 %r1,%r0
00002e28: a0 40 PUSHW %r0
00002e2a: 2c cc f8 7f e4 44 00 00 CALL -8(%sp),$0x44e4
00002e32: 24 7f a8 3a 00 00 JMP $0x3aa8
00002e38: dc 02 7f a0 04 00 00 40 ADDW3 &0x2,$0x4a0,%r0
00002e40: a0 40 PUSHW %r0
00002e42: a0 4f a3 07 00 00 PUSHW &0x7a3
00002e48: 2c cc f8 7f 68 7f 00 00 CALL -8(%sp),$0x7f68
00002e50: 28 40 TSTW %r0
00002e52: 77 08 BNEB &0x8 <0x2e5a>
00002e54: 24 7f ab 3a 00 00 JMP $0x3aab
00002e5a: dc 02 7f a0 04 00 00 40 ADDW3 &0x2,$0x4a0,%r0
00002e62: a0 40 PUSHW %r0
00002e64: a0 4f a5 07 00 00 PUSHW &0x7a5
00002e6a: 2c cc f8 7f 68 7f 00 00 CALL -8(%sp),$0x7f68
00002e72: 28 40 TSTW %r0
00002e74: 77 0f BNEB &0xf <0x2e83>
00002e76: 2c 5c 7f 14 4e 00 00 CALL (%sp),$0x4e14
00002e7d: 24 7f a8 3a 00 00 JMP $0x3aa8
00002e83: dc 02 7f a0 04 00 00 40 ADDW3 &0x2,$0x4a0,%r0
00002e8b: a0 40 PUSHW %r0
00002e8d: a0 4f a9 07 00 00 PUSHW &0x7a9
00002e93: 2c cc f8 7f 68 7f 00 00 CALL -8(%sp),$0x7f68
00002e9b: 28 40 TSTW %r0
00002e9d: 77 0f BNEB &0xf <0x2eac>
00002e9f: 2c 5c 7f e6 5f 00 00 CALL (%sp),$0x5fe6
00002ea6: 24 7f a8 3a 00 00 JMP $0x3aa8
00002eac: dc 02 7f a0 04 00 00 40 ADDW3 &0x2,$0x4a0,%r0
00002eb4: a0 40 PUSHW %r0
00002eb6: a0 4f b4 07 00 00 PUSHW &0x7b4
00002ebc: 2c cc f8 7f 68 7f 00 00 CALL -8(%sp),$0x7f68
00002ec4: 28 40 TSTW %r0
00002ec6: 77 0f BNEB &0xf <0x2ed5>
00002ec8: 2c 5c 7f cc 3f 00 00 CALL (%sp),$0x3fcc
00002ecf: 24 7f a8 3a 00 00 JMP $0x3aa8
00002ed5: dc 02 7f a0 04 00 00 40 ADDW3 &0x2,$0x4a0,%r0
00002edd: a0 40 PUSHW %r0
00002edf: a0 4f b9 07 00 00 PUSHW &0x7b9
00002ee5: 2c cc f8 7f 68 7f 00 00 CALL -8(%sp),$0x7f68
00002eed: 28 40 TSTW %r0
00002eef: 77 32 BNEB &0x32 <0x2f21>
;; Print "\nEnter an executable or system file, a directory name, "
00002ef1: a0 4f bb 07 00 00 PUSHW &0x7bb
00002ef7: 2c cc fc 7f e4 44 00 00 CALL -4(%sp),$0x44e4
;; Print "or one of the possible firmware program names:\n\n"
00002eff: a0 4f f3 07 00 00 PUSHW &0x7f3
00002f05: 2c cc fc 7f e4 44 00 00 CALL -4(%sp),$0x44e4
;; Print: "baud edt newkey passwd sysdump version q(uit)"
00002f0d: a0 4f 24 08 00 00 PUSHW &0x824
00002f13: 2c cc fc 7f e4 44 00 00 CALL -4(%sp),$0x44e4
00002f1b: 24 7f a8 3a 00 00 JMP $0x3aa8
00002f21: dc 02 7f a0 04 00 00 40 ADDW3 &0x2,$0x4a0,%r0
00002f29: 2b 50 TSTB (%r0)
00002f2b: 77 16 BNEB &0x16 <0x2f41>
00002f2d: dc 02 7f a0 04 00 00 40 ADDW3 &0x2,$0x4a0,%r0
00002f35: a0 40 PUSHW %r0
00002f37: e0 59 PUSHAW (%fp)
00002f39: 2c cc f8 7f b0 7f 00 00 CALL -8(%sp),$0x7fb0
00002f41: 82 a9 b4 00 CLRH 0xb4(%fp)
00002f45: 70 NOP
00002f46: 7b 5e BRB &0x5e <0x2fa4>
00002f48: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00002f4d: 86 a9 b4 00 e4 41 MOVH 0xb4(%fp),{word}%r1
00002f53: d0 04 41 41 LLSW3 &0x4,%r1,%r1
00002f57: 9c 41 40 ADDW2 %r1,%r0
00002f5a: 82 50 CLRH (%r0)
00002f5c: 70 NOP
00002f5d: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00002f62: 86 a9 b4 00 e4 41 MOVH 0xb4(%fp),{word}%r1
00002f68: d0 04 41 41 LLSW3 &0x4,%r1,%r1
00002f6c: 9c 41 40 ADDW2 %r1,%r0
00002f6f: 82 c0 02 CLRH 2(%r0)
00002f72: 70 NOP
00002f73: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00002f78: 86 a9 b4 00 e4 41 MOVH 0xb4(%fp),{word}%r1
00002f7e: d0 04 41 41 LLSW3 &0x4,%r1,%r1
00002f82: 9c 41 40 ADDW2 %r1,%r0
00002f85: 82 c0 04 CLRH 4(%r0)
00002f88: 70 NOP
00002f89: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00002f8e: 86 a9 b4 00 e4 41 MOVH 0xb4(%fp),{word}%r1
00002f94: d0 04 41 41 LLSW3 &0x4,%r1,%r1
00002f98: 9c 41 40 ADDW2 %r1,%r0
00002f9b: 83 c0 06 CLRB 6(%r0)
00002f9e: 70 NOP
00002f9f: 92 a9 b4 00 INCH 0xb4(%fp)
00002fa3: 70 NOP
00002fa4: 3e 10 a9 b4 00 CMPH &0x10,0xb4(%fp)
00002fa9: 4b 9f BLB &0x9f <0x2f48>
00002fab: 83 a9 ac 00 CLRB 0xac(%fp)
00002faf: 70 NOP
00002fb0: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00002fb5: 87 a9 ac 00 e0 41 MOVB 0xac(%fp),{uword}%r1
00002fbb: d0 04 41 41 LLSW3 &0x4,%r1,%r1
00002fbf: 9c 41 40 ADDW2 %r1,%r0
00002fc2: 9c 06 40 ADDW2 &0x6,%r0
00002fc5: a0 40 PUSHW %r0
00002fc7: dc 08 7f 90 04 00 00 40 ADDW3 &0x8,$0x490,%r0
00002fcf: dc 02 50 40 ADDW3 &0x2,(%r0),%r0
00002fd3: a0 40 PUSHW %r0
00002fd5: 2c cc f8 7f b0 7f 00 00 CALL -8(%sp),$0x7fb0
00002fdd: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00002fe2: 87 a9 ac 00 e0 41 MOVB 0xac(%fp),{uword}%r1
00002fe8: d0 04 41 41 LLSW3 &0x4,%r1,%r1
00002fec: 9c 41 40 ADDW2 %r1,%r0
00002fef: 86 01 c0 02 MOVH &0x1,2(%r0)
00002ff3: 70 NOP
00002ff4: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00002ff9: 87 a9 ac 00 41 MOVB 0xac(%fp),%r1
00002ffe: 93 a9 ac 00 INCB 0xac(%fp)
00003002: 70 NOP
00003003: 87 41 e0 41 MOVB %r1,{uword}%r1
00003007: d0 04 41 41 LLSW3 &0x4,%r1,%r1
0000300b: 9c 41 40 ADDW2 %r1,%r0
0000300e: 82 50 CLRH (%r0)
00003010: 70 NOP
00003011: 87 7f 60 08 00 02 e0 40 MOVB $0x2000860,{uword}%r0
00003019: 24 7f b5 31 00 00 JMP $0x31b5
0000301f: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00003024: 87 a9 ac 00 e0 41 MOVB 0xac(%fp),{uword}%r1
0000302a: d0 04 41 41 LLSW3 &0x4,%r1,%r1
0000302e: 9c 41 40 ADDW2 %r1,%r0
00003031: 9c 06 40 ADDW2 &0x6,%r0
00003034: a0 40 PUSHW %r0
00003036: dc 08 7f 90 04 00 00 40 ADDW3 &0x8,$0x490,%r0
0000303e: dc 0e 50 40 ADDW3 &0xe,(%r0),%r0
00003042: a0 40 PUSHW %r0
00003044: 2c cc f8 7f b0 7f 00 00 CALL -8(%sp),$0x7fb0
0000304c: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00003051: 87 a9 ac 00 e0 41 MOVB 0xac(%fp),{uword}%r1
00003057: d0 04 41 41 LLSW3 &0x4,%r1,%r1
0000305b: 9c 41 40 ADDW2 %r1,%r0
0000305e: 86 01 c0 02 MOVH &0x1,2(%r0)
00003062: 70 NOP
00003063: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00003068: 87 a9 ac 00 41 MOVB 0xac(%fp),%r1
0000306d: 93 a9 ac 00 INCB 0xac(%fp)
00003071: 70 NOP
00003072: 87 41 e0 41 MOVB %r1,{uword}%r1
00003076: d0 04 41 41 LLSW3 &0x4,%r1,%r1
0000307a: 9c 41 40 ADDW2 %r1,%r0
0000307d: 86 01 50 MOVH &0x1,(%r0)
00003080: 70 NOP
00003081: 24 7f c7 31 00 00 JMP $0x31c7
00003087: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
0000308c: 87 a9 ac 00 e0 41 MOVB 0xac(%fp),{uword}%r1
00003092: d0 04 41 41 LLSW3 &0x4,%r1,%r1
00003096: 9c 41 40 ADDW2 %r1,%r0
00003099: 9c 06 40 ADDW2 &0x6,%r0
0000309c: a0 40 PUSHW %r0
0000309e: dc 08 7f 90 04 00 00 40 ADDW3 &0x8,$0x490,%r0
000030a6: dc 1a 50 40 ADDW3 &0x1a,(%r0),%r0
000030aa: a0 40 PUSHW %r0
000030ac: 2c cc f8 7f b0 7f 00 00 CALL -8(%sp),$0x7fb0
000030b4: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
000030b9: 87 a9 ac 00 e0 41 MOVB 0xac(%fp),{uword}%r1
000030bf: d0 04 41 41 LLSW3 &0x4,%r1,%r1
000030c3: 9c 41 40 ADDW2 %r1,%r0
000030c6: 86 01 c0 02 MOVH &0x1,2(%r0)
000030ca: 70 NOP
000030cb: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
000030d0: 87 a9 ac 00 41 MOVB 0xac(%fp),%r1
000030d5: 93 a9 ac 00 INCB 0xac(%fp)
000030d9: 70 NOP
000030da: 87 41 e0 41 MOVB %r1,{uword}%r1
000030de: d0 04 41 41 LLSW3 &0x4,%r1,%r1
000030e2: 9c 41 40 ADDW2 %r1,%r0
000030e5: 86 02 50 MOVH &0x2,(%r0)
000030e8: 70 NOP
000030e9: 24 7f c7 31 00 00 JMP $0x31c7
000030ef: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
000030f4: 87 a9 ac 00 e0 41 MOVB 0xac(%fp),{uword}%r1
000030fa: d0 04 41 41 LLSW3 &0x4,%r1,%r1
000030fe: 9c 41 40 ADDW2 %r1,%r0
00003101: 9c 06 40 ADDW2 &0x6,%r0
00003104: a0 40 PUSHW %r0
00003106: dc 08 7f 90 04 00 00 40 ADDW3 &0x8,$0x490,%r0
0000310e: dc 0e 50 40 ADDW3 &0xe,(%r0),%r0
00003112: a0 40 PUSHW %r0
00003114: 2c cc f8 7f b0 7f 00 00 CALL -8(%sp),$0x7fb0
0000311c: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00003121: 87 a9 ac 00 e0 41 MOVB 0xac(%fp),{uword}%r1
00003127: d0 04 41 41 LLSW3 &0x4,%r1,%r1
0000312b: 9c 41 40 ADDW2 %r1,%r0
0000312e: 86 01 c0 02 MOVH &0x1,2(%r0)
00003132: 70 NOP
00003133: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00003138: 87 a9 ac 00 41 MOVB 0xac(%fp),%r1
0000313d: 93 a9 ac 00 INCB 0xac(%fp)
00003141: 70 NOP
00003142: 87 41 e0 41 MOVB %r1,{uword}%r1
00003146: d0 04 41 41 LLSW3 &0x4,%r1,%r1
0000314a: 9c 41 40 ADDW2 %r1,%r0
0000314d: 86 01 50 MOVH &0x1,(%r0)
00003150: 70 NOP
00003151: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00003156: 87 a9 ac 00 e0 41 MOVB 0xac(%fp),{uword}%r1
0000315c: d0 04 41 41 LLSW3 &0x4,%r1,%r1
00003160: 9c 41 40 ADDW2 %r1,%r0
00003163: 9c 06 40 ADDW2 &0x6,%r0
00003166: a0 40 PUSHW %r0
00003168: dc 08 7f 90 04 00 00 40 ADDW3 &0x8,$0x490,%r0
00003170: dc 1a 50 40 ADDW3 &0x1a,(%r0),%r0
00003174: a0 40 PUSHW %r0
00003176: 2c cc f8 7f b0 7f 00 00 CALL -8(%sp),$0x7fb0
0000317e: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00003183: 87 a9 ac 00 e0 41 MOVB 0xac(%fp),{uword}%r1
00003189: d0 04 41 41 LLSW3 &0x4,%r1,%r1
0000318d: 9c 41 40 ADDW2 %r1,%r0
00003190: 86 01 c0 02 MOVH &0x1,2(%r0)
00003194: 70 NOP
00003195: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
0000319a: 87 a9 ac 00 41 MOVB 0xac(%fp),%r1
0000319f: 93 a9 ac 00 INCB 0xac(%fp)
000031a3: 70 NOP
000031a4: 87 41 e0 41 MOVB %r1,{uword}%r1
000031a8: d0 04 41 41 LLSW3 &0x4,%r1,%r1
000031ac: 9c 41 40 ADDW2 %r1,%r0
000031af: 86 02 50 MOVH &0x2,(%r0)
000031b2: 70 NOP
000031b3: 7b 14 BRB &0x14 <0x31c7>
000031b5: 3c 40 01 CMPW %r0,&0x1
000031b8: 7e 67 fe BEH &0xfe67 <0x301f>
000031bb: 3c 40 02 CMPW %r0,&0x2
000031be: 7e c9 fe BEH &0xfec9 <0x3087>
000031c1: 3c 40 03 CMPW %r0,&0x3
000031c4: 7e 2b ff BEH &0xff2b <0x30ef>
000031c7: 86 01 a9 b4 00 MOVH &0x1,0xb4(%fp)
000031cc: 70 NOP
000031cd: 24 7f 39 33 00 00 JMP $0x3339
000031d3: 86 a9 b4 00 e4 40 MOVH 0xb4(%fp),{word}%r0
000031d9: d0 05 40 40 LLSW3 &0x5,%r0,%r0
000031dd: 9c 7f 90 04 00 00 40 ADDW2 $0x490,%r0
000031e4: cc 00 07 c0 04 40 EXTFW &0x0,&0x7,4(%r0),%r0
000031ea: 3c 00 40 CMPW &0x0,%r0
000031ed: 77 08 BNEB &0x8 <0x31f5>
000031ef: 24 7f 93 32 00 00 JMP $0x3293
000031f5: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
000031fa: 87 a9 ac 00 e0 41 MOVB 0xac(%fp),{uword}%r1
00003200: d0 04 41 41 LLSW3 &0x4,%r1,%r1
00003204: 9c 41 40 ADDW2 %r1,%r0
00003207: 9c 06 40 ADDW2 &0x6,%r0
0000320a: a0 40 PUSHW %r0
0000320c: 86 a9 b4 00 e4 40 MOVH 0xb4(%fp),{word}%r0
00003212: d0 05 40 40 LLSW3 &0x5,%r0,%r0
00003216: 9c 7f 90 04 00 00 40 ADDW2 $0x490,%r0
0000321d: 9c 0c 40 ADDW2 &0xc,%r0
00003220: a0 40 PUSHW %r0
00003222: 2c cc f8 7f b0 7f 00 00 CALL -8(%sp),$0x7fb0
0000322a: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
0000322f: 87 a9 ac 00 e0 41 MOVB 0xac(%fp),{uword}%r1
00003235: d0 04 41 41 LLSW3 &0x4,%r1,%r1
00003239: 9c 41 40 ADDW2 %r1,%r0
0000323c: 82 c0 02 CLRH 2(%r0)
0000323f: 70 NOP
00003240: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00003245: 87 a9 ac 00 e0 41 MOVB 0xac(%fp),{uword}%r1
0000324b: d0 04 41 41 LLSW3 &0x4,%r1,%r1
0000324f: 9c 41 40 ADDW2 %r1,%r0
00003252: 86 a9 b4 00 e4 41 MOVH 0xb4(%fp),{word}%r1
00003258: d0 05 41 41 LLSW3 &0x5,%r1,%r1
0000325c: 9c 7f 90 04 00 00 41 ADDW2 $0x490,%r1
00003263: cc 03 0c 51 41 EXTFW &0x3,&0xc,(%r1),%r1
00003268: 86 41 c0 04 MOVH %r1,4(%r0)
0000326c: 70 NOP
0000326d: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00003272: 87 a9 ac 00 41 MOVB 0xac(%fp),%r1
00003277: 93 a9 ac 00 INCB 0xac(%fp)
0000327b: 70 NOP
0000327c: 87 41 e0 41 MOVB %r1,{uword}%r1
00003280: d0 04 41 41 LLSW3 &0x4,%r1,%r1
00003284: 9c 41 40 ADDW2 %r1,%r0
00003287: 86 a9 b4 00 50 MOVH 0xb4(%fp),(%r0)
0000328c: 70 NOP
0000328d: 24 7f 34 33 00 00 JMP $0x3334
00003293: 86 a9 b4 00 e4 40 MOVH 0xb4(%fp),{word}%r0
00003299: d0 05 40 40 LLSW3 &0x5,%r0,%r0
0000329d: 9c 7f 90 04 00 00 40 ADDW2 $0x490,%r0
000032a4: 2b c0 0c TSTB 12(%r0)
000032a7: 7f 2a BEB &0x2a <0x32d1>
000032a9: 86 a9 b4 00 e4 40 MOVH 0xb4(%fp),{word}%r0
000032af: d0 05 40 40 LLSW3 &0x5,%r0,%r0
000032b3: 9c 7f 90 04 00 00 40 ADDW2 $0x490,%r0
000032ba: 9c 0c 40 ADDW2 &0xc,%r0
000032bd: a0 40 PUSHW %r0
000032bf: a0 4f 66 08 00 00 PUSHW &0x866
000032c5: 2c cc f8 7f 68 7f 00 00 CALL -8(%sp),$0x7f68
000032cd: 28 40 TSTW %r0
000032cf: 77 65 BNEB &0x65 <0x3334>
000032d1: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
000032d6: 87 a9 ac 00 e0 41 MOVB 0xac(%fp),{uword}%r1
000032dc: d0 04 41 41 LLSW3 &0x4,%r1,%r1
000032e0: 9c 41 40 ADDW2 %r1,%r0
000032e3: 82 c0 02 CLRH 2(%r0)
000032e6: 70 NOP
000032e7: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
000032ec: 87 a9 ac 00 e0 41 MOVB 0xac(%fp),{uword}%r1
000032f2: d0 04 41 41 LLSW3 &0x4,%r1,%r1
000032f6: 9c 41 40 ADDW2 %r1,%r0
000032f9: 86 a9 b4 00 e4 41 MOVH 0xb4(%fp),{word}%r1
000032ff: d0 05 41 41 LLSW3 &0x5,%r1,%r1
00003303: 9c 7f 90 04 00 00 41 ADDW2 $0x490,%r1
0000330a: cc 03 0c 51 41 EXTFW &0x3,&0xc,(%r1),%r1
0000330f: 86 41 c0 04 MOVH %r1,4(%r0)
00003313: 70 NOP
00003314: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00003319: 87 a9 ac 00 41 MOVB 0xac(%fp),%r1
0000331e: 93 a9 ac 00 INCB 0xac(%fp)
00003322: 70 NOP
00003323: 87 41 e0 41 MOVB %r1,{uword}%r1
00003327: d0 04 41 41 LLSW3 &0x4,%r1,%r1
0000332b: 9c 41 40 ADDW2 %r1,%r0
0000332e: 86 a9 b4 00 50 MOVH 0xb4(%fp),(%r0)
00003333: 70 NOP
00003334: 92 a9 b4 00 INCH 0xb4(%fp)
00003338: 70 NOP
00003339: 86 a9 b4 00 e4 40 MOVH 0xb4(%fp),{word}%r0
0000333f: 87 ef e0 04 00 00 e0 41 MOVB *$0x4e0,{uword}%r1
00003347: 3c 41 40 CMPW %r1,%r0
0000334a: 4a 89 fe BLH &0xfe89 <0x31d3>
;; Print "Possible load devices are:\n\n"
0000334d: a0 4f 6d 08 00 00 PUSHW &0x86d
00003353: 2c cc fc 7f e4 44 00 00 CALL -4(%sp),$0x44e4
;; Print "Option Number Slot Name\n"
0000335b: a0 4f 8b 08 00 00 PUSHW &0x88b
00003361: 2c cc fc 7f e4 44 00 00 CALL -4(%sp),$0x44e4
;; Print "------------------------------\n"
00003369: a0 4f ab 08 00 00 PUSHW &0x8ab
0000336f: 2c cc fc 7f e4 44 00 00 CALL -4(%sp),$0x44e4
00003377: 82 a9 b4 00 CLRH 0xb4(%fp)
0000337b: 70 NOP
0000337c: 24 7f 13 34 00 00 JMP $0x3413
00003382: a0 4f d4 08 00 00 PUSHW &0x8d4
00003388: 86 a9 b4 00 e4 40 MOVH 0xb4(%fp),{word}%r0
0000338e: a0 40 PUSHW %r0
00003390: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00003395: 86 a9 b4 00 e4 41 MOVH 0xb4(%fp),{word}%r1
0000339b: d0 04 41 41 LLSW3 &0x4,%r1,%r1
0000339f: 9c 41 40 ADDW2 %r1,%r0
000033a2: 86 e2 c0 04 e0 40 MOVH {uhalf}4(%r0),{uword}%r0
000033a8: a0 40 PUSHW %r0
000033aa: 2c cc f4 7f e4 44 00 00 CALL -12(%sp),$0x44e4
000033b2: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
000033b7: 86 a9 b4 00 e4 41 MOVH 0xb4(%fp),{word}%r1
000033bd: d0 04 41 41 LLSW3 &0x4,%r1,%r1
000033c1: 9c 41 40 ADDW2 %r1,%r0
000033c4: 9c 06 40 ADDW2 &0x6,%r0
000033c7: a0 40 PUSHW %r0
000033c9: a0 4f ea 08 00 00 PUSHW &0x8ea
000033cf: 2c cc f8 7f 68 7f 00 00 CALL -8(%sp),$0x7f68
000033d7: 28 40 TSTW %r0
000033d9: 7f 27 BEB &0x27 <0x3400>
000033db: a0 4f f1 08 00 00 PUSHW &0x8f1
000033e1: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
000033e6: 86 a9 b4 00 e4 41 MOVH 0xb4(%fp),{word}%r1
000033ec: d0 04 41 41 LLSW3 &0x4,%r1,%r1
000033f0: 9c 41 40 ADDW2 %r1,%r0
000033f3: 9c 06 40 ADDW2 &0x6,%r0
000033f6: a0 40 PUSHW %r0
000033f8: 2c cc f8 7f e4 44 00 00 CALL -8(%sp),$0x44e4
00003400: a0 4f fb 08 00 00 PUSHW &0x8fb
00003406: 2c cc fc 7f e4 44 00 00 CALL -4(%sp),$0x44e4
0000340e: 92 a9 b4 00 INCH 0xb4(%fp)
00003412: 70 NOP
00003413: 86 a9 b4 00 e4 40 MOVH 0xb4(%fp),{word}%r0
00003419: 87 a9 ac 00 e0 41 MOVB 0xac(%fp),{uword}%r1
0000341f: 3c 41 40 CMPW %r1,%r0
00003422: 5a 60 ff BLUH &0xff60 <0x3382>
00003425: a0 4f 0c 30 04 00 PUSHW &0x4300c
0000342b: dc 01 7f a0 04 00 00 40 ADDW3 &0x1,$0x4a0,%r0
00003433: a0 40 PUSHW %r0
00003435: a0 01 PUSHW &0x1
00003437: 2c cc f4 7f 24 52 00 00 CALL -12(%sp),$0x5224
0000343f: 83 a9 aa 00 CLRB 0xaa(%fp)
00003443: 70 NOP
00003444: 82 a9 b4 00 CLRH 0xb4(%fp)
00003448: 70 NOP
00003449: 24 7f d5 34 00 00 JMP $0x34d5
0000344f: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00003454: 86 a9 b4 00 e4 41 MOVH 0xb4(%fp),{word}%r1
0000345a: d0 04 41 41 LLSW3 &0x4,%r1,%r1
0000345e: 9c 41 40 ADDW2 %r1,%r0
00003461: 86 e2 c0 02 e0 40 MOVH {uhalf}2(%r0),{uword}%r0
00003467: 7f 34 BEB &0x34 <0x349b>
00003469: dc 01 7f a0 04 00 00 40 ADDW3 &0x1,$0x4a0,%r0
00003471: 87 50 e0 40 MOVB (%r0),{uword}%r0
00003475: 04 a9 b8 00 41 MOVAW 0xb8(%fp),%r1
0000347a: 86 a9 b4 00 e4 42 MOVH 0xb4(%fp),{word}%r2
00003480: d0 04 42 42 LLSW3 &0x4,%r2,%r2
00003484: 9c 42 41 ADDW2 %r2,%r1
00003487: 86 e2 51 e0 41 MOVH {uhalf}(%r1),{uword}%r1
0000348c: 3c 41 40 CMPW %r1,%r0
0000348f: 77 0a BNEB &0xa <0x3499>
00003491: 87 01 a9 aa 00 MOVB &0x1,0xaa(%fp)
00003496: 70 NOP
00003497: 7b 50 BRB &0x50 <0x34e7>
00003499: 7b 37 BRB &0x37 <0x34d0>
0000349b: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
000034a0: 86 a9 b4 00 e4 41 MOVH 0xb4(%fp),{word}%r1
000034a6: d0 04 41 41 LLSW3 &0x4,%r1,%r1
000034aa: 9c 41 40 ADDW2 %r1,%r0
000034ad: 86 e2 c0 04 e0 40 MOVH {uhalf}4(%r0),{uword}%r0
000034b3: dc 01 7f a0 04 00 00 41 ADDW3 &0x1,$0x4a0,%r1
000034bb: 87 51 e0 41 MOVB (%r1),{uword}%r1
000034bf: d4 04 41 41 LRSW3 &0x4,%r1,%r1
000034c3: 3c 41 40 CMPW %r1,%r0
000034c6: 77 0a BNEB &0xa <0x34d0>
000034c8: 87 01 a9 aa 00 MOVB &0x1,0xaa(%fp)
000034cd: 70 NOP
000034ce: 7b 19 BRB &0x19 <0x34e7>
000034d0: 92 a9 b4 00 INCH 0xb4(%fp)
000034d4: 70 NOP
000034d5: 86 a9 b4 00 e4 40 MOVH 0xb4(%fp),{word}%r0
000034db: 87 a9 ac 00 e0 41 MOVB 0xac(%fp),{uword}%r1
000034e1: 3c 41 40 CMPW %r1,%r0
000034e4: 5a 6b ff BLUH &0xff6b <0x344f>
000034e7: 2b a9 aa 00 TSTB 0xaa(%fp)
000034eb: 77 09 BNEB &0x9 <0x34f4>
000034ed: 83 a9 af 00 CLRB 0xaf(%fp)
000034f1: 70 NOP
000034f2: 7b 0a BRB &0xa <0x34fc>
000034f4: 87 a9 b5 00 a9 af 00 MOVB 0xb5(%fp),0xaf(%fp)
000034fb: 70 NOP
000034fc: a0 4f fd 08 00 00 PUSHW &0x8fd
00003502: 2c cc fc 7f e4 44 00 00 CALL -4(%sp),$0x44e4
0000350a: a0 4f 1f 09 00 00 PUSHW &0x91f
00003510: 87 a9 af 00 e0 40 MOVB 0xaf(%fp),{uword}%r0
00003516: a0 40 PUSHW %r0
00003518: 2c cc f8 7f e4 44 00 00 CALL -8(%sp),$0x44e4
00003520: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00003525: 87 a9 af 00 e0 41 MOVB 0xaf(%fp),{uword}%r1
0000352b: d0 04 41 41 LLSW3 &0x4,%r1,%r1
0000352f: 9c 41 40 ADDW2 %r1,%r0
00003532: 9c 06 40 ADDW2 &0x6,%r0
00003535: a0 40 PUSHW %r0
00003537: a0 4f 23 09 00 00 PUSHW &0x923
0000353d: 2c cc f8 7f 68 7f 00 00 CALL -8(%sp),$0x7f68
00003545: 28 40 TSTW %r0
00003547: 7f 27 BEB &0x27 <0x356e>
00003549: a0 4f 2a 09 00 00 PUSHW &0x92a
0000354f: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00003554: 87 a9 af 00 e0 41 MOVB 0xaf(%fp),{uword}%r1
0000355a: d0 04 41 41 LLSW3 &0x4,%r1,%r1
0000355e: 9c 41 40 ADDW2 %r1,%r0
00003561: 9c 06 40 ADDW2 &0x6,%r0
00003564: a0 40 PUSHW %r0
00003566: 2c cc f8 7f e4 44 00 00 CALL -8(%sp),$0x44e4
0000356e: a0 4f 30 09 00 00 PUSHW &0x930
00003574: 2c cc fc 7f e4 44 00 00 CALL -4(%sp),$0x44e4
0000357c: a0 00 PUSHW &0x0
0000357e: 2c cc fc ef 40 05 00 00 CALL -4(%sp),*$0x540
00003586: e0 c9 5a PUSHAW 90(%fp)
00003589: 2c cc fc 7f 60 43 00 00 CALL -4(%sp),$0x4360
00003591: 3c ff 40 CMPW &-1,%r0
00003594: 77 20 BNEB &0x20 <0x35b4>
00003596: a0 01 PUSHW &0x1
00003598: 2c cc fc ef 40 05 00 00 CALL -4(%sp),*$0x540
000035a0: a0 4f 34 09 00 00 PUSHW &0x934
000035a6: 2c cc fc 7f e4 44 00 00 CALL -4(%sp),$0x44e4
000035ae: 24 7f ab 3a 00 00 JMP $0x3aab
000035b4: a0 01 PUSHW &0x1
000035b6: 2c cc fc ef 40 05 00 00 CALL -4(%sp),*$0x540
000035be: 83 a9 aa 00 CLRB 0xaa(%fp)
000035c2: 70 NOP
000035c3: 2b c9 5a TSTB 90(%fp)
000035c6: 7f 5f BEB &0x5f <0x3625>
000035c8: 82 a9 b4 00 CLRH 0xb4(%fp)
000035cc: 70 NOP
000035cd: 7b 23 BRB &0x23 <0x35f0>
000035cf: e0 c9 5a PUSHAW 90(%fp)
000035d2: 2c cc fc af 68 05 CALL -4(%sp),0x568(%pc)
000035d8: 86 a9 b4 00 e4 41 MOVH 0xb4(%fp),{word}%r1
000035de: 3c 40 41 CMPW %r0,%r1
000035e1: 77 0a BNEB &0xa <0x35eb>
000035e3: 87 01 a9 aa 00 MOVB &0x1,0xaa(%fp)
000035e8: 70 NOP
000035e9: 7b 18 BRB &0x18 <0x3601>
000035eb: 92 a9 b4 00 INCH 0xb4(%fp)
000035ef: 70 NOP
000035f0: 86 a9 b4 00 e4 40 MOVH 0xb4(%fp),{word}%r0
000035f6: 87 a9 ac 00 e0 41 MOVB 0xac(%fp),{uword}%r1
000035fc: 3c 41 40 CMPW %r1,%r0
000035ff: 5b d0 BLUB &0xd0 <0x35cf>
00003601: 2b a9 aa 00 TSTB 0xaa(%fp)
00003605: 77 16 BNEB &0x16 <0x361b>
00003607: a0 4f 36 09 00 00 PUSHW &0x936
0000360d: e0 c9 5a PUSHAW 90(%fp)
00003610: 2c cc f8 7f e4 44 00 00 CALL -8(%sp),$0x44e4
00003618: 7a e4 fe BRH &0xfee4 <0x34fc>
0000361b: 87 a9 b5 00 a9 ae 00 MOVB 0xb5(%fp),0xae(%fp)
00003622: 70 NOP
00003623: 7b 0a BRB &0xa <0x362d>
00003625: 87 a9 af 00 a9 ae 00 MOVB 0xaf(%fp),0xae(%fp)
0000362c: 70 NOP
0000362d: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00003632: 87 a9 ae 00 e0 41 MOVB 0xae(%fp),{uword}%r1
00003638: d0 04 41 41 LLSW3 &0x4,%r1,%r1
0000363c: 9c 41 40 ADDW2 %r1,%r0
0000363f: 86 e2 c0 02 e0 40 MOVH {uhalf}2(%r0),{uword}%r0
00003645: 7f 27 BEB &0x27 <0x366c>
00003647: dc 01 7f a0 04 00 00 40 ADDW3 &0x1,$0x4a0,%r0
0000364f: 04 a9 b8 00 41 MOVAW 0xb8(%fp),%r1
00003654: 87 a9 ae 00 e0 42 MOVB 0xae(%fp),{uword}%r2
0000365a: d0 04 42 42 LLSW3 &0x4,%r2,%r2
0000365e: 9c 42 41 ADDW2 %r2,%r1
00003661: 87 c1 01 50 MOVB 1(%r1),(%r0)
00003665: 70 NOP
00003666: 24 7f 78 3a 00 00 JMP $0x3a78
0000366c: 3f a9 af 00 a9 ae 00 CMPB 0xaf(%fp),0xae(%fp)
00003673: 77 16 BNEB &0x16 <0x3689>
00003675: dc 01 7f a0 04 00 00 40 ADDW3 &0x1,$0x4a0,%r0
0000367d: fb 0f 50 40 ANDB3 &0xf,(%r0),%r0
00003681: 87 40 a9 ad 00 MOVB %r0,0xad(%fp)
00003686: 70 NOP
00003687: 7b 07 BRB &0x7 <0x368e>
00003689: 83 a9 ad 00 CLRB 0xad(%fp)
0000368d: 70 NOP
0000368e: dc 01 7f a0 04 00 00 40 ADDW3 &0x1,$0x4a0,%r0
00003696: 04 a9 b8 00 41 MOVAW 0xb8(%fp),%r1
0000369b: 87 a9 ae 00 e0 42 MOVB 0xae(%fp),{uword}%r2
000036a1: d0 04 42 42 LLSW3 &0x4,%r2,%r2
000036a5: 9c 42 41 ADDW2 %r2,%r1
000036a8: 86 e2 c1 04 e0 41 MOVH {uhalf}4(%r1),{uword}%r1
000036ae: d0 04 41 41 LLSW3 &0x4,%r1,%r1
000036b2: 87 41 50 MOVB %r1,(%r0)
000036b5: 70 NOP
000036b6: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
000036bb: 87 a9 ae 00 e0 41 MOVB 0xae(%fp),{uword}%r1
000036c1: d0 04 41 41 LLSW3 &0x4,%r1,%r1
000036c5: 9c 41 40 ADDW2 %r1,%r0
000036c8: 86 50 a9 b4 00 MOVH (%r0),0xb4(%fp)
000036cd: 70 NOP
000036ce: 82 a9 b6 00 CLRH 0xb6(%fp)
000036d2: 70 NOP
000036d3: 7b 5e BRB &0x5e <0x3731>
000036d5: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
000036da: 86 a9 b6 00 e4 41 MOVH 0xb6(%fp),{word}%r1
000036e0: d0 04 41 41 LLSW3 &0x4,%r1,%r1
000036e4: 9c 41 40 ADDW2 %r1,%r0
000036e7: 82 50 CLRH (%r0)
000036e9: 70 NOP
000036ea: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
000036ef: 86 a9 b6 00 e4 41 MOVH 0xb6(%fp),{word}%r1
000036f5: d0 04 41 41 LLSW3 &0x4,%r1,%r1
000036f9: 9c 41 40 ADDW2 %r1,%r0
000036fc: 82 c0 02 CLRH 2(%r0)
000036ff: 70 NOP
00003700: 04 a9 b8 00 40 MOVAW 0xb8(%fp),%r0
00003705: 86 a9 b6 00 e4 41 MOVH 0xb6(%fp),{word}%r1
0000370b: d0