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