ZX Ferrum #03
27 февраля 2005
  Железо  

Схемы - "Второе 'окно'" - окно верхней памяти по адресам #8000-#C000.

Схемы - "Второе 'окно'" - окно верхней памяти по адресам #8000-#C000.
  Решил  поместить  статью  в этот номер. Хотя схема разработана
мной уже давно (то забуду о ней, то текст потеряю). Статья здесь
несколько дополнена и расширена.


                    Второе окно #8000-#bfff.

                                      (с) 2003 Терентьев Дмитрий

  Сперва  о  главном, зачем нужна эта схема? Нужна вот и все, об
остальном позже и подробнее!
  Данная   разработка  позволяет  обращаться  к  верхней  памяти
компьютера  (при  чем любого, где установлена данная разработка)
не  через окно в адресах #c000-#ffff, а в диапазоне #8000-#bfff.
То есть как бы открывается второе окно (не зря названа так стат-
ья).
  Что  это дает? Увеличение быстродействия программ, которые де-
лаю  пересылку  из одной страницы памяти в другую (за счет того,
что  не надо использовать нижнюю память под буфер, то есть уско-
рение  около  двух  раз),  или если нежелательно трогать обычные
порты  расширения  (здесь кстати получается некоторая унификация
стандартов памяти для машин > 128кб , сведение в один порт). Еще
пример,  в  странице #5 по адресам расположен диспетчер, который
открывает нужные страницы памяти и запускает программы.
  Ближе  к телу, вот схема. Состоит она из нескольких блоков.


                ┌──────────────────────────────┐
                │Вариант для 128-го компьютера.│
────────────────┴──────────────────────────────┴────────────────


                   Мультиплексирование окон.
                   ─────────────────────────

                                     ЛА3 или любой инвертор
          KП11                             v
        ┌──────┐                         ┌───┐
      14│ mux  │12                       │ & │
  2D0 ──┤B1│ Q1├── ND0          A15 ───┬─┤   │      ЛА3
      11│  │   │9                      │ │   o──┐  ┌───┐
  2D1 ──┤B2│ Q2├── ND1                 └─┤   │  │  │ & │
       5│  │   │7                        │   │  └──┤   │
  2D2 ──┤B3│ Q3├── ND2                   └───┘     │   o─── #80
       2│  │   │4               A16 ───────────────┤   │
  #80 ──┤B4│ Q4├── NEW#C0                          │   │
      13├──┤   │                                   └───┘
  OD0 ──┤A1│   │    OD0-2 - данные с порта #7FFD
      10│  │   │            с выводов TM9
  OD1 ──┤A2│   │    2D0-2 - данные с порта #78FD
       6│  │   │
  OD2 ──┤A3│   │    линии с порта #7FFD на мультиплексор (КП11)
       3│  │   │    разрезать,
  #C0 ──┤A4│   │    в разрыв вставить мультиплексор KП11
        │  │   │
       1├──┘   │    #C0 - старый сигнал выборки #C000
  #80 ──┤S     │    NEW#C0 - новый сигнал выборки #C000
        │      │    подать на вход мультиплексирования KП11 на
      15│      │    плате
      ┌─┤/E    │    старый сигнал отрезать
      │ │      │
      │ └──────┘    #80 - сигнал выборки второго окна
     ─┴─                  по адресам #8000-#BFFF
     GND



                      Выборка порта #78FD.
                      ────────────────────
         ЛА3
        ┌───┐               ЛЛ1
        │   │   VD1        ┌───┐
  A14 ──┤   │              │   │
        │ & o───┤>├──┬─────┤   │
  A13 ──┤   │        │     │ 1 ├───  #78FD
        │   │        │  ┌──┤   │
        └───┘        │  │  │   │
        ┌───┐        │  │  └───┘
        │   │   VD2  │  │
  A12 ──┤   │        │  │    VD1-VD2 - любые диоды
        │ & o───┤>├──┘  │    в случае глюков заменить
  A11 ──┤   │           │    на элемент ЛЛ1
        │   │           │
        └───┘           │
        ┌───┐           │
        │   │     ┌───┐ │   блокировка порта #7FFD
  A15 ──┤   │     │   │ │   ┌───┐    ┌───┐
        │ 1 ├─────┤   │ │   │   │    │   │
  A10 ──┤   │     │ 1 ├─┴───┤   │  ┌─┤   │
        │   │  ┌──┤   │     │ & o──┤ │ & o──> новый сигнал
        └───┘  │  │   │  ┌──┤   │  └─┤   │    выборки
        ┌───┐  │  └───┘  │  │   │    │   │    порта #7FFD
        │   │  │         │  └───┘    └───┘    подать вместо
  A9  ──┤   │  │         ^                    старого
        │ 1 ├──┘       старый сигнал
  A8  ──┤   │          выборки
        │   │          порта #7FFD
        └───┘


                          Порт #78FD.
                          ───────────


          ТМ8
        ┌──┬──┐
       4│  │  │2
  D0 ───┤D0│Q0├─── 2D0
       5│  │__│6       выход 2D1 инвертируется
  D1 ───┤D1│Q1o─── 2D1 для того чтобы при сбросе
      12│  │  │10      по адресу #8000 устанавливалась
  D2 ───┤D2│Q2├─── 2D2 страница номер 2.
      13│  │  │15
     ───┤D3│Q3├───
       9├──┤  │
#78FD───┤C │  │
       1│  │  │
     ┌──┤R │  │
     │  └──┴──┘
    ─┴─
    GND
────────────────────────────────────────────────────────────────

       ┌────────────────────────────────────────────────┐
       │Вариант для компьютеров с памятью больше 128 кб.│
───────┴────────────────────────────────────────────────┴───────

  В мультиплексоре окон добавить еще одну микросхему КП11.

          KП11
        ┌──────┐
      14│ mux  │12      ND3,ND4,ND5,ND6 соответствуют памяти
  2D3 ──┤D1│ Q1├── ND3  256, 512, 1024, 2048 килобайт.
      11│  │   │9       сигналы OD3-OD6 берутся с соответствую-
  2D4 ──┤D2│ Q2├── ND4  щих портов расширений (#1FFD,#DFFD и тд)
       5│  │   │7
  2D5 ──┤B3│ Q3├── ND5
       2│  │   │4
  2D6 ──┤B4│ Q4├── ND6
      13├──┤   │
  OD3 ──┤A1│   │
      10│  │   │
  OD4 ──┤A2│   │
       6│  │   │
  OD5 ──┤A3│   │
       3│  │   │
  OD5 ──┤A4│   │
        │  │   │
       1├──┘   │
  #80 ──┤S     │
        │      │
      15│      │
      ┌─┤/E    │
      │ │      │
      │ └──────┘
     ─┴─
     GND

  Порт #78FD можно сделать тогда по схеме:

          ИР23
        ┌──────┐
        │ reg  │
   D0 ──┤D0│ Q1├── 2D0    любой инвертор
        │  │   │        ┌──┐
   D1 ──┤D1│ Q2├────────┤  o── 2D1
        │  │   │        └──┘
   D2 ──┤D2│ Q3├── 2D2
        │  │   │
   D3 ──┤D3│ Q4├── 2D3
        │  │   │
   D4 ──┤D4│ Q5├── 2D4
        │  │   │
   D5 ──┤D5│ Q6├── 2D5
        │  │   │
   D6 ──┤D6│ Q7├── 2D6
        │  │   │
   D7 ──┤D7│ Q8├── 2D7
        ├──┘   │
 #78FD──┤CS    │
        │      │
      ┌─┤/E    │
      │ │      │
      │ └──────┘
      │
     ─┴─
     GND

───────────────────────────────────────────────────────────────

  Немного  поясню работу схемы. При попытке высветить по адресам
#8000-#BFFF  страницу номер 2, мултиплексор КП11 перехватит это,
и будет впечатывать по данным адресам страницу с номвром из пор-
та #78FD.


  Программа для проверки:

  ORG #6000 ;<#8000

  LD HL,#8000
  LD DE,#C000
  LD BC,#7FFD
  LD (HL),0
  LD A,#16
  OUT (C),A     ;включаем по адресу #c000 страницу #6
  LD (DE),A
  AND %111      ;преобразовываем
  XOR %010      ;номер страницы всегда надо ксорить по %10
                ;bit1 инверсный
  LD B,#78
  OUT (C),A     ;включаем по адресу #8000 старницу #6
  LD A,(DE)
  CP (HL)
  RET Z    ;все нормально, работает (есть доработка)
  RET      ;не работает (нет доработки)



Другие статьи номера:

От редактора - последние события из жизни издателя газеты.

Глюки - баг-репорты читателей газеты.

Железо - Подключение контроллера IDE (ц) Немо на Пентагоне.

Железо - Ремонт монитора цветного изображения "Электроника 32 ВТЦ 202".

Схемы - "Второе 'окно'" - окно верхней памяти по адресам #8000-#C000.

Аналитика - Проблемы развития Спектрума в 21-м веке! (по мнению железячника)

Схемы - Постоянные перепрограммируемые запоминающие устройства с ультрафиолетовым ститанием (ППЗУФ).

IS-DOS - "Эликон" вернулся? (фирма распротронитель компонентов для спектрума)

Приложение - Программа распаковки PK ZIP архивов в IBM.

Анонс - в следующем номере ждите...

Реклама - бесплатные обьявления и реклама.

Авторы - Адреса редакции.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Обзор - новые игры: RETURN TO HOME 4, CITADEL, KLADEMINER, BRIDGE PLAYER, CRUSHER, AMERICAN TURBO KING, RAD RAMP RACER, KUNG FU MASTER, CHOY LEE, SIDERAL WAR, ARKARUM, DIRT TRACK RACER, DOUBLE DRAGON 2, NIGHT BREED, THE CYCLES, MOONTORC, KOMMANDO 2.
НАM ПИШУT - Кoрoчe тут в ФПn2 пoчитaл типa "нaм пишут" и тoжe рeшил нaписaть...
Музыкалка - Обзор музыкальных демонстраций: Absent, Shock.
Обмен опытом - Советы по игре "Switch Blade".
Почтв - Разное. Газовая плита "GEFEST". Водопроводный кран смесителя. DA2oo4A: усилитель 1o+1oвт

В этот день...   7 мая