Не понял. Почему надо начинать с эмулятора? Вы с Орионом работаете только виртуально и не имеете "живого" железа?
Вид для печати
Реал (Орион128 образца 1990г) у меня сейчас в другом городе, где я бываю раз в месяц на выходные. И он в настоящее время поломан (работает 2 минуты, прогревается, и перестает работать) - надо разбираться. И я уже привык весь программинг вести в эмуляторе - там хоть какие-то возможности для отладки есть, и можно немного времени на работе урвать (реал туда никак не притащишь).
-
Сейчас планирую сначала сделать эмуляцию SD, а потом устроить "очную ставку" коду BIOS CPM для SD, взятому с n8vem, и моему эмулятору - проверить поймут ли они друг друга. :)
По какой схеме будем подключать SD? По MREQ или IORQ, адрес порта, биты порта? Порт должен работать и на запись, и на чтение. В n8vem подключено примерно так (используются битики порта RTC - там последовательный RTC ds1302, ему самому не надо много бит в порту):
Только одна проблема: в n8VEM в этой схеме выход регистра U18 постоянно включен (/OE=0, Z-состояние не используется - на схеме я забыл нарисовать ножку 1 регистра на землю), а при чтении с шины DATA данные передаются через отдельный регистр, который уже работает на шине CPU (в неактивном состоянии переводит свои выходы в Z-состояние). По хорошему, в Орионе надо делать 3 бита регистра на выход (в отдельной мсх, например на 1533ТМ8) и один бит на вход (на любом регистре с Z-состоянием) - чтобы управлять Z-состоянием этого бита (сигналом /RD) независимо от 1533ТМ8.
-
Также, я не понял логику работы ключа U5A: din (MISO) по логике работы SPI должен всегда записываться в бит нашего порта (бит пишем (MOSI), и тут же бит читаем (MISO)), а не только когда CPU читает из этого порта (и активен сигнал /RD), иначе потеряем "вытесняемые" из slave-SPI-устройства биты. Но сделано в n8VEM почему-то именно так. Или я ошибаюсь?
Наверное D0-D6 это ШД (было бы логично). Q3-Q7 похоже идут на еще один буфер (кто-то же должен обеспечить перевод в Z-состояние).
Там схема раскидана по куче ПДФ-ников, замучаешься искать. Смотреть надо тут:
http://n8vem-sbc.pbworks.com/f/Printing%2Bsd-sch.pdf
и тут:
http://n8vem-sbc.pbworks.com/f/Print...totype-sch.pdf
и еще в каком-то ПДФ-нике, где "Q3-Q7 похоже идут на еще один буфер " (не нашел, т.к. вроде идея и так почти понятна).
Это который 74LS125 (555лп8), возможно я не совсем правильно обозвал его ключем, просто логика его в этой схема такая: управлять - пишется или нет din (MISO) в D7 регистра.
:) я понимаю, но на схеме U5C. Ты его имел ввиду, говоря о U5A?
---------- Post added at 20:44 ---------- Previous post was at 20:41 ----------
:) я не просто так спрашиваю.. это может и не быть шиной данных процессора.. по крайней мере из приведённого фрагмента этого однозначно не определить.
---------- Post added at 20:51 ---------- Previous post was at 20:44 ----------
а вот это не факт.. эти разряды могут быть однонаправленными и просто идти на входы какого-нибудь устройства. А вот если на входах D0-D7 U18 действительно шина данных процессора, то получается что сигнал MISO идёт через шинник U5C на эту шину, и читается в цикле RD с D7 шины. Т.е. всё происходит судя по всему так как ты описал выше: записывается MOSI, и тут же, без смены адреса читается MISO.
AlexBel off Igor_t on
А зачем такой страшный метод доступа к карте ? насколько я понимаю все равно это все будет укладыватся в плисину , а раз так то SPI как я уже говорил реализуется внутрях плиски легко и просто по сути своей это сдвиговый регистр с паралельной загрузкой и парой тригеров в качестве условия начала передачи и флаг окончания оной. Тогда резко упрощается написание драйвера работы с картой. и у меня есть вопрос к Сергею ... а скажи в SD остался бут сектор ? его под начальный загрузчик пользовать можно ? чутку поясню , это к той теме что я озвучивал по поводу прогрузки из последовательной пзухи SPI в озу железом плисины , если мне неизменяет склероз то бут сектор всегда был самым первым на диске , в случае применения SD карты и взможности в ее 0 сектор заатать загрузчик то от пзу можно отказатся вообще ! тоесть плисина при старте может по SPI сливать содержимое этого сектора в срам и заставить проц выполнить то что было слито .
Igor_t off