Попалась мне тут ваша плата. Вопрос. Распиновка системного разъёма есть? Как его к вв55 цеплять? Комп кр-03. Плату собрал прошил. Файлы для sd карты Алексея Морозова подойдут?
Спасибо
Вид для печати
Так как платка была изначально задумана как раз под 86RK_SRAM, то и распиновку искать тут: http://radio86rk.pbworks.com/w/file/...K-SRAM-SCH.pdf
Конечно, ибо это его проект, схема та же, я всего лишь платку развел и с 3.3В уровнями чуток иначе решил вопрос.
Так понятней? :)
http://i.piccy_.info/i9/28176208d57d..._11_31_800.jpghttp://i.piccy_.info/a3/2019-06-05-1...00x370-r/i.gif
ЗЫ: чтоб прочитать названия сигналов, нужно кликнуть на ссылку и открыть картинку в максимальном разрешении.
Обратите внимание, что линии A8-A15 вообще не используются. Их не надо никуда паять.
Загрузчик занимает не более 128 байт, даже 7 бит адреса достаточно, но используем восемь.
Итого, выбираем любые два порта ВВ55. Один под ША, другой под ШД.
По умолчанию, порт А это данные, а порт В - адрес.
У меня подгорел порт В, и я переделала загрузчик на работу с портом C.
Запускается контроллер последовательными директивами R и G.
А можно немного переделать монитор, и сделать директиву U без параметров. Включаете РК, набираете U, и сразу видите оболочку с SD карты.
Что я и сделала. Кому интересно "how to", пишите.
Вот как раз на вашей платке, можно тоже воткнуть резисторы, вместо чипа согласования уровней. Паяются прямо на места, предназначенные для ножек микросхемы. :)
Так что, только два отличия от платы Алексея. Это расчет на производство (а не на ЛУТ), и компоненты smd.
Ах да, ну и разъем другой. Морозовский вариант сделан под переходник на Апогей.
Обе эти платы можно использовать на любой ПЭВМ, с интерфейсом ВВ55. Адаптировать нужно только программную часть (загрузчик, SDBIOS и оболочку).
У платки есть небольшой недостаток, держатель карты находится не на краю печатной платы.
Предполагается ведь, что это будет в закрытом корпусе. Доступ нужен только к держателю карты.
Можно вообще спроектировать держатель платки, чтобы был по дизайну как маленький дисковод.
Вот только не будет ли мешать углубленная позиция замене носителя (SD карты). Расстояние в 5мм не маленькое, при таких масштабах.
P. S. Судя по рисунку, ничто не мешает сдвинуть к краю держатель карты. Только видимо нужна программа, подходящая к исходникам.
cy6, how to по переделке монитора опубликуйте пожалуйста
Как сделать старт SD-BIOS автоматическим, по директиве монитора.
Исходные данные.
Имеем директиву U
Которая стартует в адреса портов В/В контроллера НГМД, что нам совершенно не надо.Код:CPI 055H ; U
JZ MF000
И имеем директиву R, для которой надо вручную вводить параметры.
Имеем, стартовый адрес загрузчика (boot.rk) 0h и длину, не превышающую 128 байт (0000 - 007F).
Задача.
По директиве U выполнить директиву R с параметрами 0,7F,0 ("R0,7F,0"), а также директиву G0.
Решение.
Чтобы сэкономить на команде старта, перемещаем блок старта в конец монитора, где по умолчанию неиспользуемые байты.
После адреса 0FFFFh счетчик команд (регистр PC) автоматически становится 0.Код:.DB 0FFH,0FFH
.END
Чтобы изыскать дополнительное место под вызов директивы R с параметрами, можно упаковать какие нибудь символьные данные, например, от директивы X.
Меняем вектор директивы U на адрес нашего кода.
Параметры для директивы R, нужно внести в регистры: HL - адрес начала загрузки в ПЗУ (у нас 0), BC - адрес начала загрузки в ОЗУ (у нас 0) и DE - длина блока данных (у нас 007Fh).Код:CPI 055H ; U - загрузка SD vixru
JZ MV001
ПЗУ (в нашем случае адаптер SD карты) подключается: порт А - шина данных, порт B - младший байт адреса и порт C - старший байт адреса.
В нашем случае, старший байт адреса всегда будет равен НУЛЮ, и на плате адаптера SD карты не используется.
Наш код в самом конце монитора (6 байт, вместо двух)
Добавка (3 байта) в начало кода подпрограммы исполнения директивы R, родной адрес старта которой 0FA68h.Код:MV001:
LXI H,0000H
CALL MFA68z
; .DB 0FFH,0FFH
.END
Также, нужно обеспечить содержимое регистра BC (= 0). Для этого применяется немного "магии вуду" (или можно потратить еще три байта).Код:MFA68z: LXI D,007FH
MFA68:
В мониторе, первой обрабатывается директива Х, в которой сохраняются все оригинальные значения регистров.
Второй обрабатывается наша директива U
Далее, идет блок кода, общий для всех остальных директив. После исполнения которого BC = 0 (адрес по умолчанию 0000h).Код:CPI 058H ; X
JZ MFFD3
CPI 055H ; U
JZ MF000
Наша задача, сдвинуть директиву U под этот блок кода. И тогда, на нее тоже будет действовать правило адреса по умолчанию.Код:PUSH PSW
CALL MF92C
LHLD M762B
MOV C,L
MOV B,H
LHLD M7629
XCHG
LHLD M7627
POP PSW
Если честно, то платка вообще разрабатывалась на скорую руку, автороутером :)
Вообще удивительно, что она работает, с нитками вместо линий питания :)))
Если кому-то надо, можно вообще переделать платку под microSD, сделать ее меньше раза в 1.5 так точно, с правильной разводкой и достаточным количеством крепежных отверстий :)
А исходники - под Autodesk Eagle, в любой современной бесплатной версии откроется и даст себя поредактировать :)
Тогда обратная совместимость пропадет, большую карту не вставить.
Большой слот для карты в ноутбуках, это пока что стандарт.
У меня давно мысли, что на ней нужен RESET и часы реального времени. В коммандере, время стоит никакое, часы точно нужны.
И, естественно, мега328 на борт, вместо меги8.
А еще, можно сделать симуляцию ROM-диска. :)