
        Имеет место  загрузчик  TSR-программ формата .COM в High Memory
(64K выше 1М) с целью освобождения полезной жилой  площади.  Называется
HiMLoadC (Хайм лоуд Си). Предварительно должен быть загружен HIMEM.SYS.
Не стоит ждать чудес.  Мягко говоря,  далеко не все COM-резиденты могут
быть успешно загружены.
        Условия функционирования резидента в  HiMem  вытекают  из  того
факта, что PSP для него прибит гвоздями и равен 0FFFFh:
        - его  сегментные  регистры  - это святое;  программа не должна
ссылаться на свои собственные объекты,  будь то данные или код програм-
мы, смещая сегменты относительно PSP (0FFFFh + 1 = 0);
        - программа не должна пользоваться  начальным  параграфом  PSP,
как то  MemTop  (2),  Avail  (6),  адресами завершения (0а) и обработки
Ctrl/Break (0e),  а  также  пытаться выйти по jmp PSP:0,  поскольку это
всё-таки ПЗУ (BIOS);
        - Dos  functions,  связанные с файловыми операциями выполняются
не корректно;
        - возможно загрузить в HiMem только одну программу.

        По этим причинам класс загружаемых резидентов весьма ограничен.
Попытка загрузить KEYRUS (SP43) или CALC (SP42) Гуртяка приводят к раз-
валу  Dos'а,  поскольку  обе они пытаются устроиться поудобнее в памяти
после загрузки.  А вот HALC Кохманюка (SP44) с  успехом  выгружается  в
HiMem.  Правда при установке он пытается вывести своё приветствие с по-
мощью 40-й функции Dos'а (Write to a File or Device) на стандартное ус-
тройство вывода Stdont,  в результате чего получается нечто нечленораз-
дельное со звуковым сопровождением.  Этого можно избежать, назначив вы-
вод на NUL.  А в остальном после загрузки,  он замечательно справляется
со своими обязанностями,  не обременяя память своими 5К.  Также успешно
грузится в  HiMem редактор командной строки DOSEDIT.  Неудачей закончи-
лась попытка запихнуть PC-CACHE из пакета PCTOOLS V6.  Других  экспери-
ментов не проводилось.  Я кстати был бы весьма признателен Д.Гуртяку за
возможность загрузки драйвера KEYRUS в HiMem.  При этом не стоит задача
минимизации памяти,  наоборот,  можно вложить максимальные возможности,
всё равно 64К пропадают. То есть выглядело бы это как опционная возмож-
ность предоставления максимального сервиса без сборки в памяти заказан-
ной конфигурации - работа as is.

        Вызов загрузчика следующий:

>himloadc nameTSR[.com] [/keysTSR] [> NUL]

        Для того,  чтобы использовать environment загрузчика в качестве
environment загружаемого  резидента,  весьма  желательно располагать их
вместе, в одном каталоге,  с тем,  чтобы корректировать в строке вызова
только имя. По этой же причине столь длинно имя загрузчика - для резер-
вирования максимального размера environment'а, и, поэтому, не стоит его
сокращать. Тем  более,  что после первоначальных экспериментов,  строка
вызова, я надеюсь,  займёт своё место в AUTOEXEC.BAT, и не будет никого
обременять в дальнейшем. В environment, естественно, корректируется код
владельца, что  не  беспокоит  такие  утилиты,  как   SYSMAP,   MAPMEM,
Microsoft'овский MEM или MCB Ю.Семенова (SP42). PCTOOLS'овская MI нерв-
ничает по этому поводу, без фатальных впрочем последствий: демонстриру-
ет память, начиная с места загрузки HiMLoadC.
     Благодарю А.Борзенко за его материалы в SP и  Компьютер  Пресс,  а
также Ральфа Брауна за полный тезаурус прерываний.

--------------------------------------------------------------------

                                       Александр Пасковатый
                         тел. (095) 467-9568 : модем Contact-Between
