INTEGER A$BUF(200) INTEGER AP,TERMO0,INITO0,MAINO0 INTEGER GETARG,MAPDN,PARSCL,LENGTH,INDEX INTEGER FD INTEGER MKTEMP INTEGER ARG(102),OUTPU0(102),FILE(102) INTEGER SWTCM0(11) INTEGER SWTTP0(12) INTEGER AAAAA0 INTEGER AAAAB0 INTEGER AAAAC0 INTEGER AAAAD0 INTEGER AAAAE0 INTEGER AAAAF0(65) INTEGER AAAAG0(13) INTEGER AAAAH0(28) INTEGER AAAAI0(17) INTEGER AAAAJ0(3) INTEGER AAAAK0(3) INTEGER CTOC INTEGER AAAAL0(8) INTEGER AAAAM0 INTEGER AAAAN0(5) INTEGER AAAAO0(7) INTEGER AAAAP0(8) INTEGER AAAAQ0(3) INTEGER AAAAR0(3) INTEGER AAAAS0(8) INTEGER AAAAT0 INTEGER AAAAU0(16) INTEGER AAAAV0(3) INTEGER AAAAW0(3) INTEGER AAAAX0(32),AAAAY0(32) INTEGER EXPAND INTEGER AAAAZ0(9) INTEGER AAABA0(9) INTEGER AAABB0(29) INTEGER AAABC0(7) INTEGER AAABD0(8) INTEGER AAABE0(16) INTEGER AAABF0(12) INTEGER AAABG0(12) INTEGER AAABH0(7) INTEGER AAABI0(8) INTEGER AAABJ0(9) INTEGER AAABK0(8) INTEGER AAABL0(7) INTEGER AAABM0(8) INTEGER AAABN0(11) INTEGER AAABO0(7) INTEGER AAABP0(12) INTEGER AAABQ0(12) DATA SWTCM0/180,176,180,176,175,177,176,176,176,176,0/ DATA SWTTP0/178,176,179,176,175,177,178,176,176,176,176,0/ DATA TERMO0/0/,INITO0/0/,MAINO0/0/,FD/-3/ DATA AAAAF0/219,173,225,226,228,230,238,240,246,245,221,160,219,17 *3,239,188,242,229,241,160,243,244,242,190,221,160,173,243,188,233, *231,238,190,160,173,237,188,233,231,238,190,160,173,236,188,233,23 *1,238,190,173,233,188,233,231,238,190,160,173,244,188,233,231,238, *190,0/ DATA AAAAG0/230,233,236,229,160,174,174,242,245,238,170,238,0/ DATA AAAAH0/227,239,240,249,160,174,174,242,245,238,160,170,243,16 *0,173,228,229,236,229,244,229,160,173,238,241,170,238,0/ DATA AAAAI0/227,238,225,237,229,160,174,174,242,245,238,160,170,24 *3,170,238,0/ DATA AAAAJ0/174,226,0/ DATA AAAAK0/174,239,0/ DATA AAAAL0/236,239,160,170,243,170,238,0/ DATA AAAAN0/170,243,170,238,0/ DATA AAAAO0/246,243,247,244,236,226,0/ DATA AAAAP0/236,239,160,170,243,170,238,0/ DATA AAAAQ0/174,239,0/ DATA AAAAR0/174,237,0/ DATA AAAAS0/237,225,160,170,243,170,238,0/ DATA AAAAU0/237,225,160,173,245,238,228,229,230,233,238,229,228,17 *0,238,0/ DATA AAAAV0/174,239,0/ DATA AAAAW0/174,237,0/ DATA AAAAZ0/189,227,237,223,236,239,227,189,0/ DATA AAABA0/189,244,240,223,236,239,227,189,0/ DATA AAABB0/243,249,160,243,247,244,164,227,237,160,170,243,170,23 *8,243,249,160,243,247,244,164,244,240,160,170,243,170,238,0/ DATA AAABC0/227,164,237,225,233,238,0/ DATA AAABD0/236,239,160,170,243,170,238,0/ DATA AAABE0/236,239,160,236,233,226,190,227,227,237,225,233,238,17 *0,238,0/ DATA AAABF0/236,233,160,240,236,177,231,236,226,170,238,0/ DATA AAABG0/236,233,160,240,225,243,236,233,226,170,238,0/ DATA AAABH0/227,233,239,236,233,226,0/ DATA AAABI0/236,239,160,170,243,170,238,0/ DATA AAABJ0/246,243,247,244,237,225,244,232,0/ DATA AAABK0/236,239,160,170,243,170,238,0/ DATA AAABL0/246,243,232,236,233,226,0/ DATA AAABM0/236,239,160,170,243,170,238,0/ DATA AAABN0/236,233,160,227,227,236,233,226,170,238,0/ DATA AAABO0/246,243,247,244,236,226,0/ DATA AAABP0/236,239,160,170,243,170,238,236,233,170,238,0/ DATA AAABQ0/228,249,238,244,160,173,225,236,236,170,238,0/ IF((PARSCL(AAAAF0,A$BUF).NE.-3))GOTO 10005 AAAAA0=1 GOTO 10000 10006 CONTINUE 10005 FD=MKTEMP(3) IF((FD.NE.-3))GOTO 10007 CALL ERROR('can''t open temporary file.') 10007 AAAAE0=1 GOTO 10004 10008 CALL REWIND(FD) CALL PRINT(-11,'bind*n.') CALL FCOPY(FD,-11) CALL PRINT(-11,AAAAG0) IF((INDEX(OUTPU0,190).EQ.0))GOTO 10009 CALL PRINT(-11,AAAAH0,OUTPU0) GOTO 10010 10009 CALL PRINT(-11,AAAAI0,OUTPU0) 10010 CALL RMTEMP(FD) CALL REMOVE(A$BUF(A$BUF(239-225+27))) CALL SWT 10004 IF((A$BUF(238-225+1).NE.0))GOTO 10011 AAAAB0=1 GOTO 10001 10012 CONTINUE 10011 AP=1 GOTO 10015 10013 AP=AP+(1) 10015 IF((GETARG(AP,ARG,102).EQ.-1))GOTO 10014 IF((ARG(1).EQ.173))GOTO 10016 IF((A$BUF(A$BUF(239-225+27)).NE.0))GOTO 10017 CALL SUFFIX(ARG,AAAAJ0,FILE,AAAAK0) IF((A$BUF(239-225+1).EQ.2))GOTO 10018 A$BUF(239-225+27)=A$BUF(53) A$BUF(53)=A$BUF(53)+(1+CTOC(FILE,A$BUF(A$BUF(53)),200)) 10018 CONTINUE 10017 AAAAC0=1 GOTO 10002 10019 CALL MKTREE(ARG,FILE) CALL PRINT(FD,AAAAL0,FILE) GOTO 10020 10016 IF((ARG(3).EQ.0))GOTO 10021 AAAAA0=2 GOTO 10000 10022 GOTO 10023 10021 AAAAM0=MAPDN(ARG(2)) GOTO 10024 10025 IF((GETARG(AP+1,ARG,102).EQ.-1))GOTO 10027 IF((ARG(1).EQ.173))GOTO 10027 GOTO 10026 10027 AAAAA0=3 GOTO 10000 10028 CONTINUE 10026 AP=AP+(1) CALL PRINT(FD,AAAAN0,ARG) GOTO 10029 10030 IF((GETARG(AP+1,ARG,102).EQ.-1))GOTO 10032 IF((ARG(1).EQ.173))GOTO 10032 GOTO 10031 10032 CALL SCOPY(AAAAO0,1,ARG,1) GOTO 10033 10031 AP=AP+(1) 10033 AAAAC0=2 GOTO 10002 10034 CALL MAKEL0(ARG,FILE) CALL PRINT(FD,AAAAP0,FILE) GOTO 10029 10035 IF((GETARG(AP+1,ARG,102).EQ.-1))GOTO 10037 IF((ARG(1).EQ.173))GOTO 10037 GOTO 10036 10037 ARG(1)=0 GOTO 10038 10036 AP=AP+(1) 10038 IF((ARG(1).NE.0))GOTO 10039 CALL SUFFIX(A$BUF(A$BUF(239-225+27)),AAAAQ0,FILE,AAAAR0) CALL MKTREE(FILE,FILE) GOTO 10040 10039 CALL MKTREE(ARG,FILE) 10040 CALL PRINT(FD,AAAAS0,FILE) GOTO 10029 10041 AAAAB0=2 GOTO 10001 10042 GOTO 10029 10043 AAAAD0=1 GOTO 10003 10044 GOTO 10029 10024 AAAAT0=AAAAM0-232 GOTO(10041,10045,10045,10030,10035,10045,10045,10045,10045,1 *0045,10025,10043),AAAAT0 10045 AAAAA0=4 GOTO 10000 10046 CONTINUE 10029 CONTINUE 10023 CONTINUE 10020 GOTO 10013 10014 IF((A$BUF(238-225+1).NE.0))GOTO 10047 AAAAD0=2 GOTO 10003 10048 CONTINUE 10047 IF((A$BUF(245-225+1).EQ.0))GOTO 10049 CALL PRINT(FD,AAAAU0) 10049 IF((A$BUF(230-225+1).EQ.0))GOTO 10050 CALL SUFFIX(A$BUF(A$BUF(239-225+27)),AAAAV0,FILE,AAAAW0) CALL MKTREE(FILE,FILE) CALL PRINT(FD,'ma *s*n.',FILE) 10050 CALL MKTREE(A$BUF(A$BUF(239-225+27)),OUTPU0) GOTO 10051 10001 IF((EXPAND(AAAAZ0,AAAAX0,32).NE.-3))GOTO 10052 CALL SCOPY(SWTCM0,1,AAAAX0,1) 10052 IF((EXPAND(AAABA0,AAAAY0,32).NE.-3))GOTO 10053 CALL SCOPY(SWTTP0,1,AAAAY0,1) 10053 CALL PRINT(FD,AAABB0,AAAAX0,AAAAY0) GOTO 10054 10002 IF((A$BUF(226-225+1).EQ.0))GOTO 10055 IF((MAINO0.NE.0))GOTO 10055 CALL MAKEL0(AAABC0,FILE) CALL PRINT(FD,AAABD0,FILE) MAINO0=1 10055 IF((A$BUF(247-225+1).EQ.0))GOTO 10056 IF((MAINO0.NE.0))GOTO 10056 CALL PRINT(FD,AAABE0) MAINO0=1 10056 GOTO 10057 10003 IF((TERMO0.NE.0))GOTO 10058 IF((A$BUF(240-225+1).EQ.0))GOTO 10059 CALL PRINT(FD,AAABF0) 10059 IF((A$BUF(225-225+1).EQ.0))GOTO 10060 CALL PRINT(FD,AAABG0) 10060 IF((A$BUF(226-225+1).EQ.0))GOTO 10061 CALL MAKEL0(AAABH0,FILE) CALL PRINT(FD,AAABI0,FILE) CALL MAKEL0(AAABJ0,FILE) CALL PRINT(FD,AAABK0,FILE) CALL MAKEL0(AAABL0,FILE) CALL PRINT(FD,AAABM0,FILE) 10061 IF((A$BUF(247-225+1).EQ.0))GOTO 10062 CALL PRINT(FD,AAABN0) 10062 CALL MAKEL0(AAABO0,FILE) CALL PRINT(FD,AAABP0,FILE) IF((A$BUF(228-225+1).EQ.0))GOTO 10063 CALL PRINT(FD,AAABQ0) 10063 CONTINUE 10058 TERMO0=1 GOTO 10064 10000 IF((FD.EQ.-3))GOTO 10065 CALL RMTEMP(FD) 10065 CALL REMARK('Usage: bind -{a|b|f|n|p} [-o ].') CALL REMARK(' { | -m [] | -s .') CALL REMARK(' | -l [] | -i | -t.') CALL SETERR(1000) CALL SWT 10057 GOTO(10019,10034),AAAAC0 GOTO 10057 10066 GOTO(10006,10022,10028,10046),AAAAA0 GOTO 10066 10054 GOTO(10012,10042),AAAAB0 GOTO 10054 10051 GOTO 10008 10064 GOTO(10044,10048),AAAAD0 GOTO 10064 END SUBROUTINE MKTREE(STR,OUT) INTEGER STR(1),OUT(1) INTEGER I INTEGER MKTR$,INDEX INTEGER IN(102) CALL EXPAND(STR,IN,102) IF((INDEX(IN,175).NE.0))GOTO 10067 IF((INDEX(IN,220).NE.0))GOTO 10067 CALL SCOPY(IN,1,OUT,1) RETURN 10067 OUT(1)=167 I=MKTR$(IN,OUT(2))+2 OUT(I)=167 OUT(I+1)=0 RETURN END SUBROUTINE MAKEL0(NAME,FILE) INTEGER NAME(1),FILE(1) INTEGER STR(102) INTEGER AAABR0(12) DATA AAABR0/189,238,229,247,236,233,226,189,175,170,243,0/ CALL ENCODE(STR,102,AAABR0,NAME) CALL MKTREE(STR,FILE) RETURN END SUBROUTINE SUFFIX(SRC,SSUFF,DEST,DSUFF) INTEGER SRC(1),SSUFF(1),DEST(1),DSUFF(1) INTEGER SUFF(102) INTEGER LENGTH,EQUAL CALL STAKE(SRC,SUFF,-LENGTH(SSUFF)) IF((EQUAL(SUFF,SSUFF).NE.1))GOTO 10068 CALL SDROP(SRC,DEST,-LENGTH(SUFF)) GOTO 10069 10068 CALL SCOPY(SRC,1,DEST,1) 10069 CALL SCOPY(DSUFF,1,DEST,LENGTH(DEST)+1) RETURN END C ---- Long Name Map ---- C termout termo0 C swtcmloc swtcm0 C putloadmain putlo0 C makelibname makel0 C outputfile outpu0 C putinitcommands putin0 C createloadercommands creat0 C mainout maino0 C swttploc swttp0 C puttermcommands putte0 C initout inito0