A short animation using a sketch from 1983.
PROG : 16509
D-FILE: 20094
VARS : 20887
E-LINE: 20888
STKBOT: 20888
STKEND: 20888
9999 means line number
PRINT means treat as KEYWORD P
10 REM **STAR WARS**SLR/2017**
20 GOSUB 400
30 LET SD1X=2
40 LET SD1Z=.1
50 LET SD2X=3
60 LET SD2Z=.2
70 FOR I=1 TO 15
80 GOSUB 1000
90 GOSUB 1100
100 NEXT I
110 GOSUB 500
120 FOR I=1 TO 10
130 GOSUB 1000
140 IF RND>.4 THEN GOSUB 1200
150 GOSUB 1100
160 NEXT I
170 GOSUB 1400
180 FOR I=1 TO 15
190 GOSUB 1000
200 GOSUB 1100
210 NEXT I
220 GOSUB 1600
230 RUN
400 REM **PLANET**
410 CLS
420 PRINT TAB 23;"ô ³ ô ô";
TAB 19;"· ô ´² ö¶·";TAB 19;"
±ô ´ ô¶";TAB 19;"ò ñ ò ôö´²
¶";TAB 26;"¶·´² ö";TAB 27;"¶ ´ "
;TAB 19;"· ô ¶ö´²";TAB 19;"
´ñ · · ´";TAB 29;"ô";TAB 27
;"ôò÷";TAB 30;"³";TAB 29;"µ õ";
TAB 30;"ó"
430 RETURN
500 REM **STAR DESTROYER**
510 FOR X=20 TO 4 STEP -1
520 LET ZEND=((21-X AND X>4)+(1
7 AND X<=4))
530 PRINT AT X,22;"¸¸"
540 IF ZEND>=2 THEN PRINT TAB 2
1;"¸¸¸¸"
550 IF ZEND>=3 THEN PRINT TAB 2
1;" ºº "
560 IF ZEND>=4 THEN PRINT TAB 2
1;"ö ¶"
570 IF ZEND>=5 THEN PRINT TAB 2
0;"·¹´óóô"
580 IF ZEND>=6 THEN PRINT TAB 2
0;"ö¸µ ÷óô"
590 IF ZEND>=7 THEN PRINT TAB 1
9;"·²º± ÷óóô"
600 IF ZEND>=8 THEN PRINT TAB 1
9;"õ¸ µ õú òô"
610 IF ZEND>=9 THEN PRINT TAB 1
7;"³óóóóóó÷óóó´"
620 IF ZEND>=10 THEN PRINT TAB
13;"³³óó ³ ó÷´ !"
630 IF ZEND>=11 THEN PRINT TAB
5;"³³³³ ÷¹ó!úúúúú ²±³ñ ù µ!ù¸"
640 IF ZEND>=12 THEN PRINT " ´÷
÷´÷ó ´¹ ÷ó´´÷ ´´÷÷´¹¹÷´´´!!¸"
650 IF ZEND>=13 THEN PRINT "²²²
ººò ññ³²² ±²±³º³±±±³ ²±²±!!¸"
660 IF ZEND>=14 THEN PRINT "
óóóó ²º³!ùùùùù ÷´óô úò´!ú¸"
670 IF ZEND>=15 THEN PRINT TAB
5;" ó ó÷´ó²± ! "
680 IF ZEND>=16 THEN PRINT TAB
13;" ó óóóó³³³± "
690 IF ZEND>=17 THEN PRINT TAB
15;" "
700 NEXT X
710 RETURN
720 FOR Z=1 TO ZEND
730 PRINT TAB S(Z);S$(Z, TO 32-
S(Z));
740 NEXT Z
750 NEXT X
760 RETURN
1000 REM **MOVE DESTROYER1**
1010 PRINT AT SD1X,16;" ";TAB 15
;" º ";TAB 13;" ö ¶ ";TAB 13;"³
±³º±!";TAB 13;" òóóó ";TAB 14;"
"
1020 REM IF RND>.2 THEN RETURN
1030 LET SD1X=SD1X+SD1Z
1040 IF (SD1X<1 OR SD1X>4) THEN
LET SD1Z=-SD1Z
1050 RETURN
1100 REM **MOVE DESTROYER2**
1110 PRINT AT SD2X,8;" ";TAB 7;"
!";TAB 6;" ·´ ";TAB 2;" ·óú¶
";TAB 0;" ³³³³ñ²õõ´ù ";TAB 0;
" ºö³ó±¶³õ²µ¸!";TAB 0;" óóóó¶ºó
³±ú ";TAB 2;" "
1120 REM IF RND>.25 THEN RETURN
1130 LET SD2X=SD2X+SD2Z
1140 IF (SD2X<2 OR SD2X>6) THEN
LET SD2Z=-SD2Z
1150 RETURN
1200 REM **FIRE**
1210 LET LX=0
1220 LET LY=18+(1 AND RND>.5)
1230 LET LY=18+(1 AND RND>.5)
1240 LET LXZ=.2+.1*RND
1250 LET LYZ=2+2*RND
1260 PRINT AT 20+INT LX,LY;("úú"
AND (LX<.5 OR (LX>1 AND LX<1.5)
));("ùù" AND ((LX>=.5 AND LX<=1)
OR LX>=1.5))
1270 LET LXN=LX+LXZ
1280 LET LYN=LY-LYZ
1290 PRINT AT 20+INT LX,LY;" "
1300 IF (LXN>1.9 OR LYN<0) THEN
RETURN
1310 LET LX=LXN
1320 LET LY=LYN
1330 GOTO 1260
1400 REM **REBEL**
1410 LET LY=2
1420 LET LXZ=.2
1430 LET LYZ=6/14
1440 FOR X=20 TO 16.8 STEP -.2
1450 IF INT X>=18 THEN PRINT AT
INT X,INT LY;" ±²º±"
1460 IF (INT X<20 AND INT X>16)
THEN PRINT AT 1+INT X,INT LY;"
òñóò";
1470 IF INT X<19 THEN PRINT AT 2
+INT X,INT LY-1;" "
1480 LET LY=LY+LYZ
1490 NEXT X
1500 RETURN
1600 REM **ENDING**
1610 FOR X=0 TO 21
1620 PRINT AT X,0;"
";
1630 NEXT X
1640 LET S$="STAR WARS"
1650 GOSUB 1800
1660 LET S$="A ZX81 DEMO"
1670 GOSUB 1800
1680 LET S$="BY"
1690 GOSUB 1800
1700 LET S$="STEVEN REID"
1710 GOSUB 1800
1720 LET S$="FROM 1983"
1730 GOSUB 1800
1740 LET S$="TO 2017"
1750 GOSUB 1800
1760 RETURN
1800 REM **SCROLL**
1810 LET L$="
"
1820 LET LTH=LEN S$
1830 LET GRW=(30-LTH)/6
1840 FOR X=5 TO 0 STEP -1
1850 LET M$=L$
1860 LET SIZE=LTH+X*GRW
1870 LET SPC=SIZE/LTH
1880 LET CTR=(30-SIZE)/2
1890 FOR Y=1 TO LTH
1900 LET M$(CTR+Y*SPC)=S$(Y)
1910 NEXT Y
1920 PRINT AT 6+X*2,0;M$;AT 8+X*
2,0;L$
1930 NEXT X
1940 FOR Y=1 TO LTH
1950 LET M$(CTR+Y*SPC)=S$(Y)
1960 NEXT Y
1970 PRINT AT 6,0;L$
1980 RETURN
2000 SAVE "STARWARS"
2010 RUN