.TITLE MR19.. STRING FORMAT GROUP .IDENT /MR19../ .PAGE .SBTTL . STRING FORMAT ROUTINE (UIC STRING) .MCALL GTSK$S ;GET TASK STATUS MACRO DEFINITION ; R$UIC:: ;THIS PROCEDURE GENERATES A STRING DESCRIBING ;THE DEFAULT UIC. ; ; ENTRY CONDITIONS ; NONE ; ; EXIT CONDITIONS ; R0 -> ADDRESS OF STRING CONTAINING THE UIC ; SAVE R1 ;PROTECT R1 GTSK$S #50$ ;GET THE TASK INFORMATION MOV #50$,R1 ;HOLD STRING BUFFER ADDRESS MOV #9.,(R1)+ ;HOLD STRING LENGTH POINT TO 1ST CHAR MOVB #'[,(R1)+ ;HOLD START CHAR POINT TO 2ND CHAR MOVB 50$+G.TSGC,R0 ;HOLD HOLD GROUP CODE CALL 30$ ;CONVERT NUMBER TO OCTAL AND LOAD IN STRING MOVB #',,(R1)+ ;STORE COMMA SEPERATOR POINT TO NEXT CHAR MOVB 50$+G.TSPC,R0 ;HOLD MEMBER CODE CALL 30$ ;CONVERT NUMBER TO OCTAL AND LOAD INTO STRING MOVB #'],@R1 ;STORE TERMINATOR CHARACTER UNSAVE R1 ;RESTORE REGISTER R1 MOV #50$,R0 ;HOLD STRING ADDRESS RETURN ;BACK TO CALLING PROGRAM ; 30$: ;CONVERT NUMBER TO OCTAL AND LOAD INTO ;UIC STRING CALL R$BOCT+2 ;CONVERT BYTE TO OCTAL TST (R0)+ ;HOLD ADDRESS OF FIRST CHARACTER MOVB (R0)+,(R1)+ ;COPY ACROSS FIRST CHARACTER AND INC POINTERS MOVB (R0)+,(R1)+ ;COPY ACROSS SECOND CHARACTER AND INC POINTERS MOVB (R0)+,(R1)+ ;COPY ACROSS THIRD CHARACTER AND INC POINTERS RETURN ;BACK TO CALLING PROGRAM ; ; DATA AREAS ; .WORD 10. ;STRING WRITE ENABLED MAX TEN CHARS LONG 50$: .WORD 9. ;STRING LENGTH SET TO NINE CHARS ;AREA ALSO USED TO STORE TASK INFORMATION 53$: .BYTE '[ ;START CHARACTER 55$: .BYTE 0,0,0 ;THREE BLANKS 58$: .BYTE ', ;COMMA SEPERATOR 60$: .BYTE 0,0,0 ;THREE BLANKS 63$: .BYTE '],0 ;TERMINATOR CHARACTER + VOID CHAR .EVEN ;ENSURE ON EVEN BOUNDRY .BLKW 10. ;SPACE FOR REMAINS OF TASK SPEC ; .END ;