*DECK,INIT31
          IDENT  INIT31 
          TITLE  INIT31 - CALL CODGENI
          COMMENT  INIT31 - CALL CODGENI
          SST 
          LIST   F
          SPACE  4
*         INIT31 - CALL CODE GENERATOR PASS 1 
          SPACE  4
          ENTRY  INIT31 
 INIT31   BSS    0
          SETFIL FILE=(=XF.ICF),MODE=INIT,FWA=(=XICFBUF)
          OPEN   =XF.ICF,WRITE,R
  
          REWIND =XF.ILN
  
*         INITIALIZE LENGTH OF ICF COUNTER
  
          MX6    0
          SA6    =XLENICF 
  
          RJ     =XPHASBS 
  
*         CLEAR RANDOM ACCESS BIT BEFORE CLOSING ILN SINCE WE HAVE NO 
*         INDEX BUFFER SPECIFIED AND THE SYSTEM WILL OBJECT 
  
          CLEARAB  =XF.ILN
  
          CLOSE  =XF.ILN,UNLOAD,R 
          WRITER =XF.ICF,,R 
          JP     =XAFTPH31
 SYSAID.  SPACE  5
**        SYSAID. - FAKE ENTRY POINT FOR FCL EXP ROUTINES 
*                THIS ENTRY POINT IS INCLUDED HERE TO PREVENT DRAGGING
*                IN HALF OF CRM TO PUT OUT AN ERROR MESSAGE.  IT WAS
*                MOVED HERE FROM 0,0 TO AVOID GIVING 1,6 DUPLICATE
*                ENTRY POINT MESSAGES, SINCE 1,6 ACTUALLY USES THE
*                **]][[##** THING.
  
          ENTRY  SYSAID.
  
 SYSAID.  DATA   0
          RJ     =XSYSERR.   PUT OUT MSG AND ABORT
          EQ     *+400000B   IF WE EVER COME BACK....BLOW 
  
          TITLE  PTICF - PUT TO INTERMEDIATE CODE FILE (ICF)
**        PTICF - PUT TO INTERMEDIATE CODE FILE (ICF) 
* 
*         THIS IS THE INTERFACE ROUTINE THROUGH WHICH A SYMPL PROGRAM 
*         WRITES FROM A WORKING STORAGE BUFFER TO ICF.  THE SYMPL 
*         CALLING SEQUENCE IS-
*                XREF PTICF;
*                PTICF (BUF,NWDS);
*                WHERE
*                BUF = WORKING STORAGE BUFFER 
*                NWDS = NUMBER OF WORDS IN BUF
*         HENCE THE REGISTER SETUP ON ENTRY IS- 
*                A1 = POINTER TO APLIST 
*                X1 = FWA OF BUF
* 
*         ROUTINE BUMPS LENICF TO REFLECT CURRENT WRITE 
* 
*         WE DON"T USE THE PUTSQ MACRO TO DO THE WRITE SINCE WE WILL
*         READ THE ICF RANDOMLY AND THUS CAN"T HAVE A WORD COUNT
*         PRECEDING THE RECORD
* 
  
          ENTRY  PTICF
 PTICF    BSS    1
          SB1    1
          SA2    A1+B1
          SA3    =XLENICF 
          SA2    X2          NWDS 
          IX6    X3+X2       BUMP LENICF BY NWDS
          SA6    A3 
          WRITEW =XF.ICF,X1,X2
          EQ     PTICF
*CALL GETIL 
          END    INIT31 
