Commit Graph

200 Commits

Author SHA1 Message Date
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
Joshua Bell
537d79810b Jumbo: Patch ThunderClock driver for 2023-2028
If ProDOS finds a ThunderClock it installs a built-in driver for it.
The ThunderClock card gives day-of-week but not year. So the driver
uses the day/month/day-of-week to infer the year, using a 7-entry
table. This means the driver gives the wrong year unless it is
reasonably updated.

ProDOS 2.4.2 includes an update to handle 2018-2023 but that's about
to run out. https://github.com/ProDOS-8/ProDOS8-Testing/issues/72

Make the CLOCK.SYSTEM jumbo driver do the extra work of updating the
year table for the ThunderClock driver. This handles old versions of
ProDOS from 1.1 through 2.4.2, and the update handles 2023 through
2028. (In 2027 we can update again to handle through 2032.)
2023-12-04 20:28:25 -08:00
Joshua Bell
477c1f7764 Build: Use common out/ dir 2023-11-12 16:42:11 -08:00
Joshua Bell
b8ef97b42d Build: Fix header include path in clock Makefiles 2023-11-12 13:56:52 -08:00
Joshua Bell
764b4bd8fd ZIPCHIP.SYSTEM - log cache size 2023-11-12 12:46:37 -08:00
Joshua Bell
93e48784b9 Add ZIPCHIP.SYSTEM
This detects a ZIP CHIP and, if present, configures it to slow down
for speaker access, leaving the other settings alone.

In the future maybe there will be a configuration utility to control
the slots, as was included with the ZIP CHIP back in the day.
2023-11-11 14:24:28 -08:00
Joshua Bell
01175cf573 Prevent hang probing for The Cricket! in MAME on IIc/IIc+
In MAME, for the SSC in Slot 2, the STATUS flag never comes back with
ready-to-send, so the probe would hang. Introduce a timer, same as on
the receiving side, and timeout instead of hanging.

Similar to 14e72b7384
2023-10-22 17:08:34 -04:00
Joshua Bell
18a73004c4 The Cricket!: Fix SSC reset for Laser 128EX
The change in b182a53d made resetting/detecting The Cricket! fail on
my Laser 128EX, likely due to startup config of the SSC not being
the same as on an Apple //c. This should be a superset of the change,
but compat testing will be needed.
2023-10-14 19:40:09 -07:00
Joshua Bell
ed2fa6e7d2 No-Slot Clock: Hit PTRIG to slow ZIP/IIc+ accelerator before reading
This appears to improve reliability when reading the NSC on the
IIc+. More data is probably needed before declaring this a really
good solution, but "it works on my machine!"
2023-10-06 22:11:36 -07:00
Joshua Bell
a519d0c619 Cricket: Make SET.TIME/SET.DATETIME time inputs 24-hour by default
The Cricket! can accept both 12-hour (with AM/PM suffix) and 24-hour
times. Unify with the No-Slot Clock UI and prompt for 24-hour.
2023-07-17 08:11:50 -07:00
frankmilliron
b182a53dfa
The Cricket!: fix hang on Total Replay (#19)
* The Cricket!: fix hang on Total Replay

The Cricket reset command sends Total Replay into an endless loop when launched, presumably because of an interrupt situation (TR just does RTI on an interrupt). Toggling the COMMAND and CONTROL settings seems to allow TR to function properly, while also allowing the Cricket initialization code to silence any playing notes.

* The Cricket!: Reset Cricket before probing

Finds the Cricket every single time this way. Occasionally the driver would miss finding it due to it being in a wait state. Sending a reset first fixes that.

* The Cricket!: make sure registers are toggled for TR
2023-07-17 08:11:30 -07:00
frankmilliron
9401723f0d
The Cricket!: further refinements to 'SSC init' (#18)
//c technical reference includes a 'hardware reset' for three of the ACIA registers. Here we reset all three.
2023-07-16 13:30:04 -07:00
Joshua Bell
ec4a0eeb1e The Cricket!: Issue "Reset Cricket" sequence when detecting
This stops any active music playback, which is handy if you did a warm
boot in the middle of playback, and your The Cricket! is stuck playing
the same note constantly but you don't want to power-cycle the device
which will unset the RTC.

c/o @frankmilliron
2023-06-25 21:08:08 -07:00
Joshua Bell
caeb237321 The Cricket!: Reset SSC ACIA before probing/setting
... and don't bother saving/restoring registers during install,
as this will only follow a boot or OS restart.

Suggested by @frankmilliron

Also inhibit interrupts in the SET.XXX utilities for good measure.
2023-06-25 12:06:40 -07:00
Joshua Bell
c01d26042a The Cricket!: Add unified SET.DATETIME util 2023-06-25 11:46:35 -07:00
Joshua Bell
8ca57b2fac NSClock: Incorporate @bobbimanners Ultrawarp bug workaround
For context, see:
https://github.com/bobbimanners/ProDOS-Utils/blob/master/No_Slot_Clock/README.md
2023-06-25 11:37:59 -07:00
Joshua Bell
e706385fe9 No Slot Clock: Add SET.DATETIME utility 2023-06-24 20:10:24 -07:00
frankmilliron
774889ec2e
Improve Cricket! detection on ROM4 //c (#17)
* Improve Cricket! detection on ROM4 //c

* Add PHP/PLP
2023-05-15 18:21:31 -07:00
Joshua Bell
5211dc6296 Add build options to suppress success and/or failure logging 2023-05-01 19:47:10 -07:00
Joshua Bell
ee5fbeda2d Workflows: bump ca65 action to v2 2023-03-02 20:02:25 -08:00
Joshua Bell
d37691dead Jumbo clock driver: Include success logging 2023-01-31 20:01:05 -08:00
Joshua Bell
1ddae4fab7 No Slot Clock: Shave bytes and better comments
* Replace BCD->Binary with smaller routine
* Replace most absolute use of $200-7 with stack
* Remove unneeded sentinel byte at end of unlock sequence

Leaves 9 bytes free in driver.
2023-01-27 18:30:42 -08:00
Joshua Bell
d9e72d3c1e NSC: Probe for Z80 card before probing for NSC to avoid hang
The NSC driver installer starts off by checking each slot, bit-banging
into the card's memory space to try and detect an NSC installed. If a
Z80 card is encountered before the NSC is hit, the Z80 card is
activated, causing the 6502 to halt.

Borrow the Z80 detection routine from A2D's This Apple and verify that
there isn't a Z80 in the slot before we start bit-banging.

Fixes #15
2023-01-01 17:12:21 -08:00
Joshua Bell
01fed0d524 Workflows: Bump ncipollo/release-action version 2022-11-29 18:39:05 -08:00
Joshua Bell
dc9c77170e FujiNet Clock Driver: Fix search continuation during install
When a SmartPort device was found that wasn't the FujiNet, the search
continuation used the wrong offset to get the high byte of the slot
address.

Also, fix the "jumbo" clock driver's Makefile to ensure it is rebuilt
when dependencies change.
2022-11-28 20:20:45 -08:00
Joshua Bell
f64011338d Packaging and docs for previous commit 2022-11-26 20:35:05 -08:00
Joshua Bell
f2ea11fcde Add "jumbo" clock driver, an amalgamation of the others
This one driver pulls in the installers for each other clock driver,
and invokes each in turn:

* No-Slot Clock
* ROMX
* FujiNet
* DClock
* Cricket!

This requires adding `.ifndef JUMBO` guards in the other drivers for
when they pull in include files (symbols, macros, etc). The other
drivers are adjusted to return with carry clear on successful install,
failure otherwise.
2022-11-26 20:29:38 -08:00
Joshua Bell
6f142c08d6 linkify docs 2022-11-18 18:46:33 -08:00
Joshua Bell
3a085d0d60 Add docs 2022-11-18 18:38:50 -08:00
Joshua Bell
8f658437ab Move clock driver sources into clocks/ subdir to tidy top level 2022-11-18 18:23:03 -08:00
Joshua Bell
c4c14419fe Tidy following previous 2022-11-15 20:36:19 -08:00
Joshua Bell
ac4b655661
Merge pull request #13 from ivanizag/main
Driver for the real time clock device in Fujinet
2022-11-15 20:24:15 -08:00
Ivan Izaguirre
26bde8abae Undo change not needed 2022-11-15 22:42:45 +01:00
Ivan Izaguirre
f0abdcc738 Driver for the Fujinet Clock 2022-11-14 19:05:30 +01:00
Joshua Bell
9590bc4b9e BuhBye: Cycle through volumes after the boot volume more intuitively
Previously, the boot volume was shown first, but then tab would cycle
from the highest priority volume to the lowest. This would be awkward
if the boot volume was not the highest priority volume. For example,
with these devices (listed lowest to highest priority, like DEVLST),
/HD1 is the boot volume but the RAM disks are highest priority:

(low) /FLOPPY2 /FLOPPY1 /HD4 /HD3 /HD2 /HD1 /RAMWORKS /RAM (high)

Prior to this fix, it would cycle:

/HD1 /RAM /RAMWORKS /HD1 /HD2 /HD3 /HD4 /FLOPPY1 /FLOPPY2 /RAM ...

After this fix, it will cycle:

/HD1 /HD2 /HD3 /HD4 /FLOPPY1 /FLOPPY2 /RAM /RAMWORKS /HD1 ...

To fit, a little bit of code golfing was necessary.
2022-09-01 20:38:07 -07:00
Joshua Bell
145aba1f66 Buhbye.system: Clear keyboard strobe on launch
This is particularly useful on MAME where you're likely to have just
pressed Return to dismiss a warning.
2022-07-03 15:29:04 -07:00
Joshua Bell
3b8fe3c461 ROMX Clock Driver: Ensure bank is restored if detection fails.
c/o @apple2geek: If your ROMX is in recovery mode, [not doing so]
hangs the system and requires a power cycle to get it back.
2022-06-24 12:42:07 -07:00
Joshua Bell
188f1b4ce8 ROMX: Align with 0.95 c/o Jeff Mazur 2022-06-04 13:37:22 -07:00
Joshua Bell
536ed14b60 RAMDRV: Place new unit number last in DEVLST
ProDOS prefers disks sorted with the fastest (e.g. ramdisks) at the
end and slowest (e.g. 5.25 floppies) at the start. This facilitates
pathname resolution starting at the end of DEVLST, so misses are
cheap.
2022-06-02 22:15:45 -07:00
Joshua Bell
c323b205bc ROMX: Update driver c/o Jeff Mazur
This ensures all of page 2 is preserved for full compatibility.
2022-06-02 22:14:48 -07:00
Joshua Bell
b1c3d52e0a Add ME.FIRST.SYSTEM 2022-02-03 20:14:10 -08:00
Joshua Bell
a6d4fa6308 Text color themes: Don't force 40 col/text or clear the text screen 2022-01-06 17:16:42 -08:00
Joshua Bell
3e0d41b809 Text color themes: Make the SYSTEM files chain 2022-01-06 17:12:30 -08:00
Joshua Bell
f740575697 Code formatting, constants, and comments 2022-01-06 16:58:03 -08:00
Joshua Bell
392ab0b7ef Add textcolors to build/package 2022-01-06 16:39:19 -08:00
Joshua Bell
0cd347b737
Merge pull request #11 from chrisparana/main
Add text mode color themes
2022-01-06 16:33:18 -08:00
Chris Parana
5b0ef800ce Add text mode color themes 2022-01-06 03:08:54 -05:00
Joshua Bell
ea853d7af1 Close open file on more error paths 2021-12-06 20:47:15 -08:00
Joshua Bell
94fae50608
Merge pull request #9 from rharke/close-before-quit
Close directory if no .SYSTEM file found to chain to
2021-12-06 20:16:21 -08:00
Renee Harke
39c7f83e04 Close directory if no .SYSTEM file found to chain to 2021-12-06 22:34:28 -05:00