* 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.
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
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.
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.
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.
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.
This is a modified version of the ROMX Real-Time Clock driver. The changes include:
* Converting the source to ca65.
* Integrating with the driver installer framework.
* Adapting the driver to not modify page 2 beyond $220. The ROMX RTC
firmware writes bytes to $2B0, and the the original driver placed
temp code at $250. This can conflict with ProDOS applications that
use page 2, so the driver was reworked to save/restore anything at
at $2B0.
Other changes:
* Add a util/ source dir, and cricket/date, quit.system and
pause.system there.
* Pull the "print current date" logic out of clock drivers into driver
preamble.
Previously, an error was shown. This means using QUIT.SYSTEM was
required if you wanted to launch Bitsy Bye (or whatever selector you
installed). This meant extra code, and wasn't user friendly. You may
still want QUIT.SYSTEM if you have e.g. BASIC.SYSTEM later in your
directory.
Trying this out. Might not stick with it.
Also added a PAUSE.SYSTEM that just waits a bit, if you want a delay
in your startup sequence to watch the log messages.