
                Pelican Software Inc.



RunOpa is an example of how to start an Opa from within your own procedure.
This info was obtained from David Wood at Psion in a message on Cix. Thanks
again to David for making it available. You may have to experiment with this
code, although this is a working example. I didn't spend a lot of time figuring
the command line, but I think I've got it right.

The cmdl$ seems to have five important segments:

        1. O for Open, C for Create
        2. Appname declared by App keyword
        3. Default Extension
        4. Path name for file used by app (cmd$(2))
        5. Path name used to start app (cmd$(1))

Here's the procedure:

Proc RunOpa:
local ret%
local pid%
local cmdl$(128),appname$(128)
  appname$="ROM::SYS$PRGO"+chr$(0)
        Rem Opo  cmdl$="ORunOpl"+chr$(0)+chr$(0)+"LOC::M:\OPO\Myproc.OPO"+chr$(0)
        Rem use this Command line to run an Opo procedure
        Rem change drive locations per your setup
  cmdl$="ONotepad"+chr$(0)+".PAD"+chr$(0)+"LOC::B:\Note\Notepad.pad"+chr$(0)
  cmdl$=cmdl$+"LOC::B:\APP\Notepad.OPA"+chr$(0)
        Rem use this command line to run an Opa procedure
        Rem "ORunOpl" is O, not 0 - Use O for open, C for Create
        Rem if using C for create, change Notepad.pad to the name to create
  ret%=call($0187,addr(appname$)+1,addr(cmdl$),0,0,addr(pid%))
        Rem this is the Filexec call
  if ret%<0
   giprint err$(err)
  else
   call($0688,pid%,0,0,0,0) Rem Procresume
  endif
Endp
