!! !!************************************************** !! !! CONVERT SOURCE !! !! TAKES SQ FILE FROM BY READBTAPE OR READKTAPE AND !! SHIFTS CONTENTS INTO EMAS SOURCE FILE !! !!*************************************************** !! EXTERNALROUTINE CS(STRING (63) S) EXTERNALROUTINESPEC OPENOMF(STRING (32) S,INTEGER CH,MODE) EXTERNALROUTINESPEC READOMF(INTEGER CH,FROM, INTEGERNAME L) SYSTEMROUTINESPEC OUTFILE(STRING (15) S, INTEGERC LENGTH,MAXSIZE,PROTECTION,INTEGERNAME CONAD,FLAG) SYSTEMROUTINESPEC CONNECT(STRING (31) S, INTEGER A,M,P, C RECORDNAME R, INTEGERNAME FLAG) RECORDFORMAT RFMT(INTEGER CONAD,FILTYPE,DATASTART, C DATAEND,SIZE,EEP,REP,MODE,USERS,ARCH,STRING (6) TRAN,STRING (8) DATE, C TIME, INTEGER COUNT1,SPARE1,SPARE2) SYSTEMROUTINESPEC MOVE(INTEGER L,FROM,TO) SYSTEMROUTINESPEC ETOI(INTEGER ADDR,LENGTH) STRING (32) INFILE,OUTF INTEGER CONAD,FLAG,I,L BYTEINTEGERARRAY B(0:133) STRING (32) REST STRING (6) TAIL RECORD R(RFMT) !! !! ->ERRORP UNLESS S->INFILE.(",").REST UNLESS REST->OUTF.(",").TAIL THEN OUTF=REST AND TAIL="" OPENOMF(INFILE,1,0) CONNECT(INFILE,0,0,0,R,FLAG) ;! GET SIZE OF FILE OUTFILE(OUTF,INTEGER(R_CONAD),0,0,CONAD,FLAG) ->ERRORO IF FLAG#0 I=CONAD+32 CYCLE READOMF(1,ADDR(B(0)),L) EXIT IF L=0 ETOI(ADDR(B(0)),L) UNLESS TAIL="ISO" MOVE(L,ADDR(B(0)),I) I=I+L BYTEINTEGER(I)=NL I=I+1 REPEAT !! ! FILL IN HEADER !! INTEGER(CONAD)=I-CONAD ;! ACTUAL LENGTH OF FILE CONTENTS INTEGER(CONAD+4)=32 ;! LENGTH OF HEADER INTEGER(CONAD+8)=X'10000' ;! MAXIMUM FILE SIZE INTEGER(CONAD+12)=3 ->END !! ERRORP: PRINTSTRING(' PARAMETERS FAULTY - SHOULD BE INFILE,OUTFILE ') ->END ERRORO: PRINTSTRING(' OUTFILE FAILS , FLAG = ') WRITE(FLAG,0) ->END END: END ENDOFFILE