12 22FL #LIS K0CANTDO>K0ALLGEO>K0GREATGEO 14 22LS ... SEG CANTDO,867,SECTION CENT,,G110 4 22S2 ...[ 15 22_8 ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 13 236B ...[ THIS EXCLUDES CODE UNDER #SKI G110 4 23?J ...[ 7 23DQ ...#OPT G110 = 0 6 23KY ...#SKI G110&1 21 23R6 ...# WITH UGUG EDIT M110 (PLEASE CHANGED TO ****** IN OPERATOR REQUESTS.) 11 23YG SEGENTRY K1CANTDO,SENTRY1 14 248# FSHENTRY K2CANTDO,RESET,RESET,RESET 14 24#9 FSHENTRY K3CANTDO,XCDOWNENT,,XCDOWNENT 5 24D6 ZBLOK 8 24XQ #HAL GMON+AOUT,0 5 252W XCOUT 9 2562 #HAL +CONBUFF+COUT,0 5 2596 XIREM 9 25#= #HAL +CONBUFF+IREMTW,0 5 25CB ONE +1 7 25X2 MASK #60000000 5 26BL TWO +2 6 26W= SPACE #20 6 27*W TAB #77 11 27KN BITDEFS AWORK2,0,SECOND 11 28SQ SYSREQ CATMASK SYSREQ 10 29#B PLEASE 8HPLEASE00 6 29FJ ...#SKI G110&1 19 29LQ ...STAR 8H******00 [ACL 0014 STARS NOT PLEASE 9 29S2 MASKA #600:1 21 2=R= # THIS SEGMENT IS ENTERED IN THE EVENT OF AN ISSUE OF THE OPERATOR'S 21 2?=W # DIRECTIVE - CANTDO. IT SEARCHES THE ACTIVITY CHAIN FOR GMON/AOUT 21 2?QG # BLOCK, THE MESSAGE IN WHICH (IGNORING THE INITIAL PLEASE) MATCHES 21 2#=6 # THE PARAMETER OF CANTDO.IF ONE OR MORE MATCH IS FOUND THE APPROPRI 17 2#PQ # ACTIVITY/IES IS/ARE HUNG ON THE END OF THE LIST. 4 2*9B # 4 2*P2 # 21 2B8L # !!THIS SEGMENT ASSUMES THAT SYSTEM REQUESTS NEVER CONTAIN COMMAS!! 4 2BN= # 12 2C7W # !! AND HAVE ONLY ONE PART !! 4 2CMG # 5 2D76 SENTRY1 9 2DBY STOZ AWORK2(2) 8 2DLQ #SKI K6CANTDO>99-99 4 2F6B ( 6 2FL2 #SKI GENIE 10 2G5L TRACE JTIME,CANTDO 7 2GK= #SKI GENIE<1$1 10 2H4W TRACE K5+K13,CANTDO 4 2HJG ) 20 2J46 # THIS SECTION PASSES ACROSS PARAMETER : IT USES PARAPASS AND 21 2JHQ # THEREFORE ASSUMES THERE IS NO COMMA IN THE MESSAGE FOR OTHERWISE 13 2K3B # TEXT AFTER THE COMMA WILL BE LOST 4 2KH2 # 6 2KQS PASSPARAM 7 2L2L PARAPASS 10 2LG= PASS HUNT 3,CPB,CUNI 13 2L_W LDX 4 ANUM(3) [J IF 14 2MFG BNG 4 XERRO [MISSING 8 2M_6 BZE 4 XERRO 8 2NDQ ANDN 4 #7777 9 2NYB #SKI K6CANTDO>299-299 4 2PD2 ( 9 2PXL TRACE 3,SOURCE 9 2QC= TRACE 4,DESTIN 4 2QWW ) 8 2RBG ADN 3 APARA 21 2RW6 SETNCORE 10,2,ADATA,BCANTDO [BLOCK TO CONTAIN ADDRESSES OF GMON/A 15 2S*Q RESTT STOZ A1(2) [ZEROISE R.H. 8 2STB SMO FX2 17 2T*2 STO 2 AWORK1 [SAVE BLOCK ADDRESS 4 2TSL # 20 2W#= # THIS ROUTINE SEARCHES DOWN ACTIVITY CHAIN LOOKING FOR GHON/AOUT 18 2WRW # BLOCKS WITH A MESSAGE AGREEING WITH AS MUCH OF THE MESSAGE 21 2X?G # ISSUED AS A PARAM TO CANTDO. THE ADDRESSES OF THESE BLOCKS ARE REMEMB. 4 2XR6 # 20 2Y=Q LDN 6 0 [MARKER FOR NO GMON/AOUT BLOCK 18 2YQB LDN 2 BACT [BASE OF ACTIVITY CHAIN 15 2_=2 XCONT LDX 2 FPTR(2) [NEXT BLOCK 16 2_PL LDX 3 2 [PRESERVE ADDRESS 8 329= SBN 3 BACT 17 32NW BZE 3 ZBASE [JUMP IF BACK TO BASE 15 338G LDX 7 ATYPE(2) [BLOCK TYPE 7 3396 #UNS FSHTEST 4 339Q ( 8 33=B TXL 7 CACT 19 33?2 BCS NOTACT [J IF BLOCK NOT AN ACTIVITY 9 33?L LDX 3 AFLAG(2) 7 33#= SLL 3 2 21 33H6 BRN XCONT [CARRYON IF ACT FOR CURRENT MACHINE 5 33HQ WRONGMC 10 33JB LDX 2 ACTRING(2) 19 33K2 SBN 2 ACTRING [PTR TO NEXT ACTIVITY BLOCK 21 33KL LDX 2 BPTR(2) [PTR TO BLOCK BEFORE NEXT ACTIVITY 8 33L= BRN XCONT 5 33LW NOTACT 4 33MG ) 9 33N6 #SKI K6CANTDO>499-499 9 347Q TRACE 7,BLOK 8 34MB SMO FX1 8 3572 TXU 7 ZBLOK 16 35LL BCS XCONT [J IF NOT AOUT 10 375G LDX 0 ARECB+1(2) 17 37K6 BPZ 0 XCONT [OUT IF NOT RETAINED 8 384Q SMO FX1 9 38JB ANDX 0 SYSREQ 18 3942 BZE 0 XCONT [OR NOT SYSTEM-REQUEST 9 39BC LDX 0 ARECB(2) 18 39NS BNG 0 XCONT [OR IF ALREADY CANTDO'NE 9 3=3= MHUNT 3,CPB,CUNI 8 3=GW ADN 3 APARA 20 3?2G LDX 5 2 [TO PRESERVE START OF AOUT BLOCK 9 3CC6 ADN 2 ARECB+2 8 3CWQ LDX 1 FX1 8 3DBB LDX 0 0(2) 8 3DW2 LDX 7 1(2) 9 3F*L ANDX 7 HALFTOP 9 3FT= TXU 0 PLEASE(1) 10 3G#W TXU 7 PLEASE+1(1) 4 3G*T ...[ 4 3GBS ...[ 6 3GCR ...#SKI G110&1 4 3GDQ ...( 11 3GFP ...[ MEND EXCHANGE SCHEME CODE 8 3GGN ... BCC TESTX 18 3GHM ... TXU 0 STAR(1) [ACL0014 CHECK FOR STARS 9 3GJL ... TXU 7 STAR+1(1) 8 3GKK ... BCS TESTA 9 3GLJ ...TESTX ADX 2 MASKA(1) 4 3GMH ...) 4 3GNG ...[ 4 3GPF ...[ 7 3GQD ...#SKI G110&1$1 4 3GRC ...( 18 3GSG BCS TESTA [OK IF NOT ^PLEASE....^ 15 3H#6 ADX 2 MASKA(1) [ELDE IGNORE 4 3HRQ ...) 21 3J?B TESTA LDX 7 4 [TO PRESERVE COUNT OF CHARS IN CANTDO 20 3JR2 TEST LDCH 1 0(3) [THESE 2 INSTRUCTIONS GET FIRST 19 3K=L TESTC LDCH 0 0(2) [LOAD CHAR FROM AOUT BLOCK 8 3KQ= SMO FX1 16 3L9W TXU 0 SPACE [IS IT A SPACE 15 3LPG BCS TESTB [JUMP IF NOT 7 3M96 BCHX 2 / 19 3MNQ BRN TESTC [GO AND GET NEXT CHARACTER 5 3N8B TESTB 9 3NN2 #SKI K6CANTDO>499-499 4 3P7L ( 9 3PM= TRACE 0,X0=CHAR 9 3Q6W TRACE 1,X1=CHAR 4 3QLG ) 17 3R66 TXU 0 1 [COMPARE CHARACTERS 8 3RKQ BCC SSAME 15 3S5B LDX 2 5 [RESTORE X2 20 3SK2 BRN XCONT [GO BACK TO LOOK FOR NEXT BLOCK 21 3T4L SSAME LDN 0 0(2) [WORD ADDRESS REACHED IN AOUT BLOCK 7 3_F= SMO 5 8 3_YW LDEX 1 ARECB 10 42DG ADN 1 ARECB*4+11 14 42Y6 SRL 1 2 [WORDS 18 43CQ ADX 1 5 [WORD AFTER LAST OF BLOCK 7 44C2 TXL 1 0 21 44WL BCC SAME [O.K. IF NOT EXCEEDED END OF MESSAGE 15 45B= LDX 2 5 [RESTORE X2 19 45TW BRN XCONT [GO BACK TO SEARCH ACT CHAIN 7 46*G SAME BCHX 3 / 7 46T6 BCHX 2 / 8 47#Q BCT 7 TEST 8 47SB #SKI K6DEMAND>99-99 9 48#2 TRACE 5,CDOBLOK 4 48RL # 21 49?= # IF THIS IS NOT THE 1ST BLOCK THAT AGREES(NB IF THERE ARE MORE BLOCKS 21 49QW # DISCOVERED THAN THERE IS ROOM FOR IN THE BLOCK SET UP, THIS BLOCK HAS 20 4==G # TO BE LENGTHENED, BUT AS THIS INVOLVES A COORDINATION DURING WHICH 21 4=Q6 # TIME THE BLOCKS MIGHT BE FREED, THE SEARCH HAS TO BE RESTARTED) THEN 20 4?9Q # THE ENTIRE CONTENTS OF THE BLOCK MUST BE COMPARED WITH THOSE OF AN 20 4?PB # EARLIER ONE. IF THEY DISAGREE AN ERROR IS REPORTED, STATING THAT 12 4#92 # THE MESSAGE PARAMETER IS TOO SHORT 4 4#NL # 18 4*8= ADN 6 1 [ADD 1 TO COUNT OF BLOCKS 8 4*MW SMO FX2 18 4B7G LDX 3 AWORK1 [POINTER TO BCANTDO BLOCK 10 4BM6 TXL 6 ALOGLEN(3) 8 4C6Q BCS ZEX 10 4CLB LDX 7 ALOGLEN(3) 17 4D62 ADN 7 5 [NEW REQUIRED SIZE 19 4DKL ALTLEN 3,7,ADATA,BCANTDO [TRY AGAIN WITH MORE SPACE 5 4DM8 RESET 11 4DM_ MHUNTW 2,ADATA,BCANTDO 21 4FJW BRN RESTT [IN THIS CASE SEARCU MUST BE RESTARTE 21 4G4G # THE NEW ADDRESS IS STORED IN BLOCK AND R.H. IS UPDATED.IF IT IS NOT FI 21 4GJ6 # BLOCK FOUND THE LAST BLOCK IS COMPARED WITH THE FIRST ONE. IF THEY DIS 9 4H3Q # AN ERROR IS REPORTED 4 4H=2 ZEX 8 4HSQ SMO A1(3) 9 4J32 STO 5 A1+1(3) 8 4JGL STO 6 A1(3) 8 4K2= SMO FX1 8 4KFW TXL 6 TWO 8 4K_G BCS RESTO 9 4LF6 LDX 1 A1+1(3) 8 4LGN LDX 7 A1(1) 7 4LYQ LDX 3 5 9 4MY2 #SKI K6CANTDO>499-499 4 4NCL ( 9 4NX= TRACE 7,R.H. 10 4PBW TRACE A1(3),R.H. 4 4PWG ) 18 4QB6 TXU 7 A1(3) [COMPARE RECORD HEADERS 17 4QTQ BCS NUNIQ [ERROR IF DIFFERENT 8 4S#L ANDN 7 4095 7 4SS= ADN 7 7 15 4T?W SRL 7 2 [WORDS + 1 5 4X=B VCOMP 9 4XQ2 #SKI K6CANTDO>499-499 4 4Y9L ( 7 4YP= SMO 7 8 4_8W LDX 0 A1(3) 9 4_NG TRACE 0,WORD 4 5286 ) 7 52MQ SMO 7 8 537B LDX 0 A1(1) 9 53M2 #SKI K6CANTDO>499-499 9 546L TRACE 0,WORD 7 54L= SMO 7 19 555W TXU 0 A1(3) [COMPARE BLOCKS WORD FOR WORD 17 55KG BCS NUNIQ [ERROR IF DIFFERENCE 8 5656 BCT 7 VCOMP 15 56JQ RESTO LDX 2 5 [RESTORE X2 8 574B BRN XCONT 8 57=# ZBASE LDX 2 FX2 16 57D= JBS ZFINISH,2,SECOND [J IF SECOND PASS 6 57L9 #UNS FIRSTR 4 57ND ( 19 57QM CDRVTAPE NUNIQ,NONEXIST,6 [CHECK FOR SPECIAL RV MESSAGE 19 57SW BRN QUP [CANTDO ACTIONED SUCCESSFULLY 6 57T5 XFSHNBCDRV 5 57TK ZFINISH 17 57W# BNZ 6 ZIND [J IF MESSAGE FOUND 5 57X5 NONEXIST 10 57Y8 BNZ 6 SECONDPASS 4 57_# ) 18 583L SPARANOT 1 [GET SPACES IN MESSAGE 4 58?D XERR 8 58H= ERROR ERROCANT 8 592W BRN QUP 6 5947 XFSHNBERR 6 596R SECONDPASS 9 59=N BS 2,SECOND 8 59BK BRN RESET 4 59K5 ZIND 8 59RK SMO FX2 9 5=26 LDX 2 AWORK1 8 5=FQ LDCT 3 #400 7 5=_B MARK SMO 6 8 5?F2 LDX 1 A1(2) 8 5?YL ORS 3 A1(1) 8 5#D= BCT 6 MARK 4 5#XW # 20 5*CG # THE FOLLOWING SECTION OF CODE SEARCHES THROUGH THE CONSOLE OUTPUT 21 5*X6 # CHAIN, FREEING ANY BLOCKS THAT CONTAIN THE MESSAGE TO WHICH THE CONTDO 21 5BBQ # APPLIED, UNLESS THE BLOCK REPRESENTS THE BUFFER FOR A CURRENT TRANSFER 4 5BWB # 18 5CB2 LDX 4 1 [PRESERVE BLOCK ADDRESS 19 5CLD LDX 3 BCONSOUT [BASE OF CONSOLE OUTPUT CHAIN 17 5CWW BXE 3 CXCO,QUP [GO UP IF NO BLOCKS 20 5D7# RESTART [IGNORE 1ST BLOCK AS IT MAY BE 15 5DCQ [BEING OUTPUT 17 5DN8 LDX 3 FPTR(3) [SECOND/NEXT BLOCK 16 5DYL NEXT BXE 3 CXCO,QUP [UP IF NONE LEFT 9 5F94 LDX 0 ATYPE(3) 8 5FFG LDX 1 FX1 17 5FPY BXE 0 XCOUT(1),XC [CONBUFF/COUT BLOCK 17 5G2B BXE 0 XIREM(1),XI [CONBUFF/IREMTW BLOCK 21 5G=S BRN RESTART [IGNORE OTHER BLOCKS (USED IN DME) 9 5GH= XC LDX 6 AREC(3) 15 5GRN SBN 6 1 [WORD COUNT 16 5H46 LDN 2 ATEXT(3) [START OF MESSAGE 8 5H#J BRN XCHCH 8 5HK2 XI LDX 6 A1(3) 15 5HTD ANDN 6 #7777 [WORD COUNT 16 5J5W LDN 2 ICBUFF(3) [START OF MESSAGE 5 5JB# XCHCH 18 5JLQ BZE 6 RESTART [J IF NO TEXT IN BLOCK 19 5JX8 SLL 6 2 [CHANGE TO CHARACTER COUNT 20 5K7S LDX 1 4 [RESTORE POINTER TO MESSAGE BLOCK 19 5KDD ADN 1 A1+2 [START OF MESSAGE IN BLOCK 17 5KP6 TRGN LDCH 0 0(2) [FIRST CHAR/NEXT CHAR 9 5L8Q #SKI K6CANTDO>499-499 10 5LNB TRACE 0,CONSCHAR 20 5M82 LDCH 5 0(1) [GET NEXT CHAR FROM MESSAGE BLOCK 9 5P6G #SKI K6CANTDO>499-499 10 5PL6 TRACE 5,MESSCHAR 20 5Q5Q BXU 0 5,RESTART [COMPARE AND JUMP BACK IF UNEQUAL 7 5R52 BCHX 1 / 7 5RJL BCHX 2 / 13 5S4= BCT 6 TRGN [LOOP 9 5SHW #SKI K6CANTDO>199-199 10 5T3G TRACE 3,FREEBUFF 9 5TH6 LDX 5 FPTR(3) 20 5W2Q FREECORE 3 [IF DROPS THROUGH RELEASE BUFFER 7 5WGB LDX 3 5 16 5X22 BRN NEXT [LOOK FOR MORE 6 5X4R XFSHNBCONS 4 5_4Q QUP 10 5_*5 MFREE ADATA,BCANTDO 6 5_D6 ENDCOM 5 5_GW XERRO 18 6266 COMERR JPARMIS,JAMESSAGE [MESSAGE PARAM MISSING 5 628W NUNIQ 10 62S6 MFREE ADATA,BCANTDO 19 62X2 COMERR ATOOSMALL [ERROR PARAMETER TOO SHORT 10 63BL MENDAREA 20,GAPCANTDO 4 63F9 ...#END 6 63HS ...#SKI G110&1 8 63LC ... REQSTARS ON 8 63P2 ...#SKI G110&3-2<1$1 8 63RK ... REQSTARS OFF 2 63W= 8 ____ ...35377446000400000000