{"id":48313725,"url":"https://github.com/a2stuff/prodos-drivers","last_synced_at":"2026-04-05T00:26:25.020Z","repository":{"id":45120379,"uuid":"212735218","full_name":"a2stuff/prodos-drivers","owner":"a2stuff","description":"Apple II ProDOS-8 system files that run on startup and install clock drivers, ramdisks, and other utilities","archived":false,"fork":false,"pushed_at":"2025-08-04T19:15:34.000Z","size":314,"stargazers_count":32,"open_issues_count":3,"forks_count":8,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-08-04T21:43:26.094Z","etag":null,"topics":["6502","apple-ii","apple2","prodos"],"latest_commit_sha":null,"homepage":"","language":"Assembly","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/a2stuff.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-10-04T04:24:36.000Z","updated_at":"2025-08-04T19:15:38.000Z","dependencies_parsed_at":"2023-02-17T02:00:48.093Z","dependency_job_id":"1b73bb76-42bc-4045-8864-56461733f64f","html_url":"https://github.com/a2stuff/prodos-drivers","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/a2stuff/prodos-drivers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a2stuff%2Fprodos-drivers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a2stuff%2Fprodos-drivers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a2stuff%2Fprodos-drivers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a2stuff%2Fprodos-drivers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/a2stuff","download_url":"https://codeload.github.com/a2stuff/prodos-drivers/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a2stuff%2Fprodos-drivers/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31419745,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T00:25:07.052Z","status":"ssl_error","status_checked_at":"2026-04-05T00:25:05.923Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["6502","apple-ii","apple2","prodos"],"created_at":"2026-04-05T00:26:24.945Z","updated_at":"2026-04-05T00:26:25.007Z","avatar_url":"https://github.com/a2stuff.png","language":"Assembly","readme":"# ProDOS Drivers\n\n[![build](https://github.com/a2stuff/prodos-drivers/actions/workflows/main.yml/badge.svg)](https://github.com/a2stuff/prodos-drivers/actions/workflows/main.yml)\n\nBuild with [ca65](https://cc65.github.io/doc/ca65.html)\n\n# What are ProDOS \"drivers\"?\n\nThe 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:\n\n* Real-time Clock drivers (e.g. No-Slot Clock, The Cricket!, AE DClock, etc)\n  * In ProDOS 1.x, 2.0 and 2.4 the Thunderclock driver is built-in.\n* RAM Disk drivers (e.g. RamWorks)\n  * In ProDOS 1.x, 2.0 and 2.4 only a 64K driver for /RAM is built-in.\n* Quit dispatcher/selector (`BYE` routines)\n  * In ProDOS 1.0 and later, a 40-column friendly [selector](selector) prompts for a prefix then a path `ENTER PREFIX (PRESS \"RETURN\" TO ACCEPT)`\n  * In ProDOS 1.9 and 2.0.x, on 80-column systems, a menu-driven selector is installed instead.\n  * In ProDOS 2.4.x [Bitsy Bye](https://prodos8.com/bitsy-bye/) is built-in.\n\nEarly 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.\n\nThis repository collects several drivers and uses common code to chain to the next `.SYSTEM` file, supporting network drives.\n\n## What is present here?\n\nThis repo includes the following drivers/modifications:\n\n* Real-time Clock drivers\n  * No-Slot Clock\n  * The Cricket!\n  * Applied Engineering DClock\n  * ROMX Real-Time Clock\n  * FujiNet Clock\n  * A \"jumbo\" driver that includes all of the above (just called `CLOCK.SYSTEM`)\n* Accelerators\n  * ZIP CHIP configuration (slow on speaker access, make slots 1-4 fast)\n* RAM Disk drivers\n  * RamWorks Driver by Glen E. Bredon\n* Quit dispatcher/selector (`BYE` routines)\n  * 40-column Selector (from ProDOS)\n  * 80-column menu-driven Selector (from ProDOS 1.9 and 2.x)\n  * Bird's Better Bye (a 40-column menu-driven selector)\n  * Buh-Bye (an enhanced version of the ProDOS 80-column, menu-driven selector)\n* Text color themes\n  * These set the IIgs (or VidHD) text/background/border colors\n\nIn 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 if you have other `.SYSTEM` files in your root directory.\n\nIf you don't have a real-time clock, `NOCLOCK.SYSTEM` will prompt you for the date/time on boot and set the ProDOS date/time, which will be used to record file creation/modification times.\n\nThere's also `PAUSE.SYSTEM` which just waits for a fraction of a second before invoking the next driver file in case the log messages from the other installers goes by too fast for your taste, and `HOME.SYSTEM` in case you want the log messages to start off with a blank screen.\n\nNon-drivers that are included:\n* The `DATE` binary file can be `BRUN` (or just `-DATE`) to show the current ProDOS Date/Time, to verify that the clock driver is working.\n* Some utilities for The Cricket! clock are also included.\n\n## How do you use these?\n\nThe intent is that you use a tool like Copy II Plus or [Apple II DeskTop](https://github.com/a2stuff/a2d) 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:\n\n* `PRODOS` - the operating system, e.g. [ProDOS 2.4](https://prodos8.com/)\n* `HOME.SYSTEM` - start off with a blank screen\n* `NS.CLOCK.SYSTEM` - install No-Slot clock driver, if present\n* `ROMXRTC.SYSTEM` - install ROMX clock driver, if present\n* `FN.CLOCK.SYSTEM` - install FujiNet clock driver, if present\n* `DCLOCK.SYSTEM` - install DClock clock driver, if present\n* `CRICKET.SYSTEM` - install The Cricket! clock driver, if present\n* `ZIPCHIP.SYSTEM` - slow the ZIP CHIP on speaker access, if present\n* `RAM.DRV.SYSTEM` - install RamWorks RAM disk driver, if present\n* `BUHBYE.SYSTEM` - install a customized Quit handler to replace the built-in one\n* `PAUSE.SYSTEM` - pause for a moment, so that you can inspect the output of the above\n* `QUIT.SYSTEM` - invoke the Quit handler immediately, as a program selector\n* `BASIC.SYSTEM` - which will not be automatically invoked, but is available to manually invoke\n\nAlternately, 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`.\n\n## Alternate Approach\n\nIf you want to keep your volume directory tidier, consider using [SETUP.SYSTEM](./setup/README.md) instead.\n\n# Building\n\nFetch, build, and install [cc65](http://cc65.github.io/cc65/):\n\n```\ngit clone https://github.com/cc65/cc65\nmake -C cc65 \u0026\u0026 make -C cc65 avail\n```\n\nFetch and build this repo:\n\n```\ngit clone https://github.com/a2stuff/prodos-drivers\ncd prodos-drivers\nmake\n```\n\nTo make a disk image, fetch, build and install [Cadius](https://github.com/mach-kernel/cadius):\n\n```\ngit clone https://github.com/mach-kernel/cadius\nmake -C cadius \u0026\u0026 make -C cadius install\n```\n\nThen you can:\n\n```\ncd prodos-drivers\nmake \u0026\u0026 make package\n```\n\nThis will produce `prodos-drivers.po`, a disk image for use with emulators or tools like [ADTPro](http://adtpro.com/).\n\nNotes:\n* Specify `LOG_SUCCESS=0` and/or `LOG_FAILURE=0` (e.g. `make LOG_SUCCESS=0`) to build with driver success and/or error logging suppressed.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa2stuff%2Fprodos-drivers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fa2stuff%2Fprodos-drivers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa2stuff%2Fprodos-drivers/lists"}