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