15 DEFINT A-Z:KEY OFF:K=0:MN=0:Z=0
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 ADR=30:GOSUB 500:NEXTSHOW$=TM$:KK=0:GOSUB 600:NST!=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
63 ADR=0:GOSUB 500:REALTIME$=TM$:LINE(135,48)-(230,65),0,BF
65 EC=2:OC=2:BC=4:X=135:Y=48:D$=REALTIME$:GOSUB 60010:REM PRINT CIVILIAN TIME
75 GOSUB 600:IF TM!=>NST! THEN RUN"FAMILYDAY
78 IF KK=1 THEN GOTO 63
79 KK=1
80 X=25:Y=98:D$="TIME OF THE NEXT SHOW":GOSUB 60010
85 EC=3:OC=3:BC=4:X=135:Y=120:D$=NEXTSHOW$:GOSUB 60010:REM PRINT NEXT SHOWTIME
90 GOTO 63
500 TM$=TIME$:TM!=(3600*VAL(MID$(TM$,1,2)))+(60*VAL(MID$(TM$,4,2)))+VAL(MID$(TM$,7,2))+ADR
502 TMH=INT(TM!/3600):IF TMH>12 THEN TMH=TMH-12
504 TMM=TM!-3600*INT(TM!/3600):TMM=100+INT(TMM/60)
506 TMS=100+(TM!-60*INT(TM!/60))
510 TM$=RIGHT$(STR$(TMH),2)+":"+RIGHT$(STR$(TMM),2)+":"+RIGHT$(STR$(TMS),2)
520 RETURN
600 TM!=(3600*VAL(MID$(TM$,1,2)))+(60*VAL(MID$(TM$,4,2)))+VAL(MID$(TM$,7,2))
602 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