m6811asm.src is a Forth based assembler for the M68HC11
m6811asm.doc is the documentation for m6811asm.src
LifeDylib v1.0 for MacOsX is shared library developed for MacOsX using
DiaperGlu v4.4. It has a C function that will life monochrome bitmaps that are a multiple of 64 cells wide.
Diaperglu64 is a 64 bit Forth based script interpreter and compiler
I developed in C/C++ and assembler that can host dynamic html pages under Apache and ISAPI.
It also comes with an x86 assembler.
Diaperglu64 v5.7
Source, documentation, and binary for Mac OS X and 64 bit Windows.
The .tgz file has the Mac binary, and the .zip file has the Windows binary.
Changes are:
- Added UBUFALIGN
- Fixed EVALUATEBUFFER to allowing passing parameters on data stack to and from script in buffer.
Diaperglu64 v5.6
Source, documentation, and binary for Mac OS X and 64 bit Windows.
The .tgz file has the Mac binary, and the .zip file has the Windows binary.
Changes are:
- Added N8>CELL N16>CELL N32>CELL
- Fixed CALLPROC return stack alignment bug on Win64
Diaperglu64 v5.5
Source, documentation, and binary for Mac OS X and 64 bit Windows.
The .tgz file has the Mac binary, and the .zip file has the Windows binary.
Changes are:
- Added VALUE 2VALUE FVALUE TO {
- Replaced loop instruction in asm files with dec rcx jnz because loop is slow
on many versions of the x86 processor
Diaperglu64 v5.4
Source, documentation, and binary for Mac OS X and 64 bit Windows.
The .tgz file has the Mac binary, and the .zip file has the Windows binary.
Changes are:
- Bug fixes... mainly renamed D>F and F>D to S>F and F>S
- Added D>F and F>D that uses double cell numbers as per the standard
- Added ?DO
- Added OSYMBOL-ENTRY and added support for generating exes to the make .o functions on Windows
- Added P>IPARAM and LEA, memory to memory support to allow passing pointers in the )), function
- Added an assembler message box and an assembler hello world example for Windows
- Added examples for Windows to show how to use the message box and beep functions
Diaperglu64 v5.3
Source, documentation, and binary for Mac OS X and 64 bit Windows.
The .tgz file has the Mac binary, and the .zip file has the Windows binary.
Changes are:
- Bug fixes
- Support for Mac OS Monterey
- Added REPLACEINBUFFER and INSERTSINTOBUFFER
Diaperglu64 v5.2
Source, documentation, and binary for Mac OS X and 64 bit Windows.
The .tgz file has the Mac binary, and the .zip file has the Windows binary.
Changes are:
- New words to support using integers of arbitrary size
- New assembler words to help making .o files a lot easier
- New assembler words to make using local variables, calling functions,
using parameters, and writing operating system independent code a lot easier
- New words to make using name spaces easier
- And bug fixes
Diaperglu64 v5.0
Source, documentation, and binary for Mac OS X and 64 bit Windows.
The .tgz file has the Mac binary, and the .zip file has the Windows binary.
Changes are the addition of support for 8bit immediate sign extended to 16, 32,
and 64 bits encodings for ADD, and other instructions. (These encodings are not the default
when used with register AX, EAX, RAX.) Also, the dg_free free memory function under Win64
was giving an error and may have been leaking memory. This is now fixed. Also added
[>ORDER]CONSTANT and a couple other functions which make it easier to implement name spaces
using word lists. One possible use of these name spaces is implementing structures.
Diaperglu64 older versions
Older versions are available on github under
DiaperGlu/DiaperGlu64
Diaperglu v3.2
Source and binaries for Mac OS X and Win32
Source for Fedora Linux 2 and FreeBSD.
Note: using the .zip archive on Mac OS X, Fedora 2, or FreeBSD will cause permissions problems.
Also: Building on FreeBSD and Linux not tested yet in this version.
If there is a problem, it will likely be in the make file.
Diaperglu is a 32 bit Forth based script interpreter and compiler
I developed in C/C++ and assembler that can host dynamic html pages under both ISAPI and Apache.
What else does Diaperglu and Diaperglu64 do?
- Tries to check for all errors except return stack overflows.
- Has growable buffers.
- Uses an error stack.
- Has string stacks using length strings.
- Can link to shared libraries at run time.
- Tracks memory allocated through Diaperglu.
- Tracks shared libraries opened through Diaperglu.
- Supports hierarchical lists.
- Is tested with test scripts.
- Tries to follow the Draft ANSI Forth Standard V3.3
- Has an X86 32 bit mode assembler
- Supports Mac OS X Mavericks v10.9.5
- New! Diaperglu now has a linker. This linker uses separate link description glu files to do the linking and can:
- make new buffers
- load, link, and call functions in shared libraries
- load, link, and call functions in raw code files
- load and link to raw data files
- a few other things too
Note: The raw code files have to be position independent code. Right now you have to use the X86 assembler
if you want to make position independent code with Diaperglu. The reason why is the script commands that
come with Diaperglu like DUP and SWAP currently compile as calls to an address. Constants like numbers and $" also
compile as a call to an address. You could make links for the Diaperglu script functions like DUP to fix
those, but fixing the constants to be position independent is a bit trickier.
Why use Diaperglu?
- If you want to do more thorough error checking, Diaperglu can help.
- If you want to use memory more efficiently on FreeBSD, Mac OS X, and Linux; Diaperglu may help.
I'm not 100% sure, but I think the mimimum memory allocation size is rather large on these systems.
- If you would like a nicely documented simple to use CGI script engine, Diaperglu
can help.
- If you like doing everything yourself so you know exactly what's going on, and don't want to use
a canned solution off the shelf, Diaperglu is for you :-) Someday I hope to have the canned solutions
too, only much better tested than the currently available canned solutions.
- If you would like to use a product who's name reminds everyone of baby poop, Diaperglu is
definitely for you :-)
- Oh yah, one last thing. If the exception model of error handling doesn't work for you, and you would
like to use an advanced return code based system then Diaperglu is definitely for you.
You can get n older version of Diaperglu (v3.1) here:
Alternate Reality utilities.
Dungeon Monster Animations Dec 2, 2008
arutil.dll February 22, 2008. Version 0.5. This is a win32 x86 dynamic linked library.
You need another program like Diaperglu or AutoIT to call it's functions. Sample scripts included. It allows:
- extraction, replacement, and editing of AR City Maps
- extraction and replacement of AR City 120 encoded files
- extraction and replacement of AR City characters in the Resurex4 extraction format
- extraction and replacement of AR Dungeon encoded files
AR City Map Editor February 19, 2008. Version 0.2b for win32 x86 allows
user friendly extraction, replacement, and editing of AR City Maps using a Java GUI.
AR Dungeon File Extractor February 22, 2008. Version 1.0 Java program for all platforms
allows user friendly extraction, and replacement of AR Dungeon game files from disk using a Java GUI.
ARCityViewer v10.0 is an MFC C++ application I designed
that lets you view the Atari 8-bit Alternate Reality
game disk files in the *.xfd format. I designed it using Visual C++ 6.0.
The Atari 8-bit version of Alternate Reality is being disassembled
using the ARDisassembly Project which you can find
here.
You can also find many extracted pictures and game code files.
Can rainbarrels really stop flooding?
There were a few articles in the press in the Fall of 2007 about using rainbarrels to
help some communities deal with flooding caused by decaying storm sewer systems.
Some local governments were even offering rainbarrels 'at cost' to residents. Will
this really work? Can putting a rainbarrel next to everyone's house in a community at
a cost of $55 per rainbarrel payed to the local government and/or their friends in the
rainbarrel making business really fix the flooding problems?
Well I did a little thinking and a little math and came up with the answer no. The only
thing that will happen is the rainbarrel makers will get rich and you will have something
attached to your house that is great for watering your garden in times of drought, and may
be great at giving you better garden water than you can get from the local water supply. If
you live in certain areas of
this city,
you will also help your government save a little on sewage treatment costs.
First. Rainbarrels are not designed to be used as a storm surge buffer. They are designed
to capture and hold water for later use. If you want something to capture water to take the
edge off a storm surge, ideally it would be empty when the storm starts. Rainbarrels are
supposed to be as full as possible so you have water when that drought hits. I suppose
you could run outside and empty it when you see a storm coming, but if rainbarrels could
really hold enough water to offset a storm surge, everyone emptying their rainbarrels at
once would be just as bad as the storm.
Second. Most of the rain does not hit your roof, and therefore will not end up in a
rainbarrel attached to a drainspout. The roof area of my parents house is about 1/8 the
area of the yard so only 12.5% of the rain can be captured in rainbarrels in their yard.
87% of the rain hitting their house would still end up in the storm surge.
Third, you would need a rainbarrel on each drainspout on your house. I think for my parent's
house this would be 4, raising the cost of those local government's solution to over $220
per house.
Fourth, a rainbarrel only holds 55 to 60 gallons of water. It sounds like a lot, but a
big storm drops a lot more rain than that on your roof. 1 inch of rain landing on my parent's
roof is actually (here comes the math:)
- 1200 sq feet/roof
- x 144 sq inches/sq foot
- x 1 inch of rain
- x 1 gallon/ 231 cubic inches
- ----------------------------
- = about 748 gallons
You would need about 12 empty rainbarrels just to capture the first inch of rain
landing on the roof.
Instead of spending $660 per house per inch of storm surge rain on government 'at cost' rainbarrels,
only to miss most of the the rain not hitting roofs,
why not put that money into fixing the storm sewer systems, or on some other community based
solution? And if you are going to get a rainbarrel, why not make one yourself for less, or
get a pretty one for watering your yard from one of the vendors listed below for about the same money.
One that will go nicely with your yard.
Oh where oh where does the water go?
When it begins to rain, it begins to flow.
Off the roof, yard and down the street,
It goes downhill until something it does meet.
Lifebmp is a Microsoft Visual C++ application Jim developed under
Visual Studio 6.0 that implements J Horton Conway's
Life Algorithm using an algorithm Jim originally developed for the Amiga platform.
This port allows you to life monochrome Win32 bitmaps which you can create using Mspaint.
It allows you to change the rules and runs about the same speed regardless
of the complexity of the image.
To make a monochrome bitmaps with Mspaint: image menu -> attributes -> select
'black and white'.
Java demo of this algorithm. Uses Java 6.