Схема распределения памяти.

Схемы распределения памяти в конфигурациях Sprinter-1 и Sprinter-2 одинаковы и достаточно прозрачны. Фактически она представляет собой схему распределения памяти компьютера Scorpion, с наложенной на нее дополнительной схемой, которая позволяет произвольно устанавливать все страницы памяти, как ПЗУ, так и ОЗУ.

Каждая страница ПЗУ или ОЗУ имеет свой порт, в котором указывается действительный номер страницы из 256-ти страниц всех 4Mb. Страницы, проецируемые в различные окна адресного пространства процессора имеют свои собственные порты. Т.е. Страница, включаемая в адреса #4000..#7FFF, и страница номер 5 обычного Spectrum-овского распределения памяти, включаемая в адреса #C000..#FFFF имеют раздельные порты.

Всего таких портов страниц памяти - 32.

16 портов отвечают за номера страниц ОЗУ, подключаемые к адресам #C000..#FFFF. Еще три порта отвечают за подключение страниц ОЗУ к адресам #0000..#3FFF, #4000..#7FFF и #8000..#BFFF. Восемь портов используются для подключения различных страниц ПЗУ. Один порт - для подключения страницы КЭШ-а вместо ПЗУ. И один порт - это порт системного ПЗУ, подключаемого на место ПЗУ сразу после сброса машины по клавишам Ctrl+Alt+Del.

Оставшиеся 3 порта страниц памяти остаются на данный момент в резерве. Схема распределения памяти позволяет подключить в адресное пространство процессора не только ОЗУ или ПЗУ, но и порты и память ISA карт, вставляемых в слот.

При подключении в адреса #C000..#FFFF скорпионовских расширенных страниц ОЗУ, на их место можно переадресовать слоты. Для этого надо просто записать в порт одной из этих страниц значение, соответствующее ISA-слоту, к которому необходимо произвести обращение. Это значение так же указывает к чему ведется обращение, к портам или памяти.


Код:
                Схема распределения памяти Sprinter-а.


  Адресное пространство       Страничные порты             ПЗУ компьютера
  процессора                 подключаемых страниц          страницы по 16k
 ---------------¬  --------¬   ---------------¬            ---------------¬
 ¦ #0000..#3FFF +->+ порты +-->+ ROM_BASIC    +-->T--T--T->+ EXPANSION    ¦
 ¦              ¦  ¦ #7FFD,¦   +--------------+   ¦  ¦  ¦  +--------------+
 ¦              ¦  ¦ #1FFD +-¬ ¦ ROM_TR-DOS   +-->+  ¦  +->+ TR-DOS       ¦
 +--------------+  L-------- ¦ +--------------+   ¦  ¦  ¦  +--------------+
 ¦ #4000..#7FFF +----------¬ ¦ ¦              ¦   ¦  ¦  +->+ BASIC128     ¦
 ¦              ¦          ¦ ¦ +- - - - - - - +   ¦  ¦  ¦  +--------------+
 ¦              ¦          ¦ ¦ ¦ ROM_SYSTEM   +-->-  ¦  +->+ BASIC48      ¦
 +--------------+          ¦ ¦ +--------------+      ¦  ¦  +--------------+
 ¦ #8000..#BFFF +----¬     ¦ L>+ RAM_0000     +--->¬ ¦  +->+ SYSTEM ROM   ¦
 ¦              ¦    ¦     ¦   L---------------    ¦ ¦  ¦  +--------------+
 ¦              ¦    ¦     ¦   ---------------¬    ¦ ¦  +->+ SYSTEM ROM2  ¦
 +--------------+    ¦     L-->+ RAM_4000     +--->+ ¦  ¦  +--------------+
 ¦ #C000..#FFFF +¬   ¦         L---------------    ¦ ¦  +->+ CONFIG 2     ¦
 ¦              ¦¦   ¦                             ¦ ¦  ¦  +--------------+
 ¦              ¦¦   ¦         ---------------¬    ¦ ¦  L->+ CONFIG 1     ¦
 L---------------¦   L-------->+ RAM_8000     +--->+ ¦     L---------------
                 ¦             L---------------    ¦ ¦
                 ¦                                 ¦ ¦      ОЗУ компьютера
                 ¦ --------¬   ---------------¬    ¦ ¦     страницы по 16k
                 ¦ ¦ Порты +-->+ RAM_0        +--->+ ¦     ---------------¬
                 ¦ ¦ #7FFD,¦   +--------------+    +--->T->+ RAM_00       ¦
                 L>+ #1FFD +-->+              +--->+ ¦  ¦  +--------------+
                   ¦       ¦   +- - - - - - - ¦    ¦ ¦  +->+ RAM_01       ¦
                   ¦       +-->+ RAM_7        +--->+ L->+  +--------------+
                   ¦       ¦   +--------------+    ¦    ¦  ¦              ¦
                   ¦       +-->+ RAM_8        +->T-¦--->+  +- - - - - - - +
                   ¦       ¦   +- - - - - - - +  ¦ ¦    L--+ RAM_7F       ¦
                   ¦       +-->+              +->+ ¦       +--------------+
                   ¦       ¦   +--------------+  ¦ L--->T->+ RAM_80       ¦
                   ¦       +-->+ RAM_F        +->+->¬   ¦  +- - - - - - - +
                   L--------   L---------------     ¦   ¦  ¦              ¦
                              Внешние устройства    ¦   ¦  +--------------+
      -------------------¬     ---------------¬     ¦   +->+ RAM_FE       ¦
             Порты       +---->+ ISA_1        +<----+   ¦  +--------------+
             компьютера  ¦     +--------------+     ¦   L->+ RAM_FF       ¦
                         +---->+ ISA_2        +<----+      L---------------
                         ¦     +--------------+     ¦
                         +---->+ HDD          +<----+
                         ¦     +--------------+     ¦
                         +---->+ OVER DEVICES +<-----
      --------------------     L---------------


                                Рисунок 2.
В других конфигурациях схема распределения памяти упрощается для освобождения ресурсов ППЛМ. Могут отсутствовать порты #1FFD и #7FFD, а так же упрощается схема работы с устройствами, отображаемыми на память.