100 ! GRAPHICS ENTRY - 99'ER      CONTEST
110 ! SHUTTLE-SPRITE
120 ! BY CURT PURDY
130 ! LAUNCH SCENE
140 CALL CLEAR :: CALL SCREEN(2) :: RANDOMIZE :: CALL MAGNIFY(3)
150 FOR I=1 TO 14 :: CALL COLOR(I,1,1) :: NEXT I
160 P1=2
170 CALL CHAR(36,"000000000000000000000000000000002070717373767577777777777F7F7F7F") :: !SHUTTLE
180 CALL CHAR(40,"0000000000000103070F0F0F0F0F00007F7F7F7F7FFFFFFFFFFFFFFFFFFF7777") :: !SHUTTLES
190 CALL CHAR(44,"040E8ECECE6EAEEEEEEEEEEEFEFEFEFE00000000000000000000000000000000") :: !SHUTTLE
200 CALL CHAR(48,"FEFEFEFEFEFFFFFFFFFFFFFFFFFFEEEE00000000000080C0E0F0F0F0F0F00000") :: !SHUTTLE
210 CALL CHAR(52,"010307070F0F0F0F0F0F0F0F0F0F0F0F80C0F0F0F0F0F0F0F0F0F0F0F0F0F0F0") :: !TANK
220 CALL CHAR(128,"00000000000000000106000601000000000808080808080808C809C909090101") :: !MARKINGS
230 CALL CHAR(132,"0010101010101010101390939090808000000000000000008060006080000000") :: !MARKINGS
240 CALL CHAR(56,"3C3E3F7F7F7FFFFFFFFFFFFFFFBB55AA3C7CFCFEFEFEFFFFFFFFFFFFF7DDAA55") :: !FLAMES
250 CALL CHAR(60,"3C3E7F7F7FFFFFFFFFFFFFFFFBDDAA553C7CFEFEFEFFFFFFFFFFFFFFFFBB55AA") :: !FLAMES
260 CALL CHAR(64,"3C3E7F7FFFFF7F7FFFFFFFFFFFFFFFFF3C7CFEFEFFFFFEFEFFFFFFFFFFFFFFFF") :: !SPRITE SMOKE
270 CALL CHAR(106,"7F7FFFFF7F3F7F7F",107,"FEFFFFFEFCFEFFFE") :: !HCHAR SMOKE
280 CALL CHAR(68,"3F3F7F7FFFFF7F7FF0F0F8F8FCFCF8F8") :: !HCHAR SMOKE
290 CALL CHAR(80,"A040000000000000000000000000050200000000000050200000000000000000") :: !BIRDS
300 CALL CHAR(72,"0000030F1F337F7F000080C0F098FCFC") :: !BUNKER
310 CALL CHAR(84,"FFFFFFD5FFD5FFD5FFD5FFD5FFD6FED6FEFFFFABFFABFFABFFABFFABFF6B7F6B7F") :: !BUILDINGS
320 CALL CHAR(74,"7CDE7F3F7FFFFF3F70FCFCFFFFFFFEFC") :: !CLOUDS
330 CALL CHAR(88,"0000000010387CDEFABE743810101010") :: !TREE
340 CALL CHAR(92,"FFFFFFFFFFFFFFFF") :: !GRASS
350 CALL CHAR(76,"FFFFFFFFFFFFFFFF") :: !CEMENT
360 CALL CHAR(120,"FFFFFF7F7F3F3F1F",121,"FFFFFFFEFEFCFCF8") :: !CEMENT
370 CALL CHAR(122,"0F07030000000000FFFFFFFF3F0700",124,"FFFFFFFFFFFFFF0FFFFFFFFFFFFFFFF0",126,"FFFFFFFFFCE00000F0E0C00000000000") :: !CEMENT
380 CALL HCHAR(23,1,92,64) :: CALL HCHAR(23,16,76,4) :: CALL HCHAR(23,15,120) :: CALL HCHAR(23,20,121)
390 CALL HCHAR(24,15,122) :: CALL HCHAR(24,16,123) :: CALL HCHAR(24,17,124) :: CALL HCHAR(24,18,125) :: CALL HCHAR(24,19,126) :: CALL HCHAR(24,20,127)
400 CALL HCHAR(21,5,88) :: CALL HCHAR(22,5,89) :: CALL HCHAR(21,25,88) :: CALL HCHAR(22,25,89)
410 CALL HCHAR(22,11,72) :: CALL HCHAR(22,12,73) :: CALL HCHAR(22,22,72) :: CALL HCHAR(22,23,73)
420 CALL HCHAR(21,7,84) :: CALL HCHAR(22,7,85) :: CALL HCHAR(21,8,86) :: CALL HCHAR(22,8,87)
430 CALL HCHAR(21,27,84) :: CALL HCHAR(22,27,85) :: CALL HCHAR(21,28,86) :: CALL HCHAR(22,28,87)
440 CALL HCHAR(10,8,74) :: CALL HCHAR(10,9,75) :: CALL HCHAR(13,25,74) :: CALL HCHAR(13,26,75)
450 CALL SPRITE(#1,128,2,168,120,#2,132,2,168,136,#7,52,2,148,128)
460 CALL SPRITE(#3,36,2,152,120,#4,40,2,168,120,#5,44,2,152,136,#6,48,2,168,136)
470 CALL COLOR(1,1,8,5,2,8,6,15,8,7,14,15,8,3,8,9,13,8,10,2,15,12,15,3)
480 CALL COLOR(#7,7,#3,16,#4,16,#5,16,#6,16)
490 CALL SPRITE(#8,80,2,100,10,0,1,#9,80,2,110,234,0,-1)
500 FOR D=1 TO 2000 :: NEXT D
510 CALL SPRITE(#11,56,10,182,128) :: CALL SOUND(4250,110,10,-7,5) :: FOR D=1 TO 100 :: NEXT D
520 CALL MOTION(#8,0,-4,#9,0,4) :: FOR D=1 TO 30 :: NEXT D
530 CALL HCHAR(24,17,104) :: CALL HCHAR(24,18,105) :: FOR D=1 TO 200 :: NEXT D
540 CALL HCHAR(24,17,106) :: CALL HCHAR(24,18,107) :: FOR D=1 TO 200 :: NEXT D :: CALL SOUND(-4250,110,5,-7,0)
550 CALL HCHAR(23,17,106) :: CALL HCHAR(23,18,107) :: FOR D=1 TO 200 :: NEXT D
560 CALL SPRITE(#10,64,2,187,128) :: CALL DELSPRITE(#9,#8) :: CALL HCHAR(22,17,68) :: CALL HCHAR(22,18,69)
570 FOR I=-2 TO-7 STEP-1 :: CALL SOUND(-4000,110,3-I,-7,-2-I)
580 CALL MOTION(#7,I,0,#4,I,0,#6,I,0,#3,I,0,#5,I,0,#1,I,0,#2,I,0,#11,I,0)
590 FOR J=1 TO 11 :: P=58+P1 :: CALL PATTERN(#11,P) :: P1=-P1
600 IF I<-3 THEN CALL POSITION(#11,Y,X) :: Y1=INT(Y/8+1.3) :: CALL HCHAR(Y1,17,68) :: CALL HCHAR(Y1,18,69)
610 NEXT J :: NEXT I :: CALL DELSPRITE(#7,#1,#3)
620 CALL HCHAR(1,17,68) :: CALL HCHAR(1,18,69) :: CALL DELSPRITE(#2,#4,#5,#6)
630 CALL SOUND(-4000,110,12,-7,7) :: FOR D=1 TO 60 :: NEXT D :: CALL DELSPRITE(#11)
640 FOR D=1 TO 500 :: NEXT D
650 ! SKY SCENE
660 CALL CHAR(36,"0000000000000103030203030303030300000000000080C0C040C0C0C0C0C0C0") :: !SHUTTLE
670 CALL SOUND(-4000,110,14,-7,8)
680 CALL CHAR(40,"0303070F1F3F7F7FFFFFFFFF03030000C0C0E0F0F8FCFEFEFFFFFFFFC0C00000") :: !SHUTTLE
690 CALL CHAR(96,"0004040404040404740575050101000000202020202020202EA0AEA080800000") :: !MARKINGS
700 CALL CHAR(52,"000103030707070707070707070707070080C0C0E0E0E0E0E0E0E0E0E0E0E0E0") :: !TANK
710 CALL CHAR(112,"0000000818181818181818181818181800000000000000000000000000000000") :: !LEFT BOOSTER
720 CALL CHAR(116,"1818181818181818181818181818000000000000000000000000000000000000") :: !LEFT BOOSTER
730 CALL CHAR(128,"0000000000000000000000000000000000000010181818181818181818181818") :: !RIGHT BOOSTER
740 CALL CHAR(132,"0000000000000000000000000000000018181818181818181818181818180000") :: !RIGHT BOOSTER
750 CALL SOUND(-4000,110,16,-7,9)
760 CALL CHAR(56,"03030101010000000000000000000000C0C08080800000000000000000000000") :: !BLUE FLAME
770 CALL CHAR(60,"1818080800000000000000000000000018181010000000000000000000000000") :: !RED FLAME
780 CALL CHAR(64,"07070F0F0707030307070F0F07070303808080C0C0C0E0E0E0F0F0F0E0E0C0C0") :: !SPRITE SMOKE
790 CALL CLEAR :: CALL DELSPRITE(ALL) :: CALL COLOR(1,2,2,2,2,2)
800 FOR I=13 TO 24 :: CALL SPRITE(#I,64,2,I*8,128) :: NEXT I
810 CALL SPRITE(#1,96,2,88,128,#2,36,2,72,128,#3,40,2,88,128,#4,52,2,72,128)
820 CALL SPRITE(#6,56,2,104,128,#7,60,2,103,128)
830 CALL SPRITE(#8,112,2,72,128,#9,116,2,88,128,#10,128,2,72,128,#11,132,2,88,128)
840 CALL COLOR(1,6,6,2,7,6) :: CALL COLOR(#2,16,#3,16,#4,7,#6,8,#7,9,#8,16,#9,16,#10,16,#11,16)
850 CALL CHAR(68,"030F1F3F7F7FFFFFFFFF7F7F3F1F0F03C0F0F8FCFEFEFFFFFFFFFEFEFCF8F0C0") :: ! MOON
860 CALL CHAR(72,"00000001020110000C1E3F3F3E1E0C0000000000801000000820502000000000") :: ! CRATERS
870 FOR D=1 TO 300 :: NEXT D :: CALL DELSPRITE(#7) :: CALL SOUND(-4000,-6,18)
880 FOR I=13 TO 24 :: CALL MOTION(#I,3,0) :: NEXT I
890 CALL MOTION(#9,1,-1,#8,1,-1,#8,3,-2,#9,3,-2) :: CALL MOTION(#11,1,1,#10,1,1,#10,3,2,#11,3,2)
900 CALL SPRITE(#26,68,16,1,56,#25,72,15,1,56) :: CALL MOTION(#26,2,0,#25,2,0,#25,3,0,#26,3,0)
910 FOR J=1 TO 10 :: FOR I=13 TO 24 :: CALL POSITION(#I,Y,X) :: IF Y>190 THEN CALL DELSPRITE(#I)
920 NEXT I :: CALL SOUND(-4250,-6,18) :: NEXT J :: CALL DELSPRITE(#8,#9,#10,#11) :: FOR D=1 TO 200 :: NEXT D
930 CALL SOUND(-4250,-6,20) :: CALL MOTION(#25,0,0,#26,0,0)
940 CALL MOTION(#6,-2,0,#4,-2,0,#3,-2,0,#2,-2,0,#1,-2,0,#1,-4,0,#2,-4,0,#3,-4,0,#4,-4,0,#6,-4,0)
950 FOR D=1 TO 470 :: NEXT D :: CALL SOUND(-4250,-6,22) :: FOR D=1 TO 350 :: NEXT D
960 CALL DELSPRITE(#4,#2) :: FOR D=1 TO 40 :: NEXT D :: CALL COLOR(#6,1) :: CALL DELSPRITE(#1,#3,#4,#6) :: CALL SOUND(-4000,-6,24)
970 FOR D=1 TO 200 :: NEXT D :: CALL SOUND(-4000,-6,26) :: FOR D=1 TO 200 :: NEXT D :: CALL SOUND(-4000,-6,28)
980 ! EARTH SCENE
990 FOR I=2 TO 14 :: CALL COLOR(I,1,1) :: NEXT I
1000 ! EARTH CHARACTERS
1010 CALL CHAR(100,"00000000030F3FFF030F3FFFFFFFFFFF0000000000031FFF0000010F7FFFFFFF")
1020 CALL CHAR(104,"073FFFFFFFFFFFFF0000000000000FFF000000000FFFFFFF00000FFFFFFFFFFF")
1030 CALL CHAR(108,"037FFFFFFFFFFFFF000000000000000F0000000000003FFF0000000007FFFFFF")
1040 CALL CHAR(112,"0000000FFFFFFFFF00000FFFFFFFFFFF0003FFFFFFFFFFFF00FFFFFFFFFFFFFF")
1050 CALL CHAR(116,"FFFFFFFFFFFFFFFF00C0FFFFFFFFFFFF0000F0FFFFFFFFFF000000F0FFFFFFFF")
1060 CALL CHAR(120,"00000000E0FFFFFF000000000000FCFF00000000000000F0C0FEFFFFFFFFFFFF")
1070 CALL CHAR(124,"0000F0FFFFFFFFFF00000000F0FFFFFF000000000000F0FFE0FCFFFFFFFFFFFF")
1080 CALL CHAR(128,"000080F0FEFFFFFF0000000000C0F8FFC0F0FCFFFFFFFFFF00000000C0F0FCFF")
1090 CALL CHAR(136,"70F8F860061F1F0E")
1100 CALL CHAR(36,"0000000000FFFFFFFFFFFF00000000000000000000F08CFEFFFFFE0000000000") :: ! SHUTTLE
1110 CALL CHAR(40,"E0F0787C3EFFFFFFFF7F3F00000000000000000000FFFFFFFFFFFF0000000000") :: ! SHUTTLE
1120 CALL CHAR(44,"00000000FFFFFFFFFFFFFFFF0000000000000000F0FCFEFFFFFEFCF000000000") :: ! TANK
1130 CALL CHAR(48,"000000003F7FFFFFFFFF7F3F0000000000000000FFFFFFFFFFFFFFFF00000000") :: ! TANK
1140 CALL CHAR(52,"00000000AA55AA5555AA55AA0000000000000000A054AA5555AA54A000000000") :: ! DISINTERGRATING TANK
1150 CALL CHAR(56,"000000002A55AA5555AA552A0000000000000000AA55AA5555AA55AA00000000") :: !DISINTERGRATING TANK
1160 CALL CHAR(60,"0420048011002400800800220004000100800024001041048010420008410012") :: ! HEAVY DEBRIS
1170 CALL CHAR(64,"2001000020000002800000000800000000000000080000000010010000004001") :: ! LIGHT DEBRIS
1180 ! CLOUDS
1190 CALL CHAR(76,"E3E3E3717138381C1C0F0F0701000000008080C0C0E0F87E1F07C0F0FCFE1F07")
1200 CALL CHAR(80,"0C081931E3830F3EF8E000030F3EF8E0C7C7C78E8E1C1C383830F0E080000000")
1210 CALL CHAR(88,"00000001070F0C1C3838707171E3E3E3071F7CF0C000071F7CF0C0C3868C1810")
1220 CALL CHAR(92,"F0FC7F3F0F0300E0F87E3F0F03010100000000C0F0F8F83C3C1E1E8F8FC7C7C7")
1230 CALL CHAR(96,"030F3E3C7073E2E4F2F9586E23380E03C0E0783C8E663399499B32E68C38E080")
1240 CALL DELSPRITE(ALL) :: CALL COLOR(1,2,2)
1250 CALL HCHAR(19,10,109) :: CALL HCHAR(19,11,110) :: CALL HCHAR(19,12,111) :: CALL HCHAR(19,13,112) :: CALL HCHAR(19,14,113)
1260 CALL HCHAR(19,15,114) :: CALL HCHAR(19,16,115,2) :: CALL HCHAR(19,18,117) :: CALL HCHAR(19,19,118)
1270 CALL HCHAR(19,20,119) :: CALL HCHAR(19,21,120) :: CALL HCHAR(19,22,121) :: CALL HCHAR(19,23,122)
1280 CALL HCHAR(20,6,105) :: CALL HCHAR(20,7,106) :: CALL HCHAR(20,8,107) :: CALL HCHAR(20,9,108) :: CALL HCHAR(20,10,116,14)
1290 CALL HCHAR(20,24,123) :: CALL HCHAR(20,25,124) :: CALL HCHAR(20,26,125) :: CALL HCHAR(20,27,126)
1300 CALL HCHAR(21,3,102) :: CALL HCHAR(21,4,103) :: CALL HCHAR(21,5,104) :: CALL HCHAR(21,6,116,22)
1310 CALL HCHAR(21,28,127) :: CALL HCHAR(21,29,128) :: CALL HCHAR(21,30,129)
1320 CALL HCHAR(22,1,100) :: CALL HCHAR(22,2,101) :: CALL HCHAR(22,3,116,28) :: CALL HCHAR(22,31,130) :: CALL HCHAR(22,32,131)
1330 CALL HCHAR(23,1,116,64)
1340 CALL HCHAR(20,20,136,4)
1350 CALL HCHAR(21,6,136) :: CALL HCHAR(21,21,136,3) :: CALL HCHAR(21,26,136,2)
1360 CALL HCHAR(22,3,136,4) :: CALL HCHAR(22,21,136,2) :: CALL HCHAR(22,25,136,6)
1370 CALL HCHAR(23,1,136,3) :: CALL HCHAR(23,5,136,2)
1380 CALL HCHAR(23,22,136,4) :: CALL HCHAR(23,28,136,2) :: CALL HCHAR(23,31,136,2)
1390 CALL HCHAR(24,1,136,3) :: CALL HCHAR(24,5,136,3) :: CALL HCHAR(24,21,136,3) :: CALL HCHAR(24,26,136,7)
1400 CALL SPRITE(#15,96,1,162,97,#16,92,1,154,117,#17,88,1,154,77)
1410 CALL SPRITE(#19,80,1,170,117,#20,76,1,170,77)
1420 CALL SPRITE(#3,36,1,10,190,#4,40,1,10,175,#5,44,1,17,197,#6,48,1,17,181)
1430 CALL COLOR(9,6,2,10,6,2,11,6,2,12,6,2,13,6,2,14,15,6)
1440 CALL COLOR(#3,16,#4,16,#5,7,#6,7,#15,15,#16,15,#17,15,#18,15,#19,15,#20,15)
1450 FOR D=1 TO 400 :: NEXT D
1460 ! TANK SEPERATION SCENE
1470 CALL MOTION(#6,1,0,#5,1,0,#5,2,0,#6,2,0)
1480 FOR D=1 TO 1700 :: NEXT D :: CALL COLOR(#5,9,#6,9)
1490 FOR I=7 TO 10 :: CALL POSITION(#5,R,C) :: CALL SPRITE(#I,64,9,R,C,0,-5) :: CALL SOUND(-2000,-5,29)
1500 FOR D=1 TO 120 :: NEXT D :: NEXT I :: CALL COLOR(#5,10,#6,10)
1510 FOR I=11 TO 14 :: CALL POSITION(#5,R,C) :: CALL SPRITE(#I,60,9,R,C,0,-5) :: CALL SOUND(-1500,-5,29)
1520 IF I=11 THEN CALL PATTERN(#5,52,#6,56) :: CALL COLOR(#5,16,#6,16) :: CALL MOTION(#6,0,-4)
1530 IF I=12 THEN CALL COLOR(#5,10,#6,10)ELSE IF I=13 THEN CALL MOTION(#5,0,-4)
1540 FOR D=1 TO 100 :: NEXT D :: NEXT I :: CALL DELSPRITE(#6) :: FOR D=1 TO 100 :: NEXT D :: CALL DELSPRITE(#5)
1550 FOR J=1 TO 18 :: FOR I=7 TO 14 :: CALL POSITION(#I,R,C) :: IF C<14 THEN CALL DELSPRITE(#I)
1560 NEXT I :: NEXT J
1570 ! SATELITE LAUNCH SCENE
1580 CALL CHAR(44,"000000FFFF00FFFFFFFFFF00000000000000008080F08CFEFFFFFE0000000000") :: ! SHUTTLE DOOR OPENING
1590 CALL CHAR(48,"E0F0787D3FFFFFFFFF7F3F0000000000000000FFFF00FFFFFFFFFF0000000000") :: ! SHUTTLE DOOR OPENING
1600 CALL CHAR(52,"00FFFFFFFF00FFFFFFFFFF00000000000080808080F08CFEFFFFFE0000000000") :: ! SHUTTLE DOOR OPEN
1610 CALL CHAR(56,"E0F1797D3FFFFFFFFF7F3F000000000000FFFFFFFF00FFFFFFFFFF0000000000") :: ! SHUTTLE DOORS OPEN
1620 CALL CHAR(60,"00000000000000F000F000000000000000000000000000000000000000000000") :: ! FRONT FLAMES
1630 CALL CHAR(64,"00000000000000000000000000000000000000000000070F0700000000000000") :: ! REAR FLAMES
1640 CALL CHAR(68,"00000003000303030301010100000000000080E080E0E0E0E0C0C04000000000") :: ! LAUNCH SATELITE
1650 CALL CHAR(72,"000000000000000000000001010100000000000000000000000000C0C0C08000") :: ! SATELITE FLAMES
1660 CALL SOUND(1000,-6,14) :: CALL SPRITE(#1,60,8,10,205) :: FOR D=1 TO 250 :: NEXT D
1670 CALL DELSPRITE(#1) :: CALL MOTION(#3,1,-1,#4,1,-1,#4,2,-2,#3,2,-2) :: FOR D=1 TO 1500 :: NEXT D
1680 CALL SOUND(1500,-6,14) :: CALL POSITION(#4,R,C) :: CALL SPRITE(#1,64,8,R+1,C-16,2,-2) :: FOR D=1 TO 300 :: NEXT D
1690 CALL DELSPRITE(#1) :: CALL MOTION(#4,1,-1,#3,1,-1,#3,0,0,#4,0,0) :: CALL POSITION(#3,R,C) :: CALL LOCATE(#4,R,C-15)
1700 FOR D=1 TO 500 :: NEXT D :: CALL PATTERN(#3,44,#4,48) :: FOR D=1 TO 200 :: NEXT D :: CALL PATTERN(#3,52,#4,56) :: FOR D=1 TO 900 :: NEXT D
1710 CALL POSITION(#4,R,C) :: CALL SPRITE(#7,68,14,R-2,C+8,-1,0) :: FOR D=1 TO 900 :: NEXT D
1720 CALL SOUND(4250,-6,20) :: CALL POSITION(#7,R,C) :: CALL SPRITE(#8,72,10,R,C,-1,0) :: CALL MOTION(#8,-3,0,#7,-3,0)
1730 CALL SOUND(-4250,-6,20) :: FOR D=1 TO 270 :: NEXT D :: CALL MOTION(#7,-4,0,#8,-4,0) :: CALL SOUND(-4250,-6,24)
1740 FOR D=1 TO 270 :: NEXT D :: CALL MOTION(#8,-5,0,#7,-5,0) :: CALL SOUND(-2500,-6,28)
1750 FOR D=1 TO 420 :: NEXT D :: CALL DELSPRITE(#7,#8)
1760 ! SATELITE RECOVERY SCENE
1770 CALL CHAR(68,"0000000000010107050103020200000000000000008080E0A080C04040000000") :: ! MAN ARMS DOWN
1780 CALL CHAR(72,"00000000000101070101030202000000000000000080A0E08080808080000000") :: ! MAN ARMS UP
1790 CALL CHAR(84,"0000000000000000000000000000000000000000000000000070700000000000") :: ! BACKPACK FLAME
1800 CALL CHAR(132,"0F0A0F0A0F0A7FFFFF7F0A0F0A0F0A0F8082848890A0FEFFFFFEA0908884828") :: ! RECOVERY SATELITE
1810 CALL CHAR(140,"070500000000000000000000000000000080C06030180C06030103060C000000") :: ! CRANE
1820 FOR D=1 TO 350 :: NEXT D :: CALL POSITION(#4,R,C) :: CALL SPRITE(#7,140,16,R-2,C+8,-1,0) :: FOR D=1 TO 500 :: NEXT D :: CALL MOTION(#7,0,0)
1830 FOR D=1 TO 400 :: NEXT D :: CALL SPRITE(#8,132,3,R-18,256,0,-4)
1840 CALL COINC(#7,#8,8,CO) :: IF CO THEN 1850 ELSE 1840
1850 FOR D=1 TO 90 :: NEXT D :: CALL MOTION(#8,0,0) :: FOR D=1 TO 500 :: NEXT D
1860 CALL SPRITE(#5,68,16,R-4,C+4,-1,2)
1870 FOR D=1 TO 650 :: NEXT D :: CALL PATTERN(#5,72) :: FOR D=1 TO 100 :: NEXT D
1880 CALL POSITION(#5,R,C) :: CALL SPRITE(#6,84,10,R-1,C,-1,2) :: CALL SOUND(-1000,-5,29) :: FOR D=1 TO 200 :: NEXT D
1890 CALL MOTION(#6,0,0,#5,0,0) :: CALL COLOR(#6,1) :: CALL PATTERN(#5,68) :: FOR D=1 TO 400 :: NEXT D
1900 CALL PATTERN(#5,72) :: CALL COLOR(#6,10) :: CALL SOUND(1000,-5,29) :: CALL MOTION(#6,0,-2,#5,0,-2)
1910 FOR D=1 TO 200 :: NEXT D :: CALL DELSPRITE(#6) :: FOR D=1 TO 870 :: NEXT D :: CALL PATTERN(#5,68) :: CALL MOTION(#5,0,0)
1920 FOR D=1 TO 300 :: NEXT D :: CALL MOTION(#5,0,1) :: P1=2 :: J=0
1930 J=J+1 :: FOR I=1 TO 8 :: P=70+P1 :: CALL PATTERN(#5,P) :: P1=-P1 :: FOR D=1 TO 50 :: NEXT D :: NEXT I
1940 CALL MOTION(#5,0,0) :: ON J GOTO 1930,1950,1960,1970,1980
1950 CALL CHAR(132,"00000F0A0F0A7FFFFF7F0A0F0A0F00000000848890A0FEFFFFFEA0908880000") :: GO TO 1930
1960 CALL CHAR(132,"000000000F0A7FFFFF7F0A0F000000000000000090A0FEFFFFFEA0900000000") :: GO TO 1930
1970 CALL CHAR(132,"0000000000007FFFFF7F000000000000000000000000FEFFFFFE00000000000") :: CALL MOTION(#5,0,1) :: GO TO 1930
1980 CALL MOTION(#7,1,0,#8,1,0,#8,1,0,#7,1,0) :: FOR D=1 TO 350 :: NEXT D
1990 CALL CHAR(140,"070500000000000000000000000000000080C06030180C000000000000000000") :: ! CRANE
2000 FOR D=1 TO 350 :: NEXT D :: CALL DELSPRITE(#7,#8) :: FOR D=1 TO 200 :: NEXT D
2010 CALL PATTERN(#5,72) :: CALL POSITION(#5,R,C) :: CALL SPRITE(#6,84,10,R,C-1) :: CALL SOUND(800,-5,29)
2020 CALL MOTION(#6,1,-1,#5,1,-1) :: FOR D=1 TO 200 :: NEXT D :: CALL DELSPRITE(#6) :: CALL PATTERN(#5,68)
2030 FOR D=1 TO 820 :: NEXT D :: CALL DELSPRITE(#5) :: CALL POSITION(#3,R,C)
2040 FOR D=1 TO 400 :: NEXT D :: CALL PATTERN(#3,44,#4,48) :: FOR D=1 TO 200 :: NEXT D :: CALL PATTERN(#3,36,#4,40)
2050 M=INT(RND+.3) :: IF M=0 THEN GOSUB 2430 :: GOTO 2110
2060 CALL CHAR(44,"1A161415352D2B2A3E7EFFFFFFFF7E3CD0B0A0A06040C0808080800000000000") :: ! COMET HEAD
2070 CALL CHAR(48,"00010204091B1236246D495BD296B5A58020489224499264C8903060C0808000") :: ! COMET TAIL
2080 CALL SPRITE(#1,44,16,18,252,#2,48,16,2,256) :: CALL MOTION(#1,0,-2,#2,0,-2,#2,0,-4,#1,0,-4)
2090 CALL POSITION(#1,R,C) :: IF C>2 THEN 2090
2100 FOR D=1 TO 30 :: NEXT D :: CALL DELSPRITE(#2,#1)
2110 CALL POSITION(#4,R,C) :: CALL SPRITE(#2,64,8,R,C-15) :: CALL SOUND(4250,-6,14)
2120 CALL MOTION(#4,0,1,#3,0,1,#2,0,1,#3,0,2,#4,0,2,#2,0,2)
2130 FOR D=1 TO 200 :: NEXT D :: CALL MOTION(#2,0,3,#3,0,3,#4,0,3) :: FOR D=1 TO 200 :: NEXT D :: CALL MOTION(#4,0,4,#3,0,4,#2,0,4)
2140 FOR D=1 TO 200 :: NEXT D :: CALL MOTION(#2,0,5,#3,0,5,#4,0,5) :: FOR D=1 TO 200 :: NEXT D :: CALL MOTION(#4,0,6,#3,0,6,#2,0,6)
2150 CALL DELSPRITE(#2) :: FOR D=1 TO 690 :: NEXT D
2160 CALL DELSPRITE(#3) :: FOR D=1 TO 120 :: NEXT D :: CALL DELSPRITE(#4) :: FOR D=1 TO 500 :: NEXT D
2170 CALL CHAR(36,"000080C0E070FFFFFF7F000000000000000000000000F8E6FFFE000000000000") :: ! SHUTTLE #1
2180 CALL CHAR(40,"0000006070387F7F7F3F000000000000000000000000F0CCFEFC000000000000") :: ! SHUTTLE #2
2190 CALL CHAR(44,"0000002030383F3F1F00000000000000000000000000F0F8FC00000000000000") :: ! SHUTTLE #3
2200 CALL CHAR(48,"000000003C3F3F3F3C000000000000000000000000F8FCF80000000000000000") :: ! TURNING SHUTTLE
2210 CALL CHAR(52,"000000383C3F3F3F3C380000000000000000000000F8FCF80000000000000000") :: ! WINGED SHUTTLE #1
2220 CALL CHAR(56,"000000181C1F1F1F1C180000000000000000000000F8FCF80000000000000000") :: ! WINGED SHUTTLE #2
2230 CALL CHAR(60,"000000000C0E0F0F0F0E0C0000000000000000000000F0F8F000000000000000") :: ! WINGED SHUTTLE #3
2240 CALL CHAR(64,"00000000000C0E0F0F0E0C000000000000000000000000E0E000000000000000") :: ! WINGED SHUTTLE #4
2250 CALL CHAR(68,"0000000000000607070600000000000000000000000000C0C000000000000000") :: ! WINGED SHUTTLE #5
2260 CALL CHAR(72,"0000000000000203020000000000000000000000000000800000000000000000") :: ! WINGED SHUTTLE #6
2270 CALL CHAR(84,"0000000000000001000000000000000000000000000000800000000000000000") :: ! LAST WINGED SHUTTLE
2280 CALL SPRITE(#1,36,16,R,1,0,4) :: FOR D=1 TO 400 :: NEXT D
2290 CALL PATTERN(#1,40) :: FOR D=1 TO 300 :: NEXT D
2300 CALL PATTERN(#1,44) :: FOR D=1 TO 200 :: NEXT D
2310 CALL PATTERN(#1,48) :: CALL MOTION(#1,1,4) :: FOR D=1 TO 150 :: NEXT D
2320 CALL MOTION(#1,2,4) :: CALL PATTERN(#1,52) :: FOR D=1 TO 200 :: NEXT D
2330 CALL MOTION(#1,3,4) :: CALL PATTERN(#1,56) :: FOR D=1 TO 200 :: NEXT D
2340 CALL PATTERN(#1,60) :: FOR D=1 TO 200 :: NEXT D
2350 CALL PATTERN(#1,64) :: FOR D=1 TO 200 :: NEXT D
2360 CALL PATTERN(#1,68) :: FOR D=1 TO 200 :: NEXT D
2370 CALL PATTERN(#1,72) :: FOR D=1 TO 300 :: NEXT D
2380 CALL PATTERN(#1,84) :: FOR D=1 TO 350 :: NEXT D
2390 CALL DELSPRITE(#1) :: FOR D=1 TO 800 :: NEXT D
2400 CALL DELSPRITE(ALL) :: CALL CLEAR
2410 STOP
2420 ! METEOR SCENE
2430 CALL CHAR(140,"000000000000000103070E3E7CF8F0E0010204081830E0C08000000000000000") :: ! METEOR
2440 CALL CHAR(44,"0000000008060703030706080000000000000000106040C0C0E0601000000000") :: ! EXPLOSION #1
2450 CALL CHAR(48,"000025191E2F0F37570F2F1E192401000080249878F0F0EAECF0F07898A40000") :: ! EXPLOSION #2
2460 CALL CHAR(52,"0102153D161F2D57B74D3F163D120100008048BC68FCB2EDEAB4F868BCA84080") :: ! EXPLOSION #3
2470 CALL CHAR(56,"02152A552A55AA55AA55AA552A552A05A054AA54AA55AA55AA55AA54AA54A840") :: ! EXPLOSION BALL
2480 CALL CHAR(60,"0002082104004804A10008440020090280108400220188022900821040042040") :: ! DISINTEGRATING BALL
2490 CALL CHAR(84,"00000000000000000000000000000000000000000000F8463F1F7E0000000000") :: ! FRONT SHUTTLE FRAGMENT
2500 CALL CHAR(68,"00000000000103070F1F19030300000000000060E0F8F8F8F0E0C08000000000") :: ! MIDDLE SHUTTLE FRAGMENT
2510 CALL CHAR(72,"000000000C0E1F3F7FFFFFFF030000000000004060E0F0F8FCFEFEFE80000000") :: ! REAR SHUTTLE FRAGMENT
2520 M=INT(RND+.3) :: IF M=1 THEN M1=1 ELSE M1=130
2530 CALL CHAR(40,"E0F0787C3EFFFFFFFF7F3F00000000000000000000FEFEFEFEFEFE0000000000") :: ! SHUTTLE
2540 CALL SPRITE(#1,140,9,M1,256,32,-40)
2550 FOR I=1 TO 300 :: CALL COINC(ALL,CO) :: IF CO THEN 2590
2560 NEXT I
2570 CALL POSITION(#1,R1,C1) :: IF R1<180 THEN 2570
2580 CALL DELSPRITE(#1) :: CALL CHAR(40,"E0F0787C3EFFFFFFFF7F3F00000000000000000000FFFFFFFFFFFF0000000000") :: RETURN
2590 CALL DELSPRITE(#1) :: CALL SOUND(1000,-7,5) :: CALL SPRITE(#1,44,10,R,C-8)
2600 FOR D=1 TO 150 :: NEXT D :: CALL SOUND(-1000,-7,2) :: CALL PATTERN(#1,48) :: FOR D=1 TO 150 :: NEXT D
2610 CALL SPRITE(#3,84,16,R,C,-3,5,#4,72,16,R,C-8,2,-5,#2,68,16,R,C-16,-5,-2)
2620 CALL SOUND(-4000,-7,0) :: CALL PATTERN(#1,52) :: FOR D=1 TO 300 :: NEXT D
2630 CALL PATTERN(#1,56) :: FOR I=3 TO 29 STEP 2 :: CALL SOUND(-200,-7,I) :: FOR D=1 TO 20 :: NEXT D :: NEXT I :: CALL COLOR(#1,9)
2640 FOR D=1 TO 220 :: NEXT D :: CALL COLOR(#1,7) :: FOR D=1 TO 180 :: NEXT D :: CALL DELSPRITE(#4,#3)
2650 FOR D=1 TO 30 :: NEXT D :: CALL DELSPRITE(#2)
2660 CALL PATTERN(#1,60) :: CALL COLOR(#1,10)
2670 FOR D=1 TO 400 :: NEXT D :: CALL COLOR(#1,9) :: FOR D=1 TO 400 :: NEXT D :: CALL COLOR(#1,7)
2680 FOR D=1 TO 500 :: NEXT D :: CALL DELSPRITE(#1)
2690 FOR D=1 TO 800 :: NEXT D
2700 CALL DELSPRITE(ALL) :: CALL CLEAR
2710 END