home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carousel Volume 2 #1
/
carousel.iso
/
comdore
/
64music
/
magicsid
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1989-06-30
|
12KB
|
330 lines
10 GOTO100
20 ********************************
21 * * MAGIC SID MACHINE V2.2 * *
22 * A MODIFICATION OF 'MAGIC *
23 * MUSIC MACHINE' V2.0 WRITTEN *
24 * BY DAVE SCHMOLDT *
25 * *
27 * ADAPTED TO RUN SIDPLAYER *
28 * FILES, USING ROUTINES FROM *
29 * THE BOOK 'ALL ABOUT THE *
30 * COMMODORE 64' VOLUME 2 *
31 * BY CRAIG CHAMBERLAIN *
32 * *
33 * ALL MUSIC FILES TO BE USED *
34 * BY THIS PROGRAM MUST HAVE THE*
35 * '.MUS' EXTENSION AFTER THE *
36 * FILENAME. *
37 * HANDLES UP TO 200 FILES/DISK *
38 * *
39 * TERRY KRYGER [71106,221] *
40 * 3/20/86 *
41 ********************************
100 DIMPL$(200),PN$(200),SE(200),TX$(5)
101 DN=8:SA=780:SX=781:SY=782:SP=783
102 GOSUB5000
103 OV$=""
104 DO$=""
105 RO$="[146]"
106 U$="[145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145]"
110 IFF=0THENPRINTCHR$(147)
120 GOSUB610
125 IFF=1THEN230
150 PRINT"[147]";
160 POKE53280,0:POKE53281,0
170 FORS=55296TO55335:POKES,0:POKES+960,0:NEXT
190 FORS=1024TO1063:POKES,244:POKES+960,244:NEXT
200 PRINT"[144]";:A$=" THE MAGIC SID MACHINE 2.2 ":GOSUB630
210 PRINT "[144]";
220 PRINTDO$;:A$=" DAVE SCHMOLDT / T. KRYGER ":GOSUB630
230 PRINT""
240 IFF=0THEN1580
245 WAIT56320,16
248 POKESS,7
260 Q=0
270 FORS=55296TO55335:CO=INT(1+RND(1)*14):POKES,CO:POKES+(999-Q),CO:Q=Q+2: NEXT
300 PRINT"";
310 IFF=0THENGOSUB670
320 PRINT"[146]";:F=1
340 PRINT"";:A$=" ":GOSUB630
350 PRINT"";:A$=" ":GOSUB630
370 PRINT"[145]";
380 FORX=1TO5:PRINTLEFT$(DO$,10+X);:A$=TX$(X):GOSUB630:NEXT
400 A$="[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
410 PRINT"";:CO=149
450 FORC=1TO9
460 CO=INT(1+RND(1)*14):POKE646,CO
470 PRINTLEFT$(DO$,C+1);:PRINTA$;
480 PRINTDO$;
490 PRINTLEFT$(U$,C);:PRINTA$;
500 GETRE$:IFRE$=" "THENPOKESS,0:SYSDP:R=0:FORL=54276TO54296:POKEL,0:NEXT
510 IFRE$=" "THEN930
520 IFRE$<>"^"THEN570
530 POKESS,0:SYSDP:FORL=54276TO54296:POKEL,0:NEXT:F=0:SD=A
540 GOSUB610:GOTO1580
570 NEXT:PRINT"";
590 IFPEEK(SS)THEN450
595 SYSDP
600 FORL=54276TO54296:POKEL,0:NEXT:GOTO930
610 PRINT"";:FORJK=1TO23:PRINT" ";:NEXT
620 PRINT"";CHR$(142):RETURN
630 PRINTSPC(20-LEN(A$)/2)A$;
640 RETURN
650 GETKE$:IFKE$=""THEN650
660 RETURN
670 GOSUB610:PRINT"[146]";:A$="[156]PRESS ANY KEY WHEN READY"
680 POKE646,4:GOSUB630
690 GOSUB650
700 GOSUB610:Q=0
710 FORS=55296TO55335:CO=INT(1+RND(1)*14):POKES,CO:POKES+(999-Q),CO:Q=Q+2: NEXT
720 PRINT"[158]":A$="READING DIRECTORY":GOSUB630:PRINT
730 X=1
740 OPEN15,8,15,"I0":CLOSE15:A$=""
750 OPEN8,8,0,"$0":FORC=1TO8:GET#8,A$:NEXT:C=1:DN$="":FORC=1TO16
760 GET#8,A$:DN$=DN$+A$:NEXT:GET#8,A$:GET#8,A$:GET#8,A$
770 DN$=DN$+A$:GET#8,A$:DN$=DN$+A$:GET#8,A$:GET#8,A$:DN$=DN$+"/"+A$
780 GET#8,A$:DN$=DN$+A$:GET#8,A$:C=1:PRINT"DISK TITLE ---> [156]"DN$:PRINT
790 FORH=1TO4:GET#8,A$:NEXT
800 GET#8,A$:IFST<>0THEN920
810 IFA$=""THEN920
820 IFASC(A$)<>34THEN800
830 GET#8,A$:IFASC(A$)<>34THENPN$=PN$+A$:GOTO830
840 GET#8,A$:IFASC(A$)=32THEN840
850 GET#8,A$:IFA$<>""THEN850
860 PRINTLEFT$(DO$,16);" ";
880 A$=" "+ PN$:PRINT"[145]";:GOSUB630
885 IFRIGHT$(PN$,4)<>".MUS"THEN890
887 PL$(X)=PN$:X=X+1
890 PN$=""
900 IFST=0THEN790
920 CLOSE8:A=X:NS=A-1
930 GOSUB610:PRINT"";
1090 IFSK=1THEN2460
1100 IFFY=1THEN2430
1110 IFFG=1THEN2410
1120 IFFR=1THENGOSUB2240:GOTO1580
1130 GOSUB610
1140 V=1:NS=A-1
1160 Q=0:NP=INT((A-1)/26)+1
1165 PG=0:FORI=1TOA:SE(I)=.:NEXT
1170 FORS=55296TO55335:CO=INT(1+RND(1)*14):POKES,CO:POKES+(999-Q),CO:Q=Q+2: NEXT
1180 PRINT"[154]";:EP=26*PG+26:IFPG=NP-1THENEP=(A-1)
1190 FORCA=PG*26+1TOEP
1200 IFCA>(PG*26+13)THENPRINTLEFT$(OV$,CA+10-(26*PG));:GOTO1220
1210 PRINTLEFT$(DO$,CA-(26*PG)+4);
1220 PRINT""CHR$(CA+64-(26*PG))RO$+" ";
1230 IFSE(CA)THENPRINT"";
1240 PRINTLEFT$(PL$(CA),LEN(PL$(CA))-4)"[154]"
1250 NEXT
1310 PRINTLEFT$(DO$,21);
1320 A$="[158]ENTER YOUR CHOICES IN ANY ORDER":GOSUB630
1330 PRINTLEFT$(DO$,23);
1340 A$=" RETURN[158]=MENU SPACE[158]=DONE"
1345 IFCA>26THENA$="F7[158]=MORE"+A$
1347 GOSUB630
1350 PRINT"[156]";
1360 GETAN$:IFAN$=""THEN1360
1365 IFAN$="[136]"THENPG=PG+1:IFPG>(NP-1)THENPG=0
1367 IFAN$="[136]"THENGOSUB610:GOTO1180
1370 IFAN$=CHR$(13)THENGOSUB610:GOSUB1580
1380 IFAN$=" "ANDV=1THENGOSUB610:GOTO1580
1390 IFAN$=" "THENFORT=1TOV:PL$(T)=PN$(T):NEXT:A=V-1:FY=1: GOTO2300
1400 REM DONE CHOOSING
1410 IFASC(AN$)<65ORASC(AN$)>90THEN1360
1420 N=ASC(AN$)-64+(26*PG)
1430 PN$(V)=PL$(N):SE(N)=1
1440 IFN>CA-1THEN1360
1450 IFN<1THEN1360
1474 IFN>(PG*26+13)THEN1476
1475 FORI=55418TO55434:POKEI+(N-(26*PG))*40,1:NEXT:GOTO1490
1476 FORI=55437TO55453:POKEI+(N-13-(26*PG))*40,1:NEXT
1490 V=V+1:GOTO1360
1580 TT=0:PRINT"[158]";:CLOSE15
1590 FORS=55296TO55335:POKES,0:POKES+960,0:NEXT
1610 PRINTCHR$(14):PRINT"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO";
1620 PRINT"O O";
1630 PRINT"O 1. [195]REATE OR UPDATE A DIRECTORY FILE O";
1640 PRINT"O O";
1650 PRINT"O 2. [195]HOOSE SONGS FROM DIRECTORY FILE O";
1660 PRINT"O O";
1670 PRINT"O 3. [195]HOOSE SONGS (NO DIRECTORY FILE) O";
1680 PRINT"O O";
1690 PRINT"O 4. [208]LAY ALL SONGS IN DIRECTORY FILE O";
1700 PRINT"O O";
1710 PRINT"O 5. [208]LAY ALL SONGS ON DISK (NO FILE) O";
1720 PRINT"O O";
1730 PRINT"O 6. [211]END DIRECTORY FILE TO PRINTER O";
1740 PRINT"O O";
1750 PRINT"O 7. [197]ND O";
1760 PRINT"O O";
1770 PRINT"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO"
1790 T1$="OOOOOOOOOOOOOOOOOOOO"
1800 T2$="OOOOOOOOOOOOOOOOOOOO"
1810 R1$="[157]O[157]O[157]O[157]O[157]O[157]O[157]O[157]O"
1820 R2$="[157]O[157]O[157]O[157]O[157]O[157]O[157]O"
1830 B1$="OOOOOOOOOOOOOOOOOOOO"
1840 B2$="OOOOOOOOOOOOOOOOOOOO"
1850 L1$="[145][145][145]O[157][145][145]O[157][145][145]O[157][145][145]O[157][145][145]O[157][145][145]O[157][145][145]O"
1860 L2$="[145][145]O[157][145][145]O[157][145][145]O[157][145][145]O[157][145][145]O[157][145][145]O[157][145][145]O[157][145][145]O"
1870 TT$=" [212]HE [205]AGIC [211]ID [205]ACHINE "
1880 B1$=""+T1$+R1$+B1$+L1$
1890 B2$=""+T2$+R2$+B2$+L2$
1900 H=2
1910 PRINTB1$
1920 PRINTB2$
1930 PRINTTT$
1940 POKE646,H:H=H+1:IFH=16THENH=2
1950 GETA$:IFA$=""THEN1910
1960 POKE646,14
1970 IFA$="1"THENFR=1:SK=0:FG=0:FY=0:GOTO670
1980 IFA$="2"THENSK=0:FG=0:FY=0:SD=0:FR=0:GOTO2060
1990 IFA$="3"THENSK=0:FG=0:FR=0:FY=0:GOTO670
2000 IFA$="4"THENSK=1:GOTO2060
2010 IFA$="5"THENSD=0:SK=0:FR=0:FY=0:FG=1:GOTO670
2020 IFA$="6"THENSD=0:SK=0:FR=0:FY=0: FP=1:GOTO2060
2030 IFA$="7"THENGOSUB610:PRINT"[147][158]";CHR$(142):END
2040 GOTO1790
2050 REM **LOAD DIR**
2060 GOSUB610:A$="READING DIRECTORY FILE.....":PRINT"":GOSUB630:CLOSE8
2070 OPEN15,8,15,"I0:":OPEN8,8,8,"SIDCAT,S,R":INPUT#15,Y,B$,C,D:CLOSE15
2075 IFY=62THEN2110
2090 IFFP=1THENCLOSE4:OPEN4,4,7
2100 CLOSE8:OPEN8,8,8,"SIDCAT,S,R": PRINT""
2110 IFY=62THENPRINT"":A$="YOU MUST CREATE A FILE FIRST":GOSUB630:CLOSE8
2120 IFY=62THEN FORDE=1TO2000: NEXTDE:GOSUB610:CLOSE15:GOTO1580
2140 INPUT#8,DN$:IFFP=1THENPRINT#4," ":PRINT#4,DN$:PRINT#4," "
2150 INPUT#8,A
2160 FORWE=1TOA
2170 INPUT#8,PL$(WE)
2180 IFFP=1THENPRINT#4,PL$(WE)
2190 NEXT
2200 IFFP=1THENFP=0:PRINT#4," ":PRINT#4," ":CLOSE4:CLOSE8:GOSUB610:GOTO1580
2210 IFSK=1THENCLOSE8:CLOSE15:GOTO2300
2220 CLOSE8:CLOSE15:A=A+1:GOTO1130
2230 REM ** WRITE DIRECTORY FILE **
2240 GOSUB6000:GOSUB610
2242 A$="WRITING DIRECTORY FILE":GOSUB630:CLOSE8:OPEN15,8,15,"S0:SIDCAT"
2245 CLOSE15
2250 OPEN8,8,8,"SIDCAT,S,W"
2260 PRINT#8,DN$
2270 PRINT#8,A-1
2280 FORQW=1TOA-1:PRINT#8,PL$(QW):NEXT
2290 CLOSE8:R=0:GOSUB610:RETURN
2300 GOSUB610:F=1
2310 SD=1
2320 PT$=LEFT$(PL$(SD),LEN(PL$(SD))-4):F=1:REM PT$=FILE NAME TO PRINT
2330 PRINT"[158]";:A$="[SPACE] WILL STOP SONG DURING PLAY":GOSUB630
2380 PRINTLEFT$(DO$,19);:A$="^ = BACK TO MENU":GOSUB630
2390 PRINT"";:A$="LOADING "+PT$:GOSUB630
2395 CF=FRE(0)
2400 F$=PL$(SD):LA=PEEK(49)+256*PEEK(50)+1000:GOSUB2510:REM LOAD SONG
2405 SYSHK:POKESX,LO:POKESY,HI:SYSPL
2406 GOSUB2700
2407 GOTO120
2410 IFFG=1THENSD=SD+1:IFSD>A-1THEN1580
2420 IFFG=1THEN2320
2430 IFFY=1THENSD=SD+1
2440 IFSD>ATHEN1580
2450 GOTO2320
2460 SD=SD+1:IFSD>ATHENGOTO1580:REM INCREMENT COUNTER FOR NEXT SONG
2470 GOTO2320
2510 POKESA,1:POKESX,DN:POKESY,0:SYS65466:GOSUB2550
2520 HI=INT(LA/256):LO=LA-256*HI
2530 POKESA,0:POKESX,LO:POKESY,HI:SYS65493:IFPEEK(SP)AND1THEN2570
2540 LA=PEEK(SX)+256*PEEK(SY):RETURN
2550 FORK=1TOLEN(F$):POKE584+K,ASC(MID$(F$,K)):NEXT
2560 POKESA,LEN(F$):POKESX,73:POKESY,2:SYS65469:RETURN
2570 P=PEEK(SA):PRINT" ERROR: ";:IFP=4THENPRINT"FILE NOT FOUND":END
2580 IFP=5THENPRINT"DEVICE NOT PRESENT":END
2590 PRINTST:END
2699 REM ** GET TEXT **
2700 FORI=1TO5:TX$(I)="":NEXT:CT=0
2710 TX=PEEK(SX)+256*PEEK(SY)
2715 CT=CT+1:IFCT>5THENRETURN
2720 PX=PEEK(TX):IFPX=0THENRETURN
2730 IFPX=13THENTX=TX+1:GOTO2715
2735 IFPX=32THENTX=TX+1:GOTO2720
2737 IFPX=34THENPX=39
2740 TX$(CT)=TX$(CT)+CHR$(PX):TX=TX+1:IFLEN(TX$(CT))>39THEN2715
2750 PX=PEEK(TX):IFPX=0THENRETURN
2752 IFPX=13THENTX=TX+1:GOTO2715
2754 IFPX=34THENPX=39
2770 GOTO2740
5000 SS=49152:HK=49423:PL=49446:DP=49620:PRINT"[147] PLEASE WAIT..."
5010 P1=PEEK(648):POKE648, 192 :A$=CHR$(34)+CHR$(34)+CHR$(20)
5012 POKE53280,8:PRINT"";:PRINT:PRINT:PRINT:PRINT
5020 PRINT"@@@@@@@@@@@@@@@@@@@@@@@@@[204]F[194][146][204]X[197][163][193][146]@@[201][192][201][192][201][192][146][160]ABD@GNA@[191][146]@BDEG";
5022 PRINT"IK^XK[146][190][186][146]F,[179][166]O[184][146].FNV_(3=[200][212][161][174][189]L[146][184][164][208]<(T@@BCEGH";
5024 POKE53280,7:POKE648, 193 :PRINT:PRINT:PRINT"";
5026 PRINT"JLMOQR@[160][146]@DHL[185][146]@[181][146][184]"A$"[146]B=[146]SC][192][192]=>[192]][146]SC[202][208][177]N[146]@[192][146][216]";
5028 PRINT"[160])[146]@M[146]@[192]F[187]D[188] 8Y[146]@[192]H[208][186]M[146]U[212]M[146]V[212])[146]HM[146]\[192]M[146]W[212]M[146]][192]M[146]X";
5030 PRINT"[212])PM[146]^[192])[146]LM[146]_[192])[212]E[190]"A$"[146]B)[146]A][146]![192])[146]D][146]'[192]=[146]H[193]][146][190][192]";
5032 PRINT"=[205][192]E[189])[146]@(Q[189][200]Q[189][200]Q[189])[146]H][146]N[192]][146][163][192][200]Q[189][200]Q[189])[146][192]][146]Q[192]Q[189])[146] ][146]T";
5034 PRINT"[192][200]Q[189])[181]][146]W[192][200]Q[189][202][146]P8%[187][146]X[169]FE[189])[146]@*([146][165][188]E[190]][146][178][192]][146][184][192]%[189]][146][175]";
5036 PRINT"[192]][146][181][192][146]X[177][187]E[189]%[190][200][146][177][187][200][168][160][146]C[208][160]&[189]([146][160][184]-[193][192]M[146]TC-[194][192]M[146]UC[216][160]-[146]M";
5038 PRINT"[220]-[146]@[192][146]0"A$"I@([146])G[176][146]X[216]L[146]@[192])[212]E[188][146][216]"A$"[146]C=[146]Z[192]";
5040 POKE53280,6:POKE648, 194 :PRINT:PRINT:PRINT"";
5042 PRINT"][146]U[212][202][146]P[183])[212]E[188][176][146][180][168][146]0[172]-[146]@[192][146]=[202][192][176][146]+=[205][192]E[187]=[146]E[192] [146]@Q[187]=[146]H";
5044 PRINT"[192][200]Q[187]=[146]K[192][200]Q[187]=[146]N[192][200]Q[187]=[146]T[192][200][200]Q[187]=[146]W[192][200]Q[187][168][160][146]C[208][200]-[146]Q[192].[146]R[192],";
5046 PRINT"[146]S[192]M[146]D[212]N[146]K[212]L[146]R[212]"A$"[146]@-[146]@[192][146]=[202][192][176][146]MN[146] [192][146] 9[192]-[146]@[192][146])";
5048 PRINT"[184][208][146]M[168][160][146]C[208][166]-[146]@[192][146])[191],)[146]HM[146]@[192][146][172][193][192][146][172][195][192][255][146]![192][176][146][209]=[146]$[192]";
5050 PRINT"[146]0[179][208][146]P=[146]'[192][221][146]![192]P[146]H=[146]Q[192][146])[190]][146]Q[192]=[146]*[192][176][146][214]J=[146]E[192]0[146]1[189]-";
5052 PRINT"[192]][146]E[192](=[146]H[192][146][189]0[192]][146]H[192][146][200]X[221][146][212][192][146][168][189][146][215][192]P[146]3=[146][212][192]][146]E[192]=[146][215]";
5054 PRINT"[192]][146]H[192])[146]@][146]*[192][146]XP[146]_[176][146][181][189][146]-[192]][146]E[192]=[146]H[192][189][146]0[192]][146]H[192]=[146][212][192]";
5056 PRINT"[221][146]E[192]=[146][215][192][189][146]H[192]0[205]P[146][165]=[146]3[192]";
5058 POKE53280,5:POKE648, 195 :PRINT:PRINT:PRINT"";
5060 PRINT"[176][146][160] [146]@[255][146]6[192][208][146]1=[146]9[192][146]]<[192][208][146][=[146][197][192]][146]?[192]][146]6[192]=[146]3[192][146]J=[146][194]";
5062 PRINT"[192]P[146]D[201][191][146][169]@][146]3[192][208][146]P=[146]?[192]][146]6[192]X[146]8[189][146]3[192]][146]3[192][201][146]@PAH[146]X[189]9";
5064 PRINT"[192]][146]9[192][146][200]X[146][189]<[192]][146]<[192]([146][168]XP[146]B[176][146][200][189][212][192]][146]E[192]X[146][189][215][192]][146]H[192]=[146][218]";
5066 PRINT"[192][176][146]PX[189]K[192]][146]K[192]=[146][221][192][146][189]N[192]][146]N[192] [146]@=[146][169][192][176][146]\PA[200][146]X[173]Z[192][146][200])G";
5068 PRINT"M[146]Z[192][146][168][170][202][202]X[185]F[193][146]X[173][[192]M[146][[192][146][172][195][192]=[146][175][192]E[189]=[146][178][192]E[190][208][146]F[172][197][192][146] <";
5070 PRINT"[192]-[146]@[192][146]=[202][192][176][178] [146]@1[189]E[191][200]1[189](%[189][146]X[169]BE[189]][146][175][192]%[190][146][169]@E[190]][146][178][192]%[191][146])";
5072 PRINT"C[208][210]=[146][212][192]][146]E[192]=[146][215][192]][146]H[192]X][146]B[192][146])8[202][202][202][189][200][192]E[189]X[146])[192][146]J**(9[207][192]";
5074 PRINT"E[190]";
5076 POKE53280,4:POKE648, 196 :PRINT:PRINT:PRINT"";
5078 PRINT"=[146]B[192][146])G[176][146][166][176]T(9[210][192][146][165][190][146]X[189][203][192][146]PEX[169]L[166][189][201][146]LP[146]D[169][146]L[198][189]E[190](%";
5080 PRINT"[191][146][200]9[166][192]E[191]9[218][192]$[189]H[146]0F[198][191][146][170]H[146]P[186][146]X[189][206][192]][146][212][192]%[191][146][189][209][192]][146][215][192][146][168]E";
5082 PRINT"[191][146])\[176]6=[146]-[192][146]]0[192][176][146]V=[146]E[192][221][146][212][192]=[146]H[192][189][146][215][192])[190][146][170]][146]*[192]P[146]Q[176]";
5084 PRINT"[146][202]][146]*[192]=[146][212][192]][146]E[192]=[146][215][192]][146]H[192]=[146]$[192][146]J[208][146]5=[146][218][192][176][146]L=[146][160][192]][146]K";
5086 PRINT"[192]=[146][163][192]][146]N[192]=[146][166][192][176][146]O$[189][146]X[185][178][192]$[190][146]X[185][186][192][146]XP[146]H=[146][169][192][176][146]K=[146][172]";
5088 PRINT"[192]M[146][[192])[146]@M[146]Z[192]%[191]([146]) E[191]X[146])[192]][146]$[192]X[146])\[202][202](-[146]_[192]H[176][146]\-[146]^";
5090 PRINT"[192][208][146]A8H[176][146]F[170]0[146]1H[208][186]$[191]E[191][176][146]G[202]0[146]%[165][191]0[146]$][146]![192]=[146]Q[192][146])[182]][146]Q";
5092 PRINT"[192][146]8=[146]B[192][146])G[208]";
5094 POKE53280,3:POKE648, 197 :PRINT:PRINT:PRINT"";
5096 PRINT"[146]C[190]$[192]=[146]Q[192][146][169]@][146]Q[192][146][172][197][192])[146]P,)[146]XM[146]@[192][146][160]X[146][200]%[191][146][202]0[146][176][202][202]";
5098 PRINT"0[146]^[202]0[146]N][146][163][192]][146]N[192][146][168]][146][160][192]][146]K[192][146][160][202]P[146]BI[184]][146][209][192][146][168]][146][206][192]";
5100 PRINT"[146][160][202]P[146]K[202][168]0[146]F][146][172][192]M[146][[192][146][160]([176][146]"A$"[168]H[176][146]#H[176][146]$H[176][146]%H[176][146]2H";
5102 PRINT"[176][146]3H[176][146]<H[176][146]=H[176][146][217]H[176][146][218]H[176][146][219][172][199][192][146][168]M[146]^[192][146][160]M[146]_[192][146][160]][146]'[192]";
5104 PRINT"[146][160]][146][187][192]%[189]][146][181][192]%[190]][146][184][192][146][160]0[146][213]M[146]A[192][146][160]][146][218][192][146]JP[146]AHX][146][221][192]";
5106 PRINT"[146][160]][146][169][192][146][160]([208][146]D][146]3[192][146][160]][146][194][192]<[146]3[192][208][146]O][146]3[192]X][146]9[192]][146]<[192])[146]A";
5108 PRINT"][146]6[192][146][160]][146][197][192][146][160]][146][166][192][146][160][202]P[146]B[200][146]X[200])G[185]L[193]][146][200][192][146][168][202][202][202]X[185]M[193]]";
5110 PRINT"[146][203][192][146][160][202]P[146]H][146]0[192][146][168]][146]-[192][146][160][168][202]0[146][213][202]0[146]%[202]0[146]E[202] [176][208][146]F";
5112 POKE53280,10:POKE648, 198 :PRINT:PRINT:PRINT"";
5114 PRINT"JJJJ [146]OE[191]X0[146]I=T[192][146]E[191]][146]T[192][146][160]=W[192][146]E[191]][146]W[192][146][160][202]0[146],[202]0[146][210]E";
5116 PRINT"[191]=[146][190][192][221][146]I[193][176][146][194][190][146][190][192](%[189]YA[192]%[190]YM[192]$[191]9)[192][176][146]*E[190]9Y[192]E[189][146][160]0[146][195][202]0";
5118 PRINT"[146]4(%[189]YY[192]%[190]Y)[192]=[146][190][192][221][146]I[193][176][146]M[190][146][190][192]()[146]@YM[192][146][160])[146]0,)[146](M[146]@";
5120 PRINT"[192][146][160]JJJJ[205]\[192][146])[176][146][205]\[192]P[146][175][205]][192][146])O[205]][192]M[146]][192][146][160][202][202]0[146][163][202]([176][146]WH";
5122 PRINT"[176][146]*H[176][146]6H[176][146]>H[176][146][198]-[146]][192][146])[191]P[146][178]I@0[146][174],[146]][192]0[146]G[200]X[146])O[208][146]G";
5124 PRINT"[160]X[146])O[176][146]DHL[146]][192][146][160]=[202][192][146][201][191][146]-\[192]P[146]$][202][192]0[146]_=[146]Q[192][146])[187]P[146]2I";
5126 PRINT"D0[146].=[146]Q[192][146])[189]P[146]'IB0[146]#-[146]\[192][146])[183]P[146]BIHM[146]\[192][146][160][202]0[146]'[202]0[146]T";
5128 PRINT"[208][146]B)[146]H";
5130 POKE53280,15:POKE648, 199 :PRINT:PRINT:PRINT"";
5132 PRINT"JJJJ[221]Q[192][146])[176][146][221]Q[192]][146]Q[192][146][160]JJJJ[205]][192][146])[176][205]][192]M[146]][192][146][160][202]([208][146]U=[146][187]";
5134 PRINT"[192][176][146]E[255][146][187][192][176][146]J=[146][181][192]E[189]=[146][184][192]E[190][146][160]H[208][146] =[146][190][192][221][146]H[193][176][146]R[255][146][190][192]";
5136 PRINT"(H9M[192][176][146]GE[190]9A[192]E[189][146][160])[146] M[146]@[192][146][160]-[146]@[192][146][221][202][192]M[146]@[192]HXQ[187][200]Q[187][146][160] ";
5138 POKE648,P1:PRINT""
5140 POKE49664,157:POKE49920,240:POKE50176,189
5150 RETURN
5999 REM *SORT*
6000 PRINT" WANT ALPHABETIZED DIRECTORY? (Y/N)"
6002 GETA$:IFA$=""THEN6002
6004 IFA$="N"THENRETURN
6006 IFA$="Y"THEN6008
6007 GOTO6002
6008 GOSUB610:PRINT"SORTING "
6010 FORI=1TO NS-1:FORJ=I+1TONS
6015 PRINT"";I;J
6020 IFPL$(J)<=PL$(I)THENTE$=PL$(J):PL$(J)=PL$(I):PL$(I)=TE$
6030 NEXT:NEXT
6040 RETURN