Клавиши управления в командном режиме
Left, Right
перемещение по строке влево и вправо на один символ.
Del, Backspace
удаление одного символа над или перед курсором
Up, Down
обращение к буферу команд, в котором некоторое время хранятся
предыдущие команды. Нажатие клавиш вызывает перебор в командной строке
содержимого буфера в ту или другую сторону. Аналогично действуют
комбинации Ctrl/X и Ctrl/E в Norton Commander.
Ctrl/J
вставить в командную строку в место, указываемое курсором, имени и
расширения текущего файла.
CR
выполнить набранную команду. Действует независимо от положения курсора
в строке.
Esc
возврат в оконный режим.
Особенности работы с дисками различных дисковых систем
Напоминаю, что с системами, отличными от СР/М, может работать только
СоруК, другие программы о существовании таких дисковых систем даже не
подозревают, так что, если Вы вставите в дисковод А: диск MS/DOS с файлом
TEST.TXT и попытаетесь его отредактировать, дав команду типа WRITE
A:TEST.TXT, то в лучшем случае схлопочете сообщение об ошибке.
Правильнее будет сделать следующее: скопировать с системного диска на Е:
файл CK.MS , вставить в А: диск M5/DOS и дать в СоруК команду D/"A:" (что
означает: в оконном режиме нажать D и из появившейся менюшки выбрать
"А:"). В другом окне при этом должен быть диск Е:. Подведите указатель к
файлу TEST.TXT и нажмите F5/"fla". После этого перейдите в окно диска Е:,
подведите указатель к копии файла TEST.TXT и нажмите F4. Не забудьте при
редактировании включить Alt-кодировку. Закончив редактирование,
скопируйте файл обратно, если это нужно (при копировании появится
сообщение о том, что такой файл уже существует, выберите ответ "ВАК" или
"Переписать").
СР/М (MicroDOS)
Поскольку вся файловая работа осуществляется дисковой подсистемой
MicroDOS, драйвер этой дисковой системы короток и присутствует в памяти
постоянно, что приводит к отсутствию специального оверлея, его содержащего.
С другой стороны, это привело к тому, что все ошибки, присущие MicroDOS, по
наследству достались и СоруК. Как человек кристально честный (а к тому же
очень скромный) я укажу наиболее часто всплывающие.
Одна из наиболее неприятных ошибок состоит в том, что при смене диска не
происходит перевычисления свободного места на нем. Оное действо имеет место
быть только при полном сбросе дисковой системы (операция довольно
медленная, и я не счел возможным постоянно ее выполнять) или каких-либо
изменениях на диске (запись, удаление и т.д., но нечтение). Поэтому иногда
сталкиваешься с ситуацией, когда на 800 Кб диске файлов килобайт на 700 и
столько же свободного места.
Другая неприятная особенность: - то что оболочка не замечает
существования файлов длиной, кратной 16 Кб. Дело в том, что в СР/М файл
разбивается на экстенты - кусочки по 16 Кб , кроме последнего, который
обязан быть короче (длина экстента ровно 16 Кб является признаком наличия
как минимум еще одного, следующего). Таким образом, если файл имеет длину
ровно 16 Кб или кратен, он содержит один или несколько полных экстентов и
один (последний) - пустой. Вот этот-то пустой экстент иногда почему-то не
создается. Происходит это только для устройств с емкостью более 256 Кб, но
менее 512 Кб, что выполняется только для электронных дисков на некоторых
машинах. Пару раз мне говорили, что такое случается и с флоппи-дисками, но
я не верю, во всяком случае, это нерегулярный сбой, не поддающийся анализу.
Еще одна, даже не ошибка, а нюанс: идентификация диска производится по
нулевой дорожке. Поэтому, если Вы работаете с СР/М-диском старого формата
(2 системные дорожки), Вас могут подстерегать две опасности. Первая состоит
в том, что если первые дорожки не отформатированы, диск игнорируется
вообще. Даже если Вы отформатируете нулевую дорожку, Вам нужно быть
внимательными. Дело в том, что при входе в СоруК директорий заново
считывается только в том случае, если диск изменялся, а изменялся ли он,
определяется по нулевой дорожке (там обычно находится директорий). На
дисках старого образца директорий находится на второй дорожке, а нулевая не
изменяется вообще. Этот нюанс обычно в глаза не бросается, да и испортить
чего-либо, похоже, не может, но все же он существует.
Для старых версий оболочки, работавших под SP-DOS, характерны были
зависания при копировании. Это происходило, скорее всего, из-за некорректной
работы прерываний в старой системе (выход из некоторых осуществлялся с
запретом прерываний). В Concurrent-BIOS эта погрешность устранена, и уже
больше года с этой проблемой я не сталкивался. Все дальнейшее - уже не
ошибки, а просто особенности, присущие этой файловой системе:
- длина файла в СР/М всегда кратна 128 байтам.
- малоизвестен, но любопытен факт, что СР/М позволяет даже на 100Кб
устройстве создать файл длиной в несколько мегабайт (!). Достаточно
методом непосредственной записи в файл создать какой-нибудь 30000-й
экстент, не создавая промежуточных. Тогда файл, занимая на диске не
более 16 Кб, будет иметь логическую длину порядка 480Мб. Понятно, что
копировать такие файлы невозможно, но ситуация эта настолько экзотична,
что о ней можно и не вспоминать.
- СР/М не поддерживает подкаталоги, но его единственный каталог можно
логически разбить на несколько частей (ДОС поддерживает 32, но
командный процессор обслуживает лишь 16, поэтому такое же ограничение
заложено и в оболочку), которые называются зонами пользователя (Users).
Для доступа к различным зонам при работе в любой из них самую верхнюю
позицию в окне занимает псевдоподкаталог USERS.NN, где NN - номер
текущей зоны (0..15). Если подвести указатель к этому месту и нажать СН,
в текущем окне вместо списка файлов появится список зон: USER.0..
USER. 15. Выбрав нужную, Вы окажетесь в ней. Только не пытайтесь, ради
бога, копировать псевдокаталоги.
MS/DOS (PC/DOS, DR/DOS, etc.)
Драйвер MS/DOS загружается в качестве оверлея в буфер копирования,
поэтому порция, копируемая за раз, уменьшается до 24Кб. Кроме того, с этим
связана и одна из немногих (если не единственная) ошибка оболочки в этом
режиме: иногда, по непонятным причинам, система "забывает", что она имеет
оверлей, и при копировании затирает его. Визуально это выглядит так, будто
файл первую половину копирует некоторое вполне разумное время, а потом
будто срывается, копируя оставшуюся часть практически мгновенно. Из-за
редкости и нерегулярности этой ошибки я так и не смог установить ее
причины. Единственный способ бороться с ней, коли уж она возникла -
выполнить какую-либо внешнюю команду, например D, из командного режима,
т.к. это вызывает перегрузку оверлея.
Другая особенность носит не программный, а аппаратный характер. Дело в
том, что контроллеры дисководов на нашей машине и IBM не совсем
совместимы, они по разному реагируют на маркерный индекс, по которому
определяется начало дорожки: Profi+ ловит начало импульса, IBM - конец. Из-
за этого физическая длина дорожки у нас чуть меньше. Мы без проблем
работаем с дисками в 360 и 720Кб, но с дисками 400 и 800 Кб раз на раз не
приходится. Отформатированные на одних IBM диски читаются, на других -
нет. Конечно, с этим можно бороться, немного задержав индекс в нашем
контроллере дисковода, и такие эксперименты были вполне успешны, но при
этом теряется совместимость с TR/DOS, что, пожалуй, еще неприятнее. Так
что выходы из этой ситуации могут быть следующие: или отказаться от
формата 400/800 Кб, а работать лишь с дисками 360/7 20Кб, или
форматировать их на Profi+ (форматеры, поддерживающие IBM-диски,
написанные мной KFor или Емельяновым Алексеем, немного сокращают
расстояние между секторами на дорожке, и такие диски читаются на всех
машинах).
Очень часто спрашивают, совместима ли наша машина с IBM. Ответ очевиден
- нет. Это означает, что программы с нее у нас напрямую незапускаются (даже
несмотря на то, что некоторые из них имеют расширение СОМ). Но, благодаря
СоруК, Вы вполне свободно можете осуществлять обмен информацией между
машинами, а это не так уж мало: можно перенести тексты, а значит и
исходники многих программ, написанных на языках высокого уровня (Бейсик
IBM очень близок к MBASIC (файлы 3AS)), если программы написаны на
основном подмножестве Си, Керниган-Ричи С, они вполне могут быть
откомпилированы одним из наших компиляторов (AtztecC (он же С80),
А8СИС.)(файлы .С, .СС), наш Turbo-Pascal практически идентичен ранним
версиям его для IBM, отличается лишь пара функций (файлы .PAS). Благодаря
работам наших программистов, возможен перенос и некоторых других файлов
данных: мой ADJ позволяет проигрывать музыкальные файлы .ADJ, которые
являются ни чем иным, как немного переработанными .STM- файлами (я давно
обещаю новую версию, и если она появится, то последние будут проигрываться
напрямую); утилита просмотра графических PCX-файлов Письменого Дмитрия
позволяет просматривать и сохранять в нашем (.GRF) формате картинки, а
.EPS-файлы можно напрямую печатать и у нас.