Home » Archimedes archive » Acorn User » AU 1998-05 A.adf » Regulars » StarInfo/Ranke/BasicDir
StarInfo/Ranke/BasicDir
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 » Acorn User » AU 1998-05 A.adf » Regulars |
Filename: | StarInfo/Ranke/BasicDir |
Read OK: | ✔ |
File size: | 0BB9 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10ONERRORPRINTREPORT$ERL:END 20d$=FNdir 30DIM c 2048 40FOR p%=4 TO 7 STEP 2 50P%=0:O%=c 60[OPTp% 70dcd 0 80dcd init 90dcd exit 100dcd 0 110dcd title 120dcd help 130dcd 0 140dcd 0 150.title equs "BasicDir"+CHR$0 160.help equs "BasicDir"+CHR$9+"1.00 (18 Dec 1997)"+CHR$0 170 align 180.init stmfd 13!,{0-2,14} 190 mov 0,#6 ; claim 256 byte RMA 200 mov 3,#256 210 swi "OS_Module" 220 str 2,block ; pointer => .block 230 mov 0,#5 ; claim OS_CLI vector 240 adr 1,cli 250 swi "OS_Claim" 260 ldmfd 13!,{0-2,pc}^ 270.exit stmfd 13!,{0-2,14} 280 mov 0,#5 ; release OS_CLI vector 290 adr 1,cli 300 ldr 2,block 310 swi "OS_Release" 320 mov 0,#7 ; free RMA 330 swi "OS_Module" 340 ldmfd 13!,{0-2,pc}^ 350.cli stmfd 13!,{0-4,14} 360 adr 3,basic ; r3 <= 'BASIC -QUIT' (reference) 370.loop ldrb 1,[0],#1 ; read byte from OS_CLI commando 380 cmp 1,#96 ; simple upper-case conversion 390 subgt 1,1,#32 400 ldrb 2,[3],#1 ; read byte from reference 410 cmp 1,2 ; if not the same... 420 movnes 2,2 ; and not at end of reference,... 430 ldmnefd 13!,{0-4,pc}^ ; pass on 440 movs 2,2 ; if not at end, loop 450 bne loop 451 cmp 1,#64 ; if '@', it isn't a filename 452 ldmeqfd 13!,{0-4,pc}^ 460 cmp 1,#34 ; if '"', skip it 470 subne 0,0,#1 480 mov 1,0 ; r1 <= first char of path 490 mov 2,0 ; r2=end of path 500.loop ldrb 3,[0],#1 ; read byte from path 510 cmp 3,#34 ; if '"', leave loop 520 beq out 530 cmp 3,#32 ; if space or <32, leave loop 540 ble out 550 cmp 3,#46 ; if '.', this is the new end of path 560 subeq 2,0,#1 570 b loop ; loop 580.out subs 2,2,1 ; calculate lenght of path 581 ldmeqfd 13!,{0-4,pc}^ ; if 0, pass on 590 mov 3,2 ; r3=counter 600.loop ldrb 0,[1],#1 ; copy r3 bytes to claimed buffer 610 strb 0,[12],#1 620 subs 3,3,#1 630 bgt loop 640 mov 0,#13 ; store CR at the end of buffer 650 strb 0,[12] 660 adr 0,name ; set value of 'Basic$Dir' 670 ldr 1,block 680 mov 3,#0 690 mov 4,#0 700 swi "OS_SetVarVal" 710 ldmfd 13!,{0-4,pc}^ ; pass on 720.block dcd 0 730.basic equs "BASIC -QUIT "+CHR$0 740.name equs "Basic$Dir"+CHR$0 750] 760NEXT 770SYS 8,10,d$+"BasDir",&ffa,,c,O% 780END 790 800REM FNdir returns the directory from which 810REM this BASIC program has been started. 820 830DEF FNdir 840 LOCAL pnt%,s$,t$ 850 SYS &10 TO pnt% 860 pnt%+=6 870 WHILE ?pnt%<>32 880 pnt%+=1 890 ENDWHILE 900 s$="" 910 t$="" 920 pnt%+=1 930 WHILE ?pnt%>31 940 IF ?pnt%<>34 t$+=CHR$?pnt% 950 IF ?pnt%=46 THEN 960 s$+=t$ 970 t$="" 980 ENDIF 990 pnt%+=1 1000 ENDWHILE 1010=s$
��$�:� d$=�dir � c 2048 (� p%=4 � 7 � 2 2 P%=0:O%=c < [OPTp% F dcd 0 Pdcd init Zdcd exit d dcd 0 n dcd title xdcd help � dcd 0 � dcd 0 �.title equs "BasicDir"+�0 �5.help equs "BasicDir"+�9+"1.00 (18 Dec 1997)"+�0 � align �.init stmfd 13!,{0-2,14} �5 mov 0,#6 ; claim 256 byte RMA � mov 3,#256 � swi "OS_Module" �4 str 2,block ; pointer => .block �6 mov 0,#5 ; claim OS_CLI vector � adr 1,cli � swi "OS_Claim" ldmfd 13!,{0-2,pc}^ .exit stmfd 13!,{0-2,14} 8 mov 0,#5 ; release OS_CLI vector " adr 1,cli , ldr 2,block 6 swi "OS_Release" @+ mov 0,#7 ; free RMA J swi "OS_Module" T ldmfd 13!,{0-2,pc}^ ^.cli stmfd 13!,{0-4,14} h@ adr 3,basic ; r3 <= 'BASIC -Ș' (reference) rA.loop ldrb 1,[0],#1 ; read byte from OS_CLI commando |? cmp 1,#96 ; simple upper-case conversion � subgt 1,1,#32 �; ldrb 2,[3],#1 ; read byte from reference �5 cmp 1,2 ; if not the same... �B movnes 2,2 ; and not at end of reference,... �* ldmnefd 13!,{0-4,pc}^ ; pass on �6 movs 2,2 ; if not at end, loop � bne loop �> cmp 1,#64 ; if '@', it isn't a filename � ldmeqfd 13!,{0-4,pc}^ �2 cmp 1,#34 ; if '"', skip it � subne 0,0,#1 �; mov 1,0 ; r1 <= first char of path �1 mov 2,0 ; r2=end of path �6.loop ldrb 3,[0],#1 ; read byte from path �5 cmp 3,#34 ; if '"', leave loop beq out > cmp 3,#32 ; if space or <32, leave loop ble out &F cmp 3,#46 ; if '.', this is the new end of path 0 subeq 2,0,#1 :' b loop ; loop D;.out subs 2,2,1 ; calculate lenght of path E0 ldmeqfd 13!,{0-4,pc}^ ; if 0, pass on N- mov 3,2 ; r3=counter XB.loop ldrb 0,[1],#1 ; copy r3 bytes to claimed buffer b strb 0,[12],#1 l subs 3,3,#1 v bgt loop �@ mov 0,#13 ; store CR at the end of buffer � strb 0,[12] �; adr 0,name ; set value of 'Basic$Dir' � ldr 1,block � mov 3,#0 � mov 4,#0 � swi "OS_SetVarVal" �* ldmfd 13!,{0-4,pc}^ ; pass on �.block dcd 0 �!.basic equs "BASIC -QUIT "+�0 �.name equs "Basic$Dir"+�0 �] �� "ș 8,10,d$+"BasDir",&ffa,,c,O% � ,� FNdir returns the directory from which **� this BASIC program has been started. 4 > � �dir H � pnt%,s$,t$ R ș &10 � pnt% \ pnt%+=6 f ȕ ?pnt%<>32 p pnt%+=1 z � � s$="" � t$="" � pnt%+=1 � ȕ ?pnt%>31 � � ?pnt%<>34 t$+=�?pnt% � � ?pnt%=46 � � s$+=t$ � t$="" � � � pnt%+=1 � � �=s$ �
00000000 0d 00 0a 0c ee 85 f1 f6 24 9e 3a e0 0d 00 14 0b |........$.:.....| 00000010 64 24 3d a4 64 69 72 0d 00 1e 0c de 20 63 20 32 |d$=.dir..... c 2| 00000020 30 34 38 0d 00 28 12 e3 20 70 25 3d 34 20 b8 20 |048..(.. p%=4 . | 00000030 37 20 88 20 32 0d 00 32 0d 50 25 3d 30 3a 4f 25 |7 . 2..2.P%=0:O%| 00000040 3d 63 0d 00 3c 0a 5b 4f 50 54 70 25 0d 00 46 09 |=c..<.[OPTp%..F.| 00000050 64 63 64 20 30 0d 00 50 0c 64 63 64 20 69 6e 69 |dcd 0..P.dcd ini| 00000060 74 0d 00 5a 0c 64 63 64 20 65 78 69 74 0d 00 64 |t..Z.dcd exit..d| 00000070 09 64 63 64 20 30 0d 00 6e 0d 64 63 64 20 74 69 |.dcd 0..n.dcd ti| 00000080 74 6c 65 0d 00 78 0c 64 63 64 20 68 65 6c 70 0d |tle..x.dcd help.| 00000090 00 82 09 64 63 64 20 30 0d 00 8c 09 64 63 64 20 |...dcd 0....dcd | 000000a0 30 0d 00 96 1d 2e 74 69 74 6c 65 20 65 71 75 73 |0.....title equs| 000000b0 20 22 42 61 73 69 63 44 69 72 22 2b bd 30 0d 00 | "BasicDir"+.0..| 000000c0 a0 35 2e 68 65 6c 70 20 20 65 71 75 73 20 22 42 |.5.help equs "B| 000000d0 61 73 69 63 44 69 72 22 2b bd 39 2b 22 31 2e 30 |asicDir"+.9+"1.0| 000000e0 30 20 28 31 38 20 44 65 63 20 31 39 39 37 29 22 |0 (18 Dec 1997)"| 000000f0 2b bd 30 0d 00 aa 10 20 20 20 20 20 20 20 61 6c |+.0.... al| 00000100 69 67 6e 0d 00 b4 1d 2e 69 6e 69 74 20 20 73 74 |ign.....init st| 00000110 6d 66 64 20 31 33 21 2c 7b 30 2d 32 2c 31 34 7d |mfd 13!,{0-2,14}| 00000120 0d 00 be 35 20 20 20 20 20 20 20 6d 6f 76 20 30 |...5 mov 0| 00000130 2c 23 36 20 20 20 20 20 20 20 20 20 20 20 20 20 |,#6 | 00000140 20 3b 20 63 6c 61 69 6d 20 32 35 36 20 62 79 74 | ; claim 256 byt| 00000150 65 20 52 4d 41 0d 00 c8 15 20 20 20 20 20 20 20 |e RMA.... | 00000160 6d 6f 76 20 33 2c 23 32 35 36 0d 00 d2 1a 20 20 |mov 3,#256.... | 00000170 20 20 20 20 20 73 77 69 20 22 4f 53 5f 4d 6f 64 | swi "OS_Mod| 00000180 75 6c 65 22 0d 00 dc 34 20 20 20 20 20 20 20 73 |ule"...4 s| 00000190 74 72 20 32 2c 62 6c 6f 63 6b 20 20 20 20 20 20 |tr 2,block | 000001a0 20 20 20 20 20 3b 20 70 6f 69 6e 74 65 72 20 3d | ; pointer =| 000001b0 3e 20 2e 62 6c 6f 63 6b 0d 00 e6 36 20 20 20 20 |> .block...6 | 000001c0 20 20 20 6d 6f 76 20 30 2c 23 35 20 20 20 20 20 | mov 0,#5 | 000001d0 20 20 20 20 20 20 20 20 20 3b 20 63 6c 61 69 6d | ; claim| 000001e0 20 4f 53 5f 43 4c 49 20 76 65 63 74 6f 72 0d 00 | OS_CLI vector..| 000001f0 f0 14 20 20 20 20 20 20 20 61 64 72 20 31 2c 63 |.. adr 1,c| 00000200 6c 69 0d 00 fa 19 20 20 20 20 20 20 20 73 77 69 |li.... swi| 00000210 20 22 4f 53 5f 43 6c 61 69 6d 22 0d 01 04 1e 20 | "OS_Claim".... | 00000220 20 20 20 20 20 20 6c 64 6d 66 64 20 31 33 21 2c | ldmfd 13!,| 00000230 7b 30 2d 32 2c 70 63 7d 5e 0d 01 0e 1d 2e 65 78 |{0-2,pc}^.....ex| 00000240 69 74 20 20 73 74 6d 66 64 20 31 33 21 2c 7b 30 |it stmfd 13!,{0| 00000250 2d 32 2c 31 34 7d 0d 01 18 38 20 20 20 20 20 20 |-2,14}...8 | 00000260 20 6d 6f 76 20 30 2c 23 35 20 20 20 20 20 20 20 | mov 0,#5 | 00000270 20 20 20 20 20 20 20 3b 20 72 65 6c 65 61 73 65 | ; release| 00000280 20 4f 53 5f 43 4c 49 20 76 65 63 74 6f 72 0d 01 | OS_CLI vector..| 00000290 22 14 20 20 20 20 20 20 20 61 64 72 20 31 2c 63 |". adr 1,c| 000002a0 6c 69 0d 01 2c 16 20 20 20 20 20 20 20 6c 64 72 |li..,. ldr| 000002b0 20 32 2c 62 6c 6f 63 6b 0d 01 36 1b 20 20 20 20 | 2,block..6. | 000002c0 20 20 20 73 77 69 20 22 4f 53 5f 52 65 6c 65 61 | swi "OS_Relea| 000002d0 73 65 22 0d 01 40 2b 20 20 20 20 20 20 20 6d 6f |se"..@+ mo| 000002e0 76 20 30 2c 23 37 20 20 20 20 20 20 20 20 20 20 |v 0,#7 | 000002f0 20 20 20 20 3b 20 66 72 65 65 20 52 4d 41 0d 01 | ; free RMA..| 00000300 4a 1a 20 20 20 20 20 20 20 73 77 69 20 22 4f 53 |J. swi "OS| 00000310 5f 4d 6f 64 75 6c 65 22 0d 01 54 1e 20 20 20 20 |_Module"..T. | 00000320 20 20 20 6c 64 6d 66 64 20 31 33 21 2c 7b 30 2d | ldmfd 13!,{0-| 00000330 32 2c 70 63 7d 5e 0d 01 5e 1d 2e 63 6c 69 20 20 |2,pc}^..^..cli | 00000340 20 73 74 6d 66 64 20 31 33 21 2c 7b 30 2d 34 2c | stmfd 13!,{0-4,| 00000350 31 34 7d 0d 01 68 40 20 20 20 20 20 20 20 61 64 |14}..h@ ad| 00000360 72 20 33 2c 62 61 73 69 63 20 20 20 20 20 20 20 |r 3,basic | 00000370 20 20 20 20 3b 20 72 33 20 3c 3d 20 27 42 41 53 | ; r3 <= 'BAS| 00000380 49 43 20 2d c8 98 27 20 28 72 65 66 65 72 65 6e |IC -..' (referen| 00000390 63 65 29 0d 01 72 41 2e 6c 6f 6f 70 20 20 6c 64 |ce)..rA.loop ld| 000003a0 72 62 20 31 2c 5b 30 5d 2c 23 31 20 20 20 20 20 |rb 1,[0],#1 | 000003b0 20 20 20 20 3b 20 72 65 61 64 20 62 79 74 65 20 | ; read byte | 000003c0 66 72 6f 6d 20 4f 53 5f 43 4c 49 20 63 6f 6d 6d |from OS_CLI comm| 000003d0 61 6e 64 6f 0d 01 7c 3f 20 20 20 20 20 20 20 63 |ando..|? c| 000003e0 6d 70 20 31 2c 23 39 36 20 20 20 20 20 20 20 20 |mp 1,#96 | 000003f0 20 20 20 20 20 3b 20 73 69 6d 70 6c 65 20 75 70 | ; simple up| 00000400 70 65 72 2d 63 61 73 65 20 63 6f 6e 76 65 72 73 |per-case convers| 00000410 69 6f 6e 0d 01 86 18 20 20 20 20 20 20 20 73 75 |ion.... su| 00000420 62 67 74 20 31 2c 31 2c 23 33 32 0d 01 90 3b 20 |bgt 1,1,#32...; | 00000430 20 20 20 20 20 20 6c 64 72 62 20 32 2c 5b 33 5d | ldrb 2,[3]| 00000440 2c 23 31 20 20 20 20 20 20 20 20 20 3b 20 72 65 |,#1 ; re| 00000450 61 64 20 62 79 74 65 20 66 72 6f 6d 20 72 65 66 |ad byte from ref| 00000460 65 72 65 6e 63 65 0d 01 9a 35 20 20 20 20 20 20 |erence...5 | 00000470 20 63 6d 70 20 31 2c 32 20 20 20 20 20 20 20 20 | cmp 1,2 | 00000480 20 20 20 20 20 20 20 3b 20 69 66 20 6e 6f 74 20 | ; if not | 00000490 74 68 65 20 73 61 6d 65 2e 2e 2e 0d 01 a4 42 20 |the same......B | 000004a0 20 20 20 20 20 20 6d 6f 76 6e 65 73 20 32 2c 32 | movnes 2,2| 000004b0 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 61 6e | ; an| 000004c0 64 20 6e 6f 74 20 61 74 20 65 6e 64 20 6f 66 20 |d not at end of | 000004d0 72 65 66 65 72 65 6e 63 65 2c 2e 2e 2e 0d 01 ae |reference,......| 000004e0 2a 20 20 20 20 20 20 20 6c 64 6d 6e 65 66 64 20 |* ldmnefd | 000004f0 31 33 21 2c 7b 30 2d 34 2c 70 63 7d 5e 20 3b 20 |13!,{0-4,pc}^ ; | 00000500 70 61 73 73 20 6f 6e 0d 01 b8 36 20 20 20 20 20 |pass on...6 | 00000510 20 20 6d 6f 76 73 20 32 2c 32 20 20 20 20 20 20 | movs 2,2 | 00000520 20 20 20 20 20 20 20 20 3b 20 69 66 20 6e 6f 74 | ; if not| 00000530 20 61 74 20 65 6e 64 2c 20 6c 6f 6f 70 0d 01 c2 | at end, loop...| 00000540 13 20 20 20 20 20 20 20 62 6e 65 20 6c 6f 6f 70 |. bne loop| 00000550 0d 01 c3 3e 20 20 20 20 20 20 20 63 6d 70 20 31 |...> cmp 1| 00000560 2c 23 36 34 20 20 20 20 20 20 20 20 20 20 20 20 |,#64 | 00000570 20 3b 20 69 66 20 27 40 27 2c 20 69 74 20 69 73 | ; if '@', it is| 00000580 6e 27 74 20 61 20 66 69 6c 65 6e 61 6d 65 0d 01 |n't a filename..| 00000590 c4 20 20 20 20 20 20 20 20 6c 64 6d 65 71 66 64 |. ldmeqfd| 000005a0 20 31 33 21 2c 7b 30 2d 34 2c 70 63 7d 5e 0d 01 | 13!,{0-4,pc}^..| 000005b0 cc 32 20 20 20 20 20 20 20 63 6d 70 20 31 2c 23 |.2 cmp 1,#| 000005c0 33 34 20 20 20 20 20 20 20 20 20 20 20 20 20 3b |34 ;| 000005d0 20 69 66 20 27 22 27 2c 20 73 6b 69 70 20 69 74 | if '"', skip it| 000005e0 0d 01 d6 17 20 20 20 20 20 20 20 73 75 62 6e 65 |.... subne| 000005f0 20 30 2c 30 2c 23 31 0d 01 e0 3b 20 20 20 20 20 | 0,0,#1...; | 00000600 20 20 6d 6f 76 20 31 2c 30 20 20 20 20 20 20 20 | mov 1,0 | 00000610 20 20 20 20 20 20 20 20 3b 20 72 31 20 3c 3d 20 | ; r1 <= | 00000620 66 69 72 73 74 20 63 68 61 72 20 6f 66 20 70 61 |first char of pa| 00000630 74 68 0d 01 ea 31 20 20 20 20 20 20 20 6d 6f 76 |th...1 mov| 00000640 20 32 2c 30 20 20 20 20 20 20 20 20 20 20 20 20 | 2,0 | 00000650 20 20 20 3b 20 72 32 3d 65 6e 64 20 6f 66 20 70 | ; r2=end of p| 00000660 61 74 68 0d 01 f4 36 2e 6c 6f 6f 70 20 20 6c 64 |ath...6.loop ld| 00000670 72 62 20 33 2c 5b 30 5d 2c 23 31 20 20 20 20 20 |rb 3,[0],#1 | 00000680 20 20 20 20 3b 20 72 65 61 64 20 62 79 74 65 20 | ; read byte | 00000690 66 72 6f 6d 20 70 61 74 68 0d 01 fe 35 20 20 20 |from path...5 | 000006a0 20 20 20 20 63 6d 70 20 33 2c 23 33 34 20 20 20 | cmp 3,#34 | 000006b0 20 20 20 20 20 20 20 20 20 20 3b 20 69 66 20 27 | ; if '| 000006c0 22 27 2c 20 6c 65 61 76 65 20 6c 6f 6f 70 0d 02 |"', leave loop..| 000006d0 08 12 20 20 20 20 20 20 20 62 65 71 20 6f 75 74 |.. beq out| 000006e0 0d 02 12 3e 20 20 20 20 20 20 20 63 6d 70 20 33 |...> cmp 3| 000006f0 2c 23 33 32 20 20 20 20 20 20 20 20 20 20 20 20 |,#32 | 00000700 20 3b 20 69 66 20 73 70 61 63 65 20 6f 72 20 3c | ; if space or <| 00000710 33 32 2c 20 6c 65 61 76 65 20 6c 6f 6f 70 0d 02 |32, leave loop..| 00000720 1c 12 20 20 20 20 20 20 20 62 6c 65 20 6f 75 74 |.. ble out| 00000730 0d 02 26 46 20 20 20 20 20 20 20 63 6d 70 20 33 |..&F cmp 3| 00000740 2c 23 34 36 20 20 20 20 20 20 20 20 20 20 20 20 |,#46 | 00000750 20 3b 20 69 66 20 27 2e 27 2c 20 74 68 69 73 20 | ; if '.', this | 00000760 69 73 20 74 68 65 20 6e 65 77 20 65 6e 64 20 6f |is the new end o| 00000770 66 20 70 61 74 68 0d 02 30 17 20 20 20 20 20 20 |f path..0. | 00000780 20 73 75 62 65 71 20 32 2c 30 2c 23 31 0d 02 3a | subeq 2,0,#1..:| 00000790 27 20 20 20 20 20 20 20 62 20 6c 6f 6f 70 20 20 |' b loop | 000007a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 | ; | 000007b0 6c 6f 6f 70 0d 02 44 3b 2e 6f 75 74 20 20 20 73 |loop..D;.out s| 000007c0 75 62 73 20 32 2c 32 2c 31 20 20 20 20 20 20 20 |ubs 2,2,1 | 000007d0 20 20 20 20 20 3b 20 63 61 6c 63 75 6c 61 74 65 | ; calculate| 000007e0 20 6c 65 6e 67 68 74 20 6f 66 20 70 61 74 68 0d | lenght of path.| 000007f0 02 45 30 20 20 20 20 20 20 20 6c 64 6d 65 71 66 |.E0 ldmeqf| 00000800 64 20 31 33 21 2c 7b 30 2d 34 2c 70 63 7d 5e 20 |d 13!,{0-4,pc}^ | 00000810 3b 20 69 66 20 30 2c 20 70 61 73 73 20 6f 6e 0d |; if 0, pass on.| 00000820 02 4e 2d 20 20 20 20 20 20 20 6d 6f 76 20 33 2c |.N- mov 3,| 00000830 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |2 | 00000840 3b 20 72 33 3d 63 6f 75 6e 74 65 72 0d 02 58 42 |; r3=counter..XB| 00000850 2e 6c 6f 6f 70 20 20 6c 64 72 62 20 30 2c 5b 31 |.loop ldrb 0,[1| 00000860 5d 2c 23 31 20 20 20 20 20 20 20 20 20 3b 20 63 |],#1 ; c| 00000870 6f 70 79 20 72 33 20 62 79 74 65 73 20 74 6f 20 |opy r3 bytes to | 00000880 63 6c 61 69 6d 65 64 20 62 75 66 66 65 72 0d 02 |claimed buffer..| 00000890 62 19 20 20 20 20 20 20 20 73 74 72 62 20 30 2c |b. strb 0,| 000008a0 5b 31 32 5d 2c 23 31 0d 02 6c 16 20 20 20 20 20 |[12],#1..l. | 000008b0 20 20 73 75 62 73 20 33 2c 33 2c 23 31 0d 02 76 | subs 3,3,#1..v| 000008c0 13 20 20 20 20 20 20 20 62 67 74 20 6c 6f 6f 70 |. bgt loop| 000008d0 0d 02 80 40 20 20 20 20 20 20 20 6d 6f 76 20 30 |...@ mov 0| 000008e0 2c 23 31 33 20 20 20 20 20 20 20 20 20 20 20 20 |,#13 | 000008f0 20 3b 20 73 74 6f 72 65 20 43 52 20 61 74 20 74 | ; store CR at t| 00000900 68 65 20 65 6e 64 20 6f 66 20 62 75 66 66 65 72 |he end of buffer| 00000910 0d 02 8a 16 20 20 20 20 20 20 20 73 74 72 62 20 |.... strb | 00000920 30 2c 5b 31 32 5d 0d 02 94 3b 20 20 20 20 20 20 |0,[12]...; | 00000930 20 61 64 72 20 30 2c 6e 61 6d 65 20 20 20 20 20 | adr 0,name | 00000940 20 20 20 20 20 20 20 3b 20 73 65 74 20 76 61 6c | ; set val| 00000950 75 65 20 6f 66 20 27 42 61 73 69 63 24 44 69 72 |ue of 'Basic$Dir| 00000960 27 0d 02 9e 16 20 20 20 20 20 20 20 6c 64 72 20 |'.... ldr | 00000970 31 2c 62 6c 6f 63 6b 0d 02 a8 13 20 20 20 20 20 |1,block.... | 00000980 20 20 6d 6f 76 20 33 2c 23 30 0d 02 b2 13 20 20 | mov 3,#0.... | 00000990 20 20 20 20 20 6d 6f 76 20 34 2c 23 30 0d 02 bc | mov 4,#0...| 000009a0 1d 20 20 20 20 20 20 20 73 77 69 20 22 4f 53 5f |. swi "OS_| 000009b0 53 65 74 56 61 72 56 61 6c 22 0d 02 c6 2a 20 20 |SetVarVal"...* | 000009c0 20 20 20 20 20 6c 64 6d 66 64 20 31 33 21 2c 7b | ldmfd 13!,{| 000009d0 30 2d 34 2c 70 63 7d 5e 20 20 20 3b 20 70 61 73 |0-4,pc}^ ; pas| 000009e0 73 20 6f 6e 0d 02 d0 10 2e 62 6c 6f 63 6b 20 64 |s on.....block d| 000009f0 63 64 20 30 0d 02 da 21 2e 62 61 73 69 63 20 65 |cd 0...!.basic e| 00000a00 71 75 73 20 22 42 41 53 49 43 20 2d 51 55 49 54 |qus "BASIC -QUIT| 00000a10 20 22 2b bd 30 0d 02 e4 1e 2e 6e 61 6d 65 20 20 | "+.0.....name | 00000a20 65 71 75 73 20 22 42 61 73 69 63 24 44 69 72 22 |equs "Basic$Dir"| 00000a30 2b bd 30 0d 02 ee 05 5d 0d 02 f8 05 ed 0d 03 02 |+.0....]........| 00000a40 22 c8 99 20 38 2c 31 30 2c 64 24 2b 22 42 61 73 |".. 8,10,d$+"Bas| 00000a50 44 69 72 22 2c 26 66 66 61 2c 2c 63 2c 4f 25 0d |Dir",&ffa,,c,O%.| 00000a60 03 0c 05 e0 0d 03 16 04 0d 03 20 2c f4 20 46 4e |.......... ,. FN| 00000a70 64 69 72 20 72 65 74 75 72 6e 73 20 74 68 65 20 |dir returns the | 00000a80 64 69 72 65 63 74 6f 72 79 20 66 72 6f 6d 20 77 |directory from w| 00000a90 68 69 63 68 0d 03 2a 2a f4 20 74 68 69 73 20 42 |hich..**. this B| 00000aa0 41 53 49 43 20 70 72 6f 67 72 61 6d 20 68 61 73 |ASIC program has| 00000ab0 20 62 65 65 6e 20 73 74 61 72 74 65 64 2e 0d 03 | been started...| 00000ac0 34 04 0d 03 3e 0a dd 20 a4 64 69 72 0d 03 48 11 |4...>.. .dir..H.| 00000ad0 20 ea 20 70 6e 74 25 2c 73 24 2c 74 24 0d 03 52 | . pnt%,s$,t$..R| 00000ae0 12 20 c8 99 20 26 31 30 20 b8 20 70 6e 74 25 0d |. .. &10 . pnt%.| 00000af0 03 5c 0c 20 70 6e 74 25 2b 3d 36 0d 03 66 11 20 |.\. pnt%+=6..f. | 00000b00 c8 95 20 3f 70 6e 74 25 3c 3e 33 32 0d 03 70 0d |.. ?pnt%<>32..p.| 00000b10 20 20 70 6e 74 25 2b 3d 31 0d 03 7a 06 20 ce 0d | pnt%+=1..z. ..| 00000b20 03 84 0a 20 73 24 3d 22 22 0d 03 8e 0a 20 74 24 |... s$="".... t$| 00000b30 3d 22 22 0d 03 98 0c 20 70 6e 74 25 2b 3d 31 0d |="".... pnt%+=1.| 00000b40 03 a2 10 20 c8 95 20 3f 70 6e 74 25 3e 33 31 0d |... .. ?pnt%>31.| 00000b50 03 ac 1c 20 20 e7 20 3f 70 6e 74 25 3c 3e 33 34 |... . ?pnt%<>34| 00000b60 20 74 24 2b 3d bd 3f 70 6e 74 25 0d 03 b6 12 20 | t$+=.?pnt%.... | 00000b70 20 e7 20 3f 70 6e 74 25 3d 34 36 20 8c 0d 03 c0 | . ?pnt%=46 ....| 00000b80 0d 20 20 20 73 24 2b 3d 74 24 0d 03 ca 0c 20 20 |. s$+=t$.... | 00000b90 20 74 24 3d 22 22 0d 03 d4 07 20 20 cd 0d 03 de | t$="".... ....| 00000ba0 0d 20 20 70 6e 74 25 2b 3d 31 0d 03 e8 06 20 ce |. pnt%+=1.... .| 00000bb0 0d 03 f2 07 3d 73 24 0d ff |....=s$..| 00000bb9