ПРИЛОЖЕНИЕ 16. Команды оболочки / SHELL.SYS /
Код Клавиш Имя Примечание
0(00) fcmon - выход без каких-л спец. действий
5(37) "7" mkdir - создание подкаталога на текущей
панели
6(06) CS/2 rtdev - выбор устройства на правой панели
7(07) CS/1 lfdev - выбор устройства на левой панели
8(08) CS/5 plpan - перемещение курсора на левую
панель без открытия устройства
9(09) CS/8 рграп - перемещение курсора на правую
панель без открытия устройства
13(0D) ENTER curun - запуск файла, на котором стоит
курсор, а также вход и выход из
каталога
14(ОС) CS/SS dbpnl - копирование текущей панели на
альтернативную
54(36) "6" view - запуск программы просмотра со-
гласно файлу SiSHELLextview.txt
56(38) "8" gmenu - вызов главного меню
79(4F) "0" nlpan - перемещение курсора на левую
панель с открытием устройства
80(50) "Р" пграп - перемещение курсора на правую
панель с открытием устройства
104(68) "h" prnt - запуск программы печати согласно
файлу S:SHELLextprint.txt
111(6F) "о" plpan - то же, что 8 - CS/5
112(70) "р" рграп - то же, что 9 - CS/8
Код pnCSR Имя Примечание
240(F0) 01110 cvwnel - перепечатка текущей панели (ПТП)
с сохранением позиции курсора
(СПК)
241(F1) 01010 nvwpnl - ПТП с установкой курсора на
начало панели
242(F2) 01110 cshel2 - аналог shel2(#82) с СПК на обеих
панелях (СПК-2П)
243(F3) 01010 nshel2 - полный аналог рестарта shel2
244(F4) 01110 cshell - аналог shell(#81) с СПК-2П
245(F5) 01010 nshell - полный аналог рестарта shell
246(F6) 01110 cshelO - аналог shel0(#80) с СПК-2П
247(F7) 01010 nshelO - полный аналог рестарта shelO
248(F8) 00110 panel - ПТП с сохранением отметки (СО)
251(FB) 11010 new - ПТП с открытием устройства
Выполнить все эти команды можно если вернуться в
оболочку с флагом Z и NC по RET или по рестарту
shout(#84). Чтобы выполнить данные команды и остаться в
прикладной задаче пользуйтесь рестартом shsubr(#8Е).
Эти же команды отрабатывает оболочка при опросе клавиа-
туры. Все остальные коды клавиш оболочка ищет в файле
S:SHELLextkey.txt. Рестарт shsubr инициализирует па-
нель при ее перепечатке. После чего при повторном его
вызове с любым кодом кроме перечисленных (например 255)
он перехватит управление и будет сам отрабатывать дви-
жение по панели вверх и вниз. По любой клавише кроме А,
Q,CS/A,CS/Q он вернет управление.
Запуска файлов рестарт shsubr не производит.
В случае вызова по рестартам флаг Z не существенен.
Биты регистра pnCSR см. ПРИЛОЖЕНИЕ 17.
ПРИЛОЖЕНИЕ 17. Вектор оболочки
/ g_mpan(#87)-BC' SHELL.SYS /
смещ имя длина комментарий
ение
-9 SHLDAT 2 Дата трансляции SHELL.SYS
-7 ERCSR 1 Управляющий байт для shexe(#93)
0-не/1-сообщить об ошибке 81 (нет файла)
-6 FNC 1 Код ошибки или клавиши
-5 nLOG 1 Управление подкраской строки подсказок
1 - красить, 0 - нет / mmenu(#89) /
-4 pnCSR 1 Регистр состояния печати панелей. Биты:
0 - рп - временный номер панели
1 - sw - разрешение (требование) смены панели(1)
2 - crs - сброс(0)/сохранение(1) позиции курсора
3 - in - сброс(1)/сохранение(0) отметки
4 - nw - открытие устройства(1)
5 - егг - наличие ошибок (внутр. употребления)
/ pnCSR подается в регистре В на входе в
shpanl(#90) /
-3 DFANL 2 Адрес анализатора 12 ф-ций
(см. ПРИЛОЖЕНИЕ 15.)
-1 NPANL 1 номер панели / g_curs(#8A)-B' /
0 CHPAN 2 NN каналов левой и правой панелей
/ g_mpan(#87)-BC' /
2 PAPER 1 цвет верхней части экрана
3 GRAND 1 цвет бордюра
4 MWC0L 2 цвета надписей "Please Wait" лев. и прав
6 FCURS 2
8 Pshl 8 Путь: "S:SHELL"
ПРИЛОЖЕНИЕ 19. КОДЫ ОШИБОК
0 - нецифровой символ /a_d(#7D)/
1 - переполнение числа /ad/ или буфера /d_a(#7C)/
Драйвер дисковода:
6 - нет диска
7 - ошибка на диске (сектор не ^итается/не пишется)
9 - не iSDOS-диск /binit(#F)/
10 - несоответствие диска и дисковода /binit(#F)/
20 - BREAK (нажат CS/SPACE)
junc.com:
22 - неверная таблица
23 - некорректный ключ
28 - драйвер принтера не установлен (lp_init.com)
31 - запрещенное имя файла /fncor(#50)/
33 - неверное имя устройства (mkdir.com)
34 - неверный размер устройства (device.com)
36 - синтаксическая ошибка (set.com)
37 - нет резидентной задачи /exebat(#44)rrun(#48)r
fndev(#51),opres(#52)r exeres(#53)/
39 - фоновая задача отсутствует при попытке удалить ее
/1_im2(#lE)/
50 - неверное имя текстового файла для cnfg.com
Виртуальный диск:
61 - указанный блок не найден
62 - реальное кол-во модифицированных блоков не
соответствует значению1 ($QNM0D)
/flush(2)rmodo(#2E)../
63 - сектор защищен
64 - диск защищен
65 - нет места на диске
66 - чтение запрещено
67 - запись запрещена
tv.com, ed.res, tab.com, etc.
70 - попытка записи в режиме "view"
71 - ошибочное значение указателя
72 - длина строки превышает 255
79 - неверное имя устройства в командах L_S, L_Q, LT
Файловая служба:
80 - номер файла слишком велик /opnum,putf,gname/
81 - файл не найден /find(#34),fopen(#25)/
82 - файл уже существует /erf"i 1 (#23)/
83 - каталог не пуст (при его удалении) /erfil,erf_/
84 - каталог полон (127 файлов) /erfil,erf_(#ЗВ)/
85 - плохой блок описателя сегмента файла
86 - нет каталога /fopen r openl(#21)/
87 - нет устройства /ореп(#20)/
88 - файл уже удален /erfil(#24),erf_/
89 - файл защищен от удаления (erfil,erf_)
92 - на диске нет требуемого непрерывного пространства
/di str(#38),erfi1,fadd(#2F),eadd(#31)../
93 - попытка освободить блоки за концом диска
/free(#3F),erf i1,erf_/
94 - переполнение блока описателя сегментов файла
(85 сегментов) /faddrfcut(#30),eadd/
98 - нет такой функции в RST panel(#6A)
99 - несоответствие номера блока в заголовке блока при
попытке его модифицирования (вирт. диск)
100 - конец файла по длине в байтах /rpart,wpart/
101 - конец файла в блоках.
/qrvbl,rifle,wifle,rvblk,wvblk/
102 - файл непрерывен /fadd,fcut,eadd/
103 - добавить или удалить нулевую длину
/fadd,fcut,eadd,ecut/
104 - удаление из файла фрагмента длиной больше, чем
файл /fcut(#30)recut(#32)/
105 - дальнейшее увеличение непрерывного каталога
затруднительно /crfi l(#23),crf_(#3B)/
106 - файл не открыт /qrvbl,rpart,wpart,rifle../
107 - Bit Map размера 0 (ошибка открытия устройства)
108 - Файл в начале устройства (номер блока файла или
его описателя меньше 3 для обычного диска)
/qrvbl,wpart,rifle../
swkey(#lA),swtyp(#lB),swblk(#lC),ldnew(#lD):
121 - нет устройства
122 - нет драйвера, обслуживающего данное устройства
функции работы с каналами:
124 - неверная структура области каналов
125 - нет канала /stchn(#16),delchn(#17)/
126 - канал уже есть /crchn(#18)/
127 - ошибочная длина /crchn(#18)/
128 - нет места для канала /crchn(#18),newchn(#19)/
129 - нет свободного номера /newchn(#19)/
инсталляция/удаление новых
уровней/драйверов/устройств. (SET.com)
130 - не хватает памяти /set.com, exebat(#44),run(#48)/
131 - нет драйвера /set.com/
132 - попытка инсталлировать (ПИ) 9-ый драйвер
133 - ПИ 9-ое устройство данного типа
135 - неправильная установка уровня
138 - ошибка в рекурсивной*цепочке (неверный номер
канала) /rcdel(#4D)/
139 - слишком длинная командная строка /р_сот(#49)/
prstr(#68),tystr,xystr:
140 - нет имени в массиве
141 - нет строки в тексте
142 - ошибка в структуре рабочей области
процедуры работающие с блоками
160 - попытка удалить из файла 0 блоков /B~DEL/
161 - попытка добавить к файлу 0 блоков /B~ADD/
162 - попытка занять на устройстве 0 блоков
/di str(#38)/
163 - попытка освободить на устройстве 0 блоков
/free(#3F)/
164 - попытка открепить блок с номером меньше 6
/free(#3F),erfil(#24)/
Файловая служба (окончание)
170 - Чтение/запись 0 байт в файл /rpart,wpart/
171 - Чтение файла запрещено /qrvbl,rpart,wpart/
172 - Запись в файл запрещена /wpart(#2А)/
222 - незагрузочный диск
226 - неизвестная версия TRD0S