{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: MOPCOM867)}} ====== MOPCOM867 ====== (George Source) **Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:BRUSEN|BRUSEN]], [[george:macro:BXE|BXE]], [[george:macro:BXGE|BXGE]], [[george:macro:BXL|BXL]], [[george:macro:CCERROR|CCERROR]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CLALLOC|CLALLOC]], [[george:macro:CLCOUNT|CLCOUNT]], [[george:macro:COMERRX|COMERRX]], [[george:macro:CONMOPOFF|CONMOPOFF]], [[george:macro:COOR1|COOR1]], [[george:macro:COOR3|COOR3]], [[george:macro:COOR4|COOR4]], [[george:macro:DISENGPER|DISENGPER]], [[george:macro:DOWN|DOWN]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:FON|FON]], [[george:macro:FPUT|FPUT]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GEOPACK|GEOPACK]], [[george:macro:GETACT|GETACT]], [[george:macro:HLSINFORM|HLSINFORM]], [[george:macro:HUNT|HUNT]], [[george:macro:HUNTACT|HUNTACT]], [[george:macro:HUNTW|HUNTW]], [[george:macro:INFORMX|INFORMX]], [[george:macro:JALLOC|JALLOC]], [[george:macro:JEXOTIC|JEXOTIC]], [[george:macro:JONL|JONL]], [[george:macro:JV7900|JV7900]], [[george:macro:JWRONG|JWRONG]], [[george:macro:JWTBWR|JWTBWR]], [[george:macro:LAMOP|LAMOP]], [[george:macro:LFAILS|LFAILS]], [[george:macro:LGEOG|LGEOG]], [[george:macro:LGPERIS|LGPERIS]], [[george:macro:LINK|LINK]], [[george:macro:LINKSET|LINKSET]], [[george:macro:LONGHALT|LONGHALT]], [[george:macro:LONGON|LONGON]], [[george:macro:LONGON1|LONGON1]], [[george:macro:LTYPE|LTYPE]], [[george:macro:MARKAXES|MARKAXES]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NBREAKIN|NBREAKIN]], [[george:macro:OUTBLOCN|OUTBLOCN]], [[george:macro:OUTNUM|OUTNUM]], [[george:macro:OUTPACK|OUTPACK]], [[george:macro:OUTPACKX|OUTPACKX]], [[george:macro:OUTPARAM|OUTPARAM]], [[george:macro:PARABEG|PARABEG]], [[george:macro:PARSORTX|PARSORTX]], [[george:macro:RING2CHK|RING2CHK]], [[george:macro:SAWCEJX|SAWCEJX]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETALLOC|SETALLOC]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SPARAPAS|SPARAPAS]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:WAITSTOP|WAITSTOP]], [[george:macro:YMOPOFF|YMOPOFF]], [[george:macro:YMOPON|YMOPON]] 22FL #SEG MOPCOM8 [A C PUTMAN 22PD ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD. 1982 22^= #LIS K0MOPCOM>K0MOP>K0COMMAND>K0GREATGEO>K0ALLGEO 23DW 8HMOPCOM 23YG # 248# # K1MOPCOM: 24J3 # DEALS WITH A MOP COMMAND FOR A MESSAGE BUFFERING MULTIPLEXOR 24XQ # 25CB SEGENTRY K1MOPCOM,XK1 25X2 ONMSK #575620 266S ...XRE 4HRE 26BL PMPA 2HPM 26DJ #UNS CRAMP 26GG ( 26JD XNS 26LB 4HNS 26N# 8HNEWSPEC 26Q= XLI 4HLI 26S8 ) 26W= # 28*6 XDEVS 28SQ #HAL AMXOR+ADEVS,0 29#B # 29S2 ...SKLNK LINK IPBSTARB,8 2=YD #UNS CRAMP 2?6Y ...SLLNK LINK IPBSTARB,9 2?*D ...RDLNK LINK IPBSTARB,4 2?HY ...VRLNK LINK IPBSTARB,10 [MOP ON LINK FOR A V7900 AMOP/IPBIN 2?QG # 2?XN SEGREM 0,#400:0,#01020000 [STOP REMOTE INPUT SUPERVISORY 2#4W 0,#400:0,#01030000 [END OF IPB OUTPUT SUPERVISORY 2#=6 SEGCLOSE 0,#400:0,#01110000 2#PQ # 2*9B # 2*P2 PAPFERR +APFERR 2B8L PJMOP1 +JMOP1 2B*S #UNS CRAMP 2BH2 #SKI 2BN= PJMOP2 +JMOP2 2C7W PJMOP3 +JMOP3 2C9S #UNS CRAMP 2C?Q ( 2C*N PJMOP5 +JMOP5 [MOP NOT ALLOWED DUE TO PREVIOUS 2CCL # INCOMPLETED MOP COMMAND 2CFJ PJMOP6 +JMOP6 [MOP NOT ALLOWED DUE TO ONLINE 2CHG # CONCEPTUALS 2CKD ) 2CMG PJUNITERR +JUNITERR 2FL2 PJPARMIS +JPARMIS 2G5L PJRES +JRES1 2H4W PJSETP8 +JSETP8 2HJG PJNOCONF +JNOCONF 2HPN #UNS CRAMP 2HWW PJCONFUPD +JCONFUPD [CONFIG UPDATE BEING TAKEN 2J46 ZGEO +JPDGEOPER 2JHQ ZSWI +JPDSWITCH 2K3B ZTRA +JPDTRANSCT 2KH2 ZFAI +JPDFAILCT 2L2L # 2LG= T1 LDX 7 PJSETP8(1) [FIRST 2L^W PMIS LDX 6 PJPARMIS(1) [PARAMETER MISSING 2MFG COMERRX 6,7 2PD2 # 2PXL T5 LDX 6 PJUNITERR(1) [UNIT IS NOT A SUITABLE DEVICE 2QC= NOOUT LDX 2 FX2 2QWW LGEOG ,5 2RBG OUTNUM 5,0 2RW6 PERR3 COMERRX 6 2S*Q # 2SJD T5A 2SR6 LDX 5 JSCEQ(3) 2S^S ANDN 5 #7777 [NO OF SIGNIFICANT CHARACTERS 2T8G OUTPARAM 5,JSCER,CPAR,JSCE [PASS PERIPH DESC PARAM 2TC8 LDX 6 PJUNITERR(1) [UNIT IS NOT A SUITABLE DEVICE 2TKW BRN PERR3 2TSL # 2W#= T6A LDX 6 PJRES(1) [UNIT NOT IN REQUIRED STATE 2WRW BRN NOOUT 2X?G # 2XBL #UNS CRAMP 2XFQ T6B LDX 6 PJMOP5(1) [N/A DUE TO INCOMPLETED MOP COMMAND 2XJW #UNS CRAMP 2XN2 #SKI 2XR6 T6B LDX 6 PJMOP2(1) [MOP TEMPORARILY NOT ALLOWED 2Y=Q BRN T6 2YQB # 2YYL #UNS CRAMP 2^6W #SKI 2^*6 ( 2^HB T6C TESTRPN2 NULL,T6B 2^PL LDX 6 PJNOCONF(1) [NO CONFIGURATION DEFINED IN THE IDF 329= BRN NOOUT 32?8 ) 32*6 #UNS CRAMP 32C4 ( 32F2 T6C TESTRPN2 NULL,T6A 32GY LDN 5 1 [INDICATE NULL CONFIG IN IDF 32JW BRN UCONFA 32LS ) 32NW # 32S* #UNS CRAMP 32XS ( 333? T6D TESTRPN2 CONCONL,T6A 336Q LDX 6 PJMOP6(1) [N/A DUE TO ONLINE CONCEPTUALS 33=9 BRN T6 33*N ) 33F7 # 33JL T7 LDX 6 PJMOP1(1) [UNIT ALREADY MOPPED ON/OFF 33N6 BRN T6 3572 # 35LL TGERR GEOERR 1,NOALINES 366= TBGE GEOERR 1,BREAKIN 36DM POUT SBX 4 FX1 36R4 STO 4 AWORK4(2) [ST. RELATIVES LINK 375G LDN 4 5 37K6 LDN 3 1 [PARAMETER LENGTH 384Q OUTPACKX 4,3,7 38JB LDX 4 AWORK4(2) 38S8 ADX 4 FX1 3942 EXIT 4 0 394J #UNS CRAMP 3956 ( 395N # 396= # SUBROUTINE TO PASS GEOG NO PARAMETER FOLLOWED 396S # BY INFORM TO OPERATOR 397B # 397Y OUTPUT 398G LGEOG ,6 [PICK UP GEOG NO 3994 SBX 5 FX1 399L GEOPACK 6,6,6 39=8 OUTPACK 6,1,GEOPER 39=F ...OUTPTA 39=Q INFORMX ,4,1 39?# ADX 5 FX1 39?W EXIT 5 0 39#2 ...OUTPTB 39#6 ... SBX 5 FX1 39#= ... BRN OUTPTA 39#D # 39*2 # SUBROUTINE TO CHECK FOR PRESENCE OF PARAMETER STARTING 39*J # WITH A PARTICULAR CHARACTER STRING. NO OF CHARS IN X5, 39B6 # CHAR STRING BEGINS IN X6 39BN # 39C= SPARA 39CS SBX 7 FX1 39DB PARABEG 1,5 39DY MHUNT 1,CPB,CUNI 39FG ADX 7 FX1 39G4 EXIT 7 0 39GL ) 39GN ...SUBACT 39GQ ... LDXC 0 IWAIT(1) 39GS ... BCC (6) 39GW ... STO 0 IWAIT(1) 39GY ...NXTBL 39H2 ... LDX 1 BPTR(1) 39H4 ... LDX 0 ATYPE(1) 39H6 ... BXL 0 CACT,NXTBL 39H8 ... LDX 2 1 39H= ... FPUT 39H# ... EXIT 6 1 39HL # 3=3= # SEARCH INTO X2 FOR THE BLOCK WHOSE TYPE IS IN AWORK3(FX2). 3=GW # START FROM CONTENTS OF X3, EXIT 0 IF NOT FOUND, EXIT 1 IF OK. 3?2G # 3?G6 SLINE LDX 2 3 3?^Q SLINF LDX 2 FPTR(2) 3#FB LDX 0 ATYPE(2) 3#^2 BXGE 0 CACT,(6) 3*DL SMO FX2 3*Y= TXU 0 AWORK3 3BCW BCS SLINF 3BXG EXIT 6 1 3CC6 # 3DW2 NBR SBX 6 FX1 [THIS MACRO HAS A LONG EXPANSION 3DXJ #UNS CCERROR 3D^6 ( 3F2N LDX 0 ACTNUM(1) 3F4= SMO FX2 3F5S STO 0 ACOMMUNE9 [SAVE ACT NUMBER 3F7B DOWN MOPCOMB,2 [DOWN TO DO NBREAKIN MACRO 3F8Y ) 3F=G #UNS CCERROR 3F#4 #SKI 3FB8 ( 3FD# #UNS ENBREAKIN 3FGD NBREAKIN 1,5,,NBROK 3FJJ #UNS ENBREAKIN 3FLN #SKI 3FNS NBREAKIN 1,5 3FQY ) 3FT= SBN 6 1 [EXIT 0 IF BREAK-IN FAILED 3G54 NBROK 3G#W ADX 6 1 [OR +1 IF OK 3GSG EXIT 6 1 3GTF # 3GWD # SUBROUTINE TO SET UP AN AMXOR/IOUT BLOCK AND MOVE IN SUP SEGMENT 3GXC # 3GYB SETIOUT 3G^* SBX 6 FX1 3H2# ... SETNCORE 3,2,AMXOR,IOUT 3H3? SMO 5 3H4= LDN 0 SEGREM(1) [ADDRESS OF REQUIRED SUPERVISORY 3H59 LDN 1 IMOPTY(2) 3H68 MOVE 0 3 [MOVE INTO AMXOR/IOUT BLOCK 3H77 ADX 6 FX1 3H86 EXIT 6 0 3H95 # 3H=4 # SUBROUTINE TO CHAIN AMXOR/IOUT AT END OF AMOP/IPBOUT ACTIVITY 3H?3 # 3H#2 OUTCHAIN 3H#^ MHUNTW 1,AMXOR,IOUT 3H*Y LDX 2 IPBRING(3) 3HBX SBN 2 IPBRING 3HCW LDX 5 2 [ADDRESS OF IPBOUT ACTIVITY BLK 3HDT LDX 2 ACTRING(2) 3HFS SBN 2 ACTRING 3HGR CHAIN 1,BPTR(2) [CHAIN AT END OF IPBOUT ACTIVITY 3HHQ LDX 2 5 3HJP LDCT 0 #100 3HKN ANDX 0 IPBSW(2) 3HLM BZE 0 OUTEX [J IF IPBOUT ALREADY AWAKE 3HML ERS 0 IPBSW(2) 3HNK FPUT 3HPJ OUTEX 3HQH EXIT 6 0 3HQL # 3HQM # SUBROUTINE TO TEST IF AN IPB IS A VIRTUAL 7900 AND IF TRUE TO 3HQN # START MOPPING ON THE VIRTUAL 7900 3HQP # ON ENTRY X3 -> THE IPB INPUT ACTIVITY ; X1=FX1 ; X2=FX2 3HQQ # EXITS+1 IF THE IPB IS NOT A VIRTUAL 7900 ELSE EXITS+0 3HQR # LINK IN X6 3HQS V7900MOPON 3HQT JV7900 CPPTR(3),V7900SUP 3HQW EXIT 6 1 [IPB IS NOT A VIRTUAL 7900 : EXIT +1 3HQX V7900SUP 3HQY MFREEW IDF,IDENTIFIERS [DISCARD THIS BLOCK AS K11IPBSTART 3HQ^ [WILL SET IT UP 3HR2 LINKSET 3,VRLNK(1) [SET LINK IN THE AMOP/IPBIN ACTIVITY 3HR3 [TO K10IPBSTART 3HR4 LDCT 0 #100 [UNSET ASLEEP FLAG IF SET AND 3HR5 ORS 0 IPBSW(3) 3HR6 ERS 0 IPBSW(3) 3HR7 LDX 2 3 [PUT ACTIVITY ON THE ACTIVITY LIST 3HR8 FPUT 3HR9 EXIT 6 0 [EXIT +0 3HR= # 3HR? # SUBROUTINE TO TEST IF THE IPB IS A VIRTUAL 7900 AND IF TRUE AND 3HR# # MOPPING OFF (IE CLALLOC HAS BEEN ISSUED), TO 3HR* # 1. CLEAR COUNT OF GEORGE TRANSFERS ISSUED TO INDICATE THE VIRTUAL 3HRB # 7900 IS NO LONGER 'INITIALISE'D AND CAN BE 'ACCESS'ED AGAIN 3HRC # ON ENTRY X2=FX2 AND CPPTR(2) -> THE IPB DEVICE LIST 3HRD # EXITS+1 IF IPB IS NOT A VIRTUAL 7900 ELSE EXITS+0 3HRF # LINK IN X7 3HRG # 3HRQ # 3J?B # ANALYSE PARAMETERS FOR VALIDITY ; CHECK EXISTENCE OF ALINES BLOCK, 3JR2 # THEN GIVE IDF MACRO ; IF 'ON' , SET UP ALINES BLOCK , SCANNING 3K=L # ACTIVITY AND FLAG AREA ; IF 'OFF' , CLOSE ALL LINES DOWN , FREE 3KQ= # ALINES BLOCK AND DISESTABLISH FLAG AREA ; AT END , AN APPROPRIATE 3L9W # MESSAGE IS SENT TO THE OPERATORS' CONSOLE 3LPG # 3M96 XK1 SPARAPAS [GET 'ON' OR 'OFF' 3MNQ MHUNT 3,CPB,CUNI 3N8B LDX 4 ANUM(3) 3NN2 BNG 4 T1 [J. IF 1ST. PARAMETER MISSING. 3P7L BZE 4 T1 [1ST. PARAMETER NULL 3PM= ANDN 4 #7777 [MASK OUT CHAR. CT. 3Q6W SBN 4 4 3QLG BPZ 4 PFERR [>3 CHARS : FORMAT ERROR 3R66 LDX 4 APARA(3) 3RKQ SRL 4 6 3S5B ERX 4 ONMSK(1) [COMPARE WITH 'ON ' 3SK2 BZE 4 ON1 3T4L ERN 4 #1066 [COMPARE WITH 'OFF' 3TJ= BZE 4 OFF1 3W3W #SKI K6IPB>100-100 3WHG ( 3X36 [TRACES 3XGQ LDX 4 APARA(3) 3Y2B SRL 4 12 3YG2 ERN 4 #6462 [COMPARE WITH "TR" 3Y^L BNZ 4 TRAC0 3^F= LDCT 0 2 3^YW ERS 0 ASWITCH1 42DG ENDCOM 42D^ TRAC0 42FD ERN 4 #5743$#6462 [COMPARE WITH "OC" (OVERLOAD CODE) 42FX BNZ 4 PFERR 42GB # RECORD OVERLOAD CODE IN IPBSW OF EVERY AMOP/IPBOUT ACT 42GT # AND WAKE THEM IF NECESSARY 42H# # "OC0" SIMULATES SYSTEM CONTINUE SUPERVISORY SEG 42HR # "OC1" SIMULATES SYSTEM OVERLOAD/SUSPEND IPB OUTPUT W/ PR0 42J= # "OC2" SIMULATES SUSPEND IPB OUTPUT WITH PRIORITY 10 42JP # "OC3" SIMULATES SUSPEND IPB OUTPUT WITH PRIORITY 20 42K8 ORX 3 GSIGN 42KM LDCH 4 APARA(3) 42L6 LDN 3 IPBADDR-IPBL 42LK TRAC1 LDX 3 IPBL(3) 42M4 BNZ 3 TRAC2 42MH ENDCOM 42N2 TRAC2 LDX 2 IPBRING(3) 42NF SBN 2 IPBRING 42NY TXU 2 3 42PC BCC TRAC1 42PW ORX 2 GSIGN 42Q* DCH 4 IPBSW(2) 42QS ANDX 2 BITS22LS 42R? LDCT 0 #200 42RQ ORS 0 IPBSW(2) 42S9 BNZ 4 TRAC3 42SN ERS 0 IPBSW(2) [UNSET SY OV FLAG IF SIMULATING SY CU 42T7 TRAC3 LDCT 0 #100 42TL ANDX 0 IPBSW(2) 42W5 BZE 0 TRAC1 42WJ ERS 0 IPBSW(2) 42X3 FPUT 42XG BRN TRAC1 42Y6 [TRACEE 43CQ ) 43XB PFERR LDX 6 PAPFERR(1) 44C2 BRN PERR3 [GIVE COMMAND ERROR 44WL # 45B= ON1 LDCT 4 #400 [SWITCH TO INDICATE 'ON' 45TW OFF1 FREECORE 3 [FREE CPB/CUNI BLOCK 46*G LDN 3 2 46T6 PARSORTX TBGE,3 47#Q HUNT 3,CPAR,JSCE 47SB BNG 3 NFERR 48#2 SAWCEJX JSCEB(3),PLOC,T5A,T5A 48RL PLOC LDX 3 JSCEP(3) 49?= STO 3 CPPTR(2) 49H4 ... JEXOTIC 3,T5 49QW LTYPE ,7 4==G SBN 7 10 4=Q6 BZE 7 YPX1 [TYPE 10 : UNIPLEXOR. 4?9Q BCT 7 NPLX [J. IF NOT UNIPLEXOR OR MULTIPLEXOR. 4?PB ...YPX1 4#92 ... LAMOP ,3 4#NL ACROSS MOPCOMB,1 5Q5Q # 5QKB NPLX SBN 7 24-11 [J. IF NOT IPB EITHER. 5R52 BNZ 7 T5 5RJL ... LAMOP ,3 5SHW LDX 0 XDEVS(1) [BLOCK TYPE FOR IPB. 5T3G STO 0 AWORK3(2) 5TH6 BNG 4 ON3 [J. IF MOP ON. 5TQY LDCT 7 #10 [FOR "BEING MOPPED ON" CHECKS 5W2Q JALLOC ,POFFZ 5WGB BRN POFF1 5X22 POFFZ JONL ,T6A 5XFL BRN POFF 5X^= POFF1 ANDX 7 IPBSW(3) 5YDW BZE 7 T7 [NOT BEING MOPPED ON : ERROR 5YGK #UNS CCERROR 5YJ# ( 5YL3 LDX 0 IPBRING(3) 5YMQ SBN 0 IPBRING 5YPF TXU 0 3 5YR8 BCC POFF [J IF NO OUTPUT ACT 5YSX LDCT 0 4 5YWL SMO IPBRING(3) 5YY* ANDX 0 IPBSW-IPBRING 5^24 BZE 0 POFF [J IF NOT LINK LEVEL ERROR 5^3R LDCT 0 #20 5^5G ORS 0 IPBSW(3) 5^79 SC4 COOR4 #30 5^8Y LDCT 0 #20 5^=M ANDX 0 IPBSW(3) 5^#B BNZ 0 SC4 [J IF NOT YET CLEARED UP AFTER ERRROR 5^B5 ) 5^D6 POFF LDCT 6 #20 [J. IF ALREADY BEING MOPPED OFF. 5^XQ ANDX 6 IPBSW(3) 627K ... BNZ 6 POFFST 62CF ... SEGENTRY K91MOPCOM 62CJ ... LDN 0 AHRETAIN 62CM ... BZE 0 XNORE 62CQ ... LDN 5 2 62CT ... LDX 1 FX1 62CW ... LDX 6 XRE(1) 62CX ... CALL 7 SPARA 62CY ... LDCT 7 #10 62D3 ...XNORE 62D* #UNS CRAMP 62F# #SKI 62G? ( 62M8 YMOPOFF XBI,T6B [J. IF IDF SAYS CAN'T BE MOPPED OFF 62YP ) 632D #UNS CRAMP 6347 ( 637K YMOPOFF XBI,T6D 63#Q ) 63*4 ... SEGENTRY K92MOPCOM 63*B ... LDN 0 AHRETAIN 63*N ... BZE 0 XNORE2 63B2 ... MFREE CPB,CUNI 63B# ...XNORE2 63BL LDCT 4 #20 [SET THE "MOPPING OFF" BIT FOR IPBIN. 63W= ORS 4 IPBSW(3) 64*W TESON ANDX 7 IPBSW(3) [WAS IT BEING MOPPED ON? & STILL IS? 64F2 #UNS CRAMP 64J6 BZE 7 TESLIM 64M= #UNS CRAMP 64QB #SKI 64TG BZE 7 TESPM 65*6 COOR4 #30 [IF SO WAIT FOR START UP TO FINISH 65SQ LDCT 6 #20 66#B ANDX 6 IPBSW(3) 66S2 BNZ 6 TESON [WRONG WAKE UP? 67?L BRN XEND [J. IF OK. 67R= # 68=W VPD0 ANDN 0 4 68QG BZE 0 VPD1 [J. UNLESS 'TO BE SCANNED' SET 692# VPD1A 69=6 ANDN 7 #71 [UNSET TO BE SCANNED AND SETTING UP 69KT ... BRN NDCB1 69^J VPD1 6=9B BNZ 1 VPD2 6=F8 BRN VPD1A [J NO ACTIVITY CREATED 6=P2 VPD2 SBN 1 A1 6?8L LDX 2 1 6?N= VPD2A LDX 2 BPTR(2) 6#7W LDX 0 ATYPE(2) 6#MG BXL 0 CACT,VPD2A 6B6B LDXC 0 IWAIT(1) 6BL2 BCC VPD4 6C5L STO 0 IWAIT(1) 6CK= LDX 6 1 6D4W FPUT 6DJG LDX 1 6 6F46 VPD4 LDX 2 A1+FPTR(1) 6FHQ SBN 2 A1+4 6G3B BRN VPDAT 6GH2 # 6GHR #UNS CRAMP 6GJJ ( 6GK* TESLIM 6GL6 LDN 5 2 6GLX SMO FX1 6GMN LDX 6 XLI 6GNF CALL 7 SPARA [LOOK FOR LI PARAMETER 6GP= LDX 0 ANUM(1) 6GQ3 STO 0 AWORK4(2) [SET -VE IF PARAMETER ABSENT 6GQS FREECORE 1 6GRK TESPM 6GSB SMO FX1 6GT7 LDX 6 PMPA 6GTY CALL 7 SPARA [LOOK FOR PM PARAMETER 6GWP LDN 7 0 [IN CASE INOPERABLE 6GXG ) 6GY? #UNS CRAMP 6G^4 #SKI 6G^T ( 6H2L TESPM LDN 5 2 6HG= SMO FX1 6H^W LDX 6 PMPA 6JFG PARABEG 1,5 6J^6 HUNT 1,CPB,CUNI 6K8Y ) 6KDQ LDX 0 ANUM(1) 6KYB BNG 0 TESP1 [J IF NO PARAM 6LD2 LDX 2 IPBRING(3) 6LXL ORS 4 IPBSW-IPBRING(2) 6MC= TESP1 FREECORE 1 6MWW OKON CALL 6 SLINE [FIND THE ADEVS BLOCK. 6NBG BRN UINOP [NONE - CHECK INOPERABILITY. 6NW6 LDX 4 ALOGLEN(2) [FIND THE NUMBER OF ENTRIES. 6P*Q SBN 4 4 6PTB LDX 5 4 [RELATIVE POINTER TO LAST ENTRY. 6Q*2 SRL 4 2 6QSL SBN 5 4 [SO WE WONT LOOK AT DUMMY ENTRY. 6R#= SMO FX2 [SAVE THE NUMBER OF ENTRIES. 6RRW STO 4 AWORK2 6S?G SLOOP ADX 2 5 [POINT TO NEXT IDENTIFIER ENTRY. 6S*D ... LDN 1 #200 6SCB ... ANDX 1 A1+4+FOURTHWD(2) 6SF# ... BZE 1 NOT16 6SH= ... LDX 7 2 6SK8 ... FON IPBRELWS 6SM6 ... LDX 2 7 6SP4 ...NOT16 6SR6 LDCH 0 A1+4+FOURTHWD(2) 6T=Q LDX 7 0 6TQB ANDN 0 6 6W=2 ORN 7 #10 [SET "MOPPING OFF" BIT. 6WPL LDX 1 A1+BPTR+4(2) 6WWS #UNS CCERROR 6X42 #SKI 6X9= BNZ 0 VPD0 [J. IF SETTING UP OR TO BE SCANNED 6X=M #UNS CCERROR 6X#4 ( 6X*F BZE 0 NSEU [J IF NOT SETTING UP OR TO BE SCANNED 6XBW ANDN 0 4 6XD? BNZ 0 VPD0 [J IF TO BE SCANNED 6XFN BZE 1 VPD0 [J IF NO ACTY 6XH5 SBN 1 A1 6XJG BRN XBULK [J TO WAKE ACTY 6XKX NSEU 6XM# ) 6XNW BZE 1 NODCB 6XP7 #UNS CLSKI 6XPD ( 6XPR LDCH 0 A1+4+FOURTHWD(2) 6XQN ANDN 0 1 6XRK BZE 0 NCONL [J IF NOT RINGED TO CONDCB 6XSG LDX 6 2 6XTC [ SAVE X2 6XW# LDX 7 1 6XX9 ADN 6 A1+4 [POINT TO THIS ENTRY 6XY6 CONMOPOFF 7,6 [REMOVE FROM CONDCB 6X^3 LDX 2 6 6X^Y SBN 2 A1+4 [RESTORE NORMAL POSN REL ENTRY 6Y2T [ RESTORE X2 6Y3Q LDCH 7 A1+4+FOURTHWD(2) 6Y4M ORN 7 #10 [SET MOPPING OFF 6Y5J ANDN 7 #52 [UNSET ATTACHED,ONLINE 6Y6F BRN NDCB1 6Y7B NCONL 6Y7Y ) 6Y8G LDN 6 #400 [J. IF ALREADY DEALT WITH. 6YN6 ANDX 6 IWAIT-A1-FPTR(1) 6^7Q BNZ 6 VPD2 6^MB LDEX 0 A1+4+FOURTHWD(2) [J. ACCORDING TO IDENTIFIER TYPE. 6^X8 ANDN 0 #17 [MASK OUT DEVICE NO. ONLY 7272 SBN 1 A1 72LL SMO 0 736= BRN TABL 73KW # 745G TABL BRN XINT [MOP CONSOLE. 74K6 BRN TGERR 754Q BRN TGERR 75JB BRN XBULK [7020 LP. 7642 BRN XBULK [7020 CR. 76HL BRN XCONS [7020 T/W. 773= BRN XBULK [7020 TR. 77GW BRN XBULK [7020 TP. 77LR NULL [RESERVED. 77QN NULL [RESERVED. 77WK BRN XINT [MOP DISPLAY. 782G # 78G6 XBULK LDXC 0 IWAIT(1) [J. IF IDLE. 78^Q ... BCS XCONS 79FB NOTAC LDX 1 BPTR(1) [FIND THE ACTIVITY AND PUSH IT OUT 79^2 LDX 0 ATYPE(1) [OF ANY "PLEASE ENGAGE" LOOP. 7=DL BXL 0 CACT,NOTAC 7=Y= LDX 2 1 7?CW WAITSTOP NOWAT 7?XG BRN NOWAT 7#C6 # 7#WQ ...XCONS 7*BB ... CALL 6 SUBACT 7*W2 ... BRN NOTAC 7FR2 BRN NOWAT 7G=L # 7GQ= XINT HUNTACT CPAT,2,1 7J96 LDX 1 2 [X1-> CPAT(FOR NBR) 7J?4 #UNS CRAMP 7J*2 ( 7JBY SMO FX2 7JDW LDX 0 AWORK4 7JGS BPZ 0 ZLIM [J IF LIMBO PARAMETER SPECIFIED 7JJQ XNBR 7JLN ) 7JNQ CALL 6 NBR 7NKQ BRN NSTPD 7NTJ SMARKED 7P5B CALL 6 SLINE 7PK2 BRN TINOP 7Q4L ADX 2 5 7QJ= LDX 1 A1+BPTR+4(2) 7R3W LDXC 0 IWAIT-A1(1) 7RHG BCC NOW2 7S36 SBN 1 A1 7SGQ STO 0 IWAIT(1) 7T2B LDX 6 2 7TG2 HUNTACT CPAT,2,1 7T^L FPUT 7WF= LDX 2 6 7WYW BRN NOW1 7X2? # 7X3N #UNS CRAMP 7X55 ( 7X6G ZLIM 7X7X BRUSEN XNBR,1 [J IF NO USER 7X9# LDX 6 JOBNO(1) 7X=P DOWN PROCONTX,21 [TRY TO SEND INTO LIMBO 7X#6 BRN NSTPD [NOT CURRENTLY POSSIBLE 7X*H BRN SMARKED [BEING SENT INTO LIMBO 7XBY ) 7XDG # 7XY6 NOWAT CALL 6 SLINE [RELOCATE THE ENTRY. 7YCQ BRN TINOP [NONE - CHECK INOPERABILITY. 7YXB ADX 2 5 7^C2 NOW1 LDX 1 A1+4+BPTR(2) [CHECK IF ALREADY FINISHED 7^WL NOW2 ANDN 7 #37 [ENSURE AVAILABILITY MARKER IS O.K. 82B= LDXC 0 A1+4+FOURTHWD(2) [AFTER THE COORDINATIONS. 82TW BCC OKAV 83*G ORN 7 #40 83T6 OKAV BZE 1 NODCB 84#Q SETMO LDN 0 #400 [MARK ACTIVITY AS "DEALT WITH". 84SB ORS 0 IWAIT-A1-FPTR(1) 85#2 VPDAT SBN 5 4 85RL DCH 7 A1+4+FOURTHWD(2) [RESET THE IDENTIFIER ENTRY. 86?= BPZ 5 OLINE [J. BACK FOR NEXT. 87=G WAIT COOR4 #62 [GETS WOKEN UP EVERY FONINTP SECONDS. 889Q LDX 5 AWORK2(2) [RESET THE POINTERS FOR 88PB SLL 5 2 [ANOTHER SCAN THROUGH THE BLOCK. 8992 LDX 4 AWORK2(2) 89NL SBN 5 4 8=8= OLINE CALL 6 SLINE [RELOCATE THE ADEVS BLOCK. 8=MW BRN TINOP [NONE - GONE INOPERABLE? 8?7G BRN SLOOP 8?M6 # 8#6Q NSTPD CALL 6 SLINE [FIND POINTER AGAIN. 8#LB BRN TINOP [MAY HAVE CLEARED UP ON INOPERABLE. 8*62 ANDN 7 #37 8*KL ADX 2 5 8B5= LDX 1 A1+4+BPTR(2) [J. IF STILL BUSY. 8BJW LDXC 0 A1+4+FOURTHWD(2) [RESET AVAILABLE BIT, 8C4G BCC PKAV [TO BRING UP TO DATE. 8CJ6 ORN 7 #40 8D3Q PKAV BNZ 1 VPD2 8DHB NODCB ANDN 7 #73 [UNSET THE "SCANNING" BIT, IF SET. 8DR8 NDCB1 8F32 BCT 4 VPDAT [J. IF NOT ALL LINES YET FINISHED. 8FGL DCH 7 A1+4+FOURTHWD(2) [MAY NOT BE NECCESSARY, BUT PLAY SAFE 8G2= SETNCORE IWAIT-A1+1,1,AMXOR,ADCB,,1,2 8GFW [SET UP A DUMMY DCB FOR ROUTING 8G^G STOZ IDENTNO(1) 8HF6 STOZ ISTATUS(1) [SET DATA WORDS TO ZERO 8HYQ STOZ IWAIT(1) 8JDB CALL 6 SLINE [RELOCATE THE ROUTING BLOCK. 8JY2 BRN TINOP [MAY HAVE BEEN FREED IF INOPERABLE. 8K82 RING2CHK A1+FPTR(1),A1+FPTR(2)[SET UP DUMMY ROUTING ENTRY. 8KFG LDN 5 0 [SET UP AMXOR/IOUT CONTAINING 8KFW CALL 6 SETIOUT [STOP REMOTE INPUT 8KG= CALL 6 OUTCHAIN [CHAIN IOUT BLK FOR OUTPUT 8KGL TESTINOPA 8KGN ... LDX 2 IPBRING(3) 8KGQ ... LDCT 0 #20 8KGS ... ANDX 0 IPBSW-IPBRING(2) 8KGW ... BNZ 0 SCLOSEDOWN 8KH2 MHUNTW 1,AMXOR,ADCB 8KHB LDX 6 IPBSW(3) [X3->AMOP/IPBIN STILL 8KHQ BNG 6 SCLOSE [J TO SEND CLOSE DOWN IF IPB INOP 8KJ6 LDCT 0 #401 [ASLEEP,CHAIN SUPERVISORY SEG BITS 8KJG ORN 0 #400 [SET MOPPING OFF BIT SO IPBIN CRASH 8KJW ORS 0 IWAIT(1) [CLOSES IDENT WHEN FAIL RECEIVED 8KK= COOR1 [WAIT UNTIL SUP SEGMENT IS CHAINED 8KKL HUNTW 1,AMXOR,IDATSG [OR INOPERABILITY OCCURS 8KL2 BNG 1 TESTINOPA [J TO TEST FOR INOPERABILITY 8KLB FREECORE 1 [END OF REMOTE INPUT OR ILLEGAL REPLY 8KLQ LDN 5 3 [SET UP AMXOR/IOUT CONTAINING 8KM6 CALL 6 SETIOUT [END OF IPB OUTPUT 8KMG CALL 6 OUTCHAIN [CHAIN IOUT BLK FOR OUTPUT 8KMW LDN 7 125 [APPROX 25 SECS WAIT ALLOWED 8KN= TESTINOPB 8KNL LDX 6 IPBSW(3) [B8,B15 LEFT SET IN IWAIT 8KP2 BNG 6 TFREED [J TO SEND CLOSE DOWN IF IPB INOP 8KPB COOR3 #41 [WAIT 1/5 SECOND 8KPQ HUNTW 1,AMXOR,IDATSG 8KQ6 BPZ 1 TFREE [J IF SUPERVISORY SEG RECEIVED 8KQG BCT 7 TESTINOPB [J IF FURTHER WAIT ALLOWED 8KQW BRN TFREED [CANNOT WAIT ANY LONGER 8KR= TFREE 8KRL FREECORE 1 [END OF REM OUTPUT OR ILLEGAL REPLY 8KS2 TFREED 8KSB MHUNTW 1,AMXOR,ADCB 8KSQ SCLOSE 8KT6 STOZ IWAIT(1) [CLEAR B8,B15 MARKERS (IF SET) 8KTG SCLOSEDOWN 8KTW LDN 5 6 [SET UP AMXOR/IOUT CONTAINING 8KW= CALL 6 SETIOUT [CLOSE DOWN SEGMENT 8KX= LDX 2 IPBRING(3) [FIND THE IPBOUT ACTIVITY. 8LBW SBN 2 IPBRING 8LWG BXE 2 3,NOSLP [J. IF NO IPBOUT ANYMORE. 8MB6 MHUNTW 1,AMXOR,IOUT 8MTQ LDX 6 2 [CHAIN IN THE "SYSTEM CLOSE" ORDER. 8N*B LDCT 4 #101 8NT2 CHAIN 1,2 8P#L LDX 2 6 [AND WAKE THE ACTIVITY IF NECCESSARY. 8PS= ANDX 4 IPBSW(2) 8Q?W BZE 4 NOSLP 8QRG ERS 4 IPBSW(2) 8R?6 FPUT 8RQQ NOSLP COOR1 [WAIT UNTIL CLOSED DOWN. 8S=B XFIN LDCT 4 #20 [UNSET THE MOPPING OFF BIT. 8SCJ ORN 4 1 [AND "IPB INOP MESS SENT" BIT,IF SET 8SJQ ORS 4 IPBSW(3) 8SQ2 ERS 4 IPBSW(3) 8SW9 XEND 8SXL JV7900 CPPTR(3),ZNDP [IPB IS A VIRTUAL 7900 : SKIP 8S^3 [DISENGPER MACRO AS IT IS NOT VALID 8T2D [FOR V7900'S 8T3T DISENGPER CPPTR(3) 8TFC BRN WNDP 8TJ2 ZNDP CLCOUNT CPPTR(3),GEORGE 8TP= WNDP LONGON #30 [WAKE UP WAITING ACTIVITIES 8W8W CLALLOC 8WNG BRN WNDUP 8X86 # 8XMQ TINOP LDN 7 0 [TEST & J. IF IPBIN ASLEEP WHILE INOP 8Y7B LDCT 4 #20 8YM2 UINOP ADSC 7 CHAINADD(3) [(SETS CHAD +VE. SO WON'T BE WOKEN UP 8YWS ... BCC WUNS 8^6L ... LONGON1 IPBMPWS,CPPTR(3) 8^BD ... BRN XFIN 8^L= WUNS ANDX 4 IPBSW(3) [OTHERWISE WAIT UNTIL RESTART NOTICES 925W BZE 4 XEND [MOP OFF BIT & CLOSES DOWN. 92KG COOR4 #30 9356 BRN WUNS 93JQ # 944B # MOP ON COMMAND : CHECK ALREADY MOPPED OFF , RIGHTED & NOT ONLINE 94J2 # 953L ON3 95?D JWRONG ,T6A [J. UNIT IS WRONGED 95*B ... LDCT 7 2 95C# ... ANDX 7 IPBSW(3) 95F= ... BNZ 7 T5 95H= JALLOC ,PON1 9Q3G BRN PON 9QH6 PON1 JONL ,T6A 9R2Q LDCT 7 #20 [OTHERWISE IS IT CURRENTLY BEING 9RGB ANDX 7 IPBSW(3) [MOPPED OFF? IF SO REMEMBER, 9S22 BZE 7 T7 [ELSE ERROR. 9SFL PON LDCT 6 #10 [J. IF ALREADY BEING MOPPED ON. 9S^= ANDX 6 IPBSW(3) 9TDW BNZ 6 T6B 9TJR ... JWTBWR ,T6A 9TNN YMOPON XBI,T6C [J. IF IDF SAYS NO. 9W35 #UNS CRAMP 9W5N ( 9W8? LDN 5 0 [INDICATE NON-NULL CONFIG IN IDF 9W=W UCONFA 9W*F ) 9WD6 LDCT 6 #10 [SET MARKER TO SHOW MOPPING ON. 9WXQ ORS 6 IPBSW(3) 9WXY JV7900 CPPTR(3),TESOF [IPB IS A VIRTUAL 7900 : IGNORE ANY 9WY2 [NEWSPEC PARAMETER AS THE IDF ALREADY 9WY4 [HAS THE REQUIRED CONFIGURATION 9WYB #UNS CRAMP 9W^2 ( 9W^L LDN 6 2 [SHORT FORM (NS) 9X2= UCONFC 9X2W PARABEG 1,6,XNS(1) [LOOK FOR PARAMETER 9X3G MHUNT 2,CPB,CUNI 9X46 LDX 0 ANUM(2) 9X4Q BPZ 0 UCONFR [J IF PARAM FOUND 9X5B SBN 6 7 9X62 BZE 6 UCONFG [J IF NEITHER FORM PRESENT 9X6L LDN 6 7 9X7= ADN 1 1 9X7W BRN UCONFC [J TO TEST FOR LONG FORM 9X8G UCONFG 9X96 BZE 5 TESOF [J IF NON-NULL CONFIG IN IDF 9X9Q LDX 2 FX2 9X=B LDX 4 PJNOCONF(1) [OUTPUT MESSAGES 9X?2 CALL 5 OUTPUT [NO CONFIG IN IDF 9X?L LDX 4 PJCONFUPD(1) [...CONFIG UPDATE BEING TAKEN 9X#= CALL 5 OUTPUT 9X#W LDN 5 1 [RESET MARKER WD 9X*G UCONFR 9XB6 ORX 5 GSIGN [SET CONFIG REQD MARKER 9XBQ ) 9XCB TESOF ANDX 7 IPBSW(3) [WAS IT BEING MOPPED OFF? & STILL IS? 9XX2 BZE 7 OKOFF 9YBL LONGHALT TESOF,#30 [IF SO WAIT FOR CLOSE DOWN TO FINISH. 9YW= BRN TESOF 9^*W # 9^B^ #UNS CRAMP 9^D4 ( 9^F7 OKOFF 9^G= LDX 0 5 9^H* SRC 0 1 9^JD BNG 0 OKOFFA [J IF NULL CONFIG SO NO BLK 9^KH BPZ 5 OKOFFA [J IF NO CONFIG UPDATE REQD 9^LL MFREEW IDF,IDENTIFIERS 9^MP OKOFFA 9^N8 CALL 6 V7900MOPON [IF V7900,USE DIFFERENT STARTUP ROUT. 9^N* BRN REP3 [V7900 : SKIP THIS STARTUP ROUTINE 9^NS GETACT AMSCAN,IPBTYPE,1 [GET SCANNING ACTIVITY 9^PX ) 9^R2 #UNS CRAMP 9^S5 #SKI =24K OKOFF GETACT AMSCAN,IPBTYPE,1 [GET SCANNING ACTIVITY. =2*6 LDX 2 BPTR(2) =2SQ FPUT [& SET IT GOING. =3#B LDX 2 BPTR(2) =3B# #UNS CRAMP =3D= ( =3G8 BPZ 5 UCONFV [J IF NO CONFIG UPDATE REQD =3J6 LINKSET 2,SLLNK(1) =3L4 BRN UCONFW =3N2 UCONFV =3PY ) =3S2 LINKSET 2,SKLNK(1) =3^8 #UNS CRAMP =46B UCONFW =4?L LINKSET 3,RDLNK(1) =4R= STO 3 ACC3(2) [IPBIN'S ADDRESS. =5=W LDX 7 CPPTR(3) =5QG STO 7 CPPTR(2) =5XN #UNS CRAMP =64W BNG 5 UCONFY =6=6 # =6PQ ON4 LDX 2 FX2 =79B REP1 LDX 3 FPTR(2) =7P2 REP2 LDX 0 ATYPE(3) [CHAIN ANY IDF TYPE BLOCKS =88L BXGE 0 CACT,REP3 [THE NEW ACTIVITY. =8N= LDCH 6 ATYPE(3) =97W SBN 6 IDF/64 =9MG LDX 3 FPTR(3) ==76 BNZ 6 REP2 ==LQ CHAIN BPTR(3),BPTR(2) =?6B BRN REP2 =?L2 # =#5L REP3 ORX 4 GSIGN [RESET 'ON' SWITCH =#K= SETALLOC =*4W WNDUP LDX 6 PJMOP3(1) =*JG T6 LDX 2 FX2 =*PN #UNS CRAMP =*WW LDN 5 0 [MARKER TO INDICATE PATH THROUGH =B46 OUTBLOCN 8 =BHQ BPZ 4 NOTCL =BK= JV7900 ,NOTCL =BL* #UNS CRAMP =BNY ( =BRH UCONFY =BW6 LDX 2 FX2 =BYP ) =C3B CLCOUNT ,GEORGE =CH2 CLCOUNT ,FAIL =CN8 #UNS CRAMP =CTB BNG 5 NFERR =D2L NOTCL LDXC 4 4 =DG= LDN 5 0 =DHD #SKI JWPHASE4 =DJL ( =DKS LDX 4 PJMOP3(1) =DM2 SBX 4 6 [J IF NOT MOP =DN8 BNZ 4 NOTCOMP [COMPLETED MESSAGE =DND ... JV7900 ,NOHLS =DNN [ [DO NOT TELL HLS OF V7900... =DNS [ AS IT DOES NOT USE THEM - THEY CANNO =DNY [ BE ONLINED =DPB LGEOG ,7 [GEOGRAPHIC NUMBER =DQJ LDX 4 5 =DRQ SLL 4 11 =DSY ORX 7 4 [ADD MOP ON/OFF BIT =DW6 HLSINFORM XBI,MOP,,7 =DWG ...NOHLS =DWW ... JALLOC ,NFERR =DX# NOTCOMP =DYG ) =D^W LDX 7 ZSWI(1) =FFG CALL 4 POUT [OUTPUT SUBMESSAGE =F^6 LGEOG ,5 =GDQ GEOPACK 5,5,1 =GYB LDX 7 ZGEO(1) =HD2 CALL 4 POUT [OUTPUT GEOG. NO. =HXL LDX 4 PJMOP3(1) =JC= SBX 4 6 [MOP COMPLETE MESSAGE =JWW BNZ 4 NTNF [-> NO =KBG LGPERIS ,5 =KW6 BZE 5 NTNF =L*Q LDX 7 ZTRA(1) =LTB CALL 4 POUT [OUTPUT TRANSFER COUNT =M*2 LFAILS ,5 =MSL BZE 5 NTNF =N#= LDX 7 ZFAI(1) =NRW CALL 4 POUT [OUTPUT FAIL COUNT =P?G NTNF =PR6 MARKAXES =Q5H ... LDX 4 6 =QCY ... CALL 5 OUTPTB =QQB NFERR ENDCOM =R=2 # =R=H ...POFFST =R?4 ... LDN 5 2 =R?K ... LDX 6 PMPA(1) =R#6 ... CALL 7 SPARA =R#M ... LDX 0 ANUM(1) =R*8 ... LDX 1 FX1 =R*P ... BNG 0 T6B =RB= ... LDCT 4 #20 =RBR ... LDX 2 IPBRING(3) =RC# ... ORS 4 IPBSW-IPBRING(2) =RCT ... CALL 6 SLINE =RDB ... BRN NFERR =RDX ... LDX 1 A1+BPTR(2) =RFD ... BZE 1 NFERR =RF^ ... SBN 1 A1 =RGG ... CALL 6 SUBACT =RH3 ... BRN NFERR =RHJ ... BRN NFERR =RJB XBI GEOERR 1,BREAKIN! [CANT HAVE BREAK-IN =RPL #SKI K6MOPCOM>99-99 =S9= ( =SNW MENDAREA 50,K100MOPCOM =T8G ) =TN6 #END ^^^^ ...61225152001400000000