Нарисовал схемку и развел платку.
Ищите ошибки.
http://yadi.sk/d/OZgdEh2Q59Un8
http://yadi.sk/d/st0byOf259Uvk
http://yadi.sk/d/KYI1uF6c59V1q
http://yadi.sk/d/gUyLSl5x59V42
http://yadi.sk/d/Mr62S-7t59V76
Вид для печати
Нарисовал схемку и развел платку.
Ищите ошибки.
http://yadi.sk/d/OZgdEh2Q59Un8
http://yadi.sk/d/st0byOf259Uvk
http://yadi.sk/d/KYI1uF6c59V1q
http://yadi.sk/d/gUyLSl5x59V42
http://yadi.sk/d/Mr62S-7t59V76
Исходники Игла:
http://yadi.sk/d/bZodCA-X5AnDN
Смотрел код, в расширенной версии должна использоваться РУ7. Там используются 4 страницы по 64к. При каждом нажатии на кнопку, происходит выбор следующей страницы. Таким образом можно захватить до 4 кадров. При выгрузке страницы выгружаются в обратном порядке - как в стеке.
Страницы реализованы на 6 и 7 битах 2 порта процессора (выводы 37 и 38). С них адресные сигналы подаются на дополнительный счетчик, а снего на 1 вывод РУ7.
Почти все элементы либо рисовал сам, либо дорабатывал библиотечные. В Игл это достаточно просто - на одну микросхему уходит 5-10 минут. Если микросхемы подобные (например РУ5 и РУ7) то и того меньше - используем Copy-Paste.
---------- Post added at 12:15 ---------- Previous post was at 11:56 ----------
Посмотрел протокол передачи данных в компьютер,
Используется шина из 5 сигнальный линий.
По четырем линиям передаются данные, по пятой - управление.
Кадр передается порциями - по строкам. Всего 256 строк, если я ничего не путаю.
Перед началом передачи кадра все 5 линий в нуле.
Затем начинается передача 32 байт строки (всего в строке 256 пикселей).
В каждом байте сначала передаются 4 старших бита, управление равно 0.
Затем передаются 4 младших бита, управление - 1.
По окончанию строки все пять линий устанавливаются в единицы.
Не совсем понятно, как обнаруживается первый полубайт если он совпадает
с начальным состоянием - 00000, или если последний полубайт строки совпадает с кодом конца строки - 11111.
При старте устройства происходит небольшое самотестирование, при ошибке теста, прибор входит в аварийный режим - бесконечный цикл, на выходе - на всех пяти линиях выдается непрерывный меандр с постоянной частотой.
Было бы любопытно взглянуть на программу для приема кадров для Спектрума.
---------- Post added at 12:22 ---------- Previous post was at 12:15 ----------
Появились мысли, как решить проблему с первым полубайтом.
Если после кода 00000 появляется код 0xxxx (хотя бы один из разрядов x не равен 0) - это первый полубайт, если же сразу появляется код 1xxxx, то очевидно, что первый полубайт был равен 0000.
С последним полубайтом еще проще - так как мы считаем принятые байты строки, то получив последний (32-й) байт нам не нужно улавливать конец строки - сразу переходим к ожиданию следующей строки.
Так как между строками стояние линий равно 11111, то начало следующей строки знаменует управляющий бит ставший нулем - это будет первый полу-байт первого байта следующей строки.
По приему 256 строк останавливаем передатчик и работаем с загруженными данными.
При ожидании нового кадра ловим все пять линий в нуле.
Вроде весь алгоритм приема.
---------- Post added at 12:28 ---------- Previous post was at 12:22 ----------
Не знаю как подключался к компьютеру этот девайс в оригинале, но организовать прием можно даже через порт Kempston джойстика - там как раз есть 5 линий.
---------- Post added at 12:37 ---------- Previous post was at 12:28 ----------
Для тестирования устройства необходимо подать на него питание - посмотреть осциллографом выходные линии (X2.34567) - на них не должно быть меандра. После этого необходимо нажать на кнопку передачи данных в компьютер - на X2.5 должна появиться меандр передачи данных (он переключается с 0 в 1 на каждом полубайте), после окончания передачи данных все линии должны вернуться в единицу. После этого уже можно переходить к сопряжению с компьютером.
Если же увидеть активность при нажатии на кнопку не удается - имеем проблему. Либо процессор, либо доступ к ПЗУ (ИР22), либо сама ПЗУ. Все остальные элементы на передачу данных влиять не должны (если только ВВ55 не коротит линии данных процессора).
Собсна, сканер и подключался либо к порту кемпстон джойстика вместо манипулятора, либо к любому полуряду клавиатры. Это было написано в листке-руководстве к сканеру.
---------- Post added at 23:14 ---------- Previous post was at 23:12 ----------
ZXFanat, мною, подключался к пентагон 128 через плату-переходник с K-Joy на борту. Общим для джостика контактом (с которым соединялись кнопки джостика), был минус питания. В нейтральном положении манипулятора, из порта контроллера, считывался 0.
Рискну предположить, что образ выкладывал я.
В начале бесик блока идет проверка состояния кемпстон порта. Если там не ноль, считаем, что порта нет, выбираем "порты клавиатуры и переходим к след. пункту.
В строках 80 и 90 прописан младший и старший адрес порта из которого производится чтение данных (31=31+256*0 или 63486=254+256*247).
Дело в том, что на самом деле я ничего кардинально не менял в кодовом и бейсик блоке. Подключение к порту отличного от кемпстона я не проверял. Т.к. спаяв провод для подключения к разьему джостика (и вывел на него + питания) я не стал заморачиваться с подключением к клавиатуре.
Какое число у вас выдает порт кемпстон джостика?
---------- Post added at 00:55 ---------- Previous post was at 00:48 ----------
Попробуйте вот этот образ (стандартный файл vs.B или ALT_VS.B). Исправил оба и перезалил, т.к. в случае не кемпстон-интерфейса выбирался "левый" синклер, на котором висят служебные кнопки опрашиваемые в кодовом файле. Сейчас опрашивается "правый" синклер.
N.B. Необходимо учитывать, что биты этого порта синклер джойстика отвечающие за кнопки направления\стрельбы "вывернуты на изнанку", относительно кемпстон джойстика.
Немного подумав повторно перепилил бейсик блок. Теперь должно работать! ;)
----
Кто уже скачал образ - перекачайте!
----
Кстати, все скрины на данной дискете не оригинальные (на оригинальной дискете шли свои изображения). Эти сделаны мной в "двухтысячных", с помошью подключенного к сканеру ч\б мини-видоекамеры, наподобии этой.
Показывай результаты.
"Lion17", сбрось библиотеки для исходников ZX-сканер (видеодигитайзер).
Хочу переделать для РУ7 или для SIMM.
И попробовать сделать доработки.
Мне отдали бумажную версию какого-то устройства, которое напоминает это устройство. Качество не очень и бумага желает лучшего. Но попробую прочесть и навесным монтажом сделать доработки, и в схему внести изменения, если получится.