10 CLEAR 20 SM=31:DIM S(SM) 30 ST=3:DIM S$(ST),SX(ST),SY(ST) 40 RESTORE:FORI=0TOST:READ S$(I),SX(I),SY(I):NEXT 50 DATA "A",0,1,"W",1,0,"S",2,1,"Z",1,2 60 LM=3:DIM LS(LM),LE(LM) 70 FORI=0TOLM:READ LS(I),LE(I):NEXT 80 DATA 200,100,150,75,100,50,50,25 90 GOSUB600 100 GOSUB440 110 CLS:GOSUB530 120 SN=0:SC=0:GS=0:LV=0 130 GOSUB220 140 IF GS<>0 GOTO180 150 GOSUB330 160 IF GS<>0 GOTO180 170 GOSUB410:GOTO130 180 LOCATE10,2:IF GS=1 THEN PRINT"GAME OVER"; ELSE PRINT"GAME CLEAR!"; 190 LOCATE10,3:PRINT"Push [EXE]"; 200 IF INKEY$<>CHR$(13) GOTO200 210 GOTO100 220 GOSUB530 230 IF SN>SM THEN GS=2:RETURN 240 S(SN)=FIX(RAN#*(ST+1)):SN=SN+1 250 W=LS(LV):GOSUB520 260 FORI=0TOSN-1 270 S=S(I):LOCATE SX(S),SY(S):PRINT S$(S); 280 W=LE(LV):GOSUB520 290 LOCATE SX(S),SY(S):PRINT" "; 300 W=100:GOSUB520 310 NEXT 320 RETURN 330 FORI=0TOSN-1 340 LOCATE0,0:I$=INPUT$(1) 350 S=S(I):LOCATE SX(S),SY(S) 360 IF I$<>S$(S) THEN PRINT CHR$(&HF0);:GS=1:I=SN:GOTO390 370 PRINT S$(S);:W=30:GOSUB520 380 LOCATE SX(S),SY(S):PRINT" "; 390 NEXT 400 RETURN 410 SC=SC+1:IF SC>HS THEN HS=SC:GOSUB570 420 LV=SC\5:IF LV>LM THEN LV=LM 430 RETURN 440 CLS 450 PRINT "SIMON for VX-4" 460 PRINT "Follow the patterns of alphabets"; 470 PRINT "CLS:Clear high score" 480 PRINT "Push [EXE] to start"; 490 K$=INKEY$:IF K$=CHR$(12) THEN HS=0:GOSUB570:GOTO440 500 IF K$<>CHR$(13) GOTO490 510 RETURN 520 FORK=0TOW:NEXT:RETURN 530 X=10 540 LOCATE X,0:PRINT USING "SC:##";SC; 550 LOCATE X,1:PRINT USING "HS:##";HS; 560 RETURN 570 POKE &H19CA,HS MOD 256 580 POKE &H19CB,HS\256 590 RETURN 600 HS=PEEK(&H19CA)+PEEK(&H19CB)*256 610 RETURN