.github/workflows | ||
cricket | ||
dclock | ||
inc | ||
ns.clock | ||
ram.drv | ||
romx | ||
selectors | ||
util | ||
.gitignore | ||
Makefile | ||
package.sh | ||
README.md |
ProDOS Drivers
Build with ca65
What are ProDOS "drivers"?
The ProDOS operating system for the Apple II executes the first .SYSTEM
file found in the boot directory on startup. A common pattern is to have the boot directory contain several "driver" files that customize ProDOS by installing drivers for hardware or modify specific parts of the operating system. These include:
- Real-time Clock drivers (e.g. No-Slot Clock, Cricket!, AE DClock, etc)
- In ProDOS 1.x, 2.0 and 2.4 the Thunderclock driver is built-in.
- RAM Disk drivers (e.g. RamWorks)
- In ProDOS 1.x, 2.0 and 2.4 only a 64K driver for /RAM is built-in.
- Quit dispatcher/selector (
BYE
routines)
Early versions of these drivers would often invoke a specific file on completion, sometimes user-configurable. The best versions of these drivers simply execute the following .SYSTEM
file, although this is non-trivial code and often did not work with network drives.
This repository collects several drivers and uses common code to chain to the next .SYSTEM
file, suporting network drives.
What is present here?
This repo includes the following drivers/modifications:
- Real-time Clock drivers
- No-Slot Clock
- Cricket!
- Applied Engineering DClock
- ROMX Real-Time Clock
- RAM Disk drivers
- RAMWorks Driver by Glen E. Bredon
- Quit dispatcher/selector (
BYE
routines)- 40-column Selector (from ProDOS)
- 80-column menu-driven Selector (from ProDOS 1.9 and 2.x)
- Bird's Better Bye (a 40-column menu-driven selector)
- Buh-Bye (an enhanced version of the ProDOS 80-column, menu-driven selector)
In addition, QUIT.SYSTEM
is present which isn't a driver but which immediately invokes the QUIT handler (a.k.a. program selector). This will happen automatically if the last driver can't find another .SYSTEM
file, but QUIT.SYSTEM
can be used to stop the chain.
There's also PAUSE.SYSTEM
which just waits for a fraction of a second before invoking the next driver file. (Why? In case the log messages from the other installers goes by too fast!)
Non-drivers that are included:
- The
DATE
binary file can beBRUN
(or just-DATE
) to show the current ProDOS Date/Time, to verify that the clock driver is working. - Some utilities for The Cricket! clock are also included.
How do you use these?
The intent is that you use a tool like Copy II Plus or Apple II DeskTop to copy and arrange the SYSTEM files on your boot disk as you see fit. A boot disk image catalog that is used on multiple different hardware configurations might include:
PRODOS
- the operating system, e.g. ProDOS 2.4NS.CLOCK.SYSTEM
- install No-Slot clock driver, if presentROMXRTC.SYSTEM
- install ROMX clock driver, if presentDCLOCK.SYSTEM
- install DClock clock driver, if presentCRICKET.SYSTEM
- install Cricket! clock driver, if presentRAM.DRV.SYSTEM
- install RamWorks RAM disk driver, if presentBUHBYE.SYSTEM
- install a customized Quit handler to replace the built-in onePAUSE.SYSTEM
- pause for a moment, so that you can inspect the output of the aboveQUIT.SYSTEM
- invoke the Quit handler immediately, as a program selectorBASIC.SYSTEM
- which will not be automatically invoked, but is available to manually invoke
Alternately, you might want to install some drivers then immediately launch into BASIC. In that case, put BASIC.SYSTEM
after the drivers in place of QUIT.SYSTEM
.