IBM XGA Driver for Microsoft Windows/386 2.11
Version 1.0 beta


This is an experimental IBM XGA video driver package for Microsoft Windows/386 2.11, intended primarily for use with 86Box and IBM XGA-compatible configurations.

For many years, XGA support in the Windows 2.x family was effectively limited to Windows/286, while Windows/386 users had to rely on 8514/A or other high-resolution drivers. IBM also provided XGA support for Windows 3.0, but Windows/386 2.x was left without a proper XGA driver option.

This beta package is an attempt to finally fill that gap.

The driver allows Windows/386 2.11 to run with IBM XGA graphics at 1024×768 with 256 colors, while preserving the ability to use DOS applications in both windowed and full-screen modes.

What was adapted

This package is not a completely new driver written from scratch. It is an adaptation of existing IBM and Microsoft Windows 2.x / Windows/386 driver components.

The base display driver is the original IBM XGA real-mode display driver for Windows 2.1 / Windows/286. That driver was able to drive the IBM XGA adapter in Windows, but it was not directly usable as a complete Windows/386 2.11 solution because Windows/386 also needs additional support files for DOS applications, windowed DOS sessions, full-screen switching, and screen grabbing.

The adaptation work in this package includes:

- The original IBM XGA.DRV was patched for Windows/386 use.
  It remains a Windows 2.x real-mode display driver, but additional logic was added to cooperate with the Windows/386 DOS-window switching path.

- The original IBM XGA.GRB was investigated, but it uses an older grabber format and is not accepted by Windows/386 2.11 as a valid GRB 1.01 grabber.

- A compatible Windows/386 GRB 1.01 grabber, based on WT1K3.GRB (Trident 8900 Win/386 drivers), is used instead and patched for XGA use.
  The patched grabber notifies the XGA display driver when DOS sessions return from full-screen mode to windowed mode, including the cases where this happens through Alt+Enter, Alt+Tab, Alt+Esc, program exit, or other non-manual transitions.

- The patched XGA.DRV restores the required XGA display state after full-screen DOS activity and triggers a Windows-side repaint/update step so that bitmaps, icons, fonts, and title-bar graphics are redrawn correctly after returning to the Windows desktop.

- A generic Windows/386 .3EX support file is used.
  The tested .3EX files from several Windows/386 high-resolution driver sets are byte-identical, so this component does not appear to contain XGA-specific logic.

- TLIVGA4.386 (taken from Tseng Labs Win/386 drivers) is used as the current compatible Windows/386 .386 VDD.

- XGAVDD12.386 from the Windows 3.x IBM XGA driver package is not used as a drop-in component.
  It is a Windows 3.x VxD/LE-format driver and was only used as a reference for XGA behavior, not as a direct Windows/386 2.11 replacement.

In short, this beta combines the original IBM Windows 2.x XGA display driver with a patched Windows/386-compatible grabber and existing Windows/386 support components, making XGA usable in Windows/386 2.11 with both Windows applications and DOS applications in windowed and full-screen modes.

Recommended test configuration:
- Emulator: 86Box
- Video adapter: IBM XGA / XGA-1
- Video memory: 1 MB
- Windows version: Microsoft Windows/386 2.11
- Display mode: 1024×768, 256 colors

Package contents:
- XGA.DRV  - patched Windows 2.x real-mode XGA display driver
- XGA.GRB  - patched Windows/386 grabber support file
- XGA.386  - Windows/386 VDD
- XGA.3EX  - Windows/386 support file

Installation:
1. Run Windows/386 installation.
2. When you are asked to select your display adapter, select Other (requires disk...)
3. Insert (mount) this xga-win386.ima image to drive A: and enter A:\WIN386
4. Select "IBM XGA Display Adapter" from the list and complete Windows/386 installation.
5. Test both Windows applications and DOS applications in windowed and full-screen modes.

Notes:
- This is a beta release.
- It was developed and tested mainly in 86Box.
- Real hardware testing has not been completed.
- Some minor visual or switching issues may still exist.
- DOS applications should now work in windowed mode and full-screen mode, including switching back to Windows without the major bitmap/icon/font corruption previously seen during full-screen transitions.

Known limitations:
- This package is experimental and unsupported. It is not compatible with Windows/386 2.03 or earlier.
- Compatibility may depend on the exact Windows/386 build, emulator settings, and XGA configuration.
- If you experience display corruption, restore your backup and report the exact steps needed to reproduce the issue.

Credits:
This project by Alex Björklund (SlashNet) builds on original IBM and Microsoft Windows 2.x/Windows/386 video driver components and many rounds of reverse engineering, testing, and patching.

Special thanks to the classic Windows and 86Box communities for keeping this obscure part of PC graphics history alive.



IBM XGA Driver for Microsoft Windows/386 2.11
Версия 1.0 beta

Это экспериментальный пакет видеодрайвера IBM XGA для Microsoft Windows/386 2.11, в первую очередь предназначенный для использования в 86Box с конфигурацией IBM XGA.

Долгое время поддержка XGA в линейке Windows 2.x фактически существовала только для Windows/286. Пользователям Windows/386 приходилось использовать 8514/A или другие высокоуровневые драйверы. IBM также выпускала XGA-драйверы для Windows 3.0, но Windows/386 2.x так и осталась без полноценного XGA-варианта.

Этот beta-релиз — попытка закрыть этот пробел.

Драйвер позволяет запускать Windows/386 2.11 с графикой IBM XGA в режиме 1024×768, 256 цветов, сохраняя возможность работы DOS-приложений как в оконном, так и в полноэкранном режиме.

Что было адаптировано

Этот пакет не является полностью новым драйвером, написанным с нуля. Это адаптация существующих компонентов IBM и Microsoft для Windows 2.x / Windows/386.

В качестве основы используется оригинальный real-mode XGA-драйвер IBM для Windows 2.1 / Windows/286. Этот драйвер умел работать с IBM XGA в Windows, но сам по себе не являлся полноценным решением для Windows/386 2.11, потому что Windows/386 также требует дополнительные файлы поддержки для DOS-приложений, оконных DOS-сессий, полноэкранного режима, переключений и screen grabbing.

В рамках адаптации было сделано следующее:

- Оригинальный IBM XGA.DRV был пропатчен для использования в Windows/386.
  Он остаётся real-mode display driver для Windows 2.x, но в него добавлена дополнительная логика для взаимодействия с механизмом оконных DOS-сессий Windows/386.

- Оригинальный IBM XGA.GRB был изучен, но он использует старый формат grabber-файла и не принимается Windows/386 2.11 как корректный GRB 1.01 grabber.

- Вместо него используется совместимый Windows/386 GRB 1.01 grabber на базе WT1K3.GRB (драйвер Trident 8900 для Win/386), адаптированный для работы с XGA.
  Модифицированный grabber уведомляет XGA-драйвер о возврате DOS-сессии из полноэкранного режима в оконный, включая случаи Alt+Enter, Alt+Tab, Alt+Esc, выход программы, команду exit и другие варианты перехода обратно в Windows.

- Модифицированный XGA.DRV восстанавливает необходимое состояние XGA после полноэкранной DOS-сессии и вызывает Windows-side repaint/update, чтобы bitmap, иконки, шрифты и элементы заголовков окон корректно перерисовывались после возврата на рабочий стол Windows.

- Используется generic Windows/386 .3EX support file.
  Проверенные .3EX-файлы из нескольких Windows/386 high-resolution driver sets оказались идентичными, поэтому этот компонент, судя по всему, не содержит XGA-специфичной логики.

- В качестве текущего совместимого Windows/386 .386 support component используется TLIVGA4.386.
  Это Windows/386 2.x VDD, взятый из драйверов Tseng Labs для Win/386.

- XGAVDD12.386 из комплекта IBM XGA для Windows 3.x не используется как готовая замена.
  Это Windows 3.x VxD/LE-format driver, использованный как справочник по поведению XGA, но не подходящий напрямую для Windows/386 2.11.

Коротко: эта beta-версия объединяет оригинальный IBM XGA-драйвер для Windows 2.x, модифицированный Windows/386-compatible grabber и существующие компоненты поддержки Windows/386, чтобы сделать XGA пригодной для работы в Windows/386 2.11 как с Windows-приложениями, так и с DOS-приложениями в оконном и полноэкранном режимах.

Рекомендуемая тестовая конфигурация:
- Эмулятор: 86Box
- Видеоадаптер: IBM XGA / XGA-1
- Видеопамять: 1 MB
- Версия Windows: Microsoft Windows/386 2.11
- Видеорежим: 1024×768, 256 цветов

Состав пакета:
- XGA.DRV  - модифицированный real-mode XGA-драйвер для Windows 2.x
- XGA.GRB  - модифицированный grabber-файл для Windows/386
- XGA.386  - VDD для Windows/386
- XGA.3EX  - вспомогательный файл Windows/386

Установка:
1. Сделайте резервную копию установленной Windows/386.
2. Скопируйте файлы из пакета в каталог Windows.
3. Убедитесь, что SYSTEM.INI / SETUP указывает на XGA-драйвер.
4. Запустите Windows/386 обычным способом.
5. Проверьте работу Windows-приложений и DOS-приложений в оконном и полноэкранном режимах.

Примечания:
- Это beta-версия.
- Основная разработка и тестирование выполнялись в 86Box.
- Тестирование на реальном железе пока не завершено.
- Мелкие визуальные ошибки или проблемы переключения всё ещё возможны.
- DOS-приложения должны работать в оконном и полноэкранном режимах, включая возврат обратно в Windows без серьёзной порчи bitmap, иконок и шрифтов, которая раньше возникала при переключениях из full-screen DOS.

Известные ограничения:
- Пакет экспериментальный и неофициальный. Он несовместим с Windows/386 2.03 или более ранними версиями.
- Совместимость может зависеть от конкретной версии Windows/386, настроек эмулятора и конфигурации XGA.
- Если вы столкнулись с повреждением изображения, восстановите резервную копию и опишите точные шаги для воспроизведения проблемы.

Благодарности:
Проект создан Alex Björklund (SlashNet) на основе оригинальных компонентов IBM и Microsoft для Windows 2.x / Windows/386, а также на большом количестве обратной разработки, тестирования и патчинга.

Отдельная благодарность сообществам classic Windows и 86Box за то, что эта редкая часть истории PC-графики всё ещё жива.
