Вектор-06ц + PS/2 Keyboard + HDD
ZXM Phoenix 1024 + 1024 + 2FDD + HDD + DVDCombo+VGA&PAL+NeoGS
Дельта С, Компаньон 2, Ленинград 48
Ремонт: Вектор 06ц, Пентагон128
Написал свою программку, читающую порты контроллера HDD?
это так набросок, только для чтения определенного сектора.
ORG 100
IN 56
ANI F0
OUT 56
CALL TEST
MVI A,01
OUT 52
CALL TEST
MVI A,01
OUT 53
CALL TEST
MVI A,0
OUT 54
CALL TEST
MVI A,0
OUT 55
CALL TEST
MVI A,20
OUT 57
CALL TEST
LXI H,1000
MVI B,0
CHTEN IN 50
MOV M,A
INX H
IN 58
MOV M,A
INX H
DCR B
JNZ CHTEN
RET
TEST IN 57
ANI 80
JNZ TEST
RET
почемуто немогу вложить файл в пост, требуется авторизация
зы: при чтении из порта 57h на нечитаемых винтах, выдает FFh, и при заходе в TEST комп подвисает, всё это делаю в Мониторе-отладчике.
ззы:мне видится две причины, разные серии микросхем, используемые мной в контроллере или не все линии ide-интерфейса используются
Последний раз редактировалось Jons; 18.04.2010 в 15:40.
Вектор-06ц + PS/2 Keyboard + HDD
ZXM Phoenix 1024 + 1024 + 2FDD + HDD + DVDCombo+VGA&PAL+NeoGS
Дельта С, Компаньон 2, Ленинград 48
Ремонт: Вектор 06ц, Пентагон128
Может в цикле TEST добавить счетчик и, если слишком долго в нем сидим, то выйти из цикла и прочитать регистр ошибок? Вобще-то регистр ошибок в любом случае неплохо читать, хотя бы чтобы убедиться, что на "нормальных" винтах в нем нормальные значения.
Еще можно для очень старых винтов попробовать альтернативный код команды 21h (хотя это вряд ли хоть как-то скажется).
---------- Post added at 20:02 ---------- Previous post was at 19:49 ----------
Еще можно попробовать более "жестко" задать значение для старшего регистра цилиндра. Например после IN 56h добавить ORI 0A0h (или 0E0h для LBA). Бит выбора устройства тоже можно попробовать задать принудительно.
Последний раз редактировалось ivagor; 18.04.2010 в 17:51.
опрос регистра ошибок у меня реализован в более полной версии процедур, я не про это, дело в том что на этом контроллере нечитаются(т.е. необнаруживаются) больше половины винтов, как сделать так чтобы они все читались? или это не возможно изза особенностей схемы контроллера?
Вектор-06ц + PS/2 Keyboard + HDD
ZXM Phoenix 1024 + 1024 + 2FDD + HDD + DVDCombo+VGA&PAL+NeoGS
Дельта С, Компаньон 2, Ленинград 48
Ремонт: Вектор 06ц, Пентагон128
Если проблема в аппаратной части, то я пас.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Рискну продолжить тему.
Собрал я себе контроллер.
Есть три проблемы:
1) программы testhdd, testhdd2 при "поверхностном тесте портов" ругаются что "не работает порт IN 57h или индекс HDD". Дальше работают с HDD без проблем. Программа testhdd так не ругается. Это нормально?
2) с CF через ide переходник testhdd* при контрольной записи/проверки сектора ругаются ошибкой "мало данных". Хотя ни с верификацией секторов, ни с работой в mdos проблем нет.
3) Загрузчик "boots" v3.0 by TIMSoft почему-то грузит систему с hdd с адреса 0 (не пропускает первый квадратик). И она не работает. Пробовал пинудительно указывать sysgen'у адрес 100 - не помогает.
Что посоветуете?
---------- Post added at 20:02 ---------- Previous post was at 19:41 ----------
TIMSoft'у на заметку:
hdd_boot.bin 2Кб с картотеки (ты, видимо, с него брал процедуру загрузки с HDD) также криво грузит систему с FDD (не пропускает квадратик ;-)
при детальном изучении и исследовании винчестеров выяснил что Вектор на данном контроллере в принципе не сможет работать с винтами у которых RPM больше 4500, при значениях выше надо играться с линией IORDY (может я и не прав ), что касается CF то надо обратить внимание на её скоростные характеристики (может в этом проблема?) по третьему пункту, если ничего не помогает можно добавить в начале 256 нулей, записать такой файлик и попробовать загрузиться с ним
Вектор-06ц + PS/2 Keyboard + HDD
ZXM Phoenix 1024 + 1024 + 2FDD + HDD + DVDCombo+VGA&PAL+NeoGS
Дельта С, Компаньон 2, Ленинград 48
Ремонт: Вектор 06ц, Пентагон128
Jons, Автор загрузчика работает над проблемой.
Про RPM - у меня не работают именно тесты, работа с файлами - без проблем.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)