The program listing is below and can be copied and pasted into an emulator or pounded out on real hardware!
Owen (Opry99er) you did a fantastic job!
100 CALL CLEAR :: CALL SCREEN(2):: CALL MAGNIFY(3):: CALL CHAR(120,"FFFDBFFFF7FFBFFF")
110 CALL CHAR(96,"000000000000000000000000000000010000010E181010103F613F101D1BE0FC")
120 CALL CHAR(100,"1018FF00000000010080C060A0A020A10418F0A0E0B0101088888898103060C0")
130 CALL CHAR(104,"000000000000000000000000000000002727180F030D111F1A1F0808080F0001")
140 CALL CHAR(108,"BF0408BFF886870203FF124444D754FF0000008040402020E0B0B0D088F80000")
150 CALL CHAR(112,"0000000000000001010000000000000000000000000000808000000000000000")
160 CALL CHAR(116,"00071F3F7D7FFFF3F3FFFF6F7F1E1F0700E0F8FCFE9E9FFFFFBFFFEEFEF8F8E0")
170 CALL SPRITE(#1,96,2,3,100,#2,100,2,3,116,#3,104,2,19,100,#4,108,2,19,116)
180 CALL SPRITE(#5,116,2,50,180):: FOR I=8 TO 21 :: SX=INT(RND*170)+1 :: SY=INT(RND*220)+1
190 CALL SPRITE(#I,112,2,SX,SY):: MOT=INT(RND*5)+1 :: CALL MOTION(#I,0,MOT):: NEXT I
200 COL=3 :: FOR STAR=8 TO 21 :: CALL COLOR(#STAR,COL):: COL=COL+1 :: NEXT STAR
210 CALL HCHAR(24,1,120,32):: CALL COLOR(#1,13,#2,13,#3,13,#4,13,#5,15):: CALL COLOR(12,11,1,2,16,1)
220 CALL COLOR(#1,13,#2,13,#3,13,#4,13,#5,15):: CALL COLOR(12,11,1,1,16,1,5,16,1,6,16,1,7,16,1,8,16,1)
230 CALL MOTION(#1,5,0,#2,5,0,#3,5,0,#4,5,0)
240 TONE=INT(RND*440)+220 :: VOL=INT(RND*20)+1 :: CALL SOUND(50,TONE,VOL)
250 CALL POSITION(#1,X,Y)
260 IF X>145 THEN CALL DELSPRITE(#1,#2,#3,#4)ELSE 240
270 CALL SPRITE(#1,96,13,153,100,#2,100,13,153,116,#3,104,13,169,100,#4,108,13,169,116)
280 RESTORE 320 :: FOR I=6 TO 28 :: READ A :: CALL HCHAR(14,I,A):: NEXT I
290 RESTORE 330 :: FOR I=7 TO 27 :: READ A :: CALL HCHAR(16,I,A):: NEXT I
300 CALL SOUND(200,220,1):: CALL SOUND(1200,220,1,330,1,554,1)
310 GOTO 310
320 DATA 82,69,83,84,32,73,78,32,80,69,65,67,69,44,32,71,65,90,79,79,46,46,46
330 DATA 89,79,85,32,87,73,76,76,32,66,69,32,77,73,83,83,69,68,33,33,33