Here's some additional information on our pre-compile routine. We have several source code files such as IM.SRCE. Our pre-compile routine is actually called "COMPILE". If I wish to compile the IM.PL.BUILD routine, we enter the command COMPILE IM.SRCE IM.PL.BUILD instead of BASIC IM.SRCE IM.PL.BUILD. I raised my question since the two commands are very similar.
The COMPILE routine executes the BASIC command, but that's after the source routine is moved to another file, PREC, which has an associated object code PREC.O file. If we use the BASIC command, an error is raised because we don't have an associated IM.SRCE.O file.
Besides moving the program to a new file, we have an internal system in which all data files have a four-character identifier, such and ENTY, and each dictionary item a three-character identifier, such as NAM. Within our source code programs, these appear as ENTY$NAM whenever this field is used in the program. The COMPILE routine translates these references to the actual field number in the PREC version of the code prior to executing BASIC. The pre-compile routine also updates a cross-reference record which contains a listing of all programs which use this field. The cross-reference is very helpful when finding the program source of data issues.
Since its release, I've been using Rocket MVVS to modify our programs on the server, via mapped network drive, which I understand is an unintended use of the program. After making changes, I compile and debug using Dynamic Connect. As we adopt Git, it would be helpful if we could compile directly from Visual Studio Code. If not, we could look into other options such as SFTP which was mentioned recently in this forum.