Compucolor.org – Virtual Media

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

9 REM  BG-ON/BLACK/ERASE PAGE/FG-ON/GREEN/BLINK-OFF/
10 REM ************ HANGMAN LIBRARIAN -V1.0- ******************
12 REM *                                                      *
15 REM * DALE DEWEY  7284 HIGHVIEW TRAIL  VICTOR, N.Y.        *
18 REM *                                                      *
20 REM * DERIVED FROM COLORCUE ARTICLE (VOL 2.1 PG. 3)        *
22 REM *                                                      *
25 REM * THIS PROGRAM IS FOR CREATING USER DEFINED LIBRARY    *
28 REM * FILES FOR USE WITH HANGMAN. THE WORDS IN THIS FILE   *
30 REM * MAY NOT BE LONGER THAN 16 CHARACTERS.  HANGMAN MUST  *
32 REM * BE MODIFIED (AS SHOWN BELOW) TO USE THE NEW LIBRARY. *
38 REM *                                                      *
40 REM  *   510 PRINT :  INPUT"THE NAME OF YOUR LIBRARY? ";N8$ *
42 REM  *   667 FILE "T",4000 :  FILE "R",1,N8$+".LIB",1       *
45 REM  *  4000 REM ERROR TRAPPING ROUTINE                     *
48 REM  *  4010 FILE "E",FL,ER,LN                              *
50 REM  *  4020 IF ER=14 THEN PRINT "LIBRARY ";N8$;" DOES NOT  *
52 REM  *       EXIST":GOTO 510                                *
58 REM  *  4030 PRINT "PANIC FILE ERROR";N8$;".LIB  ER=";ER;"  *
60 REM  *       LN=";LN:END                                    *
62 REM  *   669 GET 1,1;N,W                                    *
65 REM  *   675 Q=INT((N-1)*RND(S)+2)                          *
68 REM *                                                      *
70 REM * THIS PROGRAM RUNS IN 10K BYTES                8/3/80 *
72 REM *     COPYRIGHT   DALE E. DEWEY,1980                   *
75 REM ********************************************************
76 REM  ERASE LINE/(ESC)X/(ESC)J/

100 FILE  "T",2000
110 GOSUB  1000
120 INPUT  "UPDATE OLD LIBRARY OR CREATE NEW LIBRARY? ";W$
130 IF  LEFT$ (W$,1)= "U" THEN  350
140 IF  LEFT$ (W$,1)= "C" THEN  200
150 GOTO  110
200 INPUT  "NEW LIBRARY NAME? ";L$:L$= LEFT$ (L$,6)
210 INPUT  "MAXIMUM NUMBER OF WORDS IN FILE? ";W:W= W+ 1
220 FILE  "R",2,L$+ ".LIB",1:GOSUB  1000:PRINT  "";L$;" ALREADY EXISTS":FILE  "C",2:GOTO  120
230 FILE  "N",L$+ ".LIB",W,16,8
240 FILE  "R",1,L$+ ".LIB",1
250 N= 1:PUT  1,1;N,W
260 FILE  "D",1
270 GOTO  400
350 INPUT  "OLD LIBRARY NAME? ";L$:L$= LEFT$ (L$,6)
360 FILE  "R",1,L$+ ".LIB",1
370 GET  1,1;N,W
400 GOSUB  1000
410 PRINT  "FILE ";L$;".LIB CONTAINS ROOM FOR";W- N;" WORDS."
420 INPUT  "FUNCTION (ADD, DELETE, CORRECT, LIST OR QUIT)? ";W$
430 IF  LEFT$ (W$,1)= "A" THEN  3010
440 IF  LEFT$ (W$,1)= "L" THEN  4010
450 IF  LEFT$ (W$,1)= "Q" THEN  5010
460 IF  LEFT$ (W$,1)= "D" THEN  6010
470 IF  LEFT$ (W$,1)= "C" THEN  7010
480 PLOT  28,11:GOTO  420
1000 REM  HEADER SUBROUTINE
1010 PLOT 12,14,6,3,3,24,0:PRINT  "HANGMAN LIBRARIAN":PRINT ""
1020 RETURN
2000 REM  ERROR TRAPPING ROUTINE
2010 FILE  "E",FI,EN,LN
2020 IF  FI= 2 AND  EN= 14 GOTO  230
2030 IF  EN= 14 THEN  GOSUB  1000:PRINT  "";L$;" DOES NOT EXIST":GOTO  120
2040 PRINT "FATAL FILE ERROR EN=";EN;" LN=";LN:END
3000 REM  ADD A NEW WORD
3010 GOSUB  1000
3020 INPUT  "ENTER NEW WORD OR RETURN ===> ";W$
3030 IF  W$= "0" GOTO  400
3040 N= N+ 1
3050 PUT  1,N;W$[16]
3060 GOTO  3020
4000 REM  LIST ALL WORDS IN LIBRARY
4010 IF  N= 1 THEN  PRINT :PRINT  "NO WORDS IN FILE.":PLOT 28,28,28,11:GOTO  420
4020 GOSUB  1000
4030 N1= 2:N2= N
4040 FOR  J= 1 TO  ((N- 1)/ 36)+ 1
4050 IF  N> 36* J THEN  N2= (36* J)+ 1
4060 IF  N1> N2 GOTO  4160
4070 FOR  I= N1 TO  N2 STEP  3
4080 GET  1,I;W$[16]:PRINT I- 1;TAB( 5);W$;
4090 IF  I+ 1< = N2 THEN  GET  1,I+ 1;W$[16]:PRINT  TAB( 21);I;TAB( 26);W$;
4100 IF  I+ 2< = N2 THEN  GET  1,I+ 2;W$[16]:PRINT  TAB( 42);I+ 1;TAB( 47);W$;
4110 PRINT :NEXT  I
4120 PRINT :INPUT  "HIT RETURN TO CONTINUE ";A
4130 N1= N2+ 1:N2= N
4140 GOSUB  1000
4150 NEXT  J
4160 GOTO  410
5000 REM  QUIT AND GO BACK TO MENU
5010 PUT  1,1;N,W
5020 FILE  "C",1
5030 PLOT 3,0,30
5040 INPUT  "DO YOU WANT ANOTHER LIBRARY (YES OR NO)? ";W$
5050 IF  LEFT$ (W$,1)= "Y" GOTO  110
5060 LOAD  "MENU":RUN
6000 REM  DELETE A WORD FROM THE LIBRARY
6010 GOSUB  1000
6020 INPUT  "NUMBER OF WORD TO BE DELETED? ";N1:N1= N1+ 1
6025 IF  N1< 2 OR  N1> N THEN  PLOT  28,11:GOTO  6020
6030 FOR  I= N1 TO  N
6040 GET  1,I+ 1;W$[16]
6050 PUT  1,I;W$[16]
6060 NEXT  I
6070 N= N- 1
6080 GOTO  4010
7000 REM  CORRECT A WORD IN THE LIBRARY
7010 GOSUB  1000
7020 INPUT  "NUMBER OF WORD TO BE CORRECTED? ";N1:N1= N1+ 1
7030 IF  N1< 2 OR  N1> N THEN  PLOT  28,11:GOTO  7020
7040 GET  1,N1;W$[16]
7050 PRINT  "WORD IN LIBRARY  ===> ";W$
7060 INPUT  "ENTER CORRECTION ===> ";W$
7070 IF  W$= "0" GOTO  7020
7080 PUT  1,N1;W$[16]
7090 INPUT  "CORRECT ANOTHER WORD (YES OR NO)? ";W$
7100 IF  LEFT$ (W$,1)= "Y" GOTO  7020
7110 GOTO  400
8000 REM  (ESC)K/A7-OFF/PLOT3,1,28/GREEN/