.TITLE FMTCON .IDENT /V7.01/ ;+ ; ; *** FM.CON ; ; THIS ROUTINE TAKES A TIME IN TICKS (2 WORDS) AND FORMATS IT AS ; HOURS, MINUTES AND SECONDS. ; TO BE USED WITH ACCOUNTING SYSTEM VERSION 7. ; ; STEVE THOMPSON SCHOOL OF CHEMICAL ENGINEERING ; OLIN HALL ; CORNELL UNIVERSITY ; ITHACA NY 14853 ; ; INPUT: ; R0 BUFFER ADDRESS ; R1 ADDRESS OF 2-WORD BLOCK CONTAINING TIME. ; ; OUTPUT: ; R0 UPDATED ; R1,R2 USED ; R3,R4,R5 PRESERVED ; ; REVISION HISTORY ; ---------------- ; ; SMT821 23-APR-82 CHANGED ENTRY POINT NAMES OF ACCOUNTING ; SUPPORT ROUTINES (SEE MODIFY.TXT) ; ;- SPA = 40 ; SPACE .ENABL LC FM.CON::JSR R5,$SAVRG ; SAVE R3,R4 AND R5 MOV R0,R5 ; COPY BUFFER POINTER MOV 2(R1),R2 ; GET LOW ORDER TIME MOV (R1),R1 ; GET HIGH ORDER TIME MOV #K$$TPS,R0 ; GET TICKS PER SECOND CALL $DDIV ; CONVERT TO SECONDS MOV #60.,R0 ; SECONDS PER MINUTE CALL $DDIV ; CONVERT TO MINUTES ; TWO CALLS OF $DDIV ARE REQUIRED HERE ; IN ORDER TO GET THE SECONDS AS ; REMAINDER, RATHER THAN TICKS. MOV R0,-(SP) ; PUSH REMAINING SECONDS ON STACK MOV #60.,R0 ; MINUTES PER HOUR CALL $DDIV ; CONVERT TO HOURS MOV R0,-(SP) ; PUSH REMAINING MINUTES ON STACK MOV R5,R0 ; RESTORE BUFFER POINTER TO R0 MOV R2,R1 ; PUT HOURS IN R1 BEQ 10$ ; IF EQ THERE AREN'T ANY CALL DE.CML ; FORMAT HOURS MOVB #'h,(R0)+ ; INSERT UNIT TEXT MOVB #SPA,(R0)+ ; AND A SPACE 10$: MOV (SP)+,R1 ; GET NUMBER OF MINUTES BEQ 20$ ; IF EQ THERE ARE NON CALL DE.CML ; FORMAT AS DECIMAL MOVB #'m,(R0)+ ; INSERT UNIT TEXT MOVB #SPA,(R0)+ ; AND A SPACE 20$: MOV (SP)+,R1 ; GET SECONDS CALL DE.CML ; FORMAT AS DECIMAL MOVB #'s,(R0)+ ; INSERT UNIT TEXT RETURN ; AND RETURN TO CALLER .END