Привет, Хабр!

Перед следующей статьей из цикла «Приключения микропроцессоров» мы решили поговорить с вами о GUI. Из года в год система взаимодействия ОС, ПО и пользователей совершенствовалась. Аппаратные методы общения с компьютером уступили место интерфейсу командной строки. Командная строка в пользовательском сегменте «сдалась» под напором файл-менеджеров. И, наконец, появились полностью графические интерфейсы пользователя с привычными окнами, выпадающими меню и прочими удобствами.

Сегодня мы хотели бы поговорить о том, как развивался графический пользовательский интерфейс на протяжении последних 50 лет. Под катом рассмотрим некоторые интересные образчики применения GUI, необычные ОС и компьютеры. Как обычно, с массой фотоматериалов и видео. Потому что, как говорила Алиса, «что же это за книжка, в которой нет картинок?».

Кратко о первых устройствах ввода

Вероятно, одним из самых ранних образцов пользовательского интерфейса (конечно же, если воспринимать его в качестве некой системы взаимодействия программиста и вычислительной машины) является перфокарта. Ничего общего с UI в современном понимании этого термина перфокарты не имели. Фактически, это всего лишь средство ввода программ и данных для последующей обработки. Одно из первых устройств для создания перфокарт было разработано Германом Холлеритом еще в 1897 году. А на фотографии ниже изображено устройство середины XX века.

Перфокарта в перфораторе. // Источник: visualhistory.livejournal.com
Перфокарта в перфораторе. // Источник: visualhistory.livejournal.com

Вслед за перфокартами компьютеры обзавелись клавиатурами. Сначала — в виде модернизированных печатных машинок (или подобных устройств), а первые полноценные компьютерные клавиатуры появились только в 1970-х.

Приблизительно так выглядели первые компьютерные «клавиатуры»: телетайпы и печатные машинки нередко «модифицировали» для подключения к ЭВМ. // Источник: Bazava.ru
Приблизительно так выглядели первые компьютерные «клавиатуры»: телетайпы и печатные машинки нередко «модифицировали» для подключения к ЭВМ. // Источник: Bazava.ru

В 1968 году на Калифорнийской выставке интерактивных устройств была продемонстрирована первая компьютерная мышь, а 2 года спустя Дуглас Энгельбарт запатентовал свое изобретение. В СССР компьютерные мыши также производились. Одна из первых версий носила гордое имя «Манипулятор „Колобок“» — по всей видимости, из-за металлического шарика. Тем не менее, лишь с приходом на массовый рынок GUI мыши приобрели повсеместную популярность.

Прототип мыши Дугласа Энгельбарта. // Источник: en.wikipedia.org
Прототип мыши Дугласа Энгельбарта. // Источник: en.wikipedia.org
Отечественный «Колобок». Следы плавления на корпусе остались от проводов, которыми он был обмотан во время хранения. // Источник: polymus.ru
Отечественный «Колобок». Следы плавления на корпусе остались от проводов, которыми он был обмотан во время хранения. // Источник: polymus.ru

Еще одно популярное устройство ввода, джойстик, перекочевало в компьютерное (преимущественно игровое) применение из военной техники. Да, это не совсем «указывающее» устройство, однако мы не могли пройти мимо следующего интересного факта.

Неизвестно, кто именно начал применять джойстики для управления компьютером, однако первым электрическим джойстиком на сегодняшний день считается knüppel («кнюппель»), специальное устройство, с помощью которого осуществлялось управление ракетами Henschel Hs 293 1943 года.

Один из вариантов knüppel. // Источник: Wehrmacht-history.com
Один из вариантов knüppel. // Источник: Wehrmacht-history.com

Кроме того, в течение нескольких десятилетий на рынке существовали разнообразные варианты трекболов (предшественник мыши), световых перьев и прочих устройств ввода. Некоторые из них так и остались в истории, некоторые трансформировались в привычные нам сегодня девайсы. Однако не будем заострять излишнее внимание на средствах взаимодействия с GUI и перейдем к разговору непосредственно об этой концепции.

GUI как принцип

Вначале стоит сказать пару слов непосредственно о том, что такое GUI и какими критериями интерфейс должен обладать, чтобы называться «графическим».

Традиционно принято считать, что GUI (Graphic User Interface) предполагает взаимодействие пользователя с компьютером при помощи разнообразных графических элементов управления, иконок. В лаборатории Xerox PARC (об их разработках мы поговорим чуть ниже) была предложена концепция WIMP (Windows, Icons, Menus, Pointers). 

Полноценный GUI от Xerox. // Источник: white-windows.ru
Полноценный GUI от Xerox. // Источник: white-windows.ru

В качестве вспомогательных элементов могут использоваться звуки и другие атрибуты «пользовательского комфорта», не имеющие к GUI непосредственного отношения, однако способствующие раскрытию некоторых интерфейсных метафор.

Метафорами в мире GUI принято называть интерфейсные реализации объектов/парадигм физического мира, знакомых пользователю. Например, к таким метафорам относятся «рабочий стол», «папка» и т.п.

Характерные примеры систем с GUI: 

  • ОС Windows; 

  • ОС Workbench; 

  • графическая оболочка GEM для ОС CP/M Гэри Килдалла.

Windows 1.01. // Источник: TAdviser, автор скриншота: пользователь M С
Windows 1.01. // Источник: TAdviser, автор скриншота: пользователь M С
Скриншот одной из версий GEM для CP/M. // Источник: blogspot.com
Скриншот одной из версий GEM для CP/M. // Источник: blogspot.com

В свою очередь, текстовый (TUI) и командный интерфейсы (CLI) основываются на ручном вводе всех необходимых команд в командной строке. Для представления информации в них используются исключительно набор буквенно-цифровых символов и символов псевдографики. 

Характерные примеры: 

  • Commodore 64 (работа пользователя с компьютером начинается в интерпретаторе BASIC); 

  • ZX Spectrum (также интерпретатор BASIC);

  • Microsoft DOS (командная строка);

  • CP/M (командная строка).

При включении C64 без дополнительных картриджей пользователю доступен интерпретатор языка BASIC. 
// Источник: der-softwareentwickler-blog.de
При включении C64 без дополнительных картриджей пользователю доступен интерпретатор языка BASIC. // Источник: der-softwareentwickler-blog.de
Система CP/M, запущенная в эмуляторе. // Источник: wikipedia.org
Система CP/M, запущенная в эмуляторе. // Источник: wikipedia.org

Строго говоря, во многих системах из этого списка GUI мог быть реализован в рамках отдельных программ (например, GEOS для C64). 

Иногда текстовый интерфейс может комбинироваться с графическим, однако в таких случаях вряд ли стоит говорить о полноценном GUI. К примеру, некоторые штатные модели ZX Spectrum имеют загрузочное меню, предлагающее выбор (переход к BASIC, загрузка с магнитной ленты или гибкого диска и пр.), а переходы между пунктами меню сопровождаются характерными щелчками. 

Стартовый экран ZX Spectrum 128. // Источник: bytedelight.com
Стартовый экран ZX Spectrum 128. // Источник: bytedelight.com

Исторически одной из первых компьютерных программ, имплементировавших нечто похожее на GUI, является программа для рисования схем и чертежей Sketchpad. Она была разработана инженером Айвеном Сазерлендом в 1963 году и управлялась световым пером.

Работа со Sketchpad. // Источник: cadproekt.ru
Работа со Sketchpad. // Источник: cadproekt.ru

А в конце 1960-х команда Стенфордского университета под руководством Дугласа Энгельбарта разработала NLS, On-Line System. Эта система фактически предвосхитила появление более поздних инструментов для совместной работы с текстом и прочими данными. Для взаимодействия с гиперссылками предлагалось использовать устройство типа «мышь». 

Пользователь NLS оперирует мышью для работы с гиперссылками. // Источник: misc.ru
Пользователь NLS оперирует мышью для работы с гиперссылками. // Источник: misc.ru

И Sketchpad, и NLS не являются полноценными примерами реализации GUI, тем не менее, сам факт их существования свидетельствует о том, что в ряде случаев использование графики и навигация при помощи указывающего устройства способны сделать работу с компьютером гораздо более удобной.

Xerox Alto и Xerox Star

Первым компьютером с графическим пользовательским интерфейсом считается Xerox Alto, разработанный в лаборатории Xerox PARC в 1973 году. Это был экспериментальный продукт, не предназначенный для широкого рынка. Тем не менее, к концу 1970-х было произведено порядка 2000 машин этой линейки.

Большая их часть, порядка полутора тысяч, были установлены непосредственно в Xerox Laboratories, остальные продавались университетам в качестве учебных и вычислительных машин.

Xerox Alto. // Источник: bit-tech.net
Xerox Alto. // Источник: bit-tech.net

Уже в первые годы существования Alto приобрел широкую известность в Кремниевой долине. Еще большую популярность Xerox принесла разработка усовершенствованной версии Alto, Xerox Star. Первые лица крупных технологических компаний, в том числе представители Microsoft и глава Apple Стив Джобс посещали Xerox Laboratories, чтобы поработать с этими компьютерами. Известно, что в 1979 Джобс договорился о специальных демонстрационных сессиях в обмен на некоторые бонусы для Xerox от компании Apple. В следующие несколько лет на свет появились Apple Lisa и Macintosh, первые рыночные образцы ПК с графическим пользовательским интерфейсом.

Помимо Джобса, вдохновение для собственных GUI у Xerox черпал и Билл Гейтс. В мире высоких технологий всегда действовал принцип «кто первый показал, тот лучше продается», поэтому времени на разработку уникального интерфейса ни у Apple, ни у Microsoft толком не было. Именно поэтому ранние версии графических ОС у обеих компаний выглядят как близнецы-братья. Взгляните сами:

Xerox Star(слева), Apple Lisa (справа сверху), Apple Macintosh (справа снизу). // Источник: medium.com
Xerox Star(слева), Apple Lisa (справа сверху), Apple Macintosh (справа снизу). // Источник: medium.com
Windows 1.0, версия 1983 года. // Источник: betawiki.net
Windows 1.0, версия 1983 года. // Источник: betawiki.net

Разумеется, Джобс не мог упустить возможность подать на Гейтса в суд за наглое копирование его собственного самобытного (позаимствованного у Xerox) дизайна ОС.

Xerox Alto дал толчок отрасли разработки графических пользовательский интерфейсов. Тем не менее, ввиду дороговизны компьютерных компонентов, сложности разработки GUI и неготовности крупных игроков менять подход к созданию компьютеров и ПО, первые машины, снабженные графическим интерфейсом, стали массово появляться на рынке лишь десятилетие спустя, в начале 1980-х. Далее в статье мы рассмотрим некоторые примеры подобных устройств, и промышленных, и предназначенных для домашнего использования.

Quantel Paintbox

В 1981 году эпоха персональных компьютеров только-только начиналась, однако по-настоящему актуальные и прогрессивные ЭВМ (наподобие Alto) простым пользователям были недоступны. Сказывались и молодость рынка, и высокая стоимость отдельных комплектующих.

Однако крупные компании уже активно пользовались подобными устройствами. Quantel Paintbox, специализированная рабочая станция для работы с компьютерной графикой, применялась для создания телевизионных «спецэффектов».

// Источник: wikimedia.org
// Источник: wikimedia.org

Машину разработала британская технологическая компания Quantel, а одной из первостепенных задач, которые ставились перед Paintbox, являлось создание графики (титры, переходы и т.п.) для выпусков новостей в прямом эфире. Компьютеры продавались по цене порядка 250 000 долларов (что сейчас эквивалентно 374 000 долларов), поэтому позволить их себе могли исключительно крупные телевизионные сети, такие как NBC.

// Источник: RedSharkNews.com
// Источник: RedSharkNews.com

В 1981 году Paintbox произвел революцию в производстве телевизионной графики. Со временем практически все телекомпании, включая небольшие региональные каналы, переключились на полностью «компьютерный» монтаж. Кроме того, считается, что именно в Paintbox впервые появились так называемые всплывающие меню.

Терминал Blit

Программируемый терминал растровой графики Blit был разработан Робом Пайком и Бартом Локанти-младшим, сотрудниками Bell Labs, в 1982 году. Использовался для работы с Unix-машинами и предлагал пользователю широкие графические возможности.

Терминал Blit. // Источник: wikimedia.org
Терминал Blit. // Источник: wikimedia.org

При включении Blit может показаться обыкновенным текстовым терминалом. Однако после входа в систему Unix-хоста (подключенного к терминалу через последовательный порт) с помощью специальных управляющих последовательностей загружается программное обеспечение, управляемое непосредственно процессором терминала. Это ПО используется для реализации графических возможностей терминала и взаимодействия с периферийными устройствами, такими как клавиатура или мышь. Оконная система mpx (или mux, ее более поздняя версия) заменяет командную строку терминала удобным оконным интерфейсом. 

Изначально в каждом окне запускался базовый эмулятор терминала, однако можно было заменить его любым доступным интерактивным графическим приложением, например, более продвинутым эмулятором терминала, текстовым редактором или приложением часов. Иными словами, Blit позволял пользователю реализовать интерфейс, крайне сходный с Unix’овским.

UNIX-машина // Источник: aminux.wordpress.com
UNIX-машина // Источник: aminux.wordpress.com

Терминал нашел применение как в офисах крупных компаний, которым требовалось разделение мощностей «серверного» компьютера, так и в университетах.

Apple Lisa и Macintosh

Эти компьютеры появились на свет в результате уже упомянутой выше «коллаборации» Xerox и Apple. Стоит отдать должное Стиву Джобсу: он одним из первых увидел потенциал графических интерфейсов для персональных компьютеров. Конкуренты в те же годы довольствовались куда более простыми, командными/текстовыми интерфейсами. 

Apple Lisa, выпущенная в 1983 году, имела продвинутый графический интерфейс, запускающийся поверх основной системы (загрузка ОС производилась с жесткого диска). Особой популярности компьютер не приобрел ввиду высокой стоимости.

Apple Lisa. // Источник: applebase.net
Apple Lisa. // Источник: applebase.net

Несколько упрощенный Apple Macintosh, выпущенный в 1984 году и разработанный с прицелом на удешевление, стал первым коммерчески успешным продуктом, в котором использовался многопанельный оконный интерфейс. Кроме того, в операционной системе была реализована концепция (метафора) рабочего стола: файлы выглядели как листы бумаги, каталоги — как папки с файлами. Кроме того, пользователю был доступен набор «настольных» принадлежностей, таких как калькулятор, блокнот и будильник. Их можно было передвигать по экрану, при необходимости скрывать и вызывать снова. 

Apple Macintosh. // Источник: arkzoft.net
Apple Macintosh. // Источник: arkzoft.net

А удалять файлы и папки можно было, перетаскивая их на значок корзины. В дальнейшем разработчикам Apple, как мы знаем, удалось успешно развить свое видение работы пользователя с компьютером. Так, до сих пор в операционных системах Apple используется управление однокнопочной мышью (в противовес более популярной на рынке двухкнопочной), корнями уходящее в 1980-е.

Commodore Amiga

Компьютер Amiga, один из наиболее прорывных и интересных компьютеров своего времени, был выпущен компанией Commodore в 1985 году. В качестве графического интерфейса использовалась собственная операционная система Workbench, основанная на оконном «движке» Intuition. Пользователю были доступны перетаскиваемые окна, иконки, выпадающие списки и многие другие актуальные и по сей день элементы управления.

Одна из первых версий Workbench. // Источник: gala100.net
Одна из первых версий Workbench. // Источник: gala100.net

В Workbench (в переводе — «верстак») каталоги были представлены в виде ящиков, а программы в идеологии ОС именовались «инструментами». Управлять ОС можно было как с помощью мыши, так и исключительно клавиатурой, с использованием специальных клавиш-модификаторов для перемещения курсора. ОС поставлялась на нескольких дискетах и была доступна как на младших моделях без HDD, так и на более мощных компьютерах, оснащенных жестким диском. 

Даже тут не обошлось без Стива Джобса: он был одним из первых, кому тогда еще небольшой стартап Amiga пытался продать свою разработку. Джобс внимательно изучил компьютер и его ОС, от покупки отказался, однако тут же приказал ускорить работу над GUI для Apple, чтобы опередить вероятных конкурентов.

Примечательно, что подавляющее большинство игровых программ не требовало предварительной загрузки операционной системы: достаточно было вставить дискету и запустить компьютер. Как и в случае с Workbench, загрузка осуществлялась через расположенное в ПЗУ компьютера ПО. Фактически, Commodore Amiga была первым по-настоящему мультимедийным компьютером с поддержкой всех актуальных устройств ввода-вывода, огромной палитрой и мощным ПО для дизайнеров, художников и специалистов по видеомонтажу. Отчасти это обусловлено тем, что Amiga (до того, как стартап был выкуплен Commodore) задумывалась как игровая консоль. Но ввиду видеоигрового кризиса корпорация решила выпустить полноценный компьютер. 

К изначальной концепции приставки Amiga вернулась лишь незадолго до банкротства компании. Amiga CD32 поставлялась в формате консоли, а в качестве носителя были выбраны CD-диски. А при известных модификациях консоль могла «превратиться» обратно в компьютер, технически сходный с Amiga 1200. 

Современная версия AmigaOS 3.9. // Источник: hipwallpaper.com
Современная версия AmigaOS 3.9. // Источник: hipwallpaper.com

Amiga Workbench до сих пор активно поддерживается фанатами компьютера, несмотря на то, что сама компания Commodore закрылась в связи с банкротством еще в 1994 году.

GEOS

Несмотря на успех Amiga, восьмибитный Commodore 64 также активно продавался до 1994 года, пережив несколько ревизий и технический «апдейт» — офисную машину с Zilog Z80 в качестве сопроцессора для CP/M, Commodore 128.

Графическая оболочка GEOS была выпущена для C64 в 1986 году. Вскоре после запуска собственные порты GEOS получили компьютеры серии Apple II и Commodore 128. Дистрибутив GEOS включал ряд базовых прикладных программ, таких как календарь и текстовый редактор. 

Интерфейс GEOS с поддержкой мыши. // Источник: c64-wiki.com
Интерфейс GEOS с поддержкой мыши. // Источник: c64-wiki.com

PC/GEOS, специальная версия для IBM PC, позиционировалась в качестве компромиссной ОС для компьютеров, которые не справляются с более «тяжелой» Windows 3.1.

Интерфейс одной из последних версия GEOS для PC. // Источник: toastytech.com
Интерфейс одной из последних версия GEOS для PC. // Источник: toastytech.com

Тем не менее, за пределами 8-битных компьютеров система практически не снискала успеха среди пользователей, отчасти из-за чрезмерно авторитарной политики компании-производителя, отчасти из-за скудного багажа возможностей.

Windows: компьютер в каждый дом

Широкое распространение ПК как среди «домашних» пользователей, так и в бизнес-среде заставило производителей задуматься об упрощении работы с компьютером для людей, ранее не имевших опыта работы с подобными устройствами. GUI позволил бы компаниям охватить гораздо большую аудиторию, соответственно, стало экономически выгодно вкладывать деньги в его разработку. 

Приложения с графическим интерфейсом существовали и в чистом DOS, однако для их запуска пользователю все равно потребовалось бы вводить команды или использовать файл-менеджер. А это уже чуть более сложная задача, чем клик мышкой.

Norton Commander, одна из поздних версий. // Источник: white-windows.ru
Norton Commander, одна из поздних версий. // Источник: white-windows.ru
MS-DOS Shell, псевдографический файловый менеджер, 1988. // Источник: old-dos.ru
MS-DOS Shell, псевдографический файловый менеджер, 1988. // Источник: old-dos.ru

Еще одним фактором, стимулировавшим развитие GUI, стало расширение возможностей графических адаптеров, обеспечивающих тысячи и миллионы цветов, наряду с быстрыми процессорами, дешевой оперативной памятью и новыми устройствами хранения, вмещавшими гигабайты информации. Все это сделало возможным продавать пользователям качественно новое «железо», способное обеспечить работу требовательных графических интерфейсов.

Windows 3.11. // Источник: winworldpc.com
Windows 3.11. // Источник: winworldpc.com

После Windows 3.11 Microsoft приступила к разработке новой версии операционной системы, ориентированной на потребителя. Windows 95 включала улучшенную версию DOS, часто называемую MS-DOS 7.0. Win95 и WinNT могли запускать 32-разрядные приложения и использовали возможности процессора Intel 80386 для реализации вытесняющей многозадачности. 

Windows 95 рекламировалась как 32-разрядная операционная система, хотя на деле она базировалась на гибридном ядре (VWIN32.VXD) с 16-разрядным пользовательским интерфейсом (USER.EXE) и интерфейсом графического устройства (GDI.EXE) Windows 3.11, работавшимим совместно с 32-разрядной подсистемой (USER32.DLL и GDI32.DLL). Это позволяло запускать в системе и 16-разрядные, и 32-разрядные приложения. 

В представлении не нуждается: Windows 95. // Источник: white-windows.ru
В представлении не нуждается: Windows 95. // Источник: white-windows.ru

Говорить о рыночном успехе Windows, думаем, будет излишне: на текущий момент это самая популярная домашняя ОС, не говоря уже о ее коммерческом применении.

Заключение

Безусловно, в статье собраны далеко не все «титаны» GUI. В первую очередь нам хотелось познакомить с ранними версиями графических пользовательских интерфейсов тех читателей, которые могли считать, что до Windows «жизни» не было.

Если тема ранних GUI интересна для вас, рекомендуем также ознакомиться со следующими ресурсами:

В одной из будущих статей мы обратим внимание на не менее интересную тему: этап развития пользовательских интерфейсов в web. По традиции, ждем ваших комментариев и историй о работе с компьютерами до того, как это стало мейнстримом.

Комментарии (26)


  1. mSnus
    02.12.2021 08:20
    +4

    Мне кажется, вы перемешали понятия "графический интерфейс" и "оконный интерфейс". Окна вполне были и в текстовом режиме, взять хотя бы Borland-овские Turbo* библиотеки.

    Особенность графического интерфейса была именно в том, что он использовал графический режим видеокарты (в противоположность текстовому), что позволяло, например, прорисовать иконки, шрифты разных размеров и элементы управления разных форм и размеров.

    Собственно, не зря у них на всех скринах аналоговые часики выведены: приложение само по себе никому не нужное, но сразу видно, что это графический режим, предмет особой гордости))

    У вас же большая часть примеров именно текстовая, и хоть там и могут быть окна, называть их GUI некорректно.

    Отсюда и странные пассажи вроде

    Приложения с графическим интерфейсом существовали и в чистом DOS, однако для их запуска пользователю все равно потребовалось бы вводить команды или использовать файл-менеджер. А это уже чуть более сложная задача, чем клик мышкой.

    Если надо - можно было поставить в autoexec или в меню, если надо - и никакого ввода команд. Мышь в DOS отлично работала.


    1. saipr
      02.12.2021 10:26
      +1

      И говоря об оконном интерфейсе (всевдографическом интерфейсе) надо бы упомянуть библиотеку curses и ее последвателей, в первую очередь, ncurses. Именно эти библиотеки позволяли получить более менее приемлемый оконный интерфейс, когда у нас ещё не было графических мониторов. Сам с удовольствием программировал на ncurses:
      image


      1. drWhy
        02.12.2021 13:10

        Существовали векторные мониторы, даже в Windows DDK есть следы — флаги поддержки драйвером монитора векторных операций. Т.е. могла сложиться ситуация, противоположная современной — мониторы были бы графическими, и как минимум выполняли бы функции 2D ускорения сами, без вовлечения видеокарты.


    1. belch84
      02.12.2021 13:35

      Особенность графического интерфейса была именно в том, что он использовал графический режим видеокарты (в противоположность текстовому), что позволяло, например, прорисовать иконки, шрифты разных размеров и элементы управления разных форм и размеров.
      Интересно, что были компьютеры, которые могли совмещать графический и текстовый режимы. Насколько я помню, на ДВК-3М графическое изображение могло накладываться на текстовое и оба они были видны одновременно. Это позволяло интерфейс делать текстовым (в виде текстовых команд), а результат их выполнения видеть на том же экране в виде графики. Не знаю, так же ли оно было устроено на прообразе ДВК (PDP-11)


      1. OlegZH
        02.12.2021 22:15

        И почему такие идеи сейчас не развиваются? Можно было бы одновременно на экране показывать два различных текстовых режима: основной (для основных данных) и вспомогательный (для вспомогательных данных). Можно было бы использовать старые добрые потоки ввода/вывода и много чего ещё.


      1. axe_chita
        03.12.2021 05:26

        Добавлю к списку компьютеров ПК8010/8020 «Корвет». умеющий одновременно и независимо работать и в текстовом, и в графическом режиме.


    1. OlegZH
      02.12.2021 22:26

      Интересно, а кому-нибудь сегодня надо объяснять, что когда-то надо было переключаться из одного режима в другой? И что, вообще, раньше часто работали с прерываниями (привет прерыванию 10h!).

      Никогда не занимался такими вещами. Хотя и жалею об этом. Но! Хотелось бы узнать, кто из присутствующих вспомнит, что делают следующие три инструкции:

      move ah,0
      move al,2
      int 10h

      (Гм, не нашёл в списке доступных языков программирования в выпадающем списке Ассемблера. Это баг или фича?)


      1. axe_chita
        03.12.2021 05:40
        +1

        Установка текстового режима 80х25.

        VIDEO - SET VIDEO MODE
        AH = 00h
        AL = desired video mode (see #00010)

        Return:
        AL = video mode flag (Phoenix, AMI BIOS)
        20h mode > 7
        30h modes 0-5 and 7
        3Fh mode 6
        AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)

        Desc: Specify the display mode for the currently active display adapter

        InstallCheck:
        For Ahead adapters, the signature «AHEAD» at C000h:0025h.
        For Paradise adapters, the signature «VGA=» at C000h:007Dh.
        For Oak Tech OTI-037/057/067/077 chipsets, the signature «OAK VGA» at
        C000h:0008h.
        For ATI adapters, the signature «761295520» at C000h:0031h; the byte
        at C000h:0043h indicates the chipset revision:
        31h for 18800
        32h for 18800-1
        33h for 18800-2
        34h for 18800-4
        35h for 18800-5
        62h for 68800AX (Mach32) (see also #00732)
        the two bytes at C000h:0040h indicate the adapter type
        «22» EGA Wonder
        «31» VGA Wonder
        «32» EGA Wonder800+
        the byte at C000h:0042h contains feature flags

        bit 1:
        Mouse port present

        bit 4:
        Programmable video clock
        the byte at C000h:0044h contains additional feature flags if chipset
        byte > 30h (see #00009).
        For Genoa video adapters, the signature 77h XXh 99h 66h at C000h:NNNNh,
        where NNNNh is stored at C000h:0037h and XXh is
        00h for Genoa 6200/6300
        11h for Genoa 6400/6600
        22h for Genoa 6100
        33h for Genoa 5100/5200
        55h for Genoa 5300/5400
        for SuperEGA BIOS v2.41+, C000h:0057h contains the product level
        for Genoa SuperEGA BIOS v3.0+, C000h:0070h contains the signature
        «EXTMODE», indicating support for extended modes

        Notes: IBM standard modes do not clear the screen if the high bit of AL is set (EGA or higher only). The Tseng ET4000 chipset is used by the Orchid Prodesigner II, Diamond SpeedSTAR VGA, Groundhog Graphics Shadow VGA, Boca Super X VGA, Everex EV-673, etc… Intercepted by GRAFTABL from Novell DOS 7 and Caldera OpenDOS 7.01.

        See Also: AX=0070h — AX=007Eh — AX=10E0h — AX=10F0h — See Also: INT 33/AX=0028h — INT 5F/AH=00h — INT 62/AX=0001h — MEM 0040h:0049h

        Index:
        Installation check;Tseng ET4000|installation check;Ahead video cards

        Index:
        Installation check;Oak Technologies|installation check;ATI video cards

        Index:
        Installation check;Paradise video|installation check;Genoa video cards

        Bitfields for ATI additional feature flags:

        Bit(s) Description (Table 00009)
        0 70 Hz non-interlaced display
        1 Korean (double-byte) characters
        2 45 MHz memory clock rather than 40 MHz
        3 zero wait states
        4 paged ROMs
        6 no 8514/A monitor support
        7 HiColor DAC

        (Table 00010)
        Values for video mode:
        text/ text pixel pixel colors disply scrn system
        grph resol box resolution pages addr
        00h = T 40x25 8x8 320x200 16gray 8 B800 CGA,PCjr,Tandy
        = T 40x25 8x14 320x350 16gray 8 B800 EGA
        = T 40x25 8x16 320x400 16 8 B800 MCGA
        = T 40x25 9x16 360x400 16 8 B800 VGA
        01h = T 40x25 8x8 320x200 16 8 B800 CGA,PCjr,Tandy
        = T 40x25 8x14 320x350 16 8 B800 EGA
        = T 40x25 8x16 320x400 16 8 B800 MCGA
        = T 40x25 9x16 360x400 16 8 B800 VGA
        02h = T 80x25 8x8 640x200 16gray 4 B800 CGA,PCjr,Tandy
        = T 80x25 8x14 640x350 16gray 8 B800 EGA
        = T 80x25 8x16 640x400 16 8 B800 MCGA
        = T 80x25 9x16 720x400 16 8 B800 VGA
        03h = T 80x25 8x8 640x200 16 4 B800 CGA,PCjr,Tandy
        = T 80x25 8x14 640x350 16/64 8 B800 EGA
        = T 80x25 8x16 640x400 16 8 B800 MCGA
        = T 80x25 9x16 720x400 16 8 B800 VGA
        = T 80x43 8x8 640x350 16 4 B800 EGA,VGA [17]
        = T 80x50 8x8 640x400 16 4 B800 VGA [17]
        04h = G 40x25 8x8 320x200 4. B800 CGA,PCjr,EGA,MCGA,VGA
        05h = G 40x25 8x8 320x200 4gray. B800 CGA,PCjr,EGA
        = G 40x25 8x8 320x200 4. B800 MCGA,VGA
        06h = G 80x25 8x8 640x200 2. B800 CGA,PCjr,EGA,MCGA,VGA
        = G 80x25.. mono. B000 HERCULES.COM on HGC [14]
        07h = T 80x25 9x14 720x350 mono var B000 MDA,Hercules,EGA
        = T 80x25 9x16 720x400 mono. B000 VGA
        08h = T 132x25 8x8 1056x200 16. B800 ATI EGA/VGA Wonder [2]
        = T 132x25 8x8 1056x200 mono. B000 ATI EGA/VGA Wonder [2]
        = G 20x25 8x8 160x200 16.. PCjr, Tandy 1000
        = G 80x25 8x16 640x400 color.. Tandy 2000
        = G 90x43 8x8 720x348 mono. B000 Hercules + MSHERC.COM
        = G 90x45 8x8 720x360 mono. B000 Hercules + HERKULES [11]
        = G 90x29 8x12 720x348 mono.. Hercules + HERCBIOS [15]
        09h = G 40x25 8x8 320x200 16.. PCjr, Tandy 1000
        = G 80x25 8x16 640x400 mono.. Tandy 2000
        = G 90x43 8x8 720x348 mono.. Hercules + HERCBIOS [15]
        0Ah = G 80x25 8x8 640x200 4.. PCjr, Tandy 1000
        0Bh = reserved (EGA BIOS internal use)
        = G 80x25 8x8 640x200 16.. Tandy 1000 SL/TL [13]
        0Ch = reserved (EGA BIOS internal use)
        0Dh = G 40x25 8x8 320x200 16 8 A000 EGA,VGA
        0Eh = G 80x25 8x8 640x200 16 4 A000 EGA,VGA
        0Fh = G 80x25 8x14 640x350 mono 2 A000 EGA,VGA
        10h = G 80x25 8x14 640x350 4 2 A000 64k EGA
        = G.. 640x350 16. A000 256k EGA,VGA
        11h = G 80x30 8x16 640x480 mono. A000 VGA,MCGA,ATI EGA,ATI VIP
        12h = G 80x30 8x16 640x480 16/256K. A000 VGA,ATI VIP
        = G 80x30 8x16 640x480 16/64. A000 ATI EGA Wonder
        = G.. 640x480 16.. UltraVision+256K EGA
        13h = G 40x25 8x8 320x200 256/256K. A000 VGA,MCGA,ATI VIP
        14h = T 132x25 Nx16. 16. B800 XGA, IBM Enhanced VGA [3]
        = T 132x25 8x16 1056x400 16/256K.. Cirrus CL-GD5420/5422/5426
        = G 80x25 8x8 640x200... Lava Chrome II EGA
        = G.. 640x400 16.. Tecmar VGA/AD
        15h = G 80x25 8x14 640x350... Lava Chrome II EGA
        16h = G 80x25 8x14 640x350... Lava Chrome II EGA
        = G.. 800x600 16.. Tecmar VGA/AD
        17h = T 132x25..... Tecmar VGA/AD
        = T 80x43 8x8 640x348 16 4 B800 Tseng ET4000 BIOS [10]
        = G 80x34 8x14 640x480... Lava Chrome II EGA
        18h = T 80x30 9x16 720x480 16 1 A000 Realtek RTVGA [12]
        = T 132x25.. mono. B000 Cirrus 5320 chipset
        = T 132x44 8x8 1056x352 mono. B000 Tseng Labs EVA
        = T 132x44 9x8 1188x352 4gray 2 B000 Tseng ET3000 chipset
        = T 132x44 8x8 1056x352 16/256 2 B000 Tseng ET4000 chipset
        = G 80x34 8x14 640x480... Lava Chrome II EGA
        = G 1024x768 16.. Tecmar VGA/AD
        19h = T 80x43 9x11 720x473 16 1 A000 Realtek RTVGA [12]
        = T 132x25 8x14 1056x350 mono. B000 Tseng Labs EVA
        = T 132x25 9x14 1188x350 4gray 4 B000 Tseng ET3000 chipset
        = T 132x25 8x14 1056x350 16/256 4 B000 Tseng ET4000 chipset
        = T 132x34.. mono. B000 Cirrus 5320 chipset
        1Ah = T 80x60 9x8 720x480 16 1 A000 Realtek RTVGA [12]
        = T 132x28 8x13 1056x364 mono. B000 Tseng Labs EVA
        = T 132x28 9x13 1188x364 4gray 4 B000 Tseng ET3000 chipset
        = T 132x28 8x13 1056x364 16/256 4 B000 Tseng ET4000 chipset
        = T 132x44.. mono. B000 Cirrus 5320 chipset
        = G.. 640x350 256.. Tecmar VGA/AD
        1Bh = T 132x25 9x14 1188x350 16 1 A000 Realtek RTVGA [12]
        = G.. 640x400 256.. Tecmar VGA/AD
        1Ch = T 132x25..... Cirrus 5320 chipset
        = T 132x30 9x16 1188x480 16 1 A000 Realtek RTVGA [12]
        = G.. 640x480 256.. Tecmar VGA/AD
        1Dh = T 132x43..... Cirrus 5320 chipset
        = T 132x43 9x11 1188x473 16 1 A000 Realtek RTVGA [12]
        = G.. 800x600 256.. Tecmar VGA/AD
        1Eh = T 132x44..... Cirrus 5320 chipset
        = T 132x60 9x8 1188x480 16 1 A000 Realtek RTVGA [12]
        1Fh = G 100x75 8x8 800x600 16 1 A000 Realtek RTVGA
        20h = T 132x25.. 16.. Avance Logic AL2101
        = G 40x16. 240x128 mono. B000 HP 95LX/100LX/200LX
        = G 80x30 8x16 640x480 16.. C&T 64310/65530 BIOS
        = G 120x45 8x16 960x720 16 1 A000 Realtek RTVGA
        21h = T 80x25.. mono. B000 HP 200LX
        = T 132x30.. 16.. Avance Logic AL2101
        = T 132x44 9x9 1188x396 16/256K. B800 WD90C
        = T 132x44 9x9 1188x396 16. B800 Diamond Speedstar 24X
        = T 132x60.. 16 2 B800 Tseng ET4000 chipset [10]
        = G 80x43 8x8 720x348 mono. B000 DESQview 2.x+Hercules [4]
        = G 128x48 8x16 1024x768 16 1 A000 Realtek RTVGA [12]
        22h = T 132x43..... Allstar Peacock (VGA)
        = T 132x43.. 16.. Avance Logic AL2101
        = T 132x44 8x8 1056x352.. B800 Tseng Labs EVA
        = T 132x44 9x8 1188x352 16/256K 2 B800 Tseng ET3000 chipset
        = T 132x44 8x8 1056x352 16/256K 2 B800 Tseng ET4000 chipset
        = T 132x44 8x8 1056x352... Ahead Systems EGA2001
        = T 132x44 8x8 1056x352 16 2 B800 Ahead B
        = T 132x44 8x9 1056x398 16.. STB Lightspeed ET4000/W32P
        = T 132x44.. 16.. Orchid Prodesigner VGA
        = G 80x43 8x8 720x348 mono. B800 DESQview 2.x+Hercules [4]
        = G 96x64 8x16 768x1024 16 1 A000 Realtek RTVGA
        = G 100x37 8x16 800x600 16.. C&T 64310/65530 BIOS
        23h = T 132x25 6x14 792x350.. B800 Tseng Labs EVA
        = T 132x25 9x14 1188x350 16/256K 4 B800 Tseng ET3000 chipset
        = T 132x25 8x14 1056x350 16/256 4 B800 Tseng ET4000 chipset
        = T 132x25 8x14 1056x350... Ahead Systems EGA2001
        = T 132x25 8x14 1056x350 16 4 B800 Ahead B
        = T 132x25 8x8 1056x200 16. B800 ATI EGA Wonder,ATI VIP
        = T 132x25..... Cirrus 5320 chipset
        = T 132x28..... Allstar Peacock (VGA)
        = T 132x28.. 16.. Orchid Prodesigner VGA
        = T 132x60.. 16.. Avance Logic AL2101
        = G 128x48 8x16 1024x768 4 1 A000 Realtek RTVGA
        24h = T 80x30.. 16.. Avance Logic AL2101
        = T 132x25..... Allstar Peacock (VGA)
        = T 132x25.. 16.. Orchid Prodesigner VGA
        = T 132x28 6x13 792x364.. B800 Tseng Labs EVA
        = T 132x28 9x13 1188x364 16/256K 4 B800 Tseng ET3000 chipset
        = T 132x28 8x12 1056x336 16 1 B800 Ahead B
        = T 132x28 8x13 1056x364 16/256K 4 B800 Tseng ET4000 chipset
        = T 132x28 8x14 1056x392 16.. STB Lightspeed ET4000/W32P
        = T 132x28..... Cirrus 5320 chipset
        = G 64x32 8x16 512x512 256 1 A000 Realtek RTVGA
        = G 128x48 8x16 1024x768 16.. C&T 64310/65530 BIOS
        25h = T 80x43.. 16.. Avance Logic AL2101
        = G 80x60 8x8 640x480.. A000 Tseng Labs EVA
        = G 80x60 8x8 640x480 16/256K 1 A000 Tseng ET3000/4000 chipset
        = G.. 640x480 16.. VEGA VGA
        = G 80x60 8x8 640x480 16. A000 Orchid Prodesigner VGA
        = G 80x60 8x8 640x480 16 1 A000 Ahead B (same as 26h)
        = G.. 640x480 16.. NEC GB-1
        = G.. 640x480 16.. Cirrus 5320 chipset
        = G.. 640x400 256.. Realtek RTVGA
        26h = T 80x60 8x8 640x480... Tseng Labs EVA
        = T 80x60 8x8 640x480 16/256K 3 B800 Tseng ET3000/4000 chipset
        = T 80x60..... Allstar Peacock (VGA)
        = T 80x60.. 16.. Orchid ProDesigner VGA
        = T 80x60.. 16.. Avance Logic AL2101
        = G 80x60 8x8 640x480... Ahead Systems EGA2001
        = G 80x60 8x8 640x480 16 1 A000 Ahead B (same as 25h)
        = G.. 640x480 256.. Realtek RTVGA
        27h = T 132x25 8x8 1056x200 mono. B000 ATI EGA Wonder,ATI VIP
        = G.. 720x512 16.. VEGA VGA
        = G.. 720x512 16.. Genoa
        = G 100x75 8x8 800x600 256 1 A000 Realtek RTVGA [12]
        = G.. 960x720 16.. Avance Logic AL2101
        28h = T ???x???..... VEGA VGA
        = G.. 512x512 256.. Avance Logic AL2101
        = G.. 1024x768 256.. Realtek RTVGA (1meg)
        = G 160x64 8x16 1280x1024 16.. Chips&Technologies 64310 [1]
        29h = G.. 640x400 256.. Avance Logic AL2101
        = G.. 800x600 16.. VEGA VGA
        = G 100x37 8x16 800x600 16. A000 Orchid
        = G.. 800x600 16. A000 STB,Genoa,Sigma
        = G.. 800x600 16.. Allstar Peacock (VGA)
        = G 100x37 8x16 800x600 16/256K 1 A000 Tseng ET3000/4000 chipset
        = G.. 800x600 ???.. EIZO MDB10
        = G.. 800x600 16.. Cirrus 5320 chipset
        = G NA. 800x600 16.. Compaq QVision 1024/1280
        = G.. 1024x1024 256.. Realtek RTVGA BIOS v3.C10
        2Ah = T 100x40..... Allstar Peacock (VGA)
        = T 100x40 8x16 800x640 16.. Orchid Prodesigner VGA
        = T 100x40 8x15 800x600 16/256K 4 B800 Tseng ET3000/4000 chipset
        = T 100x40 8x15 800x600 16.. STB Lightspeed ET4000/W32P
        = G.. 640x480 256.. Avance Logic AL2101
        = G.. 1280x1024 16.. Realtek RTVGA
        2Bh = G.. 800x600 16.. Avance Logic AL2101
        2Ch = G.. 800x600 256.. Avance Logic AL2101
        2Dh = G.. 640x350 256.. VEGA VGA
        = G.. 640x350 256/256K. A000 Orchid, Genoa, STB
        = G 80x25 8x14 640x350 256/256K 1 A000 Tseng ET3000/4000 chipset
        = G.. 640x350 256.. Cirrus 5320 chipset
        = G 80x25 8x14 640x350 256.. STB Lightspeed ET4000/W32P
        = G.. 768x1024 16.. Avance Logic AL2101
        2Eh = G.. 640x480 256.. VEGA VGA
        = G 80x30 8x16 640x480 256/256K. A000 Orchid
        = G.. 640x480 256/256K. A000 STB,Genoa,Sigma
        = G 80x30 8x16 640x480 256/256K 1 A000 Tseng ET3000/4000 chipset
        = G.. 640x480 256/256K.. Compaq QVision 1024/1280
        = G.. 768x1024 256.. Avance Logic AL2101
        2Fh = T 160x50 8x8 1280x400 16 4 B800 Ahead B (Wizard/3270)
        = G.. 720x512 256.. VEGA VGA
        = G.. 720x512 256.. Genoa
        = G 80x25 8x16 640x400 256/256K 1 A000 Tseng ET4000 chipset
        = G.. 1024x768 4.. Avance Logic AL2101
        30h = G 80x30 8x16 640x480 256.. C&T 64310/65530 BIOS
        = G..... B800 AT&T 6300
        = G.. 720x350 2.. 3270 PC
        = G.. 800x600 256.. VEGA VGA
        = G 100x37 8x16 800x600 256/256K. A000 Orchid
        = G.. 800x600 256/256K. A000 STB,Genoa,Sigma
        = G.. 800x600 256.. Cardinal
        = G 100x37 8x16 800x600 256/256K 1 A000 Tseng ET3000/4000 chipset
        = G.. 1024x768 16.. Avance Logic AL2101
        31h = G.. 1024x768 256.. Avance Logic AL2101
        32h = T 80x34 8x10. 16 4 B800 Ahead B (Wizard/3270)
        = G.. 640x480 256.. Compaq QVision 1024/1280
        = G 100x37 8x16 800x600 256.. C&T 64310/65530 BIOS
        33h = T 132x44 8x8. 16. B800 ATI EGA Wonder,ATI VIP
        = T 80x34 8x8. 16 4 B800 Ahead B (Wizard/3270)
        34h = T 80x66 8x8. 16 4 B800 Ahead B (Wizard/3270)
        = G.. 800x600 256.. Compaq QVision 1024/1280
        = G 128x48 8x16 1024x768 256.. Chips&Technologies 64310
        36h = G.. 960x720 16.. VEGA VGA, STB
        = G.. 960x720 16. A000 Tseng ET3000 only
        = G.. 1280x1024 16.. Avance Logic AL2101
        37h = T 132x44 8x8. mono. B800 ATI EGA Wonder,ATI VIP
        = G.. 1024x768 16.. VEGA VGA
        = G 128x48 8x16 1024x768 16. A000 Orchid
        = G.. 1024x768 16. A000 STB,Genoa,Sigma
        = G.. 1024x768 16.. Definicon
        = G 128x48 8x16 1024x768 16 1 A000 Tseng ET3000/4000 chipset
        = G.. 1024x768 16.. Compaq QVision 1024/1280
        = G.. 1280x1024 256.. Avance Logic AL2101
        38h = G.. 1024x768 256.. STB VGA/EM-16 Plus (1MB)
        = G 128x48 8x16 1024x768 256/256K 1 A000 Tseng ET4000 chipset
        = G.. 1024x768 256.. Orchid ProDesigner II
        = G.. 1024x768 256.. Compaq QVision 1024/1280
        = G 160x64 8x16 1280x1024 256.. Chips&Technologies 64310 [1]
        39h = G.. 1280x1024 16.. Compaq QVision 1280
        3Ah = G.. 1280x1024 256.. Compaq QVision 1280
        3Bh = G.. 512x480 256.. Compaq QVision 1024/1280
        3Ch = G.. 640x400 64K.. Compaq QVision 1024/1280
        3Dh = G.. 1280x1024 16.. Definicon
        = G 128x64 8x16 1280x1024 16 1 A000 Tseng ET4000 v3.00 [1,7]
        3Eh = G.. 1280x961 16.. Definicon
        = G.. 640x480 64K.. Compaq QVision 1024/1280
        3Fh = G.. 1280x1024 256.. Hercules ??? (ET4000W32)
        = G.. 800x600 64K.. Compaq QVision 1024/1280
        40h = T 80x43..... VEGA VGA, Tecmar VGA/AD
        = T 80x43..... Video7 V-RAM VGA
        = T 80x43..... Tatung VGA
        = T 100x30.. 16.. MORSE VGA
        = T 100x30..... Cirrus 510/520 chipset
        = T 80x25. 720x350 mono.. Genoa SuperEGA BIOS 3.0+
        = G.. 320x200 64K.. Avance Logic AL2101
        = G 80x25 8x16 640x400 2 1 B800 AT&T 6300, AT&T VDC600
        = G 80x25 8x16 640x400 2 1 B800 Olivetti Quaderno
        = G 80x25 8x16 640x400 2 1 B800 Compaq Portable
        = G 80x30 8x16 640x480 32K.. Chips&Technologies 64310
        = G.. 1024x768 64K.. Compaq QVision 1280
        41h = T 132x25..... VEGA VGA
        = T 132x25..... Tatung VGA
        = T 132x25..... Video7 V-RAM VGA
        = T 100x50.. 16.. MORSE VGA
        = T 100x50..... Cirrus 510/520 chipset
        = T 80x34 9x14 720x476 16/256K. B800 WD90C
        = T 80x34 9x14. 16. B800 Diamond Speedstar 24X
        = G.. 512x512 64K.. Avance Logic AL2101
        = G.. 640x200 16 1. AT&T 6300
        = G 80x30 8x16 640x480 64K.. Chips&Technologies 64310
        = G 80x25. 720x348 mono. B000 Genoa SuperEGA BIOS 3.0+
        42h = T 132x43..... VEGA VGA
        = T 132x43..... Tatung VGA
        = T 132x43..... Video7 V-RAM VGA
        = T 80x34 9x10. 4 4 B800 Ahead B (Wizard/3270)
        = T 100x60.. 16.. MORSE VGA
        = T 100x60..... Cirrus 510/520 chipset
        = G 80x25 8x16 640x400 16.. AT&T 6300, AT&T VDC600
        = G.. 640x400 64K.. Avance Logic AL2101
        = G 80x25. 720x348 mono. B800 Genoa SuperEGA BIOS 3.0+
        = G 100x37 8x16 800x600 32K.. Chips&Technologies 64310
        43h = T 80x60..... VEGA VGA
        = T 80x60..... Tatung VGA
        = T 80x60..... Video7 V-RAM VGA
        = T 80x45 9x8. 4 4 B800 Ahead B (Wizard/3270)
        = T 100x75.. 16.. MORSE VGA
        = T 80x29. 720x348 mono.. Genoa SuperEGA BIOS 3.0+
        = G.. 640x200 of 640x400 viewport AT&T 6300 (unsupported)
        = G.. 640x480 64K.. Avance Logic AL2101
        = G 100x37 8x16 800x600 64K.. Chips&Technologies 64310
        44h = disable VDC and DEB output. AT&T 6300
        = T 100x60..... VEGA VGA
        = T 100x60..... Tatung VGA
        = T 100x60..... Video7 V-RAM VGA
        = T 80x32. 720x352 mono.. Genoa SuperEGA BIOS 3.0+
        = G.. 800x600 64K.. Avance Logic AL2101
        45h = T 132x28..... Tatung VGA
        = T 132x28..... Video7 V-RAM VGA
        = T 80x44. 720x352 mono.. Genoa SuperEGA BIOS 3.0+
        46h = T 132x25 8x14. mono.. Genoa 6400
        = T 132x25 9x14. mono.. Genoa SuperEGA BIOS 3.0+
        = G 100x40 8x15 800x600 2.. AT&T VDC600
        47h = T 132x29 8x12. mono.. Genoa 6400
        = T 132x29 9x12. mono.. Genoa SuperEGA BIOS 3.0+
        = T 132x28 9x16 1188x448 16/256K. B800 WD90C
        = T 132x28 9x16. 16. B800 Diamond Speedstar 24X
        = G 100x37 8x16 800x600 16.. AT&T VDC600
        48h = T 132x32 8x12. mono.. Genoa 6400
        = T 132x32 9x11. mono.. Genoa SuperEGA BIOS 3.0+
        = G 80x50 8x8 640x400 2. B800 AT&T 6300, AT&T VDC600
        = G 80x50 8x8 640x400 2. B800 Olivetti Quaderno
        49h = T 132x44 8x8. mono.. Genoa 6400
        = T 132x44 9x8. mono.. Genoa SuperEGA BIOS 3.0+
        = G 80x30 8x16 640x480... Lava Chrome II EGA
        = G 80x30 8x16 640x480.. A000 Diamond Stealth64 Video 2xx1
        4Bh = G 100x37 8x16 800x600.. A000 Diamond Stealth64 Video 2xx1
        4Dh = T 120x25..... VEGA VGA
        = G.. 512x480 16M.. Compaq QVision 1024/1280
        = G 128x48 8x16 1024x768.. A000 Diamond Stealth64 Video 2xx1
        4Eh = T 120x43..... VEGA VGA
        = T 80x60 8x8. 16/256K. B800 Oak OTI-067/OTI-077 [8]
        = G.. 640x400 16M.. Compaq QVision 1024/1280
        = G 144x54 8x16 1152x864.. A000 Diamond Stealth64 Video 2xx1
        4Fh = T 132x25..... VEGA VGA
        = T 132x60..... some Oak Tech VGA [8]
        = G.. 640x480 16M.. Compaq QVision 1280
        50h = T 80x30 8x16. 16/256K. B800 Trident TVGA 8800/8900
        = T 80x34..... Lava Chrome II EGA
        = T 80x43.. mono.. VEGA VGA
        = T 132x25 9x14. mono.. Ahead Systems EGA2001
        = T 132x25 9x14. 4 4 B800 Ahead B
        = T 132x25 8x14. 16 8 B800 OAK Technologies VGA-16
        = T 132x25 8x14. 16/256K. B800 Oak OTI-037/067/077 [8]
        = T 132x25 8x14 1056x350 16 8 B800 UM587 chipset
        = T 132x30.. 16.. MORSE VGA
        = T 132x30..... Cirrus 510/520 chipset
        = G 80x30 8x16 640x480 16.. Paradise EGA-480
        = G 80x30 8x16 640x480 16.. NEL Electronics BIOS
        = G 80x30 8x16 640x480 16M.. Chips&Technologies 64310
        = G.. 640x480 mono???.. Taxan 565 EGA
        = G 40x25 8x8 320x200... Genoa SuperEGA BIOS 3.0+
        51h = T 80x30 8x16.... Paradise EGA-480
        = T 80x30 9x16.... NEL Electronics BIOS
        = T 80x30..... Lava Chrome II EGA
        = T 80x43 8x11. 16/256K. B800 Trident TVGA 8800/8900
        = T 132x25.. mono.. VEGA VGA
        = T 132x28 9x12. 4 4 B800 Ahead B
        = T 132x43 8x8. 16 5 B800 OAK Technologies VGA-16
        = T 132x43 8x8. 16/256K. B800 Oak OTI-037/067/077
        = T 132x43 8x8 1056x344 16 5 B800 UM587 chipset
        = T 132x50.. 16.. MORSE VGA
        = T 132x50..... Cirrus 510/520 chipset
        = G 80x34 8x14 640x480 16.. ATI EGA Wonder
        = G 80x25 8x8 640x200... Genoa SuperEGA BIOS 3.0+
        52h = T 80x60..... Lava Chrome II EGA
        = T 80x60 8x8. 16/256K. B800 Trident TVGA 8800/8900
        = T 132x43.. mono.. VEGA VGA
        = T 132x44 9x8. mono.. Ahead Systems EGA2001
        = T 132x44 9x8. 4 2 B800 Ahead B
        = T 132x60.. 16.. MORSE VGA
        = T 132x60..... Cirrus 510/520 chipset
        = G 80x25 8x19 640x480 16 1 A000 AX VGA (Kanji&superimpose)
        = G 94x29 8x14 752x410 16.. ATI EGA Wonder
        = G 100x75 8x8 800x600 16 1 A000 OAK Technologies VGA-16
        = G 100x75 8x8 800x600 16. A000 Oak OTI-037 chipset [8]
        = G 100x37 8x16 800x600 16. A000 Oak OTI-067/077 chips [8]
        = G 100x75 8x8 800x600 16. A000 UM587 chipset
        = G 128x30 8x16 1024x480 16.. NEL Electronics BIOS
        53h = T 80x25 8x16.... NEL Electronics BIOS
        = T 80x60.. 16.. MORSE VGA
        = T 80x60..... Cirrus 510/520 chipset
        = T 132x25 8x14. 16/256K. B800 Trident TVGA 8800/8900
        = T 132x43..... Lava Chrome II EGA
        = G 80x25 8x19 640x480 16 1 A000 AX VGA (Kanji, no superimp.)
        = G.. 640x480 256.. Oak VGA
        = G 80x30 8x16 640x480 256. A000 Oak OTI-067/OTI-077 [8]
        = G 100x40 8x14 800x560 16.. ATI EGA Wonder,ATI VIP
        = G...... AX PC
        54h = T 132x25..... Lava Chrome II EGA
        = T 132x30 8x16. 16/256K. B800 Trident TVGA 8800/8900
        = T 132x43 8x8.... Paradise EGA-480
        = T 132x43 8x8.... NEL Electronics BIOS
        = T 132x43 7x9. 16/256K. B800 Paradise VGA
        = T 132x43 8x9. 16/256K. B800 Paradise VGA on multisync
        = T 132x43..... Taxan 565 EGA
        = T 132x43..... AST VGA Plus
        = T 132x43..... Hewlett-Packard D1180A
        = T 132x43 7x9. 16.. AT&T VDC600
        = T 132x43 9x9 1188x387 16/256K. B800 WD90C
        = T 132x43 9x9 1188x387 16/256K. B800 Diamond Speedstar 24X
        = T 132x43 9x9 1188x387 16/256K. B800 Diamond Stealth 24
        = T 132x43 8x8... B800 Diamond Stealth64 Video 2xx1
        = T 132x43 8x8 1056x350 16/256K.. Cirrus CL-GD5420/5422/5426
        = T 132x50 8x8. 16. A000 NCR 77C22 [9]
        = G 100x42 8x14 800x600 16. A000 ATI EGA Wonder, VGA Wonder
        = G 100x42 8x14 800x600 16. A000 ATI Ultra 8514A, ATI XL
        = G.. 800x600 256. A000 Oak VGA
        = G 100x37 8x16 800x600 256. A000 Oak OTI-067/077 chips [8]
        55h = T 80x66 8x8. 16/256K. A000 ATI VIP
        = T 132x25 8x14.... Paradise EGA-480
        = T 132x25 8x14.... NEL Electronics BIOS
        = T 132x25 7x16. 16/256K. B800 Paradise VGA
        = T 132x25 8x16. 16/256K. B800 Paradise VGA on multisync
        = T 132x25..... Taxan 565 EGA
        = T 132x25..... AST VGA Plus
        = T 132x25..... Hewlett-Packard D1180A
        = T 132x25 7x16. 16.. AT&T VDC600
        = T 132x25 8x16. 16. A000 NCR 77C22 [9]
        = T 132x25 9x16 1188x400 16/256K. B800 WD90C
        = T 132x25 9x16 1188x400 16/256K. B800 Diamond Speedstar 24X
        = T 132x25 9x16 1188x400 16/256K. B800 Diamond Stealth 24
        = T 132x25 8x16... B800 Diamond Stealth64 Video 2xx1
        = T 132x25 8x14 1056x350 16/256K.. Cirrus CL-GD5420/5422/5426
        = T 132x43 8x11. 16/256K. B800 Trident TVGA 8800/8900
        = G 94x29 8x14 752x410... Lava Chrome II EGA
        = G 128x48 8x16 1024x768 16/256K. A000 ATI VGA Wonder v4+ [5]
        = G.. 1024x768 16/256K.. ATI VGA Wonder Plus
        = G.. 1024x768 16/256K.. ATI Ultra 8514A,ATI XL
        = G 128x48 8x16 1024x768 4. A000 Oak OTI-067/077 chips [8]
        56h = T 132x43 8x8. 3??? 2 B000 NSI Smart EGA+
        = T 132x43 7x9. 4. B000 Paradise VGA
        = T 132x43 8x9. 4. B000 Paradise VGA on multisync
        = T 132x43.. mono.. Taxan 565 EGA
        = T 132x43 7x9. 2.. AT&T VDC600
        = T 132x43 9x8.... NEL Electronics BIOS
        = T 132x50 8x8. 4. A000 NCR 77C22 [9]
        = T 132x60 8x8. 16/256K. B800 Trident TVGA 8800/8900
        = G.. 1024x768 16. A000 Oak VGA
        = G 128x48 8x16 1024x768 16. A000 Oak OTI-067/077 chips [8]
        57h = T 132x25 8x14. 3??? 4 B000 NSI Smart EGA+
        = T 132x25 7x16. 4. B000 Paradise VGA
        = T 132x25 8x16. 4. B000 Paradise VGA on multisync
        = T 132x25 9x14.... NEL Electronics BIOS
        = T 132x25.. mono.. Taxan 565 EGA
        = T 132x25 7x16. 2.. AT&T VDC600
        = T 132x25 9x14. 16/256K. B800 Trident TVGA 8800/8900
        = T 132x25 8x16. 4. A000 NCR 77C22 [9]
        = G 96x48 8x16 768x1024 16. A000 Oak OTI-067/077 chips [8]
        58h = T 80x33 8x14. 16. B800 ATI EGA Wonder,ATI VIP
        = T 80x32 9x16. 16.. Genoa 6400
        = T 80x43 8x8.... NEL Electronics BIOS
        = T 132x30 9x16. 16/256K. B800 Trident TVGA 8800/8900
        = G 100x75 8x8 800x600 16/256K. A000 Paradise VGA
        = G 100x75 8x8 800x600 16.. AT&T VDC600
        = G 100x75 8x8 800x600 16. A000 NCR 77C22 [9]
        = G 100x75 8x8 800x600 16. A000 Diamond Speedstar 24X
        = G 100x75 8x8 800x600 16/256K. A000 Paradise VGA, WD90C
        = G.. 800x600 16.. AST VGA Plus, Compaq VGA
        = G.. 800x600 16.. Dell VGA
        = G.. 800x600 16.. Hewlett-Packard D1180A
        = G.. 800x600 ???.. ELT VGA PLUS 16
        = G 100x37 8x16 800x600 16/256K. A000 Cirrus CL-GD5420/5422/5426
        = G 160x64 8x16 1280x1024 16. A000 Oak OTI-077 chipset [8]
        59h = T 80x43 9x8.... NEL Electronics BIOS
        = T 80x66 8x8. 16/256K. A000 ATI VIP
        = T 132x43 9x11. 16/256K. B800 Trident TVGA 8800/8900
        = G 100x75 8x8 800x600 2. A000 Paradise VGA
        = G 100x75 8x8 800x600 2.. AT&T VDC600
        = G.. 800x600 2.. AST VGA Plus, Compaq VGA
        = G.. 800x600 2.. Dell VGA
        = G.. 800x600 2.. Hewlett-Packard D1180A
        = G 100x75 8x8 800x600 2. A000 NCR 77C22 [9]
        = G 128x48 8x16 1024x768 256. A000 Oak OTI-077 chipset [8]
        5Ah = T 80x60 8x8.... NEL Electronics BIOS
        = T 132x60 9x8. 16/256K. B800 Trident TVGA 8800/8900
        = G 128x48 8x16 1024x768 2. A000 NCR 77C22 [9]
        5Bh = T 80x30 8x16... B800 ATI VGA Wonder (undoc)
        = G.. 640x350 256.. Genoa 6400
        = G 80x25 8x16 640x400 32K. A000 Oak OTI-067/077 chips [8]
        = G.. 800x600 16.. Maxxon, SEFCO TVGA, Imtec
        = G 100x75 8x8 800x600 16/256K. A000 Trident TVGA 8800, 8900
        = G.. 800x600 ???.. Vobis MVGA
        = G 100x37 8x16 800x600... NEL Electronics BIOS
        = G 128x48 8x16 1024x768 16. A000 NCR 77C22 [1,9]
        5Ch = T 100x37 8x16.... NEL Electronics BIOS
        = G.. 640x400 256.. Logix, ATI Prism Elite
        = G.. 640x400 256.. Maxxon, SEFCO TVGA, Imtec
        = G 80x25 8x16 640x400 256/256K. A000 Zymos Poach, Hi Res 512
        = G 80x25 8x16 640x400 256/256K. A000 Trident TVGA 8800/8900
        = G 80x30 8x16 640x480 256.. Genoa 6400
        = G 80x30 8x16 640x480 32K. A000 Oak OTI-077 chipset [8]
        = G 100x75 8x8 800x600 256. A000 NCR 77C22 [9]
        = G 100x75 8x8 800x600 256/256K. A000 WD90C
        = G 100x75 8x8 800x600 256/256K. A000 Diamond Speedstar 24X
        = G 100x37 8x16 800x600 256/256K. A000 Cirrus CL-GD5420/5422/5426
        5Dh = T 100x75 8x8.... NEL Electronics BIOS
        = G 80x25 8x14 640x350 64K.. STB Lightspeed ET4000/W32P
        = G.. 640x480 256.. Logix, ATI Prism Elite
        = G.. 640x480 256.. Maxxon, SEFCO TVGA, Imtec
        = G 80x30 8x16 640x480 256/256K. A000 Zymos Poach, Hi Res 512
        = G 80x30 8x16 640x480 256/256K. A000 Trident TVGA 8800 (512K)
        = G 128x48 8x16 1024x768 16. A000 NCR 77C22 [9]
        = G 128x48 8x16 1024x768 16/256K. A000 WD90C
        = G 128x48 8x16 1024x768 16. A000 Diamond Speedstar 24X
        = G 128x48 8x16 1024x768 16/256K. A000 Cirrus CL-GD5420/5422/5426
        5Eh = G.. 640x400 256.. Paradise VGA,VEGA VGA
        = G.. 640x400 256.. AST VGA Plus, NCR 77C22
        = G.. 640x400 256.. Compaq VGA, Dell VGA
        = G 80x25 8x16 640x400 256.. AT&T VDC600
        = G 80x25 8x16 640x400 256. A000 NCR 77C22 [9]
        = G 80x25 8x16 640x400 256/256K. A000 WD90C
        = G 80x25 8x16 640x400 256/256K. A000 Diamond Speedstar 24X
        = G.. 800x600 16.. Logix, ATI Prism Elite
        = G 100x37 8x16 800x600 16.. NEL Electronics BIOS
        = G 100x75 8x8 800x600 256.. Genoa 6400
        = G 100x75 8x8 800x600 256/256K. A000 Zymos Poach, Trident 8900
        = G 100x75 8x8 800x600 256/256K. A000 Hi Res 512
        5Fh = G 80x25 8x16 640x400 64K.. STB Lightspeed ET4000/W32P
        = G.. 640x480 256.. Paradise VGA
        = G.. 640x480 256.. AST VGA Plus, NCR 77C22
        = G.. 640x480 256.. Compaq VGA, Dell VGA
        = G.. 640x480 256.. Hewlett-Packard D1180A
        = G 80x30 8x16 640x480 256.. AT&T VDC600 (512K)
        = G 80x30 8x16 640x480 256. A000 NCR 77C22 [9]
        = G 80x30 8x16 640x480 256/256K. A000 WD90C
        = G 80x30 8x16 640x480 256/256K. A000 Diamond Speedstar 24X
        = G 80x30 8x16 640x480 256/256K. A000 Cirrus CL-GD5420/5422/5426
        = G.. 1024x768 16.. Logix, ATI Prism Elite
        = G.. 1024x768 16.. Maxxon, Imtec
        = G 128x48 8x16 1024x768 16.. Genoa 6400
        = G 128x48 8x16 1024x768 16/256K. A000 Zymos Poach, Hi Res 512
        = G 128x48 8x16 1024x768 16/256K. A000 Trident TVGA 88/8900 512K
        60h = T 132x25 8x14. 16/64 8 B800 Quadram Ultra VGA
        = T 132x25 8x14. 16.. Genoa 6400
        = T 132x25 8x14. 16.. Genoa SuperEGA BIOS 3.0+
        = T 132x25..... Cirrus 5320 chipset
        = T 132x25 8x16 1056x400 16. B800 Chips&Technologies chipset
        = G 80x???. ???x400... Corona/Cordata BIOS 4.10+
        = G 80x25 8x16 640x400 256 1 A000 Ahead A, Ahead B
        = G.. 752x410... VEGA VGA
        = G.. 752x410 16.. Tatung VGA
        = G.. 752x410 16.. Video7 V-RAM VGA
        = G 128x48 8x16 1024x768 4/256K. A000 Trident TVGA 8900
        = G 128x48 8x16 1024x768 256/256K. A000 WD90C
        = G 128x48 8x16 1024x768 256/256K. A000 Diamond Speedstar 24X
        = G 128x48 8x16 1024x768 256/256K. A000 Cirrus CL-GD5420/5422/5426
        = G 144x54 8x16 1152x864.. A000 Diamond Stealth64 Video 2xx1
        61h = T 132x29 8x12. 16/64 8 B800 Quadram Ultra VGA
        = T 132x29 8x8. 16.. Genoa 6400
        = T 132x29 8x8. 16.. Genoa SuperEGA BIOS 3.0+
        = T 132x50..... Cirrus 5320 chipset
        = T 132x50 8x8 1056x400 16. B800 Chips&Technologies chipset
        = T 132x50 8x16 1056x800 16. B800 Chips&Technologies 64310
        = G.. ???x400... Corona/Cordata BIOS 4.10+
        = G 80x25 8x16 640x400 256. A000 ATI VGA Wonder,VGA Wonder+
        = G 80x25 8x16 640x400 256. A000 ATI Ultra 8514A,ATI XL
        = G 80x25 8x16 640x400.. A000 Diamond Stealth64 Video 2xx1
        = G 80x30 8x16 640x480 256 1 A000 Ahead A, Ahead B (512K)
        = G.. 720x540... VEGA VGA
        = G.. 720x540 16.. Tatung VGA
        = G.. 720x540 16.. Video7 V-RAM VGA
        = G 96x64 8x16 768x1024 16/256K. A000 Trident TVGA 88/8900 512K
        = G 128x48 8x16 1024x768 256. A000 NCR 77C22 [1,9]
        = G 144x54 8x16 1152x864.. A000 Diamond Stealth64 Video 2xx1
        62h = T 132x32 8x11. 16/64 6 B800 Quadram Ultra VGA
        = T 132x32 8x12. 16.. Genoa 6400
        = T 132x32 8x11. 16.. Genoa SuperEGA BIOS 3.0+
        = T 132x43 8x8 1056x344 16. B800 C&T 82C450 BIOS
        = G.. 640x450 16.. Cirrus 510/520 chipset
        = G 80x30 8x16 640x480 256. A000 ATI VGA Wonder,VGA Wonder+
        = G 80x30 8x16 640x480 256. A000 ATI Ultra 8514A,ATI XL
        = G 80x30 8x16 640x480 32K. A000 WD90C
        = G 80x30 8x16 640x480 32K. A000 Diamond Speedstar 24X
        = G.. 800x600... VEGA VGA
        = G.. 800x600 16.. Tatung VGA
        = G.. 800x600 16.. Video7 V-RAM VGA
        = G 100x75 8x8 800x600 256 1 A000 Ahead A, Ahead B (512K)
        = G 128x48 8x16 1024x768 256/256K. A000 Trident TVGA 8900, Zymos
        = G 128x48 8x16 1024x768 256. A000 NCR 77C22 [9]
        63h = T 132x44 8x8. 16/64 5 B800 Quadram Ultra VGA
        = T 132x44 8x8. 16.. Genoa 6400
        = T 132x44 8x8. 16.. Genoa SuperEGA BIOS 3.0+
        = G.. 720x540 16.. MORSE VGA
        = G.. 720x540 16.. Cirrus 510/520 chipset
        = G 100x42 8x14 800x600 256. A000 ATI VGA Wonder,VGA Wonder+
        = G 100x42 8x14 800x600 256. A000 ATI Ultra 8514A,ATI XL
        = G.. 800x600 32K. A000 WD90C
        = G.. 800x600 32K. A000 Diamond Speedstar 24X
        = G 128x48 7x16 1024x768 256 1 A000 Ahead B (1MB)
        = G.. 1024x768 2.. Video7 V-RAM VGA
        64h = T 132x60 8x8. 16.. Genoa 6400
        = T 80x43 8x8 528x344 16. B800 C&T 82C450 BIOS
        = G.. 640x480 64K. A000 Cirrus CL-GD 5422/5426
        = G.. 800x600 16.. MORSE VGA
        = G.. 800x600 16.. Cirrus 510/520 chipset
        = G.. 800x600 ???.. SAMPO-Mira VGA
        = G.. 1024x768 4.. Video7 V-RAM VGA
        = G 128x48 8x16 1024x768 256. A000 ATI VGA Wonder Plus,ATI XL
        = G 160x64 8x16 1280x1024 16/256K. A000 WD90C [1]
        = G 160x64 8x16 1280x1024 16/256K. A000 Diamond Speedstar 24X [1]
        65h = T 80x50 8x8 528x400 16. B800 C&T 82C450 BIOS
        = G.. 800x600 64K. A000 Cirrus CL-GD 5422/5426
        = G.. 1024x768 16.. Video7 V-RAM VGA
        = G 128x48 8x16 1024x768 16. A000 ATI VGA Wonder
        66h = T 80x50 8x8 640x400 16/256K. B800 WD90C
        = T 80x50 8x8. 16. B800 Diamond Speedstar 24X
        = G.. 640x400 256.. Tatung VGA
        = G.. 640x400 256.. Video7 V-RAM VGA
        = G.. 640x480 32K. A000 Cirrus CL-GD 5422/5426
        67h = T 80x43 8x8 640x344 16/256K. B800 WD90C
        = T 80x43 8x8. 16. B800 Diamond Speedstar 24X
        = G.. 640x480 256.. Video7 V-RAM VGA
        = G.. 800x600 32K. A000 Cirrus CL-GD 5422/5426
        = G 128x48 8x16 1024x768 4. A000 ATI VGA Wonder
        = G 160x64 8x16 1280x1024 16. A000 NCR 77C22 [1,9]
        68h = G 80x25 8x16 640x400.. A000 Diamond Stealth64 Video 2xx1
        69h = T 132x50 8x8 1056x400 16/256K. B800 WD90C
        = T 132x50 8x8. 16. B800 Diamond Speedstar 24X
        = G 80x30 8x16 640x480.. A000 Diamond Stealth64 Video 2xx1
        = G.. 720x540 256. A000 Video7 V-RAM VGA
        6Ah = G.. 800x600 16. A000 VESA standard interface
        = G 100x75 8x8 800x600 16. A000 Genoa 6400
        = G 100x75 8x8 800x600 16. A000 Diamond Speedstar 24X
        = G.. 800x600 16. A000 Ahead A
        = G 100x75 8x8 800x600 16 1 A000 Ahead B (VESA) [see 71h]
        = G.. 800x600 16.. Zymos Poach, Hi Res 512
        = G.. 800x600 16.. Epson LT-386SX in CRT Mode
        = G.. 800x600 16.. Compuadd 316SL in CRT Mode
        = G 100x37 8x16 800x600 16/256K. A000 Cirrus CL-GD5420/5422/5426
        = G 100x37 8x16 800x600 16. A000 Diamond Stealth64 Video 2xx1
        = G 100x42 8x14 800x600.. A000 ATI VGA Wonder (undoc)
        = G.. 800x600 16. A000 Chips&Technologies chipset
        = G 160x64 8x16 1280x1024 256. A000 NCR 77C22 [1,9]
        6Bh = T 100x37 8x16. 16.. Genoa 6400
        = T 100x37 8x16.... NEL Electronics BIOS
        = G 100x37 8x16 800x600.. A000 Diamond Stealth64 Video 2xx1
        6Ch = G 80x30 8x16 640x480 16M. A000 Trident 8900CL/BIOS C04
        = G 100x75 8x8 800x600 256.. Genoa 6400
        = G 128x48 8x16 1024x768 2. A000 Diamond Stealth64 Video 2xx1
        = G 160x60 8x16 1280x960 16/256K. A000 WD90C [1]
        = G 160x60 8x16 1280x960 16/256K. A000 Diamond Speedstar 24X [1]
        = G 160x64 8x16 1280x1024 16/256K. A000 Cirrus CL-GD 5422/5426 [1]
        6Dh = G 80x25 8x14 640x350 64K. A000 STB Lightspeed ET4000/W32P
        = G 128x48 8x16 1024x768.. A000 Diamond Stealth64 Video 2xx1
        = G 160x64 8x16 1280x1024 256/256K. A000 Cirrus CL-GD 5422/5426 [1]
        6Eh = G 40x25 8x8 320x200 64K. A000 Cirrus CL-GD 5422/5426
        = G 160x64 8x16 1280x1024 2. A000 Diamond Stealth64 Video 2xx1
        6Fh = G 40x25 8x8 320x200 16M. A000 Cirrus CL-GD 5422/5426
        = G 160x64 8x16 1280x1024.. A000 Diamond Stealth64 Video 2xx1
        70h = extended mode set (see AX=0070h). Everex Micro Enhancer EGA
        = T 40x25 8x8. 16 8 B800 Quadram (CGA double scan)
        = T 40x25 8x8 (CGA dblscan).. Genoa SuperEGA BIOS 3.0+
        = G.. 360x480 256.. Cirrus 510/520/5320 chips
        = G 90x28 8x14 720x392 16 1 A000 Ahead B
        = G 80x30 8x16 640x480.. A000 Diamond Stealth64 Video 2xx1
        = G 100x38 8x16 800x600 16. A000 C&T chipset, Cardinal
        = G.. 1024x480 256. A000 Trident 8900C BIOS C3.0
        71h = T 80x25 8x8. 16 8 B800 Quadram (CGA double scan)
        = T 80x25 8x8 (CGA dblscan).. Genoa SuperEGA BIOS 3.0+
        = G.. 528x400 256.. Cirrus 510/520 chipset
        = G 80x30 8x16 640x480 16M. A000 Cirrus CL-GD 5422/5426
        = G 80x30 8x16 640x480.. A000 Diamond Stealth64 Video 2xx1
        = G 100x35 8x16 800x600 16/64. A000 NSI Smart EGA+
        = G 100x75 8x8 800x600 16 1 A000 Ahead B (same as 6Ah)
        = G.. 960x720 16.. C&T chipset, Cardinal
        = G.. 1024x480 256. A000 Trident 8900C BIOS C3.0
        72h = T 80x60 8x8. 16. B800 Quadram Ultra VGA
        = T 80x60 8x8. 16. B800 Genoa 6400
        = T 80x60 8x8. 16. B800 Genoa SuperEGA BIOS 3.0+
        = G.. 528x480 256.. Cirrus 510/520 chipset
        = G 80x25 8x19 640x480 16 1 A000 DOS/V w/ any VGA
        = G 80x30 8x16 640x480.. A000 Diamond Stealth64 Video 2xx1
        = G.. 640x480 32K. A000 ATI
        = G.. 640x480 16M. A000 WD90C
        = G.. 640x480 16M. A000 Diamond Speedstar 24X
        = G.. 1024x768 16.. C&T chipset, Cardinal
        = G 128x48 8x16 1024x768i 16. A000 C&T 82C450 BIOS
        = G 128x48 8x16 1024x768 16. A000 C&T 65530 BIOS (multisync)
        73h = G 80x60 8x8 640x480 16. A000 Quadram Ultra VGA
        = G 80x60 8x8 640x480 16.. Genoa 6400
        = G 80x60 8x8 640x480 16.. Genoa SuperEGA BIOS 3.0+
        = G 100x37 8x16 800x600.. A000 Diamond Stealth64 Video 2xx1
        = T 80x25 8x19 640x475 16 1 none DOS/V, emulated in VGA graph
        74h = T 80x66 8x8. 16. B800 Quadram Ultra VGA
        = T 80x66 8x8. 16. B800 Genoa 6400
        = T 80x66 8x8. 16. B800 Genoa SuperEGA BIOS 3.0+
        = G.. 640x400 2. B800 Toshiba 3100 AT&T mode
        = G 80x30 8x16 640x480 32K. A000 Trident 8900C/BIOS C03
        = G 100x37 8x16 800x600.. A000 Diamond Stealth64 Video 2xx1
        = G 128x48 8x16 1024x768 16 1 A000 Ahead A, Ahead B (512K)
        = G.. 1024x768 64K. A000 Cirrus CL-GD 5422/5426 [1]
        75h = G 80x30 8x16 640x480 64K. A000 Trident 8900C/BIOS C03
        = G 80x66. 640x528 16???. A000 Quadram Ultra VGA
        = G 80x66. 640x528 16.. Genoa SuperEGA BIOS 3.0+
        = G 100x37 8x16 800x600.. A000 Diamond Stealth64 Video 2xx1
        = G 128x48 8x16 1024x768 4 1 A000 Ahead B
        = G 128x48 8x16 1024x768 16. A000 Chips&Technologies 64310
        76h = T 94x29 8x14. 16. B800 Quadram Ultra VGA
        = T 94x29 8x14.... Genoa SuperEGA BIOS 3.0+
        = G 100x75 8x8 800x600 32K. A000 Trident 8900C/BIOS C03
        = G 128x48 8x16 1024x768 2 1 A000 Ahead B
        = G 128x48 8x16 1024x768.. A000 Diamond Stealth64 Video 2xx1
        = G 160x64 8x16 1280x1024 16. A000 Chips&Technologies 64310 [1]
        77h = G 94x29. 752x410 16???. A000 Quadram Ultra VGA
        = G 94x29. 752x410 16.. Genoa SuperEGA BIOS 3.0+
        = G 100x75 8x8 800x600 64K. A000 Trident 8900C/BIOS C03
        = G 128x48 8x16 1024x768.. A000 Diamond Stealth64 Video 2xx1
        78h = T 100x37 8x16. 16.. Genoa 6400
        = T 100x75 8x8. 16. B800 Quadram Ultra VGA
        = T 100x75 8x8.... Genoa SuperEGA BIOS 3.0+
        = G.. 640x400 256.. STB VGA/EM-16 Plus
        = G 80x25 8x16 640x400 256.. Cardinal, C&T chipset
        = G.. 640x400 256.. Cirrus 5320 chipset
        = G 80x25 8x16 640x400 256. A000 Chips&Technologies 64310
        79h = G 80x30 8x16 640x480 256.. Cardinal, C&T chipset
        = G 80x30 8x16 640x480 256. A000 Chips&Technologies 64310
        = G 100x75. 800x600 16???. A000 Quadram Ultra VGA
        = G 100x75 8x8 800x600 16.. Genoa SuperEGA BIOS 3.0+
        = G 100x75 8x8 800x600 16.. Genoa 6400
        7Ah = T 114x60 8x8. 16. B800 Quadram Ultra VGA
        = T 114x60 8x8.... Genoa SuperEGA BIOS 3.0+
        = G.. 720x540 256.. C&T chipset, Cardinal
        7Bh = G.. 800x600 256.. C&T chipset, Cardinal
        = G 114x60. 912x480 16???. A000 Quadram Ultra VGA
        = G.. 912x480 16.. Genoa SuperEGA BIOS 3.0+
        7Ch = G.. 512x512 16.. Genoa
        = G 100x37 8x16 800x600 256.. C&T 82C453/F65530 chipsets
        = G 100x37 8x16 800x600 256. A000 Chips&Technologies 64310
        = G 200x75 8x16 1600x1200. [16]. A000 Diamond Stealth64 Video 2xx1
        7Dh = G 64x32 8x16 512x512 256.. Genoa
        7Eh = special mode set (see AX=007Eh). Paradise VGA, AT&T VDC600
        = G 80x25 8x16 640x400 256.. Genoa 6400
        = G.. 1024x768 256.. C&T 82C453 chipset
        = G 128x48 8x16 1024x768 256. A000 Chips&Technologies 64310
        = G 90x43.. mono. B000 HERCULES.COM on HGC [14]
        7Fh = special function set (see AX=007Fh/BH=00h) Paradise VGA, AT&T VDC600
        = G 128x48 8x16 1024x768 4.. Genoa 6400
        = G 90x29.. mono. B000 HERCULES.COM on HGC [14]
        82h = T 80x25.. B&W.. AT&T VDC overlay mode [6]
        83h = T 80x25..... AT&T VDC overlay mode [6]
        86h = G.. 640x200 B&W.. AT&T VDC overlay mode [6]
        88h = G 90x43 8x8 720x348 mono. B000 Hercules + MSHERC.COM
        C0h = G.. 640x400 2/prog palette. AT&T VDC overlay mode [6]
        = G.. 640x400 2/prog palette. Olivetti Quaderno overlay
        C4h = disable output.... AT&T VDC overlay mode [6]
        C8h = G 80x50 8x8 640x400 2. B800 Olivetti Quaderno overlay
        D0h = G.. 640x400 2. B800 DEC VAXmate AT&T mode
        Notes:
        [1] interlaced only
        [2] for ATI EGA Wonder, mode 08h is only valid if SMS.COM is loaded resident.
        SMS maps mode 08h to mode 27h if the byte at location 0040:0063 is 0B4h,
        otherwise to mode 23h, thus selecting the appropriate (monochrome or
        color) 132x25 character mode.
        for ATI VGA Wonder, mode 08h is the same, and only valid if VCONFIG loaded
        resident
        [3] early XGA boards support 132-column text but do not have this BIOS mode
        [4] DESQview intercepts calls to change into these two modes (21h is page 0,
        22h is page 1) even if there is no Hercules graphics board installed
        [5] ATI BIOS v4-1.00 has a text-scrolling bug in this mode
        [6] for AT&T VDC overlay modes, BL contains the DEB mode, which may be 06h,
        40h, or 44h
        [7] BIOS text support is broken in this undocumented mode; scrolling moves
        only about 1/3 of the screen (and does even that portion incorrectly),
        while screen clears only clear about 3/4.
        [8] The Oak OTI-037/067/077 modes are present in the Oak VGA BIOS, which OEMs
        may choose to use only partially or not at all; thus, not all Oak boards
        support all «Oak» modes listed here
        [9] this card uses the full 128K A000h-BFFFh range for the video buffer,
        precluding the use of a monochrome adapter in the same system
        [10] mode 17h supported by Tseng ET4000 BIOS 8.01X dated 1990/09/14, but not
        v8.01X dated 1992/02/28; mode 21h supported by 1992/02/28 version but not
        1990/09/14 version
        [11] HERKULES simulates a 90x45 text mode in Hercules graphics mode; the
        installation check for HERKULES.COM is the signature «Herkules» two
        bytes beyond the INT 10 handler
        [12] The Realtek RTVGA BIOS v3.C10 crashes when attempting to switch into
        modes 21h or 27h; this version of the BIOS also sets the BIOS data area
        incorrectly for extended text modes, resulting in scrolling after only
        24 lines (the VMODE.EXE utility does set the data area correctly)
        [13] The Tandy 1000SL/TL BIOS does not actually support this mode
        [14] HERCULES.COM is a graphics-mode BIOS extension for Hercules-compatible
        graphics cards by Soft Warehouse, Inc. Its installation check is to
        test whether the word preceding the INT 10 handler is 4137h.
        [15] The Hercules-graphics video modes for HERCBIOS (shareware by Dave
        Tutelman) may be changed by a command-line switch; the 90x43
        character-cell mode's number is always one higher than the 90x29 mode
        (whose default is mode 08h)
        [16] Stealth64 Video 2001-series BIOS v1.03 reports 76 lines for mode 7Ch,
        resulting in incorrect scrolling for TTY output (scrolling occurs only
        after the end of the 76th line, which is not displayed)
        [17] For 43-line text on EGA or 43/50-line text on VGA, you must load an 8x8
        font using AX=1102h after switching to mode 3; VGA may also require
        using INT 10/AH=12h/BL=30h


        1. drWhy
          03.12.2021 11:40
          +1

          «Notes: IBM standard modes do not clear the screen if the high bit of AL is set (EGA or higher only).»

          ЕМНИП функция часто вызывалась именно для очистки экрана. Начиная с EGA стало можно переключать видеорежимы без очистки экрана, что можно увидеть и сейчас на некоторых материнских платах — сразу после процедуры POST на фоне текста появляется графическая индикация загрузки ОС.


          1. axe_chita
            03.12.2021 16:54
            +1

            В борландовских библиотеках очистка текстового экрана выполнялась с помощью следующих команд:
            mov es,0xb800 (0xb000 для монохромного режима)
            mov ax,0
            mov di,ax
            mov cx,2000 (80*25 с учетом атрибутов)
            cld
            rep stosw

            ЕМНИП


            1. drWhy
              03.12.2021 17:27

              «Ложки у меня пациенты много раз глотали, не скрою, но вот чтоб так, обедом… На десерт… и острый предмет… замечательно!»

              Вашей памяти можно позавидовать.
              Программа unreal.com, осуществлявшей переход в нереальный режим процессора, демонстрировала успешность перехода отображением смайлика в верхнем левом углу через прямую запись в видеопамять по уже линейному адресу b8000000. ЕМНИП.


              1. axe_chita
                03.12.2021 18:04
                +1

                ;) «Я еще вышивать умею, и на машинке шить...»
                На самом деле, я помнил только одно — это REP STOSW, а все остальное бережно достроила нейросеть:)
                А нейросеть сразу вспомнила AFD, классный все таки отладчик был, и кусок подобного кода в его окошке.


                1. drWhy
                  03.12.2021 18:27
                  +1

                  afd.exe и я припомнил, когда недавно кто-то припомнил Softice. Кажется с его помощью ковырял какую-то программу на Искре-1030, доковырялся до прерывания в BIOS, бросил, но вывалившись в DOS получил янтарный цвет нортона как на мониторах стандарта Hercules.


                  1. axe_chita
                    03.12.2021 18:59
                    +1

                    Нейросеть увидев знакомую марку «Искра-1030», достроила воспоминание об эмуляции CMOS часов на это машинке. Помните обязательные «Enter date & time» при запуске? Так вот, ковыряясь в AFD поменял что-то ручками в видеопамяти CGA за пределами экранной области, запустил свою прогу и благополучно завесил комп. Я перезагружаюсь, лезу в видеопамять, и вижу что мои каляки в видеопамяти остались целыми. И тут в голову пришла замечательная идея «Вот где можно хранить дату и время!». Была на коленке нацарапана программа, на турбо-васике, которая при запуске проверяла эту область на наличие даты и времени, и если там было что-то осмысленное, то эти дата и время устанавливались в системе.
                    П.С. У меня монитор HGC был православный-зеленый:) И у рабочей турбо ХТ был переключатель HGC/CGA, которым можно было поменять режим работы видеокарты


                    1. drWhy
                      03.12.2021 19:28

                      Зелено!


  1. gameplayer55055
    02.12.2021 08:38

    Интересно прочитать тот момент, когда и почему десктопный Линукс зафейлился


  1. eugeneyp
    02.12.2021 10:47
    +1

    Кнюппелем называется стик для большого пальца в 9П148, так что название живо до сих пор.

    Работал с GEMS Desktop для DOS, Если мне не изменяет память то Ventura Publisher для GEMS единственная версия которая имела интеграцию с FoxPro DB.

    Для текстового режима DOS было очень красивое решение для курсора мыши. Выбиралось 4ре редко используемых символов ASCII и эмулировался курсор мыши из Windows.


    1. drWhy
      02.12.2021 13:14

      Knüppel управления ракетой Henschel Hs 293, 1943 г.


    1. belch84
      02.12.2021 14:00
      +1

      Для текстового режима DOS было очень красивое решение для курсора мыши. Выбиралось 4ре редко используемых символов ASCII и эмулировался курсор мыши из Windows.
      Такая же возможность, кажется, была в Norton Commander (или в Norton Utilities? Или вообще в PC Tools?)


      1. eugeneyp
        02.12.2021 14:15

        Не помню точно, это вообще мог быть как расширенный драйвер мыши так и сам NC. Но псевдографический указатель мыши выглядело шикарно.


  1. DikSoft
    02.12.2021 12:15
    +1

    Как-то OS/2 совсем из обзора выпала. А ведь в ней были интересные решения.


  1. Earthsea
    02.12.2021 12:35

    Quantel Paintbox

    Вот это реально круто было, и не особо известно в широких кругах.

    Надо больше обзоров подобных узкоспециализированных систем.


  1. Ironcast
    02.12.2021 13:17
    +2

    Было время, когда опытные пользователи знали названия большинства файлов в системе и для чего они нужны. А сейчас я уже и забыл про USER32.DLL и GDI32.DLL. Помню как пытались запустить приложения из Win98 в Win95 и удававалось порой удачно (например с заставками из Win98 Plus), там ещё космонавт летал- казалось по тем временам запредельно круто. Да, а примитивные по нынешним временам заставки в игрушках казались чем-то вообще запредельным.. А ещё раньше была заставка Mars 3D в 1993 году размером в несколько килобайт. Для сравнения, запускаю какой-то вариант ArchLinux последний, смотрю потребление памяти: volumeicon -- 80 мегабайт, lxterminal -- 40 мегабайт. Другие времена, другие нравы.


    1. OlegZH
      02.12.2021 22:10
      +1

      А что Вы скажете про файлы CONFIG.SYS и IO.SYS, и необходимость править AUTOEXEC.BAT? А QUEMM? TETTA.COM? Антивирус Лозинского? Norton Commander? Volkov Commander? Dos Navigator? Norton Utilities? Disk Dube? Stacker?

      Как говорится

      Invalid comspec. System halted.


      1. Ironcast
        02.12.2021 23:08
        +1

        Это не проблема, проблема выставлять в этих файлах прерывания для звуковой карты, ещё тот квест. Aidtest помню смутно, Diskdupe тоже, QEMM это видимо аналог позднего EMM386.exe, вот его использовать кроме режима NOEMS приходилось для эмуляции некоторых игр, Tetta -- впервые слышу. NC, DN -- это слишком классика чтоб у них упоминать мимоходом, VC -- помню помещали на загрузочную дискету WIN 95 А вот Norton Utilities была супервещью для работы с Диском, Calibrate, Unerase я даже не знаю современных аналогов, только частично. Мне больше всего интересно, какими бы были сегодняшние программы если б они были так же ограничены в ресурсах как программы ДОС.. 640 килобайт должно быть достаточно каждому :-)


      1. drWhy
        03.12.2021 11:45

        Invalid comspec. System halted.
        set comspec=b:\nc.exe