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