Радиоконструктор AVR ZX Spectrum V2.0 (Описание, инструкция по сборке, инструкция по программированию)
1. Обзор
Описываемое устройство представляет собой дальнейшее развитие ZXSpectrum на микроконтроллерах AVRV1_0, уже представленное ранее. Как и ранее, это полноценный программно-аппаратный эмулятор всемирно известного и по сей день ПК ZX Spectrum.
- Разрешение экрана: 256 х 192 точки;
- Матрица знакомест экрана: 32 х 24;
- Количество цветов на знакоместо: 2;
- Число цветов экранной области: 8;
- Число цветов бордюра: 8;
- Число градаций яркости для каждого цвета: 2;
- Эквивалентная частота ЦП: 2,333 МГц;
- Порты ввода/вывода: 0xFE, 0x7FFD, 0xFFFD, 0xBFFD;
- Клавиатурный интерфейс: PS/2;
- Число задействованных клавиш: 82;
- Число каналов звукового сопровождения: 4;
- Перечень каналов звукового сопровождения: левый AY8910, правый AY8910, средний AY8910, бипер;
- Видеовыходы: ЧБ выход, RGB выход, отдельный выход синхронизации;
- Поддержка загрузки/выгрузки «на ленту»: имеется;
- Дополнительные устройства ввода/вывода: micro-SD карта;
- Поддерживаемые модели ZXSpectrum: Pentagon 128 K, ZXSpectrum 128 K, ZXSpectrum48 K, ZXSpectrum+2, ZXSpectrum+3, ZXSpectrum48 K` 2006; OPEN SE BASIC 128 K, OPENSEBASIC 48 K,
- Дополнительная операционная система: SDDOS;
- Файловая система: FAT32;
- Разъём шины ввода/вывода: имеется;
- Конструкция: двухсторонняя печатная плата 140 х 22 мм, установка внутри клавиатуры или в отдельный корпус;
- Питание устройства: соединитель mini-USB«F», напряжение +5 В.
Как можно видеть из приведённых технических характеристик, отличается версия V2_0 от своего предшественника рядом конструктивных, аппаратных и программных усовершенствований.
- Наличие SDкарты и дисковой операционной системы SDDOS, работающей под файловой системой FAT32, позволяет удобно подготавливать файлы на IBM-совместимом ПК, записывая их на карту памяти, а также мгновенно запускать их в SDDOS;
- Клавиатура теперь значительно расширена. Полностью задействована дополнительная клавиатура, клавиши F1. F12, «-», «+», «[», «]», «:», «/», « », «”», что предоставляет значительные удобства;
- Предусмотрена возможность установки разъёма для подключения клавиатуры на плату. Что делает более удобным проектирование расположения платы внутри какого либо корпуса.
- Эмулятор музыкального сопроцессора AY8910(12) теперь не распаивается в переходные отверстия, а стыкуется к системной шине на разъёме;
- Выведены отдельные разъёмы для внешнего программирования микроконтроллеров ATMega128-16AU;
- Питание устройства теперь осуществляется через соединитель mini-USB, устанавливаемый на плату, что делает возможным использование для питания устройства обычных зарядных устройств и источников питания для многочисленных на сегодняшний день гаджетов;
- Центральный процессор теперь ориентирован правильным образом на плате;
2. Схема электрическая принципиальная
Схема устройства приведена на рисунке 1.
В устройстве можно выделить следующие функциональные блоки:
- блок центрального процессора собран на элементах D2, C2, C2, R17. R19, R26, C10. C13, XS3, XP2;
- контроллер клавиатуры выполнен на элементах D4, C4, C6, BQ1, R11, R17, R26, XS1;
- блок видеопроцессора выполнен на элементах D1, C1, R1. R8, XP1;
- блок формирования видеосигнала реализован на элементах D3, C5, R9, R12. R41, VT1. VT5, VD1, VD2, K1. K7;
- блок ОЗУ со страничной организацией выполнен на элементах D5. D7, C7. C9, VD1, VD2;
- блок эмулятора музыкального сопроцессора реализован на элементах D8, C17. C24, R43. R46, BQ2, XS2 XS6, K8, K9;
- блок цепей питания включает в себя элементы DA1, C14, C15, XS5.
Рисунок 1 – схема электрическая принципиальная AVRZXSpectrumV2_0 (подробная схема в архиве внизу статьи)
Источник
ZX Spectrum 128k своими руками. Часть 2
Первая часть здесь
Все изображения кликабельны.
Прошло больше года c того момента как я написал статью про сборку клона ZX Spectrum «Ленинград». И за это время его возможности существенно расширились. Не думал что я буду писать ее продолжение, но все таки статей по ретрокомпьютерам не так уж и много, поэтому решился.
Порт расширения
Компьютер к которому ничего нельзя подключить очень ограничен в возможностях и я решился припаять к нему порт расширения. Кроме 40 pin IDE на плату больше ничего не влезало, но подсчитав количество нужных мне контактов вышло что хватит и этого. Минус один контакт на ключ, 2 контакта на +5в, 2 контакта на землю.
Клавиатуру в корпус
Ранее я использовал внешнюю клавиатуру, но хотелось более аутентичного форм-фактора. На момент сборки мне подогнали клаву от спектрума из 90х с наклейками. Порты для синклер джойстиков и кнопку РЕСЕТ прикрутил к ней же. Дело нехитрое, вырезаем прямоугольник в корпусе и крепим к плате на стойки. Заднюю часть тоже пришлось немного попилить.
Игры без загрузок
Картриджи для спектрума у нас популярны не были, если только не считать игровую приставку АЛЬФ. Не то что бы они были популярны и в европе, так как требовали недешевого устройства ZX Interface 2. Официально было выпущено всего 10 игр. Картридж это всего лишь ПЗУ с предзаписанной игрой на плате с набором контактов, так что сделать это устройство совсем несложно. Я давно хотел попробовать вытравить плату и сейчас как раз тот случай. Но сначала ее надо еще и развести, для этого использовал программу sprint layout.
На самой плате ленинграда только впаял резистор подтяжки на 20 контакт ПЗУ и сам контакт вывел на порт расширения. При подключении картриджа на него будет подаваться +5в и отключит ПЗУ компьютера. Ну и контакт /RDROM тоже на порт расширения вывел. Что ж, плата разведена, выпиливаем из куска советского текстолита квадратик.
Засовываем в принтер страницу из глянцевого журнала, печатаем и включаем утюг.
Плата двусторонняя, делаем конвертик из страниц при помощи степлера.
Получилось как то так, надо было конечно некоторые участки закрасить получше маркером.
Для травления выбрал хлорное железо, хотя знаю что полно других новомодных способов.
Получилось так себе.
И тут люто накосячил, перепутал слои при распечатке, заметил только после того как плата была вытравлена. Новый кусок текстолита вырезать было лень и отчаявшись я сделал переходные отверстия. Зря я стал лудить дорожки так как иногда оставались куски фольги на жале паяльника, без МГТФ и тут не обошлось. ПЗУ для картриджа так же как и для самого ленинграда выбрал EEPROM W27C512. Для выбора игр (4 штуки по 16кб) использовал счетчик 74HC393, чтобы при нажатии кнопки РЕСЕТ они бы переключались как в сборниках на ДЕНДИ. Но это было плохой идеей и в итоге счетчик я выпаял и сделал переключение двумя дип свичами. Заливаем термоклеем для жесткости место пайки 40 пинового контакта.
Программатор на тот момент я уже приобрел свой. Заливаем все хиты от Ultimate Play The Game включая Jetpac. Конечно я потом попробовал и другие, в том числе так и не вышедшие игры, такие как Gyruss и Star Wars.
Подключаем дисковод
Хотя лента и картриджи как носители информации у меня уже имеются, но самая мяготка конечно в использовании флоппи-привода. Под этот носитель написаны лучшие игры, такие как Черный ворон, НЛО: враг неизвестен, а в скором будущем появится и POWER BLADE, кроме того под него портированы почти все игрушки с ленты. Скорость загрузки раз в 15-20 быстрее загрузок с магнитофона, объем форматированой в TR-DOS дискеты 640кб, профит очевиден. Но дисковод сам по себе к спектруму не подключишь, придется еще собирать полспектрума — контроллер накопителя гибких магнитных дисков, он же КНГМД. Схему данного устройства решил взять с сайта zxbyte.ru, как и многие другие доработки ленинграда.
Я решил быть реалистом и схему на 15 микросхем я разведу наверное только к следующему столетию, поэтому собирать стал на макетке. Ну и очень хотелось поместить плату в компактный корпус. Сердцем отечественных контроллеров дисковода была микросхема КР1818ВГ93. Недостаток у нее довольно существенный, она требовала 12 вольт и надежностью не отличалась. Поэтому я заказал микросхему аналог MB8877, которая прекрасно работает и от пяти. Не знаю китайцы мне прислали оригинал или подделку, но она работает и это замечательно. Выбрав схему КНГМД С-48, которая и создана была для подключения к ленинградам и балтикам, столкнулся с неприятной деталью, на узле чтения логика ФАПЧ была реализована на микросхеме ППЗУ К556РТ4, про которую мой китайский программатор не знал. Попробовал вместо нее поставить использованную ранее W27C512, но то ли я что то накосячил, то ли в самой EEPROM были проблемы, но флоппик не заработал, хотя в TR-DOS я уже смог войти. Пересобрал потом узел чтения по схеме пентагон-128 без ФАПЧ и как результат дисковод смог отформатировать дискету. Кстати стандартным дискетам повышенной плотности нужно заклеивать отверстия в уголке, дабы они виделись в приводе как дискеты двойной плотности.
Какое же облегчение пользоваться дискетами, после загрузок, даже ускоренных с ленты/телефона. Схема КНГМД у меня упрощенная и работать может только с двумя дисководами (в том же пентагоне и многих других клонах до 4), хотя и этого хватит за глаза. Наигравшись с 3,5″ дисководом я захотел приобрести 5,25″ и он заработал без проблем, к слову я впервые потрогал пятидюймовые дискеты, они такие гибкие гибкие, в общем кайф. Для удобства прошил вместо BASIC-128 Quick commander, он умеет и музыку играть и изображения смотреть и всякие операции с файлами.
Для записи образа дискет TR-DOS на PC я использую програмку ZX Studio, а для сборки собственного образа ZX Spectrum Navigator.
Смотрим демки
Демосцена у нас развивалась преимущественно под клон спектрума пентагон-128, а он в силу особенностей схемотехники имел 71680 тактов на прорисовку одного кадра, когда как фирменный zx spectrum 69888 тактов, а ленинград всего 65184 тактов из за задержек ответа от памяти. Для большинства игр и других программ это не имело особого значения, но только не для демок. Отрезаем сигнал /WAIT и сажаем его на +5в. на ножку 9D5 подаем землю вместо сигнала /БК. Но спектрумовские мультиколоры могут не заработать с пентагоновскими таймингами, поэтому сделаем джампер спектрум/пентагон. C КМОП версией процессора (Z84) такой вариант не заработал, но с U880 проблем нет. 100% совместимости с пентагоном компьютер не получил, но демки, написанные под пентагон теперь не тормозят. Мне очень понравилась REFRESH, разработанная в далеком 1998 году.
Работаем в СР/М-80
Немногие клоны могли запускать данную ОС, можно вспомнить БАЙТ-01, Кворум-64, ZS Scorpion 256, Профи. Для работы с СР/М компьютер должен иметь поддержку теневого ОЗУ. А так как ZS Scorpion 256 это ленинград на спидах, то не будет больших сложностей его немного доработать. Качаем схему и изучаем. Отключается ПЗУ битом 0 порта #1FFD так же как и на spectrum +3, который из коробки имел возможность запускать СР/М. А битом 4 переключаются страницы по 128кб. У меня же переключается битом 6 порта #7FFD, что конфликтует в некоторых случаях с программами, хотя проблема у меня была только с одной демкой. Пришлось перерисовывать схему расширения для поддержки порта #1FFD. Делал это в пейнте, получилось как то так.
Места на плате у меня больше нет, 100 раз пожалел что не взял плату 20*30 под ATX корпус. Так как 6 бит порта #7FFD мы уже не используем, микросхема 1533ТМ2 теперь лишняя, вместо нее ставим 1533ТМ9, на которую заводим 0 и 4 бит порта #1FFD. Используем по максимуму 1533КП12 в схеме расширения тем самым освобождая необходимый нам элемент ИЛИ. Проверяем, предварительно записав на дискету СР/М от комплекта скорпиона. Работает!
Немного непривычно видеть СР/М с серым фоном и черными буквами, но те кто портировали ее видимо хотели схожести с родным BASIC-48. По дефолту ОС имеет 48кб ОЗУ и RAM диск на 160кб, запускается с 64 символами в строке(3 пикселя в ширину+пробел), что не шибко хорошо читается но терпимо. Утилитой mode, можно поменять на 32 ,40,48 и требуемых для большинства программ 80 (3 пикселя в ширину без пробелов, нечитаемое месево) символов. Некоторые клоны имели режимы повышенного разрешения, например Байт-01 с режимом 512х192 что делало его вполне пригодным для работы с СР/М. Но у фирменного spectrum +3, скорпиона 256, и большинства других клонов такого счастья не было, что возможно и послужило причиной непопулярности данной ОС на спектрумах. О самой СР/М-80, а точнее ее версии 2.2 от 1979 года можно писать отдельную статью, я всего лишь пробегусь по софту.
Текстовый редактор WORDSTAR, очень функционален для редактирования текста, один из прародителей MS WORD.
Электронные таблицы Варитаб, советско-болгарская разработка, очень-очень напоминающая SuperCalc, была ли это переведенная на великий и могучий западная программа, или сделанная по образу и подобию, ну или было какое то лицензирование, надеюсь в комментариях подскажут. Существует еще Варитаб-86 для МС-ДОС, ей возможно многие пользовались. Еще одна электронная таблица Multiplan от MicroSoft у меня нормально запустится не смогла, возможно ей требовалось 25 строк вместо 24.
На СР/М просто рай для программистов, тут и Turbo Pascal и компилятор Си, компилятор Фортран, компилятор языка ADA, язык ФОРТ-83, ассемблер, MS BASIC, транслятор языка PL/1 и многое другое.
Да, на СР/М были игры, в основном это текстовые квесты, такие как трилогия ZORK, к сожалению с моим уровнем английского оценить их я не смогу.
Так же были популярны шахматы, такие как SARGON.
Но были и экшны, например Ladder, вполне играбельный платформер.
Источник