Архитектура системыПорядок загрузки

Последовательность загрузки

Ниже собрана информация о последовательности загрузки Spectrum Next.

  • При первом включении машины,

    система защиты от “окирпичивания”

    загружает фиксированную версию Spectrum 48k и проверяет, удерживается ли комбинация определенных физических кнопок. Если да, то модуль обновления (см. ниже) загружается с SD-карты и запускается на ядре защиты от “окирпичивания”.

  • Если это не так, основное ядро перезагружается в FPGA из флэш-памяти, включая IPL (Initial Program Loader - Первичный загрузчик) в RAM. IPL отображает сообщение “Loading…” (которое появляется очень ненадолго) и загружает файл TBBLUE.FW из корня SD-карты. Если это не удается, отображается сообщение об ошибке (“Error initializing SD card!”), рамка становится красной, и код зацикливается.

  • TBBLUE.FW содержит 3 модуля; по умолчанию загружается модуль загрузки. Он считывает файлы Machines\Next\CONFIG.INI, Machines\Next\MENU.INI и Machines\Next\MENU.DEF с SD-карты и использует их для настройки параметров машины по умолчанию. Затем он загружает 3 образа ROM с SD-карты: один для интерфейса DivMMC, один для Multiface и один для самой Spectrum ROM. Для получения дополнительной информации о том, как это работает, см.

    https://gitlab.com/thesmog358/tbblue/-/blob/master/docs/config/config.txt

  • Загрузчик TBBLUE затем защищает от записи области ROM, отображает адресную память в стандартную схему Spectrum и сбрасывает процессор.

  • Стандартная настройка ROM прерывается DivMMC (как?), который запускает настройку ESXDOS. Это загружает четыре файла: SYS\ESXDOS.SYS, SYS\NMI.SYS, SYS\RTC.SYS и SYS\BETADISK.SYS. Это прикладное ПО для ESXDOS, драйвер NMI (немаскируемое прерывание) для кнопки DivMMC, драйвер часов реального времени (?) и эмулятор TRDos для ESXDos.

  • Завершается оставшаяся настройка Spectrum ROM, очищается экран ULA и выводится сообщение об авторских правах Sinclair.