SUBROUTINE T12P2 INTEGER DICT (400) INTEGER ID, CID, DTSTRT, DTSTOP COMMON /DARRAY/ DICT COMMON /DARRAY/ ID, CID, DTSTRT, DTSTOP 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 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 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 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 ISWAP INTEGER OBDATA(2), OBSIZE, ISWX C WRITE (DBCHAN, 1) C 1FORMAT (' ENTER T12P2') NLX = DICT (ID) IF (.NOT. (NLX.LE.0))GO TO 13044 CALL ERROR(10) GO TO 13045 13044 CONTINUE OBDATA(1) = IAND (RECORD(3), 255) OBDATA(2) = NADDRS(NLX) + RECORD(4) OBSIZE = 3 IF (.NOT. ((RSTYPE.LT.0) .OR. (RSTYPE.GT.3)))GO TO 13046 CALL ERROR(4) RETURN 13046 CONTINUE ISWX = RSTYPE + 1 GOTO (100,200,300,400) ISWX 100 GOTO 1000 200 OBDATA(2) = ISWAP (OBDATA(2)) GOTO 1000 300 OBSIZE = 2 GOTO 1000 400 OBDATA(2) = ISWAP (OBDATA(2)) OBSIZE = 2 1000 CALL PCHAR (OBDATA(1), 1, OBDATA(1)) CALL PCHAR (OBDATA(1), 2, ISHFT(OBDATA(2), -8)) CALL PCHAR (OBDATA(1), 3, IAND(OBDATA(2), 255)) CALL PUNCH (OBDATA, LOADAD, OBSIZE) LOADAD = LOADAD + OBSIZE 13045 CONTINUE C WRITE (DBCHAN, 2) C 2FORMAT (' EXIT T12P2') RETURN END