{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: CONMXC8)}}
====== CONMXC8 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ALTLENG|ALTLENG]], [[george:macro:BXE|BXE]], [[george:macro:BXGE|BXGE]], [[george:macro:BXL|BXL]], [[george:macro:BXU|BXU]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CHECKB|CHECKB]], [[george:macro:CHECKEXT|CHECKEXT]], [[george:macro:CLEAR|CLEAR]], [[george:macro:COOR1X|COOR1X]], [[george:macro:COOR3|COOR3]], [[george:macro:DCA|DCA]], [[george:macro:DLCA|DLCA]], [[george:macro:FADDRESS|FADDRESS]], [[george:macro:FINDCORE|FINDCORE]], [[george:macro:FINDLCA|FINDLCA]], [[george:macro:FOUTMOVE|FOUTMOVE]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETCOREN|GETCOREN]], [[george:macro:GLPERI|GLPERI]], [[george:macro:HUNT2B|HUNT2B]], [[george:macro:HUNTMISB|HUNTMISB]], [[george:macro:ILLEGALX|ILLEGALX]], [[george:macro:JLBUSY|JLBUSY]], [[george:macro:JLLD|JLLD]], [[george:macro:JLSBUSY|JLSBUSY]], [[george:macro:JLUNBUSY|JLUNBUSY]], [[george:macro:LINK|LINK]], [[george:macro:LINKSET|LINKSET]], [[george:macro:LOCKCA|LOCKCA]], [[george:macro:MACCS|MACCS]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAME|NAME]], [[george:macro:OLPFIN1|OLPFIN1]], [[george:macro:PMODES|PMODES]], [[george:macro:RELOFP|RELOFP]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:TICKLE|TICKLE]], [[george:macro:TOPCA1|TOPCA1]], [[george:macro:TRACE|TRACE]], [[george:macro:UNPLUG|UNPLUG]], [[george:macro:UP|UP]]
22FL #SEG CONMXC [JOHN BAILEY.
22PD #OPT K6CONMXC=700
22^= ...#OPT K0CONMXC=0
2394 ...#LIS K0CONMXC>K0CONMX>K0MULTIPLX>K0ALLGEO
23DW 8HCONMXC80
23YG #
24D6 #
24XQ # THIS SEGMENT MONITORS AND SERVICES THE PERI INSTRUCTIONS
25CB # ISSUED BY THE OBJECT PROGRAM TO A CONCEPTUAL MPX OR UPX
25X2 # THE FIRST PERI MUST HAVE MODE #4000 TO ESTABLISH AN INTERRUPT
26BL # FLAG AREA FOR THE DEVICE (SERVICED BY CONMXA), CONMXC CHECKS
26W= # SUBSEQUENT PERIS AND
27*W # 1.REPERIES THE PERIS TO THE ATTACHED LINES TO EXECUTIVE
27TG # USING THE CONTROL AREA IN THE AMOP ACTIVITY BLOCK ASSOCIATED
28*6 # WITH THE PARTICULAR LINE INVOLVED.IN THE CORRESPONDING ENTRANT
28SQ # IN CONLCB BLOCK THE CONTENT OF ADDMOP AND BPTR IS NOT EQUAL
29#B # ZERO.INTERRUPT FLAGS ON ATTACHED LINES FOR THE OBJECT PROGRAM
29S2 # ARE RAISED AUTONOMOUSLY FROM THE AMOP WITHOUT ENTERING EITHER
2=?L # 2.PERIS TO LINES WHICH DO NOT EXIST ON THE CONCEPTUAL MPX,BUT
2=R= # WHOSE EXISTENCE IS POSSIBLE(LINE NO LESS THAN 64) ARE SERVICED
2?=W # BY THE SEGMENT AS NON IMPLEMENTED PERIS
2?QG #
2#=6 # 3.ON RECEIVING A MODE #1000 PERI,THE CONCEPTUAL IS DEEMED TO
2#PQ # HAVE BEEN RELEASED AND THE LINE CONTROL BLOCK IS FREED
2*9B #
2*P2 # 4.ON RECEIVING PERIS TO LINE ZERO AND NON ATTACHED LINES SEGMENT
2B8L # JUMPS ACROSS TO K1CONMXB
2BN= #
2C7W #
2CMG #
2D76 SEGENTRY K1CONMXC,X1CONMXC
2D## ...#SKI JSKI14
2DFG ... SEGENTRY K92CONMXC,X92CONMXC
2DLQ #
2F6B #
2FL2 #
2G5L #
2GK= #DEF ZLEN=INTRECLEN+INTTIME-INTENT
2H4W #
2HJG #
2J46 #
2JHQ #
2K3B #SKI BALROG<1$1
2KH2 (
2L2L ZAFW +AFW1
2LG= +AFW2
2L^W +AFW3
2MFG +AFW4
2M^6 )
2NDQ #
2NYB RMASK #60077777
2PD2 RECCON +CONRECLEN
2PXL PJYCOLI +JYCOLI [CONCEPTUAL LINE NO.ILLEGAL
2QC= PJYNOCA +JYNOCA [CONTROL AREA OUT OF RESERVATIONS
2QWW PJYRESVIOL +JYRESVIOL [RESERVATION VIOLATION
2RBG PJYCOUNT +JYCOUNT [COUNT OUT RANGE
2RW6 PJYMODE +JYMODE [MODE IN ERROR
2S*Q PAIR1 LINK CONMXC,1 [ENTRY POINT FOR ILLEGAL ROUTINES
2STB #
2T*2 SUFR STO 0 ACOMMUNE9(2)
2TSL LDX 2 APETADDR(2)
2W#= FADDRESS 2,1,HLOCK2
2WRW LDX 2 FX2
2X?G LDX 0 ACOMMUNE9(2)
2XR6 EXIT 0 0
2Y=Q #
2YQB # SUBROUTINE NAFLC FINDS THE CORRESPONDING FLAGCOUNT IN OLPA,PUTS IT
2^=2 # IN X4 AND IN X3 IS PUT THE CHARACTER/WORD MODIFIER
2^PL #
329= #
32NW NAFLC LDX 3 AWORK3(2) [CONCEPTUAL LINE NO.
338G SRC 3 2
33N6 SMO 2
347Q LDCH 4 FLAGCT(3)
34MB EXIT 0 0
3572 #
35LL #
366= # SUBROUTINE NFLWR CREATES THE PATTERN FOR SETTING/UNSETTING THE
36KW # FLAG IN FLAG AREA IN X4 AND THE WORD MODIFIER IN X3
375G #
37K6 NFLWR LDX 3 AWORK3(2) [LINE NO.
384Q BNZ 3 REGO
38JB LDCT 4 #200
3942 EXIT 0 0
39HL REGO SRC 3 4
3=3= LDCH 5 3
3=GW ANDX 3 HALFTOP
3?2G SLC 3 4
3?G6 LDCT 4 #400
3?^Q SRL 4 0(3) [CREATE THE PATTERN
3#FB LDX 3 5 [LOAD THE WORD MODIFIER
3#^2 EXIT 0 0
3*DL #
3*Y= #
3BCW #
3BXG # SUBROUTINE SETS FLAGS.THE NUMBER OF FLAGS,BY WHICH IS THE FLAGCOUNT
3CC6 # TO BE INCREASED,IS EXPECTED IN X5
3CWQ SUB3 STO 0 AWORK1(2)
3DBB CALL 0 NAFLC
3DW2 ADX 4 5
3F*L SMO 2
3FT= DCH 4 FLAGCT(3)
3G#W SBX 4 5
3GSG BZE 4 MFNOS
3H#6 ZORKA LDX 0 AWORK1(2)
3HRQ EXIT 0 0
3J?B MFNOS CALL 0 NFLWR
3JR2 LDX 1 CFLAG(2)
3K=L ADX 1 3
3KQ= CALL 0 SUFR
3L9W ORS 4 0(1)
3LPG LDX 4 CMEMBER(2) [PROGRAM MEMBER NUMBER
3M96 TICKLE JOBNO(2),4
3MNQ BRN ZORKA
3N8B #
3NN2 # THIS SUBROUTINE CHECKS WHETHER 22AM OR 15 AM
3P7L RMODE LDX 7 APETADDR(2)
3PM= LDX 2 EVENT1(2)
3Q6W PMODES 2,7
3QLG ANDN 2 #10
3R66 BNZ 2 REXMO
3RKQ LDX 1 FX1
3S5B ANDX 5 RMASK(1)
3SK2 REXMO LDX 2 FX2
3T4L EXIT 0 0
3TJ= #
3W3W # SUBROUTINE CHECKS RESV RESV.VIOLATION AND CALCULATES
3WHG # GE0,ADDRESS OF REPLY WORD FO- NULL LINES AND LINE ZERO ROUTINE
3X36 SUB5 CHECKB 5,,RESV3,APETADDR(2),,RGER1
3XGQ EXIT 4 0
3Y2B # FOR THIS SUBROUTINE ONE ASSUMES HLOCKN IN X1 AND THE ADDRESS TO BE
3YG2 # CONVERTED IN X5 (N=1,2...N )
3Y^L #
3^F= SUB6 ADX 1 APETADDR(2)
3^YW FADDRESS 1,5
42DG EXIT 4 0
42Y6 #
43CQ SUB7 LDX 4 6
43XB ANDN 4 2
44C2 BZE 4 RDOP
44WL CALL 0 NAFLC
45B= BZE 4 RDOP
45TW LDN 4 0
46*G SMO 2
46T6 DCH 4 FLAGCT(3)
47#Q CALL 0 NFLWR
47SB LDX 1 CFLAG(2)
48#2 ADX 1 3 [CLEAR THE BIT IN FLAGWORD
48RL CALL 0 SUFR
49?= ERS 4 0(1)
49QW RDOP EXIT 7 0
4==G # THIS SUBROUTINE MOVES NUMBER OF WORDS DEFINED IN X7 FROM AREA DEFINED
4=Q6 # IN X4(RELATIVE TO OBJECT PROG.) TO AREA DEFINED IN X5 (IN GEORGE)
4?9Q SUB9 SMO APETADDR(2)
4?PB LDN 1 HLOCK1
4#92 STO 0 ACOMMUNE9(2)
4#NL FOUTMOVE 1,4,5,7
4*8= LDX 0 ACOMMUNE9(2)
4*MW EXIT 0 0
4B7G #
4BM6 SREWO SLC 6 1 [SET EITHER B4 AND B5,OR B4 ONLY
4C6Q RSEW BNG 6 RMAJ
4CLB LDCT 4 #30
4D62 EXIT 0 0
4DKL RMAJ LDCT 4 #20
4F5= EXIT 0 0
4FJW #
4G4G OUTAC LDX 2 FX2
4GJ6 MACCS ,APETADDR(2),3
4H3Q LDCT 0 #400
4HHB STO 0 9(3)
4J32 BRN MOLFI
4JGL OUTRE LDX 2 FX2
4K2= MACCS ,APETADDR(2),3
4KFW STOZ 9(3)
4K^G MOLFI
4LF6 #SKI K6CONMX>99-99
4LYQ TRACE 9(3),WOKEN UP
4MDB LDX 1 FX1
4MY2 OLPFIN1 PAIR1(1)
4NCL #
4NX= #
4PBW NOLIL LDX 5 PJYCOLI(1)
4PWG BRN MCURD
4QB6 RESV2 LDX 1 FX1
4QTQ LDX 5 PJYNOCA(1)
4R*B BRN MCURD
4RT2 RESV3 LDX 1 FX1
4S#L LDX 5 PJYRESVIOL(1)
4SS= BRN MCURD
4T?W MCOWR LDX 1 FX1
4TRG LDX 5 PJYCOUNT(1)
4W?6 BRN MCURD
4WQQ MODIL LDX 5 PJYMODE(1)
4X=B MCURD LDX 2 FX2
4XQ2 MACCS ,APETADDR(2),3
4Y9L STOZ 9(3)
4YP= TOPCA1 PAIR1(1)
4^8W UNPLUG
4^NG ILLEGALX 5
4^P2 ...#SKI JSKI14
4^PG ...(
4^Q2 ...RCHN LDX 2 FX1
4^QG ... SBN 2 A1
4^R2 ... LDX 1 ATYPE(2)
4^RG ... BNZ 1 ZNNN
4^S2 ... LDX 1 BPTR(2)
4^SG ... BZE 1 ZNNN
4^T2 ... SMO FPTR(2)
4^TG ... STO 1 BPTR
4^W2 ... LDX 1 FPTR(2)
4^WG ... SMO BPTR(2)
4^X2 ... STO 1 FPTR
4^XG ... STOZ BPTR(2)
4^Y2 ... STO 2 FPTR(2)
4^YG ...ZNNN LDX 1 FX1
4^^2 ... LDX 2 FX2
4^^G ... EXIT 0 0
5222 ...RMV LDEX 3 4
522G ... BZE 3 ZEMV
5232 ... SMO 3
523G ...NMV MOVE 1 0
5242 ... ADX 1 3
524G ... ADX 2 3
5252 ... SBX 4 3
525G ...ZEMV LDN 3 512
5262 ... BNZ 4 NMV
526G ... EXIT 0 0
5272 ...)
5286 # [ENTRY FOR ALL SUBSEQUENT PERIS.
52MQ X1CONMXC
537B #
53M2 # IN EVENT 2 IN OLPA IS THE ADDRESS OF CA RELATIVE TO OP DATUM
546L # IN EVENT 3 IN OLPA IS THE LINE NO.
54L= # IN APETADDR IN OLPA IS THE PCA ADDRESS
54RD ...#SKI JSKI14
54YL ... CALL 0 RCHN
555W STOZ 6
55KG LDX 1 APETADDR(2)
5656 LDX 3 EVENT2(2) [ADDRESS OF CA RELATIVE TO OP
56JQ LOCKCA 1,3,3 [GEO.ADDR.OF CA IN OP INTO X3
574B STO 3 AWORK4(2) [GEORGE ADDRESS OF OP CA
57J2 LDX 5 CFLAG(2) [LOCK F.A INTO HLOCK1
583L CALL 4 SUB5
58H= LDX 5 0(3)
592W ANDX 5 BSP16 [B9-B23 OF TYPE/MODE WORD
59GG STO 5 AWORK1(2) [INTO AWORK1
5=26 LDX 1 FX1
5=FQ BZE 5 MODIL [MODE #0 IS ILLEGAL
5=^B LDN 4 #4200 [J. IF MODE #4000 OR MODE #200.
5?F2 ANDX 4 5
5?YL BNZ 4 TICK1
5#D= MHUNTW 3,AMXOR,CONLCB [DEFINE GA OF A1 IN CONLCB
5#XW LDX 7 3
5*CG ADN 3 A1
5*X6 LDN 4 #1000 [BRANCH IF MODE #1000
5BBQ BXE 5 4,M1000
5BWB LDX 4 CMAXLINE(2) [IS IT UPX
5CB2 STOZ AWORK3(2)
5CTL #
5D*= #SKI K6CONMX>99-99
5DSW (
5F#G TRACE EVENT3(2),LINE NO
5FS6 TRACE AWORK1(2),MODE
5G?Q )
5GRB BZE 4 UNIPL
5H?2 LDX 2 EVENT3(2) [LOAD THE LINE NUMBER
5HQL SRL 2 6
5J== SMO FX2
5JPW STO 2 AWORK3 [LINE NO.
5K9G BZE 2 NICLI [J TO LINE ZERO ROUTINES
5KP6 BXL 2 4,NOLAJ [LINE NO LE OR EQ
5L8Q BXE 2 4,NOLAJ
5LNB LDN 4 #100
5M82 BXGE 2 4,NOLIL [LINE NO GE OR EQ 64
5MML LDCT 6 #600 [SET MARKER NOT LINE ZERO END
5N7= LDX 2 FX2 [J TO NON EXISTENT LINES ROUTINE
5NLW BRN VUBLI
5P6G NOLAJ MPA 2 RECCON(1) [CALCULATE THE ADDRESS OF THE
5PL6 LDX 2 FX2 [CORRESPONDING ELEMENT
5Q5Q UNIPL STO 3 AWORK2(2) [ELEMENT ADDRESS INTO AWORK2
5QKB LDX 4 ADDMOP(3) [WHEN EQUALS ZERO
5R52 BZE 4 NOOPR [J TO NON ATTACHED-NULL LINE ROUTINES
5RJL LDCT 6 #400
5S4= STO 4 AWORK4(2) [AMOP ADDRESS
5SHW SMO 4
5T3G LDX 0 CPPTR
5TH6 STO 0 ACOMMUNE2(2) [POINTER TO THE DEVICE LIST
5W2Q LDX 0 ACTUAL(3)
5WGB ANDX 0 BSP16
5X22 STO 0 ACOMMUNE1(2) [ACTUAL LINE NO
5XFL LDX 4 1
5X^= FINDLCA ACOMMUNE2(2),ACOMMUNE1(2)
5YDW STO 1 ACOMMUNE3(2)
5YYG LDX 1 4
5^D6 BRN VUBLI
5^XQ NOOPR LDCT 6 #200 [NON ATTACHED LINES
62CB RIDIO SBS 7 AWORK2(2) [DISTANCE OF THE CONLCB ENTRANT FROM
62X2 [THE BEGINNING OF THE BLOCK
63BL ACROSS CONMXB,1
63W= NICLI LDX 2 FX2
64*W STO 3 AWORK2(2) [ELEMENT ADDRESS
64TG BRN RIDIO
65*6 #
65SQ #
66#B # TYPE/MODE WORD IS CHECKED-IF MODE #2000 ONLY -B20 SET
66S2 # -IF MODE #2000 WITH OTHER MODES -B21 SET
67?L # -IF MODE #2000 TOGETHER WITH #10 MODE -
67R= # ERROR IN MODE DISPLAYED AND PERI REJECTED
68=W #
68QG VUBLI LDX 5 AWORK1(2) [MODE WORD
69=6 LDX 4 5 [CHECK IF BITS 14,15,16,17 SET
69PQ ANDN 4 #1700
6=9B BNZ 4 MODIL
6=P2 LDN 4 #2000
6?8L BXU 5 4,NEDVO [IF MODE #2000 ONLY SET BIT 20
6?N= ORN 6 #10
6#7W BRN NODUT
6#MG NEDVO ANDX 4 5
6*76 BZE 4 NEKAM [J IF NOT MODE #2000 AT ALL
6*LQ ANDN 5 #10
6B6B BNZ 5 MODIL [IF MODE #10 PRESENT,GO ILLEGAL
6BL2 ORN 6 4 [IN OTHER CASE SET B21
6C5L NODUT CALL 0 NAFLC [FLAGCOUNT INTO X4
6CK= BNZ 4 RFVP
6D4W BRN TONCA [TEMPORARY FRIG ONLY!!!!!!!!!!!!!!!!
6DJG #
6F46 #
6FHQ #
6G3B LDX 1 ACOMMUNE3(2) [LCA DISPLACEMENT
6GH2 DLCA 1,LDX,0,FLAG
6H2L ANDN 0 #77
6HG= BZE 0 TONCA [IF NOT A FLAG DO NOTHING DND CARRY O
6H^W LDX 1 AWORK2(2) [CONLCB ENTRY
6JFG LDCT 0 1
6J^6 SMO BPTR(1)
6KDQ ORS 0 FOURTHWD
6KYB BRN TONCA
6LD2 RFVP SBN 4 1
6LXL SMO 2 [UNSET IN FLAGCOUNT ONE FLAG
6MC= DCH 4 FLAGCT(3)
6MWW BZE 4 TYNA
6NBG LDX 4 CMEMBER(2)
6NW6 TICKLE JOBNO(2),4
6P*Q BRN TONCA
6PTB TYNA [FLAG PATTERN INTO X4, MODIFIER INTO
6Q*2 CALL 0 NFLWR [X3
6QSL LDX 1 CFLAG(2) [RELATIVE ADDRESS OF F.A AND REL.ADDR
6R#= ADX 1 3 [OF THE CORRESPONDING WORD IN IT
6RRW CALL 0 SUFR
6S?G ERS 4 0(1) [SET THE FLAG
6SR6 #
6T=Q #
6TQB #
6W=2 TONCA LDX 4 6 [IF MODE #2000 ONLY ACCEPTED
6WPL ANDN 4 #10 [AND WAKE THE PROGRAM
6X9= BZE 4 NEKAM
6XNW LDX 5 EVENT2(2) [RELATIVE ADDRESS OF CA
6Y8G ADN 5 1 [DEFINE REL.ADDRESS OF CA2
6YN6 LDN 1 HLOCK1
6^7Q CALL 4 SUB6 [CONVERT TO GEO.ADDR.
6^MB SMO 5
7272 LDX 5 0
72LL CALL 0 RMODE [CHECK MODE
736= CALL 4 SUB5 [CHECK WHETHER REPLY WORD WITHIN RESV
73KW BRN OUTAC
745G #
74K6 # THIS SUBROUTINE ANALYSES MODES LE OR EQ #63
754Q #
75JB #
7642 #
76HL NEKAM LDX 3 AWORK2(2) [ADDRESS OF CONLCB INTO X3
773= LDX 4 AWORK1(2) [MODE
77GW ANDN 4 7
782G SBN 4 3
78G6 BZE 4 RCHE
78^Q SBN 4 3
79FB BNZ 4 ROKO [IF DOUBLE TRANSFER CHECK
79^2 RCHE LDN 5 7 [WHETHER THE WHOLE(7 WORDS) OF CA
7=DL CHECKEXT EVENT2(2),5,RESV2,APETADDR(2),,RGER1,HLOCK1 [IS WITHIN
7=Y= [RESERVATIONS
7?CW ROKO LDX 4 AWORK1(2)
7?XG ANDN 4 #77 [MASK LAST SIX BITS
7#C6 LDN 5 #30 [IF MODE LE #30 J
7#WQ BXL 4 5,MODNI
7*BB #
7*W2 LDN 5 #40 [IF MODE GE OR EQ #40 J
7B*L BXGE 4 5,MODVY
7BT= BRN MODIL [IN ANY OTHER CASE ERROR IN MODE
7C#W #
7CSG #
7D#6 #
7DRQ MODVY SRC 4 5 [IF B19 SET J MOD60
7F?B BNG 4 MOD60
7FR2 #
7G=L SLC 4 1
7GQ= BNG 4 MOD50 [IF B20 SET J MOD50
7H9W #
7HPG SLC 4 4
7J96 ERN 4 #42 [MODE #42 ?
7JNQ BNZ 4 MOD43
7K8B LDN 4 #42
7KN2 STO 4 AWORK1(2)
7L7L STOZ AWORK2(2) [MODE #42
7LM= BRN MODOK
7M6W [
7MLG MOD43 ERN 4 1 [MODE #43?
7N66 BNZ 4 MODIL [IF NOT GO ILLEGAL
7NKQ [
7P5B LDN 4 1
7PK2 STO 4 AWORK1(2)
7Q4L LDN 4 #42
7QJ= STO 4 AWORK2(2) [MODE #43
7R3W BRN MODOK
7RHG MOD60 SLC 4 5
7S36 ERN 4 #62 [MODE #62?
7SGQ BNZ 4 MOD66
7T2B LDN 4 #62
7TG2 STO 4 AWORK1(2)
7T^L STOZ AWORK2(2) [MODE #62
7WF= BRN MODOK
7WYW [
7XDG MOD66 ERN 4 4 [MODE #66?
7XY6 BNZ 4 MODIL
7YCQ LDN 4 #42
7YXB STO 4 AWORK1(2)
7^C2 LDN 4 #22
7^WL STO 4 AWORK2(2) [MODE #66
82B= BRN MODOK
82TW [
83*G MOD50 SLC 4 4
83T6 ERN 4 #53 [MODE #53?
84#Q BNZ 4 MODIL
84SB ORN 6 2 [SET B22 IN X6 -MODE #10
85#2 LDN 4 #11
85RL STO 4 AWORK1(2) [MODE #53
86?= LDN 4 #42
86QW STO 4 AWORK2(2)
87=G BRN MODOK
87Q6 MODNI SRC 4 5 [B19 SET,MOD #20 ?
889Q BPZ 4 MOMAL
88PB SLC 4 2 [B21 SET ?
8992 BNG 4 MOD26
89NL SLC 4 3
8=8= ERN 4 #22 [MODE #22 ?
8=MW BNZ 4 MOD23
8?7G LDN 4 #22 [MODE #22
8?M6 STO 4 AWORK1(2)
8#6Q STOZ AWORK2(2)
8#LB BRN MODOK
8*62 [
8*KL MOD23 ERN 4 3 [IF NOT MODE #21 MODE ILLEGAL
8B5= BNZ 4 MODIL
8BJW LDN 4 #21
8C4G STO 4 AWORK1(2) [MODE #21
8CJ6 STOZ AWORK2(2)
8D3Q BRN MODOK
8DHB [
8F32 MOD26 SLC 4 3
8FGL ERN 4 #26 [IF MODE #26 THAN OK OTHERWISE
8G2= BNZ 4 MODIL [ILLEGAL
8GFW LDN 4 2
8G^G STO 4 AWORK1(2)
8HF6 LDN 4 #22
8HYQ STO 4 AWORK2(2) [MODE #26
8JDB BRN MODOK
8JY2 MOMAL SLC 4 1 [IF BIT 20 IN X4 NOT SET J MODJE
8KCL BPZ 4 MODJE
8KX= [
8LBW SLC 4 4
8LWG ERN 4 #11 [MODE #11 ?
8MB6 BNZ 4 MOD13
8MTQ ORN 6 2 [SET B22 IN X6 -MODE #10
8N*B LDN 4 #11
8NT2 STO 4 AWORK1(2)
8P#L STOZ AWORK2(2) [MODE #11
8PS= BRN MODOK
8Q?W [
8QRG MOD13 ERN 4 2 [IF ALSO NOT MODE #13,MODE ILLEGAL
8R?6 BNZ 4 MODIL
8RQQ ORN 6 2
8S=B LDN 4 #11
8SQ2 STO 4 AWORK1(2)
8T9L LDN 4 2
8TP= STO 4 AWORK2(2) [MODE #13
8W8W BRN MODOK [B22 - MOD *10
8WNG [
8X86 MODJE SLC 4 1 [IF B21 NOT SET J M123
8XMQ BPZ 4 M123
8Y7B [
8YM2 SLC 4 3 [MODE#4 ?
8^6L ERN 4 4
8^L= BNZ 4 MODIL
925W LDX 3 ACOMMUNE3(2) [MODE *4
92KG JLUNBUSY 3,OUTAC [ACCEPT IMMEDIATELY IF NOT BUSY.
9356 LDX 4 ACOMMUNE1(2) [PERI *40004 + LINE NO INTO DCA
93JQ SRC 4 9
944B ORX 4 BIT9
94J2 ORN 4 4
953L DCA ACOMMUNE2(2),STO,4,MODE
95H= GLPERI ACOMMUNE2(2)
962W JLBUSY 3,OUTRE
96GG BRN OUTAC
9726 M123 LDN 0 1
97FQ LDN 5 2
97^B SLC 4 3
98F2 SBN 4 2
98YL BNG 4 MOD1 [J FOR MODE #1
99D= BZE 4 MOD2 [J FOR MODE #2
99XW STO 0 AWORK1(2)
9=CG STO 5 AWORK2(2) [MODE #3
9=X6 BRN MODOK
9?BQ MOD2 STO 5 AWORK1(2) [MODE #2
9?WB BRN ROK
9#B2 MOD1 STO 0 AWORK1(2) [MODE #1
9#TL ROK STOZ AWORK2(2)
9**= #
9*SW MODOK SLC 6 1 [CHECK IF NORMAL LINES OR
9B#G BNG 6 ZVLAL [LEGAL LINES BUT NOT AVAILABLE
9BS6 SRC 6 1 [OR LINE REFERRING TO NULL ELEMENT
9C?Q #
9CRB CALL 7 SUB7 [CALL SUBROUTINE WHICH CHECKS THE
9D?2 [PRESENCE OF M #10 & UNSETS ALL FLAGS
9DQL LDX 3 AWORK4(2) [ADDRESS OF AMOP INTO X3
9F== LDX 4 AWORK1(3)
9FPW ADN 4 1 [STORE MAX.NO OF CHARACTERS TO BE
9G9G STO 4 AWORK3(2) [TRANSFERRED INTO AWORK3
9GP6 #
9H8Q LDX 3 ACOMMUNE3(2) [LINE ENTRY DISPLACEMENT IN LCA
9HNB LDN 4 1 [PRESET TO ACCESS WDS 2-4 OF O.P. CA.
9J82 JLUNBUSY 3,RLCFR [J. IF CURRENT IS FREE.
9JML LDX 0 AWORK2(2) [J. TO REJECT IF DOUBLE TRANSFER
9K7= BNZ 0 OUTRE
9KLW JLSBUSY 3,OUTRE [OR SPOUT IS ALSO BUSY.
9L6G RSPOU ADN 3 ILMODE2-ILMODE [SET MODIFIER TO ACCESS SPOUT.
9LL6 RLCFR ADX 4 EVENT2(2) [PTR. TO RELEVANT PART OF O.P. C.A.
9M5Q LDN 5 5 [MOVE 3 WDS (CA2-CA4 OR CA5-CA7) INTO
9MKB LDN 7 3 [X5,X6,X7.
9N52 CALL 0 SUB9
9NJL LDX 4 AWORK1(2) [MODE
9P4= ORX 4 BIT9 [PLUS ADDITIVE #40000.
9PHW RELO DLCA 3,DLA,6,COUNT [SET UP LCA.
9Q3G DLCA 3,STO,7,CTSA
9QH6 DLCA 3,DLA,4,MODE [RWA GOES IN LAST TO PREVENT ANY
9R2Q DLCA 3,STO,5,CREP [PREMATURE DESPOUTING BY EXEC.
9RGB LDX 0 AWORK2(2) [J. IF SPOUT NOW DEALT WITH OR IF
9S22 BZE 0 RKON [SINGLE TRANSFER.
9SFL LDN 4 4 [ACCESS O.P.'S CA5-CA7.
9S^= STO 0 AWORK1(2) [STORE SPOUTED MODE.
9TDW STOZ AWORK2(2) [SET MARKER TO SHOW FINISHED AT NEXT
9TYG BRN RSPOU [TEST.
9WD6 RKON LDX 3 ACOMMUNE3(2) [LCA POINTER.
9WXQ JLLD 3,XDESP [J. UNLESS CURRENT TERMINATED WHILE
9XCB DLCA 3,STOZ,,CREP2 [LOADING SPOUT: IF SO CLEAR SPOUT &
9XX2 BRN RELO [J. TO SET UP CURRENT INSTEAD.
9YBL XDESP LDX 4 ACOMMUNE1(2) [LINE NO.
9YW= SRC 4 9
9^*W DCA ACOMMUNE2(2),STO,4,MODE [INTO TOP 9 BITS OF K50 MODE WORD
9^TG LDX 4 APETADDR(2)
=2*6 ADN 4 ASTOP
=2SQ DCA ACOMMUNE2(2),STO,4,DTSA
=3#B RX3 GLPERI ACOMMUNE2(2)
=3S2 LDX 4 9
=4?L BNG 4 OUTAC
=4R= MACCS ,APETADDR(2),3
=5=W STOZ 9(3)
=5QG LDX 1 FX1
=6=6 #SKI BALROG<1$1
=6PQ (
=79B SMO APETADDR(2)
=7P2 LDCH 3 ANM
=88L SMO FX1
=8N= LDX 3 ZAFW(3)
=97W SMO APETADDR(2)
=9MG LDN 0 0(3)
==76 SMO APETADDR(2)
==LQ STO 0 CHAINADD+K47
=?6B )
=?L2 #SKI BALROG
=#5L (
=#K= LDX 0 APETADDR(2)
=*4W SMO 0
=*JG STO 0 CHAINADD+K47
=B46 )
=BHQ LINKSET 2,PAIR1
=C3B COOR1X
=CH2 #
=D2L # THIS ROUTINE SERVICES LINES LEGAL BUT NOT AVAILABLE
=DG= #
=D^W ZVLAL LDX 4 AWORK1(2) [MODE
=FFG SBN 4 4 [IF MODE #4,ACCEPT THE PERI
=F^6 BZE 4 OUTAC
=GDQ SRC 6 1
=GYB CALL 7 SUB7 [SUB7 CHECKS THE PRESENCE OF MODE #10
=HD2 STOZ 7
=HXL LDN 5 1
=JC= ZDENA ADX 5 EVENT2(2) [REL.ADDRESS OF THE CA2 OR CA5
=JWW LDN 1 HLOCK1
=KBG CALL 4 SUB6 [CALCULATE GA OF CA2 OR CA5
=KW6 SMO 5
=L*Q LDX 5 0
=LTB CALL 0 RMODE [CHECK MODE OF REPLY WORD
=M*2 CALL 4 SUB5 [CHECK WHETHER WITHIN RESV.VIOL
=MSL LDN 1 HLOCK3
=N#= CALL 4 SUB6 [GEO ADDR OF R.W.
=NRW LDCT 4 #20 [SET IN THE 1ST OR 2ND R.W.B4 - NOT
=P?G SMO 5 [IMPLEMENTED
=PR6 STO 4 0
=Q=Q ADN 7 1 [NO OF FLAGS
=QQB LDX 0 AWORK2(2)
=R=2 BZE 0 SEPAP [IF SINGLE TRANSFER J
=RPL STOZ AWORK2(2)
=S9= LDN 5 4
=SNW #SKI G4
=T8G CLEAR APETADDR(2),0,HLOCK3
=TN6 BRN ZDENA
=W7Q SEPAP LDX 5 7
=WMB CALL 0 SUB3 [CALL SUBROUTINE FOR SETTING FLAGS
=X72 BRN OUTAC
=XLL #
=Y6= #
=YKW # THIS ROUTINE SERVICES MODE #200 PERIS.
=^5G #
=^K6 #
?24Q TICK1 ANDN 4 #4000 [MODE #4000 IS ILLEGAL AT THIS POINT.
?2JB BNZ 4 MODIL
?342 LDX 6 CMAXLINE(2) [MODE #200 IS ILLEGAL FOR UNIPLEXERS.
?3HL BZE 6 MODIL
?43= LDX 1 EVENT2(2) [GET 2ND. WORD OF CONTROL AREA.
?4GW ADN 1 1
?52G SMO APETADDR(2)
?5G6 LDN 3 HLOCK1
?5^Q FADDRESS 3,1
?6FB LDXC 6 0(1) [NO. OF 100 MILLISEC. INTERVALS
?6^2 BCS MODIL [REQUIRED BETWEEN TIMING INTERRUPTS.
?7DL BZE 6 MODIL [ILLEGAL IF -VE. OR ZERO.
?7Y= #SKI K6CONMXC>99-99
?8CW TRACE 6,MODE 200
?8XG LDX 7 EVENT3(2) [CONTENTS OF (POSSIBLY REPLACED) X.
?9C6 ADN 6 1 [GEORGE TIMING IS IN 200 MILLISECS.
?9WQ ANDN 7 #77 [GET UNIT NO.
?=BB SRL 6 1 [ROUND COUNT UP & DIVIDE BY 2.
?=W2 TICK2 HUNTMISB 3,AMXOR,INTRPT [LOOK FOR TABLE OF THE TICKLEWORTHY.
??*L BPZ 3 TICK8 [J. IF ONE ALREADY EXISTS.
??T= BNG 4 TICK6 [J. IF WE'VE JUST SET ONE UP & ITS OK
?##W BNZ 4 TICK4 [J. IF ONE WAS THERE BUT NO LONGER IS
?#SG LDN 3 INTTIME-INTENT [NO BLOCK THERE : MUST SET ONE UP.
?*#6 LDCT 4 #400 [SET SWITCH TO SHOW START FROM SCRATC
?*HY ...#SKI JSKI14<1$1
?*RQ TICK3 SETNCORE INTRECLEN(3),1,AMXOR,INTRPT [GET A NEW (OR LARGER) BLOCK.
?*T7 ...#SKI JSKI14
?*WJ ...(
?*X^ ...TICK3 GETCOREN INTRECLEN(3),0
?*^B ... BRN YSCOR
?B2R ... CALL 0 RCHN
?B48 ... COOR3 #1
?B4W ... CALL 0 RCHN
?B5K ... BRN TICK3
?B72 ...YSCOR FINDCORE 1
?B8C ... NAME 1,AMXOR,INTRPT
?B9S ...)
?B?B STOZ INTENT(1) [ONLY REALLY NEEDED FOR NEW BLOCK.
?BR2 LDX 5 1
?BTK ...#SKI JSKI14
?BY8 ...(
?C2R ... CALL 0 RCHN
?C5B ... LDX 1 5
?C7^ ...)
?C=L BRN TICK2 [FIND TABLE (IF ANY) AFTER COOR.
?CQ= TICK4 LDN 4 ZLEN [TABLE GONE : CUT NEW ONE TO 1 ENTRY.
?D9W TICK5 ALTLENG 1,4 [CUT BACK SIZE OF BLOCK JUST SET UP.
?DPG LDX 1 5
?F96 TICK6 LDX 3 5
?FNQ CHAIN 1,BMISC+1 [CHAIN NEW BLOCK INTO MISCELLANEOUS
?G8B LDX 1 3 [CHAIN.
?GN2 LDN 0 1 [ADD 1 TO COUNT OF ENTRIES.
?H7L ADX 1 ALOGLEN(3)
?HM= ADS 0 INTENT(3)
?J6W LDX 4 JOBNO(2)
?JLG TICK7 LDX 5 CFLAG(2) [ADDRESS OF 1ST. WD. OF FLAG AREA.
?K66 STO 6 INTTIME-ZLEN(1) [NO. OF SPRING CLEANS PER TICKLE.
?KKQ ADN 5 3 [INTERRUPT FLAG GOES IN LAST WORD.
?L5B STO 7 INTUNIT-ZLEN(1) [UNIT NO.
?LK2 STO 6 INTNEXT-ZLEN(1) [######SC'S TO NEXT TICKLE. (+1 INITI
?M4L STO 5 INTFLAG-ZLEN(1) [ADDRESS OF FLAG WORD. [ALLY).
?MJ= STO 4 INTJOBNO-ZLEN(1) [JOB NO.
?N3W BRN OUTAC [SET "ACCEPTED" & OLPFIN.
?NHG TICK8 BZE 4 TIK10 [J. IF 1ST. TIME THROUGH.
?P36 LDX 2 ALOGLEN(3) [IS BLOCK JUST SET UP STILL BIG ENOUG
?PGQ BXGE 2 ALOGLEN(1),TICK9 [J. IF NOT, TO GET ANOTHER ONE
?Q2B LDN 4 INTENT(3) [OTHERWISE SHIFT CONTENTS OF OLD
?QG2 LDN 5 INTENT(1) [BLOCK INTO NEW ONE.
?Q^L MOVE 4 0(2)
?RF= SBN 5 INTENT [REMEMBER ADDRESS OF NEW BLOCK.
?RYW LDN 4 INTRECLEN(2) [& SIZE OF OLD 1 PLUS 1 TABLE ENTRY.
?SDG FREECORE 3 [FREE OLD BLOCK.
?SY6 LDX 1 5 [J. IF NEW BLOCK JUST RIGHT
?TCQ BXE 4 ALOGLEN(1),TICK6
?TXB BRN TICK5 [OTHERWISE SHORTEN IT AS NECESSARY.
?WC2 TICK9 FREECORE 1 [FREE NEW BLOCK ('COS ITS TOO SHORT).
?WWL BRN TIK13 [J. TO GET NEW NEW BLOCK.
?XB= TIK10 LDX 4 JOBNO(2) [SEE IF THERE IS ALREADY AN ENTRY
?XTW LDN 1 ZLEN(3) [FOR THIS UNIT.
?Y*G LDX 0 INTENT(3)
?YT6 TIK11 LDN 5 INTRECLEN(1)
?^#Q BXU 4 INTJOBNO-ZLEN(1),TIK12
?^SB BXE 7 INTUNIT-ZLEN(1),TICK7 [J. IF AN OLD ENTRY FOUND : OVERWRI
#2#2 TIK12 LDX 1 5 [IT.
#2RL BCT 0 TIK11
#3?= TIK13 LDX 3 ALOGLEN(3) [NO PREVIOUS ENTRY : GET NEW, LONGER
#3QW BRN TICK3 [BLOCK & COPY OLD TABLE INTO IT.
#4=G #
#4Q6 #
#59Q # THIS ROUTINE SERVICES MODE #1000 PERIS.
#5PB #
#692 #
#6NL M1000
#78= #SKI K6CONMX>99-99
#7MW TRACE AWORK1(2),M1000
#87G LDX 6 CMAXLINE(2) [HIGHEST LINE NO AS A COUNT
#8M6 BZE 6 SECOM [UPX OR MPX ?
#96Q LDX 1 ADDMOP(3) [CHECK IF ANY TRANSFER CONCERNING
#9LB BZE 1 MJEJE [LINE ZERO IN PROGRESS
#=62 BRN OUTRE
#=KL SECOM SBN 3 CONRECLEN [IN X3 IS THE ADDR OF A1 IN CONLCB
#?5= ADN 6 1
#?JW MJEJE ADN 3 CONRECLEN [CREATE THE ADDRESS OF NEXT ENTRANT
##4G LDX 4 BPTR(3) [THE LINE IS CHECKED WHETHER IT IS
##J6 BZE 4 METE [BUSY.IF BPTR=0 LINE CAN'T BE BUSY
#*3Q LDX 4 ADDMOP(3) [IF BPTR IS NOT ZERO AND ADDMOP=0
#*HB BZE 4 OUTRE [LINE IS BUSY-A NON-ATTACHED LINE
#B32 [WITH STORED READ
#BGL SMO 4
#C2= LDX 1 CPPTR [POINTER TO DEVICE LIST
#CFW STO 1 AWORK2(2)
#C^G LDX 4 ACTUAL(3) [LOAD THE ACTUAL LINE NO AND UNIT NO
#DF6 ANDX 4 BSP16 [INTO X4
#DYQ FINDLCA AWORK2(2),4
#FDB JLBUSY 1,OUTRE
#FY2 METE BCT 6 MJEJE [IF NOT BUSY CHECK FURTHER LINE
#GCL MACCS ,APETADDR(2),1
#GX= LDX 0 GSIGN [SET W9 ACCEPTED
#HBW STO 0 9(1)
#HWG #
#JB6 # THIS ROUTINE UNRINGS THE ELEMENTS IN AMXOR,ALINES AND CONLCB BLOCKS
#JTQ #
#K*B LDX 6 CMAXLINE(2) [MAX.NO.OF ENTRANTS AS THE COUNT
#KT2 BNZ 6 UNRI [UPX OR MPX ?
#L#L ADN 6 1
#LS= UNRI LDX 1 BPTR(3) [IS IT AN ENTRANT CORRESPONDING TO
#M?W BZE 1 RJEST [AN ATTACHED LINE - UNLESS IT IS J
#MRG STOZ BPTR(1) [ZEROIZE BPTR IN AMXOR,ALINES
#N?6 STOZ BPTR(3) [ZEROIZE BPTR IN CONLCB
#NQQ RJEST SBN 3 CONRECLEN [CREATE ADDRESS OF NEXT ELEMENT
#P=B BCT 6 UNRI
#PQ2 LDN 6 CHAINADD(2) [FIND ENTRY FOR THIS OLPA
#Q9L HUNT2B 2,APERI,APERIRES [IN THE PERIPHERAL RESERVATION
#QP= PIDAS LDX 4 A1+1(2) [BLOCK IN ORDER TO GET
#R8W ANDX 4 BITS22LS
#RNG TXU 6 4
#S86 BCC ZUPIK
#SMQ ADN 2 2 [TYPE/UNIT NO. ENTRY FOR RELEASE.
#T7B BRN PIDAS
#TM2 ZUPIK RELOFP A1(2)
#W6L #
#WL= RGER1 GEOERR 1,COORDERR [COORDINATION DURING CHECKA
#X5W #
#XKG #
#XL2 ...#SKI JSKI14
#XLG ...(
#XM2 ...X92CONMXC
#XMG ... LDX 2 3 [START ADDRESS IN BLK.
#XN2 ... SBN 1 A1
#XNG ... LDX 6 ALOGLEN(1) [LTH. OF CHAPTER
#XP2 ... LDX 4 6
#XPG ... ADN 4 A1
#XQ2 ... CALL 0 RMV [MOVE INTO BLOCK
#XQG ... LDX 3 2 [SAVE END OF CHAP
#XR2 ... SBX 2 6
#XRG ... SBX 1 6
#XS2 ... STO 2 FX1 [RESET FX1
#XSG ... SBN 2 A1
#XT2 ... STOZ ATYPE(2) [MARK "CHAPTER IN BLOCK"
#XTG ... STOZ BPTR(2)
#XW2 ... STO 2 FPTR(2)
#XWG ... ORX 2 GSIGN
#XX2 ... STO 2 KTAB+KCONMXC [RESET KTAB ENTRY
#XXG ... ADNC 2 ZRS+A1
#XY2 ... BRN (2) [JUMP INTO COPIED VERSION
#XYG ...ZRS SBN 1 A1
#X^2 ... TXU 1 GFIXCHAP
#X^G ... BCS NOTFX
#Y22 ... STOZ BACK2(1)
#Y27 ... BRN TINFX
#Y2# ...NOTFX
#Y2G ... LDX 0 ASIZE(1)
#Y2H ... LDX 2 AFLAG(1)
#Y2J ... ANDN 2 2
#Y2K ... BZE 2 NVREZ
#Y2L ...[ J IF NOT FROZEN CHAPTER
#Y2M ... SBS 0 FREZCHAP
#Y2N ...[ UPDATE FROZEN CHAPTER SIZE
#Y2P ... BRN TVREE
#Y2Q ...NVREZ
#Y32 ... SBS 0 ACHAP [UPDATE ACHAP
#Y3= ...TVREE
#Y3G ... FREECORE 1 [FREE CHAPTER BLOCK
#Y42 ...TINFX ACROSS CONMXA,92
#Y4G ...)
#Y56 #SKI K6ALLGEO>99-99
#YJQ MENDAREA 40,K100CONMXC
#^4B #
#^J2 #
*23L #END
^^^^ ...56305213003200000000