Радиоконструктор 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 (подробная схема в архиве внизу статьи)
Разъём XS4 предназначен для подключения micri-SD карты памяти.
Как видно из схемы, устройство реализовано на восьми микросхемах. Все восемь микросхем работают от напряжения питания +5 В, которое подводится через соединитель mini-USB XS5. Для питания micro-SD карты требуется напряжение 3,3 В, которое и формируется стабилизатором напряжения DA1 ZR78L033G (возможная замена – L78L33ACUTR, корпус SOT-89).
Рассмотрим по отдельности принцип работы каждого функционального узла.
Блок центрального процессора
Блок центрального процессора выполнен на микроконтроллере D2 ATMega128-16AU (корпус TQFP64). Он выполняет задачу эмуляции микропроцессора Z80 Zilog и портов ввода/вывода. Команды Z80, эмулируемые центральным процессором, расположены во FLASH памяти микроконтроллера с физического адреса 0X8000 страницами по 16 К каждая. Таким образом, с этого адреса при компиляции проекта следует располагать ROM файлы ПЗУ эмулируемых ZX-Spectrum совместимых машин. После подачи напряжения питания происходит инициализация внутренних устройств микроконтроллера, используемых им при работе, конфигурация портов ввода/вывода микроконтроллера, формирование в ОЗУ микроконтроллера таблиц, используемых при эмуляции команд Z80.
Сигнал маскированного прерывания (сигнал MINT) приходит на ЦП от видеопроцессора D1 с частотой кадровой развёртки – 50 Гц. Для его обработки используется вход AIN аналогового компаратора контроллера, так как прерывание от аналогового компаратора можно быстро проверить перед началом выборки очередной инструкции. Также его легко можно разрешить и запретить, что используется при эмуляции команд EI и DI.
Обращение к внешнему ОЗУ ЦП производится стандартным образом через внешний интерфейс памяти. В начале цикла обращения к внешнему ОЗУ микроконтроллер выставляет сигнал RBBCP, адресуемый видеопроцессору (активный низкий уровень). Этот сигнал «предупреждает» видеопроцессор о том, что ЦП занял внешнее ОЗУ для операции чтения/записи.
При эмуляции операции записи в порт 0xFE на линиях порта D микроконтроллера (сигналы BORDH:BORDM:BORDL) выставляется двоичный код цвета бордюра, который сохраняется на этих линиях до очередной операции записи в порт 0xFE. При этом сигнал TOTAPE устанавливается в соответствии с битом 3 числа, записываемого в порт, а сигнал BEEP (звук бипера) в соответствии с битом 4 этого числа. При эмуляции операции чтения из порта 0XFE происходит запрос клавиатурного контроллера D4. Запрос происходит формированием сигнала внешнего прерывания на линии KEYMH(по заднему фронту этого сигнала). При этом происходит активация сигнала RBBCP для запрещения операций чтения ОЗУ видеопроцессором на время выставления контроллеру клавиатуры кода опроса, установка кода опроса клавиатуры на линиях A15_CP, A14_CP, A13…A8. В ответ контроллер клавиатуры выставляет 5-битный код ответа на линиях KEYH:KEYMH:KEYML:KEYL порта F микроконтроллера. Этот код читается ЦП и участвует в формировании 8-бит данных операции чтения порта 0XFE. Биты 7 и 5 при этом устанавливаются в «1», а бит 6 определяется старшим битом данных кода аналого-цифрового преобразователя контроллера, подключенного к разряду 6 порта F. АЦП контроллера настроен на величину опорного напряжения, равного напряжению питания. Таким образом, если уровень сигнала FROMTAPE/ на выводе PF6 менее половины напряжения питания, то разряд 6 порта 0xFE при чтении сбросится в 0, в противном случае – установится в 1.
При эмуляции операции записи в порт адреса музыкального сопроцессора 0XFFFDкод адреса выставляется на шину A15_CP, A14_CP, A13…A8 при активном уровне (0) сигнала RBBCP, далее происходит активация (установка в «1») сигналов BC1 и BDIR, которые адресуются эмулятору музыкального сопроцессора на время, необходимое для его работы. После этого происходит деактивация сигналов RBBCP, BC1 и BDIR.
Аналогично происходит операция записи в порт данных музыкального сопроцессора 0XBFFD с той лишь разницей, что активация сигнала BC1 не происходит.
При операции записи в порт 0X7FFD (порт только для записи) три младших бита (2, 1, 0) байта участвуют в формировании номера страницы ОЗУ, подключаемую в область адресов 0XC000-0XFFFF. Номер страницы ОЗУ при этом определяется сигналами MUXA17…MUXA14, адресуемыми страничному мультиплексору D7. Бит 3 участвует в выборе обычного («0») или теневого «1») экрана. При этом при выборе режима «обычного экрана» сигналы A15_CP и A14_CP устанавливаются в «0» и «1» соответственно, а при выборе режима «теневой экран» — в нули. Бит 4 определяет выбор страницы ПЗУ. Значение «0» соответствует младшей странице ПЗУ, значение «2» — старшей. Запись в бит 5 значения «1» запрещает в дальнейшем возможность записи в этот порт.
Для внутрисхемного программирования ЦП в схеме предусмотрен разъём XP2. Сигналы PDI2, PDO2, SCK2 и ~RESET2 используются при внутрисхемном программировании и эквивалентны сигналам MOSI, MISO, SCKи ~RESET программатора. Также сигналы PDI2, PDO2, SCK2 вместе с сигналом ~CS_SD используются в качестве SPI интерфейса с micro-SD картой памяти, и эквивалентны сигналам SD_IN (вход), SD_OUT (выход), CLK (синхронизация данных) и CS (выбор карты) интерфейса micro-SD карты. Согласование уровней происходит программно, логическая «1» на выходах контроллера PDO2 и SCK2 формируется путём включения подтягивающего резистора.
Контроллер клавиатуры
Контроллер клавиатуры выполнен на микроконтроллере D4 ATTINY2313A-SU (возможная замена — ATTINY2313-20SU), корпус SOIC-20. Выполняет задачу эмуляции клавиатуры (порта 0XFE при операции чтения), реализует интерфейс PS/2 с клавиатурой, а также является источником тактовых импульсов для ЦП D2 и видеопроцессора D1.
Тактирование процессора происходит от внешнего кварцевого резонатора BQ1 частотой 20 МГц. Для контроллера это является предельной частотой работы в соответствии с его техническими характеристиками. Вывод PD2 сконфигурирован во fuse-битах при программировании как выход тактовой частоты для тактирования ЦП и видеопроцессора (сигнал MHz20), для которых эта частота выше гарантированной в соответствии с фирменным техническим описанием (datasheet), так что они работают в режиме overclock,и как показывает практика, вполне устойчиво.
При подачи питания происходит инициализация контроллера, конфигурация и начальная установка его портов ввода/вывода. Сигналы KEYDATA (данные) и KEYCLK (синхронизация данных) соответствуют интерфейсу PS/2 и являются входными для микроконтроллера. В основном режиме работы контроллер занят чтением скан-кодов клавиатуры и формированием в восьми о внутренних регистрах COLOMN7…COLOMN0 матрицы состояния клавиатуры. Также контроллер формирует эмуляцию дополнительных клавиш путём установкой в регистрах матрицы клавиатуры одновременного нажатия сразу двух клавиш, одна из которых Capsshift или Symbolshift. При этом контролер работает в режиме разрешённого внешнего прерывания INT1 (сигнал KEYMH) по спадающему фронту этого сигнала. В режиме прерывания от ЦП D2 уходит в подпрограмму обработки прерывания, читает с линий A15_CP, A14_CP, A13…A8 (PORTB) код опроса клавиатуры, формирует код ответа путём объединения (операция AND) данных соответствующих (опрашиваемых) регистров COLOMN7…COLOMN0). При этом в объединении данных участвует тот регистр, бит данных для которого сброшен в коде опроса клавиатуры. Сформированный код ответа выставляется в PORTB (линии KEYH:KEYMH:KEYML:KEYL) для ЦП.
Блок видеопроцессора
Блок видеопроцессора выполнен на микроконтроллере D1 ATMega128-16AU (корпус TQFP64). В его задачу входит чтение видеоданных из области видеоданных ОЗУ, чтение из ОЗУ атрибутов цвета, формировании видеосигнала, сигнала синхронизации, установке цвета бордюра, а также формировании эффекта мерцания (Flash) знакомест с единичным значением бита 7 атрибута.
После включения питания происходит инициализация внутренних устройств контроллера и конфигурация его портов ввода/вывода.
Формирование синхросмеси из строчных и кадровых импульсов синхронизации (сигнал SYNC) происходит методом ШИМ. Для этого используется внутренний 16-разрядныйсчётчик TCNT1.
Чтение видеоданных из ОЗУ для очередной видеостроки происходит во время прямого хода луча после вывода текущей видеостроки и установки цвета бордюра. При этом происходит анализ сигнала RBBCP, разрешающего чтение из ОЗУ. Если этот сигнал активен («0»), то происходит ожидание его деактивации. Сразу после этого происходит чтение байта данных из ОЗУ и завершающий анализ сигнала RBBCP. Если RBBCPснова оказался активным, то делается заключение, что байт данных может быть недостоверен, и весь цикл его чтения повторяется. Следует сказать, что видеопроцессор подключен к блоку ОЗУ через токоограничительные резисторы R1…R7, что предотвращает аппаратный конфликт ЦП и видеопроцессора в случае, если произойдёт одновременное обращение мх к внешнему ОЗУ.
Прочитанный байт видеоданных сохраняется в соответствующем регистре общего назначения и используется при выводе соответствующего знакоместа видеостроки.
Как делается понятным, достоверными будут только те прочтённые данные, которые были прочитаны в отсутствии операций чтения/записи ЦП внешнего ОЗУ. При этом интерфейс со стороны ЦП внешней памяти закрыт, и линии A15_cp и A14_CP установлены ЦП в соответствии с выбранным экраном (см. раздел о работе блока ЦП). При этом видеопроцессор всегда программно отключен от линий A15_CP и A14_CP, которые управляют работой страничного мультиплексора. Таким образом, в это время в режиме обычного экрана A15_CP=0, A14_CP=1, SCRA16=0, страничный мультиплексор скоммутирован на передачу на выход сигналов секции А, и, таким образом, сигналы A17…A14, определяющие старшие 4 бита адреса ОЗУ, установлены в значение «0010», чему соответствует область памяти ОЗУ, отведённая под обычный экран. В режиме теневого экрана A15_CP=0, A14_CP=0, SCRA16=0, страничный мультиплексор скоммутирован на передачу на выход сигналов секции А, и, таким образом, сигналы A17…A14, определяющие старшие 4 бита адреса ОЗУ, установлены в значение «0000», чему соответствует область памяти ОЗУ, отведённая под теневой экран.
Чтение атрибутов цвета происходит во время вывода строк нижнего и верхнего бордюров аналогично чтению видеоданных. При этом если бит 7 атрибута установлен, то есть включен режим мерцания знакоместа, происходит при необходимости его коррекция – биты цвета бумаги и биты цвета чернил меняются местами. Атрибуты сохраняются во внутреннем ОЗУ контроллера.
Во время прямого хода луча при формировании изображения происходит циклически вывод в порт B данных соответствующего регистра, сдвиг влево командой LSL данных этого регистра и один такт задержки. После последнего вывода (восьмого по счёту) видеоданных в порт цикл повторяется сначала до момента окончания вывода строки изображения. Байты атрибутов читаются из внутреннего ОЗУ при помощи команды POP после вывода предпоследнего бита каждого байта видеоданных, а их вывод в порт цвета атрибутов – PORTE – происходит непосредственно перед началом вывода очередного байта видеоданных. При этом в порте E контроллера на линиях Y/2:PG:PR:PB:IG:IR:IB присутствует код цвета бумаги (PG:PR:PB), код цвета чернил (IG:IR:IB) и сигнал градации яркости Y/2, которые предназначаются видеомультиплексору D3 74AC257D (корпус SOIC-16). Сигнал PIXEL при этом определяет какое значение цвета – цвета бумаги (PIXEL=0) или цвета чернил (PIXEL=1) участвует в формировании видеосигнала.
В начале каждого кадра (то есть с частотой 50 Гц) видеопроцессор вырабатывает сигнал MINT, активный уровень 0, который подаётся на вход аналогового компаратора ЦП для формирования маскированного прерывания.
Блок ОЗУ со страничной организацией
Блок ОЗУ со страничной организацией построен на микросхеме статического ОЗУ D5 CY7C1049D-10VXI (возможная замена — AS7C4096A-12JIN), корпус SOJ-36, объёмом 512 К, регистре-защёлке младшего адреса D6 74AC373MTC (возможная замена — MC74AC373DT), корпус TSSOP-20 и страничном мультиплексоре D7 74AC257D, корпус SOIC-16. Пространство, адресуемое ЦП, составляет диапазон от 0X0000 до 0XFFFF (64 К). Старшие 16 К этого пространства (с адреса 0XC000 по 0XFFFF) отведены под страничную память, и управляются страничным мультиплексором D7. Для этого сигналы A15_CP и A14_CP, являющиеся двумя старшими сигналами адресной шины, объединены логической схемой «ИЛИ», выполненной на резисторе R10 и диодах VD1, VD2. При обращении к старшей странице памяти оба сигнала A15_CP и A14_CP находятся в состоянии «1» и напряжение на управляющем входе страничного мультиплексора высокое, так что он скоммутирован в режим «B» и на его выходах (цепи A17, A16, A15, A14) присутствуют сигналы MUXA17, MUXA16, MUXA15, MUXA14, определяющие номер подключенной страницы памяти. При обращении к любой другой странице памяти страничный мультиплексор скоммутирован в режим «A» и на его выходах (цепи A17, A16, A15, A14) присутствует прямой адрес обращения к памяти (численно соответствует 0:0:A15_CP:A14_CP).
Значение младшего адреса при обращении к ОЗУ переписывается в регистр-защёлку младшего адреса D6 по переднему фронту сигнала ALE. Чтение происходит активацией сигнала ~RD, а запись – активацией сигнала ~WR.
Блок эмулятора музыкального сопроцессора
Блок эмулятора музыкального сопроцессора выполнен на микроконтроллере D8 ATTINY2313A-SU (возможная замена — ATTINY2313-20SU), корпус SOIC-20, и представляет из себя самостоятельное устройство, подсоединяемое к соединителю XP3 основной платы при помощи соединителя XS6.
Устройство имеет два выхода аудиосигнала – левого и правого канала. Аудиосигнал формируется методом широтно-импульсной модуляции (ШИМ). На элементах R44, R46 и C22 реализован ФНЧ правого, а на элементах R43, R45 и C21 – левого каналов. Кварцевый резонатор BQ2 обеспечивает частоту генерации на первой гармонике последовательного резонанса 28 МГц. При этом микроконтроллер работает в режиме «разгона», и, как показывает практика, абсолютно устойчиво. Питание устройства осуществляется от цепи +5В основной платы, конденсаторы С23 и С24 выступают в роли дополнительных фильтров питания.
Интерфейс управления эмулятором состоит из восьмибитной однонаправленной шины данных (сигналы A15_CP, A14_CP, A13…A8) и шины управления, включающей в себя цепи BC1 и BDIR, аналогичные по назначению одноимённым сигналам AY8910(12).
Несмотря на то, что реальный музыкальный сопроцессор AY8910(12) имеет 3 звуковых канала А, В, С, в эмуляторе их только два: L и R. Канал А подключен к левому L, канал С к правому R, а канал В программно разделяется и смешивается между каналами L и R. Также и сигнал бипера, подводимый на вход PD4 микроконтроллера (сигнал /BEEP), программно разделяется и смешивается между каналами L и R. Таким образом формируется готовый стерео выход.
3. Сборка
Хотя правильно собранное и запрограммированное устройство начинает работать сразу после включения питания, существует определённая последовательность сборки, которая поможет избежать возможные ошибки, связанные с монтажом и неисправностью элементов. При монтаже следует соблюдать ряд правил, которые помогут избежать выход элементов из строя:
- при пайке следует использовать припой с низкой температурой плавления, температура жала паяльника не должна превышать 300 °С;
- жало паяльника должно быть надёжно заземлено;
- при пайке должен использоваться антистатический браслет;
- Рабочее место должно быть хорошо освещено;
- После каждой сборочной операции необходимо при помощи тестера в режиме прозвонки проверить смонтированный узел на отсутствие коротких замыканий, в особенности между соседними выводами микросхем и между цепями питания;
- После каждой сборочной операции рекомендуется смыть следы флюса (канифоли) с платы спирто-бензиновой смесью и тщательно просушить плату;
- Работать с SMD монтажом следует на оборудованном соответствующим образом рабочем месте с хорошим освещением;
- При сборке пользуйтесь сборочным чертежом (см.
рисунок 3).
Перед началом работы необходимо тщательно проверить печатную плату на предмет отсутствия технологических дефектов (обрывов и замыканий печатных проводников некачественной металлизации переходных отверстий), особенно в местах, которые при монтаже будут скрыты корпусами элементов, так после монтажа сделать это будет гораздо труднее. Печатная плата должна иметь вид в соответствии с рисунком 2
Рисунок 2 – вид печатной платы (верхняя и нижняя стороны)
Рис. 3.
Рисунок 3 – сборочный чертёж платы
Сборка блока контроллера клавиатуры
Установите на печатную плату элементы XS5, C16, C1, C4, C6, R11, R17, R26, BQ1, D4. При монтаже пользуйтесь сборочным чертежом (см. рисунок 3).
Примечание – микроконтроллер D4 перед установкой на плату должен быть запрограммирован. Указания по программированию см. в разделе «программирование».
Проверьте плату на отсутствие коротких замыканий и подведите к соединителю питания XS5 напряжение +5В. В качестве источника питания можно использовать зарядное устройство с кабельным разъёмом mini-USB. При помощи тестера проверьте напряжение питания на выводе 20 микроконтроллера D4 – оно должно быть в диапазоне от 4,8 до 5,2 В. Проверьте напряжение на выводе 6 микроконтроллера D4 (выход тактовой частоты) – оно должно быть в диапазоне от 2,3 до 2,7 В. При невыполнении этих требований необходимо отыскать и устранить неисправность.
Сборка блока видеопроцессора и блока формирования видеосигнала
Установите на печатную плату элементы R1…R9, R12…R15, R20…R24, R27…R33, R35…R41, C3, C5, D1, VD3…VD5, VT1…VT5, XP1. К контактам K7 (общий) и K6 (выход видео) подпаяйте технологический разъём RCA (Female) «Тюльпан». Проверьте плату на отсутствие коротких замыканий. Для дальнейшей работы потребуется видеоустройство со стандартным видеовходом (телевизор, TVтюнер, монитор со стандартным видеовходом) и программатор типа ByteBlaster MV (http://www.zx-kit.ru/katalog-1/zxkit-003-1).

Изображение должно быть чётко засинхронизировано, поле изображения должно иметь чётко выраженную прямоугольную форму, должны различаться градации серого цвета и бордюр. Также на изображении должны присутствовать поля с эффектом мерцания – сменой прямого изображения на инверсное и обратно с частотой порядка 4 Гц. Допускается изменение цвета бордюра и цвета логотипа разработчика «LISITSINDEVELOPMENT» в верхнем поле бордюра. Если эти требования не выполняются, следует отыскать и устранить неисправность.
Отключите устройство от монитора и источника питания.
Рисунок 4 – видеосигнал устройства без блока ОЗУ.
Сборка блока ОЗУ
Установите на печатную плату элементы R10, VD1, VD2, C7, D5, C8, C9, D6, D7.
Соедините при помощи коротких проводников вывод 1 и вывод 5 страничного мультиплексора D7 с общей шиной (GND). Это позволит вывести мультиплексор D7 из страничного режима и зафиксировать адрес A16 ОЗУ. Проверьте плату на отсутствие коротких замыканий.
Подключите устройство к монитору и источнику питания. На экране должно наблюдаться чёрно-белое изображение, аналогичное рис. 5
Рисунок 5 – видеосигнал устройства с блоком ОЗУ и без блока центрального процессора
Должны наблюдаться чётко выраженные прямоугольные границы видеополя и бордюр. Изображение должно иметь устойчивую строчную и кадровую синхронизацию. Присутствует разбивка изображения на знакоместа. В пределах каждого знакоместа должна существовать неизменная градация серого цвета бумаги и чернил, рисунок (заполнение знакоместа) должен быть неизменен. При этом допускается мерцание знакомест с частотой порядка 4 Гц. Должны различаться градации серого цвета. Допускается изменение цвета бордюра. При невыполнении данных условий необходимо произвести поиск и устранение неисправностей.
Отключите устройство от источника питания и монитора. Отпаяйте проводники, соединяющие выводы страничного мультиплексора с общей шиной.
Сборка блока центрального процессора
Установите на печатную плату элементы R18, R19, R42, C10…C15, D2, DA1, XP2, XP3, XS1 и XS3. Проверьте плату на отсутствие коротких замыканий.
Подключите устройство к программатору через разъём XP2 и произведите программирование ЦП (указания по программированию см. в разделе «программирование»).
После программирования, если не было допущено ошибок, устройство начинает работать. На экране после старта появится изображение в соответствии с выбранной моделью ZX Spectrum (см. рис. 6 – основное меню Pentagon 128). Для проверки работоспособности можно произвести загрузку тестов и другого программного обеспечения «с ленты» или micro-SD карты. Если тесты и программы исполняются корректно, можно переходить к сборку эмулятора музыкального сопроцессора AY8910.
Сборка блока эмулятора музыкального сопроцессора
Эмулятор музыкального сопроцессора AY8910(12) собирается на отдельной плате (см. рис. 3), которая идёт в комплекте с основной платой.
Установите на печатную плату элементы C17…C24, R44…R46, BQ2, D8, XS6. Проверьте плату на отсутствие коротких замыканий.
Примечание – микроконтроллер D4 перед установкой на плату должен быть запрограммирован. Указания по программированию см. в разделе «программирование».
Примечание 2 – в качестве кварцевого резонатора вместо указанного на схеме DSX321G 28 МГц возможно использование кварцевого резонатора HC49US 28 МГц (необходим кварцевый резонатор, работающий на основной частоте резонанса), который устанавливается в позицию BQ2* платы.
Подстыкуйте собранную плату к основной посредствам соединителя XS6 как показано на титульном рисунке.
Если блок эмулятора музыкального сопроцессора был собран без ошибок и все элементы исправны – он начинает работать сразу после включения питания и в настройке не нуждается.
4. Подключение устройства и проверка работоспособности
Для подключения AVRZXSpectrumV2_0 с получением цветного изображения требуется видеоустройство (монитор) с RGBвходом, либо видеоустройство со стандартным видеовходом и кодер цветности PAL (SECAM). Для подключения AVRZXSpectrumк VGA монитору необходим RGB-VGA конвертор (например, http://www.zx-kit.ru/katalog-1/zxkit-001).
Подключение AVRZXSpectrumV2_0 следует выполнять в соответствии с таблицей 1, пользуясь рис. 3
После подключения к видеоустройству подключите к соединителю XS1 клавиатуру. Для удобства работы можно наклеить на клавиши наклейки для клавиатуры ZXSpectrum, распечатанные на самоклеящейся бумаге (файл изображения находится в папке проекта).
Для подключения к устройству «магнитофона» потребуется аудиокабель «Джек 3,5 – Джек 3,5», при помощи которого соединитель XS3 стыкуется ко входу или выходу «магнитофона», в качестве которого может использоваться любое аудиоустройство с линейным выходом (входом). При работе с аудиоустройством следует отключать эквалайзер и все звуковые эффекты.
К соединителю XS2 (выход аудио) подключаются активные компьютерные колонки или вход усилителя НЧ, работающего на колонки. Можно также подключать высокоомные наушники.
Таблица 1
Контакт платы | Назначение сигнала | Контакт SCART | Примечание |
K1 | RGB ON | 16 | Переключение видеоустройства в режим RGB (для SCART)или цепь питания +5 В (для кодеров PAL (SECAM)). При работе с кодером PAL(SECAM) установите вместо резистора R36 перемычку. |
K2 | SYNC | 20* | Сигнал синхронизации |
K3 | BLUE | 7 | Синий компонент цвета |
K4 | RED | 15 | Красный компонент цвета |
K5 | GREEN | 11 | Зелёный компонент цвета |
K6 | GND | 4,5,9,13,17 | Общая цепь |
K7 | VIDEO | 20* | Выход ЧБ видеосигнала |
K8 | LEFT | 6 | Выход левого канала аудио |
K9 | RIGHT | 2 | Выход правого канала аудио |
* На вход синхронизации SCART (вывод 20) подаётся сигнал с выхода синхронизации SYNC устройства либо с его ЧБ видеовыхода, в зависимости от типа монитора.
В последнюю очередь к соединителю XS5 подключается внешний источник питания (например, зарядное устройство с кабельным соединителем mini-USB), чего происходит старт прошитой системы.
Работа с AVRZXSpectrumV2_0 ни чем не отличается от работы с обычным ZXSpectrum, поэтому на любые связанные с этим вопросы можно получить из многочисленных книг по ZXSpectum. Для проверки работоспособности устройства можно загрузить и пройти такие тесты, как TESTPROG, AUMT, Z80TESTS, ZEXALLи т. п. Загрузить эти тесты можно как с «магнитофонного» входа, так и с SDкарты (см. раздел «Работа в SDDOS»).
Работа в SD DOS.
Дисковая операционная система SD DOS предназначена для работы с картами памяти micro-SD в качестве внешнего накопителя. Карту памяти micro-SD для работы в SD DOS необходимо предварительно отформатировать в файловой система FAT32 и записать на неё файлы ZX Spectrum поддерживаемого формата. В настоящее время поддерживаются файлы формата . Z80 и .SNA. Список поддерживаемых форматов файлов расширяется.
Старт SD DOS происходит при нажатии на клавиатуре клавиши «F12». При этом если карта памяти не вставлена, на экране появляется сообщение «INSERT SD CARD» с просьбой вставить карту в соединитель. Как только карта вставлена, начинается диалог с ней на аппаратном уровне. Результат диалога отображается на экране. Так, например, можно видеть сообщение «SD CARD DETECTED», информирующее об обнаружении карты памяти, сообщение «INITIALISING … OK» говорит о нормальном завершении процесса инициализации SD карты, сообщение «FAT32 DETECTED» говорит о том, что файловая система FAT32 обнаружена. В конце диалога системы с картой появляется сообщение «STARTING COMMANDER … », предшествующее старту программы SD Commander, инструменту работы с файлами (см. рис. 7).
Рис. 7 – старт файлового менеджера SD Commander
SD Commander представляет из себя две панели навигации (левую и правую) по файловой системе (файлам и директориям). В панелях отображаются списки файлов в выбранной директории (по умолчанию – в корневом каталоге). Навигация по директориям и файлам осуществляется при помощи клавиш управления «вниз» (следующий файл), «вверх» (предыдущий файл или предыдущий уровень вложения), «вправо» (переход в правую панель), «влево» (переход в левую панель), «ENTER» (выбор файла или директории). Таким образом, для запуска файла необходимо пройти к нему по пути и выбрать его нажатием «ENTER».
Для сохранения файла на карту в формате .SNA необходимо в требуемый момент времени нажать и не отпускать клавишу F11, затем нажать F12. При запросе системы ввести имя файла с указанием расширения .SNA. Сохранённый файл появится в текущей директории.
В SD DOS также доступны следующие операции над файлами/директориями: переименование (F4), перемещение (F6), удаление (F8), создание ( F7 — для директорий).
Функции SD DOS расширяются, планируется поддержка самых распространённых форматов файлов для ZX Spectrum и всех стандартных операций работы с файлами, также планируется поддержка всех функций SD DOS на уровне команд Z80 типа EDхх, не занятых в микропроцессоре Z80. Также планируется функция смена программного обеспечения AVR ZX Spectrum с карты памяти, посредствам запуска ROM-файла, который будет записываться с карты памяти во внутреннюю FLASH память ЦП, что позволит не только обновлять ПО, но и загружать другие версии ZX Spectrum совместимых машин. О последних версиях программного обеспечения и новых функциях SD DOS можно узнавать у разработчика (контакты в конце статьи).
5. Программирование
В схеме устройства четыре микроконтроллера AVR, требующие программирования. Два из них – контроллер клавиатуры D4 и контроллер эмулятора музыкального сопроцессора D8 – программируются до монтажа на плату, а оставшиеся два – видеопроцессор D1 и центральный процессор D2 программируются после установки на плату через специально предусмотренные разъёмы для внутрисхемного программирования XP1 и XP2 соответственно.
При программировании потребуется внутрисхемный программатор, использующий ISP-интерфейс – сигналы MOSI? MISO, SCK и RESET. Возможная схема программатора, подключающегося к компьютеру через LPT порт, приведена на рисунке 8 (http://www.zx-kit.ru/katalog-1/zxkit-003-1).
Рисунок 8 — схема LPT программатора ByteBlaster MV
Схема программатора сделана на основе ALTERA ByteBlaster MV (http://www.altera.ru/cgi-bin/go?35)
и адаптеров для программы AVREAL (http://real.kiev.ua/old/avreal/ru/adapters.html).
Для прошивки микроконтроллера ATMEL выведен дополнительный разъем по стандарту ATMEL.
Применяется один и тот же десятижильный шлейф, который подключается к соответствующей паре разъемов.
Питание платы программатора берется с прошиваемой платы.
Для программирования будем подключаться через соединитель XP2 (ALTERA). В качестве ПО можно использовать программу Ponyprog или AVREAL. Программатор требует напряжения питания +5В, которое в случае программирования D4 и D8 подаётся от внешнего стабилизатора, а в случае программирования D1 и D2 подводится от платы AVR ZX Spectrum, подключенной к источнику питания.
Для прошивки контроллера клавиатуры D4 и контроллера эмулятора музыкального сопроцессора D8 будем использовать файлы …\\Soft\ Контроллер клавиатуры (D4)\ zxkeyboard_v2_0.hex и … \\Soft\Эмулятор AY (D8)\ AY_Emul.bin соответственно. Эти модули прописываются во FLASH память микроконтроллеров и являются исполняемыми программами. Программирование EEPROM не требуется. Биты конфигурации должны быть установлены в соответствии с таблицей 2
Таблица 2 – биты конфигурации контроллеров D4 и D8
Бит конфигурации | Для контроллера
D4 * |
Комментарий | Для контроллера
D8 * |
Комментарий |
LOCK1 | ~ | Защита ПО
на Ваше усмотрение |
~ | Защита ПО
на Ваше усмотрение |
LOCK2 | ~ | ~ | ||
DWEN | — | — | ||
EESAVE | ~ | EEPROM не используется | ~ | EEPROM не используется |
SPIEN | V | По умолчанию SPI разрешён | V | По умолчанию SPI разрешён |
WDTON | — | WDT не используется | — | WDT не используется |
BODLEVEL2 | — | Сброс по снижению напряжения питания
включен |
— | Сброс по снижению напряжения питания
включен |
BODLEVEL1 | V | V | ||
BODLEVEL0 | V | V | ||
RSTDISBL | — | По умолчанию | — | По умолчанию |
CKDIV8 | — | Деление частоты выключено | — | Деление частоты выключено |
CKOUT | V | Выход тактовой частоты разрешён | — | |
SUT1 | — | — | ||
SUT0 | — | V | ||
CKSEL3 | — |
Сконфигурирован внешний кварцевый резонатор |
— |
Сконфигурирован внешний кварцевый резонатор |
CKSEL2 | — | — | ||
CKSEL1 | — | — | ||
CKSEL0 | — | V |
* «V» означает активное (запрограммированное, «0»), «-» — неактивное (не запрограммированное, «1»), состояние бита конфигурации, «~» — на усмотрение пользователя.
При программировании видеопроцессора D1 и центрального процессора D2 программатор подключается к разъёму XP1 и XP2 соответствен6но и к устройству подводится питающее напряжение. Во FLASH память D1 зашивается файл …\\Soft\Видеопроцессор (D1)\videocpu.hex из папки проекта, во FLASH память D2 зашивается один из файлов …\\Soft\Центральный процессор (D2)\Pentagon128.hex (ZX_Spectrum_48K.hex, ZX_Spectrum_128K.hex, Open_se_basic 48 К.hex, Open_se_basic 128 К.hex) из папки проекта в зависимости от желаемой модели ZX Spectrum. Кроме того, в EEPROM память D2 зашивается файл …\\ Центральный процессор (D2) \DAA_TABLE.hex из папки проекта, который является таблицей результатов и флагов для эмуляции команды DAA Z80.
При прошивке также устанавливаются (программируются, «0») следующие биты конфигурации (одинаково для D1 и D2): EESAVE, BOOTRST, CKSEL3, CKSEL2, CKSEL1, CKSEL0.
Примечание – при программировании D1 рекомендуется устанавливать D2 в режим сброса установкой джампера на контакты 5 и 6 разъёма XP2, а при программировании D2 рекомендуется устанавливать D1 в режим сброса установкой джампера на контакты 5 и 6 разъёма XP1.
6. Обратная связь
Если у Вас есть замечания, пожелания по усовершенствованию устройства или вопросы к разработчику, просьба писать на Email .
Приобрести готовое устройство или печатные платы для самостоятельной сборки AVR ZX Spectrum V2_0 можно у разработчика, электронная почта Включите javascript, чтобы увидеть email , ICQ 615692808, Василий Лисицын. Также у автора можно узнать о последних версиях ПО и новых функциях устройства, получить консультацию по сборке, программированию устройства и поиску неисправностей.
Автор выражает свою благодарность Ивану Косареву (Санкт-Петербург), Игорю Титарь (Магнитогорск) и участникам Zx.pk.ru за содействие при разработке проекта.
7. Фото готового устройства
Видео о Радиоконструкторе AVR ZX Spectrum V2_0:
ПЭВМ Спектр
ПЭВМ Спектр
2019-2-12 22:42 Ретро компьютеры
Пришло время и мне собрать свой ZX Spectrum своими руками! Так случилось, что я работал с человеком, который в 90-е собирал спектрумы на заводе в нашем городе. У него осталось несколько вариантов частично запаянных плат спектрума и немного документации. Он отдал всё это дело мне…
Я выложил всю инфу на сайт zx.pk.ru (ссылка на тему). Как оказалось, мой вариант спектрума оказался почти неизвестным, а уж про документацию, никто и мечтать не смел! Мой экземпляр назывался просто ПЭВМ Спектр. На сайте zx.pk.ru его условно назвали «Калужский Спектрум». Как выяснилось, после детального изучения документов, этот спекртум выпускался кооперативом Квант г. Череповец. Я распаял частично запаянные платы спектрумов и начал работу по сборке своего спектрума. Но перед этим я отсканировал все документы, которые были у меня и сами платы в высоком разрешении.
Начал сборку… хотел запаять всё иностранными микросхемами, но это оказалось не просто…
После сборки получилось следующее:
Первый запуск был удивителен. Вроде как всё работало, но картинка никак не стабилизировалась. Подключал я спектрум по композиту к тв тюнеру Beholder 409 и он никак не мог правильно понять сигнал (так же как и led телевизор, и led монитор с композитным входом). При подключении спектрума по композиту возможен только черно-белый сигнал. Для цветной картинки нужно использовать SCART разъем на телевизорах, или схему преобразователя RGB сигнала в композитный. Что показывал тюнер можно увидеть ниже. Очень хорошо заметна заветная надпись Sinclair Research Ltd. Даже такая работа спектрума уже очень радовала.
Дальше проводилось расследование, из-за чего такая сбитая синхронизация и как это исправить. Больше спасибо форуму zx.pk.ru, и отдельная благодарность пользователю с ником Lion17, он очень много помогал в изучении проблемы. В результате всех мучений родилось 2 фикса под кодовыми названиями «привязка к черному» и «sync xor mod». Обе эти модификации исправляют видео сигнал, делая его ближе к стандарту всех современных устройств. Оба мода друг друга дополняют, поэтому их нужно использовать оба иначе нормальной синхры на этом клоне не будет. Ноги микросхемы D21 с 1-ой по 5-ю нужно отключить от платы, в моём случае я просто не вставлял их в панельку.
Все модификации я расположил с тыльной стороны платы на небольших текстолитовых подложках. Почти незаметно
Печатные платы модификаций:
sync xor mod.lay6
привязка к черному mod.lay6
Адаптер для подключения клавиатуры:
KB_Adapter.lay6
Полная документация данного спектрума, сканы плат в разрешении 1200 dpi:
spektr.pdf
spektrpcb.rar
После этих исправлений, композитный сигнал стал почти идеальным! Можно переходить к клавиатуре и какому-нибудь корпусу.
Коллега по работе вспомнил, что в гараже у него есть пару спектрумов, которые жалко было выкидывать, а место они занимали зря. Он отдал их мне. Среди них был спектрум на такой же плате и в корпусе от старого советского калькулятора + джойстик. Но выглядело это всё жутко стрёмно как внутри, так и снаружи.
Я сразу прикинул, что из этого всего можно было бы сделать и отпилил лишнюю часть корпуса, а вместо советской клавиатуры вклеил с помощью дихлорэтана клавиатуру от обычного компьютера. Получилось неплохо, а главное нажатия мягкие и четкие, ход клавиш очень маленький, нужно только наклейки на кнопки наклеить соответствующие.
Но вклеенная клавиатура была бутафорией, т.е. не работала. Для неё нужна была плата с контактными площадками. После раскопок в куче хлама, родилось следующее и очень хорошо работающее нечто . На магнитные пятачки резиновых мембран кнопок я наклеил алюминиевый скотч, т.к без него сопротивления не хватало, приходилось давить сильнее, а это не круто! Скотч отрабатывает на 100% и никаких проблем.
Как оказалось, модификацию, чтобы композитный сигнал был корректный, я упростил в этом клоне, до одной микросхемы. У микросхемы D21 нужно отрезать дорожки от 4-й и 5-й ноги. На 5-ю ногу подается сигнал H5 а с 4-й ноги через диод подмешивается к сигналу H6 и подается на мод привязки к черному.
Вот так выглядит упрощенный вариант:
В корпусе спектрума сделал разъем scart и композитные, только звук на будущее, сейчас там ничего нет, кроме спикера. Ну и джек 3.5мм для подключения магнитофона, или любого другого устройства с воспроизведением звуковых данных для спектрума, а так же кнопочку для включения, и разъем для джойстика.
Вроде, бы всё собрал, отладил… работает же! Но не хватает стабилизатора напряжения с выходным током больше 1А. Собрал несложный вариант на основе mc34063 с усилением мосфетом. Работает как ожидалось, ничего не греется и нагрузку держит без проблем!
Печатная плата стабилизатора (исправленная, на фото косяк..):
5v_stab.lay6
Вот такая длинная история моего первого спектрума… Сейчас он выглядит так, добавил кнопку сброса на корпус, наклейки… Совершенству нет предела, есть ещё, что модифицировать и улучшать, но и в таком виде, он уже стал удобнее и современнее!
Желаю удачи всем, кто захочет повторить мой опыт.
Внимание! Копирование, в том числе частичное, запрещено!Теги: FIX MOD схема печатная плата Schematic Modification schem pcb фикс zx spectrum спектрум спектр z80 инструкция manual documentation исправления модификации коррекция 1858в1 sync синхронизация привязка
Zx Spectrum
Вышла новая версия кроссплатформенного плеера и риппера чиптюн-музыки ZXTune b3410.
Основными достоинствами проекта является его кроссплатформенность, быстрый и глубокий поиск музыкальных модулей в больших объемах данных. Также плеер имеет множество функций, облегчающих работу с большими коллекциями треков: поиск и удаление дубликатов, множество плейлистов, асинхронное выполнение операций, экспорт, конверсия в популярные форматы и многое другое.
Плеер представлен в виде GUI-приложения на базе Qt (zxtune-qt) и в виде консольной программы (zxtune123). Также существует версия для ОС Android.
Список основных изменений относительно версии b2850:
- Добавлено:
- поддержка музыкальных форматов SID, несжатых YM, ET1, AYC, SPC, MTC, NSF, NSFe, GBS, SAP, HES, VGM
- поддержка контейнеров PCD6.1i, DSK, UMX, GZip, 7zip
- поддержка реального AY чипа через библиотеку dlportio
- zxtune-android: поддержка онлайн-каталогов ModLand, HVSC, ZXArt, Josh W
- zxtune-android: локализация для немецкого и испанского языков
- zxtune-android: навигация по трекам из области уведомлений
- zxtune-android: отображение прогресса загрузки директорий в браузере
- zxtune-android: отображение операций ввода-вывода в заголовке окна
- zxtune-android: последовательное воспроизведение треков из браузера
- zxtune-android: возможность передать файл трека в другие приложения
- zxtune-android: возможность делиться ссылками на треки из каталогов zxart.ee и zxtunes.com
- zxtune-android: интеграция с системой на открытие некоторых поддерживаемых типов файлов
- zxtune-android: отображение дополнительной информации на виджете экрана блокировки
- zxtune-android: возможность перемещать приложение на карту памяти
- zxtune-android: статистика по всему плейлисту или выбранным трекам
- zxtune-android: сохранение и восстановление последнего проигрываемого трека
- zxtune-android: поиск файлов в браузере
- zxtune-android: использование внешней памяти для кеша
- zxtune-android: виджет приложения на домашнем экране
- zxtune-android: установка фрагмента трека в качестве мелодии звонка
- zxtune-android: сортировка плейлиста
- zxtune-android: работа с архивами как с папками
- zxtune-qt: автоматический выбор на воспроизведение первого добавленного в плейлист трека
- zxtune-qt: перемешивание плейлиста
- zxtune-qt: горячие клавиши управления воспроизведением
- zxtune-qt: быстрая навигация по списку буквенными клавишами
- zxtune-qt: сохранение и восстановление последнего проигрываемого трека
- zxtune-qt: колонка с комментариями треков в плейлисте
- zxtune-qt: пункт «Сохранить как» для отдельных треков
- zxtune-qt: режим единственного экземпляра приложения
- Исправлено:
- найденные ошибки воспроизведения форматов AS0, ASC, SAA, YM, AY, SQD, PT3, STP, PT2, TFM
- обработка PCD, CC3, TurboLZ
- эмуляция beeper-треков
- обработка не-ASCII символов в данных треков
- zxtune-android: диагностика ошибок
- zxtune-android: кеш каталога zxtunes.com
- zxtune-android: поддержка мультимедиа кнопок
- zxtune-android: поиск карт памяти на современных устройствах
- zxtune-qt: избыточное обновление плейлиста при сканировании
- zxtune-qt: падение при добавлении пустой папки
Доступны сборки для Windows и различных дистрибутивов GNU/Linux (RedHat, Ubuntu, Arch Linux etc). Поддерживаются аппаратные платформы x86, x86_64, armhf (RaspberryPi). Во всех пакетах Qt/boost слинкованы статически, поэтому дополнительных зависимостей не требуется.
ZXTune для Android поддерживает устройства с минимальной версией 2.3.3 (api v10) и аппаратными платформами arm, arm-v7a и x86.
>>> Официальный сайт
android, linux, zx spectrum, звук, чиптюн
ZX Spectrum online emulator
ZX Spectrum online emulatorБольшинство клавиш штатной клавиатуры IBM PC соответствуют одноименным клавишам клавиатуры ZX Spectrum.
Ниже представлена полная таблица соответствия:
Клавиша IBM PC | Клавиша ZX Spectrum |
---|---|
0 … 9 | 0 … 9 |
A … Z | A … Z |
Ctrl | Symbol Shift |
Shift | Caps Shift |
Caps Lock | Caps Shift + 2 |
Стрелка влево | Caps Shift + 5 |
Стрелка вниз | Caps Shift + 6 |
Стрелка вверх | Caps Shift + 7 |
Стрелка вправо | Caps Shift + 8 |
Backspace | Caps Shift + 0 |
Кроме того, для управления можно использовать виртуальную клавиатуру, нажимая клавиши левой кнопкой мыши. Клавиша также может быть зажата поворотом колеса мыши. Это значит, что она будет в нажатом положении до следующего нажатия любой другой клавиши, если был поворот вверх, или до повторного нажатия именно на эту же клавишу в случае поворота вниз.
В правой области виртуальной клавиатуры также расположено колесо Kempston-мыши, которое можно вращать зажав левую кнопку обычной мышки, и три её кнопки.
Саму клавиатуру (впрочем, как и дисплей) можно перетащить в любое место рабочей области.
Онлайн-эмулятор ZX Spectrum на JavaScript
Реализована эмуляция следующего оборудования:
- процессор Z80 (включая большинство недокументированных особенностей)
- ПЗУ с переключением страниц 48/Turbo/128/TR-DOS
- ОЗУ общим объемом 512 Кб, реализованное по схеме Pentagon (через порт #7FFD)
- интерфейс Beta Disk
- дисплей с возможностью переключения отображения из 5 или 7 страницы памяти (через порт #7FFD)
- 40-клавишная клавиатура
- Kempston-мышка (с виртуальным управлением)
Другие возможности:
- открытие и сохранение образов в форматах TRD, FDI, SCL (можно использовать как конвертер из одного формата в другой, если разметка исходного диска совместима с целевым форматом)
- открытие и сохранение снимков SNA
- выбор способа отрисовки ( putImageData, drawImage, WebGL ) и масштабирования
- возможность выбирать место расположения виртуального экрана и клавиатуры
Проект некоммерческий, с открытым исходным кодом.
Буду признателен, если кто-нибудь поделится своей коллекцией образов, чтобы добавить их сюда.
Комментарии принимаются по адресу [email protected]
— бесплатный эмулятор спектра Unix
Что это?
Fuse (Free Unix Spectrum Emulator) изначально был, что неудивительно, эмулятором ZX Spectrum для Unix. Однако теперь он также перенесен на Mac OS X, которая может считаться, а может и не считаться вариантом Unix, в зависимости от вашей позиции защиты. Он также был перенесен на Windows, Wii, AmigaOS и MorphOS, которые определенно не являются вариантами Unix.
Какие функции у него есть?
- Точная эмуляция 16K, 48K (включая вариант NTSC), 128K, +2, + 2A и +3.
- Working + 3e, SE, TC2048, TC2068, TS2068, Pentagon 128, Pentagon «512» (Pentagon 128, модифицированный для дополнительной памяти), Pentagon 1024 и Scorpion ZS 256, эмуляция.
- Работает с истинной скоростью Speccy на любом компьютере, на котором вы его наверняка попробуете.
- Поддержка загрузки из файлов .tzx, включая ускоренную загрузку.
- Sound (в Windows и Mac OS X, а также в системах, поддерживающих ALSA, Open Sound System, SDL или OpenBSD / Solaris’s / dev / audio).
- Эмуляция джойстика Kempston.
- Эмуляция различных принтеров, которые можно подключить к Spectrum.
- Поддержка формата входного файла записи RZX, включая «режим соревнований».
- Эмуляция интерфейсов Currah μSource, DivIDE, DivMMC, Interface 1, Kempston mouse, Multiface One / 128/3, Spectrum + 3e, ZXATASP, ZXCF и ZXMMC.
- Эмуляция аудиоинтерфейсов Covox, Fuller, Melodik и SpecDrum.
- Эмуляция дисковых интерфейсов Beta 128, + D, Didaktik 80/40, DISCiPLE и Opus Discovery.
- Эмуляция сетевых интерфейсов Spectranet и SpeccyBoot.
- Поддержка Bluetooth-клавиатуры Recreated ZX Spectrum.
Чего не хватает?
- Довольно много! Однако теперь намного лучше, чем было раньше …
Загрузки
Fuse находится под лицензией GNU General Public License, версии 2 или новее. Пожалуйста, прочтите это перед загрузкой Fuse, если вы еще не знакомы с ним.
Unix
Пакеты доступны для некоторых дистрибутивов Unix; в общем, любые проблемы, относящиеся к пакетам, следует отправлять сопровождающему пакета.
Пакеты более старых версий Fuse также доступны для некоторых других дистрибутивов:
- Платформа Nokia Maemo имеет порт 1.0.0, предоставленный Альберто Гарсиа.
macOS
Встроенный порт для macOS от Фредрика Менье доступен в собственном проекте SourceForge здесь, а также в качестве импортера Spotlight для Mac OS X 10.4 пользователя Tiger. В качестве альтернативы исходная версия Fuse будет компилироваться в OS X 10.3 (Panther) или более поздней версии.
Окна
Порт Серджио Балдови на Windows 1.5.7 доступен здесь, а утилиты доступны здесь.
Android
БогДан Ватра портировал Fuse 1.3.2 на ОС Android, которая может работать на смартфонах, планшетах и телевизорах. Исходные файлы доступны на GitHub, а двоичные файлы — в Google Play.
Haiku
Adrien Destugues портировал Fuse 1.1.1 для Haiku, доступный на haikuports как app-emulation / fuse и app-emulation / fuse-utils.
AmigaOS 4
Крис Янг перенес Fuse 1.0.0.1 на AmigaOS 4 с бинарными файлами, доступными в Aminet как misc / emu / fuse.lha.
MorphOS
Q-Master перенес Fuse 0.10.0.1 на MorphOS, бинарные файлы доступны на AmiRUS.
PSP
Акоп Карапетян перенес Fuse на PSP. Двоичные файлы и исходный код на основе Fuse 0.10.0.1 доступны на странице Fuse PSP.
Wii
Порт для Wii, основанный на работе Бьорна Гислера, доступен на WiiBrew. Это основано на том, что по сути является 0.10.0.2.
Gizmondo
Доступен порт 0.9.0 на планшет Gizmondo. Источник был доступен на csie.org.
GP2X
Бен О’Стин создал порт GP2X, основанный на Fuse 0.6. Бинарные файлы и исходный код доступны на его домашней странице.
XBox
Crabfists’s сделал порт Xbox, основанный на Fuse 0.6. Бинарные файлы и исходный код доступны в проекте FuseX на SourceForge.
OpenDingux
Педро Луис Родригес Гонсалес создал порт OpenDingux, основанный на Fuse 1.5.7. Бинарные файлы и исходный код доступны на GitHub.
Карманный компьютерАндерс Холмберг портировал Fuse 0.4 на карманный компьютер как PocketClive.
МодельRetroFW
Педро Луис Родригес Гонсалес создал порт RetroFW, основанный на Fuse 1.5.7. Бинарные файлы и исходный код доступны на GitHub.
Смартфон Windows Mobile
Кейт Орбелл затем портировал PocketClive на смартфон как FuseSP.
Источник
Установка предохранителя
- Сначала проверьте требования ниже и убедитесь, что все нужные библиотеки установлены.
- Во-вторых, установите libspectrum.
- Получить исходный код (Подпись PGP) .
- Утилиты, ранее входившие в пакет Fuse, теперь доступны в собственном пакете (подпись PGP).Обратите внимание, что для их запуска вам все равно понадобится установленный libspectrum.
- Релизы исходного кода выше подписаны ключом освобождения предохранителя, ID D0767AB9, который имеет отпечаток 064E 0BA9 688F 2699 3267 B1E5 1043 EEEB D076 7AB9. Он отличается от ключа, используемого для подписи выпусков 0.6.0 (.1), поскольку я забыл кодовую фразу для этого ключа :-(.
Требования
- Требуется:
-
- Поддержка X, SDL, svgalib или framebuffer. Если у вас установлен GTK +, вы получите (гораздо) более приятный пользовательский интерфейс под X.
- libspectrum: формат файлов и информационная библиотека эмулятора Spectrum.
- Дополнительно:
-
- libgcrypt: возможность цифровой подписи файлов RZX (обратите внимание, что для Fuse требуется версия 1.1.42 или более поздняя).
- libpng: возможность сохранять скриншоты.
- libxml2: возможность загружать и сохранять текущую конфигурацию Fuse и захватывать BASIC видеофункции в SVG.
- SDL или libjsw: разрешить использование ввода с джойстика (не требуется для эмуляции джойстика).
- zlib: поддержка сжатых файлов RZX и заархивированных файлов.
- libbzip2: поддержка некоторых сжатых файлов.
- libaudiofile: поддержка загрузки из файлов .wav.
- Версии, предшествующие 0.10.0, использовали lib765 и libdsk Джона Эллиота для поддержки +3. 0.10.0 и новее включают эту поддержку изначально, поэтому эти библиотеки больше не нужны (или не используются).
Что нового?
1,5,7
- GTK + 3: Увеличить ширину записи смещения в браузере памяти
- GTK +: удалить дублирующуюся поверхность, код создания
- GTK +: удаление устаревших функций захвата gtk_device_ (un)
- GTK + / Win32: Добавить *.bin в качестве разрешенного типа файла для селекторов файлов и измените тип файла .fmf
- Улучшение обработки мыши Kempston от Fuse под GTK + 3.x
- Команда «Сохранить двоичный» теперь может снова сохранить 65536 байт (регрессия введена в 1.5.6)
- Различные мелкие исправления ошибок
1,5,6
- Регистр флагов Z80 теперь корректен после SCF и CCF
- Загрузчики Alkatraz «Вариант» (например, Gauntlet 3 и Shadow Dancer), программы загрузчика поиска «Вариант» (например,грамм. Lotus Esprit Turbo Challenge и Space Crusade) и погрузчики Dinaload (например, Astro Marine Corps) теперь ускорены
- Дополнительные улучшения при отключении фантомного машиниста после завершения загрузки файлов TAP или стандартных ROM TZX
- Сохранение и загрузка двоичных данных больше не увеличивает счетчик состояний и не запускает точки останова.
- Остановить воспроизведение / запись RZX при сбросе / изменении машины
- Различные мелкие исправления ошибок
1,5,5
- Повышение точности звука в 64-битных системах Unix
- Разрешить использование настоящих шляп / планшетов джойстика в коде джойстика SDL
- Различные мелкие исправления ошибок
1.5,4
- Добавить * .FMF как разрешенный тип файла в селекторы файлов
- Сохранить SCR из текущего файла отображения
- Использовать 44,1 кГц в качестве частоты звука по умолчанию
- Обновление до libspectrum 1.4.3 для исправления регрессии таймингов TC2048 и TC2068
- Различные мелкие исправления ошибок
1.5.3
- Отключить неактивные периферийные устройства после загрузки снимка
- Повторно включить звук после того, как фантомный наборщик закончит загрузку TAP, стандартного ROM TZX или +3 DSK изображений
- Обновление до libspectrum 1.4.2 для исправления записи файлов RZX, содержащих снимок, который нельзя сжать
1.5.2
- Эмуляция ошибки ПЗУ при загрузке блоков нулевой длины при использовании ленточных ловушек
- Фикс формата двусторонних +3 дисков
- Сброс спектра ускоряется, когда включен фантомный наборщик и файл загружается из меню
- Добавить параметры интерфейса для фантомной машинистки
- GTK + 3 UI: диалоговое окно браузера памяти позволяет перейти к определенному смещению
1.5,1
- Предотвратить сбой при попытке дизассемблировать инструкцию с большим количеством префиксов DD или FD
- Исправить сбой при установке переменных отладчика
- Предотвратить сбой при попытке профилировать инструкцию с большим количеством префиксов DD или FD
- GTK + UI: улучшено поведение кнопки по умолчанию в диалогах
- Интерфейсы GTK + и win32: поддержка шестнадцатеричных чисел в диалогах загрузки / сохранения двоичных файлов и поисковика.
- SDL UI: позволяет выбрать режим видео, используемый в полноэкранном режиме
1.5,0
- Снимки автозагрузки заменены «фантомным машинистом», который набирает «ЗАГРУЗИТЬ» или аналогичный
- Погрузчики Alkatraz (например, Cobra и Fairlight) теперь ускоряются
- Отладчик: убедитесь, что условные точки останова работают правильно
Развитие
Если вам просто нужны новости о новых версиях и тому подобное, доступен (малый объем) список объявлений-эмуляторов fuse-emulator. Если вы заинтересованы в разработке Fuse, это координируется через список fuse-emulator-devel и страницу проекта на SourceForge.
Последнюю версию Fuse всегда можно получить, просмотрев ветку master в репозитории git на SourceForge. Обратите внимание, что это не гарантирует компиляцию, не говоря уже о правильной работе. Кроме того, не ожидайте поддержки этой версии! (Вам также понадобится libspectrum из git; это из репозитория libspectrum). Точно так же утилиты доступны в репозитории fuse-utils.
Одна вещь, которой нет в системе отслеживания SourceForge (и сейчас она очень устарела):
- Дэвид Гарднер выпустил патч, обеспечивающий поддержку XVideo для пользовательского интерфейса Xlib, позволяющий окна произвольного размера.
Есть ли связанные проекты?
- libspectrum — это библиотека, используемая Fuse для обработки файлов различных форматов.
- Эмулятор ZX81 Майка Винна, EightyOne, также использует ядро Fuse Z80.
- JSSpeccy Мэтью Уэсткотта использует ядро Z80, основанное на переводе ядра Fuse в Javascript.
- SPRINT Александра Шабаршина, эмулятор Peters Plus super-Speccy, Sprinter. SPRINT использует ядро Fuse Z80 для эмуляции процессора.
- z80ex, библиотека эмуляции Z80 на основе ядра Z80 Fuse, используемая zemu и PocketSpeccy.
Схемы для ZX Spectrum + 2A / + 3, + 2B и + 3B
Схема:
Эти принципиальные схемы основаны на кропотливом анализе Руководства по обслуживанию Amstrad + 2A / + 3 и Руководства по обслуживанию Amstrad + 2B / + 3B, а также следующих трассировок электрических цепей вокруг плат для исправления ошибок в исходных схемах. Схемы были перерисованы с помощью редактора схем gschem из проекта gEDA с открытым исходным кодом.
Примечания:
Никаких гарантий точности этих схем не дается. Исходные руководства по обслуживанию содержали ошибки, и другие ошибки могли быть внесены в процесс записи. Хотя были предприняты все усилия, чтобы подтвердить, что ошибки точности схем время от времени обнаруживаются. Всякий раз, когда ошибка исправляется, выпуск схемы увеличивается, а дата изменяется.
Схемы + 2B и + 3B с большей вероятностью будут содержать ошибки, так как я не владею ни одной из этих плат и, следовательно, не могу отследить схемы.В настоящее время у меня также нет подробностей о полностью новой схеме модулятора звука, установленной на материнских платах ISSUE 4.
Если вы обнаружите какие-либо ошибки в любой схеме, сообщите мне.
Спасибо всем, кто помог открыть свои спектры, чтобы предоставить фотографии своих материнских плат и проследить дорожки вокруг платы
Физические отличия и фактоиды схем:
Материнская плата Z70830 была спроектирована таким образом, что ее можно было собрать как с +3, так и с + 2A в зависимости от того, какие позиции компонентов были установлены.На схеме показано, какие компоненты исключены из схемы каждой модели.
Первая версия материнской платы + 2A / + 3 (Z70830 ISSUE1) имеет несколько мелких ошибок, которые были исправлены заводскими модификациями и исправлены в компоновке платы Z70830 ISSUE2. Другим очень незначительным изменением между этими двумя версиями было изменение текста шелкографии для заголовка кабеля светодиода с «TO LED PCB» на просто «LED» с добавлением индикаторов «плюс» и «минус». Это остается таким же на всех других платах, несмотря на то, что светодиодный заголовок никогда не использовался на + 2B.
Еще одна вещь, которая присутствует на платах + 2B, но никогда не используется, — это точки слева от разъема питания, где кабель питания дисковода гибких дисков присоединяется к +3 и + 3B. Дополнительное любопытство заключается в том, что на Z70833 ISSUE1 и ISSUE2 прямоугольник шелкографии вокруг этих контактов, обнаруженный на платах +3 и + 3B, опущен, но он возвращается на ISSUE4. Таблички напряжения присутствуют на всех платах.
Странностью в цепи + 2А / + 3 является резистор R76.Этот резистор подключает активный высокий сигнал сброса (генерируемый IC15e и присутствующий на верхней контактной площадке 28 разъема расширения) через последовательное сопротивление 10 кОм ко входу IC15f. В +3 этот резистор кажется бесполезным, так как сигнал RESET никогда не может перекрыть выход IC18a.
Однако если плата собрана как + 2A; IC18 удален, так как он требуется только для интерфейса дисковода гибких дисков. Таким образом, нет никакого логического выхода, подключенного непосредственно к входу IC15f, поэтому он подтягивается вверх или вниз к выходу IC15e.Таким образом, цель R76 состоит в том, чтобы просто не допустить, чтобы вход IC15e оставался плавающим, когда плата Z70830 была собрана как + 2A.
Амстрад удалил R76 из схемы + 2B; однако следы схем и отверстия для компонентов остались на макете материнской платы Z70833 как для версий ISSUE1, так и для ISSUE2 (они были удалены на плате ISSUE4. Ни на одной из плат в этом месте нет маркировки шелкографии).
IC15f полностью не подключен к плате Z70833 ISSUE 1; удаление R76 оставляет вход плавающим.
R76 присутствует на материнской плате + 3B (Z70835 ISSUE1). Это может быть связано с тем, что, когда необходимые обновления были применены к компоновке платы Z70830 ISSUE2, тот факт, что R76 больше не нужен, был упущен из виду (все условия для установки внутреннего кассетного магнитофона были удалены, поэтому Z70835 никогда не будет собран без всех его микросхем. ).
На некоторых платах Z70833 ISSUE1 R45 опущен, а инвертированный тактовый сигнал, созданный IC15a (присутствующий в CKEXT на граничном разъеме), снова инвертируется IC15f и направляется на вход тактовой частоты ЦП.Это достигается с помощью соединительных проводов, установленных на заводе. Эта модификация также включает конденсатор 330 пФ между входом IC15a и 0v.
Это изменение часов было интегрировано в печатную плату Z70833 ISSUE2. Выходной тактовый сигнал с вывода 87 матрицы вентилей (IC1) больше не подключен к позиции компонента R45, которая все еще присутствует, но закорочена дорожкой печатной платы на верхней стороне платы. Компонент R45 не установлен. (На материнской плате ISSUE 4 позиция R45 удалена полностью).Упомянутому выше конденсатору присвоено обозначение C53, но он установлен не на всех платах ISSUE2.
Конденсатор 100 пФ установлен между шиной 5 В и выводом D6 ЦП на платах Z70833 ISSUE2 (кажется, установлен только на платах ISSUE2, наличие не подтверждено на каждой плате). На некоторых платах он прикреплен к контактам сокета ЦП со стороны пайки, на других — непосредственно к ножкам ЦП.
Плата Z70833 ISSUE4 добавляет конденсатор емкостью 100 пФ, обозначенный C250, с правой стороны IC14.Это похоже на мод на ISSUE2, но подключается между 5 В и выводом D0
. Pentagon 128 v1 (1991) | |||||||||||||||||||||||||||
Pentagon 128K v1 |
Pentagon 128K v1 |
Pentagon 128K v1 с обновлением YM-чипа |
Pentagon 128K v1 с обновлением YM-чипа | ||||||||||||||||||||||||
Pentagon 128 v2 + от MicroArt и Ассоциации технологий и микроэлектроники (1991) | |||||||||||||||||||||||||||
Pentagon 128 v2 + от MicroART и ATM |
Pentagon 128 v2 + by MicroART и ATM |
Pentagon 128 v2 + by MicroART и ATM |
Pentagon 128 v2 + by MicroART и ATM | ||||||||||||||||||||||||
Пентагон 128 v3 (+) от Солона (1993) | |||||||||||||||||||||||||||
Pentagon 128K V3 by Solon |
Pentagon 128K V3 by Solon |
Pentagon 128K V3 by Solon |
Pentagon 128K V3 by Solon | ||||||||||||||||||||||||
Пентагон 512/1024 КБ ОЗУ обновления | |||||||||||||||||||||||||||
Pentagon 1024K RAM upgrade by Sergey Bagan |
Pentagon 512K SRAM, обновление Hysk | ||||||||||||||||||||||||||
Пентагон 1024 | |||||||||||||||||||||||||||
Pentagon 1024 v1 от Дмитрия Михайловича Быстрова — Alone Coder (1999) | |||||||||||||||||||||||||||
Pentagon 1024 v1 от Д. М. Быстрова |
Пентагон 1024 v1 Д.М. Быстров |
Pentagon 1024 v1 от Д. М. Быстрова |
Pentagon 1024 v1 by D. M. Bystrov | ||||||||||||||||||||||||
Pentagon 1024SL Алексей Сергеевич Забин (2004-2009) | |||||||||||||||||||||||||||
Пентагон 1024SL v1.х (2004-2005) | |||||||||||||||||||||||||||
Pentagon 1024SL V1.00 by A. S. Zabin |
Pentagon 1024SL V1.4 by A.S. Забин |
Pentagon 1024SL V1.4, автор А.С. Забин |
Pentagon 1024SL V1.41, автор А.С. Забин | ||||||||||||||||||||||||
Пентагон 1024SL v2.xxx (2006-2009 гг.) | |||||||||||||||||||||||||||
Pentagon 1024SL V2.2, автор А.С. Забин |
Z-Controller v1.0 от А.С. Забина |
Pentagon 1024SL v2.666 от А.С. Забина |
Пентагон 1024SL v2.666LE Забина А.С. | ||||||||||||||||||||||||
Интерфейс Pentagon 512 для ZX Spectrum 128K + 2 от Velesoft — Иржи Велеба (2006. 05. 08.) | |||||||||||||||||||||||||||
Интерфейс Pentagon 512 от Velesoft |
Интерфейс Pentagon 512 от Velesoft |
Интерфейс Pentagon 512 от Velesoft |
Интерфейс Pentagon 512 от Velesoft | ||||||||||||||||||||||||
Интерфейс Profi (2009. 12. 12.) | |||||||||||||||||||||||||||
Profi interface от Velesoft |
Profi interface от Velesoft |
Profi интерфейс от Velesoft |
Profi interface от Velesoft | ||||||||||||||||||||||||
ZX4MB (2005. 03. 03. — 2006. 04. 03.) | |||||||||||||||||||||||||||
ZX4MB v001 от Ярека Адамски |
ZX4MB v106 от Ярека Адамски |
ZX4MB v315, автор Jarek Adamski | |||||||||||||||||||||||||
Версии Pentevo от NedoPC | |||||||||||||||||||||||||||
Pentevo rev A от NedoPC (2009 г., 28 августа) | |||||||||||||||||||||||||||
Pentevo rev A от NedoPC | |||||||||||||||||||||||||||
Pentevo rev B от NedoPC (2010. 01. 17.) | |||||||||||||||||||||||||||
Pentevo rev B от NedoPC |
Pentevo rev B от NedoPC |
Pentevo rev B от NedoPC |
Pentevo rev B от NedoPC | ||||||||||||||||||||||||
Pentevo rev C от NedoPC (2011. 07. 04.) | |||||||||||||||||||||||||||
Pentevo rev C от NedoPC |
Pentevo rev C от NedoPC |
Pentevo rev C от NedoPC |
Pentevo rev C от NedoPC | ||||||||||||||||||||||||
Pentevo Light Михаила Тарасова (2011.07.) | |||||||||||||||||||||||||||
Pentevo Light Михаил Тарасов |
Pentevo Light Михаил Тарасов | Pentevo, Pentevo Light (Pentagon Evolution, ZX Evo, ZX Evolution)
|