Software Components / Embedded Systems
ATLAST (Autodesk Threaded Language
Application System Toolkit) is a (very) FORTH-like language kernel
designed to be embedded into applications, rendering them extensible
to a degree far beyond normal macro languages. Indeed, using ATLAST,
it is often possible, in the spirit of FORTH, to “factor out” much of
the control structure from an application, reducing it to a set of
data-driven services whose interaction can be modified by the user
with ATLAST. ATLAST is written entirely in portable C, and has been
tested on MS-DOS, Windows, a variety of Unix machines, and the
Macintosh. Complete documentation is included in XHTML,
PDF, and LaTeX source code form.
ATLAST has been placed in the public domain and may be used without
restriction or compensation.
New release 1.2 (October 2007) adds support for environments
with read-only constant strings, fixes optimisation problems with
recent releases of GCC, and includes online
documentation.
The BGET Memory allocation package. Useful for stand-alone
(embedded systems) use and as a replacement for malloc and
other system-provided allocators which may be too slow or
otherwise unattractive. Layering this package under the
Microsoft Windows 3.1 allocator, for example, sped up some
programs by a factor of 10. Extensive diagnostic and
debugging support is provided, to help find memory leaks,
clobbered buffers, use of pointers to released buffers, etc.
In portable C.
A neural network simulator
memory demonstration for the Commodore 64--really!
Includes complete source code in BASIC.
Cellular Automata Laboratory
invites you to explore the world of cellular automata with
the aid of high-speed programmable simulators for both
MS-DOS and Windows. Cellular automata rules are defined
by short programs written in Java, C, Pascal, or BASIC; rule
definitions in Java can be compiled even if you don't have
a Java compiler by using a Web-based compilation server.
The accompanying on-line
laboratory manual,
equivalent to more than 250 printed pages, explains
the theory of cellular automata, how to use the simulator
programs, documents the many
ready-to-run rules included,
describes how to create your own original experiments,
and contains a comprehensive
bibliography.
Dumb Interpretively Executed String Expression Language in
portable C. This is the kernel of a
tiny string language you
can embed in applications which need limited macro facilities.
You can extend the function set by supplying C code. DIESEL
is used in AutoCAD for menu macro processing, and has been
released into the public domain by
Autodesk, Inc.
Additions to the NETPBM package. Currently contains
ppm.shar.gz which
(extracted into the ppm subdirectory), contains additions to the
ppmdraw library to implement drawing ASCII text in a pixmap, using a
stroke font which can be scaled and rotated. There's a test/demo
program included, as well as two new PPM applications,
cietoppm and
ppmlabel. Cietoppm
makes a portable pixmap containing a plot of the
CIE "tongue"
diagram, optionally showing the colour gamut of various display
systems (NTSC, PAL/SECAM, SMPTE, HDTV, etc.). Ppmlabel draws ASCII
text, specified either on the command line or from a file, into
a portable pixmap.
Both cietoppm and ppmlabel require the
text drawing extensions to ppmdraw.
The archive
pnm.shar.gz
contains a new PNM filter, pnmhisteq,
which performs contrast enhancement through the technique of
histogram equalisation.
See the README file for details.
A Perl script which mobilises
standard PBMplus/NetPBM utilities to add simulated shadows to
bitmap images is available. Visit
the pnmshadow page for details,
sample images, and download instructions.
Windex is a Perl script
which prepares an HTML document containing a graphical
index for a collection of image files, with each small thumbnail
image linked to the corresponding full-size image.
sbigtopgm is a filter which
translates image files produced by the
Santa Barbara Instrument Group's
astronomical CCD cameras into PBMplus portable graymaps.
Passport Photo Maker
creates a ready to print page of passport
(or other) photos of a specified size, adjusted for the
page size and resolution of a printer, with as many copies
of the original photo as will fit on the page.
pnmctrfilt simulates the
effect of an optical centre filter on a wide angle lens, allowing
the elimination of vignetting in images taken without a centre filter.
The "Postage Stamp Rasteriser",
a small, highly portable and
Reality Hardened rasteriser which scan converts lines and
filled concave or convex polygons. Polygon scan conversion
contains compensation for almost a dozen problems of
singularities and numerical instabilities which cause
incorrect results in the simple algorithms you find in
textbooks. Optional TIFF output is available to aid in the
inclusion of preview images in DOS and Windows PostScript
files. Written in portable C; public domain.
SMARTALLOC,
a portable C package based on the standard
malloc()/free() functions, which detects
many common memory allocation errors such as memory leaks, releases of
bad pointers, use of buffers after freeing them, and counting on the
initial contents of allocated buffers. Most programs can use
SMARTALLOC simply by recompiling with its header file and including
the code. SMARTALLOC can be disabled for production use with a simple
#define.
This paper explains
how to calculate, given the spectral composition of a light source, what
colour it will be perceived as by the human eye, and which red, green,
and blue intensities best approximate it on a computer monitor.
C source code
which implements the technique is included.