.TITLE STRTCU .IDENT /01/ ; .MCALL GTIM$S,EXIT$S,SVTK$S ; TCUCSR=160770 TCBF: .BLKW 8. ;TIME BUFFER .ODD: .WORD ODD ;POINTER TO ODD ADDRESS CATCHER ; STRTCU::GTIM$S #TCBF ;GET CURRENT TIME FROM EXEC BCS RET ;IF CS, BAD NEWS SVTK$S #.ODD,#1 ;SET THE ODD ADDRESS CATCHER MOV #TCUCSR,R0 ;GET TCU ADDRESS MOV #TCBF,R1 ;GET POINTER TO TIME BUFFER MOV G.TIHR(R1),R2 ;GET HOURS SWAB R2 ;POSITION HOURS BIS G.TIMI(R1),R2 ;MERGE MINUTES 10$: INC 2(R0) ;SET THE CLOCK FLYING 15$: CMP 2(R0),R2 ;ARE WE THERE YET? BNE 15$ ;NO, WAIT A WHILE CLR 4(R0) ;YES, STOP THE FAST CLOCK CMP 2(R0),R2 ;ARE WE REALLY THERE? BNE 10$ ;NO, TRY ALL OVER AGAIN MOV G.TIYR(R1),R2 ;GET YEAR ASH #4,R2 ;MAKE ROOM FOR MONTH BIS G.TIMO(R1),R2 ;MERGE IN MONTH ASH #5,R2 ;MAKE ROOM FOR DAYS BIS G.TIDA(R1),R2 ;MERGE IN DAYS 20$: INC (R0) ;START THAT FAST CLOCK 25$: CMP (R0),R2 ;ARE WE AT THAT YEAR BNE 25$ ;NO, WAIT SOME MORE CLR 4(R0) ;YES, STOP THAT CLOCK CMP (R0),R2 ;ARE WE REALLY THERE? BNE 10$ ;NO, TRY HARDER RET: EXIT$S ; ODD: MOV #RET,(SP) RTI .END STRTCU