Клерк, ты хотел увидеть универсальный код для переключения из графического режима в текстовый с помощью прямого программирования регистров видеоадаптера. Вот, я нашел все-таки старые исходники, причесал их немного и собрал в виде COM-файла, да-да, для DOS))) Только расширение сменить надо. Код там линейный и практически тривиальный: сперва переключает в графический режим через int 10h, потом программирует регистры синхронизатора, контроллера CRT, графического контроллера, контроллера атрибутов, загружает фонты в знакогенератор и выводит тестовую строку. Если все ок - в верхнем левом углу экрана будет строка цифр 0-F. Если у кого нет возможности запустить код под DOS или хочется потестить именно под виндой/линуксом - придется пилить дров (ну или как-то разрешать I/O в юзермоде). При портировании не забывайте, что приведенный код 16-битный)) За универсальность конечно не ручаюсь, но на всех протестированных мной видяхах (интелы, нвидиа, радеоны и даже одна встроенная видяха из древнего SiS'овского чипсета) этот код работал корректно. Под виндой после переключения в текстовый режим изредка возможно появление артефактов на экране в виде изображения курсора мыши. Я так в свое время и не разобрался почему это случается, да мне это и не нужно было в общем-то. Задача изначально состояла в том, чтобы отлаживать код, в котором просто нельзя пользоваться никакими сервисами ОС, поэтому пришлось изобретать велосипед с переключением в текстовый режим для отладочного вывода на экран. И еще. Фонты в коде только для символов 0-F + несколько промежуточных, остальные мне было лень копипастить))
Такое нужно в виде сорцов в раздел "бабушкин сундук, или работа с видеоадаптером через порты в/в" Под досбоксом работает. По крайней мере увидел 0..F. Правда, оно не подразумевает выход из себя обратно в ОС, или не смог подобрать any key для выхода. Спасибо.
Некоторое время назад поковыривал Paratrooper (игра досовская 1984 года), так в то время в играх тоже не был предусмотрен выход. И что характерно, они даже инт21 не используют, только сервисы биос и порты вв/в.