David asks: > > In an attempt to convert an old spl program to Pascal, I came across a > need(ok a want!) for an alternate entry point; but was unable to find > any documentation. I tried $entry...$ & $entry_point...$ to no avail. Yep. Unfortunate, isn't it. Particularly since the Native Mode program format / loader *SUPPORT* alternate entry points! SPLash! (definitely) and COBOL/iX (probably) have alternate entry points. You can get alternate entry points with Pascal programs, sort of. (We've done it for those Toolbox programs that are in Pascal, since we have a standard of having a ",HELP" entry point in them) ...but it's ugly, since you have to use assembler, which isn't officially available on MPE/iX. The basic technique is to assemble something like the example below, and link the .o (NMOBJ) file along with the rest of the program. Note: if you have a PA-RISC HP-UX box, you can assemble the code there and move the .o file back to your 3000! NOTE: because it is an alternate entry point, the normal Pascal (or C) program initialization is *NOT* done! This, of course, could have significant affects on your program :) We avoid the problem by having entry points that initialize everything they need. We use only 2 entry points: HELP (which prints help info and terminates), and VERSION (which prints version info and terminates)... anything more complicated is done via the INFO= string or PARM= value. Another possibility is to skip the assembler stuff, and write your program with the outer block in a language that supports entry points cleanly, and then call the stuff you write in Pascal...which is a little awkward if you have a lot of global variables you want to use :( Personally, I favor lobbying HP to enhance Pascal/iX to support entrypoints...but I doubt it will ever happen. The following example has an entry point "HELP", which calls "dohelp" and then terminates the program. Sample assembler code: .SPACE $TEXT$ .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY .SUBSPA $CODE$ ;**************************************************** HELP .PROC .CALLINFO CALLER,SAVE_RP,SAVE_SP .ENTRY .EXPORT HELP,SEC_PROG ; pcal dohelp... BL dohelp,2 NOP .IMPORT dohelp,CODE ; pcal TERMINATE BL,N TERMINATE,2 NOP .IMPORT TERMINATE,CODE .EXIT ; program .PROCEND ;**************************************************** .END -- Stan Sieler [log in to unmask] http://www.allegro.com/sieler.html