Brouhabouha Forth repackaged
Marcos Cruz (programandala.net)
2016-01-21

Description
===========

This archive contains a distribution of QL Brouhabouha Forth, a Forth-94
Standard system for QDOS written by Ewald Pfau in 1991-1994.

This distribution was prepared by Marcos Cruz (programandala.net), in
2016-01, in order to make this Forth system easier to use and preserve
it for the future.

The terms of distribution of the original program have been respected:
all original files are included, in its own directory.

The latest version of this distribution can be downloaded from:

-   http://programandala.net/en.program.brouhabouha_forth.html

-   http://www.dilwyn.me.uk/language/index.html

Differences from the original distribution
------------------------------------------

-   The QDOS file header of the executable has been restored. It was
    missing in the old distributions found on the Internet (in ZIP or
    LHA archive formats).

-   Most library source files of the original distribution are Forth
    blocks files; they have been converted to text. The format of the
    comments and other layout details have been improved manually in
    order to make the sources easier to read and to use in the text
    version. Both versions, blocks and text, have been included.

-   The filename extensions of the source files have been changed after
    a modern convention: .fb for Forth blocks files; .fs for Forth text
    sources. They have been updated also in the sources, were some
    source filenames are used.

-   The filename "edb.hlp", a single block file which contains a key
    shortcuts cheatsheet of the blocks editor (but not used by it) has
    been renamed to "editorhelp.fb".

-   In order to protect the executable from loosing its QDOS file header
    again, it is included only in QDOS media images, which also contain
    the whole system, ready to be used on any QL or SMSQ/E emulator.

Distribution archive files
==========================

-   README.adoc: This file (master in Asciidoctor format).

-   README.html: This file, converted to HTML.

-   README.epub: This file, converted to EPUB.

-   README.pdf: This file, converted to PDF.

-   README.txt: This file, converted to plain text (UTF-8 encoded).

-   doc: Documentation.

-   doc/bf.adoc: Edited manual (master in Asciidoctor format).

-   doc/bf.html: Edited manual, converted to HTML.

-   doc/bf.epub: Edited manual, converted to EPUB.

-   doc/bf.txt: Edited manual, converted to plain text (UTF-8 encoded).

-   media: QDOS media, for emulators.

-   media/bf.flp: The Forth system in a high-density floppy disk image.

-   media/bf.win: The Forth system in a 2 Mib SMSQ hard disk image.

-   src/: The Forth library sources.

-   original/: The original distribution, untouched.

-   original/files/: The original files, except the executable, will all
    names changed to lowercase, and "edb.hlp" renamed to
    "editorhelp.fb".

-   original/bf199405.img: The original files with their original names,
    including the fixed executable (called bf192[^1][^2]), in a
    double-density floppy disk image.

-   Makefile: the GNU make’s Makefile used to build the documentation
    from the Asciidoctor files.

QDOS media files
----------------

The contents of "bf.flp" and "bf.win" are identical:

-   README.txt: This file, converted to plain text (UTF-8 encoded).

-   bf.txt: Edited manual, converted to plain text (UTF-8 encoded).

-   bf192_exe: Brouhabouha Forth executable, with 192 KiB of total data
    space and the blocks editor loaded.

-   bf192_noedit_exe: Brouhabouha Forth executable, with 192 KiB of data
    space and the blocks editor removed[^3]

-   *.fs: Forth library sources.

-   *.fb: Forth library sources in blocks format.

-   original: Directory which contains the original distribution
    untouched (except the executable, which has been fixed).

Library source files
--------------------

QL Brouhabouha Forth includes the following optional library files.

Note: All ".fs" files except two have also a Forth blocks version (with
the ".fb" filename extension).

a68.fs
    Laxen & Perry’s 68000 F83 assembler.

arr.fs
    Access to multi dimensional arrays.

asc2blk.fs
    Conversion between block files and ASCII files.

binsort.fs
    Binary sort.

cores.fs
    Some Forth redefinitions for words from ANS Forth Core Extended,
    Double and String wordsets. As well some common definitions often
    needed, secondary evaluation of number division, and interpreter
    number conversion.

crlf2lf.fs
    End of line conversion tool.

editorhlp.fb
    A Forth block with the blocks editor keys cheatsheet.

epson.fs
    Tool for printing on EPSON printer, and for conversion of character
    sets in files, QL/IBM.

heaptst.fs
    Random test of a dynamic heap.

oof.fs
    Object Oriented Programming System, Version 3.1, by John R. Hayes,
    Applied Physics Laboratory Johns Hopkins University.

oofex.fs
    Extension to oof.fs.

primes.fs
    Prime numbers search.

prt.fs
    Forth blocks printing tool.

split.fs
    Files manipulation tools.

uft.fs
    Misc extensions.

vector.fs
    Graphics with sin table.

[^1]: 112 KiB for code, 48 KiB for headers and 32 KiB for data. These
    values can be changed by adjust-sizes and then create a new
    executable with save-file. See Implementation characteristics and
    special behaviour in the manual.

[^2]: With the block editor loaded as-is, for free use remain about 42
    KiB for code, 19 KiB for data, 22 KiB for headers. See
    Implementation characteristics and special behaviour in the manual.

[^3]: With the block editor removed, for free use remain about 59 KiB
    for code, 27 KiB for data, 23 KiB for headers. See Implementation
    characteristics and special behaviour in the manual.
