Решил создать отдельную тему по ЕС-1842. Тут буду понемногу публиковать всю собранную мною и др. участниками инфу, в основном техническую. Наработки, схемы, прошивки и т.д.
Начнём-с …
Биос ЕС-1842 является логическим продолжением биоса ЕС-1841, с некоторыми его нюансами. Например, он содержит копию прошивки расширение биоса поддержки MFM контроллера и т.д. Так же, по моему мнению, он содержит множество недоработок, что и побудило меня к созданию немного доработанной версии.
Что исправлено:
1. Вызов п/п поиска расширений биоса. Как видно из кода ниже, поиск п/п расширения биоса пропускается, если сдохла батарейка кмоса или неверная контрольная сумма. Что полностью исключает загрузку с любого другого устр-ва, кроме дискетки. Так же при верных данных КМОС, НО наличия в векторе INT13h указателя на сегмент C800h, пропускается инициализация MFM биоса.
Скрытый текст
Код:mov al, DIAG_STATUS out CMOS_PORT, al jmp short $+2 in al, CMOS_DATA jmp short $+2 test al, BAD_BAT or BAD_CKSUM ; check cmos status jnz short alzo ; jmp if chksum is bad or cmos lost power mov al, 12h out CMOS_PORT, al jmp short $+2 in al, CMOS_DATA or al, al jz short alzo ; jmp if no hard drive set mov dx, 0C800h ROM_SCAN_1: mov ds, dx sub bx, bx mov ax, [bx] push bx pop bx cmp ax, 0AA55h jnz short NEXT_ROM call ROM_CHECK jmp short ARE_WE_DONE NEXT_ROM: add dx, 80h ARE_WE_DONE: cmp dx, 0F600h jl short ROM_SCAN_1 xor ax, ax mov es, ax cmp word ptr es:INT_13h+2, 0C800h jz short alzo call HD_init alzo:[свернуть]
2. При установленной, перемычками на материнке, типа видеокарты EGA устанавливается заглушка на INT10h(iret), до вызова биоса видеокарты. Это позволяет избежать проблем с VGA видеокартами (при наличии ISA разъёма на материнке), которые проверяют наличие оригинального вектора INT10h F000:F065h (включают режим 40х25), а так же продолжить загрузку при отсутствующей/неисправной видеокарты (например при ремонте/диагностики материнки биос подвисает на опросе регистров видеокарты, которая отсутствует или неисправна).
3. Исправлена ошибка – “Не прошёл сброс КЛВ” при подключении классической АТ клавиатуры. В биосе не правильно была установлена константа ожидания сброса. АТ клавиатура делает более обширный самотест.
Что улучшено:
1. Заменены все вызовы CALL DDS на PUSH 40h, POP DS(для проца 86м). Последние 2 команды занимают так же 3 байта, что и CALL. Должно несколько ускорить биос.
2. Добавлена надпись БСУВВ ЕС1842 при запуске.
3. Изменён INT19h, теперь он более информативен и распознает отсутствие загрузочного устройства, неформатированный носитель или отсутствие системной дорожки, о чем информирует.
4. Добавлен SHELL для настроек биоса, а-ля ес-1849. Теперь можно настроить Дату/Время и самое главное произвольный тип/геометрию МФМ диска БЕЗ ТПС. 38 вариантов(15й не использ.) + ЮЗЕР тип(параметры можно свои задать). Не нужно переставлять перемычки на контроллере МФМ. Так же формат даты правильный ДД-ММ-ГГГГ.
5. Добавлены 2 кода для POST diag card (23h,24h), использовались для проверки, решил оставить, что бы биос хоть что-то выдавал (при наличии isa).
В остальном это родной биос ес1842. Всё это умещается в стандартные пзу материнки 4х27c64. Файлы во вложении пронумерованы в соответствии с маркировкой микросхем пзу(004/005/006/007).
Некоторые опции биоса резервные для варианта внешнего биоса на 64кб с поддержкой полноценного, 16бит интерфейса IDE. Новая плата с плюшками и биос к ней протестированы. Ожидается новая ревизия. В создании самой платы активно участвует Atomic. Фото ниже.
Топик будет пополняться со временем.


Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
