*DECK S$GNORD 
          IDENT  S$GNORD
          TITLE  S$GNORD -  GENERATE- APPEND ORDINAL FIELD TO INTERNAL
          COMMENT  APPEND ORDINAL FIELD TO INTERNAL 
  
*CALL LBLPTR
  
          SPACE  4
**        S$GNLEN -  GENERATE- APPEND ORDINAL FIELD TO INTERNAL 
* 
*     CALLING SEQUENCE- 
*         S$GNORD(REC$LO1+REC$LO2);#(S$IRRL,S$LK,S$ORSA)# 
* 
*     GIVEN-
*         REC$LO1+REC$LO2 = NUMBER OF BITS RESERVED FOR ORDINAL FIELD 
*          IN INTERNAL RECORD.
*         S$IRRL = WORD LENGTH OF SLOT IN RECORD STORAGE AREA.
*         S$LK = NUMBER OF BITS OF INFORMATION THAT HAVE BEEN 
*          PREVIOUSLY APPENDED. 
*         S$ORSA = WORD OFFSET WITHIN WSA$ OF RECORD STORAGE AREA.
* 
*     DOES- 
*         GENERATES CODE. 
* 
*     GENERATED CODE DOES-
*         GET ORDINAL FOR CURRENT RECORD INTO *X4.
*         INCREMENT ORDINAL FOR NEXT RECORD.
*         CALL S$GNAPN TO APPEND *X4 TO INTERNAL RECORD.
* 
*     GENERATED CODE USES-
*         *B1 = 1 
*         *X4 *X7 
*         *A4 *A7 
  
  
          ENTRY  S$GNORD
 S$GNORD  SUBR
          SB1    1           CONSTANT 1 
          SA2    X1          VALUE OF REC$LO1+REC$LO2 
          SB4    X2          OR NO OF BITS FOR RECORD ORDINAL 
  
          GEN    (SA4 "ORD")           *GET CURRENT ORDINAL 
          GEN    (SX5 B1)              *CONSTANT 1
          GEN    (IX7 X4+X5)           *INCREMENT FOR NEXT RECORD 
                                       *MAY NEED MORE THAN 18 BITS
          GEN    (SA7 A4)              *WRITE BACK TO STORAGE WORD
  
          NEWLBL NEXT 
          GEN    (EQ "NEXT")           *SKIP DATA WORD
  
          GENLBL ORD
          GENMAC (DATA 0) 
  
          GENLBL NEXT 
          SB5    60 
          SB5    B5-B4       OFFSET IN *X4
          SB7    B4          LENGTH IS REC$LO1+REC$LO2
          CALL   S$GNAPN               *APPEND B7 BITS FROM *X4 
                                          WITH 0 BITS ON THE LEFT 
          EXIT
  
          END 
