# Duskberon's System module

The module at [oberon/System.mod], when loaded, configures the system so that it's ready
for launching. That is, it initializes the log and opens the startup viewers (the log and
the system tool).

In other words, "booting" a Duskberon system consists of loading this module, then calling
"oberonloop" from [oberon/sys.fs].

In addition to this, it also contains a hodgepodge of utility commands.

## Procedures

LogString (s: ARRAY OF CHAR);
  Write the specified string to the system log.

## Commands


Quit
  Stop Duskberon's loop and return to whatever called it.

ShowModules
  Print a list of all loaded modules.

ShowCommands
  Given a module name as an argument, print the commands contained in that module.

Open
  Given a path as an argument, create a new text viewer [oberon/textfram] in the User
  track. If the path exists, its "ascii" flag depends on the opened file. If it doesn't
  exist, set flag to TRUE.

OpenTool
  Given a path as an argument, create a new text viewer [oberon/textfram] in the System
  track. If the path exists, its "ascii" flag depends on the opened file. If it doesn't
  exist, set flag to FALSE.

Clear
  Provided that the target viewer is a text viewer with a menu, clear the contents of
  that viewer.

Close
  Close the target viewer.

CloseTrack
  TODO: I'm not 100% sure of how it's supposed to be used yet.

Recall
  Reopen that previously closed viewer.

Copy
  Duplicate the target viewer and have it share its track.

Grow
  Duplicate the target viewer and place it "over" the viewers in the current track, using
  up all the space. When that viewer is closed, the other viewers will be visible again.

ExtendDisplay
  TODO: I'm not 100% sure of how it's supposed to be used yet.
 