VOGONS


First post, by douglar

User metadata
Rank l33t
Rank
l33t

Sorry if this isn't the correct spot to post this but XUB r630 came out during the holidays.

https://xtideuniversalbios.org/timeline

  • Changed the g_szPCFlashSuccessful string in XTIDECFG to reflect the reality - it turns out ANY key was limited to just ENTER or ESC.
  • Removed the NEC V-specific optimization I added in r602 because NEC's documentation completely fails to mention that the ROL4 instruction also changes the high nibble of AL. Huge thanks to vcfed-member dreNorteR for discovering this and also for suggesting an optimization to the physical address conversion code in IdeTransfer.asm.
  • Made some changes to the OUTPUT_AL_TO_IDE_REGISTER and OUTPUT_AL_TO_IDE_CONTROL_BLOCK_REGISTER macros as an optimization. This saves 15+12 bytes in builds without MODULE_8BIT_IDE (e.g. the PS/2 builds).
  • Other minor optimizations and cleanups.

Reply 1 of 4, by douglar

User metadata
Rank l33t
Rank
l33t

https://xtideuniversalbios.org/changeset/631/ … deuniversalbios

Changes:

Fixed a bug in XTIDECFG where changing the COM port for a virtual serial device would not work at all. Thanks to Jaroslaw Jablonski for reporting this problem.
Added a couple of macros to the library, LPUSH and LPOP, which creates the long (two bytes) encoding of PUSH and POP respectively. They are pretty much useless except LPOP can be used to differentiate between 808x and NEC V CPUs.

Reply 3 of 4, by douglar

User metadata
Rank l33t
Rank
l33t

https://www.xtideuniversalbios.org/changeset/ … deuniversalbios

Changes 637

The number of attempts to boot from floppy drives with no floppy inserted has been reduced from 3 to Each attempt can take as much as 3 seconds which means that a total of 9 seconds would be wasted on waiting on the BIOS to stop trying to boot from floppy. This is normally not a problem with most BIOS builds since the default boot drive is C: but with non-interactive builds (builds without MODULE_BOOT_MENU and MODULE_HOTKEYS - e.g. the Tiny build) this delay could be aggravating as the boot order is fixed to first-A-then-C.

A few minor optimizations specifically for the 386 builds.

Fixed a couple of erroneous comments in IdeIO.asm.

Changes 636

Another round of optimizations. One notable change is that the code in IdeIO.asm for the XT-IDE rev2+ controllers no longer uses a lookup table to switch A0 and A3, at least not by default. A define (NOSWAPA0A3LOOKUPTABLE = 0, 1 or 2) can be used to select between 3 different alternatives of which the first (0) is the old lookup table code which also requires the most ROM space. Vcfed member Malc has kindly benchmarked all three variants and found no differences in performance so the most space saving option (2) is now the default.

Another notable change is that the optimization to MenuAttributes.asm required project wide changes in the form of an additional define simply because of how bad the implementation of the origin (ORG) directive is in NASM. Even calling it half-assed would be praise

Reply 4 of 4, by douglar

User metadata
Rank l33t
Rank
l33t

https://www.xtideuniversalbios.org/changeset/ … deuniversalbios

Changes 638
Timestamp: Jun 9, 2026, 10:36:36 AM
Author: Krister Nordvall

  • Created MODULE_ATAPI which adds a very simplistic detection of ATAPI devices. This is WIP so it's not included in any builds because I'm not able to test it and the chances of it working are slim to none.
  • The ATAID validation failing for a drive was very confusing because the BIOS would just say "not found" as if the drive had not been detected at all. This has now been changed to "failed validation" instead. This doesn't actually change anything for users of the official builds since the NO_ATAID_VALIDATION define is still enabled for these builds due to several models of WD Caviar drives being incompatible with (failing) the validation check.
  • Added a special set of defines to the BIOS makefile specifically for use with 'make strings' - it used to depend on the set of defines for the Large AT-build. This allows adding new defines/build options as needed to ensure compression of all strings that should be compressed without otherwise affecting any of the BIOS builds.
  • Another major change to the BIOS makefile is that BIOS build sizes are no longer sent as parameters to NASM or checksum.pl. NASM will compute BIOS_SIZE and CNT_ROM_BLOCKS itself which means that all BIOS builds are now always made with the minimum possible size regardless of their designation as Tiny, Small or Large builds.
  • This also required changes to checksum.pl since it expected the size as the second parameter - it will now extract the size from the BIOS binary instead. A couple of bugs was also fixed; 1) the error handling for opening the BIOS files did not work (at least not on my system) - the "file not found" message could not be triggered. 2) the compatibility fix for 3Com 3C503 cards would not be applied if the BIOS file size was exactly 8189 bytes.
  • Added a proper ROMVARS flag for MODULE_MFM_COMPATIBILITY (FLG_ROMVARS_MODULE_MFM_COMPATIBILITY) and made the visibility of the 'Remove other hard drives' Boot settings menu item depend on it. If this module is included in the BIOS build then the menu item will not be available simply because they can't be used together. Also added a check to 'Auto Configure' to warn users when using BIOS builds with this module included if it conflicts with the need for having 'Remove other hard drives' set to YES.
  • The visibility of the Color Theme menu item now depends on the Display Mode setting in addition to MODULE_BOOT_MENU being included in the BIOS build. Selecting the Monochrome mode or one of the Black & White modes will hide it.
  • Added five new color themes.
  • Removed a sentence in g_szHelpBootTimeout stating that the Boot Menu timeout can be disabled by setting it to zero when in fact doing so is not even possible.
  • BIOS builds made with USE_386 but without USE_AT will now identify themselves as (386), not (XT+).
  • The macros in IdeIO.inc handling IDE registers (OUTPUT_AL_TO_IDE_REGISTER, OUTPUT_AL_TO_IDE_CONTROL_BLOCK_REGISTER and INPUT_TO_AL_FROM_IDE_REGISTER) has been extended to also accept DX and DL as parameters.
  • A few minor optimizations and fixes.