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;