Просмотр полной версии : Контроллер псевдо КМД+дисковод для УКНЦ (на SD карте)
Это он и есть. Вырабатывается внешней логикой, а не самим процессором.
Хорошо, добавлю "соплей" на ла3, где у меня формируется сигнал OE для 27с512. Я правильно понимаю, что в момент выбора адреса этот сигнал низкого уровня, во всех остальных случаях его состояние не имеет значение?
randomizer
24.07.2020, 23:19
7 в наименовании как раз номер страницы насколько я помню
нашел, расшифровывается как "Bank 7 Select" :v2_smile:
- - - Добавлено - - -
Я правильно понимаю, что в момент выбора адреса этот сигнал низкого уровня, во всех остальных случаях его состояние не имеет значение?
Он бывает активен (прижат к земле) только в фазе выдачи адреса.
- - - Добавлено - - -
Хорошо, добавлю "соплей" на ла3, где у меня формируется сигнал OE для 27с512.
BS7 не обязательно использовать, просто он упрощает детектор адреса.
AFZ, Hunta, randomizer, СПАСИБО!!! вы позволили убрать мой велосипед ввиде 155ла3, теперь он не нужен. Исправил недочет, все обошлось 1 соплей.
https://pic.maxiol.com/images2/1595622688.528788891.20200724233153.jpg
- - - Добавлено - - -
Кстати, как вам такое расположение кнопок?
- - - Добавлено - - -
BS7 не обязательно использовать, просто он упрощает детектор адреса.
Что-то не пойму, обязательно или нет. :)
- - - Добавлено - - -
А 2764 все равно не пойдет.. по таймингам..
Что-то не пойму, обязательно или нет
На самом деле, когда проц САМ генерирует BS7 - обязательно. Ибо можно налететь на проц с особенностями. Например - J11. Когда идёт обращение к странице в/в, то у него на A21-A13 не выставляются ВСЕ единицы, играет роль ТОЛЬКО BS7 и A12-A00. Именно поэтому у меня MY не заработал с KDJ11-A (точнее, с его советским аналогом), так как MY сам пытается дешифровать ПОЛНЫЙ адрес. Что, к тому же, создаёт проблемы и в других сценариях.
Но, безусловно, возможны варианты в ситуации, когда проц сам НЕ генерирует BS7. Хотя в этом случае если нет внешней схемы генерации этого сигнала - это будет как МИНИМУМ - не комильфо. Правильней будет - если он БУДЕТ и БУДЕТ ИСПОЛЬЗОВАТЬСЯ :)
randomizer
24.07.2020, 23:57
Что-то не пойму, обязательно или нет.
Если есть внешняя логика вырабатывающая BS7, то её можно продублировать. А можно и не дублировать :v2_smile:
Например в оригинальном контроллере, сигнал BS7 не использован.
Если есть внешняя логика вырабатывающая BS7, то её можно продублировать.
Я ее отчасти дублировал на ла3, но только как импульс от SYNC в момент выдачи адреса.
В общем, все слава Богу, обошлось малой кровью, на платах можно вообще ни чего не резать, не запаиваем ла3 и кидаем проводок с А6 на ОЕ 27С512.
Перенес код на STM32F401, который стоит дешевле. У него 64 кБ RAM и 84 МГц частота ядра. Работает.
Сравнил скорость загрузки операционки на моем контроллере и на оригинальном (1801ВП1-128) + Готек. На оригинальном контроллере 36 сек, на моем 25. Почему так не понимаю? Вроде 64 микросекунд выдерживаю четко. Единственная разница, что при перемещении головки я все-таки стартую с начала трека.
Да, есть не приятный косяк. По какой-то причине зависает при старте PAF-commander, хотя на оригинальном контроллере он запускается. Кроме него все остальное, что запускал, работает без проблем. Если кто подскажет в какую сторону копать, буду благодарен.
Дистрибутив RT-11 5.7, RT11SB с него, копирование cop/dev/ver идёт по 33 блока за одну операцию
По какой-то причине зависает при старте PAF-commander,
какой образ зависает конкретно?
он только с устройствами чьи драйвера заведомо в память загружены
(сам он не подгружает драйвера!!! - я вроде писал, вам про эту особенность!!!, драйвера в памяти будут, он устройства сам увидит!!!)
- - - Добавлено - - -
Кроме него все остальное, что запускал, работает без проблем
а игропакеты. где эртешки нету норм.?
какой образ зависает конкретно?
mz80_UKNC_pafcom.dsk
он только с устройствами чьи драйвера заведомо в память загружены
А разве драйвер 1801ВП1-128 в память не загружен? Тогда почему он с родным контроллером работает?
а игропакеты. где эртешки нету норм.?
Какие образы? Если скинете ссылку на них, я проверю.
А разве драйвер
прервите стартовый файл и сразу принудительно давайте посмотрим, что выдаёт SH?
и что там в стартовом файле TY STARTS.COM ?
Какие образы? Если скинете ссылку на них, я проверю.
игрушка1 и игрушка2 + отдельный вариант Knight - работают?
Без эртешки есть ещё вариант forht'а
- - - Добавлено - - -
По какой-то причине зависает при старте PAF-commander,
да! в ранних версиях UKNCBTL PAFCOM - работал только когда во всех кормашках были образы, Alex_K - описал это, как небольшая ошибка в эмуляции флопа - кажется что-то связанное с отв. на дискет
Какие образы? Если скинете ссылку на них, я проверю.
игрушка1 и игрушка2 + отдельный вариант Knight - работают?
Без эртешки есть ещё вариант forht'а
"Ссылку, сестра, ссылку! Ибо на острове - бардак!"
"Ссылку, сестра, ссылку! Ибо на острове - бардак!"
так все ссылки есть, сэр, давным давно, в шапке темы про игрушки.
- - - Добавлено - - -
+ forth какой то из этих http://archive.pdp-11.org.ru/ukdwk_archive/ukncbtlwebcomplekt/Forth/
;-)
так все ссылки есть, сэр, давным давно, в шапке темы про игрушки.
У тебя прямым текстом спросили ссылки.
Можно сказать, трижды уже.
Но хобот, как обычно, в стиле хобота.
- - - Добавлено - - -
так все ссылки есть, сэр, давным давно, в шапке темы про игрушки.
"Гнилая отмазка тянет на продолжение базара"
прервите стартовый файл и сразу принудительно давайте посмотрим, что выдаёт SH?
и что там в стартовом файле TY STARTS.COM ?
Да Паф не грузится даже если я его из-под другой дискеты запускаю.
- - - Добавлено - - -
игрушка1 и игрушка2 + отдельный вариант Knight
Где их взять? По вашей ссылке я их не нашел.
- - - Добавлено - - -
Нортон загзился, Паф нет, даже с того диска где: Disk_13.dsk = УК-НЦ> PAF Commander \ рабочий.
- - - Добавлено - - -
Без эртешки есть ещё вариант forht'а
Диски с Фортом у меня грузится не будут, тк они 840 кБ.
Нортон загзился, Паф нет, даже с того диска где: Disk_13.dsk = УК-НЦ> PAF Commander \ рабочий.
Для запуска PAF Com. "дискеты" должны быть хотя бы в двух "дисководах". Может, проблема с опросом готовности? Сейчас проверил запуск с вот этого диска: 73168 в эмуляторе - запускается. Попробуй.
Где их взять? По вашей ссылке я их не нашел.У Хобота, конечно, свалка еще та, тем не менее, в первой мессаге (https://zx-pk.ru/threads/20593-obsuzhdaem-igry-(uk-nts-dvk-bk-nemiga-i-dr-).html?p=564437&viewfull=1#post564437) про игрушки, в самом ее низу, есть две ссылки именно на это. Игрушка-1 (http://hobot.pdp-11.ru/ukdwk_archive/ukncbtlwebcomplekt/ITO90ITO91/ITO90.dsk) и Игрушка-2 (http://hobot.pdp-11.ru/ukdwk_archive/ukncbtlwebcomplekt/ITO90ITO91/ITO91.dsk)
В общем, попробовал я игрушки и Форт, игрушка-1 грузится меню выбора игры, Конан и Лоуд Раннер виснут сразу при загрузке, Самми и Рыцарь, грузятся до заставки, но что не нажимай на заставке и остаются. Игрушка-2, загружается меню, Пакмен не работает, Арканоид и Роад Файтер - работают. Форт вылетает с ошибкой в меню загрузки/отладки.
Короче, куда копать - не знаю.
В общем, попробовал я игрушки и Форт, игрушка-1 грузится меню выбора игры, Конан и Лоуд Раннер виснут сразу при загрузке, Самми и Рыцарь, грузятся до заставки, но что не нажимай на заставке и остаются. Игрушка-2, загружается меню, Пакмен не работает, Арканоид и Роад Файтер - работают. Форт вылетает с ошибкой в меню загрузки/отладки.
Короче, куда копать - не знаю.
Могу дать отладочную версию UKNCBTL с функцией трассировки флоппа - возможно, это поможет вам сравнить чтение диска в эмуляторе с чтением с вашего девайса.
Собственно, такую версию можно полуичить, просто скомпилив эмулятор в режиме Release (для обычных релизов я компилю в режиме Product).
Как пользоваться трассировкой:
1. Запускаем эмулятор, открываем отладочный режим Debug > Debug Views.
2. Доходим до интересующего вас места, останавливаем эмуляцию.
3. Включаем трассировку: команда "t" в отладочной консоли - должна дать ответ "Trace ON, trace flags 177777"
4. Запускаем эмуляцию, делаем что-то с диском.
5. Останавливаем эмуляцию, смотрим содержимое файла trace.log в папке где лежит .exe эмулятора.
6. Чтобы остановить трассировку, снова даём команду "t".
При запуске UKNCBTL файл trace.log очищается - осторожнее с этим, не потеряйте логи.
Полный набор команд трассировки:
t Tracing on/off to trace.log file
tXXXXXX Set tracing flags
tc Clear trace.log file
(В аттаче прикрепил версию эмулятора с трассировкой - просто то что сейчас было в папке эмулятора, включая недоделанные вещи.)
Могу дать отладочную версию UKNCBTL с функцией трассировки флоппа - возможно, это поможет вам сравнить чтение диска в эмуляторе с чтением с вашего девайса.
Собственно, такую версию можно полуичить, просто скомпилив эмулятор в режиме Release (для обычных релизов я компилю в режиме Product).
Спасибо!! Но у меня нет Виндовс, я собирал QtUkncBtl под линукс, там, я так понимаю, есть все функции отладки?
- - - Добавлено - - -
но на команду t выдал такой ответ:
PPU:174172> t
Unknown command.
- - - Добавлено - - -
Как в QT версии выставить режим Release?
ZPilot, в Qt-версии не добавлял трассировку, сорри. Попробуйте Win32-версию под WINE.
Коллеги, не поможете с кодом под УКНЦ. Мне нужен код который можно набрать в отладке ПП, чтоб он поочередно, на максимальной скорости, опрашивал порты 177130 и 132, желательно, чтоб отлавливал, что порт подвис. Есть подозрение, что контроллер что-то упускает.
Я тут психанул и.. записал игрушки (которые зависают после загрузки) в память микроконтроллера, убрал запись и вообще оптимизировал код как только можно. А толку все равно 0. Виснут падлюки :). Все-таки это не связано со скоростью вывода информации, что-то я упускаю. Например, сигнал RDY у меня всегда =0, тк по идее его ни кто не использует.
вот небольшой пример загрузки/зависания: https://cloud.mail.ru/public/2KPU/AuvTJT8bm
вот небольшой пример загрузки/зависания: https://cloud.mail.ru/public/2KPU/AuvTJT8bm
Пробел нажимал? Сейчас проверил на Готеке - на этой же заставке ждет пробела.
Пробел нажимал? Сейчас проверил на Готеке - на этой же заставке ждет пробела.
Да, конечно, нажимал. Висит на этой заставке.
Мда... Нужен комплексный тест для контроллера MZ и дискет в нем. Пробовать работоспособность контроллера запуском разных дисков - не вариант.
Я собрал новый контроллер (немного на "соплях" - но работает). Пока результат у меня тот же: системные диски RT или АДОС грузятся; диски ИТО грузятся до меню, но после выбора игры - виснут.
Очень нужна помощь в отладке контроллера КМД+дисковод!
Сначала - суть проблемы. Про зависание дисков ИТО уже писали. Дальше - интересней. Вот на этом (http://archive.pdp-11.org.ru/ukdwk_archive/ukncbtlwebcomplekt/TITUS_COLLECTION/Andrey_05_fix.dsk) диске есть файл MULTIC.DOC Если вывести его на экран TY - он зависнет на надписи MULTI C в самом начале. Я попробовал удалить перед ним файл на 3кб и сделать "сборку мусора" - файл стал выводить еще 3кб текста. Т.е. проблема в считывании какого-то мусора начиная с какого-то места на диске? Я провел эксперимент: сделал 8 текстовых файлов по 100кб и вывел их последовательно на экран. Все файлы вывелись без зависаний (если был ошибки считывания - я мог и не заметить). Значит проблема проявляется как-то иначе...
Вот теперь о том, что нужно. Нужна программа проверяющая считываемые данные с диска. Как я это вижу: программа должна "вынуждать" виртуальный дисковод шевелить "головками" и сравнивать полученные данные с эталонными. Для этого нужно сформировать образ заполненный некими данными. Программа должна давать дисководу команду считать данные последовательными блоками, случайными блоками, группами блоков размером в 1 сектор, группами блоков размером чуть больше 1 сектор, читать данные из одного сектора, а потом из предыдущего к нему. Все считанные блоки должны сравниваться с эталонным (которым заполнен образ) и если есть расхождения - сообщать об этом. Так можно будет понять на каких действиях контроллер "подавится" и прикинуть причину (не хватает быстродействия или неправильная работа).
Как зависает? В смысле, на чем? Остановить и посмотреть можно? То есть, подозреваю, что ЦП ждет окончания чтения с диска, а ПП ждет непонятно чего... Или зависло намертво?
Как зависает? В смысле, на чем? Остановить и посмотреть можно? То есть, подозреваю, что ЦП ждет окончания чтения с диска, а ПП ждет непонятно чего... Или зависло намертво?
Зависает намертво - на СТОП не реагирует. Только Ресет.
Зависает намертво - на СТОП не реагирует. Только Ресет.
Зависло в ПП с запретом прерываний. Либо драйвер дисковода ждёт установки бита готовности в регистре 0177130. Либо произошёл TRAP4.
Есть подозрение на глюки старого программируемого таймера, который в 1515ХМ1-031, здесь поможет увеличение времени шага, в ячейку ПП 023260 записать значение 012024, это для нулевого и первого приводов.
В общем, поправил я старт Паф-коммандера и TYPE MULTIC.DOC
Только пожалуйста, не спрашивайте меня как.. Я вообще мало понимаю, что там происходит. :v2_dizzy_rastoman:
- - - Добавлено - - -
Игры по-прежнему не стартуют.
Только пожалуйста, не спрашивайте меня как.. Я вообще мало понимаю, что там происходит.
А вот и спросим, чтобы понять, ну или попытаться понять.
А вот и спросим, чтобы понять, ну или попытаться понять.
Поменял место чита, вместо удержания RPLY после CMD (177130 на запись), удерживаю его в момент обращения к 177132 на чтение, переделал еще пару моментов, но это на загрузку не влияло.
Да, пока ридонли. Надо со чтением разобраться.
Зависло в ПП с запретом прерываний.А не RPLY ли застрял в низком уровне? Это, в общем-то, единственный способ завесить ВМ2 кривой внешней электроникой. Появление низкого уровня на RPLY отслеживается тайм-аутом: примерно 10 мкс, и Trap to 4. А ответила периферия, и, пока не появится высокий на RPLY, процессор будет ждать.
AFZ, вы гений!!!! :v2_dizzy_roll: Я все думал как назвать сие чудо.. контроллер - как-то пресно.. Отныне и на все века называть тебя буду: контроллер КВЭ.. прошу любить и жаловать!
А не RPLY ли застрял в низком уровне?
Точно нет, у меня дублируется со светодиодом, специально делал для отладки, тк переключение светодиода делается после поднятия RPLY, то он точно был в высоком. Если бы завис в низком, светодиод просто бы остался гореть.
- - - Добавлено - - -
Блин, надо тему переименовать, но офигенно же: контроллер КВЭ :D
В общем, надо таки разбирать программу УКНЦ-шной ПЗУхи, что она там делает и что ей надо. А еще, я бы все-таки прицепил туда F407, заменил GPIO A на GPIO D и посмотрел всё отладчиком. Пусть в итоговом изделии останется F401/411, но на период отладки можно и заменить.
Да, тоже к этому склоняюсь. Но как же не хочется тянуть кучу проводов.
Когда я отлаживал AZ у меня был натуральный клубок после кошачьих коготков. :) Тоже не хотелось, а куда деваться? И напоминаю: надо, все-таки, вникнуть в программу ПП УКНЦ, благо, дизасм есть и хорошо откомментированный.
И напоминаю: надо, все-таки, вникнуть в программу ПП УКНЦ, благо, дизасм есть и хорошо откомментированный.
Да, я постараюсь, но боюсь это займет не мало времени, особенно, когда "ищешь то не знаю что".
Кстати, если кому интересно:
скорость чтения цилиндра с СД-карты SDHC 4класса (5120*2 байт данных) - 1754497 тактов, если поделить на частоту процессора 100 МГц получаем 17.54497 ms
скорость перехода f_lseek с 0 позиции в 400000 составляет 978372 тактов, те 9.78372 ms
То чтение цилиндра составляет 27,32869 мС (без учета накладных расходов), что в 3 мС не поместится ни как.
- - - Добавлено - - -
Да, частота SPI 12,5 МГц, тк на скорости выше сд уже отказывается писать.
- - - Добавлено - - -
Люди, что содержится в файле multic.dok, который по ссылке http://archive.pdp-11.online/ukdwk_archive/ukncbtlwebcomplekt/TITUS_COLLECTION/Andrey_05_fix.dsk
Открыл в 3-х разных системмах, во всех 3-х открылся по разному, в одной почему-то постоянно менял фон с черного на синий и обратно.
- - - Добавлено - - -
Открывал командой: TYPE MZ1:MULTIC.DOC
ZPilot, помнится вы делали сканер шины МПИ, который запоминал, какие адреса устанавливаются на шине, и даже смотрел считываемые и записываемые данные. Есть предложение - воткнуть во второй слот этот сканер и как только произойдет зависание, посмотреть к каким адресам обращается процессор. Узнав адреса, уже можно кое о чём думать.
- - - Добавлено - - -
Люди, что содержится в файле multic.dok
Описание языка программирования Multi C (мульти си).
Описание языка программирования Multi C (мульти си).
Он не про это. Там в тексте есть коды 0x0E и 0x0F - может они? (я еще не перешил свой девайс и попробовать не могу...)
помнится вы делали сканер шины МПИ, который запоминал, какие адреса устанавливаются на шине
Он был собран из гвоздей и палок , когда я стал делать контроллер КВЭ, то мне пришлось его разобрать.
Описание языка программирования Multi C (мульти си).
Я не об этом, там в тексте есть какие-то управляющие символы. которые в разных версиях RT обрабатываются по-разному.
- - - Добавлено - - -
Вот пример из эмулятора nzeemin:
https://pic.maxiol.com/images2/1596644200.528788891.img20200805wa0003j.jpg
- - - Добавлено - - -
Версия RT-11QQ соврал, такой глюк версии RT которая находится на доске с этим файлом.
Он был собран из гвоздей и палок , когда я стал делать контроллер КВЭ, то мне пришлось его разобрать.
Надо бы сделать. Если узнаем по каким адресам крутится процессор, то будут ответы на многие вопросы.
Я не об этом, там в тексе есть какие-то управляющие символы. которые в разных версиях RT обрабатываются по-разному.
Это управляющий символ перевода формата с кодом 12 (восьмеричное 014). Есть некоторые версии RT-11, в которых есть команда SET TT [NO]FORM. Если этот код не обрабатывается, т.е. выводится прямо, то на УКНЦ делается очистка экрана. Если в RT-11 идёт его обработка, то выводится целая куча переводов строки.
Это управляющий символ перевода формата с кодом 12 (восьмеричное 014). Есть некоторые версии RT-11, в которых есть команда SET TT [NO]FORM. Если этот код не обрабатывается, т.е. выводится прямо, то на УКНЦ делается очистка экрана. Если в RT-11 идёт его обработка, то выводится целая куча переводов строки.
А мусор в тексте откуда? Если его выводить загрузившись с другого диска, то этого мусора нет, что в эмуляторе, что у меня на УКНЦ с КВЭ.
Надо бы сделать. Если узнаем по каким адресам крутится процессор, то будут ответы на многие вопросы.
На данный момент, не работают только игры.
- - - Добавлено - - -
Причем размер образа ITO91.dsk 860 кБ
Причем размер образа ITO91.dsk 860 кБ
Там мусор в конце, похоже. Можно обрезать, наверное.
Там мусор в конце, похоже. Можно обрезать, наверное.
Да, посмотрел, обрезал. Сейчас буду проверять.
- - - Добавлено - - -
ITO91.dsk - с этого диска стало грузится 2 игры: арканоид и флай роад, пэкмен грузит заставку, дважды и висит
А мусор в тексте откуда? Если его выводить загрузившись с другого диска, то этого мусора нет, что в эмуляторе, что у меня на УКНЦ с КВЭ.
Загрузился в эмуляторе UKNCBTL с этого диска. Вывод файла MULTIC.DOC проходит нормально, без всякого мусора. Эмулятор от 26.04.2020.
Загрузился в эмуляторе UKNCBTL с этого диска. Вывод файла MULTIC.DOC проходит нормально, без всякого мусора. Эмулятор от 26.04.2020.
У меня QT версия, тк Убунту.
Тогда я вообще ни чего не понимаю. Этот образ ведет у меня одинаково у на УКНЦ и на ее эмуляторе. Я его даже закачал заново.
У меня QT версия, тк Убунту.
А Win32-версия через WINE идёт?
А Win32-версия через WINE идёт?
Честно говоря не знаю, не ставил пока. Я не очень хочу Вайн ставить.
А Win32-версия через WINE идёт?
Идёт, randomizer её так использовал. Но там в отладчике кривые тулбары.
randomizer
05.08.2020, 23:07
А Win32-версия через WINE идёт?
В этом посте (https://zx-pk.ru/threads/6257-emulyator-uknts.html?p=1034853&viewfull=1#post1034853) описывал как по вайном работает эмулятор.
- - - Добавлено - - -
Из неудобств ещё то, что wine долго стартует, в случае если wineserver не висит в памяти.
Просьба! Проверьте у себя наличие глюка:
1. в эмуляторе вставьте - https://pdp-11.ru/mybk/pdp11/uknc/HOV-001.DSK в MZ0, http://archive.pdp-11.org.ru/ukdwk_archive/ukncbtlwebcomplekt/TITUS_COLLECTION/Andrey_05_fix.dsk - в MZ1, ИТО 90 в MZ2
2. Загрузитесь с MZ1
3. Выведите на экран текстовый файл командой TY MULTIC.DOC
Будет ли глюк на первых 3-4 страницах?
Просьба! Проверьте у себя наличие глюка:
Присоединяюсь к просьбе, у меня такой же глюк на QT версии.
- - - Добавлено - - -
Если диск Andrey_05_fix.dsk будет только 1, глюка не будет.
- - - Добавлено - - -
По стечению обстоятельств на КВЭ было именно такое сочетание дисков.
Просьба! Проверьте у себя наличие глюка:
1. в эмуляторе вставьте - https://pdp-11.ru/mybk/pdp11/uknc/HOV-001.DSK в MZ0, http://archive.pdp-11.org.ru/ukdwk_archive/ukncbtlwebcomplekt/TITUS_COLLECTION/Andrey_05_fix.dsk - в MZ1, ИТО 90 в MZ2, любой диск в MZ3
2. Загрузитесь с MZ1
3. Выведите на экран текстовый файл командой TY MULTIC.DOC
Будет ли глюк на первых 3-4 страницах?
Никакого глюка нет. Выводил как с плавным, так и с дискретным рулоном.
Никакого глюка нет. Выводил как с плавным, так и с дискретным рулоном.
а ITO90.dsk стоял в MZ2?
а ITO90.dsk стоял в MZ2?
Естественно, как и просили.
Никакого глюка нет. Выводил как с плавным, так и с дискретным рулоном.
https://pic.maxiol.com/thumbs2/1596660470.1582019220.image1.jpg (https://pic.maxiol.com/?v=1596660470.1582019220.image1.jpg&dp=2)
Да, Арсений не дописал, в mz3 должен стоять RT11QQfix.dsk или любой другой диск, но не пустой..
- - - Добавлено - - -
В общем, в эмуляторе должно быть в mz1: Andrey_05_fix.dsk, а в mz3: RT11QQfix.dsk и вот он глюк
- - - Добавлено - - -
Вот мой скриншот:
https://pic.maxiol.com/images2/1596661838.528788891.screenshot.png
Да, Арсений не дописал, в mz3 должен стоять RT11QQfix.dsk или любой другой диск, но не пустой..
- - - Добавлено - - -
В общем, в эмуляторе должно быть в mz1: Andrey_05_fix.dsk, а в mz3: RT11QQfix.dsk и вот он глюк
Да, забавно. Глюк есть. Такой глюк почему-то возникает, если идёт чтение по одному сектору. Команда TYPE читает один сектор и сразу же выводит на экран. По команде COPY MULTIC.DOC TT: проблем нет. А вот если снова сделать по одному сектору командой COPY/SLOW MULTIC.DOC TT:, то проблема снова появляется.
- - - Добавлено - - -
Вставил другой диск в MZ3:, и при выводе файла MULTIC.DOC иногда стал появляться другой текст. Естественно этот текст был на диске MZ3:. Видно где-то глюк в эмуляторе.
- - - Добавлено - - -
Оставил только диски MZ1 и MZ3, глюк есть. Вместо MZ1, иногда чтение идет с MZ3.
- - - Добавлено - - -
И связано это с остановкой мотора. В первом блоке текста много пустых строк, выводится всё медленно, соответственно мотор успевает остановится. При остановке мотора в 0-й и 1-й биты регистра 0177130 пишутся нули, что при установленном 10-м бите соответствует выбору третьего привода. Ну а потом, когда мотор запускается, соответственно читает не с MZ1, а с MZ3.
И связано это с остановкой мотора. В первом блоке текста много пустых строк, выводится всё медленно, соответственно мотор успевает остановится. При остановке мотора в 0-й и 1-й биты регистра 0177130 пишутся нули, что при установленном 10-м бите соответствует выбору третьего привода. Ну а потом, когда мотор запускается, соответственно читает не с MZ1, а с MZ3.
Хмм... Таки я не понял, это особенность контроллера и на живой УКНЦ так же, или это всё же я навалял при написании эмулятора?
Да, забавно. Глюк есть. Такой глюк почему-то возникает, если идёт чтение по одному сектору.
Вот! Я же говорил - нужна тестовая программа которая читает диск по всякому.
И связано это с остановкой мотора. В первом блоке текста много пустых строк, выводится всё медленно, соответственно мотор успевает остановится. При остановке мотора в 0-й и 1-й биты регистра 0177130 пишутся нули, что при установленном 10-м бите соответствует выбору третьего привода. Ну а потом, когда мотор запускается, соответственно читает не с MZ1, а с MZ3.
Наверное, мало у кого на УКНЦ висело по 4 дисковода. Ставить дисковод просто MZ3 (и поймать данный глюк) особого смысла не имело.
Хмм... Таки я не понял, это особенность контроллера и на живой УКНЦ так же, или это всё же я навалял при написании эмулятора?
Вероятно ошибка в эмуляторе. Подпрограмма остановки мотора по адресу 1344454 очищает все биты выбора, потому реально не будет выбран ни один дисковод, что на реальной машине приведет к ошибке чтения. Видно где-то в эмуляторе не особо следится за выбором устройства, установкой бита вращения мотора, потому и такой глюк. Кстати, если контроллер перешел в режим чтения, то при остановке мотора он будет формировать нулевые данные, ну и CRC естественно не сойдётся.
- - - Добавлено - - -
Вот! Я же говорил - нужна тестовая программа которая читает диск по всякому.
Тестовая программа ничего не показала бы. Я уже описал данный глюк связанный с остановкой мотора. При тестах его скорее всего и не воспроизвели бы.
А данный глюк возникает и на реальной машине с контроллером псевдоКМД?
Наверное, мало у кого на УКНЦ висело по 4 дисковода. Ставить дисковод просто MZ3 (и поймать данный глюк) особого смысла не имело.
Да, такой надобности не было. Но у кого есть четыре дисковода, то почему бы не попробовать. Придется конечно на дисководах резать дорожки и паять перемычки. Но я уверен, что данного глюка на реальной машине вы не получите.
Тестовая программа ничего не показала бы. Я уже описал данный глюк связанный с остановкой мотора. При тестах его скорее всего и не воспроизвели бы.
А данный глюк возникает и на реальной машине с контроллером псевдоКМД?
Ну да. Раз в КВЭ доступно 4 "дисковода" - 4 образа и прицепили. Чтобы перегружаться, для проверки, с разных дисков не дергая контроллер - выбора дисков пока нет.
При остановке мотора в 0-й и 1-й биты регистра 0177130 пишутся нули, что при установленном 10-м бите соответствует выбору третьего привода. Ну а потом, когда мотор запускается, соответственно читает не с MZ1, а с MZ3.
Вероятно ошибка в эмуляторе. Подпрограмма остановки мотора по адресу 1344454 очищает все биты выбора, потому реально не будет выбран ни один дисковод, что на реальной машине приведет к ошибке чтения. Видно где-то в эмуляторе не особо следится за выбором устройства, установкой бита вращения мотора, потому и такой глюк. Кстати, если контроллер перешел в режим чтения, то при остановке мотора он будет формировать нулевые данные, ну и CRC естественно не сойдётся.
Алекс, не могли бы вы тут описать по-подробнее. Дело вот в чем, когда я еще только начинал разрабатывать контроллер КВЭ, я отлавливал команды которые УКНЦ отправляет в порт 177130, при выборе дисковода MZ0: УКНЦ отправляет о2023, те выстален 0,1,4 и 10 бит, 4-й нас пока не интересует. По тому, что вы описали, получается, что выбран MZ3: тк 10 бит в 1, но это не так. Согласен, инверсия бит (хотя у меня уже с инверсией, ВА87). Я сейчас сделал выбор привода согласно вашего описания, и какие бы я не выбирал приводы, привод всегда выбирался MZ3:. Вот у меня и возник вопрос, может бит 10 отвечает не за 3 привод, а за то, что не выбран ни один? Где-то.. мне попадалась такая информация, но я перерыл все, что у меня есть по контроллеру, не не нашел :(
- - - Добавлено - - -
Таки я не понял, это особенность контроллера и на живой УКНЦ так же, или это всё же я навалял при написании эмулятора?
На моем живом УКНЦ и контроллере КВЭ все точно так же, как и на вашем эмуляторе, те при выводе multic.doc глюк.
- - - Добавлено - - -
Я поправил глюк с multic.doc, похоже, что логика там такая:
бит 10 - если = 0, то не выбран ни один накопитель.
бит 0,1 после инверсии выбор накопителей 0-3
- - - Добавлено - - -
Иногда игрушки от ИТО вываливаются вот с такой ошибкой (номер ошибки не меняется):
https://pic.maxiol.com/images2/1596720111.528788891.20200806162030.jpg
- - - Добавлено - - -
Я тут разобрался почему у меня раньше на multic.doc зависала УКНЦ, не потому что RPLY висел в низу, ни по какой другой причине связанной с зависанием сигнальных линий. Я просто не знал, что когда мотор выключен, то бит готовности контроллер должен все равно выставить. Да, данные = 0, но 7 бит в статусном регистре должен быть 1.
Эта фраза поставила в ступор:
BIT #2000,23204 ; Двигатель накопителя еще работает ?
BNE 131620$ ; Да
BIS #20,23204 ; Установить бит запуска мотора в УС
MOV 23216,23224 ; (23224) = время разгона двигателя
Так что-же показывает этот 10 бит?
131652$:BIC #3,23204
BISB 135406$(R1),23204; Установить биты номера устройства в УС
BIS #2000,23204 ; Установить бит выбора накопителя
MOV 23204,@#177130 ; Запуск мотора
CALL 134356$ ; Восстановить РОН
Опять бит 10 и тут он "бит выбора накопителя"
Алекс, не могли бы вы тут описать по-подробнее. Дело вот в чем, когда я еще только начинал разрабатывать контроллер КВЭ, я отлавливал команды которые УКНЦ отправляет в порт 177130, при выборе дисковода MZ0: УКНЦ отправляет о2023, те выстален 0,1,4 и 10 бит, 4-й нас пока не интересует. По тому, что вы описали, получается, что выбран MZ3: тк 10 бит в 1, но это не так. Согласен, инверсия бит (хотя у меня уже с инверсией, ВА87). Я сейчас сделал выбор привода согласно вашего описания, и какие бы я не выбирал приводы, привод всегда выбирался MZ3:. Вот у меня и возник вопрос, может бит 10 отвечает не за 3 привод, а за то, что не выбран ни один? Где-то.. мне попадалась такая информация, но я перерыл все, что у меня есть по контроллеру, не не нашел
Я поправил глюк с multic.doc, похоже, что логика там такая:
бит 10 - если = 0, то не выбран ни один накопитель.
бит 0,1 после инверсии выбор накопителей 0-3
У меня в документации про контроллер УКНЦ всё описано. Там есть глава, которая так и называется "Контроллер дисковода УКНЦ". Оттуда:
Для выбора устройства надо обязательно установить разряд REZ, а с помощью разрядов DS0 и DS1 осуществляется выбор номера устройства. При сброшенном разряде REZ ни одно устройство не выбрано, значение разрядов DS0 и DS1 в этом случае не играет роли.
REZ
DS1
DS0
Выбранный накопитель
1
1
1
Выбран накопитель 0
1
1
0
Выбран накопитель 1
1
0
1
Выбран накопитель 2
1
0
0
Выбран накопитель 3
0
-
-
Не выбран ни один накопитель
Соответственно REZ - это 10-й бит, а DS1 и DS0 - первый и нулевой биты.
- - - Добавлено - - -
Эта фраза поставила в ступор:
BIT #2000,23204 ; Двигатель накопителя еще работает ?
BNE 131620$ ; Да
BIS #20,23204 ; Установить бит запуска мотора в УС
MOV 23216,23224 ; (23224) = время разгона двигателя
Так что-же показывает этот 10 бит?
131652$:BIC #3,23204
BISB 135406$(R1),23204; Установить биты номера устройства в УС
BIS #2000,23204 ; Установить бит выбора накопителя
MOV 23204,@#177130 ; Запуск мотора
CALL 134356$ ; Восстановить РОН
Опять бит 10 и тут он "бит выбора накопителя"
В этом же труде есть описание драйвера дисковода в системном ПЗУ, с подробными объяснениями. Также оттуда:
"Первым делом надо определить - вращается еще мотор или нет? Делается это анализом бита выбора накопителей REZ в копии РС. В данном случае анализируется именно бит выбора накопителей, а не включения мотора, т.к. раз был выбран накопитель, то и мотор должен еще вращаться. Если мотор еще вращается, то делается переход на метку 131620, а иначе в копии РС устанавливается бит включения мотора, в ячейку 23224 копируется время разгона двигателя и осуществляется переход на метку 131652."
"Как в случае запуска мотора, так и загрузки головки, в копии РС устанавливаются биты номера накопителя и бит выбора REZ. Затем копию РС записывается в РС контроллера по адресу 177130. При этом запускается мотор и осуществляется выбор накопителя. После этого восстанавливаются РОН и происходит возврат из подпрограммы прерывания."
У меня есть ваш файл по КГМД, но там этот момент почти не описан, ну или я этого не нашел/не понял я по этому и попросил помощи. В любом случае, спасибо. Вы подтвердили мои мысли.
Есть еще момент мне не понятный, все-таки как отвечает контроллер когда выключен мотор и когда не выбран ни один диск. Что с регистром статуса?
Есть еще момент мне не понятный, все-таки как отвечает контроллер когда выключен мотор и когда не выбран ни один диск. Что с регистром статуса?
Я много раз говорил, что контроллер надо отделить от накопителей. Ведь контроллер не знает, подсоединены они или нет. Т.е. существуют объекты - контроллер и до 4-х накопителей. Сам контроллер может находится в режиме чтения или записи. В режиме чтения контроллер находится после включения питания, сброса по шине МПИ сигналом INIT, после чтения регистра 0177132. В режиме записи он находится после записи в регистр 0177132.
Сам режим чтения подразделяется на два подрежима - поиск маркера и формирование данных (собственно чтение). В режиме поиска маркера контроллер находится после включения питания, сброса по шине МПИ сигналом INIT, после установки бита GOR (бит 8) в регистре 0177130. В режим формирования данных контроллер переходит после успешного нахождения маркера. При формировании данных контроллер аккуратно формирует данные каждые 64 мкс, в соответствии с информацией, поступающей на вход DI. Если информация перестаёт поступать (выключили мотор, выбрали отсутствующий привод, не выбрали привода), то формируются нулевые данные.
Потому ответ: если контроллер остался в режиме формирования данных, то будут поступать нулевые данные, т.е. каждые 64 мкс в регистре 0177132 будет оказываться ноль, ну и соответственно устанавливаться бит готовности в регистре 0177130. А вот если контроллер остался в режиме поиска маркера, то тут он его уже не найдёт. Соответственно бит готовности уже никогда не установится, а в регистре 0177132 останется последнее прочитанное значение.
Спасибо, теперь вроде все расставилось по своим местам.
Обнаружил интересный глюк на некоторых образах дисков:
Ошибку повторил на эмуляторе nzeemin.
https://pic.maxiol.com/images2/1598436541.528788891.screenshot.png
Осторожнее, если при копировании ( copy /device mzx: mz3: ) на MZ3 система предупреждает, что диск 40 дорог, то в обратную сторону копируется только половина диска.
На текущий момент проект подошел к финишной ленточке, стоит рядом и теребит её ... "Дисководы" работают. Все запускается и копируется. Осталась пока одна найденная непонятка - диски ИТО. Сами диски стартуют, но после запуска игры - виснут. Очень бы пригодилась программа тестирования дисководов ...
Очень бы пригодилась программа тестирования дисководов ...
классические утилиты для штатных дисководов
https://zx-pk.ru/threads/16861-poisk-fajlov-dlya-uknts-dvk.html?p=497018&viewfull=1#post497018
классические утилиты для штатных дисководов
http://archive.pdp-11.org.ru/ukdwk_archive/ukncbtlwebcomplekt/PH123/
http://archive.pdp-11.org.ru/ukdwk_archive/ukncbtlwebcomplekt/PH456/
TESTMZ и проверка дисководов из TS никаких возражений против КВЭ не имеют.
TESTMZ и проверка дисководов из TS никаких возражений против КВЭ не имеют.
У меня тоже,но.. как всегда есть нюанс. Образ:PH3_SU.dsk, файлы tmz.sav (тест скорости привода) и FMZ.SAV (версия 3.02 программа работы с дискетами от Oleg_H).
Первый показывает время оборота двигателя 0,9 мкС, а второй, только при быстром форматировании, выдает ошибку об отсутствующей индексной метке. Хотя в других программах, в которых есть функция быстрого форматирования, ошибок нет. Проверял дополнительно: MZF.SAV и cf.sav.
Причины, по которым неправильно считается время на оборот и не видна метка, скорее всего растут из одного места, но я пока не понимаю почему.
С учетом найденных проблем (1.5 неработающих диска ИТО и указанных выше ошибок) проект работоспособен, диски выбирает, читает, пишет, форматирует. Я собирал на нем в юниксе сишный файл hello.c, и в мультиС под rt делал сборку.
Я хочу спросить у сообщества, стоит ли выкладывать проект в таком виде, да и вообще.. стоит ли его вообще выкладывать, интересен он еще кому-либо?
Ну и пару фото из личного архива:
https://pic.maxiol.com/images2/1600034304.528788891.img20200913wa0000j.jpg
https://pic.maxiol.com/images2/1600034380.528788891.img20200825wa0005j.jpg
https://pic.maxiol.com/images2/1600034406.528788891.20200811195301.jpg
Ну и пару фото из личного архива:
вот как ты такую шикарную картинку на мониторе получил? или я уже спрашивал?
(вторая фотка), а PAF Commander почему не пользуешь?
За ИТО Игропакеты обидно, я готек взял только когда ребята с мест подтвердили,
что с ними нет проблем с запуском, а Knight , который выдранный из пакета работает?
А еще, у меня TSTGMD трапается после запуска (Trap 4). Это оно почему?
вот как ты такую шикарную картинку на мониторе получил? или я уже спрашивал?
GBS-8200 плюс gbscontrol.
а PAF Commander почему не пользуешь?
Вопроса не понял, вроде на второй фото как раз PAF Commander же..
я готек взял только когда ребята с мест подтвердили
Готек и должен был работать, он же флопик эмулирует, а КВЭ скорее эмулировать 1801вп1-128 пытается, ну и флопик в довесок.. вернее 4 флопика.
Knight , который выдранный из пакета работает?
Блин, не попадался, ткните носом в ссылку.
- - - Добавлено - - -
TSTGMD трапается после запуска (Trap 4). Это оно почему?
Сейчас посмотрю.
- - - Добавлено - - -
Проверил в эмуляторе NZimin, тоже трапается.
- - - Добавлено - - -
Knight , который выдранный из пакета работает?
Нашел, проверил, висит на заставке как и с оригинального диска.
tmz.sav (тест скорости привода) - исправил.
Все материалы по контроллеру ККВЭ представлены здесь: https://github.com/ZPilot/kakave
PS: у меня от заказа на PCBWAY осталось 2 платы. Могу выслать (бесплатно), по одной, желающим повторить. Кто желает, напишите в личку.
https://i.ibb.co/DCwMyvR/20201028-214928.jpg
https://i.ibb.co/P9dVJt7/20201028-221356.jpg
;)
ZPilot, такой мониторчик можно прямо на корпус (верхнюю крышку) УК-НЦ крепить слево от слотов расширения места полно !!! И угол обзора сделать удобный вот красота !!! - единственное уточнение - неужели совсем невозможно картинку
на всю матрицу растянуть (https://zx-pk.ru/threads/32083-kontroller-psevdo-kmd-diskovod-dlya-uknts-(na-sd-karte).html?p=1086620&viewfull=1#post1086620)?
всю матрицу растянуть?
Тут скорее взять юсб клаву и в нее запилить. Оно само УКНЦ, вернее его подобие.
такой мониторчик можно прямо на корпус (верхнюю крышку) УК-НЦ крепить
Можно конечно..
Тут скорее взять юсб клаву и в нее запилить. Оно само УКНЦ, вернее его подобие.
пока ещё нет, но скоро что такое будет возможно, однако классическую УК-НЦшку гонять мне всё равно приятнее,
с внешним БП она лёгонькая и совсем не греется, конечно я больше времени делаю всё в эмуляторах, но стараюсь
с живой машинкой синхронизироваться , а про матрицу на верхней крышке я даже рисунок тут рисовал разочек где то в темах ))) конечно очень мелкое изображение для комфортной работы и игр (особенно символьных) - это капец глазикам.
пока ещё нет, но скоро что такое будет возможно, о
Только сейчас увидел, что цитаты и мои ответы на них перепутаны. Должно быть так:
"всю матрицу растянуть?" - Можно конечно..
"такой мониторчик можно прямо на корпус (верхнюю крышку) УК-НЦ крепить" - Тут скорее взять юсб клаву и в нее запилить. Оно само УКНЦ, вернее его подобие.
Хотя насчет "пока еще нет" вы правы, это просто попытка эмуллировать УКНЦ на STM32, думаю, что реально от этого смысла мало.
Хотя насчет "пока еще нет" вы правы, это просто попытка эмуллировать УКНЦ на STM32, думаю, что реально от этого смысла мало.
надо делать как наши отцы расчленения чипов форумные хотят - они плохого не посоветуют ) Vslav , Titus , Ynicky и вся команда исследователей и сочувствующих.
То есть 1 в 1 , тогда разница будет только визуально-ностальгическая между "новоделом" - не важно на какой
аппаратно-програмной платформе и классической машинкой. Мне например теплее, когда я знаю, что под
крышкой родные Ангстремовские камушки трудятся )))
"всю матрицу растянуть?" - Можно конечно..
а почему нет фотки с растянутой корректно (без проглатывания строк и столбцов) картинкой?
а почему нет фотки с растянутой корректно (без проглатывания строк и столбцов) картинкой?
Тут 2 причины, во-первых должно было работать на другом контроллере в разрешении 640х480 прямо на вга мониторе (китайцы прислали битый контроллер), а во-вторых, фото - просто демонстрация возможности.
надо делать как наши отцы расчленения чипов форумные хотят - они плохого не посоветуют ) @Vslav , @Titus , @Ynicky
они очень круты - факт
То есть 1 в 1 , тогда разница будет только визуально-ностальгическая между "новоделом" - не важно на какой
Ну, это у каждого по-своему, кто-то ищет только оригинал, кто-то новодел на fpga или оригинальных м/с, кто-то довольствуется эмулятором, а большинство вообще считает: умерло так умерло.
Хотя насчет "пока еще нет" вы правы, это просто попытка эмуллировать УКНЦ на STM32, думаю, что реально от этого смысла мало.
Что за эмулятор? Порт от Никиты, или же свой собственный?
Порт от Никиты
Да.. перенесен на Си..
Эх.. (uint16_t)(signed short)(char)psw - просто боль..
Да.. перенесен на Си..
И как скорость на STM32F7? Сколько FPS?
- - - Добавлено - - -
Вообще, если хочешь почти настоящий УКНЦ, лучше, наверное, дождаться, пока заработает FPGA-модель от Ynicky.
Потому что эмулятор, что мой, что Никиты - очень далек от оригинала. Просто совместимая машина, не более того.
Да.. перенесен на Си..
Эх.. (uint16_t)(signed short)(char)psw - просто боль..
Вау. героически. Порой проекты получают совершенно неожиданные продолжения.
Я так понимаю взял emubase и затем Emulator.h/cpp накидал свой.
Там местами чуть-чуть C++ есть - так ты его на Си перетащил совсем полностью?
Вообще, если хочешь почти настоящий УКНЦ, лучше, наверное, дождаться, пока заработает FPGA-модель
Ваша работа просто гениальна!! Я белой завистью завидую, но я не ставил целью 100% УКНЦ, это по сути эксперимент.
Потому что эмулятор, что мой, что Никиты - очень далек от оригинала.
Он не далек в плане программной совместимости, что важно.
- - - Добавлено - - -
Я так понимаю взял emubase и затем Emulator.h/cpp накидал свой.
Я взял emubase и переписал его на СИ, нет конечно, не весь.. я, например, не делал (пока.. или совсем) ни флопик, ни хард. Класс "Процессор" стал двумя структурами ppu и cpu, тоже и с классом "память". В общем пришлось править много чего, например, я вначале не использовал ссылки на функции опкодов, обошелся ифами. Кстати, проигрыш по времени минимальный, а 512 кБ памяти экономит. Для компа это ничто, для контроллера это очень много. Только из-за того, что М750 оказался полудохлый, я использовал дискавери, где есть драм на 16МБ.
Хотел у вас поинтересоваться: m_Port177102 = uint8_t((m_Port177102 & 0x0f) | (word & 0xf0)); Что-то с этой строкой не так или я туплю? Сколько времени длится SystemFrame?
Да.. с ФПСами.. пока она медленнее реальной УКНЦ.. раза в 2, тк нельзя просто взять и перенести эмуляцию с СПП на СИ, да еще в микроконтроллер..
Ваша работа просто гениальна!! Я белой завистью завидую, но я не ставил целью 100% УКНЦ, это по сути эксперимент.
Гениальная - это уж слишком)
Хотел у вас поинтересоваться: m_Port177102 = uint8_t((m_Port177102 & 0x0f) | (word & 0xf0)); Что-то с этой строкой не так или я туплю? Сколько времени длится SystemFrame?
Да.. с ФПСами.. пока она медленнее реальной УКНЦ.. раза в 2, тк нельзя просто взять и перенести эмуляцию с СПП на СИ, да еще в микроконтроллер..
Про m_Port177102 - здесь мы сохраняем 4 младших бита в m_Port177102, биты 4-7 берём из пришедшего слова. Проблем не вижу.
SystemFrame это 1/25 секунды, вроде бы в комментах это было.
Чтобы ускорить вашу машинку, обновляйте экран реже - раз в несколько фреймов - эта довольно затратная операция как оказалось.
uint8_t((
Меня только это смущает, по идее (uint8_t)(..)
Чтобы ускорить вашу машинку, обновляйте экран реже - раз в несколько фреймов - эта довольно затратная операция как оказалось.
Да, попробую. Спасибо!!!
SystemFrame это 1/25 секунды, вроде бы в комментах это было.
Спасибо, я помню, что мне попадалась информация на этот счет, но как всегда, когда надо не найдешь!
- - - Добавлено - - -
nzeemin, а вообще, у вас офигенный эмулятор, очень правильный, насколько я могу судить конечно..
- - - Добавлено - - -
В общем, системный фрейм выполняется в среднем за 21721008 тактов, при частоте проца 216мГц это 0.1 с.
Запустил на полудохлом STM32M750, частота ядра 480 МГц. На втором фото весь компьютер-эмулятор.
https://i.ibb.co/sRcxzM1/20201031-003037.jpg
https://i.ibb.co/XjjtJM3/20201031-003047.jpg
Получилось 16 FPS, экран перерисовывается сразу после системного фрейма. Ч/Б изображение из-за использования режима LTDC L8.
Получилось 16 FPS, экран перерисовывается сразу после системного фрейма. Ч/Б изображение из-за использования режима LTDC L8.
А как к монику подключился?
LTDC - это RGB по 8 бит на цвет + вертикальная и горизонтальная синхронизация, клок и сигнал данных. Вот здесь все: https://www.dasrotemopped.de/index.php?var=projekte&nr=21
Поправил таблицу CLUT, теперь в цвете :)
https://i.ibb.co/5rm6nsx/20201031-230018.jpg
https://i.ibb.co/ssMmVXt/20201031-230645.jpg
Поправил таблицу CLUT, теперь в цвете
для настроек цвета в раб. среде ОС RT-11 используй утилиту COLS.SAV
https://pic.maxiol.com/thumbs2/1604176047.787615478.20201031202648110.png (https://pic.maxiol.com/?v=1604176047.787615478.20201031202648110.png&dp=2) https://pic.maxiol.com/thumbs2/1604176106.787615478.20201031202653090.png (https://pic.maxiol.com/?v=1604176106.787615478.20201031202653090.png&dp=2) https://pic.maxiol.com/thumbs2/1604176197.787615478.20201031202935360.png (https://pic.maxiol.com/?v=1604176197.787615478.20201031202935360.png&dp=2)
Поправил таблицу CLUT, теперь в цвете
Это у каких же мониторов такие входы есть?
Это у каких же мониторов такие входы есть?
а на фотке @ZPilot (https://zx-pk.ru/members/8855-zpilot.html) вроде обычный VGA кабель и проводки в него ?
https://pic.maxiol.com/thumbs2/1604177234.787615478.cropimage.png (https://pic.maxiol.com/?v=1604177234.787615478.cropimage.png&dp=2)
роде обычный VGA кабель и проводки в него
Да, это обычный VGA выход.
для настроек цвета в раб. среде ОС RT-11
На контроллере из-за нехватки памяти пришлось использовать 8 бит на цвет, а это только режим LTDC L8, что является 256 градаций яркости, но если использовать аппаратный хак, в виде таблицы преобразования яркостей в цвет (CLUT), то можно сделать вывод до 256 цветов, я просто подобрал эту таблицу на основе той, что делал nzeemin, но работает она аппаратно. Жаль 4-хбитный нельзя, а то можно было бы вообще напрямую выводить, прямо из буферов строк, используя встроенный в микроконтроллер ускоритель DMA2D.
- - - Добавлено - - -
используй утилиту COLS.SAV
У меня пока не подключена даже клавиатура.. выбор пунктов меню делаю просто через массив запрограммированных кодов клавиш. Грузануть эту утилиту пока нечем.
- - - Добавлено - - -
Сейчас основная задача 25 кадров/с, пока добился 20.
Да, это обычный VGA выход.
Значит на плате еще есть три ЦАП'а?
Значит на плате еще есть три ЦАП'а?
Если это можно назвать ЦАПами, то да:
https://www.dasrotemopped.de/bilder/LTDC_RGB565_DAC.png
https://i.ibb.co/MCsvTdw/vga.png
Фото не мое, но принцип такой же.
Если это можно назвать ЦАПами, то да:
А на HDMI не пробовал замахиваться?
А на HDMI не пробовал замахиваться?
На первой фотке, где плата Дискавери, используется экран с интерфейсом DSI. Его можно снять и поставить "переходник" на HDMI. А вообще, LTDC выдает 24 битный RGB сигнал, его достаточно для получения VGA, LVDS, DSI, HDMI, нужны только микросхемы-интерфейсы (в случае VGA можно обойтись только резисторами).
У меня на этот счет 2 проблемы, я не очень хорошо умею трассировать такие платы, ну и искать информацию по ним (иногда в даташитах так завернут, что я и с информацией не пойму что делать).
Это у каких же мониторов такие входы есть?Ни у каких. Или у всех ЖКИ. Это интерфейс матрицы ЖКИ. Отключай у моника шлейф его родной платы от матрицы, цепляй к этой матрице шлейф от МК и будет тебе счастье. Конечно, придется поправить софт под конкретную матрицу...
Конечно, придется поправить софт под конкретную матрицу.
Не софт, тайминги.
Приследует меня эта игрушка:
https://cloud.mail.ru/public/382r/4hod2cNQi
И если в случае КВЭ она не работает, то в случае МХЭ УКНЦ, работают только ИТОшные игры (ну еще и юникс). Вот что может делать RT, что она вываливается с ошибкой на первых циклах загрузки?
- - - Добавлено - - -
Ошибку пишет: 001042/020027
КВЭ она не работает, то в случае МХЭ
Что такое КВЭ и МХЭ?
Что такое КВЭ и МХЭ?
Тут все просто КВЭ - это мой контроллер который эмуллирует вп1-128+4фдд, а МХЭ мой хреновый эмулятор :) который запущен на СТМ32Н750. Вернее эмулятор не мой, а nzeeminа, но его эмулятор офигенный!!! Я просто его пытаюсь адаптировать под указанный микроконтроллер, и где-то что-то потерял или не правильно адаптировал. Я его на Си перевожу, да еще под не предназначенную для ukncbtl платформу.
Я его на Си перевожу, да еще под не предназначенную для ukncbtl платформу.
Сколько FPS дает?
Возможно, мой эмулятор был бы гораздо быстрее, и написан он на чистом Си, но у него закрытые исходники:v2_dizzy_write:
Возможно, мой эмулятор был бы гораздо быстрее
но у него закрытые исходники :)
Сколько FPS дает?
На данный момент от 17-до 22, зависит видимо от операций, но обновление экрана идет 2 раза за системный фрейм, в моем случае это не очень медленная операция, снижает фпс на 1.
Благодаря титаническим усилиям и безграничной помощи nzeemin, Titus и Alex_K получилась вот такая вот красота:
https://youtu.be/eavT1hw9MBU
Извиняюсь за заваленный горизонт, штатива нет.
получилась вот такая вот красота:
Наверное, лучше сделать отдельную тему типа 'Эмулятор УКНЦ на микроконтроллере'.
А то в этой теме подобное вряд ли кому-то придет в голову искать.
Наверное, лучше сделать отдельную тему типа 'Эмулятор УКНЦ на микроконтроллере'.
Надо вначале довести все до ума, а потом сделаю.. Есть еще небольшие проблемы с ЮСБ-клавиатурой, да и выбор файлов для монтирования нужно доделать.
Надо вначале довести все до ума, а потом сделаю.. Есть еще небольшие проблемы с ЮСБ-клавиатурой, да и выбор файлов для монтирования нужно доделать.
Ну так хорошо. Создашь тему, и люди будут знать, что в ней, и следить за процессом творчества)
Небольшое продолжение:
https://youtu.be/rJLgVz9fkZs
Что добавлено:
Подключена USB - клавиатура.
Звук через пьезоизлучатель (используется ШИМ с 50% заполенением).
Выбор файлов для монтирования по нажатию клавиши F12.
Что не работает:
Арканоид из ИТО91 зависает при попадании шарика в блок второго ряда.
Гонка с того же диска, зависает при разгоне машинки более 50%.
Собственно девайс:
https://i.ibb.co/kHPr0np/20201206-000018.jpg
Арканоид из ИТО91
в архиве два варианта этого игропакета - в одном Арканоид с бесконечными попытками в другом честный,
гонки и в обычном UKNCBTL могут зависнуть непредсказуемо иногда.
гонки и в обычном UKNCBTL могут зависнуть непредсказуемо иногда.
Что-то мне подсказывает, что там не UKNCBTL)
Что-то мне подсказывает, что там не UKNCBTL)
не в этом дело, я просто констатирую сам факт нестабильной работы данной игрушки с образа,
на реале надо будет погонять на предмет зависания...На реале конечно ИТО игропакеты просто подарок,
тот же LODE RUNNER из ИТО-90 в UKNCBTL не поиграть, а на реале - вообще шикарно ) Хорошо, что Никита
потратил время и перетащил с БКашки вариант игры Маркова - так, что баланс силы соблюдён )))
Напомню, что все актуальные ссылки на игрушки (ну или почти все) в шапке темы (https://zx-pk.ru/threads/20593-obsuzhdaem-igry-(uk-nts-dvk-bk-nemiga-i-dr-).html?p=564437&viewfull=1#post564437) про игры стараюсь собирать\добавлять
Вся неприятность в том, что зависания в играх не носят случайный характер. Зависания четко повторяемы. Арканаоид - на первом соприкосновении шара с любым из блоков второго ряда, а гонки, точно при наборе скорости на индикаторе более 50%.
Я погонял тесты процессоров, нашел несколько программ, но ни одна не показала ошибок.
Да, забыл написать, по звуку сделано не все, пока только 1 пункт таблицы:
-----------------------------------------------------------------
7 ! 12 ! 11 ! 10 ! 9 ! 8 ! ЧАСТОТА ЗВУКОВОГО СИГНАЛА ф
-----------!----!----!----!---!---!------------------------------
ПРОГРАММНО ! ! ! ! ! !
ФОРМИРУЕТСЯ! 0 ! 0 ! 0 ! 0 ! 0 ! СООТВЕТСТВУЕТ ПРОГРАММЕ
-----------!----!----!----!---!---!------------------------------
- - - Добавлено - - -
LODE RUNNER - работает.
Я погонял тесты процессоров, нашел несколько программ, но ни одна не показала ошибок.
Напрасно ты постишь информацию об эмуляторе УКНЦ на stm32 в теме, которая совсем про другое.
Никто тут искать его не будет. Лучше создать отдельную тему.
Напрасно ты постишь информацию об эмуляторе УКНЦ на stm32 в теме, которая совсем про другое.
Никто тут искать его не будет. Лучше создать отдельную тему.
Создать надо, но только тогда, когда это можно будет назвать эмулятором, пока это только направление, вернее демонстрация возможностей СТМки.
LODE RUNNER - работает.
когда я говорил о невозможности поиграть в UKNCBTL, я имел ввиду раскладку клавиатуры, там управляющие кнопки сильно далеко получаются, а запуск то есть, игра работает везде абсолютно (любой из 2-ух эмуляторов и на реале с
дискеты или образа).
Зависания четко повторяемы. Арканаоид - на первом соприкосновении шара с любым из блоков второго ряда, а гонки, точно при наборе скорости на индикаторе более 50%.
нет, такого 1 в 1 не наблюдается, предполагаю проблема всё же на вашей стороне.
а образа оба погоняли, я написал выше, что ИТО-91 в двух вариантах?
- - - Добавлено - - -
Создать надо
можно ведь и потом перенести отсюда несколько постов в правильную тему ;-)
ZPilot перезалейте пожалуйста картинки начиная с поста 332 этой темы. Ссылки уже протухли.
перезалейте пожалуйста картинки
Извини, там перезаливать толком нечего. Да и не могу пока.
Либо вот готовый не загрузочный диск -
любопытно, почему образ 400кб ?
ZPilot, каков же статус разработки, вы больше не дорабатывали ничего? Проблема с дискетами которые
не работали так и осталась? Насколько безотказно в "финальном" варианте работает дисковод \ контроллер, сколько
устройств поддерживается ? Уточните пожалуйста.
Вопросы не праздные, поскольку на данный момент ситуация с новоделами КМД УК мягко говоря кризисная.
Плат можно наштамповать сколько угодно, кризис с комплектующими... А AZ - контроллер (как бы не настаивали его
авторы) дисковод не заменит, УК-НЦ\ДВК и БК11(М) - эти машинки работают с дисководами, многие владельцы живых
УК-НЦ оказались в ситуации "голых машин" и это проблема...нужен новый "новодел" КМД УК - пусть и без эмуляции дисковода - сам контроллер нужен гарантировано рабочий, по вменяемой себестоимости = под стандартный шлейф.
каков же статус разработки, вы больше не дорабатывали ничего? Проблема с дискетами которые
не работали так и осталась? Насколько безотказно в "финальном" варианте работает дисковод \ контроллер, сколько
устройств поддерживается ? Уточните пожалуйста.
Т.к. интерес к контроллеру оказался.. ммм.. даже не нулевым, а скорее отрицательным (я раздавал "заводские" платы даром, из 10 забрали 2 и то с неизвестным результатом), то доработку я больше не вел. На данный момент поддерживается 4 дисковода (имиджа). Кроме частичной неработоспособности игр от ИТО, вроде, больше проблем не было. Можно еще у Арсения спросить и настоящего ZPilota, они единственные тестеры этого контроллера.
Есть еще 1 момент, я случайно перевернул глобус и теперь у меня все вверх ногами, осень вместо весны и тд.. В общем, все осталось далеко.
я раздавал "заводские" платы даром, из 10 забрали 2 и то с неизвестным результатом
надо бы было 1 нам в Зеленоград выслать, раздачу плат я видимо где то пропустил, мы могли потестировать на своих машинах я и Ynicky - но раз далеко, значит далеко...
А мне тут вспомнилась программа для дополнительной проверки адекватности работы контроллера и\или дисковода, различные версии (чем старше тем лучше) http://archive.pdp-11.org.ru/ukdwk_archive/ukncbtlwebcomplekt/Other/FMZ/
!MZF.SAV - программа форматирования (и не только) дискет (особенность > графический интерфейс)
!FMZ.SAV - версия 3.02 программа работы с дискетами от Oleg_H.
https://zx-pk.ru/threads/16861-poisk-fajlov-dlya-uknts-dvk.html?p=497018&viewfull=1#post497018
https://pic.maxiol.com/thumbs2/1616619416.1520060447.20210324205206929.png (https://pic.maxiol.com/?v=1616619416.1520060447.20210324205206929.png&dp=2) https://pic.maxiol.com/thumbs2/1616619438.1520060447.20210324205151015.png (https://pic.maxiol.com/?v=1616619438.1520060447.20210324205151015.png&dp=2)
Уточните пожалуйста, можно ли на базе этой разработки - сделать новодел КМД УК - под стандартный шлейф, т.е. выпилить эмуляцию флоппа и надобность в разъёме под карту - и оставить только "эмуляцию" КМД УК - доработать до идеальности именно такой вариант - это могло бы решить проблемы, как обладателей голых машинок, так и проблему с запуском и работоспособностью игропакетов и возможно ещё каких то программ с дискет?
готеки и реальные флоппы никто не отменял, но без КМД УК - всё очень грустно...
- - - Добавлено - - -
раздачу плат я видимо где то пропустил
а платы были "под ключ" вставляй и пользуйся = или это требующий прошивки конструктор всё таки?
Разница огромная!!!
+++
SETTRK.SAV
https://pic.maxiol.com/thumbs2/1616639744.1520060447.20210325023151582.png (https://pic.maxiol.com/?v=1616639744.1520060447.20210325023151582.png&dp=2)
а платы были "под ключ" вставляй и пользуйся
Были просто голые платы, вот тут есть все по контроллеру: https://github.com/ZPilot/kakave
Уточните пожалуйста, можно ли на базе этой разработки - сделать новодел КМД УК
Сделать можно, но мне кажется, что это не решит проблемы с играми ИТО, там очень важны тайминги, мое решение просто не способно на 100% соответствие 1801ВП-128.
Может заменить ВПшку на ВГ93? Ну уж очень они похожи, да и найти ВГ93 на порядок легче.
А мне тут вспомнилась программа для дополнительной проверки адекватности работы контроллера и\или дисковода, различные версии (чем старше тем лучше)
Я, по моему, их пробовал. Они работают. Была проблема в одной из них, не помню какой, с быстрым форматированием. Причину я понял, но исправлять не стал, тк у меня и так всегда быстрое форматирование, ну те, при переключении дорожек всегда попадаем в начало ожидаемого сектора.
electroscat
24.04.2022, 11:29
Дорогие коллеги, приветствую вас ! Хочу поблагодарить ZPilot (https://zx-pk.ru/members/8855-zpilot.html) за прекрасный проект ! Уже неделю этот девайс помогает мне изучать УКНЦ, этого контроллера вполне достаточно чтобы добраться к самым интересным моментам програмного обеспчения машины. Были некоторые трудности в запуске контроллера, но связаны они были с моей УКНЦ, первая - это "мертвая" сетевая карта моей машины, и вторая - связанная с питанием, после замены трансформатора питания и конденсаторов - нужно было поднять напряжение, было в районе 4,8 вольта, этого не хватало для нормальной работы контроллера клавиатуры когда подключен девайс. В итоге, отключив сетевую карту (которая после небольшого подьема питания вообще начала откровенно глючить и не давать УКНЦ запуститься) и поднятия питания машины до 5,1 вольта - УКНЦ с контроллером заработала, и работает до сих пор. Первые ннесколько дней я даже не выключал машину совсем, для проверки.. Уже почти неделя - полет нормальный, спасибо ZPilot (https://zx-pk.ru/members/8855-zpilot.html) за прекрасный проект !!!
https://i.ibb.co/QH6GGDm/20220423-122556.jpg (https://ibb.co/QH6GGDm)https://i.ibb.co/V346mQH/20220423-122434.jpg (https://ibb.co/V346mQH) https://i.ibb.co/5LHKgp3/20220423-122520.jpg (https://ibb.co/5LHKgp3)
https://i.ibb.co/vmjjW8X/20220423-122629.jpg (https://ibb.co/vmjjW8X) https://i.ibb.co/tZ99sDc/20220423-123004.jpg (https://ibb.co/tZ99sDc) https://i.ibb.co/Cm2wB9D/20220423-123121.jpg (https://ibb.co/Cm2wB9D)
УКНЦ с контроллером заработала
Осталось довести машинку до 128 цветов)
electroscat
24.04.2022, 14:56
Осталось довести машинку до 128 цветов)
Это как ?
Поиск довел до VGA c CGA - но при помощи дискретной видеокарты... А как это у УКНЦ можно сделать ? Ссылку, в студию, пожалуйста !!!
Ссылку, в студию, пожалуйста
https://zx-pk.ru/threads/20686-mnogo-tsvetov-na-uknts!.html
Только смысла в этом нет. Режим не поддерживает ни одна программа кроме теста.
- - - Добавлено - - -
Картинки все сдохли там похоже...
Ну не зря я себе всё сохранял.
https://pic.maxiol.com/thumbs2/1650809090.1559557793.dsc0182.png (https://pic.maxiol.com/?v=1650809090.1559557793.dsc0182.png&dp=2)
Короче надо допаять резисторов и одну микросхему.
electroscat
24.04.2022, 17:31
Только смысла в этом нет. Режим не поддерживает ни одна программа кроме теста.
То есть, нужно переделать, и потом освоить ассемблер pdp11 и написать что то под этот режим )))
Осталось довести машинку до 128 цветов)
Это как ?
Короче надо допаять резисторов и одну микросхему.
У electroscat, судя по фото платы, схемотехника СЭМЗ. Там такого не было предусмотрено. Но при желании сделать конечно можно, перерезать дорожки, добавить навесным монтажём микросхему и резисторы. Только надо ли оно?
electroscat
25.04.2022, 01:25
У electroscat, судя по фото платы, схемотехника СЭМЗ. Там такого не было предусмотрено. Но при желании сделать конечно можно, перерезать дорожки, добавить навесным монтажём микросхему и резисторы. Только надо ли оно?
Да, у меня СЭМЗ, верно. Вряд ли буду заморачиваться, если надо резать. и кромсать... По крайней мере на этой машине.
electroscat
17.05.2022, 11:30
Появилась УКНЦ завода КВАНТ, сейчас, немного ее восстановлю, и переделаю под 128цветов. Пока у нее что то с видеосигналом, с ХМ1 136 все сигналы выходят, а вот до видеовыхода доходят только цвета, и обрывки синхры. В остальном, в слепую все работает, грузится система, выполняются команды.
Для нее буду делать еще один контроллер из этой темы, только, с соглачия автора, чуть перекомпоную плату, кнопки смещу вправо и поставлю друг над другом, экран размещу прямо на плате, и нужно будет чуть переделать корпус.
electroscat
18.05.2022, 12:11
Запустил первую УКНЦ, завода КВАНТ, чтобы получить картинку поменял 155ЛН2 и КТ3102, все норм, сразу доработал ее до 128 цветов. НЕ знаю, правильно ли выполняется тест, показывает на экране вот что :
https://i.ibb.co/rfHCp35/20220518-014057.jpg (https://ibb.co/rfHCp35) https://i.ibb.co/gzqDB0P/20220518-014104.jpg (https://ibb.co/gzqDB0P)
Правильно ли отображается тест TSPAL.SAV ?
И еще, сетевая карта которая в наличии с КВАНТ-овской УКНЦ, похоже не работает, а ВП1 065 которая на мат плате (стык2) и вовсе отсутствует. В итоге, когда выбираю пункт меню "3 - сеть" или "4 - стык С2" - получаю:
***СТОП***
000002/ 000000
@
На сколько я понимаю - это из за отсутствия устройств ? или какая то другая причина может быть ?
Вот так выглядит платка сейчас, процессоры пластиковые:
https://i.ibb.co/QMwDGq6/20220517-233415.jpg (https://ibb.co/QMwDGq6) https://i.ibb.co/Z61gFfh/20220517-233424.jpg (https://ibb.co/Z61gFfh) https://i.ibb.co/Lk5Zxjg/20220517-233432.jpg (https://ibb.co/Lk5Zxjg)
- - - Добавлено - - -
Теперь к этой машинке нужно контроллер собрать. Есть идея, разместить на этой же плате еще и контроллер HDD аппаратный, там всего 5 или 6 микросхем. Плата скорее всего на сантиметра 3 поднимется вверх, и сверху будет IDE разьем для подключения либо шлейфа HDD, либо DOM модуля. Вот такая идея есть.
Правильно ли отображается тест TSPAL.SAV ?
Не совсем.
Запусти тест на эмуляторе и сравни.
electroscat
18.05.2022, 15:51
Не совсем.
Запусти тест на эмуляторе и сравни.
Да, картинка другая....
- - - Добавлено - - -
Неисправна 155ЛН2, в целом, сразу понятно почему у третей УКНЦ нестабильная картинка была, она послужила донором для второй машины, как раз на 155ЛН2, и вот, один инвертор не работает. Теперь нужно купить таких микросхем, на неделе...
Gavrilov_S
09.03.2023, 03:17
Хочу повторить этот проект. Нигде в схеме не указаны номиналы набора резисторов. На сколько там ком на подтяжку лучше поставить? :)
Хочу повторить этот проект. Нигде в схеме не указаны номиналы набора резисторов. На сколько там ком на подтяжку лучше поставить? :)
3,3 к
Выложу тут новую реализацию KAKAVE с качелькой вместо кнопок, контроллtром мыши PS/2.
Прошивка STM32 как в оригинале, но чип использован другой - STM32F401RCT6. Его полегче паять, он совместим по прошивке, стоит дешевле и есть версии black pill на нем. С них его и следует брать, т.к. приобретенные отдельно чипы глючили в разной степени, хотя и определялись и прошивались.
Контроллер мыши на Atmega16 или Atmega32.
Вот исходник.
#include <ps2.h>
#define DATA_PIN 18
#define CLOCK_PIN 19
#define SELECT3 10
#define SELECT4 11
#define DIN 12
#define DOUT 13
#define VA87DIR 14
#define RPLY 15
PS2 mouse(CLOCK_PIN, DATA_PIN);
volatile bool s = true; // мышь разблокирована
volatile char mstat;
volatile char x;
volatile char y;
void mouse_init()
{
mouse.write(0xFF); // reset
mouse.read(); // ack byte
mouse.read(); // blank */
mouse.read(); // blank */
mouse.write(0xF0); // remote mode
mouse.read(); // ack
mouse.write(0xF4); // Enable Data Reporting
mouse.read(); // ack
mouse.write(0xF3); // Set Sample Rate
mouse.read(); // ack
mouse.write(0xC8); // Set Sample Rate 200
mouse.read(); // ack
mouse.write(0xE8); // Set Resolution
mouse.read(); // ack
mouse.write(0x03); // Set Resolution 8
mouse.read(); // ack
//mouse.write(0xE7); // Set Scaling 0xE7 - 2/1 0xE6 - 1/1
//mouse.read(); // ack
//mouse.write(0xE9); // Status Request
//mouse.read(); // ack
//PORTA = mouse.read(); // Status
//PORTB = mouse.read(); // Resolution
//mouse.read(); // Sample Rate
delayMicroseconds(200);
}
void setup() {
pinMode(SELECT3, INPUT_PULLUP);
pinMode(RPLY, INPUT);
pinMode(VA87DIR, INPUT);
pinMode(DIN, INPUT);
digitalWrite(RPLY, LOW);
digitalWrite(VA87DIR, LOW);
digitalWrite(DIN, LOW);
DDRA = B00000000;
DDRB = B00000000;
//PORTA = B00000000;
//PORTB = B00000000;
delay(1000);
mouse_init();
attachInterrupt(0, select, FALLING);
}
void loop() {
if (s) {
mouse.write(0xeb); // команда на чтение данных
mouse.read(); // игнорируем ack
mstat = mouse.read();
x = mouse.read(); //x
y = mouse.read(); //y
if ((bit_is_set(mstat, 5)) && (bit_is_clear(y,7))) y = -63;
if ((bit_is_clear(mstat, 5)) && (bit_is_set(y,7))) y = 63;
if ((bit_is_set(mstat, 4)) && (bit_is_clear(x,7))) x = -63;
if ((bit_is_clear(mstat, 4)) && (bit_is_set(x,7))) x = 63;
if (x > 63) x = 63; //обрезка по переполнению
if (x < -63) x = -63;
if (y > 63) y = 63;
if (y < -63) y = -63;
x = x<<1;
y = y<<1;
if (bit_is_set(mstat, 0))// left button
{
bitSet(y, 0);
}else{
bitClear(y, 0);
}
if (bit_is_set(mstat, 1))// right button
{
bitSet(x, 0);
}else{
bitClear(x, 0);
}
noInterrupts();
PORTA = x; //пишем результат в порт
PORTB = y;
s = false; //блокировка чтения мыши
interrupts();
delayMicroseconds(2000);
}
}
void select()
{
noInterrupts();
if (!bitRead(PIND, 4))//DIN
{
bitSet(DDRD, 6); //va87dir
DDRA = B11111111;
DDRB = B11111111;
bitSet(DDRD, 7); //rply
while (!bitRead(PIND, 4));
bitClear(DDRD, 6); //va87dir
bitClear(DDRD, 7); //rply
DDRA = B00000000;
DDRB = B00000000;
PORTA = PORTA & B00000001; //очистка порта
PORTB = PORTB & B00000001;
s = true; //мышь разблокирована
}
interrupts();
}
Так же на плате разведена микросхема часов реального времени, но их поддержка требует изменений в прошивку ПЗУ и Атмеги. За ними обращайтесь к electroscat, у него самые свежие версии.
Здесь схема и герберы.
80535
Здесь прошивка для ПЗУ.
80536
Здесь 3D модели корпуса
80537
https://youtu.be/NKLIPkmZsSc
Здесь фотки.
https://pic.maxiol.com/thumbs2/1710941981.3274620859.img20240315090152.jpg (https://pic.maxiol.com/?v=1710941981.3274620859.img20240315090152.jpg&dp=2)https://pic.maxiol.com/thumbs2/1710942037.3274620859.img20240315090221.jpg (https://pic.maxiol.com/?v=1710942037.3274620859.img20240315090221.jpg&dp=2)https://pic.maxiol.com/thumbs2/1710942083.3274620859.img20240315090245.jpg (https://pic.maxiol.com/?
v=1710942083.3274620859.img20240315090245.jpg&dp=2)https://pic.maxiol.com/thumbs2/1710942126.3274620859.img20240315090323.jpg (https://pic.maxiol.com/?v=1710942126.3274620859.img20240315090323.jpg&dp=2)https://pic.maxiol.com/thumbs2/1710942192.3274620859.img20240315235212.jpg (https://pic.maxiol.com/?v=1710942192.3274620859.img20240315235212.jpg&dp=2)https://pic.maxiol.com/thumbs2/1710942242.3274620859.img20240315235224.jpg (https://pic.maxiol.com/?v=1710942242.3274620859.img20240315235224.jpg&dp=2)https://pic.maxiol.com/thumbs2/1710942289.3274620859.img20240320173344.jpg (https://pic.maxiol.com/?
v=1710942289.3274620859.img20240320173344.jpg&dp=2)https://pic.maxiol.com/thumbs2/1710942325.3274620859.img20240320173410.jpg (https://pic.maxiol.com/?v=1710942325.3274620859.img20240320173410.jpg&dp=2)https://pic.maxiol.com/thumbs2/1710942372.3274620859.img20240320173426.jpg (https://pic.maxiol.com/?v=1710942372.3274620859.img20240320173426.jpg&dp=2)https://pic.maxiol.com/thumbs2/1710942409.3274620859.img20240320173539.jpg (https://pic.maxiol.com/?v=1710942409.3274620859.img20240320173539.jpg&dp=2)https://pic.maxiol.com/thumbs2/1710942449.3274620859.img20240320173550.jpg (https://pic.maxiol.com/?v=1710942449.3274620859.img20240320173550.jpg&dp=2)
Продажа - тут (https://zx-pk.com/forum/viewtopic.php?f=7&t=23114).
А прошивки Атмеги32 готовой нет случайно? Я у себя никак не могу скомпилировать.. АрдуиноИДЕ ошибку выдает..
А прошивки Атмеги32 готовой нет случайно? Я у себя никак не могу скомпилировать.. АрдуиноИДЕ ошибку выдает..
А версия платы какая у вас?
- - - Добавлено - - -
82943
Вот прошивка для Атмеги32 16МГц под старый вариант платы без IDE но с поддержкой часов.
Да. У меня именно такая версия. Спасибо! Еще бы про фьюзы для нее кто-нибудь рассказал..
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot