%EXTERNALROUTINESPEC DEFINE (%STRING(255) PARMS) %EXTERNALINTEGERFNSPEC OUT STREAM %SYSTEMROUTINESPEC ETOI(%INTEGER ADDRESS,LEN) %SYSTEMROUTINESPEC ITOE(%INTEGER ADDRESS,LENGTH) %EXTERNALROUTINESPEC OPENSQ(%INTEGER CHAN) %EXTERNALROUTINESPEC READSQ (%INTEGER CHAN,%NAME START,END) %EXTERNALROUTINESPEC WRITESQ (%INTEGER CHAN,%NAME START,END) %EXTERNALROUTINESPEC CLOSESQ(%INTEGER CHAN) ! %EXTERNALROUTINE CTES (%STRING(255) PARMS) ! ! CONVERT TO EBCDIC SEQUENTIAL (FROM ISO CHARACTER FILE) ! %INTEGER INPUT,OUTPUT,I,COUNT %STRING(32) BEFORE,AFTER %BYTEINTEGERARRAY BUFF (0:132) %STRINGNAME LINE %ON %EVENT 9 %START CLOSESQ(OUTPUT) WRITE(COUNT,0) PRINTSTRING(" LINES PROCESSED") ; NEWLINE %RETURN %FINISH ! %IF PARMS -> BEFORE.(",").AFTER %THEN %START DEFINE("60,".BEFORE) ; INPUT = 60 DEFINE("61,".AFTER) ; OUTPUT = 61 %FINISH %ELSE %START PRINTSTRING("INCORRECT PARAMETERS") %RETURN %FINISH LINE == STRING(ADDR(BUFF(0))) COUNT = 0 OPENSQ(OUTPUT) SELECT INPUT (INPUT) READ: %WHILE NEXT SYMBOL = NL %THEN SKIP SYMBOL %CYCLE I = 1,1,132 READ SYMBOL(BUFF(I)) %IF BUFF(I) = NL %THEN %EXIT %REPEAT BUFF(0) = I %IF LINE = ".END" %THEN -> E ITOE(ADDR(BUFF(1)),BUFF(0)) WRITESQ(OUTPUT,BUFF(1),BUFF(BUFF(0))) COUNT = COUNT + 1 ->READ E: CLOSESQ(OUTPUT) WRITE(COUNT,0) PRINTSTRING(" LINES PROCESSED") ; NEWLINE %END ;! OF CTES ! %EXTERNALROUTINE CTIC (%STRING(255) PARMS) ! ! CONVERT TO ISO CHARACTER (FROM EBCDIC SEQUENTIAL FILE) ! %INTEGER INPUT,OUTPUT,CURRENT STREAM,COUNT %BYTEINTEGERARRAY BUFF(0:132) %STRINGNAME LINE %STRING(80) BEFORE,AFTER %ON %EVENT 9 %START CLOSESQ(INPUT) SELECT OUTPUT(CURRENT STREAM) WRITE(COUNT,0) PRINTSTRING(" RECORDS PROCESSED") ; NEWLINE %RETURN %FINISH ! LINE == STRING(ADDR(BUFF(0))) COUNT = 0 CURRENT STREAM = OUT STREAM %IF PARMS -> BEFORE.(",").AFTER %THEN %START DEFINE("60,".BEFORE) ; INPUT = 60 DEFINE("61,".AFTER) ; OUTPUT = 61 %FINISH %ELSE %START PRINTSTRING("INCORRECT PARAMETERS") %RETURN %FINISH OPENSQ(INPUT) SELECT OUTPUT(OUTPUT) READ: READSQ(INPUT,BUFF(1),BUFF(132)) ETOI(ADDR(BUFF(1)),132) LENGTH(LINE) = 132 %WHILE CHARNO(LINE,LENGTH(LINE)) = 0 %THEN %C LENGTH(LINE) = LENGTH(LINE) - 1 %IF BUFF(BUFF(0)) = X'85' %THEN BUFF(BUFF(0)) = X'0A' %IF BUFF(BUFF(0)) # X'0A' %THEN LINE = LINE." " PRINTSTRING(LINE) COUNT = COUNT + 1 -> READ %END ;! OF CTIC ! %ENDOFFILE