IPBOUT867

(George Source)

Macros used: CCERROR, CHAIN, COOR1, COOR3, DCA, DERINGD, DOWN, FINDACTFB, FINDRET, FPUT, FREECORE, GEOERR, GPERI, HUNT2J, HUNTACT, HUNTW, INFORMX, JBUSY, JV7900, LGEOG, LOCKC, LONGON1, MENDAREA, MHUNTW, NAME, OUTLEN, OUTNUM, SEGENTRY, SETNCORE, SETUPCORE, SUICIDE, TRACEX, UNLOCK, UNQUEUE, UP

IPBOUT867.txt
22FL    #SEG  IPBOUT8                      [R.WEYAND
22PD ...[  (C)  COPYRIGHT INTERNATIONAL COMPUTERS LTD. 1982 
22^=    #LIST          K0IPBOUT>K0IPB>K0ALLGEO>K0GREATGEO   
23DW                   8HIPBOUT 
23YG    #   
24D6          SEGENTRY K1IPBOUT,SK1IPBOUT   
24XQ    #     ISSUES ALL THE WRITE ORDERS TO THE IPB ; AMOP/IPBOUT ACTIVITY 
25CB          SEGENTRY K4IPBOUT,SK4IPBOUT   
25X2    #     SEND SUPERVISORY SEGMENT TO AM6P/IPBOUT ; USUALLY CPAT ACTIVITY   
26BL          SEGENTRY K5IPBOUT,SK5IPBOUT   
26W=    #     SEND TIME+DATE TO IPB CONSOLES ; ACTCDT ACTIVITY  
26YD    #   
26YQ    #     SUBROUTINE TO SEARCH FOR AND SEND ANY CRASH CLOSE SUPERVISORY 
26^4    #     SEGMENTS IN THE OUTPUT Q. BEFORE THE SEG IS SENT ALL PRECEDING
26^B    #     SEGMENTS WITH THE SAME IDENTIFIER NO. ARE DISCARDED.  
26^N    #   
2722    OCRASHCLOSE 
272#          STOZ     4                   [INDICATE SEARCH FOR CRASH CLOSE SEG 
272L    OCRAS BCHX  3  £                   [PICK UP POSSIBLE SUPERVISORY CODE   
272Y          LDCH  0  IPBIDE(3)
273=          ANDX  3  BITS22LS 
273J          SBN   0  23   
273W          BZE   0  OGOOD               [CRASH CLOSE SEGMENT 
2748    OLOOKA                             [LOOK AT NEXT IOUT BLOCK 
274G          HUNT2J   3,AMXOR,IOUT,,(7)
274S          BZE   4  OCRAS               [STILL LOOKING FOR CRASH CLOSE SEG   
2756          TXU   3  GEN0 
275D          BCC      TSEND               [END OF SEARCH : SEND CRASH CLOSE SEG
275Q          LDX   0  IPBIDE(3)
2764          ANDN  0  #7777
276B          SBX   0  4
276N          BNZ   0  OLOOKA              [NOT MATCHING IDEN NO:CONTINUE SEARCH
2772          LDX   0  FPTR(3)             [PICK UP NEXT IOUT PTR AND PRESERVE  
277#          STO   0  GEN2                [IT  
277L          FREECORE 3                   [DISCARD THIS IOUT BLOCK 
277Y          SMO      GEN2                [CAUSE SEARCH TO FIND NEXT IOUT  
278=          LDX   3  BPTR 
278J          BRN      OLOOKA   
278W    OGOOD STO   3  GEN0                [PRESERVE PTR TO CRASH CLOSE IOUT BLK
2798          LDX   4  IPBIDE(3)
279G          ANDN  4  #7777               [SET X4 +VE WITH IDENTIFIER NUMBER   
279S          LDX   3  FX2                 [NOW SEARCH FOR AND DISCARD  
27=6          BRN      OLOOKA              [RELEVANT PRECEDING IOUT BLOCKS  
27=D    #   
27=Q    #     SUBROUTINE TO CHECK FOR RESET/REOPEN SEGMENTS(BATCHED). IF TRUE,  
27?4    #     JUMPS TO "TWAL" TO KICK IPBIN, ELSE EXITS.
27?B    #   
27?N    TREOP BCHX  3  £
27#2          LDCH  0  IPBIDE(3)           [SUPERVISORY CODE
27##          ANDX  3  BITS22LS 
27#L          SBN   0  11   
27#Y          BNZ   0  (7)                 [NOT RESET SEGMENT : EXIT
27*=          FREECORE 3                   [FINISHED WITH "REOPEN" SUPER BLOCK  
27*J          BRN      TWAL    [WAIT FOR IPBIN TO WAKE IPBOUT WHEN READ FINISHES
27*W    #   
27TG    #     SUBROUTINE TO CHECK FOR CLOSE DOWN SEGMENT ; CALL ON X7   
28*6    #   
28SQ    TCLOS BCHX  3  £
29#B          LDCH  0  IPBIDE(3)           [SUPERVISORY CODE
29S2          SBN   0  9
2=?L          BNZ   0  TEX                 [NOT CLOSE DOWN  
2=R=          LDX   3  IPBRING(2)   
2?=W          LDCT  0  #40  
2?QG          SBN   3  IPBRING  
2#=6          ORS   0  IPBSW(3)            [INHIBIT READS   
2#FY          LONGON1  CCREOPEN            [KICK IPBIN IF WAITING IN "CCREOPEN" 
2#PQ          LDCT  0  #100 
2*9B          ANDX  0  IPBSW(3)            [NO READ IN PROGRESS IF IPBIN ASLEEP 
2*P2          BZE   0  (7)  
2B8L          ERS   0  IPBSW(3) 
2BN=          LDX   2  3
2C7W          FPUT                         [WAKE IPBIN IF ASLEEP
2CMG          BRN      TSUI                [SUICIDE 
2D76    TEX   ANDX  3  BITS22LS 
2DLQ          EXIT  7  1
2F6B    #   
2FL2    #     SUBROUTINES FOR USE BY LOCKC MACROS TO REFIND BLOCKS BEING LOCKED 
2G5L    #   
2GK=    TFI   MHUNTW   2,AMXOR,IOUT 
2H4W          EXIT  1  0
2HJG    TIF   LDX   2  FX2  
2J46          EXIT  1  0
2JHQ    #   
2K3B    #     SUBROUTINE TO TEST WHETHER IPB IS MOPPED OFF OR INOPERABLE
2KH2    #   
2L2L    TOFF  LDN   0  IPBRING(3)   
2LG=          TXU   0  IPBRING(3)   
2L^W          BCC      TEXT                [EQUAL : MOPPED OFF  
2MFG          LDCT  0  #420 
2M^6          ANDX  0  IPBSW(3) 
2NDQ          BNG   0  TNOP                [B0 SET : INOPERABLE 
2NYB          BNZ   0  TEXT                [B4 SET : MOPPING OFF
2PD2          EXIT  7  0
2PXL    #   
2QC=    #     SUBROUTINE TO CHAIN IOUT BEHIND IPBOUT ACTIVITY AND FPUT IF NEEDED
2QWW    #   
2RBG    TWA   LDX   2  IPBRING(3)          [AMOP/IPBIN ADDRESS IN X3
2RW6          SBN   2  IPBRING  
2S*Q          LDX   2  ACTRING(2)   
2STB          SBN   2  ACTRING  
2T*2          CHAIN    1,BPTR(2)           [AMXOR/IOUT ADDRESS IN X1
2TSL          LDX   2  IPBRING(3)   
2W#=          SBN   2  IPBRING  
2WRW          LDCT  0  #100 
2X?G          ANDX  0  IPBSW(2) 
2XR6          BZE   0  (7)                 [IPBOUT ALREADY AWAKE
2Y=Q          ERS   0  IPBSW(2) 
2YQB          FPUT  
2^=2          EXIT  7  0
2^=G ...#UNS CCERROR
2^?2 ...(   
2^?G ...[   
2^#2 ...XOUT        4HOU00  
2^#G ...[   
2^*2 ...
2^*G ...[   
2^B2 ...XSUBJOURN   
2^BG ...      SBX   7  FX1  
2^BM ...XSUBJ   
2^BS ...      LDX   2  IPBRING(2)   
2^C6 ...      SBN   2  IPBRING  
2^CD ...      HUNT2J   2,AMXOR,AJOURN,,XJRN6
2^CQ ...      LDX   0  IBSW(3)  
2^D4 ...      BNG   0  XJRN1
2^DB ...      LDN   6  3
2^DN ...      BRN      XJRN2
2^F2 ...XJRN1   
2^F# ...      LDX   6  ALOGLEN(3)   
2^FL ...      SBN   6  IPBIDE-A1-1  
2^FY ...XJRN2   
2^G= ...      LDN   0  488  
2^GJ ...      SBX   0  IPBCOUNT(2)  
2^GW ...      SBX   0  6
2^H8 ...      BNG   0  XJRN3
2^HG ...      LDN   5  IPBDATA(2)   
2^HS ...      ADX   5  IPBCOUNT(2)  
2^J6 ...      LDN   4  IBSW(3)  
2^JD ...      SMO      6
2^JQ ...      MOVE  4  0
2^K4 ...      LDX   0  XOUT(1)  
2^KB ...      SMO      5
2^KN ...      STO   0  0
2^L2 ...      ADS   6  IPBCOUNT(2)  
2^L# ...XJRNE   
2^LL ...      LDX   2  FX2  
2^MG ...      ADX   7  FX1  
2^N2 ...      EXIT  7  0
2^N3 ...#   
2^N4 ...XJRN3   
2^N5 ...      LDX   0  IPBCOUNT(2)  
2^N6 ...      BZE   0  XJRNE
2^N7 ...      LDX   0  IPBJRN   
2^N8 ...      BNZ   0  XJRN4
2^N9 ...      STOZ     IPBCOUNT(2)  
2^N= ...      BRN      XJRN2
2^N? ...#   
2^N# ...XJRN4   
2^N* ...      NAME     2,AMXOR,AMISC
2^NB ...      FINDACTFB 1,FX2,AMOP,AJOURN,,BPTR 
2^NC ...      LDX   4  1
2^ND ...      CHAIN    2,4  
2^NF ...      LDX   2  4
2^NG ...      LDX   0  IPBSW(2) 
2^NH ...      BNG   0  XJRN5
2^NJ ...      LDX   0  GSIGN
2^NK ...      STO   0  IPBSW(2) 
2^NL ...      FPUT  
2^NM ...XJRN5   
2^NN ...      SETNCORE 499,4,AMXOR,AJOURN   
2^NP ...      LDX   2  IPBRING(2)   
2^NQ ...      SBN   2  IPBRING  
2^NR ...      CHAIN    4,2  
2^NS ...      LDX   2  4
2^NT ...      SMO      FX2  
2^NW ...      LDX   0  CPPTR
2^NX ...      STO   0  IPBDATA+497(2)   
2^NY ...      STOZ     IPBCOUNT(2)  
2^N^ ...      BRN      XJRN2
2^P2 ...#   
2^P3 ...XJRN6   
2^P4 ...      COOR3    #62  
2^P5 ...      BRN      XSUBJ
2^P6 ...#   
2^P7 ...)   
2^PL    #   
329=    #   
32=M    VIRTUAL7900 
32?6    #     THIS IS A MESSAGE BUFFERING COMMUNICATIONS SUBSYSTEM  
32?K    #     OUTPUT ACTIVITY FOR A VIRTUAL 7900 .  
32#4    #     IF THE VIRTUAL 7900 DOES NOT HAVE A WMC READ TRANSFER STORED  
32#H    #     THEN GO TO SLEEP  
32*2    #     IF THE VIRTUAL 7900 DOES HAVE A WMC READ TRANSFER STORED  
32*F    #     THEN  
32*Y    #     1. LOCK THE OUTPUT BLOCK AND REENTER THE MAIN PATH
32BC    #     2. SKIP CODE WHICH ACCESSES THE DEVICE LIST (SKIP IS X7 -VE)  
32BW    #        NOTE THE REPLY WORD (CPRW1) IS PRESET TO TRANSFER SUCCESSFUL   
32C*    #     3. AT LABEL TWAK INSTEAD OF COOR1 GO DOWN TO K5VIPBPERI TO PERFORM
32CS    #        THE TRANSFER OF THE "IPB BLOCK" TO THE PROGRAM 
32D?    #        IF THE RETURN IS UP, IE WMC READS WERE NO LONGER STORED ,  
32DQ    #        RECHECK FOR EXCEPTION FLAGS AND STORED READS BEFORE SLEEPING   
32F9    #        IF THE RETURN IS UP +1, IE WMC READ TRANSFER PERFORMED ,   
32FN    #        CONTINUE ON THE MAIN PATH ("END OF TRANSFER" CODE,INC MOPTRACE)
32G7          SMO      CPPTR(2)            [-> VIRTUAL 7900 DEVICE LIST 
32GL          LDX   0  AVCREADS 
32H5          BZE   0  TNOUT               [NO WMC READ TRANSFER STORED: SLEEP  
32HJ          LOCKC    3,TFI               [LOCK THE IOUT BLOCK 
32J3          MHUNTW   3,AMXOR,IOUT        [MAY HAVE MOVED  
32JG          BRN      TESTIMOPTY          [REENTER THE MAIN PATH   
32J^    V7900PERI   
32KD          DOWN     VIPBPERI,5   
32KX          BRN      SK1IPBOUT           [WMC READS WERE NO LONGER STORED 
32LB                                       [RECHECK FOR FLAGS AND STORED READS  
32LT          BRN      TREPL               [WMC READ TRANSFER PERFORMED 
32M#                                       [CONTINUE ON MAIN PATH   
32MR    #   
32NW    TOLIN CALL  7  TCLOS
338G          BRN      TSUI                [SUICIDE 
33D#          LDCT  0  #420 
33N6          ANDX  0  IPBSW(2) 
33XY          BZE   0  OVERLOAD            [NOT INOP/MP OFF,PM:DEAL W/ OVERLOAD 
347Q    TNOUT LDCT  0  #100                [NO IOUT OR IPB INOP OR SYS O/L  
34MB    TASL  ORS   0  IPBSW(2)            [MARK IPBOUT ASLEEP  
3572          UNLOCK   2                [UNLOCK IPBOUT ACTIVITY BLOCK   
35LL          COOR1 
366=    #   
36KW    SK1IPBOUT   
375G          HUNTW    3,AMXOR,IOUT 
37K6          BNG   3  TNOUT               [NO IOUT BLOCK : GO TO SLEEP 
384Q          LDCT  0  #620                [B4 : MOP OFF,PM 
38JB          ANDX  0  IPBSW(2) 
3942          BNZ   0  TOLIN               [OVERLOAD OR INOP
39HL    #   
3=3=    #   
3=GW    #     SET UP WRITE CONTROL AREA ; FIND SOURCE ACTIVITY IF NECESSARY , TO
3?2G    #     WAKE AFTER OUTPUT , OR ADJUST CONCEPTUAL OVERLOAD COUNT   
3?G6    #   
3?SH    SENDBLK 
3?YB          LDX   7  IPBSW(2) 
3?^M          SLC   7  9
3#2Y          BNG   7  VIRTUAL7900         [IPBOUT ACT IS COMMUNICATING WITH
3#49                                       [A VIRTUAL 7900  
3#6Y          LOCKC    3,TFI               [AMXOR/IOUT BLOCK
3#FB          LOCKC    2,TIF               [AMOP/IPBOUT BLOCK   
3#^2          JBUSY    ,TGE                [CONTROL AREA BUSY : GEOERR  
3*DL          LDN   0  #11                 [END WRITE MODE  
3*Y=          DCA      ,STO,0,MODE  
3BCW          STOZ     CPRW1(2) 
3BXG          MHUNTW   3,AMXOR,IOUT        [MAY HAVE MOVED IN LOCKC 
3CC6          LDX   0  ALOGLEN(3)   
3CWQ          SBN   0  IPBIDE-A1-1         [SIZE OF DATA SEG +1 FOR BSW 
3DBB          DCA      ,STO,0,COUNT 
3DW2          LDN   0  IBSW(3)             [START OF BLOCK TO BE OUTPUT 
3F*L          DCA      ,STO,0,CTSA  
3FB= ...TESTIMOPTY  
3FGQ          LDX   0  IMOPTY(3)
3FJ3          ANDN  0  1
3FK#          STOZ     AWORK2(2)
3FLK          BZE   0  TPERI               [BRANCH IF ACT NOT TO BE WOKEN   
3HRQ    #   
3J?B          LDX   2  IPBRING(2)          [VIA RING TO IPBIN   
3JR2          SBN   2  IPBRING  
3K=L          HUNT2J  2,AMXOR,ADEVS,,  TPERI [FROM THERE TO ROUTING BLOCK   
3KQ=          LDX   4  IPBIDE(3)
3L9W          ANDN  4  #7777
3LPG          SBX   4  A1+FOURTHWD(2)   
3M96          SLL   4  2                   [MULT IDE BY 4   
3MNQ          SMO      4
3N8B          LDX   2  A1+BPTR(2)          [FROM ADEVS ENTRY TO DCB 
3NN2          BZE   2  TPERI               [NO  DCB : ACTY SUICIDED ALREADY 
3P7L          SMO      FPTR(2)  
3PM=          LDX   5  FOURTHWD 
3Q6W          SLL   5  5                   [B5 SET IF ONLINE TO CONCEPTUAL  
3QLG          BPZ   5  TNOOL
3R66          ADX   2  BSTART(2)           [POINT TO START OF CONDCB
3R?#          LDXC  0  IMOPTY(3)
3RDG          BCC      TH1                 [J IF NOT TO BE REFLECTED
3RH5          LDX   5  2                   [SAVE CONDCB ADDR
3RKN          NAME     3,AMXOR,ICONIN   
3RQW          CHAIN    3,BPTR(2)           [GIVE IT BACK TO IPBCCA  
3RRK          HUNTACT  AMOP,3,5           [FIND IPBCCA  
3RS#          LDEX  0  ATYPE(3) 
3RT3          BZE   0  SK1IPBOUT           [J IF IPBCCA NOT ON COOR3
3RTQ          LDX   2  3
3RWF          UNQUEUE                      [WAKE IPBCCA 
3RX8          FPUT  
3RY4          BRN      SK1IPBOUT           [GO ON TO NEXT BLOCK 
3S5B    TNOOL SBN   2  A1+FPTR             [POINT TO START OF ADCB  
3SK2          LDX   0  IWAIT(2) 
3T4L          BPZ   0  TPERI               [TO WAKE ACTIVITY
3TJ=          LDX   5  2                   [KEEP COPY OF DCB ADDS   
3W3W    TH1   LDX   2  BPTR(2)  
3WHG          LDX   0  ATYPE(2) 
3X36          TXL   0  CACT                [POINT TO ACTIVITY   
3XGQ          BCS      TH1  
3Y2B          BPZ   5  TORD                [ORDINARY OUTPUT : NOT CONCEPTUAL
3YG2          ORX   2  GSIGN
3Y^L    TORD  SMO      FX2  
3^F=          STO   2  AWORK2   
3^YW    #   
42DG    TPERI LDX   2  FX2  
42QW          BNG   7  TRESP               [VIRTUAL 7900 : SKIP GPERI   
42Y6          GPERI    ,2   
436B    TRESP LDX   6  CPRW1(2)            [REPLY WORD  
43XB          BPZ   6  TACC                [ACTION ALREADY COMPLETE 
44C2          SLC   6  5
44WL          BNG   6  TINOP               [BR IF REJECTED INOPERABLE   
45B=          SRC   6  1
45TW          BNG   6  TEND                [REJECTED OPERABLE   
46*G    #   
46T6    TACC  STOZ     IMOPTY(3)           [WRITE ACCEPTED  
47#Q          LDX   2  AWORK2(2)
47SB          BZE   2  TWAK                [NO FPUT REQUIRED
48#2          BPZ   2  TJUW                [NOT ONLINE  
48RL          LDX   0  ALOGLEN(3)   
49?=          SBS   0  IOUTLOAD(2)         [IPBCCA'S OUTPUT OVERLOAD COUNT  
49QW          BRN      TWAK 
4==G    TJUW  FPUT                         [WAKE ACTIVITY CONTROLLING IDENTIFIER
4=Q6          LDCT  0  #400 
4?9Q          SMO      5
4?PB          ERS   0  IWAIT
4#92    #   
4#*N    TWAK  BNG   7  V7900PERI           [VIRTUAL 7900:PERFORM XFER TO PROG   
4#C=          COOR1                        [WAIT FOR END OF TRANSFER CHAINING   
4#DS    TREPL LDX   0  CPRW1(2)            [REPLY WORD  
4*MW          SLC   0  5
4B7G          BPZ   0  TINOP               [BRANCH IF INOP  
4BM6          SRC   0  2
4C6Q          BNG   0  TERR                [BRANCH IF ERROR 
4CLB          LDCT  0  #220 
4D62          ANDX  0  CPRW1(2) 
4DKL          BNZ   0  TEND                [J IF NOT IMPL   
4F5=    #   
4FJW          LDX   0  CPRW1(2) 
4G4G          ANDN  0  #7777
4GJ6          BNZ   0  TEND                [ENDED : ONLY ONE WORD READ BY DCP   
4H3Q    #SKI K6IPB>100-100  
4HHB    (   
4J32    [TRACES (ONLINE) SUCCESSFUL CC TRANSFERS IF "MOP TRACE" SWITCHED ON 
4JGL          LDX   0  ASWITCH1 
4K2=          SLL   0  7
4KFW          BPZ   0  TRACEX   
4KSS          LDX   0  IPBSW(2)            [TRACE IPBSW IN PLACE OF THE BSW 
4L7Q          ORS   0  A1+1(3)             [7903 DOES NOT CHECK THE BSW 
4LGN          LDN   0  1
4LTL    TALL  SMO      0
4M8J          '177  0  A1(3)
4MHG          8HIPBOUT  
4MWD          ADN   0  1
4N9B          TXU   0  ALOGLEN(3)   
4NJ#          BCS      TALL 
4NX=    TRACEX  
4PBW    [TRACEE 
4PWG    )   
4Q3N ...#UNS CCERROR
4Q8W ...      CALL  7  XSUBJOURN
4QB6          CALL  7  TCLOS               [CHECK WHETHER 'CLOSE DOWN'  
4QTQ          BRN      TIS                 [YES : COMPLETE CLOSURE  
4R5J          CALL  7  TREOP             [IF "REOPEN",WAKEUP IPBIN & J TO TWAL  
4R*B          SEGENTRY K33IPBOUT
4RT2          FREECORE 3
4S#L          BRN      K1IPBOUT 
4SS=    #   
4T?W    #     WRITE REJECTED OPERABLE OR ENDED : WAIT FOR READ TO FINISH
4TRG    #   
4W?6    TEND  UNLOCK   3
4WQQ          LDX   1  IPBRING(2)   
4X=B          LDCT  0  #100 
4XQ2          SBN   1  IPBRING             [POINT TO IPBIN  
4Y9L          ANDX  0  IPBSW(1) 
4YP=          BZE   0  TWAL                [READ ALREADY IN PROGRESS
4^8W          ERS   0  IPBSW(1) 
4^NG          LDX   2  1                   [WAKE IPBIN TO ISSUE READ
5286          FPUT  
52GH    TWAL  LONGON1  CCREOPEN            [KICK IPBIN IF WAITING IN "CCREOPEN" 
52SY          LDCT  0  1                   [SET B8 FOR IPBIN TO WAKE IPBOUT 
537B          BRN      TASL                [WHEN READ FINISHES  
53M2    #   
546L    #              [NOW SET UP & ISSUE DUMMY WRITE CANCEL READ  
54L=    #   
54RC    TIS   JV7900   ,TSUI               [VIRTUAL 7900: SKIP WRITE CANCEL READ
54T6          LDCT  0  #400 
54WT          STO   0  AWORK3(2)           [BSW 
55KG          LDN   0  #117                [CODE #17 = NULL 
5656          SLL   0  12                  [SET UP SS   
56JQ          STO   0  AWORK4(2)
574B          JBUSY    ,TGE                [CONTROL AREA BUSY : GEOERR  
57J2          LDN   0  4
583L          DCA      ,ORS,0,MODE         [CHANGE WRITE TO WRITE CANCEL READ   
58H=          LDN   0  2
592W          DCA      ,STO,0,COUNT        [WD COUNT OF 2   
59GG          LDN   0  AWORK3(2)
5=26          DCA      ,STO,0,CTSA  
5=FQ          GPERI    ,2   
5=^B          LDX   6  CPRW1(2) 
5?F2          BPZ   6  TAC15               [ACCEPTED AND COMPLETE   
5?YL          SLC   6  5
5#D=          BNG   6  TSUI                [REJECTED INOPERABLE 
5#XW          SRC   6  1
5*CG          BNG   6  TSUI                [REJECTED OPERABLE   
5*X6    TAC15 COOR1 
5BBQ    TSUI  DERINGD  IPBRING(2)          [IN CASE SUICIDE IS NOT IN CORE  
5BWB          SUICIDE   
5BWH    #   
5BWN    #     DCP IN OVERLOAD : FILTER OUTPUT QUEUE ACCORDING TO WARNING LEVEL  
5BWT    #     FIRST WARNING LEVEL = NO SUSPENSION OF OUTPUT.
5BX2    #     SECOND WARNING LEVEL = SUSPENSION OF BULK OUTPUT. 
5BX7    #     FIFTH WARNING LEVEL = SUSPENSION OF BULK AND INTERACTIVE OUTPUT   
5BX#    #              EXCEPT BIACKS(AND BINAK)SEGMENTS FOR NON-CONCEPTUAL  
5BXF    #              IDENTIFIERS WILL BE OUTPUT AFTER "SIEVING" ANY ASSOCIATED
5BXL    #              DATA SEGMENTS IN FRONT OF THE BIACKS.
5BXR    #     EXCEPTION:BEYOND FIRST W.L. ALL CRASH CLOSE SEGS IN Q ARE OUTPUT. 
5BXY    #   
5BY5    OVERLOAD
5BY6          BCHX  3  £
5BY7          LDCH  0  IPBIDE(3)
5BY8          ANDX  3  BITS22LS            [LD. SUPERVISORY 
5BY9          SBN   0  11   
5BY=
5BY?
5BY#          BZE   0  SENDBLK         [ J. IF RESET REOPEN 
5BY*          ORX   2  GSIGN               [GET OVERLOAD CODE:STORED BY IPBIN IN
5BYC          LDCH  5  IPBSW(2)            [IPBOUT'S IPBSW  
5BYJ          LDX   2  FX2  
5BYP          SBN   5  2
5BYW          BNG   5  TSEND          [CODE 1=PR 0=1ST WARN LEVEL : SEND BLOCK  
5B^3          CALL  7  OCRASHCLOSE         [SEND ALL CRASH CLOSE SEGS IN Q  
5B^8          LDX   3  FPTR(2)             [RESET X3 POINTING TO FIRST IOUT IN Q
5B^*          LDX   1  IPBRING(2)          [FIND ADEVS ENTRY OF THE IDENTIFIER  
5B^G          SBN   1  IPBRING             [OWNING THIS IOUT BLOCK  
5B^M          HUNT2J   1,AMXOR,ADEVS,,TNOUT 
5B^S          STO   1  GEN0                [PRESERVE ADEVS PTR  
5B^^    OLOOK LDX   4  IPBIDE(3)
5C26          ANDN  4  #7777
5C2?          BZE   4  TSEND               [BLK CONTAINS SYSTEM SUPER SEG : SEND
5C2D          SBX   4  A1+FOURTHWD(1)   
5C2K          SLL   4  2
5C2Q          ADX   1  4
5C2X          LDEX  0  A1+FOURTHWD(1)      [CHECK FOR INTERACTIVE DEVICE TYPE   
5C34          BZE   0  ONOTBULK            [INTERACTIVE DEVICE TYPE 7071
5C39          SBN   0  5
5C3B          BZE   0  ONOTBULK            [INTERACTIVE DEVICE TYPE 7023
5C3H          SBN   0  5
5C3N          BNZ   0  ONEXT               [BULK IDENTIFIER IOUT BLOCK : IGNORE 
5C3T                                       [INTERACTIVE DEVICE TYPE 7181
5C42    #              IOUT BLOCK BELONGS TO AN INTERACTIVE IDENTIFIER. 
5C47    ONOTBULK
5C4#          BZE   5  TSEND          [CODE 2=PR 10=2ND WARN LEVEL : SEND BLOCK 
5C4F    #              CODE 3=PR 20=5TH WARN LEVEL & INTERACTIVE IDENT IOUT BLK 
5C4L          LDX   0  A1+FOURTHWD(1)   
5C4R          SLL   0  5
5C4Y          BNG   0  ONEXT               [ID ONLINE TO CONCEPTUAL:IGNORE BLOCK
5C55          LDCH  0  IPBIDE(3)
5C5=          BNZ   0  ONEXT               [IDENTIFIER SUPERVISORY SEG : IGNORE 
5C5C          LDX   0  IPBIDE+1(3)  
5C5J          SLL   0  6
5C5P          BNG   0  TSEND               [BINAK /STOP SIEVING DATA SEG : SEND 
5C5W          SLL   0  1
5C63          BNG   0  OBIAC               [BIACK DATA SEG : SEND   
5C68    ONEXT HUNT2J   3,AMXOR,IOUT,,TNOUT [LOOK AT NEXT IOUT BLOCK 
5C6*          LDX   1  GEN0                [RESTORE ADEVS PTR   
5C6G          BRN      OLOOK
5C6M    #   
5C6S    #              BIACK DATA SEGMENT : SIEVE ALL DATA SEGMENTS OF THE SAME 
5C6^    #              IDENTIFIER NUMBER WHICH PRECEDE THE BIACK USING THE  
5C76    #              CONTROL DISCARD MASK IN ISTATUS OF THE RELEVANT DCB BLOCK
5C7?    #              THEN SEND THE BIACK DATA SEGMENT.
5C7D    #   
5C7K    OBIAC LDX   2  A1+BPTR(1)   
5C7Q          BZE   2  TSEND               [NO ADCB BLOCK?: SEND BIACK DATA SEG 
5C7X          SBN   2  A1+FPTR             [POINT TO IDENTIFIER'S ADCB BLOCK
5C84          STO   2  GEN1                [PRESERVE ADCB PTR   
5C89          LDX   1  FX2  
5C8B    ODSEG HUNT2J   1,AMXOR,IOUT,,ODSEG [SEARCH FOR PRECEDING DATA SEGMENTS  
5C8H          TXU   1  3
5C8N          BCC      TSEND               [END OF SEARCH : SEND BIACK DATA SEG 
5C8T          LDX   0  IPBIDE(1)
5C92          TXU   0  IPBIDE(3)
5C97          BCS      ODSEG               [DATA SEG'S IDEN NOT = BIACK'S:IGNORE
5C9#    #                  SIEVE THIS DATA SEGMENT  
5C9F          LDX   0  ISTATUS(2)          [EXTRACT CURRENT CONTROL DISCARD MASK
5C9L          ANDX  0  IPBIDE+1(1)         [TEST WITH DATA SEG'S DISCARD MASK   
5C9R          ANDX  0  HALFTOP  
5C9Y          SLL   0  8                   [ONLY BITS 8 TO 11 ARE RELEVANT  
5C=5          BZE   0  ODSEG               [DATA SEG CAN NOT BE DISCARDED:IGNORE
5C==          LDX   0  FPTR(1)             [PICK UP NEXT IOUT PTR   
5C=C          STO   0  GEN2                [AND PRESERVE IT 
5C=J          LDX   4  IMOPTY(1)
5C=P          FREECORE 1                   [DISCARD DATA SEG
5C=W    #                  WAKE IDENTIFIER'S CONTROLLING ACTIVITY IF REQUESTED  
5C?3          ANDN  4  1
5C?8          BZE   4  OCUS                [NO REQUEST  
5C?*          LDXC  0  IWAIT(2) 
5C?G          BCC      OCUS                [CONTROLLING ACTIVITY ALREADY AWAKE  
5C?M          STO   0  IWAIT(2)            [CLEAR ASLEEP FLAG   
5C?S    OACT  LDX   2  BPTR(2)             [HUNT FOR ACTIVITY BLOCK & KICK IT   
5C?^          LDX   0  ATYPE(2) 
5C#6          TXL   0  CACT 
5C#?          BCS      OACT 
5C#D          FPUT  
5C#K    OCUS  SMO      GEN2                [CAUSE SEARCH TO FIND NEXT IOUT  
5C#Q          LDX   1  BPTR 
5C#X          LDX   2  GEN1                [RESTORE ADCB PTR
5C*4          BRN      ODSEG               [CONTINUE SEARCH 
5C*9    #   
5C*B    #              SEND THIS IOUT BLOCK 
5C*H    TSEND CHAIN    3,FX2               [ENSURE THIS IOUT BLOCK IS FIRST IN Q
5C*N          BRN      SENDBLK  
5CB2    #   
5CJ=    #     IPB INOPERABLE : LET IPBIN MARK AND REPORT THE INOPERABILITY  
5CQG    #     IF RESET/REOPEN BLOCK TRIED, REPORT REOPEN FAILED TO IPBIN
5CYQ    #   
5D72    #     IPB ERROR : SEND MESSAGE TO CENTRAL CONSOLE   
5D*=    #   
5DSW    TMESS1         +JIPBINOP
5F24    #UNS CCERROR
5F7=    #SKI
5F#G    TMESS2      +JIPBERR
5FS6    #   
5FW*    #   
5FYJ    TINOP   
5F^M          UNLOCK   3
5G2R          BCHX  3  £
5G52          LDCH  0  IPBIDE(3)
5G79          ANDX  3  BITS22LS 
5G9D          SBN   0  11   
5G?M          BNZ   0  TCL                 [NOT RESET/REOPEN BLOCK  
5G*W          LDX   1  IPBRING(2)          [REPORT "REOPEN" FAILED TO AMOP/IPBIN
5GD5          SBN   1  IPBRING  
5GG#          LDCT  4  #200                [BY SETTING REOPEN FAILED FLAG   
5GJH          ORS   4  IPBSW(1)            [(B1 OF IPBIN'S IPBSW)   
5GLQ          LONGON1  CCREOPEN 
5GN^          CHAIN    3,2                 [PUT RESET/REOPEN BLOCK AT HEAD OF Q 
5GR8          LDX   2  3
5GTC    TCL   HUNT2J   3,AMXOR,IOUT,2,TSL  [CHECK FOR PRESENCE OF CLOSE DOWN SEG
5GWG          LDX   2  FX2                 [RESET X2 FOR TCLOSE 
5GXL          CALL  7  TCLOS
5G^T          BRN      TSUI                [SUICIDE IF CLOSE DOWN SEGMENT   
5H44    TSL   LDX   2  FX2  
5H6?          BRN      TNOUT               [IF NOT,GO TO SLEEP IGNORING OVERLOAD
5H8G    #   
5H8Q    #UNS CCERROR
5H92    (   
5H97    TERR  UNLOCK   3
5H9#          CCERROR  CCTRANSFER,CPRW1(2) [REPORT TRANSFER ERROR + (REPLY WD)  
5H9G                                       [AND SUSPEND TIL MOP OFF INITIATED   
5H9Q    )   
5H=2    #UNS CCERROR
5H==    #SKI
5H=G    (   
5H?2    TERR  LDX   6  TMESS2(1)           [IPB ERROR   
5HQL    TMESS LDX   0  IPBSW(2) 
5J==          BNG   0  K1IPBOUT            [ALREADY MARKED INOPERABLE : COOR
5JPW          LDX   3  IPBRING(2)   
5K9G          LDCT  0  #400 
5KP6          ORS   0  IPBSW-IPBRING(3)    [MARK IPBIN INOPERABLE   
5L8Q          ORS   0  IPBSW(2) 
5LNB          LGEOG    ,5   
5M82          CALL  7  TNOU                [OUTPUT MESSAGE  
5MCS    )   
5MML          BRN      K1IPBOUT 
5N7=    #   
5NLW    TNOU  SBX   7  FX1  
5P6G          OUTNUM   5,0  
5PL6          INFORMX  ,6,1 
5Q5Q          ADX   7  FX1  
5QKB          EXIT  7  0
5R52    #   
5RJL    #     ENTRY VIA CCOUT MACRO TO OUTPUT SUPERVISORY SEGMENT TO IPB
5S4=    #   
5SHW    SK4IPBOUT   
5T3G          LDX   6  ACOMMUNE1(2)        [CODE
5TH6          LDX   7  ACOMMUNE2(2)        [IDENTIFIER  
5W2Q          LDX   3  ACOMMUNE3(2)        [ADDS IPBIN  
5W4H          LDX   5  ACOMMUNE1(2) 
5W56          ANDN  5  #7700
5W5P          SRL   5  6                   [NO. OF WORDS IN SUPERVISORY SEGMENT 
5W6#          ADN   5  IPBIDE-IMOPTY       [ACCOUNT FOR IMOPTY AND IBSW 
5W6X ...      SETUPCORE 5,1,AMXOR,IOUT  
5W7G          STOZ     IMOPTY(1)           [ACT NOT TO BE WOKEN AFTER OUTPUT
5W85          LDCT  4  #400                [SET NO-DATA-SEGMENTS BIT
5W8N          LDCH  0  ACOMMUNE1(2)        [CODE
5W9?          SBN   0  5
5W9W          BNZ   0  SBSW                [NOT "ILLEGAL" SUPER CODE
5W=F          ORX   4  CACT                [SET VITAL-SUPER-SEGMENT BIT 
5W?4    SBSW  STO   4  IBSW(1)             [SET RELEVANT BITS IN BLK STATUS WORD
5W?M          SLL   6  12   
5W#=          DSA   7  6
5W#T          STO   6  IPBIDE(1)
5W*D          SBN   5  IPBIDE-IMOPTY+2  
5WB3          BNZ   5  OUTSS               [NOT A 2 WORD SUPER SEGMENT  
5WBL          LDX   0  ACOMMUNE4(2)        [SECOND WORD OF SEGMENT  
5WC9          STO   0  IPBIDE+1(1)  
5WCS    OUTSS CALL  7  TWA                 [CHAIN BEHIND IPBOUT 
62CB          UP
62X2    #   
63BL    #     ENTRY FROM CHARGESC TO OUTPUT TIME AND DATE TO IPB CONSOLES   
63W=    #     REMIND OPERATORS OF INOPERABLE , MOPPED-ON IPBS ; ACTCDT ACTIVITY 
64*W    #   
64TG    SK5IPBOUT   
652N          LDN   3  IPBADDR-IPBL        [SET X3 -> FIRST AMXOR/IPBIN 
657W    SETACOMS
65*6          STOZ     ACOMMUNE1(2) 
65SQ          LDX   0  ACES 
662J          LDCT  6  #400 
664G          STO   6  ACOMMUNE2(2) 
66S2          LDCT  6  #707 
67?L          STO   0  ACOMMUNE8(2)        [SPACE-FILL IN CASE DATE ONLY
67R=          LDN   7  20   
68=W          STO   0  ACOMMUNE9(2) 
68QG          SRL   6  3
69=6          STO   7  ACOMMUNE4(2)        [MESSAGE CHAR COUNT  
69PQ          FINDRET  1                   [POINT TO BLOCK CONTAINING TIME+DATE 
6=9B          STO   6  ACOMMUNE3(2)        [WORD COUNT + T/W DISPLAY CODE   
6=P2          OUTLEN   1,6                 [GET CHAR COUNT IN X6
6?8L          SRL   6  2                   [5 WORDS IF TIME+DATE ; 3 IF DATE
6??9 ...      LDX   5  6
6?*S ...      SBN   5  6
6?DC ...      BNG   5  TEXOK
6?H2 ...      LDN   6  5
6?KK ...TEXOK   
6?N=          LDN   5  ACOMMUNE5(2) 
6#MG          LDN   4  A1+2(1)             [ADDRESS OF TIME + DATE MESSAGE  
6*76          SMO      6                 [ONLY DATE AFTER 'IP DATE' COMMAND 
6*LQ          MOVE  4  0
6BL2    TEXT  LDX   3  IPBL(3)             [ADDRESS OF NEXT AMOP/IPBIN  
6C5L          BZE   3  TOUT                [FINISHED : SUICIDE  
6CK=          CALL  7  TOFF                [TEST FOR MOP OFF OR INOPERABLE  
6CT4 ...      J7900E   3,TEXT   
6D4W          HUNTW    1,AMXOR,IOUT 
6DJG          BPZ   1  TNAL                [PRESENT IF PREV. IPB JUST MOPPED OFF
6F46 ...      SETNCORE 9+IMOPTY-A1,1,AMXOR,IOUT 
6FHQ          LDN   4  ACOMMUNE1(2) 
6G3B          LDN   5  IMOPTY(1)
6GH2          MOVE  4  9
6H2L          CALL  7  TOFF                [MAYBE MOPPED OFF DURING SETNCORE
6HG=    TNAL  CALL  7  TWA                 [CHAIN BEHIND IPBOUT 
6HQ4          LDX   2  FX2  
6H^W          BRN      TEXT                [ACOMMUNE WORDS STILL OK 
6J3?    #UNS CCERROR
6J4N    (   
6J65    TNOP  LDCT  0  2                   [TEST DCP ERROR(IPBOUT'S IPBSW'S B7) 
6J7G          SMO      IPBRING(3)   
6J8X          ANDX  0  IPBSW-IPBRING
6J=#          BNZ   0  SETACOMS            [DCP ERROR : DON'T REPORT INOPERABLE 
6J?P          LGEOG    CPPTR(3),5   
6J*6    )   
6JBH    #UNS CCERROR
6JCY    #SKI
6JFG    TNOP  LGEOG    CPPTR(3),5   
6J^6          SMO      FX1  
6KDQ          LDX   6  TMESS1   
6KYB          CALL  7  TNOU 
6L9Q          BRN      SETACOMS            [ACOMMUNE WORDS NEED TO BE RESET 
6LH6    TOUT  FINDRET  1                   [FREE RETAINED BLOCK 
6LSG          FREECORE 1
6M5W          SUICIDE   
6MC=    #   
6MWW    TGE   GEOERR   1,CABUSY 
6NBG          MENDAREA 40,K100IPBOUT
6NW6    #END
^^^^ ...34731425001000000000
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1