This directory contains a sampling of Draco programs. Some are simple
benchmarks, others approach being useful. The following list gives a brief
description of each one.

ack.d - program to calculate Ackerman's function - the slow, doubly
    recursive way. If you're not familiar with this function, you might
    want to experiment with it. Warning: it consumes stack space by the
    megabyte. I allocated a one meg stack and let 'ack 4 1' run for an
    hour, but it hadn't completed when I lost patience.

count.d - simple benchmark to count to 1 million

crypt.d - encrypt/decrypt program. Unfortunately, the way this works, it
    depends on the file size being a multiple of 128 (as it is on CP/M).
    Fixing it isn't too hard - round up to a multiple of 128 and store the
    true size (needed for decryption) somewhere in the encrypted file. The
    algorithm isn't very good, though, so I'm not bothering.

fib.d - another recursive benchmark - this one for Fibonacci numbers

hanoi.d - a version of the classic "Towers of Hanoi" program

hedit.d - a full-screen hex/char file editor (no insert/delete, just
    replace). Uses the CRT library and shows random-access file I/O. Link
    using "ex dr1lib2 crt hedit".

matrix.d - shows use of conformant array parameters

matttime.d - times matrix operations

pas.d - uses varying print widths and array assignment to print a portion
    of Pascal's triangle

qfunc.d - prints some Q-function values (I forget what they are!!)

sieve.d - standard Sieve of Eratosthenes benchmark

strings.d - locates and prints ASCII strings in binary files

ttt.d - plays Tic-Tac-Toe against you. (Not very well)

wator.d - runs the Wator simulation from A. K. Dewdney's December 1984
    "Computer Recreations" column. This is linked by
    "ex dr1lib crt wator". Try NSharks 10, NFish 100, FBreed 3, SBreed 10,
    Starve 5. (Start with 10 sharks and 100 fish, the fish breed every
    3 steps, the sharks breed every 10 steps, and a shark will die if it
    doesn't eat in 5 steps.)
