[comp.sys.atari.st] BSS-Bit feature of TOS 1.4

VBRANDT@DBNUAMA1.BITNET (09/19/89)

In Info-Atari16 Digest #457, mailrus!cwjcc!dsrgsun.ces.cwru.edu@purdue.edu
(Jwahar R. Bammi) says:

>if it is the second longword following symb_size that is non-zero, then
>TC is using a (yet undocumented i guess) feature of TOS 1.4. If this
>long has its lowest bit set, then when launching a process TOS will not
>clear all of TPA, just the BSS area. If it is zero, then it will behave
>as normal, ie. clear all of TPA including the BSS area of the process.

   Well, if you have the right documents, this feature *is* documented.  To
quote from the 'Rainbow TOS Release Notes - August 7, 1989', page 38:

   "The second of the two reserved longwords in a PRG file header is no longer
    reserved:  it is now defined as a bitmap of requests for new features.
    When the lowest-order bit, 0x00000001, is set, it indicates that Pexec
    should not bother to clear the program's entire heap, only the declared
    BSS.  This shaves up to one second off program load time on a Mega 4. Many
    programs can have this bit set with no ill effects:  it is generally
    considered bad practice to assume that "stack + heap" space is clear when
    you start up.  Some programs cannot have the bit set, and this is why the
    default (zero) case is to clear the heap."

   I'm surprised that this little gem hasn't been brought up here before.

   The part about PRG is a bit misleading; it works for accessories as well.
I have a Mega 4 with five little binaries in the \AUTO folder, and three
accessories on the boot partition.  My boot process is now FOUR TIMES FASTER!
WELL DONE ATARI !!!!!   Note that you have to have TOS 1.4 of April 6, 1989
or better.  It will not work with the February 22 release.

   I will post a little progam next week that allows you to set that "BSS-bit"
comfortably, instead of having to fiddle around in program headers with a
disk editor.

   Could someone at Atari please post a list of known programs that don't work
with the BSS bit set ?  I have found only one so far, namely QUICK-ST 1.4.

                                                       Greetings -- Volker

----------------------------------------------------------------------------
Bitnet:  VBRANDT@DBNUAMA1 (will go away late '89)      Volker A. Brandt
          UNM409@DBNRHRZ1 (soon)                       Angewandte Mathematik
UUCP:    ...!unido!DBNUAMA1.bitnet!vbrandt             (Bonn, West Germany)
ARPAnet: VBRANDT%DBNUAMA1.BITNET@CUNYVM.CUNY.EDU

kbad@atari.UUCP (Ken Badertscher) (09/20/89)

VBRANDT@DBNUAMA1.BITNET writes:

| WELL DONE ATARI !!!!!   Note that you have to have TOS 1.4 of April 6, 1989
| or better.  It will not work with the February 22 release.

  Thanks for the kudos.  I just want to point out for the record, though,
that there was never a release of TOS dated Feb 22.  The only official
Rainbow TOS (1.4) release is the one dated April 6, 1989.

-- 
   |||   Ken Badertscher  (ames!atari!kbad)
   |||   Atari R&D System Software Engine
  / | \  #include <disclaimer>