.TITLE PRTIME ; ; THIS SUBROUTINE WILL RETURN THE UNENCODED TIME TO A USER BUFFER. ; ; ON ENTRY, ; ; R2 = BUFFER (18 BYTES MINIMUM) ; .MCALL DIR$,GTIM$ .GLOBL PRTIME PRTIME: DIR$ #$GTIM ;GET THE TIME. MOV R0,-(SP) ;SAVE R0 MOV R1,-(SP) ;SAVE R1 MOV BUFIN+G.TIDA,R1 ;GET THE DAY. CLR R0 ;CLEAR TMP. REG. DIV #10.,R0 ;COMPUTE DAY. ADD #'0,R1 ADD #'0,R0 MOVB R0,(R2)+ MOVB R1,(R2)+ MOVB #'-,(R2)+ ;MOVE IN A - MOV BUFIN+G.TIMO,R1 ;GET THE MONTH. DEC R1 ;GET IT TO 0 ORIGIN. MUL #3.,R1 ;MULTIPLY BY 3 FOR NAME. ADD #MONTHS,R1 ;POINT TO MONTHS LIST. MOVB (R1)+,(R2)+ ;MOVE IT IN MOVB (R1)+,(R2)+ MOVB (R1)+,(R2)+ MOVB #'-,(R2)+ MOV BUFIN+G.TIYR,R1 ;GET YEAR. CLR R0 DIV #10.,R0 ;GET IN DEC. ADD #'0,R1 ADD #'0,R0 MOVB R0,(R2)+ ;MOVE IT IN. MOVB R1,(R2)+ MOVB #' ,(R2)+ ;SKIP A SPACE. MOV BUFIN+G.TIHR,R1 ;GET HOUR. CLR R0 DIV #10.,R0 ADD #'0,R0 ADD #'0,R1 ;CONVERT TO ASCII MOVB R0,(R2)+ ;MOVE IT IN. MOVB R1,(R2)+ MOVB #':,(R2)+ ;MOVE IN A : MOV BUFIN+G.TIMI,R1 ;GET MINUTE. CLR R0 DIV #10.,R0 ;CONVERT TO 10 ADD #'0,R0 ;CONVERT TO ASCII ADD #'0,R1 MOVB R0,(R2)+ MOVB R1,(R2)+ ;MOVE IT IN. MOVB #':,(R2)+ ;MOVE IN A : MOV BUFIN+G.TISC,R1 ;GET SECOND CLR R0 DIV #10.,R0 ;CONVERT TO 10 ADD #'0,R0 ADD #'0,R1 MOVB R0,(R2)+ MOVB R1,(R2)+ MOV (SP)+,R1 ;R1 MOV (SP)+,R0 ;R0 RETURN ;AND LEAVE. MONTHS: .ASCII /JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC/ $GTIM: GTIM$ BUFIN BUFIN: .BLKW 8. ;BUFFER. .END