SIDE/XEL Loader Changelog

v.3.10 (release)

*	Fixed: ATA buffer properly emptied when path to root built/long directory truncted (cures SD/CF adapter problems)
*	Fixed: Redundant scrollbar redraws removed (massively improving search speeds)
*	Fixed: NVRAM wasn't properly reset during cart init if checksum was bad (only affects SIDE2 build with corrupted OSS cart base bank number)
*	Added: CF card now run in PIO Mode 3 (improves IORDY cycle timing)
*	Added: IDE registers blocked (and held in reset state) when card removed
*	Added: File extension now remains static when long filename scrolls horizontally
*	Added: Cursor up/down acceleration (optional)
*	Removed: Joystick gestures on diagonal axis
*	Removed: 8K ROM support
*	Changed: FAT directory reading code (speeds up recursive search)
*	Changed: Card reset cycle extended and redundant pause removed (net speedup of card initialisation)

v.3.05

*	Added: Loader now sets ATR swap button override in PBI BIOS (if present)

v.3.04

*	Fixed: DSTATS not set correctly when obtaining APT drive map
*	Added: If pressed in loader, ATR swap button (if active) now rotates disk images immediately on-screen (same functionality as CTRL+S)
*	Changed: DSTATS always set to $C0 (read and write) when issuing host register and mount commands
*	Changed: RETURN always advances to next entry in logical drives list regardless of whether it unmounted a volume

v.3.03

*	Changed: Minor code optimisation

v.3.02 (release)

*	Fixed: Unnamed FAT entries missing from partition list
*	Fixed: Selected entry not consistently tracked during search
*	Fixed: SIDE2 displayed as 'SIDE1' in stand-alone loader's device menu
*	Fixed: Logged directory cluster number munged after MAP file processing
*	Changed: Boot drive override (to D1:) now issued on restart if a disk image exists on drive 1 (instead of immediately after mount operation)
*	Changed: No boot drive override issued when 'Boot SpartaDOS X' is selected (allows easy booting from CONFIG.SYS drive after mounting ATRs)

v.3.00 (release)

*	Changed: Stand-alone SIDE cart loader's bank-reset hotkey changed to START+SELECT+OPTION
*	Changed: Toggling secondary physical disk immediately re-logs disks
*	Changed: DMA disabled during initialisation (fixes screen garbage when loader run via CAR command)

v.2.12 (pre-release)

*	Fixed: Keyboard IRQ now sets a lock so the VBI's keyboard auto-repeat handler cannot cause a race condition on the keyboard buffer
*	Fixed: CTRL+H (root folder) shortcut now ignored in search mode
*	Changed: Character output routine optimised for faster screen updates
*	Changed: XEX loader now clears pages 4, 5 and 6
*	Changed: OS screen editor open suppressed on startup

v.2.11 (pre-release)

*	Added: Additional joystick control actions
*	Changed: Keyboard/joystick debounce logic
*	Changed: Auto-repeat keys added to keyboard buffer only if buffer empty
*	Changed: Enabling or disabling the slave drive (XEL version) immediately re-logs both drives
*	Changed: XEL loader now inherits (and greys out) slave drive activation setting from BIOS is PBI HDD is enabled

v.2.10

*	Added: As well as device and partition, logged directory is also (optionally) remembered between sessions
*	Added: LFN path support in MAP file entries (target ATRs need not be in the same folder as the MAP file)
*	Added: Reverse look-up on drive numbers in 'Logical disks' menu (ATR or partition is displayed in its folder/APT)
*	Added: Exiting search mode now returns to the previously highlighted file
*	Added: Ability to reboot with SpartaDOS X enabled (where available)
*	Added: Illegal DOS filename characters now cause a CIO bad filename error
*	Added: Support for folders containing more than 250 files, via paged display of longer file lists
*	Added: Built-in FMS can now open LFN files (internal use only)
*	Added: Stand-alone SIDE loader now able to set the bank number at boot time based on stored value in NVRAM
*	Added: Improved error reporting; error codes displayed in the file browser
*	Added: 'More' files shortcut (CTRL+M)
*	Added: Boot SDX shortcut (CTRL+X)
*	Added: Simplistic DRQ test at sector boundaries (may catch skipped reads on unstable systems)
*	Changed: Horspool pattern matching implemented (improves search efficiency)
*	Changed: Symbols for parent and root directory
*	Changed: Binary search code (directory logging: efficiency, refactoring)
*	Changed: 256 folder limit in searches removed; a virtually unlimited number of folders can now be scanned
*	Changed: Search mode now displays a running log of matched files and folders
*	Changed: Home and parent directory symbols
*	Changed: NVRAM configuration layout (totally rewritten; not backwards compatibilible)
*	Changed: Media checksum code (Boot code in sector 0 is now included in the cumulative MBR/EBR checksum in order to more reliably detect a disk change)
*	Changed: Additional resources added to the RLE compressed stream
*	Changed: Memory layout: ANTIC data is now outside (below) the banking window
*	Changed: Inter-bank JSR mechanism abandoned (all code from upper bank is now copied to RAM)
*	Changed: Pathing/breadcrumbs code totally rewritten so that LFN path to current directory may be generated
*	Changed: Patch for launching BASIC programs now issues RUN "D:" statement with no filename (target file is pre-opened; allows LFN BASIC programs)
*	Changed: Low RAM more extensively cleared prior to launching executables
*	Changed: First/last filename shortcuts replaced with CTRL+A/CTRL+Z respectively
*	Removed: 'Begins with' search option
*	Fixed: Spurious calls to SIOV with an invalid PDVMSK when no U1MB PBI BIOS is present
*	Fixed: FAT volume name bug (search for volume entry in root folder now occurs before check for boot sector volume name)
*	Fixed: Bug in sorting algorithm when duplicate filenames are encountered in search results
*	Fixed: Removed spurious screen redraws during search (improved search speed by orders of magnitude)

v.2.05

*	Fixed: Ability to inadvertently tag improper file types with drive numbers
*	Fixed: Existing mount points for the same image not properly cleared when mounting an image with number key shortcut
*	Fixed: Mounts performed via a MAP file in search mode not populating the drive map with their filenames
*	Fixed: Mount point selection mode not cleared by some functions if activated via keyboard shortcuts
*	Fixed: Mounting an image spontaneously deactivating search mode
*	Added: Shorcut key for top level directory (CTRL+H)
*	Changed: Shortcut key for parent directory (CTRL+P)
*	Changed: LFN code
*	Changed: Shortcut actions unrelated to drive number selection now cancel selection mode

v.2.02

*	Added: Folder support in CIO FMS (folder names in dir listings; path delimiters; chdir and get current path commands)
*	Fixed: Long filename scrolling failure if last entry on screen is not truncated
*	Fixed: Slave drive option re-enabling if no device is selected
*	Changed: RAM-based code now moved to low memory and cart ROMs at $8000 now completely avoided
*	Changed: XEX loader no longer relies on ZP PBI locations retaining values between segments (fixes PANG.XEX)

v.2.0 (Release)

*	Fixed: EBR handling
*	Fixed: SD/CF adapter compatibility (DRQ always cleared before issuing next IDE command)
*	Fixed: "Undo mounts" confirmation prompt bug
*	Fixed: Partition table refresh failure if slave disabled in PBI BIOS but logged in loader (1088XEL)
*	Fixed: Logical drive list dimmed when slave disabled in PBI BIOS but logged in loader (1088XEL)
*	Fixed: Proper OS flags now set when BASIC state changed
*	Fixed: FMS: Broken DOSINI initialisation on reset
*	Fixed: BASIC state management
*	Fixed: Various UI issues
*	Fixed: Executables ending in RTS now fall through DOSVEC (and restart the loader)
*	Fixed: DLI bug (last NMI on screen wasn't resetting VDSLST properly, causing issues with the High-Speed OS)
*	Added: Visual flagging of external APT partitions
*	Added: CAR file support (8K cartridge images only)
*	Changed: Each physical disk now has its own PBI support flag (ATRs won't display on slave if it's turned off in the PBI BIOS)
*	Changed: Device logging/timeout code
*	Changed: Dual drive logging behaviour
*	Changed: Partition sizes now truncated to four digits
*	Changed: FAT file sizes now optionally displayed (new toggle in Options menu)
*	Changed: Truncated strings now scroll consistently in all menus
*	Changed: XEX loader completely rewritten for speed and size (fragmented files now load MUCH faster)
*	Changed: ROM files size checked: only 8K ROMs listed
*	Changed: Configuration may now reflect no device being selected (on a dual-drive setup)
*	Changed: Mounting API: BASIC state may now be set independently of any mounting operation
*	Changed: Resource compression improved
*	Changed: Device timeout reverted to 128 frames (c. 2 seconds)

v.1.35 (pre-release)

*	Added: Slave drive handling (XEL-CF build)
*	Added: APT partition names populated in Logical drive menu when APT catalogued
*	Added: Host partition ID appears in MBR partition list (all builds)
*	Added: Device number and host partition ID appears next to mounted ATRs (all builds)
*	Changed: Default joystick control setting is now 'Disabled' (1088XEL fix)
*	Changed: Opening device now opens partition list unless there's only one FAT
*	Changed: Loader re-opens showing partition list if no partition had been selected
*	Fixed: Device name not properly aligned in XEL-CF build
*	Fixed: Esc sequence not allowing math characters to be entered in the search box
*	Fixed: Loader sets CRITIC for entire duration of segment load (cures Bash!.xex crash)
*	Fixed: Moved SIDE detection's WSYNC write ahead of screen setup (caused glitch with 65C816 at 20MHz)
*	Fixed: VBI now maintains RTCLOK
*	Fixed: VBI now maintains system timer 1 (fixes timeout when HDD is disabled)
*	Fixed: Spurious write to MEMTOP caused issues with cartridges
*	Fixed: Crash when running 16K carts ($8000-$BFFF)

v.1.34

*	Fixed: Card reset not cancelling search mode
*	Fixed: Opening APT not cancelling search mode

v.1.33

*	Added: Manual card reset/refresh function allows media swaps with Incognito, SIDE1, and XEL-I3

v.1.32

*	Changed: MAP files aren't displayed if there's no PBI HDD
*	Changed: IDE timeout reduced from c. 5 seconds to c. 2 seconds
*	Added: new build for XEL-I3 IDE controller hardware

v.1.31

*	Added: search now (optionally) scans entire filename (option to match only start of string still exists)
*	Added: Search setting
*	Added: Status line shows Ctrl-F 'open containing folder' shortcut after search is complete
*	Added: Status line shows instructions on closing search when search string is empty
*	Changed: Bitmaps and font now RLE compressed

v.1.30

*	Changed: Cosmetic details to match main BIOS

v.1.29

*	Changed: DOSVEC points to RTS instruction in disk-based version of loader

v.1.28

*	Added: Drive map now shows FAT ATR filenames if normal directory cataloguing or searching has already encountered the mounted files (kind of a "lazy update" which avoids purposefully trawling the entire directory tree simply in order to populate the name fields).
*	Added: Drive map now displays partition numbers
*	Added: Keyboard buffer
*	Added: "Swap ATRs" option rotates ATR mounts in software (same result as pressing the ATR swap button)
*	Changed: Deleting over the last character of a search string does not immediately exit search mode. Instead, pressing delete on an empty string does this (and search can still be cancelled at any time with Escape).
*	Changed: Joystick gestures now auto-repeat (no need to release trigger to generate gesture).
*	Removed: Console key page up/page down movement (replaced by auto-repeating joystick gestures)
*	Fixed: 8K ROMs and file system handler being wiped out by Reset

v.1.25

*	Added: Containing folder of file in search results list may be opened with CTRL-F
*	Changed: Abbreviated strings (with ellipses) now handled by Printf string routine (which now supports left justified fields)

v.1.24

*	Added: Escape sequence (Ctrl-Esc) for entering navigation keys into search string
*	Added: Scroll bars

v.1.23

*	Added: [BASIC] metatag in ATR or XEX name now forcibly enables BASIC prior to loading/booting

v.1.22

*	Added: Search now recursively scans current and child folders, creating new list of matching filenames

v.1.21

*	Added: Shift+Left Wedge ('<') now opens the parent directory in the FAT file list
*	Fixed: OS interrupt vectors corrupted after screen-saver cleared

v.1.20 (Release)

*	Fixed: Deleted entries not filtered out of CIO FAT FMS directory listing
*	Fixed: Dimming of unmount menu items depending on PBI presence and media ejection

v.1.14

*	Fixed: Minor directory handling bug
*	Fixed: Broken FAT FMS option

v.1.13

*	Changed: FAT Volume name and path displayed in title area of file list
*	Changed: APT displays "APT" in partition list title area when open
*	Fixed: Rogue write (mangled NMI code when equates happened to change)
*	Fixed: Much redundant code and equates removed, allowing better use of ZP (thereby making room for latest enhancements)

v.1.12

*	Fixed: Global shortcut for "Undo mounts" (Ctrl-U) did nothing at all (thanks ProWizard)

v.1.11

*	Removed: Reverse alpha sort order
*	Added: Option to suppress grouping of folders at start of list (enables speed-searching of folder names)
*	Fixed: Joystick control (broken in 1.10 by revised keyboard shortcuts)

v.1.10

*	Changed: Page up/down moved to Shift-Ctrl-up/down arrows
*	Changed: Ctrl-up/down arrows now work as up/down
*	Changed: Select/Option now duplicate page up/down
* 	Changed: Ctrl-H jumps to start of list, Ctrl-E to end of list
*	Addded: 1200XL function keys (F1-F4 = up/down/left/right, Shift+F1-F4 = page up/page down/home/end, Ctrl+F1-F4 = tag/set drive/next setting/prev setting)

v.1.09

*	Fixed: SIDE1 bug (spurious write to SIDE2 card removal flag address)
*	Changed: FAT Cluster chain EOF check (refactoring for code size)

v.1.08

*	Changed: UI homogenised across main BIOS and loader
*	Fixed: ZIOCB buffer length bug in FMS

v.1.07

*	Fixed: Joystick state initialisation
*	Changed: NVRAM defaults (key click and screen timeout are now enabled by default)

v.1.06

*	Fixed: Cart init didn't reset loader to lower bank (caused occasional crash on system reset)
*	Fixed: Bug in screen clear routine
*	Fixed: SIDE2 CF card hot-swapping now brings display out of idle state
*	Fixed: Joystick and trigger jitter
*	Fixed: (FMS) File mask not being applied to directory reads (always assumed "*.*")
*	Fixed: Anomalous menu behaviour when loader started with CF card ejected or no SIDE cart at all
*	Changed: Device list now shows "No Media" when card is removed
*	Changed: Device list now becomes empty when no SIDE cartridge is present
*	Changed: CF card initialisation and removal detection cleaned up

v.1.05

*	Fixed: Info menu items un-dimming when exiting screensaver
*	Changed: Last selected item now persists when moving between menus
*	Fixed: combat console key jitter on real hardware (since v.1.04)
*	Fixed: joystick control bugs introduced in v.1.04

v.1.04

*	Fixed: Click when using joystick
*	Fixed: Filename scroll delay reset when using joystick
*	Fixed: Inconsistent clearing of search string
*	Added: Esc clears search string
*	Added: Joystick debounce and faster repeat rate
*	Added: Console key navigation (Start = list top, Select = page down, Option = page up)
*	Changed: Slight increase to long filename scrolling rate

v.1.03

*	Fixed: NVRAM access not working on SIDE stand-alone loader

v.1.02

*	Added: Drive mount list greys out when card is pulled

v.1.01

*	Fixed: Issue with FAT lists containing more than 250 entries (thanks to Konrad Mrożek)
*	Changed: ASCII/Internal conversion LUT removed
*	Changed: "banner" screensaver implemented (same as main BIOS)

v.1.00 (Release)

*	Fixed: broken BASIC program loading
*	Added: Loading of COM and EXE files

v.0.44

*	Changed: ATR entries no longer displayed if PBI BIOS is off
*	Fixed: Crash when backing out of folder on second page or beyond

v.0.43

*	Changed: Help key no longer generates a sound when key click is enabled

v.0.42

*	Added: Confirmation message following "Undo mounts"
*	Added: Screen timout (optional; blaks display after five minutes)
*	Changed: Reboot shortcut key. Now "Restart" and on Ctrl+R
*	Added: BASIC toggle (persistent - Ctrl+B)
*	Added: New file type "MAP". Plain Windows/DOS text file containing EOL terminated ATR mounts (D1:long filename.atr)
*	Added: Ctrl+Return on MAP file mounts without reboot. Return on its own mounts then reboots machine.
*	Fixed: MEMTOP improperly set when disabling BASIC
*	Added: Key click option

v.0.41

*	Added: Antic registers cleared prior to XEX load

v.0.40

*	Fixed: Memory clear erasing part of loader code when FAT CIO file system handler disabled
*	Added: GTIA registers cleared prior to XEX load (fixes player width issues in games like Shamus which fail to initialise player width)

v.0.39

*	Fixed: Ctrl-U (Unmount all) keyboard shortcut
*	Fixed: MEMLO not set correctly when FMS disabled
*	Fixed: Directory buffer overflow not properly handled
*	Fixed: "Help" menu title disappearing when long filename scroll countdown timer reached zero
*	Fixed: FMS: file catalogue corrupt if called on subdirectory
*	Changed: Directory buffer now starts immediately after data in low RAM instead of at $4000
*	Changed: LFN scrolling delay adjusted from 50 jiffies to 40
*	Changed: LFN scrolling speed increased (was 10 jiffy delay, now 8)
*	Changed: Changing directory sort order now results in a re-read of the catalogue the next time the file list is displayed
*	Changed: Memory move and clear routines rewritten for brevity and speed
*	Changed: Top of XEX loader reduced to $0A6A
*	Changed: Top of FAT CIO handler reduced to $104B
*	Added: Loader support for 8K ROMs
*	Added: Copyright notice

v.0.38

*	Fixed: Bits 16-23 of sector number not properly cleared in FAT16
