dlinyj: (Default)
[personal profile] dlinyj
Решение проблемы с видеокартой оказалось нетривиальным. Многие были правы и неправы одновременно. Я даже купил себе охлаждающую жижу, чтобы поморозить микросхемы. Но всё оказалось куда интереснее. Сходу выражаю большую благодарность [livejournal.com profile] arush_damage за ссылку на документацию по этому адаптеру, она мне очень сильно помогла.
Начнём с того, что не смотря на то что текстовый режим глючит, если в автозагрузку поставить запуск графической игры, то она успешно работает(!), значит проблема точно не в ОЗУ.


Принц Персии работает в этом диком режиме.


Так... А если подключить внешний монитор к разъёму VGA? Представляете, о чудо, с внешним монитором, без изменения настроек и прочего-прочего, всё работает без каких либо артефактов.


Работа с внешним монитором.


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

Самое первое, что я попробовал - это включить-выключить русификатор клавиатуры, пробовал разные русификаторы - это никаким образом не помогло.

Следующая моя идея состояла в том, что может слишком свежая версия ДОС, и может попробовать что-то древнее. Нашёл версию PC-DOS 3.5, которая поставлялась ещё на дискетках 5,25. Сделал загрузочный диск с ней (о том как делать загрузочный диск в Linux можно написать отдельный пост, если трудящиеся попросят), и попытался загрузится. Но факир был пьян и фокус не удался.



Если гора не идёт к Магомету, то Магомет начинает читать документацию. Решил разобраться что делают джампера. Вообще, в том положении в котором стояли джампера вообще непонятно какой режим. Но поставив в режим EGA, CGA, MGA всё завелось.


Позиции переключателей, когда вывод изображения на экран состоялся.


Скрин ниже в режиме CGA.


Первый успешный вывод.


В общем, поигравшись с переключателями, остановился на режиме EGA и вернул обратно свою систему.


Режим работы EGA.


Но это всё какая-то хурма не ясная, ведь в VGA и разрешение больше и возможностей. А главное, в графике же работает в режиме VGA! Что делать? Оказывается, что в документации есть информация о том что делать: надо поставить драйвера! Тьфу ты, ларчик просто открывался.



Однако, к сожалению драйверов нету. Там, где была найдена документация на эту видяху, типа есть образ дискетки с драйверами. Но на деле, там оказался весьма современный фридос с какой-то бесполезной ерундой, без драйверов под эту железку. А родной жёсткий диск умер. Увы, гугление не позволило найти драйвера для неё. Не уверен, что у меня хватит пороху написать их.

Вот такой хитрый экран.

Date: 2024-03-18 10:17 am (UTC)
From: [identity profile] dixi.livejournal.com

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


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

Date: 2024-03-18 10:35 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Да не проблема подключить внешний монитор и переключить в VGA. Но хотелось бы встроенный оживить

Date: 2024-03-18 04:49 pm (UTC)
From: [identity profile] aleonty.livejournal.com

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


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


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

Edited Date: 2024-03-18 06:26 pm (UTC)

Date: 2024-03-18 08:45 pm (UTC)
From: [identity profile] arush-damage.livejournal.com

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


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

Date: 2024-03-18 09:07 pm (UTC)
From: [identity profile] arush-damage.livejournal.com

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


> Хотя в текстовых режимах VGA одно знакоместо имеет ширину 9 пикселей, в данных знакогенератора определяются только 8 из них (8 бит одного байта на строку); пиксели правой колонки символьной матрицы определяется автоматически: пустыми (для символов в диапазоне 0x00-0xAF и 0xE0-0xFF) или такими же, как пикселы 8-й колонки (для символов псевдографики (https://ru.wikipedia.org/wiki/%D0%9F%D1%81%D0%B5%D0%B2%D0%B4%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D1%8B) в диапазоне 0xB0-0xDF). Режим повтора 8й колонки мог быть отключен через регистр (через запрос BIOS никак). Так же, через регистры, можно было переключить текстовый режим c 9 колонок на 8 колонок для символа (так же как переключались графические режимы 320/360 точек в строке), что было нужно для некоторых матриц ноутбуков. Стандартные шрифты при этом обычно слипались, и нужно было загружать собственные (в BIOS более узкие шрифты обычно были прописаны вендором, но русские шрифты загружались сторонними программами, например KeyRus).
> Используя шрифты меньших размеров, чем стандартный 8×16, можно увеличить количество строк в текстовом режиме. Например, если включить шрифт 8×14, то будет доступно 28 строк. Включение шрифта 8×8 увеличивает количество строк до 50 (аналогично режиму EGA 80×43 (https://ru.wikipedia.org/wiki/EGA#Текстовые_режимы))[8][9].


Так что возможно утилита не только режим переключала, но и регистры настраивала.



В доке написано про разрешение 640х480, т.е. макс разрешение 80х60 для шрифта 8х8 и 80х30 для 8х16.


Если интресует какие регистры есть у VGA и как их программировать — рекомендую вот такую книгу:


Image


Ее текст есть в сети: http://www.codenet.ru/progr/video/egavga/ (http://www.codenet.ru/progr/video/egavga/)


Там также описаны дополнительные возможности биоса VGA/EGA


Edited Date: 2024-03-18 09:12 pm (UTC)

Date: 2024-03-18 09:17 pm (UTC)
From: [identity profile] aleonty.livejournal.com

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

Date: 2024-03-18 09:44 pm (UTC)
From: [identity profile] arush-damage.livejournal.com

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


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


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


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


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

Date: 2024-03-18 10:04 pm (UTC)
From: [identity profile] arush-damage.livejournal.com

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

Date: 2024-03-19 06:06 am (UTC)
From: [identity profile] masterspammer.livejournal.com

То есть я таки угадал, что произошло —



но причиной был не баг, а сделать больше строк. МудрО!

Date: 2024-03-19 07:28 am (UTC)
From: [identity profile] dlinyj.livejournal.com

Сразу перечёркивает всё написанное, что при подключении внешнего монитора этой проблемы нет.

Date: 2024-03-19 07:29 am (UTC)
From: [identity profile] dlinyj.livejournal.com

А как же быть с тем, что в этом же режиме с внешним монитором всё работает? Ничего не поменялось.

Date: 2024-03-19 07:31 am (UTC)
From: [identity profile] masterspammer.livejournal.com

Один режим тут, другой там. Больше строк нужно на встроенном.

Date: 2024-03-19 07:37 am (UTC)
From: [identity profile] dlinyj.livejournal.com

Ошибка со строками не рушит шрифт, просто не влезает на монитор. Знаем такой эффект.

Date: 2024-03-19 07:56 am (UTC)
From: [identity profile] masterspammer.livejournal.com

Здесь чуть другой эффект.


Завидую возможности поковыряться с таким :-)

Date: 2024-03-19 10:41 pm (UTC)
From: [identity profile] arush-damage.livejournal.com

А у внешнего дисплея какое разрешение?


А строчка "ПОДФУНКЦИЯ 35h: ВЫБОР АКТИВНОГО ДИСПЛЕЯ" ни на что не намекает?


ЗЫ. Так как выглядит изображение на LCD при установке джамперов в VGA?

Date: 2024-03-20 07:54 am (UTC)
From: [identity profile] dlinyj.livejournal.com

Разрешение на загрузку шрифтов не влияет. Просто вылезает за области экрана и всё.



>>ЗЫ. Так как выглядит изображение на LCD при установке джамперов в VGA?
См. КДПВ предыдущего поста.


Edited Date: 2024-03-20 07:55 am (UTC)

January 2026

S M T W T F S
    123
456 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 22nd, 2026 01:16 pm
Powered by Dreamwidth Studios