; 00008 .INCLUDE "LB:[MACROS]MACROS.MAC" .INCLUDE "C.MAC" MODULE .Main, VER=01, COMM=<> FROM SYSMAC IMPORT GMCR$ FROM CSV IMPORT C$SAV, C$RET FROM CREATE IMPORT CREATE FROM OPEN IMPORT OPEN FROM CLOSE IMPORT CLOSE FROM PUTSTR IMPORT PUTSTR FROM EMT IMPORT EMT FROM EXIT IMPORT EXIT FROM MAIN IMPORT MAIN EXPORT QUALIFIED .Main $PDATA LANGLE = '< RANGLE = '> $IDATA BUF: .BLKB 80. GMCR: GMCR$ .BLKB 2 $ASCII LF1: .ASCIZ <12> WRF: .ASCIZ /can't write / LF2: .ASCIZ <12> RDF: .ASCIZ /can't read / PROCEDURE .Main BEGIN C$SAV TST -(SP) CLR -10(R5) MOV #GMCR+G.MCRB, R3 MOV #GMCR, (SP) CALL EMT MOV R0, R2 WHILE R2 GT #0 DO CLR R4 MOV R3, R0 ADD R4, R0 WHILE R4 LT R2 ANDB (R0) NE #40 DO MOVB (R0), R1 IFB #'A LE R1 ANDB R1 LE #'Z THEN ADD #40, R1 END MOVB R1, (R0)+ INC R4 END INC R4 CLRB (R0) IFB (R3) EQ #LANGLE THEN CLR (SP) CALL CLOSE CLR (SP) PUSH #0 PUSH #1 ADD R3, (SP) CALL OPEN CMP (SP)+, (SP)+ IF R0 NE #0 THEN CLR (SP) PUSH #LF2 PUSH #1 ADD R3, (SP) PUSH #RDF PUSH #2 CALL PUTSTR ADD #10, SP CLR (SP) CALL EXIT END ELSE IFB (R3) EQ #RANGLE THEN MOV #1, (SP) CALL CLOSE CLR (SP) PUSH #1 PUSH #1 ADD R3, (SP) CALL CREATE CMP (SP)+, (SP)+ IF R0 NE #1 THEN CLR (SP) PUSH #LF1 PUSH #1 ADD R3, (SP) PUSH #WRF PUSH #2 CALL PUTSTR ADD #10, SP CLR (SP) CALL EXIT END ELSE MOV -10(R5), R0 INC -10(R5) ASL R0 MOV R3, BUF(R0) END END SUB R4, R2 ADD R4, R3 END MOV -10(R5), R0 ASL R0 CLR BUF(R0) MOV #BUF, (SP) PUSH -10(R5) CALL MAIN POP C$RET END .Main END .Main .END