-------------------- AmigaOS 3.1.4.(1) project -----------------------

Revision 45.2 (30.10.2017):

- This module is a short "workbench loader" that can go into
  ROM in case ROM space becomes tight (which it likely will).
  It is similar to the A4000T wbfind module, except that it
  does not require a patch, and hence avoids side effects.
  It consists of a bogus library that will load the real thing,
  trying to find it in LIBS: or any other inserted disk in
  the system.
- What is new: No longer patches OpenLibrary, instead represents
  itself as a library, though the library is actually build by
  the disk-based code. Exec/resident is flexible enough to allow
  this stunt.
  
Revision 45.3 (31.5.2018):

- Checks now candidate segments whether they are resident modules
  before attempting to initialize them, and also checks the version
  and continues trying if a non-acceptable version is found.
- Displays now a requester asking for volumes with the proper library
  if no match is found.

Revision 45.4 (12.6.2018):

- Forgot to check the WindowPtr before displaying the requester.
  The workbench/icon.library requester respects now pr_WindowPtr.

Revision 45.5 (19.9.2018):

- The requester is now also suppressed for LIBS:, thus avoiding that
  the user is requested to re-insert the volume to which the LIBS:
  assign refers. This avoids an endless loop of requesters.

---------------------- AmigaOS 3.2 project ---------------------------

Revision 47.1:

- The name of this component changed from "wbfind" to "bootstrap" as
  it takes now more responsibilities.

- In addition to icon and workbench, this component now also provides
  "loader hooks" for the audio.device, for mathffp.library and the
  mathieeesingbas.library.

- Since dos 47.5, "bootstrap" will be started instead of the boot
  shell. Now bootstrap scans the ROM and the disk for some original
  tripos components, namely L:Ram-Handler, L:Con-Handler and 
  L:Shell-Seg, and will use disk-based components instead of ROM-based 
  components. This will allow later versions to easily replace them - 
  just put them on disk. The shell from L: will then be used for 
  booting, the RAM-Handler for the RAM: device, and the CON-Handler 
  for CON: activities. Note, however, that all three require a 
  "resident" structure, i.e. they need to be a "module" in addition to 
  a "handler".

- This has the following nice side effects:
  Since dos V47.4, CliInitNewcli() is no longer needed as newcli can 
  now be effectively be replaced by System().
  Since bootstrap 47.1, CliInit() (dos.library private) is no longer 
  needed since "bootstrap" starts the shell by the above method.
  Hence, all what is left is "CliInitRun()", making shell design by 
  about 67% easier as there is no longer a need to check the packet 
  type and dispatch according to the flags in the startup packet.

Revision 47.2:

- Due to a really stupid typo, booting without startup sequence
  did not work.

- To please the version command, the bootstrap code creates now
  a $VER: tag in the dummy startup segment of the loaded modules.

Revision 47.3:

- In case a later version of the FastFileSystem is found on disk,
  it also replaces the root file system.

Revision 47.4:

- The GlobVec of the Port-Handler was not properly converted to
  a BPTR, causing a crash when mounting the handler.

Revision 47.5:

- When patching in a default stack size for a file system, the
  dos.library init code did not take care of the different units
  the stack size is measured in. It is in LONGs for BCPL style
  handlers, but in BYTEs for C-style handlers. Since the default
  was "512" (whatever unit), this caused very tight limits for
  C-style handlers. This got fixed.
 
Revision 47.6:

- "BootStrap" is now renamed to "system-startup".
  Version string of "system-startup" wrongly reported as "BootStrap". 
  Also version & revision number did not match Release Notes.

- system-startup now searches LIBS: and DEVS: for devices not yet
  initialized, and then replaces ROM versions with these devices.

Revision 47.7:

- Due to a counting mistake, clistrap forgot to substitute all
  possible ROM-based modules.

- Mounting the devices from the expansionbase boot point list
  is now also transferred to system-startup. The somewhat
  hacky method of communicating this via the FileSystem link is
  gone.
  
Revision 47.8:

- Added a logic to hotpatch a new intuition version into the
  system. This depends on no other module having opened
  intuition as well, and no BCPL file handler being mounted.

- As intuition overrides the default monitor from graphics,
  the monitor must be saved first, then intuition must be
  openend, and then (potentially) become "enlighted", i.e. the
  viewport must be patched to enable the new graphics modes.

- Updating the system modules is now disabled if the system
  boots without startup-sequence. This is probably helpful for
  desaster recovery in case one of the modules runs berzerk.

- The LVOs of the dead copy of intuition are now replaced to
  jump to a function that displays an Alert, so we at least
  know that something bad happened.

Revision 47.9:

- system-startup now removes the currently loaded intuition
  by Expunge(). This allows to remove intuition V47 and above,
  but to replace it by a V40 intuition.

Revision 47.10:

- The module upgrade mechanism is now more critical about new
  revisions. A ROM revision can only be replaced by a RAM
  version larger than the ROM version, similar to LoadModule.
  There is now a special exception for intuition which also
  allows V40 as a special exception.

Revision 47.11:

- Due to a wrong prototype, the system startup failed to
  upgrade most modules, including that it failed to
  downgrade intuition.

Revision 47.12:

- The openCnt of intuition was not increased back if a V40
  intuition could not be removed.

- Now also creates the entry for the pipe:.

Revision 47.13:

- Monitors now additional flags in expansion to disable module
  upgrades, shell debug and interactive shell.

Revision 47.14:

- Added support for syslog.

Revision 47.15:

- System-startup scans now all volumes, not only the boot
  volume.

Release 47.16:

- ROM modules already present are now marked as optional
  such that a requester is not shown if no update is shown.

Release 47.17:

- As an exception, intuition v40 is only loaded from the boot volume,
  but not from any other volume. Intuition upgrades are, however,
  searched from all volumes now.

Release 47.18:

- To prevent an upgrade, it is now sufficient to place a dummy file
  (e.g. an empty file) of the right name in the right place of the
  boot volume.

Release 47.19:

- Loading a segment that is not to be initialized may have caused
  a broken resident list in case of failure.

Release 47.20:

- A bug prevented opening the console's output stream. Thanks to
  Thomas Richter for reporting and providing the fix.

Release 47.21:

- Added a new Failsafe boot flag which will boot :S/Startup-Failsafe 
  instead of :S/Startup-Sequence if set
