Compucolor.org – Virtual Media

Listing of file='TIME.BAS;01' on disk='vmedia/taylor_1-sector.ccvf'

10 REM  ********************************************************
20 REM
30 REM       C L O C K   D I S P L A Y   P R O G R A M
40 REM
50 REM  ********************************************************
60 REM
70 REM  WILL RUN ON 16K AND 32K MACHINES WITH FCS V6.78 AND 8.79
80 REM  ALLOWS TIME TO BE SET AND DISPLAYED. CPU RESET STOPS THE
90 REM  DISPLAY, AS DOES ESC <W>. THIS IS UNAVOIDABLE.
100 GOTO  50000:REM  FIX TOP OF MEMORY AND FIND MEMORY SIZE
500 REM  *** SET SV TO REFLECT FCS SYSTEM VERSION ***
505 REM  (THE REAL-TIME CLOCK DOESN'T WORK RIGHT ON V6.78)
510 SV =  1:TS =  PEEK (1):IF  TS< > 108 THEN  SV= 0
520 S= PEEK (33209):M= PEEK (33210):H= PEEK (33211)- SV
550 PRINT  "TIME = ";H;":";M;":";S
1000 INPUT  "SET THE TIME (Y OR N) ";A$
1010 IF  A$= "Y" THEN  GOSUB  2000
1020 INPUT  "TURN CLOCK DISPLAY ON (Y OR N) ";A$
1030 IF  A$< > "Y" THEN  END
1500 PLOT  27,4:PRINT  "RUN PTCH";MS$:PLOT  27,27
1510 PRINT  "HIT CPU RESET TO STOP CLOCK DISPLAY"
1520 END
2000 INPUT "ENTER TIME (HH,MM,SS) ";H,M,S
2001 IF  H< 0 OR  H> 23 GOTO  2000
2002 IF  M< 0 OR  M> 59 GOTO  2000
2003 IF  S< 0 OR  S> 59 GOTO  2000
2005 POKE 33209,S:POKE 33210,M:POKE 33211,H+ SV
2010 INPUT  "ENTER DATE (MM,DD,YY) ";MO,DA,YR
2011 IF  MO< 0 OR  MO> 12 GOTO  2010
2012 IF  DA< 0 OR  DA> 31 GOTO  2010
2013 IF  YR< 0 GOTO  2010
2014 IF  YR> 1900 THEN  YR =  YR- 1900
2015 POKE  33212,MO:POKE  33213,DA:POKE  33214,YR
2030 RETURN
50000 REM  SHIFT END OF BASIC BACK
50010 GOSUB  50100
50020 EB =  65024:IF  TM< EB THEN  EB= 48640
50030 ZZ= INT (EB/ 256)
50040 POKE  32941,ZZ:POKE  32940,EB- ZZ* 256
50050 CLEAR  100
50060 GOSUB  50100
50070 MS$ =  "16":IF  TM= 65024 THEN  MS$= "32"
50090 GOTO  500
50100 TM =  PEEK (32941)* 256+ PEEK (32940)
50110 RETURN