.TITLE APPEND .IDENT /00/ .PSECT CODE,RO ; ; VERSION 00 ; ; TOM GETZINGER 30-DEC-79 ; ; THIS ROUTINE APPENDS A STRING TO THE OUTPUT BUFFER ; ; INPUTS: ; R0 -> STRING TO APPEND ; R5 -> APPEND LOCATION ; ADDSTR::INC R0 ; SKIP OVER STRING LENGTH APPEND:: MOVB (R0)+,(R5)+ ; ADD A CHARACTER BNE APPEND ; CONTINUE TIL WE HIT A NULL DEC R5 ; THEN BACK UP TO POINT TO IT RETURN ; AND WE'RE DONE ; ; ADDOCT ; ; THIS ROUTINE ADDS AN UNSIGNED OCTAL CONSTANT TO THE OUTPUT BUFFER ; ; INPUTS: ; R0 = VALUE TO APPEND ; R5 -> APPEND POSITION ; ADDOCT:: JSR R2,$SAVVR ; SAVE R0-R2 MOV R0,R1 ; SETUP VALUE TO CONVERT MOV R5,R0 ; SETUP OUTPUT ADDRESS CLR R2 ; SPECIFY ZERO-SUPPRESSION CALL $CBOMG ; CONVERT THE NUMBER TO ASCII MOV R0,R5 ; SETUP END ADDRESS RETURN ; AND WE'RE DONE .PAGE ; ; ADDR50 ; ; THIS ROUTINE ADDS A RAD50 STRING TO THE OUTPUT BUFFER. ; ; INPUTS: ; R0 -> RAD50 VALUE ; R5 -> APPEND LOCATION ; ADDR50:: CALL $SAVAL ; SAVE THE REGS MOV R0,R4 ; SAVE RAD50 ADDRESS MOV R5,R0 ; SETUP OUTPUT ADDRESS MOV (R4)+,R1 ; GET FIRST 3 CHARACTERS CALL $C5TA ; CONVERT THEM MOV (R4)+,R1 ; GET SECOND 3 CHARACTER CALL $C5TA ; CONVERT THEM MOV R0,R5 ; SETUP END ADDRESS MOV #6,R3 10$: CMPB -(R5),#' ; BACKSCAN FOR BLANKS BNE 20$ SOB R3,10$ BR 30$ 20$: INC R5 ; GO BACK TO FIRST BLANK 30$: MOV R5,14(SP) ; SAVE R5 RETURN ; AND WE'RE DONE .END