1REM 0 GOSUB3000:END
2
3REM DETECT DRIVE
4REM 0 = 1541 FEATURE SET (BASE)
5REM 1 = 1571 EXTRA FEATURES
6REM 2 = CMD FD/HD EXTRA FEATURES
7REM 4 = C65 DRIVE EXTRA FEATURES
8REM 8 = CMDR-DOS EXTRA FEATURES
9
101 DOS"UI":OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15
112 IFRIGHT$(S$,4)="1541"THENF=0:GOTO8
123 IFRIGHT$(S$,4)="1571"THENF=1:GOTO8
134 IFLEFT$(S$,4)="CMD "THENF=2+1:GOTO8
145 IFLEFT$(S$,12)="CBM C65 1565"THENF=4+2+1:GOTO8
156 IFLEFT$(S$,8)="CMDR-DOS"THENF=8+4+2+1:GOTO8
167 PRINT"UNKNOWN DRIVE":STOP
17
18REM DETECT SECOND PARTITION
19
208 OPEN15,8,15,"G-P"+CHR$(2):GET#15,T$:FORI=0TO29:GET#15,A$:NEXT:CLOSE15
219 T=ASC(T$+CHR$(0)):P2=T=11ORT=12
22
2310 :
24
2511 GOSUB100
2612 GOSUB200
2713 GOSUB300
2814 GOSUB400
2915 GOSUB500
3016 GOSUB600
3117 GOSUB700
3218 GOSUB800
3319 GOSUB900
3420 GOSUB1000
3521 GOSUB1100
3622 GOSUB1200
3723 GOSUB1300
3824 GOSUB1400
3925 GOSUB1500
4026 GOSUB1600
4127 GOSUB1700
4228 GOSUB1800
4329 GOSUB1900
4430 GOSUB2000
4531 GOSUB2100
4632 GOSUB2200
4733 GOSUB2300
4834 GOSUB2400
4935 GOSUB2500
5036 GOSUB2600
5137 GOSUB2700
5238 GOSUB2800
5339 GOSUB2900
5440 GOSUB3000
5541 GOSUB3100
5642 GOSUB3200
5743 GOSUB3300
5844 GOSUB3400
5945 GOSUB3500
6046 GOSUB3600
6147 GOSUB3700
6248 GOSUB3800
6349 GOSUB3900
6450 GOSUB4000
6551 GOSUB4100
6652 GOSUB4200
6753 GOSUB4300
6854 GOSUB4400
6955 GOSUB4500
7056 GOSUB4600
7157 GOSUB4700
7258 GOSUB4800
7359 GOSUB4900
7460 GOSUB5000
75
7698 END
7799 PRINT:GOTO10
78
79100 PRINT"01 CREATE/READ FILE, ',P,X'",;
80110 OPEN1,8,2,"FILE,P,W"
81120 PRINT#1,"HELLO WORLD!"
82130 CLOSE1
83140 OPEN1,8,2,"FILE,P,R"
84150 INPUT#1,A$
85160 IFA$<>"HELLO WORLD!"THENSTOP
86170 IFST<>64THENSTOP
87180 CLOSE1
88190 DOS"S:FILE"
89199 DOS"U0>T":PRINT"OK":RETURN
90
91200 PRINT"02 CREATE/READ FILE, CHAN 1/0",;
92210 OPEN1,8,1,"FILE"
93220 PRINT#1,"HELLO WORLD!"
94230 CLOSE1
95240 OPEN1,8,0,"FILE"
96250 INPUT#1,A$
97260 IFA$<>"HELLO WORLD!"THENSTOP
98270 IFST<>64THENSTOP
99280 CLOSE1
100290 DOS"S:FILE"
101299 DOS"U0>T":PRINT"OK":RETURN
102
103300 PRINT"03 CREATE/READ FILE, CHAN 1/2",;
104310 OPEN1,8,1,"FILE"
105320 PRINT#1,"HELLO WORLD!"
106330 CLOSE1
107340 OPEN1,8,2,"FILE"
108350 INPUT#1,A$
109360 IFA$<>"HELLO WORLD!"THENSTOP
110370 IFST<>64THENSTOP
111380 CLOSE1
112390 DOS"S:FILE"
113399 DOS"U0>T":PRINT"OK":RETURN
114
115400 PRINT"04 R/W MULT. LISTEN/TALK SESS",;
116410 OPEN1,8,2,"FILE,P,W":PRINT#1,"ONE":PRINT#1,"TWO":CLOSE1
117420 OPEN1,8,2,"FILE"
118430 INPUT#1,A$:IFA$<>"ONE"THENSTOP
119440 INPUT#1,A$:IFA$<>"TWO"THENSTOP
120450 IFST<>64THENSTOP
121460 CLOSE1
122470 DOS"S:FILE"
123499 DOS"U0>T":PRINT"OK":RETURN
124
125500 PRINT"05 TWO FILES OPEN FOR WRITING",;
126510 OPEN1,8,2,"FILE1,P,W":OPEN2,8,3,"FILE2,P,W"
127515 PRINT#1,"ONE":PRINT#2,"TWO":PRINT#1,"THREE":PRINT#2,"FOUR"
128520 CLOSE1:CLOSE2
129525 OPEN1,8,2,"FILE1"
130530 INPUT#1,A$:IFA$<>"ONE"THENSTOP
131535 INPUT#1,A$:IFA$<>"THREE"THENSTOP
132540 IFST<>64THENSTOP
133545 CLOSE1
134550 OPEN1,8,2,"FILE2"
135555 INPUT#1,A$:IFA$<>"TWO"THENSTOP
136560 INPUT#1,A$:IFA$<>"FOUR"THENSTOP
137565 IFST<>64THENSTOP
138570 CLOSE1
139580 DOS"S:FILE1,FILE2"
140599 DOS"U0>T":PRINT"OK":RETURN
141
142600 PRINT"06 TWO FILES OPEN FOR READING",;
143610 OPEN1,8,2,"FILE1,P,W":PRINT#1,"ONE":PRINT#1,"THREE":CLOSE1
144615 OPEN1,8,2,"FILE2,P,W":PRINT#1,"TWO":PRINT#1,"FOUR":CLOSE1
145625 OPEN1,8,2,"FILE1":OPEN2,8,3,"FILE2"
146630 INPUT#1,A$:IFA$<>"ONE"THENSTOP
147635 INPUT#2,A$:IFA$<>"TWO"THENSTOP
148640 INPUT#1,A$:IFA$<>"THREE"THENSTOP
149645 INPUT#2,A$:IFA$<>"FOUR"THENSTOP
150650 IFST<>64THENSTOP
151655 IFST<>64THENSTOP
152660 CLOSE1:CLOSE2
153665 DOS"S:FILE1,FILE2"
154699 DOS"U0>T":PRINT"OK":RETURN
155
156700 PRINT"07 C: COPY FILE",,;
157710 OPEN1,8,2,"FILE1,P,W":PRINT#1,"HELLO WORLD!":CLOSE1
158720 DOS"C:FILE2=FILE1
159730 OPEN1,8,2,"FILE2"
160740 INPUT#1,A$:IFA$<>"HELLO WORLD!"THENSTOP
161750 IFST<>64THENSTOP
162760 CLOSE1
163770 DOS"S:FILE1,FILE2"
164799 DOS"U0>T":PRINT"OK":RETURN
165
166800 PRINT"08 C: CONCATENATE FILES",;
167805 OPEN1,8,2,"FILE1,P,W":PRINT#1,"ONE":PRINT#1,"TWO":CLOSE1
168810 OPEN1,8,2,"FILE2,P,W":PRINT#1,"THREE":PRINT#1,"FOUR":CLOSE1
169815 OPEN1,8,2,"FILE3,P,W":PRINT#1,"FIVE":PRINT#1,"SIX":CLOSE1
170820 DOS"C:FILE4=FILE1,FILE2,FILE3
171825 OPEN1,8,2,"FILE4"
172830 INPUT#1,A$:IFA$<>"ONE"THENSTOP
173835 INPUT#1,A$:IFA$<>"TWO"THENSTOP
174840 INPUT#1,A$:IFA$<>"THREE"THENSTOP
175845 INPUT#1,A$:IFA$<>"FOUR"THENSTOP
176850 INPUT#1,A$:IFA$<>"FIVE"THENSTOP
177855 INPUT#1,A$:IFA$<>"SIX"THENSTOP
178860 IFST<>64THENSTOP
179865 CLOSE1
180870 DOS"S:FILE1,FILE2,FILE3,FILE4"
181899 DOS"U0>T":PRINT"OK":RETURN
182
183900 PRINT"09 LOAD NON-EXISTENT FILE",;
184910 OPEN1,8,2,"NONEXIST"
185920 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>62THENSTOP
186930 CLOSE1
187999 DOS"U0>T":PRINT"OK":RETURN
188
1891000 PRINT"10 RENAME FILE",,;
1901005 OPEN1,8,2,"FILE1,P,W":PRINT#1,"HELLO":CLOSE1
1911010 DOS"R:FILE2=FILE1"
1921015 OPEN1,8,2,"FILE2"
1931020 INPUT#1,A$:IFA$<>"HELLO"THENSTOP
1941025 IFST<>64THENSTOP
1951030 CLOSE1
1961035 OPEN1,8,2,"FILE1"
1971040 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>62THENSTOP
1981045 CLOSE1
1991050 DOS"S:FILE2"
2001099 DOS"U0>T":PRINT"OK":RETURN
201
2021100 PRINT"11 RENAME TO FILE THAT EXISTS",;
2031105 OPEN1,8,2,"FILE1,P,W":PRINT#1,"HELLO":CLOSE1
2041110 OPEN1,8,2,"FILE2,P,W":PRINT#1,"HELLO":CLOSE1
2051120 DOS"R:FILE2=FILE1"
2061130 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>63THENSTOP
2071140 DOS"S:FILE1,FILE2"
2081199 DOS"U0>T":PRINT"OK":RETURN
209
2101200 PRINT"12 COPY TO FILE THAT EXISTS",;
2111205 OPEN1,8,2,"FILE1,P,W":PRINT#1,"HELLO":CLOSE1
2121210 OPEN1,8,2,"FILE2,P,W":PRINT#1,"HELLO":CLOSE1
2131220 DOS"C:FILE2=FILE1"
2141230 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>63THENSTOP
2151240 DOS"S:FILE1,FILE2"
2161299 DOS"U0>T":PRINT"OK":RETURN
217
2181300 PRINT"13 UI",,,;
2191310 DOS"UI"
2201320 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>73THENSTOP
2211399 DOS"U0>T":PRINT"OK":RETURN
222
2231400 PRINT"14 SCRATCH NON-EXISTENT FILE",;
2241410 DOS"S:NONEXIST"
2251420 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>1THENSTOP
2261425 IFX<>0THENSTOP
2271499 DOS"U0>T":PRINT"OK":RETURN
228
2291500 PRINT"15 SCRATCH TWO FILES",;
2301505 OPEN1,8,2,"FILE1,P,W":PRINT#1,"HELLO":CLOSE1
2311510 OPEN1,8,2,"FILE2,P,W":PRINT#1,"HELLO":CLOSE1
2321515 DOS"S:FILE1,FILE2"
2331520 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>1THENSTOP
2341525 IFX<>2THENSTOP
2351599 DOS"U0>T":PRINT"OK":RETURN
236
2371600 PRINT"16 LOCK FILE (L)",,;
2381601 IFNOTFAND1THENPRINT"SKIPPED":RETURN
2391605 OPEN1,8,2,"FILE,P,W":PRINT#1,"HELLO":CLOSE1
2401610 OPEN15,8,15,"L:FILE":CLOSE15
2411615 DOS"S:FILE"
2421620 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>1THENSTOP
2431625 IFX<>0THENSTOP
2441630 OPEN15,8,15,"L:FILE":CLOSE15
2451635 DOS"S:FILE"
2461640 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>1THENSTOP
2471645 IFX<>1THENSTOP
2481699 DOS"U0>T":PRINT"OK":RETURN
249
2501700 PRINT"17 LOCK FILE (F-L/F-U)",;
2511701 IFNOTFAND4THENPRINT"SKIPPED":RETURN
2521705 OPEN1,8,2,"FILE,P,W":PRINT#1,"HELLO":CLOSE1
2531710 OPEN15,8,15,"F-L:FILE":CLOSE15
2541715 DOS"S:FILE"
2551720 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>1THENSTOP
2561725 IFX<>0THENSTOP
2571730 OPEN15,8,15,"F-U:FILE":CLOSE15
2581735 DOS"S:FILE"
2591740 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>1THENSTOP
2601745 IFX<>1THENSTOP
2611799 DOS"U0>T":PRINT"OK":RETURN
262
2631800 PRINT"18 CREATE FILE, ILL. DIR",;
2641801 IFNOTFAND2THENPRINT"SKIPPED":RETURN
2651802 IFFAND8THENPRINT"KNOWN BAD":RETURN:REM TODO: SHOULD RETURN STATUS 39
2661810 OPEN1,8,2,"//DIR/:FILE,P,W":
2671820 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>39THENSTOP
2681830 CLOSE1
2691899 DOS"U0>T":PRINT"OK":RETURN
270
2711900 PRINT"19 MAKE/REMOVE DIRECTORY",;
2721901 IFNOTFAND2THENPRINT"SKIPPED":RETURN
2731905 DOS"MD:DIR"
2741915 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>0THENSTOP
2751920 DOS"RD:DIR
2761925 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>1THENSTOP
2771930 IFX<>1THENSTOP
2781999 DOS"U0>T":PRINT"OK":RETURN
279
2802000 PRINT"20 CREATE/READ FILE IN SUBDIR",;
2812001 IFNOTFAND2THENPRINT"SKIPPED":RETURN
2822002 IFNOTFAND8THENPRINT"SKIPPED":RETURN:REM TODO: PROBLEM ON CMD
2832005 DOS"MD:DIR"
2842020 OPEN1,8,2,"//DIR/:FILE,P,W"
2852025 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>0THENSTOP
2862030 PRINT#1,"HELLO":CLOSE1
2872035 OPEN1,8,2,"//DIR/:FILE"
2882037 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>0THENSTOP
2892040 INPUT#1,A$:IFA$<>"HELLO"THENSTOP
2902045 IFST<>64THENSTOP
2912050 CLOSE1
2922060 DOS"S//DIR/:FILE"
2932065 DOS"RD:DIR
2942099 DOS"U0>T":PRINT"OK":RETURN
295
2962100 PRINT"21 CHANGE DIR, READ FILE",;
2972101 IFNOTFAND2THENPRINT"SKIPPED":RETURN
2982105 DOS"MD:DIR"
2992110 OPEN1,8,2,"FILE1,P,W":PRINT#1,"ONE":CLOSE1
3002115 OPEN1,8,2,"//DIR/:FILE2,P,W":PRINT#1,"TWO":CLOSE1
3012120 DOS"CD:DIR"
3022135 OPEN1,8,2,"FILE2"
3032140 INPUT#1,A$:IFA$<>"TWO"THENSTOP
3042145 CLOSE1
3052150 OPEN1,8,2,"//:FILE1"
3062155 INPUT#1,A$:IFA$<>"ONE"THENSTOP
3072160 CLOSE1
3082165 DOS"CD:_"
3092170 DOS"S//DIR/:FILE2,FILE1"
3102175 DOS"RD:DIR
3112199 DOS"U0>T":PRINT"OK":RETURN
312
3132200 PRINT"22 MEMORY WRITE/READ",;
3142201 IFNOTFAND8THENPRINT"SKIPPED":RETURN:REM DISABLED ON NON-CMDR-DOS
3152205 B=$0200
3162210 OPEN15,8,15,"M-W"+CHR$(BAND255)+CHR$(INT(B/256))+CHR$(5)+"HELLO":CLOSE15
3172215 OPEN15,8,15,"M-R"+CHR$((B+1)AND255)+CHR$(INT((B+1)/256))+CHR$(4):CLOSE15
3182220 A$="":OPEN1,8,15
3192225 FORI=1TO4:GET#1,C$:A$=A$+C$:NEXT:IFA$<>"ELLO"THENSTOP
3202230 GET#1,A$:IFA$<>CHR$(13)THENSTOP
3212235 IFST<>64THENSTOP
3222240 CLOSE1
3232245 DOS"UI"
3242299 DOS"U0>T":PRINT"OK":RETURN
325
3262300 PRINT"23 CHANGE TO NON-EXISTENT DIR",;
3272301 IFNOTFAND2THENPRINT"SKIPPED":RETURN
3282302 IFFAND8THENPRINT"KNOWN BAD":RETURN:REM TODO: SHOULD RETURN STATUS 39
3292310 DOS"CD:NONEXIST
3302320 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>39THENSTOP
3312399 DOS"U0>T":PRINT"OK":RETURN
332
3332400 PRINT"24 CHANGE PARTITION",,;
3342401 IFNOTFAND2THENPRINT"SKIPPED":RETURN
3352410 DOS"CP1
3362420 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>2THENSTOP
3372430 IFX<>1THENSTOP
3382499 DOS"U0>T":PRINT"OK":RETURN
339
3402500 PRINT"25 CHANGE TO NON-EXIST. PART",;
3412501 IFNOTFAND2THENPRINT"SKIPPED":RETURN
3422510 DOS"CP200
3432520 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>77THENSTOP
3442530 IFX<>200THENSTOP
3452599 DOS"U0>T":PRINT"OK":RETURN
346
3472600 PRINT"26 MEMORY EXECUTE",,;
3482601 IFNOTFAND8THENPRINT"SKIPPED":RETURN:REM DISABLED ON NON-CMDS-DOS
3492605 B=$0200:BL=BAND255:BH=INT(B/256)
3502610 A$="M-W"+CHR$(BL)+CHR$(BH)+CHR$(11)+CHR$(169)+CHR$(77)+CHR$(141)
3512615 A$=A$+CHR$(BL)+CHR$(BH)+CHR$(169)+CHR$(83)+CHR$(141)+CHR$(BL+1)
3522620 A$=A$+CHR$(BH)+CHR$(96)
3532625 OPEN15,8,15,A$:CLOSE15
3542630 OPEN15,8,15,"M-E"+CHR$(BL)+CHR$(BH):CLOSE15
3552635 OPEN15,8,15,"M-R"+CHR$(BL)+CHR$(BH)+CHR$(2):CLOSE15
3562640 OPEN1,8,15
3572645 GET#1,A$:IFA$<>CHR$($4D)THENSTOP
3582650 GET#1,A$:IFA$<>CHR$($53)THENSTOP
3592655 GET#1,A$:IFA$<>CHR$(13)THENSTOP
3602660 IFST<>64THENSTOP
3612670 CLOSE1
3622699 DOS"U0>T":PRINT"OK":RETURN
363
3642700 PRINT"27 INITIALIZE",,;
3652710 DOS"I
3662720 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>0THENSTOP
3672799 DOS"U0>T":PRINT"OK":RETURN
368
3692800 PRINT"28 INITIALIZE NON-EXIST. PART",;
3702801 IFNOTFAND2THENPRINT"SKIPPED":RETURN
3712810 DOS"I200
3722820 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>74THENSTOP
3732899 DOS"U0>T":PRINT"OK":RETURN
374
3752900 PRINT"29 RENAME, WILDCARD SOURCE",;
3762901 IFNOTFAND8THENPRINT"SKIPPED":RETURN:REM ONLY SUPPORTED ON CMDR-DOS
3772905 OPEN1,8,2,"FILE1,P,W":PRINT#1,"HELLO":CLOSE1
3782910 OPEN1,8,2,"FILE2,P,W":PRINT#1,"HELLO":CLOSE1
3792920 DOS"R:FILE2=?ILE1"
3802930 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>63THENSTOP
3812940 DOS"S:FILE1,FILE2"
3822999 DOS"U0>T":PRINT"OK":RETURN
383
3843000 PRINT"30 READ PAST EOF",,;
3853005 OPEN1,8,1,"FILE":PRINT#1,"HI!":CLOSE1
3863010 OPEN1,8,0,"FILE"
3873015 GET#1,A$:IFA$<>"H"THENSTOP
3883020 IFSTTHENSTOP
3893025 GET#1,A$:IFA$<>"I"THENSTOP
3903030 IFSTTHENSTOP
3913035 GET#1,A$:IFA$<>"!"THENSTOP
3923040 IFSTTHENSTOP
3933045 GET#1,A$:IFA$<>CHR$(13)THENSTOP
3943050 IFST<>64THENSTOP
3953055 GET#1,A$:IFA$<>CHR$(199)THENSTOP
3963060 IFST<>66THENSTOP
3973065 CLOSE1
3983070 DOS"S:FILE"
3993099 DOS"U0>T":PRINT"OK":RETURN
400
4013100 PRINT"31 READ FROM FNF CHANNEL",;
4023110 OPEN1,8,0,"NONEXIST"
4033120 IFST<>0THENSTOP
4043130 GET#1,A$:IFA$<>CHR$(199)THENSTOP
4053140 IFST<>66THENSTOP
4063150 GET#1,A$:IFA$<>CHR$(199)THENSTOP
4073160 IFST<>66THENSTOP
4083170 CLOSE1
4093199 DOS"U0>T":PRINT"OK":RETURN
410
4113200 PRINT"32 READ FROM CHANNEL W/O FN",;
4123210 OPEN1,8,02
4133220 IFST<>0THENSTOP
4143230 GET#1,A$:IFA$<>CHR$(199)THENSTOP
4153240 IFST<>66THENSTOP
4163250 GET#1,A$:IFA$<>CHR$(199)THENSTOP
4173260 IFST<>66THENSTOP
4183270 CLOSE1
4193299 DOS"U0>T":PRINT"OK":RETURN
420
4213300 PRINT"33 STATUS STRING",,;
4223305 DOS"I":OPEN15,8,15
4233310 FORJ=0TO10
4243315 S$="":FORI=1TO12:GET#15,A$:S$=S$+A$
4253320 IFSTTHENSTOP
4263325 NEXT
4273330 IFS$<>"00, OK,00,00"THENSTOP
4283335 GET#15,A$:IFA$<>CHR$(13)THENSTOP
4293340 IFST<>64THENSTOP
4303345 NEXT
4313350 CLOSE15
4323399 DOS"U0>T":PRINT"OK":RETURN
433
4343400 PRINT"34 WRITE TO FNF CHANNEL",;
4353410 OPEN1,8,1,"*"
4363420 IFSTTHENSTOP
4373430 PRINT#1,"A";
4383440 IFST<>-128THENSTOP
4393450 PRINT#1,"A";
4403460 IFST<>-128THENSTOP
4413470 CLOSE1
4423499 DOS"U0>T":PRINT"OK":RETURN
443
4443500 PRINT"35 WRITE TO CHANNEL W/O FN",;
4453510 OPEN1,8,1
4463520 IFSTTHENSTOP
4473530 PRINT#1,"A";
4483540 IFST<>-128THENSTOP
4493550 PRINT#1,"A";
4503560 IFST<>-128THENSTOP
4513570 CLOSE1
4523599 DOS"U0>T":PRINT"OK":RETURN
453
4543600 PRINT"36 GET DISKCHANGE",,;
4553601 IFNOTFAND2THENPRINT"SKIPPED":RETURN
4563610 DOS"G-D"
4573620 OPEN15,8,15
4583630 GET#15,A$:IFA$<>""ANDA$<>CHR$(1)THENSTOP
4593640 IFSTTHENSTOP
4603650 IFF=3GOTO3699 : REM CMD FD/HD IS BUGGY
4613660 GET#15,A$:IFA$<>CHR$(13)THENSTOP
4623670 IFST<>64THENSTOP
4633680 CLOSE15
4643699 DOS"U0>T":PRINT"OK":RETURN
465
4663700 PRINT"37 GET PARTITION INFO",;
4673701 IFNOTFAND8THENPRINT"SKIPPED":RETURN:REM BUGGY ON CMD
4683710 OPEN15,8,15,"G-P"+CHR$(1):CLOSE15
4693720 OPEN15,8,15
4703730 FORI=0TO29:GET#15,A$:IFSTTHENSTOP
4713740 NEXT
4723750 GET#15,A$:IFA$<>CHR$(13)THENSTOP
4733760 IFST<>64THENSTOP
4743770 CLOSE15
4753799 DOS"U0>T":PRINT"OK":RETURN
476
4773800 PRINT"38 RE-SEND NAME TO CHANNEL",;
4783805 OPEN1,8,2,"FILE1,P,W":PRINT#1,"ONE":CLOSE1
4793810 OPEN1,8,2,"FILE2,P,W":PRINT#1,"TWO":CLOSE1
4803815 OPEN1,8,2,"FILE1"
4813825 OPEN2,8,2,"FILE2"
4823840 INPUT#1,A$:IFA$<>"TWO"THENSTOP
4833845 OPEN3,8,2,"FILE1"
4843855 INPUT#1,A$:IFA$<>"ONE"THENSTOP
4853860 CLOSE1:CLOSE2:CLOSE3
4863865 DOS"S:FILE1,FILE2
4873899 DOS"U0>T":PRINT"OK":RETURN
488
4893900 PRINT"39 SCRATCH WITH WILDCARDS",;
4903901 IFNOTFAND2THENPRINT"SKIPPED":RETURN
4913905 OPEN1,8,2,"NOMATCH1,P,W":PRINT#1,"HELLO":CLOSE1
4923910 DOS"C:FILE1=NOMATCH1
4933915 DOS"MD:FILE2
4943920 DOS"C:FILE3=NOMATCH1
4953925 DOS"L:FILE3
4963930 DOS"C:NOMATCH2=NOMATCH1
4973935 DOS"C:FILE4=NOMATCH1
4983940 DOS"S:FILE?
4993945 OPEN1,8,2,"FILE1":CLOSE1
5003950 CLOSE15:OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>62THENSTOP
5013955 DOS"RD:FILE2
5023960 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>1ANDX<>1THENSTOP
5033965 OPEN1,8,2,"FILE3":CLOSE1
5043970 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFSTHENSTOP
5053972 OPEN1,8,2,"FILE4":CLOSE1
5063974 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>62THENSTOP
5073976 OPEN1,8,2,"NOMATCH1":CLOSE1
5083978 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFSTHENSTOP
5093980 OPEN1,8,2,"NOMATCH2":CLOSE1
5103982 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFSTHENSTOP
5113984 DOS"L:FILE3
5123986 DOS"S:NOMATCH?,FILE3
5133999 DOS"U0>T":PRINT"OK":RETURN
514
5154000 PRINT"40 OVERFLOW BUFFERS",,;
5164005 OPEN1,8,2,"FILE1,P,W":PRINT#1,"ONE":CLOSE1:DOS"MD:DIR1
5174010 OPEN15,8,15:FORI=0TO8
5184015 OPENI+1,8,I+2,MID$(STR$(I),2)+",P,W"
5194020 INPUT#15,S,S$,X,Y:IFS=0THENNEXT
5204022 IFS=0GOTO4060 : REM COULDN'T OVERFLOW BUFFERS!
5214025 IFFAND2THEN:DOS"L:FILE1":INPUT#15,S,S$,X,Y:IFS<>1ANDS<>70THENSTOP
5224030 IFFAND4THEN:DOS"F-L:FILE1":INPUT#15,S,S$,X,Y:IFS<>1ANDS<>70THENSTOP
5234035 IFFAND4THEN:DOS"F-U:FILE1":INPUT#15,S,S$,X,Y:IFS<>1ANDS<>70THENSTOP
5244040 DOS"R:FILE2=FILE1":INPUT#15,S,S$,X,Y:IFS<>0ANDS<>70THENSTOP
5254045 DOS"S:FILE1,FILE2":INPUT#15,S,S$,X,Y:IFS<>1ANDS<>70THENSTOP
5264050 IFFAND2THEN:DOS"MD:DIR2":INPUT#15,S,S$,X,Y:IFS<>1ANDS<>70THENSTOP
5274055 IFFAND2THEN:DOS"RD:DIR1":INPUT#15,S,S$,X,Y:IFS<>1ANDS<>70THENSTOP
5284060 FORI=0TO11:CLOSEI+1:NEXT:CLOSE15
5294070 DOS"S:FILE1":DOS"RD:DIR1"
5304080 DOS"S:0,1,2,3,4":DOS"S:5,6,7,8":REM CMD CAN ONLY SCRATCH 5 AT A TIME
5314099 DOS"U0>T":PRINT"OK":RETURN
532
5334100 PRINT"41 CREATE EXISTING FILE",;
5344110 OPEN1,8,2,"FILE,P,W":PRINT#1,"HELLO WORLD!":CLOSE1
5354140 OPEN1,8,2,"FILE,P,W":PRINT#1,"HELLO WORLD!":CLOSE1
5364150 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>63THENSTOP
5374160 DOS"S:FILE
5384199 DOS"U0>T":PRINT"OK":RETURN
539
5404200 PRINT"42 OVERWRITE EXISTING FILE",;
5414210 OPEN1,8,2,"FILE,P,W":PRINT#1,"HELLO":CLOSE1
5424240 OPEN1,8,2,"@:FILE,P,W":PRINT#1,"WORLD!":CLOSE1
5434250 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFSTHENSTOP
5444260 OPEN1,8,2,"FILE":INPUT#1,A$:CLOSE1:IFA$<>"WORLD!"THENSTOP
5454260 DOS"S:FILE
5464299 DOS"U0>T":PRINT"OK":RETURN
547
5484300 PRINT"43 CREATE/READ ON TWO PART",;
5494301 IFNOTP2THENPRINT"SKIPPED":RETURN
5504310 OPEN1,8,2,"1:FILE1,P,W":PRINT#1,"ONE":CLOSE1
5514320 OPEN1,8,2,"2:FILE2,P,W":PRINT#1,"TWO":CLOSE1
5524330 OPEN1,8,2,"1:FILE1,P,R":INPUT#1,A$:CLOSE1:IFA$<>"ONE"THENSTOP
5534340 IFST<>64THENSTOP
5544350 OPEN1,8,2,"2:FILE2,P,R":INPUT#1,A$:CLOSE1:IFA$<>"TWO"THENSTOP
5554360 IFST<>64THENSTOP
5564370 DOS"S1:FILE1":OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFX<>1THENSTOP
5574380 DOS"S2:FILE2":OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFX<>1THENSTOP
5584399 DOS"U0>T":PRINT"OK":RETURN
559
5604400 PRINT"44 COPY BETWEEN PARTITIONS",;
5614401 IFNOTP2THENPRINT"SKIPPED":RETURN
5624410 OPEN1,8,2,"1:FILE1,P,W":PRINT#1,"HELLO WORLD!":CLOSE1
5634420 DOS"C2:FILE2=1:FILE1
5644430 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFSTHENSTOP
5654440 OPEN1,8,2,"2:FILE2,P,R":INPUT#1,A$:CLOSE1:IFA$<>"HELLO WORLD!"THENSTOP
5664450 DOS"S1:FILE1":OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFX<>1THENSTOP
5674460 DOS"S2:FILE2":OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFX<>1THENSTOP
5684499 DOS"U0>T":PRINT"OK":RETURN
569
5704500 PRINT"45 C: COPY NON-EXISTENT FILE",;
5714502 IFFAND8THENPRINT"KNOWN BAD":RETURN:REM SHOULD NOT CREATE FILE
5724510 DOS"C:FILE=NONEXIST
5734520 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>62THENSTOP
5744530 OPEN1,8,2,"FILE":CLOSE1
5754540 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>62THENSTOP
5764599 DOS"U0>T":PRINT"OK":RETURN
577
5784600 PRINT"46 SOFTWARE WRITE PROTECT",;
5794601 IFNOTP2THENPRINT"SKIPPED":RETURN
5804610 DOS"W-1
5814620 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFSTHENSTOP
5824630 OPEN1,8,2,"1:FILE,P,W":CLOSE1
5834640 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>26THENSTOP
5844650 DOS"W-0
5854660 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFSTHENSTOP
5864699 DOS"U0>T":PRINT"OK":RETURN
587
5884700 PRINT"47 COMMAND CHANNEL ECHO",;
5894701 IFNOTFAND8THENPRINT"SKIPPED":RETURN
5904710 DOSCHR$(255)+"HELLO"+CHR$(0)
5914720 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>79ORS$<>"HELLO"THENSTOP
5924730 DOSCHR$(66)+CHR$(45)+CHR$(63)+TI$
5934740 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>79ORLEN(S$)<>25THENSTOP
5944750 DOSCHR$(66)+CHR$(45)+CHR$(42)+TI$
5954760 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>79ORLEN(S$)<>28THENSTOP
5964799 DOS"U0>T":PRINT"OK":RETURN
597
5984800 PRINT"48 SET POSITION (1)",,;
5994801 IFNOTFAND8THENPRINT"SKIPPED":RETURN
6004804 OPEN2,8,2,"SEEKFILE,P,R":CLOSE2
6014805 REM REQUIRES 50 MB FILE CONTAINING 32 BIT BIG ENDIAN: 0,4,8,12,...
6024806 OPEN15,8,15:INPUT#15,S,S$,X,Y:CLOSE15:IFS<>0THENPRINT"SKIPPED":RETURN
6034808 OPEN2,8,2,"SEEKFILE,P,R"
6044809 REM LOW OFFSET
6054810 O(3)=$00:O(2)=$01:O(1)=$23:O(0)=$44:T=1:GOSUB4850
6064811 REM HIGH OFFSET
6074812 O(3)=$00:O(2)=$3A:O(1)=$0E:O(0)=$B0:T=1:GOSUB4850
6084820 REM BACK TO FIRST SECTOR
6094824 O(3)=$00:O(2)=$00:O(1)=$01:O(0)=$58:T=1:GOSUB4850
6104825 REM READ LAST 4 BYTES OF FILE
6114826 O(3)=$00:O(2)=$4F:O(1)=$FF:O(0)=$FC:T=1:GOSUB4850:IFST<>64THENSTOP
6124827 REM READ UNTIL EOI MAKES IT IMPOSSIBLE TO READ AGAIN, SO RE-OPEN
6134828 CLOSE2:OPEN2,8,2,"SEEKFILE,P,R"
6142829 REM WAY PAST EOF
6154830 O(3)=$FF:O(2)=$00:O(1)=$00:O(0)=$00:T=0:GOSUB4850:IFST<>66THENSTOP
6164832 CLOSE2
6174849 DOS"U0>T":PRINT"OK":RETURN
6184850 O$=CHR$(O(0))+CHR$(O(1))+CHR$(O(2))+CHR$(O(3))
6194852 OPEN15,8,15,"P"+CHR$(2)+O$:CLOSE15
6204854 FORI=0TO3:GET#2,A$:A=ASC(A$+CHR$(0)):IFA<>O(3-I)ANDTTHENSTOP
6214856 NEXT:RETURN
622
6234900 PRINT"49 SET POSITION (2)",,;
6244901 IFNOTFAND8THENPRINT"SKIPPED":RETURN
6254904 OPEN1,8,2,"FILE,P,W":FORI=0TO255
6264908 PRINT#1,LEFT$(MID$(STR$(I),2)+" THIS IS A TEST STRING!         ",31)
6274909 NEXT:CLOSE1
6284910 OPEN1,8,2,"FILE,P,A"
6294912 FORI=0TO127
6304913 PRINT#1,LEFT$(MID$(STR$(I),2)+" APPENDED TEXT AT THE END       ",31)
6314914 NEXT:CLOSE1
6324915 OPEN1,8,2,"FILE,P,A"
6334916 OPEN15,8,15,"P"+CHR$(2)+CHR$($00)+CHR$($10)+CHR$(0)+CHR$(0):CLOSE15
6344918 PRINT#1,"OVERWRITTEN USING SET-POSITION!"
6354920 CLOSE1
6364922 OPEN1,8,2,"FILE,P,A"
6374924 OPEN15,8,15,"P"+CHR$(2)+CHR$($F0)+CHR$($2F)+CHR$(0)+CHR$(0):CLOSE15
6384926 PRINT#1,"OVERWRITING ACROSS EOF!12345678"
6394928 CLOSE1
6404945 OPEN1,8,2,"FILE,P,R":FORI=0TO127:INPUT#1,A$
6414950 IFA$<>LEFT$(MID$(STR$(I),2)+" THIS IS A TEST STRING!         ",31)THENSTOP
6424955 NEXT
6434960 INPUT#1,A$:IFA$<>"OVERWRITTEN USING SET-POSITION!"THENSTOP
6444965 FORI=129TO255:INPUT#1,A$
6454970 IFA$<>LEFT$(MID$(STR$(I),2)+" THIS IS A TEST STRING!         ",31)THENSTOP
6464975 NEXT
6474980 FORI=0TO126:INPUT#1,A$
6484982 IFA$<>LEFT$(MID$(STR$(I),2)+" APPENDED TEXT AT THE END       ",31)THENSTOP
6494984 NEXT:INPUT#1,A$
6504986 IFA$<>"127 APPENDED TEXOVERWRITING ACROSS EOF!12345678"THENSTOP
6514988 CLOSE1
6524990 DOS"S:FILE
6534999 DOS"U0>T":PRINT"OK":RETURN
654
6555000 PRINT"50 MODIFY FILE ',P,M'",;
6565001 IFNOTFAND8THENPRINT"SKIPPED":RETURN
6575005 OPEN1,8,2,"FILE,P,M":FORI=0TO255
6585010 PRINT#1,LEFT$(MID$(STR$(I),2)+" THIS IS A TEST STRING!         ",31)
6595015 NEXT
6605020 O(0)=115:O(1)=188:O(2)=28:O(3)=116:O(4)=138:O(5)=57:O(6)=90:O(7)=202
6615025 O(8)=197:O(9)=22
6625030 FORI=0TO9:O=O(I):A=O*32:H=INT(A/256):L=A-(H*256)
6635035 OPEN15,8,15,"P"+CHR$(2)+CHR$(L)+CHR$(H)+CHR$(0)+CHR$(0):CLOSE15
6645040 PRINT#1,LEFT$(MID$(STR$(O),2)+" THIS IS OVERWRITTEN!           ",31)
6655045 NEXT
6665050 FORI=0TO9:O=O(I):A=O*32:H=INT(A/256):L=A-(H*256)
6675055 OPEN15,8,15,"P"+CHR$(2)+CHR$(L)+CHR$(H)+CHR$(0)+CHR$(0):CLOSE15
6685060 INPUT#1,A$
6695065 IFA$<>LEFT$(MID$(STR$(O),2)+" THIS IS OVERWRITTEN!           ",31)THENSTOP
6705070 NEXT
6715072 OPEN15,8,15,"P"+CHR$(2)+CHR$(0)+CHR$(0)+CHR$(0)+CHR$(0):CLOSE15
6725074 FORI=0TO255:INPUT#1,A$
6735076 IFA$=LEFT$(MID$(STR$(I),2)+" THIS IS A TEST STRING!         ",31)GOTO5080
6745078 IFA$<>LEFT$(MID$(STR$(I),2)+" THIS IS OVERWRITTEN!           ",31)THENSTOP
6755080 NEXT:CLOSE1
6765090 DOS"S:FILE
6775099 DOS"U0>T":PRINT"OK":RETURN
678
679RUN
680