.
. ** THIS ELEMENT SERVES ONLY TO SAVE ASSEMBLY TIME WHILE
. ** INTERCHANGE IS UNDER DEVELOPMENT BY GENERATING THE CRC
. ** TABLE IN A SEPARATE ELEMENT.
.
.
. THIS SEQUENCE OF CODING GENERATES A 256 WORD POLYNOMIAL DIVISION
. REMAINDER TABLE. THIS TABLE IS USED TO COMPUTE THE CRC OF MESSAGES
. TRANSMITTED AND RECEIVED. TO REDUCE CHARACTER PROCESSING OVERHEAD,
. THE 16 BIT REMAINDER IS STORED WITH THE HIGH-ORDER 8 BITS RIGHT
. JUSTIFIED IN H1, AND THE LOW-ORDER 8 BITS RIGHT JUSTIFIED IN H2.
.
. FUNCTION TO REVERSE BITS IN 8 OR 16 BIT BYTE
.
F FUNC .
REVERSE8* NAME 7
REVERSE16* NAME 15
I DO F(0)+1 ,;
A(0) EQU A(0)++(1*/(F(0)-I+1))*(((1*/(I-1))**F(1))>0)
END A(0)
.
. PERFORM POLYNOMIAL DIVISION
.
DIVIDE* FUNC .
DIVIDEND(0) EQU DIVIDE(1)*/16 EXPAND TO 24 BITS
DIVISOR(0) EQU 0300005*/7 BITS SET FOR COEFFICIENTS
DP* PROC *0
A EQU 24-I BIT BEING PROCESSED ON THIS INVOKATION
DO (DIVIDEND(0)**(1*/A))>0 ,;
DIVIDEND*(0) EQU DIVIDEND(0)--DIVISOR(0)
DIVISOR*(0) EQU DIVISOR(0)/2
END
I DO 8 , DP
END DIVIDEND(0)
.
. GENERATE THE TABLE ENTRIES
.
REMAINDER* PROC 0,1
Z EQU REVERSE16(DIVIDE(REVERSE8(I-1)))
* Z/(1*/8),Z**0377
END
.
REMAINDER*.
I DO 256 , REMAINDER
END