INTEGER A$BUF(200) INTEGER PATH(180) INTEGER STATE(4),RECOR0 INTEGER GFNARG,EQUAL,GTRCSZ INTEGER * 4 SIZE INTEGER * 4 FSIZE$ INTEGER PARSCL INTEGER AAAAA0(11) INTEGER AAAAB0(41) INTEGER AAAAC0(34) INTEGER AAAAD0(12) INTEGER AAAAE0(28) INTEGER AAAAF0(27) INTEGER AAAAG0(4) INTEGER AAAAH0(6) INTEGER AAAAI0(3) DATA AAAAA0/246,230,242,247,238,188,233,231,238,190,0/ DATA AAAAB0/213,243,225,231,229,186,160,230,243,233,250,229,160,21 *9,173,251,230,252,242,252,246,252,247,253,221,160,251,160,188,240, *225,244,232,238,225,237,229,190,160,253,0/ DATA AAAAC0/173,242,160,225,238,228,160,173,247,160,225,242,229,16 *0,237,245,244,245,225,236,236,249,160,229,248,227,236,245,243,233, *246,229,174,0/ DATA AAAAD0/175,228,229,246,175,243,244,228,233,238,177,0/ DATA AAAAE0/170,243,186,160,227,225,238,167,244,160,231,229,244,16 *0,242,229,227,239,242,228,160,243,233,250,229,170,238,0/ DATA AAAAF0/170,243,186,160,227,225,238,167,244,160,228,229,244,22 *9,242,237,233,238,229,160,243,233,250,229,170,238,0/ DATA AAAAG0/170,182,236,0/ DATA AAAAH0/160,252,160,170,243,0/ DATA AAAAI0/170,238,0/ IF((PARSCL(AAAAA0,A$BUF).NE.-3))GOTO 10000 CALL ERROR(AAAAB0) 10000 IF((A$BUF(242-225+1).EQ.0))GOTO 10001 IF((A$BUF(247-225+1).EQ.0))GOTO 10001 CALL ERROR(AAAAC0) 10001 STATE(1)=1 10002 IF((GFNARG(PATH,STATE).EQ.-1))GOTO 10003 IF((EQUAL(PATH,AAAAD0).NE.1))GOTO 10004 PATH(1)=0 10004 RECOR0=GTRCSZ(PATH) IF((RECOR0.NE.-3))GOTO 10005 CALL PRINT(-15,AAAAE0,PATH) GOTO 10006 10005 SIZE=FSIZE$(PATH,(A$BUF(230-225+1).NE.0),RECOR0) IF((SIZE.NE.-3))GOTO 10007 CALL PRINT(-15,AAAAF0,PATH) GOTO 10008 10007 IF((A$BUF(247-225+1).EQ.0))GOTO 10009 SIZE=SIZE*(RECOR0) 10009 CALL PRINT(-11,AAAAG0,SIZE) IF((A$BUF(246-225+1).EQ.0))GOTO 10010 CALL PRINT(-11,AAAAH0,PATH) 10010 CALL PRINT(-11,AAAAI0) 10008 CONTINUE 10006 GOTO 10002 10003 CALL SWT END INTEGER * 4 FUNCTION FSIZE$(PATH,FORCE,RECOR0) INTEGER PATH(180) LOGICAL FORCE INTEGER RECOR0 INTEGER CODE,CODE2,FD,JUNK,LEVEL,TYPE INTEGER ENTRY(32),FNAME(16),PASSWD(3) INTEGER GETTO,TSCAN$ LOGICAL NAMEQV INTEGER * 4 SIZE INTEGER * 4 SZFIL$ INTEGER AAAAJ0 INTEGER AAAAK0 INTEGER AAAAL0 INTEGER AAAAM0(36) INTEGER AAAAN0 INTEGER AAAAO0(36) INTEGER AAAAP0(27) INTEGER AAAAQ0 INTEGER AAAAR0 INTEGER AAAAS0 INTEGER AAAAT0 INTEGER * 4 AAAAU0 INTEGER AAAAV0 INTEGER AAAAW0 DATA AAAAM0/170,243,186,160,227,225,238,167,244,160,243,233,250,22 *9,160,228,233,242,229,227,244,239,242,249,160,227,239,238,244,229, *238,244,243,170,238,0/ DATA AAAAO0/170,243,186,160,227,225,238,167,244,160,243,233,250,22 *9,160,228,233,242,229,227,244,239,242,249,160,227,239,238,244,229, *238,244,243,170,238,0/ DATA AAAAP0/170,243,186,160,227,225,238,167,244,160,228,229,244,22 *9,242,237,233,238,229,160,243,233,250,229,170,238,0/ IF((GETTO(PATH,FNAME,PASSWD,JUNK).NE.-3))GOTO 10014 AAAAJ0=1 GOTO 10011 10015 CONTINUE 10014 SIZE=0 IF((PATH(1).NE.0))GOTO 10016 CALL SRCH$$(:1+:40000,:177777,0,FD,TYPE,CODE) GOTO 10017 10016 CALL SRCH$$(:1+:40000,FNAME,32,FD,TYPE,CODE) IF((.NOT.FORCE))GOTO 10018 IF((CODE.EQ.5))GOTO 10019 IF((CODE.EQ.10))GOTO 10019 GOTO 10018 10019 CALL SRCH$$(:1+:40000,:177777,0,FD,TYPE,JUNK) CALL RDEN$$(:5,FD,ENTRY,32,JUNK,FNAME,32,CODE2) CALL SRCH$$(:4,0,0,FD,0,JUNK) IF((CODE2.NE.0))GOTO 10020 AAAAL0=1 GOTO 10013 10021 CONTINUE 10020 CONTINUE 10018 CONTINUE 10017 IF((CODE.EQ.0))GOTO 10022 AAAAJ0=2 GOTO 10011 10023 GOTO 10024 10022 AAAAK0=1 GOTO 10012 10025 CONTINUE 10024 IF((TYPE.EQ.4))GOTO 10026 CALL FOLLOW(0,0) FSIZE$=SIZE RETURN 10026 IF((PATH(1).EQ.0))GOTO 10027 CALL AT$SWT(FNAME,32,0,PASSWD,:2,CODE) IF((CODE.EQ.0))GOTO 10028 CALL FOLLOW(0,0) CALL PRINT(-15,AAAAM0,PATH) FSIZE$=SIZE RETURN 10028 CONTINUE 10027 LEVEL=0 10029 AAAAN0=TSCAN$(PATH,ENTRY,LEVEL,128,2) GOTO 10030 10031 CALL PRINT(-15,AAAAO0,PATH) GOTO 10032 10033 IF((AND(ENTRY(20),4096).EQ.0))GOTO 10034 IF((.NOT.NAMEQV(ENTRY(2),'MFD ')))GOTO 10034 GOTO 10035 10034 CALL SRCH$$(:1+:40000,ENTRY(2),32,FD,TYPE,CODE) IF((.NOT.FORCE))GOTO 10036 IF((CODE.EQ.5))GOTO 10037 IF((CODE.EQ.10))GOTO 10037 GOTO 10036 10037 AAAAL0=2 GOTO 10013 10038 CONTINUE 10036 IF((CODE.EQ.0))GOTO 10039 CALL PRINT(-15,AAAAP0,PATH) GOTO 10040 10039 AAAAK0=2 GOTO 10012 10041 CONTINUE 10040 GOTO 10032 10042 CALL FOLLOW(0,0) FSIZE$=SIZE RETURN 10030 AAAAQ0=AAAAN0+4 GOTO(10031,10033,10042),AAAAQ0 10032 CONTINUE 10035 GOTO 10029 10011 CALL SRCH$$(:4,0,0,FD,0,JUNK) CALL FOLLOW(0,0) FSIZE$=-3 RETURN 10013 AAAAR0=0 CALL BREAK$(1) 10043 AAAAS0=CODE GOTO 10044 10045 CALL SATR$$(:1,ENTRY(2),32,:100000000,CODE) IF((CODE.EQ.0))GOTO 10046 GOTO 10047 10046 AAAAR0=OR(AAAAR0,1) GOTO 10048 10049 CALL SATR$$(:4,ENTRY(2),32,:400000,CODE) IF((CODE.EQ.0))GOTO 10050 GOTO 10047 10050 AAAAR0=OR(AAAAR0,2) GOTO 10048 10044 AAAAT0=AAAAS0-4 GOTO(10049,10051,10051,10051,10051,10045),AAAAT0 10051 GOTO 10047 10048 CALL SRCH$$(:1+:40000,ENTRY(2),32,FD,TYPE,CODE) GOTO 10043 10047 IF((AND(AAAAR0,1).EQ.0))GOTO 10052 ENTRY(19)=0 CALL SATR$$(:1,ENTRY(2),32,ENTRY(18),JUNK) 10052 IF((AND(AAAAR0,2).EQ.0))GOTO 10053 ENTRY(21)=0 ENTRY(20)=RS(AND(ENTRY(20),3072),10) CALL SATR$$(:4,ENTRY(2),32,ENTRY(20),JUNK) 10053 CALL BREAK$(0) GOTO 10054 10012 AAAAV0=TYPE GOTO 10055 10056 AAAAU0=SZFIL$(FD,TYPE,RECOR0) GOTO 10057 10058 CALL SZSEG$(AAAAU0,FD,TYPE,RECOR0) GOTO 10057 10059 CALL RDEN$$(:4,FD,0,0,0,:17777777777,0,CODE) CALL RDEN$$(:3,FD,0,0,0,AAAAU0,0,CODE) IF((CODE.EQ.0))GOTO 10060 AAAAU0=-3 GOTO 10061 10060 AAAAU0=(AAAAU0+RECOR0-1)/RECOR0 10061 GOTO 10057 10055 AAAAW0=AAAAV0+1 GOTO(10056,10056,10058,10058,10059),AAAAW0 10057 IF((AAAAU0.NE.-3))GOTO 10062 AAAAJ0=3 GOTO 10011 10063 GOTO 10064 10062 SIZE=SIZE+(AAAAU0) 10064 CALL SRCH$$(:4,0,0,FD,0,CODE) GOTO 10065 10066 GOTO(10015,10023,10063),AAAAJ0 GOTO 10066 10054 GOTO(10021,10038),AAAAL0 GOTO 10054 10065 GOTO(10025,10041),AAAAK0 GOTO 10065 END INTEGER * 4 FUNCTION SZFIL$(FD,TYPE,RECOR0) INTEGER FD,TYPE,RECOR0 INTEGER CODE,JUNK INTEGER * 4 SIZE 10067 CALL PRWF$$(:3+:0,FD,LOC(0),0,:17777777777,JUNK,CODE) IF((CODE.EQ.0))GOTO 10067 IF((CODE.EQ.1))GOTO 10068 SZFIL$=-3 RETURN 10068 CALL PRWF$$(:5,FD,LOC(0),0,SIZE,JUNK,CODE) SIZE=(SIZE+RECOR0-1)/RECOR0 IF((SIZE.NE.0))GOTO 10069 SIZE=1 10069 IF((TYPE.NE.1))GOTO 10070 SIZE=SIZE+(1+(2*SIZE-1)/RECOR0) 10070 SZFIL$=SIZE RETURN END SUBROUTINE SZSEG$(SIZE,FD,TYPE,RECOR0) INTEGER * 4 SIZE INTEGER FD,TYPE,RECOR0 INTEGER ENTRYA,ENTRYB,NFD,NTYPE,CODE INTEGER * 4 TEMP INTEGER * 4 SZFIL$ INTEGER AAAAX0 INTEGER AAAAY0 SIZE=-3 CALL SGDR$$(:2,FD,ENTRYA,ENTRYB,CODE) CALL SGDR$$(:1,FD,0,ENTRYA,CODE) IF((CODE.EQ.0))GOTO 10071 RETURN 10071 IF((ENTRYB.NE.0))GOTO 10072 SIZE=1 GOTO 10073 10072 SIZE=(ENTRYB+RECOR0-1)/RECOR0 10073 IF((TYPE.NE.3))GOTO 10074 SIZE=SIZE+(1+(2*ENTRYB-1)/RECOR0) 10074 ENTRYB=-1 10075 ENTRYA=ENTRYB+1 CALL SGDR$$(:6,FD,ENTRYA,ENTRYB,CODE) IF((ENTRYB.EQ.-1))GOTO 10077 IF((CODE.NE.0))GOTO 10077 GOTO 10076 10077 GOTO 10078 10076 CALL SRCH$$(:1+:40000+:100,FD,0,NFD,NTYPE,CODE) IF((CODE.EQ.0))GOTO 10079 SIZE=-3 RETURN 10079 AAAAX0=NTYPE GOTO 10080 10081 TEMP=SZFIL$(NFD,NTYPE,RECOR0) GOTO 10082 10083 CALL SZSEG$(TEMP,NFD,NTYPE,RECOR0) GOTO 10082 10080 AAAAY0=AAAAX0+1 GOTO(10081,10081,10083,10083),AAAAY0 10082 IF((TEMP.NE.-3))GOTO 10084 SIZE=-3 RETURN 10084 SIZE=SIZE+(TEMP) CALL SRCH$$(:4,0,0,NFD,0,CODE) GOTO 10075 10078 RETURN END INTEGER FUNCTION GTRCSZ(PATH) INTEGER PATH(1) INTEGER CODE,FD,JUNK,NWR,ENTRY(24),FNAME(16),PASSWD(3) INTEGER GETTO IF((GETTO(PATH,FNAME,PASSWD,JUNK).NE.-3))GOTO 10085 GTRCSZ=-3 RETURN 10085 CALL AT$SWT('MFD',3,:177777,'XXXXXX',:0,CODE) IF((CODE.EQ.0))GOTO 10086 GTRCSZ=-3 RETURN 10086 CALL SRCH$$(:1+:40000,:177777,0,FD,JUNK,CODE) IF((CODE.EQ.0))GOTO 10087 GTRCSZ=-3 RETURN 10087 CALL RDEN$$(:1,FD,ENTRY,32,NWR,0,0,CODE) CALL SRCH$$(:4,0,0,FD,0,JUNK) IF((CODE.NE.0))GOTO 10089 IF((NWR.LT.20))GOTO 10089 GOTO 10088 10089 GTRCSZ=-3 RETURN 10088 NWR=440 IF((ENTRY(20).GE.0))GOTO 10090 NWR=1024 10090 CALL FOLLOW(0,0) GTRCSZ=NWR RETURN END C ---- Long Name Map ---- C forceopen force0 C accumulate accum0 C changes chang0 C recordsize recor0