22FL #SEG CIOUT8 [G CONSTANTINIDES 22^= #OPT K0CIOUT=0 23DW #OPT K6CIOUT=0 23YG #LIS K0CIOUT>K0ALLGEO>K0COMMAND 24D6 8HCIOUT8 24XQ # ENTRY POINTS 25CB SEGENTRY K1CIOUT,Z1CIOUT 25X2 MENDAREA 50,K100CIOUT 26BL # THIS SEGMENT IS USED TO TRANS- 26W= # FER MESSAGES FROM THE COMMAND PROCESSOR TO CIMOP 27*W # 27TG WAKEY [THIS SUBR WAKES UP THE OBJECT PROG USING CI CHANNEL 28*6 [AND IF CPA IS BEING ABANDONED,ALSO WAKES UP THE JOB 28SQ [WHICH IS DRIVING THE OBJECT PROGRAM 29#B SBX 7 FX1 29S2 LONGON1 CIREL,CIJOBNUM(3) [ELSE ACTIVATE PARENT CPA 2=?L LDX 2 CIFPTR(3) [PTR TO THE OLPA 2=R= SBN 2 BWORKRING 2?=W LDX 0 ATYPE(2) [RENAMED GENERAL IF RELEASED 2?QG SRL 0 12 2#=6 SBN 0 GENERAL 2#PQ BNZ 0 WKY 2*9B LDX 1 FX1 [DONOT TICKLE SINCE IS BEING RELEASED 2*P2 LDX 2 FX2 2B8L BRN WKY1 2BN= WKY TICKLE CIJOBNUM(3),CIMEMBER(3) [WAKE UP THE MEMBER THAT ISSUED 2C7W [THE LAST PERI TO THE CI CHANNEL 2CMG WKY1 2D76 ADX 7 1 2DLQ EXIT 7 0 2F6B # 2FL2 # 2G5L Z1CIOUT 2GK= LDX 0 ACOMMUNE7(2) 2H4W STO 0 AWORK1(2) 2HJG READYOFF 2J46 Z60 MHUNTW 3,AMXOR,CILCB 2JHQ LDX 5 CIREADY(3) 2K3B SLL 5 1 2KH2 BPZ 5 Z10 [J IF INTERLOCK BIT 1 UNSET 2L2L LDCT 5 #100 2LG= ORS 5 CIREADY(3) [ SET INTERLOCK BIT2 2L^W CALL 7 WAKEY 2MFG COOR1 2M^6 BRN Z60 [ALWAYS LOOK FOR BBC BLOCKS FIRST 2NDQ Z10 2NYB HUNTW 1,AMXOR,BBC 2PD2 BNG 1 Z30 [J IF NO BBC BLOCK 2PXL LDN 7 0 [MARK BBC FOUND 2QC= LDX 4 A1(1) [CHAR CT OF MSGE 2QWW ADN 4 11 [ROUND UP TO INTEGRAL WDS + 2 FOR 2RBG SRL 4 2 [COMPATIBILITY WITH AOUT BLOCK 2RW6 STO 4 6 [SAVE IT 2S*Q BRN Z30A 2STB Z30 MHUNTW 1,GMON,AOUT 2T*2 STO 1 7 [MARK AOUT BLOCK FOUND 2TSL LDX 4 A1(1) [NO OF WDS IN MSGE + 2 2W#= Z30A LDX 5 ALOGLEN(3) 2WRW SBN 5 CIMESS-A1 2X?G Z30B BXL 4 5,Z30C [J IF LCB LARGE ENOUGH FOR MSGE 2XR6 ADN 4 CIMESS-A1 2Y=Q ALTLEN 3,4,AMXOR,CILCB [ALTER LENGTH OF LCB 2YQB MHUNTW 3,AMXOR,CILCB 2^=2 BNZ 7 Z50 [J IF NOT BBC 2^PL LDX 4 6 [RESTORE WD CT 329= MHUNTW 1,AMXOR,BBC 32NW BRN Z40 338G Z30C SBN 5 10 [LCB IS LARGE ENOUGH,SO NOW SEE IF IT 33N6 BNG 5 Z40 [IS TOO LARGE. IF SO I0ERATE UNTIL 347Q BRN Z30B [NOT MORE THAN 10 WDS TOO BIG. 34MB Z50 MHUNTW 1,GMON,AOUT 3572 LDX 4 A1(1) [RESTORE WD CT 35LL Z40 LDN 5 A1+2(1) [START OF MSGE IN BLOCK 366= LDN 6 CIMESS(3) 36KW SBN 4 2 [NO OF WDS IN MSGE 375G BZE 4 Z20 [J IF NO CHARS TO MOVE 37K6 SMO 4 384Q MOVE 5 0 38JB Z20 3942 BNZ 7 Z21 [J IF NOT BBC 39HL LDX 5 A1(1) [CHAR CT OF MSGE(BBC) 3=3= BRN Z21A 3=GW Z21 3?2G LDX 5 AWORK1(2) [CHAR CT OF MSGE (AOUT) 3?G6 Z21A DSA 5 CIREADY(3) [SET CHAR CT IN LCB. 3?^Q LDCT 5 #200 3#FB ORS 5 CIREADY(3) [SET INTERLOCK BIT 1 3#^2 BNZ 7 Z150 [J IF NOT BBC 3*DL LDN 6 #2000 [BBC CATEGORY BIT 3*Y= OUTMON A1(1),A1+2,6,AMXOR,BBC 3BCW MFREEW AMXOR,BBC 3BXG HUNTW 1,AMXOR,BBC 3CC6 BPZ 1 Z60 [J IF ANOTHER BBC BLOCK FOUND 3CWQ HUNTW 3,GMON,AOUT [BBC CANT BE A 'READY'. 3DBB BNG 3 Z80B [J IF ONLY BBC TO OUTPUT 3DW2 LDX 0 AWORK1(2) 3F*L BNG 0 Z80B [J IF BROADCAST ONLY 3FT= BRN Z60 [ELSE J TO SET B2 AND WAIT UNTIL 3G#W [BUFFER FREE 3GSG Z150 3H#6 NGN 0 1 [IN CASE WE FIND A BBC BLOCK AFTER 3HRQ STO 0 AWORK1(2) [WE OUTPUT THE GMON/AOUT BLOCK 3J?B LDX 6 A1+1(1) [ PICK UP CATEGORY WORD 3JR2 SLC 6 1 3K=L BPZ 6 Z70 [J IF NOT READY 3KQ= LDX 6 CIREADY(3) 3L9W SLC 6 5 3LPG BPZ 6 Z90 [J IF NOT AWAITING BROKEN-IN MSGE. 3M96 READYON [SET BREAKIN MARKER IN CPA. 3MNQ ERS 5 CIREADY(3) [UNSET INTERLOCK BIT 1 IN CILCB 3N8B BRN Z90A [LOOK FOR BBC BLOCKS BEFORE GOING UP 3NN2 Z90 LDCT 5 #400 3P7L ORS 5 CIREADY(3) [SET READY IN LCB 3PM= LDN 5 0 3Q6W Z80 CALL 7 WAKEY 3QLG BNZ 5 Z90A [J IF NOT 'READY' TO MISS COOR 3R66 COOR1Y 3RKQ Z90A HUNTW 1,AMXOR,BBC [J TO OUTPUT BBC 3S5B BPZ 1 Z60 3SK2 LDCT 0 #10 3T4L ANDX 0 CLONG1(2) [IN CASE BBC DONE WHILE WE WERE 3TJ= ERS 0 CLONG1(2) [IN CIOUT 3W3W UP 3WHG Z70 SLC 6 4 3X36 BPZ 6 Z80 [J IF THIS IS NOT BROKEN-IN MSGE. 3XGQ LDCT 6 #10 [OTHERWISE CLEAR 'AWAITING' BIT. 3Y2B ANDX 6 CIREADY(3) 3YG2 ERS 6 CIREADY(3) 3Y^L BRN Z80 3^F= Z80B MHUNTW 3,AMXOR,CILCB 3^YW BRN Z80 42DG #END ^^^^ ...20071740000200000000