-2,2 .IDENT /X02.XX/ -21 ; R. MACK 02-SEP-80 -29,29 .MCALL CALL,RETURN,GTIM$S -36 .BYTE 'E ;%E-MAGNITUDE BINARY TO DECIMAL CONVERSION -44 .BYTE 'M ;%M-SYSTEM TIME INSERTION -51 .WORD ABSDEC ;%E->ABSOLUTE DECIMAL -59 .WORD TIME ;%M->INSERT SYSTEM TIME -68 ; TIMBUF: .BLKW 8. ;GTIM$ BUFFER -98 ; %E-MAGNITUDE BINARY TO DECIMAL CONVERSION -106 ; %M-INSERT SYSTEM TIME -132,132 10$: CMPB 1(R4),#'M ;SPECIAL CASE: TIME? BNE 15$ ;BR IF NOT INC R4 ;BUMP PAST FORMAT SPECIFIER CLR R3 ;NO REPEAT COUNT BR 52$ ;DIRECT TO DISPATCH 15$: TST R5 ;IF ARG BLOCK POINTER IS ZERO.. -199 ; ; INSERT SYSTEM TIME (%M) ; ISSUE GTIM$ MACRO TO OBTAIN CURRENT SYSTEM TIME ; INSERT INTO USERS BUFFER IN THE FORM HH:MM:SS ; THIS ROUTINE REQUIRES NO PARAMETERS ; ; R0=OUTPUT BUFFER (OBUF) POINTER ; R1=RNA ; TIME: GTIM$S #TIMBUF ;OBTAIN CURRENT TIME BCS 1$ ;SKIP IF ERROR MOV R1,-(SP) ;SAVE RNA MOV #TIMBUF+G.TIHR,R1 MOV #3,R2 CALL $TIM ;CONVERT DIRECTLY INTO BUFFER MOV (SP)+,R1 1$: JMP FOMXT ;ALL DONE -227,227 ASC01: JMP FOMXT1 ; -247 ; ; MAGNITUDE BINARY TO DECIMAL CONVERSION (%NE) ; ; CONVERT "N" CONSECUTIVE ARGUMENT WORDS. IF MORE THAN ONE WORD IS ; CONVERTED, THEN INSERT A BLANK BETWEEN WORDS. ; ; R0=OUTPUT BUFFER (OBUF) POINTER ; R1=RNA ; R2=REPEAT COUNT ; ABSDC1: MOVB #' ,(R0)+ ;INSERT A BLANK ABSDEC: CALL (R4) ;GET A WORD FROM ARQUMENT BLOCK MOV R2,R1 ;SET VALUE TO BE CONVERTED MOV SP,R2 ;DISABLE ZERO SUPPRESSION CALL $CBDMG ;DO THE CONVERSION TO DECIMAL CALL @(SP)+ ;CHECK BUFFER LIMIT SOB R3,ABSDC1 ;REPEAT BR FOMXT ; /