INTEGER BUFAA0(4096) INTEGER BPAAA0 INTEGER NAMEA0(102) INTEGER LINEA0(102) INTEGER FILEA0(102) INTEGER FNAME0(102) INTEGER FLINE0(102) INTEGER FFILE0(102) INTEGER FNARG0 INTEGER FREFA0 INTEGER MTYPE0(16,32) INTEGER * 4 MLENA0(16,32) COMMON /CCK2C/BUFAA0,BPAAA0,NAMEA0,LINEA0,FILEA0,FNAME0,FLINE0,FFI *LE0,FNARG0,FREFA0,MTYPE0,MLENA0 INTEGER GETLIN INTEGER LTYPE(102) INTEGER AAAAA0 INTEGER AAAAB0 INTEGER AAAAC0(17) DATA AAAAC0/238,239,244,160,242,229,230,229,242,229,238,227,229,22 *8,170,238,0/ FNAME0(1)=0 FREFA0=1 10000 IF((GETLIN(BUFAA0,-10,4096).EQ.-1))GOTO 10001 IF((BUFAA0(1).EQ.163))GOTO 10002 CALL PRINT(-15,'cck2: bogus line: *s.',BUFAA0) GOTO 10000 10002 BPAAA0=2 CALL GETWRD(BUFAA0,BPAAA0,NAMEA0) CALL GETWRD(BUFAA0,BPAAA0,LTYPE) CALL GETWRD(BUFAA0,BPAAA0,FILEA0) CALL GETWRD(BUFAA0,BPAAA0,LINEA0) AAAAA0=LTYPE(1) GOTO 10003 10004 CALL FNDEF GOTO 10005 10006 CALL FNCALL GOTO 10005 10003 AAAAB0=AAAAA0-227 GOTO(10004,10007,10007,10007,10007,10006),AAAAB0 10007 CALL PRINT(-15,'cck2: unrecognized flag: *s*n',LTYPE) 10005 GOTO 10000 10001 IF((FREFA0.NE.0))GOTO 10008 CALL PUTWH0(FNAME0,FFILE0,FLINE0) CALL PRINT(-11,AAAAC0) 10008 CALL SWT END SUBROUTINE FNDEF INTEGER BUFAA0(4096) INTEGER BPAAA0 INTEGER NAMEA0(102) INTEGER LINEA0(102) INTEGER FILEA0(102) INTEGER FNAME0(102) INTEGER FLINE0(102) INTEGER FFILE0(102) INTEGER FNARG0 INTEGER FREFA0 INTEGER MTYPE0(16,32) INTEGER * 4 MLENA0(16,32) COMMON /CCK2C/BUFAA0,BPAAA0,NAMEA0,LINEA0,FILEA0,FNAME0,FLINE0,FFI *LE0,FNARG0,FREFA0,MTYPE0,MLENA0 INTEGER MODE(102) INTEGER EQUAL INTEGER AAAAD0(16) INTEGER AAAAE0(17) INTEGER AAAAF0(21) DATA AAAAD0/228,229,230,233,238,229,228,160,244,247,233,227,229,17 *0,238,0/ DATA AAAAE0/238,239,244,160,242,229,230,229,242,229,238,227,229,22 *8,170,238,0/ DATA AAAAF0/244,239,239,160,237,225,238,249,160,225,242,231,245,23 *7,229,238,244,243,170,238,0/ IF((EQUAL(NAMEA0,FNAME0).NE.1))GOTO 10009 CALL PUTWH0(NAMEA0,FILEA0,LINEA0) CALL PRINT(-11,AAAAD0) RETURN 10009 IF((FREFA0.NE.0))GOTO 10010 CALL PUTWH0(FNAME0,FFILE0,FLINE0) CALL PRINT(-11,AAAAE0) 10010 CALL CTOC(NAMEA0,FNAME0,102) CALL CTOC(LINEA0,FLINE0,102) CALL CTOC(FILEA0,FFILE0,102) FREFA0=0 FNARG0=1 GOTO 10013 10011 FNARG0=FNARG0+(1) 10013 IF((FNARG0.GT.32))GOTO 10012 IF((BUFAA0(BPAAA0).EQ.0))GOTO 10012 IF((BUFAA0(BPAAA0).EQ.138))GOTO 10012 CALL GETWRD(BUFAA0,BPAAA0,MODE) CALL CVTMO0(MODE,MTYPE0(1,FNARG0),MLENA0(1,FNARG0)) GOTO 10011 10012 IF((BUFAA0(BPAAA0).EQ.0))GOTO 10014 IF((BUFAA0(BPAAA0).EQ.138))GOTO 10014 CALL PUTWH0(NAMEA0,FILEA0,LINEA0) CALL PRINT(-11,AAAAF0) 10014 RETURN END SUBROUTINE FNCALL INTEGER BUFAA0(4096) INTEGER BPAAA0 INTEGER NAMEA0(102) INTEGER LINEA0(102) INTEGER FILEA0(102) INTEGER FNAME0(102) INTEGER FLINE0(102) INTEGER FFILE0(102) INTEGER FNARG0 INTEGER FREFA0 INTEGER MTYPE0(16,32) INTEGER * 4 MLENA0(16,32) COMMON /CCK2C/BUFAA0,BPAAA0,NAMEA0,LINEA0,FILEA0,FNAME0,FLINE0,FFI *LE0,FNARG0,FREFA0,MTYPE0,MLENA0 INTEGER MODE(102) INTEGER NARGS INTEGER TYPE(16) INTEGER EQUAL,CMPMO0 INTEGER * 4 LEN(16) INTEGER AAAAG0(14) INTEGER AAAAH0 INTEGER AAAAI0(20) INTEGER AAAAJ0(13) INTEGER AAAAK0(7) INTEGER AAAAL0(31) INTEGER AAAAM0(20) INTEGER AAAAN0(13) INTEGER AAAAO0(7) INTEGER AAAAP0(35) INTEGER AAAAQ0(20) INTEGER AAAAR0(26) DATA AAAAG0/238,239,244,160,228,229,230,233,238,229,228,170,238,0/ DATA AAAAI0/233,238,160,227,225,236,236,160,168,167,170,243,167,16 *0,170,243,169,172,160,0/ DATA AAAAJ0/242,229,244,245,242,238,160,246,225,236,245,229,0/ DATA AAAAK0/225,242,231,160,170,233,0/ DATA AAAAL0/160,244,249,240,229,243,160,228,239,238,167,244,160,22 *5,231,242,229,229,160,168,247,225,242,238,233,238,231,169,170,238, *0/ DATA AAAAM0/233,238,160,227,225,236,236,160,168,167,170,243,167,16 *0,170,243,169,172,160,0/ DATA AAAAN0/242,229,244,245,242,238,160,246,225,236,245,229,0/ DATA AAAAO0/225,242,231,160,170,233,0/ DATA AAAAP0/160,244,249,240,229,160,237,233,243,237,225,244,227,23 *2,160,173,173,160,227,225,236,236,160,247,233,236,236,160,230,225, *233,236,170,238,0/ DATA AAAAQ0/233,238,160,227,225,236,236,160,168,167,170,243,167,16 *0,170,243,169,172,160,0/ DATA AAAAR0/246,225,242,233,225,226,236,229,160,238,245,237,226,22 *9,242,160,239,230,160,225,242,231,243,170,238,0/ IF((EQUAL(NAMEA0,FNAME0).NE.0))GOTO 10015 CALL PUTWH0(NAMEA0,FILEA0,LINEA0) CALL PRINT(-11,AAAAG0) CALL FNDEF FREFA0=1 RETURN 10015 NARGS=1 GOTO 10018 10016 NARGS=NARGS+(1) 10018 IF((NARGS.GT.FNARG0))GOTO 10017 IF((BUFAA0(BPAAA0).EQ.0))GOTO 10017 IF((BUFAA0(BPAAA0).EQ.138))GOTO 10017 CALL GETWRD(BUFAA0,BPAAA0,MODE) CALL CVTMO0(MODE,TYPE,LEN) AAAAH0=CMPMO0(TYPE,LEN,MTYPE0(1,NARGS),MLENA0(1,NARGS)) GOTO 10019 10020 CALL PUTWH0(FNAME0,FLINE0,FFILE0) CALL PRINT(-11,AAAAI0,FILEA0,LINEA0) IF((NARGS.NE.1))GOTO 10021 CALL PRINT(-11,AAAAJ0) GOTO 10022 10021 CALL PRINT(-11,AAAAK0,NARGS-1) 10022 CALL PRINT(-11,AAAAL0) GOTO 10023 10024 CALL PUTWH0(FNAME0,FLINE0,FFILE0) CALL PRINT(-11,AAAAM0,FILEA0,LINEA0) IF((NARGS.NE.1))GOTO 10025 CALL PRINT(-11,AAAAN0) GOTO 10026 10025 CALL PRINT(-11,AAAAO0,NARGS-1) 10026 CALL PRINT(-11,AAAAP0) GOTO 10023 10019 GOTO(10024,10020),AAAAH0 10023 GOTO 10016 10017 IF((BUFAA0(BPAAA0).EQ.0))GOTO 10027 IF((BUFAA0(BPAAA0).EQ.138))GOTO 10027 CALL PUTWH0(FNAME0,FLINE0,FFILE0) CALL PRINT(-11,AAAAQ0,FILEA0,LINEA0) CALL PRINT(-11,AAAAR0) 10027 FREFA0=1 RETURN END SUBROUTINE PUTWH0(N,F,L) INTEGER N(102),F(102),L(102) INTEGER AAAAS0(16) DATA AAAAS0/170,243,160,168,167,170,243,167,160,170,243,169,186,16 *0,160,0/ CALL PRINT(-11,AAAAS0,N,F,L) RETURN END SUBROUTINE CVTMO0(STR,TYPE,LEN) INTEGER STR(102) INTEGER TYPE(16) INTEGER * 4 LEN(16) INTEGER I,M,NM INTEGER * 4 L INTEGER * 4 CTOL I=1 NM=1 GOTO 10030 10028 NM=NM+(1) 10030 IF((STR(I).EQ.0))GOTO 10029 M=CTOL(STR,I) IF((STR(I).NE.186))GOTO 10031 I=I+(1) L=CTOL(STR,I) GOTO 10032 10031 L=0 10032 IF((NM.LT.16))GOTO 10033 CALL PRINT(-11,'cck2: mode too complicated*n.') GOTO 10029 10033 TYPE(NM)=M LEN(NM)=L IF((STR(I).EQ.0))GOTO 10034 I=I+(1) 10034 GOTO 10028 10029 TYPE(NM)=0 LEN(NM)=0 RETURN END INTEGER FUNCTION CMPMO0(T1,L1,T2,L2) INTEGER T1(16),T2(16) INTEGER * 4 L1(16),L2(16) INTEGER I1,I2,CODE,FATAL0 INTEGER CMPTBL(17,17) INTEGER AAAAT0 INTEGER AAAAU0 DATA CMPTBL/0,1,0,1,2,1,1,2,2,2,3,2,2,1,2,2,2,1,0,1,1,2,0,1,2,2,2, *3,2,2,1,2,2,2,0,1,0,1,2,1,1,2,2,2,3,2,2,1,2,2,2,1,1,1,0,2,1,1,2,2, *2,3,2,2,1,2,2,2,2,2,2,2,0,2,2,1,2,2,3,2,2,2,2,2,2,1,0,1,1,2,0,1,2, *2,2,3,2,2,1,2,2,2,1,1,1,1,2,1,0,2,2,2,3,2,2,1,2,2,2,2,2,2,2,1,2,2, *0,2,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2, *2,2,0,0,2,2,2,2,2,2,2,4,4,4,4,4,4,4,4,2,2,5,2,2,4,2,2,2,2,2,2,2,2, *2,2,2,2,2,2,5,5,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,5,5,2,2,2,2,1,1,1,1, *2,1,1,2,2,2,3,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,4,2,2,5,2,2,2,2,2, *2,2,2,2,2,2,2,2,2,2,2,2,6,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,6,6/ FATAL0=1 I1=1 I2=1 10035 IF((T1(I1).EQ.0))GOTO 10036 IF((T1(I2).EQ.0))GOTO 10036 IF((T1(I1).LT.1))GOTO 10038 IF((T1(I1).GT.17))GOTO 10038 IF((T2(I2).LT.1))GOTO 10038 IF((T2(I2).GT.17))GOTO 10038 GOTO 10037 10038 CODE=2 GOTO 10039 10037 CODE=CMPTBL(T1(I1),T2(I2)) 10039 AAAAT0=CODE GOTO 10040 10041 CMPMO0=0 RETURN 10042 CMPMO0=2 RETURN 10043 IF((FATAL0.NE.1))GOTO 10044 CMPMO0=1 RETURN 10044 CMPMO0=2 RETURN 10045 I1=I1+(1) GOTO 10046 10047 I2=I2+(1) GOTO 10046 10048 I1=I1+(1) I2=I2+(1) FATAL0=0 GOTO 10046 10049 IF((L1(I1).NE.L2(I2)))GOTO 10050 CMPMO0=0 RETURN 10050 IF((FATAL0.NE.1))GOTO 10051 CMPMO0=1 RETURN 10051 CMPMO0=2 RETURN 10040 AAAAU0=AAAAT0+1 GOTO(10041,10042,10043,10045,10047,10048,10049),AAAAU0 10046 GOTO 10035 10036 IF((FATAL0.NE.1))GOTO 10052 CMPMO0=1 RETURN 10052 CMPMO0=2 RETURN END C ---- Long Name Map ---- C fatalok fatal0 C Line linea0 C Fnargs fnarg0 C cmpmode cmpmo0 C Bp bpaaa0 C Mlen mlena0 C Mtype mtype0 C Ffile ffile0 C Fname fname0 C Fline fline0 C putwhere putwh0 C cvtmode cvtmo0 C Buf bufaa0 C File filea0 C Name namea0 C Fref frefa0