home *** CD-ROM | disk | FTP | other *** search
- 5 REM
- 10 REM TimEPROMmer Clock Read-Set Routine w/ Julian Date
- 13 REM
- 15 REM For the TimEPROMmer Card from Optronics Technology,
- 17 REM 2990 Atlantic Avenue, Penfield, NY 14526
- 20 REM
- 30 REM D. Mc Lanahan, POBox 17, Marlow,NH 25 Mar 83
- 50 REM Julian date-time assumes TP-100 set to Universal Time (GMT)
- 55 REM Julian decimals set to agree with 1-second resolution of TP-100
- 57 REM
- 60 REM FOR 24-HOUR (MILITARY) TIME, SET MIL=8
- 70 REM FOR 12-HOUR (USUAL) TIME, SET MIL=0 (NOT IMPLEMENTED)
- 80 ON ERROR GOTO 710
- 90 MIL=8
- 100 DIM TIME(13),W$(7)
- 110 DATA Sunday, Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
- 120 FOR X=1 TO 7 : READ W$(X) : NEXT X
- 130 P=40 : P1=41 : REM---TP-100 Addresses- MUST match on-card switches!
- 140 GOSUB 550 : REM Go read clock
- 150 YR=TIME(1)*10+TIME(2)+1900 : REM format data
- 160 MO=(TIME(3) AND 1)*10+TIME(4)
- 170 DA=(TIME(5) AND 3)*10+TIME(6)
- 180 W=TIME(7)+1
- 190 HR=(TIME(8) AND 3)*10+TIME(9)
- 200 MIN=(TIME(10) AND 7)*10+TIME(11)
- 210 S=(TIME(12) AND 7)*10+TIME(13)
- 220 D$=W$(W)
- 230 PRINT USING "##";MO; : REM print date-time
- 240 PRINT "-";
- 250 PRINT USING "##";DA;
- 260 PRINT "-";
- 270 PRINT YR;
- 280 PRINT ", ";
- 290 PRINT D$". ";
- 300 PRINT HR;":";MIN;":";S;" "
- 310 SECS=HR*3600+MIN*60+S
- 320 JT=SECS/86400!
- 330 GOSUB 400 : REM This routine determines the Julian Date
- 340 OF#=2159407.5#
- 350 PRINT "Julian date-time is ";
- 360 PRINT USING "########,.#####";(X+OF#+JT)
- 370 PRINT ""
- 380 GOTO 650
- 390 REM ***SUBROUTINES***
- 400 GOSUB 490:D1=DA:M1=MO:Y1=YR:GOSUB 430:REM***TEST DATE***
- 410 IF D1<>DA OR M1<>MO OR Y1<>YR THEN PRINT:PRINT "INVALID DATE":GOTO 400
- 420 RETURN
- 430 Y=INT((X+60)/365.25):REM ***NUMBER TO DATE***
- 440 I=X-INT(Y*365.25)+120+INT(Y/100)-INT(Y/400)
- 450 M=INT((I-.1)/30.6):IF M<4 THEN M=M+12:Y=Y-1:GOTO 440
- 460 I=I-INT(M*30.6):IF M>13 THEN M=M-12:Y=Y+1
- 470 YR=Y+1200:MO=M-1:DA=I
- 480 RETURN
- 490 D=DA:M=MO:Y=YR-1200:REM ***DATE TO NUMBER***
- 500 M=M+1:IF M<=3 THEN Y=Y-1:M=M+12
- 510 X=INT(365.25*Y)+INT(30.6*M)+D-120-INT(Y/100)+INT(Y/400)
- 520 RETURN
- 530 GOTO 650
- 540 REM ****** READ DATA ******
- 550 OUT P,16 : REM output hold bit
- 560 OUT P,48 : REM output hold + read bits
- 570 FOR X=1 TO 13 : REM output address & input d-t data
- 580 OUT P,61-X
- 590 TIME(X)=INP(P1) : NEXT X
- 600 OUT P,0 : REM remove clock hold
- 610 FOR X=1 TO 13
- 620 TIME(X)=(TIME(X)) AND 15 : NEXT X
- 630 TIME(8)=TIME(8) AND 3
- 640 RETURN
- 650 PRINT"Type (1) To Display time"
- 660 PRINT" (2) To Return to Basic"
- 670 PRINT" (3) To set clock"
- 680 PRINT" (4) To return to CP/M"
- 690 INPUT L
- 700 ON L GOTO 140,1210,790,1200
- 710 IF ERR=9 AND ERL=220 THEN 720
- 720 PRINT CHR$(7)
- 730 PRINT CHR$(7)
- 740 PRINT "TimEPROMmer either not installed, or not configured for ";HEX$(P);" Hex."
- 750 PRINT "Check that DIP switch 17 matches 'P' in the header of this program."
- 760 PRINT CHR$(7)
- 770 GOTO 1210
- 780 REM
- 790 REM TimEPROM ClockSet DEMO Routine
- 800 REM ****** SET .BAS ****** 11-11-82
- 810 PRINT " TIME SET ROUTINE IN BASIC"
- 820 REM GET DATA
- 830 PRINT "ENTER DATE IN THE FORM:YR,MO,DA "
- 840 INPUT YR,MO,DA
- 850 PRINT "ENTER DAY OF THE WEEK, 0=SUN, 2=TUES, 4=THURS"
- 860 INPUT W
- 870 PRINT "ENTER 24 HR TIME AS : HR,MIN"
- 880 INPUT HR,MIN
- 890 REM PREPARE THE DATA FOR ENTRY
- 900 LEAP=0
- 910 IF ((YR MOD 4=0) AND (MO=2)) THEN LEAP=4
- 920 TIME(1)=INT(YR/10)
- 930 TIME(2)=(YR AND 15)
- 940 TIME(3)=INT((MO/10)+LEAP)
- 950 TIME(4)=(MO-10*INT(MO/10))
- 960 TIME(5)=INT(DA/10)
- 970 TIME(6)=(DA-10*INT(DA/10))
- 980 TIME(7)=W
- 990 TIME(8)=INT((HR/10)+MIL)
- 1000 TIME (9)=(HR-10*INT(HR/10))
- 1010 TIME(10)=INT(MIN/10)
- 1020 TIME(11)=(MIN-10*INT(MIN/10))
- 1030 TIME(12)=1
- 1040 TIME(13)=0
- 1050 PRINT "PUSH CR ON THE ZERO SECOND"
- 1060 INPUT J
- 1070 OUT P,16
- 1080 FOR X= 1 TO 14
- 1090 OUT P,15+X
- 1100 OUT P1,TIME(14-X)
- 1110 FOR I=1 TO 4
- 1120 NEXT I
- 1130 OUT P,79+X
- 1140 OUT P,79+X
- 1150 OUT P,15+X
- 1160 NEXT X
- 1170 OUT P,0
- 1180 PRINT "THE CLOCK IS SET"
- 1190 GOTO 140
- 1200 SYSTEM
- 1210 END
-