IMD 1.16: 31/05/2007 20:29:15 FOGCPM.138 --FOGCPM138AUTOPLOTBASU PLOT BASPLOTTER DOC=AXES BASLABEL BASBINOMIALBASBODEASCIBASCONVERSNBASN !"#$%&'(DAYS BAS )*FINANCESBASe+,-./01234567THINKER BASo89:;<=>?@ABCDETHINKER DOC1FGHIJKLTHINKER2BASMNOPQRSTUVWXYZ[\THINKER2BAS]^_-09-00 86 BELLOWS BAS `aBIORYTHMBAS+bcdefgLOVE BAShijCASINO BASklmnopqrstuvwxyzCASINO BAS&{|}~-CPM138 DOCROULETTEBAS:BANDIT BASDRACULA BASDRACULA BASESCAPE BAS&GUARD BASGUESSNUMBASICBM BASICBMHS DATThis is the disk name. 1000 ON ERROR GOTO 8480 1040 FOR SCREEN=1 TO 12:PRINT:NEXT SCREEN 1080 PRINT "******************************************************":PRINT 1120 PRINT " A U T O P L O T v 1 . 6":PRINT 1160 PRINT "Program to plot scaled graphs from X and Y input pairs" 1200 PRINT " (c) 1984 Alan T. Chattaway.":PRINT 1240 PRINT "Personal use only. Commercial sale/rental prohibited." 1280 PRINT "This version plots on CRT, and optionally on printer." :PRINT 1320 ' Revision 1.0 = Original, limited distribution test version. 1360 ' Revision 1.1 = Made valid for non-monotonic functions. 1400 ' Revision 1.2 = "PRINT USING" statements added, to format scales. 1440 ' Revision 1.3 = For 24-line CRT instead of 66-line printer. 1480 ' Revision 1.4 = Plots on both CRT and standard ASCII printer. 1520 ' Revision 1.5 = Universal version: CRT only, or CRT & printer. 1560 ' Revision 1.6 = Auto-scales both ends of axes (not just top), 1600 ' Error trapping & default titles added. 1640 PRINT "******************************************************":PRINT:PRINT 1680 PRINT "Type in the heading for your graph; do not use commas!" 1720 PRINT " Press RETURN or ENTER when done.":PRINT 1760 INPUT "",HEADING$:PRINT 1800 IF HEADING$="" THEN HEADING$="Graph produced using AUTOPLOT v1.6" 1840 PRINT "******************************************************":PRINT:PRINT 1880 PRINT "Type titles for the X and Y axes (limit 20 characters)" 1920 PRINT "----------------------/234567890123456789\------------" 1960 INPUT "Heading for X column? ",XTITLE$ 2000 INPUT "Heading for Y column? ",YTITLE$ 2040 IF XTITLE$="" THEN XTITLE$="X values" 2080 IF YTITLE$="" THEN YTITLE$="Y values" 2120 PRINT "******************************************************":PRINT:PRINT 2160 'Take in data in pairs of X,Y: maximum no. of points is 25 each way. 2200 'Enter false data 999,999 to indicate end of list. 2240 DIM X(25):DIM Y(25):DIM CRTY(25):DIM DOUBLES(25) 2280 DIM CRTDOUBLES(25):DIM XLINE(25):N=1 2320 PRINT "Type in paired data values (positive) like this: `X,Y'" 2360 PRINT "Press `RETURN' or `ENTER' key, after typing each pair.":PRINT 2400 PRINT "When finished, enter `999,999' to terminate input." 2440 PRINT "(In case of error, type control-C and RUN to restart.)":PRINT 2480 PRINT "To force the use of scales of your choice on both axes" 2520 PRINT "simply include data points representing the lower left" 2560 PRINT "and upper right corners of your desired graph, then" 2600 PRINT "ignore them when drawing the line through the points.":PRINT 2640 PRINT "******************************************************":PRINT 2680 INPUT "",X(N),Y(N) 2720 IF X(N)=999 AND Y(N)=999 THEN N=N-1: GOTO 2800 2760 N=N+1: GOTO 2680 2800 'Do D.L.Shell's fast sort into reverse numerical order by X value. 2840 PRINT:PRINT "Sorting for X ..." 2880 SPANSIZE=N 2920 SPANSIZE=INT(SPANSIZE/2) 2960 IF SPANSIZE=0 THEN GOTO 3440 3000 LOOPSIZE=N-SPANSIZE 3040 STARTPLACE=1 3080 FIRSTCOMPARE=STARTPLACE 3120 SECONDCOMPARE=FIRSTCOMPARE+SPANSIZE 3160 IF X(FIRSTCOMPARE)>=X(SECONDCOMPARE) THEN GOTO 3320 3200 SWAP X(FIRSTCOMPARE),X(SECONDCOMPARE):SWAP Y(FIRSTCOMPARE),Y(SECONDCOMPARE) 3240 FIRSTCOMPARE=FIRSTCOMPARE-SPANSIZE 3280 IF FIRSTCOMPARE>0 THEN GOTO 3120 3320 STARTPLACE=STARTPLACE+1 3360 IF STARTPLACE>LOOPSIZE THEN GOTO 2920 3400 GOTO 3080 3440 PRINT "Scaling X-axis ...":PRINT 3480 'Store top and end values of X-scale to scale the graph later. 3520 XSCALE=X(1):XSCALEND=X(N) 3560 IF X(1)=X(N) THEN PRINT:GOTO 8560 3600 'Now while they're in X-order, print the data table to the screen. 3640 PRINT SPC(INT((80-LEN(HEADING$))/2));HEADING$:PRINT 3680 GOSUB 4040:PRINT 3720 XGAPBACK=INT((20-LEN(XTITLE$))/2):XGAPFRONT=20-LEN(XTITLE$)-XGAPBACK 3760 YGAPBACK=INT((20-LEN(YTITLE$))/2):YGAPFRONT=20-LEN(YTITLE$)-YGAPBACK 3800 PRINT " |";SPC(XGAPFRONT);XTITLE$;SPC(XGAPBACK);"|";SPC(YGAPFRONT);YTITLE$;SPC(YGAPBACK);"|" 3840 GOSUB 4080:PRINT:GOSUB 4040:GOSUB 4080:PRINT 3880 FOR LOOP=1 TO N 3920 PRINT CHR$(&HD);TAB(26);USING "####.##";X(LOOP); 3960 PRINT TAB(47);USING "####.##";Y(LOOP):NEXT LOOP 4000 GOSUB 4080:PRINT:GOSUB 4040:GOTO 4120 4040 PRINT " -------------------------------------------":RETURN 4080 PRINT " | | |";:RETURN 4120 PRINT:PRINT "Would you like this printed on paper? (Y/N) "; 4160 PAPER$=INPUT$(1):IF PAPER$="Y" OR PAPER$="y" THEN GOTO 4240 4200 GOTO 4880 4240 'Print same data table to the printer. 4280 PRINT "Ensure printer is ready, then press any key." 4320 READY$=INPUT$(1) 4360 FOR BLANKLINE=1 TO 6:LPRINT:NEXT BLANKLINE 4400 LPRINT SPC(INT((80-LEN(HEADING$))/2));HEADING$:PRINT 4440 FOR BLANKLINE=1 TO 4:LPRINT:NEXT BLANKLINE 4480 GOSUB 4760:GOSUB 4800:LPRINT 4520 LPRINT " |";SPC(XGAPFRONT);XTITLE$;SPC(XGAPBACK);"|";SPC(YGAPFRONT);YTITLE$;SPC(YGAPBACK);"|" 4560 LPRINT:GOSUB 4760:LPRINT 4600 FOR LOOP=1 TO N 4640 GOSUB 4800:LPRINT CHR$(&HD);TAB(26);USING "####.##";X(LOOP); 4680 LPRINT TAB(47);USING "####.##";Y(LOOP):NEXT LOOP 4720 LPRINT:GOSUB 4760:GOTO 4840 4760 LPRINT " -------------------------------------------":RETURN 4800 LPRINT " | | |";:RETURN 4840 LPRINT CHR$(&HC) 4880 'Do Shell sort again into reverse numerical order by Y value. 4920 PRINT:PRINT "Sorting for Y ..." 4960 SPANSIZE=N 5000 SPANSIZE=INT(SPANSIZE/2) 5040 IF SPANSIZE=0 THEN GOTO 5520 5080 LOOPSIZE=N-SPANSIZE 5120 STARTPLACE=1 5160 FIRSTCOMPARE=STARTPLACE 5200 SECONDCOMPARE=FIRSTCOMPARE+SPANSIZE 5240 IF Y(FIRSTCOMPARE)>=Y(SECONDCOMPARE) THEN GOTO 5400 5280 SWAP Y(FIRSTCOMPARE),Y(SECONDCOMPARE):SWAP X(FIRSTCOMPARE),X(SECONDCOMPARE) 5320 FIRSTCOMPARE=FIRSTCOMPARE-SPANSIZE 5360 IF FIRSTCOMPARE>0 THEN GOTO 5200 5400 STARTPLACE=STARTPLACE+1 5440 IF STARTPLACE>LOOPSIZE THEN GOTO 5000 5480 GOTO 5160 5520 PRINT "Scaling Y-axis ...":PRINT 5560 'Store top and end values of Y-scale to scale the graph later. 5600 YSCALE=Y(1):YSCALEND=Y(N) 5640 IF Y(1)=Y(N) THEN PRINT:GOTO 8560 5680 'Now while they're in Y-order get ready to print the graph. 5720 'Scale points to fit within 50 horizontal and vertical spaces. 5760 'Also scale another Y-axis for the CRT display (20 lines high) 5800 XFACTOR=(XSCALE-XSCALEND)/50:YFACTOR=(YSCALE-YSCALEND)/50:CRTYFACTOR=(YSCALE-YSCALEND)/20 5840 FOR POINT=1 TO N 5880 X(POINT)=INT((X(POINT)-XSCALEND)/XFACTOR+.5) 5920 CRTY(POINT)=INT((Y(POINT)-YSCALEND)/CRTYFACTOR+.5) 5960 Y(POINT)=INT((Y(POINT)-YSCALEND)/YFACTOR+.5) 6000 'Mark duplicated readings for later action. 6040 FOR LOOP = N TO 2 STEP -1 6080 IF X(LOOP)=X(LOOP-1) AND Y(LOOP)=Y(LOOP-1) THEN DOUBLES(LOOP)=1 6120 IF X(LOOP)=X(LOOP-1) AND CRTY(LOOP)=CRTY(LOOP-1) THEN CRTDOUBLES(LOOP)=1 6160 NEXT LOOP 6200 NEXT POINT 6240 'Now print the graph, starting at the top 6280 GOSUB 7080 'subroutine prints graph on CRT first 6320 PRINT:PRINT "Would you like this printed on paper? (Y/N) "; 6360 PAPER$=INPUT$(1):IF PAPER$="Y" OR PAPER$="y" THEN GOTO 6400 ELSE GOTO 8760 6400 'Print same graph to the printer. 6440 PRINT "Ensure printer is ready, then press any key." 6480 READY$=INPUT$(1) 6520 LPRINT SPC(INT((80-LEN(HEADING$))/2));HEADING$ 6560 LPRINT TAB(13-(INT(LEN(YTITLE$)/2)));YTITLE$ 6600 FOR HEIGHT=55 TO 5 STEP -1 6640 LPRINT USING " ####.## |";(YSCALEND+YFACTOR*(HEIGHT-5)); 6680 FOR POINT=N TO 1 STEP -1 6720 IF DOUBLES(POINT)=1 THEN GOTO 6800 6760 IF Y(POINT)=(HEIGHT-5) THEN LPRINT TAB(X(POINT)+19);"*";CHR$(&HD); 6800 NEXT POINT:LPRINT:NEXT HEIGHT 6840 LPRINT " -.---------.---------.---------.---------.---------.--" 6880 LPRINT " | | | |";SPC(22-LEN(XTITLE$));XTITLE$ 6920 FOR LOOP=68 TO 18 STEP -10 6960 XAXIS=(XSCALEND+((XSCALE-XSCALEND)*(LOOP-18))/50) 7000 LPRINT TAB(LOOP-3);USING "####.##";XAXIS; 7040 LPRINT CHR$(&HD);:NEXT LOOP:LPRINT CHR$(&HC);:GOTO 8760 7080 'Subroutine to print graph on CRT before it goes on paper 7120 PRINT SPC(INT((80-LEN(HEADING$))/2));HEADING$ 7160 PRINT TAB(13-(INT(LEN(YTITLE$)/2)));YTITLE$ 7200 FOR HEIGHT=21 TO 1 STEP -1 7240 COUNT=0:FOR POINT=N TO 1 STEP -1 7280 IF DOUBLES(POINT)=1 THEN GOTO 7360 7320 IF CRTY(POINT)=(HEIGHT-1) THEN GOSUB 7680 7360 NEXT POINT:IF COUNT<>0 THEN GOSUB 7760 7400 PRINT USING " ####.## |";(+YSCALEND+CRTYFACTOR*(HEIGHT-1)):NEXT HEIGHT 7440 PRINT " -.---------.---------.---------.---------.---------." 7480 'Note: no room for XTITLE$ on CRT printout; used on paper copy only. 7520 FOR LOOP=68 TO 18 STEP -10 7560 XAXIS=(XSCALEND+((XSCALE-XSCALEND)*(LOOP-18))/50) 7600 PRINT TAB(LOOP-3);USING "####.##";XAXIS; 7640 PRINT CHR$(&HD);:NEXT LOOP:RETURN 7680 'Subroutine to collect X-positions of points that are on the same line. 7720 COUNT=COUNT+1:XLINE(COUNT)=(X(POINT)+19):RETURN 7760 'Subroutine to sort X-positions into order and print them. 7800 SPANSIZE=COUNT 7840 SPANSIZE=INT(SPANSIZE/2) 7880 IF SPANSIZE=0 THEN GOTO 8360 7920 LOOPSIZE=COUNT-SPANSIZE 7960 STARTPLACE=1 8000 FIRSTCOMPARE=STARTPLACE 8040 SECONDCOMPARE=FIRSTCOMPARE+SPANSIZE 8080 IF XLINE(FIRSTCOMPARE)>=XLINE(SECONDCOMPARE) THEN GOTO 8240 8120 SWAP XLINE(FIRSTCOMPARE),XLINE(SECONDCOMPARE) 8160 FIRSTCOMPARE=FIRSTCOMPARE-SPANSIZE 8200 IF FIRSTCOMPARE>0 THEN GOTO 8040 8240 STARTPLACE=STARTPLACE+1 8280 IF STARTPLACE>LOOPSIZE THEN GOTO 7840 8320 GOTO 8000 8360 FOR PLACE=1 TO COUNT 8400 PRINT TAB(XLINE(PLACE));"*";CHR$(&HD); 8440 NEXT PLACE:RETURN 8480 PRINT "******************************************************":PRINT 8520 PRINT " There has been an error in program execution.":GOTO 8720 8560 PRINT "******************************************************":PRINT 8600 PRINT "****** WARNING ! ******" 8640 PRINT "****** Largest X (or Y) value = Smallest value ******" 8680 PRINT "There is no range of values so no graph can be plotted" 8720 PRINT "****** Would you like to run AUTOPLOT again? ******":GOTO 8880 8760 'End of program; offer another run, then sign off gracefully. 8800 PRINT "******************************************************":PRINT 8840 PRINT "Graph completed. Would you like to run AUTOPLOT again?" 8880 REPLY$=INPUT$(1):IF REPLY$="Y" OR REPLY$="y" THEN RUN 8920 FOR SCROLL=1 TO 10:PRINT:NEXT SCROLL 8960 PRINT "******************************************************":PRINT 9000 PRINT " Thank you for using AUTOPLOT v1.6":PRINT 9040 PRINT "******************************************************" 9080 FOR SCROLL=1 TO 8:PRINT:NEXT SCROLL:END 1.6":PRINT 9040 PRINT "******************************************************" 9080 FOR SCROLL=1 TO 8:PRIN**************************************************":PRINT 8600 PRINT "****** WARNING ! ******" 8640 PRINT "****** Largest X (or Y) value = Smallest value ******" 8680 PRINT "There is no range of values so no graph can be plotted" 8720 PRINT "****** Would you like to run AUTOPLOT again? ******":GOTO 8880 8760 'End of program; offer another ru8999 STOP 9000 REM Plotter driver for TRS-80 9010 REM Color Graphic Printer CGP-115 9020 REM by Carl Tenning, September 1985 9030 REM 9040 REM User program sets values for 9050 REM X=horiz coordinate and 9060 REM Y=vert coordinate followed 9070 REM by a GOSUB 9000. End plot by 9080 REM doing GOSUB 9000 without 9090 REM changing X or Y. Options: 9100 REM Pen color set COLOR%=n (0-3) 9110 REM Dash line set DASH%=n (0-15) 9120 REM Raise pen set PENUP%=1 9130 REM 9140 REM 9150 IF INIT%=0 THEN 9190 9160 IF COLOR%>=0 THEN LPRINT "C"; COLOR% 9170 IF DASH%>=0 THEN LPRINT "L"; DASH% 9180 GOTO 9500 9190 REM initialize 9200 INIT%=-1 9210 PENUP%=-1 9220 LASTX=X-1 9230 LASTY=Y-1 9240 IF XMIN < XMAX AND YMIN < YMAX THEN 9310 9250 PRINT "Remember to initialize grid limits" 9260 PRINT 9270 INPUT "X min=";XMIN 9280 INPUT "X max=";XMAX 9290 INPUT "Y min=";YMIN 9300 INPUT "Y max=";YMAX 9310 LPRINT CHR$(18) 9320 LPRINT "M0,-400" 9330 LPRINT "I" 9340 LPRINT "L0" 9350 PXMIN%=0:PXMAX%=480 9360 PYMIN%=0:PYMAX%=400 9370 DEF FNDRAW$(X%,Y%)="D"+STR$(X%)+","+STR$(Y%) 9375 DEF FNMOVE$(X%,Y%)="M"+STR$(X%)+","+STR$(Y%) 9380 LPRINT FNDRAW$(PXMIN%,PYMAX%) 9390 LPRINT FNDRAW$(PXMAX%,PYMAX%) 9400 LPRINT FNDRAW$(PXMAX%,PYMIN%) 9410 LPRINT FNDRAW$(PXMIN%,PYMIN%) 9420 PXRAN%=PXMAX%-PXMIN% 9430 PYRAN%=PYMAX%-PYMIN% 9440 XRAN=XMAX-XMIN 9450 YRAN=YMAX-YMIN 9460 IF DASH%>0 THEN LPRINT "L"; DASH% 9470 DASH%=-1 9480 IF COLOR%>0 AND COLOR%<4 THEN LPRINT "C"; COLOR% 9490 COLOR%=-1 9500 REM plot 9510 IF X<>LASTX OR Y<>LASTY THEN 9570 9520 LPRINT "H" 9530 LPRINT "L0" 9535 LPRINT "S1" 9540 LPRINT "A" 9550 INIT%=0 9560 RETURN 9570 REM calculate plot 9580 XPLOT%=INT(PXRAN%*(X-XMIN)/XRAN+.5) 9590 YPLOT%=INT(PYRAN%*(Y-YMIN)/YRAN+.5) 9600 IF XPLOT%PXMAX% THEN PENUP%=-1 : GOTO 9670 9610 IF YPLOT%<-999 OR YPLOT%>PYMAX% THEN PENUP%=-1 : GOTO 9670 9620 IF PENUP% THEN 9650 9630 LPRINT FNDRAW$(XPLOT%,YPLOT%) 9640 GOTO 9670 9650 LPRINT FNMOVE$(XPLOT%,YPLOT%) 9660 PENUP%=0 9670 LASTX=X 9680 LASTY=Y 9690 RETURN W$(XPLOT%,YPLOT%) 9640 GOTO 9670 9650 LPRINT FNMOVE$(XPLOT%,YPLOT%) 9660 PENUP%=0 9670 L 9380 LPRINT FNDRAW$(PXMIN%,PYMAX%) 9390 LPRINT FNDRAW$(PXMAX%,PYMAX%) 9400 LPRINT FNDRAW$(PXMAX%,PYMIN%) 9410 LPRINT FNDRAW$(PXMIN%,PYMIN%) 9420 PXRAN%=PXMAX%-PXMIN% 9430 PYRAN%=PYMAX%-PYMIN% 9440 XRAN=XMAX-XMIN 9450 YRAN=YMAX-YMIN 9460 IF DASH%>0 THEN LPRINT "L"; DASH% 9470 DASH%=-1 9480 IF COLOR%>0 AND COLOR%<4 THEN LPRINT "C"; COLOR% 9490 COLOR%=-1 9500 REM plot 9510 IF X<>LASTX OR Y<>LASTY THEN 9570 9520 LPRINT "H" 9530 LPRINT "L0" 9535 LPRINT "S1" 9540 LPRINT "A" 9550 INIT%=0 9560 RETURN 9570 REM calculate plot 9580 XPLOT%=INT(PXRAN%*(X-XMIN)/XRAN+.5) 9590 YPLOT%=INT(PYRAN%*(Y-YMIN)/YRAN+.5) 9600 IF XPLOT%PXMAX% THEN PENUP%=-1 : GOTO 9670 9610 IF YPLOT%<-999 OR YPLOT%>PYMAX% THEN PENUP%=-1 : GOTO 9670 9620 IF PENUP% THEN 9650 9630 LPRINT FNDRAW$(XPLOT%,YPLOT%) 9640 GOTO 9670 9650 LPRINT FNMOVE$(XPLOT%,YPLOT%) 9660 PENUP%=0 9670 L.OP .PF ON .RM 65 PLOTTER DRIVER FOR RADIO SHACK COLOR GRAPHIC PRINTER CGP-115 (MBASIC TIPS) by Carl Tenning Th Radi Shac CGP-11 Colo Graphi Printe i dand littl printer/plotte usin 1/ inc wid rol paper Beside printin i eithe 4 characte wid o 8 characte wid prin modes i wil dra i soli line o u t 1 dashe lin pattern whil i th graphic mode Als i th graphic mode printin ca b don i fou directions Ther ar fou pens black blue gree an red an th pen ca b commande t dra i increment a smal a 0. millimeter Thi machin operate wit simpl comman languag consistin o栠 lette followe b on o tw numbers dependin o th command. Th printer/plotte connect t th compute throug eithe paralle printe cabl o seria RS-232-à 4-pi DI cable us i connecte t m Osborn paralle printe port Th seria interfac fo th CGP-11 require 60 baud s i can' b use wit th Osborn seria por (whic i onl 30 o 120 baud) Wit th uni connecte t th printe por o th computer command ar sen t th printer/plotte wit LPRINԠ statements O computer suc a th Radi Shac Colo Computer command ar sen wit th PRINT#-2 statemen instea o LPRINT. Usin th comman language plottin mus b scale t th unit o th plotte whic ar 48 unit wid an 99 unit bot abov an belo th origin Eac uni i 0. millimeter I use i computin i unit othe tha these the th progra unit mus b scale t plotte unit befor sendin砠 the t th plotter Th堠 followin subroutin doe thi automatically Th use simpl assign value t variable ؠ an ٠ fo th horizonta an vertica unit respectivel an doe GOSU 9000 Th value fo th limit o th gri ar se b assignin XMIN XMAX an YMIN YMAX The shoul b se befor th firs GOSU 9000 bu i the aren' th progra wil promp th use fo them O th firs GOSU  9000 th subroutin variable ar initialize an th pe move t th firs X poin withou drawin (pe up) Subequen move ar don wit th pe dow unles th user progra set pen-u b assignin PENUP%=1 Pe colo i selecte b th use progra b assignin COLOR%= wher 0=black 1=blue 2=gree an 3=red T terminat th plottin mode th use progra doe GOSU 900 withou changin an Y Thi signal th subroutin t retur t th prin mode On othe optio i th das line I i selecte b assignin DASH%= wher n= t 15 zer i soli line wher number thr 1 ar fro shor t lon dashes. 8999 STOP 9000 REM Plotter driver for TRS-80 9010 REM Color Graphic Printer CGP-115 9020 REM by Carl Tenning, September 1985 9030 REM 9040 REM User program sets values for 9050 REM X=horiz coordinate and 9060 REM Y=vert coordinate followed 9070 REM by a GOSUB 9000. End plot by 9080 REM doing GOSUB 9000 without 9090 REM changing X or Y. Options: 9100 REM Pen color set COLOR%=n (0-3) 9110 REM Dash line set DASH%=n (0-15) 9120 REM Raise pen set PENUP%=1 9130 REM 9140 REM 9150 IF INIT%=0 THEN 9190 9160 IF COLOR%>=0 THEN LPRINT "C"; COLOR% 9170 IF DASH%>=0 THEN LPRINT "L"; DASH% 9180 GOTO 9500 9190 REM initialize 9200 INIT%=-1 9210 PENUP%=-1 9220 LASTX=X-1 9230 LASTY=Y-1 9240 IF XMIN < XMAX AND YMIN < YMAX THEN 9310 9250 PRINT "Remember to initialize grid limits" 9260 PRINT 9270 INPUT "X min=";XMIN 9280 INPUT "X max=";XMAX 9290 INPUT "Y min=";YMIN 9300 INPUT "Y max=";YMAX 9310 LPRINT CHR$(18) 9320 LPRINT "M0,-400" 9330 LPRINT "I" 9340 LPRINT "L0" 9350 PXMIN%=0:PXMAX%=480 9360 PYMIN%=0:PYMAX%=400 9370 DEF FNDRAW$(X%,Y%)="D"+STR$(X%)+","+STR$(Y%) 9375 DEF FNMOVE$(X%,Y%)="M"+STR$(X%)+","+STR$(Y%) 9380 LPRINT FNDRAW$(PXMIN%,PYMAX%) 9390 LPRINT FNDRAW$(PXMAX%,PYMAX%) 9400 LPRINT FNDRAW$(PXMAX%,PYMIN%) 9410 LPRINT FNDRAW$(PXMIN%,PYMIN%) 9420 PXRAN%=PXMAX%-PXMIN% 9430 PYRAN%=PYMAX%-PYMIN% 9440 XRAN=XMAX-XMIN 9450 YRAN=YMAX-YMIN 9460 IF DASH%>0 THEN LPRINT "L"; DASH% 9470 DASH%=-1 9480 IF COLOR%>0 AND COLOR%<4 THEN LPRINT "C"; COLOR% 9490 COLOR%=-1 9500 REM plot 9510 IF X<>LASTX OR Y<>LASTY THEN 9570 9520 LPRINT "H" 9530 LPRINT "L0" 9535 LPRINT "S1" 9540 LPRINT "A" 9550 INIT%=0 9560 RETURN 9570 REM calculate plot 9580 XPLOT%=INT(PXRAN%*(X-XMIN)/XRAN+.5) 9590 YPLOT%=INT(PYRAN%*(Y-YMIN)/YRAN+.5) 9600 IF XPLOT%PXMAX% THEN PENUP%=-1 : GOTO 9670 9610 IF YPLOT%<-999 OR YPLOT%>PYMAX% THEN PENUP%=-1 : GOTO 9670 9620 IF PENUP% THEN 9650 9630 LPRINT FNDRAW$(XPLOT%,YPLOT%) 9640 GOTO 9670 9650 LPRINT FNMOVE$(XPLOT%,YPLOT%) 9660 PENUP%=0 9670 LASTX=X 9680 LASTY=Y 9690 RETURN Th堠 CGP-11 printer/plotte ca als prin character whil i th graphic (plotting mode Thi capabilit ca b adde wit th followin subroutine. 9800 REM Print nomenclature 9810 REM for TRS-80 CGP-115 9820 REM by Carl Tenning, Sept. '85 9830 REM Set position by X=horiz, 9840 REM Y=vert, and L$ to nomenclature 9850 REM followed by GOSUB 9800. 9860 REM Select letter size by 9870 REM SIZE%=n (0-63) and direction 9880 REM by DIR%=n (0-3). 9890 REM 9900 PENUP%=-1 9910 GOSUB 9000 9920 IF SIZE%>=0 THEN LPRINT "S";SIZE% 9930 SIZE%=-1 9940 IF DIR%>=0 THEN LPRINT "Q";DIR% 9950 DIR%=-1 9960 LPRINT "P";L$ 9970 RETURN Lette siz i selecte b assignin SIZE%= wher n= t 63 siz o zer i th equivalen o th 8 characte prin mode on give th 4 characte򠠠 size Th堠 large number󠠠 giv correspondingl large character u t 1/ inche wide Directio o th prin i assigne b DIR%= t 3 Zer i left-to-right fo top-to-bottom fo upsid down an fo bottom-to-top Th prin strin i assigne t L$ Th positio t prin i set by assigning X and Y followed by a GOSUB 9800. On las featur draw a an axis Her i is. 9700 REM draw axes 9705 REM Set XINCR=X increments 9710 REM and YINCR=Y increments 9715 X=XMIN 9720 IF YMIN<=0 AND YMAX>=0 THEN Y=0 ELSE Y=(YMIN+YMAX)/2 9725 PENUP%=-1:GOSUB 9000 9730 IF XINCR<=0 THEN XINCR=XRAN/24 9735 NUMB%=INT(XRAN/XINCR+.5) 9740 STP%=INT(PXRAN%/NUMB%+.5) 9745 LPRINT "X1,";STP%;",";NUMB% 9750 IF XMIN<=0 AND XMAX>=0 THEN X=0 ELSE X=(XMIN+XMAX)/2 9755 Y=YMIN 9760 LASTX=X-1:LASTY=Y-1 9765 PENUP%=-1:GOSUB 9000 9770 IF YINCR<=0 THEN YINCR=YRAN/20 9775 NUMB%=INT(YRAN/YINCR+.5) 9780 STP%=INT(PYRAN%/NUMB%+.5) 9785 LPRINT "X0,";STP%;",";NUMB% 9790 XINCR=0:YINCR=0 9795 RETURN Thi par o th subroutin scale th desire an ٠ increment b assignin XINC an YINC a i th use program The doin GOSU 970 draw th axes. Her i sampl progra whic illustrate th use of these subroutines: 10 REM draw circle 20 DEFINT N 30 PI=4*ATN(1!) 40 XMIN=-12 50 XMAX=12 60 YMIN=-10 70 YMAX=10 80 R=10 85 COLOR%=1 90 FOR N=0 TO 360 STEP 3 100 W=2*PI*N/360 110 X=R*COS(W) 120 Y=R*SIN(W) 130 GOSUB 9000 140 NEXT N 150 PENUP%=1 160 X=.6 170 Y=-5 180 DIR%=3 190 SIZE%=0 200 L$="VERTICAL AXIS" 205 COLOR%=3 210 GOSUB 9800 220 PENUP%=1 230 XINCR=1 240 YINCR=1 245 COLOR%=0 250 GOSUB 9700 260 GOSUB 9000 270 LPRINT "SAMPLE CIRCLE" 280 END Remember to MERGE the above subroutines with the sample program.  9760 LASTX=X-1:LASTY=Y-1 9765 PENUP%=-1:GOSUB 9000 9770 IF YINCR<=0 THEN YINCR=YRAN/20 9775 NUMB%=INT(YRAN/YINCR+.5) 9780 STP%=INT(PYRAN%/NUMB%+.5) 9785 LPRINT "X0,";STP%;",";NUMB% 9790 XINCR=0:YINCR=0 9795 RETURN Thi par o th subroutin scale th desire an ٠ increment b assignin XINC an YINC a i th use program The doin GOSU 970 draw9700 REM draw axes 9705 REM Set XINCR=X increments 9710 REM and YINCR=Y increments 9715 X=XMIN 9720 IF YMIN<=0 AND YMAX>=0 THEN Y=0 ELSE Y=(YMIN+YMAX)/2 9725 PENUP%=-1:GOSUB 9000 9730 IF XINCR<=0 THEN XINCR=XRAN/24 9735 NUMB%=INT(XRAN/XINCR+.5) 9740 STP%=INT(PXRAN%/NUMB%+.5) 9745 LPRINT "X1,";STP%;",";NUMB% 9750 IF XMIN<=0 AND XMAX>=0 THEN X=0 ELSE X=(XMIN+XMAX)/2 9755 Y=YMIN 9760 LASTX=X-1:LASTY=Y-1 9765 PENUP%=-1:GOSUB 9000 9770 IF YINCR<=0 THEN YINCR=YRAN/20 9775 NUMB%=INT(YRAN/YINCR+.5) 9780 STP%=INT(PYRAN%/NUMB%+.5) 9785 LPRINT "X0,";STP%;",";NUMB% 9790 XINCR=0:YINCR=0 9795 RETURN NUMB%=INT(YRA9800 REM Print nomenclature 9810 REM for TRS-80 CGP-115 9820 REM by Carl Tenning, Sept. '85 9830 REM Set position by X=horiz, 9840 REM Y=vert, and L$ to nomenclature 9850 REM followed by GOSUB 9800. 9860 REM Select letter size by 9870 REM SIZE%=n (0-63) and direction 9880 REM by DIR%=n (0-3). 9890 REM 9900 PENUP%=-1 9910 GOSUB 9000 9920 IF SIZE%>=0 THEN LPRINT "S";SIZE% 9930 SIZE%=-1 9940 IF DIR%>=0 THEN LPRINT "Q";DIR% 9950 DIR%=-1 9960 LPRINT "P";L$ 9970 RETURN >=0 THEN LPRINT "S";SIZE10 PRINT "binomial distribution" 20 PRINT 30 DIM M(3) 40 PRINT "(to end program enter 0)" 50 PRINT "number of trials"; 60 INPUT N 70 IF N=0 THEN GOTO 320 80 PRINT "exact number of successes"; 90 INPUT X 100 PRINT "probability of success": 110 INPUT P 120 PRINT 130 INPUT "Cumulative y/n";R$ 140 SUM# = 0! 150 REM - compute the factorials 160 M(1) = N 170 M(2) = X 180 M(3) = N-X 190 FOR I=1 TO 3 200 IF M(I) = 0 THEN GOTO 260 210 A#=LOG(1) 220 FOR J=1 TO M(I) 230 A#=A#+LOG(J) 240 NEXT J 250 M(I) = A# 260 NEXT I 270 REM - using the computed factorials, compute prob. 280 R=EXP(M(1)-M(2)-M(3)+X*LOG(P)+(N-X)*LOG(1-P)) 290 PRINT "probability of";X;"successes in";N;"trials =";R 300 PRINT 310 GOTO 50 320 END 2)-M(3)+X*LOG(P)+(N-X)*LO10 REM - BASIC PROGRAM TO VISUALIZE BODE PLOT FOR 20 REM - CERTAIN TRANSFER FUNCTIONS. 30 REM - WRITTEN BY STEVE LEBIEN 40 DIM A(5) 50 PRINT CHR$(26) 60 PRINT"DETERMINE MAXIMUM VALUE OF DEPENDANT VARIABLE 70 PRINT"ENTER MAXIMUM PLUS 10% 80 INPUT H 90 PRINT"DETERMINE MAXIMUM VALUE FOR DEPENDANT VARIABLE 100 PRINT"ENTER MAXIMUM PLUS 10% 110 INPUT O 120 PRINT:PRINT"ENTER CONSTANT FACTOR 130 INPUT K 140 PRINT:PRINT"ENTER NO. OF CUTOFF FREQUENCIES" 150 INPUT N 160 FOR X=1 TO N 170 PRINT"FREQUENCY ";X; 180 INPUT A(X) 190 NEXT X 195 PRINT CHR$(26) 220 IF K<=9 THEN FOR X=63493! TO 63612! STEP 2:POKE X-CINT(K*5/3)*128,46:NEXT X 230 IF K>10 AND K<100 THEN FOR X=63493! TO 63612! STEP 2: POKE X-CINT(K/10*5/3)*128,46:NEXT X 240 IF K>100 THEN FOR X=63493! TO 63612! STEP 2:POKE X-CINT(K/100*5/3)*128,46:NEXT X 250 FOR X=61444! TO 65408! STEP 128 260 POKE X,4 270 NEXT X 280 FOR X=61571! TO 65408! STEP 640 290 POKE X+2,45 300 NEXT X 310 FOR X=63493! TO 63612! 320 POKE X,23 330 NEXT X 340 FOR X= 63507! TO 63612! STEP 15 350 POKE X,11 360 NEXT 370 REM - SCALE DEPENDANT AXIS 380 POKE 61570!,57:IF H>10 THEN POKE 61571!,48:IF H>100 THEN POKE 61572!,48 390 POKE 62210!,54:IF H>10 THEN POKE 62211!,48:IF H>100 THEN POKE 62212!,48 400 POKE 62850!,51:IF H>10 THEN POKE 62851!,48:IF H>100 THEN POKE 62852!,48 410 POKE 63490!,48 420 POKE 64130!,51:IF H>10 THEN POKE 64131!,48:IF H>100 THEN POKE 64132!,48 430 POKE 64770!,54:IF H>10 THEN POKE 64771!,48:IF H>100 THEN POKE 64772!,48 440 REM - SCALE INDEPENDANT AXIS 450 I=0 460 FOR X=63633! TO 63740! STEP 15 470 POKE X,49+I 480 IF O>10 THEN POKE X+1,48 490 IF O>100 THEN POKE X+2,48 500 IF O>1000 THEN POKE X+3,48 510 IF O>10000 THEN POKE X+4,48 520 I=I+1 530 NEXT X 540 IF O<=100 AND O>-100 THEN FOR X=63493! TO 63493!+CINT( (ABS(A(1))*11)/8):POKE X,42:NEXT X 545 I=0 550 FOR X=63493!+CINT(A(1)*11/8) TO 63493!+CINT(A(1)*11/8)+13 560 IF O<=100 AND O>0 THEN I=I+1 :POKE X+129*I,42:NEXT X 570 IF O<0 AND O>-100 THEN I=I+1:POKE X-127*I,42:NEXT  X )*11/8)+13 560 IF O<=100 AND O>0 THEN I=I+1 :POKE X+129*I,42:NEXT X 570 IF O<0 AND O>-100 THEN I=I+1:POKE X-127*I,42:NEXT 61571!,48:IF H>100 THEN POKE 61572!,48 390 POKE 62210!,54:IF H>10 THEN POKE 62211!,48:IF H>100 THEN POKE 62212!,48 400 POKE 62850!,51:IF H>10 THEN POKE 62851!,48:IF H>100 THEN POKE 62852!,48 410 POKE 63490!,48 420 POKE 64130!,51:IF H>10 THEN POKE 64131!,48:IF H>100 THEN POKE 64132!,48 430 POKE 64770!,54:IF H>10 THEN POKE 64771!,48:IF H>100 THEN POKE 64772!,48 440 REM - SCALE INDEPENDANT AXIS 450 I=0 460 FOR X=63633! TO 63740! STEP 15 470 POKE X,49+I 480 IF O>10 THEN POKE X+1,48 490 IF O>100 THEN POKE X+2,48 500 IF O>1000 THEN POKE X+3,48 510 IF O>10000 THEN POKE X+4,48 520 I=I+1 530 NEXT X 540 IF O<=100 AND O>-100 THEN FOR X=63493! TO 63493!+CINT( (ABS(A(1))*11)/8):POKE X,42:NEXT X 545 I=0 550 FOR X=63493!+CINT(A(1)*11/8) TO 63493!+CINT(A(1)*11/8)+13 560 IF O<=100 AND O>0 THEN I=I+1 :POKE X+129*I,42:NEXT X 570 IF O<0 AND O>-100 THEN I=I+1:POKE X-127*I,42:NEXT 10 PRINT CHR$(27)+CHR$(46)+CHR$(48) 20 GOTO 3000 30 REM * ASCII CONVERSIONS, By Ronleigh Dale, Box 70252, Reno Nevada 89570 40 REM * 702/825-6060, v1.1, 4/15/86 50 PRINT CHR$(26) 70 FOR Z=1 TO 1000:NEXT Z 80 PRINT"ASCII CHARACTER/DECIMAL CONVERSION 90 PRINT 100 PRINT"SELECT: (C) = CHARACTER TO DECIMAL" 110 PRINT" (D) = DECIMAL TO CHARACTER" 120 PRINT" (X) = E X I T 130 PRINT 140 C$=INKEY$ 150 IF C$="D" THEN 190 160 IF C$="C" THEN 240 170 IF C$="X" THEN 300 180 GOTO 140 190 INPUT"DECIMAL VALUE ";A 200 PRINT 210 PRINT"ASCII CHARACTER: "CHR$(A) 220 GOSUB 320 230 PRINT CHR$(26):GOTO 70 240 INPUT"ASCII CHARACTER ";CH$ 250 PRINT 260 PRINT"DECIMAL VALUE: "ASC(CH$) 270 GOSUB 320 280 PRINT CHR$(26):GOTO 70 300 PRINT CHR$(26) 310 GOTO 3000 320 LINE INPUT Z$ 330 RETURN 340 REM * EASTER DATE by: Ronleigh Dale, v1.2, 7/25/86 350 PRINT CHR$(26):FOR Z=1 TO 500:NEXT Z 360 PRINT"EASTER SUNDAY YEAR/DATE CONVERSION":PRINT:PRINT:PRINT 370 PRINT"THIS PROGRAM WHEN GIVEN A YEAR, WILL FIND" 380 PRINT"THE DATE FOR EASTER SUNDAY 390 PRINT:PRINT"INPUT THE YEAR"; 400 INPUT J:FOR Z=1 TO 1000:NEXT Z:PRINT CHR$(26) 410 IF J>99 THEN 430 420 J=J+1900 430 PRINT 440 LET A=J-INT(J/19)*19 450 LET B=J-INT(J/4)*4 460 LET C=J-INT(J/7)*7 470 LET T=19*A+24 480 LET D=T-INT(T/30)*30 490 LET T=2*B+4*C+6*D+5 500 LET E=T-INT(T/7)*7 510 LET F=D+E-9 520 IF F<0 THEN 550 530 IF F>0 THEN 580 540 GOTO 440 550 LET F=F+31 560 PRINT"EASTER FALLS ON MARCH"F""J 570 GOTO 670 580 IF F=26 THEN 630 590 IF F<>25 THEN 610 600 IF D=28 THEN 650 610 PRINT"EASTER FALLS ON APRIL"F""J 620 GOTO 670 630 PRINT"EASTER FALLS ON APRIL 19 "J 640 GOTO 670 650 PRINT"EASTER FALLS ON APRIL 18 "J 660 GOTO 670 670 PRINT:PRINT 680 INPUT "CHECK ANOTHER YEAR";A$:PRINT CHR$(26):FOR Z=1 TO 500:NEXT Z 690 IF LEFT$(A$,1)<>"Y" THEN 710 700 PRINT CHR$(26):GOTO 340 710 GOTO 3000 720 PRINT CHR$(27)+CHR$(46)+CHR$(50) 730 REM * MAILING LABEL DISPLAY/PRINT 740 REM * Revised for TeleVideo TPC-I/Osborne Executive by Ronleigh Dale, 750 REM * Box 70252, Reno Nevada 89570, 702/825-6060, v1.3, 7/25/86 760 REM CHR$(26) ***** CLEARS SCREEN ***** 770 REM 780 PRINT CHR$(26):FOR Z=1 TO 500:NEXT Z 790 PRINT"MAILING LABEL DISPLAY/PRINT 800 PRINT:PRINT:PRINT 810 LINE INPUT"ENTER DATA FOR LINE #1 ";A$ 820 IF LEN(A$)>30 THEN PRINT"LINE TOO LONG":GOTO 810 830 LINE INPUT"ENTER DATA FOR LINE #2 ";B$ 840 IF LEN(B$)>30 THEN PRINT"LINE TOO LONG":GOTO 830 850 LINE INPUT"ENTER DATA FOR LINE #3 ";C$ 860 IF LEN(C$)>30 THEN PRINT "LINE TOO LONG":GOTO 850 870 LINE INPUT"ENTER DATA FOR LINE #4 ";D$ 880 IF LEN(D$)>30 THEN PRINT "LINE TOO LONG":GOTO 870 890 PRINT:PRINT 900 INPUT "(P)RINTED-(V)IDEO OUTPUT";Z$ 910 IF Z$="P" OR Z$="V" THEN GOTO 920 ELSE GOTO 900 920 INPUT "CENTERED LINES (Y/N) ";X$ 930 IF X$="Y" OR X$="N" THEN GOTO 940 ELSE GOTO 920 940 IF X$="Y" AND Z$="P" THEN GOTO 980:REM CENTERED AND PRINTED 950 IF X$="N" AND Z$="P" THEN GOTO 1090:REM FLUSH LEFT AND PRINTED 960 IF X$="N" AND Z$="V" THEN GOTO 1200:REM FLUSH LEFT AND VIDEO 970 IF X$="Y" AND Z$="V" THEN GOTO 1320: REM CENTERED AND VIDEO 980 REM ***** CENTERED PRINTED LABELS ***** 990 INPUT "HOW MANY LABELS ";N 1000 FOR Q=1 TO N 1010 LPRINT SPC((26-LEN(A$))/2);A$ 1020 LPRINT SPC((26-LEN(B$))/2);B$ 1030 LPRINT SPC((26-LEN(C$))/2);C$ 1040 LPRINT SPC((26-LEN(D$))/2);D$ 1050 LPRINT:LPRINT 1060 NEXT Q 1070 GOTO 1190 1080 REM 1090 REM ***** FLUSH LEFT PRINTED LABELS ***** 1100 REM 1110 INPUT "HOW MANY LABELS ";N 1120 FOR Q=1 TO N 1130 LPRINT;A$ 1140 LPRINT;B$ 1150 LPRINT;C$ 1160 LPRINT;D$ 1170 LPRINT:LPRINT 1180 NEXT Q 1190 GOTO 1430 1200 REM ***** FLUSH LEFT VIDEO DISPLAY OF A LABEL ***** 1210 PRINT:PRINT 1220 FOR Z=1 TO 1000:NEXT Z 1230 PRINT A$ 1240 PRINT B$ 1250 PRINT C$ 1260 PRINT D$ 1270 PRINT:PRINT 1280 INPUT"(P)RINT-(N)EW LABEL ";F$ 1290 IF F$="N" THEN GOTO 780 1300 IF F$="P" THEN GOTO 1090 1310 IF F$<>"N" OR F$<>"P" THEN 1430 1320 REM ***** SHOW CENTERED LABEL ON VIDEO ***** 13 30 PRINT:PRINT 1340 FOR Z=1 TO 1000:NEXT Z 1350 PRINT SPC((26-LEN(A$))/2);A$ 1360 PRINT SPC((26-LEN(B$))/2);B$ 1370 PRINT SPC((26-LEN(C$))/2);C$ 1380 PRINT SPC((26-LEN(D$))/2);D$ 1390 PRINT:PRINT 1400 INPUT"(P)RINT-(N)EW LABEL ";G$ 1410 IF G$="P" THEN 990 1420 IF G$="N" THEN 780 1430 PRINT CHR$(27)+CHR$(46)+CHR$(50):PRINT CHR$(26) 1440 GOTO 3000 1450 REM * METRIC CONVERSIONS, By Ronleigh Dale, v1.1, 4/15/86 1460 PRINT CHR$(26) 1470 FOR Z=1 TO 500:NEXT Z 1480 REM ********** METRIC CONVERSION PROGRAM 1490 REM ********** DISPLAY THE MENU 1500 PRINT "METRIC CONVERSIONS 1510 PRINT:PRINT:PRINT:PRINT 1520 PRINT"MENU 1530 PRINT 1540 PRINT " 1. MILES TO KILOMETERS 1550 PRINT " 2. POUNDS TO KILOGRAMS" 1560 PRINT " 3. GALLONS TO LITERS" 1570 PRINT " 4. FAHRENHEIT TO CELCIUS" 1580 PRINT " 5. KILOMETERS TO MILES" 1590 PRINT " 6. KILOGRAMS TO POUNDS" 1600 PRINT " 7. LITERS TO GALLONS" 1610 PRINT " 8. CELCIUS TO FAHRENHEIT" 1620 PRINT " 0. EXIT 1630 PRINT :PRINT :PRINT 1640 REM ********** GET THE SELECTION 1650 INPUT "YOUR SELECTION";S 1660 PRINT :PRINT :PRINT 1670 REM ********** DECIDE WHERE TO BRANCH 1680 IF S=1 THEN 1780 1690 IF S=2 THEN 1860 1700 IF S=3 THEN 1940 1710 IF S=4 THEN 2020 1720 IF S=5 THEN 2100 1730 IF S=6 THEN 2180 1740 IF S=7 THEN 2260 1750 IF S=8 THEN 2340 1760 IF S=0 THEN 2430 1770 END 1780 REM ********** CONVERT MILES TO KILOMETERS 1790 PRINT:PRINT 1800 INPUT "DISTANCE IN MILES";M 1810 PRINT :PRINT 1820 GOSUB 2420 1830 LET K=1.609*M 1840 PRINT M;" MILES IS EQUAL TO ";K;" KILOMETERS 1850 GOTO 1480 1860 REM ********** CONVERT POUNDS TO KILOGRAMS 1870 PRINT:PRINT 1880 INPUT "WEIGHT IN POUNDS";P 1890 PRINT :PRINT 1900 GOSUB 2420 1910 LET K=.4536*P 1920 PRINT P;" POUNDS IS EQUAL TO ";K;" KILOGRAMS" 1930 GOTO 1480 1940 REM ********** CONVERT GALLONS TO LITERS 1950 PRINT:PRINT 1960 INPUT "VOLUME IN GALLONS ";Q 1970 PRINT :PRINT 1980 GOSUB 2420 1990 LET L=3.7852*Q 2000 PRINT Q;" GALLONS IS EQUAL TO ";L;" LITERS" 2010 GOTO 1480 2020 REM ********** CONVERT FAHRENHEIT TO CELCIUS 2030 PRINT:PRINT 2040 INPUT "FAHRENHEIT TEMPERATURE";F 2050 PRINT :PRINT 2060 GOSUB 2420 2070 LET G=5/9*(F-32) 2080 PRINT F;" DEGREES FAHRENHEIT IS EQUAL TO ";G;" DEGREES CELCIUS" 2090 GOTO 1480 2100 REM ********** CONVERT KILOMETERS TO MILES 2110 PRINT:PRINT 2120 INPUT "DISTANCE IN KILOMETERS";U 2130 PRINT :PRINT 2140 GOSUB 2420 2150 LET V=.621*U 2160 PRINT U;" KILOMETERS IS EQUAL TO";V;" MILES 2170 GOTO 1480 2180 REM ********** CONVERT KILOGRAMS TO POUNDS 2190 PRINT:PRINT 2200 INPUT "WEIGHT IN KILOGRAMS";W 2210 PRINT :PRINT 2220 GOSUB 2420 2230 LET X=2.2046*W 2240 PRINT W;" KILOGRAMS IS EQUAL TO";X;" POUNDS 2250 GOTO 1480 2260 REM ********** CONVERT LITERS TO GALLONS 2270 PRINT:PRINT 2280 INPUT "VOLUME IN LITERS";Y 2290 PRINT :PRINT 2300 GOSUB 2420 2310 LET Z=.26417*Y 2320 PRINT Y;" LITERS IS EQUAL TO";Z;" GALLONS" 2330 GOTO 1480 2340 REM ********** CONVERT CELCIUS TO FAHRENHEIT 2350 PRINT:PRINT 2360 INPUT "CELCIUS TEMPERATURE";G 2370 PRINT :PRINT 2380 GOSUB 2420 2390 LET F=(G*9/5)+32 2400 PRINT G;" DEGREES CELCIUS IS EQUAL TO ";F;" DEGREES FAHRENHEIT" 2410 GOTO 1480 2420 FOR Z=1 TO 1000:NEXT Z:RETURN 2430 GOTO 3000 2440 REM * ZIPCODE/STATE CONVERSIONS 2450 REM * Subroutine driver added by Jim Woolley, 2460 REM * FOG Disk Librarian, 11/82 2470 REM * Revised for TeleVideo TPC-I/Osborne Executive by Ronleigh Dale, 2480 REM * v/1.1, 7/25/86 2490 DIM ZIPDATA$(54), STATEDATA$(54) 2500 PRINT CHR$(26):PRINT CHR$(27)+CHR$(46)+CHR$(48) 2510 RESTORE 2520 GOSUB 2610 2530 PRINT"ZIPCODE/STATE CONVERSIONS" 2540 PRINT:INPUT"ENTER ZIPCODE ",ZIP$ 2550 PRINT CHR$(26) 2560 GOSUB 2890 2570 FOR Z=1 TO 500:NEXT Z 2580 PRINT" ZIP = ";ZIP$:PRINT:PRINT"STATE = ";STATE$ 2590 GOTO 2970 2600 GOTO 2530 2610 REM * ZIPCODE.BAS This subroutine returns the STATE 2620 REM code when given a ZIP code - based 2630 REM on the first 3 digits of the zip 2640 : 2650 : 2660 REM * Zip code data 2670 : 2680 DATA 008, 009, 010, 028, 030, 039, 050, 060, 070, 090, 150, 197, 200, 206, 220, 247, 270, 290, 300, 320, 350, 370, 386, 400, 430, 460, 480, 500, 530, 550, 570, 580, 590, 600, 630, 660, 680, 700, 716, 730, 750, 800, 820, 832, 840, 850 2690 DATA 870, 890, 900, 967, 969, 970, 980, 995 2700 : 2710 REM * Read in zip code ranges 2720 : 2730 FOR I% = 1 TO 54 2740 READ ZIPDATA$(I%) 2750 NEXT I% 2760 : 2770 REM * State data 2780 : 2790 DATA PR, VI, PR, MA, RI, NH, MA, VT, CT, NJ, NY, PA, DE, DC, MD, VA, WV, NC, SC, GA, FL, AL, TN, MS, KY, OH, IN, MI, IA, WI, MN, SD, ND, MT, IL, MO, KS, NE, LA, AK, OK, TX, CO, WY, ID, UT 2800 DATA AZ, NM, NV, CA, HI, GU, OR, WA 2810 : 2820 REM * Read in state data to array 2830 : 2840 FOR I% = 1 TO 54 2850 READ STATEDATA$(I%) 2860 NEXT I% 2870 RETURN 2880 : 2890 ZIP3$ = LEFT$(ZIP$,3) 2900 FOR I% = 1 TO 54 2910 IF ZIP3$ < ZIPDATA$(I%) GOTO 2940 2920 NEXT I% 2930 STATE$ = "AK" :GOTO 2960 2940 REM * Zip has been found 2950 STATE$ = STATEDATA$(I %) 2960 RETURN 2970 LINE INPUT Z$:INPUT"FIND ANOTHER STATE FROM ZIPCODE";Z$ 2980 IF Z$="Y" THEN 2500 2990 GOTO 3000 3000 PRINT CHR$(26):FOR Z=1 TO 1000:NEXT Z:PRINT"USEFUL UTILITIES 3010 PRINT:PRINT:PRINT 3020 PRINT"MENU 3030 PRINT:PRINT 3040 PRINT" 1. ASCII/DECIMAL CHARACTERS CONVERSIONS 3050 PRINT" 2. EASTER SUNDAY YEAR/DATE CONVERSIONS 3060 PRINT" 3. MAILING LABELS DISPLAY/PRINT 3070 PRINT" 4. METRIC CONVERSIONS 3080 PRINT" 5. ZIPCODES/STATES CONVERSIONS 3090 PRINT" 0. EXIT 3100 PRINT:PRINT 3110 INPUT X 3120 IF X=0 THEN 3140 3130 ON X GOTO 30,340,720,1450,2440 3140 PRINT CHR$(27)+CHR$(46)+CHR$(50):PRINT CHR$(26):END INPUT X 3120 IF X=0 THEN 3140 3130 ON X GOTO 30,340,720,1450,2440 3140 PRINT CHR$(27)+CHR$(46)+CHR$(50):PRINT CHR$(26 2850 READ STATEDATA$(I%) 2860 NEXT I% 2870 RETURN 2880 : 2890 ZIP3$ = LEFT$(ZIP$,3) 2900 FOR I% = 1 TO 54 2910 IF ZIP3$ < ZIPDATA$(I%) GOTO 2940 2920 NEXT I% 2930 STATE$ = "AK" :GOTO 2960 2940 REM * Zip has been found 2950 STATE$ = STATEDATA$(I10 PRINT "DAYS BETWEEN TWO DATES" 20 PRINT 29 REM - STATEMENTS 30 TO 60 REQUEST USER INPUT 30 PRINT "FIRST DATE MM,DD,YY"; 40 INPUT M1,D1,Y1 50 PRINT "SECOND DATE MM,DD,YY"; 60 INPUT M2,D2,Y2 70 M=M1 80 D=D1 90 Y=Y1 100 GOSUB 230 109 REM - SAVE COMPUTED NUMBER OF DAYS IN N 110 N=A 120 M=M2 130 D=D2 140 Y=Y2 150 GOSUB 230 159 REM - CALCULATE DIFFERENCE AND PRINT 160 N=A-N 170 PRINT "DIFFERENCE =";N;" DAYS" 180 PRINT 190 PRINT "MORE DATA (1=YES 0=NO)" 200 INPUT X 210 IF X=1 THEN GOTO 20 219 REM - END OF PROGRAM 220 GOTO 460 227 REM - SUBROUTINE 228 REM - START WITH TEST FOR UNREAL DATE 229 REM - GOTO CORRECT TEST DEPENDING ON DAYS IN THE MONTH 230 ON M GOTO 260,280,260,340,260,340,260,260,340,260,340,260 239 REM - IF THIS MESSAGE IS PRINTED THE ANSWER IS PROB INCORRECT 240 PRINT "UNREAL DATE" 250 RETURN 260 IF D>31 THEN GOTO 240 270 GOTO 350 279 REM MONTH IS FEB A LEAP YEAR? 280 IF Y/4<>INT(Y/4) THEN GOTO 310 290 IF Y/400=INT(Y/400) THEN GOTO 320 300 IF Y/100<>INT(Y/100) THEN GOTO 320 310 IF D>28 THEN GOTO 240 320 IF D>29 THEN GOTO 240 330 GOTO 350 339 REM MONTH HAS 30 DAYS 340 IF D>30 THEN GOTO 240 349 REM - TABLE OF NUMBER OF DAYS FROM 1ST OF YEAR TO 1ST OF EACH MONTH 350 DATA 0,31,59,90,120,151,181,212,243,273,304,334 360 RESTORE 365 FOR H=1 TO M 370 READ A 375 NEXT H 379 REM - COMPUTE NUMBER OF DAYS FROM 0,0,0 TO M,D,Y 380 A=A+Y*365+INT(Y/4)+D+1-INT(YEAR/100)+INT(Y/400) 390 IF INT(Y/4)<>Y/4 THEN GOTO 450 410 IF Y/400=INT(Y/400) THEN GOTO 430 420 IF Y/100=INT(Y/100) THEN GOTO 450 430 IF M>2 THEN GOTO 450 440 A=A-1 450 RETURN 460 END 400=INT(Y/400) THEN GOTO 430 420 IF Y/10ECT TEST DEPENDING ON DAYS IN THE MONTH 230 ON M GOTO 260,280,260,340,260,340,260,260,340,260,340,260 239 REM - IF THIS MESSAGE IS PRINTED THE ANSWER IS PROB INCORRECT 240 PRINT "UNREAL DATE" 250 RETURN 260 IF D>31 THEN GOTO 240 270 GOTO 350 279 REM MONTH IS FEB A LEAP YEAR? 280 IF Y/4<>INT(Y/4) THEN GOTO 310 290 IF Y/400=INT(Y/400) THEN GOTO 320 300 IF Y/100<>INT(Y/100) 10 REM * FINANCIAL INFORMATION by Ronleigh Dale, Box 70252, Reno Nevada 89570, 20 REM * 702/825-6060, v1.3, 8/5/86 30 PRINT CHR$(27)+CHR$(46)+CHR$(48) 40 L1=13 50 DEF FNR(X)=INT(X*100+.5)/100 60 CL$=CHR$(26):REM * CLEAR SCREEN 70 PRINT CL$:FOR Z=1 TO 1000:NEXT Z 80 PRINT"FINANCIAL INFORMATION 90 PRINT:PRINT 100 PRINT:PRINT"MENU 110 PRINT 120 PRINT " 1. FUTURE VALUE OF AN INVESTMENT" 130 PRINT " 2. FUTURE VALUE OF REGULAR DEPOSITS" 140 PRINT " 3. REGULAR DEPOSITS TO AN INVESTMENT 150 PRINT " 4. REGULAR WITHDRAWALS FROM AN INVESTMENT" 160 PRINT " 5. INITIAL INVESTMENT REQUIRED FOR FUTURE VALUE 170 PRINT " 6. MINIMUM INVESTMENT FOR WITHDRAWALS" 180 PRINT " 7. NOMINAL INTEREST RATE ON INVESTMENTS" 190 PRINT " 8. EFFECTIVE INTEREST RATE ON INVESTMENTS" 200 PRINT " 9. EARNED INTEREST SCHEDULE 210 PRINT "10. LOAN AMORTIZATION SCHEDULE 220 PRINT "11. ADD-ON LOAN PAYOFF REBATE/AMOUNT 230 PRINT "12. CHECKBOOK BALANCE 240 PRINT "13. EXIT 250 PRINT 260 INPUT X 270 PRINT CL$ 280 IF X=10 THEN 2760 290 IF X=11 THEN 3570 300 IF X=12 THEN 3910 310 IF X=13 THEN 4170 320 ON X GOSUB 350,460,580,720,830,950,1070,1180,1310 330 GOTO 10 340 REM * PROGRAM #1 BEGINS HERE 350 PRINT "FUTURE VALUE OF AN INVESTMENT" 360 PRINT:INPUT "INITIAL INVESTMENT ";P:IF P=0 THEN 70 370 GOSUB 1290 380 GOSUB 1300 390 GOSUB 1270 400 I=I/N/100 410 T=P*(I+1)^(N*Y) 420 GOSUB 1260 430 GOSUB 2750 440 GOTO 10 450 REM * PROGRAM #2 BEGINS HERE 460 PRINT "FUTURE VALUE OF REGULAR DEPOSITS 470 PRINT 480 INPUT "AMOUNT OF REGULAR DEPOSITS ";R 490 IF R=0 THEN 70 500 GOSUB 1290 510 INPUT "NUMBER OF DEPOSITS PER YEAR ";N 520 GOSUB 1270 530 I=I/N/100 540 T=R*((I+1)^(N*Y)-1)/I 550 GOSUB 1260 560 GOSUB 2750:GOTO 70 570 REM * PROGRAM #3 BEGINS HERE 580 PRINT "REGULAR DEPOSITS TO AN INVESTMENT 590 PRINT 600 INPUT "TOTAL VALUE AFTER ? YEARS ";T 610 IF T=0 THEN 70 620 GOSUB 1290 640 INPUT "NUMBER OF DEPOSITS PER YEAR ";N 650 GOSUB 1270 660 I=I /N/100 670 R=T*I/((I+1)^(N*Y)-1) 680 PRINT:PRINT"DEPOSIT AMOUNT = "TAB(41)"$";R 700 GOSUB 2750:GOTO 10 710 REM * PROGRAM #4 BEGINS HERE 720 PRINT "REGULAR WITHDRAWALS FROM AN INVESTMENT" 730 PRINT:INPUT"INITIAL INVESTMENT ";P 740 IF P=0 THEN 70 750 GOSUB 1290 760 INPUT "NUMBER OF WITHDRAWALS PER YEAR ";N 770 GOSUB 1270 780 I=I/N/100 790 R=P*(I/((I+1)^(N*Y)-1)+I) 800 PRINT:PRINT "AMOUNT OF EACH WITHDRAWAL = "TAB(41)"$";INT(R*100+.5)/100 810 GOSUB 2750:GOTO 10 820 REM * PROGRAM #5 BEGINS HERE 830 PRINT "INITIAL INVESTMENT" 840 PRINT 850 INPUT "TOTAL VALUE AFTER ? YEARS ";T 860 IF T=0 THEN 70 870 GOSUB 1300 880 GOSUB 1270 890 GOSUB 1290 900 I=I/N/100 910 P=T/(I+1)^(N*Y) 920 PRINT:PRINT "INITIAL INVESTMENT = "TAB(41)"$";INT(P*100+.5)/100 930 GOSUB 2750:GOTO 70 940 REM * PROGRAM #6 BEGINS HERE 950 PRINT "MINIMUM INVESTMENT FOR WITHDRAWALS" 960 PRINT 970 INPUT "AMOUNT OF WITHDRAWALS ";R 980 IF R=0 THEN 70 990 GOSUB 1290 1000 INPUT "NUMBER OF WITHDRAWALS PER YEAR ";N 1010 GOSUB 1270 1020 I=I/100 1030 P=R*N/I*(1-1/((1+I/N)^(N*Y))) 1040 PRINT:PRINT "MINIMUM INVESTMENT = "TAB(41)"$";INT(100*P+.5)/100 1050 GOSUB 2750:GOTO 10 1060 REM * PROGRAM #7 BEGINS HERE 1070 PRINT "NOMINAL INTEREST RATE ON INVESTMENTS" 1080 PRINT 1090 INPUT "PRINCIPAL AMOUNT ";P 1100 IF P=0 THEN 70 1110 INPUT "FINAL VALUE ";T 1120 GOSUB 1270 1130 GOSUB 1300 1140 I2=N*((T/P)^(1/(N*Y))-1)*100 1150 PRINT:PRINT "NOMINAL INTEREST RATE = "TAB(42);I2;"%" 1160 GOSUB 2750:GOTO 10 1170 REM * PROGRAM #8 BEGINS HERE 1180 PRINT "EFFECTIVE INTEREST RATE ON INVESTMENTS" 1190 PRINT 1200 INPUT "INITIAL INVESTMENT ";P 1210 IF P=0 THEN 70 1220 INPUT "TOTAL VALUE AFTER ? YEARS ";T 1230 GOSUB 1270 1240 PRINT:PRINT "ANNUAL INTEREST RATE = "TAB(42);((T/P)^(1/Y)-1)*100;"%" 1250 GOSUB 2750:GOTO 10 1260 PRINT:PRINT "FUTURE VALUE = "TAB(41)"$";INT(T*100+.5)/100:RETURN 1270 INPUT "NUMBER OF YEARS/MONTHS ";Y0,M 1280 Y=(12*Y0+M)/12:RETURN 1290 INPUT "NOMINAL INTEREST RATE ";I:RETURN 1300 INPUT "NUMBER OF COMPOUNDING PERIODS PER YEAR ";N:RETURN 1310 REM * PROGRAM #9 BEGINS HERE 1320 PRINT "EARNED INTEREST SCHEDULE 1330 PRINT:INPUT"PRINTED REPORT (Y/N)";Z$:IF Z$="Y" THEN 2060 1340 PRINT:INPUT "PRINCIPAL AMOUNT ";P 1350 GOSUB 1290 1360 I=I/100 1370 INPUT "NUMBER OF DEPOSITS/WITHDRAWALS PER YEAR ";N1 1380 IF N1=0 THEN 1430 1390 INPUT "AMOUNT OF DEPOSIT/WITHDRAWAL ";R 1400 N=360 1410 L2=N1 1420 GOTO 1460 1430 GOSUB 1300 1440 N1=0 1450 L2=4 1460 INPUT "START WITH WHAT YEAR ";X 1470 INPUT "END WITH WHAT YEAR ";Y 1472 PRINT:INPUT"ENTRY CORRECT (Y/N)";Z$:IF Z$="N" THEN PRINT CHR$(26):GOTO 1340 1480 X=INT(X) 1490 B0=P:I1=0:I2=0:I3=0:K=66:P1=4 1500 FOR J0=1 TO INT(Y)+1 1510 IF J0N1 THEN 1770 1740 IF N2/N1>J1/N THEN 1770 1750 B0=B0+R 1760 N2=N2+1 1770 B2=B0*(1+I/N) 1780 I1=B2-B0 1790 I3=I3+I1 1800 I2=I2+I1 1810 IF P2/P1>J1/N THEN 1850 1820 I2=FNR(I2) 1830 B2=FNR(B2) 1840 P2=P2+1 1850 IF J0=Y THEN 2000 1950 NEXT J1 1960 IF J0N1 THEN 2500 2470 IF N2/N1>J1/N THEN 2500 2480 B0=B0+R 2490 N2=N2+1 2500 B2=B0*(1+I/N) 2510 I1=B2-B0 2520 I3=I3+I1 2530 I2=I2+I1 2540 IF P2/P1>J1/N THEN 2580 2550 I2=FNR(I2) 2560 B2=FNR(B2) 2570 P2=P2+1 2580 IF J0=Y THEN 2730 2680 NEXT J1 2690 IF J0N OR K<=0 THEN 3690 3710 IF P<=0 THEN 3710 3720 I=((2*(N-K+1))/(N*(N+1)))*P 3730 RB=((N-K)*I)/2 3740 BL=((N-K)*PM)-RB 3750 II=INT(I*100+.5)/100 3760 R=INT(RB*100+.5)/100 3770 B=INT(BL*100+.5)/100 3780 PRINT 3790 PRINT"ORIGINAL PAYMENT TOTAL $";T 3800 PRINT"ORIGINAL MONTHLY PAYMENT $";PM 3810 A=PM*K 3820 PRINT"TOTAL PAID TO DATE $";A 3830 PRINT 3840 PRINT"REBATE AMOUNT $";R 3850 PRINT"PAYOFF AMOUNT $";B 3870 PRINT 3880 INPUT"PREPARE ANOTHER SCHEDULE";Z$:IF Z$="Y" THEN 3570 3890 GOTO 10 3900 REM * PROGRAM #12 BEGINS HERE 3910 PRINT CHR$(26) 3920 PRINT "CHECKBOOK BALANCE" 3930 DIM CN(100),CA(100),D(100) 3940 PRINT :PRINT 3950 INPUT"STATEMENT BALANCE $ ",BB 3960 N=N+1 3970 PRINT 3980 CN(N)=VAL (CN$) 3990 INPUT"CHECK AMOUNT $ ",CA(N) 4000 CT=CT+CA(N) 4010 IF CA(N)=0 THEN 4020 ELSE 3990 4020 PRINT TAB(70)"$";CT 4030 L=L+1 4040 INPUT"DEPOSIT AMOUNT $ ",DA$ 4050 IF DA$="" THEN 4090 4060 D(L)=VAL (DA$) 4070 DT=DT+D(L) 4080 GOTO 4030 4090 PRINT TAB(70)"$";DT 4100 NB=BB-CT+DT 4110 PRINT"CURRENT BALANCE $";NB 4120 CLEAR 4130 PRINT CHR$(27)+CHR$(46)+CHR$(50) 4150 PRINT:INPUT"BALANCE ANOTHER CHECKBOOK";Z$:IF Z$="Y" THEN 3910 4160 GOTO 10 4170 PRINT CHR$(27)+CHR$(46)+CHR$(50):END  4150 PRINT:INPUT"BALANCE ANOTHER CHECKBOOK";Z$:IF30 PRINT 3840 PRINT"REBATE AMOUNT $";R 3850 PRINT"PAYOFF AMOUNT $";B 3870 PRINT 3880 INPUT"PREPARE ANOTHER SCHEDULE";Z$:IF Z$="Y" THEN 3570 3890 GOTO 10 3900 REM * PROGRAM #12 BEGINS HERE 3910 PRINT CHR$(26) 3920 PRINT "CHECKBOOK BALANCE" 3930 DIM CN(100),CA(100),D(100) 3940 PRINT :PRINT 3950 INPUT"STATEMENT BALANCE $ ",BB 3960 100 ' PROGRAM THINKER.BAS BY JAMES PHILON 04/85 110 ' CODE IS IN MICROSOFT BASIC, CAN EASILY BE 120 ' ADAPTED TO OTHER DIALECTS AND LANGUAGES. 130 ' 140 ' ***DIMENSION THE ARRAYS*** 150 U% = 64 160 DIM X$(U%),Y$(U%),YA$(U%) 170 DIM Z%(12) 180 ' 190 ' ***INITIALIZE THE WORD ARRAYS*** 200 FOR X%=1 TO U%:READ X$(X%):NEXT X% 210 FOR X%=1 TO U%:READ Y$(X%):NEXT X% 220 FOR X%=1 TO U%:READ YA$(X%):NEXT X% 230 FD$="":IF A2%=1 THEN 1230 240 ' 250 ' ***OFFER GETTING STARTED HELP*** 260 INPUT " DO YOU WANT HELP (Y/N) ";W$ 270 IF W$="" THEN W$="N" 280 IF ASC(LEFT$(W$,1))<91 THEN 300 ELSE PRINT " CAPS ONLY,PLEASE" 290 GOTO 260 300 IF LEFT$(W$,1)<>"Y" THEN 1220 310 PRINT CHR$(26) 320 PRINT "HERE IS THE THINKER PROCESS:":PRINT 330 PRINT "1-IT ACCEPTS A VERB, A GENERAL NOUN, ANOTHER" 340 PRINT "VERB AND AN OBJECTIVE NOUN." 350 PRINT "2-IT TAKES THESE WORDS AND RETURNS 3 ABSTRACTLY" 360 PRINT "RELATED (TO INPUT) VERBAL EXPRESSIONS." 370 PRINT "3-YOU THEN MAY DISCOVER THINGS BY INTERPRETING" 380 PRINT "THIS OUTPUT. YOU SUPPLY A FEW HELPING WORDS SUCH" 390 PRINT "AS 'FOR', 'WITH', 'BY', 'TO' AND 'ABOUT' AFTER THE" 400 PRINT "VERBS ENDING WITH HYPHENS AND AFTER OTHER VERBS" 410 PRINT "WHEN DESIRED. YOU RELATE THE CONCEPTS TO WHAT" 420 PRINT "YOU HAD IN MIND WHEN MAKING YOUR INPUT." 430 PRINT "INTERPRETING THE OUTPUT LINE BY LINE SHOULD BE" 440 PRINT "EASIER IF YOU PUT SOME THOUGHT INTO DETERMINING" 450 PRINT "THE WORDING OF YOUR INPUT. SIMILAR THINKING ON" 460 PRINT "YOUR PART APPLIED TO INTERPRETING THE OUTPUT" 470 PRINT "IN A BACKWARDS DIRECTION MAY THEN PROVE EFFECTIVE." 480 PRINT "WITH PRACTICE AND FAMILIARITY 'THINKER' CAN BE" 490 PRINT "A POWERFUL TOOL FOR SOLVING PROBLEMS." 500 PRINT 510 INPUT " MORE..(PRESS RETURN)";W$ 520 PRINT CHR$(26) 530 PRINT:PRINT 540 PRINT "4-ONCE YOU ARE PRACTICED WITH THINKER AS IT IS," 550 PRINT "YOU MAY CHANGE THE WORD LISTS TO GET VOCABULARY" 560 PRINT "THAT IS LESS GENERAL AND MORE ORIENTED TO CERTAIN" 570 PRINT "KINDS OF PROBLEMS. WHEN YOU DEVELOP A WORD GROUP" 580 PRINT "THAT WORKS, YOU CAN SAVE IT FOR LATER USE. TWO" 590 PRINT "EXAMPLES, ONE BUSINESS AND ONE SCIENTIFIC, ARE" 600 PRINT "INCLUDED ON THIS DISK.." 610 PRINT "(I HAVE CONSTRUCTED OTHER WORD SETS FOR A VARIETY" 620 PRINT "OF APPLICATIONS. I HAVE ALSO DEVELOPED METHODS" 630 PRINT "FOR MODELLING LEVELS OF INTELLIGENCE, BIASED" 640 PRINT "MENTALITY, PLAUSIBLE LIE OR DISTORTION, PSYCHOLO-" 650 PRINT "GICAL DISORDER AND MENTAL ILLNESS WITHIN THE SCOPE" 660 PRINT "OF CONCEPT PROCESSING. IF INTERESTED, YOU MAY" 670 PRINT "REACH ME THRU F.O.G. - OR, SEE END OF LISTING.)" 680 PRINT 690 INPUT " MORE..(PRESS RETURN) ";W$ 700 PRINT CHR$(26):PRINT:PRINT 710 PRINT "YOU MAY LOOK AT THE WORD LISTS FROM WHICH TO" 720 PRINT "FORMULATE YOUR INPUT BY LISTING THE DATA " 730 PRINT "STATEMENTS AT THE END OF THIS PROGRAM. IF YOU" 740 PRINT "HAVE A PRINTER, THEN ANSWER THE NEXT QUESTION 'YES'." 750 PRINT 760 PRINT "INTERPRETING THE WORDS CAN BE DIFFICULT, SO" 770 PRINT "DON'T WORRY IF IT TAKES YOU A WHILE TO CATCH" 780 PRINT "ON. ALSO, SOMETIMES THE OUTPUTS WILL MAKE GOOD" 790 PRINT "SENSE TO YOU (WHO FORMULATED THE INPUT), BUT MAKE" 800 PRINT "ALMOST NO SENSE TO OTHERS IN THEIR RAW FORM." 810 PRINT 820 PRINT "IT HELPS TO KEEP IN MIND:" 830 PRINT "EACH OUTPUT IS A KIND OF ORACLE, VALUABLE IF" 840 PRINT "A PERSON IS OPENED MINDED ENOUGH TO APPRECIATE" 850 PRINT "IT, BUT OF NO REAL VALUE TO SOMEONE WHO EXPECTS" 860 PRINT "A MESSAGE TO EXPLICITLY STATE SOMETHING IN TERMS" 870 PRINT "THAT MUST BE COMMONLY USED AND IN THEIR COMMONEST" 880 PRINT "FASHION IF THAT MESSAGE IS TO MEAN ANYTHING WORTH" 890 PRINT "EVEN TRYING TO UNDERSTAND. SOME IMAGINATION IS" 900 PRINT "REQUIRED -- NOT PURE IMAGINATION, HOWEVER." 910 PRINT 920 ' 930 ' ***PRINT THE WORD SET*** 940 INPUT " DO YOU WANT TO PRINT THE WORDS (Y/N) ";W$ 950 IF LEFT$(W$,1)<>"Y" THEN 1230 960 PRINT " PRESS RETURN WHEN PRINTER IS READY" 970 INPUT " OR TYPE ANY KEY + RETURN TO ABORT: ";W$ 980 IF W$<>"" THEN 940  990 ST$=STRING$(80,"-") 1000 IF FD$="" THEN LPRINT " GENERAL VOCABULARY" ELSE LPRINT FD$ 1010 IF FD$="" THEN LPRINT 1020 IF FD$="" THEN LPRINT " USE 'FOR', 'WITH', 'BY', 'AS', 'ABOUT' OR" 1030 IF FD$="" THEN LPRINT " OTHER HELPING WORD(S) AFTER 'VERB' + '-'." 1040 IF FD$="" THEN LPRINT " USE THESE HELPERS SPARINGLY AFTER OTHER VERBS." 1050 LPRINT:LPRINT " THE VERBS:" 1060 FOR X=1 TO 64 1070 IF X/4=INT(X/4) THEN GOSUB 1090 ELSE LPRINT X;X$(X);" "; 1080 NEXT X:GOTO 1100 1090 LPRINT X;X$(X);" ";:LPRINT:RETURN 1100 LPRINT:LPRINT ST$:LPRINT:LPRINT "THE GENERAL NOUNS:" 1110 FOR X = 1 TO 64 1120 IF X/4=INT(X/4) THEN GOSUB 1140 ELSE LPRINT X;Y$(X);" "; 1130 NEXT X:GOTO 1150 1140 LPRINT X;Y$(X);" ";:LPRINT:RETURN 1150 LPRINT:LPRINT ST$:LPRINT:LPRINT "THE OBJECTIVE NOUNS:" 1160 FOR X = 1 TO 64 1170 IF X/4=INT(X/4) THEN GOSUB 1190 ELSE LPRINT X;YA$(X);" "; 1180 NEXT X:GOTO 1200 1190 LPRINT X;YA$(X);" ";:LPRINT:RETURN 1200 LPRINT:LPRINT 1210 ' 1220 ' ***OFFER AND DO VOCABULARY MODIFICATION*** 1230 INPUT " DO YOU WANT TO CHANGE THE WORDS (Y/N) ";W$ 1240 IF LEFT$(W$,1) <> "Y" THEN 1910 1250 PRINT CHR$(26) 1260 INPUT "SET VOCABULARY TO DEFAULT (Y/N)";W$ 1270 IF LEFT$(W$,1) <> "Y" THEN 1300 1280 FG$="" 1290 RESTORE:A2%=1:GOTO 190 1300 PRINT CHR$(26) 1310 INPUT "REPLACE OLD WORDS WITH NEW (Y/N) ";W$ 1320 IF LEFT$(W$,1) <> "Y" THEN 1630 1330 PRINT CHR$(26) 1340 PRINT " ENTER 1 TO QUIT":PRINT 1350 PRINT " PRESSING WITHOUT KEYING" 1360 PRINT " ANYTHING ADVANCES WITHOUT REPLACING" 1370 FOR X%=1 TO 64 1380 PRINT:PRINT:PRINT 1390 PRINT X$(X%) 1400 INPUT "ENTER REPLACEMENT";W1$ 1410 IF LEFT$(W1$,1) = "1" THEN 1450 1420 IF W1$ <> "" THEN X$(X%)=W1$ 1430 PRINT CHR$(26) 1440 NEXT X% 1450 FOR X%=1 TO 64 1460 PRINT:PRINT:PRINT 1470 PRINT Y$(X%) 1480 INPUT "ENTER REPLACEMENT";W1$ 1490 IF LEFT$(W1$,1) = "1" THEN 1530 1500 IF W1$ <> "" THEN Y$(X%)=W1$ 1510 PRINT CHR$(26) 1520 NEXT X% 1530 FOR X%=1 TO 64 1540 PRINT:PRINT:PRINT 1550 PRINT YA$(X%) 1560 INPUT "ENTER REPLACEMENT";W1$ 1570 IF LEFT$(W1$,1) = "1" THEN 1630 1580 IF W1$ <> "" THEN YA$(X%)=W1$ 1590 PRINT CHR$(26) 1600 ' 1610 ' ***FILE AND RETRIEVE WORD SETS*** 1620 NEXT X% 1630 PRINT CHR$(26) 1640 INPUT " FILE A NEW VOCABULARY (Y/N) ";W$ 1650 IF LEFT$(W$,1) <> "Y" THEN 1750 1660 INPUT "ENTER FILE NAME IN QUOTES: ";FL$ 1670 PRINT 1680 PRINT "ENTER A 1 LINE DESCRIPTION OF FILE'S USE" 1690 INPUT FD$ 1700 IF FD$="" THEN FD$="USING "+FL$ 1710 OPEN "O",1,FL$ 1720 PRINT #1,FD$;","; 1730 FOR X%=1 TO 64:PRINT #1, X$(X%);",";Y$(X%);",";YA$(X%);",";:NEXT X% 1740 CLOSE 1 1750 PRINT CHR$(26) 1760 INPUT " RETRIEVE A VOCABULARY FILE (Y/N) ";W$ 1770 IF LEFT$(W$,1) <> "Y" THEN 1910 1780 PRINT CHR$(26) 1790 INPUT " GIVE FILE DIRECTORY (Y/N)";W$ 1800 IF LEFT$(W$,1) <> "Y" THEN 1820 1810 PRINT:PRINT:FILES:PRINT 1820 INPUT "ENTER FILENAME IN QUOTES (OR CODE): ";FL$ 1830 IF FL$="BIZ" THEN FL$="BIZWORDS.DAT" 1840 IF FL$="SCI" THEN FL$="SCIWORDS.DAT" 1850 OPEN "I",1,FL$ 1860 INPUT #1,FD$ 1870 FOR X%=1 TO 64 1880 INPUT #1,X$(X%),Y$(X%),YA$(X%) 1890 NEXT X% 1900 CLOSE 1 1910 PRINT CHR$(26) 1920 ' 1930 ' ***ENTER MAIN PROCESSING*** 1940 INPUT " READY TO USE THINKER (Y/N) ";W$ 1950 IF LEFT$(W$,1) <> "Y" THEN 940 ELSE 1970 1960 ' ***GET THE INPUT INFORMATION*** 1970 GOTO 3040 1980 IF A2% <> 0 THEN 2030 1990 PRINT " TO GET BACK TO THINKER OPTIONS" 2000 PRINT " PRESS RETURN WITHOUT KEYING IN" 2010 PRINT " ANYTHING AT 'PERSPECTIVE NO.' ":PRINT:PRINT 2020 A2%=1 2030 INPUT "ENTER PERSPECTIVE NO. FROM 1 TO 64";F$ 2040 IF F$ = "" THEN 940 ELSE F%=VAL(F$) 2050 IF F%<1 OR F%>U% THEN 2030 2060 PRINT 2070 PRINT "VERB, GEN-NOUN, VERB, OBJ-NOUN TO TRY?" 2080 INPUT A$,B$,C$,D$ 2090 ' 2100 ' ***ALLOW THE FIRST FOUR LETTERS TO SERVE AS INPUT*** 2110 I%=0:J%=0:K%=0:L%=0 2120 FOR P%=1 TO U% 2130 IF LEFT$(A$,4)=LEFT$(X$(P%),4) THEN I%=P% 2140 IF LEFT$(B$,4)=LEFT$(Y$(P%),4) THEN J%=P% 2150 IF LEFT$(C$,4)=LEFT$(X$(P%),4) THEN K%=P% 2160 IF LEFT$(D$,4)=LEFT$(YA$(P%),4) THEN L%=P% 2170 NEXT P% 2180 IF I%=0 THEN PRINT A$;" NOT KNOWN" 2190 IF J%=0 THEN PRINT B$;" NOT KNOWN" 2200 IF K%=0 THEN PRINT C$;" NOT KNOWN" 2210 IF L%=0 THEN PRINT D$;" NOT KNOWN" 2220 IF I%=0 OR J%=0 OR K%=0 OR L%=0 THEN 2070 2230 PRINT CHR$(26) 2240 ' 2250 ' ***CALCULATE VALUES FOR REPLIES*** 2260 I1%=I%:J1%=J%:K1%=K%:L1%=L% 2270 IF J%<=I% THEN J%=J%+F% 2280 Q1%=J%-I% 2290 IF K%<=I% THEN K%=K%+F% 2300 R1%=K%-I% 2310 IF L%<=I% THEN L%=L%+F% 2320 S1%=L%-I% 2330 IF Q1%<=0 THEN Q1%=ABS(Q1%+F%) ELSE 2350 2340 IF Q1%=0 THEN Q1%=F% 2350 IF R1%<=0 THEN R1%=ABS(R1%+F%) ELSE 2370 2360 IF R1%=0 THEN R1%=F% 2370 IF S1%<=0 THEN S1%=ABS(S1%+F%) ELSE 2390 2380 IF S1%=0 THEN S1%=F% 2390 I%=I1%:J%=J1%:K%=K1%:L%=L1% 2400 IF I%<=J% THEN I%=I%+F% 2410 Q2%=I%-J% 2420 IF K%<=J% THEN K%=K%+F% 2430 R2%=K%-J% 2440 IF L%<=J% THEN L%=L%+F% 2450 S2%=L%-J% 2460 IF Q2%<=0 THEN Q2%=ABS(Q2%+F%) ELSE 2480 2470 IF Q2%=0 THEN Q2%=F% 2480 IF R2%<=0 THEN R2%=ABS(R2%+F%) ELSE 2500 2490 IF R2%=0 THEN R2%=F% 2500 IF S2%<=0 THEN S2%=ABS(S2%+F%) ELSE 2520 2510 IF S2%=0 THEN S2%=F% 2520 I%=I1%:J%=J1%:K%=K1%:L%=L1% 2530 IF I%<=K% THEN I%=I%+F% 2540 Q3%=I%-K% 2550 IF J%<=K% THEN J%=J%+F% 2560 R3%=J%-K% 2570 IF L%<=K% THEN L%=L%+F% 2580 S3%=L%-K% 2590 IF Q3%<=0 THEN Q3%=ABS(Q3%+F%) ELSE 2610 2600 IF Q3%=0 THEN Q3%=F% 2610 IF R3%<=0 THEN R3%=ABS(R3%+F%) ELSE 2630 2620 IF R3%=0 THEN R3%=F% 2630 IF S3%<=0 THEN S3%=ABS(S3%+F%) ELSE 2650 2640 IF S3%=0 THEN S3%=F% 2650 I%=I1%:J%=J1%:K%=K1%:L%=L1% 2660 IF I%<=L% THEN I%=I%+F% 2670 Q4%=I%-L% 2680 IF J%<=L% THEN J%=J%+F% 2690 R4%=J%-L% 2700 IF K%<=L% THEN K%=K%+F% 2710 S4%=K%-L% 2720 IF Q4%<=0 THEN Q4%=ABS(Q4%+F%) ELSE 2740 2730 IF Q4%=0 THEN Q4%=F% 2740 IF R4%<=0 THEN R4%=ABS(R4%+F%) ELSE 2760 2750 IF R4%=0 THEN R4%=F% 2760 IF S4%<=0 THEN S4%=ABS(S4%+F%) ELSE 2780 2770 IF S4%=0 THEN S4%=F% 2780 I%=I1%:J%=J1%:K%=K1%:L%=L1% 2790 A6%=0 2800 ' 2810 ' ***DISPLAY AND PRINT OUTPUT*** 2820 PRINT:IF FD$="" THEN PRINT " ( USING GENERAL VOCABULARY )" ELSE PRINT "< ";FD$;" >" 2830 PRINT:PRINT "USING PERSPECTIVE ";F%;" ";X$(F%) 2840 PRINT 2850 PRINT X$(I%);" ";Y$(J%);" AND ";X$(K%);" ";YA$(L%);" YIELDS:" 2860 PRINT 2870 PRINT X$(Q1%);" ";Y$(Q2%);" AND ";X$(Q3%);" ";YA$(S2%);"." 2880 PRINT X$(R4%);" ";Y$(R1%);" AND ";X$(S3%);" ";YA$(S4%);"." 2890 PRINT X$(S1%);" ";Y$(R2%);" AND ";X$(R3%);" ";YA$(Q4%);"." 2900 PRINT:PRINT 2910 INPUT "PRINT OUT (Y/N) ";W$ 2920 IF LEFT$(W$,1)<>"Y" THEN 3040 2930 LPRINT:IF FD$="" THEN LPRINT " ( USING GENERAL VOCABULARY )" ELSE LPRINT "< ";FD$;" >" 2940 LPRINT:LPRINT "USING PERSPECTIVE ";F%;" ";X$(F%) 2950 LPRINT 2960 LPRINT X$(I%);" ";Y$(J%);" AND ";X$(K%);" ";YA$(L%);" YIELDS:" 2970 LPRINT 2980 LPRINT X$(Q1%);" ";Y$(Q2%);" AND ";X$(Q3%);" ";YA$(S2%);"." 2990 LPRINT X$(R4%);" ";Y$(R1%);" AND ";X$(S3%);" ";YA$(S4%);"." 3000 LPRINT X$(S1%);" ";Y$(R2%);" AND ";X$(R3%);" ";YA$(Q4%);"." 3010 LPRINT:LPRINT 3020 ' 3030 ' ***CLEAR SCREEN/REPEAT PROCESS*** 3040 INPUT " CLEAR SCREEN (N/Y) ";W$ 3050 IF LEFT$(W$,1)="N" THEN 3090 3060 FOR X%=1 TO 24:FOR V%=1 TO 30 3070 NEXT V%:PRINT:NEXT X% 3080 PRINT CHR$(26) 3090 GOTO 1980 3100 ' 3110 ' ***THE WORD LIST DATA*** 3120 ' ( VERBS ) 3130 DATA AID,BRING,ACT-,ADAPT 3140 DATA ALTER,ASSIGN-,APPROACH,BEGIN 3150 DATA WAIT-,IMPROVE,USE,GET 3160 DATA WATCH,GIVE,WANT,GO- 3170 DATA DEAL-,SENSE,INVOLVE,MODIFY 3180 DATA DEVISE,SAY,INTRODUCE,MAKE 3190 DATA DESIGN,SOLVE,INFLUENCE,MANAGE 3200 DATA DO,SET-,INFORM-,MOVE 3210 DATA EXTEND,CONSIDER,KEEP,NOTICE 3220 DATA END,CHOOSE,CLEAR-,KNOW 3230 DATA FEEL,TEST,LEAVE,URGE 3240 DATA FIND,THINK,LEARN,SUGGEST 3250 DATA EVOLVE,REALIZE,ORGANIZE,RELATE- 3260 DATA WORK,SHOW,PLAY-,SHARE 3270 DATA HAVE,TAKE,SEE,TRY 3280 DATA DIRECT,QUESTION,CREATE,APPLY 3290 ' ( GENERAL NOUNS ) 3300 DATA HELP,CONCERN,ACTIVITY,ADAPTATION 3310 DATA CHANGE,ASSIGNMENT,STRATEGY,STARTING 3320 DATA PAUSE,GROWTH,USEFULNESS,ACHIEVEMENT 3330 DATA OBSERVATION,SOURCE,REQUIREMENT,PROGRESS 3340 DATA LOVE,PERCEPTION,INVOLVEMENT,MODIFICATION 3350 DATA INGENUITY,ASCERTION,INTRODUCTION,PRODUCTION 3360 DATA DETERMINATION,SOLUTION,MOTIVATION,MANAGEMENT 3370 DATA DEDICATION,SITUATION,INFORMATION,MOVEMENT 3380 DATA ENDEAVOR,CONSIDERATION,RECALL,SIGNIFICANCE 3390 DATA ENDING,DECISION,CLARIFICATION,KNOWLEDGE 3400 DATA ENJOYMENT,EVALUATION,DEPARTURE,ARGUMENT 3410 DATA DISCOVERY,THEORY,MENTALITY,SUGGESTION 3420 DATA EVOLUTION,REALIZATION,ORGANIZATION,RELATIONSHIP 3430 DATA OPERATION,DEMONSTRATION,ROLE,AGREEMENT 3440 DATA POTENTIAL,INPUT,PERSON,ATTEMPT 3450 DATA REGULATION,INQUIRY,CREATION,APPLICATION 3460 ' ( OBJECTIVE NOUNS ) 3470 DATA ADVANTAGE,SUPPLY,ACTIVE-PART,FUNCTION 3480 DATA ALTERNATIVE,THING,TACTIC,GOAL 3490 DATA DELAY,GAIN,TOOL,COLLECTION 3500 DATA OCCURENCE,NATURE,PROPERTY,EXCURSION 3510 DATA ARRANGEMENT,PRESENCE,SYSTEM,MECHANISM 3520 DATA DEVICE,EXPRESSION,COMPLEXITY,PRODUCT 3530 DATA STRUCTURE,PROBLEM,IMPETUS,RESOURCE 3540 DATA TASK,CIRCUMSTANCE,MESSAGE,OBJECT 3550 DATA EXTENSION,CONDITION,STORAGE,PECULIARITY 3560 DATA RESULT,POSSIBILITY,AREA,SIMILARITY 3570 DATA ORIENTATION,MEASUREMENT,POSITION,LIMITATION 3580 DATA LOCATION,METHOD,TECHNIQUE,CAPABILITY 3590 DATA KIND,BENEFIT,HUMAN-BEING,CHARACTERISTIC 3600 DATA FACILITY,APPEARANCE,GAME,COMMONALITY 3610 DATA RESPONSIVENESS,RECEIVER,SUBJECT,SENDER 3620 DATA PROCESS,CHANNEL,BELIEF,LOGIC 3630 ' 3640 ' THINKER.BAS IS COPYRIGHT 1985 BY 3650 ' JAMES J PHILON. ALL RIGHTS ARE RESERVED. 3660 ' THINKER.BAS IS AVAILABLE TO MEMBERS OF THE 3670 ' FIRST OSBORNE GROUP FOR PERSONAL USE, BUT NOT 3680 ' FOR RESALE OR INCLUSION IN OTHER PROGRAMS TO SELL, 3690 ' BY PERMISSION. TO DISCUSS OTHER POSSIBLE 3700 ' ARRANGEMENTS PLEASE CALL ME AT (317)-362-1923. 3710 ' 3720 END L, 3690 ' BY PERMISSION. TO DISCUSS OTHER POSSIBLE 3700 ' ARRANGEMENTS PLEASE CALL ME AT (317)-362-1923. 3710 ' TA DEVICE,EXPRESSION,COMPLEXITY,PRODUCT 3530 DATA STRUCTURE,PROBLEM,IMPETUS,RESOURCE 3540 DATA TASK,CIRCUMSTANCE,MESSAGE,OBJEC THINKER User Documentation THINKEҠ (nam ha no bee searche yet bu fo now.. i remarkabl eas t lear t us considerin ho remarkabl comple ar th thing i try t d an ho myria ar th particula thing i i aske t conside b th user THINKE i basicall concep processo whic work wit selecte Englis word an English-lik wor string arrange i lists I take tw verb-nou pairs on majo an on minor fro th user Thes word for logica argumen whic th use formulate t describ som situatio o conditio i th user' world THINKEҠ replie wit thre logica argument whic th use the interpret a als bein descriptiv o his/he world Perspectiv value mak thi proces mor refine a the allo th use t qualif th kind o replie she/h i lookin for (Se hel message i THINKE fo sketch outlin o al this.) T us THINKE yo hav t b abl t thin conceptuall t modes degree Yo als hav t hav goo ide abou th meanin o th term THINKE uses preferabl i thei broade senses I yo hav troubl wit conceptua thinkin i help t rea o stud material fro th socia science suc a psychology anthropolog an sociology I yo nee t enric you vocabulary the yo migh tr browsin moder thesauru -- and i you'r u t it readin o studyin material fro philosophy linguistic an semiotic. No t use difficultie wit THINKE tha aren' par o wha th use i bringin t th mix Assumin yo hav rappor wit THINKER the problem generall fal int groups 1)th use i havin troubl sayin wha he/sh want i verb/noun/verb/nou fashion 2)th use doe no understan ho t us th perspectiv numbe t ge th mos usefu replies 3)th use doe no kno ho t bes interpolat auxiliar word t avoi misinterpretatio o th replies 4)th use canno appreciat th succinc an relativel hig intelligenc o th replie an how they are pertinent from the user's standpoint. 1- Th VER NOU AN VER NOU structur i ofte interprete i Englis (jazze u wit modifiers as 1) repor o tw relativel unrelate thing happening 2)tw thing tha ar relativel relate happenin on afte another o 3)on thin happenin tha implie o determine th happenin o th other Wit THINKE thi structur almos neve promise tw thing ar happenin unrelate t on another seldo tha thing ar happenin on afte another an onl occasionall tha on thing' happenin implie o determine th other Wha THINKE doe usuall promis wit it VER NOU AN VER NOUΠ structur i tha tw thing whic ar fairl wel relate ar happenin t som堠 exten ove th sam tim perio wit蠠 th堠 firs predominatin (i importance i exten o a requiremen t th second an wit th firs possibl suggestin bu no directl implyin o determinin th secon thin happening. THINKER User Documentation 2- Th Perspectiv Numbe i use b THINKE a par o it concep processin algorithm I allow THINKER' replie t no onl b relate t th input bu i allow relatio o th replie t tha purpos th use ha i makin th inpu --s th replie ar a al pragmatic I i simples t associat eac perspectiv numbe wit th ver havin tha numbe i th lis o verbs Yo mus realize however tha i yo typ i 6 whic i th numbe o QUESTIO yo won' ge a answe t som inpu yo ar posin a question bu instea yo wil ge replie whic sugges wha t questio abou wha yo pu in Thi hold fo al th perspectives the ar approximatel wha th correspondin verb wil d wit you inpu NO descriptio o wha you inpu i doing littl experimentatio wit thi i min shoul clea u mos difficulties. 3- Usin auxiliar word suc as FOR TO BY WITH ABOUT AS UP an s fort afte verb ca b complicate an gettin th righ wor betwee ver an nou fo bes sens ca b difficult ɠ sugges tacklin th verb accordin t thei tw grouping differently Fo thos verb endin i hyphen tr wha you'v hear (o read a th combinatio first Fo thos verb tha sometime stan alone se i sens improve b insertin WIT -- an i i doesn't the tr FOR ABOUT A an an others Yo ca practic thi an the develop lis o preference fo eac verb (T shar min woul tak lon tim an I' no sur that it would be a favor to you to do so.) 4- Th wa THINKER' concep processin algorith i se u ma giv i certai amoun o overkil i al bu th mos advance application o concep processing It replies whe properl understood ca see mor farreachin intellectuall to th use tha wha th use desire o expecte i retur fo givin his/he input THINKE deal i solution no i remedy I yo can' thin tha har o ar no i positio t implemen solution rathe tha remedies the yo hav t gea dow th algorithm I i i proble o ho POTEN th word see t be the yo ca tr makin you ow wor se wit som o th word rearrange an som o th word replace b ne words ( fairl eas wa t dilut th algorith i t replac 'F% wit 'F%+1 an 'F%-1 alternatel whereve 'F% occurs goo wa o undervaluin th wor se i t swa eve othe ro i thei printout Thus AI BRIN ACT- ADAP i replace b ALTEҠ ASSIGN- APPROAC BEGIΠ an vic versa 2 become 1 an vic versa Bu thi ha t b don fo th noun also s whateve noun an verb ha th sam number t star with have other same numbers afterwards.)  tha wha th use desire o expecte i retur fo givin his/he input THINKE deal i solution no i remedy I yo can' thin tha har o ar no i positio t implemen solution rathe tha remedies the yo hav t gea dow th algorithm I i i proble o ho POTEN th word see t be the yo ca tr makin you ow wor se wit som o th word rearrange an som o th word replace b ne words ( fairl eas wa t dilut th algorith i t replac 'F% wit 'F%+1 an 'F%-1 alternatel whereve 'F% occurs goo wa o undervaluin th wor se i t swa eve othe ro i thei printout Thus AI BRIN ACT- ADAP i replace b ALTEҠ ASSIGN- APPROAC BEGIΠ an vic versa 2 become 1 an vic versa Bu thi ha t b don fo th noun also 100 PRINT CHR$(26) 110 PRINT "PGM THINKER2.BAS,C. 5/85 BY JAMES PHILON." 120 PRINT "ALL RIGHTS RESERVED. A 'CONCEPT PROCESSOR'." 130 ' 140 ' CODE IS FOR MICROSOFT BASIC, CAN EASILY BE 150 ' ADAPTED TO OTHER DIALECTS AND LANGUAGES. 160 ' 170 ' ***DIMENSION THE ARRAYS*** 180 U% = 64 190 DIM X$(U%),Y$(U%),YA$(U%),YM$(68) 200 DIM TY%(U%),Q$(36) 210 OO%=1 220 ' ***INITIALIZE ARRAYS AND CONSTANTS*** 230 FOR X%=1 TO U%:READ X$(X%):NEXT X% 240 FOR X%=1 TO U%:READ Y$(X%):NEXT X% 250 FOR X%=1 TO U%:READ YA$(X%):NEXT X% 260 FOR X%=1 TO U%:READ YM$(X%):NEXT X% 270 YM$(65)="":YM$(66)="SOME":YM$(67)="THIS" 280 FOR X%=1 TO U%:READ TY%(X%):NEXT X% 290 FOR X%=22 TO 29:READ Q$(X%):NEXT X% 300 FD$="":IF A2%=1 THEN 700 310 PRINT CHR$(26) 320 PRINT "FOR HELP SEE THINKER2.DOC" 330 FOR X%=1 TO 1500:NEXT X%:PRINT CHR$(26) 340 ' ***PRINT THE WORD SET*** 350 INPUT " DO YOU WANT TO PRINT THE WORDS (Y/N) ";W$ 360 IF LEFT$(W$,1)<>"Y" THEN 700 370 PRINT " PRESS RETURN WHEN PRINTER IS READY" 380 INPUT " OR TYPE ANY KEY + RETURN TO ABORT: ";W$ 390 IF W$<>"" THEN 350 400 ST$=STRING$(80,"-") 410 IF FD$="" THEN LPRINT " GENERAL VOCABULARY" ELSE LPRINT FD$ 420 LPRINT 430 LPRINT " USE 'FOR', 'WITH', 'BY', 'AS', 'ABOUT', 'TO', 'UP' AND" 440 LPRINT " OTHER HELPING WORDS AFTER VERBS ENDING IN HYPHEN." 450 LPRINT " USE THESE HELPERS SPARINGLY IN PLACE OF THOSE ALREADY" 460 LPRINT " HAVING A HELPER AFTER A HYPHEN OR UNHYPHENATED VERBS." 470 LPRINT:LPRINT " THE VERBS:" 480 FOR X=1 TO 64 490 IF X/4=INT(X/4) THEN GOSUB 510 ELSE LPRINT X;X$(X);" "; 500 NEXT X:GOTO 520 510 LPRINT X;X$(X);" ";:LPRINT:RETURN 520 LPRINT:LPRINT ST$:LPRINT:LPRINT "THE GENERAL NOUNS:" 530 FOR X = 1 TO 64 540 IF X/4=INT(X/4) THEN GOSUB 560 ELSE LPRINT X;Y$(X);" "; 550 NEXT X:GOTO 570 560 LPRINT X;Y$(X);" ";:LPRINT:RETURN 570 LPRINT:LPRINT ST$:LPRINT:LPRINT "THE OBJECTIVE NOUNS:" 580 FOR X = 1 TO 64 590 IF X/4=INT(X/4) THEN GOSUB 610 ELSE LPRINT X;YA$(X);" "; 600 NEXT X:GOTO 620 610 LPRINT X;YA$(X);" ";:LPRINT:RETURN 620 LPRINT:LPRINT 630 LPRINT:LPRINT ST$:LPRINT:LPRINT "THE NOUN MODIFIERS:" 640 FOR X = 1 TO 64 650 IF X/4=INT(X/4) THEN GOSUB 670 ELSE LPRINT X;YM$(X);" "; 660 NEXT X:GOTO 680 670 LPRINT X;YM$(X);" ";:LPRINT:RETURN 680 LPRINT:LPRINT 690 ' ***OFFER AND DO VOCABULARY MODIFICATION*** 700 INPUT " DO YOU WANT TO CHANGE THE WORDS (Y/N) ";W$ 710 IF LEFT$(W$,1) <> "Y" THEN 1610 720 PRINT CHR$(26) 730 INPUT "SWITCH CALCULATION ALGORITHM (Y/N)";W$ 740 IF LEFT$(W$,1)="Y" THEN OO%=-OO% 750 IF OO%=1 THEN GJ$=" ABSTRACTLY" ELSE GJ$=" CONCRETELY" 760 PRINT CHR$(26) 770 INPUT "SUPPRESS/RESTORE 'SOME' AND 'THIS' (Y/N)";W$ 780 IF LEFT$(W$,1) <> "Y" THEN 820 790 IF YM$(66)="" THEN 810 800 YM$(66)="":YM$(67)="":GOTO 820 810 YM$(66)="SOME":YM$(67)="THIS" 820 PRINT CHR$(26) 830 INPUT "SET VOCABULARY TO DEFAULT (Y/N)";W$ 840 IF LEFT$(W$,1) <> "Y" THEN 870 850 FG$="" 860 RESTORE:A2%=1:GOTO 220 870 PRINT CHR$(26) 880 INPUT "REPLACE OLD WORDS WITH NEW (Y/N) ";W$ 890 IF LEFT$(W$,1) <> "Y" THEN 1270 900 PRINT CHR$(26) 910 PRINT " ENTER 1 TO QUIT":PRINT 920 PRINT " PRESSING WITHOUT KEYING" 930 PRINT " ANYTHING ADVANCES WITHOUT REPLACING" 940 FOR X%=1 TO 64 950 PRINT:PRINT:PRINT 960 PRINT X$(X%) 970 INPUT "ENTER REPLACEMENT";W1$ 980 IF LEFT$(W1$,1) = "1" THEN 1020 990 IF W1$ <> "" THEN X$(X%)=W1$ 1000 PRINT CHR$(26) 1010 NEXT X% 1020 FOR X%=1 TO 64 1030 PRINT:PRINT:PRINT 1040 PRINT Y$(X%) 1050 INPUT "ENTER REPLACEMENT";W1$ 1060 IF LEFT$(W1$,1) = "1" THEN 1100 1070 IF W1$ <> "" THEN Y$(X%)=W1$ 1080 PRINT CHR$(26) 1090 NEXT X% 1100 FOR X%=1 TO 64 1110 PRINT:PRINT:PRINT 1120 PRINT YA$(X%) 1130 INPUT "ENTER REPLACEMENT";W1$ 1140 IF LEFT$(W1$,1) = "1" THEN 1180 1150 IF W1$ <> "" THEN YA$(X%)=W1$ 1160 PRINT CHR$(26) 1170 NEXT X% 1180 FOR X%=1 TO 64 1190 PRINT:PRINT:PRINT 1200 PRINT YM$(X%) 1210 INPUT "ENTER REPLACEMENT";W1$ 1220 IF LEFT$(W1$,1) = "1" THEN 1270 1230 IF W1$ <> "" THEN YM$(X%)=W1$ 1240 PRINT CHR$(26) 1250 NEXT X% 1260 ' ***FILE AND RETRIEVE WORD SETS*** 1270 PRINT CHR$(26) 1280 INPUT " FILE A NEW VOCABULARY (Y/N) ";W$ 1290 IF LEFT$(W$,1) <> "Y" THEN 1400 1300 INPUT "ENTER FILE NAME IN QUOTES: ";FL$ 1310 PRINT 1320 PRINT "ENTER A 1 LINE DESCRIPTION OF FILE'S USE" 1330 INPUT FD$ 1340 IF FD$="" THEN FD$="USING "+FL$ 1350 OPEN "O",1,FL$ 1360 PRINT #1,FD$;","; 1370 FOR X%=1 TO 64:PRINT #1, X$(X%);",";Y$(X%);",";YA$(X%);",";:NEXT X% 1380 FOR X%=1 TO 64:PRINT #1, YM$(X%);",";:NEXT X% 1390 CLOSE 1 1400 PRINT CHR$(26) 1410 INPUT " RETRIEVE A VOCABULARY FILE (Y/N) ";W$ 1420 IF LEFT$(W$,1)<>"Y" THEN 1610 1430 PRINT CHR$(26) 1440 INPUT " GIVE FILE DIRECTORY (Y/N)";W$ 1450 IF LEFT$(W$,1) <> "Y" THEN 1470 1460 PRINT:PRINT:FILES:PRINT 1470 INPUT "ENTER FILENAME IN QUOTES (OR CODE): ";FL$ 1480 IF FL$="BIZ" THEN FL$="BIZWORDS.DAT" 1490 IF FL$="SCI" THEN FL$="SCIWORDS.DAT" 1500 OPEN "I",1,FL$ 1510 INPUT #1,FD$ 1520 FOR X%=1 TO 64 1530 INPUT #1,X$(X%),Y$(X%),YA$(X%) 1540 NEXT X% 1550 IF EOF(1) THEN 1590 1560 FOR X%=1 TO 64 1570 INPUT #1,YM$(X%) 1580 NEXT X% 1590 CLOSE 1 1600 ' ***ENTER MAIN PROCESSING*** 1610 PRINT CHR$(26) 1620 INPUT " READY TO USE THINKER2 (Y/N) ";W$ 1630 IF LEFT$(W$,1)="Y" THEN 4090 ELSE 350 1640 ' ***GET THE INPUT INFORMATION*** 1650 IF A2% <> 0 THEN 1700 1660 PRINT " TO GET BACK TO THINKER OPTIONS" 1670 PRINT " PRESS RETURN WITHOUT KEYING IN" 1680 PRINT " ANYTHING AT 'PERSPECTIVE NO.' ":PRINT:PRINT 1690 A2%=1 1700 INPUT "ENTER PERSPECTIVE NO. FROM 1 TO 64";F$ 1710 IF F$ = "" THEN 350 ELSE F%=VAL(F$) 1720 IF F%<1 OR F%>U% THEN 1700 1730 PRINT 1740 PRINT "ENTER: VERB, MODIFIER, GENERAL NOUN," 1750 PRINT "VERB, MODIFIER, OBJECTIVE NOUN. USE '.' FOR" 1760 PRINT "NO MODIFIER. MAY ABBREV. TO 1ST 4 LETTERS." 1770 INPUT A$,B1$,B$,C$,D1$,D$ 1780 PRINT:INPUT "SWITCH ABSTRACT/CONCRETE PERSPECTIVE (Y/N)";W$ 1790 IF LEFT$(W$,1)="Y" THEN OO%=-OO% 1800 IF OO%=1 THEN GJ$=" ABSTRACTLY" ELSE GJ$=" CONCRETELY" 1810 ' ***ALLOW THE FIRST FOUR LETTERS TO SERVE AS INPUT*** 1820 O1%=0:O2%=0:O3%=0:O4%=0:O5%=0:O6%=0 1830 QO$="NOT " 1840 IF LEFT$(A$,4)<>QO$ THEN 1860 1850 TE%=LEN(A$)-4:A$=RIGHT$(A$,TE%):O1%=1 1860 IF LEFT$(B$,4)<>QO$ THEN 1880 1870 TE%=LEN(B$)-4:B$=RIGHT$(B$,TE%):O2%=1 1880 IF LEFT$(C$,4)<>QO$ THEN 1900 1890 TE%=LEN(C$)-4:C$=RIGHT$(C$,TE%):O3%=1 1900 IF LEFT$(D$,4)<>QO$ THEN 1920 1910 TE%=LEN(D$)-4:D$=RIGHT$(D$,TE%):O4%=1 1920 IF LEFT$(B1$,4)<>QO$ THEN 1940 1930 TE%=LEN(B1$)-4:B1$=RIGHT$(B1$,TE%):O5%=1 1940 IF LEFT$(D1$,4)<>QO$ THEN 1960 1950 TE%=LEN(D1$)-4:D1$=RIGHT$(D1$,TE%):O6%=1 1960 I%=0:J%=0:K%=0:L%=0:B1%=0:D1%=0 1970 FOR P%=1 TO U% 1980 IF LEFT$(A$,4)=LEFT$(X$(P%),4) THEN I%=P% 1990 IF LEFT$(B$,4)=LEFT$(Y$(P%),4) THEN J%=P% 2000 IF LEFT$(C$,4)=LEFT$(X$(P%),4) THEN K%=P% 2010 IF LEFT$(D$,4)=LEFT$(YA$(P%),4) THEN L%=P% 2020 IF LEFT$(B1$,4)=LEFT$(YM$(P%),4) THEN B1%=P% 2030 IF LEFT$(D1$,4)=LEFT$(YM$(P%),4) THEN D1%=P% 2040 NEXT P% 2050 IF I%=0 THEN PRINT A$;" NOT KNOWN" 2060 IF J%=0 THEN PRINT B$;" NOT KNOWN" 2070 IF K%=0 THEN PRINT C$;" NOT KNOWN" 2080 IF L%=0 THEN PRINT D$;" NOT KNOWN" 2090 IF B1%=0 AND B1$<>"." THEN PRINT B1$;" NOT KNOWN" 2100 IF D1%=0 AND D1$<>"." THEN PRINT D1$;" NOT KNOWN" 2110 IF (B1%=0 AND B1$<>".") OR (D1%=0 AND D1$<>".") THEN 1740 2120 IF I%=0 OR J%=0 OR K%=0 OR L%=0 THEN 1740 2130 A2$=X$(I%):B2$=Y$(J%):C2$=X$(K%):D2$=YA$(L%):B3$=YM$(B1%):D3$=YM$(D1%) 2140 QO$="NOT ":FOR X%=30 TO 35:Q$(X%)="":NEXT X% 2150 IF O1%<>1 THEN 2170 2160 I%=65-I%:Q$(30)=QO$ 2170 IF O2%<>1 THEN 2190 2180 J%=65-J%:Q$(32)=QO$ 2190 IF O3%<>1 THEN 2210 2200 K%=TY%(K%):Q$(33)=QO$ 2210 IF O4%<>1 THEN 2230 2220 L%=TY%(L%):Q$(35)=QO$ 2230 IF O5%<>1 THEN 2250 2240 B1%=65-B1%:Q$(31)=QO$ 2250 IF O6%<>1 THEN 2270 2260 D1%=TY%(D1%):Q$(34)=QO$ 2270 PRINT CHR$(26) 2280 ' *****CALCULATE VALUES FOR REPLIES***** 2290 ' ***FIRST CALCULATE MODIFIER VALUES*** 2300 BJ=(B1%+J%)/2 2310 IF B1%<=J% THEN BK=(B1%-1+64-J%)/2 ELSE BK=(J%-1+64-B1%)/2 2320 IF BJ<=BK THEN BL=BJ ELSE BL=BK 2330 IF J%>=B1% THEN BL=J%-BL ELSE BL=B1%-BL 2340 DJ=(D1%+L%)/2 2350 IF D1%<=L% THEN DK=(D1%-1+64-L%)/2 ELSE DK=(L%-1+64-D1%)/2 2360 IF DJ<=DK THEN DL=DJ ELSE DL=DK 2370 IF L%>=D1% THEN DL=L%-DL ELSE DL=D1%-DL 2380 BL%=INT(BL) 2390 IF BL%<>BL THEN BM%=BL%+1 ELSE BM%=BL% 2400 DL%=INT(DL) 2410 IF DL%<>DL THEN DM%=DL%+1 ELSE DM%=DL% 2420 ' ***CALCULATE MAIN VALUES*** 2430 T1%=1 2440 B%=J%:C%=I% 2450 GOSUB 2690:Q1%=V% 2460 B%=K%:C%=I% 2470 GOSUB 2690:R1%=V% 2480 B%=L%:C%=I% 2490 GOSUB 2690:S1%=V% 2500 B%=I%:C%=J% 2510 GOSUB 2690:Q2%=V% 2520 B%=K%:C%=J% 2530 GOSUB 2690:R2%=V% 2540 B%=L%:C%=J% 2550 GOSUB 2690:S2%=V% 2560 B%=I%:C%=K% 2570 GOSUB 2690:Q3%=V% 2580 B%=J%:C%=K% 2590 GOSUB 2690:R3%=V% 2600 B%=L%:C%=K% 2610 GOSUB 2690:S3%=V% 2620 B%=I%:C%=L% 2630 GOSUB 2690:Q4%=V% 2640 B%=J%:C%=L% 2650 GOSUB 2690:R4%=V% 2660 B%=K%:C%=L% 2670 GOSUB 2690:S4%=V% 2680 GOTO 3040 2690 IF OO%=1 THEN 2860 2700 IF C%<17 THEN V1=2 2710 IF C%>16 AND C%<49 THEN V1=3 2720 IF C%>48 THEN V1=4 2730 B%=B%+1:C%=C%+1 2740 V2=B%^V1+C%*F% 2750 V2=V2/66 2760 IF V2>65.49 THEN 2750 2770 V3=V2-INT(V2) 2780 IF V3<.0001 THEN V3=1/(F%+1) 2790 V4=V3*65.49 2800 IF V4>=1.5 THEN 2830 2810 IF V4>1 THEN V4=V4-1 2820 V4=V4*65.49:GOTO 2800 2830 IF V4>65.49 THEN V4=V4-F% 2840 V%=V4-1 2850 RETURN 2860 IF B%>C% THEN GOSUB 2900 2870 IF B%ABS(B%+C%-12) THEN V%=V%+4 2930 IF V%>64 THEN V%=V%-8 2940 IF V%>64 THEN V%=F% 2950 RETURN 2960 P%=B%+F%-C% 2970 IF P%=0 THEN V%=F% 2980 IF P%>0 THEN V%=P%+1 2990 IF P%<0 THEN V%=63+P% 3000 RETURN 3010 T1%=-T1% 3020 IF T1%>0 THEN V%=F% ELSE V%=65-F% 3030 RETURN 3040 A6%=0 3050 ' ***CALCULATE WITH MODIFIER VALUES*** 3060 G0%=Q2%-BL% 3070 IF G0%<1 THEN G0%=G0%+64 3080 G1%=Q2%+BM% 3090 IF G1%>64 THEN G1%=G1%-64 3100 IF B1%=0 THEN G0%=65 AND G1%=Q2% 3110 IF B1%=0 AND D1%<>0 THEN G0%=66 3120 G2%=S2%-DL% 3130 IF G2%<1 THEN G2%=G2%+64 3140 G3%=S2%+DM% 3150 IF G3%>64 THEN G3%=G3%-64 3160 IF D1%=0 THEN G2%=65 AND G3%=S2% 3170 IF B1%<>0 AND D1%=0 THEN G2%=67 3180 G4%=R1%-BL% 3190 IF G4%<1 THEN G4%=G4%+64 3200 G5%=R1%+BM% 3210 IF G5%>64 THEN G5%=G5%-64 3220 IF B1%=0 THEN G4%=65 AND G5%=R1% 3230 IF B1%=0 AND D1%<>0 THEN G4%=66 3240 G6%=S4%-DL% 3250 IF G6%<1 THEN G6%=G6%+64 3260 G7%=S4%+DM% 3270 IF G7%>64 THEN G7%=G7%-64 3280 IF D1%=0 THEN G6%=65 AND G7%=S4% 3290 IF B1%<>0 AND D1%=0 THEN G6%=67 3300 G8%=R2%-BL% 3310 IF G8%<1 THEN G8%=G8%+64 3320 G9%=R2%+BM% 3330 IF G9%>64 THEN G9%=G9%-64 3340 IF B1%=0 THEN G8%=65 AND G9%=R2% 3350 IF B1%=0 AND D1%<>0 THEN G8%=66 3360 GA%=Q4%-DL% 3370 IF GA%<1 THEN GA%=GA%+64 3380 GB%=Q4%+DM% 3390 IF GB%>64 THEN GB%=GB%-64 3400 IF D1%=0 THEN GA%=65 AND GB%=Q4% 3410 IF B1%<>0 AND D1%=0 THEN GA%=67 3420 ' ***CALCULATE TO HANDLE NEGATIONS*** 3430 FOR X%=1 TO 21:Q$(X%)="":NEXT X% 3440 IF O1%=0 THEN 3470 3450 Q$(2)=Q$(25):Q$(3)=Q$(26):Q$(4)=Q$(27):Q$(19)=Q$(22) 3460 Q$(17)=Q$(28):Q$(18)=Q$(29):Q$(21)=Q$(22):Q$(20)=Q$(23) 3470 IF (O2%=0 AND O5%=0) THEN 3500 3480 Q$(1)=Q$(24):Q$(19)=Q$(22):Q$(7)=Q$(24):Q$(20)=Q$(22) 3490 Q$(16)=Q$(27):Q$(21)=Q$(22) 3500 IF O3%=0 THEN 3540 3510 Q$(8)=Q$(25):Q$(9)=Q$(26):Q$(11)=Q$(28):Q$(12)=Q$(29) 3520 Q$(20)=Q$(22):IF Q$(19)<>Q$(22) THEN Q$(19)=Q$(23) 3530 Q$(14)=Q$(25):Q$(15)=Q$(26):Q$(21)=Q$(22) 3540 IF (O4%=0 AND O6%=0) THEN 3580 3550 Q$(5)=Q$(28):Q$(6)=Q$(29):Q$(19)=Q$(22) 3560 Q$(10)=Q$(27):Q$(20)=Q$(22):Q$(13)=Q$(24):Q$(21)=Q$(22) 3570 ' ***DISPLAY AND PRINT OUTPUT*** 3580 IF FD$<>"" THEN PRINT "< ";FD$;" >" 3590 IF FD$<>"" THEN PRINT 3600 PRINT:PRINT "USING PERSPECTIVE ";F%;" ";X$(F%);GJ$ 3610 PRINT 3620 PRINT Q$(30);A2$;" ";Q$(31);B3$;" ";Q$(32);B2$;" AND " 3630 PRINT Q$(33);C2$;" ";Q$(34);D3$;" ";Q$(35);D2$;".." 3640 PRINT 3650 PRINT Q$(19);Q$(1);X$(Q1%);" ";Q$(2);YM$(G0%);" ";Q$(3);Y$(G1%);" AND " 3660 PRINT Q$(4);X$(Q3%);" ";Q$(5);YM$(G2%);" ";Q$(6);YA$(G3%);"." 3670 PRINT Q$(20);Q$(7);X$(R4%);" ";Q$(8);YM$(G4%);" ";Q$(9);Y$(G5%);" AND " 3680 PRINT Q$(10);X$(S3%);" ";Q$(11);YM$(G6%);" ";Q$(12);YA$(G7%);"." 3690 PRINT Q$(21);Q$(13);X$(S1%);" ";Q$(14);YM$(G8%);" ";Q$(15);Y$(G9%);" AND " 3700 PRINT Q$(16);X$(R3%);" ";Q$(17);YM$(GA%);" ";Q$(18);YA$(GB%);"." 3710 PRINT 3720 INPUT "WRITE YOUR INTERPRETATION (Y/N) ";W$ 3730 IF LEFT$(W$,1) <> "Y" THEN 3870 3740 H2$(1)="":H2$(2)="":H2$(3)="":H2$(4)="" 3750 FOR X%=1 TO 4 3760 H1$ = INKEY$ 3770 IF H1$ = "" THEN 3760 3780 IF H1$ = CHR$(13) THEN 3830 3790 H2$(X%) = H2$(X%)+H1$ 3800 IF H1$ = CHR$(8) THEN H2$(X%) = LEFT$(H2$(X%),LEN(H2$(X%))-2) 3810 PRINT H1$; 3820 GOTO 3760 3830 PRINT 3840 NEXT X% 3850 A9% = 1 3860 PRINT 3870 INPUT "PRINT OUT (Y/N) ";W$ 3880 IF LEFT$(W$,1) <> "Y" THEN 4060 3890 LPRINT:IF FD$="" THEN LPRINT " ( USING GENERAL WORD SET )" 3900 LPRINT:LPRINT "USING PERSPECTIVE ";F%;" ";X$(F%);GJ$ 3910 LPRINT 3920 LPRINT Q$(30);A2$;" ";Q$(31);B3$;" ";Q$(32);B2$;" AND " 3930 LPRINT Q$(33);C2$;" ";Q$(34);D3$;" ";Q$(35);D2$;".." 3940 LPRINT 3950 LPRINT Q$(19);Q$(1);X$(Q1%);" ";Q$(2);YM$(G0%);" ";Q$(3);Y$(G1%);" AND " 3960 LPRINT Q$(4);X$(Q3%);" ";Q$(5);YM$(G2%);" ";Q$(6);YA$(G3%);"." 3970 LPRINT Q$(20);Q$(7);X$(R4%);" ";Q$(8);YM$(G4%);" ";Q$(9);Y$(G5%);" AND " 3980 LPRINT Q$(10);X$(S3%);" ";Q$(11);YM$(G6%);" ";Q$(12);YA$(G7%);"." 3990 LPRINT Q$(21);Q$(13);X$(S1%);" ";Q$(14);YM$(G8%);" ";Q$(15);Y$(G9%);" AND " 4000 LPRINT Q$(16);X$(R3%);" ";Q$(17);YM$(GA%);" ";Q$(18);YA$(GB%);"." 4010 LPRINT 4020 IF A9% <> 1 THEN 4060 4030 LPRINT 4040 LPRINT H2$(1):LPRINT H2$(2):LPRINT H2$(3):LPRINT H2$(4) 4050 ' ***CLEAR SCREEN/REPEAT PROCESS*** 4060 INPUT " CLEAR SCREEN (N/Y) ";W$ 4070 IF LEFT$(W$,1)="N" THEN 4120 4080 A9%=0 4090 FOR X%=1 TO 24:FOR V%=1 TO 30 4100 NEXT V%:PRINT:NEXT X% 4110 PRINT CHR$(26) 4120 GOTO 1650 4130 ' ***THE WORD LIST DATA*** 4140 ' ( VERBS ) 4150 DATA AID,BRING,ACT-,ADAPT 4160 DATA ALTER,ASSIGN-,APPROACH,BEGIN 4170 DATA WAIT-,IMPROVE,USE,GET 4180 DATA WATCH,GIVE,WANT,GO- 4190 DATA DEAL-,SENSE,INVOLVE,MODIFY 4200 DATA DEVISE,SAY,INTRODUCE,MAKE 4210 DATA DESIGN,SOLVE,INFLUENCE,MANAGE 4220 DATA DO,SET-,INFORM-,MOVE 4230 DATA EXTEND,CONSIDER,KEEP,NOTICE 4240 DATA END,CHOOSE,CLEAR-,KNOW 4250 DATA FEEL,TEST,LEAVE,URGE 4260 DATA FIND,THINK,LEARN,SUGGEST 4270 DATA EVOLVE,REALIZE,ORGANIZE,RELATE- 4280 DATA WORK,SHOW,PLAY-,SHARE 4290 DATA HAVE,TAKE,SEE,TRY 4300 DATA DIRECT,QUESTION,CREATE,APPLY 4310 ' ( GENERAL NOUNS ) 4320 DATA HELP,CONCERN,ACTIVITY,ADAPTATION 4330 DATA CHANGE,ASSIGNMENT,STRATEGY,STARTING 4340 DATA PAUSE,GROWTH,USEFULNESS,ACHIEVEMENT 4350 DATA OBSERVATION,SOURCE,REQUIREMENT,PROGRESS 4360 DATA LOVE,PERCEPTION,INVOLVEMENT,MODIFICATION 4370 DATA INGENUITY,ASCERTION,INTRODUCTION,PRODUCTION 4380 DATA DETERMINATION,SOLUTION,MOTIVATION,MANAGEMENT 4390 DATA DEDICATION,SITUATION,INFORMATION,MOVEMENT 4400 DATA ENDEAVOR,CONSIDERATION,RECALL,SIGNIFICANCE 4410 DATA ENDING,DECISION,CLARIFICATION,KNOWLEDGE 4420 DATA ENJOYMENT,EVALUATION,DEPARTURE,ARGUMENT 4430 DATA DISCOVERY,THEORY,MENTALITY,SUGGESTION 4440 DATA EVOLUTION,REALIZATION,ORGANIZATION,RELATIONSHIP 4450 DATA OPERATION,DEMONSTRATION,ROLE,AGREEMENT 4460 DATA POTENTIAL,INPUT,PERSON,ATTEMPT 4470 DATA REGULATION,INQUIRY,CREATION,APPLICATION 4480 ' ( OBJECTIVE NOUNS ) 4490 DATA ADVANTAGE,SUPPLY,ACTIVE-PART,FUNCTION 4500 DATA ALTERNATIVE,THING,TACTIC,GOAL 4510 DATA DELAY,GAIN,TOOL,COLLECTION 4520 DATA OCCURENCE,NATURE,PROPERTY,EXCURSION 4530 DATA ARRANGEMENT,PRESENCE,SYSTEM,MECHANISM 4540 DATA DEVICE,EXPRESSION,COMPLEXITY,PRODUCT 4550 DATA STRUCTURE,PROBLEM,IMPETUS,RESOURCE 4560 DATA TASK,CIRCUMSTANCE,MESSAGE,OBJECT 4570 DATA EXTENSION,CONDITION,STORAGE,PECULIARITY 4580 DATA RESULT,POSSIBILITY,AREA,SIMILARITY 4590 DATA ORIENTATION,MEASUREMENT,POSITION,LIMITATION 4600 DATA LOCATION,METHOD,TECHNIQUE,CAPABILITY 4610 DATA KIND,BENEFIT,HUMAN-BEING,CHARACTERISTIC 4620 DATA FACILITY,APPEARANCE,GAME,COMMONALITY 4630 DATA RESPONSIVENESS,RECEIVER,SUBJECT,SENDER 4640 DATA PROCESS,CHANNEL,BELIEF,LOGIC 4650 ' ( NOUN MODIFIERS ) 4660 DATA HELPFUL,CONCERNED,ACTIVE,ADAPTIVE 4670 DATA CHANGING,PLAUSIBLE,STRATEGIC,INITIAL 4680 DATA TIMELY,STRONG,USEFUL,ENTHUSIASTIC 4690 DATA OBSERVANT,ORIGINAL,NECESSARY,PROGRESSIVE 4700 DATA BEAUTIFUL,SENSITIVE,INTRICATE,MODIFYING 4710 DATA INSIGHTFUL,EXPRESSIVE,INNOVATIVE,PRODUCTIVE 4720 DATA ACCEPTABLE,POSITIVE,EARNEST,RESOURCEFUL 4730 DATA PARTICIPATING,CONTEXTUAL,INFORMATIVE,MOVING 4740 DATA EXTENSIVE,CONSIDERATE,OBVIOUS,IMPORTANT 4750 DATA FINAL,DECISIVE,CLEAR,SIMPLE 4760 DATA FAVORABLE,PARAMETERED,VITAL,SOPHISTICATED 4770 DATA SPECIFIC,THOUGHTFUL,SMART,ENABLING 4780 DATA EVOLVED,REAL,ORGANIC,RELATIVE 4790 DATA OPERATIONAL,PLAIN,PERTINENT,GOOD 4800 DATA POWERFUL,PERPETUATING,PERSONAL,ACTUAL 4810 DATA DIRECT,CERTAIN,CREATIVE,INTENSE 4820 ' TY%() DATA 4830 DATA 14,13,16,15,10,9,12,11,6,5,8,7,2,1,4,3 4840 DATA 42,41,44,43,46,45,48,47,34,33,36,35,38,37,40,39 4850 DATA 26,25,28,27,30,29,32,31,18,17,20,19,22,21,24,23 4860 DATA 62,61,64,63,58,57,60,59,54,53,56,55,50,49,52,51 4870 ' Q$() DATA 4880 DATA "(MIGHT) ","(COULD) ","WRONGLY ","(LESS THAN?) " 4890 DATA "(DEFICENCY OF?) ","POORLY ","(ONLY SOMEWHAT?) ","(DUBIOUS?) " 4900 ' 4910 ' PROGRAM THINKER2.BAS IS COPYRIGHT 1985 BY 4920 ' JAMES J. PHILON. ALL RIGHTS ARE RESERVED. 4925 ' 4930 ' IT IS COPYRIGHT INFRINGEMENT TO VIOLATE THE 4940 ' THE USER LICENSE IMPLICITLY AGREED TO BY THE 4950 ' PURCHASE OF THIS SOFTWARE WHICH HAS AS ITS 4960 ' CONDITIONS THAT COPIES BE MADE BY THE USER ONLY 4970 ' FOR THE USER'S OWN PERSONAL USE, THAT THEY MAY 4980 ' NOT BE SOLD TO OTHERS FOR THE USER'S PROFIT, 4990 ' OR, BE GIVEN TO OTHERS TO INJURE LEGITIMATE SALES. 5000 ' FURTHER, THE TERM RELATING ALGORITHMS AND WORD 5010 ' SETS IN THINKER2 ARE COPYRIGHT AND AS SUCH MAY 5020 ' NOT BE INCORPORATED VERBATIM OR IN CLOSE FAC- 5030 ' SIMILE IN ANY PROGRAM FOR SALE OR IN ANY GEN- 5040 ' ERIC PROGRAM USED FOR THE SAME PURPOSES AS 5050 ' THINKER2 THAT IT MIGHT BE SHARED WITHOUT ADD- 5060 ' ITIONAL PURCHASES OF THINKER2. TO DISCUSS 5070 ' LIMITED RIGHTS BY PERMISSION TO SELL THINKER2 5080 ' OR TO SELL IMPROVEMENTS ON IT OR TO HAVE IT 5090 ' AT LOWER PRICE (EVEN FREE) FOR YOUR GROUP, 5100 ' CALL ME AT (317) 362-1923. 5110 END ROVEMENTS ON IT OR TO HAVE IT 5090 ' AT LOWER PRICE (EVE925 ' 4930 ' IT IS COPYRIGHT INFRINGEMENT TO VIOLATE THE 4940 ' THE USER LICENSE IMPLICITLY AGREED TO BY THE 4950 ' PURCHASE OF THIS SOFTWARE WHICH HAS AS ITS 4960 ' CONDITIONS THAT COPIES BE MADE BY THE USER ONLY 4970 ' FOR THE USER'S OWN PERSONAL USE, THAT THEY MAY 4980 ' NOT BE SOLD TO OTHERS FOR THE USER'S PROFIT, 4990 ' OR, BE GIVEN TO OTHERS TO INJURE LEGITIMATE SALES. 5000 ' FURTHER, THE TERM RELATING ALGORITHMS AND WORD 5010 ' SETS IN THINKER2 ARE COPYRIGHT AND AS SUCH MAY 5020 ' NOT BE INCORPORATED VERBATIM OR IN CLOSE FAC- 5030 ' SIMILE IN ANY PROGRAM FOR SALE OR IN ANY GEN- 5040 ' ERIC PROGRAM USED FOR THE SAME PURPOSES AS 5050 ' THINKER2 THAT IT MIGHT BE SHARED WITHOUT ADD- 5060 ' ITIONAL PURCHASES OF THINKER2. TO DISCUSS 507010 LF=27:GOSUB 10000 20 PRINT"THIS PROGRAM CACULATES PHOTOGRAPHIC EXPOSURE" 30 PRINT 40 PRINT"WHEN USING A BELLOWS EXTENSION" 50 PRINT:PRINT:PRINT: PRINT:PRINT:PRINT 60 PRINT"THE FOLLOWING FORMULA IS USED:" 65 PRINT:PRINT:PRINT"EXPOSURE 2 2" 70 PRINT"INCREASE = (BELLOWS LENGTH) / (FOCAL LENGTH)" 75 PRINT:PRINT"NOTE: ENTER LENGTHS IN LIKE UNITS" 80 PRINT:PRINT:PRINT:PRINT:PRINT 100 INPUT"FOCAL LENGTH OF LENS";FL 105 PRINT:PRINT 110 INPUT" LENGTH OF BELLOWS";LB 112 PRINT:PRINT 114 INPUT"F STOP WITHOUT BELLOWS";F 115 PRINT:PRINT:PRINT:PRINT 120 PRINT"LENS FOCAL LENGTH = ";FL 130 PRINT" BELLOWS LENGTH = ";LB 135 PRINT:PRINT 140 EI=(LB)^2/(FL)^2 150 PRINT"EXPOSURE MUST BE INCREASED BY A FACTOR OF ";EI 151 N1=(EI^.5) 152 PRINT:PRINT"OPEN LENS "N1" F STOPS" 155 PRINT:PRINT 600 PRINT 610 PRINT"F STOP WITHOUT BELLOWS = ";F 620 PRINT 632 N=F/N1 635 PRINT" F STOP WITH BELLOWS = ";N 640 PRINT:PRINT 700 LF=5:GOSUB 10000 800 PRINT"IF IT IS NOT POSSIBLE TO OPEN THE LENS, " 810 PRINT"MULTIPLY TIME BY";EI 900 PRINT:PRINT"HIT ANY KEY TO DO AGAIN / HIT E TO END" 1000 D$=INPUT$(1) 1010 IF D$="E" OR D$="e" GOTO 9999 ELSE PRINT: GOTO 100 9999 STOP 10000 X=1 10005 X=X+1 10010 IF X > LF THEN RETURN 10020 PRINT:GOTO 10005 $="e" GOTO 9999 ELSE PRINT: GOTO 100 9999 STOP 10000 X=1 10005 X=X+1 10010 IF X > LF THEN RETN LIKE UNITS" 80 PRINT:PRINT:PRINT:PRINT:PRINT 100 INPUT"FOCAL LENGTH OF LENS";FL 105 PRINT:PRINT 110 INPUT" LENGTH OF BELLOWS";LB 112 PRINT:PRINT 114 INPUT"F STOP WITHOUT BELLOWS";F 115 PRINT:PRINT:PRINT:PRINT 120 PRINT"LENS FOCAL LENGTH = ";FL 130 PRINT" BELLOWS LENGTH = ";LB 135 PRINT:PRINT 140 EI=(LB)^2/(FL)^2 150 PRINT"EXPOSURE MUST BE INCREASED BY A FACTOR OF ";EI 151 N1=(EI^.5) 152 PRINT:PRINT"OPEN LENS "N1" F STOPS" 155 PRINT:PRINT 600 PRINT 610 PRINT"F STOP WITHOUT BELLOWS = ";F 620 PRINT 632 N=F/N1 635 PRINT" F STOP WITH BELLOWS = ";N 640 PRINT:PRINT 700 LF=5:GOSUB 10000 800 PRINT"IF IT IS NOT 10 REM * Revised for TeleVideo TPC-I/Osborne Executive by Ronleigh Dale, 20 REM * Box 70252, Reno Nevada 89570, 702/825-6060, v1.2, 7/21/86 30 PRINT CHR$(26) 40 PRINT"BIORYTHM CHART":PRINT:PRINT:PRINT 50 REM 60 DIM A(12),D(12),N(25) 70 FOR I=1 TO 12:READ A(I):NEXT I 80 FOR I=1 TO 12:READ D(I):NEXT I 90 DATA 0,31,59,90,120,151,181,212,243,273,304,334 100 DATA 31,28,31,30,31,30,31,31,30,31,30,31 110 RESTORE 120 P=6.28318 130 PRINT"ENTER TODAY'S DATE...(MM,DD,YYYY) ";:INPUT M,D,Y 140 M2=M:D2=D:Y3=Y 150 Y5=Y 160 GOSUB 250 170 Z=T 180 PRINT"ENTER BIRTHDATE......(MM,DD,YYYY) ";:INPUT M,D,Y 190 M1=M:D1=D:Y2=Y 200 GOSUB 250 210 V=T-Z 220 V=ABS(V) 230 PRINT"ENTER NAME........................";:INPUT W$ 240 GOTO 470 250 Y1=Y-1800 260 Q1=INT(Y1/4) 270 Q2=INT(Q1/25) 280 Q3=INT((Y1+200)/400) 290 K=0 300 IF Q1*4=Y1 THEN 320 310 GOTO 370 320 IF Q2*100=Y1 THEN 340 330 GOTO 370 340 IF Q3*400-200=Y1 THEN 360 350 GOTO 370 360 K=1 370 T=365*Y1+Q1-Q2+Q3-K 380 T=T+A(M)+D-1 390 IF M<3 THEN 410  400 T=T+K 410 IF INT(Y1/4)=Y1/4 THEN 430 420 GOTO 450 430 IF M>2 THEN 450 440 T=T-1 450 J=T-7*INT(T/7) 460 RETURN 470 N(X)=0 480 PRINT"HOW MANY DAYS TO GRAPH............"; 490 INPUT D9:PRINT:PRINT 500 PRINT CHR$(26) 510 LPRINT"YOUR PERSONAL BIORYTHM CHART FOR TODAY":LPRINT 520 LPRINT "THE MEDIAN LINE (0) IS YOUR CRITICAL POINT 530 LPRINT "THE HIGH PERIODS (+) ARE WHEN YOU ARE LIKELY TO BE AT YOUR BEST 540 LPRINT "THE LOW PERIODS (-) ARE WHEN YOU ARE LIKELY TO BE AT YOUR WORST 550 LPRINT:LPRINT 560 LPRINT "GRAPHIC SYMBOLS:":LPRINT 570 LPRINT "I: MEDIAN LINE 580 LPRINT "P: PHYSICAL CYCLE 590 LPRINT "S: SENSITIVITY CYCLE 600 LPRINT "C: COGNATIVE CYCLE 610 PRINT CHR$(26) 620 LPRINT:LPRINT 630 LPRINT "YOUR BIRTHDAY IS ";:A9=M1:GOSUB 1390:LPRINT D1;Y2 640 LPRINT "WHICH WAS A ";:B9=J+1:GOSUB 1510 650 LPRINT ;V;"DAYS OR";INT((V/365)*100)/100;"YEARS AGO" 660 LPRINT 670 LPRINT "HERE IS THE GRAPH FOR ";W$ 680 LPRINT "STARTING AT  ";:A9=M2:GOSUB 1390:LPRINT D2;Y3 690 LPRINT "ENDING AT "; 700 M9=M2:D8=D2+D9-1:Y9=Y3 710 IF M9>12 THEN 730 720 GOTO 740 730 M9=1:Y9=Y9+1 740 IF M9=2 THEN 760 750 GOTO 790 760 IF INT(Y9/4)=Y9/4 THEN 780 770 GOTO 790 780 K=1 790 IF D8>D(M9)+K THEN 810 800 GOTO 830 810 D8=D8-(D(M9)+K):M9=M9+1:K=0 820 GOTO 710 830 A9=M9:GOSUB 1390:LPRINT D8;Y9 840 PRINT CHR$(26) 850 LPRINT:LPRINT:LPRINT TAB(7);"DATE";TAB(25);"(-)";TAB(43);"(0)"; 860 LPRINT TAB(61);"(+)" 870 LPRINT 880 J1=V+J:J1=J1-7*INT(J1/7):D2=D2-1:J1=J1-1 890 V=V-1:K=0 900 FOR I=1 TO D9:V=V+1:D2=D2+1:J1=J1+1 910 IF M2=2 THEN 930 920 GOTO 960 930 IF INT(Y3/4)=Y3/4 THEN 950 940 GOTO 960 950 K=1 960 IF D2>D(M2)+K THEN 980 970 GOTO 990 980 M2=M2+1:D2=1 990 IF J1<7 THEN 1010 1000 J1=0 1010 IF M2>12 THEN 1030 1020 GOTO 1040 1030 LPRINT:LPRINT TAB(33);"** HAPPY NEW YEAR **":LPRINT:M2=1:Y3=Y3+1 1040 IF J1+1=3 THEN 1060 1050 GOTO 1100 1060 IF D2=13 THEN 1080 1070 GOTO 1100 1080 LPRINT:LPRINT TAB(22); 1090 LPRINT "** BEWARE ! ! FRIDAY THE THIRTEENTH **":LPRINT 1100 IF M2=M1 THEN 1120 1110 GOTO 1150 1120 IF D2=D1 THEN 1140 1130 GOTO 1150 1140 LPRINT:LPRINT TAB(33);"** HAPPY";ABS(Y3-Y2);"BIRTHDAY **":LPRINT 1150 E9=J1+1:GOSUB 1700 1160 LPRINT " ";:C9=M2:GOSUB 1580:LPRINT D2;Y3; 1170 X=23:GOSUB 1770:P5=X:X=28 1180 GOSUB 1770:S5=X:X=33:GOSUB 1770 1190 C5=X 1200 N=0:FOR L=19 TO 65:LPRINT TAB(L); 1210 IF P5=L THEN 1230 1220 GOTO 1240 1230 LPRINT "P";:GOTO 1330 1240 IF S5=L THEN 1260 1250 GOTO 1270 1260 LPRINT "S";:GOTO 1330 1270 IF C5=L THEN 1290 1280 GOTO 1300 1290 LPRINT "C";:GOTO 1330 1300 IF 44=L THEN 1320 1310 GOTO 1360 1320 LPRINT "I"; 1330 N=N+1:IF N=4 THEN 1350 1340 GOTO 1360 1350 L=100 1360 NEXT L:LPRINT:NEXT I 1370 LPRINT CHR$(12) 1380 GOTO 1790 1390 IF A9=1 THEN LPRINT "JANUARY";:RETURN 1400 IF A9=2 THEN LPRINT "FEBRUARY";:RETURN 1410 IF A9=3 THEN LPRINT "MARCH";:RETURN 1420 IF A9=4 THEN LPRINT "APRIL";:RETURN 1430 IF A9=5 THEN LPRINT "MAY";:RETURN 1440 IF A9=6 THEN LPRINT "JUNE";:RETURN 1450 IF A9=7 THEN LPRINT "JULY";:RETURN 1460 IF A9=8 THEN LPRINT "AUGUST";:RETURN 1470 IF A9=9 THEN LPRINT "SEPTEMBER";:RETURN 1480 IF A9=10 THEN LPRINT "OCTOBER";:RETURN 1490 IF A9=11 THEN LPRINT "NOVEMBER";:RETURN 1500 LPRINT "DECEMBER";:RETURN 1510 IF B9=1 THEN LPRINT "WEDNESDAY";:RETURN 1520 IF B9=2 THEN LPRINT "THURSDAY";:RETURN 1530 IF B9=3 THEN LPRINT "FRIDAY";:RETURN 1540 IF B9=4 THEN LPRINT "SATURDAY";:RETURN 1550 IF B9=5 THEN LPRINT "SUNDAY";:RETURN 1560 IF B9=6 THEN LPRINT "MONDAY";:RETURN 1570 LPRINT "TUESDAY";:RETURN 1580 IF C9=1 THEN LPRINT "JAN";:RETURN 1590 IF C9=2 THEN LPRINT "FEB";:RETURN 1600 IF C9=3 THEN LPRINT "MAR";:RETURN 1610 IF C9=4 THEN LPRINT "APR";:RETURN 1620 IF C9=5 THEN LPRINT "MAY";:RETURN 1630 IF C9=6 THEN LPRINT "JUN";:RETURN 1640 IF C9=7 THEN LPRINT "JUL";:RETURN 1650 IF C9=8 THEN LPRINT "AUG";:RETURN 1660 IF C9=9 THEN LPRINT "SEP";:RETURN 1670 IF C9=10 THEN LPRINT "OCT";:RETURN 1680 IF C9=11 THEN LPRINT "NOV";:RETURN 1690 LPRINT "DEC";:RETURN 1700 IF E9=1 THEN LPRINT "WED";:RETURN 1710 IF E9=2 THEN LPRINT "THU";:RETURN 1720 IF E9=3 THEN LPRINT "FRI";:RETURN 1730 IF E9=4 THEN LPRINT "SAT";:RETURN 1740 IF E9=5 THEN LPRINT "SUN";:RETURN 1750 IF E9=6 THEN LPRINT "MON";:RETURN 1760 LPRINT "TUE";:RETURN 1770 X=INT(SIN((V/X-INT(V/X))*P)*18)+44 1780 RETURN 1790 END  IF E9=6 THEN LPRINT "MON";:RETURN 1760 LPRIRIDAY";:RETURN 1540 IF B9=4 THEN LPRINT "SATURDAY";:RETURN 1550 IF B9=5 THEN LPRINT "SUNDAY";:RETURN 1560 IF B9=6 THEN LPRINT "MONDAY";:RETURN 1570 LPRINT "TUESDAY";:RETURN 1580 IF C9=1 THEN LPRINT "JAN";:RETURN 1590 IF C9=2 THEN LPRINT "FEB";:RETURN 1600 IF C9=3 THEN LPRINT "MAR";:RETURN 1610 IF C9=4 THEN LPRINT "APR";:RETURN 1620 IF C9=5 THEN LPRINT "MAY";:RETURN 1630 IF C9=6 THEN LPRINT "JUN";:RETURN 1640 IF C9=7 THEN LPRINT "JUL";:RETURN 1650 IF C9=8 THEN LPRINT "AUG";:RETURN 1660 IF C9=9 THEN LPRINT "SEP";:RETURN 1670 IF C9=10 THEN LPRINT "OCT";:RETURN 1680 IF C9=11 THEN LPRINT "NOV";:RETURN 1690 LPRINT "DEC";:R10 REM **** LOVE **** 20 REM 30 REM FROM THE BOOK `BASIC COMPUTER GAMES', WORKMAN PUBLISHING, NY. 40 REM BOOK EDITED BY DAVID H. AHL OF CREATIVE COMPUTING. 50 REM 60 REM MODIFIED AND SUBMITTED TO FOG BY KENNETH L. LUNDERS. 70 REM 100 DEFINT A-Z 110 PRINT CHR$(26);TAB(38);CHR$(27)+"j"; 120 PRINT " LOVE ";CHR$(27);+"k" 130 PRINT CHR$(27)+"k" 140 PRINT:PRINT:PRINT:PRINT TAB(12); 150 PRINT "A TRIBUTE TO THE GREAT AMERICAN ARTIST, ROBERT INDIANA." 160 PRINT 170 PRINT "HIS MOST FAMILIAR WORK WILL BE REPRODUCED WITH A MESSAGE OF YOUR"; 180 PRINT " CHOICE UP TO" 190 PRINT "60 CHARACTERS. IF YOU CAN'T THINK OF ANYTHING SPECIAL, JUST TYPE"; 200 PRINT " THE WORD" 210 PRINT TAB(38);"LOVE." 220 PRINT:INPUT "YOUR MESSAGE, PLEASE";A$:L=LEN(A$) 230 DIM T$(120) 240 FOR I=1 TO 6:PRINT:NEXT 250 PRINT "WOULD YOU LIKE YOUR MESSAGE PRINTED BY YOUR PRINTER?"; 260 Z$=INKEY$:IF Z$="" THEN 260 270 IF Z$="Y" OR Z$="y" THEN P=1:GOTO 300 280 IF Z$="N" OR Z$="n" THEN P=2:GOTO 350 290 GOTO 260 300 PRINT CHR$(26):INPUT "HOW MANY COLUMNS DOES YOUR PRINTER PRINT";W 310 SPACE=INT((W-60)/2):REM ***** `96' FOR 12 PITCH WITH 80 COL PRINTER ***** 320 PRINT:PRINT "TURN ON YOUR PRINTER, THEN PRESS ANY KEY TO CONTINUE." 330 Z$=INKEY$:IF Z$="" THEN 330 340 LPRINT CHR$(28);:REM ***** SETS OKIDATA 92 TO 12 PITCH ***** 350 PRINT CHR$(26); 360 FOR J=0 TO INT(60/L) 370 FOR I=1 TO L 380 T$(J*L+I)=MID$(A$,I,1) 390 NEXT I,J 400 C=0 410 A1=1:PP=1:C=C+1:IF C=37 THEN 910 420 PRINT 430 IF P=2 THEN 450 440 LPRINT 450 FOR I=1 TO 10:PRINT " ";:NEXT I 460 IF P=2 THEN 480 470 FOR I=1 TO SPACE:LPRINT " ";:NEXT I 480 READ A:A1=A1+A:IF PP=1 THEN 520 490 FOR I=1 TO A:PRINT " ";:NEXT I:PP=1 500 IF P=2 THEN 550 510 FOR I=1 TO A:LPRINT " ";:NEXT I:GOTO 550 520 FOR I=A1-A TO A1-1:PRINT T$(I);:NEXT I:PP=0 530 IF P=2 THEN 550 540 FOR I=A1-A TO A1-1:LPRINT T$(I);:NEXT I 550 IF A1>60 THEN 410 560 GOTO 480 570 DATA 60,1,12,27,10,10 580 DATA 3,8,27,15,7 590 DATA 4,6,26,9,3,7,5 600 DATA 4,6,24,9,7,6,4  610 DATA 4,6,23,9,10,5,3 620 DATA 4,6,22,9,11,5,3 630 DATA 4,6,21,9,12,5,3 640 DATA 4,6,21,8,12,6,3 650 DATA 4,6,21,7,12,7,3 660 DATA 4,6,21,6,12,8,3 670 DATA 4,6,19,1,1,5,12,9,3 680 DATA 4,6,18,2,1,5,11,9,4 690 DATA 4,6,18,2,1,5,10,9,5 700 DATA 4,6,17,3,2,6,7,9,6 710 DATA 4,6,15,5,3,7,3,9,8 720 DATA 3,7,13,7,5,15,10 730 DATA 1,29,10,8,12 740 DATA 1,14,5,39,1 750 DATA 4,7,12,5,7,7,10,7,1 760 DATA 5,6,13,3,9,6,13,4,1 770 DATA 6,6,11,3,10,6,15,2,1 780 DATA 6,6,11,3,10,6,16,1,1 790 DATA 7,6,9,3,11,6,18 800 DATA 7,6,9,3,11,6,7,1,10 810 DATA 8,6,7,3,12,6,6,2,10 820 DATA 8,6,7,3,12,14,10 830 DATA 9,6,5,3,13,6,6,2,10 840 DATA 9,6,5,3,13,6,7,1,10 850 DATA 10,6,3,3,14,6,18 860 DATA 10,6,3,3,14,6,16,1,1 870 DATA 11,6,1,3,15,6,15,2,1 880 DATA 11,10,15,6,13,4,1 890 DATA 12,8,15,7,10,7,1 900 DATA 12,8,12,27,1,60 910 IF P=2 THEN 940 920 FOR I=1 TO 29:LPRINT:NEXT 930 LPRINT CHR$(24) 940 PRINT 950 END 10,7,1 900 DATA 12,8,12,27,1,60 910 IF P=2 THEN 940 920 FOR I=1 TO 29:LPRINT:NEXT 9310 REM * CASINO by Ronleigh Dale, Box 70252, Reno Nevada 89570, 702/825-6060 20 REM * v1.1, 7/30/86 30 PRINT CHR$(26):PRINT CHR$(27)+CHR$(46)+CHR$(48) 35 CLEAR 40 GOSUB 7300 50 PRINT"CASINO 60 PRINT:PRINT:PRINT:PRINT 70 PRINT"MENU 80 PRINT:PRINT 90 PRINT"1. BACCARAT 100 PRINT"2. BLACKJACK 110 PRINT"3. ROULETTE 120 PRINT"0. EXIT 130 PRINT 140 INPUT X 150 IF X=0 THEN 7320 160 ON X GOTO 170,1860,5130 170 REM * Revised for TeleVideo TPC-I/Osborne Executive by Ronleigh Dale, 180 REM * Box 70252, Reno Nevada 89570, 702/825-6060, v1.2, 7/21/86 190 REM * This program has been modified for improved display and to 200 REM * conform to Nevada casino rules. This program was originally 210 REM * found on FOG/GAM.003 220 PRINT CHR$(26) 230 PRINT CHR$(27)+CHR$(46)+CHR$(48) 240 PRINT CHR$(26) 250 PRINT "CASINO BACCARAT - CHEMIN DE FER" 260 FOR Z=1 TO 20:PRINT:NEXT Z 270 PRINT "DO YOU WISH TO SEE THE INSTRUCTIONS (Y/N)"; 280 INPUT Q$ 290 IF Q$<>"y" THEN IF Q$<>"Y" THEN 420 300 PRINT CHR$(26) 310 PRINT " BACCARAT IS A VERY POPULAR GAME IN LAS" 320 PRINT"VEGAS. THE PLAYER AND BANKER EACH RECEIVE" 330 PRINT"TWO CARDS FROM A 'SHOE' CONTAINING 8 DECKS" 340 PRINT"OF CARDS. ALL CARD COMBINATIONS TOTALING" 350 PRINT"TEN ARE NOT COUNTED. THE ONE THAT ENDS UP" 360 PRINT"CLOSER TO NINE WINS. THE STAKES ARE HIGH;" 370 PRINT"ALL OF THE PLAYERS START WITH TEN THOUSAND 380 PRINT"DOLLARS. YOU CAN BET ON THE BANKER OR THE" 390 PRINT"PLAYER. A THIRD CARD IS GIVEN ONLY UNDER" 400 PRINT"CERTAIN CONDITIONS, AS YOU WILL SEE. LET" 410 PRINT"US BEGIN. GOOD LUCK!!" 420 PRINT:RANDOMIZE:PRINT 430 DIM M(20),F1(20),F(20),B$(13),V(13),G$(20) 440 DIM Z(9,10),Q(4,13) 450 FOR X=3 TO 6 460 FOR Y=1 TO 10 470 READ Z(X,Y) 480 NEXT Y,X 490 FOR S1=1 TO 10:READ W(S1):NEXT 500 FOR S1=1 TO 4:READ A$(S1):NEXT 510 FOR S1=1 TO 13:READ B$(S1):NEXT 520 FOR S1=1 TO 13:READ V(S1):NEXT 530 PRINT 540 PRINT 550 PRINT"HOW MANY PLAYERS"; 560 INPUT P1 570 FOR J=1 TO P1 580 PRINT"PLAYER'S NAME"J; 590 INPUT G$(J) 600 M(J)=10000 610 NEXT J 620 FOR S1=1 TO 4 630 FOR S2=1 TO 13 640 Q(S1,S2)=0 650 NEXT S2 660 NEXT S1 670 FOR J=1 TO 6 680 C=INT(1+RND(1)*4) 690 D=INT(1+RND(1)*13) 700 Q(C,D)=Q(C,D)+1 710 IF Q(C,D)>=32 THEN 680 720 B(J)=V(D) 730 C$(J)=B$(D)+" "+A$(C) 740 NEXT J 750 W1=2 760 FOR J=1 TO P1 770 IF M(J)<1 THEN 890 780 PRINT 790 PRINT G$(J)" HAS $"M(J)" BET"; 800 INPUT F(J) 810 IF F(J)>1000 THEN PRINT"TABLE LIMIT IS $1000":GOTO 790 820 IF F(J)>M(J) THEN 790 830 IF F(J)<>INT(F(J)) THEN 790 840 IF F(J)<1 THEN 10 850 PRINT" ON (1)BANKER (2)PLAYER"; 860 INPUT F1(J) 870 IF F1(J)>=1000 THEN 790 880 IF (F1(J)-1)*(F1(J)-2)<>0 THEN 850 890 NEXT J 900 J=0 910 T1=B(1)+B(2) 920 T2=B(3)+B(4) 930 PRINT 940 PRINT CHR$(26) 950 GOSUB 7310 960 PRINT"PLAYER 970 PRINT C$(1) 980 PRINT C$(2) 990 PRINT 1000 PRINT TAB(21)"BANKER" 1010 PRINT TAB(21) C$(3) 1020 PRINT TAB(21) C$(4) 1030 REM * DETERMINE IF HAND TOTAL IS GREATER THAN 9 1040 REM * IF HAND TOTAL IS GREATER THAN 9 THEN SUBTRACT 10 1050 IF T1<10 THEN 1070 1060 T1=T1-10:IF T1=8 AND T2=8 THEN 1410:IF T1=8 OR T1=9 THEN 1420 1070 IF T2<10 THEN 1090 1080 T2=T2-10:IF T1=9 AND T2=9 THEN 1410:IF T2=8 OR T2=9 THEN 1420 1090 REM * 1110 IF T1=8 OR T1=9 THEN 1420:REM * ROUTINE FOR A 'NATURAL' 1120 IF T2=8 OR T2=9 THEN 1420 1130 IF W(T1+1)=0 THEN 1200 1140 PRINT:PRINT"PLAYER DRAWS" 1150 PRINT C$(5) 1160 T1=T1+B(5) 1170 IF T1<10 THEN 1220 1180 T1=T1-10 1190 GOTO 1220 1200 PRINT:PRINT"PLAYER STANDS" 1210 J=11 1220 PRINT"PLAYER TOTAL "T1 1230 PRINT 1240 IF T2<3 THEN 1300 1250 IF T2>6 THEN 1360 1260 IF J<>11 THEN 1290 1270 IF T2=6 THEN 1360 1280 GOTO 1300 1290 IF Z(T2,B(5)+1)=0 THEN 1360 1300 PRINT TAB(21)"BANKER DRAWS" 1310 PRINT TAB(21) C$(6) 1320 T2=T2+B(6) 1330 IF T2<10 THEN 1350 1340 T2=T2-10 1350 GOTO 1370 1360 PRINT TAB(21)"BANKER STANDS" 1370 PRINT TAB(21)"BANKER TOTAL "T2 1380 IF T2<>T1 THEN 1470 1390 PRINT:PRINT"A TIE 1400 GOTO 1630 1410 REM * ROUTINE FOR A 'NATURAL' 1420 PRINT:PRINT"PLAYER TOTAL "T1 1430 PRINT"BANKER TOTAL "T2 1450 PRINT:PRINT"A NATURAL" 1460 PRINT CHR$(7) 1465 IF T1=8 AND T2=8 THEN 1390 1466 IF T1=9 AND T2=9 THEN 1390 1470 IF T20 THEN 1690 1650 NEXT J 1660 REM * END OF GAME ROUTINE WHEN GAMBLERS HAVE LOST ALL THEIR MONEY 1670 PRINT:PRINT"THANK YOU FOR YOUR MONEY AND "; 1680 GOTO 1830 1690 LINE INPUT Z$:PRINT CHR$(26) 1700 PRINT 1710 PRINT"-------- NEW HAND --------" 1720 PRINT 1730 FOR X=1 TO 4 1740 FOR Y=1 TO 13 1750 IF Q(X,Y)<>8 THEN 670 1760 NEXT Y,X 1770 GOTO 620 1780 DATA 1,1,1,1,1,1,1,1,0,1,0,0,1,1,1,1,1,1,0,0 1790 DATA 0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0 1800 DATA 1,1,1,1,1,1,0,0,0,0,SPADES,HEARTS,DIAMONDS 1810 DATA CLUBS,A ,2 ,3 ,4 ,5 ,6 ,7 ,8 1820 DATA 9 ,10 ,J ,Q ,K ,1,2,3,4,5,6,7,8,9,0,0,0,0 1830 PRINT"THANK YOU FOR PLAYING" 1840 LINE INPUT Z$ 1850 GOTO 10 1860 PRINT CHR$(26) 1870 GOSUB 7300 1880 REM * Revised for TeleVideo TPC-I/Osborne Executive by Ronleigh Dale, 1890 REM * Box 70252, Reno Nevada 89570, 702/825-6060, v1.4, 7/21/86 1895 CLEAR 1900 PRINT CHR$(27)+CHR$(46)+CHR$(48) 1910 PRINT CHR$(26) 1920 PRINT"CASINO BLACKJACK 1930 FOR Z=1 TO 20:PRINT:NEXT Z:RANDOMIZE:PRINT 1940 DIM P(15,12),Q(15),C(52),D(52),T(8),S(7),B(15) 1950 DIM R(15) 1960 REM--P(I,J) IS THE JTH CARD IN HAND I, Q(I) IS TOTAL OF HAND I 1970 REM--C IS THE DECK BEING DEALT FROM, D IS THE DISCARD PILE, 1980 REM--T(I) IS THE TOTAL FOR PLAYER I, S(I) IS THE TOTAL THIS HAND 70 REM--FOR PLAYER I, B(I) IS THE BET FOR HAND I 1990 REM--R(I) IS THE LENGTH OF P(I,*) 2000 GOTO 3060 2010 REM--SUBROUTINE TO GET A CARD, RESULT IS PUT IN X. 2020 IF C<51 THEN 2140 2030 PRINT "RESHUFFLING" 2040 FOR D=D TO 1 STEP -1 2050 C=C-1 2060 C(C)=D(D) 2070 NEXT D 2080 FOR C1=52 TO C STEP -1 2090 C2=INT(RND(1)*(C1-C+1))+C 2100 C3=C(C2) 2110 C(C2)=C(C1) 2120 C(C1)=C3 2130 NEXT C1 2140 X=C(C) 2150 C=C+1 2160 RETURN 2170 REM--SUBROUTINE TO EVALUATE HAND I. TOTAL IS PUT INTO 2180 REM--Q(I). TOTALS HAVE THE FOLLOWING MEANING: 2190 REM-- 2-10...HARD 2-10 2200 REM-- 11-21..SOFT 11-21 2210 REM-- 22-32..HARD 11-21 2220 REM-- 33+....BUSTED 2230 Q=0 2240 FOR Q2=1 TO R(I) 2250 X=P(I,Q2) 2260 GOSUB 2300 2270 NEXT Q2 2280 Q(I)=Q 2290 RETURN 2300 REM--SUBROUTINE TO ADD CARD X TO TOTAL Q. 2310 X1=X: IF X1>10 THEN X1=10: REM SAME AS X1=10 MIN X 2320 Q1=Q+X1 2330 IF Q>11 THEN 2390 2340 IF X>1 THEN 2370 2350 Q=Q+11 2360 RETURN 2370 Q=Q1-11*(Q1>=11) 2380 RETURN 2390 Q=Q1-(Q<=21 AND Q1>21) 2400 IF Q<33 THEN 2420 2410 Q=-1  2420 RETURN 2430 REM--CARD PRINTING SUBROUTINE 2440 REM D$ DEFINED ELSEWHERE 2450 PRINT MID$(D$,3*X-2,3); 2460 PRINT " "; 2470 RETURN 2480 REM--ALTERNATIVE PRINTING ROUTINE 2490 PRINT " ";MID$(D$,3*X-1,2); 2500 PRINT " "; 2510 RETURN 2520 REM--SUBROUTINE TO PLAY OUT A HAND. 2530 REM--NO SPLITTING OR BLACKJACKS ALLOWED. 2540 H1=5 2550 GOSUB 2970 2560 H1=3 2570 ON H GOTO 2670,2650 2580 GOSUB 2010 2590 B(I)=B(I)*2 2600 PRINT "RECEIVED "; 2610 GOSUB 2430 2620 GOSUB 2740 2630 IF Q>0 THEN GOSUB 2910 2640 RETURN 2650 GOSUB 2930 2660 RETURN 2670 GOSUB 2010 2680 PRINT "RECEIVED "; 2690 GOSUB 2430 2700 GOSUB 2740 2710 IF Q<0 THEN 2660 2730 GOTO 2550 2740 REM--SUBROUTINE TO ADD A CARD TO ROW I 2750 R(I)=R(I)+1 2760 P(I,R(I))=X 2770 Q=Q(I) 2780 GOSUB 2300 2790 Q(I)=Q 2800 IF Q>=0 THEN 2830 2810 PRINT"....BUSTED" 2820 GOSUB 2840 2830 RETURN 2840 REM--SUBROUTINE TO DISCARD ROW I 2850 IF R(I)<>0 THEN 2870 2860 RETURN 2870 D=D+1 2880 D(D)=P(I,R(I)) 2890 R(I)=R(I)-1 2900 GOTO 2850 2910 REM--PRINTS TOTAL OF HAND I 2920 PRINT 2930 AA=Q(I):GOSUB 5090 2940 PRINT "TOTAL IS";AA 2950 RETURN 2960 REM--SUBROUTINE TO READ REPLY 2970 REM--I$ DEFINED ELSEWHERE 2980 INPUT H$:H$=LEFT$(H$,1) 2990 FOR H=1 TO H1 STEP 2 3000 IF H$=MID$(I$,H,1) THEN 3040 3010 NEXT H 3020 PRINT "TYPE ";MID$(I$,1,H1-1);" OR ";MID$(I$,H1,2);" PLEASE"; 3030 GOTO 2980 3040 H=(H+1)/2 3050 RETURN 3060 REM--PROGRAM STARTS HERE 3070 REM--INITIALIZE 3080 D$=" A 2 3 4 5 6 7 8 9 10 J Q K" 3090 I$="H,S,D,/, 3100 FOR I=1 TO 13 3110 FOR J=4*I-3 TO 4*I 3120 D(J)=I 3130 NEXT J 3140 NEXT I 3150 D=52 3160 C=53 3170 INPUT"DO YOU WISH TO SEE THE INSTRUCTIONS";H$ 3180 PRINT 3190 IF LEFT$(H$,1)="N" THEN 3340 3200 PRINT CHR$(26):GOSUB 7300 3210 PRINT "THIS IS THE GAME OF 21. AS MANY AS 7 PLAYERS MAY PLAY THE" 3220 PRINT "GAME. ON EACH DEAL, BETS WILL BE ASKED FOR, AND THE" 3230 PRINT "PLAYERS' BETS SHOULD BE TYPED IN. THE CARDS WILL THEN BE" 3240 PRINT "DEALT, AND EACH PLAYER IN TURN PLAYS THEIR HAND. THE" 3250 PRINT "FIRST RESPONSE SHOULD BE EITHER 'D', INDICATING THAT THE" 3260 PRINT "PLAYER IS DOUBLING DOWN, 'S', INDICATING THAT PLAYER IS" 3270 PRINT "STANDING, 'H', INDICATING PLAYER WANTS ANOTHER CARD, OR '/'" 3280 PRINT "INDICATING PLAYER WANTS TO SPLIT CARDS. AFTER THE" 3290 PRINT "INITIAL RESPONSE, ALL FURTHER RESPONSES SHOULD BE 'S' OR" 3300 PRINT "'H', UNLESS THE CARDS WERE SPLIT, IN WHICH CASE DOUBLING" 3310 PRINT "DOWN IS AGAIN PERMITTED. IN ORDER TO COLLECT FOR" 3320 PRINT "BLACKJACK, THE INITIAL RESPONSE SHOULD BE 'S'." 3330 PRINT :PRINT 3340 PRINT "NUMBER OF PLAYERS"; 3350 INPUT N 3360 IF N<1 OR N>7 OR N>INT(N) THEN 3340 3370 FOR I=1 TO 8:T(I)=10000:NEXT I 3380 D1=N+1 3390 IF 2*D1+C>=52 THEN GOSUB 2030 3400 IF C=2 THEN C=C-1 3410 FOR I=1 TO N:Z(I)=0:NEXT I 3420 FOR I=1 TO 15:B(I)=0:NEXT I 3430 FOR I=1 TO 15:Q(I)=0:NEXT I 3440 FOR I=1 TO 7:S(I)=0:NEXT I 3450 FOR I=1 TO 15:R(I)=0:NEXT I 3460 PRINT CHR$(26) 3470 PRINT"BETS":PRINT 3480 FOR I=1 TO N:PRINT "N";I;:INPUT Z(I):NEXT I:PRINT 3490 FOR I=1 TO N 3500 IF Z(I)<=0 THEN CLEAR:GOTO 10 3510 IF Z(I)>1000 THEN 5120 3520 B(I)=Z(I) 3530 NEXT I 3540 PRINT "PLAYER"; 3550 FOR I=1 TO N 3560 PRINT I;" "; 3570 NEXT I 3580 PRINT "DEALER" 3590 FOR J=1 TO 2 3600 PRINT TAB(5); 3610 FOR I=1 TO D1 3620 GOSUB 2010 3630 P(I,J)=X 3640 IF J=1 OR I<=N THEN GOSUB 2480 3650 NEXT I 3660 PRINT 3670 NEXT J 3680 FOR I=1 TO D1 3690 R(I)=2 3700 NEXT I 3710 REM--TEST FOR INSURANCE 3720 IF P(D1,1)>1 THEN 3840 3730 PRINT "ANY INSURANCE"; 3740 INPUT H$ 3750 IF LEFT$(H$,1)<>"Y" THEN 3840 3760 PRINT "INSURANCE BETS" 3770 FOR I=1 TO N:PRINT "#";I;:INPUT Z(I): NEXT I 3780 FOR I=1 TO N 3790 IF Z(I)<0 OR Z(I)>B(I)/2 THEN 3760 3800 NEXT I 3810 FOR I=1 TO N 3820 S(I)=Z(I)*(3*(-(P(D1,2)>=10))-1) 3830 NEXT I 3840 REM--TEST FOR DEALER BLACKJACK 3850 L1=1:L2=1 3860 IF P(D1,1)=1 AND P(D1,2)>9 THEN L1=0:L2=0 3870 IF P(D1,2)=1 AND P(D1,1)>9 THEN L1=0:L2=0 3880 IF L1<>0 OR L2<>0 THEN 3950 3890 PRINT:PRINT "DEALER HAS A";MID$(D$,3*P(D1,2)-2,3);" IN THE HOLE "; 3900 PRINT "FOR BLACKJACK" 3910 FOR I=1 TO D1 3920 GOSUB 2170 3930 NEXT I 3940 GOTO 4820 3950 REM--NO DEALER BLACKJACK 3960 IF P(D1,1)>1 AND P(D1,1)<10 THEN 3980 3970 PRINT "NO DEALER BLACKJACK." 3980 REM--NOW PLAY THE HANDS 3990 FOR I=1 TO N 4000 PRINT "PLAYER";I; 4010 H1=7 4020 GOSUB 2970 4030 ON H GOTO 4180,4040,4140,4230 4040 REM PLAYER WANTS TO STAND 4050 GOSUB 2170 4060 IF Q(I)<>21 THEN 4120 4070 PRINT "BLACKJACK" 4080 S(I)=S(I)+1.5*B(I) 4090 B(I)=0 4100 GOSUB 2840 4110 GOTO 4550 4120 GOSUB 2930 4130 GOTO 4550 4140 REM PLAYER WANTS TO DOUBLE DOWN 4150 GOSUB 2170 4160 GOSUB 2580 4170 GOTO 4550 4180 REM PLAYER WANTS TO HIT 4190 GOSUB 2170 4200 H1=3 4210 GOSUB 2670 4220 GOTO 4550 4230 REM PLAYER WANTS TO SPLIT 4240 L1=P(I,1):IF P(I,1)>10 THEN L1=10 4250 L2=P(I,2):IF P(I,2)>10 THEN L2=10 4260 IF L1=L2 THEN 4290 4270 PRINT "SPLITTING NOT ALLOWED." 4280 GOTO 4000 4290 REM PLAY OUT SPLIT 4300 I1=I+D1 4310 R(I1)=2 4320 P(I1,1)=P(I,2) 4330 B(I+D1)=B(I) 4340 GOSUB 2010 4350 PRINT:PRINT "FIRST HAND RECEIVES "; 4360 GOSUB 2430 4370 P(I,2)=X 4380 GOSUB 2170 4390 PRINT 4400 GOSUB 2010 4410 PRINT "SECOND HAND RECEIVES "; 4420 I=I1 4430 GOSUB 2430 4440 P(I,2)=X 4450 GOSUB 2170 4460 PRINT 4470 I=I1-D1 4480 IF P(I,1)=1 THEN 4550 4490 REM NOW PLAY THE TWO HANDS 4500 PRINT:PRINT "HAND";1-(I>D1); 4510 GOSUB 2520 4520 I=I+D1 4530 IF I=I1 THEN 4500 4540 I=I1-D1 4550 NEXT I 4560 GOSUB 2170 4570 REM TEST FOR PLAYING DEALER'S HAND 4580 FOR I=1 TO N 4590 IF R(I)>0 OR R(I+D1)>0 THEN 4660 4600 NEXT I 4610 PRINT:PRINT "DEALER HAD "; 4620 X=P(D1,2) 4630 GOSUB 2430 4640 PRINT " CONCEALED 4650 GOTO 4820 4660 PRINT:PRINT "DEALER HAS ";MID$(D$,3*P(D1,2)-2,3);" CONCEALED "; 4670 I=D1 4680 AA=Q(I):GOSUB 5090 4690 PRINT "FOR A TOTAL OF";AA 4700 IF AA>16 THEN 4810 4710 PRINT "DRAWS"; 4720 GOSUB 2010 4730 GOSUB 2480 4740 GOSUB 2740 4750 AA=Q:GOSUB 5090 4760 IF Q>0 AND AA<17 THEN 4720 4770 Q(I)=Q-(Q<0)/2 4780 IF Q<0 THEN 4820 4790 AA=Q:GOSUB 5090 4800 PRINT "---TOTAL IS";AA 4810 PRINT 4820 REM TALLY THE RESULT 4830 REM 4840 Z$="LOSES PUSHES WINS " 4850 FOR I=1 TO N 4860 AA=Q(I):GOSUB 5090 4870 AB=Q(I+D1):GOSUB 5100 4880 AC=Q(D1):GOSUB 5110 4890 S(I)=S(I)+B(I)*SGN(AA-AC)+B(I+D1)*SGN(AB-AC) 4900 B(I+D1)=0 4910 PRINT "PLAYER";I; 4920 PRINT MID$(Z$,SGN(S(I))*6+7,6);""; 4930 IF S(I)<>0 THEN 4960 4940 PRINT " "; 4950 GOTO 4970 4960 PRINT ABS(S(I)); 4970 T(I)=T(I)+S(I) 4980 PRINT " TOTAL";T(I) 4990 GOSUB 2840 5000 T(D1)=T(D1)-S(I) 5010 I=I+D1 5020 GOSUB 2840 5030 I=I-D1 5040 NEXT I 5050 PRINT:PRINT "DEALER'S TOTAL";T(D1) 5060 GOSUB 2840 5070 LINE INPUT Z$ 5080 GOTO 3390 5090 AA=AA+11*(AA>=22):RETURN 5100 AB=AB+11*(AB>=22):RETURN 5110 AC=AC+11*(AC>=22):RETURN 5120 GOTO 10 5130 PRINT CHR$(26) 5140 PRINT CHR$(27)+CHR$(46)+CHR$(48) 5150 REM * Revised for TeleVideo TPC-I/Osborne Executive by Ronleigh Dale, 5160 REM * Box 70252, Reno Nevada 89570, 702/825-6060, v1.3, 08/09/86 5170 PRINT CHR$(26) 5180 DIM G(10) 5190 LET P=10000 5200 PRINT "CASINO ROULETTE (EUROPEAN) 5210 FOR Z=1 TO 19:PRINT:NEXT Z 5230 PRINT:INPUT "DO YOU WISH TO SEE A DESCRIPTION OF THE RULES (Y/N)";A$ 5240 PRINT 5250 IF A$="N" THEN PRINT CHR$(26):GOSUB 7300:GOTO 5390 5260 PRINT CHR$(26):GOSUB 7300 5270 PRINT"YOU BEGIN WITH $10,000 AND MAY BET AS MUCH AS YOU LIKE UNTIL" 5280 PRINT"YOU HAVE EITHER WON $20,000 OR YOU GO BROKE, WHICH EVER" 5290 PRINT"COMES FIRST. THE BETTING IS DONE ON A BOARD OR CLOTH" 5300 PRINT"SUCH AS IS SHOWN BELOW. HALF THE NUMBERS ARE RED AND HALF 5310 PRINT"ARE BLACK EXCEPT ZERO WHICH IS GREEN. BETTING COMBINATIONS 5320 PRINT"ARE AS SHOWN ON THE FOLLOWING MENU. PRESS RETURN TO CONTINUE." 5330 PRINT 5340 PRINT"WHEN ASKED TO PLACE YOUR BETS, FIRST ENTER THE NUMBER FOR THE 5350 PRINT"TYPE OF BET FROM THE MENU, A COMMA, AND THE AMOUNT OF THE BET. 5360 PRINT"TO LEAVE THE GAME WITH YOUR CURRENT WINNINGS (OR LOSSES), 5370 PRINT"ENTER THE NUMBERS 0,0" 5380 PRINT 5390 RANDOMIZE 5400 PRINT CHR$(26):GOSUB 7300 5410 PRINT"MENU":PRINT:PRINT 5420 PRINT "***************************************************** 5425 PRINT 5430 PRINT" BET BANK PAYS 5440 PRINT 5450 PRINT " 1. RED/BLACK 1 TO 1 5460 PRINT " 2. ODD/EVEN 1 TO 1 5470 PRINT " 3. LOW/HIGH 1 TO 1 5480 PRINT " 4. COLUMN 1/2/3 2 TO 1 5490 PRINT " 5. DOZEN (LOW/MIDDLE/HIGH) 2 TO 1 5500 PRINT " 6. ONE NUMBERS (0-36) 35 TO 1 5510 PRINT " 7. TWO NUMBERS (ADJACENT) 17 TO 1 5520 PRINT " 8. THREE NUMBERS (ACROSS) 11 TO 1 5530 PRINT " 9. FOUR NUMBERS (SQUARE) 8 TO 1 5540 PRINT "10. SIX NUMBERS (RECTANGLE) 5 TO 1 5550 PRINT 5560 PRINT "***************************************************** 5570 PRINT 5580 LINE INPUT Z$ 5590 GOSUB 7350 5600 GOSUB 7300 5610 PRINT "THE ROULETTE LAYOUT:" 5620 PRINT 5630 PRINT " *************************" 5640 PRINT " * 0 *" 5650 PRINT " * 1R 2B 3R *" 5660 PRINT " * 4B 5R 6B *" 5670 PRINT " * 7R 8B 9R *" 5680 PRINT " * 10B 11B 12R *" 5690 PRINT " * 13B 14R 15B *" 5700 PRINT " * 16R 17B 18R *" 5710 PRINT " * 19R 20B 21R *" 5720 PRINT " * 22B 23R 24B *" 5730 PRINT " * 25R 26B 27R *" 5740 PRINT " * 28B 29B 30R *" 5750 PRINT " * 31B 32R 33B *" 5760 PRINT " * 34R 35B 36R *" 5770 PRINT " *************************" 5780 PRINT 5790 LET X=0 5800 LET Y=INT(37*RND(1)) 5810 INPUT "FAITES VOS JEUX, MESSIEURS (PLACE YOUR BETS, GENTLEMEN) ",C,B 5820 PRINT 5830 IF C=0 THEN CLEAR:GOSUB 7350:GOTO 10 5840 IF C=2 THEN 6050 5850 IF C=3 THEN 6160 5860 IF C=4 THEN 6270 5870 IF C=5 THEN 6470 5880 IF C=6 THEN 6620 5890 IF C=7 THEN 6690 5900 IF C=8 THEN 6770 5910 IF C=9 THEN 6870 5920 IF C=10 THEN 6970 5930 LET E=1 5950 GOSUB 7300 5960 INPUT"WHICH CHOICE (R)ED OR (B)LACK";Z$:GOSUB 7350 5970 IF Y=0 THEN 7160 5980 IF Y<19 THEN 6020 5990 GOSUB 7300:PRINT "THE COLOR IS BLACK" 6000 IF Z$="B" THEN 7070 6010 GOTO 7160 6020 GOSUB 7300:PRINT "THE COLOR IS RED" 6030 IF Z$="R" THEN 7070 6040 GOTO 7160 6050 LET E=1 6070 GOSUB 7300 6080 INPUT"WHICH CHOICE (O)DD OR (E)VEN";D$:GOSUB 7350 6090 GOSUB 7400 6100 LET D1=Y/2 6110 IF D1=INT(Y/2) THEN 6140 6120 IF D$="O" THEN 7070 6130 GOTO 7160 6140 IF D$="E" THEN 7070 6150 GOTO 7160 6160 LET E=1 6180 GOSUB 7300 6190 INPUT"WHICH CHOICE (L)OW OR (H)IGH";H$:GOSUB 7350 6200 GOSUB 7400 6210 IF Y=0 THEN 7160 6220 IF Y>18 THEN 6250 6230 IF H$="L" THEN 7070  6240 GOTO 7160 6250 IF H$="H" THEN 7070 6260 GOTO 7160 6270 LET E=2 6290 GOSUB 7300 6300 INPUT"WHICH COLUMN 1, 2, 3";F:GOSUB 7350 6310 GOSUB 7400 6320 IF Y=0 THEN 7160 6330 IF F=2 THEN 6390 6340 IF F=3 THEN 6430 6350 FOR F1=1 TO 34 STEP 3 6360 IF F1=Y THEN 7070 6370 NEXT F1 6380 GOTO 7160 6390 FOR F1=2 TO 35 STEP 3 6400 IF F1=Y THEN 7070 6410 NEXT F1 6420 GOTO 7160 6430 FOR F1=3 TO 36 STEP 3 6440 IF F1=Y THEN 7070 6450 NEXT F1 6460 GOTO 7160 6470 LET E=2 6490 GOSUB 7300 6500 INPUT"WHICH CHOICE (L)OW, (M)IDDLE, (H)IGH";I$ 6506 GOSUB 7350 6510 GOSUB 7400 6520 IF Y=0 THEN 7160 6530 IF I$="M" THEN 6570 6540 IF I$="H" THEN 6600 6550 IF Y<13 THEN 7070 6560 GOTO 7160 6570 IF Y>25 THEN 7160 6580 IF Y<13 THEN 7160 6590 GOTO 7070 6600 IF Y>24 THEN 7070 6610 GOTO 7160 6620 LET E=36 6640 GOSUB 7300 6650 INPUT"WHICH SINGLE NUMBER";G:GOSUB 7350 6660 GOSUB 7400 6670 IF G=Y THEN 7070 6680 GOTO 7160 6690 LET E=17 6710 GOSUB 7300 6720 INPUT"WHICH TWO ADJACENT NUMBERS";G1,G2:GOSUB 7350 6730 GOSUB 7400 6740 IF G1=Y THEN 7070 6750 IF G2=Y THEN 7070 6760 GOTO 7160 6770 LET E=11 6790 GOSUB 7300 6800 INPUT"WHICH THREE NUMBERS (ACROSS)";G1,G2,G3:GOSUB 7300 6820 GOSUB 7350:GOSUB 7400 6830 IF G1=Y THEN 7070 6840 IF G2=Y THEN 7070 6850 IF G3=Y THEN 7070 6860 GOTO 7160 6870 LET E=8 6890 GOSUB 7300 6900 INPUT"WHICH FOUR NUMBERS (SQUARE)";G(1),G(2),G(3),G(4) 6905 GOSUB 7350 6920 GOSUB 7400 6930 FOR I=1 TO 4 6940 IF G(I)=Y THEN 7070 6950 NEXT I 6960 GOTO 7160 6970 PRINT 6980 GOSUB 7300 6990 INPUT"WHICH SIX NUMBERS (RECTANGLE)"; 7000 INPUT G(1),G(2),G(3),G(4),G(5),G(6):GOSUB 7350 7020 GOSUB 7400 7030 FOR I=1 TO 6 7040 IF G(I)=Y THEN 7070 7050 NEXT I 7060 GOTO 7160 7070 GOSUB 7300:PRINT:PRINT "$$$$$ WINNER $$$$$" 7080 PRINT:PRINT:PRINT "YOU WIN $"E*B 7090 LET P=P+(E*B) 7100 PRINT 7110 PRINT "YOUR PURSE NOW TOTALS $"P 7115 PRINT:PRINT:INPUT"VIEW MENU";M$:IF M$="Y" THEN 5400 7130 PRINT CHR$(26):GOSUB 7300 7140 IF P>20000! THEN 7240 7150 GOTO 5610 7160 GOSUB 7300:PRINT:PRINT "****** LOSER *****" 7170 LET P=P-B 7180 PRINT:PRINT:PRINT "YOUR PURSE NOW TOTALS $"P 7190 PRINT:PRINT:INPUT"VIEW MENU";M$:IF M$="Y" THEN 5400 7200 PRINT CHR$(26):GOSUB 7300 7210 IF P>0 THEN 5610 7230 PRINT 7240 PRINT "END OF GAME, YOU BROKE THE HOUSE" 7250 GOTO 7280 7260 PRINT 7270 PRINT "YOU'RE BROKE !!!!" 7280 LINE INPUT Z$ 7290 GOTO 10 7300 FOR Z=1 TO 1000:NEXT Z:RETURN 7310 FOR Z=1 TO 500:NEXT Z:RETURN 7320 PRINT CHR$(27)+CHR$(46)+CHR$(50):PRINT CHR$(26):END 7350 PRINT CHR$(26):RETURN 7400 GOSUB 7300:PRINT"THE NUMBER IS ";Y:RETURN INT CHR$(27)+CHR$(46)+CHR$(50):PRINT CHR$(26):END 7350 PRINT CHR$(26):RETURN 7400 GOSUB 7300:PRIXT I 7060 GOTO 7160 7070 GOSUB 7300:PRINT:PRINT "$$$$$ WINNER $$$$$" 7080 PRINT:PRINT:PRINT "YOU WIN $"E*B 7090 LET P=P+(E*B) 7100 PRINT 7110 PRINT "YOUR PURSE NOW TOTALS $"P 7115 PRINT:PRINT:INPUT"VIEW MENU";M$:IF M$="Y" THEN 5400 7130 P1 REM Revised for Osborne 1 by Jim Woolley, FOG Librarian, 7/82 2 REM Further revised for 52 column screen and 3 REM prompting enhancements by Carl Tenning 10/84 5 RANDOMIZE 10 PRINT CHR$(26) 20 DIM G$(10), G(10) 30 G$(0)="THE NUMBER IS BLACK" 35 G$(1)="THE NUMBER IS RED" 40 G$(2)="AND THE NUMBER IS" 45 G$(3)="THE NUMBER COMES UP" 50 G$(4)="THE MAGIC NUMBER IS" 55 G$(5)="THE BALL COMES TO REST ON" 60 G$(6)="AND THE NUMBER COMES UP ---------------" 65 G$(7)="AND THIS TIME IT'S --------------------" 70 G$(8)="AND THE NUMBER IS ---------------------" 75 G$(9)="THE MARBLE FALLS AND BOUNCES ON -------" 80 G$(10)="WELL THE NUMBER CAME UP --------------" 100 LET P=5000 110 PRINT "THIS PROGRAM IS DESIGNED TO SIMULATE THE FRENCH" 120 PRINT "GAMBLING GAME OF ROULETTE." 130 PRINT:PRINT:PRINT 150 PRINT "DO YOU WISH TO SEE A DESCRIPTION OF THE RULES" 160 INPUT A$ 170 IF LEFT$(A$,1)<>"Y" AND LEFT$(A$,1)<>"y" THEN 500 180 PRINT "YOU BEGIN WITH $5,000 AND MAY BET AS MUCH AS YOU" 190 PRINT "LIKE UNTIL YOU HAVE EITHER WON $100,000 OR YOU" 200 PRINT "GO BROKE, WHICHEVER COMES FIRST. THE BETTING IS" 210 PRINT "DONE ON A BOARD OR CLOTH SUCH AS APPEARS BELOW." 220 PRINT "HALF THE NUMBERS ARE RED AND HALF ARE BLACK EXCEPT" 230 PRINT "ZERO WHICH IS COLORLESS. BETTING COMBINATIONS AND" 240 PRINT "ODDS ARE AS FOLLOWS:" 250 PRINT 260 GOSUB 2000 270 PRINT 280 PRINT "Hit any key to continue"; : NN$=INPUT$(1) 400 PRINT CHR$(26) 410 PRINT 420 PRINT "WHEN ASKED TO PLACE YOUR BET, DO SO BY FIRST" 430 PRINT "INPUTING THE AMOUNT OF THE BET (SMALLEST BET =$1.00)" 440 PRINT "AND THE NUMBER OF THE TYPE OF BET DESIRED FROM THE" 450 PRINT "TABLE ABOVE. HERE IS THE ROULETTE LAYOUT:" 460 PRINT 470 GOSUB 3000 480 PRINT 490 PRINT "Hit any key to continue" : NN$=INPUT$(1) 500 PRINT CHR$(26) 620 PRINT "THE ROULETTE WHEEL IS SPINNING-ROUND AND ROUND IT" 630 PRINT "GOES, WHERE SHE STOPS NOBODY KNOWS." 640 LET X=0 650 GOSUB 2000 : LET Y=INT(37*RND(1)) 655 PRINT 660 PRINT "FAITES VOS JEUX MESSIEUR (PLACE YOUR BETS GENTLEMEN)" 670 INPUT "(amount, type)";B,C 680 ON C GOTO 770,890,990,1090,1280,1430,1490,1560,1640,1730 690 PRINT CHR$(26) 700 GOTO 620 770 LET E=1 780 PRINT "WHICH COLOR DO YOU WANT TO BET ON" 790 INPUT "(R or B)";Z$ 800 IF Y=0 THEN 1880 810 IF Y<19 THEN 860 820 NN=0 830 IF LEFT$(Z$,1)="B" OR LEFT$(Z$,1)="b" THEN 1820 840 GOTO 1880 850 PRINT 860 NN=1 870 IF LEFT$(Z$,1)="R" OR LEFT$(Z$,1)="r" THEN 1820 880 GOTO 1880 890 LET E=1 900 PRINT "WHICH DO WANT TO BET ON, ODD OR EVEN" 910 INPUT "(O or E)";D$ 920 NN=2 930 LET D1=Y/2 940 IF D1=INT(Y/2) THEN 970 950 IF LEFT$(D$,1)="O" OR LEFT$(D$,1)="o" THEN 1820 960 GOTO 1880 970 IF LEFT$(D$,1)="E" OR LEFT$(D$,1)="e" THEN 1820 980 GOTO 1880 990 LET E=1 1000 PRINT "DO YOU BET HIGH (19-36) OR LOW (1-18)" 1010 INPUT "(H or L)";H$ 1020 NN=3 1030 IF Y=0 THEN 1880 1040 IF Y>18 THEN 1070 1050 IF LEFT$(H$,1)="L" OR LEFT$(H$,1)="l" THEN 1820 1060 GOTO 1880 1070 IF LEFT$(H$,1)="H" OR LEFT$(H$,1)="h" THEN 1820 1080 GOTO 1880 1090 LET E=2 1100 PRINT "WHICH COLUMN DO YOU CHOOSE, 1,2,OR 3" 1105 GOSUB 3000 1110 INPUT "(1,2, or 3)";F 1120 NN=4 1130 IF Y=0 THEN 1880 1140 IF F=2 THEN 1200 1150 IF F=3 THEN 1240 1160 FOR F1=1 TO 34 STEP 3 1170 IF F1=Y THEN 1820 1180 NEXT F1 1190 GOTO 1880 1200 FOR F1=2 TO 35 STEP 3 1210 IF F1=Y THEN 1820 1220 NEXT F1 1230 GOTO 1880 1240 FOR F1=3 TO 36 STEP 3 1250 IF F1=Y THEN 1820 1260 NEXT F1 1270 GOTO 1880 1280 LET E=2 1290 PRINT "WHICH DOZEN NUMBERS DO YOU CHOOSE, LOW (1-12)," 1300 PRINT "MIDDLE (13-24), OR HIGH (25-36)" 1310 INPUT "(L,M, or H)";I$ 1315 NN=5 1320 IF LEFT$(I$,1)="M" OR LEFT$(I$,1)="m" THEN 1380 1330 IF LEFT$(I$,1)="H" OR LEFT$(I$,1)="h" THEN 1410 1340 IF LEFT$(I$,1)<>"L" AND LEFT$(I$,1)<>"l" THEN 1290 1350 IF Y=0 THEN 1880 1360 IF Y<13 THEN 1820 1370 GOTO 1880 1380 IF Y>25 THEN 1880 1390 IF Y<13 THEN 1880 1400 GOTO 1820 1410 IF Y>24 THEN 1820 1420 GOTO 1880 1430 LET E=36 1440 PRINT "OH OH, A LONG SHOT....PICK YOUR NUMBER." 1450 INPUT G 1460 NN=6 1470 IF G=Y THEN 1820 1480 GOTO 1880 1490 LET E=17 1500 PRINT "WHAT TWO ADJACENT NUMBERS ARE YOU BETTING ON?" 1505 GOSUB 3000 1510 INPUT "(Input 2 numbers)";G1,G2 1520 NN=7 1530 IF G1=Y THEN 1820 1540 IF G2=Y THEN 1820 1550 GOTO 1880 1560 LET E=11 1570 PRINT "WHAT THREE NUMBERS(RUNNING ACCROSS THE BOARD)" 1571 PRINT "DO YOU WANT?" 1575 GOSUB 3000 1580 INPUT "Input 3 numbers";G1,G2,G3 1590 NN=8 1600 IF G1=Y THEN 1820 1610 IF G2=Y THEN 1820 1620 IF G3=Y THEN 1820 1630 GOTO 1880 1640 LET E=8 1650 PRINT "WHAT FOUR NUMBERS( IN A SQUARE ) DO YOU WANT?" 1655 GOSUB 3000 1660 INPUT "Input 4 numbers";G(1),G(2),G(3),G(4) 1670 NN=9 1690 FOR I=1 TO 4 1700 IF G(I)=Y THEN 1820 1710 NEXT I 1720 GOTO 1880 1730 LET E=5 1740 PRINT "WHAT SIX NUMBERS (IN A RECTANGLE ON THE BOARD)" 1750 PRINT "DO YOU WANT TO BET ON?" 1755 GOSUB 3000 1760 INPUT "Input 6 numbers";G(1),G(2),G(3),G(4),G(5),G(6) 1770 NN=10 1780 FOR I=1 TO 6 1790 IF G(I)=Y THEN 1820 1800 NEXT I 1810 GOTO 1880 1820 PRINT CHR$(26);G$(NN);Y 1825 PRINT " *****A WINNER*****" 1830 PRINT "YOU WIN $"E*B 1840 LET P=P+(E*B) 1850 PRINT "YOUR PURSE NOW TOTALS $"P 1860 IF P>100000! THEN 1930 1870 GOTO 620 1880 PRINT CHR$(26);G$(NN);Y 1885 PRINT " *****YOU LOSE*****" 1890 LET P=P-B 1900 PRINT "YOUR PURSE NOW TOTALS $"P 1910 IF P>0 THEN 620 1920 IF P=<0 THEN 1950 1930 PRINT "END OF GAME. YOU BROKE THE HOUSE." 1940 GOTO 1960 1950 PRINT "##### YOU'RE BROKE!!!!!" 1960 END 2000 PRINT "****************************************************" 2010 PRINT " BET BANK PAYS" 2020 PRINT " ------------- -------------------------" 2030 PRINT " 1.RED OR BLACK EVEN MONEY (AMT OF BET)" 2040 PRINT " 2.EVEN OR ODD EVEN MONEY" 2050 PRINT " 3.HIGH OR LOW EVEN MONEY" 2060 PRINT " 4.COLUMN 1,2,OR 3 2 TO 1" 2070 PRINT " 5.DOZEN (LOW,MIDDLE,HIGH) 2 TO 1" 2080 PRINT " 6.SINGLE NUMBERS 0-36 36 TO 1" 2090 PRINT " 7.TWO NUMBERS(ADJACENT) 17 TO 1" 2100 PRINT " 8.THREE NUMBERS ACROSS 11 TO 1" 2110 PRINT " 9.FOUR NUMBERS (SQUARE) 8 TO 1" 2120 PRINT "10.SIX NUMBERS(RECTANGLE) 5 TO 1" 2130 PRINT "****************************************************" 2140 RETURN 3000 PRINT " ***********************" 3010 PRINT " * 0 *" 3020 PRINT " * 1 2 3 *" 3030 PRINT " * 4 5 6 *" 3040 PRINT " * 7 8 9 *" 3050 PRINT " * 10 11 12 *" 3060 PRINT " * 13 14 15 *" 3070 PRINT " * 16 17 18 *" 3080 PRINT " * 19 20 21 *" 3090 PRINT " * 22 23 24 *" 3100 PRINT " * 25 26 27 *" 3110 PRINT " * 28 29 30 *"  3120 PRINT " * 31 32 33 *" 3130 PRINT " * 34 35 36 *" 3140 PRINT " ***********************" 3150 PRINT " ***********************" 3160 RETURN  3140 PRINT " BERS(RECTANGLE) 5 TO 1" 2130 PRINT "****************************************************" 2140 RETURN 3000 PRINT " ***********************" 3010 PRINT " * 0 *" 3020 PRINT " * 1 2 3 *" 3030 PRINT " * 4 5 6 *" 3040 PRINT " * 7 8 9 *" 3050 PRINT " * 10 11 12 *" 3060 PRINT " * 13 14 15 *" 3070 PRINT " * 16 17 18 *" 3080 PRINT " * 19 20 21 *" 3090 PRINT " * 22 23 24 *" 3100 PRINT " * 25 26 27 *" 3110 PRINT " * 28 29 30 *" 10 REM "BANDIT" 20 REM 30 GOSUB 9000 35 DIM R(3) 40 PRINT "WANT A DESCRIPTION (Y OR N)"; 50 INPUT Q$ 60 IF Q$ = "N" THEN 120 70 IF Q$ = "Y" THEN 110 80 PRINT "PLEASE ANSWER: Y FOR YES" 90 PRINT " OR N FOR NO..." 100 GOTO 40 110 GOSUB 1000 120 LET T = 0 130 PRINT 140 PRINT "BET"; 150 INPUT Q 160 IF Q > 0 THEN 190 170 PRINT "YOU HAVE TO BET TO PLAY!" 180 GOTO 140 190 IF Q < 201 THEN 220 200 PRINT "BE REASONABLE NOW!" 210 GOTO 130 220 IF Q > .99 THEN 240 230 PRINT "CHEAPSKATE" 240 GOSUB 3000 250 GOSUB 4000 260 LET T = T + Q 270 IF T < 0 THEN 340 280 IF T > 0 THEN 370 290 PRINT "READY TO QUIT (Y OR N)"; 300 INPUT Q$ 310 IF Q$ = "N" THEN 130 320 PRINT "*** SO LONG, CHICKEN ***" 330 END 340 PRINT "YOU OWE ME $"ABS(T) 350 IF ABS(T) <200 THEN 130 360 GOTO 290 370 PRINT "YOU'VE WON: $"T 380 GOTO 350 1000 PRINT "THIS GAME SIMULATES A" 1010 PRINT " ONE-ARMED BANDIT (THAT'S" 1020 PRINT " A SLOT MACHINE, YOU KNOW)." 1030 PRINT "BET ON EACH PULL - UP TO $200" 1040 PRINT "3 JACKPOTS PAYS 20 X THE BET" 1050 PRINT "3 BARS PAYS 10 X THE BET" 1060 PRINT "3 OF ANYTHING ELSE PAYS 5 TIMES" 1070 PRINT "2 OF THE OTHERS PAYS DOUBLE" 1080 RETURN 3000 REM "FETCH THE FRUITS" 3010 DATA JACKPOT, BELL, PLUM 3020 DATA ORANGE, LEMON, GRAPE 3030 DATA CHERRY, APPLE, MELON 3040 DATA BAR 3050 FOR I = 1 TO 3 3060 LET R = INT(10*RND(1))+1 3070 LET R(I) = R 3080 FOR J = 1 TO R 3090 READ X$ 3100 NEXT J 3110 RESTORE 3120 PRINT TAB(I*10-10) X$; 3130 NEXT I 3140 PRINT 3150 RETURN 4000 REM "FIGURE WIN AMOUNT" 4010 IF R(1)+R(2)+R(3) = 3 THEN 4100 4020 IF R(1)+R(2)+R(3) = 30 THEN 4080 4030 FOR I = 1 TO 2 4040 IF R(3) <> R(I) THEN 4120 4050 NEXT I 4060 LET Q = 5*Q 4070 RETURN 4080 LET Q = 10*Q 4090 RETURN 4100 LET Q = 20*Q 4110 RETURN 4120 IF R(3) = R(1) THEN 4170 4130 IF R(3) = R(2) THEN 4170 4140 IF R(1) = R(2) THEN 4170 4150 LET Q = 0-Q 4160 RETURN 4170 LET Q = Q*2 4180 RETURN 9000 REM "RANDOM NUMBER ROUTINE" 9010 LET Z = RND(1) 9020 RETURN  LET Q = 0-Q 4160 RE10 REM DRACULA copyright Elizabeth N. Arkush, 1130 E. First St., Bloomington IN 15 REM created 12/84 (at age 13) 20 REM may be freely copied for non-commercial purposes 25 DIM RD$(22), C$(10), O$(42), E(22,4), OL(42), OC(42), OD$(42), V$(12), INV(42) 30 BL=3: R=22 35 GOTO 100:REM READ FILE 40 GOTO 200:REM INTRODUCTION 45 GOTO 400:REM NEW ROOM 50 GOTO 500:REM INPUT 55 GOTO 600:REM COMMANDS 60 GOTO 700:REM PARSING 65 GOTO 900:REM ACTION 70 GOTO 50 100 REM ***** READ DATA ***** 105 FOR I=1 TO 22 110 READ RD$(I), E(I,1), E(I,2), E(I,3), E(I,4):NEXT 115 FOR I=1 TO 42 120 READ O$(I), OD$(I), OL(I), OC(I) 125 NEXT 130 FOR I=1 TO 10 135 READ C$(I) 140 NEXT 145 FOR I=1 TO 12 150 READ V$(I) 155 NEXT 160 GOTO 40 200 PRINT CHR$(26):REM ****** INTRODUCTION ****** 210 PRINT:PRINT:PRINT" D R A C U L A ' S M A N S I O N " 220 PRINT:PRINT:PRINT TAB(50) "by Elizabeth Arkush, 12/84": PRINT 230 PRINT:PRINT" In this game you will be inside of Dracula's mansion, searching for":PRINT" the fabled Blood Ruby. There are only two things that can kill Dracula:":PRINT" a silver bullet, and a wooden stake through the heart." 240 PRINT:PRINT" Things to keep in mind while playing:":PRINT:PRINT" * There are many secret doors in the mansion.":PRINT" * Dracula leaves a trail of bloody footprints wherever he walks." 250 PRINT" * The command 'LOOK' and the name of an item will give you a closer":PRINT" look at almost anything.":PRINT" * Dracula can turn into a bat and can bite necks in that condition." 260 PRINT" * Ordinary bats are harmless." 270 PRINT:PRINT:PRINT" press any key" 280 B$=INKEY$:IF B$="" THEN X=X+1:GOTO 280 290 RANDOMIZE X 300 PRINT CHR$(26):PRINT:PRINT"One-word commands you may use are:":PRINT" NORTH":PRINT" SOUTH":PRINT" EAST":PRINT" WEST":PRINT" UP":PRINT" DOWN" 310 PRINT:PRINT"You will learn some others in the course of the game. You may also use two-word commands consisting of a verb and a noun, like:" 320 PRINT" GET RUBY":PRINT" LOOK RUBY":PRINT" EAT RUBY" 330 PRINT" Yuck!!!" 340 PRINT:PRINT"Please type in CAPITALS ONLY." 350 PRINT:PRINT:PRINT" press any key" 360 B$= INKEY$:IF B$="" THEN GOTO 360 370 GOTO 45 400 REM ***** NEW ROOM ***** 410 IF R=6 THEN GOTO 440 420 IF R=22 AND T=1 THEN GOTO 4000 430 PRINT CHR$(26) 440 PRINT:PRINT RD$(R):T=1 450 D=0:W=0:V=0 460 IF R=8 AND DRACD=0 THEN D=1:GOSUB 4180:REM DRACULA 470 IF R=17 THEN W=1 480 IF R=17 THEN GOSUB 4140: REM DIALOUGUE 490 IF R=5 OR R=19 THEN V=INT(RND*2+1):IF V=1 AND DRACD=0 THEN D=1 495 GOTO 50 500 REM ***** INPUT ***** 510 A$="" 520 PRINT:INPUT" COMMAND";A$ 530 FOR B=1 TO LEN(A$)-1 540 IF MID$(A$,B,1)=" " THEN GOTO 700 550 NEXT 600 REM ***** COMMANDS ***** 610 V$=A$ 620 FOR C=1 TO 10 630 IF A$=C$(C) THEN GOTO 900 640 NEXT 650 PRINT"I don't understand!!":GOTO 500 700 REM ***** PARSING ***** 710 REM VERBS 720 V$=LEFT$(A$,B-1) 730 FOR V=1 TO 12 740 IF V$= V$(V) THEN 780 750 NEXT 760 PRINT"I don't know how to ";V$ 770 V=0:GOTO 500 780 REM NOUNS 790 L=LEN(A$) 800 N$=MID$(A$,B+1,L) 810 FOR N=1 TO 42 820 IF N$<>O$(N) THEN NEXT:GOTO 850 830 IF OL(N)=R THEN GOTO 65 840 IF INV(N)=1 THEN GOTO 65 850 PRINT"No ";N$" around here!" 860 N=0:GOTO 50 900 REM **** ACTION **** 910 IF V$="NORTH" THEN GOTO 1120 920 IF V$="SOUTH" THEN GOTO 1120 930 IF V$="EAST" THEN GOTO 1120 940 IF V$="WEST" THEN GOTO 1120 950 IF V$="UP" THEN GOTO 1460 960 IF V$="DOWN" THEN GOTO 1460 970 IF V$="SHOOT" THEN GOTO 1190 980 IF V$="FLASH" THEN GOTO 1250 990 IF V$="STAB" THEN GOTO 1320 1000 IF V$="GAZE" THEN GOTO 1370 1010 IF V$="LOOK" THEN GOTO 1420 1020 IF V$="GET" THEN GOTO 1490 1030 IF V$="OPEN" THEN GOTO 1560 1040 IF V$="UNLOCK" THEN GOTO 1640 1050 IF V$="STAND" THEN GOTO 1730 1060 IF V$="PUSH"OR V$="PRESS" THEN GOTO 1760 1070 IF V$="EAT" THEN GOTO 1830 1080 IF V$="DROP" THEN GOTO 1860 1090 IF V$="SIT" THEN GOTO 1890 1100 IF V$="WEAR" THEN GOTO 1530 1110 IF V$="LIFT" THEN GOTO 1920 1120 IF V$="NORTH"THEN EN=1 1130 IF V$="SOUTH" THEN EN=2 1140 IF V$="EAST" THEN EN=3 1150 IF V$="WEST" THEN EN=4 1160 IF D=1 OR W=1 THEN GOSUB 1940 1170 IF E(R,EN)=0 THEN PRINT"You can't go that way.":GOTO 500 1180 R=E(R,EN):GOTO 45 1190 IF INV(29)<>1 THEN PRINT"You don't have a gun!!":GOTO 500 1200 IF BL=0 THEN PRINT"You don't have any more bullets!!":GOTO 500 1210 IF D=1 THEN PRINT"YOU KILLED DRACULA!!!!!":DRACD=1:D=0:BL=BL-1:GOTO 500 1220 IF W=1 THEN PRINT"The bullet does not harm the werewolf!":BL=BL-1:GOTO 500 1230 IF V=2 THEN PRINT"You killed the bat...but it wasn't Dracula!!":V=0:BL=BL-1:GOTO 500 1240 PRINT"Good job, you just shot the wall!":BL=BL-1:GOTO 500 1250 IF INV(32) <>1 THEN PRINT"You can't flash without a mirror!":GOTO 500 1260 IF W<>1 THEN GOTO 1290 1270 PRINT"You blinded the werewolf!!! He slowly turns human again because he can't see the full moon. 1280 PRINT"He gets up and thanks you, saying that in return he will show you a secret door to the east which is opened by pushing a switch on the wall.":SW=1:W=0:GOTO 500 1290 IF D=1 THEN PRINT"The only thing that can harm Dracula is a silver bullet or a wooden stake!":GOTO 500 1300 IF V=2 THEN PRINT"You killed the bat...but it wasn't Dracula!":V=0:GOTO 500 1310 PRINT"The only thing you blinded was a beetle on the floor!":GOTO 500 1320 IF INV(36)<>1 THEN PRINT"You can't stab without a stake!":GOTO 500 1330 IF D=1 THEN PRINT"YOU KILLED DRACULA!!!!":DRACD=1:D=0:GOTO 500 1340 IF W=1 THEN PRINT"The stake has no effect on the werewolf!":GOTO 500 1350 IF V=2 THEN PRINT"You killed the bat...but it wasn't Dracula!":V=0:GOTO 500 1360 PRINT"Good job, you just stabbed your big toe!":GOTO 500 1370 IF R<>15 AND INV(34)<>1 THEN PRINT"You can't gaze without a crystal ball!":GOTO 500 1380 CR=INT(RND*3+1) 1390 IF CR=1 THEN PRINT"You see yourself lifting up a blue and green carpet and finding a wooden stake!":GOTO 500 1400 IF CR=2 AND DRACD=0 THEN PRINT"You see Dracula turning into a black bat!":GOTO 500 1410 PRINT"You see a werewolf somewhere in the mansion!":GOTO 500 1420 GOSUB 1940 1430 IF N$="ROOM" THEN GOTO 400 1440 PRINT O$(N);"--";OD$(N) 1450 N=0:GOTO 500 1460 IF R=10 AND V$="UP" THEN R=14:GOTO 400 1470 IF R=14 AND V$="DOWN" THEN R=10:GOTO 400 1480 PRINT"You can't go that way.":GOTO 500 1490 GOSUB 1940 1500 IF OC(N)=0 THEN PRINT"You can't carry that!!":N=0:GOTO 500 1510 INV(N)=1 1520 PRINT"You got the ";N$".":GOTO 1440:REM LOOKS AT POSSESION 1530 IF N$="COAT" THEN PRINT"O.K., you're wearing the coat.":CT=1:GOTO 500 1540 IF N$="BOOTS" THEN PRINT"O.K., you're wearing the boots.":GOTO 500 1550 PRINT"You can't wear that!!":GOTO 500 1560 GOSUB 1940 1570 IF N$="COFFIN" AND ULC=1 THEN PRINT"You opened the coffin and found the Blood Ruby!":OL(23)=8:GOTO 500 1580 IF N$="COFFIN"AND ULC=0 THEN PRINT"It's locked.":GOTO 500 1590 IF N$="BOX" THEN PRINT"You opened the box and found a mirror. Something seems to be written on it!":OL(32)=16:GOTO 500   1600 IF N$="DRAWER" AND R=12 THEN PRINT"You opened the drawer and found a set of doorkeys.":OL(27)=12:GOTO 500 1610 IF N$="CABINET" AND R=13 AND UL<>1 THEN PRINT"It's locked.":GOTO 500 1620 IF N$="CABINET" AND R=13 AND UL=1 THEN PRINT"You opened the cabinet and found a silver gun. It has ";BL" bullets.":OL(29)=13:GOTO 500 1630 PRINT"You can't open that!":GOTO 500 1640 GOSUB 1940 1650 IF INV(27)<>1 THEN PRINT"You can't unlock without a doorkey!":GOTO 500 1660 IF N$="COFFIN" THEN PRINT"You unlocked the coffin.":ULC=1:GOTO 500 1670 IF N$="CABINET" AND R=13 AND UL<>1 THEN PRINT"You unlocked the cabinet.":UL=1:GOTO 500 1680 IF N$="CABINET" AND R=13 AND UL=1 THEN GOTO 1720 1690 IF N$="DRAWER" AND R=12 THEN GOTO 1720 1700 IF N$="COFFIN" OR N$="BOX" THEN GOTO 1720 1710 PRINT"You can't unlock that!":GOTO 500 1720 PRINT"It's already unlocked.":GOTO 500 1730 GOSUB 1940 1740 IF N$="SQUARE" THEN PRINT"You stood on the square and...whoops! Fell down through a trap door into the room below.":R=6:GOTO 400 1750 PRINT"O.K., you stood on the ";N$".":GOTO 500 1760 GOSUB 1940 1770 IF N$="KEY" THEN PRINT"The organ slides aside to reveal a secret door to the north.":E(3,1)=13:GOTO 500 1780 IF N$="BUTTON" THEN PRINT"The bookcase falls back to reveal a tunnel to the east.":E(6,3)=7:GOTO 500 1790 IF N$="SWITCH" THEN PRINT"A hole appears in the east wall.":E(17,3)=18:GOTO 500 1800 IF N$="STATUE" THEN PRINT"A large section of the wall sinks into the ground, revealing a previously hidden room to the south.":E(11,2)=12:GOTO 500 1810 IF N$="RAILING" THEN PRINT"The railing fell off of the balcony and so did you. Too bad.":R=22:DD=1:GOTO 400 1820 PRINT"You pushed the ";N$", but it didn't do you a whole lot of good.":GOTO 500 1830 GOSUB 1940 1840 IF N$="FOOD" THEN PRINT"Sorry, but the food was poisoned. You shouldn't trust other people's food.":R=22:DD=1:GOTO 400 1850 PRINT"It doesn't look very appetizing.":GOTO 500 1860 GOSUB 1940 1870 IF INV(N)=1 THEN PRINT"O.K., you dropped it.":INV(N)=0:OL(N)=R:GOTO 500  1880 PRINT"You didn't have it in the first place.":GOTO 500 1890 GOSUB 1940 1900 IF N$="CHAIR" THEN PRINT"O.K., you sat on the chair.":GOTO 500 1910 PRINT"You can't sit on the ";N$"!":GOTO 500 1920 IF N$="CARPET" THEN PRINT"You lifted up the carpet and found a wooden stake.":OL(36)=18:GOTO 500 1930 PRINT"You can't lift that!":GOTO 500 1940 REM CHECK 1950 IF D<>1 OR DRACD=1 THEN GOTO 1990 1960 IF CT=1 THEN PRINT"Dracula couldn't bite through your coat!!":CT=2:GOTO 500 1970 IF CT=2 THEN PRINT"Dracula made it through your coat this time! Sorry!":R=22:DD=1:GOTO 400 1980 PRINT"Sorry! Dracula just bit you!":R=22:DD=1:GOTO 400 1990 IF W=1 THEN PRINT"Sorry, the werewolf just ate you!!!":R=22:DD=1: GOTO 400 2000 IF R=21 THEN N$="RAILING":GOTO 1810 2010 RETURN 4000 REM **** CONCLUSION **** 4010 FOR I=1 TO 1000:NEXT: PRINT CHR$(26) 4020 IF DD<>1 THEN GOTO 4040 4030 PRINT"Too bad, you didn't make it through Dracula's mansion.":PRINT:PRINT"At the time of your death you owned:":GOTO 4060 4040 PRINT"YOU MADE IT THROUGH DRACULA'S MANSION!": IF INV(23)<>1 THEN PRINT"However, you didn't find the Blood Ruby." 4050 PRINT:PRINT"You own:" 4060 FOR I=1 TO 41 4070 IF INV(I)=1 THEN PRINT O$(I) 4080 NEXT 4090 IF INV(23)=1 THEN PRINT"YOU WON!!!":GOTO 4110 4100 PRINT:PRINT"Sorry, but you didn't win. Oh well, that's life." 4110 PRINT:INPUT"Want to play again";S$ 4120 S$=LEFT$(S$,1):IF S$="Y" THEN RUN 4130 PRINT CHR$(26):END 4140 REM ** WEREWOLF DIALOGUE ** 4150 PRINT"'Hello', he says. 'Listen, I think you'd better not stay in here too long. You see, whenever I see the full moon, I...'" 4160 PRINT"Suddenly, the moon drifts into view from behind a dark cloud. The man takes one look and turns into a wolf!" 4170 RETURN 4180 PRINT"Dracula stands in the middle of the room!" 4190 RETURN 5000 REM ***** DATA ***** 5010 REM ROOMS 5020 DATA "This is the foyer. There is a motheaten rug on the floor and an old chair in a corner. A large oak door to the west leads outside. There are three other doors; one to the north, one to the south, and one to the east.",3,2,4,22 5030 DATA "This is a coat closet. One coat and a pair of boots are inside. There is a door to the north.",1,0,0,0 5040 DATA "This is the dining room. A long table is in the middle of the room. The table is set, and food is heaped on the plates. Bloody footsteps lead to an old organ on the north wall. There is a door to the south and one to the east.",0,1,11,0 5050 DATA "Here you find the sitting room. There is an old rug on the floor and several chairs arranged around the room. Two doors lead north and west.",5,0,0,1 5060 DATA "Here is a large, empty room. One door goes north and one south. A huge, black bat wings its way towards you. It might be Dracula!!",10,4,0,0 5070 DATA "This is the library. There is a bookcase on the east wall. Two large leather chairs sit opposite each other. There are no visible doors anywhere.",0,0,0,0 5080 DATA "Here is a tunnel carved out of rock, going east-west. The walls! are slimy and wet; the floor slippery. The tunnel slants down to the east. It is pitch black.",0,0,8,6 5090 DATA "This is Dracula's cave. It is a huge cavern, lit by flickering candles inserted into nooks in the walls. Tunnels lead east and south. A closed coffin lies in the south end of the cave. ",0,9,0,7 5100 DATA "This is a long tunnel going from an entrance north, and curving to the east where there is another exit. The tunnel is dimly lit by a soft light from the east exit. Stalactites and stalagmites protrude from the floor and ceiling.",8,0,22,0 5110 DATA "Here you find an empty room with an Oriental rug on the floor and a large chandelier hanging from the ceiling. Wide stairs go up to the 2nd story. There is a door to the south and another to the west.",0,5,0,11 5120 DATA "This is the hall. It goes north-south. There are two doors: one to the east, one to the west. The corridor stops short on the south end, where there is a niche containing a little stone statue.",0,0,10,3 5130 DATA "This is a tiny room containing a desk with an unlocked drawer. There is a door to the north.",11,0,0,0 5140 DATA "Here is a smallish room with a chair in one corner and a dresser in another. The dresser cabinet is locked. A corpse lies on the floor; there are two bloody puncture marks on its neck.",0,3,0,0 5150 DATA "Here you find a large, empty room with stairs going down to the 1st story. There is one door to the south and one to the west.",0,15,0,16 5160 DATA "In the middle of this room is a marble pedestal. On the pedestal is a crystal ball. There is a door to the north. If you wish to gaze into the crystal ball, type 'GAZE'.",14,0,0,0 5170 DATA "Here is a large room, bare of all furniture except for a closed box. There are two doors, one east, one south.",0,17,14,0 5180 DATA "Here you find a large room with a window on the south side. There is one door to the north. An ordinary-looking man sits in a chair.",16,0,0,0 5190 DATA "This is the upstairs hall. There is a blue and green carpet on the floor. There are doors north, east, and west.",19,0,21,17 5200 DATA "Here is a small, bare room with one door to the south and one to the north. There is a trail of bloody footprints leading to the north door. Suddenly, a huge black bat awakens and flies toward you. It might be Dracula!",20,18,0,0 5210 DATA "This is a small room with a red square in one corner. Above the square is a sign that says, 'DO NOT STAND ON THIS SQUARE!!!' There is a door to the south.",0,19,0,0 5220 DATA "This is the balcony. There is a door to the west. You'd better not stay too long: the railing looks rotten.",0,0,0,18 5230 DATA "You are outside of Dracula's mansion. Somewhere inside are both the Blood Ruby and Dracula. The mansion is east of you.",0,0,1,0 5240 REM 5250 REM OBJECTS 5260 REM 5270 DATA "RUG","an old, motheaten rug that used to be red.",1,0 5280 DATA "CHAIR","woodenbacked, the cushions have large rips in them.",1,0 5290 DATA "COAT","a fur coat with patches coming out.",2,1 5300 DATA "BOOTS","they are old and brown, with the soles coming out.",2,1 5310 DATA "TABLE","there is a tablecloth on it and the table is set. One table leg is broken.",3,0 5320 DATA "TABLECLOTH","it was once white.",3,0 5330 DATA "PLATE","White, china one, generally in good condition.",3,1 5340 DATA "FORK","sterling silver eating utensil.",3,1 5350 DATA "KNIFE","sharp, sterling silver eating utensil.",3,1 5360 DATA "FOOD","a mouthwatering display of appetizers, entrees, and desserts.",3,1 5370 DATA "CHANDELIER","an elaborate glass structure complete with flickering candles.",10,0 5380 DATA "FOOTPRINTS","the bloody footprints are still wet.",3,0 5390 DATA "ORGAN","there is a key in the middle of the keyboard with a bloody fingerprint on it.",3,0 5400 DATA "KEY","a white organ key that has one bloody fingerprint on it.",3,0 5410 DATA "BOOKCASE","a large wooden bookcase that contains about two hundred horror novels. There is a large, red button on the side of it.",6,0 5420 DATA "BUTTON","a large, red button that looks like it's made out of plastic. There is a bloody fingerprint on it.",6,0 5430 DATA "BOOKS","many of them are about Dracula and have bloody fingerprints on them.",6,1 5440 DATA "STALAGMITES","wet limestone formations protruding from the floor.",7,0 5450 DATA "STALACTITES","dripping limestone formations protruding from the ceiling.",7,0 5460 DATA "CANDLE","white tallow candle set into a nook in the wall.",8,1 5470 DATA "NOOK","a rough hollow carved out of the living rock. There is a flickering candle inside.",8,0 5480 DATA "COFFIN","a closed, and locked, oak coffin.",8,0 5490 DATA "RUBY","large, deep red, of amazing beauty and perfection.",0,1 5500 DATA "NICHE","a small hollow in the wall. It contains a small stone statue.",11,0 5510 DATA "STATUE","made out of marble, and covered with bloody handprints, it has a circle around the base as if it could be pushed down a small way.",11,0 5520 DATA "DESK","an old, wooden desk with one closed drawer.",12,0 5530 DATA "DOORKEYS","a set of "silver and gold doorkeys on a gold keyring.",0,1 5540 DATA "DRESSER","an antique dresser with one locked cabinet.",13,0 5550 DATA "GUN","the gun is made out of silver and has 3 silver bullets inside. The command to shoot the gun is 'SHOOT'.",0,1 5560 DATA "CORPSE","it is a man, perhaps in his late 20's. There are two bloody puncture marks on his neck. The body is still warm.",13,0 5570 DATA "BOX","an old, cardboard carton.",16,1 5580 DATA "MIRROR","a face-down, silver-backed mirror with an inscription on the back: 'WHOEVER DARES LOOK IN THIS MIRROR SHALL NEVER SEE AGAIN!' The command to blind someone with the mirror is 'FLASH'.",0,1 5590 DATA "PEDESTAL","a large, marble pedestal holding a crystal ball.",15,0 5600 DATA "BALL","a perfect sphere of clear glass. The command to look into it is 'GAZE'.",15,1 5610 DATA "CARPET","made of blue and green dyed wool.",18,0 5620 DATA "STAKE","made of wood. The command to kill someone with it is 'STAB'.",0,1 5630 DATA "SQUARE","a red square in one corner.",20,0 5640 DATA "SIGN","the sign is white with letters in blood: ' DO NOT STAND IN THIS SQUARE!! '.",20,0 5650 DATA "RAILING","rotten-looking.",21,0 5660 DATA "DRAWER","it is closed but not locked.",12,0 5670 DATA "CABINET","it is locked.",13,0 5680 DATA "SWITCH","a little switch on the east wall.",17,0 5690 REM 5700 REM COMMANDS 5710 REM 5720 DATA "NORTH" 5730 DATA "SOUTH" 5740 DATA "EAST" 5750 DATA "WEST" 5760 DATA "SHOOT" 5770 DATA "FLASH" 5780 DATA "GAZE" 5790 DATA "STAB" 5800 DATA "UP" 5810 DATA "DOWN" 5820 REM 5830 REM VERBS 5840 REM 5850 DATA "GET" 5860 DATA "LOOK" 5870 DATA "EAT" 5880 DATA "PUSH" 5890 DATA "PRESS" 5900 DATA "STAND" 5910 DATA "DROP" 5920 DATA "OPEN" 5930 DATA "UNLOCK" 5940 DATA "LIFT" 5950 DATA "SIT" 5960 DATA "WEAR" 900 DATA "STAND" 5910 DATA "DROP" 5920 DATA "OPEN" 5930 DATA "UNLOCK" 5940 DATA "LIFT" 5950 DATA "SIT" "STAKE","made of wood. The command to kill someone with it is 'STAB'.",0,1 5630 DATA "SQUARE","a red square in one corner.",210 DIM A(20,50),B(2,6) 20 NL$=CHR$(&HA): CR$=CHR$(&HD) 30 A8=20:A9=50:SPEED=10:N2=10 40 PRINT CHR$(&H1A): RANDOMIZE:PRINT CHR$(&H1A) 50 PRINT 60 PRINT 70 PRINT "YOU ARE THE ('*'). THE ATTACKERS ARE THE ('$')." 80 PRINT "THE MINES ARE THE ('X'). THE TANK IS ('&')." 90 PRINT 100 PRINT"THE TANK CAN HIT A MINE WITHOUT BEING DAMAGED" 110 PRINT"THE TANK CAN DESTROY YOU OR THE ATTACKERS" 120 PRINT"THE ATTACKERS WILL CHASE YOU SO MANUVER YOURSELF" 130 PRINT" SO THAT THE ATTACKERS WILL RUN INTO MINES " 140 PRINT"SCORE IS THE TIME YOU REMAIN ON THE BOARD" 150 PRINT"NO POINTS ARE AWARDED FOR KILLING THE ATTACKERS" 160 PRINT 170 POKE -4096+14+(128*3),&HD 180 POKE -4096+43+(128*3),&H0 190 POKE -4096+20+(128*4),&H7F 200 POKE -4096+39+(128*4),&HC 210 PRINT "MOVE BY TEN KEY PAD USED AS A JOY STICK: " 220 PRINT:PRINT "7 UP/LEFT 8 UP 9 UP/RIGHT" 230 PRINT "4 LEFT 5 JUMP 6 RIGHT" 240 PRINT "1 DOWN/LEFT 2 DOWN 3 DOWN/RIGHT" 250 PRINT 260 PRINT "JUMP (5) WILL PUT YOU ANYWHERE (EVEN ON A MINE)." 270 PRINT "NO MOVE WILL LEAVE YOU WHERE YOU ARE." 280 PRINT "YOU HAVE ONLY ";N2;" CHANCES TO USE JUMP (5)." 290 PRINT:PRINT "MAKE SURE WIDTH IS LARGER THAN 64":PRINT "OR GAME WILL NOT PRINT CORRECTLY":PRINT 300 INPUT "HIT ENTER TO START GAME";ANS$ 310 PRINT CHR$(&H1A):JJ=0:N2=10 320 FOR U=0 TO ((2*A8)+2):PRINT CHR$(&HA):NEXT U 330 PRINT CHR$(&HA);:PRINT CHR$(&HB);:PRINT CHR$(&HB); 340 FOR B=1 TO A8:FOR C=1 TO A9:A(B,C)=20:X=INT(A9*RND) 350 IF X<>5 THEN 360 ELSE A(B,C)=5:POKE -4096+C+(128*B),&H7F 360 NEXT C:NEXT B:N3=0 370 FOR D =1 TO A9:A(1,D)=5:POKE -4096+D+(128*1),&H7F:A(A8,D)=5:POKE -4096+D+(128*A8),&H7F:NEXT D 380 FOR D = 1 TO A8:A(D,1)=5:POKE -4096+1+(128*D),&H7F:A(D,A9)=5:POKE -4096+A9+(128*D),&H7F:NEXT D 390 GOTO 420 400 H=INT(A8*RND)+1:I=INT(A9*RND)+1 410 IF A(H,I)<>20 THEN 400 ELSE RETURN 420 FOR D=1 TO 7:GOSUB 400 430 A(H,I)=15:POKE -4096+I+(128*H),&H0:IF D<>7 THEN 450 440 A(H,I)=10:POKE -4096+I+(128*H),&HD:J=H:K=I:GOTO 470 450 IF D<>1 THEN 460 ELSE A(H,I)=25:POKE -4096+I+(128*H),&HC 460 B(1,D)=H:B(2,D)=I 470 NEXT D 480 PRINT " ";CHR$(&HD);"ESCAPE!";CHR$(&HD); 490 III = 0:Y=0:JJ=JJ+1:PRINT TAB(38);JJ;"SCORE/TIME";CHR$(&HD); 500 AAA$="" 510 AAA$=INKEY$ 520 III=III+1 530 IF(AAA$="")AND(III<>SPEED) THEN 500 ELSE PRINT CHR$(&HD); :PRINT " ";:PRINT CHR$(&HD); 540 IF AAA$="1" THEN Y=6 550 IF AAA$="2" THEN Y=7 560 IF AAA$="3" THEN Y=8 570 IF AAA$="4" THEN Y=5 580 IF AAA$="6" THEN Y=1 590 IF AAA$="7" THEN Y=4 600 IF AAA$="8" THEN Y=3 610 IF AAA$="9" THEN Y=2 620 IF AAA$="5" THEN Y=9 630 IF Y=0 THEN PRINT "NO MOVE";:PRINT CHR$(&HD);:GOTO 750 640 V=J:W=K:IF Y<9 THEN 660 ELSE IF N2<>0 THEN 710 650 PRINT "ILLEGAL";:PRINT CHR$(&HD);:GOTO 480 660 IF Y <> 1 THEN 670 ELSE J=0: GOTO 680 670 J=SGN(Y-5) 680 IF Y>3 THEN 700 ELSE IF Y=3 THEN 690 ELSE K=1: GOTO 740 690 K=0:GOTO 740 700 K=SGN(Y-7):GOTO 740 710 GOSUB 400 720 A(J,K)=20:POKE -4096+K+(128*J),&H20 730 J=H:K=I:N2=N2-1:GOTO 750 740 K=K+W:J=J+V 750 IF A(J,K)=5 THEN# 1110 ELSE A(V,W)=20:POKE -4096+W+(128*V),&H20 760 A(J,K)=10:POKE -4096+K+(128*J),&HD:GOTO 1070 770 IF X<>99 THEN 780 ELSE RETURN 780 V=X:M=Y:X=SGN(J-X):Y=SGN(K-Y):X=X+V:Y=Y+M 790 IF A(X,Y)=10 THEN 1000 ELSE IF A(X,Y)=20 THEN 930 800 IF A(V,M)=25 THEN 890 810 IF A(X,Y)<>15 THEN 850 ELSE GOSUB 400 820 X=H:Y=M 830 PRINT "TWO ATTACKERS HAVE COLLIDED."; :PRINT CHR$(&HD); 840 A(V,M)=20:POKE -4096+M+(128*V),&H20:A(X,Y)=15:POKE -4096+Y+(128*X),&H0:RETURN 850 A(V,M)=20:POKE -4096+M+(128*V),&H20:IF A(X,Y)=25 THEN 860 ELSE A(X,Y)=20:POKE -4096+Y+(128*X),&H20 860 GOSUB 880 870 X=99:RETURN 880 PRINT "KILLED ONE";:PRINT CHR$(&HD);:N3=N3+1:RETURN 890 IF A(X,Y)<>15 THEN 930 ELSE M9=2 900 IF B(1,M9)<>X THEN 910 ELSE IF B(2,M9)=Y THEN 920 910 M9=M9+1:GOTO 900 920 B(1,M9)=99:GOSUB 880 930 A(X,Y)=A(V,M):A(V,M)=20:POKE -4096+M+(128*V),&H20 940 IF A(X,Y)=5 THEN POKE -4096+Y+(128*X),&H7F 950 IF A(X,Y)=10 THEN POKE -4096+Y+(128*X),&HD 960 IF A(X,Y)=15 THEN POKE -4096+Y+(128*X),&H0 970 IF A(X,Y)=20 THEN POKE -4096+Y+(128*X),&H20 980 IF A(X,Y)=25 THEN POKE -4096+Y+(128*X),&HC 990 RETURN 1000 PRINT "THE ENEMY FOUND YOU -- YOU'RE DEAD" 1010 IF A(X,Y)=5 THEN POKE -4096+Y+(128*X),&H7F 1020 IF A(X,Y)=10 THEN POKE -4096+Y+(128*X),&HD 1030 IF A(X,Y)=15 THEN POKE -4096+Y+(128*X),&H0 1040 IF A(X,Y)=20 THEN POKE -4096+Y+(128*X),&H20 1050 IF A(X,Y)=25 THEN POKE -4096+Y+(128*X),&HC 1060 GOTO 1120 1070 FOR D=1 TO 6:X=B(1,D):Y=B(2,D):GOSUB 770 1080 B(1,D)=X:B(2,D)=Y:NEXT D 1090 IF N3<>5 THEN 480 1100 PRINT "ALL OPPONENTS DESTROYED -- YOU WIN":GOTO 1120 1110 POKE -4096+K+(128*J),&HD:PRINT "YOU TOUCHED A MINE -- YOU ARE DEAD" 1120 INPUT "TRY AGAIN ";ANS$:IF (ANS$<>"0")AND(ANS$<>"N") THEN GOTO 310 ELSE PRINT CHR$(&H1A):END 0 920 B(1,M9)=99:GOSUB 880 930 A(X,Y)=A(V,M):A(V,M)=20:POKE -4096+M+(128*V),&H20 940 IF A(X,Y)=5 THEN POKE -4096+Y+(128*X),&H7F 950 IF A(X,Y)=10 THEN POKE -4096+Y+(128*X),&HD 960 IF A(X,Y)=15 THEN POKE -4096+Y+(128*X),&H0 970 IF A(X,Y)=20 THEN POKE -5 RANDOMIZE 10 LV =1 20 OPEN "I",#1,"HISC.DAT":INPUT #1,HS,HS$,G2,I2$,G3,I3$:CLOSE #1 30 GOSUB 1000 40 LR=INT(RND*2):PA=0:GOSUB 260 50 ST$=INKEY$:IF ST$<>"A"THEN GOTO 50 60 FOR T =1 TO 200:NEXT 70 A$=INKEY$ 80 IF A$="A"THEN PL=P:P=P-128 90 IF A$="Z"THEN PL=P:P=P+128 100 IF A$=","THEN PL=P:P=P-1 110 IF A$="."THEN PL=P:P=P+1 120 IF P<61440! THEN PL=P+128:P=P+3072 130 IF P>64512! THEN PL=P-128:P=P-3072 140 C= (P-61440!)/128:IF C-INT(C)= .40625 THEN PL=P-1:P=P-51 150 L=(P-61440!)/128:IF L-INT(L)<.001 THEN PL=P+1:P=P+51 160 IF PEEK(P)=141 THEN GOSUB 230 170 IF PEEK(P)=127 THEN SC=SC-100 180 IF PEEK(P)=42 THEN GOTO 530 190 POKE PL,32:POKE P,140 200 IF INT(RND*2)=1 THEN GOSUB 320 210 SC=SC-1 220 GOTO 70 230 JG=JG+1:SC=SC+100 240 IF JG=20 THEN GOTO 460 250 RETURN 260 K$=INKEY$:PRINT CHR$(26);:PRINT"LEVEL";LV;" HIT WHEN READY TO BEGIN";:FOR T = 1 TO 2000:NEXT 270 PRINT CHR$(26);:P=62872!:PL=P:POKE P,140:BP=62873!:PP=BP:POKE BP,42 280 FOR Z=1 TO 20 290 X=61440!+128*INT(24*RND):Y=INT(RND*51)+1:IF PEEK(X+Y)=141 THEN 290 ELSE POKE X+Y,141 300 NEXT:RETURN 320 M=INT(RND*4) 330 IF LR=0 THEN IF M=3 THEN PP=BP: BP=BP+1 340 IF LR=1 THEN IF M=3 THEN PP=BP: BP=BP-1 350 IF M=2 THEN PP=BP: BP=BP-128 360 IF M=1 THEN PP=BP: BP=BP+128 370 IF BP =LP THEN BP=PP:GOTO 320 380 IF BP<61440! THEN PP=BP+128:BP=BP+3072 390 IF BP>64512! THEN PP=BP-128:BP=BP-3072 400 BC=(BP-61440!)/128:IF BC-INT(BC)= .40625 THEN PP=BP-1:BP=BP-51 410 BL=(BP-61440!)/128:IF BL-INT(BL)<.001 THEN PP=BP+1:BP=BP+51 420 IF PEEK(BP)=141 OR PEEK(PP)=141 THEN JG=JG+1:FOR B=1 TO 100:PRINT CHR$(7);:NEXT:IF LV=1 THEN SC=SC-(50+LV*25) 430 IF JG = 20 THEN GOTO 460 ELSE POKE PP,127:POKE BP,42 440 LP=PP 450 RETURN 460 IF SC >LV*1600 THEN LV=LV+1:PA=1 470 JG=0:IF SC > HS THEN HS=SC:GOSUB 540 480 PRINT CHR$(26):PRINT"SCORE"SC;" HIGH SCORE"HS;" - "HS$ 490 FOR T = 1 TO 3000:NEXT 500 IF PA=1 THEN PRINT"BONUS LEVEL":FOR T=1 TO 1000:NEXT:GOTO 40 510 K$=INKEY$:INPUT"PLAY AGAIN?",RP$:IF RP$="Y"THEN SC=0:LV=1::GOTO 40 520 GOTO 560 530 PRINT CHR$(26):PRINT "SORRY, YOU GOT EATEN":FOR T=1 TO 2000:NEXT:GOTO 470 540 PRINT CHR$(26):PRINT"YOU GOT HIGH SCORE":INPUT"INITIALS",HS$ 550 OPEN "O",#1,"HISC.DAT":WRITE #1,HS,HS$,G2,I2$,G3,I3$:CLOSE#1:RETURN 560 PRINT CHR$(26):PRINT"GAME OVER":END 1000 PRINT CHR$(26):PRINT" GUARDIAN" 1010 PRINT"YOU ARE THE GUARDIAN OF THE INSECTS. YOUR TASK" 1020 PRINT"IS TO RESCUE 20 INSECTS WHICH ARE CAUGHT IN THE" 1030 PRINT"SPIDER'S WEB. YOU MOVE ABOUT PICKING UP 100 POINTS" 1040 PRINT"FOR EACH INSECT YOU RESCUE. THE SPIDER IS ALSO" 1050 PRINT"MOVING ABOUT SUBTRACTING POINTS FROM YOUR SCORE" 1060 PRINT"FOR EACH INSECT HE EATS. IF YOU CROSS THE SPIDER'S" 1070 PRINT"WEB YOU LOSE 100 POINTS AND IF YOU TOUCH THE" 1080 PRINT"SPIDER YOU DIE AND THE GAME ENDS. POINTS ARE" 1090 PRINT"SUBTRACTED FOR THE TIME TAKEN TO CLEAR THE SCREEN" 1100 PRINT"SO EFFICIENCY IS IMPORTANT. IF YOU RESCUE ENOUGH" 1110 PRINT"ENOUGH INSECTS TO SCORE 1600 OR BETTER YOU WILL BE" 1120 PRINT"GIVEN 20 MORE IN$SECTS TO PROTECT.":PRINT:PRINT 1130 PRINT" MOVEMENT ";CHR$(140);" YOU":PRINT 1140 PRINT" UP (A) ";CHR$(141);" INSECTS":PRINT 1150 PRINT"LEFT (<) (>) RIGHT ";CHR$(42); " SPIDER":PRINT 1160 PRINT" DOWN (Z) ";CHR$(127);" SPIDER'S WEB":PRINT 1200 INPUT"PRESS RETURN WHEN READY";AN:PRINT CHR$(26):RETURN  DONT"IS TO RESCUE 20 INSECTS WHICH ARE CAUGHT IN THE" 1030 PRINT"SPIDER'S WEB. YOU MOVE ABOUT PICKING UP 100 POINTS" 1040 PRINT"FOR EACH INSECT YOU RESCUE. THE SPIDER IS ALSO" 1050 PRINT"MOVING ABOUT SUBTRACTING POINTS FROM YOUR SCORE" 1060 PRINT"FOR EACH INSECT HE EATS. IF YOU CROSS THE SPIDER'S" 1070 PRINT"WEB YOU LOSE 100 POINTS AND IF YOU TOUCH THE" 1080 PRINT"SPIDER YOU DIE AND THE GAME ENDS. POINTS ARE" 1090 PRINT"SUBTRACTED FOR THE TIME TAKEN TO CLEAR THE SCREEN" 1100 PRINT"SO EFFICIENCY IS IMPORTANT. IF YOU RESCUE ENOUGH" 1110 PRINT"ENOUGH INSECTS TO SCORE 1600 OR BETTER YOU WILL BE" 1120 PRINT"GIVEN 20 MORE IN10 '*** GUESSNUM -- VERSION 1.1 -- 3/21/84 20 Y%=-32767 30 N2=1 40 TRIES=0 50 N3=1 60 PRINT CHR$(26) ' CLEAR SCREEN 70 PRINT " GUESSNUM: RANDOM NUMBER GUESSING GAME ":PRINT:PRINT 80 PRINT " (PRESS TO START) ":PRINT 90 Y%=Y%+1 100 IF Y%=32767 THEN Y%=-32767 110 A$=INKEY$: IF LEN(A$)=0 THEN GOTO 90 120 RANDOMIZE Y% 130 PRINT:INPUT "*What is your guess (between 0 and 100)";GUESS% 140 NUM%=100*RND(1) 150 N%=1 160 IF GUESS%=NUM% THEN 220 170 IF GUESS%>NUM% THEN PRINT " Too **LARGE**":GOTO 190 180 PRINT " too small" 190 INPUT "Next guess";GUESS% 200 N%=N%+1 210 GOTO 160 220 IF N%>6 THEN 250 230 PRINT "--- YOU GUESSED IT! It took only"; 240 GOTO 260 250 PRINT "--- You guessed it in"; 260 PRINT N%;"tries.":PRINT 270 INPUT "*Do you want to try again (Y/N)";AGAIN$ 280 PRINT:IF N3<>1 THEN 380 290 IF AGAIN$<>"Y" AND AGAIN$<>"y" THEN 330 300 PRINT:PRINT " Round 1 is now over. Please specify the" 310 INPUT " maximum no.of rounds you wish to play: ",N2 320 IF N2<1 OR N2>20 THEN PRINT "MAX.NO.1-20 ONLY":GOTO 310 330 DIM A(N2) 'NUMBER MATRIX 340 DIM ANUM(N2) 'TRIES MATRIX 350 ANUM(1)=N% 'NO.OF TRIES 360 A(1)=GUESS% 'NUMBER 370 IF N3=1 THEN 400 380 ANUM(N3)=N% 390 A(N3)=GUESS% 400 IF AGAIN$<>"Y" AND AGAIN$<>"y" THEN GOTO 440 410 N3=N3+1 420 IF N3>N2 THEN PRINT CHR$(26);" Maximum reached.":GOTO 450 430 GOTO 130 440 N2=N3 450 PRINT ,"-----------------------------------" 460 PRINT ,,"VALUE"TAB(39)"NO.OF TRIES" 470 PRINT ,"-----------------------------------" 480 FOR I=1 TO N2 490 PRINT ,I,A(I),ANUM(I) 500 TRIES=TRIES+ANUM(I) 510 NEXT I 520 PRINT ,"-----------------------------------" 530 PRINT TAB(28);"TOTAL TRIES:",TRIES 540 PRINT ,"-----------------------------------" 550 ATR=(INT(100*TRIES/N2))/100 560 PRINT TAB(28);"AVERAGE:",ATR 570 END  540 PRINT ,"-----------------------------------" 550 ATR=( 300 PRINT:PRINT " Round 1 is now over. Please specify the" 310 INPUT " maximum no.of rounds you wish to play: ",N2 3201 PRINT CHR$(26) 5 OPEN "I", #1, "HISC.DAT":INPUT #1,G1,I1$,HS,HS$,G3,I3$:CLOSE #1 10 RANDOMIZE 20 GOSUB 440 30 GOSUB 160:GOSUB 380 40 A$=INKEY$ 50 IF A$=","THEN PL=P:P=P-1 60 IF A$="."THEN PL=P:P=P+1 70 IF P>64433! THEN P=64433! 80 IF P<64386! THEN P=64386! 90 POKE PL,150:POKE P,158 100 IF A$="S"THEN GOSUB 240 110 IF B=1 THEN GOSUB 260 120 POKE T,32:T=T+R 130 IF T>TS+48 THEN GOSUB 160 140 POKE T,CH 150 GOTO 40 160 TS=61441!+INT(RND*20+2)*128:T=TS+1:R=.1*(INT(RND*5)+1) 170 IF HT=0 AND CH=143 THEN EN = EN + 1 180 IF HT=0 AND CH=140 THEN EN = EN + 3 190 IF HT=0 AND CH=141 THEN EN = EN + 5 195 PRINT CHR$(30):PRINT TAB(2);" SCORE";SC;" - POINTS";EN;" HIGH SCORE";HS;:PRINT CHR$(30):POKE 61568!,150 200 HT=0 210 IF EN>30 THEN GOTO 430 220 IF R<.2 THEN CH=141 ELSE IF R>.4 THEN CH=143 ELSE CH=140 230 RETURN 240 IF B=0 THEN B=1:SP=P-128:POKE SP,139 250 RETURN 260 POKE SP,32:SP=SP-128 270 IF SP<61696! THEN B=0:RETURN 280 IF PEEK(SP)<>32 THEN GOSUB 310 290 IF B=1 THEN POKE SP,139 300 RETURN 310 POKE SP,136:FOR TM=1 TO 150:NEXT:POKE SP,138:FOR TM=1 TO 150:NEXT 320 POKE SP,149:FOR TM=1 TO 150:NEXT:POKE SP,153:FOR TM=1 TO 150:NEXT 330 POKE SP,32:POKE SP+128,46:POKE SP-128,46:POKE SP+1,46:POKE SP-1,46 340 FOR TM=1 TO 150:NEXT:POKE SP+128,32:POKE SP-128,32:POKE SP+1,32:POKE SP-1,32 350 B=0:T=TS+49:HT=1 360 IF CH=143 THEN SC=SC+100 ELSE IF CH=140 THEN SC=SC+50 ELSE SC=SC+20 370 PRINT CHR$(30):PRINT TAB(2);" SCORE";SC;" - POINTS";EN;" HIGH SCORE";HS;:PRINT CHR$(30):POKE 61568!,150:RETURN 380 PRINT CHR$(26):FOR SU=61440! TO 61491!:POKE SU,150:NEXT 390 FOR SU=64384! TO 64435!:POKE SU,150:NEXT 400 FOR SU=61440! TO 64384! STEP 128:POKE SU,150:NEXT 410 FOR SU=61491! TO 64435! STEP 128:POKE SU,150:NEXT 420 P=64408!:POKE P,158:RETURN 430 IF SC>HS THEN HS=SC:GOSUB 1000 435 PRINT CHR$(26):PRINT"SCORE";SC;:PRINT" HIGH SCORE";HS;" ";HS$ 437 PRINT"PLAY AGAIN";:INPUT AN$:IF AN$="Y" THEN 438 ELSE END 438 Z$=INKEY$:EN=0:SC=0:HT=1:PRINT CHR$(26):PRINT"PRESS TO BEGIN" 439 IF I%NKEY$="S" THEN 30 ELSE 439 440 PRINT CHR$(26):PRINT" ICBM" 450 PRINT"THE OBJECT OF THIS GAME IS TO DESTROY THE SOVIET" 460 PRINT"SPY SHIPS PASSING OVER. YOU ARE IN CONTROL OF THE" 470 PRINT"ICBM BASE. TO MOVE THE BASE RIGHT OR LEFT PRESS" 480 PRINT"> OR < RESPECTIVELY. TO FIRE PRESS . SOME SPY" 490 PRINT"SHIPS ARE MORE DANGEROUS AND SO DESTROYING THEM IS" 500 PRINT"WORTH MORE POINTS. EVERY SHIP WHICH ESCAPES YOUR" 510 PRINT"MISSLES BRINGS YOU CLOSER TO DESTRUCTION. WHEN" 520 PRINT"A SPY SHIP ESCAPES YOU YOU RECIEVE NEGATIVE POINTS." 530 PRINT"WHEN YOUR NEGATIVE POINTS EXCEED 30 YOU WILL" 540 PRINT"BE REMOVED FROM YOUR COMMAND AND THE GAME WILL END." 550 PRINT:PRINT" + POINTS -POINTS" 560 PRINT" 20 5" 570 PRINT:PRINT" 50 3" 580 PRINT:PRINT" 100 1" 590 PRINT:PRINT"GOOD LUCK. YOUR COUNTRY IS DEPENDING ON YOU." 600 POKE 63236!,141:POKE 63492!, 140:POKE 63748!, 143 610 PRINT"PRESS TO BEGIN" 620 IF INKEY$="S" THEN RETURN ELSE 620 1000 PRINT CHR$(26):INPUT"YOU GOT HI SCORE, ENTER YOUR INITIALS";HS$ 1010 OPEN "O", #1, "HISC.DAT":WRITE #1,G1,I1$,HS,HS$,G3,I3$:CLOSE #1:RETURN INPUT"YOU GOT HI SCORE, ENTER YOUR INIEFT PRESS" 480 PRINT"> OR < RESPECTIVELY. TO FIRE PRESS . SOME SPY" 490 PRINT"SHIPS ARE MORE DANGEROUS AND SO DESTROYING THEM IS" 500 PRINT"WORTH MORE POINTS. EVERY SHIP WHICH ESCAPES YOUR" 510 PRINT"MISSLES BRINGS YOU CLOSER TO DESTRUCTION. WHEN" 520 PRINT"A SPY SHIP ESCAPES YOU YOU RECIEVE NEGATIVE POINTS." 530 PRINT"WHEN YOUR NEGATIVE POINTS EXCEED 30 YOU WILL" 540 PRINT"BE REMOVED FROM YOUR COMMAND AND THE GAME WILL END." 550 PRINT:PRINT" + POINTS -POINTS" 560 PRINT" 20 5" 570 PRINT:PRINT" 50 3" 580 PRINT:PRINT" 100 1" 590 PRINT:PRINT"GOOD LUCK. YOUR COUNTRY IS DEPENDING ON YOU." 600 POKE 63236!,141:POKE 63492!, 140:POKE 63748!, 143 61260,"DOUG K" 0 Rev. 5.21 [CP/M Version] Copyright 1977-1981 (C) by Microsoft Created: 29-May-81 AXES BASLABEL BASBINOMIALBASBODEASCIBASCONVERSNBASN !"#$%&'(DAYS BAS )*FINANCESBASe+,-./01234567THINKER BASo89:;<=>?@ABCDETHINKER DOC1FGHIJKLTHINKER2BASMNOPQRSTUVWXYZ[\THINKER2BAS]^_BELLOWS BAS `aBIORYTHMBAS+bcdefgLOVE BAShijCASINO BASklmnopqrstuvwxyzCASINO BAS&{|}~ROULETTEBAS:BANDIT BASDRACULA BASDRACULA BASESCAPE BAS&GUARD BASGUESSNUMBASICBM BASICBMHS $$$ This is the release date of the disk. LOVE BAS h CASINO BAS kSASINO BAS {-CPM138 DOC ROULETTEBAS BANDIT BAS DRACULA BAS KRACULA BAS ESCAPE BAS GUARD BAS GUESSNUMBAS ICBM BAS ICBMHS DAT FINANCES.BAS DE 89 12928 101 THINKER .BAS C9 74 14208 111 THINKER .DOC 59 D9 6272 49 THINKER2.BAS FF 45 18688 146 BELLOWS .BAS E0 E3 1408 11 BIORYTHM.BAS 6A 23 5504 43 LOVE .BAS E3 B6 3072 24 CASINO .BAS B2 85 21248 166 ROULETTE.BAS 3F 28 7424 58 BANDIT .BAS CB D0 2048 16 DRACULA .BAS 3F 1F 19328 151 ESCAPE .BAS 5A EC 4864 38 GUARD  Fog Library Disk FOG-CPM.138 Copyright (1986) by Fog International Computer Users Group to the extent not copyrighted by the original author for the exclusive use and enjoyment of its members. Any reproduction or distribution for profit or personal gain is strictly forbidden. For information, contact FOG, P. O. Box 3474, Daly City, CA. 94015-0474. as part of the description of a file indicates that the program is distributed on a "try first, pay if you like it" basis. If you find the program(s) meet your need, please refer to the author's documentation for information on becoming a registered user. Only by registering and paying for the programs you like and use will the authors of such programs continue development. Often, more complete documentation, additional modules, and new releases are available only to registered users. Microsoft Basic Programs. Filename Description -09-00 .86 This is the release date of the disk. -CPM138 .&DOC This is the description of the disk contents. AUTOPLOT.BAS 5806 11K Plots scaled graphs from X-Y input pairs. PLOT .BAS B1B6 3K [PLOT 1 of 4] Plotter driver for TRS-80 CGP-115. PLOTTER .DOC AE8C 8K [PLOT 2 of 4] AXES .BAS 0184 1K [PLOT 3 of 4] LABEL .BAS DFCA 1K [PLOT 4 of 4] BINOMIAL.BAS 6301 1K Binomial Distribution BODEASCI.BAS BAFD 3K Bode plot for certain transfer functions. CONVERSN.BAS D6CD 10K ASCII to Decimal conversion DAYS .BAS 5EC6 2K Computes days between dates. FINANCES.BAS DE89 13K Calculates future values, amortization, interest, Etc... THINKER .BAS C974 14K ver. 2 [THINKER 1 of 3] A concept processor that takes noun-verb pairs and supplies logical return arguments. THINKER .DOC 59D9 7K ver. 2 [THINKER 2 of 3] THINKER2.BAS FF45 19K ver. 2 [THINKER 3 of 3] BELLOWS .BAS E0E3 2K Calculates photographic exposure. BIORYTHM.BAS 6A23 6K Biorhythm check your high points. LOVE .BAS E3B6 3K Print a message on your printer. CASINO .BAS B285 21K [CASINO 1 of 3] Various Casino Games. Baccarat, Blackjack, or Roulette, and a one arm bandit. ROULETTE.BAS 3F28 8K [CASINO 2 of 3] BANDIT .BAS CBD0 2K [CASINO 3 of 3] DRACULA .BAS 3F1F 19K An adventure type game. ESCAPE .BAS 5AEC 5K Escape from tanks and a minefield. GUARD .BAS 41AF 4K Guardian of the insects game. GUESSNUM.BAS EA89 2K Random number guessing game. ICBM .BAS B6D9 4K [ICBM 1 of 2] Target practice. Other file is the high score. ICBMHS .DAT 1914 1K [ICBM 2 of 2]  a one arm bandit. ROULETTE.BAS 3F28 8K [CASINO 2 of 3] BANDIT .BAS CBD0 2K [CASINO 3 of 3] DRACULA .BAS 3F1F 19K An adventure type game. ESCAPE .BAS 5AEC 5K Escape from tanks and a minefield. GUARD .BAS 41AF 4K Guardian o'