%RECORDFORMAT RR(%INTEGER CONAD,FTYPE,DSTART,DEND) %SYSTEMROUTINESPEC DISCONNECT(%STRING(31)FILE,%INTEGERNAME FLAG) %SYSTEMROUTINESPEC DESTROY(%STRING(31)FILE,%INTEGERNAME FLAG) %SYSTEMROUTINESPEC SETWORK(%INTEGERNAME AD,LEN) %SYSTEMROUTINESPEC CHANGEFILESIZE(%STRING(31)FILE,%INTEGER SIZE,%INTEGERNAME FLAG) %SYSTEMROUTINESPEC NEWGEN(%STRING(31) FILE1,FILE2,%INTEGERNAME FLAG) %EXTERNALROUTINESPEC DEFINE(%STRING(255)PARM) %SYSTEMROUTINESPEC PSYSMES(%INTEGER ROOT,FLAG) %SYSTEMROUTINESPEC SETPAR(%STRING(255)PARM) %SYSTEMSTRINGFNSPEC SPAR(%INTEGER N) %SYSTEMROUTINESPEC CONNECT(%STRING(31)FILE,%INTEGER MODE,HOLE,PROT, %RECORD(RR)%NAME FINFO,%INTEGERNAME FLAG) %SYSTEMROUTINESPEC OUTFILE(%STRING(31)FILE,%INTEGER SIZE,HOLE,PROT, %INTEGERNAME CONAD,FLAG) %SYSTEMROUTINESPEC MOVE(%INTEGER LNTH,FROMAD,TOAD) %EXTERNALROUTINESPEC CONVTOIBM(%INTEGER ICONAD,OCONAD, %INTEGERNAME FLAG) ! ! %EXTERNALROUTINE TOIBMOBJ(%STRING(255) PARM) %STRING(31) INFILE,OUTF,LIST,WOUTF %RECORD(RR) FINFO %INTEGER ICONAD,FLAG,OCONAD,OSIZE ! ! ! SETPAR(PARM) INFILE=SPAR(1) OUTF=SPAR(2) LIST=SPAR(3) %IF OUTF="" %THEN OUTF=INFILE %IF OUTF=INFILE %THEN WOUTF="T#IBMOBJ" %ELSE WOUTF=OUTF %IF LIST="" %THEN LIST=".OUT" DEFINE("1,".LIST) SELECTOUTPUT(1) NEWLINE PRINTSTRING("Converter to IBM object module format") NEWLINE PRINTSTRING("Parameters passed:".PARM);NEWLINES(2) CONNECT(INFILE,0,0,0,FINFO,FLAG) %IF FLAG#0 %THENSTART SELECTOUTPUT(0) PSYSMES(8,FLAG) %RETURN %FINISH ICONAD = FINFO_CONAD %IF INTEGER(ICONAD+12) # 1 %START SELECTOUTPUT(0) PRINTSTRING("Invalid filetype");NEWLINE %RETURN %FINISH %IF INTEGER(INTEGER(ICONAD+24)+ICONAD+20) # 0 %START SELECT OUTPUT(0) PRINT STRING(INFILE." is a bound object file and cannot be converted") NEWLINE %RETURN %FINISH OSIZE = (INTEGER(ICONAD)*80)//56 {ONLY 56 OF THE 80 BYTE RECORD HOLD TEXT} OUTFILE(WOUTF,OSIZE,0,0,OCONAD,FLAG) %IF FLAG#0 %START SELECTOUTPUT(0) PSYSMES(10,FLAG) %RETURN %FINISH CONVTOIBM(ICONAD,OCONAD,FLAG) %IF FLAG<=0 %START %IF INFILE=OUTF %START NEWGEN(WOUTF,OUTF,FLAG) %IF FLAG#0 %START SELECTOUTPUT(0) PSYSMES(10,FLAG) %RETURN %FINISH %FINISH NEWLINE PRINTSTRING("Object file converted") NEWLINE %FINISH SELECT OUTPUT(0) CLOSESTREAM(1) %END %ENDOFFILE