PBI BIOS

v.3.10 (release)

*	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
*	Changed: If DUNIT is already >1 on entry to PBI SIO handler, it is not set to boot drive # (fixes some game menus)
*	Changed: Card reset cycle extended and redundant pause removed (net speedup of card initialisation)

v.3.05

*	Added: temporary ATR button override flag (allows loader to control button independently)

v.3.04

*	Fixed: Error returned of DBYTLO/HI does not match size of sector/data buffer
*	Added: Support for immediate SIO mode (DSTATS = 0 results in no data transfer)
*	Added: Support for Incognito ATR swap button disable setting
*	Changed: Removed extraneous CRITIC management and storage of Y in DSTATS from HSIO driver (OS handles it)
*	Changed: HDD handler now sets STATUS ($30) before returning in case OS doesn't (Altirra OS does, stock OS doesn't)

v.3.03

*	Fixed: XF551 high-speed detection bug
*	Fixed: SDX boots from 'Boot drive' setting if 'CONFIG.SYS' set to default (this was broken in v.3.02)
*	Fixed: Format command now returns NAK instead of $80 if issued on a partition
*	Fixed: Removed redundant code

v.3.02 (release)

*	Fixed: SIO status command now reliably returns enhanced density bit in first byte (DVSTAT) for 130K ATRs
*	Fixed: Dummy format command now returns error if enhanced density format attempted on single density (90K) ATR
*	Changed: Boot drive override clears after first use
*	Changed: SIO status command for device $20 now returns complement of controller error register in second byte (as per device $3x)

v.3.00 (release)

*	Changed: SIDE detection and ROM management code removed (now in main BIOS plugin)

v.2.11 (pre-release)

*	Fixed: Lost error code in Y returned by DRQ underrun/overrun check
*	Fixed: Drive map returned bits for logical drives on master/slave regardless of physical drive number in DUNIT

v.2.10

*	Fixed: third byte of status frame for ATRs changed from hardware ID to $E0 (fixes timeout error with real drives under DOS 2.5)
*	Fixed: Internal BASIC suppression no longer screws with right carts on the Incognito
*	Fixed: ATRs silently mounting on unregistered FATs (oops!)
*	Fixed: Off-by-one error on padded DD ATR sector count
*	Added: Synthetic IO noise (optionally) on HDDs and ATRs
*	Added: Ability to turn off IO noise on HSIO accelerated drives
*	Added: Support for DD ATRs with interleaved boot sector padding, and ATRs with padding at the end of the image
*	Changed: SDX detection for PBI version notice (totally rewritten and far more reliable)
*	Changed: ATR button register polling loops removed (prevents hang in 'unusual' circumstances)
*	Changed: PBI version notice patch moved to $8000

v.2.03

*	Changed: PBI version notice HATABS patch no longer used to persistently disable internal BASIC (fixes BASIC suppression with right carts)
*	Changed: PBI version notice patch moved back to $9000

v.2.02

*	Fixed: High-speed SIO hang (at divisors 5 and lower) if SDX is using 'OSRAM'
*	Changed: BASIC disable/PBI version notice patch moved to $5000 (to avoid cartridges)

v.2.01

*	Changed: PBI init code stores ATR boot drive number in DUNIT (fixes issue with DracOS)

v.2.00 (release)

*	Fixed: EBR parsing (bug caused only primary external APT partitions to mount)
*	Fixed: SIDE ATR swap button support (long broken: thanks Ramon Schmitt)
*	Changed: Main SIO patch vector now supports 24-bit address
*	Changed: ATR handler can now be patched in a sane manner
*	Changed: Invalid slave entries in the partition map (if slave is disabled) are now ignored
*	Changed: Boot drive redirection only performed on IO requests to drive 1 (fixes MYDOS versions which don't set the BOOT flag)
*	Changed: Boot drive redirection now only applies to reads (DSTATS = 0x40)
*	Changed: Device timeout reverted to 128 frames (c. 2 seconds)
*	Added: XEL-CF3 ATR swap button support and board revision sensing
*	Added: 65C816 patch can now survive a cold reset providing the OS and CPU still support native mode

v.1.90 (pre-release)

*	Added: BASIC disable feature (independent of HDD or HSIO)

v.1.89 (pre-release)

*	Fixed: Mounting ATRs belonging to host partitions on the slave drive
*	Changed: Host partition registration
*	Fixed: SIDE regression (uninitialised Slave bit merged with partition attribute)
*	Fixed: Slave drive now properly reset when enabled (thanks to Altirra XEL-CF emulation)
*	Added: Slave drive operation to XEL-CF build (configured by 1088XEL main BIOS plugin)

v.1.88

*	Changed: XEL-I3 build changed to XEL-CF

v.1.87

*	Changed: IDE timeout reduced from c. 5 seconds to c. 2 seconds
*	Added: extra build target for XEL_I3 IDE controller hardware

v.1.86

*	Fixed: HSIO standard speed fallback (highlighted by MegaSpeedy firmware problem on NTSC systems)

v.1.85

*	Added: Mount command: D6 of Flags when set causes ATRs to be rotated (as per ATR button). Used by latest loader.

v.1.84

*	Added: 19k SIO2BT only mode (standard speed IO with long SIO2BT command timeout). Avoids polling delays when HSIO is not required.

v.1.83

*	Fixed: RTC bit-masking bug

v.1.82

*	Fixed: RAM cleared under BASIC ROM when BASIC disabled (cured Spelunker ATR boot problem)
*	Changed: DUNIT boot redirection only applied if DDEVIC = $3x
*	Changed: During boot, if drive swap can't be performed (if boot drive or D1: isn't a HDD partition), normal boot redirection performed
*	Changed: Drive swap filtering disallows mounted ATRs

v.1.81

*	Fixed: SIO boot DUNIT redirect bug

v.1.80 (Release)

v.1.78

*	Fixed: IO vectors reset on OS coldstart instead of cold boot

v.1.77

*	Added: IO vectors - if changed - no longer revert to defaults on every system reset

v.1.76

*	Changed: SIO device IDs with bit 7 set now unhandled by HSIO (it is assumed 65C816 OS will handle such devices)

v.1.75

*	Added: ATR IO transfer hook (24-bit) at $D1B6
*	Changed: Sector IO transfer hook vector ($D1B9) now 24 bit and executed in 65C816 native mode when MSB > 0

v.1.74

*	Changed: HSIO now handles devices $20 and $A0 (APT physical disk device) in "Disks+PCLink" mode, since SIO2BSD responds to CUNIT = $21

v.1.73

*	Fixed: Total disk capacity now derived from words 60-61 of Identify Device command rather than deprecated words 57-58 (which are also CHS capped)

v.1.72

*	Changed: PBI version notice skipped if HDD disabled regardless of SDX state (external cart could trigger it)

v.1.71

*	Changed: ATR code refactoring

v.1.70

*	Fixed: Diskinfo bug (ATR cluster number had bit 31 set if DD disk image had padding after boot sectors; thanks to Prowizard)

v.1.69

*	Fixed: Drive 1 swap bug
*	Fixed: DD ATR bug

v.1.68

*	Added: "Z:" device handler (compatible with IDE Plus 2.0 implementation - i.e. everything but TD line)
*	Added: Separate SDX (CONFIG.SYS) boot drive
*	Changed: ATR handling completely rewritten
*	Changed: Inter-bank JSR calls reduced from six to five bytes
*	Changed: PBI version notice now appears under SDX regardless of which SDX bank is present when OS boots
*	Fixed: SIO2BT polling now succeeds even if device responds to Get Status with a NAK error
*	Fixed: Boot drive override now applies even if HDD is disabled (allows selective bypassing of HDD boot when SDX is off)

v.1.67

*	Fixed: SIO2BT and HSIO bugs

v.1.66

*	Added: SIO2BT speed poll
*	Changed: HSIO device filtering

v.1.65

*	Fixed: Get PERCOM returning a NAK error
*	Changed: IORAM layout (main BIOS now uses volatile area in $D1xx)

v.1.64

*	Changed: PCLink (ddevic = $61, dunit = $0F) SIO handling now only enabled when SIO driver applied to "All+PCLink"

v.1.63

*	Changed: SIO2BT long timeout now applied to all devices aside from 'New Poll' and cassette
*	Removed: SIO2BT auto-detection (proved unreliable using stock timeout)
*	Fixed: SIO2BT handling based on setup data
*	Changed: SIO2BT setting now enables long timeout and reduced retry on every drive, but still polls for high speed
*	Changed: SIO driver configuration bits
*	Changed: Boot-time CF detection and ejected card handling
*	Changed: Code refactoring (footprint reduction)

v.1.62

*	Added: high-speed SIO: fixed timeout of $10 (for SIO2BT) if device responds with speed code $28 (standard)
*	Fixed: Subtle bug in FAT16 EOF checking
*	Changed: Sector Offset variable reduced from 4 bytes to 1 (previously cast as dword for 32-bit math macros)
*	Changed: Sectors per cluster count reduced from 4 bytes to 1
*	Changed: FATOffset variable jettisoned (saving a further 2 bytes of IO RAM)
*	Added: hook vectors for sector transfer and complete SIO call. This mechanism is similar to that found in the IDE Plus BIOS,
	and enables replacement of the entire PBI SIO function or just the sector transfer routines by - for example - code loaded into
	65C816 fast RAM.

v.1.61

*	Fixed: Fixed DD boot sector write bug
*	Changed: code reorganisation


v.1.60

*	Fixed: Incorrect setting of MEMTOP when disabling BASIC
*	Changed: DD partitions now only transfer 128 bytes for sectors 1-3


v.1.59

*	Fixed: Inadvertent banking in of SIDE external 16KB ROM when ATR swap button pressed


v.1.58

*	DUNUSE reinstated for compatibility with 24-bit SDX sector addressing when not using XDCB
*	Dropped CIO call to open screen editor when disabling BASIC on boot
*	BASIC disable also sets MEMTOP