15 DEFINT A-Z:KEY OFF:SCREEN 1,0:COLOR 8,1:CLS:K=0:MN=0:Z=0 17 GOSUB 64800 20 DEF SEG=&HB800 25 GOSUB 60140 36 GOSUB 65027:REM SETUP INITIAL SECONDS,HOUR,MIN,SECOND 37 COUNTER=SECONDS:STARTTIME=COUNTER+10:REM BASE FOR CALCULATING SECONDS TO GO 50 GOSUB 400:REALTIME$=TM$ 61 SCREEN 1,0:COLOR 8,1:K=0:MN=0:Z=0 62 CLS:EC=0:OC=0:BC=3:X=75:Y=23:D$="THE TIME IS NOW":GOSUB 60010 65 EC=2:OC=2:BC=4:X=135:Y=48:D$=REALTIME$:GOSUB 60010:REM PRINT CIVILIAN TIME 75 GOSUB 65030:REM GET CURRENT SECONDS 76 TIMELEFT=STARTTIME-SECONDS:GOSUB 65030:REM CALCULATE THE MIN,SECOND LEFT 77 SECONDS=TIMELEFT:GOSUB 65045:IF MIN=-1 THEN FOR DELAY=1 TO 1000:NEXT:GOTO 123 78 TIMELEFT$=STR$(MIN)+" MIN, "+STR$(SECOND)+" SEC" 80 X=14:Y=98:D$="COUNTDOWN TO BLASTOFF":GOSUB 60010 85 EC=1:OC=1:X=75:Y=123:D$=TIMELEFT$:GOSUB 60010:FOR DELAY=1 TO 3000:NEXT 90 GOTO 50 120 GOSUB 64800 123 DEF SEG=&HB800 125 CLS:EC=2:OC=2:BC=4:X=70:Y=20:D$="LET'S BLAST OFF":GOSUB 60010 130 EC=2:OC=2:BC=4:X=60:Y=50:D$="TO THE WORLD OF":GOSUB 60010 132 EC=3:OC=3:BC=4:X=60:Y=80:D$="THE IBM PERSONAL":GOSUB 60010 135 EC=3:OC=3:BC=4:X=100:Y=110:D$="COMPUTER":GOSUB 60010 140 FOR PAUSE=1 TO 3000:NEXT:COLOR ,0 145 CLS:EC=1:OC=1:BC=4:X=60:Y=20:D$="IMAGINE THAT YOU":GOSUB 60010 150 EC=1:OC=1:BC=4:X=60:Y=50:D$="ARE AN ASTRONAUT":GOSUB 60010 152 EC=2:OC=2:BC=4:X=60:Y=80:D$="BLASTING OFF FROM":GOSUB 60010 155 EC=2:OC=2:BC=4:X=60:Y=110:D$="THE FAIRGROUNDS":GOSUB 60010 160 FOR PAUSE=1 TO 3000:NEXT:COLOR ,1 165 CLS:EC=3:OC=3:BC=4:X=60:Y=80:D$=" HERE WE GO!!! ":GOSUB 60010 170 GOSUB 60250 175 CLS:SCREEN 1,0:COLOR 2,0:K=0:MN=0:Z=0 177 CLS 180 DEF SEG=&HB800 185 CLS:EC=2:OC=2:BC=4:X=140:Y=80:D$="TEN":GOSUB 60010 190 CLS:EC=2:OC=2:BC=4:X=140:Y=80:D$="NINE":GOSUB 60010 195 CLS:EC=2:OC=2:BC=4:X=140:Y=80:D$="EIGHT":GOSUB 60010 197 COLOR 6,0 200 CLS:OS=0:EC=2:OC=2:BC=3:X=140:Y=80:D$="SEVEN":GOSUB 60010 205 CLS:EC=2:OC=2:BC=3:X=140:Y=80:D$="SIX":GOSUB 60010 210 CLS:EC=2:OC=2:BC=3:X=140:Y=80:D$="FIVE":GOSUB 60010 215 CLS:EC=2:OC=2:BC=3:X=140:Y=80:D$="FOUR":GOSUB 60010 217 COLOR 4,0 220 CLS:EC=3:OC=3:BC=2:X=140:Y=80:D$="THREE":GOSUB 60010 225 CLS:EC=3:OC=3:BC=2:X=140:Y=80:D$="TWO":GOSUB 60010 230 CLS:EC=3:OC=3:BC=2:X=140:Y=80:D$="ONE":GOSUB 60010 235 CLS:EC=3:OC=3:BC=2:X=100:Y=80:D$="BLAST OFF!!!!":GOSUB 60010 240 REM ******************************************************** 250 REM INSET NOISE AND BLASTOFF SEQUENCE HERE 260 REM ********************************************************** 270 RUN"BLASTOFF 400 TM$=TIME$:TM!=(3600*VAL(MID$(TM$,1,2)))+(60*VAL(MID$(TM$,4,2)))+VAL(MID$(TM$,7,2))+ADR 402 TMH=INT(TM!/3600):IF TMH>12 THEN TMH=TMH-12 404 TMM=TM!-3600*INT(TM!/3600):TMM=100+INT(TMM/60) 406 TMS=100+(TM!-60*INT(TM!/60)) 410 TM$=RIGHT$(STR$(TMH),2)+":"+RIGHT$(STR$(TMM),2)+":"+RIGHT$(STR$(TMS),2) 420 RETURN 60000 'SAVE"GCS",A 'GRAPHICS CHARACTER SUBROUTINES 60010 'DISPLAY STRING 60020 FOR I=1 TO LEN(D$):A=ASC(MID$(D$,I,1)) 60030 IF OS=128 THEN IF A<>32 THEN A=A+128 60040 'DISPLAY CHARACTER 60050 LX=X+W(A):IF LX>WID THEN X=0:Y=Y+SH:GOTO 60050 60060 LY=Y+H(A):IF LY>200 THEN Y=0:X=0:GOTO 60050 60070 IF (X AND 1)=0 THEN SWAP EC,OC 60080 IF BC<4 THEN LINE(X,Y)-(LX-1,LY-1),BC,BF 60090 K=POINT(X,Y):PSET(X,Y),K:FOR K=0 TO 2:IF CHAR$(A,K)<>"" THEN DRAW CHAR$(A,K) 60100 NEXT K:IF (X AND 1)=0 THEN SWAP EC,OC 60110 X=LX:IF X+SW>WID THEN X=0:Y=Y+SH:IF Y+SH>200 THEN Y=0 60120 NEXT I:RETURN 60130 ' 60140 'INITIALIZATION 60150 A=0:X=0:Y=0:LX=0:LY=0:EC=3:OC=3:BC=4:D$="":K=0:WID=320 60160 DIM CHAR$(255,2),H(255),W(255) 60170 'GET CHARACTER SET 60180 OPEN "ELEPH.EXE" FOR INPUT AS #1 60190 INPUT #1,DEC,H,W,K:IF DEC=0 THEN 60220 60200 FOR I=0 TO K-1:INPUT #1,D$:IF H(DEC)<>99 THEN CHAR$(DEC,I)=D$ 60210 NEXT I:H(DEC)=H:W(DEC)=W:GOTO 60190 60220 CLOSE #1:SH=H:SW=W:H(32)=SH:W(32)=SW:RETURN 60250 FOR BACKGROUND=1 TO 16 60252 FOR PAUSE=1 TO 300:NEXT 60255 FOR PALETTE=0 TO 1:NEXT 60257 COLOR BACKGROUND,PALETTE 60260 NEXT 60265 RETURN 64800 ' START.BAS SYSTEM STARTUP ROUTINE 6/9/81 PBK 64805 KEY OFF 64810 DIM A$(15),P$(15):SCREEN 0,1:WIDTH 40:COLOR 15,1,1:LOCATE ,,0 64815 GREEN=2: BLUE=9: CYAN=3: YELLOW=6 ELSE GREEN=7: BLUE=9: CYAN=7: YELLOW=7 64820 A$(13)= " Personal Computer " 64825 A$(1)=SPACE$(39):A$(2)=A$(1):A$(11)=A$(1):A$(12)=A$(1):A$(14)=A$(1):A$(15)=A$(1) 64830 A$(1)= " The " 64835 A$(3)= "???? ?????? ?? ??" 64840 A$(4)= "???? ??????? ??? ???" 64845 A$(5)=" ?? ?? ?? ??? ??? " 64850 A$(6)=" ?? ????? ???? ???? " 64855 A$(7)=" ?? ????? ????????? " 64860 A$(8)=" ?? ?? ?? ?? ??? ?? " 64865 A$(9)="???? ??????? ??? ? ???" 64870 A$(10)="???? ?????? ??? ? ???" 64875 CLS 64880 FOR I = 2 TO 40 64885 FOR J = 3 TO 10 64890 LOCATE J+5,I:PRINT "?"; 64895 NEXT J:SOUND 100+RND*3000,1:NEXT I 64900 FOR I = 1 TO 7 64905 FOR J = 3 TO 10 64910 LOCATE J+5,I:PRINT " "; 64915 NEXT J:SOUND 100+RND*3000,1:NEXT I 64920 FOR I=8 TO 33:FOR J=3 TO 10:IF MID$(A$(J),I-7,1)=" "THEN LOCATE J+5,I:PRINT " "; 64925 NEXT J:SOUND 100+RND*3000,1:NEXT I 64930 FOR I = 34 TO 40 64935 FOR J = 3 TO 10 64940 LOCATE J+5,I:PRINT " "; 64945 NEXT J:SOUND 100+RND*3000,1:NEXT I 64950 GOTO 64965 64955 FOR I=2 TO 12 64960 COLOR 15,BLUE:LOCATE I+5,5: PRINT SPACE$(3)+A$(I)+SPACE$(3): NEXT 64965 COLOR 15,BLUE:LOCATE 1+5,6: PRINT SPACE$(3)+A$(1)+SPACE$(3) 64970 SOUND 100+RND*3000,1 64975 COLOR 15,BLUE:LOCATE 13+5,2: PRINT SPACE$(3)+A$(13) 64980 SOUND 100+RND*3000,4 64985 RETURN 65027 MILTIME$=TIME$:MILHR$=LEFT$(MILTIME$,2):MILHR=VAL(MILHR$) 65028 IF MILHR>12 THEN REALHR=MILHR-12:REALHR$=STR$(REALHR) 65029 REALTIME$=REALHR$+MID$(TIME$,3,6) 65030 HR$=LEFT$(REALTIME$,2):MIN$=MID$(TIME$,4,2):SEC$=RIGHT$(TIME$,2) 65035 HR=VAL(HR$):MIN=VAL(MIN$):SEC=VAL(SEC$) 65040 SECONDS=(60*MIN)+SEC 65045 MIN=INT(SECONDS/60) 65050 SECOND=(SECONDS-(MIN*60)) 65060 RETURN