INTEGER CPOS(2) INTEGER CTAB(13) INTEGER IPOS(2) INTEGER ITAB(18) INTEGER A$BUF(200) INTEGER INPF(180),LISTF(180),BINF(180) INTEGER I INTEGER COMOPT,COMFN,PARSCL,EQUAL INTEGER AAAAA0(22) INTEGER CTOC INTEGER AAAAB0(1) INTEGER CTOC INTEGER AAAAC0(1) INTEGER AAAAD0(13) INTEGER AAAAE0(4) INTEGER AAAAF0(4) INTEGER AAAAG0(3) INTEGER AAAAH0(4) INTEGER AAAAI0(6) DATA CTAB/1,0,0,244,242,160,176,178,176,176,176,176,0/ DATA CPOS/1,1/ DATA ITAB/22,0,1,1,-106,-106,-106,-100,0,-101,1,-104,-100,1,-102,1 *,-104,-105/ DATA IPOS/1,1/ DATA AAAAA0/246,188,239,233,190,160,226,188,239,243,190,236,188,23 *9,243,190,250,188,239,243,190,0/ DATA AAAAB0/0/ DATA AAAAC0/0/ DATA AAAAD0/174,230,172,174,230,183,183,172,174,230,244,238,0/ DATA AAAAE0/174,228,236,0/ DATA AAAAF0/174,228,230,0/ DATA AAAAG0/238,239,0/ DATA AAAAH0/244,244,249,0/ DATA AAAAI0/243,240,239,239,236,0/ IF((PARSCL(AAAAA0,A$BUF).EQ.-2))GOTO 10000 CALL ERROR('Usage: fdmlc {-v[]} {-(b|l) []} *[-z ].') 10000 IF((A$BUF(236-225+1).EQ.2))GOTO 10001 A$BUF(236-225+27)=A$BUF(53) A$BUF(53)=A$BUF(53)+(1+CTOC(AAAAB0,A$BUF(A$BUF(53)),200)) 10001 IF((A$BUF(226-225+1).EQ.2))GOTO 10002 A$BUF(226-225+27)=A$BUF(53) A$BUF(53)=A$BUF(53)+(1+CTOC(AAAAC0,A$BUF(A$BUF(53)),200)) 10002 IF((COMOPT(A$BUF,CPOS,CTAB,IPOS,ITAB).EQ.-3))GOTO 10004 IF((COMFN(A$BUF,INPF,AAAAD0,LISTF,AAAAE0,BINF,AAAAF0).EQ.-3))GOTO *10004 GOTO 10003 10004 CALL SETERR(1000) CALL SWT 10003 IF((EQUAL(LISTF,AAAAG0).EQ.1))GOTO 10006 IF((EQUAL(LISTF,AAAAH0).EQ.1))GOTO 10006 IF((EQUAL(LISTF,AAAAI0).EQ.1))GOTO 10006 GOTO 10005 10006 CALL ERROR('Sorry, listing must go to a disk file.') 10005 IF((EQUAL(BINF,'no').NE.1))GOTO 10007 CALL ERROR('Sorry, output file must go to a disk file.') 10007 CALL PRINT(-11,'fdml -i *s -o *s -l *s.',INPF,BINF,LISTF) I=1 GOTO 10010 10008 I=I+(1) 10010 IF((I.GT.CPOS(1)))GOTO 10009 IF((CTAB(CPOS(I+1)+1).NE.1))GOTO 10011 IF((CTAB(CPOS(I+1)+2).NE.0))GOTO 10011 CALL PRINT(-11,' -*s.',CTAB(CPOS(I+1)+3)) 10011 GOTO 10008 10009 IF((A$BUF(250-225+1).EQ.0))GOTO 10012 CALL PRINT(-11,' *s.',A$BUF(A$BUF(250-225+27))) 10012 CALL PUTCH(138,-11) CALL SWT END INTEGER FUNCTION COMOPT(A$BUF,CPOS,CTAB,IPOS,ITAB) INTEGER A$BUF(200) INTEGER CPOS(1),CTAB(1),IPOS(1),ITAB(1) INTEGER C,I,POS,FPOS,LP,NLP,LIST(26),NLIST(26) INTEGER AAAAL0 INTEGER AAAAN0 INTEGER AAAAO0 INTEGER AAAAJ0,AAAAK0 INTEGER AAAAP0,AAAAQ0,AAAAR0 INTEGER LENGTH INTEGER AAAAS0 INTEGER AAAAT0 INTEGER AAAAM0 INTEGER AAAAU0,AAAAV0 LP=0 I=1 GOTO 10018 10016 I=I+(1) 10018 IF((I.GT.IPOS(1)))GOTO 10017 POS=IPOS(I+1) C=ITAB(POS+0) IF((A$BUF(C).EQ.0))GOTO 10019 IF((A$BUF(C).EQ.2))GOTO 10020 A$BUF(C+26)=ITAB(POS+2) 10020 ITAB(POS+6)=A$BUF(C+26) LP=LP+(1) LIST(LP)=POS IF((A$BUF(C+26).LT.ITAB(POS+1)))GOTO 10022 IF((A$BUF(C+26).GT.ITAB(POS+2)))GOTO 10022 GOTO 10021 10022 CALL PRINT(-15,'level numbers for -*c are *i to *i*n.',C-1+2 *25,ITAB(POS+1),ITAB(POS+2)) COMOPT=-3 RETURN 10021 CONTINUE 10019 GOTO 10016 10017 IF((LP.GT.0))GOTO 10023 AAAAO0=1 GOTO 10015 10024 CONTINUE 10023 CONTINUE 10025 IF((LP.LE.0))GOTO 10026 NLP=0 DO 10027 I=1,LP POS=LIST(I) C=ITAB(POS+0) IF((ITAB(POS+6).NE.-106))GOTO 10029 GOTO 10030 10031 ITAB(POS+6)=ITAB(POS+4) GOTO 10032 10033 ITAB(POS+6)=ITAB(POS+5) GOTO 10032 10030 IF((ITAB(POS+3).LT.ITAB(POS+4)))GOTO 10031 IF((ITAB(POS+3).GT.ITAB(POS+5)))GOTO 10033 ITAB(POS+6)=ITAB(POS+3) 10032 CONTINUE 10029 AAAAJ0=POS AAAAK0=ITAB(POS+6) AAAAL0=1 GOTO 10013 10034 CONTINUE 10027 CONTINUE 10028 IF((NLP.GT.0))GOTO 10035 AAAAO0=2 GOTO 10015 10036 GOTO 10037 10035 LP=NLP DO 10038 I=1,NLP LIST(I)=NLIST(I) 10038 CONTINUE 10039 CONTINUE 10037 GOTO 10025 10026 COMOPT=-2 RETURN 10013 AAAAQ0=AAAAJ0+1 GOTO 10042 10040 AAAAQ0=AAAAQ0+(1) 10042 IF((ITAB(AAAAQ0).NE.-100))GOTO 10043 IF((ITAB(AAAAQ0+1).NE.AAAAK0))GOTO 10043 GOTO 10041 10043 IF((ITAB(AAAAQ0).EQ.-105))GOTO 10041 GOTO 10040 10041 IF((ITAB(AAAAQ0).EQ.-100))GOTO 10044 COMOPT=-3 RETURN 10044 AAAAQ0=AAAAQ0+(2) 10045 AAAAS0=ITAB(AAAAQ0) GOTO 10046 10047 AAAAQ0=AAAAQ0+(1) GOTO 10050 10048 AAAAQ0=AAAAQ0+(1) 10050 IF((ITAB(AAAAQ0).LE.0))GOTO 10049 AAAAR0=1 GOTO 10053 10051 AAAAR0=AAAAR0+(1) 10053 IF((AAAAR0.GT.CPOS(1)))GOTO 10052 IF((ITAB(AAAAQ0).NE.CTAB(CPOS(AAAAR0+1)+0)))GOTO 10054 CTAB(CPOS(AAAAR0+1)+1)=1 GOTO 10052 10054 GOTO 10051 10052 GOTO 10048 10049 GOTO 10055 10056 AAAAQ0=AAAAQ0+(1) GOTO 10059 10057 AAAAQ0=AAAAQ0+(1) 10059 IF((ITAB(AAAAQ0).LE.0))GOTO 10058 AAAAR0=1 GOTO 10062 10060 AAAAR0=AAAAR0+(1) 10062 IF((AAAAR0.GT.CPOS(1)))GOTO 10061 IF((ITAB(AAAAQ0).NE.CTAB(CPOS(AAAAR0+1)+0)))GOTO 10063 CTAB(CPOS(AAAAR0+1)+1)=0 GOTO 10061 10063 GOTO 10060 10061 GOTO 10057 10058 GOTO 10055 10064 AAAAP0=ITAB(AAAAQ0+1) AAAAM0=AAAAP0 AAAAN0=1 GOTO 10014 10065 GOTO 10066 10067 IF((ITAB(FPOS+6).GT.ITAB(AAAAQ0+3)))GOTO 10069 IF((ITAB(FPOS+6).LT.ITAB(AAAAQ0+2)))GOTO 10069 GOTO 10068 10069 CALL PRINT(-15,'-*c*i: *s*n.',ITAB(AAAAJ0+0)-1+225,AAAAK0, *ITAB(AAAAQ0+4)) COMOPT=-3 RETURN 10068 GOTO 10070 10071 ITAB(FPOS+4)=ITAB(AAAAQ0+2) ITAB(FPOS+5)=ITAB(AAAAQ0+3) NLP=NLP+(1) NLIST(NLP)=FPOS GOTO 10070 10072 ITAB(FPOS+4)=MAX0(ITAB(FPOS+4),ITAB(AAAAQ0+2)) ITAB(FPOS+5)=MIN0(ITAB(FPOS+5),ITAB(AAAAQ0+3)) NLP=NLP+(1) NLIST(NLP)=FPOS GOTO 10070 10066 IF((ITAB(FPOS+6).NE.-106))GOTO 10067 IF((ITAB(FPOS+4).EQ.-106))GOTO 10071 IF((ITAB(AAAAQ0+2).GT.ITAB(FPOS+5)))GOTO 10073 IF((ITAB(AAAAQ0+3).LT.ITAB(FPOS+4)))GOTO 10073 GOTO 10072 10073 CONTINUE CALL PRINT(-15,'-*c*i: *s*n.',ITAB(AAAAJ0+0)-1+225,AAAAK0,IT *AB(AAAAQ0+4)) COMOPT=-3 RETURN 10070 AAAAQ0=AAAAQ0+(5+LENGTH(ITAB(AAAAQ0+4))) GOTO 10055 10074 GOTO 10075 10046 AAAAT0=AAAAS0+105 GOTO(10074,10064,10056,10047),AAAAT0 COMOPT=-3 RETURN 10055 CONTINUE GOTO 10045 10075 GOTO 10076 10014 FPOS=1 GOTO 10079 10077 FPOS=FPOS+(1) 10079 IF((FPOS.GT.IPOS(1)))GOTO 10078 IF((AAAAM0.NE.ITAB(IPOS(FPOS+1)+0)))GOTO 10080 GOTO 10078 10080 GOTO 10077 10078 IF((FPOS.GT.IPOS(1)))GOTO 10081 FPOS=IPOS(FPOS+1) GOTO 10082 10081 COMOPT=-3 RETURN 10082 GOTO 10083 10015 LP=0 AAAAU0=1 GOTO 10086 10084 AAAAU0=AAAAU0+(1) 10086 IF((AAAAU0.GT.IPOS(1)))GOTO 10085 AAAAV0=IPOS(AAAAU0+1) IF((ITAB(AAAAV0+6).NE.-106))GOTO 10087 ITAB(AAAAV0+6)=ITAB(AAAAV0+3) LP=LP+(1) LIST(LP)=AAAAV0 10087 GOTO 10084 10085 GOTO 10088 10076 GOTO 10034 10088 GOTO(10024,10036),AAAAO0 GOTO 10088 10083 GOTO 10065 END INTEGER FUNCTION COMFN(A$BUF,INPF,EXT,LISTF,LEXT,BINF,BEXT) INTEGER A$BUF(200) INTEGER INPF(1),EXT(1),LISTF(1) INTEGER LEXT(1),BINF(1),BEXT(1) INTEGER GETARG,DEVEQ INTEGER FD INTEGER CREATE,OPEN INTEGER AAAAW0(9) INTEGER AAAAX0(10) INTEGER AAAAY0(9) INTEGER AAAAZ0(9) INTEGER AAABA0(9) INTEGER AAABB0(9) INTEGER AAABC0(9) DATA AAAAW0/175,228,229,246,175,236,240,243,0/ DATA AAAAX0/175,228,229,246,175,238,245,236,236,0/ DATA AAAAY0/175,228,229,246,175,244,244,249,0/ DATA AAAAZ0/175,228,229,246,175,244,244,249,0/ DATA AAABA0/175,228,229,246,175,244,244,249,0/ DATA AAABB0/175,228,229,246,175,236,240,243,0/ DATA AAABC0/175,228,229,246,175,244,244,249,0/ IF((GETARG(1,INPF,180).NE.-1))GOTO 10089 CALL REMARK('missing input file name.') COMFN=-3 RETURN 10089 CALL MAPSTR(INPF,1) IF((DEVEQ(INPF,AAAAW0).EQ.1))GOTO 10091 IF((DEVEQ(INPF,AAAAX0).EQ.1))GOTO 10091 GOTO 10090 10091 CALL PRINT(-15,'*s: unreasonable input file*n.',INPF) COMFN=-3 RETURN 10090 IF((A$BUF(A$BUF(236-225+27)).NE.0))GOTO 10092 IF((DEVEQ(INPF,AAAAY0).NE.1))GOTO 10093 CALL SCOPY(AAAAZ0,1,LISTF,1) GOTO 10094 10093 CALL MAKED0(INPF,EXT,LISTF,LEXT) 10094 GOTO 10095 10092 CALL SCOPY(A$BUF(A$BUF(236-225+27)),1,LISTF,1) 10095 CALL CONVE0(LISTF) IF((A$BUF(A$BUF(226-225+27)).NE.0))GOTO 10096 IF((DEVEQ(INPF,AAABA0).NE.1))GOTO 10097 CALL SCOPY(BEXT,1,BINF,1) GOTO 10098 10097 CALL MAKED0(INPF,EXT,BINF,BEXT) 10098 GOTO 10099 10096 CALL SCOPY(A$BUF(A$BUF(226-225+27)),1,BINF,1) 10099 IF((DEVEQ(BINF,AAABB0).EQ.1))GOTO 10101 IF((DEVEQ(BINF,AAABC0).EQ.1))GOTO 10101 GOTO 10100 10101 CALL PRINT(-15,'*s: unreasonable binary file*n.',BINF) COMFN=-3 RETURN 10100 CALL CONVE0(BINF) CALL CONVE0(INPF) COMFN=-2 RETURN END SUBROUTINE COMNL(CPOS,CTAB,OFF,ON) INTEGER CPOS(1),CTAB(1),OFF(1),ON(1) INTEGER I,J I=1 GOTO 10104 10102 I=I+(1) 10104 IF((OFF(I).EQ.0))GOTO 10103 J=1 GOTO 10107 10105 J=J+(1) 10107 IF((J.GT.CPOS(1)))GOTO 10106 IF((OFF(I).NE.CTAB(CPOS(J+1)+0)))GOTO 10108 CTAB(CPOS(J+1)+1)=0 GOTO 10106 10108 GOTO 10105 10106 GOTO 10102 10103 I=1 GOTO 10111 10109 I=I+(1) 10111 IF((ON(I).EQ.0))GOTO 10110 J=1 GOTO 10114 10112 J=J+(1) 10114 IF((J.GT.CPOS(1)))GOTO 10113 IF((ON(I).NE.CTAB(CPOS(J+1)+0)))GOTO 10115 CTAB(CPOS(J+1)+1)=1 GOTO 10113 10115 GOTO 10112 10113 GOTO 10109 10110 RETURN END SUBROUTINE MAKED0(SOURCE,SEXT,DEST,DEXT) INTEGER SOURCE(1),SEXT(1),DEST(1),DEXT(1) INTEGER DLEN,TLEN,SP,TP INTEGER EQUAL,SCOPY INTEGER TEXT(102) DLEN=SCOPY(SOURCE,1,DEST,1) SP=1 10116 IF((SEXT(SP).EQ.0))GOTO 10117 TP=1 GOTO 10120 10118 TP=TP+(1) SP=SP+(1) 10120 IF((SEXT(SP).EQ.0))GOTO 10119 IF((SEXT(SP).EQ.172))GOTO 10119 TEXT(TP)=SEXT(SP) GOTO 10118 10119 TEXT(TP)=0 TLEN=TP-1 IF((TLEN.GT.DLEN))GOTO 10121 IF((EQUAL(TEXT,DEST(DLEN-TLEN+1)).NE.1))GOTO 10121 CALL SCOPY(DEXT,1,DEST,DLEN-TLEN+1) RETURN 10121 IF((SEXT(SP).NE.172))GOTO 10122 SP=SP+(1) 10122 GOTO 10116 10117 CALL SCOPY(DEXT,1,DEST,DLEN+1) RETURN END SUBROUTINE CONVE0(NAME) INTEGER NAME(1) INTEGER TEMP(102) INTEGER I INTEGER DEVEQ,MKTR$,INDEX EXTERNAL INDEX INTEGER AAABD0(9) INTEGER AAABE0(4) INTEGER AAABF0(9) INTEGER AAABG0(6) INTEGER AAABH0(10) INTEGER AAABI0(3) DATA AAABD0/175,228,229,246,175,244,244,249,0/ DATA AAABE0/244,244,249,0/ DATA AAABF0/175,228,229,246,175,236,240,243,0/ DATA AAABG0/243,240,239,239,236,0/ DATA AAABH0/175,228,229,246,175,238,245,236,236,0/ DATA AAABI0/238,239,0/ IF((DEVEQ(NAME,AAABD0).NE.1))GOTO 10123 CALL SCOPY(AAABE0,1,NAME,1) GOTO 10124 10123 IF((DEVEQ(NAME,AAABF0).NE.1))GOTO 10125 CALL SCOPY(AAABG0,1,NAME,1) GOTO 10126 10125 IF((DEVEQ(NAME,AAABH0).NE.1))GOTO 10127 CALL SCOPY(AAABI0,1,NAME,1) GOTO 10128 10127 CALL EXPAND(NAME,TEMP,102) IF((INDEX(TEMP,186).NE.0))GOTO 10129 I=MKTR$(TEMP,NAME) GOTO 10130 10129 NAME(1)=167 I=MKTR$(TEMP,NAME(2))+2 NAME(I)=167 NAME(I+1)=0 10130 CONTINUE 10128 CONTINUE 10126 CONTINUE 10124 RETURN END INTEGER FUNCTION DEVEQ(PATH,DEVICE) INTEGER PATH(1),DEVICE(1) INTEGER TEMP(180) INTEGER L INTEGER EQUAL,STAKE L=STAKE(PATH,TEMP,9) IF((TEMP(L).NE.175))GOTO 10131 TEMP(L)=0 10131 DEVEQ=EQUAL(TEMP,DEVICE) RETURN END C ---- Long Name Map ---- C processactions proce0 C convertname conve0 C makedefault maked0 C findunrestrictedoptions findu0 C findoption findo0