Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
executable file 489 lines (488 sloc) 11.8 KB
10 X%=RND(-TIME)
20 *FX 200,3
30 MODE 7
40 DIM LA$(7)
50 DIM LB$(7)
60 REM ODE BY BARNEY LIVINGSTON BARNSOFT 10/12/1994
70 PRINT" ‚ OOOOOO ƒDDDDDDD †EEEEEE"
80 PRINT" ‚O O ƒD D †E"
90 PRINT" ‚O O ƒD D †E"
100 PRINT" ‚O O ƒD D †EEEE"
110 PRINT" ‚O O ƒD D †E"
120 PRINT" ‚O O ƒD D †E"
130 PRINT" ‚O O ƒD D †E"
140 PRINT" ‚ OOOOOO ƒ DDDDDDD † EEEEEE"
150 PRINT:PRINTSPC(18)"…V3.2"
160 PRINT:PRINT" ‚PRESS ƒ ANY † KEY"
170 NOUN=62:VERB=53:ING=36:ADJ=62
180 PRINT:PRINTSPC(8)CHR$(133) NOUN+VERB+ING+ADJ;" WORDS"
190 PRINT:PRINTSPC(7)CHR$(131) NOUN*NOUN*VERB*ING*ADJ;" COMBINATIONS"
200 AA=0:A$=GET$:A$=""
210 A=0:B=0:C=0:D=0:E=0:F=0:G=0:H=0
220 FOR LIV=0 TO 7
230 LA$(LIV)=""
240 LB$(LIV)=""
250 NEXT LIV
260 A=RND(NOUN)
270 C=RND(VERB)
280 E=RND(ING)
290 G=RND(ADJ)
300 N$="":PN=0:PN$="":P=0
310 CLS
320 PROCnouna
330 PROCverbs
340 PROCassmla
350 A=RND(NOUN):B=0:N$="":PN=0:PN$="":P=0:P$=""
360 PROCnounb
370 PROCings
380 PROCadj
390 PROCassmlb
400 PROCLEN
410 BARN$=INKEY$(3000):IF BARN$="" THEN AA=AA+1
420 BARN=ASC(BARN$)
430 IF AA=2 THEN RUN
440 IF BARN=&1E THEN GOTO 1500 ELSE GOTO 210
450 RUN
460 DEFPROCnouna
470 RESTORE 4000
480 PN=0:PN$="":B=0
490 REPEAT
500 B=B+1
510 READ N$,PN
520 IF PN=0 THEN PN$=" THE"
530 IF PN=1 THEN PN$=" A"
540 IF PN=2 THEN PN$=" AN"
550 IF PN=3 THEN PN$=" SOME"
560 IF PN=4 THEN PN$=""
570 IF PN=5 THEN PN$=" MY"
580 UNTIL A=B OR N$="F"
590 ENDPROC
600 DEFPROCnounb
610 RESTORE 4000
620 PN=0:PN$="":B=0
630 REPEAT
635 IF B=NOUN THEN ENDPROC
640 B=B+1
650 READ N$,PN
660 IF PN=0 OR PN=3 OR PN=4 OR PN=5 THEN GOTO 635
670 UNTIL A=B
680 ENDPROC
690 DEFPROCverbs
700 RESTORE 5000
710 REPEAT
720 D=D+1
730 READ V$
740 UNTIL C=D
750 ENDPROC
760 DEFPROCings
770 RESTORE 6000
780 REPEAT
790 F=F+1
800 READ ING$
810 UNTIL E=F
820 ENDPROC
830 DEFPROCadj
840 RESTORE 7000
850 REPEAT
860 H=H+1
870 READ Z$
880 UNTIL G=H OR Z$="Q"
890 I$=LEFT$(Z$,1)
900 J=0
910 IF I$="A" THEN P$="AN":J=1
920 IF I$="E" THEN P$="AN":J=1
930 IF I$="I" THEN P$="AN":J=1
940 IF I$="O" THEN P$="AN":J=1
950 IF I$="U" THEN P$="AN":J=1
960 IF J=0 THEN P$="A"
970 S=0
980 S=VAL(Z$)
990 IF S=0 THEN PL$="" ELSE PL$="S"
1000 IF S=0 THEN ADJ$=P$+" "+Z$ ELSE ADJ$=Z$
1010 ENDPROC
1020 DEFPROCassmla
1030 LA$="ODE TO"+PN$+" "+N$+" I "+V$+" ONE MIDSUMMER MORNING,"
1040 ENDPROC
1050 DEFPROCassmlb
1060 LB$="WHILE "+ING$+" "+ADJ$+" "+N$+PL$+"."
1070 ENDPROC
1080 DEFPROCLEN
1090 LA=LEN(LA$)
1100 LB=LEN(LB$)
1110 IF LA<40 THEN PROCLAWRITE
1120 IF LA>40 THEN PROCLASORT
1130 IF LA>80 THEN PROCLASORT1
1140 IF LA>120 THEN PROCLASORT2
1150 IF LA>160 THEN PROCLASORT3
1160 IF LB<40 THEN PROCLBWRITE
1170 IF LB>40 THEN PROCLBSORT
1180 IF LB>80 THEN PROCLBSORT1
1190 IF LB>120 THEN PROCLBSORT2
1200 IF LB>160 THEN PROCLBSORT3
1210 ENDPROC
1220 DEFPROCLASORT
1230 K=39
1240 REPEAT
1250 LE$=MID$(LA$,K,1)
1260 LE=ASC(LE$)
1270 K=K-1
1280 UNTIL LE=32 OR K=0
1290 LA$(0)=LEFT$(LA$,K)
1300 LA$(1)=RIGHT$(LA$,LA-K-1)
1310 IF LEN(LA$(1))>39 THEN PROCLAWRITE1A ELSE PROCLAWRITE1
1320 ENDPROC
1330 DEFPROCLBSORT
1340 X=39
1350 REPEAT
1360 LO$=MID$(LB$,X,1)
1370 LO=ASC(LO$)
1380 X=X-1
1390 UNTIL LO=32 OR X=0
1400 LB$(0)=LEFT$(LB$,X)
1410 LB$(1)=RIGHT$(LB$,LB-X-1)
1420 IF LEN(LB$(1))>39 THEN PROCLBWRITE1A ELSE PROCLBWRITE1
1430 ENDPROC
1440 DEFPROCLAWRITE
1450 PRINT:PRINT:PRINT:PRINT:PRINT ;LA$
1460 ENDPROC
1470 DEFPROCLBWRITE
1480 PRINT ;LB$
1490 ENDPROC
1500 *FX200,0
1510 GOTO 210
1520 DEFPROCLAWRITE1
1530 PRINT:PRINT:PRINT:PRINT:PRINT ;LA$(0)
1540 PRINT ;LA$(1)
1550 ENDPROC
1560 DEFPROCLBWRITE1
1570 PRINT ;LB$(0)
1580 PRINT ;LB$(1)
1590 ENDPROC
1600 DEFPROCLASORT1
1610 T=39
1620 LA1=LEN(LA$(1))
1630 REPEAT
1640 LA1$=MID$(LA$(1),T,1)
1650 IO=ASC(LA1$)
1660 T=T-1
1670 UNTIL IO=32 OR T=0
1680 LA$(2)=LEFT$(LA$(1),T)
1690 LA$(3)=RIGHT$(LA$(1),LA1-T-1)
1700 IF LEN(LA$(3))>39 THEN PROCLAWRITE2A ELSE PROCLAWRITE2
1710 ENDPROC
1720 DEFPROCLASORT2
1730 T=39
1740 LA1=LEN(LA$(3))
1750 REPEAT
1760 LA1$=MID$(LA$(3),T,1)
1770 IO=ASC(LA1$)
1780 T=T-1
1790 UNTIL IO=32 OR T=0
1800 LA$(4)=LEFT$(LA$(3),T)
1810 LA$(5)=RIGHT$(LA$(3),LA1-T-1)
1820 IF LEN(LA$(5))>39 THEN PROCLAWRITE3A ELSE PROCLAWRITE3
1830 ENDPROC
1840 DEFPROCLASORT3
1850 T=39
1860 LA1=LEN(LA$(5))
1870 REPEAT
1880 LA1$=MID$(LA$(5),T,1)
1890 IO=ASC(LA1$)
1900 T=T-1
1910 UNTIL IO=32 OR T=0
1920 LA$(6)=LEFT$(LA$(5),T)
1930 LA$(7)=RIGHT$(LA$(5),LA1-T-1)
1940 PROCLAWRITE4
1950 ENDPROC
1960 DEFPROCLBSORT1
1970 H=39
1980 LB1=LEN(LB$(1))
1990 REPEAT
2000 LB1$=MID$(LB$(1),H,1)
2010 OK=ASC(LB1$)
2020 H=H-1
2030 UNTIL OK=32 OR H=0
2040 LB$(2)=LEFT$(LB$(1),H)
2050 LB$(3)=RIGHT$(LB$(1),LB1-H-1)
2060 IF LEN(LB$(3))>39 THEN PROCLBWRITE2A ELSE PROCLBWRITE2
2070 ENDPROC
2080 DEFPROCLBSORT2
2090 H=39
2100 LB1=LEN(LB$(3))
2110 REPEAT
2120 LB1$=MID$(LB$(3),H,1)
2130 OK=ASC(LB1$)
2140 H=H-1
2150 UNTIL OK=32 OR H=0
2160 LB$(4)=LEFT$(LB$(3),H)
2170 LB$(5)=RIGHT$(LB$(3),LB1-H-1)
2180 IF LEN(LB$(5))>39 THEN PROCLBWRITE3A ELSE PROCLBWRITE3
2190 ENDPROC
2200 DEFPROCLBSORT3
2210 H=39
2220 LB1=LEN(LB$(5))
2230 REPEAT
2240 LB1$=MID$(LB$(5),H,1)
2250 OK=ASC(LB1$)
2260 H=H-1
2270 UNTIL OK=32 OR H=0
2280 LB$(6)=LEFT$(LB$(5),H)
2290 LB$(7)=RIGHT$(LB$(5),LB1-H-1)
2300 PROCLBWRITE4
2310 ENDPROC
2320 DEFPROCLAWRITE1A
2330 PRINT:PRINT:PRINT:PRINT:PRINT ;LA$(0)
2340 ENDPROC
2350 DEFPROCLAWRITE2
2360 PRINT ;LA$(2)
2370 PRINT ;LA$(3)
2380 ENDPROC
2390 DEFPROCLAWRITE2A
2400 PRINT ;LA$(2)
2410 ENDPROC
2420 DEFPROCLAWRITE3
2430 PRINT ;LA$(4)
2440 PRINT ;LA$(5)
2450 ENDPROC
2460 DEFPROCLAWRITE3A
2470 PRINT ;LA$(4)
2480 ENDPROC
2490 DEFPROCLAWRITE4
2500 PRINT ;LA$(6)
2510 PRINT ;LA$(7)
2520 ENDPROC
2530 DEFPROCLBWRITE1A
2540 PRINT ;LB$(0)
2550 ENDPROC
2560 DEFPROCLBWRITE2
2570 PRINT ;LB$(2)
2580 PRINT ;LB$(3)
2590 ENDPROC
2600 DEFPROCLBWRITE2A
2610 PRINT ;LB$(2)
2620 ENDPROC
2630 DEFPROCLBWRITE3
2640 PRINT ;LB$(4)
2650 PRINT ;LB$(5)
2660 ENDPROC
2670 DEFPROCLBWRITE3A
2680 PRINT ;LB$(4)
2690 ENDPROC
2700 DEFPROCLBWRITE4
2710 PRINT ;LB$(6)
2720 PRINT ;LA$(7)
2730 ENDPROC
3999 ********DATA*********
4000 DATA PAPER CLIP,1
4010 DATA DOG,1
4020 DATA AEROPLANE,2
4030 DATA FLOPPY DISK,1
4040 DATA PIECE OF METAL,1
4050 DATA CARROT,1
4060 DATA TERRAPIN,1
4070 DATA BRIDGE RECTIFIER,1
4080 DATA ORANGE,2
4090 DATA BATTERY,1
4100 DATA FRENCH MAN,1
4110 DATA GIBBON,1
4120 DATA ENCYCLOPAEDIA,2
4130 DATA APPLE,2
4140 DATA BANANA PLANT,1
4150 DATA POT PLANT,1
4160 DATA SMALL LUMP OF GREEN PUTTY,1
4170 DATA PANTHER,1
4180 DATA CAR,1
4190 DATA LUMP OF CALCIUM,1
4200 DATA APRICOT,2
4210 DATA ITALIAN,2
4220 DATA AUSTRALIAN,2
4230 DATA AMERICAN,2
4240 DATA MUG,1
4250 DATA OIL TANKER,2
4260 DATA PIECE OF COAL,1
4270 DATA POPE WHO,0
4280 DATA PEOPLE,3
4290 DATA PRIME MINISTER WHO,0
4300 DATA CHANNEL TUNNEL WHICH,0
4310 DATA JOHN MAJOR WHO,4
4320 DATA PETE WHO,4
4330 DATA MILTON KEYNES WHICH,4
4340 DATA DOGS,3
4350 DATA LEON TROTSKY WHO,4
4360 DATA LENIN WHO,4
4370 DATA ADOLF HITLER WHO,4
4380 DATA SAHARA DESERT WHICH,0
4390 DATA LATIN WHICH,4
4400 DATA SALT WHICH,3
4410 DATA BELGIUM WHICH,4
4420 DATA ROMANS WHO,0
4430 DATA HAMSTER,1
4440 DATA POMMEGRANATE,1
4450 DATA GOVERNMENT WHICH,0
4460 DATA JOY WHICH,4
4470 DATA MESS WHICH,3
4480 DATA THERMODYNAMICS WHICH,4
4490 DATA QUEEN WHO,0
4500 DATA ITALY WHICH,4
4510 DATA FRANCE WHICH,4
4520 DATA GERMANY WHICH,4
4530 DATA AMERICA WHICH,4
4540 DATA ENGLAND WHICH,4
4550 DATA PORTABLE TOASTER WHICH,5
4560 DATA DISHWASHER WHICH,5
4570 DATA MIDWIFE WHO,5
4580 DATA LIGHT-DEPENDANT RESISTOR WHICH,5
4590 DATA FLUFF WHICH,3
4600 DATA DEVIL WHO,0
4610 DATA GRANULATED SUGAR,3
5000 DATA FOUND
5010 DATA COOKED
5020 DATA KICKED
5030 DATA STRANGLED
5040 DATA WASHED
5050 DATA ATE
5060 DATA SAT ON
5070 DATA FROZE
5080 DATA THOUGHT OF
5090 DATA LIT
5100 DATA FED
5110 DATA MADE
5120 DATA PONDERED OVER
5130 DATA SHOT
5140 DATA HIJACKED
5150 DATA SPOILED
5160 DATA KISSED
5170 DATA STRETCHED
5180 DATA KEPT
5190 DATA TALKED TO
5200 DATA COUNTED
5210 DATA FLED FROM
5220 DATA STOLE
5230 DATA SAW FAR AWAY
5240 DATA WISHED FOR
5250 DATA STOLE FROM TESCO'S CARPARK
5260 DATA MADE OUT OF TOOTH PICKS
5270 DATA LOOKED AT IN INVERNESS
5280 DATA SAW ON A PROGRAMME ABOUT JACKALS
5290 DATA CUT OUT OF A MAGAZINE
5300 DATA FOUND BEHIND MY EAR
5310 DATA FOUND IN MY ARMPIT
5320 DATA BURNT
5330 DATA COULDN'T FIND
5340 DATA WROTE AN ESSAY ABOUT
5350 DATA TOLD TO PHONE THE POLICE
5360 DATA BORROWED FROM RONI
5370 DATA SERVED UP AS SOUP
5380 DATA OILED
5390 DATA USED TO LIGHT MY BOILER
5400 DATA PULLED OUT OF MY EAR
5410 DATA BOUGHT A CAR FROM
5420 DATA SMOKED
5430 DATA CLEANED MY TEETH WITH
5440 DATA HAD A FIGHT WITH IN HARTLEPOOL NEAR THE DAIRY
5450 DATA FORCED TO DO THE SHOPPING
5460 DATA HAD A ROW ABOUT PETROL PRICES WITH
5470 DATA BOUGHT IN A 50p SHOP
5480 DATA TALKED TO ON THE TELEPHONE
5490 DATA BORROWED 30p FROM FOR MY BUS FARE
5500 DATA LENT `25000 WHICH I'M HOPING TO GET BACK
5510 DATA SHAVED
5520 DATA SENT TO BUY SOME MILK AND A LOAF OF BREAD
6000 DATA LOOKING AT
6010 DATA STEELING
6020 DATA WORRYING ABOUT
6030 DATA FLEEING FROM
6040 DATA COOKING
6050 DATA TALKING TO
6060 DATA LEARNING ABOUT
6070 DATA WRITING TO
6080 DATA TRYING TO ASSASSINATE THE QUEEN WITH HELP FROM
6090 DATA BORROWING THE RUSSIAN EMPIRE FROM
6100 DATA HAVING A WAR AGAINST
6110 DATA GOING ON HOLIDAY WITH
6120 DATA PERFORMING BRAIN SURGERY ON
6130 DATA LAYING SEIGE TO
6140 DATA ESCAPING FROM PRISON BY DIGGING WITH
6150 DATA PULLING FACES AT
6160 DATA HAVING FUN WITH
6170 DATA EATING MARZIPAN FRITTERS WITH
6180 DATA LEADING THE RUSSIAN REVOLUTION WITH HELP FROM
6190 DATA HITCHING AROUND THE WORLD WITH
6200 DATA GOING TO THE LAUNDERETTE TO WASH
6210 DATA THROWING A PARTY AND DISCOVERING AT THE LAST MINUTE THAT I HAVEN'T GOT
6220 DATA SHOPPING IN A SUPERMARKET NEAR BRUSSELS WITH
6230 DATA SELLING MY HOUSE TO
6240 DATA GOING TO A LECTURE ON
6250 DATA WATCHING A PROGRAMME ON TELEVISION ABOUT
6260 DATA EATING A SANDWICH AND FINDING OUT THAT THE FILLING IS MADE FROM
6270 DATA GOING TO CHURCH AND FINDING I HAVE GONE TO THE WRONG CHURCH AND IN THE CHURCH I HAVE GONE TO THEY WORSHIP
6280 DATA BEING GIVEN A LOBOTOMY BY
6290 DATA BUYING A DOG AND AFTER BUYING IT FINDING IT IS NOT A DOG BUT
6300 DATA WEARING
6310 DATA WALKING WITH
6320 DATA FLYING A PLANE WHERE THE COPILOT IS
6330 DATA TAKING NOTES ABOUT
6340 DATA GOING TO A NEWSAGENT TO BUY
6350 DATA RUNNING 15 MILES TO AVOID
7000 DATA HAPPY
7010 DATA EXTATIC
7020 DATA GREEN
7030 DATA RECTANGULAR
7040 DATA BADLY DAMAGED
7050 DATA DEAD
7060 DATA BIG
7070 DATA VERY HOT
7080 DATA SLIGHTLY RIPPLED
7090 DATA ASYMMETRANTHOUS
7100 DATA IDIOTIC
7110 DATA SMALL
7120 DATA PINK
7130 DATA RED
7140 DATA BLUE
7150 DATA ORANGE
7160 DATA YELLOW
7170 DATA FROZEN
7180 DATA DRUNK
7190 DATA BROWN
7200 DATA VERY HEAVY
7210 DATA HIGHLY ACTIVE
7220 DATA NEW BORN
7230 DATA HEALTHY
7240 DATA BEAUTIFUL
7250 DATA NAKED
7260 DATA SHARP
7270 DATA BROKEN
7280 DATA GIGGLEING
7290 DATA SAUSAGE SHAPED
7300 DATA INFINITE AMOUNT OF
7310 DATA 15
7320 DATA 42
7330 DATA 4
7340 DATA 2
7350 DATA 86742
7360 DATA 64
7370 DATA 3.14159265
7380 DATA 666
7390 DATA 250
7400 DATA FORGETFUL
7410 DATA PURPLE
7420 DATA MOIST
7430 DATA PLUMP
7440 DATA 1600
7450 DATA 1994
7460 DATA STURDY
7470 DATA CORRUPT
7480 DATA KEEN
7490 DATA MODEST
7500 DATA LUMINOUS
7510 DATA SERIOUS
7520 DATA CONVENIENT
7530 DATA SECURE
7540 DATA UNWILLING
7550 DATA UNREASONABLE
7560 DATA OFFENSIVE
7570 DATA SECRET
7580 DATA MICROSCOPIC
7590 DATA SPARE
7600 DATA ABSTRACT
7610 DATA TURBULANT