Compucolor.org – Virtual Media

Listing of file='SCHINS.BAS;01' on disk='vmedia/chip_78-sector.ccvf'

1000 PLOT 6,2,12,15,29,3,23,3:PRINT "MINDEX AND SEARCH"
1005 REM  
1010 PLOT 15,3,23,4:PRINT "-----------------"
1020 PLOT 3,0,6:PRINT "MINDEX & SEARCH ARE A PAIR OF PROGRAMS FOR SEARCHING TEXT FILES"
1030 PLOT 3,0,8:PRINT "THEY ARE CLOSELY  BASED ON THE ARTICLE IN THE 80 MICRO MAGAZINE"
1040 PLOT 3,0,9:PRINT "OF DECEMBER 1983 BY  J. TROJAK.  FULL DETAILS ARE GIVEN IN THAT"
1050 PLOT 3,0,10:PRINT "ARTICLE HOWEVER A BRIEF DESCRIPTION IS GIVEN BELOW."
1060 PLOT 3,27,12:PRINT "ssssss"
1070 PLOT 3,0,14:PRINT "PRIOR TO USING  SEARCH.PRG  TO SEARCH A FILE FOR  THE  REQUIRED"
1080 PLOT 3,0,15:PRINT "REFERENCE, IT IS NECESSARY TO CREATE A .MAP INDEX FILE FROM THE"
1090 PLOT 3,0,16:PRINT "TEXT FILE."
1100 PLOT 3,0,18:PRINT "THIS .MAP  FILE  ( ABOUT ONE EIGHTH THE SIZE OF THE TEXT FILE )"
1110 PLOT 3,0,19:PRINT "CONTAINS A HASHED  REFERENCE TO EVERY TRIPLET IN THE TEXT FILE."
1120 PLOT 3,0,20:PRINT "A TRIPLET IS A GROUP  OF  THREE  CHARACTERS, EXCLUDING BLANK,"
1130 PLOT 3,0,21:PRINT "COMMA AND  ROUNDED  PARENTHESIS. THESE  SPECIAL  CHARACTERS ARE"
1140 PLOT 3,0,22:PRINT "TREATED AS DELIMITERS."
1150 PLOT 3,0,24:PRINT "AS AN EXAMPLE, DOG,GOAT IN THE TEXT FILE WILL CAUSE 3 TRIPLETS"
1160 PLOT 3,0,25:PRINT "TO BE HASHED, I.E. DOG GOA OAT."
1170 PLOT 3,27,27:PRINT "ssssss"
1180 PLOT 3,17,29:PRINT "PRESS RETURN TO CONTINUE"
1190 PLOT 3,42,29:INPUT "";T$
2000 PLOT 6,2,12,15,29,3,0,1:PRINT "WHEN SEARCHING  FOR SAY GOAT, PROGRAM  SEARCH.PRG  ACCESSES THE"
2010 PLOT 3,0,2:PRINT ".MAP  FILE  LOOKING  FOR THE HASH OF TRIPLETS  GOA+OAT  WHERE +"
2020 PLOT 3,0,3:PRINT "REPRESENTS LOGICAL AND."
2030 PLOT 3,0,5:PRINT "IF BOTH OF THE HASH NUMBERS ARE FOUND, THE APPROPRIATE 256 BYTE"
2040 PLOT 3,0,6:PRINT "BLOCK IN THE TEXT FILE IS LOADED  INTO MEMORY AND  SEARCHED FOR"
2050 PLOT 3,0,7:PRINT "THE ASCII WORD,  GOAT. IF IT IS NOT FOUND, IT IS ASSUMED THAT A"
2060 PLOT 3,0,8:PRINT "COLLISION ( IN HASH  TERMINOLOGY ) HAS OCCURRED  AND  SEARCHING"
2070 PLOT 3,0,9:PRINT "OF THE .MAP  FILE  RESUMES  UNTIL  A POSITIVE MATCH IS FOUND OR"
2080 PLOT 3,0,10:PRINT "THE END OF THE .MAP FILE IS ENCOUNTERED."
2090 PLOT 3,24,12:PRINT "ssssss"
2100 PLOT 3,0,14:PRINT "TO   CREATE   THE .MAP  FILE,  RUN  MINDEX.PRG  AND FOLLOW  THE"
2110 PLOT 3,0,15:PRINT "INSTRUCTIONS  GIVEN.  OBVIOUSLY, IF THE TEXT FILE IS ALTERED, A"
2120 PLOT 3,0,16:PRINT "NEW .MAP FILE MUST BE CREATED."
2130 PLOT 3,24,18:PRINT "ssssss"
2140 PLOT 3,0,20:PRINT "TO SEARCH  FOR A  PARTICULAR KEY, RUN SEARCH.PRG AND FOLLOW THE"
2150 PLOT 3,0,21:PRINT "INSTRUCTIONS GIVEN.  NOTE THAT UPPER AND LOWER CASE ARE TREATED"
2160 PLOT 3,0,22:PRINT "THE SAME."
2170 PLOT 3,0,24:PRINT "WHEN  ENTERING THE  SEARCH  KEY(S),  LOGICAL  AND IS ENTERED BY"
2180 PLOT 3,0,25:PRINT "TYPING A SPACE ( A + SYMBOL APPEARS ) AND LOGICAL OR IS ENTERED"
2190 PLOT 3,0,26:PRINT "BY  TYPING A COMMA (A , SYMBOL APPEARS). FOR EXAMPLE, TO SEARCH"
2200 PLOT 3,0,27:PRINT "FOR EVERY  REFERENCE  OF DOG AND CAT, ENTER DOG CAT ( NOTE THAT"
2210 PLOT 3,0,28:PRINT "DOG+CAT WILL BE DISPLAYED )."
2220 PLOT 3,15,30:PRINT "PRESS READY TO CONTINUE"
2230 PLOT 3,39,30:INPUT "";T$
3000 PLOT 6,2,12,15,29,3,0,0:PRINT "OPTIONS"
3010 PLOT 3,0,1:PRINT "-------"
3020 PLOT 3,0,2:PRINT "SEARCH  OPTIONS  CAN  BE  CHANGED BY  ENTERING RETURN ONLY WHEN"
3030 PLOT 3,0,3:PRINT "REQUESTED FOR THE SEARCH KEY(S)."
3040 PLOT 3,0,5:PRINT "OPTIONS  TO  PRINT  OR SAVE THE SELECTED TEXT ARE AVAILABLE AND"
3050 PLOT 3,0,6:PRINT "ARE DISPLAYED PRIOR TO SELECTION."
3060 PLOT 3,22,8:PRINT "ssssss"
3070 PLOT 3,0,10:PRINT "DURING  THE  SEARCH, IT IS POSSIBLE TO CHANGE TO A LISTING MODE"
3080 PLOT 3,0,11:PRINT "IN ORDER TO DISPLAY TEXT AROUND THE SELECTED TEXT. ENTER A L TO"
3090 PLOT 3,0,12:PRINT "ENTER THE LIST MODE AND A S TO RETURN TO SEARCH MODE."
3100 PLOT 3,22,14:PRINT "ssssss"
3110 PLOT 3,0,16:PRINT "COMMANDS AVAILABLE ARE:-"
3120 PLOT 3,3,18:PRINT "DOWN ARROW      NEXT OCCURENCE OF KEY (SEARCH MODE)"
3130 PLOT 3,19,19:PRINT "NEXT RECORD (LIST MODE)"
3140 PLOT 3,3,21:PRINT "UP ARROW";SPC( 8);"BACKSPACE 3 SECTORS (LIST MODE ONLY)"
3150 PLOT 3,3,23:PRINT "P";SPC( 15);"PRINT RECORD"
3160 PLOT 3,3,25:PRINT "W";SPC( 15);"PRINT SCREEN"
3170 PLOT 3,3,27:PRINT "O";SPC( 15);"SAVE RECORD ON DISK"
3180 PLOT 3,15,29:PRINT "PRESS RETURN TO CONTINUE"
3190 PLOT 3,40,29:INPUT "";T$
4000 PLOT 6,2,12,15,29,3,0,2:PRINT "SEARCH SPEED"
4010 PLOT 3,0,3:PRINT "------------"
4020 PLOT 3,0,5:PRINT "SEARCH SPEED IS SLOWER FOR A 3 CHARACTER KEY (E.G.OIL) THAN FOR"
4030 PLOT 3,0,6:PRINT "KEYS  WITH  MORE  CHARACTERS  (E.G. AUSTRALIA) - THE LONGER THE"
4040 PLOT 3,0,7:PRINT "SEARCH KEY, THE FASTER THE SEARCH."
4050 PLOT 3,25,9:PRINT "ssssss"
4060 PLOT 3,0,11:PRINT "RECORD CONSTRUCTION"
4070 PLOT 3,0,12:PRINT "-------------------"
4080 PLOT 3,0,14:PRINT "PHYSICAL  RECORDS  IN  THE TEXT FILE CONSIST OF 256 BYTE BLOCKS"
4090 PLOT 3,0,15:PRINT "I.E. 2  CCII BLOCKS) AS THE  PROGRAM WAS ORIGINALLY WRITTEN FOR"
4100 PLOT 3,0,16:PRINT "THE TRASH 80.  THE 256 BYTE  BLOCK  NUMBERS ARE  DISPLAYED WHEN"
4110 PLOT 3,0,17:PRINT "RUNNING BOTH MINDEX AND SEARCH."
4120 PLOT 3,0,19:PRINT "LOGICAL  RECORDS  IN  THE  TEXT  FILE  CAN BE SET WHILE RUNNING"
4130 PLOT 3,0,20:PRINT "MINDEX  TO COMPRISE  TEXT BETWEEN TWO CARRIAGE RETURNS  (RECORD"
4140 PLOT 3,0,21:PRINT "MODE)  OR  BETWEEN  TWO  CARRIAGE RETURNS OR PERIODS  (SENTENCE"
4150 PLOT 3,0,22:PRINT "MODE). IT WAS ASSUMED BY THE ORIGINAL AUTHOR THAT RECORDS WOULD"
4160 PLOT 3,0,23:PRINT "BE  LONGER  THAN  SENTENCES  HOWEVER THE REVERSE IS USUALLY THE"
4170 PLOT 3,0,24:PRINT "CASE. NORMALLY THE RECORD MODE WOULD BE USED."
4180 PRINT
4190 PRINT TAB( 3)"1. MINDEX TO CREATE .MAP INDEX FILE ":PRINT
4200 PRINT TAB( 3)"2. SEARCH TO DETECT STRING IN .MAP FILE ":PRINT
4210 PRINT TAB( 3):INPUT "INPUT SELECTION...";Y
4220 ON YGOTO 4230,4240
4230 PLOT 27,4:PRINT "RUN MINDEX"
4240 PLOT 27,4:PRINT "RUN SEARCH"