SUBROUTINE ERROR (N) INTEGER N INTEGER PROC INTEGER NSAVE INTEGER ETEXT (36) INTEGER EPROC (20) INTEGER ECOUNT (20) INTEGER ELIMIT (20) INTEGER EMSG (200) INTEGER EMSG1(10),EMSG2(10),EMSG3(10),EMSG4(10) INTEGER EMSG5(10),EMSG6(10),EMSG7(10),EMSG8(10) INTEGER EMSG9(10),EMSG10(10),EMSG11(10),EMSG12(10) INTEGER EMSG13(10),EMSG14(10),EMSG15(10),EMSG16(10) INTEGER EMSG17(10),EMSG18(10),EMSG19(10),EMSG20(20) INTEGER EMAX,ICLP06 COMMON /ERRDFN/ EPROC COMMON /ERRDFN/ ECOUNT COMMON /ERRDFN/ ELIMIT COMMON /ERRDFN/ EMSG COMMON /ERRDFN/ EMAX COMMON /ERRDFN/ ICLP06 EQUIVALENCE (EMSG1,EMSG(1)), (EMSG2,EMSG(11)) EQUIVALENCE (EMSG3,EMSG(21)), (EMSG4,EMSG(31)) EQUIVALENCE (EMSG5,EMSG(41)), (EMSG6,EMSG(51)) EQUIVALENCE (EMSG7,EMSG(61)), (EMSG8,EMSG(71)) EQUIVALENCE (EMSG9,EMSG(81)), (EMSG10,EMSG(91)) EQUIVALENCE (EMSG11,EMSG(101)),(EMSG12,EMSG(111)) EQUIVALENCE (EMSG13,EMSG(121)),(EMSG14,EMSG(131)) EQUIVALENCE (EMSG15,EMSG(141)),(EMSG16,EMSG(151)) EQUIVALENCE (EMSG17,EMSG(161)),(EMSG18,EMSG(171)) EQUIVALENCE (EMSG19,EMSG(181)),(EMSG20,EMSG(191)) INTEGER ECODE INTEGER CMCHAN INTEGER RBCHAN INTEGER OBCHAN INTEGER MPCHAN INTEGER DBCHAN INTEGER TTYIN INTEGER TTYOUT COMMON /IODEFN/ ECODE COMMON /IODEFN/ CMCHAN COMMON /IODEFN/ RBCHAN COMMON /IODEFN/ OBCHAN COMMON /IODEFN/ MPCHAN COMMON /IODEFN/ DBCHAN COMMON /IODEFN/ TTYIN COMMON /IODEFN/ TTYOUT INTEGER CMFILE (16) INTEGER RBFILE (16) INTEGER OBFILE (16) INTEGER MPFILE (16) INTEGER DBFILE (16) INTEGER TIFILE (3) INTEGER ICLP03 COMMON /FILES / CMFILE COMMON /FILES / RBFILE COMMON /FILES / OBFILE COMMON /FILES / MPFILE COMMON /FILES / DBFILE COMMON /FILES / TIFILE COMMON /FILES / ICLP03 LOGICAL MPFLAG LOGICAL OVMODE LOGICAL LBMODE LOGICAL LOADRB LOGICAL SFLAG INTEGER VERS INTEGER LOADAD INTEGER ZLOC, ZSTR, ZMAX, ZLIMIT INTEGER CLOC, CSTR, CMAX, CLIMIT INTEGER NLOC, NSTR, NMAX, NLIMIT INTEGER DLOC, DSTR, DMAX, DLIMIT INTEGER OLOC, OMAX, OSET INTEGER START INTEGER MODNLX INTEGER CKSUM INTEGER KEY INTEGER ICLP05 COMMON /LDATAX/ MPFLAG COMMON /LDATAX/ OVMODE COMMON /LDATAX/ LBMODE COMMON /LDATAX/ LOADRB COMMON /LDATAX/ SFLAG COMMON /LDATAX/ VERS COMMON /LDATAX/ LOADAD COMMON /LDATAX/ ZLOC, ZSTR, ZMAX, ZLIMIT COMMON /LDATAX/ CLOC, CSTR, CMAX, CLIMIT COMMON /LDATAX/ NLOC, NSTR, NMAX, NLIMIT COMMON /LDATAX/ DLOC, DSTR, DMAX, DLIMIT COMMON /LDATAX/ OLOC, OMAX, OSET COMMON /LDATAX/ START COMMON /LDATAX/ MODNLX COMMON /LDATAX/ CKSUM COMMON /LDATAX/ KEY COMMON /LDATAX/ ICLP05 INTEGER RCOUNT INTEGER RTYPE INTEGER RSTYPE INTEGER RTMAX INTEGER RSZMAX INTEGER RECORD (41) INTEGER RSIZE INTEGER RSIZES (20) INTEGER ICLP02 COMMON /RECORD/ RCOUNT COMMON /RECORD/ RTYPE COMMON /RECORD/ RSTYPE COMMON /RECORD/ RTMAX COMMON /RECORD/ RSZMAX COMMON /RECORD/ RECORD COMMON /RECORD/ RSIZE COMMON /RECORD/ RSIZES COMMON /RECORD/ ICLP02 INTEGER CHAR INTEGER CHMASK INTEGER CR, LF INTEGER CRLF INTEGER BLANK, PERIOD INTEGER BLANKS, DASHES, COLONS, SLASHS INTEGER ACH, BCH, CCH, DCH, ECH, FCH INTEGER GCH, HCH, ICH, JCH, KCH, LCH INTEGER MCH, NCH, OCH, PCH, QCH, RCH INTEGER SCH, TCH, UCH, VCH, WCH, XCH INTEGER YCH, ZCH INTEGER LBRACE, RBRACE INTEGER LBRACK, RBRACK INTEGER ICLP04 COMMON /CHARAC/ CHAR COMMON /CHARAC/ CHMASK COMMON /CHARAC/ CR, LF COMMON /CHARAC/ CRLF COMMON /CHARAC/ BLANK, PERIOD COMMON /CHARAC/ BLANKS, DASHES, COLONS, SLASHS COMMON /CHARAC/ ACH, BCH, CCH, DCH, ECH, FCH COMMON /CHARAC/ GCH, HCH, ICH, JCH, KCH, LCH COMMON /CHARAC/ MCH, NCH, OCH, PCH, QCH, RCH COMMON /CHARAC/ SCH, TCH, UCH, VCH, WCH, XCH COMMON /CHARAC/ YCH, ZCH COMMON /CHARAC/ LBRACE, RBRACE COMMON /CHARAC/ LBRACK, RBRACK COMMON /CHARAC/ ICLP04 INTEGER NSIZE, NAME(16), NTITLE INTEGER NFLAGS (512) INTEGER NADDRS (512) INTEGER NPOSIT (512) INTEGER NDATA (512) INTEGER NTEXTX (512) INTEGER NTEXT (1000) INTEGER NLX, NLSTRT, NLSTOP INTEGER TXSTRT, TXSTOP INTEGER NTXBTS INTEGER USEBIT, COMBIT, OVLBIT, EPTBIT INTEGER LDMBIT, MODBIT, MLTBIT, RLSBIT INTEGER GDFBIT, TYPBTS INTEGER ATYPE INTEGER ICLP07 LOGICAL OLDNAM COMMON /NTABLE/ NSIZE, NAME, NTITLE COMMON /NTABLE/ NFLAGS, NADDRS, NPOSIT, NDATA, NTEXTX COMMON /NTABLE/ NTEXT COMMON /NTABLE/ NLX, NLSTRT, NLSTOP COMMON /NTABLE/ TXSTRT, TXSTOP COMMON /NTABLE/ NTXBTS COMMON /NTABLE/ USEBIT, COMBIT, OVLBIT, EPTBIT COMMON /NTABLE/ LDMBIT, MODBIT, MLTBIT, RLSBIT COMMON /NTABLE/ GDFBIT, TYPBTS COMMON /NTABLE/ ATYPE COMMON /NTABLE/ ICLP07 COMMON /NTABLE/ OLDNAM INTEGER MEMORY (4096) INTEGER MEMX INTEGER MEMLOC INTEGER ROM (64) INTEGER ONEK, ENDK COMMON /MEMORY/ MEMORY COMMON /MEMORY/ MEMX COMMON /MEMORY/ MEMLOC COMMON /MEMORY/ ROM COMMON /MEMORY/ ONEK, ENDK INTEGER I C WRITE (DBCHAN, 1) C 1FORMAT (' ENTER ERROR') NSAVE = N IF (N.GT.EMAX) N = 1 50 CONTINUE CALL SET (BLANKS, ETEXT, 36) ECOUNT(N) = ECOUNT(N) +1 PROC = EPROC(N) C WRITE (DBCHAN, 2) PROC, N C 2FORMAT (' IN ERROR BEFORE GOTO; PROC=', I5, ' N= ', I5) GOTO (100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400 1,1500,1600,1700,1800,1900,2000) PROC 100 CONTINUE CALL ESP (NSAVE, ETEXT, 21, 26) GOTO 5000 200 CONTINUE CALL ESP (ECOUNT(NSAVE), ETEXT, 21, 25) GOTO 5000 300 CONTINUE CALL ESP (ECODE, ETEXT, 21, 25) GOTO 5000 400 CONTINUE CALL ESP (RTYPE, ETEXT, 21, 25) CALL ESP (RSTYPE, ETEXT, 26, 30) GOTO 5000 500 CONTINUE CALL MOVE (NAME, ETEXT(11), NSIZE) GOTO 5000 600 CONTINUE CALL MOVE (NAME, ETEXT(11), NSIZE) GOTO 5000 700 CONTINUE CALL MOVE (RBFILE, ETEXT(11), 10) GOTO 5000 800 CONTINUE GOTO 5000 900 CONTINUE GO TO 700 1000 CONTINUE CALL EHX (RECORD(1), ETEXT, 21,24) CALL EHX (RECORD(2), ETEXT, 26,29) CALL EHX (RECORD(3), ETEXT, 31,34) GOTO 5000 1100 CONTINUE CALL EHX (MEMLOC, ETEXT, 21, 24) GOTO 5000 1200 CONTINUE GOTO 1000 1300 CONTINUE GOTO 1000 1400 CONTINUE GOTO 700 1500 CONTINUE CALL EHX (START, ETEXT, 21, 24) GOTO 5000 1600 CONTINUE CALL MOVE (NAME, ETEXT(11), NSIZE) CALL ESP (NDATA(NLX), ETEXT(27), 1,4) CALL ESP (RECORD(3), ETEXT(30), 1,4) GOTO 5000 1700 CONTINUE CALL EHX (MEMLOC, ETEXT, 21,24) GOTO 5000 1800 CONTINUE 1900 CONTINUE 2000 CONTINUE 5000 CONTINUE C WRITE (DBCHAN, 3) C 3FORMAT (' IN ERROR AT 5000') CALL MOVE (EMSG(10*N-9), ETEXT, 10) CALL WRLIN (TTYOUT, ETEXT, 72) CALL WRLIN (MPCHAN, ETEXT, 72) IF (.NOT. (N.EQ.2))GO TO 13026 STOP 13026 CONTINUE IF (.NOT. (ECOUNT(N).GE.ELIMIT(N)))GO TO 13028 N = 2 GOTO 50 13028 CONTINUE C WRITE (DBCHAN, 4) C 4FORMAT (' EXIT ERROR') RETURN END