ГЛАВА 5
РЕЗИДЕНТНЫЕ ЗАДАЧИ
1 установка резидентных задач
SET.com - программа, осуществляющая установку уровней, а также установку
и ликвидацию драйверов и резидентных задач. Резидентные задачи
устанавливаются программой "set.com", которую можно вызвать из командной
строки монитора или поместить в командный файл.
Для установки резидентной задачи необходимо использовать следующий
формат команды: set имя1.рсш [имя2] [/к] , где:
имя1.рсш - имя и расширение, понимаемые в зависимости от ключа либо как
файл, либо как резидентный в памяти драйвер или задача
(обязательный параметр);
имя2 - 8-буквенное имя, даваемое драйверу (резидентной задаче) при его (ее)
установке;
/к - ключ. SET.com понимает 2 ключа:
/е - eliminate - ликвидировать резидентный драйвер/задачу;
/г - reload - установить драйвер/задачу заново, независимо от того, есть уже
такой драйвер/задача в памяти или нет.
По умолчанию (без ключа) переустановка не производится.
Все параметры (имена и ключ) для программы SET.com можно задавать в
любом порядке. При синтаксической ошибке в командной строке SET.com
выдает флаг С, А=36.
Если указано расширение sys, то SET.com подключает уровень, номер которого
содержится в байте Special" описателя файла.
Может устанавливаться только уровень на 1 больший, нежели максимальный
текущий.
Если указано одно из расширений драйверов устройств, а именно:
Ык - драйвер блочного устройства;
typ, lpr - драйвер символьного устройства вывода;
key - драйвер символьного устройства ввода,
то программа извлекает из байта "Special" описателя файла количество
устройств, обслуживаемых драйвером, загружает тело драйвера и создает канал
драйвера и каналы устройств, обслуживаемые драйвером. В канале драйвера
содержится его имя. При установке нового драйвера увеличивается число
устройств, доступных пользователю. Если в качестве резидентного
устанавливается файл с расширением "res" резидентная задача, то программа
"set" загружает тело задачи и создает канал, описывающий задачу. Драйверы и
резидентные задачи могут бьгть установлены с именами, отличными от имени
файла. Для этого команда "set" должна иметь следующий формат:
set имя драйвера имя файла.тип; set имя задачи имя файла.тип,
или
set имя файла.тип имя драйвера; set имя файла.тип имя задачи
Резидентные задачи, установленные в системе, запускаются командой:
@имя задачи [параметры задачи]
Команда "@" без имени задачи запускает резидентную задачу Nbat.resM.
Примеры:
set ty64.typ - установить драйвер экранной печати из файла ty64.typ в
системном каталоге (если он еще не установлен) в систему с
именем ty64.
set S:RESuniv.res un /г - переустановить резидентную программу из файла
univ.res в каталоге S:RES в систему с именем un.
set un.res /е - удалить из памяти (ликвидировать) резидента по имени un.
2 обслуживание резидентных задач
Обслуживаются резидентные задачи универсальной программой "univ.com".
Эта программа вызывается командой следующего формата:
univ [ключи] <имя> [шаблон] [параметры задачи],
в котором могут использоваться следующие управляющие символы:
ключи (необязательные параметры)
/X - подбор файлов и каталогов;
/Y - подбор удаленных файлов тоже;
/Z - подбор файлов по отметке.
"шаблон" - определяет, какие файлы подавать резидентной задаче;
"параметры задачи" - зависят от конкретной задачи.
Ключи можно задавать в виде:
ГШ или П /Z.
Например, если "univ.res" установлена в систему как резидентная задача un, а
"ren.res" - как гп, то командная строка:
@un rn T:HELP\dpr hlp /р
позволит Вам переименовать все файлы в подкаталоге HELP текущего диска
с расширением .dpr на файлы с расширением .hip, а также защитить их (см.
"Изменение атрибутов файлов").
3 изменение атрибутов файлов
Изменение атрибутов файлов можно провести с помощью программы ren.res.
Формат команды, ее вызывающей, имеет вид:
геп [ключи] [шаблон]
Файлы и каталоги для обработки программой "геп" выбирает универсальная
программа обслуживания резидентных задач - "univ.resH.
Ключи - необязательные параметры :
/Р - установка защиты от удаления;
/U - сброс защиты от удаления;
/Н - превращение в невидимый;
/V - превращение в видимый.
"шаблон" - определяет, как переименовывать файл или каталог.
Ключи нужно задавать латинскими буквами в виде:
/Р/Н или /Р /Н .
Команда @un /X гп Т: /р/Н позволит ВАМ скрыть все каталоги в
корневом каталоге текущего диска, а также защитить их. (см. также "Установка
и обслуживание резидентных задач").
4 интерпретатор командных файлов
Программа "bat.res" является резидентным интерпретатором командных файлов
и выполняет все команды программы "exebat.com". Вызов команды
осуществляется командой следующего вида:
@bat <командный файл - параметру или
@ <командный файл - параметра
Кроме того, имеются дополнительные внутренние команды, записываемые в
специальном формате, начинающимся с символа *:
*L+ разрешается вывод на экран выполняемых команд;
*L- запрещается вывод на экран выполняемых команд;
*Е командная строка - после выполнения указанной командной строки
осуществляется выход из самого последнего вложенного командного
файла с восстановлением программного стека.
Все внутренние команды резидентного интерпретатора могут вводиться как
прописными, так и строчными буквами.
ВНИМАНИЕ !
Соблюдайте осторожность при запуске "ЬаГ'-файлов, пользующихся командой
"set", т.к. эта команда активно двигает как раз ту область памяти, где может
оказаться и "bat.res"! Если "set.com" удаляет либо переустанавливает драйвер
(резидентную задачу), находящийся выше нежели "bat.res", (т.е. установленный
раньше ее)* то последствия таких действий предсказать теоретически невозможно,
а практически Вы можете попробовать, запустив файл по имени "fool.bat":
set bat.res /е ; set calc.res /г; set bat.res ; @ fool.bat.
ПРИМЕЧАНИЕ:
За последствия подобных экспериментов ни автор описания, ни фирма
IskraSOFT ответственности не несут !
СОВЕТ:
В подобных случаях (когда требуется воспользоваться услугами программы
SET из bdt-файла, тем более если Вы хотите удалить из памяти саму "bat.res")
пользуйтесь "exebat.com"!
5 basic-48
Программа "bas.resH позволяет ОС is-DOS работать с BASIC-48 для ZX-
Spectnim. Перед началом работы программу необходимо сделать резидентной с
помощью команды:
set bas.resf набрав эту команду в мониторе или поместив ее в командный
файл. Для выхода в BASIC необходимо задать команду:
@bas - запуск без параметров.
После ее выполнения на экране должна появиться надпись:
isDOS BASIC IscraSOFT 1992
и можно начинать работу в бейсике.
isDOS BASIC полностью совместим с BASIC SPECTRUM 48К и, кроме того,
имеет дополнительные команды:
. - раскрывает рабочую панель isDOS.
Это дает возможность получить доступ к файлам и устройствам. Комбинация
клавиш <SS/A> выполняет возврат в бейсик.
.8"[путь]имя файла.Ьа$"ЫНЕ строка автозапуска - сохраняет профамму на
диске.
.Г[путь]имя файла.Ьаз" - загружает и запускает программу, сохраненную на
диске.
.т" [путь]имя файла.Ьа8и - подгружает к программе в памяти программу с
диска.
.рипутьм - выполняет переход в другой текущий каталог,
.х номер строки 1, номер строки 2 - удаляет строки программы от строки 1 до
строки 2.
.г"командная строка isDOS" - выполняет команду isDOS.
.е - выход в isDOS.
Команды могут вводиться как прописными, так и строчными буквами. Если
бейсик резидентен в системе, то программу на бейсике можно запустить, подведя
к файлу курсор и нажав клавишу <Enter>.
Рассмотрим пример сеанса работы с бейсиком:
1. Установим текущим каталог RES и сделаем программу резидентной, набрав
на мониторе команду:
"set bas.res"
2. Запустим программу командой: "@bas"
На экране появится идентифицирующая надпись.
3. Выполним команду "." - раскроем рабочую панель.
A:RES
HELP
set com 6
bat res 2
bas res 1
Убедимся, что файлов с расширением bas там нет. Можно перемещать курсор
вверх и вниз и, выбрав курсором другой подкаталог, сделать его текущим, нажав
клавишу <Entei>. Нажав комбинацию клавиш <CS/1> или <CS/2>, можно перейти
к другому устройству. Набрав комбинацию клавиш <SS/A>, возвращаемся в
бейсик.
4. Набираем в бейсике программу:
1 CIRCLE INK 7*RND;127,86,86*RND:GOTO 1
Эта программа рисует случайными цветами окружности случайного радиуса.
5. Запускаем программу командой RUN. Программа выполняется. Выйдем из
программы, нажав клавишу <Break>.
6. Сохраним программу на диске командой : .s"test.bas"LINE 1
7. Выполним команду войдем в текущий каталог и убедимся, что там
появился файл test.bas.
8. Подведя курсор к файлу test.bas, нажмем клавишу <Enter>. На экране
появится запрос: "Merge or Load?" Ответим первой буквой 1 - LOAD - загрузка.
Программа загружается в память и запускается.
9. Выйдем из программы и удалим из памяти строку с номером 1, нажав
клавишу 1, затем клавишу <Enter>. Очистим память.
10. Выполним команду: .r'test.bas" Программа загружается и выполняется.
11. Выйдем из программы и отредактируем строку, изменив ее номер на 10.
12. Выполним команду "Л войдем в текущий каталог и выполним действия по
пункту 8,но в ответ на запрос ответим буквой m (MERGE) - подгрузить программу
в память. На экране увидим две программные сроки с номерами 1 и 10.
13. Удалим строку с номером 1 и выполним команду: .nTtest.bas". Врезультате
на. экране опять увидим две строки с номерами 1 и 10.
14. Выполним команду и.р" для перехода в каталог UTEL на устройстве Q: .р
Q:UTTL Выполнив команду и.н, убедимся, что текущим стал каталог UTIL.
15. В заключение выполним команду N.r"
Наберем программу:
1 .r"Q:UTILdate"
2 .r"Q:SHELLtv Q:EDITed_ext.txt" и запустим ее на выполнение командой
RUN. В результате выполнения программы на экран будет сначала выведена дата,
которую можно отредактировать, а затем текстовый файл ed_ext.txt.
16. Завершим работу в бейсике командой м.е" и вернемся в Is-DOS.
6 ПОДСЧЕТ И ПРОВЕРКА КОНТРОЛЬНЫХ СУММ
Файл "calc.res" содержит резидентную задачу, которая выполняет подсчет
контрольной суммы открытого файла и помещает полученное число в 26-27-й
байты описателя файла. Эту резидентную задачу рекомендуется всегда
устанавливать с именем "calcH, так как она используется многими системными
задачами. Например, редактор "edit" вызывает задачу Ncalcn для подсчета новой
контрольной суммы отредактированного файла.
Файлы для задачи "calc" выбирает и подает универсальная программа
обслуживания резидентных задач "univ.res". Например, если "univ.res"
установлена в систему как резидентная задача un, а "са1с.ге8и как "calc", то
командная строка
@un calc T:HELPV позволит Вам подсчитать контрольную сумму всех
файлов из каталога HELP текущего диска.
Файл "check.res" содержит резидентную задачу, которая выполняет проверку
файла по контрольной сумме. При несовпадении контрольной суммы выводится
сообщение об ошибке 51.
Файлы для задачи "check" выбирает и подает все та же "univ.res". Например,
если "univ.res" установлена в систему, как резидентная задача un, a "check.resH
как ch, то командная строка:
@un ch Q:UT1LW позволит вам проверить контрольные суммы всех
файлов из каталога UTIL "быстрого" диска.
7 ПЕРЕКОДИРОВКА ФАЙЛОВ
Файл "tran.res" содержит резидентную программу, выполняющую
перекодировку открытого текущего файла в соответствии с 256-байтной
таблипей, содержащейся в нем. Как всегда, файлы для задачи "tran" выбирает и
подает Huniv.resH.
Например, если "univ.res" установлена в системе как резидентная задача un, а
"tran.res" как "tr", то командная строка:
@un tr S:DOCV.txt позволит вам перекодировать символы всех файлов с
расширением "txt" каталога DOC системного диска.
8 ИЗМЕНЕНИЕ ПЕРЕКОДИРОВОЧНЫХ ТАБЛИЦ
Изменение и подключение кодировочных таблиц производится с помощью
программы "junc.com", которая запускается командой следующего формата:
junc имя файла таблицы имяфайла, в который помещается табл.
Программа может работать с установленными задачами и драйверами и менять
таблицы внутри них' Для этого в командной строке, после имени команды,
необходимо указать ключ /т.
Например, программа может работать с файлами ty42.typ, ty64.typ - драйверы
печатающих устройств, изменяя в них знакогенераторы, с файлом ttyki.key -
драйвер клавиатуры, изменяя таблицы перекодировки.
Например, команда:
junc sym.tab ty42.typ
помещает таблицу из файла sym.tab в файл ty42 на диске, а команда:
junc /т sym.tab ty64.typ
помещает ту же таблицу в драйвер ty64, установленный в памяти, не изменяя
файла на диске.