{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: HALT5)}}
====== HALT5 ======
(George Source)
**Macros used:** [[george:macro:ALTLEND|ALTLEND]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:FPCACA|FPCACA]], [[george:macro:FREECORE|FREECORE]], [[george:macro:HUNT|HUNT]], [[george:macro:HUNT2|HUNT2]], [[george:macro:HUNTW|HUNTW]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MONOUT|MONOUT]], [[george:macro:NAME|NAME]], [[george:macro:OUTBLOCK|OUTBLOCK]], [[george:macro:OUTMILL|OUTMILL]], [[george:macro:OUTNULL|OUTNULL]], [[george:macro:OUTNUM|OUTNUM]], [[george:macro:OUTPACKC|OUTPACKC]], [[george:macro:OUTPARAM|OUTPARAM]], [[george:macro:OUTPARN|OUTPARN]], [[george:macro:PHOTO|PHOTO]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:SPARANOT|SPARANOT]], [[george:macro:TESTMOVE|TESTMOVE]], [[george:macro:TRACE|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