.. | ||
buhbye.system.s | ||
bye.system.s | ||
Makefile | ||
README.md |
Bird's Better Bye - Disassembly (and improvements)
The ProDOS operating system for the Apple II personal computer line
supported a quit routine (invoked from BASIC with the BYE
command)
allowing the user to type the name of a system file to invoke once
the previous system file had exited.
Alan Bird wrote a replacement called Bird's Better Bye that would patch itself into ProDOS, fitting into a tight 768 bytes. It provides a menu system, allowing selection of system files (with the arrow keys), directories (with the return key to enter and escape key to exit), and devices (with the tab key), with a minimal and stylish 80-column display using MouseText folder glyphs.
Later official versions of ProDOS replaced the previous quit routine with Bird's Better Bye.
ProDOS 2.4 / Bitsy Bye
The new (unofficial) releases of ProDOS 2.4 by John Brooks include a replacement quit routine called Bitsy Bye, a collaboration with Peter Ferrie. This new quit routine is far more powerful, allowing access to BASIC and binary files (and more), drive selection, type-down, more entries, and so on. It runs on older hardware than Bird's Better Bye so uses only 40 columns, and does not require a 65C02 processor.
Impressed though I am with the power of Bitsy Bye, I am not a fan of its aesthetics - the display is "cluttered" to my eye.
BYE.SYSTEM
Aeons ago, Dave Cotter created BYE.SYSTEM which would patch Bird's Better Bye back into ProDOS if it had been replaced. It can be found at:
http://www.lazilong.com/apple_ii/bye.sys/bye.html
Since I really liked the look of Bird's Better Bye I used this as the boot system for my virtual hard drive (occuring after some clock drivers).
This is a modified version that chains to the next .SYSTEM
file instead of immediately launching the selector. You can follow it with QUIT.SYSTEM
in your driver sequence if you want to show the selector on startup.
BUHBYE.SYSTEM
But... I really wanted a way to quickly scroll through my games list.
So I set out to improve Bird's Better Bye by disassembling it (and
the BYE.SYSTEM
installer), thus ending up with "Bell's Better Bird's
Better Bye" or "Buh-Bye" for short.
The changes are so far pretty minimal since my 6502 skills are not, in fact, mad, and there are only 768 bytes to play with.
I replaced the directory enumeration logic with tighter code as outlined in the ProDOS Technical Reference Manual, and along with other optimizations I made enough room to add seeking if an alphabetical key is typed (hit 'C' and the list will scroll to the next file starting with 'C').
There are a few spare bytes to play with and more can be squeezed out, so perhaps further improvements can be made.