Short:        TheChoice V2.23 - Simple Program Selector
Author:       c_wich@river.prima.ruhr.de (Carsten Wich)
Uploader:     c_wich@river.prima.ruhr.de (Carsten Wich)
Type:         util/boot

                             ===================
                             = TheChoice V2.23 =
                             ===================
                             Release: 08.10.1997
                              Copyright 1993-97
                                     by
                                Carsten Wich
                               Hagebuttenweg 34
                               D-44289 Dortmund
                                   Germany
                      E-Mail: c_wich@river.prima.ruhr.de

                         Bank Account No. 315 1048 400
                                BLZ 441 600 14
                              Volksbank Dortmund


INTRODUCTION
============

The Choice is a small Program Selector especially useful for Game Partitions
on Harddisks, SyQuests or even CD-ROMs.
I first wrote it in Modula2 (M2Amiga) because I just found no simple program
selector that fully suits my needs. Although the first version of it worked
good enought for me, some of my friends liked the program very much and made
some proposals for future versions. I switched to SAS-C because the support
for M2Amiga is not that good anymore. Especially the lack of actual includes
for OS3.1 really bothered me. I have completly rewritten the code in the C
programming language and made a lot of improvements.
TheChoice runs on every possible screenmode, even on graphic cards !


LEGAL THINKS
============

TheChoice Copyright (c) 1993-1997 Carsten Wich can be freely distributed,
as long as the whole archive 'TheChoice2.lha' is copied and all of the
files are in their original form without any changes.
Upload to BBS's and includions on any cover disks or CD's is WELCOMED.
This software is published without any warranties. The author does NOT take
any responsibilities for any defects on soft- or hardware, that may result
by this program or by using this program.
I have tried to write the program code according to the AMIGA User Interface
Style Guide and the AMIGA ROM Kernel Reference Manuals V2.04 so that the
program should run correctly on any future operating systems. It is also
tested with Enforcer.
Although this program may be freely distibuted and used it would be very nice
of the people who permanently use it to send me a small fee (I would say at
15,- DM or $10,- US) as a little acknowledgement for my work. You can send
it cash, as a EuroCheque or via a Bank Transfer on my Bank Account.
This would increase my motivation to develop the program even further.


SYSTEMREQUIREMENTS
==================

The program only needs a minimal Amiga System :

  - Any Amiga with at least 512 KB RAM
  - OS >= 2.04 (V37)
  - diskfont.library min. V36 when you want to select another font than the
    default one
  - OS >= 3.0 (V39) for CLOSEQUIET option (optional)
  - lowlevel.library >= V40 for Joystick support (optional)


DEVELOPMENT ENVIRONMENT
=======================

Hardware :

  - Amiga 2000C Big Tower with ECS Chipset (2MB Chip RAM)
  - Blizzard 2060 50MHz with 32MB 32Bit RAM
  - CyberVision 64/3D
  - GVP I/O Extender
  - NEC 3D
  - Toshiba MK-537 1GB HD
  - Toshiba XM-3401TA  CD-ROM
  - Yamaha CDR200t CD-Writer
  - HP-38470A DAT Streamer
  - ZyXEL Elite 2864ID

Software :

  - Kickstart V40.63 ROM
  - Workbench V40.42
  - CyberGraphX V3 r68
  - SAS-C V6.58
  - GoldEd V4.7.2 reg.
  - Enforcer / Mungwall / Sushi
  - Diavolo Backup V3.2 (Yeah, the best backup program around)
  - DOpus Magellan 5.65


HOW IT WORKS
============

TheChoice opens its window on the default public screen (or one that you
specify) and displays an Intuition gadget for every program that you can
choose from.
The window which is opened by TheChoice always covers the whole screen, no
matter how many script entries the config file has.
If there are more script entries than the maximum number of gadgets the
window can hold, TheChoice stops reading the config file and uses this
maximum number of programs only. If you want to display more selections
increase the resolution of the screen or decrease the size of the font.
Future version will hopefully have the possibility to select different
pages.
The program to be executed can easily be selected by a left mouse click.
That's all ! Nothing more and nothing less. (Sounds quite simple, eh ?) 8-)
If you don't want to execute any program just activate the Close gadget or
press the ESC key.
From Version 2.20 on you can also select the gadget using a Joystick in the
game port or the keyboard. A small blue border is drawn around the actual
gadget which can be moved using the joystick or the cursor keys. With the
fire button or the RETURN key you can select the actual program.


INSTALLATION
============

Installation is quite simple. Just place TheChoice in a path of your choice
and create a config file (normally called 'TheChoice.config' in the same
path as the main program).
You can of course use the one that came with the distribution archive and
alter that one.


CONFIGURATION
=============

All configuration of TheChoice other than that for the programs to be
executed is made through shell arguments or tooltypes. They both have the
same syntax so I only have to describe them once. Entering "TheChoice ?"
from CLI gives you the template for the shell options (and some abbrevia-
tions for them).

  CONFIGFILE   : Here you can set the path and the name of the config file
                 TheChoice should use.
                 Defaults simply to 'TheChoice.config'.
                 Note: You must not specify the keyword CONFIGFILE when
                       starting TheChoice from shell.

  PUBSCREEN    : Here you can specify the name of an already open public
                 screen on that TheChoice should open its window.
                 Defaults to the default public screen (normally the Work-
                 bench screen or the initial CLI startup screen).

  MODEID       : TheChoice tries to open its own screen when you set this
                 option to a valid screenmode ID.

  FONTNAME &     
  FONTHEIGHT   : Here you can specify the font TheChoice uses for the gadget
                 texts. The font that is used for the window topborder is
                 always the default font for that screen.
                 You have to specify both options, e.g. FONTNAME=topaz.font
                 and FONTHEIGHT=8.
                 If not set TheChoice uses the screens default font for
                 windows.

  ONEBITPLANE  : This option is only effective when you also set the MODEID
                 option. When set TheChoice opens its own screen using only
                 one bitplane. This is useful if you are short of memory.


  BORDERLESS   : When you specify this option TheChoice opens it window in
                 an borderless mode, so no borders are drawn by intuition
                 around the window.

  CLOSEQUIET   : When specified this option changes the way TheChoice closes
                 a screen it has opened by itself using a special routine,
                 so that no Workbench screen is opened. Additionally all four
                 colours are sets to black. Requires OS >= V39

  MAXGADLEN    : Here you can specify the maximum character length that can
                 be used for the gadgets. This option has an effect on how
                 many gadget can be put in a window.
                 Defaults to 24.

  MAXSCRIPTLEN : With this option you can set the maximum length of the
                 script name (!) that is associated with the program name.
                 This option has an effect for the size of the memory that
                 is used for storing these names.
                 Defaults to 40.

  EXESCRIPT    : Normally TheChoice executes the script that is associated
                 with the chosen program directly. That has the disadvantage
                 that not all resources are freed before program execution.
                 When you set this option TheChoice copies the name of the
                 script that has to be executed in order to run the selected
                 program in a file 'ENV:TC'. This file has to be executed
                 after TheChoice has terminated.
                 Example startup script :

                   ...
                   TheChoice
                   Avail >NIL: Flush
                   Execute ${TC}
                   EndCli

                 Default is direct execution.


CONFIG-FILE
===========

From Release 2.00 on the configfile can be located anywhere and can be named
freely. It is not limited to 'S:TheChoice.config' anymore.

The Contents of the config file breaks down as follows :

  <Name of Program 1>
  <executable script for Program 1>
  <Name of Program 2>
  <executable script for Program 2>
  <Name of Program 3>
  <executable script for Program 3>
  .
  .
  .
  .
  <Name of Program xxx>
  <executable script for Program xxx>

The <Name of Program> Text appears in the Gadget and the <executable script for
Program> will be executed after selection of the appropiate gadget.

That's basically all you have to know (Quite simply, eh).

New in 2.10: When the executable script entry has the form

  "CONFIG=<name of the new configfile>"

the new configfile will be read in and the display changes to the new setup.
This feature allows the user to create menu trees.


THANKS TO
=========

  - Christoph Stoppe for encouraging me to develop this little program further.


WHAT CAN YOU DO
===============

If you have any proposals or find any bugs then let me know. I would also like
to hear some opinions about this little program so that I can see if there is a
need in the Amiga World for it or if I should waste my time on something other.


HISTORY
=======

2.23 - 08.10.1997 - Seventh AmiNet Release
     - Changed Script to ENV:TC
     - The border drawn around the active gadget is now 2 points thick
     - Compiled with SAS-C V6.58 using optimization

2.22 - 27.02.1997 - Sixth AmiNet Release
     - Bugfix: TheChoice tried to call AllocMem with a length of 0 if the
       gadgets would be larger than the screen
     - Bugfix: Memory management was faulty
     - Special 68020 Version included

2.21 - 25.12.1996
     - Changed Window Refresh to Smart
     - Changed Script to ENV:TC.script

2.20 - 09.09.1996 - Fifth AmiNet Release
     - Added Joystick and Keyboard control (Joystick control requires
       'lowlevel.library' >= V40)
     - Added the CLOSEQUIET option

2.13 - 21.01.1996 - Fourth AmiNet Release
     - Bugfix: TheChoice crashed if a new configfile could not be read in for
       some reason

2.12 - 20.01.1996 - Third AmiNet Release
     - Renamed the RAMSCRIPT Tooltype and shell argument to SCRIPT
     - Some more code optimization resulting in the executable beeing about
       7K (!) smaller
     - TheChoice now returns errorcodes to the calling environment

2.11 - 16.01.1996 - internal beta version
     - Some code optimization resulting in the executable being 150 bytes
       smaller

2.10 - 16.01.1996 - internal beta version
     - Compiled with SAS-C V6.56
     - Some code cleanup
     - Added the possibility to read in a new config file

2.00 - 14.10.1995 - Second AmiNet Release
     - Completly rewritten in SAS-C V6.55
     - Runs on any screenmode using any font.
     - The maximum number of programs / gadgets now depends on the chosen screen
       mode and font.
     - Can be configured using shell arguments or tooltypes.
     - Supports borderless windows and onebitplane screens.
     - No source code made publically available anymore.

1.05 - 27.07.1995 - First AmiNet Release
     - Removed some beta code so the executable is now a bit shorter
     - Removed the switch between PAL and NTSC because NTSC is not supported in
       this release
     - TheChoice excutes the script again (due to some complaints by a friend of
       mine

1.04 - Still beta, but several bug fixes and improvements...
     - Only PAL screen possible -> more max entries possible
     - TheChoice now searches for the config script in S: rather than in Games:S
     - TheChoice now copies the choosen script to the file "RAM:Script" which
       you have to execute after you started TheChoice

1.02-
1.03 - Internal beta versions

1.01 - 13.03.1994 - Bugfixed Release
     - TheChoice crashed if the Config-File had more than 77 Programs

1.0  - 23.11.1993 - First Release


POSSIBLE FUTURE IMPROVEMENTS
============================

 - Different configs for different pages (e.g. script files)

So long, tramps like us...

