A short joke. The program draws a small red television set with rabbit-ear aerials and a small control panel, under the caption “Quick! Call TV Repair!” and above “One day after warranty expires.” The picture tube fills with flickering garbage while the AY sound chip plays a steady hiss of static. Pressing SPACE switches the set off: the sound stops, the screen goes black and the program ends.
By Paul Holmgren. There is no credit in the program itself. It was on the PubDom#6 Oliger disk alongside his M*5 and ISTUG-BBS Multibase.
Program Analysis
The set is drawn with PLOT, DRAW and CIRCLE in lines 22–80. The “picture” is just the twelve letters abcd, efgh and ijkl printed in a 4×3 block at line 120. The loop in lines 100–140 POKEs a random value from 0 to 31 into 23607, the high byte of the CHARS system variable, before each print. The letters are therefore drawn from a different part of ROM every pass, which gives the snow.
Notable Techniques
SOUND 6,30;7,55sets the noise period and a mixer value that turns off all three tone channels and enables noise on channel A only.SOUND 8,15then turns channel A up to full volume once the set has been drawn.- On SPACE, line 130 puts 60 back in 23607 (the normal character set at 15360), zeroes AY registers 0–13 in a loop, and blacks out the picture with solid block graphics before
STOP.
Potential Issues
- The program has no autostart and ends with
STOP, so it has to be started withRUN.
This program came from the PubDom#6 Oliger (JLO SAFE) disk. It needed no changes to load from tape. Type RUN to start it. It was tested in ZEsarUX.
Source Code
1 PAPER 7
10 SOUND 6,30;7,55
19 PRINT AT 20,0; INK 2;"One day after warranty expires."
20 PRINT AT 3,5; INK 1;"Quick! Call TV Repair!"
21 INK 2
22 PLOT 125,115: DRAW 15,15: PLOT 124,115: DRAW -15,15
30 PLOT 150,84: DRAW 0,30: DRAW -50,0: DRAW 0,-30: DRAW 50,0
40 PLOT 136,87: DRAW 0,25: DRAW -33,0: DRAW 0,-25: DRAW 33,0
50 PLOT 147,97: DRAW -8,0: DRAW 0,-10: DRAW 8,0: DRAW 0,10
60 PLOT 145,110: PLOT 146,110: PLOT 145,109: PLOT 146,109
70 PLOT 140,110: PLOT 141,110: PLOT 140,109: PLOT 141,109
80 CIRCLE 140,102,1.6: CIRCLE 145,102,1.6
90 SOUND 8,15
95 INK 0
100 LET a=INT (RND*32)
110 POKE 23607,a
120 PRINT AT 8,13;"abcd";AT 9,13;"efgh";AT 10,13;"ijkl"
130 IF INKEY$=" " THEN POKE 23607,60: FOR x=0 TO 13: SOUND x,0: NEXT x: PRINT AT 8,13; INK 0;"::::::::";AT 9,13; INK 0;"::::::::";AT 10,13; INK 0;"::::::::": STOP
140 GO TO 100Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.
