My Apple II Software
I've written more than a little software for the Apple II over the past 20+
years; what's on this page is some of the more recent stuff I've done. It's
Apple II Beer Fridge Controller (last updated 25 September 2007)
The BASIC program I wrote to go with the 1-Wire Apple II Primitives
(below) was kinda cheesy...device enumeration on startup took
several seconds per device, and updating the temperature chart took
somewhere around 20 seconds. BASIC is interpreted; it's going to be
slow. In preparation for replacing the Apple II in this role with a
custom 6502-based controller board, I decided to rewrite the entire
package in C, using cc65. This
is the result of that task.
The 1-Wire routines contained within should be reasonably portable
to other targets supported by cc65. All of the Apple II-specific
1-Wire code is in one file, which would need to be rewritten.
1-Wire Apple II Primitives (last updated 8 February 2003)
This is a library for using Dallas Semiconductor's
1-Wire and iButton devices on any Apple II with a 16-pin
joystick port (this excludes the IIc and IIc+). It takes care
of the timing-critical parts of the 1-Wire protocol and allows
you to write apps in any language (even BASIC) that use these
devices for device control, sensing, etc.
ProDOS/HFS Partition Table Generator (last updated 5 February 2003)
This doesn't directly run on a II (well, it might run on a IIGS with
some fixes), but it's useful if you want to create CD-ROMs that are
readable on a II. (I used it to make a bootable
IIGS System 6.0.1 install CD.) It creates a partition table
with the specified number and sizes of ProDOS and/or HFS partitions.
You then concatenate filesystem images after the partition table to
make an image file that can be burned to CD-R, dumped to a hard
drive, etc. It's known to build and run under Linux and Cygwin;
other POSIXish environments (including Mac OS X) should also work
without much fuss. Non-POSIX environments (such as Win32 and older
versions of Mac OS) may need some tweaking.
Hi-Res and Double Hi-Res Character Generator (last updated 27 January 2003)
These are character I/O routines that work with ProDOS 8's
BASIC.SYSTEM to enable use of the Hi-Res and Double Hi-Res graphics
displays for text. This allows you to freely mix text and graphics
on the same screen. The Hi-Res version creates a 40x24 display,
works with Applesoft's built-in drawing commands, and works on the
64K II+, IIe, IIc, IIc+, and IIGS. The Double Hi-Res version
creates an 80x24 display and works on the 128K IIe (rev. B or
later), IIc, IIc+, and IIGS. The font used closely mimics the
Apple II's normal text display, but you could create your own font
and use that if you want.
TMLE: The Machine-Language Editor (last updated 14 July 2002)
This is an easy-to-use relocatable hex editor. Changing bytes in
memory is as easy as typing text in a word processor. Because it's
relocatable, you can load it wherever you want in memory so that
it doesn't interfere with the parts of memory you want to edit. In
addition to changing bytes, you can insert and delete bytes. ASCII
input is also accepted, including control characters and both high
(128-255) and low (0-127) characters. TMLE works on any II under
both ProDOS 8 (under BASIC.SYSTEM) and DOS 3.3.
SoftDAC (last updated 11 August 1992)
SoftDAC allows you to play digital-audio files (known colloquially as
"WAV files") on 8-bit Apple IIs. The IIGS has fairly nice hardware
built in (the Ensoniq 5503 DOC) that can do this, but all the
8-bitters had was a speaker that could be toggled on and off to make
beeping noises. SoftDAC takes advantage of the way loudspeakers
work to play back 8-bit mono sound (sampled at 11.025 kHz) on the
II with passable fidelity (this program uses 4 bits of each sample).
The core routine works with any II; a wrapper program is provided
that works on a 128K IIe/IIc/IIc+ to play longer samples. This
wrapper program also supports RamWorks-compatible memory expansion,
so you can play even longer files.
Original content copyright © 1997-2014
Scott Alfter; all rights reserved.
Archived materials are the property of their respective owners.