{{htmlmetatags>metatag-description:(ICL George 3 and George 4 GIN macro: MAPBCIRC)}}
====== MAPBCIRC ======
(GIN Macro)
**Defined in:** [[george:source:CLOSE-MACROS|CLOSE-MACROS]]
**Used in:** [[george:source:COMMFILE82|COMMFILE82]]
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