prodos-drivers/README.md

50 lines
2.0 KiB
Markdown
Raw Normal View History

2017-11-26 18:57:28 +00:00
# The Cricket - ProDOS Clock Driver
2017-11-26 18:55:44 +00:00
I acquired a Cricket sound/clock peripheral on eBay. Therefore it is now critical that we have a conforming ProDOS clock driver for it.
2017-12-03 19:46:30 +00:00
> STATUS: Works on my machine!
2017-11-26 18:57:28 +00:00
2017-11-26 18:55:44 +00:00
## 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 included disks 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
2017-12-03 19:46:30 +00:00
## Goals
2017-11-26 18:55:44 +00:00
2017-11-27 03:51:35 +00:00
Like the `NS.CLOCK.SYSTEM` (by "CAP") ideally we would have:
2017-11-26 18:55:44 +00:00
2017-11-27 07:04:02 +00:00
* [x] A ProDOS `.SYSTEM` file
2017-12-02 04:04:20 +00:00
* [X] Detects the presence of a Cricket
2017-11-27 07:04:02 +00:00
* [x] Installs a driver in memory following the ProDOS clock driver protocol
* [x] Chains to the next `.SYSTEM` file (e.g. `BASIC.SYSTEM`)
2017-12-02 04:04:20 +00:00
2017-12-03 19:46:30 +00:00
Successfully tested on real hardware. (Laser 128EX, including at 3x speed.)
2017-12-03 19:47:54 +00:00
## Build
Requires [cc65](https://github.com/cc65/cc65). The included `Makefile` is very specific to my machine - sorry about that.
2017-12-03 21:43:15 +00:00
[CRICKET.SYSTEM](cricket.system.s) is the result of the build.
## Notes
I ended up disassembling both [NS.CLOCK.SYSTEM](ns.clock.system.s) (to understand the SYSTEM chaining - what a pain!) and The Cricket's [PRODOS.MOD](prodos.mod.s) and melding them together, adding in the detection routine following the protocol in the manual.
Other files:
* [GET.TIME](get.time.s) just prints the current ProDOS date/time, to verify the time is set and updating.
* [TEST](test.s) attempts to identify an SSC in Slot 2 and the Cricket via the ID sequence, to test routines.
## Resources
Cricket disks on Asimov:
<a href="ftp://ftp.apple.asimov.net/pub/apple_II/images/hardware/sound/cricket_disk1.po">disk 1</a>
<a href="ftp://ftp.apple.asimov.net/pub/apple_II/images/hardware/sound/cricket_disk2.po">disk 2</a>
<a href="ftp://ftp.apple.asimov.net/pub/apple_II/documentation/hardware/sound/Street%20Electronics%20The%20Cricket.pdf">
Cricket Manual</a>