Animation

Developer(s): Alfred DeGennaro
Date: 198x
Type: Program
Platform(s): TS 2068

This program draws a detailed countryside scene using custom User Defined Graphics (UDGs), pixel plotting, and DRAW commands. It defines and redefines the nine UDG characters (slots \a through \i, mapped to character codes 144–152) multiple times throughout execution to render different scene elements — trees, a flower, a mushroom, grass with insects and snails, and clouds — reusing the same nine character slots for each new element. A symmetry-copying subroutine at line 2000 and 4000 reads already-plotted pixel data with POINT and mirrors it to multiple screen positions, enabling complex shapes to be reflected or rotated across the display. The program also uses SOUND alongside BEEP for audio, and employs FLASH on a single character for decorative effect.


Program Structure

The program is divided into clearly separated phases, each responsible for one layer of the scene:

  1. Lines 1–7: Background fill — two-tone sky (PAPER 5) and ground (PAPER 4) using a loop printing blank strings.
  2. Lines 8000–9000: Cloud drawing via PLOT/DRAW.
  3. Lines 10–94: First UDG set (144–152) loaded; tree/plant shapes placed at multiple screen positions with PRINT AT.
  4. Line 95, 2000–2270: Symmetry subroutine — scans a 24×24 pixel region with POINT and mirrors hits to seven other screen locations.
  5. Lines 200–285: Second UDG set (153–159) loaded for additional objects (moon/sun?); placed at two positions.
  6. Lines 285–316: Subroutines at 4000, 4500, 7000 called for further scene elements.
  7. Lines 320–325: Audio — BEEP then SOUND.
  8. Lines 400–1185: Large pixel-art animation loop (i=0 TO 25) drawing a path or winding shape across the screen using paired INK 9 / INK 5 PLOT sequences.
  9. Lines 1200–1410: Final segment of the path/winding shape, then STOP.
  10. Lines 2000–5300, 7000–9000: Subroutines for symmetry copying, background decoration, flower, mushroom, and clouds.

UDG Management

The program reuses the same nine UDG character slots (144–152, i.e. \a through \i) for every distinct graphic element. The pattern FOR i=144 TO 152 / FOR j=0 TO 7 / READ x / POKE USR (CHR$ i)+j,x / NEXT j / NEXT i appears at lines 10–60, 200–250 (for codes 153–159), 4500–4570, 5010–5060, and 7010–7060. Each time the DATA pointer advances to the next batch of bitmaps, so the same character cells on-screen appear to change meaning — a tree placed earlier will visually transform when the UDG slot is reprogrammed, unless the screen is not refreshed.

Characters 153–159 (\j through \p) are also defined and used at lines 200–282, giving a second independent set for objects that must coexist with the first set on screen simultaneously.

Symmetry-Copying Subroutines

Two subroutines exploit POINT to read back previously plotted pixels and replicate them at transformed coordinates:

  • Line 2000: Scans a 24×24 region (i=0..23, j=0..23) and for each lit pixel calls line 2200, which plots the same shape at seven additional screen locations using simple coordinate transformations (reflections and translations).
  • Line 4000: Similar scan but with transposed loop order and ten target positions, allowing rotated or differently-oriented copies.

This technique effectively gives the programmer free rotation/reflection of arbitrary pixel shapes without needing to store or re-enter the bitmap data multiple times.

The Animation Loop (Lines 510–1185)

The outer loop FOR i=0 TO 25 does not animate motion in real time — it repeats the same set of PLOT operations 26 times. Each group of PLOTs first draws in INK 9 (bright white on TS2068), then immediately redraws the same pixels in INK 5 (cyan), which on a colour display causes attribute cells to flash between colours on each iteration. The net visible effect is a flickering or shimmering trail following a winding path across the screen.

At i=20, lines 944–981 insert an inner loop FOR j=1 TO 10 around a small cluster of PLOTs, creating a brief pause/emphasis at that segment of the path. At i=25, line 752 branches to 1200, skipping part of the inner loop body on the final iteration.

Audio

Line 320 uses BEEP 1,9 (one second at note 9) followed by line 325’s SOUND 0,16;1,13;8,13;7,62, which is the TS2068 SOUND keyword (zmakebas token }) driving the AY-3-8912 chip with channel, period, and volume register writes. This combination produces a brief melodic cue unique to the TS2068 hardware.

Background Decoration Subroutine (4500–5300)

After loading another UDG set at 4500, the subroutine at 4575 prints grass-top characters with mixed INK/PAPER attributes. Line 4650 uses FLASH 1 on a single UDG character to animate a small creature (a bug or snail implied by the DATA comment). The flower subroutine (5000–5300) redefines the UDGs a fifth time and prints the same 3×3 UDG tile at eight different screen positions with varying PAPER/INK colour combinations to suggest multiple coloured flowers.

Content

Appears On

Related Products

Related Articles

And now, here are a few more words about the last contest. First, we would like to thank all of...

Related Content

Image Gallery

Animation

Source Code

    1 BORDER 0: PAPER 5: CLS 
    2 FOR i=0 TO 22
    3 IF i<=14 THEN PRINT PAPER 5;"                                "
    4 IF i>15 THEN PRINT PAPER 4;"                                "
    5 NEXT i
    7 GO SUB 8000
   10 FOR i=144 TO 152
   20 FOR j=0 TO 7
   30 READ x
   40 POKE USR (CHR$ i)+j,x
   50 NEXT j
   60 NEXT i
   65 INK 5
   70 PRINT AT 19,0;"\a";"\d";"\g"
   72 PRINT AT 0,29;"\a";"\d";"\g"
   73 PRINT AT 3,26;"\a";"\d";"\g"
   74 PRINT AT 2,8;"\a";"\d";"\g"
   76 PRINT AT 4,5;"\a";"\d";"\g"
   80 PRINT AT 20,0;"\b";"\e";"\h"
   81 PRINT AT 5,5;"\b";"\e";"\h"
   82 PRINT AT 1,29;"\b";"\e";"\h"
   83 PRINT AT 4,26;"\b";"\e";"\h"
   84 PRINT AT 3,8;"\b";"\e";"\h"
   90 PRINT AT 21,0;"\c";"\f";"\i"
   91 PRINT AT 6,5;"\c";"\f";"\i"
   92 PRINT AT 2,29;"\c";"\f";"\i"
   93 PRINT AT 5,26;"\c";"\f";"\i"
   94 PRINT AT 4,8;"\c";"\f";"\i"
   95 GO SUB 2000
  100 DATA 24,36,66,130,130,130,130,130,130,132,132,68,36,21,11,7,31,123,113,99,71,206,60,32
  110 DATA 0,0,0,3,12,30,38,35,35,113,185,156,78,199,242,236,224,193,190,64,32,16,8,7
  120 DATA 0,0,4,248,200,232,120,56,56,136,232,112,96,192,0,0,0,252,2,1,1,2,4,248
  200 FOR i=153 TO 159
  210 FOR j=0 TO 7
  220 READ x
  230 POKE USR (CHR$ i)+j,x
  240 NEXT j
  250 NEXT i
  260 PRINT AT 19,0;" ";"\l";" "
  262 PRINT AT 9,29;" ";"\l";" "
  270 PRINT AT 20,0;"\j";"\m";"\o"
  272 PRINT AT 10,29;"\j";"\m";"\o"
  280 PRINT AT 21,0;"\k";"\n";"\p"
  282 PRINT AT 11,29;"\k";"\n";"\p"
  285 GO SUB 4000
  290 DATA 0,7,9,17,33,66,130,130,132,132,132,136,80,32,0,0
  300 DATA 36,24,36,102,231,231,102,60,126,255,255,126,60,66,255,255,129,255,255,66,126,126,36,60
  310 DATA 0,224,144,136,132,66,65,65,33,33,33,17,10,4,0,0
  315 GO SUB 4500
  316 GO SUB 7000
  320 BEEP 1,9
  325 SOUND 0,16;1,13;8,13;7,62
  399 INK 9
  400 PLOT 248,168: PLOT 248,160: PLOT 248,152
  405 PLOT 240,168: PLOT 240,160: PLOT 240,152
  410 PLOT 232,168: PLOT 232,160: PLOT 232,152
  415 INK 5
  420 PLOT 248,168: PLOT 248,160: PLOT 248,152
  430 PLOT 240,168: PLOT 240,160: PLOT 240,152
  440 PLOT 232,168: PLOT 232,160: PLOT 232,152
  450 INK 9
  460 PLOT 231,151: PLOT 231,143: PLOT 231,135
  470 PLOT 223,151: PLOT 223,143: PLOT 223,135
  480 PLOT 215,151: PLOT 215,143: PLOT 215,135
  485 INK 5
  490 PLOT 231,151: PLOT 231,143: PLOT 231,135
  495 PLOT 223,151: PLOT 223,143: PLOT 223,135
  500 PLOT 215,151: PLOT 215,143: PLOT 215,135
  510 FOR i=0 TO 25
  515 INK 9
  520 PLOT 191,135: PLOT 191,127: PLOT 191,119
  525 PLOT 199,135: PLOT 199,127: PLOT 199,119
  530 PLOT 207,135: PLOT 207,127: PLOT 207,119
  535 INK 5
  540 PLOT 191,135: PLOT 191,127: PLOT 191,119
  545 PLOT 199,135: PLOT 199,127: PLOT 199,119
  550 PLOT 207,135: PLOT 207,127: PLOT 207,119
  555 INK 9
  560 PLOT 167,135: PLOT 167,127: PLOT 167,119
  565 PLOT 175,135: PLOT 175,127: PLOT 175,119
  570 PLOT 183,135: PLOT 183,127: PLOT 183,119
  575 INK 5
  580 PLOT 167,135: PLOT 167,127: PLOT 167,119
  585 PLOT 175,135: PLOT 175,127: PLOT 175,119
  590 PLOT 183,135: PLOT 183,127: PLOT 183,119
  595 INK 9
  600 PLOT 143,143: PLOT 143,135: PLOT 143,127
  605 PLOT 151,143: PLOT 151,135: PLOT 151,127
  610 PLOT 159,143: PLOT 159,135: PLOT 159,127
  615 INK 5
  620 PLOT 143,143: PLOT 143,135: PLOT 143,127
  625 PLOT 151,143: PLOT 151,135: PLOT 151,127
  630 PLOT 159,143: PLOT 159,135: PLOT 159,127
  635 INK 9
  640 PLOT 119,159: PLOT 119,151: PLOT 119,143
  645 PLOT 127,159: PLOT 127,151: PLOT 127,143
  650 PLOT 135,159: PLOT 135,151: PLOT 135,143
  655 INK 5
  660 PLOT 119,159: PLOT 119,151: PLOT 119,143
  665 PLOT 127,159: PLOT 127,151: PLOT 127,143
  670 PLOT 135,159: PLOT 135,151: PLOT 135,143
  675 INK 9
  680 PLOT 95,159: PLOT 95,167: PLOT 95,151
  685 PLOT 103,159: PLOT 103,167: PLOT 103,151
  690 PLOT 111,159: PLOT 111,167: PLOT 111,151
  695 INK 5
  700 PLOT 95,159: PLOT 95,167: PLOT 95,151
  705 PLOT 103,159: PLOT 103,167: PLOT 103,151
  710 PLOT 111,159: PLOT 111,167: PLOT 111,151
  715 INK 9
  720 PLOT 87,159: PLOT 87,151: PLOT 87,143
  725 PLOT 79,159: PLOT 79,151: PLOT 79,143
  730 PLOT 71,159: PLOT 71,151: PLOT 71,143
  735 INK 5
  740 PLOT 87,159: PLOT 87,151: PLOT 87,143
  745 PLOT 79,159: PLOT 79,151: PLOT 79,143
  750 PLOT 71,159: PLOT 71,151: PLOT 71,143
  752 IF i=25 THEN GO TO 1200
  755 INK 9
  760 PLOT 87,135: PLOT 87,127
  765 PLOT 79,135: PLOT 79,127: PLOT 79,119
  770 PLOT 71,135: PLOT 71,127: PLOT 71,119
  775 INK 5
  780 PLOT 87,135: PLOT 87,127
  785 PLOT 79,135: PLOT 79,127: PLOT 79,119
  790 PLOT 71,135: PLOT 71,127: PLOT 71,119
  795 INK 9
  800 PLOT 87,119: PLOT 87,111: PLOT 87,103
  805 PLOT 95,119: PLOT 95,111: PLOT 95,103
  810 PLOT 103,119: PLOT 103,111: PLOT 103,103
  815 INK 5
  820 PLOT 87,119: PLOT 87,111: PLOT 87,103
  825 PLOT 95,119: PLOT 95,111: PLOT 95,103
  830 PLOT 103,119: PLOT 103,111: PLOT 103,103
  835 INK 9
  840 PLOT 111,111: PLOT 111,103: PLOT 111,95
  845 PLOT 119,111: PLOT 119,103: PLOT 119,95
  850 PLOT 127,111: PLOT 127,103: PLOT 127,95
  855 INK 5
  860 PLOT 111,111: PLOT 111,103: PLOT 111,95
  865 PLOT 119,111: PLOT 119,103: PLOT 119,95
  870 PLOT 127,111: PLOT 127,103: PLOT 127,95
  875 INK 9
  880 PLOT 135,111: PLOT 135,103: PLOT 135,95
  885 PLOT 143,111: PLOT 143,103: PLOT 143,95
  890 PLOT 151,111: PLOT 151,103: PLOT 151,95
  895 INK 5
  900 PLOT 135,111: PLOT 135,103: PLOT 135,95
  902 PLOT 143,111: PLOT 143,103: PLOT 143,95
  904 PLOT 151,111: PLOT 151,103: PLOT 151,95
  906 INK 9
  910 PLOT 159,111: PLOT 159,103: PLOT 159,95
  915 PLOT 167,111: PLOT 167,103: PLOT 167,95
  920 PLOT 175,111: PLOT 175,103: PLOT 175,95
  925 INK 5
  930 PLOT 159,111: PLOT 159,103: PLOT 159,95
  935 PLOT 167,111: PLOT 167,103: PLOT 167,95
  940 PLOT 175,111: PLOT 175,103
  944 IF i=20 THEN FOR j=1 TO 10
  945 INK 9
  950 PLOT 175,95: PLOT 175,87: PLOT 175,79
  955 PLOT 183,95: PLOT 183,87: PLOT 183,79
  960 PLOT 191,95: PLOT 191,87: PLOT 191,79
  965 INK 5
  970 PLOT 175,95: PLOT 175,87: PLOT 175,79
  975 PLOT 183,95: PLOT 183,87: PLOT 183,79
  980 PLOT 191,95: PLOT 191,87: PLOT 191,79
  981 IF i=20 THEN NEXT j
  985 INK 9
  990 PLOT 199,79: PLOT 199,71: PLOT 199,63
  995 PLOT 207,79: PLOT 207,71: PLOT 207,63
 1000 PLOT 215,79: PLOT 215,71: PLOT 215,63
 1005 INK 5
 1010 PLOT 199,79: PLOT 199,71: PLOT 199,63
 1015 PLOT 207,79: PLOT 207,71: PLOT 207,63
 1020 PLOT 215,79: PLOT 215,71: PLOT 215,63
 1025 INK 9
 1030 PLOT 223,79: PLOT 223,71: PLOT 223,63
 1035 PLOT 231,79: PLOT 231,71: PLOT 231,63
 1040 PLOT 239,79: PLOT 239,71: PLOT 239,63
 1045 INK 5
 1050 PLOT 223,79: PLOT 223,71: PLOT 223,63
 1055 PLOT 231,79: PLOT 231,71: PLOT 231,63
 1060 PLOT 239,79: PLOT 239,71: PLOT 239,63
 1065 INK 9
 1070 PLOT 255,103: PLOT 255,95: PLOT 255,87
 1075 PLOT 247,103: PLOT 247,95: PLOT 247,87
 1080 PLOT 239,103: PLOT 239,95: PLOT 239,87
 1085 INK 5
 1090 PLOT 255,103: PLOT 255,95: PLOT 255,87
 1095 PLOT 247,103: PLOT 247,95: PLOT 247,87
 1100 PLOT 239,103: PLOT 239,95: PLOT 239,87
 1105 INK 9
 1110 PLOT 239,111: PLOT 239,119: PLOT 239,127
 1115 PLOT 247,111: PLOT 247,119: PLOT 247,127
 1120 PLOT 255,111: PLOT 255,119: PLOT 255,127
 1125 INK 5
 1130 PLOT 239,111: PLOT 239,119: PLOT 239,127
 1135 PLOT 247,111: PLOT 247,119: PLOT 247,127
 1140 PLOT 255,111: PLOT 255,119: PLOT 255,127
 1145 INK 9
 1150 PLOT 231,127: PLOT 231,119: PLOT 231,111
 1155 PLOT 223,127: PLOT 223,119: PLOT 223,111
 1160 PLOT 215,127: PLOT 215,119: PLOT 215,111
 1165 INK 5
 1170 PLOT 231,127: PLOT 231,119: PLOT 231,111
 1175 PLOT 223,127: PLOT 223,119: PLOT 223,111
 1180 PLOT 215,127: PLOT 215,119: PLOT 215,111
 1185 NEXT i
 1200 INK 9
 1210 PLOT 63,143: PLOT 63,135: PLOT 63,127
 1220 PLOT 55,143: PLOT 55,135: PLOT 55,127
 1230 PLOT 47,143: PLOT 47,135: PLOT 47,127
 1235 INK 5
 1240 PLOT 63,143: PLOT 63,135: PLOT 63,127
 1245 PLOT 55,143: PLOT 55,135: PLOT 55,127
 1250 PLOT 47,143: PLOT 47,135: PLOT 47,127
 1255 FOR j=1 TO 6
 1260 INK 9
 1265 PLOT 39,135: PLOT 39,127: PLOT 39,119
 1270 PLOT 31,135: PLOT 31,127: PLOT 31,119
 1275 PLOT 23,127: PLOT 23,119
 1280 INK 5
 1285 PLOT 39,135: PLOT 39,127: PLOT 39,119
 1290 PLOT 31,135: PLOT 31,127: PLOT 31,119
 1295 PLOT 23,127: PLOT 23,119
 1296 NEXT j
 1300 INK 9
 1310 PLOT 23,135: PLOT 23,143: PLOT 23,151
 1315 PLOT 15,135: PLOT 15,143: PLOT 15,151
 1320 PLOT 7,135: PLOT 7,143: PLOT 7,151
 1325 INK 5
 1330 PLOT 23,135: PLOT 23,143: PLOT 23,151
 1335 PLOT 15,135: PLOT 15,143: PLOT 15,151
 1340 PLOT 7,135: PLOT 7,143: PLOT 7,151
 1400 BRIGHT 0
 1410 INK 9
 1999 STOP 
 2000 REM head lower left corner
 2010 FOR j=0 TO 23
 2020 FOR i=0 TO 23
 2030 IF POINT (i,j) THEN GO SUB 2200
 2040 NEXT i
 2050 NEXT j
 2060 RETURN 
 2200 PLOT 103-i,96+j
 2210 PLOT 191-i,72+j
 2220 PLOT 112+i,159-j
 2230 PLOT 136+i,143-j
 2240 PLOT 232+i,127-j
 2250 PLOT i,151-j
 2260 PLOT 239-i,79-j
 2270 RETURN 
 4000 REM head at top
 4010 FOR i=0 TO 23
 4020 FOR j=0 TO 23
 4030 IF POINT (i,j) THEN GO SUB 4200
 4040 NEXT j
 4050 NEXT i
 4060 RETURN 
 4200 PLOT 231-j,i+104
 4210 PLOT 207-j,112+i
 4220 PLOT 183-j,112+i
 4230 PLOT 111-j,144+i
 4240 PLOT 39-j,112+i
 4250 PLOT 104+j,111-i
 4260 PLOT 128+j,111-i
 4270 PLOT 152+j,111-i
 4280 PLOT 192+j,79-i
 4290 PLOT 87-i,135-j
 4300 RETURN 
 4500 REM background
 4510 FOR i=144 TO 152
 4520 FOR j=0 TO 7
 4530 READ x
 4540 POKE USR (CHR$ i)+j,x
 4560 NEXT j
 4570 NEXT i
 4575 REM grasstops,bugs,snails,etc
 4580 DATA 72,52,176,168,170,106,108,255,34,81,149,165,133,171,203,255,24,24,144,210,246,22,92,48
 4585 DATA 2,28,44,84,84,68,88,224,102,24,102,102,24,255,60,255,60,66,255,129,255,129,66,60
 4590 DATA 112,248,140,172,236,121,254,0,56,124,134,182,148,117,254,0,99,119,54,8,54,119,99,0
 4600 PRINT AT 15,0; PAPER 5; INK 4;"\a\b\a\a   \b\b\a\a\b\a\b \b\b\b  \b\a\a\b\b\a\a\a\a\a"; INK 1;"\h "
 4610 PRINT AT 16,10; INK 7; PAPER 4;"\i \i\i\i\i\i\i\i \i\i\i"
 4620 PRINT AT 17,8; INK 7; PAPER 4;"\i \i\i\i\i  \i\i\i \i\i"
 4630 PRINT AT 18,7; INK 7; PAPER 4;"\i\i\i\i\i\i  \i\i  \i\i\i  \i\i \i\i\i\i"
 4640 PRINT AT 19,7; INK 7; PAPER 4;"\i\i \i\i\i  \i\i  \i\i\i  \i\i \i\i\i\i"
 4645 PRINT AT 20,10; PAPER 4; INK 7;"\i\i\i\i\i\i\i \i\i \i \i\i \i\i\i\i"
 4650 PRINT AT 18,4; PAPER 4; INK 0;"\e": PRINT AT 19,4; FLASH 1; INK 6;; PAPER 4;"\f": FLASH 0
 5000 REM background
 5010 FOR i=144 TO 152
 5020 FOR j=0 TO 7
 5030 READ x
 5040 POKE USR (CHR$ i)+j,x
 5050 NEXT j
 5060 NEXT i
 5065 REM flower
 5070 DATA 224,192,128,0,0,0,0,128,127,63,33,7,1,7,33,63,128,0,0,128,128,192,192,241
 5075 DATA 128,193,227,247,247,239,239,255,195,129,0,0,0,0,129,195,255,239,231,227,195,193,128,0
 5080 DATA 63,7,3,1,0,0,1,3,7,15,31,127,63,31,7,3,1,0,0,0,0,1,7,207
 5090 PRINT AT 13,21; PAPER 3; INK 5;"\a"; PAPER 5; INK 3;"\d"; PAPER 3; INK 5;"\g"
 5095 PRINT AT 14,21; PAPER 5; INK 3;"\b"; PAPER 6; INK 3;"\e"; PAPER 3; INK 5;"\h"
 5100 PRINT AT 15,21; PAPER 3; INK 4;"\c"; PAPER 4; INK 3;"\f"; PAPER 3; INK 4;"\i"
 5110 PRINT AT 16,23; PAPER 3; INK 4;"\a"; PAPER 4; INK 3;"\d"; PAPER 3; INK 4;"\g"
 5115 PRINT AT 17,23; PAPER 4; INK 3;"\b"; PAPER 6; INK 3;"\e"; PAPER 3; INK 4;"\h"
 5120 PRINT AT 18,23; PAPER 3; INK 4;"\c"; PAPER 4; INK 3;"\f"; PAPER 3; INK 4;"\i"
 5125 PRINT AT 19,21; PAPER 3; INK 4;"\a"; PAPER 4; INK 3;"\d"; PAPER 3; INK 4;"\g"
 5130 PRINT AT 20,21; PAPER 4; INK 3;"\b"; PAPER 6; INK 3;"\e"; PAPER 3; INK 4;"\h"
 5135 PRINT AT 21,21; PAPER 3; INK 4;"\c"; PAPER 4; INK 3;"\f"; PAPER 3; INK 4;"\i"
 5140 PRINT AT 19,25; PAPER 3; INK 4;"\a"; PAPER 4; INK 3;"\d"; PAPER 3; INK 4;"\g"
 5145 PRINT AT 20,25; PAPER 4; INK 3;"\b"; PAPER 6; INK 3;"\e"; PAPER 3; INK 4;"\h"
 5150 PRINT AT 21,25; PAPER 3; INK 4;"\c"; PAPER 4; INK 3;"\f"; PAPER 3; INK 4;"\i"
 5160 PRINT AT 19,0; PAPER 3; INK 4;"\a"; PAPER 4; INK 3;"\d"; PAPER 3; INK 4;"\g"
 5165 PRINT AT 20,0; PAPER 4; INK 3;"\b"; PAPER 6; INK 3;"\e"; PAPER 3; INK 4;"\h"
 5170 PRINT AT 21,0; PAPER 3; INK 4;"\c"; PAPER 4; INK 3;"\f"; PAPER 3; INK 4;"\i"
 5175 PRINT AT 15,26; PAPER 3; INK 4;"\a"; PAPER 4; INK 3;"\d"; PAPER 3; INK 4;"\g"
 5180 PRINT AT 16,26; PAPER 4; INK 3;"\b"; PAPER 6; INK 3;"\e"; PAPER 3; INK 4;"\h"
 5185 PRINT AT 17,26; PAPER 3; INK 4;"\c"; PAPER 4; INK 3;"\f"; PAPER 3; INK 4;"\i"
 5190 PRINT AT 18,28; PAPER 3; INK 4;"\a"; PAPER 4; INK 3;"\d"; PAPER 3; INK 4;"\g"
 5195 PRINT AT 19,28; PAPER 4; INK 3;"\b"; PAPER 6; INK 3;"\e"; PAPER 3; INK 4;"\h"
 5200 PRINT AT 20,28; PAPER 3; INK 4;"\c"; PAPER 4; INK 3;"\f"; PAPER 3; INK 4;"\i"
 5300 RETURN 
 7000 REM mushroom
 7010 FOR i=144 TO 152
 7020 FOR j=0 TO 7
 7030 READ x
 7040 POKE USR (CHR$ i)+j,x
 7050 NEXT j
 7060 NEXT i
 7070 DATA 0,1,2,6,14,16,16,16,0,248,7,48,120,123,51,7,0,0,0,192,112,112,240,224
 7075 DATA 22,31,31,22,17,19,23,31,15,63,113,224,192,192,224,224,224,192,128,128,128,64,64,32
 7080 DATA 31,63,28,0,6,15,31,6,208,16,16,8,8,8,136,0,16,8,4,2,2,2,0,0
 7090 PRINT AT 15,4;; INK 1;"\g\h\i"
 7095 PRINT AT 14,4; INK 1;"\d\e\f"
 7100 PRINT AT 13,4; INK 2;"\a\b"; INK 1;"\c"
 7200 RETURN 
 8000 REM clouds
 8010 INK 7
 8020 PLOT 144,151: DRAW 50,0
 8025 PLOT 175,155: DRAW 40,0
 8030 PLOT 160,152: DRAW 30,0
 8035 PLOT 168,153: DRAW 30,0
 8040 PLOT 165,154: DRAW 30,0
 9000 RETURN 

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

Scroll to Top