Skip to content

Conversation

@Domppari
Copy link
Contributor

@Domppari Domppari commented Sep 27, 2025

Summary

OS/2 Warp 3.0 had an issue with loading the setup from disk01, the FDD/FDC got into a seek loop / reset loop. Issue was the OS/2 was sending read sector command during FDD seek. I changed stat flag to 0x10 to state that the FDD/FDC is busy during seek and created a backup in the FDD to enqueue any request it received during seek and process them after the seek has finished.

Tested with:

  • Windows NT 3.1 October 1991 build and 1993 build
  • OS/2 Warp 3.0 Bluebox Edition (Initial issue was with Red Spine, but the problem was also in Bluebox)
  • Pentium Award BIOS
  • 486 DX4 AMI BIOS
  • IBM PS/1, PS/2, PS/55, PCJr
  • AT-system
  • XT-system

Checklist

Toni Riikonen and others added 30 commits September 6, 2025 17:35
Updated README to reflect the new project name and added details about the Immersive86Box features and future plans.
Added instructions for audio emulation installation.
…e operation and when it's finished at call fdc to set the appropriate fdc flags.

Also added time logic to fdd to calculate seek duration and a callback function for it.
DISABLE_FDD_AUDIO definition added, to disable the feature via cmake/build.
…ill take the "correct" amount of time for each system and the seek time is based on the track count. E.g. 40 track FDD system causes 40 track seek time to be 80/40 * 6ms * 40 tracks + 50ms = 480ms + 50ms -> 530ms.

80 track system full seek is 80/80 * 6ms * 80 + 50ms = 530ms, 40 track seek would take 240 + 50 = 290ms.
Domppari and others added 22 commits September 18, 2025 07:56
…ow found there, looks in the executable directory
…even_when_it_gets_no_more_accesses

Fixed second drive motor keeps running when first drive is only accessed
Teac 5.25" drive sounds added and FDD settings audio selection is now drive specific
…disk issues. Changed the fdc->stat bit to 0x10 which states fdc busy. Previous implementation with seek time 0, set the ready flag 0x80 immediadely - which was correct for that time, but now as the drive is busy during seek, the value should 0x10. Implemented a backup for fdd commands during fdd seek to be processes after the seek is completed.
@bhjdhgcehgrehge
Copy link

Monitor_1_20250927-011500-090 Microsoft OS/2 1.21 has this issue as well.

@Domppari
Copy link
Contributor Author

Domppari commented Sep 27, 2025

Monitor_1_20250927-011500-090 Microsoft OS/2 1.21 has this issue as well.

Very likely that any FDD issues caused be the new FDD seek implementation would be fixed in this PR.

@jriwanek jriwanek merged commit 836f855 into 86Box:master Sep 27, 2025
45 checks passed
@Domppari Domppari deleted the fix_fdd_audio_build branch September 28, 2025 06:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

OS/2 Warp 3.0 (Red Spine) regressions

3 participants