.TITLE DMPTXT .IDENT /01/ .PSECT CODE,RO ; ; VERSION 01 ; ; TOM GETZINGER 21-SEP-80 ; ; THIS ROUTINE DUMPS REMAINING TEXT TO OUTPUT ; .MCALL PUT$S DMPTXT:: JSR R5,$SAVRG ; SAVE R3-R5 5$: MOV FRSTXT,R4 ; R4 -> FIRST TEXT ENTRY BEQ 50$ ; THERE IS NONE MOV #OUTBUF+8.,R5 ; POINT TO OUTPUT BUFFER BIT #TF.LMT,T.FLAG(R4) ; IS THIS A .LIMIT? BEQ 10$ ; NO MOV #4,INSTLN ; YES, SO THE INSTRUCTION IS FOUR BYTES LONG CLR INST ; AND BOTH WORDS ARE ZERO CLR INST+2 CLR OPSTRT ; THIS INSTRUCTION HAS NO OPERANDS MOV #LIMIT,R0 CALL APPEND ; OUTPUT = ".LIMIT" BR 40$ ; GO OUTPUT IT 10$: MOV #BYTE,R0 ; ASSUME THIS IS A BYTE MOV #1,INSTLN BIT #TF.BYT,T.FLAG(R4) ; IS IT? BNE 20$ ; YES MOV #WORD,R0 ; NO SO SWITCH TO ".WORD " INC INSTLN 20$: CALL APPEND ; OUTPUT MNEM MOV R5,OPSTRT ; SAVE OPERAND STARTING ADDRESS BIT #TF.REL,T.FLAG(R4) ; IS THE TEXT RELOCATED? BEQ 30$ ; NO MOV T.STR(R4),R0 ; YES, SO OUTPUT THE STRING CALL ADDSTR CLR INST ; AND GIVE THE INST A VALUE OF ZERO BR 40$ 30$: MOV T.VAL(R4),R0 ; NO, GET THE VALUE MOV R0,INST ; SAVE IT CALL ADDOCT ; OUTPUT IT IN OCTAL 40$: CALL TXTOUT ; OUTPUT THE TEXT BR 5$ ; AND CONTINUE DUMPING TEXT 50$: RETURN ; THAT'S ALL .END