e _vߋt The volume labeled "VMS Exchange" is not a system volume. VMS ExchangeMIDDLETON DECVMSEXCHNG@ 5̀} lM I  K  ZX  Z W vL  -# E  0  z S >7: x f  @ w = itS p'' '\} '|Q (v + +8" , $.% ,.4  /y //" /ZX 52e 52 62+ 62- y3 Z4 [4E j4w Z5F 6F+ |LPn [MD lQjL oQ8 |Q2 Q@ Se Tؑ X_ X OeHX ]f} cf" cf" '^q}s rE re :}, } }X }} }؁ k~+} o" xZ 0d 4λ d@ M A d  8 t 8 t5 PRINT 10 PRINT "SOLITAIRE CHECKER PUZZLE BY DAVID AHL" 15 PRINT 20 PRINT "48 CHECKERS ARE PLACED ON THE 2 OUTSIDE SPACES OF A" 25 PRINT "STANDARD 64-SQUARE CHECKERBOARD. THE OBJECT IS TO" 30 PRINT "REMOVE AS MANY CHECKERS AS POSSIBLE BY DIAGONAL JUMPS" 35 PRINT "(AS IN STANDARD CHECKERS). USE THE NUMBERED BOARD TO" 40 PRINT "INDICATE THE SQUARE YOU WISH TO JUMP FROM AND TO. ON" 45 PRINT "THE BOARD PRINTED OUT ON EACH TURN '1' INDICATES A" 50 PRINT "CHECKER AND '0' AN EMPTY SQUARE. WHEN YOU HAVE NO" 55 PRINT "POSSIBLE JUMPS REMAINING, INPUT A '0' IN RESPONSE TO" 60 PRINT "QUESTION 'JUMP FROM ?'" 62 PRINT 65 PRINT "HERE IS THE NUMERICAL BOARD:" 66 PRINT 68 DIM A(64) 70 FOR J=1 TO 57 STEP 8 72 B$="## ## ## ## ## ## ## ##" 74 PRINT USING B$,J,J+1,J+2,J+3,J+4,J+5,J+6,J+7 76 NEXT J 77 PRINT 78 PRINT "AND HERE IS THE OPENING POSITION OF THE CHECKERS:" 79 PRINT 80 FOR J=1 TO 64 82 A(J)=1 84 NEXT J 86 FOR J=19 TO 43 STEP 8 88 FOR I=J TO J+3 90 A(I)=0 92 NEXT I 94 NEXT J 96 M=0 98 GOTO 340 100 INPUT "JUMP FROM";F 105 IF F=0 THEN 500 110 INPUT "TO";T 112 PRINT 118 REM *** CHECK LEGALITY OF MOVE 120 F1=INT((F-1)/8) 130 F2=F-8*F1 140 T1=INT((T-1)/8) 150 T2=T-8*T1 160 IF F1>7 THEN 230 170 IF T1>7 THEN 230 180 IF F2>8 THEN 230 190 IF T2>8 THEN 230 200 IF ABS(F1-T1)<>2 THEN 230 210 IF ABS(F2-T2)<>2 THEN 230 212 IF A((T+F)/2)=0 THEN 230 215 IF A(F)=0 THEN 230 220 IF A(T)=1 THEN 230 225 GOTO 250 230 PRINT "ILLEGAL MOVE. TRY AGAIN..." 240 GOTO 100 245 REM *** UPDATE BOARD 250 A(T)=1 260 A(F)=0 270 A((T+F)/2)=0 290 M=M+1 310 REM *** PRINT BOARD 340 FOR J=1 TO 57 STEP 8 350 FOR I=J TO J+7 360 PRINT A(I); 370 NEXT I 380 PRINT 390 NEXT J 400 PRINT 410 GOTO 100 490 REM *** END GAME SUMMARY 500 S=0 510 FOR I=1 TO 64 520 S=S+A(I) 530 NEXT I 535 PRINT 540 PRINT "YOU MADE";M;"JUMPS AND HAD";S;"PIECES" 550 PRINT "REMAINING ON THE BOARD." 560 PRINT 562 INPUT "TRY AGAIN";A$ 570 IF A$="YES" THEN 70 575 IF A$="NO" THEN 600 580 PRINT "PLEASE ANSWER 'YES' OR 'NO'." 590 GOTO 562 600 PRINT 610 PRINT "O.K. HOPE YOU HAD FUN!" 999 END 5 REM *** WRITTEN BY BOB ALBRECHR, PEOPLES COMPUTER CO 10 REM *** CONVERTED TO RSTS/E BY DAVID AHL, DIGITAL 100 REM ***23 MATCHES 110 PRINT "LET'S PLAY 23 MATCHES. WE START WITH 23 MATCHES." 115 PRINT "YOU MOVE FIRST. YOU MAY TAKE 1,2 OR 3 MATCHES." 120 PRINT "THEN I MOVE...I MAY TAKE 1,2 OR 3 MATCHES." 125 PRINT "YOU MOVE, I MOVE AND SO ON. THE ONE WHO HAS TO" 130 PRINT "TAKE THE LAST MATCH LOSES." 135 PRINT "GOOD LUCK AND MAY THE BEST COMPUTER (HA HA) WIN." 140 PRINT 150 LET M=23 200 REM ***THE HUMAN MOVES 205 PRINT 210 PRINT "THERE ARE NOW";M;"MATCHES." 215 PRINT 220 PRINT "HOW MANY DO YOU TAKE"; 230 INPUT H 240 IF H>M THEN 510 250 IF H<>INT(H) THEN 510 260 IF H<=0 THEN 510 270 IF H>=4 THEN 510 280 LET M=M-H 290 IF M=0 THEN 410 300 REM ***THE COMPUTER MOVES 305 IF M=1 THEN 440 310 LET R=M-4*INT(M/4) 320 IF R<>1 THEN 350 330 LET C=INT(3*RND)+1 340 GO TO 360 350 LET C=(R+3)-4*INT((R+3)/4) 360 LET M=M-C 370 IF M=0 THEN 440 375 PRINT 380 PRINT "I TOOK";C;"..."; 390 GO TO 210 400 REM ***SOMEBODY WON (SEE LINES 290,305,370) 410 PRINT 420 PRINT "I WON!!! BETTER LUCK NEXT TIME." 430 GO TO 140 440 PRINT 450 PRINT "O.K. SO YOU WON. LET'S PLAY AGAIN." 460 GO TO 140 500 REM ***THE HUMAN CHEATED! (SEE LINES 240 THRU 270) 510 PRINT "YOU CHEATED! BUT I'LL GIVE YOU ANOTHER CHANCE." 520 GO TO 215 999 END 10 DEF* FNA(Z)=30*EXP(-Z*Z/100) 100 PRINT 110 FOR X=-30 TO 30 STEP 1.5 120 L=0 130 Y1=5*INT(SQR(900-X*X)/5) 140 FOR Y=Y1 TO -Y1 STEP -5 150 Z=INT(25+FNA(SQR(X*X+Y*Y))-.7*Y) 160 IF Z<=L THEN 190 170 L=Z 180 PRINT TAB(Z);"*"; 190 NEXT Y 200 PRINT 210 NEXT X 300 END 00010 REM ARKABLE PROGRAM BY JACK HAUBER, LOOMIS SCHOOL, WINDSOR, CT 00020 REM ODELED FOR BASIC-PLUS BY DAVE AHL, DIGITAL 00030 PRINT "THIS PROGRAM PRINTS OUT A MAZE OF DIMENSIONS UP TO 23 X 23." 00040 PRINT "RUN THE PROGRAM AND THEN TRY TO NEGOTIATE THE MAZE!"\PRINT 00100 RANDOMIZE 00110 DIM W(25,25),V(25,25) 00112 FOR I=0 TO 25\FOR J=0 TO 25 00113 W(I,J)=0\V(I,J)=0 00114 NEXT J\NEXT I 00120 INPUT "YOUR WIDTH";H\ INPUT "AND LENGTH";V 00121 INPUT "OUTPUT DEVICE";DEV$ 00122 PRINT 00124 OPEN DEV$ FOR OUTPUT AS FILE #1 00130 IF H<2 OR H>23 OR V<2 OR V>23 THEN 132 ELSE 150 00132 PRINT "MEANINGLESS DIMENSIONS, TRY AGAIN" 00140 PRINT 00141 GO TO 120 150 PRINT #1 151 PRINT #1 00160 LET Q=0 00161 LET Z=0 00162 LET X=INT(RND*H+1) 00163 FOR I=1 TO H 00170 IF I=X THEN 173 00171 PRINT #1, ":--"; 00172 GO TO 180 00173 PRINT #1, ": "; 00180 NEXT I 00190 PRINT #1, ":" 00191 LET C=1 00192 LET W(X,1)=C 00193 LET C=C+1 00200 LET R=X 00201 LET S=1 00202 GO TO 260 00210 IF R<>H THEN 240 00211 IF S<>V THEN 230 00220 LET R=1 00221 LET S=1 00222 GO TO 250 00230 LET R=1 00231 LET S=S+1 00232 GO TO 250 00240 LET R=R+1 00250 IF W(R,S)=0 THEN 210 00260 IF R-1=0 THEN 530 00261 IF W(R-1,S)<>0 THEN 530 00270 IF S-1=0 THEN 390 00280 IF W(R,S-1)<>0 THEN 390 00290 IF R=H THEN 330 00300 IF W(R+1,S)<>0 THEN 330 00310 LET X=INT(RND*3+1) 00320 IF X=1 THEN 790 00321 IF X=2 THEN 820 00323 IF X=3 THEN 860 00330 IF S<>V THEN 340 00331 IF Z=1 THEN 370 00332 LET Q=1 00333 GO TO 350 00340 IF W(R,S+1)<>0 THEN 370 00350 LET X=INT(RND*3+1) 00360 IF X=1 THEN 790 00361 IF X=2 THEN 820 00362 IF X=3 THEN 910 00370 LET X=INT(RND*2+1) 00380 IF X=1 THEN 790 00381 IF X=2 THEN 820 00390 IF R=H THEN 470 00400 IF W(R+1,S)<>0 THEN 470 00401 IF S<>V THEN 420 00410 IF Z=1 THEN 450 00411 LET Q=1 00412 GO TO 430 00420 IF W(R,S+1)<>0 THEN 450 00430 LET X=INT(RND*3+1) 00440 IF X=1 THEN 790 00441 IF X=2 THEN 860 00442 IF X=3 THEN 910 00450 LET X=INT(RND*2+1) 00460 IF X=1 THEN 790 00461 IF X=2 THEN 860 00470 IF S<>V THEN 490 00480 IF Z=1 THEN 520 00481 LET Q=1 00482 GO TO 500 00490 IF W(R,S+1)<>0 THEN 520 00500 LET X=INT(RND*2+1) 00510 IF X=1 THEN 790 00511 IF X=2 THEN 910 00520 GO TO 790 00530 IF S-1=0 THEN 670 00540 IF W(R,S-1)<>0 THEN 670 00541 IF R=H THEN 610 00542 IF W(R+1,S)<>0 THEN 610 00550 IF S<>V THEN 560 00551 IF Z=1 THEN 590 00552 LET Q=1 00553 GO TO 570 00560 IF W(R,S+1)<>0 THEN 590 00570 LET X=INT(RND*3+1) 00580 IF X=1 THEN 820 00581 IF X=2 THEN 860 00582 IF X=3 THEN 910 00590 LET X=INT(RND*2+1) 00600 IF X=1 THEN 820 00601 IF X=2 THEN 860 00610 IF S<>V THEN 630 00620 IF Z=1 THEN 660 00621 LET Q=1 00622 GO TO 640 00630 IF W(R,S+1)<>0 THEN 660 00640 LET X=INT(RND*2+1) 00650 IF X=1 THEN 820 00651 IF X=2 THEN 910 00660 GO TO 820 00670 IF R=H THEN 740 00680 IF W(R+1,S)<>0 THEN 740 00681 IF S<>V THEN 700 00690 IF Z=1 THEN 730 00691 LET Q=1 00692 GO TO 830 00700 IF W(R,S+1)<>0 THEN 730 00710 LET X=INT(RND*2+1) 00720 IF X=1 THEN 860 00721 IF X=2 THEN 910 00730 GO TO 860 00740 IF S<>V THEN 760 00750 IF Z=1 THEN 780 00751 LET Q=1 00752 GO TO 770 00760 IF W(R,S+1)<>0 THEN 780 00770 GO TO 910 00780 GO TO 1000 00790 LET W(R-1,S)=C 00800 LET C=C+1 00801 LET V(R-1,S)=2 00802 LET R=R-1 00810 IF C=H*V+1 THEN 1010 00811 LET Q=0 00812 GO TO 260 00820 LET W(R,S-1)=C 00830 LET C=C+1 00840 LET V(R,S-1)=1 00841 LET S=S-1 00842 IF C=H*V+1 THEN 1010 00850 LET Q=0 00851 GO TO 260 00860 LET W(R+1,S)=C 00870 LET C=C+1 00871 IF V(R,S)=0 THEN 880 00872 LET V(R,S)=3 00873 GO TO 890 00880 LET V(R,S)=2 00890 LET R=R+1 00900 IF C=H*V+1 THEN 1010 00902 GO TO 530 00910 IF Q=1 THEN 960 00920 LET W(R,S+1)=C 00921 LET C=C+1 00922 IF V(R,S)=0 THEN 940 00930 LET V(R,S)=3 00931 GO TO 950 00940 LET V(R,S)=1 00950 LET S=S+1 00951 IF C=H*V+1 THEN 1010 00952 GO TO 260 00960 LET Z=1 00970 IF V(R,S)=0 THEN 980 00971 LET V(R,S)=3 00972 LET Q=0 00973 GO TO 1000 00980 LET V(R,S)=1 00981 LET Q=0 00982 LET R=1 00990 LET S=1 00991 GO TO 250 01000 GO TO 210 01010 FOR J=1 TO V 01011 PRINT #1, "I"; 01012 FOR I=1 TO H 01013 IF V(I,J)<2 THEN 1030 01020 PRINT #1, " "; 01021 GO TO 1040 01030 PRINT #1, " I"; 01040 NEXT I 1041 PRINT #1 01043 FOR I=1 TO H 01045 IF V(I,J)=0 THEN 1060 01050 IF V(I,J)=2 THEN 1060 01051 PRINT #1, ": "; 01052 GO TO 1070 01060 PRINT #1, ":--"; 01070 NEXT I 01071 PRINT #1, ":" 01072 NEXT J 01073 CLOSE 1 1074 END 5 REM *** BAGLES NUMBER GUESSING GAME 10 REM *** ORIGINAL SOURCE UNKNOWN BUT SUSPECTED TO BE LAWRENCE HALL 15 REM *** OF SCIENCE, U.C. BERKELEY. MODIFIED FOR TIMESHARED-8 20 REM *** BY STUDENTS OF LEXINGTON HIGH SCHOOL, MA AND MODIFIED FOR 25 REM *** RSTS/E BY DAVE AHL OF DIGITAL 11/45 GROUP 30 DIM A1(6),A(3),B(3) 40 RANDOMIZE \LET Y=0\LET T=255 70 PRINT "GAME OF BAGLES. WOULD YOU LIKE THE RULES" 80 PRINT "(1 FOR YES, 0 FOR NO)";\INPUT A 90 IF A=0 THEN 150 100 PRINT \PRINT "I AM THINKING OF A THREE-DIGIT NUMBER. TRY TO GUESS" 110 PRINT "MY NUMBER AND I WILL GIVE YOU CLUES AS FOLLOWS:" 120 PRINT " PICO - ONE DIGIT CORRECT BUT IN THE WRONG POSITION" 130 PRINT " FERMI - ONE DIGIT CORRECT AND IN THE RIGHT POSITION" 140 PRINT " BAGLES - NO DIGITS CORRECT" 150 FOR I=1 TO 3 160 LET A(I)=INT(10*RND) 165 IF A(I)=0 THEN 160 170 FOR J=1 TO I-1 180 IF A(I)=A(J) THEN 160 190 NEXT J 200 NEXT I 210 PRINT \PRINT "O.K. I HAVE A NUMBER IN MIND." 220 FOR I=1 TO 20 230 PRINT "GUESS #";I; 240 INPUT B1 250 LET B(1)=INT(B1/100) 255 LET B(2)=INT(B1/10)-10*B(1) 260 LET B(3)=B1-100*B(1)-10*B(2) 295 GOTO 320 320 IF B(1)=B(2) THEN 650 330 IF B(2)=B(3) THEN 650 340 IF B(3)=B(1) THEN 650 350 LET C=0\LET D=0 360 FOR J=1 TO 2 370 IF A(J)<>B(J+1) THEN 390 380 LET C=C+1 390 IF A(J+1)<>B(J) THEN 410 400 LET C=C+1 410 NEXT J 420 IF A(1)<>B(3) THEN 440 430 LET C=C+1 440 IF A(3)<>B(1) THEN 460 450 LET C=C+1 460 FOR J=1 TO 3 470 IF A(J)<>B(J) THEN 490 480 LET D=D+1 490 NEXT J 500 IF D=3 THEN 680 520 FOR J=1 TO C 530 PRINT "PICO "; 540 NEXT J 550 FOR J=1 TO D 560 PRINT "FERMI "; 570 NEXT J 580 IF C+D<>0 THEN 600 590 PRINT "BAGLES"; 600 PRINT 605 NEXT I 610 PRINT "OH WELL" 615 PRINT "THAT'S 20 GUESSES. MY NUMBER WAS ";100*A(1)+10*A(2)+A(3) 620 GOTO 700 630 PRINT "TRY GUESSING A THREE-DIGIT NUMBER."\GOTO 230 650 PRINT "OH, I FORGOT TO TELL YOU THAT THE NUMBER I HAVE IN" 660 PRINT "MIND HAS NO TWO DIGITS THE SAME."\GOTO 230 680 PRINT "YOU GOT IT!!!"\PRINT 685 FOR I=1 TO 10\PRINT CHR$(7);\NEXT I 690 LET Y=Y+1 700 PRINT "PLAY AGAIN (1 FOR YES, 0 FOR NO)";\INPUT A 720 IF A=1 THEN 150 730 IF Y=0 THEN 750 740 PRINT \PRINT "A";Y;"- POINT BAGLES BUFF!!" 750 PRINT "HOPE YOU HAD FUN. BYE." 999 END 100 PRINT 'OUTPUT FILE'; \ INPUT FILENAME$ 180 OPEN FILENAME$ FOR OUTPUT AS FILE 1, ACCESS WRITE 190 DIM G$(6),H$(6),B$(9),G(6),A(54) 200 PRINT "HEIGHT, WIDTH OF CHARACTERS IN INCHES (EXAMPLE: 6,6)"; 202 INPUT L,R 204 IF L > 6 GOTO 200 206 IF R > 6 GOTO 200 208 S=0 & \ A=R*2 & \ C=A 210 PRINT "HOW FAR FROM THE LEFT HAND SIDE"; \ INPUT S & \ S=12*S 230 PRINT "MESSAGE" 240 INPUT B$ & \ IF B$="" GOTO 250 245 LET B$(1) = B$(1) + B$ & \ GOTO 240 250 FOR X=9 TO 1 STEP -1 & \CHANGE B$(X) TO A & \FOR Y=1 TO 6 & \A(X*6-6+Y)=A(Y) & \NEXT Y & \NEXT X 260 FOR X=1 TO 6 & \READ H$(X) & \NEXT X & \H$=H$(L) & \GOSUB 940 270 F=F+1 & \IF A(F)=0 THEN 990 271 G(0)=L & \FOR X=1 TO 6 & \G(X)=A(F) & \NEXT X & \CHANGE G TO G$ 280 FOR X=1 TO 6 & \G(0)=X & \CHANGE G TO G$(X) & \NEXT X 290 FOR X=1 TO A/2 291 PRINT #1 292 NEXT X 300 IF A(F)=46 THEN 345 301 IF A(F)=36 THEN 990 302 IF A(F)=32 THEN 630 303 IF A(F)<48 THEN 270 305 IF A(F)>57 THEN 310 307 ON A(F)-47 GOTO 500,440,620,625,635,550,615,605,595,585 310 IF A(F)<65 THEN 270 312 IF A(F)>79 THEN 330 320 ON A(F)-64 GOTO 350,360,370,380,390,400,410,430,440,450,460,470,480,490,500 330 IF A>90 THEN 270 332 ON A(F)-79 GOTO 510,520,540,550,560,570,580,590,600,610,620 340 GOTO 270 345 FOR X=1 TO A & \PRINT #1,TAB(S);G$;G$ & \NEXT X & \GOTO 270 350 GOSUB 640 & \GOSUB 690 & \GOSUB 640 & \GOTO 270 360 GOSUB 640 & \GOSUB 650 & \A=C*.5 & \GOSUB 640 & \A=C & \GOSUB 810 & \GOTO 270 370 GOSUB 640 & \GOSUB 700 & \GOSUB 700 & \GOTO 270 380 GOSUB 640 & \GOSUB 700 & \A=C*.5 & \GOSUB 640 & \A=C & \GOSUB 840 & \GOTO 270 390 GOSUB 640 & \GOSUB 650 & \GOSUB 650 & \GOTO 270 400 GOSUB 640 & \GOSUB 690 & \GOSUB 690 & \GOTO 270 410 GOSUB 640 & \A=C*.75 & \GOSUB 700 & \A=C*.25 & \GOSUB 650 & \A=C & \GOSUB 760 420 A=C*.25 & \GOSUB 710 & \A=C & \GOTO 270 430 GOSUB 640 & \GOSUB 710 & \GOSUB 640 & \GOTO 270 440 GOSUB 640 & \GOTO 270 450 GOSUB 750 & \GOSUB 740 & \GOSUB 640 & \GOTO 270 460 GOSUB 640 & \GOSUB 860 & \GOTO 270 470 GOSUB 640 & \GOSUB 740 & \GOSUB 740 & \GOTO 270 480 GOSUB 640 & \GOSUB 890 & \GOSUB 880 & \GOSUB 640 & \GOTO 270 490 GOSUB 640 & \GOSUB 890 & \GOSUB 640 & \GOTO 270 500 GOSUB 640 & \GOSUB 700 & \GOSUB 640 & \GOTO 270 510 GOSUB 640 & \GOSUB 690 & \GOSUB 790 & \GOTO 270 520 GOSUB 640 & \A=C*.75 & \GOSUB 700 & \A=.25*C & \GOSUB 650 & \A=C & \GOSUB 640 530 A=C*.25 & \GOSUB 710 & \A=C & \GOTO 270 540 GOSUB 640 & \GOSUB 690 & \A=C*.5 & \GOSUB 640 & \GOSUB 810 & \A=C & \GOTO 270 550 GOSUB 770 & \GOSUB 650 & \GOSUB 760 & \GOTO 270 560 GOSUB 780 & \GOSUB 640 & \GOSUB 780 & \GOTO 270 570 GOSUB 640 & \GOSUB 740 & \GOSUB 640 & \GOTO 270 580 GOSUB 890 & \GOSUB 880 & \GOTO 270 585 GOSUB 790 & \GOSUB 690 & \GOSUB 640 & \GOTO 270 590 GOSUB 640 & \GOSUB 880 & \GOSUB 890 & \GOSUB 640 & \GOTO 270 595 GOSUB 640 & \GOSUB 650 & \GOSUB 640 & \GOTO 270 600 GOSUB 900 & \GOTO 270 605 GOSUB 780 & \GOSUB 780 & \GOSUB 640 & \GOTO 270 610 GOSUB 970 & \GOSUB 800 & \GOSUB 960 & \GOTO 270 615 GOSUB 640 & \GOSUB 650 & \GOSUB 760 & \GOTO 270 620 GOSUB 920 & \GOTO 270 625 GOSUB 700 & \GOSUB 650 & \A=C*.5 & \GOSUB 640 & \A=C & \GOSUB 810 & \GOTO 270 630 GOSUB 940 & \GOTO 270 635 GOSUB 790 & \GOSUB 710 & \GOSUB 640 & \GOTO 270 640 FOR Y=1 TO A 641 PRINT #1, TAB(S); 642 FOR X = 1 TO 10 643 PRINT #1, G$; 644 NEXT X 645 PRINT #1 646 NEXT Y 647 RETURN 650 IF A<1 THEN 660 651 GOTO 670 660 LET A=1 670 FOR X=1 TO A & \PRINT #1,TAB(S);G$;G$;H$;H$;G$;G$;H$;H$;G$;G$ & \NEXT X & \RETURN 680 PRINT #1,TAB(S); 690 FOR X=1 TO A & \PRINT #1,TAB(4*L+S);G$;G$;H$;H$;G$;G$ & \NEXT X & \RETURN 700 FOR X=1 TO A & \PRINT #1,TAB(S);G$;G$; & \PRINT #1,TAB(8*L+S);G$;G$ & \NEXT X & \RETURN 710 IF A<1 THEN 720 711 GOTO 730 720 LET A=1 730 FOR X=1 TO A & \PRINT #1,TAB(4*L+S);G$;G$ & \NEXT X & \RETURN 740 FOR X=1 TO A & \PRINT #1,TAB(S);G$;G$ & \NEXT X & \RETURN 750 FOR X=1 TO A & \PRINT #1,TAB(S);G$;G$;G$;G$ & \NEXT X & \RETURN 760 FOR Y=1 TO A & \PRINT #1,TAB(S);G$;G$;G$;G$;G$;G$;H$;H$;G$;G$ & \NEXT Y & \RETURN 770 FOR X=1 TO A & \PRINT #1,TAB(S);G$;G$;H$;H$;G$;G$;G$;G$;G$;G$ & \NEXT X & \RETURN 780 FOR X=1 TO A & \PRINT #1,TAB(8*L+S);G$;G$ & \NEXT X & \RETURN 790 FOR X=1 TO A & \PRINT #1,TAB(4*L+S);G$;G$;G$;G$;G$;G$ & \NEXT X & \RETURN 800 FOR X=1 TO A & \PRINT #1,TAB(S);G$;G$;G$;G$;G$;G$ & \NEXT X & \RETURN 810 FOR X=1 TO C/2 & \PRINT #1,TAB(S); & \FOR Y=1 TO 2 & \FOR Z=1 TO (5*L)-X & \PRINT #1,G$(1); & \NEXT Z 820 IF X>3 THEN 950 821 V=X 830 PRINT #1, H$(2*V); 832 NEXT Y 834 PRINT #1 836 NEXT X 838 RETURN 840 FOR X = 1 TO C/2 841 PRINT #1, TAB(S);H$(X); 842 FOR Y = 1 TO 10*L-(2*X) 843 PRINT #1, G$(1); 844 NEXT Y 845 PRINT #1 850 NEXT X & \RETURN 860 FOR X=4*L TO 7*L STEP 14*L/(C*6) & \PRINT #1,TAB(X+S);G$;G$;G$; 870 PRINT #1,TAB(7*L-X+S);G$;G$;G$ & \NEXT X & \RETURN 880 FOR X=0 TO 6*L STEP 6*L/C & \PRINT #1,TAB(X+S);G$;G$;G$;G$ & \NEXT X & \RETURN 890 FOR X=6*L TO 0 STEP -6*L/C & \PRINT #1,TAB(X+S);G$;G$;G$;G$ & \NEXT X & \RETURN 900 FOR X=0 TO 7*L STEP (14*L)/(C*6) & \PRINT #1,TAB(X+S);G$;G$;G$; 910 PRINT #1,TAB(7*L-X+S);G$;G$;G$ & \NEXT X & \RETURN 920 FOR X=0 TO 7*L STEP (7*L)/(C*3) & \PRINT #1,TAB(S);G$;G$;TAB(X+S);G$;G$;G$; 930 PRINT #1,TAB(8*L+S);G$;G$ & \NEXT X & \RETURN 940 FOR X=1 TO A*3 & \ PRINT #1 & \ NEXT X & \ RETURN 950 FOR W=1 TO X-3 & \PRINT #1," "; & \NEXT W & \V=3 & \GOTO 830 960 FOR X=4*L TO 7*L STEP L*4/C & \PRINT #1,TAB(X+S);G$;G$;G$ & \NEXT X & \RETURN 970 FOR X=7*L TO 4*L STEP -4*L/C & \PRINT #1,TAB(X+S);G$;G$;G$ & \NEXT X & \RETURN 980 DATA " "," "," "," "," "," ","" 990 FOR X = 1 TO C*3 & \ PRINT #1 & \ NEXT X 995 CLOSE 1 1000 END 5 REM *** WRITTEN BY TOM KARZES, CURTIS JR HS, SUDBURY, MA 6 REM *** MODIFIED BY DAVE AHL, DIGITAL 10 PRINT "YOU ARE IN A LARGE, NEW GOVERNMENT BUILDING WITH 1,000,000" 20 PRINT "ROOMS IN IT. THE BUILDING IS 100 ROOMS LONG (0-99), 100" 30 PRINT "ROOMS WIDE (0-99), AND 100 FLOORS HIGH (0-99)."\ PRINT 40 PRINT "A MAD BOMBER HAS HIDDEN A BOMB IN ONE OF THE ROOMS AND" 50 PRINT "HAS JUST PHONED A THREAT THAT THE BOMB IS SET TO GO" 60 PRINT "OFF IN 200 SECONDS. FORTUNATELY, YOU HAPPEN TO HAVE A BOMB-" 70 PRINT "TRACKER THAT SENDS OUT SIGNALS THAT GET STRONGER AS YOU" 80 PRINT "GET CLOSER TO THE BOMB. YOU ARE STARTING IN ROOM 0,0,0" 90 PRINT "AND IT TAKES 10 SECONDS TO MOVE TO ANY OTHER ROOM."\ PRINT 100 RANDOMIZE \A=INT(100*RND)\B=INT(100*RND)\C=INT(100*RND) 110 IF A=0 AND B=0 AND C=0 THEN 100 120 P1=A/100+B+C*100\D,E,F,G,P=0 125 PRINT "SIGNAL","CURRENT ROOM","SEC. INTO","COORDINATES FOR" 130 PRINT "STRENGTH","L , W , H","MISSION","SEARCH (L,W,H)" 132 B$=" ####.## ## ## ## ### " 135 PRINT USING B$,10000-ABS(P1-P),D,E,F,G; 140 INPUT D,E,F\G=G+10\P=D/100+E+F*100\IF P=P1 THEN 170 145 IF G=200 THEN 150 ELSE GOTO 180 150 PRINT "BOOOOOOOMMM!!!"\ PRINT "YOU BLEW IT. THE BUILDING BLEW UP." 155 PRINT \INPUT "WANT TO PLAY AGAIN (YES OR NO)";A$ 160 IF A$="NO" THEN 999 ELSE PRINT \ PRINT \GOTO 100 170 PRINT "BOMB DEACTIVATED AT";G;"SECONDS!!!"\ PRINT \GOTO 155 180 IF D>99 OR D<0 OR E>99 OR E<0 THEN 200 190 IF F>99 THEN 220 ELSE IF F<0 THEN 230 ELSE GOTO 135 200 PRINT "YOU WALKED OUT A WINDOW ON THE";\IF F<4 THEN 240 201 PRINT F;"TH FLOOR!!!" 202 PRINT "YOU WERE KILLED AND";200-G;"SECONDS LATER THE BUILDING" 203 PRINT "BLEW UP!!!"\ PRINT \GOTO 155 220 PRINT "YOU ARE NOW";F*9;"FEET IN THE AIR!!!"\GOTO 202 230 PRINT "YOU ARE NOW -";F*9;"FEET UNDERGROUND!!!"\GOTO 202 240 ON F GOTO 250,260,270 250 PRINT " 1ST FLOOR!!!"\GOTO 202 260 PRINT " 2ND FLOOR!!!"\GOTO 202 270 PRINT " 3RD FLOOR!!!"\GOTO 202 999 END 5 RANDOM \PRINT "YOU ARE NOW A PILOT IN A WORLD WAR II BOMBER" 10 INPUT "WHAT SIDE -- ITALY(1), ALLIES(2), JAPANESE(3), GERMANY(4)";A 20 IF A>0 AND A<5 THEN 25 ELSE PRINT "TRY AGAIN...."\GOTO 10 25 ON A GOTO 30,110,200,220 30 INPUT "WHAT IS YOUR TARGET -- ALBANIA(1), GREECE(2), NORTH AFRICA(3)";B 40 IF B>0 AND B<4 THEN 45 ELSE PRINT "TRY AGAIN...."\GOTO 30 45 PRINT \ ON B GOTO 50,80,90 50 PRINT "SHOULD BE EASY.YOU'RE FLYING A NAZI-MADE PLANE." 60 GOTO 280 80 PRINT "BE CAREFUL!!!"\GOTO 280 90 PRINT "YOU'RE GOING FOR THE OIL, EH?"\GOTO 280 110 INPUT "AIRCRAFT -- LIBERATOR(1), B-29(2), B-17(3), LANCASTER(4)";G 120 IF G>0 AND G<5 THEN 125 ELSE PRINT "TRY AGAIN...."\GOTO 110 125 PRINT \ON G GOTO 130,150,170,190 130 PRINT "YOU'VE GOT 2 TONS OF BOMBS FLYING FOR PLOESTI" 140 GOTO 280 150 PRINT "YOU'RE DROPPING THE A-BOMB ON HIROSHIMA." 160 GOTO 280 170 PRINT "YOU'RE CHASING THE BISMARK IN THE NORTH SEA." 180 GOTO 280 190 PRINT "YOU'RE BUSTING A GERMAN HEAVY WATER PLANT IN THE RUHR." 195 GOTO 280 200 PRINT "YOU'RE FLYING A KAMIKAZE (SUICIDE BOMBER) OVER THE USS LEXINGTON." 205 INPUT "YOUR FIRST KAMIKAZE MISSION (Y OR N)";F$ 208 IF F$="N" THEN S=0\GOTO 358 210 PRINT \IF RND>.65 THEN 325 ELSE 380 220 PRINT "A NAZI, EH? OH WELL. ARE YOU GOING FOR RUSSIA(1), ENGLAND(2)" 230 INPUT "OR FRANCE(3)";M\IF M>0 AND M<4 THEN 235 ELSE PRINT "WHAT??"\GOTO 220 235 PRINT \ON M GOTO 250,260,270 250 PRINT "YOU'RE NEARING STALINGRAD....."\GOTO 280 260 PRINT "NEARING LONDON. BE CAREFUL, THEY'VE GOT A GOOD AIR-RAID DEFENCE." 265 GOTO 280 270 PRINT "NEARING VERSAILLES. DUCK SOUP. THEY'RE NEARLY DEFENSELESS." 280 PRINT 285 INPUT "HOW MANY MISSIONS HAVE YOU FLOWN";D 290 IF D<160 THEN 300 ELSE PRINT "MISSIONS, NOT MILES...." 295 PRINT "150 MISSIONS IS HIGH EVEN FOR OLD-TIMERS. NOW THEN,"\GOTO 285 300 PRINT \IF D<100 THEN 310 ELSE PRINT "THAT'S PUSHING THE ODDS!"\GOTO 320 310 IF D<25 THEN PRINT "FRESH OUT OF TRAINING, EH?" 320 PRINT \IF D<160*RND THEN 330 325 PRINT "DIRECT HIT!!!! ";INT(100*RND);"KILLED! MISSION SUCCESSFUL."\GOTO 390 330 PRINT "MISSED TARGET BY";INT(2+30*RND);"MILES!!" 335 PRINT "NOW YOU'RE REALLY IN FOR IT !!"\PRINT 340 INPUT "DOES THE ENEMY HAVE GUNS(1), MISSILES(2), OR BOTH(3)";R 345 IF R>0 AND R<4 THEN 350 ELSE PRINT "TRY AGAIN...."\GOTO 340 350 PRINT \IF R=2 THEN 360 355 INPUT "WHAT IS THE PERCENT HIT RATE OF THE ENEMY GUNNERS (10 TO 50)";S 358 IF S<10 THEN PRINT "YOU LIE, BUT YOU'LL PAY...."\PRINT \GOTO 380 360 PRINT \IF R>1 THEN T=35 365 IF S+T>100*RND THEN 380 370 PRINT "YOU MADE IT THROUGH TREMENDOUS FLAK!!"\GOTO 390 380 PRINT "* * * * * BOOM * * * * *" 384 PRINT "YOU HAVE BEEN SHOT DOWN......." 386 PRINT "DEARLY BELOVED, WE ARE GATHERED HERE TODAY TO PAY OUR LAST TRIBUTE.." 390 PRINT \PRINT \PRINT \INPUT "PLAY AGAIN (Y OR N)";U$\IF U$="Y" THEN 10 400 PRINT "CHICKEN!!!!!"\PRINT \PRINT 999 END 90 DIM T(20) 100 PRINT "THIS SIMULATION LETS YOU SPECIFY THE INITIAL VELOCITY" 110 PRINT "OF A BALL THROWN STRAIGHT UP, AND THE COEFFICIENT OF" 120 PRINT "ELASTICITY OF THE BALL. PLEASE USE A DECIMAL FRACTION" 130 PRINT "COEFFICIENT (LESS THAN 1)." 131 PRINT 132 PRINT "YOU ALSO SPECIFY THE TIME INCREMENT TO BE USED IN" 133 PRINT "'STROBING' THE BALL'S FLIGHT (TRY .1 INITIALLY)." 134 PRINT 135 PRINT "TIME INCREMENT (SEC)"; 136 INPUT S2 140 PRINT 150 PRINT "VELOCITY (FPS)"; 160 INPUT V 165 PRINT 170 PRINT "COEFFICIENT"; 180 INPUT C 184 PRINT 185 PRINT "FEET" 186 PRINT 187 S1=INT(70/(V/(16*S2))) 190 FOR I=1 TO S1 200 T(I)=V*C^(I-1)/16 210 NEXT I 220 FOR H=INT(-16*(V/32)^2+V^2/32+.5) TO 0 STEP -.5 221 IF INT(H)<>H THEN 225 222 PRINT H; 225 L=0 230 FOR I=1 TO S1 240 FOR T=0 TO T(I) STEP S2 245 L=L+S2 250 IF ABS(H-(.5*(-32)*T^2+V*C^(I-1)*T))>.25 THEN 270 260 PRINT TAB(L/S2);"O"; 270 NEXT T 275 T=T(I+1)/2 276 IF -16*T^2+V*C^(I-1)*T10 THEN LET E=10 130 LET X=1 131 IF E<10 GOTO 150 135 IF E=10 THEN LET F(X)=10 140 LET X=X+2 145 GOTO 20 150 LET F(X)=E 155 LET X=X+1 160 RANDOMIZE 165 LET G=10*RND 170 LET G=G^2 175 LET G=G*A 180 LET G=SQR(G) 181 LET G=INT(G) 190 LET F(X)=G 200 LET X=X+1 205 IF X<22 GOTO 20 210 LET X=0 220 LET X=X+1 230 PRINT F(X),F(X+1) 240 IF X<22 THEN 220 250 END 5 REM *** CONVERTED TO RSTS/E BY DAVID AHL, DIGITAL 10 REM BRIAN MONTE LEIBOWITZ GRADE 7 20 REM HARRISON JR. SR. HIGH SCHOOL 30 REM HARRISON N.Y. 50 A,B,H,L,N,P,Q,R,S,T,U,V,Y=0 60 PRINT "THE GAME BUG IS LIKE THE GAME COOTI," 70 PRINT "I HOPE YOU ENJOY THIS GAME" 80 PRINT 90 PRINT "DO YOU WANT INSTRUCTIONS"; 100 INPUT Z$ 110 IF Z$="NO" THEN 300 120 PRINT "THE OBJECT OF BUG IS TO FINISH YOUR BUG BEFORE I FINISH MINE" 130 PRINT "EACH NUMBER STANDS FOR A PART OF THE BUGS BODY" 140 PRINT "I WILL ROLL THE DIE FOR YOU, TELL YOU WHAT I ROLLED FOR YOU" 150 PRINT "WHAT THE NUMBER STANDS FOR, AND IF YOU CAN GET THE PART." 160 PRINT "IF YOU CAN GET THE PART I WILL GIVE IT TO YOU." 170 PRINT "THE SAME WILL HAPPEN ON MY TURN" 180 PRINT "IF THERE IS A CHANGE IN EITHER BUG I WILL GIVE YOU THE " 190 PRINT "OPTION OF SEEING THE PICTURES OF THE BUGS." 200 PRINT "THE NUMBERS STAND FOR PARTS AS FOLLOWS:" 210 PRINT "NUMBER","PART","NUMBER OF PART NEEDED" 220 PRINT "1","BODY","1" 230 PRINT "2","NECK","1" 240 PRINT "3","HEAD","1" 250 PRINT "4","FEELERS","2" 260 PRINT "5","TAIL","1" 270 PRINT "6","LEGS","6" 280 PRINT 290 PRINT 300 IF Y>0 THEN 2480 310 LET Z = INT (6*RND+1) 320 C=1 330 PRINT "YOU ROLLED A ";Z 340 ON Z GOTO 350,430,540,650,760,870 350 PRINT "1=BODY" 360 IF B=1 THEN 410 370 PRINT "YOU NOW HAVE A BODY" 380 B=1 390 C=0 400 GOTO 970 410 PRINT "YOU DO NOT NEED A BODY" 420 GOTO 970 430 PRINT "2=NECK" 440 IF N=1 THEN 500 450 IF B=0 THEN 520 460 PRINT "YOU NOW HAVE A NECK" 470 N=1 480 C=0 490 GOTO 970 500 PRINT "YOU DO NOT NEED A NECK" 510 GOTO 970 520 PRINT "YOU DO NOT HAVE A BODY" 530 GOTO 970 540 PRINT "3=HEAD" 550 IF N=0 THEN 610 560 IF H=1 THEN 630 570 PRINT "YOU NEEDED A HEAD" 580 H=1 590 C=0 600 GOTO 970 610 PRINT "YOU DO NOT HAVE A NECK" 620 GOTO 970 630 PRINT "YOU HAVE A HEAD" 640 GOTO 970 650 PRINT "4=FEELERS" 660 IF H=0 THEN 740 670 IF A=2 THEN 720 680 PRINT "I NOW GIVE YOU A FEELER" 690 LET A=A+1 700 C=0 710 GOTO 970 720 PRINT "YOU HAVE TWO FEELERS ALREADY" 730 GOTO 970 740 PRINT "YOU DO NOT HAVE A HEAD" 750 GOTO 970 760 PRINT "5=TAIL" 770 IF B=0 THEN 830 780 IF T=1 THEN 850 790 PRINT "I NOW GIVE YOU A TAIL" 800 LET T=T+1 810 C=0 820 GOTO 970 830 PRINT "YOU DO NOT HAVE A BODY" 840 GOTO 970 850 PRINT "YOU ALREADY HAVE A TAIL" 860 GOTO 970 870 PRINT "6=LEG" 880 IF L=6 THEN 940 890 IF B=0 THEN 960 900 LET L=L+1 910 C=0 920 PRINT "YOU NOW HAVE ";L;" LEG(S)" 930 GOTO 970 940 PRINT "YOU HAVE 6 FEET ALREADY" 950 GOTO 970 960 PRINT "YOU DO NOT HAVE A BODY" 970 LET X = INT (6*RND+1) 980 PRINT "I ROLLED A ";X 990 ON X GOTO 1000,1080,1190,1300,1410,1520 1000 PRINT "1=BODY" 1010 IF P=1 THEN 1060 1020 PRINT "I NOW HAVE A BODY" 1030 C=0 1040 P=1 1050 GOTO 1630 1060 PRINT "I DO NOT NEED A BODY" 1070 GOTO 1630 1080 PRINT "2=NECK" 1090 IF Q=1 THEN 1150 1100 IF P=0 THEN 1170 1110 PRINT "I NOW HAVE A NECK" 1120 Q=1 1130 C=0 1140 GOTO 1630 1150 PRINT "I DO NOT NEED A NECK" 1160 GOTO 1630 1170 PRINT "I DO NOT HAVE A BODY" 1180 GOTO 1630 1190 PRINT "3=HEAD" 1200 IF Q=0 THEN 1260 1210 IF R=1 THEN 1280 1220 PRINT "I NEEDED A HEAD" 1230 R=1 1240 C=0 1250 GOTO 1630 1260 PRINT "I DO NOT HAVE A NECK" 1270 GOTO 1630 1280 PRINT "I DO NOT NEED A HEAD " 1290 GOTO 1630 1300 PRINT "4=FEELERS" 1310 IF R=0 THEN 1390 1320 IF S=2 THEN 1370 1330 PRINT "I GET A FEELER" 1340 LET S=S+1 1350 C=0 1360 GOTO 1630 1370 PRINT "I HAVE 2 FEELERS ALREADY" 1380 GOTO 1630 1390 PRINT "I DO NOT HAVE A HEAD" 1400 GOTO 1630 1410 PRINT "5=TAIL" 1420 IF P=0 THEN 1480 1430 IF U=1 THEN 1500 1440 PRINT "I NOW HAVE A TAIL" 1450 U=1 1460 C=0 1470 GOTO 1630 1480 PRINT "I DO NOT HAVE A BODY" 1490 GOTO 1630 1500 PRINT "I DO NOT NEED A TAIL" 1510 GOTO 1630 1520 PRINT "6=LEGS" 1530 IF V=6 THEN 1590 1540 IF P=0 THEN 1610 1550 LET V=V+1 1560 C=0 1570 PRINT "I NOW HAVE ";V;" LEG(S)" 1580 GOTO 1630 1590 PRINT "I HAVE 6 FEET" 1600 GOTO 1630 1610 PRINT "I DO NOT HAVE A BODY" 1620 GOTO 1630 1630 IF A=2 AND T=1 AND L=6 THEN 1650 1640 GOTO 1670 1650 PRINT "YOUR BUG IS FINISHED" 1660 LET Y=Y+1 1670 IF S=2 AND P=1 AND V=6 THEN 1690 1680 GOTO 1710 1690 PRINT "MY BUG IS FINISHED" 1700 LET Y=Y+2 1710 IF C=1 THEN 300 1720 PRINT "DO YOU WANT THE PICTURES"; 1730 INPUT Z$ 1740 IF Z$="NO" THEN 300 1750 PRINT "*****YOUR BUG*****" 1760 PRINT 1770 PRINT 1780 IF A=0 THEN 1860 1790 FOR Z=1 TO 4 1800 FOR X=1 TO A 1810 PRINT TAB(10); 1820 PRINT "A "; 1830 NEXT X 1840 PRINT 1850 NEXT Z 1860 IF H=0 THEN 1880 1870 GOSUB 2470 1880 IF N=0 THEN 1920 1890 FOR Z=1 TO 2 1900 PRINT " N N" 1910 NEXT Z 1920 IF B=0 THEN 2000 1930 PRINT " BBBBBBBBBBBB" 1940 FOR Z=1 TO 2 1950 PRINT " B B" 1960 NEXT Z 1970 IF T<>1 THEN 1990 1980 PRINT "TTTTTB B" 1990 PRINT " BBBBBBBBBBBB" 2000 IF L=0 THEN 2080 2010 FOR Z=1 TO 2 2020 PRINT TAB(5); 2030 FOR X=1 TO L 2040 PRINT " L"; 2050 NEXT X 2060 PRINT 2070 NEXT Z 2080 FOR Z=1 TO 4 2090 PRINT 2100 NEXT Z 2110 PRINT "******MY BUG*******" 2120 PRINT 2130 PRINT 2140 PRINT 2150 IF S=0 THEN 2230 2160 FOR Z=1 TO 4 2170 PRINT TAB(10); 2180 FOR X=1 TO S 2190 PRINT "F "; 2200 NEXT X 2210 PRINT 2220 NEXT Z 2230 IF R<>1 THEN 2250 2240 GOSUB 2470 2250 IF Q=0 THEN 2280 2260 PRINT " N N" 2270 PRINT " N N" 2280 IF P=0 THEN 2360 2290 PRINT " BBBBBBBBBBBB" 2300 FOR Z=1 TO 2 2310 PRINT " B B" 2320 NEXT Z 2330 IF U<>1 THEN 2350 2340 PRINT "TTTTTB B" 2350 PRINT " BBBBBBBBBBBB" 2360 IF V=0 THEN 2450 2370 FOR Z=1 TO 2 2380 PRINT TAB(5); 2390 FOR X=1 TO V 2400 PRINT " L"; 2410 NEXT X 2420 PRINT 2430 NEXT Z 2450 IF Y<>0 THEN 2540 2460 GOTO 300 2470 PRINT " HHHHHHH" 2480 PRINT " H H" 2490 PRINT " H O O H" 2500 PRINT " H H" 2510 PRINT " H V H" 2520 PRINT " HHHHHHH" 2530 RETURN 2540 PRINT "I HOPE YOU ENJOYED THE GAME, PLAY AGAIN SOON !!!" 2550 END 10 REM *** BULLSEYE BY DAVE AHL 20 PRINT "GAME OF BULLSEYE"\PRINT \RANDOMIZE 30 PRINT "IN THIS GAME, UP TO 20 PLAYERS THROW DARTS AT A TARGET" 40 PRINT "WITH 10, 20, 30, AND 40 POINT ZONES. THE OBJECTIVE IS" 50 PRINT "TO GET 200 POINTS."\PRINT 60 PRINT "THROW","DESCRIPTION",,"PROBABLE SCORE" 70 PRINT " 1","FAST OVERARM",,"BULLSEYE OR COMPLETE MISS" 80 PRINT " 2","CONTROLLED OVERARM","10, 20, OR 30 POINTS" 90 PRINT " 3","UNDERARM",,"ANYTHING"\PRINT 100 DIM A$(20),S(20),W(10)\R,M=0\S(I)=0 FOR I=1 TO 20 110 INPUT "HOW MANY PLAYERS";N\PRINT 120 FOR I=1 TO N 130 PRINT "NAME OF PLAYER";I;\INPUT A$(I) 140 NEXT I 150 R=R+1\PRINT \PRINT "ROUND";R 160 FOR I=1 TO N 170 PRINT \PRINT A$(I);"'S THROW";\INPUT T 180 IF T<0 OR T>3 THEN PRINT "INPUT 1, 2, OR 3"\GOTO 170 190 ON T GOTO 200,210,220 200 P1=.65\P2=.55\P3=.5\P4=.5\GOTO 230 210 P1=.99\P2=.77\P3=.43\P4=.01\GOTO 230 220 P1=.95\P2=.75\P3=.45\P4=.05 230 U=RND 240 IF U>=P1 THEN PRINT "BULLSEYE!! 40 POINTS!"\B=40\GOTO 290 250 IF U>=P2 THEN PRINT "30-POINT ZONE!"\B=30\GOTO 290 260 IF U>=P3 THEN PRINT "20-POINT ZONE"\B=20\GOTO 290 270 IF U>=P4 THEN PRINT "WHEW! 10 POINTS."\B=10\GOTO 290 280 PRINT "MISSED THE TARGET. TOO BAD!"\B=0 290 S(I)=S(I)+B\PRINT "TOTAL SCORE =";S(I)\NEXT I 300 FOR I=1 TO N 310 IF S(I)>=200 THEN M=M+1\W(M)=I 320 NEXT I 330 IF M=0 THEN 150 340 PRINT \PRINT "WE HAVE A WINNER!!"\PRINT 350 PRINT A$(W(M));" SCORED";S(W(M));"POINTS." FOR I=1 TO M 360 PRINT \PRINT "THANKS FOR THE GAME!"\END 10 ! & !CHECKERS INITALIZATION PROGRAM & ! 15 ! PROGRAM BY JEFF DALTON, CLASS OF '74, NORTHFIELD MT. HERMON SCH. 30 K$=K$+"0" FOR C0%=1% TO 35%\ B$="1111111101111"\ FOR C0%=1% TO 22%\ & B$=B$+"0"\ R$=R$+"0"\ NEXT C0%\ R$=R$+"1111011111111" 40 S$=SYS(CHR$(8%)+B$+R$+K$) ! WRITE POS INTO CORE COM STRING 50 PRINT \ PRINT "WELCOME TO PDP-11 CHECKERS!"\ INPUT "INSTRUCTIONS"; C$\ & IF LEFT(C$,1%)="N" THEN 300 65 PRINT \ PRINT " THIS IS A GAME OF COMPUTERIZED CHECKERS."\ & PRINT "YOU ARE RED (SQUARES 23 TO 35), AND I AM BLACK (SQUARES 1 TO 13)." 70 PRINT "TO SIMPLIFY THE GAME FOR THE COMPUTER, SQUARES 9, 18, AND 27"\ & PRINT "ARE NOT USED." 75 PRINT "WHEN THE COMPUTER MOVES, IT PRINTS THE NUMBER OF THE SQUARE IT"\ & PRINT "MOVES FROM AND THE NUMBER OF THE SQUARE IT MOVES TO. IT WILL THEN"\ & PRINT "TELL YOU WHAT CHECKERS, IF ANY, HAVE BEEN JUMPED OVER." 80 PRINT \ PRINT "WHEN IT IS YOUR MOVE, YOU MAY:" & \ PRINT " 1) TYPE 'BOARD' TO SEE THE BOARD" 85 PRINT " 2) TYPE 'NUM' TO SEE HOW THE BOARD IS NUMBERED"\ & PRINT " 3) TYPE 'MOVES' TO SEE ALL YOUR LEGAL MOVES" 90 PRINT " 4) TYPE 'RESIGN' TO RESIGN"\ & PRINT " 5) TYPE A MOVE TO MAKE A MOVE" 100 PRINT \ PRINT "YOU TYPE YOUR MOVE AS A SERIES OF NUMBERS SEPARATED BY '-'."\ & PRINT "A NUMBER LESS THAN TEN MUST BE PRECEDED BY A ZERO, FOR EXAMPLE," 105 PRINT "SEVEN WOULD BE TYPED AS '07'. THE FIRST NUMBER IS ALWAYS THE"\ & PRINT "NUMBER OF THE SQUARE YOU WILL MOVE FROM, AND THE LAST NUMBER IS" 110 PRINT "ALWAYS THE NUMBER OF THE SQUARE YOU WILL MOVE TO. THE NUMBERS OF" 115 PRINT "ANY SQUARES YOU WILL JUMP OVER GO IN BETWEEN."\ & PRINT \ PRINT "IF YOU ARE IN DOUBT, GET A LIST OF YOUR LEGAL MOVES (TYPE 'MOVES')." 120 PRINT \ PRINT "THIS PROGRAM IS IN TWO PARTS. THIS, THE FIRST PART, PRINTS THE"\ & PRINT "INSTRUCTIONS AND SETS UP THE INITAL BOARD POSITION. IT THEN CHAINS"\ & PRINT "THE SECOND PROGRAM WHICH DOES THE ACTUAL GAME PLAYING."\ PRINT 200 PRINT "HERE IS HOW THE BOARD IS NUMBERED:"\ PRINT 210 PRINT "--35--34--33--32"\ PRINT "31--30--29--28--" 215 PRINT "--26--25--24--23"\ PRINT "22--21--20--19--" 220 PRINT "--17--16--15--14"\ PRINT "13--12--11--10--" 225 PRINT "--08--07--06--05"\ PRINT "04--03--02--01--"\ PRINT 230 PRINT \ PRINT "GOOD LUCK!"\ PRINT 300 CHAIN "[2,11] MACH" LINE 10\ END 5 REM *** CONVERTED TO RSTS/E BY DAVID AHL, DIGITAL 10 PRINT " I AM CHIEF NUMBERS FREEK, THE GREAT INDIAN MATH GOD." 20 PRINT "ARE YOU READY TO TAKE THE TEST YOU CALLED ME OUT FOR"; 30 INPUT A$ 40 IF A$= "YES" THEN 60 50 PRINT "SHUT UP PALEFACE WITH WISE TOUNGE." 60 PRINT " TAKE A NUMBER AND ADD 3. DIVIDE THIS NUMBER BY 5 AND" 70 PRINT "MULTIPLY BY 8. DIVIDE BY 5 AND ADD THE SAME. SUBTRACT 1." 80 PRINT "WHAT DO YOU HAVE"; 85 PRINT 90 INPUT B 100 LET C = (B+1-5)*5/8*5-3 110 PRINT "I BET YOUR NUMBER WAS " ;C;" WAS I RIGHT"; 120 INPUT D$ 130 IF D$="YES" THEN 510 140 PRINT "WHAT WAS YOUR ORIGINAL NUMBER"; 150 INPUT K 155 LET F=K+3 160 LET G=F/5 170 LET H=G*8 180 LET I=H/5+5 190 LET J=I-1 200 PRINT "SO YOU THINK YOU'RE SO SMART, EH?" 210 PRINT "NOW WATCH...." 230 PRINT K;"PLUS 3 EQUALS ";F;". THIS DIVIDED BY 5 EQUALS";G;"," 240 PRINT "THIS TIMES 8 EQUALS";H;". IF WE DIVIDE BY 5 AND ADD THE SAME," 250 PRINT "WE GET";I;". MINUS 1 EQUALS";J;"." 260 PRINT "NOW DO YOU BELIEVE ME"; 270 INPUT Z$ 290 IF Z$ ="YES" THEN 510 295 PRINT "YOU HAVE MADE ME MAD!!!" 300 PRINT "THERE MUST NOW BE A GREAT LIGHTNING BOLT!" 310 PRINT \PRINT 330 FOR X=30 TO 22 STEP -1 340 PRINT TAB(X) ;"X X" 350 NEXT X 360 PRINT TAB(21);"X XXX" 370 PRINT TAB(20) ;"X X" 380 PRINT TAB(19) ;"XX X" 390 FOR Y=20 TO 13 STEP -1 400 PRINT TAB(Y) ;"X X" 410 NEXT Y 420 PRINT TAB(12) ;"XX" 430 PRINT TAB(11) ;"X" 440 PRINT TAB(10) ;"*" 450 PRINT \PRINT "##################################"\PRINT 510 END 1 !**** CHECK THE CHECKSUM ***** & !**************************************************** 50 ON ERROR GOTO 1000 100 ! & !START HERE & ! 110 OPEN "KB:" FOR INPUT AS FILE 11% 120 PRINT "FILE : "; \ & INPUT LINE #11% ,F$ \ & F$=CVT$$(F$,-1%) 130 I%,I0%,I1%,C%,B% = 0% 200 ! & !OPEN AND GET STATUS & ! 210 OPEN F$ FOR INPUT AS FILE 1% 220 S%=(STATUS AND 255%)/2%+1% \ IF S%>10% THEN 32710 230 ON S% GOTO 235,32710,240,32710,250,32710,32710,32710,32710,235 235 I2%=1% \ I1%=512% \ ON ERROR GOTO 650 \ GOTO 300 240 I2%=1% \ I1%=510% \ ON ERROR GOTO 650 \ GOTO 300 250 I2%=2% \ I1%=128% \ ON ERROR GOTO 750 300 ! & !DO IT & ! 310 I0%=1000% ! SO WE DO FIRST GET 320 F%=-1% ! LOOKING FOR A 1 325 GOSUB 400 \ IF X%<>1% THEN 325 330 F%=0% \ GOSUB 400 \ IF X%<>0% THEN 32720 340 GOSUB 500 \ B%=X%-4% 350 GOSUB 400 \ IF B%>=0% THEN 350 360 IF (C% AND 255%)<>0% THEN 32720 370 C%=0% \ GOTO 320 400 ! & !GET 1 BYTE & ! 410 IF I0%>=I1% THEN I0%=0% \ ON I2% GOSUB 600,700 420 I0%=I0%+1% \ FIELD #1% , I0%-1% AS G$ , 1% AS X$ 430 X%=ASCII(X$) \ C%=C%+X% \ B%=B%-1% 440 RETURN 500 ! & !GET 1 WORD & ! 510 GOSUB 400 \ X1%=X% 520 GOSUB 400 \ X%=SWAP%(X%)+X1% 530 RETURN 600 ! & !GET THE NEXT RECORD & ! 610 GET #1% \ RETURN 650 IF ERR<>11 THEN 32730 660 RESUME 1000 700 ! & !GET SOME FROM PR: & ! 705 IF E% THEN 1000 710 GET #1% \ I1%=RECOUNT \ RETURN 750 IF ERR<>11 THEN 32730 760 E%=-1% \ I1%=RECOUNT \ RESUME 770 770 RETURN 1000 ! & !ERROR ENTRY & ! 1005 IF ERL=120 THEN 32766 ELSE IF ERL=210 THEN 32730 1010 IF NOT F% THEN 32720 1050 PRINT " OK!" \ CLOSE 1 \ GOTO 50 32710 PRINT " INVALID DEVICE!" \ GOTO 32766 32720 PRINT " CHECKSUM ERROR!" \ GOTO 32766 32730 ON ERROR GOTO 0 32766 CLOSE 1,2,3,4,5,6,7,8,9,10,11,12 32767 END 5 REM *** CONVERTED TO RSTS/E BY DAVID AHL, DIGITAL 100 REM ***THE GAME OF CHOMP*** 105 REM ***SUBMITTED BY PEOPLES COMPUTER CENTER*** 110 PRINT 120 PRINT "THIS IS THE GAME OF CHOMP (SCIENTIFIC AMERICAN, JAN 1973)" 130 PRINT "WANT THE RULES (1=YES, 0=NO!)"; 140 INPUT R 150 IF R=0 THEN 340 160 F=1 170 R=5 180 C=7 190 PRINT "CHOMP IS FOR 1 OR MORE PLAYERS (HUMANS ONLY)." 200 PRINT 210 PRINT "HERE'S HOW A BOARD LOOKS (THIS ONE IS 5 BY 7):" 220 GOSUB 540 230 PRINT 240 PRINT "THE BOARD IS A BIG COOKIE - R ROWS HIGH AND C COLUMNS" 250 PRINT "WIDE. YOU INPUT R AND C AT THE START. IN THE UPPER LEFT" 260 PRINT "CORNER OF THE COOKIE IS A POISON SQUARE (P). THE ONE WHO" 270 PRINT "CHOMPS THE POISON SQUARE LOSES. TO TAKE A CHOMP, TYPE THE" 280 PRINT "ROW AND COLUMN OF ONE OF THE SQUARES ON THE COOKIE." 290 PRINT "ALL OF THE SQUARES BELOW AND TO THE RIGHT OF THAT SQUARE" 300 PRINT "(INCLUDING THAT SQUARE, TOO) DISAPPEAR -- CHOMP!!" 310 PRINT "NO FAIR CHOMPING SQUARES THAT HAVE ALREADY BEEN CHOMPED," 320 PRINT "OR THAT ARE OUTSIDE THE ORIGINAL DIMENSIONS OF THE COOKIE." 330 PRINT 340 PRINT "HERE WE GO..." 350 DIM A(10,10) 360 F=0 370 FOR I=1 TO 10 372 FOR J=1 TO 10 375 A(I,J)=0 377 NEXT J 379 NEXT I 380 PRINT 390 PRINT "HOW MANY PLAYERS"; 400 INPUT P 410 I1=0 420 PRINT "HOW MANY ROWS"; 430 INPUT R 440 IF R <= 9 THEN 470 450 PRINT "TOO MANY ROWS (9 IS MAXIMUM). NOW, "; 460 GOTO 420 470 PRINT "HOW MANY COLUMNS"; 480 INPUT C 490 IF C <= 9 THEN 530 500 PRINT "TOO MANY COLUMNS (9 IS MAXIMUM). NOW, "; 510 GOTO 470 530 PRINT 540 FOR I=1 TO R 550 FOR J=1 TO C 560 A(I,J)=1 570 NEXT J 580 NEXT I 590 A(1,1)=-1 600 REM PRINT THE BOARD 610 PRINT 620 PRINT TAB(7);"1 2 3 4 5 6 7 8 9" 630 FOR I=1 TO R 640 PRINT I;TAB(7); 650 FOR J=1 TO C 660 IF A(I,J)=-1 THEN 700 670 IF A(I,J)=0 THEN 720 680 PRINT "* "; 690 GOTO 710 700 PRINT "P "; 710 NEXT J 720 PRINT 730 NEXT I 740 PRINT 750 IF F=0 THEN 770 760 RETURN 770 REM GET CHOMPS FOR EACH PLAYER IN TURN 780 LET I1=I1+1 790 LET P1=I1-INT(I1/P)*P 800 IF P1 <> 0 THEN 820 810 P1=P 820 PRINT "PLAYER ";P1 830 PRINT "COORDINATES OF CHOMP (ROW,COLUMN)"; 840 INPUT R1,C1 850 IF R1<1 THEN 920 860 IF R1>R THEN 920 870 IF C1<1 THEN 920 880 IF C1>C THEN 920 890 IF A(R1,C1)=0 THEN 920 900 IF A(R1,C1)=-1 THEN 1010 910 GOTO 940 920 PRINT "NO FAIR. YOU'RE TRYING TO CHOMP ON EMPTY SPACE!" 930 GOTO 820 940 FOR I=R1 TO R 950 FOR J=C1 TO C 960 A(I,J)=0 970 NEXT J 980 NEXT I 990 GOTO 610 1000 REM END OF GAME DETECTED IN LINE 900 1010 PRINT "YOU LOSE, PLAYER ";P1 1020 PRINT 1030 PRINT "AGAIN (1=YES; 0=NO!)"; 1040 INPUT R 1050 IF R=1 THEN 340 1060 END 1 LET L=0\LET W=0\LET R1=0\LET P1=0 2 LET Q1=0\LET M3=0\LET M4=0 3 LET P2=0\LET T1=0\LET T2=0 5 REM ARKABLE PROGRAM BY L. CRAM , L. GOODIE , AND D. HIBBARD 6 PRINT "DO YOU WANT DESCRIPTIONS (0=YES, 1=NO)"; 7 INPUT Z 9 FOR U=1 TO 6 10 PRINT 11 NEXT U 13 IF Z=1 THEN 100 15 PRINT "THIS IS A CIVIL WAR SIMULATION." 20 PRINT "TO PLAY, TYPE A RESPONSE WHEN THE COMPUTER ASKS." 30 PRINT "REMEMBER THAT ALL FACTORS ARE INTERRELATED AND THAT YOUR" 35 PRINT "RESPONSES COULD CHANGE HISTORY. FACTS AND FIGURES USED ARE" 40 PRINT "BASED ON THE ACTUAL OCCURENCE. MOST BATTLES TEND TO RESULT" 45 PRINT "AS THEY DID IN THE CIVIL WAR, BUT IT ALL DEPENDS ON YOU!!" 50 PRINT 51 PRINT "THE OBJECT OF THE GAME IS TO WIN AS MANY BATTLES AS POSSIBLE" 52 PRINT 55 PRINT "YOUR CHOICES FOR DEFENSIVE STRATEGY ARE:" 60 PRINT " (1) ARTILLERY ATTACK" 65 PRINT " (2) FORTIFICATION AGAINST FRONTAL ATTACK" 70 PRINT " (3) FORTIFICATION AGAINST FLANKING MANUEVERS" 75 PRINT " (4) FALLING BACK" 80 PRINT "YOUR CHOICES FOR OFFENSIVE STRATEGY ARE:" 85 PRINT " (1) ARTILLERY ATTACK" 90 PRINT " (2) FRONTAL ATTACK" 95 PRINT " (3) FLANKING MANUEVERS" 96 PRINT " (4) ENCIRCLEMENT" 97 PRINT "YOU MAY SURRENDER BY TYPING A '5' FOR YOUR STRATEGY." 98 PRINT 99 PRINT "YOU ARE THE CONFEDERACY. GOOD LUCK!" 100 READ M1,M2,C1,C2,M,A,U 101 LET I1=10+(L-W)*2 102 LET I2=10+(W-L)*2 103 LET D1=100*INT((M1*(100-I1)/2000)*(1+(R1-Q1)/(R1+1))+0.5) 104 LET D2=100*INT(M2*(100-I2)/2000+0.5) 105 LET F1=5*M1/6 106 LET A1=Z 107 FOR U=1 TO 4 108 PRINT 109 NEXT U 110 PRINT "THIS IS THE BATTLE OF "; 115 GOSUB 800 120 PRINT " ","CONFEDERACY"," UNION" 130 PRINT "MEN"," ";INT(M1*(1+(P1-T1)/(M3+1)))," "; 131 PRINT INT(M2*(1+(P2-T2)/(M4+1))) 140 PRINT "MONEY","$";D1,"$";D2 150 PRINT "INFLATION"," ";I1+15;"%"," ";I2;"%" 160 PRINT 170 PRINT "HOW MUCH DO YOU WISH TO SPEND FOR FOOD"; 180 INPUT F 185 IF F<0 THEN 750 190 PRINT "HOW MUCH DO YOU WISH TO SPEND FOR SALARIES"; 200 INPUT S 205 IF S<0 THEN 750 210 PRINT "HOW MUCH DO YOU WISH TO SPEND FOR AMMUNITION"; 220 INPUT B 221 IF B<0 THEN 750 222 PRINT 224 IF F+S+B<=D1 THEN 230 226 PRINT "THINK AGAIN! YOU HAVE ONLY $" ;D1 228 GOTO 160 230 LET O=((2*F^2+S^2)/F1^2+1) 235 IF O<10 THEN 260 240 PRINT "MORALE IS HIGH" 250 GOTO 300 260 IF O<5 THEN 290 270 PRINT "MORALE IS FAIR" 280 GOTO 300 290 PRINT "MORALE IS POOR" 300 IF M<>3 THEN 330 310 PRINT "YOU ARE ON THE OFFENSIVE" 320 GOTO 370 330 IF M<>1 THEN 360 340 PRINT "YOU ARE ON THE DEFENSIVE" 350 GOTO 370 360 PRINT "BOTH SIDES ARE ON THE OFFENSIVE" 370 PRINT 380 PRINT "YOUR STEGY"; 390 INPUT Y 391 IF Y=5 THEN 1487 392 IF ABS(Y-3)<3 THEN 395 393 PRINT "YOU JERK! USE THE OTHER SET OF STRATEGIES!!" 394 GOTO 370 395 PRINT 400 PRINT " ","CONFEDERACY","UNION" 410 LET C5=(2*C1/5)*(1+1/(2*(ABS(INT(4*RND+1)-Y)+1))) 412 LET C5=INT(C5*(1+1/O)*(1.28+F1/(B+1))+0.5) 414 IF C5+100/O=0 THEN 439 435 PRINT "YOUR CASUALTIES WERE";INT(100*(C1-C5)/C1+0.5);"% LESS THAN" 437 GOTO 441 439 PRINT "YOUR CASUALTIES WERE";INT(100*(C5-C1)/C1+0.5);"% MORE THAN" 441 PRINT "THE ACTUAL CASUALITIES AT "; 443 LET A1=1 445 GO SUB 800 450 IF U=1 THEN 470 460 IF C5+E<17*C2*C1/(C5*20)+5*O THEN 490 470 PRINT "YOU LOSE "; 471 LET L=L+1 480 GOTO 555 490 PRINT "YOU WIN "; 491 LET W=W+1 555 GOSUB 800 556 IF W=8 THEN 1490 580 LET T1=T1+C5+E 590 LET T2=T2+17*C2*C1/(C5*20)+5*O 600 LET P1=P1+C1 610 LET P2=P2+C2 620 LET Q1=Q1+(F+S+B) 630 LET R1=R1+M1*(100-I1)/20 635 LET M3=M3+M1 637 LET M4=M4+M2 650 IF A=14 THEN 1500 660 GOTO 100 670 DATA 18000,18500,1967,2708,1,1,0 672 DATA 40000,44894,10699,13047,3,2,0 674 DATA 95000,115000,20614,15849,3,3,0 676 DATA 54000,63000,10000,14000,2,4,0 678 DATA 40000,50000,10000,12000,3,5,0 680 DATA 75000,120000,5377,12653,1,6,0 682 DATA 38000,45000,11000,12000,1,7,0 684 DATA 32000,90000,13000,17197,2,8,0 686 DATA 50000,70000,12000,19000,1,9,0 688 DATA 72500,85000,20000,23000,3,10,0 690 DATA 66000,60000,18000,16000,2,11,0 692 DATA 37000,60000,6700,5800,2,12,0 694 DATA 62000,110000,17723,18000,2,13,0 696 DATA 65000,100000,8500,3700,1,14,0 750 PRINT "GO TO JAIL." 752 PRINT "GO DIRECTLY TO JAIL." 754 PRINT "DO NOT PASS GO." 756 PRINT "DO NOT COLLECT $200" 758 GOTO 107 800 IF A<>1 THEN 850 810 PRINT "BULL RUN" 820 IF A1=1 THEN 1480 830PRINT "JULY 21,1861 GEN. BEAUREGARD COMMANDING THE SOUTH MET THE" 832PRINT "UNION FORCES WITH GEN MCDOWELL IN A PREMATURE BATTLE AT BULL" 834PRINT "RUN. GEN. JACKSON HELPED PUSH BACK THE UNION ATTACK." 840 GO TO 1480 850 IF A<>2 THEN 900 860 PRINT "SHILOH" 870 IF A1=1 THEN 1480 880PRINT "APRIL 6-7,1862 THE CONFEDERATE SURPRISE ATTACK AT SHILOH" 882PRINT "FAILED DUE TO POOR ORGANIZATION." 890 GO TO 1480 900 IF A<>3 THEN 950 910 PRINT "SEVEN DAYS" 920 IF A1=1 THEN 1480 930PRINT "JUNE 25-JULY 1,1862 GENERAL LEE (CSA) UPHELD THE OFFENSIVE" 932PRINT "THROUGHOUT THE BATTLE AND FORCED GEN. MCCLELLAN AND THE UNION" 934PRINT "FORCES AWAY FROM RICHMOND." 940 GO TO 1480 950 IF A<>4 THEN 1000 960 PRINT "THE SECOND BULL RUN" 970 IF A1=1 THEN 1480 980PRINT "AUG 29-30,1862 THE COMBINED CONFEDERATE FORCES UNDER LEE AND" 982PRINT "JACKSON DROVE THE UNION FORCES BACK INTO WASHINGTON." 990 GO TO 1480 1000 IF A<>5 THEN 1050 1010 PRINT "ANTIETAM" 1020 IF A1=1 THEN 1480 1030PRINT "SEPT 17,1862 THE SOUTH FAILED TO INCORPORATE MARYLAND INTO" 1032PRINT "THE CONFEDERACY." 1040 GO TO 1480 1050 IF A<>6 THEN 1100 1060 PRINT "FREDERICKSBURG" 1070 IF A1=1 THEN 1480 1080PRINT "DEC 13,1862 THE CONFEDERACY UNDER LEE SUCESSFULLY REPULSED" 1082PRINT "AN ATTACK BY THE UNION UNDER GEN. BURNSIDE." 1090 GOTO 1480 1100 IF A <>7 THEN 1150 1110 PRINT "MURFREESBORO" 1120 IF A1=1 THEN 1480 1130PRINT "DEC 31,1862 THE SOUTH UNDER GEN. BRAGG WON A CLOSE BATTLE" 1140 GOTO 1480 1150 IF A<>8 THEN 1200 1160 PRINT "CHANCELLORSVILLE" 1170 IF A1=1 THEN 1480 1180PRINT "MAY 1-6,1863 THE SOUTH HAD A COSTLY VICTORY AND LOST ONE" 1182PRINT "OF THEIR OUTSTANDING GENERALS, 'STONEWALL' JACKSON." 1190 GOTO 1480 1200 IF A<>9 THEN 1250 1210 PRINT "VICKSBURG" 1220 IF A1=1 THEN 1480 1230PRINT "JULY 4,1863 VICKSBURG WAS A COSTLY DEFEAT FOR THE SOUTH" 1232PRINT "BECAUSE IT GAVE THE UNION ACCESS TO THE MISSISSIPPI." 1240 GOTO 1480 1250 IF A<>10 THEN 1300 1260 PRINT "GETTYSBURG" 1270 IF A1=1 THEN 1480 1280PRINT "JUNE 30,1863 A SOUTHERN MISTAKE BY GEN. LEE AT GETTYSBURG" 1282PRINT "COST THEM ONE OF THE MOST CRUCIAL BATTLES OF THR WAR." 1290 GOTO 1480 1300 IF A<>11 THEN 1350 1310 PRINT "CHICKAMAUGA" 1320 IF A1=1 THEN 1480 1330PRINT "NOV 25,1863 AFTER THE SOUTH HAD SIEGED GEN. ROSENCRANS'" 1332PRINT "ARMY FOR THREE MONTHS, GEN. GRANT BROKE THE SIEGE." 1340 GOTO 1480 1350 IF A<>12 THEN 1400 1360 PRINT "CHATTANOOGA" 1370 IF A1=1 THEN 1480 1380PRINT "SEPT 15,1863 CONFUSION IN A FOREST NEAR CHICKAMAUGA LED" 1382PRINT "TO A COSTLY SOUTHERN VICTORY." 1390 GOTO 1480 1400 IF A<>13 THEN 1450 1410 PRINT "SPOTSYLVANIA" 1420 IF A1=1 THEN 1480 1430PRINT "MAY 5,1864 GRANT'S PLAN TO KEEP LEE ISOLATED BEGAN TO FAIL" 1432PRINT "HERE, AND CONTINUED AT COLD HARBOR AND PETERSBURG." 1440 GOTO 1480 1450 PRINT "ATLANTA" 1460 IF A1=1 THEN 1480 1470PRINT "AUGUST, 1864 SHERMAN AND THREE VETERAN ARMIES CONVERGED ON" 1472PRINT "ATLANTA AND DEALT THE DEATH BLOW TO THE CONFEDERACY." 1480 PRINT 1485 RETURN 1487 PRINT "THE CONFEDERACY HAS SURRENDERED" 1488 GOTO 1500 1490 PRINT "THE UNION HAS SURRENDERED" 1500 PRINT 1510 PRINT "YOU HAVE WON" ;W; "BATTLES AND LOST" ;L; "BATTLES." 1515 IF Y=5 THEN 1550 1520 IF W<=L THEN 1550 1530 PRINT "THE CONFEDERACY HAS WON THE WAR" 1540 GOTO 1560 1550 PRINT "THE UNION HAS WON THE WAR" 1560 END 20 T$=T$+CHR$(97%) UNTIL LEN(T$)=32% & \ T$=T$+" " & \ T$=T$+CHR$(97%) UNTIL LEN(T$)=58% & \ T$=T$+":" & \ T$=T$+CHR$(97%) UNTIL LEN(T$)=127% 30 ON ERROR GOTO 10280 40 OPEN "TI:" AS FILE #11% & \ P0%=4% 50 PRINT #11%,CHR$(155%)+"F" 70 D2$=" " 80 DATA "* "," "," "," " 81 DATA " "," "," "," " 82 DATA " "," "," "," " 83 DATA " "," "," "," " 84 DATA " "," "," "," " 85 DATA " " 90 DATA "*7"," 777777777777"," 777777777777"," 777777777777" 100 DATA " 77 7777"," 7 7777"," 77777"," 77777" 110 DATA " 77777"," 77777"," 77777"," 77777"," 77777" 120 DATA " 77777"," 77777"," 77777"," 77777"," 77777" 130 DATA " 77777"," 77777"," 77777" 140 DATA "*1"," 1"," 11"," 111"," 1111"," 11111" 150 DATA " 111111"," 1111111"," 11111111"," 1111"," 1111" 160 DATA " 1111"," 1111"," 1111"," 1111"," 1111" 170 DATA " 1111"," 1111"," 1111"," 111111111111"," 111111111111" 180 DATA "*2"," 222222"," 22222222"," 2222222222"," 22222 22222" 190 DATA " 2222 2222"," 2222 2222"," 2222 2222"," 2222 2222" 200 DATA " 2222"," 2222"," 22222"," 22222" 210 DATA " 22222"," 22222"," 22222"," 22222"," 22222 2" 220 DATA " 22222 22"," 222222222222"," 222222222222" 230 DATA "*3"," 333333"," 33333333"," 3333333333"," 3333 3333" 240 DATA " 3333 3333"," 3333 3333"," 3333 3333"," 3333 3333" 250 DATA " 3333"," 3333"," 3333"," 3333" 260 DATA " 3333 3333"," 3333 3333"," 3333 3333"," 3333 3333" 270 DATA " 3333 3333"," 3333333333"," 33333333"," 333333" 280 DATA "*4"," 4444 4444"," 4444 4444"," 4444 4444"," 4444 4444" 290 DATA " 4444 4444"," 4444 4444"," 4444 4444"," 4444 4444" 300 DATA " 4444 4444"," 4444 4444"," 444444444444"," 444444444444" 310 DATA " 4444"," 4444"," 4444"," 4444" 320 DATA " 4444"," 4444"," 4444"," 4444" 330 DATA "*5"," 555555555555"," 555555555555"," 5555 55"," 5555 5" 340 DATA " 5555"," 5555"," 5555"," 5555"," 555555555"," 55555555555" 350 DATA " 5555 55555"," 5555"," 5555"," 5555" 360 DATA " 5555 5555"," 5555 5555"," 5555 5555"," 5555555555" 370 DATA " 55555555"," 555555" 380 DATA "*6"," 66666666"," 6666666666"," 6666 6666"," 6666 6666" 390 DATA " 6666"," 6666"," 6666"," 6666"," 6666"," 666666666"," 6666666666" 400 DATA " 66666 6666"," 6666 6666"," 6666 6666"," 6666 6666" 410 DATA " 6666 6666"," 6666 6666"," 6666666666"," 66666666" 420 DATA " 666666" 430 DATA "*8"," 888888"," 88888888"," 8888888888"," 8888 8888" 440 DATA " 8888 8888"," 8888 8888"," 8888 8888"," 8888 8888" 450 DATA " 8888 8888"," 88888888"," 88888888"," 8888 8888" 460 DATA " 8888 8888"," 8888 8888"," 8888 8888"," 8888 8888" 470 DATA " 8888 8888"," 8888888888"," 88888888"," 888888" 480 DATA "*9"," 999999"," 99999999"," 9999999999"," 9999 9999" 490 DATA " 9999 9999"," 9999 9999"," 9999 9999"," 9999 9999" 500 DATA " 9999 99999"," 9999999999"," 999999999"," 99999" 510 DATA " 9999"," 9999"," 9999"," 9999" 520 DATA " 9999 9999"," 9999 9999"," 99999999"," 999999" 530 DATA "*0"," 000000"," 00000000"," 0000000000"," 0000 0000" 540 DATA " 0000 0000"," 0000 0000"," 0000 0000"," 0000 0000" 550 DATA " 0000 0000"," 0000 0000"," 0000 0000"," 0000 0000" 560 DATA " 0000 0000"," 0000 0000"," 0000 0000"," 0000 0000" 570 DATA " 0000 0000"," 0000000000"," 00000000"," 000000" 580 DATA "*:","","",""," :::::"," :::::"," :::::"," :::::" 590 DATA " :::::","","","",""," M M"," MM MM"," M M M" 600 DATA " M M"," M M" 610 DATA "","","" 612 DATA "*P"," PPPP"," P P"," PPPP"," P"," P" 614 DATA "*A"," AAA"," A A"," AAAAA"," A A"," A A" 620 X$=FNP1$(0%,0%,"EOS") 630 A1$="" \ F0%=10% 640 GOSUB 900 ! GET HR.MIN.SEC. 650 F%=0% & \ F%=-1% IF Q%>=12% & \ Q%=Q%-12% IF Q%>12% & \ Q%=12% IF Q%=0% & \ A$=NUM1$(Q%) & \ A0$=NUM1$(Q0%) & \ A$=" "+A$ IF LEN(A$)<2% & \ A0$="0"+A0$ IF LEN(A0$)<2% & \ A$=A$+":"+A0$ 655 IF A$=A1$ THEN GOSUB 800 IF P0%>3% & \ SLEEP 2% & \ GOTO 640 660 FOR X%=5% TO 1% STEP -1% 665 RESTORE 670 IF MID(A$,X%,1%)=MID(A1$,X%,1%) THEN 720 690 READ D$ UNTIL D$="*"+MID(A$,X%,1%) 700 FOR Y%=0% TO 19% & \ READ D1$ \ D1$=LEFT(D1$+" ",14%) & \ D$=XLATE(D1$,T$) IF X%<>3% AND P0%>1% & \ D$=D1$ IF X%=3% OR P0%=1% & 705 IF CCPOS(11%) > 1% THEN X$=FNP1$(0%,0%,"") & \ PRINT #11% & ! Insure automatic does not occur & 710 X$=FNP1$((X%-1%)*14%,Y%,D$) & \ NEXT Y% 720 NEXT X% 725 GOSUB 1000 IF F%<>F0% 730 A1$=A$ \ GOTO 640 800! 810 IF CCPOS(11%) > 1% THEN X$=FNP1$(0%,0%,"") & \ PRINT #11% & ! This line insures that the terminal driver does not do & ! an automatic when max # of characters for TI: & ! is reached. & 820 X$=FNP1$(0%,21%,"EOS") & \ X$=FNP1$(Q1%,21%,"**********") & \ A3$=NUM1$(Q1%) \ A3$=" "+A3$ UNLESS LEN(A3$)=2% & \ X$=FNP1$(Q1%,22%,"*** "+A3$+" ***") & \ X$=FNP1$(Q1%,23%,"**********") & \ RETURN 900 & T=TIME(0%) & \ Q%=T/3600 & \ Q0%=(T-1.*Q%*3600)/60 & \ Q1%=T-(1.*Q%*3600+1.*Q0%*60) & ! Q%=HOURS , Q0%=MINUTES , Q1%=SECONDS & ! 910 RETURN & 1000 ! AM OR PM 1010 RESTORE & \ IF F% THEN & READ D$ UNTIL D$="*P" & ELSE & READ D$ UNTIL D$="*A" 1020 FOR Y%=3% TO 7% & 1022 IF CCPOS(11%) > 1% THEN X$=FNP1$(0%,0%,"") & \ PRINT #11% & ! Insure automatic does not occur & 1023 READ D$ & \ D$=D$+" " UNTIL LEN(D$)=14% & \ X$=FNP1$(28%,Y%,D$) & \ NEXT Y% & 1025 X$=FNP1$(30%,10%,EDIT$(DATE$(0%),-1%)) & 1030 RETURN & 10000 ! & !******************************************************** & !DIRECT CURSOR ADDRESSING & ! P0% = 1% = VT05 & ! = 2% = VT50 & ! = 3% = VT50H & ! = 4% = VT52 & ! 10010 DEF* FNP1$(X%,Y%,Z$) 10020 GOTO 10050 IF Z$<>"HOME" \ ON P0% GOTO 10030,10040,10040,10040 10030 PRINT #11%,CHR$(29%); \ GOTO 10160 10040 PRINT #11%,CHR$(155%)+CHR$(72%); \ GOTO 10160 10050 ON P0% GOTO 10060,10070,10080,10080 10060 PRINT #11%,CHR$(14%)+CHR$(32%+Y%)+CHR$(32%+X%); \ GOTO 10090 10070 PRINT #11%,CHR$(155%)+CHR$(72%); & \ PRINT #11%,CHR$(10%); FOR Z%=1% TO Y% & \ PRINT #11%,CHR$(155%)+CHR$(67%); FOR Z%=1% TO X% & \ GOTO 10090 10080 PRINT #11%,CHR$(155%)+"Y"+CHR$(32%+Y%)+CHR$(32%+X%); 10090 GOTO 10120 IF Z$<>"EOS" \ ON P0% GOTO 10100,10110,10110,10110 10100 PRINT #11%,CHR$(31%); \ GOTO 10160 10110 PRINT #11%,CHR$(155%)+CHR$(74%); \ GOTO 10160 10120 GOTO 10150 IF Z$<>"EOL" \ ON P0% GOTO 10130,10140,10140,10140 10130 PRINT #11%,CHR$(30%); \ GOTO 10160 10140 PRINT #11%,CHR$(155%)+CHR$(75%); \ GOTO 10160 10150 PRINT #11%,Z$; 10160 FNP1$="" \ FNEND 10280 & & & ! STANDARD ERROR HANDLERS & !& !& 10320 X$=FNP1$(0%,0%,"EOS") & \ X$=FNP1$(20%,0%,"DO YOUR THING NOW !!!") & \ PRINT #11%, CHR$(155%)+"G" IF P0%>1% & 10330 CLOSE #11% 10400 CLOSE 11% & 10410 PRINT \ END & 1 PRINT "CRAP GAME" 2 PRINT "WITH THE COMPUTER AS YOUR OPPONENT. THE RULES ARE SIMPLE:" 3 PRINT " *A 7 OR 11 ON THE FIRST ROLL WINS" 4 PRINT " *A 2, 3, OR 12 ON THE FIRST ROLL LOSES" 5 PRINT 6 PRINT "ANY OTHER NUMBER ROLLED BECOMES YOUR 'POINT' . YOU CONTINUE" 7 PRINT "TO ROLL...IF YOU GET YOUR POINT, YOU WIN. IF YOU ROLL A 7," 8 PRINT "YOU LOSE. THE DICE CHANGE HANDS WHEN THIS HAPPENS." 9 PRINT 10 PRINT 11 PRINT "WHAT NUMBER BETWEEN 1 AND 711 IS LUCKY FOR YOU TODAY"; 12 INPUT N 13 FOR I = 1 TO N 14 LET X = RND 15 NEXT I 16 LET Z=5*INT(10+11*RND) 17 PRINT "SPLENDID.....YOU ARE GIVEN ";Z;"DOLLARS TO PLAY WITH." 18 PRINT 19 PRINT 20 REM IF N IS EVEN 'YOU' ROLL FIRST, IF N IS ODD 'I' ROLL FIRST. 21 IF N-2*INT(N/2)=0 THEN 27 22 LET W=-1 23 PRINT "I'LL ROLL FIRST....." 24 PRINT 25 PRINT 26 GOTO 31 27 LET W=1 28 PRINT "YOU ROLL FIRST....." 29 PRINT 30 PRINT 31 LET Q=0 32 PRINT "HOW MUCH DO YOU BET ($$) "; 33 INPUT B 34 PRINT "OK....." 35 PRINT 36 IF B=INT(B) THEN 40 37 PRINT 38 PRINT "NO COINS PERMITTED..JUST BILLS, PLEASE!" 39 GOTO 32 40 IF B=0 THEN 108 41 IF B0 THEN 51 49 PRINT " I ROLL";D1;"AND";D2; 50 GOTO 52 51 PRINT "YOU ROLL";D1;"AND";D2; 52 IF Q<>1 THEN 84 53 IF (S-2)*(S-3)*(S-12)=0 THEN 62 54 IF (S-7)*(S-11)=0 THEN 69 55 IF W>0 THEN 58 56 PRINT "SO MY POINT IS";S; 57 GOTO 59 58 PRINT "SO YOUR POINT IS";S; 59 PRINT ".....LET'S ROLL 'EM AGAIN....." 60 LET P=S 61 GOTO 44 62 PRINT "AND CRAP OUT..." 63 LET C=1 64 IF W>0 THEN 67 65 LET Z=Z+B 66 GOTO 75 67 LET Z=Z-B 68 GOTO 75 69 PRINT "AND PASS....." 70 LET C=1 71 IF W>0 THEN 74 72 LET Z=Z-B 73 GOTO 75 74 LET Z=Z+B 75 PRINT 76 IF Z<1 THEN 104 77 PRINT "YOU NOW HAVE ";Z;"DOLLARS LEFT....." 78 IF C>0 THEN 81 79 PRINT "CHANGE DICE NOW....." 80 PRINT 81 LET W=W*C 82 LET Q=0 83 GOTO 32 84 IF S<>7 THEN 92 85 PRINT "AND LOSE....." 86 LET C=-1 87 IF W>0 THEN 90 88 LET Z=Z+B 89 GOTO 75 90 LET Z=Z-B 91 GOTO 75 92 IF S=P THEN 95 93 PRINT "...ROLL AGAIN....." 94 GOTO 44 95 IF W>0 THEN 100 96 PRINT "AND MAKE MY POINT....." 97 LET C=1 98 LET Z=Z-B 99 GOTO 75 100 PRINT "AND MAKE YOUR POINT....." 101 LET C=1 102 LET Z=Z+B 103 GOTO 75 104 PRINT 105 PRINT "YOU HAVE RUN OUT OF MONEY....SORRY ABOUT THAT....." 106 PRINT "THANKS FOR THE GAME.....BETTER LUCK NEXT TIME, PARDNER!" 107 GOTO 110 108 PRINT "THANKS FOR THE GAME.....AND CONGRATULATIONS" 109 PRINT "FOR BEING ABLE TO QUIT WHILE YOU WERE AHEAD." 110 END 5 REM *** CONVERTED TO RSTS/E BY DAVID AHL, DIGITAL 100 PRINT "DO YOU WANT TO SEE THE INSTRUCTIONS? (YES--1,NO--0)" 110 INPUT B7 120 IF B7=0 THEN 370 130 PRINT "THIS IS A GAME IN WHICH YOU WILL BE PLAYING AGAINST THE" 140 PRINT "RANDUM DECISION OF THE COMPUTER. THE FIELD OF PLAY IS A" 150 PRINT "CUBE OF SIDE 3. ANY OF THE 27 LOCATIONS CAN BE DESIGNATED" 160 PRINT "BY INPUTING THREE NUMBERS SUCH AS 2,3,1. AT THE START," 170 PRINT "YOU ARE AUTOMATICALLY AT LOCATION 1,1,1. THE OBJECT OF" 180 PRINT "THE GAME IS TO GET TO LOCATION 3,3,3. ONE MINOR DETAIL," 190 PRINT "THE COMPUTER WILL PICK,AT RANDUM,5 LOCATIONS AT WHICH" 200 PRINT "IT WILL PLANT LAND MINES. IF YOU HIT ONE OF THESE LOCATIONS," 210 PRINT "YOU LOSE. ONE OTHER DETAIL, YOU MAY MOVE ONLY ONE SPACE " 220 PRINT "IN ONE DIRECTION EACH MOVE. FOR EXAMPLE: FROM 1,1,2 YOU" 230 PRINT "MAY MOVE TO 2,1,2 OR 1,1,3. YOU MAY NOT CHANGE" 240 PRINT "TWO OF THE NUMBERS ON THE SAME MOVE. IF YOU MAKE AN ILLEGAL" 250 PRINT "MOVE, YOU LOSE AND THE COMPUTER TAKES THE MONEY YOU MAY" 260 PRINT "HAVE BET ON THAT ROUND." 270 PRINT 280 PRINT 290 PRINT "ALL YES OR NO QUESTIONS WILL BE ANSWERED BY A 1 FOR YES" 300 PRINT "OR A 0 (ZERO) FOR NO." 310 PRINT 320 PRINT "WHEN STATING THE AMOUNT OF A WAGER, PRINT ONLY THE NUMBER" 330 PRINT "OF DOLLARS (EXAMPLE: 250) YOU ARE AUTOMATICALLY STARTED WITH A" 340 PRINT "500 DOLLAR ACCOUNT." 350 PRINT 360 PRINT "GOOD LUCK" 370 LET A1=500 380 LET A=INT(3*RND) 390 IF A<>0 THEN 410 400 LET A=3 410 LET B=INT(3*RND) 420 IF B<>0 THEN 440 430 LET B=2 440 LET C=INT(3*RND) 450 IF C<>0 THEN 470 460 LET C=3 470 LET D=INT(3*RND) 480 IF D<>0 THEN 500 490 LET D=1 500 LET E=INT(3*RND) 510 IF E<>0 THEN 530 520 LET E=3 530 LET F=INT(3*RND) 540 IF F<>0 THEN 560 550 LET F=3 560 LET G=INT(3*RND) 570 IF G<>0 THEN 590 580 LET G=3 590 LET H=INT(3*RND) 600 IF H<>0 THEN 620 610 LET H=3 620 LET I=INT(3*RND) 630 IF I<>0 THEN 650 640 LET I=2 650 LET J=INT(3*RND) 660 IF J<>0 THEN 680 670 LET J=3 680 LET K=INT(3*RND) 690 IF K<>0 THEN 710 700 LET K=2 710 LET L=INT(3*RND) 720 IF L<>0 THEN 740 730 LET L=3 740 LET M=INT(3*RND) 750 IF M<>0 THEN 770 760 LET M=3 770 LET N=INT(3*RND) 780 IF N<>0 THEN 800 790 LET N=1 800 LET O=INT(3*RND) 810 IF O <>0 THEN 830 820 LET O=3 830 PRINT "WANT TO MAKE A WAGER?" 840 INPUT Z 850 IF Z=0 THEN 920 860 PRINT "HOW MUCH?" 870 INPUT Z1 876 IF A1W+1 THEN 1030 950 IF P=W+1 THEN 1000 960 IF Q>X+1 THEN 1030 970 IF Q=(X+1) THEN 1010 980 IF R >(Y+1) THEN 1030 990 GO TO 1050 1000 IF Q>= X+1 THEN 1030 1010 IF R>=Y+1 THEN 1030 1020 GO TO 1050 1030 PRINT "ILLEGAL MOVE", "YOU LOSE" 1040 GO TO 1440 1050 LET W=P 1060 LET X=Q 1070 LET Y=R 1080 IF P=3 THEN 1100 1090 GO TO 1130 1100 IF Q=3 THEN 1120 1110 GO TO 1130 1120 IF R=3 THEN 1530 1130 IF P=A THEN 1150 1140 GO TO 1180 1150 IF Q=B THEN 1170 1160 GO TO 1180 1170 IF R=C THEN 1400 1180 IF P=D THEN 1200 1190 GO TO 1230 1200 IF Q=E THEN 1220 1210 GO TO 1230 1220 IF R=F THEN 1400 1230 IF P=G THEN 1250 1240 GO TO 1280 1250 IF Q=H THEN 1270 1260 GO TO 1280 1270 IF R=I THEN 1400 1280 IF P=J THEN 1300 1290 GO TO 1330 1300 IF Q=K THEN 1320 1310 GO TO 1330 1320 IF R=L THEN 1440 1330 IF P=M THEN 1350 1340 GO TO 1380 1350 IF Q=N THEN 1370 1360 GO TO 1380 1370 IF R=O THEN 1400 1380 PRINT "NEXT MOVE" 1390 GO TO 930 1400 PRINT "******BANG******" 1410 PRINT "YOU LOSE" 1420 PRINT 1430 PRINT 1440 IF Z=0 THEN 1580 1450 PRINT 1460 LET Z2=A1-Z1 1470 IF Z2>0 THEN 1500 1480 PRINT "YOU BUST" 1490 GO TO 1610 1500 PRINT " YOU NOW HAVE"; Z2; "DOLLARS" 1510 LET A1=Z2 1520 GO TO 1580 1522 PRINT "TRIED TO FOOL ME; BET AGAIN"; 1525 GO TO 870 1530 PRINT "CONGRATULATIONS" 1540 IF Z=0 THEN 1580 1550 LET Z2=A1+Z1 1560 PRINT "YOU NOW HAVE"; Z2;"DOLLARS" 1570 LET A1=Z2 1580 PRINT "DO YOU WANT TO TRY AGAIN?" 1590 INPUT S 1600 IF S=1 THEN 380 1610 PRINT "TOUGH LUCK" 1620 PRINT 1630 PRINT " GOODBYE" 1640 END 31100 ! & ! ******************************************************** & ! DIRECT CURSOR ADDRESSING & ! P0% = 1% = VT05 & ! = 2% = VT50 & ! = 3% = VT50H & ! = 4% = VT52 & 31105 DEF FNP1$(X%,Y%,Z$) 31110 GOTO 31125 IF Z$<>"HOME" \ ON P0% GOTO 31115, 31120, 31120, 31120 31115 PRINT #11%, CHR$(29%); \ GOTO 31180 31120 PRINT #11%, CHR$(155%)+CHR$(72%); \ GOTO 31180 31125 ON P0% GOTO 31130, 31135, 31140, 31140 31130 PRINT #11%, CHR$(14%)+CHR$(32%+Y%)+CHR$(32%+X%); \ GOTO 31145 31135 PRINT #11%, CHR$(155%)+CHR$(72%); & \ PRINT #11%, CHR$(10%); FOR Z%=1% TO Y% & \ PRINT #11%, CHR$(155%)+CHR$(67%); FOR Z%=1% TO X% & \ GOTO 31145 31140 PRINT #11%, CHR$(155%)+"Y"+CHR$(32%+Y%)+CHR$(32%+X%); 31145 GOTO 31160 IF Z$<>"EOS" \ ON P0% GOTO 31150, 31155, 31155, 31155 31150 PRINT #11%, CHR$(31%); \ GOTO 31180 31155 PRINT #11%, CHR$(155%)+CHR$(74%); \ GOTO 31180 31160 GOTO 31175 IF Z$<>"EOL" \ ON P0% GOTO 31165, 31170, 31170, 31170 31165 PRINT #11%, CHR$(30%); \ GOTO 31180 31170 PRINT #11%, CHR$(155%)+CHR$(75%); \ GOTO 31180 31175 PRINT #11%, Z$; 31180 FNP1$="" \ FNEND & 32700 ! & ! Error Routine & ! & 32710 IF ERR = 11% THEN X$=FNP1$(0%,0%,"EOS") & \ PRINT #11% & 32720 IF ERR <> 11% THEN PRINT "Error Line # ";ERL;" Error # ";ERR & 32767 CLOSE #11% \ END & 5 REM *** WRITTEN BY TOM KARZES, CURTIS JR HS, SUDBURY, MA 6 REM *** MODIFIED BY DAVE AHL, DIGITAL 10 PRINT "YOU ARE IN A LARGE, NEW GOVERNMENT BUILDING WITH 1,000,000" 20 PRINT "ROOMS IN IT. THE BUILDING IS 100 ROOMS LONG (0-99), 100" 30 PRINT "ROOMS WIDE (0-99), AND 100 FLOORS HIGH (0-99)."\ PRINT 40 PRINT "A MAD BOMBER HAS HIDDEN A BOMB IN ONE OF THE ROOMS AND" 50 PRINT "HAS JUST PHONED A THREAT THAT THE BOMB IS SET TO GO" 60 PRINT "OFF IN 200 SECONDS. FORTUNATELY, YOU HAPPEN TO HAVE A BOMB-" 70 PRINT "TRACKER THAT SENDS OUT SIGNALS THAT GET STRONGER AS YOU" 80 PRINT "GET CLOSER TO THE BOMB. YOU ARE STARTING IN ROOM 0,0,0" 90 PRINT "AND IT TAKES 10 SECONDS TO MOVE TO ANY OTHER ROOM."\ PRINT 100 RANDOMIZE \A=INT(100*RND)\B=INT(100*RND)\C=INT(100*RND) 110 IF A=0 AND B=0 AND C=0 THEN 100 120 P1=A/100+B+C*100\D,E,F,G,P=0 125 PRINT "SIGNAL","CURRENT ROOM","SEC. INTO","COORDINATES FOR" 130 PRINT "STRENGTH","L , W , H","MISSION","SEARCH (L,W,H)" 132 B$=" ####.## ## ## ## ### " 135 PRINT USING B$,10000-ABS(P1-P),D,E,F,G; 140 INPUT D,E,F\G=G+10\P=D/100+E+F*100\IF P=P1 THEN 170 145 IF G=200 THEN 150 ELSE GOTO 180 150 PRINT "BOOOOOOOMMM!!!"\ PRINT "YOU BLEW IT. THE BUILDING BLEW UP." 155 PRINT \INPUT "WANT TO PLAY AGAIN (YES OR NO)";A$ 160 IF A$="NO" THEN 999 ELSE PRINT \ PRINT \GOTO 100 170 PRINT "BOMB DEACTIVATED AT";G;"SECONDS!!!"\ PRINT \GOTO 155 180 IF D>99 OR D<0 OR E>99 OR E<0 THEN 200 190 IF F>99 THEN 220 ELSE IF F<0 THEN 230 ELSE GOTO 135 200 PRINT "YOU WALKED OUT A WINDOW ON THE";\IF F<4 THEN 240 201 PRINT F;"TH FLOOR!!!" 202 PRINT "YOU WERE KILLED AND";200-G;"SECONDS LATER THE BUILDING" 203 PRINT "BLEW UP!!!"\ PRINT \GOTO 155 220 PRINT "YOU ARE NOW";F*9;"FEET IN THE AIR!!!"\GOTO 202 230 PRINT "YOU ARE NOW -";F*9;"FEET UNDERGROUND!!!"\GOTO 202 240 ON F GOTO 250,260,270 250 PRINT " 1ST FLOOR!!!"\GOTO 202 260 PRINT " 2ND FLOOR!!!"\GOTO 202 270 PRINT " 3RD FLOOR!!!"\GOTO 202 999 END 1 REM *** WRITTEN BY DAVID AHL, DIGITAL 3 PRINT "FOR A PRETTY DIAMOND PATTERN," 4 PRINT "TYPE IN AN ODD NUMBER BETWEEN 5 AND 31." 5 INPUT R\PRINT 6 Q=INT(60/R) 8 FOR L=1 TO Q 10 X=1\Y=R\Z=2 20 FOR N=X TO Y STEP Z 25 PRINT TAB((R-N)/2); 28 FOR M=1 TO Q 29 C=1 30 FOR A=1 TO N 31 IF C=1 THEN 40 32 IF C=2 THEN 42 33 IF C=3 THEN 44 35 PRINT "!";\GOTO 50 40 PRINT "D";\GOTO 47 42 PRINT "E";\GOTO 47 44 PRINT "C"; 47 C=C+1 50 NEXT A 53 IF M=Q THEN 60 55 PRINT TAB(R*M+(R-N)/2); 56 NEXT M 60 PRINT 70 NEXT N 83 IF X<>1 THEN 95 85 X=R-2\Y=1\Z=-2 90 GOTO 20 95 NEXT L 99 END 5 REM *** CONVERTED TO RSTS/E BY DAVID AHL, DIGITAL 10 REM *** CREATED BY MICHAEL KASS HERRICKS HS, NY 20 PRINT "THE OBJECT OF THIS PUZZLE IS TO CHANGE THIS:" 30 PRINT 40 PRINT "X X X X X X X X X X" 50 PRINT 60 PRINT "TO THIS:" 70 PRINT 80 PRINT "O O O O O O O O O O" 90 PRINT 100 PRINT "BY TYPING IN THE NUMBER CORRESPONDING TO THE POSITION OF THE LETTER" 120 PRINT "ON SOME NUMBERS, ONE POSITION WILL CHANGE; ON OTHERS, TWO WILL CHANGE." 140 PRINT "TO RESET A LINE TO ALL X'S, TYPE 0 (ZERO) AND TO START A NEW PUZZLE" 160 PRINT "IN THE MIDDLE OF A GAME, TYPE 11 (ELEVEN)." 165 PRINT \ PRINT "UNFORTUNATELY, SOME OF THESE PUZZLES DO NOT HAVE A SOLUTION!"\ PRINT 170 PRINT \DIM A$(20) 180 RANDOMIZE 190 LET Q=RND 200 PRINT "HERE IS THE STARTING LINE OF X'S:" 210 PRINT 220 LET C=0 230 PRINT "1 2 3 4 5 6 7 8 9 10" 240 PRINT "X X X X X X X X X X" 250 PRINT 260 M=0 270 FOR X=1 TO 10 280 LET A$(X)="X" 290 NEXT X 300 GO TO 320 310 PRINT "ILLEGAL ENTRY--TRY AGAIN" 320 PRINT "INPUT THE NUMBER"; 330 INPUT N 340 IF N<>INT (N) THEN 310 350 IF N=11 THEN 190 360 IF N>11 THEN 310 370 IF N=0 THEN 230 380 IF M=N THEN 510 390 LET M=N 400 IF A$(N)="O" THEN 480 410 LET A$(N)="O" 420 LET R=TAN(Q+N/Q-N)-SIN(Q/N)+336*SIN(.8*N) 430 LET N=R-INT(R) 440 LET N=INT(10*N) 450 IF A$(N)="O" THEN 480 460 LET A$(N)="O" 470 GO TO 610 480 LET A$(N)="X" 490 IF M=N THEN 420 500 GO TO 610 510 IF A$(N)="O" THEN 590 520 LET A$(N)="O" 530 R=.592/TAN(Q/N+Q)/SIN(N*2+Q)-COS(N) 540 LET N=R-INT(R) 550 LET N=INT(10*N) 560 IF A$(N)="O" THEN 590 570 LET A$(N)="O" 580 GO TO 610 590 LET A$(N)="X" 600 IF M=N THEN 530 610 PRINT "1 2 3 4 5 6 7 8 9 10" 620 PRINT A$(Z);" "; FOR Z=1 TO 10 630 LET C=C+1 640 PRINT \ PRINT 650 FOR Z=1 TO 10 660 IF A$(Z)<>"O" THEN 320 670 NEXT Z 680 IF C>12 THEN 710 690 PRINT "VERY GOOD. YOU GUESSED IT IN ONLY ";C;"GUESSES!!!!" 700 GO TO 720 710 PRINT "TRY HARDER NEXT TIME, IT TOOK YOU ";C;"GUESSES" 720 PRINT "DO YOU WANT TO DO ANOTHER PUZZLE"; 730 INPUT X$ 740 IF X$="NO" THEN 780 760 PRINT 770 GOTO 190 780 PRINT \ PRINT "OKAY. SO LONG FOR NOW."\ PRINT \END 10 PRINT "THIS IS A DEMONSTRATION OF PDP-11 BASIC" 20 PRINT "IF YOU NEED INSTRUCTIONS FOR PLAYING FOOTBALL, TYPE A 1"; 30 INPUT I 40 IF I<>1 THEN 340 50 PRINT 60 PRINT 70 PRINT "WHEN IT ASKS YOU A QUESTION TO BE ANSWERED YES OR" 80 PRINT "NO, TYPE IN 0 FOR NO OR 1 FOR YES." 90 PRINT 100 PRINT "ON OFFENSE YOU HAVE THE FOLLOWING PERMITTED PLAYS:" 110 PRINT "PLAY","CODE" 120 PRINT "RUN","10" 130 PRINT "PASS","11" 140 PRINT "SWEEP","12" 150 PRINT "SCREEN PASS","13" 160 PRINT "LONG PASS","14" 170 PRINT "DRAW PLAY","15" 180 PRINT "PUNT","16" 190 PRINT "FIELDGOAL","17" 200 PRINT 210 PRINT "ON DEFENSE, YOU MAY TRY ONE OF THE FOLLOWING:" 220 PRINT "DEFENSE","CODE" 230 PRINT "NORMAL","4","GOOD AGAINST SWEEP AND SCREEN" 240 PRINT "HOLD","5","GOOD AGAINST RUN, PASS AND DRAW" 250 PRINT "BLITZ","6","GOOD AGAINST PASS OR LONG PASS" 260 PRINT "INTERCEPT","7","INCREASES THE ODDS FOR AN INTERCEPTION" 270 PRINT "BLOCK","8","GIVES YOU A CHANCE TO BLOCK A KICK," 280 PRINT " "," ","BUT DECREASES THE DISTANCE RUNBACK." 290 PRINT 300 PRINT "TO CALL A PARTICULAR PLAY JUST TYPE ITS CODE NUMBER." 310 PRINT "ALSO, AT ANY TIME DURING PLAY YOU MAY CALL TIME OUT" 320 PRINT "BY TYPING A '2'. HOWEVER YOU ARE PERMITTED ONLY THREE" 330 PRINT "TIMEOUTS PER HALF." 340 PRINT 350 PRINT 360 DEF* FNT(X)=SIN(X)/COS(X) 370 DIM R(17) 380 FOR I=0 TO 17 390 READ R(I) 400 NEXT I 410 DATA 9,13,100,0,9,10,12,11,12,0,1,5,3,4,6,2,8,7 420 RANDOMIZE 430 LET F=0 440 LET Z3=0 450 LET O=0 460 LET L=0 470 DIM Z(5,3),P(2),D(2,5) 480 FOR A=0 TO 5 490 FOR B=0 TO 2 500 READ Z(A,B),D(B,A) 505 LET P(B)=0 510 NEXT B 520 READ Z(A,3) 530 NEXT A 540 PRINT "DO YOU WANT TO RECEIVE"; 550 LET X=1 560 GOSUB 3610 570 LET S=2-SGN(13-Q) 580 LET K=S 590 LET T1=120 600 LET U2=3 610 LET U=3 620 LET C=900 630 GOSUB 2250 640 LET F1=50 650 LET B=INT(F1+O*20*RND+(1-O)*29*(2-RND^7-RND^(3-Z2))) 660 LET O=0 670 LET Z9=8 680 GOSUB 1490 690 LET L=0 700 IF B<=99 THEN 2340 710 PRINT "A TOUCHBACK" 720 LET B=20 730 LET L=0 740 IF S=2 THEN 770 750 PRINT "MY "; 760 GOTO 780 770 PRINT "YOUR "; 780 GOSUB 3290 790 GOSUB 2980 800 LET D=1 810 LET F2=.03 820 LET O=0 830 IF C<=0 THEN 2770 840 GOSUB 2530 850 LET Z2=1 860 LET Z3=.3 870 IF C<=F*T1 THEN 2920 880 IF C<=0 THEN 2770 890 IF L=0 THEN 910 900 PRINT "TIME TO GO--"; 910 PRINT INT(C/60);"MIN,";C-60*INT(C/60);"SEC. "; 920 PRINT "YOUR PLAY"; 930 GOSUB 3610 940 IF S=1 THEN 980 950 IF Q>8 THEN 920 960 LET M=Q 970 GOTO 1000 980 LET Y=Q-8 990 IF ABS(Q-10.5)^2>3 THEN 920 1000 LET C=INT(C-L*(5+2*RND)) 1010 LET L=1 1020 IF M=7 THEN 1760 1030 IF M=8 THEN 1920 1040 LET Y1=Y-1 1050 IF RND > Z(M-1,Y1) THEN 1240 1060 LET A=2 1070 GOSUB 3020 1080 IF M<4 THEN 1110 1090 PRINT "PASS COMPLETE.."; 1100 LET L = SGN (INT(4*RND)) 1110 IF RND < F2 THEN 2510 1120 IF G>0 THEN 1210 1130 IF G=0 THEN 1170 1140 IF G+B<1 THEN 2170 1150 PRINT "LOSS OF";-G; 1160 GOTO 1610 1170 PRINT "NO GAIN" 1180 LET Z9=2 1190 GOSUB 1490 1200 GOTO 1670 1210 IF B+G>99 THEN 1650 1220 PRINT "GAIN OF";G; 1230 GOTO 1610 1240 IF M>3 THEN 1280 1250 LET A=1 1260 GOSUB 3020 1270 GOTO 1120 1280 IF RND < .06*(2-SGN(Y-3)) THEN 1360 1290 IF RND < .05+INT(Y/3.5)/5 THEN 1510 1300 LET Z9=6 1310 GOSUB 1490 1320 PRINT "PASS INCOMPLETE" 1330 LET L=0 1340 LET G=0 1350 GOTO 3120 1360 PRINT "PASS **INTERCEPTED**"; 1370 LET A=1 1380 GOSUB 3020 1390 IF B<40 THEN 1410 1400 LET G=20*(1+SGN(G)) 1410 LET B=100-B-G 1420 LET S=3-S 1430 LET Z9=9 1440 GOSUB 1490 1450 IF B<1 THEN 710 1460 IF B>99 THEN 1650 1470 PRINT "AT "; 1480 GOTO 2360 1490 LET C = C-INT(4+Z9/2*(1+RND)) 1500 RETURN 1510 LET G = -(5+INT(10*RND)) 1520 PRINT "THE QUARTERBACK "; 1530 IF RND > .5 THEN 1560 1540 PRINT "IS THROWN FOR A "; 1550 GOTO 1110 1560 LET G=-(2*G+8) 1570 LET M=5 1580 LET A=1 1590 PRINT "SCRAMBLES FOR A "; 1600 GOTO 1110 1610 LET B=B+G 1620 PRINT "TO "; 1630 GOSUB 3300 1640 IF B<=99 THEN 1670 1650 GOSUB 1990 1660 GOTO 630 1670 IF B1>B THEN 3120 1680 IF B1P(2) THEN 2770 2160 RETURN 2170 PRINT "**SAFETY**" 2180 LET P(3-S)=P(3-S)+2 2190 LET F1=30 2200 LET S=3-S 2210 GOSUB 2120 2220 GOSUB 3440 2230 PRINT "FROM THE 20" 2240 GOTO 650 2250 GOSUB 3440 2260 IF S=2 THEN 2330 2270 PRINT "ON-SIDE"; 2280 GOSUB 3610 2290 IF Q<>13 THEN 2330 2300 LET F2=.15 2310 LET Z2=1 2320 LET O=1 2330 RETURN 2340 LET B=100-B 2350 PRINT "RECEIVED AT "; 2360 GOSUB 3300 2370 IF Z2*RND > Z3 THEN 2490 2380 IF RND < F2 THEN 2500 2390 LET G = 5+INT(100*RND) 2400 IF RND < .15 THEN 2430 2410 LET G = INT(24*(1-RND^2)) 2420 IF G=0 THEN 2490 2430 LET B=B+G 2440 PRINT " AND RUN BACK..."; 2450 LET L=1 2460 IF B>99 THEN 1650 2470 PRINT " TO "; 2480 GOSUB 3300 2490 IF RND > F2 THEN 3260 2500 LET G=0 2510 PRINT "**FUMBLE**"; 2520 GOTO 1410 2530 IF S=1 THEN 2560 2540 LET Y = INT(1+3.5*RND) 2550 RETURN 2560 LET M = INT(55*RND/10.5)+1 2570 IF (B1-B)/(5-D)<3 THEN 2590 2580 LET M = INT(6-4*RND^2) 2590 IF L*F*60>=C THEN 2670 2600 IF D<4 THEN 2550 2610 PRINT "I'LL "; 2620 IF B<55 THEN 2720 2630 IF 0 < 4*RND-B1+B THEN 2750 2640 PRINT "TRY FOR A FIELD GOAL" 2650 LET M=7 2660 RETURN 2670 IF P(2)*U2<=P(1)*U2 THEN 2600 2680 PRINT "TIME OUT" 2690 LET U2=U2-1 2700 GOSUB 3520 2710 GOTO 2600 2720 PRINT "PUNT" 2730 LET M=8 2740 RETURN 2750 PRINT "GO FOR IT" 2760 RETURN 2770 IF X<4 THEN 2830 2780 IF P(1)=P(2) THEN 2830 2790 PRINT "THE GAME IS OVER" 2800 PRINT "FINAL "; 2810 GOSUB 2120 2820 STOP 2830 PRINT "END OF PERIOD";X 2840 GOSUB 2120 2850 LET F=1-F 2860 GOSUB 3520 2870 LET C=900 2880 LET X=X+1 2890 IF F<>0 THEN 810 2900 LET S=3-K 2910 GOTO 580 2920 IF T1=0 THEN 2770 2930 PRINT "2 MINUTE WARNING" 2940 GOSUB 3520 2950 LET T1=0 2960 LET C=120 2970 GOTO 880 2980 LET B1=B+10 2990 IF B1<=100 THEN 3010 3000 LET B1=100 3010 RETURN 3020 LET Q = 1.3*(A*RND-1)-.06 3030 LET A=1 3040 IF Q>=0 THEN 3070 3050 LET A=0 3060 LET Q=-Q 3070 LET M1=M-1 3080 LET G=D(A,M1)+FNT(Q)*(D(2,M1)-D(A,M1))/3.5 3090 LET G = G+INT(RND+.02)*A*100*RND 3100 LET G=INT(G) 3110 RETURN 3120 LET D=D+1 3130 IF D=5 THEN 3240 3140 IF D<> 1 THEN 3160 3150 PRINT "1ST"; 3160 IF D<>2 THEN 3180 3170 PRINT "2ND"; 3180 IF D<>3 THEN 3200 3190 PRINT "3RD"; 3200 IF D<4 THEN 3220 3210 PRINT "4TH"; 3220 PRINT " AND";B1-B;" "; 3230 GOTO 810 3240 LET S=3-S 3250 LET B=100-B 3260 IF S=2 THEN 770 3270 PRINT "MY "; 3280 GOTO 780 3290 PRINT "BALL ON "; 3300 IF B=50 THEN 3400 3310 LET V=50-ABS(B-50) 3320 LET C = C-INT(7+3*RND) 3330 IF S=1 THEN 3420 3340 IF B<50 THEN 3370 3350 PRINT "MY "; 3360 GOTO 3380 3370 PRINT "YOUR "; 3380 PRINT V 3390 RETURN 3400 PRINT "THE 50" 3410 RETURN 3420 IF B<50 THEN 3350 3430 GOTO 3370 3440 IF S=2 THEN 3470 3450 PRINT "YOU"; 3460 GOTO 3480 3470 PRINT "I"; 3480 PRINT " KICK OFF." 3490 LET F2=.06 3500 LET Z2=0 3510 RETURN 3520 LET L=0 3530 PRINT "TIMEOUT CALLED..." 3540 PRINT 3550 RETURN 3560 IF U=0 THEN 3600 3570 LET U=U-1 3580 GOSUB 3520 3590 GOTO 3610 3600 PRINT "..WRONG, TRY AGAIN" 3610 INPUT A 3620 IF ABS(INT(A))>17 THEN 3600 3630 LET Q=R(INT(ABS(A))) 3640 IF Q=0 THEN 3600 3650 IF Q=100 THEN 3560 3660 RETURN 3670 DATA .5,-2,.25,4,.5,13,.55 3680 DATA .4,-2,.3,7,.65,15,.75 3690 DATA .4,-2,.3,6,.6,15,.35 3700 DATA .65,-2,.65,6,.6,17,.9 3710 DATA .4,2,.7,10,.4,27,.2 3720 DATA .1,19,.4,35,.2,100,.1 3730 END 1 !****DIGITAL EQUIPTMENT CORP *** COMPANY CONFIDENTIAL *** & !BASIC PLUS PROGRAM FORMATTER FOR VERSION 6A OF BASIC & !WRITTEN BY JIM BURROWS MODIFIED BY GREG MOODY 27-MAY-76 & !MODIFIED FOR V06B BY MARTIN MINOW, 22-NOV-76 & ! 1000 OPEN FNI2$ AS FILE #1% & \ PRINT #1% UNLESS CCPOS(1%)=0% & \ PRINT #1%, "PROGRAM FORMATER V06B-01" & 1010 PRINT #1% ;" FILE NAME ? "; & \ INPUTLINE #1% ,Q$ & \ Q$=CVT$$(Q$,4%) & ! OPEN THE KB:, PRINT THE HEADER, PROMPT AND INPUT & ! 1100 ON ERROR GOTO 19000 & 1200 Q%=FNI%(1%,Q$,"<_=") & \ F2$=LEFT(Q$,Q%-1%) & \ F3$=RIGHT(Q$,Q%+1%) & \ F2$=F2$+".BAS" UNLESS F2$="" OR INSTR(1%,F2$,".")<>0% & \ F3$=F3$+".BAS" UNLESS F3$="" OR INSTR(1%,F3$,".")<>0% & 1205 ! PARSE INCOMING LINE OF THE FORM: & ! OUTFIL=INFILE & ! & ! 1300 IF CVT$$(F2$,255%)="" THEN & F2$=LEFT(FNI0$,4%)+RIGHT(FNI1$,5%)+".TMP" & \ B%=-1% ! USE A TEMP FILE IF NO OUTPUT FILE SPEC & ! 1400 OPEN F2$ FOR OUTPUT AS FILE #2% & \ OPEN F3$ FOR INPUT AS FILE #3% ! OPEN THE FILES & ! 1900 B1$=CHR$(13%)+CHR$(10%) & \ B2$=CHR$(10%)+CHR$(13%)+CHR$(0%) ! THE TWO CONTINUATION STRINGS & ! 1910 S$=":0123456789" ! USED TO PARSE STAEMENT NO.S & !& ! 1930 L1%,I1%,N1%=5% ! NO. OF CHARS TO INDENT LOOPS, IFS, ETC. & ! 1940 S2%=50% ! NUMBER OF CHARACTERS TO INDENT COMMENTS & ! 1950 T$=" " ! TAB FOR INDENTING & ! 1960 K%(I%)=0% FOR I%=0% TO 3% & \ K$(0%)="ORIGINAL LINES" & \ K$(1%)="OUTPUT LINES" & \ K$(2%)="INSTRUCTIONS" & \ K$(3%)="STATEMENTS" & 2000 UNTIL 0% & \ INPUT LINE #3% ,I$ & \ C$="" & 2100 A$=B2$ & \ I$=CVT$$(I$,4%) !SET THE TERMINATOR AND CVT IT OUT & ! 2150 GO TO 9999 IF LEN(I$)=0% !SKIP BLANK LINES ON INPUT & ! 2160 K%(0%)=K%(0%)+1% & 2200 C%=INSTR(1%,I$,"!") & \ IF C%<>0% AND NOT FNQ%(I$,1%,C%) THEN & C$=RIGHT(I$,C%) & \ I$=LEFT(I$,C%-1%) & \ C%=(C%<>0%) ! STRIP OFF COMMENTS & ! 2300 C1%=INSTR(2%,C$,"!") & \ UNTIL C1%=0% & \ C$=LEFT(C$,C1%-1%)+"*"+RIGHT(C$,C1%+1%) & \ C1%=INSTR(2%,C$,"!") & \ NEXT ! REMOVE MULTIPLE EXCLAMATIONS & ! 2400 Q%=INSTR(1%,I$,":") & \ UNTIL Q%=0% & \ I$=LEFT(I$,Q%-1%)+"\"+RIGHT(I$,Q%+1%) & UNLESS FNQ%(I$,1%,Q%) & \ Q%=INSTR(Q%+1%,I$,":") & \ NEXT ! USE COLON FOR CONTINUE & ! 2500 Q%=1% & \ Q%=Q%+1% WHILE (INSTR(1%,S$,MID(I$,Q%,1%))<>0%) & AND Q%<=LEN(I$) & 2505 N$=LEFT(I$,Q%-1%) & \ I$=CVT$$(RIGHT(I$,Q%),136%) & \ N$="\" IF X% & \ IF N$="" AND LEFT(I$,1%)="\" THEN & N$="\" & \ I$=CVT$$(RIGHT(I$,2%),8%) ! PUT "\" OR STATMENT NO IN N$ & ! 2900 I%=0% IF VAL(N$)<>0% ! RESET "IF/THEN/ELSE" INDENTATION & ! 3000 I1$=CVT$$(I$,33%) ! I1$ IS I$ WITH ALL CAPITALS & ! 3010 L%=L%-L1% IF LEFT(I1$,4%)="NEXT" ! DECREMENT LOOP INDENTATION ON 'NEXT' & ! 3018 N%=N1%*-(N$="" AND I%=0%) ! INDENT MULTI-LINE STATEMENTS & ! 3019 I%=(I%-I1%)-E% IF LEFT(I1$,4%)="ELSE" ! DECREMENT IF INDENTATION FOR THE 'ELSE' & ! 3020 S1$=T$+SPACE$(L%+I%+N%) & 3040 L%=L%+L1% IF (LEFT(I1$,3%)="FOR" & OR LEFT(I1$,5%)="WHILE" & OR LEFT(I1$,5%)="UNTIL") & AND N$<>"" ! INCREMENT LOOP INDENTATION & ! 3050 Q%=0% & \ IF LEFT(I1$,2%)="IF" AND N$<>"" THEN & GO TO 3051 & ELSE & 3055 & 3051 Q%=INSTR(Q%,I1$,"THEN") & \ Q%=INSTR(Q%+4%,I1$,"THEN") & WHILE Q%>0% AND FNQ%(I1$,1%,Q%) & \ Q%=Q%+4% IF Q%>0% & \ I%=I%+I1% & \ E%,T%=0% & 3055 ! HERE WE HANDLE IF/THEN/ELSES OF THE FORM: & ! IF MUMBLE THEN & ! FOO & ! FOOBAR & ! 3056 ! INCREMENT THE IF INDENTATION & ! SET Q% TO POINT TO REST OF LINE & ! RESET E% - THE 'ELSE' FLAG & ! RESET T% TO FLAG IF --- THEN ON SAME LINE & ! & ! 3060 IF Q%>0% AND Q%47% AND ASCII(X$)<58% & \ I$=LEFT(I$,Q%-1%) & \ I1$=CVT$$(I$,33%) & 3065 ! IF THERE IS ANYTHING AFTER THE 'THEN' & ! PUT IT IN X$ & ! APPEND THE IMPLIED GOTO, IF ANY & ! AND FIX I1$ & ! & ! 3070 IF LEFT(I1$,4%)="THEN" AND N$="" THEN & E%=0% & \ T%=-1% & \ I%=I%+I1% & 3075 ! THIS TIME WE HAVE AN IF/THEN/ELSE OF THE FORM: & ! IF MUMBLE & ! THEN FOO & ! FOOBAR & ! RESET THE 'ELSE' FLAG & ! SET T% TO INDICATE IF AND THEN ON SEPERATE LINES & ! INCREMENT THE IF INDENTATION & ! & ! 3080 Q%=-4% & \ Q%=INSTR(Q%+4%,I1$,"ELSE") & WHILE Q%<0% OR FNQ%(I1$,1%,Q%) & 3081 IF Q%=1% THEN & I%=I%+I1% & \ E%=I1% & \ IF T% THEN & Q%=0% & ELSE & Q%=5% & 3085 ! LOOK FOR AN ELSE. IF IT IS THERE AT THE BEGINNING & ! OF THE LINE: & ! INCREMENT THE IF INDENTATION & ! SET THE ELSE FLAG & ! IF WE'RE DOING: & ! IF FOO THEN & ! FOO & ! ELSE & ! BAR & ! 3086 ! THEN SET Q% SO THAT EVERYTHING AFTER THE 'ELSE' & ! GETS PUSHED ONTO X$ & ! OTHERWISE RESET Q% & ! & ! 3100 IF Q%<>0% THEN & X$=RIGHT(I$,Q%)+X$ & \ I$=LEFT(I$,Q%-1%) & \ I1$=CVT$$(I$,33%) & 3105 ! PUSH THE ELSE IF IT ISN'T FIRST AND & ! THE REST OF THE LINE AS SPECIFIED ABOVE & ! *SORRY THIS IS CONFUSING & ! I'M TRYING TO PLEASE EVERYONE & ! TRUST ME. IT WORKS. & ! & ! 3110 X%=-1% & 3200 X%=X%+1% & \ X%=INSTR(X%,I$,"\") & \ IF X% AND FNQ%(I$,1%,X%) THEN & GO TO 3200 & ELSE & IF X%<>0% THEN X$=RIGHT(I$,X%)+X$ IF X%"" AND I$<>"" ! INDENT NON-BLOCK COMMENTS (LIKE THIS) & ! 8100 S1$=T$ IF I$="" ! DON'T INDENT BLOCK COMMENTS & ! 8105 IF N$<>"" AND N$<>"\" THEN & N9$=N$ & \ N$=B1$+N$ & \ N9%=-2% & \ K%(3%)=K%(3%)+1% & 8110 N9%=N9%+LEN(N$)+LEN(S1$)+LEN(I$) & \ IF X$="" THEN & N9%=N9%+LEN(S2$)+LEN(C$)+LEN(A$) & ELSE & N9%=N9%+LEN(B2$) & 8130 IF LEFT(I$,3%)="END" THEN & A$=B1$ & !PUT CRLF AFTER END TO PREVENT & !"EOF ON DEVICE" WHEN PROGRAM IS "OLDED" INTO CORE & ! 8900 K%(1%)=K%(1%)+1% & \ K%(2%)=K%(2%)+1% IF LEN(N$) & 9000 IF X$="" THEN & PRINT #2% ,N$;S1$;I$;S2$;C$;A$; IF N$<>"\" & \ PRINT #2% ,S1$;N$;" ";I$;S2$;C$;A$; IF N$="\" & \ GOTO 9005 & 9002 PRINT #2% ,N$;S1$;I$;B2$; IF N$<>"\" & \ PRINT #2% ,S1$;N$;" ";I$;B2$; IF N$="\" & \ I$=X$ & \ X$="" & \ GOTO 2100 & 9005 ! PRINT THE STATEMENT NO, THE LEADING SPACES, & ! THE CODE, [THE TRAILING SPACES AND COMMENT], & ! AND THE CONTINUATION FLAG, IF ANY & ! POP X$ IF NON-NULL & ! & ! 9999 NEXT & 10000 DEF* FNQ%(S$,B%,E%) & \ FNQ%=0% & \ B%=FNI%(B%,S$,"'"+'"') & \ IF B%>0% AND B%<=E% THEN & FNQ%=-1% & \ B%=INSTR(B%+1%,S$,MID(S$,B%,1%)) & \ IF B%>0% AND B%<=E% THEN & FNQ%=FNQ%(S$,B%+1%,E%) & 10002 ! FUNCTION TO DETECT QUOTED STRINGS & ! & ! GUESS AT FALSE & ! IF THERE ARE ANY QUOTES & ! GUESS AT TRUE & ! LOOK FOR CLOSE QUOTE & ! IF YOU FIND IT THEN & ! RECUR WITH THE REMAINDER & ! & ! 10005 FNEND & 19000 !ERRORS & ! 19100 RESUME 32700 IF ERR=11% ! EOF - SO GET OUT & ! 19200 RESUME 3000 IF ERL=2900 ! VAL("\") DOESN'T WORK & ! 19300 RESUME 32720 IF ERL=32710 & 19400 RESUME 32767 IF ERL=32767 & 19900 PRINT FNE1$(ERR,ERL,0%) & \ GOTO 32600 ! GIVE THEM A CHANCE TO CLOSE THE FILES & ! 25000 !SBTTL NEW FNJOBS SET >FF< & ! 25010 DEF* FNI0$=RAD$(PEEK(PEEK(PEEK(520%)+8%)+12%))+ & RAD$(PEEK(PEEK(PEEK(520%)+8%)+14%)) & !FNI0$ RETURNS JOB NAME FOR THIS JOB & ! 25020 DEF* FNI0%(N%)=SWAP%(CVT$%(MID(SYS(CHR$(6%)+CHR$(-3%)),N%,2%))) & !FNI0%(N%) RETURN MONITOR TABLE ADDRESS ENTRY N% & ! 25030 DEF* FNI1$="JOB "+MID(NUM$(100%+(255% AND PEEK(518%))/2%),3%,2%) & !FNI1$ RETURNS "JOB 00" STRING (00 IS THIS JOB NUMBER) & ! 25040 DEF* FNI2$="KB"+MID(NUM$(100%+ & (SWAP%(PEEK(PEEK(PEEK(PEEK(520%)))+2%)) AND 255%) & ),3%,2%)+":" & !FNI2$ RETURNS "KB00:" FOR CONSOLE TERMINAL & ! 25050 DEF* FNI4$=CVT$$("[" & +NUM$(SWAP%(PEEK(PEEK(PEEK(520%)+8%)+24%)) AND 255%)+"," & +NUM$( PEEK(PEEK(PEEK(520%)+8%)+24%) AND 255%)+"]",2%) & !FNI4$ RETURN "[P,PN]" STRING & ! 25060 DEF* FNI$=FNI0$+" "+RIGHT(SYS(CHR$(6%)+CHR$(9%)),3%)+" "+FNI1$+ & " "+FNI4$+" "+FNI2$+" "+DATE$(0%)+" "+TIME$(0%) & 25070 DEF* FNI%(I%,S$,K$) & \ GOTO 25090 IF INSTR(1%,K$,MID(S$,I%,1%)) FOR I%=I% TO LEN(S$) & 25080 I%=0% & 25090 FNI%=I% & \ FNEND & 25100 DEF* FNE1$(E%,L%,F%)=MID('??%%( $$""',F%*2%+1%,2%)+FNI0$+ & " "+RIGHT(SYS(CVT%$(1545%)+CHR$(E%)),3%)+ & " @"+NUM$(L%) & 30000 !CCL & ! 31000 !CHAIN & ! 32000 !LOGGED OUT & ! 32100 OPEN FNI2$ AS FILE #1% & \ Q$=SYS(CHR$(7%)) & \ GOTO 32200 IF LEFT(Q$,Q%)<>LEFT(FNI0$,Q%) FOR Q%=1% TO LEN(Q$) & \ Q%=Q%+1% & 32200 Q0$=LEFT(Q$,Q%-1%) & \ Q$=RIGHT(Q$,Q%) & \ GOTO 1100 & 32600 PRINT "TYPE 'CONT' TO CLOSE AND RENAME FILES" & \ STOP & !UNEXPECTED (OR FATAL) ERROR EXIT & ! 32700 PRINT F3$; " CONTAINS:" & \ PRINT USING " ##### \ \" & ,K%(I%);K$(I%) FOR I%=0% TO 3% & 32710 GOTO 32767 UNLESS B% & \ F$=LEFT(F3$,INSTR(1%,F3$,"."))+"BAK" & \ KILL F$ & 32720 NAME F3$ AS F$ & \ NAME F2$ AS F3$ & 32767 CLOSE 1,2,3 & \ END 5 REM *** CONVERTED TO RSTS/E BY DAVID AHL, DIGITAL 10 DIM F(4) 12 RANDOMIZE 15 GOSUB 1091 16 LET I=600 17 PRINT "DO YOU WISH TO TRADE FURS?" 18 GOSUB 1402 19 IF B$="YES" THEN 100 20 IF B$="NO" THEN 2046 25 GOSUB 1402 100 PRINT 101 PRINT "YOU HAVE $";I ;"SAVINGS." 102 PRINT "AND 190 FURS TO BEGIN THE EXPEDITION." 300 PRINT 301 PRINT "YOUR 190 FURS ARE DISTRIBUTED AMONG THE FOLLOWING" 302 PRINT "KINDS OF PELTS: MINK, BEAVER, ERMINE AND FOX." 310 GOSUB 1430 315 RESTORE 330 FOR J=1 TO 4 332 READ B$ 333 PRINT 335 PRINT "HOW MANY ";B$;" PELTS DO YOU HAVE"; 338 INPUT F(J) 340 LET F(0)=F(1)+F(2)+F(3)+F(4) 342 IF F(0)=190 THEN 1100 344 IF F(0)>190 THEN 500 348 NEXT J 350 GO TO 1100 500 PRINT 501 PRINT "YOU MAY NOT HAVE THAT MANY FURS." 502 PRINT "DO NOT TRY TO CHEAT. I CAN ADD." 503 PRINT "YOU MUST START AGAIN." 504 GO TO 15 508 PRINT 511 PRINT "DO YOU WANT TO TRADE FURS NEXT YEAR?" 513 GO TO 18 1091 PRINT "YOU ARE THE LEADER OF A FRENCH FUR TRADING EXPEDITION IN " 1092 PRINT "1776 LEAVING THE LAKE ONTARIO AREA TO SELL FURS AND GET" 1093 PRINT "SUPPLIES FOR THE NEXT YEAR. YOU HAVE A CHOICE OF THREE" 1094 PRINT "FORTS AT WHICH YOU MAY TRADE. THE COST OF SUPPLIES" 1095 PRINT "AND THE AMOUNT YOU RECEIVE FOR YOUR FURS WILL DEPEND" 1096 PRINT "ON THE FORT THAT YOU CHOOSE." 1099 RETURN 1100 PRINT "DO YOU WANT TO TRADE YOUR FURS AT FORT 1, FORT 2," 1102 PRINT "OR FORT 3? FORT 1 IS FORT HOCHELAGA (MONTREAL)" 1103 PRINT "AND IS UNDER THE PROTECTION OF THE FRENCH ARMY." 1104 PRINT "FORT 2 IS FORT STADACONA (QUEBEC) AND IS UNDER THE" 1105 PRINT "PROTECTION OF THE FRENCH ARMY. HOWEVER, YOU MUST" 1106 PRINT "MAKE A PORTAGE AND CROSS THE LACHINE RAPIDS." 1108 PRINT "FORT 3 IS FORT NEW YORK AND IS UNDER DUTCH CONTROL." 1109 PRINT "YOU MUST CROSS THROUGH IROQUOIS LAND." 1110 PRINT "ANSWER 1, 2, OR 3." 1111 INPUT B 1112 IF B=1 THEN 1120 1113 IF B=2 THEN 1135 1115 IF B=3 THEN 1147 1116 GO TO 1110 1120 PRINT "YOU HAVE CHOSEN THE EASIEST ROUTE. HOWEVER, THE FORT" 1121 PRINT "IS FAR FROM ANY SEAPORT. THE VALUE" 1122 PRINT "YOU RECEIVE FOR YOUR FURS WILL BE LOW AND THE COST" 1123 PRINT "OF SUPPLIES HIGHER THAN AT FORTS STADACONA OR NEW YORK." 1125 GOSUB 1400 1129 IF B$="YES" THEN 1110 1130 GOTO 1160 1135 PRINT "YOU HAVE CHOSEN A HARD ROUTE. IT IS, IN COMPARSION," 1136 PRINT "HARDER THAN THE ROUTE TO HOCHELAGA BUT EASIER THAN" 1137 PRINT "THE ROUTE TO NEW YORK. YOU WILL RECEIVE AN AVERAGE VALUE" 1138 PRINT "FOR YOUR FURS AND THE COST OF YOUR SUPPLIES WILL BE AVERAGE" 1141 GOSUB 1400 1144 IF B$="YES" THEN 1110 1145 GOTO 1198 1147 PRINT "YOU HAVE CHOSEN THE MOST DIFFICULT ROUTE. AT" 1148 PRINT "FORT NEW YORK YOU WILL RECEIVE THE HIGHEST VALUE" 1149 PRINT "FOR YOUR FURS. THE COST OF YOUR SUPPLIES" 1150 PRINT "WILL BE LOWER THAN AT ALL THE OTHER FORTS." 1152 GOSUB 1400 1155 IF B$="YES" THEN 1110 1156 GOTO 1250 1160 LET I=I-160 1169 PRINT 1174 LET M1=INT((.2*RND+.7)*100+.5)/100 1175 LET E1=INT((.2*RND+.65)*10^2+.5)/10^2 1176 LET B1=INT((.2*RND+.75)*10^2+.5)/10^2 1177 LET D1=INT((.2*RND+.80)*10^2+.5)/10^2 1180 PRINT "SUPPLIES AT FORT HOCHELAGA COST $150.00" 1181 PRINT "YOUR TRAVEL EXPENSES TO HOCHELAGA WERE $10.00" 1190 GO TO 1410 1198 LET I=I-140 1201 PRINT 1205 LET M1=INT((.3*RND+.85)*10^2+.5)/10^2 1206 LET E1=INT((.15*RND+.80)*10^2+.5)/10^2 1207 LET B1=INT((.2*RND+.90)*10^2+.5)/10^2 1209 LET P=INT(10*RND)+1 1210 IF P<=2 THEN 1216 1212 IF P<=6 THEN 1224 1213 IF P<=8 THEN 1226 1215 IF P<=10 THEN 1235 1216 LET F(2)=0 1218 PRINT "YOUR BEAVER WERE TOO HEAVY TO CARRY ACROSS" 1219 PRINT "THE PORTAGE. YOU HAD TO LEAVE THE PELTS BUT FOUND" 1220 PRINT "THEM STOLEN WHEN YOU RETURNED" 1221 GOSUB 1244 1222 GO TO 1414 1224 PRINT "YOU ARRIVED SAFELY AT FORT STADACONA" 1225 GO TO 1239 1226 GOSUB 1430 1230 PRINT "YOUR CANOE UPSET IN THE LACHINE RAPIDS. YOU" 1231 PRINT "LOST ALL YOUR FURS" 1232 GOSUB 1244 1233 GO TO 1418 1235 LET F(4)=0 1237 PRINT "YOUR FOX PELTS WERE NOT CURED PROPERLY." 1238 PRINT "NO ONE WILL BUY THEM." 1239 GOSUB 1244 1240 GO TO 1410 1244 PRINT "SUPPLIES AT FORT STADACONA COST $125.00" 1246 PRINT "YOUR TRAVEL EXPENSES TO STADACONA WERE $15.00" 1248 RETURN 1250 LET I=I-105 1254 PRINT 1260 LET M1=INT((.15*RND+1.05)*10^2+.5)/10^2 1261 LET E1=INT((.15*RND+.95)*10^2+.5)/10^2 1262 LET B1=INT((.25*RND+1.00)*10^2+.5)/10^2 1263 LET D1=INT((.25*RND+1.10)*10^2+.5)/10^2 1270 LET P=INT(10*RND)+1 1271 IF P<=2 THEN 1281 1272 IF P<=6 THEN 1291 1273 IF P<=8 THEN 1295 1274 IF P<=10 THEN 1306 1281 PRINT "YOU WERE ATTACKED BY A PARTY OF IROQUOIS." 1282 PRINT "ALL PEOPLE IN YOUR TRADING GROUP WERE" 1283 PRINT "KILLED. THIS ENDS THE GAME." 1284 STOP 1291 PRINT "YOU WERE LUCKY. YOU ARRIVED SAFELY" 1292 PRINT "AT FORT NEW YORK." 1293 GO TO 1311 1295 GOSUB 1430 1300 PRINT "YOU NARROWLY ESCAPED AN IROQUOIS RAIDING PARTY." 1301 PRINT "HOWEVER, YOU HAD TO LEAVE ALL YOUR FURS BEHIND." 1303 GOSUB 1320 1304 GO TO 1418 1306 LET B1=B1/2 1307 LET M1=M1/2 1308 PRINT "YOUR MINK AND BEAVER WERE DAMAGED ON YOUR TRIP." 1309 PRINT "YOU RECEIVE ONLY HALF THE CURRENT PRICE FOR THESE FURS." 1311 GOSUB 1320 1312 GO TO 1410 1320 PRINT "SUPPLIES AT NEW YORK COST $80.00" 1322 RETURN 1400 PRINT "DO YOU WANT TO TRADE AT ANOTHER FORT?" 1402 PRINT "ANSWER YES OR NO", 1403 INPUT B$ 1404 RETURN 1410 PRINT 1412 PRINT "YOUR BEAVER SOLD FOR $";B1*F(2); 1414 PRINT "YOUR FOX SOLD FOR $";D1*F(4) 1416 PRINT "YOUR ERMINE SOLD FOR $";E1*F(3); 1417 PRINT "YOUR MINK SOLD FOR $";M1*F(1) 1418 LET I=M1*F(1)+B1*F(2)+E1*F(3)+D1*F(4)+I 1420 PRINT 1422 PRINT "YOU NOW HAVE $";I;" INCLUDING YOUR PREVIOUS SAVINGS" 1425 GO TO 508 1430 FOR J=1 TO 4 1432 LET F(J)=0 1434 NEXT J 1436 RETURN 2000 DATA "MINK","BEAVER","ERMINE","FOX" 2046 END 100 REM *** Program to print out a text file *** 110 REM 120 ON ERROR GOTO 200 140 OPEN 'SYSUPD:[GAMES]GAMEHELP.TXT' FOR INPUT AS FILE #1,ACCESS READ \ PRINT 150 LINPUT #1,LINE$ \ PRINT LINE$ \ GOTO 150 ! Loop until end of file 200 REM 210 REM *** Error handler *** 220 REM 230 IF ERR = 5 THEN PRINT "Can't open file: GAMEHELP.TXT" \ RESUME 32767 240 IF ERR = 11 THEN PRINT \ RESUME 32767 ! End of file 250 PRINT 'Error';ERR;'at line';ERL \ STOP ! Unknown error 32767 END 20 PRINT "CATALOG OF GAMES AND DEMOS. IT CAN BE PRINTED ON THIS" 30 print "terminal (ti:) or on the line printer (lp:)" 35 ON ERROR GOTO 1000 40 INPUT "WHERE DO YOU WANT YOUR CATALOG (KB: OR LP:)";A$ 50 open a$ as file 1% 100 PRINT #1%\ PRINT #1%," CATALOG OF GAMES AND RECREATIONS ON RSTS"\ PRINT #1% 110 PRINT #1%,"FOR MAXIMUM ENJOYMENT OF THESE GAMES, YOU SHOULD HAVE A" 120 PRINT #1%,"COPY OF THE BOOK, '101 BASIC COMPUTER GAMES' BY DAVID AHL."\ PRINT #1% 130 PRINT #1%,"ANIMAL COMPUTER GUESSES ANIMALS AND LEARNS NEW ONES FROM YOU" 140 PRINT #1%,"BAGLES USE LOGIC TO GUESS A MYSTERY 3-DIGIT NUMBER" 150 PRINT #1%,"BLKJAK BLACKJACK GAME, LAS VEGAS RULES" 160 PRINT #1%,"BOMBER FLY A WORLD WAR II BOMBING MISSION" 170 PRINT #1%,"BOUNCE PLOT A BOUNCING BALL" 180 PRINT #1%,"BOXING 3-ROUND OLYMPIC BOXING MATCH" 190 PRINT #1%,"BUG ROLL DICE VS THE COMPUTER TO DRAW A BUG" 195 PRINT #1%,"BULEYE THROW DARTS AT A TARGET (2 OR MORE PLAYERS)" 200 PRINT #1%,"CHIEF SILLY ARITHMETIC DRILL" 210 PRINT #1%,"CHOMP EAT A COOKIE AVOIDING THE POISON SQUARE (2 OR MORE PLAYERS)" 220 PRINT #1%,"CIVILW FIGHT THE CIVIL WAR" 230 PRINT #1%,"CRAPS PLAY CRAPS (DICE), LAS VEGAS STYLE" 240 PRINT #1%,"CUBE NEGOTIATE A 3-D CUBE AVOIDING HIDDEN LANDMINES" 250 PRINT #1%,"DIAMND PRINTS 1-PAGE DIAMOND PATTERNS" 260 PRINT #1%,"FLPFOP LOGIC GAME -- CHANGE A ROW OF X'S TO O'S" 270 PRINT #1%,"FOOTBL FOOTBALL GAME" 280 PRINT #1%,"FURS TRADE FURS WITH THE WHITE MAN" 290 PRINT #1%,"GOLF GOLF GAME -- CHOOSE YOUR CLUBS AND SWING" 300 PRINT #1%,"GUESS GUESS A MYSTERY NUMBER -- COMPUTER GIVES YOU CLUES" 320 PRINT #1%,"GUNNER FIRE A CANNON AT AN ENEMY" 330 PRINT #1%,"HANG GAME OF HANGMAN" 340 PRINT #1%,"HI Q TRY TO REMOVE ALL THE PEGS FROM A BOARD" 350 PRINT #1%,"HMRABI GOVERN THE ANCIENT CITY-STATE OF SUMERIA" 360 PRINT #1%,"HOCKEY ICE HOCKEY VS CORNELL" 365 PRINT #1%,"HORSES OFF-TRACK BETTING ON A HORSE RACE" 370 PRINT #1%,"HURKLE FIND THE HURKLE HIDING ON A 10 BY 10 GRID" 380 PRINT #1%,"KING GOVERN AN ISLAND KINGDOM WISELY" 390 PRINT #1%,"LIFE JOHN CONWAY'S GAME OF LIFE (NO RULES -- YOU HAVE TO HAVE" 391 PRINT #1%," '101 BASIC COMPUTER GAMES' TO PLAY)" 400 PRINT #1%,"LIT QZ CHILDREN'S LITERATURE QUIZ" 405 PRINT #1%,"MADLIB COMPUTER USES YOUR WORDS TO WRITE HILARIOUS STORIES" 410 PRINT #1%,"MATHDI CHILDREN'S ARITHMETIC DRILL USING PICTURES OF DICE" 420 PRINT #1%,"MUGWMP LOCATE 4 MUGWUMPS HIDING ON A 10 BY 10 GRID" 430 PRINT #1%,"NICOMA COMPUTER GUESSES A NUMBER YOU THINK OF" 440 PRINT #1%,"NIM CHINESE GAME OF NIM" 450 PRINT #1%,"1CHECK REMOVE ALL BUT ONE CHECKER FROM A BOARD" 460 PRINT #1%,"POET COMPUTER COMPOSES RANDOM POETRY" 470 PRINT #1%,"POKER POKER GAME" 475 PRINT #1%,"REVRSE ORDER A LIST OF NUMBERS BY REVERSING - VERY ADDICTIVE" 480 PRINT #1%,"ROCKET LAND AN APOLLO LEM ON THE MOON" 490 PRINT #1%,"ROCKT1 LUNAR LANDING FROM 500 FEET (WITH PLOT)" 500 PRINT #1%,"SALVO DESTROY AN ENEMY FLEET OF SHIPS" 505 PRINT #1%,"SHRINK ADVICE FROM YOUR FRIENDLY COMPUTER PSYCHIATRIST" 510 PRINT #1%,"SNOOPY PRINTS PICTURE OF SNOOPY (TO PRINT ON TERMINAL, RESPOND" 511 PRINT #1%," KB: -- TO PRINT ON LINE PRINTER, RESPOND LP:)" 520 PRINT #1%,"SPACWR COMPREHENSIVE GAME OF SPACEWAR VS KLINGONS" 530 PRINT #1%,"SPLAT OPEN A PARACHUTE AT THE LAST POSSIBLE MOMENT" 540 PRINT #1%,"STARS GUESS A SECRET NUMBER -- STARS TELL YOU HOW CLOSE YOU ARE" 550 PRINT #1%,"STOCK STOCK MARKET SIMULATION" 560 PRINT #1%,"TARGET DESTROY AN ENEMY TARGET IN 3-D SPACE -- VERY TRICKY" 570 PRINT #1%,"3DPLOT PLOT FAMILIES OF CURVES -- LOOKS 3-DIMENSIONAL" 580 PRINT #1%,"TOWER TOWERS OF HANOI GAME" 590 PRINT #1%,"TRAP TRAP A MYSTERY NUMBER -- COMPUTER GIVES YOU CLUES" 600 PRINT #1%,"23MTCH GAME OF 23 MATCHES -- TRY NOT TO TAKE THE LAST ONE" 610 PRINT #1%,"UGLY SILLY PROFILE PLOT OF AN UGLY WOMAN" 620 PRINT #1%,"WEKDAY LEARN ABOUT YOUR DATE OF BIRTH" 630 PRINT #1%,"ZOOP BASIC PROGRAMMERS NIGHTMARE" 990 PRINT #1% FOR N=1 TO 10\GOTO 2000 1000 IF ERR<>3 OR ERR<>8 OR ERR<>14 THEN ON ERROR GOTO 1010 PRINT "SORRY, DEVICE NOT AVAILABLE, HUNG, OR WRITE LOCKED." 1020 PRINT "TRY AGAIN OR INPUT CONTROL/C TO EXIT."\RESUME 35 2000 END 1 REM *** GEOWAR 2 REM *** WRITTEN BY GARY LORENC, IDEA BY KENNETH JANOWIAK 3 REM *** ST. PATRICK HS, 5900 W. BELMONT AVE, CHICAGO, ILL 4 REM *** UPDATED TO BASIC-PLUS BY DAVE AHL, DIGITAL PDP-11/45 GROUP 5 PRINT "DO YOU WANT A DESCRIPTION OF THE GAME? (1-YES,0-NO) "; 6 INPUT I 7 IF I=0 THEN 46 8 PRINT 9 PRINT " THE FIRST QUADRANT OF A REGULAR COORDINATE GRAPH WILL"; 10 PRINT " SERVE AS" 11 PRINT "THE BATTLEFIELD. FIVE ENEMY INSTALLATIONS ARE LOCATED "; 12 PRINT "WITHIN A" 13 PRINT "30 BY 30 UNIT AREA. NO TARGET IS INSIDE THE 10 BY 10 "; 14 PRINT "UNIT AREA" 15 PRINT "ADJACENT TO THE ORIGIN, AS THIS IS THE LOCATION OF OUR "; 16 PRINT "BASE. WHEN" 17 PRINT "THE MACHINE ASKS FOR THE DEGREE OF THE SHOT, RESPOND "; 18 PRINT "WITH A NUMBER" 19 PRINT "BETWEEN 1 AND 90." 20 PRINT 21 PRINT TAB(51),"SCARE**********" 22 PRINT " 1. A DIRECT HIT IS A HIT WITHIN 1 DEGREE OF"; 23 PRINT TAB(51),"* *" 24 PRINT " THE TARGET.",TAB(51),"* HIT****** *" 25 PRINT " 2. A HIT MUST PASS BETWEEN THE FIRST SET OF"; 26 PRINT TAB(51),"* * * *" 27 PRINT " INTEGRAL POINTS NW AND SE OF THE TARGET."; 28 PRINT TAB(51),"* * D * *" 29 PRINT " 3. A SCARE MUST PASS BETWEEN THE NEXT SET OF"; 30 PRINT TAB(51),"* * * *" 31 PRINT " INTEGRAL POINTS NW AND SE OF THE TARGET,"; 32 PRINT TAB(51),"* ******HIT *" 33 PRINT " AND CAUSES THE ENEMY TO RELOCATE A "; 34 PRINT TAB(51),"* *" 35 PRINT " MAXIMUM OF 1 UNIT IN ANY DIRECTION."; 36 PRINT TAB(51),"**********SCARE" 37 PRINT 38 PRINT 39 PRINT " MISSILES HAVE INFINITE RANGE AND MAY HIT MORE THAN "; 40 PRINT "ONE TARGET." 41 PRINT "A MISSILE THAT NEARLY MISSES AN INSTALLATION (A SCARE) "; 42 PRINT "WILL BE" 43 PRINT "IMMEDIATELY SHOT DOWN. ANY HITS BEFORE THIS TIME WILL "; 44 PRINT "NOT BE COUNTED" 45 PRINT "UNLESS A DIRECT HIT WAS MADE." 46 PRINT 47 PRINT 48 PRINT "READY TO GO? (1-YES,0-NO) "; 49 INPUT R2 50 IF R2=0 THEN 192 51 PRINT "GOOD LUCK!" 52 PRINT 53 DIM C(10),H(20),D(10),S(20),F(5) 54 DEF* FNV(V1)=INT((180/3.14159)*ATN(V1)+.5) 55 X=250 56 X1=RND(X) 57 G2=0 58 S2=0 59 D2=0 60 H2=0 61 FOR K=1 TO 10 62 GO SUB 154 63 IF INT(K/2)<>K/2 THEN 70 64 IF C(K-1)>10 THEN 70 65 IF C(K)>10 THEN 70 66 FOR L=K-1 TO K 67 GO SUB 154 68 NEXT L 69 GO TO 63 70 NEXT K 71 S=0 72 FOR L=1 TO 5 73 D(L)=FNV(C(2*L)/C(2*L-1)) 74 NEXT L 75 A=2 76 L1=10 77 T5=5 78 D5=0 79 H5=0 80 GO SUB 147 81 PRINT 82 PRINT "ENTER DEGREE OF SHOT "; 83 D1=0 84 H1=0 85 FOR Q=1 TO 5 86 F(Q)=20 87 NEXT Q 88 INPUT D 89 IF D>=90 THEN 81 90 IF D<0 THEN 177 ELSE IF D=0 THEN 192 91 S=S+1 92 FOR A=2 TO 10 STEP 2 93 IF D>S(A) THEN 103 94 IF DH(A) THEN 105 96 IF DD(A/2)+1 THEN 101 98 IF D0 THEN 118 106 GO SUB 138 107 GO TO 81 108 IF D1+H1<>0 THEN 112 109 IF T5=1 THEN 159 110 PRINT "NO LUCK -- TRY AGAIN." 111 GO TO 81 112 IF D1>0 THEN 118 113 IF H1>1 THEN 116 114 PRINT "**CONGRATULATIONS** A HIT." 115 GO TO 124 116 PRINT "**CONGRATULATIONS**";H1;" HITS." 117 GO TO 124 118 PRINT "****BULLS EYE**** "; 119 IF D1>1 THEN 123 120 IF H1>0 THEN 123 121 PRINT " A DIRECT HIT!" 122 GO TO 124 123 PRINT D1+H1;" HITS -- A DIRECT HIT ON";D1;" OF THEM!" 124 T5=T5-(D1+H1) 125 D5=D5+D1 126 H5=H5+H1 127 IF T5=0 THEN 167 128 FOR J= 1 TO H1+D1 129 Z=F(J) 130 D(Z/2)=0 131 H(Z)=0 132 H(Z-1)=0 133 S(Z)=0 134 S(Z-1)=0 135 NEXT J 136 PRINT 5-T5;" DOWN --";T5;" TO GO." 137 GO TO 81 138 PRINT "A NEAR HIT. ENEMY HAS RELOCATED." 139 FOR R=1 TO 2 140 X2=INT(RND(0)*100) 141 IF ABS(C(A-(R-1))-X2)>1 THEN 140 142 IF C(A-(R-1))<=2 THEN 140 143 C(A-(R-1))=X2 144 NEXT R 145 D(A/2)=FNV(C(A)/C(A-1)) 146 L1=A 147 FOR I=A TO L1 STEP 2 148 H(I-1)=FNV((C(I)-1)/(C(I-1)+1)) 149 H(I)=FNV((C(I)+1)/(C(I-1)-1)) 150 S(I-1)=FNV((C(I)-2)/(C(I-1)+2)) 151 S(I)=FNV((C(I)+2)/(C(I-1)-2)) 152 NEXT I 153 RETURN 154 R=INT(RND(0)*100) 155 IF R>30 THEN 154 156 IF R<3 THEN 154 157 C(K)=R 158 RETURN 159 FOR Z1=1 TO 5 160 IF D(Z1)>1 THEN 162 161 NEXT Z1 162 IF D30 THEN 470 110 IF H<0 THEN 470 120 PRINT "DIFFICULTIES AT GOLF INCLUDE:" 130 PRINT "0=HOOK, 1=SLICE, 2=POOR DISTANCE, 4=TRAP SHOTS, 5=PUTTING" 140 PRINT "WHICH ONE (ONLY) IS YOUR WORST"; 150 INPUT T 160 IF T>5 THEN 120 170 LET S1=0 210 RANDOMIZE 230 LET L(0)=0 240 LET J=0 245 LET Q=0 250 LET S2 = S2+1 260 LET K=0 270 IF F=1 THEN 310 290 PRINT "YOUR SCORE ON HOLE";F-1;" WAS";S1 291 GO TO 1750 292 IF S1>P+2 THEN 297 293 IF S1=P THEN 299 294 IF S1=P-1 THEN 301 295 IF S1=P-2 THEN 303 296 GO TO 310 297 PRINT "KEEP YOUR HEAD DOWN." 298 GO TO 310 299 PRINT "A PAR. NICE GOING." 300 GO TO 310 301 PRINT "A BIRDIE" 302 GO TO 310 303 IF P=3 THEN 306 304 PRINT "A GREAT BIG EAGLE:" 305 GO TO 310 306 PRINT "A HOLE IN ONE" 310 IF F=19 THEN 1710 315 LET S1=0 316 PRINT 320 IF S1=0 THEN 1590 330 IF L(0)<1 THEN 1150 340 LET X=0 350 IF L(0)>5 THEN 1190 360 PRINT "SHOT WENT";D1;"YARDS. IT'S";D2;"YARDS FROM THE CUP." 362 PRINT "BALL IS";INT(O);"YARDS OFF LINE...IN "; 380 GOSUB 400 390 GOTO 620 400 IF L(X)=1 THEN 480 410 IF L(X)=2 THEN 500 420 IF L(X)=3 THEN 520 430 IF L(X)=4 THEN 540 440 IF L(X)=5 THEN 560 450 IF L(X)=6 THEN 580 460 PRINT "OUT OF BOUNDS" 465 GOTO 1690 470 PRINT "PGA RULES HANDICAP = 0 TO 30" 472 GOTO 150 480 PRINT "FAIRWAY" 490 GOTO 1690 500 PRINT "ROUGH" 510 GOTO 1690 520 PRINT "TREES" 530 GOTO 1690 540 PRINT "ADJACENT FAIRWAY" 550 GOTO 1690 560 PRINT "TRAP" 570 GOTO 1690 580 PRINT "WATER" 590 GOTO 1690 620 IF A=1 THEN 629 621 PRINT "SELECTION OF CLUBS" 622 PRINT "YARDAGE DESIRED SUGGESTED CLUBS" 623 PRINT "200 TO 280 YARDS 1 TO 4" 624 PRINT "100 TO 200 YARDS 19 TO 13" 625 PRINT " 0 TO 100 YARDS 29 TO 23" 626 LET A=1 629 PRINT "WHAT CLUB DO YOU CHOOSE"; 630 INPUT C 632 PRINT 635 IF C<1 THEN 690 637 IF C>29 THEN 690 640 IF C>4 THEN 710 650 IF L(0)<5 THEN 740 660 IF C=14 THEN 740 665 IF C=23 THEN 740 670 GOTO 690 680 LET S1 = S1-1 690 PRINT "THAT CLUB IS NOT IN THE BAG." 693 PRINT 700 GOTO 620 710 IF C<12 THEN 690 720 LET C=C-6 730 GOTO 650 740 LET S1 = S1+1 741 LET W=1 742 IF C>13 THEN 960 746 IF INT(F/3)=F/3 THEN 952 752 IF C<4 THEN 756 754 GOTO 760 756 IF L(0)=2 THEN 862 760 IF S1>7 THEN 867 770 LET D1=INT(((30-H)*2.5+187-((30-H)*.25+15)*C/2)+25*RND) 780 LET D1=INT(D1*W) 800 IF T=2 THEN 1170 830 LET O=(RND/.8)*(2*H+16)*ABS(TAN(D1*.0035)) 840 LET D2=INT(SQR(O^2+ABS(D-D1)^2)) 850 IF D-D1<0 THEN 870 860 GOTO 890 862 PRINT "YOU DUBBED IT." 864 LET D1=35 866 GOTO 830 867 IF D<200 THEN 1300 868 GOTO 770 870 IF D2<20 THEN 890 880 PRINT "TOO MUCH CLUB. YOU'RE PAST THE HOLE." 890 LET B=D 900 LET D=D2 910 IF D2>27 THEN 1020 920 IF D2>20 THEN 1100 930 IF D2>.5 THEN 1120 940 LET L(0)=9 950 GOTO 1470 952 IF S2+Q+(10*(F-1)/18)<(F-1)*(72+((H+1)/.85))/18 THEN 956 954 GOTO 752 956 LET Q = Q+1 957 IF S1/2<>INT(S1/2) THEN 1011 958 GOTO 862 960 PRINT "YOU MAY NOW GUAGE YOUR DISTANCE BY PERCENT .01 TO .99" 961 PRINT "PERCENT FULL SWING "; 970 INPUT W 972 PRINT 980 IF W>1 THEN 680 985 IF L(0) = 5 THEN 1280 990 IF C=14 THEN 760 1000 LET C = C-10 1010 GOTO 760 1011 IF D<95 THEN 862 1012 PRINT "BALL HIT TREE - BOUNCED INTO ROUGH";D-75;" YARDS FROM HOLE." 1014 LET D=D-75 1018 GOTO 620 1020 IF O<30 THEN 1150 1022 IF J>0 THEN 1150 1030 IF T>0 THEN 1070 1035 LET S9=(S2+1)/15 1036 IF INT(S9)=S9 THEN 1075 1040 PRINT "YOU HOOKED- "; 1050 LET L(0)=L(2) 1055 IF O>45 THEN 1092 1060 GOTO 320 1070 LET S9=(S2+1)/15 1071 IF INT(S9)=S9 THEN 1040 1075 PRINT "YOU SLICED- "; 1080 LET L(0)=L(1) 1090 GOTO 1055 1092 PRINT "BADLY." 1094 GOTO 320 1100 LET L(0)=5 1110 GOTO 320 1120 LET L(0)=8 1130 LET D2=INT(D2*3) 1140 GOTO 1380 1150 LET L(0)=1 1160 GOTO 320 1170 LET D1=INT(.85*D1) 1180 GOTO 830 1190 IF L(0)>6 THEN 1260 1200 PRINT "YOUR SHOT WENT INTO WATER." 1210 LET S1 = S1+1 1220 PRINT "PENALTY STROKE ASSESSED. HIT FROM PREVIOUS LOCATION." 1230 LET J=J+1 1240 LET L(0)=1 1242 LET D=B 1250 GOTO 620 1260 PRINT "YOUR SHOT WENT OUT OF BOUNDS." 1270 GOTO 1210 1280 IF T=3 THEN 1320 1300 LET D2=1+(3*INT((80/(40-H))*RND)) 1310 GOTO 1380 1320 IF RND>N THEN 1360 1330 LET N=N*.2 1340 PRINT "SHOT DUBBED, STILL IN TRAP." 1350 GOTO 620 1360 LET N=.8 1370 GOTO 1300 1380 PRINT "ON THE GREEN";D2;" FEET FROM THE PIN." 1381 PRINT "CHOOSE YOUR PUTT DISTANCE BY POTENCY NUMBER 1 TO 13." 1382 PRINT "PUTT POTENCY NUMBER"; 1400 INPUT I 1410 LET S1 = S1+1 1420 IF S1+1-P>(H*.072)+2 THEN 1470 1425 IF K>2 THEN 1470 1428 LET K=K+1 1430 IF T=4 THEN 1530 1440 LET D2=D2-I*(4+2*RND)+1.5 1450 IF D2<-2 THEN 1560 1460 IF D2>2 THEN 1500 1470 PRINT "YOU HOLED IT" 1472 PRINT 1480 LET F=F+1 1490 GOTO 230 1500 PRINT "PUTT SHORT." 1505 LET D2=INT(D2) 1510 GOTO 1380 1530 LET D2=D2-I*(4+1*RND)+1 1550 GOTO 1450 1560 PRINT "PASSED BY CUP." 1570 LET D2=-D2 1580 GOTO 1505 1590 READ D,P,L(1),L(2) 1595 PRINT 1600 PRINT "YOU ARE AT TEE OF HOLE";F;" DISTANCE";D;" YARDS, PAR";P;" " 1605 LET G3=G3+P 1620 PRINT "ON YOUR RIGHT IS "; 1630 LET X=1 1640 GOSUB 400 1650 PRINT "ON YOUR LEFT IS "; 1660 LET X=2 1670 GOSUB 400 1680 GOTO 620 1690 RETURN 1700 DATA 361,4,4,2,389,4,3,3,206,3,4,2,500,5,7,2 1702 DATA 408,4,2,4,359,4,6,4,424,4,4,2,388,4,4,4 1704 DATA 196,3,7,2,400,4,7,2,560,5,7,2,132,3,2,2 1706 DATA 357,4,4,4,294,4,2,4,475,5,2,3,375,4,4,2 1708 DATA 180,3,6,2,550,5,6,6 1710 PRINT 1750 LET G2=G2+S1 1760 PRINT "TOTAL PAR FOR ";F-1;" HOLES IS ";G3;" YOUR TOTAL IS" ;G2 1761 IF G1=F-1 THEN 1770 1765 GOTO 292 1770 END 1 ! & & ! G O T H I C B A N N E R P R O G R A M & & 2! FILENAME : GOTHPR.B2S 5! VERSION : V3.1 6! EDIT : 1 7! EDIT DATE : 31-Jan-78 8! 9! AUTHOR : RWC/RTW & ! UPDATED FOR RSXM: R. Miller 10! 20 ! & & ! M O D I F I C A T I O N H I S T O R Y & 21 ! VER/ED EDIT DATE REASON & ! & ! 3.1 31-Jan-78 Modify for RSX-11M & 100 ! & ! G E N E R A L D E S C R I P T I O N & 101! THIS PROGRAM WILL GENERATE BANNERS ON ANY DESIRED FILESPEC. & ! THE BANNER IS USUALLY TRANSFERRED TO A LINE PRINTER WHICH & ! WILL REPRODUCE THE DESIRED CHARACTER STRING WITH MUCH & ! OVER PRINTING. THE LETTERS ARE LARGE GOTHIC. THE DEFAULT & ! COLOR SCHEME IS BLACK ON WHITE. A "/" ANYWHERE IN THE INPUT & ! STRING WILL SWITCH TO THE INVERSE OF THE PREVIOUS CHARACTER. & ! THIS PROGRAM WILL QUE THE OUTPUT TO THE LINE PRINTER IF & ! DESIRED. AUTO QUE, AUTO DELETE, AND MULTIPLE COPIES ARE & ! FEATURED. THE PROGRAM ALSO HAS AUTO RESTART CAPABILITY. & ! & 300 ! & ! I / O C H A N N E L S & 310 ! CHANNEL USED FOR 320 ! 1 GOTHDT.VAP VIRTUAL CHARACTER ARRAY 330 ! 2 OUTPUT FILE FOR BANNER & 400 ! & & ! V A R I A B L E D E S C R I P T I O N S & 900 ! & & ! D I M E N S I O N S T A T E M E N T S & 910 DIM A%(128%) & ! & 920 DIM #1%, C%(128%,512%) & ! VIRTUAL CHARACTER ARRAY GOTHDT.VAP & 999! & ! M A I N C O D I N G A R E A & 1000 ON ERROR GOTO 19000 & ! SET UP STANDARD ERROR TRAP & 1010 I$="V3.1" & ! SET UP VERSION AND EDIT NUMBER & 1020 I$="GOTHPR"+CHR$(9%)+I$+CHR$(9%)+"RSX-11M" & \ PRINT I$ & ! SET UP HEADER AND PRINT IT & 1030 T9%=0% & ! SET AUTO RESTART FLAG TO FALSE & 1040 Q%=0% \ R%=0% & ! AUTO RESTART ENTRY POINT - QUE=FALSE RESTART=FALSE & 1050 INPUT "AUTO RESTART ";R$ & \ R$=LEFT(R$,1%) & ! CHECK LEFT MOST CHARACTER & 1060 IF R$="Y" THEN R%=-1% ELSE & IF R$="N" OR R$="" THEN 1800 ELSE 1050 & ! DEFAULT TO NO - MUST BE Y???? FOR YES & 1800 X$="#.(@!$);-,?:'"+'"' & \ X$=X$+CHR$(X%) FOR X%=97% TO 122% & \ X$=X$+"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" & ! VALID CHARACTERS & 1810 A%(I%) = I%-1% FOR I%=1% TO 128% & \ A%(0%) = 128% & \ A%(89%) = 42% & \ CHANGE A% TO X1$ & 1815 A%(89%) = 79% & \ CHANGE A% TO X2$ & 1820 A%(89%) = 32% & \ A%(33%) = 88% & \ CHANGE A% TO X3$ & 1830 OPEN "SYSUPD:[GAMES]GOTHDT.VAP" FOR INPUT AS FILE 1%, & VIRTUAL, ACCESS READ, ALLOW READ & ! OPEN VIRTUAL ARRAY IN GAMES ACCOUNT READ ONLY & 1840 INPUT "Enter FILNAM.EXT to output to ";O$ & \ OPEN O$ FOR OUTPUT AS FILE 2%, MAP BUF, & SEQUENTIAL VARIABLE, ACCESS WRITE, ALLOW NONE & ! Open output file on channel 2% & 1850 MAP (BUF) OUT$ = 132% & ! SET UP OUTPUT BUFFER FOR MAX. 132 CHARACTERS & 1860 IF T9%=0% THEN PRINT & \ PRINT "THE CHARACTER STRING CAN BE AS LONG AS DESIRED." & \ PRINT "INPUT MAY BE ON MULTIPLE LINES. A BLANK LINE " & \ PRINT "I.E. TERMINATES THE INPUT. THE DEFAULT MODE " & \ PRINT "OF OUTPUT IS BLACK ON WHITE. THE MODE IS INVERTED " & \ PRINT " WHENEVER A "+'"/"'+" IS ENCOUNTERED." & ! MESSAGE OF HELP ON FIRST PASS ONLY & 1870 PRINT CHR$(9%)+CHR$(9%)+"VALID CHARACTERS ARE:" & \ PRINT X$ & \ PRINT & ! PRINT VALID CHARACTERS LIST & 2000 INPUT LINE A$\CHANGE A$ TO A%\A%(0%)=A%(0%)-2% & 2001 IF A%(0%)=0% THEN 2999 & 2010 FOR W% = 1% TO A%(0%) & \ IF A%(W%) = 47% THEN & F% = NOT(F%) & \ GOTO 2040 & !DO LINE IF / THEN CHANGE BACKGROUND & 2015 W1% = POS(X$,CHR$(A%(W%)),1%) & \ W1% = 77% IF W1% = 0% & ! MAP CHAR TO VAL SET TO 77 (SPACE ) IF NO VALID & 2020 W2% = FNG%(W1%,F%) & ! PRINT THE LETTER & 2040 NEXT W% & \ PRINT #2%, CHR$(12%) & \ GOTO 2000 & !LOOP & !CLEAR PRINTER & !SEE IF USER WANTS MORE & 2999 CLOSE 1%, 2% & ! CLOSE INPUT AND OUTPUT FILES & 3000 IF Q%=0% AND R%=-1% THEN 3050 & ! IF NO QUE BUT AUTO RESTART JUST START AT SPECIAL ENTRY & 3010 IF Q%=0% AND R%=0% THEN PRINT & \ GOTO 32767 & ! IF NO QUE AND NO RESTART THEN EXIT & 3050 T9%=-1% \ GOTO 1040 & ! TURN OFF MESSAGE FLAG AND RESTART PROMPTS & ! RESTART ENTRY POINT & 19000 ! & & ! S T A N D A R D E R R O R T R A P & & 19020 PRINT "ERROR"; ERR; "AT LINE"; ERL & ! PRINT THE ERROR MESSAGE & & 19030 RESUME 32767 & ! EXIT GRACEFULLY & 20000 DEF FNG%(T%,T0%) & !PRINT GOTH LETTER & 20010 T$="" & \ FOR T1% = 1% TO C%(T%,0%) -1% & !START LOOP & 20020 IF (C%(T%,T1%) <> 0%) THEN 20030 & !IF NOT A ZERO THEN GO ON & 20022 T$=T$+SPACE$(132%-LEN(T$)) & \ T$=XLATE(T$,X3$) IF T0% = -1% & ! ADD SPACES TILL 132 AND NEG IF T0 SET & 20024 LET OUT$ = T$+CHR$(13%)+XLATE(T$,X1$)+CHR$(13%)+XLATE(T$,X2$) & \ PUT #2 & ! PRINT THE LINE & 20026 T$="" & \ GOTO 20100 & !ZERO THE STRING AND GOTO NEXT & 20030 IF C%(T%,T1%) > 0% THEN T$=T$+SPACE$(C%(T%,T1%)) & \GOTO 20100 & !IF POS THE ADD SPACES & 20040 T$=T$+"X" FOR T3% = C%(T%,T1%) TO 0% & !NEG ADD CHAR & 20100 NEXT T1% 20200 FNG%=T% & \FNEND & 32767 END 5 REM *** CONVERTED FROM THE ORIGINAL FOCAL PROGRAM TO BASIC BY 6 REM *** DAVID AHL, DIGITAL 10 PRINT "I HAVE CHOSEN AN INTEGER 0 THROUGH 100. TRY TO" 15 PRINT "GUESS MY NUMBER IN AS FEW TRIES AS POSSIBLE." 16 PRINT 20 LET C=0 22 RANDOMIZE 25 LET N = INT(RND*100) 30 LET C=C+1 35 PRINT "YOUR GUESS IS"; 40 INPUT G 45 IF N=G THEN 70 50 IF G>N THEN 60 55 PRINT "TOO LOW" 56 GO TO 30 60 PRINT "TOO HIGH" 65 GO TO 30 70 PRINT "CORRECT IN";C;"GUESSES." 75 IF C>3 THEN 90 80 PRINT "YOU WERE LUCKY!" 85 STOP 90 IF C>7 THEN 100 95 PRINT "GOOD JOB." 98 GOTO 105 100 PRINT "BUT YOU SHOULDN'T NEED MORE THAN 7 GUESSES." 105 PRINT \PRINT "LET'S PLAY AGAIN" 110 PRINT "I'M THINKING OF ANOTHER NUMBER"\GOTO 20 999 END 5 REM 'WAR 3'. ORIGINAL 8K MODV FOCAL BY MIKE FURMAN 10 REM TSS/8 BASIC IV VERSION BY M E LYON JR 1972 15 DIM V(3),X(3),P(3),R(3,3) 20 DATA 1,2,2,3,3,1,1,3,3,2,2,1,2,3,3,1,1,2,0 25 PRINT "THIS IS THE BASIC VERSION OF 'WAR3'. TWO OR THREE MAY PLAY." 30 PRINT "DO YOU NEED INSTRUCTIONS";\INPUT A$\IF A$="YES" THEN 265 35 PRINT \PRINT \PRINT "NO. OF PLAYERS";\INPUT N 40 IF N=2 THEN 50\IF N=3 THEN 55 45 PRINT "ERROR--TWO OR THREE PLAYERS."\PRINT \GOTO 35 50 N1=1\PRINT \PRINT \GOTO 60 55 N1=N\PRINT \PRINT 60 FOR J=1 TO N1\READ A,B\PRINT "DISTANCE (FT.) ";A;" TO ";B;\INPUT R(A,B) 65 R(B,A)=R(A,B)\NEXT J\PRINT \PRINT 70 RESTORE \IF N=2 THEN 95 75 FOR J=1 TO N\READ A,B,C,D,E,F 80 IF R(A,B)R(A,B) THEN 130 120 PRINT "ERROR--";A;" CANNOT REACH ";B 125 PRINT "WHAT IS THE MUZZLE VELOCITY OF ";A;\INPUT V(A)\GOTO 105 130 NEXT B\NEXT A\N1=N\PRINT \PRINT \PRINT \PRINT \PRINT 135 PRINT \PRINT \PRINT "ROUND ";T+1\PRINT \FOR M=1 TO N\IF P(M)=12 THEN 260 140 IF N=3 THEN 150\C=1\IF M<>1 THEN 145\C=2 145 PRINT "PLAYER ";M;" SHOOTING AT ";C\GOTO 175 150 PRINT "PLAYER ";M;" SHOOTING AT";\INPUT C 155 IF C=1 THEN 165\IF C=2 THEN 165\IF C=3 THEN 165 160 PRINT "ERROR--PLAYERS DESIGNATED 1, 2, 3."\GOTO 150 165 IF C<>M THEN 170\PRINT "ERROR--CANNOT SHOOT SELF."\GOTO 150 170 IF P(C)<>12 THEN 175\PRINT "ERROR-- ";C;" IS DEFUNCT"\GOTO 150 175 PRINT "FIRING ANGLE";\INPUT A3 180 IF A3<0 THEN 185\IF A3>180 THEN 185\GOTO 190 185 PRINT "ERROR--FIRED INTO GROUND. ";M;" NOW DEFUNCT."\P(M)=12\GOTO 240 190 IF A3<90 THEN 195\PRINT "ERROR--FIRED WRONG WAY, LOSE SHOT."\GOTO 260 195 Z=SIN(A3*.0349064)*V(M)^2/32 200 X=(R(M,C)/1000*RND(X))-(R(M,C)/1000*RND(X)) 205 D=X+Z\D1=R(M,C)*.05 210 IF DR(M,C) THEN 235 220 PRINT " TOO CLOSE - ";M;" IS DEFUNCT."\P(M)=12\GOTO 240 225 PRINT " A HIT - ";C;" IS DEFUNCT."\P(C)=12\GOTO 240 230 PRINT " YOU UNDERSHOT BY ";ABS(D-R(M,C));" FEET."\GOTO 260 235 PRINT " YOU OVERSHOT BY ";ABS(D-R(M,C));" FEET."\GOTO 260 240 N1=N1-1\IF N1>1 THEN 260 245 FOR M1=1 TO N\IF P(M1)=12 THEN 255 250 PRINT \PRINT "GAME OVER. ";M1;" WINS."\STOP 255 NEXT M1\STOP 260 PRINT \PRINT \NEXT M\T=T+1\GOTO 135 265 PRINT \PRINT "THIS IS A WAR GAME. TWO OR THREE PLAYERS ARE GIVEN" 270 PRINT "(THEORETICAL) CANNONS WITH WHICH THEY ATTEMPT TO SHOOT EACH" 275 PRINT "OTHER. THE PARAMETERS FOR DISTANCES AND MUZZLE VELOCITIES ARE " 280 PRINT "SET AT THE BEGINING OF THE GAME. THE SHOTS ARE FIRED BY" 285 PRINT "GIVING A FIRING ANGLE, EXPRESSED IN DEGREES FROM HORIZONTAL" 290 PRINT \PRINT "THE COMPUTER WILL KEEP TRACK OF THE GAME AND REPORT AFTER EACH" 295 PRINT "MOVE. A 'HIT' IS SCORED BY FIRING A SHOT WITHIN 5% OF THE TOTAL" 300 PRINT "DISTANCE FIRED OVER. GOOD LUCK"\PRINT \PRINT \GOTO 35\END 10 REM *** MODIFIED AND CONVERTED TO RSTS/E BY DAVID AHL, DIGITAL 90 RANDOMIZE 100 PRINT "THIS COMPUTER DEMONSTRATION SIMULATES THE" 110 PRINT "RESULTS OF FIRING A FIELD ARTILLERY WEAPON." 120 PRINT 130 PRINT "YOU ARE THE OFFICER-IN-CHARGE, GIVING ORDERS TO THE GUN" 140 PRINT "CREW, TELLING THEM THE DEGREES OF ELEVATION YOU ESTIMATE" 150 PRINT "WILL PLACE THE PROJECTILE ON TARGET. A HIT WITHIN 100 YARDS" 160 PRINT "OF THE TARGET WILL DESTROY IT. TAKE MORE THAN 5 SHOTS," 170 PRINT "AND THE ENEMY WILL DESTROY YOU!"\PRINT 180 PRINT "MAXIMUM RANGE OF YOUR GUN IS 46500 YARDS." 185 Z=0 190 PRINT 195 S1=0 200 LET T=43000-30000*RND 210 LET S=0 220 GO TO 370 230 PRINT "MINIMUM ELEVATION OF GUN IS ONE DEGREE." 240 GO TO 390 250 PRINT "MAXIMUM ELEVATION OF GUN IS 89 DEGREES." 260 GO TO 390 270 PRINT "OVER TARGET BY";ABS(E);"YARDS." 280 GO TO 390 290 PRINT "SHORT OF TARGET BY";ABS(E);"YARDS." 300 GO TO 390 310 GO TO 320 320 PRINT "***TARGET DESTROYED*** ";S;"ROUNDS OF AMMUNITION EXPENDED" 322 GOSUB 600 325 S1=S1+S 330 IF Z=4 THEN 490 340 Z=Z+1 345 PRINT 350 PRINT "THE FORWARD OBSERVER HAS SIGHTED MORE ENEMY ACTIVITY." 360 GO TO 200 370 PRINT " DISTANCE TO THE TARGET IS";INT(T);"YARDS....." 380 PRINT 390 PRINT 400 PRINT "ELEVATION:"; 410 INPUT B 420 IF B>89 THEN 250 430 IF B<1 THEN 230 440 LET S=S+1 442 IF S<6 THEN 450 444 PRINT \PRINT "BOOM !!! YOU HAVE JUST BEEN DESTROYED "; 445 GOSUB 600 446 PRINT "BY THE ENEMY"\PRINT \PRINT \GOTO 495 450 LET B2=2*B/57.3\LET I=46500*SIN(B2)\LET X=T-I\LET E=INT(X) 460 IF ABS(E)<100 THEN 310 470 IF E>100 THEN 290 480 IF E<-100 THEN 270 490 PRINT \PRINT \PRINT "TOTAL ROUNDS EXPENDED WERE";S1 491 IF S1>15 THEN GOTO 495\PRINT "NICE SHOOTING !!"\GOSUB 600\GOTO 500 495 PRINT "BETTER GO BACK TO FORT SILL FOR REFRESHER TRAINING!" 500 PRINT \PRINT "THANK YOU FOR PLAYING!" 505 PRINT\INPUT "DO YOU WANT TO TRY AGAIN";Z$ 510 Z$=LEFT(Z$,1%) \ IF Z$<>"N" GOTO 180 520 PRINT\PRINT "BYE BYE FOR NOW "\ GOTO 999 600 FOR N=1 TO 10\PRINT CHR$(7);\NEXT N 610 RETURN 999 END 1 !rewritten in VAX-11 Basic by Louise Aitel, digital !CONVERTED FROM THE ORIGINAL FOCAL PROGRAM AND MODIFIED FOR !EDUSEEDYSTEM 70 BY DAVID AHL, DIGITAL 20 !Declaritives and other initial stuff DECLARE INTEGER ACRES, ACRES1 DECLARE INTEGER ACRES_TO_PLANT DECLARE INTEGER BUY_OR_SELL DECLARE INTEGER BUSHELS_TO_USE DECLARE INTEGER EATEN DECLARE INTEGER HARVEST DECLARE INTEGER INCOMING DECLARE INTEGER PEOPLE DECLARE INTEGER PEOPLE_COUNT DECLARE INTEGER PLAGUE_CHANCE DECLARE INTEGER SEED, SEED1 DECLARE INTEGER STARVED DECLARE INTEGER STARVED_COUNT DECLARE INTEGER YEAR_COUNT DECLARE INTEGER YIELD_PER_ACRE DECLARE REAL PERCENT_STARVED DECLARE REAL RANDOM_NUM DECLARE STRING ANSWER 100 PRINT "TRY YOUR HAND AT GOVERNING ANCIENT SUMERIA" PRINT "SUCCESSFULLY FOR A 10-YR TERM OF OFFICE."\PRINT RANDOMIZE !initialization STARVED = 0 STARVED_COUNT=0 PERCENT_STARVED=0 YEAR_COUNT=0 PEOPLE=95 SEED=1500 ACRES = 1000 ACRES_TO_PLANT = 1000 300 !Let's have some babies and immigrants RANDOM_NUM = INT(RND*5)+1 INCOMING = INT(RANDOM_NUM*(20*ACRES+SEED)/PEOPLE/100+1) !Horrors, a 15% chance of plague PLAGUE_CHANCE=INT(10*(2*RND-.3)) !Calculate harvest YIELD_PER_ACRE = INT(RND*5)+1 HARVEST=ACRES_TO_PLANT * YIELD_PER_ACRE EATEN=0 !Are the rats running wild? RANDOM_NUM = INT(RND*5)+1 IF INT(RANDOM_NUM/2) = RANDOM_NUM/2 THEN EATEN=INT(SEED/RANDOM_NUM) 350 SEED=SEED-EATEN+HARVEST !Begin another (or the first) year YEAR_COUNT=YEAR_COUNT+1 PRINT LF;LF;"HAMURABI: I BEG TO REPORT TO YOU," PRINT "IN YEAR";YEAR_COUNT;",";STARVED;"PEOPLE STARVED,"; & INCOMING;"CAME TO THE CITY." PEOPLE=PEOPLE+INCOMING !Check for chances of a plague IF PLAGUE_CHANCE<0 THEN PEOPLE=INT(PEOPLE/2) PRINT "A HORRIBLE PLAGUE STRUCK! HALF THE PEOPLE DIED." 400 PRINT "POPULATION IS NOW";PEOPLE PRINT "THE CITY NOW OWNS";ACRES;"ACRES." PRINT "YOU HARVESTED";YIELD_PER_ACRE;"BUSHELS PER ACRE." PRINT "RATS ATE";EATEN;"BUSHELS." PRINT "YOU NOW HAVE";SEED;"BUSHELS IN STORE." PRINT IF YEAR_COUNT=11 THEN GOTO 2400 ELSE !buy or sell land C=INT(10*RND) Y=C+17 PRINT "LAND IS TRADING AT";Y;"BUSHELS PER ACRE." 500 INPUT "HOW MANY ACRES DO YOU WISH TO BUY";BUY_OR_SELL IF BUY_OR_SELL<0 THEN GOTO 2300 550 IF Y*BUY_OR_SELL>SEED THEN GOSUB 2000 GOTO 500 600 IF BUY_OR_SELL<>0 THEN ACRES1=ACRES+BUY_OR_SELL SEED1=SEED-Y*BUY_OR_SELL PRINT "You now have ";ACRES1;" acres and ";SEED1;" bushels of seed." INPUT "Is that what you wanted to do ";ANSWER GOTO 500 IF ANSWER = "N" ACRES = ACRES1 SEED = SEED1 C=0 GOTO 900 700 INPUT "HOW MANY ACRES DO YOU WISH TO SELL";BUY_OR_SELL IF BUY_OR_SELL<0 THEN GOTO 2300 ELSE IF BUY_OR_SELL>ACRES THEN GOSUB 2100 GOTO 700 800 ACRES1=ACRES-BUY_OR_SELL SEED1=SEED+Y*BUY_OR_SELL PRINT "You now have ";ACRES1;" acres and ";SEED1;" bushels of seed." INPUT "Is that what you wanted to do ";ANSWER GOTO 700 IF ANSWER = "N" GOTO 2300 IF ACRES1=0 ACRES = ACRES1 SEED = SEED1 C=0 900 !Feed the people PRINT PRINT "HOW MANY BUSHELS DO YOU WISH TO FEED ";PEOPLE;" PEOPLE"; INPUT BUSHELS_TO_USE IF BUSHELS_TO_USE<0 THEN GOTO 2300 1050 !Trying to feed your people more grain than in the silos? IF BUSHELS_TO_USE>SEED THEN GOSUB 2000 GOTO 900 1100 SEED1=SEED-BUSHELS_TO_USE PRINT "You now have ";SEED1;" bushels of seed." INPUT "Is that what you wanted to do ";ANSWER GOTO 900 IF ANSWER = "N" SEED = SEED1 C=1 PRINT 1200 INPUT "HOW MANY ACRES DO YOU WISH TO PLANT WITH SEED";ACRES_TO_PLANT IF ACRES_TO_PLANT = 0 THEN GOTO 1600 ELSE IF ACRES_TO_PLANT < 0 THEN GOTO 2300 1250 !Trying to plant more acres than you own? IF ACRES_TO_PLANT > ACRES THEN GOSUB 2100 GOTO 1200 1300 !Enough grain for seed? IF INT((ACRES_TO_PLANT + 1)/2) > SEED THEN GOSUB 2000 GOTO 1200 1400 !Enough people to tend the crops? IF ACRES_TO_PLANT > 10*PEOPLE THEN PRINT "YOU HAVE ONLY";PEOPLE;"PEOPLE TO TEND THE FIELDS. NOW THEN," GOTO 1200 1500 SEED=SEED-INT((ACRES_TO_PLANT+1)/2) 1600 !How many people had full tummies? C=INT(BUSHELS_TO_USE/20) 1700 !Starve enough for impeachment? STARVED=PEOPLE-C STARVED = 0 IF STARVED < 0 IF STARVED < .45 * PEOPLE THEN STARVED_COUNT=STARVED_COUNT+STARVED PEOPLE_COUNT = PEOPLE PEOPLE=C GOTO 300 1800 PRINT LF;"YOU STARVED";STARVED;"PEOPLE IN ONE YEAR!!!" 1900 PRINT "DUE TO THIS EXTREME MISMANAGEMENT YOU HAVE NOT ONLY" PRINT "BEEN IMPEACHED AND THROWN OUT OF OFFICE BUT YOU HAVE" PRINT "ALSO BEEN DECLARED 'NATIONAL FINK' !!"\GOTO 2700 2000 !You're using more grain than is in the silo PRINT "HAMURABI: THINK AGAIN. YOU HAVE ONLY" PRINT SEED;"BUSHELS OF GRAIN. NOW THEN," RETURN 2100 !You're trying to plant acres you don't own PRINT "HAMURABI: THINK AGAIN. YOU OWN ONLY"; & ACRES;"ACRES. NOW THEN," RETURN 2300 !Unusual cruelty or stupidity PRINT \PRINT "HAMURABI: I CANNOT DO WHAT YOU WISH." PRINT "GET YOURSELF ANOTHER STEWARD!!!!!" GOTO 2700 2400 !Print out results of term of office PERCENT_STARVED = (STARVED_COUNT/PEOPLE_COUNT) * 100 PRINT "IN YOUR 10-YEAR TERM OF OFFICE,";PERCENT_STARVED;"PERCENT OF" PRINT "THE POPULATION STARVED PER YEAR ON AVERAGE, I.E., A TOTAL OF" PRINT STARVED_COUNT;"PEOPLE DIED OF STARVATION!!" L=ACRES/PEOPLE PRINT "YOU STARTED WITH 10 ACRES PER PERSON AND ENDED WITH" PRINT L;"ACRES PER PERSON."\PRINT !Evaluate performance. Let player know how good/bad it was IF (PERCENT_STARVED>33) OR (L<7) OR ((SEED10)) THEN GOTO 1900 ELSE IF (PERCENT_STARVED>10) OR (((L<9) AND (SEED5)) OR (SEED5)) THEN GOTO 2500 ELSE IF (PERCENT_STARVED>3) OR ((L<10) AND (SEED0 THEN 230 228 LET P=INT(P/2) 229 PRINT "A HORRIBLE PLAGUE STRUCK! HALF THE PEOPLE DIED." 230 PRINT "POPULATION IS NOW";P 232 PRINT "THE CITY NOW OWNS";A;"ACRES." 235 PRINT "YOU HARVESTED";Y;"BUSHELS PER ACRE." 250 PRINT "RATS ATE";E;"BUSHELS." 260 PRINT "YOU NOW HAVE";S;"BUSHELS IN STORE."\PRINT 270 IF Z=11 THEN 860 310 LET C=INT(10*RND)\LET Y=C+17 312 PRINT "LAND IS TRADING AT";Y;"BUSHELS PER ACRE." 320 PRINT "HOW MANY ACRES DO YOU WISH TO BUY"; 321 INPUT Q\IF Q<0 THEN 850 322 IF Y*Q<=S THEN 330 323 GOSUB 710 324 GOTO 320 330 IF Q=0 THEN 340 331 LET A=A+Q\LET S=S-Y*Q\LET C=0 334 GOTO 400 340 PRINT "HOW MANY ACRES DO YOU WISH TO SELL"; 341 INPUT Q\IF Q<0 THEN 850 342 IF QC/2 THEN 530 523 REM *** THE RATS ARE RUNNING WILD!! 525 LET E=INT(S/C) 530 LET S=S-E+H 531 GOSUB 800 532 REM *** LET'S HAVE SOME BABIES 533 LET I=INT(C*(20*A+S)/P/100+1) 539 REM *** HOW MANY PEOPLE HAD FULL TUMMIES? 540 LET C=INT(Q/20) 541 REM *** HORRORS, A 15% CHANCE OF PLAGUE 542 LET Q=INT(10*(2*RND-.3)) 550 IF P.45*P THEN 560 553 LET P1=((Z-1)*P1+D*100/P)/Z 555 LET P=C\LET D1=D1+D\GOTO 215 560 PRINT \PRINT "YOU STARVED";D;"PEOPLE IN ONE YEAR!!!" 565 PRINT "DUE TO THIS EXTREME MISMANAGEMENT YOU HAVE NOT ONLY" 566 PRINT "BEEN IMPEACHED AND THROWN OUT OF OFFICE BUT YOU HAVE" 567 PRINT "ALSO BEEN DECLARED 'NATIONAL FINK' !!"\GOTO 990 710 PRINT "HAMURABI: THINK AGAIN. YOU HAVE ONLY" 711 PRINT S;"BUSHELS OF GRAIN. NOW THEN," 712 RETURN 720 PRINT "HAMURABI: THINK AGAIN. YOU OWN ONLY";A;"ACRES. NOW THEN," 730 RETURN 800 LET C=INT(RND*5)+1 801 RETURN 850 PRINT \PRINT "HAMURABI: I CANNOT DO WHAT YOU WISH." 855 PRINT "GET YOURSELF ANOTHER STEWARD!!!!!" 857 GOTO 990 860 PRINT "IN YOUR 10-YEAR TERM OF OFFICE,";P1;"PERCENT OF THE" 862 PRINT "POPULATION STARVED PER YEAR ON AVERAGE, I.E., A TOTAL OF" 865 PRINT D1;"PEOPLE DIED!!"\LET L=A/P 870 PRINT "YOU STARTED WITH 10 ACRES PER PERSON AND ENDED WITH" 875 PRINT L;"ACRES PER PERSON."\PRINT 880 IF P1>33 THEN 565 885 IF L<7 THEN 565 890 IF P1>10 THEN 940 892 IF L<9 THEN 940 895 IF P1>3 THEN 960 896 IF L<10 THEN 960 900 PRINT "A FANTASTIC PERFORMANCE!!! CHARLEMANGE, DISRAELI, AND" 905 PRINT "JEFFERSON COMBINED COULD NOT HAVE DONE BETTER!"\GOTO 990 940 PRINT "YOUR HEAVY-HANDED PERFORMANCE SMACKS OF NERO AND IVAN IV." 945 PRINT "THE PEOPLE (REMAINING) FIND YOU AN UNPLEASANT RULER, AND," 950 PRINT "FRANKLY, HATE YOUR GUTS!"\GOTO 990 960 PRINT "YOUR PERFORMANCE COULD HAVE BEEN SOMEWHAT BETTER, BUT" 965 PRINT "REALLY WASN'T TOO BAD AT ALL. ";INT(P*.8*RND);"PEOPLE WOULD" 970 PRINT "DEARLY LIKE TO SEE YOU ASSASSINATED BUT WE ALL HAVE OUR" 975 PRINT "TRIVIAL PROBLEMS." 990 PRINT \FOR N=1 TO 10\PRINT CHR$(7);\NEXT N 995 PRINT "SO LONG FOR NOW."\PRINT 999 END 10 REM *** GAME OF HANGMAN BY DAVE AHL, DIGITAL 15 REM *** BASED ON A PROGRAM WRITTEN BY KEN AUPPERLE, CLASS OF '75, 20 REM *** HALF HOLLOW HILLS H.S., DIX HILLS, NY 25 PRINT "GAME OF HANGMAN"\ PRINT \ PRINT 30 DIM P$(12,12),L$(20),D$(20),N$(26),U(50) 40 C=1\RANDOMIZE \N=50 50 D$(I)="-" FOR I=1 TO 20\M=0 60 N$(I)="" FOR I=1 TO 26 70 FOR I=1 TO 12\FOR J=1 TO 12\P$(I,J)=" "\NEXT J\NEXT I 80 P$(I,1)="X" FOR I=1 TO 12 90 P$(1,I)="X" FOR I=1 TO 7\P$(2,7)="X" 95 IF C0 THEN 2515 2517 D%(K)=1 \ D1%=D1%+1% 2520 FOR I=1 TO K \ READ A1$ \ NEXT I 2530 A$="" \ FOR I=1 TO LEN(A1$) \ A$=A$+CHR$(ASC(SEG$(A1$,I,I))-1) 2532 L$(I)=SEG$(A$,I,I) \ NEXT I 2535 L=LEN(A$) \ G=0 \ U=0 2540 PRINT C1$; \ GOSUB 25000 \ REM display frame 2550 PRINT FNP$(24,1);W$;"The word has ";STR$(L);" letters."; 2560 PRINT FNP$(2,1);W$ 2565 FOR I=1 TO 26 \ U(I)=0 \ NEXT I 2570 PRINT FNP$(4,1);W$; \ FOR I=1 TO L \ PRINT " ";U$; \ NEXT I 2580 PRINT FNP$(1,1);W$;"You have used the following letters:" 2600 PRINT FNP$(6,1);W$;"What is your guess";C2$; 2610 PRINT T7$; \ INPUT G$ \ PRINT T8$; \ G$=EDIT$(G$,127) 2615 IF G$="" THEN 2600 2620 IF G$=A$ THEN 3100 2630 IF LEN(G$)=1 THEN 2640 2631 IF LEN(G$)<>L THEN 2636 2632 PRINT FNM$(G$+" is not the word."); 2635 GO TO 2910 2636 PRINT FNM$("The word has "+STR$(L)+" letters."); 2637 GO TO 2600 2640 C$=SEG$(G$,1,1) \ C=ASC(C$)-64 2643 IF C>=1 THEN IF C<=26 THEN 2650 2645 PRINT FNM$("Try a letter or a word."); 2647 GO TO 2600 2650 IF U(C)=0 THEN 2680 2660 PRINT FNM$("That letter has already been used."); 2670 GO TO 2600 2680 U(C)=1 \ U=U+1 \ D=0 \ Z=0 2690 FOR I=1 TO L \ IF L$(I)="" THEN 2750 2700 IF L$(I)<>G$ THEN 2745 2710 PRINT FNP$(4,I*2);G$; 2720 Z=Z+1 2730 L$(I)="" 2740 GO TO 2750 2745 D=1 2750 NEXT I 2760 IF D=0 THEN 3100 2800 IF U>1 THEN PRINT FNP$(2,2*U-1);","; 2810 PRINT FNP$(2,2*U);G$ 2870 IF Z=0 THEN 2900 2880 PRINT FNM$(G$+" is in the word "+O$(Z)); 2885 IF D=0 THEN 3100 2890 GO TO 2600 2900 PRINT FNM$(G$+" is not in the word."); 2910 SLEEP 1 2920 G=G+1 2930 PRINT FNM$(S$(G)); 2940 SLEEP 1 2945 PRINT FNP$(12,12);" "; 2950 PRINT P$(G) 2960 IF G<10 THEN 2600 2970 SLEEP 2 2980 PRINT FNM$("The word was: "+A$) 2985 SLEEP 2 3000 PRINT FNP$(4,1);C1$;W$;"Would you like to play again"; 3010 PRINT T7$; \ INPUT A$ \ PRINT T8$; \ A$=EDIT$(A$,127) 3020 IF SEG$(A$,1,1)<>"N" THEN 2500 3030 PRINT FNM$("Bye, Bye and don't hang around long!") 3040 SLEEP 3 3050 PRINT C2$;T7$ 3060 GO TO 30000 3100 PRINT FNM$("That's right!"); 3110 SLEEP 2 3120 GO TO 3000 10000 DATA 216 10010 DATA QPMBSJUZ,NJOJN,MBUFOU,HMBNNFS,FTUPQ,DPSSVQUJPO,UPBTU,PWFSTIPPU 10020 DATA EPH,DBU,IPSTF,NFBUMPBG,CBMPHOB,DPOEJUJPOFS,DIBJS,ZBL,DMPDL 10030 DATA MBOHVBHF,SFGFSFODF,NBOVBM,HJSM,CPZ,GMPPS,EJTL,ESJWF,BVUPNPCJMF 10040 DATA DBTF,GSVJUDBLF,XBUFSNFMMPO,MFNPOBJE,DIPX,QBEEMF,EVC,PCMPOH 10050 DATA XJOENJMM,NPEJDVN,SFTJHO,SIFVNBUJTN,BGHIBO,QJMF,ESZ,SVCCFS 10060 DATA MFBEFS,DJUSPOFMMB,SFDBOU,FYQMPTJWF,FYQMPSF,NPJFUZ,NPEVMBUF 10070 DATA NPEJGZ,CPVMFWBSE,PCTUSFQFSPVT,HJSUI,TUFBN,TMFEHF,MPHBSJUIN 10080 DATA GPSFNBO,MFWFMIFBEFE,QSJOL,PWFSXFFOJOH,DSFTUGBMMFO,FSBTVSF 10090 DATA NJTUBLF,GMJODI,IVNJEPS,LOPU,DPOGJEBOU,MBUSJOF,HFSBOJVN,HFSNBOF 10100 DATA QPLFS,DPOTFSWBUPSZ,HSPVOEOVU,OPSUIFS,OPOFYJTUFODF,MFBUIFSOFDL 10110 DATA NPIBJS,SPBDI,IZESBVMJDT,FOUJUZ,JOVSF,NPEJTUF,MBUUJDF,XIPMF 10120 DATA PWFSUVSO,PWBUJPO,BCBOEPO,BHPOZ,CBUUJOH,EJTDPVOU,FOUJSF 10130 DATA GSVTUSBUF,JOIVNBO,MBTTP,MJLFMJIPPE,NBJ[F,NFTPUSPO,OFPMHJTN 10140 DATA PWFSUISPX,QJMMBHF,QUPNBJO,SFUPSU,TBODUJNPOZ,TNBMMQPY,TQVSJPVT 10150 DATA TVQFSOVNFSBSZ,UIJDL,UPQQFS,USVDLNBO,VOEVF,WPDBUJPO,WVMWB,XBTI 10160 DATA XBY,XJOHTQSFBE,[PPMPHZ,ZPHVSU,VQQFS,UISPX,TQZ,TFY,SFUVSO 10170 DATA QSJODJQMF,PWFSTUVGGFE,OPSUI,NPEJGZ,NBOHBOFTF,JOWFSTF 10180 DATA JODPSSJHJCMF,IPQQFS,HSPVOEFS,GMVUF,GBWPSJUF,GBMDPO,ESFEHF 10190 DATA EJWJOFS,EFDMBJN,DPOWPLF,DPOGFS,DMJOH,CVSSPX,CSJTUMJOH,CFTUPX 10200 DATA BXBLF,BQQFSUBJO,BNCFS,BGSBJE,BDDFMFSBUPS,MJOFBS,BCPMJTI 10210 DATA SFTPVSDF,GPSUVOBUF,QJMMCPY,QPJHOBOU,MPWJOH,DISPOJDBM,OPSUIFSO 10220 DATA DPOWVMTF,RVBIPH,NBOHSPWF,JHOJUJPO,HJSUI,NBOIPMF,MFBUIFSOFDL 10230 DATA TBVFSLSBVU,QSPQSJFUZ,LOPVU,NBMBEKVTUFE,NFTTFOHFS,IJSF,OBWZ,OPC 10240 DATA MBUUFS,OJUSPHMZDFSJO,TUBNQFEF,OFUIFS,GMJQQBOU,FYIBVTUJPO 10250 DATA CVGGPPO,IBSNPOJD,IBSL,JOUFSNJOHMF,JOFRVJUZ,FUIBOF,OJUSBUF 10260 DATA MVCSJDBUF,OJY,IBSFN,NPMMJGZ,MBVE,HFPNFUSZ,EPDVNFOU,PWFSTUBUF 10270 DATA QSPTUSBUF,IBSFMJQ,EBN,HFOVGMFDU,FEJDU,FEJU,TVSFUZ,EJSFDUPSZ 10280 DATA IZQFSUSPQIZ,IZQPDIPOESJBD,DBEBWFS,SBUMJOF,GPSUZ,QVOL,TDVGGMF 10290 DATA TDVMMJPO,TDPSCVUJD,IBOHNBO,TDSFXESJWFS,GMVUF,TQBSL,SIPNCPJE 10300 DATA SIPEPEFOESPO 20000 GO TO 20000 25000 PRINT FNP$(21,53);N$;"lq";Q$;Q$;"vvqk";FNP$(22,78);"x" 25010 PRINT FNP$(23,53);"m";Q$;Q$;"qqqqj";FNP$(22,53);"x"; 25020 PRINT FNP$(9,75); \ FOR I=9 TO 20 \ PRINT "xx"+B$+B$+D$; \ NEXT I 25030 PRINT FNP$(7,63);"l";Q$;"qqqqk";FNP$(8,63);"mw";Q$;"wwqj";FNP$(9,64);"x" 25040 PRINT O$ 25050 RETURN 30000 END 1 REM *** WRITTEN BY CHARLES LUND, AMERICAN SCHOOL, THE HAGUE, NETHERLANDS 2 REM *** MODIFIED AND CONVERTED TO RSTS/E BY DAVID AHL, DIGITAL 3 DIM B(70),T(9,9) 4 PRINT "THIS IS THE GAME OF HI-Q"\PRINT "HERE IS THE BOARD"\PRINT 5 PRINT " ! ! !" 6 PRINT " 13 14 15"\PRINT 7 PRINT " ! ! !" 8 PRINT " 22 23 24"\PRINT 9 PRINT "! ! ! ! ! ! !" 10 PRINT "29 30 31 32 33 34 35"\PRINT 11 PRINT "! ! ! ! ! ! !" 12 PRINT "38 39 40 41 42 43 44"\PRINT 13 PRINT "! ! ! ! ! ! !" 14 PRINT "47 48 49 50 51 52 53"\PRINT 15 PRINT " ! ! !" 16 PRINT " 58 59 60"\PRINT 17 PRINT " ! ! !" 18 PRINT " 67 68 69"\PRINT 22 PRINT "TO SAVE TYPING TIME, A COMPRESSED VERSION OF THE GAME BOARD" 23 PRINT "WILL BE USED DURING PLAY. REFER TO THE ABOVE ONE FOR PEG" 24 PRINT "NUMBERS. O.K., LET'S BEGIN..." 28 REM *** SET UP BOARD 29 FOR R=1 TO 9 30 FOR C=1 TO 9 31 IF (R-4)*(R-5)*(R-6)=0 THEN 40 32 IF (C-4)*(C-5)*(C-6)=0 THEN 40 35 T(R,C)=-5 36 GOTO 50 40 IF (R-1)*(C-1)*(R-9)*(C-9)=0 THEN 35 42 T(R,C)=5 50 NEXT C 60 NEXT R 65 T(5,5)=0\GOSUB 500 70 REM *** INPUT MOVE AND CHECK ON LEGALITY 75 FOR W=1 TO 33 77 READ M 79 DATA 13,14,15,22,23,24,29,30,31,32,33,34,35,38,39,40,41 81 DATA 42,43,44,47,48,49,50,51,52,53,58,59,60,67,68,69 83 B(M)=-7\NEXT W 86 B(41)=-3 100 INPUT "MOVE WHICH PIECE";Z 110 IF B(Z)=-7 THEN 140 120 PRINT "ILLEGAL MOVE, TRY AGAIN..."\GOTO 100 140 INPUT "TO WHERE";P 150 IF B(P)=0 THEN 120 153 IF B(P)=-7 THEN 120 156 IF Z=P THEN 100 160 IF ((Z+P)/2)=INT((Z+P)/2) THEN 180 170 GOTO 120 180 IF (ABS(Z-P)-2)*(ABS(Z-P)-18)<>0 THEN 120 190 GOSUB 1000 200 GOSUB 500 210 GOSUB 1500 220 GOTO 100 500 REM *** PRINT BOARD 510 FOR X=1 TO 9 520 FOR Y=1 TO 9 525 IF (X-1)*(X-9)*(Y-1)*(Y-9)=0 THEN 550 530 IF (X-4)*(X-5)*(X-6)=0 THEN 570 540 IF (Y-4)*(Y-5)*(Y-6)=0 THEN 570 550 REM 560 GOTO 610 570 IF T(X,Y)<>5 THEN 600 580 PRINT TAB(Y*2);"!"; 590 GOTO 610 600 PRINT TAB(Y*2);"O"; 610 REM 615 NEXT Y 620 PRINT 630 NEXT X 640 RETURN 1000 REM *** UPDATE BOARD 1005 C=1\FOR X=1 TO 9 1020 FOR Y=1 TO 9 1030 IF C<>Z THEN 1220 1040 IF C+2<>P THEN 1080 1045 IF T(X,Y+1)=0 THEN 120 1050 T(X,Y+2)=5 1060 T(X,Y+1)=0\B(C+1)=-3 1070 GOTO 1200 1080 IF C+18<>P THEN 1130 1085 IF T(X+1,Y)=0 THEN 120 1090 T(X+2,Y)=5\T(X+1,Y)=0\B(C+9)=-3 1120 GOTO 1200 1130 IF C-2<>P THEN 1170 1135 IF T(X,Y-1)=0 THEN 120 1140 T(X,Y-2)=5\T(X,Y-1)=0\B(C-1)=-3 1160 GOTO 1200 1170 IF C-18<>P THEN 1220 1175 IF T(X-1,Y)=0 THEN 120 1180 T(X-2,Y)=5\T(X-1,Y)=0\B(C-9)=-3 1200 B(Z)=-3\B(P)=-7 1210 T(X,Y)=0\GOTO 1240 1220 C=C+1 1225 NEXT Y 1230 NEXT X 1240 RETURN 1500 REM *** CHECK IF GAME IS OVER 1505 F=0 1510 FOR R=2 TO 8 1520 FOR C=2 TO 8 1530 IF T(R,C)<>5 THEN 1580 1535 F=F+1 1540 FOR A=R-1 TO R+1 1545 T=0 1550 FOR B=C-1 TO C+1 1560 T=T+T(A,B) 1561 NEXT B 1564 IF T<>10 THEN 1567 1565 IF T(A,C)<>0 THEN 1630 1567 NEXT A 1568 FOR X=C-1 TO C+1 1569 T=0 1570 FOR Y=R-1 TO R+1 1571 T=T+T(Y,X) 1572 NEXT Y 1573 IF T<>10 THEN 1575 1574 IF T(R,X)<>0 THEN 1630 1575 NEXT X 1580 NEXT C 1590 NEXT R 1600 REM *** GAME IS OVER 1605 PRINT "THE GAME IS OVER." 1610 PRINT "YOU HAD";F;"PIECES REMAINING" 1611 IF F<>1 THEN 1615 1612 PRINT "BRAVO! YOU MADE A PERFECT SCORE!!" 1613 PRINT "SAVE THIS PAPER AS A RECORD OF YOUR WORK." 1615 PRINT \INPUT "PLAY AGAIN (YES OR NO)";A$ 1617 IF A$="NO" THEN 2000 1618 RESTORE \ GOTO 29 1620 STOP 1630 RETURN 2000 PRINT \PRINT "SO LONG FOR NOW."\PRINT 2005 END 1 ! SENT INTO KILOBAUD MAGAZINE 2 ! 'CHASE 'GAME BY HERMAN DEMONSTOY 3 ! 'CHASE ' GAME IS NOW TITLED 'THE HOBBIT ' GAME 4 ! MODIFIED TO BE MORE INTERESTING 5 ! BY AL HINZ DIGITAL EQUIPMENT CORP. 6 ! WESTMINSTER,MA. 2/1/77 7 ! 8 ! 10 ! MODIFIED FOR USE ON ANY DEC SCOPE 11 ! BY DAN WILLIAMS DEC - WESTMINSTER,MA. 12 ! 2/3/77 01453 13 ! 14 ! Modified for RSX-11M by Robin Miller 1-Feb-78 15 ! Modified for VMS by Barry Rogoff 20-June-80 25 ON ERROR GOTO 32700 & 30 OPEN "TT:" AS FILE 11% & \ P0% = 4% & 50 X$ = FNP1$(0%,0%,"EOS") & \ RESTORE & \ READ I$(I%) FOR I% = 1% TO 7% & 55 FOR I% = 1% TO 7% 57 X$ = FNP1$(12%,I%+4%,I$(I%)) 59 PRINT #11 \ NEXT I% 60 DATA & "You (H) are a poor little Hobbit in the", & "mighty Mirkwood Forest (*) being chased", & "by nasty Orcs (o) who want to kill and", & "eat you. Beware of trees and Orcs!!!", & "Try to lead the Orcs into the trees and", & "the edge of the forest to survive....", & "If you fall asleep, so do the Orcs...." & 100 X$ = FNP1$(0%,13%,"Size Y,X (Default 20,70) ") & \ INPUT LINES%, COLUMNS% & 105 IF LINES% <= 10% THEN LINES% = 20% & ! Set default lines to 20 & 110 IF LINES% >= 20% THEN LINES% = 20% & ! Restrict max # of columns to 20 & 115 IF COLUMNS% <= 20% THEN COLUMNS% = 70% & ! Set default columns to 70 & 120 IF COLUMNS% >= 80% THEN COLUMNS% = 80% & ! Set max # of columns to 80 & 130 X$=FNP1$(0%,14%,"Number of ORCS (Default 15) ") & \ INPUT ORCS% & 135 IF ORCS% = 0% THEN ORCS% = 15% & 140 IF ORCS% > 50% THEN 130 & 150 IF ORCS% < 5% THEN 130 & 160 ORCS% = ORCS% + 1% & 200 DIM FOREST%(20%,80%), E%(80%), F%(80%) & 205 Y9% = 0% \ G% = 0% & 220 FOR B% = 1% TO LINES% & 230 FOR C% = 1% TO COLUMNS% & 240 FOREST%(B%,C%) = 0% & 250 IF B% = 1% THEN FOREST%(B%,C%) = 1% & 260 IF B% = LINES% THEN FOREST%(B%,C%) = 1% & 270 IF C% = 1% THEN FOREST%(B%,C%) = 1% & 280 IF C% = COLUMNS% THEN FOREST%(B%,C%) = 1% & 290 NEXT C% & 300 NEXT B% & 310 FOR D% = 1% TO 70% & 315 RANDOMIZE & 320 B% = INT(RND * (LINES% - 2%)) + 2% & 330 C% = INT(RND * (COLUMNS% - 2%)) + 2% & 340 IF FOREST%(B%,C%) <> 0% THEN 320 & 350 FOREST%(B%,C%) = 1% & 360 IF D% < ORCS% THEN FOREST%(B%,C%) = 2% & 370 IF D% = ORCS% THEN FOREST%(B%,C%) = 3% & 380 E%(D%) = B% \ F%(D%) = C% & 400 NEXT D% & 480 IF CCPOS(11%) > 1% THEN LET X$=FNP1$(0%,0%,"") & \ PRINT #11% & ! Insure automatic does not occur & 490 X$=FNP1$(0%,0%,"EOS") 500 FOR B% = 1% TO LINES% & 510 FOR C% = 1% TO COLUMNS% & 520 IF FOREST%(B%,C%) = 0% THEN PRINT #11%, " "; & 530 IF FOREST%(B%,C%) = 1% THEN PRINT #11%, "*"; ! FOREST 540 IF FOREST%(B%,C%) = 2% THEN PRINT #11%, "o"; ! ORCS 550 IF FOREST%(B%,C%) = 3% THEN PRINT #11%, "H"; ! HOBBIT 560 NEXT C% & 570 PRINT #11% \ NEXT B% & 600 B% = E%(ORCS%) \ C% = F%(ORCS%) & 625 IF CCPOS(11%) > 1% THEN X$=FNP1$(0%,20%,"") & \ PRINT #11% & ! Insure automatic does not occur & 627 X$=FNP1$(0%,20%,"") & \ PRINT #11%, "7 8 9" & \ PRINT #11%, "4 * 6" & \ PRINT #11%, "1 2 3 Move"; & 630 INPUT " which direction ";DIR% & \ IF DIR% = 5% THEN DIR% = 0% 631 S5$ = SPACE$(18%) & 632 X$ = FNP1$(29%,22%,"EOL") & 635 FOREST%(B%,C%) = 0% & 638 IF DIR% <> 0% THEN Y9% = 0% & 639 Y9% = Y9% + 1% IF DIR% = 0% & 640 IF DIR% = 0% THEN IF Y9% > 2% THEN & X$=FNP1$(33%,22%,"Don't fall asleep !!") & \ GOTO 625 & 642 X$=FNP1$(C%-1%, B%-1%," ") & 645 IF DIR% = 0% THEN 800 & 649 REM 1 2 3 4 5 6 7 8 9 650 ON DIR% GOTO 680,680,680,690,800,690,660,660,660 & 660 B% = B% - 1% ! UP 670 GOTO 690 & 680 B% = B% + 1% ! DOWN 689 REM 1 2 3 4 5 6 7 8 9 690 ON DIR% GOTO 700,800,720,700,32767,720,700,800,720 & 700 C% = C% - 1% ! LEFT 710 GOTO 800 & 720 C% = C% + 1% ! RIGHT 800 IF FOREST%(B%,C%) = 1% THEN GOSUB 1900 \ GOTO 1500 & 810 IF FOREST%(B%,C%) = 2% THEN GOSUB 1900 \ GOTO 1600 & 820 FOREST%(B%,C%) = 3% & 825 X$=FNP1$(C%-1%, B%-1%, "H") & 827 X8% = 3% \ GOSUB 964 & 830 E%(ORCS%) = B% & 840 F%(ORCS%) = C% & 850 FOR D% = 1% TO ORCS%-1% & 860 IF FOREST%(E%(D%), F%(D%)) <> 2% THEN 960 & 870 FOREST%(E%(D%), F%(D%)) = 0% & 880 IF E%(D%) < B% THEN E%(D%) = E%(D%)+1% & 890 IF E%(D%) > B% THEN E%(D%) = E%(D%)-1% & 900 IF F%(D%) < C% THEN F%(D%) = F%(D%)+1% & 910 IF F%(D%) > C% THEN F%(D%) = F%(D%)-1% & 920 IF FOREST%(E%(D%), F%(D%)) = 3% THEN GOSUB 1900 \ GOTO 1600 & 930 IF FOREST%(E%(D%), F%(D%)) <> 0% THEN G% = G%+1% & 940 IF FOREST%(E%(D%), F%(D%)) = 0% THEN FOREST%(E%(D%), F%(D%)) = 2% & 950 IF G% = ORCS%-1% THEN GOSUB 1900 \ GOTO 1700 & 960 NEXT D% & 963 X8%, X9% = 1% \ GOSUB 964 \ GOTO 600 & 964 ! 965 FOR H% = 1% TO LINES% & 966 FOR I% = 1% TO COLUMNS% & 967 IF FOREST%(H%,I%) = 2% THEN Z9% = FNZ%(FOREST%(H%,I%)+X8%) & 980 NEXT I% & 990 NEXT H% & 995 RETURN & 1400 GOSUB 1900 \ PRINT #11%, "Don't quit! The fun has just begun..." & 1410 T% = T%+1% \ GOTO 1710 & 1500 PRINT #11%, "You just knocked yourself out on a tree !!!!" & 1510 T% = T%+1% \ GOTO 1710 & 1600 PRINT #11%, "Hurrah for the Orcs!! One more Hobbit for the pot!!!" & 1610 T% = T%+1% \ GOTO 1710 & 1700 PRINT #11%, "You're a lucky Hobbit, you have rid the forest of Orcs." & 1705 LET T1% = T1%+1% & 1710 X$=FNP1$(15%,11%,"Won Lost") & \ X$=FNP1$(16%, 12%, NUM1$(T1%)) & \ X$=FNP1$(30%, 12%, NUM1$(T%)) & \ X$=FNP1$(12%, 14%, "Play Again ") & \ INPUT Y$ & 1715 ! & 1720 ! & 1730 IF LEFT(Y$,1%) <> "N" THEN 200 & 1740 PRINT #11% \ PRINT #11%, "Remember the Orcs tonight, all around you" & 1742 PRINT #11%, "While your asleep, they'll get you..." & 1750 PRINT #11%, "Try again, sometime... See you tonight ?????" & 1760 GOTO 2000 & 1800 DEF FNZ%(M%) & 1810 X$=FNP1$(I%-1%,H%-1%,"") & 1820 ON M% GOTO 1830,1840,1850,1860,1865 & 1830 GOTO 1870 & 1840 PRINT #11%, "*"; \ GOTO 1870 ! FOREST 1850 PRINT #11%, "o"; \ GOTO 1870 ! ORCS 1860 PRINT #11%, "H"; \ GOTO 1870 ! HOBBIT 1865 PRINT #11%, " "; \ GOTO 1870 & 1870 FNEND & 1900 PRINT #11% \ X$=FNP1$(0%,0%,"EOS") & 1910 X$=FNP1$(10%,9%,"") & 1920 RETURN & 2000 GOTO 32767 & 31100 ! & ! ******************************************************** & ! DIRECT CURSOR ADDRESSING & ! P0% = 1% = VT05 & ! = 2% = VT50 & ! = 3% = VT50H & ! = 4% = VT52 & 31105 DEF FNP1$(X%,DIR%,Z$) 31110 GOTO 31125 IF Z$ <> "HOME" \ ON P0% GOTO 31115, 31120, 31120, 31120 31115 PRINT #11%, CHR$(29%); \ GOTO 31180 31120 PRINT #11%, CHR$(155%)+CHR$(72%); \ GOTO 31180 31125 ON P0% GOTO 31130, 31135, 31140, 31140 31130 PRINT #11%, CHR$(14%)+CHR$(32%+DIR%)+CHR$(32%+X%); \ GOTO 31145 31135 PRINT #11%, CHR$(155%)+CHR$(72%); & \ PRINT #11%, CHR$(10%); FOR Z%=1% TO DIR% & \ PRINT #11%, CHR$(155%)+CHR$(67%); FOR Z%=1% TO X% & \ GOTO 31145 31140 PRINT #11%, CHR$(155%)+"Y"+CHR$(32%+DIR%)+CHR$(32%+X%); 31145 GOTO 31160 IF Z$<>"EOS" \ ON P0% GOTO 31150, 31155, 31155, 31155 31150 PRINT #11%, CHR$(31%); \ GOTO 31180 31155 PRINT #11%, CHR$(155%)+CHR$(74%); \ GOTO 31180 31160 GOTO 31175 IF Z$<>"EOL" \ ON P0% GOTO 31165, 31170, 31170, 31170 31165 PRINT #11%, CHR$(30%); \ GOTO 31180 31170 PRINT #11%, CHR$(155%)+CHR$(75%); \ GOTO 31180 31175 PRINT #11%, Z$; 31180 FNP1$="" \ FNEND & 32700 ! & ! Error Routine & ! & 32710 IF ERR = 11% THEN X$=FNP1$(0%,0%,"EOS") & \ PRINT #11% \ RESUME 11 32720 IF ERR <> 11% THEN PRINT "Error Line # ";ERL;" Error # ";ERR & \ RESUME 32767 32767 CLOSE #11% \ END & 10 LET A1=INT(14*RND(X)+6) 20 LET X=1 30 REM *** CONVERTED FROM BRAND X TO DIGITAL RSTS/E BY DAVID AHL 40 PRINT " N.B. THIS PROGRAM IS DESIGNED FOR THOSE WHO KNOW NOTHING" 50 PRINT " ABOUT HOCKEY LIKE MYSELF. --- C. BUTTREY" 60 PRINT " THIS IS CORNELL U. HOCKEY." 70 PRINT " I AM CORNELL, WHO ARE YOU"; 90 INPUT A$ 100 PRINT 110 PRINT " YOU HAVE THREE SHOTS:" 120 PRINT " 1. SLAP SHOT." 130 PRINT " 2. FLICK SHOT." 140 PRINT " 3. WRIST SHOT." 150 PRINT 160 PRINT " HERE IS THE FACE-OFF:" 170 PRINT " SCORE:" 180 PRINT " CORNELL ";A 190 PRINT " ";A$;" ";B 200 IF X=2 THEN 240 210 IF X=3 THEN 260 220 IF A+B >= (1/3*A1) THEN 1560 230 GOTO 290 240 IF A+B >= (2/3*A1) THEN 1630 250 GOTO 290 260 IF (A+B) >= (A1) THEN 1710 270 GOTO 290 280 IF B=3 THEN 1560 290 LET C=INT(2*RND(X)+1) 300 IF C=1 THEN 330 310 PRINT " ";A$;" WINS THE FACE-OFF." 320 GOTO 650 330 PRINT " CORNELL TAKES THE FACE-OFF." 340 LET D=INT(3*RND(X)+1) 350 IF D=1 THEN 500 360 IF D=2 THEN 570 370 PRINT " WRIST SHOT..." 380 LET E=INT(5*RND(X)+1) 390 IF E=4 THEN 470 400 PRINT " SHOT IS MISSED." 410 LET F=INT(2*RND(X)+1) 420 IF F=1 THEN 450 430 PRINT " CORNELL REGAINS THE PUCK." 440 GOTO 340 450 PRINT " ";A$;" TAKES THE PUCK." 460 GOTO 650 470 PRINT " **GOOD!**" 480 LET A=A+1 490 GOTO 160 500 PRINT " SLAP SHOT..." 510 LET C1=INT(3*RND(X)+1) 520 IF C1=2 THEN 540 530 GOTO 560 540 PRINT " ICING PENALTY....." 550 GOTO 450 560 GOTO 380 570 PRINT " FLICK SHOT.." 580 LET S1=INT(3*RND(X)+1) 590 IF S1=3 THEN 610 600 GOTO 640 610 PRINT " PENALTY FOR HIGH STICKING! CORNELL MAN PUT IN BOX FOR" 620 PRINT " TWO MINUTES!" 630 GOTO 1110 640 GOTO 380 650 PRINT " YOUR SHOT"; 660 INPUT G 670 IF G=1 THEN 720 680 IF G=2 THEN 900 690 IF G=3 THEN 970 700 PRINT " INPUT EITHER '1' '2' OR '3'" 710 GOTO 650 720 PRINT " SLAP SHOT." 730 LET Z1=INT(3*RND(X)+1) 740 IF Z1=2 THEN 760 750 GOTO 780 760 PRINT " ICING PENALTY....." 770 GOTO 1090 780 LET H=INT(5*RND(X)+1) 790 IF H=1 THEN 870 800 PRINT " SHOT IS WIDE." 810 LET I=INT(2*RND(X)+1) 820 IF I=1 THEN 850 830 PRINT " CORNELL TAKES THE PUCK." 840 GOTO 990 850 PRINT " ";A$;" REGAINS THE PUCK." 860 GOTO 650 870 PRINT " **GOOD!**" 880 LET B=B+1 890 GOTO 160 900 PRINT " FLICK SHOT...." 910 LET B1=INT(3*RND(X)+1) 920 IF B1=1 THEN 940 930 GOTO 960 940 PRINT " ICING PENALTY....." 950 GOTO 830 960 GOTO 780 970 PRINT " WRIST SHOT.." 980 GOTO 780 990 PRINT " CORNELL SHOT:" 1000 LET J=INT(3*RND(X)+1) 1010 IF J=1 THEN 1160 1020 IF J=2 THEN 1210 1030 PRINT " SLAP SHOT." 1040 LET K=INT(5*RND(X)+1) 1050 IF K=1 THEN 1130 1060 PRINT " SHOT HITS THE POST." 1070 LET L=INT(2*RND(X)+1) 1080 IF L=1 THEN 1110 1090 PRINT " CORNELL REGAINS THE PUCK." 1100 GOTO 990 1110 PRINT " ";A$;" REGAINS THE PUCK." 1120 GOTO 1310 1130 PRINT " **GOOD!**" 1140 LET A=A+1 1150 GOTO 160 1160 PRINT " WRIST SHOT" 1170 LET M=INT(5*RND(X)+1) 1180 IF M=5 THEN 1130 1190 PRINT " SHOT IS HIGH." 1200 GOTO 1070 1210 PRINT " FLICK SHOT" 1220 LET T1=INT(3*RND(X)+1) 1230 IF T1=1 THEN 1250 1240 GOTO 1270 1250 PRINT " ICING PENALTY....." 1260 GOTO 450 1270 LET N=INT(5*RND(X)+1) 1280 IF N=1 THEN 1130 1290 PRINT " SHOT IS BLOCKED BY THE GOALIE." 1300 GOTO 1070 1310 PRINT " YOUR SHOT"; 1320 INPUT O 1330 IF O=1 THEN 1430 1340 IF O=2 THEN 1540 1350 PRINT " WRIST SHOT." 1360 LET P=INT(5*RND(X)+1) 1370 IF P=2 THEN 870 1380 PRINT " SHOT IS BARELY WIDE..." 1390 LET Q=INT(3*RND(X)+1) 1400 IF Q=1 THEN 830 1410 PRINT " ";A$;" REGAINS THE PUCK." 1420 GOTO 650 1430 PRINT " SLAP SHOT" 1440 LET D1=INT(3*RND(X)+1) 1450 IF D1=3 THEN 1470 1460 GOTO 1500 1470 PRINT " PENALTY FOR HIGH STICKING! ";A$;" MAN PUT IN PENALTY" 1480 PRINT " BOX FOR TWO MINUTES" 1490 GOTO 830 1500 LET R=INT(5*RND(X)+1) 1510 IF R=1 THEN 870 1520 PRINT " SHOT IS TAKEN BY THE CORNELL GOALIE." 1530 GOTO 830 1540 PRINT " FLICK SHOT" 1550 GOTO 1500 1560 PRINT " ***** END OF FIRST PERIOD *****" 1570 LET X=2 1580 PRINT " SCORE:" 1590 PRINT " CORNELL ";A 1600 PRINT " ";A$;" ";B 1610 PRINT " START OF SECOND PERIOD." 1620 GOTO 160 1630 PRINT " ***** END OF SECOND PERIOD *****" 1640 LET X=3 1650 PRINT " SCORE:" 1660 PRINT " CORNELL ";A 1670 PRINT " ";A$;" ";B 1680 PRINT "" 1690 PRINT " START OF THIRD PERIOD." 1700 GOTO 160 1710 PRINT " ***** END OF GAME *****" 1720 IF A=B THEN 1770 1730 PRINT " FINAL SCORE:" 1740 PRINT " CORNELL ";A 1750 PRINT " ";A$;" ";B 1760 STOP 1770 PRINT " SINCE SCORE IS TIED, WE WILL HAVE TO GO" 1780 PRINT " INTO SUDDEN-DEATH!" 1790 PRINT " HERE IS THE FACE-OFF." 1800 PRINT " SCORE:" 1810 PRINT " CORNELL ";A 1820 PRINT " ";A$;" ";B 1830 LET S=INT(2*RND(X)+1) 1840 IF S=1 THEN 1870 1850 PRINT " ";A$;" WINS THE FACE-OFF." 1860 GOTO 2080 1870 PRINT " CORNELL WINS THE FACE-OFF." 1880 LET T=INT(3*RND(X)+1) 1890 IF T=1 THEN 2040 1900 IF T=2 THEN 2060 1910 PRINT " WRIST SHOT." 1920 LET U=INT(5*RND(X)+1) 1930 IF U=1 THEN 2010 1940 PRINT " SHOT IS MISSED." 1950 LET V=INT(2*RND(X)+1) 1960 IF V=1 THEN 1990 1970 PRINT " ";A$;" TAKES THE PUCK." 1980 GOTO 2080 1990 PRINT " CORNELL REGAINS THE PUCK." 2000 GOTO 1880 2010 PRINT " **GOOD!**" 2020 LET A=A+1 2030 GOTO 2260 2040 PRINT " SLAP SHOT" 2050 GOTO 1920 2060 PRINT " FLICK SHOT." 2070 GOTO 1920 2080 PRINT " YOUR SHOT"; 2090 INPUT W 2100 IF W=1 THEN 2220 2110 IF W=2 THEN 2240 2120 PRINT "WRIST SHOT." 2130 LET Y=INT(5*RND(X)+1) 2140 IF Y=4 THEN 2190 2150 PRINT " SHOT IS MISSED." 2160 LET Z=INT(2*RND(X)+1) 2170 IF Z=1 THEN 1990 2180 GOTO 1970 2190 PRINT " **GOOD!**" 2200 LET B=B+1 2210 GOTO 2260 2220 PRINT " SLAP SHOT." 2230 GOTO 2130 2240 PRINT " FLICK SHOT." 2250 GOTO 2130 2260 PRINT " GAME IS OVER!!" 2270 PRINT " FINAL SCORE:" 2280 PRINT " CORNELL ";A 2290 PRINT " ";A$;" ";B 2300 END 1 DIM V(10),U(10),T(10),M(8),O(8),H(8),B(8),P(6) 2 RANDOMIZE \ PRINT "HORSE RACE" 3 PRINT "EXAMPLE OF BET; 1,2,200,0 ." 5 PRINT \ PRINT " SEVENTH - 1 MILE, 3 YR. OLDS POST 2:35" 6 PRINT 7 FOR I=1 TO 8 8 B(I)=I \ GOSUB 164 9 READ O(I) \ PRINT O(I);":1" 10 M(I)=(100+50*O(I)) / (O(I)+1) 11 NEXT I 12 PRINT 13 PRINT "ENTER HORSE(1-8);TO WIN,PLACE,SHOW(1,2,3);AND THE WAGER." 14 PRINT "AND 0 FOR NO MORE BETTING OR 1 OR MORE BETTING." 15 LET S = 0 16 PRINT 17 LET S = S + 1 18 PRINT "BET NO. ";S; 19 INPUT T(S),U(S),V(S),Y1 20 LET T(S)=ABS(INT(T(S))) 21 IF T(S)>8 OR T(S)<1 THEN 26 23 LET U(S)=ABS(INT(U(S))) 24 IF U(S)>3 THEN 26 ELSE IF U(S)>0 THEN 29 26 PRINT "HORSE NO. OR WIN-PLACE-SHOW IN ERROR" \ GO TO 18 28 IF V(S)<2 THEN 30 29 IF V(S)<=300 THEN 33 30 PRINT "BET MUST BE >$2 AND <$300, BET AGAIN"; 31 INPUT V(S) \ GO TO 28 33 IF Y1 = 1 THEN 17 35 PRINT \ PRINT " THEY'RE OFF AND RUNNING -" \ PRINT 40 H(I)=0 FOR I=1 TO 8 57 FOR K=1 TO 8 62 H(J)=H(J)+RND(0)*M(J) FOR J=1 TO 8 70 GO SUB 140 71 D = H(B(1)) 73 PRINT 75 GO SUB 198 76 GO SUB 159 80 NEXT K 85 PRINT \ PRINT \ PRINT "$2 MUTUELS PAID:" 86 PRINT " STRAIGHT PLACE SHOW" 87 LET K = 0 88 FOR I = 1 TO 3 89 GO SUB 165 95 FOR J = I TO 3 96 L=2*I+J-3 101 LET P(L)=1.5+.01*INT((O(B(I))*4/(J*(J+1))+RND(Z1))*100) 102 PRINT TAB(3+10*J);P(L); 103 NEXT J 104 PRINT 105 NEXT I 107 PRINT \ Q=0 108 FOR J=1 TO S 109 PRINT "BET NO. ";J 110 LET P=0 112 H(B(I))=I FOR I=1 TO 8 114 IF U(J)< H(T(J)) THEN 122 116 P= .01*INT((V(J)*50)*P(U(J)+H(T(J))*2-3)) 118 PRINT "YOU COLLECT";P;"ON "; 120 GO TO 126 122 IF H(T(J))>3 THEN 124 \ PRINT "NEXT TIME, BUY A SHOW"; \ GO TO 125 124 PRINT "TEAR UP YOUR"; 125 PRINT " TICKET ON "; 126 I=0 \ B(0)=T(J) \ GOSUB 165 \ PRINT 127 Q=Q+P-V(J) 128 NEXT J 129 IF Q<0 THEN 132 130 PRINT "YOUR TOTAL WINNINGS AMOUNT TO $";Q \ STOP 132 PRINT "YOUR TOTAL LOSSES AMOUNT TO $";ABS(Q) \ STOP 140 FOR I=8 TO 1 STEP -1 142 FOR J=2 TO I 144 ON SGN(H(B(J-1))-H(B(J)))+2 GOTO 148,146,150 146 IF RND(0)>.5 THEN 150 148 Y1=B(J-1) \ B(J-1)=B(J) \ B(J)=Y1 150 NEXT J 152 NEXT I 154 RETURN 159 REM 161 PRINT "POS. HORSE LENGTHS BEHIND" 163 FOR I = 1 TO 8 164 PRINT I; 165 ON B(I) GOTO 186,184,182,180,178,176,174,172 172 PRINT "COALTOWN "; \ GO TO 187 174 PRINT "STYMIE "; \ GO TO 187 176 PRINT "GALLANT FOX"; \ GO TO 187 178 PRINT "SEABISCUIT "; \ GO TO 187 180 PRINT "ASSAULT "; \ GO TO 187 182 PRINT "WHIRLAWAY "; \ GO TO 187 184 PRINT "CITATION "; \ GO TO 187 186 PRINT "MAN O'WAR "; 187 IF K = 0 THEN 193 ELSE IF I > 1 THEN 191 188 PRINT \ GO TO 192 191 PRINT .1*INT(D-H(B(I))) 192 NEXT I 193 RETURN 198 ON K GOTO 204,206,208,210,212,214,202,200 200 PRINT " FINISH" \ RETURN 202 PRINT " COMING DOWN THE STRETCH -" \ RETURN 204 PRINT " AS THEY BREAK FROM THE GATE -" \ RETURN 206 PRINT " AT THE 1/4 MILE POLE -" \ RETURN 208 PRINT " NEARING THE HALFWAY MARK -" \ RETURN 210 PRINT " MIDWAY IN THE RACE -" \ RETURN 212 PRINT " AT 5/8 OF A MILE -" \ RETURN 214 PRINT " ROUNDING THE TURN -" \ RETURN 301 DATA 3,4,5,8,9,11,20,30 999 END 90 REM *** CONVERTED TO RSTS/E BY DAVID AHL, DIGITAL 100 REM HURKLE - PEOPLE'S COMPUTER COMPANY, MENLO PARK CA 105 RANDOM 110 N=5 120 G=10 210 PRINT 220 PRINT "A HURKLE IS HIDING ON A";G;"BY";G;"GRID. HOMEBASE" 230 PRINT "ON THE GRID IS POINT 0,0 AND ANY GRIDPOINT IS A" 240 PRINT "PAIR OF WHOLE NUMBERS SEPARATED BY A COMMA. TRY TO" 250 PRINT "GUESS THE HURKLE'S GRIDPOINT. YOU GET";N;"TRIES." 260 PRINT "AFTER EACH TRY, I WILL TELL YOU THE APPROXIMATE" 270 PRINT "DIRECTION TO GO TO LOOK FOR THE HURKLE." 280 PRINT 285 A=INT(G*RND(0)) 286 B=INT(G*RND(0)) 310 FOR K=1 TO N 320 PRINT "GUESS #";K; 330 INPUT X,Y 340 IF ABS(X-A)+ABS(Y-B)=0 THEN 500 350 REM PRINT INFO 360 GOSUB 610 370 PRINT 380 NEXT K 410 PRINT 420 PRINT "SORRY, THAT'S";N;"GUESSES." 430 PRINT "THE HURKLE IS AT ";A;",";B 440 PRINT 450 PRINT "LET'S PLAY AGAIN. HURKLE IS HIDING." 460 PRINT 470 GO TO 285 500 REM 510 PRINT 520 PRINT "YOU FOUND HIM IN";K;"GUESSES!" 530 FOR I=1 TO 10\PRINT CHR$(7);\NEXT I\PRINT 540 GO TO 440 610 PRINT "GO "; 620 IF Y=B THEN 670 630 IF Y0 THEN 47 28 PRINT " THE MONEY SYSTEM IS RALLODS," 30 PRINT "AND EACH PERSON NEEDS 100 RALLODS PER YEAR TO SURVIVE." 32 PRINT "YOUR COUNTRY'S INCOME COMES FROM FARM PRODUCE AND TOURISTS" 34 PRINT "VISITING YOUR MAGNIFICIENT FORESTS, HUNTING, FISHING, ETC. HALF" 36 PRINT "YOUR LAND IS FARM LAND WHICH ALSO HAS AN EXCELLENT MINERAL" 38 PRINT "CONTENT AND MAY BE SOLD TO FOREIGN INDUSTRY (STRIP MINING)" 39 PRINT "WHO IMPORT AND SUPPORT THEIR OWN WORKERS. CROPS COST BETWEEN" 40 PRINT "10 AND 15 RALLODS PER SQ. MILE TO PLANT." 42 PRINT "YOUR GOAL IS TO COMPLETE YOUR";N5;"YEAR TERM OF OFFICE."; 44 PRINT " GOOD LUCK!" 47 FOR Y1=1 TO 4 48 PRINT 49 NEXT Y1 50 LET A=INT(60000+(RND*1000)-(RND*1000)) 55 LET B=INT(500+(RND*10)-(RND*10)) 65 LET D=2000 100 LET W=INT(RND*10+95) 101 FOR Y1=1 TO 8 102 PRINT 103 NEXT Y1 105 PRINT "YOU NOW HAVE";A;"RALLODS IN THE TREASURY." 110 PRINT INT(B);"COUNTRYMEN,"; 115 LET V9=INT(((RND/2)*10+10)) 120 IF C=0 THEN 140 130 PRINT INT(C);"FOREIGN WORKERS,"; 140 PRINT " AND";INT(D);"SQ. MILES OF LAND." 150 PRINT "THIS YEAR INDUSTRY WILL BUY LAND FOR";W;"RALLODS PER SQ. MILE." 155 PRINT "LAND CURRENTLY COSTS";V9;"RALLODS PER SQ. MILE TO PLANT." 160 FOR Y1=1 TO 3 162 PRINT 164 NEXT Y1 200 PRINT "HOW MANY SQ. MILES DO YOU WISH TO SELL TO INDUSTRY"; 210 INPUT H 215 IF H<0 THEN 200 220 IF H<=D-1000 THEN 300 230 PRINT " THINK AGAIN, YOU'VE ONLY";D-1000;"SQ. MILES OF FARM LAND" 240 IF X <> 0 THEN 200 250 PRINT "(FOREIGN INDUSTRY WILL ONLY BUY FARM LAND BECAUSE FOREST" 260 PRINT "LAND IS UNECONOMICAL TO STRIP MINE DUE TO TREES," 270 PRINT "THICKER TOP SOIL, ETC.)" 280 LET X=1 299 GOTO 200 300 LET D=INT(D-H) 310 LET A=INT(A+(H*W)) 320 PRINT "HOW MANY RALLODS DO YOU WISH TO DISTRIBUTE TO YOUR COUNTRYMEN"; 340 INPUT I 342 IF I<0 THEN 320 350 IF I0 THEN 1002 602 IF I<>0 THEN 1002 604 IF J<>0 THEN 1002 606 IF K<>0 THEN 1002 608 FOR Y1=1 TO 5 609 PRINT 610 NEXT Y1 612 PRINT "GOODBYE." 614 PRINT "(IF YOU WISH TO CONTINUE THIS GAME AT A LATER DATE, ANSWER " 616 PRINT "1000 FOR HOW MANY TIMES YOU'VE PLAYED, AT BEGINNING OF NEXT "; 617 PRINT "GAME.)" 618 GOTO 1590 1000 GOTO 600 1002 FOR Y1=1 TO 3 1003 PRINT 1004 NEXT Y1 1010 LET A=INT(A-K) 1020 LET A4=A 1100 IF INT(I/100-B)>=0 THEN 1120 1105 IF I/100<50 THEN 1700 1110 PRINT INT(B-(I/100));"COUNTRYMEN DIED OF STARVATION" 1120 LET F1=INT(RND*(2000-D)) 1122 IF K<25 THEN 1130 1125 LET F1=INT(F1/(K/25)) 1130 IF F1<=0 THEN 1150 1140 PRINT F1;"COUNTRYMEN DIED OF CARBON-MONOXIDE AND DUST INHALATION" 1150 IF INT((I/100)-B)<0 THEN 1170 1160 IF F1>0 THEN 1180 1165 GOTO 1200 1170 PRINT " YOU WERE FORCED TO SPEND";INT((F1+(B-(I/100)))*9); 1172 PRINT "RALLODS ON FUNERAL EXPENSES." 1174 LET B5=INT(F1+(B-(I/100))) 1175 LET A=INT(A-((F1+(B-(I/100)))*9)) 1176 GOTO 1185 1180 PRINT " YOU WERE FORCED TO SPEND";INT(F1*9);"RALLODS ON "; 1181 PRINT "FUNERAL EXPENSES." 1182 LET B5=F1 1183 LET A=INT(A-(F1*9)) 1185 IF A>=0 THEN 1194 1187 PRINT " INSUFFICIENT RESERVES TO COVER COST -LAND WAS SOLD" 1189 LET D=INT(D+(A/W)) 1190 LET A=0 1194 LET B=INT(B-B5) 1200 IF H=0 THEN 1250 1220 LET C1=INT(H+(RND*10)-(RND*20)) 1224 IF C>0 THEN 1230 1226 LET C1=C1+20 1230 PRINT C1;"WORKERS CAME TO THE COUNTRY AND"; 1250 LET P1=INT(((I/100-B)/10)+(K/25)-((2000-D)/50)-(F1/2)) 1255 PRINT ABS(P1);"COUNTRYMEN "; 1260 IF P1<0 THEN 1275 1265 PRINT "CAME TO"; 1270 GOTO 1280 1275 PRINT "LEFT"; 1280 PRINT " THE ISLAND." 1290 LET B=INT(B+P1) 1292 LET C=INT(C+C1) 1305 LET U2=INT(((2000-D)*((RND+1.5)/2))) 1310 IF C=0 THEN 1324 1320 PRINT " OF";INT(J);"SQ. MILES PLANTED,"; 1324 IF J>U2 THEN 1330 1326 LET U2=J 1330 PRINT " YOU HARVESTED";INT(J-U2);"SQ. MILES OF CROPS." 1340 IF U2=0 THEN 1370 1344 IF T1>=2 THEN 1370 1350 PRINT " (DUE TO "; 1355 IF T1=0 THEN 1365 1360 PRINT "INCREASED "; 1365 PRINT "AIR AND WATER POLLUTION FROM FOREIGN INDUSTRY.)" 1367 LET T1=T1+1 1370 LET Q=INT((J-U2)*(W/2)) 1380 PRINT " MAKING";INT(Q);"RALLODS." 1390 LET A=INT(A+Q) 1400 LET V1=INT(((B-P1)*22)+(RND*500)) 1405 LET V2=INT((2000-D)*15) 1410 PRINT " YOU MADE";ABS(INT(V1-V2));"RALLODS FROM TOURIST TRADE." 1420 IF V2=0 THEN 1450 1425 IF V1-V2>=V3 THEN 1450 1430 PRINT " DECREASE BECAUSE "; 1435 LET G1=RND*10 1440 IF G1<=2 THEN 1460 1442 IF G1<=4 THEN 1465 1444 IF G1<=6 THEN 1470 1446 IF G1<=8 THEN 1475 1448 IF G1<=10 THEN 1480 1450 LET V3=INT(V1-V2) 1451 LET A=INT(A+V3) 1452 GOTO 1500 1460 PRINT "FISH POPULATION HAS DWINDLED DUE TO WATER POLLUTION." 1462 GOTO 1450 1465 PRINT "AIR POLLUTION IS KILLING GAME BIRD POPULATION." 1467 GOTO 1450 1470 PRINT "MINERAL BATHS ARE BEING RUINED BY WATER POLLUTION." 1472 GOTO 1450 1475 PRINT "UNPLEASANT SMOG IS DISCOURAGING SUN BATHERS." 1477 GOTO 1450 1480 PRINT "HOTELS ARE LOOKING SHABBY DUE TO SMOG GRIT." 1482 GOTO 1450 1500 IF B5>200 THEN 1600 1505 IF B<343 THEN 1700 1510 IF (A4/100)>5 THEN 1800 1515 IF C>B THEN 1550 1520 IF N5-1=X5 THEN 1900 1545 GOTO 2000 1550 FOR Y1=1 TO 8 1552 PRINT 1555 NEXT Y1 1560 PRINT "THE NUMBER OF FOREIGN WORKERS HAS EXCEEDED THE NUMBER" 1562 PRINT "OF COUNTRYMEN. AS A MAJORITY THEY HAVE REVOLTED AND" 1564 PRINT "TAKEN OVER THE COUNTRY." 1570 IF RND<=.5 THEN 1580 1574 PRINT "YOU HAVE BEEN THROWN OUT OF OFFICE AND YOU ARE NOW" 1576 PRINT "RESIDING IN PRISION." 1578 GOTO 1590 1580 PRINT "YOU HAVE BEEN ASSASSINATED." 1590 FOR Y1=1 TO 18 1592 PRINT 1594 NEXT Y1 1596 STOP 1600 FOR Y1=1 TO 8 1602 PRINT 1605 NEXT Y1 1610 PRINT B5;"COUNTYRMEN DIED IN ONE YEAR!!!!!" 1615 PRINT "DUE TO THIS EXTREME MISMANAGEMENT YOU HAVE NOT ONLY" 1620 PRINT "BEEN IMPEACHED AND THROWN OUT OF OFFICE BUT YOU" 1622 LET M6=INT(RND*10) 1625 IF M6<=3 THEN 1670 1630 IF M6<=6 THEN 1680 1635 IF M6<=10 THEN 1690 1670 PRINT "ALSO HAD YOUR LEFT EYE GOUGED OUT." 1672 GOTO 1590 1680 PRINT "HAVE ALSO GAINED A VERY BAD REPUTATION." 1682 GOTO 1590 1690 PRINT "HAVE ALSO BEEN DECLARED NATIONAL FINK." 1692 GOTO 1590 1700 FOR Y1=1 TO 8 1702 PRINT 1705 NEXT Y1 1710 PRINT "OVER ONE THIRD OF THE POPULATION HAS DIED SINCE YOU" 1715 PRINT "WERE ELECTED TO OFFICE. THE PROPLE (REMAINING)" 1720 PRINT "HATE YOUR GUTS." 1730 GOTO 1570 1800 IF B5-F1<2 THEN 1515 1805 FOR Y1=1 TO 8 1807 PRINT 1810 NEXT Y1 1815 PRINT "MONEY WAS LEFT OVER IN THE TREASURY WHICH YOU DID" 1820 PRINT "NOT SPEND. AS A RESULT SOME OF YOUR COUNTRYMEN DIED" 1825 PRINT "OF STARVATION. THE PUBLIC IS ENRAGED AND YOU HAVE" 1830 PRINT "BEEN FORCED TO EITHER RESIGN OR COMMIT SUCIDE" 1835 PRINT "THE CHOICE IS YOURS." 1840 PRINT "IF YOU CHOOSE THE LATTER, PLEASE TURN OFF YOUR TTY"; 1845 PRINT " BEFORE PROCEEDING." 1850 GOTO 1590 1900 FOR Y1=1 TO 8 1902 PRINT 1905 NEXT Y1 1920 PRINT "CONGRATULATIONS!!!!!!!!!!!!!!!!!" 1925 PRINT "YOU HAVE SUCCESSFULLY COMPLETED YOUR";N5;"YEAR TERM" 1930 PRINT "OF OFFICE. YOU WERE, OF COURSE, EXTREMELY LUCKY, BUT NEVER THE" 1935 PRINT "LESS, IT'S QUITE AN ACHIEVEMENT. GOODBY AND GOOD LUCK -YOU'LL" 1940 PRINT "PROBABLY NEED IT IF YOU'RE THE TYPE THAT PLAYS THIS GAME." 1945 PRINT " -FOR FURTHER THRILLS, TRY LANDING ON THE MOON" 1950 GOTO 1590 1960 PRINT "HOW MANY YEARS HAD YOU BEEN IN OFFICE WHEN INTERRUPTED"; 1961 INPUT X5 1962 IF X5<0 THEN 1590 1963 IF X5<8 THEN 1969 1965 PRINT " COME ON, YOUR TERM OF OFFICE IS ONLY";N5;"YEARS" 1967 GOTO 1960 1969 PRINT "HOW MUCH DID YOU HAVE IN THE TREASURY"; 1970 INPUT A 1971 IF A<0 THEN 1590 1975 PRINT "HOW MANY COUNTRYMEN"; 1976 INPUT B 1977 IF B<0 THEN 1590 1980 PRINT "HOW MANY WORKERS"; 1981 INPUT C 1982 IF C<0 THEN 1590 1990 PRINT "HOW MANY SQ. MILES OF LAND"; 1991 INPUT D 1992 IF D<0 THEN 1590 1993 IF D>2000 THEN 1996 1994 IF D>1000 THEN 100 1996 PRINT " COME ON, YOU STARTED WITH 1000 SQ. MILES OF FARM LAND" 1997 PRINT " AND 1000 SQ. MILES OF FOREST LAND" 1998 GOTO 1990 2000 LET X5=X5+1 2020 LET B5=0 2040 GOTO 100 2046 END 1 REM *** CONVERTED FROM FOCAL TO BASIC BY PAM MCGINLEY 2 REM *** CONVERTED TO RSTS/E BY DAVE AHL, DIGITAL 5 R=0 10 PRINT "TEST YOUR KNOWLEDGE OF CHILDREN'S LITERATURE." 12 PRINT \PRINT "THIS IS A MULTIPLE-CHOICE QUIZ." 13 PRINT "TYPE A 1, 2, 3, OR 4 AFTER THE QUESTION MARK." 15 PRINT \PRINT "GOOD LUCK!!"\PRINT \PRINT 40 PRINT "IN 'PINOCCHIO', WHAT WAS THE NAME OF THE CAT?" 42 PRINT "1)TIGGER, 2)CICERO, 3)FIGARO, 4)GUIPETTO"; 43 INPUT A\IF A=3 THEN 46 44 PRINT "SORRY...FIGARO WAS HIS NAME."\GOTO 50 46 PRINT "VERY GOOD! HERE'S ANOTHER." 47 R=R+1 50 PRINT \PRINT 51 PRINT "FROM WHOSE GARDEN DID BUGS BUNNY STEAL THE CARROTS?" 52 PRINT "1)MR. NIXON'S, 2)ELMER FUDD'S, 3)CLEM JUDD'S, 4)STROMBOLI'S"; 53 INPUT A\IF A=2 THEN 56 54 PRINT "TOO BAD...IT WAS ELMER FUDD'S GARDEN."\GOTO 60 56 PRINT "PRETTY GOOD!" 57 R=R+1 60 PRINT \PRINT 61 PRINT "IN THE WIZARD OF OZ, DOROTHY'S DOG WAS NAMED" 62 PRINT "1)CICERO, 2)TRIXIE, 3)KING, 4)TOTO"; 63 INPUT A\IF A=4 THEN 66 64 PRINT "BACK TO THE BOOKS...TOTO WAS HIS NAME."\GOTO 70 66 PRINT "YEA! YOU'RE A REAL LITERATURE GIANT!" 67 R=R+1 70 PRINT \PRINT 71 PRINT "WHO WAS THE FAIR MAIDEN WHO ATE THE POISON APPLE?" 72 PRINT "1)SLEEPING BEAUTY, 2)CINDERELLA, 3)SNOW WHITE, 4)WENDY"; 73 INPUT A\IF A=3 THEN 76 74 PRINT "OH, COME ON NOW...IT WAS SNOW WHITE."\GOTO 80 76 PRINT "GOOD MEMORY!" 77 R=R+1 80 PRINT \PRINT 85 IF R=4 THEN 100 90 IF R<2 THEN 200 92 PRINT "NOT BAD, BUT YOU MIGHT SPEND A LITTLE MORE TIME" 94 PRINT "READING THE NURSERY GREATS." 96 goto 999 100 PRINT "WOW! THAT'S SUPER! YOU REALLY KNOW YOUR NURSERY" 105 PRINT "STORIES. "\PRINT 110 PRINT "YOUR NEXT QUIZ WILL BE ON 2ND CENTURY CHINESE" 120 PRINT "LITERATURE (HA, HA, HA)" 130 goto 999 200 PRINT "UGH. THAT WAS DEFINITELY NOT TOO SWIFT. BACK TO" 205 PRINT "NURSERY SCHOOL FOR YOU, MY FRIEND." 999 END 100 REM ***** Special-purpose calendar program for LOCK.COM ***** 110 REM 120 ON ERROR GOTO 480 130 DIM MATRIX%(12) 140 DATA 0,31,59,90,120,151,181,212,243,273,304,334 150 FOR I% = 1% TO 12% \ READ MATRIX%(I%) \ NEXT I% 160 D$ = DATE$(0%) 170 D1% = VAL(LEFT(D$, 2%)) 180 MONTH$ = "JanFebMarAprMayJunJulAugSepOctNovDec" 190 M1% = 1% + INSTR(1%, MONTH$, MID(D$, 4%, 3%)) / 3% 200 D% = MATRIX%(M1%) + D1% 210 YEAR% = VAL(RIGHT(D$, 8%)) + 1900% 220 R% = YEAR% - 4% * INT(YEAR% / 4) 230 IF R% <> 0% THEN 250 240 IF M1% > 2% OR (M1% = 2% AND D1% > 28%) THEN D% = D% + 1% 250 D% = D% + 1000% * (YEAR% - 1970%) 260 Y% = D% / 1000% \ D% = D% - 1000% * Y% - 1% 270 Y% = Y% - 2% \ D% = D% + Y% * 365% \ D% = D%+(Y% - 1%) / 4% 280 M% = D% - (7% * (D% / 7%)) 290 F$="Sunday Monday Tuesday WednesdayThursday Friday Saturday " 300 DAY$ = CVT$$(MID(F$, M% * 9% + 1%, 9%),2%) 310 M% = M% + 1% \ IF M% = 7% THEN M% = 0% 320 DAY$ = EDIT$(DAY$,32%) \ D$ = EDIT$(D$,32%) 330 OPEN 'GAMES:LOCK.DAT' FOR INPUT AS FILE 1, ACCESS READ 340 OPEN 'GAMES:LOCK.TMP' FOR OUTPUT AS FILE 2, ACCESS WRITE 350 REM 360 REM *** Read loop *** 370 REM 380 LINPUT #1,A$ \ A$ = EDIT$(A$,32%) 390 IF A$ = D$ OR A$ = DAY$ THEN PRINT #2,'HOLIDAY' \ GOTO 32767 400 GOTO 380 ! Exit on end of file 410 REM 420 REM Not a holiday so print something else 430 REM 440 PRINT #2,'XXXXXXX' \ GOTO 32767 450 REM 460 REM *** Exception handler 470 REM 480 IF ERL = 330 THEN PRINT 'Error opening GAMES:LOCK.DAT' 490 IF ERL = 380 AND ERR = 11 THEN RESUME 440 500 RESUME 32767 32767 CLOSE #2 \ END 10 PRINT "MADLIB STORY-WRITER BY DAVE AHL BASED ON A PROGRAM" 15 PRINT "ORIGINALLY WRITTEN BY HENRY GALLO, JOHN GLENN HS."\PRINT 20 DIM A$(11),B$(5),C$(10)\RANDOMIZE 30 PRINT "O.K. WE'RE GOING TO WRITE SOME MAD-LIB STORIES" 40 PRINT "TOGETHER. YOU SUPPLY THE WORDS, I SUPPLY THE PLOT."\PRINT 60 PRINT "FIRST I NEED 11 ADJECTIVES. ADJECTIVES MODIFY" 70 PRINT "A NOUN, E.G., RED, DIRTY, LARGE, ETC." 80 FOR I=1 TO 11\INPUT A$(I)\NEXT I 90 PRINT \PRINT "NOW I NEED 5 ADVERBS. THEY MODIFY VERBS" 100 PRINT "AND END IN 'LY' (SLOWLY, GREEDILY, ETC.)" 110 FOR I=1 TO 5\INPUT B$(I)\NEXT I 120 PRINT \PRINT "O.K. NOW 10 NOUNS, E.G., TELETYPE, INSECT, COAT, ETC." 130 FOR I=1 TO 10\INPUT C$(I)\NEXT I 140 PRINT \INPUT "HOW ABOUT TWO FIRST NAMES OF MEN";D$\INPUT E$ 160 INPUT "THE FIRST NAME OF A GIRL";F$ 170 INPUT "AND SOMEONE'S LAST NAME";G$ 180 INPUT "A GEOGRAPHICAL LOCATION";H$ 190 INPUT "A LIQUID";I$ 200 INPUT "AND FINALLY, AN EXCLAMATORY WORD OR TWO";J$\PRINT 220 PRINT "VERY GOOD! WOULD YOU LIKE A NEWSPAPER AD (1)," 230 PRINT "A WESTERN (2), A STORY ABOUT THE ARMY (3), OR" 240 INPUT "A WATERBED (4). WHICH ONE, 1, 2, 3, OR 4";N\PRINT 250 IF N>0 AND N<5 THEN 270 260 INPUT "COME ON NOW -- 1, 2, 3, OR 4";N\GOTO 250 270 PRINT FOR I=1 TO 6\ON N GOTO 300,400,500,600 300 PRINT " DAILY GRUNT CLASSIFIEDS"\PRINT 310 PRINT "FOR SALE: 1957 SEDAN. THIS ";A$(1);" CAR IS IN A ";A$(2) 320 PRINT "CONDITION. IT WAS FORMERLY OWNED BY A ";A$(3);" SCHOOL TEACHER" 330 PRINT "WHO ALWAYS DROVE IT ";B$(1);". THERE IS A ";A$(4);" ";C$(1);" IN" 340 PRINT "THE BACK SEAT. IT HAS A CHROME ";C$(2);" ON THE HOOD, A ";A$(5) 350 PRINT "PAINT JOB, ";A$(6);" TIRES AND THE BACK OPENS INTO A ";A$(7) 360 PRINT C$(3);". WILL CONSIDER TAKING A SLIGHTLY USED ";C$(4);" IN TRADE" 370 PRINT \PRINT "LOST: IN THE VICINITY OF ";H$;", A ";A$(8);" FRENCH" 380 PRINT "POODLE WITH ";A$(9);" HAIR AND A ";A$(10);" TAIL. IT ANSWERS" 385 PRINT "TO THE NAME OF ";F$;". WHEN LAST SEEN IT WAS CARRYING A" 390 PRINT C$(5);" IN ITS MOUTH. A ";A$(11);" REWARD IS OFFERED."\GOTO 700 400 PRINT " AN ADULT WESTERN"\PRINT 410 PRINT "TEX ";G$;", THE MARSHALL OF ";D$;" CITY RODE INTO TOWN. HE" 420 PRINT "SAT ";B$(2);" IN THE SADDLE, READY FOR TROUBLE. HE KNEW THAT" 430 PRINT "HIS ";A$(1);" ENEMY, ";E$;" THE KID WAS IN TOWN. THE KID WAS" 440 PRINT "IN LOVE WITH TEX'S HORSE, ";F$;". SUDDENLY THE KID CAME OUT" 450 PRINT "OF THE ";A$(7);" NUGGET SALOON."\PRINT 460 PRINT "'DRAW TEX,' HE YELLED ";B$(3);"."\PRINT 470 PRINT "TEX REACHED FOR HIS ";C$(4);", BUT BEFORE HE COULD GET IT" 475 PRINT "OUT OF HIS ";C$(5);" THE KID FIRED, HITTING TEX IN THE ";C$(6) 480 PRINT "AND THE ";C$(7);"."\PRINT 485 PRINT "AS TEX FELL HE PULLED OUT HIS OWN ";C$(8);" AND SHOT THE KID" 490 PRINT INT(50*RND+3);"TIMES IN THE ";C$(9);". THE KID DROPPED IN A POOL" 492 PRINT "OF ";I$;"."\PRINT \PRINT "'";J$;",' TEX SAID, 'I HATED TO DO IT BUT" 495 PRINT "HE WAS ON THE WRONG SIDE OF THE ";C$(10);".'"\PRINT \GOTO 700 500 PRINT "IF YOU PLAN ON JOINING THE ARMY, HERE ARE SOME ";A$(11) 510 PRINT "HINTS THAT WILL HELP YOU BECOME A ";A$(10);" SOLDIER."\PRINT 520 PRINT "THE ARMY IS MADE UP OF OFFICERS, NON-COMS AND ";C$(1);"S." 530 PRINT "YOU CAN RECOGNIZE AN OFFICER BY THE ";C$(2);"S ON HIS" 540 PRINT "SHOULDERS AND THE FUNNY-LOOKING ";C$(3);"S ON HIS CAP." 550 PRINT "WHEN YOU ADDRESS AN OFFICER, ALWAYS SAY ";C$(4);" AND SAY IT" 555 PRINT B$(5);". IF YOU GET A ";A$(9);" HAIRCUT, KEEP YOUR ";C$(5);"S" 560 PRINT "SHINED, AND SEE THAT YOUR ";C$(6);" IS CLEAN AT ALL TIMES," 565 PRINT "YOU WILL BE A CREDIT TO THE SLOGAN:"\PRINT 570 PRINT " THE ARMY BUILDS BETTER ";C$(7);"S!"\PRINT 575 PRINT "AT ROLL CALL, WHEN THE ";A$(8);" SERGEANT CALLS YOUR NAME," 580 PRINT "SHOUT '";J$;"' LOUD AND CLEAR."\PRINT 585 PRINT "YOU WILL BECOME FAMILIAR WITH WEAPONS LIKE THE .30 CALIBRE" 590 PRINT C$(8);" AND THE AUTOMATIC ";C$(9);"."\PRINT 592 PRINT "FOLLOW THIS ADVICE AND YOU MAY WIN THE......" 595 PRINT "********** ";A$(7);" CONDUCT ";C$(10);" **********"\GOTO 700 600 PRINT "BUST-A-BUTTON AND DUCK DEPT. STORE"\PRINT "DIX HILLS, NEW YORK" 610 PRINT \PRINT "DEAR SIRS:"\PRINT 620 PRINT "LAST WEEK I PURCHASED A ";A$(2);" CONTOUR WATER BED IN YOUR" 630 PRINT "STORE. I GOT IT ESPECIALLY FOR MY ";A$(4);" HUSBAND WHO SLEEPS" 640 PRINT "VERY ";B$(1);" AND SAYS THAT ";A$(6);" WATER BEDS THAT HAVE" 650 PRINT C$(1);"S IN THEM MAKE HIS ";C$(3);" ACHE. WHEN THE BED" 655 PRINT "ARRIVED MY HUSBAND TESTED IT ";B$(2);" AND SAID THE ";A$(8) 660 PRINT C$(5);" WAS BENT AND KEPT PRESSING INTO HIS ";C$(6);". HE SAYS" 665 PRINT "THIS COULD LEAD TO A ";A$(10);" CONDITION OF THE ";C$(8);"."\PRINT 670 PRINT "I WOULD LIKE TO EXCHANGE THIS ";A$(9);" BED FOR ONE THAT" 675 PRINT "WILL ALLOW MY HUSBAND TO SLEEP ";B$(4);" AND WON'T MAKE" 680 PRINT "HIS ";C$(10);" SORE."\PRINT \PRINT TAB(30);"YOURS ";B$(5);"," 690 PRINT TAB(30);F$;" ";G$\PRINT 700 PRINT FOR I=1 TO 6\INPUT "WANT ANOTHER STORY (YES OR NO)";Y$ 710 IF Y$="NO" THEN 900 720 INPUT "WANT TO USE THE SAME WORDS (YES OR NO)";Y$\PRINT 730 IF Y$="YES" THEN 220 ELSE IF Y$="NO" THEN 60 740 INPUT "COME ON NOW -- 'YES' OR 'NO'";Y$\PRINT \GOTO 730 900 PRINT \PRINT "O.K. SEE YOU AGAIN SOMETIME!" 999 END 20 PRINT "GAME OF MAGIC SQUARE BY DAVID AHL"\PRINT 25 PRINT "PLAYERS ALTERNATELY CHOOSE AN INTEGER (1 TO 9)" 30 PRINT "THAT HAS NOT BEEN PREVIOUSLY USED AND PLACE IT" 35 PRINT "IN ANY UNFILLED CELL OF A TIC-TAC-TOE BOARD." 40 PRINT "THE GOAL IS TO MAKE THE SUM OF EACH ROW, COLUMN," 45 PRINT "AND DIAGONAL EQUAL TO 15."\PRINT 50 PRINT "THAT PLAYER LOSES WHO FIRST MAKES THE SUM OF THE" 55 PRINT "THREE FIGURES IN ANY ROW, COLUMN, OR DIAGONAL" 60 PRINT "SOMETHING OTHER THAN 15."\PRINT 62 PRINT "A TIE GAME DRAWS A MAGIC SQUARE!!"\PRINT 65 PRINT "THE COMPUTER WILL ASK YOU ON EACH MOVE WHICH" 70 PRINT "CELL YOU WISH TO OCCUPY, AND THE NUMBER YOU WISH" 75 PRINT "TO PLACE IN THAT CELL. YOUR INPUT SHOULD LOOK" 80 PRINT "LIKE '3,7' IF YOU WISHED TO PLACE A 7 IN CELL 3." 85 PRINT \PRINT "HERE ARE THE CELL NUMBERS:"\PRINT 90 PRINT "1 2 3"\PRINT "4 5 6"\PRINT "7 8 9" 95 FOR I=1 TO 9\A(I)=0\B(I)=0\NEXT I\M=0\W=0 100 PRINT \INPUT "YOUR MOVE -- CELL AND NUMBER";I,N 105 IF I<1 OR I>9 OR N<1 OR N>9 THEN 130 110 IF A(I)=0 AND B(N)=0 THEN 150 130 PRINT "ILLEGAL MOVE ... AGAIN,"\GOTO 100 150 A(I)=N\B(N)=1\M=M+1 !AN ACCEPTABLE MOVE 170 GOSUB 960 !PRINT BOARD 180 GOSUB 800 !A LOSING MOVE?? 200 IF W=0 THEN 230 !GOOD MOVE, NO WINNER YET 210 PRINT "SORRY, YOU LOSE -- NICE TRY."\GOTO 560 230 IF M<5 THEN 400 !A TIE GAME? 240 PRINT "A TIE GAME -- BUT WE'VE DRAWN A MAGIC SQUARE!"\GOTO 560 400 FOR Q=1 TO 9 !COMPUTER LOOKS FOR A GOOD MOVE 410 IF A(Q)>0 THEN 480 !CELL TAKEN?? 420 FOR R=1 TO 9 430 IF B(R)>0 THEN 470 !NUMBER TAKEN?? 435 A(Q)=R !TRY MAKING THE MOVE 440 GOSUB 800 !IS THIS MOVE A LOSER? 450 IF W=0 THEN 500 !A GOOD MOVE** 460 Q1=Q\R1=R\W=0\A(Q)=0 !RECORD BAD MOVE IN CASE NO GOOD ONE 470 NEXT R 480 NEXT Q 490 W=1\R=R1\Q=Q1\A(Q)=R !IF GET HERE, COMPUTER HAS LOST 500 B(R)=1 !COMPUTER MAKES ITS MOVE 520 PRINT "I MOVE TO CELL";Q;"WITH A";R 530 GOSUB 960 !PRINT BOARD 540 IF W=0 THEN 100 !THE GAME GOES ON.... 550 PRINT "I LOSE -- YOU WIN!!" 560 PRINT \PRINT CHR$(7); FOR I=1 TO 15 !RINGS TELETYPE BELL 570 PRINT "LET'S PLAY AGAIN..."\GOTO 95 800 FOR X=1 TO 8 !SUBROUTINE TO CHECK FOR LOSING MOVE 810 ON X GOTO 820,830,840,850,860,870,880,890 820 J=1\K=2\L=3\GOTO 900 830 K=4\L=7\GOTO 900 840 K=5\L=9\GOTO 900 850 J=4\L=6\GOTO 900 860 J=2\L=8\GOTO 900 870 J=3\L=7\GOTO 900 880 K=6\L=9\GOTO 900 890 J=7\K=8 900 IF A(J)=0 OR A(K)=0 OR A(L)=0 THEN 930 920 IF A(J)+A(K)+A(L)<>15 THEN 940 930 NEXT X 935 GOTO 950 940 W=1 !A LOSER** 950 RETURN 960 PRINT \PRINT A(1);A(2);A(3) !SUBROUTINE TO PRINT BOARD 970 PRINT A(4);A(5);A(6)\PRINT A(7);A(8);A(9)\PRINT \RETURN 999 END 5 REM *** CONVERTED TO RSTS/E BY DAVID AHL, DIGITAL 10 REM -MATHDICE*** (BASIC PROGRAM BEGINS AT LINE 100) WAS PROGRAMMED 11 REM -BY JIM GERRISH, FOURTH GRADE TEACHER AT THE BERNICE A. RAY 12 REM -SCHOOL, HANOVER, NEW HAMPSHIRE. LAST CHANGE: 3/21/72. 13 REM 14 REM -PROGRAM PERFORMS PICTORAL DRILL ON ADDITION FACTS USING 15 REM -PRINTED DICE, NO READING INVOLVED. GOOD FOR BEGINNING 16 REM -ADDITION, SINCE ANSWER CAN BE DERRIVED FROM COUNTING SPOTS 17 REM -DICE AS WELL AS BY MEMORIZING MATH FACTS OR AWARENESS 18 REM -OF NUMBER CONCEPTS. 19 REM - 20 PRINT "THIS PROGRAM GENERATES SUCCESSIVE PICTURES OF TWO DICE." 21 PRINT "WHEN TWO DICE AND AN EQUAL SIGN FOLLOWED BY A QUESTION" 22 PRINT "MARK HAVE BEEN PRINTED, TYPE YOUR ANSWER AND THE RETURN KEY." 23 print " to conclude the lesson, type -1 as your answer." 24 PRINT 25 PRINT 100 RANDOMIZE 105 LET N=N+1 110 let d=int(rnd*6+1) 120 PRINT ".-----." 130 IF D=1 THEN 200 140 IF D=2 THEN 180 150 IF D=3 THEN 180 160 PRINT "I * * I" 170 GOTO 210 180 PRINT "I * I" 190 GOTO 210 200 PRINT "I I" 210 IF D=2 THEN 260 220 IF D=4 THEN 260 230 IF D=6 THEN 270 240 PRINT "I * I" 250 GOTO 280 260 PRINT "I I" 265 GOTO 280 270 PRINT "I * * I" 280 IF D=1 THEN 350 290 IF D=2 THEN 330 300 IF D=3 THEN 330 310 PRINT "I * * I" 320 GOTO 360 330 PRINT "I * I" 340 GOTO 360 350 PRINT "I I" 360 PRINT ".-----." 370 PRINT 375 IF N=2 THEN 500 380 PRINT " +" 381 PRINT 400 LET A=D 410 GOTO 100 500 LET T=D+A 510 PRINT " = "; 520 INPUT T1 530 IF T1=T THEN 590 535 if t1<0 then 800 540 PRINT "NO, COUNT THE SPOTS AND GIVE ANOTHER ANSWER." 541 PRINT " = "; 550 INPUT T2 560 IF T2=T THEN 590 570 PRINT "NO, THE ANSWER IS ";T 580 GOTO 600 590 PRINT "RIGHT!" 600 PRINT 601 PRINT "THE DICE ROLL AGAIN....." 610 PRINT 615 LET N=0 620 GOTO 100 800 print "bye bye for now. come and play again later." 810 print 900 END 70 INPUT "NUMBER "; Z8% 80 X$=SYS(CHR$(6)+CHR$(7)) 90 OPEN "MAZE.DAT" FOR OUTPUT AS FILE #1 95 FOR Z9%=1% TO Z8% 100 RANDOMIZE 110 DIM W(25,25),V(25,25) 112 FOR I=0 TO 25\FOR J=0 TO 25 113 W(I,J)=0\V(I,J)=0 114 NEXT J\NEXT I 120 H,V=23 122 PRINT #1 130 IF H<2 OR H>23 OR V<2 OR V>23 THEN 132 ELSE 150 132 PRINT #1 ;"MEANINGLESS DIMENSIONS, TRY AGAIN" 140 PRINT #1 141 GO TO 120 150 PRINT #1 151 PRINT #1 160 LET Q=0 161 LET Z=0 162 LET X=INT(RND(0)*H+1) 163 FOR I=1 TO H 170 IF I=X THEN 173 171 PRINT #1 ;":--"; 172 GO TO 180 173 PRINT #1 ;": "; 180 NEXT I 190 PRINT #1;":" 191 LET C=1 192 LET W(X,1)=C 193 LET C=C+1 200 LET R=X 201 LET S=1 202 GO TO 260 210 IF R<>H THEN 240 211 IF S<>V THEN 230 220 LET R=1 221 LET S=1 222 GO TO 250 230 LET R=1 231 LET S=S+1 232 GO TO 250 240 LET R=R+1 250 IF W(R,S)=0 THEN 210 260 IF R-1=0 THEN 530 261 IF W(R-1,S)<>0 THEN 530 270 IF S-1=0 THEN 390 280 IF W(R,S-1)<>0 THEN 390 290 IF R=H THEN 330 300 IF W(R+1,S)<>0 THEN 330 310 LET X=INT(RND(0)*3+1) 320 IF X=1 THEN 790 321 IF X=2 THEN 820 323 IF X=3 THEN 860 330 IF S<>V THEN 340 331 IF Z=1 THEN 370 332 LET Q=1 333 GO TO 350 340 IF W(R,S+1)<>0 THEN 370 350 LET X=INT(RND(0)*3+1) 360 IF X=1 THEN 790 361 IF X=2 THEN 820 362 IF X=3 THEN 910 370 LET X=INT(RND(0)*2+1) 380 IF X=1 THEN 790 381 IF X=2 THEN 820 390 IF R=H THEN 470 400 IF W(R+1,S)<>0 THEN 470 401 IF S<>V THEN 420 410 IF Z=1 THEN 450 411 LET Q=1 412 GO TO 430 420 IF W(R,S+1)<>0 THEN 450 430 LET X=INT(RND(0)*3+1) 440 IF X=1 THEN 790 441 IF X=2 THEN 860 442 IF X=3 THEN 910 450 LET X=INT(RND(0)*2+1) 460 IF X=1 THEN 790 461 IF X=2 THEN 860 470 IF S<>V THEN 490 480 IF Z=1 THEN 520 481 LET Q=1 482 GO TO 500 490 IF W(R,S+1)<>0 THEN 520 500 LET X=INT(RND(0)*2+1) 510 IF X=1 THEN 790 511 IF X=2 THEN 910 520 GO TO 790 530 IF S-1=0 THEN 670 540 IF W(R,S-1)<>0 THEN 670 541 IF R=H THEN 610 542 IF W(R+1,S)<>0 THEN 610 550 IF S<>V THEN 560 551 IF Z=1 THEN 590 552 LET Q=1 553 GO TO 570 560 IF W(R,S+1)<>0 THEN 590 570 LET X=INT(RND(0)*3+1) 580 IF X=1 THEN 820 581 IF X=2 THEN 860 582 IF X=3 THEN 910 590 LET X=INT(RND(0)*2+1) 600 IF X=1 THEN 820 601 IF X=2 THEN 860 610 IF S<>V THEN 630 620 IF Z=1 THEN 660 621 LET Q=1 622 GO TO 640 630 IF W(R,S+1)<>0 THEN 660 640 LET X=INT(RND(0)*2+1) 650 IF X=1 THEN 820 651 IF X=2 THEN 910 660 GO TO 820 670 IF R=H THEN 740 680 IF W(R+1,S)<>0 THEN 740 681 IF S<>V THEN 700 690 IF Z=1 THEN 730 691 LET Q=1 692 GO TO 830 700 IF W(R,S+1)<>0 THEN 730 710 LET X=INT(RND(0)*2+1) 720 IF X=1 THEN 860 721 IF X=2 THEN 910 730 GO TO 860 740 IF S<>V THEN 760 750 IF Z=1 THEN 780 751 LET Q=1 752 GO TO 770 760 IF W(R,S+1)<>0 THEN 780 770 GO TO 910 780 GO TO 1000 790 LET W(R-1,S)=C 800 LET C=C+1 801 LET V(R-1,S)=2 802 LET R=R-1 810 IF C=H*V+1 THEN 1010 811 LET Q=0 812 GO TO 260 820 LET W(R,S-1)=C 830 LET C=C+1 840 LET V(R,S-1)=1 841 LET S=S-1 842 IF C=H*V+1 THEN 1010 850 LET Q=0 851 GO TO 260 860 LET W(R+1,S)=C 870 LET C=C+1 871 IF V(R,S)=0 THEN 880 872 LET V(R,S)=3 873 GO TO 890 880 LET V(R,S)=2 890 LET R=R+1 900 IF C=H*V+1 THEN 1010 902 GO TO 530 910 IF Q=1 THEN 960 920 LET W(R,S+1)=C 921 LET C=C+1 922 IF V(R,S)=0 THEN 940 930 LET V(R,S)=3 931 GO TO 950 940 LET V(R,S)=1 950 LET S=S+1 951 IF C=H*V+1 THEN 1010 952 GO TO 260 960 LET Z=1 970 IF V(R,S)=0 THEN 980 971 LET V(R,S)=3 972 LET Q=0 973 GO TO 1000 980 LET V(R,S)=1 981 LET Q=0 982 LET R=1 990 LET S=1 991 GO TO 250 1000 GO TO 210 1010 FOR J=1 TO V 1011 PRINT #1;"I"; 1012 FOR I=1 TO H 1013 IF V(I,J)<2 THEN 1030 1020 PRINT #1;" "; 1021 GO TO 1040 1030 PRINT #1;" I"; 1040 NEXT I 1041 PRINT #1 1043 FOR I=1 TO H 1045 IF V(I,J)=0 THEN 1060 1050 IF V(I,J)=2 THEN 1060 1051 PRINT #1;": "; 1052 GO TO 1070 1060 PRINT #1 ;":--"; 1070 NEXT I 1071 PRINT #1;":" 1072 NEXT J 1073 PRINT #1 ,CHR$(12) 1075 NEXT Z9% 1080END 1 ! MONOPOLY GAME BY DAVID BARKER, SOUTHEASTERN STATE COLLEGE, DURANT, OK 2 ! SLIGHT PROGRAM MODIFICATIONS BY DAVID AHL, DIGITAL 3 M(1),M(2)=1500%\ I(1),I(2)=0\ DIM A$(25),B$(25),H%(40) 7 OPEN "PRPRTY.DAT" AS FILE #1, VIRTUAL\ DIM #1,G$(40%)=25,L%(40),P(40%),R(40%) 8 FOR I=1 TO 39\L%(I),H%(I)=0\NEXT I\FOR I=1 TO 8\U(I)=0\NEXT I 9 DEF* FNR=(H%(I(Z))*R(I(Z))*10%) 10 OPEN "MESAJ.DAT" AS FILE #3, VIRTUAL\ DIM #3,C$(10)=50%,Z$(10)=50%,M$(20)=50% 15 PRINT M$(1)\ PRINT \ PRINT \ PRINT "**RULES**"\ PRINT M$(2)\ PRINT M$(3)\ PRINT M$(4)\ PRINT M$(5) 30 INPUT "WHO IS PLAYER #1";N$(1)\ INPUT "WHO IS PLAYER #2";N$(2) 100 PRINT \ PRINT "**";N$(1);"'S TURN**********"\ F=0 102 Z=1%\ GOSUB 1000\ GOSUB 2000 115 IF D=D1 THEN F=F+1\ IF F<3 THEN PRINT M$(9)\ GOTO 102 117 IF F=3 THEN PRINT M$(10)\ I(Z)=10\ M(Z)=M(Z)-50% 200 PRINT \ PRINT "**";N$(2);"'S TURN**********"\ F=0 202 Z=2%\ GOSUB 1000\ GOSUB 2000 215 IF D=D1 THEN F=F+1\ IF F<3 THEN PRINT M$(9)\ GOTO 202 217 IF F=3 THEN PRINT M$(10)\ I(Z)=10\ M(Z)=M(Z)-50% 225 PRINT M$(11);\INPUT F$\ IF F$="QUIT" THEN 30000 ELSE 100 1000 PRINT M$(6);\INPUT F$\ RANDOMIZE \ X=RND \Y=RND !DICE ROLL 1002 IF X => 0 AND X <= .16 THEN D=1 1003 IF X>.16 AND X<=.32 THEN D=2 1004 IF X>.32 AND X<=.48 THEN D=3 1005 IF X>.48 AND X<=.64 THEN D=4 1006 IF X>.64 AND X<=.81 THEN D=5 1007 IF X>.81 AND X<=1 THEN D=6 1009 IF Y>=0 AND Y<=.16 THEN D1=1 1010 IF Y>.16 AND Y<=.32 THEN D1=2 1011 IF Y>.32 AND Y<=.48 THEN D1=3 1012 IF Y>.48 AND Y<=.64 THEN D1=4 1013 IF Y>.64 AND Y<=.81 THEN D1=5 1014 IF Y>.81 AND Y<=1 THEN D1=6 1015 PRINT "YOU ROLLED A";D;"AND A";D1\I(Z)=I(Z)+(D+D1) 1016 IF I(Z)>40% THEN I(Z)=I(Z)-40%\M(Z)=M(Z)+200% 1017 RETURN 2000 PRINT "YOU ARE ON ";G$(I(Z)) !PLACEMENT 2002 IF I(Z)=2 OR I(Z)=17 OR I(Z)=33 THEN 4100 !COM CHEST 2004 IF I(Z)=4 THEN M(Z)=M(Z)-200% \RETURN !INC TAX 2006 IF I(Z)=7 OR I(Z)=22 OR I(Z)=36 THEN 4400 !CHANCE 2008 IF I(Z)=10 OR I(Z)=20 THEN RETURN !VISIT IN JAIL&FREE PARKING 2010 IF I(Z)=30 THEN M(Z)=M(Z)-50%\ I(Z)=10\ RETURN !JAIL 2011 IF I(Z)=38 THEN M(Z)=M(Z)-75%\ RETURN !LUX TAX 2012 IF I(Z)=40 THEN M(Z)=M(Z)+200%\ I(Z)=0\ RETURN !GO 2018 IF L%(I(Z))=Z THEN PRINT M$(12)\ GOTO 3100 2019 IF (H%(I(Z))=0 AND L%(I(Z))>0 AND L%(I(Z))<>Z) THEN 2125 2020 IF (H%(I(Z))>0 AND L%(I(Z))>0 AND L%(I(Z))<>Z) THEN 2100 2022 PRINT M$(7);P(I(Z));"DOLLARS" 2024 PRINT M$(8);\INPUT F$\ IF F$<>"BUY" THEN 3100 2026M(Z)=M(Z)-P(I(Z))\PRINT "YOU NOW HAVE";M(Z);"DOLLARS" 2027 L%(I(Z))=Z\GOTO 3100 2100 IF Z=1 THEN M(Z)=M(Z)-FNR\ M(2)=M(2)+FNR 2101 PRINT "YOU OWE";FNR;"DOLLARS RENT"\RETURN 2102 IF Z=2 THEN M(Z)=M(Z)-FNR\ M(1)=M(1)+FNR 2103 PRINT "YOU OWE";FNR;"DOLLARS RENT"\RETURN 2125 IF Z=1 THEN M(Z)=M(Z)-R(I(Z))\M(2)=M(2)+R(I(Z)) 2126 PRINT "YOU OWE";R(I(Z));"DOLLARS RENT"\RETURN 2127 IF Z=2 THEN M(Z)=M(Z)-R(I(Z))\ M(1)=M(1)+R(I(Z)) 2128 PRINT "YOU OWE";R(I(Z));"DOLLARS RENT"\RETURN 3100 PRINT M$(13)\ PRINT M$(14);\INPUT F$\ IF F$="SELL" THEN GOSUB 3150 3105 PRINT M$(19);\INPUT H$\ IF H$="HOUSE" THEN 3200 ELSE RETURN 3150 PRINT M$(15);\INPUT F$\ IF F$="LIST" THEN GOSUB 3170 3152 PRINT M$(17);\INPUT V$\ INPUT "HOW MUCH DO YOU WANT FOR IT";V 3154 FOR I=1 TO 39 3156 IF V$=G$(I) THEN IF L%(I)=0 THEN PRINT M$(16)\ RETURN 3158 IF V$=G$(I) THEN IF L%(I)=1 THEN M(1)=M(1)+V & \M(2)=M(2)-V\ L%(I)=2\ GOTO 3165 3160 IF V$=G$(I) THEN IF L%(I)=2 THEN M(2)=M(2)+V & \M(1)=M(1)-V\ L%(I)=1\ GOTO 3165 3162 NEXT I 3165 PRINT M$(18);\INPUT F$\ IF F$="YES" THEN 3152 ELSE RETURN 3170 C,D=0\ FOR I=1 TO 39 3172 IF L%(I)=1 THEN C=C+1\ A$(C)=G$(I) 3174 IF L%(I)=2 THEN D=D+1\ B$(D)=G$(I) 3175 NEXT I 3176 PRINT N$(1);"'S PROPERTY"\ FOR I=1 TO C\ PRINT A$(I)\ NEXT I 3178 PRINT N$(2);"'S PROPERTY"\ FOR I=1 TO D\ PRINT B$(I)\ NEXT I\RETURN 3200 IF L%(1)=Z AND L%(3)=Z THEN PRINT "HOW MANY HOUSES AT $50 EACH DO YOU WANT ON" & \PRINT G$(1);" ";G$(3);\INPUT U\GOSUB 3250 3202 IF L%(6)=Z AND L%(8)=Z AND L%(9)=Z THEN & PRINT "HOW MANY HOUSES AT $50 EACH DO YOU WANT ON" & \PRINT G$(6);" ";G$(8);" ";G$(9);\INPUT U\GOSUB 3252 3204 IF L%(11)=Z AND L%(13)=Z AND L%(14)=Z THEN & PRINT "HOW MANY HOUSES AT $100 EACH DO YOOU WANT ON" & \PRINT G$(11);" ";G$(13);" ";G$(14);\INPUT U\GOSUB 3254 3206 IF L%(16)=Z AND L%(18)=Z AND L%(19)=Z THEN & PRINT "HOW MANY HOUSES AT $100 EACH DO YOU WANT ON" & \PRINT G$(16);" ";G$(18);" ";G$(19);\INPUT U\GOSUB 3256 3208 IF L%(21)=Z AND L%(23)=Z AND L%(24)=Z THEN & PRINT "HOW MANY HOUSES AT $150 EACH DO YOU WANT ON" & \PRINT G$(21);" ";G$(23);" ";G$(24);\INPUT U\GOSUB 3258 3210 IF L%(26)=Z AND L%(27)=Z AND L%(29)=Z THEN & PRINT "HOW MANY HOUSES AT $150 EACH DO YOU WANT ON" & \PRINT G$(26);" ";G$(27);" ";G$(29);\INPUT U\GOSUB 3260 3212 IF L%(31)=Z AND L%(32)=Z AND L%(34)=Z THEN & PRINT "HOW MANY HOUSES AT $200 EACH DO YOU WANT ON" & \PRINT G$(31);" ";G$(32);" ";G$(34);\INPUT U\GOSUB 3262 3214 IF L%(37)=Z AND L%(39)=Z THEN & PRINT "HOW MANY HOUSES AT $200 EACH DO YOU WANT ON" & \PRINT G$(37);" ";G$(39);\INPUT U\GOSUB 3264 3220 RETURN 3250 U(1)=U(1)+U\ M(Z)=M(Z)-(U*100%)\ IF M(Z)<0 THEN PRINT M$(20) & \M(Z)=M(Z)+(U*100%)\U(1)=U(1)-U\RETURN 3251 H%(1),H%(3)=U(1)\ RETURN 3252 U(2)=U(2)+U\ M(Z)=M(Z)-(U*150%)\ IF M(Z)<0 THEN PRINT M$(20) & \M(Z)=M(Z)+(U*150%)\ U(2)=U(2)-U\ RETURN 3253 H%(6),H%(8),H%(9)=U(2)\ RETURN 3254 U(3)=U(3)+U\ M(Z)=M(Z)-(U*150%)\ IF M(Z)<0 THEN PRINT M$(20) & \M(Z)=M(Z)+(U*150%)\ U(3)=U(3)-U\ RETURN 3255 H%(11),H%(13),H%(14)=U(3)\ RETURN 3256 U(4)=U(4)+U\ M(Z)=M(Z)-(U*300%)\ IF M(Z)<0 THEN PRINT M$(20) & \M(Z)=M(Z)+(U*300%)\ U(4)=U(4)-U\ RETURN 3257 H%(16),H%(18),H%(19)=U(4)\ RETURN 3258 U(5)=U(5)+U\ M(Z)=M(Z)-(U*450%)\ IF M(Z)<0 THEN PRINT M$(20) & \M(Z)=M(Z)+(U*450%)\ U(5)=U(5)-U\ RETURN 3259 H%(21),H%(23),H%(24)=U(5)\ RETURN 3260 U(6)=U(6)+U\ M(Z)=M(Z)-(U*450%)\ IF M(Z)<0 THEN PRINT M$(20) & \M(Z)=M(Z)+(U*450%)\ U(6)=U(6)-U\ RETURN 3261 H%(26),H%(27),H%(29)=U(6)\ RETURN 3262 U(7)=U(7)+U\ M(Z)=M(Z)-(U*600%)\ IF M(Z)<0 THEN PRINT M$(20) & \M(Z)=M(Z)+(U*600%)\ U(7)=U(7)-U\ RETURN 3263 H%(31),H%(32),H%(34)=U(7)\ RETURN 3264 U(8)=U(8)+U\ M(Z)=M(Z)-(U*400%)\ IF M(Z)<0 THEN PRINT M$(20) & \M(Z)=M(Z)+(U*400%)\ U(8)=U(8)-U\ RETURN 3265 H%(37),H%(39)=U(8)\ RETURN 4100 RANDOMIZE \ L=RND !COMMUNITY CHEST 4102 IF L>=0 AND L<=.1 THEN PRINT Z$(1)\ M(Z)=M(Z)+100%\ RETURN 4104 IF L>.1 AND L<=.2 THEN PRINT Z$(2)\ M(Z)=M(Z)+100%\ RETURN 4106 IF L>.2 AND L<=.3 THEN PRINT Z$(3)\ M(Z)=M(Z)+20%\ RETURN 4108 IF L>.3 AND L<=.4 THEN PRINT Z$(4)\ M(Z)=M(Z)-50%\ RETURN 4110 IF L>.4 AND L<=.5 THEN PRINT Z$(5)\ M(Z)=M(Z)+100%\ RETURN 4112 IF L>.5 AND L<=.6 THEN PRINT Z$(6)\ M(Z)=M(Z)+200%\ I(Z)=0\ RETURN 4114 IF L>.6 AND L<=.7 THEN PRINT Z$(7)\ M(Z)=M(Z)-100%\ RETURN 4116 IF L>.7 AND L<=.8 THEN PRINT Z$(8)\ M(Z)=M(Z)-50%\ I(Z)=10\ RETURN 4118 IF L>.8 AND L<=.9 THEN PRINT Z$(9)\ M(Z)=M(Z)-50%\ RETURN 4120 IF L>.9 AND L<=1 THEN PRINT Z$(10)\ M(Z)=M(Z)+200%\ RETURN 4400 RANDOMIZE \ L=RND !CHANCE 4402 IF L => 0 AND L <= .1 THEN PRINT C$(1)\ M(Z)=M(Z)-15%\ RETURN 4404 IF L>.1 AND L<=.2 THEN PRINT C$(2)\ I(Z)=24\ GOSUB 2000\ RETURN 4406 IF L>.2 AND L<=.3 THEN PRINT C$(3)\ I(Z)=I(Z)-3\ GOSUB 2000\ RETURN 4408 IF L>.3 AND L<=.4 THEN PRINT C$(4)\ I(Z)=0\ M(Z)=M(Z)+200%\ RETURN 4410 IF L>.4 AND L<=.5 THEN PRINT C$(5)\ M(Z)=M(Z)+50%\ RETURN 4412 IF L>.5 AND L<=.6 THEN PRINT C$(6)\ I(Z)=5 & \M(Z)=M(Z)+200%\ GOSUB 2000\ RETURN 4414 IF L>.6 AND L<=.7 THEN PRINT C$(7)\ I(Z)=10\ M(Z)=M(Z)-50%\ RETURN 4416 IF L>.7 AND L<=.8 THEN PRINT C$(8)\ M(Z)=M(Z)+150%\ RETURN 4418 IF L>.8 AND L<=.9 THEN PRINT C$(9)\ I(Z)=39\ GOSUB 2000\ RETURN 4420 IF L>.9 AND L<=1 THEN PRINT C$(10)\ I(Z)=11\ GOSUB 2000\ RETURN 30000 C,D=0 30002 FOR I=1 TO 39 30004 IF L%(I)=1 THEN C=C+1\A$(C)=G$(I) 30006 IF L%(I)=2 THEN D=D+1\B$(D)=G$(I) 30008 NEXT I\PRINT \PRINT 30009 PRINT N$(1);" OWNED THE FOLLOWING PROPERTY" & \FOR I=1 TO C\PRINT A$(I)\NEXT I 30010 PRINT "AND HAD";M(1);"DOLLARS AT THE END OF THE GAME" 30011 PRINT N$(2);" OWNED THE FOLLOWING PROPERTY" & \FOR I=1 TO D\PRINT B$(I)\NEXT I 30012 PRINT "AND HAD";M(2);"DOLLARS AT THE END OF THE GAME" 30013 CLOSE 1,3\END 1 REM COURTESY OF PEOPLE'S COMPUTER COMPANY 2 REM MUGWMP 3 REM *** CONVERTED TO RSTS/E BY DAVID AHL, DIGITAL 5 RANDOMIZE 10 DIM P(4,2) 20 PRINT "THE OBJECT OF THIS GAME IS TO FIND FOUR MUGWUMPS" 30 PRINT "HIDDEN ON A 10 BY 10 GRID. HOMEBASE IS POSITION 0,0" 40 PRINT "ANY GUESS YOU MAKE MUST BE TWO NUMBERS WITH EACH" 50 PRINT "NUMBER BETWEEN 0 AND 9, INCLUSIVE. FIRST NUMBER" 60 PRINT "IS DISTANCE TO RIGHT OF HOMEBASE AND SECOND NUMBER" 70 PRINT "IS DISTANCE ABOVE HOMEBASE." 80 PRINT 90 PRINT "YOU GET 10 TRIES. AFTER EACH TRY, I WILL TELL" 100 PRINT "YOU HOW FAR YOU ARE FROM EACH MUGWUMP." 110 PRINT 240 GOSUB 1000 250 T=0 260 T=T+1 270 PRINT 275 PRINT 290 PRINT "TURN NO.";T;"WHAT IS YOUR GUESS"; 300 INPUT M,N 310 FOR I=1 TO 4 320 IF P(I,1)=-1 THEN 400 330 IF P(I,1)<>M THEN 380 340 IF P(I,2)<>N THEN 380 350 P(I,1)=-1 360 PRINT "YOU HAVE FOUND MUGWUMP";I 370 GOTO 400 380 D=SQR((P(I,1)-M)^2+(P(I,2)-N)^2) 390 PRINT "YOU ARE";INT(D*10)/10;"UNITS FROM MUGWUMP";I 400 NEXT I 410 FOR J=1 TO 4 420 IF P(J,1)<>-1 THEN 470 430 NEXT J 440 PRINT 450 PRINT "YOU GOT THEM ALL IN";T;"TURNS!" 460 GOTO 580 470 IF T<10 THEN 260 480 PRINT 490 PRINT "SORRY, THAT'S 10 TRIES. HERE IS WHERE THEY'RE HIDING" 540 FOR I=1 TO 4 550 IF P(I,1)=-1 THEN 570 560 PRINT "MUGWUMP";I;"IS AT (";P(I,1);",";P(I,2);")" 570 NEXT I 580 PRINT 585 print " that was fun! do you want to play again"; 590 input a$ \ a$=left(a$,1%) 595 if a$<>"y" goto 1060 600 print 610 PRINT "FOUR MORE MUGMUMPS ARE NOW IN HIDING." 630 GOTO 240 1000 FOR J=1 TO 2 1010 FOR I=1 TO 4 1020 p(i,j)=int(10*rnd) 1030 NEXT I 1040 NEXT J 1050 RETURN 1060 print\ print 1070 print "come back and play again later." 1080 print "bye bye for now." 1099 END 10 REM *** WRITTEN BY DAVID AHL, DIGITAL 20 PRINT "BOOMERANG PUZZLE FROM ARITHMETICA OF NICOMACHUS -- A.D. 90!" 30 PRINT \ PRINT "PLEASE THINK OF A NUMBER BETWEEN 1 AND 100."\ PRINT 40 PRINT "GOT IT? O.K. LET'S START....." 50 INPUT "YOUR NUMBER DIVIDED BY 3 HAS A REMAINDER OF";A 60 INPUT "YOUR NUMBER DIVIDED BY 5 HAS A REMAINDER OF";B 70 INPUT "YOUR NUMBER DIVIDED BY 7 HAS A REMAINDER OF";C 80 PRINT \ PRINT "LET ME THINK A MOMENT"\SLEEP (5)\D=70*A+21*B+15*C 90 IF D>105 THEN D=D-105\GOTO 90 110 PRINT \ PRINT "YOUR NUMBER WAS";D;", RIGHT";\INPUT A$\ PRINT 120 IF A$="YES" THEN 150 ELSE IF A$="NO" THEN 160 140 PRINT "EH? I DON'T UNDERSTAND '";A$;"'. TRY 'YES' OR 'NO'."\GOTO 110 150 PRINT "HOW ABOUT THAT!!"\GOTO 170 160 PRINT "I FEAR YOUR ARITHMETIC IS IN ERROR." 170 print\print\print "do you want to play again"; 180 input a$ \ a$=left(a$,1%) 190 if a$="Y" goto 30 200 print\ print "bye bye for now. come play again later." 210 end 5 REM *** WRITTEN BY ROBERT COX, TRINITY COLLEGE 10 REM *** CONVERTED TO RSTS/E BY DAVID AHL, DIGITAL 100 REM THIS PROGRAM USES A STRATEGY AS PRESENTED IN 'GAMES OF FUN AND 105 REM STRATEGY', A PUBLICATION OF THE MATHEMATICAL SERVICES DEPART- 110 REM MENT OF COMPUTER CONTROL CO., INC. 115 PRINT "THIS PROGRAM PLAYS NIM." 120 PRINT "DO YOU WANT INSTRUCTIONS";\INPUT Q$ 125 IF Q$="YES" THEN 135 ELSE IF Q$="NO" THEN 190 130 PRINT "TYPE YES OR NO."\INPUT Q$\GOTO 125 135 PRINT 140 PRINT " NIM IS PLAYED BY TWO PEOPLE PLAYING ALTERNATELY. BEFORE" 145 PRINT "THE PLAY STARTS, AN ARBITRARY NUMBER OF STICKS OR OBJECTS IS" 150 PRINT "PUT INTO AN ARBITRARY NUMBER OF PILES, IN ANY DISTRIBUTION" 155 PRINT "WHATEVER. THEN EACH PLAYER IN HIS TURN REMOVES AS MANY" 160 PRINT "STICKS AS HE WISHES FROM ANY PILE--BUT FROM ONLY ONE PILE," 165 PRINT "AND AT LEAST ONE STICK. THE PLAYER WHO TAKES THE LAST STICK" 170 PRINT "IS THE WINNER." 175 PRINT " THIS PROGRAM ALLOWS YOU TO SET UP THE INITIAL ARRANGEMENT" 180 PRINT "OF PILES AND STICKS. IT WILL NOT ACCEPT MORE THAN TWENTY" 185 PRINT "PILES OR STICKS IN EACH PILE." 190 RANDOM 195 REM ------------------CONFIGURATION INPUT--------------------------- 200 DIM X(20,4),S(20),L(20),S2(20),N2(4),C(20),S3(20),V(20) 205 PRINT \PRINT "HOW MANY PILES";\INPUT P\IF P>20 THEN 215 210 IF P>INT(P) THEN 215 ELSE IF P<=0 THEN 215 ELSE GOTO 220 215 PRINT "ILLEGAL PILE NUMBER."\PRINT \GO TO 205 220 PRINT \FOR I=1 TO P 225 PRINT "HOW MANY STICKS IN PILE";I;\INPUT L(I)\IF L(I)>20 THEN 235 230 IF L(I)>INT(L(I)) THEN 235 ELSE IF L(I)<=0 THEN 235 ELSE GOTO 240 235 PRINT "ILLEGAL STICK NUMBER."\PRINT \GO TO 225 240 NEXT I 245 FOR I=1 TO P\S(I)=L(I)\G=G+L(I)\NEXT I 250 PRINT \PRINT "DO YOU WANT TO GO FIRST"; 255 INPUT Q$\IF Q$="YES" THEN 340 ELSE IF Q$="NO" THEN 390 260 PRINT "TYPE YES OR NO."\GO TO 255 265 REM --CONTROL OF GAME REPEATS AND TESTS FOR END OF GAME------------- 270 IF G=0 THEN 275 ELSE IF F=1 THEN 390 ELSE GOTO 320 275 IF F=1 THEN 315 280 PRINT \PRINT "I WON. DO YOU WANT TO PLAY AGAIN"; 285 INPUT Q$\IF Q$="NO" THEN 290 ELSE IF Q$="YES" THEN 300 ELSE GOTO 295 290 goto 560 295 PRINT "TYPE YES OR NO."\GO TO 285 300 PRINT \PRINT "SAME ARRANGEMENT"; 305 INPUT Q$\IF Q$="NO" THEN 205 ELSE IF Q$="YES" THEN 245 310 PRINT "TYPE YES OR NO."\GO TO 305 315 PRINT \PRINT "YOU WON. DO YOU WANT TO PLAY AGAIN";\GO TO 285 320 PRINT \PRINT "PILE NUMBER","STICKS LEFT" 325 FOR I=1 TO P\IF S(I)=0 THEN 330 ELSE PRINT I,S(I) 330 NEXT I 335 REM ---------------------PLAYER'S MOVE------------------------------ 340 PRINT \PRINT "WHICH PILE DO YOU WANT STICKS FROM";\INPUT N 345 IF N>P THEN 355 ELSE IF N>INT(N) THEN 355 ELSE IF N<=0 THEN 355 350 IF S(N)=0 THEN 355 ELSE GOTO 360 355 PRINT "ILLEGAL PILE NUMBER."\PRINT \GO TO 340 360 PRINT \PRINT "HOW MANY STICKS";\INPUT T 365 IF T>S(N) THEN 370 ELSE IF T>INT(T) THEN 370 ELSE IF T<=0 THEN 370 ELSE GOTO 375 370 PRINT "ILLEGAL STICK NUMBER."\PRINT \GO TO 360 375 S(N)=S(N)-T\G=G-T 380 F=1\GO TO 270 385 REM --------------------MACHINE'S MOVE------------------------------ 390 FOR I=0 TO 4\V(I)=0\NEXT I 395 FOR I=1 TO P 400 C(I)=S(I) 405 FOR E=4 TO 0 STEP -1 410 IF S(I)<2^E THEN 415 ELSE S2(I)=S2(I)+10^E\S(I)=S(I)-2^E 415 NEXT E 420 FOR Y=4 TO 0 STEP -1 425 X(I,Y)=INT(S2(I)/10^Y)\S2(I)=S2(I)-X(I,Y)*10^Y 430 V(Y)=V(Y)+X(I,Y) 435 NEXT Y 440 NEXT I 445 R=0 450 FOR Y=4 TO 0 STEP -1 455 IF V(Y)/2-INT(V(Y)/2)=0 THEN 480 460 IF R=1 THEN 470 ELSE Q=INT(P*RND)+1 465 IF X(Q,Y)<>1 THEN 460 ELSE X(Q,Y)=0\R=1\GOTO 480 470 IF X(Q,Y)=1 THEN 475 ELSE X(Q,Y)=1\GOTO 480 475 X(Q,Y)=0 480 NEXT Y 485 FOR I=1 TO P 490 S2(I)=0 495 FOR Y=4 TO 0 STEP -1 500 S3(I)=X(I,Y)*10^Y\S2(I)=S2(I)+S3(I) 505 NEXT Y 510 FOR E=4 TO 0 STEP -1 515 IF S2(I)<10^E THEN 520 ELSE S(I)=S(I)+2^E\S2(I)=S2(I)-10^E 520 NEXT E 525 NEXT I 530 IF R=1 THEN 535 ELSE Q=INT(P*RND)+1\IF S(Q)=0 THEN 530 ELSE S(Q)=S(Q)-1 535 D=C(Q)-S(Q)\G=G-D 540 IF D=1 THEN 550 545 PRINT \PRINT "I'LL TAKE";D;"STICKS FROM PILE";Q;"."\GO TO 555 550 PRINT \PRINT "I'LL TAKE 1 STICK FROM PILE";Q;"." 555 F=0\GO TO 270 560 END 1000 ! & !& !TELEPHONE #'S PROGRAM & !& ! 1010 OPEN "[2,7]PHONE.DAT" AS FILE #1%\OPEN "KB:" AS FILE #2% 1020 DIM #1%, A$(500%)=64% 1030 PRINT #2%\PRINT #2% ;"PHONE #'S PROGRAM"\Y%=1% 1040 PRINT #2%\PRINT #2%, "DO YOU WANT TO INPUT OR OUTPUT PHONE #'S ";\ & INPUT LINE A$ 1050 A$=CVT$$(A$,140%)\IF A$="" THEN 1370 ELSE IF LEFT(A$,1%)="I" THEN 1220 1060 PRINT #2%, "DO YOU WANT TO OUTPUT ALL PHONE #'S OR INDIVIDUAL'S ";\ & INPUT LINE A1$\A1$=CVT$$(A1$,140%)\H%=0%\Y%=1% 1070 PRINT #2%, "OUTPUT DEVICE ";\INPUT LINE A2$\A2$=CVT$$(A2$,140%)\ & IF A2$="" THEN 1070 ELSE IF LEFT(A2$,2%)="KB" THEN IF & RIGHT(A2$,LEN(A2$))<>":" THEN A2$=A2$+":" 1075 IF LEFT(A2$,2%)="LP" THEN IF RIGHT(A2$,LEN(A2$))<>":" THEN A2$=A2$+":" 1077 OPEN A2$ AS FILE #3% 1080 Z%=0%\IF LEFT(A1$,1%)="A" THEN 1150 ELSE PRINT #2%, & "WHAT IS THE NAME ";\INPUT LINE A4$\A4$=CVT$$(A4$,140%)\ & IF A4$="" THEN CLOSE #3%\GOTO 1040 1090 ! & !& !OUTPUT INDIVIDUAL NAMES AND PHONE #'S & !& ! 1100 FOR X%=1% TO 500% 1110 IF INSTR(1%,A$(X%),A4$)=0% THEN 1130 ELSE PRINT #3%\ & PRINT #3%, "NAME - "+LEFT(A$(X%),25%)\ & PRINT #3%, "EXTENSION - "+MID(A$(X%),26%,4%) 1120 PRINT #3%, "LOCATION - "+MID(A$(X%),30%,20%) & \ PRINT #3%, "COMMENT - "+MID(A$(X%),50%,20%) & IF MID(A$(X%),50%,20%)<>"" & \Z%=-1%\PRINT #2% 1130 NEXT X%\ IF Z% THEN 1080 ELSE PRINT #2%\ & PRINT #2%, "DOES NOT EXIST"\PRINT #2%\GOTO 1080 1140 ! & !OUTPUT EVERYTHING & ! 1150 PRINT #3%\PRINT #3%, "NAME";TAB(26%)+"EXT.";TAB(34%)+ & "LOCATION/MAILSTOP";TAB(57%)+"COMMENT" 1160 PRINT #3%, "----";TAB(26%)+"----";TAB(34%)+"-----------------"; & TAB(57%)+"-------"\H%=3% 1170 FOR X%=Y% TO 500% 1180 IF A$(X%)="*" THEN PRINT #3%\CLOSE #3%\GOTO 1040 1183 H%=H%+1%\IF H%>60% THEN PRINT #3%, CHR$(12%)\ & Y%=X%\GOTO 1150 1185 PRINT #3%, LEFT(A$(X%),25%);TAB(26%)+MID(A$(X%),26%,4%); & TAB(34%)+MID(A$(X%),30%,20%);TAB(57%)+RIGHT(A$(X%),50%) 1200 NEXT X%\CLOSE #3%\GOTO 1040 1210 ! & !& !INPUT ROUTINE & !& ! 1220 V$=SYS(CHR$(3%))\PRINT #2%\PRINT #2%, "PASSWORD ";\ & INPUT LINE P$\P$=CVT$$(P$,140%)\PRINT #2%\ & V$=SYS(CHR$(2%))\IF P$<>CHR$(42%)+CHR$(70%)+ & CHR$(79%)+CHR$(79%)+CHR$(38%) THEN 1370 1225 PRINT #2%\PRINT #2%, "WHAT IS THE NAME ";\INPUT LINE A5$\ & A5$=CVT$$(A5$,140%)\IF A5$="" THEN 1340 1230 IF LEN(A5$)<>25% THEN A5$=A5$+" "\GOTO 1230 1231 FOR X%=1% TO 500% 1232 IF A$(X%)="*" THEN 1240 ELSE IF LEFT(A$(X%),25%)<>A5$ THEN 1239 1233 PRINT #2%\PRINT #2%, "NAME '"+CVT$$(A5$,140%)+"' ALREADY EXISTS"\PRINT #2%\ & PRINT #2%, "HERE ARE THE STATISTICS:"\PRINT #2%, & "EXTENTION - "+MID(A$(X%),26%,4%)\PRINT #2%, & "LOCATION - "+MID(A$(X%),30%,20%) 1234 IF MID(A$(X%),50%,20%)="" THEN 1225 ELSE PRINT #2%, & "COMMENT - "+MID(A$(X%),50%,20%)\GOTO 1225 1239 NEXT X% 1240 PRINT #2%, "WHAT IS THE EXTENSION ";\INPUT LINE A6$\ & A6$=CVT$$(A6$,140%)\IF A6$="" THEN 1240 1250 IF LEN(A6$)>4% THEN PRINT #2%\PRINT #2%, & "NO EXTENSION IS > 4 DIGITS"\PRINT #2%\GOTO 1240 1255 IF LEN(A6$)<4% THEN A6$="0"+A6$\GOTO 1255 1260 PRINT #2%, "WHAT IS THE LOCATION/MAILSTOP ";\INPUT LINE A7$\ & A7$=CVT$$(A7$,140%)\IF A7$="" THEN 1260 1270 PRINT #2%, "ANY COMMENTS ";\INPUT LINE A8$\A8$=CVT$$(A8$,140%) 1275 IF LEN(A8$)>15% THEN PRINT #2%\PRINT #2%, & "LINE TOO LONG, 15 CHARACTERS ONLY"\PRINT #2%\GOTO 1270 1280 IF LEN(A7$)<>20% THEN A7$=A7$+" "\GOTO 1280 1300 IF A$(X%)="*" THEN A$(X%)=A5$+A6$+A7$+A8$\GOTO 1225 1320 PRINT #2%\PRINT #2%, "NO MORE ROOM FOR NAMES"\PRINT #2\GOTO 1040 1330 ! & !& !PUT NAMES IN ALPHABETICAL ORDER & !& ! 1340 FOR Z%=1% TO X%-1% 1350 IF RIGHT(A$(Z%),INSTR(1%,A$(Z%)," "))> & RIGHT(A$(Z%+1%),INSTR(1%,A$(Z%+1%)," ")) THEN & S$=A$(Z%+1%)\A$(Z%+1%)=A$(Z%)\A$(Z%)=S$\Z%=0% 1360 NEXT Z%\PRINT #2%\GOTO 1040 1370 CLOSE X% FOR X%=1% TO 12% 1380 END 10 REM *** MODIFIED AND CONVERTED TO RSTS/E BY DAVID AHL, DIGITAL 90 RANDOMIZE 100 IF I<>1 THEN 101 ELSE PRINT "MIDNIGHT DREARY"; 101 IF I<>2 THEN 102 ELSE PRINT "FIREY EYES"; 102 IF I<>3 THEN 103 ELSE PRINT "BIRD OR FIEND"; 103 IF I<>4 THEN 104 ELSE PRINT "THING OF EVIL"; 104 IF I<>5 THEN 210 ELSE PRINT "PHOPHET"; 105 GOTO 210 110 IF I<>1 THEN 111 ELSE PRINT "BEGUILING ME"; 111 IF I<>2 THEN 112 ELSE PRINT "THRILLED ME"; 112 IF I<>3 THEN 113 ELSE PRINT "STILL SITTING..."\GOTO 212 113 IF I<>4 THEN 114 ELSE PRINT "BURNED. "\GOTO 212 114 IF I<>5 THEN 210 ELSE PRINT "NEVER FLITTING"; 115 GOTO 210 120 IF I<>1 THEN 121 ELSE IF U=0 THEN 210 ELSE PRINT "SIGN OF PARTING"; 121 IF I<>2 THEN 122 ELSE PRINT "AND MY SOUL"; 122 IF I<>3 THEN 123 ELSE PRINT "DARKNESS THERE"; 123 IF I<>4 THEN 124 ELSE PRINT "SHALL BE LIFTED"; 124 IF I<>5 THEN 210 ELSE PRINT "QUOTH THE RAVEN"; 125 GOTO 210 130 IF I<>1 THEN 131 ELSE PRINT "NOTHING MORE"; 131 IF I<>2 THEN 132 ELSE PRINT "YET AGAIN"; 132 IF I<>3 THEN 133 ELSE PRINT "SLOWLY CREEPING"; 133 IF I<>4 THEN 134 ELSE PRINT "...NEVERMORE"; 134 IF I<>5 THEN 210 ELSE PRINT "EVERMORE."; 210 IF U=0 THEN 212 ELSE IF RND>.19 THEN 212 ELSE PRINT ",";\U=2 211 z9=z9+1 \ if z9 >15 goto 999 212 IF RND>.65 THEN 214 ELSE PRINT " ";\U=U+1\GOTO 215 214 PRINT \U=0 215 I=INT(5*RND+1) 220 J=J+1\K=K+1 230 IF U>0 THEN 240 ELSE IF INT(J/2)<>J/2 THEN 240 ELSE PRINT " "; 240 ON J GOTO 100,110,120,130,250 250 J=0\PRINT \IF K>20 THEN 270 ELSE GOTO 215 270 PRINT \U=0\K=0\GOTO 110 999 END 100 ON ERROR GOTO 10000 \ DIM A(50),B(15) 110 DEF* FNA(X)=INT(10*RND) 120 DEF* FNB(X)=X-100*INT(X/100) 130 PRINT "WELCOME TO THE CASINO. WE EACH HAVE $200" 140 PRINT "I WILL OPEN THE BETTING BEFORE THE DRAW; YOU OPEN AFTER" 150 PRINT "WHEN YOU FOLD, BET 0; TO CHECK, BET .5" 160 PRINT "ENOUGH TALK -- LET'S GET DOWN TO BUSINESS" 170 PRINT 180 LET O=1 190 LET C=200 200 LET S=200 210 LET P=0 220 RANDOM 230 PRINT 240 IF C<=5 THEN 3730 250 PRINT "THE ANTE IS $5. I WILL DEAL" 260 PRINT 270 IF S>5 THEN 290 280 GOSUB 3880 290 LET P=P+10 300 LET S=S-5 310 LET C=C-5 320 FOR Z=1 TO 10 330 GOSUB 1800 340 NEXT Z 350 PRINT "YOUR HAND:" 360 LET N=1 370 GOSUB 1910 380 LET N=6 390 LET I=2 400 GOSUB 2230 410 PRINT 420 IF I<>6 THEN 560 430 IF FNA(0)<=7 THEN 460 440 LET X=11100 450 GOTO 510 460 IF FNA(0)<=7 THEN 490 470 LET X=11110 480 GOTO 510 490 IF FNA(0)>=1 THEN 540 500 LET X=11111 510 LET I=7 520 LET Z=23 530 GOTO 670 540 LET Z=1 550 GOTO 600 560 IF U>=13 THEN 630 570 IF FNA(0)>=2 THEN 590 580 GOTO 510 590 LET Z=0 600 LET K=0 610 PRINT "I CHECK" 620 GOTO 710 630 IF U<=16 THEN 660 640 LET Z=2 650 IF FNA(0)>=1 THEN 670 660 LET Z=35 670 LET V=Z+FNA(0) 680 GOSUB 3540 690 PRINT "I'LL OPEN WITH ";V 700 LET K=V 710 GOSUB 3110 720 GOSUB 740 730 GOTO 880 740 IF I<>3 THEN 820 750 PRINT 760 PRINT "I WIN" 770 LET C=C+P 780 PRINT "NOW I HAVE $";C;"AND YOU HAVE $";S 790 PRINT "DO YOU WISH TO CONTINUE"; 800 INPUT H$ \ TTLINE$ = H$ \ GOSUB 9000 \ H$ = TTLINE$ 810 IF LEFT$(H$,1%) = "N" THEN 32767 ELSE 210 820 IF I<>4 THEN 870 830 PRINT 840 PRINT "YOU WIN" 850 LET S=S+P 860 GOTO 780 870 RETURN 880 PRINT 890 PRINT "NOW WE DRAW -- HOW MANY CARDS DO YOU WANT"; 900 INPUT T 910 IF T=0 THEN 1040 920 LET Z=10 930 IF T<4 THEN 960 940 PRINT "YOU CAN'T DRAW MORE THAN THREE CARDS" 950 GOTO 900 960 PRINT "WHAT ARE THEIR NUMBERS" 970 FOR Q=1 TO T 980 INPUT U 990 GOSUB 1790 1000 NEXT Q 1010 PRINT "YOUR NEW HAND:" 1020 LET N=1 1030 GOSUB 1910 1040 LET Z=10+T 1050 FOR U=6 TO 10 1060 IF INT(X/10^(U-6))<>10*INT(X/10^(U-5)) THEN 1080 1070 GOSUB 1790 1080 NEXT U 1090 PRINT 1100 PRINT "I AM TAKING";Z-10-T;"CARD"; 1110 IF Z=11+T THEN 1150 1120 PRINT "S" 1130 PRINT 1140 GOTO 1160 1150 PRINT 1160 LET N=6 1170 LET V=I 1180 LET I=1 1190 GOSUB 2230 1200 LET B=U 1210 LET M=D 1220 IF V<>7 THEN 1250 1230 LET Z=28 1240 GOTO 1390 1250 IF I<>6 THEN 1280 1260 LET Z=1 1270 GOTO 1390 1280 IF U>=13 THEN 1330 1290 LET Z=2 1300 IF FNA(0)<>6 THEN 1320 1310 LET Z=19 1320 GOTO 1390 1330 IF U>=16 THEN 1380 1340 LET Z=19 1350 IF FNA(0)<>8 THEN 1370 1360 LET Z=11 1370 GOTO 1390 1380 LET Z=2 1390 LET K=0 1400 GOSUB 3110 1410 IF T<>.5 THEN 1510 1420 IF V=7 THEN 1460 1430 IF I<>6 THEN 1460 1440 PRINT "I'LL CHECK" 1450 GOTO 1520 1460 LET V=Z+FNA(0) 1470 GOSUB 3540 1480 PRINT "I'LL BET";V 1490 LET K=V 1500 GOSUB 3120 1510 GOSUB 740 1520 PRINT 1530 PRINT "NOW WE COMPARE HANDS" 1540 LET J$=H$ 1550 LET K$=I$ 1560 PRINT "MY HAND:" 1570 LET N=6 1580 GOSUB 1910 1590 LET N=1 1600 GOSUB 2230 1610 PRINT 1620 PRINT "YOU HAVE "; 1630 LET K=D 1640 GOSUB 3740 1650 LET H$=J$ 1660 LET I$=K$ 1670 LET K=M 1680 PRINT "AND I HAVE "; 1690 GOSUB 3740 1700 IF B>U THEN 760 1710 IF U>B THEN 840 1720 IF H$="A FLUS" THEN 1760 1730 PRINT "THE HAND IS DRAWN" 1740 PRINT "ALL $";P;" REMAIN IN THE POT" 1750 GOTO 230 1760 IF FNB(M)>FNB(D) THEN 760 1770 IF FNB(D)>FNB(M) THEN 840 1780 GOTO 1730 1790 LET Z=Z+1 1800 let a(z)=int(1000*rnd) 1810 IF INT(A(Z)/100)>3 THEN 1800 1820 IF A(Z)-100*INT(A(Z)/100)>12 THEN 1800 1830 FOR K=1 TO Z-1 1840 IF A(Z)=A(K) THEN 1800 1850 NEXT K 1860 IF Z<=10 THEN 1900 1870 LET N=A(U) 1880 LET A(U)=A(Z) 1890 LET A(Z)=N 1900 RETURN 1910 FOR Z=N TO N+4 1920 PRINT Z;"-- "; 1930 GOSUB 2010 1940 PRINT " OF"; 1950 GOSUB 2130 1960 IF Z/2<>INT(Z/2) THEN 1980 1970 PRINT 1980 NEXT Z 1990 PRINT 2000 RETURN 2010 LET K=FNB(A(Z)) 2020 IF K<>9 THEN 2040 2030 PRINT "JACK"; 2040 IF K<>10 THEN 2060 2050 PRINT "QUEEN"; 2060 IF K<>11 THEN 2080 2070 PRINT "KING"; 2080 IF K<>12 THEN 2100 2090 PRINT "ACE"; 2100 IF K>=9 THEN 2120 2110 PRINT K+2; 2120 RETURN 2130 LET K=INT(A(Z)/100) 2140 IF K<>0 THEN 2160 2150 PRINT " CLUBS", 2160 IF K<>1 THEN 2180 2170 PRINT " DIAMONDS", 2180 IF K<>2 THEN 2200 2190 PRINT " HEARTS", 2200 IF K<>3 THEN 2220 2210 PRINT " SPADES", 2220 RETURN 2230 LET U=0 2240 FOR Z=N TO N+4 2250 LET B(Z)=FNB(A(Z)) 2260 IF Z=N+4 THEN 2290 2270 IF INT(A(Z)/100)<>INT(A(Z+1)/100) THEN 2290 2280 LET U=U+1 2290 NEXT Z 2300 IF U<>4 THEN 2370 2310 LET X=11111 2320 LET D=A(N) 2330 LET H$="A FLUS" 2340 LET I$="H IN" 2350 LET U=15 2360 RETURN 2370 FOR Z=N TO N+3 2380 FOR K=Z+1 TO N+4 2390 IF B(Z)<=B(K) THEN 2450 2400 LET X=A(Z) 2410 LET A(Z)=A(K) 2420 LET B(Z)=B(K) 2430 LET A(K)=X 2440 LET B(K)=A(K)-100*INT(A(K)/100) 2450 NEXT K 2460 NEXT Z 2470 LET X=0 2480 FOR Z=N TO N+3 2490 IF B(Z)<>B(Z+1) THEN 2530 2500 LET X=X+11*10^(Z-N) 2510 LET D=A(Z) 2520 GOSUB 2820 2530 NEXT Z 2540 IF X<>0 THEN 2680 2550 IF B(N)+3<>B(N+3) THEN 2580 2560 LET X=1111 2570 LET U=10 2580 IF B(N+1)+3<>B(N+4) THEN 2680 2590 IF U<>10 THEN 2660 2600 LET U=14 2610 LET H$="STRAIG" 2620 LET I$="HT" 2630 LET X=11111 2640 LET D=A(N+4) 2650 RETURN 2660 LET U=10 2670 LET X=11110 2680 IF U>=10 THEN 2750 2690 LET D=A(N+4) 2700 LET H$="SCHMAL" 2710 LET I$="TZ, " 2720 LET U=9 2730 LET X=11000 2740 GOTO 2800 2750 IF U<>10 THEN 2780 2760 IF I=1 THEN 2800 2770 GOTO 2810 2780 IF U>12 THEN 2810 2790 IF FNB(D)>6 THEN 2810 2800 LET I=6 2810 RETURN 2820 IF U>=11 THEN 2870 2830 LET U=11 2840 LET H$="A PAIR" 2850 LET I$=" OF " 2860 RETURN 2870 IF U<>11 THEN 2970 2880 IF B(Z)<>B(Z-1) THEN 2930 2890 LET H$="THREE" 2900 LET I$=" " 2910 LET U=13 2920 RETURN 2930 LET H$="TWO P" 2940 LET I$="AIR, " 2950 LET U=12 2960 RETURN 2970 IF U<>12 THEN 3020 2980 LET U=16 2990 LET H$="FULL H" 3000 LET I$="OUSE, " 3010 RETURN 3020 IF B(Z)<>B(Z-1) THEN 3070 3030 LET U=17 3040 LET H$="FOUR" 3050 LET I$=" " 3060 RETURN 3070 LET U=16 3080 LET H$="FULL H" 3090 LET I$="OUSE, " 3100 RETURN 3110 LET G=0 3120 PRINT "WHAT IS YOUR BET"; 3130 INPUT T 3140 IF T-INT(T)=0 THEN 3200 3150 IF K<>0 THEN 3180 3160 IF G<>0 THEN 3180 3170 IF T=.5 THEN 3470 3180 PRINT "NO SMALL CHANGE, PLEASE" 3190 GOTO 3120 3200 IF S-G-T>=0 THEN 3230 3210 GOSUB 3880 3220 GOTO 3120 3230 IF T<>0 THEN 3260 3240 LET I=3 3250 GOTO 3440 3260 IF G+T>=K THEN 3290 3270 PRINT "IF YOU CAN'T SEE MY BET, THEN FOLD" 3280 GOTO 3120 3290 LET G=G+T 3300 IF G=K THEN 3440 3310 IF Z<>1 THEN 3480 3320 IF G>5 THEN 3360 3330 IF Z>=2 THEN 3410 3340 LET V=5 3350 GOTO 3480 3360 IF Z=1 THEN 3380 3370 IF T<=25 THEN 3410 3380 LET I=4 3390 PRINT "I FOLD" 3400 RETURN 3410 IF Z=2 THEN 3490 3420 PRINT "I'LL SEE YOU" 3430 LET K=G 3440 LET S=S-G 3450 LET C=C-K 3460 LET P=P+G+K 3470 RETURN 3480 IF G>3*Z THEN 3410 3490 LET V=G-K+FNA(0) 3500 GOSUB 3540 3510 PRINT "I'LL SEE YOU, AND RAISE YOU";V 3520 LET K=G+V 3530 GOTO 3120 3540 IF C-G-V>=0 THEN 3720 3550 IF G<>0 THEN 3580 3560 LET V=C 3570 RETURN 3580 IF C-G>=0 THEN 3420 3590 IF O/2<>INT(O/2) THEN 3660 3600 PRINT "WOULD YOU LIKE TO BUY BACK YOUR WATCH FOR $50"; 3610 INPUT J$ \ TTLINE$ = J$ \ GOSUB 9000 \ J$ = TTLINE$ 3620 IF LEFT$(J$,1%) = "N" THEN 3660 3630 LET C=C+50 3640 LET O=O/2 3650 RETURN 3660 IF O/3<>INT(O/3) THEN 3730 3670 PRINT "WOULD YOU LIKE TO BUY BACK YOUR TIE TACK FOR $50"; 3680 INPUT J$ \ TTLINE$ = J$ \ GOSUB 9000 \ J$ = TTLINE$ 3690 IF LEFT$(J$,1%) = "N" THEN 3730 3700 LET C=C+50 3710 LET O=O/3 3720 RETURN 3730 PRINT "I'M BUSTED. CONGRATULATIONS" \ GOTO 32767 3740 PRINT H$;I$; 3750 IF H$<>"A FLUS" THEN 3800 3760 LET K=INT(K/100) 3770 GOSUB 2140 3780 PRINT 3790 RETURN 3800 LET K=FNB(K) 3810 GOSUB 2020 3820 IF H$="SCHMAL" THEN 3840 3830 IF H$<>"STRAIG" THEN 3860 3840 PRINT " HIGH" 3850 RETURN 3860 PRINT "S" 3870 RETURN 3880 PRINT 3890 PRINT "YOU CAN'T BET WHAT YOU HAVEN'T GOT" 3900 IF O/2=INT(O/2) THEN 4020 3910 PRINT "WOULD YOU LIKE TO SELL YOUR WATCH"; 3920 INPUT J$ \ TTLINE$ = J$ \ GOSUB 9000 \ J$ = TTLINE$ 3930 IF LEFT$(J$,1%) = "N" THEN 4020 3940 IF FNA(0)>=7 THEN 3980 3950 PRINT "I'LL GIVE YOU $75 FOR IT" 3960 LET S=S+75 3970 GOTO 4000 3980 PRINT "THAT'S A PRETTY CRUMMY WATCH - I'LL GIVE YOU $25" 3990 LET S=S+25 4000 LET O=O*2 4010 RETURN 4020 IF O/3=INT(O/3) THEN 4140 4030 PRINT "WILL YOU PART WITH THAT DIAMOND TIE TACK"; 4040 INPUT J$ \ TTLINE$ = J$ \ GOSUB 9000 \ J$ = TTLINE$ 4050 IF LEFT$(J$,1%) = "N" THEN 4130 4060 IF FNA(0)>=6 THEN 4100 4070 PRINT "YOU ARE NOW $100 RICHER" 4080 LET S=S+100 4090 GOTO 4120 4100 PRINT "IT'S PASTE. $25" 4110 LET S=S+25 4120 LET O=O*3 4130 RETURN 4140 PRINT "YOUR WAD IS SHOT. SO LONG, SUCKER" 9000 REM 9010 REM ************************************************* 9020 REM * Portable subroutine to convert a mixed-case * 9030 REM * character string to all upper-case characters * 9040 REM ************************************************* 9050 REM 9060 TEMP$ = '' 9070 FOR I% = 1 TO LEN(TTLINE$) 9080 CH$ = SEG$(TTLINE$,I%,I%) ! Get next char. 9090 IF CH$ < 'a' OR CH$ > 'z' THEN 9110 ! If lower case, 9100 CH$ = CHR$(ASC(CH$) + ASC('A') - ASC('a')) ! make it upper case. 9110 TEMP$ = TEMP$ + CH$ ! Add it on. 9120 NEXT I% \ TTLINE$ = TEMP$ \ RETURN 10000 REM 10010 REM *** ERROR HANDLER *** 10020 REM 10030 IF ERL = 900 OR ERL = 980 OR ERL = 3130 THEN RESUME 10040 PRINT ERT$(ERR);' at line';ERL \ RESUME 32767 32767 END 100 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Poker ! ! Written by Grahame Plaisted ! ! 30-July-1986 ! ! version 2.0 1-August-1986 ! ! version 3.0 4-August-1986 ! ! version 4.0 8-August-1986 ! ! Sort routine courtesy of ! ! Cagey Goguen ! ! version 4.1 12-August-1986 ! ! version 4.2 18-August-1986 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 110 GOSUB 130 \! Run setup routine PRINT HOME$;CLR$; \! Clear screen GOSUB 300 \! Display awards GOSUB 280 \! Display cards GOSUB 230 \! Display avail credits 120 GOSUB 290 \! Assign and display values GOSUB 270 \! Display Discard letters HAND_COMPLETE = 0 GOSUB 420 \! Ask for discards IF EXT = 1 THEN GOSUB 690 \! If exit then exit GOTO 850 END IF GOSUB 480 IF DISCARD$ <> "*" \! Redisplay discards GOSUB 530 \! Check for win HAND_COMPLETE = 1 GOTO 120 IF CREDITS > 0 GOSUB 670 GOTO 850 !!!!!!!!! ! Setup ! !!!!!!!!! 130 RANDOMIZE \! Randomize SHUFFLE = 1 \! Shuffle cards CREDITS = 4 \! Start number of credits ESC$ = CHR$(27) \! Escape CSI$ = ESC$ + "[" \! Control Sequence Inducer BELL$ = CHR$(7)+ CHR$(7)+ CHR$(7)\! Bell (3) BLK$ = CSI$ + "5m" \! Blink REV$ = CSI$ + "7m" \! Reverse (Negative) image HI$ = CSI$ + "1m" \! Hi-intensity OFF$ = CSI$ + "0m" \! All attributes off G_IN$ = ESC$ + "(0" \! Graphics mode G_OUT$ = ESC$ + "(B" \! Exit graphics mode CLR$ = CSI$ + "2J" \! Clear screen w/o changing cursor pos HOME$ = CSI$ + "H" \! Home cursor UP$ = CSI$ + "A" \! Cursor up DOWN$ = CSI$ + "B" \! Cursor down FWD$ = CSI$ + "C" \! Cursor forward BCK$ = CSI$ + "D" \! Cursor backward LARGE_TOP$ = ESC$ + "#3" \! Large top LARGE_BOT$ = ESC$ + "#4" \! Large bottom LARGE$ = LARGE_TOP$ + DOWN$ \! Large character LARGE$ = LARGE$ + LARGE_BOT$ + UP$ NORM$ = ESC$ + "#5" NXT$ = NXT$ + BCK$ FOR X = 1 TO 12 \! Setup nEXT line NXT$ = NXT$ + DOWN$ TOP$ = "lqqqqqqqqqqk" + NXT$ \! Top line of card MDL$ = "x x" + NXT$ \! Middle line of card MIDL$ = MIDL$ + MDL$ FOR X = 1 TO 6 \! Middle lines of card BOT$ = "mqqqqqqqqqqj" \! CARD$ = G_IN$ + TOP$ + MIDL$ \!\ Enter graphics mode, put pieces CARD$ = CARD$ + BOT$ + G_OUT$ \!/ together and exit graphics mode NXT$ = "" NXT$ = NXT$ + BCK$ FOR X = 1 TO 8 \! Setup nEXT line NXT$ = NXT$ + DOWN$ TOP$ = "lqqqqqqk" + NXT$ \! Top line of box MDL$ = "x x" + NXT$ \! Middle line of box MIDL$ = "" MIDL$ = MIDL$ + MDL$ FOR X = 1 TO 3 \! Middle lines of box BOT$ = "mqqqqqqj" \! BOX$ = G_IN$ + TOP$ + MIDL$ \!\ Enter graphics mode, put pieces BOX$ = BOX$ + BOT$ + G_OUT$ \!/ together and exit graphics mode DIM SUIT$(4) SUIT$(1) = "Spades " SUIT$(2) = "Diamonds" SUIT$(3) = "Clubs " SUIT$(4) = "Hearts " NXT$ = "" \! Reinitialize NXT$ = NXT$ + BCK$ FOR X = 1 TO 7 \! Setup nEXT line for suit NXT$ = NXT$ + DOWN$ DIM FACE$(13) ! PICT$ = " A " + NXT$ PICT$ = PICT$ + " A A " + NXT$ PICT$ = PICT$ + " AAAAA " + NXT$ PICT$ = PICT$ + " A A " + NXT$ PICT$ = PICT$ + " A A " + NXT$ FACE$(1) = PICT$ ! PICT$ = " 2222 " + NXT$ PICT$ = PICT$ + " 2 " + NXT$ PICT$ = PICT$ + " 2222 " + NXT$ PICT$ = PICT$ + " 2 " + NXT$ PICT$ = PICT$ + " 22222 " + NXT$ FACE$(2) = PICT$ ! PICT$ = " 3333 " + NXT$ PICT$ = PICT$ + " 3 " + NXT$ PICT$ = PICT$ + " 3333 " + NXT$ PICT$ = PICT$ + " 3 " + NXT$ PICT$ = PICT$ + " 3333 " + NXT$ FACE$(3) = PICT$ ! PICT$ = " 4 4 " + NXT$ PICT$ = PICT$ + " 4 4 " + NXT$ PICT$ = PICT$ + " 44444 " + NXT$ PICT$ = PICT$ + " 4 " + NXT$ PICT$ = PICT$ + " 4 " + NXT$ FACE$(4) = PICT$ ! PICT$ = " 55555 " + NXT$ PICT$ = PICT$ + " 5 " + NXT$ PICT$ = PICT$ + " 5555 " + NXT$ PICT$ = PICT$ + " 5 " + NXT$ PICT$ = PICT$ + " 5555 " + NXT$ FACE$(5) = PICT$ ! PICT$ = " 6 " + NXT$ PICT$ = PICT$ + " 6 " + NXT$ PICT$ = PICT$ + " 6666 " + NXT$ PICT$ = PICT$ + " 6 6 " + NXT$ PICT$ = PICT$ + " 666 " + NXT$ FACE$(6) = PICT$ ! PICT$ = " 77777 " + NXT$ PICT$ = PICT$ + " 7 " + NXT$ PICT$ = PICT$ + " 7 " + NXT$ PICT$ = PICT$ + " 7 " + NXT$ PICT$ = PICT$ + " 7 " + NXT$ FACE$(7) = PICT$ ! PICT$ = " 888 " + NXT$ PICT$ = PICT$ + " 8 8 " + NXT$ PICT$ = PICT$ + " 888 " + NXT$ PICT$ = PICT$ + " 8 8 " + NXT$ PICT$ = PICT$ + " 888 " + NXT$ FACE$(8) = PICT$ ! PICT$ = " 999 " + NXT$ PICT$ = PICT$ + " 9 9 " + NXT$ PICT$ = PICT$ + " 9999 " + NXT$ PICT$ = PICT$ + " 9 " + NXT$ PICT$ = PICT$ + " 9 " + NXT$ FACE$(9) = PICT$ ! PICT$ = "1 000 " + NXT$ PICT$ = PICT$ + "1 0 0" + NXT$ PICT$ = PICT$ + "1 0 0" + NXT$ PICT$ = PICT$ + "1 0 0" + NXT$ PICT$ = PICT$ + "1 000 " + NXT$ FACE$(10) = PICT$ ! PICT$ = " J " + NXT$ PICT$ = PICT$ + " J " + NXT$ PICT$ = PICT$ + " J " + NXT$ PICT$ = PICT$ + " J J " + NXT$ PICT$ = PICT$ + " JJJJ " + NXT$ FACE$(11) = PICT$ ! PICT$ = " QQQ " + NXT$ PICT$ = PICT$ + " Q Q " + NXT$ PICT$ = PICT$ + " Q Q " + NXT$ PICT$ = PICT$ + " Q Q " + NXT$ PICT$ = PICT$ + " QQ Q " + NXT$ FACE$(12) = PICT$ ! PICT$ = " K K " + NXT$ PICT$ = PICT$ + " K K " + NXT$ PICT$ = PICT$ + " KK " + NXT$ PICT$ = PICT$ + " K K " + NXT$ PICT$ = PICT$ + " K K " + NXT$ FACE$(13) = PICT$ N = 0 DIM DECK_CARD(52),DECK_SUIT(52) DIM XECK_CARD(52),XECK_SUIT(52) FOR X = 1 TO 13 FOR Y = 1 TO 4 N = N + 1 DECK_CARD(N) = X DECK_SUIT(N) = Y XECK_CARD(N) = 0 XECK_SUIT(N) = 0 NEXT Y NEXT X RETURN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Locate card position on screen ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 140 COL$ = STR$(CARD*15-14) \! Convert column pos to string LOCATE$ =CSI$ + "1;" + COL$ +"H" \! Setup card screen pos PRINT LOCATE$; \! Locate screen pos RETURN !!!!!!!!!!!!!!!!!!!!!! ! Get arbitrary card ! !!!!!!!!!!!!!!!!!!!!!! 150 SHUFFLE = 1 IF VAL_CNT >= 42 AND HAND_COMPLETE = 1 GOSUB 700 IF SHUFFLE = 1 VAL_CNT = VAL_CNT + 1 VALX = DECK_CARD(VAL_CNT) ST = DECK_SUIT(VAL_CNT) RETURN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Convert C(CARD) and S(CARD) to equivalent string ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 160 DSPLY$ = FACE$(C(CARD)) + HI$ + SUIT$(S(CARD)) + OFF$ RETURN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Locate string position on screen ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 220 COL$ = STR$(CARD*15-12) \! Convert tEXT column to string LOCATE$ =CSI$ + "2;" + COL$ +"H" \! Setup tEXT screen pos PRINT LOCATE$; \! Locate screen pos RETURN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Display available credits in box ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 230 PRINT CSI$;"22;70H";SPACE$(4-LEN(STR$(CREDITS)));CREDITS; RETURN !!!!!!!!!!!!!!!! ! Assign Cards ! !!!!!!!!!!!!!!!! 240 GOSUB 150 \! Get arbitrary card FLAG = 0 \! Turn duplicate flag off GOTO 260 IF CARD = 1 \! First card? Y-skip test FOR X = 1 TO CARD-1 \!\ GOTO 250 IF C(X)<>VALX \! \ This routine checks GOTO 250 IF S(X)<>ST \! > for duplicate cards FLAG = 1 \ X = CARD-1 \! / that may be issued 250 NEXT X \!/ GOTO 240 IF FLAG=1 \! Duplicate? Y-repeat 260 C(CARD) = VALX \ S(CARD) = ST \! Assign card and suit RETURN !!!!!!!!!!!!!!!!!!!!!!!!!!! ! Display Discard letters ! !!!!!!!!!!!!!!!!!!!!!!!!!!! 270 FOR CARD = 1 TO 5 PRINT CSI$;"10;";STR$(CARD*15-11); PRINT "H";REV$;" ";CARD;" ";OFF$; NEXT CARD RETURN !!!!!!!!!!!!!!!!!!!!!!!!! ! Display cards routine ! !!!!!!!!!!!!!!!!!!!!!!!!! 280 FOR CARD = 1 TO 5 GOSUB 140 PRINT CARD$; NEXT CARD RETURN !!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Assign and display values ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!! 290 GOSUB 700 IF SHUFFLE = 1 FOR CARD = 1 TO 5 \!\ GOSUB 240 \! \ Assign card GOSUB 650 \! / Display card NEXT CARD \!/ RETURN !!!!!!!!!!!!!!!!!!!!!!!!! ! Print awards if a win ! !!!!!!!!!!!!!!!!!!!!!!!!! 300 IF LOCATE > 0 THEN TEST = 1 FOR X = 1 TO 8 TEST = TEST * 2 IF TEST = LOCATE THEN TAG = X X = 7 END IF NEXT X ON TAG GOTO 310,320,330,340,350,360,370,380 END IF PRINT CSI$;"19;69H";REV$;"Credits:";OFF$; PRINT CSI$;"20;69H";BOX$; PRINT CSI$;"19;1H";REV$; PRINT "Points available for scoring: ";OFF$ 310 PRINT CSI$;"20;1H"; GOSUB 400 PRINT "Queens or better ";HI$;" 2";OFF$ GOTO 390 IF LOCATE > 0 320 PRINT CSI$;"21;1H"; GOSUB 400 PRINT "Two pair ";HI$;" 4";OFF$ GOTO 390 IF LOCATE > 0 330 PRINT CSI$;"22;1H"; GOSUB 400 PRINT "Three of a kind ";HI$;" 8";OFF$ GOTO 390 IF LOCATE > 0 340 PRINT CSI$;"23;1H"; GOSUB 400 PRINT "Straight ";HI$;" 16";OFF$ GOTO 390 IF LOCATE > 0 350 PRINT CSI$;"20;23H"; GOSUB 400 PRINT "Full House ";HI$;" 32";OFF$ GOTO 390 IF LOCATE > 0 360 PRINT CSI$;"21;23H"; GOSUB 400 PRINT "Flush ";HI$;" 64";OFF$ GOTO 390 IF LOCATE > 0 370 PRINT CSI$;"22;23H"; GOSUB 400 PRINT "Four of a kind ";HI$;"128";OFF$ GOTO 390 IF LOCATE > 0 380 PRINT CSI$;"23;23H"; GOSUB 400 PRINT "Straight flush ";HI$;"256";OFF$ 390 RETURN !!!!!!!!!!!!!!!!!!! ! Blink flip-flop ! !!!!!!!!!!!!!!!!!!! 400 PRINT BLK$; IF BLINK = 1 PRINT OFF$; IF BLINK = 0 RETURN !!!!!!!!!!!!!!!!!!!!!!!!!! ! Clear middle of screen ! !!!!!!!!!!!!!!!!!!!!!!!!!! 410 PRINT CSI$;"15;1H"; \! Locate data entry portion of screen PRINT CSI$;"2K"; \! Erase line PRINT CSI$;"16;1H"; \! Go to nEXT line PRINT CSI$;"2K"; \! Erase line PRINT CSI$;"15;1H"; \! Locate data entry portion of screen RETURN !!!!!!!!!!!!!!!!!!!! ! Ask for discards ! !!!!!!!!!!!!!!!!!!!! 420 GOSUB 410 \! Clear middle of screen LINPUT "Please enter discards"; DISCARD$ DISCARD$ = TRM$(DISCARD$) \! Trim input LEN_DIS = LEN(DISCARD$) IF LEN_DIS > 0 THEN \! If input rcvd then error check IF DISCARD$ = "EXIT" OR DISCARD$ = "exit" THEN EXT = 1 GOTO 430 END IF IF DISCARD$ = "HELP" OR DISCARD$ = "help" THEN GOSUB 680 GOTO 420 ELSE GOSUB 440 END IF ELSE GOTO 420 \! ELSE repeat input cycle END IF IF ERR_ = 1 THEN \! If error then display err msg GOSUB 470 GOTO 420 END IF 430 RETURN !!!!!!!!!!!!!!!!!!!!!!!!!! ! Check input for errors ! !!!!!!!!!!!!!!!!!!!!!!!!!! 440 VALID$ = "12345*" \! Setup valid input OFFSET = LEN_DIS + 25 ERR_ = 0 \! Clear error flag 450 FLAG = 0 FIN = LEN_DIS FOR X = 1 TO FIN TEST$ = MID$(DISCARD$,X,1) IF TEST$ = " " OR TEST$ = "," THEN GOSUB 460 X = FIN END IF NEXT X GOTO 450 IF FLAG = 1 FOR X = 1 TO LEN_DIS L$ = MID$(DISCARD$,X,1) HIT = 0 FOR Y = 1 TO 6 TEST$ = MID$(VALID$,Y,1) IF L$ = TEST$ THEN HIT = 1 Y = 6 END IF NEXT Y IF HIT = 0 THEN ERR_ = 1 X = LEN_DIS END IF NEXT X IF ERR_ = 0 THEN FOR X = 1 TO LEN_DIS L$ = MID$(DISCARD$,X,1) FOR Y = 1 TO LEN_DIS IF X <> Y THEN L1$ = MID$(DISCARD$,Y,1) IF L$ = L1$ THEN ERR_ = 1 Y = LEN_DIS X = LEN_DIS END IF END IF NEXT Y NEXT X END IF IF ERR_ = 0 THEN FLAG = 0 FOR X = 1 TO LEN_DIS IF MID$(DISCARD$,X,1) = "*" THEN FLAG = 1 X = LEN_DIS END IF NEXT X ERR_ = 1 IF FLAG = 1 AND LEN_DIS > 1 END IF RETURN !!!!!!!!!!!!!!!!! ! Edit DISCARD$ ! !!!!!!!!!!!!!!!!! 460 FLAG =1 LEN_DIS = LEN(DISCARD$) DISCARD$ = SEG$(DISCARD$,X+1,LEN_DIS) IF X = 1 DISCARD$ = SEG$(DISCARD$,1,X-1) + SEG$(DISCARD$,X+1,LEN_DIS) IF X <> 1 RETURN !!!!!!!!!!!!!!!!!!!!!!!!! ! Display error message ! !!!!!!!!!!!!!!!!!!!!!!!!! 470 PRINT CSI$;"15;";STR$(OFFSET);"H";HI$;"Invalid!";OFF$; SLEEP 3 RETURN !!!!!!!!!!!!!!!!!!!!!! ! Redisplay discards ! !!!!!!!!!!!!!!!!!!!!!! 480 FOR Z = 1 TO LEN_DIS TEMP$ = SEG$(DISCARD$,Z,Z) CARD = DECIMAL(TEMP$,1,0) HOLD_CARD(Z) = C(CARD) HOLD_SUIT(Z) = S(CARD) NEXT Z FOR Z = 1 TO LEN_DIS TEMP$ = SEG$(DISCARD$,Z,Z) CARD = DECIMAL(TEMP$,1,0) GOSUB 490 \! \ Assign card GOSUB 650 \! / Display card NEXT Z RETURN !!!!!!!!!!!!!!!! ! Assign Cards ! !!!!!!!!!!!!!!!! 490 GOSUB 150 \! Get arbitrary card FLAG = 0 \! Turn duplicate flag off FOR Y = 1 TO 5 GOTO 500 IF C(Y)<>VALX GOTO 500 IF S(Y)<>ST FLAG = 1 \ Y = 5 500 NEXT Y GOTO 490 IF FLAG = 1 FOR Y = 1 TO LEN_DIS GOTO 510 IF HOLD_CARD(Y) <> VALX GOTO 510 IF HOLD_SUIT(Y) <> ST FLAG = 1 \ Y = LEN_DIS 510 NEXT Y GOTO 490 IF FLAG = 1 C(CARD) = VALX S(CARD) = ST RETURN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Sort cards ! ! This routine courtesy of ! ! Cagey Goguen ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 520 FOR X = 1 TO 4 FOR Y = 1 TO 4 IF C(Y) > C(Y+1) THEN T = C(Y) C(Y) = C(Y+1) C(Y+1) = T T = S(Y) S(Y) = S(Y+1) S(Y+1) = T END IF NEXT Y NEXT X RETURN !!!!!!!!!!!!!!!!! ! Check for Win ! !!!!!!!!!!!!!!!!! 530 GOSUB 520 \! Sort cards GOSUB 540 \! Straight flush GOSUB 550 IF WIN = 0 \! Four of a kind GOSUB 560 IF WIN = 0 \! Flush GOSUB 570 IF WIN = 0 \! Full house GOSUB 580 IF WIN = 0 \! Straight GOSUB 590 IF WIN = 0 \! Three of a kind GOSUB 600 IF WIN = 0 \! Two pair GOSUB 610 IF WIN = 0 \! Queens or better GOSUB 620 IF WIN = 0 \! No winner GOSUB 630 IF WIN > 0 \! Update and clear RETURN !!!!!!!!!!!!!!!!!! ! Straight flush ! !!!!!!!!!!!!!!!!!! 540 WIN = 0 GOSUB 580 \! Straight IF WIN > 0 THEN WIN = 0 GOSUB 560 \! Flush WIN = 256 IF WIN > 0 END IF RETURN !!!!!!!!!!!!!!!!!! ! Four of a kind ! !!!!!!!!!!!!!!!!!! 550 HIT = 0 FOR X = 1 TO 2 IF C(X) = C(X+1) AND & C(X) = C(X+2) AND & C(X) = C(X+3) THEN HIT = 1 END IF X = 2 IF HIT = 1 NEXT X WIN = 128 IF HIT = 1 RETURN !!!!!!!!! ! Flush ! !!!!!!!!! 560 IF S(1) = S(2) AND & S(1) = S(3) AND & S(1) = S(4) AND & S(1) = S(5) THEN WIN = 64 END IF RETURN !!!!!!!!!!!!!! ! Full house ! !!!!!!!!!!!!!! 570 IF (C(1) = C(2) AND & C(1) = C(3) AND & C(4) = C(5)) OR & (C(1) = C(2) AND & C(3) = C(4) AND & C(3) = C(5)) THEN WIN = 32 END IF RETURN !!!!!!!!!!!! ! Straight ! !!!!!!!!!!!! 580 IF (C(1) <> 1 AND & C(1)+1 = C(2) AND & C(1)+2 = C(3) AND & C(1)+3 = C(4) AND & C(1)+4 = C(5)) OR & (C(1) = 1 AND & C(2) = 10 AND C(3) = 11 AND & C(4) = 12 AND C(5) = 13) THEN WIN = 16 END IF RETURN !!!!!!!!!!!!!!!!!!! ! Three of a kind ! !!!!!!!!!!!!!!!!!!! 590 HIT = 0 FOR X = 1 TO 3 IF C(X) = C(X+1) AND & C(X) = C(X+2) THEN HIT = 1 END IF X = 3 IF HIT = 1 NEXT X WIN = 8 IF HIT = 1 RETURN !!!!!!!!!!!! ! Two pair ! !!!!!!!!!!!! 600 HIT = 0 FOR X = 1 TO 4 HIT = HIT + 1 IF C(X) = C(X+1) NEXT X WIN = 4 IF HIT > 1 RETURN !!!!!!!! ! Pair ! !!!!!!!! 610 HIT = 0 HI_HIT = 0 FOR X = 1 TO 4 HIT = 1 IF C(X) = C(X+1) HI_HIT = C(X) X = 4 IF C(X) = C(X+1) NEXT X WIN = 2 IF HIT = 1 AND (HI_HIT > 11 OR HI_HIT = 1) RETURN !!!!!!!!!!!!! ! No winner ! !!!!!!!!!!!!! 620 CREDITS = CREDITS - 1 GOSUB 230 WINNER$ = "NO WINNER" GOSUB 640 GOSUB 660 RETURN !!!!!!!!!! ! Winner ! !!!!!!!!!! 630 CREDITS = CREDITS + WIN LOCATE = WIN BLINK = 1 GOSUB 300 SLEEP 3 GOSUB 230 WINNER$ = "WINNER" GOSUB 640 BLINK = 0 GOSUB 300 GOSUB 660 LOCATE = 0 RETURN !!!!!!!!!!!!!!!!!!!! ! Print (No)winner ! !!!!!!!!!!!!!!!!!!!! 640 GOSUB 410 PRINT LARGE$;WINNER$ PRINT WINNER$ SLEEP 3 GOSUB 410 PRINT CSI$;"15;1H";NORM$; PRINT CSI$;"16;1H";NORM$; RETURN !!!!!!!!!!!!!! ! Print Card ! !!!!!!!!!!!!!! 650 GOSUB 160 \! \ Convert card to display string GOSUB 220 \! / Locate screen position PRINT DSPLY$; \! / Print display string RETURN !!!!!!!!!!!!!!! ! Clear cards ! !!!!!!!!!!!!!!! 660 C(X) = 0 FOR X = 1 TO 5 S(X) = 0 FOR X = 1 TO 5 RETURN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Notify user that all credits expended ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 670 PRINT CLR$;CSI$;"12;1H";LARGE$;BELL$; PRINT CSI$;"12;1H";" YOU HAVE EXPENDED ALL YOUR CREDITS" PRINT " YOU HAVE EXPENDED ALL YOUR CREDITS" PRINT CSI$;"23;1H"; RETURN !!!!!!!!!!!!!!!! ! Help routine ! !!!!!!!!!!!!!!!! 680 GOSUB 410 PRINT "YOU MAY ENTER THE VALUES 1-5, * TO KEEP CARDS," LINPUT "EXIT TO EXIT, OR HELP FOR HELP. (PRESS RETURN)"; A$ RETURN !!!!!!!!!!!!!!!! ! Exit routine ! !!!!!!!!!!!!!!!! 690 PRINT CLR$;CSI$;"12;1H";LARGE$;BELL$; PRINT CSI$;"12;1H";" YOU HAVE ";CREDITS;" CREDITS" PRINT " YOU HAVE ";CREDITS;" CREDITS" PRINT CSI$;"23;1H"; RETURN !!!!!!!!!!!!!!!!!!! ! Shuffle routine ! !!!!!!!!!!!!!!!!!!! 700 SHUFFLE = 0 VAL_CNT = 0 GOSUB 410 PRINT LARGE$;"Shuffling..." PRINT "Shuffling..." FOR X = 1 TO 52 710 N = INT(52*RND+1) GOTO 710 IF DECK_CARD(N) = 0 XECK_CARD(X) = DECK_CARD(N) XECK_SUIT(X) = DECK_SUIT(N) DECK_CARD(N) = 0 DECK_SUIT(N) = 0 NEXT X FOR X = 1 TO 52 DECK_CARD(X) = XECK_CARD(X) DECK_SUIT(X) = XECK_SUIT(X) XECK_CARD(X) = 0 XECK_SUIT(X) = 0 NEXT X GOSUB 410 PRINT CSI$;"15;1H";NORM$; PRINT CSI$;"16;1H";NORM$; RETURN 850 END 80 REM *** REVERSE WRITTEN BY BOB ALBRECHT, PEOPLE'S COMPUTER CO 90 REM *** MODIFIED AND CONVERTED TO BASIC-PLUS BY DAVID AHL 100 PRINT \PRINT "REVERSE -- A GAME OF SKILL"\PRINT 120 RANDOMIZE 130 DIM A(20) 140 REM *** N=NUMBER OF NUMBERS 150 N=9\G=0\T1=0 160 INPUT "DO YOU WANT THE RULES (YES OR NO)";A$ 180 IF A$="NO" THEN 210 190 GOSUB 710 200 REM *** MAKE A RANDOM LIST A(1) TO A(N) 210 A(1)=INT((N-1)*RND)+2 220 FOR K=2 TO N 230 A(K)=INT(N*RND)+1 240 FOR J=1 TO K-1 250 IF A(K)=A(J) THEN 230 260 NEXT J\NEXT K 280 REM *** PRINT ORIGNIAL LIST AND START GAME 290 PRINT \PRINT "HERE WE GO ... THE LIST IS:" 310 T=0 320 GOSUB 610 330 INPUT "HOW MANY SHALL I REVERSE";R 340 IF R=1 THEN PRINT "OOPS! ONE DOESN'T DO ANYTHING. AGAIN..."\GOTO 330 350 IF R=0 THEN 530 360 IF R<=N THEN 390 370 PRINT "OOPS! TOO MANY - I CAN REVERSE AT MOST";N\GOTO 330 390 T=T+1 400 REM *** REVERSE R NUMBERS AND PRINT NEW LIST 410 FOR K=1 TO INT(R/2) 420 Z=A(K) 430 A(K)=A(R-K+1) 440 A(R-K+1)=Z 450 NEXT K 460 GOSUB 610 470 REM *** CHECK FOR A WIN 480 FOR K=1 TO N 490 IF A(K)<>K THEN 330 500 NEXT K 510 PRINT "YOU WON IT IN";T;"MOVES !!!"\PRINT 520 G=G+1\T1=T1+T 530 INPUT "TRY AGAIN (YES OR NO)";A$ 550 IF A$="YES" THEN 210 560 PRINT \ PRINT "YOU PLAYED";G;"GAMES AND REVERSED THE LISTS IN AN" 570 PRINT "AVERAGE OF";T1/G;"MOVES PER GAME. HOPE YOU HAD FUN!"\GOTO 999 600 REM *** SUBROUTINE TO PRINT LIST 610 PRINT \FOR K=1 TO N\PRINT A(K);\NEXT K 650 PRINT \PRINT \RETURN 700 REM *** SUBROUTINE TO PRINT THE RULES 710 PRINT \PRINT "THIS IS THE GAME OF 'REVERSE'. TO WIN, ALL YOU HAVE" 720 PRINT "TO DO IS ARRANGE A LIST OF NUMBERS (1 THROUGH";N;")" 730 PRINT "IN NUMERICAL ORDER FROM LEFT TO RIGHT. TO MOVE, YOU" 740 PRINT "TELL ME HOW MANY NUMBERS (COUNTING FROM THE LEFT) TO" 750 PRINT "REVERSE. FOR EXAMPLE, IF THE CURRENT LIST IS:" 760 PRINT \PRINT "2 3 4 5 1 6 7 8 9" 770 PRINT \PRINT "AND YOU REVERSE 4, THE RESULT WILL BE:" 780 PRINT \PRINT "5 4 3 2 1 6 7 8 9" 790 PRINT \PRINT "NOW, IF YOU REVERSE 5, YOU WIN!" 800 PRINT \PRINT "1 2 3 4 5 6 7 8 9"\PRINT 810 PRINT "NO DOUBT YOU WILL LIKE THIS GAME OF SKILL, BUT" 820 PRINT "IF YOU WANT TO QUIT, REVERSE 0 (ZERO)."\PRINT \RETURN 999 END 1 REM *** WRITTEN BY JIM STORER, LEXINGTON HS 2 REM *** CONVERTED FROM FOCAL TO BASIC BY DAVID AHL, DIGITAL 5 ON ERROR GOTO 1500 10REM LUNAR MODULE PROGRAM "ROCKET" 20 PRINT \PRINT \PRINT "CONTROL CALLING LUNAR MODULE.."\PRINT 35PRINT "YOU MAY SET THE FUEL RATE (K) TO ZERO OR ANY VALUE" 40PRINT "BETWEEN 8 AND 200 LBS PER SECOND. A NEGATIVE FUEL" 50 PRINT "RATE WILL ABORT THE LANDING, UNLESS THE RATE" 55 PRINT "IS -2, IN WHICH CASE THE CURRENT POSITION IS " 57 PRINT "SAVED FOR LATER RECALL UPON RESTART." \ PRINT 60PRINT "YOU HAVE 16000 LBS OF FUEL." 70PRINT "ESTIMATED FREE FALL IMPACT TIME IS 120 SECONDS." 80PRINT "CAPSULE WEIGHT IS 32,500 LBS." 90 PRINT \PRINT "FIRST RADAR CHECK COMING UP..." 100 PRINT "BEGIN LANDING PROCEDURE"\PRINT \PRINT 110PRINT "TIME(SECS)","HEIGHT(MI)","VELOCITY(MPH)","FUEL(LBS)","FUEL RATE" 120 LET L=0\LET A=120\LET V=1\LET M=32500\LET N=16500 170 LET G=.001\LET Z=1.8 210 PRINT INT(L+.5),A,V*3600,M-N,"K"; 220 INPUT K 225 LET T=10 227 IF K <> -2 THEN 230 228 M1=M \ L1=L \ V1=V \ A1=A \ PRINT "SAVED YOUR POSITION" \ GOTO 220 230 IF K<0 GO TO 590 235 IF K=0 GOTO 310 240 IF K<8 THEN 260 250 IF K<=200 GO TO 310 260 PRINT "NOT POSSIBLE",,,,"K"; 270 INPUT K \ GOTO 230 310 IF M-N-.001 <=0 GOTO 410 320 IF T<.001 GOTO 210 330 LET S=T\IF N+S*K<=M GO TO 350 340 LET S=(M-N)/K 350 LET I0=1 \ GOTO 900 360 if I<=0 goto 710 370 IF V<=0 GO TO 380 375 IF J<0 GOTO 810 380 LET I0=1\GOTO 600 410 PRINT "FUEL OUT AT ";L;"SECS." 420 LET S=(-V+SQR(V*V+2*A*G))/G 430 LET V = V+G*S 440 LET L=L+S 510 PRINT "ON THE MOON AT ";L;"SECS." 511 LET W = 3600*V 514 PRINT "IMPACT VELOCITY OF ";W;"M.P.H." 520 PRINT "FUEL LEFT ";M-N;"LBS." 530 IF W>=1 GOTO 550 540 PRINT "PERFECT LANDING! CONGRATULATIONS!!"\ GOTO 590 550 IF W >=10 THEN 560 552 PRINT "VERY GOOD LANDING, NOT PERFECT YET."\GOTO 590 560 IF W >= 25 THEN 570 562 PRINT "A FAIR LANDING, NO CRAFT DAMAGE."\GOTO 590 570 IF W >= 60 THEN 580 572 PRINT "CRAFT DAMAGE -- BETTER LUCK NEXT TIME."\GOTO 590 580 PRINT "SORRY, BUT THERE WERE NO SURVIVORS." 585 PRINT "IN FACT YOU BLASTED A NEW LUNAR CRATER ";W*.277777;" FEET DEEP." 590 PRINT \PRINT \PRINT "TRY AGAIN? (Y,N,RESTART, OR LOW WINDOW)"; 592 INPUT R$\ R$=LEFT(R$,1) 593 IF R$="Y" THEN 90 ELSE IF R$="R" THEN 1200 ELSE IF R$="L" THEN 1100 595 PRINT \ PRINT "CONTROL OUT" \ GOTO 1800 600 LET L=L+S 610 LET T = T-S 620 LET M=M-S*K 630 LET A=I 640 LET V=J 650 IF I0=1 GO TO 310 660 IF I0=3 GO TO 850 710 IF S< .005 GO TO 510 720 LET S= 2*A/(V+SQR(V*V+2*A*(G-Z*K/M))) 730 LET I0=2 \GOTO 900 810 LET W=(1-M*G/(Z*K))/2 820 LET S=M*V/(Z*K*(W+SQR(W*W+V/Z)))+.05 825 LET I0=3 \GOTO 900 830 IF I<=0 THEN 710 840 GOTO 600 850 IF J>=0 THEN 310 860 IF V<=0 GO TO 310 870 GOTO 810 900 LET Q=S*K/M 905 IF Q<=0 THEN 1000 910 LET J=V+G*S+Z*(-Q-(Q^2)/2-(Q^3)/3-(Q^4)/4-(Q^5)/5) 920 LET I=A-G*S*S/2-V*S+Z*S*(Q/2+Q^2/6+Q^3/12+Q^4/20+Q^5/30) 930 IF I0=1 GOTO 360 940 IF I0=2 GOTO 600 950 IF I0=3 GOTO 830 1000 LET J=V+G*S 1010 LET I=A-G*S*S/2-V*S 1020 GOTO 930 1100 LET L=140 1110 LET A=2.382342 1120 LET V=.1257558 1130 LET M=18500 1140 LET N=16500 1150 GOTO 170 1200 M=M1 \ L=L1 \ V=V1 \ A=A1 \ GOTO 210 1500 if err <> 48 then resume 1510 IF ERL=910 THEN RESUME 920 ELSE IF ERL=920 THEN RESUME 930 1520 resume 1800 END 10 PRINT "GAME OF 'ROTATE' BY DAVE AHL. ENJOY !!"\ PRINT 12 INPUT "INSTRUCTIONS (Y OR N)";A$\ PRINT \IF A$="N" THEN 140 15 PRINT "IN THIS GAME THE BOARD IS LAID OUT AS FOLLOWS:" 20 DIM B(16),B$(16)\RANDOMIZE 25 B(I)=I FOR I=1 TO 16 30 PRINT \FOR I=1 TO 13 STEP 4 35 PRINT USING "## ## ## ##",B(I),B(I+1),B(I+2),B(I+3) 40 NEXT I\ PRINT 45 PRINT "BOARD POSITIONS ARE OCCUPIED RANDOMLY BY THE LETTERS A TO P." 50 PRINT "THE OBJECT OF THE GAME IS TO ORDER THE LETTERS BY ROTATING" 55 PRINT "ANY FOUR LETTERS CLOCKWISE ONE POSITION. YOU SPECIFY THE" 60 PRINT "UPPER LEFT POSITION OF THE FOUR YOU WISH TO ROTATE, I.E.," 65 PRINT "VALID MOVES ARE 1, 2, 3, 5, 6, 7, 9, 10, AND 11." 70 PRINT "CONSEQUENTLY, IF THE BOARD LOOKED LIKE:" 75 B$(I)=CHR$(I+64) FOR I=1 TO 16\B$(2)="C"\B$(3)="G" 80 B$(6)="B"\B$(7)="F"\GOSUB 400 85 PRINT "AND YOU ROTATED POSITION 2, THE BOARD WOULD BE:" 90 B$(I)=CHR$(I+64) FOR I=2 TO 7\GOSUB 400 95 PRINT "AND YOU WOULD WIN !"\ PRINT 100 PRINT "YOU ALSO GET ONE 'SPECIAL' MOVE PER GAME WHICH YOU MAY OR" 105 PRINT "MAY NOT NEED. THE SPECIAL MOVE ALLOWS YOU TO EXCHANGE" 110 PRINT "ANY TWO ADJACENT LETTERS IN A ROW. TO MAKE THIS MOVE," 115 PRINT "INPUT A '-1' AS YOUR MOVE AND YOU WILL BE ASKED FOR THE" 120 PRINT "POSITIONS OF THE TWO LETTERS TO EXCHANGE. REMEMBER -- " 125 PRINT "ONLY ONE SPECIAL MOVE PER GAME!"\ PRINT 130 PRINT "TO GIVE UP AT ANY TIME, TYPE A '0'."\ PRINT \ PRINT "GOOD LUCK !"\ PRINT 140 B$(I)="0" FOR I=1 TO 16 150 FOR I=1 TO 16 160 T$=CHR$(INT(16*RND+65)) 165 FOR J=1 TO I 170 IF B$(J)=T$ THEN 160 175 NEXT J 180 B$(I)=T$\NEXT I 190 M=0\S=0\ PRINT "HERE'S THE STARTING BOARD..."\GOSUB 400 200 INPUT "POSITION TO ROTATE";I\IF I=0 THEN PRINT \ PRINT \GOTO 140 205 IF I=-1 THEN 510 210 IF I=4 OR I=8 OR I>12 THEN PRINT "ILLEGAL. AGAIN..."\GOTO 200 220 M=M+1\T$=B$(I) 230 B$(I)=B$(I+4)\B$(I+4)=B$(I+5)\B$(I+5)=B$(I+1)\B$(I+1)=T$ 240 GOSUB 400\REM *** PRINT BOARD 300 REM *** DO WE HAVE A WINNER? 305 FOR I=1 TO 16 310 IF CHR$(I+64)<>B$(I) THEN 200 315 NEXT I 320 PRINT \ PRINT "YOU ORDERED THE BOARD IN";M;"MOVES."\M1=M1+M\G=G+1 325 PRINT CHR$(7); FOR I=1 TO 15 330 PRINT \INPUT "PLAY AGAIN (Y OR N)";A$\IF A$="Y" THEN 140 340 PRINT \ PRINT "YOU PLAYED";G;"GAMES AND ORDERED THE BOARD IN AN AVERAGE" 350 PRINT "OF";M1/G;"MOVES PER GAME."\ PRINT \GOTO 999 390 REM *** PRINT BOARD SUBROUTINE 400 PRINT \FOR I=1 TO 13 STEP 4 410 PRINT B$(I);" ";B$(I+1);" ";B$(I+2);" ";B$(I+3) 420 NEXT I\ PRINT \RETURN 500 REM *** SPECIAL MOVE SUBROUTINE 510 INPUT "EXCHANGE WHICH TWO POSITIONS";X,Y 520 IF X<>Y+1 AND X<>Y-1 THEN PRINT "ILLEGAL. AGAIN..."\GOTO 510 530 S=S+1\IF S>1 THEN PRINT "ONLY ONE SPECIAL MOVE PER GAME."\GOTO 200 540 T$=B$(X)\B$(X)=B$(Y)\B$(Y)=T$\GOTO 240 999 END 100 R=1\R1=57.296\RANDOMIZE 110 PRINT "YOU ARE THE WEAPONS OFFICER ON THE STAR SHIP ENTERPRISE" 120 PRINT "AND THIS IS A TEST TO SEE HOW ACCURATE A SHOT YOU" 130 PRINT "ARE IN A THREE-DIMENSIONAL RANGE. YOU WILL BE TOLD" 140 PRINT "THE RADIAN OFFSET FOR THE X AND Z AXES, THE LOCATION" 150 PRINT "OF THE TARGET IN THREE-DIMENSIONAL RECTANGULAR COORDINATES," 160 PRINT "THE APPROXIMATE NUMBER OF DEGREES FROM THE X AND Z" 170 PRINT "AXES, AND THE APPROXIMATE DISTANCE TO THE TARGET." 180 PRINT "YOU WILL THEN PROCEED TO SHOOT AT THE TARGET UNTIL IT IS" 190 PRINT "DESTROYED!"\PRINT \PRINT "GOOD LUCK!!"\PRINT \PRINT 220 A=RND*2* PI \B=RND*2* PI \Q=INT(A*R1)\W=INT(B*R1) 260 PRINT "RADIANS FROM X AXIS =";A;" FROM Z AXIS =";B 270 PRINT "APPROX DEGREES FROM X AXIS =";Q;" FROM Z AXIS =";W 280 P=100000*RND+RND\X=SIN(B)*COS(A)*P\Y=SIN(B)*SIN(A)*P\Z=COS(B)*P 340 PRINT "TARGET SIGHTED: APPROX COORDINATES X=";X;" Y=";Y;" Z=";Z 345 R=R+1\IF R>5 THEN 390 350 ON R GOTO 355,360,365,370,375 355 P3=INT(P*.05)*20\GOTO 390 360 P3=INT(P*.1)*10\GOTO 390 365 P3=INT(P*.5)*2\GOTO 390 370 P3=INT(P)\GOTO 390 375 P3=P 390 PRINT " ESTIMATED DISTANCE=";P3 400 INPUT "INPUT ANGLE DEVIATION FROM X, DEVIATION FROM Z, DISTANCE";A1,B1,P2 410 PRINT \IF P2<20 THEN PRINT "YOU BLEW YOURSELF UP!!"\GOTO 580 420 A1=A1/R1\B1=B1/R1\PRINT "RADIANS FROM X AXIS =";A1;" FROM Z AXIS =";B1 480 X1=P2*SIN(B1)*COS(A1)\Y1=P2*SIN(B1)*SIN(A1)\Z1=P2*COS(B1) 510 D=((X1-X)^2+(Y1-Y)^2+(Z1-Z)^2)^(1/2) 520 IF D>20 THEN 670 530 PRINT \PRINT " * * * HIT * * * TARGET IS NON-FUNCTIONAL"\PRINT 550 PRINT "DISTANCE OF EXPLOSION FROM TARGET WAS";D;"KILOMETERS" 570 PRINT \PRINT "MISSION ACCOMPLISHED IN";R;"SHOTS." 580 R=0\ FOR I=1 TO 5\ PRINT \NEXT I 590 INPUT "DO YOU WAND TO TRY AGAIN";A$\ A$=LEFT(A$,1%) 600 IF A$="N" GOTO 999 610 PRINT "NEXT TARGET ...."\ PRINT \ GOTO 220 670 X2=X1-X\Y2=Y1-Y\Z2=Z1-Z\IF X2<0 THEN 730 710 PRINT "SHOT IN FRONT OF TARGET";X2;"KILOMETERS."\GOTO 740 730 PRINT "SHOT BEHIND TARGET";-X2;"KILOMETERS." 740 IF Y2<0 THEN 770 750 PRINT "SHOT TO LEFT OF TARGET";Y2;"KILOMETERS."\GOTO 780 770 PRINT "SHOT TO RIGHT OF TARGET";-Y2;"KILOMETERS." 780 IF Z2<0 THEN 810 790 PRINT "SHOT ABOVE TARGET";Z2;"KILOMETERS." \ GOTO 820 810 PRINT "SHOT BELOW TARGET";-Z2;"KILOMETERS." 820 PRINT "APPROX POSITION OF EXPLOSION: X=";X1;" Y=";Y1;" Z=";Z1 830 PRINT " DISTANCE FROM TARGET =";D\PRINT \PRINT \PRINT \GOTO 345 999 END 7000 !----------------------------------------------------------------------- ! ! MAKE SURE WE HAVE A UNIQUE SYSTEM NUMBER ! !----------------------------------------------------------------------- NEW_OWNER$ = "9NB" LINE$ = "SYSLABEL" SYS.SYS.LABEL$ = "7XY 01234" SELECT LINE$ CASE "SYSLABEL" FIND_SPACE% = POS(SYS.SYS.LABEL$," ",1%) OLD_SYS_NUMBER$ = SEG$(SYS.SYS.LABEL$,5%,9%) OLD.SYS.LABEL$ = SYS.SYS.LABEL$ CASE "KLABEL" OLD.SYS.LABEL$ = K.SYS.LABEL$ FIND_SPACE% = POS(K.SYS.LABEL$," ",1%) OLD_SYS_NUMBER$ = SEG$(K.SYS.LABEL$,5%,9%) END SELECT SELECT FIND_SPACE% CASE 1% MOVE_CC$ = EDIT$(NEW_OWNER$,2%) NEW_SYSLABEL$ = " " + MOVE_CC$ + OLD_SYS_NUMBER$ CASE 4% MOVE_CC$ = EDIT$(NEW_OWNER$,2%) NEW_SYSLABEL$ = MOVE_CC$ + " " + OLD_SYS_NUMBER$ END SELECT PRINT NEW_SYSLABEL$ A$ = "1" 7001 !-------------------------------------------------------------------- ON ERROR GOTO 7090 ! ERROR HANDLER FOR THIS ROUTINE 7002 SELECT FIND_SPACE% CASE 1% MOVE_CC$ = EDIT$(NEW_OWNER$,2%) ANTAL$ = SUM$(ANTAL$,A$) LENGHT% = LEN(ANTAL$) B$ = "#####" ALPHA% = 5% - LENGHT% BETA$ = STRING$(ALPHA%,48%) GAMMA$ = BETA$ + ANTAL$ NEW_SYS_NUMBER$ = GAMMA$ NEW_SYSLABEL$ = " " + MOVE_CC$ + NEW_SYS_NUMBER$ CASE 4% MOVE_CC$ = EDIT$(NEW_OWNER$,2%) ANTAL$ = SUM$(ANTAL$,A$) LENGHT% = LEN(ANTAL$) B$ = "#####" ALPHA% = 5% - LENGHT% BETA$ = STRING$(ALPHA%,48%) GAMMA$ = BETA$ + ANTAL$ NEW_SYS_NUMBER$ = GAMMA$ NEW_SYSLABEL$ = MOVE_CC$ + " " + NEW_SYS_NUMBER$ END SELECT 7003 PRINT NEW_SYSLABEL$ GOTO 7002 7090 !-------------------------------------------------------------------- ON ERROR GOTO 0 1 REM ARKABLE PROGRAM WRITTEN BY V. NAHIGIAN AND DAVE AHL 5 PRINT "TENNIS MATCH" 10 PRINT 21 PRINT "THERE ARE SEVERAL OPTIONS AVAILABLE TO YOU AS TO POSITION," 22 PRINT "PLACEMENT OF SHOT, AND SPEED (TYPE) OF SHOT. THE KEY THAT" 23 PRINT "YOU WILL USE IS..." 24 PRINT " POSITION (PLACEMENT, TOO): L. BACKCOURT(1); R. BACK-" 25 PRINT "COURT(2); L. FORECOURT(3); R. FORECOURT(4)." 26 PRINT " SPEED (TYPE) OF SHOT: FAST-SLAM(S); SLOW-LOB(L)." 27 PRINT " BACKHANDS AND FOREHANDS WILL MERELY BE ASSUMED AS YOU" 28 PRINT "SHOOT FROM A CERTAIN SECTION OF THE COURT." 29 PRINT " ON SERVES, YOU CANNOT HAVE PLACEMENT OPTIONS, BUT YOU" 30 PRINT "WILL BE ABLE TO ALTER THE SPEED OF IT. BY THE WAY, YOU" 31 PRINT "WILL BE ALLOWED TO SERVE FIRST IN ALL GAMES." 32 PRINT TAB(10);"ARE YOU READY...HERE WE GO!!!" 35 LET Y=0 36 LET Z=0 37 RANDOM 38 PRINT 39 PRINT 40 PRINT " SERVE! TYPE"; 41 INPUT A$\IF A$<>"L" AND A$<>"S" THEN PRINT "'L' OR 'S'"\GOTO 40 42 LET A=100*RND ! (B) 43 IF A$="L" THEN 52 44 LET C=6 45 LET D=51 46 IF A"L" AND B$<>"S" THEN PRINT "'L' OR 'S'"\GOTO 55 57 LET E=100*RND ! (F) 58 IF B$="L" THEN 67 59 LET G=5 60 LET H=41 61 IF E6 THEN 74 72 PRINT TAB(10);"SERVE IS GOOD...ACE!" 73 GO TO 128 74 LET K=100*RND ! (M) 75 IF A$="L" THEN 81 76 IF B$="L" THEN 81 77 LET N=61 78 IF K=4 AND Y>Z+1 THEN 137 135 IF Z>=4 AND Z>Y+1 THEN 139 136 GO TO 38 137 LET Y1=Y1+1 138 GO TO 140 139 LET Z1=Z1+1 140 PRINT "--------------- GAME OVER ---------------" 141 PRINT TAB(15);"SCORE-GAMES YOU...ME" 142 PRINT TAB(32);Y1;" ";Z1 143 IF Y1>=6 AND Y1>Z1+1 THEN 146 144 IF Z1>=6 AND Z1>Y1+1 THEN 149 145 GO TO 35 146 PRINT 147 PRINT "*****CONGRATULATIONS...YOU WON*****" 148 GO TO 151 149 PRINT 150 PRINT "*****AS PREDICTED, THE COMPUTER IS AGAIN TRIUMPHANT*****" 151 PRINT 152 PRINT " I'D LIKE TO PLAY YOU AGAIN SOMETIME, BUT RIGHT NOW, I" 153 PRINT "HAVE TO REST. BYE!!!" 154 PRINT \GOTO 500 200 IF Y>=2 AND Z>=2 THEN 300 210 IF Y=4 OR Z=4 THEN S$="GAME"\GOTO 400 220 IF Y=0 THEN Y$="LOVE - " 230 IF Y=1 THEN Y$="15 - " 240 IF Y=2 THEN Y$="30 - " 245 IF Y=3 THEN Y$="40 - " 250 IF Z=0 THEN Z$="LOVE" 255 IF Z=1 THEN Z$="15" 260 IF Z=2 THEN Z$="30" 265 IF Z=3 THEN Z$="40" 270 S$=Y$+Z$\GOTO 400 300 IF Y=Z THEN S$="DUCE"\GOTO 400 310 IF Y=Z+1 THEN S$="ADD IN"\GOTO 400 320 IF Y=Z-1 THEN S$="ADD OUT"\GOTO 400 330 IF Y=Z+2 OR Z=Y+2 THEN S$="GAME" 400 RETURN 500 END 10 !------------------------------------------------------------------- ! TEST PROGRAM TO SE WHAT WE CAN FIND IN CNTRCT.DAT !-------------------------------------------------------------------- 15 ON ERROR GOTO 500 20 !------------------------ OPEN CNTRCT.DAT -------------------------- %INCLUDE "MAPCNT.INC" %INCLUDE "OPEN_CNT.INC" %INCLUDE "MAPOPT.INC" %INCLUDE "OPEN_OPT.INC" 30 !------------------------ DEFINITIONS ----------------------------- ESC$ = CHR$(27) MAP (KONTRACTKEY) CC$ = 4% , NUMBER$ = 10% , VARIANT$ = 1%, FILla$ = 3% 40 !------------------------ START OF PROGRAM -------------------------- PRINT ESC$ + "[2J" ; ESC$ + "[H" PRINT "VILKET KONTRAKT VILL DU TITTA P]" INPUT "COSTCENTER" ; CC$ INPUT "KONTRAKTSNUMMER" ; NUMBER$ INPUT "VARIANT" ; VARIANT$ FILLA$ = " " 50 !------------------------ START LOOKING ------------------------------- search.key$ = cc$ + number$ + variant$ + filla$ FIND #2, KEY #0 EQ SEARCH.KEY$ 60 !------------------------ GET RECORD ---------------------------------- K.NUMMER$ = CC$ + NUMBER$ K.NUM$ = K.NUMMER$ 70 WHILE K.NUMMER$ = K.NUM$ GET #2 IF K.NUMMER$ <> K.NUM$ THEN GOTO 1000 END IF SELECT K.RCD.TYPE$ CASE "0" PRINT "KONTRAKT RECORD" PRINT "KONTRAKT " ;K.KEY$ , "RECORDTYPE " ; K.RCD.TYPE$ PRINT "SOLDTOCC " ;K.CC.SOLD$;K.SOLD.TO.NUM$, PRINT "BILLTOCC " ;K.CC.BILL$;K.BILL.TO.NUM$ CASE "2" PRINT "" PRINT "RIDER RECORD" ,"RIDER RECORD : " ; K.RISER.NUM$ PRINT "KONTRAKTSNUMMER" ; K.NUM$ ; K.VARIANT$ , "RIDER NO " ; K.RISER.NUM$ GOSUB 150 CASE "3" PRINT "" PRINT "SYSTEM LABEL RECORD" PRINT "K-NUMMER " ; K.NUM$ ; K.VARIANT$ , "RIDER NO " ; K.RIDER.NUM$ GOSUB 150 CASE "4" PRINT "" PRINT "CHANGE ADD RECORD " PRINT "K-NUMMER " ; K.NUM$ ; K.VARIANT$ , "RIDER NO " ; K.RIDER.NUM$ GOSUB 150 END SELECT NEXT goto 1000 150 !------------------------------------------------------------------ FIND #4, KEY #0% EQ K.SYS.LABEL$ PRINT "LINE NO";"CONTRACT NUMBER" , "OPTION TYPE" , "SER CC" , "UNIT" , PRINT "PR LINE" PRINT "---------------------------------------------------------------------------" 151 GET #4% IF OPT.SYS.LABEL$ <> K.SYS.LABEL$ THEN RETURN END IF PRINT OPT.LINUM$ ; " " ; OPT.K.NUM$ , OPT.OPT.TYPE$ ,OPT.CC$,OPT.UNIT$, PRINT OPT.PL$ 152 GOTO 151 500 !------------------------------------------------------------------- select erl case 20 print "filen g]r inte att \ppna" goto 1000 CASE 50 PRINT "KONTRAKTET FINNS INTE P] FILEN" SLEEP 3% RESUME 40 case else on error goto 0 end select 1000 !--------------------------- the end ----------------------------- close #2 end 10 !------------------------------------------------------------------- ! TEST PROGRAM TO SE WHAT WE CAN FIND IN CNTRCT.DAT !-------------------------------------------------------------------- 15 ON ERROR GOTO 500 20 !------------------------ OPEN CNTRCT.DAT -------------------------- %INCLUDE "MAPCNT.INC" 30 !------------------------ DEFINITIONS ----------------------------- ESC$ = CHR$(27) MAP (KONTRACTKEY) CC$ = 4% , NUMBER$ = 10% , VARIANT$ = 1%, FILla$ = 3% 40 !------------------------ START OF PROGRAM -------------------------- PRINT ESC$ + "[2J" ; ESC$ + "[H" PRINT "VILKET KONTRAKT VILL DU TITTA P]" INPUT "COSTCENTER" ; CC$ INPUT "KONTRAKTSNUMMER" ; NUMBER$ INPUT "VARIANT" ; VARIANT$ FILLA$ = " " 50 !------------------------ START LOOKING ------------------------------- search.key$ = cc$ + number$ + variant$ + filla$ FIND #2, KEY #0 EQ SEARCH.KEY$ 60 !------------------------ GET RECORD ---------------------------------- GET #2 PRINT "KONTRAKT RECORD" PRINT "KONTRAKT " ;K.KEY$ , "SYS LABEL " ; K.SYS$LABEL$ , "RECORDTYPE " ; K.RCD.TYPE$ PRINT "START DATE " ; K.START.DATE$, "SOLD DATE " ; K.SOLD.DATE$ , "END DATE " ; K.END.DATE$ PRINT "AUDIT % " ; K.AU.PER% , "PREPAYMENT % " ; K.PREPAY.PER% ; PRINT ,"K-STATUS " ; K.STATUS$ ; PRINT ,"DURATION " ; K.DURATION$ PRINT "REV DATE " ; K.REVIEW.DATE$ , "ORIG START DATE " ; K.ORIG.START.DATE$ PRINT "KUNDNAMN " ; K.CUST.NAME$ , "KUNDTELEFON " ; K.CUST.PHONE$ PRINT "POST " ; K.CUST.PO..NUM$ , "PO ST DA " ; K.PO.START.DATE$ ; PRINT ,"PO LAPSE DATE " ; K.PO.LAPSE.DATE$ ; "MANUM " ; K.MA.NUM$ PRINT "APPL GR. " ; K.APPL.GROUP$ , "CURR CODE" ; K.INV.CURR.CODE$ ; PRINT ,"FREKV " ; K.BILLING.FREQ$ PRINT "CURR RIDER TOTAL " ; K.CURR.RIDER.TOTAL , PRINT "FUTU RIDER TOTAL " ; K.FUTURE.RIDER.TOTAL , PRINT "POT RIDER TOTAL " ; K.POTENTIAL.RIDER.TOTAL PRINT " CURR K PRICE " ; K.CURR.K.PRICE, PRINT " FUTU K PRICE " ; K.FUTURE.K.PRICE , PRINT " POT RIDER PRICE " ; K.POTENTIAL.K.PRICE PRINT "COMMENTS" ; K.K.COMMENTS$ PRINT "KONTRAKT-ANV" ; K.IN.USE.FLAG$ PRINT "SOLDTOCC " ;K.CC.SOLD$;K.SOLD.TO.NUM$, PRINT "BILLTOCC " ;K.CC.BILL$;K.BILL.TO.NUM$ goto 1000 500 !------------------------------------------------------------------- select erl case 20 print "filen g]r inte att \ppna" goto 1000 CASE 50 PRINT "KONTRAKTET FINNS INTE P] FILEN" SLEEP 3% RESUME 40 case else on error goto 0 end select 1000 !--------------------------- the end ----------------------------- close #2 end 1 DATA 2,3,4,9,1,5,8,7,6 2 DATA 2,3,4,9,1,5,8,7,6,2,9,8,3,1,7 3 DATA 4,5,6,2,1,6,4,1,8 4 DATA 0,1,-1,1,-1,1,-1,1,-1 5 DIM A(9) 6 DIM B(9) 7 DIM C(24) 8 DIM D(24) 9 DIM F(9) 10 FOR I=1 TO 9 11 READ A(I) 12 NEXT I 13 FOR I=1 TO 24 14 READ C(I) 15 NEXT I 16 FOR I=1 TO 9 17 READ F(I) 18 NEXT I 19 PRINT "TIC-TAC-TOE" 20 PRINT 21 PRINT "THE MOVE POSITIONS ARE:" 22 PRINT 23 PRINT "1 2 3" 24 PRINT "4 5 6" 25 PRINT "7 8 9" 26 GOSUB 133 27 GOSUB 133 32 LET E=0 33 LET G=2 34 LET K=0 35 FOR I=1 TO 9 36 LET B(I)=0 37 NEXT I 38 FOR I=1 TO 24 39 LET D(I)=0 40 NEXT I 41 PRINT 42 PRINT 43 PRINT "--BEGIN GAME--" 44 PRINT "YOU WILL BE 'X', I WILL BE 'O'" 47 PRINT "TYPE 0 IF YOU WANT ME TO GO FIRST"; 48 INPUT I 49 IF I=0 THEN 65 50 LET L=-1 51 PRINT "YOUR MOVE"; 52 INPUT I 53 PRINT 54 PRINT 55 LET H=INT(ABS(I)) 56 IF H<>I THEN 50 57 IF H < 1 THEN 50 58 IF H>9 THEN 50 59 LET H=A(H) 60 IF B(H) <> 0 THEN 50 61 IF K=1 THEN 64 62 LET G=F(H) 63 LET K=1 64 GOSUB 111 65 LET L=1 66 FOR I=1 TO 22 STEP 3 67 IF D(I) + D(I+1) + D(I+2) = -3 THEN 92 68 NEXT I 69 FOR I=1 TO 22 STEP 3 70 IF D(I) + D(I+1) + D(I+2) = 2 THEN 90 71 NEXT I 72 FOR I=1 TO 22 STEP 3 73 IF D(I) + D(I+1) + D(I+2) = -2 THEN 106 74 NEXT I 75 IF E=1 THEN 77 76 IF G = -1 THEN 78 77 IF B(1)=0 THEN 100 78 IF G <> 0 THEN 82 79 FOR I=2 TO 8 STEP 2 80 IF B(I)=0 THEN 101 81 NEXT I 82 IF H=8 THEN 86 83 FOR I=H+1 TO 8 84 IF B(I)=0 THEN 101 85 NEXT I 86 FOR I=2 TO 9 87 IF B(I)=0 THEN 101 88 NEXT I 89 GO TO 98 90 PRINT "I WIN" 91 GOTO 900 92 PRINT "YOU ARE NOT ALLOWED TO WIN" 93 FOR I=1 TO 9 94 LET B(I)=1 95 NEXT I 96 GOSUB 117 97 GOTO 900 98 PRINT "DRAW" 99 GOTO 900 100 LET I=1 101 LET H=I 102 GOSUB 111 103 LET E=1 104 GOSUB 117 105 GO TO 50 106 FOR J=I TO I+2 107 IF D(J)=0 THEN 109 108 NEXT J 109 LET I=C(J) 110 GO TO 101 111 LET B(H)=L 112 FOR M=1 TO 24 113 IF C(M) <> H THEN 115 114 LET D(M)=L 115 NEXT M 116 RETURN 117 FOR N=1 TO 9 118 IF B(N)=0 THEN 200 119 NEXT N 120 IF N<100 THEN 98 121 FOR N=1 TO 9 STEP 3 122 FOR O= 0 TO 2 123 IF B(A(O+N))=0 THEN 127 124 IF B(A(O+N))=1 THEN 129 125 PRINT "X "; 126 GO TO 130 127 PRINT "- "; 128 GO TO 130 129 PRINT "O "; 130 NEXT O 131 PRINT 132 NEXT N 133 PRINT 136 RETURN 137 STOP 200 LET N=1000 210 GOTO 119 900 GOTO 910 910 PRINT "TRY AGAIN (IF SO TYPE 0)"; 920 INPUT I 930 IF I<>0 THEN 999 940 GOTO 27 999 END 90 PRINT 100 REM *** INITIALIZE 110 DIM T(7,3) 120 E=0 130 FOR D=1 TO 7 140 FOR N=1 TO 3 150 T(D,N)=0 160 NEXT N 170 NEXT D 180 PRINT "TOWERS OF HANOI PUZZLE"\PRINT 200 PRINT "YOU MUST TRANSFER THE DISKS FROM THE LEFT TO THE RIGHT" 205 PRINT "TOWER, ONE AT A TIME, NEVER PUTTING A LARGER ON A" 210 PRINT "SMALLER DISK."\PRINT 215 PRINT "HOW MANY DISKS DO YOU WANT TO MOVE (7 IS MAX)"; 220 INPUT S\PRINT 230 M=0 240 FOR Q=1 TO 7 250 IF Q=S THEN 350 260 NEXT Q 270 E=E+1 280 IF E>2 THEN 310 290 PRINT "SORRY, BUT I CAN'T DO THAT JOB FOR YOU."\GOTO 215 310 PRINT "ALRIGHT, WISE GUY, IF YOU CAN'T PLAY THE GAME RIGHT, I'LL" 320 PRINT "JUST TAKE MY PUZZLE AND GO HOME. SO LONG."\STOP 340 REM *** STORE DISKS FROM SMALLEST TO LARGEST 350 PRINT "IN THIS PROGRAM, WE SHALL REFER TO DISKS BY A NUMERICAL CODE." 355 PRINT "3 WILL REPRESENT THE SMALLEST DISK, 5 THE NEXT SIZE, 7 THE NEXT," 360 PRINT "AND SO ON, UP TO 15. IF YOU DO THE PUZZLE WITH 2 DISKS, THEIR" 365 PRINT "CODE NAMES WOULD BY 13 AND 15. WITH THREE DISKS, THE CODE" 370 PRINT "NAMES WOULD BE 11, 13, AND 15, ETC. THE NEEDLES ARE" 375 PRINT "NUMBERED FROM LEFT TO RIGHT, 1 TO 3. WE WILL START WITH THE " 380 PRINT "DISKS ON NEEDLE 1, AND ATTEMPT TO MOVE THEM TO NEEDLE 3." 390 PRINT \PRINT "GOOD LUCK!!"\PRINT 400 Y=7\D=15 420 FOR X=S TO 1 STEP -1 430 T(Y,1)=D\D=D-2\Y=Y-1 460 NEXT X 470 GOSUB 1230 480 PRINT "WHICH DISK WOULD YOU LIKE TO MOVE";\E=0 500 INPUT D 510 IF (D-3)*(D-5)*(D-7)*(D-9)*(D-11)*(D-13)*(D-15)=0 THEN 580 520 PRINT "ILLEGAL ENTRY...YOU MAY ONLY TYPE 3,5,7,9,11,13, OR 15." 530 E=E+1\IF E>1 THEN 560 550 GOTO 500 560 PRINT \PRINT "STOP WASTING MY TIME. GO BOTHER SOMEONE ELSE."\STOP 580 REM *** CHECK IF REQUESTED DISK IS BELOW ANOTHER 590 FOR R=1 TO 7 600 FOR C=1 TO 3 610 IF T(R,C)=D THEN 640 620 NEXT C\NEXT R 640 FOR Q=R TO 1 STEP -1 645 IF T(Q,C)=0 THEN 660 650 IF T(Q,C)1 THEN 780 750 PRINT "I'LL ASSUME YOU HIT THE WRONG KEY THIS TIME. BUT WATCH IT," 760 PRINT "I ONLY ALLOW ONE MISTAKE."\GOTO 705 780 PRINT "I TRIED TO WARN YOU, BUT YOU WOULDN'T LISTEN." 790 PRINT "BYE, BYE, BIG SHOT."\STOP 795 REM *** LOCATE DISK TO BE MOVED 800 FOR R=1 TO 7 810 IF T(R,N)<>0 THEN 840 820 NEXT R 830 GOTO 880 835 REM *** CHECK IF DISK TO BE PLACED ON A LARGER ONE 840 IF D0 THEN 970 950 NEXT U 960 GOTO 980 965 REM *** MOVE DISK AND SET OLD LOCATION TO 0 970 U=U-1 980 T(U,N)=T(V,W)\T(V,W)=0 995 REM *** PRINT OUT CURRENT STATUS 1000 GOSUB 1230 1010 REM *** CHECK IF DONE 1020 M=M+1 1030 FOR R=1 TO 7\FOR C=1 TO 2 1050 IF T(R,C)<>0 THEN 1090 1060 NEXT C\NEXT R 1080 GOTO 1120 1090 IF M<=128 THEN 480 1100 PRINT "SORRY, BUT I HAVE ORDERS TO STOP IF YOU MAKE MORE THAN" 1110 PRINT "128 MOVES."\STOP 1120 IF M<>2^S-1 THEN 1140 1130 PRINT "CONGRATULATIONS!! "; 1140 PRINT "YOU HAVE PERFORMED THE TASK IN";M;"MOVES." 1150 PRINT \PRINT "TRY ANOTHER ONE (YES OR NO)";\INPUT A$ 1160 IF A$="NO" THEN 1390 1170 IF A$="YES" THEN 90 1180 PRINT \PRINT "'YES' OR 'NO' PLEASE";\INPUT A$\GOTO 1160 1230 REM *** PRINT SUBROUTINE 1240 FOR K=1 TO 7 1250 Z=10 1260 FOR J=1 TO 3 1270 IF T(K,J)=0 THEN 1330 1280 PRINT TAB(Z-INT(T(K,J)/2)); 1290 FOR V=1 TO T(K,J) 1300 PRINT "*"; 1310 NEXT V 1320 GOTO 1340 1330 PRINT TAB(Z);"*"; 1340 Z=Z+21 1350 NEXT J 1360 PRINT 1370 NEXT K 1380 RETURN 1390 PRINT \PRINT "THANKS FOR THE GAME!"\PRINT \END 1 ! & ! 2 ! PROGRAM : TRANS .BAS 5 ! VERSION : Y01-14 6 ! EDIT : 52 7 ! EDIT DATE : 11-MAY-77 8 ! 9 ! AUTHOR : BRUCE LEAVITT & !10 * EDIT BY : KEN ELLSON 11 ! & ! 12 ! single computer system and may be copied only with the & ! inclusion of the above copyright notice. This software, or & ! any other copies thereof, may not be provided or otherwise 13 ! made available to any other person except for use on such & ! system and to one who agrees to these license terms. Title to & ! and ownership of the software shall at all times remain in & ! DIGITAL. 14 ! & ! The information in this document is subject to change without & ! notice and should not be construed as a commitment by Digital 15 ! Equipment Corporation. & ! & ! DIGITAL assumes no responsibility for the use or reliability 16 ! of its software on equipment that is not supplied by DIGITAL. & ! & !******************************************************************** 20 ! & ! 100 ! & ! 101 ! TO BE COMPILED. THIS PROGRAM ACCEPTS A BASIC-PLUS PROGRAM & ! AS INPUT, MODIFIES IT AS DESCRIBED IN THE BASIC-PLUS-2 USER'S & ! GUIDE, AND OUTPUTS THE CONVERTED PROGRAM. & ! 300 ! & ! 301 ! CHANNEL # USED FOR & ! & ! 1 INPUT FILE & ! 2 OUTPUT FILE & ! 3 COMMAND INPUT & ! 4 INITIALIZATION & ! 400 ! & ! 401 ! VARIABLE NAME USED FOR & ! & ! F0% NEW STATEMENT FLAG & ! F1% INTEGER MODE FLAG & ! F2% PARENTHESIS LEVEL 402 ! F5% DATA STMT COMPRESS FLAG & ! F6% CURRENT STMT SCAN FLAG & ! 800 ! & ! 801 ! FUNCTION/SUBROUTINE USE & ! & ! 910 DIM K%(1023%),K0%(15%) & !KEYWORD TABLE AND INDEX. & ! 920 DIM L%(511%) & !LINE BUFFER. & ! 930 DIM V%(2047%),V0%(26%) & !VARIABLE SUBSTITUTION TABLE AND INDEX. & ! 1000 OPEN 'TI:TRANS.CMD' AS FILE #3% & \ ON ERROR GOTO 32760 & ! SET UP STANDARD ERROR TRAP. & ! 1010 GOSUB 18000 & !INITIALIZE KEYWORD ARRAY. & ! 1020 I$ = "TRANS " & +"Y01-14" & ! SET UP HEADER LINE. & ! 1030 PRINT #3% IF CCPOS(3%) & \ PRINT #3%, I$ IF E0%=0% & ! PRINT THE HEADER LINE PREPARATORY TO GIVING & ! AN ERROR. & ! 1900 PRINT #3%,'TARGET SYSTEM ? '; & \ INPUT #3%, N$ & \ N$ = LEFT(EDIT$(N$,-1%),3%) & \ E1% = 0% & \ GOTO 2000 IF N$='' OR N$='RST' & \ E1% = 1% IF N$='RSX' OR N$='IAS' OR N$='TPS' & \ E1% = 2% IF N$='DEC' & \ GOTO 1900 UNLESS E1% & !SET TARGET SYSTEM FLAG. & ! 0 - RSTS/E (PDP-11) & ! 1 - IAS,RSX-11M (PDP-11) & ! 2 - TOPS-20 (DECSYSTEM 20) & ! 2000 PRINT #3%, 'INPUT FILE ? '; & \ INPUT LINE #3, N$ & \ N$ = EDIT$(N$,-1%) & \ GOTO 2000 IF N$='' & \ N$ = N$ + '.BAS' UNLESS POS(N$,'.',1%) & !GET VALID FILE NAME. & ! 2010 OPEN N$ FOR INPUT AS FILE 1% & 2020 PRINT #3%, 'OUTPUT FILE ? '; & \ INPUT LINE #3%, N1$ & \ N1$ = EDIT$(N1$,-1%) & \ N1$ = LEFT(N$,POS(N$,'.',1%)-1%) IF N1$='' & \ N1$ = N1$ + '.B2S' UNLESS POS(N1$,'.',1%) & !GET VALID OUTPUT FILESPEC. & ! 2030 OPEN N1$ FOR OUTPUT AS FILE 2% & 2040 E% = 0% & \ INPUT #3%, 'EXTEND MODE ? ';N$ & \ E% = 1% IF POS(' YES',EDIT$(N$,-1%),1%)=2% & !ASK IF SOURCE IS IN V6B EXTEND MODE. & ! 2050 E3% = 0% & \ GOSUB 20000 UNLESS E% & !PROCESS VARIABLE NAME SUBSTITUTIONS. & ! 3000 C0% = C% & \ GOSUB 16000 & \ GOSUB 19000 3010 GOSUB 15000 & \ GOTO 3000 IF L0% = 0% & \ N% = 1% & \ GOTO 3500 IF C0%<>0% & \ F0% = 1% & \ F1%,F6%,K2% = 0% & \ L2% = 0% & \ P% = 0% & \ L0$ = '' & \ FOR N% = 1% & WHILE N%<=L0% AND POS('0123456789 ',CHR$(L%(N%)),1%) & \ P0% = L%(N%) & \ IF P0%=9% OR P0%=32% & THEN P% = P% + 1% & ELSE L0$ = L0$ + CHR$(P0%) & \ GOTO 3015 UNLESS P% & \ L%(N%-P%) = P0% & \ L%(N%) = 32% 3015 NEXT N% & \ L%(N%) = 32% IF L%(N%)=37% IF N%-P%>1% & \ GOTO 3040 IF N%-P%>1% & \ PRINT #3%, '%IMMEDIATE MODE STATEMENTS REMOVED:' 3020 PRINT #3%, L$ & \ GOTO 3010 IF C%=0% & \ GOSUB 15000 & \ GOTO 3020 3030 !PROCESS REMAINING TARGET, & !OUTPUT THE CURRENT LINE, & !GET THE NEXT LINE, IF NOT EMPTY, & !REMOVE IMMEDIATE MODE STMTS. & !SET CONTINUATION FLAG C% AS: & ! 0% FOR CR-LF, FF, ALTMODE & ! 1% FOR LF-CR-NULL & ! 2% FOR &-CR-LF. & ! 3040 GOTO 3500 IF E%=1% & \ L0% = FNI%(32%,N%+3%) IF POS(L$,'DATA',N%)=N% & \ L0% = FNI%(32%,N%+2%) IF POS(L$,'REM',N%)=N% & !PUT A SPACE AFTER 'DATA' OR 'REM'. & ! 3500 WHILE N% <= L0% & \ L1% = L%(N%) & !GET THE CHARACTERS, ONE AT A TIME, & !AND PERFORM SPECIAL PROCESSING ON: & ! ",',\,:,(,),BLANKS,TABS,COMMENTS & ! 3510 GOTO 3520 IF L1%<>38% & \ D% = FNR%(' PRINT ',N%,1%) & \ GOTO 3550 & !REPLACE & WITH PRINT. & ! 3520 GOTO 3900 IF (L1%>=65% AND L1%<=90%) OR (L1%>=97% AND L1%<=122%) & !INCLUDE ALPHAS IN TARGET, A-Z UPPER AND LOWER. & ! 3530 GOTO 3900 IF L1%>=48% AND L1%<=57% & !INCLUDE NUMBERS 0-9 IN TARGET. & ! 3540 GOTO 3900 IF L1%=46% AND E%=1% & !PERIOD IS A SYMBOL CHARACTER (EXTEND). & ! 3550 GOSUB 16000 & !PROCESS TARGET STRING, & !AND PERFORM SPECIAL PROCESSING FOR L1%. & ! 3700 L4% = L2% AND -1025% & \ GOTO 3710 IF L1%<>40% & \ F2% = F2% + 1% & \ L2% = L1% & \ GOTO 3910 3710 GOTO 3740 IF L1%<>41% & \ F2% = F2% - 1% & \ GOTO 3730 UNLESS (L2% AND -1025%)=40% & \ FOR P% = N%-1% TO 1% STEP -1% & \ IF L%(P%) = 40% & THEN D% = FNR%('',N%,N%-P%+1%) & \ GOTO 3730 3720 NEXT P% 3730 L2% = L1% & \ GOTO 3910 & !KEEP A PARENTHESIS LEVEL COUNT FOR AMBIGUOUS CONSTANT & !AND LET STATEMENT HANDLING. REMOVE ANY (). & ! 3740 IF L1%<>32% AND L1%<>9% & THEN IF L1%=33% & THEN 3800 & ELSE L2% = L1% & ELSE L2% = L2% OR 1024% & \ GOTO 3910 & !SET 'LAST FLAG' FOR ALL CHARS EXCEPT EXCLAMATION. & !BLANKS AND TABS - SET FLAG TO INDICATE THAT & !CHAR IS FOLLOWED BY SPACES. & ! 3750 GOTO 3760 IF (L1%<>58%) AND (L1%<>92%) & \ L%(N%) = 92% & \ F0% = 1% & \ F6% = 0% & \ L2% = 0% & \ GOTO 3910 & !CHANGE COLON STATEMENT SEPARATORS TO BACKSLASH, & !AND SET THE BEGIN STATEMENT FLAG. & ! 3760 GOTO 3910 IF (L1%<>34%) AND (L1%<>39%) & \ GOTO 3770 UNLESS L4% & \ GOTO 3762 IF L4%<>4% & \ GOTO 3770 UNLESS (K2%>=5% AND K2%<=8%) OR (K2%>=18% AND K2%<=21%) 3762 GOTO 3770 UNLESS (L4%>=1% AND L4%<=3%) OR L4%=36% OR L4%=37% & OR L4%=41% OR L4%=46% & \ L0% = FNI%(59%,N%-1%) & \ N% = N% + 1% & !INSERT SEMICOLON BEFORE A STRING LITERAL IF IMMEDIATELY & !PRECEDED BY A NUMBER,VARIABLE,FUNCTION,),$,%,.,OR QUOTE. 3770 L2% = 2% & \ GOTO 3910 IF L%(N%)=L1% FOR N%=N%+1% TO L0% & \ N%,L0% = FNI%(L1%,L0%) & \ GOTO 3910 & !WHEN A QUOTE IS FOUND, SEARCH FOR AN ENDING QUOTE. & !IF IT IS NOT FOUND, INSERT THE PROPER ONE AT EOL. & ! 3800 L%(N%) = 42% IF L%(N%) = 33% FOR N%=N%+1% TO L0% & \ GOTO 3910 IF C%<>1% & \ UNTIL C%=0% & \ GOSUB 19000 & \ GOSUB 15000 & \ N% = 1% & \ N% = N% + 1% WHILE L%(N%) = 32% OR L%(N%) = 9% 3810 L0% = FNI%(33%,N%-1%) IF L%(N%) <> 33% & \ L%(N%) = 42% IF L%(N%)=33% FOR N%=N%+1% TO L0% & \ NEXT & \ GO TO 3910 & !COMMENT PROCESSING. ALL EXCLAMATION POINTS & !AFTER THE FIRST ON A LINE ARE CHANGED TO ASTERISKS. & ! 3900 T1% = N% IF T0%=0% & \ T0% = T0% + 1% & !BUILD TARGET STRING. & ! 3910 N% = N% + 1% & \ NEXT & \ GOTO 3000 & !GET ANOTHER CHARACTER. WHEN THE LINE IS EXHAUSTED, & !GO BACK AND GET NEW LINE. & ! 15000 ! & ! 15010 INPUT LINE #1%,L$ & \ P% = LEN(L$) & \ P% = P% - 1% WHILE P% > 0% AND MID(L$,P%,1%) <= ' ' 15020 L$ = EDIT$(LEFT(L$,P%),261%+F5%) + EDIT$(RIGHT(L$,P%+1%),3%) & !READ THE NEXT SOURCE LINE. TRIM AWAY ANY BLANKS OR TABS & !RIGHT BEFORE THE LINE TERMINATOR. & ! 15030 CHANGE L$ TO L% & !CONVERT LINE TO A MORE ACCESSABLE FORM. & ! 15040 L0% = L%(0%) & \ C% = 0% & \ L% = 2% & \ P% = L%(L0%) & \ GOTO 15050 IF L0%<3% OR E%<>1% & \ IF (P%=10%) AND (L%(L0%-2%)=38%) & THEN & C% = 2% & \ L% = 3% & !DETERMINE IF AMPERSAND AT END OF LINE IS A CONTINUATION & !MARKER. & ! 15050 IF P% = 10% & THEN 15060 & ELSE IF P% <> 0% & THEN L% = 1% & ELSE C% = 1% & \ L% = 3% & \ L0% = FNI%(32%,L0%-3%) & \ L%(L0%) = 10% & \ L%(L0%-2%) = 38% & !TURN A LF-CR-NULL INTO AN &-CR-LF IF FOUND. & ! 15060 L0% = L0% - L% & !AT THIS POINT, L0% IS THE LENGTH OF THE LINE EXCLUDING & !THE LINE TERMINATION CHARACTERS AND L%(0%) IS THE & !TOTAL LENGTH. & ! 15990 RETURN & 16000 ! & ! 16020 GOTO 16990 IF T0%=0% & \ L4% = L2% AND -1025% & \ K5% = K2% & \ J% = FNN%(T1%) & \ GOTO 16910 IF J%>0% 16030 GOTO 16800 IF T0%=1% & \ GOTO 16800 IF T0%>K0% AND E%=1% 16040 IF T0%>K0% & THEN T3% = K0% & ELSE T3% = T0% 16050 I1% = T3% +1% & \ I1% = I1%+1% UNTIL K0%(I1%) & \ I1% = K0%(I1%) 16060 FOR I%=T3% TO 2% STEP -1% & \ GOTO 16720 IF K0%(I%)=0% & \ J% = K0%(I%) 16070 FOR K%=0% TO I%-1% & \ L% = J% + K% & \ M% = T1% + K% & \ L3% = L%(M%) AND -33% & \ GOTO 16720 IF L3% < K%(L%) & \ GOTO 16080 IF L3% = K%(L%) & \ J% = J% + I% + 1% & \ IF J% = I1% THEN 16720 ELSE 16070 16080 NEXT K% & !ATTEMPT TO MATCH KEYWORDS OF LENGTH 'I%' AGAINST & !TARGET STRING. IF UNSUCCESSFUL, TRY THE NEXT SMALLER & !KEYWORD LIST. A MATCH FALLS THROUGH THIS 'NEXT'. & ! 16150 K2% = K%(L%+1%) & \ K3% = K2%/1000% & \ K2% = K2% - K3%*1000% & \ ON K2% GOTO & 16210, 16210, 16230, 16210, 16250, & 16260, 16270, 16280, 16290, 16300, & 16310, 16320, 16330, 16340, 16350, & 16360, 16370, 16380, 16390, 16400, & 16210, 16420, 16430, 16440 & !KEYWORD DISPATCH. & ! 16210 GOTO 16800 UNLESS F0% & \ F0% = 0% UNLESS K3%=7% & \ F6% = K3% 16211 GOTO 16620 IF K3%<>2% & \ L0% = FNI%(42%,M%) & \ I% = I% + 1% & \ M% = M% + 1% & \ N% = N% + 1% & \ T0% = T0% + 1% & \ GOTO 16620 & !STATEMENTS,XFER STATEMENTS,DEF. & ! 16230 GOTO 16800 IF F0% & \ F1% = 0% & \ F6% = 0% UNLESS F6% = 3% & \ GOTO 16600 UNLESS K3% & \ GOTO 16235 UNLESS K3%=2% & \ F6% = 9% & \ GOTO 16600 IF (L2% AND -1025%)=4% 16235 GOTO 16620 IF (L2% AND -1025%)=44% & \ L3% = 44% & \ GOTO 16610 & !MODIFIERS,COMMA CHECK. & ! 16250 GOTO 16700 & !FUNCTIONS. & ! 16260 F1% = 1% & \ GOTO 16700 & !FUNCTIONS (INTEGER). & ! 16270 GOTO 16800 UNLESS L%(M%+1%)=36% IF E%=1% & \ GOTO 16700 & !FUNCTIONS ($). & ! 16280 GOTO 16800 UNLESS L%(M%+1%)=37% IF E%=1% & \ F1% = 1% & \ GOTO 16700 & !FUNCTIONS (%). & ! 16290 GOTO 16700 & !FN REFERENCES. & ! 16300 GOTO 16800 IF F0% & \ F1% = 0% & \ GOTO 16600 & !TO. & ! 16310 GOTO 16800 UNLESS F0% & \ L0% = FNI%(32%,M%) & \ GOTO 16325 & !REM. & ! 16320 GOTO 16800 UNLESS F0% & \ I1% = L%(0%) - L0% & \ CHANGE L% TO L$ & \ L$ = LEFT(L$,M%)+' '+EDIT$(RIGHT(L$,M%+1%),258%) & \ CHANGE L$ TO L% & \ L0% = L%(0%) - I1% & \ F5% = 2% 16325 UNTIL C%=0% & \ GOSUB 19000 & \ GOSUB 15000 & \ NEXT & \ F5% = 0% & \ N% = L0% + 1% & \ L1%,T0% = 0% & \ GOTO 16990 & !DATA. & ! 16330 GOTO 16800 UNLESS F0% & \ GOTO 16620 & !MAT. & ! 16340 GOTO 16800 UNLESS F0% & \ F0% = 0% & \ GOTO 16620 & !ASSIGNMENT - LET,LSET,RSET. & ! 16350 GOTO 16800 IF F0% & \ F0%,F6% = 1% & \ F1% = 0% & \ GOTO 16600 & !THEN,ELSE. & ! 16360 F6% = 1% UNLESS K3% & \ F1%,F6% = 0% IF K3% & \ GOTO 16600 UNLESS F0% & \ F0% = 0% & \ GOTO 16620 & !GO,GOTO,GOSUB - FOR,IF. & ! 16370 GOTO 16700 UNLESS F0% & \ F0% = 0% & \ F6% = 8% & \ GOTO 16620 & !INPUT. & ! 16380 F1% = 1% IF L%(M%+1%)<>36% & \ GOTO 16700 & !NUM,NUM$. & ! 16390 F1% = 1% & \ D% = FNR%('CC',T1%-1%,0%) & \ I% = I% + 3% & \ M% = M% + 2% & \ GOTO 16700 & !CCPOS. & ! 16400 GOTO 16405 IF K4%<>17% & \ K2% = 3% & \ GOTO 16620 16405 F1% = 1% & \ GOTO 16700 & !LINE. & ! 16420 I1% = M% + 1% & \ I1% = I1% + 1% WHILE L%(I1%)=36% OR L%(I1%)=37% & \ GOTO 16800 IF I1%=M%+1% & \ GOTO 16425 IF L%(I1%+1%)=40% IF (L%(I1%) AND -33%)=70% & \ GOTO 16800 IF I1%<>M%+3% & \ F1% = 1% IF L%(I1%-1%)=37% & \ GOTO 16700 16425 I% = I% + 3% & \ GOTO 16700 & !CVT. & ! 16430 GOTO 16800 & !IFOR. & ! 16440 GOTO 16800 UNLESS F0% & \ L0% = FNI%(33%,M%) & \ L0% = FNI%(33%,T1%-1%) & \ I% = I% + 3% & \ E% = 9%/I% & \ GOTO 16700 & !EXTEND,NOEXTEND. & ! 16600 GOTO 16700 IF E%=1% & \ GOTO 16620 IF L2% AND 1024% & \ L3% = 32% & !BLANK BEFORE KEYWORD. & ! 16610 L0% = FNI%(L3%,T1%-1%) & \ I% = I% + 1% & \ T0% = T0% + 1% & \ N% = N% + 1% & \ M% = M% + 1% & !PUT BLANK OR COMMA BEFORE KEYWORD IF NEEDED. & ! 16620 GOTO 16700 IF L1%=32% OR L1%=9% OR E%=1% & \ L0% = FNI%(32%,M%) & \ I% = I% + 1% & \ T0% = T0% + 1% & \ N% = N% + 1% & \ L2% = L2% OR 2048% & !PUT BLANK AFTER KEYWORD IF NEEDED. & ! 16700 K4% = K2% & \ IF L2% AND 2048% & THEN L2% = 1028% & ELSE L2% = 4% & !SAVE POINTER TO THE KEYWORD. & !SET LAST FLAG TO KEYWORD. & ! 16710 D% = FNK% & \ J% = I% & \ GOTO 16920 & !SET UP 'J%' FOR THE REMOVAL OF THE KEYWORD & !FROM THE TARGET STRING. 16720 GOTO 16800 IF E%=1% & \ I1% = K0%(I%) & \ NEXT I% & !MATCH KEYWORDS AGAINST TARGET. & !FALLING THROUGH THIS 'NEXT' MEANS THAT THE & !TARGET DOES NOT BEGIN WITH A KEYWORD. IT MUST & !THEN BE A VARIABLE NAME, FOLLOWED (IN NOEXTEND MODE) & !BY A KEYWORD. & ! 16800 GOSUB 17000 & !VARIABLE FOUND. REPLACE IF REQUESTED. & ! 16900 GOTO 16920 IF L3% = 36% & !IF A STRING VARIABLE, SKIP 'CHAIN' FIX & ! 16910 GOTO 16920 IF F6%<>6% OR F2%<>0% & \ F6% = 0% & \ D% = FNR%(' LINE ',T1%-1%,0%) & \ T1% = T1% + 6% & \ N% = N% + 6% & \ GOTO 16928 & !PUT 'LINE' BEFORE NUMBER OR NUMERIC VARIABLE & !IN CHAIN STATEMENT. & ! 16920 L5% = L2% AND -1025% & \ GOTO 16928 UNLESS L5% & \ GOTO 16922 IF L5%<>4% & \ GOTO 16928 UNLESS (K2%>=5% AND K2%<=9%) OR (K2%>=18% AND K2%<=21%) 16922 GOTO 16924 IF L4%<>2% & \ L3% = 59% & \ GOTO 16927 16924 GOTO 16925 IF L4%<>4% & \ GOTO 16928 UNLESS (K5%>=5% AND K5%<=8%) OR (K5%>=18% AND K5%<=21%) & \ GOTO 16926 16925 GOTO 16928 UNLESS L4%=1% OR L4%=3% OR L4%=41% & OR L4%=36% OR L4%=37% OR (L4%=46% AND L5%<>3%) 16926 L3% = 44% 16927 L0% = FNI%(L3%,T1%-1%) & \ T1% = T1% + 1% & \ N% = N% + 1% & !INSERT SEMICOLON OR COMMA. & ! 16928 GOTO 16930 IF J%>T0% & \ T1% = T1% + J% & \ T0% = T0% - J% & \ GOTO 16020 & !REMOVE 'J%' CHARACTERS FROM THE TARGET, AND & !RECYCLE THE REST OF THE TARGET. & ! 16930 N% = T1% + J% - 1% & \ L1% = L%(N%) & \ T0% = 0% & 16990 RETURN & 17000 ! & ! 17010 L2% = 1% & \ F0%,L3%,V2% = 0% & \ J% = T0% & \ GOTO 17020 IF E%=1% & \ IF L%(T1%+1%)>=65% OR T0%=1% & THEN J% = 1% & ELSE J% = 2% & \ V2% = L%(T1%+1%) & !NOEXTEND NAME PART IS 1 OR 2 CHARACTERS ONLY. & !EXTEND NAME PART MUST BE WHOLE TARGET. & ! 17020 GOTO 17040 IF T0%>J% & \ L3% = L%(T1%+T0%) & \ J% = J% + 1% IF L3%=36% OR L3%=37% & \ J% = J% + 1% IF L%(T1%+J%)=40% & \ F1% = 1% IF L3% = 37% & !GET COMPLETE VARIABLE LENGTH. SET FLAG IF '%' SEEN. & ! 17040 D% = FNV% & !VARIABLE NAME COMPLETE. & ! 17050 GOTO 17990 IF E3%=0% OR E%=1% & \ V1% = L%(T1%) AND -33% & \ IF L3% = 37% & THEN V2% = V2% OR 8192% & ELSE IF L3% = 36% & THEN V2% = V2% OR 4096% & !ENCODE VARIABLE NAME AND TYPE (%, $, OR FLOAT). & ! 17060 V2% = V2% OR 2048% IF L%(T1%+J%-1%)=40% & \ V2% = V2% OR 1024% IF K2%=9% & !ENCODE FN AND ARRAY INDICATORS. & ! 17100 GOTO 17130 IF V2% = V4% IF V1% = V3% & \ V3% = V1% & \ V0% = V0%(V1%-65%) & \ V1% = V0%(V1%-64%) & \ UNTIL V0% = V1% & \ V4% = V%(V0%) & \ GOTO 17110 IF V2%0%) & !SET THE DATA POINTER, THE LENGTH - 1, AND THE & !REPLACEMENT LENGTH DIFFERENCE (+ OR -). & ! 17130 GOTO 17990 UNLESS V0% & \ GOTO 17140 UNLESS V6% & \ IF V6%>0% & THEN L%(V%+V6%)=L%(V%) FOR V%=L%(0%) TO T1%+V5%-V6%+1% STEP -1% & ELSE L%(V%-1%)=L%(V%) FOR V%=T1%+2% TO L%(0%) & !MAKE A HOLE TO FIT THE NEW NAME. & ! 17140 L%(T1%+V%) = V%(V0%+V%) FOR V%=0% TO V5% & \ L%(0%) = L%(0%) + V6% & \ L0% = L0% + V6% & \ J% = J% + V6% & \ T0% = T0% + V6% & \ N% = N% + V6% & !MOVE THE NEW NAME INTO THE HOLE, AND ADJUST & !COUNTS ACCORDINGLY. & ! 17990 RETURN & 18000 ! & ! 18010 OPEN '[1,1]TRANS.KEY' FOR INPUT AS FILE #4% & \ K%=1% & 18020 INPUT #4%,K$,K2% & \ K0%=LEN(K$) & \ K0%(K0%)=K% IF K0%(K0%)=0% & \ CHANGE K$ TO L% & \ FOR P%=1% TO K0% & \ K%(P%+K%-1%)=L%(P%) AND -33% & \ NEXT P% & \ K%(K%+K0%)=K2% & \ K%=K%+K0%+1% & \ GOTO 18020 & 18030 GOTO 32760 IF ERR <> 11% & \ K0%(K0%+1%)=K% & \ L%(0%) = 0% & \ CLOSE #4% & 18990 RETURN & 19000 ! & ! 19010 GOTO 19990 IF L%(0%)=0% & \ L0% = FNI%(46%,L0%) IF L%(L0%)=38% IF L%(L0%+1%)=13% IF E%<>1% & \ CHANGE L% TO L$ & \ PRINT #2%,L$; & 19990 RETURN & !OUTPUT THE BASIC-PLUS-2 SOURCE LINE. & !CHANGE THE '&' AT EOL TO A '&.', IF NECESSARY. & ! 20000 ! & ! 20010 U% = 3% & \ V0% = 0% & \ V0%(V%) = 0% FOR V%=0% TO 26% & !INITIALIZATION & ! 20020 PRINT #3%,'OLD NAME ? '; IF U% = 3% & \ INPUT #U%,V0$ & \ V0$ = EDIT$(V0$,-1%) & \ V0% = LEN(V0$) & \ GOTO 20980 UNLESS V0% & !GET THE NAME TO BE REPLACED. & !IF NONE - INPUT IS COMPLETE. & ! 20030 IF ASCII(V0$)=64% & THEN U% = U% + 1% & \ V0$ = RIGHT(V0$,2%) & \ GOTO 20970 UNLESS V0%-1% & \ V0$ = V0$ + '.CMD' UNLESS POS(V0$,'.',1%) & \ OPEN V0$ FOR INPUT AS FILE U% & \ GOTO 20020 & !INPUT FROM INDIRECT COMMAND FILE. & ! 20040 V2% = 0% & \ GOTO 20050 UNLESS POS(V0$,'FN',1%)=1% & \ V2% = 1024% & \ V0$ = RIGHT(V0$,3%) & \ V0% = V0% - 2% & \ GOTO 20970 UNLESS V0% & !FUNCTION NAME REPLACEMENT. & ! 20050 CHANGE V0$ TO L% & \ V1% = L%(1%) & \ GOTO 20970 UNLESS V1%>=65% AND V1%<=90% & \ V0% = V0% - 1% & \ GOTO 20140 UNLESS V0% & \ V% = 2% & \ V3% = L%(V%) & \ IF V3%>=48% AND V3%<=57% & THEN V2% = V2% OR V3% & \ V0% = V0% - 1% & \ GOTO 20140 UNLESS V0% & \ V% = V% + 1% & \ V3% = L%(V%) & !GET THE FIRST LETTER, ENCODE THE DIGIT (IF ANY). & ! 20060 IF V3%=37% & THEN V2% = V2% OR 8192% & ELSE IF V3%=36% & THEN V2% = V2% OR 4096% & ELSE GOTO 20080 & !ENCODE THE TYPE (INTEGER,STRING, OR REAL). & ! 20070 V0% = V0% - 1% & \ GOTO 20140 UNLESS V0% & \ V% = V% + 1% & \ V3% = L%(V%) & !GET CHARACTER AFTER % OR $, IF ANY. & ! 20080 IF V3%<>40% OR (V2% AND 1024%)<>0% & THEN 20970 & ELSE V2% = V2% OR 2048% & \ V0% = V0% - 1% & \ GOTO 20970 IF V0% & !ENCODE ( , IF ANY. & !IF CHARACTERS REMAIN - ERROR. & ! 20140 PRINT #3%,'NEW NAME ? '; IF U%=3% & \ INPUT #U%, V0$ & \ V0$ = EDIT$(V0$,263%) & \ V0% = LEN(V0$) & \ GOTO 20970 IF V0%>30% OR V0%=0% & \ CHANGE V0$ TO L% & \ FOR V%=1% TO V0% & \ V3% = L%(V%) & \ GOTO 20970 UNLESS (V3%=46% AND V%>1%) & UNLESS (V3%>=48% AND V3%<=57% AND V%>1%) & UNLESS (V3%>=97% AND V3%<=122%) & UNLESS (V3%>=65% AND V3%<=90%) & \ NEXT V% & !GET AND VALIDATE NEW NAME. & ! 20200 V1% = V1% - 64% & \ V3% = V0%(V1%-1%) & \ V4% = V0%(V1%) & \ WHILE V3% < V4% & \ V% = V%(V3%) & \ GOTO 20220 IF V%>V2% & \ IF V%<>V2% & THEN V3% = V%(V3%+1%) & ELSE PRINT #3%, '%ENTRY ALREADY EXISTS' & \ GOTO 20970 & !SEARCH LIST FOR POINT TO INSERT NEW NAME. & !LISTS FOR EACH LETTER ARE CONSTRUCTED BY & !ASCENDING KEY. & ! 20210 NEXT & !ADD NEW ENTRY AT END OF LIST. & ! 20220 V5% = V0% + 2% & \ V%(V%+V5%) = V%(V%) FOR V% = V0%(26%) TO V3% STEP -1% & \ V0%(V%) = V0%(V%) + V5% FOR V% = V1% TO 26% & \ V%(V3%) = V2% & \ V1%,V%(V3%+1%) = V3% + V5% & \ V3% = V3% + 1% & \ V%(V%+V3%) = L%(V%) FOR V% = 1% TO V0% & !MAKE A HOLE FOR NEW ENTRY, FILL IT, & !AND UPDATE INDEX. & ! 20230 V4% = V0%(26%) & \ UNTIL V1% = V4% & \ V1% = V1% + 1% & \ V1%,V%(V1%) = V%(V1%) + V5% & \ NEXT & \ GOTO 20020 & !ADD HOLE SIZE TO ALL LINK POINTERS. & !THIS COMPLETES THE INSERTION. & !GET NEW SUBSTITUTION PAIR. & ! 20970 PRINT #3%,'%INVALID VARIABLE NAME' & \ IF U%=3% & THEN 20020 & ELSE CLOSE V% FOR V%=4% TO U% & \ V0%(26%) = 0% & !BAD NAME - REPROMPT IF NOT FROM INDIRECT FILE. & !OTHERWISE, DISABLE SUBSTITUTION. & ! 20980 L%(0%) = 0% & \ IF V0%(26%) & THEN V3%,E3% = 1% & ELSE PRINT #3%,'%NO VARIABLE SUBSTITUTIONS' & !IF SUBSTITUTIONS EXIST, INDICATE AND RESET LAST NAME. & !INFORM USER IF NOT. & ! 20990 RETURN & !TABLE BUILD IS COMPLETE. & ! 25000 DEF* FNI%(W0%,W1%) & !INSERT A CHARACTER INTO THE LINE ARRAY. & ! W0% - THE CHARACTER TO BE INSERTED & ! W1% - THE CCPOSITION THE CHARACTER IS INSERTED AFTER & ! 25010 L%(W%+1%) = L%(W%) FOR W% = L%(0%) TO W1%+1% STEP -1% & \ L%(W%) = W0% & \ L%(0%) = L%(0%) + 1% 25020 FNI% = L0% + 1% & !MOVE ALL OF THE ELEMENTS FOLLOWING W1% ONE CCPOSITION & !HIGHER IN THE ARRAY, AND PLACE THE ASCII VALUE, W0%, & !IN THE ARRAY AT W1%+1% . THE NEW EOL IS THE & !VALUE OF THE FUNCTION. & ! 25030 FNEND & !EXIT THE FUNCTION. & ! 25100 DEF* FNN%(W0%) & \ FNN% = 0% & !SCAN A NUMBER AND RETURN IT'S LENGTH. & ! W0% - STARTING POINT & ! 25110 W% = W0% & \ W% = W% + 1% WHILE L%(W%)=32% OR L%(W%)=9% & \ W2% = W% & \ W% = W% + 1% WHILE L%(W%)>=48% AND L%(W%)<=57% OR L%(W%)=46% & OR L%(W%)=32% OR L%(W%)=9% & \ GOTO 25160 IF W%=W2% & \ W1% = W% & \ GOTO 25140 IF (L%(W%) AND -33%)<>69% 25120 W% = W% + 1% & \ W% = W% +1% WHILE L%(W%)=32% OR L%(W%)=9% & \ W% = W% + 1% IF L%(W%)=43% OR L%(W%)=45% & \ W% = W% + 1% WHILE L%(W%)=32% OR L%(W%)=9% 25130 W2% = W% & \ W% = W% + 1% WHILE L%(W%)>=48% AND L%(W%)<=57% & OR L%(W%)=32% OR L%(W%)=9% & \ GOTO 25150 IF W%=W2% & \ W1% = W% IF W%-W1%>1% & \ GOTO 25150 25140 GOTO 25150 IF L%(W%)<>37% & \ F1% = 1% & \ W1% = W1% + 1% 25150 L2% = 3% & \ FNN% = W1% - W0% & !GET A STRING OF DIGITS. & ! 25155 F0%,F6% = 0% IF K2%=15% & !FOR THEN OR ELSE - LINE NUMBER, & !RESET NEW STATEMENT, STATEMENT CLASS FLAGS. & ! 25160 FNEND & !EXIT THE FUNCTION. & ! 25200 DEF* FNR%(W0$,W0%,W1%) & !REPLACE A LINE SUBSTRING WITH ANOTHER STRING. & ! W0$ - REPLACEMENT STRING & ! W0% - CCPOSITION OF LAST CHAR OF SUBSTRING & ! W1% - LENGTH OF SUBSTRING & ! 25210 W2% = LEN(W0$)-W1% & \ GOTO 25230 IF W2%=0% & \ GOTO 25220 IF W2%<0% & \ L%(W%+W2%) = L%(W%) FOR W%=L%(0%) TO W0%+1% STEP -1% & \ GOTO 25230 & !IF STRING IS BIGGER THAN SUBSTRING, MAKE HOLE BIGGER. & ! 25220 L%(W%+W2%) = L%(W%) FOR W%=W0%+1% TO L%(0%) & !IF IT IS SMALLER, MAKE HOLE SMALLER. & ! 25230 W0% = W0% - W1% & \ L%(W%+W0%) = ASCII(MID(W0$,W%,1%)) FOR W%=1% TO LEN(W0$) & \ L%(0%) = L%(0%) + W2% & \ L0% = L0% + W2% & \ FNR% = W0% + 1% & !PUT REPLACEMENT STRING IN HOLE. & !RETURN START CCPOSITION OF STRING IN L%(). & ! 25240 FNEND & !EXIT THE FUNCTION. & ! 25300 DEF* FNV% & !RECORD VARIABLE NAME & ! 25310 GOTO 25320 UNLESS E2% & \ PRINT 'VAR='; & \ PRINT CHR$(L%(W%)); FOR W%=T1% TO T1%+J%-1% & \ PRINT , & !DEBUG INFORMATION. & ! 25320 FNEND & !EXIT THE FUNCTION. & ! 25400 DEF* FNK% & !RECORD KEYWORD. & ! 25410 GOTO 25420 UNLESS E2% & \ PRINT 'KEY='; & \ PRINT CHR$(K%(W%)); FOR W% = J% TO L% & \ PRINT ',';K2%;',';K3%, & !DEBUG INFORMATION. & ! 25420 FNEND & !EXIT THE FUNCTION. & ! 32760 GOTO 32765 UNLESS ERR=11% & \ RESUME 18030 IF ERL=18020 & \ RESUME 32767 IF ERL>=2000 AND ERL<=2040 & \ RESUME 20980 IF ERL=20020 & \ RESUME 20970 IF ERL=20140 & \ GOTO 32765 UNLESS ERL=15010 & \ CLOSE 1%,2% & \ RESUME 2000 32765 IF ERL=18010% & THEN PRINT 'Keyword Table not available - See Installation notes' 32766 ON ERROR GO TO 0 32767 END & 1 REM *******COPYRIGHT 1972 PEOPLE'S COMPUTER COMPANY*** 2 REM *** MENLO PARK 5 RANDOMIZE 10 LET G=6 20 LET N=100 30 REM -TRAP 40 REM -STEVE ULLMAN, 8-1-72 50 PRINT "WANT INSTRUCTIONS (1 FOR YES)"; 60 INPUT Z 70 IF Z<>1 THEN 180 80 PRINT "I AM THINKING OF A NUMBER BETWEEN 1 AND";N 90 PRINT "TRY TO GUESS MY NUMBER. ON EACH GUESS," 100 PRINT "YOU ARE TO ENTER 2 NUMBERS, TRYING TO TRAP" 110 PRINT "MY NUMBER BETWEEN THE TWO NUMBERS. I WILL" 120 PRINT "TELL YOU IF YOU HAVE TRAPPED MY NUMBER, IF MY" 130 PRINT "NUMBER IS LARGER THAN YOUR TWO NUMBERS, OR IF" 140 PRINT "MY NUMBER IS SMALLER THAN YOUR TWO NUMBERS." 150 PRINT "IF YOU WANT TO GUESS ONE SINGLE NUMBER, TYPE" 160 PRINT "YOUR GUESS FOR BOTH YOUR TRAP NUMBERS." 170 PRINT "YOU GET";G;"GUESSES TO GET MY NUMBER." 180 LET X=INT(N*RND)+1 190 FOR Q=1 TO G 200 PRINT 210 PRINT "GUESS #";Q; 220 INPUT A,B 230 IF A<>B THEN 240 235 IF X=A THEN 400 240 IF A <= B THEN 260 260 IF A>X THEN 270 265 IF X<=B THEN 320 270 IF X"N" GOTO 180 430 PRINT 440 PRINT " BYE BYE FOR NOW COME PLAY AGAIN LATER" \ PRINT 450 END 5 RANDOMIZE 10 PRINT "THE UNREAL 3-D TIC,TAC,TOE GAME." 0070 PRINT " LEVEL 1 LEVEL 2 LEVEL 3" 0080 PRINT " 1 2 3 1 2 3 1 2 3" 0090 PRINT " 4 5 6 4 5 6 4 5 6" 0100 PRINT " 7 8 9 7 8 9 7 8 9" 150 DIM A(9),B(9),C(9) 155 LET W=0\LET M=0\LET E=0\LET S=0\LET T=0 160 FOR D=0 TO 9 170 LET A(D)=0\LET B(D)=0\LET C(D)=0 180 NEXT D 190 PRINT 191 PRINT 193 LET X=1 194 PRINT "YOUR MOVE ,WHAT LEVEL." 200 INPUT P1 210 IF P1=1 GOTO 250 220 IF P1=2 GOTO 300 230 IF P1=3 GOTO 350 240 PRINT "THERE ARE ONLY THREE LEVELS."\GOTO 190 250 PRINT "WHAT POSITION ON LEVEL ONE"; 255 INPUT L1 260 IF L1<1 THEN PRINT "NO,WAY."\GOTO 250 270 IF L1>9 THEN PRINT "NO,WAY."\GOTO 250 280 IF A(L1)=0 THEN LET A(L1)=1\GOTO 400 290 PRINT "THAT POSITION IS TAKEN."\GOTO 190 300 PRINT "WHAT POSITION ON LEVEL TWO"; 305 INPUT L2 310 IF L2<1 THEN PRINT "NO,WAY."\GOTO 300 320 IF L2>9 THEN PRINT "NO,WAY."\GOTO 300 330 IF B(L2)=0 THEN LET B(L2)=1\GOTO 400 340 PRINT "THAT POSITION IS TAKEN."\GOTO 190 350 PRINT "WHAT POSITION ON LEVEL THREE"; 355 INPUT L3 360 IF L3<1 THEN PRINT "NO,WAY."\GOTO 350 370 IF L3>9 THEN PRINT "NO,WAY."\GOTO 350 380 IF C(L3)=0 THEN LET C(L3)=1\GOTO 400 390 PRINT "THAT POSITION IS TAKEN."\GOTO 190 400 GOTO 4000 401 LET E=E+1\IF M=27 GOTO 2000 402 LET X=5\GOTO 4000 403 LET X=100\GOTO 4010 410 LET W4=W5\LET H=1\GOTO 450 420 LET W4=W6\LET H=2\GOTO 450 430 LET W4=W7\LET H=3\GOTO 450 440 PRINT "BASIC IS BLOWN"\STOP 450 IF W4<>11 GOTO 470 460 IF A(1)=0 THEN LET A(1)=5\GOTO 1000 470 IF W4<>12 GOTO 490 480 IF A(2)=0 THEN LET A(2)=5\GOTO 1000 490 IF W4<>13 THEN 510 500 IF A(3)=0 THEN LET A(3)=5\GOTO 1000 510 IF W4<>14 GOTO 530 520 IF A(4)=0 THEN LET A(4)=5\GOTO 1000 530 IF W4<>15 GOTO 550 540 IF A(5)=0 THEN LET A(5)=5\GOTO 1000 550 IF W4<>16 GOTO 570 560 IF A(6)=0 THEN LET A(6)=5\GOTO 1000 570 IF W4<>17 GOTO 590 580 IF A(7)=0 THEN LET A(7)=5\GOTO 1000 590 IF W4<>18 GOTO 610 600 IF A(8)=0 THEN LET A(8)=5\GOTO 1000 610 IF W4<>19 GOTO 630 620 IF A(9)=0 THEN LET A(9)=5\GOTO 1000 630 IF W4<>21 GOTO 650 640 IF B(1)=0 THEN LET B(1)=5\GOTO 1000 650 IF W4<>22 GOTO 670 660 IF B(2)=0 THEN LET B(2)=5\GOTO 1000 670 IF W4<>23 GOTO 690 680 IF B(3)=0 THEN LET B(3)=5\GOTO 1000 690 IF W4<>24 GOTO 710 700 IF B(4)=0 THEN LET B(4)=5\GOTO 1000 710 IF W4<>25 GOTO 730 720 IF B(5)=0 THEN LET B(5)=5\GOTO 1000 730 IF W4<>26 GOTO 750 740 IF B(6)=0 THEN LET B(6)=5\GOTO 1000 750 IF W4<>27 GOTO 770 760 IF B(7)=0 THEN LET B(7)=5\GOTO 1000 770 IF W4<>28 GOTO 790 780 IF B(8)=0 THEN LET B(8)=5\GOTO 1000 790 IF W4<>29 GOTO 810 800 IF B(9)=0 THEN LET B(9)=5\GOTO 1000 810 IF W4<>31 GOTO 830 820 IF C(1)=0 THEN LET C(1)=5\GOTO 1000 830 IF W4<>32 GOTO 850 840 IF C(2)=0 THEN LET C(2)=5\GOTO 1000 850 IF W4<>33 GOTO 870 860 IF C(3)=0 THEN LET C(3)=5\GOTO 1000 870 IF W4<> 34 GOTO 890 880 IF C(4)=0 THEN LET C(4)=5\GOTO 1000 890 IF W4<>35 GOTO 910 900 IF C(5)=0 THEN LET C(5)=5\GOTO 1000 910 IF W4<>36 GOTO 930 920 IF C(6)=0 THEN LET C(6)=5\GOTO 1000 930 IF W4<>37 GOTO 950 940 IF C(7)=0 THEN LET C(7)=5\GOTO 1000 950 IF W4<>38 GOTO 970 960 IF C(8)=0 THEN LET C(8)=5\GOTO 1000 970 IF W4<>39 GOTO 982 980 IF C(9)=0 THEN LET C(9)=5\GOTO 1000 982 IF H=1 GOTO 420 985 IF H=2 GOTO 430 990 IF H=3 GOTO 440 995 PRINT "BASIC IS BLOWN"\STOP 1000 IF B=1 GOTO 4010 1010 GOTO 2000 1020 IF S<>0 THEN 1060 1030 IF B(5)=1 THEN PRINT "ILLEGAL MOVE."\GOTO 155 1040 LET T=A(2)+A(4)+A(6)+A(8)+B(2)+B(4)+B(6)+B(8)+C(2)+C(4)+C(6)+C(8) 1041 IF T=1 THEN LET S=2\GOTO 1060 1050 LET S=3 1060 IF S<>3 GOTO 1200 1070 IF E=1 THEN LET B(5)=5\GOTO 2000 1075 IF E>2 GOTO 1900 1080 LET E1=A(1)+A(3)+A(7)+A(9)+B(1)+B(3)+B(7)+B(9)+C(1)+C(3)+C(7)+C(9) 1090 IF E1<>2 GOTO 1110 1100 LET E2=INT(5*RND(0)) 1101 IF E2=3 THEN LET A(5)=5\GOTO 2000 1102 IF E2=2 THEN LET C(5)=5\GOTO 2000 1103 GOTO 1100 1110 LET E2=INT(10*RND(0)) 1120 IF E2<>1 GOTO 1130 1125 IF A(1)=0 THEN LET A(1)=5\GOTO 2000 1130IF E2<>2 GOTO 1140 1135 IF A(3)=0 THEN LET A(3)=5\GOTO 2000 1140 IF E2<>3 GOTO 1150 1145 IF A(7)=0 THEN LET A(7)=5\GOTO 2000 1150 IF E2<>4 THEN 1160 1155 IF A(9)=0 THEN LET A(9)=5\GOTO 2000 1160 IF E2<>5 THEN 1170 1165 IF C(1)=0 THEN LET C(1)=5\GOTO 2000 1170 IF E2<>6 GOTO 1180 1175 IF C(3)=0 THEN LET C(3)=5\GOTO 2000 1180 IF E2<>7 GOTO 1190 1185 IF C(7)=0 THEN LET C(7)=5\GOTO 2000 1190 IF E2<>8 GOTO 1110 1195 IF C(9)=0 THEN LET C(9)=5\GOTO 2000 1196 GOTO 1110 1200 IF E=1 THEN LET B(5)=5\GOTO 2000 1210 IF E>2 GOTO 1900 1220 LET E1=A(1)+A(3)+A(7)+A(9)+B(1)+B(3)+B(7)+B(9)+C(1)+C(3)+C(7)+C(9) 1230 IF E1<>1 GOTO 1300 1240 LET E2=INT(5*RND(0)) 1250 IF E2=2 THEN LET A(5)=5\GOTO 2000 1260 IF E2=4 THEN LET C(5)=5\GOTO 2000 1270 GOTO 1240 1300 LET E2=INT(10*RND(0)) 1310 IF E2<>1 GOTO 1320 1315 IF A(1)=0 THEN LET A(1)=5\GOTO 2000 1320 IF E2<>2 GOTO 1330 1325 IF A(3)=0 THEN LET A(3)=5\GOTO 2000 1330 IF E2<>3 GOTO 1340 1335 IF A(7)=0 THEN LET A(7)=5\GOTO 2000 1340 IF E2<>4 GOTO 1350 1345 IF C(1)=0 THEN LET C(1)=5\GOTO 2000 1350 IF E2<>5 GOTO 1360 1355 IF C(3)=0 THEN LET C(3)=5\GOTO 2000 1360 IF E2<>6 GOTO 1370 1365 IF C(7)=0 THEN LET C(7)=5\GOTO 2000 1370 IF E2<>7 GOTO 1380 1375 IF A(9)=0 THEN LET A(9)=5\GOTO 2000 1380 IF E2<>8 GOTO 1300 1385 IF C(9)=0 THEN LET C(9)=5\GOTO 2000 1390 GOTO 1300 1900 LET E4=INT(5*RND(0)) 1910 IF E4<1 GOTO 1900 1920 IF E4>3 GOTO 1900 1930 LET E5=INT(10*RND(0)) 1940 IF E5<1 GOTO 1930 1950 IF E5>9 GOTO 1930 1960 IF E4<>1 GOTO 1970 1961 IF A(E5)=0 THEN LET A(E5)=5\GOTO 2000 1962 GOTO 1900 1970 IF E4<>2 GOTO 1980 1971 IF B(E5)=0 THEN LET B(E5)=5\GOTO 2000 1972 GOTO 1900 1980 IF C(E5)=0 THEN LET C(E5)=5\GOTO 2000 1981 GOTO 1900 2000 PRINT "THE BOARD IS AS FOLLOWS." 2010 PRINT " LEVEL 1 LEVEL 2 LEVEL 3" 2020 PRINT " ";A(1);A(2);A(3);" ";B(1);B(2);B(3);" ";C(1);C(2);C(3) 2030 PRINT " ";A(4);A(5);A(6);" ";B(4);B(5);B(6);" ";C(4);C(5);C(6) 2040 PRINT " ";A(7);A(8);A(9);" ";B(7);B(8);B(9);" ";C(7);C(8);C(9) 3625 IF M=27 THEN PRINT "DRAW"\GOTO 4610 3630 IF W=0 GOTO 190 3640 IF W=1 THEN PRINT "WELL,YOU WON ONE."\GOTO 4610 3650 IF W=5 THEN PRINT "PDP-11 WINS AGAIN."\GOTO 4610 3660 GOTO 440 4000 LET B=3\LET M=M+1 4001 GOTO 4010 4002 IF N+X=4 THEN LET W=1\GOTO 2000 4003 IF N+X=20 THEN LET W=5\GOTO 2000 4004 IF N+X=15 THEN LET B=1\GOTO 4600 4005 IF N+X=102 THEN LET B=0\GOTO 4600 4006 RETURN 4010 LET N=A(1)+A(2)+A(3)\LET W1=11\LET W2=12\LET W3=13\GOSUB 4002 4020 LET N=A(4)+A(5)+A(6)\LET W1=14\LET W2=15\LET W3=16\GOSUB 4002 4030 LET N=A(7)+A(8)+A(9)\LET W1=17\LET W2=18\LET W3=19\GOSUB 4002 4040 LET N=B(1)+B(2)+B(3)\LET W1=21\LET W2=22\LET W3=23\GOSUB 4002 4050 LET N=B(4)+B(5)+B(6)\LET W1=24\LET W2=25\LET W3=26\GOSUB 4002 4060 LET N=B(7)+B(8)+B(9)\LET W1=27\LET W2=28\LET W3=29\GOSUB 4002 4070 LET N=C(1)+C(2)+C(3)\LET W1=31\LET W2=32\LET W3=33\GOSUB 4002 4080 LET N=C(4)+C(5)+C(6)\LET W1=34\LET W2=35\LET W3=36\GOSUB 4002 4090 LET N=C(7)+C(8)+C(9)\LET W1=37\LET W2=38\LET W3=39\GOSUB 4002 4100 LET N=A(1)+A(4)+A(7)\LET W1=11\LET W2=14\LET W3=17\GOSUB 4002 4110 LET N=A(2)+A(5)+A(8)\LET W1=12\LET W2=15\LET W3=18\GOSUB 4002 4120 LET N=A(3)+A(6)+A(9)\LET W1=13\LET W2=16\LET W3=19\GOSUB 4002 4130 LET N=B(1)+B(4)+B(7)\LET W1=21\LET W2=24\LET W3=27\GOSUB 4002 4140 LET N=B(2)+B(5)+B(8)\LET W1=22\LET W2=25\LET W3=28\GOSUB 4002 4150 LET N=B(3)+B(6)+B(9)\LET W1=23\LET W2=26\LET W3=29\GOSUB 4002 4160 LET N=C(1)+C(4)+C(7)\LET W1=31\LET W2=34\LET W3=37\GOSUB 4002 4170 LET N=C(2)+C(5)+C(8)\LET W1=32\LET W2=35\LET W3=38\GOSUB 4002 4180 LET N=C(3)+C(6)+C(9)\LET W1=33\LET W2=36\LET W3=39\GOSUB 4002 4190 LET N=A(1)+B(1)+C(1)\LET W1=11\LET W2=21\LET W3=31\GOSUB 4002 4200 LET N=A(2)+B(2)+C(2)\LET W1=12\LET W2=22\LET W3=32\GOSUB 4002 4210 LET N=A(3)+B(3)+C(3)\LET W1=13\LET W2=23\LET W3=33\GOSUB 4002 4220 LET N=A(4)+B(4)+C(4)\LET W1=14\LET W2=24\LET W3=34\GOSUB 4002 4230 LET N=A(5)+B(5)+C(5)\LET W1=15\LET W2=25\LET W3=35\GOSUB 4002 4240 LET N=A(6)+B(6)+C(6)\LET W1=16\LET W2=26\LET W3=36\GOSUB 4002 4250 LET N=A(7)+B(7)+C(7)\LET W1=17\LET W2=27\LET W3=37\GOSUB 4002 4260 LET N=A(8)+B(8)+C(8)\LET W1=18\LET W2=28\LET W3=38\GOSUB 4002 4270 LET N=A(9)+B(9)+C(9)\LET W1=19\LET W2=29\LET W3=39\GOSUB 4002 4280 LET N=A(1)+B(5)+C(9)\LET W1=11\LET W2=25\LET W3=39\GOSUB 4002 4285 LET N=A(7)+B(5)+C(3)\LET W1=17\LET W2=25\LET W3=33\GOSUB 4002 4290 LET N=A(3)+B(5)+C(7)\LET W1=13\LET W2=25\LET W3=37\GOSUB 4002 4295 LET N=A(9)+B(5)+C(1)\LET W1=19\LET W2=25\LET W3=31\GOSUB 4002 4300 LET N=A(1)+A(5)+A(9)\LET W1=11\LET W2=15\LET W3=19\GOSUB 4002 4310 LET N=A(3)+A(5)+A(7)\LET W1=13\LET W2=15\LET W3=17\GOSUB 4002 4320 LET N=B(1)+B(5)+B(9)\LET W1=21\LET W2=25\LET W3=29\GOSUB 4002 4330 LET N=B(3)+B(5)+B(7)\LET W1=23\LET W2=25\LET W3=27\GOSUB 4002 4340 LET N=C(1)+C(5)+C(9)\LET W1=31\LET W2=35\LET W3=39\GOSUB 4002 4350 LET N=C(3)+C(5)+C(7)\LET W1=33\LET W2=35\LET W3=37\GOSUB 4002 4360 LET N=A(1)+B(4)+C(7)\LET W1=11\LET W2=24\LET W3=37\GOSUB 4002 4370 LET N=A(7)+B(4)+C(1)\LET W1=17\LET W2=24\LET W3=31\GOSUB 4002 4380 LET N=A(2)+B(5)+C(8)\LET W1=12\LET W2=25\LET W3=38\GOSUB 4002 4390 LET N=A(8)+B(5)+C(2)\LET W1=18\LET W2=25\LET W3=32\GOSUB 4002 4400 LET N=A(3)+B(6)+C(9)\LET W1=13\LET W2=26\LET W3=39\GOSUB 4002 4410 LET N=C(3)+B(6)+A(9)\LET W1=33\LET W2=26\LET W3=19\GOSUB 4002 4420 LET N=A(7)+B(8)+C(9)\LET W1=17\LET W2=28\LET W3=39\GOSUB 4002 4430 LET N=A(9)+B(8)+C(7)\LET W1=19\LET W2=28\LET W3=37\GOSUB 4002 4440 LET N=A(4)+B(5)+C(6)\LET W1=14\LET W2=25\LET W3=36\GOSUB 4002 4450 LET N=A(6)+B(5)+C(4)\LET W1=16\LET W2=25\LET W3=34\GOSUB 4002 4460 LET N=A(1)+B(2)+C(3)\LET W1=11\LET W2=22\LET W3=33\GOSUB 4002 4470 LET N=A(3)+B(2)+C(1)\LET W1=13\LET W2=22\LET W3=31\GOSUB 4002 4475 IF B<2 GOTO 410 4480 IF X=5 GOTO 403 4490 IF X=1 GOTO 401 4500 IF X=100 GOTO 1020 4600 LET W5=W1\LET W6=W2\LET W7=W3\GOTO 4006 4610 PRINT "WILL YOU PLAY AGAIN.TYPE (0) IF YES."; 4620 INPUT U 4630 IF U=0 GOTO 155 4640 END 5 PRINT "PROGRAM 'UGLY'"\PRINT 6 D=1\E=1\F=1\PRINT "DO YOU WANT CHANCE(1), OR SPECIAL(2)"; 7 INPUT G 8 IF G=2 THEN 17 9 RANDOMIZE 10 A=INT(40*RND)+15 11 B=INT(40*RND)+10 12 C=INT(40*RND)+15 13 PRINT "A=";A,"B=";B,"C=";C 14 PRINT "DO YOU STILL WANT CHANCE -- 1 FOR YES, 2 FOR NO"; 15 INPUT H 16 ON H GOTO 19, 6 17 PRINT "WHAT ARE YOUR VALUES FOR A, B, AND C"; 18 INPUT A,B,C 19 PRINT \PRINT \PRINT TAB(20);"XXX" 20 PRINT TAB(19);"XXXXX" 25 PRINT TAB(20);"XXX" 30 PRINT TAB(21);"X" 35 PRINT TAB(15);"X"; 40 D=D+1 45 PRINT "X"; 50 IF D>=A-2 THEN 60 55 GOTO 40 60 PRINT "X" 65 PRINT TAB(15);"X"; 70 D=1 75 D=D+1 80 PRINT "X"; 85 IF D=A-1 THEN 95 90 GOTO 75 95 PRINT "X)." 100 PRINT TAB(15);"X"; 105 D=1 110 D=D+1 115 PRINT "X"; 120 IF D>=A-2 THEN 130 125 GOTO 110 130 PRINT "X" 135 PRINT TAB(15);"X"; 140 E=E+1 150 PRINT "X"; 155 IF E=B-1 THEN 165 160 GOTO 140 165 PRINT "X" 170 PRINT TAB(15);"X"; 175 E=1 180 E=E+1 185 PRINT "X"; 190 IF E=B-1 THEN 205 200 GOTO 180 205 PRINT "X" 210 PRINT TAB (15);"X"; 215 E=1 220 E=E+1 225 PRINT "X"; 230 IF E=B-1 THEN 240 235 GOTO 220 240 PRINT "X" 245 PRINT TAB(15);"X"; 250 F=F+1 255 PRINT "X"; 260 IF F>=C-2 THEN 270 265 GOTO 250 270 PRINT "X" 275 PRINT TAB(15);"X"; 280 F=1 285 F=F+1 290 PRINT "X"; 295 IF F=C-1 THEN 305 300 GOTO 285 305 PRINT "X" 310 PRINT TAB(15);"X"; 315 F=1 316 GOTO 320 317 F=F+3 320 F=F+1 325 PRINT "X"; 327 IF F=7 THEN 329 328 GOTO 331 329 PRINT "()"; 330 GOTO 317 331 IF F=C-1 THEN 340 335 GOTO 320 340 PRINT "X" 345 PRINT TAB(19);"XX XX" 350 PRINT TAB(18);"XX XX" 355 PRINT TAB(17);"XX XX" 360 PRINT TAB(16);"XX XX" 365 PRINT TAB(15);"XX XX" 370 PRINT TAB(13);"XXXX XXXX" 380 PRINT \PRINT 385 IF B50% THEN S%=S%-2% 2960 IF S%S%+W% THEN 3400 3250 PRINT " "; 3300 GO TO 3500 3400 PRINT "a"; 3500 NEXT I% 3600 PRINT CHR$(155%);"M" 3700 PRINT CHR$(155%);"[1;1H"; 9000 GO TO 2000 10 PRINT "" 120PRINT 124 LET Y1 = 1970 130 PRINT " ENTER TODAY'S DATE IN THIS FORM: MONTH,DAY, YEAR"; 140 INPUT M1,D1,Y1 150 IF Y1>100 THEN 170 160 LET Y1 = Y1 + 1900 170 DEF* FNA(A)=INT(A/4) 180 DIM T(12) 190 DEF* FNB(A)=INT(A/7) 210 FOR I= 1 TO 12 220 READ T(I) 230 NEXT I 240 PRINT 241PRINT "THIS PROGRAM DEMONSTRATES VAX-11 BASIC AND ALSO GIVES " 242PRINT "FACTS ABOUT A DATE OF INTEREST TO YOU" 244 PRINT 245 PRINT "ENTER DATE OF BIRTH IN THIS FORM: MO,DAY,YEAR"; 250 INPUT M,D,Y 260 PRINT 270 IF Y - 75 >0 THEN 280 275 LET Y = Y+1900 280 LET I1 = INT((Y-1500)/100) 290 IF Y-1582<0 THEN 1300 300 LET A = I1*5+(I1+3)/4 310LET I2 = INT(A-FNB(A)*7) 320 LET Y2= INT(Y/100) 330 LET Y3 = INT(Y-Y2*100) 340 LET A = Y3/4+Y3+D+T(M)+I2 350 LET B = INT(A-FNB(A)*7)+1 360 IF M>2 THEN 470 370 IF Y3= 0 THEN 440 380 LET T1 = INT(Y-FNA(Y)*4) 390 IF T1<> 0 THEN 470 400 IF B<>0 THEN 420 410 LET B = 6 420 LET B = B-1 430 GOTO 470 440 LET A = I1-1 450 LET T1 = INT(A-FNA(A)*4) 460 IF T1 = 0 THEN 400 470 IF B <> 0 THEN 490 480 LET B = 7 490 IF (Y1*12+M1)*31+D1<(Y*12+M)*31+D THEN 550 500 IF (Y1*12+M1)*31+D1=(Y*12+M)*31+D THEN 530 510 PRINT M;"/";D;"/";Y;" WAS A "; 520 GOTO 570 530 PRINT M;"/";D;"/";Y;" IS A "; 540 GOTO 570 550 PRINT M;"/";D;"/";Y;" WILL BE A "; 570 IF B<>1 THEN 590 580 PRINT "SUNDAY" 590 IF B<>2 THEN 610 600 PRINT "MONDAY" 610 IF B<>3 THEN 630 620 PRINT "TUESDAY" 630 IF B<>4 THEN 650 640 PRINT "WEDNESDAY" 650 IF B<>5 THEN 670 660 PRINT "THURSDAY" 670 IF B<>6 THEN 690 680 GOTO 1250 690 IF B<>7 THEN 710 700 PRINT "SATURDAY" 710 IF (Y1*12+M1)*31+D1=(Y*12+M)*31+D THEN 1120 720 LET I5=Y1-Y 730 PRINT 740 LET I6=M1-M 750 LET I7=D1-D 760 IF I7>=0 THEN 790 770 LET I6=I6-1 780 LET I7=I7+30 790 IF I6>=0 THEN 820 800 LET I5=I5-1 810 LET I6=I6+12 820 IF I5<0 THEN 1310 830 IF I7<>0 THEN 850 835 IF I6<>0 THEN 850 840 PRINT "****HAPPY BIRTHDAY*****" 850 PRINT " "," ","YEARS","MONTHS","DAYS" 860 PRINT "YOUR AGE ",I5,I6,I7 870 LET A8= (I5*365)+(I6*30)+I7+INT(I6/2) 880 LET K5=I5 890 LET K6=I6 900 LET K7=I7 920 LET E=Y+65 940 LET F=.35 950 PRINT "YOU HAVE SLEPT ", 960 GOSUB 1370 970 LET F=.17 980 PRINT "YOU HAVE EATEN ", 990 GOSUB 1370 1000 LET F=.23 1010 IF K5 > 3 THEN 1040 1020 PRINT "YOU HAVE PLAYED ", 1030 GOTO 1080 1040 IF K5 > 9 THEN 1070 1050 PRINT "YOU HAVE PLAYED/STUDIED", 1060 GOTO 1080 1070 PRINT "YOU HAVE WORKED/STUDIED", 1080 GOSUB 1370 1090 PRINT "YOU HAVE RELAXED ",K5,K6,K7 1100 PRINT 1110 PRINT " ","**YOU MAY RETIRE IN";E;"**" 1120 PRINT 1130 PRINT " CALCULATED BY THE BEST MINICOMPUTER TODAY - THE VAX-11" 1140 FOR Q=1 TO 2 1150 PRINT 1160 NEXT Q 1170 PRINT 1240 GOTO 240 1250 IF D=13 THEN 1280 1260 PRINT "FRIDAY " 1270 GOTO 710 1280 PRINT "FRIDAY THE THIRTEENT@---BEWARE!" 1290 GOTO 710 1300 PRINT "NOT PREPARED TO GIVE DAY OF WEEK PRIOR TO MDLXPXII -" 1305 PRINT " THE CURRENT CALENDAR DID NOT EXIST BEFORE THAT YEAR." 1310 GOTO 1140 1330 DATA 0,3,3,6,1,4,6,2,5,0,3,5 1370 LET K1= INT(F*A8) 1380 LET I5 = INT(K1/365) 1390 LET K1 = K1-(I5*365) 1400 LET I6 = INT(K1/30) 1410 LET I7 = K1-(I6*30) 1420 LET K5 = K5-I5 1430 LET K6 = K6-I6 1440 LET K7 = K7-I7 1450 IF K7 >= 0 THEN 1480 1460 LET K7 = K7+30 1470 LET K6 = K6-1 1480 IF K6 > 0 THEN 1510 1490 LET K6 = K6+12 1500 LET K5 = K5-1 1510 PRINT I5,I6,I7 1520 RETURN 1530 IF K6 = 12 THEN 1550 1540 GOTO 1090 1550 LET K5 = K5+1 1560 LET K6=0 1570 GOTO 1090 1580 END 1 OPEN "KB:" AS FILE 1 2 PRINT \PRINT "** KB0 ** PLEASE DO NOT USE CONTROL/C" 3 PRINT " IT IS TEMPORARILY INOPERATIVE" 4 PRINT " WE WILL NOTIFY YOU WHEN IT IS BACK UP"\PRINT \PRINT 5 PRINT \PRINT "READY"\PRINT 110 INPUT #1,A$ 120 IF LEFT(A$,3)="RUN" THEN PRINT " I'D RATHER WALK"\GOTO 5 130 IF LEFT(A$,4)="LIST" THEN PRINT " I DON'T FEEL UP TO IT"\GOTO 5 140 IF LEFT(A$,4)="SAVE" THEN PRINT " I DON'T LIKE BANKS"\GOTO 5 150 IF LEFT(A$,3)="OLD" THEN PRINT " NO, I FEEL YOUNG AND CAREFREE"\GOTO 5 160 IF LEFT(A$,3)="NEW" THEN PRINT " YES, I'M QUITE NEW"\GOTO 5 170 IF LEFT(A$,3)="CAT" THEN PRINT " TRY SEARS, ROEBUCK"\GOTO 5 180 IF LEFT(A$,4)="NAME" THEN PRINT " WHO ARE YOU CALLING NAMES?"\GOTO 5 190 IF LEFT(A$,6)="RENAME" THEN PRINT " BUT I LIKE MY NAME"\GOTO 5 200 IF LEFT(A$,6)="UNSAVE" THEN PRINT " O.K. THE ENTIRE DISK!"\GOTO 400 210 IF LEFT (A$,3)="DEL" THEN PRINT " O.K. THE ENTIRE DISK!"\GOTO 400 220 IF LEFT (A$,4)="STOP" THEN PRINT " THE FUN IS JUST STARTING!"\GOTO 5 230 IF LEFT (A$,3)="BYE" THEN PRINT " NO, YOU CAN'T LEAVE NOW!"\GOTO 5 240 IF LEFT (A$,5)="HELLO" THEN PRINT " WELL, HI TO YOU TOO!"\GOTO 5 300 PRINT \PRINT "WHAT??"\GOTO 5 400 SLEEP 8\PRINT "#$%&&&()=*+?>9 THEN PRINT "NO,WAY."\GOTO 250 280 IF A(L1)=0 THEN LET A(L1)=1\GOTO 400 290 PRINT "THAT POSITION IS TAKEN."\GOTO 190 300 PRINT "WHAT POSITION ON LEVEL TWO"; 305 INPUT L2 310 IF L2<1 THEN PRINT "NO,WAY."\GOTO 300 320 IF L2>9 THEN PRINT "NO,WAY."\GOTO 300 330 IF B(L2)=0 THEN LET B(L2)=1\GOTO 400 340 PRINT "THAT POSITION IS TAKEN."\GOTO 190 350 PRINT "WHAT POSITION ON LEVEL THREE"; 355 INPUT L3 360 IF L3<1 THEN PRINT "NO,WAY."\GOTO 350 370 IF L3>9 THEN PRINT "NO,WAY."\GOTO 350 380 IF C(L3)=0 THEN LET C(L3)=1\GOTO 400 390 PRINT "THAT POSITION IS TAKEN."\GOTO 190 400 GOTO 4000 401 LET E=E+1\IF M=27 GOTO 2000 402 LET X=5\GOTO 4000 403 LET X=100\GOTO 4010 410 LET W4=W5\LET H=1\GOTO 450 420 LET W4=W6\LET H=2\GOTO 450 430 LET W4=W7\LET H=3\GOTO 450 440 PRINT "BASIC IS BLOWN"\STOP 450 IF W4<>11 GOTO 470 460 IF A(1)=0 THEN LET A(1)=5\GOTO 1000 470 IF W4<>12 GOTO 490 480 IF A(2)=0 THEN LET A(2)=5\GOTO 1000 490 IF W4<>13 THEN 510 500 IF A(3)=0 THEN LET A(3)=5\GOTO 1000 510 IF W4<>14 GOTO 530 520 IF A(4)=0 THEN LET A(4)=5\GOTO 1000 530 IF W4<>15 GOTO 550 540 IF A(5)=0 THEN LET A(5)=5\GOTO 1000 550 IF W4<>16 GOTO 570 560 IF A(6)=0 THEN LET A(6)=5\GOTO 1000 570 IF W4<>17 GOTO 590 580 IF A(7)=0 THEN LET A(7)=5\GOTO 1000 590 IF W4<>18 GOTO 610 600 IF A(8)=0 THEN LET A(8)=5\GOTO 1000 610 IF W4<>19 GOTO 630 620 IF A(9)=0 THEN LET A(9)=5\GOTO 1000 630 IF W4<>21 GOTO 650 640 IF B(1)=0 THEN LET B(1)=5\GOTO 1000 650 IF W4<>22 GOTO 670 660 IF B(2)=0 THEN LET B(2)=5\GOTO 1000 670 IF W4<>23 GOTO 690 680 IF B(3)=0 THEN LET B(3)=5\GOTO 1000 690 IF W4<>24 GOTO 710 700 IF B(4)=0 THEN LET B(4)=5\GOTO 1000 710 IF W4<>25 GOTO 730 720 IF B(5)=0 THEN LET B(5)=5\GOTO 1000 730 IF W4<>26 GOTO 750 740 IF B(6)=0 THEN LET B(6)=5\GOTO 1000 750 IF W4<>27 GOTO 770 760 IF B(7)=0 THEN LET B(7)=5\GOTO 1000 770 IF W4<>28 GOTO 790 780 IF B(8)=0 THEN LET B(8)=5\GOTO 1000 790 IF W4<>29 GOTO 810 800 IF B(9)=0 THEN LET B(9)=5\GOTO 1000 810 IF W4<>31 GOTO 830 820 IF C(1)=0 THEN LET C(1)=5\GOTO 1000 830 IF W4<>32 GOTO 850 840 IF C(2)=0 THEN LET C(2)=5\GOTO 1000 850 IF W4<>33 GOTO 870 860 IF C(3)=0 THEN LET C(3)=5\GOTO 1000 870 IF W4<> 34 GOTO 890 880 IF C(4)=0 THEN LET C(4)=5\GOTO 1000 890 IF W4<>35 GOTO 910 900 IF C(5)=0 THEN LET C(5)=5\GOTO 1000 910 IF W4<>36 GOTO 930 920 IF C(6)=0 THEN LET C(6)=5\GOTO 1000 930 IF W4<>37 GOTO 950 940 IF C(7)=0 THEN LET C(7)=5\GOTO 1000 950 IF W4<>38 GOTO 970 960 IF C(8)=0 THEN LET C(8)=5\GOTO 1000 970 IF W4<>39 GOTO 982 980 IF C(9)=0 THEN LET C(9)=5\GOTO 1000 982 IF H=1 GOTO 420 985 IF H=2 GOTO 430 990 IF H=3 GOTO 440 995 PRINT "BASIC IS BLOWN"\STOP 1000 IF B=1 GOTO 4010 1010 GOTO 2000 1020 IF S<>0 THEN 1060 1030 IF B(5)=1 THEN PRINT "ILLEGAL MOVE."\GOTO 155 1040 LET T=A(2)+A(4)+A(6)+A(8)+B(2)+B(4)+B(6)+B(8)+C(2)+C(4)+C(6)+C(8) 1041 IF T=1 THEN LET S=2\GOTO 1060 1050 LET S=3 1060 IF S<>3 GOTO 1200 1070 IF E=1 THEN LET B(5)=5\GOTO 2000 1075 IF E>2 GOTO 1900 1080 LET E1=A(1)+A(3)+A(7)+A(9)+B(1)+B(3)+B(7)+B(9)+C(1)+C(3)+C(7)+C(9) 1090 IF E1<>2 GOTO 1110 1100 LET E2=INT(5*RND(0)) 1101 IF E2=3 THEN LET A(5)=5\GOTO 2000 1102 IF E2=2 THEN LET C(5)=5\GOTO 2000 1103 GOTO 1100 1110 LET E2=INT(10*RND(0)) 1120 IF E2<>1 GOTO 1130 1125 IF A(1)=0 THEN LET A(1)=5\GOTO 2000 1130IF E2<>2 GOTO 1140 1135 IF A(3)=0 THEN LET A(3)=5\GOTO 2000 1140 IF E2<>3 GOTO 1150 1145 IF A(7)=0 THEN LET A(7)=5\GOTO 2000 1150 IF E2<>4 THEN 1160 1155 IF A(9)=0 THEN LET A(9)=5\GOTO 2000 1160 IF E2<>5 THEN 1170 1165 IF C(1)=0 THEN LET C(1)=5\GOTO 2000 1170 IF E2<>6 GOTO 1180 1175 IF C(3)=0 THEN LET C(3)=5\GOTO 2000 1180 IF E2<>7 GOTO 1190 1185 IF C(7)=0 THEN LET C(7)=5\GOTO 2000 1190 IF E2<>8 GOTO 1110 1195 IF C(9)=0 THEN LET C(9)=5\GOTO 2000 1196 GOTO 1110 1200 IF E=1 THEN LET B(5)=5\GOTO 2000 1210 IF E>2 GOTO 1900 1220 LET E1=A(1)+A(3)+A(7)+A(9)+B(1)+B(3)+B(7)+B(9)+C(1)+C(3)+C(7)+C(9) 1230 IF E1<>1 GOTO 1300 1240 LET E2=INT(5*RND(0)) 1250 IF E2=2 THEN LET A(5)=5\GOTO 2000 1260 IF E2=4 THEN LET C(5)=5\GOTO 2000 1270 GOTO 1240 1300 LET E2=INT(10*RND(0)) 1310 IF E2<>1 GOTO 1320 1315 IF A(1)=0 THEN LET A(1)=5\GOTO 2000 1320 IF E2<>2 GOTO 1330 1325 IF A(3)=0 THEN LET A(3)=5\GOTO 2000 1330 IF E2<>3 GOTO 1340 1335 IF A(7)=0 THEN LET A(7)=5\GOTO 2000 1340 IF E2<>4 GOTO 1350 1345 IF C(1)=0 THEN LET C(1)=5\GOTO 2000 1350 IF E2<>5 GOTO 1360 1355 IF C(3)=0 THEN LET C(3)=5\GOTO 2000 1360 IF E2<>6 GOTO 1370 1365 IF C(7)=0 THEN LET C(7)=5\GOTO 2000 1370 IF E2<>7 GOTO 1380 1375 IF A(9)=0 THEN LET A(9)=5\GOTO 2000 1380 IF E2<>8 GOTO 1300 1385 IF C(9)=0 THEN LET C(9)=5\GOTO 2000 1390 GOTO 1300 1900 LET E4=INT(5*RND(0)) 1910 IF E4<1 GOTO 1900 1920 IF E4>3 GOTO 1900 1930 LET E5=INT(10*RND(0)) 1940 IF E5<1 GOTO 1930 1950 IF E5>9 GOTO 1930 1960 IF E4<>1 GOTO 1970 1961 IF A(E5)=0 THEN LET A(E5)=5\GOTO 2000 1962 GOTO 1900 1970 IF E4<>2 GOTO 1980 1971 IF B(E5)=0 THEN LET B(E5)=5\GOTO 2000 1972 GOTO 1900 1980 IF C(E5)=0 THEN LET C(E5)=5\GOTO 2000 1981 GOTO 1900 2000 PRINT "THE BOARD IS AS FOLLOWS." 2010 PRINT " LEVEL 1 LEVEL 2 LEVEL 3" 2020 PRINT " ";A(1);A(2);A(3);" ";B(1);B(2);B(3);" ";C(1);C(2);C(3) 2030 PRINT " ";A(4);A(5);A(6);" ";B(4);B(5);B(6);" ";C(4);C(5);C(6) 2040 PRINT " ";A(7);A(8);A(9);" ";B(7);B(8);B(9);" ";C(7);C(8);C(9) 3625 IF M=27 THEN PRINT "DRAW"\GOTO 4610 3630 IF W=0 GOTO 190 3640 IF W=1 THEN PRINT "WELL,YOU WON ONE."\GOTO 4610 3650 IF W=5 THEN PRINT "PDP-11 WINS AGAIN."\GOTO 4610 3660 GOTO 440 4000 LET B=3\LET M=M+1 4001 GOTO 4010 4002 IF N+X=4 THEN LET W=1\GOTO 2000 4003 IF N+X=20 THEN LET W=5\GOTO 2000 4004 IF N+X=15 THEN LET B=1\GOTO 4600 4005 IF N+X=102 THEN LET B=0\GOTO 4600 4006 RETURN 4010 LET N=A(1)+A(2)+A(3)\LET W1=11\LET W2=12\LET W3=13\GOSUB 4002 4020 LET N=A(4)+A(5)+A(6)\LET W1=14\LET W2=15\LET W3=16\GOSUB 4002 4030 LET N=A(7)+A(8)+A(9)\LET W1=17\LET W2=18\LET W3=19\GOSUB 4002 4040 LET N=B(1)+B(2)+B(3)\LET W1=21\LET W2=22\LET W3=23\GOSUB 4002 4050 LET N=B(4)+B(5)+B(6)\LET W1=24\LET W2=25\LET W3=26\GOSUB 4002 4060 LET N=B(7)+B(8)+B(9)\LET W1=27\LET W2=28\LET W3=29\GOSUB 4002 4070 LET N=C(1)+C(2)+C(3)\LET W1=31\LET W2=32\LET W3=33\GOSUB 4002 4080 LET N=C(4)+C(5)+C(6)\LET W1=34\LET W2=35\LET W3=36\GOSUB 4002 4090 LET N=C(7)+C(8)+C(9)\LET W1=37\LET W2=38\LET W3=39\GOSUB 4002 4100 LET N=A(1)+A(4)+A(7)\LET W1=11\LET W2=14\LET W3=17\GOSUB 4002 4110 LET N=A(2)+A(5)+A(8)\LET W1=12\LET W2=15\LET W3=18\GOSUB 4002 4120 LET N=A(3)+A(6)+A(9)\LET W1=13\LET W2=16\LET W3=19\GOSUB 4002 4130 LET N=B(1)+B(4)+B(7)\LET W1=21\LET W2=24\LET W3=27\GOSUB 4002 4140 LET N=B(2)+B(5)+B(8)\LET W1=22\LET W2=25\LET W3=28\GOSUB 4002 4150 LET N=B(3)+B(6)+B(9)\LET W1=23\LET W2=26\LET W3=29\GOSUB 4002 4160 LET N=C(1)+C(4)+C(7)\LET W1=31\LET W2=34\LET W3=37\GOSUB 4002 4170 LET N=C(2)+C(5)+C(8)\LET W1=32\LET W2=35\LET W3=38\GOSUB 4002 4180 LET N=C(3)+C(6)+C(9)\LET W1=33\LET W2=36\LET W3=39\GOSUB 4002 4190 LET N=A(1)+B(1)+C(1)\LET W1=11\LET W2=21\LET W3=31\GOSUB 4002 4200 LET N=A(2)+B(2)+C(2)\LET W1=12\LET W2=22\LET W3=32\GOSUB 4002 4210 LET N=A(3)+B(3)+C(3)\LET W1=13\LET W2=23\LET W3=33\GOSUB 4002 4220 LET N=A(4)+B(4)+C(4)\LET W1=14\LET W2=24\LET W3=34\GOSUB 4002 4230 LET N=A(5)+B(5)+C(5)\LET W1=15\LET W2=25\LET W3=35\GOSUB 4002 4240 LET N=A(6)+B(6)+C(6)\LET W1=16\LET W2=26\LET W3=36\GOSUB 4002 4250 LET N=A(7)+B(7)+C(7)\LET W1=17\LET W2=27\LET W3=37\GOSUB 4002 4260 LET N=A(8)+B(8)+C(8)\LET W1=18\LET W2=28\LET W3=38\GOSUB 4002 4270 LET N=A(9)+B(9)+C(9)\LET W1=19\LET W2=29\LET W3=39\GOSUB 4002 4280 LET N=A(1)+B(5)+C(9)\LET W1=11\LET W2=25\LET W3=39\GOSUB 4002 4285 LET N=A(7)+B(5)+C(3)\LET W1=17\LET W2=25\LET W3=33\GOSUB 4002 4290 LET N=A(3)+B(5)+C(7)\LET W1=13\LET W2=25\LET W3=37\GOSUB 4002 4295 LET N=A(9)+B(5)+C(1)\LET W1=19\LET W2=25\LET W3=31\GOSUB 4002 4300 LET N=A(1)+A(5)+A(9)\LET W1=11\LET W2=15\LET W3=19\GOSUB 4002 4310 LET N=A(3)+A(5)+A(7)\LET W1=13\LET W2=15\LET W3=17\GOSUB 4002 4320 LET N=B(1)+B(5)+B(9)\LET W1=21\LET W2=25\LET W3=29\GOSUB 4002 4330 LET N=B(3)+B(5)+B(7)\LET W1=23\LET W2=25\LET W3=27\GOSUB 4002 4340 LET N=C(1)+C(5)+C(9)\LET W1=31\LET W2=35\LET W3=39\GOSUB 4002 4350 LET N=C(3)+C(5)+C(7)\LET W1=33\LET W2=35\LET W3=37\GOSUB 4002 4360 LET N=A(1)+B(4)+C(7)\LET W1=11\LET W2=24\LET W3=37\GOSUB 4002 4370 LET N=A(7)+B(4)+C(1)\LET W1=17\LET W2=24\LET W3=31\GOSUB 4002 4380 LET N=A(2)+B(5)+C(8)\LET W1=12\LET W2=25\LET W3=38\GOSUB 4002 4390 LET N=A(8)+B(5)+C(2)\LET W1=18\LET W2=25\LET W3=32\GOSUB 4002 4400 LET N=A(3)+B(6)+C(9)\LET W1=13\LET W2=26\LET W3=39\GOSUB 4002 4410 LET N=C(3)+B(6)+A(9)\LET W1=33\LET W2=26\LET W3=19\GOSUB 4002 4420 LET N=A(7)+B(8)+C(9)\LET W1=17\LET W2=28\LET W3=39\GOSUB 4002 4430 LET N=A(9)+B(8)+C(7)\LET W1=19\LET W2=28\LET W3=37\GOSUB 4002 4440 LET N=A(4)+B(5)+C(6)\LET W1=14\LET W2=25\LET W3=36\GOSUB 4002 4450 LET N=A(6)+B(5)+C(4)\LET W1=16\LET W2=25\LET W3=34\GOSUB 4002 4460 LET N=A(1)+B(2)+C(3)\LET W1=11\LET W2=22\LET W3=33\GOSUB 4002 4470 LET N=A(3)+B(2)+C(1)\LET W1=13\LET W2=22\LET W3=31\GOSUB 4002 4475 IF B<2 GOTO 410 4480 IF X=5 GOTO 403 4490 IF X=1 GOTO 401 4500 IF X=100 GOTO 1020 4600 LET W5=W1\LET W6=W2\LET W7=W3\GOTO 4006 4610 PRINT "WILL YOU PLAY AGAIN.TYPE (0) IF YES."; 4۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m