image of READY prompt

Wang2200.org

Listing of file='LIFE' on disk='vmedia/more_games.wvd.zip'

# Sector 794, program filename = 'LIFE'
0010 REM *LIFE*
   : LOAD DC T#6,"GAMES"
0020 DIM P$(17)17,A$(17)17,C$64,G$1,Z$1,Q$(17)17
   : SELECT PRINT 005
   : PRINT HEX(03);"GAME OF LIFE"
   : PRINT
   : PRINT "ENTER POINTS:"
   : PRINT
   : PRINT "'0=CURSOR RIGHT"
   : PRINT "'1=CURSOR LEFT"
   : PRINT "'2=CURSOR UP"
0030 PRINT "'3=CURSOR DOWN"
   : PRINT "+ =ADD POINT"
   : PRINT "- =DELETE PT."
   : PRINT "CR=DONE"
0040 B$=HEX(01)
   : INIT(0A)STR(B$,2)
   : INIT(09)C$
   : SELECT PRINT 405
   : INIT(".")P$()
   : GOSUB '15
   : INIT(" ")P$()
   : Z1,Z2=5
   : G=0
   : G$="0"
   : PRINT STR(B$,1,Z1-1);STR(C$,1,10+3*Z2);
0050 KEYIN Z$,60,90
   : GOTO 50
0060 IF Z$<>"+"THEN 70
   : GOSUB 130
   : GOTO 50
0070 IF Z$<>"-"THEN 80
   : GOSUB 120
   : GOTO 50
0080 IF Z$=HEX(0D)THEN 200
   : GOTO 50
0090 ON VAL(Z$)+1GOSUB 110,170,190,180
0100 GOTO 50
0110 REM
   : Z$=" "
   : PRINT HEX(09);
   : GOTO 150
0120 REM
   : Z$=" "
   : PRINT ".";
   : GOTO 140
0130 REM
   : Z$="0"
   : PRINT "*";
   : P=P+1
0140 Z0$=STR(P$(Z1),Z2,1)
   : STR(P$(Z1),Z2,1)=Z$
   : IF Z0$=" "THEN 150
   : P=P-1
0150 IF Z2>15THEN 160
   : PRINT HEX(0909);
   : Z2=Z2+1
   : RETURN
0160 PRINT HEX(08);
   : RETURN
0170 REM
   : IF Z2<3THEN 100
   : PRINT HEX(080808);
   : Z2=Z2-1
   : RETURN
0180 REM
   : IF Z1>15THEN 100
   : PRINT HEX(0A);
   : Z1=Z1+1
   : RETURN
0190 REM
   : IF Z1<3THEN 100
   : PRINT HEX(0C);
   : Z1=Z1-1
   : RETURN
0200 SELECT PRINT 005(64)
   : FOR I=1TO 17
   : Q$(I)=P$(I)
   : NEXT I
   : SELECT CI 001
   : PRINT HEX(0306)
   : GOSUB '15
   : GOTO 410
0210 INIT(30)A$()
   : FOR I=2TO 16
   : K=2
0220 J=POS(STR(P$(I),K)<>" ")
   : IF J=0THEN 240
   : K=K+J
0230 ADD(STR(A$(I-1),K-2,3),01)
   : ADD(STR(A$(I),K-2,3),01)
   : ADD(STR(A$(I+1),K-2,3),01)
   : GOTO 220
0240 NEXT I
   : C1,C7,B,D=0
   : FOR I=1TO 17
   : K=1
0250 IF K>17THEN 260
   : J=POS(STR(A$(I),K)>"4")
   : IF J=0THEN 260
   : K=K+J
   : IF STR(P$(I),K-1,1)=" "THEN 250
   : STR(P$(I),K-1,1)=" "
   : D=D+1
   : GOTO 250
0260 K=1
0270 IF K>17THEN 280
   : J=POS(STR(A$(I),K)="1")
   : IF J=0THEN 280
   : K=K+J
   : IF STR(P$(I),K-1,1)=" "THEN 270
   : STR(P$(I),K-1,1)=" "
   : D=D+1
   : GOTO 270
0280 K=1
0290 IF K>17THEN 300
   : J=POS(STR(A$(I),K)="2")
   : IF J=0THEN 300
   : K=K+J
   : IF STR(P$(I),K-1,1)=" "THEN 290
   : STR(P$(I),K-1,1)=" "
   : D=D+1
   : GOTO 290
0300 K=1
0310 J=POS(STR(A$(I),K)="3")
   : IF J=0THEN 330
   : IF J+K>2THEN 320
   : C1=1
0320 K=K+J
   : IF STR(P$(I),K-1,1)<>" "THEN 310
   : STR(P$(I),K-1,1)=G$
   : B=B+1
   : IF K<18THEN 310
   : C7=1
0330 NEXT I
   : R1=POS(P$(1)<>" ")
   : R7=POS(P$(17)<>" ")
   : PRINT STR(B$,1,8);
   : IF R1+R7=0THEN 370
   : IF R1=0THEN 350
   : IF R7=0THEN 360
0340 PRINT STR(B$,1,8);"OFF SCREEN     "
   : GOTO 560
0350 GOSUB '02
   : GOTO 370
0360 GOSUB '03
0370 IF C1+C7=0THEN 400
   : IF C1=0THEN 380
   : IF C7=0THEN 390
   : GOTO 340
0380 GOSUB '01
   : GOTO 400
0390 GOSUB '00
0400 GOSUB '15
   : G=G+1
   : P=P+B-D
   : PRINT STR(B$,1,8);TAB(15)
   : PRINT TAB(15)
   : IF B+D<>0THEN 410
   : PRINT STR(B$,1,8);"STABLE"
   : GOTO 560
0410 PRINT HEX(01);
0420 PRINT "...CENSUS..."
   : PRINT
   : PRINT "GENERATION";G
   : PRINT "POPULATION";P
   : PRINT "BIRTHS";B
   : PRINT "DEATHS";D
   : ADD(G$,01)
   : IF G$<>HEX(3A)THEN 430
   : G$="A"
   : GOTO 440
0430 IF G$<="Z"THEN 440
   : G$="0"
0440 KEYIN Z$,450,450
   : GOTO 480
0450 PRINT
   : PRINT "STOPPED";HEX(0C)
0460 KEYIN Z$,470,470
   : GOTO 460
0470 PRINT TAB(15)
0480 IF P<>0THEN 210
   : PRINT
   : PRINT "EXTINCT"
   : GOTO 560
0490 DEFFN'00
   : PRINT "SHIFTING RIGHT"
   : FOR I=1TO 17
   : P$=P$(I)
   : P$(I)=" "
   : IF STR(P$,16)<>" "THEN 340
   : STR(P$(I),2)=P$
   : NEXT I
   : RETURN
0500 DEFFN'01
   : PRINT "SHIFTING LEFT"
   : FOR I=1TO 17
   : P$(I)=STR(P$(I),2)
   : IF STR(P$(I),1,1)<>" "THEN 340
   : NEXT I
   : RETURN
0510 DEFFN'02
   : PRINT "SHIFTING UP"
   : IF P$(2)<>" "THEN 340
0520 FOR I=1TO 16
   : P$(I)=P$(I+1)
   : NEXT I
   : P$(17)=" "
   : RETURN
0530 DEFFN'03
   : PRINT "SHIFTING DOWN"
   : IF P$(16)<>" "THEN 340
   : FOR I=17TO 2STEP -1
   : P$(I)=P$(I-1)
   : NEXT I
   : P$(1)=" "
   : RETURN
0540 DEFFN'15
   : PRINT HEX(01);
   : FOR I=2TO 16
   : PRINT STR(C$,1,16);
   : IF STR(P$(I),2,15)=X$THEN 550
   : FOR J=2TO 16
   : PRINT STR(P$(I),J,1);"  ";
   : NEXT J
0550 PRINT
   : NEXT I
   : RETURN
0560 REM