Ищу дамп биоса в/к Ati Rage XL PCI

Описания, советы, ремонт, эксплуатация старых IBM PC-совместимых ПК
Аватара пользователя
esasoft
Advanced Member
Сообщения: 3392
Зарегистрирован: 15.07.2018,16:34
Откуда: Москва
Благодарил (а): 3 раза
Поблагодарили: 45 раз

Вклад в сообщество

Ищу дамп биоса в/к Ati Rage XL PCI

Сообщение esasoft » 05.09.2026,20:08

acorp, я пока вынужден уйти, вот инструкция, что делать дальше (как чинить картинку):
"Изображение на экране размыто, «развалено» на горизонтальные полосы, а текст превратился в штрихкоды, потому что шаг пикселей (Pixel Stride / Pitch) и тактовая частота генератора пикселей (Pixel Clock) в текущем BIOS не совпадают с физической организацией SGRAM-памяти на плате Sun. Видеочип считывает данные из памяти строками одной длины, а RAMDAC выводит их на экран строками другой длины, из-за чего картинка «съезжает» по диагонали.
Для видеокарт архитектуры Mach64 / Rage XL параметры развертки и шага памяти для базовых режимов (включая стандартный VESA VGA 640x480, в котором отрисовываются окна Windows до установки родного драйвера) зашиты в таблице CRT_TABLE.
Давайте вернемся к считанному ранее дампу BIOS.
________________________________________
🔍 Анализ параметров развертки в дампе
Посмотрим на третью строку вашего дампа, которую мы получили ранее:
0xae0: 83 00 27 1C 07 0F 1C 04 81 05 83 01 3C 10 14 00
Байты на смещениях 0xAE2 — 0xAEB описывают параметры задержек контроллера ЭЛТ (CRT Controller) для стандартных текстовых и графических режимов BIOS:
• 07 0F — это параметры HTOTAL (Horizontal Total) и H_DISP (Horizontal Displayed). Они задают ширину строки в символах/пикселях для базового режима.
• 1C 04 — параметры вертикальной развертки (VTOTAL / V_DISP).
• 81 05 — маска полярности и управления обратным ходом луча.
Серверный BIOS Advantech настроен на жесткие тайминги KVM-консолей (часто с частотой обновления 70-72 Гц в текстовом режиме и нестандартным шагом строки, чтобы экономить память сервера). Обычный ЖК-монитор Samsung пытается растянуть этот сигнал под свои стандартные 60 Гц, из-за чего шаг памяти ломается.
________________________________________
🛠️ Как пропатчить BIOS для исправления картинки
Чтобы вернуть картинку в нормальное состояние, нам нужно заменить серверные параметры синхронизации на стандартные ПК-параметры общего назначения (Generic VESA).
Откройте ваш модифицированный файл в HEX-редакторе и попробуйте применить один из следующих патчей:
Вариант №1 (Сброс параметров CRT контроллера в стандарт VGA)
Попробуйте вернуть контроллер дисплея в стандартный режим IBM VGA, изменив тайминги развертки.
• На смещении 0xAE4 замените байт 07 на 00
• На смещении 0xAE5 замените байт 0F на 00
• На смещении 0xAE6 замените байт 1C на 00
• На смещении 0xAE7 замените байт 04 на 00
(Блок 0xAE2 примет вид: 27 1C 00 00 00 00 81 05...). Нулевые значения в этих полях заставляют внутренний BIOS инициализировать регистры контроллера CRTC_H_TOTAL_DISP и CRTC_V_TOTAL_DISP по базовой таблице самого чипа Rage XL, игнорируя серверные предустановки Advantech.
Вариант №2 (Патч ширины шага памяти / Memory Pitch)
Если Вариант №1 не поможет, значит проблема чисто в шаге сдвига строк SGRAM. За это отвечает байт на смещении 0xAEB (у вас это 01). В серверных платах он сдвигает указатель адреса строки.
• На смещении 0xAEB замените байт 01 на 00 или 02.
________________________________________
💾 Порядок действий:
1. Внесите изменения по Варианту №1 в HEX-редакторе.
2. Обязательно пропустите сохраненный файл через наш Python-скрипт пересчета контрольной суммы, так как мы поменяли 4 байта.
3. Прошейте карту и проверьте результат.
Попробуйте сделать изменения по Варианту №1.
Если это выровняет текст и окна, то задача решена. Если картинка останется сдвинутой, но полосы изменят свой угол или ширину, напишите — это поможет понять, в какую сторону (увеличения или уменьшения) нужно скорректировать шаг строки памяти."

Скрипт корректировки контрольной суммы (на Python):

Код: Выделить всё

import sys

with open("rxlpa47.rom", "rb") as f:
    data = bytearray(f.read())

size = data[2] * 512  # реальный размер из заголовка
if len(data) < size:
    print(f"Ошибка: файл {len(data)} байт, ожидается минимум {size}")
    sys.exit(1)

# Обнуляем последний байт
data[size - 1] = 0

# Сумма всех байт кроме последнего
s = sum(data[:size - 1]) & 0xFF

# Корректирующий байт
data[size - 1] = (0x100 - s) & 0xFF

# Проверка
checksum = sum(data[:size]) & 0xFF
if checksum != 0:
    print(f"ОШИБКА: checksum = {checksum}, должно быть 0")
    sys.exit(1)

print(f"✓ Checksum OK: корректирующий байт = 0x{data[size-1]:02X}")

with open("rxlpa47c.rom", "wb") as f:
    f.write(data)
В начале и в конце скрипта в with open вписываете входной и выходной файлы соответственно.

Mr.Hunt
Newbie
Сообщения: 35
Зарегистрирован: 15.04.2024,20:09
Откуда: MSK
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Ищу дамп биоса в/к Ati Rage XL PCI

Сообщение Mr.Hunt » 05.09.2026,20:40

Ребят, я кажется знаю как решить проблему.
Либо заменить кварц (там сейчас стоит на 29,49, на всех других картах 14.3 используется), либо править биос (т.е. пытаться найти там значения и изменять их под этот кварц)

Mr.Hunt
Newbie
Сообщения: 35
Зарегистрирован: 15.04.2024,20:09
Откуда: MSK
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Ищу дамп биоса в/к Ati Rage XL PCI

Сообщение Mr.Hunt » 05.09.2026,20:47

esasoft писал(а): 05.09.2026,19:53 acorp, питание попробуйте с неё снять совсем (вытащите из корпуса).
И прошивки прошейте в порядке возрастания, попробуйте.
Как будет стабильная картинка в DOS и в Windows - скажите версию.
Кстати, мне тут ИИ намекает, что неплохо бы потом память подразогнать до штатных значений (143 либо 166 МГЦ, на выбор), а то, говорит, сейчас она на 125 МГц сконфигурирована и так и работает. Для сервера нужна стабильность, скорость в играх там нафиг не нужна, поэтому скорость занижена.
Нам добиться нужно правильного вывода на экран. Мне тоже очень нравится что там самсунги на 166 мегагерц. Проц можно до 120 спокойно а то и выше попробовать разогнать. Так как (в отличии от вуд3х), частота процессора и памяти не синхронно сделана то можно отдельно гнать видео чип и отдельно память. И это круто, так как там даже дырки под гвоздики радиатора есть на карте.

acorp
Advanced Member
Сообщения: 985
Зарегистрирован: 08.12.2014,19:02
Откуда: Иркутск
Благодарил (а): 1 раз
Поблагодарили: 5 раз

Вклад в сообщество

Ищу дамп биоса в/к Ati Rage XL PCI

Сообщение acorp » 05.09.2026,21:02

Mr.Hunt писал(а): 05.09.2026,20:40 Ребят, я кажется знаю как решить проблему.
Либо заменить кварц (там сейчас стоит на 29,49, на всех других картах 14.3 используется), либо править биос (т.е. пытаться найти там значения и изменять их под этот кварц)
На кварц даже внимания не обратил, интереса ради завтра попробую заменить

acorp
Advanced Member
Сообщения: 985
Зарегистрирован: 08.12.2014,19:02
Откуда: Иркутск
Благодарил (а): 1 раз
Поблагодарили: 5 раз

Вклад в сообщество

Ищу дамп биоса в/к Ati Rage XL PCI

Сообщение acorp » 06.09.2026,05:56

acorp писал(а): 05.09.2026,21:02
Mr.Hunt писал(а): 05.09.2026,20:40 Ребят, я кажется знаю как решить проблему.
Либо заменить кварц (там сейчас стоит на 29,49, на всех других картах 14.3 используется), либо править биос (т.е. пытаться найти там значения и изменять их под этот кварц)
На кварц даже внимания не обратил, интереса ради завтра попробую заменить
Замена не прокатывает, вообще картинку не дает, хоть и пытается включить монитор.

Ответить