.TITLE WRMAC .IDENT /V01.2/ ; ; WRMAC - WRITE TO MACRO FILE ; ; Modifications Record: ; ===================== ; V01.2 3-Sep-85 CJD ; Call $ENTAB before output to compress spaces to tabs. ; Don't output blank lines in header as single-spaces (like silly old EDI). ; V01.3 28-May-2004 BQT ; Removed call to $ENTAB .MCALL PUT$ ; .PSECT WR$MAC::MOV #ERR9,MESNO MOV #MACFDB,R0 ; RESET TST LNCNT ; NEED TO OUTPUT HEADER? BEQ 4$ ; NO CLR LNCNT ; YES MOV #HEADER,F.NRBD+2(R0) ; O MOV #HDRSIZ,F.NRBD(R0) PUT$ BCS 5$ ;(FAILE CLR F.NRBD(R0) ; Zero for blank line ;V01.2 PUT$ BCS 5$ PUT$ BCS 5$ 4$: ; MOV R1,-(SP) ; Save registers ;V01.2 ; MOV R2,-(SP) ;V01.2 ;; Compress line, by converting spaces to tabs, from MACLIN to the ;V01.2 ;; (now unused) OBJLIN. Note that we mustn't overwrite MACLIN, as ;V01.2 ;; code in ORCP3 may re-use it when splitting up .BLKB's. ;V01.2 ; MOV #MACLIN,R0 ; Get input buffer address ;V01.2 ; MOV #OBJLIN,R1 ; and output ;V01.2 ; MOV R1,MACFDB+F.NRBD+2 ; Set up buffer ptr for later ;V01.2 ; MOV MACLEN,R2 ; Get length ;V01.2 ; SUB R0,R2 ;V01.2 ; JSR PC,$ENTAB ; En-tab ;V01.2 ; MOV #MACFDB,R0 ; MOV R2,F.NRBD(R0) ; Set new length ;V01.2 ; MOV (SP)+,R2 ; Finished with registers ;V01.2 ; MOV (SP)+,R1 ;V01.2 MOV #MACLIN,F.NRBD+2(R0) MOV MACLEN,F.NRBD(R0) SUB #MACLIN,F.NRBD(R0) PUT$ BCC 6$ 5$: JMP MOCALL ; TELL U 6$: RTS PC ; .END