home *** CD-ROM | disk | FTP | other *** search
Unknown | 1990-09-30 | 16.0 KB |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was not able to be converted.
This format is not currently supported by dexvert.
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| file
| data
| default
| |
100%
| xdgMime
| image/x-tga
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0d 00 0a 11 f4 20 3e 43 | 6f 6d 70 6c 65 74 69 6f |..... >C|ompletio|
|00000010| 6e 0d 00 14 3c f4 20 46 | 69 6c 65 6e 61 6d 65 20 |n...<. F|ilename |
|00000020| 63 6f 6d 70 6c 65 74 69 | 6f 6e 20 72 6f 75 74 69 |completi|on routi|
|00000030| 6e 65 73 20 28 43 29 20 | 52 69 63 68 61 72 64 20 |nes (C) |Richard |
|00000040| 4b 2e 20 4c 6c 6f 79 64 | 20 31 39 39 30 0d 00 1e |K. Lloyd| 1990...|
|00000050| 2f f4 20 28 55 73 65 64 | 20 61 73 20 70 61 72 74 |/. (Used| as part|
|00000060| 20 6f 66 20 74 68 65 20 | 4c 69 6e 65 20 45 64 69 | of the |Line Edi|
|00000070| 74 6f 72 20 70 72 6f 67 | 72 61 6d 29 0d 00 28 04 |tor prog|ram)..(.|
|00000080| 0d 00 32 45 f4 20 49 6e | 63 6c 75 64 65 20 74 68 |..2E. In|clude th|
|00000090| 69 73 20 66 69 6c 65 20 | 77 69 74 68 20 61 20 4c |is file |with a L|
|000000a0| 49 42 52 41 52 59 22 43 | 6f 6d 70 6c 65 74 69 6f |IBRARY"C|ompletio|
|000000b0| 6e 22 20 73 74 61 74 65 | 6d 65 6e 74 20 69 6e 20 |n" state|ment in |
|000000c0| 42 41 53 49 43 0d 00 3c | 3d f4 20 61 6e 64 20 74 |BASIC..<|=. and t|
|000000d0| 68 65 6e 20 70 75 74 20 | 61 20 63 61 6c 6c 20 74 |hen put |a call t|
|000000e0| 6f 20 46 4e 63 6f 6d 70 | 6c 65 74 69 6f 6e 20 69 |o FNcomp|letion i|
|000000f0| 6e 73 69 64 65 20 74 68 | 65 20 61 73 73 65 6d 62 |nside th|e assemb|
|00000100| 6c 79 0d 00 46 04 0d 00 | 50 2d f4 20 47 65 6e 65 |ly..F...|P-. Gene|
|00000110| 72 61 6c 20 63 61 6c 6c | 73 20 73 75 70 70 6f 72 |ral call|s suppor|
|00000120| 74 65 64 20 61 72 65 20 | 61 73 20 66 6f 6c 6c 6f |ted are |as follo|
|00000130| 77 73 3a 0d 00 5a 46 f4 | 20 42 4c 20 69 6e 69 74 |ws:..ZF.| BL init|
|00000140| 5f 63 6f 6d 70 6c 65 74 | 65 3a 20 50 75 74 20 74 |_complet|e: Put t|
|00000150| 68 69 73 20 69 6e 20 79 | 6f 75 72 20 6d 6f 64 75 |his in y|our modu|
|00000160| 6c 65 20 69 6e 69 74 69 | 61 6c 69 73 61 74 69 6f |le initi|alisatio|
|00000170| 6e 20 72 6f 75 74 69 6e | 65 0d 00 64 44 f4 20 42 |n routin|e..dD. B|
|00000180| 4c 20 65 78 69 74 5f 63 | 6f 6d 70 6c 65 74 65 3a |L exit_c|omplete:|
|00000190| 20 50 75 74 20 74 68 69 | 73 20 69 6e 20 79 6f 75 | Put thi|s in you|
|000001a0| 72 20 6d 6f 64 75 6c 65 | 20 66 69 6e 61 6c 69 73 |r module| finalis|
|000001b0| 61 74 69 6f 6e 20 72 6f | 75 74 69 6e 65 0d 00 6e |ation ro|utine..n|
|000001c0| 42 f4 20 42 4c 20 63 68 | 65 63 6b 66 6f 72 67 6f |B. BL ch|eckforgo|
|000001d0| 73 3a 20 20 20 43 61 6c | 6c 20 74 68 69 73 20 65 |s: Cal|l this e|
|000001e0| 61 63 68 20 74 69 6d 65 | 20 61 20 66 72 65 73 68 |ach time| a fresh|
|000001f0| 20 6c 69 6e 65 20 69 73 | 20 65 64 69 74 65 64 0d | line is| edited.|
|00000200| 00 78 37 f4 20 20 20 20 | 20 20 20 20 20 20 20 20 |.x7. | |
|00000210| 20 20 20 20 20 20 20 28 | 74 61 6b 65 73 20 52 30 | (|takes R0|
|00000220| 20 61 6e 64 20 52 31 20 | 61 73 20 70 61 72 61 6d | and R1 |as param|
|00000230| 65 74 65 72 73 29 0d 00 | 82 43 f4 20 42 4c 20 63 |eters)..|.C. BL c|
|00000240| 6f 6d 70 6c 65 74 65 5f | 6e 61 6d 65 3a 20 43 61 |omplete_|name: Ca|
|00000250| 6c 6c 20 77 69 74 68 20 | 52 30 2d 52 32 20 73 65 |ll with |R0-R2 se|
|00000260| 74 20 63 6f 72 72 65 63 | 74 6c 79 20 28 73 65 65 |t correc|tly (see|
|00000270| 20 72 6f 75 74 69 6e 65 | 29 0d 00 8c 42 f4 20 20 | routine|)...B. |
|00000280| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000290| 20 49 4d 50 4f 52 54 41 | 4e 54 3a 20 43 68 65 63 | IMPORTA|NT: Chec|
|000002a0| 6b 20 6e 6f 74 69 63 65 | 20 61 62 6f 75 74 20 72 |k notice| about r|
|000002b0| 69 67 68 74 20 61 72 72 | 6f 77 73 0d 00 96 46 f4 |ight arr|ows...F.|
|000002c0| 20 46 75 72 74 68 65 72 | 20 69 6e 66 6f 20 61 62 | Further| info ab|
|000002d0| 6f 75 74 20 74 68 65 73 | 65 20 63 61 6c 6c 73 20 |out thes|e calls |
|000002e0| 63 61 6e 20 62 65 20 66 | 6f 75 6e 64 20 69 6e 20 |can be f|ound in |
|000002f0| 74 68 65 20 64 6f 63 75 | 6d 65 6e 74 61 74 69 6f |the docu|mentatio|
|00000300| 6e 0d 00 a0 04 0d 00 aa | 10 dd a4 63 6f 6d 70 6c |n.......|...compl|
|00000310| 65 74 69 6f 6e 0d 00 b4 | 04 0d 00 be 2f 6d 61 78 |etion...|..../max|
|00000320| 65 6e 74 73 25 3d 37 37 | 3a f4 20 4d 61 78 69 6d |ents%=77|:. Maxim|
|00000330| 75 6d 20 65 6e 74 72 69 | 65 73 20 70 65 72 20 64 |um entri|es per d|
|00000340| 69 72 65 63 74 6f 72 79 | 0d 00 c8 28 6d 61 78 70 |irectory|...(maxp|
|00000350| 61 74 68 6c 65 6e 25 3d | 36 34 3a f4 20 4d 61 78 |athlen%=|64:. Max|
|00000360| 69 6d 75 6d 20 70 61 74 | 68 20 6c 65 6e 67 74 68 |imum pat|h length|
|00000370| 0d 00 d2 41 6d 61 78 6c | 65 6e 25 3d 31 32 3a f4 |...Amaxl|en%=12:.|
|00000380| 20 57 6f 72 64 2d 72 6f | 75 6e 64 65 64 20 6d 61 | Word-ro|unded ma|
|00000390| 78 20 66 69 6c 65 6e 61 | 6d 65 20 6c 65 6e 67 74 |x filena|me lengt|
|000003a0| 68 20 69 6e 63 2e 20 74 | 65 72 6d 69 6e 61 74 6f |h inc. t|erminato|
|000003b0| 72 0d 00 dc 49 62 75 66 | 73 69 7a 65 25 3d 6d 61 |r...Ibuf|size%=ma|
|000003c0| 78 65 6e 74 73 25 2a 6d | 61 78 6c 65 6e 25 3a f4 |xents%*m|axlen%:.|
|000003d0| 20 4d 61 78 20 73 70 61 | 63 65 20 6e 65 65 64 65 | Max spa|ce neede|
|000003e0| 64 20 66 6f 72 20 61 6c | 6c 20 66 69 6c 65 6e 61 |d for al|l filena|
|000003f0| 6d 65 73 20 69 6e 20 64 | 69 72 0d 00 e6 40 73 77 |mes in d|ir...@sw|
|00000400| 69 3d 31 32 3a f4 20 52 | 31 32 20 69 73 20 75 73 |i=12:. R|12 is us|
|00000410| 65 64 20 61 73 20 74 68 | 65 20 72 65 67 69 73 74 |ed as th|e regist|
|00000420| 65 72 20 66 6f 72 20 69 | 6e 74 65 72 72 75 70 74 |er for i|nterrupt|
|00000430| 20 53 57 49 20 63 61 6c | 6c 73 0d 00 f0 2e 53 56 | SWI cal|ls....SV|
|00000440| 43 5f 4d 6f 64 65 3d 33 | 3a f4 20 53 57 49 20 63 |C_Mode=3|:. SWI c|
|00000450| 61 6c 6c 73 20 6a 75 6d | 70 20 69 6e 74 6f 20 74 |alls jum|p into t|
|00000460| 68 69 73 20 6d 6f 64 65 | 0d 00 fa 36 62 6c 24 3d |his mode|...6bl$=|
|00000470| bd 28 30 29 3a 63 72 24 | 3d bd 28 31 33 29 3a 63 |.(0):cr$|=.(13):c|
|00000480| 72 6c 66 24 3d 63 72 24 | 2b bd 28 31 30 29 3a 74 |rlf$=cr$|+.(10):t|
|00000490| 65 72 6d 24 3d 63 72 6c | 66 24 2b 62 6c 24 0d 01 |erm$=crl|f$+bl$..|
|000004a0| 04 04 0d 01 0e 0b 5b 4f | 50 54 20 41 25 0d 01 18 |......[O|PT A%...|
|000004b0| 04 0d 01 22 2c 2e 69 6e | 69 74 5f 63 6f 6d 70 6c |...",.in|it_compl|
|000004c0| 65 74 65 20 20 53 54 4d | 46 44 20 20 20 52 31 33 |ete STM|FD R13|
|000004d0| 21 2c 7b 52 30 2d 52 33 | 2c 52 31 34 7d 0d 01 2c |!,{R0-R3|,R14}..,|
|000004e0| 21 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |! | |
|000004f0| 20 4d 4f 56 20 20 20 20 | 20 52 30 2c 23 36 0d 01 | MOV | R0,#6..|
|00000500| 36 27 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |6' | |
|00000510| 20 20 4c 44 52 20 20 20 | 20 20 52 33 2c 67 62 70 | LDR | R3,gbp|
|00000520| 62 73 69 7a 65 0d 01 40 | 28 20 20 20 20 20 20 20 |bsize..@|( |
|00000530| 20 20 20 20 20 20 20 20 | 20 53 57 49 20 20 20 20 | | SWI |
|00000540| 20 22 58 4f 53 5f 4d 6f | 64 75 6c 65 22 0d 01 4a | "XOS_Mo|dule"..J|
|00000550| 28 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |( | |
|00000560| 20 42 56 43 20 20 20 20 | 20 73 74 6f 72 65 70 6f | BVC | storepo|
|00000570| 69 6e 74 65 72 0d 01 54 | 28 20 20 20 20 20 20 20 |inter..T|( |
|00000580| 20 20 20 20 20 20 20 20 | 20 53 57 49 20 20 20 20 | | SWI |
|00000590| 20 22 58 4f 53 5f 57 72 | 69 74 65 53 22 0d 01 5e | "XOS_Wr|iteS"..^|
|000005a0| 5c 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |\ | |
|000005b0| 20 45 51 55 53 20 20 20 | 20 22 57 41 52 4e 49 4e | EQUS | "WARNIN|
|000005c0| 47 3a 20 46 69 6c 65 6e | 61 6d 65 20 63 6f 6d 70 |G: Filen|ame comp|
|000005d0| 6c 65 74 69 6f 6e 20 64 | 69 73 61 62 6c 65 64 20 |letion d|isabled |
|000005e0| 64 75 65 20 74 6f 20 6c | 61 63 6b 20 6f 66 20 52 |due to l|ack of R|
|000005f0| 4d 41 22 2b 74 65 72 6d | 24 0d 01 68 19 20 20 20 |MA"+term|$..h. |
|00000600| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 41 4c 49 | | ALI|
|00000610| 47 4e 0d 01 72 21 20 20 | 20 20 20 20 20 20 20 20 |GN..r! | |
|00000620| 20 20 20 20 20 20 4d 4f | 56 20 20 20 20 20 52 32 | MO|V R2|
|00000630| 2c 23 30 0d 01 7c 29 2e | 73 74 6f 72 65 70 6f 69 |,#0..|).|storepoi|
|00000640| 6e 74 65 72 20 20 20 53 | 54 52 20 20 20 20 20 52 |nter S|TR R|
|00000650| 32 2c 67 62 70 62 62 75 | 66 66 65 72 0d 01 86 2b |2,gbpbbu|ffer...+|
|00000660| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000670| 4c 44 4d 46 44 20 20 20 | 52 31 33 21 2c 7b 52 30 |LDMFD |R13!,{R0|
|00000680| 2d 52 33 2c 50 43 7d 0d | 01 90 04 0d 01 9a 30 2e |-R3,PC}.|......0.|
|00000690| 65 78 69 74 5f 63 6f 6d | 70 6c 65 74 65 20 20 53 |exit_com|plete S|
|000006a0| 54 4d 46 44 20 20 20 52 | 31 33 21 2c 7b 52 30 2c |TMFD R|13!,{R0,|
|000006b0| 52 32 2c 73 77 69 2c 52 | 31 34 7d 0d 01 a4 29 20 |R2,swi,R|14}...) |
|000006c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 4c | | L|
|000006d0| 44 52 20 20 20 20 20 52 | 32 2c 67 62 70 62 62 75 |DR R|2,gbpbbu|
|000006e0| 66 66 65 72 0d 01 ae 21 | 20 20 20 20 20 20 20 20 |ffer...!| |
|000006f0| 20 20 20 20 20 20 20 20 | 4d 4f 56 53 20 20 20 20 | |MOVS |
|00000700| 52 32 2c 52 32 0d 01 af | 26 20 20 20 20 20 20 20 |R2,R2...|& |
|00000710| 20 20 20 20 20 20 20 20 | 20 42 45 51 20 20 20 20 | | BEQ |
|00000720| 20 6e 6f 74 61 62 63 6c | 61 69 6d 0d 01 b8 21 20 | notabcl|aim...! |
|00000730| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 4d | | M|
|00000740| 4f 56 20 20 20 20 20 52 | 30 2c 23 30 0d 01 c2 29 |OV R|0,#0...)|
|00000750| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000760| 53 54 52 20 20 20 20 20 | 52 30 2c 67 62 70 62 62 |STR |R0,gbpbb|
|00000770| 75 66 66 65 72 0d 01 cc | 21 20 20 20 20 20 20 20 |uffer...|! |
|00000780| 20 20 20 20 20 20 20 20 | 20 4d 4f 56 20 20 20 20 | | MOV |
|00000790| 20 52 30 2c 23 37 0d 01 | d6 28 20 20 20 20 20 20 | R0,#7..|.( |
|000007a0| 20 20 20 20 20 20 20 20 | 20 20 a4 73 77 69 20 20 | | .swi |
|000007b0| 20 28 22 4f 53 5f 4d 6f | 64 75 6c 65 22 29 0d 01 | ("OS_Mo|dule")..|
|000007c0| e0 2f 2e 6e 6f 74 61 62 | 63 6c 61 69 6d 20 20 20 |./.notab|claim |
|000007d0| 20 20 4c 44 4d 46 44 20 | 20 20 52 31 33 21 2c 7b | LDMFD | R13!,{|
|000007e0| 52 30 2c 52 32 2c 73 77 | 69 2c 50 43 7d 0d 01 ea |R0,R2,sw|i,PC}...|
|000007f0| 04 0d 01 f4 10 2e 63 68 | 65 63 6b 66 6f 72 67 6f |......ch|eckforgo|
|00000800| 73 0d 01 fe 42 3b 20 4f | 6e 20 65 6e 74 72 79 2c |s...B; O|n entry,|
|00000810| 20 20 20 20 20 52 30 20 | 20 20 20 20 20 3d 20 42 | R0 | = B|
|00000820| 75 66 66 65 72 20 66 6f | 72 20 4f 53 5f 52 65 61 |uffer fo|r OS_Rea|
|00000830| 64 4c 69 6e 65 20 28 6f | 72 20 79 6f 75 72 20 6f |dLine (o|r your o|
|00000840| 77 6e 29 0d 02 08 34 3b | 20 20 20 20 20 20 20 20 |wn)...4;| |
|00000850| 20 20 20 20 20 20 20 52 | 31 20 20 20 20 20 20 3d | R|1 =|
|00000860| 20 4d 61 78 69 6d 75 6d | 20 6c 65 6e 67 74 68 20 | Maximum| length |
|00000870| 6f 66 20 6c 69 6e 65 0d | 02 12 4e 3b 20 4f 6e 20 |of line.|..N; On |
|00000880| 65 78 69 74 2c 20 20 20 | 20 20 20 52 31 20 20 20 |exit, | R1 |
|00000890| 20 20 20 3d 20 4e 65 77 | 20 6d 61 78 69 6d 75 6d | = New| maximum|
|000008a0| 20 6c 65 6e 67 74 68 20 | 6f 66 20 6c 69 6e 65 20 | length |of line |
|000008b0| 28 61 6c 73 6f 20 69 6e | 20 27 6d 61 78 6c 65 6e |(also in| 'maxlen|
|000008c0| 67 74 68 27 29 0d 02 1c | 2c 20 20 20 20 20 20 20 |gth')...|, |
|000008d0| 20 20 20 20 20 20 20 20 | 20 53 54 4d 46 44 20 20 | | STMFD |
|000008e0| 20 52 31 33 21 2c 7b 52 | 32 2c 52 33 2c 52 31 34 | R13!,{R|2,R3,R14|
|000008f0| 7d 0d 02 26 47 20 20 20 | 20 20 20 20 20 20 20 20 |}..&G | |
|00000900| 20 20 20 20 20 4c 44 52 | 20 20 20 20 20 52 32 2c | LDR| R2,|
|00000910| 67 6f 73 69 6e 70 75 74 | 20 20 20 20 20 20 20 20 |gosinput| |
|00000920| 20 20 20 20 20 3b 20 2a | 47 4f 53 20 31 2e 32 30 | ; *|GOS 1.20|
|00000930| 20 62 75 67 20 66 69 78 | 0d 02 30 21 20 20 20 20 | bug fix|..0! |
|00000940| 20 20 20 20 20 20 20 20 | 20 20 20 20 43 4d 50 20 | | CMP |
|00000950| 20 20 20 20 52 30 2c 52 | 32 0d 02 3a 23 20 20 20 | R0,R|2..:# |
|00000960| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 43 4d 50 | | CMP|
|00000970| 45 51 20 20 20 52 31 2c | 23 26 45 30 0d 02 44 24 |EQ R1,|#&E0..D$|
|00000980| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000990| 53 55 42 45 51 20 20 20 | 52 31 2c 52 31 2c 23 31 |SUBEQ |R1,R1,#1|
|000009a0| 0d 02 4e 45 20 20 20 20 | 20 20 20 20 20 20 20 20 |..NE | |
|000009b0| 20 20 20 20 ec 51 20 20 | 20 52 33 2c 23 31 20 20 | .Q | R3,#1 |
|000009c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000009d0| 20 3b 20 53 69 67 6e 61 | 6c 20 61 74 20 2a 20 70 | ; Signa|l at * p|
|000009e0| 72 6f 6d 70 74 0d 02 58 | 21 20 20 20 20 20 20 20 |rompt..X|! |
|000009f0| 20 20 20 20 20 20 20 20 | 20 4d 4f 56 4e 45 20 20 | | MOVNE |
|00000a00| 20 52 33 2c 23 30 0d 02 | 62 28 20 20 20 20 20 20 | R3,#0..|b( |
|00000a10| 20 20 20 20 20 20 20 20 | 20 20 53 54 52 20 20 20 | | STR |
|00000a20| 20 20 52 31 2c 6d 61 78 | 6c 65 6e 67 74 68 0d 02 | R1,max|length..|
|00000a30| 6c 47 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |lG | |
|00000a40| 20 20 4c 44 52 20 20 20 | 20 20 52 32 2c 72 69 73 | LDR | R2,ris|
|00000a50| 63 6f 73 69 6e 70 75 74 | 20 20 20 20 20 20 20 20 |cosinput| |
|00000a60| 20 20 3b 20 52 49 53 43 | 4f 53 20 2a 47 6f 73 20 | ; RISC|OS *Gos |
|00000a70| 63 68 65 63 6b 0d 02 76 | 21 20 20 20 20 20 20 20 |check..v|! |
|00000a80| 20 20 20 20 20 20 20 20 | 20 43 4d 50 20 20 20 20 | | CMP |
|00000a90| 20 52 30 2c 52 32 0d 02 | 80 23 20 20 20 20 20 20 | R0,R2..|.# |
|00000aa0| 20 20 20 20 20 20 20 20 | 20 20 43 4d 50 45 51 20 | | CMPEQ |
|00000ab0| 20 20 52 31 2c 23 26 46 | 46 0d 02 8a 45 20 20 20 | R1,#&F|F...E |
|00000ac0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 ec 51 20 | | .Q |
|00000ad0| 20 20 52 33 2c 23 31 20 | 20 20 20 20 20 20 20 20 | R3,#1 | |
|00000ae0| 20 20 20 20 20 20 20 20 | 20 20 3b 20 53 69 67 6e | | ; Sign|
|00000af0| 61 6c 20 61 74 20 2a 20 | 70 72 6f 6d 70 74 0d 02 |al at * |prompt..|
|00000b00| 94 2a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.* | |
|00000b10| 20 20 53 54 52 42 20 20 | 20 20 52 33 2c 61 74 67 | STRB | R3,atg|
|00000b20| 6f 73 70 72 6f 6d 70 74 | 0d 02 9e 2b 20 20 20 20 |osprompt|...+ |
|00000b30| 20 20 20 20 20 20 20 20 | 20 20 20 20 4c 44 4d 46 | | LDMF|
|00000b40| 44 20 20 20 52 31 33 21 | 2c 7b 52 32 2c 52 33 2c |D R13!|,{R2,R3,|
|00000b50| 50 43 7d 0d 02 a8 4c 2e | 67 6f 73 69 6e 70 75 74 |PC}...L.|gosinput|
|00000b60| 20 20 20 20 20 20 20 45 | 51 55 44 20 20 20 20 26 | E|QUD &|
|00000b70| 39 43 38 20 20 20 20 3b | 20 41 64 64 72 20 6f 66 |9C8 ;| Addr of|
|00000b80| 20 41 72 74 68 75 72 20 | 53 75 70 65 72 76 69 73 | Arthur |Supervis|
|00000b90| 6f 72 20 69 6e 70 75 74 | 20 62 75 66 66 65 72 0d |or input| buffer.|
|00000ba0| 02 b2 47 2e 72 69 73 63 | 6f 73 69 6e 70 75 74 20 |..G.risc|osinput |
|00000bb0| 20 20 20 45 51 55 44 20 | 20 20 20 26 37 38 30 20 | EQUD | &780 |
|00000bc0| 20 20 20 3b 20 41 64 64 | 72 20 6f 66 20 52 49 53 | ; Add|r of RIS|
|00000bd0| 43 20 4f 53 20 2a 47 6f | 73 20 69 6e 70 75 74 20 |C OS *Go|s input |
|00000be0| 62 75 66 66 65 72 0d 02 | bc 46 2e 6d 61 78 6c 65 |buffer..|.F.maxle|
|00000bf0| 6e 67 74 68 20 20 20 20 | 20 20 45 51 55 44 20 20 |ngth | EQUD |
|00000c00| 20 20 30 20 20 20 20 20 | 20 20 3b 20 4d 61 78 69 | 0 | ; Maxi|
|00000c10| 6d 75 6d 20 6c 65 6e 67 | 74 68 20 6f 66 20 6c 69 |mum leng|th of li|
|00000c20| 6e 65 20 69 6e 20 62 75 | 66 66 65 72 0d 02 c6 04 |ne in bu|ffer....|
|00000c30| 0d 02 d0 0c 2e 6f 75 74 | 63 68 61 72 0d 02 da 34 |.....out|char...4|
|00000c40| 3b 20 4f 6e 20 65 6e 74 | 72 79 2c 20 20 20 20 20 |; On ent|ry, |
|00000c50| 52 30 20 20 20 20 20 20 | 3d 20 97 49 49 20 63 68 |R0 |= .II ch|
|00000c60| 61 72 20 74 6f 20 62 65 | 20 70 72 69 6e 74 65 64 |ar to be| printed|
|00000c70| 0d 02 e4 26 20 20 20 20 | 20 20 20 20 20 20 20 20 |...& | |
|00000c80| 20 20 20 20 53 54 4d 46 | 44 20 20 20 52 31 33 21 | STMF|D R13!|
|00000c90| 2c 7b 52 31 34 7d 0d 02 | ee 28 20 20 20 20 20 20 |,{R14}..|.( |
|00000ca0| 20 20 20 20 20 20 20 20 | 20 20 a4 73 77 69 20 20 | | .swi |
|00000cb0| 20 28 22 4f 53 5f 57 72 | 69 74 65 43 22 29 0d 02 | ("OS_Wr|iteC")..|
|00000cc0| f8 25 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.% | |
|00000cd0| 20 20 4c 44 4d 46 44 20 | 20 20 52 31 33 21 2c 7b | LDMFD | R13!,{|
|00000ce0| 50 43 7d 0d 03 02 04 0d | 03 0c 29 2e 62 65 65 70 |PC}.....|..).beep|
|00000cf0| 20 20 20 20 20 20 20 20 | 20 20 20 53 54 4d 46 44 | | STMFD|
|00000d00| 20 20 20 52 31 33 21 2c | 7b 52 30 2c 52 31 34 7d | R13!,|{R0,R14}|
|00000d10| 0d 03 16 21 20 20 20 20 | 20 20 20 20 20 20 20 20 |...! | |
|00000d20| 20 20 20 20 4d 4f 56 20 | 20 20 20 20 52 30 2c 23 | MOV | R0,#|
|00000d30| 37 0d 03 20 23 20 20 20 | 20 20 20 20 20 20 20 20 |7.. # | |
|00000d40| 20 20 20 20 20 42 4c 20 | 20 20 20 20 20 6f 75 74 | BL | out|
|00000d50| 63 68 61 72 0d 03 2a 28 | 20 20 20 20 20 20 20 20 |char..*(| |
|00000d60| 20 20 20 20 20 20 20 20 | 4c 44 4d 46 44 20 20 20 | |LDMFD |
|00000d70| 52 31 33 21 2c 7b 52 30 | 2c 50 43 7d 0d 03 34 04 |R13!,{R0|,PC}..4.|
|00000d80| 0d 03 3e 0d 2e 66 6f 72 | 63 65 6b 65 79 0d 03 48 |..>..for|cekey..H|
|00000d90| 38 3b 20 4f 6e 20 65 6e | 74 72 79 2c 20 20 20 20 |8; On en|try, |
|00000da0| 20 52 32 20 20 20 20 20 | 20 3d 20 97 49 49 20 6b | R2 | = .II k|
|00000db0| 65 79 20 74 6f 20 66 6f | 72 63 65 20 69 6e 20 62 |ey to fo|rce in b|
|00000dc0| 75 66 66 65 72 0d 03 52 | 2c 20 20 20 20 20 20 20 |uffer..R|, |
|00000dd0| 20 20 20 20 20 20 20 20 | 20 53 54 4d 46 44 20 20 | | STMFD |
|00000de0| 20 52 31 33 21 2c 7b 52 | 30 2d 52 32 2c 52 31 34 | R13!,{R|0-R2,R14|
|00000df0| 7d 0d 03 5c 23 20 20 20 | 20 20 20 20 20 20 20 20 |}..\# | |
|00000e00| 20 20 20 20 20 4d 4f 56 | 20 20 20 20 20 52 30 2c | MOV| R0,|
|00000e10| 23 31 33 38 0d 03 66 21 | 20 20 20 20 20 20 20 20 |#138..f!| |
|00000e20| 20 20 20 20 20 20 20 20 | 4d 4f 56 20 20 20 20 20 | |MOV |
|00000e30| 52 31 2c 23 30 0d 03 70 | 26 20 20 20 20 20 20 20 |R1,#0..p|& |
|00000e40| 20 20 20 20 20 20 20 20 | 20 a4 73 77 69 20 20 20 | | .swi |
|00000e50| 28 22 4f 53 5f 42 79 74 | 65 22 29 0d 03 7a 2b 20 |("OS_Byt|e")..z+ |
|00000e60| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 4c | | L|
|00000e70| 44 4d 46 44 20 20 20 52 | 31 33 21 2c 7b 52 30 2d |DMFD R|13!,{R0-|
|00000e80| 52 32 2c 50 43 7d 0d 03 | 84 04 0d 03 8e 10 2e 66 |R2,PC}..|.......f|
|00000e90| 6f 72 63 65 73 74 72 69 | 6e 67 0d 03 98 32 3b 20 |orcestri|ng...2; |
|00000ea0| 4f 6e 20 65 6e 74 72 79 | 2c 20 20 20 20 20 52 32 |On entry|, R2|
|00000eb0| 20 20 20 20 20 20 3d 20 | 97 49 49 20 63 6f 64 65 | = |.II code|
|00000ec0| 20 74 6f 20 66 6f 72 63 | 65 20 69 6e 0d 03 a2 38 | to forc|e in...8|
|00000ed0| 3b 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |; | |
|00000ee0| 52 33 20 20 20 20 20 20 | 3d 20 4e 75 6d 62 65 72 |R3 |= Number|
|00000ef0| 20 6f 66 20 6b 65 79 73 | 20 74 6f 20 66 6f 72 63 | of keys| to forc|
|00000f00| 65 20 69 6e 0d 03 ac 29 | 20 20 20 20 20 20 20 20 |e in...)| |
|00000f10| 20 20 20 20 20 20 20 20 | 53 54 4d 46 44 20 20 20 | |STMFD |
|00000f20| 52 31 33 21 2c 7b 52 33 | 2c 52 31 34 7d 0d 03 b6 |R13!,{R3|,R14}...|
|00000f30| 21 2e 6b 65 65 70 72 69 | 67 68 74 69 6e 67 20 20 |!.keepri|ghting |
|00000f40| 20 4d 4f 56 53 20 20 20 | 20 52 33 2c 52 33 0d 03 | MOVS | R3,R3..|
|00000f50| c0 24 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.$ | |
|00000f60| 20 20 42 4c 4e 45 20 20 | 20 20 66 6f 72 63 65 6b | BLNE | forcek|
|00000f70| 65 79 0d 03 ca 24 20 20 | 20 20 20 20 20 20 20 20 |ey...$ | |
|00000f80| 20 20 20 20 20 20 53 55 | 42 4e 45 20 20 20 52 33 | SU|BNE R3|
|00000f90| 2c 52 33 2c 23 31 0d 03 | d4 28 20 20 20 20 20 20 |,R3,#1..|.( |
|00000fa0| 20 20 20 20 20 20 20 20 | 20 20 42 4e 45 20 20 20 | | BNE |
|00000fb0| 20 20 6b 65 65 70 72 69 | 67 68 74 69 6e 67 0d 03 | keepri|ghting..|
|00000fc0| de 28 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.( | |
|00000fd0| 20 20 4c 44 4d 46 44 20 | 20 20 52 31 33 21 2c 7b | LDMFD | R13!,{|
|00000fe0| 52 33 2c 50 43 7d 0d 03 | e8 04 0d 03 f2 10 2e 63 |R3,PC}..|.......c|
|00000ff0| 6f 6e 76 74 6f 75 70 70 | 65 72 0d 03 fc 34 3b 20 |onvtoupp|er...4; |
|00001000| 4f 6e 20 65 6e 74 72 79 | 2c 20 20 20 20 20 52 35 |On entry|, R5|
|00001010| 20 20 20 20 20 20 3d 20 | 4c 65 74 74 65 72 20 74 | = |Letter t|
|00001020| 6f 20 62 65 20 63 6f 6e | 76 65 72 74 65 64 0d 04 |o be con|verted..|
|00001030| 06 2e 3b 20 4f 6e 20 65 | 78 69 74 2c 20 20 20 20 |..; On e|xit, |
|00001040| 20 20 52 35 20 20 20 20 | 20 20 3d 20 43 6f 6e 76 | R5 | = Conv|
|00001050| 65 72 74 65 64 20 6c 65 | 74 74 65 72 0d 04 10 26 |erted le|tter...&|
|00001060| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001070| 53 54 4d 46 44 20 20 20 | 52 31 33 21 2c 7b 52 31 |STMFD |R13!,{R1|
|00001080| 34 7d 0d 04 1a 24 20 20 | 20 20 20 20 20 20 20 20 |4}...$ | |
|00001090| 20 20 20 20 20 20 43 4d | 50 20 20 20 20 20 52 35 | CM|P R5|
|000010a0| 2c 23 97 22 61 22 0d 04 | 24 25 20 20 20 20 20 20 |,#."a"..|$% |
|000010b0| 20 20 20 20 20 20 20 20 | 20 20 42 4c 54 20 20 20 | | BLT |
|000010c0| 20 20 6e 6f 74 6c 6f 77 | 65 72 63 0d 04 2e 24 20 | notlow|erc...$ |
|000010d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 43 | | C|
|000010e0| 4d 50 20 20 20 20 20 52 | 35 2c 23 97 22 7a 22 0d |MP R|5,#."z".|
|000010f0| 04 38 25 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.8% | |
|00001100| 20 20 20 53 55 42 4c 45 | 20 20 20 52 35 2c 52 35 | SUBLE| R5,R5|
|00001110| 2c 23 33 32 0d 04 42 25 | 2e 6e 6f 74 6c 6f 77 65 |,#32..B%|.notlowe|
|00001120| 72 63 20 20 20 20 20 20 | 4c 44 4d 46 44 20 20 20 |rc |LDMFD |
|00001130| 52 31 33 21 2c 7b 50 43 | 7d 0d 04 4c 04 0d 04 56 |R13!,{PC|}..L...V|
|00001140| 0e 2e 75 70 70 65 72 63 | 61 73 65 0d 04 60 4d 3b |..upperc|ase..`M;|
|00001150| 20 4f 6e 20 65 6e 74 72 | 79 2c 20 20 20 20 20 52 | On entr|y, R|
|00001160| 30 20 20 20 20 20 20 3d | 20 50 6f 69 6e 74 65 72 |0 =| Pointer|
|00001170| 20 74 6f 20 6d 69 78 65 | 64 2d 63 61 73 65 20 73 | to mixe|d-case s|
|00001180| 74 72 69 6e 67 20 28 43 | 54 52 4c 2d 63 68 61 72 |tring (C|TRL-char|
|00001190| 20 74 65 72 6d 65 64 29 | 0d 04 6a 2c 20 20 20 20 | termed)|..j, |
|000011a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 53 54 4d 46 | | STMF|
|000011b0| 44 20 20 20 52 31 33 21 | 2c 7b 52 30 2c 52 35 2c |D R13!|,{R0,R5,|
|000011c0| 52 31 34 7d 0d 04 74 23 | 2e 6e 65 78 74 6d 69 78 |R14}..t#|.nextmix|
|000011d0| 65 64 63 68 61 72 20 20 | 4c 44 52 42 20 20 20 20 |edchar |LDRB |
|000011e0| 52 35 2c 5b 52 30 5d 0d | 04 7e 24 20 20 20 20 20 |R5,[R0].|.~$ |
|000011f0| 20 20 20 20 20 20 20 20 | 20 20 20 43 4d 50 20 20 | | CMP |
|00001200| 20 20 20 52 35 2c 23 97 | 22 20 22 0d 04 88 2b 20 | R5,#.|" "...+ |
|00001210| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 4c | | L|
|00001220| 44 4d 4c 45 46 44 20 52 | 31 33 21 2c 7b 52 30 2c |DMLEFD R|13!,{R0,|
|00001230| 52 35 2c 50 43 7d 0d 04 | 92 27 20 20 20 20 20 20 |R5,PC}..|.' |
|00001240| 20 20 20 20 20 20 20 20 | 20 20 42 4c 20 20 20 20 | | BL |
|00001250| 20 20 63 6f 6e 76 74 6f | 75 70 70 65 72 0d 04 9c | convto|upper...|
|00001260| 26 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |& | |
|00001270| 20 53 54 52 42 20 20 20 | 20 52 35 2c 5b 52 30 5d | STRB | R5,[R0]|
|00001280| 2c 23 31 0d 04 a6 29 20 | 20 20 20 20 20 20 20 20 |,#1...) | |
|00001290| 20 20 20 20 20 20 20 42 | 20 20 20 20 20 20 20 6e | B| n|
|000012a0| 65 78 74 6d 69 78 65 64 | 63 68 61 72 0d 04 b0 04 |extmixed|char....|
|000012b0| 0d 04 ba 0c 2e 4f 53 5f | 43 61 6c 6c 0d 04 c4 2d |.....OS_|Call...-|
|000012c0| 3b 20 4f 6e 20 65 6e 74 | 72 79 2c 20 20 20 20 20 |; On ent|ry, |
|000012d0| 52 30 2d 52 38 20 20 20 | 3d 20 53 57 49 20 63 61 |R0-R8 |= SWI ca|
|000012e0| 6c 6c 20 70 61 72 61 6d | 73 0d 04 ce 35 3b 20 20 |ll param|s...5; |
|000012f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 73 77 69 | | swi|
|00001300| 20 20 20 20 20 3d 20 53 | 57 49 20 4e 75 6d 62 65 | = S|WI Numbe|
|00001310| 72 20 28 6e 6f 74 20 58 | 20 66 6f 72 6d 29 0d 04 |r (not X| form)..|
|00001320| d8 2d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.- | |
|00001330| 20 20 53 54 4d 46 44 20 | 20 20 52 31 33 21 2c 7b | STMFD | R13!,{|
|00001340| 52 39 2c 52 31 30 2c 52 | 31 34 7d 0d 04 e2 28 20 |R9,R10,R|14}...( |
|00001350| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 4c | | L|
|00001360| 44 52 20 20 20 20 20 52 | 31 30 2c 53 57 49 49 6e |DR R|10,SWIIn|
|00001370| 73 74 72 0d 04 ec 28 20 | 20 20 20 20 20 20 20 20 |str...( | |
|00001380| 20 20 20 20 20 20 20 42 | 49 43 20 20 20 20 20 52 | B|IC R|
|00001390| 31 30 2c 52 31 30 2c 23 | 26 46 46 0d 04 f6 26 20 |10,R10,#|&FF...& |
|000013a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 84 | | .|
|000013b0| 52 20 20 20 20 20 52 31 | 30 2c 52 31 30 2c 73 77 |R R1|0,R10,sw|
|000013c0| 69 0d 05 00 4d 20 20 20 | 20 20 20 20 20 20 20 20 |i...M | |
|000013d0| 20 20 20 20 20 53 54 52 | 20 20 20 20 20 52 31 30 | STR| R10|
|000013e0| 2c 53 57 49 49 6e 73 74 | 72 20 20 20 20 3b 20 4e |,SWIInst|r ; N|
|000013f0| 61 75 67 68 74 79 20 21 | 20 53 65 6c 66 2d 6d 6f |aughty !| Self-mo|
|00001400| 64 69 66 79 69 6e 67 20 | 63 6f 64 65 20 21 0d 05 |difying |code !..|
|00001410| 0a 21 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.! | |
|00001420| 20 20 4d 4f 56 20 20 20 | 20 20 52 39 2c 50 43 0d | MOV | R9,PC.|
|00001430| 05 14 2b 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |..+ | |
|00001440| 20 20 20 84 52 20 20 20 | 20 20 52 31 30 2c 52 39 | .R | R10,R9|
|00001450| 2c 23 53 56 43 5f 4d 6f | 64 65 0d 05 1e 22 20 20 |,#SVC_Mo|de..." |
|00001460| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 54 45 | | TE|
|00001470| 51 50 20 20 20 20 52 31 | 30 2c 23 30 0d 05 28 21 |QP R1|0,#0..(!|
|00001480| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001490| 4d 4f 56 4e 56 20 20 20 | 52 30 2c 52 30 0d 05 32 |MOVNV |R0,R0..2|
|000014a0| 26 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |& | |
|000014b0| 20 53 54 4d 46 44 20 20 | 20 52 31 33 21 2c 7b 52 | STMFD | R13!,{R|
|000014c0| 31 34 7d 0d 05 3c 28 2e | 53 57 49 49 6e 73 74 72 |14}..<(.|SWIInstr|
|000014d0| 20 20 20 20 20 20 20 53 | 57 49 20 20 20 20 20 22 | S|WI "|
|000014e0| 58 4f 53 5f 57 72 69 74 | 65 43 22 0d 05 46 26 20 |XOS_Writ|eC"..F& |
|000014f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 4c | | L|
|00001500| 44 4d 46 44 20 20 20 52 | 31 33 21 2c 7b 52 31 34 |DMFD R|13!,{R14|
|00001510| 7d 0d 05 50 21 20 20 20 | 20 20 20 20 20 20 20 20 |}..P! | |
|00001520| 20 20 20 20 20 54 45 51 | 50 20 20 20 20 52 39 2c | TEQ|P R9,|
|00001530| 23 30 0d 05 5a 21 20 20 | 20 20 20 20 20 20 20 20 |#0..Z! | |
|00001540| 20 20 20 20 20 20 4d 4f | 56 4e 56 20 20 20 52 30 | MO|VNV R0|
|00001550| 2c 52 30 0d 05 64 2c 20 | 20 20 20 20 20 20 20 20 |,R0..d, | |
|00001560| 20 20 20 20 20 20 20 4c | 44 4d 46 44 20 20 20 52 | L|DMFD R|
|00001570| 31 33 21 2c 7b 52 39 2c | 52 31 30 2c 50 43 7d 0d |13!,{R9,|R10,PC}.|
|00001580| 05 6e 04 0d 05 78 14 2e | 63 6f 6d 70 6c 65 74 65 |.n...x..|complete|
|00001590| 5f 62 75 66 66 65 72 0d | 05 82 49 3b 20 4f 6e 20 |_buffer.|..I; On |
|000015a0| 65 6e 74 72 79 2c 20 20 | 20 20 20 52 30 20 20 20 |entry, | R0 |
|000015b0| 20 20 20 3d 20 50 6f 69 | 6e 74 65 72 20 74 6f 20 | = Poi|nter to |
|000015c0| 64 69 72 65 63 74 6f 72 | 79 20 6e 61 6d 65 20 28 |director|y name (|
|000015d0| 6e 75 6c 6c 2d 74 65 72 | 6d 69 6e 61 74 65 64 29 |null-ter|minated)|
|000015e0| 0d 05 8c 4e 3b 20 20 20 | 20 20 20 20 20 20 20 20 |...N; | |
|000015f0| 20 20 20 20 52 31 20 20 | 20 20 20 20 3d 20 50 6f | R1 | = Po|
|00001600| 69 6e 74 65 72 20 74 6f | 20 77 69 6c 64 63 61 72 |inter to| wildcar|
|00001610| 64 65 64 20 66 69 6c 65 | 6e 61 6d 65 20 28 6e 75 |ded file|name (nu|
|00001620| 6c 6c 2d 74 65 72 6d 69 | 6e 61 74 65 64 29 0d 05 |ll-termi|nated)..|
|00001630| 96 4a 3b 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.J; | |
|00001640| 20 20 20 20 20 20 20 20 | 20 20 20 20 28 69 2e 65 | | (i.e|
|00001650| 2e 20 74 68 65 20 6c 61 | 73 74 20 74 77 6f 20 63 |. the la|st two c|
|00001660| 68 61 72 73 20 73 68 6f | 75 6c 64 20 62 65 20 97 |hars sho|uld be .|
|00001670| 49 49 20 34 32 20 30 29 | 0d 05 a0 43 3b 20 4f 6e |II 42 0)|...C; On|
|00001680| 20 65 78 69 74 2c 20 20 | 20 20 20 20 52 30 20 20 | exit, | R0 |
|00001690| 20 20 20 20 3d 20 50 6f | 69 6e 74 65 72 20 74 6f | = Po|inter to|
|000016a0| 20 62 75 66 66 65 72 20 | 28 6d 61 78 6c 65 6e 25 | buffer |(maxlen%|
|000016b0| 20 62 79 74 65 73 29 20 | 66 6f 72 0d 05 aa 40 3b | bytes) |for...@;|
|000016c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000016d0| 20 20 20 20 20 20 20 20 | 20 72 65 74 75 72 6e 20 | | return |
|000016e0| 6f 66 20 28 70 6f 73 73 | 69 62 6c 79 20 70 61 72 |of (poss|ibly par|
|000016f0| 74 69 61 6c 29 20 6d 61 | 74 63 68 0d 05 b4 4d 3b |tial) ma|tch...M;|
|00001700| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 52 | | R|
|00001710| 31 20 20 20 20 20 20 3d | 20 4e 75 6d 62 65 72 20 |1 =| Number |
|00001720| 6f 66 20 66 69 6c 65 73 | 20 6d 61 74 63 68 69 6e |of files| matchin|
|00001730| 67 20 73 70 65 63 20 28 | 31 3d 65 78 61 63 74 2c |g spec (|1=exact,|
|00001740| 20 30 3d 6e 6f 6e 65 29 | 0d 05 be 04 0d 05 c8 2d | 0=none)|.......-|
|00001750| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001760| 53 54 4d 46 44 20 20 20 | 52 31 33 21 2c 7b 52 32 |STMFD |R13!,{R2|
|00001770| 2d 52 31 31 2c 52 31 34 | 7d 0d 05 d2 3a 20 20 20 |-R11,R14|}...: |
|00001780| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 4d 4f 56 | | MOV|
|00001790| 20 20 20 20 20 52 37 2c | 23 30 20 20 20 20 20 20 | R7,|#0 |
|000017a0| 20 20 20 20 20 3b 20 4e | 6f 20 66 69 6c 65 73 20 | ; N|o files |
|000017b0| 79 65 74 0d 05 dc 41 20 | 20 20 20 20 20 20 20 20 |yet...A | |
|000017c0| 20 20 20 20 20 20 20 4d | 4f 56 20 20 20 20 20 52 | M|OV R|
|000017d0| 36 2c 52 31 20 20 20 20 | 20 20 20 20 20 20 20 3b |6,R1 | ;|
|000017e0| 20 57 69 6c 64 63 61 72 | 64 65 64 20 66 69 6c 65 | Wildcar|ded file|
|000017f0| 6e 61 6d 65 0d 05 e6 3c | 20 20 20 20 20 20 20 20 |name...<| |
|00001800| 20 20 20 20 20 20 20 20 | 4d 4f 56 20 20 20 20 20 | |MOV |
|00001810| 52 31 2c 52 30 20 20 20 | 20 20 20 20 20 20 20 20 |R1,R0 | |
|00001820| 3b 20 44 69 72 65 63 74 | 6f 72 79 20 6e 61 6d 65 |; Direct|ory name|
|00001830| 0d 05 f0 45 20 20 20 20 | 20 20 20 20 20 20 20 20 |...E | |
|00001840| 20 20 20 20 4c 44 52 20 | 20 20 20 20 52 35 2c 67 | LDR | R5,g|
|00001850| 62 70 62 73 69 7a 65 20 | 20 20 20 20 3b 20 42 75 |bpbsize | ; Bu|
|00001860| 66 66 65 72 20 73 69 7a | 65 20 66 6f 72 20 72 65 |ffer siz|e for re|
|00001870| 73 75 6c 74 73 0d 05 fa | 3e 20 20 20 20 20 20 20 |sults...|> |
|00001880| 20 20 20 20 20 20 20 20 | 20 4d 4f 56 20 20 20 20 | | MOV |
|00001890| 20 52 34 2c 23 30 20 20 | 20 20 20 20 20 20 20 20 | R4,#0 | |
|000018a0| 20 3b 20 52 65 61 64 69 | 6e 67 20 70 6f 73 69 74 | ; Readi|ng posit|
|000018b0| 69 6f 6e 0d 06 04 21 2e | 67 65 74 6e 65 78 74 73 |ion...!.|getnexts|
|000018c0| 63 61 6e 20 20 20 20 4d | 4f 56 20 20 20 20 20 52 |can M|OV R|
|000018d0| 30 2c 23 39 0d 06 0e 46 | 20 20 20 20 20 20 20 20 |0,#9...F| |
|000018e0| 20 20 20 20 20 20 20 20 | 4c 44 52 20 20 20 20 20 | |LDR |
|000018f0| 52 32 2c 67 62 70 62 62 | 75 66 66 65 72 20 20 20 |R2,gbpbb|uffer |
|00001900| 3b 20 57 68 65 72 65 20 | 74 6f 20 73 74 6f 72 65 |; Where |to store|
|00001910| 20 66 69 6c 65 6e 61 6d | 65 73 0d 06 18 45 20 20 | filenam|es...E |
|00001920| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 4d 4f | | MO|
|00001930| 56 20 20 20 20 20 52 33 | 2c 23 6d 61 78 65 6e 74 |V R3|,#maxent|
|00001940| 73 25 20 20 20 20 3b 20 | 4d 61 78 69 6d 75 6d 20 |s% ; |Maximum |
|00001950| 65 6e 74 72 69 65 73 20 | 74 6f 20 72 65 61 64 0d |entries |to read.|
|00001960| 06 22 26 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |."& | |
|00001970| 20 20 20 a4 73 77 69 20 | 20 20 28 22 4f 53 5f 47 | .swi | ("OS_G|
|00001980| 42 50 42 22 29 0d 06 2c | 43 20 20 20 20 20 20 20 |BPB")..,|C |
|00001990| 20 20 20 20 20 20 20 20 | 20 42 56 53 20 20 20 20 | | BVS |
|000019a0| 20 6e 6f 6d 61 74 63 68 | 61 74 61 6c 6c 20 20 20 | nomatch|atall |
|000019b0| 20 3b 20 50 6f 73 73 69 | 62 6c 79 20 62 61 64 20 | ; Possi|bly bad |
|000019c0| 64 69 72 20 6e 61 6d 65 | 0d 06 36 38 20 20 20 20 |dir name|..68 |
|000019d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 4d 4f 56 53 | | MOVS|
|000019e0| 20 20 20 20 52 33 2c 52 | 33 20 20 20 20 20 20 20 | R3,R|3 |
|000019f0| 20 20 20 20 3b 20 52 65 | 61 64 20 61 6e 79 20 3f | ; Re|ad any ?|
|00001a00| 0d 06 40 4a 20 20 20 20 | 20 20 20 20 20 20 20 20 |..@J | |
|00001a10| 20 20 20 20 42 45 51 20 | 20 20 20 20 73 63 61 6e | BEQ | scan|
|00001a20| 65 6f 66 20 20 20 20 20 | 20 20 20 20 3b 20 4e 6f |eof | ; No|
|00001a30| 2c 20 73 6f 20 63 68 65 | 63 6b 20 66 6f 72 20 65 |, so che|ck for e|
|00001a40| 6e 64 20 6f 66 20 73 63 | 61 6e 0d 06 4a 46 20 20 |nd of sc|an..JF |
|00001a50| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 4d 4f | | MO|
|00001a60| 56 53 20 20 20 20 52 37 | 2c 52 37 20 20 20 20 20 |VS R7|,R7 |
|00001a70| 20 20 20 20 20 20 3b 20 | 49 73 20 74 68 69 73 20 | ; |Is this |
|00001a80| 74 68 65 20 66 69 72 73 | 74 20 73 63 61 6e 20 3f |the firs|t scan ?|
|00001a90| 0d 06 54 29 20 20 20 20 | 20 20 20 20 20 20 20 20 |..T) | |
|00001aa0| 20 20 20 20 42 4e 45 20 | 20 20 20 20 61 6c 72 65 | BNE | alre|
|00001ab0| 61 64 79 67 6f 74 6f 6e | 65 0d 06 5e 28 20 20 20 |adygoton|e..^( |
|00001ac0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 41 44 52 | | ADR|
|00001ad0| 20 20 20 20 20 52 30 2c | 75 70 70 65 72 6e 61 6d | R0,|uppernam|
|00001ae0| 65 0d 06 68 4a 20 20 20 | 20 20 20 20 20 20 20 20 |e..hJ | |
|00001af0| 20 20 20 20 20 4d 4f 56 | 20 20 20 20 20 52 39 2c | MOV| R9,|
|00001b00| 52 30 20 20 20 20 20 20 | 20 20 20 20 20 3b 20 59 |R0 | ; Y|
|00001b10| 65 73 2c 20 73 6f 20 63 | 6f 70 79 20 66 69 72 73 |es, so c|opy firs|
|00001b20| 74 20 6e 61 6d 65 20 69 | 6e 74 6f 0d 06 72 3b 20 |t name i|nto..r; |
|00001b30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 41 | | A|
|00001b40| 44 52 20 20 20 20 20 52 | 38 2c 6d 69 78 65 64 6e |DR R|8,mixedn|
|00001b50| 61 6d 65 20 20 20 20 3b | 20 74 77 6f 20 62 75 66 |ame ;| two buf|
|00001b60| 66 65 72 73 20 2d 0d 06 | 7c 4d 2e 73 74 69 6c 6c |fers -..||M.still|
|00001b70| 66 69 72 73 74 6e 61 6d | 65 20 4c 44 52 42 20 20 |firstnam|e LDRB |
|00001b80| 20 20 52 31 30 2c 5b 52 | 32 5d 2c 23 31 20 20 20 | R10,[R|2],#1 |
|00001b90| 20 20 3b 20 4f 6e 65 20 | 68 6f 6c 64 73 20 74 68 | ; One |holds th|
|00001ba0| 65 20 6d 69 78 65 64 20 | 63 61 73 65 20 6e 61 6d |e mixed |case nam|
|00001bb0| 65 20 26 0d 06 86 4b 20 | 20 20 20 20 20 20 20 20 |e &...K | |
|00001bc0| 20 20 20 20 20 20 20 53 | 54 52 42 20 20 20 20 52 | S|TRB R|
|00001bd0| 31 30 2c 5b 52 39 5d 2c | 23 31 20 20 20 20 20 3b |10,[R9],|#1 ;|
|00001be0| 20 74 68 65 20 6f 74 68 | 65 72 20 68 61 73 20 75 | the oth|er has u|
|00001bf0| 70 70 65 72 20 63 61 73 | 65 20 6f 6e 6c 79 0d 06 |pper cas|e only..|
|00001c00| 90 27 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.' | |
|00001c10| 20 20 53 54 52 42 20 20 | 20 20 52 31 30 2c 5b 52 | STRB | R10,[R|
|00001c20| 38 5d 2c 23 31 0d 06 9a | 23 20 20 20 20 20 20 20 |8],#1...|# |
|00001c30| 20 20 20 20 20 20 20 20 | 20 4d 4f 56 53 20 20 20 | | MOVS |
|00001c40| 20 52 31 30 2c 52 31 30 | 0d 06 a4 2a 20 20 20 20 | R10,R10|...* |
|00001c50| 20 20 20 20 20 20 20 20 | 20 20 20 20 42 4e 45 20 | | BNE |
|00001c60| 20 20 20 20 73 74 69 6c | 6c 66 69 72 73 74 6e 61 | stil|lfirstna|
|00001c70| 6d 65 0d 06 ae 4a 20 20 | 20 20 20 20 20 20 20 20 |me...J | |
|00001c80| 20 20 20 20 20 20 42 4c | 20 20 20 20 20 20 75 70 | BL| up|
|00001c90| 70 65 72 63 61 73 65 20 | 20 20 20 20 20 20 3b 20 |percase | ; |
|00001ca0| 44 6f 20 74 68 65 20 75 | 70 70 65 72 20 63 61 73 |Do the u|pper cas|
|00001cb0| 65 20 63 6f 6e 76 65 72 | 73 69 6f 6e 0d 06 b8 45 |e conver|sion...E|
|00001cc0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001cd0| 4d 4f 56 20 20 20 20 20 | 52 37 2c 23 31 20 20 20 |MOV |R7,#1 |
|00001ce0| 20 20 20 20 20 20 20 20 | 3b 20 54 68 61 74 20 77 | |; That w|
|00001cf0| 61 73 20 74 68 65 20 66 | 69 72 73 74 20 6e 61 6d |as the f|irst nam|
|00001d00| 65 0d 06 c2 49 20 20 20 | 20 20 20 20 20 20 20 20 |e...I | |
|00001d10| 20 20 20 20 20 53 55 42 | 53 20 20 20 20 52 33 2c | SUB|S R3,|
|00001d20| 52 33 2c 23 31 20 20 20 | 20 20 20 20 20 3b 20 4d |R3,#1 | ; M|
|00001d30| 61 79 62 65 20 74 68 61 | 74 27 73 20 74 68 65 20 |aybe tha|t's the |
|00001d40| 6f 6e 6c 79 20 6f 6e 65 | 20 2d 0d 06 cc 4c 20 20 |only one| -...L |
|00001d50| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 42 45 | | BE|
|00001d60| 51 20 20 20 20 20 73 63 | 61 6e 65 6f 66 20 20 20 |Q sc|aneof |
|00001d70| 20 20 20 20 20 20 3b 20 | 69 66 20 73 6f 2c 20 73 | ; |if so, s|
|00001d80| 6b 69 70 20 74 6f 20 6c | 61 73 74 20 73 63 61 6e |kip to l|ast scan|
|00001d90| 20 63 68 65 63 6b 0d 06 | d6 46 2e 61 6c 72 65 61 | check..|.F.alrea|
|00001da0| 64 79 67 6f 74 6f 6e 65 | 20 20 4d 4f 56 20 20 20 |dygotone| MOV |
|00001db0| 20 20 52 30 2c 52 32 20 | 20 20 20 20 20 20 20 20 | R0,R2 | |
|00001dc0| 20 20 3b 20 55 70 70 65 | 72 20 63 61 73 65 20 6e | ; Uppe|r case n|
|00001dd0| 65 78 74 20 66 69 6c 65 | 6e 61 6d 65 0d 06 e0 25 |ext file|name...%|
|00001de0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001df0| 42 4c 20 20 20 20 20 20 | 75 70 70 65 72 63 61 73 |BL |uppercas|
|00001e00| 65 0d 06 ea 28 20 20 20 | 20 20 20 20 20 20 20 20 |e...( | |
|00001e10| 20 20 20 20 20 41 44 52 | 20 20 20 20 20 52 30 2c | ADR| R0,|
|00001e20| 75 70 70 65 72 6e 61 6d | 65 0d 06 f4 21 20 20 20 |uppernam|e...! |
|00001e30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 4d 4f 56 | | MOV|
|00001e40| 20 20 20 20 20 52 39 2c | 23 30 0d 06 fe 44 2e 65 | R9,|#0...D.e|
|00001e50| 78 61 63 74 6d 61 74 63 | 68 20 20 20 20 20 4c 44 |xactmatc|h LD|
|00001e60| 52 42 20 20 20 20 52 31 | 30 2c 5b 52 32 5d 2c 23 |RB R1|0,[R2],#|
|00001e70| 31 20 20 20 20 20 3b 20 | 43 6f 6d 70 61 72 65 20 |1 ; |Compare |
|00001e80| 6e 65 78 74 20 6e 61 6d | 65 20 77 69 74 68 0d 07 |next nam|e with..|
|00001e90| 08 47 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.G | |
|00001ea0| 20 20 4c 44 52 42 20 20 | 20 20 52 31 31 2c 5b 52 | LDRB | R11,[R|
|00001eb0| 30 2c 52 39 5d 20 20 20 | 20 20 3b 20 66 69 72 73 |0,R9] | ; firs|
|00001ec0| 74 20 75 70 70 65 72 2d | 63 61 73 65 64 20 6e 61 |t upper-|cased na|
|00001ed0| 6d 65 2e 2e 2e 0d 07 12 | 4e 20 20 20 20 20 20 20 |me......|N |
|00001ee0| 20 20 20 20 20 20 20 20 | 20 4d 4f 56 53 20 20 20 | | MOVS |
|00001ef0| 20 52 31 31 2c 52 31 31 | 20 20 20 20 20 20 20 20 | R11,R11| |
|00001f00| 20 3b 20 2e 2e 2e 67 69 | 76 65 20 75 70 20 69 66 | ; ...gi|ve up if|
|00001f10| 20 6e 65 77 20 6e 61 6d | 65 20 69 73 20 6c 6f 6e | new nam|e is lon|
|00001f20| 67 65 72 0d 07 1c 28 20 | 20 20 20 20 20 20 20 20 |ger...( | |
|00001f30| 20 20 20 20 20 20 20 42 | 45 51 20 20 20 20 20 61 | B|EQ a|
|00001f40| 6c 72 65 61 64 79 73 68 | 6f 72 74 0d 07 26 4c 20 |lreadysh|ort..&L |
|00001f50| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 43 | | C|
|00001f60| 4d 50 20 20 20 20 20 52 | 31 30 2c 52 31 31 20 20 |MP R|10,R11 |
|00001f70| 20 20 20 20 20 20 20 3b | 20 4b 65 65 70 20 6c 6f | ;| Keep lo|
|00001f80| 6f 70 69 6e 67 20 69 66 | 20 6e 65 78 74 20 63 68 |oping if| next ch|
|00001f90| 61 72 20 73 61 6d 65 0d | 07 30 24 20 20 20 20 20 |ar same.|.0$ |
|00001fa0| 20 20 20 20 20 20 20 20 | 20 20 20 41 44 44 45 51 | | ADDEQ|
|00001fb0| 20 20 20 52 39 2c 52 39 | 2c 23 31 0d 07 3a 26 20 | R9,R9|,#1..:& |
|00001fc0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 42 | | B|
|00001fd0| 45 51 20 20 20 20 20 65 | 78 61 63 74 6d 61 74 63 |EQ e|xactmatc|
|00001fe0| 68 0d 07 44 4c 20 20 20 | 20 20 20 20 20 20 20 20 |h..DL | |
|00001ff0| 20 20 20 20 20 4d 4f 56 | 20 20 20 20 20 52 31 31 | MOV| R11|
|00002000| 2c 23 30 20 20 20 20 20 | 20 20 20 20 20 3b 20 28 |,#0 | ; (|
|00002010| 50 6f 73 73 69 62 6c 79 | 29 20 74 72 75 6e 63 61 |Possibly|) trunca|
|00002020| 74 65 20 62 6f 74 68 20 | 6d 69 78 65 64 0d 07 4e |te both |mixed..N|
|00002030| 4b 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |K | |
|00002040| 20 53 54 52 42 20 20 20 | 20 52 31 31 2c 5b 52 30 | STRB | R11,[R0|
|00002050| 2c 52 39 5d 20 20 20 20 | 20 3b 20 61 6e 64 20 75 |,R9] | ; and u|
|00002060| 70 70 65 72 20 63 61 73 | 65 20 66 69 72 73 74 20 |pper cas|e first |
|00002070| 66 69 6c 65 6e 61 6d 65 | 0d 07 58 28 20 20 20 20 |filename|..X( |
|00002080| 20 20 20 20 20 20 20 20 | 20 20 20 20 41 44 52 20 | | ADR |
|00002090| 20 20 20 20 52 38 2c 6d | 69 78 65 64 6e 61 6d 65 | R8,m|ixedname|
|000020a0| 0d 07 62 27 20 20 20 20 | 20 20 20 20 20 20 20 20 |..b' | |
|000020b0| 20 20 20 20 53 54 52 42 | 20 20 20 20 52 31 31 2c | STRB| R11,|
|000020c0| 5b 52 38 2c 52 39 5d 0d | 07 6c 4e 2e 61 6c 72 65 |[R8,R9].|.lN.alre|
|000020d0| 61 64 79 73 68 6f 72 74 | 20 20 20 4d 4f 56 53 20 |adyshort| MOVS |
|000020e0| 20 20 20 52 39 2c 52 39 | 20 20 20 3b 20 49 66 20 | R9,R9| ; If |
|000020f0| 61 6c 6c 20 63 68 61 72 | 73 20 64 69 66 66 65 72 |all char|s differ|
|00002100| 65 6e 74 2c 20 6e 6f 20 | 70 61 72 74 69 61 6c 20 |ent, no |partial |
|00002110| 6d 61 74 63 68 0d 07 76 | 1e 20 20 20 20 20 20 20 |match..v|. |
|00002120| 20 20 20 20 20 20 20 20 | 20 ec 51 20 20 20 52 37 | | .Q R7|
|00002130| 2c 23 30 0d 07 80 28 20 | 20 20 20 20 20 20 20 20 |,#0...( | |
|00002140| 20 20 20 20 20 20 20 42 | 45 51 20 20 20 20 20 6e | B|EQ n|
|00002150| 6f 6d 61 74 63 68 61 74 | 61 6c 6c 0d 07 8a 47 20 |omatchat|all...G |
|00002160| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 41 | | A|
|00002170| 44 44 20 20 20 20 20 52 | 37 2c 52 37 2c 23 31 20 |DD R|7,R7,#1 |
|00002180| 20 20 20 20 20 20 20 3b | 20 53 75 63 63 65 73 73 | ;| Success|
|00002190| 20 73 6f 20 66 61 72 2c | 20 73 6f 20 61 64 6a 75 | so far,| so adju|
|000021a0| 73 74 0d 07 94 4c 20 20 | 20 20 20 20 20 20 20 20 |st...L | |
|000021b0| 20 20 20 20 20 20 53 55 | 42 53 20 20 20 20 52 33 | SU|BS R3|
|000021c0| 2c 52 33 2c 23 31 20 20 | 20 20 20 20 20 20 3b 20 |,R3,#1 | ; |
|000021d0| 63 6f 75 6e 74 65 72 73 | 20 61 6e 64 20 73 6b 69 |counters| and ski|
|000021e0| 70 20 74 6f 20 6c 61 73 | 74 20 73 63 61 6e 0d 07 |p to las|t scan..|
|000021f0| 9e 49 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.I | |
|00002200| 20 20 42 45 51 20 20 20 | 20 20 73 63 61 6e 65 6f | BEQ | scaneo|
|00002210| 66 20 20 20 20 20 20 20 | 20 20 3b 20 63 68 65 63 |f | ; chec|
|00002220| 6b 20 69 66 20 61 6c 6c | 20 6e 61 6d 65 73 20 63 |k if all| names c|
|00002230| 6f 6d 70 61 72 65 64 0d | 07 a8 4d 2e 66 69 6e 64 |ompared.|..M.find|
|00002240| 7a 65 72 6f 20 20 20 20 | 20 20 20 4d 4f 56 53 20 |zero | MOVS |
|00002250| 20 20 20 52 31 30 2c 52 | 31 30 20 20 20 20 20 20 | R10,R|10 |
|00002260| 20 20 20 3b 20 46 69 6e | 64 20 6e 75 6c 6c 2d 74 | ; Fin|d null-t|
|00002270| 65 72 6d 69 6e 61 74 6f | 72 20 6f 66 20 63 75 72 |erminato|r of cur|
|00002280| 72 65 6e 74 0d 07 b2 4d | 20 20 20 20 20 20 20 20 |rent...M| |
|00002290| 20 20 20 20 20 20 20 20 | 4c 44 52 4e 45 42 20 20 | |LDRNEB |
|000022a0| 52 31 30 2c 5b 52 32 5d | 2c 23 31 20 20 20 20 20 |R10,[R2]|,#1 |
|000022b0| 3b 20 66 69 6c 65 6e 61 | 6d 65 20 72 65 61 64 79 |; filena|me ready|
|000022c0| 20 66 6f 72 20 6e 65 78 | 74 20 63 6f 6d 70 61 72 | for nex|t compar|
|000022d0| 65 0d 07 bc 24 20 20 20 | 20 20 20 20 20 20 20 20 |e...$ | |
|000022e0| 20 20 20 20 20 42 4e 45 | 20 20 20 20 20 66 69 6e | BNE| fin|
|000022f0| 64 7a 65 72 6f 0d 07 c6 | 29 20 20 20 20 20 20 20 |dzero...|) |
|00002300| 20 20 20 20 20 20 20 20 | 20 42 20 20 20 20 20 20 | | B |
|00002310| 20 61 6c 72 65 61 64 79 | 67 6f 74 6f 6e 65 0d 07 | already|gotone..|
|00002320| d0 48 2e 73 63 61 6e 65 | 6f 66 20 20 20 20 20 20 |.H.scane|of |
|00002330| 20 20 4d 4f 56 53 20 20 | 20 20 52 34 2c 52 34 20 | MOVS | R4,R4 |
|00002340| 20 20 20 20 20 20 20 20 | 20 20 3b 20 41 6e 79 20 | | ; Any |
|00002350| 6d 6f 72 65 20 66 69 6c | 65 6e 61 6d 65 73 20 70 |more fil|enames p|
|00002360| 65 6e 64 69 6e 67 0d 07 | da 45 20 20 20 20 20 20 |ending..|.E |
|00002370| 20 20 20 20 20 20 20 20 | 20 20 42 50 4c 20 20 20 | | BPL |
|00002380| 20 20 67 65 74 6e 65 78 | 74 73 63 61 6e 20 20 20 | getnex|tscan |
|00002390| 20 20 3b 20 66 6f 72 20 | 6e 65 78 74 20 4f 53 5f | ; for |next OS_|
|000023a0| 47 42 50 42 20 63 61 6c | 6c 20 3f 0d 07 e4 47 2e |GBPB cal|l ?...G.|
|000023b0| 6e 6f 6d 61 74 63 68 61 | 74 61 6c 6c 20 20 20 41 |nomatcha|tall A|
|000023c0| 44 52 20 20 20 20 20 52 | 30 2c 6d 69 78 65 64 6e |DR R|0,mixedn|
|000023d0| 61 6d 65 20 20 20 20 3b | 20 4e 6f 2c 20 73 6f 20 |ame ;| No, so |
|000023e0| 72 65 74 75 72 6e 20 61 | 70 70 72 6f 70 72 69 61 |return a|ppropria|
|000023f0| 74 65 0d 07 ee 34 20 20 | 20 20 20 20 20 20 20 20 |te...4 | |
|00002400| 20 20 20 20 20 20 4d 4f | 56 20 20 20 20 20 52 31 | MO|V R1|
|00002410| 2c 52 37 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 |,R7 | ; |
|00002420| 76 61 6c 75 65 73 0d 07 | f8 2c 20 20 20 20 20 20 |values..|., |
|00002430| 20 20 20 20 20 20 20 20 | 20 20 4c 44 4d 46 44 20 | | LDMFD |
|00002440| 20 20 52 31 33 21 2c 7b | 52 32 2d 52 31 31 2c 50 | R13!,{|R2-R11,P|
|00002450| 43 7d 0d 08 02 24 2e 67 | 62 70 62 73 69 7a 65 20 |C}...$.g|bpbsize |
|00002460| 20 20 20 20 20 20 45 51 | 55 44 20 20 20 20 62 75 | EQ|UD bu|
|00002470| 66 73 69 7a 65 25 0d 08 | 0c 1d 2e 67 62 70 62 62 |fsize%..|...gbpbb|
|00002480| 75 66 66 65 72 20 20 20 | 20 20 45 51 55 44 20 20 |uffer | EQUD |
|00002490| 20 20 30 0d 08 16 29 2e | 6d 69 78 65 64 6e 61 6d | 0...).|mixednam|
|000024a0| 65 20 20 20 20 20 20 45 | 51 55 53 20 20 20 20 c4 |e E|QUS .|
|000024b0| 6d 61 78 6c 65 6e 25 2c | 62 6c 24 29 0d 08 20 29 |maxlen%,|bl$).. )|
|000024c0| 2e 75 70 70 65 72 6e 61 | 6d 65 20 20 20 20 20 20 |.upperna|me |
|000024d0| 45 51 55 53 20 20 20 20 | c4 6d 61 78 6c 65 6e 25 |EQUS |.maxlen%|
|000024e0| 2c 62 6c 24 29 0d 08 2a | 04 0d 08 34 10 2e 63 68 |,bl$)..*|...4..ch|
|000024f0| 65 63 6b 66 6f 72 73 65 | 70 0d 08 3e 34 3b 20 4f |eckforse|p..>4; O|
|00002500| 6e 20 65 6e 74 72 79 2c | 20 20 20 20 20 52 30 20 |n entry,| R0 |
|00002510| 20 20 20 20 20 3d 20 50 | 6f 69 6e 74 65 72 20 74 | = P|ointer t|
|00002520| 6f 20 6c 69 6e 65 20 62 | 75 66 66 65 72 0d 08 48 |o line b|uffer..H|
|00002530| 2d 3b 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |-; | |
|00002540| 20 52 34 20 20 20 20 20 | 20 3d 20 4f 66 66 73 65 | R4 | = Offse|
|00002550| 74 20 74 6f 20 63 68 65 | 63 6b 0d 08 52 34 3b 20 |t to che|ck..R4; |
|00002560| 4f 6e 20 65 78 69 74 2c | 20 20 20 20 20 20 5a 20 |On exit,| Z |
|00002570| 20 20 20 20 20 20 3d 20 | 53 65 74 20 69 66 20 73 | = |Set if s|
|00002580| 65 70 61 72 61 74 6f 72 | 20 66 6f 75 6e 64 0d 08 |eparator| found..|
|00002590| 5c 29 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |\) | |
|000025a0| 20 20 53 54 4d 46 44 20 | 20 20 52 31 33 21 2c 7b | STMFD | R13!,{|
|000025b0| 52 30 2c 52 31 34 7d 0d | 08 66 26 20 20 20 20 20 |R0,R14}.|.f& |
|000025c0| 20 20 20 20 20 20 20 20 | 20 20 20 4c 44 52 42 20 | | LDRB |
|000025d0| 20 20 20 52 30 2c 5b 52 | 30 2c 52 34 5d 0d 08 70 | R0,[R|0,R4]..p|
|000025e0| 21 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |! | |
|000025f0| 20 4d 4f 56 53 20 20 20 | 20 52 30 2c 52 30 0d 08 | MOVS | R0,R0..|
|00002600| 7a 24 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |z$ | |
|00002610| 20 20 43 4d 50 4e 45 20 | 20 20 52 30 2c 23 97 22 | CMPNE | R0,#."|
|00002620| 20 22 0d 08 84 3b 20 20 | 20 20 20 20 20 20 20 20 | "...; | |
|00002630| 20 20 20 20 20 20 43 4d | 50 4e 45 20 20 20 52 30 | CM|PNE R0|
|00002640| 2c 23 33 34 20 20 20 20 | 20 20 20 20 20 20 3b 20 |,#34 | ; |
|00002650| 44 6f 75 62 6c 65 20 71 | 75 6f 74 65 73 0d 08 8e |Double q|uotes...|
|00002660| 28 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |( | |
|00002670| 20 4c 44 4d 46 44 20 20 | 20 52 31 33 21 2c 7b 52 | LDMFD | R13!,{R|
|00002680| 30 2c 50 43 7d 0d 08 98 | 04 0d 08 a2 12 2e 63 6f |0,PC}...|......co|
|00002690| 6d 70 6c 65 74 65 5f 6e | 61 6d 65 0d 08 ac 34 3b |mplete_n|ame...4;|
|000026a0| 20 4f 6e 20 65 6e 74 72 | 79 2c 20 20 20 20 20 52 | On entr|y, R|
|000026b0| 30 20 20 20 20 20 20 3d | 20 50 6f 69 6e 74 65 72 |0 =| Pointer|
|000026c0| 20 74 6f 20 6c 69 6e 65 | 20 62 75 66 66 65 72 0d | to line| buffer.|
|000026d0| 08 b6 40 3b 20 20 20 20 | 20 20 20 20 20 20 20 20 |..@; | |
|000026e0| 20 20 20 52 31 20 20 20 | 20 20 20 3d 20 4f 66 66 | R1 | = Off|
|000026f0| 73 65 74 20 6f 66 20 63 | 75 72 73 6f 72 20 6f 6e |set of c|ursor on|
|00002700| 20 6c 69 6e 65 20 28 30 | 3d 73 74 61 72 74 29 0d | line (0|=start).|
|00002710| 08 c0 34 3b 20 20 20 20 | 20 20 20 20 20 20 20 20 |..4; | |
|00002720| 20 20 20 52 32 20 20 20 | 20 20 20 3d 20 43 75 72 | R2 | = Cur|
|00002730| 72 65 6e 74 20 6c 65 6e | 67 74 68 20 6f 66 20 6c |rent len|gth of l|
|00002740| 69 6e 65 0d 08 ca 44 3b | 20 4e 6f 74 65 20 2d 20 |ine...D;| Note - |
|00002750| 54 68 65 20 63 75 72 73 | 6f 72 20 77 69 6c 6c 20 |The curs|or will |
|00002760| 62 65 20 6d 6f 76 65 64 | 20 74 6f 20 74 68 65 20 |be moved| to the |
|00002770| 65 6e 64 20 6f 66 20 74 | 68 65 20 6c 65 61 66 6e |end of t|he leafn|
|00002780| 61 6d 65 20 61 6e 64 0d | 08 d4 48 3b 20 20 20 20 |ame and.|..H; |
|00002790| 20 20 20 20 74 68 65 6e | 20 66 61 6e 63 79 20 64 | then| fancy d|
|000027a0| 65 6c 65 74 65 73 2f 69 | 6e 73 65 72 74 73 20 6d |eletes/i|nserts m|
|000027b0| 61 79 20 74 61 6b 65 20 | 70 6c 61 63 65 2e 20 42 |ay take |place. B|
|000027c0| 65 63 61 75 73 65 20 6f | 66 20 74 68 69 73 2c 0d |ecause o|f this,.|
|000027d0| 08 de 44 3b 20 20 20 20 | 20 20 20 20 74 68 65 20 |..D; | the |
|000027e0| 4c 69 6e 65 20 45 64 69 | 74 6f 72 20 69 73 20 66 |Line Edi|tor is f|
|000027f0| 6f 72 63 65 64 20 69 6e | 74 6f 20 49 6e 73 65 72 |orced in|to Inser|
|00002800| 74 20 6d 6f 64 65 20 69 | 66 20 72 65 71 75 69 72 |t mode i|f requir|
|00002810| 65 64 2e 0d 08 e8 4a 3b | 20 20 20 20 20 20 20 20 |ed....J;| |
|00002820| 41 20 62 65 65 70 20 77 | 69 6c 6c 20 62 65 20 65 |A beep w|ill be e|
|00002830| 6d 69 74 74 65 64 20 69 | 66 20 63 6f 6d 70 6c 65 |mitted i|f comple|
|00002840| 74 69 6f 6e 20 63 61 6e | 6e 6f 74 20 62 65 20 66 |tion can|not be f|
|00002850| 75 6c 6c 79 20 61 63 68 | 69 65 76 65 64 0d 08 f2 |ully ach|ieved...|
|00002860| 2a 3b 20 20 20 20 20 20 | 20 20 64 75 65 20 74 6f |*; | due to|
|00002870| 20 61 20 6e 6f 6e 2f 6e | 6f 6e 2d 65 78 61 63 74 | a non/n|on-exact|
|00002880| 20 6d 61 74 63 68 2e 0d | 08 fc 4b 3b 20 57 41 52 | match..|..K; WAR|
|00002890| 4e 49 4e 47 53 20 2d 20 | 69 6e 69 74 5f 63 6f 6d |NINGS - |init_com|
|000028a0| 70 6c 65 74 65 20 6d 75 | 73 74 20 68 61 76 65 20 |plete mu|st have |
|000028b0| 62 65 65 6e 20 63 61 6c | 6c 65 64 20 70 72 69 6f |been cal|led prio|
|000028c0| 72 20 74 6f 20 74 68 69 | 73 20 72 6f 75 74 69 6e |r to thi|s routin|
|000028d0| 65 2e 0d 09 06 47 3b 20 | 20 20 20 20 20 20 20 20 |e....G; | |
|000028e0| 20 2d 20 52 69 67 68 74 | 20 61 72 72 6f 77 73 20 | - Right| arrows |
|000028f0| 43 41 4e 4e 4f 54 20 62 | 65 20 66 6f 72 63 65 64 |CANNOT b|e forced|
|00002900| 20 69 6e 74 6f 20 74 68 | 65 20 6b 65 79 62 6f 61 | into th|e keyboa|
|00002910| 72 64 20 62 75 66 66 65 | 72 0d 09 10 49 3b 20 20 |rd buffe|r...I; |
|00002920| 20 20 20 20 20 20 20 20 | 20 20 75 73 69 6e 67 20 | | using |
|00002930| 2a 46 58 20 31 33 38 2c | 30 2c 31 33 37 2e 20 48 |*FX 138,|0,137. H|
|00002940| 65 6e 63 65 2c 20 49 20 | 75 73 65 20 61 20 64 65 |ence, I |use a de|
|00002950| 63 72 65 6d 65 6e 74 69 | 6e 67 20 63 6f 75 6e 74 |crementi|ng count|
|00002960| 65 72 0d 09 1a 44 3b 20 | 20 20 20 20 20 20 20 20 |er...D; | |
|00002970| 20 20 20 62 65 66 6f 72 | 65 20 74 68 65 20 a6 28 | befor|e the .(|
|00002980| 30 29 20 63 61 6c 6c 20 | 74 6f 20 27 66 61 6b 65 |0) call |to 'fake|
|00002990| 27 20 72 69 67 68 74 20 | 61 72 72 6f 77 73 2e 2e |' right |arrows..|
|000029a0| 2e 63 68 65 63 6b 0d 09 | 24 3b 3b 20 20 20 20 20 |.check..|$;; |
|000029b0| 20 20 20 20 20 20 20 74 | 68 65 20 6d 61 69 6e 20 | t|he main |
|000029c0| 73 6f 75 72 63 65 20 66 | 69 6c 65 20 74 6f 20 73 |source f|ile to s|
|000029d0| 65 65 20 68 6f 77 20 49 | 20 64 6f 20 74 68 69 73 |ee how I| do this|
|000029e0| 2e 0d 09 2e 2d 20 20 20 | 20 20 20 20 20 20 20 20 |....- | |
|000029f0| 20 20 20 20 20 53 54 4d | 46 44 20 20 20 52 31 33 | STM|FD R13|
|00002a00| 21 2c 7b 52 30 2d 52 31 | 30 2c 52 31 34 7d 0d 09 |!,{R0-R1|0,R14}..|
|00002a10| 38 48 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |8H | |
|00002a20| 20 20 4c 44 52 20 20 20 | 20 20 52 35 2c 67 62 70 | LDR | R5,gbp|
|00002a30| 62 62 75 66 66 65 72 20 | 20 20 3b 20 44 69 64 20 |bbuffer | ; Did |
|00002a40| 77 65 20 6d 61 6e 61 67 | 65 20 74 6f 20 63 6c 61 |we manag|e to cla|
|00002a50| 69 6d 20 74 68 65 0d 09 | 42 47 20 20 20 20 20 20 |im the..|BG |
|00002a60| 20 20 20 20 20 20 20 20 | 20 20 4d 4f 56 53 20 20 | | MOVS |
|00002a70| 20 20 52 35 2c 52 35 20 | 20 20 20 20 20 20 20 20 | R5,R5 | |
|00002a80| 20 20 3b 20 52 4d 41 20 | 66 6f 72 20 66 69 64 64 | ; RMA |for fidd|
|00002a90| 6c 69 6e 67 20 61 72 6f | 75 6e 64 20 3f 0d 09 4c |ling aro|und ?..L|
|00002aa0| 26 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |& | |
|00002ab0| 20 42 45 51 20 20 20 20 | 20 63 61 6e 74 65 78 70 | BEQ | cantexp|
|00002ac0| 61 6e 64 0d 09 56 44 20 | 20 20 20 20 20 20 20 20 |and..VD | |
|00002ad0| 20 20 20 20 20 20 20 4d | 4f 56 20 20 20 20 20 52 | M|OV R|
|00002ae0| 35 2c 52 31 20 20 20 20 | 20 20 20 20 20 20 20 3b |5,R1 | ;|
|00002af0| 20 57 6f 72 6b 20 62 61 | 63 6b 77 61 72 64 73 20 | Work ba|ckwards |
|00002b00| 74 6f 20 66 69 6e 64 0d | 09 60 44 2e 73 74 69 6c |to find.|.`D.stil|
|00002b10| 6c 62 61 63 6b 69 6e 67 | 20 20 20 53 55 42 53 20 |lbacking| SUBS |
|00002b20| 20 20 20 52 35 2c 52 35 | 2c 23 31 20 20 20 20 20 | R5,R5|,#1 |
|00002b30| 20 20 20 3b 20 73 74 61 | 72 74 20 6f 66 20 66 75 | ; sta|rt of fu|
|00002b40| 6c 6c 20 70 61 74 68 6e | 61 6d 65 0d 09 6a 29 20 |ll pathn|ame..j) |
|00002b50| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 42 | | B|
|00002b60| 50 4c 20 20 20 20 20 73 | 74 69 6c 6c 69 6e 6d 69 |PL s|tillinmi|
|00002b70| 64 64 6c 65 0d 09 74 48 | 20 20 20 20 20 20 20 20 |ddle..tH| |
|00002b80| 20 20 20 20 20 20 20 20 | 4d 4f 56 53 20 20 20 20 | |MOVS |
|00002b90| 52 32 2c 52 32 20 20 20 | 20 20 20 20 20 20 20 20 |R2,R2 | |
|00002ba0| 3b 20 43 61 72 72 79 20 | 6f 6e 20 61 73 20 6e 6f |; Carry |on as no|
|00002bb0| 72 6d 61 6c 20 69 66 20 | 6c 69 6e 65 0d 09 7e 36 |rmal if |line..~6|
|00002bc0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002bd0| 42 45 51 20 20 20 20 20 | 67 6f 74 6c 69 6e 65 73 |BEQ |gotlines|
|00002be0| 74 61 72 74 20 20 20 20 | 3b 20 69 73 20 65 6d 70 |tart |; is emp|
|00002bf0| 74 79 0d 09 88 4c 20 20 | 20 20 20 20 20 20 20 20 |ty...L | |
|00002c00| 20 20 20 20 20 20 4c 44 | 52 42 20 20 20 20 52 36 | LD|RB R6|
|00002c10| 2c 61 74 67 6f 73 70 72 | 6f 6d 70 74 20 20 3b 20 |,atgospr|ompt ; |
|00002c20| 4c 6f 6f 6b 20 66 6f 72 | 20 64 6f 74 20 69 66 20 |Look for| dot if |
|00002c30| 61 74 20 2a 47 6f 73 20 | 70 72 6f 6d 70 74 0d 09 |at *Gos |prompt..|
|00002c40| 92 21 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.! | |
|00002c50| 20 20 4d 4f 56 53 20 20 | 20 20 52 36 2c 52 36 0d | MOVS | R6,R6.|
|00002c60| 09 9c 28 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |..( | |
|00002c70| 20 20 20 42 4e 45 20 20 | 20 20 20 73 65 61 72 63 | BNE | searc|
|00002c80| 68 66 6f 72 64 6f 74 0d | 09 a6 4c 20 20 20 20 20 |hfordot.|..L |
|00002c90| 20 20 20 20 20 20 20 20 | 20 20 20 4c 44 52 42 20 | | LDRB |
|00002ca0| 20 20 20 52 36 2c 5b 52 | 30 5d 20 20 20 20 20 20 | R6,[R|0] |
|00002cb0| 20 20 20 3b 20 49 66 20 | 2a 20 6e 6f 74 20 61 74 | ; If |* not at|
|00002cc0| 20 73 74 61 72 74 20 61 | 6e 64 20 6e 6f 74 20 2a | start a|nd not *|
|00002cd0| 47 6f 73 0d 09 b0 48 20 | 20 20 20 20 20 20 20 20 |Gos...H | |
|00002ce0| 20 20 20 20 20 20 20 43 | 4d 50 20 20 20 20 20 52 | C|MP R|
|00002cf0| 36 2c 23 97 22 2a 22 20 | 20 20 20 20 20 3b 20 70 |6,#."*" | ; p|
|00002d00| 72 6f 6d 70 74 20 74 68 | 65 6e 20 6e 6f 74 20 61 |rompt th|en not a|
|00002d10| 20 2a 20 63 6f 6d 6d 61 | 6e 64 2c 0d 09 ba 40 20 | * comma|nd,...@ |
|00002d20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 42 | | B|
|00002d30| 4e 45 20 20 20 20 20 67 | 6f 74 6c 69 6e 65 73 74 |NE g|otlinest|
|00002d40| 61 72 74 20 20 20 20 3b | 20 73 6f 20 70 61 72 73 |art ;| so pars|
|00002d50| 65 20 61 73 20 6e 6f 72 | 6d 61 6c 0d 09 c4 21 2e |e as nor|mal...!.|
|00002d60| 73 65 61 72 63 68 66 6f | 72 64 6f 74 20 20 20 4d |searchfo|rdot M|
|00002d70| 4f 56 20 20 20 20 20 52 | 36 2c 23 30 0d 09 ce 3f |OV R|6,#0...?|
|00002d80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002d90| 4d 4f 56 20 20 20 20 20 | 52 38 2c 23 30 20 20 20 |MOV |R8,#0 |
|00002da0| 20 20 20 20 20 20 20 20 | 3b 20 46 6f 75 6e 64 20 | |; Found |
|00002db0| 6e 6f 6e 2d 2a 20 79 65 | 74 20 3f 0d 09 d8 49 2e |non-* ye|t ?...I.|
|00002dc0| 67 6f 66 6f 72 64 6f 74 | 20 20 20 20 20 20 20 4c |gofordot| L|
|00002dd0| 44 52 42 20 20 20 20 52 | 37 2c 5b 52 30 2c 52 36 |DRB R|7,[R0,R6|
|00002de0| 5d 20 20 20 20 20 20 3b | 20 46 69 6e 64 20 74 68 |] ;| Find th|
|00002df0| 65 20 64 6f 74 20 74 68 | 61 74 20 6d 61 72 6b 73 |e dot th|at marks|
|00002e00| 20 74 68 65 0d 09 d9 21 | 20 20 20 20 20 20 20 20 | the...!| |
|00002e10| 20 20 20 20 20 20 20 20 | 4d 4f 56 53 20 20 20 20 | |MOVS |
|00002e20| 52 38 2c 52 38 0d 09 e2 | 3f 20 20 20 20 20 20 20 |R8,R8...|? |
|00002e30| 20 20 20 20 20 20 20 20 | 20 43 4d 50 45 51 20 20 | | CMPEQ |
|00002e40| 20 52 37 2c 23 97 22 2a | 22 20 20 20 20 20 20 3b | R7,#."*|" ;|
|00002e50| 20 53 74 69 6c 6c 20 6c | 65 61 64 69 6e 67 20 2a | Still l|eading *|
|00002e60| 27 73 20 3f 0d 09 ec 4a | 20 20 20 20 20 20 20 20 |'s ?...J| |
|00002e70| 20 20 20 20 20 20 20 20 | 41 44 44 45 51 20 20 20 | |ADDEQ |
|00002e80| 52 35 2c 52 35 2c 23 31 | 20 20 20 20 20 20 20 20 |R5,R5,#1| |
|00002e90| 3b 20 49 66 20 73 6f 2c | 20 61 64 6a 75 73 74 20 |; If so,| adjust |
|00002ea0| 70 61 74 68 6e 61 6d 65 | 20 73 74 61 72 74 0d 09 |pathname| start..|
|00002eb0| ed 21 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.! | |
|00002ec0| 20 20 4d 4f 56 4e 45 20 | 20 20 52 38 2c 23 31 0d | MOVNE | R8,#1.|
|00002ed0| 09 f6 44 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |..D | |
|00002ee0| 20 20 20 43 4d 50 20 20 | 20 20 20 52 37 2c 23 97 | CMP | R7,#.|
|00002ef0| 22 2e 22 20 20 20 20 20 | 20 3b 20 65 6e 64 20 6f |"." | ; end o|
|00002f00| 66 20 74 68 65 20 61 62 | 62 72 65 76 69 61 74 65 |f the ab|breviate|
|00002f10| 64 20 2a 0d 0a 00 1e 20 | 20 20 20 20 20 20 20 20 |d *.... | |
|00002f20| 20 20 20 20 20 20 20 ec | 51 20 20 20 52 35 2c 52 | .|Q R5,R|
|00002f30| 36 0d 0a 0a 35 20 20 20 | 20 20 20 20 20 20 20 20 |6...5 | |
|00002f40| 20 20 20 20 20 42 45 51 | 20 20 20 20 20 67 6f 74 | BEQ| got|
|00002f50| 6c 69 6e 65 73 74 61 72 | 74 20 20 20 20 3b 20 63 |linestar|t ; c|
|00002f60| 6f 6d 6d 61 6e 64 0d 0a | 14 24 20 20 20 20 20 20 |ommand..|.$ |
|00002f70| 20 20 20 20 20 20 20 20 | 20 20 41 44 44 20 20 20 | | ADD |
|00002f80| 20 20 52 36 2c 52 36 2c | 23 31 0d 0a 1e 21 20 20 | R6,R6,|#1...! |
|00002f90| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 43 4d | | CM|
|00002fa0| 50 20 20 20 20 20 52 36 | 2c 52 32 0d 0a 28 24 20 |P R6|,R2..($ |
|00002fb0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 42 | | B|
|00002fc0| 4c 54 20 20 20 20 20 67 | 6f 66 6f 72 64 6f 74 0d |LT g|ofordot.|
|00002fd0| 0a 32 4a 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.2J | |
|00002fe0| 20 20 20 42 20 20 20 20 | 20 20 20 67 6f 74 6c 69 | B | gotli|
|00002ff0| 6e 65 73 74 61 72 74 20 | 20 20 20 3b 20 4e 6f 20 |nestart | ; No |
|00003000| 64 6f 74 20 66 6f 75 6e | 64 2c 20 73 6f 20 6c 65 |dot foun|d, so le|
|00003010| 61 76 65 20 61 6c 6f 6e | 65 0d 0a 3c 21 2e 73 74 |ave alon|e..<!.st|
|00003020| 69 6c 6c 69 6e 6d 69 64 | 64 6c 65 20 20 4d 4f 56 |illinmid|dle MOV|
|00003030| 20 20 20 20 20 52 34 2c | 52 35 0d 0a 46 27 20 20 | R4,|R5..F' |
|00003040| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 42 4c | | BL|
|00003050| 20 20 20 20 20 20 63 68 | 65 63 6b 66 6f 72 73 65 | ch|eckforse|
|00003060| 70 0d 0a 50 28 20 20 20 | 20 20 20 20 20 20 20 20 |p..P( | |
|00003070| 20 20 20 20 20 42 4e 45 | 20 20 20 20 20 73 74 69 | BNE| sti|
|00003080| 6c 6c 62 61 63 6b 69 6e | 67 0d 0a 5a 48 2e 67 6f |llbackin|g..ZH.go|
|00003090| 74 6c 69 6e 65 73 74 61 | 72 74 20 20 20 41 44 44 |tlinesta|rt ADD|
|000030a0| 20 20 20 20 20 52 35 2c | 52 35 2c 23 31 20 20 20 | R5,|R5,#1 |
|000030b0| 20 20 20 20 20 3b 20 41 | 64 6a 75 73 74 20 62 61 | ; A|djust ba|
|000030c0| 63 6b 20 74 6f 20 70 61 | 74 68 20 73 74 61 72 74 |ck to pa|th start|
|000030d0| 2e 0d 0a 64 47 20 20 20 | 20 20 20 20 20 20 20 20 |...dG | |
|000030e0| 20 20 20 20 20 41 44 52 | 20 20 20 20 20 52 38 2c | ADR| R8,|
|000030f0| 66 75 6c 6c 70 61 74 68 | 6e 61 6d 65 20 3b 20 50 |fullpath|name ; P|
|00003100| 6f 69 6e 74 20 74 6f 20 | 70 61 74 68 6e 61 6d 65 |oint to |pathname|
|00003110| 20 62 75 66 66 65 72 2e | 0d 0a 6e 42 20 20 20 20 | buffer.|..nB |
|00003120| 20 20 20 20 20 20 20 20 | 20 20 20 20 4d 4f 56 20 | | MOV |
|00003130| 20 20 20 20 52 39 2c 52 | 35 20 20 20 20 20 20 20 | R9,R|5 |
|00003140| 20 20 20 20 3b 20 53 61 | 76 65 20 70 61 74 68 6e | ; Sa|ve pathn|
|00003150| 61 6d 65 20 73 74 61 72 | 74 2e 0d 0a 78 47 20 20 |ame star|t...xG |
|00003160| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 4d 4f | | MO|
|00003170| 56 20 20 20 20 20 52 33 | 2c 23 30 20 20 20 20 20 |V R3|,#0 |
|00003180| 20 20 20 20 20 20 3b 20 | 5a 65 72 6f 20 62 75 66 | ; |Zero buf|
|00003190| 66 65 72 20 63 6f 70 79 | 20 70 6f 69 6e 74 65 72 |fer copy| pointer|
|000031a0| 2e 0d 0a 82 45 20 20 20 | 20 20 20 20 20 20 20 20 |....E | |
|000031b0| 20 20 20 20 20 4d 4f 56 | 20 20 20 20 20 52 36 2c | MOV| R6,|
|000031c0| 52 31 20 20 20 20 20 20 | 20 20 20 20 20 3b 20 4e |R1 | ; N|
|000031d0| 6f 77 20 67 6f 20 66 6f | 72 77 61 72 64 73 20 74 |ow go fo|rwards t|
|000031e0| 6f 20 66 69 6e 64 0d 0a | 8c 44 2e 73 74 69 6c 6c |o find..|.D.still|
|000031f0| 67 6f 69 6e 67 20 20 20 | 20 20 4d 4f 56 20 20 20 |going | MOV |
|00003200| 20 20 52 34 2c 52 36 20 | 20 20 20 20 20 20 20 20 | R4,R6 | |
|00003210| 20 20 3b 20 74 68 65 20 | 66 75 6c 6c 20 70 61 74 | ; the |full pat|
|00003220| 68 6e 61 6d 65 20 65 6e | 64 2e 0d 0a 96 21 20 20 |hname en|d....! |
|00003230| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 43 4d | | CM|
|00003240| 50 20 20 20 20 20 52 36 | 2c 52 32 0d 0a a0 23 20 |P R6|,R2...# |
|00003250| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 42 | | B|
|00003260| 45 51 20 20 20 20 20 62 | 61 63 6b 64 69 72 0d 0a |EQ b|ackdir..|
|00003270| aa 27 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.' | |
|00003280| 20 20 42 4c 20 20 20 20 | 20 20 63 68 65 63 6b 66 | BL | checkf|
|00003290| 6f 72 73 65 70 0d 0a b4 | 24 20 20 20 20 20 20 20 |orsep...|$ |
|000032a0| 20 20 20 20 20 20 20 20 | 20 41 44 44 4e 45 20 20 | | ADDNE |
|000032b0| 20 52 36 2c 52 36 2c 23 | 31 0d 0a be 26 20 20 20 | R6,R6,#|1...& |
|000032c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 42 4e 45 | | BNE|
|000032d0| 20 20 20 20 20 73 74 69 | 6c 6c 67 6f 69 6e 67 0d | sti|llgoing.|
|000032e0| 0a c8 43 2e 62 61 63 6b | 64 69 72 20 20 20 20 20 |..C.back|dir |
|000032f0| 20 20 20 53 55 42 20 20 | 20 20 20 52 34 2c 52 34 | SUB | R4,R4|
|00003300| 2c 23 31 20 20 20 20 20 | 20 20 20 3b 20 57 6f 72 |,#1 | ; Wor|
|00003310| 6b 20 62 61 63 6b 20 66 | 72 6f 6d 20 65 6e 64 20 |k back f|rom end |
|00003320| 74 6f 0d 0a d2 48 20 20 | 20 20 20 20 20 20 20 20 |to...H | |
|00003330| 20 20 20 20 20 20 43 4d | 50 20 20 20 20 20 52 34 | CM|P R4|
|00003340| 2c 52 35 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 |,R5 | ; |
|00003350| 66 69 6e 64 20 74 68 65 | 20 73 65 70 61 72 61 74 |find the| separat|
|00003360| 6f 72 20 62 65 74 77 65 | 65 6e 0d 0a dc 47 20 20 |or betwe|en...G |
|00003370| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 4d 4f | | MO|
|00003380| 56 4c 45 20 20 20 52 37 | 2c 23 30 20 20 20 20 20 |VLE R7|,#0 |
|00003390| 20 20 20 20 20 20 3b 20 | 74 68 65 20 70 61 74 68 | ; |the path|
|000033a0| 6e 61 6d 65 20 61 6e 64 | 20 6c 65 61 66 6e 61 6d |name and| leafnam|
|000033b0| 65 0d 0a e6 24 20 20 20 | 20 20 20 20 20 20 20 20 |e...$ | |
|000033c0| 20 20 20 20 20 42 4c 45 | 20 20 20 20 20 62 6c 61 | BLE| bla|
|000033d0| 6e 6b 64 69 72 0d 0a f0 | 26 20 20 20 20 20 20 20 |nkdir...|& |
|000033e0| 20 20 20 20 20 20 20 20 | 20 4c 44 52 42 20 20 20 | | LDRB |
|000033f0| 20 52 37 2c 5b 52 30 2c | 52 34 5d 0d 0a fa 43 20 | R7,[R0,|R4]...C |
|00003400| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 43 | | C|
|00003410| 4d 50 20 20 20 20 20 52 | 37 2c 23 97 22 3a 22 20 |MP R|7,#.":" |
|00003420| 20 20 20 20 20 3b 20 50 | 61 74 68 6e 61 6d 65 20 | ; P|athname |
|00003430| 73 68 6f 75 6c 64 20 69 | 6e 63 6c 75 64 65 0d 0b |should i|nclude..|
|00003440| 04 33 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.3 | |
|00003450| 20 20 41 44 44 45 51 20 | 20 20 52 34 2c 52 34 2c | ADDEQ | R4,R4,|
|00003460| 23 31 20 20 20 20 20 20 | 20 20 3b 20 63 6f 6c 6f |#1 | ; colo|
|00003470| 6e 0d 0b 0e 24 20 20 20 | 20 20 20 20 20 20 20 20 |n...$ | |
|00003480| 20 20 20 20 20 43 4d 50 | 4e 45 20 20 20 52 37 2c | CMP|NE R7,|
|00003490| 23 97 22 2e 22 0d 0b 18 | 23 20 20 20 20 20 20 20 |#."."...|# |
|000034a0| 20 20 20 20 20 20 20 20 | 20 42 4e 45 20 20 20 20 | | BNE |
|000034b0| 20 62 61 63 6b 64 69 72 | 0d 0b 22 47 2e 63 6f 70 | backdir|.."G.cop|
|000034c0| 79 74 6f 66 75 6c 6c 62 | 75 66 66 20 4c 44 52 42 |ytofullb|uff LDRB|
|000034d0| 20 20 20 20 52 31 30 2c | 5b 52 30 2c 52 39 5d 20 | R10,|[R0,R9] |
|000034e0| 20 20 20 20 3b 20 43 6f | 70 79 20 70 61 74 68 6e | ; Co|py pathn|
|000034f0| 61 6d 65 20 69 6e 74 6f | 20 62 75 66 66 65 72 0d |ame into| buffer.|
|00003500| 0b 2c 27 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.,' | |
|00003510| 20 20 20 53 54 52 42 20 | 20 20 20 52 31 30 2c 5b | STRB | R10,[|
|00003520| 52 38 2c 52 33 5d 0d 0b | 36 24 20 20 20 20 20 20 |R8,R3]..|6$ |
|00003530| 20 20 20 20 20 20 20 20 | 20 20 41 44 44 20 20 20 | | ADD |
|00003540| 20 20 52 39 2c 52 39 2c | 23 31 0d 0b 40 24 20 20 | R9,R9,|#1..@$ |
|00003550| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 41 44 | | AD|
|00003560| 44 20 20 20 20 20 52 33 | 2c 52 33 2c 23 31 0d 0b |D R3|,R3,#1..|
|00003570| 4a 2b 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |J+ | |
|00003580| 20 20 43 4d 50 20 20 20 | 20 20 52 33 2c 23 6d 61 | CMP | R3,#ma|
|00003590| 78 70 61 74 68 6c 65 6e | 25 0d 0b 54 26 20 20 20 |xpathlen|%..T& |
|000035a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 42 45 51 | | BEQ|
|000035b0| 20 20 20 20 20 63 61 6e | 74 65 78 70 61 6e 64 0d | can|texpand.|
|000035c0| 0b 5e 21 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.^! | |
|000035d0| 20 20 20 43 4d 50 20 20 | 20 20 20 52 39 2c 52 34 | CMP | R9,R4|
|000035e0| 0d 0b 68 2a 20 20 20 20 | 20 20 20 20 20 20 20 20 |..h* | |
|000035f0| 20 20 20 20 42 4c 54 20 | 20 20 20 20 63 6f 70 79 | BLT | copy|
|00003600| 74 6f 66 75 6c 6c 62 75 | 66 66 0d 0b 72 41 2e 62 |tofullbu|ff..rA.b|
|00003610| 6c 61 6e 6b 64 69 72 20 | 20 20 20 20 20 20 4d 4f |lankdir | MO|
|00003620| 56 20 20 20 20 20 52 31 | 30 2c 23 30 20 20 20 20 |V R1|0,#0 |
|00003630| 20 20 20 20 20 20 3b 20 | 54 72 75 6e 63 61 74 69 | ; |Truncati|
|00003640| 6e 67 20 70 61 74 68 6e | 61 6d 65 0d 0b 7c 27 20 |ng pathn|ame..|' |
|00003650| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 53 | | S|
|00003660| 54 52 42 20 20 20 20 52 | 31 30 2c 5b 52 38 2c 52 |TRB R|10,[R8,R|
|00003670| 33 5d 0d 0b 86 45 20 20 | 20 20 20 20 20 20 20 20 |3]...E | |
|00003680| 20 20 20 20 20 20 43 4d | 50 20 20 20 20 20 52 37 | CM|P R7|
|00003690| 2c 23 97 22 2e 22 20 20 | 20 20 20 20 3b 20 41 64 |,#."." | ; Ad|
|000036a0| 6a 75 73 74 20 69 66 20 | 2e 20 77 61 73 20 73 65 |just if |. was se|
|000036b0| 70 61 72 61 74 6f 72 0d | 0b 90 46 20 20 20 20 20 |parator.|..F |
|000036c0| 20 20 20 20 20 20 20 20 | 20 20 20 41 44 44 45 51 | | ADDEQ|
|000036d0| 20 20 20 52 34 2c 52 34 | 2c 23 31 20 20 20 20 20 | R4,R4|,#1 |
|000036e0| 20 20 20 3b 20 28 6c 65 | 61 76 65 20 6f 75 74 20 | ; (le|ave out |
|000036f0| 66 72 6f 6d 20 70 61 74 | 68 6e 61 6d 65 0d 0b 9a |from pat|hname...|
|00003700| 37 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |7 | |
|00003710| 20 ec 51 20 20 20 52 39 | 2c 52 34 20 20 20 20 20 | .Q R9|,R4 |
|00003720| 20 20 20 20 20 20 3b 20 | 20 80 20 6c 65 61 66 6e | ; | . leafn|
|00003730| 61 6d 65 29 0d 0b a4 27 | 20 20 20 20 20 20 20 20 |ame)...'| |
|00003740| 20 20 20 20 20 20 20 20 | 41 44 52 20 20 20 20 20 | |ADR |
|00003750| 52 38 2c 6c 65 61 66 6e | 61 6d 65 0d 0b ae 21 20 |R8,leafn|ame...! |
|00003760| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 4d | | M|
|00003770| 4f 56 20 20 20 20 20 52 | 33 2c 23 30 0d 0b b8 21 |OV R|3,#0...!|
|00003780| 2e 63 6f 70 79 6c 65 61 | 66 62 75 66 66 20 20 20 |.copylea|fbuff |
|00003790| 43 4d 50 20 20 20 20 20 | 52 39 2c 52 36 0d 0b c2 |CMP |R9,R6...|
|000037a0| 25 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |% | |
|000037b0| 20 42 47 45 20 20 20 20 | 20 61 6c 6c 63 6f 70 69 | BGE | allcopi|
|000037c0| 65 64 0d 0b cc 27 20 20 | 20 20 20 20 20 20 20 20 |ed...' | |
|000037d0| 20 20 20 20 20 20 4c 44 | 52 42 20 20 20 20 52 31 | LD|RB R1|
|000037e0| 30 2c 5b 52 30 2c 52 39 | 5d 0d 0b d6 27 20 20 20 |0,[R0,R9|]...' |
|000037f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 53 54 52 | | STR|
|00003800| 42 20 20 20 20 52 31 30 | 2c 5b 52 38 2c 52 33 5d |B R10|,[R8,R3]|
|00003810| 0d 0b e0 24 20 20 20 20 | 20 20 20 20 20 20 20 20 |...$ | |
|00003820| 20 20 20 20 41 44 44 20 | 20 20 20 20 52 39 2c 52 | ADD | R9,R|
|00003830| 39 2c 23 31 0d 0b ea 24 | 20 20 20 20 20 20 20 20 |9,#1...$| |
|00003840| 20 20 20 20 20 20 20 20 | 41 44 44 20 20 20 20 20 | |ADD |
|00003850| 52 33 2c 52 33 2c 23 31 | 0d 0b f4 29 20 20 20 20 |R3,R3,#1|...) |
|00003860| 20 20 20 20 20 20 20 20 | 20 20 20 20 43 4d 50 20 | | CMP |
|00003870| 20 20 20 20 52 33 2c 23 | 6d 61 78 6c 65 6e 25 2d | R3,#|maxlen%-|
|00003880| 31 0d 0b fe 26 20 20 20 | 20 20 20 20 20 20 20 20 |1...& | |
|00003890| 20 20 20 20 20 42 45 51 | 20 20 20 20 20 63 61 6e | BEQ| can|
|000038a0| 74 65 78 70 61 6e 64 0d | 0c 08 28 20 20 20 20 20 |texpand.|..( |
|000038b0| 20 20 20 20 20 20 20 20 | 20 20 20 42 4e 45 20 20 | | BNE |
|000038c0| 20 20 20 63 6f 70 79 6c | 65 61 66 62 75 66 66 0d | copyl|eafbuff.|
|000038d0| 0c 12 4a 2e 61 6c 6c 63 | 6f 70 69 65 64 20 20 20 |..J.allc|opied |
|000038e0| 20 20 20 43 4d 50 20 20 | 20 20 20 52 31 30 2c 23 | CMP | R10,#|
|000038f0| 97 22 2a 22 20 20 20 20 | 20 3b 20 41 64 64 20 61 |."*" | ; Add a|
|00003900| 20 2a 20 74 6f 20 74 68 | 65 20 65 6e 64 20 6f 66 | * to th|e end of|
|00003910| 20 6c 65 61 66 6e 61 6d | 65 0d 0c 1c 4a 20 20 20 | leafnam|e...J |
|00003920| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 4d 4f 56 | | MOV|
|00003930| 4e 45 20 20 20 52 31 30 | 2c 23 97 22 2a 22 20 20 |NE R10|,#."*" |
|00003940| 20 20 20 3b 20 69 66 20 | 69 74 20 64 6f 65 73 6e | ; if |it doesn|
|00003950| 27 74 20 61 6c 72 65 61 | 64 79 20 68 61 76 65 20 |'t alrea|dy have |
|00003960| 6f 6e 65 0d 0c 26 27 20 | 20 20 20 20 20 20 20 20 |one..&' | |
|00003970| 20 20 20 20 20 20 20 53 | 54 52 4e 45 42 20 20 52 | S|TRNEB R|
|00003980| 31 30 2c 5b 52 38 2c 52 | 33 5d 0d 0c 30 24 20 20 |10,[R8,R|3]..0$ |
|00003990| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 41 44 | | AD|
|000039a0| 44 4e 45 20 20 20 52 33 | 2c 52 33 2c 23 31 0d 0c |DNE R3|,R3,#1..|
|000039b0| 3a 44 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |:D | |
|000039c0| 20 20 4d 4f 56 20 20 20 | 20 20 52 31 30 2c 23 30 | MOV | R10,#0|
|000039d0| 20 20 20 20 20 20 20 20 | 20 20 3b 20 54 65 72 6d | | ; Term|
|000039e0| 69 6e 61 74 65 20 74 68 | 65 20 6c 65 61 66 6e 61 |inate th|e leafna|
|000039f0| 6d 65 0d 0c 44 27 20 20 | 20 20 20 20 20 20 20 20 |me..D' | |
|00003a00| 20 20 20 20 20 20 53 54 | 52 42 20 20 20 20 52 31 | ST|RB R1|
|00003a10| 30 2c 5b 52 38 2c 52 33 | 5d 0d 0c 4e 4c 20 20 20 |0,[R8,R3|]..NL |
|00003a20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 53 55 42 | | SUB|
|00003a30| 20 20 20 20 20 52 33 2c | 52 36 2c 52 31 20 20 20 | R3,|R6,R1 |
|00003a40| 20 20 20 20 20 3b 20 23 | 20 63 68 61 72 73 20 63 | ; #| chars c|
|00003a50| 75 72 73 6f 72 20 69 73 | 20 66 72 6f 6d 20 70 61 |ursor is| from pa|
|00003a60| 74 68 65 6e 64 0d 0c 58 | 2b 20 20 20 20 20 20 20 |thend..X|+ |
|00003a70| 20 20 20 20 20 20 20 20 | 20 41 44 52 20 20 20 20 | | ADR |
|00003a80| 20 52 30 2c 66 75 6c 6c | 70 61 74 68 6e 61 6d 65 | R0,full|pathname|
|00003a90| 0d 0c 62 21 20 20 20 20 | 20 20 20 20 20 20 20 20 |..b! | |
|00003aa0| 20 20 20 20 4d 4f 56 20 | 20 20 20 20 52 31 2c 52 | MOV | R1,R|
|00003ab0| 38 0d 0c 6c 2b 20 20 20 | 20 20 20 20 20 20 20 20 |8..l+ | |
|00003ac0| 20 20 20 20 20 42 4c 20 | 20 20 20 20 20 63 6f 6d | BL | com|
|00003ad0| 70 6c 65 74 65 5f 62 75 | 66 66 65 72 0d 0c 76 3d |plete_bu|ffer..v=|
|00003ae0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003af0| 4d 4f 56 53 20 20 20 20 | 52 31 2c 52 31 20 20 20 |MOVS |R1,R1 |
|00003b00| 20 20 20 20 20 20 20 20 | 3b 20 4e 6f 20 6d 61 74 | |; No mat|
|00003b10| 63 68 20 61 74 20 61 6c | 6c 0d 0c 80 26 20 20 20 |ch at al|l...& |
|00003b20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 42 45 51 | | BEQ|
|00003b30| 20 20 20 20 20 63 61 6e | 74 65 78 70 61 6e 64 0d | can|texpand.|
|00003b40| 0c 8a 4b 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |..K | |
|00003b50| 20 20 20 53 54 52 42 20 | 20 20 20 52 33 2c 70 65 | STRB | R3,pe|
|00003b60| 6e 64 69 6e 67 72 69 67 | 68 74 20 3b 20 53 69 67 |ndingrig|ht ; Sig|
|00003b70| 6e 61 6c 20 72 65 61 64 | 20 63 68 61 72 20 74 6f |nal read| char to|
|00003b80| 20 64 6f 20 72 69 67 68 | 74 73 0d 0c 94 23 20 20 | do righ|ts...# |
|00003b90| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 4d 4f | | MO|
|00003ba0| 56 20 20 20 20 20 52 32 | 2c 23 31 32 37 0d 0c 9e |V R2|,#127...|
|00003bb0| 40 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |@ | |
|00003bc0| 20 53 55 42 20 20 20 20 | 20 52 33 2c 52 36 2c 52 | SUB | R3,R6,R|
|00003bd0| 34 20 20 20 20 20 20 20 | 20 3b 20 50 61 72 74 69 |4 | ; Parti|
|00003be0| 61 6c 20 6e 61 6d 65 20 | 77 69 64 74 68 0d 0c a8 |al name |width...|
|00003bf0| 41 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |A | |
|00003c00| 20 42 4c 20 20 20 20 20 | 20 66 6f 72 63 65 73 74 | BL | forcest|
|00003c10| 72 69 6e 67 20 20 20 20 | 20 3b 20 44 65 6c 65 74 |ring | ; Delet|
|00003c20| 65 20 70 61 72 74 69 61 | 6c 20 6e 61 6d 65 0d 0c |e partia|l name..|
|00003c30| b2 3e 2e 61 64 64 66 75 | 6c 6c 6e 61 6d 65 20 20 |.>.addfu|llname |
|00003c40| 20 20 4c 44 52 42 20 20 | 20 20 52 32 2c 5b 52 30 | LDRB | R2,[R0|
|00003c50| 5d 2c 23 31 20 20 20 20 | 20 20 3b 20 49 6e 73 65 |],#1 | ; Inse|
|00003c60| 72 74 20 66 75 6c 6c 20 | 6e 61 6d 65 0d 0c bc 21 |rt full |name...!|
|00003c70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003c80| 4d 4f 56 53 20 20 20 20 | 52 32 2c 52 32 0d 0c c6 |MOVS |R2,R2...|
|00003c90| 24 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |$ | |
|00003ca0| 20 42 4c 4e 45 20 20 20 | 20 66 6f 72 63 65 6b 65 | BLNE | forceke|
|00003cb0| 79 0d 0c d0 27 20 20 20 | 20 20 20 20 20 20 20 20 |y...' | |
|00003cc0| 20 20 20 20 20 42 4e 45 | 20 20 20 20 20 61 64 64 | BNE| add|
|00003cd0| 66 75 6c 6c 6e 61 6d 65 | 0d 0c da 44 20 20 20 20 |fullname|...D |
|00003ce0| 20 20 20 20 20 20 20 20 | 20 20 20 20 4d 4f 56 20 | | MOV |
|00003cf0| 20 20 20 20 52 30 2c 23 | 30 20 20 20 20 20 20 20 | R0,#|0 |
|00003d00| 20 20 20 20 3b 20 46 6f | 72 63 65 20 69 6e 74 6f | ; Fo|rce into|
|00003d10| 20 49 6e 73 65 72 74 20 | 6d 6f 64 65 0d 0c e4 27 | Insert |mode...'|
|00003d20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003d30| 53 54 52 42 20 20 20 20 | 52 30 2c 6f 76 65 72 66 |STRB |R0,overf|
|00003d40| 6c 61 67 0d 0c ee 21 20 | 20 20 20 20 20 20 20 20 |lag...! | |
|00003d50| 20 20 20 20 20 20 20 43 | 4d 50 20 20 20 20 20 52 | C|MP R|
|00003d60| 31 2c 23 31 0d 0c f8 24 | 20 20 20 20 20 20 20 20 |1,#1...$| |
|00003d70| 20 20 20 20 20 20 20 20 | 42 45 51 20 20 20 20 20 | |BEQ |
|00003d80| 65 78 70 61 6e 64 65 64 | 0d 0d 02 4a 2e 63 61 6e |expanded|...J.can|
|00003d90| 74 65 78 70 61 6e 64 20 | 20 20 20 20 42 4c 20 20 |texpand | BL |
|00003da0| 20 20 20 20 62 65 65 70 | 20 20 20 20 20 20 20 20 | beep| |
|00003db0| 20 20 20 20 3b 20 42 65 | 65 70 20 62 65 63 61 75 | ; Be|ep becau|
|00003dc0| 73 65 20 6e 6f 20 75 6e | 69 71 75 65 20 6d 61 74 |se no un|ique mat|
|00003dd0| 63 68 0d 0d 0c 2c 2e 65 | 78 70 61 6e 64 65 64 20 |ch...,.e|xpanded |
|00003de0| 20 20 20 20 20 20 4c 44 | 4d 46 44 20 20 20 52 31 | LD|MFD R1|
|00003df0| 33 21 2c 7b 52 30 2d 52 | 31 30 2c 50 43 7d 0d 0d |3!,{R0-R|10,PC}..|
|00003e00| 16 2d 2e 66 75 6c 6c 70 | 61 74 68 6e 61 6d 65 20 |.-.fullp|athname |
|00003e10| 20 20 45 51 55 53 20 20 | 20 20 c4 6d 61 78 70 61 | EQUS | .maxpa|
|00003e20| 74 68 6c 65 6e 25 2c 62 | 6c 24 29 0d 0d 20 29 2e |thlen%,b|l$).. ).|
|00003e30| 6c 65 61 66 6e 61 6d 65 | 20 20 20 20 20 20 20 45 |leafname| E|
|00003e40| 51 55 53 20 20 20 20 c4 | 6d 61 78 6c 65 6e 25 2c |QUS .|maxlen%,|
|00003e50| 62 6c 24 29 0d 0d 2a 1d | 2e 70 65 6e 64 69 6e 67 |bl$)..*.|.pending|
|00003e60| 72 69 67 68 74 20 20 20 | 45 51 55 42 20 20 20 20 |right |EQUB |
|00003e70| 30 0d 0d 34 1d 2e 6f 76 | 65 72 66 6c 61 67 20 20 |0..4..ov|erflag |
|00003e80| 20 20 20 20 20 45 51 55 | 42 20 20 20 20 30 0d 0d | EQU|B 0..|
|00003e90| 3e 1d 2e 61 74 67 6f 73 | 70 72 6f 6d 70 74 20 20 |>..atgos|prompt |
|00003ea0| 20 20 45 51 55 42 20 20 | 20 20 30 0d 0d 48 19 20 | EQUB | 0..H. |
|00003eb0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 41 | | A|
|00003ec0| 4c 49 47 4e 0d 0d 52 05 | 5d 0d 0d 5c 07 3d 41 25 |LIGN..R.|]..\.=A%|
|00003ed0| 0d 0d 66 04 0d 0d 70 0f | dd a4 73 77 69 28 73 77 |..f...p.|..swi(sw|
|00003ee0| 69 24 29 0d 0d 7a 21 f4 | 20 4e 65 61 74 20 6c 69 |i$)..z!.| Neat li|
|00003ef0| 74 74 6c 65 20 6d 61 63 | 72 6f 20 6f 72 20 77 68 |ttle mac|ro or wh|
|00003f00| 61 74 20 3f 0d 0d 84 12 | ea 20 42 25 2c 73 77 69 |at ?....|. B%,swi|
|00003f10| 73 74 72 25 28 29 0d 0d | 8e 11 de 20 73 77 69 73 |str%()..|... swis|
|00003f20| 74 72 25 20 26 34 30 0d | 0d 98 3b 24 73 77 69 73 |tr% &40.|..;$swis|
|00003f30| 74 72 25 3d 73 77 69 24 | 3a c8 99 20 22 4f 53 5f |tr%=swi$|:.. "OS_|
|00003f40| 53 57 49 4e 75 6d 62 65 | 72 46 72 6f 6d 53 74 72 |SWINumbe|rFromStr|
|00003f50| 69 6e 67 22 2c 2c 73 77 | 69 73 74 72 25 20 b8 20 |ing",,sw|istr% . |
|00003f60| 42 25 0d 0d a2 3c e7 20 | 42 25 3e 26 46 46 3a f1 |B%...<. |B%>&FF:.|
|00003f70| 22 42 61 64 20 53 57 49 | 20 28 26 22 3b 7e 42 25 |"Bad SWI| (&";~B%|
|00003f80| 3b 22 29 20 70 61 73 73 | 65 64 20 74 6f 20 46 4e |;") pass|ed to FN|
|00003f90| 73 77 69 20 2d 20 22 3b | 73 77 69 24 3a e0 0d 0d |swi - ";|swi$:...|
|00003fa0| ac 0b 5b 4f 50 54 20 41 | 25 0d 0d b6 23 20 20 20 |..[OPT A|%...# |
|00003fb0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 4d 4f 56 | | MOV|
|00003fc0| 20 20 20 20 20 73 77 69 | 2c 23 42 25 0d 0d c0 23 | swi|,#B%...#|
|00003fd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003fe0| 42 4c 20 20 20 20 20 20 | 4f 53 5f 43 61 6c 6c 0d |BL |OS_Call.|
|00003ff0| 0d ca 08 5d 3d 41 25 0d | ff |...]=A%.|. |
+--------+-------------------------+-------------------------+--------+--------+