Сообщение от
krotan
1. Наличие ОЗУ в странице-0 является обязательным условием для запуска любой версии CP/M, а не только этой.
Угу. Но нет в том же Пентагоне128 ОЗУ в странице-0, вот для этого (и не только для этого) ставят кеш, получаем что CP/M и называется для "машины с кешем".
Сообщение от
krotan
2. Почитайте прилагаемое описание - там упоминается, что кеш может быть разного объёма, а не только 16 Кбайт.
Вот, пожалуйста:
Код:
CACHE - 62256
──────────────────────────
В Пентагоне очень легко поставить CACHE-ОЗУ на 537РУ10.
(Схема от В.М.Г. опубликована в Спектрофоне-17. И не только
для Пентакона.) Hо с 2К мало от него пользы. Вот 16К - это
другое дело! Там же рассказано, как сделать и 16К - на двух
537РУ17 - их надо напаивать "бутербродом" друг на друга. Hо
гораздо удобнее взять одну буржуйскую микросхему
статического ОЗУ - 62256 (разные фирмы называют их по
разному, у меня стоит HM62256LP).
Вот тут появляется "серьезная" проблема - 62256 имеет
объем 32К. Hу 16К задействуем как положено. А куда б
применить остальные 16К? Сразу приходит мысль адресовать их
битом 4 #7FFD. Hо весь существующий софт под кеш писался с
учетом того, что при любом значении этого бита имеем один и
тот же кеш! Иногда такое необходимо! Поэтому _нельзя_
просто 1-ую ногу цеплять на бит 4 #7FFD!
Я решил сделать в своем компе вот что:
(рис.1)
1533КП11
┌──┬────┐ ┌──┬─ +5V
+5V ──────2─┤A0│MX │ │ │
ROM ─────14─┤A1│ │ █ █ Все резисторы по 1К
┌──11─┤A2│ │ █ █
═╧═ ├──┤ │ │ │
/DOSEN ──────3─┤B0│ Y0├─4─┤ │
с 10н. D66 ──┬──13─┤B1│ Y1├─12───┴── к 1н. 62256
└──10─┤B2│ Y2├─9────┬─███─┐
├──┤ │ │ │ ═╧═
#CFF7 bit1 ──────1─┤S │ │ │ │
#CFF7 /bit4 ────15─╡E0│ │ │ │ ┌──┐ 1533ЛЛ1
└──┴────┘ │ └1─┤1 │
/WR ────────────────────────2─┤ ├─3─ /WR 62256 (27н.)
│ └──┘
│ ┌──┐ 155ЛЛ2
└───2─┤1 │
с 9н. D66 ──1─┤ ├─3─┬─ CS_CACHE
└──┘ │ к 8н. D66
┌────────────────────────────┘
│ КД522 ┌──|<─── +5V
│ ├──|<─── +3V от батарейки
│ ├─────── к 28н. 62256
│ 155ЛЛ2 █
│ ┌──┐ █
└─6─┤1 │ │
/MREQ ──────7─┤ ├─5─┴── к /CS 62256
└──┘ (20н.)
Привязка дана к микросхемам Пентагона! Сигналы:
/DOSEN - 11н. D83 (1н. ПЗУ 27512); ROM - 12н. D62.
Hе забудьте на 26-ую ногу 62256 завести А13 (шина
А0-А15) с Z80, на 2-ую - А12, на 23-ю - А11. (Hа 22-ой
должен быть /RD. А остальные ноги подключаются как и у
ПЗУ.)
28-ая нога - питание, если подавать его как указано, то
информация в стат.ОЗУ при выключеном питании будет
сохраняться пока не сядет батарейка. А потребляет
статическое ОЗУ в режиме хранения ОЧЕHЬ мало. (Именно
поэтому применена 155ЛЛ2!). Для не-Пентагона есть одна
тонкость. Вот схема В.М.Г.:
┌──┐ 1533ЛЛ1 (рис.2)
A14 ─1─┤1 │
A15 ─2─┤ ├─3──────────────────────────┐
└──┘ 1533ТМ2 │
A7 ─────────────────┐ ┌─┬──┐ │
/RD ────────┐ │ +5V ─1─┤R│TT├─5────── BLOC_ROM
┌──┐ │ ┌──┐ │ ├─┤ │ │ (блокировка
A2 ─3─┤1 │ └10─┤1 │ └──────2─┤D│ │ │ основного ПЗУ)
/OIRQ ─4─┤ ├─6─9─┤ ├─8──────3─┤C│ │ │ ┌──┐
└──┘ └──┘ 10К ├─┤ │ └─13─┤1 │
S1/ +5V ──███──┬─4─┤S│ o─6─┬─12─┤ ├─11─ CS_CACHE
/NMI ─────/ ───────────────┘ └─┴──┘ │ └──┘
TURBO ─────────>├────────────────────────┘
КД522
Здесь последний элемент ЛЛ1 надо заменить на элемент 155ЛЛ2
и резистор на 1К (у ЛЛ2 выход - открытый коллектор), и
соединить его выход с одноименным выходом схемы, показаной
на рис.1. Или можно тут применить элемент ЛП8, как в
Пентагоне. а 13-ую и 10-ую ноги КП11 (рис.1) надо подавать
сигнал с 6-ой ноги ТМ2, на 1-ую ногу ЛЛ2 (рис.1) - подавать
с 3-ей ноги ЛЛ1.
Вместо серии 1533 можно поставить 555.
Можно, конечно, поставить тумблера на 1-ую и 15-ую ноги
КП11 и работать руками, но лучше сделать так:
bit1 и /bit4 - это биты порта #CFF7, получены вот таким
образом:
1533ИД7 (рис.3)
┌──┬────┐
A12 ─1─┤A0│DC ╞─15
A13 ─2─┤A1│ ╞─14
A14 ─3─┤A2│ ╞─13
├──┤ ╞─12
│ │ ╞─11─┐
A3 ─4─╡v1│ ╞─10 │
/OIRQ ─5─╡v2│ ╞─9 │ 1533ЛЕ1 1533ЛЛ1
A15 ─6─┤V3│ ╞─7 │ ┌──┐ ┌──┐
└──┴────┘ └───5┤1 ╞─4──4┤1 │
/WR ────────────────────6┤ │ ┌─5┤ ├─6─┐
└──┘ │ └──┘ │
┌────────────────────────────────────┘
│ ┌──┬────┐ │
└9─┤C │TT │ 1533ТМ8 │
RESET ─1─╡R │ │ │
├──┤ │ │
D1 ─4─┤D0│ Q0├─2── bit1 │
│ │ /Q0╞─3 │
D4 ─5─┤D1│ Q1├─7 │
│ │ /Q1╞─6── /bit4 │
D2 ─12┤D2│ Q2├─10─ bit2 │
│ │ /Q2╞─11 │
D0 ─13┤D3│ Q3├─15────────────┘
│ │ /Q3╞─14
└──┴────┘
У кого собраны GLUK-часы по доработаной схеме,
дешифратор уже есть. (И питание на 62256 можно взять
оттуда.)
Теперь, если порт сброшен, имеем простой CACHE 16K (1-ая
страница 62256). Hормальный! Если установить бит 4 в порту
#CFF7, то имеем CACHE-32К, где старший адрес - бит 4 #7FFD.
Если в нормальный CACHE-16К загрузить, к примеру, TR-DOS
5.04T (в ПЗУ у меня сидит TR-DOS 5.12F by REANIMATOR), то
установив биты 4 и 1 #CFF7, можно юзать проги критичные к
версии ТР-ДОСа. При этом у Вас будет и CACHE - подключится
0-ая страница!
Бит 0 порта #CFF7, будучи установлен, запретит прогам
доступ к этому порту до нажатия на RESET (если надо).
Есть еще одна интересная возможность - подключить ноги 2
и 11 КП11 (рис.1) вот таким образом:
┌──┐1533ЛА3 (рис.4)
/DOSEN ───┤& │
bit2 ─┬─┤ ╞── ко 2 н. КП11
#CFF7 │ └──┘
└─────── к 11 н. КП11
Тогда можно загрузить в страници CACHE-32K, к примеру, NeOS
и свой вариант бейсика-48, установить бит 2 #CFF7, и они
станут на места бейсика-128 и стандартного бейсика-48.
Запись при этом в них станет невозможна.
27 Feb 99 Roman Milukov
Сообщение от
krotan
4. В cp/m страница-0 является основным местом выполнения программ и использоваться в качестве кеша ни как не может.
Слово cache здесь не в том, общепринятом смысле используется. Ну вот как на Спектруме DiskEditor'ы все поголовно DiskDoctor'ами называются.