Home of the original IBM PC emulator for browsers.
[PCjs Machine "ibm5150"]
Waiting for machine "ibm5150" to load....
This is an excellent collection of games for kids aged 6 through
60 and beyond. There are games to tease and tantalize the intellect,
and some that are just plain fun. For anyone with a PCjr, this package
of fun really works overtime to exploit the strengths of this computer,
its sound, and graphics.
File Descriptions:
0 BAS End program and Goodbye screen.
2 BAS Alphabetize a word list.
1 BAS Spelling Bee.
3 BAS Fun arcade-type bowling game.
4 BAS A graphics display program.
5 BAS Maxit, a strategy/numbers game.
6 BAS Othello, an old standby.
8 BAS Find-a-Word puzzle (requires printer).
7 BAS Word Problems game.
10 BAS Finds your age in days.
9 BAS Creates a unique maze each time (requires printer).
12 BAS Black and white version of word matching game.
11 BAS Word matching game, similar to Concentration.
15 BAS Word Scramble (1).
14 BAS Word Scramble Number 1.
13 BAS Hangman, an old favorite.
MENU BAS Menu that allows selection and calls up the games.
GRADE-* LST Wordlist for grade 1 through 5 (5 files).
BRIEFLY BAS Part of titles used by TITLE.BAS.
AUTOEXEC BAT A batch file that helps create a working disk.
ACS PIC Picture file -- used by *.
20 BAS Program descriptions -- called from menu.
17 BAS Mazes number 2.
16 BAS Screen machine, a draw program (requires color graphics).
README DOC Documentation by authors.
TITLE2 BAS Additional titles.
TITLE BAS Title page and pointer to other documentation.
1 REM --ZERO------------END PROGRAM-----------------------------------
11 REM -------Gary West, Allendale SC 29810 (10/12/84)---------------
20 SCREEN 3
22 COLOR 1,2
25 PRINT
30 PRINT "THANK YOU FOR ":PRINT "WORKING WITH THE":PRINT "COMPUTER":PRINT "AND FOR TAKING":PRINT "CARE OF IT":PRINT "WHILE YOU WERE":PRINT "WORKING WITH IT."
55 PRINT
60 PRINT "I AM VERY PLEASED":PRINT "WITH WHAT YOU HAVE":PRINT "DONE."
65 COLOR 4,2
70 PRINT:PRINT
72 COLOR 1,2
75 PRINT:PRINT TAB(8);CHR$(2)
76 LOCATE 22,1
77 COLOR 15,2
80 PRINT "PRESS ANY KEY":PRINT "TO STOP."
85 A$=INKEY$:IF A$="" THEN 85
90 RUN "title2.bas"
1 REM --ONE---------SPELLING BEE--------------------------
2 REM --------------USING SC SIGHT WORD LIST--------------
3 REM --ADAPTED FROM COMPUTES! PC&PCjr MAGAZINE-----------
4 REM --REVISED 10/12/84: G.West, Allendale SC 29810------
5 SCREEN 0:WIDTH 40:KEY OFF:COLOR 15,1,1:CLS
6 DEF SEG=0:POKE 1047,0
10 DEF SEG = &HB800
20 REM Spelling Bee IBM PC & PCjr
30 DIM WORD$(975)
35 DIM WORDS$(10):CNT=1
45 RANDOMIZE TIMER
70 CLS:LOCATE 3,8:COLOR 14:PRINT "S P E L L I N G B E E":COLOR 15
80 PRINT
100 LOCATE 11,1 :INPUT "What is your name";NA$
110 IF NA$="" THEN PRINT:PRINT"You forgot to type your name." :GOTO 100
120 IF ASC(NA$)>96 THEN X=ASC(NA$):X=X-32:MID$(NA$,1,1)=CHR$(X)
125 CLS
130 LOCATE 10,4: PRINT"Hello, ";NA$;".":LOCATE 15,4:PRINT"Would you like to see instructions?":LOCATE 16,4:COLOR 14:PRINT"(Press Y for YES or N for NO)":COLOR 15
140 A$=INKEY$:A$=LEFT$(A$,1):IF A$="Y" OR A$="y" THEN 290
150 IF A$="N" OR A$="n" THEN 180
160 IF A$="" THEN 140
170 PRINT"<Y or N only, please.>":GOTO 140
180 REM Choose Difficulty
190 CLS
200 PRINT "Which word list do you":PRINT "want to use:":PRINT
210 PRINT TAB(5);"1) List A":PRINT TAB(5);"2) List B":PRINT TAB(5);"3) List C":PRINT TAB(5);"4) List D":PRINT TAB(5);"5) List E":PRINT TAB(5);"6) End Work"
211 PRINT:PRINT "Press the number for":PRINT "the list you want."
215 FOR X=1 TO 15:EMPTY$=INKEY$:NEXT X
220 A$=INKEY$: IF A$="" THEN 220
225 IF VAL(A$)<1 OR VAL(A$)>6 THEN 215
227 IF A$="6" THEN 920
229 ON ERROR GOTO 237
230 PRINT:COLOR 14:PRINT "MAKING THE WORD LIST READY.":PRINT "PLEASE WAIT.":COLOR 15
231 IF A$="1" THEN LST=350:OPEN "GRADE-1.LST" FOR INPUT AS #1:GOTO 238
232 IF A$="2" THEN LST=450:OPEN "GRADE-2.LST" FOR INPUT AS #1:GOTO 238
233 IF A$="3" THEN LST=710:OPEN "GRADE-3.LST" FOR INPUT AS #1:GOTO 238
234 IF A$="4" THEN LST=800:OPEN "GRADE-4.LST" FOR INPUT AS #1:GOTO 238
235 IF A$="5" THEN LST=975:OPEN "GRADE-5.LST" FOR INPUT AS #1:GOTO 238
237 CLS:COLOR 14:PRINT "OOPS! Something's not right...":PRINT "Let's start again, ";NA$:COLOR 15:GOTO 200
238 LOCATE 21,6:PRINT "READING AS FAST AS I CAN.":LOCATE 22,6:PRINT "OF ";LST;" WORDS IN THIS LIST.":FOR T=1 TO LST:LOCATE 22,1:PRINT T:INPUT#1,WORD$(T):NEXT T:CLOSE#1
240 GOTO 560
290 REM Instructions
300 CLS:LOCATE 3,1:PRINT"Great! Now,";NA$;",":PRINT"all you have to do is follow these simple directions:"
310 LOCATE 9,1:PRINT"A word will be flashed briefly on the screen. After the word disappears, spell it by moving the arrow under the letter and hitting the 'Ins' key.
320 LOCATE 16,1:PRINT"If you accidentally type the wrong letter, you can erase it with the 'Del' key.":PRINT
330 LOCATE 22,7: PRINT"Press any key to continue"
340 A$=INKEY$:IF A$="" THEN 340
350 CLS:PRINT:PRINT"When you've spelled the word, press the down arrow key (";CHR$(25);")."
360 LOCATE 6,1:PRINT"You get three chances to spell each wordcorrectly. If you cannot spell the word after three tries, I will show you the correct spelling."
380 PRINT:PRINT:PRINT"If you wish to end a session, simply"
390 PRINT"spell 'XX' instead of the "
400 PRINT"word you would normally spell.":PRINT
410 LOCATE 22,7:PRINT"Press any key to continue"
420 A$=INKEY$:IF A$="" THEN 420
430 GOTO 180
530 REM lets go
540 PRINT"Press any key to go"
550 A$=INKEY$:IF A$=""THEN 550
560 LEV=VAL(A$)
561 CLS:PRINT NA$;",":PRINT "HOW MANY WORDS WOULD YOU LIKE TO USE?":PRINT "(TYPE A NUMBER ";:COLOR 14:PRINT "BETWEEN 1 AND 30":COLOR 15:PRINT "AND PRESS <ENTER>.)";
562 INPUT " ",NBR$
563 IF VAL(NBR$)<1 OR VAL(NBR$)>30 THEN 561
564 NBR=VAL(NBR$)
570 Z=INT(LST*RND(1))+1:TRY=3:SC=75
580 CLS
586 IF CNT>NBR THEN 980
590 IF SC = 0 THEN 920
595 LOCATE 3,16:PRINT "List # ";A$
596 LOCATE 3,35:PRINT " ":LOCATE 3,35:PRINT CNT
600 LOCATE 4,16:PRINT "Word #";Z
610 LOCATE 6,(20-0.5*LEN(WORD$(Z))):PRINT WORD$(Z)
620 FOR T=1 TO 1500:NEXT
630 LOCATE 6,8:PRINT STRING$(20,32)
640 REM set up alphabet
660 R= 65:FOR T=1054 TO 1054+50 STEP 2:POKE T,R :R=R+1: NEXT
665 COLOR ,0:FOR X=8 TO 33:LOCATE 15,X:PRINT CHR$(32):NEXT X:COLOR ,1
670 REM move arrow
680 LC= 1158:POKE LC+1,15:POKE LC,24
681 LOCATE 19,1:COLOR 14:PRINT "USE THESE KEYS: ":LOCATE 20,1:COLOR 15:PRINT CHR$(27);:COLOR 14:PRINT " and ";:COLOR 15:PRINT CHR$(26);:COLOR 14:PRINT TAB(10);"to move arrow"
683 LOCATE 21,1:COLOR 15:PRINT "INS";:COLOR 14:PRINT TAB(10);"to put letter in word":COLOR 15:LOCATE 22,1:PRINT "DEL";:COLOR 14:PRINT TAB(10);"to erase letter in word"
684 LOCATE 23,1:COLOR 15:PRINT CHR$(25);:COLOR 14:PRINT TAB(10);"when word is done":COLOR 15
688 COLOR 14:LOCATE 18,1:PRINT "--------------------------------------"
689 LOCATE 24,1:PRINT "--------------------------------------";:COLOR 15
690 P=0
700 LOCATE 9,20-0.5*LEN(WORD$(Z)):D$=STRING$(LEN(WORD$(Z)),95):PRINT D$
710 FOR X=1 TO 15:EMPTY$=INKEY$:NEXT X
711 NI$="":IN$=INKEY$: IF IN$=""THEN 711
720 IF LEN(IN$)=2 THEN NI$=RIGHT$(IN$,1) ELSE NI$=""
730 IF NI$=CHR$(83) AND P>0 THEN MID$(D$,P)=CHR$(95):LOCATE 9,20-0.5*LEN(WORD$(Z)):PRINT D$:P=P-1
740 OC=LC:IF NI$=CHR$(77) THEN LC=LC+2: GOTO 780
750 LT$=CHR$(PEEK (LC-80))
760 IF NI$=CHR$(82) AND P<LEN(WORD$(Z))THEN P=P+1:MID$(D$,P)=LT$:LOCATE 9,20-0.5*LEN(WORD$(Z)):PRINT D$
770 IF NI$=CHR$(75) THEN LC=LC-2
780 IF LC>1184 THEN LC=LC-52
790 IF LC<1134 THEN LC=LC+52
800 IF LC<>OC THEN POKE OC,32:POKE LC+1,15:POKE LC,24
810 IF NI$=CHR$(80) THEN GOSUB 850:GOTO 580
820 GOTO 710
830 REM SPELL OUT WORD
840 LOCATE 20,4:PRINT "the word is spelled this way.":FOR T=1 TO LEN (WORD$(Z)):LOCATE 11,20-0.5*LEN(WORD$(Z)):PRINT LEFT$(WORD$(Z),T):FOR K=1 TO 1000:NEXT:NEXT:FOR T=1 TO 1000: NEXT:Z=INT(LST*RND(1))+1:RETURN
850 WORDS$(CNT)=WORD$(Z):IF D$=WORD$(Z) THEN WORDS$(CNT)=" "+WORDS$(CNT):CNT=CNT+1
851 IF LEFT$(D$,2)="XX" THEN 980 ELSE GOSUB 960:LOCATE 20,8::IF D$=WORD$(Z) THEN PRINT"that's right! Very good!":Z=INT(LST*RND(1))+1:TRY=3 ELSE SC=SC-1:TRY=TRY-1:IF TRY<=0 THEN GOSUB 830 ELSE PRINT"that's not correct. Try again.
855 IF TRY<=0 THEN WORDS$(CNT)="X "+WORDS$(CNT):CNT=CNT+1:TRY=3
860 IF FLAG=1 THEN 920
870 FOR T=1 TO 1500:NEXT:LOCATE 20,15:PRINT STRING$(26,32)
880 RETURN
920 CLS
930 LOCATE 12,11:PRINT"Play again (Y or N)?"
940 A$=INKEY$:IF A$=""THEN 940
950 IF A$="y" OR A$="Y" THEN RUN ELSE RUN "MENU.BAS"
960 FOR X=19 TO 23:LOCATE X,1:PRINT " ":NEXT X:LOCATE 19,INT(20-0.5*LEN(NA$)):PRINT NA$;",":RETURN
970 GO$=INKEY$:IF GO$="" THEN 970 ELSE RETURN
975 RESUME 60
980 CLS:LOCATE 7,1:PRINT NA$;",":PRINT "You worked with these words:":PRINT "(X marks those you missed.)
985 PRINT:FOR T=1 TO NBR:PRINT TAB(5);WORDS$(T):NEXT T:PRINT:PRINT "PRESS ANY KEY.":CNT=1:Z=1:FLAG=1:GOSUB 970:GOTO 180
10 REM --TEN-------------------AGE IN DAYS--------------------------
11 REM BIRTHDAY UPDATED 5-5-77 TO "MITS" BY D. NIXON
12 REM UPDATED 10/6/84 BY G.WEST, ALLENDALE SC 29810
13 REM FOR THE IBM PCjr WITH 128K RAM
102 CLS:PRINT "THIS PROGRAM WILL ASK FOR SEVERAL PIECES":PRINT "OF INFORMATION AND WILL USE THOSE PIECES":PRINT "TO CALCULATE SEVERAL THINGS ABOUT HOW OLD YOU ARE.":PRINT:PRINT "PRESS THE <SPACE BAR> TO GO ON."
103 A$=INKEY$:IF A$<>" " THEN 103
104 RANDOMIZE TIMER:POKE 1047,64
105 CLS:PRINT "TYPE YOUR NAME AND PRESS THE <ENTER> KEY:"
106 INPUT " ",N$
107 PRINT:PRINT "DID YOU TYPE YOUR NAME CORRECTLY?":PRINT "PRESS THE <Y> KEY FOR 'YES' OR":PRINT "PRESS THE <N> KEY FOR 'NO'."
108 A$=INKEY$:IF A$<>"Y" AND A$<>"y" AND A$<>"N" AND A$<>"n" THEN 108
109 IF A$="N" OR A$="n" THEN 105
110 DIM Z$(12),L(12),N(60),Y$(7)
120 DIM G$(12),H$(32)
130 FOR I=1 TO 12:READ Z$(I):NEXT
140 FOR I=1 TO 12:READ L(I):NEXT
150 FOR I=1 TO 7:READ Y$(I): NEXT
160 FOR I=1 TO 12:READ G$(I):NEXT
170 FOR I=1 TO 32:READ H$(I):NEXT
180 DATA JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST
190 DATA SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
200 DATA 31,28,31,30,31,30,31,31,30,31,30,31
210 DATA THURS,FRI,SATUR,SUN,MON,TUES,WEDNES
220 DATA THE MOON,THE SUN,THE EARTH,THE PLANET MERCURY,VENUS,MARS
230 DATA JUPITER,SATURN,THE PLANET URANUS,THE PLANET NEPTUNE
240 DATA THE PLANET PLUTO,PEANUT BUTTER
250 DATA JUXTAROTATION,CONTRAPOSITION,CONTRASTING PHASES,TRANSPOSITION
260 DATA SATISFIED,HAPPY,INTERESTING,TOLERANT
270 DATA OFTEN,OCCASIONALLY,SOMETIMES
280 DATA TEND TO BE,ARE,ARE INCLINED TO BE
290 DATA SHORT OF PATIENCE,UNEASY,AT ODDS
300 DATA OTHERS.,CLOSE FRIENDS.,YOUNGER PEOPLE.,THOSE IN AUTHORITY.
310 DATA " BEWARE OF "," AVOID "
320 DATA APPLE PIE,BEING ALONE,DARK PLACES,STRANGERS,UNUSUAL SITUATIONS:
330 DATA BE TAKING A TRIP YOU HAVE NOT MADE BEFORE.
340 DATA BE MEETING SOMEONE YOU WILL KNOW FOR THE REST OF YOUR LIFE.
350 DATA MAKE SEVERAL IMPORTANT DECISIONS INVOLVING OTHERS.
360 DATA BECOME ILL IF YOU DO NOT LESSEN YOUR UNUSUAL ACTIVITIES.
365 CLS:PRINT N$;","
370 PRINT "I NEED TO KNOW TODAY'S DATE.":PRINT "PLEASE ANSWER THESE QUESTIONS:":PRINT:PRINT TAB(5);"JANUARY=1 FEBRUARY=2 MARCH=3 APRIL=4":PRINT TAB(5);"MAY=5 JUNE=6 JULY=7 AUGUST=8":PRINT TAB(5);"SEPTEMBER=9";
371 PRINT " OCTOBER=10 NOVEMBER=11 DECEMBER=12"
372 PRINT:PRINT "WHAT IS THE NUMBER FOR THIS MONTH?":PRINT "TYPE THE NUMBER AND PRESS THE <ENTER> KEY:";:INPUT " ",X1$:X1=VAL(X1$)
373 IF X1<1 OR X1>12 THEN PRINT "OOPS! TRY AGAIN.":GOTO 372
375 PRINT:PRINT "WHAT IS TODAY'S DATE?":PRINT "TYPE THE NUMBER AND PRESS THE <ENTER> KEY:";:INPUT " ",Y1$:Y1=VAL(Y1$)
376 IF Y1<1 OR Y1>31 THEN PRINT "OOPS! TRY AGAIN.":GOTO 375
378 PRINT:PRINT "WHAT IS THIS YEAR?":PRINT "(USE TWO NUMBERS ONLY--EXAMPLE: 84--NOT 1984.)":PRINT "TYPE THE NUMBER PRESS THE <ENTER KEY>:";
379 INPUT " ",Z1$
380 Z1=VAL(Z1$)
390 IF Z1>99 GOTO 410
400 Z1=Z1+1900
410 XF=X1:YF=Y1:ZF=Z1:GOSUB 1220:U=ND
412 CLS
415 PRINT N$;","
420 PRINT "TODAY IS ";Y$(U-7*INT(U/7)+1);"DAY--I HOPE."
430 PRINT
440 PRINT "HI, I'M THE WORLD'S BEST AT FINDING OUT YOUR AGE."
450 PRINT "AND IT'S VERY SIMPLE TO DO--I JUST ASK.":PRINT
580 PRINT "SO, HOW OLD ARE YOU, ";N$;"?";
590 INPUT " ",AGE$
591 PRINT:PRINT "IS THAT RIGHT?":PRINT "PRESS THE <Y> KEY FOR YES OR":PRINT "PRESS THE <N> KEY FOR NO."
592 YY$=INKEY$:IF YY$<>"Y" AND YY$<>"y" AND YY$<>"N" AND YY$<>"n" THEN 592
593 IF YY$="N" OR YY$="n" THEN PRINT "TRY AGAIN.":PRINT:GOTO 580
599 A=VAL(AGE$)
600 A=INT(A)
610 IF INT((A-5)/95)=0 GOTO 640
620 PRINT:PRINT "I'M SORRY, ";N$;". I CAN WORK ONLY":PRINT "WITH AGES BETWEEN 5 AND 100.":PRINT "LET'S TRY AGAIN."
630 GOTO 580
640 CLS:PRINT "SO, ";N$;", YOU ARE ";A;" YEARS OLD.":PRINT
650 PRINT "DO YOU KNOW, OFF HAND, HOW MANY DAYS THAT IS?"
651 PRINT:PRINT "PRESS THE <Y> KEY IF YOU DO OR":PRINT "PRESS THE <N> KEY IF YOU DON'T."
660 A$=INKEY$:IF A$<>"Y" AND A$<>"y" AND A$<>"N" AND A$<>"n" THEN 660
661 IF A$="N" OR A$="n" THEN 720
680 ON NA GOTO 720,690,660
690 PRINT:PRINT "OK, SMARTY, HOW MANY?"
695 FOR I=1 TO 1000:NEXT I
700 PRINT:PRINT "SORRY, ";N$;", YOU'LL HAVE TO BE FASTER THAN THAT!"
720 PRINT:PRINT "SO, I'LL TELL YOU.":PRINT
733 PRINT:PRINT "WHAT IS THE NAME OF THE MONTH IN WHICH YOUR WERE BORN?":PRINT "TYPE THE MONTH AND PRESS THE <ENTER> KEY:"
740 INPUT " ",M$
750 FOR X=1 TO 12
760 IF M$=Z$(X) GOTO 800
770 NEXT X
780 PRINT N$;", YOU MAY BE NICE BUT YOU CAN'T SPELL.":PRINT "TRY AGAIN.":PRINT
790 GOTO 733
800 PRINT "WHAT IS THE DATE OF YOUR BIRTH?":PRINT "TYPE THE NUMBER AND PRESS THE <ENTER> KEY.";:INPUT " ",YK$:Y=VAL(YK$):IF Y<1 OR Y>31 THEN PRINT:PRINT "OOPS! TRY AGAIN.":PRINT:GOTO 800
820 Z=Z1-A
830 IF INT((Y-1)/L(X))=0 GOTO 870
840 IF (X-1)*(Y-28)*(Z-4*INT(Z/4)+1)=1 GOTO 870
850 PRINT "COME ON, ";N$;", YOU'RE GIVING ME A HARD TIME."
860 GOTO 800
870 CLS
880 XF=X1:YF=Y1:ZF=Z:GOSUB 1220:W=ND
890 XF=X:YF=Y:ZF=Z:GOSUB 1220:V=ND
900 IF W=> V GOTO 920
910 Z=Z-1
920 IF ABS(W-V)>30 GOTO 990
930 ON SGN(W-V)+2 GOTO 940,980,960
940 CLS:PRINT "YOU HAVE A BIRTHDAY COMING UP IN ONLY";V-W;"DAYS!"
950 GOTO 990
960 CLS:PRINT "YOUR BIRTHDAY WAS ONLY";W-V;"DAYS AGO. CONGRATULATIONS!"
970 GOTO 990
980 CLS:PRINT "HAPPY BIRTHDAY, DEAR ";N$;", HAPPY BIRTHDAY TO YOU."
990 XF=X:YF=Y:ZF=Z:GOSUB 1220:V=ND
1000 PRINT:PRINT "YOU WERE BORN ON ";Y$(V-7*INT(V/7)+1);"DAY, ";Z$(X);Y;",";Z;"."
1010 PRINT "WHICH MAKES YOU";U-V;"DAYS OLD."
1020 PRINT:PRINT "YOU WERE BORN ON DAY";V;"AD, AND ON JAN. 1, 2000";","
1030 PRINT "YOU WILL BE";730480!-V;"DAYS OLD.":PRINT
1060 GOSUB 1350
1065 PRINT "(IF YOUR PRINTER IS ATTACHED AND WORKING,":PRINT "YOU CAN COPY THIS SCREEN BY PRESSING THE <FN> AND <P> KEYS.)":PRINT
1070 PRINT "WELL, ";N$;",";
1100 PRINT " IT HAS BEEN NICE CHATTING WITH YOU. DO COME AGAIN."
1110 PRINT:PRINT "PRESS THE <SPACE BAR> TO GO ON."
1111 A$=INKEY$:IF A$<>" " THEN 1111
1120 GOTO 1600
1130 REM SUBROUTINE FOR YES NO REQUEST
1140 NA=1
1150 IF A$="NO" GOTO 1210
1160 IF A$="N0" GOTO 1210
1170 NA=2
1180 IF A$="YES" GOTO 1210
1190 NA=3
1200 PRINT "A SIMPLE YES OR NO WILL DO! "
1210 RETURN
1220 REM SUBROUTINE TO SOLVE FOR NUMBER OF DAYS
1230 ND=YF-1
1240 FOR I1=1 TO XF-1
1250 ND=ND+L(I1)
1260 NEXT I1
1270 I1=INT(ZF/100)
1280 IF ZF<>4*INT(ZF/4) GOTO 1330
1290 IF ZF/100=I1 GOTO 1330
1300 IF ND>59 GOTO 1330
1310 IF XF=3 GOTO 1330
1320 ND=ND-1
1330 ND=ND+36524!*I1+INT(365.25*(ZF-100*I1))
1340 RETURN
1350 REM GENERATE RANDOM HOROSCOPE
1360 R1=INT(12*RND(1))+1
1370 R2 = INT(12*RND(1))+1
1380 IF R1=R2 GOTO 1370
1390 R=1
1400 X=4:GOSUB 1570
1410 PRINT "YOU WERE BORN UNDER THE ";H$(NR);" OF ";G$(R1)
1420 X=4:GOSUB 1570
1430 PRINT "AND ";G$(R2);". YOU ARE A BASICALLY ";H$(NR)
1440 X=3:GOSUB 1570
1450 PRINT "PERSON BUT ";H$(NR);
1460 GOSUB 1570
1470 PRINT " YOU ";H$(NR)
1480 GOSUB 1570:N1=NR:X=4:GOSUB 1570:N2=NR:X=2:GOSUB 1570
1490 PRINT H$(N1);" WITH ";H$(N2);H$(NR)
1500 X=5:GOSUB 1570
1510 PRINT H$(NR);" FOR THE NEXT WEEK. I PREDICT YOU WILL SOON"
1520 X=4:GOSUB 1570
1530 PRINT H$(NR)
1540 PRINT
1550 RETURN
1560 REM SUBROUTINE TO SELECT RANDOM WORDS
1570 NR=INT(X*RND(1))+R
1580 R=R+X
1590 RETURN
1600 CLS:PRINT "WHAT WOULD YOU LIKE TO DO NOW?"
1610 PRINT:PRINT TAB(5);"1) DO THIS AGAIN":PRINT TAB(5);"2) END":PRINT:PRINT "PRESS THE NUMBER FOR YOUR CHOICE."
1620 A$=INKEY$:IF A$<>"1" AND A$<>"2" THEN 1620
1630 IF A$="1" THEN RUN ELSE RUN "MENU.BAS"
1 REM -----ELEVEN--------WORD MATCH-------------------------
2 REM -------------------USING SC SIGHT WORD LIST-----------
3 REM -------------------FROM COMPUTE!'S PC&PCjr MAGAZINE---
4 REM -------ADAPTED BY GARY WEST, ALLENDALE SC 29810-------
5 REM -------------------10/15/84---------------------------
6 REM -------------------FOR IBM PCjr WITH 128K RAM---------
7 REM ------------------------------------------------------
100 DEF SEG=0:POKE 1047,64
110 KEY OFF:WIDTH 40:SCREEN 0,1:COLOR 1,2,2:CLS:LOCATE 12,14,0:PRINT " WORD MATCH ":COLOR 15
120 FOR P=1 TO 500:NEXT P:LOCATE 20,8:PRINT "PRESS ANY KEY TO START."
130 GOSUB 990
140 DIM W$(12),R%(12),C%(975),R(12),C(12)
142 DIM WORD$(975)
145 RANDOMIZE TIMER
150 CLS:LOCATE 2,4:PRINT "TYPE EACH PLAYER'S NAME":LOCATE 3,4:PRINT "AND PRESS THE <ENTER> KEY."
160 LOCATE 20,1:PRINT "TO PLAY AGAINST THE COMPUTER,":LOCATE 21,1:PRINT "TYPE ";CHR$(34);"NONE";CHR$(34);" AS PLAYER TWO."
180 FOR N=7 TO 10 STEP 3:P=ABS(8-N):LOCATE N,1:PRINT "PLAYER ";P;:INPUT " ",N$(P):NEXT N:CLS
190 IF N$(1)="" OR N$(2)="" THEN 150
219 CLS:PRINT "WHICH LIST DO YOU WANT TO WORK WITH:":PRINT
220 PRINT TAB(5);"1) LIST A":PRINT TAB(5);"2) LIST B":PRINT TAB(5);"3) LIST C":PRINT TAB(5);"4) LIST D":PRINT TAB(5);"5) LIST E":PRINT TAB(5);"6) QUIT":PRINT:PRINT "PRESS THE NUMBER OF YOUR CHOICE."
221 UC$=INKEY$:IF UC$="" THEN 221
222 IF VAL(UC$)<1 OR VAL(UC$)>6 THEN 221
223 ON ERROR GOTO 997
225 PRINT:COLOR 4:PRINT "MAKING WORD LIST READY. PLEASE WAIT.":COLOR 15
226 IF UC$="6" THEN 895
227 IF UC$="1" THEN LST=350:OPEN "GRADE-1.LST" FOR INPUT AS #1:GOTO 235
228 IF UC$="2" THEN LST=450:OPEN "GRADE-2.LST" FOR INPUT AS #1:GOTO 235
229 IF UC$="3" THEN LST=710:OPEN "GRADE-3.LST" FOR INPUT AS #1:GOTO 235
230 IF UC$="4" THEN LST=800:OPEN "GRADE-4.LST" FOR INPUT AS #1:GOTO 235
231 IF UC$="5" THEN LST=975:OPEN "GRADE-5.LST" FOR INPUT AS #1:GOTO 235
235 LOCATE 22,6:PRINT "OF ";LST;" WORDS IN THIS LIST."
236 FOR T=1 TO LST:LOCATE 22,1:PRINT T:INPUT#1,WORD$(T):NEXT T:CLOSE#1
237 CLS:PRINT "SELECTING THE WORDS. PLEASE WAIT.":PRINT:PRINT:PRINT "THESE WORDS WILL BE USED IN THIS GAME:"
239 FOR N=1 TO 12
240 R%(N)=0:RD=RND(N):NEXT N
260 FOR N=1 TO 6
270 W=INT(LST*RND(1))+1:T$=WORD$(W):Y=INT(12*RND(1))+1:Z=INT(12*RND(1))+1
275 IF LEN(T$)>9 THEN 270
280 IF R%(Z)=1 OR R%(Y)=1 OR C%(W)=1 OR Z=Y THEN 270
290 IF T$="" THEN 270
300 R%(Z)=1:R%(Y)=1:C%(W)=1
310 W$(Y)=T$:W$(Z)=T$
315 COLOR 1:PRINT:PRINT T$:COLOR 15
320 NEXT N
330 FOR N=1 TO 12:R%(N)=0:NEXT N:FOR N=1 TO LST:C%(N)=0:RD=RND(N):NEXT N
340 A$=STRING$(31,219):B$=CHR$(219):CLS:LOCATE 1,16:COLOR 1:PRINT "WORD MATCH":COLOR 14:FOR N=2 TO 14 STEP 4
350 LOCATE N,5:PRINT A$
360 FOR M=N+1 TO N+3:FOR Z=5 TO 35 STEP 10
370 LOCATE M,Z:PRINT B$:NEXT Z,M
380 NEXT N:LOCATE N,5:PRINT A$
385 COLOR 15
390 N=1:FOR R=4 TO 16 STEP 4
400 FOR C=9 TO 29 STEP 10
410 LOCATE R,C:PRINT N:R(N)=R:C(N)=C
420 N=N+1:NEXT C:NEXT R
430 X=1
440 LOCATE 19,1:PRINT STRING$(37,32):LOCATE 20,1:PRINT STRING$(37,32)
441 LOCATE 20,1:PRINT N$(X);", WHICH BLOCKS?"
450 LOCATE 21,5:PRINT STRING$(30,32):LOCATE 22,5:PRINT STRING$(30,32):GOTO 460
460 IF N$(X)="NONE" THEN 940
470 LOCATE 21,5:PRINT STRING$(30,32):LOCATE 21,5:PRINT "BLOCK A: ";
480 Z$=INKEY$:IF Z$=CHR$(13) AND LEN(Z$)<>0 THEN I=VAL(AN$):AN$="":IF I>12 OR I<1 THEN 470 ELSE GOTO 510
490 IF Z$<"0" OR Z$>"9" THEN 480
500 PRINT Z$;:AN$=AN$+Z$:GOTO 480
510 IF I>0 AND R%(I)=0 THEN 590 ELSE 470
520 LOCATE 22,5:PRINT STRING$(30,32):LOCATE 22,5:PRINT "BLOCK B: ";
530 Z$=INKEY$:IF Z$=CHR$(13) AND LEN(Z$)<>0 THEN J=VAL(AN$):AN$="":IF J>12 OR J<1 THEN 520 ELSE GOTO 560
540 IF Z$<"0" OR Z$>"9" THEN 530
550 PRINT Z$;:AN$=AN$+Z$:GOTO 530
560 IF J>0 AND R%(J)=0 THEN 570 ELSE 520
570 IF I=J THEN 520
580 GOTO 610
590 LOCATE R(I),C(I)-3:PRINT STRING$(9,32):LOCATE R(I),C(I)-3:PRINT W$(I)
600 ON (N$(X)="NONE")+2 GOTO 950,520
610 LOCATE R(J),C(J)-3:PRINT STRING$(9,32):LOCATE R(J),C(J)-3:PRINT W$(J)
620 IF W$(I)=W$(J) THEN R%(I)=1:R%(J)=1:GOTO 710
630 LOCATE 19,1:PRINT STRING$(30,32):LOCATE 19,15:COLOR 4:PRINT "NO MATCH":COLOR 15:FOR P=1 TO 200:NEXT P
635 IF N$(1)="NONE" AND X=1 THEN FOR TT=1 TO 1250:NEXT TT
636 IF N$(2)="NONE" AND X=2 THEN FOR TT=1 TO 1250:NEXT TT
640 REM --------NO MATCH--------------------
650 REM SOUND FOR WRONG ANSWER:FOR S=40 TO 100 STEP 5:SOUND S,.4:NEXT S
660 FOR ER=C(I)-3 TO C(I)+5:LOCATE R(I),ER:PRINT CHR$(32):NEXT ER:FOR ER=C(J)-3 TO C(J)+5:LOCATE R(J),ER:PRINT CHR$(32):NEXT ER
670 LOCATE R(I),C(I):PRINT I:LOCATE R(J),C(J):PRINT J
680 IF X=1 THEN X=2:GOTO 440
690 X=1:GOTO 440
700 REM --------RIGHT ANSWER----------------
710 LOCATE 19,1:PRINT STRING$(30,32):LOCATE 19,15:COLOR 20:PRINT "MATCH!!!":COLOR 15:FOR P=1 TO 200:NEXT P
720 REM --------MATCH!!---------------------
725 IF N$(1)="NONE" AND X=1 THEN FOR TT=1 TO 1250:NEXT TT
726 IF N$(2)="NONE" AND X=2 THEN FOR TT=1 TO 1250:NEXT TT
730 REM SOUND FOR RIGHT ANSWER:FOR S=440 TO 1000 STEP 10:SOUND S,.3:NEXT S
740 IF X=1 THEN S1=S1+1:COLOR 1:CH=219:GOTO 760
750 IF X=2 THEN S2=S2+1:COLOR 4:CH=219
760 FOR R=R(I)-1 TO R(I)+1
770 FOR C=C(I)-3 TO C(I)+5:LOCATE R,C:PRINT CHR$(CH):NEXT C,R
780 FOR R=R(J)-1 TO R(J)+1
790 FOR C=C(J)-3 TO C(J)+5:LOCATE R,C:PRINT CHR$(CH):NEXT C,R
800 CR=CR+1:IF CR=6 THEN 820
810 COLOR 15:GOTO 440
820 REM SOUND FOR END OF GAME:FOR S=50 TO 110 STEP 10:SOUND S,.3:NEXT S
830 LOCATE 20,1:PRINT STRING$(37,32):COLOR 17:LOCATE 20,12:PRINT "THE GAME IS OVER.":COLOR 15
835 IF N$(2)="NONE" THEN N$(2)="COMPUTER"
836 IF N$(1)="NONE" THEN N$(1)="PCjr"
837 LOCATE 21,1:PRINT STRING$(37,32)
840 IF S1>S2 THEN LOCATE 21,12:PRINT N$(1);" WINS!"
850 IF S2>S1 THEN LOCATE 21,12:PRINT N$(2);" WINS!"
860 IF S1=S2 THEN LOCATE 21,12:PRINT "IT'S A TIE..."
870 LOCATE 22,1:PRINT "PLAY AGAIN? (Y for YES or N for NO)"
880 Z$=INKEY$:IF Z$="" THEN 880
881 IF Z$<>"Y" AND Z$<>"y" AND Z$<>"N" AND Z$<>"n" THEN 880
890 IF Z$="Y" OR Z$="y" THEN CR=0:S1=0:S2=0:GOTO 150
895 RUN "MENU.BAS"
900 END
920 FOR S=200 TO 300 STEP 10:SOUND S,0.5:NEXT S:RETURN
930 REM -------COMPUTER PLAYS----------------------
940 I=INT(12*RND(1))+1:IF R%(I)=1 THEN 940 ELSE GOTO 590
950 J=INT(12*RND(1))+1:IF J=I THEN 950
960 IF R%(J)=1 THEN 950
980 GOTO 610
990 Z$=INKEY$:J=J+1:RD=RND(J):IF J>32767 THEN J=1
995 IF Z$="" THEN 990 ELSE RETURN
997 CLS:PRINT "SOMETHING HAPPENED THAT DOESN'T":PRINT "MAKE SENSE.":PRINT:PRINT "PRESS THE <SPACE BAR> TO START AGAIN."
998 GO$=INKEY$:IF GO$<>" " THEN 998
999 GOTO 219
1 REM -----TWELVE-------WORD MATCH-------------------------
2 REM -------------------USING SC SIGHT WORD LIST-----------
3 REM -------------------FROM COMPUTE!'S PC&PCjr MAGAZINE---
4 REM -------ADAPTED BY GARY WEST, ALLENDALE SC 29810-------
5 REM -------------------10/15/84---------------------------
6 REM -------------------FOR IBM PCjr WITH 128K RAM---------
7 REM ------------------------------------------------------
100 DEF SEG=0:POKE 1047,64
110 KEY OFF:WIDTH 40:SCREEN 0,1:COLOR 7,1,1:CLS:LOCATE 12,14,0:PRINT " WORD MATCH ":COLOR 15
120 FOR P=1 TO 500:NEXT P:LOCATE 20,8:PRINT "PRESS ANY KEY TO START."
130 GOSUB 990
140 DIM W$(12),R%(12),C%(975),R(12),C(12)
142 DIM WORD$(975)
145 RANDOMIZE TIMER
150 CLS:LOCATE 2,4:PRINT "TYPE EACH PLAYER'S NAME":LOCATE 3,4:PRINT "AND PRESS THE <ENTER> KEY."
160 LOCATE 20,1:PRINT "TO PLAY AGAINST THE COMPUTER,":LOCATE 21,1:PRINT "TYPE ";CHR$(34);"NONE";CHR$(34);" AS PLAYER TWO."
180 FOR N=7 TO 10 STEP 3:P=ABS(8-N):LOCATE N,1:PRINT "PLAYER ";P;:INPUT " ",N$(P):NEXT N:CLS
190 IF N$(1)="" OR N$(2)="" THEN 150
219 CLS:PRINT "WHICH LIST DO YOU WANT TO WORK WITH:":PRINT
220 PRINT TAB(5);"1) LIST A":PRINT TAB(5);"2) LIST B":PRINT TAB(5);"3) LIST C":PRINT TAB(5);"4) LIST D":PRINT TAB(5);"5) LIST E":PRINT TAB(5);"6) QUIT":PRINT:PRINT "PRESS THE NUMBER OF YOUR CHOICE."
221 UC$=INKEY$:IF UC$="" THEN 221
222 IF VAL(UC$)<1 OR VAL(UC$)>6 THEN 221
223 ON ERROR GOTO 997
225 PRINT:COLOR 7:PRINT "MAKING WORD LIST READY. PLEASE WAIT.":COLOR 15
226 IF UC$="6" THEN 895
227 IF UC$="1" THEN LST=350:OPEN "GRADE-1.LST" FOR INPUT AS #1:GOTO 235
228 IF UC$="2" THEN LST=450:OPEN "GRADE-2.LST" FOR INPUT AS #1:GOTO 235
229 IF UC$="3" THEN LST=710:OPEN "GRADE-3.LST" FOR INPUT AS #1:GOTO 235
230 IF UC$="4" THEN LST=800:OPEN "GRADE-4.LST" FOR INPUT AS #1:GOTO 235
231 IF UC$="5" THEN LST=975:OPEN "GRADE-5.LST" FOR INPUT AS #1:GOTO 235
235 LOCATE 22,6:PRINT "OF ";LST;" WORDS IN THIS LIST."
236 FOR T=1 TO LST:LOCATE 22,1:PRINT T:INPUT#1,WORD$(T):NEXT T:CLOSE#1
237 CLS:PRINT "SELECTING THE WORDS. PLEASE WAIT.":PRINT:PRINT:PRINT "THESE WORDS WILL BE USED IN THIS GAME:"
239 FOR N=1 TO 12
240 R%(N)=0:RD=RND(N):NEXT N
260 FOR N=1 TO 6
270 W=INT(LST*RND(1))+1:T$=WORD$(W):Y=INT(12*RND(1))+1:Z=INT(12*RND(1))+1
275 IF LEN(T$)>9 THEN 270
280 IF R%(Z)=1 OR R%(Y)=1 OR C%(W)=1 OR Z=Y THEN 270
290 IF T$="" THEN 270
300 R%(Z)=1:R%(Y)=1:C%(W)=1
310 W$(Y)=T$:W$(Z)=T$
315 COLOR 7:PRINT:PRINT T$:COLOR 15
320 NEXT N
330 FOR N=1 TO 12:R%(N)=0:NEXT N:FOR N=1 TO LST:C%(N)=0:RD=RND(N):NEXT N
340 A$=STRING$(31,219):B$=CHR$(219):CLS:LOCATE 1,16:COLOR 7:PRINT "WORD MATCH":COLOR 14:FOR N=2 TO 14 STEP 4
350 LOCATE N,5:PRINT A$
360 FOR M=N+1 TO N+3:FOR Z=5 TO 35 STEP 10
370 LOCATE M,Z:PRINT B$:NEXT Z,M
380 NEXT N:LOCATE N,5:PRINT A$
385 COLOR 15
390 N=1:FOR R=4 TO 16 STEP 4
400 FOR C=9 TO 29 STEP 10
410 LOCATE R,C:PRINT N:R(N)=R:C(N)=C
420 N=N+1:NEXT C:NEXT R
430 X=1
440 LOCATE 19,1:PRINT STRING$(37,32):LOCATE 20,1:PRINT STRING$(37,32)
441 LOCATE 20,1:PRINT N$(X);", WHICH BLOCKS?"
450 LOCATE 21,5:PRINT STRING$(30,32):LOCATE 22,5:PRINT STRING$(30,32):GOTO 460
460 IF N$(X)="NONE" THEN 940
470 LOCATE 21,5:PRINT STRING$(30,32):LOCATE 21,5:PRINT "BLOCK A: ";
480 Z$=INKEY$:IF Z$=CHR$(13) AND LEN(Z$)<>0 THEN I=VAL(AN$):AN$="":IF I>12 OR I<1 THEN 470 ELSE GOTO 510
490 IF Z$<"0" OR Z$>"9" THEN 480
500 PRINT Z$;:AN$=AN$+Z$:GOTO 480
510 IF I>0 AND R%(I)=0 THEN 590 ELSE 470
520 LOCATE 22,5:PRINT STRING$(30,32):LOCATE 22,5:PRINT "BLOCK B: ";
530 Z$=INKEY$:IF Z$=CHR$(13) AND LEN(Z$)<>0 THEN J=VAL(AN$):AN$="":IF J>12 OR J<1 THEN 520 ELSE GOTO 560
540 IF Z$<"0" OR Z$>"9" THEN 530
550 PRINT Z$;:AN$=AN$+Z$:GOTO 530
560 IF J>0 AND R%(J)=0 THEN 570 ELSE 520
570 IF I=J THEN 520
580 GOTO 610
590 LOCATE R(I),C(I)-3:PRINT STRING$(9,32):LOCATE R(I),C(I)-3:PRINT W$(I)
600 ON (N$(X)="NONE")+2 GOTO 950,520
610 LOCATE R(J),C(J)-3:PRINT STRING$(9,32):LOCATE R(J),C(J)-3:PRINT W$(J)
620 IF W$(I)=W$(J) THEN R%(I)=1:R%(J)=1:GOTO 710
630 LOCATE 19,1:PRINT STRING$(30,32):LOCATE 19,15:COLOR 7:PRINT "NO MATCH":COLOR 15:FOR P=1 TO 200:NEXT P
635 IF N$(1)="NONE" AND X=1 THEN FOR TT=1 TO 1250:NEXT TT
636 IF N$(2)="NONE" AND X=2 THEN FOR TT=1 TO 1250:NEXT TT
640 REM --------NO MATCH--------------------
650 REM SOUND FOR WRONG ANSWER:FOR S=40 TO 100 STEP 5:SOUND S,.4:NEXT S
660 FOR ER=C(I)-3 TO C(I)+5:LOCATE R(I),ER:PRINT CHR$(32):NEXT ER:FOR ER=C(J)-3 TO C(J)+5:LOCATE R(J),ER:PRINT CHR$(32):NEXT ER
670 LOCATE R(I),C(I):PRINT I:LOCATE R(J),C(J):PRINT J
680 IF X=1 THEN X=2:GOTO 440
690 X=1:GOTO 440
700 REM --------RIGHT ANSWER----------------
710 LOCATE 19,1:PRINT STRING$(30,32):LOCATE 19,15:COLOR 23:PRINT "MATCH!!!":COLOR 15:FOR P=1 TO 200:NEXT P
720 REM --------MATCH!!---------------------
725 IF N$(1)="NONE" AND X=1 THEN FOR TT=1 TO 1250:NEXT TT
726 IF N$(2)="NONE" AND X=2 THEN FOR TT=1 TO 1250:NEXT TT
730 REM SOUND FOR RIGHT ANSWER:FOR S=440 TO 1000 STEP 10:SOUND S,.3:NEXT S
740 IF X=1 THEN S1=S1+1:COLOR 2:CH=219:GOTO 760
750 IF X=2 THEN S2=S2+1:COLOR 4:CH=219
760 FOR R=R(I)-1 TO R(I)+1
770 FOR C=C(I)-3 TO C(I)+5:LOCATE R,C:PRINT CHR$(CH):NEXT C,R
780 FOR R=R(J)-1 TO R(J)+1
790 FOR C=C(J)-3 TO C(J)+5:LOCATE R,C:PRINT CHR$(CH):NEXT C,R
800 CR=CR+1:IF CR=6 THEN 820
810 COLOR 15:GOTO 440
820 REM SOUND FOR END OF GAME:FOR S=50 TO 110 STEP 10:SOUND S,.3:NEXT S
830 LOCATE 20,1:PRINT STRING$(37,32):COLOR 7:LOCATE 20,12:PRINT "THE GAME IS OVER.":COLOR 15
835 IF N$(2)="NONE" THEN N$(2)="COMPUTER"
836 IF N$(1)="NONE" THEN N$(1)="PCjr"
837 LOCATE 21,1:PRINT STRING$(37,32)
840 IF S1>S2 THEN LOCATE 21,12:PRINT N$(1);" WINS!"
850 IF S2>S1 THEN LOCATE 21,12:PRINT N$(2);" WINS!"
860 IF S1=S2 THEN LOCATE 21,12:PRINT "IT'S A TIE..."
870 LOCATE 22,1:PRINT "PLAY AGAIN? (Y for YES or N for NO)"
880 Z$=INKEY$:IF Z$="" THEN 880
881 IF Z$<>"Y" AND Z$<>"y" AND Z$<>"N" AND Z$<>"n" THEN 880
890 IF Z$="Y" OR Z$="y" THEN CR=0:S1=0:S2=0:GOTO 150
895 RUN "MENU.BAS"
900 END
920 FOR S=200 TO 300 STEP 10:SOUND S,0.5:NEXT S:RETURN
930 REM -------COMPUTER PLAYS----------------------
940 I=INT(12*RND(1))+1:IF R%(I)=1 THEN 940 ELSE GOTO 590
950 J=INT(12*RND(1))+1:IF J=I THEN 950
960 IF R%(J)=1 THEN 950
980 GOTO 610
990 Z$=INKEY$:J=J+1:RD=RND(J):IF J>32767 THEN J=1
995 IF Z$="" THEN 990 ELSE RETURN
997 CLS:PRINT "SOMETHING HAPPENED THAT DOESN'T":PRINT "MAKE SENSE.":PRINT:PRINT "PRESS THE <SPACE BAR> TO START AGAIN."
998 GO$=INKEY$:IF GO$<>" " THEN 998
999 GOTO 219
1 REM --THIRTEEN-----------------HANGMAN-----------------------------
2 REM
3 REM --MODIFIED 10/20/84 BY G.WEST, ALLENDALE SC 29810--------------
4 REM --FOR IBM PCjr WITH 128K RAM-----------------------------------
5 REM
6 REM ---USES THE SC SIGHT WORD LISTS FOR GRADES 1 - 5--------------
7 REM
9 DEF SEG=&H40:X=PEEK(&H17):X=X OR &H40:POKE &H17,X: 'Upper Case Letters
10 KEY OFF:CLS:WIDTH 80
11 COLOR 15,1,1:CLS
24 CLS:LOCATE 4,15,0:PRINT "HANGMAN"
25 LOCATE 6,5:PRINT"Original by CREATIVE COMPUTING"
26 LOCATE 8,1:PRINT"Modified for the IBM PC by Chris Jordan":PRINT "Modified for the IBM PCjr by Gary West":PRINT:PRINT:PRINT
27 RANDOMIZE TIMER
28 NUMWORDS%=5
30 DIM P$(13,12),L$(20),D$(20),N$(26),U(NUMWORDS%)
35 DIM WORD1$(5)
40 C=1:N=NUMWORDS%
42 LOCATE 23,7:COLOR 23,1:PRINT"Press SPACE BAR to continue.":COLOR 15,1:FOR X=1 TO 15:EMPTY$=INKEY$:NEXT X
43 CMD$=INKEY$:IF CMD$<>" " THEN 43
44 GOSUB 10000
45 LOCATE 23,7:COLOR 15,1:PRINT SPACE$(30);
50 FOR I=1 TO 20:D$(I)="-":NEXT I:M=0
60 FOR I=1 TO 26:N$(I)="":NEXT I
70 FOR I=1 TO 12:FOR J=1 TO 12:P$(I,J)=" ":NEXT J:NEXT I
80 FOR I=1 TO 13:P$(I,1)=CHR$(219):NEXT I
90 FOR I=1 TO 7:P$(1,I)=CHR$(220):NEXT:P$(2,7)=CHR$(179)
95 IF C<N THEN 100
97 PRINT "YOU DID ALL THE WORDS !!!":GOTO 990
100 REM ----START
115 C=C+1:T1=0
120 CN2=CN2+1:A$=WORD1$(CN2)
130 IF CN2>5 THEN 380
160 L=LEN(A$):FOR I=1 TO LEN(A$):L$(I)=MID$(A$,I,1):NEXT I
165 CLS
170 LOCATE 2,1:PRINT "=======================================":LOCATE 3,1:PRINT "THESE ARE THE LETTERS YOU'VE USED:":LOCATE 5,1:PRINT "========================================"
175 FOR X=1 TO 23:LOCATE X,40:PRINT "|":NEXT X
176 FOR X=6 TO 23:LOCATE X,1:PRINT STRING$(38,32):NEXT X
180 LOCATE 4,1:FOR I=1 TO 26:PRINT N$(I);:IF N$(I+1)=""THEN 200
190 PRINT ",";:NEXT I
200 LOCATE 9,1:FOR I=1 TO L:PRINT D$(I);:NEXT I:PRINT :PRINT
210 PRINT "WHAT IS YOUR GUESS: ";:PRINT CHR$(29);
211 FOR X=1 TO 15:EMPTY$=INKEY$:NEXT X
212 G$=INKEY$:IF G$="" THEN 212
213 IF G$<"A" OR G$>"Z" THEN PRINT:GOTO 210
214 PRINT G$
215 R=0
220 FOR I=1 TO 26:IF N$(I)=""THEN 250
230 IF G$=N$(I)THEN COLOR 31,1:PRINT :PRINT "YOU GUESSED THAT LETTER BEFORE !!":COLOR 15,1:FOR RR=1 TO 3000:NEXT RR:GOTO 170
240 NEXT I:PRINT "Program error. Run again.":STOP
250 N$(I)=G$:T1=T1+1
260 FOR I=1 TO L:IF L$(I)=G$ THEN 280
270 NEXT I:IF R=0 THEN 290
275 GOTO 300
280 D$(I)=G$:R=R+1:GOTO 270
290 M=M+1:GOTO 400
300 FOR I=1 TO L:IF D$(I)="-" THEN 320
310 NEXT I:GOTO 390
320 PRINT :FOR I=1 TO L:PRINT D$(I);:NEXT I:PRINT :PRINT
325 FOR X=1 TO 15:EMPTY$=INKEY$:NEXT X
330 PRINT "WHAT IS YOUR GUESS FOR THE WORD:":INPUT " ",B$
335 FOR X=1 TO 15:EMPTY$=INKEY$:NEXT X
340 IF A$=B$ THEN 360
350 PRINT "WRONG. TRY ANOTHER LETTER.":PRINT :GOTO 170
360 PRINT :PRINT "RIGHT !!! IT TOOK YOU";T1;"GUESSES !!!"
370 PRINT :PRINT :PRINT "DO YOU WANT ANOTHER WORD?":PRINT "Y for YES or N for NO";
371 FOR X=1 TO 15:EMPTY$=INKEY$:NEXT X
372 W$=INKEY$:IF W$<>"Y" AND W$<>"y" AND W$<>"N" AND W$<>"n" THEN 372
373 IF W$="Y" OR W$="y" THEN 50
380 CLS:LOCATE 10,1 :PRINT "IT'S BEEN FUN ! BYE FOR NOW.":GOTO 990
390 PRINT :PRINT "YOU FOUND THE WORD !!":GOTO 370
400 LOCATE 1,41:PRINT "SORRY, THAT LETTER ISN'T IN THE WORD.":PRINT
403 LOCATE 3,41:PRINT STRING$(35,32)
405 FOR DELAY=1 TO 800:NEXT DELAY
410 ON M GOTO 415,420,425,430,435,440,445,450,455,460
415 LOCATE 3,41:PRINT "FIRST, WE DRAW A HEAD":GOTO 470
420 LOCATE 3,41:PRINT "NOW WE DRAW A BODY.":GOTO 470
425 LOCATE 3,41:PRINT "NEXT WE DRAW AN ARM.":GOTO 470
430 LOCATE 3,41:PRINT "THIS TIME IT'S THE OTHER ARM.":GOTO 470
435 LOCATE 3,41:PRINT "NOW, LET'S DRAW THE RIGHT LEG.":GOTO 470
440 LOCATE 3,41:PRINT "THIS TIME WE DRAW THE LEFT LEG.":GOTO 470
445 LOCATE 3,41:PRINT "NOW WE PUT UP A HAND.":GOTO 470
450 LOCATE 3,41:PRINT "NEXT THE OTHER HAND.":GOTO 470
455 LOCATE 3,41:PRINT "NOW WE DRAW ONE FOOT":GOTO 470
460 LOCATE 3,41:PRINT "HERE'S THE OTHER FOOT -- YOU'RE HUNG !!!"
470 ON M GOTO 480,490,500,510,520,530,540,550,560,570
480 P$(3,6)=",":P$(3,7)=",":P$(3,8)=",":P$(4,5)="(":P$(4,6)="."
481 P$(4,8)=".":P$(4,9)=")":P$(5,6)=" ":P$(5,7)="-":P$(5,8)=" ":GOTO 580
490 FOR I=6 TO 9:P$(I,7)=":":NEXT I:GOTO 580
500 FOR I=4 TO 7:P$(I,I-1)="\":NEXT I:GOTO 580
510 P$(4,11)="/":P$(5,10)="/":P$(6,9)="/":P$(7,8)="/":GOTO 580
520 P$(10,6)="/":P$(11,5)="/":GOTO 580
530 P$(10,8)="\":P$(11,9)="\":GOTO 580
540 P$(3,11)="\":GOTO 580
550 P$(3,3)="/":GOTO 580
560 P$(12,10)="\":P$(12,11)="-":GOTO 580
570 P$(12,3)="-":P$(12,4)="/"
575 LOCATE 4,41:PRINT " "
580 FOR I=1 TO 13:LOCATE I+5,54:FOR J=1 TO 12:PRINT P$(I,J);:NEXT J
590 PRINT :NEXT I
591 FOR X=1 TO 15:EMPTY$=INKEY$:NEXT X
592 LOCATE 23,48:COLOR 31,1:PRINT"Press the <SPACE BAR> to go on.":COLOR 15,1
594 GO$=INKEY$:IF GO$="" THEN 594
595 IF GO$<>" " THEN 594
597 LOCATE 23,48:PRINT STRING$(31,32);
598 FOR XX=1 TO 3:LOCATE XX,41:PRINT STRING$(37,32):NEXT XX
599 IF M<>10 THEN 170
600 CLS:LOCATE 10,1:PRINT "SORRY, YOU LOSE !! THE WORD WAS ";A$:GOTO 370
990 PRINT:PRINT:PRINT "WHAT WOULD YOU LIKE TO DO NOW:":PRINT:PRINT TAB(5);"1) PLAY AGAIN":PRINT TAB(5);"2) STOP":PRINT:PRINT "PRESS THE NUMBER FOR YOUR CHOICE.":PRINT:FOR X=1 TO 15:EMPTY$=INKEY$:NEXT X
991 GO$=INKEY$:IF GO$="" THEN 991
992 IF GO$<>"1" AND GO$<>"2" THEN 991
993 IF GO$="1" THEN RUN
994 IF GO$="2" THEN RUN "MENU.BAS"
999 END
10000 CLS:DIM WORD$(975)
10001 PRINT "Which word list do you":PRINT "want to use:":PRINT
10002 PRINT TAB(5);"1) List A":PRINT TAB(5);"2) List B":PRINT TAB(5);"3) List C":PRINT TAB(5);"4) List D":PRINT TAB(5);"5) List E":PRINT TAB(5);"6) End Work"
10003 PRINT:PRINT "Press the number for":PRINT "the list you want."
10004 FOR X=1 TO 15:EMPTY$=INKEY$:NEXT X
10005 A$=INKEY$: IF A$="" THEN 10005
10006 IF VAL(A$)<1 OR VAL(A$)>6 THEN 10004
10008 IF A$="6" THEN RUN "MENU.BAS"
10009 ON ERROR GOTO 10015
10010 PRINT:COLOR 14:PRINT "MAKING THE WORD LIST READY.":PRINT "PLEASE WAIT.":COLOR 15
10011 IF A$="1" THEN LST=350:OPEN "GRADE-1.LST" FOR INPUT AS #1:GOTO 10016
10012 IF A$="2" THEN LST=450:OPEN "GRADE-2.LST" FOR INPUT AS #1:GOTO 10016
10013 IF A$="3" THEN LST=710:OPEN "GRADE-3.LST" FOR INPUT AS #1:GOTO 10016
10014 IF A$="4" THEN LST=800:OPEN "GRADE-4.LST" FOR INPUT AS #1:GOTO 10016
10015 IF A$="5" THEN LST=975:OPEN "GRADE-5.LST" FOR INPUT AS #1:GOTO 10016
10016 LOCATE 21,6:PRINT "READING AS FAST AS I CAN.":LOCATE 22,6:PRINT "OF ";LST;" WORDS IN THIS LIST.":FOR T=1 TO LST:LOCATE 22,1:PRINT T:INPUT#1,WORD$(T):NEXT T:CLOSE#1:FOR I=1 TO N:CNT=INT(LST*RND(1))+1:WORD1$(I)=WORD$(CNT):NEXT I:CLOSE#1:RETURN
1 REM --FOURTEEN----------------WORD SCRAMBLE---------------------------
2 REM -----------ADAPTED FROM PROGRAM BY FREDERICK HOLTZ----------------
3 REM -------------------------10/21/84---------------------------------
4 REM -----------GARY WEST, ALLENDALE SC 29810--------------------------
5 REM ------------------------------------------------------------------
30 SCREEN 0,1:WIDTH 80:COLOR 15,1,1:KEY OFF:CLS
50 DIM A$(5,25):DIM WORD1$(5):DIM MIXED$(5):DIM ANS$(5)
51 RANDOMIZE TIMER
52 DEF SEG=0:POKE 1047,64
60 PRINT TAB(15);"WORD SCRAMBLE":PRINT:PRINT
61 PRINT "This program will select certain words from its built-in":PRINT "lists and will scramble the letters.":PRINT:PRINT "You should try to type in the correct word."
62 PRINT:PRINT:COLOR 7:PRINT TAB(8);"Press the <SPACE BAR> to start.":COLOR 15
65 GO$=INKEY$:IF GO$<>" " THEN 65
70 CLS:PRINT "Type your name and press the <ENTER> key:":PRINT:INPUT " ",N$
75 PRINT "--------------------------------------------------":PRINT:PRINT "Did you type your name correctly?":PRINT "Press Y for YES or N for NO."
76 GO$=INKEY$:IF GO$<>"Y" AND GO$<>"y" AND GO$<>"N" AND GO$<>"n" THEN 76
80 IF GO$="N" OR GO$="n" THEN 70
110 GOSUB 10000
120 FOR X=1 TO 5:K=INT(LST*RND(1))+1:WORD1$(X)=WORD$(K):NEXT X
130 FOR X=1 TO 5
135 FOR Y=1 TO LEN(WORD1$(X))
140 A$(X,Y)=MID$(WORD1$(X),Y,1)
145 NEXT Y:NEXT X
150 FOR Y=1 TO 5
160 CLS
165 PRINT N$;", type the word that is scrambled below.":PRINT "Be sure to press the <ENTER> key after you've typed it."
166 LOCATE 12,14:PRINT CHR$(201);:FOR P=1 TO 22:PRINT CHR$(205);:NEXT P:PRINT CHR$(187):LOCATE 13,14:PRINT CHR$(186):LOCATE 13,37:PRINT CHR$(186):LOCATE 14,14:PRINT CHR$(186):LOCATE 14,37:PRINT CHR$(186):LOCATE 15,14:PRINT CHR$(186)
167 LOCATE 15,37:PRINT CHR$(186):LOCATE 16,14:PRINT CHR$(200);:FOR P=1 TO 22:PRINT CHR$(205);:NEXT P:PRINT CHR$(188)
170 FOR X=1 TO LEN(WORD1$(Y))
180 Z=INT(LEN(WORD1$(Y))*RND(1))+1
190 IF A$(Y,Z)="0" THEN 180
200 LOCATE 14,16+X
210 PRINT A$(Y,Z)
215 MIXED$(Y)=MIXED$(Y)+A$(Y,Z)
220 A$(Y,Z)="0"
230 NEXT X
240 LOCATE 20,1:PRINT "TYPE THE WORD THAT IS SCRAMBLED ABOVE: ";:INPUT " ",ANS$(Y)
260 IF ANS$(Y)=WORD1$(Y) THEN 330
270 C=C+1
280 CLS
290 LOCATE 11,15:PRINT MIXED$(Y)
300 LOCATE 14,15:PRINT N$;", THE CORRECT ANSWER IS: ";WORD1$(Y)
310 WORD1$(Y)="* "+WORD1$(Y)
320 GOTO 370
330 CLS:LOCATE 14,15:PRINT "THAT'S RIGHT!"
370 LOCATE 20,1:PRINT "Press <SPACE BAR> for the next word."
371 RT$=INKEY$:IF RT$<>" " THEN 371
390 CLS:NEXT Y
410 CLS
420 PRINT "THE GAME IS OVER.":PRINT:PRINT N$;", YOU DID THE FOLLOWING WORDS:"
421 PRINT
422 PRINT "MIXED WORD";TAB(20);"RIGHT WORD";TAB(40);"YOUR WORD":PRINT
424 FOR X=1 TO 5:PRINT TAB(5);MIXED$(X);TAB(25);WORD1$(X);TAB(45);ANS$(X):NEXT
425 PRINT:PRINT "THE WORDS MARKED WITH STARS (*) WERE NOT CORRECT."
430 COLOR 7:LOCATE 20,1:PRINT "Press the <SPACE BAR> to go on."
440 GO$=INKEY$:IF GO$<>" " THEN 440
450 CLS:PRINT "What would you like to do now?":PRINT:PRINT TAB(5);"1) UNSCRAMBLE MORE WORDS":PRINT TAB(5);"2) STOP ":PRINT:PRINT "Press the number for your choice."
460 GO$=INKEY$:IF GO$<>"1" AND GO$<>"2" THEN 460
470 IF GO$="1" THEN RUN
480 IF GO$="2" THEN RUN "menu.bas"
9999 END
10000 CLS:DIM WORD$(975)
10001 PRINT "Which word list do you":PRINT "want to use:":PRINT
10002 PRINT TAB(5);"1) List A":PRINT TAB(5);"2) List B":PRINT TAB(5);"3) List C":PRINT TAB(5);"4) List D":PRINT TAB(5);"5) List E":PRINT TAB(5);"6) End Work"
10003 PRINT:PRINT "Press the number for":PRINT "the list you want."
10004 FOR X=1 TO 15:EMPTY$=INKEY$:NEXT X
10005 A$=INKEY$: IF A$="" THEN 10005
10006 IF VAL(A$)<1 OR VAL(A$)>6 THEN 10004
10008 IF A$="6" THEN RUN "MENU.BAS"
10009 ON ERROR GOTO 10015
10010 PRINT:COLOR 14:PRINT "MAKING THE WORD LIST READY.":PRINT "PLEASE WAIT.":COLOR 15
10011 IF A$="1" THEN LST=350:OPEN "grade-1.lst" FOR INPUT AS #1:GOTO 10016
10012 IF A$="2" THEN LST=450:OPEN "grade-2.lst" FOR INPUT AS #1:GOTO 10016
10013 IF A$="3" THEN LST=710:OPEN "grade-3.lst" FOR INPUT AS #1:GOTO 10016
10014 IF A$="4" THEN LST=800:OPEN "grade-4.lst" FOR INPUT AS #1:GOTO 10016
10015 IF A$="5" THEN LST=975:OPEN "grade-5.lst" FOR INPUT AS #1:GOTO 10016
10016 LOCATE 21,6:PRINT "READING AS FAST AS I CAN.":LOCATE 22,6:PRINT "OF ";LST;" WORDS IN THIS LIST.":FOR T=1 TO LST:LOCATE 22,1:PRINT T:INPUT#1,WORD$(T):NEXT T:CLOSE#1:RETURN:END
1 REM --FIFTEEN---------------WORD SCRAMBLE------------------------
2 REM ----------------------FOR TWO STUDENTS-----------------------
3 REM -----------FROM COMPUTE!'S PC&PCjr MAGAZINE------------------
4 REM -----------BY MIKE SALMAN AND JEFF HAMDANI-------------------
5 REM -------------------------------------------------------------
6 REM -------------------ADAPTED 10/22/84--------------------------
7 REM -----------GARY WEST, ALLENDALE SC 29810---------------------
8 REM -------------------------------------------------------------
9 RANDOMIZE TIMER
10 KEY OFF:WIDTH 80:SCREEN 0,1
15 DEF SEG=0:POKE 1047,PEEK(1047) OR 64
20 COLOR 15,1,1:CLS
30 LOCATE 12,12:PRINT "WORD SCRAMBLE":COLOR 15
35 FOR X=1 TO 750:NEXT X
40 COLOR 7:CLS
50 LOCATE 2,1:PRINT "EACH PLAYER TAKES A TURN ENTERING A":PRINT "COMMON WORD (WITH A MAXIMUM OF TEN LETTERS)."
60 LOCATE 6,1:PRINT "THE COMPUTER WILL THEN SCRAMBLE THE":PRINT "WORD AND WILL PRINT IT. YOU HAVE ONE":PRINT "MINUTE TO FIND IT."
70 LOCATE 11,1:PRINT "IF FOUND WITHIN THE GIVEN TIME, YOU":PRINT "WILL BE GIVEN 50 POINTS."
80 LOCATE 15,1:PRINT "FOR EVERY WRONG LETTER YOU GUESS,":PRINT "YOU WILL LOSE 10 POINTS.":LOCATE 23,7:COLOR 15:PRINT "Press the <SPACE BAR> when ready."
85 FOR X=1 TO 15:EMPTY$=INKEY$:NEXT X
90 Z$=INKEY$:IF Z$="" THEN 90
100 IF ASC(Z$)<>32 THEN 90
110 CLS:PRINT "EACH PLAYER SHOULD TYPE HIS OR HER NAME":PRINT "AND SHOULD PRESS <ENTER> AFTER EACH:"
111 COLOR 7:LOCATE 9,1:PRINT "NAME OF PLAYER #1:";:COLOR 15:INPUT " ",P$(0)
112 COLOR 7:LOCATE 12,1:PRINT "NAME OF PLAYER #2:";:COLOR 15:INPUT " ",P$(1)
113 FOR X=1 TO 250:NEXT X:CLS
120 LOCATE 12,2:COLOR 15:PRINT P$(C);:COLOR 7:PRINT ", TYPE A WORD TO BE SCRAMBLED":PRINT "AND PRESS THE <ENTER> KEY.":PRINT:COLOR 14:PRINT "(BE SURE THE OTHER PERSON ISN'T WATCHING.)":PRINT:COLOR 15
121 LOCATE 16,2:INPUT " ",W$:IF W$="" THEN 121
130 IF LEN(W$)>10 THEN LOCATE 20,7:COLOR 15:PRINT "TOO LONG; YOUR WORD MUST HAVE FEWER THAN 10 LETTERS.":FOR I=1 TO 1000:NEXT I:LOCATE 20,7:PRINT STRING$(55,32):LOCATE 16,2:PRINT STRING$(20,32):COLOR 7:GOTO 121
140 GOSUB 150:GOSUB 290:T(C)=T(C)+S(C):GOSUB 420:FOR I=1 TO 10:B$(I)="":NEXT I:GOTO 120
150 FOR I=1 TO LEN(W$)
160 A$(I)=MID$(W$,I,1)
170 NEXT I
180 C$="":FOR I=1 TO LEN(W$)
190 R=INT(LEN(W$)*RND(1))+1
200 IF B$(R)<>"" THEN 190
210 B$(R)=A$(I)
220 NEXT I
230 FOR I=1 TO LEN(W$):C$=C$+B$(I):NEXT I
240 IF C$=W$ AND LEN(W$)<>1 THEN FOR I=1 TO LEN(W$):B$(I)="":NEXT I:GOTO 180
250 CLS:LOCATE 9,7:PRINT "THE WORD HAS BEEN SCRAMBLED.":LOCATE 19,7:PRINT "Press the <SPACE BAR> when ready."
260 Z$=INKEY$:IF Z$="" THEN 260
270 IF ASC(Z$)<>32 THEN 260
275 IF C=0 THEN LOCATE 13,12:PRINT P$(1) ELSE LOCATE 13,12:PRINT P$(0)
280 CLS:IF C=0 THEN LOCATE 20,12:PRINT P$(1);", PRESS THE LETTER THAT COMES NEXT." ELSE LOCATE 20,12:PRINT P$(0);", PRESS THE LETTER THAT COMES NEXT."
281 LOCATE 6,12:PRINT CHR$(201);:FOR FF=1 TO 22:PRINT CHR$(205);:NEXT FF:PRINT CHR$(187):FOR FF=7 TO 9:LOCATE FF,12:PRINT CHR$(186):LOCATE FF,35:PRINT CHR$(186):NEXT FF:LOCATE 10,12:PRINT CHR$(200);:FOR FF=1 TO 22:PRINT CHR$(205);:NEXT FF
282 LOCATE 10,35:PRINT CHR$(188):LC=INT((40-LEN(W$))/2)-1:FOR I=1 TO LEN(W$):LOCATE 8,LC+I:PRINT B$(I);:NEXT I
283 RETURN
290 X=95:S(C)=50
300 TIME$="00:00:00"
310 FOR I=1 TO LEN(W$)
315 COLOR 14
320 LOCATE 13,LC+I:PRINT CHR$(223)
330 Z$=INKEY$
335 COLOR 15
340 LOCATE 1,15:PRINT TIME$
350 IF TIME$="00:01:00" THEN GOSUB 480:I=LEN(W$):GOTO 410
360 IF Z$="" THEN 330
365 LOCATE 22,1:PRINT STRING$(60,32)
370 IF Z$=A$(I) THEN LOCATE 12,LC+I:PRINT A$(I):GOSUB 540:GOTO 400
380 IF S(C)<10 THEN GOSUB 510:I=LEN(W$):GOTO 410
390 IF Z$<>A$(I) THEN S(C)=S(C)-10:GOSUB 550:GOTO 320
400 X=X+1
410 NEXT I:LOCATE 20,12:PRINT STRING$(50,32):FOR TIM=1 TO 750:NEXT TIM:RETURN
420 CLS:IF C<>1 THEN C=1:RETURN
430 LOCATE 3,16:PRINT "SCORES":LOCATE 4,16:PRINT "******"
440 S1=INT((20-LEN(P$(0)))/2)-1:LOCATE 6,S1:PRINT P$(0)
450 S2=INT((20-LEN(P$(1)))/2)+19:LOCATE 6,S2:PRINT P$(1)
460 LOCATE 8,S1:PRINT T(1):LOCATE 8,S2:PRINT T(0)
461 PRINT:PRINT:PRINT:COLOR 14:PRINT "WHAT DO YOU WANT TO DO NOW:":PRINT:PRINT TAB(5);"1) MORE SCRAMBLED WORDS":PRINT TAB(5);"2) STOP":PRINT:PRINT "PRESS THE NUMBER FOR YOUR CHOICE.":COLOR 15
462 GO$=INKEY$:IF GO$<>"1" AND GO$<>"2" THEN 462
463 IF GO$="1" THEN FOR X=1 TO LEN(W$):B$(X)="":NEXT X:CLS:IF C=0 THEN C=1 ELSE C=0:GOTO 120
464 IF GO$="2" THEN RUN "MENU.BAS"
470 C=0:RETURN
480 CLS:LOCATE 9,11:PRINT "YOUR TIME IS UP."
490 LOCATE 12,11:PRINT "THE WORD WAS ";:COLOR 31:PRINT W$;:COLOR 15:PRINT".":S(C)=0
500 FOR J=1 TO 5000:NEXT J:RETURN
510 CLS:LOCATE 9,8:PRINT "YOU USED UP YOUR TRIES."
520 LOCATE 12,8:PRINT "THE WORD WAS ";:COLOR 31:PRINT W$;:COLOR 15:PRINT "."
530 FOR J=1 TO 2000:NEXT J:RETURN
540 RETURN
550 LOCATE 22,1:COLOR 15:PRINT "THAT IS NOT RIGHT. TRY AGAIN. (YOU'VE LOST 10 POINTS.)":COLOR 14:RETURN
560 RETURN
1 REM --SIXTEEN--------------SCREEN MACHINE--------------------------------
2 REM ---------------FOR IBM PCjr WITH 128K RAM----------------------------
3 REM ----------FROM COMPUTE!'S PC&PCjr MAGAZINE (4/84)--------------------
4 REM ----------KEYED BY GARY WEST, ALLENDALE SC 29810---------------------
5 REM ---------------USE CURSOR CONTROL KEYS-------------------------------
6 REM ---------------DOES NOT REQUIRE JOYSTICKS----------------------------
100 'The Screen Machine (PCjr)
110 SCREEN 0,1:KEY OFF:WIDTH 40
132 COLOR 15,0,0:CLS
133 LOCATE 8,15:PRINT "The"
134 LOCATE 10,14:COLOR 3:PRINT "S";:COLOR 4:PRINT "C";:COLOR 5:PRINT "R";:COLOR 11:PRINT "E";:COLOR 6:PRINT "E";:COLOR 8:PRINT "N"
135 LOCATE 12,13:COLOR 9:PRINT "M";:COLOR 4:PRINT "A";:COLOR 11:PRINT "C";:COLOR 12:PRINT "H";:COLOR 13:PRINT "I";:COLOR 14:PRINT "N";:COLOR 3:PRINT "E"
136 COLOR 15:LOCATE 18,15:PRINT "from":LOCATE 20,5:PRINT "Compute!'s PC&PCjr Magazine"
137 LOCATE 24,5:COLOR 14:PRINT "Press <SPACE BAR> to go on.":COLOR 15
138 GO$=INKEY$:IF GO$<>" " THEN 138
139 CLS
140 LOCATE 1,9:PRINT "THE SCREEN MACHINE":PRINT:PRINT:PRINT "While you are working with THE SCREEN":PRINT "MACHINE, you can press the <H> key for":PRINT "help."
141 PRINT:PRINT "If you need instructions about how to":PRINT "start, press the <S> key now.":PRINT
142 PRINT "If you know how the program works,":PRINT "simply press the <G> key to go on."
143 GO$=INKEY$:IF GO$<>"S" AND GO$<>"s" AND GO$<>"G" AND GO$<>"g" THEN 143
144 IF GO$="S" OR GO$="s" THEN GOSUB 10000
145 CLEAR,,,65536!
146 DEFINT A-Y:SCREEN 5:KEY OFF:STRIG ON:DIM SHAPE(4004)
159 C=1:CB=1:SCREEN ,,1:CLS:SCREEN ,,0:CLS
160 XMIN=3:YMIN=3:XMAX=110:YMAX=119
180 FX!=319/(XMAX-XMIN):FY!=192/(YMAX-YMIN)
190 XWIDTH=7:YWIDTH=7:YLIMIT=8:XLIMIT=320-7:YLIMIT=200-7
200 LINE (3,0)-(3,6),15:LINE (0,3)-(6,3),15:PRESET(3,3)
210 DIM CROSS(18):GET (0,0)-(6,6),CROSS
220 GOSUB 980
230 ON ERROR GOTO 0
240 GOTO 310
260 X=X+(S0<20 AND X>0)-(S0>60 AND X<XLIMIT)
270 Y=Y+(S1<20 AND Y>0)-(S1>60 AND Y<YLIMIT)
280 OS0=S0:OS1=S1:GOTO 310
290 X=FX!*(S0-XMIN):Y=FY!*(S1-YMIN):IF X>XLIMIT THEN X=XLIMIT
300 IF Y>YLIMIT THEN Y=YLIMIT
310 IF OTHER THEN PUT(OX,OY),SHAPE ELSE PUT (OX,OY),CROSS
320 IF DRAWMODE THEN IF TR THEN IF Y<185 AND OY<185 THEN GOSUB 1010:LINE (SAVX,SAVY)-(X+3,Y+3),C:SAVX=X+3:SAVY=Y+3:GOSUB 1010:TR=0:GOTO 340
330 IF TR THEN IF Y<185 AND OY<185 THEN TR=0:LINE (OX+3,OY+3)-(X+3,Y+3),C ELSE C=INT((X+3)/80):GOSUB 980
340 ON ERROR GOTO 6000
341 IF OTHER THEN PUT(X,Y),SHAPE ELSE PUT (X,Y),CROSS
350 OX=X:OY=Y:C$=INKEY$:IF C$="" THEN 240
355 IF C$="*" THEN TR=1:GOTO 310
357 IF C$=">" THEN C=(C+1) AND 15:GOSUB 980:GOTO 310
360 IF C$>="a" AND C$<="z" THEN C$=CHR$(ASC(C$)-32)
370 IF C$<>CHR$(0)+CHR$(119) THEN 400 ELSE MSG$="Erase picture--Are you sure (Y/N):":GOSUB 1030
380 IF RTN$="y" OR RTN$="Y" THEN CLS:GOSUB 980:GOSUB 1000:GOTO 240
390 GOTO 240
400 IF C$="-" THEN JOYMODE=1:GOTO 240
410 IF C$="+" THEN JOYMODE=0:GOTO 240
415 IF C$="F" THEN IF Y<188 THEN FC=C ELSE FC=INT((X+3)/20)
417 IF C$="F" THEN GOSUB 1000:GOSUB 980:GOSUB 1000:GOTO 240
420 IF C$=CHR$(9) THEN GOSUB 1000:SCR=1-SCR:SCREEN,,SCR,SCR,0:GOSUB 980:GOSUB 1000:GOTO 240
425 IF C$=CHR$(0)+CHR$(15) THEN GOSUB 1000:PCOPY SCR,1-SCR:GOSUB 1000:GOTO 240
430 IF C$=CHR$(0)+CHR$(72) AND JOYMODE=1 THEN Y=Y+(Y>0):IF Y<1 THEN Y=1:GOTO 310 ELSE GOTO 310
431 IF C$=CHR$(0)+CHR$(72) AND JOYMODE=0 THEN Y=Y+10*(Y>0):IF Y<1 THEN Y=1 :GOTO 310 ELSE GOTO 310
440 IF C$=CHR$(0)+CHR$(80) AND JOYMODE=1 THEN Y=Y-(Y<YLIMIT):IF Y>184 THEN Y=184:GOTO 310 ELSE GOTO 310
441 IF C$=CHR$(0)+CHR$(80) AND JOYMODE=0 THEN Y=Y-10*(Y<YLIMIT):IF Y>184 THEN Y=184:GOTO 310 ELSE GOTO 310
450 IF C$=CHR$(0)+CHR$(75) AND JOYMODE=1 THEN X=X+(X>0):IF X<1 THEN X=1:GOTO 310 ELSE GOTO 310
451 IF C$=CHR$(0)+CHR$(75) AND JOYMODE=0 THEN X=X+10*(X>0):IF X<1 THEN X=1:GOTO 310 ELSE GOTO 310
460 IF C$=CHR$(0)+CHR$(77) AND JOYMODE=1 THEN X=X-(X<XLIMIT):IF X>300 THEN X=300:GOTO 310 ELSE GOTO 310
461 IF C$=CHR$(0)+CHR$(77) AND JOYMODE=0 THEN X=X-10*(X<XLIMIT):IF X>298 THEN X=287:GOTO 310 ELSE GOTO 310
470 IF C$="." THEN IF Y<185 THEN PSET(X+3,Y+3),C:GOTO 240
490 IF C$="B" THEN BK=(BK+1) AND 15:COLOR,BK:GOTO 240
500 IF C$=" " OR C$=CHR$(4) THEN IF SAVX THEN GOSUB 1010:SAVX=0
510 IF C$=" " OR C$=CHR$(4) THEN IF SAVX=0 AND Y<180 THEN SOUND 100,3:SAVX=X+3:SAVY=Y+3:GOSUB 1010 ELSE BEEP:GOTO 240
515 IF C$=" " THEN 240
520 IF C$=CHR$(27) THEN IF SAVX THEN GOSUB 1010:SAVX=0:DRAWMODE=0:GOSUB 980:GOTO 240 ELSE 240
530 IF C$=CHR$(8) THEN GOSUB 1000:XLIMIT=313:YLIMIT=192:OTHER=0:GOSUB 1000:GOTO 240
540 IF C$<>"J" OR C$="J" THEN 680
550 T=CB:CB=0:GOSUB 1000:GOSUB 980:LOCATE 25,1:PRINT "Hold stick to lower right, press FIRE.";:XMAX=0:YMAX=0
560 IF STICK(0)>XMAX THEN XMAX=STICK(0)
570 IF STICK(1)>YMAX THEN YMAX=STICK(1)
580 IF STRIG(1)=0 THEN 560
590 IF STRIG(1) THEN 650
600 GOSUB 980:LOCATE 25,1:PRINT "Hold stick to upper left, press FIRE.";
610 XMIN=1000:YMIN=1000
620 IF STICK(0)<XMIN THEN XMIN=STICK(0)
630 IF STICK(1)<YMIN THEN YMIN=STICK(1)
640 IF STRIG(1)=0 THEN 620
650 IF STRIG(1) THEN 650
660 FX!=319/(XMAX-WMIN)::FY!=192/(YMAX-YMIN)
670 CB=T:GOSUB 980:GOSUB 1000:GOTO 240
680 IF C$<>"C" THEN 710 ELSE IF SAVX=0 THEN BEEP:GOTO 240
690 DX=SAVX-X-3:DY=SAVY-Y-3:R=SQR(DX*DX+DY*DY)
700 GOSUB 1000:CIRCLE (SAVX,SAVY),R,C:GOSUB 980:GOSUB 1000:GOTO 240
710 IF C$=CHR$(4) THEN DRAWMODE=1:SOUND 500,2:GOSUB 980:GOTO 240
715 IF C$="D" THEN IF Y<188 AND SAVX THEN GOSUB 1000:LINE (SAVX,SAVY)-(X+3,Y+3),C:GOSUB 1000:GOTO 240 ELSE BEEP:GOTO 240
720 IF C$="R" THEN IF Y<185 AND SAVX THEN GOSUB 1000:LINE (SAVX,SAVY)-(X+3,Y+3),C,B:GOSUB 1000:GOTO 240 ELSE BEEP:GOTO 240
730 IF C$<>"G" THEN 750 ELSE IF SAVX=0 THEN BEEP:GOTO 240
732 XWIDTH=ABS(SAVX-X-3):YWIDTH=ABS(SAVY-Y-3):IF XWIDTH+YWIDTH=0 THEN BEEP:GOTO 240
735 IF 4+INT((XWIDTH*4+11)/8)*(YWIDTH+1)>8004 THEN BEEP:GOTO 240
740 GOSUB 1000:GET(X+3,Y+3)-(SAVX,SAVY),SHAPE
745 OTHER=1:XLIMIT=319-XWIDTH:YLIMIT=199-YWIDTH
746 IF X>XLIMIT THEN X=XLIMIT:OX=X
747 IF Y>YLIMIT THEN Y=YLIMIT:OY=Y
749 GOSUB 1000:GOTO 240
750 IF C$<>"P" THEN 830 ELSE IF OTHER=0 THEN BEEP:GOTO 240
760 MSG$="PUT:(P)SET,P(R)ESET,(A)ND,(O)R,(X)OR":GOSUB 1030
770 IF RTN$<>"" THEN V=INSTR("PRAXO",RTN$):IF V THEN ON V GOTO 780,790,800,810,820
775 GOTO 240
780 GOSUB 1000:PUT (X,Y),SHAPE,PSET:GOSUB 1000:GOTO 240
790 GOSUB 1000:PUT (X,Y),SHAPE,PRESET:GOSUB 1000:GOTO 240
800 GOSUB 1000:PUT (X,Y),SHAPE,AND:GOSUB 1000:GOTO 240
810 GOSUB 1000:PUT (X,Y),SHAPE,>=:GOSUB 1000:GOTO 240
820 GOSUB 1000:PUT (X,Y),SHAPE,OR:GOSUB 1000:GOTO 240
830 IF C$="X" THEN CB=1-CB:GOSUB 980:GOTO 240
840 IF C$<>CHR$(6) THEN 880
860 GOSUB 1000:PAINT (X+3,Y+3),C,FC:GOSUB 1000
870 GOSUB 980:GOTO 240
880 IF C$="T" THEN IF Y<185 THEN MSG$="Text:":GOSUB 1340:GOSUB 1000:LOCATE Y/8+1,X/8+1:COLOR C-(C=0),BK:PRINT RTN$;:COLOR 7,BK:GOSUB 1000:GOTO 240 ELSE BEEP:GOTO 240
890 IF C$="Q" THEN MSG$="Quit: Are you sure? (Y/N):":GOSUB 1030:IF RTN$="Y" THEN SCREEN 0,1:RUN "menu.bas" ELSE 240
900 IF C$<>"S" THEN 940
910 MSG$="Save picture: Filename?":GOSUB 1340:IF RTN$="" THEN 240
920 GOSUB 1000:ON ERROR GOTO 925:DEF SEG=&H1000+&H800*SCR:BSAVE RTN$+".PIC",0,&H8000:ON ERROR GOTO 0:GOSUB 1000:GOTO 240
925 GOSUB 1000
930 MSG$="Error...Press ENTER:":GOSUB 1030:RESUME 230
940 IF C$<>"L" THEN 970
950 MSG$="Load picture: Filename?":GOSUB 1340:IF RTN$="" THEN 240
960 ON ERROR GOTO 930:DEF SEG=&H1000+&H800*SCR:BLOAD RTN$+".PIC",0:GOSUB 980:GOSUB 1000:GOTO 230
970 MSG$="Need help? (Y/N):":GOSUB 1030:IF RTN$="y" OR RTN$="Y" THEN 1070 ELSE 240
980 LINE (0,188)-(319,199),0,BF:IF CB THEN FOR I=0 TO 15:LINE (I*20+2,190)-(I*20+17,197),I,BF:NEXT:LOCATE 25,1:PRINT CHR$(32+36*DRAWMODE);:LINE (C*20,188)-(C*20+19,199),15,B:LINE (FC*20,194)-(FC*20+19,194),15
990 RETURN
1000 IF OTHER THEN PUT (X,Y),SHAPE ELSE PUT (X,Y),CROSS
1010 IF SAVX THEN PUT(SAVX-3,SAVY-3),CROSS,>=
1020 RETURN
1030 GOSUB 1000:T=CB:CB=0:GOSUB 980:LOCATE 25,1:PRINT MSG$;:RTN$=INPUT$(1):CB=T:GOSUB 980:GOSUB 1000
1040 IF RTN$>="a" AND RTN$<="z" THEN RTN$=CHR$(ASC(RTN$)-32)
1050 IF RTN$=CHR$(13) THEN TRN$=""
1060 RETURN
1070 RESTORE 1115:GOSUB 1000:TT=CB:CB=0
1080 READ MSG$:IF MSG$="END" THEN CB=TT:GOSUB 980:GOSUB 1000:GOTO 240
1090 GOSUB 980:LOCATE 25,20-LEN(MSG$)/2:PRINT MSG$;
1100 GO$=INKEY$:IF GO$="" THEN 1100
1105 IF GO$=CHR$(27) THEN CB=TT:GOSUB 980:GOSUB 1000:GOTO 240
1110 GOTO 1080
1115 DATA "HELP: Press any key to continue"
1120 DATA {SHIFT}+{+} Set fast cross-hair
1121 DATA {-} Set slow cross-hair
1122 DATA {SHIFT}+{>} Changes color for drawing
1130 DATA {Ctrl}+{Fn}+{Home} Clear screen
1140 DATA {B} Change background color
1160 DATA {SPACE BAR} Mark start position
1170 DATA {ESC} Cancel mark/draw mode
1175 DATA {D} Draw line from mark
1180 DATA {Ctrl}+{D} Enter draw mode
1190 DATA {C} Draw circle (mark=center)
1200 DATA {R} Draw rectangle/mark=opposite corner
1210 DATA {X} Toggle color bars on/off
1215 DATA {F} Select fill border color
1220 DATA {Ctrl}+{F} Fill in area
1230 DATA {T} Enter text at crosshair
1240 DATA {Q} Quit program
1250 DATA {S} Save picture
1260 DATA {L} Load picture
1265 DATA {Tab} Switch to alternate page
1270 DATA {Shift}+{Tab} Copy to alternate page
1271 DATA {G} Get shape
1272 DATA {P} Put shape
1273 DATA {Backspace} Discard shape
1275 DATA {Arrow keys} move cursor
1276 DATA {.} Plot point
1277 DATA {*} Draw line and move mark
1280 DATA END
1340 GOSUB 1000:T=CB:CB=0:GOSUB 980:LOCATE 25,1:PRINT MSG$;:LINE INPUT ;RTN$:CB=T:GOSUB 980:GOSUB 1000:RETURN
5000 DEF SEG:ML$=SPACE$(39):V=VARPTR(ML$):DEF FNML!(Z)=PEEK(V)+256*PEEK(V+1):Z=FNML!(0)
5010 FOR I=0 TO 38:READ A:POKE Z+1,A:NEXT:RETURN
5020 DATA &H55
5030 DATA &H1E
5040 DATA &HBE,00,00
5050 DATA &HBB,00,&H10
5060 DATA &H8E,&HDB
5070 DATA &H8B,&H04
5080 DATA &HBB,00,&HB8
5090 DATA &H8E,&HDB
5100 DATA &H87,&H04
5110 DATA &HBB,00,&H10
5120 DATA &H8E,&HDB
5130 DATA &H89,04
5140 DATA &H46
5150 DATA &H46
5160 DATA &H81,&HFE,00,&H40
5170 DATA &H72,&HE3
5180 DATA &H1F
5190 DATA &H5D
5200 DATA &HCA,0,0
6000 REM ------------trap illegal function at bottom of screen--------
6005 IF OTHER THEN PUT(X,Y-10),SHAPE ELSE PUT(X,Y-10),CROSS
6015 Y=Y-10
6020 RESUME 230
10000 REM --------------------SUMMARY OF INSTRUCTIONS-------------------
10005 CLS
10010 WIDTH 80
10020 LOCATE 1,30:PRINT "THE SCREEN MACHINE 1":PRINT:PRINT
10030 PRINT "The following keys control the screen:
10031 PRINT
10035 PRINT TAB(3);"<H>";TAB(20);"to get help at any time during work"
10040 PRINT TAB(3);"<arrow keys>";TAB(20);"move the cross-hair left, right, up, or down"
10050 PRINT TAB(3);"<->";TAB(20);"(dash) sets speed of cross-hair to SLOW"
10051 PRINT TAB(3);"<+>";TAB(20);"<SHIFT>+<+>; sets speed of cross-hair to FAST"
10060 PRINT TAB(3);"<B>";TAB(20);"change background color"
10080 PRINT TAB(3);"<CTRL>+<FN>";TAB(20);"clear the screen"
10081 PRINT TAB(5);"and <HOME>"
10082 PRINT TAB(3);"<Q>";TAB(20);"quit the program"
10083 PRINT TAB(3);"<X>";TAB(20);"turn off/turn on color chart at bottom of screen"
10090 LOCATE 24,1:PRINT "Press the <SPACE BAR> for more help or <ESC> to return to THE SCREEN MACHINE.";
10091 GO$=INKEY$:IF GO$="" THEN 10091
10092 IF GO$<>" " AND GO$<>CHR$(27) THEN 10091
10093 IF GO$=CHR$(27) THEN RETURN
10100 CLS:LOCATE 1,30:PRINT "THE SCREEN MACHINE 2":PRINT:PRINT
10110 PRINT "The following keys control line drawing and text:":PRINT
10120 PRINT TAB(3);"<SPACE BAR>";TAB(20);"mark beginning of any drawing"
10130 PRINT TAB(3);"<CTRL>+<D>";TAB(20);"enter draw mode, which automatically"
10131 PRINT TAB(20);" draws line and sets new mark when <*> is pressed"
10140 PRINT TAB(3);"<ESC>";TAB(20);"cancel any mark and exit draw mode"
10150 PRINT TAB(3);"<D>";TAB(20);"draw line from mark to cross-hair"
10151 PRINT TAB(3);"<*>";TAB(20);"in draw mode, draws line from mark to"
10152 PRINT TAB(20);" cross-hair and resets mark at cross-hair"
10160 PRINT TAB(3);"<C>";TAB(20);"draw circle with center at mark and radius"
10161 PRINT TAB(20);" equal to distance from mark to cross-hair"
10170 PRINT TAB(3);"<R>";TAB(20);"draw rectangle with mark and cross-hair as"
10171 PRINT TAB(20);" opposite corners"
10180 PRINT TAB(3);"<.>";TAB(20);"(period) draw one point at cross-hair"
10190 PRINT TAB(3);"<T>";TAB(20);"type text at cross-hair"
10191 LOCATE 24,1:PRINT "Press the <SPACE BAR> for more help or <ESC> to return to THE SCREEN MACHINE.";
10192 GO$=INKEY$:IF GO$="" THEN 10192
10193 IF GO$<>" " AND GO$<>CHR$(27) THEN 10192
10194 IF GO$=CHR$(27) THEN RETURN
10200 CLS:LOCATE 1,30:PRINT "THE SCREEN MACHINE 3":PRINT:PRINT
10210 PRINT "The following keys control color:":PRINT
10220 PRINT TAB(3);CHR$(34);">";CHR$(34);TAB(20);"change color for drawing or painting (filling figures);"
10221 PRINT TAB(20);" moves box in color chart at bottom of screen"
10230 PRINT TAB(3);"<X>";TAB(20);"turn off/turn on color chart at bottom of screen"
10240 PRINT TAB(3);"<F>";TAB(20);"mark color to use as border of figure to be"
10241 PRINT TAB(20);" painted (filled); [SEE NOTE ON THIS SCREEN]"
10250 PRINT TAB(3);"<CTRL>+<F>";TAB(20);"to paint (fill) figure in which cross-hair"
10251 PRINT TAB(20);" is located; [SEE NOTE ON THIS SCREEN]"
10260 PRINT:PRINT "NOTE:"
10261 PRINT "When you want THE SCREEN MACHINE to paint (fill) a figure, you"
10262 PRINT "must tell it the color of the border of that figure so it will"
10263 PRINT "know which lines to stay in while it paints.":PRINT
10264 PRINT "To mark the border color, move the box to that color and, then,"
10265 PRINT "press the <F> key, which will move the line to that color."
10266 PRINT "Then move the box to the color you want to paint (fill) with."
10270 LOCATE 24,1:PRINT "Press the <SPACE BAR> for more help or <ESC> to return to THE SCREEN MACHINE.";
10271 GO$=INKEY$:IF GO$="" THEN 10271
10272 IF GO$<>" " AND GO$<>CHR$(27) THEN 10271
10273 IF GO$=CHR$(27) THEN RETURN
10300 CLS:LOCATE 1,30:PRINT "THE SCREEN MACHINE 4":PRINT:PRINT
10310 PRINT "The following key control saving your pictures on your disk":PRINT "and loading them back from the disk when you want to continue working":PRINT "with them:"
10320 PRINT
10330 PRINT TAB(3);"<S>";TAB(20);"save your picture to your disk"
10340 PRINT TAB(3);"<L>";TAB(20);"load an existing picture from your disk"
10350 PRINT:PRINT:PRINT
10360 PRINT "When saving a picture, you should give it a name that has"
10361 PRINT "8 or fewer letters. You should not use spaces, period, commas,"
10362 PRINT "or extensions for your picture name. Your picture will be saved"
10363 PRINT "under the name you give it plus the extension, ";CHR$(34);".PIC";CHR$(34)
10364 PRINT "so you can find it in your disk files."
10370 PRINT
10380 PRINT "To load a picture from your disk, you should give (when asked)"
10381 PRINT "the name as it appears in the disk files--however, you should"
10382 PRINT "NOT give the extension. THE SCREEN MACHINE will know to use"
10383 PRINT "the ";CHR$(34);".PIC";CHR$(34);" when it looks for your picture."
10390 LOCATE 24,1:PRINT "Press the <SPACE BAR> for more help or <ESC> to return to THE SCREEN MACHINE.";
10391 GO$=INKEY$:IF GO$="" THEN 10391
10392 IF GO$<>" " AND GO$<>CHR$(27) THEN 10391
10393 IF GO$=CHR$(27) THEN RETURN
10400 CLS:LOCATE 1,30:PRINT "THE SCREEN MACHINE 5":PRINT:PRINT
10410 PRINT "The following keys control moving figures around the screen:":PRINT
10420 PRINT TAB(3);"<G>";TAB(20);"get the figure to be moved; [SEE NOTE ON THIS SCREEN]"
10430 PRINT TAB(3);"<P>";TAB(20);"put the figure down at new location; [SEE NOTE]"
10435 PRINT TAB(3);"<BACKSPACE>";TAB(20);"finalize a move and go back to drawing"
10440 PRINT:PRINT
10450 PRINT "To GET a figure, place the cross-hair at one corner of an imagined"
10451 PRINT "rectangle that contains the figure. Mark that corner by pressing"
10452 PRINT "the <SPACE BAR> and move the cross-hair to the opposite corner of"
10453 PRINT "that imagined rectangle. Then press the <G> key. The rectangle"
10454 PRINT "containing the figure can then be moved to any place on the screen."
10455 PRINT
10460 PRINT "When the figure is in the location you'd like, press the <P> key"
10461 PRINT "to put it down. You can then move the figure again (using the"
10462 PRINT "<arrow keys>) or you can press <BACKSPACE> to do other things."
10470 LOCATE 24,1:PRINT "Press <SPACE BAR> for more about moving figures or <ESC> to return.";
10471 GO$=INKEY$:IF GO$="" THEN 10471
10472 IF GO$<>" " AND GO$<>CHR$(27) THEN 10471
10473 IF GO$=CHR$(27) THEN RETURN
10500 CLS:LOCATE 1,30:PRINT "THE SCREEN MACHINE 6":PRINT:PRINT
10510 PRINT "More about moving figures around the screen:":PRINT
10520 PRINT "When you press the <P> key to place a figure in its new location,"
10521 PRINT "you will see a message like this:"
10530 PRINT TAB(15);"(P)set p(R)eset (A)nd (O)r (X)or"
10531 PRINT "You should press the letter in parentheses to indicate what you"
10532 PRINT "want THE SCREEN MACHINE to do. PSET will simply put the figure"
10533 PRINT "at its new location. PRESET will put the figure at its new"
10534 PRINT "location--but will change all the colors to complementary colors."
10535 PRINT "AND will put down only the parts of the figure that correspond to"
10536 PRINT "things that already exist in the background. OR merges the figure"
10537 PRINT "into the background with black areas being ignored. XOR creates a"
10538 PRINT "composite picture with the figure and the existing background.":PRINT
10540 PRINT "To erase a part of the screen, mark a corner (with the <SPACE BAR>)
10541 PRINT "and move the cross-hair to the opposite corner. Press the <G> key"
10542 PRINT "to GET the figure. Then, using the <arrow keys>, move the figure"
10543 PRINT "back--exactly--on top of itself and press the <P> to put it back."
10544 PRINT "Then press ";CHR$(34);"X";CHR$(34);" (for XOR) and the <BACKSPACE> key."
10550 LOCATE 24,1:PRINT "Press the <SPACE BAR> for more help or <ESC> to return to THE SCREEN MACHINE.";
10551 GO$=INKEY$:IF GO$="" THEN 10551
10552 IF GO$<>" " AND GO$<>CHR$(27) THEN 10551
10553 IF GO$=CHR$(27) THEN RETURN
10600 CLS:LOCATE 1,30:PRINT "THE SCREEN MACHINE 7":PRINT:PRINT
10610 PRINT "The following keys can be used for copying your pictures to alternate"
10611 PRINT "screens (pages):"
10620 PRINT TAB(3);"<TAB>";TAB(20);"move alternate screen to display and current"
10621 PRINT TAB(20);" screen to alternate screen"
10630 PRINT TAB(3);"<SHIFT>+<TAB>";TAB(20);"copy current screen to alternate screen"
10990 LOCATE 24,1:PRINT "Press the <SPACE BAR> to return to THE SCREEN MACHINE.";
10991 GO$=INKEY$:IF GO$<>" " THEN 10991
10999 RETURN
1 REM --NINE---------------MAZES-----------------------------------------
2 REM WRITTEN BY JACK HAUBER UPDATED 5-21-77 D. NIXON
3 REM UPDATED FOR PRINTER 10/6/84 BY G.WEST, ALLENDALE SC 29810
4 REM FOR IBM PCjr WITH 128K RAM
5 KEY OFF
10 CLS:COLOR 31:PRINT TAB(6);"PLEASE NOTE":PRINT:COLOR 15:PRINT "THIS PROGRAM REQUIRES A PRINTER."
11 PRINT:PRINT "IS YOUR PRINTER ATTACHED?":PRINT TAB(5);"PRESS Y FOR YES":PRINT TAB(5);"PRESS N FOR NO":PRINT
12 PR$=INKEY$:IF PR$="" THEN 12
13 IF PR$<>"Y" AND PR$<>"y" AND PR$<>"N" AND PR$<>"n" THEN 12
14 IF PR$="N" OR PR$="n" THEN RUN "MENU.BAS"
107 ON ERROR GOTO 2000
109 RANDOMIZE TIMER
110 WIDTH 80
111 CLS
120 DEFINT A-Z
130 PRINT "THIS PROGRAM WILL PRINT OUT A DIFFERENT MAZE EVERY TIME IT"
140 PRINT "IS RUN AND GUARANTEES ONLY ONE PATH THROUGH. YOU CAN CHOOSE"
150 PRINT "THE DIMENSIONS OF THE MAZE, THAT IS, THE NUMBER OF SQUARES WIDE"
160 PRINT "AND THE NUMBER OF SQUARES LONG."
170 PRINT
180 PRINT "HOW WIDE WOULD YOU LIKE THE MAZE TO BE?":PRINT "(THE WIDTH MUST BE BETWEEN 2 AND 25.)"
181 INPUT " ",H$
182 H=VAL(H$)
183 PRINT:PRINT "HOW LONG WOULD YOU LIKE THE MAZE TO BE?":PRINT "(THE LENGTH MUST BE BETWEEN 2 AND 40.)"
184 INPUT " ",V$
185 V=VAL(V$)
200 DIM W(H,V),V(H,V)
210 PRINT
220 IF H>2 AND V>2 THEN 260
230 PRINT "MEANINGLESS DIMENSIONS, TRY AGAIN."
240 PRINT
250 GOTO 1950
260 IF H< 27 GOTO 290
270 PRINT " THE WIDTH IS WIDER THEN 80 COLUMNS"
280 GOTO 1950
290 PRINT
300 PRINT
305 PRINT "PLEASE WAIT WHILE THE MAZE IS CREATED."
310 LET Q = 0
320 LET Z = 0
330 LET X = INT(RND(1)*H+1)
335 FOR I=1 TO 5:LPRINT:NEXT I:LPRINT TAB(20);"A MAZE ZING":LPRINT:LPRINT
340 FOR I = 1 TO H
350 IF I = X THEN 380
360 LPRINT CHR$(203);CHR$(205);CHR$(205);
370 GOTO 390
380 LPRINT CHR$(187);" ";
390 NEXT I
400 LPRINT CHR$(203)
410 LET C = 1
420 LET W(X,1) = C
430 LET C = C+1
440 LET R = X
450 LET S = 1
460 GOTO 570
470 IF R <> H THEN 550
480 IF S <> V THEN 520
490 LET R = 1
500 LET S = 1
510 GOTO 560
520 LET R = 1
530 LET S = S+1
540 GOTO 560
550 LET R = R+1
560 IF W(R,S) = 0 THEN 470
570 IF R-1 = 0 THEN 930
580 IF W(R-1,S) <> 0 THEN 930
590 IF S-1 = 0 THEN 740
600 IF W(R,S-1) <> 0 THEN 740
610 IF R = H THEN 650
620 IF W(R+1,S) <> 0 THEN 650
630 LET X = INT(RND(1)*3+1)
640 ON X GOTO 1320,1390,1460
650 IF S <> V THEN 690
660 IF Z = 1 THEN 720
670 LET Q = 1
680 GOTO 700
690 IF W(R,S+1) <> 0 THEN 720
700 LET X = INT(RND(1)*3+1)
710 ON X GOTO 1320,1390,1560
720 LET X = INT(RND(1)*2+1)
730 ON X GOTO 1320,1390
740 IF R = H THEN 850
750 IF W(R+1,S) <> 0 THEN 850
760 IF S<> V THEN 800
770 IF Z = 1 THEN 830
780 LET Q = 1
790 GOTO 810
800 IF W(R,S+1) <> 0 THEN 830
810 LET X = INT(RND(1)*3+1)
820 ON X GOTO 1320,1460,1560
830 LET X = INT(RND(1)*2+1)
840 ON X GOTO 1320,1460
850 IF S <> V THEN 890
860 IF Z = 1 THEN 920
870 LET Q = 1
880 GOTO 900
890 IF W(R,S+1) <> 0 THEN 920
900 LET X = INT(RND(1)*2+1)
910 ON X GOTO 1320,1560
920 GOTO 1320
930 IF S-1 = 0 THEN 1140
940 IF W(R,S-1) <> 0 THEN 1140
950 IF R=H THEN 1060
960 IF W(R+1,S) <> 0 THEN 1060
970 IF S<> V THEN 1010
980 IF Z = 1 THEN 1040
990 LET Q = 1
1000 GOTO 1020
1010 IF W(R,S+1) <> 0 THEN 1040
1020 LET X = INT(RND(1)*3+1)
1030 ON X GOTO 1390,1460,1560
1040 LET X = INT(RND(1)*2+1)
1050 ON X GOTO 1390,1460
1060 IF S <> V THEN 1100
1070 IF Z = 1 THEN 1130
1080 LET Q = 1
1090 GOTO 1110
1100 IF W(R,S+1) <> 0 THEN 1130
1110 LET X = INT(RND(1)*2+1)
1120 ON X GOTO 1390,1560
1130 GOTO 1390
1140 IF R = H THEN 1240
1150 IF W(R+1,S) <> 0 THEN 1240
1160 IF S <> V THEN 1200
1170 IF Z = 1 THEN 1230
1180 LET Q = 1
1190 GOTO 1210
1200 IF W(R,S+1) <> 0 THEN 1230
1210 LET X = INT(RND(1)*2+1)
1220 ON X GOTO 1460,1560
1230 GOTO 1460
1240 IF S <> V THEN 1280
1250 IF Z = 1 THEN 1310
1260 LET Q = 1
1270 GOTO 1290
1280 IF W(R,S+1) <> 0 THEN 1310
1290 GOTO 1560
1300 REM BLOCKED
1310 GOTO 1760
1320 LET W(R-1,S) = C
1330 LET C = C+1
1340 LET V(R-1,S) = 2
1350 LET R = R-1
1360 IF C = H*V+1 THEN 1770
1370 LET Q = 0
1380 GOTO 570
1390 LET W(R,S-1) = C
1400 LET C = C+1
1410 LET V(R,S-1) = 1
1420 LET S = S-1
1430 IF C = H*V+1 THEN 1770
1440 LET Q = 0
1450 GOTO 570
1460 LET W(R+1,S) = C
1470 LET C = C+1
1480 IF V(R,S) = 0 THEN 1510
1490 LET V(R,S) = 3
1500 GOTO 1520
1510 LET V(R,S) = 2
1520 LET R = R+1
1530 IF C = H*V+1 THEN 1770
1540 LET Q = 0
1550 GOTO 930
1560 IF Q = 1 THEN 1660
1570 LET W (R,S+1) = C
1580 LET C = C+1
1590 IF V(R,S) = 0 THEN 1620
1600 LET V(R,S) = 3
1610 GOTO 1630
1620 LET V(R,S) = 1
1630 LET S = S+1
1640 IF C = H*V+1 THEN 1770
1650 GOTO 570
1660 LET Z = 1
1670 IF V(R,S) = 0 THEN 1710
1680 LET V(R,S) = 3
1690 LET Q = 0
1700 GOTO 1760
1710 LET V(R,S) = 1
1720 LET Q = 0
1730 LET R = 1
1740 LET S = 1
1750 GOTO 560
1760 GOTO 470
1770 FOR J = 1 TO V
1780 LPRINT CHR$(206);
1790 FOR I = 1 TO H
1800 IF V(I,J) < 2 THEN 1830
1810 LPRINT " ";
1820 GOTO 1840
1830 LPRINT " ";CHR$(206);
1840 NEXT I
1850 LPRINT
1860 FOR I = 1 TO H
1870 IF V(I,J) = 0 THEN 1910
1880 IF V(I,J) = 2 THEN 1910
1890 LPRINT CHR$(185);" ";
1900 GOTO 1920
1910 LPRINT CHR$(206);CHR$(205);CHR$(205);
1920 NEXT I
1930 LPRINT CHR$(185)
1940 NEXT J
1950 ERASE W,V
1960 FOR I=1 TO 5: PRINT: NEXT I
1970 CLS:PRINT "WHAT WOULD YOU LIKE TO DO?":PRINT:PRINT TAB(5);"1) ANOTHER MAZE":PRINT TAB(5);"2) END":PRINT:PRINT "PRESS THE NUMBER OF YOUR CHOICE."
1971 Y$=INKEY$:IF Y$<>"1" AND Y$<>"2" THEN 1971
1972 IF Y$="1" THEN RUN ELSE RUN "MENU.BAS"
1980 END
2000 CLS:PRINT "THERE SEEMS TO BE SOMETHING WRONG THAT I DO NOT UNDERSTAND.":PRINT "LET'S TRY THIS AGAIN. PRESS THE <SPACE BAR>."
2010 Y$=INKEY$:IF Y$<>" " THEN 2010
2020 RESUME 100
1 REM --TWO--------ALPHABETICAL ORDER------------------------------
10 REM ------------K.WEST (8/10/84)--------------------------------
20 REM This program will be used to give students practice in alphabetizing
30 REM words from the South Carolina Basic Skills Word List.
40 REM ----revised 10/12/84: G.West, Allendale SC 29810------------
50 KEY OFF
60 SCREEN 0
70 WIDTH 80
80 COLOR 15,1,1
90 CLS
100 LOCATE 9,30:PRINT "What is your name?"
110 COLOR 12:LOCATE 11,34:INPUT " ",N$
120 LN$=LEFT$(N$,1):LN=ASC(LN$):IF LN>=97 AND LN<=122 THEN LN=LN-32:LN$=CHR$(LN):XN=LEN(N$):N$=LN$+RIGHT$(N$,XN-1)
130 PRINT:PRINT:PRINT:PRINT
140 PRINT TAB(21) N$;:COLOR 15:PRINT;", you will need paper and pencil."
150 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
160 COLOR 14:PRINT TAB(26) "PRESS SPACE BAR WHEN READY"
170 Q$=INKEY$:IF Q$<>" " THEN 170
180 CLS
185 GOSUB 1000
190 COLOR 15:LOCATE 5,29:PRINT"Ready, ";:COLOR 12:PRINT;N$;:COLOR 15:PRINT;" ?"
200 COLOR 15:LOCATE 7,27:PRINT "Here are five words."
210 LOCATE 8,15:PRINT"Let's see if you can put them in alphabetical order."
220 PRINT
230 PRINT
240 FOR X=1 TO 5
260 LOCATE ,33:PRINT A$(X)
270 NEXT X
280 PRINT:PRINT:PRINT:PRINT
290 LOCATE ,24:PRINT"Try it on your paper first."
300 PRINT
310 COLOR 14:LOCATE ,19:PRINT"When you are ready, press the space bar."
320 Q$=INKEY$:IF Q$<>" " THEN 320
330 COLOR 15
340 FOR X=2 TO 5
350 X$=A$(X)
360 FOR Y=X-1 TO 1 STEP-1
370 IF A$(Y)>X$ THEN SWAP A$(Y),A$(Y+1)
380 NEXT Y
390 NEXT X
400 CLS
410 PRINT:PRINT:PRINT
420 COLOR 28:PRINT TAB(18)"USE ONLY SMALL LETTERS TO TYPE YOUR ANSWER.":COLOR 10
430 FOR K=1 TO 1010:NEXT K:LOCATE 4,18:COLOR 12:PRINT"USE ONLY SMALL LETTERS TO TYPE YOUR ANSWER."
440 FOR X=1 TO 5
450 CNT=1
460 IF X=1 OR CNT=1 THEN GOTO 470
470 PRINT
480 LOCATE ,25:COLOR 6:PRINT "---------------------------":COLOR 15
490 PRINT:LOCATE ,25:PRINT"Type word";X;"and press enter."
500 PRINT
510 LOCATE ,25:INPUT " ",B$(X):LOCATE CSRLIN-1,26:PRINT B$(X);
520 IF B$(X)=A$(X) THEN 540
530 IF B$(X)<>A$(X) THEN GOTO 760
540 LOCATE ,42:COLOR 30:PRINT "Correct";
550 FOR K=1 TO 1000:NEXT K:LOCATE ,42:COLOR 14:PRINT "Correct":COLOR 15
560 NEXT X
570 PRINT
580 LOCATE ,25:COLOR 6:PRINT "---------------------------":COLOR 15
590 PRINT:PRINT:PRINT
600 FOR I=1 TO 1300:NEXT
610 CLS
620 COLOR 12:LOCATE 7,30:PRINT"Good work, ";N$;"!"
630 COLOR 15:LOCATE 9,30:PRINT"The correct list is: "
640 FOR Z=1 TO 5
650 PRINT:PRINT TAB(36) A$(Z)
660 NEXT Z
670 PRINT:PRINT:LOCATE ,22:COLOR 14:PRINT "Press SPACE BAR to go on or E to end."
680 Q$=INKEY$:IF Q$<>" " AND Q$<>"e" AND Q$<>"E" THEN 680
690 IF Q$=" " THEN CLS: GOTO 180
700 CLS
710 COLOR 15:LOCATE 11,22: PRINT "I've enjoyed working with you, ";:COLOR 12:PRINT;N$;:COLOR 15:PRINT;"."
720 LOCATE 13,31:PRINT "Have a nice day!"
730 FOR X=1 TO 2500:NEXT X
740 RUN "MENU.BAS"
750 END
760 IF CNT=1 THEN CNT=2:LOCATE ,38:COLOR 2:PRINT"No, try again.":GOTO 480
770 COLOR 15
780 LOCATE CSRLIN +1,25:COLOR 7:PRINT"The correct word is ";:COLOR 12:PRINT A$(X);:COLOR 7:PRINT ".":GOTO 560
790 DATA cabin,bark,escape,force,boot
800 DATA comb,brick,part,ant,fear
810 DATA fan,often,hour,snake,twenty
820 DATA wrap,nibble,lean,sweet,sweep
830 DATA sick,ax,cool,freeze,trap
840 DATA serve,load,sand,jelly,bunk
850 DATA age,hair,breathe,whale,hook
860 DATA record,note,pinch,trail,spin
870 DATA all,valley,mile,arrow,else
1000 REM -----------------------------input word list---------------------
1010 PRINT N$;",":PRINT "you will have to type in five words.":PRINT "If you don't have a list of ":PRINT "those words, please get them from":PRINT "the teacher or the aide in your class.":PRINT
1020 PRINT "When you are ready to type in the words,":PRINT "press the <R> key."
1030 GO$=INKEY$:IF GO$="" THEN 1030
1040 IF GO$<>"r" AND GO$<>"R" THEN 1030
1050 CLS
1060 PRINT "Good, ";N$;".":PRINT "Type the five words:":PRINT
1070 FOR X=1 TO 5:PRINT TAB(5);"Word #";X;
1080 INPUT " ",A$(X)
1090 NEXT X
1100 PRINT:PRINT "That's all for now.":FOR X=1 TO 1000:NEXT X
1110 CLS
1120 RETURN
1 REM --TWENTY-----------------PROGRAM DESCRIPTIONS------------------
2 REM -----------------------------GARY WEST-------------------------
3 REM -----------------------------10/30/84--------------------------
4 REM -- --
5 ON ERROR GOTO 5000
9 KEY OFF
10 SCREEN 0,1:WIDTH 80:COLOR 15,1,1:CLS
15 DIM A$(20)
20 TOP$=CHR$(201)+STRING$(65,205)+CHR$(187)
21 MDL$=CHR$(186)+STRING$(65,32)+CHR$(186)
22 BTM$=CHR$(200)+STRING$(65,205)+CHR$(188)
23 MDD$=CHR$(204)+STRING$(65,205)+CHR$(185)
24 SCN=0
25 FOR X=1 TO 20:A$(X)="":NEXT X
30 LOCATE 3,5:PRINT TOP$:FOR X=4 TO 23:LOCATE X,5:PRINT MDL$:NEXT X:LOCATE 24,5:PRINT BTM$;
35 LOCATE 6,5:PRINT MDD$:LOCATE 19,5:PRINT MDD$
40 LOCATE 5,35:COLOR 14:PRINT "PROGRAMS":COLOR 15
45 LOCATE 7,9:PRINT "0) ";:COLOR 14:PRINT "RETURN TO MAIN MENU":COLOR 15
50 LOCATE 8,9:PRINT "1) SPELLING BEE":LOCATE 8,47:PRINT "11) WORD MATCH"
51 LOCATE 9,9:PRINT "2) ALPHABETIZING":LOCATE 9,47:PRINT "12) WORD MATCH (B/W)"
52 LOCATE 10,9:PRINT "3) BOWLING":LOCATE 10,47:PRINT "13) HANGMAN"
53 LOCATE 11,9:PRINT "4) GRAPHICS DISPLAY":LOCATE 11,47:PRINT "14) WORD SCRAMBLE (1)"
54 LOCATE 12,9:PRINT "5) MAXIT":LOCATE 12,47:PRINT "15) WORD SCRAMBLE (2)"
55 LOCATE 13,9:PRINT "6) OTHELLO":LOCATE 13,47:PRINT "16) SCREEN MACHINE"
56 LOCATE 14,9:PRINT "7) WORD PROBLEMS":LOCATE 14,47:PRINT "17) MAZES 2"
57 LOCATE 15,9:PRINT "8) FIND-A-WORD PUZZLES":LOCATE 15,47:PRINT "18)"
58 LOCATE 16,9:PRINT "9) MAZES":LOCATE 16,47:PRINT "19)"
59 LOCATE 17,8:PRINT "10) AGES IN DAYS":LOCATE 17,47:PRINT "20) PROGRAM DESCRIPTIONS"
60 LOCATE 21,11:PRINT "Type the number for the description you want to see,"
70 LOCATE 22,11:PRINT "then press the <ENTER> key."
75 PCOPY 0,1
80 LOCATE 22,40:INPUT " ",F$
85 IF F$="0" THEN RUN "MENU.BAS"
90 CLS
95 IF SCN THEN 107
100 LOCATE 1,5:PRINT TOP$:FOR X=2 TO 23:LOCATE X,5:PRINT MDL$:NEXT X:LOCATE 24,5:PRINT BTM$;:LOCATE 3,5:PRINT MDD$:LOCATE 22,5:PRINT MDD$
105 PCOPY 0,2:SCN=1
107 PCOPY 2,0
110 IF F$="1" THEN PGM$="SPELLING BEE":GOTO 200
111 IF F$="2" THEN PGM$="ALPHABETIZING":GOTO 250
112 IF F$="3" THEN PGM$="BOWLING GAME":GOTO 300
113 IF F$="4" THEN PGM$="GRAPHICS DISPLAY":GOTO 350
114 IF F$="5" THEN PGM$="MAXIT GAME":GOTO 400
115 IF F$="6" THEN PGM$="OTHELLO GAME":GOTO 450
116 IF F$="7" THEN PGM$="WORD PROBLEMS":GOTO 500
117 IF F$="8" THEN PGM$="FIND-A-WORD":GOTO 550
118 IF F$="9" THEN PGM$="MAZES":GOTO 600
119 IF F$="10" THEN PGM$="AGE IN DAYS":GOTO 650
120 IF F$="11" OR F$="12" THEN PGM$="WORD MATCH":GOTO 700
121 IF F$="13" THEN PGM$="HANGMAN":GOTO 750
122 IF F$="14" THEN PGM$="WORD SCRAMBLE FOR ONE":GOTO 800
123 IF F$="15" THEN PGM$="WORD SCRAMBLE FOR TWO":GOTO 850
124 IF F$="16" THEN PGM$="THE SCREEN MACHINE":GOTO 900
125 IF F$="18" OR F$="19" THEN PGM$="PROGRAM "+F$:GOTO 950
126 IF F$="17" THEN PGM$="MAZES 2":GOTO 1050
129 IF F$="20" THEN PGM$="PROGRAM DESCRIPTIONS":GOTO 1000
130 PT=38-(0.5*LEN(PGM$)):LOCATE 2,PT:COLOR 14:PRINT PGM$:COLOR 15
140 FOR X=1 TO 18:LOCATE X+3,7:PRINT A$(X):NEXT X
150 LOCATE 23,15:COLOR 14:PRINT "PRESS THE <SPACE BAR> TO RETURN TO THE MENU.":COLOR 15
160 Y$=INKEY$:IF Y$<>" " THEN 160
170 PCOPY 1,0:GOTO 80
200 REM --SPELLING BEE
201 A$(1)="> uses SC sight word lists for grades 1 - 5"
202 A$(2)="> does not require knowledge of keyboard; uses on-"
203 A$(3)=" screen alphabet with pointer"
204 A$(5)="> selects words randomly from chosen list"
205 A$(6)="> displays word briefly and instructs student to"
206 A$(7)=" spell the word by moving the marker to the letters"
207 A$(8)="> student can make three attempts before word is given"
208 A$(9)="> on-screen instructions help student enter letters"
209 A$(10)="> displays list of words used after student has finished"
210 A$(11)=" and marks those that the student missed"
211 A$(4)="> student selects appropriate word list to work with"
213 A$(12)="> activity is self-correcting at each step"
249 GOTO 130
250 REM --ALPHABETIZING
251 A$(1)="> asks student for five words that are provided by teacher"
252 A$(2)="> teacher determines the words student works on"
253 A$(3)="> computer lists words and gives instructions to student"
254 A$(4)="> using pencil and paper, student alphabetizes list"
255 A$(5)="> words are entered, one at a time, with immediate feed-"
256 A$(6)=" back; if word is not given in proper sequence, student"
257 A$(7)=" has a second chance"
258 A$(8)="> word is given after second incorrect response and "
259 A$(9)=" student is instructed to reconsider and enter next word"
260 A$(10)="> activity is self-correcting at each step"
261 A$(11)="> the alphabetized list is displayed when the student has
262 A$(12)=" completed the fifth word"
299 GOTO 130
300 REM --BOWLING GAME
301 A$(1)="> game for 1 to 4 players"
302 A$(2)="> automatically keeps score according to standard bowling"
303 A$(3)=" rules"
304 A$(4)="> allows extra balls in 10th frame when spare or strike"
305 A$(5)=" is made"
306 A$(6)="> prompts each player's turn with name and color"
307 A$(7)="> three levels of difficulty"
308 A$(8)="> player presses <SPACE BAR> when ready to bowl"
309 A$(9)="> player gets strike when ball hits head pin first"
310 A$(10)="> activity promotes hand/eye motor coordination and"
311 A$(11)=" promotes left-to-right eye movement"
349 GOTO 130
350 REM --GRAPHICS DISPLAY
351 A$(1)="> displays colorful graphics design"
352 A$(2)="> uses student input for number of peaks in curve and for"
353 A$(3)=" distance between segments of curve"
354 A$(4)="> if given enough time, curve will fill boxed area"
355 A$(5)="> has little educational value but has a pleasant display"
356 A$(6)=" for those with patience"
399 GOTO 130
400 REM --MAXIT GAME
401 A$(1)="> game for one against the computer"
402 A$(2)="> draws a grid into which numbers from -15 to 15 are placed"
403 A$(3)="> player moves marker by pressing the <SPACE BAR>"
404 A$(4)="> when marker is in proper place, player presses the <ENTER>"
405 A$(5)=" key to get the points in that box"
406 A$(6)="> object of game is to finish with more points than the"
407 A$(7)=" computer"
408 A$(8)="> player may move marker only in the horizontal row in which"
409 A$(9)=" the marker is located; computer moves only in columns"
410 A$(10)="> strategy of game is to get the most points in a row while"
411 A$(11)=" preventing the computer's getting more in its move"
412 A$(12)="> game is over when all numbers are claimed or when player"
413 A$(13)=" or computer cannot move to a number"
414 A$(14)="> builds strategy skills and allows practice of left-to-"
415 A$(15)=" right and top-to-bottom eye movement"
449 GOTO 130
450 REM --OTHELLO GAME
451 A$(1)="> computer version of popular OTHELLO game"
452 A$(2)="> game for two players or for one player against computer"
453 A$(3)="> object of game is to have the larger number of markers"
454 A$(4)=" of your color on the board"
455 A$(5)="> strategy of game is to turn opponents markers to your color"
456 A$(6)=" by trapping the opponents markers between two of yours; this"
457 A$(7)=" is done by placing a marker so that it and another of your"
458 A$(8)=" markers trap the opponents markers in a line"
459 A$(9)="> the computer will not let you place a marker that does not"
460 A$(10)=" trap at least on of the opponent's markers"
461 A$(11)="> markers may be trapped horizontally, vertically, or"
462 A$(12)=" diagonally"
463 A$(13)="> all trapped markers are converted to player's color"
464 A$(14)="> game is over when board is filled"
465 A$(15)="> promotes strategy building and problem solving"
466 A$(16)="> computer plays to win"
499 GOTO 130
500 REM --WORD PROBLEMS
501 A$(1)="> program creates word problems at varying levels of difficulty"
502 A$(2)="> asks for student input of names of people or objects, which"
503 A$(3)=" are then used in the problems"
504 A$(4)="> reading level is low and math levels are adjustable"
505 A$(5)="> if an answer is wrong, program leads student through a step-"
506 A$(6)=" by-step solution sequence"
507 A$(7)="> program offers witty responses to student input, at times"
508 A$(8)="> offers practice in problem solving and reading"
549 GOTO 130
550 REM --FIND-A-WORD
551 A$(1)="> THIS PROGRAMS REQUIRES A PRINTER"
552 A$(2)="> allows user to give size (width and length) of the puzzle"
553 A$(3)="> allows user to type in words to be used in the puzzle"
554 A$(4)="> creates standard find-a-word in the given size"
555 A$(5)="> counts down as it places words in puzzle"
556 A$(6)="> prints name for puzzle, words in the puzzle, and puzzle"
557 A$(7)="> prints answer sheet on separate page, showing location of"
558 A$(8)=" each word in the puzzle"
559 A$(9)="> excellent for use with vocabulary and spelling words"
599 GOTO 130
600 REM --MAZES
601 A$(1)="> THIS PROGRAM REQUIRES A PRINTER"
602 A$(2)="> creates random mazes through which there is only one path"
603 A$(3)="> can be used with children who are developing physical"
604 A$(4)=" skills for writing"
649 GOTO 130
650 REM --AGE IN DAYS
651 A$(1)="> calculates ages, birthdates, and other age-related infor-"
652 A$(2)=" mation about the user"
653 A$(3)="> creates a random horoscope for each user"
654 A$(4)="> gathers information from the user in order to determine"
655 A$(5)=" and display the calculated data"
656 A$(6)="> good practice for following instructions"
657 A$(7)="> can be used as tool for learning months of the year"
658 A$(8)="> has limited educational value"
699 GOTO 130
700 REM --WORD MATCH
701 A$(1)="> there are two versions of WORD MATCH, one for a color"
702 A$(2)=" monitor and the other for black/white/monochrome displays"
703 A$(3)="> both versions are identical except for color contrast"
704 A$(4)="> uses SC sight word lists for grades 1 - 5"
705 A$(5)="> student chooses appropriate word list"
706 A$(6)="> computer randomly selects words from the chosen list"
707 A$(7)="> six pairs of words are hidden in numbered cells and"
708 A$(8)=" students try to match the pairs of words by looking under"
709 A$(9)=" the covers of cells
710 A$(10)="> the program gives feedback about the match or non-match of"
711 A$(11)=" items in the game board"
712 A$(12)="> game is similar to CONCENTRATION (the TV program)"
713 A$(13)="> program keeps a count of the matches and announces the winner"
749 GOTO 130
750 REM --HANGMAN
751 A$(1)="> uses SC sight word lists for grades 1 - 5"
752 A$(2)="> student chooses appropriate word list"
753 A$(3)="> computer randomly selects words from chosen list"
754 A$(4)="> the student guesses letters that might be contained in the "
755 A$(5)=" hidden word"
756 A$(6)="> the number of letters in the hidden word is indicated by"
757 A$(7)=" blanks on the screen"
758 A$(8)="> when a letter is correctly guessed, it is placed in the "
759 A$(9)=" appropriate blank and student can guess at word"
760 A$(10)="> when a letter is not correct, a part of the body is added"
761 A$(11)=" to the figure that remains on screen"
762 A$(12)="> when the figure is completely hanged, the word is displayed"
763 A$(13)="> all used letters are displayed on-screen"
764 A$(14)="> the program rejects letters that have already been used"
799 GOTO 130
800 REM --WORD SCRAMBLE (1)
801 A$(1)="> uses the SC sight word lists for grades 1 - 5"
802 A$(2)="> scrambles words and displays the scrambled version"
803 A$(3)="> student may take as long as necessary to unscramble the word"
804 A$(4)="> at the end, the scrambled words, the student's answers, and"
805 A$(5)=" the correct words are displayed, with the student's incorrect"
806 A$(6)=" responses marked with asterisks"
849 GOTO 130
850 REM --WORD SCRAMBLE (2)
851 A$(1)="> two students take turns typing in words for the other to"
852 A$(2)=" unscramble"
853 A$(3)="> each student has a one-minute time limit"
854 A$(4)="> program is self-correcting, in that it will not accept an"
855 A$(5)=" incorrect letter"
856 A$(6)="> a score is kept, with 10 points deducted for each incorrect"
857 A$(7)=" letter guessed; after five incorrect guesses, the word is"
858 A$(9)="> following the second player's turn (in each round), the score"
859 A$(10)=" is displayed"
860 A$(11)="> excellent for use with a list of words created for each"
861 A$(12)=" student to type in; allows practice with specific words"
899 GOTO 130
900 REM --SCREEN MACHINE
901 A$(1)="> a graphics/picture maker that can save pictures for later use"
902 A$(2)="> specific instructions can be found in the program, which also"
903 A$(3)=" offers help along the way"
904 A$(4)="> when the program starts, you see a color chart and a cross-"
905 A$(5)=" hair, which can be moved in any of four directions "
906 A$(6)="> by using certain keys, you can draw lines, circles, rectangles"
907 A$(7)=" and other figures and can paint those figures with any of the"
908 A$(8)=" colors from the color chart"
909 A$(9)="> figures can be moved, copied, and erased"
910 A$(10)="> background colors can be changed"
911 A$(11)="> pictures created by this program can be saved on a disk and"
912 A$(12)=" can be used in other programs written in BASIC"
913 A$(13)="> for more information, go back to the main menu, select the"
914 A$(14)=" appropriate number, and go to the program; then select the"
915 A$(15)=" option that will show you seven pages of instructions"
916 A$(16)="> excellent for students to create pictures of their own"
949 GOTO 130
950 REM --NO PROGRAM
951 A$(1)="> there is no program for this number"
999 GOTO 130
1000 REM --PROGRAM DESCRIPTIONS
1001 A$(1)="> displays a menu from which user can select descriptions"
1002 A$(2)=" of programs on this disk"
1049 GOTO 130
1050 REM --MAZES 2
1051 A$(1)="> THIS PROGRAM REQUIRES A PRINTER"
1052 A$(2)="> creates random mazes through which there is only one path"
1053 A$(3)="> can be used with children who are developing physical"
1054 A$(4)=" skills for writing"
1055 A$(5)="> different from other maze program in that this program"
1056 A$(6)=" uses graphics to print the maze, thus printing solid"
1057 A$(7)=" lines in the maze"
1099 GOTO 130
4999 END
5000 CLS:PRINT "SOMETHING HAS GONE WRONG. LET'S START AGAIN."
5010 LOCATE 10,30:PRINT ERR;" ";ERL
5020 LOCATE 3,1:PRINT "PRESS THE <SPACE BAR> TO RETURN TO THE MENU."
5030 Y$=INKEY$:IF Y$<>" " THEN 5030
5040 CLS:RESUME 25
1 REM --THREE--------BOWLING GAME------------------------------------
2 REM --FROM COMPUTES! PC&PCjr MAGAZINE------------------------------
3 REM --REVISED 10/12/84: G.West, Allendale SC 29810-----------------
10 DIM NA$(3),S(3),T(3) : COLOR 3,0,0
20 WIDTH 40 : KEY OFF : LOCATE 1,1,0 : CLS : DEF SEG=0 : POKE 1047,64
30 LOCATE 8,12 : PRINT "BOWLING CHAMP!"
40 LOCATE 13,7 : PRINT "How many bowlers? (1-4):"
50 A$="" : WHILE A$="" : A$=INKEY$ : WEND
60 IF ASC(A$)<49 OR ASC(A$)>52 THEN 50 ELSE A=VAL(A$)
70 FOR I=1 TO A : LOCATE 15+I,8 : PRINT "Bowler";I;
80 LOCATE ,16 : PRINT"'s name:";
90 INPUT A$ : NA$(I-1)=LEFT$(A$,8) : NEXT
91 LOCATE 21,5:PRINT "1=EASY 2=AVERAGE 3=HARD"
92 FOR X=1 TO 15:EMPTY$=INKEY$:NEXT X
93 LEVEL$=INKEY$:IF LEVEL$<>"1" AND LEVEL$<>"2" AND LEVEL$<>"3" THEN 93
94 IF LEVEL$="1" THEN LEVEL=25:GOTO 110
95 IF LEVEL$="2" THEN LEVEL=10:GOTO 110
96 IF LEVEL$="3" THEN LEVEL=1
100 ' --> DRAW GAME SCREEN <--
110 CLS : COLOR 15 : LOCATE 1,10 : PRINT "1 2 3 4 5 6 7 8 9 10"
120 LOCATE 2,10 : FOR J=1 TO 31 : PRINT CHR$(196);: NEXT
130 FOR I=1 TO A : LOCATE 2*I+1,1 : COLOR I+1 : PRINT NA$(I-1);: LOCATE ,12
140 COLOR 15 : FOR J=12 TO 36 STEP 3 : PRINT CHR$(179)+" ";: NEXT
150 LOCATE 2*I+2,10 : FOR J=1 TO 31 : PRINT CHR$(196); : NEXT : NEXT
160 LOCATE 12, 1 : FOR I=0 TO A-1 : IF I=2 THEN LOCATE 14,1
170 COLOR I+2 : PRINT NA$(I);":";SPC(19-LEN(NA$(I))); : NEXT : COLOR 15
180 LOCATE 15,1 : FOR I=1 TO 39 : PRINT CHR$(196);: NEXT
190 LOCATE 25,1 : FOR I=1 TO 39 : PRINT CHR$(196);:NEXT
200 ' --> INITIALIZE SCORE STATE <--
210 FOR I=O TO A-1 : S(I)=1 : NEXT
220 ' --> MAIN LOOP <--
230 FOR Q=1 TO 10 : FOR Z9=O TO A-1
240 COLOR,Z9+2 : FOR I=16 TO 24 : LOCATE I,1 : PRINT SPC(39) : NEXT
250 B1=0 : GOSUB 390
260 IF J1<>10 THEN B1=1 : GOSUB 430
270 IF Q=10 THEN ON S GOTO 280,310,310,280,340
280 NEXT : NEXT : LOCATE 16,10 : PRINT "PLAY AGAIN?(Y OR N)"
290 A$="" : WHILE A$="" : A$=INKEY$ : WEND : IF A$="Y" THEN RUN ELSE COLOR 7,0 : RUN "MENU.BAS"
300 ' --> 10TH FRAME : EXTRA BALLS <--
310 LOCATE 20,1 : PRINT "TAKE TWO MORE BALLS, ";NA$(Z9);
320 FOR I=1 TO 1000 : NEXT : LOCATE , 1 : PRINT SPC(29)
330 S(Z9)=S-1 : B1=1 : GOSUB 390 : IF J<>10 THEN 370 ELSE 360
340 LOCATE 20,1 : PRINT "TAKE ONE MORE BALL, ";NA$(Z9);
350 FOR I=1 TO 1000 : NEXT : LOCATE ,1 : PRINT SPC(28)
360 S(Z9)=1 : B1=2 : GOSUB 390 : GOTO 280
370 S(Z9)=1 : B1=2 : GOSUB 430 : GOTO 280
380 ' --> FIRST BALL <--
390 COLOR 15 : LOCATE 17,39
400 FOR I=1 TO 31 : READ PC : PRINT CHR$(PC); : NEXT : RESTORE
410 PS=1=1 : J1=0 : GOTO 440
420 ' --> SECOND BALL <--
430 PS=0
440 GOSUB 500 : T=T(Z9) : S=S(Z9) : T=T+J
450 ON S(Z9) GOSUB 680,700,720,740,760
460 T(Z9)=T : S(Z9)=S : COLOR Z9+2,0
470 LOCATE 14+(Z9<2)*2,31+(Z9/2=INT(Z9/2))*20 : PRINT T (Z9)
480 COLOR 0,Z9+2 : RETURN
490 ' --> ROLL BALL <--
500 H=1 : V=24 : D=-1 : COLOR 0,Z9+2
510 WHILE INKEY$="" : LOCATE V,H : PRINT " ";
520 V=V+D : LOCATE V,H : PRINT "O";
530 FOR I=1 TO LEVEL : NEXT : IF V=24 OR V=16 THEN D=-D
540 WEND : FOR H=2 TO 35 : LOCATE V,H-1 : PRINT " O";: A$=INKEY$
545 IF A$="]" THEN WHILE INKEY$="" : WEND
550 SOUND 37,0.5 : SOUND 32767,0.1 : NEXT
560 J=0 : WHILE H<40
570 IF SCREEN(V,H)=234 THEN J=J+1 ELSE 610
580 FOR D=-1 TO 1 STEP 2 : X1=V : X2=H
590 X1=X1+D : X2=X2+1 : IF SCREEN(X1,X2)=234 THEN LOCATE X1,X2 : PRINT " ";: J=J +1 : SOUND 74,0.5 : SOUND 32767,0.1 : GOTO 590
600 NEXT
610 LOCATE V,H-1 : PRINT " O";: H=H+1 : WEND
620 J1=J1+J
630 LOCATE 2*Z9+3,7+3*Q+B1 : COLOR -(2+Z9)*(B1=0),-(2+Z9)*(B1<>0) : G=J+48
640 IF J1=10 THEN IF PS THEN G=88 ELSE G=47
650 PRINT CHR$(G) : COLOR 0,2+Z9
660 LOCATE V,H-1 : PRINT " ";: RETURN
670 ' --> SCORING ROUTINES <--
680 IF J1=10 THEN IF PS THEN S=2 ELSE S=5
690 RETURN
700 T=T+J : IF J=10 THEN S=3 ELSE S=4
710 RETURN
720 T=T+J*2 : IF J<>10 THEN S=4
730 RETURN
740 T=T+J : IF J1=10 THEN S=5 ELSE S=1
750 RETURN
760 T=T+J : IF J=10 THEN S=2 ELSE S=1
770 RETURN
1000 ' --> PIN DATA <--
1001 DATA 234,31,29,29,234,31,29,29,234,28
1002 DATA 234,31,29,29,29,29,234,28,234,31
1003 DATA 29,29,234,28,234,31,29,29,234,31,234
1 REM --FOUR-----------GRAPHIC DISPLAYS---------------------------------
2 REM --FROM CREATIVE COMPUTING MAGAZINE--------------------------------
3 REM --REVISED 10/12/84: G.West, Allendale SC 29810--------------------
5 SCREEN 0:WIDTH 80:COLOR 15,1,1
10 CLS:PRINT "THIS PROGRAM WILL DRAW FIGURES THAT ARE":PRINT "CALLED 'LISSAJOUS FIGURES.'":PRINT:PRINT "THOSE FIGURES ARE DRAWN BASED UPON THE NUMBER OF":PRINT "PEAKS YOU WISH TO HAVE AND THE NUMBER OF DEGREES"
11 PRINT "YOU WISH TO SHOW BETWEEN EACH PASS OF THE CURVE."
20 LOCATE 20,1:PRINT "PRESS <SPACE BAR> TO GO ON."
21 Y$=INKEY$:IF Y$<>" " THEN 21
30 SCREEN 1:KEY OFF:COLOR 1,1,1:CLS
40 PRINT "LISSAJOUS FIGURES"
50 PRINT:PRINT
55 PRINT "HOW MANY PEAKS DO YOU WANT THE":PRINT "CURVE TO DRAW?":PRINT:PRINT "TYPE ANY NUMBER BETWEEN 2 AND 50":PRINT "AND PRESS <ENTER>:";:INPUT " ",FREQ$
56 FREQ=VAL(FREQ$):IF FREQ<2 OR FREQ>50 THEN PRINT "TRY AGAIN.":PRINT:GOTO 55
57 PRINT:PRINT "100 DEGREES WILL CAUSE THE CURVES ":PRINT "TO BE ABOUT 1/2 INCH APART.":PRINT:PRINT "HOW MANY DEGREES DO YOU WISH TO USE?":PRINT "TYPE A NUMBER BETWEEN -360 AND 360":PRINT "AND PRESS THE <ENTER> KEY."
58 INPUT " ",PHASE
90 CLS:PRINT "WHILE THE CURVE IS BEING DRAWN, YOU CAN"
100 PRINT "PRESS THE <SPACE BAR> TO FREEZE THE"
110 PRINT "DISPLAY (AND AGAIN TO RE-START)."
115 PRINT:PRINT "IF, AT ANY TIME, YOU WANT TO QUIT,":PRINT "YOU CAN SIMPLY PRESS THE <E> KEY."
130 LOCATE 25,1
140 PRINT "PRESS ANY KEY TO START...";
150 IF INKEY$="" THEN 150
160 CLS
165 LINE (69,9)-(251,191),1,B
170 LOCATE 1,1:PRINT "1:";FREQ
180 LOCATE 3,1:PRINT PHASE
190 PRINT "DEGREES"
200 PI=3.1415926536#:FACTOR=180/PI
210 PHASE =PHASE/FACTOR
220 DEF FNX(Q)=160+90*SIN(Q)
230 DEF FNY(Q)=100+90*SIN(Q)
240 REM PLOT FIRST TWO POINTS
250 LINE (FNX(0),FNY(FREQ*PHASE))-(FNX(0.1),FNY(FREQ*(0.1+PHASE))),2
260 THETA=0.2
270 LINE -(FNX(THETA),FNY(FREQ*(THETA+PHASE))),2
280 THETA=THETA+0.05
290 Q$=INKEY$
300 IF Q$<>" " THEN 320
310 IF INKEY$="" THEN 310
320 IF Q$<>"e" AND Q$<>"E" THEN 270
330 LOCATE 24,1:PRINT "1) TO DO ANOTHER 2) END";
340 Q$=INKEY$
350 IF Q$="" THEN 340
360 IF Q$<>"1" AND Q$<>"2" THEN 340
361 IF Q$="1" THEN RUN 30 ELSE CLS:SCREEN 0:RUN "MENU.BAS"
1 ' --FIVE--------------MAXIT GAME--------------------------
1000 ' MAXIT FROM PET
1010 ' ADAPTED TO IPM PC BY PATRICK LEABO
1020 ' 3-20-82 TUCSON ARIZONA
1040 REM --REVISED 10/12/84: G.West, Allendale SC 29180-----
1050 REM
1090 SCREEN 0,1:WIDTH 40:COLOR 15,1,1:CLS:KEY OFF
1100 DEFINT A-Z:DATA 49,51,53,54,56,58,60,61
1110 RANDOMIZE TIMER
1120 FOR N= 0 TO 7:READ NT(N):NEXT
1140 DIM BD(7,7),AV(64)
1150 CLS:LOCATE 3,11:PRINT "THE GAME OF MAXIT"
1155 PRINT
1160 PRINT TAB(7);"DO YOU WANT INSTRUCTIONS ? ":PRINT TAB(9);"Y for YES or N for NO":GOSUB 3000:PRINT
1170 IF KS$= "Y" OR KS$="y" THEN GOSUB 2210
1175 CLS
1180 PRINT :PRINT "Choose from the list below:":PRINT:PRINT TAB(5);"1) PLAY THE COMPUTER":PRINT TAB(5);"2) PLAY ANOTHER HUMAN"
1181 PRINT:PRINT "Press the number for your choice.";
1182 GAME$=INKEY$:IF GAME$="" THEN 1182
1183 IF GAME$<>"1" AND GAME$<>"2" THEN 1182
1185 KS$=GAME$
1190 PRINT KS$:NP= VAL (KS$):PRINT
1200 IF NP= 1 THEN 1240
1210 IF NP< > 2 THEN 1180
1220 INPUT "WHAT IS YOUR NAME #1: ",P1$:P1$=LEFT$(P1$,7):GOSUB 4000:PRINT
1230 PRINT :INPUT "WHAT IS YOUR NAME #2: ",P2$:P2$=LEFT$(P2$,7):GOSUB 5000:PRINT :GOTO 1250
1240 P2$= "PCjr ":INPUT "WHAT IS YOUR NAME: ",P1$:GOSUB 4000:PRINT:P1$=LEFT$(P1$,7)
1250 CLS:LOCATE 2,16:PRINT "M A X I T":GOSUB 2360
1260 RANDOMIZE TIMER:MD= 1
1270 FOR K= 1 TO 64:AV(K)= K:NEXT
1280 FOR K= 64 TO 1 STEP -1:READ PC
1290 P1= 1+ INT(K* RND(1))
1300 J= AV(P1)- 1
1310 IF P1< K THEN FOR I= P1 TO K- 1:AV(I)= AV(I+ 1):NEXT
1320 I= INT(J/ 8):J= J- 8* I
1330 BD(I,J)= PC:GOSUB 1540:NT= J:GOSUB 1980
1340 NEXT K:RESTORE 1350:NT= 7:GOSUB 1980:GOSUB 1980:GOSUB 1980
1350 DATA 15,10,9,9,8,8,7,7,7,6,6,6
1360 DATA 5,5,5,5,4,4,4,4,3,3,3,3,3
1370 DATA 2,2,2,2,2,2,1,1,1,1,1
1380 DATA 0,0,0,0,0,0,-1,-1,-1,-1,-1
1390 DATA -2,-2,-2,-2,-3,-3,-3
1400 DATA -4,-4,-4,-5,-5,-6,-6
1410 DATA -7,-9,100
1420 S1= 0:S2= 0:GOSUB 2000
1430 REM PLAYER 1
1440 PL= 1:GOSUB 1630:IF FL= 0 THEN 1470
1450 REM PLAYER 2
1460 PL= 2:GOSUB 1630:IF FL< > 0 THEN 1430
1470 LOCATE 22,1:PRINT STRING$(39," ");:LOCATE 22,1:ON 2+ SGN (S2- S1)GOSUB 1510,1520,1530
1480 LOCATE 23,1:PRINT STRING$(39," ");:LOCATE 23,1:PRINT "DO YOU WANT TO PLAY AGAIN ?":PRINT "Y FOR YES OR N FOR NO";:C$="":WHILE C$="":C$=INKEY$:WEND:PRINT C$
1490 IF "Y"= C$ OR "y"=C$ THEN 1250
1500 RUN "menu.bas
1505 END
1510 PRINT P1$;" WON BY ";STR$ (S1- S2);" POINTS":PRINT :RETURN
1520 PRINT "IT'S A TIE !! ":RETURN
1530 PRINT P2$;" WON BY ";STR$ (S2- S1);" POINTS ":PRINT :RETURN
1540 REM DRAW BOARD POSITION I,J IN MODE MD (1=RED,2=BLACK)
1550 PC= BD(I,J)
1560 LOCATE I* 2+ 5,J*4+5
1570 IF MD= 2 THEN COLOR 1,7:GOTO 1590
1590 IF PC= 100 THEN COLOR 31:PRINT "**":COLOR 7:C1= I:C2= J:GOTO 1620
1600 IF PC= - 100 THEN COLOR 7,1:PRINT " ":GOTO 1620
1610 PRINT RIGHT$ (" "+ STR$ (PC),2)
1620 COLOR 7,1:RETURN
1630 IF PL= 2 THEN 1670
1640 FL= 600:FOR J= 0 TO 7:FL= FL+ BD(C1,J):NEXT
1650 IF FL= 0 THEN RETURN
1660 NM$= P1$:DX= 1:DY= 0:GOSUB 1700:RETURN
1670 FL= 600:FOR I= 0 TO 7:FL= FL+ BD(I,C2):NEXT
1680 IF FL= 0 THEN RETURN
1690 NM$= P2$:DX= 0:DY= 1:GOSUB 1700:RETURN
1700 Y= C1:X= C2:FX= 1
1705 IF PL = 2 THEN COLOR 1,7
1710 IF NP= 2 OR PL= 1 THEN 1730
1720 PRINT :GOSUB 1970:PRINT NM$;"'S TURN. ":GOSUB 2060:GOTO 1880
1730 GOSUB 1970:ON FX GOTO 1740,1750
1740 PRINT :GOSUB 1970:PRINT NM$;", YOUR TURN. ":PRINT :GOTO 1760
1750 PRINT " ":PRINT
1760 REM:PLAY "L64T200N70"
1770 C$=INKEY$:IF C$="" THEN 1770 ELSE KS=ASC(C$)
1775 IF C$=CHR$(27) THEN 1500
1780 IF C$< > " "THEN 1860
1790 OX= X:OY= Y
1800 Y= Y+ DY:IF Y> 7 THEN Y= 0
1810 X= X+ DX:IF X> 7 THEN X= 0
1820 PT= BD(Y,X):IF ABS (PT)= 100 THEN 1800
1830 MD= 1:I= OY:J= OX:GOSUB 1540
1840 MD= 2:I= Y:J= X:GOSUB 1540
1850 GOTO 1770
1860 IF C$<> CHR$(13) THEN 1770
1870 IF ABS(BD(Y,X))= 100 THEN 1770
1880 REM SCORE IT
1890 '
1900 IF NP=1 AND PL =2 THEN MD= 2:I= Y :J= X:GOSUB 1540:FOR DL = 1 TO 1500:NEXT
1905 GOSUB 1990:MD= 1:I= C1:J= C2:BD(I,J)= - 100:GOSUB 1540
1910 I= Y:J= X:PT= BD(I,J):BD(I,J)= 100:GOSUB 1540
1920 IF PL= 1 THEN S1= S1+ PT
1930 IF PL= 2 THEN S2= S2+ PT
1940 GOSUB 1970
1950 LOCATE 22,25:PRINT "LAST TAKEN:";PT;" ";
1960 GOSUB 2000:RETURN
1970 LOCATE 22,1:RETURN
1980 REM:PLAY "MNMFL64N=NT(NT);"
1981 RETURN
1990 REM:FOR N=49 TO 70 :PLAY "MBT255MLO3L64N=N;":NEXT
1991 RETURN
2000 GOSUB 1970
2010 LOCATE 21,1:ME$=P1$+"'S SCORE="+STR$ (S1)+" "+P2$+"'S SCORE="+STR$ (S2)+" ":ME$=LEFT$(ME$,40):PRINT ME$:RETURN
2020 REM SCREEN INSTRUCTIONS
2050 RETURN
2059 ' COMPUTER PLAYER ALGORITHM
2060 MT= - 100:GG= - 1:FOR A1= 0 TO 7:PC= BD(A1,C2):IF ABS (PC)= 100 THEN 2200
2070 MX= - 100:FOR A2= 0 TO 7
2080 IF A2< > C2 THEN PK= BD(A1,A2):IF PK< > - 100 AND PK> MX THEN MX= PK:SV= A
2090 NEXT A2
2100 IF MX< > - 100 THEN 2120
2110 IF PC> MT THEN MT= PC:GG= A1:GOTO 2200
2120 IF GG< 0 THEN GG= A1
2130 FOR A2= 0 TO 7:PQ= BD(A2,SV):IF PQ= - 100 OR A2= A1 THEN 2190
2140 MY= - 100:FOR A3= 0 TO 7:PW= BD(A2,A3):IF A3= SV THEN 2160
2150 IF ABS (PW)< > 100 AND PW> MY THEN MY= PW
2160 NEXT A3
2170 IF MY= - 100 THEN MY= 0
2180 DT= PC- MX+ PQ- MY:IF DT> MT THEN MT= DT:GG= A1
2190 NEXT A2
2200 NEXT A1:Y= GG:RETURN
2210 CLS:LOCATE 1,16:PRINT "M A X I T":PRINT
2220 PRINT "THE OBJECT OF MAXIT IS TO GET AS MANY"
2230 PRINT "POINTS AS POSSIBLE. TWO PLAYERS CAN"
2240 PRINT "PLAY AGAINST EACH OTHER, OR ONE AGAINST"
2250 PRINT "THE COMPUTER.":PRINT :PRINT
2260 PRINT "YOU GET POINTS BY MOVING A MARKER "
2270 PRINT " **"
2280 PRINT "TO A SPACE WITH A NUMBER IN IT. THE"
2290 PRINT "FIRST PLAYER CAN MOVE ONLY LEFT/RIGHT"
2300 PRINT "AND THE SECOND ONLY UP/DOWN. YOU"
2310 PRINT "INDICATE THE PLACE YOU WANT TO MOVE TO"
2320 PRINT "BY USING THE <SPACE BAR> TO POSITION"
2330 PRINT "YOURSELF, AND THEN PRESSING <ENTER> TO"
2340 PRINT "TAKE THE POINTS IN THAT SPACE."
2341 PRINT :PRINT "PRESS THE <SPACE BAR> TO GO ON."
2342 GO$=INKEY$:IF GO$="" THEN 2342
2343 IF GO$<>" " THEN 2342
2344 RETURN
2350 PLOT 8:RUN "menu.bas
2360 REM
2380 TOP$="╒═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╕"
2382 MD1$="│ │ │ │ │ │ │ │ │"
2384 MD2$="╞═══╪═══╪═══╪═══╪═══╪═══╪═══╪═══╡"
2386 BOT$="╘═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╛"
2387 COLOR 14
2390 LOCATE 4,4:PRINT TOP$
2400 FOR Y=5 TO 17 STEP 2:LOCATE Y,4:PRINT MD1$:LOCATE Y+1,4:PRINT MD2$:NEXT
2410 LOCATE 19,4:PRINT MD1$:LOCATE 20,4:PRINT BOT$
2415 LOCATE 24,1:COLOR 1,7:PRINT " MOVE MARKER WITH <SPACE BAR>; ";:LOCATE 25,1:PRINT " TAKE POINTS WITH <ENTER> KEY. ";:COLOR 7,1
2440 GOSUB 2020
2450 RETURN
3000 KS$="":WHILE KS$="":KS$=INKEY$:WEND:KS=ASC(KS$):RETURN
4000 REM ----------------CAPITALIZE NAME OF PLAYER 1--------------------
4010 LP1$=LEFT$(P1$,1):LP1=ASC(LP1$):IF LP1<65 OR LP1>91 THEN LP1=LP1-32
4020 LP1$=CHR$(LP1):LNP1=LEN(P1$):LNP1=LNP1-1
4030 RP1$=RIGHT$(P1$,LNP1):P1$=LP1$+RP1$
4040 RETURN
5000 REM ----------------CAPITALIZE NAME OF PLAYER 2--------------------
5010 LP2$=LEFT$(P2$,1):LP2=ASC(LP2$):IF LP2<65 OR LP2>91 THEN LP2=LP2-32
5020 LP2$=CHR$(LP2):LNP2=LEN(P2$):LNP2=LNP2-1
5030 RP2$=RIGHT$(P2$,LNP2):P2$=LP2$+RP2$
5040 RETURN
6000 LOCATE 24,1:COLOR 1,7:PRINT "MOVE MARKER WITH <SPACE BAR>; ";:LOCATE 25,1:PRINT "TAKE POINTS WITH <ENTER> KEY. ";:COLOR 7,1
1 REM --SIX-------------OTHELLO GAME---------------------------------
1000 REM OTHELLO -- PET VERSION -- MODIFIED BY PATRICK LEABO
1010 REM TUCSON, ARIZONA
1020 REM 3-82
1025 REM NOT DONE YET BUT HAVE FUN -- PLEASE ADD A GOOD ALGORITHM TO IT
1026 REM
1027 REM --REVISED 10/12/84: G.West, Allendale SC 29810--------------
1028 RANDOMIZE TIMER
1030 WIDTH 80:SCREEN 0,1:COLOR 7,1,1:KEY OFF
1035 DEF SEG=0:POKE 1047,64
1040 E$="":FOR I= 1 TO 39:E$= E$+ " ":NEXT
1050 D$= CHR$ (11)
1060 FOR I= 1 TO 20:D$= D$+ CHR$ (10):NEXT
1070 XL= 3:XH= 6:YL= 3:YH= 6
1080 DIM A(9,9),I4(7),J4(7),D$(2),P$(2):Z0= 0
1090 CLS:LOCATE 1,20:PRINT "GREETINGS FROM OTHELLO"
1100 CLS:PRINT:PRINT "OTHELLO is a game played on a board with 8 rows":PRINT "lettered A through H and 8 columns":PRINT "numbered 1 through 8. Players move by giving":PRINT "the letter and the number for the space in which"
1101 PRINT "they wish to put their markers.":PRINT:PRINT "A marker must be placed so that at least one":PRINT "of the other player's markers is trapped":PRINT "between the markers of the player who moves."
1102 PRINT:PRINT "When a player traps another player's markers,":PRINT "those marker's color is changed to match":PRINT "that of the player who made the move. The player":PRINT "with the most markers when the board is filled":PRINT "is the winner."
1103 PRINT:PRINT "Markers may be trapped in any up, down, or diagonal":PRINT "direction.":PRINT:PRINT "A player may skip a move by typing `0A' for":PRINT "his or her move."
1104 PRINT:PRINT "Press the <SPACE BAR> to go on."
1105 GO$=INKEY$:IF GO$="" THEN 1105
1106 IF GO$<>" " THEN 1105
1107 CLS
1240 PRINT :PRINT "HOW MANY PLAYERS (1 OR 2)? ";:GOSUB 3220:IF VAL (X$)= 0 OR VAL (X$)> 2 THEN 1240
1250 PRINT X$:NP= VAL (X$):PRINT
1260 IF NP= 2 THEN PRINT "PLAYER #1 GOES FIRST WHEN THE PLAY STARTS"
1270 INPUT "ENTER PLAYER 1'S NAME: ";P$(1):P$(1)= P$(1)+" "+ CHR$(2)
1280 IF NP= 2 THEN INPUT "ENTER PLAYER 2'S NAME: ";P$(2):P$(2)= P$(2)+" "+CHR$(1)
1290 IF NP= 2 THEN 1350
1300 PRINT :PRINT "SHOULD I PLAY MY BEST?";
1310 S2= 0:S4= 0:S5= 0:P$(2)= "IBM PC"
1320 GOSUB 3220:IF X$= "N"THEN PRINT "NO":GOTO 1350
1330 PRINT "YES"
1340 S2= 2:S4= 1:S5= - 2
1350 B= - 1:W= 1:PT= 0
1354 CLS
1355 PRINT "PLEASE WAIT WHILE THE BOARD IS BUILT."
1360 D$(B+ 1)= "RED":N$(B+ 1)= "RED "
1370 D$(0+ 1)= "BLANK"
1380 D$(W+ 1)= "BLUE":N$(W+ 1)= "BLUE"
1390 FOR K= 0 TO 7
1400 READ I4(K),J4(K)
1410 NEXT
1420 FOR I= 0 TO 9:FOR J= 0 TO 9
1430 A(I,J)= 0
1440 NEXT J,I
1450 A(4,4)= W:A(5,5)= W
1460 A(4,5)= B:A(5,4)= B
1470 SC(1)= 2:SC(2)= 2:N1= 4:Z= 0
1480 C= B:H= W
1490 FOR NN= 1 TO 3000:NEXT :CLS
1500 GOSUB 3300
1510 IF NP= 2 THEN 2020
1520 PRINT D$"DO YOU WANT TO GO FIRST ? ";
1530 PT= 1:GOSUB 3220:IF X$= "Y"THEN PRINT "YES":PT= 0:GOTO 2020
1540 PT= 1:PRINT "NO":PRINT D$E$D$"OK, I AM THINKING!"
1550 REM COMPUTERS MOVE
1560 IF NP= 1 THEN TIME$="0:0:0":GOTO 1600
1570 IF PT= 2 THEN B1= - 1:I3= 0:J3= 0:T1= C:T2= H
1580 IF PT= 1 THEN B1= - 1:I3= 0:J3= 0:T1= H:T2= C
1590 GOTO 2030
1600 PT= PT+ 1:IF PT> 2 THEN PT= 1
1610 B1= - 1:I3= 0:J3= 0:T1= C:T2= H
1620 FOR I= YL TO YH:FOR J= XL TO XH
1630 IF A(I,J)< > 0 THEN 1790
1640 GOSUB 2740
1650 IF F1= Z0 THEN 1790
1660 U= - 1
1670 GOSUB 2780
1680 IF S1= Z0 THEN 1790
1690 IF (I= 1)OR (I= 8)THEN S1= S1+ S2
1700 IF (J= 1)OR (J= 8)THEN S1= S1+ S2
1710 IF (I= 2)OR (I= 7)THEN S1= S1+ S5
1720 IF (J= 2)OR (J= 7)THEN S1= S1+ S5
1730 IF (I= 3)OR (I= 6)THEN S1= S1+ S4
1740 IF (J= 3)OR (J= 6)THEN S1= S1+ S4
1750 IF S1< B1 THEN 1790
1760 IF S1> B1 THEN 1780
1770 IF RND (1)> 0.5 THEN 1790
1780 B1= S1:I3= I:J3= J
1790 NEXT J,I
1800 IF B1> 0 THEN 1880
1810 IF S5= 0 THEN 1840
1820 IF NP= 1 THEN S5= 0:GOTO 1610
1830 S5= 0:GOTO 1550
1840 S5= 0:PRINT D$ E$ D$"I HAVE TO FORFEIT MY MOVE"
1850 IF Z= 1 THEN 2430
1860 Z= 1
1870 GOTO 2020
1880 Z= 0
1890 PRINT D$E$D$"I WILL MOVE TO ";RIGHT$ (STR$ (I3),1)" "CHR$ (J3+ 64)
1900 GOSUB 3090 REM ▬
1910 I= I3:J= J3:U= 1
1920 GOSUB 2780
1930 SC(PT)= SC(PT)+ S1+ 1
1940 OP= PT+ 1:IF OP= 3 THEN OP= 1
1950 SC(OP)= SC(OP)- S1
1960 N1= N1+ 1
1970 PRINT D$E$D$"THAT GIVES ME ";
1980 PRINT S1;
1990 PRINT " OF YOUR PIECES"
2000 GOSUB 3390
2010 IF SC(OP)= 0 OR N1= 64 THEN 2430
2020 T1= H:T2= C
2030 PT= PT+ 1:IF PT> 2 THEN PT= 1
2040 IF PT= 2 THEN B1= - 1:I3= 0:J3= 0:T1= C:T2= H
2050 IF PT= 1 THEN B1= - 1:I3= 0:J3= 0:T1= H:T2= C
2070 TIME$="0:0:0":PRINT D$;E$D$;P$(PT)", INPUT YOUR MOVE ! ";:GOSUB 3020
2080 IF (I< 0)OR (J< 0)OR (J> 8)OR (I> 8)THEN 2040
2090 IF I< > 0 THEN 2160
2100 PRINT D$;E$D$;"ARE YOU FORFEITING YOUR TURN ? ";
2110 GOSUB 3220:IF X$< > "Y"THEN PRINT "NO":GOTO 2040
2120 PRINT "YES"
2130 IF Z= 1 THEN 2430
2140 Z1= 1
2150 GOTO 1550
2160 IF A(I,J)= 0 THEN 2190
2170 PRINT D$"SORRY,SQUARE OCCUPIED; TRY AGAIN"
2180 GOTO 2270
2190 GOSUB 2740
2200 IF F1= 1 THEN 2230
2210 PRINT D$""E$D$"SORRY,NOT NEXT TO MY PIECES; TRY AGAIN"
2220 GOTO 2270
2230 U= - 1
2240 GOSUB 2780
2250 IF S1> 0 THEN 2290
2260 PRINT D$""E$D$"SORRY,DOESN'T FLANK A ROW; TRY AGAIN"
2270 PRINT E$D$:BEEP:FOR N=1 TO 2000:NEXT
2280 GOTO 2040
2290 Z= 0:GOSUB 3150
2300 PRINT D$""E$D$""P$(PT)" THAT GIVES YOU ";
2310 PRINT S1;
2320 PRINT " PIECE";:IF S1> 1 THEN PRINT "S";
2330 PRINT :PRINT E$D$
2340 U= 1
2350 GOSUB 2780
2360 SC(PT)= SC(PT)+ S1+ 1
2370 OP= PT+ 1:IF OP= 3 THEN OP= 1
2380 SC(OP)= SC(OP)- S1
2390 N1= N1+ 1
2400 GOSUB 3390
2410 IF SC(OP)= 0 OR N1= 64 THEN 2430
2420 GOTO 1550
2430 PRINT D$;E$:PRINT E$:PRINT E$
2440 PRINT D$;E$D$;P$(1)" HAS "SC(1)" PIECES ";
2450 PRINT P$(2)" HAS "SC(2)" PIECES"
2460 IF SC(1)= SC(2)THEN 2510
2470 IF NP= 2 THEN 2540
2480 IF SC(1)> SC(2)THEN 2530
2490 PRINT "SORRY, I WON THAT ONE.";
2500 GOTO 2540
2510 PRINT "ITS A TIE !!";
2520 GOTO 2680
2530 PRINT "YOU WON!!!!!!";
2540 C1= SC(1)- SC(2)
2550 IF C1> 0 THEN 2570
2560 C1= - C1
2570 C1= (64* C1)/ N1
2580 PRINT "THAT WAS A ";
2590 IF C1< 11 THEN 2670
2600 IF C1< 25 THEN 2660
2610 IF C1< 39 THEN 2650
2620 IF C1< 53 THEN 2640
2630 PRINT "PERFECT GAME":GOTO 2680
2640 PRINT "WALKAWAY":GOTO 2680
2650 PRINT "FIGHT":GOTO 2680
2660 PRINT "HOT GAME":GOTO 2680
2670 PRINT "SQUEAKER"
2680 PRINT
2690 PRINT "DO YOU WANT TO PLAY ANOTHER GAME ? ";:BEEP
2700 GOSUB 3220:IF X$= "Y"THEN PRINT "YES";:RUN 1040
2710 PRINT "NO"
2720 PRINT "THANKS FOR PLAYING."
2730 RUN "menu.bas
2740 F1= Z0:FOR I1= - 1 TO 1:FOR J1= - 1 TO 1:IF A(I+ I1,J1+ J)= T2 THEN 2760
2750 NEXT J1,I1:RETURN
2760 F1= 1:RETURN
2770 REM CHECK FOR COUNT & FLANKING PIECES
2780 S1= Z0:FOR K= 0 TO 7
2790 S3= Z0:I5= I4(K):J5= J4(K):I6= I+ I5:J6= J+ J5
2800 IF A(I6,J6)< > T2 THEN 2910
2810 S3= S3+ 1:I6= I6+ I5:J6= J6+ J5
2820 IF A(I6,J6)= T1 THEN 2850
2830 IF A(I6,J6)= Z0 THEN 2910
2840 GOTO 2810
2850 S1= S1+ S3
2860 IF U< > 1 THEN 2910
2870 I6= I:J6= J
2880 FOR K1= 0 TO S3
2890 A(I6,J6)= T1:I6= I6+ I5:J6= J6+ J5
2900 NEXT K1
2910 NEXT K
2920 RETURN
2930 REM ¶SET SEARCH LIMITS FOR COMPUTER MOVE▬
2940 IF I= YL THEN YL= YL- 1:IF YL< 1 THEN YL= 1
2950 IF I= YH THEN YH= YH+ 1:IF YH> 8 THEN YH= 8
2960 IF J= XL THEN XL= XL- 1:IF XL< 1 THEN XL= 1
2970 IF J= XH THEN XH= XH+ 1:IF XH> 8 THEN XH= 8
2980 LOCATE 1,1:PRINT TI$;" "
2990 RETURN
3000 REM INPUT SUBROUTINE5"
3010 PRINT D$E$"BAD MOVE; TRY AGAIN."
3020 I= - 1:J= - 1
3030 FOR K= 1 TO 2
3040 GOSUB 3220
3050 G= ASC (X$)
3060 IF 47< G AND G< 58 THEN I= G- 48:PRINT ""X$" ";
3070 IF 64< G AND G< 74 THEN J= G- 64:PRINT ""X$" ";
3080 NEXT :PRINT :RETURN
3090 REM BLINK COMPUTERS MOVE5
3100 LOCATE 2* J3+ 3,4* I3+ 1:COLOR 26,1:PRINT CHR$(1):COLOR 7,1,1
3110 I= I3:J= J3
3120 GOSUB 2940
3130 FOR NN= 1 TO 1000:NEXT
3140 RETURN
3150 REM BLINK PLAYERS MOVE5
3160 IF PT= 2 THEN CC= 0
3170 IF PT= 1 THEN CC= 2
3180 LOCATE 2* J+ 3,4* I+ 1:COLOR 26,1:PRINT CHR$(2):COLOR 7,1,1
3190 GOSUB 2940
3200 FOR NN= 1 TO 500:NEXT
3210 RETURN
3220 REM INPUT STATEMENTS
3240 X$=INKEY$:IF X$="" THEN 3240 ELSE IF X$=CHR$(27) THEN RUN "MENU",1000 ELSE RETURN
3250 REM PRINT SCORE
3260 LOCATE 5,36:PRINT CHR$(2);RIGHT$ (" "+ STR$ (SC(1)),3);" ":LOCATE 19,36:PRINT CHR$(1);RIGHT$ (" "+ STR$ (SC(2)),3);" ";:LOCATE 1,1
3270 RETURN
3280 REM BOARD DATA
3290 DATA 0,1,-1,1,-1,0,-1,-1,0,-1,1,-1,1,0,1,1
3300 REM ▬ OTHER OTHELLO BOARD
3310 CLS:LOCATE 1,10:PRINT "O T H E L L O"
3320 LOCATE 3,5:PRINT"1 2 3 4 5 6 7 8"
3330 FOR N=1 TO 8:LOCATE 3+2*N,1:PRINT CHR$(N+64):NEXT
3340 LOCATE 4,3 :PRINT"╔═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╗":FOR N=1 TO 13 STEP 2
3350 LOCATE 4+N,3:PRINT"║ ║ ║ ║ ║ ║ ║ ║ ║"
3360 LOCATE 5+N,3:PRINT"╠═══╬═══╬═══╬═══╬═══╬═══╬═══╬═══╣":NEXT
3370 LOCATE 4+N,3:PRINT"║ ║ ║ ║ ║ ║ ║ ║ ║"
3380 LOCATE 5+N,3:PRINT"╚═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╝"
3390 FOR I= 1 TO 8
3400 FOR J= 1 TO 8:LOCATE 2* J+ 3,4* I+ 1:FACE= (A(I,J)+ 3)/2
3410 IF FACE = 1.5 THEN PRINT" " ELSE PRINT CHR$(FACE)
3420 NEXT J,I
3430 GOSUB 3250
3440 RETURN
3450 END
1 REM --SEVEN---------WORDIES-------------------------------------
1000 REM WORDIES - a word problem generating program
1010 REM by Michail Potts Printed in Creative Computing 10-81
1020 REM PO Box 88 Caspar Ca 95420 (707) 964 0375
1030 REM ADAPTED TO CCII BY PATRICK LEABO
1040 REM ADAPTED TO IBM PC BY PATRICK LEABO
1042 REM ADAPTED FOR PCjr BY G.WEST, ALLENDALE SC 29810 10/10/84
1043 RANDOMIZE TIMER
1044 DEF SEG=0:POKE 1047,0
1045 ON ERROR GOTO 5000
1050 POKE 106,0:SCREEN 0,1:KEY OFF:WIDTH 80:COLOR 15,1,1:CLS
1055 DEFINT A-Z:COMMON MENU
1060 DIM T$(47),M(42,8),O(14),XP(15),YP(15)
1080 SP$= " "
1090 SS$= " "
1100 GOTO 1120
1110 PRINT :CLS:PRINT TAB( 20)"*** WORDIES *** ":RETURN
1120 GOSUB 1110:PRINT TAB( 12)"A word-problem generating game":PRINT :PRINT
1130 PRINT "Word problems will be created with the information":PRINT "that you provide when asked."
1135 PRINT
1150 PRINT TAB(6);"1) ADDITION":PRINT TAB(6);"2) SUBTRACTION":PRINT TAB(6);"3) MULTIPLICATION":PRINT TAB(6);"4) DIVISION":PRINT
1160 PRINT TAB( 6);:PRINT "PRESS THE NUMBER FOR YOUR CHOICE! ";:WHILE I$="":I$=INKEY$:WEND:NL= VAL (I$):PRINT NL:PRINT :PRINT
1170 IF NL<1 THEN NL=4
1180 IF NL> 4 THEN NL= 4
1181 PRINT "This program will make up problems using the numbers you give it.":PRINT "It cannot use a number larger that 443 or smaller than 0; so don't":PRINT "use any of those. Type the largest number you would like to work with"
1182 PRINT "and press the <ENTER> key."
1190 PRINT:PRINT TAB( 10);:INPUT "Largest number in any problem";NMX
1200 IF NMX> 443 THEN PRINT "443 IS THE MAXIMUM. TRY AGAIN!":GOTO 1190
1210 IF NMX< 1 THEN PRINT "Greater than zero please. TRY AGAIN!":GOTO 1190
1211 CLS
1212 PRINT "In the problems you will do, we will use things that you":PRINT "give us. Whenever, the computer asks for an object or a name,":PRINT "type that object or name and press the <ENTER> key.":PRINT
1220 PRINT :PRINT TAB( 15)"I need 5 random objects:":PRINT :FOR N= 0 TO 4
1230 PRINT TAB( 20);N+1;":";
1231 INPUT " ",RO$(N)
1250 NEXT :GOTO 1280
1260 NL= 4:RO$(1)= "snail":RO$(2)= "bookend":RO$(3)= "wood stove":RO$(4)= "rocking chair"
1270 RO$(5)= "tractor":NMX= 9
1280 P1$= "Kelly":PS$= "her ":SX$= "she"
1290 AR= 0:WA= 0:NR= 0:GOSUB 1110:PRINT " This program makes up word problems ...with your help. The"
1300 PRINT "screen will ask for names of people and for things to use":PRINT "in the problems it creates."
1310 PRINT :PRINT " The computer will reject an answer with more than":PRINT "16 characters, OR that it thinks ";
1320 PRINT "is nonsense.":PRINT :PRINT " Have a good time. Press ENTER when you're ready to go."
1330 I$= INKEY$:IF I$="" THEN 1330
1340 IF ASC(I$)<> 13 THEN 1330
1350 GOSUB 1110
1360 PRINT "Please type your name and press <ENTER>:":PRINT "(Use a capital letter followed by lowercase letters.)"
1370 INPUT " ",T$
1380 A$= T$:GOSUB 2880:IF CF= 1 THEN 1410
1390 PRINT :PRINT "Whatever you want me to call you, you're a person, and the":PRINT "names of persons begin with a ";
1400 PRINT "CAPITAL letter. Remember the":PRINT "SHIFT key, and please tell me again.":PRINT :GOTO 1360
1410 FP= 0:GOSUB 1490:N= INT(RND(1)* 3)+ 1:ON N GOTO 1420,1440,1440:REM FLOW CONTROL - GET OPER TYPE
1420 GOSUB 3010:IF NF= 0 THEN 1440:REM GET NAME(S)
1430 PRINT "I detect nonsense! Please try again.":PRINT :GOTO 1420
1440 GOSUB 1530:REM GET NUMBERS
1450 GOSUB 3130:REM GET OBJECT NAME, PRINT FIRST PARA
1460 IF NQ< > CA THEN 1680
1470 K9= 0:LOCATE 18,1:PRINT "----------------------------------------------------------" :PRINT TAB(12);"That's RIGHT, ";A$;".":GOTO 2230:REM RECORD KEEPING
1480 GOTO 1410
1490 REM SETS OPERATION TYPE5
1500 NO= INT(NL* RND(1)+ 1):REM 1=+ 2=- 3=* 4=/
1510 RETURN
1520 ON NO GOTO 1530,1530,1540,1540:REM NUMBER CRUNCHING
1530 N1= INT(NMX* RND(1)+ 1):ON NO GOTO 1570,1580,1520,1520
1540 N1= INT(NMX/ 2* RND(1)):N2= INT(NMX/ 3* RND(1)):IF N2= 0 THEN N2= 1
1550 ON NO GOTO 1520,1520,1600,1560
1560 N1= N1* N2:GOTO 1600
1570 N2= INT(NMX* RND(1)):GOTO 1600
1580 N2= INT(N1* RND(1)):IF N2> 1 THEN 1600
1590 N2= INT(N2+ 0.5):GOTO 1600
1600 RETURN
1610 PRINT "I need the name of an object.";
1615 INPUT " ",T$
1630 ON NF GOTO 1640,1610
1650 XN= INT(3* RND(1)+ 1):ON NX GOTO 1660,1670,1660
1660 OB$= T$
1670 N= INT(5* RND(1)):RO$(N)= T$:RETURN
1675 PRINT "----------------------------------------------------------"
1680 PRINT:PRINT:PRINT "----------------------------------------------------------"
1682 WA= WA+ 1:PRINT :PRINT " -<WRONG ANSWER>- ":PRINT "DO YOU WANT HELP ? ":PRINT "Y for YES or N for NO."
1685 PRINT "----------------------------------------------------------"
1690 I$= INKEY$:IF I$="" THEN 1690
1700 IF I$< > "N" THEN 1730
1710 K9= K9+ 1:IF K9= 3 THEN PRINT :PRINT "Sorry, you only get three trys.":GOTO 1740
1720 WA= WA- 1:PRINT :PRINT "********************************************":GOSUB 3680:GOTO 1460
1730 PRINT " ...OKay:"
1740 PRINT " What number do you start with";:INPUT NQ:IF NQ= N1 THEN 1760
1750 FP= FP+ 1:PRINT "No. Read the first part again carefully:":PRINT " ";SQ$:GOTO 1740
1760 PRINT " What is the second number";:INPUT NQ:IF NQ= N2 THEN 1780
1770 FP= FP+ 10:PRINT "No. Read the second part again carefully:":PRINT " ";S2$:GOTO 1760
1780 PRINT " What do you do with the numbers: add";:IF NL= 1 THEN 1820
1790 PRINT ", subtract";:IF NL= 2 THEN 1820
1800 PRINT ",":PRINT " multiply";:IF NL= 3 THEN 1820
1810 PRINT ",or divide";
1820 PRINT "?"
1830 I$= INKEY$:IF I$="" THEN 1830
1840 IF (NO= 1)* (I$= "Y") THEN PRINT "A";:GOTO 1900
1850 IF I$= "A" OR I$="a" OR I$="y" OR I$="Y" THEN 1900
1860 IF I$= "S" OR I$="s" THEN 1910
1870 IF I$= "M" OR I$="m" THEN 1920
1880 IF I$= "D" OR I$="d" THEN 1930
1890 PRINT "Try that, again, ";A$;".":GOTO 1830
1900 PRINT "Add":NQ= 1:GOTO 1940
1910 PRINT "Subtract":NQ= 2:GOTO 1940
1920 PRINT "Multiply":NQ= 3:GOTO 1940
1930 PRINT "Divide":NQ= 4
1940 IF NQ= NO THEN 2030
1950 FP= FP+ (NQ* 100):PRINT "No. To do this problem, you need to ";:ON NO GOTO 1960,1970,1980,2000
1960 PRINT " add.":PRINT "The clue: ";V$;" more.":PRINT "Don't you add";:GOTO 2010
1970 PRINT " subtract.":PRINT "The key words: ";V$:PRINT "So you subtract, right?":GOTO 2010
1980 PRINT " multiply.":PRINT "The words ";CHR$(34);V$;CHR$(34);" are the key.":PRINT "If you see equal groups, "
1990 PRINT "and you need to know how many they":PRINT "total, isn't it easier to multiply";:GOTO 2010
2000 PRINT "divide.":PRINT "You need to know how many ";V$;",":PRINT "so you divide";N1;" into";N2;" groups ..Right";
2010 INPUT Q$:IF LEFT$(Q$,1)= "Y" THEN 2030
2020 PRINT "Well, ";A$;", I think the answer is YES."
2030 PRINT " So do this problem:";" ";N1;" ";:ON NO GOTO 2040,2050,2060,2070
2040 CA= N1+ N2:PRINT "+ ";:GOTO 2080
2050 CA= N1- N2:PRINT "- ";:GOTO 2080
2060 CA= N1* N2:PRINT "* ";:GOTO 2080
2070 CA= N1/ N2:PRINT "/ ";
2080 PRINT N2;" = ?";
2090 MF= 0:GOSUB 2930
2100 PRINT I$;:T$= I$:GOSUB 2930
2110 IF MF= 1 THEN 2130
2120 T$= T$+ I$:PRINT I$;:GOSUB 2930:GOTO 2110
2130 NQ= VAL (T$):IF NQ= CA THEN 2190
2140 PRINT :PRINT :PRINT " You need to work on your ";:ON NO GOTO 2150,2160,2170,2180 REM 5
2150 PRINT "addition ";:FP= FP+ 1000:GOTO 2200
2160 PRINT "subtraction ";:FP= FP+ 2000:GOTO 2200
2170 PRINT "multiplication ";:FP= FP+ 3000:GOTO 2200
2180 PRINT "division ";:FP= FP+ 4000:GOTO 2200
2190 PRINT :PRINT "Yes, you have it now!!";:GOTO 2220
2200 PRINT "facts."
2210 PRINT "The correct answer is ";CA;"."
2220 FOR N= 0 TO 2000:NEXT :NH= NH+ 1:GOTO 2290
2230 AR= AR+ 1:PRINT TAB(11);AR;" right answer";:IF AR= 1 THEN 2250
2240 PRINT "s";
2250 I= 0:PRINT " so far.":PRINT
2260 PRINT " PRESS <ENTER> TO CONTINUE"
2270 PRINT" any other key to quit."
2275 PRINT "----------------------------------------------------------"
2280 I$=INKEY$:IF I$ = "" THEN 2280 ELSE IF I$<> CHR$(13) THEN 2550
2290 ON NO GOTO 2300,2310,2320,2330
2300 OP$= "+":GOTO 2340
2310 OP$= "-":GOTO 2340
2320 OP$= "*":GOTO 2340
2330 OP$= "/"
2340 NN=LEN(OB$):NN=20-NN:R$(NR)=OB$+"s :"+LEFT$(SP$,NN)+STR$(N1)+OP$+STR$(N2)+" ="+STR$(CA)
2350 IF FP= 0 THEN 2370
2360 R$(NR)= R$(NR)+ " <"+ STR$(FP)
2370 IF NR= 9 THEN 2390
2380 NR= NR+ 1:PRINT "==============================================================":GOTO 1410
2390 NT= 9
2400 CLS:PRINT :PRINT "This is what you've done.":PRINT
2410 T$= "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%":GOSUB 2990
2430 T$= "":GOSUB 2990
2440 T$= A$+ " has gotten"+ STR$(AR)+ " right,"+ STR$(WA)+ " wrong,":GOSUB 2990
2450 IC=INT(100* (AR/ (AR+ WA))):T$= "for a score of"+ STR$(IC)+ "% ":IF IC< 95 THEN 2470
2460 T$= T$+ "VERY "
2470 IF IC< 90 THEN 2490
2480 T$= T$+ "WELL DONE, "+ A$+"."
2490 GOSUB 2990:T$="":GOSUB 2990:T$= "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%":GOSUB 2990
2500 PRINT :PRINT"Press ENTER for more":PRINT "or Q to quit."
2510 I$=INKEY$:IF I$="" THEN 2510 ELSE IF I$< > "Q" AND I$ <> "q" THEN 2540
2520 PRINT " It's been a pleasure doing business with you, ";A$
2530 PRINT "Please come again.":FOR N= 1 TO 1000:NEXT :RUN "MENU.BAS"
2540 CLS:FOR NR= 0 TO 9:R$(NR)= "":NEXT :NR= 0:GOTO 1410
2550 PRINT :PRINT "Quitting time, you say. Good.":NT= NR- 1:GOTO 2400
2560 REM
2570 REM 2 KEYBOARD5
2580 REM
2585 DEF SEG=0:POKE 1047,0
2590 NN= LEN(OB$):NN= 20- NN:R$(NR)= OB$+ "s :"+ LEFT$(SP$,NN)+ STR$(N1)+ OP$+ STR$(N2)+ " ="+ STR$(CA)
2600 T$= "":PRINT ">";
2610 I$= INKEY$:IF I$=""THEN 2610
2620 I= ASC(I$):IF (I> 31)* (I< 65) THEN 2670
2630 IF I> 96 THEN 2660
2640 IF I< 32 THEN 2610
2650 I= I+ 32:GOTO 2670
2660 I= I- 32
2670 PRINT CHR$(I);
2680 T$= T$+ CHR$(I):GOTO 2610
2690 IF I= 8 THEN 2720
2700 IF I= 13 THEN 2750
2710 GOTO 2610
2720 PRINT CHR$(I);:BS= LEN(T$)- 1:IF BS< 1 THEN 2740
2730 T$= LEFT$(T$,BS):GOTO 2610
2740 T$= "":GOTO 2610
2750 NF= 0:LT= LEN(T$):IF LT< 17 THEN 2770
2760 PRINT :PRINT "That's too long for my memory. Please try again.":NF= 2:GOTO 2870
2770 V$(1)= "a":V$(2)= "e":V$(3)= "i":V$(4)= "o":V$(5)= "u"
2780 FOR K= 1 TO LT:FOR J= 1 TO 5:Q$= MID$ (T$,K,1):IF Q$= V$(J)THEN 2810
2790 NEXT J,K
2800 GOTO 2820
2810 NF= NF+ 1:GOTO 2790
2820 IF LT< 5 THEN 2840
2830 IF NF< INT(LT/ 4) THEN NF= 1:GOTO 2870
2840 IF NF> 0 THEN 2860
2850 NF= 1:GOTO 2870
2860 NF= 0
2870 PRINT :RETURN
2880 REM 2CHECKS FOR CAPITALS5
2885 IF T$="" THEN 2920
2890 T$= LEFT$(T$,1):IF ASC(T$)< 90 THEN 2910
2900 CF= 0:GOTO 2920
2910 CF= 1
2920 RETURN
2930 I$= INKEY$:IF I$="" THEN 2930
2940 I= ASC(I$):IF (I> 47)* (I< 58) THEN 2980
2950 IF I= 13 THEN 2970
2960 GOTO 2930
2970 MF= 1
2980 RETURN
2990 PRINT T$:RETURN
3000 REM STORY GENERATION
3010 PRINT "I need the name of a person. ";
3015 INPUT " ",T$
3030 ON NF GOTO 3040,3010
3050 P1$= T$:GOSUB 2880:IF CF= 1 THEN 3070
3060 PRINT "The names of persons begin with capital letters.":PRINT "Remember the SHIFT key. Please try again.":GOTO 3010
3070 PRINT "Is ";P1$+ " a he or a she? ";
3075 INPUT " ",T$
3076 IF T$<>"he" AND T$<>"she" THEN 3070
3077 SX$=T$:IF SX$="he" THEN 3110
3080 IF SX$= "she" THEN 3100
3090 PRINT "I detect nonsense. I don't know any questions about ":PRINT SX$;",s anyway. Please try again.":GOTO 3070
3100 PS$= "her ":GOTO 3120
3110 PS$= "his "
3120 RETURN
3130 N= INT(20* RND(1))
3140 ON N GOTO 3260,3160,3270,3170,3260,3180,3270,3190,3260,3200,3270,3210,3260,3220,3270,3230
3150 ON N GOTO 3260,3240,3260,3250
3160 OB$=RO$(1):GOTO 3280
3170 OB$=RO$(2):GOTO 3280
3180 OB$=RO$(3):GOTO 3280
3190 OB$=RO$(4):GOTO 3280
3200 OB$=RO$(5):GOTO 3280
3210 OB$=RO$(6):GOTO 3280
3220 OB$=RO$(7):GOTO 3280
3230 OB$=RO$(8):GOTO 3280
3240 OB$=RO$(9):GOTO 3280
3250 OB$=RO$(10):GOTO 3280
3260 GOSUB 1610:IF OB$< > "" THEN 3280
3270 N= INT(5* RND(1)):OB$= RO$(N)
3280 GOSUB 1110:PRINT "-------------------------";"(";AR+ WA+ 1;" )";
3290 PRINT "---------------------------":PRINT :ON NO GOTO 3300,3490,3690,3980
3300 CA= N1+ N2:N= INT(1+ 5* RND(1)):ON N GOTO 3310,3350,3380,3420,3450
3310 QU$= "does "+ P1$:V$= SX$+ " takes"+ STR$ (N1)+ ", then finds"+ STR$ (N2):S1$= P1$+ " needs something "
3320 S1$= S1$+ "special at school today,"+CHR$(13)+"so "+ SX$+ " takes along"+ STR$ (N1)+ " "+ OB$:IF N1< > 1 THEN GOSUB 3530
3330 S1$= S1$+ ".":S2$= "On the way to school, "+ SX$+ " sees a hat by the"+CHR$(13)+"road; under it "+ SX$+ " finds"
3340 S2$= S2$+ STR$ (N2)+ " more.":GOTO 3660
3350 QU$= "do you":V$= "you own"+ STR$ (N1)+ ", then you're sold"+ STR$ (N2):S1$= "You look in your "+ OB$
3360 S1$= S1$+ " collection and see that you own"+ STR$ (N1)+ " "+ OB$:IF N1< > 1 THEN S1$= S1$+ "s"
3370 S1$= S1$+ ".":S2$= "Your friend, "+ P1$+ ", sells you"+ STR$ (N2)+ " more.":GOTO 3660
3380 QU$= "does "+ SX$:V$= SX$+ " made"+ STR$ (N1)+ ", then makes"+ STR$ (N2):S1$= "Last Monday, "+ P1$
3390 S1$= S1$+ " invented a machine that makes "+ OB$+ "s."+CHR$(13)+"That Monday, "+ SX$+ " made"+ STR$ (N1)+ " "+ OB$
3400 IF N1< > 1 THEN S1$= S1$+ "s"
3410 S1$= S1$+ ".":S2$= "The next day, "+ SX$+ " made"+ STR$ (N2)+ " more.":GOTO 3660
3420 QU$= "does "+ P1$:V$= SX$+ " bought"+ STR$ (N1)+ ", then buys"+ STR$ (N2):S1$= "Yesterday, "+ P1$
3430 S1$= S1$+ " bought"+ STR$ (N1)+ " "+ OB$:IF N1< > 1 THEN S1$= S1$+ "s"
3440 S1$= S1$+ ".":S2$= "Today, "+ SX$+ " goes to the store and buys"+ STR$ (N2)+ " more.":GOTO 3660
3450 QU$= "does "+ SX$:V$= P1$+ " found"+ STR$ (N1)+ ", then won"+ STR$ (N2):S1$= "This morning, "+ P1$
3460 S1$= S1$+ " looked in "+ PS$+ " pocket and found"+ STR$ (N1)+ " "+ OB$
3470 IF N1< > 1 THEN S1$= S1$+ "s"
3480 S1$= S1$+ ".":S2$= "Later, "+ SX$+ " won"+ STR$ (N2)+ " more in a bet with "+ A$+ ". (That's you.)":GOTO 3660
3490 CA= N1- N2:N= 5* RND (1)+ 1:ON N GOTO 3500,3540,3570,3600,3630
3500 S1$= "Last week, "+ P1$+ " got"+ STR$ (N1)+ " "+ OB$:IF N1< > 1 THEN GOSUB 3530
3510 S1$= S1$+ " for "+ PS$+ "birthday.":S2$= "On Saturday, "+ SX$+ " lost"+ STR$ (N2)+ " of them."
3520 QU$= "does "+ SX$:V$= P1$+ " got"+ STR$ (N1)+ ", then"+ STR$ (N2)+ " are lost":GOTO 3660
3530 S1$= S1$+ "s":RETURN
3540 S1$="In your class at school, you made "+STR$(N1)+" "+CHR$(13)+OB$:IF N1=1 THEN 3560
3550 S1$=S1$+"s"
3560 S1$=S1$+", which you brought home.":S2$="On your way, you gave "+STR$(N2)+" of them to "+P1$+".":QU$="do you":V$="you make"+STR$(N1)+", then give away"+STR$(N2):GOTO 3660
3570 S1$=P1$+" was carrying "+STR$(N1)+" "+OB$:IF N1=1 THEN 3590
3580 S1$=S1$+"s"
3590 S1$=S1$+" in a box.":S2$="Coming down the hill, "+SX$+" fell, and"+STR$(N2)+" of them"+CHR$(13)+"rolled away.":QU$="does "+SX$:V$=SX$+" had"+STR$(N2)+" roll away.":GOTO 3660
3600 S1$=P1$+" found "+STR$(N1)+" "+OB$:IF N1=1 THEN 3620
3610 S1$=S1$+"s"
3620 S1$=S1$+" under "+PS$+" bed.":S2$="Bill, "+PS$+" big brother, took "+STR$(N2)+" of them away.":QU$="does "+P1$:V$=P1$+" found"+STR$(N1)+" but Bill took"+STR$(N2):GOTO 3660
3630 S1$=P1$+" gave you "+STR$(N1)+" "+OB$:IF N1=1 THEN 3650
3640 S1$=S1$+"s"
3650 S1$=S1$+" because "+SX$+" had too many.":S2$="Later, "+SX$+" lost all of them, and you generously"+CHR$(13)+"gave "+STR$(N2)+" back.":QU$="do you":V$=P1$+" gave you"+STR$(N1)+", you gave back"+STR$(N2)
3660 QU$= "How many "+ OB$+ "s "+ QU$+ " have now"
3670 PRINT S1$:PRINT :PRINT S2$
3680 PRINT :PRINT " ";QU$;:INPUT "";NQ:PRINT "";:RETURN
3690 CA= N1* N2:N= 5* RND (1)+ 1:ON N GOTO 3700,3750,3800,3860,3920
3700 S1$= "You get a surprise! "+ P1$+ " sends you"+ STR$ (N1)+ " box":V$= STR$ (N1)+ " box"
3710 IF N1< > 1 THEN S1$= S1$+ "es":S2$= S2$+ "es"
3720 S1$= S1$+ " in the mail.":V$= V$+ " ..."+ STR$ (N2)+ " in each box":S2$= "Each box has"+ STR$ (N2)+ " "+ OB$
3730 IF N2< > 1 THEN S2$= S2$+ "s"
3740 S2$= S2$+ " in it!":QU$= "do you":GOTO 3660
3750 S1$=P1$+" won"+STR$(N1)+" ticket":V$=STR$(N1)+"ticket":IF N1=1 THEN 3770
3760 S1$=S1$+"s":V$=V$+"s"
3770 S1$=S1$+".":S2$="When "+SX$+" traded them in, "+SX$+" got"+STR$(N2)+" "+OB$:IF N2=1 THEN 3790
3780 S2$=S2$+"s"
3790 S2$=S2$+" for each ticket.":V$=V$+" ..."+STR$(N2)+" for each ticket":QU$="does "+SX$:GOTO 3660
3800 S1$="A flying soucer deposits"+STR$(N1)+" metal sphere":V$=STR$(N1)+" sphere":IF N1=1 THEN 3820
3810 S1$=S1$+"s":V1$=V1$+"s"
3820 S1$=S1$+" in your kitchen"+CHR$(13)+"sink.":S2$="When "+P1$+" opens them,"+STR$(N2)+" "+OB$:IF N2=1 THEN 3840
3830 S2$=S2$+"s pop":GOTO 3850
3840 S2$=S2$+" pops"
3850 S2$=S2$+" out of every one.":V$=V$+" ..."+STR$(N2)+" in every one.":QU$="do you":GOTO 3660
3860 S1$="Your friend, "+P1$+", dug up"+STR$(N1)+" can":V$=STR$(N1)+" can":IF N1=1 THEN 3880
3870 S1$=S1$+"s":V1$=V1$+"s"
3880 S1$=S1$+" full of "+OB$+"s.":S2$="There ":IF N2=1 THEN 3900
3890 S2$=S2$+"were "+STR$(N2)+" "+OB$+"s":GOTO 3910
3900 S2$=S2$+"was 1 "+OB$
3910 S2$=S2$+" in each can.":V$=V$+" ..."+STR$(N2)+" in each can":QU$="does "+SX$:GOTO 3660
3920 S1$=P1$+" found"+STR$(N1)+" hole":V$=STR$(N1)+" hole":IF N1=1 THEN 3940
3930 S1$=S1$+"s":V$=V$+"s"
3940 S1$=S1$+" dug in "+PS$+" yard.":S2$="In each hole there ":IF N2=1 THEN 3960
3950 S2$=S2$+"were "+STR$(N2)+" "+OB$+"s.":GOTO 3970
3960 S2$=S2$+"was 1 "+OB$+"."
3970 V$=V$+" ..."+STR$(N2)+" in each hole":QU$="does "+P1$:GOTO 3660
3980 QU$= "does each one":CA= N1/ N2:N= 5* RND (1)+ 1:ON N GOTO 3990,4060,4090,4140,4170
3990 N1= N1+ CA:CA= N1/ (N2+ 1):S1$= P1$+ " found a bag with"+ STR$ (N1)+ " "+ OB$
4000 IF N1< > 1 THEN S1$= S1$+ "s"
4010 S1$= S1$+ " in it.":S2$= "After school, "+ SX$+ " shared them with "+ PS$+ STR$ (N2)+ " sister"
4020 IF N2< > 1 THEN S2$= S2$+ "s"
4030 V$= "each person gets":S2$= S2$+ ".":N2= N2+ 1:GOTO 3660
4040 S2$=S2$+ "nobody, but ate them all. Greedy child!"
4050 QU=" does each one":GOTO 3660
4060 N1=N1+CA:CA=N1/(N2+1)
4070 S1$=P1$+"'s rich uncle gives you a rosewood box with"+STR$(N1)+CHR$(13)+OB$+"s in it.":S2$="You share them with"+STR$(N2)+" friends who come "+CHR$(13)+"to a tea party."
4080 V$="each friend gets":QU$="does each or you":N2=N2+1:GOTO 3660
4090 OB$="seeds":S1$="A seed packet has "+STR$(N1)+" seed":IF N1=1 THEN 4110
4100 S1$=S1$+"s"
4110 S1$=S1$+" in it":S2$=P1$+" plants"+STR$(N2)+" seed":IF N2=1 THEN 4130
4120 S2$=S2$+"s"
4130 S2$=S2$+" in each hole.":V$="holes "+P1$+" needs":QU$="holes does "+P1$+" need":GOTO 4220
4140 S1$=P1$+" worked for"+STR$(N1)+ " day":IF N1=1 THEN 4160
4150 S1$=S1$+"s"
4160 S1$=S1$+" building "+OB$+"s.":S2$="When "+SX$+" finished, "+SX$+" had made only"+STR$(N2)+"."+".":V$="days to make each":QU$=" days does it take "+P1$+" to make 1 "+OB$:GOTO 4220
4170 S1$="You and "+P1$+" catch"+STR$(N1)+" "+OB$:IF N1=1 THEN 4190
4180 S1$=S1$+"s"
4190 S1$=S1$+" in "+OB$+" traps in the forest.":S2$="You dug"+STR$(N2)+" trap":IF N2=1 THEN 4210
4200 S2$=S2$+"s"
4210 S2$=S2$+".":V$="each trap caught (as an average)":QU$="(on the average) did each trap catch"
4220 QU$=" How many "+QU$:GOTO 3670
4230 LOCATE PY,PX:PY= PY+ 1:RETURN
5000 CLS:PRINT "THERE APPEARS TO BE SOMETHING THAT I":PRINT "CANNOT UNDERSTAND!"
5010 PRINT:PRINT "LET'S START THIS AGAIN--JUST IN CASE":PRINT "I'VE FORGOTTEN ANYTHING."
5020 PRINT:PRINT "PRESS THE <SPACE BAR> TO GO ON."
5030 Y$=INKEY$:IF Y$<>" " THEN 5030
5035 CLS
5040 RESUME 1440
1 REM --EIGHT-------------FIND-A-WORD PUZZLE--------------------
2 REM ----------REVISED 10/15/84 FROM PC BLUE COLLECTION--------
3 REM ----------GARY WEST, ALLENDALE SC 29810-------------------
4 REM ----------FOR IBM PCjr WITH 128K RAM----------------------
5 CLS:COLOR 31:PRINT TAB(6);"PLEASE NOTE":COLOR 15:PRINT:PRINT:PRINT "THIS PROGRAM REQUIRES A PRINTER.":PRINT:PRINT "IS YOUR PRINTER ATTACHED?":PRINT TAB(5);"PRESS Y FOR YES":PRINT TAB(5);"PRESS N FOR NO"
6 PRINT
7 PR$=INKEY$:IF PR$="" THEN 7
8 IF PR$<>"Y" AND PR$<>"y" AND PR$<>"N" AND PR$<>"n" THEN 7
9 IF PR$="N" OR PR$="n" THEN RUN "MENU.BAS"
10 DEF SEG=0:POKE 1047,64
20 SCREEN 0,1:COLOR 15,1,1:CLS
30 ON ERROR GOTO 2520
40 NN=0
50 CLEAR 1200
60 B$="."
70 PRINT "THIS PROGRAM WILL CREATE A FIND-A-WORD"
80 PRINT "PUZZLE FROM THE WORDS THAT YOU GIVE IT."
90 PRINT:PRINT "YOU WILL BE ABLE TO CREATE A PUZZLE":PRINT "THAT IS UP TO";:COLOR 14:PRINT " 30 CHARACTERS LONG ";:COLOR 15:PRINT "AND":PRINT "UP TO";:COLOR 14:PRINT " 30 CHARACTERS WIDE.":PRINT:COLOR 15
95 COLOR 14:PRINT "---------------------------------------------":COLOR 15
100 PRINT "HOW ";:COLOR 14:PRINT "WIDE ";:COLOR 15:PRINT "WOULD YOU LIKE YOUR PUZZLE TO BE?":PRINT:PRINT "TYPE A NUMBER THAT IS LESS THAN 30":PRINT "AND PRESS THE <ENTER> KEY.";
105 COLOR 14
110 INPUT " ",X$
115 COLOR 15
120 X=VAL(X$):IF X<1 OR X>29 THEN CLS:PRINT "TRY AGAIN.":PRINT:GOTO 100
125 COLOR 14:PRINT "---------------------------------------------":COLOR 15
130 PRINT:PRINT "HOW ";:COLOR 14:PRINT "LONG ";:COLOR 15:PRINT "WOULD YOU LIKE YOUR PUZZLE TO BE?":PRINT:PRINT "TYPE A NUMBER THAT IS LESS THAN 30":PRINT "AND PRESS THE <ENTER> KEY.";
135 COLOR 14
140 INPUT " ",Y$
145 COLOR 15
150 Y=VAL(Y$):IF Y<1 OR Y>29 THEN CLS:PRINT "TRY AGAIN.":PRINT:GOTO 130
160 IF X>Y THEN U0=X ELSE U0=Y
170 CLS
180 PRINT "HOW MANY WORDS ARE YOU PLANNING TO":PRINT "PUT INTO THE PUZZLE?";
190 COLOR 14:INPUT " ",N$:COLOR 15:N=VAL(N$):CNT=N
200 C1=100*INT(N/10):IF C1<100 THEN C1=100
210 DIM W$(50),A$(X,Y),N$(N),L(N,4)
220 W$(1)="DUMMY ARGUMENT"
230 REM INPUT FROM KEYBOARD OR DISK
240 GOSUB 2150
250 CLS:PRINT "WHAT NAME OR NUMBER WOULD YOU LIKE":PRINT "TO GIVE THIS PUZZLE?"
255 COLOR 14
260 INPUT " ",PZL$
265 COLOR 15
270 PRINT:PRINT "IS THIS RIGHT? ";:COLOR 14:PRINT "(Y OR N)":COLOR 15
280 PZ$=INKEY$:IF PZ$<>"Y" AND PZ$<>"y" AND PZ$<>"N" AND PZ$<>"n" THEN 280
290 IF PZ$="N" OR PZ$="n" THEN 250
300 CLS:PRINT "PLEASE WAIT WHILE PUZZLE IS CREATED."
310 GOTO 2260
320 REM INPUT"PUNCH LIST ON TAPE";T$:IF LEFT$(T$,1)="Y" THEN GOTO 2220
330 Q8=1
340 GOSUB 2130
350 FOR I1=1 TO N
360 CNT=CNT-1:PRINT CNT;" ";
370 GOTO 450
380 PRINT:PRINT"FIRST CHAR. CHANGED ON PASS";C0;" OF THE";I1;"TH WORD"
390 A$(L(1,1),L(1,2))=LEFT$(N$(1),1)
400 GOTO 520
410 REM
420 L(I1,1)=A:L(I1,2)=B:L(I1,3)=D
430 L(I1,4)=C0
440 GOTO 1670
450 C0=0
460 S$=N$(I1)
470 Z=LEN(S$)-1
480 GOSUB 1630
490 C0=C0+1
500 IF I1=1 THEN GOTO 520
510 IF A$(L(1,1),L(1,2))<>LEFT$(N$(1),1) THEN GOTO 380
520 IF C0/C1<>INT(C0/C1) THEN 540
530 PRINT S$;" TRY#";C0
540 IF C0<C1*10 THEN 580
550 Q8=Q8+1:IF Q8=100 THEN STOP
560 GOTO 340
570 PRINT Q8: GOTO 340
580 ON D GOTO 590,720,850,980,1110,1240,1370,1500
590 IF B+Z>Y THEN 480
600 FOR I=1 TO LEN(S$)
610 A1=A:B1=B+I-1
620 GOSUB 2100
630 GOSUB 2120
640 IF L$=B$ OR L$=N1$ THEN 660
650 GOTO 480
660 NEXT I
670 FOR I=1 TO LEN(S$)
680 GOSUB 2100
690 A$(A,B+I-1)=N1$
700 NEXT I
710 GOTO 410
720 IF B+Z>Y OR A-Z<1 THEN 480
730 FOR I=1 TO LEN(S$)
740 A1=A-(I-1):B1=B+I-1
750 GOSUB 2100
760 GOSUB 2120
770 IF L$=B$ OR L$=N1$ THEN 790
780 GOTO 480
790 NEXT I
800 FOR I=1 TO LEN(S$)
810 GOSUB 2100
820 A$(A-(I-1),B+I-1)=N1$
830 NEXT I
840 GOTO 410
850 IF A-Z<1 THEN 480
860 FOR I=1 TO LEN(S$)
870 A1=A-(I-1):B1=B
880 GOSUB 2100
890 GOSUB 2120
900 IF L$=B$ OR L$=N1$ THEN 920
910 GOTO 480
920 NEXT I
930 FOR I=1 TO LEN(S$)
940 GOSUB 2100
950 A$(A-(I-1),B)=N1$
960 NEXT I
970 GOTO 410
980 IF A-Z<1 OR B-Z<1 THEN 480
990 FOR I=1 TO LEN(S$)
1000 A1=A-(I-1):B1=B-(I-1)
1010 GOSUB 2100
1020 GOSUB 2120
1030 IF L$=B$ OR L$=N1$ THEN 1050
1040 GOTO 480
1050 NEXT I
1060 FOR I=1 TO LEN(S$)
1070 GOSUB 2100
1080 A$(A-(I-1),B-(I-1))=N1$
1090 NEXT I
1100 GOTO 410
1110 IF B-Z<1 THEN 480
1120 FOR I=1 TO LEN(S$)
1130 A1=A:B1=B-(I-1)
1140 GOSUB 2100
1150 GOSUB 2120
1160 IF L$=B$ OR L$=N1$ THEN 1180
1170 GOTO 480
1180 NEXT I
1190 FOR I=1 TO LEN(S$)
1200 GOSUB 2100
1210 A$(A,B-(I-1))=N1$
1220 NEXT I
1230 GOTO 410
1240 IF A+Z>X OR B-Z<1 THEN 480
1250 FOR I=1 TO LEN(S$)
1260 A1=A+I-1:B1=B-(I-1)
1270 GOSUB 2100
1280 GOSUB 2120
1290 IF L$=N1$ OR L$=B$ THEN 1310
1300 GOTO 480
1310 NEXT I
1320 FOR I=1 TO LEN(S$)
1330 GOSUB 2100
1340 A$(A+I-1,B-(I-1))=N1$
1350 NEXT I
1360 GOTO 410
1370 IF A+Z>X THEN 480
1380 FOR I=1 TO LEN(S$)
1390 A1=A+I-1:B1=B
1400 GOSUB 2100
1410 GOSUB 2120
1420 IF L$=N1$ OR L$=B$ THEN 1440
1430 GOTO 480
1440 NEXT I
1450 FOR I=1 TO LEN(S$)
1460 GOSUB 2100
1470 A$(A+I-1,B)=N1$
1480 NEXT I
1490 GOTO 410
1500 IF A+Z>X OR B+Z>Y THEN 480
1510 FOR I=1 TO LEN(S$)
1520 A1=A+I-1:B1=B+I-1
1530 GOSUB 2100
1540 GOSUB 2120
1550 IF L$=B$ OR L$=N1$ THEN 1570
1560 GOTO 480
1570 NEXT I
1580 FOR I=1 TO LEN(S$)
1590 GOSUB 2100
1600 A$(A+I-1,B+I-1)=N1$
1610 NEXT I
1620 GOTO 410
1630 A=INT(X*RND(8)+1)
1640 B=INT(Y*RND(8)+1)
1650 D=INT(8*RND(5)+1)
1660 RETURN
1670 NEXT I1
1680 GOTO 1700
1690 FOR I=1 TO X:FOR J=1 TO Y:PRINT A$(I,J);" ";:NEXT J:PRINT:NEXT I
1700 CLS
1710 PRINT "BE SURE THAT THE PRINTER IS ON":COLOR 14:PRINT "AND ";:COLOR 15:PRINT "THAT IT IS ON-LINE."
1720 PRINT:PRINT "PRESS THE ";:COLOR 14:PRINT "<SPACE BAR> ";:COLOR 15:PRINT "WHEN IT IS READY."
1730 Y$=INKEY$:IF Y$<>" " THEN 1730
1740 FOR I=1 TO 5:LPRINT:NEXT I:LPRINT PZL$:LPRINT:LPRINT
1750 LPRINT"THE";N;"HIDDEN WORDS ARE":LPRINT
1760 Z=2:FOR I=1 TO N:LPRINT TAB(Z);N$(I);:Z=Z+18:IF Z>60 THEN Z=2:LPRINT
1770 NEXT I:LPRINT:LPRINT
1780 FOR I=1 TO X
1790 FOR J=1 TO Y
1800 IF A$(I,J)=B$ THEN 1930
1810 LPRINT A$(I,J);" ";
1820 NEXT J
1830 LPRINT
1840 NEXT I
1850 CLS:PRINT "THE LOCATION OF EACH WORD WILL NOW":PRINT "BE PRINTED ON A SEPARATE SHEET."
1860 LPRINT CHR$(12):REM FORM FEED
1870 GOSUB 1960
1880 PRINT
1890 CLS:PRINT "WHAT WOULD YOU LIKE TO DO NOW?":PRINT:PRINT TAB(5);"1) NEW PUZZLE":PRINT TAB(5);"2) END":PRINT:PRINT "PRESS THE NUMBER FOR YOUR CHOICE."
1900 Y$=INKEY$:IF Y$<>"1" AND Y$<>"2" THEN 1900
1910 IF Y$="1" THEN RUN ELSE RUN "MENU.BAS"
1920 END
1930 A$(I,J)=CHR$(INT(26*RND(1)+65))
1940 GOTO 1810
1950 PRINT
1960 REM
1970 AN=1
1980 FOR I=1 TO 5:LPRINT:NEXT I:LPRINT PZL$:LPRINT:LPRINT
1990 LPRINT "THE HIDDEN WORDS ARE LOCATED AT"
2000 LPRINT TAB(30);"R";TAB(34);"C";TAB(38);"D"
2010 FOR K=1 TO N
2020 LPRINT N$(K);
2030 IF AN=0 THEN LPRINT: GOTO 2050
2040 LPRINT TAB(30);L(K,1);TAB(34);L(K,2);TAB(38);L(K,3)
2050 NEXT K
2060 LPRINT "R=ROW C=COLUMN D=DIRECTION"
2070 LPRINT:LPRINT "DIRECTIONS:";TAB(35);"3":LPRINT TAB(33);"4";TAB(35);"|";TAB(37);"2":LPRINT TAB(31);"5---|---1":LPRINT TAB(33);"6 | 8":LPRINT TAB(35);"7"
2080 RETURN
2090 END
2100 N1$=MID$(S$,I,1)
2110 RETURN
2120 L$=A$(A1,B1):RETURN
2130 FOR I=1 TO X:FOR J=1 TO Y:A$(I,J)=B$:NEXT J,I
2140 RETURN
2150 PRINT:PRINT "TYPE EACH WORD AND PRESS THE <ENTER> KEY":PRINT "AFTER EACH.":PRINT:COLOR 14:PRINT "(REMEMBER: YOUR WORDS CANNOT BE LONGER ":PRINT "THAN ";U0;" CHARACTERS.)":COLOR 15
2160 PRINT:PRINT "YOU CAN STOP TYPING WORDS AT ANY TIME":PRINT "BY TYPING ";:COLOR 14:PRINT "XXXX ";:COLOR 15:PRINT "AS A WORD."
2170 PRINT:PRINT
2180 FOR I=1 TO N
2190 PRINT"WORD #";I;
2195 COLOR 14
2200 INPUT " ",N$(I)
2205 COLOR 15
2210 IF N$(I)="XXXXX" OR N$(I)="xxxxx" THEN NN=I:I=N:GOTO 2230
2220 IF LEN(N$(I))>U0 THEN PRINT "TOO LONG; USE A SHORTER WORD.":GOTO 2190
2230 NEXT I
2240 IF NN THEN N=NN
2250 RETURN
2260 IF N<3 THEN GOTO 330
2270 FOR J=2 TO (N-1)
2280 L=0:M=0
2290 FOR I=J TO N
2300 IF LEN(N$(I))>L THEN L=LEN(N$(I)):M=I
2310 NEXT I
2320 T$=N$(M)
2330 FOR I=(M-1)TO J STEP -1
2340 N$(I+1)=N$(I)
2350 NEXT I
2360 N$(J)=T$
2370 NEXT J
2380 GOTO 330
2390 INPUT"INPUT FROM TAPE";T$:IF LEFT$(T$,1)="N" THEN GOTO 240
2400 PRINT CHR$(17):REM TAPE READER ON
2410 FOR I=1 TO N
2420 INPUT N$(I)
2430 NEXT I
2440 PRINT CHR$(19):REM TAPE READER OFF
2450 GOTO 2260
2460 NULL6
2470 PRINT CHR$(18);:REM TAPE PUNCH ON
2480 FOR I=1 TO 75:PRINT CHR$(0);:NEXT I:REM LEADER
2490 FOR I=1 TO N:PRINTN$(I):NEXT I
2500 FOR I=1 TO 75:PRINT CHR$(0);:NEXT I:PRINT CHR$(20)
2510 NULL0:GOTO 330
2520 CLS:PRINT "THERE SEEMS TO BE A PROBLEM":PRINT "THAT I DON'T UNDERSTAND.":PRINT "LET'S TRY THIS AGAIN.":PRINT "PRESS THE <SPACE BAR>."
2530 Y$=INKEY$:IF Y$<>" " THEN 2530
2540 RESUME 30
1 REM --NINE---------------MAZES-----------------------------------------
2 REM WRITTEN BY JACK HAUBER UPDATED 5-21-77 D. NIXON
3 REM UPDATED FOR PRINTER 10/6/84 BY G.WEST, ALLENDALE SC 29810
4 REM FOR IBM PCjr WITH 128K RAM
5 KEY OFF
10 CLS:COLOR 31:PRINT TAB(6);"PLEASE NOTE":PRINT:COLOR 15:PRINT "THIS PROGRAM REQUIRES A PRINTER."
11 PRINT:PRINT "IS YOUR PRINTER ATTACHED?":PRINT TAB(5);"PRESS Y FOR YES":PRINT TAB(5);"PRESS N FOR NO":PRINT
12 PR$=INKEY$:IF PR$="" THEN 12
13 IF PR$<>"Y" AND PR$<>"y" AND PR$<>"N" AND PR$<>"n" THEN 12
14 IF PR$="N" OR PR$="n" THEN RUN "MENU.BAS"
107 ON ERROR GOTO 2000
109 RANDOMIZE TIMER
110 WIDTH 80
111 CLS
120 DEFINT A-Z
130 PRINT "THIS PROGRAM WILL PRINT OUT A DIFFERENT MAZE EVERY TIME IT"
140 PRINT "IS RUN AND GUARANTEES ONLY ONE PATH THROUGH. YOU CAN CHOOSE"
150 PRINT "THE DIMENSIONS OF THE MAZE, THAT IS, THE NUMBER OF SQUARES WIDE"
160 PRINT "AND THE NUMBER OF SQUARES LONG."
170 PRINT
180 PRINT "HOW WIDE WOULD YOU LIKE THE MAZE TO BE?":PRINT "(THE WIDTH MUST BE BETWEEN 2 AND 25.)"
181 INPUT " ",H$
182 H=VAL(H$)
183 PRINT:PRINT "HOW LONG WOULD YOU LIKE THE MAZE TO BE?":PRINT "(THE LENGTH MUST BE BETWEEN 2 AND 40.)"
184 INPUT " ",V$
185 V=VAL(V$)
200 DIM W(H,V),V(H,V)
210 PRINT
220 IF H>2 AND V>2 THEN 260
230 PRINT "MEANINGLESS DIMENSIONS, TRY AGAIN."
240 PRINT
250 GOTO 1950
260 IF H< 27 GOTO 290
270 PRINT " THE WIDTH IS WIDER THEN 80 COLUMNS"
280 GOTO 1950
290 PRINT
300 PRINT
305 PRINT "PLEASE WAIT WHILE THE MAZE IS CREATED."
310 LET Q = 0
320 LET Z = 0
330 LET X = INT(RND(1)*H+1)
335 FOR I=1 TO 5:LPRINT:NEXT I:LPRINT TAB(20);"A MAZE ZING":LPRINT:LPRINT
340 FOR I = 1 TO H
350 IF I = X THEN 380
360 LPRINT ":--";
370 GOTO 390
380 LPRINT ": ";
390 NEXT I
400 LPRINT ":"
410 LET C = 1
420 LET W(X,1) = C
430 LET C = C+1
440 LET R = X
450 LET S = 1
460 GOTO 570
470 IF R <> H THEN 550
480 IF S <> V THEN 520
490 LET R = 1
500 LET S = 1
510 GOTO 560
520 LET R = 1
530 LET S = S+1
540 GOTO 560
550 LET R = R+1
560 IF W(R,S) = 0 THEN 470
570 IF R-1 = 0 THEN 930
580 IF W(R-1,S) <> 0 THEN 930
590 IF S-1 = 0 THEN 740
600 IF W(R,S-1) <> 0 THEN 740
610 IF R = H THEN 650
620 IF W(R+1,S) <> 0 THEN 650
630 LET X = INT(RND(1)*3+1)
640 ON X GOTO 1320,1390,1460
650 IF S <> V THEN 690
660 IF Z = 1 THEN 720
670 LET Q = 1
680 GOTO 700
690 IF W(R,S+1) <> 0 THEN 720
700 LET X = INT(RND(1)*3+1)
710 ON X GOTO 1320,1390,1560
720 LET X = INT(RND(1)*2+1)
730 ON X GOTO 1320,1390
740 IF R = H THEN 850
750 IF W(R+1,S) <> 0 THEN 850
760 IF S<> V THEN 800
770 IF Z = 1 THEN 830
780 LET Q = 1
790 GOTO 810
800 IF W(R,S+1) <> 0 THEN 830
810 LET X = INT(RND(1)*3+1)
820 ON X GOTO 1320,1460,1560
830 LET X = INT(RND(1)*2+1)
840 ON X GOTO 1320,1460
850 IF S <> V THEN 890
860 IF Z = 1 THEN 920
870 LET Q = 1
880 GOTO 900
890 IF W(R,S+1) <> 0 THEN 920
900 LET X = INT(RND(1)*2+1)
910 ON X GOTO 1320,1560
920 GOTO 1320
930 IF S-1 = 0 THEN 1140
940 IF W(R,S-1) <> 0 THEN 1140
950 IF R=H THEN 1060
960 IF W(R+1,S) <> 0 THEN 1060
970 IF S<> V THEN 1010
980 IF Z = 1 THEN 1040
990 LET Q = 1
1000 GOTO 1020
1010 IF W(R,S+1) <> 0 THEN 1040
1020 LET X = INT(RND(1)*3+1)
1030 ON X GOTO 1390,1460,1560
1040 LET X = INT(RND(1)*2+1)
1050 ON X GOTO 1390,1460
1060 IF S <> V THEN 1100
1070 IF Z = 1 THEN 1130
1080 LET Q = 1
1090 GOTO 1110
1100 IF W(R,S+1) <> 0 THEN 1130
1110 LET X = INT(RND(1)*2+1)
1120 ON X GOTO 1390,1560
1130 GOTO 1390
1140 IF R = H THEN 1240
1150 IF W(R+1,S) <> 0 THEN 1240
1160 IF S <> V THEN 1200
1170 IF Z = 1 THEN 1230
1180 LET Q = 1
1190 GOTO 1210
1200 IF W(R,S+1) <> 0 THEN 1230
1210 LET X = INT(RND(1)*2+1)
1220 ON X GOTO 1460,1560
1230 GOTO 1460
1240 IF S <> V THEN 1280
1250 IF Z = 1 THEN 1310
1260 LET Q = 1
1270 GOTO 1290
1280 IF W(R,S+1) <> 0 THEN 1310
1290 GOTO 1560
1300 REM BLOCKED
1310 GOTO 1760
1320 LET W(R-1,S) = C
1330 LET C = C+1
1340 LET V(R-1,S) = 2
1350 LET R = R-1
1360 IF C = H*V+1 THEN 1770
1370 LET Q = 0
1380 GOTO 570
1390 LET W(R,S-1) = C
1400 LET C = C+1
1410 LET V(R,S-1) = 1
1420 LET S = S-1
1430 IF C = H*V+1 THEN 1770
1440 LET Q = 0
1450 GOTO 570
1460 LET W(R+1,S) = C
1470 LET C = C+1
1480 IF V(R,S) = 0 THEN 1510
1490 LET V(R,S) = 3
1500 GOTO 1520
1510 LET V(R,S) = 2
1520 LET R = R+1
1530 IF C = H*V+1 THEN 1770
1540 LET Q = 0
1550 GOTO 930
1560 IF Q = 1 THEN 1660
1570 LET W (R,S+1) = C
1580 LET C = C+1
1590 IF V(R,S) = 0 THEN 1620
1600 LET V(R,S) = 3
1610 GOTO 1630
1620 LET V(R,S) = 1
1630 LET S = S+1
1640 IF C = H*V+1 THEN 1770
1650 GOTO 570
1660 LET Z = 1
1670 IF V(R,S) = 0 THEN 1710
1680 LET V(R,S) = 3
1690 LET Q = 0
1700 GOTO 1760
1710 LET V(R,S) = 1
1720 LET Q = 0
1730 LET R = 1
1740 LET S = 1
1750 GOTO 560
1760 GOTO 470
1770 FOR J = 1 TO V
1780 LPRINT "I";
1790 FOR I = 1 TO H
1800 IF V(I,J) < 2 THEN 1830
1810 LPRINT " ";
1820 GOTO 1840
1830 LPRINT " I";
1840 NEXT I
1850 LPRINT
1860 FOR I = 1 TO H
1870 IF V(I,J) = 0 THEN 1910
1880 IF V(I,J) = 2 THEN 1910
1890 LPRINT ": ";
1900 GOTO 1920
1910 LPRINT ":--";
1920 NEXT I
1930 LPRINT ":"
1940 NEXT J
1950 ERASE W,V
1960 FOR I=1 TO 5: PRINT: NEXT I
1970 CLS:PRINT "WHAT WOULD YOU LIKE TO DO?":PRINT:PRINT TAB(5);"1) ANOTHER MAZE":PRINT TAB(5);"2) END":PRINT:PRINT "PRESS THE NUMBER OF YOUR CHOICE."
1971 Y$=INKEY$:IF Y$<>"1" AND Y$<>"2" THEN 1971
1972 IF Y$="1" THEN RUN ELSE RUN "MENU.BAS"
1980 END
2000 CLS:PRINT "THERE SEEMS TO BE SOMETHING WRONG THAT I DO NOT UNDERSTAND.":PRINT "LET'S TRY THIS AGAIN. PRESS THE <SPACE BAR>."
2010 Y$=INKEY$:IF Y$<>" " THEN 2010
2020 RESUME 100
1 REM --BRIEFLY--------------------------------------------------
5 DIM L$(18)
40 SCREEN 0,1:KEY OFF:WIDTH 80:COLOR 15,1,1:CLS
41 TOP$=CHR$(201)+STRING$(65,205)+CHR$(187)
42 MDL$=CHR$(186)+STRING$(65,32)+CHR$(186)
43 MDD$=CHR$(204)+STRING$(65,205)+CHR$(185)
44 BTM$=CHR$(200)+STRING$(65,205)+CHR$(188)
45 LOCATE 1,5:PRINT TOP$:FOR X=2 TO 23:LOCATE X,5:PRINT MDL$:NEXT X:LOCATE 24,5:PRINT BTM$;:LOCATE 3,5:PRINT MDD$:LOCATE 22,5:PRINT MDD$:PCOPY 0,1
46 LOCATE 2,30:COLOR 14:PRINT "A BRIEF DESCRIPTION":LOCATE 23,24:PRINT "PRESS THE <SPACE BAR> FOR MORE.":COLOR 15
50 FOR X=1 TO 18:READ L$(X):NEXT X
55 FOR X=1 TO 18:LOCATE X+3,9:PRINT L$(X):NEXT X
59 A$=INKEY$:IF A$<>" " THEN 59
60 PCOPY 1,0
61 COLOR 14:LOCATE 23,24:PRINT "PRESS THE <SPACE BAR> TO BEGIN.":COLOR 15
62 COLOR 14:LOCATE 2,32:PRINT "MORE DESCRIPTION":COLOR 15
65 FOR X=1 TO 18:READ L$(X):NEXT X
70 FOR X=1 TO 18:LOCATE X+3,9:PRINT L$(X):NEXT X
98 B$=INKEY$:IF B$<>" " THEN 98
99 RUN "MENU.BAS"
100 DATA "This disk contains several programs from the public"
101 DATA "domain and from magazines. The programs have been"
102 DATA "modified to provide some educational value to students"
103 DATA "who are learning to read. The disk does not consti-"
104 DATA "tute a comprehensive reading program, but provides a"
105 DATA "self-contained base of programs that can be use to"
106 DATA "learn and practice reading concepts."
107 DATA " "
108 DATA "The sound has been removed from the programs so that"
109 DATA "they are not distractions to others in the room. In
110 DATA "most cases a REM was placed in front of the sound-"
111 DATA "generating statements and can simply be removed to"
112 DATA "re-instate those sounds."
113 DATA " "
114 DATA "A description of each program can be seen by selecting"
115 DATA "menu item 20 from the menu that will follow this screen."
116 DATA "The menu will allow you to select any program and when "
117 DATA "a program is ended you will be returned to the menu."
120 DATA "The programs that use word lists have been modified"
121 DATA "to use the South Carolina Sight Word List which was"
122 DATA "prepared by the South Carolina State Board of Education."
123 DATA "Those lists have been divided by grade level and this"
124 DATA "disk contains the lists for grades 1 - 5."
125 DATA " "
126 DATA "Three of the programs on this disk require a printer and"
127 DATA "those are marked by flashing asterisks on the menu."
128 DATA " "
129 DATA "If useful modifications are made in any of the programs"
130 DATA "on this disk we would like to know. Send those to"
131 DATA " "," ALLENDALE COUNTY SCHOOLS"
132 DATA " P.O. BOX 458"
133 DATA " ALLENDALE SC 29810"
134 DATA " ATTN: Gary West"
135 DATA " "
136 DATA "Have fun with the programs that you find here."
137 DATA " "
PC-SIG Disk No. #241, version V1
The following is a list of the file checksums which should be produced by
the CRCK4 program on this disk. If the CRC numbers do not match the following
list you may have a bad file. To use type: CRCK4 <filespec>
CRCK4 output for this disk:
CRCK ver 4.2B (MS DOS VERSION )
CTL-S pauses, CTL-C aborts
--> FILE: MENU .BAS CRC = 7A 64
--> FILE: AUTOEXEC.BAT CRC = 00 00
--> FILE: 11 .BAS CRC = 0B 35
--> FILE: 12 .BAS CRC = 4D C4
--> FILE: 0 .BAS CRC = A7 80
--> FILE: 2 .BAS CRC = F9 15
--> FILE: 3 .BAS CRC = C1 7C
--> FILE: 4 .BAS CRC = AA 23
--> FILE: 5 .BAS CRC = B7 79
--> FILE: 6 .BAS CRC = 85 AE
--> FILE: 7 .BAS CRC = 47 14
--> FILE: 8 .BAS CRC = 8D B6
--> FILE: 10 .BAS CRC = 92 DC
--> FILE: 15 .BAS CRC = 94 43
--> FILE: 9 .BAS CRC = 9E 43
--> FILE: 13 .BAS CRC = 7A 61
--> FILE: BRIEFLY .BAS CRC = 69 70
--> FILE: ACS .PIC CRC = B1 1E
--> FILE: 1 .BAS CRC = F1 80
--> FILE: GRADE-2 .LST CRC = E4 F3
--> FILE: GRADE-3 .LST CRC = 11 7B
--> FILE: 17 .BAS CRC = 5F 8E
--> FILE: GRADE-1 .LST CRC = 78 9B
--> FILE: GRADE-4 .LST CRC = 22 8F
--> FILE: 14 .BAS CRC = 79 40
--> FILE: 16 .BAS CRC = 5C B4
--> FILE: README .DOC CRC = 8B 6D
--> FILE: TITLE .BAS CRC = 70 DC
--> FILE: TITLE2 .BAS CRC = 00 00
--> FILE: GRADE-5 .LST CRC = 05 5A
--> FILE: 20 .BAS CRC = 21 5B
---------------------> SUM OF CRCS = 27 6B
DONE
These and other Public Domain and user-supported programs from:
PC Software Interest Group (PC-SIG)
1125 Stewart Ct Suite G
Sunnyvale, CA 94086
(408) 730-9291
1 REM -------------------------------MENU----------------------------
2 REM -----------------------------GARY WEST-------------------------
3 REM -----------------------------10/30/84--------------------------
4 REM -- --
9 KEY OFF
10 SCREEN 0,1:WIDTH 80:COLOR 15,1,1:CLS
20 TOP$=CHR$(201)+STRING$(65,205)+CHR$(187)
21 MDL$=CHR$(186)+STRING$(65,32)+CHR$(186)
22 BTM$=CHR$(200)+STRING$(65,205)+CHR$(188)
23 MDD$=CHR$(204)+STRING$(65,205)+CHR$(185)
30 LOCATE 3,5:PRINT TOP$:FOR X=4 TO 23:LOCATE X,5:PRINT MDL$:NEXT X:LOCATE 24,5:PRINT BTM$;
35 LOCATE 6,5:PRINT MDD$:LOCATE 19,5:PRINT MDD$
40 LOCATE 5,37:COLOR 14:PRINT "MENU":COLOR 15
45 LOCATE 7,9:PRINT "0) ";:COLOR 14:PRINT "END":COLOR 15
50 LOCATE 8,9:PRINT "1) SPELLING BEE":LOCATE 8,42:PRINT "11) WORD MATCH"
51 LOCATE 9,9:PRINT "2) ALPHABETIZING":LOCATE 9,42:PRINT "12) WORD MATCH (B/W)"
52 LOCATE 10,9:PRINT "3) BOWLING":LOCATE 10,42:PRINT "13) HANGMAN"
53 LOCATE 11,9:PRINT "4) GRAPHICS DISPLAY":LOCATE 11,42:PRINT "14) WORD SCRAMBLE (1)"
54 LOCATE 12,9:PRINT "5) MAXIT":LOCATE 12,42:PRINT "15) WORD SCRAMBLE (2)"
55 LOCATE 13,9:PRINT "6) OTHELLO":LOCATE 13,42:PRINT "16) SCREEN MACHINE"
56 LOCATE 14,9:PRINT "7) WORD PROBLEMS":LOCATE 14,42:PRINT "17) MAZES 2";:COLOR 30:PRINT "*":COLOR 15
57 LOCATE 15,9:PRINT "8) FIND-A-WORD PUZZLES";:COLOR 30:PRINT "*":COLOR 15:LOCATE 15,42:PRINT "18)"
58 LOCATE 16,9:PRINT "9) MAZES";:COLOR 30:PRINT "*":COLOR 15:LOCATE 16,42:PRINT "19)"
59 LOCATE 17,8:PRINT "10) AGES IN DAYS":LOCATE 17,42:PRINT "20) ";:COLOR 14:PRINT "PROGRAM DESCRIPTIONS":COLOR 15
60 LOCATE 21,11:PRINT "Type the number for the program you want to use,"
70 LOCATE 22,11:PRINT "then press the <ENTER> key."
80 LOCATE 25,6:COLOR 30:PRINT "* ";:COLOR 15:PRINT "Printer required.";
90 LOCATE 22,40:INPUT " ",F$
100 GOSUB 200
110 LOCATE 21,11:PRINT "LOADING PROGRAM ";:COLOR 31:PRINT F$;:COLOR 15:PRINT ". PLEASE WAIT."
120 ON ERROR GOTO 500
130 RUN F$
140 END
200 FOR X=20 TO 23:LOCATE X,6:PRINT STRING$(64,32);:NEXT X:RETURN
500 GOSUB 200
510 LOCATE 21,11:PRINT "YOUR PROGRAM WAS NOT FOUND ON THIS DISK."
520 LOCATE 22,11:PRINT "PRESS THE <SPACE BAR> TO RETURN TO THE MENU."
530 Y$=INKEY$:IF Y$<>" " THEN 530
540 GOSUB 200
550 RESUME 60
EDUCATIONAL PROGRAMS FOR THE IBM PCjr
ALLENDALE COUNTY SCHOOLS
ALLENDALE SC 29810
If the SYS files and the COMMAND.COM file are not on this
disk, you can start the programs by typing AUTOEXEC at the DOS
prompt and pressing <ENTER>. To make the disk self-booting,
follow these instructions:
(1) format a new disk using the FORMAT/S command; the "/S" will
copy the SYS files and COMMAND.COM to your new disk after the
formatting is completed;
(2) copy each file on this disk to your new disk by using the
COPY A:*.* B: command; this disk should be disk A: and your newly
formatted disk should be disk B:; you will have to swap disks
several times (once for each file on this disk); put a write-
protect tab on this disk before you begin to copy it; and
(3) copy BASICA.COM from your DOS disk to your new disk by using
the COPY A:BASICA.COM B: command, where the A: disk is your DOS
disk and the B: disk is your newly formatted disk.
The following files are necessary for the disk to function
properly:
AUTOEXEC.BAT TITLE.BAS ACS.PIC BRIEFLY.BAS
TITLE2.BAS MENU.BAS 0.BAS 1.BAS
2.BAS 3.BAS 4.BAS 5.BAS
6.BAS 7.BAS 8.BAS 9.BAS
10.BAS 11.BAS 12.BAS 13.BAS
14.BAS 15.BAS 16.BAS 17.BAS
20.BAS GRADE-1.LST GRADE-2.LST GRADE-3.LST
GRADE-4.LST GRADE-5.LST BASICA.COM
If the SYS files and the COMMAND.COM file are also on your
disk, you can start it by simply putting the disk in the drive and
turning on your jr or with the <CTRL>+<ALT>+<DEL> key combination
(if your jr is already on).
1 REM --TITLE--------------------------------------------
5 KEY OFF
10 CLEAR,,,65536!
20 SCREEN 5:CLS
30 DEF SEG=&HB800
35 BLOAD "acs.pic":FOR X=1 TO 750:NEXT X
36 LOCATE 4,26:COLOR 15,0:PRINT "present";
37 LOCATE 7,29:COLOR 4,0:PRINT "17"
38 LOCATE 10,26:PRINT "PROGRAMS"
39 LOCATE 13,26:PRINT "FOR THE"
40 LOCATE 16,26:PRINT "IBM PCjr"
49 FOR X=1 TO 1250:NEXT X
50 RUN "BRIEFLY.BAS"
10 CLEAR,,,65536!
20 SCREEN 5:CLS
30 DEF SEG=&HB800
40 BLOAD "acs.pic"
50 FOR X=1 TO 2000:NEXT X
60 SYSTEM
Volume in drive A has no label
Directory of A:\
MENU BAS 1747 1-01-80 12:08a
AUTOEXEC BAT 14 11-28-84 10:21p
11 BAS 5052 11-28-84 10:21p
12 BAS 5050 11-28-84 10:21p
0 BAS 509 11-28-84 10:22p
2 BAS 3151 11-28-84 10:22p
3 BAS 3322 11-28-84 10:22p
4 BAS 1881 11-28-84 10:22p
5 BAS 5746 11-28-84 10:22p
6 BAS 7217 11-28-84 10:22p
7 BAS 16260 11-28-84 10:23p
8 BAS 6810 11-28-84 10:23p
10 BAS 6498 11-28-84 10:23p
15 BAS 3785 11-28-84 10:23p
9 BAS 4680 11-28-84 10:23p
13 BAS 5153 11-28-84 10:23p
BRIEFLY BAS 2484 11-28-84 10:24p
ACS PIC 32776 11-28-84 10:24p
1 BAS 5389 11-28-84 10:24p
CRC TXT 2039 12-17-84 4:10p
GRADE-2 LST 3150 11-28-84 10:24p
GRADE-3 LST 5149 11-28-84 10:24p
17 BAS 4737 11-28-84 10:25p
GRADE-1 LST 2163 11-28-84 10:25p
GRADE-4 LST 6348 11-28-84 10:25p
14 BAS 3439 11-28-84 10:25p
16 BAS 15166 11-28-84 10:25p
README DOC 2069 11-28-84 10:25p
TITLE BAS 309 11-28-84 10:26p
TITLE2 BAS 85 11-28-84 10:26p
GRADE-5 LST 8000 11-28-84 10:26p
20 BAS 13526 11-28-84 10:26p
CRCK4 COM 1536 10-21-82 5:50p
33 file(s) 185240 bytes
117760 bytes free