10 REM ÆÉÌÅ ÉÎÄÅØ ³®° by Stacy Goff›20 REM For personal use or free exchange only.›30 REM Modified by Carolyn Hoglin›31 REM PPN 72467,2522 - Orlando, FL›32 GRAPHICS 2+16:POSITION 5,3:? #6;"æéìå éîäåø":POSITION 3,5:? #6;"ÍÁÓÔÅÒ ÉÎÄÅØ ÔÏ":POSITION 5,7:? #6;"ÄÉÓË ÆÉÌÅÓ"›35 Q1=1:Q2=2:Q3=3:Q4=4:Q5=5:Q6=6:Q7=0:Q8=40000:Q9=9:Q10=10:Q11=7:Q12=12:Q13=13:Q14=14:Q15=15:Q16=16:Q17=8:Q18=18:Q19=19:Q20=20›45 Q21=11:Q23=1015:Q24=3000:Q27=27:Q30=30:Q34=34:Q39=39:Q82=82:Q100=100:Q110=110:Q120=120:Q130=130:Q155=155:Q195=195:Q200=200›55 Q225=225:Q241=3240:Q250=1250:Q255=255:Q260=1260:Q279=53279:Q300=300:Q310=3310:Q315=2315:Q360=360:Q381=1380:Q430=1430:Q500=500›65 Q530=530:Q559=559:Q570=570:Q650=650:Q752=752:Q764=764:Q770=770:Q780=780:Q820=1820›80 FOR X=Q1 TO 1000:NEXT X›85 GOSUB 4000›90 DIM FILE$(Q30),SOR$(Q3),D$(Q4):D$=" ":D=Q1:FILENAME=Q7:DIM AREA$(Q20*1000),SAV$(Q20):GOTO Q820›100 TONE=Q14:GOTO Q130›110 TONE=Q2:GOTO Q130›120 TONE=Q4›130 FOR Z=Q1 TO Q30:SOUND Q7,Q10,TONE,Q12:NEXT Z:FOR Z=Q39 TO Q1 STEP -Q1:SOUND Q7,Q10,TONE,Z/Q3:NEXT Z›150 SOUND Q7,Q7,Q7,Q7:RETURN ›155 ? "} ÎÏ ÒÅÃÏÒÄÓ ÉÎ ÍÅÍÏÒÙ ":GOSUB Q120:FOR X=Q1 TO Q500:NEXT X:GOTO Q820›200 IF COUNT=Q7 THEN GOTO Q155›210 POKE Q752,Q1:? "}TOTAL NUMBER OF RECORDS IS ";COUNT›225 IF COUNT=Q7 THEN GOTO Q155›240 ? "ENTER Ä TO SORT BY DISK #":? " Ð TO SORT BY PROGRAM NAME":? " Å TO SORT BY EXTENSION"›270 ? " Ô TO SORT BY PROGRAM TYPE":TRAP 240:GOSUB Q100›310 POSITION Q6,Q9:INPUT D$:IF D$="D" THEN L=Q15:P=Q1:GOTO Q360›320 IF D$="P" THEN L=Q12:P=Q5:GOTO Q360›330 IF D$="E" THEN L=Q3:P=Q13:GOTO Q360›340 IF D$="T" THEN L=Q1:P=Q20:GOTO Q360›345 IF D$="" THEN 1250›350 GOTO Q200›360 ? :? "Sort will take ";INT(COUNT*(COUNT/Q300)+Q6);" seconds.":FOR X=Q1 TO Q500:NEXT X:POKE Q559,Q7:TRAP Q8:C=COUNT›380 C=INT(C/Q3)+Q1:FOR A=Q1 TO COUNT-C:LC=A*Q20-Q20+P:IF AREA$(LC,LC+L-Q1)<=AREA$(LC+(Q20*C),LC+(Q20*C)+L-Q1) THEN 440›400 SAV$(Q1,Q20)=AREA$((A+C)*Q20-Q19):B=A›410 AREA$((B+C)*Q20-Q19,(B+C)*Q20)=AREA$(B*Q20-Q19):B=B-C:IF B>Q7 THEN IF SAV$(P,P+L-Q1)Q1 THEN 380›460 POKE Q559,Q34:? :? " ÓÏÒÔ ÃÏÍÐÌÅÔÅÄ "›470 GOSUB Q110:FOR Z=Q1 TO Q500:NEXT Z:GOTO Q820›530 POKE Q752,Q1:? "} ÄÏ ÙÏÕ ×ÉÓÈ ÔÏ ÅÎÔÅÒ Á ":? " ÆÉÌÅ ÔÙÐÅ ÃÏÄÅ¿ ¨Ù ÏÒ Î© ";:GOSUB Q100:INPUT D$›560 IF D$="Y" THEN PSW=Q1:GOTO Q570›565 IF D$<>"N" THEN GOTO Q530›570 TRAP Q570:? :? " ÅÎÔÅÒ ¢ÅÎÄ¢ ÏÒ ÉÎÓÅÒÔ ÎÅØÔ ":? " ÄÉÓË ÁÎÄ ÅÎÔÅÒ ÄÉÓË ÎÕÍÂÅÒ® ";:GOSUB Q100›595 INPUT D$:IF D$="END" THEN 830›596 IF LEN(D$)=Q7 THEN GOTO Q570›597 IF D$(LEN(D$))<>"A" AND D$(LEN(D$))<>"B" THEN D$(LEN(D$)+Q1)=" "›600 IF LEN(D$)<>Q2 THEN 610›605 D$(Q3,Q4)=D$(Q1,Q2):D$(Q1,Q2)=" "›610 IF LEN(D$)<>Q3 THEN 625›615 D$(Q4,Q4)=D$(Q3,Q3):D$(Q3,Q3)=D$(Q2,Q2):D$(Q2,Q2)=D$(Q1,Q1):D$(Q1,Q1)=" "›625 IF PSW=Q1 THEN ? :? " ÅÎÔÅÒ ¢ª¢ ÔÏ ÂÙÐÁÓÓ Á ÆÉÌÅ® "›630 DISKS=DISKS+Q1:TRAP Q780:FILE$="D":FILE$(Q2)=STR$(D):FILE$(Q3)=":*.*":OPEN #Q1,Q6,Q7,FILE$›650 FILE$(Q18,Q18)=" ":INPUT #Q1;FILE$:? FILE$,:IF FILE$(Q1,Q1)>"*" THEN GOTO Q780›670 IF FILE$(Q3,Q6)="DOS " OR FILE$(Q3,Q6)="DUP " OR FILE$(Q3,Q6)="Dup " THEN GOTO Q770›680 IF FILE$(Q3,Q13)="AUTORUN SYS" OR FILE$(Q3,Q13)="MENU " THEN GOTO Q770›685 IF PSW=Q7 THEN ? ›690 SAV$=" ":IF PSW=Q7 THEN 710›700 TRAP Q8:POKE Q764,Q255:? "PROGRAM TYPE";:INPUT SAV$:IF SAV$="*" THEN 760›710 COUNT=COUNT+Q1:LOC=COUNT*Q20-Q19:AREA$(LOC,LOC+Q3)=D$:IF SAV$="" THEN SAV$=" "›730 FILE$(Q19,Q19)=SAV$:FILE$(Q14,Q18)=FILE$(Q15,Q19):AREA$(LOC+Q4,LOC+Q19)=FILE$(Q3,Q18):GOTO Q650›760 ? ,,"**Bypassed** ":GOTO Q650›770 ? "**Bypassed**":GOTO Q650›780 ? :? " ÅÎÄ ÏÆ ÄÉÒÅÃÔÏÒÙ¬ ÔÈÉÓ ÄÉÓË ":? " TOTAL RECORDS IS NOW ";COUNT:POKE Q764,Q255:GOSUB Q110›800 FOR X=Q1 TO Q200:NEXT X:CLOSE #Q1:GOTO Q570›830 ? :? " ÒÅÃÏÒÄÓ ÁÄÄÅĺ ";COUNT:? " ÄÉÓËÓ ÉÎÐÕÔº ";DISKS:GOSUB Q110:PSW=Q7:FOR X=Q1 TO 400:NEXT X:GOTO Q820›910 PG=Q7:LINES=Q7:IF COUNT=Q7 THEN GOTO Q155›912 POKE 82,2›915 ? "}Position paper so that printing will begin 1/2 inch below perforation. Hit when ready.":INPUT D$›930 TRAP 1220:OPEN #Q3,Q17,Q7,"P:":? #Q3;CD$;LM$;LF$;›940 GOSUB 1180:X=Q7›955 Z=1500:IF COUNT<225*PG THEN Z=INT((COUNT-225*(PG-Q1))/Q3+0.7)*Q20›965 FOR Y=Q1 TO Q2*Z+Q1 STEP Z:TRAP 1100:FILE$(Q1,Q20)=AREA$(X+Y,X+Y+Q19)›990 ? #Q3;" ";FILE$(Q1,Q4);" ";FILE$(Q5,Q12);".";FILE$(Q13,Q15);" ";FILE$(Q16,Q19);" ";›1000 D$=FILE$(Q20,Q20):IF D$=" " THEN SAV$=" "›1010 SAV$=D$:GOSUB Q23:GOTO 1085›1015 IF D$="A" THEN SAV$="AMUSEMENT/GAMES"›1017 IF D$="B" THEN SAV$="BUSINESS"›1020 IF D$="C" THEN SAV$="COMMUNICATIONS"›1023 IF D$="D" THEN SAV$="DIRECTORY"›1025 IF D$="E" THEN SAV$="EDUCATIONAL"›1027 IF D$="F" THEN SAV$="DATAFILE"›1030 IF D$="G" THEN SAV$="GRAPHICS"›1037 IF D$="H" THEN SAV$="HOME & PERSONAL"›1041 IF D$="J" THEN SAV$="JOYSTICK"›1043 IF D$="L" THEN SAV$="LANGUAGE"›1045 IF D$="M" THEN SAV$="MUSIC"›1050 IF D$="P" THEN SAV$="PRINTER PROGRAM"›1055 IF D$="S" THEN SAV$="SOUND"›1060 IF D$="T" THEN SAV$="TEXTFILE"›1065 IF D$="U" THEN SAV$="UTILITY"›1070 IF D$="W" THEN SAV$="WORD PROCESSOR"›1075 IF D$="X" THEN SAV$="MISCELLANEOUS"›1080 RETURN ›1085 ? #Q3;SAV$;›1090 IF LEN(SAV$) to continue";:GOSUB Q110:INPUT D$:GOTO Q250›1170 FOR I=Q1 TO Q9:? #Q3:NEXT I:LINES=Q7›1180 PG=PG+Q1:IF PG>Q1 THEN ? #Q3;EX$;" Page ";PG:GOTO 1200›1190 ? #Q3;EX$;" INDEX TO PROGRAMS "›1200 ? #Q3;CD$:LINES=LINES+Q2›1202 FOR Y=Q1 TO Q3›1203 ? #Q3;" DISK# FILENAME EXT SIZE FILETYPE ";:NEXT Y:? #Q3›1210 ? #Q3;" ";:FOR Y=Q1 TO 128:? #Q3;"-";:NEXT Y:? #Q3:LINES=LINES+Q2:RETURN ›1220 ? "}":? ," ÔÕÒÎ ÔÈÅ ÐÒÉÎÔÅÒ ÏΡ "›1230 GOSUB Q120:FOR X=Q1 TO Q100:NEXT X›1250 TRAP Q250:CLOSE #Q3:PSW=Q7:GOTO Q820›1260 ? :? ," ÁÂÏÒÔÅÄ ÕÐÏÎ ÒÅÑÕÅÓÔ ":GOTO 1230›1300 IF COUNT=Q7 THEN GOTO Q155›1305 GOSUB Q24:TRAP 1390:OPEN #Q2,Q9,Q7,FILE$›1320 ? "} Type Ù if you want records in memory to replace those in ";FILE$;".":GOSUB Q120›1340 INPUT D$:IF D$<>"Y" THEN ? " Closing file.":CLOSE #Q2:GOTO Q820›1345 GOTO Q430›1350 C=Q7:FOR X=Q1 TO COUNT:IF PEEK(Q279)=Q3 THEN ? :? " ÓÁÖÅ ÁÂÏÒÔÅÄ ÁÔ ÒÅÑÕÅÓÔ ":GOTO Q381›1360 FILE$(Q1,Q20)=AREA$(X*Q20-Q19,X*Q20):IF FILE$(Q1,Q1)="*" THEN C=C+Q1:NEXT X:GOTO Q381›1370 PRINT #Q2;FILE$:NEXT X›1380 CLOSE #Q2:? "}";X-C-Q1;"RECORDS WRITTEN":? "";C;"RECORDS DROPPED":FOR X=Q1 TO Q500:NEXT X:GOTO Q820›1390 IF PEEK(Q195)=170 THEN GOTO Q430›1395 IF PEEK(Q195)=144 THEN ? ," Åòòïò ±´´ ÃÈÅÃË ÄÉÓË¡":GOSUB Q120:FOR X=Q1 TO Q200:NEXT X:CLOSE #Q2:GOTO Q250›1400 IF PEEK(Q195)=129 THEN GOTO Q430›1410 ? ," É¯Ï ÅÒÒÏÒ¡ ":GOSUB Q120:CLOSE #Q2:FOR X=Q1 TO Q200:NEXT X:GOTO Q250›1430 TRAP 1390:CLOSE #Q2:OPEN #Q2,Q17,Q7,FILE$:TRAP Q8:GOTO 1350›1480 GOSUB Q24:TRAP 1580:OPEN #Q2,Q4,Q7,FILE$›1500 TRAP 1610:POKE Q559,Q7:SETCOLOR Q2,RND(Q7)*Q9,Q7›1530 INPUT #Q2;FILE$:COUNT=COUNT+Q1:AREA$(COUNT*Q20-Q19,COUNT*Q20)=FILE$›1565 IF PEEK(Q279)=Q3 THEN POKE Q559,Q34:CLOSE #Q2:? :? ," ÌÏÁÄ ÁÂÏÒÔÅÄ ÁÔ ÒÅÑÕÅÓÔ ":GOTO 1590›1570 GOTO 1530›1580 TRAP Q8:CLOSE #Q2:POKE Q559,Q34:? :? ," ÆÉÌÅ ÎÏÔ ÆÏÕÎÄ "›1590 GOSUB Q120:FOR X=Q1 TO Q200:NEXT X:GOTO Q250›1610 IF PEEK(Q195)<>136 THEN POKE Q559,Q34:GOTO 1410›1620 POKE Q559,Q34:POKE Q752,Q1:? ," ÅÎÄ ÏÆ ÆÉÌÅ ":GOSUB Q110:FOR X=Q1 TO Q200:NEXT X›1650 CLOSE #Q2:CLOSE #Q3:GOTO 1940›1700 GRAPHICS Q2:POSITION Q3,Q3:? #Q6;"ARE YOU SURE??":GOSUB Q120›1720 POKE Q752,Q1:INPUT D$:IF D$<>"Y" THEN GRAPHICS Q7:GOTO Q820›1730 GOSUB Q24:TRAP 1770:XIO 33,#Q3,Q7,Q7,FILE$:? #Q6:? #Q6;"MISSION ACCOMPLISHED":GOSUB Q110›1760 FOR X=Q1 TO 150:NEXT X:GRAPHICS Q7:GOTO Q820›1770 ? #Q6:? #Q6;" FILE IS HIDING":GOSUB Q120:GOTO 1760›1820 SETCOLOR Q2,RND(Q7)*Q9,Q7:POKE Q82,Q7:? "}";:POKE Q752,Q1:? ," ÐÒÏÇÒÁÍ ÉÎÖÅÎÔÏÒÙ "›1850 ? " Which action do you wish to perform?":? :? " Enter:Ì TO LOAD INDEX FROM DISK":? "Á TO ADD FILES"›1875 ? "ÂÄTO ADD BOOT DISK":? "Ä TO DISPLAY FROM MEMORY":? "Ð TO PRINT FROM MEMORY"›1895 ? "ÓÅTO SEARCH FOR A PROGRAM NAME":? "ÓÏTO SORT IN MEMORY":? "ÓÁTO SAVE INDEX TO DISK"›1920 ? "ÄÆTO DELETE DISK INDEX FILE":? "ÄÍTO DELETE FROM MEMORY":? "Ú TO 'ZERO' MEMORY"›1930 ? "¿ TO DISPLAY DISK DIRECTORY":? "Å TO EXIT PROGRAM":? :? "(Hold