В клоне "Орель БК-08" имеется полностью доступные 64К ОЗУ, при этом дополнительные 16Кб подключаются по адресам ПЗУ командой OUT 127,2. Данное теневое ОЗУ использовалось для разных целей, в том числе теневые мониторы, вызываемые сигналом NMI; дополнительный буфер копирования при работе с IS-DOS. Запись по адресам ПЗУ приводила к записи в теневое ОЗУ независимо от того, было по нулевым адресам подключено ПЗУ или ОЗУ. Поэтому любые программы, осуществлявшие по каким-то причинам запись по этим адресам, портили содержимое теневого ОЗУ, в частности - теневой монитор, если он там находился. Причем со временем появлялось все больше таких программ, которые было невозможно взломать теневым монитором из-за этого.
Бейсик "Орели" был исправленным, там на самом деле существует два бага, из-за которых портится теневое ОЗУ. Один в калькуляторе, как уже упомянули, а другой - в подпрограмме "Scroll". Поэтому можно было скопировать орель-бейсик полностью в теневое ОЗУ и работать с ним оттуда. На этом были основаны турбо-загрузчики с кассеты: "родной" бейсик полностью копировался из ПЗУ в ОЗУ, после чего в подпрограммах загрузки и сохранения подправлялись константы, влияющие на скорость загрузки. Это позволяло загружать многие игры без их переделки, так как даже многие нестандартные загрузчики "без заголовка" обращались к подпрограммам из бейсика или копировали их оттуда с последующей модификацией.
Изменения бейсика "Орель" привели к несовместимости программ, поэтому еще одним вариантом использования теневого ОЗУ была загрузка туда стандартной прошивки Sinclair.
В принципе, несмотря не некоторые преимущества от использования патченного бейсика в теневом ОЗУ, эта идея имеет ограниченное применение, если запись по этим адресам не запрещена. В своей поздней схеме расширения до 256К я предусмотрел три страницы ОЗУ, которые замещали собой ПЗУ бейсика-48, 128 и TR-DOS, с блокировкой записи. Вот это действовало очень эффективно. Для основной работы в ПЗУ у меня были патченные под "Орель" прошивки, а если каким-то программам это не нравилось - я давал им эмуляцию ПЗУ с защитой записи и оригинальными прошивками. Тогда все работало.
---------- Post added at 21:26 ---------- Previous post was at 21:21 ----------
Что же касается мотивации разработчиков к установке 64К ОЗУ вместо 48К, при этом делая "лишние" 16К недоступными - это делалось из экономии. К моменту разработки отечественных клонов Spectrum цены на память изменились, так что две линейки микросхем памяти (16K - РУ6; 32К - РУ5Д1) стало ставить дороже, чем одну линейку РУ5В или РУ5Г. Место на плате тоже экономится. Это как сейчас решать, ставить ли "большую" микросхему на несколько метров памяти, не используя значительную ее часть, или искать старые РУшки, чтобы поставить столько памяти, сколько доступно. Второй вариант обойдется дороже во всех отношениях.
Я делал доработку Ленинграда для подмены ПЗУ на ОЗУ в режиме 48,
можно было подменить ROM48 или TR-DOS переключалось всё тумблерами
Скрытый текст
[свернуть]
Скрытый текст
Profi v5.03/1024k/палитра/FDD3,5""/FDD5,25"/HDD/XT-Keyb/Covox
Pentagon-1024 sl v 1.4 upgrade #EFF7 Gluk RTC
ZXM-Phoenix 1024k
ATM Turbo 2+ v7.10 512k
HIMAC HR42.04 48K
HIMAC 128
Ленинград 1[свернуть]
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)