10 ! ERIC JOHNSON'S PROGRAM TO SORT A LIST OF ITEMS 12 ? TAB(-1,0) : ? TAB(10,10); 15 STRSIZ 65 17 INPUT LINE "WOULD YOU LIKE THE INSTRUCTIONS? ", A$ 18 IF UCS(A$[1,1]) = "Y" THEN GOSUB INSTRUCTIONS: 19 20 30 MENU: 40 ? TAB(-1,0) 50 ? TAB(10);"WOULD YOU LIKE TO:" 60 ? TAB(13);"1. ENTER A LIST OF ITEMS" 70 ? TAB(13);"2. READ THE SORTED LIST" 80 ? TAB(13);"3. PRINT OUT THE LIST ON THE PRINTER" 90 ? TAB(13);"4. QUIT" 100 ? TAB(20,10); 110 INPUT "ENTER YOUR CHOICE: ",A 120 ON A GOTO ENTER, READ, PRINT, QUIT 130 ? "PLEASE ENTER A NUMBER BETWEEN 1 AND 4. WHEN YOU THINK YOU" 140 INPUT LINE "KNOW WHAT THAT MEANS, HIT RETURN. ", A$ 150 GOTO MENU 160 200 ENTER: 205 ? TAB(-1,0) 210 INPUT "WHAT IS THE NAME OF THE FILE YOU WANT THIS LIST ON? ", FILE$ 220 IF LEN(FILE$) > 6 THEN GOTO BAD'START 230 LOOKUP FILE$, X 235 A$ = "" 240 IF X > 0 THEN INPUT "THAT FILE ALREADY EXISTS, DO YOU WANT TO KILL IT? "A$ 250 IF A$[1,1] = "Y" THEN GOTO OPEN'FILE 260 IF X < 0 THEN ? "SORRY, THAT NAME IS ALREADY TAKEN FOR ANOTHER FILE" 270 IF X < 0 THEN INPUT LINE "HIT RETURN TO CONTINUE ", A$ 280 IF X < 0 THEN GOTO ENTER 290 GOTO OPEN'FILE 295 300 BAD'START: 310 ? "SIX LETTERS OR LESS, PLEASE " 320 INPUT LINE "HIT RETURN TO CONTINUE ", A$ 330 GOTO ENTER 340 350 OPEN'FILE: 360 OPEN #1, FILE$, OUTPUT 365 USED'ENTER=1 370 380 SET'LENGTH: 390 ? TAB(-1,0) 400 ? TAB(5,1); "YOU MAY ENTER UP TO 78 LETTERS ON A LINE. WHAT IS THE" 410 INPUT "LONGEST LINE YOU WILL WANT TO ENTER? ", LENGTH 420 IF LENGTH > 78 THEN ? "I'LL SAY IT ONCE MORE, THIS TIME IN ENGLISH" 425 IF LENGTH <= 78 THEN GOTO ENTER'INFO 430 FOR N = 1 TO 2000 : NEXT N 440 GOTO SET'LENGTH 450 460 ENTER'INFO: 470 ? TAB(-1,0) 480 ? TAB(10,1); "YOU MAY NOW ENTER YOUR LIST, ONE LINE AT A TIME." 490 ? "WHEN YOU ARE DONE, ENTER 'ZZZZ' AS THE LAST LINE" 500 510 INFO'LOOP: 520 INPUT LINE ">",INFO$ 530 IF LEN(INFO$) > LENGTH THEN ? SPACE(50);"TOO LONG!"; 532 IF LEN(INFO$) > LENGTH THEN FOR N = 1 TO 1000 : NEXT N 535 IF LEN(INFO$) > LENGTH THEN ? TAB(0);SPACE(50);"TOO LONG!" 540 PRINT #1, INFO$ 550 IF UCS(INFO$) = "ZZZZ" THEN GOTO END'LOOP 560 GOTO INFO'LOOP 570 580 END'LOOP: 590 CLOSE #1 600 610 SORT: 620 OPEN #1,FILE$,INPUT 630 OPEN #2, FILE$+".SRT", OUTPUT 640 XCALL BASORT,1,2,LENGTH,LENGTH,1,0,0,0,0,0,0,0 650 CLOSE #1 660 CLOSE #2 670 ?"PROGRM ENTERED......." 675 FOR V=1 TO 2000 : NEXT V 680 GOTO MENU 690 1000 READ: 1010 IF USED'ENTER<>1 THEN GOTO ENTER'NAME 1020 ?"DO YOU WANT TO READ ";FILE$;"?" 1030 INPUT READIT$ 1040 IF READIT$[1,1]="Y" THEN GOTO READING 1090 ENTER'NAME: 1100 INPUT "WHICH FILE DO YOU WANT TO READ?",FILE$ 1110 LOOKUP FILE$,X 1120 IF X > 0 THEN GOTO READING 1130 ? "THAT FILE DOESN'T EXIST " : GOTO ENTER'NAME 1140 READING: 1150 OPEN #2, FILE$+".SRT", INPUT 1160 LOOP: 1170 INPUT LINE #2,INFO$ 1180 ?INFO$ 1190 IF INFO$ = "ZZZZ" THEN GOTO END'READ 1200 GOTO LOOP 1210 END'READ: 1220 CLOSE #2 1225 ? : ? "END OF FILE" 1230 INPUT LINE "HIT RETURN WHEN READY......", A$ 1240 GOTO MENU 2000 PRINT: 2010 IF USED'ENTER<>1 THEN GOTO FILE'NAME 2020 ?"DO YOU WANT TO PRINT ";FILE$;"?" 2030 INPUT PRINTIT$ 2040 IF PRINTIT$[1,1] = "Y" THEN GOTO PRINTING 2090 FILE'NAME: 2100 INPUT "WHAT FILE DO YOU WANT TO PRINT? ", FILE$ 2110 LOOKUP FILE$, X 2120 IF X > 0 THEN GOTO PRINTING 2130 ?"THAT FILE DOESN'T EXSIST" : GOTO FILE'NAME 2140 PRINTING: 2150 XCALL SPOOL, FILE$+".SRT" 2250 GOTO MENU 3000 QUIT: 5000 ! IT'S DONE!!!!!! 5020 END 5030 6000 INSTRUCTIONS: 6010 ? TAB(-1,0); 6020 ? "This program allows you to enter a list of items (each item" 6030 ? "may be up to one line long). It then alphabetizes the list" 6040 ? "and allows you to look at that list on the screen or print" 6050 ? "out the list. Be sure to enter 'ZZZZ' as the last item so" 6060 ? "that the program will know where to stop." 6070 ? TAB(20,10); : INPUT "hit RETURN to continue >",a$ 6100 RETURN