
     В этом каталоге приведены несколько примеров ассемблерных про-
цедур пользователя,  встраиваемых в макросы.  Они  компилируются  в
bin-файлы, а в тексте макроса (напр., в файле .kmc) стоит их вызов,
в результате чего они при загрузке макроса загружаются в память,  а
при выполнении - выполняются. Подробнее см. keymac.doc.

     На эту  мысль меня навел звонок пользователя из Ровно (к сожа-
лению, не знаю имени),  который пожелал иметь возможность  переклю-
чать из макроса шрифты в "Искре" (хотя, если не ошибаюсь, в ней эта
возможность есть - Ctrl-Alt-1 / -2).  Я не знаю,  как это  делается
в "Искре" программно, а если бы знал, вряд ли стал бы держать в па-
мяти нужную процедуру постоянно.  В любом случае,  на все вкусы  не
угодишь. Поэтому и возникла мысль дать любому желающему (знающему в
принципе,  как это реализовать на ассемблере) способ самому  расши-
рять возможности программы.

     Beep.asm, unbeep.asm,  break.asm, prtsc.asm, reboot.asm - три-
виальные примеры процедур - тексты кодов,  встроенных в сам  KM.EXE
(в прошлых версиях они занимали место в резидентной части, теперь -
вставляются в текст макроса только при необходимости);
     
     tolower.asm,toupper.asm, date.asm,time.asm - полезные! примеры
процедур-макросов;
     tolower.bin,toupper.bin, date.bin,time.bin - они же,  откомпи-
лированные и готовые к употреблению;
     inline.kmc, inline1.kmc - собственно употребление:
     inline.kmc - входной файл KEYMAC,  содержащий загрузку inline-
процедур из *.bin;
     inline1.kmc - он же,  но с кодом прямо в тексте макроса в виде
шестнадцатеричных чисел.  Не требует никаких внешних файлов.  Полу-
чить подобный   файл   можно  следующим  образом:  сначала  создать
asm->bin, (напр.  MYMAC.BIN),  потом загрузить bin в макрос, напр.,
командой
                     km "<az> <inline'mymac'>"
затем, нажав Alt-Z,  убедиться,  что все работает, потом, используя
ключ /lk, вывести макрос в файл:
                       km /lkaz >myfile.kmc
и после минимального редактирования он готов.
     
     Внимание: date и time берут информацию из CMOS-памяти, которая
есть только на AT-совместимых машинах и некоторых XT.
