prodos-drivers/clocks/cricket
Joshua Bell 7bbc96924b Add SETUP.SYSTEM and build .SETUP files
This is an alternate approach proposed by Sean Nolan in 1987 which
allows placing the driver files in a subdirectory of the root volume
to avoid clutter and file ordering issues. Only a SETUP.SYSTEM file is
needed at the top level, and the drivers go into a SETUPS/ directory.

All drivers here (except QUIT.SYSTEM and SETUP.SYSTEM itself) have
alternate forms built into the /DRIVERS/SETUPS/ directory as XYZ.SETUP
instead of XYZ.SYSTEM. If you choose to use SETUP.SYSTEM, place these
.SETUP files in your SETUPS/ directory. The naming doesn't matter -
any SYS or BIN file can be used - but this convention makes
distribution easier. These .SETUP files do **NOT** chain to the next
file - that's handled by SETUP.SYSTEM itself.

Resolves #16
2024-01-30 21:16:32 -08:00
..
Makefile Add SETUP.SYSTEM and build .SETUP files 2024-01-30 21:16:32 -08:00
README.md Add SETUP.SYSTEM and build .SETUP files 2024-01-30 21:16:32 -08:00
cricket.system.s Prevent hang probing for The Cricket! in MAME on IIc/IIc+ 2023-10-22 17:08:34 -04:00
prodos.mod.s Move clock driver sources into clocks/ subdir to tidy top level 2022-11-18 18:23:03 -08:00
set.date.s The Cricket!: Reset SSC ACIA before probing/setting 2023-06-25 12:06:40 -07:00
set.datetime.s Cricket: Make SET.TIME/SET.DATETIME time inputs 24-hour by default 2023-07-17 08:11:50 -07:00
set.time.s Cricket: Make SET.TIME/SET.DATETIME time inputs 24-hour by default 2023-07-17 08:11:50 -07:00
test.s Move clock driver sources into clocks/ subdir to tidy top level 2022-11-18 18:23:03 -08:00

README.md

The Cricket! — ProDOS Clock Driver

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:

  • TEST attempts to identify an SSC in Slot 2 and the Cricket via the ID sequence, to test routines.
  • SET.DATETIME sets the Cricket's current date and time.
  • SET.DATE sets the Cricket's current date.
  • SET.TIME sets the Cricket's current time.

CRICKET.SETUP is for use with SETUP.SYSTEM

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.