{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: IPBOUT867)}}
====== IPBOUT867 ======
(George Source)
**Macros used:** [[george:macro:CCERROR|CCERROR]], [[george:macro:CHAIN|CHAIN]], [[george:macro:COOR1|COOR1]], [[george:macro:COOR3|COOR3]], [[george:macro:DCA|DCA]], [[george:macro:DERINGD|DERINGD]], [[george:macro:DOWN|DOWN]], [[george:macro:FINDACTFB|FINDACTFB]], [[george:macro:FINDRET|FINDRET]], [[george:macro:FPUT|FPUT]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GPERI|GPERI]], [[george:macro:HUNT2J|HUNT2J]], [[george:macro:HUNTACT|HUNTACT]], [[george:macro:HUNTW|HUNTW]], [[george:macro:INFORMX|INFORMX]], [[george:macro:JBUSY|JBUSY]], [[george:macro:JV7900|JV7900]], [[george:macro:LGEOG|LGEOG]], [[george:macro:LOCKC|LOCKC]], [[george:macro:LONGON1|LONGON1]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAME|NAME]], [[george:macro:OUTLEN|OUTLEN]], [[george:macro:OUTNUM|OUTNUM]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:SUICIDE|SUICIDE]], [[george:macro:TRACEX|TRACEX]], [[george:macro:UNLOCK|UNLOCK]], [[george:macro:UNQUEUE|UNQUEUE]], [[george:macro:UP|UP]]
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