YABB - Yet Another Blue Box             Version 0.93                Jan, 08 1992

All code and ideas by:  fst, gofty, panda, friedo, nevs and to-pse

     Sine-Code written by fst, gofty & to-pse
     Macro-Parser written by fst and additions by to-pse
     Sound-blaster & Ad-Lib support by friedo & to-pse
     Testing & suggestions by panda & nevs

YABB is a blue-box program for the PC-compatibles.  It was written to support
the circuitry of the Chaos Computer Club Hamburg, FRG.  In addition there will
be support for Adlib-compatible Sound-Cards and the Soundblaster and an much
improved version of the original d/a-circuitry.  Currently the program has been
tested on the following systems:

       AT486   33Mhz
       AT386   33Mhz
       AT386   ~8Mhz (slow mode)
       AT286   12Mhz

The program requires at least a 286 processor.  As the calculations involved
require some performance, there is the slight (?) possibility that the program
won't run correctly on slower systems.  Especially the Sound-blaster support
needs a certain amount of speed for timing reasons.

YABB is supposed to be a replacement for the pcm.c program supplied for the
d/a-converter-card by the CCC.  The handling of pcm was pretty crude.  Com-
pared to this, YABB is a  v e r y  big improvement.

YABB is fully macro-oriented.  First of all there are no definitions for things
like 'Clear Forward', 'Start', 'Seize' etc.  Almost everything is defineable.
This makes YABB  v e r y  flexible.

If you find YABB to be a useful piece of software, please be so kind to send us
the amount of $20, DM40,- or equivalent.  If you have any suggestions, questions
or other things concerning YABB, please contact us via email:

       uucp:           [email protected]
                       [email protected]
       fido:           yabb@(2:240/13)





DOCUMENTATION
-------------

After starting YABB, it tries to locate a precalculated sinus-table on your
disk, pointed to by the environment-variable YABB.  You can set this variable
like this (for example):

               set yabb=c:\yabb

If the variable is not set, YABB tries to load the table from the directory it
has been loaded from.  If neither of those files can be found, a new sinetable
is being computed.  This will take a while (depending on the speed of your sys-
tem).  Afterwards the file will be written either to the path pointed to by the
environment-variable or into the directory from which YABB was loaded as a file
named sinus.dat.

Next YABB looks for a default-symbol-tabel called symbols.sym in the directory
pointed to by the environment-varible or in the directory YABB was loaded from.
If found it is loaded into YABB.

Afterwards YABB enters the command-mode.  Here you have the possibilty to enter
new macros (here called symbols), execute macros, change the current mode of
operation or execute built-in procedures.



BUILT-IN COMMANDS
-----------------

Info                    information about the authors and program
List [symbol]           list [symbol] or if missing all symbols
Mode                    list the current state of the mode-stack
Read [filename] reads [filename] and interprets it as commands
Write [filename]        stores current symbol-definitions as [filename]
Hotkey                  enters hotkey-mode for instantaneaous access to macros
Clear                   clears all symbol-definitions and the mode-stack
Device [device] selects appropriate output-device (LPTx,AL,SB,DA)
Quit                    quits YABB
HElp            displays all currently supported builtin command
Fullscreen              enters full-screen command mode with mouse-support
                       (currently not supported - wait for Release 1.00)

All commands can be abbreviated by the first or first two letters.




MODE-CHANGING
-------------

/xxx                    pushes xxx on the mode-stack, making it the current
                       Mode
\                       pops the last element off the mode-stack




SYMBOL-DEFINITION
-----------------

<symbol>=<Commands>     Defines <symbol> as being a sequenz of <Commands>,
                       where Commands can be symbols itself, Mode-Changes,
                       OutPut of Sound etc.
<symbol>=               Deletes <symbol>




SYMBOL-EXECUTION
----------------

<symbol>                Expands and executes <symbol>







HOTKEY-DEFINITIONS
------------------

Key             Normal Val      Shifted Val     Alted Val       Ctrl-Val
-------------------------------------------------------------------------
F1              315             340             360             350
F2              316             341             361             351
F3              317             342             362             352
F4              318             343             363             353
F5              319             344             364             354
F6              320             345             365             355
F7              321             346             366             356
F8              322             347             367             357
F9              323             348             368             358
F10             324             349             369             359
F11             --              --              --              --
F12             --              --              --              --
PRT             --              --              --              --
ROLL            --              --              --              --
PAUSE           --              --              --              --
L_ARR           331             331             --              371
R_ARR           333             333             --              372
U_ARR           328             328             --              --
D_ARR           336             336             --              --
INS             338             338             --              --
DEL             339             339             --              --
POS1            327             327             --              375
END             335             327             --              373
PGUP            329             329             --              388
PGDN            337             337             --              374
TAB             9               271             --              --
BS              8               8               --              127
CR              13              13              --              10
ESC     ************* should not be used **************


The other keys, like 0..9, A..Z, a..z and the special symbols (!,",$..)
are mapped to their ascii-values...





STILL MISSING
-------------

whitespaces should be handled much smoother
clear should clear mode-stack
program should run on any 286 fast than 12 Mhz (in SB-Mode, too)
read should not try to interpret .commands as filename
readkey should be able to get ALL extended keys (F11, F12 for example)
ad-lib support is still missing
keys should first not be mapped to upcase for definitions of hotkeys...
pulse-dialing
support for (auto-recognition of) D/A-card!
fullscreen-mode with mouse-support
syntax-check when defining macros