{{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