HALT5

(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

HALT5.txt
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
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1