Решение проблемы с видеокартой

Mar 18, 2024 12:43

Решение проблемы с видеокартой оказалось нетривиальным. Многие были правы и неправы одновременно. Я даже купил себе охлаждающую жижу, чтобы поморозить микросхемы. Но всё оказалось куда интереснее. Сходу выражаю большую благодарность arush_damage за ссылку на документацию по этому адаптеру, она мне очень сильно помогла ( Read more... )

dos, Старое железо, ДОС, Железо, bios

Leave a comment

Comments 16

dixi March 18 2024, 10:17:36 UTC

Блин, сочувствую.

У меня когда-то долго был EGA-монитор, даже когда комп уже был 486. в принципе его хватало, но многие игры на нем уже не шли.

Reply

dlinyj March 18 2024, 10:35:16 UTC
Да не проблема подключить внешний монитор и переключить в VGA. Но хотелось бы встроенный оживить

Reply


aleonty March 18 2024, 16:49:49 UTC

> Оказывается, что в документации есть информация о том что делать: надо поставить драйвера!
Вроде написано не так. Я вижу, что там написано, что нужно просто запустить утилиту MXW чтобы выставить нужное разрешение в текстовом режиме. А содержимое каталога DRIVERS похоже на драйвера для определённых программ (автокад, офисный пакет Lotus, виндовс). Таким образом тебе нужна только эта утилита MXW. А то и просто инфа в какой порт видюхи какой байт записать чтобы она переключила разрешение в текстовом режиме.

upd: это же, наверное, ibm pc bios совместимый. Значит режим переключаем вызовом bios (https://en.wikipedia.org/wiki/INT_10H):
org 100h
mov ax,03h
int 10h
mov ax,4c00h
int 21h

можно даже в нортоне в hex редакторе вбить 66B80300CD10C3 и сохранить с расширением .com

Reply


arush_damage March 18 2024, 20:45:38 UTC

Жаль что мы так и не услышали начальника транспортного цеха (с)

Так а как оно выглядит в режиме VGA то?

Reply


arush_damage March 18 2024, 21:07:20 UTC

И эта, вот прям из вики:

> Хотя в текстовых режимах VGA одно знакоместо имеет ширину 9 пикселей, в данных знакогенератора определяются только 8 из них (8 бит одного байта на строку); пиксели правой колонки символьной матрицы определяется автоматически: пустыми (для символов в диапазоне 0x00-0xAF и 0xE0-0xFF) или такими же, как пикселы 8-й колонки (для символов псевдографики в диапазоне 0xB0-0xDF). Режим повтора 8й колонки мог быть отключен через регистр (через запрос BIOS никак). Так же, через регистры, можно было переключить текстовый режим c 9 колонок на 8 колонок для символа (так же как переключались графические режимы 320/360 точек в строке), что было нужно для некоторых матриц ноутбуков. Стандартные шрифты при этом обычно слипались, и нужно было загружать собственные (в BIOS более узкие шрифты обычно были прописаны вендором, но русские шрифты загружались сторонними программами, например KeyRus).
> Используя шрифты меньших размеров, чем стандартный 8×16, можно увеличить количество строк в текстовом режиме. Например, если включить ( ... )

Reply

aleonty March 18 2024, 21:17:09 UTC

Возможно, прямолинейный подход с int 10h слишком наивен, но попробовать можно)

Reply

arush_damage March 18 2024, 21:44:03 UTC

Полностью согласен.

Тем более что ком файл из 20-ти байт создать не проблема %)

Кстати, в сети можно найти взломаный hiew (или купить у разработчика) - он позволяет прям в аасемблерных кодах писать и сам их в бинарь переводит.

Хотя вроде ImHex все то-же умеет, но его под дос вроде нет

Опять же - VGA биос умеет гораздо больше, например вот такое может быть интересно http://www.codenet.ru/progr/video/egavga/egavga13.php#64 ПОДФУНКЦИЯ 35h: ВЫБОР АКТИВНОГО ДИСПЛЕЯ

Reply

arush_damage March 18 2024, 22:04:29 UTC

ЗЫ. Совсем забыл, НМНИМС в ком файлах вместо 4c00h функции 21h прерывания было достаточно сделать "ret". Там на стеке лежать адрес покоторому вызывается функция 4c00h 21h. Это такая фишка дос для ком файлов.

Reply


Leave a comment

Up