Ааааа! Мои глаза!!!1 Немедленно почитайте ГОСТ ЕСКД, или хотя-бы основные правила выполнения УГО! Краткий образец:
http://savepic.ru/10886295m.png
Вид для печати
Ааааа! Мои глаза!!!1 Немедленно почитайте ГОСТ ЕСКД, или хотя-бы основные правила выполнения УГО! Краткий образец:
http://savepic.ru/10886295m.png
Написать что ли "напряги воображение"? :rolleyes:
Пришли посмотреть что ты написал.
Навскидку, еще надо править загрузчик, которым грузишься: в MBR и в BOOT-секторе загрузчики вызывают подпрограмму Монитора F834 "чтение сектора", а вот уже загруженная система (выполнение которой как раз и начинается в BIOS2.MAC) все такие подпрограммы уже имеет в своем теле (те самые из BIOSIDE.MAC) и ей вызов F834 уже не нужен. Такой механизм существует с того времени, когда я начал пользоваться IDE - начальный загрузчик был встроенным в Монитор, соответственно была там и п/п чтения сектора, которая в штатный BOOT-сектор CP/M один хрен не помещалась. Т.е. невольно получалось как на больших машинах - BOOT-сектор читал через ПЗУ-BIOS. Были ПЗУ всех вариантов - для IDE, для SD разных схем (собственно, они и сейчас есть - ставишь такую и ОРДОС не нужна, сразу грузишься с IDE/SD)
Поэтому для Мониторов, которые не содержат п/п F834, но чтобы всё работало как задумано, была написана утилита MBOOT, которая п/п чтения сектора содержит в своем теле, и в прочитываемом через эту п/п MBR и BOOT-sector заменяет вызов F834 (который только там и используется) на адрес своей подпрограммы соответствующей тому с чего грузимся.
Соответственно, для ПРО есть 2 варианта: подправить ПЗУ F800 режима 128 (оно размещено в ROM1 и при запуске копируется в ОЗУ F800) чтобы там была подпрограмма F834 для чтения сектора, раз уж п/п чтения IDE как раз там и лежит, либо в режиме 128 из-под Ордос использовать MBOOT (тем более что РОМ-диск для этого не так уж и нужен), в который надо дописать режим (и подпрограмму) загрузки с авторской схемы IDE
Не ну вообще с дискеты пока систем загружаю. Ну систем светодиодиком мырг-мырг и пишет нот фоунд разделов. И всё, не монтирует.
Надо жешь системс подналадить, а уж потом на жёсткий лить. Ладно , глянешь , можь чего напортачил...)
Насколько помню, это было год назад, я эту прогу не дорабатывал, просто сделал BRU-ный файл, из .сом файла для загрузки его из ОРДОС прошки. Если речь об этом файле, то у меня контроллер с этой прогой не заработал, вернее программа зависала с заставкой на экране "анализ параметров диска подождите...".
В архиве находятся файлы, которые запускаются и работают в ОРДОС6.
Кстати, с установленным контроллером IDE и CF у меня не грузиться ОРДОС6, вынимаю CF ОРДОС6 загружается.
Это было 05.05.2015. Тогда и у меня программа зависала на этом же месте. Сейчас же диск определяется. Попробую с другими дисками.
Попробовал, у меня запускается и без контроллера и с ним.
Но вот если к контроллеру подключить винчестер, то загрузка зависает. Перед этим мигает светодиод обращения к нему. Это объяснимо, загрузчик ищет файлы конфигурации на винчестере, а их нет.
- - - Добавлено - - -
Вот еще интересный момент. Поставил винчестер с записанным на него образом uzix.ohi. Выходит нормальная таблица разделов, никаких залезаний на уже размеченную область.
Выходит читается нормально, а вот с записью проблемы?
И с тестом аналогично.
Там очень запросто и с математикой могут быть проблемы - тупо с вычислениями. Хотя бы оттого что оно не знает про LBA.
Чтобы не гадать, нужно написать простую утилиту - читающую, пишущую и просматривающую выбранный сектор. Такую, какая есть для варианта IDE на ВВ55 - test2sd$
И уже при её помощи: записал сектор - посмотрел что записалось. Записал образ на РС - прочитал на Орионе оттуда определенный сектор (с известным содержимым), сравнил.
Кстати да. Я помню в 2001м были такие казусы: приносят 486, там 130МБ сигейт. У меня Celeron 600MHz и мамка на тот момент свежая. Я подключаю винт к своему компу, выставляю CHS (автодетект или руками - пофигу), размечаю, накатываю DOS минимум файлов для запуска. Втыкаю обратно в 486 и нифига. При старте строчка непонятных символов и висяк. И только разметка под 486м с загрузкой от флопика решила проблему. Такое ощущение, что даже CHS у каждого свой был...
Ок. Пойду мучить.
..............
Не, что то не так. "Анализ параметров" висит и горит светодиод постоянно.
"Что эта сволочь там анализирует?" :)
Пока тут идет борьба с IDE курильщика, сделал небольшую фотосессию IDE нормального человека. :)
Что характерно, запустилось и корректно заработало с первого пуска (DIP-переключатель, перенесенный на доп. АП6 внутри панельки ВВ55 с выборкой через ЛЕ4+ЛН1=/RD||/P0||A1, сам IDE на ВВ55 D81, выбираемой сигналом /F600 вместо /P0), при этом не используются никакие платы расширения (использую микроромдиск из тела ROM2 откуда гружусь утилитой MBOOT$). Цена вопроса - 9 порезов, десятка три проводничков и полдня времени. Пока паял, придумал как их число уменьшить в будущем выпуске плат (можно развести еще проводников 6-7 если разъем IDE повернуть на 180град.). В-общем, кому интересно - пишите, расскажу как делается.
Следующий этап - загоню СР/М в ROM2 размером 1Мб (как на ревизии512, но одним чипом на основной плате раз уж под РОМ2 есть 32ногая панелька и резерв по битам расширения ПЗУ на порту ВВ55) - это попроще, уже потом буду допиливать поддержку ПРО-шного IDE (т.к. его сначала заэмулировать надо и собрать в железе).
Немного фоток:
Мы ещё поглядим у кого тут "IDE курильщика"! ;)
Хотел было тоже подобный вариант забацать, но чё то "борода" обескураживает. ;)
зы Кстати, возможно ли использование ПЗУ немного меньшего объёма для ROM-CPM, 512Кб, 256кб?
О как! Александр, а ты не пробовал загрузить образ альтаиры ,что я несколько выше выкладывал?
ps Быть может ATAAdressMODE тут замешан...
ззы Александр, а какие диски у тебя работают?
Паяю потихоньку IDE курильщика. Разобрать подписи резисторов и конденсаторов на монтажке (что шелкографию на реальной плате, что на сгенерированных дитрейсом картинках в архивах первых постов) - ослепнешь вглядываясь. А учитывая, что и по схеме трудно прикинуть (диптрейс так трассирует дорожки - впритык к чему-нить или с кучей переходов что хрен отследишь учитывая что микросхемы уже впаяны) задача становится нетривиальной. Есть ли монтажка в хорошем качестве с читаемыми подписями?
Вообще, мне не понравились печатки после автотрассировки диптрейса. Ни в коем случае не придираюсь, просто мой внутренний перфекционист так и подбивает выгрузить в СпринтЛайоут и перерисовать - с ровными отступами между дорожками, более оптимальным их размещением, чтобы паять не боясь за переходные отверстия, сидящие вплотную к паяемым отверстиям и т.п.
А диптрейс тут причем, или любая другая EDA?) Это всего лишь инструмент в руках конструктора. Как настроишь EDA так она и полетит. Тем более DipTrace далеко не простая система разработки.
Я вот для себя из современного EAGLE выбрал. Все достаточно просто, понятно и в то же время в ней при желании можно подымать достаточно сложные проекты. Хотя я начинал на P-CAD 4.5, но все там основательно забыл, да ставить монстров чтобы развести небольшую двух-стороннюю плату зачем? СпринтЛайоут для меня особняком стоит, назвать ее EDA рука не подымается;)
Напряг зрение и спаял контроллер IDE-RTC по шелкографии, часы на ВИ1 работают, определились в ОС как родные.
Вечером буду проверять IDE.
- - - Добавлено - - -
Итак, у меня тоже дублирование читаемых байт как и описывали тут. Резюмируя протекавшие тут дебаты, что надо сделать для устранения:
- кондер (220пф) к 37 контакту IDE (выборка, /CS1).
- (TRD or RD or A0 or A1 or A2) -> D10.11
по последнему имею вопросы - зачем складывать с RD если в сумме тех пяти сигналов уже есть TRD равный (A3 & /WR = A3 & RD). Т.е. получится ли обойтись 4или (его легче можно собрать на имеющихся свободных элементах платы, в отличие от 5или)
подаем на D10.11 по какой схеме - "английской", где на выв.11 подается CS1, или по "русской", где на этот же выв.11 подается RD1?
Про чередование байт ничего не могу сказать. У меня старший читался частично.
Значит, три диода повесил на ла4, там адрес, и сиё сложил с TRD на свободном ЛЛ1 (8,9,10), TRD там рядышком (ИД4 под ЛЛ1).
И на 11 ногу Ир23... Но мне кацца, зря всё это, надо развязать /Cs1 выборка-защёлка, и кондёр на выборку..
Но опять же, сиё лечит не чередование дублируемых(вот этого не знаю точно) байт.
ps. Кстати,по часам. Часы в Альтаире работают отлично, в Паверкоммандере-нет! И ордосовскими утилитами читается и устанавливается другое время (альтаировское портится).
https://drive.google.com/open?id=1dA...AbFE6OHfDyqdXg
https://drive.google.com/open?id=1cY...wfPAKdUI4TAdfg
Фоты ,если что.
зы короче, попробуй выборку CS IDE пустить через цепочку. Там несколько свободных элементов. Элемента 2-3 думаю надобно.
Потому что с системного разъема приходит не комбинированный RD/nWR (1 - чтение, 0 - запись), а раздельные nRD, nWR, nIORQ. Проц "сглатывает" младший байт с IDE по снятию (т.е. положительный фронт) nRD (и IDE отпускает шину) до снятия nIORQ, а nWR - в единице. И только по снятию nIORQ еще и с задержкой через D1, D2.1, D5.2 в D10 хз что пишется (IDE уже отпустил шину)...
Но! Это про чтение старшего байта данных.
Про задвоение - хз, нонсенс.
Еще хочу уточнить: задвоение только на CF, только на HDD, или и там и там, и как этот же девайс фурычит на PC?
А попробуйте в Мониторе прямое чтение/запись портов: не только регистр данных IDE, но и другие регистры. Есть задвоение?
- - - Добавлено - - -
Не видел такой схемы... Где она?
У меня CF. HDD под эксперименты пока нет. Разные носители быстро не попробуешь: далеко не каждая CF согласна работать в таких упрощенных контроллерах. С Монитором быстро не попробую - ухожу в отпуск вотпрямзавтра (уезжаю от стоянки орионов), и надо дела доделать не относящиеся к хобби, но требующие кучу времени.
В третьем посте от начала треда. Александр уже поправил.
Понимаю. Дело во времянках (в моем варианте получится работа по срезу сигнала IORQ, т.е. как оно и есть сейчас, как я понимаю). Схема 5ИЛИ на имеющихся свободных элементах (потому что не охота ставить дополнительные, и не охота на диодах) получится такой (см. ниже)?
- - - Добавлено - - -
Также, то, что /RES на IDE приходит непосредственно от системного /RES - это недостаточно. Он по ИЛИ должен приходить еще и от какого-нибудь порта. Наиболее просто (чтобы не выделять для этого новый порт и использовать готовые выборки со схемы) - использовать какой-нить из существующих портов в текущем виде работающих на только чтение. Записью в этот порт активировать сигнал /RES для IDE через взведение дополнительного триггера, а чтение этого порта (и системный RESET) пускай этот триггер (и сигнал /RES для IDE) всегда сбрасывают. Таким образом со старым ПО будет совместимо, а новое ПО сможет сбросом IDE управлять.
Это объяснимо. В Альтаир-ДОС 512ВИ1 программируется для ведения счета в двоичном формате, в Поверкоммандере в двоично-десятичном. Чтобы везде было одинаково надо патчить коммандер и переписывать утилитку для настройки часов.
Я пробовал только с СF картами. Проверил имеющиеся в наличии карты. Из 5 CF карт 2-е ведут себя странно. На карте 256Мб при чтении идет задвоение, на карте 8Гб вообще всегда читаются только первые два байта из MBR. С 512Мб и 2Гб картами все ОК. И что интересно, все эти карты отлично работают с IDE интерфейсом на ВВ55 и на РС. Никаких глюков не наблюдается.
В-общем, фирменный CF Kingston 1Gb работает только в схеме IDE на ВВ55 (т.е. читается без дублирования).
А вот некий CF Digitex 64MB, купленный 8 лет назад по случаю в Ашане за 49 рублей, работает в обоих контроллерах (читается без дублирования).
Интересно с чем это может быть связано.
Тут вообще все странно. Поддержу Error404, схема курильщика. Как такое на свет показывать (публиковать, офицально).
Все купленные СF работают в BeerIDE (MSX).
- - - Добавлено - - -
И вообще тут кто-то опубликует снятую диаграмму ходьбы 8-битным анализатор уровня. Хватит заниматься мазохизмом – время.
- - - Добавлено - - -
Может это прокатывало в 90-х. У СF - очень упрощенный интерфейс IDE, аппаратный (согласование уровней обмена. аля ТТЛ-КМОС или чего там, я там свечку не держал). Врубал СФ на прямую на шлейф 33/66 или 66/33. СФ заявила, я UDMA 66 номер 4. Не тянет. А должна. Забил. Но это не отменяет IDE-курильщика;)
По логике работы твоя схема подходит, nWriteHighByte=(nRD or nTRD or A0 or A1 or A2). Но! Тут по критичному сигналу nRD будет задержка в 2 вентиля!
В случае, если вешаем вторым этажом ЛЛ1, nWriteHighByte=(nRD or (nTRD or (A2 or (A1 or A0)))), задержка будет в 1 вентиль!
С nRES, думаю, заморачиваться не стоит. На PC же все нормально. Ну а если все-таки так уж нужно в начале обязательно резетить, то программный резет в IDE есть.
Судя по откликам работы различных CF/HDD на этом контроллере, на ВВ55, на PC, то выходит, что с этим контроллером получаются слишком короткие циклы обращения и поэтому задвоение...
Просьба к тем, кто пробовал разные девайсы, что на них нарисовано (на многих CF рисуют типа 90x, 133x).
А также повторю просьбу к тем, у кого реальные железки: в Мониторе двойное, тройное, последовательное по одному и тому же адресу прямое чтение/запись портов покажите и по регистру данных и по всем регистрам IDE.
В моем случае скорость не обозначена ни на одном CF. Две СF что запустились (1Gb 2008 года выпуска только в ВВ55, 64М выпуска возможно еще ранее - норм. в обоих вариантах IDE), третью CF (китайский нонейм) 4Gb выпуска 2016 пробовал - на Орионе нигде не пошла, но на РС нормально.
Если поможете пошагово показать в какой порт и какие данные записывать/считывать сделаю такой тест. Сам что-то никак не соображу в какой последовательности, в какие порты писать/читать данные.
На пару дней обещали одолжить вот такой логический анализатор. http://ru.aliexpress.com/item/Free-s...e-334f4349e93e
Какие сигналы смотреть? С таким девайсом никогда не работал, попробую разобраться как им пользоваться.
У меня такие CF карты.
Вот, что удалось записать логическим анализатором. Может это как то прояснит ситуацию ... Смотреть можно в программе Saleae Logic версии 1.2.10, в более ранних версиях файлы не откроются.
В тесте поверхности HDD вываливается ошибка на 64 секторе.
В общем разобрался с чтением старшего байта. Дело было не в бобине...
/Cs1 оказался не при чём, /BRD- вот где была загвоздка!
Напаял на него (прям к ногам ир22 12-10 ) кондей 2,2нф и всё стало читать.
Прежние доработки убрал, т.е. всё восстановил как было, ну, резистивную сборочку оставил...
Всё равно Альтаир не работает! И FDISK всё анализирует бесконечно и с другими HDD.
Почему-то прога постоянно зависала на 24МГц, а на 500КГц все сработало. Видимо, что-то не так делал. У меня нет опыта работы с этой программой, поэтому немного "туплю" пока.
Вот сделал на 24МГц (файл размером 28 МГб)
У меня 8 канальный анализатор. Какие сигналы желательно смотреть?
Дмитрий2012, попробуйте сначала проверить лог. анализатор на тех сигналах, которые вам понятны.
С 5 $ китайской поделкой не так просто справится/привыкнуть. Сам задумываюсь подобную дешевую штуку купить для старта. А там уже решать, как действовать дальше.
Дмитрий2012 прислал новые замеры в личку. Ну здесь тоже вывеси для всех.
http://photo.qip.ru/photo/mpsz/20071.../214706928.gif
Как я и говорил, без заORивания для nWriteHighByte, после снятия nWR имеем фантомный nTRD и удлиненный, но "пустой" nCS1.
http://photo.qip.ru/photo/mpsz/20071.../214706929.gif
А здесь мы видим запись в память младшего и старшего байтов после чтения регистра данных. Но вот ширина импульсов nCS1 и nRD всего ~540 нс кажется мне маловата... Выходит, какие-то CF, в частности старые, "проглатывают" это и работают, а более новые - капризные, им шире импульс подавай...
конечно, вот последний вариант https://drive.google.com/file/d/0B7x...ew?usp=sharing
Вот они, грабли в полной красе. Переключение направления не отключаемого буфера, который рассчитан "продавливать" большую нагрузку, в момент защелкивания данных. Замечу, что не каждое обращение его вызывает:
http://savepic.ru/11018485.png
Это, кстати, возникает из-за задержек в логике, и, скорее всего, зависит от конкретно собранного экземпляра как самого Ориона, так и контроллера.
Да какой вопрос у человека (выходит за рамки стандартной задачи), такой и ответ. Таки надо курить тут ДШ:v2_cheer:
п.с (не знаю зачем HardWareMan, тут ответил) мой пост к нашей теме не относится.
- - - Добавлено - - -
Может настроение плохое. Никто тут не кому не обязан разжёвывать закон Ома, Кирхгофа, тактов (циклов) ВМ80, Z80 и подобных простых вещей в рамках тематики форума.
Короче, надо еще кондер впаять! Куда нибудь...