[comp.sys.apple] ProDOS quit/startup conventions

AWCTTYPA@UIAMVS.BITNET ("David A. Lyons") (05/15/88)

>Date:         Sun, 8 May 88 01:03:08 GMT
>Reply-To:     Info-Apple@BRL.ARPA
>From:         steinmetz!glacier!elliott@itsgw.rpi.edu
>Subject:      davex problems and some system program questions

>Now, the real point of my posting: It's become clear to me that the
>rules have been changing a little since my last big bout of
>programming. The davex documentation mentions the concept of system
>programs having "startup buffers" where parameters can be stored. This
>is either an undocumented standard, or newer than my (1983?) ProDOS
>technical reference manual. Can someone explain the details of how
>these work?

Startup buffers were not around in 1983, but they are now an actual
offical standard, documented in ProDOS Technical notes #7 and #14.
These are available from APDA, the Apple Programmers and Developers
Association (290 SW 43rd Street, Renton WA 98055; (206) 251-6548).
The technotes may also be available from your local users group;
they can be distributed freely.  They are also available on services
like CompuServe and GEnie; I don't know if they are available from any
network servers or FTP sites or not.

>Also, in the section describing system programs, the manual details
>how to load another system routine, but nowhere does it explain the
>standard quitting mechanism that many system programs seem to use,

Quitting is easy:  Just  JSR $BF00, DFB $65, DW PARMS.
                  PARMS: DFB 0,0,0,0,0,0

The ugly standard "enter prefix"/"enter pathname" thing is DOCUMENTED
as being stored as $D100-$D3FF in the language card, so program selectors
can take advantage of that to replace it with a routine that re-loads
the selector program instead of prompting for the next application info.

The startup buffer convention goes like this:  Just start your SYS file
with the following:

   JMP xxxx
   DFB $EE,$EE,Length-of-buffer
   DS  enough space for a length-prefixed string; put a default here,
       and the program that runs you has the option of replacing it
       with another string if it wants.
xxxx: ...

>
> Jim Elliott                    /    ...!seismo!uunet!steinmetz!crd!elliott
>                               /
> "Don't look, son, it's       /      Jim_Elliott%mts@itsgw.rpi.edu [school]
>  a secular humanist!"       /  (or)     elliott@ge-crd.arpa          [work]

--David A. Lyons  a.k.a.  DAL Systems
  PO Box 287 | North Liberty, IA 52317
  BITNET: AWCTTYPA@UIAMVS
  CompuServe: 72177,3233
  GEnie mail: D.LYONS2