Совсем вылетело из головы, что делать с питанием статического ОЗУ ?
Напомню, какой его объём используется и какие функции оно выполняет в данном проекте:
В качестве статического ОЗУ используется микросхема GLT751208 в узком корпусе DIP-32. Его объём 64 КБайта, т.е. 4 классические страницы.
В этом проекте статическое ОЗУ выполняет 2 функции:
1 - По основному назначению, в качестве теневого ОЗУ, которое включается через чтение из порта #7B и выключается через чтение из порта #FB, оно подставляется в адресное пространство от #0000 по #3FFF и доступно на чтение и запись. Выбор страницы осуществляется через порт #7FFD - бит D4, который выбирает номер страницы ПЗУ. При этом доступны только 2 страницы из 4-х, т.е. 32 КБайта.
2 - Для подмены основного ПЗУ, в этом случае доступны все 4 страницы - все 64 КБайта. Можно подменить одновременно до 4-х страниц ПЗУ, предварительно загрузив в статическое ОЗУ соответствующие прошивки. В BIOS-Setup можно выбрать, какие страницы ПЗУ нужно подменить, в этом режиме, если включается страница ПЗУ, для которой включена подмена, то соответствующая страница статического ОЗУ подставляется в адресное пространство от #0000 по #3FFF и доступно только на чтение.
Для загрузки прошивки в статическое ОЗУ, нужно выдать в порт BIOS #FD37 бит D4 = 1, в этом случае оно подставляется в адресное пространство от #C000 по #FFFF и доступно на чтение и запись, номер страницы статического ОЗУ в этом случае выбирается через порт #7FFD - биты D0 и D1, которыми выбирают номер страницы ОЗУ, при этом бит D2 должен быть = 0 (при D2 = 1 в адресном пространстве #C000 - #FFFF будет обычное ОЗУ).
Функции страниц статического ОЗУ распределяются следующим образом:
Страница-0: может работать как главная страница теневого ОЗУ или может подменять 0-ю страницу ПЗУ "Gluk Reset Service";
Страница-1: может только подменять 1-ю страницу ПЗУ "TR-DOS";
Страница-2: может работать как дополнительная страница теневого ОЗУ или может подменять 2-ю страницу ПЗУ "Меню-128";
Страница-3: может только подменять 3-ю страницу ПЗУ "Basic-48".
Таким образом, если включить подмену только 2-х страниц ПЗУ - "TR-DOS" и "Basic-48", то будет одновременно работать и подмена выбранных страниц ПЗУ и доступно теневое ОЗУ через порты #7B/#FB в полном объёме - все 32 КБайта.
Если включить подмену страницы ПЗУ "Меню-128", тогда через порты #7B/#FB теневое ОЗУ будет доступно не в полном объёме - только 1 страница 16 КБайт.
Если включить подмену страницы ПЗУ "Gluk Reset Service", тогда классическая функция теневого ОЗУ через порт #7B/#FB будет недоступна.
Таким образом, возникает проблема:
Если в BIOS-Setup включить режим подмены ПЗУ, эта настройка сохраняется в микросхеме CMOS и будет действовать до тех пор, пока Вы не выключите этот режим. Поэтому если выключить питание компьютера, то загруженная ранее прошивка в статическом ОЗУ будет уничтожена и компьютер не сможет стартовать. И хотя этого не стоит пугаться, ведь BIOS-Setup по-прежнему доступен, можно зайти в BIOS-Setup и отключить подмену страниц ПЗУ, после чего компьютер нормально заработает. Но согласитесь, всё-равно это очень неудобно.
Теперь вопрос, как лучше эту проблему решить:
Питать микросхему GLT751208 от той же батарейки, от которой работают CMOS-часы, нельзя, потому что потребляет она около 1 мА и новую батарейку CR2032 полностью высадит за 10 суток.
Найти микросхему статического ОЗУ объёмом 64 КБайта и потребляющую в спящем режиме микроамперы, не удалось.
Ставить ещё одну батарейку некуда.
Но учитывая, что будет использоваться ATX блок питания, то предлагаю при выключенном компьютере питать статическое ОЗУ от дежурных +5в. В этом случае при выключении компьютера, загруженные прошивки в статическом ОЗУ будут сохраняться, и всё будет хорошо до тех пор, пока Вы полностью не обесточите системный блок, в этом случае потеря прошивки будет неизбежна.
P.s. Только что пришла мысль, что ещё можно совместить питание статического ОЗУ от дежурных +5в и от батарейки. Т.к. электропитание отключается обычно очень редко и не надолго, то переходить на питание от батарейки статическое ОЗУ будет редко. Конечно, если полностью обесточить системный блок и уехать на море на пару недель, то по возвращению придётся заменить батарейку.