Listing of file='MMIND.BAS;01' on disk='vmedia/ccug_14b-sector.ccvf'
0 POKE 32940,218:POKE 32941,147:CLEAR 200 1 PLOT 27,4:PRINT "LOAD MMIND.XXX":PLOT 27,27 2 POKE 33283,180:POKE 33284,157 100 PLOT 6,6,12,14:PRINT "MASTERMIND":PRINT 110 INPUT "DO YOU NEED INSTRUCTIONS? ";A$ 120 IF LEFT$ (A$,1)= "Y"THEN GOSUB 10000 125 PLOT 15,29 130 OUT 8,255:OUT 8,247 131 PLOT 27,88 140 FOR I= 0TO 3:AN(I)= INT (RND (1)* 6+ 1):NEXT I 145 Z= CALL (32768) 150 GOSUB 1000 155 IS= 1= 0 160 Z= CALL ((192+ 8* AN(0)+ AN(1))* 256+ 8* AN(2)+ AN(3)) 170 CI= 1= 1:PI= CI 175 TN= TN+ 1 180 IF PITHEN GOSUB 2000 190 IF CITHEN GOSUB 3000 195 IF ISTHEN GOSUB 5990 200 IF NOT CIAND NOT PITHEN A$= "":GOTO 230 210 IF TN= 9THEN GOSUB 5000:A$= "TOO MANY GUESSES. ":GOTO 230 220 GOTO 175 230 PLOT 6,1,3,0,31,11:OUT 8,255 240 PRINT A$;:INPUT "PLAY AGAIN? ";A$ 250 IF LEFT$ (A$,1)= "Y"THEN PLOT 12:RUN 130 260 PLOT 27,11,1 1000 X= 36:Y= 1:AD= 24776 1010 FOR I= 0TO 3:GU(I)= 0:NEXT I:I= 0 1020 PLOT 3,X,Y:OUT 8,255:Z= CALL (32769):OUT 8,247 1030 IF Z< > 26THEN 1070 1040 I= I- 1:AD= AD- 8:X= X- 4 1050 IF I< 0THEN I= 3:AD= AD+ 32:X= X+ 16 1060 GOTO 1020 1070 IF Z< > 25THEN 1110 1080 I= I+ 1:AD= AD+ 8:X= X+ 4 1090 IF I> 3THEN I= 0:AD= AD- 32:X= X- 16 1100 GOTO 1020 1110 IF Z< > 13THEN 1140 1120 FOR J= 0TO 3:IF GU(J)= 0THEN 1020 1130 NEXT J:RETURN 1140 IF Z< 80OR Z> 87OR Z= 86THEN 1020 1150 GU(I)= Z- 79:IF Z= 85THEN GU(I)= 0 1155 IF Z= 87THEN GU(I)= 6 1160 Z= CALL (65240+ Z):Z= CALL (AD) 1170 GOTO 1080 2000 X= 6:Y= 2+ 3* TN:AD= 24588+ (2+ 3* TN)* 128 2010 GOSUB 1010 2020 Z= CALL ((192+ 8* GU(0)+ GU(1))* 256+ 64+ 8* GU(2)+ GU(3)) 2030 IF Z= 0THEN RETURN 2040 IF Z= 20THEN PI= 1= 0 2045 X= 22 2050 PLOT 6,40:IF Z< 5THEN 2090 2060 PLOT 3,X,Y,112:GOSUB 2070:Z= Z- 5:GOTO 2050 2070 X= X+ 1:IF X> 23THEN X= 22:Y= Y+ 1 2080 RETURN 2090 PLOT 6,47:IF Z= 0THEN 2110 2100 PLOT 3,X,Y,112:GOSUB 2070:Z= Z- 1:GOTO 2090 2110 IF NOT PITHEN GOSUB 5000 2120 RETURN 3000 IF TN> 1THEN 3030 3010 FOR I= 0TO 3:GU(I)= INT (RND (1)* 6+ 1):NEXT I 3020 GOTO 3100 3030 GN= INT (RND (1)* NP) 3040 Z= CALL (49152+ GN) 3050 Z1= INT (Z/ 256):Z2= Z- 256* Z1 3060 GU(0)= (Z1AND 56)/ 8 3070 GU(1)= Z1AND 7 3080 GU(2)= (Z2AND 56)/ 8 3090 GU(3)= Z2AND 7 3100 AD= 24776+ (TN* 3+ 1)* 128 3105 GOSUB 3110:GOTO 3170 3110 FOR I= 0TO 3 3120 CO= GU(I)+ 39:IF CO= 45THEN CO= 47 3130 Z= CALL (65280+ CO) 3140 Z= CALL (AD) 3150 AD= AD+ 8 3160 NEXT I 3165 RETURN 3170 GOSUB 4000:IF NOT CITHEN RETURN 3180 Z= CALL (65280+ SC) 3190 IF TN> 1THEN 3220 3200 NP= CALL ((128+ 8* GU(0)+ GU(1))* 256+ 128+ 8* GU(2)+ GU(3)) 3210 GOTO 3230 3220 NP= CALL ((128+ 8* GU(0)+ GU(1))* 256+ 192+ 8* GU(2)+ GU(3)) 3230 IF NP= 0THEN IS= 1= 1 3240 RETURN 4000 X= 52:Y= 2+ 3* TN 4005 SC= 0:NC= 0 4010 PLOT 3,X,Y:OUT 8,255:Z= CALL (32769):OUT 8,247 4020 IF Z< > 80THEN 4070 4030 SC= SC+ 5 4035 NC= NC+ 1:IF NC> 4THEN 4110 4040 PLOT 6,Z- 40,112 4050 X= X+ 1:IF X> 53THEN X= 52:Y= Y+ 1:IF Y> 3* (TN+ 1)THEN Y= 2+ 3* TN 4060 GOTO 4010 4070 IF Z= 87THEN SC= SC+ 1:GOTO 4035 4080 IF Z< > 13THEN 4110 4090 IF SC= 20THEN CI= 1= 0 4095 PLOT 3,64,0 4100 RETURN 4110 X= 52:Y= 2+ 3* TN 4120 PLOT 6,40,3,X,Y,32,32,3,X,Y+ 1,32,32:GOTO 4005 5000 AD= 24716:FOR I= 0TO 3:GU(I)= AN(I):NEXT I 5010 GOSUB 3110:RETURN 5990 TT= TN 6000 PLOT 6,1,3,0,31,11:OUT 8,255 6001 INPUT "INCORRECT SCORE. QUIT (Q), OR LET ME START OVER (O)? ";A$:OUT 8,247 6005 Z= ASC (LEFT$ (A$,1)):PLOT 3,0,31,11 6007 IF Z= 81THEN CI= 1= 0:PI= CI:GOTO 200 6010 K= TN:IS= 1= 0 6011 FOR I= 1TO K 6014 AD= 24776+ (3* I+ 1)* 128 6020 Z= CALL (65325) 6030 FOR J= 1TO 5 6040 Z= CALL (AD) 6060 AD= AD+ 8 6070 NEXT J,I 6090 FOR TN= 1TO TT 6100 GOSUB 3000 6110 IF NOT CITHEN 6140 6120 IF ISTHEN 6000 6130 NEXT TN 6140 TN= TT:RETURN 10000 PLOT 12,15,27,4:PRINT "LOAD MMINS.DSP":PLOT 27,27 10010 PLOT 3,0,25:INPUT "PRESS 'ENTER' TO START: ";A$ 10020 RETURN