(George Source)
Macros used: ALTLEND, ENDCOM, FPCACA, FREECORE, HUNT, HUNT2, HUNTW, MENDAREA, MONOUT, NAME, OUTBLOCK, OUTMILL, OUTNULL, OUTNUM, OUTPACKC, OUTPARAM, OUTPARN, PHOTO, SEGENTRY, SETUPCORE, SPARANOT, TESTMOVE, TRACE
22FL #LIS K0HALT>K0ALLGEO>K0GREATGEO>K0COMMAND 22^= #SEG HALT5 [R.H.THOMPSON F6 23DW #OPT K6HALT=0 23YG 8HHALT 24D6 SEGENTRY K1HALT,XX1H 24XQ PHCATCH #77777700 25CB ZMEM 12HIN MEMBER 25X2 #DEF XBLEN=3 [SO THAT APEDSP1+XBLEN IS A RELATIVE 26BL [POINTER TO MESSAGE IN APED BLOCK 26W= # 1 27*W # 1 THE HALT SEGMENT HANDLES THE COMMAND -HALT-. THE ACTION TAKEN 27TG # 1 DEPENDS ON THE CONDITIONS UNDER WHICH THE HALT WAS ISSUED 28*6 # 1 28SQ # 2 29#B # 2 INPUT- 1. CPB/CALAS BLOCK GENERATED BY THE COMMAND PROCESSOR. 29S2 # 2 2. X2 POINTS TO THE COMMAND ACTIVITY BLOCK. 2=?L # 2 2=R= # 3 2?=W # 3 OUTPUT-1. OLD EVENT BLOCK DESTROYED (APED) 2?QG # 3 2. NEW APED BLOCK FORMED FOR -HALT- 2#=6 # 3 3. CATEGORY BITS CHANGED TO 6 IF COMMAND ISSUED AT BREAK-IN 2#PQ # 3 DURING THE RUNNING OF THE OBJECT PROGRAM. 2*9B # 3 2*P2 # 4 ERROR ACTION- 1. GEOERR IF CPB/CALAS BLOCK NOT FOUND 2B8L # 4 2BN= # 4 NO CHECK IS MADE TO SEE WHETHER CATEGORY BITS 2C7W # 4 ARE ALREADY 6 2CMG # 4 2D76 # 7 2DLQ # 7 FIXED STORE SEGMENTS CALLED - NONE EXCEPT VIA MACROS 2F6B # 7 BACKING STORE CHAPTERS CALLED - NONE EXCEPT VIA MACROS 2FL2 # 7 2G5L XX1H 2GK= PHA1 2H4W #SKI K6HALT>699-699 2HJG TRACE 1,PHA1 2J46 FPCACA 3,2 2JHQ LDX 7 ANM(3) 2K3B ANDN 7 3 2KH2 STO 7 AWORK1(2) [STORE MEMBER NO. 2L2L LDN 5 ACOMMUNE4(2) 2LG= LDN 4 ZMEM(1) 2L^W MOVE 4 3 2MFG LDX 2 FX2 2M^6 LDEX 7 EXT+10(2) 2NDQ #SKI G4 2NYB ( 2PD2 HUNT2 3,BSTB,BSCB 2PXL LDX 4 AQUOTA(3) [QUOTA 2QC= ANDN 4 #7777 2QWW LDX 5 ATSWAPS(3) [PAGETURNS 2RBG LDX 3 FX2 2RW6 STO 4 AWORK3(3) 2S*Q STO 5 AWORK4(3) 2STB ) 2T*2 LDX 4 CONTEXT(2) 2TSL SLL 4 9 2W#= BPZ 4 PHA4 [JUMP IF NOT BREAK-IN 2WRW #SKI G3 2X?G LDX 3 FX2 2XR6 PHA2 HUNT2 3,CPB,CALAS [FIND THE CALAS 2Y=Q LDEX 4 CPBCPLEV(3) [BLOCK AT FIRST 2YQB TXU 4 7 [BRK IN LEVEL 2^=2 BCS PHA2 2^PL PHA3 329= #SKI K6HALT>699-699 32NW TRACE 1,PHA3 338G LDX 4 CPBFSD(3) [GET CATEGORY BITS 33N6 #SKI K6HALT>699-699 347Q TRACE 4,CATEGIN 34MB LDX 5 4 [SAVE CATEGORY BITS 3572 ANDN 4 #77 [CLEAR ALL BUT LAST 6 BITS 35LL SBN 4 5 [ASSUME CATEGORY IS 5 366= BNZ 4 PHA4 [DON'T TOUCH 36KW ANDX 5 PHCATCH(1) [MASK OUT LAST 6 BITS 375G ORN 5 #6 [SET TO 6 37K6 STO 5 CPBFSD(3) [STOW BACK IN CPB 384Q PHA4 38JB #SKI K6HALT>699-699 3942 TRACE 1,PHA4 39HL HUNTW 3,APED,ADELETE 3=3= BNG 3 PHA42 [NO, TRY FOR ANEVENT 3=GW FREECORE 3 [YES, SO FREE IT 3?2G BRN PHA44 [EITHER ONE OR THE OTHER, NOT BOTH 3?G6 PHA42 HUNTW 3,APED,ANEVENT 3?^Q BNG 3 PHA44 [NONE, SO DON'T FREE IT 3#FB FREECORE 3 [YES, SO SCRUB IT 3#^2 PHA44 3*DL SPARANOT 1 [GET USER MESSAGE, IF ANY 3*Y= HUNT 3,CPB,CUNI [FIND BLOCK FORMED BY PARA-MACRO 3BCW LDX 6 ANUM(3) [TEST FOR NO PARAMETERS 3BXG BNG 6 PHA5 [IF NEGATIVE 3CC6 BNZ 6 PHA6 [PARAMETER EXISTS 3CWQ PHA5 3DBB #SKI K6HALT>699-699 3DW2 TRACE 1,PHA5 3F*L NAME 3,APED,ANEVENT [FROM CPB/CUNI TO APED/ANEVENT 3FT= PHOTO 5 3G#W ALTLEND 3,XBLEN,APED,ANEVENT [JUST PREFACE LENGTH 3GSG TESTMOVE 5,PHA55 [BRANCH IF NO HUNT NEEDED 3H#6 PHA53 3HRQ #SKI K6HALT>699-699 3J?B TRACE 1,PHA53 3JR2 HUNTW 3,APED,ANEVENT 3K=L PHA55 3KQ= #SKI K6HALT>699-699 3L9W TRACE 1,PHA55 3LPG STOZ APEDSP1+2(3) [ZERO FOR CHARACTER COUNT 3M96 LDX 7 AWORK1(2) 3MNQ STO 7 APEDSP1(3) [MEMBER NO. 3N8B LDN 5 APEDHALT [CONTROL VALUE FOR IF COMMAND 3NN2 STO 5 APEDSP1+1(3) 3P7L #SKI G4 3PM= LDN 5 7 [NO. OF WDS. FOR PARAMS. +1 WORD EACH 3Q6W #SKI G3 3QLG LDN 5 3 [2-WORD TIME + 1 WORD EACH PARAM. 3R66 BZE 7 PHA57 3RKQ ADN 5 4 [3-WORD PARAM FOR MEMBER NO. + 1 WORD 3S5B PHA57 OUTBLOCK 5 [GET THE MONITORING FILE BLOCK 3SK2 OUTMILL [TAG WITH THE TIME 3T4L #SKI G4 3TJ= ( 3W3W #SKI JNLPACK 3WHG ( 3X36 LDX 4 AWORK3(2) 3XGQ LDX 5 AWORK4(2) 3Y2B OUTPACKC 4,1,QUOTA [OUTPUT QUOTA 3YG2 OUTPACKC 5,1,PAGETURN [OUTPUT PAGETURNS 3Y^L ) 3^F= #SKI JNLPACK<1$1 3^YW ( 42DG OUTNUM AWORK3(2),0 [OUTPUT QUOTA 42Y6 OUTNUM AWORK4(2),0 [OUTPUT PAGETURNS 43CQ ) 43XB ) 44C2 BZE 7 PHA10 [NO MEMBER NO. 44WL LDX 3 GSIGN 45B= ADX 3 2 45TW DCH 7 ACOMMUNE6(3) [APPEND MEMBER NO. TO CHAR. STRING 46*G OUTPARN 11,ACOMMUNE4 [PREPARE PARAM FOR MEMBER NO. 46T6 # NO MESSAGE 47#Q BRN PHA10 [CARRY ON SERGEANT 47SB PHA6 48#2 #SKI K6HALT>699-699 48RL TRACE 1,PHA6 49?= LDEX 5 ANUM(3) [GET CHARACTER COUNT 49QW SBN 5 41 [MAX. TO BE PASSED ON ANYWAY (+1) 4==G BNG 5 PHA7 [40 OR LESS CHARACTERS 4=Q6 PHA65 4?9Q #SKI K6HALT>699-699 4?PB TRACE 1,PHA65 4#92 LDN 5 40 [TRUNCATE TO 40 4#NL BRN PHA8 [SKIP ROUND TO GET CORE 4*8= PHA7 4*MW #SKI K6HALT>699-699 4B7G TRACE 1,PHA7 4BM6 ADN 5 41 [CONFLUENCE OF CODE STREAMS 4C6Q PHA8 4CLB #SKI K6HALT>699-699 4D62 TRACE 1,PHA8 4DKL LDX 6 5 [SAVE COUNT FOR GETTING CORE 4F5= LDX 7 6 [AND AGAIN TO MOVE MESSAGE 4FJW ADN 5 XBLEN*4+3 [ROUND AND INCLUDE APED/ANEVENT 4G4G SRL 5 2 [REDUCE TO WORDS 4GJ6 SETUPCORE 5,5,APED,ANEVENT [GET SPACE FOR AND NAME NEW BLOCK 4H3Q HUNT 3,CPB,CUNI [GET MESSAGE BLOCK BACK 4HHB LDX 4 5 [SAVE BLOCK START ADDRESS 4J32 ADN 7 3 [ROUND FOR WORD MOVE 4JGL SRL 7 2 [REDUCE TO WORDS 4K2= ADN 3 APARA [MOVE UP TO MESSAGE -FROM- 4KFW ADN 4 APEDSP1+XBLEN [MOVE UP TO MESSAGE -TO- 4K^G SMO 7 [PURE PROCEDURE MODIFY 4LF6 MOVE 3 0 [MOVE THE MESSAGE 4LYQ LDX 3 5 [OTHER INITIALISATION 4MDB PHA9 4MY2 #SKI K6HALT>699-699 4NCL TRACE 1,PHA9 4NX= STO 6 APEDSP1+2(3) [CHARACTER COUNT 4PBW LDX 5 7 [SAVE MESSAGE WORD COUNT 4PWG LDX 7 AWORK1(2) 4QB6 STO 7 APEDSP1(3) [MEMBER NO. 4QTQ LDN 4 APEDHALT [CONTROL VALUE FOR IF COMMAND 4R*B STO 4 APEDSP1+1(3) 4RT2 #SKI G4 4S#L ADN 5 9 [NO. OF WDS. FOR PARAMS. +1 WORD EACH 4SS= #SKI G3 4T?W ADN 5 5 [2-WORD TIME + 1 WORD EACH PARAM. 4TRG BZE 7 PHA91 4W?6 ADN 5 3 [3-WORD PARAM 4WQQ PHA91 OUTBLOCK 5 [GET MONITORING FILE BLOCK 4X=B OUTMILL [TIME TAG 4XQ2 #SKI G4 4Y9L ( 4YP= #SKI JNLPACK 4^8W ( 4^NG LDX 4 AWORK3(2) 5286 LDX 5 AWORK4(2) 52MQ OUTPACKC 4,1,QUOTA [OUTPUT QUOTA 537B OUTPACKC 5,1,PAGETURN [OUTPUT PAGETURNS 53M2 ) 546L #SKI JNLPACK<1$1 54L= ( 555W OUTNUM AWORK3(2),0 [OUTPUT QUOTA 55KG OUTNUM AWORK4(2),0 [OUTPUT PAGETURNS 5656 ) 56JQ ) 574B BZE 7 PHA92 57J2 LDX 3 GSIGN 583L ADX 3 2 58H= DCH 7 ACOMMUNE6(3) [APPEND MEMBER NO. TO CHAR. STRING 592W OUTPARN 11,ACOMMUNE4 [PREPARE PARAM FOR MEMBER NO. 59GG BRN PHA93 5=26 PHA92 OUTNULL [MEMBER NO. NOT APPLICABLE 5=FQ PHA93 OUTPARAM 6,APEDSP1+XBLEN,APED,ANEVENT 5=^B PHA10 5?F2 #SKI K6HALT>699-699 5?YL TRACE 1,PHA10 5#D= #SKI G4 5#XW MONOUT HUSH2G4 5*CG #SKI G3 5*X6 MONOUT HUSH2 [SHOOT IT AWAY 5BBQ # PRODUCES - TIME:HALTED IN MEMBER N: MESSAGE (N>0) 5BWB # OR - TIME:HALTED : MESSAGE (N=0) 5CB2 PHA11 5CTL #SKI K6HALT>699-699 5D*= TRACE 1,PHA11 5DSW ENDCOM [RETURN TO COMMAND PROCESSOR 5F#G MENDAREA 20,K100HALT 5FS6 #END ^^^^ ...21014551000100000000