{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: IPBCCB867)}}
====== IPBCCB867 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:BXGE|BXGE]], [[george:macro:BXL|BXL]], [[george:macro:BXU|BXU]], [[george:macro:CHAIN|CHAIN]], [[george:macro:COOR1|COOR1]], [[george:macro:DOWN|DOWN]], [[george:macro:FPUT|FPUT]], [[george:macro:FREECORE|FREECORE]], [[george:macro:HUNT2J|HUNT2J]], [[george:macro:LONGON|LONGON]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAME|NAME]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:UNLOCK|UNLOCK]]
22FL SEG IPBCCB,,PHILIP TURNER
22^= [ (C) COPYRIGHT INTERNATIONAL COMPUTERS LIMITED 1982
23DW #LIS K0IPBCCB>K0IPB>K0ALLGEO>K0GREATGEO
23YG 8HIPBCCB70
24D6 SEGENTRY K1IPBCCB,XK1
24XQ #UNS CLSKI
25CB ZTEMK #40000007
25X2 XMSK1 #77000
26BL XMSK7 #77000777
26W= XMSK9 #777000
27*W XMSK33 #40000020
27TG XMSK37 #44000002
28*6 XMSK46 #4000001
28SQ XMSK47 #70000001
29#B XMSK48 #7770000
29S2 XMSK49 #30004312
2=?L XMSK50 #40000040
2=R= ZIN #2400000
2?=W ZOUT #4300000
2?QG TABLE BRN S0 [INITIALISE
2#=6 BRN S1 [ARE YOU THERE
2#PQ BRN XCC3
2*9B BRN XCC3
2*P2 BRN XIL17
2B8L BRN XIL17
2BN= BRN XIL17
2C7W BRN XIL17
2CMG BRN XIL17
2D76 BRN S9 [CLOSE DOWN
2DLQ BRN XCC3
2F6B BRN XCC3
2FL2 BRN XCC3 [CONFIGURATION REQUEST
2G5L BRN XIL17
2GK= BRN XIL17
2H4W BRN XCC3 [NULL
2HJG BRN XCC3 [OPEN
2J46 BRN XCC3
2JHQ BRN XCC3
2K3B BRN XCC3
2KH2 BRN XCC3
2L2L BRN XIL17
2LG= BRN XCC3 [CLOSE
2L^W BRN XCC3 [CRASH CLOSE
2MFG BRN XCC3 [CHANGE MODE
2M^6 BRN XCC3 [SET PRIORITY
2NDQ ... BRN XCC3
2NYB BRN XIL17
2PD2 BRN XIL17
2PXL BRN XIL17
2QC= BRN XIL17
2QWW BRN XIL17
2RBG BRN S32 [(CANCEL ATTACH)
2RW6 BRN S33 [(ATTACH)
2S*Q BRN XCC3
2STB BRN XCC3
2T*2 BRN NFREE
2TSL BRN S37 [ILLEGAL
2W#= BRN NFREE
2WRW BRN NFREE
2X?G BRN S43A [(OPERABLE ROUTINE RETURN ADDRESS)
2XR6 BRN S41 [DATA LOST
2Y=Q BRN S42 [(INOPERABLE)
2YQB BRN S43 [(OPERABLE)
2^=2 BRN S42A [(INOPERABLE ROUTINE RETURN ADDRESS)
2^PL BRN XSET [LINE CHANGED
329= BRN NFREE
32NW BRN NFREE [NULL
338G BRN S48 [IDENTIFIER OPENED
33N6 BRN S49 [CLOSE IDENTIFIER
347Q BRN S50 [WARNING
34MB BRN S51 [CONTINUE
3572 BRN S52 [INPUT CLEARED
35LL BRN S53 [FAIL
366= BRN S54 [CLOSE IMPLEMENTED
36KW BRN NFREE
375G BRN S56 [MODE CHANGED
37K6 BRN S57 [DEVICE AVAILABLE
384Q BRN S58 [DEVICE UNAVAILABLE
38JB BRN S59 [IDENTIFIER FREE
3942 BRN S60 [OUTPUT SENT
39HL #UNS CLSKI
3=3= (
3=GW BRN ZRTDH [CC AH RETURN
3=QN ... BRN S41
3?2G BRN ZRELE [RELEASE
3?G6 )
3?^Q VRCLO SMO A1+FPTR(2) [SET CLOSED AND IF NOT CLOSED SET CLOS
3#FB LDX 0 FOURTHWD
3#^2 SRL 0 12
3*DL ANDN 0 4
3*Y= ERN 0 5
3BCW ORS 0 A1+IDSTATUS(2)
3BXG EXIT 5 0
3CC6 WARN HUNT2J 1,AMXOR,IOUT,6,(5)
3CWQ SVAN LDX 6 1 [BY-PASS FIRST BLOCK
3DBB SVARN LDX 2 4 [CONDCB ENTRY
3DW2 HUNT2J 1,AMXOR,IOUT,6,(5)
3F*L LDX 0 IPBIDE(1)
3FT= ANDN 0 #7777 [IDENT NO.
3G#W TXU 0 A1+IDNUM(2)
3GSG BCS SVAN [J IF NOT SAME IDENT.
3H#6 LDX 6 BPTR(1)
3HRQ BCHX 1 £
3J?B LDCH 0 IPBIDE(1) [SUPERVISORY CODE
3JR2 ANDX 1 BITS22LS
3K=L EXIT 5 1
3KQ= [ FREE SAVED BLOCKS
3L9W VWR
3LPG LDX 4 2
3M96 CALL 5 SVARN [FIND NEXT BLOCK
3MNQ BRN ZX33
3N8B ERN 0 24
3NN2 BNZ 0 S50V [J TO FREE BLOCK IF NOT CM
3NRX ... LDCT 0 #77
3NXS ... ANDX 0 A1+IDSTATUS+1(2)
3P3P ... BZE 0 S50V
3P7L LDCT 0 1
3PM= SBS 0 A1+IDSTATUS+1(2) [DECREMENT CM CT.
3Q6W BRN S50V [FREE BLOCK
3QLG ZX33 LDX 1 FX1
3R66 EXIT 3 0
3RKQ WVREE LDX 2 FX2
3S5B ... LDX 0 A1+IDNUM(3) [LOWEST IDENT NUMBER
3SK2 STO 0 AWORK2(2)
3T4L BRN ZXVRE
3TJ= ZCLCK LDX 0 ZTEMK(1) [CHECK WHETHER COSED ,AND CM CT
3W3W ANDX 0 A1+IDSTATUS(2)
3WHG ERN 0 1
3X36 BNZ 0 ZEX2 [J IF NOT ENTIRELY CLOSED
3XGQ LDCT 0 #77
3Y2B ANDX 0 A1+IDSTATUS+1(2)
3YG2 BZE 0 (5) [EXIT IF CM CT ZERO
3Y^L ZEX1 EXIT 5 1
3^F= ZEX2 EXIT 5 2
3^YW ZTESCLO [DEAL WITH CLOSE-DOWN AND INITIALISE
42DG LDCT 0 #20
42Y6 ANDX 0 A1+IDSTATUS(3)
43CQ BZE 0 ZEX1 [EXIT 1 IF NOT CLOSING DOWN
43XB LDN 0 1
44C2 SBS 0 A1+IDSTATUS(3) [DECREASE CLOSE-DOWN COUNT
44WL LDEX 0 A1+IDSTATUS(3)
45B= BNZ 0 (5) [EXIT IF CD CT NOT ZERO
45TW LDCT 0 #40
46*G ANDX 0 A1+IDSTATUS(3)
46T6 BZE 0 (5) [EXIT UNLESS INITIALISING
47#Q LDCT 0 #20
47SB ERS 0 A1+IDSTATUS(3) [UNSET CLOSE-DOWN
48#2 LDN 6 #140 [ SUPERVISORY CODE "READY"
48RL LDN 5 8
49?= BRN XCCA [SEND READY TO PROGRAM
49QW ZFREE LDX 2 FX2
4==G STOZ AWORK2(2)
4=Q6 ZXVRE STO 4 AWORK3(2)
4?9Q XFREE MHUNTW 1,AMXOR,ICONIN
4?PB LDX 6 ALOGLEN(1)
4#92 FREECORE 1
4#NL SBS 6 INLOAD(2) [DECREMENT INPUT OVERLOAD COUNT
4*8= EXIT 5 0
4*MW XIL1 LDN 4 #100
4B7G BRN XILL
4BM6 XIL2 LDN 4 #200
4C6Q BRN XILL
4CLB XIL7 LDN 4 #700
4D62 BRN XILL
4DKL XIL17 LDN 4 #2100
4F5= BRN XILL
4FJW XIL18 LDN 4 #2200
4G4G BRN XILL
4GJ6 XIL19 LDN 4 #2300
4H3Q BRN XILL
4HHB XIL28 LDN 4 #3400
4J32 LDN 0 #200
4JGL ORS 0 A1+IDSTATUS(2) [SET C-OSE IDENTIFIER
4K2= XILL LDN 5 0 [INPUT ILLEGAL
4KFW BRN XCCA
4K^G ...OUTM
4LYQ LDCT 4 #200
4MDB LDN 3 4
4MY2 BRN OUTV
4NCL OUTY NGN 0 #101
4NX= ANDS 0 A1+IDSTATUS(2) [UNSET ONE SHOT INPUT
4PBW BNZ 4 OUTW
4PWG OUTX LDCH 0 A1+IDADIN(3)
4QB6 BNZ 0 (5) [J. IF INPUT OVERLOAD SITUATION
4QTQ OUTW LDN 3 3
4R*B OUTV SBX 5 FX1
4RT2 DOWN IPBCCC,1 [PASS BLOCK ON
4S#L MHUNTW 2,AMXOR,CONDCB
4SS= LDX 3 2 [CONDCB ADDR
4T?W ADX 2 7 [ADDR OF ENTRY FOR THIS IDENT
4TRG LDX 6 2
4W?6 ADX 5 1
4WQQ EXIT 5 0
4X=B XSC1 LDN 0 #2000
4XQ2 ERS 0 A1+IDSTATUS(2) [FLIP FREE
4Y9L XSCAN ADN 7 CONDCBLEN
4YP= TXL 7 ALOGLEN(3)
4^8W BCS XSCRM [J IF NOT FINISHED BLOCK
4^NG LDX 0 CACT
5286 SMO FX2
52MQ ANDS 0 CONREL [UNSET RETURN ADDRESS FOR IPBCCA
537B BRN NXTBL [J IF FINISHED SCAN
53M2 XSCRM
546L LDX 2 3
54L= ADX 2 7
555W LDN 0 1
55KG SMO FX2
5656 ADS 0 AWORK2
56JQ LDX 0 A1+IDSTATUS(2)
574B ANDX 0 XMSK48(1)
57J2 SMO FX2
583L BXU 0 AWORK3,XSCAN [J. UNLESS ATTACHED TO THIS IPB
58H= LDX 0 A1+IDSTATUS(2)
592W EXIT 5 0
59GG XCLOS ANDX 4 BITS22LS
5=26 RCLCL LDCT 5 #20
5=FQ ANDX 5 A1+IDSTATUS(3)
5=^B ORS 0 A1+IDSTATUS(3)
5?F2 BZE 5 ZCLNAL [J IF NOT ALREADY CL DOWN
5?YL BPZ 4 (4) [EXIT IF NOT RELEASE
5#D= ORX 4 CACT
5#XW LDN 5 #777
5*CG ZCLNAL
5*X6 LDCT 0 #570 [UNSET STOP REMOTE INPUT AND ZEROISE
5BBQ ORX 0 5
5BWB ANDS 0 A1+IDSTATUS(3) [SRI AND CLOSE DOWN COUNTS
5CB2 XCL1 ADN 7 CONDCBLEN
5CTL BXGE 7 ALOGLEN(3),(4) [J. IF END OF CONDCB SCAN
5D*= LDX 2 3
5DSW ADX 2 7
5F#G LDX 0 A1+BPTR(2)
5FS6 BZE 0 XCL1B [J. IF NULL IDENTIFIER
5G?Q SMO FX2
5GRB STO 4 ACOMMUNE9 [SAVE LINK
5H?2 LDX 6 3 [CONDCB
5HQL CALL 3 VWR [FREE SAVED BLOCKS
5J== LDX 3 2
5JPW SBX 3 7 [RESTORE CONDCB ADDR.
5K9G SMO FX2
5KP6 LDX 4 ACOMMUNE9 [RESTORE LINK
5L8Q LDX 0 A1+IDSTATUS(2)
5LNB ANDN 0 #400
5M82 BZE 0 XCL4 [J IF CCAH NOT SET
5MML BPZ 4 (4) [FINISH UNLESS RELEASING
5N7= BRN XCL3
5NLW XCL4 LDX 0 A1+IDSTATUS(2)
5P6G ANDN 0 #3000
5PL6 BZE 0 XCL5 [J IF NOT INOP NOR FREE
5Q5Q CALL 5 VRCLO
5QKB NGN 0 #201
5R52 ANDS 0 A1+IDSTATUS(2) [UNSET CLOSE IDENT
5RJL BPZ 4 XCL1
5S4= XCLVT CALL 5 ZCLCK
5SHW BRN XCL1 [J IF OK TO RELEASE
5T3G NGN 0 #3001
5TH6 ANDS 0 A1+IDSTATUS(2) [UNSET INOP,FREE
5W2Q LDX 0 A1+IDSTATUS(2)
5WGB ANDN 0 2 [CR CL BIT STILL IN X0 IF EXIT 2
5X22 BZE 0 XCL2 [J IF NOT CRASH CLOSING
5XFL BRN XCL3
5X^= XCL5 LDX 0 A1+IDSTATUS(2)
5YDW SRC 0 1
5YYG BNG 0 XCL1D [J IF CLOSED SET
5^D6 ANDN 0 1
5^XQ BZE 0 XCL2
62CB XCL6A LDCT 0 #200
62X2 ANDX 0 4
63BL BZE 0 XCL3 [J UNLESS ALREADY CLOSING DOWN
63W= BRN XCLAL
64*W XCL1B NGN 5 #401
64TG XCL1C ANDS 5 A1+IDSTATUS(2)
65*6 BRN XCL1
65SQ XCL1D SRC 0 1
66#B BNG 0 XCL6A [J. IF CRASH CLOSING SET
66S2 SRC 0 1
67?L BNG 0 XCL2 [J IF CLOSING
67R= SLC 0 3
68=W BNG 0 XCL2 [J IF OPENING[
68QG BPZ 4 XCL1
69=6 LDCT 0 #77
69PQ ANDX 0 A1+IDSTATUS+1(2)
6=9B BZE 0 XCL1 [J IF CM CT ZERO
6=#T ... SMO A1+BPTR(2)
6=D# ... LDX 0 FOURTHWD
6=HR ... SLL 0 9
6=M= ... BPZ 0 XCL3
6=QP ... LDCT 0 #77
6=W8 ... ORS 0 A1+IDSTATUS+1(2)
6=^M ... ERS 0 A1+IDSTATUS+1(2)
6?56 ... BRN XCL1
6?8L XCL2 NGNC 0 1
6?N= ANDS 0 A1+IDSTATUS(2)
6#7W LDN 0 3
6#MG ORS 0 A1+IDSTATUS(2)
6*76 [ SET CR CL,CLOSED
6*LQ LDN 6 #127 [OUTPUT CRASH CLOSE
6B6B SBX 4 FX1
6BL2
6C5L CALL 5 OUTW
6CK= ADX 4 FX1
6D4W XCL3 LDN 0 1
6DJG ADS 0 A1+IDSTATUS(3) [INCREMENT CLOSE DOWN COUNT
6F46 BPZ 4 XCL1 [J UNLESS RELEASING
6FHQ XCLAL LDN 0 #401
6G3B ORS 0 A1+IDSTATUS(2) [SET CANCEL-ATTACH IF RELEASING
6GH2 #UNS AHRET
6H2L (
6HG= SEGENTRY K91IPBCCB
6H^W LDN 0 AHRETREL
6JFG BNZ 0 XCL1 [J IF AH TO BE RETAINED
6J^6 LDN 0 #400
6KDQ ORS 0 A1+IDSTATUS+1(2)
6KYB )
6LD2 BRN XCL1
6LXL [***** K1 ENTRY POINT ******
6MC= XK1
6MWW MHUNTW 2,AMXOR,CONDCB
6NBG LDX 3 2
6NW6 ADX 2 7
6P*Q SMO 6
6PTB BRN TABLE [J. ON SUPERVISORY CODE
6Q*2 S0 LDN 6 2
6QSL S0A LDX 0 4
6R#= ANDN 0 #7777
6RRW SBN 0 4
6S?G BNG 0 XIL18
6SR6 SEGENTRY K50IPBCCB
6T=Q SBN 0 INPUSIZE
6TQB BPZ 0 XIL18 [ILLEGAL 18 IF BUFFER SIZES NOT IN
6W=2 SRC 4 12 [RANGE 4 TO NPUSIZE+3
6WPL BCT 6 S0A
6X9= STO 4 A1+IDMDNPU(3)
6XNW LDCT 0 #60 [SET INITIALISE AND CLOSE DOWN
6Y8G CALL 4 XCLOS [CLOSE ALL IDENTIFIERS
6YN6 LDN 5 15
6^7Q SETV LDCT 6 #200
6^MB SMO A1+BPTR(3)
7272 ANDX 6 IPSTATUS
72LL BNZ 6 XCCA [J. IF INTERNAL CLOSE DOWN
736= LDN 6 #140
73KW LDCT 0 #20
745G SETW LDN 1 #777
74K6 SETS ANDX 1 A1+IDSTATUS(3)
754Q BNZ 1 XCCA [J. UNLESS RELEVANT COUNT ZERO
75JB SBN 5 1
7642 SETP ERS 0 A1+IDSTATUS(3)
76HL XCCA
773= ACROSS IPBCCD,1
77GW S1 LDN 6 #141 [OUTPUT ACKNOWLEDGE
782G LDN 5 14
78G6 BRN XCCA
78^Q S9 SMO FX2
79FB LDX 3 IPBRING
79^2 SBN 3 IPBRING
7=DL ZHJ HUNT2J 3,AMXOR,ICONIN,,NOCONIN [FIND ICONINS AFTER OLPA
7=Y= FREECORE 3 [FREE THEM (ALL DATA DISCARDED
7?CW [...AT CLOSE DOWN
7?XG [)
7#C6 BRN S9 [ GO TO SEE ANY MORE
7#WQ NOCONIN
7*BB MHUNTW 2,AMXOR,CONDCB
7*W2 LDX 3 2
7B*L ADX 2 7 [RESET ACCS TO CONTINUE CLOSEDOWN
7BT= LDCT 0 #20
7C#W NGX 5 XMSK46(1)
7CSG ANDS 5 A1+IDSTATUS(3) [UNSET INITIALISE AND SET CLOSE DOWN
7D#6 CALL 4 XCLOS [CLOSE ALL IDENTIFIERS
7DRQ XBACK LDN 5 15
7F?B BRN XCCA
7FR2 S16X ORS 5 A1+IDSTATUS(2) [SET APPROPRIATE BITS
7G=L XKEEP LDX 6 GSIGN
7GQ= LDN 5 4
7H9W ACROSS IPBCCA,2
7HPG S23W LDN 5 3
7J96 BRN S16X
7JNQ #UNS CLSKI
7K8B #SKI
7KN2 (
7L7L S32 LDX 0 A1+IDSTATUS(2)
7LM= NGX 5 XMSK47(1)
7M6W ANDS 5 A1+IDSTATUS+1(2) [UNSET OUTPUT SENT,CHANGE MODE,NPU
7MLG SRC 0 11
7N66 BXL 0 BITS22LS,S32A [J. UNLESS INOPERABLE OR FREE SET
7NKQ NGN 0 #2001
7P5B ANDS 0 A1+IDSTATUS(2) [UNSET FREE
7PK2 S32C CALL 5 XFREE
7Q4L LDN 5 11
7QJ= BRN XCCA
7R3W S32A SLC 0 10
7RHG LDN 6 #127
7S36 BPZ 0 S32B [J. UNLESS CLOSED SET
7SGQ SRC 0 1
7T2B BNG 0 NFREE [J. IF CRASH CLOSING SET
7TG2 SRC 0 1
7T^L BPZ 0 S32C [J. UNLESS CLOSING SET
7WF= CALL 5 OUTW [OUTPUT CRASH CLOSE
7WYW BRN NFREE
7XDG S32B CALL 5 OUTW [OUTPUT CRASH CLOSE
7XY6 LDX 0 A1+IDSTATUS(2)
7YCQ BNG 0 NFREE [J. IF OPENING SET
7YXB CALL 5 XFREE
7^C2 LDN 5 6
7^WL BRN XCCA
82B= )
82TW #UNS CLSKI
83*G (
83T6 S32 LDN 0 #400
84#Q ANDX 0 A1+IDSTATUS(2)
84SB BZE 0 NALDI [J UNLESS ID ALREADY BEING...
85#2 [ ...DISCONNECTED FROM PROGRAM
85RL ORS 0 A1+IDSTATUS+1(2)
86?= [ ENSURE TO BE DETACHED IS SET
86QW LONGON #133
87=G BRN NFREE
87Q6 NALDI
889Q [ J IF CC AH ALREADY SET
88PB NGX 0 XMSK47(1)
8992 ANDS 0 A1+IDSTATUS+1(2) [CLEAR OUTPUT SENT,CM,NPU
89NL LDX 4 2 [SAVE CONDCB ADDR
8=8= CALL 5 XFREE [FREE ICONIN
8=MW LDX 2 4
8?7G CALL 5 ZCLCK
8?M6 BRN XCCA25
8#6Q BRN XCCA26
8#LB BCT 0 XCCA26 [J UNLESS JUST BIT 23 NEEDED
8*62 LDCT 0 #77
8*KL ANDX 0 A1+IDSTATUS+1(2)
8B5= BNZ 0 XCCA26 [J IF CM CT NON ZERO
8BJW SMO A1+BPTR(2)
8C4G LDX 0 FOURTHWD
8CJ6 ANDX 0 BIT9
8D3Q BNZ 0 XCCA25
8DHB [ J IF CLOSED
8F32 XCCA26
8FGL LDN 5 26
8G2= BRN XCCA
8GFW XCCA25
8G^G LDN 5 25
8HF6 BRN XCCA
8HYQ ZRTDH [RETURN FROM IPBCCA
8JDB YSCLO CALL 5 ZCLCK
8JY2 BRN NXTBE [J IF CLOSED
8KCL BRN NXTBE [REGARDLESS OF CM CT
8KX= LDX 0 A1+IDSTATUS(2)
8LBW ANDN 0 #3000
8LWG BNZ 0 S321 [J IF INOP OR FREE
8MB6 CALL 5 ZTESCLO [DEAL WITH CLOSEDOWN AND INITIALISE
8MTQ BRN NXTBE [J IF CLOSING DOWN
8N*B LDX 6 3
8NT2 CALL 3 VWR
8P#L [ FREE ANY SAVED BLOCKS
8PS= LDX 3 2
8Q?W SBX 3 7 [RESET CONDCB POINTER
8QRG S321 LDN 0 1
8R?6 ORS 0 A1+IDSTATUS(2) [SET CLOSED
8RQQ LDX 0 A1+IDSTATUS(2)
8S=B ANDN 0 2
8SQ2 BNZ 0 NXTBE
8T9L LDN 0 2
8TP= ORS 0 A1+IDSTATUS(2) [SET CRASH CLOSING
8W8W LDN 6 #127
8WNG CALL 5 OUTW [SEND CRASH CLOSE
8X86 NXTBE NGN 0 #3001
8XMQ ANDS 0 A1+IDSTATUS(2) [UNSET INOP,FREE
8Y7B BRN NXTBL
8YM2 )
8^6L S33 SMO A1+IDADIN(2)
8^L= LDX 0 IPBSW
925W BPZ 0 SOK33 [J IF NOT INOP
92KG LDN 0 #1000
9356 ORS 0 A1+IDSTATUS(2) [SET INOP
93JQ BRN NFREE
944B SOK33 LDX 0 A1+IDSTATUS(2)
94J2 SRC 0 11
953L BXGE 0 BITS22LS,NFREE [J. IF INOPERABLE OR FREE SET
95H= SLC 0 10
962W BPZ 0 NFREE [J. UNLESS CLOSED
96GG NGN 0 #201
9726 ANDS 0 A1+IDSTATUS(2) [UNSET CLOSE IDENTIFIER
97FQ CALL 5 XFREE
97^B LDN 6 #173 [INPUT IDENTIFIER FREE
98F2 LDN 5 7
98YL BRN XCCA
99D= S37
99XW ACROSS IPBCCC,2
9=CG S41 LDCT 0 #60
9=X6 ANDX 0 A1+IDSTATUS(3)
9?BQ BNZ 0 NFREE [J. IF INITIALISE OR CLOSE DOWN SET
9?WB BRN XSET
9#B2 S42 CALL 5 WVREE [FREE ICONIN AND SETUP IDENT CT.
9#TL BCHX 2 £
9**= LDN 0 44
9*SW DCH 0 CONREL(2) [SET RETURN ADDR. IN CASE USE IPBCCA
9B#G S42NE CALL 5 XSCAN
9BS6 ANDN 0 #3400
9C?Q BZE 0 TENAL [J IF NOT INOP,FREE,CCAH
9CRB LDX 5 0
9D?2 ANDN 5 #400
9DQL BNZ 5 S42NE [IGNORE IF CC AH SET
9F== LDX 5 0
9FPW ANDN 5 #2000
9G9G ERS 5 A1+IDSTATUS(2) [LEAVE FREE UNSET
9GP6 ANDN 0 #1000
9H8Q SLL 0 1 [SET FREE IF INOP ALREADY SET
9HNB ORN 0 #1000
9J82 ORS 0 A1+IDSTATUS(2) [SET INOP.
9JML BRN S42NE [GO ON TO NEXT IDENT
9K7= TENAL CALL 5 ZCLCK [CHECK STATE OF IDENT
9KLW BRN S42A [J IF CLOSED AND CM CT ZERO
9L6G BRN ZCLINCM [J IF CM CT NONZERO
9LL6 CALL 5 ZTESCLO [DEAL WITH CLOSE-DOWN AND INITIALISE
9M5Q BRN S42A [J IF CLOSING DOWN
9MKB ZCLINCM
9N52 LDN 5 26
9NJL BRN XCCA [GO TO TELL PROGRAM
9P4= S42A [RETURN HERE FROM IPBCCA
9PHW LDX 6 3
9Q3G CALL 3 VWR [DEAL WITH BLOCKS SAVED FOR WARNING
9QH6 LDX 3 2
9R2Q SBX 3 7
9RGB LDXC 0 A1+IDSTATUS(2) [SET CLOSED IF OPENING SET
9S22 LDN 0 #1000
9SFL ORS 0 A1+IDSTATUS(2) [SET INOPERABLE
9S^= BRN S42NE [GO ON TO NEXT IDENT
9TDW S43 [OPERABLE
9TYG CALL 5 WVREE [FREE ICONIN AND PRESET IDENT COUNT
9WD6 BCHX 2 £
9WXQ LDN 0 40
9XCB DCH 0 CONREL(2) [SET RETURN ADDR. IN CASE GO TO IPBCA
9XX2 S43NE CALL 5 XSCAN [FIND NEXT RELEVANT IDENT.
9YBL LDN 0 #400
9YW= ANDX 0 A1+IDSTATUS(2)
9^*W BNZ 0 S42NE [IGNORE IF CCAH SET
9^TG LDN 0 #2000
=2*6 ANDX 0 A1+IDSTATUS(2)
=2SQ BNZ 0 S436 [J IF FREE ALREADY SET
=3#B CALL 5 ZCLCK [CHECK STATE OF IDENT
=3S2 BRN S431 [CLOSED AND CM CT ZERO
=4?L BRN S434 [CLOSED AND CM CT NONZERO
=4R= [ NOT CLOSED
=5=W LDN 0 2
=5QG ANDX 0 A1+IDSTATUS(2)
=6=6 BNZ 0 S434 [J IF ALREADY CRASH CLOSING
=6PQ LDN 6 #127
=79B CALL 5 OUTW [CRASH CLOSE
=7P2 LDN 0 2
=88L ORS 0 A1+IDSTATUS(2) [SET CRASH CLOSING
=8N= S434 LDN 0 #2000
=97W ORS 0 A1+IDSTATUS(2) [SET FREE
=9MG S43A [RETURN FROM IPBCCA
==76 S433 NGN 0 #1001
==LQ S4361 ANDS 0 A1+IDSTATUS(2) [UNSET INOP
=?6B BRN S43NE [GO TO NEXT IDENT
=?L2 S436 NGN 0 #2001 [UNSET FREE
=#5L BRN S4361
=#K= S431 LDN 0 #200
=*4W ANDX 0 A1+IDSTATUS(2)
=*JG BZE 0 S433 [J IF CLOSE IDENT NOT SET
=B46 ERS 0 A1+IDSTATUS(2) [UNSET IT
=BHQ LDN 6 #173 [IDEN FREE CODE
=C3B LDN 5 8
=CH2 BRN XCCA [TELL PROGRAM IDENT FREE
=D2L S48 LDXC 0 GSIGN
=DG= NGX 0 XMSK50(1)
=D^W ANDS 0 A1+IDSTATUS(2) [UNSET OPENING,WARNING
=FFG SRL 4 12
=F^6 ANDN 4 #4000
=GDQ ORS 4 A1+IDSTATUS(2) [REMEMBER DEVICE AVAILABILITY
=GYB LDCT 4 #200
=HD2 ANDX 4 A1+IDSTATUS+1(2)
=HXL BNZ 4 S48B [J. IF CHANGE MODE SET
=JC= LDN 0 6
=JWW ANDX 0 A1+IDSTATUS(2)
=KBG BNZ 0 S48B [J IF CLOSING OR CRASH CLOSING
=KW6 LDN 0 #200
=L*Q ANDX 0 A1+IDSTATUS+1(2)
=LTB ERS 0 A1+IDSTATUS+1(2) [UNSET M4DETERMINED MARKER
=M*2 BNZ 0 ZN4 [J IF M4STATUS ALREADY DETERMINED
=MSL LDX 0 5
=N#= SRL 0 15
=NRW ANDN 0 7
=P?G SBN 0 4
=PR6 LDN 6 #100
=Q=Q ORS 6 A1+IDSTATUS+1(2)
=QQB BZE 0 ZN4 [J IF M4
=R=2 ERS 6 A1+IDSTATUS+1(2) [UNSET M4
=RPL ZN4
=S9= LDX 6 A1+IDMDNPU(3)
=SNW SRL 6 12
=T8G SBN 6 3
=TN6 ANDN 5 #7777
=W7Q BXGE 6 5,S48A [J. IF I/P BUFFER SIZE-4>NPUSIZE
=WMB CALL 5 OUTM [CHANGE NPUSIZE
=X72 S48B ERS 4 A1+IDSTATUS+1(2) [FLIP CHANGE MODE
=XLL S48A LDX 0 A1+IDSTATUS(2)
=Y6= SRC 0 9
=YKW BPZ 0 XOPEN [J. UNLESS CANCEL ATTACH SET
=^5G LDN 5 9
=^K6 BRN XCCA
?24Q XOPEN BRN XSET
?2JB S49 LDN 1 #200
?342 S49X LDN 0 1(1)
?3HL S49Y ANDX 0 A1+IDSTATUS(2)
?43= BNZ 0 NFREE
?4GW ERS 1 A1+IDSTATUS(2)
?52G XSET LDN 5 3
?5G6 BRN XCCA
?5^Q S50 LDN 0 #100
?6FB ANDX 0 A1+IDSTATUS+1(2)
?6^2 BNZ 0 XSET [J IF MOP MODE 4 TO JUST PASS ON
?7DL SMO A1+IDADIN(2)
?7Y= LDX 6 IPBRING
?8CW SBN 6 IPBRING [IPBOUT ADDRESS
?8XG LDX 4 2
?9C6 LDN 0 2
?9WQ ANDX 0 A1+IDSTATUS(2)
?=BB BZE 0 S501 [J IF NOT CRASH CLOSING
?=W2 S50CC CALL 5 WARN
??*L S50CA BRN S509 [J IF NO MORE FOR THIS IDENT
??T= SBN 0 23
?##W BZE 0 S509 [J IF CRASH CLOSE
?#SG BNG 0 S50V [J IF NOT SET PRI NOR CM
?*#6 SBN 0 3
?*RQ BNG 0 S50V
?B?B LDX 6 1
?BR2 [ POINT PAST BLOCK
?C=L BRN SVARN
?CQ= S50V
?D9W LDX 0 ALOGLEN(1)
?DPG LDXC 2 IMOPTY(1) [SET C IF CONTINUE SEG BEING REFLECT
?F96 LDX 2 FX2 [FX2 + 1 FOR CONTINUE SEG
?FNQ SBS 0 IOUTLOAD(2) [INLOAD (= IOUTLOAD + 1) FOR CONTINUE
?G8B FREECORE 1
?GN2 BRN SVARN [LOOK FOR NEXT SEG
?H7L S501 LDN 0 4
?HM= ANDX 0 A1+IDSTATUS(2)
?J6W BNZ 0 NFREE [IGNORE WARNING IF CLOSING
?JLG SMO FX2
?K66 LDX 3 ACTRING
?KKQ SBN 3 ACTRING
?L5B CALL 5 WARN [LOOK FOR OUTPUT SEGS
?LK2 BRN S506 [J IF NONE LEFT
?M4L LDXC 0 IMOPTY(1)
?MJ= BCS S50V [FREE CONTINUE BLOCK
?N3W BNG 7 S503
?NHG LDCH 0 IPBIDE(1)
?P36 BNZ 0 SVAN [J IF SUPERVISORY SEG
?PGQ LDX 0 IPBIDE+1(1)
?Q2B ANDX 0 CACT
?QG2 BZE 0 SVAN [J IF NOT END OF NPU
?Q^L S502
?RF= ORX 7 GSIGN [SET END OF NPU FOUND
?RYW BRN SVAN [J FOR NEXT BLOCK
?SDG S503
?SY6 CHAIN 1,BPTR(3) [RECHIN AFTER CONDCB
?TCQ BRN SVARN [LOOK FOR MORE BLOCKS
?TXB S506
?WC2 LDXC 7 7
?WWL BCS S509 [J IF FOUND AN END OF NPU
?XB= LDCT 0 #100
?XTW ANDX 0 A1+IDSTATUS+1(2)
?Y*G BZE 0 S509 [J UNLESS NPU SET
?YT6 LDN 0 #40
?^#Q ORS 0 A1+IDSTATUS+1(2)
?^SB BRN S5092
#2#2 S509 BNG 7 S23W [J IF CAME FROM CRASH CLOSE
#2RL LDN 0 #40
#3?= ORS 0 A1+IDSTATUS(2) [SET WARNING
#3QW S5092
#4=G LDN 0 #20
#4Q6 ANDX 0 A1+IDSTATUS+1(2)
#59Q BZE 0 XSET [J UNLESS STILL REFLECTING CONTINUE
#5PB ERS 0 A1+IDSTATUS+1(2)
#692 BRN NFREE [DO NOT PASS ON IF STILL REFLECTING C
#6NL S51 [CONTINUE
#78= LDN 0 #100
#7MW ANDX 0 A1+IDSTATUS+1(2)
#87G BNZ 0 XSET [JUST PASS ON IF MODE 4 MOP
#8M6 MHUNTW 1,AMXOR,ICONIN
#96Q LDX 0 IMOPTY(1)
#9LB BNG 0 S51N [J IF REFLECTED BY IPBOUT
#=62 LDX 0 A1+IDSTATUS(2)
#=KL ORX 0 A1+IDSTATUS+1(2)
#?5= ANDN 0 #40
#?JW BZE 0 NFREE [IGNORE CONTINUE IF WARNING NOT SET
##4G LDN 0 2
##J6 ANDX 0 A1+IDSTATUS(2)
#*3Q BZE 0 S51Y [J IF NOT CRASH CLOSING
#*HB NGN 0 #41
#B32 ANDS 0 A1+IDSTATUS(2)
#BGL BRN S51NY
#C2= S51Y NGN 0 #41
#CFW ANDS 0 A1+IDSTATUS(2) [UNSET WARNING
#C^G ANDS 0 A1+IDSTATUS+1(2) [AND WARNNPU
#DF6 LDX 6 3
#DYQ LDX 4 2
#FDB SMO A1+IDADIN(2)
#FY2 LDX 3 IPBRING
#GCL LDX 3 ACTRING-IPBRING(3) [ACT AFTER IPBOUT
#GX= SBN 3 ACTRING
#HBW CALL 5 SVARN [FIND SAVED BLOCKS
#HWG BRN S519 [J IF NONE
#JB6 ANDN 0 #76 [IGNORE B23 IF CCOSE
#JTQ ERN 0 22
#K*B BNZ 0 S51SC
#KT2 [ J IF NOT CLOSE
#L#L LDN 5 0
#LS= S51SC CHAIN 1,BPTR(3) [PASS TO IPBOUT
#M?W BNZ 5 SVARN [GET NEXT BLOCK UNLESS JUST HAD CLOSE
#MRG S519 LDX 2 4 [CONDCB ADDR
#N?6 SMO A1+IDADIN(2) [AMOP
#NQQ LDX 2 IPBRING
#P=B SBN 2 IPBRING [IPBOUT
#PQ2 LDCT 0 #100
#Q9L ANDX 0 IPBSW(2)
#QP= BZE 0 ZIPBAWAKE [J IF IPBOUT AWAKE
#R8W ERS 0 IPBSW(2)
#RNG FPUT [ELSE WAKE IT UP
#S86 ZIPBAWAKE
#SMQ LDX 2 4
#T7B BNG 7 S54CI
#TM2 MHUNTW 1,AMXOR,ICONIN
#W6L LDX 2 4
#WL= LDX 0 A1+IDSTATUS(2)
#X5W ANDN 0 6
#XKG BNZ 0 S51NY [J IF CLOSING OR CRASH CLOSING
#Y56 NAME 1,AMXOR,IOUT [RENAME AS OUTPUT BLOCK
#YJQ LDX 0 A1+IDNUM(2)
#^4B DSA 0 IPBIDE(1)
#^J2 LDN 0 #20
*23L ORS 0 A1+IDSTATUS+1(2) [SET REFLECTING
*2H= LDCT 0 #400
*32W ORN 0 1
*3GG STO 0 IMOPTY(1) [SET SO IPBOUT REFLECTS IT
*426 CHAIN 1,BPTR(3) [PASS TO IPBOUT
*4FQ BRN NXTBL
*4^B S51N LDN 0 #40
*5F2 ANDX 0 A1+IDSTATUS(2)
*5YL BNZ 0 NFREE [IGNORE IF WARNING NOW SET
*6D= LDN 0 #20
*6XW ANDX 0 A1+IDSTATUS+1(2)
*7CG BZE 0 NFREE [FREE IF NREFLECTING NOT SET
*7X6 ERS 0 A1+IDSTATUS+1(2) [UNSET REFLECTING
*8BQ S51NY STOZ IMOPTY(1) [[B0 HAS DIFFERENT MEANING FOR CONIPB
*8WB UNLOCK 1 [WAS LOCKED BY IPBOUT
*9B2 BRN XSET [PASS ON TO PROGRAM
*9TL S51X ANDX 1 A1+IDSTATUS(2)
*=*= BZE 1 NFREE
*=SW BRN S49Y
*?#G S52 LDX 0 A1+IDSTATUS(2)
*?S6 SRC 0 4
*#?Q BPZ 0 NFREE [J. UNLESS NOT CLEARED
*#RB NGN 5 #11
**?2 ANDS 5 A1+IDSTATUS(2) [UNSET NOT CLEARED
**QL LDN 5 #20
*B== ORS 5 A1+IDSTATUS(2) [SET STOPPED
*BPW LDCT 5 #200
*C9G ANDX 5 A1+IDSTATUS(3)
*CP6 BZE 5 XSET [J. IF STOP REMOTE INPUT SET
*D8Q SLC 0 5
*DNB BPZ 0 S52A [J. UNLESS SRI SET
*F82 CALL 5 XFREE
*FML LDN 5 1
*G7= BRN XCCA
*GLW S52A LDCT 0 #200
*H6G ORS 0 A1+IDSTATUS(2) [SET SRI
*HL6 LDN 5 2
*J5Q BRN XCCA
*JKB S53 LDN 1 #4000 [FAIL CODE
*K52 ORS 1 A1+IDSTATUS(2) [ENSURE UNAVAIL SET
*KJL BRN XSET [PASS ON TO PROGRAM
*KPS ...S54
*KX2 ... LDCT 0 #77
*L48 ... ORS 0 A1+IDSTATUS+1(2)
*L9B ... ERS 0 A1+IDSTATUS+1(2)
*LBJ ... LDCT 5 #20
*LHW ANDX 5 A1+IDSTATUS(3)
*M3G BZE 5 S54C [J. UNLESS CLOSE DOWN SET
*MH6 S54D LDX 0 A1+IDSTATUS(2)
*N2Q SRC 0 1
*NGB BNG 0 S54A [J. IF CLOSED SET
*P22 NGNC 0 7
*PFL ANDS 0 A1+IDSTATUS(2)
*P^= LDN 0 1
*QDW ORS 0 A1+IDSTATUS(2) [SET CLOSED
*QYG S54A CALL 5 XFREE
*RD6 LDN 5 19
*RXQ S54X LDN 0 1
*SCB SBS 0 A1+IDSTATUS(3) [DECREMENT CLOSE DOWN COUNT
*SX2 ZS54X LDCT 0 #40
*TBL ANDX 0 A1+IDSTATUS(3)
*TW= BZE 0 XCCA [J. UNLESS INITIALISE SET
*W*W BRN SETV
*WTG S54C LDX 0 A1+IDSTATUS(2)
*X*6 ORX 7 GSIGN
*XSQ BRN S51Y [RELEASE BLOCKS SAVED FOR WARNING
*Y#B S54CI ANDX 7 BITS22LS
*YS2 LDX 3 2
*^?L SBX 3 7 [RESET CONDCB ADDR.
*^R= LDX 0 A1+IDSTATUS(2)
B2=W ANDN 0 6
B2QG LDN 5 23
B3=6 BNZ 0 SETT [J. IF CLOSING OR CRASH CLOSING
B3PQ S54B CALL 5 XFREE
B49B LDN 5 24
B4P2 BRN XCCA
B4WT ...S56
B54N ... LDCT 0 #77
B5=H ... ANDX 0 A1+IDSTATUS+1(2)
B5DB ... BZE 0 S56B
B5L9 ... LDCT 0 1
B5S4 ... SBS 0 A1+IDSTATUS+1(2)
B5^X ...S56B
B67W LDCT 0 #200
B6MG ANDX 0 A1+IDSTATUS+1(2)
B776 LDN 5 #400
B7LQ ANDX 5 A1+IDSTATUS(2)
B86B BZE 5 S56A [J. UNLESS CANCEL ATTACH SET
B8L2 S56Y BZE 0 NFREE [J. UNLESS CHANGE MODE SET
B95L S56X LDN 5 13
B9K= BRN XCCA
B=4W S56A BZE 0 XSET [J. UNLESS CHANGE MODE SET
B=JG ERS 0 A1+IDSTATUS+1(2)
B?46 LDX 0 A1+IDSTATUS(2)
B?HQ BNG 0 XSET [J. IF OPENING SET
B#3B NFREE CALL 5 XFREE
B#H2 NXTBL LDN 5 17
B*2L BRN XCCA
B*G= S57 LDN 1 #4000
B*^W S57X LDN 0 #2401
BBFG BRN S51X
BB^6 S58 LDN 1 #4000
BCDQ BRN S49X
BCYB S59 LDN 1 #200
BDD2 LDN 0 #2400
BDXL BRN S51X
BFC= S60 LDX 0 A1+IDSTATUS+1(2)
BFWW BPZ 0 S60A [J. UNLESS OUTPUT SENT SET
BGBG ANDX 0 XMSK1(1)
BGW6 BZE 0 S60B [J. IF OUTPUT SENT COUNT ZERO
BH3# ...S60A
BH8G ... LDX 0 A1+IDSTATUS+1(2)
BH*N ... ANDX 0 XMSK1(1)
BHGW ... BZE 0 XSET
BHN4 ... LDN 0 #1000
BHTB SBS 0 A1+IDSTATUS+1(2) [DECREMENT OUTPUT SENT COUNT
BJ*2 BRN XSET
BJSL S60B LDX 0 GSIGN
BK#= ERS 0 A1+IDSTATUS+1(2) [UNSET OUTPUT SENT
BKRW CALL 5 XFREE
BL?G LDN 5 17
BLR6 LDX 2 3
BM=Q ADX 2 7
BMQB SETT LDCT 0 #100
BN=2 ANDX 0 A1+IDSTATUS(2)
BNPL BZE 0 XCCA [J. UNLESS EOIO SET
BP9= ERS 0 A1+IDSTATUS(2)
BPNW LDCT 0 #20
BQ8G ANDX 0 A1+IDSTATUS(3)
BQN6 BNZ 0 XCCA [J. IF CLOSE DOWN SET
BR7Q LDN 0 1
BRMB SBS 0 A1+IDSTATUS(3) [DECREMENT EOIO COUNT
BS72 SETR LDN 0 0
BSLL LDN 6 #143 [INPUT END OF REMOTE OUTPUT
BT6= BRN SETW
BTKW ZRELE LDN 4 ZRELS(1) [RETURN ADDR FROM XCLOS SUBROUTINE
BW5G ORX 4 GSIGN
BWK6 LDCT 0 #20
BX4Q NGX 5 XMSK46(1)
BXJB ANDS 5 A1+IDSTATUS(3)
BY42 BRN RCLCL
BYHL ZRELS LDX 0 CACT
B^3= SMO FX2
B^GW ORS 0 CONREL
C22G [ LET CPAT(IN CDCIPB)CONTINUE
C2G6 COOR1 [WAIT FOR CPA TO RELEASE
C2^Q SMNCL
C3FB BRN NXTBL
C3^2 XCC3
C4DL ACROSS IPBCCC,3
C4Y= MENDAREA 50,K100IPBCCB
C5CW #END
^^^^ ...061222410010