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