Word Plays offers two choices from its menu. Nonsense is a “television plot synthesizer”: it fills the screen with 21 one-line plot events picked at random from a list of 89, so each page reads as the storyline of an absurd sitcom episode, then waits about 30 seconds and deals a new one. From Phone Number takes a seven-digit telephone number and lists all 2,187 letter combinations it can spell on a telephone dial, two columns at a time.
No author is named. A REM describes the first part as the storyline program for an imaginary comedy show. The plot lines are slapstick mishaps involving stock characters, and a few of them are crude or are ethnic and political jokes of the period. The copy comes from a SNUG library disk, where it was saved as “Wd Plays*2”.
Program Analysis
Plot Synthesizer
Lines 40–70 read the 89 DATA strings into L$(90,32). A 90-character flag string p$ marks lines already used, so no event repeats on a page (line 120 tries again until it finds an unused one). After each line there is a 30 percent chance of an extra “AND”. PAUSE 1500 holds the page for 30 seconds and RUN starts again, re-reading the DATA each time.
Phone Number Words
A$(3,10) holds the three letters for each digit, one row per letter position, with 0 and 1 left as themselves because they had no letters. Seven nested FOR loops (lines 640–700) step through 37 = 2,187 combinations, and line 720 builds each word with A$(N(H),VAL B$(H)+1). POKE 23692,255 stops the “scroll?” prompt, and holding a key pauses the listing.
Notable Techniques
RUN 400at line 5 andRUN 10from the menu make each part a fresh start, clearing the previous part’s arrays.- Constant tricks like
SGN PIfor 1 andDIM A$(PI,10)for a 3-row array.
Potential Issues
- The third letter row,
"01CFIOSVY", is missingL, so for digits 5 to 9 the third letter is wrong (5 gives O, 6 gives S, 7 gives V, 8 gives Y and 9 gives a space). - The “AND” at line 150 is printed on the row below the event, and the next
PRINT AT K,0writes over it, so it is rarely seen. - Line 590 sends an entry of the wrong length back to 550 rather than to the prompt at 580; it still works, but re-assigns the letter table each time.
- Only a capital
Yconfirms the number at line 620.
From an Oliger (JLO SAFE) disk, converted for tape (the disk SAVE / at line 800 became a tape SAVE) and tested in ZEsarUX.
Source Code
5 RUN 400
10 REM Storyline Program for FULL GIRLS FAMILIES HOUSE, a "comedy"show. (not for public perusal)
20 BORDER 0: INK 6: PAPER 0
30 CLS
40 DIM L$ (90,32)
50 PRINT #1; INK 2;" TELEVISION PLOT SYNTHESIZER",
60 FOR K=1 TO 89: READ L$(K)
70 NEXT K
80 DIM p$(90)
90 FOR K=0 TO 20
100 RANDOMIZE
110 LET X=INT (RND*89)+1
120 IF p$(X)<>" " THEN GO TO 110
130 LET p$(X)="X"
140 PRINT AT K,0;L$(X)
150 IF RND>.7 THEN PRINT "AND"
160 REM input"PRESS ENTER FOR THE NEXT PAGE"
170 NEXT K
180 PAUSE 1500: CLS
190 RUN
200 DATA "BOY MEETS GIRL","GIRL MEETS DOG","LANDLORD WITH FUNNY VOICE ENTERS","STRANGE GIRL WITH SPOTS APPEARS","MAN FALLS DOWN STAIRS","BOY STICKS GLUE ON SEAT","GIRL LOSES SKIRT","MAN WITH NO TROUSERS CALLS","DOG PUKES ON MANS SHOES","BOY TAKES GIRL HOME","GIRL TAKES BOY HOME"
210 DATA "GIRL TAKES OFF SKIRT","MAN KICKS DOG","BOY EATS LAXATIVE CHOCOLATE","JOKE ABOUT KNICKERS","GIRL SLAPS BOY","MAN SLAPS BOY","BOY BITES DOG","DOG RUNS AWAY","JOKE ABOUT PICKING NOSE"
220 DATA "MAN SCRATCHES BUM","GIRL SWEARS AT DOG","BOY PRETENDS TO BE A GIRL","GIRL PRETENDS TO BE A BOY","MAN PRETENDS TO BE NAPOLEON","JOKE ABOUT KNICKERS","GIRL MAKES SILLY FACE","MAN STICKS OUT TONGUE","BOY WRITES NOVEL","DOG INHERITS FORTUNE"
230 DATA "MAN WITH FUNNY WALK ENTERS","GIRL GETS TOE CAUGHT IN SPIGOT","JEAN PAUL SARTRE VISITS","MAN SITS ON STOVE","YOGURT JOKE","A FAMILY OF WALLEYES MOVE IN","MAN DROPS PIANO ON CAR","GIRL PUTS RAT POISON IN DINNER","BOY USES JOKE SOAP","MAN EXPLODES","SIR CLIVE PUNCHES MAN","SIR CLIVE PUNCHES BOY","SIR CLIVE PUNCHES GIRL","SIR CLIVE GETS DOG TO JOIN MENSA"
240 DATA "MAN GETS TONGUE STUCK ON STAMP","PRINCE CHARLES FALLS OFF PONY","GIRL GETS TATOO","UFO TURNS OUT TO BE SPAM ADVERT","JOKE ABOUT SPAM","PRINCESS ANNE TAKES TUBA CLASS","BABY DOC PLAYS WITH DOLLS","BABY DOC LOOKS FOR APARTMENT","GIRL GETS DRESS CAUGHT IN LIFT","MAN EATS DRANO BY ACCIDENT"
250 DATA "JOKE ABOUT WC","GIRL HIDES IN MENS LOCKER ROOM","WC EXPLODES","MAN HIDES IN WOMENS WC"
260 DATA "BOY SINGS ABOUT SPAM","BOY LOOKS THROUGH KEYHOLE"
270 DATA "NUCLEAR SUB IS FOUND IN BATHTUB","BOY PUTS ICE DOWN GIRL'S DRESS","FROGS HOLD CONVENTION","THE MAID PARACHUTES IN" ,"GIRL FINDS SECRET OF LIFE","KILLER RABBIT VISITS","JOKE ABOUT C5","MAGGIE LOOKS FOR DENNIS"
280 DATA "FAMILY WINS TRIP TO FALKLANDS","GIRL WINS IRON INGOTS","MOUSE BECOMES MP","MYSTERIOUS SHOE STORE APPEARS","BENNY HILL STOPS BY FOR A PINCH"
290 DATA "DOG INVENTS ELECTRIC HEDGEHOG","BUDGIES ATTRACTED TO GIRLS HAIR","NELSON RETURNS FROM DEAD","DRUNKS IN DRAG HIJACK BUS","SPECTRUM TURNS INTO PLASTIC BLOB","IDI AMIN EXPLODES","EXPLODING SUSPENDERS FOUND","DOG BARKS UP WRONG TREE"
300 DATA "MAN PINCHES MAID","MAID PINCHES SILVERWARE","IDI AMIN COME BY FOR DINNER","ARAB OFFERS TO BUY HOUSE","ARAB OFFERS TO BUY GIRL","IDI AMIN VISITS DALEKS","GIRL HIDES EXPLODING FISH","MAN PATENTS SYNTHETIC HAGGIS"
310 REM OFTEN THIS WON'T MAKE SENSE BUT USE IT ANYWAY NO ONE HAS EVER NOTICED BEFORE.
400 CLEAR : PRINT '''TAB 11;"Word Plays"''''" 1 Nonsense"'''" 2 From Phone Number"
410 INPUT "Select 1, 2, ";k: IF (k<1) OR (k>2) THEN GO TO 410
420 IF k=1 THEN RUN 10
500 CLS : PRINT '''''"THIS PROGRAM CONVERTS A 7 DIGIT PHONE NUMBER INTO ALL POSSIBLE COMBINATIONS OF THE LETTER-"'"NUMBER EQUIVALENT (2187 OF THEM)"
510 PAUSE NOT PI: CLS
520 POKE 23658,8
530 DIM A$(PI,10)
540 DIM C$(7): DIM N(7)
550 LET A$(1)="01ADGJMPTW"
560 LET A$(2)="01BEHKNRUX"
570 LET A$(PI)="01CFIOSVY"
580 INPUT "7 DIGIT NUMBER? ";B$
590 IF LEN B$<>7 THEN GO TO 550
600 PRINT AT 21,0;B$
610 INPUT "IS THE NUMBER CORRECT? Y/N; ";D$
620 IF D$<>"Y" THEN GO TO 580
630 CLS
640 FOR A=SGN PI TO PI: LET N(1)=A
650 FOR B=SGN PI TO PI: LET N(2)=B
660 FOR C=SGN PI TO PI: LET N(3)=C
670 FOR D=SGN PI TO PI: LET N(4)=D
680 FOR E=SGN PI TO PI: LET N(5)=E
690 FOR F=SGN PI TO PI: LET N(6)=F
700 FOR G=SGN PI TO PI: LET N(7)=G
710 FOR H=1 TO 7
720 LET C$(H)=A$(N(H),VAL B$(H)+1)
730 NEXT H
740 POKE 23692,255
750 PRINT C$,
760 IF INKEY$<>"" THEN PAUSE 160
770 NEXT G: NEXT F: NEXT E: NEXT D: NEXT C: NEXT B: NEXT A
780 PRINT "PROGRAM COMPLETE"
790 PAUSE 0: RUN
800 SAVE /"Wd Plays*2" LINE 1Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

