9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999**************************************************************************************DESKTOP /COPYIIPLUS/ĩt !@ Lt{  ؘ !        `**************************************************************************************DESKTOP /COPYIIPLUS/ĩt !@ Lt{  ؘ !        `**************************************************************************************DESKTOP /COPYIIPLUS/ĩt !@ Lt{  ؘ !        `**************************************************************************************DESKTOP /COPYIIPLUS/ĩt !@ Lt{  ؘ !        `**************************************************************************************DESKTOP /COPYIIPLUS/ĩt !@ Lt{  ؘ !        `**************************************************************************************DESKTOP /COPYIIPLUS/ĩt !@ Lt{  ؘ !        `**************************************************************************************DESKTOP /COPYIIPLUS/ĩt !@ Lt{  ؘ !        `9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999-ACPMUG 3BLOAN ASLOVE AS PLOT2 ASPOET AS README MI/ S/TREK AS(STARS ASETURN 800 PRINT "HOW MANY YEARS"; 810 INPUT Y 820 RETURN 850 PRINT "LOAN IN $"; 860 INPUT P 870 RETURN 900 B=P 905 P1=0:P2=0 906 I1=0:I2=0 907 PRINT "PMNT YR PER PMNT TOTAL PMNT TOTAL"; 908 PRINT " BAL" 909 PRINT " NO."INANT" PRINT "INFORMATION AND GIVE THE PERIODIC PAYMENT. YOU WILL THEN BE ASKED" PRINT "IF YOU WANT THE PAYMENT SCHEDULE. A 'Y' ANSWER WILL PRINT THE FULL" PRINT "TABULATION, PAYMENT BY PAYMENT WITH ALL PERIODIC AND CUMULATIVE TOTALS" PRINT PRINT "YNPUT Q$ 150 IF Q$="Y" THEN 900 160 PRINT 200 PRINT "CHANGE PARAMETER N(O), I(NT), Y(EARS), P(AYMENTS), L(OAN), OR C(ONTINUE)" 210 INPUT Q$ 220 IF Q$="N" THEN 10 270 IF Q$="I" THEN 350 280 IF Q$="P" THEN 400 290 IF Q$="Y" THEN 500 300 IF Q$="L" THSTARTREKAS !"#$%&'()*+STARTREKASS,-./0123456STORY AS5789:;<=STRIKE9 AS>?@TREKINST 2ABCDEFGTTT AS5HIJKLMNWUMPUS ASDOPQRSTUVWSPECIFY THEM BEFORE THE 'C'." PRINT "IF 'N' IS ANSWERED TO THE 'CHANGE PARAMETERS?' PROMPT, THE PROGRAM" PRINT "WILL START FROM THE BEGINNING." PRINT PRINT REM 10 GOSUB 700 20 GOSUB 750 28 GOSUB 800 30 GOSUB 850 40 D=N*Y 50 R=R1/(100*N) 52 IF ROU WILL THEN BE GIVEN A CHANCE TO MODIFY PARAMETERS. IF YOU WANT" PRINT "TO RECALCULATE A LOAN CHANGING ONLY THE INTEREST RATE, TYPE" PRINT "'I'. AFTER ENTERING THE NEW INTEREST RATE, ANSWER 'C' TO CONTINUE." PRINT "IF OTHER PARAMETERS NEED CHANGING, EN 600 310 GOTO 40 350 GOSUB 700 360 GOTO 200 400 GOSUB 750 410 GOTO 200 500 GOSUB 800 510 GOTO 200 600 GOSUB 850 610 GOTO 200 700 PRINT "INTEREST RATE IN %"; 710 INPUT R1 730 RETURN 750 PRINT "NUMBER OF PAYMENTS PER YEAR"; 760 INPUT N 770 RREM LOAN AMORTIZATION PROGRAM REM WRITTEN BY BOB SIMPSON , CARDIFF CA. PRINT "* * * * LOAN AMORTIZATION PROGRAM * * * * " PRINT PRINT "TO USE THIS PROGRAM, ENTER THE LOAN DATA AS EACH FACTOR" PRINT "IS REQUESTED. THE COMPUTER WILL REPEAT THE PERT<>0 THEN 60 55 A1=P/D 57 GOTO 70 60 A1=(R/(1-(1+R)^(-D)))*P 70 A=INT(A1*100+.5)/100 100 PRINT "PAYMENT IS $";A;","; N;"TIMES PER YEAR FOR ";Y;"YEARS" 110 PRINT "FOR A LOAN OF $";P;"AT ";R1;"% INTEREST" 120 PRINT 130 PRINT "PAYMENT SCHEDULE"; 140 I;TAB(19);"INT INT PRIN PRIN DUE" 910 PRINT "-----------------------------------------------------------"; 911 PRINT "------" 913 FOR T=1 TO D 914 IF T=0 THEN 940 915 I1=INT(R*B*100+.5)/100 920 I2=I2+I1 925 P1=A-I1 930 P2=P2+PK=K+1 IF FNEVEN(K) EQ 0 THEN GO TO 10 START$=" " GO TO 20 10 START$=" "+STR$(ANGLE+0.001) FOR I=1 TO 5 IF MID$(START$,I,1) EQ "." THEN 30 NEXT I 30 START$=MID$(START$,I-3,3)+" " REM GET SIN $ COS 20 SINI=30*SIN(J) COSI=30LEFT$(OLD$,POSITION-1) + FIG$ + MID$(OLD$,POSITION+1,1000) BAR$="!" BLANK$=" " DUMMY$=BAR$+BLANK$+BAR$+BLANK$+BAR$ PRINT # 1;BLANK$+"SINE = * COSINE = +" PRINT # 1; " " N$=" -1.0 -.8 -.6 -.4 -.2 .9,5,17,8 650 DATA 1,29,9,9,12,1,13,5,40,1,1,13,5,40,1,4,6,13,3,10,6,12,5,1 660 DATA 5,6,11,3,11,6,14,3,1,5,6,11,3,11,6,15,2,1 670 DATA 6,6,9,3,12,6,16,1,1,6,6,9,3,12,6,7,1,10 680 DATA 7,6,7,3,13,6,6,2,10,7,6,7,3,13,14,10,8,6,5,3,14,6,6,2,10 690 DATA 81 935 B=B-P1 940 Y1=INT(T/N) 945 T1=T-Y1*N 950 PRINT T;TAB(8);Y1;TAB(13);T1;TAB(19);I1;TAB(29);I2;TAB(39);P1; 953 PRINT TAB(49);P2;TAB(59);B 955 NEXT T 956 PRINT "PAYMENTS TOTAL $";D*A 960 GOTO 160 999 END $B 120 T$="LOVELOVELOVELOVELOVELOVELOVELOVELOVELOVE" 121 T$=T$+"LOVELOVELOVELOVELOVELOVELOVELOVELOVELOVE" 122 T$=T$+"LOVELOVELOVELOVELOVELOVELOVELOVELOVELOVE" 128 REM 130 GOSUB 800 135 PRINT:PRINT:PRINT 140 C=0 200 A1=1:P=1:C=C+1 202 IF C=37 THEN 0 .2 .4 .6 .8 1.0" PRINT # 1;N$ X$=" " FOR I=1 TO 10:X$=X$+"+-----":NEXT I X$=X$+"+" PRINT # 1;"DEGREES"+X$ REM START CALC LOOP PI=3.141597 PI24=PI/24 K=-1 REM RUN FROM 0 TO 360 IN 25 STEPS FOR J=0 TO 2*PI+PI24 STEP PI24 ,6,5,3,14,6,7,1,10,9,6,3,3,15,6,16,1,1 700 DATA 9,6,3,3,15,6,15,2,1,10,6,1,3,16,6,14,3,1,10,10,16,6,12,5,1 710 DATA 11,8,13,27,1,11,8,13,27,1,60 720 GOTO 999 800 PRINT CHR$(12);CHR$(127);CHR$(127);CHR$(127);CHR$(127) 810 RETURN 999 REM 1000 END REM PLOTS SIN & COS - 1 CYCLE - ON PLOT.DAT PLOT$="PLOT.DAT" FILE PLOT$ REM USER FUNCTION FOR X MODULO 2 (0=EVEN, 1=ODD) DEF FNEVEN(X)=X-2*INT(X/2) REM USER FUNCTION TO A CHAR AT POSITION IN OLD STRING DEF FNSTRINGFIX$(OLD$,FIG$,POSITION) = \ ,6,4,6,22,12,5,6,5 610 DATA 4,6,21,11,8,6,4,4,6,21,10,10,5,4,4,6,21,9,11,5,4 620 DATA 4,6,21,8,11,6,4,4,6,21,7,11,7,4,4,6,21,6,11,8,4 630 DATA 4,6,19,1,1,5,11,9,4,4,6,19,1,1,5,10,10,4,4,6,18,2,1,6,8,11,4 640 DATA 4,6,17,3,1,7,5,13,4,4,6,15,5,2,23,5,1,2999 205 PRINT 210 READ A:A1=A1+A 212 IF P=1 THEN 300 230 FOR I = 1 TO A:PRINT " ";:NEXT I 240 P=1:GOTO 400 300 FOR I=A1-A TO A1-1:PRINT MID$(T$,I,1);:NEXT I 310 P=0 400 IF A1>60 THEN 200 410 GOTO 210 600 DATA 60,1,12,26,9,12,3,8,24,17,8,4,6,23,21*COS(J) REM THERE ARE ALWAYS ALIGNMENT & "ROUNDOFF" PROBLEMS IN REM PLOTTING ON A TERMINAL. THIS IS AN ATTEMPT TO DEAL WITH IT IF SINI LT 0 THEN SINI=SINI+1 IF COSI LT 0 THEN COSI=COSI+1 ANGLE=ANGLE+7.5 REM THE PRIMITIVE INTEGER FIX USED HERE PRIN\ PRINT TAB(15);"THAT IS B I G !!!!!!!" :\ RETURN PRINT TAB(15);"THAT WOULD TAKE ABOUT ";NO.WANTED*.74638;" DAYS TO PRINT" RETURN 9400 REM-------MORE THAN 99 IF RND>.3 THEN \ PRINT TAB(15);"I CAN'T HANDLE THAT MANY POEMS, CAN YOU?" :\000 PRINT TAB(13+Q);"IN THE" GOSUB 1000 PRINT TAB(8+Q);MID$(B$,X,7) GOSUB 1000 PRINT TAB(8+Q);MID$(G$,X,7) GOSUB 1000 PRINT TAB(8+Q);MID$(C$,X,7) GOSUB 1000 PRINT TAB(8+Q);MID$(D$,X,7) GOSUB 1000 PRINT TAB(8+Q);MID$(E$,X,7) GOSUB 10EVER WOULD HAVE THOUGHT OF THAT" :\ RETURN IF RND>.5 THEN \ PRINT TAB(15);"-----------> Z E R O!!!!! WAY OUT!" :\ RETURN IF RND>.5 THEN \ PRINT TAB(15);"IF THAT'S WHAT YOU WANT, THAT'S WHAT YOU GET!" :\ GOTO 50 PRINT TAB(15);"...... I THEY WE I THEY WE I THEY WE " C$="FLASH SEE GLIMPSETRACE TASTE HEAR SMELL CAPTURESEIZE ATTRACT" D$=" BRIGHT WIREDFROZEN PAINTEDRUSTED DRY MOIST SPIRALMOLTEN BARE" E$="PLASMA TIME CIRCLESWORTS 1 INSTEAD OF 0. IF K EQ 0 THEN START$=" 0 " REM PLACE + THEN * ON LINE OF PLOT LINE.TO.PRINT$=FNSTRINGFIX$(DUMMY$,"+",COSI+31) LINE.TO.PRINT$=START$+FNSTRINGFIX$(LINE.TO.PRINT$,"*",SINI+31) PRINT # 1; LINE.TO.PRINT$ NEXT J PRINT # 10)+1 D=100*RND FOR DELAY=1 TO D GARBAGE=GARBAGE+1 NEXT DELAY RETURN 9000 REM-----BIZARRE NUMBER OF POEMS IF NO.WANTED=0 THEN \ GOTO 9100 IF NO.WANTED<0 THEN \ GOTO 9200 IF NO.WANTED>1000 THEN \ GOTO 9300 IF NO.WANTED>99 THEN \00 PRINT TAB(8+Q);"IN THE" GOSUB 1000 PRINT TAB(8+Q);MID$(F$,X,7) NO.OF.POEMS=NO.OF.POEMS+1 IF NO.OF.POEMS>=NO.WANTED THEN GOTO 50 FOR DELAY = 1 TO 500 LET GARBAGE=GARBAGE+1 NEXT DELAY GOTO 10 1000 REM X=7*INT(RND*10)+1 Q=5*INT(RND* REM------------------------------------------------------------ REM POETRY WRITING PROGRAM WRITTEN BY MITCHELL WAITE REM------------------------------------------------------------ REM JUNE 7, 1977 NO.OF.POEMS=0 FOR I=1 TO 8 PRINT CHR$(1.......JABBERWOCK..............." RETURN 9200 REM------NEGATIVE IF RND>.3 THEN \ PRINT TAB(15);"HERE ON EARTH WE CAN'T HANDLE THAT" :\ RETURN PRINT TAB(15);"OFF THE WALL MAN!" RETURN 9300 REM--------MORE THAN ONE THOUSAND IF RND>.5 THEN DS EYES FINGERS ROOTSAMOEBA ATOMS NUCLEI " F$="SPIRITSSTARS PLANETSCITIES TREES DESERTFROST SILENCEMIST VOID" 10 REM FOR X=1 TO 24 PRINT NEXT X GOSUB 1000 PRINT TAB(8+Q);"ALL" GOSUB 1000 PRINT TAB(8+Q);MID$(A$,X,7) GOSUB 11; " "+X$ PRINT # 1; N$ PRINT # 1; " " PRINT # 1;" PLOT OF SINE & COSINE FUNCTIONS FOR ONE CYCLE" CLOSE(1)  GOTO 9400 IF RND>.5 THEN \ PRINT TAB(15);"WOW, MAN! LIKE, DIG, LIKE THAT'S A LOT OF POEMS." :\ ELSE \ PRINT TAB(15);"COZMIC -- TOO MUCH POETRY, MAN!" RETURN 9100 REM-----ZERO REQUESTED IF RND>.5 THEN \ PRINT TAB(15);"NONE! WOW!!! I N PRINT PRINT PRINT PRINT FOR X=1 TO 80 GARBAGE=GARBAGE+1 NEXT X RANDOMIZE A$="WHITE GRAY VIOLET BLUE GREEN YELLOW ORANGE REDBROWN BLACK " B$=" BUDS LEAVES HILLS SNOW SUN RAIN CLOUD SKY DAWN DUSK" G$="WE0); NEXT I 17 REM-- PRINT TAB(15);"HOW MANY POEMS WOULD YOU LIKE "; INPUT NO.WANTED IF NO.WANTED<=0 OR NO.WANTED>10 THEN \ GOSUB 9000 :\ GOTO 17 PRINT PRINT PRINT PRINT PRINT PRINT PRINT TAB(20);" P O E T" PRINT RETURN PRINT TAB(15);"JDEK39IMZMZXZGIBBERISHKDOKZZXZQQZXQZ" RETURN 50 REM E O J FOR X=1 TO 24 PRINT NEXT X PRINT TAB(24);"THE POET NEVER DIES. . ." PRINT PRINT PRINT STOP #" " H MODIFY CURRENT SECTOR IN HEX." " Q OR ^^^C EXIT TO ^C^P/^M" " S SELECT SECTOR #" " T SELECT TRACK #" " W WRITE MODIFIED SECTOR TO DISK." QQFY,QQJY "^IN ADDITION, ^S^P^A^T COPIES ALL THE ^B^I^O^S VECTORS INTO ITSELF" "DURING START-UP, SO, AS WELL AS SERVICE DATA ON THE TERMINAL ITSELF." QQS 1 "^SOFTWARE:" QQS "--------" QQS 1 "^I AM SUBMITTING THE FOLLOWING PROGRAMS TO THE USERS GROUP:" QQS 1 "^M^L80: ^BY COLLECTING PIECES FROM VARIOUS SOURCES AND" "MAKING A FEW PATCHES MYSELF, ^E GAME '^STAR ^LANES'," "WHICH WAS PUBLISHED IN ^INTERFACE ^AGE MAGAZINE SOME MONTHS" "AGO. ^IT'S SORT OF A CROSS BETWEEN ^STAR ^TREK AND ^MONOPOLY. ^SEE" "^INTERFACE ^AGE FOR DIRECTIONS." QQS 1 "^S^P^A^T: ^THIS IS A HEAVILY MODIFIED VERSION OF '^E^XD SPACE)." QQS 1 "^PROCESSOR ^TECHNOLOGY ^V^D^M-1 VIDEO INTERFACE." QQS 1 "^TARBELL CASETTE INTERFACE." QQS 1 "^BURROUGHS 9350-2 TYPEWRITER TERMINAL (SIMILAR TO ^FRIDEN 7000)." "^THIS RATHER UNUSUAL TERMINAL IS RUNNING THROUGH AN INTERFACE" "OF MY R (IF NON-ZERO). ^IT IS WRITTEN IN" "^M^L80." QQS 1 "^F^O^R^M^A^T: ^THIS ^B^A^S^I^C-^E PROGRAM IS A SIMPLE TEXT PROCESSOR THAT" "DOES FILLING, JUSTIFICATION, CASE CONTROL, TITLING, AND" "PAGINATION. ^IT TAKES A ^B^A^S^I^C-^E DATA FILE AS ITS INPUT ANI HAVE COME UP WITH A REASONABLY" "CLEAN SET OF MODULES FOR THE ^M^L80 COMPILER." QQS 1 "^X^D^I^R: ^THIS IS SIMILAR TO MY '^W^D^I^R' PROGRAM, EXCEPT THAT IT" "ONLY PUTS THREE FILENAMES ON A LINE, AND REPORTS THE FILE SIZE" "AS WELL AS THE EXTENT NUMBE"10/9/77" QQS 1 "^DEAR ^TONY:" QQS 1 "^IN RESPONSE TO YOUR RECENT REQUEST, ^I SUBMIT THE FOLLOWING" "DATA ON MY EQUIPMENT AND INTERESTS, AS WELL AS SEVERAL NEW" "PROGRAMS TO ADD TO THE USERS GROUP LIBRARY." QQS 1 "^EQUIPMENT:" QQS "---------" QQ^A^M', WHICH" "ALLOWS MODIFICATION OF THE SECTOR BEING EXAMINED. ^THE NEW" "COMMANDS ARE:" QQFN,QQJN " LINE FEED DOES THE SAME THING AS '+'." " A MODIFY CURRENT SECTOR IN ^A^S^C^I^I." " C CLEAR ALL POINTERS AND RESTART ^S^P^A^T" " D SELECT DRIVE OWN DESIGN, WITH NO SPECIAL SOFTWARE REQUIRED. ^IF ANY" "OTHER MEMBER OF THE GROUP HAS ONE OF THESE TERMINALS," "(^HERBACH & ^RADEMANN IN ^PHILADELPHIA SOLD A BUNCH OF THEM LAST" "YEAR) ^I CAN PROVIDE PLANS, PARTS AND/OR A ^P^C BOARD FOR MY" "INTERFACED" "PRODUCES ITS OUTPUT ON THE CONSOLE DEVICE. ^MOST COMMANDS" "ARE IMBEDDED IN THE INPUT FILE. ^LIKE MOST PROGRAMS WRITTEN" "IN ^B^A^S^I^C-^E, IT IS QUITE SLOW (5-10 SECONDS PER LINE)." QQS 1 "^L^A^N^E^S: ^THIS IS A CONVERSION TO ^B^A^S^I^C-^E OF THTES OF ^R^A^M, DIVIDED UP AS 32^K FROM 0-7^F^F^F AND" "4^K FROM ^F000-^F^F^F^F (NORMALLY CONTAINS MY ^I/^O MONITOR)." QQS 1 "2^K OF ^P^R^O^M: 1^K CONTAINS ^F^D^O^S-^I^I FIRMWARE, OTHER 1^K IS BOOTSTRAP" "AND DISC DRIVERS FOR ^C^P/^M (WITH LOTS OF UNUSES 1 "^IMSAI 8080 CABINET, WITH BOTH ^IMSAI ^M^P^U CARD AND ^ITHACA ^AUDIO" "^Z-80 ^M^P^U CARD." QQS 1 "^ICOM 'FRUGAL FLOPPY' SYSTEM WITH TWO DRIVES IN ^SYNETIC ^DESIGNS" "CABINET AND ^ICOM ^F^D^O^S-^I^I FIRMWARE/SOFTWARE." QQS 1 "^A TOTAL OF 36^K BY IT SHOULD RUN ON ANYBODY'S HARDWARE." "^THE ONLY HARDWARE DEPENDANT ROUTINE IS '^S^T^A^T', WHICH READS" "THE DISK CONTROLLER STATUS BYTE (USED ONLY FOR DISPLAY)." QQS 1 "^T^I^N^Y^B^A^S: (^BY ^BRUCE ^SHERRY, ^LIVERMORE, ^CA.)" "^THIS IS AN" "EXTENSIOING" 260 PRINT "RANGE = ";R;" KM, BEARING = ";B;" DEGREES." 270 INPUT "COMMAND";C 280 PRINT "WORKING" 290 PRINT C 300 I = 1 310 J = 2 320 H = 0 330 ON C GOSUB 790, 920, 1040, 1140, 1180, 1250, 1310 340 GOTO 1360 350 REMARK - KLINGON MOVE SELECTIO "^M^E^M^T^S^T" QQS 1 "^A^S^S^I^G^N AND ^V^B^I^O^S" QQS 1 "^M^A^Z^E" QQS 1 "^T^R^A^I^N" QQS 1 "^V^B^I^O^S31 AND ^B^O^O^T31" QQS 1 "^I^D^I^R AND ^I^C^O^P^Y" QQS 1 "^L^I^O^S" QQS 1 "^IT'S GENERALLY IMPOSSIBLE TO CATCH ME AT MY OFFICE, BUT ^I" OF TIME ON GAMES." QQS 1 "^I ALSO USE MY SYSTEM TO DEVELOP NEW PERIPHERALS FOR THE" "^S-100 BUS. ^THE ^FRIDEN INTERFACE ^I MENTIONED EARLIER IS" "JUST ONE EXAMPLE OF THIS. ^I HAVE SEVERAL OTHER DESIGN PROJECTS" "IN THE WORKS, WHICH ^I'LL NOT TALK AB "COMMANDS ARE:" PRINT "1 = FIRE FORWARD PHASORS" PRINT "2 = FIRE REAR PHASORS" PRINT "3 = FIRE PHOTON TORPEDO" PRINT "4 = MANEUVER TO ATTACK" PRINT "5 = ATTEMPT TO BREAK CONTACT" PRINT "6 = SELF-DESTRUCT" PRINT "7 = SURRENDER" PRINT "GOOD R ^X^S^T^A^T (IF POSSIBLE). ^I ALREADY HAVE ^X^S^T^A^T.^C^O^M." QQS 1 "^A DECENT EXPLANATION OF HOW TO USE '^A^C^T'. ^THE THREE-PAGE" "WRITEUP ^I CURRENTLY HAVE IS HOPELESSLY CRYPTIC." QQS 1 "^H^A^I^K^U, ^A^M^U^S^E, ^A^M^A^Z^E, ^I^O^E^X^A^M^P, AND ANN OF ^LI^CHEN ^WANG'S ^PALO ^ALTO ^TINY ^B^A^S^I^C, WHICH INCLUDES" "COMMANDS TO LOAD AND SAVE ^TINY ^B^A^S^I^C PROGRAMS ON DISK." QQS 1 "^OBJECTIVES:" QQS "----------" QQS 1 "^MY MAIN OBJECTIVE IS TO HAVE FUN WITH MY SYSTEM, DOING THINGS" "THAT ^I S 4 QQFN,QQJN "^BRUCE ^R. ^RATOFF" "^BOX 28-^D, ^APT 13^B" "1 ^MARINEVIEW ^PLAZA" "^HOBOKEN, ^N^J 07030" "201-963-0848" "CAN USUALLY BE REACHED AT HOME WEEKDAY EVENINGS. ^LOOKING" "FORWARD TO HEARING FROM YOU AGAIN." QQS 1 "^YOURS ^TRULY," QQS 4 QQFN,QQJN "^BRUCE ^R. ^RATOFF" "^BOX 28-^D, ^APT 13^B" "1 ^MARINEVIEW ^PLAZA" "^HOBOKEN, ^N^J 07030" "201-963-0848"OUT UNTIL ^I CAN SHOW THEM" "UP AND RUNNING." QQS 1 "^I AM INTERESTED IN APPLICATIONS SOFTWARE FOR THE SMALL BUSINESS" "MAN. ^I HAVE AN ORDER PROCESSING SYSTEM FOR MY HARDWARE" "SALES, WRITTEN IN ^OPUS/1. ^ACCOUNTS PAYABLE AND GENERAL LEDGER" "ARE ILUCK" PRINT 180 PRINT "ENTER STAR DATE" 190 INPUT A 200 LET A2 = -ABS(A/1000) 205 RANDOMIZE 210 LET R = 10^7*RND 221 RANDOMIZE 220 LET B = 180*RND 230 LET I = 1 240 REMARK - ODD MOVES ARE THE ENTERPRISE, EVEN KLINGON 250 PRINT "KLINGON APPROACHY OTHER EXAMPLES YOU" "HAVE OF HOW TO USE '^A^C^T'." QQS 1 "^R^T^E" QQS 1 "^B^O^O^T#47^A" QQS 1 "^B^I^O^S#47^A - ^I'M ESPECIALLY CURIOUS HOW YOU LET ^C^P/^M KNOW YOU'VE" "TAKEN AN EXTRA TRACK FOR THE BOOT." QQS 1 "^P^R^N^T AND ^P^R^I^N^T" QQS 1 DON'T NORMALLY GET THE OPPORTUNITY TO DO ON MY JOB" "(^I'M A PROGRAMMER/ANALYST FOR A CONSULTING FIRM IN ^N^Y^C)." "^THIS INCLUDES TINKERING WITH SYSTEMS SOFTWARE, AND TRYING" "OUT NEW LANGUAGES AND PACKAGES AS THEY COME ALONG. ^I ALSO" "SPEND A LOT 10 REMARK - STAR TREK BY DAN DRUID FOR BASIC-E 20 RANDOMIZE 90 DIM S(7,2) 110 FOR I = 1 TO 2 120 FOR J = 1 TO 6 130 LET S(J,I) = 1 140 NEXT J 150 LET S(7,I) = 0 160 NEXT I 170 REM GENERATE RANGE AND BEARING PRINT "STARTREK - VERSION 1.0" PRINTRECODE '^F^O^R^M^A^T' IN ^A.^L. OR ^M^L80, TO GET" "IT UP TO A DECENT SPEED AND ADD SOME MORE FEATURES." QQS 1 "^USERS ^LIBRARY:" QQS "----- -------" QQS 1 "^I WOULD LIKE TO RECEIVE THE FOLLOWING ITEMS FROM THE" "USERS LIBRARY:" QQS 1 "^SOURCE FON THE WORKS." QQS 1 "^AS EVIDENCED BY THE '^F^O^R^M^A^T' PROGRAM, ^I AM ALSO INTERESTED IN" "WORD PROCESSING. ^I USE '^F^O^R^M^A^T' FOR MOST OF MY CORRESPONDENCE" "AND TO FORMAT THE INSTRUCTION MANUALS FOR MY ^S-100 PRODUCTS." "^I PLAN TO EVENTUALLY N 360 I = 2 370 REMARK - CHECK KLINGON PHASOR STATUS 380 W = S(1,I)+S(2,I) 390 J = 1 400 IF S(3,I) = 1 AND R>3E+06 AND B<100 THEN 710 410 IF W>0 AND R<3E+06 THEN 540 420 IF W<>0 THEN 480 430 REMARK - ATTEMPT TO BREAK CONTACT 440 PRINT "KLINGON AT=ABS(B-150+20*RND) 1960 IF B>180 THEN 2000 1970 I = J 1980 J = 3-I 1990 ON I GOTO 260, 360 2000 B = ABS(360-B) 2010 GOTO 1970 2020 END NT 1390 IF H<>0 THEN 1440 1400 PRINT "MISS" 1410 GOTO 1920 1420 REM 1430 REM 1440 PRINT "HIT" 1450 D = P*(S(5,J)) 1460 IF D<=2 THEN 1480 1470 D = 2 1480 S(7,J) = S(7,J)+D 1490 S(5,J) = S(5,J)-P/100 1500 Z=10-INT(S(7,J)) 1510 IF J=1 THEN 1580 720 C = 3 730 B2 = B : B = 40 750 GOSUB 1040 760 B = B2 770 GOTO 1360 780 REMARK - FIRE FORWARD PHASORS 790 H = 0 800 IF S(1,I) <> 0 THEN 830 810 PRINT "FORWARD PHASORS NOT OPERATIONAL" 820 IF I = 1 THEN 260 830 R1 = 1-.2*(R/1E+06) 840 B1 = (9NT"MINOR DAMAGE AMIDSHIPS" 1800 PRINT"SHIELDS WEAKENING" 1810 S(1,J) = 0 1820 GOTO 1920 1830 PRINT"SHIELDS HOLDING -- NO DAMAGE" 1840 GOTO 1920 1850 PRINT"WEAPONS SYSTEMS DEACTIVATED" 1860 PRINT"DILITHIUM CRYSTALS OVERHEATING" 1870 S(1,J) = 0 1880(6,1)) 1190 IF R>1E+08 THEN 1230 1200 PRINT "CONTACT NOT BROKEN" 1210 H = 0 1220 RETURN 1230 PRINT "CONTACT LOST" 1240 GOTO 10 1250 PRINT"SELF DESTRUCT ACTIVATED" 1260 FOR I=10 TO 1 STEP -1 1270 PRINT I 1280 NEXT I 1290 PRINT "BOOM" 1300 GOTO 1TEMPTS TO BREAK CONTACT" 450 C = 5 460 GOSUB 1180 470 GOTO 1920 480 PRINT "KLINGON MANEUVERING TO ATTACK" 490 C = 4 500 GOSUB 1140 510 B = 0 520 H = 0 530 GOTO 1920 540 PRINT "KLINGON FIRES PHASOR" 550 C = 1 560 IF B<90 THEN 640 570 IF S(2,I)=40, 1850, 1730, 1730, 1780, 1780, 1780, 1830, 1830 1620 PRINT"ENTERPRISE DESTROYED" 1630 GOTO 10 1640 PRINT"WEAPON SYSTEMS DESTROYED" 1650 PRINT"WARP DRIVE DESTROYED" 1660 PRINT"MAJOR STRUCTURAL DAMAGE" 1670 PRINT"SHIELDS BUCKLING" 1680 S(1,J) = 0 1520 REMARK - DAMAGE DONE TO KLINGON 1530 PRINT"SCANNER REPORT ON KLINGON" 1540 IF Z>1 THEN 1610 1550 PRINT "KLINGON DESTROYED" 1560 GOTO 10 1570 REMARK 1580 PRINT "ENTERPRISE DAMAGE REPORT" 1590 IF Z>0 THEN 1610 1600 Z = 1 1610 ON Z GOTO 1620, 160-B)/90 850 IF B1 < 0 OR R > 5E+6 THEN 900 860 REMARK - GENERATE RND(0-1) 870 IF R1 < RND THEN 900 880 H = 1 890 P = 4 900 RETURN 910 REMARK - REAR PHASOR 920 IF S(2,I) <> 0 THEN 960 930 PRINT "REAR PHASORS NOT OPERATIONAL" 940 REMARK - 950 IF S(2,J) = 0 1890 S(3,J) = 0 1900 GOTO 1920 1910 REMARK - NEW RANGE AND BEARING 1905 ALPHA = .05*(S(6,1)+S(6,2)) 1906 BETA = S(4,1)+S(4,2) 1920 R3 = .5*(BETA + ALPHA) 1925 RANDOMIZE 1930 R = R+R3*(RND-.5)*1E+06 1940 R=ABS(R) 1945 RANDOMIZE 1950 B0 1310 PRINT"MESSAGE FROM KLINGON*** I ACCEPT YOUR SURRENDER" 1320 PRINT "PREPARE TO BE BOARDED" 1330 PRINT "*** MESSAGE FROM STARFLEET COMMAND" 1340 PRINT "YOU COWARD" 1350 GOTO 10 1360 LET J=3-I 1370 IF C>3 THEN 1920 1380 REMARK - DAMAGE ASSESSME0 THEN 600 580 GOSUB 920 590 GOTO 1360 600 B = B-90 610 GOSUB 790 620 B = B+90 630 GOTO 1360 640 IF S(1,I) = 0 THEN 670 650 GOSUB 790 660 GOTO 1360 670 B = B+90 680 GOSUB 920 690 B = B-90 700 GOTO 1360 710 PRINT "KLINGON FIRES PHOTON TORPEDO"1690 S(2,J) = 0 1700 S(3,J) = 0 1710 S(4,J) = 0 1720 GOTO 1920 1730 PRINT"PHASORS DESTROYED" 1740 PRINT"MINOR DAMAGE AMIDSHIPS" 1750 PRINT"SHIELDS WEAKENING" 1760 S(1,J)=0 : S(2,J) = 0 1770 GOTO 1920 1780 PRINT"FORWARD PHASORS DESTROYED" 1790 PRIRATIONAL" 1070 IF I=1 THEN 260 1080 IF R<2E+06 OR B>90 THEN 1130 1090 R2 = (1-B/90)*(2*R/1E+08) 1100 IF R2 < RND THEN 1130 1110 H = 1 1120 P = 8 1130 RETURN 1140 R = R*(1-0.5*S(4,I)) 1150 B = 0 1160 H = 0 1170 RETURN 1180 R = R*(1+S(4,I)+0.05*SI = 1 THEN 260 960 H = 0 970 R1 =1-0.2*R*1E-06 980 REMARK - RANGE BEARING CHECK 990 IF R>5E+06 OR B<90 THEN 1030 1000 IF R10 THEN 1080 1060 PRINT "PHOTON TORPEDO NOT OPE REM SHOOTING STARS BY TBX 10 PRINT "INSTRUCTIONS (1=YES, 0=NO)"; 20 INPUT Z 30 IF Z=1 THEN GOSUB 900 100 REM START LOOP A=-1 101 B=-1 102 C=-1 103 D=-1 104 E=1 105 F=-1 106 G=-1 107 H=-1 108 I=-1 109 J=0 148 PRINT 149 IF INT(J/3)*3=J THEN 910 PRINT "EACH STAR IS IN A GALAXY." 911 PRINT "WHEN YOU SHOOT A STAR, EVERY-" 912 PRINT "THING IN ITS GALAXY CHANGES." 913 PRINT "ALL STARS BECOME BLACK HOLES," 914 PRINT "ALL BLACK HOLES BECOME STARS." 915 PRINT "TYPE '2' TO GO ON." 916 INPUT Z 9; 191 IF I=-1 THEN PRINT "- "; 250 IF E=1 THEN 390 260 IF A+B+C+D+F+G+H+I=8 THEN 809 270 IF A+B+C+D+F+G+H+I=-8 THEN 820 390 PRINT "SHOOT"; 391 INPUT Y 395 ON Y GOTO 509,519,529,539,549,559,569,579,589 499 PRINT "YOU GAVE UP ON ";J;" TRYS !!!!" U LOST WITH ";J;" TRYS." 830 PRINT 831 PRINT "TRY AGAIN (1=YES, 0=NO)"; 832 INPUT X 833 IF X=1 THEN 100 834 IF X=0 THEN 890 835 PRINT "FOLLOW INSTRUCTIONS " 836 GOTO 831 890 PRINT "HOPE YOU HAD FUN" 895 REM 899 REM INSTRUCTION SUBROUTINE 900 PRIPRINT "" 150 IF A=1 THEN PRINT "* "; 151 IF A=-1 THEN PRINT "- "; 155 IF B=1 THEN PRINT "* "; 156 IF B=-1 THEN PRINT "- "; 160 IF C=1 THEN PRINT "* ";J 161 IF C=-1 THEN PRINT "- ";J 165 IF D=1 THEN PRINT "* "; 166 IF D=-1 THEN PRINT "- "; 170 IF E 930 PRINT 931 PRINT "- - - - - - - - -" 932 PRINT "* * - - - - - * *" 933 PRINT "7 * - * 8 * - * 9" 934 PRINT 935 PRINT "TYPE '3' TO GO ON"; 936 INPUT Z 940 PRINT "PATTERNS TO LOOK FOR:" 941 PRINT 942 PRINT "START WIN LOSE" 9420 PRINT "GALAXY MAPS:" 921 PRINT 923 PRINT "1 * - * 2 * - * 3" 924 PRINT "* * - - - - - * *" 925 PRINT "- - - - - - - - -" 926 PRINT 927 PRINT "* - - - * - - - *" 928 PRINT "4 - - * 5 * - - 6" 929 PRINT "* - - - * - - - *" 500 GOTO 830 509 IF A=-1 THEN 800 510 A=-A 511 B=-B 512 D=-D 513 E=-E 516 GOTO 597 519 IF B=-1 THEN 800 520 A=-A 521 B=-B 522 C=-C 526 GOTO 597 529 IF C=-1 THEN 800 530 B=-B 531 C=-C 532 E=-E 533 F=-F 536 GOTO 597 539 IF D=-1 THEN 800 5NT""; 901 PRINT "* * * THERE ARE STARS" 902 PRINT "- - - AND BLACK HOLES" 903 PRINT "* * * IN THE UNIVERSE" 904 PRINT 905 PRINT "1 2 3 YOU SHOOT A STAR *" 906 PRINT "4 5 6 NOT A BLACK HOLE -" 907 PRINT "7 8 9 BY TYPING ITS NUMBER" 908 PRINT =1 THEN PRINT "* "; 171 IF E=-1 THEN PRINT "- "; 175 IF F=1 THEN PRINT "* " 176 IF F=-1 THEN PRINT "- " 180 IF G=1 THEN PRINT "* "; 181 IF G=-1 THEN PRINT "- "; 185 IF H=1 THEN PRINT "* "; 186 IF H=-1 THEN PRINT "- "; 190 IF I=1 THEN PRINT "* "3 PRINT 945 PRINT "- - - * * * - - -" 946 PRINT "- * - * - * - - -" 947 PRINT "- - - * * * - - -" 948 PRINT 949 PRINT "TYPE '0' TO END GAME" 950 PRINT 951 PRINT "TYPE '4' TO GO ON"; 952 INPUT Z 999 RETURN 1000 END  586 GOTO 597 589 IF I=-1 THEN 800 590 E=-E:F=-F:H=-H:I=-I 597 J=J+1 598 GOTO 148 800 PRINT "HEY ! ! YOU CAN ONLY SHOOT" 801 PRINT "STARS, NOT BLACK HOLES." 802 GOTO 390 809 PRINT 810 PRINT "YOU WIN WITH ";J;" SHOOTS" 815 GOTO 830 820 PRINT "YO40 A=-A:D=-D:G=-G 546 GOTO 597 549 IF E=-1 THEN 800 550 B=-B:D=-D:E=-E:F=-F:H=-H 556 GOTO 597 559 IF F=-1 THEN 800 560 C=-C:F=-F:I=-I 566 GOTO 597 569 IF G=-1 THEN 800 570 D=-D:E=-E:G=-G:H=-H 576 GOTO 597 579 IF H=-1 THEN 800 580 G=-G:H=-H:I=-I REM--------------------------------------------------------- REM S T A R T R E K REM--------------------------------------------------------- DIM GALAXY(8,8), GALAXY$(8,8), C(9,2), KLING(3,3), GMAP(8,8) DIM DAMAGE(8), QUAD.NAME$(16), ------ FOR J=1 TO 8 FOR I=1 TO 8 GALAXY$(I,J)=EMPTY$ NEXT I NEXT J KLINGONS=0 BASES=0 STARS=0 GALAXY$(EX,EY)=ENTERPRISE$ G5=0 GOSUB 9030 REM GET QUADRANT NAME PRINT IF FIRST.TIME.FLAG=1 THEN \ FIRST.TIMRIUS" QUAD.NAME$(14)="ARCTURUS" QUAD.NAME$(15)="POLLUX" QUAD.NAME$(16)="SPICA" SEGMENT$(1)=" I" SEGMENT$(2)=" II" SEGMENT$(3)=" III" SEGMENT$(4)=" IV" TOT.BASES=0 TOT.KLINGONS=0 REM *** SET UP WHAT EXISTS IN GALAT$(ANS$,1)="Y" THEN GOSUB 999999 PRINT CHR$(26) PRINT "MISSION ADVISORY: "; PRINT "STAND BY" LET T=INT(RND*20+20)*100 T0=T T9=26+INT(RND*8+1) DOCKED=0 ENERGY.NORMAL=3000 ENERGY=ENERGY.NORMAL TORPS=10 TO\ B$="S" PRINT "YOUR ORDERS ARE AS FOLLOWS:" PRINT "DESTROY THE ";TOT.KLINGONS;"KLINGON WARSHIPS WHICH HAVE INVADED" PRINT "THE GALAXY BEFORE THEY CAN ATTACK FEDERATION HEADQUARTERS" PRINT "ON STARDATE ";T0+T9;". THIS GIVES YOU ";T9 DAM$(3)="LONG RANGE SENSORS" DAM$(4)="PHASER CONTROL" DAM$(5)="PHOTON TORPEDO TUBES" DAM$(6)="DAMAGE CONTROL" DAM$(7)="SHIELD CONTROL" DAM$(8)="COMPUTER" QUAD.NAME$(01)="ANTARES" QUAD.NAME$(02)="SIRIUS" QUAD.NAME$(03)="RIGEL" QUAD.NAMESEGMENT$(4), DAM$(8) DIM PRINT.QUAD(3) ESC$=CHR$(27) EN$=ESC$+" " IVB$=EN$ BLNK$=EN$ BELL$=CHR$(7) NORM$=EN$+" " EMPTY$="." BASE$="B" KLINGON$="K" ENTERPRISE$="E" STAR$="*" CRUD$="?" FIRST.TIME.FLAG=1 DOT$="........................" KLINGONS=0 900 REM TOT.KLINGONS=TOT.KLINGONS+KLINGONS IF RND>.96 THEN \ BASES=1 :\ ELSE \ BASES=0 TOT.BASES=TOT.BASES+BASES STARS=FN8 GALAXY(I,J)=KLINGONS*100+BASES*10+STARS GMAP(I,J)=0 XY. FOR I=1 TO 8 FOR J=1 TO 8 R1=RND IF R1>.98 THEN \ KLINGONS=3 :\ GOTO 900 IF R1>.95 THEN \ KLINGONS=2 :\ GOTO 900 IF R1>.8 THEN \ KLINGONS=1 :\ GOTO 900 RPS.NORMAL=TORPS SHIELD.NORMAL=200 SHIELDS=SHIELD.NORMAL+10 FOR I=1 TO 8 FOR J=1 TO 8 GALAXY$(I,J)=EMPTY$ NEXT J NEXT I REM-----------F U N C T I O N S--------------------- DEF FN8=INT(RND*8+1) DEF FNROUND(D)=INT(D+.5;"DAYS. THERE"; PRINT A$ PRINT TOT.BASES;"STARBASE";B$;" IN THE GALAXY FOR RESUPPLYING YOUR SHIP." PRINT PRINT " TYPE 'GO' WHEN READY TO ASSUME COMMAND." INPUT RAND$ 1320 REM----------ENTER NEW QUADRANT--------------$(04)="DENEB" QUAD.NAME$(05)="PROCYON" QUAD.NAME$(06)="CAPELLA" QUAD.NAME$(07)="VEGA" QUAD.NAME$(08)="BETELGEUSE" QUAD.NAME$(09)="CANOPUS" QUAD.NAME$(10)="ALDEBARAN" QUAD.NAME$(11)="ALTAIR" QUAD.NAME$(12)="REGULUS" QUAD.NAME$(13)="SAGITTA PRINT PRINT TAB(20);"S T A R T R E K" PRINT 240 INPUT " ENTER YOUR NAME, CAPTAIN: "; CAPTAIN$ PRINT PRINT "WELCOME ABOARD CAPTAIN: ";CAPTAIN$ PRINT TAB(15);"DO YOU WANT INSTRUCTIONS"; INPUT ANS$ RANDOMIZE IF LEF NEXT J NEXT I K7=TOT.KLINGONS IF TOT.BASES>0 THEN \ GOTO 1200 X=FN8 Y=FN8 GALAXY(X,Y)=GALAXY(X,Y)+10 REM ADD A BASE BASES=1 TOT.BASES=BASES 1200 REM IF TOT.BASES=1 THEN \ A$=" IS " :\ B$="" :\ ELSE \ A$=" ARE " :(5,2)=-1 C(6,2)=-1 C(1,2)=1 C(2,2)=1 C(6,1)=1 C(7,1)=1 C(8,1)=1 C(8,2)=1 C(9,2)=1 FOR I=1 TO 8 LET DAMAGE(I)=(INT(RND*30+1)/10) NEXT I DAM$(1)="WARP ENGINES" DAM$(2)="SHORT RANGE SENSORS" ) DEF FND=SQR((ABS(KLING(I,1)-SX))^2+(ABS(KLING(I,2)-SY))^2) REM *** INITIALIZE ENTERPRISE'S POSITION QX=FN8 QY=FN8 EX=FN8 EY=FN8 SX=EX SY=EY C(3,1)=-1 C(2,1)=-1 C(4,1)=-1 C(4,2)=-1 CE.FLAG=0 :\ PRINT "YOUR MISSION BEGINS WITH YOUR STARSHIP LOCATED" :\ PRINT "IN THE GALACTIC QUADRANT: ";QUADRANT$; :\ ELSE \ PRINT "NOW ENTERING QUADRANT: ";QUADRANT$ 1500 PRINT X=GALAXY(QX,QY)*.01 KLINGONS=INT(X) BASES=INT(ING(I,2)=SY GALAXY$(KLING(I,1),KLING(I,2))=KLINGON$ 2700 NEXT I 2750 REM GOSUB 6000 REM KLINGONS SHOOT D1=0 D6=INT(WARP*10)/10 REM****> MAKE REPAIRS TO THE SHIP. 2770 FOR I=1 TO 8 IF DAMAGE(I)>=0 THEN GOTO 2880 T COURSE IF COURSE>=1 AND COURSE<=9 THEN \ GOTO 2350 PRINT "LT. SULU:"; PRINT " INCORRECT COURSE DATA, SIR." GOOF1=GOOF1+.1 IF RND+GOOF1>.85 THEN \ PRINT "MISSION ADVISORY: ";:\ PRINT "CAPTAIN ";CAPTAIN$;", I STRONGLY SUGGEST YON \ GOTO 1710 FOR X=1 TO BASES GOSUB 9500 REM FIND EMPTY SECTOR GALAXY$(SX,SY)=BASE$ BX=SX BY=SY NEXT X 1710 REM IF STARS<=0 THEN \ GOTO 1980 FOR X=1 TO STARS GOSUB 9500 REM FIND EMPTY SECTOR GALAXY$(SX,SY)=STAR$ NEXT E.NEEDED-ENERGY THEN \ GOTO 2350 REM ASK FOR NEW WARP IF DAMAGE(7)<0 THEN \ GOTO 2350 PRINT "SHIELD CONTROL ROOM REPORTS ";SHIELDS;" UNITS" PRINT "OF ENERGY PRESENTLY DEPLOYED TO SHIELDS." GOTO 5530 REM SHIELD CONTROL REMMMAND$,1)="E" THEN GOTO 5530 IF LEFT$(COMMAND$,1)="D" THEN GOTO 5690 IF LEFT$(COMMAND$,1)="C" THEN GOTO 7290 IF LEFT$(COMMAND$,1)="Q" THEN GOTO 6270 PRINT "ENTER ONE OF THE FOLLOWING:" PRINT "N-AVIGATE" PRINT "S-HORT RANGE SCAN" PRINT "L-(X-KLINGONS)*10) STARS=GALAXY(QX,QY)-INT(GALAXY(QX,QY)*.1)*10 IF KLINGONS>0 THEN \ PRINT "COMBAT AREA ";BLNK$;"KLINGON ALERT" IF SHIELDS<=SHIELD.NORMAL THEN \ PRINT "WARNING: LOW SHIELDS" FOR X=1 TO 3 FOR Y=1 TO 3 KLING(X,Y)OFCR SCOTT:"; PRINT "THE ENGINES WON'T TAKE WARP ";WARP;"!" GOOF2=GOOF2+.1 IF RND+GOOF2>.85 THEN \ PRINT "MISSION ADVISORY: "; :\ PRINT "WARP ";WARP;"! WHAT A GALACTIC JACKASS!" GOTO 2350 2450 REM------- IF DAMAGE(1)>=0 THEN \ GOTO 249U GET YOURSELF" :\ PRINT "ORGANIZED BEFORE THE KLINGONS BLAST YOUR ASS." GOTO 2300 2350 REM-----COURSE IS OK----- 2380 PRINT "WARP FACTOR (0-8) "; INPUT WARP IF WARP>=0 AND WARP<=8 THEN \ GOTO 2450 REM WARP OK PRINT "ENGINEERING X 1980 GOSUB 6430 REM SHORT RANGE SENSOR RTN 1990 IF SHIELDS+ENERGY<=10 OR (DAMAGE(7)<0 AND ENERGY<=10) THEN \ PRINT BLNK$;"**FATAL ERROR**" :\ PRINT "YOU'VE JUST STRANDED YOUR SHIP IN SPACE!" :\ PRINT "YOU HAVE INSUFFICIENT MANEUVERING ENERG*******> KLINGONS MOVE/FIRE ON MOVING STARSHIP . . IF KLINGONS=0 THEN \ GOTO 2750 2590 REM FOR I=1 TO KLINGONS IF KLING(I,3)<=0 THEN GOTO 2700 GALAXY$(KLING(I,1),KLING(I,2))=EMPTY$ GOSUB 9500 REM FIND EMPTY SECTOR KLING(I,1)=SX KLONG RANGE SCAN" PRINT "P-HASERS" PRINT "T-ORPEDOS" PRINT "E-NGINEERING" PRINT "D-AMAGE CONTROL" PRINT "C-OMPUTER" PRINT "Q-UIT" PRINT GOTO 2060 REM**********> COURSE CONTROL BEGINS HERE. 2300 PRINT "COURSE (1-9) "; INPU=0 NEXT Y NEXT X 1600 REM IF KLINGONS=0 THEN \ GOTO 1705 FOR X=1 TO KLINGONS GOSUB 9500 REM FIND EMPTY SECTOR GALAXY$(SX,SY)=KLINGON$ KLING(X,1)=SX KLING(X,2)=SY KLING(X,3)=SHIELD.NORMAL NEXT X 1705 REM IF BASES=0 THE0 PRINT DAM$(1);" DAMAGED" IF WARP>.2 THEN \ PRINT "MAXIMUM WARP: 0.2" :\ GOTO 2350 2490 REM E.NEEDED=FNROUND(WARP*8) IF ENERGY-E.NEEDED>=0 THEN GOTO 2590 PRINT "ENGINEERING OFCR SCOTT:"; PRINT "NOT ENOUGH ENERGY LEFT" IF SHIELDST0+T9 THEN \ GOTO 6220 REM YOU LOSE ASSHOLE! PRINT DAMAGE(I)=DAMAGE(I)+D6 IF DAMAGE(I)<0 THEN GOTO 2880 IF D1=0 THEN \ D1=1 :\ PRINT "DAMAGE CONTROL REPORT" PRINT TAB(8); PRINT DAM$(I); PRINT TAB(32);"REPAIR COMPLETED" 2880 NEXT I REM--------> DAMAGE/IMPAMAGE(3)<0 THEN \ PRINT DAM$(3);" DAMAGED" :\ GOTO 1990 4030 PRINT DAM$(3);" SCAN FOR QUADRANT ";QX;QY PRINT FOR J=QY-1 TO QY+1 Q=0 FOR I=QX-1 TO QX+1 Q=Q+1 IF I<1 OR I>8 OR J<1 OR J>8 THEN \ PRINT.QUAD(Q)=0 :\ ELSE \ QX=INT(X/8) QY=INT(Y/8) EX=INT(X-QX*8) EY=INT(Y-QY*8) PERIMETER.FLAG=0 IF EX=0 THEN \ QX=QX-1 :\ EX=8 IF EY=0 THEN \ QY=QY-1 :\ EY=8 IF QX<1 THEN \ QX=1:EX=1 :\ PERIMETER.FLAG=1 IF QX>8 THEN \ QX=8:EX=Y$(EX,EY)=EMPTY$ T.CRSE=INT(COURSE) DELTA.X=C(T.CRSE,1)+(C(T.CRSE+1,1)-C(T.CRSE,1))*(COURSE-INT(COURSE)) X=EX Y=EY DELTA.Y=C(T.CRSE,2)+(C(T.CRSE+1,2)-C(T.CRSE,2))*(COURSE-INT(COURSE)) OLD.QX=QX OLD.QY=QY FOR I=1 RGY>=0 THEN GOTO 3980 PRINT "SHIELD CONTROL SUPPLIED ENERGY TO COMPLETE THE MANEUVER." IF RND>.6 THEN GOTO 3911 PRINT "MISSION ADVISORY: "; PRINT "CAPTAIN ";CAPTAIN$; IF RND>.5 THEN PRINT " THAT WAS EXTREMELY CLOSE EVEN FOR THE ENTER'T YOU THINK IT'S TIME" :\ PRINT "YOU RECONSIDER THAT DESK JOB AT FEDERATION HQ?" GOTO 3370 3360 NEXT I 3370 REM------PUT THE ENTERPRISE IN ITS NEW PLACE----- GALAXY$(EX,EY)=ENTERPRISE$ GOSUB 3910 REM SUBTRACT THE ENERGY NEEDED ROVEMENT DURING SOME VES IF RND>.2 THEN GOTO 3070 R1=FN8 IF RND>=.6 THEN GOTO 3000 DAMAGE(R1)=DAMAGE(R1)-INT((RND*5+1)*10)/10 PRINT PRINT "DAMAGE CONTROL REPORT:" PRINT DAM$(R1); PRINT TAB(32);"DAMAGED" PRINT TO CROSS GALACTIC PERIMETER" PRINT "IS ";BLNK$;"*DENIED*";NORM$;". SHUT DOWN YOUR ENGINES." PRINT "ENGINEERING OFCR SCOTT:"; PRINT "WARP ENGINES SHUT DOWN" PRINT "AT SECTOR ";EX;EY;" OF QUADRANT ";QX;QY;"." IF T>T0+T9 THEN GOTO 68 :\ PERIMETER.FLAG=1 IF QY<1 THEN \ QY=1:EY=1 :\ PERIMETER.FLAG=1 IF QY>8 THEN \ QY=8:EY=8 :\ PERIMETER.FLAG=1 IF PERIMETER.FLAG=0 THEN \ GOTO 3860 PRINT "LT. UHURA:" PRINT "STARFLEET COMMAND REPORTS:" PRINT "'PERMISSION TO E.NEEDED X=X+DELTA.X Y=Y+DELTA.Y EX=FNROUND(X) EY=FNROUND(Y) IF EX<1 OR \ EX>8 OR \ EY<1 OR \ EY>8 THEN \ GOTO 3500 IF GALAXY$(EX,EY)=EMPTY$ THEN \ LAST.X=0 :\ LAST.Y=0 :\ GOTO 3360 PRISE" :\ ELSE \ PRINT " WE'RE GOING TO NEED THOSE SHIELDS BEFORE LONG, YOU KNOW.'" 3911 REM SHIELDS=SHIELDS+ENERGY ENERGY=0 IF SHIELDS<0 THEN \ SHIELDS=0 3980 RETURN 4000 REM-----------> LONG RANGE SENSOR SCAN CODE IF DT8=1 IF WARP<1 THEN \ T8=.1*INT(10*WARP) T=T+T8 IF T>T0+T9 THEN GOTO 6220 GOTO 1980 REM SEE IF DOCKED THEN GET COMMAND 3500 REM-----EXCEEDED QUADRANT LIMITS---------------- X=8*QX+X+E.NEEDED*DELTA.X Y=8*QY+Y+E.NEEDED*DELTA.Y GOTO 3070 3000 REM DAMAGE(R1)=DAMAGE(R1)+IN((RND*3+1)*10)/10 PRINT PRINT "DAMAGE CONTROL REPORT:" PRINT DAM$(R1); PRINT TAB(32);"STATE OF REPAIR IMPROVED" PRINT 3070 REM-----BEGIN MOVING STARSHIP--------------------- GALAX220 3860 REM IF QX=OLD.QX AND QY=OLD.QY THEN \ GOTO 3370 T=T+1 GOSUB 3910 REM SUBTRACT THE NEEDED ENERGY GOTO 1320 REM ANNOUNCE THE NEW QUADRANT 3910 REM---------> MANEUVER ENERGY S/R ENERGY=ENERGY-E.NEEDED-10 IF ENE BELL$;"LT SULU:"; PRINT " EMER.75 THEN \ PRINT "CAPTAIN ";CAPTAIN$;", DONOBJECT$=GALAXY$(EX,EY) IF OBJECT$=KLINGON$ THEN OBJECT$="KLINGON" IF OBJECT$=STAR$ THEN OBJECT$="STAR" IF OBJECT$=BASE$ THEN OBJECT$="STARBASE" IF OBJECT$=CRUD$ THEN OBJECT$="SPACECRUD" EX=FNROUND(X-DELTA.X) EY=FNROUND(Y-DELTA.Y) PRINT PRINT.QUAD(Q)=GALAXY(I,J) :\ GMAP(I,J)=GALAXY(I,J) NEXT I FOR Q=1 TO 3 IF PRINT.QUAD(Q)=0 THEN 4100 YYY=Q*6 IF PRINT.QUAD(Q)<100 THEN YYY=YYY+1 IF PRINT.QUAD(Q)<10 THEN YYY=YYY+1 PRINT ;TAB(YYY);PRINT.QUAD(Q); 4040 NEXT Q PRINT IF ROUND.X<>KLING(I,1) THEN GOTO 5180 IF ROUND.Y=KLING(I,2) THEN GOTO 5190 5180 NEXT I 5190 KLING(I,3)=0 GOTO 5430 5210 REM-----HIT A STAR------------------------ PRINT "STAR AT ";ROUND.X;ROUND.Y;" ABSORBED TORPEDO ENERGY"S EXPENDED" :\ GOTO 1990 4760 PRINT "TORPEDO COURSE (1-9) "; INPUT COURSE IF COURSE<1 OR COURSE>9 THEN \ PRINT "ENSIGN CHEKOV:"; :\ PRINT "INCORRECT COURSE DATA, SIR!" :\ ON FNROUND(RND)+1 GOENERGY THEN GOTO 4360 ENERGY=ENERGY-RATE.OF.FIRE GOSUB 6000 REM KLINGONS SHOOT IF DAMAGE(7)<0 OR DAMAGE(4)<1 THEN \ DRAI0 REM DEFENSIVE PROGRAMMING 5100 REM-----HIT A KLINGON-------------------------- PRINT BELL$;BLNK$;"<< KLINGON DESTROYED >>" ON FN8 GOTO 5177, 5177, 5177, 5177, 5177, 5176, 5178, 5178 5176 REM PRINT "EXCELLENT WORK WITH THE TORPEDOES, CAPTAI KLINGONS=KLINGONS-1 TOT.KLINGONS=TOT.KLINGONS-1 GALAXY$(KLING(I,1),KLING(I,2))=EMPTY$ GALAXY(QX,QY)=KLINGONS*100+BASES*10+STARS IF GMAP(QX,QY)<>0 THEN \ GMAP(QX,QY)=GALAXY(QX,QY) F TOT.KLINGONS<=0 THEN GOTO 637: PRINT NEXT J PRINT GOTO 1990 4100 PRINT ;TAB(Q*6);"***"; GOTO 4040 4260 REM----------> PHASER CONTROL BEGINS HERE SX=EX SY=EY IF KLINGONS=0 THEN \ PRINT "MISSION ADVISORY: "; :\ PRINT "SENSORS SHOW NO ENEMY SHIPS IN HIS QUADRAN Y=Y+DELTA.Y ROUND.X=FNROUND(X) ROUND.Y=FNROUND(Y) IF ROUND.X<1 OR \ ROUND.X>8 OR \ ROUND.Y<1 OR \ ROUND.Y>8 THEN \ PRINT "TORPEDO MISSED" :\ GOTO 5500 PRINT " ";ROUND.X;ROUND.Y; IF GALAXY$(ROUND.X,ROUND.Y)=EMPTY$ TTA.X=C(T.CRSE,1)+(C(T.CRSE+1,1)-C(T.CRSE,1))*(COURSE-INT(COURSE)) DELTA.Y=C(T.CRSE,2)+(C(T.CRSE+1,2)-C(T.CRSE,2))*(COURSE-INT(COURSE)) ENERGY=ENERGY-2 X=SX Y=SY TORPS=TORPS-1 PRINT "TORPEDO TRACK---> "; 4920 X=X+DELTA.XN=RND :\ RATE.OF.FIRE=RATE.OF.FIRE*DRAIN :\ DRAIN=INT((-DRAIN)*100) :\ PRINT "MISSION ADVISORY: "; :\ PRINT DRAIN;"% OF PHASER POWER WAS DIVERTED TO DAMAGE CONTROL" 4450 TOTAL.HIT=INT(RATE.OF.FIRE/KLINGONS) FOR I=1 TO 3 IF KLIN." GOTO 5177 5178 REM PRINT "MISSION ADVISORY: "; PRINT "VERY GOOD SHOOTING, CAPTAIN ";CAPTAIN$ 5177 REM GALAXY$(X,Y)=EMPTY$ KLINGONS=KLINGONS-1 TOT.KLINGONS=TOT.KLINGONS-1 IF TOT.KLINGONS<=0 THEN GOTO 6370 FOR I=1 TO 3 0 4670 NEXT I GOTO 1990 4700 REM---------> PHOTON TORPEDO CODE BEGINS GOSUB 6000 REM KLINGONS SHOOT SX=EX SY=EY IF DAMAGE(5)<0 THEN \ PRINT DAM$(5);" DAMAGED" :\ GOTO 1990 IF TORPS<=0 THEN \ PRINT "ALL PHOTON TORPEDOET" :\ GOTO 1990 IF DAMAGE(4)<0 THEN \ PRINT DAM$(4);" DAMAGED" :\ GOTO 1990 IF DAMAGE(8)<0 THEN \ PRINT DAM$(8);" MALFUNCTION REDUCES ACCURACY" 4350 PRINT "PHASERS LOCKED ON TARGET; " 4360 PRINT "ENERGY AVAILABLE = ";ENERGY PRINT "HEN \ GOTO 4920 IF GALAXY$(ROUND.X,ROUND.Y)=KLINGON$ THEN \ GOTO 5100 IF GALAXY$(ROUND.X,ROUND.Y)=STAR$ THEN \ GOTO 5210 IF GALAXY$(ROUND.X,ROUND.Y)=BASE$ THEN \ GOTO 5280 IF GALAXY$(ROUND.X,ROUND.Y)=CRUD$ THEN \ GOTO 4920 GOTO 492 PRINT HIT;" UNIT HIT ON KLINGON AT SECTOR ";KLING(I,1);KLING(I,2) IF KLING(I,3)<=0 THEN GOTO 4580 IF RND>.7 THEN \ PRINT "SENSORS SHOW ";KLING(I,3);" UNITS REMAINING" GOTO 4670 4580 PRINT BELL$; BLNK$;" << KLINGON DESTROYED >>" NG(I,3)<=0 THEN GOTO 4670 HIT=INT((TOTAL.HIT/FND)*(RND+1.5)) IF HIT<.15*KLING(I,3) THEN \ PRINT "SENSORS SHOW NO DAMAGE "; :\ PRINT "TO ENEMY AT ";KLING(I,1);KLING(I,2) :\ GOTO 4670 4530 KLING(I,3)=KLING(I,3)-HIT*(RND+.3) IF RND>.7 THEN GOTO 5214 PRINT "COMMAND INQUIRY: "; PRINT "WAS IT YOUR INTENTION TO WASTE A VALUABLE" PRINT "TORPEDO ON THAT STAR, CAPTAIN?" 5214 REM GOTO 5500 5280 REM------HIT A STARBASE------------------- PRINT BELL$;IVB$;">> INT "LET HIM STEP FORWARD AND ENTER 'AYE'."; INPUT A$ IF LEFT$(A$,1)="A" THEN 240 PRINT "STARBASE TO ENTERPRISE: "; PRINT "WE ARE TERMINATING COMMUNICATIONS" STOP 6370 PRINT "CONGRATULATIONS, CAPTAIN! THE LAST KLINGON BATTLE CRUISER" FOR X=1 TO 8 PRINT DAM$(X);TAB(30);DAMAGE(X) NEXT X PRINT RETURN 6000 REM-------------KLINGONS SHOOTING ROUTINE------------ SX=EX SY=EY IF KLINGONS<=0 THEN GOTO 6210 IF DOCKED=1 THEN \ PRINT "STARBASE SHIELDS PROTECT THE ENTERX,QY) 5500 REM IF RND>.7 THEN \ GOSUB 6000 REM KLINGONS MAY SHOOT AGAIN GOTO 1990 5530 REM---------SHIELD CONTROL STARTS HERE----------------- IF DAMAGE(7)<0 THEN \ PRINT DAM$(7);" DAMAGED" :\ GOTO 1990 5560 PRINT "ENERGY AVAILABLE=T DAM$(R1);TAB(32);" DAMAGED" RETURN 6220 PRINT "IT IS STARDATE ";T GOTO 6270 6240 PRINT PRINT "THE ENTERPRISE HAS BEEN DESTROYED." PRINT " THE FEDERATION WILL BE CONQUERED." 6260 PRINT "IT IS STARDATE ";T 6270 PRINT "THERE WERE GOTO 1990 D3=D3+(.5*RND) IF D3>1 THEN \ D3=RND 5810 REM PRINT "TECHS STANDING BY TO REPAIR THE SHIP." PRINT "ESTIMATED TIME: ";D3;"STARDATES" PRINT "AUTHORIZE (Y/N) "; INPUT A$ IF LEFT$(A$,1)<>"Y" THEN GOTO 1990 FOR I=1 TO 8 5STARBASE DESTROYED <<" BASES=BASES-1 TOT.BASES=TOT.BASES-1 GALAXY$(X,Y)=EMPTY$ IF TOT.BASES>0 THEN GOTO 5400 PRINT "MISSION ADVISORY: "; PRINT "CAPTAIN ";CAPTAIN$;" I'M AFRAID THAT YOU HAVE BLOWN IT" GOTO 6270 5400 PRINT "STLING(I,2) GOOF4=GOOF4+.1 IF RND+GOOF4>.7 THEN \ PRINT "SHIELDS DOWN TO ";SHIELDS;"UNITS" IF HIT<20 OR \ HIT/SHIELDS<.02 THEN \ GOTO 6200 GOSUB 6100 REM DAMAGE RTN IF SHIELDS<0 THEN \ GOSUB 6100 6200 REM NEXT I 6210 RETURPRISE" :\ RETURN FOR I=1 TO 3 IF KLING(I,3)<=0 THEN GOTO 6200 HIT=INT((KLING(I,3)/FND)*(2+RND)) SHIELDS=SHIELDS-INT(HIT*RND) PRINT BELL$;"----> ";HIT;" UNIT HIT ON ENTERPRISE FROM SECTOR "; PRINT KLING(I,1);K";ENERGY+SHIELDS PRINT "DIVERT TO SHIELDS "; INPUT DIVERTED IF DIVERTED<0 OR DIVERTED=SHIELDS THEN \ PRINT "SHIELDS UNCHANGED" :\ GOTO 1990 IF DIVERTED>SHIELDS+ENERGY THEN \ PRINT "CAN'T DIVERT" :\ GOTO 5560 ENERGY=ENERGY+SHIELDS-";TOT.KLINGONS;" KLINGON BATTLE CRUISERS LEFT AT THE" PRINT " END OF YOUR MISSION." 6290 PRINT PRINT PRINT "THE FEDERATION IS IN NEED OF A NEW STARSHIP COMMANDER" PRINT "FOR A SIMILAR MISSION -- IF THERE IS A VOLUNTEER," PR815 REM IF DAMAGE(I)<=.7 THEN \ DAMAGE(I)=DAMAGE(I)+1 :\ GOTO 5815 NEXT I T=T+D3+.1 GOSUB 5910 REM PRINT DAMAGE RPT GOTO 1990 5910 REM-----PRINT DAMAGE RPT--------------------- PRINT PRINT " DEVICE";TAB(27);"CONDITION"ARFLEET COMMAND IS REVIEWING YOUR RECORD TO CONSIDER" PRINT "A GENERAL COURT-MARTIAL." DOCKED=0 5430 REM-------END OF ENTERPRISE SHOOTING------- GALAXY(QX,QY)=KLINGONS*100+BASES*10+STARS IF GMAP(QX,QY)<>0 THEN \ GMAP(QX,QY)=GALAXY(QN 6100 REM------DAMAGE TO ENTERPRISE-------------------------- TEMP=SHIELDS IF SHIELDS<=0 THEN TEMP=1 NEW.DAMAGE=HIT/TEMP+.5*RND NEW.DAMAGE=INT(NEW.DAMAGE*10)/10 R1=FN8 DAMAGE(R1)=DAMAGE(R1)-NEW.DAMAGE PRINT "DAMAGE CONTROL REPORTS" PRIN;" DAMAGED" :\ GOTO 1990 GOSUB 5910 REM PRINT DAMAGE RPT GOTO 1990 5710 REM----------D O C K E D------------------------------ D3=0 FOR I=1 TO 8 IF DAMAGE(I)>=.7 THEN GOTO 5760 D3=D3+.5 5760 NEXT I IF D3=0 THENDIVERTED SHIELDS=DIVERTED PRINT "DEFLECTOR CONTROL ROOM REPORT: "; PRINT "SHIELDS NOW AT ";SHIELDS GOTO 1990 5690 REM------------DAMAGE CONTROL STARTS HERE---------------- IF DOCKED=1 THEN GOTO 5710 IF DAMAGE(6)<0 THEN \ PRINT DAM$(6) PRINT "MENACING THE FEDERATION HAS BEEN DESTROYED." PRINT PRINT "YOUR EFFICIENCY RATING IS ";(K7/(T-T0))*1000 PRINT PRINT "MISSION ADVISORY: "; PRINT "CONFIDENTIALLY SPEAKING, CAPTAIN ";CAPTAIN$;", I BELIEVE" PRINT "THAT THE P0 X$="S" 7940 PRINT TOT.KLINGONS;" KLINGON"+X$+" LEFT" PRINT "MISSION MUST BE COMPLETED IN ";(T0+T9)-T;" STARDATES" IF TOT.BASES=0 THEN PRINT "NO STARBASES LEFT" : GOTO 7941 IF TOT.BASES=1 THEN PRINT "1 STARBASE LEFT" : GOTO 7941 PRINT HIELDS";TAB(50);SHIELDS PRINT DASH$ 7270 RETURN 6800 REM-------PRINT A LINE OF GALAXY------ FOR I=1 TO 8 PRINT GALAXY$(I,J);" "; NEXT I RETURN 7290 REM-----------LIBRARY COMPUTER CODE BEGINS HERE ------- IF DAMAGE(8)<0 THEN \ PRI FOR I=SX-1 TO SX+1 IF I<1 OR I>8 OR \ J<1 OR J>8 THEN \ GOTO 6540 IF GALAXY$(I,J)=BASE$ THEN \ GOTO 6580 6540 NEXT I NEXT J DOCKED=0 GOTO 6650 6580 DOCKED=1 CONDITION$="DOCKED" IF LAST.X=EX AND LAST.Y=EYG A L A X Y" FOR X=1 TO 8 PRINT TAB(X*5+1); X; NEXT X PRINT " " PRINT FOR J=1 TO 8 PRINT J; FOR I=1 TO 8 XXX=I*5 IF GMAP(I,J)=0 THEN 7410 IF GMAP(I,J)<100 THEN XXX=XXX+1 IF GMAP(I,J)<10 THEN XXX=XXX+1 7410 IF GMAP(I,J)<>0 THENRETURN 6770 REM---------------------------- PRINT DASH$ J=1 GOSUB 6800 PRINT " " J=2 GOSUB 6800 PRINT TAB(25);"STARDATE";TAB(50);T J=3 GOSUB 6800 PRINT TAB(25);"CONDITION";TAB(50);CONDITION$ J=4 GOSUB 6800 PRINT TAB(25);"QUADERFORMANCE YOU HAVE JUST GIVEN ON THE " PRINT "FIELD OF BATTLE HAS BEEN SO COMMENDABLE AS TO VIRTUALLY" PRINT "ASSURE THAT YOUR NAME WILL COME UP ON THE FEDERATION" PRINT "NAVY PROMOTION LIST QUITE SOON. EVEN THOUGH I AM AN" PRINT HAT'S AVAILABLE GOTO 7320 7350 GOSUB 9030 PRINT QUADRANT$ : PRINT GOTO 1990 7450 PRINT "FUNCTIONS AVAILABLE FROM LIBRARY-COMPUTER:" PRINT " 1 - CUMULATIVE GALACTIC RECORD" PRINT " 2 - STATUS REPORT" PRINT " 3 - PHOTON TONT DAM$(8);" DAMAGED" :\ GOTO 1990 7320 REM INPUT "ENTER COMPUTER CODE: "; COMPUTER.CODE IF COMPUTER.CODE<1 OR COMPUTER.CODE>6 THEN \ GOSUB 7450 :\ GOTO 7320 ON COMPUTER.CODE GOTO 7400, 7900, 8070, 8500, 8150, 7350 GOSUB 7450 REM PRINT W THEN \ GOTO 6720 LAST.X=EX LAST.Y=EY TEMP=ENERGY.NORMAL-333+100*FN8 IF TEMP>ENERGY THEN \ ENERGY=TEMP TEMP=TORPS.NORMAL-3+FN8 IF TEMP>TORPS THEN \ TORPS=TEMP PRINT "MISSION ADVISORY: "; PRINT "CAPTAIN ";CAPTAIN$;":" PRINT "WE HA PRINT TAB(XXX); GMAP(I,J); \ ELSE PRINT TAB(XXX); "???"; NEXT I PRINT NEXT J GOTO 1990 7900 REM ---------- STATUS REPORT RTN ------------------ PRINT PRINT TAB(15);"STATUS REPORT" X$="" IF TOT.KLINGONS=1 THEN GOTO 794RANT";TAB(50);QX;QY J=5 GOSUB 6800 PRINT TAB(25);"SECTOR";TAB(50);EX;EY J=6 GOSUB 6800 PRINT TAB(25);"TOTAL ENERGY";TAB(50);ENERGY+SHIELDS J=7 GOSUB 6800 PRINT TAB(25);"PHOTON TORPEDOES";TAB(50);TORPS J=8 GOSUB 6800 PRINT TAB(25);"S"UNEMOTIONAL VULCAN, I WAS PROFOUNDLY STIRRED BY YOUR" PRINT "DEMONSTRATION OF SKILL AND JUDGMENT'" PRINT GOTO 6290 6430 REM------------SHORT RANGE SENSOR AND STARTUP SUBRTN.---------- SX=EX SY=EY FOR J=SY-1 TO SY+1 RPEDO DATA" PRINT " 4 - STARBASE NAVIGATION DATA" PRINT " 5 - DIRECTION/DISTANCE CALCULATOR" PRINT " 6 - GALAXY 'REGION NAME' MAP" RETURN 7400 REM ------- CUMULATIVE GALACTIC RECORD CODE BEGINS.------ PRINT TAB(14);"T H E RGY1 THEN \ CONDITION$="RED !! <---" 6720 REM-----SENSOR OK?----------------- IF DAMAGE(2)<0 THEN \ PRINT DAM$(2);" DAMAGED !! <---" :\ VE DROPPED OUR SHIELDS FOR DOCKING" PRINT "WE ARE RELOADING ";TORPS;" TORPEDOES" PRINT "OUR ENERGY IS BEING REPLENISHED TO ";ENERGY;" UNITS" SHIELDS=0 GOTO 6720 6650 REM-----GET CONDITION CODE----------------- CONDITION$="GREEN" IF ENETOT.BASES;" STARBASES LEFT" 7941 GOTO 1990 8070 REM---------- TORPEDO DATA, BASE NAV, D/D CALCULATOR------ H8=0 FOR I=1 TO 3 IF KLING(I,3)<=0 THEN GOTO 8480 W1=KLING(I,1) X=KLING(I,2) 8120 C1=SX nt tab(12);"Thanks" print tab(12);"Now I need five adverbs. They modify verbs and end" print tab(12);"in 'ly', like: Slowly, Greedily." for x=1 to 5 print tab(15);"Adverb #";x;" "; input b$(x) next x print print tab(1--------- SX=FN8 SY=FN8 IF GALAXY$(SX,SY)=EMPTY$ THEN \ RETURN GOTO 9500 PRINT PRINT " TYPE 'GO' TO CONTINUE" INPUT RAND$ CLOSE (1) RETURN 9500 REM-------FIND EMPTY SECTOR----------------(A)<=ABS(X) THEN GOTO 8330 V5=C1+(((ABS(A)-ABS(X))+ABS(A))/ABS(A)) PRINT TAB(10);"DIRECTION = ";V5 GOTO 8460 8330 PRINT TAB(10);"DIRECTION = ";C1+(ABS(A)/ABS(X)) GOTO 8460 8350 IF A>0 THEN GOTO 8390 $(10) print "First, we will need to know your name "; input name$ print "thanx, ";name$ randomize print chr$(7);tab(12);"O.K. -- We're going to print some stories" print tab(12);"together. You supply the words, I supply the plot."QUAD.FRAC*4+1 QUADRANT$=QUAD.NAME$(QUAD)+SEGMENT$(QUAD.REM) RETURN 9250 STOP 999999 REM-----PRINT THE INSTRUCTIONS--------------------- PRINT INST$="TREKINST" IF END #1 THEN 9300 FILE INST$ FOR X=1 TO 10 STEP 0 READ #1;INSTRUC$ PRA=SY GOTO 8220 8150 PRINT "DIRECTION/DISTANCE CALCULATOR:" PRINT " YOU ARE AT QUADRANT (";QX;QY;") SECTOR (";SX;SY;")" PRINT " PLEASE ENTER --->" PRINT " INITIAL COORDINATES (X,Y) "; INPUT C1,A IF X=0 THEN GOTO 8410 8370 C1=5 GOTO 8290 8390 C1=3 GOTO 8420 8410 C1=7 8420 IF ABS(A)>=ABS(X) THEN GOTO 8450 PRINT TAB(10);"DIRECTION = ";C1+((ABS(X)-ABS(A))+ABS(X))/ABS(X) GOTO 8460 8450 125 rem print tab(12);"First I need eleven adjectives. Adjectives modify" print tab(12);"a noun, like: Red, Dirty, Large, etc." for x=1 to 11 print tab(15);"Adjective #";x;" "; input a$(x) next x print print priINT INSTRUC$ Q=Q+1 IF Q=23 THEN \ Q=0 :\ PRINT " TYPE 'GO' TO CONTINUE" :\ INPUT RAND$ NEXT X 9300 REM PRINT PRINT " TYPE 'GO' TO CONTINUE" INPUT RAND$ CLOSE (1) RETURN 9500 REM-------FIND EMPTY SECTOR---------------- PRINT " FINAL COORDINATES (X,Y) "; INPUT W1,X 8220 X=X-A A=C1-W1 IF X<0 THEN GOTO 8350 IF A<0 THEN GOTO 8410 IF X>0 THEN GOTO 8280 IF A=0 THEN GOTO 8370 8280 C1=1 8290 IF ABS rem--------------------------------------------------- rem s t o r y rem--------------------------------------------------- rem june 16, 1977 print print tab(15);"S t o r y" print:print:print print dim a$(11),b$(5),c IN THIS QUADRANT.'" GOTO 1990 8530 PRINT "FROM ENTERPRISE TO STARBASE:" W1=BX X=BY GOTO 8120 9030 REM-----FIND QUADRANT NAME$-------------------------- QUAD=(QX*QY)/4 QUAD.INT=INT(QUAD) QUAD.FRAC=QUAD-QUAD.INT QUAD.REM= PRINT TAB(10);"DIRECTION = ";C1+(ABS(X)/ABS(A)) 8460 PRINT TAB(10);"DISTANCE = ";SQR(X*X+A*A) IF H8=1 THEN GOTO 1990 8480 NEXT I GOTO 1990 8500 IF BASES<>0 THEN GOTO 8530 PRINT "MISSION ADVISORY: 'SENSORS SHOW NO STARBASES2);"Thank you, ";name$ print print tab(12);"Next I'll need 10 nouns! These are names of things, such" print tab(12);"as: Insect, Box, Tree, Banana" for x=1 to 10 print tab(15);"Noun #";x;" "; input c$(x) next x print print "You can recognize an Officer by the ";c$(2);"s on his shoulders" print "and the funny-looking ";c$(3);"s on his cap. When you address" print "an Officer, always say ";c$(4);" and say it ";b$(5);". If you get" print "a ";a$(9);d a ";a$(10);" tail. It answers to the name of" print f$;". When last seen it was carrying a ";c$(5);" in its mouth." print "A ";a$(11);" reward is offered." print print print return 500 rem print print p input i$ print print tab(12);"And finally, an exclamatory word or two "; input j$ print print tab(12);"Well done, ";name$;", now. . ." 140 rem print print tab(12);"Would you like a newspaper ad (1)," print tab(12);" rint "times in the ";c$(9);". The Kid dropped in a pool of ";i$ print print "'";j$;"', Tex said. 'I hated to do it, but he was on the wrong" print "side of the ";c$(10);"." print print print return 600 rem pri print "condition. It was formerly owned by a ";a$(3);" school teacher" print "who always drove it ";b$(1);". There is a ";a$(4);" ";c$(1);" in" print "the back seat. It has a chrome ";c$(2);" on the hood, a ";a$(5) print "paint job, print tab(12);"You're doing great, ";name$;", there's not much more." print print tab(12);"How about two first names of men." print tab(15);"The first man's name "; input d$ print tab(15);"And now the second's "; input e$ pras in town. The Kid was in love with Tex's" print "horse, ";f$;". Suddenly, the Kid came out of the ";a$(7);" Nugget" print "Saloon. " print print "'DRAW TEX', he yelled ";b$(3) print print "Tex reached for his ";c$(4);", brint print print tab(12);"AN ADULT WESTERN" print print "Tex ";g$;", the Marshall of ";d$;" City rode into town. He sat" print b$(2);" in the saddle, ready for trouble. He knew that his ";a$(1) print "enemy, ";e$;" the Kid w a western (2)," print tab(12);" a story about the army (3)," print tab(12);" or a waterbed (4)." 100 print tab(12);"Type the number of the one you would like "; input n 270 rem on n gosub 400,500,600,700 nt print print print print "If you plan on joining the army, here are some ";a$(11);" hints" print "that will help you become a ";a$(10);" soldier." print print "The army is made up of Officers, Non-coms, and ";c$(1);"s." ";a$(6);" tires and the back opens into a ";a$(7) print c$(3);". Will consider taking a slightly used ";c$(4);" in trade." print print print "LOST: In the vicinity of ";h$;", a ";a$(8);" french poodle with" print a$(9);" hair anint print tab(12);"The first name of a woman "; input f$ print print tab(12);"And someone's last name "; input g$ print print tab(12);"A geographical location "; input h$ print print tab(12);"A kind of liquid "; ut before he could get it out of" print "his ";c$(5);" the Kid fired, hitting Tex in the ";c$(6);" and" print "the ";c$(7);"." print print "As Tex fell he pulled out his own ";c$(8);" and shot the Kid "; print int(50*rnd+3) p if left$(qq$,1)<>"Y" and left$(qq$,1)<>"y" then \ goto 125 goto 140 400 rem print print print print print tab(15);"DAILY GRUNT CLASSIFIEDS" print "FOR SALE: 1957 Sedan. This ";a$(1);" car is in a ";a$(2) print tab(15);"Want another story ";name$;" "; input qq$ if left$(qq$,1)<>"Y" and left$(qq$,1)<>"y" then \ print:print:print:print tab(15);"goodbye "; name$:stop print tab(15);"Want to use the same words "; input qq$ " haircut, keep your ";c$(5);"s shined, and see that" print "your ";c$(6);" is clean at all times, you will be a credit to the " print "slogan:" print print " The Army Builds Better ";c$(7);"s!" print print "At roll cal)+D(2)+D(3)+D(4)) THEN 870 835 FOR F=1 TO E 840 A(D(F))=0 850 NEXT F GO TO 880 870 PRINT "THOSE NUMBERS DONT ADD UP TO YOUR ROLL, TRY AGAIN" GO TO 710 880 PRINT "THE NUMBERS YOU HAVE LEFT TO REMOVE ARE" 890 FOR B=1 TO 9 900 IF A(B)=0 THEN PRINT 250 PRINT "YOU WILL BE GIVEN A CHART OF THE NUMBERS YOU HAVE LEFT." 280 PRINT "TAKE OFF, ONE AT A TIME. THE NUMBERS YOU TAKE OFF" 290 PRINT "MUST ADD UP TO THE ROLL. YOU WIN BY REMOVING EVERY" 300 PRINT "NUMBER FROM THE BOARD. YOU LOSE IF print print "Dear Sirs," print print " Last week I purchased a ";a$(2);" contour water bed in your" print "store. I got it especially for my ";a$(4);" husband who sleeps" print "very ";b$(1);" and says that ";a$(6);" water IF C-U(K)-U(L)-U(M)=U(N) THEN 680 630 NEXT N 640 NEXT M 650 NEXT L 660 NEXT K 670 GO TO 950 680 FOR X=1 TO 4 690 D(X)=0 700 NEXT X 710 PRINT"NO. OF NUMBERS TO REMOVE" 720 INPUT E 730 IF INT(E)<>E THEN 760 740 IF E<1 THEN 760 750 IF E>4 THEN 7l, when the ";a$(8);" sergeant calls your name, shout" print "'";j$;"' loud and clear." print print "You will become familiar with weapons like the .30 calibre ";c$(8) print "and the automatic ";c$(9);"." print print "Follow tRND*6+1) 420 PRINT"YOUR ROLL IS",C 430 T=0 435 J=0 440 FOR X=1 TO 9 445 IF A(X) < 1 THEN 460 446 J=J+1 447 U(J)=A(X) 450 T=T+A(X) 460 NEXT X 465 REM CHECK FOR LOSS 470 IF C>T THEN 950 480 IF C=T THEN 1120 490 FOR K=1 TO J 500 FOR L=1 TO J YOU CANNOTT " PRINT "REMOVE THE NUMBERS WITH THE ROLL YOU HAVE." PRINT 340 PRINT PRINT 350 PRINT "HERE IS THE BOARD: " 360 REM SET UP THE BOARD 370 FOR B=1 TO 9 380 PRINT B; 390 A(B)=B 400 NEXT B 405 PRINT 410 C=INT(RND*6+1)+INT( beds that have" print c$(1);"s in them make his ";c$(3);" ache. When the bed arrived " print "my husband tested it ";b$(2);" and said the ";a$(8);" ";c$(5) print "was bent and kept pressing into his ";c$(6);". He says this" print "co60 755 GO TO 770 760 PRINT"ANSWER 1,2,3, OR 4" 765 GO TO 710 770 PRINT"WHAT IS THE NUMBER" 780 FOR F=1 TO E 790 INPUT D(F) 800 Q=D(F) 805 IF A(Q) <>0 THEN 825 810 PRINT "YOU REMOVED IT BEFORE, TRY AGAIN" 820 GO TO 710 825 NEXT F 830 IF C<>(D(190 DIM A(9),D(4),U(9) 110 PRINT 150 PRINT 160 PRINT 170 PRINT "DO YOU NEED INNSTRUCTIONS (YES/NO?)" 180 INPUT R$ 185 RANDOMIZE 190 IF LEFT$(R$,1) = "N" THEN 340 200 IF LEFT$(R$,1) <> "Y" THEN 170 PRINT "BOARD WITH 9 NOS. : 1 2 3 4 5 6 7 8 9" his advice and you may win the. . ." print print "******** ";a$(7);" Conduct ";c$(10);" ********" print print return 700 rem print print "Bust-a-Button and Duck Dept. Store" print "Dix Hills, New York" print FOR M=1 TO J FOR N=1 TO J 530 IF N=K THEN 630 IF N=L THEN 630 IF N=M THEN 630 IF M=K THEN 640 IF M=L THEN 640 IF L=K THEN 650 590 IF C-U(K)=0 THEN 680 IF C-U(K)=U(N) THEN 680 IF C-U(K)-U(L)=U(N) THEN 680 print print tab(25);"Yours ";b$(5);"," print tab(25);f$;" ";g$ print print return  one that" print "will allow my husband to sleep ";b$(4);" and won't make his" print c$(10);" sore." print uld lead to a ";a$(10);" condition of the ";c$(8);"." print print " I would like to exchange this ";a$(9);" bed for one that" print "will allow my husband to sleep ";b$(4);" and won't make his" print c$(10);" sore." print 920 910 PRINT A(B); 920 NEXT B 930 PRINT GO TO 410 950 PRINT"SORRY, YOU LOST THIS TIME." 960 T=0 970 FOR B=1TO 9 980 IF A(B)=0 THEN 1000 990 T=T+1 1000 NEXT B 1010 PRINT"THERE ARE ";T;"NUMBERS LEFT ON THE BOARD: " FOR X=1 TO 9 1030 Ita collected is stored in " "the Galactic Map for access through the Enterprise's central com-" "puter (See 'C')." "" "" "P-HASER CONTROL" "" "Phasers are concentrated bursts of coherent energy that have great" "disruptive force at close range. Th \ I /" "" " 3 - E - 7" "" " / I \" "" " 2 1 8" "" "The second variable is the distance or warp factor. One warp " "factor is the size of one quadrant. The warp factor mus RED = More Than One Klingon in Quadrant" "" "" "L-ONG RANGE SCAN" "" "This scan shows the conditions in space for one quadrant on each" "side of your present quadrant (which is in the middle of the scan)." "The scan is coded such that the un the" "Enterprise in your eternal quest for peace in the galaxy." "Here are the commands that are available to you:" "" "N-AVIGATE" "" "This command is used to control your warp drive (FTL). There" "are two variables that you must set in order to uF A(X)=0 THEN 1050 1040 PRINT A(X); 1050 NEXT X 1060 PRINT 1070 GO TO 1140 1120 PRINT TAB(15);"*** CONGRATULATIONS ***" 1130 PRINT TAB(25);"* YOU WON *" 1140 PRINT 1150 PRINT 1160 PRINT "PLAY ANOTHER GAME (YES/NO)" 1170 INPUT H$ 1180 IF LEFT$(H$mpty Space" " * = A Star" " K = A Klingon Warship" " B = A Friendly Starbase" " ? = Spacecrud" " E = The Enterprise" "" "The short range scan will also give a statut be" "entered as a decimal fraction to move sectors instead of quad-" "rants." "" "S-HORT RANGE SCAN" "" "This readout shows you a scan of every sector of the quadrant" "that your are in. The symbology is as follows:" "" " . = E" Welcome to:" "" "" " S T A R T R E K" "" "" "This is a game of galactic conflict between the starship" "ENTERPRISE and a surly horde of Klingon Destroyers. You" "are the Captain in charge of the Enterprise anits digit is the number of stars," "the tens digit is the number of starbases and the hundreds digit is" "the number of Klingons. For example:" "" " 207 = 2 Klingons, no bases, 7 stars" "" "When you issue a Long Range Scan, the dase your warp" "drive. The first is the direction. This is set by entering" "a number greater than or equal to one and less than nine." "the numbers represent the following directions:" "" " 4 5 6" "" " ,1)="Y" THEN 170 1190 IF LEFT$(H$,1)<>"N" THEN 1160 1200 STOP 1210 END 30 PRINT TAB(25);"* YOU WON *" 1140 PRINT 1150 PRINT 1160 PRINT "PLAY ANOTHER GAME (YES/NO)" 1170 INPUT H$ 1180 IF LEFT$(H$s report including the" "current condition code. The codes are as follows:" "" " GREEN = Scanners Clear" " YELLOW = Enterprise Energy Low" " ORANGE = One Klingon in Quadrant" " ield." "" "You will be assigned a starting point somewhere in the gal-" "axy to begin a tour of duty. You have at your disposal the" "wisdom of the officers of the Starship Enterprise to guide" "you as you unleash the full destructive capabilities ofd it is your" "duty to eradicate the Klingon menace from the galaxy." "" "The galaxy is divided into 64 quadrants in the form of an" "8x8 grid. Each quadrant is further subdivided into an 8x8" "array of 64 sectors. This is the shape of the playing fey can be effective against" "several targets at once, and are very fast at firing. You can set" "the amount of energy to use in a single burst but it is easy to" "use up all of your energy if you are not prudent." "" "" "T-ORPEDO CONTROL" "" "You " the number of starbases remaining and the num-" " ber of Klingons remaining." "" " 3 = Torpedo Target Data. This will give the direc-" " tion and distance to all Klingosh to divert into your shields. Every time you are hit" "by enemy phaser fire your shields will be reduced. If they fall too" "low the damage you suffer will be severe. It is a good idea to set" "them high before going into battle. If you attempt a l equipment on board but they do" "consume precious time." "" "" "C-OMPUTER" "" "This command will put you in direct communications with the central" "computer, an 8080 based system. There are five options available:" "" " 1 = Ga may fire Photon Torpedoes at the Klingons with this command. You" "must set the torpedo course in the same way it is set for the star-" "ship. Torpedoes take longer to unlimber and give the Klingons more" "opportunity for counter-attacks. Aiming is e starbase in the" " quadrant." "" " 5 = Navigator. This will assist you in calculating" " the direction and distance to and from any quad-" " rant or sector in the galaxns in the quad-" " rant. The direction may be used for firing" " photon torpedoes." "" " 4 = Starbase Navigation Data. This will give the" " direction and distance to thwarp that is" "consuming a lot of energy, engineering will transfer some shield power" "to the warp drives. When you leave a starbase your shields will be at" "zero, so don't forget to reset them." "" "" "" "" "D-AMAGE CONTROL" "" "Damage controlactic Map. This is a print of the entire" " galaxy similar to a long range scan. Data is" " entered in the G-Map by the 'L' command." "" " 2 = Status Report. This tells the time remaining" greatly enhanced through" "the use of the central computer (See 'C')." "" "" "E-NGINEERING" "" "The 'E' command will put you in touch with the engineering section" "of the Enterprise and they will allow you to set the amount of energy" "that you wiy." "" "" " -------------------------------------------------" "" "" "" " Good Luck and Good Hunting!" tain sev-" "eral hits and still remain positive (functional). If the 'D' com-" "mand is issued when the Enterprise is docked, it will serve as a" "summons to the repair facilities of the starbase. The Base repair-" "persons will fix all non-functional will give a numerical status report on the various" "sensitive devices on board. A positive number indicates that the" "device is still operational. A negative number shows that the device" "is not functioning. Sometimes a particular device can sus REM--------------------------------------------------------- REM T I C T A C T O E REM REM--------------------------------------------------------- REM JUNE 7, 1977 PRINT:PRINT:PRINT:PRINT PRINT TAB(10);"WHAT IS YOUR NA = M FOR I = 1 TO 8 IF B(I) > 1 THEN 1370 NEXT I LET I = I - 1 FOR I = 1 TO 8 IF B(I) < -1 THEN 1370 NEXT I LET I = I - 1 IF R+CX = 0 THEN 1550 FOR K = 1 TO 11 LET I = C(K) LET J = D(K) IF A(I,J) <> 0 THEN 1330 LET A(GOTO 2070 REMARK MACHINE MOVE ...... GOSUB 1100 REMARK TEST FOR WIN ...... GOSUB 1660 IF Z = 0 THEN 650 REM PRINT GAME BOARD 490 PRINT FOR K = 1 TO 3 LET BX = A(K,1) LET DX = A(K,2) LET F = A(K,3) GOSTO 3744 PRINT:PRINT PRINT TAB(10);"TO ENTER YOUR MOVE YOU MUST TYPE IN THE ROW" PRINT TAB(10);"AND COLUMN NUMBER OF THE SQUARE THAT YOU WISH" PRINT TAB(10);"TO FILL. THE NUMBERS MUST BE SEPARATED WITH A" PRINT TAB(10);"COMMA. I WILL MARK THOSE PRINT "YOU * "; GO TO 880 970 IF F > 0 THEN 1040 PRINT "YOU" GO TO 900 1000 REM PRINT TAB(5); PRINT "ME * "; GO TO 860 1020 PRINT "ME * "; GO TO 880 1040 PRINT "ME " GO TO 900 REM PRINT LEGENDS.. 1070 PRINT TAB(5);" * FOR I = 1 TO 3 LET A(I,J) = 0 NEXT I LET I = I - 1 NEXT J LET J = J - 1 LET Z = 0 330 REM PRINT TAB(5);"WHAT IS YOUR MOVE "; INPUT R,CX PRINT IF R<1 OR R>3 THEN \ PRINT TAB(7);"ROW IS INVALID NUMBER. TRY AGAIN." :\ GOTOME "; INPUT NAME$ PRINT:PRINT PRINT TAB(10);"WELCOME, ";NAME$;", TO. . ." PRINT:PRINT:PRINT RANDOMIZE PRINT TAB(10);" T I C T A C T O E" PRINT TAB(10);"-----------------------------" PRINT:PRINT:PRINT DIM C(11) DIM D(11) FO = I - 1 NEXT J LET J = J - 1 IF T2 > 0 THEN 750 730 GOSUB 1340 GO TO 490 750 IF T2 > 1 THEN 490 FOR J = 1 TO 8 IF B(J) = -2 THEN 800 NEXT J LET J = J - 1 GO TO 730 800 GOSUB 2000 GO TO 490 REM PRINT TIC-TAC-TOE BOARD ROW.... UB 840 IF K > 2 THEN 570 PRINT TAB(5);"***************" 570 NEXT K LET K = K - 1 PRINT IF Z <> 0 THEN 2070 GO TO 330 650 LET T2 = 0 FOR J = 1 TO 3 FOR I = 1 TO 3 IF A(I,J) <> 0 THEN 700 LET T2 = T2 + 1 700 NEXT I LET ISQUARES WITH THE" PRINT TAB(10);"WORD: 'YOU'. WHEN I FILL A SQUARE, I WILL PUT" PRINT TAB(10);"THE WORD: 'ME' IN IT. REMEMBER THAT ROWS ARE" PRINT TAB(10);"HORIZONTAL AND COLUMNS ARE VERTICAL." PRINT PRINT TAB(10);" GOOD LUCK!" PRINT 12* " RETURN REM PROGRAM TO MAKE MOVE FOR THE MACHINE.... 1100 LET M=INT(3.33*RND) 1110 LET N = INT(3.33333*RND) IF M = 0 THEN 1100 IF M > 3 THEN 1100 IF N = 0 THEN 1110 IF N > 3 THEN 1110 LET C(2) = M LET D(2) = N LET C(3) = N LET D(3) 330 IF CX<0 OR CX>3 THEN \ PRINT TAB(7);"COLUMN IS INVALID NUMBER. TRY AGAIN." :\ GOTO 330 IF A(R,CX) <> 0 THEN \ PRINT TAB(7);"THAT SQUARE IS ALREADY TAKEN. TRY AGAIN." :\ GOTO 330 LET A(R,CX) = -1 GOSUB 1660 IF Z = 1 THEN R K = 1 TO 11 READ C(K), D(K) NEXT K 3744 REM PRINT TAB(10);"DO YOU NEED INSTRUCTIONS, ";NAME$; INPUT ANS$ IF LEFT$(ANS$,1)="N" THEN GOTO 1200 IF LEFT$(ANS$,1)<>"Y" THEN \ PRINT TAB(10);"I DON'T UNDERSTAND YOU, PLEASE TRY AGAIN." :\ GO REM 840 IF BX <> 0 THEN 910 PRINT TAB(5); PRINT " * "; 860 IF DX <> 0 THEN 940 PRINT " * "; 880 IF F <> 0 THEN 970 PRINT " " 900 GO TO 1070 910 IF BX > 0 THEN 1000 PRINT TAB(5); PRINT "YOU * "; GO TO 860 940 IF DX > 0 THEN 1020 PRINT TAB(15);"*****************" PRINT TAB(15);" * *" PRINT TAB(15);" 3,1 * 3,2 * 3,3" PRINT TAB(15);" * *" PRINT:PRINT:PRINT DIM B(9) DIM A(3,3) 250 PRINT PRINT TAB(10);"HERE WE GO. . ." PRINT:PRINT FOR J = 1 TO 3 00 REM--- PRINT PRINT PRINT TAB(15);" * *" PRINT TAB(15);" 1,1 * 1,2 * 1,3" PRINT TAB(15);" * *" PRINT TAB(15);"*****************" PRINT TAB(15);" * *" PRINT TAB(15);" 2,1 * 2,2 * 2,3" PRINT TAB(15);" * *" I,J) = 1 GO TO 1360 1330 NEXT K LET K = K - 1 1340 REM-----TIE PRINT:PRINT:PRINT PRINT TAB(15);"TIE GAME!" PRINT:PRINT LET Z = 3 1360 RETURN 1370 IF I > 3 THEN 1440 FOR J = 1 TO 3 IF A(I,J) = 0 THEN 1420 NEXT J LET J = J - 1 0 IF M(J)=M(K) THEN 240 330 NEXT K 340 NEXT J 350 LET A=5 360 LET M(8)=M(1) 370 PRINT 380 PRINT "ENTRANCE IS IN CAVE ";M(8) 389 REM MAIN LOOP 390 IF RND<=0.4 THEN 485 400 GOSUB 3370 485 IF RND>=0.08 THEN 2000 490 GOSUB 5000 1999 REM PRINT LOCATNS$,1)="Y" THEN \ GOTO 250 IF LEFT$(ANS$,1)<>"N" THEN \ PRINT TAB(15);"I CAN'T FIGURE OUT WHAT YOU SAID." :\ PRINT TA " " " " " R .... 1660 LET T1 = 0 FOR J = 1 TO 9 LET B(J) = 0 NEXT J LET J = J - 1 FOR J = 1 TO 3 FOR I = 1 TO 3 IF A(J,1) <> A(J,I) THEN 1750 NEXT I LET I = I - 1 LET T1 = A(J,I) 1750 NEXT J LET J = J - 1 FOR J = 1 TO 3 FO S(J,K) 110 NEXT K 120 NEXT J 130 DATA 2,5,8,1,3,10,2,4,12,3,5,14,1,4,6 140 DATA 5,7,15,6,8,17,1,7,9,8,10,18,2,9,11 150 DATA 10,12,19,3,11,13,12,14,20,4,13,15,6,14,16 160 DATA 15,17,20,7,16,18,9,17,19,11,18,20,13,16,19 200 REM LOCATE M(J) ARRAY ITEMTER WINS PRINT:PRINT:PRINT PRINT TAB(15);"I WIN THIS GAME! NICE TRY." PRINT:PRINT LET Z = 2 GO TO 1850 REM END OF TEST WINNER PROGRAM.... 2070 REM-----ONE MORE TIME? PRINT:PRINT IF Z=1 THEN \ PRINT TAB(15);"GOOD GAME! ";NAME$:\ PRIGO TO 1360 1420 LET A(I,J) = 1 GO TO 1360 1440 IF I > 6 THEN 1510 FOR J = 1 TO 3 IF A(J,I-3) = 0 THEN 1490 NEXT J LET J = J - 1 GO TO 1360 1490 LET A(J,I-3) = 1 GO TO 1360 1510 IF I > 7 THEN 1550 FOR J = 1 TO 3 IF A(J,J) = 0 THENT:PRINT STOP data 2,2,0,0,0,0,1,1,3,3,1,3,3,1,1,2,3,2,2,3,2,1 END  " " " " " R I = 1 TO 3 IF A(1,J) <> A(I,J) THEN 1810 NEXT I LET I = I - 1 LET T1 = A(I,J) 1810 NEXT J LET J = J - 1 IF A(1,1) = A(3,3) THEN 1930 1830 IF A(3,1) = A(1,3) THEN 1970 1840 IF T1 <> 0 THEN 1990 1850 FOR J = 1 TO 3 FOR I = 1 TO S 210 REM 1,YOU 2,WUMPUS 3&4,PITS 5&6,BATS 7,BLOCKAGE8,EXIT 240 LET W=0 245 LET F=M1=W 250 FOR J=1 TO 7 260 LET M(J)=INT(1+RND*20) 270 NEXT J 279 REM CHECK FOR CROSSOVERS (IE M(1)=M(2)ETC) 280 FOR J=1 TO 7 290 FOR K=J TO 7 300 IF J=K THEN 330 32NT TAB(15);"WANT TO TRY TO BEAT ME AGAIN"; :\ GOTO 2083 IF Z=2 THEN \ PRINT TAB(15);"WOULD YOU LIKE ANOTHER CHANCE TO WIN"; :\ GOTO 2083 IF Z=3 THEN \ PRINT TAB(15);"WANT TO TRY ONE MORE"; :\ GOTO 2083 2083 REM INPUT ANS$ IF LEFT$(A 1590 NEXT J LET J = J - 1 1550 IF A(1,3) = 0 THEN 1610 IF A(3,1) = 0 THEN 1630 LET A(2,2) = 1 GO TO 1360 1590 LET A(J,J) = 1 GO TO 1360 1610 LET A(1,3) = 1 GO TO 1360 1630 LET A(3,1) = 1 GO TO 1360 REM PROGRAM TO TEST FOR GAME WINNE1 REM WUMPUS 1/28/77 10 PRINT"WMP23-HUNT THE WUMPUS" 15 PRINT 20 PRINT "INSTRUCTIONS(Y OR N)"; 30 INPUT I$ 35 RANDOMIZE 40 IF I$<>"Y" THEN 70 50 GOSUB 7000 70 REM SET UP CAVE 75 DIM M(8) 77 DIM S(20,3) 80 FOR J=1 TO 20 90 FOR K=1 TO 3 100 READ(2,2) = A(1,3) THEN 1950 GO TO 1840 1990 IF T1 > 0 THEN 2030 2000 REM-----PLAYER WINS PRINT:PRINT:PRINT PRINT TAB(15);CHR$(7);"YOU ARE THE WINNER!!" PRINT TAB(15);"----------------------" PRINT:PRINT LET Z = 1 GO TO 1850 2030 REM-----COMPU3 LET B(J) = B(J) + A(J,I) LET B(J+3) = B(J+3)+A(I,J) NEXT I LET I = I - 1 NEXT J LET J = J - 1 LET B(7) = A(1,1) + A(2,2) + A(3,3) RETURN 1930 IF A(2,2) = A(3,3) THEN 1950 GO TO 1830 1950 LET T1 = A(2,2) GO TO 1840 1970 IF AION AND HAZARD WARNINGS 2000 PRINT 2010 FOR K=1 TO 3 2020 FOR J=2 TO 6 2030 IF S(M(1),K)<>M(J) THEN 2110 2050 ON J-1 GOTO 2060,2080,2080,2100,2100,2060 2060 PRINT"I SMELL A WUMPUS" 2070 GOTO 2110 2080 PRINT"I FEEL A DRAFT" 2090 GOTO 2110 2100 PRN 5910 5904 RETURN 5910 PRINT "DROPPED ARROWS" 5915 IF J<>0 THEN 5930 5920 PRINT "ALL ARROWS FOUND" 5925 RETURN 5930 LET A=A-J 5940 PRINT J;"ARROWS LOST";TAB(20);A;"ARROWS LEFT" 5950 RETURN 6099 REM RANDOM CAVE REARRANGEMENT SUBROUTINE 6100 LET MM(1) THEN 4120 4100 PRINT "NOT POSSIBLE" 4110 GOTO 4000 4119 REM CHECK FOR HAZARDS 4120 IF L<>M(2) THEN 4210 4130 PRINT "OOPS! BUMPED A WUMPUS!" 4140 GOTO 4500 4210 IF (L=M(3))+(L=M(4))=0 THEN 4220 4214 PRINT"YYYIIIIEEEE...FELL IN PIT" 4216 GOTO 400 2237 GOTO 2440 2240 PRINT"THIS LOOKS LIKE A NICE CAVE,WHY NOT STOP FOR LUNCH" 2245 GOTO 2440 2250 PRINT"TAKE CARE WITH THAT FLASHLIGHT" 2255 GOTO 2440 2440 PRINT "TUNNELS LEAD TO CAVES ";S(M(1),1);S(M(1),2);S(M(1),3) 2445 PRINT 2449 REM FEARLES30 GOTO 8810 4999 REM MOVE EVERYTHING 5000 PRINT"**EARTHQUAKE**" 5001 FOR J=3 TO 7 5002 GOSUB 6100 5003 NEXT J 5004 GOSUB 5900 5005 LET M(2)=INT(RND*20+1) 5007 IF (M(1)=M(2))+(M(2)=M(7))<>0 THEN 5005 5009 REM MOVE CAVE ENTRANCE 5010 IF RND<=.1 THHEN 3150 3142 PRINT "YOU GOT THE WUMPUS" 3144 LET F=F+1 3146 LET M(2)=0 3148 GOTO 4400 3150 PRINT"YOU WOUNDED THE WUMPUS" 3215 GOSUB 3370 3220 PRINT A;"ARROWS LEFT" 3230 GOTO 390 3369 REM MOVE WUMPUS ROUTINE 3370 IF W<>1 THEN 3380 3373 LET M(2)=INT"BATS NEARBY" 2110 NEXT J 2120 NEXT K 2130 PRINT"YOU ARE IN CAVE ";M(1) 2139 REM RINGER SUBROUTINES 2140 LET J=INT(RND*40) 2145 IF J=0 OR J>7 THEN 2440 2150 ON J GOTO 2200,2200,2210,2220,2220,2230,2240,2250 2160 GOTO 2440 2200 PRINT"AHA!.WUMPUSM(1)=L 4275 GOTO 390 4280 LET L=INT(1+RND*20) 4285 IF (L=M(1))+(L=M(6))+(L=M(7))<>0 THEN 4280 4290 GOSUB 5900 4300 GOTO 4120 4400 IF RND>=.75 THEN 4410 4402 PRINT "BEWARE OF ITS MATE" 4404 LET J=2 4406 GOSUB 6100 4408 GOTO 3220 4410 LET W=1 442520 4220 IF L<>M(7) THEN 4260 4230 PRINT "CAVE ENTRANCE IS BLOCKED" 4240 GOSUB 5900 4250 GOTO 390 4260 IF (L=M(5))+(L=M(6))=0 THEN 4265 4261 PRINT "ZAP..SUPERBAT SNATCH!" 4263 GOTO 4280 4265 IF L<>M(8) THEN 4270 4267 PRINT "EXIT NEARBY" 4270 LET S FREDDY STRIKES HERE 2450 IF J<>38 THEN 2500 2460 LET L=M(5) 2470 GOTO 4260 2499 REM CHOOSE OPTION 2500 LET M1=M1+1 2510 PRINT"DO SOMETHING"; 2520 INPUT I$ 2530 IF I$="S" THEN 3000 2550 IF I$="A" THEN 3220 2560 IF I$="M" THEN 4000 2570 IF (I$="EN 5020 5015 RETURN 5020 LET M(8)=INT(RND*20+1) 5025 FOR J=3 TO 7 5030 IF M(8)<>M(J) THEN 5040 5033 LET M(8)=INT(RND*20+1) 5036 GOTO 5030 5040 NEXT J 5050 RETURN 5899 REM DROPPED ARROWS SUBROUTINE 5900 LET J=INT(RND*10) 5902 IF (J>A)+(A=0)=0 THE0 3375 RETURN 3380 LET M(2)=S(M(2),(INT(3*RND+1))) 3385 IF (M(1)=M(2))+(L=M(2))+(M(2)=M(7))<>0 THEN 3380 3425 RETURN 3999 REM MOVE ROUTINE 4000 PRINT "WHERE TO"; 4010 INPUT L 4020 FOR K=1 TO 3 4030 IF S(M(1),K)=L THEN 4120 4080 NEXT K 4090 IF L= TRACKS" 2205 GOTO 2440 2210 PRINT"AHA!..FOUND OLD ARROW, LUCKY YOU" 2213 LET A=A+1 2215 GOTO 2440 2220 PRINT"OOPS, SLIPPED ON SOME LOOSE GRAVEL" 2225 GOSUB 5900 2227 GOTO 2440 2230 PRINT"OOPS, YOU JUST FELL INTO AN UNDERGROUND POOL" 2235 GOSUB 590 PRINT "HEE HEE HEE--THE WUMPUS'L GET YOU NEXT TIME" 4430 GOTO 390 4499 REM EATEN SUBROUTINE 4500 IF RND>=.75 THEN 4510 4502 GOSUB 3370 4504 GOSUB 5900 4506 GOTO 4270 4510 PRINT"TSK TSK TSK--THE WUMPUS GOT YOU" 4520 PRINT "HA HA HA--YOU LOSE!" 458 IF S(M(1),K)=L THEN 3130 3020 NEXT K 3025 PRINT"NOT POSSIBLE" 3027 GOTO 3010 3129 REM SHOOT ARROW 3130 LET A=A-1 3132 IF A>=0 THEN 3135 3133 LET A=0 3134 GOTO 3220 3135 IF L=M(2) THEN 3140 3137 PRINT "MISSED" 3138 GOTO 3215 3140 IF RND>=0.8 TE")*(M(1)=M(8))=1 THEN 8800 2580 IF I$="H" THEN 2595 2590 GOTO 2500 2595 GOSUB 7600 2597 GOTO 2000 2999 REM ARROW ROUTINE 3000 IF A>=1 THEN 3010 3003 PRINT"WHAT WITH? DUMMY" 3005 GOTO 390 3010 PRINT "CAVE #"; 3012 INPUT L 3015 FOR K=1 TO 3 301(J)=INT(RND*20)+1 6110 IF (M(J)=M(1))+(M(J)=M(8))<>0 THEN 6100 6200 RETURN 6999 REM INSTRUCTIONS 7000 PRINT "WELCOME TO HUNT THE WUMPUS" 7005 PRINT 7010 PRINT "THE WUMPUS COLONY INHABIT A BURROW OF 20 CAVES" 7020 PRINT "EACH CAVE HAS THREE TUNNELS L 7620 PRINT" S-SHOOT AN ARROW THROUGH A TUNNEL TO TRY AND HIT THE WUMPUS" 7630 PRINT " IT IS BIG ENOUGH SO THAT AN ARROW ENTERING THE CAVE THAT" 7640 PRINT " IT IS OCCUPYING, WILL HIT IT." 7645 PRINT " A-CHECK ON NUMBER OF ARROWS LEFT" 7650 PRINT " 72 GOSUB 7990 7074 PRINT"HAZARDS" 7076 PRINT 7080 PRINT"1---BOTTOMLESS PITS" 7090 PRINT"TWO ROOMS CONTAIN BOTTOMLESS PITS. IF YOU FALL IN A PIT" 7100 PRINT"YOU LOSE." 7110 PRINT 7112 PRINT 7114 PRINT"2---SUPERBATS" 7120 PRINT "TWO ROOMS CONTAIN NE/M1) 8807 PRINT "YOUR RATING IS ";W 8810 IF F<>0 THEN 8830 8820 PRINT"BETTER LUCK NEXT TIME" 8830 PRINT 8840 PRINT "WANT TO TRY AGAIN, IN SPITE OF YOUR INABILITY"; 8850 INPUT I$ 8860 IF I$="Y" THEN 240 9000 END  7230 PRINT 7235 PRINT"4---WUMPUS" 7240 PRINT "THE WUMPUS IS NOT BOTHERED BY ANY HAZARDS (IT HAS SUCKERS" 7250 PRINT "ON ITS FEET AND IS TOO BIG FOR A BAT TO LIFT)." 7260 PRINT "THE WUMPUS IS MOVING IN THE CAVES LOOKING FOR FOOD. IT" 7270 PRINT "NORMEADING TO OTHER CAVES." 7030 PRINT "THE OBJECTIVE IS TO DESCEND INTO THE BURROW AND HUNT WUMPI." 7040 PRINT "AFTER YOU HAVE KILLED AT LEAST ONE, YOU MUST RETURN TO THE" 7050 PRINT"EXIT AND LEAVE THE BURROW. NOTE THAT THERE MAY BE MORE THAN" 7060 PRINT 7690 PRINT " WUMPUS.....I SMELL A WUMPUS" 7700 PRINT " BATS.....BATS NEARBY" 7710 PRINT " PIT.....I FEEL A DRAFT" 7715 PRINT 7720 PRINT " IF YOU TRY TO ENTER A CAVE BLOCKED BY A FALL OR IF YOU" 7730 PRINT "RETURN TO THE ENTRANCE CAVE, YOU WILL BE NOE-EXIT FROM THE CAVES IF YOU ARE IN THE ENTRANCE CAVE" 7660 PRINT " H-ASK FOR INSTRUCTIONS" 7662 PRINT 7664 GOSUB 7990 7666 PRINT "WARNINGS" 7670 PRINT "WHEN YOU ARE ONE CAVE AWAY FROM A HAZARD YOU WILL BE WARNED" 7680 PRINT "AS FOLLOWS:" 7685 PRINTSTS OF SUPERBATS. THEY ARE PEACEFUL" 7130 PRINT"CREATURES WHEN LEFT ALONE. SHOULD YOU INADVERTENTLY" 7140 PRINT"STUMBLE ACROSS THEIR NEST YOU WILL BE PICKED UP AND" 7150 PRINT "BE DEPOSITED IN ANOTHER CAVE AT RANDOM." 7160 PRINT "TOO BAD IF IT CONTAINSALLY EATS A SPECIES OF MUSHROOM, BUT MAY EAT YOU SHOULD" 7280 PRINT "YOU ENTER THE CAVE IN WHICH IT IS FEEDING" 7290 PRINT 7300 GOSUB 7990 7600 PRINT 7605 PRINT "EACH TURN YOU MAY:" 7610 PRINT " M-MOVE TO AN ADJACENT CAVE THROUGH A CONNECTING TUNNEL""ONE WUMPUS IN THE BURROW. " 7061 PRINT "YOU HAVE 5 ARROWS." 7062 PRINT"UNDER CONDITIONS OF STRESS, YOU MAY DROP YOUR ARROWS." 7065 PRINT"YOUR RATING IS A FUNCTION OF THE NUMBER OF WUMPI SHOT & THE" 7067 PRINT "TIME SPENT IN THE BURROW" 7070 PRINT 70TIFID" 7740 PRINT 7750 RETURN 7990 PRINT "TO CONTINUE, TYPE ANY CHARACTER" 7992 INPUT I$ 7994 PRINT 7996 PRINT 7998 RETURN 8799 REM END GAME 8800 PRINT "OUT OF THE CAVES" 8801 IF F<=0 THEN 8805 8803 PRINT "GOOD HUNTING" 8805 LET W=INT((F*1000)Y OF THE CAVES WILL BE CHANGED. THE PITS MAY FILL" 7200 PRINT "UP AND A CAVE MAY BE BLOCKED BY A ROCKFALL. THE BATS WILL" 7210 PRINT "BE DISTURBED AND MAY SEEK OUT A NEW CAVE. THE WUMPUS" 7220 PRINT "WILL ALSO BECOME ALARMED AND MAY MOVE TO A NEW CAVE." ANOTHER HAZARD." 7162 PRINT 7164 GOSUB 7990 7170 PRINT 7175 PRINT"3---**EARTHQUAKES**" 7180 PRINT"EARTHQUAKES ARE A COMMON OCCURRENCE. SHOULD ONE OCCUR, THE" 7185 PRINT "BURROW ENTRANCE MAY BE BLOCKED AND A NEW ONE OPEN UP. THE" 7190 PRINT"GEOGRAPH