10 ' USER SUPPORTED 11 ' 12 ' This program is user-supported software. It is copyrighted and cannot 13 ' be sold for profit (without the author's express written permission), but 14 ' it may be copied and distributed for free. 15 ' 16 ' The SHAREWARE concept is a distribution method that dispenses with 17 ' heavy marketing/advertising costs and gives the user the opportunity to 18 ' try a software program before buying. Its continued existence depends on 19 ' each user paying for what he does, in fact, use. 20 ' 21 ' If you find this program [MISSION.BAS] useful, please send the $20 (or 22 ' more) registration fee directly to the author: 23 ' 24 ' Richard S. Altman -- P.O. Box 4388 -- Clearlake, CA 95422 25 ' 26 ' Upon registration, you will receive a floppy diskette containing the 27 ' latest version of this program, a compiled version, and a printed manual 28 ' of instructions & hints. You will also receive a FREE calendar printing 29 ' program, an original Blackjack program (for one or two players), and 30 ' other programs by the same author. 31 ' 32 ' WHEN ORDERING, please be sure to indicate single or double density 33 ' disk drive, and the name of the program [MISSION.BAS]. Comments on pro- 34 ' grams are also most welcome! 35 ' 36 ' Due to possible unforeseen circumstances, the above offer is subject 37 ' to change without notice. 38 ' 39 '*************************************************************************** 40 ' Set Up Variables 41 DEFSTR C,F,H-I,L: DEFINT A-B,E,M-N,P,W,Z: WIDTH 255 42 DIM F(24),J(10,10),K(10,10),L(16),M(16),N(16),O(22) 43 CLR=CHR$(23):F=CHR$(8):H=".":ESC$=CHR$(27):FQ=ESC$+CHR$(61):GOSUB 70 44 FOR X=1 TO 24:F(X)=FQ+CHR$(X+31)+" ":NEXT:GOSUB 5020:C7=CHR$(7) 45 DEF FNF(X,Y)=FQ+CHR$(X+31)+CHR$(Y+31):DEF FNRN(X)=INT(RND*X)+1 46 DEF FNTITLE$(X,M$)=FNF(X,1)+STRING$((80-LEN(M$))/2,12)+M$:CX=">>>>> " 47 CA=STRING$(79,45):H1="/":Q$=CHR$(34):FB=CHR$(121):FC=CHR$(191) 48 C=STRING$(5,32):LH=" Headquarters":LS=" State Building" 49 LC="Secret Code Book":LT=" Terrorists":LM="Mission Team Member" 50 LU=" the" + LT: LF=STRING$(80,138) + CHR$(10) :LA=" Enemy Agent" 51 FD=FNF(16,6)+CLR+" = Get a Team Member or Code Book -or- " 52 FD=FD+F(18)+CA+FNF(17,6)+" = Receive a Secret Report.... " 53 EL$=ESC$+"L":ED$=ESC$+"D":HF(1)="Foreign Embassy":GOTO 89 54 ' Miscellaneous Subroutines 55 L=FNTITLE$(2," MISSION: IMPOSSIBLE ") 56 GOSUB 5025:IF L0="I" THEN GOSUB 5065 ELSE GOSUB 5060 57 L0="":PRINT CLR:GOTO 5020 58 IF Z<1 THEN Z=1 59 C1="":IF Z<>1 THEN C1="s" 60 C2="":IF Z<22 THEN C2=" only" 61 PRINT C"You have"C2;Z"hour"C1" left ";:RETURN 62 IF Z>1 THEN LG="begin your Assignment. "ELSE LG="continue. " 63 L=FNTITLE$(23," Press to "+LG):PRINT L; 64 Z3=1:GOSUB 6000:Z3=0:IF Z>1 THEN RETURN ELSE 55 65 PRINT" but it took"Y1"hours to do it!!!":PRINT 66 GOSUB 67:Z=Z-Y1:GOTO 800 67 J(X,Y)=0:K(X,Y)=0:RETURN 68 PRINT" at"K"-"J;H:RETURN 69 J(J,K)=K(J,K):RETURN 70 PRINT CHR$(26):LK=INKEY$:RETURN 71 PRINT:PRINT C"Your Mission, should you decide to accept it, is to ";:RETURN 72 PRINT C"You don't have any "LZ"s.":RETURN 73 PRINT C"You have";:IF D=1 THEN PRINT" one "LZ; ELSE PRINT D;LZ"s"; 74 RETURN 75 W=0:FOR A=1 TO 16:IF M(A)=1 THEN W=W+1 76 NEXT:E1=0:FOR A=1 TO 5:IF P(A)=1 THEN E1=E1+1 77 NEXT:RETURN 78 L=C+"LEGAL MOVES: NORTH - SOUTH - EAST - WEST - REPORT - DISCOVER - MAP" 79 L=L+C:GOSUB 5065:PRINT:RETURN 80 PRINT C"All of"LU" have been killed... ";:RETURN 81 K=K-J:K=K*100:K=INT(K+.5):RETURN 82 TB=TA-2:IF TB<1 THEN TB=1 83 TC=TA+2:IF TC>9 THEN TC=10 84 TE=TD-2:IF TE<1 THEN TE=1 85 TF=TD+2:IF TF>9 THEN TF=10 86 T(1)=TA+(TD/100):K(TA,TD)=10 87 FOR AA=TB TO TC:FOR AB=TE TO TF:K(AA,AB)=1:NEXT AB,AA:RETURN 88 GOSUB 70 89 WIN=0:Z1=0:IF H1="/"THEN 94 ELSE 2800 90 IF Z>10 THEN RETURN ELSE PRINT C;:L=C+C+"ONLY"+STR$(Z)+" HOUR" 91 IF Z<>1 THEN L=L+"S" 92 L=L+" LEFT to complete the Mission."+C+C:IF Z<10 THEN L=L+" " 93 GOSUB 5065:PRINT:RETURN 94 GOSUB 8000:H1="\":GOSUB 2700:GOTO 2800 100 ' Start Mission 105 RESTORE 8500 110 FOR A=1 TO 16:READ L(A):M(A)=0:N(A)=1:NEXT 115 FOR A=1 TO 5:READ H$(A),A$(A),K$(A):NEXT:READ HF(2),HF(3) 120 FOR A=1 TO 5:W(A)=3:A(A)=1:E1(A)=1:P(A)=0:NEXT 125 FOR A=1 TO 10:G(A)=1:FOR B=1 TO 10:J(A,B)=1:K(A,B)=0:NEXT B,A 130 TA=FNRN(10):TD=FNRN(10):GOSUB 82:FOR A=2 TO 5 135 T=FNRN(10):TJ=FNRN(10):IF K(T,TJ)<>0 THEN 135 140 T(A)=T+(TJ/100):K(T,TJ)=A*10:NEXT 145 FOR AA=TB TO TC:FOR AB=TE TO TF:K(AA,AB)=0:NEXT AB,AA:K(TA,TD)=10 150 FOR A=1 TO 22 155 TE=FNRN(10):TF=FNRN(10):IF K(TE,TF)<>0 THEN 155 160 O(A)=TE+(TF/100):D1=FNRN(21)+1:K(TE,TF)=-D1:NEXT 165 FOR A=1 TO 5 170 M4=FNRN(10):M5=FNRN(10):IF K(M4,M5)<>0 THEN 170 175 B(A)=M4+(M5/100):K(M4,M5)=A*100:NEXT:S2=FNRN(3) 180 FOR A=1 TO 3 185 BB=FNRN(10):BC=FNRN(10):IF K(BB,BC)<>0 THEN 185 190 D(A)=BB+(BC/100):IF S2=A THEN S4=D(A):R4=A 195 K(BB,BC)=A*1000:IF S2=A THEN K(BB,BC)=K(BB,BC)+3:R1=BB:R2=BC 200 NEXT:PRINT C7:GOSUB 62:PRINT F(21)LF:GOSUB 70 205 Y=INT(T(1)):X=T(1)-Y:X=X*100:X=INT(X+.5):J(Y,X)=K(Y,X) 210 PRINT C"You are at the "H(1);LH;H:GOSUB 2500:PRINT F(15)CA 215 PRINT C"You are starting at"X"-"Y;H;C7:SWAP X,Y:M(1)=1:N(1)=0 220 PRINT C"You will start with "L(1)" to aid you." 225 PRINT C"You have only"Z"hours to complete your Mission, "LL;H 230 PRINT CA:GOTO 2045 249 ' Print Final Map 250 GOSUB 70:L=FNF(1,16)+" FINAL MAP of ALL LOCATIONS ":GOSUB 5065 255 PRINT:Z1=9:GOTO 310 299 ' Print Map 300 IF R7=1 THEN 840 ELSE R7=1 305 GOSUB 70:PRINT F(1)"H="LH", X="LEFT$(LS,8);"ldg, A="LA", T="LT 310 PRINT STRING$(64,45):PRINT 315 T=3:FOR A=1 TO 10:FOR B=1 TO 10:S5=J(A,B):IF Z1=9 THEN S5=K(A,B) 320 IF S5=0 THEN PRINT TAB(T)"S";:GOTO 350 325 IF S5=1 THEN PRINT TAB(T)"?";:GOTO 350 330 IF S5>9 AND S5<51 THEN IF Z1=9 THEN PRINT TAB(T-1)CHR$(149)CHR$(179)CHR$(170);:GOTO 350 ELSE PRINT TAB(T)"H";:GOTO 350 335 IF S5>999 THEN IF Z1=9 THEN PRINT TAB(T-1)CHR$(144)"X"CHR$(160);:GOTO 350 ELSE PRINT TAB(T)"X";:GOTO 350 340 IF S5<0 THEN PRINT TAB(T)"T";:GOTO 350 345 PRINT TAB(T)"A"; 350 T=T+6:NEXT B:T=3:PRINT:NEXT A:Y2=Y*6 355 PRINT FNF(X+3,Y2-4)CHR$(186)FNF(X+3,Y2-2)CHR$(181);:IF WIN=1 THEN RETURN 360 PRINT F(16);:IF Z1<>9 THEN 800 ELSE Z1=0 365 PRINT CX"The Secretary will dis-avow any knowledge of your actions.":RETURN 399 ' Get Team Member 400 Q=K(X,Y)/10:U=FNRN(2):A=2 405 IF U=1 THEN 415 ELSE 445 410 IF A=0 THEN 435 415 IF W(Q)>0 THEN W(Q)=W(Q)-1 ELSE A=A-1: GOTO 435 420 FOR D4=1 TO 25: D1=FNRN(16): IF N(D1)=0 THEN NEXT: GOTO 430 425 M(D1)=1:N(D1)=0: J$=L(D1): RETURN 430 FOR D1=1 TO 16: IF N(D1)=1 THEN 425 ELSE NEXT 435 IF A<>0 THEN 445 440 J$=C+"Sorry! There are no Team Members left at this"+LH+H:RETURN 445 IF E1(Q)>0 THEN E1(Q)=0:A=A-1 ELSE A=A-1:GOTO 410 450 D1=FNRN(5):IF A(D1)=1 THEN P(D1)=1:A(D1)=0 ELSE 450 455 J$="a "+LC:RETURN 499 ' Get Secret Report 500 Q=K(X,Y)/10:GQ=FNRN(9):IF Q=1 THEN GQ=9 505 IF G(Q)=0 AND G(Q+5)=0 THEN 515 510 IF G(Q)=0 AND GQ<8 THEN G(Q+5)=0:GOTO 515 ELSE 520 515 PRINT C"Sorry, "LL", we have no further intelligence reports...":RETURN 520 PQ=0:PRINT:IF G(Q)=0 THEN G(Q+5)=0 525 PQ=PQ+1:IF PQ=6 THEN 630 ELSE U=FNRN(6) 530 G(Q)=0:ON U GOTO 535,555,570,585,610,585 535 FOR A=1 TO 22:J=INT(O(A)):K=O(A)-J:K=K*100:K=INT(K+.5) 540 IF J(J,K)<>1 THEN NEXT:GOTO 525 545 PRINT C"There are enemy"LT;:GOSUB 68 550 PRINT C"You must memorize their location and avoid them.":GOTO 69 555 FOR A=1 TO 5:J=INT(T(A)):K=T(A):GOSUB 81 560 IF J(J,K)<>1 THEN NEXT:GOTO 525 565 PRINT C"Another"LH" Building is located";:GOSUB 68:GOTO 69 570 FOR A=1 TO 2:J=INT(B(A)):K=B(A):GOSUB 81 575 IF J(J,K)<>1 THEN NEXT:GOTO 525 580 PRINT C"An"LA" is believed to be operating in Sector"K"-"J;H:GOTO 69 585 FOR A=1 TO 2:J=INT(D(A)):K=D(A):GOSUB 81 590 IF J(J,K)<>1 THEN NEXT:GOTO 525 595 PRINT C"Prisoners have been reported at the"LS;:GOSUB 68 600 PRINT C"** IMPORTANT ** This information has ";:L="not":GOSUB 5050 605 PRINT" been verified.":GOTO 69 610 J=INT(S4):K=S4:GOSUB 81:IF Q<>1 AND K(J,K)<>1006 AND K(J,K)<>2006 AND K(J,K)<>3006 THEN 615 ELSE 525 615 PRINT C"The "HF(R4)" is located";:GOSUB 68 620 PRINT C"Enemy"LT" have hidden "LQ" here." 625 J(J,K)=K(J,K)+3:K(J,K)=J(J,K):RETURN 630 PRINT C"I'm sorry, "LL", but Enemy"LT" have sabotaged the":PRINT C"receiv"; 635 PRINT"ing station. We have no more information at this time.":RETURN 699 ' Move to new location 700 PRINT:J(X,Y)=K(X,Y):Z=Z-1:Z4=FNRN(99):IF Z4>96 THEN Z=Z+1 705 RX=K(X,Y):IF RX<51 AND RX>9 THEN GOSUB 70:S2=K(X,Y)/10:PRINT C"You are at the "H(S2);LH;H:GOSUB 2500:PRINT F(15);:GOTO 2000 710 IF RX<0 THEN 1500 715 IF RX>999 THEN 2100 720 IF RX=100 OR RX=200 OR RX=300 OR RX=400 OR RX=500 THEN 1800 725 PRINT:PRINT C;STRING$(9,166)" You have reached a SAFE ZONE.":S1=1 799 ' Obtain Orders 800 GOSUB 2300:LK=INKEY$:IF S1=0 THEN GOSUB 78:PRINT ELSE S1=0 805 GOSUB 90:PRINT C"You are now at"Y"-"X" "STRING$(13,95)" Your orders, "LL"? "; 810 GOSUB 6000 815 IF I="R"THEN 900 820 IF I="M"THEN 300 ELSE R7=0 825 IF I="D"THEN 1000 830 IF I="W"THEN IF Y-1<1 THEN 1055 ELSE Y=Y-1:GOTO 700 835 IF I="E"THEN IF Y+1>10 THEN 1055 ELSE Y=Y+1:GOTO 700 840 IF I="N"THEN IF X-1<1 THEN 1055 ELSE X=X-1:GOTO 700 845 IF I="S"THEN IF X+1>10 THEN 1055 ELSE X=X+1:GOTO 700 ELSE 810 899 ' Condition Report 900 IF R7=2 THEN 810 ELSE R7=2 905 GOSUB 70:L=FNTITLE$(1," . . S T A T U S R E P O R T . . "):GOSUB 5065 910 PRINT F(4):FOR D1=1 TO 3:J=INT(D(D1)):K=D(D1):GOSUB 81 915 IF K(J,K)=1006 OR K(J,K)=2006 OR K(J,K)=3006 THEN 925 ELSE NEXT 920 GOTO 930 925 PRINT C"You know that "LQ;LV;"hidden";:GOSUB 68:PRINT 930 D=0:FOR A=1 TO 16:IF M(A)=1 THEN D=D+1 935 NEXT:LZ=LM:IF D=0 THEN GOSUB 72:GOTO 960 940 GOSUB 73:IF D=1 THEN PRINT": ";:FOR A=1 TO 16:IF M(A)=1 THEN PRINT L(A);H:PRINT C;:GOTO 960 ELSE NEXT 945 PRINT": They are....":PRINT FA:PRINT FA;:G=D:G1=0:FOR A=1 TO 16 950 IF M(A)=1 THEN PRINT L(A);:PRINT STRING$(24-LEN(L(A)),32);:G1=G1+1:IF G1=3 OR G1=6 OR G1=9 OR G1=12 OR G1=15 THEN PRINT:PRINT FA; 955 NEXT:IF D=3 OR D=6 OR D=9 OR D=12 OR D=15 THEN 960 ELSE PRINT:PRINT FA; 960 PRINT F;STRING$(70,95):D=0:FOR A=1 TO 5:IF P(A)=1 THEN D=D+1 965 NEXT:LZ=LC:IF G<16 THEN PRINT 970 IF D=0 THEN GOSUB 72:GOTO 975 ELSE GOSUB 73:PRINT H 975 PRINT:GOSUB 58:PRINT"before"LA"s will ";:L=LR 980 GOSUB 5050:PRINT F" ":PRINT C;C;LQ;H:PRINT:PRINT:GOTO 800 999 ' Search (Discover) an area 1000 Z=Z-1:PRINT 1005 PRINT C"Which direction do you wish to explore and not enter? "; 1010 GOSUB 6000 1015 IF I="N"THEN 1035 1020 IF I="S"THEN 1040 1025 IF I="E"THEN 1045 1030 IF I="W"THEN 1050 ELSE 1010 1035 IF X-1<1 THEN 1055 ELSE Q1=X-1:I="North":Q2=Y:GOTO 1070 1040 IF X+1>10 THEN 1055 ELSE Q1=X+1:I="South":Q2=Y:GOTO 1070 1045 IF Y+1>10 THEN 1055 ELSE Q2=Y+1:I="East":Q1=X:GOTO 1070 1050 IF Y-1>0 THEN Q2=Y-1:I="West":Q1=X:GOTO 1070 1055 PRINT:PRINT C"..... There is ";:L="nothing":GOSUB 5050 1060 PRINT" in that direction. Why try there?":IF Z<15 THEN Z=Z+1 1065 S1=2:GOTO 800 1070 PRINT:PRINT:LK=INKEY$:R5=K(Q1,Q2):D2=FNRN(32):IF D2>27 THEN 1075 ELSE 1105 1075 Z=Z-1:L=STRING$(82,148):GOSUB 1100 1080 PRINT" I'm sorry, "LL", but"LT" have sabotaged the "LB;LD; 1085 L=STRING$(2,148):GOSUB 1100:L=STRING$(2,133):GOSUB 1100 1090 PRINT" No information is available from that sector!"STRING$(29,32); 1095 L=STRING$(82,133):GOSUB 1100:PRINT:S1=2:GOTO 800 1100 GOSUB 5030:PRINT L;:GOTO 5035 1105 S1=3:PRINT C;STRING$(7,95)" To the "I" is "; 1110 J(Q1,Q2)=K(Q1,Q2):IF R5<0 THEN PRINT"a group of"LT;H:GOTO 800 1115 IF R5=0 THEN PRINT"a Safe Zone. (Neutral Zone)":GOTO 800 1120 IF R5<51 THEN PRINT"a"LH" Building.":GOTO 800 1125 IF R5<501 THEN PRINT"an"LA;H:GOTO 800 1130 PRINT"a Foreign"LS;H:GOTO 800 1499 ' Terrorist Attack 1500 GOSUB 70:PRINT CX"Oh, no! You've run into a group of";-RX;F;LT;H 1505 GOSUB 5025:FOR T=1 TO 450:NEXT:AC=-RX/1.5:IF AC<7 THEN AC=7 1510 FOR A=1 TO AC:B=FNRN(8)+4:BA=FNRN(70):D1=FNRN(5) 1515 PRINT FNF(B,BA)K$(D1);:FOR T=1 TO 300:NEXT:PRINT FNF(B,BA)C;C; 1520 NEXT:GOSUB 5020:V=ABS(RX):GOSUB 75 1525 IF E1+W<3 AND V>9 THEN GOSUB 250:PRINT CX"You have been killed by"LU;H:GOTO 1850 1530 IF E1+W=0 THEN GOSUB 250:PRINT CX"You've been given a torturous death by"LU"....":GOTO 1850 1535 TX=FNRN(13):GOSUB 1865:PRINT F(10)CA:PRINT:IF TX<>4 OR RX>-8 THEN 1555 1540 PRINT CX"All of your Assistants have been killed by"LU;H 1545 PRINT CX"You barely escaped!":FOR A=1 TO 15:M(A)=0:NEXT 1550 FOR A=1 TO 5:P(A)=0:NEXT:PRINT:GOTO 800 1555 GOSUB 1860:E2=W+E1:IF V/3.4>E2 THEN 1570 1560 IF V/2>E2 THEN 1655 1565 Y1=FNRN(5)+3:PRINT C"Good work!!":GOSUB 80:GOTO 65 1570 IF E2<3 THEN E=FNRN(E2)ELSE E=FNRN(3) 1575 GOSUB 1580:GOTO 800 1580 D3=W-1:TG=0:GOSUB 80:GOSUB 67:PRINT C"However..." 1585 FOR A=1 TO E 1590 D1=FNRN(15) 1595 IF M(D1)=1 THEN M(D1)=0:PRINT C;L(D1)" has died fighting"LU;H:GOTO 1605 1600 IF W=0 THEN 1615 ELSE 1590 1605 TG=TG+1:D3=D3-1:IF D3<=0 THEN 1615 1610 NEXT:IF TG=3 THEN PRINT:RETURN 1615 PRINT:IF E1=0 THEN RETURN 1620 IF TG=3 THEN RETURN 1625 E=E-TG:IF E>E1 THEN E=E1 1630 IF E<=0 THEN 800 1635 M2=0:FOR A=1 TO E 1640 D1=FNRN(5):IF P(D1)=0 THEN 1640 1645 IF M2=0 THEN PRINT C"The"LT" have stolen the "LC"(s).":M2=1 1650 NEXT:RETURN 1655 GOSUB 80:PRINT 1660 D2=FNRN(15):Y1=FNRN(5)+3:GOSUB 1860:IF M(D2)=1 THEN PRINT C"But... "L(D2)" has been injured and you've lost"Y1"hours.":PRINT:GOTO 66 ELSE 1660 1799 ' Enemy Agent 1800 S3=K(X,Y)/100:S3=INT(S3+.5) 1805 GOSUB 70:PRINT C;LA" "A$(S3)" ... is operating out of this sector." 1810 FOR T=1 TO 400:NEXT:GOSUB 5025 1815 FOR A=1 TO 90:E=FNRN(10)+4:PRINT FNF(E,FNRN(78))H;:NEXT 1820 GOSUB 75:FOR T=1 TO 500:NEXT:GOSUB 5020 1825 IF W<3 OR E1<1 THEN GOSUB 250:PRINT F(15)CX;F;LA" "A$(S3)" has shot you down in cold blood!!!":GOTO 1850 1830 Y1=FNRN(6)+5:GOSUB 1860:IF Y1<8 THEN PRINT F(15)C"Agent "A$(S3)" has wounded you... Healing will take"Y1"hours.":Z=Z-Y1:PRINT:GOTO 800 1835 Y1=13:IF Z<13 THEN Y1=Z-1 1840 Y1=FNRN(Y1)+2:IF Y1<5 AND Z>9 THEN 1835 1845 GOSUB 1860:PRINT F(15)C"You have destroyed Agent "A$(S3)",";:GOTO 65 1850 L=STRING$(4,170):PRINT:PRINT C" "LA"s will soon "LR;LQ" ("L")." 1855 GOSUB 5025:PRINT FNF(R1+3,R2*6-4)L:GOTO 4500 1860 IF(Z-Y1)<1 THEN 1870 ELSE RETURN 1865 IF Z<1 THEN 1870 ELSE RETURN 1870 GOSUB 250:PRINT CX"Sorry, "LL", but time ran out!":GOTO 1850 1999 ' At Headquarters 2000 PRINT F(15)CA:L=FD:PRINT L" ";:J$="":GOSUB 5020 2005 GOSUB 6000 2010 IF I="A"THEN S3=1:GOTO 2020 2015 IF I="F"THEN S3=2:GOTO 2020 ELSE 2005 2020 L=FNF(15+S3,6)+" <"+I+"> ":GOSUB 5065:PRINT F(18)CLR 2025 IF S3=1 THEN GOSUB 400 ELSE GOSUB 500 2030 IF LEN(J$)>50 THEN PRINT J$:GOTO 2040 2035 IF S3=1 AND J$<>""THEN PRINT C"You now have "J$" to assist you." 2040 PRINT CA" ";:GOSUB 58:PRINT"to complete your Mission." 2045 PRINT C"Do you wish to remain at"LH" for another hour? "; 2050 GOSUB 6000 2055 IF I="Y"THEN Z=Z-1:GOSUB 5025:GOTO 2000 2060 IF I="N"OR I="M"OR I=CHR$(13)THEN PRINT F(16)CLR;:GOTO 800 ELSE 2050 2099 ' At Foreign State Building 2100 GOSUB 70:S3=INT(K(X,Y)/1000) 2105 PRINT C"You are at the "HF(S3);H:GOSUB 2600:GOSUB 75 2110 IF W<5 OR E1<2 THEN PRINT F(15)C"You don't have enough "LM"s or Code Books to enter.":PRINT:GOTO 800 2115 PRINT F(16)CX"Do you want to enter the "HF(S3)"? ";C7; 2120 GOSUB 6000:IF I="N"THEN PRINT"No":PRINT:GOTO 800 2125 IF I="Y"OR I=CHR$(13)THEN PRINT"Yes":GOTO 2130 ELSE 2120 2130 IF K(X,Y)=1000 OR K(X,Y)=2000 OR K(X,Y)=3000 THEN 2200 2145 ' ##### Correct Bldg. 2150 WIN=1:IF Z<=5 THEN 2175 2155 L="Congratulations!!":PRINT CX;:GOSUB 5050:PRINT" You've found "; 2160 IF Z2=1 OR Z2=3 THEN PRINT"the "LX"!"ELSE PRINT LQ"!" 2165 Z$="":IF Z<20 THEN Z$=" only" 2170 PRINT CX"You've completed your Mission with"Z$;Z"hours left.":GOTO 2185 2175 PRINT CX"Congratulations! Just in time!" 2180 PRINT CX"You got "LQ" with only seconds to spare!" 2185 PRINT:PRINT CX;F;LA"s will not be able to "LR;:IF Z2=3 THEN PRINT"the "; 2190 PRINT LQ;H:GOTO 4500 2195 ' ##### Wrong State Bldg. 2200 Y1=FNRN(7)+4:Z=Z-Y1:PRINT CX"Wrong"LS"! "; 2205 IF Z2=1 OR Z2=3 THEN PRINT"The "LX" are"; ELSE PRINT LQ" is"; 2210 PRINT" not hidden here." 2215 PRINT CX"You've lost"Y1"hours looking. ("; 2220 IF Z<1 THEN PRINT"No time";:GOTO 2230 ELSE PRINT"Only"Z"hour"; 2225 IF Z<>1 THEN PRINT"s"; 2230 PRINT" left.)":IF Z<1 THEN FOR T=1 TO 750:NEXT 2235 PRINT:GOTO 800 2299 ' Check Time Left 2300 IF Z<=0 THEN FOR T=1 TO 850:NEXT:GOTO 1870 2305 GOSUB 75:M3=0:FOR A=1 TO 5:M3=M3+W(A):NEXT 2310 M4=0:FOR A=1 TO 5:IF E1(A)=1 THEN M4=M4+1 2315 NEXT:IF M3+W<5 OR M4+E1<2 THEN 2320 ELSE RETURN 2320 GOSUB 250:PRINT 2325 PRINT C" Not enough help is left to enter the "HF(S3);H:GOTO 1850 2499 ' Draw Headquarters Building 2500 GOSUB 5025:AD=107:AE=116:FOR A=56 TO 60 2505 PRINT EL$CHR$(A)CHR$(AD)CHR$(A)CHR$(AE);:AD=AD-4:AE=AE+4:NEXT 2510 FOR A=61 TO 78:PRINT EL$CHR$(A)CHR$(77)CHR$(A)CHR$(146);:NEXT 2515 FOR A=31 TO 52 STEP 4:PRINT FNF(9,A)CHR$(131);:NEXT 2520 PRINT EL$CHR$(52)CHR$(141)CHR$(60)CHR$(141) 2525 PRINT FNF(6,56)STRING$(2,166):GOTO 5020 2599 ' Draw Embassy Building 2600 GOSUB 5025:PRINT EL$CHR$(61)CHR$(74)CHR$(78)CHR$(74) 2605 PRINT EL$CHR$(61)CHR$(149)CHR$(78)CHR$(149) 2610 AD=82:AE=141:FOR A=55 TO 60 2615 PRINT EL$CHR$(A)CHR$(AD)CHR$(A)CHR$(AE);:AD=AD-1:AE=AE+1:NEXT 2620 FOR A=61 TO 78:PRINT EL$CHR$(A)CHR$(74)CHR$(A)CHR$(149);:NEXT 2625 PRINT ED$CHR$(62)CHR$(75)CHR$(62)CHR$(148) 2630 PRINT ED$CHR$(77)CHR$(75)CHR$(77)CHR$(148) 2635 PRINT ED$CHR$(62)CHR$(95)CHR$(77)CHR$(95) 2640 PRINT ED$CHR$(62)CHR$(129)CHR$(77)CHR$(129) 2645 FOR A=36 TO 46 STEP 2:PRINT FNF(10,A)" ";:NEXT 2650 IF S3=1 THEN LW=" FOREIGN "+STRING$(18,12)+" EMBASSY " 2655 IF S3=2 THEN LW="PARLIAMNT"+STRING$(18,12)+" HOUSE " 2660 IF S3=3 THEN LW=" STATE "+STRING$(18,12)+" HOUSE " 2665 L=FNF(10,23)+LW:GOSUB 5065:GOTO 5020 2700 ' Input your name 2701 'LL="Mr. Altman":RETURN 2705 GOSUB 55:GOSUB 2765:I=CHR$(12) 2710 L=" Smith"+Q$+" ":PRINT F(8)I;C"Mission Leader Identification:" 2715 PRINT F(10)I;C"Enter your name as follows:" 2720 PRINT I;C;Q$"Mr."L;Q$"Mrs."L;Q$"Miss"L;Q$"Ms."L;Q$"Dr."L:LL=L:PRINT F(16) 2725 PRINT I;C;STRING$(10,62)" ";:INPUT LL:LJ=LEFT$(LL,4):LN=LEFT$(LL,5) 2730 IF LJ="Mr. "OR LJ="MR. "THEN RETURN 2735 IF LN="Mrs. "OR LN="MRS. "THEN RETURN 2740 IF LN="Miss "OR LN="MISS "THEN RETURN 2745 IF LJ="Ms. "OR LJ="MS. "THEN RETURN 2750 IF LJ="Dr. "OR LJ="DR. "THEN RETURN 2755 PRINT FNF(20,7)"A correct repsonse is necessary before you can listen to"; 2760 PRINT" the tape!"C7:FOR A=1 TO 3200:NEXT:GOTO 2700 2765 GOSUB 5025:PRINT F(6)STRING$(79,176)F(13)STRING$(79,131) 2770 FOR X=7 TO 12:PRINT F(X)CHR$(170);FNF(X,79)CHR$(149):NEXT:GOTO 5020 2800 ' Input the Skill Level 2801 'R3=1:P=LEN(LL):GOTO 2820 2805 GOSUB 55:PRINT F(4)CLR;F(6)LL",":P=LEN(LL) 2810 PRINT F(8)C"Please input the SKILL LEVEL: 1-6 (Easy to Hard) "; 2815 GOSUB 6000:R3=VAL(I):IF R3<1 OR R3>6 THEN 2810 2820 Z=118-(R3*12)-FNRN(13):R=FNRN(7):IF R>2 THEN Z=Z-FNRN(R3+1) 2825 IF Z<48 THEN Z=48 2830 IF P<12 THEN LB="Satellite Relay":GOTO 3000 2835 IF P<14 THEN LB="Relay Station":GOTO 3000 2840 IF P<18 THEN LB="IMF Relay":GOTO 3000 2845 LB="Relay" 2999 ' Display Assignment 3000 LB=LB+H:LD=STRING$(27-P-LEN(LB),32):GOSUB 70 3005 PRINT F(1)LF"Good morning, "LL",":GOSUB 5025 3010 Z2=FNRN(10):LR="execute ":LV=" is ":IF Z2=Z5 THEN 3010 ELSE Z5=Z2 3015 PRINT:PRINT:ON Z2 GOTO 3100,3200,3300,3400,3500,3600,3650,3700,3750,3800 3100 LX="Secret Plans":LR="recover ":LQ=" "+LX:LV=" are " 3110 PRINT C"Heinrich Belzig, a world-famous archeologist, has recently "; 3120 PRINT"discovered some"LQ" for a proposed Communist takeover in Europe." 3130 GOSUB 71:PRINT"rescue Belzig, and then"LR;:LQ="the"+LQ:PRINT LQ" and "; 3140 PRINT"permanently stop the coup, which is supposed to start";:GOTO 3810 3200 LQ="Mrs. Barkov":LR="kill " 3210 PRINT C"Konrad Barkov, the eminent atomic physicist, wishes to defect "; 3220 PRINT"to the UnitedStates. He is safe in a neutral Embassy, but "; 3230 PRINT"refuses to defect until his wife,Krissa, is safely out from "; 3240 PRINT"behind the Iron Curtain." 3250 GOSUB 71:PRINT"free "LQ" and bring her to the west. Party "; 3260 PRINT"officials have threatened to kill "LQ 3270 PRINT"unless Dr. Barkov returns";:GOTO 3810 3300 LQ="nuclear warheads":LR="detonate ":LX=LQ:LV=" are " 3310 PRINT C"Helmut Varig has captured two "LQ", which he plans to use to" 3320 PRINT"blackmail the Allied forces into financing his neo-Nazi "; 3330 PRINT"dictatorship." 3340 GOSUB 71:PRINT"find a way into Karig'smaximum security vault and "; 3350 PRINT"recover the "LQ"; otherwise, he plans to"LR"them";:GOTO 3810 3400 LQ="Professor Pavel" 3410 PRINT C"Hans Pavel, a renowned military scientist, has developed a "; 3420 PRINT"revolutionary anti-missle system. He wishes to defect to this "; 3430 PRINT"country with his discovery, buthas been captured and placed "; 3440 PRINT"inside the heavily guarded Romelan Prison." 3450 GOSUB 71:PRINT"rescue "LQ" and his formula. The prison authorities, "; 3460 PRINT"acting on their own, have planned to "LR"him";:GOTO 3810 3500 LQ="Karl Voorhes":LP="a Swiss nuclear scientist" 3510 GOSUB 71:PRINT"rescue "LQ",":TK=1 3520 PRINT LP", who is being held at the "HF(1); 3530 IF TK=3 THEN PRINT:PRINT"and will "; ELSE PRINT" and will" 3540 PRINT"be killed";:GOTO 3810 3600 LQ="Janos Brigas":LP="a South American missionary":GOTO 3510 3650 LQ="Ambassador Pierce":LP="a United Nations diplomat" 3660 TK=3:GOSUB 71:PRINT"rescue Ambassador":PRINT"Pierce, ";:GOTO 3520 3700 LQ="Aristotle Katanos":LP="a Greek industrialist" 3710 TK=3:GOSUB 71:PRINT"rescue Aristotle":PRINT"Katanos, ";:GOTO 3520 3750 LQ="Sergei Ivanoff":LP="the famous Russian playright":GOTO 3510 3800 LQ="Cho Tsong Ling":LP="an elder Chinese statesman":GOTO 3510 3810 X=INT(Z/24):XX=Z-(X*24):PRINT" in"X"day";:IF X>1 THEN PRINT"s"; 3820 IF XX=0 THEN PRINT H:GOTO 4000 3830 PRINT" and"XX"hour";:IF XX<>1 THEN PRINT"s." ELSE PRINT H 4000 PRINT:PRINT:IF TK>0 THEN TK=0:PRINT:PRINT 4010 PRINT"===== As always, "LL", should you or any member of your IM Force" 4020 PRINT" be caught or killed, the Secretary will dis-avow any knowledg"; 4030 PRINT"e of":PRINT" your actions.":PRINT:PRINT"===== (This tape will "; 4040 PRINT"self-destruct in 10 seconds.) Good luck!" 4050 PRINT F(21)LF;:GOTO 105 4499 ' End of Mission 4500 FOR T=1 TO 750:NEXT:I="" 4505 PRINT F(22)C" Do you want to try another Mission (Y/N) ? "; 4510 GOSUB 5020:LK=INKEY$:GOSUB 6000 4515 IF I="Y"OR I=CHR$(13)THEN 88 4520 IF I="N"THEN 4525 ELSE 4510 4525 IF WIN=1 THEN GOSUB 250:PRINT F(16)CLR" <<<"; ELSE PRINT F(22)CLR;C" "; 4530 PRINT" Your Mission, "LL", has been concluded. "; 4535 IF WIN=1 THEN PRINT">>>"F(18)ELSE PRINT 4540 END:GOTO 88 5000 ' Misc. Subroutines 5005 ' 5010 PRINT ESC$"B0";:RETURN:' Inverse Video ON/OFF 5015 PRINT ESC$"C0";:RETURN 5020 PRINT ESC$"B4";:RETURN:' Turn Cursor ON/OFF 5025 PRINT ESC$"C4";:RETURN 5030 PRINT ESC$"B1";:RETURN:' Reduced Intensity ON/OFF 5035 PRINT ESC$"C1";:RETURN 5040 PRINT ESC$"B3";:RETURN:' Underline ON/OFF 5045 PRINT ESC$"C3";:RETURN 5050 GOSUB 5040:PRINT L;:GOTO 5045:' Underline L$ ----- 5055 ' 5060 GOSUB 5010:GOSUB 5030:PRINT L;:GOSUB 5015:GOTO 5035:' Revrs. Video L$ 5065 GOSUB 5010:PRINT L;:GOTO 5015:' BRIGHT Video L$ 6000 ' INKEY$ Subroutines 6010 IZ=INKEY$:I="":IF Z3=1 THEN 6050 6015 I=INKEY$:IF I=""THEN 6015 6020 IF ASC(I)>90 THEN I=CHR$(ASC(I)-32) 6025 RETURN 6050 I=INKEY$:IF I=""THEN 6055 ELSE RETURN 6055 TX=-200:GOSUB 6065:PRINT:PRINT CHR$(13);CHR$(11);CHR$(24) 6060 PRINT CHR$(11);:RETURN 6065 IJ=INKEY$:IK="" 6070 PRINT F(24);:GOSUB 5025:PRINT L;:GOSUB 5020 6075 IK=INKEY$:IF IK<>""THEN RETURN ELSE TX=TX+1:IF TX<250 THEN 6075 6080 PRINT F(24);:GOSUB 5025:GOSUB 5065:GOSUB 5020:TX=0 6085 IK=INKEY$:IF IK<>""THEN RETURN ELSE TX=TX+1:IF TX<150 THEN 6085 6090 TX=0:GOTO 6070 8000 ' Instructions?? 8005 L0="I":GOSUB 55:FA=" ":PRINT FNF(1,1)FA 8010 PRINT EL$FA;FA;FA;FC;:PRINT EL$FA;FA;FB;FA; 8015 PRINT EL$FA;FC;FB;FC;:PRINT EL$FB;FA;FB;FC; 8020 PRINT FNF(12,22)"Do you need instructions (Y or N) ?" 8025 PRINT FNF(24,15)+"(c) 1989 by Richard Altman --- All rights reserved."; 8030 IK=INKEY$:I="":PRINT FNF(12,62)C7; 8035 I=INKEY$:IF I=""THEN VL=VL+1:IF VL>32222 THEN VL=100:GOTO 8035 ELSE 8035 8040 GOSUB 6020:IF I="Y"OR I="N"OR I=CHR$(13)THEN 8045 ELSE 8035 8045 RANDOMIZE VL:PRINT ED$FA;FA;FA;FC:GOSUB 5025:PRINT ED$FA;FA;FB;FA 8050 PRINT FNF(1,80)FA;FNF(2,60)CLR:FA=" | " 8055 IF I="Y"THEN 8100 ELSE 5020 8100 ' Display Instructions 8105 PRINT F(3)CLR;F(5)C"The object of the Mission is to get back the object"; 8110 PRINT"(s) or person taken":PRINT"by the"LA"s and hidden in a Foreign"LS; 8115 PRINT", located somewhere":PRINT"in Western Europe. To enter it, you "; 8120 PRINT"must have at least five Team Members and":PRINT"two "LC"s.":PRINT 8125 PRINT C"There are five"LH", three Foreign"LS"s, five Enemy" 8130 PRINT"Agents, and a lot of"LT"!! At ";:L="each of your"+LH:GOSUB 5050 8135 PRINT", you can get":PRINT"up to three "LM"s and one "LC" to assist you,"; 8140 PRINT" but":PRINT"only one at a time. You may also request an Intellige"; 8145 PRINT"nce Report, which will tell you of an important location." 8150 PRINT:PRINT C"The"LT" are quite mean, and can kill all or some of "; 8155 PRINT"your Mission Team Members or steal your Code Books. The"LA; 8160 PRINT"s are somewhat less deadly; however, they usually take many "; 8165 PRINT"hours to overcome.":PRINT:PRINT C"You may request a Report which "; 8170 PRINT"will tell you how many hours you have left, list "LM"s and Code "; 8175 PRINT"Books you have, and display the legal moves.":L0="I":Z=1:GOSUB 62 8180 PRINT F(5)CLR;C"In addition, you can also request a Map, which will show"; 8185 PRINT" you all that you currently know about the locations of things." 8190 PRINT:PRINT:L="Mission Control"+LH+" Building" 8195 PRINT C"You will start at the ";:GOSUB 5050:PRINT" with a "LM" to help "; 8200 PRINT"you. You can `spy' on a neighboring sector without enteringit."; 8205 PRINT" (MOVING and `DISCOVERING' take one hour each.)":PRINT 8210 PRINT"Use INITIALS for the":GOSUB 78:PRINT:PRINT:PRINT C"The SKILL LEVEL"; 8215 PRINT" you choose will determine the number of hours you'll have to "; 8220 PRINT"complete your Mission (should you decide to accept it). The "; 8225 PRINT"higher the number you select, the ";:L="fewer":GOSUB 5050 8230 PRINT" hours you will have. Good luck!!":Z=2:GOTO 62 8499 ' Data 8500 DATA Rollin Hand,Barney Collier,Cinnamon Carter,Gregory Grant 8505 DATA Pablo San Ramon,Chung Ling Sun,Cameron Mitchell,Giuseppe Bonnano 8510 DATA Burgundy Ames,Matsuo Nakamura,Rene' de la Rue,Angus O'Shannahan 8515 DATA James Gil-Smythe,Peter Rogloff,Max Nargajuna,Sir Thomas Edmonds 8520 DATA Mission Control,Alpha,Bang!,Secret Service,Bravo,Fall! 8525 DATA Central Files,Delta,Ouch!,Central Intelligence,Zeta,Pain! 8530 DATA Field Operations,Omega,Scream!,Foreign Parliament House 8535 DATA Foreign State House, 8600 '.........................................................................