а почему не собрали?
а почему не собрали?
Хочу напомнить ещё о таком факте: при установке режима ВВ55, все порты, которые конфигурируются на вывод, устанавливаются в ноль. Это касается также и порта С. Таким образом, управляющие биты должны активироваться еденицей, т.е. для инверсных сигналов нужно ставить инверторы. Как минимум - CS. А чтобы после сброса (когда все порты будут на ввод) он случайно не активировался, его надо притянуть к нулю.
hantarex, не всегда наши желания совпадают с возможностями.
b2m, я уже думал про это. Но ведь схема с msx и вроде работает? Или нет?
Попробовал на двоечке свой старый исходник. Работает, винты и CF определяются без проблем. Перенес на ПК и опять не пашет. Была мысль врезать регистр ИР23 между портом C и винтом, чтобы не терять управляющие сигналы. Но так прикинул: схема лишь на одну микросхему экономичнее векторовской, а гемороя с программированием на порядок больше, что отрицательно сказывается на размере кода. Начну-ка я завтра векторную схему собирать. Она хотя бы рабочая и проще будет код отладить, а то не знаю на что и грешить, толи в схеме проблема, толи в коде где-то запутался.
Кстати, схемка, что выложил, малость некорректна. Инверторы на IOR и IOW не нужны. Исправил аттач в том посте. Теперь порты полностью соответствуют вектору.
Собрал векторную схему. Пока просто идентификацию устройств попробовал:
Первый - это CF на 128Мб от фотика. Второй - древний винт IBM, на 171 Мб. А вот винт на 1Гб не откликается.
"Программа" на бейсике, так как у ассемблерной при приеме почему то идут пропуски данных. Возможно из-за сборки "на коленке" идут сильные помехи и шумы, усиливающиеся по мере нарастания скорости обмена. Пока ничего кроме как вставить задержки в голову не приходит.
Поначалу вообще без кондеров собрал. Даже на васике шли пропуски данных при приеме. С кондерами воть запустилось
ЗЫ: а схема с ВВ55 оказывается популярна у буржуинов на микроконтроллерах. И таки да, там между ВВ55 и управляющими линиями винта стоят инверторы! b2m, был прав на счет обнуления линий при смене режима ВВ55.
Опрос HDD из бейсика - прикольно. На векторе я разве что головами fdd двигал из под бейсика.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
DemonId7, а где найти описание полей для ЕСh? ну там, имя винта, колво головок/цилиндров/секторов?
Можно в спецификации посмотреть: ATA-3
Или у Кулакова в "Программирование на аппаратном уровне" и "Программирование дисковых подсистем". Там же есть хорошее описание MBR и различных типов FAT.
---------- Post added at 13:16 ---------- Previous post was at 13:04 ----------
Кстати, тот редкий случай, когда васик оказался полезней асма
Уже не знал что думать, почему винт выдает липу. От нечего делать прямо на "суре" накрапал простой опрос портов 50h-57h, да вывод на экран. Гляжу, значения вроде нормальные. Послал команду out &H57, &HEC и считал несколько десятков слов из 50h и 58h. Вроде совпадают с ожидаемыми, только почему то явно не на своих местах, то есть как будто часть данных пропущена. Так и допер, что дело в помехах и что нужно поставить кондеров по питанию микрух. И ведь помогло!
Сейчас вот думаю, может платку развести под это дело? А затем уж к подпрограммам чтения/записи переходить?
давайте, разводите!
а я еще с ВВ55 поковыряюсь.
Работает четко и очень быстро
Читает без проблем. Для примера сфоткал считанные описатели разделов пары винтов:
Запись пока не пробовал, но думаю и с ней проблем не будет. Пора прикидывать дальнейшие шаги. Какие будут предложения? Встраивать ОС в ПЗУ? Ставить недоступную для программ ОЗУ? FAT нужен? Есть желающие ковырять CP/M? Или хотя бы объяснить по русски, где и что нужно изменять, то есть структуру этой ОС в двух словах.
Кстати, среди кодов разделов жеских дисков есть код идентифицирующий CP/M. Выходит она уже была на винтах?
Последний раз редактировалось DemonId7; 22.04.2014 в 21:29.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)