TYPE.MAC;2/-BF/-AU=TYPE.VGN;1 -/.IDENT/,. .IDENT /X04.04A/ -/FA.SHR/ ; ; VERSION X04.04A BY RAY VAN TASSLE 1-17-81 ; 1. /CC SWITCH TO EXPAND CONTROL CHARS TO CARET-LETTER ; ?.TEC & ?.TES IMPLY /CC ALL ELSE IMPLIES /-CC ; 2. CHANGED COMMENT LOGIC TO ALLOW ALTERNATIVES. ; -/HOFLG=/ CCFLG=40 ; EXPAND CONTROL CHARS -/HO,HOFLG,/ CSI$SW CC,CCFLG,CSIWD,SET,NEG -/.LIST MEB/,. -/COMTBL:/,/0/ COMTBL: ^RFLE,COM1 ^RFTN,COM1 ^RDEF,COM1 ^RMAC,COM2 ^RSAL,COM2 ^RCMD,COM3 ^RODL,COM3 ^RRNO,COM4 ^RPAS,COM5 ^RC ,COM6 ^RTEC,COM7 ^RTES,COM7 .WORD 0 COM1: .ASCIZ "C"<377>"D"<377> COM2: .ASCIZ ";"<377> COM3: .ASCIZ ";"<377>"!"<377> COM4: .ASCIZ ".;"<377>".COMMENT"<377>".comment"<377> COM5: .ASCIZ "/*"<377>"(*"<377>"{"<377> COM6: .ASCIZ "/*"<377> COM7: .ASCIZ "! "<377>"! "<377> .EVEN -/NEXT:/,. NEXT: MOV #TTLFLG,CSIWD ; INIT THE SWITCHES & VALUES CLR TRNSIZ CLR CSI+C.MKW1 GCML$ #GCML,GCML+G.PSDS+2,#6 ;LEAVE HOOKS IN FOR @ PROCESSING -/NOHOLD:/+1,. BNE 10$ JMP NEXT 10$: -/CCTYP:/ -/50$:/,. ; ; IF NEITHER /CC NOR /-CC IS SPECIFIED, TEC & TES IMPLY /CC ; AND ALL ELSE IMPLIES /-CC 50$: BIT #CCFLG,CSI+C.MKW1 BNE 54$ ; ONE WAS GIVEN BIC #CCFLG,CSIWD CMP #^RTEC,INFDB+F.FNB+N.FTYP BEQ 53$ CMP #^RTES,INFDB+F.FNB+N.FTYP BNE 54$ 53$: BIS #CCFLG,CSIWD 54$: -/BEQ GETREC/,. BNE 55$ ; /TR SPECIFIED BIT #CCFLG,CSIWD ; /CC USES THE TRUNCATE CODE BEQ GETREC ; BUT NOT /CC MOV #200.,TRNSIZ ; USE A LARGE SIZE 55$: MOV SP,R5 ; SET FLAG -/TSTCHR:/,. TSTCHR: CMPB (R2),#32. ; SKIP OVER JUNK IF IT IS PRINTABLE BGE CHKFST CMPB (R2),#15 ; CARRIAGE RETURN? -/NOTBS/ BIT #CCFLG,CSIWD ; EXPAND IT? BNE EXPAND ; YES -/NOTTAB:/,.+1 NOTTAB: BIT #CCFLG,CSIWD ; EXPAND IT? BEQ OKCHAR ; NO, JUST COPY IT AS IS CMPB (R2),#27. ; ESCAPE IS $ BNE 10$ MOVB #'$,(R2) BR CHKFST 10$: CMPB (R2),#12 ; LINE FEED BEQ OKCHAR EXPAND: MOVB #'^,(R1)+ ; CONVERT TO CARET-LETTER INC OUTQIO+Q.IOPL+2 BISB #100,(R2) DEC R3 BR OKCHAR CHKFST: ; SEE IF IT WILL FIT -/DOOUT:/,.+4 DOOUT: MOV COMCHR,R0 ; GET COMMENT MARKER ADDR BEQ 70$ ; NO COMMENTS 5$: MOV #CHBUF,R1 ; GET ADDR OF 1ST CHAR ON LINE -/30$:/,.+8 30$: CMPB (R0)+,(R1)+ ; CHARS SAME? BNE 40$ ; NO-NOT THIS COMMENT TYPE CMPB #377,(R0) ; END OF COMMENT DEF'N? BEQ 50$ ; YES--THIS IS A COMMENT BR 30$ ; KEEP GOING 40$: CMPB #377,(R0)+ ; SKIP TO NEXT COMMENT TYPE DEF'N BNE 40$ TSTB (R0) BEQ 60$ ; NOT A COMMENT BR 5$ ; TRY ANOTHER COMMENT DEF'N /