{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: CIMOP867)}}
====== CIMOP867 ======
(George Source)
**Macros used:** [[george:macro:BXE|BXE]], [[george:macro:CAPCA|CAPCA]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CHECKB|CHECKB]], [[george:macro:COOR1Y|COOR1Y]], [[george:macro:DERINGD|DERINGD]], [[george:macro:FADDRESS|FADDRESS]], [[george:macro:FCAPCA|FCAPCA]], [[george:macro:FINDACTNO|FINDACTNO]], [[george:macro:FINMVCH|FINMVCH]], [[george:macro:FOUTMOVE|FOUTMOVE]], [[george:macro:FPUT|FPUT]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETACT|GETACT]], [[george:macro:HUNTACT|HUNTACT]], [[george:macro:HUNTW|HUNTW]], [[george:macro:ILLEGALX|ILLEGALX]], [[george:macro:LINKSET|LINKSET]], [[george:macro:LOCKCA|LOCKCA]], [[george:macro:LONGCOOR|LONGCOOR]], [[george:macro:LONGOFF|LONGOFF]], [[george:macro:LONGSET|LONGSET]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAME|NAME]], [[george:macro:NBREAKIN|NBREAKIN]], [[george:macro:OLPFINX|OLPFINX]], [[george:macro:PAIR|PAIR]], [[george:macro:PMODES|PMODES]], [[george:macro:READYON|READYON]], [[george:macro:RINGACT|RINGACT]], [[george:macro:RINGTWO|RINGTWO]], [[george:macro:RUNPROG|RUNPROG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:SUICIDE|SUICIDE]], [[george:macro:TOPCA|TOPCA]], [[george:macro:TRACE|TRACE]], [[george:macro:UNPLUG|UNPLUG]], [[george:macro:UP|UP]]
22FL #SEG CIMOP8 [G. CONSTANTINIDES
22PD ...# COPYRIGHT INTERNATIONAL COMPUTERS 1982
22^= #OPT K0CIMOP=0
23DW #OPT K6CIMOP=0
23YG #LIS K0CIMOP>K0ALLGEO>K0COMMAND
24D6 8HCIMOP8
24XQ # ENTRY POINTS
25CB SEGENTRY K1CIMOP,Z1CIMOP
25X2 SEGENTRY K2CIMOP,Z2CIMOP
26BL SEGENTRY K3CIMOP,Z3CIMOP
26W= SEGENTRY K4CIMOP,Z4CIMOP
27*W SEGENTRY K5CIMOP,Z5CIMOP
27TG SEGENTRY K7CIMOP,Z7CIMOP
28*6 MENDAREA 50,K100CIMOP
28F3 ...#
28JY ...# SEGENTRY K25CIMOP IS USED BY RESTORE TIME MACRO PRESETRP
28NT ...#
28SQ # THIS SEGMENT DEALS WITH THE
29#B # COMMAND ISSUER EXTRACODES, SO THAT THE EFFECT OF A MOP
29S2 # CONSOLE IS SIMULATED
2=?L XMASK #77777
2=R= #37777777
2?=W #777777
2?QG #37577777
2#=6 #77577777
2#PQ #71777777
2*9B XMODE +11
2*P2 +12
2B8L +13
2BN= ZJYMODE +JYMODE
2C7W ZJYRESVIOL +JYRESVIOL
2CMG ZILLINS +JYILLINS
2D76 ZJYCHAR +JYCHAR
2DLQ ZCOUNT +512
2F6B ZJYCOUNT +JYCOUNT
2FL2 PAIR1 PAIR MORNING,2
2G5L PAIR2 PAIR CIMOP,2
2GK= PAIR3 PAIR CIMOP,3
2H4W PAIR4 PAIR LOGOUT,7
2HJG PAIR5 PAIR CIMOP,1
2J46 PAIR7 PAIR CIMOP,7
2JHQ PAIR8 PAIR CIMOP,5
2K3B XCONTEXT #20412
2K?8 ... SEGENTRY K25CIMOP
2KH2 XAMXMSK +AMXMSKPR
2L2L # THIS IS THE ENTRY POINT FOR THE FIRST PERI ISSUED BY A PROGRAM
2LG= # THE PERI MUST BE MODE 13 & A CPA IS SET UP TO PROCESS THE COMMANDS
2L^W # ISSUED BY SUBSEQUENT PERIS
2MFG #
2M^6 Z1CIMOP
2NDQ LDX 7 APETADDR(2) [PCA ADDR
2NYB LDX 3 7
2PD2 LDCH 5 CINUM(2) [CHANNEL NO
2PXL LOCKCA 3,EVENT2(2),4
2QC= LDX 3 4
2QWW LDX 0 0(3) [EXTRACT MODE
2RBG ANDX 0 XMASK(1)
2RW6 TXU 0 XMODE+2(1) [ERROR UNLESS MODE 13
2S*Q BCS XILLMODE1
2STB LDX 3 EVENT2(2)
2T*2 ADN 3 1 [
2TSL LDX 1 EVENT1(2)
2W#= LDCH 6 ARM1-AFW1(1) [MEMBER NO THAT STARTED UP THE CHANL
2WRW LDX 1 FX1
2X?G LDX 2 7
2XR6 FADDRESS 2,3,HLOCK1
2Y=Q STOZ 0(3) [SET REPLY WORD
2YQB SMO FX2
2^=2 LDX 4 ACTNUM [OLPA'S
2^PL TOPCA PAIR3(1) [PUT PCA ON LIST,LINK K3CIMOP
329= COOR1Y [PUT OLPA TO SLEEP
32NW CALL 0 ZFINDLCB
338G BNG 3 K1CIMOP [J IF LCB NOT PRGSENT
33N6 BRN Z2ENTRY
347Q # THIS IS THE CONTINUATION OF THE ROUTINE WHICH DEALS WITH AN
34MB # INITIAL MODE 13 PERI IT SETS UP A CPA & LCB
3572 #
35LL Z3CIMOP
366= UNPLUG
36KW CAPCA [CHANGE TO CPA
375G GETACT CPAT
37K6 STO 6 AWORK1(2) [SAVE MEMBER NO
384Q LDX 2 BPTR(2)
38JB STO 5 JSOURCE2(2) [CHANNEL NO
3942 LINKSET 2,PAIR1(1) [LINK TO K2MORNING
39HL LDX 5 XCONTEXT(1)
3=3= STO 5 CONTEXT(2)
3=GW LDX 5 XAMXMSK(1)
3?2G STO 5 AMXMSK(2)
3?G6 LDN 5 60
3?^Q DCH 5 JSOURCE1(2)
3#FB SMO FX2
3#^2 LDX 0 JSOURCE3
3*DL STO 0 JSOURCE3(2) [HAVE SAME CONS PROP
3*Y= HUNTW 3,APERI,ASSOCS [ANY ASSOCIATIONS?
3BCW BNG 3 ZZ1 [J IF NOT
3BXG SETUPCORE ALOGLEN(3),3,APERI,ADUMMY
3CC6 MHUNTW 2,APERI,ASSOCS
3CWQ LDN 0 A1(2)
3DBB LDN 1 A1(3)
3DW2 SMO ALOGLEN(2)
3F*L MOVE 0 0 [MAKE A COPY OF THE ASSOCS
3FT= LDX 2 FX2
3G#W NAME 3,APERI,ASSOCS
3GSG CHAIN 3,BPTR(2) [AND CHAIN IT TO THE NEW CPA
3H#6 ZZ1 SETNCORE CILCBLEN,3,AMXOR,CILCB,,1
3HRQ FINDACTNO 2,4
3J?B RINGTWO CIFPTR(3),BWORKRING(2)
3JR2 LDX 2 FX2
3K=L LDX 4 JOBNO(2)
3KQ= STO 4 CIJOBNUM(3)
3L9W STOZ CIREADY(3)
3LPG LDX 0 AWORK1(2) [MEMBER NO
3M96 STO 0 CIMEMBER(3) [STORE IN CILCB
3MNQ CHAIN 3,BPTR(2) [CHAIN LCB AFTER CPA
3N8B HUNTACT CPAT,2 [HUNT BACK FOR CPAT
3NN2 FPUT [ACTIVATE CPA
3P7L RUNPROG [RESTART PROGRAM
3PM= # THIS SECTION SETS A SPECIFIED REPLY IN THE PROGRAM'S CONTROL AREA
3Q6W # AND RESTARTS THE PROGRAM IT MUST ONLY BE ENTERED IN THE AOLPA
3QLG #
3R66 Z41 LDCT 6 #420 [REJECTED BUSY REPLY:B0=B4=1
3RKQ Z40 LINKSET FX2,PAIR7(1) [LINK TO K7CIMOP
3S5B Z42 LDX 2 7 [PCA ADDRESS
3SK2 SMO FX2
3T4L LDX 3 EVENT2
3TJ= ADN 3 1 [O/P ADDRESS OF REPLY WORD
3W3W FADDRESS 2,3,HLOCK1 [CONVERT TO GEORGE ADDRESS
3WHG STO 6 0(3)
3X36 OLPFINX 7 [RESTART PROG-D LINK SET
3XGQ # THIS IS THE ENTRY POINT FOR THE SECOND & SUBSEQUENT PERIS
3Y2B # THE FIRST SECTION PICKS UP THE CONTROL AREA & ANALYSES THE MODE
3YG2 # IF IT IS BREAKIN (MODE 13) WE SWITCH TO DEAL WITH IT;
3Y^L # IF IT IS A TRANSFER PERI-MODE 11& 12 THE COUNT & BUFFER ADDRESS
3^F= # ARE CHECKED
3^YW #
42DG Z7CIMOP
42Y6 Z2ENTRY
43CQ LDX 1 EVENT1(2) [MEL PTR
43XB LDCH 0 ARM1-AFW1(1) [MEMBER THAT ISSUED THIS PERI
44C2 LDX 1 FX1
44WL STO 0 ACOMMUNE1(2) [SAVE MEMBER NO
45B= LDX 7 APETADDR(2)
45TW LDX 3 7
46*G LOCKCA 3,EVENT2(2) [CHECK CONTROL AREA
46T6 LDX 4 EVENT2(2)
47#Q LDN 5 AWORK1(2)
47SB LDN 6 4
48#2 FOUTMOVE 3,4,5,6,HLOCK1 [MOVE OUT CONTROL AREA
48RL CALL 0 ZFINDLCB [FIND CI LCB
49?= LDEX 0 AWORK1(2) [EXTRACT BASIC MODE
49QW TXU 0 XMODE+2(1) [JUMP IF MODE 13
4==G BCC N10
4=Q6 BNG 3 REJINOP [SET INOPERABLE REPLY
4?9Q LDX 4 ACOMMUNE1(2)
4?PB STO 4 CIMEMBER(3) [MEMBER NO
4#92 LDX 4 0 [MODE
4#NL LDX 3 CIREADY(3)
4*8= SLL 3 7 [B7 IS 1 IF READY WAS SET IN PROGRAM
4*MW LDXC 3 3 [S LAST PERI REPLY WORD
4B7G ADN 4 0
4BM6 TXU 4 XMODE+1(1) [JUMP IF ILLEGAL MODE.MODE 11 IS
4C6Q BCS XILLMODE [ONLY LEGAL IF READY IS SET & MODE
4CLB [12 IS ONLY LEGAL IF IT IS NOT
4D62 LDN 4 CHREAD [SET T X4 TO CONTAIN TYPE OF ACCESS
4DKL TXU 0 XMODE(1) [REQUIRED FOR BUFFER:READ ACCESS IF
4F5= BCC Z24 [MODE 11,WRITE ACCESS IF MODE 12
4FJW LDN 4 CHWRITE
4G4G Z24 LDX 6 AWORK3(2) [COUNT
4GJ6 BZE 6 XCOUNT [ZERO COUNT ILLEGAL
4H3Q TXL 6 ZCOUNT(1)
4HHB BCC XCOUNT [COUNT>511 ILLEGAL-INCLUDE -VE COUNT
4J32 ADN 6 3 [CONVERT COUNT TO WORDS
4JGL SRL 6 2
4K2= LDCT 5 #600
4KFW ANDX 5 AWORK4(2)
4K^G BNZ 5 XCHAR
4LF6 LDX 5 AWORK4(2)
4LYQ PMODES 3,7
4MDB ANDN 3 #10
4MY2 BNZ 3 Z23A
4NCL ANDX 5 XMASK(1) [MASK IF 15 BIT ADDRESSING MODE
4NX= Z23A CHECKB 5,6,RESV2,7,4,Z25 [CHECK BUFFER IS WITHIN RESERVATIONS
4PBW Z25
4PWG SBN 4 CHREAD
4QB6 CALL 0 ZFINDLCB [LOCATE LCB
4QTQ BNG 3 REJINOP
4R*B BZE 4 N20 [JUMP IF MODE 11
4RT2 # THIS SECTION DEALS WITH MODE 12 PERI I.E.READ PERIS
4S#L # IF INTERLOCK BIT 1 OF CIREADY IN THE LCB IS SET THEN THERE IS DATA
4SS= # WAITING IN THE LCB & IT IS MOVED INTO THE PROGRAM.
4T?W # IF THE BIT IS CLEAR NO DATA IS WAITING & THE PERI IS REJECTED-BUSY
4TRG #
4W?6 LDCT 0 #200 [TEST IF DATA READY-B1 OF CIREADY SET
4WQQ ANDX 0 CIREADY(3) [(IT COULD JUST WORTHWHILE MAKING
4X=B BZE 0 Z41 [ THIS TEST BEFORE THE CHECKB SINCE
4XQ2 [THE PERI WILL OFTEN BE REJECTED.)
4Y9L LDX 6 CIREADY(3) [NO OF CHARS IN LCB
4YP= ANDN 6 #7777
4^8W LDX 0 AWORK3(2) [COUNT FROM CONTROL AREA
4^NG TXL 0 6
5286 BCC Z37
52MQ LDX 6 0 [SET X6 TO SMALLER OF TWO COUNTS
537B Z37 BZE 6 Z37A [JUMP IF ZERO
53M2 LDN 4 CIMESS(3)
546L LDX 1 7
54L= FINMVCH 1,5,4,6,HLOCK2 [MOVE DATA INTO PROGRAM
555W LDX 1 FX1
55KG Z37A LDX 0 AWORK1(2)
5656 ANDN 0 #1000
56JQ BZE 0 X1 [J IF NOT CONTINUATION READ
574B LDX 0 CIREADY(3) [CONTINUATION READ(#1014)
57J2 ANDN 0 #7777 [CHARS IN CI BUFFER
583L TXL 6 0 [J IF CHARS WANTED EQUAL TO CHARS
58H= BCC X1 [IN CI BUFFER
592W SBX 0 6
59GG DSA 0 CIREADY(3)
5=26 LDN 5 CIMESS(3)
5=FQ P1 LDEX 2 0
5=^B MVCH 4 0(2)
5?F2 BNZ 2 P2
5?YL LDN 2 512
5#D= P2 SBX 0 2
5#XW BNZ 0 P1
5*CG LDCT 6 #100 [READ LIMITED - MORE CHARS TO BEREAD
5*X6 BRN Z40
5BBQ X1 SBX 6 AWORK3(2) [REMAINDER CHAR COUNT
5BWB LDCT 0 #200 [NO MORE DATA IN CILCB BIT
5CB2 ERS 0 CIREADY(3)
5CTL NGX 6 6 [REMAINDER COUNT
5D*= LDCT 0 #100 [IF INTERLOCK BIT 2 IS SET DATA IS
5DSW ANDX 0 CIREADY(3) [WAITING TO BE MOVED INTO THE LCB:
5F#G BZE 0 N30 [THE BIT MUST BE CLEARED & THE CPA
5FS6 ERS 0 CIREADY(3) [LOCATED & WOKEN UP
5G?Q HUNTACT CPAT,2,3
5GRB FPUT
5H?2 BRN Z40 [SET REPLY & RESTART PROG.
5HQL N30 LDX 5 CIREADY(3)
5J== BPZ 5 Z40 [JUMP UNLESS READY IS SET
5K9G TRACE 5,READY
5KP6 LDCT 4 #20 [READY BIT
5L8Q SLL 5 3 [JUMP UNLESS THE COM PROC BIT INDICAT
5LNB BPZ 5 W10 [ING READY AT THE TOP LEVEL IS SET
5M82 LDCT 0 #40
5MML ERS 0 CIREADY(3)
5N7= HUNTACT CPAT,2,3 [JUMP IF AT USER CONTEXT
5NLW LDX 0 CONTEXT(2)
5P6G SRC 0 1
5PL6 BNG 0 W10
5Q5Q SLL 5 1 [JUMP IF SECOND COM PROC BIT IS SET
5QKB BNG 5 W30 [IE.IF READY AT NO USER HAS OCCURRED
5R52 [BEFORE
5RJL W20 ORS 4 CIREADY(3) [COMMAND PROCESSOR READY
5S4= W10 ORX 6 4 [SET READY BIT IN PROGS REPLY WORD
5SHW SRL 4 3
5T3G ORS 4 CIREADY(3) [SET B7 OF CIREADY TO INDICATE
5TH6 [READY SET IN PROG REPLY WORD
5W2Q BRN Z40
5WGB #
5X22 # THIS SECTION IS ONLY ENTERED WHEN READY AT NO USER CONTEXT OCCURRS
5XFL # FOR THE SECOND TIME.IN WHICH CASE THE LINE IS CLOSED DOWN.THE PROG
5X^= # IS GIVEN A REJECTED INOPERABLE REPLY & MUST ISSUE MODE 13 TO START
5YDW # UP AGAIN
5YYG #
5^D6 W30 LINKSET 2,PAIR4(1) [LINK TO K7LOGOUT
5^XQ FPUT [FPUT CPA
62CB DERINGD CIFPTR(3) [CILCB RING DERINGED
62X2 # THIS SETS THE REJECTED INOPERABLE REPLY & RESTARTS THE PROGRAM.
63BL # THE NEXT PERI WILL GO TO K1CIMOP
63W= REJINOP
64*W LDCT 6 #410
64TG LINKSET 2,PAIR5(1) [LINK TO K1CIMOP
65*6 BRN Z42
65SQ # THIS SECTION DEALS WITH MODE 11 PERIS I.E.WRITE PERIS,WHICH ARE
66#B # ONLY ALLOWED AFTER A READY.THE DATA IS MOVED OUT OF THE PROGRAM
66S2 # INTO AN ADATA,CREADL WHICH IS PASSED TO THE COMMAND PROCESSOR
67?L # BY CHAINING IT AFTER THE CPA & ACTIVATING THE PCA READY IS CLEARED
67R= # FROM THE HOLDA & THE LCB
68=W #
68QG N20
69=6 LDCT 0 4
69PQ ANDX 0 CIREADY(3)
6=9B BNZ 0 N25C [IGNORE PERI IF ABANDON HAS BEGUN
6=P2 ADN 6 CPDATA-A1
6?8L SETUPCORE 6,3,FILE,FRB
6?N= SBN 6 CPDATA-A1 [BACK TO DATA WDCT
6#7W LDX 4 6
6#MG LDN 6 CPDATA(3)
6*76 LDX 0 AWORK3(2) [STORE CHAR COUNT
6*LQ LDX 1 0
6B6B ADN 0 CPDATA-A1*4+3
6BL2 SRL 0 2
6C5L STO 0 A1(3) [WORD COUNT
6CK= ANDN 1 3
6D4W SRC 1 2
6DJG ADN 1 #41
6F46 STO 1 A1+1(3)
6FHQ STO 3 AWORK2(2) [SAVE ADDRESS OF ADATA,CREADL
6G3B LDX 2 7
6GH2 FOUTMOVE 2,5,6,4,HLOCK2 [MOVE DATA OUT
6H2L CALL 0 ZFINDLCB1 [FIND LCBFRESETS X2)
6HG= BNG 3 REJINOP1 [J IF NO LCB
6H^W STO 3 4
6JFG LDX 3 AWORK2(2) [POINTER TO FRB
6J^6 LDX 1 A1+1(3) [FIND THE LAST USED CHAR IN FRB
6KDQ SBN 1 #41 [PFCC
6KYB BZE 1 T1 [NO SPACEFILLING NEEDED
6LD2 LDX 2 1 [FORM COUNT OF CHARS IN LAST WORD
6LXL SLC 2 2 [THAT NEED TO BECOME SPACES(UNUSED)
6MC= SBN 2 4
6MWW NGX 2 2
6NBG ADX 1 3 [FORM POINTER TO FIRST UNUSED CHAR
6NW6 ADX 1 A1(3)
6P*Q SBN 1 1
6PTB LDN 0 #20 [SPACEFILL
6Q*2 T2 DCH 0 A1(1)
6QSL BCHX 1 £
6R#= BCT 2 T2
6RRW LDX 2 FX2
6S?G T1 LDX 3 4
6SR6 HUNTACT CPAT,3
6T=Q CHAIN AWORK2(2),3 [CHAIN ADATA AFTE CPAT
6TQB LDX 2 3 [FPVT CPA
6W=2 FPUT
6WPL LDX 3 4
6X9= N25
6XNW LDX 0 XMASK+3(1) [CLEAR READY IN LCB AND THE
6Y8G [REMEMBRANCE OF READY (B7)
6YN6 ANDS 0 CIREADY(3)
6^7Q N25A
6^MB LDN 6 0 [JUMP TO SET ZERO REPLY
7272 BRN Z40
72LL N25AB BNZ 6 REJINOP [BI REJECTED
736= BRN N25A [OK
73KW N25C HUNTACT CPAT,2,3 [FPUT CPA SINCE IT WAS ON A READY
745G READYON 2 [INDICATE NO ADATA/CREADL
74K6 FPUT
754Q BRN N25
75JB # IF THERE IS NO LCB FREE ADATA,CREADL & SET INOPERABLE REPLY
7642 REJINOP1
76HL FREECORE AWORK2(2)
773= BRN REJINOP
77GW # THIS SECTION DEALS WITH MODE 13 PERIS APART FROM THE INIIAL ONE,
782G # THE EFFECT OF WHICH IS TO BREAK IN ON THE JOB BEING RUN.
78G6 # THE ACTION TAKEN IS TO CHANGE TO THE CPA & ENTER PROCUNTX TO
78^Q # SEE IF BREAKIN IS POSSIBLE. IF IT IS THE LINE IS SET WAITING FOR
79FB # THE READY FOLLOWING THE BROKEN IN MESSAGE OTHERWISE THE PERI
79^2 # IS REJECTED
7=DL #
7=Y= N10 BNG 3 N25A [IF LCB ABS ACCEPT PERI BUT DO NOWT
7?CW # NB THAT NEXT MODE 12 WOULD BE REJINOP
7?XG LDX 0 ACOMMUNE1(2)
7#C6 STO 0 CIMEMBER(3) [MEMBER NO
7#WQ HUNTACT CPAT,2,3
7D#6 LDN 6 1
7DRQ #
7F?B #
7FR2 ... TRACE 1,CIBRKIN
7JHG ... NBREAKIN 2,4,ZBIREJ
7JNQ LDN 6 0 [MARK B.I. EFFECTED
7JYJ ...ZBIREJ
7K8B CALL 0 ZFINDLCB [IF NO LCB IT IS BEING ABANDONED
7KN2 BNG 3 N25AB [SO ACCEPT BREAKIN (IF OKED)
7L7L LDX 5 CIREADY(3)
7LM= BNZ 6 Z41 [J IF BREAKIN REJECTED
7M6W LDX 0 XMASK+4(1) [CLEAR REMEMBRANCE OF READY
7MLG ANDS 0 CIREADY(3)
7N66 #
7NKQ # IT COULD BE THAT LOGOUT HAS JUST CHANGED JOBNO AND
7P5B # PROCONTX REJECTED BREAKIN SINCE IT DIDNOT FIND THE CPAT
7PK2 #
7Q4L # BREAK IN SUCCESSFUL
7QJ= #
7R3W HUNTACT CPAT,2,3 [FIND CI CPAT
7RHG LDX 0 CONTEXT(2)
7S36 ANDN 0 1
7SGQ BNZ 0 NAB [J IF IN USER CONTEXT
7T2B LDX 0 XMASK+5(1) [LET IT DO A READY IN BREAK-IN
7TG2 ANDS 0 CIREADY(3) [AND NO-USER CONTEXT
7T^L NAB
7WF= BPZ 5 N25A [J IF READY NOT SET IN CIREADY
7WYW LDX 0 XMASK+1(1) [TO MISS FPUT OF CPA
7XDG ANDS 0 CIREADY(3) [CLEAR READY IN LCB
7XY6 READYON 2 [SET BREAK-IN BIT
7YCQ FPUT [ACTIVATE CPAT
7YXB BRN N25A
7^C2 # THIS SUBR LOCATES THE CILCB BY FOLLOWING THE FILERING OF THE OLPA.
7^WL # ENTRY IS USUALLY FROM THE OLPA BUT CAN BE FROM OTHER ACTIVITIES
82B= # PROVIDED THAT ON ENTRY X2 POINTS TO THE OLPA.
82TW # ON EXIT X3 POINTS TO LCB,OR IS SET NEGATIVE :X2 IS RESET TO FX2
83*G #
83T6 ZFINDLCB1
84#Q LDX 2 FX2 [ENTRY HERE ONLY FROM AOLPA
84SB ZFINDLCB
85#2 NGN 3 1
85RL LDN 1 BWORKRING(2)
86?= BXE 1 BWORKRING+1(2),Y12 [J IF RING IS EMPTY
86QW LDX 3 BWORKRING(2)
87=G SBN 3 CIFPTR [X3=ADDR OF LCB
87Q6 Y12 LDX 1 FX1
889Q LDX 2 FX2
88PB EXIT 0 0
8992 #
89NL # THIS SECTION REPORTS THE VARIOUS ILLEGAL CASES
8=8= # ILLEGALS ON FIRST ENTRY
8=MW XILLINS1
8?7G LDX 5 ZILLINS(1) ['ILLEGAL INSTRUCTION'
8?M6 XILL1 TOPCA PAIR2(1) [TO PCA
8#6Q COOR1Y [PUT AOLPA TO SLEEP
8#LB BRN Z1CIMOP
8*62 Z2CIMOP
8*KL UNPLUG
8B5= ILLEGALX 5 [REPORT ILLEGAL
8BJW XILLMODE1
8C4G LDX 5 ZJYMODE(1) ['MODE IN ERROR'
8CJ6 BRN XILL1
8D3Q #
8DHB # ILLEGALS ON SUBSEQUENT ENTRIES
8F32 #
8FGL XILLINS
8G2= LDX 5 ZILLINS(1) ['ILLEGAL INSTRUCTION
8GFW XILL TOPCA PAIR2(1)
8G^G COOR1Y [PUT AOLPA TO SLEEP
8HF6 BRN Z2ENTRY
8HYQ XILLMODE
8JDB LDX 5 ZJYMODE(1) ['MODE IN ERROR
8JY2 BRN XILL
8KCL XCOUNT
8KX= LDX 5 ZJYCOUNT(1) ['COUNT OUT OF RANGE
8LBW BRN XILL
8LWG XCHAR LDX 5 ZJYCHAR(1) ['CHAR ADDRESS INVALID'
8MB6 BRN XILL
8MTQ RESV2 LDX 5 ZJYRESVIOL(1) ['RESERVATION VIOLATION'
8N*B BRN XILL
8NT2 #
8P#L # GEORGE ERROR
8PS= #
8Q?W XGEOERR
8QRG GEOERR 0,CIMOP
8R?6 #
8RQQ #
8S=B Z4CIMOP
8SQ2 #
8T9L # THIS SECTION DEALS WITH THE 'REL' EXTRACODE
8TP= # ON ENTRY, X3 POINTS TO THE OLPA, WHICH HAS BEEN
8W8W # LOCKED.
8WNG #
8X86 LDX 7 3 [RERING OLPA
8XMQ HUNTACT APET,2,3 [FIND APET,TO FIND CPA
8Y7B FCAPCA 2,,N
8YM2 LDX 5 BPTR(3)
8^6L LDX 3 ACTRING(3)
8^L= SBN 3 ACTRING
925W BXE 3 2,P18B
92KG RINGACT 7,2
9356 P18A BXE 5 BPTR(3),P18B
93JQ CHAIN BPTR(3),7
944B BRN P18A
94J2 P18B LDX 3 7
953L NAME 3,GENERAL [RENAME OLPA
95H= LINKSET 3,PAIR8(1) [LINK TO K5CIMOP
962W LDX 2 3
96GG FPUT
9726 UP [BACK TO RELPER
97FQ Z5CIMOP [CURRENT ACT IS GENERAL(OLD OLPA)
97^B STOZ 6
98F2 N200 CALL 7 N250 [FIND LCB
98YL BNG 6 N300 [J IF STOPJOB ACCEPTED
9#B2 LDN 6 1
9*K4 ... LDX 3 2
9C7T ... NBREAKIN 2,5,N240
9C?Q LDCT 6 #400 [SET ACCPT BIT
9CRB N240 CALL 7 N250
9D?2 N300 LDXC 5 CIREADY(3)
9DQL BCC N258 [J IF READY NOT SET
9F== STO 5 CIREADY(3) [UNSET READY
9FPW READYON 2
9G9G N260 FPUT
9GP6 N259 LONGSET CIREL,N261,CIJOBNUM(3)
9H8Q N261 LONGCOOR N200
9HNB BRN N200 [SEE IF JOB DONE YET.
9J82 N258 SLL 5 2
9JML BPZ 5 N259 [J IF NO OUTPUT WAITING
9K7= LDCT 5 #300
9KLW ANDX 5 CIREADY(3) [UNSET MESSAGE BITS
9L6G ERS 5 CIREADY(3) [UNSET AS THOUGH OUTPUT TAKEN
9LL6 BRN N260 [AND RESTART CPA
9M5Q #
9MKB N250 CALL 0 ZFINDLCB1 [IS LCB STILL ON OLPAS RING?
9N52 BPZ 3 N255 [J IF YES
9NJL LONGOFF [CLEAR WAITING STYLE
9P4= SUICIDE [END
9PHW N255 HUNTACT CPAT,2,3 [LOCATE CPAT OF JOB BEING ABANDONED
9Q3G EXIT 7 0
9QH6 #
9R2Q #END
^^^^ ...47664661000200000000