BackbuttonIntegrated Programming System

The Integrated Programming System (IPS) allows an IDE running on a Windows system to invoke a Compiler on the MCP system, using a Tape file resident on the MCP and a Patch file provided over the network.

The Algol Compiler checks the SHEET[S0CompileInfoV].IPSInvokedBitF and sets the IPS_INVOKED flag.

If IPS_INVOKED is set, then the IPS_ID and IPS_VF variables are set from the corresponding fields in S0CompileInfoV.

The IPSSWITCHBOARD LIBPARAMETER is set to STRING(IPS_ID,*) and the IPS_PROLOG and INITIATE_EXPORTING functions are called.

The NEXT_EXPORTED_RECORD is called to provide the Patch records. See READ_VIRTUAL_CARD.

The PUT_COMPILE_STATUS procedure is called to update the compilation status.

At the end of the compilation, the COMPILE_COMPLETE and IPS_EPILOG procedures are called.

The Algol Compiler defines this interface for the IPS at 58000.

COMMENT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  
               INTEGRATED PROGRAMMING SYSTEM DECLARATIONS                
        * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *; 
BOOLEAN IPS_INVOKED;    TRUE IF COMPILER WAS INVOKED FROM THE IPS       
INTEGER IPS_ID;         IPS INDENTIFICATION NUMBER                      
INTEGER IPS_VF;         ID NUMBER OF IPS VIRTUAL FILE BEING COMPILED    
BOOLEAN IPS_SEPCOMP;    NOT USED (CAN'T CURRENTLY SEPCOMP ALGOL IPS)    
ARRAY   IPS_PATCH_BUFFER[0:60001];                                       
LIBRARY IPSSWITCHBOARD(FUNCTIONNAME = "IPSSWITCHBOARD",                  
                       LIBACCESS = BYFUNCTION);                          
                                                                         
                                                                         
    PROCEDURE IPS_PROLOG(VF, LANGUAGE, RELEASE, CYCLE, SEPCOMP);         
             ----------                                                 
       informs the IPS of the compiler's LANGUAGE (e.g. ALGOL = 0,      
       COBOL = 1, FORTRAN = 2, etc.), RELEASE, and CYCLE numbers.  Upon 
       return SEPCOMP contains TRUE iff the virtual file, VF, is to be  
       SEPCOMPed.                                                       
                                                                        
     Pragmatics:                                                        
       This must be the first IPSSWITCHBOARD entry point called by the  
       compiler.                                                        
      VALUE   VF, LANGUAGE, RELEASE, CYCLE;                              
      INTEGER VF, LANGUAGE, RELEASE, CYCLE;                              
      BOOLEAN SEPCOMP;                                                   
      LIBRARY IPSSWITCHBOARD;                                            
                                                                         
    PROCEDURE IPS_EPILOG(VF);                                            
             ----------                                                 
       informs the IPS that the instance of the compiler is no longer   
       dedicated to virtual file VF.                                    
                                                                        
     Pragmatics:                                                        
       This must be the last IPSSWITCHBOARD entry point called by the   
       compiler.                                                                                                                          
      VALUE   VF;                                                        
      INTEGER VF;                                                        
      LIBRARY IPSSWITCHBOARD;                                            
                                                                                                                                             
    PROCEDURE COMPILE_COMPLETE(VF);                                      
             ----------------                                           
       informs the IPS that virtual file VF has been compiled.          
                                                                        
     Pragmatics:                                                        
       This entry point should be called before IPS_EPILOG.  It does    
       not replace IPS_EPILOG, both calls are required.                                                                                     
      VALUE   VF;                                                        
      INTEGER VF;                                                        
      LIBRARY IPSSWITCHBOARD;                                            
                                                                                                                                               
    PROCEDURE INITIATE_EXPORTING(VF, PD);                                
             ------------------                                         
       returns in PD a description of virtual file VF's patch file      
       to be compiled (PD is used as the compiler's secondary input     
       source) and then signals IDE that it is safe to modify VF.       
                                                                        
     Pragmatics:                                                        
       This entry point should be called once and is used in            
       conjunction with NEXT_EXPORTED_RECORD.  The actual parameter for 
       PD should be dimensioned [0:750001].                             
      VALUE   VF;                                                        
      INTEGER VF;                                                        
      ARRAY   PD[*];                                                     
      LIBRARY IPSSWITCHBOARD;                                            
                                                                                                                                            
    BOOLEAN PROCEDURE NEXT_EXPORTED_RECORD(VF, PD, C);                   
                     --------------------                               
       returns in C the next (secondary input) card image in PD.  The   
       function returns TRUE if and only if PD has no more card images. 
                                                                        
     Pragmatics:                                                        
       PD must have already been initialized exactly once by            
       INITIATE_EXPORTING.                                                                                                               
      VALUE   VF;                                                        
      INTEGER VF;                                                        
      ARRAY   PD[*], C[*];                                               
      LIBRARY IPSSWITCHBOARD;                                            
                                                                         
    PROCEDURE PUT_COMPILE_STATUS(VF, ERRORCNT, CARDCNT, SEQCNT);         
             ------------------                                         
       informs the IPS of the current number of errors (ERRORCNT), the  
       number of cards read (CARDCNT), and the sequence number of the   
       current card parsed (SEQCNT) in virtual file VF.                 
                                                                        
     Pragmatics:                                                        
       This entry point may be called whenever the error, card, or      
       sequence count is updated, or may be called periodically with    
       the current values.                                                                                                               
      VALUE   VF, ERRORCNT, CARDCNT, SEQCNT;                             
      INTEGER VF, ERRORCNT, CARDCNT, SEQCNT;                             
      LIBRARY IPSSWITCHBOARD;