     В этом файле содержится краткое описание содержащихся в этом
каталоге программ. Эти программы были написаны в разное время для
личного использования, некоторые из них использовались  знакомыми
или коллегами, а некоторые используются и  ныне.  Часть  программ
была написана еще тогда, когда я только учился программировать на
ассемблере, а часть - совсем недавно, в основном для того,  чтобы
развлечься. Степень полезности предлагаемых программ  также  раз-
лична. Все программы занимают мало места на диске и, если  загру-
жаются резиденто, в памяти.
     Кстати, этот текст набран в редакторе Multi-Edit 6.0  и  от-
форматирован с использованием макроса, представленного в подката-
логе ME6.


     Подкаталог содержит следующие программы с исходными текстами
на языке ассемблера:

A2N_PRN.*  (р)   - перекодировка для принтера из альтернативной
		   таблицы в основную (новую);
ASK.*            - утилита для командных файлов: вывод на экран
		   запроса и ожидание ответа;
BALL.*           - маленькое развлечение: разноцветные мячики;
CHAT.*     (р)   - изменение атрибутов текста на экране, для
		   "ИСКРА-1030";
KILL.*           - уничтожение файлов на диске без возможности
		   восстановления;
LDISK.*    (р)   - защита диска (дисков) от записи;
MANDEL.*         - рисует красивую картинку (картинка вычисляется);
MDI.*            - информация о параметрах диска;
PSF1.*     (р)   - перенаправление печати экрана в файл;
SHOWTIME.* (р)   - отображение текущего времени на экране.

Программы, помеченные (р) - резидентные. Они все  занимают  очень
мало места в ОЗУ и могут загружаться в UMB. Для уменьшения  зани-
маемой памяти резидентные программы или  перемещают  свой  код  в
младшие адреса, или используют PSP как буфер и уж, конечно, осво-
бождают ненужную им копию среды DOS.

 ┌─────────────────────────────────────────────────────────────┐
 │ Представленные программы могут  свободно  использоваться  и │
 │ распространяться, как вместе с исходными  текстами,  так  и │
 │ без оных. Все программы из этого  каталога  имеют  исходные │
 │ тексты. Вы можете свободно модифицировать их, при  условии, │
 │ что не удаляете мой copyright и мои  координаты,  а  только │
 │ добавляете свои. Остальное - дело Вашей совести.            │
 └─────────────────────────────────────────────────────────────┘

     Ниже в алфавитном порядке приводится краткое описание каждой
из программ.


A2N_PRN		- перекодировка для принтера
─────────────────────────────────────────────────────────────────

     Простая программа перекодировки из альтернативной таблицы  в
основную для принтера. Путем простой замены таблицы перекодировки
может использоваться для принтеров,  имеющих  необычную  прошивку
ПЗУ. Приведена таблица перекодировки для принтера CPF-136.  Поме-
щена именно из-за возможности быстро переделать ее для конкретно-
го принтера -  достаточно  заменить  таблицу  перекодировки  (128
байт), которая составляется по правилам команды XLAT.
     Графические команды не обрабатываются, программа  может  ис-
пользоваться только в текстовом режиме работы принтера.
     Параметров программа не имеет.
     Занимает в памяти 288 байт. Можно загружать в UMB.
     Аналогов - не счесть, столько их много.


ASK		- запрос из командных файлов
─────────────────────────────────────────────────────────────────

     Простая утилита для командных файлов: выводит на экран  воп-
рос и ждет ответа пользователя до тех пор, пока не  будет  нажата
одна из перечисленных в командной строке клавиш.  Анализируя  код
возврата, можно выполнять переход на нужную ветвь пакетного  фай-
ла.
     Формат вызова:

     ASK строка_запроса @клавиши_ответа

Первой клавише в списке соответствует код возврата 1, второй -  2
и т.д. Регистр (верхний/нижний) для английских букв не имеет зна-
чения. При запуске без параметров выдает подсказку.
     Пример использования:

     ASK Вы хотите загрузить Norton Commander ? (y/n)  @ny
     if errorlevel 2 nc

Аналоги и отличительные особенности.
------------------------------------
     Программа была написана под влиянием  аналогичной  программы
Дмитрия Матюшкова (захотелось сделать самому), в то время,  когда
у нас не было стандартных средств, предназначенных для той же це-
ли, а была нужда в  такой  утилите.  Из  широко  распространенных
средств такого рода достаточно назвать BE.EXE Нортона. Однако на-
ши с Дмитрием версии выгодно  отличаются  малыми  размерами,  что
удобно при загрузке с диска, а красиво разрисовывать  экран,  что
позволяет Batch Enhancer, при выполнении  командных  файлов,  как
правило, не нужно.


BALL		- мячики
─────────────────────────────────────────────────────────────────

     Это просто маленькая развлекательная программка - по  экрану
летает 6 разноцветных мячиков, скорость практически не зависит от
быстродействия машины (перемещение происходит  с  каждым  "тиком"
системных часов). Выход - по любой клавише.
     Была написана в минуты досуга.


CHAT		- изменение атрибутов экрана
─────────────────────────────────────────────────────────────────

     Простая резидентная программа для изменения  цветов  экрана.
На некоторых "черно-белых" мониторах многие сочетания цветов  не-
различимы (например, на серо-зеленых мониторах "Искра-1030"). При
нажатии клавиш <Правый Shift>  +  <CapsLock>  программа  изменяет
цвета, пытаясь сохранить выделенные символы.
     Программа была написана для машины "Искра-1030"  по  просьбе
моих знакомых, чтобы можно было нормально работать с PcTools. (На
клавиатуре "Искры" указанные клавиши расположены рядом; программа
работает и с расширенной клавиатурой IBM.)
     Программа работает с активной страницей экрана  в  текстовых
режимах. Для уменьшения занимаемой  памяти  программа  перемещает
резидентную часть кода в младшие адреса.
     Занимает в памяти 224 байта. Можно загружать в UMB.


KILL		- уничтожение файлов
─────────────────────────────────────────────────────────────────

     Программа для уничтожения файла/файлов на диске.  Содержимое
файла(ов) сначала затирается (включая место за  концом  файла  до
конца кластера или даже чуть больше, если кластер < 4K), а  затем
файл(ы) удаляются  простым  обращением  к  функции  ДОС  "удалить
файл". Программа была написана для развлечения за полчаса, а теперь
часто используется и не только мной.

     Формат вызова:

     KILL <имя_файла>

В имени файла допустимо использовать обобщающие символы '?', '*'.
     Примеры:

     KILL kill.asm	- уничтожается файл kill.asm
     KILL kill.*	- уничтожаются файлы с именем kill

При запуске без параметров выдает подсказку.

Аналоги и отличительные особенности.
------------------------------------
     Уничтожить файл (в том числе с удалением записи из каталога,
и даже уничтожить каталог) позволяет WipeInfo из утилит  Нортона.
Аналогичное средство есть также в программе  PathMinder  (кто  ее
использует?). Опять же, программа выгодно отличается малыми  раз-
мерами, а обеспечиваемая секретность в большинстве случаев вполне
достаточна. Уничтожить несколько файлов можно быстрее, чем только
войти в WipeInfo.


LDISK		- защита дисков от записи
─────────────────────────────────────────────────────────────────

     Простая программа защиты диска (дисков) от записи. Как анти-
вирусное средство она крайне примитивна, однако может быть удобна
на "многоперсональных" компьютерах, чтобы предотвратить запись на
винчестер неопытным пользователем. (Мне  известен  случай,  когда
неопытный преподаватель продемонстрировал  использование  команды
FORMAT слушателям курсов на примере винчестера. О  результатах  и
отношении к этому человеку потом вы догадываетесь...) Практически
эта программа помогла в свое время выловить "Итальянский  мячик",
когда AIDSTEST и другие программы его еще не ловили.
     Использование:

     LDISK [0]..[7]

Если никакие параметры не указаны, то все диски в системе зацища-
ются от записи. Если в качестве параметров указаны одна  или  не-
сколько цифр (от 0 до 7), то соответствующие ФИЗИЧЕСКИЕ диски  НЕ
защищаются от записи (0 = диск A, 1 = диск B и т.д.). Все символы
кроме цифр от 0 до 7 в строке  параметров  игнорируются.  Жесткий
диск защищается в любом случае.
     Сразу после загрузки программы все диски, кроме указанных  в
командной строке, защищены. Для включения/выключения  защиты  на-
жмите [левый Shift] + [ESC].

     Примеры (диски A, B не защищаются от записи):

     LDISK 01
     LDISK 0 1
     LDISK 1-0

     Занимает в памяти 224 байтa. Можно загружать в UMB.

ПРЕДУПРЕЖДЕНИЕ:  конфликтует  со  SMARTDRV.EXE,  который   выдает
                "серьезную ошибку диска" при  попытке  записи  на
                защищенный винчестер (во всяком случае, на  386-й
                машине). Снять зациту не удается, поскольку  пре-
                рывание от клавиатуры полностью перехвачено.

Аналоги и отличительные особенности.
------------------------------------
     Программа была написана после непродолжительного использова-
ния аналогичной утилиты Дмитрия Сотникова HARD_L.EXE, которая за-
нимала много места и содержала несколько  ошибок.  Моя  программа
занимает в несколько раз меньше места как на диске, так и в памя-
ти, работая более аккуратно.
     В настоящее время аналогичных программ довольно много,  при-
сем многие из них предоставляют более надежную защиту.  Использо-
вание некоторых из них связано с определенным риском потерять всю
информацию на диске. В то же время, использование программы LDISK
в этом смысле совершенно безопасно.


MANDEL		- картинка окрестности множества Мандельброта
─────────────────────────────────────────────────────────────────

     Для выполнения нужны: EGA/VGA, сопроцессор.
     Описание алгоритма выводится на экран при запуске, ниже при-
ведены только некоторые замечания. Программа после установки гра-
фического режима (EGA, 640 x 350,  16  цветов)  перепрограммирует
палитру. Кроме того, после выхода из внутреннего цикла происходит
замена номера цвета по таблице перекодировки. Такое двойное изме-
нение, в принципе, не нужно,  оно  получилось  "исторически"  при
подборе цветов.
     Если у Вас достаточно быстрая машина, то Вы можете  поэкспе-
риментировать с программой, выбирая различные точки,  приращения,
цвета. Можно получить очень красивые картинки, особенно в  режиме
VGA 256 цветов, я немного пробовал.


MDI		- информация о параметрах диска
─────────────────────────────────────────────────────────────────

     Программа для отображения информации о диске. Она делалась с
использованием недокументированных структур  ДОС  (информация  из
TechHelp!) версии 3.30, поэтому в столбце "DOS" при использовании
более новых версий MSDOS некоторые поля содержат чушь. Отсюда мо-
раль - осторожно используйте недокументированные возможности ДОС.
Столбец "BOOT" содержит корректную информацию, но для новых  вер-
сий MSDOS она неполна. Большие разделы ДОС не поддерживаются.

     Запуск: MDI

После запуска программа запрашивает букву диска. После выдачи ин-
формации для возврата в ДОС нажмите любую клавишу.

     Программа сообщает:

- версию программы форматирования;
- размер сектора;
- количество секторов в кластере;
- смещение к FAT (номер первого сектора FAT);
- количество FAT;
- количество элементов в корневом каталоге;
- общее количество секторов на логическом диске (для больших
  разделов здесь будет 0 - DOS 4.0+);
- байт-описатель среды;
- количество секторов в одной FAT;
- количество секторов на дорожке;
- количество головок;
- количество скрытых секторов;
- количество кластеров;
- смещение к корневому каталогу (номер первого сектора корневого
  каталога);
- смещение к данным (номер первого сектора данных);

  дополнительно:

- общий размер диска в байтах, сколько занято и сколько свободно.

Аналоги и отличительные особенности.
------------------------------------
     Наиболее известные аналоги - это, пожалуй, утилиты Нортона и
PcTools. Программа была написана наподобие утилиты DI.EXE из ути-
лит Нортона версии 4.5, но имеет в несколько раз меньший размер и
после выдачи информации не сразу возвращается в ДОС, а ждет нажа-
тия клавиши.


PSF1		- перенаправление печати экрана в файл
─────────────────────────────────────────────────────────────────

     Эта программа при нажатии [PrintScreen] записывает  содержи-
мое экрана в файл с именем SCREEN.PRN в  текущем  каталоге.  Если
файл уже существует, то он дополняется, если нет, то файл  созда-
ется.
     Программа предназначалась для "выдергивания" экранов из Tech
Help!, поэтому она производит замену  непечатаемых  символов.  По
этой же причине программа не обрабатывает по  всем  правилам  INT
21, поэтому вызывать ее в среде DOS не  рекомендуется  (с  Norton
Commander-ом она уживается прекрасно).
     Занимает в памяти 544 байта. Можно загружать в UMB.

Аналоги и отличительные особенности.
------------------------------------
     Во время разработки об аналогах мне ничего не было известно,
однако позже (во всяком случае, у нас) появился  SNIPPER  (он  же
CATCHER), который обладает более широкими возможностями -  позво-
ляет вырезать кусок экрана, записать в заданный файл и т.д. кусок
экрана. Однако, если надо сбросить несколько экранов,  то  с  по-
мощью PSF1 это можно сделать быстрее, к  тому  же  PSF1  занимает
меньше памяти.


SHOWTIME	- отображение текущего времени
─────────────────────────────────────────────────────────────────

     Эта программа предназначена для отображения текущего времени
в правом верхнем углу экрана (8  позиций)  в  текстовых  режимах.
Программа отслеживает изменение видеорежима и активной  страницы.
При переходе в графический режим вывод времени на экран прекраща-
ется, при восстановлении текстового - возобновляется. Счет време-
ни не зависит от режима экрана.
     Занимает в памяти 384 байта. Можно загружать в UMB.

     Аналоги мне неизвестны, хотя наверняка существуют.  Из  этой
программы легко сделать функцию (процедуру, в терминах  Паскаля),
которую можно подключать к программам.
