Архитектура системыСпецификации

Спецификации

Ядро ZX Spectrum Next еще не завершено, но цель - закончить ко второму кикстартеру. Тем не менее, большая часть запланированной функциональности уже реализована.

В моделях KS1 использовался Xilinx Spartan-6, а в KS2 используется Xilinx Artix-7 FPGA.

Краткое изложение текущих спецификаций машины:

  • CPU: Z80N (совместимый с z80 с некоторыми дополнительными инструкциями) работает на выбираемых программно скоростях 3,5 МГц, 7 МГц, 14 МГц или 28 МГц с состояниями ожидания.

  • COPPER: Сопроцессор, работающий независимо от ЦП, выполняет простые инструкции, которые могут изменять состояние nextreg. Например, он может изменять палитры, изменять режим отображения или воспроизводить стереомузыку. Copper синхронизирован с генерацией дисплея, поэтому он может вносить эти изменения в точных местах дисплея.

  • DMA: ZXN DMA, совместимый с подмножеством микросхемы Z80 DMA, может выполнять передачу данных между памятью и/или io, используя короткие двухтактные операции чтения и записи. В пакетном режиме zxn dma может отправлять байты с программируемой скоростью, что позволяет ему воспроизводить семплированную музыку, возвращая управление ЦП между передачами. В настоящее время zxn dma и ЦП совместно используют шину, и dma работает с текущей установленной скоростью ЦП.

  • RAM MEMORY: 768K ОЗУ в нерасширенной машине или 1792K ОЗУ в расширенной машине. Эта память доступна в банках по 16 КБ, как и в оригинальных 128K Spectrums, и может быть отображена как обычно, используя стандартные порты 0x7ffd и 0x1ffd. Дополнительный порт 0xdffd добавляет биты к порту 0x7ffd для доступа ко всем банкам памяти. Собственная схема переключения банков в zx next называется MMU. Эта схема делит одну и ту же память на страницы по 8 КБ и позволяет отображать любую страницу в любой слот по 8 КБ в 64 КБ адресном пространстве Z80.

  • ROM MEMORY: 64K ROM зарезервированы для ROM 0-3, как в Spectrum +3. Также доступно 32K Alt ROM, которые могут заменить обычные ROM; эта ROM программируется пользователем.

  • GRAPHICS: Дисплей состоит из слоев с программируемым приоритетом. Слои перечислены ниже.

    • ULA: Совместимые тайминги, состязание и поведение плавающей шины с 48k, 128k, +3 и Pentagon. Поддерживает аппаратную пиксельную прокрутку в направлениях X и Y и следующие разрешения:

      • 256x192 пикселей 32x24 атрибута в банке 5 (48k / 128k)
      • 256x192 пикселей 32x24 атрибута в банке 7 (128k второй дисплей)
      • 256x192 пикселей 32x24 атрибута по адресу 0x6000 в банке 5 (timex второй дисплей)
      • 256x192 пикселей 32x192 атрибута по адресу 0x4000 и 0x6000 в банке 5 (timex hi-colour)
      • 512x192 пикселей монохромный по адресу 0x4000 и 0x6000 в банке 5 (timex hi-res)
    • LoRes: Занимает тот же слой, что и ULA, при этом LoRes заменяет ULA там, где он включен. Поддерживает аппаратную пиксельную прокрутку в направлениях X и Y. Доступны два разрешения:

      • 128x96 4-битный цвет на пиксель по адресу 0x4000 или 0x6000 в банке 5 (режим Radastan, возникший на ZX UNO)
      • 128x96 8-битный цвет на пиксель, занимающий 0x4000 и 0x6000 в банке 5
    • Layer 2: Дисплей с пиксельной картой без конфликта цветов. Поддерживает аппаратную пиксельную прокрутку в направлениях X и Y. Может быть отображен в любом месте памяти, начиная с границы 16 КБ. Доступные разрешения:

      • 256x192 8-битный цвет на пиксель
      • 320x256 8-битный цвет на пиксель
      • 640x256 4-битный цвет на пиксель
    • Sprites: До 128 аппаратных спрайтов размером 16x16 пикселей с 8-битным или 4-битным цветом на пиксель. Минимум 100 спрайтов на строку можно отобразить в этом размере. Спрайты можно масштабировать 1x 2x 4x 8x, вращать, зеркально отображать и связывать вместе.
    • Tilemap: Аппаратный символьный дисплей в двух разрешениях (80x32 = 640x256 пикселей, 40x32 = 320x256). Поддерживает аппаратную пиксельную прокрутку в направлениях X и Y. Карта символов и глифы хранятся в программируемых местах в банке 5. Отдельные символы можно независимо вращать и зеркально отображать. Каждый глиф имеет размер 8x8 пикселей с 4-битным цветом на пиксель. Другой режим исключает вращение и зеркальное отображение в пользу глифов 8x8 пикселей, определенных как монохромные UDG, но с большим количеством информации о цвете, хранящейся в карте символов.

Некоторые режимы приоритета слоев позволяют слою 2 быть выделенным или затемненным ULA. Другой параметр позволяет тайлмапу и ULA трафаретить друг друга.

  • SOUND: Стереозвук воспроизводится через HDMI, 3,5-мм аудиоразъем или дополнительный внутренний динамик. Источники звука:

    • Beeper: Звуковые сигналы и звук ленты.
    • 3 x AY 8910: Расположены так, чтобы быть совместимыми с двойным расположением turbosound. Экземпляры AY можно запрограммировать как моно или в стерео режиме ABC или ACB.
    • 4 x 8-битных ЦАП: Два ЦАП назначены на левый канал, а два - на правый канал. Общие 8-битные периферийные устройства ЦАП в сообществе spectrum, такие как specdrum и soundrive, отображаются на эти ЦАП.
    • Raspberry PI I2S: Аудио, сгенерированное дополнительным ускорительным модулем Pi, можно смешивать во внутренний аудиопоток next или отображать на ear для загрузки ленты.