Это _они_ называют ;)
Вид для печати
Это _они_ называют ;)
эка народ на хабре тема про 6502 разворошила ;) я, кстати, с него начинал писать на ассемблере на незабвенном Агате. И ник мой vlad6502 кагбэ намекает ;)
Модуль CPU размеры 160х144.45 мм
Собрал и запустил последний модуль Микро-80 - динамическое ОЗУ. Отклонения от оригинала минимальны - лишь добавил возможность использовать несколько типов микросхем памяти: 565РУ3, РУ6 и РУ5. На плате размещен один банк памяти, что дает 16КБ/64КБ ОЗУ в зависимости от типа примененных микросхем. При желании набрать 64КБ на РУ3 (чтобы максимально соответствовать оригиналу), конструктив модуля позволяет присоединить сверху еще одну плату с тремя банками памяти. Для защиты от пропадания питания -5В использовал реле (аналогично процессорному модулю).
Модуль динамического ОЗУ может работать в пересекающемся адресном пространстве с модулем ОЗУ-ПЗУ, при этом приоритет имеет модуль ОЗУ-ПЗУ (используются сигналы БЛКВХ и БЛКВЫХ)
С памятью дисплейного модуля ($E000..$EFFF) модуль динамического ОЗУ работает в параллель: запись производиться одновременно в оба модуля, а чтение выполняется только из модуля динамического ОЗУ (дисплейный модуль не позволяет читать из его видеопамяти). Таким образом, можно организовать скроллинг содержимого экрана, нужно лишь слегка подправить соответствующую подпрограмму Монитора.
Сборка заняла 38 часов, модуль запустился сразу же. Единственный нюанс, с которым предстоит разобраться - компьютер не хочет запускаться без статического ОЗУ по адресу $F000...$F7FF (рабочая область Монитора)
P.S. В оригинальной статье "Радио" N10, 1983г. допущена неточность во временной диаграмме сигналов (Рис.3): вместо сигнала "D6 выв.9" изображен сигнал с инверсного выхода этого же триггера ("D6 выв.8").
Красивые платы, Микро-80 в массы ? ;)
Отладил модуль сопряжения с магнитофоном. На этой же плате смонтирован интерфейс клавиатуры, панелька под дополнительные порты 580ВВ55 и остается еще достаточно места для расширений, например, 580ВИ53 и 580ВВ51. На монтаж ушло 14 часов.
В качестве накопителя использовал профессиональный кассетный диктофон Marantz-PMD222 (моно - широкая дорожка записи, сквозной канал, 2 скорости).
Изначально пробовал запись / чтение с константами, рассчитаными по формулам из журнала Радио. Для моего случая (частота кварца 20 МГц, тактовая частота процессора - 2,5 МГц) это: константа записи = 40*Ftakt/2 = 40*2,5/2 = 50 = $32, константа воспроизведения = 1,5*константа записи = 1,5 * 50 = 75 = $4B
Компьютер данные не считывал... Тщательно перепроверив работоспособность модуля, но так и не добившись считывания данных, пошел другим путем: записывая на ленту последовательность байтов $22, подобрал константу записи для достижения скорости обмена 1500 бит/сек. Затем, методичным перебором константы чтения от $2F и выше, добился считывания с ленты и определил "коридор" рабочих значений константы чтения. Финальным вариантом взял значение середины "коридора". В результате мои рабочие константы выглядят следующим образом: константа записи = $30 -> $F75D - близка к расчетной; константа воспроизведения = $36 -> $F75C - существенно отличается от расчетной. Интересно, почему ?
В качестве эксперимента попробовал работу на пониженой скорости ленты 2,38 см/сек - все читается без проблем. Есть идея в дальнейшем соорудить интегрированый накопитель на микрокассете.
Чтобы проверить надежность магнитофонного интерфейса (при ремонте компаратора или самого магнитофона, например) мы на кружке генерировали рандомное содержимое объемом не менее 32КБ а уже его выгружали и загружали. Если считалось 2 раза подряд без ошибок - то все пучком. Было всякое, зато магнитофонные интерфейсы всегда работали на ура. Касаемо самих констант, то тут есть несколько нюансов. Во-первых, зависит от реализации в машинном коде. Например, у принятого манчестера в РКшке, Орионе и Специалисте выгрузка длиннее загрузки, поэтому константа выгрузки заметно меньше константу загрузки. Причем, она несколько нелинейна, если изменять скорость между 0.5х и 2х.
Если ГФ24, то тактовая будет 20/9=2,222222МГц.
В Микро-80 тактовый генератор на рассыпухе на основе ИЕ5. 20 МГц / 8 = 2,5 МГц
Для проверки качества считывания я использовал образы Монитора и Бейсика (он у меня зашит в ПЗУ). На приаттаченом скриншоте как раз отображен процесс чтения / записи образа Монитора с последующим сравненинем считаных данных с оригиналом.