SUBRELT

(GIN Macro)

Defined in: COREMACROS

Used in: CDCIPB864, CLOSEALT864, CLOSEND867, IPBCCA867, IPBCCD867, IPQUAKER865

SUBRELT.mac.txt
 B?RJ ...[??? SUBRELT SECT CENT FGN 32 DOC   
 B#3B    #   
 B#H2    # DELETE A RING FROM THE BLOCK,FIRST DERINGING IT,IT THEN MOVES UP ANY  
 B*2L    # SUBSEQUENT RING ELEMENTS UPDATING THEIR POINTERS. THE BLOCK IS SHORTEN
 B*G=    #   
 B*^W    #MAC  SUBRELT   
 BBFG    #STR  %A,2  
 BB^6          LDX   2  %A                  [ADDRESS OF RING ELEMENT 
 BCDQ          STO   2  GEN0 
 BCYB          LDX   0  BPTR(2)  
 BDD2          SMO      FPTR(2)  
 BDXL          STO   0  BPTR 
 BFC=          LDX   0  FPTR(2)  
 BFWW          SMO      BPTR(2)  
 BGBG          STO   0  FPTR 
 BGW6          SMO      BSTART(2)
 BH*Q          LDN   2  FPTR(2)             [ADDRESS OF BLOCK
 BHTB          LDX   0  ARINGNO(2)   
 BJ*2          SRL   01 15                  [X0=LENGTH OF RING ELEMENTS  
 BJSL    #STR  1,%B  
 BK#=    (   
 BKRW          STO   2  GEN1 
 BL?G          STO   3  GEN2 
 BLR6          STO   7  GEN3 
 BM=Q          SRL   1  9                   [X1=TOTAL NO OF RINGS
 BMQB          LDX   3  GEN0 
 BN=2          SBN   3  A1(2)
 BNPL          DVS   2  0                   [X3=NO OF RING ELS UP TO CONDEMNED ON
 BP9=          SBN   1  1(3)                [X1=NO OF RINGS TO BE MOVED  
 BPNW          LDX   3  0                   [X3=LENGTH OF RING ELEMENTS  
 BQ8G          LDX   0  1                   [X0=NO OF RINGS TO BE MOVED  
 BQN6          BZE   0  MS1                 [J IF NO RING ELEMENTS TO MOVE   
 BR7Q          LDX   2  GEN0                [MOVE DESTINATION ADDR   
 BRMB          LDX   1  2
 BS72          ADX   1  3                   [MOVE SOURCE ADDR
 BSLL    MS3   LDX   7  BPTR(1)  
 BT6=          BZE   7  MS2                 [J IF ELEMENT IS NULL
 BTKW          SMO      FPTR(1)             [ ELSE UPDATE RING   
 BW5G          SBS   3  BPTR 
 BWK6          SMO      7
 BX4Q          SBS   3  FPTR 
 BXJB    MS2   ADS   3  BSTART(1)
 BY42          MOVE  1  0(3)                [MOVE DOWN ELEMENT   
 BYHL          ADX   1  3
 B^3=          ADX   2  3
 B^GW          BCT   0  MS3  
 C22G    MS1   LDX   0  3                   [X0=LENGTH OF RING ELEMENT   
 C2G6          LDX   2  GEN1 
 C2^Q          LDX   3 GEN2  
 C3FB          LDX   7  GEN3 
 C3^2    )   
 C4DL          LDN   1  1
 C4Y=          SBS   1  ARINGNO(2)          [UPDATE ARINGNO  
 C5CW          LDX   1  ALOGLEN(2)   
 C5XG          SBX   1  0                   [NEW LOGICAL LENGTH  
 C6C6          SHORTEN  2,0(1)   
 C6WQ          LDX   1  FX1  
 C7BB          LDX   2  FX2  
 C7W2    #NOR
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1