Apple II ProDOS-8 system files that run on startup and install clock drivers, ramdisks, and other utilities
Go to file
2019-10-03 21:13:20 -07:00
inc Clean up headers 2019-09-30 20:34:26 -07:00
release disk image 2017-12-03 17:29:11 -08:00
.gitignore Build into out/ subdir 2018-04-29 20:04:13 -07:00
.travis.yml Build: Use cc65's make avail 2019-09-22 21:32:41 -07:00
cricket.system.s Don't pollute stack; swap ROM in before COUTing 2019-10-01 22:27:02 -07:00
date.s Switch to semi-common include files 2019-09-28 20:14:53 -07:00
driver_postamble.inc Extract common logic for setup/chaining 2019-09-29 18:27:00 -07:00
driver_preamble.inc Don't pollute stack; swap ROM in before COUTing 2019-10-01 22:27:02 -07:00
Makefile Clean up headers 2019-09-30 20:34:26 -07:00
ns.clock.system.s Don't pollute stack; swap ROM in before COUTing 2019-10-01 22:27:02 -07:00
prodos.mod.s Switch to semi-common include files 2019-09-28 20:14:53 -07:00
README.md Extract common logic for setup/chaining 2019-09-29 18:27:00 -07:00
set.date.s Clean up headers 2019-09-30 20:34:26 -07:00
set.time.s Clean up headers 2019-09-30 20:34:26 -07:00
temp.txt dummy commit 2019-10-03 21:13:11 -07:00
test.s Clean up headers 2019-09-30 20:34:26 -07:00

The Cricket! — ProDOS Clock Driver

Build Status

I acquired a Cricket sound/clock peripheral on eBay. Therefore it is now critical that we have a conforming ProDOS clock driver for it.

STATUS: Works on my machine!

Background

"The Cricket!" by Street Electronics Corporation, released in 1984, is a hardware peripheral for the Apple //c computer. It plugs into the serial port and offers a multi-voice sound synthesizer, a speech synthesizer, and a real-time clock.

The disks supplied with the device include:

  • /CRICKET/PRODOS.MOD which can be BRUN to patch ProDOS in memory with a clock driver.
  • A modified version of ProDOS
  • A utility to patch ProDOS on disk

CRICKET.SYSTEM

Like the NS.CLOCK.SYSTEM (by "CAP"), CRICKET.SYSTEM has these features:

  • A ProDOS .SYSTEM file
  • Detects the presence of a Cricket
  • Installs a driver in memory following the ProDOS clock driver protocol
  • Chains to the next .SYSTEM file (e.g. BASIC.SYSTEM)

Successfully tested on real hardware. (Laser 128EX, an Apple //c clone — including at 3x speed!)

Build

Requires cc65. The included Makefile is very specific to my machine - sorry about that.

CRICKET.SYSTEM is the result of the build.

Notes

I ended up disassembling both NS.CLOCK.SYSTEM (to understand the SYSTEM chaining - what a pain!) and The Cricket!'s PRODOS.MOD and melding them together, adding in the detection routine following the protocol in the manual.

Other Utilities

These BRUNable files are also built:

  • DATE just prints the current ProDOS date/time, to verify the time is set and updating. It does not depend on having a Cricket.
  • TEST attempts to identify an SSC in Slot 2 and the Cricket via the ID sequence, to test routines.
  • SET.DATE sets the Cricket's current date.
  • SET.TIME sets the Cricket's current time.

Also, an updated NS.CLOCK.SYSTEM is included that fixes a typo, removes beeps, and is less chatty so you can have both NS.CLOCK.SYSTEM and CRICKET.SYSTEM in the same hard disk image if you use the image across different hardware configurations.

Resources

Cricket disks on Asimov:

  • ftp://ftp.apple.asimov.net/pub/apple_II/images/hardware/sound/cricket_disk1.po
  • ftp://ftp.apple.asimov.net/pub/apple_II/images/hardware/sound/cricket_disk2.po

Cricket Manual on Asimov:

  • ftp://ftp.apple.asimov.net/pub/apple_II/documentation/hardware/sound/Street%20Electronics%20The%20Cricket.pdf

FYI...

In the Cricket manual there is a short sample BASIC program to set the clock without the use of any assembly routines, using PR#2 to talk to the serial card followed by PRINT statements. This does not appear to work from ProDOS with the clock driver in place - the time ends up temporarily scrambled until the clock sorts itself out again. Assembly language routines do work, however. I believe ProDOS attempts to read the clock during the execution of the basic program, which interferes the device.