.TITLE TCUPUT .IDENT /V00/ ; FOR SOFTWARE SCIENCE / SOFTWARE ART, 7626 CALLAGHAN 3006, SAN ANTONIO, TEXAS ; BY BRUCE D SIDLINGER ON 14-FEB-81 ; -------------------------------------------------------------------------- ; | DECUS Submission 21-May-83: May be copied and used by anyone without fee | ; | | ; | Bruce D. Sidlinger (DECUS 113380) | ; | Director of Research | ; | Alcor Inc. | ; | 10130 Jones Maltsberger Road | ; | San Antonio, Texas 78284 | ; | 512/349-3771 x50 | ; -------------------------------------------------------------------------- ; TESTED UNDER RT11SJ-V4, RT11FB-V4, RT11SJ-V5, RT11FB-V5 ; WORKS WITHOUT RESTRICTION AS BACKGROUND OR FOREGROUND JOB ; LIMITATION 1: TCUGET MUST BE EDITED EACH YEAR SINCE CLOCK IS IGNORANT ; LIMITATION 2: TCUPUT MUST BE RUN TO CORRECT DATE EACH LEAP YEAR ; SETS DIGITAL PATHWAYS TCU-50D TO RT-11 DATE AND TIME .MCALL .DATE,.GTIM,.EXIT .GLOBL $DIVTK,$DIV60 TCUDAY = 160770 ; MONTH AND DAY (FORMAT: 0000MMMM000DDDDD) TCUMIN = TCUDAY+2 ; HOUR AND MINUTE (FORMAT: 000HHHHH00MMMMMM) TCUSLO = TCUDAY+4 ; RESET FAST CLOCK BEGIN: MOV #TICKS,R1 ; ADDRESS OF AREA TO BE SET TO NUMBER OF TICKS .GTIM #AREA,R1 ; DETERMINE NUMBER OF TICKS MOV (R1)+,R0 ; HIGH-ORDER TIME (IN TICKS) TO R0 MOV (R1),R1 ; LOW-ORDER TIME (IN TICKS) TO R1 CALL $DIVTK MOV R3,R5 SWAB R5 CALL $DIV60 BISB R3,R5 CALL $DIV60 MOV R3,R4 SWAB R4 BISB R1,R4 TSTB R5 ; REPEAT UNTIL SEC=0 BNE BEGIN SWAB R4 ; R4:=HRS|MIN MOV #TCUMIN,R1 ; REGISTER ADDRESSING FOR MAXIMUM SPEED 10$: MOV R4,(R1) ; ACCELERATE HOUR/MINUTE 20$: CMP (R1),R4 ; WAIT FOR CORRECT HOUR/MIN BNE 20$ MOV R4,@#TCUSLO ; RESUME NORMAL SPEED CMP (R1),R4 ; VERIFY STOPPED IN TIME BNE 10$ ; OTHERWISE, TRY AGAIN .DATE ; R0:=00MMMMDDDDDYYYYY ASR R0 ; R0:=000MMMMDDDDDYYYY ASR R0 ; R0:=0000MMMMDDDDDYYY CLC ; PREPARE TO LEFT-FILL DAY BYTE WITH ZEROES RORB R0 ; R0:=0000MMMM0DDDDDYY ASRB R0 ; R0:=0000MMMM00DDDDDY ASRB R0 ; R0:=0000MMMM000DDDDD MOV #TCUDAY,R1 ; REGISTER ADDRESSING FOR MAXIMUM SPEED 30$: MOV R0,(R1) ; ACCELERATE MONTH/DAY 40$: CMP (R1),R0 ; WAIT FOR CORRECT MONTH/DAY BNE 40$ MOV R0,@#TCUSLO ; RESUME NORMAL SPEED CMP (R1),R0 ; VERIFY STOPPED IN TIME BNE 30$ ; OTHERWISE, TRY AGAIN CLR R0 ; IMPLICIT .HRESET BY .EXIT .EXIT AREA: .BLKW 2 ; EMT ARGUMENT BLOCK TICKS: .WORD 0,0 ; AREA FOR RETURN OF TIME INFORMATION BY .GTIM .END BEGIN