2 / 3 339
Версия для печати
ПЗУ
Основное ПЗУ компьютера выполнено на двух микросхемах по 8КБ. Под ПЗУ-0 DD72 (которое адресует первые 8КБ области ПЗУ) в схеме изначально предусмотрена розетка, но ни в одном экземпляре "Байта", которые я видел, она не была установлена. Для расширения памяти компьютера до 128К надо (хотя и необязательно) устанавливать ПЗУ 27256, а из-за отсутствия розетки приходится "выкусывать" ПЗУ DD72 с платы. Причина отсутствия розетки скорее всего такая же, как в случае с разъёмами для клавиатуры: нередко из розеток советского производства микросхемы вываливаются от небольших сотрясений. Сам был свидетелем, как в промышленной аппаратуре, чтобы избежать "отваливания" ПЗУ, последнее примотали скотчем к розетке. В другом случае была собрана хитрая конструкция из металлических пластин, скреплённых винтами, которая удерживала микросхему ПЗУ в розетке. Короче, проблема актуальная, и, чтобы её избежать, проще намертво впаять микросхемы ПЗУ в плату.
В подтверждение вышесказанного: экземпляр компьютера с микросхемами ПЗУ, установленными в розетках:
ПЗУ, установленные в розетки на плате «Байта»
ПЗУ, установленные в розетки на плате «Байта»
Качество контакта у советских розеток для микросхем неважное, даже несмотря на то, что контакты розеток позолочены. В микросхемах ПЗУ приходится подгибать контакты. Но несмотря на это абсолютно безглючной работы добиться не удаётся.
Все ПЗУ отмаркированы - на них краской написаны их порядковые номера по схеме, чтобы не спутать микросхемы при установке на плату.
Интересно, но к DD72 подводился сигнал А13 процессора, хотя в ПЗУ объёмом 8К он не используется. Это сделано в расчёте на то, чтобы вместо двух ПЗУ по 8К можно установить одно ПЗУ объёмом 16К или 32К (см. ниже по тексту).
Что же касается типов ПЗУ, то обычно устанавливались импортные ПЗУ 2764 (фото было сделано на плате компьютера, где выгорели ПЗУ, поэтому новые ПЗУ стоят на панелях, но изначально они были впаяны в плату):
Импортные ПЗУ 2764 на плате «Байта»
Импортные ПЗУ 2764 на плате «Байта»
Также ставились отечественные ПЗУ:
Советские ПЗУ на плате «Байта»
Советские ПЗУ на плате «Байта»
Советские ПЗУ на плате «Байта»
Советские ПЗУ на плате «Байта»
Бывали "Байты" с ПЗУ 27256. На проверку оказалось, что в нижних 16К ПЗУ чистое, а в верхних 16К расположена обычная "Байтовская" прошивка (на фотографии надписи маркером делал я сам). Почему прошивка была в верхних 16К? Потому что на вывод 27 ПЗУ DD72 подаётся лог.1, а для ПЗУ 27256 вывод 27 это сигнал A14, который выбирает нижние или верхние 16К ПЗУ, т.е. лог.1 выбирает верхние 16К.
ПЗУ 27256 от «Байта»
ПЗУ 27256 от «Байта»
Помимо основного ПЗУ в компьютере стояли ПЗУ 556-й серии (РТ5, РТ7). Две микросхемы РТ5 (DD10,DD11) вырабатывают сигналы видеоконтроллера, а РТ5 (DD66) и РТ7 (DD71) используются для коррекции прошивки основного ПЗУ в режиме совместимости (когда нажата кнопка "Совмест").
ПЗУ КР556РТ5,7 (DD66,DD71) на плате «Байта»
ПЗУ КР556РТ5,7 (DD66,DD71) на плате «Байта»
ПЗУ Байта отличается от ПЗУ обычного Спектрума. В нём прошит русский шрифт, добавлена поддержка расширенной клавиатуры. В режиме совместимости содержимое ПЗУ меняется так, чтобы оно было более похоже на ПЗУ Спектрума, но всё равно полного соответствия нет. Режим совместимости очень интересно сделан - чтобы не ставить лишние микросхемы ПЗУ типа 573РФ4 поставили одну КР556РТ7 (DD71) (2кб памяти), в которой записан код, которым замещается часть кода в Байтовском ПЗУ. Для управления этой РТ7 используется еще одна микросхема КР556РТ5 (DD66), которая в зависимости от обращения к областям памяти включает/выключает РТ7 (DD71). Замещение происходит при лог.1 на 9DD29 (т.е. дополнительное ПЗУ DD71 включается только при выполнении команды чтения порта #1F, а по аппаратному сбросу оно выключается). Данные по замещению областей памяти приведены в таблице:
Адрес на ША |
A0-A10 на DD71 |
Кнопка "СОВМЕСТ." |
#0000-#007F |
#000-#07F |
+ |
#0280-#02FF |
#080-#0FF |
+ |
#0300-#037F |
#100-#17F |
+ |
#0980-#09FF |
#180-#1FF |
+ |
#0A00-#0A7F |
#200-#27F |
+ |
#0B00-#0B80 |
#280-#2FF |
+ |
#0C80-#0CFF |
#300-#37F |
+ |
#1280-#12FF |
#380-#3FF |
+ |
#1300-#137F |
#400-#47F |
+ |
#1380-#13FF |
#480-#4FF |
+ |
#1400-#147F |
#500-#57F |
+ |
#1480-#14FF |
#580-#5FF |
+ |
#1500-#157F |
#600-#67F |
+ |
#3880-#38FF |
#680-#6FF |
+ |
#3900-#397F |
#680-#6FF |
+ |
#3980-#39FF |
#680-#6FF |
+ |
#3A00-#3A7F |
#680-#6FF |
+ |
#3A80-#3AFF |
#680-#6FF |
+ |
#3B00-#3B7F |
#680-#6FF |
+ |
#3B80-#3BFF |
#680-#6FF |
+ |
#3C00-#3C7F |
#680-#6FF |
+ |
#3C80-#3CFF |
#680-#6FF |
+ |
#3A00-#3A7F |
#700-#77F |
- |
#3A80-#3AFF |
#780-#7FF |
- |
Знак "+" соответствует положению кнопки "СОВМЕСТ" в нажатом виде, знак "-" - в отжатом.
На живом примере процесс "подмены" ПЗУ выглядит следующим образом: допустим, у нас нажата кнопка "Совмест" и мы пытаемся обратиться к ПЗУ по адресу #0280. В этом случае согласно второй строке таблицы ПЗУ DD66 отключит основное ПЗУ (DD72, DD72) и включит вместо него ПЗУ DD71. При этом при обращении к адресам ПЗУ #0280-#02FF будут выбираться адреса #080-#0FF в ПЗУ DD71, содержимое которых попадёт на шину данных.
Для пользователя все эти процессы включения/выключения ПЗУ незаметны. Мы просто в результате получаем тот или иной код из ПЗУ в зависимости от положения кнопки "Совмест".
Процесс доступа к ПЗУ "Байта" (например для эмулятора) можно описать при помощи алгоритма:
Алгоритм эмуляции ПЗУ компьютера «Байт»
Алгоритм эмуляции ПЗУ компьютера «Байт»
В ПЗУ "Байта" встроен тест памяти. Он запускается, если при сбросе держать нажатыми клавиши "ЫВА".