10 REM ********** FIVES **********
20 REM ********à MICHAEL BEWS **********
25 REM **** PAN BOOKS 1984 ****
30 DIM A(83):DIM B$(4):DIM F$(5):DIM S$(5)
35 IT=0
40 MODE 1:BORDER 0:INK 0,1:INK 1,24:INK 2,20:INK 3,6:PAPER 0:PEN 1:IF IT=0 THEN GOTO 780
50 REM
60 PAPER #1,0:PEN #1,1:WINDOW #0, 1,40,15,25:PEN #0,3:PAPER #0,2:CLS #1
70 CLS #0
80 REM ***** MAIN ROUTINE ******
90 FOR X=1 TO 5
100 A(X)=INT(RND*9)+1
110 IF X=1 THEN 140
120 FOR Y= 1 TO X-1:IF A(X)=A(Y)  THEN 100
130 NEXT Y
140 NEXT X
150 PRINT #1,"              F I V E S                 ";
160 PRINT #1,STRING$(40,229):LOCATE #1,1,12:PRINT #1,STRING$(40,226)
170 LOCATE #0,1,1:PRINT"NOW ENTER YOUR QUESTIONS ONE AT A TIME "
180 FOR W=1 TO 4
190 LOCATE  #1,2,(4+W):PRINT #1,W;">";
200 GOSUB 590
210 SOUND 1,180,20
220 F$(W)=STR$(A(P))
230 PRINT #1,X$;
240 GOSUB 680
250 SOUND 1,120,20
260 LOCATE #1,8,4+W:PRINT #1,B$(W)
270 GOSUB 590
280 IF STR$(A(P))=F$(W) THEN LOCATE #1,21,4+W:PRINT #1,"DIFFERENT LETTER";:FOR X=1 TO 1050:NEXT:LOCATE #1,21,4+W:PRINT #1,SPACE$(19);:GOTO 270
290 SOUND 1,90,20
300 S$(W)=STR$(A(P))
310 LOCATE #1,10,4+W:PRINT #1,X$
320 IF B$(W)="*" THEN Q=VAL(F$(W))*VAL(S$(W))
330 IF B$(W)="+" THEN Q=VAL(F$(W))+VAL(S$(W))
340  IF B$(W)="-" THEN Q=VAL(F$(W))-VAL(S$(W))
350 IF B$(W)=CHR$(172) THEN Q=VAL(F$(W))/VAL(S$(W))
360 LOCATE #1,15,4+W:PRINT #1,"=";Q
370 SOUND 1,180,20
380 NEXT W
390 REM *********** ROUTINE END ********
400  LOCATE #0,1,6:FOR X=1 TO 6:PRINT #0,SPACE$(40);:NEXT X
410 LOCATE #0,1,1:PRINT #0,"NOW ENTER YOUR GUESS AS COMPLETE FIVE   FIGURE NUMBER - EXAMPLE : (12345) ENTER"
420 LOCATE #0,1,4:PRINT #0,"      ENTER '?' IF YOU RESIGN"
430 LOCATE #0,1,6
440 INPUT #0, X$
450 SOUND 1,120,20
460 IF X$="?" THEN 510
465 IF X$="" THEN 410
470 IF ASX(X$)<48 OR LEN (X$)<>5 THEN LOCATE #0,1,6:PRINT #0,"             AGAIN! - FIVE FIGURES";: FOR X=1 TO 2000:NEXT:LOCATE #0,1,6:PRINT #0,SPACE$(40):GOTO 410
480 FOR X=1 TO 5: IF VAL(MID$(X$,X,1))<>A(X) THEN LOCATE #0, 1,6:PRINT#0,"          NO - TRY AGAIN":FOR X=1 TO 1500:NEXT:GOTO 400
490 NEXT X
500 LOCATE #0,1,1:PRINT #0,CHR$(20);: LOCATE #0,15,1:PRINT #0,"CORRECT";:SC=SC+1
510 TT=TT+1
520 LOCATE #0,7,4:PRINT #0,"   THIS IS THE ANSWER !"
530  FOR W=1 TO 5:LOCATE #0,14,6:PRINT #0," F I V E S";:LOCATE #0,(12+W+W),7: PRINT #0,A(W);:NEXT
540 LOCATE #1,1,3:PRINT #1,"SCORE:";SC;"CORRECT OUT OF";TT;"
550 :' LOCATE #0,1,1:? #0,STRING$(120,32);
560 LOCATE #0,1,9:PRINT #0,"    PRESS [ENTER] FOR NEXT GAME ";:INPUT X$ 
570 GOTO 40
580 REM ********* LETTER INPUT ROUTINE**
590 X$=INKEY$:IF X$="" THEN 590:ELSE X=ASC(X$)
595 IF X>90 THEN X=X-32: x$=UPPER$(x$)
600 IF X<>69 AND X<>70 AND X<>73 AND  X<>83 AND X<>86 THEN 590
610 IF X=70 THEN P=1
620 IF X=73 THEN P=2
630 IF X=86 THEN P=3
640 IF X=69 THEN P=4
650 IF X=83 THEN P=5
660 RETURN
670 REM ***** SIGN INPUT ROUTINE ****
680 X$=INKEY$:IF X$="" THEN 680 ELSE X=ASC(X$)
690 IF X<>43 AND X<>47 AND X<>42 AND X<>45 AND X<>58 AND X<>59 THEN 680
700 IF X$=":" THEN X$="*"
710 IF X$=";" THEN X$="+"
720 IF X$="/" THEN X$=CHR$(172)
730 B$(W)= X$
740 IF W= 1 THEN  RETURN
750 FOR Z=1 TO W-1:IF B$(W)=B$(Z) THEN LOCATE #1,20,4+W:PRINT #1,"'";B$(W);"' ALREADY USED!":FOR X=1 TO 1100:NEXT:LOCATE #1,20,4+W:PRINT #1,SPACE$(19): GOTO 680
760 NEXT
770 RETURN
780 REM********* INSTRUCTIONS **********
790 CLS
800 PRINT:PRINT"               F I V E S               "
810 PRINT:PRINT
820 PRINT"The object of F I V E S is to calculate the five digit number which is displayedas 'FIVES' ON the screen."
830 PRINT"You may do this by asking the computer  to give you answers to four simple sums"
840 PRINT:PRINT"These sums  must each be one of the fourmathematical functions:                 Additipn,Subtraction,Multiplication and Division  [+ - * /]"
850 PRINT"For example: Press I+V [ENTER]":PRINT"and the computer will give you a answer                                         NOTE: YOU USE ONLY THE 5 LETTERS OF THE       WORD   FIVES . [ F I V E S] "
860 PRINT:PRINT"YOU MAY ASK THE QUESTIONS IN ANY ORDER"
870 LOCATE 1,25:PRINT"         PRESS ANY KEY TO START"
880 IF INKEY$="" THEN 880
885 IT=1
890 GOTO 50
900 FOR XY=45 TO 5 STEP -1:SOUND 1,SD,2,INT(XY/5):NEXT :RETURN