NETOFLNE867

(George Source)

Macros used: ALTLEN, CHANGEPER, CHECKB, CLOSETOP, COMBRKIN, COMERR, COOR1, COOR1Y, DCA, DFLOAD, DOWN, ENDCOM, ERROR, ERRTEST, FADDRESS, FNORM, FOUTMOVE, FREECORE, FSHCODE, FSHSKIP, GEOERR, GETACTX, GPERI, HLSXONCH, ILLEGALX, JFREZFCB, LGEOG, LINKSET, LOCKCA, MFREE, MHUNT, MONOUT, NAMETOP, OLPFINX, OPEN, OUTPACK, OUTPAR, PAIR, PERCON, PICKREP2, PMODES, PUTREP2, RELPERENT, REPALLER, ROLPA, SEG, SEGENTRY, SKIP, SPARANOT, TESTERR, TESTREP2, TESTREPNOT, TESTRPN2, TOPCA, TOPFCB, TRACE, UNPLUG, UP, VFREE

NETOFLNE867.txt
22FL          SEG    NETOFLNE,867,SECT.FILE,,G550   
22^=    #LIS K0NETOFLNE 
23DW    #OPT G550 = 0   
23YG    #SKI G550&1 
24D6    #  FOR G3UG MEND M550 (LINE PRINTER OUTPUT DIRECT TO MAGNETIC TAPE) 
24XQ          SEGENTRY K1NETOFLNE,Z1NETOFLNE[ZOFFLINE(ZF)   
25CB          SEGENTRY K2NETOFLNE,Z2NETOFLNE[PERI HANDLING  
25X2          SEGENTRY K3NETOFLNE,Z3NETOFLNE[RELEASE ENTRY  
26BL          SEGENTRY K4NETOFLNE,Z4NETOFLNE['ILLEGAL' ENTRY
26W=    [   
27*W    [   
27TG    [         THIS SEGMENT WRITTEN BY N.E.T.R.H.A.  
28*6    [   
28SQ    [         IT IMPLEMENTS THE ZOFFLINE COMMAND TO SPOOL   
29#B    [         PRINT DIRECTLY TO TAPE, AND THE OTHER LINKED  
29S2    [         FUNCTIONS.
2=?L    [   
2=R=    [         NOTE: IT WILL ONLY IMPLEMENT 2/#0 OR 2/#4 PERIS   
2?=W    [               THE 2/#2 AUTOWRITE WILL BE FLAGED AS ILLEGAL
2?QG    [   
2#=6    [   
2#PQ    XFIVE          +5   
2*9B    XLP            +2   
2*P2    XMASK          #77777771
2B8L    XMASK1         #60000000
2BN=    XMASK2         #60077777
2C7W    XMASK3         #17777777
2CMG    XMASK4         #04000000
2D76    XMASK5         #02000000
2DLQ    XHASH11        #11  
2F6B    XHASH51        #51  
2FL2    XWRITE         #40  
2G5L    XTRA           2,4096,2,4096,2,4096 
2GK=    MAX1           +162 
2H4W    MAX2           +513 
2HJG    ZJYMODE        +JYMODE  
2J46    ZJYCHAR        +JYCHAR  
2JHQ    ZJYCOUNT       +JYCOUNT 
2K3B    ZJYRESVIOL     +JYRESVIOL   
2KH2    ZJYOUTFULL     +JYOUTFULL   
2L2L    ZJYPERFAIL     +JYPERFAIL   
2LG=    PAIR2 PAIR     NETOFLNE,2   
2L^W    PAIR4 PAIR     NETOFLNE,4   
2MFG    #   
2M^6    #   
2NDQ    #         ZOFFLINE COMMAND  
2NYB    #   
2PD2    #   
2PXL    Z1NETOFLNE  
2QC=    #     DECODE COMMAND PARAMETERS 
2QWW          PERCON   1                   [DECODE PERIPHERAL NAME  
2RBG          TESTREPNOT OK,TERR           [J IF ERROR  
2RW6          MHUNT    3,CPAR,GPERCON      [LOOK FOR REPLY BLOCK
2S*Q          LDX   0  A1(3)
2STB          SRL   0  15   
2T*2          TXU   0  XLP(1)   
2TSL          BCC      P1                  [J IF LP 
2W#=          SPARANOT 1                   [PASS FIRST PARAMETER
2WRW          ERROR    JPNAL,JNOTLP        [OTHERWISE REPORT ERROR  
2X?G    TERR  ENDCOM                       [TERMINATE IF ERROR  
2XR6    #     RELEASE ANY PREVIOUS CHANNEL  
2Y=Q    P1    LDX   5  A1(3)               [TYPE/UNIT NO.   
2YQB          STO   5  AWORK4(2)
2^=2    #UNS  JWPHASE4  
2^PL    (   
329=          LDCT  6  #3   
32NW          ADX   6  5
338G          HLSXONCH XBRKIN,6,PHLSER  
33N6    )   
347Q          RELPERENT 5                  [RELEASE ANY PREVIOUS PERIPHERAL 
34MB    #     ENTRANT DESCRIPTION PARAMETER 
3572    P4    SPARANOT 2                   [UNPACK ENTRANT DESCRIPTION  
35LL          MHUNT    3,CPB,CUNI   
366=          LDX   0  ANUM(3)  
36KW          BPZ   0  P2                  [J UNLESS PARAMETER MISSING  
375G          COMERR   JPARMIS,JFENTRANT
37K6    #UNS  JWPHASE4  
384Q    (   
38JB    PHLSER  
3942          COMERR   ERHLSONL 
39HL    )   
3=3=    PNOTEMP 
3=GW          COMERR   ERTEMPDIR
3?2G    P2    NAMETOP  3,FILE,FNAME 
3?G6          FNORM 
3?^Q          PICKREP2 7
3#FB          MHUNT    3,FILE,FNAME 
3#^2          NAMETOP  3,CPB,CUNI   
3*DL          PUTREP2  7
3*Y=          NGN   7  1
3BCW          TESTREP2 NAMEFORM,TERR
3BXG          TESTRPN2 OK,TERR  
3CC6    P5    MFREE    CPB,CUNI 
3CWQ          MHUNT    3,FILE,FABSNB
3DBB          LDX   0  ATYPE(3) 
3DW2          ANDN  0  #200 
3F*L          BNZ   0  PNOTEMP  
3FT=          LDX   0  HDREC(3) 
3G#W          SBN   0  10   
3GSG          BNG   0  PE1  
3H#6          ADN   0  4
3HRQ          STO   0  HDREC(3)            [INSERT REDUCED LENGTH   
3J?B          LDX   0  ACES 
3JR2          SMO      HDREC(3) 
3K=L          STO   0  A1+5(3)  
3KQ=          NGN   0  #101 
3L9W          ANDS  0  ATYPE(3)            [REMOVE LANG CODE BIT
3LPG          FSHCODE  B,XFSHBOPEN  
3M96    ([  
3MNQ          OPEN     PG4,GENERAL,QUERY   [OPEN DIRECTORY  
3N8B    XFSHBOPEN   
3NN2    )[  
3P7L          FSHSKIP  B,XFSHNBOPEN 
3PM=    ([  
3Q6W          OPEN     PG4,READ,QUERY   
3QLG    XFSHNBOPEN  
3R66    )[  
3RKQ          TESTREP2 OK,P6
3S5B          TESTERR  NAME,TERR
3SK2          TESTREP2 NOFILE,PE4   
3T4L          TESTREP2 VRYWRONG,PE4 
3TJ=          TESTREP2 NOUSER,PE4   
3W3W          GEOERR   1,REPLY  
3WHG    P6  
3X36          MHUNT    2,FILE,FABSNB       [THE FABSNB NEEDS TO BE SET  
3XGQ          LDN   0  6                   [TO CONTAIN :USER.LOCALNAME  ONLY
3Y2B          ADS   0  A1(2)               [THIS IS FOR LATER USE WHEN  
3YG2          LDX   0  A1(2)               [UPDATING BUDGETS
3Y^L          SBN   0  10   
3^F=          BZE   0  P02  
3^YW          LDX   3  2
42DG          TOPFCB   1
42Y6          ADN   1  FME1 
43CQ          ADN   2  A1+1 
43XB          MOVE  1  3
44C2          SMO      A1(3)
44WL          LDN   1  A1-6(3)  
45B=          LDN   2  A1+4(3)  
45TW          LDX   5  ALOGLEN(3)   
46*G          SBX   5  A1(3)
46T6          ADN   5  6
47#Q          SMO      5
47SB          MOVE  1  0                   [MOVE LOCAL NAME UP FABSNB   
48#2          ADN   5  4
48RL          LDN   1  10   
49?=          STO   1  A1(3)
49QW          ALTLEN   3,5,FILE,FABSNB  
4==G    P02 
4=Q6    #UNS  FTS1  
4?9Q    (   
4?PB          TOPFCB   3                   [X3 POINTS TO DIRS FILE-FCB  
4#92          JFREZFCB 3,PERR2             [TEST FOR FROZEN DIR & FREEZE PRIVILE
4#NL    )   
4*8=          OWNERCHECK                   [CHECK OUT OWNERSHIP OF TAPE 
4*MW          PICKREP2 3
4B7G          CLOSETOP                     [CLOSE DIRECTORY 
4BM6          PUTREP2  3
4C6Q    #UNS  FTS1  
4CLB    (   
4D62          TESTREP2 OK,P7               [OWNERSHIP OK?   
4DKL          REPALLER  
4F5=          BRN      TERR 
4FJW    )   
4G4G    P7    MHUNT    3,FILE,FABSNB
4GJ6    #UNS  FTS1  
4H3Q          VFREE    FILE,ADJUNCTS
4HHB          LDN   0  1
4J32          ORS   0  ATYPE(3)            [NON-FILESTORE ENTRANT REQUIRED  
4JGL          STOZ     ACOMMUNE1(2) 
4K2=          TRACE    2,GETONZF
4KFW          DOWN     GET,3               [GO DOWN TO GET A TAPE   
4K^G          BRN      XBRKIN   
4LF6          TESTREPNOT OK,PE             [J IF FAILED TO GET A TAPE   
4LYQ          OUTPAR   TIMENOW  
4MDB          LGEOG    ,3   
4MY2    P8    OUTPACK  3,1,GEOPER,P8
4NCL    P9    LDX   5  AWORK4(2)
4NX=          OUTPACK  5,1,PERINAME,P9  
4PBW          DFLOAD   ,TSN,3   
4PWG    P10   OUTPACK  3,1,TSN,P10  
4QB6    P11   MHUNT    3,FILE,FABSNB
4QTQ          ADX   3  HDREC(3) 
4R*B          OUTPACK  A1-6(3),3,LOCNAME,P11
4RT2    P12   MHUNT    3,FILE,FABSNB
4S#L          ADX   3  HDREC(3) 
4SS=          OUTPACK  A1-2(3),1,GENNUM,P12 
4T?W    P13   MHUNT    3,FILE,FABSNB
4TRG          ADX   3  HDREC(3) 
4W?6          OUTPACK  A1-3(3),1,REELNUM,P13
4WQQ          OUTPAR   SKIP 
4X=B          MONOUT   JPER 
4XQ2          MHUNT    3,FILE,FABSNB
4Y9L          FREECORE 3
4YP=          LDN   3  AOLPTLEN+AZFLEN  
4^8W          LDCT  5  AOLPT/8             [AOLPT TYPE  
4^NG          GETACTX  5,3,1
5286          LDX   3  BPTR(2)  
52MQ          LDX   0  JOBNO(2) 
537B          STO   0  JOBNO(3) 
53M2          LDCT  0  #400 
546L          STO   0  FRECHADD(3)  
54L=          ORS   0  GIVE(3)             [SET BIT FOR ADLOT   
555W          LDX   0  AWORK4(2)
55KG          STO   0  FTYPNO(3)
5656          STOZ     AWORK1(3)
56JQ          STOZ     AWORK2(3)
574B          STOZ     AWORK3(3)
57J2          STOZ     AWORK4(3)
583L          LDX   1  FX1  
58H=          LINKSET  3,PAIR2(1)   
592W          CHANGEPER 3                  [TRANSFER TAPE TO AOLPT  
59GG          LDX   5  AWORK4(2)
5=26          PUTPEREN 5,GSIGN             [INSERT PERIPH. ENTRY
5=FQ          ROLPA                        [CHAIN AOLPT IN PCA CHAIN
5=^B          ENDCOM
5?F2    #   
5?YL    #         EXECPTION CONDITIONS FOR ZOFFLINE(ZF) 
5#D=    #   
5#XW    PE    TESTREP2 NOLOCN,PE1   
5*CG          TESTREP2 TSN,PE2  
5*X6          TESTREP2 NOTAV,PE3
5BBQ          TESTRPN2 ODRAWN,PQ1   
5BWB          ERROR    BUDGODR,BUDGSPA  
5CB2          BRN      TERR 
5CTL    PQ1   TESTRPN2 INCREASE,PQ2 
5D*=          ERROR    BUDGINC,BUDGSPA  
5DSW          BRN      TERR 
5F#G    PQ2   TESTREP2 ALREADY,TERR 
5FS6          TESTREP2 NAME,TERR
5G?Q          TESTREP2 WRGEN,TERR   
5GRB          TESTREP2 VRYWRONG,TERR
5H?2          TESTREP2 TEMP,TERR
5HQL          TESTREP2 NODECKS,PE5  
5J==          GEOERR   1,GETREP 
5JPW    PE1   COMERR   AMTDESC,JLOCN       [SERIAL NUMBER GIVEN 
5K9G    PE2   COMERR   AMTDESC,JNTSN       [LOCAL NAME NOT GIVEN
5KP6    PE3   COMERR   JNPT                [POOL TAPE NOT AVAILABLE 
5L8Q    PE4   COMERR   ERNAME   
5LNB    PE5   COMERR   ERNODECKS
5M82    PERR  TESTRPN2 ILLCOMB,PERR1
5MML          COMERR   ERILLCOMB
5N7=    PERR1 COMERR   ERILLMODE
5NLW    #UNS  FTS1  
5P6G    (   
5PL6    PERR2 CLOSETOP  
5Q5Q          ERRTEST  3,TERR,FROZEN,NOFPRIV [ERROR MESS FOR FROZEN & NO-F-PR   
5QKB          GEOERR   1,GLFRREP           [ELSE GEORGE ERROR   
5R52    )   
5RJL    #     BREAKIN EXITS 
5S4=    XBRKIN COMBRKIN 
5SHW    #     GEORGE ERRORS 
5T3G    PG4   GEOERR   BRIEFPM,BREAKIN  
5TH6    #   
5W2Q    #   
5WGB    #         PERI HANDLING ROUTINE 
5X22    #   
5XFL    #   
5X^=    Z2NETOFLNE  
5YDW          LDX   0  AWORK1(2)
5YYG          BNG   0  Z2FAIL              [J IF TAPE HAS FAILED
5^D6          BNZ   0  Z2RENTRY            [J IF NOT FIRST ENTRY
5^XQ          LDX   0  AWORK2(2)
62CB          BNZ   0  Z2RENTRY            [J IF NOT FIRST ENTRY
62X2          NGN   0  62   
63BL          LDN   5  512  
63W=          CALL  6  Z2WRITES            [WRITE START OF DATA SENTINEL
64*W          BNZ   4  Z2FAIL              [J IF WRITE ERROR
64TG    Z2RENTRY
65*6          LDX   7  APETADDR(2)  
65SQ          LDX   3  7
66#B          LOCKCA   3,EVENT2(2)         [CHECK CONTROL AREA  
66S2          LDX   4  EVENT2(2)
67?L          LDN   5  ACA1(2)  
67R=          LDN   6  4
68=W          FOUTMOVE 3,4,5,6,HLOCK1      [MOVE OUT CONTROL AREA   
68QG          LDEX  0  ACA1(2)             [TEST MODE   
69=6          BZE   0  Z2CAD               [OK IF #0
69PQ          ANDX  0  XMASK(1) 
6=9B          BNZ   0  Z2MILL   
6=P2          LDEX  0  ACA1(2)  
6?8L          ANDN  0  #6   
6?N=          ERN   0  #6   
6#7W          BZE   0  Z2MILL   
6#MG          SRL   0  2
6*76          BNZ   0  Z2MILL              [ILLEGAL IF MODE #2  
6*LQ    Z2CAD LDCT  5  #600 
6B6B          ANDX  5  ACA4(2)             [TEST ADDRESS
6BL2          ERX   5  XMASK1(1)
6C5L          BNZ   5  Z2CADILL            [ILLEGAL IF NOT CHAR 3   
6CK=    Z2CADOK 
6D4W          LDX   6  ACA3(2)             [TEST COUNT  
6DJG          BZE   6  Z2CILL   
6F46          TXL   6  MAX1(1)  
6FHQ          BCC      Z2CILL              [ILLEGAL IF > 2000   
6G3B          ADN   6  6
6GH2          SRL   6  2                   [CONVERT COUNT TO WORDS  
6H2L          LDX   5  ACA4(2)  
6HG=          PMODES   3,7                 [CHECK ADDRESS MODE  
6H^W          ANDN  3  #10  
6JFG          BNZ   3  Z2A                 [J IF 22AM   
6J^6          ANDX  5  XMASK2(1)
6KDQ    Z2A   LDN   4  CHREAD              [SET MODE = READ 
6KYB          STO   5  ACA4(2)             [SAVE ADDRESS
6LD2          CHECKB   5,6,Z2RESV,7,4,Z2RESOK [CHECK RESERVATIONS   
6LXL    #   
6MC=    #   
6MWW    #         PERI VALID - NOW PROCESS IT   
6NBG    #   
6NW6    #   
6P*Q    Z2RESOK 
6PTB          LDX   2  7
6Q*2          SMO      FX2  
6QSL          LDX   3  ACA4                [PROGRAM BUFFER ADDRESS  
6R#=          FADDRESS 2,3,HLOCK1          [ADD DATUM   
6RRW          LDX   2  FX2  
6S?G          LDCH  5  0(3)                [LOAD PFCC   
6SR6          TXL   5  XWRITE(1)
6T=Q          BCC      Z2RESOKP            [J IF 'PRINT' MODE   
6TQB          LDN   6  1                   [SET LENGTH = 1  
6W=2    Z2RESOKP
6WPL          ADN   6  1
6X9=          ADX   6  AWORK1(2)           [ADD BUFFER SIZE SO FAR  
6XNW          TXL   6  MAX2(1)  
6Y8G          BCC      Z2BUFFUL            [J IF BUFFER FULL
6YN6          SBX   6  AWORK1(2)           [RESTORE RECORD SIZE 
6^7Q          BRN      Z2BUFFOK            [AND J TO ADD RECORD TO BUFFER   
6^MB    #   
7272    #   
72LL    #         BUFFER FULL - WRITE IT TO TAPE
736=    #   
73KW    #   
745G    Z2BUFFUL
74K6          LDX   5  AWORK1(2)
754Q          STOZ     AWORK1(2)           [MARK BUFFER EMPTY   
75JB          LDN   0  1
7642          ADS   0  AWORK2(2)           [UPDATE MT BLOCK COUNT   
76HL          CALL  6  Z2WRITE             [WRITE THE BLOCK TO TAPE 
773=          BNZ   4  Z2FAIL              [J IF WRITE ERROR
77GW          LDX   6  ACA3(2)  
782G          ADN   6  10   
78G6          SRL   6  2                   [RESET RECORD LENGTH 
78^Q          LDX   4  CPRW1(2) 
79FB          ANDX  4  XMASK5(1)
79^2          BZE   4  Z2BUFFOK            [J IF NOT END OF TAPE
7=DL          LDX   4  AWORK4(2)
7=Y=          BZE   4  Z2EOR               [J IF EOT JUST REACHED   
7?CW          BNG   4  Z2EOT               [J IF OK TO WRITE EOR
7?XG          ANDX  4  XMASK3(1)
7#C6          SBN   4  1                   [DECREMENT END COUNT 
7#WQ          BZE   4  Z2EOT               [J IF COUNT EXHAUSTED
7*BB          BNG   4  Z2EOT               [J IF COUNT EXHAUSTED
7*W2          DSA   4  AWORK4(2)
7B*L          BRN      Z2BUFFOK            [J TO PROCESS PERI   
7BT=    Z2EOR LDCT  4  #200 
7C#W          ADN   4  10                  [SET COUNT OF 10 MORE BLOCKS 
7CSG          STO   4  AWORK4(2)           [SO THAT WE MAY WAIT FOR A HOF   
7D#6          BRN      Z2BUFFOK            [J TO PROCESS PERI   
7DRQ    #   
7F?B    #   
7FR2    #         WRITE EOR TO FULL REEL
7G=L    #         AND THEN FAIL OUTPUT *LPN FILE FULL   
7GQ=    #   
7H9W    #   
7HPG    Z2EOT LDCT  0  #600 
7J96          LDX   5  AWORK2(2)
7JNQ          CALL  6  Z2WRITES            [WRITE EOR LABEL 
7K8B          BNZ   4  Z2FAIL              [J IF TAPE FAIL  
7KN2          LDCT  0  #400 
7L7L          STO   0  AWORK1(2)
7LM=          LDCT  5  #50  
7M6W          LDX   0  ACA1(2)  
7MLG          SRL   0  3
7N66          ANDN  0  #7777
7NKQ          SBN   0  #3000
7P5B          BZE   0  Z2REP
7PK2          LDX   5  ZJYOUTFULL(1)       [OUTPUT FILE FULL
7Q4L          BRN      Z2ILL
7QJ=    #   
7R3W    #   
7RHG    #         ADD RECORD TO BUFFER  
7S36    #   
7SGQ    #   
7T2B    Z2BUFFOK
7TG2          LDX   2  7
7T^L          SMO      FX2  
7WF=          LDX   3  ACA4                [PROGRAM BUFFER ADDRESS  
7WYW          FADDRESS 2,3,HLOCK1          [ADD DATUM   
7XDG          LDCH  4  0(3)                [LOAD PFCC   
7XY6          LDX   2  FX2  
7YCQ          TXU   4  XHASH51(1)   
7YXB          BCC      Z2THROW             [J IF WRITE AFTER HOF
7^C2          TXU   4  XHASH11(1)   
7^WL          BCS      Z2NOTHROW           [J IF NOT THROW TO HOF   
82B=    Z2THROW 
82TW          LDX   4  AWORK4(2)
83*G          BZE   4  Z2NOEOT             [J IF EOT NOT REACHED
83T6          LDCT  4  #400 
84#Q          STO   4  AWORK4(2)           [MARK OK TO CLOSE TAPE   
84SB    Z2NOEOT 
85#2          LDX   3  AWORK1(2)
85RL          BNZ   3  Z2BUFFUL            [J IF DATA IN BUFFER 
86?=          BNG   4  Z2EOT               [J TO CLOSE TAPE 
86QW    Z2NOTHROW   
87=G          LDX   2  7
87Q6          SMO      FX2  
889Q          LDX   3  ACA4                [PROGRAM BUFFER ADDRESS  
88PB          FADDRESS 2,3,HLOCK1          [ADD DATUM   
8992          LDX   2  FX2  
89NL          LDCH  5  0(3)                [LOAD PFCC   
8=8=          TXL   5  XWRITE(1)
8=MW          BCC      Z2PRINT             [J IF 'PRINT' MODE   
8?7G          LDX   3  AWORK1(2)
8?M6          ADX   3  FX2  
8#6Q          LDN   6  2
8#LB          STO   6  ACA5(3)             [WORD COUNT = 2  
8*62          ADS   6  AWORK1(2)
8*KL          SLL   5  18   
8B5=          LDEX  4  ACA1(2)  
8BJW          SRL   45 6                   [ADD MODE INTO WORD  
8C4G          LDN   4  1                   [NO. CHARS = 1   
8CJ6          BRN      Z2ENDPERI
8D3Q    Z2PRINT 
8DHB          LDX   3  AWORK1(2)
8F32          ADX   3  FX2  
8FGL          STO   6  ACA5(3)             [WORD COUNT  
8G2=          ADS   6  AWORK1(2)
8GFW          SBN   6  1                   [RESET TO LENGTH OF DATA 
8G^G          LDX   4  ACA4(2)  
8HF6          ANDX  4  XMASK3(1)
8HYQ          LDN   5  ACA6(3)  
8JDB          FOUTMOVE 7,4,5,6,HLOCK1      [MOVE DATA INTO BUFFER   
8JY2          LDX   5  ACA6(3)             [LOAD PFCC   
8KCL          SLL   5  18   
8KX=          LDEX  4  ACA1(2)  
8LBW          SRL   45 6                   [ADD MODE INTO WORD  
8LWG          LDX   4  ACA3(2)  
8MB6    Z2ENDPERI   
8MTQ          SRL   45 12                  [ADD CHAR. COUNT INTO WORD   
8N*B          STO   5  ACA6(3)             [STORE LENGTH/MODE/PFCC IN RECORD
8NT2          LDN   5  0
8P#L    Z2REP LINKSET  FX2,PAIR2(1)        [SET LINK FOR NEXT ENTRY 
8PS=          LDX   2  7
8Q?W          SMO      FX2  
8QRG          LDX   3  EVENT2              [ADDRESS OF CONTROL AREA 
8R?6          ADN   3  1
8RQQ          FADDRESS 2,3,HLOCK1   
8S=B          STO   5  0(3)                [SET 'OK' REPLY TO OBJECT PROGRAM
8SQ2          OLPFINX  7                   [SIGNAL PERI FINISHED
8T9L          BRN      Z2NETOFLNE          [J FOR NEXT TRANSFER 
8TP=    #   
8W8W    #   
8WNG    #         VARIOUS ILLEGAL CONDITIONS COME HERE  
8X86    #   
8XMQ    #   
8Y7B    Z2FAIL  
8YM2          LDCT  5  #50  
8^6L          LDX   0  ACA1(2)  
8^L=          SRL   0  3
925W          ANDN  0  #7777
92KG          SBN   0  #3000
9356          BZE   0  Z2REP
93JQ          LDCT  5  #400 
944B          STO   5  AWORK1(2)
94J2          LDX   5  ZJYPERFAIL(1)       [ONLINE PERI FAIL
953L          BRN      Z2ILL
95H=    Z2MILL  
962W          LDX   5  ZJYMODE(1)          [MODE IN ERROR   
96GG          BRN      Z2ILL
9726    Z2CADILL
97FQ          LDX   5  ZJYCHAR(1)          [ILLEGAL CHAR. ADDR. 
97^B          BRN      Z2ILL
98F2    Z2CILL  
98YL          LDX   5  ZJYCOUNT(1)         [COUNT OUT OF RANGE  
99D=          BRN      Z2ILL
99XW    Z2RESV  
9=CG          LDX   5  ZJYRESVIOL(1)       [RESERVATION VIOLATION   
9=X6    Z2ILL LDX   4  FTYPNO(2)           [TYPE/UNIT   
9?BQ          TOPCA    PAIR4(1) 
9?WB          COOR1Y
9#B2          BRN      Z2NETOFLNE          [J FOR NEXT TRANSFER 
9#TL    #   
9**=    #   
9*SW    #         TAPE WRITE SUBROUTINE 
9B#G    #   
9BS6    #   
9C?Q    Z2WRITES                           [WRITE SENTINEL ENTRY
9CRB          SBX   6  FX1  
9D?2          STO   0  ACA5(2)             [SENTINEL TYPE   
9DQL          STO   5  ACA6(2)             [SUBSIDIARY INFORMATION  
9F==          STOZ     ACA7(2)  
9FPW          LDN   4  ACA7(2)  
9G9G          LDN   5  ACA8(2)  
9GP6          MOVE  4  17                  [SET REMAINDER TO ZERO   
9H8Q          LDX   3  CPPTR(2) 
9HNB          LDN   5  5
9J82          DCA      3,STO,5,MODE 
9JML          GPERI    ,2                  [WRITE A TAPE MARK   
9K7=          COOR1                        [WAIT FOR TRANSFER TO FINISH 
9KLW          LDN   5  20                  [QUALIFIER BLOCK 20 WORDS LONG   
9L6G          BRN      Z2WRS
9LL6    Z2WRITE                            [WRITE BLOCK ENTRY   
9M5Q          SBX   6  FX1  
9MKB          TXL   5  XFIVE(1) 
9N52          BCC      Z2WRITEOK           [J IF BLOCK >= 5 WORDS   
9NJL          LDN   4  ACA5(2)  
9P4=          ADX   4  5
9PHW          LDN   3  XTRA(1)  
9Q3G          MOVE  3  6                   [ADD 3 NULL 2 WORD RECORDS   
9QH6          ADN   5  6                   [INCREMENT BLOCK LENGTH  
9R2Q    Z2WRITEOK   
9RGB          LDX   3  CPPTR(2) 
9S22    Z2WRS DCA      3,STO,5,COUNT
9SFL          LDN   5  1
9S^=          DCA      3,STO,5,MODE 
9TDW          LDN   5  ACA5(2)  
9TYG          DCA      3,STO,5,CTSA 
9WD6          GPERI    ,2                  [WRITE THE BLOCK 
9WXQ          COOR1                        [WAIT FOR TRANSFER   
9XCB          LDX   4  CPRW1(2)            [LOAD REPLY  
9XX2          ANDX  4  XMASK4(1)           [MASK ERROR BIT  
9YBL          ADX   6  FX1  
9YW=          EXIT  6  0
9^*W    #   
9^TG    #   
=2*6    #         RELEASE ENTRY 
=2SQ    #   
=3#B    #   
=3S2    Z3NETOFLNE  
=4?L    #     *MT FAILS IN CLOSING ARE NOTED IN ACOMMUNE1 FOR OFFREL.   
=4R=          STOZ     ACOMMUNE1(2) 
=5=W          LDX   5  AWORK1(2)
=5QG          BNG   5  Z3NOWRITE           [J IF TAPE HAS FAILED
=6=6          BZE   5  Z3BUFFEMPTY         [J IF NO DATA IN BUFFER  
=6PQ          LDN   0  1
=79B          ADS   0  AWORK2(2)           [UPDATE MT BLOCK COUNT   
=7P2          CALL  6  Z2WRITE             [WRITE THE REMAINING BLOCK   
=88L          STO   4  ACOMMUNE1(2) 
=8N=          BNZ   4  Z3NOWRITE
=97W    #   
=9MG    #   
==76    #         WRITE TRAILER LABEL AND RELEASE TAPE  
==LQ    #   
=?6B    #   
=?L2    Z3BUFFEMPTY 
=#5L          LDCT  0  #400 
=#K=          LDX   5  AWORK2(2)           [BLOCK COUNT 
=*4W          CALL  6  Z2WRITES            [WRITE EOF SENTINEL  
=*JG          STO   4  ACOMMUNE1(2) 
=B46    Z3NOWRITE   
=BHQ    #     OFFREL WILL REWIND THE TAPE AUTONOMOUSLY AND FREE IT. 
=C3B          UP                           [RETURN TO OFFREL
=CH2    #   
=D2L    #   
=DG=    #         'ILLEGAL' ENTRY   
=D^W    #   
=FFG    #   
=F^6    Z4NETOFLNE  
=GDQ          UNPLUG                       [UNPLUG THE PROGRAM FROM EXECUTIVE   
=GYB          OUTPACK  4,1,PERINAME 
=HD2          ILLEGALX 5                   [SEND THE PROGRAM 'ILLEGAL'  
=HXL    #END
=JC=
^^^^ ...455552450001