9. РАСШИРЕНИЕ ПАМЯТИ СПЕКТРУМа.
Микропроцессор Z80, как известно, может обслуживать ад-
ресное пространство размером в 64К. В стандартном компьюте-
ре оио распределено следующим образом.
Адреса даны в шестнадцатиричном ко-
де. В низших адресах от 0000 до 3FFF рас-
полагается ПЗУ компьютера объемом 16К,
содержащее операционную систему СПЕКТРУ-
Ма.
Память в адресах с 4000 до 7FFF вы-
полнена иа 8-мм микросхемах дмиаммческой
памяти ORAM типа 4116 с организацией
16Кх1. Отечественный аналогом являются
инкросхеиы К565РУЗ или К565РУ6 (с однин
источинкон питания). Дополнительная па-
нять 32К в адресах с 8000 по FFFF пред-
ставлена восеиью микросхемами ORAM 64Kxl,
у которых (у всех одинаково) отбракована
одна из областей - левая, правая, верхняя
или иижияя. Отечественный анелогом яв-
ляются "половинки" ннкросхен К565РУ5-
К565РУ5Д1 и К565РУ5Д2.
Что дает использование отдельных полей памяти? Этот
вопрос повторяется очень часто, поэтому вкратце осветим его.
Контроллер дисплея в фирменном СПЕКТРУМе выполнен иа
одной БИС программируемой логической матрицы ULA (UncoBitted
Logic Array).
В саиодельиых коипьютерах функции ULA выполняет схеиа,
состоящая нз 20-40 инкросхеи. Причеи, иногие варианты сано-
дельного СПЕКТРУМа различаются именно построением контролле-
ра дисплея н количеством микросхем, затраченных иа него.
Оперативная память дисплея СПЕКТРУМа расположена в ад-
ресах: 4000-57FF - панять точек экрана, 5800-5AFF - нанять
атрибутов. Через каждые 20 ис контроллер дисплея СПЕКТРУМа
аппаратным образом обязан считать информацию из этой области
для регенерации изображения на экране дисплея, что он и де-
лает 64 раза во время длительности каждой строки - 32 раза
считывает по 8 точек строки, состоящей из 256 точек и чере-
дует это с 32-кратным считыванием атрибутов знакомест, в
состав которых входит данная строка. Понятно, что во время
этих считываний микропроцессор не может обращаться к микро-
схемам памяти, в которых расположена память дисплея. В фир-
менном компьютере этот конфликт решен так, что если на мо-
мент регенерации изображения на экране дисплея процессор,
выполняя программу, обратится к этим микросхемам, то на него
аппаратно перестают подаваться тактовые импульсы. Это, ко-
нечно, замедляет выполнение программы, но не очень сильно,
так как, во-первых, не замедляется работа с "верхними" 32К
памяти, которые физически выполнены на других микросхемах,
во-вторых, процессор "свободно" работает с "нмжиими" 16К -
обращаясь к ПЗУ СПЕКТРУМа и, в-третьих, он имеет возможность
работать даже и с экранной областью памяти, так как регене-
рация изображения происходит неравномерно, что показано на
диаграмме.
Работа процессора приостанавливается только при одно-
временном обращении к памяти в моменты "а" и "Ь", когда: "а"
- происходит считывание в буфер байта точек экрана, "Ь" -
считывается байт атрибутов знакомест. Все остальное время -
во время обратного хода по кадрам, по строкам, во время вы-
вода бордюра в верхней, нижней, левой и правой частях экра-
на, а также внутри основной рамки изображения в моменты "с",
процессор работает без ограничения. Эти вышеперечисленные
во-первых, во-вторых, в-третьих и объясняют довольно высокую
скорость работы графики, хорошее звуковое сопровождение и
другие прелести СПЕКТРУМа.
Из самодельных еналогов наиболее полно копируют идеоло-
гию и архитектуру оригинального СПЕКТРУМа те, что используют
раздельную память, например, "Московский вариант". В вариан-
тах с общим полем памяти используются микросхемы 64Kxl, ниж-
ние 16К которых как бы "затеняются" ПЗУ. Использование обще-
го поля памяти сокращает общее количество микросхем на 12-15
корпусов, уменьшает потребление компьютера и его размеры, то
есть обладает несомненными достоинствами. Сложность, пожа-
луй, лишь в том, что для сохранения прежней скорости работы
программ приходится повышать частоту обращения к памяти, что
повышает требования к быстродействию микросхем памяти, их
согласованию с другими микросхемами и т.п. Процессор в таких
вариантах схем приостанавливается или остановкой тактов, или
с помощью сигнала WAIT.
Следует также отметить, что оригинальный "Sinclair 128+"
тоже выполнен по схеме с общим полем памяти, и в первые годы
после его появления иа рынке пользователи часто отмечали не-
которую несовместимость с ним программ, написаииых ранее для
"Spectrum 16К" и "Spectrum 48К", но в программах, написаииых
позже, программисты, видимо, учли архитектуру 128-го и по-
этому с несовместимостью программ практически сталкиваться
не приходится.
Теперь рассмотрим некоторые возможности изменений и до-
полнений в устройстве памяти СПЕКТРУМа.
Нужно отметить, что всякие изменения и дополнения в ар-
хитектуре не могут быть учтены фирменным программным обеспе-
чением (исключение составляет ресширение памяти до 128К, вы-
полненное по тому же принципу адресации, что и в оригинале)
и могут представлять для Вас интерес в том случае, если Вы
готовы отражать эту иовую архитектуру и в программах.
Один из способов расширения памяти - это введение стре-
ничной адресации. Таким способом можно увеличить память до
очеиь знечмтельиой величины. Например, если использовать хо-
тя бы один порт ввода/вывода, то записывая в него байт дан-
ных, уже можно адресовать 256 страниц, дешифрируя этот байт
данных.
Для управления включением страниц можно использовать
сигнал CAS - сигнал выборки, приходящий на 15-й вывод восьми
микросхем памяти. Все выводы микросхем памяти, за исключени-
ем только вывода сигнала CAS, подключаются параллельно ос-
новной памяти. Работать в данный момент будет та страница,
до которой доходит сигнал CAS, прохождением которого управ-
ляет дешифратор адреса страниц.
На рис. 39 показано, как к основной памяти 32К (для ком-
пьютеров с раздельными полями памяти (КРПП)) можно присоеди-
нить 15 страниц по 32К каждая. Разумеется, если подключается
так много микросхем, то нужно буферизовать все шины, т. е.
эта схема даиа как пример одного из подходов к расширению
памяти.
На рис. 40 показано, как увеличить память на 32К для
фирменного СПЕКТРУМа или для КРПП. Для этого надо "половин-
ки" микросхем заменить на целые 64Kxl.
Для получения старшего адреса динамической памяти DRAM7
на одии вход мультиплексора подается А14, а другой, в зави-
симости от того, какая из половинок используется, соединен с
землей или плюсом источника питания. Вот на него и нужно по-
дать выход триггера, который является портом ввода/вывода с
адресом 7FF0. Адрес Вы можете выбрать по своему усмотрению,
изменив соответствующим образом дешифрацию. Пунктиром обве-
дена часть схемы компьютера.
Конденсатор обеспечивает начальную установку байка 0.
Переключение байка данных происходит по команде из Бей-
сика OUT 32765,X, где X - любое число от 0 до 255. При этом
включение дополнительных 32К можно контролировать по свето-
диоду. Обратное переключение - по команде IN 32765,X.
В машинных кодах нужно выполнить цепочку команд
LD ВС,7FFD
OUT(C),А
Перед заменой банка- памяти необходимо перенести стек
вниз командой CLEAR 32767, иначе после замены нарушится нор-
мальная работа процессора.
Для компьютеров с общим полем памяти, у которых нижние
16К "затеняются" ПЗУ, было бы интересно иметь возможность
пользоваться этими 16К с 0000 по 3FFF. Например, можно было
бы скопировать в 9ту область памяти ПЗУ и пользоваться ею
при отключенном ПЗУ. Это позволило бы вносить в ПЗУ всевоз-
можные изменения: уменьшать некоторые константы в подпро-
граммах ввода/вывода данных иа магнитофон, что дало бы воз-
можность, при хорошем качестве магнитофона и ленты, хранить
данные с большей плотностью и быстрее выгружать и загружать
их, оперативно изменять шрифты, хранящиеся в ПЗУ, загружать
русский шрифт, использовать свободные 1170 байт ПЗУ для хра-
нения нужных подпрограмм, а также проводить работу по усо-
вершенствованию самой операционной системы СПЕКТРУМа или
интерпретатора Бейсика.
Для решения этой задачи можно порекомендовать следующий
подход. Необходимо отыскать на схеме оигнал ROMCS (RDR0M),
т.е. сигнал, осуществляющий выбор микросхемы или микросхен
(если ПЗУ выполнено не на одной микросхеме).
Этот сигнал обычно формируется из сигналов А14, А15,
RD, MREQ. Когда зти сигналы в логическом нуле - выбрано ПЗУ.
ROMCS (RDR0M) обычно приходит на 20-й или 22-й вывод микро-
схемы ПЗУ.
Найдя схему формирования сигнала ROMCS (RDROM), нужно
осуществить в ней доработки для перехвата сигнала А15. На-
пример, в схеме "Ленинградский вариант" сигнал RDROM форми-
руется так, как показано иа рис. 41.
Видно, что когда не выбрано ПЗУ, то выбирается ОЗУ, по-
этому, если перехватить сигнал А15, то при любом адресе па-
мяти выбираться будет ОЗУ, в том числе и та область, которая
расположена "под ПЗУ". Перехват можно осуществить так, как
показано на рис. 42. Сигнал на блокировку приходит со схемы
на рис. 40. Это тот же выход триггера, что идет на мульти-
плексор для выбора дополнительного блока памяти.
В "Новосибирском варианте" перехват можно осуществить
иа входе в PLM К556РТ1 - DD10, вывод 9. В варианте "Балти-
ка" - это вывод 3 микросхемы 034.
В заключении приведем конкретную схему расширения памя-
ти "Ленинградского варианта" СПЕКТРУМа до 128К, программно
совместимую с фирменным "128+" (рис. 43):
1. Сигнал CHSCR подключить к выводу 13 микросхемы D17,
предварительно отключив его от "земли".
2. Сигнал А14(ROM) подключить к выводу 27 ПЗУ 27256,
установленной иа место микросхемы D29. Это ПЗУ должно содер-
жать в себе и "старое" и "новое" ПЗУ, в отличии от ПЗУ 27128
"СПЕКТРУМа 48".
3. Сигналы А141 и А15' подключаются к выводам 10 и 13
микросхемы 016, которые предварительно надо отключить от ад-
ресных линий А14 и А15.
4. Сигнал CAS0 подключается к выводам 15 микросхем ОЗУ,
установленным на плате; от которых предварительно отключа-
ется сигнал CAS.
5. Сигнал CAS1 подключается к выводам 15 второй линей-
ки микросхем ОЗУ, напаянных на микросхемы ОЗУ, установленные
в плате.
6. Сигнал К1 снимается с 03.2.
Карта прошивки микросхемы DD4 К556РТ4
(с) 1990 "Сделай сам" & МОА.
|
0 |
1 |
2 |
3 |
4 |
5 |
б |
7 |
8 |
9 |
А |
В |
С |
D |
Е |
F |
00 |
С |
D |
Е |
F |
С |
D |
Е |
F |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
10 |
А |
А |
А |
А |
А |
А |
А |
А |
8 |
9 |
А |
В |
4 |
5 |
б |
7 |
20 |
4 |
5 |
б |
7 |
4 |
5 |
б |
7 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
30 |
6 |
6 |
6 |
6 |
6 |
6 |
6 |
6 |
4 |
5 |
6 |
7 |
4 |
5 |
6 |
7 |
40 |
С |
D |
Е |
F |
С |
D |
Е |
F |
D |
D |
D |
D |
D |
D |
D |
D |
50 |
Е |
Е |
Е |
Е |
Е |
Е |
Е |
Е |
С |
D |
Е |
F |
С |
D |
Е |
F |
60 |
С |
D |
Е |
F |
С |
D |
Е |
F |
D |
D |
D |
D |
D |
D |
D |
D |
70 |
Е |
Е |
Е |
Е |
Е |
Е |
Е |
Е |
С |
D |
Е |
F |
С |
D |
Е |
F |
80 |
8 |
8 |
8 |
8 |
8 |
8 |
8 |
8 |
9 |
9 |
9 |
9 |
9 |
9 |
9 |
9 |
90 |
А |
А |
А |
А |
А |
А |
А |
А |
В |
В |
В |
В |
В |
В |
В |
В |
АО |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
ВО |
б |
6 |
б |
б |
б |
б |
6 |
6 |
7 |
7 |
7 |
7 |
7 |
7 |
7 |
7 |
СО |
С |
D |
Е |
F |
С |
D |
Е |
F |
D |
D |
D |
D |
D |
D |
D |
D |
DO |
Е |
Е |
Е |
Е |
Е |
Е |
Е |
Е |
С |
D |
Е |
F |
С |
D |
Е |
F |
EO |
С |
D |
Е |
F |
С |
D |
Е |
F |
D |
D |
D |
D |
D |
D |
D |
D |
FO |
Е |
Е |
Е |
Е |
Е |
Е |
Е |
Е |
С |
D |
Е |
F |
С |
D |
Е |
F |