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