{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: HARDIDF867)}}
====== HARDIDF867 ======
(George Source)
**Macros used:** [[george:macro:ALTLEN|ALTLEN]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CLOSE|CLOSE]], [[george:macro:COMBRKIN|COMBRKIN]], [[george:macro:COMERRX|COMERRX]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:FMOPG|FMOPG]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HUNT2|HUNT2]], [[george:macro:HUNT2OPT|HUNT2OPT]], [[george:macro:HUNTMISB|HUNTMISB]], [[george:macro:HUNTW|HUNTW]], [[george:macro:IDFOPEN|IDFOPEN]], [[george:macro:IDFWRITE|IDFWRITE]], [[george:macro:LONGCLEAR|LONGCLEAR]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREECELL|MFREECELL]], [[george:macro:MGETCELL|MGETCELL]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MSEARCH|MSEARCH]], [[george:macro:MXB|MXB]], [[george:macro:OUTNUM|OUTNUM]], [[george:macro:OUTPARAM|OUTPARAM]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:SPARANXT|SPARANXT]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TRACE|TRACE]]
22FL #SEG HARDIDF8 [G CONSTANTINIDES
22PD ...# COPYRIGHT INTERNATIONAL COMPUTERS 1982
22^= #OPT K0HARDIDF=0
23DW #LIS K0HARDIDF>K0ALLGEO>K0GREATGEO>K0COMMAND>K0IDF
23YG 8HHARDIDF8
24D6 # ENTRY POINTS
24XQ SEGENTRY K1HARDIDF,Z1HARDIDF
25CB MENDAREA 50,K100HARDIDF
25X2 [ERROR MESSAGES
26BL XMOPON +JRES
26W= XILLUN +ILLUN [ILLEGAL UNIT NO
27*W XILLINE +ILLINE [ILLEGAL LINE NO
27TG XELEVEN +ELEVEN [ELEVEN 7020 DEVICES ON THIS LINE
28*6 XIDFUN +IDFUN [NO UNITS
28SQ XADDPOLL +ADDPOLL
29#B XILLDEV +ILLDEV
29S2 XCONPROAT +CONPROAT [CONSOLE PROP ATTRIBUTED
2=?L XCONCLUS +CONCLUS [THIS DEVICE IS CLUSTER CONSOLE
2=R= XIDENT +IDEXISTS [7020 IDENTIFIER ALREADY EXISTS
2=YD ...#UNS ANSTOOMANY
2?5L ...XTOOMANY +JMAXPAR [TOOMANY PARAMETERS IE >24
2#PQ TABLE BRN NULL
2*9B BRN XMOP
2*P2 BRN XBULK
2B8L BRN SENT
2BN= SCMID HUNTMISB 1,IDF,ITERMID
2C7W BNG 1 (5)
2CMG EXIT 5 1
2J46 XMSEARCH [X2=ADD OF RECORD TO START SEARCH:X3=CELL PTR
2JHQ SBX 6 FX1
2K3B MSEARCH 2,3,4
2KH2 ADX 6 FX1
2L2L EXIT 6 0
2M^6 RECFIND
2NDQ HUNT2 2,FILE,FRRB
2NYB TXU 5 BRECNO+A1(2)
2PD2 BCS RECFIND
2PXL ADN 2 A1
2QC= EXIT 6 0
2Y=Q YREC BPZ 3 SAME
2YQB YREC1 SBX 5 FX1
2^=2 LDX 0 3
2^PL SRL 0 9
329= ANDN 0 #7777
32NW LDX 2 FX2
338G STO 0 ACOMMUNE3(2)
33N6 MXB 2
347Q ADX 5 FX1
34MB SAME ANDN 3 #777
3572 EXIT 5 0
35LL MFREEC [ROUTINE TO FREE CELL
366= SBX 5 FX1
36KW MFREECELL 2,3
375G ADX 5 FX1
37K6 EXIT 5 0
384Q THROW SBX 6 FX1 [THIS ROUTINE DISCARDS ASSOC & ATTRIB
38JB SMO 2
3942 LDX 5 BATT(3)
39HL BZE 5 TH4 [J.IF NO ATTRIBUTIONS
3=3= LDX 3 5 [OTHERWISE GO TO ATTRIBUTION CELL-
3=GW CALL 5 YREC [& SEE IF CONSOLE PROPERTY ATTRIBUT.
3?2G SMO 2
3?G6 LDX 0 BTYPE(3)
3?^Q BNZ 0 PROAT [ERROR:THIS DEVICE HAS CONS.PROP.ATT.
3#FB LDX 3 4 [BACK TO ORIGINATING CELL-X4 PRE-SET
3#^2 CALL 5 YREC1
3*DL ORX 6 GSIGN [X6 NEG USED AS SWITCH
3*Y= LDN 3 BATT(3) [TO FREE ATT.CELL
3BCW TH1 CALL 5 MFREEC [FREE CELL
3BXG BPZ 6 TH3 [X6 POS IF ALL DONE
3CC6 ANDX 6 BITS22LS
3CWQ SBN 3 BATT-BASS [TO FREE ASSOC. CELL
3DBB TH2 SMO 2
3DW2 LDX 5 0(3)
3F*L BNZ 5 TH1 [J.TO FREE ASSOC.CELL
3FT= TH3 ADX 6 FX1
3G#W EXIT 6 0
3GSG TH4 LDN 3 BASS(3) [NO ATT'S,BUT WHAT ABOUT ASSOCS
3H#6 BRN TH2
3HRQ TERAD #7420
3J?B #7430
3JR2 #7400
3K=L #7410
3KQ= #7440
3L9W #7450
3LPG #7460
3M96 #7470
3MNQ #7540
3N8B #7550
3NN2 #7560
3P7L #7570
3P8M ...[
3P?Q ...ZBRKINI COMBRKIN
3P#R ...[
3P*S ...[
3RKQ Z1HARDIDF
3RS2 ... IDFOPEN ZBRKINI
3SK2 MHUNTW 1,IDF,CONDATA
3T4L #SKI JSKI17<1$1
3TJ= LDX 4 A1(1) [UNIT NO FOR HW COMMAND
3W3W LDN 7 0 [POINTER TO CURRENT WD IN CONDATA BLK
3WHG LDX 3 BUNIT(2)
3X36 #SKI JSKI17
3XGQ LDXC 4 A1(1)
3Y2B BZE 3 YIDFUN [ERROR-NO UNITS
3YG2 CALL 5 SCMID
3Y^L BRN TMDOK
3^F= LDX 6 ALOGLEN(1)
3^YW BZE 6 TMDOK
42DG TRACE 6,YZLOGLN [YZQZTRACE
42Y6 LDX 3 BRECNO(2)
43CQ SETUPCORE 6,2,IDF,ITERMID
43XB CALL 5 SCMID
44C2 BRN (GEOERR)
44WL ADN 2 A1
45B= ADN 1 A1
45TW SMO 6
46*G MOVE 1 0
46T6 LDX 2 FX2
47#Q LDX 5 3
47SB CALL 6 RECFIND
48#2 TMDOK
48RL LDN 3 BUNIT [CELL PTR TO BASE OF UNIT CHAIN
49?= CALL 6 XMSEARCH [SEARCH FOR UNIT CELL:UNIT NO IN X4
49QW SMO FX2
4==G LDX 6 ACOMMUNE1
4=Q6 BZE 6 YILLUN [ERROR-ILLEGAL UNIT
4?9Q [UNIT EXISTS
4?PB LDX 6 BRECNO(2)
4#92 SMO FX2
4#NL STO 6 AWORK1 [STORE REC NO FOR UNIT CELL
4*8= SMO FX2
4*MW STO 3 AWORK2 [STORE CELL PTR FOR UNIT CELL
4QB6 NEXTLINE
4QTQ MHUNTW 1,IDF,CONDATA
4R*B ADN 7 1 [UPDATE X7
4RT2 SMO 7
4S#L LDX 4 A1(1) [PICK UP TYPE/LINE NO WORD
4SS= BNG 4 YIPEE [J.IF FINISHED
4T?W LDN 3 BLINE(3)
4TRG CALL 6 XMSEARCH
4W?6 SMO FX2
4WQQ LDX 6 ACOMMUNE1
4X=B BZE 6 YILLINE [ERROR-LINE NO ILLEGAL
4XQ2 [LINE EXISTS:CHAR 0 OF X4 CONTAINS NEW DEVICE TYPE
4Y9L SMO 2
4YP= LDX 6 BTYPE(3) [PICK UP OLD DEVICE TYPE/GEOG NO
4^8W SMO 2
4^NG LDX 0 BNUMB(3) [-VE IF MOPPED ON
5286 BPZ 0 XNMOPONA [J IF MOPPED OFF -OK
52MQ # IF UNIT MORRED ON THEN HW ONLY ALLOWED IF LINE WAS NULL
537B # OR ATTACHED TO A CONCEPTUAL
53M2 SMO 2
546L LDX 0 CONTCEP(3)
54L= BNZ 0 XMOPONA [J IF CONCEPTUAL-OK
555W LDN 1 0
55KG LDCH 0 6(1) [CHECK OLD TYPE
5656 BNZ 0 XERA [ERROR-NOT NXLL
56JQ XMOPONA
574B LDEX 5 6 [GEOG NO IN X5
57J2 FMOPG 1,5,MOP [FIND AMOR
583L BNG 1 XGUN [MUST EXIST
58H= STO 1 5 [SAVE PTR TO AMOR
592W HUNT2OPT 1,AMXOR,ALINES [MUST EXIST
59GG BNG 1 XGUN
5=26 SMO 2
5=FQ LDX 0 BNO(3) [LINE NO
5=^B SLL 0 2
5?F2 ADS 0 1
5?YL LDCT 0 #530
5#D= ANDX 0 A1+FOURTHWD(1)
5#XW BNZ 0 XNMOPONA [J IF IMOPQ AWAKE OR ATTACHED
5*CG LDCT 0 #424
5*X6 ORS 0 A1+FOURTHWD(1)
5BBQ STO 5 1 [AMOP PTR
5BWB LDN 0 1
5CB2 SMO IMOPADDR(1) [REQUEST CORE
5CTL ADS 0 IWAKE
5D*= STO 2 5 [SAVE X2
5DSW LONGCLEAR IMOPADDR(1),#125,XNMOPON
5F#G XNMOPON
5FS6 LDX 2 5
5G?Q XNMOPONA
5GRB LDN 1 0 [TO USE X1 AS A CHARACTER MODIFIER
5H?2 LDCH 5 4(1) [CHAR 3 OF X5=NEW DEVICE TYPE
5HQL SMO 5 [BRANCHING IS DONE LIKE THIS SO NEW
5J== BRN TABLE [DEVICE TYPES MAY BE EASILY ADDED
5JPW [
5K9G [
5KP6 [
5L8Q NULL [THE NEW DEVICE IS THE "NULL" DEVICE
5LNB LDN 0 #7777
5M82 SMO 2
5MML ANDS 0 BTYPE(3) [CLEAR OUT OLD DEVICE TYPE TO "NULL"
5N7= LDX 4 BRECNO(2)
5NLW SLL 4 9
5P6G ORX 4 3 [PTR TO LINE CELL IN X4
5PL6 SMO FX2
5Q5Q STO 4 AWORK4 [KEEP FOR POSSIBLE ERROR OR 7020 PATH
5QKB LDCH 0 6(1) [X6 & X1 SET UP ABOVE-GET DEVICE TYPE
5R52 SBN 0 2
5RJL BZE 0 Y7020 [J.IF 7020
5S4= CALL 6 THROW [OTHERWISE GET RID OF ASS & ATT
5SHW BRN UNIREC [& THEN ALL DONE
5T3G Y7020 CALL 6 THROW
5TH6 SBN 3 BASS
5W2Q LDCT 5 #777
5WGB SMO 2
5X22 ANDS 5 BNUMB(3) [ZEROIZE NO.OF 7020-KEEP REST OF WORD
5XFL LDN 3 BLINE(3) [PTR TO 7020 CHAIN POINTER
5^D6 NELL SMO 2
5^XQ LDX 3 0(3) [PICK UP 7020 POINTER
62CB BZE 3 SCANT [J.TO SCAN IDF/TERMID BLOCK
62X2 LDX 4 3 [KEEP FOR LATER USE IN"THROW"
63BL CALL 5 YREC [OTHERWISE FIND 7020 CELL
63W= LDCT 0 #40
64*W SMO 2
64TG ANDX 0 BTYPE+1(3) [GET "THIS IS CLUSTER CONSOLE"BIT
65*6 BNZ 0 NCLUS [AND ERROR IF THIS IS A CLUSTER CONS.
65SQ # NOW SCAN IDF/ITERMID BLOCK & MARK ENTRIES TO BE REMOVED
66#B SMO 2
66S2 LDXC 0 BTYPE+2(3) [TO TEST B0
67?L BCC X1 [J.IF B0 NOT SET-SO NOT LAST 7020 CEL
67R= SMO 2
68=W LDX 6 BNO(3) [FOR IDENTIFIER
68QG ANDX 6 HALFTOP
69=6 DCH 0 6 [STORE LINE NO IN BOTTOM 6 BITS
69PQ CALL 5 MISCH [FIND IDF/TERMID BLOCK
6=9B BRN TEROR [BLOCK SHOULD BE PRESENT
6=P2 X3 LDX 0 A1+1(1)
6?8L BZE 0 TEROR [GEORGE ERROR IF END OF BLOCK
6?N= ERX 0 6
6#7W BZE 0 X2 [J.IF MATCH FOUND
6#MG BDX 1 X3 [INCREMENT X1 & LOOK AT NEXT WD.PAIR
6*76 X2 LDN 0 #4000
6*LQ ORS 0 A1+1(1) [MARK "TO BE REMOVED" IN TERMID BLK.
6B6B X1 CALL 6 THROW
6BL2 SMO FX2
6C5L LDX 3 AWORK4 [PICK UP LINE CELL POINTER
6CK= CALL 5 YREC1 [FIND LINE CELL
6D4W LDN 3 BLINE(3)
6DJG CALL 5 MFREEC [FREE 7020 CELL
6F46 BRN NELL [J.FOR NEXT 7020 CELL IF ANY
6FHQ MISCH HUNTW 1,IDF,ITERMID [HUNT FOR IDF/ITERMID
6G3B BNG 1 M1
6GH2 EXIT 5 1
6H2L M1 EXIT 5 0
6HG= # SCAN IDF/ITERMID BLOCK & REMOVE ENTRIES WITH B12=1 IN FIRST WORD
6H^W SCANT CALL 5 MISCH
6JFG BRN TEROR [GEOERR IF BLOCK NOT FOUND
6J^6 LDX 5 A1(1) [PICK UP COUNT OF WORDS USED
6KDQ SBN 5 3 [COUNT NOW CAN BE USED TO CREATE-
6KYB SMO 5 [POINTERS IN X2 & X3 TO LAST WORD-
6LD2 LDN 2 A1(1) [PAIR IN BLOCK
6LXL LDX 3 2
6MC= ADN 5 1 [ADJUST COUNT & CREATE-
6MWW SRL 5 1 [A COUNT OF WORD PAIRS
6NBG SC2 LDX 0 0(3)
6NW6 ANDN 0 #4000
6P*Q BNZ 0 SC1 [J.IF B12 IS SET
6PTB SC4 SBN 3 2 [ADJUST X3 TO INVESTIGATE NEXT WORD-
6Q*2 BCT 5 SC2 [PAIR SO LONG AS COUNT IS NOT ZERO
6QSL LDX 5 A1(1) [SEE IF LENGTH OF BLOCK MUST BE-
6R#= SBN 5 2 [CHANGED OR BLOCK FREED
6RRW BNZ 5 SC3 [J.TO DO POSS.ALTLEN IF BLOCK IN USE
6S?G FREECORE 1 [OTHERWISE FREE IT
6SR6 BRN UNIREC
6T=Q SC3 LDX 5 ALOGLEN(1)
6TQB SBX 5 A1(1)
6W=2 SBN 5 16
6WPL BNZ 5 UNIREC [J.IF LESS THAN 16 WORDS TO SPARE
6X9= LDX 5 A1(1)
6XNW LDX 6 1
6Y8G ALTLEN 6,5 [MAKE IDF/TERMID SMALLER
6YN6 BRN UNIREC
6^7Q SC1 MOVE 2 2 [MOVE UP ENTRY TO POSITION X3 POINTS
6^MB STOZ 0(2) [TO:NO HARM DONE IF X2=X3:THEN ZERO-
7272 LDN 0 2 [IZE LAST RELEVANT WORD IN BLOCK
72LL SBS 0 A1(1) [ADJUST COUNT OF NO OF WORDS USED
736= SBS 0 2 [ADJUST X2 TO POINT TO LAST ENTRY
73KW BRN SC4 [J.TO RESUME SCAN
745G [
74K6 [
7D#6 SENT [THE NEW DEVICE IS SENTINEL
7DRQ XMOP [THE NEW DEVICE IS MOP TERMINAL
7F?B LDCT 0 #770
7FR2 ANDX 6 0 [MASK OUT OLD DEVICE TYPE
7G=L BNZ 6 YILLDEV [ERROR-DEVICE NOT NULL
7GQ= ANDX 4 0 [MASK OUT NEW DEVICE TYPE
7H9W SMO 2
7HPG ORS 4 BTYPE(3) [STORE NEW DEVICE TYPE
7J96 UNIREC [RESTORE POINTERS TO UNIT CELL SO
7JNQ [THAT NEXT LINE MAY BE CONSIDERED
7K8B LDX 2 FX2
7KN2 LDX 5 AWORK1(2) [REC NO FOR UNIT
7L7L LDX 3 AWORK2(2) [CELL PTR FOR UNIT
7LM= CALL 6 RECFIND
7M6W BRN NEXTLINE
7MLG [
7N66 [
7NKQ [
7QJ= XBULK [NEW DEVICE IS 7020
7R3W LDX 0 BRECNO(2) [LINE RECORD NO
7RHG SLL 0 9
7S36 ORX 0 3 [MAKE IDF-TYPE POINTER TO LINE CELL
7SGQ SMO FX2
7T2B STO 0 AWORK3 [AND KEEP IT
7TG2 LDEX 0 6 [PICK OUT GEOG.UNIT NO
7T^L SLL 0 6
7WF= DCH 4 0 [AND PUT IN LINE NO
7WYW SMO FX2
7XDG STO 0 AWORK4 [KEEP GEOG.NO & LINE NO
7XY6 LDCT 0 #770
7YCQ ANDX 6 0 [OLD DEVICE TYPE
7YXB LDCT 5 #020
7^C2 MHUNTW 1,IDF,CONDATA
7^WL BZE 6 MORE [J.IF NULL-SO NO 7020 ALREADY DEFINED
82B= SBX 6 5
82TW BNZ 6 YILLDEV [J.IF NON-7020 DEVICE
83*G ANDN 4 #7777 [MASK OUT LINE NO
83T6 SMO 2
84#Q LDX 5 BNUMB(3) [KEEP NO OF 7020
84SB SMO FX2
85#2 STO 4 ACOMMUNE6 [KEEP X4 IN CASE OF ERROR
85RL SMO 7
86?= LDX 4 A1+1(1) [PICK UP IDENTIFIER/POLLING ADD
86QW LDN 3 BLINE(3)
87=G CALL 6 XMSEARCH
87Q6 SMO FX2
889Q LDX 6 ACOMMUNE1
88PB BNZ 6 YADDPOLL [ERROR-POLLING ADD ALREADY DEFINED
8992 ANDN 5 #7777
89NL SBN 5 11
8=8= BZE 5 YELEVEN [ERROR-11 7020 DEVICES ALREADY
8=MW LDN 0 1 [CHECK THAT TX+16 IF X>12,TX-16
8?7G ERX 4 0 [IS NOT ALREDY DEFINED
8?M6 LDX 2 FX2
8#6Q LDX 5 AWORK3(2)
8#LB LDEX 3 5 [DISTANCE FROM A1
8*62 SRL 5 9
8*KL CALL 6 RECFIND [FIND LINE CELL AGAIN
8B5= LDN 3 BLINE(3) [SEARCH BY IDENT/POLLING ADDR
8BJW CALL 6 XMSEARCH
8C4G SMO FX2
8CJ6 LDX 6 ACOMMUNE1
8D3Q LDN 0 1
8DHB ERX 4 0
8F32 BNZ 6 YADDPOLL [J IF ALREADY DEFINED
8FGL BRN NA
8G2= MORE [NO 7020 ALREADY
8GFW SMO 2
8G^G ORS 5 BTYPE(3) [STORE IN 7020 DEVICE TYPE
8HF6 LDN 3 BLINE(3)
8HYQ SMO 7
8JDB LDX 4 A1+1(1)
8JY2 # NOW SCAN IDF/ITERMID BLOCK TO MAKE SURE IDENTIFIER IS UNIQUE
8KCL NA CALL 5 MISCH [FIND IDF/TERMID BLOCK
8KX= BRN MOR [J.IF NONE EXISTS
8LBW XB4 LDX 0 A1+1(1)
8LWG BZE 0 MOR [J.IF END OF BLOCK
8MB6 ERX 0 4
8MTQ ANDX 0 HALFTOP
8N*B BZE 0 YIDENT [ERROR IDENTIFIER ALREADY EXISTS
8NT2 BDX 1 XB4 [UPDATE X1 & J.FOR NEXT ENTRY
9XX2 MOR LDN 5 1 [INTERFACE COUNT IN X5
9YBL ZOOP ADN 7 1 [UPDATE X7
9YW= MHUNTW 1,IDF,CONDATA
9^*W SMO 7
9^TG LDX 6 A1+1(1) [PICK UP INTERFACE DATA
=2*6 BZE 6 NOMOR [J.IF NO PERIPHERAL ON THIS INTERFACE
=2SQ #SKI JSKI17
=3#B (
=3S2 LDX 0 A1(1)
=4?L BPZ 0 NSPL
=4R= LDCT 0 #130
=5=W ORX 5 0
=5QG LDN 0 5
=6=6 SBX 0 6
=6PQ BNZ 0 NSPL
=79B LDCT 0 #10
=7P2 ERX 5 0
=88L NSPL
=8N= )
=97W MGETCELL 2,3 [GET CELL FOR INTERFACE
=9MG SMO 2
==76 STO 4 BNO(3) [STO IDENTIFIER/POLLING ADDRESS
==LQ LDCT 0 #100
=?6B #SKI JSKI17
=?L2 (
=#5L ORX 0 5
=#K= ANDX 0 HALFTOP
=*4W LDEX 5 5
=*JG )
=B46 SMO 2
=BHQ STO 0 BTYPE+1(3) [MARK THIS CELL AS 7020 CELL
=C3B SMO FX2
=CH2 LDX 0 AWORK4
=D2L SMO 2
=DG= STO 0 BTYPE+2(3)
=D^W LDX 0 6
=FFG SRC 6 6
=F^6 ORX 6 5
=GDQ SMO 2
=GYB STO 6 BTYPE(3) [STORE DEVICE TYPE/INTERFACE NO
=HD2 SBN 0 3
=HXL BNZ 0 NOMOR [J.IF NOT CONSOLE
=JC= MHUNTW 1,IDF,CONDATA [OTHERWISE FIND OTHER HALF OF CONSOLE
=JWW LDX 0 5
=KBG NXT ADN 0 1
=KW6 ADN 1 1
=L*Q SMO 7
=LTB LDX 6 A1+1(1)
=M*2 SBN 6 3
=MSL BNZ 6 NXT [J.IF NOT CONSOLE
=N#= LDX 6 0
=NRW ADX 6 5
=P?G ANDN 6 1
=PR6 BZE 6 NXT [J. IF THIS CONSOLE ON WRONG INTERFAC
=Q=Q SMO 2
=QQB ORS 0 BTYPE+1(3) [STORE AWAY CONSOLE DATA
=R=2 SMO 7
=RPL STOZ A1+1(1) [CLEAR CONDATA WORD-NOT NEEDED AGAIN
=TN6 NOMOR ADN 5 1 [UPDATE X5
=W7Q LDN 0 7
=WMB SBX 0 5 [J.FOR NEXT INTERFACE
=X72 BNZ 0 ZOOP
=XLL LDCT 0 #400
=Y6= SMO 2
=YKW ORS 0 BTYPE+2(3)
=^5G ADN 7 1
=^K6 LDX 2 FX2
?24Q LDX 3 AWORK3(2)
?2JB ANDN 3 #777
?342 LDX 5 AWORK3(2)
?3HL SRL 5 9
?43= CALL 6 RECFIND
?4GW LDN 6 1
?52G ADX 3 2
?5G6 ADS 6 BNUMB(3) [UPDATE NO OF 7020 DEVICES
?5^Q LDX 6 BNO(3)
?6FB DSA 6 4 [MAKE FIRST WD OF PAIR FOR TERMID BLK
?6^2 LDX 6 BTYPE(3)
?7DL ANDN 6 #777
?7Y= FMOPG 3,6,MPX [FIND POINTER TO AMOP(MPX & UPX ONLY)
?8CW BNG 3 TEROR [GEOERR IF NONE FOUND
?8XG CALL 5 MISCH [FIND IDF/TERMID BLOCK
?9C6 BRN XB10 [J.TO CREATE ONE IF NONE FOUND
?9WQ LDX 0 ALOGLEN(1) [SEE IF THERE IS ENOUGH ROOM IN BLOCK
?=BB SBX 0 A1(1)
?=W2 SBN 0 2
??*L BPZ 0 XB11 [J IF THERE IS
??T= LDX 5 ALOGLEN(1) [OTHERWISE INCREASE LENGHT BY 4 WORDS
?##W ADN 5 4
?#SG LDX 6 1
?*#6 ALTLEN 6,5 [ENLARGE IDF/ITERMID
?*RQ CALL 5 MISCH
?B?B NULL [MUST EXIST
?BR2 XB11 LDN 0 2
?C=L ADS 0 A1(1) [UPDATE COUNT OF WORDS USED
?CQ= LDX 5 A1(1)
?D9W SBN 5 3 [SO X5 CAN BE USED TO CALCULATE PTR-
?DPG SMO 5 [TO NEW POSITION OF NEW WORD PAIR
?F96 LDN 1 A1(1) [X1 NOW POINTS TO POSITION FOR WD.PR.
?FNQ STO 4 0(1) [STORE FIRST WD:IDENT/LINE NO
?G8B STO 3 1(1) [STORE SECOND WD:AMOP PTR
?GN2 STOZ 2(1) [ZEROIZE LAST WORD
?H7L BRN UNIREC [J.FOR NEXT IDF/CONDATA BLOCK ENTRY
?HM= XB10 SETNCORE 4,1,IDF,ITERMID [CREATE IDF/ITERMID BLOCK
?J6W LDN 0 2
?JLG STO 0 A1(1) [SETUP A COUNT OF WORDS USED
?K66 BRN XB11
?KKQ YIPEE [WRITE UPDATED RECORDS TO IDF
?L5B CALL 5 SCMID
?LK2 BRN NOOLD
?M4L FREECORE 1
?MJ= NOOLD CALL 5 MISCH
?N3W BRN TMDFN
?NHG LDX 2 BMISC+1
?P36 CHAIN 1,2
?PGQ TRACE ALOGLEN(1),ZZLOGLN2 [YZQZTRACE
?Q2B TMDFN
?QG2 IDFWRITE
?Q^L CLOSE
?RF= ENDCOM
#8M6 YILLUN [ILLEGAL UNIT NO
#96Q SMO FX1
#9LB LDX 3 XILLUN
#=62 ONUMA ANDN 4 #7777
#=KL ONUM OUTNUM 4,0
#?5= YERRX CLOSE
#?JW COMERRX 3
##4G [ [ILLEGAL LINE NO
##J6 YILLINE
#*3Q SMO FX1
#*HB LDX 3 XILLINE
#B32 BRN ONUMA
#BGL [
#C2= YELEVEN [11 7020 DEVICES ALREADY
#CFW SMO FX2
#C^G LDX 4 ACOMMUNE6
#DF6 SMO FX1
#DYQ LDX 3 XELEVEN
#FDB BRN ONUM
#FY2 [
#GCL YIDFUN
#GX= SMO FX1
#HBW LDX 3 XIDFUN
#HWG BRN YERRX
#JB6 [
#JTQ YILLDEV [DEVICE ALREADY DEFINED ON THIS LINE
#K*B SMO FX1
#KT2 LDX 3 XILLDEV
#L#L BRN ONUMA
#LBJ ...#UNS ANSTOOMANY
#LDG ...(
#LGD ...YTOOMANY
#LJB ... SMO FX1
#LL# ... LDX 3 XTOOMANY
#LN= ... BRN YERRX
#LQ8 ...)
#LS= [
#M?W YADDPOLL
#MRG ANDN 4 #7777
#N?6 LDN 7 0 [MARKER 1ST TIME ROUND
#NQQ LDX 1 FX1
#P=B NXTER16
#PQ2 LDN 3 12
#Q9L NXTER SMO 3 [FIND TERMINAL NO
#QP= TXU 4 TERAD-1(1)
#R8W BCC TERF
#RNG BCT 3 NXTER
#S86 BNZ 7 TEROR [NO SUCH POLLING ADDRESS
#SMQ ADN 7 1 [2ND TIME ROUND
#T7B SBN 4 1 [T17-T28
#TM2 BRN NXTER16
#W6L TEROR
#WL= GEOERR 1,TERMINAL [POLLING ADD SHOULD EXIST
#X5W TERF BZE 7 T112 [T1-T12
#XKG ADN 3 16 [T17-T28
#Y56 T112 LDX 4 3
#YJQ LDX 3 XADDPOLL(1)
#^4B BRN ONUM
#^J2 [
*23L PROAT SMO FX1
*2H= LDX 7 XCONPROAT [CLUSTER PROP.ATTRIBUTED MESSAGE
*32W PRO SMO FX2
*3GG LDX 3 AWORK4 [LINE CELL POINTER
*426 CALL 5 YREC1
*4FQ SMO 2
*4^B LDX 4 BNO(3) [LINE NO
*5F2 LDX 3 7 [MONFILE POINTER INTO X3
*5YL BRN ONUMA [J.TO OUTPUT MESSAGE
*6D= [
*6XW XERA LDN 3 1 [GET GEOGNO
*7CG LDN 4 0
*7X6 SPARANXT #36,4,3
*84# ...#UNS ANSTOOMANY
*89G ... TESTREP2 TOOMANY,YTOOMANY
*8BQ LDX 3 XMOPON(1)
*8WB BRN YERRX [NOT IN REQUIRED STATE
*9B2 XGUN GEOERR 1,UNIT MIS
*?#G NCLUS CALL 5 MISCH [NOW UNSET ANY B12 IN ITERMID BLOCK
*?S6 BRN TEROR
*#?Q NGN 5 #4001 [MAKE MASK #777737777 TO UNSET B12
*#RB NCL2 LDX 0 A1+1(1)
**?2 BZE 0 NCL1 [J.IF END OF BLOCK
**QL ANDS 5 A1+1(1) [MAKE SURE B12 IS UNSET
*B== BDX 1 NCL2
*BPW NCL1 SMO FX1
*C9G LDX 7 XCONCLUS [THIS IS CLUSTER CONSOLE MESSAGE
*CP6 BRN PRO
*K52 YIDENT
*KJL SMO FX2
*L4= STO 4 AWORK3
*LHW LDN 5 2
*M3G OUTPARAM 5,AWORK3
*MH6 LDX 3 XIDENT(1)
*N2Q BRN YERRX
*NGB #END
*P22
^^^^ ...667334330001