Ок, проверю код на предмет зажигания лампочек.
Вид для печати
Ок, проверю код на предмет зажигания лампочек.
Я просто оставлю тут ссылку на свой пост от 23 февраля 2018 года.
Ладно. Я вроде нашёл где должны включаться светодиоды в лоадере. Вводимые строки я закомментировал:
Цитата:
; Инит карты памяти
InitMemCard push hl
push de
push bc
call WaitASecond
ld a, #10 ; Низкая скорость, без карты
or #04 ; вкл. только кр. светодиод
; or #c0 ; вкл. и кр. и зел. светодиодов
ld (SPICtrl), a
...
Цитата:
...
; Теперь, посылаем первую команду
ld a, #10 ; Выберем карту
or #04 ; вкл. зел. светодиода
; or #0c ; вкл. и зел. и кр. светодиодов
or #01 ; выбор карты
ld (SPICtrl), a
...
Цитата:
InitMemDone call WaitASecond ; Подождем
ld a, b ; Результат назад
and #7f ; Выделим
cp #00 ; OK?
jp nz, InitMemNext ; Нет - повторим
ld a, #12 ; вкл. только высокой скорости
; ld a, #16 ; вкл. высокой скорости, кр. светодиода
ld (SPICtrl), a
xor a
jp InitMemExit
Цитата:
DiskReadSector push hl
push de
push bc
ld a, #10 ; Высокая скорость
or #04 ; вкл. зел. светодиода
; or #0c ; вкл. и зел. и кр. светодиодов
or #02 ; высокая скорость
or #01 ; выбор карты
ld (SPICtrl), a
...
Цитата:
DiskReadExit push af
ld a, #10 ; Высокая скорость
or #02 ; только высокая скорость
; or #0a ; высокая скорость, вкл. зел. светодиода
ld (SPICtrl), a
...
Раз уж на СпециалистеМХ2 заработал SD интерфейс, то пора и в МХ режиме получить работу с SD картой! SDOS я с самого начала начал дорабатывать именно для Специалиста.
Во вложении актуальная версия SDOS_V8.4. Поддерживается работа с SDHC картами, запуск как RKX так и RKS файлов, можно перекидывать файлы с SD на RAMдиск МХа и обратно и можно просто читать\писать области памяти c\на SD.
Для запуска RKS файлов нужно в папке с этими файлами положить файл M2_C000.MON. Подробности о SDOS здесь.
вложение здесь удалил, дальше есть новый файл
PVV, точно это заработает? Все программы, которые ты давал на пробу на Специалисте МХ2 не работали.
Завтра попробую изменённый лоадер 6 на предмет загорания светодиодов, а также новую версию SDOS от PVV. На эмуляторе последняя прекрасно работает, а вот как она поведёт себя на реальном МХ2?
Всё превосходно. SDOS работает. Светодиод у меня светится один - зелёный. Кто повторит мой тест (прошьёт) ПЗУ из атача пусть обратит внимание на то загорается ли красный светодиод, я грешу на свой. Файл spets_mx2_sd.rar - прошивка для Специалиста_МХ2, файл sd_card.rar - файлы для записи на SD карту.
Светодиод загорается только зелёный.
SDOS увидел и отобразил содержимое СД-карты только один раз при самом первом включении.
При этом при работе с СД-картой зелёный светодиод горел всё время.
При всех последующих запусках SDOS, SDOS карту не видел и писал NO FILE(S).
При этом при запуске SDOS всегда загорается и остатся гореть зелёный светодиод.
Да в первый раз я загрузил и запустил из под SDOS одну игру.
После этого SDOS перестал работать ...
Возможно SDOS записал на диск к.л. INI-файл или изменил на СД-карте к.л. другой файл?
По директиве U карта видется все разы и светодиод мигает только при загрузке , а затем после загрузки тухнет.
Файловый менеджер по U а затем GD000 запускается все разы и видет СД-карту всегда ...
Да, автоматический запуск файлового менеждера только по директиве U (без набора GD000) также так и не заработал.
SDOS со светодиодами специально не работает, я это не смотрел.
Ни каких записей и ini файлов SDOS не делает.
1. Проверка с другой картой, отформатировать текущую карту заново, перезаписать файлы попытки предпринимались? (то, что работает Loader и браузер ничего не значит, SDOS использует совершенно другой код)
2. Что пишет SDOS при запуске полностью?
3. Какой файл ПЗУ использовался, что выкладывал я или последний от fifan_а?
Чтобы понять, что происходит нужна обратная связь и развернутый ответ.
Использую последнюю прошивку от fifan.
После большой паузы, после повторного включения СД-карта начала снова видется из под SDOS.
Удалось просмотреть каталог СД карты раза 3 и запустить 3 игры.
После этого СД-карта снова перестала видется.
Когда всё работало выводило сначала
DV8.4 затем FAT16, затем по DIR можно было посмотреть каталог.
Когда карта перестаёт видется, пишет DV8.4 затем D_V2+ либо D_V2, затем по DIR пишет NO FILE(S)
либо просто DV8.4, затем по DIR пишет NO FILE(S).
По директиве U загрузчик работает всегда и карта видется всегда.
Вдобавок у меня в режиме Монитора и режиме SDOS не отображается первый символ в каждой строке.
Возможно он находится в невидимой области экрана.
В режиме МХ в RAMFOS вроде отображаются все символы.
Что можно сделать чтобы сместить строку на один символ?
У меня такой глюк, описанный roma с зависанием SDOS, тоже был. Так же шапка программы не пишется полностью и потом на DIR выводится NO FILES. Сбросил комп всё заработало.
На счёт первого символа невидимого на экране. А может вообще всё изображение срезается слева на один символ? У меня такое было. В загруженном браузере от меня это видно. Просто VGA монитор так отрезает. Я сделал автоподстройку монитора и весь экран показался.
Красный светодиод - снова прошустрю код. Да поддержка светодиодов сделана только в лоадере и браузере.
Ситуация похожа на нестыковки времянки в работе SD интерфейса и SDOS вот и идет работа на грани. SDOS не использует анализ бита завершения передачи BUSY. На какой скорости сейчас работает SD интерфейс, пониженная и полная?
Чуть позже выложу сборку SDOS с анализом бита завершения, нужно только узнать в какой позиции этот бит? Так как были отличия (посмотрел сейчас - так и осталось разночтения, fifan, ну исправь же это наконец!) в описании его размещения на сайте fifan_а и реальной реализацией в плис, и на чем в конце концов сошлись я не в курсе.
Еще, на какой скорости работает ВМ80 2 или 2.5Мгц?
У меня установлена ПЛИС EPM7032SLC44 с прошивкой http://zx-pk.ru/threads/27418-rabota...l=1#post950247
Продолжу гадание на кофейной гуще, авось попаду...Для кого вопросы задаю?
Вот вариант SDOS с ожиданием флага BUSY в старшем бите (0х80): Вложение 64623
Напомню, что в SDOS по команде I можно запустить повторную инициализацию карты.
Нет, лучше не стало. Директива I тоже не помогает. Хотя по директиве U bois.bin загружается.
Пробовал и с другой СД-картой.
- - - Добавлено - - -
Хотя у меня сам компьютер работает не очень стабильно...
Стартует не с первого раза, обычно раза с 3-4.
Вios.bin и файловый менеждер по директиве U без ошибки загружаются 8 из 10 раз.
А вот программы с СД-карты из файлового менеджера без ошибки загружаются очень редко ...
- - - Добавлено - - -
ТЕСТ-МХ и тест памяти из РОМ-диска загружаются всегда без ошибок и могут тестрировать пямять часами без всяких ошибок ...
Но у меня всё равно ощущение что что то с компьютером не в порядке ...
Я записывал в прошивку именно SDOS, который ты последний раз выкладывал. Какой он версии? А что она где-то указывается?
roma, сначала нужно добиться нормальной работы самого компьютера. У меня почти всегда загружается SDOS, был может быть один всего лишь сбой. На счёт загрузки лоадера по директиве U вопросы не к PVV. Он (лоадер) у меня загружается всегда.
При старте выводится надпись SDV8.4 это и есть версия SDOS v8.4.
Для версии с проверкой флага занятости выводится SDV8.4A - я не уверен в правильности позиции бита этого флага...
на 100% поддерживаю, а то может мы ищем проблему, которой нет...
При проверке в b2m браузер грузит далеко не все файлы, и более того, я делал SDOS.RKS и пытался его загрузить, и не смог, начал разбираться, и выяснил, что браузер из 2.6КБ SDOSа загружает только 2КБ. Тогда я сделал усеченную версию SDOS.RKS меньше 2КБ, загрузил ее, а уже из нее загрузил полную версию, так все заработало. Так что браузер еще очень сырой, его надо дорабатывать.
Повторю:
это не праздный вопрос, я когда экспериментировал со схемой МХ2 на макетке нормальной работы в режиме 2Мгц добиться не смог, только 2.5.
Далее новый вопрос - как выполнено согласование из 5В в 3.3В для SD карты, на резисторах? У меня с таким резисторным преобразованием были проблемы, тоже неустойчиво определялась и работала карта, и я подбирал соотношение резисторов, fifan мне даже вопрос задавал, почему не одинаковые номиналы стоят в этих цепях на схеме http://zx-pk.ru/attachment.php?attac...8&d=1520701260.
Так я давно писал что компьютер у меня стартует с 3-4 раза и просто сброс не помогает. Приходится включать выключать по 3-4 раза.
И это только с ВМ80. С Z80 стартует всегда с первого раза. Осциллограммы фронтов и спадов на ШД и ША тоже кривые.
Видимо к.л. регистры открываются или закрываются с запозданием, т.е. в компьютере различные части не синхронизированы и компьютер очень критичен к установленным МС.
Поэтому вопрос к авторам: где смотреть и что может быть причина? Какие части и блоки не синхронизированы?
И по своему опыту я заметил что со всем новоделом (за исключением редких моделей) всегда приходится "шаманить" чтобы компьютер стабильно заработал. На этой плате МХ2 итак куча шин питания у меня продублированы проводниками, придётся видимо "шаманить" дальше ...
Хотя все тесты памяти (3 штуки) работают часами без единой ошибки !
И bios.bin с файловым менеджером по директиве U загружается 8-9 из 10 раз без ошибок !
А вот SDOS без ошибки загружается только после первого включения ...
У меня подключен внешний СД-кардреадер со своим стабилизатором и резисторами.
Касательно Специалиста МХ2. Плату его я разводил по готовой схеме. Большинство ошибок на плате были не по моей вене. Шину питания не очень удачно развёл - сам потом проводники кидал в разные части платы. Но у меня работает более-менее стабильно. У меня есть узкое место - панелька под ПЗУ - износились её контакты - много микросхем снимались/ставились в неё. Адаптер PS/2 клавиатуры вставляется в панельку ВВ55 - иногда неконтакт из-за перекоса адаптера.
По SDOS. Сейчас хоть работает практически всегда, ранее не одна версия не работала. Автор не анализирует вставку карты, не управляет светодиодами, но это не важно.
И гадать не надо. Он же указал на прошивку, а там:
Что сразу не соответствует твоим запросам. Алсо:Код:assign Dat[7:0] = (~nCS & ~nRD) ? (Adr) ? {~nINS,BUSY,2'h0,Ctrl[3:0]} : Data[7:0] : 8'hZZ;
Я его просил еще месяц назад, а воз и ныне там, хотя меня он тыкал палочкой на предмет лампочек. Актуальный проект соответствует этому:
Придерживайтесь в своем коде только этой информации.Код:RD WR RES
D7 INS x x
D6 BSY x x
D5 0 x x
D4 0 x x
D3 GRN GRN 0
D2 RED RED 0
D1 SPD SPD 0
D0 SEL SEL 0
INS: 0 - пусто, 1 - вставлена карта
BSY: 0 - готов, 1 - занят сдвигом
GRN: 0 - выключен, 1 - горит зеленый LED
RED: 0 - выключен, 1 - горит красный LED
SPD: 0 - низкая скорость, 1 - высокая скорость
SEL: 0 - карта не выбрана, 1 - карта выбрана
Ну не понимаю я vhdl или что это за язык, с ПЛИСами я только в схемнов вводе немного работал.
я тоже на это больше года назад указывал
Спасибо, именно это и нужно! Очень бы хотелось, что бы fifan эту информацию у себя на сайте разместил, и прошивку плис в схемном вводе соответствующую этому описанию сделал, а то в куче страниц этой ветки инфа затеряется и опять будут вопросы.
Обновленная версия SDOS с правильным BUSY будет не раньше чем завтра. Однако не думаю, что у roma проблема с этим флагом и обновленная версия поможет, здесь явные аппаратные проблемы, которые программным способом не решить, но попробовать надо.
Я тут попробовал Loader_ом загрузить свой монитор, заменив BIOS.BIN, и ничего не получилось, похоже, что Loader_v6 не включает std режим или еще что то. Задумка же была грузить любые мониторы?
Т.е., ты хотел сказать, что это я ему указывал на ошибки год назад?
Схемного ввода нет и не будет. Но можно вывесить RTL, Q13+ умеет его делать красиво.
Он грузит по адресу C000H код размером вплоть до EFFFH (до 12КБ, дальше идут порты), потом кидает этот код в ОЗУ и прыгает на него:
Код отключает ПЗУ (бит D3 порта управления контроллером SD карты!) и запускает загруженный код. Код должен быть скомпилированным для работы с адреса C000H.Код:BDF8 AF XRA A
BDF9 32 11 F0 STA 0F011H
BDFC C3 00 00 JMP 0C000H
BDFF
Я прошивал плисину согласно приведённому вами двумя описанию. Лоадер ведь работает. На сайте я перепроверю, вроде тоже менял.
Лоадер грузит любые мониторы, вернее файл bios.bin. Я сколько этих файлов менял, всё работало. Мы же придерживаемся к железке (прошитая плис, сама схема) считывателя SD карты от HardWareMan'а. Почему лоадер у меня работает, я больше скажу мой браузер, который использует те же подпрограммы от лоадера тоже работает? Может дело в SDOS?
HardWareMan, а что по сбросу и стабильности моего компьютера можешь посоветовать, что смотреть, где копать?
Почему с Z80 стартует всегда с первого раза, а с ВМ80 с 3-4 раза, причём кнопка сброс не помогает, нужно включать-выключать компьютер ...
Раз тест памяти всегда работает железно - то проблема с портами или включением-отключением ПЗУ ?
Версия SDOS_V8.4B с исправленным обработчиком флага BUSY.
Вроде немного получше стало работать. Но у меня также через некоторое время после включения перестаёт видеть карту.
Да, у меня достаточно прилично греются две К1533АП6 (Д40 и Д43), нагреваются градусов до 50-55.
И как раз на их выводах сигналы ШД сильно искажены.
Хотя по схеме они одновременно не должны открываться так как стробируются сигналами RD и WR.
Хотя сигнал RD проходит через дополнительный инвертор на К155ЛА8. Возможно он даёт значительную задержку,
так что некоторое время открыты обе АП6 ?
Хотя к этой ШД подключены ещё ОЗУ и ПЗУ. Возможно и они засоряют ШД ?
- - - Добавлено - - -
Да, а сигналы RAM и ROM для ОЗУ и ПЗУ формируются и проходят через кучу элементов, и при их формировании задержка более значительная ...
Так что вопрос авторами схемы, где наиболее критичен тайминг? Что смотреть ?
- - - Добавлено - - -
Если у кого МС стоят на панельнках не могли бы поиграться с типами МС, чтобы определить какие узлы наиболее критичны к таймингу ?
Вот моя плата: https://c.radikal.ru/c33/1803/05/7e6253378a30.jpg
Применена 531 серия? Это что? У меня такой и не было никогда. Вся логика у меня 555 и 1533 серии и их зарубежные аналоги. АП6 у меня греются, не сильно.
Что было в наличи, то и поставил. На Ленинград1 хоть что ставь - в любой комбинации всегда будет железобетонно работать.
В других компьютерах у меня тоже практически всегда "салат" стоит, и ничего - всё работает.
Так что тут налицо ошибка в схемотехнике, где то что то не засинхронизировано, либо очень критично к таймингу и установленным МС.
Поэтому у меня и стартует с 3-4 раза, и с СД-картой работает очень нестабильно, хотя любой их 3х тестов памяти работает часами ...
Собрал прошивку так, что бы к SDOS был доступ из МОНИТОР-4, вызывать просто по кнопке Y
Подожди, подожди - дай под МХ попробовать.
Это к чему?
Сейчас еще раз проверил и МОНИТОР-1 и МОНИТОР-2 с сайта Loader v6 их не загружает. Раньше, в Loader_v5 все грузилось.
Хочу сначала проверить запуск файла SDDOS из под RAMFOSа.
Как понять не загружает? bios.bin - образ памяти Специалиста в режиме Std, размером до 12 кБайт. После загрузки лоадер передаёт управление по адресу C000, происходит запуск монитора. Может просто не происходит запуск монитора?
МОНИТОР запускается, появляется его приглашение, но при попытке перейти по F1->Enter к курсору и вводу команд он виснет или вообще появляется приглашение МОНИТОР-4...
Доработал SDOS для std режима МОНИТОР-4. Теперь SDOS может загружать файлы монитора, на подобии, как это делает Loader, но размер файла монитора не должен превышать 8КБ. Оставшиеся 4КБ это код самой SDOS, такой подход дает возможность из любого монитора выполнить GE000 и попасть в SDOS_v8.5.
Из МОНИТОР-4 запуск SDOS по Y.
Монитор запускать вводом полностью его имени и расширения (например, M2.MON ).
Во вложении еще и файлы мониторов, которые я пробовал.