MAPBCIRC

(GIN Macro)

Defined in: CLOSE-MACROS

Used in: COMMFILE82

MAPBCIRC.mac.txt
 BM2Y ...[??? MAPBCIRC SECT FILE FGN 11 DOC  
 BM=Q    [   
 BR7Q    #MAC  MAPBCIRC  
 BR9N ...[ THIS MACRO CIRCULATES ALL THE BITS IN A FILE/FMAPP BLOCK BY 1,
 BR?L ...[ REPLACING THE LAST BIT BY THE FIRST BIT (B1). IT WAS WRITTEN SPECIALLY
 BR*J ...[ FOR D.C.F.'S (COMMFILE SEGMENT) AND I SUSPECT THAT THIS IS THE ONLY   
 BRCG ...[ PLACE WHERE IT SHOULD BE USED.
 BRFD ...[   
 BRHB ...[              [%A] = POINTER TO FCB
 BRK# ...[   
 BRMB     MOD  LDX   1  FPTR,%A             [SKIP FSTACK 
 BS72          LDN   0  FILE+FMAPP   
 BSLL          SLL   0  12   
 BT6=    M1MAPBCIRC  
 BTKW          LDX   1  FPTR(1)            [NEXT BLOCK   
 BW5G          BXU   0  ATYPE(1),M1MAPBCIRC [JIF NOT FMAPP BLOCK 
 BWK6          LDN   0  3
 BX4Q          ORS   0  FBCOMM(1)           [FOR CLOSE   
 BXJB          STO   1  GEN0 
 BY42          LDX   2  FBITMOD(1)          [NO. OF BITS IN FMAPP
 BYHL          LDN   1  24   
 B^3=          DVS   1  1                   [X2 = LAST WD., X1 = LAST BIT WITHIN 
 B^GW          STO   1  GEN1                [                                 WD.
 C22G          STO   2  GEN2 
 C2G6          ADN   2  1                   [GIVING NO. OF WDS. IN FMAPP 
 C2^Q    M2MAPBCIRC  
 C3FB          SMO      GEN0 
 C3^2          LDX   0  FBITS-1(2)   
 C4DL          SLC   01 1                   [NEW B23. "OVERFLOW" IN B23 OF X1
 C4Y=          SMO      GEN0 
 C5CW          STO   0  FBITS-1(2)   
 C5XG          SRC   1  1                   ["OVERFLOW" BIT TO B0 OF X1  
 C6C6          BCT   2  M2MAPBCIRC          [MOVE "UP" FMAPP TO NEXT WORD
 C6WQ          ANDX  0  GSIGN               [B0 = 1ST BIT (B1) OF FBITS  
 C7BB          LDX   2  GEN0 
 C7W2          ERS   0  FBITS(2)            [CLEAR B0 OF FBITS IF SET
 C8*L          NGN   1  1
 C8T=          SMO      GEN1 
 C9#W          SRL   01 0                   [SHIFT TO LAST BIT POSN. IN LAST WD. 
 C9SG          ADX   2  GEN2                [-> LAST WD. 
 C=#6          ORS   1  FBITS(2) 
 C=RQ          ERS   1  FBITS(2)            [CLEAR LAST BIT (& UNUSED BITS)  
 C??B          ORS   0  FBITS(2)            [SET [LAST BIT] = [FIRST BIT]
 C?R2          LDX   1  FX1  
 C#=L          LDX   2  FX2  
 C#Q=    #NOR
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1