Home » Archimedes archive » Zipped Apps » BCPL » BCPLi/bcplroot
BCPLi/bcplroot
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Zipped Apps » BCPL |
Filename: | BCPLi/bcplroot |
Read OK: | ✔ |
File size: | 95B1 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
Globsize = 0 Start = 1 << 2 HostProc = 2 << 2 StartInit = 3 << 2 Stacksize = 4 << 2 BrkEsc = 5 << 2 Instring = 8 << 2 Outstring= 9 <<2 Result2 = 13 << 2 LineBuff = 17 << 2 Input = 27 <<2 Cis = 31 << 2 Cos = 32 << 2 ReturnCode = 39 << 2 Stackbase = 40 << 2 HeapDescriptor = 57 << 2 Abort = 63 << 2 Backtrace = 64 << 2 Fault = 95 << 2 Loadpoint = 142 << 2 Libterminateio = 143 << 2 TopStore = 148 << 2 .entry enter .AREA Code .include "regnames" .include "swinames" .include "adr" rbcpl = r4 rmg = r5 rsect = r6 rbase = r8 enter: b firstoff St: .ascii "BCPL" .long globinits - St .ascii "bcplroot" .ascii "14 Mar 90 00-00-00 " .long 0 .long -1 .ascic "Initial" initial: .LONG 0 firstoff: ldr r8, [pc,#initial-$-8] ADR r1, St mov rmg, #100 ldr rbcpl, [r1] sectlp1: mov rsect, a1 ldmfd a1, {a2, a3} ;?"BCPL", glob cmp a2, rbcpl ; unless a1!1 = "BCPL" break bne notsect add a1, a3, a1 ; a1 := globinits gl1: ldmfd a1!, {a2, a3} cmp a3, #0 ; until a1!1 = 0 do a1 +:= 2 bne gl1 cmp a2, rmg movge rmg, a2 ldr a3, [a1] ldr a2, [pc,#onetwo-$-8] cmp a2, a3 bne sectlp1 ; no relocations ldr a2, [pc,#eightsev-$-8] add a1, a1, #4 cmp rb, #0 bne norel reloc: ldmfd a1!, {a3} cmp a2, a3 ;until !a1 = eightsev ldrne r0, [rsect, a3] addne r0, r0, rsect strne r0, [rsect, a3] ;rsect!(!a1) +:= rsect bne reloc b sectlp1 onetwo: .long 0x12345678 eightsev: .long 0x87654321 norel: ldmfd a1!, {a3} cmp a2, a3 bne norel b sectlp1 ; ; Relocations done and "BCPL", maxglob, sectbase set in r4, r5, r8; ; a1 set to point after last section. ; notsect: add rg, a1, #64 ;leave 16 words between code and globals add rfp, rg, rmg,lsl #2 ;then the heap after rmg str rmg, [rg] ;g0 := #globals illglob: mov r6, #0xAE000000 add r6, r6, #0x950000 ; illegal value for g0 add r6, r6, rmg, lsl #2 str r6, [rg,rmg,lsl #2] ; g!rmg :=#Xae950000 +4*rmg subs rmg, rmg, #1 ; rmg -:= 1 repeatwhile rmg bne illglob ADR a1, St glini: ldmfd a1, {a2,a3} cmp a2, rbcpl ; unless a1!0 = "BCPL" break bne glinibr add a1, a1, a3 glini1: ldmfd a1!, {a2,a3} cmp a3, #0 ; a1 -> glob, offset or maxglob,0 strne a3, [rg, a2,lsl #2] ; g!a3 := 4*a2 (already relocated) bne glini1 ldr a3, [a1] ldr a2, [pc, #onetwo-$-8] cmp a2, a3 bne glini ; No relocations; next section ldr a2, [pc, #eightsev-$-8] glini2: ldmfd a1!, {a3} cmp a2, a3 bne glini2 ; walk to end of sect b glini ; ; globals initialised; rg, rfp points to g0, g0 + rmg (+4) above. ; glinibr: add rfp, rfp, #4 ;frame pointer, empty frame, bos mov r5, #0x100 ;C&S-brk resets, brk exits, esc ignored str r5, [rg, #BrkEsc] mov r5, #0x1000 ; default stackwords str r5, [rg, #Stacksize] mov r5, #0xae00 add r5, r5, #0x95 ldr rb, [rg, #StartInit] cmp r5, rb, lsr #16 blne Call ; Call if StartInit present strne a1, [rg, #Stacksize] swi OS_GetEnv str r0, [pc, #saveregs-$-8] ;*command sub a1, a1, #1 str a1, [r9, #TopStore] mov a3, a1 ; Top of addressable store mov a1, rfp ; Base "" "" str a1, [rg, #HeapDescriptor] sub a3, a3, a1 ; length available mov a3, a3, lsr #2 mov a3, a3, lsl #2 ; must be wordsized mov r0, #0 ; initialise heap swi OS_Heap mov r0, #2 ldr a3, [rg, #Stacksize] add a3, a3, #1 mov a3, a3, lsl #2 ; Stackbytes + 4 swi OS_Heap mov r5, a2, lsr #2 add r5, r5, #1 str r5, [rg, #Stackbase]; of Stacksize words mov rfp, a2 ; with rfp as base mov a3, #264 mov r0, #2 swi OS_Heap ; get space for Linebuff mov r0, a2, lsr #2 str r0, [rg, #Instring] ; set Instring add r0, r0, #2 str r0, [rg, #LineBuff] ; set Linebuf add a2, a2, #4 str r0, [a2], #5 ; Instring!1 := Instring+2 sub a3, a2, #1 ; a3 = linebufB ldr r0, [pc, #saveregs-$-8] Walk: ldrb a1, [r0], #1 cmp a1, #32 bgt Walk subne r0, r0, #1 mov a1, a2 ; Command tail to Linebuf!2 mov a2, #256 swi OS_GSTrans bvc cmdl mov a1, #12 str a1, [rg, #ReturnCode] ADR a1, errcl mov a1, a1, lsr #2 ldr rb, [rg, #Fault] bl Call b Finish ; ? needed errcl: .asciz "Bad CLine" .align cmdl: strb a2, [a3], #-8 ; Instring!0 := Linebuf%0 str a2, [a3] mov r0, #0 str r0, [rg, #Outstring];Outstring := 0 ldr a2, [rg,#Stacksize] rsb a2, a2, #0 ; -StacksizeW str a2, [rfp] sub a3, rfp, a2, lsl #2 ; TOSB add rfp, rfp, #4 ; Now Stackbase agrees with global mov r0, #0 mvn a2, #0 mov a4, a3, lsr #2 sub a4, a4, #1 stmea rfp!, {r0, a2, a4} ; sb!0, 1, 2, 3 := 0, -Sbw, TOSW, -Sbw mov a1, #1 ; sb!5 only needed stmea rfp!, {r0, a1, a2} ; wrong!!!!!!! mov rts, rfp ; Empty frame ; ;stack shd be ffff0000, 0, ffff0000, tos,......,wordaddress at top ; 148-174 ommitted ; mov r0, #65 str r0, [rg, #HostProc] mov r0, #0 str r0, [pc, #Envflag - 8 - $] mov a1, #0 mov a2, #0 mvn a3, #1 ldr a4, [rg, #Abort] mov r5, #0xae00 add r5, r5, #0x95 cmp r5, a4, lsr #16 streq r0, [pc, #UInstr - 8 - $] blnv NewEnv ; Remove nv ADR r0, St mov r0, r0, lsr #2 str r0, [rg, #Loadpoint] ldr rgb, [pc, #Rgbval-8-$] add rgb, rgb, #0x40000000 mov r0, #0 str r0, [rg, #ReturnCode] mov r0, #1 << 24 ; Newline() not fast str r0, [rg, #Cis] str r0, [rg, #Cos] ldr rb, [rg, #Start] bl Call Finish: mov rts, rfp ; ldr rb, [rg, Libterminateio] ;not needed ; bl Call Depart: ldr a1, [pc, #abex-8-$] ldr a2, [rg, #ReturnCode] swi OS_Exit abex: .ascii "ABEX" saveregs: .blkl 16 Rgbval: .long Rgbs-4 ; Relocate these two .long -1 .ascic "ErrHand" ErrHand: movs pc, lr EscHand: stmfd rl!, {lr} mov r0, #126 swi OS_Byte+XOS ; Acknowledge Escape ldrb r0, [rg, #BrkEsc] teq r0, #0 swine OS_WriteS+XOS .asciz "\c\nEscape\c\n" .align swine OS_Exit ldmfd rl!, {lr} movs pc, lr BrkHand: mov pc, lr .long -1 .ascic "EvHandl" EvHandl: ADR rts, EveRtnes ; Call EveRtns!r0 ldr pc, [rts, r0, lsl #2] EvFlag: ADR rts, EveParams ldr rts, [rts, r0, lsl #2] str a1, [rts], #4 str a2, [rts], #4 str a3, [rts], #4 str a4, [rts], #4 movs pc, rl ErrBuff: .blkl 16 .long -1 .ascic "CBHandl" CBHandl: ADR r0, CBBuff ldr lr, [r0, #60] ; Exit? ; tsts lr, #3 ; beq CB3 ; mov a1, lr ; keep safe svc_lr ; swi OS_SetCallBack ; another Callback ; mov lr, a1 ldmfd r0, {r0-lr} movs pc, lr CBBuff: .blkl 16 EvBuff: ADR rts, EveParams ldr rts, [rts, r0, lsl #2] mov r0, r0, lsl #16 orr r0, r0, a1, lsl #8 orr r0, r0, a2 ldmfd rts!, {a1, a2, rl} add a1, a1, #1 moveq a1, #0 cmp a1, a2 strne a1, [rts, #-12] mov rl, #0 EvReturn: movs pc, lr EveRtnes: .blkl 18 ; 0-11 Events in Arthur EveParams:.blkl 18 ; 0-17 "" Riscos .long -1 .ascic "Seteven" Seteven: cmp a3, #0 ADR a2, EvReturn beq Evenex ; ignore cmp a3, #2 ADRNE a4, EveParams movne a2, a2, lsl #2 ; flag(1) or buffer(3) BCPL strne a2, [a4, a1, lsl #2] ADRNE a2, EvFlag; cmpne a3, #1 ADRNE a2, EvBuff Evenex: ADR a4, EveRtnes ; ARM Routine(2) strne a2, [a4, a1, lsl #2] movs pc, lr Uinhand: str lr, [pc, #Xcpbuf0-$-8] mov lr, #1 b Hardhand Pfahand: str lr, [pc, #Xcpbuf0-$-8] mov lr, #2 b Hardhand Dtahand: str lr, [pc, #Xcpbuf0-$-8] mov lr, #3 b Hardhand Adxhand: str lr, [pc, #Xcpbuf0-$-8] mov lr, #4 Hardhand: str lr, [pc, #Xcpbuf1-$-8] ADR lr, XcpRegs stmea lr, {r0 - lr}^ tstp pc, #0 ; leave svc mode swi OS_WriteI+14 add rts, rfp, #160 ldr rb, [rg, #Abort] ldr a1, [pc, #Xcpbuf1-$-8] ldr lr, [pc, #Xcpbuf0-$-8] mov pc, rb .long -1 .ascic "TKRErr " TKRErr: mov a3, a1, lsl #2 ADR a4, ErrBuff+4 mov r5, #0 TKRlp: ldrb rb, [a4], #1 cmp rb, #0 beq TKRex add r5, r5, #1 strb rb, [a3, r5] cmp r5, a2 blt TKRlp TKRex: strb r5, [a3] movs pc, lr .long -1 .ascic "Stop " Stop: str a1, [rg, #ReturnCode] ;? #ReturnCode ldr a3, [rg, #Stackbase] mov a3, a3, lsl #2 ldr a2, [a3, #4] ldr rfp, [a3, #24] cmn a2, #1 beq Finish b ResCflt .long -1 .ascic "Chenv " NewEnv: ADR a4, UInstr ADR r5, OUInstr b ChEnv OldEnv: ADR a4, OUInstr ADR r5, UInstr b ChEnv XcpRegs: .blkl 16 Xcpbuf0: .blkl 1 Xcpbuf1: .blkl 1 OUInstr: .blkl 1 OPrefab: .blkl 1 ODatab: .blkl 1 OAddexp: .blkl 1 OOtherx: .blkl 1 OErrorH: .blkl 3 OCallBH: .blkl 3 OBreakPtH:.blkl 3 OEscapeH: .blkl 2 OEventH: .blkl 2 OExitH: .blkl 2 OUnusSWI: .blkl 2 OExcepReg:.blkl 1 OAplSp: .blkl 1 OCao: .blkl 1 OUpCall: .blkl 2 Envflag: .address 0 UInstr: .address Uinhand Prefab: .address Pfahand Datab: .address Dtahand Addexp: .address Adxhand Otherx: .address 0 ErrorH: .address ErrHand .address 0 ; dont care .address ErrBuff CallBH: .address CBHandl .address 0 .address CBBuff BreakPtH: .address 0 .address 0 .address 0 EscapeH: .address 0 .address 0 EventH: .address EvHandl .address 0 ExitH: .address Exithan .address 0 UnkSWI: .address 0 .address 0 ExcepReg: .address 0;XcpRegs AplSp: .address 0 Cao: .address 0 UpCall: .address 0 .address 0 ;Changenv Called with r0 case for OS_Changenv, a4 address of new value, r5 ;address to put old value; ends with a4, r5 incremented. ChEnv: ldr r0, [pc, #UInstr-$-8] cmp r0, #0 moveq pc, lr mov r0, #0 ; NB 0(Memlim not serviced) Envlp: mov a2, #0 mov a3, #0 add r0, r0, #1 ldr a1, [a4], #4 teq r0, #0 teqne r0, #1 teqne r0, #2 teqne r0, #3 teqne r0, #4 teqne r0, #5 teqne r0, #13 teqne r0, #14 teqne r0, #15 beq Env1 ldr a2, [a4], #4 teq r0, #9 teqne r0, #10 teqne r0, #11 teqne r0, #12 teqne r0, #13 teqne r0, #16 beq Env1 ldr a3, [a4], #4 Env1: swi OS_ChangeEnvironment str a1, [r5], #4 teq r0, #0 teqne r0, #1 teqne r0, #2 teqne r0, #3 teqne r0, #4 teqne r0, #5 teqne r0, #13 teqne r0, #14 teqne r0, #15 beq Envlp str a2, [r5], #4 teq r0, #9 teqne r0, #10 teqne r0, #11 teqne r0, #12 teqne r0, #13 beq Envlp teq r0, #16 moveq pc, lr str a3, [r5], #4 Env2: b Envlp UPCHand: stmia r12, {r0-r5, lr} tst r0, #256 ; R12 points to 7 word block ldreq r0, [pc, #Envflag-$-pc] teqeq r0, #1 bne UpEx bl OldEnv mov r0, #0 str r0, [pc, #Envflag-$-pc] UpEx: ldmia r12, {r0-r5, lr} movs pc, lr Exithan: bl OldEnv swi OS_Exit .long -1 .ascic "OSCLI " OSCLI: mov r0, a1, lsl #2 ldrb a1, [r0], #1 ; string byte base, length add a2, a1, r0 ; string byte terminator position ldrb r3, [a2] mov a4, #0 strb a4, [a2] ldr a1, [pc, #Envflag-$-pc] cmp a1, #0 bne SavEnv swi OS_CLI+XOS strb a3, [a2] mov a1, #0 mvnvs a1, #0 mov pc, lr SavEnv: stmea rts!, {lr} stmea rts!, {a2, a3} bl OldEnv swi OS_CLI+XOS mov a1, #0 mvnvs a1, #0 StEnv: bl NewEnv ldmea rts!, {a2, a3} strb a3, [a2] ldmea rts!, {pc} .long -1 ; needs a global .ascic "RestEnv" ResetEnv: ldr a1, [pc, #Envflag-$-pc] cmp a1, #1 moveq pc, lr mov r6, lr b StEnv .long -1 .ascic "Call " Call: mov pc, rb Rgbs: b Depart Mpy: stmfd rg, {a4, lr} ; mpy mov a4, #0 movs lr, a2 rsbmi lr, lr, #0 Mpylp: movs lr, lr, lsr #1 addcs a4, a4, a1 mov a1, a1, lsl #1 bne Mpylp mov a1, a4 teqs a2, #0 rsbmi a1, a1, #0 ldmea rg, {a4,pc}^ Div: stmfd rg, {a3-r5,lr} ; a1/a2, a1 rem a2 movs lr, a1 rsbmi lr, lr, #0 movs a3, a2 beq DivZero ; Divide by zero fault rsbmi a3, a3, #0 mov a4, #0 mov r5, #1 Divl1: cmp a3, #0x80000000 cmpcc a3, lr movcc a3, a3, lsl #1 movcc r5, r5, lsl #1 bcc Divl1 Divl2: cmp a3, lr addls a4, a4, r5 subls lr, lr, a3 movs r5, r5, lsr #1 movne a3, a3, lsr #1 bne Divl2 teqs a1, a2 rsbmi a4, a4, #0 cmp a1, #0 mov a2, lr rsblt a2, a2, #0 mov a1, a4 ldmea rg, {a3-r5, pc}^ ; a1, a2 = a1/a2, a1 rem a2 movnv r0,r0 stmea rts!, {rb, fp, sp, lr} sub fp, rts, #16 ldr rl, [rb, #-4] ldr r0, [rb, #4] add r0, r0, #1 str r0, [rb, #4] ldr pc, [rb, #8] ; ???????????? add lr, lr, #4 stmfd rg, {r0, lr} bic lr, lr, #0xfc000000 ldr r0, [r5] ldmea rg, {r0, pc}^ DivZero: mov a1, #12 str a1, [rg, #ReturnCode] ADR a1, Divz b Faults ; in ResumeC Divz: .ascic "Division by zero\0" .align .long -1 .ascic "Muldiv " Muldiv: stmea rts!, {rb, rfp, rl, lr } sub rfp, rts, #16 stmea rts!, {a1, a2, a3} cmp a2, #0 beq Divz cmp a1, #0 rsblt a1, a1, #0 cmp a2, #0 rsblt a2, a2, #0 ; a1, a2 := mod a1, mod a2 mov r0, a1, lsr #16 ; a1 hi mov a4, a2, lsr #16 ; a2 hi bic a1, a1, r0, lsl #16 ; a1 lo bic a2, a2, a4, lsl #16 ; a2 lo mul a3, a1, a2 ; bits 0-15+part 16-31 mul a2, r0, a2 ; part bits 16-47 mul a1, a4, a1 ; "" "" mul a4, r0, a4 ; part bits 32-47 + bits 48-63 adds a1, a2, a1 addcs a4, a4, #0x10000 ; carry from middle adds a3, a3, a1, lsl #16 adc a4, a4, a1, lsr #16 ; result in a3(lo)-a4(hi) ldmea rts, {r5} ; divisor mov a1, #0 ; dividend mov a2, #0 ; remainder mov r0, #64 ; count divlp1: subs r0, r0, #1 beq DivDone adds a3, a3, a3 adcs a4, a4, a4 bpl divlp1 ; a4 bit 31 now set divlp2: adds a3, a3, a3 adcs a4, a4, a4 adc a2, a2, a2 ; rem := Rem*2+Carry cmp a2, r5 subcs a2, a2, r5 ; rem -:= divisor adcs a1, a1, a1 ; div := div*2+Carry bcs Toobig divsm: subs r0, r0, #1 bne divlp2 DivDone: str a2, [rg, #Result2] ldmea rts!, {a3-r5} eors a3, a3, a4 rsblt a1, a1, #0 eors a3, a4, r5 ; rsblt a2, a2, #0 ldmea rts!, {rb, rfp, rl, pc}^ Toobig: mov a1, #15 str a1, [rg, #ReturnCode] ADR a1, oflo b Faults oflo: .ascic "Muldiv result oflo\0" .align .long -1 .ascic "OSByte " OSByte: mov r0, a1 mov a1, a2 mov a2, a3 swi OS_Byte str a2, [rg, #Result2] movs pc, lr .long -1 .ascic "OSWord " OSWord: and r0, a1, #0xff mov a1, a2, lsl #2 swi OS_Word movs pc, lr ; nb if p0 = 0 OS_Readline ISNT Called. .long -1 .ascic "OSArgs " OSArgs: mov r0, a1 mov a1, a2 mov a2, a3 swi OS_Args mov a1, a2 str r0, [rg, #Result2] movs pc, lr .long -1 .ascic "OSFile " OSFile: stmea rts!, {nil} mov r0, a1 cmp a2, #0 movlt nil, #0 movlt a1, #0 sublt a1, a1, a2 mvnge nil, #0 movge a1, a2, lsl #2 ldrgeb a2, [a1], #1 ; string byte base, length addge a4, a2, a1 ; string byte terminator position ldrgeb r5, [a4] movge rb, #0 strgeb rb, [a4] stmea rts!, {a4, r5} mov rb, a3, lsl #2 ldr a2, [a1] cmp a2, #0 addeq a1, a1, #1 ldmia rb, {a2-r5} swi OS_File + XOS stmia rb, {a2-r5} mov a2, #0 mvnvs a2, #0 str a2, [rg, #Result2] mov a1, r0 ldmea rts!, {a4, r5} cmp nil, #0 strneb r5, [a4] ; restore ldmea rts!, {nil} movs pc, lr .long -1 .ascic "OSWrCh " OSWrCh: mov r0, a1 swi OS_WriteC movs pc, lr .long -1 .ascic "OSRdCh " OSRdCh: swi OS_ReadC mov a1, r0 mov r0, #0 mvncs r0, #0 str r0, [rg, #Result2] movs pc, lr .long -1 .ascic "OSBPut " OSBPut: mov r0, a1 mov a1, a2 swi OS_BPut movs pc, lr .long -1 .ascic "OSBGet " OSBGet: swi OS_BGet+XOS mov a1, r0 movcs a1, #0xff movcs a1, a1, lsl #1 movs pc, lr .long -1 .ascic "Level " Level: mov a1, rfp movs pc, lr .long -1 .ascic "LongJum" LongJump: cmp rfp, a1 moveq pc, a2 ; Same level mov a4, rfp LJ1: ldr r5, [a4, #4] ; rfp enclosing frame rfp!1 cmp r5, a4 beq LJ2 ; base of stack? cmp r5, a1 ; enclosing frame correct? movne a4, r5 bne LJ1 ldr rl, [a4, #8] ; rl of found frame rfp!2 mov rts, a4 mov rfp, a1 mov pc, a2 ; successful LJ2: mov a3, a1 mov a1, #14 str a1, [rg, #ReturnCode] str r2, [ rg, #Result2 ] ADR a1, LJRep b Faults LJRep: .ascic "Destination frame %n for LongJump in the stack\0" .align .long -1 .ascic "GBytes " GBytes: mov r0, a1 mov a1, #0 ; returns last 4 bytes ( max a2 ) GBloop: ldrb a3, [r0], #1 ; from a1 (not wrd aligned) in one word add a1, a3, a1, lsl #8 ; Byteword := GBytes( Byteaddr, Number ) subs a2, a2, #1 bgt GBloop movs pc, lr .long -1 .ascic "PBytes " PBytes: add a1, a1, a2 ; PBytes( Byteword, Number, Byteaddr ) PBloop: strb a3, [a1, #-1] subs a2, a2, #1 bgt PBloop movs pc, lr .long -1 .ascic "Move " Move: mov a4, a2, lsl #2 ; to b mov a2, a3 mov a3, a1, lsl #2 ; from b mov a1, #1 b MWLoop .long -1 .ascic "Backmov" BackMov: add a4, a2, a3 ; to w mov a2, a3 add a3, a1, a3 ; from w mvn a1, #0 b MoveWo .long -1 .ascic "MoveWor" MoveWo: mov a4, a4, lsl #2 mov a3, a3, lsl #2 MWLoop: ldr r0, [a3], a1,lsl #2 ; a3 postindex icr/decr by a1 str r0, [a4], a1,lsl #2 subs a2, a2, #1 bgt MWLoop mov pc, lr .long -1 .ascic "FillWor" FillWo: mov a1, a1, lsl #2 Filloop: str a3, [a1], #4 subs a2, a2, #1 bgt Filloop movs pc, lr .LONG -1 .ascic "Movebyt" Movebyte: cmp a3, #0 moveq pc, lr mb: ldrb r0, [a1], #1 strb r0, [a2], #1 subs a3, a3, #1 bgt mb mov pc, lr .long -1 .ascic "Backmvb" Backmvby: cmp a3, #0 moveq pc, lr bmb: subs a3, a3, #1 ldrb r0, [ a1, a3 ] strb r0, [ a2, a3 ] bgt bmb mov pc, lr .long -1 .ascic "CoWait " ; CoWait( Coptr ) CoWait: stmea rts!, {rb, rfp, rl, lr} ; fp!0, 1, 2, 3 := ; Called, Calling fp, statics, link sub rfp, rts, #16 ; frame pointer stmea rts!, {a1} ; fp!4 := coptr ldr a2, [rg, #Stackbase]; Current Stackbase mov a2, a2, lsl #2 ldr a3, [a2, #4] ; sb := sb!1 cmns a3, #1 beq ResCflt ; sb!1=-1 -> Mainstack str a3, [rg, #Stackbase]; otherwise Calling stack mov a4, #0 str a4, [a2, #4] ; := 0 -> waiting str rfp, [a2, #16] ; sb!4 := frameptr for resume mov a3, a3, lsl #2 ldr rfp, [a3, #16] ; frptr = Oldsb!4 ldmed rfp, {rfp, rl, pc}^ ; frameptr, statics, resumepc := ; frameptr!4, 3, 2 .long -1 .ascic "CreateC" ; (function, stack#) CreateC: stmea rts!, {rb, rfp, rl, lr} sub rfp, rts, #16 stmea rts!, {a1, a2} mov a1, a2 bl GetVec cmps a1, #0 ; if v = 0 goto ResCflt beq ResCflt ldmea rts!, {a4, lr} add lr, a1, lr ; lr := v+Stack#, i.e Stacktopword(Stw) mov a2, a1, lsl #2 ; a2 := Stackbotbyte(Sbb) ldr rb, [rg, #Stackbase] mov a3, rb, lsl #2 ldr r5, [a3] str a1, [a3] ; oldsb!0 := Stack# stmea a2, {r5, rb, lr} ; sb!0, 1, 2 := Oldsb!0, owning sbW, Stw str a4, [a2, #20] ; sb!5 := function str a3, [a2, #16] ; sb!4 := OwningsbB str a1, [rg, #Stackbase]; Stackbase := StackbaseW add rfp, a2, #24 ccret: mov rts, rfp bl CoWait ldr rb, [rfp, #-4] ; function bl Call b ccret ; loop .long -1 .ascic "DeleteC" DeleteC: stmea rts!, {rb, rfp, rl, lr} sub rfp, rts, #16 stmea rts!, {a1} ;(coptr) returns successcode mov a2, a1, lsl #2 ldr a3, [a2, #4] ; sb!1 cmp a3, #0 bne ResCflt ; not a stack ldr a3, [rg, #Stackbase] dlc1: mov a4, a4, lsl #2 ldr a4, [a4, #4] cmn a4, #1 ; if owningsb!1 \= -1,ie nain, loop bne dlc1 mov r0, #0 dlcl2: mov a4, a3 ldr a3, [r0, a3, lsl #2] cmp a3, 0 beq ResCflt cmp a1, a3 ; Coptr bne dlcl2 ldr a2, [r0, a1, lsl #2] str a2, [r0, a4, lsl #2] bl FreeVec mov rts, rfp ldmed rts, {rfp, rl, pc}^ .long -1 .ascic "CallCo " CallCo: stmea rts!, {rb, rfp, rl, lr} sub rfp, rts, #16 stmea rts!, {a1, a2} ; CallCo( Coptr, arg ) mov a3, a1, lsl #2 ldr a4, [a3, #4] ; if coptr!1 = 0 goto ResCflt cmp a4, #0 bne ResCflt ; Not waiting ldr rb, [rg, #Stackbase] str rb, [a3, #4] ; Coptr!1 := Calling Stackbase mov rb, rb, lsl #2 CallCo1: str a1, [rg, #Stackbase]; Stackbase := Coptr str rfp, [rb, #16] ; OldStackbase!4 := rfp ldr rts, [a3, #16] ; rts := Coptr!4 mov a1, a2 ; arg ldmed rts, {rfp, rl, pc}^ .long -1 .asciC "ResumeC" ResumeC: stmea rts!, { rb,rfp, rl, lr} sub rfp, rts, #16 stmea rts!, {a1, a2} ; ResumeCo( coptr, Arg ) ldr rb, [rg, #Stackbase] cmp rb, a1 ; Resume oneself == Call beq resco2 mov a3, a1, lsl #2 ldr a4, [a3, #4] ; a4 := owner bne ResCflt ; Exists, error return mov rb, rb, lsl #2 resco3: ldr a4, [rb, #4] cmns a4, #1 beq ResCflt str a4, [a3, #4] ; owner of new := Owner of old mov a4, #0 str a4, [rb, #4] ; CoWait old b CallCo1 resco2: mov a1, a2 mov rts, rfp ldmed rts, {rfp, rl, lr}^ ResCflt: ADR a1, ResCerr mov a1, #13 str a1, [rg, #ReturnCode] Faults: mov a1, a1, lsr #2 ldr rb, [rg, #Fault] swi OS_NewLine bl Call b Finish ResCerr: .ascic "Coroutine error\n" .align ResC78: .ascii "VERN" .long -1 .ascic "GetVect" GetVec: mov r0, #2 add a1, a1, #1 mov a3, a1, lsl #2 Comvec: ldr a1, [rg, #HeapDescriptor] swi OS_Heap + XOS mov a1, a2, lsr #2 movvc r0, #0 mvnvs r0, #0 str r0, [ rg, #Result2 ] movvc pc, lr ; error return now if Result2 ADR a1, Gv b Faults Gv: .ascic "Heap fault" .align .long -1 .ascic "MaxVect" MaxVec: mov r0, #1 b Comvec .long -1 .ascic "FreeVec" FreeVec: cmp a1, #0 moveq pc, lr ; return if 0 mov r0, #3 mov a2, a1, lsl #2 b Comvec hexbuf: .blkb 9 .align .long -1 .ascic "OSFind " OSFind: movs r0, a1 bne OSFOpen mov a1, a2 ; handle swi OS_Find mov a1, r0 mov pc, lr OSFOpen: cmp a2, #0 mvnle a4, #0 movlt a1, #0 sublt a1, a1, a2 movge a1, a2, lsl #2 ldrgeb a2, [a1], #1 ; string byte base, length addge a3, a2, a1 ; string byte terminator position ldrgeb a4, [a3] movge r5, #0 strgeb r5, [a3] swi OS_Find+XOS movvc a1, #0 mvnvs a1, #0 str a1, [rg, #Result2] cmp a4, #0 strgeb a4, [a3] ; restore mov a1, r0 mov pc, lr globinits: .long 16 .long Muldiv - St .long 35 .long Stop - St .long 37 .long GBytes - St .long 38 .long PBytes - St .long 41 .long Level - St .long 42 .long LongJump - St .long 48 .long CreateC - St .long 49 .long DeleteC - St .long 50 .long CallCo - St .long 51 .long ResumeC - St .long 52 .long CoWait - St .long 54 .long GetVec - St .long 55 .long FreeVec - St .long 56 .long MaxVec - St .long 96 .long OSArgs - St .long 97 .long OSBGet - St .long 98 .long OSBPut - St .long 99 .long OSFind - St .long 100 .long OSFile - St .long 101 .long OSCLI - St .long 102 .long OSWrCh - St .long 103 .long OSRdCh - St .long 104 .long OSByte - St .long 105 .long OSWord - St .long 106 .long TKRErr - St .long 135 .long ResetEnv - St .long 136 .long Move - St .long 137 .long BackMov - St .long 138 .long Movebyte - St .long 139 .long Backmvby - St .long 140 .long MoveWo - St .long 141 .long FillWo - St .long Stackbase .long FillWo - St .long 150 .long 0 .long 0x12345678 .long globinits ; not +4 because b instr at head .long globinits+8 .long globinits+16 .long globinits+24 .long globinits+32 .long globinits+40 .long globinits+48 .long globinits+56 .long globinits+64 .long globinits+72 .long globinits+80 .long globinits+88 .long globinits+96 .long globinits+104 .long globinits+112 .long globinits+120 .long globinits+128 .long globinits+136 .long globinits+144 .long globinits+152 .long globinits+160 .long globinits+168 .long globinits+176 .long globinits+184 .long globinits+192 .long globinits+200 .long globinits+208 .long globinits+216 .long globinits+224 .long globinits+232 .long globinits+240 .long globinits+248 .long Rgbval-4 .long UInstr-4 .long Prefab-4 .long Datab-4 .long Addexp-4 .long ErrorH-4 .long ErrorH+4 .long CallBH-4 .long CallBH+4 .long EventH-4 .long ExitH-4 .long ExcepReg-4 .long 0x87654321
00000000 20 20 20 20 20 20 20 20 20 20 47 6c 6f 62 73 69 | Globsi| 00000010 7a 65 20 3d 20 30 0a 0d 20 20 20 20 20 20 20 20 |ze = 0.. | 00000020 20 20 53 74 61 72 74 20 3d 20 31 20 3c 3c 20 32 | Start = 1 << 2| 00000030 0a 0d 20 20 20 20 20 20 20 20 20 20 48 6f 73 74 |.. Host| 00000040 50 72 6f 63 20 3d 20 32 20 3c 3c 20 32 0a 0d 20 |Proc = 2 << 2.. | 00000050 20 20 20 20 20 20 20 20 20 53 74 61 72 74 49 6e | StartIn| 00000060 69 74 20 3d 20 33 20 3c 3c 20 32 0a 0d 20 20 20 |it = 3 << 2.. | 00000070 20 20 20 20 20 20 20 53 74 61 63 6b 73 69 7a 65 | Stacksize| 00000080 20 3d 20 34 20 3c 3c 20 32 0a 0d 20 20 20 20 20 | = 4 << 2.. | 00000090 20 20 20 20 20 42 72 6b 45 73 63 20 3d 20 35 20 | BrkEsc = 5 | 000000a0 3c 3c 20 32 0a 0d 20 20 20 20 20 20 20 20 20 20 |<< 2.. | 000000b0 49 6e 73 74 72 69 6e 67 20 3d 20 38 20 3c 3c 20 |Instring = 8 << | 000000c0 32 0a 0d 20 20 20 20 20 20 20 20 20 20 4f 75 74 |2.. Out| 000000d0 73 74 72 69 6e 67 3d 20 39 20 3c 3c 32 0a 0d 20 |string= 9 <<2.. | 000000e0 20 20 20 20 20 20 20 20 20 52 65 73 75 6c 74 32 | Result2| 000000f0 20 3d 20 31 33 20 3c 3c 20 32 0a 0d 20 20 20 20 | = 13 << 2.. | 00000100 20 20 20 20 20 20 4c 69 6e 65 42 75 66 66 20 3d | LineBuff =| 00000110 20 31 37 20 3c 3c 20 32 0a 0d 20 20 20 20 20 20 | 17 << 2.. | 00000120 20 20 20 20 49 6e 70 75 74 20 3d 20 32 37 20 3c | Input = 27 <| 00000130 3c 32 0a 0d 20 20 20 20 20 20 20 20 20 20 43 69 |<2.. Ci| 00000140 73 20 3d 20 33 31 20 3c 3c 20 32 0a 0d 20 20 20 |s = 31 << 2.. | 00000150 20 20 20 20 20 20 20 43 6f 73 20 3d 20 33 32 20 | Cos = 32 | 00000160 3c 3c 20 32 0a 0d 20 20 20 20 20 20 20 20 20 20 |<< 2.. | 00000170 52 65 74 75 72 6e 43 6f 64 65 20 3d 20 33 39 20 |ReturnCode = 39 | 00000180 3c 3c 20 32 0a 0d 20 20 20 20 20 20 20 20 20 20 |<< 2.. | 00000190 53 74 61 63 6b 62 61 73 65 20 3d 20 34 30 20 3c |Stackbase = 40 <| 000001a0 3c 20 32 0a 0d 20 20 20 20 20 20 20 20 20 20 48 |< 2.. H| 000001b0 65 61 70 44 65 73 63 72 69 70 74 6f 72 20 3d 20 |eapDescriptor = | 000001c0 35 37 20 3c 3c 20 32 0a 0d 20 20 20 20 20 20 20 |57 << 2.. | 000001d0 20 20 20 41 62 6f 72 74 20 3d 20 36 33 20 3c 3c | Abort = 63 <<| 000001e0 20 32 0a 0d 20 20 20 20 20 20 20 20 20 20 42 61 | 2.. Ba| 000001f0 63 6b 74 72 61 63 65 20 3d 20 36 34 20 3c 3c 20 |cktrace = 64 << | 00000200 32 0a 0d 20 20 20 20 20 20 20 20 20 20 46 61 75 |2.. Fau| 00000210 6c 74 20 3d 20 39 35 20 3c 3c 20 32 0a 0d 20 20 |lt = 95 << 2.. | 00000220 20 20 20 20 20 20 20 20 4c 6f 61 64 70 6f 69 6e | Loadpoin| 00000230 74 20 3d 20 31 34 32 20 3c 3c 20 32 0a 0d 20 20 |t = 142 << 2.. | 00000240 20 20 20 20 20 20 20 20 4c 69 62 74 65 72 6d 69 | Libtermi| 00000250 6e 61 74 65 69 6f 20 3d 20 31 34 33 20 3c 3c 20 |nateio = 143 << | 00000260 32 0a 0d 20 20 20 20 20 20 20 20 20 20 54 6f 70 |2.. Top| 00000270 53 74 6f 72 65 20 3d 20 31 34 38 20 3c 3c 20 32 |Store = 148 << 2| 00000280 0a 0d 0a 0d 0a 0d 20 20 20 20 20 20 20 20 20 20 |...... | 00000290 2e 65 6e 74 72 79 20 20 20 20 65 6e 74 65 72 0a |.entry enter.| 000002a0 0d 20 20 20 20 20 20 20 20 20 20 2e 41 52 45 41 |. .AREA| 000002b0 20 20 20 20 20 43 6f 64 65 0a 0d 20 20 20 20 20 | Code.. | 000002c0 20 20 20 20 20 2e 69 6e 63 6c 75 64 65 20 20 22 | .include "| 000002d0 72 65 67 6e 61 6d 65 73 22 0a 0d 20 20 20 20 20 |regnames".. | 000002e0 20 20 20 20 20 2e 69 6e 63 6c 75 64 65 20 20 22 | .include "| 000002f0 73 77 69 6e 61 6d 65 73 22 0a 0d 20 20 20 20 20 |swinames".. | 00000300 20 20 20 20 20 2e 69 6e 63 6c 75 64 65 20 20 22 | .include "| 00000310 61 64 72 22 0a 0d 20 20 20 20 20 20 20 20 20 20 |adr".. | 00000320 72 62 63 70 6c 20 20 20 20 20 3d 20 72 34 0a 0d |rbcpl = r4..| 00000330 20 20 20 20 20 20 20 20 20 20 72 6d 67 20 20 20 | rmg | 00000340 20 20 20 20 3d 20 72 35 0a 0d 20 20 20 20 20 20 | = r5.. | 00000350 20 20 20 20 72 73 65 63 74 20 20 20 20 20 3d 20 | rsect = | 00000360 72 36 0a 0d 20 20 20 20 20 20 20 20 20 20 72 62 |r6.. rb| 00000370 61 73 65 20 20 20 20 20 3d 20 72 38 0a 0d 65 6e |ase = r8..en| 00000380 74 65 72 3a 20 20 20 20 62 20 20 20 20 20 20 20 |ter: b | 00000390 20 20 66 69 72 73 74 6f 66 66 0a 0d 53 74 3a 20 | firstoff..St: | 000003a0 20 20 20 20 20 20 2e 61 73 63 69 69 20 20 20 20 | .ascii | 000003b0 22 42 43 50 4c 22 0a 0d 20 20 20 20 20 20 20 20 |"BCPL".. | 000003c0 20 20 2e 6c 6f 6e 67 20 20 20 20 20 67 6c 6f 62 | .long glob| 000003d0 69 6e 69 74 73 20 2d 20 53 74 0a 0d 20 20 20 20 |inits - St.. | 000003e0 20 20 20 20 20 20 2e 61 73 63 69 69 20 20 20 20 | .ascii | 000003f0 22 62 63 70 6c 72 6f 6f 74 22 0a 0d 20 20 20 20 |"bcplroot".. | 00000400 20 20 20 20 20 20 2e 61 73 63 69 69 20 20 20 20 | .ascii | 00000410 22 31 34 20 4d 61 72 20 39 30 20 30 30 2d 30 30 |"14 Mar 90 00-00| 00000420 2d 30 30 20 20 22 0a 0d 20 20 20 20 20 20 20 20 |-00 ".. | 00000430 20 20 2e 6c 6f 6e 67 20 20 20 20 20 30 0a 0d 20 | .long 0.. | 00000440 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 | .long | 00000450 20 20 20 2d 31 0a 0d 20 20 20 20 20 20 20 20 20 | -1.. | 00000460 20 2e 61 73 63 69 63 20 20 20 20 22 49 6e 69 74 | .ascic "Init| 00000470 69 61 6c 22 0a 0d 69 6e 69 74 69 61 6c 3a 20 20 |ial"..initial: | 00000480 2e 4c 4f 4e 47 20 20 20 20 20 30 0a 0d 66 69 72 |.LONG 0..fir| 00000490 73 74 6f 66 66 3a 20 6c 64 72 20 20 20 20 20 20 |stoff: ldr | 000004a0 20 72 38 2c 20 5b 70 63 2c 23 69 6e 69 74 69 61 | r8, [pc,#initia| 000004b0 6c 2d 24 2d 38 5d 0a 0d 20 20 20 20 20 20 20 20 |l-$-8].. | 000004c0 20 20 41 44 52 20 20 20 20 20 20 20 72 31 2c 20 | ADR r1, | 000004d0 53 74 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f |St.. mo| 000004e0 76 20 20 20 20 20 20 20 72 6d 67 2c 20 23 31 30 |v rmg, #10| 000004f0 30 0a 0d 20 20 20 20 20 20 20 20 20 20 6c 64 72 |0.. ldr| 00000500 20 20 20 20 20 20 20 72 62 63 70 6c 2c 20 5b 72 | rbcpl, [r| 00000510 31 5d 0a 0d 73 65 63 74 6c 70 31 3a 20 20 6d 6f |1]..sectlp1: mo| 00000520 76 20 20 20 20 20 20 20 72 73 65 63 74 2c 20 61 |v rsect, a| 00000530 31 0a 0d 20 20 20 20 20 20 20 20 20 20 6c 64 6d |1.. ldm| 00000540 66 64 20 20 20 20 20 61 31 2c 20 7b 61 32 2c 20 |fd a1, {a2, | 00000550 61 33 7d 20 20 20 20 20 20 20 20 3b 3f 22 42 43 |a3} ;?"BC| 00000560 50 4c 22 2c 20 67 6c 6f 62 0a 0d 20 20 20 20 20 |PL", glob.. | 00000570 20 20 20 20 20 63 6d 70 20 20 20 20 20 20 20 61 | cmp a| 00000580 32 2c 20 72 62 63 70 6c 20 20 20 20 20 20 20 20 |2, rbcpl | 00000590 20 20 20 3b 20 75 6e 6c 65 73 73 20 61 31 21 31 | ; unless a1!1| 000005a0 20 3d 20 22 42 43 50 4c 22 20 62 72 65 61 6b 0a | = "BCPL" break.| 000005b0 0d 20 20 20 20 20 20 20 20 20 20 62 6e 65 20 20 |. bne | 000005c0 20 20 20 20 20 6e 6f 74 73 65 63 74 0a 0d 20 20 | notsect.. | 000005d0 20 20 20 20 20 20 20 20 61 64 64 20 20 20 20 20 | add | 000005e0 20 20 61 31 2c 20 61 33 2c 20 61 31 20 20 20 20 | a1, a3, a1 | 000005f0 20 20 20 20 20 20 3b 20 61 31 20 3a 3d 20 67 6c | ; a1 := gl| 00000600 6f 62 69 6e 69 74 73 0a 0d 67 6c 31 3a 20 20 20 |obinits..gl1: | 00000610 20 20 20 6c 64 6d 66 64 20 20 20 20 20 61 31 21 | ldmfd a1!| 00000620 2c 20 7b 61 32 2c 20 61 33 7d 0a 0d 20 20 20 20 |, {a2, a3}.. | 00000630 20 20 20 20 20 20 63 6d 70 20 20 20 20 20 20 20 | cmp | 00000640 61 33 2c 20 23 30 20 20 20 20 20 20 20 20 20 20 |a3, #0 | 00000650 20 20 20 20 3b 20 75 6e 74 69 6c 20 61 31 21 31 | ; until a1!1| 00000660 20 3d 20 30 20 64 6f 20 61 31 20 2b 3a 3d 20 32 | = 0 do a1 +:= 2| 00000670 0a 0d 20 20 20 20 20 20 20 20 20 20 62 6e 65 20 |.. bne | 00000680 20 20 20 20 20 20 67 6c 31 0a 0d 20 20 20 20 20 | gl1.. | 00000690 20 20 20 20 20 63 6d 70 20 20 20 20 20 20 20 61 | cmp a| 000006a0 32 2c 20 72 6d 67 0a 0d 20 20 20 20 20 20 20 20 |2, rmg.. | 000006b0 20 20 6d 6f 76 67 65 20 20 20 20 20 72 6d 67 2c | movge rmg,| 000006c0 20 61 32 0a 0d 20 20 20 20 20 20 20 20 20 20 6c | a2.. l| 000006d0 64 72 20 20 20 20 20 20 20 61 33 2c 20 5b 61 31 |dr a3, [a1| 000006e0 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 6c 64 72 |].. ldr| 000006f0 20 20 20 20 20 20 20 61 32 2c 20 5b 70 63 2c 23 | a2, [pc,#| 00000700 6f 6e 65 74 77 6f 2d 24 2d 38 5d 0a 0d 20 20 20 |onetwo-$-8].. | 00000710 20 20 20 20 20 20 20 63 6d 70 20 20 20 20 20 20 | cmp | 00000720 20 61 32 2c 20 61 33 0a 0d 20 20 20 20 20 20 20 | a2, a3.. | 00000730 20 20 20 62 6e 65 20 20 20 20 20 20 20 73 65 63 | bne sec| 00000740 74 6c 70 31 20 20 20 20 20 20 20 20 20 20 20 20 |tlp1 | 00000750 20 3b 20 6e 6f 20 72 65 6c 6f 63 61 74 69 6f 6e | ; no relocation| 00000760 73 0a 0d 20 20 20 20 20 20 20 20 20 20 6c 64 72 |s.. ldr| 00000770 20 20 20 20 20 20 20 61 32 2c 20 5b 70 63 2c 23 | a2, [pc,#| 00000780 65 69 67 68 74 73 65 76 2d 24 2d 38 5d 0a 0d 20 |eightsev-$-8].. | 00000790 20 20 20 20 20 20 20 20 20 61 64 64 20 20 20 20 | add | 000007a0 20 20 20 61 31 2c 20 61 31 2c 20 23 34 0a 0d 20 | a1, a1, #4.. | 000007b0 20 20 20 20 20 20 20 20 20 63 6d 70 20 20 20 20 | cmp | 000007c0 20 20 20 72 62 2c 20 23 30 0a 0d 20 20 20 20 20 | rb, #0.. | 000007d0 20 20 20 20 20 62 6e 65 20 20 20 20 20 20 20 6e | bne n| 000007e0 6f 72 65 6c 0a 0d 72 65 6c 6f 63 3a 20 20 20 20 |orel..reloc: | 000007f0 6c 64 6d 66 64 20 20 20 20 20 61 31 21 2c 20 7b |ldmfd a1!, {| 00000800 61 33 7d 0a 0d 20 20 20 20 20 20 20 20 20 20 63 |a3}.. c| 00000810 6d 70 20 20 20 20 20 20 20 61 32 2c 20 61 33 20 |mp a2, a3 | 00000820 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 75 6e | ;un| 00000830 74 69 6c 20 21 61 31 20 3d 20 65 69 67 68 74 73 |til !a1 = eights| 00000840 65 76 0a 0d 20 20 20 20 20 20 20 20 20 20 6c 64 |ev.. ld| 00000850 72 6e 65 20 20 20 20 20 72 30 2c 20 5b 72 73 65 |rne r0, [rse| 00000860 63 74 2c 20 61 33 5d 0a 0d 20 20 20 20 20 20 20 |ct, a3].. | 00000870 20 20 20 61 64 64 6e 65 20 20 20 20 20 72 30 2c | addne r0,| 00000880 20 72 30 2c 20 72 73 65 63 74 0a 0d 20 20 20 20 | r0, rsect.. | 00000890 20 20 20 20 20 20 73 74 72 6e 65 20 20 20 20 20 | strne | 000008a0 72 30 2c 20 5b 72 73 65 63 74 2c 20 61 33 5d 20 |r0, [rsect, a3] | 000008b0 20 20 20 20 3b 72 73 65 63 74 21 28 21 61 31 29 | ;rsect!(!a1)| 000008c0 20 2b 3a 3d 20 72 73 65 63 74 0a 0d 20 20 20 20 | +:= rsect.. | 000008d0 20 20 20 20 20 20 62 6e 65 20 20 20 20 20 20 20 | bne | 000008e0 72 65 6c 6f 63 0a 0d 20 20 20 20 20 20 20 20 20 |reloc.. | 000008f0 20 62 20 20 20 20 20 20 20 20 20 73 65 63 74 6c | b sectl| 00000900 70 31 0a 0d 6f 6e 65 74 77 6f 3a 20 20 20 2e 6c |p1..onetwo: .l| 00000910 6f 6e 67 20 20 20 20 20 30 78 31 32 33 34 35 36 |ong 0x123456| 00000920 37 38 0a 0d 65 69 67 68 74 73 65 76 3a 20 2e 6c |78..eightsev: .l| 00000930 6f 6e 67 20 20 20 20 20 30 78 38 37 36 35 34 33 |ong 0x876543| 00000940 32 31 0a 0d 6e 6f 72 65 6c 3a 20 20 20 20 6c 64 |21..norel: ld| 00000950 6d 66 64 20 20 20 20 20 61 31 21 2c 20 7b 61 33 |mfd a1!, {a3| 00000960 7d 0a 0d 20 20 20 20 20 20 20 20 20 20 63 6d 70 |}.. cmp| 00000970 20 20 20 20 20 20 20 61 32 2c 20 61 33 0a 0d 20 | a2, a3.. | 00000980 20 20 20 20 20 20 20 20 20 62 6e 65 20 20 20 20 | bne | 00000990 20 20 20 6e 6f 72 65 6c 0a 0d 20 20 20 20 20 20 | norel.. | 000009a0 20 20 20 20 62 20 20 20 20 20 20 20 20 20 73 65 | b se| 000009b0 63 74 6c 70 31 0a 0d 3b 0a 0d 3b 20 20 20 20 20 |ctlp1..;..; | 000009c0 20 20 20 20 52 65 6c 6f 63 61 74 69 6f 6e 73 20 | Relocations | 000009d0 64 6f 6e 65 20 61 6e 64 20 22 42 43 50 4c 22 2c |done and "BCPL",| 000009e0 20 6d 61 78 67 6c 6f 62 2c 20 73 65 63 74 62 61 | maxglob, sectba| 000009f0 73 65 20 73 65 74 20 69 6e 20 72 34 2c 20 72 35 |se set in r4, r5| 00000a00 2c 20 72 38 3b 0a 0d 3b 20 20 20 20 20 20 20 20 |, r8;..; | 00000a10 20 61 31 20 73 65 74 20 74 6f 20 70 6f 69 6e 74 | a1 set to point| 00000a20 20 61 66 74 65 72 20 6c 61 73 74 20 73 65 63 74 | after last sect| 00000a30 69 6f 6e 2e 0a 0d 3b 0a 0d 6e 6f 74 73 65 63 74 |ion...;..notsect| 00000a40 3a 20 20 61 64 64 20 20 20 20 20 20 20 72 67 2c |: add rg,| 00000a50 20 61 31 2c 20 23 36 34 20 20 20 20 20 20 20 20 | a1, #64 | 00000a60 20 3b 6c 65 61 76 65 20 31 36 20 77 6f 72 64 73 | ;leave 16 words| 00000a70 20 62 65 74 77 65 65 6e 20 63 6f 64 65 20 61 6e | between code an| 00000a80 64 20 67 6c 6f 62 61 6c 73 0a 0d 20 20 20 20 20 |d globals.. | 00000a90 20 20 20 20 20 61 64 64 20 20 20 20 20 20 20 72 | add r| 00000aa0 66 70 2c 20 72 67 2c 20 72 6d 67 2c 6c 73 6c 20 |fp, rg, rmg,lsl | 00000ab0 23 32 20 3b 74 68 65 6e 20 74 68 65 20 68 65 61 |#2 ;then the hea| 00000ac0 70 20 61 66 74 65 72 20 72 6d 67 0a 0d 20 20 20 |p after rmg.. | 00000ad0 20 20 20 20 20 20 20 73 74 72 20 20 20 20 20 20 | str | 00000ae0 20 72 6d 67 2c 20 5b 72 67 5d 20 20 20 20 20 20 | rmg, [rg] | 00000af0 20 20 20 20 20 3b 67 30 20 3a 3d 20 23 67 6c 6f | ;g0 := #glo| 00000b00 62 61 6c 73 0a 0d 69 6c 6c 67 6c 6f 62 3a 20 20 |bals..illglob: | 00000b10 6d 6f 76 20 20 20 20 20 20 20 72 36 2c 20 23 30 |mov r6, #0| 00000b20 78 41 45 30 30 30 30 30 30 0a 0d 20 20 20 20 20 |xAE000000.. | 00000b30 20 20 20 20 20 61 64 64 20 20 20 20 20 20 20 72 | add r| 00000b40 36 2c 20 72 36 2c 20 23 30 78 39 35 30 30 30 30 |6, r6, #0x950000| 00000b50 20 20 20 3b 20 69 6c 6c 65 67 61 6c 20 76 61 6c | ; illegal val| 00000b60 75 65 20 66 6f 72 20 67 30 0a 0d 20 20 20 20 20 |ue for g0.. | 00000b70 20 20 20 20 20 61 64 64 20 20 20 20 20 20 20 72 | add r| 00000b80 36 2c 20 72 36 2c 20 72 6d 67 2c 20 6c 73 6c 20 |6, r6, rmg, lsl | 00000b90 23 32 0a 0d 20 20 20 20 20 20 20 20 20 20 73 74 |#2.. st| 00000ba0 72 20 20 20 20 20 20 20 72 36 2c 20 5b 72 67 2c |r r6, [rg,| 00000bb0 72 6d 67 2c 6c 73 6c 20 23 32 5d 20 3b 20 67 21 |rmg,lsl #2] ; g!| 00000bc0 72 6d 67 20 3a 3d 23 58 61 65 39 35 30 30 30 30 |rmg :=#Xae950000| 00000bd0 20 2b 34 2a 72 6d 67 0a 0d 20 20 20 20 20 20 20 | +4*rmg.. | 00000be0 20 20 20 73 75 62 73 20 20 20 20 20 20 72 6d 67 | subs rmg| 00000bf0 2c 20 72 6d 67 2c 20 23 31 20 20 20 20 20 20 20 |, rmg, #1 | 00000c00 20 3b 20 72 6d 67 20 2d 3a 3d 20 31 20 72 65 70 | ; rmg -:= 1 rep| 00000c10 65 61 74 77 68 69 6c 65 20 72 6d 67 0a 0d 20 20 |eatwhile rmg.. | 00000c20 20 20 20 20 20 20 20 20 62 6e 65 20 20 20 20 20 | bne | 00000c30 20 20 69 6c 6c 67 6c 6f 62 0a 0d 20 20 20 20 20 | illglob.. | 00000c40 20 20 20 20 20 41 44 52 20 20 20 20 20 20 20 61 | ADR a| 00000c50 31 2c 20 53 74 0a 0d 67 6c 69 6e 69 3a 20 20 20 |1, St..glini: | 00000c60 20 6c 64 6d 66 64 20 20 20 20 20 61 31 2c 20 7b | ldmfd a1, {| 00000c70 61 32 2c 61 33 7d 0a 0d 20 20 20 20 20 20 20 20 |a2,a3}.. | 00000c80 20 20 63 6d 70 20 20 20 20 20 20 20 61 32 2c 20 | cmp a2, | 00000c90 72 62 63 70 6c 20 20 20 20 20 20 20 20 20 20 20 |rbcpl | 00000ca0 3b 20 75 6e 6c 65 73 73 20 61 31 21 30 20 3d 20 |; unless a1!0 = | 00000cb0 22 42 43 50 4c 22 20 62 72 65 61 6b 0a 0d 20 20 |"BCPL" break.. | 00000cc0 20 20 20 20 20 20 20 20 62 6e 65 20 20 20 20 20 | bne | 00000cd0 20 20 67 6c 69 6e 69 62 72 0a 0d 20 20 20 20 20 | glinibr.. | 00000ce0 20 20 20 20 20 61 64 64 20 20 20 20 20 20 20 61 | add a| 00000cf0 31 2c 20 61 31 2c 20 61 33 0a 0d 67 6c 69 6e 69 |1, a1, a3..glini| 00000d00 31 3a 20 20 20 6c 64 6d 66 64 20 20 20 20 20 61 |1: ldmfd a| 00000d10 31 21 2c 20 7b 61 32 2c 61 33 7d 0a 0d 20 20 20 |1!, {a2,a3}.. | 00000d20 20 20 20 20 20 20 20 63 6d 70 20 20 20 20 20 20 | cmp | 00000d30 20 61 33 2c 20 23 30 20 20 20 20 20 20 20 20 20 | a3, #0 | 00000d40 20 20 20 20 20 3b 20 61 31 20 2d 3e 20 67 6c 6f | ; a1 -> glo| 00000d50 62 2c 20 6f 66 66 73 65 74 20 6f 72 20 6d 61 78 |b, offset or max| 00000d60 67 6c 6f 62 2c 30 0a 0d 20 20 20 20 20 20 20 20 |glob,0.. | 00000d70 20 20 73 74 72 6e 65 20 20 20 20 20 61 33 2c 20 | strne a3, | 00000d80 5b 72 67 2c 20 61 32 2c 6c 73 6c 20 23 32 5d 20 |[rg, a2,lsl #2] | 00000d90 3b 20 67 21 61 33 20 3a 3d 20 34 2a 61 32 20 28 |; g!a3 := 4*a2 (| 00000da0 61 6c 72 65 61 64 79 20 72 65 6c 6f 63 61 74 65 |already relocate| 00000db0 64 29 0a 0d 20 20 20 20 20 20 20 20 20 20 62 6e |d).. bn| 00000dc0 65 20 20 20 20 20 20 20 67 6c 69 6e 69 31 0a 0d |e glini1..| 00000dd0 20 20 20 20 20 20 20 20 20 20 6c 64 72 20 20 20 | ldr | 00000de0 20 20 20 20 61 33 2c 20 5b 61 31 5d 0a 0d 20 20 | a3, [a1].. | 00000df0 20 20 20 20 20 20 20 20 6c 64 72 20 20 20 20 20 | ldr | 00000e00 20 20 61 32 2c 20 5b 70 63 2c 20 23 6f 6e 65 74 | a2, [pc, #onet| 00000e10 77 6f 2d 24 2d 38 5d 0a 0d 20 20 20 20 20 20 20 |wo-$-8].. | 00000e20 20 20 20 63 6d 70 20 20 20 20 20 20 20 61 32 2c | cmp a2,| 00000e30 20 61 33 0a 0d 20 20 20 20 20 20 20 20 20 20 62 | a3.. b| 00000e40 6e 65 20 20 20 20 20 20 20 67 6c 69 6e 69 20 20 |ne glini | 00000e50 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 4e | ; N| 00000e60 6f 20 72 65 6c 6f 63 61 74 69 6f 6e 73 3b 20 6e |o relocations; n| 00000e70 65 78 74 20 73 65 63 74 69 6f 6e 0a 0d 20 20 20 |ext section.. | 00000e80 20 20 20 20 20 20 20 6c 64 72 20 20 20 20 20 20 | ldr | 00000e90 20 61 32 2c 20 5b 70 63 2c 20 23 65 69 67 68 74 | a2, [pc, #eight| 00000ea0 73 65 76 2d 24 2d 38 5d 0a 0d 67 6c 69 6e 69 32 |sev-$-8]..glini2| 00000eb0 3a 20 20 20 6c 64 6d 66 64 20 20 20 20 20 61 31 |: ldmfd a1| 00000ec0 21 2c 20 7b 61 33 7d 0a 0d 20 20 20 20 20 20 20 |!, {a3}.. | 00000ed0 20 20 20 63 6d 70 20 20 20 20 20 20 20 61 32 2c | cmp a2,| 00000ee0 20 61 33 0a 0d 20 20 20 20 20 20 20 20 20 20 62 | a3.. b| 00000ef0 6e 65 20 20 20 20 20 20 20 67 6c 69 6e 69 32 20 |ne glini2 | 00000f00 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 77 | ; w| 00000f10 61 6c 6b 20 74 6f 20 65 6e 64 20 6f 66 20 73 65 |alk to end of se| 00000f20 63 74 0a 0d 20 20 20 20 20 20 20 20 20 20 62 20 |ct.. b | 00000f30 20 20 20 20 20 20 20 20 67 6c 69 6e 69 0a 0d 3b | glini..;| 00000f40 0a 0d 3b 20 20 20 20 20 20 20 20 20 67 6c 6f 62 |..; glob| 00000f50 61 6c 73 20 69 6e 69 74 69 61 6c 69 73 65 64 3b |als initialised;| 00000f60 20 72 67 2c 20 72 66 70 20 70 6f 69 6e 74 73 20 | rg, rfp points | 00000f70 74 6f 20 67 30 2c 20 67 30 20 2b 20 72 6d 67 20 |to g0, g0 + rmg | 00000f80 28 2b 34 29 20 61 62 6f 76 65 2e 0a 0d 3b 0a 0d |(+4) above...;..| 00000f90 67 6c 69 6e 69 62 72 3a 20 20 61 64 64 20 20 20 |glinibr: add | 00000fa0 20 20 20 20 72 66 70 2c 20 72 66 70 2c 20 23 34 | rfp, rfp, #4| 00000fb0 20 20 20 20 20 20 20 20 3b 66 72 61 6d 65 20 70 | ;frame p| 00000fc0 6f 69 6e 74 65 72 2c 20 65 6d 70 74 79 20 66 72 |ointer, empty fr| 00000fd0 61 6d 65 2c 20 62 6f 73 0a 0d 20 20 20 20 20 20 |ame, bos.. | 00000fe0 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 72 35 | mov r5| 00000ff0 2c 20 23 30 78 31 30 30 20 20 20 20 20 20 20 20 |, #0x100 | 00001000 20 20 3b 43 26 53 2d 62 72 6b 20 72 65 73 65 74 | ;C&S-brk reset| 00001010 73 2c 20 62 72 6b 20 65 78 69 74 73 2c 20 65 73 |s, brk exits, es| 00001020 63 20 69 67 6e 6f 72 65 64 0a 0d 20 20 20 20 20 |c ignored.. | 00001030 20 20 20 20 20 73 74 72 20 20 20 20 20 20 20 72 | str r| 00001040 35 2c 20 5b 72 67 2c 20 23 42 72 6b 45 73 63 5d |5, [rg, #BrkEsc]| 00001050 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 |.. mov | 00001060 20 20 20 20 20 20 72 35 2c 20 23 30 78 31 30 30 | r5, #0x100| 00001070 30 20 20 20 20 20 20 20 20 20 3b 20 64 65 66 61 |0 ; defa| 00001080 75 6c 74 20 73 74 61 63 6b 77 6f 72 64 73 0a 0d |ult stackwords..| 00001090 20 20 20 20 20 20 20 20 20 20 73 74 72 20 20 20 | str | 000010a0 20 20 20 20 72 35 2c 20 5b 72 67 2c 20 23 53 74 | r5, [rg, #St| 000010b0 61 63 6b 73 69 7a 65 5d 0a 0d 20 20 20 20 20 20 |acksize].. | 000010c0 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 72 35 | mov r5| 000010d0 2c 20 23 30 78 61 65 30 30 0a 0d 20 20 20 20 20 |, #0xae00.. | 000010e0 20 20 20 20 20 61 64 64 20 20 20 20 20 20 20 72 | add r| 000010f0 35 2c 20 72 35 2c 20 23 30 78 39 35 0a 0d 20 20 |5, r5, #0x95.. | 00001100 20 20 20 20 20 20 20 20 6c 64 72 20 20 20 20 20 | ldr | 00001110 20 20 72 62 2c 20 5b 72 67 2c 20 23 53 74 61 72 | rb, [rg, #Star| 00001120 74 49 6e 69 74 5d 0a 0d 20 20 20 20 20 20 20 20 |tInit].. | 00001130 20 20 63 6d 70 20 20 20 20 20 20 20 72 35 2c 20 | cmp r5, | 00001140 72 62 2c 20 6c 73 72 20 23 31 36 0a 0d 20 20 20 |rb, lsr #16.. | 00001150 20 20 20 20 20 20 20 62 6c 6e 65 20 20 20 20 20 | blne | 00001160 20 43 61 6c 6c 20 20 20 20 20 20 20 20 20 20 20 | Call | 00001170 20 20 20 20 20 3b 20 43 61 6c 6c 20 69 66 20 53 | ; Call if S| 00001180 74 61 72 74 49 6e 69 74 20 70 72 65 73 65 6e 74 |tartInit present| 00001190 0a 0d 20 20 20 20 20 20 20 20 20 20 73 74 72 6e |.. strn| 000011a0 65 20 20 20 20 20 61 31 2c 20 5b 72 67 2c 20 23 |e a1, [rg, #| 000011b0 53 74 61 63 6b 73 69 7a 65 5d 0a 0d 20 20 20 20 |Stacksize].. | 000011c0 20 20 20 20 20 20 73 77 69 20 20 20 20 20 20 20 | swi | 000011d0 4f 53 5f 47 65 74 45 6e 76 0a 0d 20 20 20 20 20 |OS_GetEnv.. | 000011e0 20 20 20 20 20 73 74 72 20 20 20 20 20 20 20 72 | str r| 000011f0 30 2c 20 5b 70 63 2c 20 23 73 61 76 65 72 65 67 |0, [pc, #savereg| 00001200 73 2d 24 2d 38 5d 20 20 20 20 20 20 20 3b 2a 63 |s-$-8] ;*c| 00001210 6f 6d 6d 61 6e 64 0a 0d 20 20 20 20 20 20 20 20 |ommand.. | 00001220 20 20 73 75 62 20 20 20 20 20 20 20 61 31 2c 20 | sub a1, | 00001230 61 31 2c 20 23 31 0a 0d 20 20 20 20 20 20 20 20 |a1, #1.. | 00001240 20 20 73 74 72 20 20 20 20 20 20 20 61 31 2c 20 | str a1, | 00001250 5b 72 39 2c 20 23 54 6f 70 53 74 6f 72 65 5d 0a |[r9, #TopStore].| 00001260 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 20 |. mov | 00001270 20 20 20 20 20 61 33 2c 20 61 31 20 20 20 20 20 | a3, a1 | 00001280 20 20 20 20 20 20 20 20 20 3b 20 54 6f 70 20 6f | ; Top o| 00001290 66 20 61 64 64 72 65 73 73 61 62 6c 65 20 73 74 |f addressable st| 000012a0 6f 72 65 0a 0d 20 20 20 20 20 20 20 20 20 20 6d |ore.. m| 000012b0 6f 76 20 20 20 20 20 20 20 61 31 2c 20 72 66 70 |ov a1, rfp| 000012c0 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 42 | ; B| 000012d0 61 73 65 20 20 20 22 22 20 20 20 20 20 20 20 20 |ase "" | 000012e0 20 20 22 22 0a 0d 20 20 20 20 20 20 20 20 20 20 | "".. | 000012f0 73 74 72 20 20 20 20 20 20 20 61 31 2c 20 5b 72 |str a1, [r| 00001300 67 2c 20 23 48 65 61 70 44 65 73 63 72 69 70 74 |g, #HeapDescript| 00001310 6f 72 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 73 |or].. s| 00001320 75 62 20 20 20 20 20 20 20 61 33 2c 20 61 33 2c |ub a3, a3,| 00001330 20 61 31 20 20 20 20 20 20 20 20 20 20 3b 20 6c | a1 ; l| 00001340 65 6e 67 74 68 20 61 76 61 69 6c 61 62 6c 65 0a |ength available.| 00001350 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 20 |. mov | 00001360 20 20 20 20 20 61 33 2c 20 61 33 2c 20 6c 73 72 | a3, a3, lsr| 00001370 20 23 32 0a 0d 20 20 20 20 20 20 20 20 20 20 6d | #2.. m| 00001380 6f 76 20 20 20 20 20 20 20 61 33 2c 20 61 33 2c |ov a3, a3,| 00001390 20 6c 73 6c 20 23 32 20 20 20 20 20 20 3b 20 6d | lsl #2 ; m| 000013a0 75 73 74 20 62 65 20 77 6f 72 64 73 69 7a 65 64 |ust be wordsized| 000013b0 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 |.. mov | 000013c0 20 20 20 20 20 20 72 30 2c 20 23 30 20 20 20 20 | r0, #0 | 000013d0 20 20 20 20 20 20 20 20 20 20 3b 20 69 6e 69 74 | ; init| 000013e0 69 61 6c 69 73 65 20 68 65 61 70 0a 0d 20 20 20 |ialise heap.. | 000013f0 20 20 20 20 20 20 20 73 77 69 20 20 20 20 20 20 | swi | 00001400 20 4f 53 5f 48 65 61 70 0a 0d 20 20 20 20 20 20 | OS_Heap.. | 00001410 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 72 30 | mov r0| 00001420 2c 20 23 32 0a 0d 20 20 20 20 20 20 20 20 20 20 |, #2.. | 00001430 6c 64 72 20 20 20 20 20 20 20 61 33 2c 20 5b 72 |ldr a3, [r| 00001440 67 2c 20 23 53 74 61 63 6b 73 69 7a 65 5d 0a 0d |g, #Stacksize]..| 00001450 20 20 20 20 20 20 20 20 20 20 61 64 64 20 20 20 | add | 00001460 20 20 20 20 61 33 2c 20 61 33 2c 20 23 31 0a 0d | a3, a3, #1..| 00001470 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 20 20 | mov | 00001480 20 20 20 20 61 33 2c 20 61 33 2c 20 6c 73 6c 20 | a3, a3, lsl | 00001490 23 32 20 20 20 20 20 20 3b 20 53 74 61 63 6b 62 |#2 ; Stackb| 000014a0 79 74 65 73 20 2b 20 34 0a 0d 20 20 20 20 20 20 |ytes + 4.. | 000014b0 20 20 20 20 73 77 69 20 20 20 20 20 20 20 4f 53 | swi OS| 000014c0 5f 48 65 61 70 0a 0d 20 20 20 20 20 20 20 20 20 |_Heap.. | 000014d0 20 6d 6f 76 20 20 20 20 20 20 20 72 35 2c 20 61 | mov r5, a| 000014e0 32 2c 20 6c 73 72 20 23 32 0a 0d 20 20 20 20 20 |2, lsr #2.. | 000014f0 20 20 20 20 20 61 64 64 20 20 20 20 20 20 20 72 | add r| 00001500 35 2c 20 72 35 2c 20 23 31 0a 0d 20 20 20 20 20 |5, r5, #1.. | 00001510 20 20 20 20 20 73 74 72 20 20 20 20 20 20 20 72 | str r| 00001520 35 2c 20 5b 72 67 2c 20 23 53 74 61 63 6b 62 61 |5, [rg, #Stackba| 00001530 73 65 5d 3b 20 6f 66 20 53 74 61 63 6b 73 69 7a |se]; of Stacksiz| 00001540 65 20 77 6f 72 64 73 0a 0d 20 20 20 20 20 20 20 |e words.. | 00001550 20 20 20 6d 6f 76 20 20 20 20 20 20 20 72 66 70 | mov rfp| 00001560 2c 20 61 32 20 20 20 20 20 20 20 20 20 20 20 20 |, a2 | 00001570 20 3b 20 77 69 74 68 20 72 66 70 20 61 73 20 62 | ; with rfp as b| 00001580 61 73 65 0a 0d 0a 0d 20 20 20 20 20 20 20 20 20 |ase.... | 00001590 20 6d 6f 76 20 20 20 20 20 20 20 61 33 2c 20 23 | mov a3, #| 000015a0 32 36 34 0a 0d 20 20 20 20 20 20 20 20 20 20 6d |264.. m| 000015b0 6f 76 20 20 20 20 20 20 20 72 30 2c 20 23 32 0a |ov r0, #2.| 000015c0 0d 20 20 20 20 20 20 20 20 20 20 73 77 69 20 20 |. swi | 000015d0 20 20 20 20 20 4f 53 5f 48 65 61 70 20 20 20 20 | OS_Heap | 000015e0 20 20 20 20 20 20 20 20 20 3b 20 67 65 74 20 73 | ; get s| 000015f0 70 61 63 65 20 66 6f 72 20 4c 69 6e 65 62 75 66 |pace for Linebuf| 00001600 66 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 |f.. mov| 00001610 20 20 20 20 20 20 20 72 30 2c 20 61 32 2c 20 6c | r0, a2, l| 00001620 73 72 20 23 32 0a 0d 20 20 20 20 20 20 20 20 20 |sr #2.. | 00001630 20 73 74 72 20 20 20 20 20 20 20 72 30 2c 20 5b | str r0, [| 00001640 72 67 2c 20 23 49 6e 73 74 72 69 6e 67 5d 20 3b |rg, #Instring] ;| 00001650 20 73 65 74 20 49 6e 73 74 72 69 6e 67 0a 0d 20 | set Instring.. | 00001660 20 20 20 20 20 20 20 20 20 61 64 64 20 20 20 20 | add | 00001670 20 20 20 72 30 2c 20 72 30 2c 20 23 32 0a 0d 20 | r0, r0, #2.. | 00001680 20 20 20 20 20 20 20 20 20 73 74 72 20 20 20 20 | str | 00001690 20 20 20 72 30 2c 20 5b 72 67 2c 20 23 4c 69 6e | r0, [rg, #Lin| 000016a0 65 42 75 66 66 5d 20 3b 20 73 65 74 20 4c 69 6e |eBuff] ; set Lin| 000016b0 65 62 75 66 0a 0d 20 20 20 20 20 20 20 20 20 20 |ebuf.. | 000016c0 61 64 64 20 20 20 20 20 20 20 61 32 2c 20 61 32 |add a2, a2| 000016d0 2c 20 23 34 0a 0d 20 20 20 20 20 20 20 20 20 20 |, #4.. | 000016e0 73 74 72 20 20 20 20 20 20 20 72 30 2c 20 5b 61 |str r0, [a| 000016f0 32 5d 2c 20 23 35 20 20 20 20 20 20 20 3b 20 49 |2], #5 ; I| 00001700 6e 73 74 72 69 6e 67 21 31 20 3a 3d 20 49 6e 73 |nstring!1 := Ins| 00001710 74 72 69 6e 67 2b 32 0a 0d 20 20 20 20 20 20 20 |tring+2.. | 00001720 20 20 20 73 75 62 20 20 20 20 20 20 20 61 33 2c | sub a3,| 00001730 20 61 32 2c 20 23 31 20 20 20 20 20 20 20 20 20 | a2, #1 | 00001740 3b 20 61 33 20 3d 20 6c 69 6e 65 62 75 66 42 0a |; a3 = linebufB.| 00001750 0d 20 20 20 20 20 20 20 20 20 20 6c 64 72 20 20 |. ldr | 00001760 20 20 20 20 20 72 30 2c 20 5b 70 63 2c 20 23 73 | r0, [pc, #s| 00001770 61 76 65 72 65 67 73 2d 24 2d 38 5d 0a 0d 57 61 |averegs-$-8]..Wa| 00001780 6c 6b 3a 20 20 20 20 20 6c 64 72 62 20 20 20 20 |lk: ldrb | 00001790 20 20 61 31 2c 20 5b 72 30 5d 2c 20 23 31 0a 0d | a1, [r0], #1..| 000017a0 20 20 20 20 20 20 20 20 20 20 63 6d 70 20 20 20 | cmp | 000017b0 20 20 20 20 61 31 2c 20 23 33 32 0a 0d 20 20 20 | a1, #32.. | 000017c0 20 20 20 20 20 20 20 62 67 74 20 20 20 20 20 20 | bgt | 000017d0 20 57 61 6c 6b 0a 0d 20 20 20 20 20 20 20 20 20 | Walk.. | 000017e0 20 73 75 62 6e 65 20 20 20 20 20 72 30 2c 20 72 | subne r0, r| 000017f0 30 2c 20 23 31 0a 0d 20 20 20 20 20 20 20 20 20 |0, #1.. | 00001800 20 6d 6f 76 20 20 20 20 20 20 20 61 31 2c 20 61 | mov a1, a| 00001810 32 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 |2 ; | 00001820 43 6f 6d 6d 61 6e 64 20 74 61 69 6c 20 74 6f 20 |Command tail to | 00001830 4c 69 6e 65 62 75 66 21 32 0a 0d 20 20 20 20 20 |Linebuf!2.. | 00001840 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 61 | mov a| 00001850 32 2c 20 23 32 35 36 0a 0d 20 20 20 20 20 20 20 |2, #256.. | 00001860 20 20 20 73 77 69 20 20 20 20 20 20 20 4f 53 5f | swi OS_| 00001870 47 53 54 72 61 6e 73 0a 0d 20 20 20 20 20 20 20 |GSTrans.. | 00001880 20 20 20 62 76 63 20 20 20 20 20 20 20 63 6d 64 | bvc cmd| 00001890 6c 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 |l.. mov| 000018a0 20 20 20 20 20 20 20 61 31 2c 20 23 31 32 0a 0d | a1, #12..| 000018b0 20 20 20 20 20 20 20 20 20 20 73 74 72 20 20 20 | str | 000018c0 20 20 20 20 61 31 2c 20 5b 72 67 2c 20 23 52 65 | a1, [rg, #Re| 000018d0 74 75 72 6e 43 6f 64 65 5d 0a 0d 20 20 20 20 20 |turnCode].. | 000018e0 20 20 20 20 20 41 44 52 20 20 20 20 20 20 20 61 | ADR a| 000018f0 31 2c 20 65 72 72 63 6c 0a 0d 20 20 20 20 20 20 |1, errcl.. | 00001900 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 61 31 | mov a1| 00001910 2c 20 61 31 2c 20 6c 73 72 20 23 32 0a 0d 20 20 |, a1, lsr #2.. | 00001920 20 20 20 20 20 20 20 20 6c 64 72 20 20 20 20 20 | ldr | 00001930 20 20 72 62 2c 20 5b 72 67 2c 20 23 46 61 75 6c | rb, [rg, #Faul| 00001940 74 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 62 6c |t].. bl| 00001950 20 20 20 20 20 20 20 20 43 61 6c 6c 0a 0d 20 20 | Call.. | 00001960 20 20 20 20 20 20 20 20 62 20 20 20 20 20 20 20 | b | 00001970 20 20 46 69 6e 69 73 68 20 20 20 20 20 20 20 20 | Finish | 00001980 20 20 20 20 20 20 3b 20 3f 20 6e 65 65 64 65 64 | ; ? needed| 00001990 0a 0d 65 72 72 63 6c 3a 20 20 20 20 2e 61 73 63 |..errcl: .asc| 000019a0 69 7a 20 20 20 20 22 42 61 64 20 43 4c 69 6e 65 |iz "Bad CLine| 000019b0 22 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 61 6c |".. .al| 000019c0 69 67 6e 0a 0d 0a 0d 63 6d 64 6c 3a 20 20 20 20 |ign....cmdl: | 000019d0 20 73 74 72 62 20 20 20 20 20 20 61 32 2c 20 5b | strb a2, [| 000019e0 61 33 5d 2c 20 23 2d 38 20 20 20 20 20 20 20 3b |a3], #-8 ;| 000019f0 20 49 6e 73 74 72 69 6e 67 21 30 20 3a 3d 20 4c | Instring!0 := L| 00001a00 69 6e 65 62 75 66 25 30 0a 0d 20 20 20 20 20 20 |inebuf%0.. | 00001a10 20 20 20 20 73 74 72 20 20 20 20 20 20 20 61 32 | str a2| 00001a20 2c 20 5b 61 33 5d 0a 0d 20 20 20 20 20 20 20 20 |, [a3].. | 00001a30 20 20 6d 6f 76 20 20 20 20 20 20 20 72 30 2c 20 | mov r0, | 00001a40 23 30 0a 0d 20 20 20 20 20 20 20 20 20 20 73 74 |#0.. st| 00001a50 72 20 20 20 20 20 20 20 72 30 2c 20 5b 72 67 2c |r r0, [rg,| 00001a60 20 23 4f 75 74 73 74 72 69 6e 67 5d 3b 4f 75 74 | #Outstring];Out| 00001a70 73 74 72 69 6e 67 20 3a 3d 20 30 0a 0d 0a 0d 20 |string := 0.... | 00001a80 20 20 20 20 20 20 20 20 20 6c 64 72 20 20 20 20 | ldr | 00001a90 20 20 20 61 32 2c 20 5b 72 67 2c 23 53 74 61 63 | a2, [rg,#Stac| 00001aa0 6b 73 69 7a 65 5d 0a 0d 20 20 20 20 20 20 20 20 |ksize].. | 00001ab0 20 20 72 73 62 20 20 20 20 20 20 20 61 32 2c 20 | rsb a2, | 00001ac0 61 32 2c 20 23 30 20 20 20 20 20 20 20 20 20 20 |a2, #0 | 00001ad0 3b 20 2d 53 74 61 63 6b 73 69 7a 65 57 0a 0d 20 |; -StacksizeW.. | 00001ae0 20 20 20 20 20 20 20 20 20 73 74 72 20 20 20 20 | str | 00001af0 20 20 20 61 32 2c 20 5b 72 66 70 5d 0a 0d 20 20 | a2, [rfp].. | 00001b00 20 20 20 20 20 20 20 20 73 75 62 20 20 20 20 20 | sub | 00001b10 20 20 61 33 2c 20 72 66 70 2c 20 61 32 2c 20 6c | a3, rfp, a2, l| 00001b20 73 6c 20 23 32 20 3b 20 54 4f 53 42 0a 0d 20 20 |sl #2 ; TOSB.. | 00001b30 20 20 20 20 20 20 20 20 61 64 64 20 20 20 20 20 | add | 00001b40 20 20 72 66 70 2c 20 72 66 70 2c 20 23 34 20 20 | rfp, rfp, #4 | 00001b50 20 20 20 20 20 20 3b 20 4e 6f 77 20 53 74 61 63 | ; Now Stac| 00001b60 6b 62 61 73 65 20 61 67 72 65 65 73 20 77 69 74 |kbase agrees wit| 00001b70 68 20 67 6c 6f 62 61 6c 0a 0d 20 20 20 20 20 20 |h global.. | 00001b80 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 72 30 | mov r0| 00001b90 2c 20 23 30 0a 0d 20 20 20 20 20 20 20 20 20 20 |, #0.. | 00001ba0 6d 76 6e 20 20 20 20 20 20 20 61 32 2c 20 23 30 |mvn a2, #0| 00001bb0 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 |.. mov | 00001bc0 20 20 20 20 20 20 61 34 2c 20 61 33 2c 20 6c 73 | a4, a3, ls| 00001bd0 72 20 23 32 0a 0d 20 20 20 20 20 20 20 20 20 20 |r #2.. | 00001be0 73 75 62 20 20 20 20 20 20 20 61 34 2c 20 61 34 |sub a4, a4| 00001bf0 2c 20 23 31 0a 0d 20 20 20 20 20 20 20 20 20 20 |, #1.. | 00001c00 73 74 6d 65 61 20 20 20 20 20 72 66 70 21 2c 20 |stmea rfp!, | 00001c10 7b 72 30 2c 20 61 32 2c 20 61 34 7d 20 20 3b 20 |{r0, a2, a4} ; | 00001c20 73 62 21 30 2c 20 31 2c 20 32 2c 20 33 20 3a 3d |sb!0, 1, 2, 3 :=| 00001c30 20 30 2c 20 2d 53 62 77 2c 20 54 4f 53 57 2c 20 | 0, -Sbw, TOSW, | 00001c40 2d 53 62 77 0a 0d 20 20 20 20 20 20 20 20 20 20 |-Sbw.. | 00001c50 6d 6f 76 20 20 20 20 20 20 20 61 31 2c 20 23 31 |mov a1, #1| 00001c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 | ; | 00001c70 73 62 21 35 20 6f 6e 6c 79 20 6e 65 65 64 65 64 |sb!5 only needed| 00001c80 0a 0d 20 20 20 20 20 20 20 20 20 20 73 74 6d 65 |.. stme| 00001c90 61 20 20 20 20 20 72 66 70 21 2c 20 7b 72 30 2c |a rfp!, {r0,| 00001ca0 20 61 31 2c 20 61 32 7d 20 20 20 20 3b 20 77 72 | a1, a2} ; wr| 00001cb0 6f 6e 67 21 21 21 21 21 21 21 0a 0d 20 20 20 20 |ong!!!!!!!.. | 00001cc0 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 | mov | 00001cd0 72 74 73 2c 20 72 66 70 20 20 20 20 20 20 20 20 |rts, rfp | 00001ce0 20 20 20 20 3b 20 45 6d 70 74 79 20 66 72 61 6d | ; Empty fram| 00001cf0 65 0a 0d 3b 0a 0d 3b 73 74 61 63 6b 20 73 68 64 |e..;..;stack shd| 00001d00 20 62 65 20 66 66 66 66 30 30 30 30 2c 20 30 2c | be ffff0000, 0,| 00001d10 20 66 66 66 66 30 30 30 30 2c 20 74 6f 73 2c 2e | ffff0000, tos,.| 00001d20 2e 2e 2e 2e 2e 2c 77 6f 72 64 61 64 64 72 65 73 |.....,wordaddres| 00001d30 73 20 61 74 20 74 6f 70 0a 0d 3b 20 31 34 38 2d |s at top..; 148-| 00001d40 31 37 34 20 6f 6d 6d 69 74 74 65 64 0a 0d 3b 0a |174 ommitted..;.| 00001d50 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 20 |. mov | 00001d60 20 20 20 20 20 72 30 2c 20 23 36 35 0a 0d 20 20 | r0, #65.. | 00001d70 20 20 20 20 20 20 20 20 73 74 72 20 20 20 20 20 | str | 00001d80 20 20 72 30 2c 20 5b 72 67 2c 20 23 48 6f 73 74 | r0, [rg, #Host| 00001d90 50 72 6f 63 5d 0a 0d 20 20 20 20 20 20 20 20 20 |Proc].. | 00001da0 20 6d 6f 76 20 20 20 20 20 20 20 72 30 2c 20 23 | mov r0, #| 00001db0 30 0a 0d 20 20 20 20 20 20 20 20 20 20 73 74 72 |0.. str| 00001dc0 20 20 20 20 20 20 20 72 30 2c 20 5b 70 63 2c 20 | r0, [pc, | 00001dd0 23 45 6e 76 66 6c 61 67 20 2d 20 38 20 2d 20 24 |#Envflag - 8 - $| 00001de0 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 |].. mov| 00001df0 20 20 20 20 20 20 20 61 31 2c 20 23 30 0a 0d 20 | a1, #0.. | 00001e00 20 20 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 | mov | 00001e10 20 20 20 61 32 2c 20 23 30 0a 0d 20 20 20 20 20 | a2, #0.. | 00001e20 20 20 20 20 20 6d 76 6e 20 20 20 20 20 20 20 61 | mvn a| 00001e30 33 2c 20 23 31 0a 0d 20 20 20 20 20 20 20 20 20 |3, #1.. | 00001e40 20 6c 64 72 20 20 20 20 20 20 20 61 34 2c 20 5b | ldr a4, [| 00001e50 72 67 2c 20 23 41 62 6f 72 74 5d 0a 0d 20 20 20 |rg, #Abort].. | 00001e60 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 | mov | 00001e70 20 72 35 2c 20 23 30 78 61 65 30 30 0a 0d 20 20 | r5, #0xae00.. | 00001e80 20 20 20 20 20 20 20 20 61 64 64 20 20 20 20 20 | add | 00001e90 20 20 72 35 2c 20 72 35 2c 20 23 30 78 39 35 0a | r5, r5, #0x95.| 00001ea0 0d 20 20 20 20 20 20 20 20 20 20 63 6d 70 20 20 |. cmp | 00001eb0 20 20 20 20 20 72 35 2c 20 61 34 2c 20 6c 73 72 | r5, a4, lsr| 00001ec0 20 23 31 36 0a 0d 20 20 20 20 20 20 20 20 20 20 | #16.. | 00001ed0 73 74 72 65 71 20 20 20 20 20 72 30 2c 20 5b 70 |streq r0, [p| 00001ee0 63 2c 20 23 55 49 6e 73 74 72 20 2d 20 38 20 2d |c, #UInstr - 8 -| 00001ef0 20 24 5d 0a 0d 0a 0d 0a 0d 20 20 20 20 20 20 20 | $]...... | 00001f00 20 20 20 62 6c 6e 76 20 20 20 20 20 20 20 20 4e | blnv N| 00001f10 65 77 45 6e 76 20 20 20 20 20 20 20 20 20 20 20 |ewEnv | 00001f20 20 20 20 20 20 20 20 3b 20 52 65 6d 6f 76 65 20 | ; Remove | 00001f30 6e 76 0a 0d 20 20 20 20 20 20 20 20 20 20 41 44 |nv.. AD| 00001f40 52 20 20 20 20 20 20 20 72 30 2c 20 53 74 0a 0d |R r0, St..| 00001f50 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 20 20 | mov | 00001f60 20 20 20 20 72 30 2c 20 72 30 2c 20 6c 73 72 20 | r0, r0, lsr | 00001f70 23 32 0a 0d 20 20 20 20 20 20 20 20 20 20 73 74 |#2.. st| 00001f80 72 20 20 20 20 20 20 20 72 30 2c 20 5b 72 67 2c |r r0, [rg,| 00001f90 20 23 4c 6f 61 64 70 6f 69 6e 74 5d 0a 0d 20 20 | #Loadpoint].. | 00001fa0 20 20 20 20 20 20 20 20 6c 64 72 20 20 20 20 20 | ldr | 00001fb0 20 20 72 67 62 2c 20 5b 70 63 2c 20 23 52 67 62 | rgb, [pc, #Rgb| 00001fc0 76 61 6c 2d 38 2d 24 5d 0a 0d 20 20 20 20 20 20 |val-8-$].. | 00001fd0 20 20 20 20 61 64 64 20 20 20 20 20 20 20 72 67 | add rg| 00001fe0 62 2c 20 72 67 62 2c 20 23 30 78 34 30 30 30 30 |b, rgb, #0x40000| 00001ff0 30 30 30 0a 0d 20 20 20 20 20 20 20 20 20 20 6d |000.. m| 00002000 6f 76 20 20 20 20 20 20 20 72 30 2c 20 23 30 0a |ov r0, #0.| 00002010 0d 20 20 20 20 20 20 20 20 20 20 73 74 72 20 20 |. str | 00002020 20 20 20 20 20 72 30 2c 20 5b 72 67 2c 20 23 52 | r0, [rg, #R| 00002030 65 74 75 72 6e 43 6f 64 65 5d 0a 0d 20 20 20 20 |eturnCode].. | 00002040 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 | mov | 00002050 72 30 2c 20 23 31 20 3c 3c 20 32 34 20 20 20 20 |r0, #1 << 24 | 00002060 20 20 20 20 3b 20 4e 65 77 6c 69 6e 65 28 29 20 | ; Newline() | 00002070 6e 6f 74 20 66 61 73 74 0a 0d 20 20 20 20 20 20 |not fast.. | 00002080 20 20 20 20 73 74 72 20 20 20 20 20 20 20 72 30 | str r0| 00002090 2c 20 5b 72 67 2c 20 23 43 69 73 5d 0a 0d 20 20 |, [rg, #Cis].. | 000020a0 20 20 20 20 20 20 20 20 73 74 72 20 20 20 20 20 | str | 000020b0 20 20 72 30 2c 20 5b 72 67 2c 20 23 43 6f 73 5d | r0, [rg, #Cos]| 000020c0 0a 0d 20 20 20 20 20 20 20 20 20 20 6c 64 72 20 |.. ldr | 000020d0 20 20 20 20 20 20 72 62 2c 20 5b 72 67 2c 20 23 | rb, [rg, #| 000020e0 53 74 61 72 74 5d 0a 0d 20 20 20 20 20 20 20 20 |Start].. | 000020f0 20 20 62 6c 20 20 20 20 20 20 20 20 43 61 6c 6c | bl Call| 00002100 0a 0d 46 69 6e 69 73 68 3a 20 20 20 6d 6f 76 20 |..Finish: mov | 00002110 20 20 20 20 20 20 72 74 73 2c 20 72 66 70 0a 0d | rts, rfp..| 00002120 3b 20 20 20 20 20 20 20 20 20 20 6c 64 72 20 20 |; ldr | 00002130 20 20 20 20 20 72 62 2c 20 5b 72 67 2c 20 4c 69 | rb, [rg, Li| 00002140 62 74 65 72 6d 69 6e 61 74 65 69 6f 5d 20 20 20 |bterminateio] | 00002150 20 20 20 3b 6e 6f 74 20 6e 65 65 64 65 64 0a 0d | ;not needed..| 00002160 3b 20 20 20 20 20 20 20 20 20 20 62 6c 20 20 20 |; bl | 00002170 20 20 20 20 20 43 61 6c 6c 0a 0d 44 65 70 61 72 | Call..Depar| 00002180 74 3a 20 20 20 6c 64 72 20 20 20 20 20 20 20 61 |t: ldr a| 00002190 31 2c 20 5b 70 63 2c 20 23 61 62 65 78 2d 38 2d |1, [pc, #abex-8-| 000021a0 24 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 6c 64 |$].. ld| 000021b0 72 20 20 20 20 20 20 20 61 32 2c 20 5b 72 67 2c |r a2, [rg,| 000021c0 20 23 52 65 74 75 72 6e 43 6f 64 65 5d 0a 0d 20 | #ReturnCode].. | 000021d0 20 20 20 20 20 20 20 20 20 73 77 69 20 20 20 20 | swi | 000021e0 20 20 20 4f 53 5f 45 78 69 74 0a 0d 61 62 65 78 | OS_Exit..abex| 000021f0 3a 20 20 20 20 20 2e 61 73 63 69 69 20 20 20 20 |: .ascii | 00002200 22 41 42 45 58 22 0a 0d 0a 0d 73 61 76 65 72 65 |"ABEX"....savere| 00002210 67 73 3a 20 2e 62 6c 6b 6c 20 20 20 20 20 31 36 |gs: .blkl 16| 00002220 0a 0d 52 67 62 76 61 6c 3a 20 20 20 2e 6c 6f 6e |..Rgbval: .lon| 00002230 67 20 20 20 20 20 52 67 62 73 2d 34 20 20 20 20 |g Rgbs-4 | 00002240 20 20 20 20 20 20 20 20 20 20 3b 20 52 65 6c 6f | ; Relo| 00002250 63 61 74 65 20 74 68 65 73 65 20 74 77 6f 0a 0d |cate these two..| 00002260 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e |.. .lon| 00002270 67 20 20 20 20 20 2d 31 0a 0d 20 20 20 20 20 20 |g -1.. | 00002280 20 20 20 20 2e 61 73 63 69 63 20 20 20 20 22 45 | .ascic "E| 00002290 72 72 48 61 6e 64 22 0a 0d 45 72 72 48 61 6e 64 |rrHand"..ErrHand| 000022a0 3a 20 20 6d 6f 76 73 20 20 20 20 20 20 70 63 2c |: movs pc,| 000022b0 20 6c 72 0a 0d 45 73 63 48 61 6e 64 3a 20 20 73 | lr..EscHand: s| 000022c0 74 6d 66 64 20 20 20 20 20 72 6c 21 2c 20 7b 6c |tmfd rl!, {l| 000022d0 72 7d 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f |r}.. mo| 000022e0 76 20 20 20 20 20 20 20 72 30 2c 20 23 31 32 36 |v r0, #126| 000022f0 0a 0d 20 20 20 20 20 20 20 20 20 20 73 77 69 20 |.. swi | 00002300 20 20 20 20 20 20 4f 53 5f 42 79 74 65 2b 58 4f | OS_Byte+XO| 00002310 53 20 20 20 20 20 20 20 20 20 3b 20 41 63 6b 6e |S ; Ackn| 00002320 6f 77 6c 65 64 67 65 20 45 73 63 61 70 65 0a 0d |owledge Escape..| 00002330 20 20 20 20 20 20 20 20 20 20 6c 64 72 62 20 20 | ldrb | 00002340 20 20 20 20 72 30 2c 20 5b 72 67 2c 20 23 42 72 | r0, [rg, #Br| 00002350 6b 45 73 63 5d 0a 0d 20 20 20 20 20 20 20 20 20 |kEsc].. | 00002360 20 74 65 71 20 20 20 20 20 20 20 72 30 2c 20 23 | teq r0, #| 00002370 30 0a 0d 20 20 20 20 20 20 20 20 20 20 73 77 69 |0.. swi| 00002380 6e 65 20 20 20 20 20 4f 53 5f 57 72 69 74 65 53 |ne OS_WriteS| 00002390 2b 58 4f 53 0a 0d 20 20 20 20 20 20 20 20 20 20 |+XOS.. | 000023a0 2e 61 73 63 69 7a 20 20 20 20 22 5c 63 5c 6e 45 |.asciz "\c\nE| 000023b0 73 63 61 70 65 5c 63 5c 6e 22 0a 0d 20 20 20 20 |scape\c\n".. | 000023c0 20 20 20 20 20 20 2e 61 6c 69 67 6e 0a 0d 20 20 | .align.. | 000023d0 20 20 20 20 20 20 20 20 73 77 69 6e 65 20 20 20 | swine | 000023e0 20 20 4f 53 5f 45 78 69 74 0a 0d 20 20 20 20 20 | OS_Exit.. | 000023f0 20 20 20 20 20 6c 64 6d 66 64 20 20 20 20 20 72 | ldmfd r| 00002400 6c 21 2c 20 7b 6c 72 7d 0a 0d 20 20 20 20 20 20 |l!, {lr}.. | 00002410 20 20 20 20 6d 6f 76 73 20 20 20 20 20 20 70 63 | movs pc| 00002420 2c 20 6c 72 0a 0d 0a 0d 42 72 6b 48 61 6e 64 3a |, lr....BrkHand:| 00002430 20 20 6d 6f 76 20 20 20 20 20 20 20 70 63 2c 20 | mov pc, | 00002440 6c 72 0a 0d 0a 0d 20 20 20 20 20 20 20 20 20 20 |lr.... | 00002450 2e 6c 6f 6e 67 20 20 20 20 20 2d 31 0a 0d 20 20 |.long -1.. | 00002460 20 20 20 20 20 20 20 20 2e 61 73 63 69 63 20 20 | .ascic | 00002470 20 20 22 45 76 48 61 6e 64 6c 22 0a 0d 45 76 48 | "EvHandl"..EvH| 00002480 61 6e 64 6c 3a 20 20 41 44 52 20 20 20 20 20 20 |andl: ADR | 00002490 20 72 74 73 2c 20 45 76 65 52 74 6e 65 73 20 20 | rts, EveRtnes | 000024a0 20 20 20 20 20 3b 20 43 61 6c 6c 20 45 76 65 52 | ; Call EveR| 000024b0 74 6e 73 21 72 30 0a 0d 20 20 20 20 20 20 20 20 |tns!r0.. | 000024c0 20 20 6c 64 72 20 20 20 20 20 20 20 70 63 2c 20 | ldr pc, | 000024d0 5b 72 74 73 2c 20 72 30 2c 20 6c 73 6c 20 23 32 |[rts, r0, lsl #2| 000024e0 5d 0a 0d 0a 0d 45 76 46 6c 61 67 3a 20 20 20 41 |]....EvFlag: A| 000024f0 44 52 20 20 20 20 20 20 20 72 74 73 2c 20 45 76 |DR rts, Ev| 00002500 65 50 61 72 61 6d 73 0a 0d 20 20 20 20 20 20 20 |eParams.. | 00002510 20 20 20 6c 64 72 20 20 20 20 20 20 20 72 74 73 | ldr rts| 00002520 2c 20 5b 72 74 73 2c 20 72 30 2c 20 6c 73 6c 20 |, [rts, r0, lsl | 00002530 23 32 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 73 |#2].. s| 00002540 74 72 20 20 20 20 20 20 20 61 31 2c 20 5b 72 74 |tr a1, [rt| 00002550 73 5d 2c 20 23 34 0a 0d 20 20 20 20 20 20 20 20 |s], #4.. | 00002560 20 20 73 74 72 20 20 20 20 20 20 20 61 32 2c 20 | str a2, | 00002570 5b 72 74 73 5d 2c 20 23 34 0a 0d 20 20 20 20 20 |[rts], #4.. | 00002580 20 20 20 20 20 73 74 72 20 20 20 20 20 20 20 61 | str a| 00002590 33 2c 20 5b 72 74 73 5d 2c 20 23 34 0a 0d 20 20 |3, [rts], #4.. | 000025a0 20 20 20 20 20 20 20 20 73 74 72 20 20 20 20 20 | str | 000025b0 20 20 61 34 2c 20 5b 72 74 73 5d 2c 20 23 34 0a | a4, [rts], #4.| 000025c0 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 73 20 |. movs | 000025d0 20 20 20 20 20 70 63 2c 20 72 6c 0a 0d 0a 0d 45 | pc, rl....E| 000025e0 72 72 42 75 66 66 3a 20 20 2e 62 6c 6b 6c 20 20 |rrBuff: .blkl | 000025f0 20 20 20 31 36 0a 0d 0a 0d 20 20 20 20 20 20 20 | 16.... | 00002600 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 2d 31 0a | .long -1.| 00002610 0d 20 20 20 20 20 20 20 20 20 20 2e 61 73 63 69 |. .asci| 00002620 63 20 20 20 20 22 43 42 48 61 6e 64 6c 22 0a 0d |c "CBHandl"..| 00002630 43 42 48 61 6e 64 6c 3a 20 20 41 44 52 20 20 20 |CBHandl: ADR | 00002640 20 20 20 20 72 30 2c 20 43 42 42 75 66 66 0a 0d | r0, CBBuff..| 00002650 20 20 20 20 20 20 20 20 20 20 6c 64 72 20 20 20 | ldr | 00002660 20 20 20 20 6c 72 2c 20 5b 72 30 2c 20 23 36 30 | lr, [r0, #60| 00002670 5d 20 20 20 20 20 20 3b 20 45 78 69 74 3f 0a 0d |] ; Exit?..| 00002680 3b 20 20 20 20 20 20 20 20 20 20 74 73 74 73 20 |; tsts | 00002690 20 20 20 20 20 6c 72 2c 20 23 33 0a 0d 3b 20 20 | lr, #3..; | 000026a0 20 20 20 20 20 20 20 20 62 65 71 20 20 20 20 20 | beq | 000026b0 20 20 43 42 33 0a 0d 3b 20 20 20 20 20 20 20 20 | CB3..; | 000026c0 20 20 6d 6f 76 20 20 20 20 20 20 20 61 31 2c 20 | mov a1, | 000026d0 6c 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |lr | 000026e0 3b 20 6b 65 65 70 20 73 61 66 65 20 73 76 63 5f |; keep safe svc_| 000026f0 6c 72 0a 0d 3b 20 20 20 20 20 20 20 20 20 20 73 |lr..; s| 00002700 77 69 20 20 20 20 20 20 20 4f 53 5f 53 65 74 43 |wi OS_SetC| 00002710 61 6c 6c 42 61 63 6b 20 20 20 20 20 20 3b 20 61 |allBack ; a| 00002720 6e 6f 74 68 65 72 20 43 61 6c 6c 62 61 63 6b 0a |nother Callback.| 00002730 0d 3b 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 |.; mov | 00002740 20 20 20 20 20 20 6c 72 2c 20 61 31 0a 0d 20 20 | lr, a1.. | 00002750 20 20 20 20 20 20 20 20 6c 64 6d 66 64 20 20 20 | ldmfd | 00002760 20 20 72 30 2c 20 7b 72 30 2d 6c 72 7d 0a 0d 20 | r0, {r0-lr}.. | 00002770 20 20 20 20 20 20 20 20 20 6d 6f 76 73 20 20 20 | movs | 00002780 20 20 20 70 63 2c 20 6c 72 0a 0d 43 42 42 75 66 | pc, lr..CBBuf| 00002790 66 3a 20 20 20 2e 62 6c 6b 6c 20 20 20 20 20 31 |f: .blkl 1| 000027a0 36 0a 0d 0a 0d 45 76 42 75 66 66 3a 20 20 20 41 |6....EvBuff: A| 000027b0 44 52 20 20 20 20 20 20 20 72 74 73 2c 20 45 76 |DR rts, Ev| 000027c0 65 50 61 72 61 6d 73 0a 0d 20 20 20 20 20 20 20 |eParams.. | 000027d0 20 20 20 6c 64 72 20 20 20 20 20 20 20 72 74 73 | ldr rts| 000027e0 2c 20 5b 72 74 73 2c 20 72 30 2c 20 6c 73 6c 20 |, [rts, r0, lsl | 000027f0 23 32 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 6d |#2].. m| 00002800 6f 76 20 20 20 20 20 20 20 72 30 2c 20 72 30 2c |ov r0, r0,| 00002810 20 6c 73 6c 20 23 31 36 0a 0d 20 20 20 20 20 20 | lsl #16.. | 00002820 20 20 20 20 6f 72 72 20 20 20 20 20 20 20 72 30 | orr r0| 00002830 2c 20 72 30 2c 20 61 31 2c 20 6c 73 6c 20 23 38 |, r0, a1, lsl #8| 00002840 0a 0d 20 20 20 20 20 20 20 20 20 20 6f 72 72 20 |.. orr | 00002850 20 20 20 20 20 20 72 30 2c 20 72 30 2c 20 61 32 | r0, r0, a2| 00002860 0a 0d 20 20 20 20 20 20 20 20 20 20 6c 64 6d 66 |.. ldmf| 00002870 64 20 20 20 20 20 72 74 73 21 2c 20 7b 61 31 2c |d rts!, {a1,| 00002880 20 61 32 2c 20 72 6c 7d 0a 0d 20 20 20 20 20 20 | a2, rl}.. | 00002890 20 20 20 20 61 64 64 20 20 20 20 20 20 20 61 31 | add a1| 000028a0 2c 20 61 31 2c 20 23 31 0a 0d 20 20 20 20 20 20 |, a1, #1.. | 000028b0 20 20 20 20 6d 6f 76 65 71 20 20 20 20 20 61 31 | moveq a1| 000028c0 2c 20 23 30 0a 0d 20 20 20 20 20 20 20 20 20 20 |, #0.. | 000028d0 63 6d 70 20 20 20 20 20 20 20 61 31 2c 20 61 32 |cmp a1, a2| 000028e0 0a 0d 20 20 20 20 20 20 20 20 20 20 73 74 72 6e |.. strn| 000028f0 65 20 20 20 20 20 61 31 2c 20 5b 72 74 73 2c 20 |e a1, [rts, | 00002900 23 2d 31 32 5d 0a 0d 20 20 20 20 20 20 20 20 20 |#-12].. | 00002910 20 6d 6f 76 20 20 20 20 20 20 20 72 6c 2c 20 23 | mov rl, #| 00002920 30 0a 0d 45 76 52 65 74 75 72 6e 3a 20 6d 6f 76 |0..EvReturn: mov| 00002930 73 20 20 20 20 20 20 70 63 2c 20 6c 72 0a 0d 0a |s pc, lr...| 00002940 0d 45 76 65 52 74 6e 65 73 3a 20 2e 62 6c 6b 6c |.EveRtnes: .blkl| 00002950 20 20 20 20 20 31 38 20 20 20 20 20 20 20 20 20 | 18 | 00002960 20 20 20 20 20 20 20 20 20 3b 20 30 2d 31 31 20 | ; 0-11 | 00002970 45 76 65 6e 74 73 20 69 6e 20 41 72 74 68 75 72 |Events in Arthur| 00002980 0a 0d 45 76 65 50 61 72 61 6d 73 3a 2e 62 6c 6b |..EveParams:.blk| 00002990 6c 20 20 20 20 20 31 38 20 20 20 20 20 20 20 20 |l 18 | 000029a0 20 20 20 20 20 20 20 20 20 20 3b 20 30 2d 31 37 | ; 0-17| 000029b0 20 20 20 22 22 20 20 20 20 52 69 73 63 6f 73 0a | "" Riscos.| 000029c0 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 |. .long| 000029d0 20 20 20 20 20 2d 31 0a 0d 20 20 20 20 20 20 20 | -1.. | 000029e0 20 20 20 2e 61 73 63 69 63 20 20 20 20 22 53 65 | .ascic "Se| 000029f0 74 65 76 65 6e 22 0a 0d 53 65 74 65 76 65 6e 3a |teven"..Seteven:| 00002a00 20 20 63 6d 70 20 20 20 20 20 20 20 61 33 2c 20 | cmp a3, | 00002a10 23 30 0a 0d 20 20 20 20 20 20 20 20 20 20 41 44 |#0.. AD| 00002a20 52 20 20 20 20 20 20 20 61 32 2c 20 45 76 52 65 |R a2, EvRe| 00002a30 74 75 72 6e 0a 0d 20 20 20 20 20 20 20 20 20 20 |turn.. | 00002a40 62 65 71 20 20 20 20 20 20 20 45 76 65 6e 65 78 |beq Evenex| 00002a50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 | ; | 00002a60 69 67 6e 6f 72 65 0a 0d 20 20 20 20 20 20 20 20 |ignore.. | 00002a70 20 20 63 6d 70 20 20 20 20 20 20 20 61 33 2c 20 | cmp a3, | 00002a80 23 32 0a 0d 20 20 20 20 20 20 20 20 20 20 41 44 |#2.. AD| 00002a90 52 4e 45 20 20 20 20 20 61 34 2c 20 45 76 65 50 |RNE a4, EveP| 00002aa0 61 72 61 6d 73 0a 0d 20 20 20 20 20 20 20 20 20 |arams.. | 00002ab0 20 6d 6f 76 6e 65 20 20 20 20 20 61 32 2c 20 61 | movne a2, a| 00002ac0 32 2c 20 6c 73 6c 20 23 32 20 20 20 20 20 20 3b |2, lsl #2 ;| 00002ad0 20 66 6c 61 67 28 31 29 20 6f 72 20 62 75 66 66 | flag(1) or buff| 00002ae0 65 72 28 33 29 20 42 43 50 4c 0a 0d 20 20 20 20 |er(3) BCPL.. | 00002af0 20 20 20 20 20 20 73 74 72 6e 65 20 20 20 20 20 | strne | 00002b00 61 32 2c 20 5b 61 34 2c 20 61 31 2c 20 6c 73 6c |a2, [a4, a1, lsl| 00002b10 20 23 32 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 | #2].. | 00002b20 41 44 52 4e 45 20 20 20 20 20 61 32 2c 20 45 76 |ADRNE a2, Ev| 00002b30 46 6c 61 67 3b 0a 0d 20 20 20 20 20 20 20 20 20 |Flag;.. | 00002b40 20 63 6d 70 6e 65 20 20 20 20 20 61 33 2c 20 23 | cmpne a3, #| 00002b50 31 0a 0d 20 20 20 20 20 20 20 20 20 20 41 44 52 |1.. ADR| 00002b60 4e 45 20 20 20 20 20 61 32 2c 20 45 76 42 75 66 |NE a2, EvBuf| 00002b70 66 0a 0d 45 76 65 6e 65 78 3a 20 20 20 41 44 52 |f..Evenex: ADR| 00002b80 20 20 20 20 20 20 20 61 34 2c 20 45 76 65 52 74 | a4, EveRt| 00002b90 6e 65 73 20 20 20 20 20 20 20 3b 20 41 52 4d 20 |nes ; ARM | 00002ba0 52 6f 75 74 69 6e 65 28 32 29 0a 0d 20 20 20 20 |Routine(2).. | 00002bb0 20 20 20 20 20 20 73 74 72 6e 65 20 20 20 20 20 | strne | 00002bc0 61 32 2c 20 5b 61 34 2c 20 61 31 2c 20 6c 73 6c |a2, [a4, a1, lsl| 00002bd0 20 23 32 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 | #2].. | 00002be0 6d 6f 76 73 20 20 20 20 20 20 70 63 2c 20 6c 72 |movs pc, lr| 00002bf0 0a 0d 0a 0d 55 69 6e 68 61 6e 64 3a 20 20 73 74 |....Uinhand: st| 00002c00 72 20 20 20 20 20 20 20 6c 72 2c 20 5b 70 63 2c |r lr, [pc,| 00002c10 20 23 58 63 70 62 75 66 30 2d 24 2d 38 5d 0a 0d | #Xcpbuf0-$-8]..| 00002c20 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 20 20 | mov | 00002c30 20 20 20 20 6c 72 2c 20 23 31 0a 0d 20 20 20 20 | lr, #1.. | 00002c40 20 20 20 20 20 20 62 20 20 20 20 20 20 20 20 20 | b | 00002c50 48 61 72 64 68 61 6e 64 0a 0d 50 66 61 68 61 6e |Hardhand..Pfahan| 00002c60 64 3a 20 20 73 74 72 20 20 20 20 20 20 20 6c 72 |d: str lr| 00002c70 2c 20 5b 70 63 2c 20 23 58 63 70 62 75 66 30 2d |, [pc, #Xcpbuf0-| 00002c80 24 2d 38 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 |$-8].. | 00002c90 6d 6f 76 20 20 20 20 20 20 20 6c 72 2c 20 23 32 |mov lr, #2| 00002ca0 0a 0d 20 20 20 20 20 20 20 20 20 20 62 20 20 20 |.. b | 00002cb0 20 20 20 20 20 20 48 61 72 64 68 61 6e 64 0a 0d | Hardhand..| 00002cc0 44 74 61 68 61 6e 64 3a 20 20 73 74 72 20 20 20 |Dtahand: str | 00002cd0 20 20 20 20 6c 72 2c 20 5b 70 63 2c 20 23 58 63 | lr, [pc, #Xc| 00002ce0 70 62 75 66 30 2d 24 2d 38 5d 0a 0d 20 20 20 20 |pbuf0-$-8].. | 00002cf0 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 | mov | 00002d00 6c 72 2c 20 23 33 0a 0d 20 20 20 20 20 20 20 20 |lr, #3.. | 00002d10 20 20 62 20 20 20 20 20 20 20 20 20 48 61 72 64 | b Hard| 00002d20 68 61 6e 64 0a 0d 41 64 78 68 61 6e 64 3a 20 20 |hand..Adxhand: | 00002d30 73 74 72 20 20 20 20 20 20 20 6c 72 2c 20 5b 70 |str lr, [p| 00002d40 63 2c 20 23 58 63 70 62 75 66 30 2d 24 2d 38 5d |c, #Xcpbuf0-$-8]| 00002d50 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 |.. mov | 00002d60 20 20 20 20 20 20 6c 72 2c 20 23 34 0a 0d 48 61 | lr, #4..Ha| 00002d70 72 64 68 61 6e 64 3a 20 73 74 72 20 20 20 20 20 |rdhand: str | 00002d80 20 20 6c 72 2c 20 5b 70 63 2c 20 23 58 63 70 62 | lr, [pc, #Xcpb| 00002d90 75 66 31 2d 24 2d 38 5d 0a 0d 20 20 20 20 20 20 |uf1-$-8].. | 00002da0 20 20 20 20 41 44 52 20 20 20 20 20 20 20 6c 72 | ADR lr| 00002db0 2c 20 58 63 70 52 65 67 73 0a 0d 20 20 20 20 20 |, XcpRegs.. | 00002dc0 20 20 20 20 20 73 74 6d 65 61 20 20 20 20 20 6c | stmea l| 00002dd0 72 2c 20 7b 72 30 20 2d 20 6c 72 7d 5e 0a 0d 20 |r, {r0 - lr}^.. | 00002de0 20 20 20 20 20 20 20 20 20 74 73 74 70 20 20 20 | tstp | 00002df0 20 20 20 70 63 2c 20 23 30 20 20 20 20 20 20 20 | pc, #0 | 00002e00 20 20 20 20 20 20 20 3b 20 6c 65 61 76 65 20 73 | ; leave s| 00002e10 76 63 20 6d 6f 64 65 0a 0d 20 20 20 20 20 20 20 |vc mode.. | 00002e20 20 20 20 73 77 69 20 20 20 20 20 20 20 4f 53 5f | swi OS_| 00002e30 57 72 69 74 65 49 2b 31 34 0a 0d 20 20 20 20 20 |WriteI+14.. | 00002e40 20 20 20 20 20 61 64 64 20 20 20 20 20 20 20 72 | add r| 00002e50 74 73 2c 20 72 66 70 2c 20 23 31 36 30 0a 0d 20 |ts, rfp, #160.. | 00002e60 20 20 20 20 20 20 20 20 20 6c 64 72 20 20 20 20 | ldr | 00002e70 20 20 20 72 62 2c 20 5b 72 67 2c 20 23 41 62 6f | rb, [rg, #Abo| 00002e80 72 74 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 6c |rt].. l| 00002e90 64 72 20 20 20 20 20 20 20 61 31 2c 20 5b 70 63 |dr a1, [pc| 00002ea0 2c 20 23 58 63 70 62 75 66 31 2d 24 2d 38 5d 0a |, #Xcpbuf1-$-8].| 00002eb0 0d 20 20 20 20 20 20 20 20 20 20 6c 64 72 20 20 |. ldr | 00002ec0 20 20 20 20 20 6c 72 2c 20 5b 70 63 2c 20 23 58 | lr, [pc, #X| 00002ed0 63 70 62 75 66 30 2d 24 2d 38 5d 0a 0d 20 20 20 |cpbuf0-$-8].. | 00002ee0 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 | mov | 00002ef0 20 70 63 2c 20 72 62 0a 0d 0a 0d 20 20 20 20 20 | pc, rb.... | 00002f00 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 2d | .long -| 00002f10 31 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 61 73 |1.. .as| 00002f20 63 69 63 20 20 20 20 22 54 4b 52 45 72 72 20 22 |cic "TKRErr "| 00002f30 0a 0d 54 4b 52 45 72 72 3a 20 20 20 6d 6f 76 20 |..TKRErr: mov | 00002f40 20 20 20 20 20 20 61 33 2c 20 61 31 2c 20 6c 73 | a3, a1, ls| 00002f50 6c 20 23 32 0a 0d 20 20 20 20 20 20 20 20 20 20 |l #2.. | 00002f60 41 44 52 20 20 20 20 20 20 20 61 34 2c 20 45 72 |ADR a4, Er| 00002f70 72 42 75 66 66 2b 34 0a 0d 20 20 20 20 20 20 20 |rBuff+4.. | 00002f80 20 20 20 6d 6f 76 20 20 20 20 20 20 20 72 35 2c | mov r5,| 00002f90 20 23 30 0a 0d 54 4b 52 6c 70 3a 20 20 20 20 6c | #0..TKRlp: l| 00002fa0 64 72 62 20 20 20 20 20 20 72 62 2c 20 5b 61 34 |drb rb, [a4| 00002fb0 5d 2c 20 23 31 0a 0d 20 20 20 20 20 20 20 20 20 |], #1.. | 00002fc0 20 63 6d 70 20 20 20 20 20 20 20 72 62 2c 20 23 | cmp rb, #| 00002fd0 30 0a 0d 20 20 20 20 20 20 20 20 20 20 62 65 71 |0.. beq| 00002fe0 20 20 20 20 20 20 20 54 4b 52 65 78 0a 0d 20 20 | TKRex.. | 00002ff0 20 20 20 20 20 20 20 20 61 64 64 20 20 20 20 20 | add | 00003000 20 20 72 35 2c 20 72 35 2c 20 23 31 0a 0d 20 20 | r5, r5, #1.. | 00003010 20 20 20 20 20 20 20 20 73 74 72 62 20 20 20 20 | strb | 00003020 20 20 72 62 2c 20 5b 61 33 2c 20 72 35 5d 0a 0d | rb, [a3, r5]..| 00003030 20 20 20 20 20 20 20 20 20 20 63 6d 70 20 20 20 | cmp | 00003040 20 20 20 20 72 35 2c 20 61 32 0a 0d 20 20 20 20 | r5, a2.. | 00003050 20 20 20 20 20 20 62 6c 74 20 20 20 20 20 20 20 | blt | 00003060 54 4b 52 6c 70 0a 0d 54 4b 52 65 78 3a 20 20 20 |TKRlp..TKRex: | 00003070 20 73 74 72 62 20 20 20 20 20 20 72 35 2c 20 5b | strb r5, [| 00003080 61 33 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 6d |a3].. m| 00003090 6f 76 73 20 20 20 20 20 20 70 63 2c 20 6c 72 0a |ovs pc, lr.| 000030a0 0d 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f |... .lo| 000030b0 6e 67 20 20 20 20 20 2d 31 0a 0d 20 20 20 20 20 |ng -1.. | 000030c0 20 20 20 20 20 2e 61 73 63 69 63 20 20 20 20 20 | .ascic | 000030d0 22 53 74 6f 70 20 20 20 22 0a 0d 53 74 6f 70 3a |"Stop "..Stop:| 000030e0 20 20 20 20 20 73 74 72 20 20 20 20 20 20 20 61 | str a| 000030f0 31 2c 20 5b 72 67 2c 20 23 52 65 74 75 72 6e 43 |1, [rg, #ReturnC| 00003100 6f 64 65 5d 20 20 20 20 3b 3f 20 23 52 65 74 75 |ode] ;? #Retu| 00003110 72 6e 43 6f 64 65 0a 0d 20 20 20 20 20 20 20 20 |rnCode.. | 00003120 20 20 6c 64 72 20 20 20 20 20 20 20 61 33 2c 20 | ldr a3, | 00003130 5b 72 67 2c 20 23 53 74 61 63 6b 62 61 73 65 5d |[rg, #Stackbase]| 00003140 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 |.. mov | 00003150 20 20 20 20 20 20 61 33 2c 20 61 33 2c 20 6c 73 | a3, a3, ls| 00003160 6c 20 23 32 0a 0d 20 20 20 20 20 20 20 20 20 20 |l #2.. | 00003170 6c 64 72 20 20 20 20 20 20 20 61 32 2c 20 5b 61 |ldr a2, [a| 00003180 33 2c 20 23 34 5d 0a 0d 20 20 20 20 20 20 20 20 |3, #4].. | 00003190 20 20 6c 64 72 20 20 20 20 20 20 20 72 66 70 2c | ldr rfp,| 000031a0 20 5b 61 33 2c 20 23 32 34 5d 0a 0d 20 20 20 20 | [a3, #24].. | 000031b0 20 20 20 20 20 20 63 6d 6e 20 20 20 20 20 20 20 | cmn | 000031c0 61 32 2c 20 23 31 0a 0d 20 20 20 20 20 20 20 20 |a2, #1.. | 000031d0 20 20 62 65 71 20 20 20 20 20 20 20 46 69 6e 69 | beq Fini| 000031e0 73 68 0a 0d 20 20 20 20 20 20 20 20 20 20 62 20 |sh.. b | 000031f0 20 20 20 20 20 20 20 20 52 65 73 43 66 6c 74 0a | ResCflt.| 00003200 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 |. .long| 00003210 20 20 20 20 20 2d 31 0a 0d 20 20 20 20 20 20 20 | -1.. | 00003220 20 20 20 2e 61 73 63 69 63 20 20 20 20 22 43 68 | .ascic "Ch| 00003230 65 6e 76 20 20 22 0a 0d 4e 65 77 45 6e 76 3a 20 |env "..NewEnv: | 00003240 20 20 41 44 52 20 20 20 20 20 20 20 61 34 2c 20 | ADR a4, | 00003250 55 49 6e 73 74 72 0a 0d 20 20 20 20 20 20 20 20 |UInstr.. | 00003260 20 20 41 44 52 20 20 20 20 20 20 20 72 35 2c 20 | ADR r5, | 00003270 4f 55 49 6e 73 74 72 0a 0d 20 20 20 20 20 20 20 |OUInstr.. | 00003280 20 20 20 62 20 20 20 20 20 20 20 20 20 43 68 45 | b ChE| 00003290 6e 76 0a 0d 4f 6c 64 45 6e 76 3a 20 20 20 41 44 |nv..OldEnv: AD| 000032a0 52 20 20 20 20 20 20 20 61 34 2c 20 4f 55 49 6e |R a4, OUIn| 000032b0 73 74 72 0a 0d 20 20 20 20 20 20 20 20 20 20 41 |str.. A| 000032c0 44 52 20 20 20 20 20 20 20 72 35 2c 20 55 49 6e |DR r5, UIn| 000032d0 73 74 72 0a 0d 20 20 20 20 20 20 20 20 20 20 62 |str.. b| 000032e0 20 20 20 20 20 20 20 20 20 43 68 45 6e 76 0a 0d | ChEnv..| 000032f0 0a 0d 58 63 70 52 65 67 73 3a 20 20 2e 62 6c 6b |..XcpRegs: .blk| 00003300 6c 20 20 20 20 20 31 36 0a 0d 58 63 70 62 75 66 |l 16..Xcpbuf| 00003310 30 3a 20 20 2e 62 6c 6b 6c 20 20 20 20 20 31 0a |0: .blkl 1.| 00003320 0d 58 63 70 62 75 66 31 3a 20 20 2e 62 6c 6b 6c |.Xcpbuf1: .blkl| 00003330 20 20 20 20 20 31 0a 0d 4f 55 49 6e 73 74 72 3a | 1..OUInstr:| 00003340 20 20 2e 62 6c 6b 6c 20 20 20 20 20 31 0a 0d 4f | .blkl 1..O| 00003350 50 72 65 66 61 62 3a 20 20 2e 62 6c 6b 6c 20 20 |Prefab: .blkl | 00003360 20 20 20 31 0a 0d 4f 44 61 74 61 62 3a 20 20 20 | 1..ODatab: | 00003370 2e 62 6c 6b 6c 20 20 20 20 20 31 0a 0d 4f 41 64 |.blkl 1..OAd| 00003380 64 65 78 70 3a 20 20 2e 62 6c 6b 6c 20 20 20 20 |dexp: .blkl | 00003390 20 31 0a 0d 4f 4f 74 68 65 72 78 3a 20 20 2e 62 | 1..OOtherx: .b| 000033a0 6c 6b 6c 20 20 20 20 20 31 0a 0d 4f 45 72 72 6f |lkl 1..OErro| 000033b0 72 48 3a 20 20 2e 62 6c 6b 6c 20 20 20 20 20 33 |rH: .blkl 3| 000033c0 0a 0d 4f 43 61 6c 6c 42 48 3a 20 20 2e 62 6c 6b |..OCallBH: .blk| 000033d0 6c 20 20 20 20 20 33 0a 0d 4f 42 72 65 61 6b 50 |l 3..OBreakP| 000033e0 74 48 3a 2e 62 6c 6b 6c 20 20 20 20 20 33 0a 0d |tH:.blkl 3..| 000033f0 4f 45 73 63 61 70 65 48 3a 20 2e 62 6c 6b 6c 20 |OEscapeH: .blkl | 00003400 20 20 20 20 32 0a 0d 4f 45 76 65 6e 74 48 3a 20 | 2..OEventH: | 00003410 20 2e 62 6c 6b 6c 20 20 20 20 20 32 0a 0d 4f 45 | .blkl 2..OE| 00003420 78 69 74 48 3a 20 20 20 2e 62 6c 6b 6c 20 20 20 |xitH: .blkl | 00003430 20 20 32 0a 0d 4f 55 6e 75 73 53 57 49 3a 20 2e | 2..OUnusSWI: .| 00003440 62 6c 6b 6c 20 20 20 20 20 32 0a 0d 4f 45 78 63 |blkl 2..OExc| 00003450 65 70 52 65 67 3a 2e 62 6c 6b 6c 20 20 20 20 20 |epReg:.blkl | 00003460 31 0a 0d 4f 41 70 6c 53 70 3a 20 20 20 2e 62 6c |1..OAplSp: .bl| 00003470 6b 6c 20 20 20 20 20 31 0a 0d 4f 43 61 6f 3a 20 |kl 1..OCao: | 00003480 20 20 20 20 2e 62 6c 6b 6c 20 20 20 20 20 31 0a | .blkl 1.| 00003490 0d 4f 55 70 43 61 6c 6c 3a 20 20 2e 62 6c 6b 6c |.OUpCall: .blkl| 000034a0 20 20 20 20 20 32 0a 0d 0a 0d 45 6e 76 66 6c 61 | 2....Envfla| 000034b0 67 3a 20 20 2e 61 64 64 72 65 73 73 20 20 30 0a |g: .address 0.| 000034c0 0d 55 49 6e 73 74 72 3a 20 20 20 2e 61 64 64 72 |.UInstr: .addr| 000034d0 65 73 73 20 20 55 69 6e 68 61 6e 64 0a 0d 50 72 |ess Uinhand..Pr| 000034e0 65 66 61 62 3a 20 20 20 2e 61 64 64 72 65 73 73 |efab: .address| 000034f0 20 20 50 66 61 68 61 6e 64 0a 0d 44 61 74 61 62 | Pfahand..Datab| 00003500 3a 20 20 20 20 2e 61 64 64 72 65 73 73 20 20 44 |: .address D| 00003510 74 61 68 61 6e 64 0a 0d 41 64 64 65 78 70 3a 20 |tahand..Addexp: | 00003520 20 20 2e 61 64 64 72 65 73 73 20 20 41 64 78 68 | .address Adxh| 00003530 61 6e 64 0a 0d 4f 74 68 65 72 78 3a 20 20 20 2e |and..Otherx: .| 00003540 61 64 64 72 65 73 73 20 20 30 0a 0d 45 72 72 6f |address 0..Erro| 00003550 72 48 3a 20 20 20 2e 61 64 64 72 65 73 73 20 20 |rH: .address | 00003560 45 72 72 48 61 6e 64 0a 0d 20 20 20 20 20 20 20 |ErrHand.. | 00003570 20 20 20 2e 61 64 64 72 65 73 73 20 20 30 20 20 | .address 0 | 00003580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00003590 20 3b 20 64 6f 6e 74 20 63 61 72 65 0a 0d 20 20 | ; dont care.. | 000035a0 20 20 20 20 20 20 20 20 2e 61 64 64 72 65 73 73 | .address| 000035b0 20 20 45 72 72 42 75 66 66 0a 0d 43 61 6c 6c 42 | ErrBuff..CallB| 000035c0 48 3a 20 20 20 2e 61 64 64 72 65 73 73 20 20 43 |H: .address C| 000035d0 42 48 61 6e 64 6c 0a 0d 20 20 20 20 20 20 20 20 |BHandl.. | 000035e0 20 20 2e 61 64 64 72 65 73 73 20 20 30 0a 0d 20 | .address 0.. | 000035f0 20 20 20 20 20 20 20 20 20 2e 61 64 64 72 65 73 | .addres| 00003600 73 20 20 43 42 42 75 66 66 0a 0d 42 72 65 61 6b |s CBBuff..Break| 00003610 50 74 48 3a 20 2e 61 64 64 72 65 73 73 20 20 30 |PtH: .address 0| 00003620 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 61 64 64 |.. .add| 00003630 72 65 73 73 20 20 30 0a 0d 20 20 20 20 20 20 20 |ress 0.. | 00003640 20 20 20 2e 61 64 64 72 65 73 73 20 20 30 0a 0d | .address 0..| 00003650 45 73 63 61 70 65 48 3a 20 20 2e 61 64 64 72 65 |EscapeH: .addre| 00003660 73 73 20 20 30 0a 0d 20 20 20 20 20 20 20 20 20 |ss 0.. | 00003670 20 2e 61 64 64 72 65 73 73 20 20 30 0a 0d 45 76 | .address 0..Ev| 00003680 65 6e 74 48 3a 20 20 20 2e 61 64 64 72 65 73 73 |entH: .address| 00003690 20 20 45 76 48 61 6e 64 6c 0a 0d 20 20 20 20 20 | EvHandl.. | 000036a0 20 20 20 20 20 2e 61 64 64 72 65 73 73 20 20 30 | .address 0| 000036b0 0a 0d 45 78 69 74 48 3a 20 20 20 20 2e 61 64 64 |..ExitH: .add| 000036c0 72 65 73 73 20 20 45 78 69 74 68 61 6e 0a 0d 20 |ress Exithan.. | 000036d0 20 20 20 20 20 20 20 20 20 2e 61 64 64 72 65 73 | .addres| 000036e0 73 20 20 30 0a 0d 55 6e 6b 53 57 49 3a 20 20 20 |s 0..UnkSWI: | 000036f0 2e 61 64 64 72 65 73 73 20 20 30 0a 0d 20 20 20 |.address 0.. | 00003700 20 20 20 20 20 20 20 2e 61 64 64 72 65 73 73 20 | .address | 00003710 20 30 0a 0d 45 78 63 65 70 52 65 67 3a 20 2e 61 | 0..ExcepReg: .a| 00003720 64 64 72 65 73 73 20 20 30 3b 58 63 70 52 65 67 |ddress 0;XcpReg| 00003730 73 0a 0d 41 70 6c 53 70 3a 20 20 20 20 2e 61 64 |s..AplSp: .ad| 00003740 64 72 65 73 73 20 20 30 0a 0d 43 61 6f 3a 20 20 |dress 0..Cao: | 00003750 20 20 20 20 2e 61 64 64 72 65 73 73 20 20 30 0a | .address 0.| 00003760 0d 55 70 43 61 6c 6c 3a 20 20 20 2e 61 64 64 72 |.UpCall: .addr| 00003770 65 73 73 20 20 30 0a 0d 20 20 20 20 20 20 20 20 |ess 0.. | 00003780 20 20 2e 61 64 64 72 65 73 73 20 20 30 0a 0d 0a | .address 0...| 00003790 0d 3b 43 68 61 6e 67 65 6e 76 20 43 61 6c 6c 65 |.;Changenv Calle| 000037a0 64 20 77 69 74 68 20 72 30 20 63 61 73 65 20 66 |d with r0 case f| 000037b0 6f 72 20 4f 53 5f 43 68 61 6e 67 65 6e 76 2c 20 |or OS_Changenv, | 000037c0 61 34 20 61 64 64 72 65 73 73 20 6f 66 20 6e 65 |a4 address of ne| 000037d0 77 20 76 61 6c 75 65 2c 20 72 35 0a 0d 3b 61 64 |w value, r5..;ad| 000037e0 64 72 65 73 73 20 74 6f 20 70 75 74 20 6f 6c 64 |dress to put old| 000037f0 20 76 61 6c 75 65 3b 20 65 6e 64 73 20 77 69 74 | value; ends wit| 00003800 68 20 61 34 2c 20 72 35 20 69 6e 63 72 65 6d 65 |h a4, r5 increme| 00003810 6e 74 65 64 2e 0a 0d 0a 0d 43 68 45 6e 76 3a 20 |nted.....ChEnv: | 00003820 20 20 20 6c 64 72 20 20 20 20 20 20 20 72 30 2c | ldr r0,| 00003830 20 5b 70 63 2c 20 23 55 49 6e 73 74 72 2d 24 2d | [pc, #UInstr-$-| 00003840 38 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 63 6d |8].. cm| 00003850 70 20 20 20 20 20 20 20 72 30 2c 20 23 30 0a 0d |p r0, #0..| 00003860 20 20 20 20 20 20 20 20 20 20 6d 6f 76 65 71 20 | moveq | 00003870 20 20 20 20 70 63 2c 20 6c 72 0a 0d 20 20 20 20 | pc, lr.. | 00003880 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 | mov | 00003890 72 30 2c 20 23 30 20 20 20 20 20 20 20 20 20 20 |r0, #0 | 000038a0 20 20 20 20 3b 20 4e 42 20 30 28 4d 65 6d 6c 69 | ; NB 0(Memli| 000038b0 6d 20 6e 6f 74 20 73 65 72 76 69 63 65 64 29 0a |m not serviced).| 000038c0 0d 45 6e 76 6c 70 3a 20 20 20 20 6d 6f 76 20 20 |.Envlp: mov | 000038d0 20 20 20 20 20 61 32 2c 20 23 30 0a 0d 20 20 20 | a2, #0.. | 000038e0 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 | mov | 000038f0 20 61 33 2c 20 23 30 0a 0d 20 20 20 20 20 20 20 | a3, #0.. | 00003900 20 20 20 61 64 64 20 20 20 20 20 20 20 72 30 2c | add r0,| 00003910 20 72 30 2c 20 23 31 0a 0d 20 20 20 20 20 20 20 | r0, #1.. | 00003920 20 20 20 6c 64 72 20 20 20 20 20 20 20 61 31 2c | ldr a1,| 00003930 20 5b 61 34 5d 2c 20 23 34 0a 0d 20 20 20 20 20 | [a4], #4.. | 00003940 20 20 20 20 20 74 65 71 20 20 20 20 20 20 20 72 | teq r| 00003950 30 2c 20 23 30 0a 0d 20 20 20 20 20 20 20 20 20 |0, #0.. | 00003960 20 74 65 71 6e 65 20 20 20 20 20 72 30 2c 20 23 | teqne r0, #| 00003970 31 0a 0d 20 20 20 20 20 20 20 20 20 20 74 65 71 |1.. teq| 00003980 6e 65 20 20 20 20 20 72 30 2c 20 23 32 0a 0d 20 |ne r0, #2.. | 00003990 20 20 20 20 20 20 20 20 20 74 65 71 6e 65 20 20 | teqne | 000039a0 20 20 20 72 30 2c 20 23 33 0a 0d 20 20 20 20 20 | r0, #3.. | 000039b0 20 20 20 20 20 74 65 71 6e 65 20 20 20 20 20 72 | teqne r| 000039c0 30 2c 20 23 34 0a 0d 20 20 20 20 20 20 20 20 20 |0, #4.. | 000039d0 20 74 65 71 6e 65 20 20 20 20 20 72 30 2c 20 23 | teqne r0, #| 000039e0 35 0a 0d 20 20 20 20 20 20 20 20 20 20 74 65 71 |5.. teq| 000039f0 6e 65 20 20 20 20 20 72 30 2c 20 23 31 33 0a 0d |ne r0, #13..| 00003a00 20 20 20 20 20 20 20 20 20 20 74 65 71 6e 65 20 | teqne | 00003a10 20 20 20 20 72 30 2c 20 23 31 34 0a 0d 20 20 20 | r0, #14.. | 00003a20 20 20 20 20 20 20 20 74 65 71 6e 65 20 20 20 20 | teqne | 00003a30 20 72 30 2c 20 23 31 35 0a 0d 20 20 20 20 20 20 | r0, #15.. | 00003a40 20 20 20 20 62 65 71 20 20 20 20 20 20 20 45 6e | beq En| 00003a50 76 31 0a 0d 20 20 20 20 20 20 20 20 20 20 6c 64 |v1.. ld| 00003a60 72 20 20 20 20 20 20 20 61 32 2c 20 5b 61 34 5d |r a2, [a4]| 00003a70 2c 20 23 34 0a 0d 20 20 20 20 20 20 20 20 20 20 |, #4.. | 00003a80 74 65 71 20 20 20 20 20 20 20 72 30 2c 20 23 39 |teq r0, #9| 00003a90 0a 0d 20 20 20 20 20 20 20 20 20 20 74 65 71 6e |.. teqn| 00003aa0 65 20 20 20 20 20 72 30 2c 20 23 31 30 0a 0d 20 |e r0, #10.. | 00003ab0 20 20 20 20 20 20 20 20 20 74 65 71 6e 65 20 20 | teqne | 00003ac0 20 20 20 72 30 2c 20 23 31 31 0a 0d 20 20 20 20 | r0, #11.. | 00003ad0 20 20 20 20 20 20 74 65 71 6e 65 20 20 20 20 20 | teqne | 00003ae0 72 30 2c 20 23 31 32 0a 0d 20 20 20 20 20 20 20 |r0, #12.. | 00003af0 20 20 20 74 65 71 6e 65 20 20 20 20 20 72 30 2c | teqne r0,| 00003b00 20 23 31 33 0a 0d 20 20 20 20 20 20 20 20 20 20 | #13.. | 00003b10 74 65 71 6e 65 20 20 20 20 20 72 30 2c 20 23 31 |teqne r0, #1| 00003b20 36 0a 0d 20 20 20 20 20 20 20 20 20 20 62 65 71 |6.. beq| 00003b30 20 20 20 20 20 20 20 45 6e 76 31 0a 0d 20 20 20 | Env1.. | 00003b40 20 20 20 20 20 20 20 6c 64 72 20 20 20 20 20 20 | ldr | 00003b50 20 61 33 2c 20 5b 61 34 5d 2c 20 23 34 0a 0d 45 | a3, [a4], #4..E| 00003b60 6e 76 31 3a 20 20 20 20 20 73 77 69 20 20 20 20 |nv1: swi | 00003b70 20 20 20 4f 53 5f 43 68 61 6e 67 65 45 6e 76 69 | OS_ChangeEnvi| 00003b80 72 6f 6e 6d 65 6e 74 0a 0d 20 20 20 20 20 20 20 |ronment.. | 00003b90 20 20 20 73 74 72 20 20 20 20 20 20 20 61 31 2c | str a1,| 00003ba0 20 5b 72 35 5d 2c 20 23 34 0a 0d 20 20 20 20 20 | [r5], #4.. | 00003bb0 20 20 20 20 20 74 65 71 20 20 20 20 20 20 20 72 | teq r| 00003bc0 30 2c 20 23 30 0a 0d 20 20 20 20 20 20 20 20 20 |0, #0.. | 00003bd0 20 74 65 71 6e 65 20 20 20 20 20 72 30 2c 20 23 | teqne r0, #| 00003be0 31 0a 0d 20 20 20 20 20 20 20 20 20 20 74 65 71 |1.. teq| 00003bf0 6e 65 20 20 20 20 20 72 30 2c 20 23 32 0a 0d 20 |ne r0, #2.. | 00003c00 20 20 20 20 20 20 20 20 20 74 65 71 6e 65 20 20 | teqne | 00003c10 20 20 20 72 30 2c 20 23 33 0a 0d 20 20 20 20 20 | r0, #3.. | 00003c20 20 20 20 20 20 74 65 71 6e 65 20 20 20 20 20 72 | teqne r| 00003c30 30 2c 20 23 34 0a 0d 20 20 20 20 20 20 20 20 20 |0, #4.. | 00003c40 20 74 65 71 6e 65 20 20 20 20 20 72 30 2c 20 23 | teqne r0, #| 00003c50 35 0a 0d 20 20 20 20 20 20 20 20 20 20 74 65 71 |5.. teq| 00003c60 6e 65 20 20 20 20 20 72 30 2c 20 23 31 33 0a 0d |ne r0, #13..| 00003c70 20 20 20 20 20 20 20 20 20 20 74 65 71 6e 65 20 | teqne | 00003c80 20 20 20 20 72 30 2c 20 23 31 34 0a 0d 20 20 20 | r0, #14.. | 00003c90 20 20 20 20 20 20 20 74 65 71 6e 65 20 20 20 20 | teqne | 00003ca0 20 72 30 2c 20 23 31 35 0a 0d 20 20 20 20 20 20 | r0, #15.. | 00003cb0 20 20 20 20 62 65 71 20 20 20 20 20 20 20 45 6e | beq En| 00003cc0 76 6c 70 0a 0d 20 20 20 20 20 20 20 20 20 20 73 |vlp.. s| 00003cd0 74 72 20 20 20 20 20 20 20 61 32 2c 20 5b 72 35 |tr a2, [r5| 00003ce0 5d 2c 20 23 34 0a 0d 20 20 20 20 20 20 20 20 20 |], #4.. | 00003cf0 20 74 65 71 20 20 20 20 20 20 20 72 30 2c 20 23 | teq r0, #| 00003d00 39 0a 0d 20 20 20 20 20 20 20 20 20 20 74 65 71 |9.. teq| 00003d10 6e 65 20 20 20 20 20 72 30 2c 20 23 31 30 0a 0d |ne r0, #10..| 00003d20 20 20 20 20 20 20 20 20 20 20 74 65 71 6e 65 20 | teqne | 00003d30 20 20 20 20 72 30 2c 20 23 31 31 0a 0d 20 20 20 | r0, #11.. | 00003d40 20 20 20 20 20 20 20 74 65 71 6e 65 20 20 20 20 | teqne | 00003d50 20 72 30 2c 20 23 31 32 0a 0d 20 20 20 20 20 20 | r0, #12.. | 00003d60 20 20 20 20 74 65 71 6e 65 20 20 20 20 20 72 30 | teqne r0| 00003d70 2c 20 23 31 33 0a 0d 20 20 20 20 20 20 20 20 20 |, #13.. | 00003d80 20 62 65 71 20 20 20 20 20 20 20 45 6e 76 6c 70 | beq Envlp| 00003d90 0a 0d 20 20 20 20 20 20 20 20 20 20 74 65 71 20 |.. teq | 00003da0 20 20 20 20 20 20 72 30 2c 20 23 31 36 0a 0d 20 | r0, #16.. | 00003db0 20 20 20 20 20 20 20 20 20 6d 6f 76 65 71 20 20 | moveq | 00003dc0 20 20 20 70 63 2c 20 6c 72 0a 0d 20 20 20 20 20 | pc, lr.. | 00003dd0 20 20 20 20 20 73 74 72 20 20 20 20 20 20 20 61 | str a| 00003de0 33 2c 20 5b 72 35 5d 2c 20 23 34 0a 0d 45 6e 76 |3, [r5], #4..Env| 00003df0 32 3a 20 20 20 20 20 62 20 20 20 20 20 20 20 20 |2: b | 00003e00 20 45 6e 76 6c 70 0a 0d 0a 0d 55 50 43 48 61 6e | Envlp....UPCHan| 00003e10 64 3a 20 20 73 74 6d 69 61 20 20 20 20 20 72 31 |d: stmia r1| 00003e20 32 2c 20 7b 72 30 2d 72 35 2c 20 6c 72 7d 0a 0d |2, {r0-r5, lr}..| 00003e30 20 20 20 20 20 20 20 20 20 20 74 73 74 20 20 20 | tst | 00003e40 20 20 20 20 72 30 2c 20 23 32 35 36 20 20 20 20 | r0, #256 | 00003e50 20 20 20 20 20 20 20 20 3b 20 52 31 32 20 70 6f | ; R12 po| 00003e60 69 6e 74 73 20 74 6f 20 37 20 77 6f 72 64 20 62 |ints to 7 word b| 00003e70 6c 6f 63 6b 0a 0d 20 20 20 20 20 20 20 20 20 20 |lock.. | 00003e80 6c 64 72 65 71 20 20 20 20 20 72 30 2c 20 5b 70 |ldreq r0, [p| 00003e90 63 2c 20 23 45 6e 76 66 6c 61 67 2d 24 2d 70 63 |c, #Envflag-$-pc| 00003ea0 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 74 65 71 |].. teq| 00003eb0 65 71 20 20 20 20 20 72 30 2c 20 23 31 0a 0d 20 |eq r0, #1.. | 00003ec0 20 20 20 20 20 20 20 20 20 62 6e 65 20 20 20 20 | bne | 00003ed0 20 20 20 55 70 45 78 0a 0d 20 20 20 20 20 20 20 | UpEx.. | 00003ee0 20 20 20 62 6c 20 20 20 20 20 20 20 20 4f 6c 64 | bl Old| 00003ef0 45 6e 76 0a 0d 20 20 20 20 20 20 20 20 20 20 6d |Env.. m| 00003f00 6f 76 20 20 20 20 20 20 20 72 30 2c 20 23 30 0a |ov r0, #0.| 00003f10 0d 20 20 20 20 20 20 20 20 20 20 73 74 72 20 20 |. str | 00003f20 20 20 20 20 20 72 30 2c 20 5b 70 63 2c 20 23 45 | r0, [pc, #E| 00003f30 6e 76 66 6c 61 67 2d 24 2d 70 63 5d 0a 0d 55 70 |nvflag-$-pc]..Up| 00003f40 45 78 3a 20 20 20 20 20 6c 64 6d 69 61 20 20 20 |Ex: ldmia | 00003f50 20 20 72 31 32 2c 20 7b 72 30 2d 72 35 2c 20 6c | r12, {r0-r5, l| 00003f60 72 7d 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f |r}.. mo| 00003f70 76 73 20 20 20 20 20 20 70 63 2c 20 6c 72 0a 0d |vs pc, lr..| 00003f80 0a 0d 45 78 69 74 68 61 6e 3a 20 20 62 6c 20 20 |..Exithan: bl | 00003f90 20 20 20 20 20 20 4f 6c 64 45 6e 76 0a 0d 20 20 | OldEnv.. | 00003fa0 20 20 20 20 20 20 20 20 73 77 69 20 20 20 20 20 | swi | 00003fb0 20 20 4f 53 5f 45 78 69 74 0a 0d 0a 0d 20 20 20 | OS_Exit.... | 00003fc0 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 | .long | 00003fd0 20 2d 31 0a 0d 20 20 20 20 20 20 20 20 20 20 2e | -1.. .| 00003fe0 61 73 63 69 63 20 20 20 20 22 4f 53 43 4c 49 20 |ascic "OSCLI | 00003ff0 20 22 0a 0d 4f 53 43 4c 49 3a 20 20 20 20 6d 6f | "..OSCLI: mo| 00004000 76 20 20 20 20 20 20 20 72 30 2c 20 61 31 2c 20 |v r0, a1, | 00004010 6c 73 6c 20 23 32 0a 0d 20 20 20 20 20 20 20 20 |lsl #2.. | 00004020 20 20 6c 64 72 62 20 20 20 20 20 20 61 31 2c 20 | ldrb a1, | 00004030 5b 72 30 5d 2c 20 23 31 20 20 20 20 20 20 20 20 |[r0], #1 | 00004040 3b 20 73 74 72 69 6e 67 20 62 79 74 65 20 62 61 |; string byte ba| 00004050 73 65 2c 20 6c 65 6e 67 74 68 0a 0d 20 20 20 20 |se, length.. | 00004060 20 20 20 20 20 20 61 64 64 20 20 20 20 20 20 20 | add | 00004070 61 32 2c 20 61 31 2c 20 72 30 20 20 20 20 20 20 |a2, a1, r0 | 00004080 20 20 20 20 3b 20 73 74 72 69 6e 67 20 62 79 74 | ; string byt| 00004090 65 20 74 65 72 6d 69 6e 61 74 6f 72 20 70 6f 73 |e terminator pos| 000040a0 69 74 69 6f 6e 0a 0d 20 20 20 20 20 20 20 20 20 |ition.. | 000040b0 20 6c 64 72 62 20 20 20 20 20 20 72 33 2c 20 5b | ldrb r3, [| 000040c0 61 32 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 6d |a2].. m| 000040d0 6f 76 20 20 20 20 20 20 20 61 34 2c 20 23 30 0a |ov a4, #0.| 000040e0 0d 20 20 20 20 20 20 20 20 20 20 73 74 72 62 20 |. strb | 000040f0 20 20 20 20 20 61 34 2c 20 5b 61 32 5d 0a 0d 20 | a4, [a2].. | 00004100 20 20 20 20 20 20 20 20 20 6c 64 72 20 20 20 20 | ldr | 00004110 20 20 20 61 31 2c 20 5b 70 63 2c 20 23 45 6e 76 | a1, [pc, #Env| 00004120 66 6c 61 67 2d 24 2d 70 63 5d 0a 0d 20 20 20 20 |flag-$-pc].. | 00004130 20 20 20 20 20 20 63 6d 70 20 20 20 20 20 20 20 | cmp | 00004140 61 31 2c 20 23 30 0a 0d 20 20 20 20 20 20 20 20 |a1, #0.. | 00004150 20 20 62 6e 65 20 20 20 20 20 20 20 53 61 76 45 | bne SavE| 00004160 6e 76 0a 0d 20 20 20 20 20 20 20 20 20 20 73 77 |nv.. sw| 00004170 69 20 20 20 20 20 20 20 4f 53 5f 43 4c 49 2b 58 |i OS_CLI+X| 00004180 4f 53 0a 0d 20 20 20 20 20 20 20 20 20 20 73 74 |OS.. st| 00004190 72 62 20 20 20 20 20 20 61 33 2c 20 5b 61 32 5d |rb a3, [a2]| 000041a0 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 |.. mov | 000041b0 20 20 20 20 20 20 61 31 2c 20 23 30 0a 0d 20 20 | a1, #0.. | 000041c0 20 20 20 20 20 20 20 20 6d 76 6e 76 73 20 20 20 | mvnvs | 000041d0 20 20 61 31 2c 20 23 30 0a 0d 20 20 20 20 20 20 | a1, #0.. | 000041e0 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 70 63 | mov pc| 000041f0 2c 20 6c 72 0a 0d 53 61 76 45 6e 76 3a 20 20 20 |, lr..SavEnv: | 00004200 73 74 6d 65 61 20 20 20 20 20 72 74 73 21 2c 20 |stmea rts!, | 00004210 7b 6c 72 7d 0a 0d 20 20 20 20 20 20 20 20 20 20 |{lr}.. | 00004220 73 74 6d 65 61 20 20 20 20 20 72 74 73 21 2c 20 |stmea rts!, | 00004230 7b 61 32 2c 20 61 33 7d 0a 0d 20 20 20 20 20 20 |{a2, a3}.. | 00004240 20 20 20 20 62 6c 20 20 20 20 20 20 20 20 4f 6c | bl Ol| 00004250 64 45 6e 76 0a 0d 20 20 20 20 20 20 20 20 20 20 |dEnv.. | 00004260 73 77 69 20 20 20 20 20 20 20 4f 53 5f 43 4c 49 |swi OS_CLI| 00004270 2b 58 4f 53 0a 0d 20 20 20 20 20 20 20 20 20 20 |+XOS.. | 00004280 6d 6f 76 20 20 20 20 20 20 20 61 31 2c 20 23 30 |mov a1, #0| 00004290 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 76 6e 76 |.. mvnv| 000042a0 73 20 20 20 20 20 61 31 2c 20 23 30 0a 0d 53 74 |s a1, #0..St| 000042b0 45 6e 76 3a 20 20 20 20 62 6c 20 20 20 20 20 20 |Env: bl | 000042c0 20 20 4e 65 77 45 6e 76 0a 0d 20 20 20 20 20 20 | NewEnv.. | 000042d0 20 20 20 20 6c 64 6d 65 61 20 20 20 20 20 72 74 | ldmea rt| 000042e0 73 21 2c 20 7b 61 32 2c 20 61 33 7d 0a 0d 20 20 |s!, {a2, a3}.. | 000042f0 20 20 20 20 20 20 20 20 73 74 72 62 20 20 20 20 | strb | 00004300 20 20 61 33 2c 20 5b 61 32 5d 0a 0d 20 20 20 20 | a3, [a2].. | 00004310 20 20 20 20 20 20 6c 64 6d 65 61 20 20 20 20 20 | ldmea | 00004320 72 74 73 21 2c 20 7b 70 63 7d 0a 0d 0a 0d 20 20 |rts!, {pc}.... | 00004330 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 | .long | 00004340 20 20 2d 31 20 20 20 20 20 20 20 20 20 20 20 20 | -1 | 00004350 20 20 20 20 20 20 3b 20 6e 65 65 64 73 20 61 20 | ; needs a | 00004360 67 6c 6f 62 61 6c 0a 0d 20 20 20 20 20 20 20 20 |global.. | 00004370 20 20 2e 61 73 63 69 63 20 20 20 20 22 52 65 73 | .ascic "Res| 00004380 74 45 6e 76 22 0a 0d 52 65 73 65 74 45 6e 76 3a |tEnv"..ResetEnv:| 00004390 20 6c 64 72 20 20 20 20 20 20 20 61 31 2c 20 5b | ldr a1, [| 000043a0 70 63 2c 20 23 45 6e 76 66 6c 61 67 2d 24 2d 70 |pc, #Envflag-$-p| 000043b0 63 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 63 6d |c].. cm| 000043c0 70 20 20 20 20 20 20 20 61 31 2c 20 23 31 0a 0d |p a1, #1..| 000043d0 20 20 20 20 20 20 20 20 20 20 6d 6f 76 65 71 20 | moveq | 000043e0 20 20 20 20 70 63 2c 20 6c 72 0a 0d 20 20 20 20 | pc, lr.. | 000043f0 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 | mov | 00004400 72 36 2c 20 6c 72 0a 0d 20 20 20 20 20 20 20 20 |r6, lr.. | 00004410 20 20 62 20 20 20 20 20 20 20 20 20 53 74 45 6e | b StEn| 00004420 76 0a 0d 0a 0d 20 20 20 20 20 20 20 20 20 20 2e |v.... .| 00004430 6c 6f 6e 67 20 20 20 20 20 2d 31 0a 0d 20 20 20 |long -1.. | 00004440 20 20 20 20 20 20 20 2e 61 73 63 69 63 20 20 20 | .ascic | 00004450 20 22 43 61 6c 6c 20 20 20 22 0a 0d 43 61 6c 6c | "Call "..Call| 00004460 3a 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 |: mov | 00004470 70 63 2c 20 72 62 0a 0d 52 67 62 73 3a 20 20 20 |pc, rb..Rgbs: | 00004480 20 20 62 20 20 20 20 20 20 20 20 20 44 65 70 61 | b Depa| 00004490 72 74 0a 0d 4d 70 79 3a 20 20 20 20 20 20 73 74 |rt..Mpy: st| 000044a0 6d 66 64 20 20 20 20 20 72 67 2c 20 7b 61 34 2c |mfd rg, {a4,| 000044b0 20 6c 72 7d 20 20 20 20 20 20 20 20 3b 20 6d 70 | lr} ; mp| 000044c0 79 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 |y.. mov| 000044d0 20 20 20 20 20 20 20 61 34 2c 20 23 30 0a 0d 20 | a4, #0.. | 000044e0 20 20 20 20 20 20 20 20 20 6d 6f 76 73 20 20 20 | movs | 000044f0 20 20 20 6c 72 2c 20 61 32 0a 0d 20 20 20 20 20 | lr, a2.. | 00004500 20 20 20 20 20 72 73 62 6d 69 20 20 20 20 20 6c | rsbmi l| 00004510 72 2c 20 6c 72 2c 20 23 30 0a 0d 4d 70 79 6c 70 |r, lr, #0..Mpylp| 00004520 3a 20 20 20 20 6d 6f 76 73 20 20 20 20 20 20 6c |: movs l| 00004530 72 2c 20 6c 72 2c 20 6c 73 72 20 23 31 0a 0d 20 |r, lr, lsr #1.. | 00004540 20 20 20 20 20 20 20 20 20 61 64 64 63 73 20 20 | addcs | 00004550 20 20 20 61 34 2c 20 61 34 2c 20 61 31 0a 0d 20 | a4, a4, a1.. | 00004560 20 20 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 | mov | 00004570 20 20 20 61 31 2c 20 61 31 2c 20 6c 73 6c 20 23 | a1, a1, lsl #| 00004580 31 0a 0d 20 20 20 20 20 20 20 20 20 20 62 6e 65 |1.. bne| 00004590 20 20 20 20 20 20 20 4d 70 79 6c 70 0a 0d 20 20 | Mpylp.. | 000045a0 20 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 | mov | 000045b0 20 20 61 31 2c 20 61 34 0a 0d 20 20 20 20 20 20 | a1, a4.. | 000045c0 20 20 20 20 74 65 71 73 20 20 20 20 20 20 61 32 | teqs a2| 000045d0 2c 20 23 30 0a 0d 20 20 20 20 20 20 20 20 20 20 |, #0.. | 000045e0 72 73 62 6d 69 20 20 20 20 20 61 31 2c 20 61 31 |rsbmi a1, a1| 000045f0 2c 20 23 30 0a 0d 20 20 20 20 20 20 20 20 20 20 |, #0.. | 00004600 6c 64 6d 65 61 20 20 20 20 20 72 67 2c 20 7b 61 |ldmea rg, {a| 00004610 34 2c 70 63 7d 5e 0a 0d 0a 0d 44 69 76 3a 20 20 |4,pc}^....Div: | 00004620 20 20 20 20 73 74 6d 66 64 20 20 20 20 20 72 67 | stmfd rg| 00004630 2c 20 7b 61 33 2d 72 35 2c 6c 72 7d 20 20 20 20 |, {a3-r5,lr} | 00004640 20 20 3b 20 61 31 2f 61 32 2c 20 61 31 20 72 65 | ; a1/a2, a1 re| 00004650 6d 20 61 32 0a 0d 20 20 20 20 20 20 20 20 20 20 |m a2.. | 00004660 6d 6f 76 73 20 20 20 20 20 20 6c 72 2c 20 61 31 |movs lr, a1| 00004670 0a 0d 20 20 20 20 20 20 20 20 20 20 72 73 62 6d |.. rsbm| 00004680 69 20 20 20 20 20 6c 72 2c 20 6c 72 2c 20 23 30 |i lr, lr, #0| 00004690 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 73 |.. movs| 000046a0 20 20 20 20 20 20 61 33 2c 20 61 32 0a 0d 20 20 | a3, a2.. | 000046b0 20 20 20 20 20 20 20 20 62 65 71 20 20 20 20 20 | beq | 000046c0 20 20 44 69 76 5a 65 72 6f 20 20 20 20 20 20 20 | DivZero | 000046d0 20 20 20 20 20 20 3b 20 44 69 76 69 64 65 20 62 | ; Divide b| 000046e0 79 20 7a 65 72 6f 20 66 61 75 6c 74 0a 0d 20 20 |y zero fault.. | 000046f0 20 20 20 20 20 20 20 20 72 73 62 6d 69 20 20 20 | rsbmi | 00004700 20 20 61 33 2c 20 61 33 2c 20 23 30 0a 0d 20 20 | a3, a3, #0.. | 00004710 20 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 | mov | 00004720 20 20 61 34 2c 20 23 30 0a 0d 20 20 20 20 20 20 | a4, #0.. | 00004730 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 72 35 | mov r5| 00004740 2c 20 23 31 0a 0d 44 69 76 6c 31 3a 20 20 20 20 |, #1..Divl1: | 00004750 63 6d 70 20 20 20 20 20 20 20 61 33 2c 20 23 30 |cmp a3, #0| 00004760 78 38 30 30 30 30 30 30 30 0a 0d 20 20 20 20 20 |x80000000.. | 00004770 20 20 20 20 20 63 6d 70 63 63 20 20 20 20 20 61 | cmpcc a| 00004780 33 2c 20 6c 72 0a 0d 20 20 20 20 20 20 20 20 20 |3, lr.. | 00004790 20 6d 6f 76 63 63 20 20 20 20 20 61 33 2c 20 61 | movcc a3, a| 000047a0 33 2c 20 6c 73 6c 20 23 31 0a 0d 20 20 20 20 20 |3, lsl #1.. | 000047b0 20 20 20 20 20 6d 6f 76 63 63 20 20 20 20 20 72 | movcc r| 000047c0 35 2c 20 72 35 2c 20 6c 73 6c 20 23 31 0a 0d 20 |5, r5, lsl #1.. | 000047d0 20 20 20 20 20 20 20 20 20 62 63 63 20 20 20 20 | bcc | 000047e0 20 20 20 44 69 76 6c 31 0a 0d 44 69 76 6c 32 3a | Divl1..Divl2:| 000047f0 20 20 20 20 63 6d 70 20 20 20 20 20 20 20 61 33 | cmp a3| 00004800 2c 20 6c 72 0a 0d 20 20 20 20 20 20 20 20 20 20 |, lr.. | 00004810 61 64 64 6c 73 20 20 20 20 20 61 34 2c 20 61 34 |addls a4, a4| 00004820 2c 20 72 35 0a 0d 20 20 20 20 20 20 20 20 20 20 |, r5.. | 00004830 73 75 62 6c 73 20 20 20 20 20 6c 72 2c 20 6c 72 |subls lr, lr| 00004840 2c 20 61 33 0a 0d 20 20 20 20 20 20 20 20 20 20 |, a3.. | 00004850 6d 6f 76 73 20 20 20 20 20 20 72 35 2c 20 72 35 |movs r5, r5| 00004860 2c 20 6c 73 72 20 23 31 0a 0d 20 20 20 20 20 20 |, lsr #1.. | 00004870 20 20 20 20 6d 6f 76 6e 65 20 20 20 20 20 61 33 | movne a3| 00004880 2c 20 61 33 2c 20 6c 73 72 20 23 31 0a 0d 20 20 |, a3, lsr #1.. | 00004890 20 20 20 20 20 20 20 20 62 6e 65 20 20 20 20 20 | bne | 000048a0 20 20 44 69 76 6c 32 0a 0d 20 20 20 20 20 20 20 | Divl2.. | 000048b0 20 20 20 74 65 71 73 20 20 20 20 20 20 61 31 2c | teqs a1,| 000048c0 20 61 32 0a 0d 20 20 20 20 20 20 20 20 20 20 72 | a2.. r| 000048d0 73 62 6d 69 20 20 20 20 20 61 34 2c 20 61 34 2c |sbmi a4, a4,| 000048e0 20 23 30 0a 0d 20 20 20 20 20 20 20 20 20 20 63 | #0.. c| 000048f0 6d 70 20 20 20 20 20 20 20 61 31 2c 20 23 30 0a |mp a1, #0.| 00004900 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 20 |. mov | 00004910 20 20 20 20 20 61 32 2c 20 6c 72 0a 0d 20 20 20 | a2, lr.. | 00004920 20 20 20 20 20 20 20 72 73 62 6c 74 20 20 20 20 | rsblt | 00004930 20 61 32 2c 20 61 32 2c 20 23 30 0a 0d 20 20 20 | a2, a2, #0.. | 00004940 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 | mov | 00004950 20 61 31 2c 20 61 34 0a 0d 20 20 20 20 20 20 20 | a1, a4.. | 00004960 20 20 20 6c 64 6d 65 61 20 20 20 20 20 72 67 2c | ldmea rg,| 00004970 20 7b 61 33 2d 72 35 2c 20 70 63 7d 5e 20 20 20 | {a3-r5, pc}^ | 00004980 3b 20 61 31 2c 20 61 32 20 3d 20 61 31 2f 61 32 |; a1, a2 = a1/a2| 00004990 2c 20 61 31 20 72 65 6d 20 61 32 0a 0d 0a 0d 20 |, a1 rem a2.... | 000049a0 20 20 20 20 20 20 20 20 20 6d 6f 76 6e 76 20 20 | movnv | 000049b0 20 20 20 72 30 2c 72 30 0a 0d 20 20 20 20 20 20 | r0,r0.. | 000049c0 20 20 20 20 73 74 6d 65 61 20 20 20 20 20 72 74 | stmea rt| 000049d0 73 21 2c 20 7b 72 62 2c 20 66 70 2c 20 73 70 2c |s!, {rb, fp, sp,| 000049e0 20 6c 72 7d 0a 0d 20 20 20 20 20 20 20 20 20 20 | lr}.. | 000049f0 73 75 62 20 20 20 20 20 20 20 66 70 2c 20 72 74 |sub fp, rt| 00004a00 73 2c 20 23 31 36 0a 0d 20 20 20 20 20 20 20 20 |s, #16.. | 00004a10 20 20 6c 64 72 20 20 20 20 20 20 20 72 6c 2c 20 | ldr rl, | 00004a20 5b 72 62 2c 20 23 2d 34 5d 0a 0d 20 20 20 20 20 |[rb, #-4].. | 00004a30 20 20 20 20 20 6c 64 72 20 20 20 20 20 20 20 72 | ldr r| 00004a40 30 2c 20 5b 72 62 2c 20 23 34 5d 0a 0d 20 20 20 |0, [rb, #4].. | 00004a50 20 20 20 20 20 20 20 61 64 64 20 20 20 20 20 20 | add | 00004a60 20 72 30 2c 20 72 30 2c 20 23 31 0a 0d 20 20 20 | r0, r0, #1.. | 00004a70 20 20 20 20 20 20 20 73 74 72 20 20 20 20 20 20 | str | 00004a80 20 72 30 2c 20 5b 72 62 2c 20 23 34 5d 0a 0d 20 | r0, [rb, #4].. | 00004a90 20 20 20 20 20 20 20 20 20 6c 64 72 20 20 20 20 | ldr | 00004aa0 20 20 20 70 63 2c 20 5b 72 62 2c 20 23 38 5d 20 | pc, [rb, #8] | 00004ab0 20 20 20 20 20 20 20 3b 20 3f 3f 3f 3f 3f 3f 3f | ; ???????| 00004ac0 3f 3f 3f 3f 3f 0a 0d 0a 0d 20 20 20 20 20 20 20 |?????.... | 00004ad0 20 20 20 61 64 64 20 20 20 20 20 20 20 6c 72 2c | add lr,| 00004ae0 20 6c 72 2c 20 23 34 0a 0d 20 20 20 20 20 20 20 | lr, #4.. | 00004af0 20 20 20 73 74 6d 66 64 20 20 20 20 20 72 67 2c | stmfd rg,| 00004b00 20 7b 72 30 2c 20 6c 72 7d 0a 0d 20 20 20 20 20 | {r0, lr}.. | 00004b10 20 20 20 20 20 62 69 63 20 20 20 20 20 20 20 6c | bic l| 00004b20 72 2c 20 6c 72 2c 20 23 30 78 66 63 30 30 30 30 |r, lr, #0xfc0000| 00004b30 30 30 0a 0d 20 20 20 20 20 20 20 20 20 20 6c 64 |00.. ld| 00004b40 72 20 20 20 20 20 20 20 72 30 2c 20 5b 72 35 5d |r r0, [r5]| 00004b50 0a 0d 20 20 20 20 20 20 20 20 20 20 6c 64 6d 65 |.. ldme| 00004b60 61 20 20 20 20 20 72 67 2c 20 7b 72 30 2c 20 70 |a rg, {r0, p| 00004b70 63 7d 5e 0a 0d 44 69 76 5a 65 72 6f 3a 20 20 6d |c}^..DivZero: m| 00004b80 6f 76 20 20 20 20 20 20 20 61 31 2c 20 23 31 32 |ov a1, #12| 00004b90 0a 0d 20 20 20 20 20 20 20 20 20 20 73 74 72 20 |.. str | 00004ba0 20 20 20 20 20 20 61 31 2c 20 5b 72 67 2c 20 23 | a1, [rg, #| 00004bb0 52 65 74 75 72 6e 43 6f 64 65 5d 0a 0d 20 20 20 |ReturnCode].. | 00004bc0 20 20 20 20 20 20 20 41 44 52 20 20 20 20 20 20 | ADR | 00004bd0 20 61 31 2c 20 44 69 76 7a 0a 0d 20 20 20 20 20 | a1, Divz.. | 00004be0 20 20 20 20 20 62 20 20 20 20 20 20 20 20 20 46 | b F| 00004bf0 61 75 6c 74 73 20 20 20 20 20 20 20 3b 20 69 6e |aults ; in| 00004c00 20 52 65 73 75 6d 65 43 0a 0d 44 69 76 7a 3a 20 | ResumeC..Divz: | 00004c10 20 20 20 20 2e 61 73 63 69 63 20 20 20 20 22 44 | .ascic "D| 00004c20 69 76 69 73 69 6f 6e 20 62 79 20 7a 65 72 6f 5c |ivision by zero\| 00004c30 30 22 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 61 |0".. .a| 00004c40 6c 69 67 6e 0a 0d 0a 0d 20 20 20 20 20 20 20 20 |lign.... | 00004c50 20 20 2e 6c 6f 6e 67 20 20 20 20 20 2d 31 0a 0d | .long -1..| 00004c60 20 20 20 20 20 20 20 20 20 20 2e 61 73 63 69 63 | .ascic| 00004c70 20 20 20 20 22 4d 75 6c 64 69 76 20 22 0a 0d 4d | "Muldiv "..M| 00004c80 75 6c 64 69 76 3a 20 20 20 73 74 6d 65 61 20 20 |uldiv: stmea | 00004c90 20 20 20 72 74 73 21 2c 20 7b 72 62 2c 20 72 66 | rts!, {rb, rf| 00004ca0 70 2c 20 72 6c 2c 20 6c 72 20 7d 0a 0d 20 20 20 |p, rl, lr }.. | 00004cb0 20 20 20 20 20 20 20 73 75 62 20 20 20 20 20 20 | sub | 00004cc0 20 72 66 70 2c 20 72 74 73 2c 20 23 31 36 0a 0d | rfp, rts, #16..| 00004cd0 20 20 20 20 20 20 20 20 20 20 73 74 6d 65 61 20 | stmea | 00004ce0 20 20 20 20 72 74 73 21 2c 20 7b 61 31 2c 20 61 | rts!, {a1, a| 00004cf0 32 2c 20 61 33 7d 0a 0d 20 20 20 20 20 20 20 20 |2, a3}.. | 00004d00 20 20 63 6d 70 20 20 20 20 20 20 20 61 32 2c 20 | cmp a2, | 00004d10 23 30 0a 0d 20 20 20 20 20 20 20 20 20 20 62 65 |#0.. be| 00004d20 71 20 20 20 20 20 20 20 44 69 76 7a 0a 0d 20 20 |q Divz.. | 00004d30 20 20 20 20 20 20 20 20 63 6d 70 20 20 20 20 20 | cmp | 00004d40 20 20 61 31 2c 20 23 30 0a 0d 20 20 20 20 20 20 | a1, #0.. | 00004d50 20 20 20 20 72 73 62 6c 74 20 20 20 20 20 61 31 | rsblt a1| 00004d60 2c 20 61 31 2c 20 23 30 0a 0d 20 20 20 20 20 20 |, a1, #0.. | 00004d70 20 20 20 20 63 6d 70 20 20 20 20 20 20 20 61 32 | cmp a2| 00004d80 2c 20 23 30 0a 0d 20 20 20 20 20 20 20 20 20 20 |, #0.. | 00004d90 72 73 62 6c 74 20 20 20 20 20 61 32 2c 20 61 32 |rsblt a2, a2| 00004da0 2c 20 23 30 20 20 20 20 20 20 20 20 20 20 3b 20 |, #0 ; | 00004db0 61 31 2c 20 61 32 20 3a 3d 20 6d 6f 64 20 61 31 |a1, a2 := mod a1| 00004dc0 2c 20 6d 6f 64 20 61 32 0a 0d 20 20 20 20 20 20 |, mod a2.. | 00004dd0 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 72 30 | mov r0| 00004de0 2c 20 61 31 2c 20 6c 73 72 20 23 31 36 20 20 20 |, a1, lsr #16 | 00004df0 20 20 3b 20 61 31 20 68 69 0a 0d 20 20 20 20 20 | ; a1 hi.. | 00004e00 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 61 | mov a| 00004e10 34 2c 20 61 32 2c 20 6c 73 72 20 23 31 36 20 20 |4, a2, lsr #16 | 00004e20 20 20 20 3b 20 61 32 20 68 69 0a 0d 20 20 20 20 | ; a2 hi.. | 00004e30 20 20 20 20 20 20 62 69 63 20 20 20 20 20 20 20 | bic | 00004e40 61 31 2c 20 61 31 2c 20 72 30 2c 20 6c 73 6c 20 |a1, a1, r0, lsl | 00004e50 23 31 36 20 3b 20 61 31 20 6c 6f 0a 0d 20 20 20 |#16 ; a1 lo.. | 00004e60 20 20 20 20 20 20 20 62 69 63 20 20 20 20 20 20 | bic | 00004e70 20 61 32 2c 20 61 32 2c 20 61 34 2c 20 6c 73 6c | a2, a2, a4, lsl| 00004e80 20 23 31 36 20 3b 20 61 32 20 6c 6f 0a 0d 20 20 | #16 ; a2 lo.. | 00004e90 20 20 20 20 20 20 20 20 6d 75 6c 20 20 20 20 20 | mul | 00004ea0 20 20 61 33 2c 20 61 31 2c 20 61 32 20 20 20 20 | a3, a1, a2 | 00004eb0 20 20 20 20 20 20 3b 20 62 69 74 73 20 30 2d 31 | ; bits 0-1| 00004ec0 35 2b 70 61 72 74 20 31 36 2d 33 31 0a 0d 20 20 |5+part 16-31.. | 00004ed0 20 20 20 20 20 20 20 20 6d 75 6c 20 20 20 20 20 | mul | 00004ee0 20 20 61 32 2c 20 72 30 2c 20 61 32 20 20 20 20 | a2, r0, a2 | 00004ef0 20 20 20 20 20 20 3b 20 70 61 72 74 20 62 69 74 | ; part bit| 00004f00 73 20 31 36 2d 34 37 0a 0d 20 20 20 20 20 20 20 |s 16-47.. | 00004f10 20 20 20 6d 75 6c 20 20 20 20 20 20 20 61 31 2c | mul a1,| 00004f20 20 61 34 2c 20 61 31 20 20 20 20 20 20 20 20 20 | a4, a1 | 00004f30 20 3b 20 20 22 22 20 20 20 20 20 20 20 20 22 22 | ; "" ""| 00004f40 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 75 6c 20 |.. mul | 00004f50 20 20 20 20 20 20 61 34 2c 20 72 30 2c 20 61 34 | a4, r0, a4| 00004f60 20 20 20 20 20 20 20 20 20 20 3b 20 70 61 72 74 | ; part| 00004f70 20 62 69 74 73 20 33 32 2d 34 37 20 2b 20 62 69 | bits 32-47 + bi| 00004f80 74 73 20 34 38 2d 36 33 0a 0d 20 20 20 20 20 20 |ts 48-63.. | 00004f90 20 20 20 20 61 64 64 73 20 20 20 20 20 20 61 31 | adds a1| 00004fa0 2c 20 61 32 2c 20 61 31 0a 0d 20 20 20 20 20 20 |, a2, a1.. | 00004fb0 20 20 20 20 61 64 64 63 73 20 20 20 20 20 61 34 | addcs a4| 00004fc0 2c 20 61 34 2c 20 23 30 78 31 30 30 30 30 20 20 |, a4, #0x10000 | 00004fd0 20 20 20 3b 20 63 61 72 72 79 20 66 72 6f 6d 20 | ; carry from | 00004fe0 6d 69 64 64 6c 65 0a 0d 20 20 20 20 20 20 20 20 |middle.. | 00004ff0 20 20 61 64 64 73 20 20 20 20 20 20 61 33 2c 20 | adds a3, | 00005000 61 33 2c 20 61 31 2c 20 6c 73 6c 20 23 31 36 0a |a3, a1, lsl #16.| 00005010 0d 20 20 20 20 20 20 20 20 20 20 61 64 63 20 20 |. adc | 00005020 20 20 20 20 20 61 34 2c 20 61 34 2c 20 61 31 2c | a4, a4, a1,| 00005030 20 6c 73 72 20 23 31 36 20 3b 20 72 65 73 75 6c | lsr #16 ; resul| 00005040 74 20 69 6e 20 61 33 28 6c 6f 29 2d 61 34 28 68 |t in a3(lo)-a4(h| 00005050 69 29 0a 0d 0a 0d 20 20 20 20 20 20 20 20 20 20 |i).... | 00005060 6c 64 6d 65 61 20 20 20 20 20 72 74 73 2c 20 7b |ldmea rts, {| 00005070 72 35 7d 20 20 20 20 20 20 20 20 20 20 20 3b 20 |r5} ; | 00005080 64 69 76 69 73 6f 72 0a 0d 20 20 20 20 20 20 20 |divisor.. | 00005090 20 20 20 6d 6f 76 20 20 20 20 20 20 20 61 31 2c | mov a1,| 000050a0 20 23 30 20 20 20 20 20 20 20 20 20 20 20 20 20 | #0 | 000050b0 20 3b 20 64 69 76 69 64 65 6e 64 0a 0d 20 20 20 | ; dividend.. | 000050c0 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 | mov | 000050d0 20 61 32 2c 20 23 30 20 20 20 20 20 20 20 20 20 | a2, #0 | 000050e0 20 20 20 20 20 3b 20 72 65 6d 61 69 6e 64 65 72 | ; remainder| 000050f0 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 |.. mov | 00005100 20 20 20 20 20 20 72 30 2c 20 23 36 34 20 20 20 | r0, #64 | 00005110 20 20 20 20 20 20 20 20 20 20 3b 20 63 6f 75 6e | ; coun| 00005120 74 0a 0d 64 69 76 6c 70 31 3a 20 20 20 73 75 62 |t..divlp1: sub| 00005130 73 20 20 20 20 20 20 72 30 2c 20 72 30 2c 20 23 |s r0, r0, #| 00005140 31 0a 0d 20 20 20 20 20 20 20 20 20 20 62 65 71 |1.. beq| 00005150 20 20 20 20 20 20 20 44 69 76 44 6f 6e 65 0a 0d | DivDone..| 00005160 20 20 20 20 20 20 20 20 20 20 61 64 64 73 20 20 | adds | 00005170 20 20 20 20 61 33 2c 20 61 33 2c 20 61 33 0a 0d | a3, a3, a3..| 00005180 20 20 20 20 20 20 20 20 20 20 61 64 63 73 20 20 | adcs | 00005190 20 20 20 20 61 34 2c 20 61 34 2c 20 61 34 0a 0d | a4, a4, a4..| 000051a0 20 20 20 20 20 20 20 20 20 20 62 70 6c 20 20 20 | bpl | 000051b0 20 20 20 20 64 69 76 6c 70 31 20 20 20 20 20 20 | divlp1 | 000051c0 20 20 20 20 20 20 20 20 3b 20 61 34 20 62 69 74 | ; a4 bit| 000051d0 20 33 31 20 6e 6f 77 20 73 65 74 0a 0d 64 69 76 | 31 now set..div| 000051e0 6c 70 32 3a 20 20 20 61 64 64 73 20 20 20 20 20 |lp2: adds | 000051f0 20 61 33 2c 20 61 33 2c 20 61 33 0a 0d 20 20 20 | a3, a3, a3.. | 00005200 20 20 20 20 20 20 20 61 64 63 73 20 20 20 20 20 | adcs | 00005210 20 61 34 2c 20 61 34 2c 20 61 34 0a 0d 20 20 20 | a4, a4, a4.. | 00005220 20 20 20 20 20 20 20 61 64 63 20 20 20 20 20 20 | adc | 00005230 20 61 32 2c 20 61 32 2c 20 61 32 20 20 20 20 20 | a2, a2, a2 | 00005240 20 20 20 20 20 3b 20 72 65 6d 20 3a 3d 20 52 65 | ; rem := Re| 00005250 6d 2a 32 2b 43 61 72 72 79 0a 0d 20 20 20 20 20 |m*2+Carry.. | 00005260 20 20 20 20 20 63 6d 70 20 20 20 20 20 20 20 61 | cmp a| 00005270 32 2c 20 72 35 0a 0d 20 20 20 20 20 20 20 20 20 |2, r5.. | 00005280 20 73 75 62 63 73 20 20 20 20 20 61 32 2c 20 61 | subcs a2, a| 00005290 32 2c 20 72 35 20 20 20 20 20 20 20 20 20 20 3b |2, r5 ;| 000052a0 20 72 65 6d 20 2d 3a 3d 20 64 69 76 69 73 6f 72 | rem -:= divisor| 000052b0 0a 0d 20 20 20 20 20 20 20 20 20 20 61 64 63 73 |.. adcs| 000052c0 20 20 20 20 20 20 20 61 31 2c 20 61 31 2c 20 61 | a1, a1, a| 000052d0 31 20 20 20 20 20 20 20 20 20 3b 20 64 69 76 20 |1 ; div | 000052e0 3a 3d 20 64 69 76 2a 32 2b 43 61 72 72 79 0a 0d |:= div*2+Carry..| 000052f0 20 20 20 20 20 20 20 20 20 20 62 63 73 20 20 20 | bcs | 00005300 20 20 20 20 54 6f 6f 62 69 67 0a 0d 64 69 76 73 | Toobig..divs| 00005310 6d 3a 20 20 20 20 73 75 62 73 20 20 20 20 20 20 |m: subs | 00005320 72 30 2c 20 72 30 2c 20 23 31 0a 0d 20 20 20 20 |r0, r0, #1.. | 00005330 20 20 20 20 20 20 62 6e 65 20 20 20 20 20 20 20 | bne | 00005340 64 69 76 6c 70 32 0a 0d 0a 0d 44 69 76 44 6f 6e |divlp2....DivDon| 00005350 65 3a 20 20 73 74 72 20 20 20 20 20 20 20 61 32 |e: str a2| 00005360 2c 20 5b 72 67 2c 20 23 52 65 73 75 6c 74 32 5d |, [rg, #Result2]| 00005370 0a 0d 20 20 20 20 20 20 20 20 20 20 6c 64 6d 65 |.. ldme| 00005380 61 20 20 20 20 20 72 74 73 21 2c 20 7b 61 33 2d |a rts!, {a3-| 00005390 72 35 7d 0a 0d 20 20 20 20 20 20 20 20 20 20 65 |r5}.. e| 000053a0 6f 72 73 20 20 20 20 20 20 61 33 2c 20 61 33 2c |ors a3, a3,| 000053b0 20 61 34 0a 0d 20 20 20 20 20 20 20 20 20 20 72 | a4.. r| 000053c0 73 62 6c 74 20 20 20 20 20 61 31 2c 20 61 31 2c |sblt a1, a1,| 000053d0 20 23 30 0a 0d 20 20 20 20 20 20 20 20 20 20 65 | #0.. e| 000053e0 6f 72 73 20 20 20 20 20 20 61 33 2c 20 61 34 2c |ors a3, a4,| 000053f0 20 72 35 0a 0d 3b 20 20 20 20 20 20 20 20 20 20 | r5..; | 00005400 72 73 62 6c 74 20 20 20 20 20 61 32 2c 20 61 32 |rsblt a2, a2| 00005410 2c 20 23 30 0a 0d 20 20 20 20 20 20 20 20 20 20 |, #0.. | 00005420 6c 64 6d 65 61 20 20 20 20 20 72 74 73 21 2c 20 |ldmea rts!, | 00005430 7b 72 62 2c 20 72 66 70 2c 20 72 6c 2c 20 70 63 |{rb, rfp, rl, pc| 00005440 7d 5e 0a 0d 54 6f 6f 62 69 67 3a 20 20 20 6d 6f |}^..Toobig: mo| 00005450 76 20 20 20 20 20 20 20 61 31 2c 20 23 31 35 0a |v a1, #15.| 00005460 0d 20 20 20 20 20 20 20 20 20 20 73 74 72 20 20 |. str | 00005470 20 20 20 20 20 61 31 2c 20 5b 72 67 2c 20 23 52 | a1, [rg, #R| 00005480 65 74 75 72 6e 43 6f 64 65 5d 0a 0d 20 20 20 20 |eturnCode].. | 00005490 20 20 20 20 20 20 41 44 52 20 20 20 20 20 20 20 | ADR | 000054a0 61 31 2c 20 6f 66 6c 6f 0a 0d 20 20 20 20 20 20 |a1, oflo.. | 000054b0 20 20 20 20 62 20 20 20 20 20 20 20 20 20 46 61 | b Fa| 000054c0 75 6c 74 73 0a 0d 6f 66 6c 6f 3a 20 20 20 20 20 |ults..oflo: | 000054d0 2e 61 73 63 69 63 20 20 20 20 22 4d 75 6c 64 69 |.ascic "Muldi| 000054e0 76 20 72 65 73 75 6c 74 20 6f 66 6c 6f 5c 30 22 |v result oflo\0"| 000054f0 0a 0d 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 61 |.... .a| 00005500 6c 69 67 6e 0a 0d 20 20 20 20 20 20 20 20 20 20 |lign.. | 00005510 2e 6c 6f 6e 67 20 20 20 20 20 2d 31 0a 0d 20 20 |.long -1.. | 00005520 20 20 20 20 20 20 20 20 2e 61 73 63 69 63 20 20 | .ascic | 00005530 20 20 22 4f 53 42 79 74 65 20 22 0a 0d 4f 53 42 | "OSByte "..OSB| 00005540 79 74 65 3a 20 20 20 6d 6f 76 20 20 20 20 20 20 |yte: mov | 00005550 20 72 30 2c 20 61 31 0a 0d 20 20 20 20 20 20 20 | r0, a1.. | 00005560 20 20 20 6d 6f 76 20 20 20 20 20 20 20 61 31 2c | mov a1,| 00005570 20 61 32 0a 0d 20 20 20 20 20 20 20 20 20 20 6d | a2.. m| 00005580 6f 76 20 20 20 20 20 20 20 61 32 2c 20 61 33 0a |ov a2, a3.| 00005590 0d 20 20 20 20 20 20 20 20 20 20 73 77 69 20 20 |. swi | 000055a0 20 20 20 20 20 4f 53 5f 42 79 74 65 0a 0d 20 20 | OS_Byte.. | 000055b0 20 20 20 20 20 20 20 20 73 74 72 20 20 20 20 20 | str | 000055c0 20 20 61 32 2c 20 5b 72 67 2c 20 23 52 65 73 75 | a2, [rg, #Resu| 000055d0 6c 74 32 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 |lt2].. | 000055e0 6d 6f 76 73 20 20 20 20 20 20 70 63 2c 20 6c 72 |movs pc, lr| 000055f0 0a 0d 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c |.... .l| 00005600 6f 6e 67 20 20 20 20 20 2d 31 0a 0d 20 20 20 20 |ong -1.. | 00005610 20 20 20 20 20 20 2e 61 73 63 69 63 20 20 20 20 | .ascic | 00005620 22 4f 53 57 6f 72 64 20 22 0a 0d 4f 53 57 6f 72 |"OSWord "..OSWor| 00005630 64 3a 20 20 20 61 6e 64 20 20 20 20 20 20 20 72 |d: and r| 00005640 30 2c 20 61 31 2c 20 23 30 78 66 66 0a 0d 20 20 |0, a1, #0xff.. | 00005650 20 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 | mov | 00005660 20 20 61 31 2c 20 61 32 2c 20 6c 73 6c 20 23 32 | a1, a2, lsl #2| 00005670 0a 0d 20 20 20 20 20 20 20 20 20 20 73 77 69 20 |.. swi | 00005680 20 20 20 20 20 20 4f 53 5f 57 6f 72 64 0a 0d 20 | OS_Word.. | 00005690 20 20 20 20 20 20 20 20 20 6d 6f 76 73 20 20 20 | movs | 000056a0 20 20 20 70 63 2c 20 6c 72 20 20 20 20 20 20 20 | pc, lr | 000056b0 20 20 20 20 20 20 20 3b 20 6e 62 20 69 66 20 70 | ; nb if p| 000056c0 30 20 3d 20 30 20 4f 53 5f 52 65 61 64 6c 69 6e |0 = 0 OS_Readlin| 000056d0 65 20 49 53 4e 54 20 43 61 6c 6c 65 64 2e 0a 0d |e ISNT Called...| 000056e0 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e |.. .lon| 000056f0 67 20 20 20 20 20 2d 31 0a 0d 20 20 20 20 20 20 |g -1.. | 00005700 20 20 20 20 2e 61 73 63 69 63 20 20 20 20 22 4f | .ascic "O| 00005710 53 41 72 67 73 20 22 0a 0d 4f 53 41 72 67 73 3a |SArgs "..OSArgs:| 00005720 20 20 20 6d 6f 76 20 20 20 20 20 20 20 72 30 2c | mov r0,| 00005730 20 61 31 0a 0d 20 20 20 20 20 20 20 20 20 20 6d | a1.. m| 00005740 6f 76 20 20 20 20 20 20 20 61 31 2c 20 61 32 0a |ov a1, a2.| 00005750 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 20 |. mov | 00005760 20 20 20 20 20 61 32 2c 20 61 33 0a 0d 20 20 20 | a2, a3.. | 00005770 20 20 20 20 20 20 20 73 77 69 20 20 20 20 20 20 | swi | 00005780 20 4f 53 5f 41 72 67 73 0a 0d 20 20 20 20 20 20 | OS_Args.. | 00005790 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 61 31 | mov a1| 000057a0 2c 20 61 32 0a 0d 20 20 20 20 20 20 20 20 20 20 |, a2.. | 000057b0 73 74 72 20 20 20 20 20 20 20 72 30 2c 20 5b 72 |str r0, [r| 000057c0 67 2c 20 23 52 65 73 75 6c 74 32 5d 0a 0d 20 20 |g, #Result2].. | 000057d0 20 20 20 20 20 20 20 20 6d 6f 76 73 20 20 20 20 | movs | 000057e0 20 20 70 63 2c 20 6c 72 0a 0d 0a 0d 20 20 20 20 | pc, lr.... | 000057f0 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 | .long | 00005800 2d 31 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 61 |-1.. .a| 00005810 73 63 69 63 20 20 20 20 22 4f 53 46 69 6c 65 20 |scic "OSFile | 00005820 22 0a 0d 4f 53 46 69 6c 65 3a 20 20 20 73 74 6d |"..OSFile: stm| 00005830 65 61 20 20 20 20 20 72 74 73 21 2c 20 7b 6e 69 |ea rts!, {ni| 00005840 6c 7d 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f |l}.. mo| 00005850 76 20 20 20 20 20 20 20 72 30 2c 20 61 31 0a 0d |v r0, a1..| 00005860 20 20 20 20 20 20 20 20 20 20 63 6d 70 20 20 20 | cmp | 00005870 20 20 20 20 61 32 2c 20 23 30 0a 0d 20 20 20 20 | a2, #0.. | 00005880 20 20 20 20 20 20 6d 6f 76 6c 74 20 20 20 20 20 | movlt | 00005890 6e 69 6c 2c 20 23 30 0a 0d 20 20 20 20 20 20 20 |nil, #0.. | 000058a0 20 20 20 6d 6f 76 6c 74 20 20 20 20 20 61 31 2c | movlt a1,| 000058b0 20 23 30 0a 0d 20 20 20 20 20 20 20 20 20 20 73 | #0.. s| 000058c0 75 62 6c 74 20 20 20 20 20 61 31 2c 20 61 31 2c |ublt a1, a1,| 000058d0 20 61 32 0a 0d 20 20 20 20 20 20 20 20 20 20 6d | a2.. m| 000058e0 76 6e 67 65 20 20 20 20 20 6e 69 6c 2c 20 23 30 |vnge nil, #0| 000058f0 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 67 |.. movg| 00005900 65 20 20 20 20 20 61 31 2c 20 61 32 2c 20 6c 73 |e a1, a2, ls| 00005910 6c 20 23 32 0a 0d 20 20 20 20 20 20 20 20 20 20 |l #2.. | 00005920 6c 64 72 67 65 62 20 20 20 20 61 32 2c 20 5b 61 |ldrgeb a2, [a| 00005930 31 5d 2c 20 23 31 20 20 20 20 20 20 20 20 3b 20 |1], #1 ; | 00005940 73 74 72 69 6e 67 20 62 79 74 65 20 62 61 73 65 |string byte base| 00005950 2c 20 6c 65 6e 67 74 68 0a 0d 20 20 20 20 20 20 |, length.. | 00005960 20 20 20 20 61 64 64 67 65 20 20 20 20 20 61 34 | addge a4| 00005970 2c 20 61 32 2c 20 61 31 20 20 20 20 20 20 20 20 |, a2, a1 | 00005980 20 20 3b 20 73 74 72 69 6e 67 20 62 79 74 65 20 | ; string byte | 00005990 74 65 72 6d 69 6e 61 74 6f 72 20 70 6f 73 69 74 |terminator posit| 000059a0 69 6f 6e 0a 0d 20 20 20 20 20 20 20 20 20 20 6c |ion.. l| 000059b0 64 72 67 65 62 20 20 20 20 72 35 2c 20 5b 61 34 |drgeb r5, [a4| 000059c0 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 |].. mov| 000059d0 67 65 20 20 20 20 20 72 62 2c 20 23 30 0a 0d 20 |ge rb, #0.. | 000059e0 20 20 20 20 20 20 20 20 20 73 74 72 67 65 62 20 | strgeb | 000059f0 20 20 20 72 62 2c 20 5b 61 34 5d 0a 0d 20 20 20 | rb, [a4].. | 00005a00 20 20 20 20 20 20 20 73 74 6d 65 61 20 20 20 20 | stmea | 00005a10 20 72 74 73 21 2c 20 7b 61 34 2c 20 72 35 7d 0a | rts!, {a4, r5}.| 00005a20 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 20 |. mov | 00005a30 20 20 20 20 20 72 62 2c 20 61 33 2c 20 6c 73 6c | rb, a3, lsl| 00005a40 20 23 32 0a 0d 20 20 20 20 20 20 20 20 20 20 6c | #2.. l| 00005a50 64 72 20 20 20 20 20 20 20 61 32 2c 20 5b 61 31 |dr a2, [a1| 00005a60 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 63 6d 70 |].. cmp| 00005a70 20 20 20 20 20 20 20 61 32 2c 20 23 30 0a 0d 20 | a2, #0.. | 00005a80 20 20 20 20 20 20 20 20 20 61 64 64 65 71 20 20 | addeq | 00005a90 20 20 20 61 31 2c 20 61 31 2c 20 23 31 0a 0d 20 | a1, a1, #1.. | 00005aa0 20 20 20 20 20 20 20 20 20 6c 64 6d 69 61 20 20 | ldmia | 00005ab0 20 20 20 72 62 2c 20 7b 61 32 2d 72 35 7d 0a 0d | rb, {a2-r5}..| 00005ac0 20 20 20 20 20 20 20 20 20 20 73 77 69 20 20 20 | swi | 00005ad0 20 20 20 20 4f 53 5f 46 69 6c 65 20 2b 20 58 4f | OS_File + XO| 00005ae0 53 0a 0d 20 20 20 20 20 20 20 20 20 20 73 74 6d |S.. stm| 00005af0 69 61 20 20 20 20 20 72 62 2c 20 7b 61 32 2d 72 |ia rb, {a2-r| 00005b00 35 7d 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f |5}.. mo| 00005b10 76 20 20 20 20 20 20 20 61 32 2c 20 23 30 0a 0d |v a2, #0..| 00005b20 20 20 20 20 20 20 20 20 20 20 6d 76 6e 76 73 20 | mvnvs | 00005b30 20 20 20 20 61 32 2c 20 23 30 0a 0d 20 20 20 20 | a2, #0.. | 00005b40 20 20 20 20 20 20 73 74 72 20 20 20 20 20 20 20 | str | 00005b50 61 32 2c 20 5b 72 67 2c 20 23 52 65 73 75 6c 74 |a2, [rg, #Result| 00005b60 32 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f |2].. mo| 00005b70 76 20 20 20 20 20 20 20 61 31 2c 20 72 30 0a 0d |v a1, r0..| 00005b80 20 20 20 20 20 20 20 20 20 20 6c 64 6d 65 61 20 | ldmea | 00005b90 20 20 20 20 72 74 73 21 2c 20 7b 61 34 2c 20 72 | rts!, {a4, r| 00005ba0 35 7d 0a 0d 20 20 20 20 20 20 20 20 20 20 63 6d |5}.. cm| 00005bb0 70 20 20 20 20 20 20 20 6e 69 6c 2c 20 23 30 0a |p nil, #0.| 00005bc0 0d 20 20 20 20 20 20 20 20 20 20 73 74 72 6e 65 |. strne| 00005bd0 62 20 20 20 20 72 35 2c 20 5b 61 34 5d 20 20 20 |b r5, [a4] | 00005be0 20 20 20 20 20 20 20 20 20 3b 20 72 65 73 74 6f | ; resto| 00005bf0 72 65 0a 0d 20 20 20 20 20 20 20 20 20 20 6c 64 |re.. ld| 00005c00 6d 65 61 20 20 20 20 20 72 74 73 21 2c 20 7b 6e |mea rts!, {n| 00005c10 69 6c 7d 0a 0d 20 20 20 20 20 20 20 20 20 20 6d |il}.. m| 00005c20 6f 76 73 20 20 20 20 20 20 70 63 2c 20 6c 72 0a |ovs pc, lr.| 00005c30 0d 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f |... .lo| 00005c40 6e 67 20 20 20 20 20 2d 31 0a 0d 20 20 20 20 20 |ng -1.. | 00005c50 20 20 20 20 20 2e 61 73 63 69 63 20 20 20 20 22 | .ascic "| 00005c60 4f 53 57 72 43 68 20 22 0a 0d 4f 53 57 72 43 68 |OSWrCh "..OSWrCh| 00005c70 3a 20 20 20 6d 6f 76 20 20 20 20 20 20 20 72 30 |: mov r0| 00005c80 2c 20 61 31 0a 0d 20 20 20 20 20 20 20 20 20 20 |, a1.. | 00005c90 73 77 69 20 20 20 20 20 20 20 4f 53 5f 57 72 69 |swi OS_Wri| 00005ca0 74 65 43 0a 0d 20 20 20 20 20 20 20 20 20 20 6d |teC.. m| 00005cb0 6f 76 73 20 20 20 20 20 20 70 63 2c 20 6c 72 0a |ovs pc, lr.| 00005cc0 0d 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f |... .lo| 00005cd0 6e 67 20 20 20 20 20 2d 31 0a 0d 20 20 20 20 20 |ng -1.. | 00005ce0 20 20 20 20 20 2e 61 73 63 69 63 20 20 20 20 22 | .ascic "| 00005cf0 4f 53 52 64 43 68 20 22 0a 0d 4f 53 52 64 43 68 |OSRdCh "..OSRdCh| 00005d00 3a 20 20 20 73 77 69 20 20 20 20 20 20 20 4f 53 |: swi OS| 00005d10 5f 52 65 61 64 43 0a 0d 20 20 20 20 20 20 20 20 |_ReadC.. | 00005d20 20 20 6d 6f 76 20 20 20 20 20 20 20 61 31 2c 20 | mov a1, | 00005d30 72 30 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f |r0.. mo| 00005d40 76 20 20 20 20 20 20 20 72 30 2c 20 23 30 0a 0d |v r0, #0..| 00005d50 20 20 20 20 20 20 20 20 20 20 6d 76 6e 63 73 20 | mvncs | 00005d60 20 20 20 20 72 30 2c 20 23 30 0a 0d 20 20 20 20 | r0, #0.. | 00005d70 20 20 20 20 20 20 73 74 72 20 20 20 20 20 20 20 | str | 00005d80 72 30 2c 20 5b 72 67 2c 20 23 52 65 73 75 6c 74 |r0, [rg, #Result| 00005d90 32 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f |2].. mo| 00005da0 76 73 20 20 20 20 20 20 70 63 2c 20 6c 72 0a 0d |vs pc, lr..| 00005db0 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e |.. .lon| 00005dc0 67 20 20 20 20 20 2d 31 0a 0d 20 20 20 20 20 20 |g -1.. | 00005dd0 20 20 20 20 2e 61 73 63 69 63 20 20 20 20 22 4f | .ascic "O| 00005de0 53 42 50 75 74 20 22 0a 0d 4f 53 42 50 75 74 3a |SBPut "..OSBPut:| 00005df0 20 20 20 6d 6f 76 20 20 20 20 20 20 20 72 30 2c | mov r0,| 00005e00 20 61 31 0a 0d 20 20 20 20 20 20 20 20 20 20 6d | a1.. m| 00005e10 6f 76 20 20 20 20 20 20 20 61 31 2c 20 61 32 0a |ov a1, a2.| 00005e20 0d 20 20 20 20 20 20 20 20 20 20 73 77 69 20 20 |. swi | 00005e30 20 20 20 20 20 4f 53 5f 42 50 75 74 0a 0d 20 20 | OS_BPut.. | 00005e40 20 20 20 20 20 20 20 20 6d 6f 76 73 20 20 20 20 | movs | 00005e50 20 20 70 63 2c 20 6c 72 0a 0d 0a 0d 20 20 20 20 | pc, lr.... | 00005e60 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 | .long | 00005e70 2d 31 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 61 |-1.. .a| 00005e80 73 63 69 63 20 20 20 20 22 4f 53 42 47 65 74 20 |scic "OSBGet | 00005e90 22 0a 0d 4f 53 42 47 65 74 3a 20 20 20 73 77 69 |"..OSBGet: swi| 00005ea0 20 20 20 20 20 20 20 4f 53 5f 42 47 65 74 2b 58 | OS_BGet+X| 00005eb0 4f 53 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f |OS.. mo| 00005ec0 76 20 20 20 20 20 20 20 61 31 2c 20 72 30 0a 0d |v a1, r0..| 00005ed0 20 20 20 20 20 20 20 20 20 20 6d 6f 76 63 73 20 | movcs | 00005ee0 20 20 20 20 61 31 2c 20 23 30 78 66 66 0a 0d 20 | a1, #0xff.. | 00005ef0 20 20 20 20 20 20 20 20 20 6d 6f 76 63 73 20 20 | movcs | 00005f00 20 20 20 61 31 2c 20 61 31 2c 20 6c 73 6c 20 23 | a1, a1, lsl #| 00005f10 31 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 |1.. mov| 00005f20 73 20 20 20 20 20 20 70 63 2c 20 6c 72 0a 0d 0a |s pc, lr...| 00005f30 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 |. .long| 00005f40 20 20 20 20 20 2d 31 0a 0d 20 20 20 20 20 20 20 | -1.. | 00005f50 20 20 20 2e 61 73 63 69 63 20 20 20 20 22 4c 65 | .ascic "Le| 00005f60 76 65 6c 20 20 22 0a 0d 4c 65 76 65 6c 3a 20 20 |vel "..Level: | 00005f70 20 20 6d 6f 76 20 20 20 20 20 20 20 61 31 2c 20 | mov a1, | 00005f80 72 66 70 0a 0d 20 20 20 20 20 20 20 20 20 20 6d |rfp.. m| 00005f90 6f 76 73 20 20 20 20 20 20 70 63 2c 20 6c 72 0a |ovs pc, lr.| 00005fa0 0d 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f |... .lo| 00005fb0 6e 67 20 20 20 20 20 2d 31 0a 0d 20 20 20 20 20 |ng -1.. | 00005fc0 20 20 20 20 20 2e 61 73 63 69 63 20 20 20 20 22 | .ascic "| 00005fd0 4c 6f 6e 67 4a 75 6d 22 0a 0d 4c 6f 6e 67 4a 75 |LongJum"..LongJu| 00005fe0 6d 70 3a 20 63 6d 70 20 20 20 20 20 20 20 72 66 |mp: cmp rf| 00005ff0 70 2c 20 61 31 0a 0d 20 20 20 20 20 20 20 20 20 |p, a1.. | 00006000 20 6d 6f 76 65 71 20 20 20 20 20 70 63 2c 20 61 | moveq pc, a| 00006010 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b |2 ;| 00006020 20 53 61 6d 65 20 6c 65 76 65 6c 0a 0d 20 20 20 | Same level.. | 00006030 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 | mov | 00006040 20 61 34 2c 20 72 66 70 0a 0d 4c 4a 31 3a 20 20 | a4, rfp..LJ1: | 00006050 20 20 20 20 6c 64 72 20 20 20 20 20 20 20 72 35 | ldr r5| 00006060 2c 20 5b 61 34 2c 20 23 34 5d 20 20 20 20 20 20 |, [a4, #4] | 00006070 20 20 3b 20 72 66 70 20 65 6e 63 6c 6f 73 69 6e | ; rfp enclosin| 00006080 67 20 66 72 61 6d 65 20 72 66 70 21 31 0a 0d 20 |g frame rfp!1.. | 00006090 20 20 20 20 20 20 20 20 20 63 6d 70 20 20 20 20 | cmp | 000060a0 20 20 20 72 35 2c 20 61 34 0a 0d 20 20 20 20 20 | r5, a4.. | 000060b0 20 20 20 20 20 62 65 71 20 20 20 20 20 20 20 4c | beq L| 000060c0 4a 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |J2 | 000060d0 20 20 20 3b 20 62 61 73 65 20 6f 66 20 73 74 61 | ; base of sta| 000060e0 63 6b 3f 0a 0d 20 20 20 20 20 20 20 20 20 20 63 |ck?.. c| 000060f0 6d 70 20 20 20 20 20 20 20 72 35 2c 20 61 31 20 |mp r5, a1 | 00006100 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 65 | ; e| 00006110 6e 63 6c 6f 73 69 6e 67 20 66 72 61 6d 65 20 63 |nclosing frame c| 00006120 6f 72 72 65 63 74 3f 0a 0d 20 20 20 20 20 20 20 |orrect?.. | 00006130 20 20 20 6d 6f 76 6e 65 20 20 20 20 20 61 34 2c | movne a4,| 00006140 20 72 35 0a 0d 20 20 20 20 20 20 20 20 20 20 62 | r5.. b| 00006150 6e 65 20 20 20 20 20 20 20 4c 4a 31 0a 0d 20 20 |ne LJ1.. | 00006160 20 20 20 20 20 20 20 20 6c 64 72 20 20 20 20 20 | ldr | 00006170 20 20 72 6c 2c 20 5b 61 34 2c 20 23 38 5d 20 20 | rl, [a4, #8] | 00006180 20 20 20 20 20 20 3b 20 72 6c 20 6f 66 20 66 6f | ; rl of fo| 00006190 75 6e 64 20 66 72 61 6d 65 20 20 72 66 70 21 32 |und frame rfp!2| 000061a0 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 |.. mov | 000061b0 20 20 20 20 20 20 72 74 73 2c 20 61 34 0a 0d 20 | rts, a4.. | 000061c0 20 20 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 | mov | 000061d0 20 20 20 72 66 70 2c 20 61 31 0a 0d 20 20 20 20 | rfp, a1.. | 000061e0 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 | mov | 000061f0 70 63 2c 20 61 32 20 20 20 20 20 20 20 20 20 20 |pc, a2 | 00006200 20 20 20 20 3b 20 73 75 63 63 65 73 73 66 75 6c | ; successful| 00006210 0a 0d 4c 4a 32 3a 20 20 20 20 20 20 6d 6f 76 20 |..LJ2: mov | 00006220 20 20 20 20 20 20 61 33 2c 20 61 31 0a 0d 20 20 | a3, a1.. | 00006230 20 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 | mov | 00006240 20 20 61 31 2c 20 23 31 34 0a 0d 20 20 20 20 20 | a1, #14.. | 00006250 20 20 20 20 20 73 74 72 20 20 20 20 20 20 20 61 | str a| 00006260 31 2c 20 5b 72 67 2c 20 23 52 65 74 75 72 6e 43 |1, [rg, #ReturnC| 00006270 6f 64 65 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 |ode].. | 00006280 73 74 72 20 20 20 20 20 20 20 72 32 2c 20 5b 20 |str r2, [ | 00006290 72 67 2c 20 23 52 65 73 75 6c 74 32 20 5d 0a 0d |rg, #Result2 ]..| 000062a0 20 20 20 20 20 20 20 20 20 20 41 44 52 20 20 20 | ADR | 000062b0 20 20 20 20 61 31 2c 20 4c 4a 52 65 70 0a 0d 20 | a1, LJRep.. | 000062c0 20 20 20 20 20 20 20 20 20 62 20 20 20 20 20 20 | b | 000062d0 20 20 20 46 61 75 6c 74 73 0a 0d 4c 4a 52 65 70 | Faults..LJRep| 000062e0 3a 20 20 20 20 2e 61 73 63 69 63 20 20 20 20 22 |: .ascic "| 000062f0 44 65 73 74 69 6e 61 74 69 6f 6e 20 66 72 61 6d |Destination fram| 00006300 65 20 25 6e 20 66 6f 72 20 4c 6f 6e 67 4a 75 6d |e %n for LongJum| 00006310 70 20 69 6e 20 74 68 65 20 73 74 61 63 6b 5c 30 |p in the stack\0| 00006320 22 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 61 6c |".. .al| 00006330 69 67 6e 0a 0d 0a 0d 20 20 20 20 20 20 20 20 20 |ign.... | 00006340 20 2e 6c 6f 6e 67 20 20 20 20 20 2d 31 0a 0d 20 | .long -1.. | 00006350 20 20 20 20 20 20 20 20 20 2e 61 73 63 69 63 20 | .ascic | 00006360 20 20 20 22 47 42 79 74 65 73 20 22 0a 0d 47 42 | "GBytes "..GB| 00006370 79 74 65 73 3a 20 20 20 6d 6f 76 20 20 20 20 20 |ytes: mov | 00006380 20 20 72 30 2c 20 61 31 0a 0d 20 20 20 20 20 20 | r0, a1.. | 00006390 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 61 31 | mov a1| 000063a0 2c 20 23 30 20 20 20 20 20 20 20 20 20 20 20 20 |, #0 | 000063b0 20 20 3b 20 72 65 74 75 72 6e 73 20 6c 61 73 74 | ; returns last| 000063c0 20 34 20 62 79 74 65 73 20 28 20 6d 61 78 20 61 | 4 bytes ( max a| 000063d0 32 20 29 0a 0d 47 42 6c 6f 6f 70 3a 20 20 20 6c |2 )..GBloop: l| 000063e0 64 72 62 20 20 20 20 20 20 61 33 2c 20 5b 72 30 |drb a3, [r0| 000063f0 5d 2c 20 23 31 20 20 20 20 20 20 20 20 3b 20 66 |], #1 ; f| 00006400 72 6f 6d 20 61 31 20 28 6e 6f 74 20 77 72 64 20 |rom a1 (not wrd | 00006410 61 6c 69 67 6e 65 64 29 20 69 6e 20 6f 6e 65 20 |aligned) in one | 00006420 77 6f 72 64 0a 0d 20 20 20 20 20 20 20 20 20 20 |word.. | 00006430 61 64 64 20 20 20 20 20 20 20 61 31 2c 20 61 33 |add a1, a3| 00006440 2c 20 61 31 2c 20 6c 73 6c 20 23 38 20 20 3b 20 |, a1, lsl #8 ; | 00006450 42 79 74 65 77 6f 72 64 20 3a 3d 20 47 42 79 74 |Byteword := GByt| 00006460 65 73 28 20 42 79 74 65 61 64 64 72 2c 20 4e 75 |es( Byteaddr, Nu| 00006470 6d 62 65 72 20 29 0a 0d 20 20 20 20 20 20 20 20 |mber ).. | 00006480 20 20 73 75 62 73 20 20 20 20 20 20 61 32 2c 20 | subs a2, | 00006490 61 32 2c 20 23 31 0a 0d 20 20 20 20 20 20 20 20 |a2, #1.. | 000064a0 20 20 62 67 74 20 20 20 20 20 20 20 47 42 6c 6f | bgt GBlo| 000064b0 6f 70 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f |op.. mo| 000064c0 76 73 20 20 20 20 20 20 70 63 2c 20 6c 72 0a 0d |vs pc, lr..| 000064d0 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e |.. .lon| 000064e0 67 20 20 20 20 20 2d 31 0a 0d 20 20 20 20 20 20 |g -1.. | 000064f0 20 20 20 20 2e 61 73 63 69 63 20 20 20 20 22 50 | .ascic "P| 00006500 42 79 74 65 73 20 22 0a 0d 50 42 79 74 65 73 3a |Bytes "..PBytes:| 00006510 20 20 20 61 64 64 20 20 20 20 20 20 20 61 31 2c | add a1,| 00006520 20 61 31 2c 20 61 32 20 20 20 20 20 20 20 20 20 | a1, a2 | 00006530 20 3b 20 50 42 79 74 65 73 28 20 42 79 74 65 77 | ; PBytes( Bytew| 00006540 6f 72 64 2c 20 4e 75 6d 62 65 72 2c 20 42 79 74 |ord, Number, Byt| 00006550 65 61 64 64 72 20 29 0a 0d 50 42 6c 6f 6f 70 3a |eaddr )..PBloop:| 00006560 20 20 20 73 74 72 62 20 20 20 20 20 20 61 33 2c | strb a3,| 00006570 20 5b 61 31 2c 20 23 2d 31 5d 0a 0d 20 20 20 20 | [a1, #-1].. | 00006580 20 20 20 20 20 20 73 75 62 73 20 20 20 20 20 20 | subs | 00006590 61 32 2c 20 61 32 2c 20 23 31 0a 0d 20 20 20 20 |a2, a2, #1.. | 000065a0 20 20 20 20 20 20 62 67 74 20 20 20 20 20 20 20 | bgt | 000065b0 50 42 6c 6f 6f 70 0a 0d 20 20 20 20 20 20 20 20 |PBloop.. | 000065c0 20 20 6d 6f 76 73 20 20 20 20 20 20 70 63 2c 20 | movs pc, | 000065d0 6c 72 0a 0d 0a 0d 20 20 20 20 20 20 20 20 20 20 |lr.... | 000065e0 2e 6c 6f 6e 67 20 20 20 20 20 2d 31 0a 0d 20 20 |.long -1.. | 000065f0 20 20 20 20 20 20 20 20 2e 61 73 63 69 63 20 20 | .ascic | 00006600 20 20 22 4d 6f 76 65 20 20 20 22 0a 0d 4d 6f 76 | "Move "..Mov| 00006610 65 3a 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 |e: mov | 00006620 20 61 34 2c 20 61 32 2c 20 6c 73 6c 20 23 32 20 | a4, a2, lsl #2 | 00006630 20 20 20 20 20 3b 20 74 6f 20 62 0a 0d 20 20 20 | ; to b.. | 00006640 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 | mov | 00006650 20 61 32 2c 20 61 33 0a 0d 20 20 20 20 20 20 20 | a2, a3.. | 00006660 20 20 20 6d 6f 76 20 20 20 20 20 20 20 61 33 2c | mov a3,| 00006670 20 61 31 2c 20 6c 73 6c 20 23 32 20 20 20 20 20 | a1, lsl #2 | 00006680 20 3b 20 66 72 6f 6d 20 62 0a 0d 20 20 20 20 20 | ; from b.. | 00006690 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 61 | mov a| 000066a0 31 2c 20 23 31 0a 0d 20 20 20 20 20 20 20 20 20 |1, #1.. | 000066b0 20 62 20 20 20 20 20 20 20 20 20 4d 57 4c 6f 6f | b MWLoo| 000066c0 70 0a 0d 0a 0d 20 20 20 20 20 20 20 20 20 20 2e |p.... .| 000066d0 6c 6f 6e 67 20 20 20 20 20 2d 31 0a 0d 20 20 20 |long -1.. | 000066e0 20 20 20 20 20 20 20 2e 61 73 63 69 63 20 20 20 | .ascic | 000066f0 20 22 42 61 63 6b 6d 6f 76 22 0a 0d 42 61 63 6b | "Backmov"..Back| 00006700 4d 6f 76 3a 20 20 61 64 64 20 20 20 20 20 20 20 |Mov: add | 00006710 61 34 2c 20 61 32 2c 20 61 33 20 20 20 20 20 20 |a4, a2, a3 | 00006720 20 20 20 20 3b 20 74 6f 20 77 0a 0d 20 20 20 20 | ; to w.. | 00006730 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 | mov | 00006740 61 32 2c 20 61 33 0a 0d 20 20 20 20 20 20 20 20 |a2, a3.. | 00006750 20 20 61 64 64 20 20 20 20 20 20 20 61 33 2c 20 | add a3, | 00006760 61 31 2c 20 61 33 20 20 20 20 20 20 20 20 20 20 |a1, a3 | 00006770 3b 20 66 72 6f 6d 20 77 0a 0d 20 20 20 20 20 20 |; from w.. | 00006780 20 20 20 20 6d 76 6e 20 20 20 20 20 20 20 61 31 | mvn a1| 00006790 2c 20 23 30 0a 0d 20 20 20 20 20 20 20 20 20 20 |, #0.. | 000067a0 62 20 20 20 20 20 20 20 20 20 4d 6f 76 65 57 6f |b MoveWo| 000067b0 0a 0d 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c |.... .l| 000067c0 6f 6e 67 20 20 20 20 20 2d 31 0a 0d 20 20 20 20 |ong -1.. | 000067d0 20 20 20 20 20 20 2e 61 73 63 69 63 20 20 20 20 | .ascic | 000067e0 22 4d 6f 76 65 57 6f 72 22 0a 0d 4d 6f 76 65 57 |"MoveWor"..MoveW| 000067f0 6f 3a 20 20 20 6d 6f 76 20 20 20 20 20 20 20 61 |o: mov a| 00006800 34 2c 20 61 34 2c 20 6c 73 6c 20 23 32 0a 0d 20 |4, a4, lsl #2.. | 00006810 20 20 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 | mov | 00006820 20 20 20 61 33 2c 20 61 33 2c 20 6c 73 6c 20 23 | a3, a3, lsl #| 00006830 32 0a 0d 4d 57 4c 6f 6f 70 3a 20 20 20 6c 64 72 |2..MWLoop: ldr| 00006840 20 20 20 20 20 20 20 72 30 2c 20 5b 61 33 5d 2c | r0, [a3],| 00006850 20 61 31 2c 6c 73 6c 20 23 32 20 3b 20 61 33 20 | a1,lsl #2 ; a3 | 00006860 70 6f 73 74 69 6e 64 65 78 20 69 63 72 2f 64 65 |postindex icr/de| 00006870 63 72 20 62 79 20 61 31 0a 0d 20 20 20 20 20 20 |cr by a1.. | 00006880 20 20 20 20 73 74 72 20 20 20 20 20 20 20 72 30 | str r0| 00006890 2c 20 5b 61 34 5d 2c 20 61 31 2c 6c 73 6c 20 23 |, [a4], a1,lsl #| 000068a0 32 0a 0d 20 20 20 20 20 20 20 20 20 20 73 75 62 |2.. sub| 000068b0 73 20 20 20 20 20 20 61 32 2c 20 61 32 2c 20 23 |s a2, a2, #| 000068c0 31 0a 0d 20 20 20 20 20 20 20 20 20 20 62 67 74 |1.. bgt| 000068d0 20 20 20 20 20 20 20 4d 57 4c 6f 6f 70 0a 0d 20 | MWLoop.. | 000068e0 20 20 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 | mov | 000068f0 20 20 20 70 63 2c 20 6c 72 0a 0d 0a 0d 20 20 20 | pc, lr.... | 00006900 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 | .long | 00006910 20 2d 31 0a 0d 20 20 20 20 20 20 20 20 20 20 2e | -1.. .| 00006920 61 73 63 69 63 20 20 20 20 22 46 69 6c 6c 57 6f |ascic "FillWo| 00006930 72 22 0a 0d 46 69 6c 6c 57 6f 3a 20 20 20 6d 6f |r"..FillWo: mo| 00006940 76 20 20 20 20 20 20 20 61 31 2c 20 61 31 2c 20 |v a1, a1, | 00006950 6c 73 6c 20 23 32 0a 0d 46 69 6c 6c 6f 6f 70 3a |lsl #2..Filloop:| 00006960 20 20 73 74 72 20 20 20 20 20 20 20 61 33 2c 20 | str a3, | 00006970 5b 61 31 5d 2c 20 23 34 0a 0d 20 20 20 20 20 20 |[a1], #4.. | 00006980 20 20 20 20 73 75 62 73 20 20 20 20 20 20 61 32 | subs a2| 00006990 2c 20 61 32 2c 20 23 31 0a 0d 20 20 20 20 20 20 |, a2, #1.. | 000069a0 20 20 20 20 62 67 74 20 20 20 20 20 20 20 46 69 | bgt Fi| 000069b0 6c 6c 6f 6f 70 0a 0d 20 20 20 20 20 20 20 20 20 |lloop.. | 000069c0 20 6d 6f 76 73 20 20 20 20 20 20 70 63 2c 20 6c | movs pc, l| 000069d0 72 0a 0d 0a 0d 20 20 20 20 20 20 20 20 20 20 2e |r.... .| 000069e0 4c 4f 4e 47 20 20 20 20 20 2d 31 0a 0d 20 20 20 |LONG -1.. | 000069f0 20 20 20 20 20 20 20 2e 61 73 63 69 63 20 20 20 | .ascic | 00006a00 20 22 4d 6f 76 65 62 79 74 22 0a 0d 4d 6f 76 65 | "Movebyt"..Move| 00006a10 62 79 74 65 3a 20 63 6d 70 20 20 20 20 20 20 20 |byte: cmp | 00006a20 61 33 2c 20 23 30 0a 0d 20 20 20 20 20 20 20 20 |a3, #0.. | 00006a30 20 20 6d 6f 76 65 71 20 20 20 20 20 70 63 2c 20 | moveq pc, | 00006a40 6c 72 0a 0d 6d 62 3a 20 20 20 20 20 20 20 6c 64 |lr..mb: ld| 00006a50 72 62 20 20 20 20 20 20 72 30 2c 20 5b 61 31 5d |rb r0, [a1]| 00006a60 2c 20 23 31 0a 0d 20 20 20 20 20 20 20 20 20 20 |, #1.. | 00006a70 73 74 72 62 20 20 20 20 20 20 72 30 2c 20 5b 61 |strb r0, [a| 00006a80 32 5d 2c 20 23 31 0a 0d 20 20 20 20 20 20 20 20 |2], #1.. | 00006a90 20 20 73 75 62 73 20 20 20 20 20 20 61 33 2c 20 | subs a3, | 00006aa0 61 33 2c 20 23 31 0a 0d 20 20 20 20 20 20 20 20 |a3, #1.. | 00006ab0 20 20 62 67 74 20 20 20 20 20 20 20 6d 62 0a 0d | bgt mb..| 00006ac0 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 20 20 | mov | 00006ad0 20 20 20 20 70 63 2c 20 6c 72 0a 0d 0a 0d 20 20 | pc, lr.... | 00006ae0 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 | .long | 00006af0 20 20 2d 31 0a 0d 20 20 20 20 20 20 20 20 20 20 | -1.. | 00006b00 2e 61 73 63 69 63 20 20 20 20 22 42 61 63 6b 6d |.ascic "Backm| 00006b10 76 62 22 0a 0d 42 61 63 6b 6d 76 62 79 3a 20 63 |vb"..Backmvby: c| 00006b20 6d 70 20 20 20 20 20 20 20 61 33 2c 20 23 30 0a |mp a3, #0.| 00006b30 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 65 71 |. moveq| 00006b40 20 20 20 20 20 70 63 2c 20 6c 72 0a 0d 62 6d 62 | pc, lr..bmb| 00006b50 3a 20 20 20 20 20 20 73 75 62 73 20 20 20 20 20 |: subs | 00006b60 20 61 33 2c 20 61 33 2c 20 23 31 0a 0d 20 20 20 | a3, a3, #1.. | 00006b70 20 20 20 20 20 20 20 6c 64 72 62 20 20 20 20 20 | ldrb | 00006b80 20 72 30 2c 20 5b 20 61 31 2c 20 61 33 20 5d 0a | r0, [ a1, a3 ].| 00006b90 0d 20 20 20 20 20 20 20 20 20 20 73 74 72 62 20 |. strb | 00006ba0 20 20 20 20 20 72 30 2c 20 5b 20 61 32 2c 20 61 | r0, [ a2, a| 00006bb0 33 20 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 62 |3 ].. b| 00006bc0 67 74 20 20 20 20 20 20 20 62 6d 62 0a 0d 20 20 |gt bmb.. | 00006bd0 20 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 | mov | 00006be0 20 20 70 63 2c 20 6c 72 0a 0d 0a 0d 20 20 20 20 | pc, lr.... | 00006bf0 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 | .long | 00006c00 2d 31 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 61 |-1.. .a| 00006c10 73 63 69 63 20 20 20 20 22 43 6f 57 61 69 74 20 |scic "CoWait | 00006c20 22 20 20 20 20 20 20 20 20 20 20 20 3b 20 43 6f |" ; Co| 00006c30 57 61 69 74 28 20 43 6f 70 74 72 20 29 0a 0d 43 |Wait( Coptr )..C| 00006c40 6f 57 61 69 74 3a 20 20 20 73 74 6d 65 61 20 20 |oWait: stmea | 00006c50 20 20 20 72 74 73 21 2c 20 7b 72 62 2c 20 72 66 | rts!, {rb, rf| 00006c60 70 2c 20 72 6c 2c 20 6c 72 7d 20 3b 20 66 70 21 |p, rl, lr} ; fp!| 00006c70 30 2c 20 31 2c 20 32 2c 20 33 20 3a 3d 0a 0d 20 |0, 1, 2, 3 :=.. | 00006c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00006ca0 20 20 20 20 20 20 20 3b 20 20 20 20 20 20 43 61 | ; Ca| 00006cb0 6c 6c 65 64 2c 20 43 61 6c 6c 69 6e 67 20 66 70 |lled, Calling fp| 00006cc0 2c 20 73 74 61 74 69 63 73 2c 20 6c 69 6e 6b 0a |, statics, link.| 00006cd0 0d 20 20 20 20 20 20 20 20 20 20 73 75 62 20 20 |. sub | 00006ce0 20 20 20 20 20 72 66 70 2c 20 72 74 73 2c 20 23 | rfp, rts, #| 00006cf0 31 36 20 20 20 20 20 20 20 3b 20 66 72 61 6d 65 |16 ; frame| 00006d00 20 70 6f 69 6e 74 65 72 0a 0d 20 20 20 20 20 20 | pointer.. | 00006d10 20 20 20 20 73 74 6d 65 61 20 20 20 20 20 72 74 | stmea rt| 00006d20 73 21 2c 20 7b 61 31 7d 20 20 20 20 20 20 20 20 |s!, {a1} | 00006d30 20 20 3b 20 66 70 21 34 20 3a 3d 20 63 6f 70 74 | ; fp!4 := copt| 00006d40 72 0a 0d 20 20 20 20 20 20 20 20 20 20 6c 64 72 |r.. ldr| 00006d50 20 20 20 20 20 20 20 61 32 2c 20 5b 72 67 2c 20 | a2, [rg, | 00006d60 23 53 74 61 63 6b 62 61 73 65 5d 3b 20 43 75 72 |#Stackbase]; Cur| 00006d70 72 65 6e 74 20 53 74 61 63 6b 62 61 73 65 0a 0d |rent Stackbase..| 00006d80 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 20 20 | mov | 00006d90 20 20 20 20 61 32 2c 20 61 32 2c 20 6c 73 6c 20 | a2, a2, lsl | 00006da0 23 32 0a 0d 20 20 20 20 20 20 20 20 20 20 6c 64 |#2.. ld| 00006db0 72 20 20 20 20 20 20 20 61 33 2c 20 5b 61 32 2c |r a3, [a2,| 00006dc0 20 23 34 5d 20 20 20 20 20 20 20 20 3b 20 73 62 | #4] ; sb| 00006dd0 20 3a 3d 20 73 62 21 31 0a 0d 20 20 20 20 20 20 | := sb!1.. | 00006de0 20 20 20 20 63 6d 6e 73 20 20 20 20 20 20 61 33 | cmns a3| 00006df0 2c 20 23 31 0a 0d 20 20 20 20 20 20 20 20 20 20 |, #1.. | 00006e00 62 65 71 20 20 20 20 20 20 20 52 65 73 43 66 6c |beq ResCfl| 00006e10 74 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 |t ; | 00006e20 73 62 21 31 3d 2d 31 20 2d 3e 20 4d 61 69 6e 73 |sb!1=-1 -> Mains| 00006e30 74 61 63 6b 0a 0d 20 20 20 20 20 20 20 20 20 20 |tack.. | 00006e40 73 74 72 20 20 20 20 20 20 20 61 33 2c 20 5b 72 |str a3, [r| 00006e50 67 2c 20 23 53 74 61 63 6b 62 61 73 65 5d 3b 20 |g, #Stackbase]; | 00006e60 20 20 20 20 20 6f 74 68 65 72 77 69 73 65 20 43 | otherwise C| 00006e70 61 6c 6c 69 6e 67 20 73 74 61 63 6b 0a 0d 20 20 |alling stack.. | 00006e80 20 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 | mov | 00006e90 20 20 61 34 2c 20 23 30 0a 0d 20 20 20 20 20 20 | a4, #0.. | 00006ea0 20 20 20 20 73 74 72 20 20 20 20 20 20 20 61 34 | str a4| 00006eb0 2c 20 5b 61 32 2c 20 23 34 5d 20 20 20 20 20 20 |, [a2, #4] | 00006ec0 20 20 3b 20 20 20 20 20 3a 3d 20 30 20 2d 3e 20 | ; := 0 -> | 00006ed0 77 61 69 74 69 6e 67 0a 0d 20 20 20 20 20 20 20 |waiting.. | 00006ee0 20 20 20 73 74 72 20 20 20 20 20 20 20 72 66 70 | str rfp| 00006ef0 2c 20 5b 61 32 2c 20 23 31 36 5d 20 20 20 20 20 |, [a2, #16] | 00006f00 20 3b 20 73 62 21 34 20 3a 3d 20 66 72 61 6d 65 | ; sb!4 := frame| 00006f10 70 74 72 20 66 6f 72 20 72 65 73 75 6d 65 0a 0d |ptr for resume..| 00006f20 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 20 20 | mov | 00006f30 20 20 20 20 61 33 2c 20 61 33 2c 20 6c 73 6c 20 | a3, a3, lsl | 00006f40 23 32 0a 0d 20 20 20 20 20 20 20 20 20 20 6c 64 |#2.. ld| 00006f50 72 20 20 20 20 20 20 20 72 66 70 2c 20 5b 61 33 |r rfp, [a3| 00006f60 2c 20 23 31 36 5d 20 20 20 20 20 20 3b 20 66 72 |, #16] ; fr| 00006f70 70 74 72 20 3d 20 4f 6c 64 73 62 21 34 0a 0d 20 |ptr = Oldsb!4.. | 00006f80 20 20 20 20 20 20 20 20 20 6c 64 6d 65 64 20 20 | ldmed | 00006f90 20 20 20 72 66 70 2c 20 7b 72 66 70 2c 20 72 6c | rfp, {rfp, rl| 00006fa0 2c 20 70 63 7d 5e 20 3b 20 66 72 61 6d 65 70 74 |, pc}^ ; framept| 00006fb0 72 2c 20 73 74 61 74 69 63 73 2c 20 72 65 73 75 |r, statics, resu| 00006fc0 6d 65 70 63 20 3a 3d 0a 0d 20 20 20 20 20 20 20 |mepc :=.. | 00006fd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00006ff0 20 3b 20 20 20 20 20 20 20 20 20 66 72 61 6d 65 | ; frame| 00007000 70 74 72 21 34 2c 20 33 2c 20 32 0a 0d 20 20 20 |ptr!4, 3, 2.. | 00007010 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 | .long | 00007020 20 2d 31 0a 0d 20 20 20 20 20 20 20 20 20 20 2e | -1.. .| 00007030 61 73 63 69 63 20 20 20 20 22 43 72 65 61 74 65 |ascic "Create| 00007040 43 22 20 20 20 20 20 20 20 20 20 20 3b 20 28 66 |C" ; (f| 00007050 75 6e 63 74 69 6f 6e 2c 20 73 74 61 63 6b 23 29 |unction, stack#)| 00007060 0a 0d 43 72 65 61 74 65 43 3a 20 20 73 74 6d 65 |..CreateC: stme| 00007070 61 20 20 20 20 20 72 74 73 21 2c 20 7b 72 62 2c |a rts!, {rb,| 00007080 20 72 66 70 2c 20 72 6c 2c 20 6c 72 7d 0a 0d 20 | rfp, rl, lr}.. | 00007090 20 20 20 20 20 20 20 20 20 73 75 62 20 20 20 20 | sub | 000070a0 20 20 20 72 66 70 2c 20 72 74 73 2c 20 23 31 36 | rfp, rts, #16| 000070b0 0a 0d 20 20 20 20 20 20 20 20 20 20 73 74 6d 65 |.. stme| 000070c0 61 20 20 20 20 20 72 74 73 21 2c 20 7b 61 31 2c |a rts!, {a1,| 000070d0 20 61 32 7d 0a 0d 20 20 20 20 20 20 20 20 20 20 | a2}.. | 000070e0 6d 6f 76 20 20 20 20 20 20 20 61 31 2c 20 61 32 |mov a1, a2| 000070f0 0a 0d 20 20 20 20 20 20 20 20 20 20 62 6c 20 20 |.. bl | 00007100 20 20 20 20 20 20 47 65 74 56 65 63 0a 0d 20 20 | GetVec.. | 00007110 20 20 20 20 20 20 20 20 63 6d 70 73 20 20 20 20 | cmps | 00007120 20 20 61 31 2c 20 23 30 20 20 20 20 20 20 20 20 | a1, #0 | 00007130 20 20 20 20 20 20 3b 20 69 66 20 76 20 3d 20 30 | ; if v = 0| 00007140 20 67 6f 74 6f 20 52 65 73 43 66 6c 74 0a 0d 20 | goto ResCflt.. | 00007150 20 20 20 20 20 20 20 20 20 62 65 71 20 20 20 20 | beq | 00007160 20 20 20 52 65 73 43 66 6c 74 0a 0d 20 20 20 20 | ResCflt.. | 00007170 20 20 20 20 20 20 6c 64 6d 65 61 20 20 20 20 20 | ldmea | 00007180 72 74 73 21 2c 20 7b 61 34 2c 20 6c 72 7d 0a 0d |rts!, {a4, lr}..| 00007190 20 20 20 20 20 20 20 20 20 20 61 64 64 20 20 20 | add | 000071a0 20 20 20 20 6c 72 2c 20 61 31 2c 20 6c 72 20 20 | lr, a1, lr | 000071b0 20 20 20 20 20 20 20 20 3b 20 6c 72 20 3a 3d 20 | ; lr := | 000071c0 76 2b 53 74 61 63 6b 23 2c 20 69 2e 65 20 53 74 |v+Stack#, i.e St| 000071d0 61 63 6b 74 6f 70 77 6f 72 64 28 53 74 77 29 0a |acktopword(Stw).| 000071e0 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 20 |. mov | 000071f0 20 20 20 20 20 61 32 2c 20 61 31 2c 20 6c 73 6c | a2, a1, lsl| 00007200 20 23 32 20 20 20 20 20 20 3b 20 61 32 20 3a 3d | #2 ; a2 :=| 00007210 20 53 74 61 63 6b 62 6f 74 62 79 74 65 28 53 62 | Stackbotbyte(Sb| 00007220 62 29 0a 0d 20 20 20 20 20 20 20 20 20 20 6c 64 |b).. ld| 00007230 72 20 20 20 20 20 20 20 72 62 2c 20 5b 72 67 2c |r rb, [rg,| 00007240 20 23 53 74 61 63 6b 62 61 73 65 5d 0a 0d 20 20 | #Stackbase].. | 00007250 20 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 | mov | 00007260 20 20 61 33 2c 20 72 62 2c 20 6c 73 6c 20 23 32 | a3, rb, lsl #2| 00007270 0a 0d 20 20 20 20 20 20 20 20 20 20 6c 64 72 20 |.. ldr | 00007280 20 20 20 20 20 20 72 35 2c 20 5b 61 33 5d 0a 0d | r5, [a3]..| 00007290 20 20 20 20 20 20 20 20 20 20 73 74 72 20 20 20 | str | 000072a0 20 20 20 20 61 31 2c 20 5b 61 33 5d 20 20 20 20 | a1, [a3] | 000072b0 20 20 20 20 20 20 20 20 3b 20 6f 6c 64 73 62 21 | ; oldsb!| 000072c0 30 20 3a 3d 20 53 74 61 63 6b 23 0a 0d 20 20 20 |0 := Stack#.. | 000072d0 20 20 20 20 20 20 20 73 74 6d 65 61 20 20 20 20 | stmea | 000072e0 20 61 32 2c 20 7b 72 35 2c 20 72 62 2c 20 6c 72 | a2, {r5, rb, lr| 000072f0 7d 20 20 20 20 3b 20 73 62 21 30 2c 20 31 2c 20 |} ; sb!0, 1, | 00007300 32 20 3a 3d 20 4f 6c 64 73 62 21 30 2c 20 6f 77 |2 := Oldsb!0, ow| 00007310 6e 69 6e 67 20 73 62 57 2c 20 53 74 77 0a 0d 20 |ning sbW, Stw.. | 00007320 20 20 20 20 20 20 20 20 20 73 74 72 20 20 20 20 | str | 00007330 20 20 20 61 34 2c 20 5b 61 32 2c 20 23 32 30 5d | a4, [a2, #20]| 00007340 20 20 20 20 20 20 20 3b 20 73 62 21 35 20 3a 3d | ; sb!5 :=| 00007350 20 66 75 6e 63 74 69 6f 6e 0a 0d 20 20 20 20 20 | function.. | 00007360 20 20 20 20 20 73 74 72 20 20 20 20 20 20 20 61 | str a| 00007370 33 2c 20 5b 61 32 2c 20 23 31 36 5d 20 20 20 20 |3, [a2, #16] | 00007380 20 20 20 3b 20 73 62 21 34 20 3a 3d 20 4f 77 6e | ; sb!4 := Own| 00007390 69 6e 67 73 62 42 0a 0d 20 20 20 20 20 20 20 20 |ingsbB.. | 000073a0 20 20 73 74 72 20 20 20 20 20 20 20 61 31 2c 20 | str a1, | 000073b0 5b 72 67 2c 20 23 53 74 61 63 6b 62 61 73 65 5d |[rg, #Stackbase]| 000073c0 3b 20 53 74 61 63 6b 62 61 73 65 20 3a 3d 20 53 |; Stackbase := S| 000073d0 74 61 63 6b 62 61 73 65 57 0a 0d 20 20 20 20 20 |tackbaseW.. | 000073e0 20 20 20 20 20 61 64 64 20 20 20 20 20 20 20 72 | add r| 000073f0 66 70 2c 20 61 32 2c 20 23 32 34 0a 0d 63 63 72 |fp, a2, #24..ccr| 00007400 65 74 3a 20 20 20 20 6d 6f 76 20 20 20 20 20 20 |et: mov | 00007410 20 72 74 73 2c 20 72 66 70 0a 0d 20 20 20 20 20 | rts, rfp.. | 00007420 20 20 20 20 20 62 6c 20 20 20 20 20 20 20 20 43 | bl C| 00007430 6f 57 61 69 74 0a 0d 20 20 20 20 20 20 20 20 20 |oWait.. | 00007440 20 6c 64 72 20 20 20 20 20 20 20 72 62 2c 20 5b | ldr rb, [| 00007450 72 66 70 2c 20 23 2d 34 5d 20 20 20 20 20 20 3b |rfp, #-4] ;| 00007460 20 66 75 6e 63 74 69 6f 6e 0a 0d 20 20 20 20 20 | function.. | 00007470 20 20 20 20 20 62 6c 20 20 20 20 20 20 20 20 43 | bl C| 00007480 61 6c 6c 0a 0d 20 20 20 20 20 20 20 20 20 20 62 |all.. b| 00007490 20 20 20 20 20 20 20 20 20 63 63 72 65 74 20 20 | ccret | 000074a0 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 6c | ; l| 000074b0 6f 6f 70 0a 0d 0a 0d 20 20 20 20 20 20 20 20 20 |oop.... | 000074c0 20 2e 6c 6f 6e 67 20 20 20 20 20 2d 31 0a 0d 20 | .long -1.. | 000074d0 20 20 20 20 20 20 20 20 20 2e 61 73 63 69 63 20 | .ascic | 000074e0 20 20 20 22 44 65 6c 65 74 65 43 22 0a 0d 44 65 | "DeleteC"..De| 000074f0 6c 65 74 65 43 3a 20 20 73 74 6d 65 61 20 20 20 |leteC: stmea | 00007500 20 20 72 74 73 21 2c 20 7b 72 62 2c 20 72 66 70 | rts!, {rb, rfp| 00007510 2c 20 72 6c 2c 20 6c 72 7d 0a 0d 20 20 20 20 20 |, rl, lr}.. | 00007520 20 20 20 20 20 73 75 62 20 20 20 20 20 20 20 72 | sub r| 00007530 66 70 2c 20 72 74 73 2c 20 20 23 31 36 0a 0d 20 |fp, rts, #16.. | 00007540 20 20 20 20 20 20 20 20 20 73 74 6d 65 61 20 20 | stmea | 00007550 20 20 20 72 74 73 21 2c 20 7b 61 31 7d 20 20 20 | rts!, {a1} | 00007560 20 20 20 20 20 20 20 3b 28 63 6f 70 74 72 29 20 | ;(coptr) | 00007570 72 65 74 75 72 6e 73 20 73 75 63 63 65 73 73 63 |returns successc| 00007580 6f 64 65 0a 0d 20 20 20 20 20 20 20 20 20 20 6d |ode.. m| 00007590 6f 76 20 20 20 20 20 20 20 61 32 2c 20 61 31 2c |ov a2, a1,| 000075a0 20 6c 73 6c 20 23 32 0a 0d 20 20 20 20 20 20 20 | lsl #2.. | 000075b0 20 20 20 6c 64 72 20 20 20 20 20 20 20 61 33 2c | ldr a3,| 000075c0 20 5b 61 32 2c 20 23 34 5d 20 20 20 20 20 20 20 | [a2, #4] | 000075d0 20 3b 20 73 62 21 31 0a 0d 20 20 20 20 20 20 20 | ; sb!1.. | 000075e0 20 20 20 63 6d 70 20 20 20 20 20 20 20 61 33 2c | cmp a3,| 000075f0 20 23 30 0a 0d 20 20 20 20 20 20 20 20 20 20 62 | #0.. b| 00007600 6e 65 20 20 20 20 20 20 20 52 65 73 43 66 6c 74 |ne ResCflt| 00007610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 | ; | 00007620 6e 6f 74 20 61 20 73 74 61 63 6b 0a 0d 20 20 20 |not a stack.. | 00007630 20 20 20 20 20 20 20 6c 64 72 20 20 20 20 20 20 | ldr | 00007640 20 61 33 2c 20 5b 72 67 2c 20 23 53 74 61 63 6b | a3, [rg, #Stack| 00007650 62 61 73 65 5d 0a 0d 64 6c 63 31 3a 20 20 20 20 |base]..dlc1: | 00007660 20 6d 6f 76 20 20 20 20 20 20 20 61 34 2c 20 61 | mov a4, a| 00007670 34 2c 20 6c 73 6c 20 23 32 0a 0d 20 20 20 20 20 |4, lsl #2.. | 00007680 20 20 20 20 20 6c 64 72 20 20 20 20 20 20 20 61 | ldr a| 00007690 34 2c 20 5b 61 34 2c 20 23 34 5d 0a 0d 20 20 20 |4, [a4, #4].. | 000076a0 20 20 20 20 20 20 20 63 6d 6e 20 20 20 20 20 20 | cmn | 000076b0 20 61 34 2c 20 23 31 20 20 20 20 20 20 20 20 20 | a4, #1 | 000076c0 20 20 20 20 20 3b 20 69 66 20 6f 77 6e 69 6e 67 | ; if owning| 000076d0 73 62 21 31 20 5c 3d 20 2d 31 2c 69 65 20 6e 61 |sb!1 \= -1,ie na| 000076e0 69 6e 2c 20 6c 6f 6f 70 0a 0d 20 20 20 20 20 20 |in, loop.. | 000076f0 20 20 20 20 62 6e 65 20 20 20 20 20 20 20 64 6c | bne dl| 00007700 63 31 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f |c1.. mo| 00007710 76 20 20 20 20 20 20 20 72 30 2c 20 23 30 0a 0d |v r0, #0..| 00007720 64 6c 63 6c 32 3a 20 20 20 20 6d 6f 76 20 20 20 |dlcl2: mov | 00007730 20 20 20 20 61 34 2c 20 61 33 0a 0d 20 20 20 20 | a4, a3.. | 00007740 20 20 20 20 20 20 6c 64 72 20 20 20 20 20 20 20 | ldr | 00007750 61 33 2c 20 5b 72 30 2c 20 61 33 2c 20 6c 73 6c |a3, [r0, a3, lsl| 00007760 20 23 32 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 | #2].. | 00007770 63 6d 70 20 20 20 20 20 20 20 61 33 2c 20 30 0a |cmp a3, 0.| 00007780 0d 20 20 20 20 20 20 20 20 20 20 62 65 71 20 20 |. beq | 00007790 20 20 20 20 20 52 65 73 43 66 6c 74 0a 0d 20 20 | ResCflt.. | 000077a0 20 20 20 20 20 20 20 20 63 6d 70 20 20 20 20 20 | cmp | 000077b0 20 20 61 31 2c 20 61 33 20 20 20 20 20 20 20 20 | a1, a3 | 000077c0 20 20 20 20 20 20 3b 20 43 6f 70 74 72 0a 0d 20 | ; Coptr.. | 000077d0 20 20 20 20 20 20 20 20 20 62 6e 65 20 20 20 20 | bne | 000077e0 20 20 20 64 6c 63 6c 32 0a 0d 20 20 20 20 20 20 | dlcl2.. | 000077f0 20 20 20 20 6c 64 72 20 20 20 20 20 20 20 61 32 | ldr a2| 00007800 2c 20 5b 72 30 2c 20 61 31 2c 20 6c 73 6c 20 23 |, [r0, a1, lsl #| 00007810 32 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 73 74 |2].. st| 00007820 72 20 20 20 20 20 20 20 61 32 2c 20 5b 72 30 2c |r a2, [r0,| 00007830 20 61 34 2c 20 6c 73 6c 20 23 32 5d 0a 0d 20 20 | a4, lsl #2].. | 00007840 20 20 20 20 20 20 20 20 62 6c 20 20 20 20 20 20 | bl | 00007850 20 20 46 72 65 65 56 65 63 0a 0d 20 20 20 20 20 | FreeVec.. | 00007860 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 72 | mov r| 00007870 74 73 2c 20 72 66 70 0a 0d 20 20 20 20 20 20 20 |ts, rfp.. | 00007880 20 20 20 6c 64 6d 65 64 20 20 20 20 20 72 74 73 | ldmed rts| 00007890 2c 20 7b 72 66 70 2c 20 72 6c 2c 20 70 63 7d 5e |, {rfp, rl, pc}^| 000078a0 0a 0d 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c |.... .l| 000078b0 6f 6e 67 20 20 20 20 20 2d 31 0a 0d 20 20 20 20 |ong -1.. | 000078c0 20 20 20 20 20 20 2e 61 73 63 69 63 20 20 20 20 | .ascic | 000078d0 22 43 61 6c 6c 43 6f 20 22 0a 0d 43 61 6c 6c 43 |"CallCo "..CallC| 000078e0 6f 3a 20 20 20 73 74 6d 65 61 20 20 20 20 20 72 |o: stmea r| 000078f0 74 73 21 2c 20 7b 72 62 2c 20 72 66 70 2c 20 72 |ts!, {rb, rfp, r| 00007900 6c 2c 20 6c 72 7d 0a 0d 20 20 20 20 20 20 20 20 |l, lr}.. | 00007910 20 20 73 75 62 20 20 20 20 20 20 20 72 66 70 2c | sub rfp,| 00007920 20 72 74 73 2c 20 23 31 36 0a 0d 20 20 20 20 20 | rts, #16.. | 00007930 20 20 20 20 20 73 74 6d 65 61 20 20 20 20 20 72 | stmea r| 00007940 74 73 21 2c 20 7b 61 31 2c 20 61 32 7d 20 20 20 |ts!, {a1, a2} | 00007950 20 20 20 20 3b 20 43 61 6c 6c 43 6f 28 20 43 6f | ; CallCo( Co| 00007960 70 74 72 2c 20 61 72 67 20 29 0a 0d 20 20 20 20 |ptr, arg ).. | 00007970 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 | mov | 00007980 61 33 2c 20 61 31 2c 20 6c 73 6c 20 23 32 0a 0d |a3, a1, lsl #2..| 00007990 20 20 20 20 20 20 20 20 20 20 6c 64 72 20 20 20 | ldr | 000079a0 20 20 20 20 61 34 2c 20 5b 61 33 2c 20 23 34 5d | a4, [a3, #4]| 000079b0 20 20 20 20 20 20 20 20 3b 20 69 66 20 63 6f 70 | ; if cop| 000079c0 74 72 21 31 20 3d 20 30 20 67 6f 74 6f 20 52 65 |tr!1 = 0 goto Re| 000079d0 73 43 66 6c 74 0a 0d 20 20 20 20 20 20 20 20 20 |sCflt.. | 000079e0 20 63 6d 70 20 20 20 20 20 20 20 61 34 2c 20 23 | cmp a4, #| 000079f0 30 0a 0d 20 20 20 20 20 20 20 20 20 20 62 6e 65 |0.. bne| 00007a00 20 20 20 20 20 20 20 52 65 73 43 66 6c 74 20 20 | ResCflt | 00007a10 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 4e 6f | ; No| 00007a20 74 20 77 61 69 74 69 6e 67 0a 0d 20 20 20 20 20 |t waiting.. | 00007a30 20 20 20 20 20 6c 64 72 20 20 20 20 20 20 20 72 | ldr r| 00007a40 62 2c 20 5b 72 67 2c 20 23 53 74 61 63 6b 62 61 |b, [rg, #Stackba| 00007a50 73 65 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 73 |se].. s| 00007a60 74 72 20 20 20 20 20 20 20 72 62 2c 20 5b 61 33 |tr rb, [a3| 00007a70 2c 20 23 34 5d 20 20 20 20 20 20 20 20 3b 20 43 |, #4] ; C| 00007a80 6f 70 74 72 21 31 20 3a 3d 20 43 61 6c 6c 69 6e |optr!1 := Callin| 00007a90 67 20 53 74 61 63 6b 62 61 73 65 0a 0d 20 20 20 |g Stackbase.. | 00007aa0 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 | mov | 00007ab0 20 72 62 2c 20 72 62 2c 20 6c 73 6c 20 23 32 0a | rb, rb, lsl #2.| 00007ac0 0d 43 61 6c 6c 43 6f 31 3a 20 20 73 74 72 20 20 |.CallCo1: str | 00007ad0 20 20 20 20 20 61 31 2c 20 5b 72 67 2c 20 23 53 | a1, [rg, #S| 00007ae0 74 61 63 6b 62 61 73 65 5d 3b 20 53 74 61 63 6b |tackbase]; Stack| 00007af0 62 61 73 65 20 3a 3d 20 43 6f 70 74 72 0a 0d 20 |base := Coptr.. | 00007b00 20 20 20 20 20 20 20 20 20 73 74 72 20 20 20 20 | str | 00007b10 20 20 20 72 66 70 2c 20 5b 72 62 2c 20 23 31 36 | rfp, [rb, #16| 00007b20 5d 20 20 20 20 20 20 3b 20 4f 6c 64 53 74 61 63 |] ; OldStac| 00007b30 6b 62 61 73 65 21 34 20 3a 3d 20 72 66 70 0a 0d |kbase!4 := rfp..| 00007b40 20 20 20 20 20 20 20 20 20 20 6c 64 72 20 20 20 | ldr | 00007b50 20 20 20 20 72 74 73 2c 20 5b 61 33 2c 20 23 31 | rts, [a3, #1| 00007b60 36 5d 20 20 20 20 20 20 3b 20 72 74 73 20 3a 3d |6] ; rts :=| 00007b70 20 43 6f 70 74 72 21 34 0a 0d 20 20 20 20 20 20 | Coptr!4.. | 00007b80 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 61 31 | mov a1| 00007b90 2c 20 61 32 20 20 20 20 20 20 20 20 20 20 20 20 |, a2 | 00007ba0 20 20 3b 20 61 72 67 0a 0d 20 20 20 20 20 20 20 | ; arg.. | 00007bb0 20 20 20 6c 64 6d 65 64 20 20 20 20 20 72 74 73 | ldmed rts| 00007bc0 2c 20 7b 72 66 70 2c 20 72 6c 2c 20 70 63 7d 5e |, {rfp, rl, pc}^| 00007bd0 0a 0d 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c |.... .l| 00007be0 6f 6e 67 20 20 20 20 20 2d 31 0a 0d 20 20 20 20 |ong -1.. | 00007bf0 20 20 20 20 20 20 2e 61 73 63 69 43 20 20 20 20 | .asciC | 00007c00 22 52 65 73 75 6d 65 43 22 0a 0d 52 65 73 75 6d |"ResumeC"..Resum| 00007c10 65 43 3a 20 20 73 74 6d 65 61 20 20 20 20 20 72 |eC: stmea r| 00007c20 74 73 21 2c 20 7b 20 72 62 2c 72 66 70 2c 20 72 |ts!, { rb,rfp, r| 00007c30 6c 2c 20 6c 72 7d 0a 0d 20 20 20 20 20 20 20 20 |l, lr}.. | 00007c40 20 20 73 75 62 20 20 20 20 20 20 20 72 66 70 2c | sub rfp,| 00007c50 20 72 74 73 2c 20 23 31 36 0a 0d 20 20 20 20 20 | rts, #16.. | 00007c60 20 20 20 20 20 73 74 6d 65 61 20 20 20 20 20 72 | stmea r| 00007c70 74 73 21 2c 20 7b 61 31 2c 20 61 32 7d 20 20 20 |ts!, {a1, a2} | 00007c80 20 20 20 3b 20 52 65 73 75 6d 65 43 6f 28 20 63 | ; ResumeCo( c| 00007c90 6f 70 74 72 2c 20 41 72 67 20 29 0a 0d 20 20 20 |optr, Arg ).. | 00007ca0 20 20 20 20 20 20 20 6c 64 72 20 20 20 20 20 20 | ldr | 00007cb0 20 72 62 2c 20 5b 72 67 2c 20 23 53 74 61 63 6b | rb, [rg, #Stack| 00007cc0 62 61 73 65 5d 0a 0d 20 20 20 20 20 20 20 20 20 |base].. | 00007cd0 20 63 6d 70 20 20 20 20 20 20 20 72 62 2c 20 61 | cmp rb, a| 00007ce0 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b |1 ;| 00007cf0 20 52 65 73 75 6d 65 20 6f 6e 65 73 65 6c 66 20 | Resume oneself | 00007d00 3d 3d 20 43 61 6c 6c 0a 0d 20 20 20 20 20 20 20 |== Call.. | 00007d10 20 20 20 62 65 71 20 20 20 20 20 20 20 72 65 73 | beq res| 00007d20 63 6f 32 0a 0d 20 20 20 20 20 20 20 20 20 20 6d |co2.. m| 00007d30 6f 76 20 20 20 20 20 20 20 61 33 2c 20 61 31 2c |ov a3, a1,| 00007d40 20 6c 73 6c 20 23 32 0a 0d 20 20 20 20 20 20 20 | lsl #2.. | 00007d50 20 20 20 6c 64 72 20 20 20 20 20 20 20 61 34 2c | ldr a4,| 00007d60 20 5b 61 33 2c 20 23 34 5d 20 20 20 20 20 20 20 | [a3, #4] | 00007d70 20 3b 20 61 34 20 3a 3d 20 6f 77 6e 65 72 0a 0d | ; a4 := owner..| 00007d80 20 20 20 20 20 20 20 20 20 20 62 6e 65 20 20 20 | bne | 00007d90 20 20 20 20 52 65 73 43 66 6c 74 20 20 20 20 20 | ResCflt | 00007da0 20 20 20 20 20 20 20 20 20 3b 20 45 78 69 73 74 | ; Exist| 00007db0 73 2c 20 65 72 72 6f 72 20 72 65 74 75 72 6e 0a |s, error return.| 00007dc0 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 20 |. mov | 00007dd0 20 20 20 20 20 72 62 2c 20 72 62 2c 20 6c 73 6c | rb, rb, lsl| 00007de0 20 23 32 0a 0d 72 65 73 63 6f 33 3a 20 20 20 6c | #2..resco3: l| 00007df0 64 72 20 20 20 20 20 20 20 61 34 2c 20 5b 72 62 |dr a4, [rb| 00007e00 2c 20 23 34 5d 0a 0d 20 20 20 20 20 20 20 20 20 |, #4].. | 00007e10 20 63 6d 6e 73 20 20 20 20 20 20 61 34 2c 20 23 | cmns a4, #| 00007e20 31 0a 0d 20 20 20 20 20 20 20 20 20 20 62 65 71 |1.. beq| 00007e30 20 20 20 20 20 20 20 52 65 73 43 66 6c 74 0a 0d | ResCflt..| 00007e40 20 20 20 20 20 20 20 20 20 20 73 74 72 20 20 20 | str | 00007e50 20 20 20 20 61 34 2c 20 5b 61 33 2c 20 23 34 5d | a4, [a3, #4]| 00007e60 20 20 20 20 20 20 20 20 3b 20 6f 77 6e 65 72 20 | ; owner | 00007e70 6f 66 20 6e 65 77 20 3a 3d 20 4f 77 6e 65 72 20 |of new := Owner | 00007e80 6f 66 20 6f 6c 64 0a 0d 20 20 20 20 20 20 20 20 |of old.. | 00007e90 20 20 6d 6f 76 20 20 20 20 20 20 20 61 34 2c 20 | mov a4, | 00007ea0 23 30 0a 0d 20 20 20 20 20 20 20 20 20 20 73 74 |#0.. st| 00007eb0 72 20 20 20 20 20 20 20 61 34 2c 20 5b 72 62 2c |r a4, [rb,| 00007ec0 20 23 34 5d 20 20 20 20 20 20 20 20 3b 20 43 6f | #4] ; Co| 00007ed0 57 61 69 74 20 6f 6c 64 0a 0d 20 20 20 20 20 20 |Wait old.. | 00007ee0 20 20 20 20 62 20 20 20 20 20 20 20 20 20 43 61 | b Ca| 00007ef0 6c 6c 43 6f 31 0a 0d 72 65 73 63 6f 32 3a 20 20 |llCo1..resco2: | 00007f00 20 6d 6f 76 20 20 20 20 20 20 20 61 31 2c 20 61 | mov a1, a| 00007f10 32 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 |2.. mov| 00007f20 20 20 20 20 20 20 20 72 74 73 2c 20 72 66 70 0a | rts, rfp.| 00007f30 0d 20 20 20 20 20 20 20 20 20 20 6c 64 6d 65 64 |. ldmed| 00007f40 20 20 20 20 20 72 74 73 2c 20 7b 72 66 70 2c 20 | rts, {rfp, | 00007f50 72 6c 2c 20 6c 72 7d 5e 0a 0d 52 65 73 43 66 6c |rl, lr}^..ResCfl| 00007f60 74 3a 20 20 41 44 52 20 20 20 20 20 20 20 61 31 |t: ADR a1| 00007f70 2c 20 52 65 73 43 65 72 72 0a 0d 20 20 20 20 20 |, ResCerr.. | 00007f80 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 20 61 | mov a| 00007f90 31 2c 20 23 31 33 0a 0d 20 20 20 20 20 20 20 20 |1, #13.. | 00007fa0 20 20 73 74 72 20 20 20 20 20 20 20 61 31 2c 20 | str a1, | 00007fb0 5b 72 67 2c 20 23 52 65 74 75 72 6e 43 6f 64 65 |[rg, #ReturnCode| 00007fc0 5d 0a 0d 46 61 75 6c 74 73 3a 20 20 20 6d 6f 76 |]..Faults: mov| 00007fd0 20 20 20 20 20 20 20 61 31 2c 20 61 31 2c 20 6c | a1, a1, l| 00007fe0 73 72 20 23 32 0a 0d 20 20 20 20 20 20 20 20 20 |sr #2.. | 00007ff0 20 6c 64 72 20 20 20 20 20 20 20 72 62 2c 20 5b | ldr rb, [| 00008000 72 67 2c 20 23 46 61 75 6c 74 5d 0a 0d 20 20 20 |rg, #Fault].. | 00008010 20 20 20 20 20 20 20 73 77 69 20 20 20 20 20 20 | swi | 00008020 20 4f 53 5f 4e 65 77 4c 69 6e 65 0a 0d 20 20 20 | OS_NewLine.. | 00008030 20 20 20 20 20 20 20 62 6c 20 20 20 20 20 20 20 | bl | 00008040 20 43 61 6c 6c 0a 0d 20 20 20 20 20 20 20 20 20 | Call.. | 00008050 20 62 20 20 20 20 20 20 20 20 20 46 69 6e 69 73 | b Finis| 00008060 68 0a 0d 52 65 73 43 65 72 72 3a 20 20 2e 61 73 |h..ResCerr: .as| 00008070 63 69 63 20 20 20 20 22 43 6f 72 6f 75 74 69 6e |cic "Coroutin| 00008080 65 20 65 72 72 6f 72 5c 6e 22 0a 0d 20 20 20 20 |e error\n".. | 00008090 20 20 20 20 20 20 2e 61 6c 69 67 6e 0a 0d 52 65 | .align..Re| 000080a0 73 43 37 38 3a 20 20 20 2e 61 73 63 69 69 20 20 |sC78: .ascii | 000080b0 20 20 22 56 45 52 4e 22 0a 0d 20 20 20 20 20 20 | "VERN".. | 000080c0 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 2d 31 | .long -1| 000080d0 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 61 73 63 |.. .asc| 000080e0 69 63 20 20 20 20 22 47 65 74 56 65 63 74 22 0a |ic "GetVect".| 000080f0 0d 47 65 74 56 65 63 3a 20 20 20 6d 6f 76 20 20 |.GetVec: mov | 00008100 20 20 20 20 20 72 30 2c 20 23 32 0a 0d 20 20 20 | r0, #2.. | 00008110 20 20 20 20 20 20 20 61 64 64 20 20 20 20 20 20 | add | 00008120 20 61 31 2c 20 61 31 2c 20 23 31 0a 0d 20 20 20 | a1, a1, #1.. | 00008130 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 | mov | 00008140 20 61 33 2c 20 61 31 2c 20 6c 73 6c 20 23 32 0a | a3, a1, lsl #2.| 00008150 0d 43 6f 6d 76 65 63 3a 20 20 20 6c 64 72 20 20 |.Comvec: ldr | 00008160 20 20 20 20 20 61 31 2c 20 5b 72 67 2c 20 23 48 | a1, [rg, #H| 00008170 65 61 70 44 65 73 63 72 69 70 74 6f 72 5d 0a 0d |eapDescriptor]..| 00008180 20 20 20 20 20 20 20 20 20 20 73 77 69 20 20 20 | swi | 00008190 20 20 20 20 4f 53 5f 48 65 61 70 20 2b 20 58 4f | OS_Heap + XO| 000081a0 53 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 |S.. mov| 000081b0 20 20 20 20 20 20 20 61 31 2c 20 61 32 2c 20 6c | a1, a2, l| 000081c0 73 72 20 23 32 0a 0d 20 20 20 20 20 20 20 20 20 |sr #2.. | 000081d0 20 6d 6f 76 76 63 20 20 20 20 20 72 30 2c 20 23 | movvc r0, #| 000081e0 30 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 76 6e |0.. mvn| 000081f0 76 73 20 20 20 20 20 72 30 2c 20 23 30 0a 0d 20 |vs r0, #0.. | 00008200 20 20 20 20 20 20 20 20 20 73 74 72 20 20 20 20 | str | 00008210 20 20 20 72 30 2c 20 5b 20 72 67 2c 20 23 52 65 | r0, [ rg, #Re| 00008220 73 75 6c 74 32 20 5d 0a 0d 20 20 20 20 20 20 20 |sult2 ].. | 00008230 20 20 20 6d 6f 76 76 63 20 20 20 20 20 70 63 2c | movvc pc,| 00008240 20 6c 72 20 20 20 20 20 20 20 20 20 20 20 20 20 | lr | 00008250 20 20 3b 20 65 72 72 6f 72 20 72 65 74 75 72 6e | ; error return| 00008260 20 6e 6f 77 20 69 66 20 52 65 73 75 6c 74 32 0a | now if Result2.| 00008270 0d 20 20 20 20 20 20 20 20 20 20 41 44 52 20 20 |. ADR | 00008280 20 20 20 20 20 61 31 2c 20 47 76 0a 0d 20 20 20 | a1, Gv.. | 00008290 20 20 20 20 20 20 20 62 20 20 20 20 20 20 20 20 | b | 000082a0 20 46 61 75 6c 74 73 0a 0d 47 76 3a 20 20 20 20 | Faults..Gv: | 000082b0 20 20 20 2e 61 73 63 69 63 20 20 20 20 22 48 65 | .ascic "He| 000082c0 61 70 20 66 61 75 6c 74 22 0a 0d 20 20 20 20 20 |ap fault".. | 000082d0 20 20 20 20 20 2e 61 6c 69 67 6e 0a 0d 20 20 20 | .align.. | 000082e0 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 | .long | 000082f0 20 2d 31 0a 0d 20 20 20 20 20 20 20 20 20 20 2e | -1.. .| 00008300 61 73 63 69 63 20 20 20 20 20 22 4d 61 78 56 65 |ascic "MaxVe| 00008310 63 74 22 0a 0d 4d 61 78 56 65 63 3a 20 20 20 6d |ct"..MaxVec: m| 00008320 6f 76 20 20 20 20 20 20 20 72 30 2c 20 23 31 0a |ov r0, #1.| 00008330 0d 20 20 20 20 20 20 20 20 20 20 62 20 20 20 20 |. b | 00008340 20 20 20 20 20 43 6f 6d 76 65 63 0a 0d 20 20 20 | Comvec.. | 00008350 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 | .long | 00008360 20 2d 31 0a 0d 20 20 20 20 20 20 20 20 20 20 2e | -1.. .| 00008370 61 73 63 69 63 20 20 20 20 22 46 72 65 65 56 65 |ascic "FreeVe| 00008380 63 22 0a 0d 46 72 65 65 56 65 63 3a 20 20 63 6d |c"..FreeVec: cm| 00008390 70 20 20 20 20 20 20 20 61 31 2c 20 23 30 0a 0d |p a1, #0..| 000083a0 20 20 20 20 20 20 20 20 20 20 6d 6f 76 65 71 20 | moveq | 000083b0 20 20 20 20 70 63 2c 20 6c 72 20 20 20 20 20 20 | pc, lr | 000083c0 20 20 20 20 20 20 20 20 3b 20 72 65 74 75 72 6e | ; return| 000083d0 20 69 66 20 30 0a 0d 20 20 20 20 20 20 20 20 20 | if 0.. | 000083e0 20 6d 6f 76 20 20 20 20 20 20 20 72 30 2c 20 23 | mov r0, #| 000083f0 33 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 |3.. mov| 00008400 20 20 20 20 20 20 20 61 32 2c 20 61 31 2c 20 6c | a2, a1, l| 00008410 73 6c 20 23 32 0a 0d 20 20 20 20 20 20 20 20 20 |sl #2.. | 00008420 20 62 20 20 20 20 20 20 20 20 20 43 6f 6d 76 65 | b Comve| 00008430 63 0a 0d 68 65 78 62 75 66 3a 20 20 20 2e 62 6c |c..hexbuf: .bl| 00008440 6b 62 20 20 20 20 20 39 0a 0d 20 20 20 20 20 20 |kb 9.. | 00008450 20 20 20 20 2e 61 6c 69 67 6e 0a 0d 0a 0d 20 20 | .align.... | 00008460 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 | .long | 00008470 20 20 2d 31 0a 0d 20 20 20 20 20 20 20 20 20 20 | -1.. | 00008480 2e 61 73 63 69 63 20 20 20 20 22 4f 53 46 69 6e |.ascic "OSFin| 00008490 64 20 22 0a 0d 4f 53 46 69 6e 64 3a 20 20 20 6d |d "..OSFind: m| 000084a0 6f 76 73 20 20 20 20 20 20 72 30 2c 20 61 31 0a |ovs r0, a1.| 000084b0 0d 20 20 20 20 20 20 20 20 20 20 62 6e 65 20 20 |. bne | 000084c0 20 20 20 20 20 4f 53 46 4f 70 65 6e 0a 0d 20 20 | OSFOpen.. | 000084d0 20 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 | mov | 000084e0 20 20 61 31 2c 20 61 32 20 20 20 20 20 20 20 20 | a1, a2 | 000084f0 20 20 20 20 20 20 3b 20 68 61 6e 64 6c 65 0a 0d | ; handle..| 00008500 20 20 20 20 20 20 20 20 20 20 73 77 69 20 20 20 | swi | 00008510 20 20 20 20 4f 53 5f 46 69 6e 64 0a 0d 20 20 20 | OS_Find.. | 00008520 20 20 20 20 20 20 20 6d 6f 76 20 20 20 20 20 20 | mov | 00008530 20 61 31 2c 20 72 30 0a 0d 20 20 20 20 20 20 20 | a1, r0.. | 00008540 20 20 20 6d 6f 76 20 20 20 20 20 20 20 70 63 2c | mov pc,| 00008550 20 6c 72 0a 0d 0a 0d 4f 53 46 4f 70 65 6e 3a 20 | lr....OSFOpen: | 00008560 20 63 6d 70 20 20 20 20 20 20 20 61 32 2c 20 23 | cmp a2, #| 00008570 30 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 76 6e |0.. mvn| 00008580 6c 65 20 20 20 20 20 61 34 2c 20 23 30 0a 0d 20 |le a4, #0.. | 00008590 20 20 20 20 20 20 20 20 20 6d 6f 76 6c 74 20 20 | movlt | 000085a0 20 20 20 61 31 2c 20 23 30 0a 0d 20 20 20 20 20 | a1, #0.. | 000085b0 20 20 20 20 20 73 75 62 6c 74 20 20 20 20 20 61 | sublt a| 000085c0 31 2c 20 61 31 2c 20 61 32 0a 0d 20 20 20 20 20 |1, a1, a2.. | 000085d0 20 20 20 20 20 6d 6f 76 67 65 20 20 20 20 20 61 | movge a| 000085e0 31 2c 20 61 32 2c 20 6c 73 6c 20 23 32 0a 0d 20 |1, a2, lsl #2.. | 000085f0 20 20 20 20 20 20 20 20 20 6c 64 72 67 65 62 20 | ldrgeb | 00008600 20 20 20 61 32 2c 20 5b 61 31 5d 2c 20 23 31 20 | a2, [a1], #1 | 00008610 20 20 20 20 20 20 20 3b 20 73 74 72 69 6e 67 20 | ; string | 00008620 62 79 74 65 20 62 61 73 65 2c 20 6c 65 6e 67 74 |byte base, lengt| 00008630 68 0a 0d 20 20 20 20 20 20 20 20 20 20 61 64 64 |h.. add| 00008640 67 65 20 20 20 20 20 61 33 2c 20 61 32 2c 20 61 |ge a3, a2, a| 00008650 31 20 20 20 20 20 20 20 20 20 20 3b 20 73 74 72 |1 ; str| 00008660 69 6e 67 20 62 79 74 65 20 74 65 72 6d 69 6e 61 |ing byte termina| 00008670 74 6f 72 20 70 6f 73 69 74 69 6f 6e 0a 0d 20 20 |tor position.. | 00008680 20 20 20 20 20 20 20 20 6c 64 72 67 65 62 20 20 | ldrgeb | 00008690 20 61 34 2c 20 5b 61 33 5d 0a 0d 20 20 20 20 20 | a4, [a3].. | 000086a0 20 20 20 20 20 6d 6f 76 67 65 20 20 20 20 20 72 | movge r| 000086b0 35 2c 20 23 30 0a 0d 20 20 20 20 20 20 20 20 20 |5, #0.. | 000086c0 20 73 74 72 67 65 62 20 20 20 20 72 35 2c 20 5b | strgeb r5, [| 000086d0 61 33 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 73 |a3].. s| 000086e0 77 69 20 20 20 20 20 20 20 4f 53 5f 46 69 6e 64 |wi OS_Find| 000086f0 2b 58 4f 53 0a 0d 20 20 20 20 20 20 20 20 20 20 |+XOS.. | 00008700 6d 6f 76 76 63 20 20 20 20 20 61 31 2c 20 23 30 |movvc a1, #0| 00008710 0a 0d 20 20 20 20 20 20 20 20 20 20 6d 76 6e 76 |.. mvnv| 00008720 73 20 20 20 20 20 61 31 2c 20 23 30 0a 0d 20 20 |s a1, #0.. | 00008730 20 20 20 20 20 20 20 20 73 74 72 20 20 20 20 20 | str | 00008740 20 20 61 31 2c 20 5b 72 67 2c 20 23 52 65 73 75 | a1, [rg, #Resu| 00008750 6c 74 32 5d 0a 0d 20 20 20 20 20 20 20 20 20 20 |lt2].. | 00008760 63 6d 70 20 20 20 20 20 20 20 61 34 2c 20 23 30 |cmp a4, #0| 00008770 0a 0d 20 20 20 20 20 20 20 20 20 20 73 74 72 67 |.. strg| 00008780 65 62 20 20 20 20 61 34 2c 20 5b 61 33 5d 20 20 |eb a4, [a3] | 00008790 20 20 20 20 20 20 20 20 20 20 3b 20 72 65 73 74 | ; rest| 000087a0 6f 72 65 0a 0d 20 20 20 20 20 20 20 20 20 20 6d |ore.. m| 000087b0 6f 76 20 20 20 20 20 20 20 61 31 2c 20 72 30 0a |ov a1, r0.| 000087c0 0d 20 20 20 20 20 20 20 20 20 20 6d 6f 76 20 20 |. mov | 000087d0 20 20 20 20 20 70 63 2c 20 6c 72 0a 0d 67 6c 6f | pc, lr..glo| 000087e0 62 69 6e 69 74 73 3a 0a 0d 20 20 20 20 20 20 20 |binits:.. | 000087f0 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 31 36 0a | .long 16.| 00008800 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 |. .long| 00008810 20 20 20 20 20 4d 75 6c 64 69 76 20 2d 20 53 74 | Muldiv - St| 00008820 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e |.. .lon| 00008830 67 20 20 20 20 20 33 35 0a 0d 20 20 20 20 20 20 |g 35.. | 00008840 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 53 74 | .long St| 00008850 6f 70 20 2d 20 53 74 0a 0d 20 20 20 20 20 20 20 |op - St.. | 00008860 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 33 37 0a | .long 37.| 00008870 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 |. .long| 00008880 20 20 20 20 20 47 42 79 74 65 73 20 2d 20 53 74 | GBytes - St| 00008890 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e |.. .lon| 000088a0 67 20 20 20 20 20 33 38 0a 0d 20 20 20 20 20 20 |g 38.. | 000088b0 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 50 42 | .long PB| 000088c0 79 74 65 73 20 2d 20 53 74 0a 0d 20 20 20 20 20 |ytes - St.. | 000088d0 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 34 | .long 4| 000088e0 31 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f |1.. .lo| 000088f0 6e 67 20 20 20 20 20 4c 65 76 65 6c 20 20 2d 20 |ng Level - | 00008900 53 74 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c |St.. .l| 00008910 6f 6e 67 20 20 20 20 20 34 32 0a 0d 20 20 20 20 |ong 42.. | 00008920 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 | .long | 00008930 4c 6f 6e 67 4a 75 6d 70 20 2d 20 53 74 0a 0d 20 |LongJump - St.. | 00008940 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 | .long | 00008950 20 20 20 34 38 0a 0d 20 20 20 20 20 20 20 20 20 | 48.. | 00008960 20 2e 6c 6f 6e 67 20 20 20 20 20 43 72 65 61 74 | .long Creat| 00008970 65 43 20 2d 20 53 74 0a 0d 20 20 20 20 20 20 20 |eC - St.. | 00008980 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 34 39 0a | .long 49.| 00008990 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 |. .long| 000089a0 20 20 20 20 20 44 65 6c 65 74 65 43 20 2d 20 53 | DeleteC - S| 000089b0 74 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f |t.. .lo| 000089c0 6e 67 20 20 20 20 20 35 30 0a 0d 20 20 20 20 20 |ng 50.. | 000089d0 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 43 | .long C| 000089e0 61 6c 6c 43 6f 20 2d 20 53 74 0a 0d 20 20 20 20 |allCo - St.. | 000089f0 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 | .long | 00008a00 35 31 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c |51.. .l| 00008a10 6f 6e 67 20 20 20 20 20 52 65 73 75 6d 65 43 20 |ong ResumeC | 00008a20 2d 20 53 74 0a 0d 20 20 20 20 20 20 20 20 20 20 |- St.. | 00008a30 2e 6c 6f 6e 67 20 20 20 20 20 35 32 0a 0d 20 20 |.long 52.. | 00008a40 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 | .long | 00008a50 20 20 43 6f 57 61 69 74 20 2d 20 53 74 0a 0d 20 | CoWait - St.. | 00008a60 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 | .long | 00008a70 20 20 20 35 34 0a 0d 20 20 20 20 20 20 20 20 20 | 54.. | 00008a80 20 2e 6c 6f 6e 67 20 20 20 20 20 47 65 74 56 65 | .long GetVe| 00008a90 63 20 2d 20 53 74 0a 0d 20 20 20 20 20 20 20 20 |c - St.. | 00008aa0 20 20 2e 6c 6f 6e 67 20 20 20 20 20 35 35 0a 0d | .long 55..| 00008ab0 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 | .long | 00008ac0 20 20 20 20 46 72 65 65 56 65 63 20 2d 20 53 74 | FreeVec - St| 00008ad0 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e |.. .lon| 00008ae0 67 20 20 20 20 20 35 36 0a 0d 20 20 20 20 20 20 |g 56.. | 00008af0 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 4d 61 | .long Ma| 00008b00 78 56 65 63 20 2d 20 53 74 0a 0d 20 20 20 20 20 |xVec - St.. | 00008b10 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 39 | .long 9| 00008b20 36 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f |6.. .lo| 00008b30 6e 67 20 20 20 20 20 4f 53 41 72 67 73 20 2d 20 |ng OSArgs - | 00008b40 53 74 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c |St.. .l| 00008b50 6f 6e 67 20 20 20 20 20 39 37 0a 0d 20 20 20 20 |ong 97.. | 00008b60 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 | .long | 00008b70 4f 53 42 47 65 74 20 2d 20 53 74 0a 0d 20 20 20 |OSBGet - St.. | 00008b80 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 | .long | 00008b90 20 39 38 0a 0d 20 20 20 20 20 20 20 20 20 20 2e | 98.. .| 00008ba0 6c 6f 6e 67 20 20 20 20 20 4f 53 42 50 75 74 20 |long OSBPut | 00008bb0 2d 20 53 74 0a 0d 20 20 20 20 20 20 20 20 20 20 |- St.. | 00008bc0 2e 6c 6f 6e 67 20 20 20 20 20 39 39 0a 0d 20 20 |.long 99.. | 00008bd0 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 | .long | 00008be0 20 20 4f 53 46 69 6e 64 20 2d 20 53 74 0a 0d 20 | OSFind - St.. | 00008bf0 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 | .long | 00008c00 20 20 20 31 30 30 0a 0d 20 20 20 20 20 20 20 20 | 100.. | 00008c10 20 20 2e 6c 6f 6e 67 20 20 20 20 20 4f 53 46 69 | .long OSFi| 00008c20 6c 65 20 2d 20 53 74 0a 0d 20 20 20 20 20 20 20 |le - St.. | 00008c30 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 31 30 31 | .long 101| 00008c40 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e |.. .lon| 00008c50 67 20 20 20 20 20 4f 53 43 4c 49 20 2d 20 53 74 |g OSCLI - St| 00008c60 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e |.. .lon| 00008c70 67 20 20 20 20 20 31 30 32 0a 0d 20 20 20 20 20 |g 102.. | 00008c80 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 4f | .long O| 00008c90 53 57 72 43 68 20 2d 20 53 74 0a 0d 20 20 20 20 |SWrCh - St.. | 00008ca0 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 | .long | 00008cb0 31 30 33 0a 0d 20 20 20 20 20 20 20 20 20 20 2e |103.. .| 00008cc0 6c 6f 6e 67 20 20 20 20 20 4f 53 52 64 43 68 20 |long OSRdCh | 00008cd0 2d 20 53 74 0a 0d 20 20 20 20 20 20 20 20 20 20 |- St.. | 00008ce0 2e 6c 6f 6e 67 20 20 20 20 20 31 30 34 0a 0d 20 |.long 104.. | 00008cf0 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 | .long | 00008d00 20 20 20 4f 53 42 79 74 65 20 2d 20 53 74 0a 0d | OSByte - St..| 00008d10 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 | .long | 00008d20 20 20 20 20 31 30 35 0a 0d 20 20 20 20 20 20 20 | 105.. | 00008d30 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 4f 53 57 | .long OSW| 00008d40 6f 72 64 20 2d 20 53 74 0a 0d 20 20 20 20 20 20 |ord - St.. | 00008d50 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 31 30 | .long 10| 00008d60 36 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f |6.. .lo| 00008d70 6e 67 20 20 20 20 20 54 4b 52 45 72 72 20 2d 20 |ng TKRErr - | 00008d80 53 74 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c |St.. .l| 00008d90 6f 6e 67 20 20 20 20 20 31 33 35 0a 0d 20 20 20 |ong 135.. | 00008da0 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 | .long | 00008db0 20 52 65 73 65 74 45 6e 76 20 2d 20 53 74 0a 0d | ResetEnv - St..| 00008dc0 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 | .long | 00008dd0 20 20 20 20 31 33 36 0a 0d 20 20 20 20 20 20 20 | 136.. | 00008de0 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 4d 6f 76 | .long Mov| 00008df0 65 20 2d 20 53 74 0a 0d 20 20 20 20 20 20 20 20 |e - St.. | 00008e00 20 20 2e 6c 6f 6e 67 20 20 20 20 20 31 33 37 0a | .long 137.| 00008e10 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 |. .long| 00008e20 20 20 20 20 20 42 61 63 6b 4d 6f 76 20 2d 20 53 | BackMov - S| 00008e30 74 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f |t.. .lo| 00008e40 6e 67 20 20 20 20 20 31 33 38 0a 0d 20 20 20 20 |ng 138.. | 00008e50 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 | .long | 00008e60 4d 6f 76 65 62 79 74 65 20 2d 20 53 74 0a 0d 20 |Movebyte - St.. | 00008e70 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 | .long | 00008e80 20 20 20 31 33 39 0a 0d 20 20 20 20 20 20 20 20 | 139.. | 00008e90 20 20 2e 6c 6f 6e 67 20 20 20 20 20 42 61 63 6b | .long Back| 00008ea0 6d 76 62 79 20 2d 20 53 74 0a 0d 20 20 20 20 20 |mvby - St.. | 00008eb0 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 31 | .long 1| 00008ec0 34 30 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c |40.. .l| 00008ed0 6f 6e 67 20 20 20 20 20 4d 6f 76 65 57 6f 20 2d |ong MoveWo -| 00008ee0 20 53 74 0a 0d 20 20 20 20 20 20 20 20 20 20 2e | St.. .| 00008ef0 6c 6f 6e 67 20 20 20 20 20 31 34 31 0a 0d 20 20 |long 141.. | 00008f00 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 | .long | 00008f10 20 20 46 69 6c 6c 57 6f 20 2d 20 53 74 0a 0d 20 | FillWo - St.. | 00008f20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 | .long | 00008f30 20 20 20 53 74 61 63 6b 62 61 73 65 0a 0d 20 20 | Stackbase.. | 00008f40 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 | .long | 00008f50 20 20 46 69 6c 6c 57 6f 20 2d 20 53 74 0a 0d 20 | FillWo - St.. | 00008f60 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 | .long | 00008f70 20 20 20 31 35 30 0a 0d 20 20 20 20 20 20 20 20 | 150.. | 00008f80 20 20 2e 6c 6f 6e 67 20 20 20 20 20 30 0a 0d 20 | .long 0.. | 00008f90 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 | .long | 00008fa0 20 20 20 30 78 31 32 33 34 35 36 37 38 0a 0d 20 | 0x12345678.. | 00008fb0 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 | .long | 00008fc0 20 20 20 67 6c 6f 62 69 6e 69 74 73 20 20 20 20 | globinits | 00008fd0 20 20 20 20 20 20 20 3b 20 6e 6f 74 20 2b 34 20 | ; not +4 | 00008fe0 62 65 63 61 75 73 65 20 62 20 69 6e 73 74 72 20 |because b instr | 00008ff0 61 74 20 68 65 61 64 0a 0d 20 20 20 20 20 20 20 |at head.. | 00009000 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 67 6c 6f | .long glo| 00009010 62 69 6e 69 74 73 2b 38 0a 0d 20 20 20 20 20 20 |binits+8.. | 00009020 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 67 6c | .long gl| 00009030 6f 62 69 6e 69 74 73 2b 31 36 0a 0d 20 20 20 20 |obinits+16.. | 00009040 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 | .long | 00009050 67 6c 6f 62 69 6e 69 74 73 2b 32 34 0a 0d 20 20 |globinits+24.. | 00009060 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 | .long | 00009070 20 20 67 6c 6f 62 69 6e 69 74 73 2b 33 32 0a 0d | globinits+32..| 00009080 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 | .long | 00009090 20 20 20 20 67 6c 6f 62 69 6e 69 74 73 2b 34 30 | globinits+40| 000090a0 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e |.. .lon| 000090b0 67 20 20 20 20 20 67 6c 6f 62 69 6e 69 74 73 2b |g globinits+| 000090c0 34 38 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c |48.. .l| 000090d0 6f 6e 67 20 20 20 20 20 67 6c 6f 62 69 6e 69 74 |ong globinit| 000090e0 73 2b 35 36 0a 0d 20 20 20 20 20 20 20 20 20 20 |s+56.. | 000090f0 2e 6c 6f 6e 67 20 20 20 20 20 67 6c 6f 62 69 6e |.long globin| 00009100 69 74 73 2b 36 34 0a 0d 20 20 20 20 20 20 20 20 |its+64.. | 00009110 20 20 2e 6c 6f 6e 67 20 20 20 20 20 67 6c 6f 62 | .long glob| 00009120 69 6e 69 74 73 2b 37 32 0a 0d 20 20 20 20 20 20 |inits+72.. | 00009130 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 67 6c | .long gl| 00009140 6f 62 69 6e 69 74 73 2b 38 30 0a 0d 20 20 20 20 |obinits+80.. | 00009150 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 | .long | 00009160 67 6c 6f 62 69 6e 69 74 73 2b 38 38 0a 0d 20 20 |globinits+88.. | 00009170 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 | .long | 00009180 20 20 67 6c 6f 62 69 6e 69 74 73 2b 39 36 0a 0d | globinits+96..| 00009190 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 | .long | 000091a0 20 20 20 20 67 6c 6f 62 69 6e 69 74 73 2b 31 30 | globinits+10| 000091b0 34 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f |4.. .lo| 000091c0 6e 67 20 20 20 20 20 67 6c 6f 62 69 6e 69 74 73 |ng globinits| 000091d0 2b 31 31 32 0a 0d 20 20 20 20 20 20 20 20 20 20 |+112.. | 000091e0 2e 6c 6f 6e 67 20 20 20 20 20 67 6c 6f 62 69 6e |.long globin| 000091f0 69 74 73 2b 31 32 30 0a 0d 20 20 20 20 20 20 20 |its+120.. | 00009200 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 67 6c 6f | .long glo| 00009210 62 69 6e 69 74 73 2b 31 32 38 0a 0d 20 20 20 20 |binits+128.. | 00009220 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 | .long | 00009230 67 6c 6f 62 69 6e 69 74 73 2b 31 33 36 0a 0d 20 |globinits+136.. | 00009240 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 | .long | 00009250 20 20 20 67 6c 6f 62 69 6e 69 74 73 2b 31 34 34 | globinits+144| 00009260 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e |.. .lon| 00009270 67 20 20 20 20 20 67 6c 6f 62 69 6e 69 74 73 2b |g globinits+| 00009280 31 35 32 0a 0d 20 20 20 20 20 20 20 20 20 20 2e |152.. .| 00009290 6c 6f 6e 67 20 20 20 20 20 67 6c 6f 62 69 6e 69 |long globini| 000092a0 74 73 2b 31 36 30 0a 0d 20 20 20 20 20 20 20 20 |ts+160.. | 000092b0 20 20 2e 6c 6f 6e 67 20 20 20 20 20 67 6c 6f 62 | .long glob| 000092c0 69 6e 69 74 73 2b 31 36 38 0a 0d 20 20 20 20 20 |inits+168.. | 000092d0 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 67 | .long g| 000092e0 6c 6f 62 69 6e 69 74 73 2b 31 37 36 0a 0d 20 20 |lobinits+176.. | 000092f0 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 | .long | 00009300 20 20 67 6c 6f 62 69 6e 69 74 73 2b 31 38 34 0a | globinits+184.| 00009310 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 |. .long| 00009320 20 20 20 20 20 67 6c 6f 62 69 6e 69 74 73 2b 31 | globinits+1| 00009330 39 32 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c |92.. .l| 00009340 6f 6e 67 20 20 20 20 20 67 6c 6f 62 69 6e 69 74 |ong globinit| 00009350 73 2b 32 30 30 0a 0d 20 20 20 20 20 20 20 20 20 |s+200.. | 00009360 20 2e 6c 6f 6e 67 20 20 20 20 20 67 6c 6f 62 69 | .long globi| 00009370 6e 69 74 73 2b 32 30 38 0a 0d 20 20 20 20 20 20 |nits+208.. | 00009380 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 67 6c | .long gl| 00009390 6f 62 69 6e 69 74 73 2b 32 31 36 0a 0d 20 20 20 |obinits+216.. | 000093a0 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 | .long | 000093b0 20 67 6c 6f 62 69 6e 69 74 73 2b 32 32 34 0a 0d | globinits+224..| 000093c0 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 | .long | 000093d0 20 20 20 20 67 6c 6f 62 69 6e 69 74 73 2b 32 33 | globinits+23| 000093e0 32 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f |2.. .lo| 000093f0 6e 67 20 20 20 20 20 67 6c 6f 62 69 6e 69 74 73 |ng globinits| 00009400 2b 32 34 30 0a 0d 20 20 20 20 20 20 20 20 20 20 |+240.. | 00009410 2e 6c 6f 6e 67 20 20 20 20 20 67 6c 6f 62 69 6e |.long globin| 00009420 69 74 73 2b 32 34 38 0a 0d 20 20 20 20 20 20 20 |its+248.. | 00009430 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 52 67 62 | .long Rgb| 00009440 76 61 6c 2d 34 0a 0d 20 20 20 20 20 20 20 20 20 |val-4.. | 00009450 20 2e 6c 6f 6e 67 20 20 20 20 20 55 49 6e 73 74 | .long UInst| 00009460 72 2d 34 0a 0d 20 20 20 20 20 20 20 20 20 20 2e |r-4.. .| 00009470 6c 6f 6e 67 20 20 20 20 20 50 72 65 66 61 62 2d |long Prefab-| 00009480 34 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f |4.. .lo| 00009490 6e 67 20 20 20 20 20 44 61 74 61 62 2d 34 0a 0d |ng Datab-4..| 000094a0 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 | .long | 000094b0 20 20 20 20 41 64 64 65 78 70 2d 34 0a 0d 20 20 | Addexp-4.. | 000094c0 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 | .long | 000094d0 20 20 45 72 72 6f 72 48 2d 34 0a 0d 20 20 20 20 | ErrorH-4.. | 000094e0 20 20 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 | .long | 000094f0 45 72 72 6f 72 48 2b 34 0a 0d 20 20 20 20 20 20 |ErrorH+4.. | 00009500 20 20 20 20 2e 6c 6f 6e 67 20 20 20 20 20 43 61 | .long Ca| 00009510 6c 6c 42 48 2d 34 0a 0d 20 20 20 20 20 20 20 20 |llBH-4.. | 00009520 20 20 2e 6c 6f 6e 67 20 20 20 20 20 43 61 6c 6c | .long Call| 00009530 42 48 2b 34 0a 0d 20 20 20 20 20 20 20 20 20 20 |BH+4.. | 00009540 2e 6c 6f 6e 67 20 20 20 20 20 45 76 65 6e 74 48 |.long EventH| 00009550 2d 34 0a 0d 20 20 20 20 20 20 20 20 20 20 2e 6c |-4.. .l| 00009560 6f 6e 67 20 20 20 20 20 45 78 69 74 48 2d 34 0a |ong ExitH-4.| 00009570 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 |. .long| 00009580 20 20 20 20 20 45 78 63 65 70 52 65 67 2d 34 0a | ExcepReg-4.| 00009590 0d 20 20 20 20 20 20 20 20 20 20 2e 6c 6f 6e 67 |. .long| 000095a0 20 20 20 20 20 30 78 38 37 36 35 34 33 32 31 0a | 0x87654321.| 000095b0 0d |.| 000095b1