User Tag List

Показано с 1 по 10 из 562

Тема: DSDOS для ПРК "Орион-128"

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb Оболочка ОС DSDOS (SHELL)

    Как писал выше, оболочка ОС DSDOS изменилась. Ранее она представляла собой запускаемый файл DC$, который при первом старте создавал на квазидиске ( B: ) файл самозапуска (EXT$), т.о. выход из программ пользователя всегда происходил в оболочку.
    Теперь оболочка представляет собой системный модуль (файл SHELL), который запускается по нажатию клавиши [Esc] в строке диалога ОС (CCP). Выход из программ пользователя осуществляется либо в оболочку, либо в диалог ОС DSDOS, в зависимости от режима запуска файла (описано выше).
    В результате работы, оболочка создаёт на квазидиске конфигурационный файл SHELL.CF:


    альт.ссылка на изображение

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


    Информация о диске

    В окне информации о диске (вызов по клавише [?]) появилось несколько горячих клавиш. Они предназначены скорее для опытных пользователей, поэтому явной подсказки на экране по ним нет!


    альт.ссылка на изображение


    Клавиша [СТР] ([PgDown]) очищает буфер обмена, результат выполнения виден на этом скриншоте:


    альт.ссылка на изображение

    Поскольку содержимое буфера обмена теперь хранится в файле "~CBDATA" на квазидиске, то в результате очистки удаляется и сам файл:


    альт.ссылка на изображение


    Клавиша [N] устанавливает верхнюю границу ОЗУ пользователя на значение по-умолчанию (BAFFh). Область BB00..BFFFh резервируется под знакогенератор "Монитора" и код эмуляции API ОС ORDOS (для возможности работы ORDOS-программ в среде ОС DSDOS).

    Клавиша [M] устанавливает верхнюю границу ОЗУ пользователя на максимальное значение BFFFh:


    альт.ссылка на изображение

    Данное значение позволяет программам, написанным под ОС DSDOS максимально использовать ОЗУ основной страницы. При этом код эмуляции ОС ORDOS может быть затёрт! Затирание знакогенератора не так критично, т.к. при выходе в ОС он автоматически восстанавливается, т.о. при последующем запуске не-DSDOS программы отображение символов через п/п Монитора будет работать корректно.

    И наконец клавиша [H] устанавливает верхнюю границу ОЗУ пользователя на экстремальное значение EFFFh:


    альт.ссылка на изображение

    Теоретически возможны ситуации, когда это может потребоваться для обработки огромного файла. Но надо понимать, что информация выше C000h залезет в экранное ОЗУ, т.е. будет видна на дисплее в виде "мусора". Также эта информация может быть испорчена выводом сообщений на экран программой обработчиком.

    Последние три команды полностью аналогичны соответствующим командам ОС DSDOS: "M <значение RamTOP>".


    Операции с файлами

    В оболочке полностью изменён механизм переименования, копирования и удаления файла(ов), а также добавлена возможность переноса (копирование с удалением исходного) файла(ов). Код данного функционала вынесен в отдельный "оверлейный" модуль-копировщик (файл SHELL.EX), который работает во второй странице ОЗУ, т.о. стало возможно копировать файлы любого размера, т.к. под буфер копирования отводится всё ОЗУ основной страницы. По факту операции основной модуль оболочки вызывает копировщик, передаёт ему задание (список файлов, диск назначения и режим обработки) и передаёт управление. После отработки, копировщик вновь загружает основной модуль (т.к. он может быть затёрт телом копируемого файла) и передаёт ему управление.

    Остановлюсь подробнее на работе копировщика. Функционал модуля следующий:

    [5] или [F5] - копирование (чтение) файла(ов);
    [6] ( [F6] - доступно только на клавиатуре PS/2 с прошивкой МК v0.21!) - перенос/переименование файла(ов);
    [8] ( [F8] - доступно только на клавиатуре PS/2 с прошивкой МК v0.21!) - удаление файла(ов).

    Как и прежде, если нет отмеченных файлов в текущей панели, то операция производится с текущим файлом, на котором установлен курсор-указатель:


    альт.ссылка на изображение

    По-умолчанию диском назначения при копировании/переносе будет диск противоположной панели. В случае операции с одним файлом возможно отредактировать диск и имя файла назначения. Если стереть диск назначения и оставить только имя файла, то операция копирования/переноса будет производиться на исходный диск:


    альт.ссылка на изображение

    Можно изначально запретить копировщику подставлять диск назначения, для этого нужно при копировании удерживать клавишу [Shift].

    Также возможно копировать/переносить файлы на произвольный диск, для этого достаточно вручную отредактировать диск назначения:


    альт.ссылка на изображение

    Если на целевом диске уже есть файл с таким же именем, то появится диалог перезаписи:


    альт.ссылка на изображение

    Пользователю выводится информация о размере/дате копируемого (нового) и существующего (старого) файлов, что зачастую облегчает принятие финального решения
    Положительный ответ - нажатие клавиши [ВК] (Enter), отрицательный - любая другая клавиша (кроме [Shift], [Ctrl] и [Alt]).

    При успешном выполнении операции будет отображена соответствующая информация:


    альт.ссылка на изображение

    Внизу окна копировщика отображается индикатор прогресса, визуализирующий ход выполнения операции.

    Если при групповом копировании файлов на диске назначения попадается файл с таким же именем, то диалог перезаписи имеет расширенный вид:


    альт.ссылка на изображение

    Тут у пользователя пять вариантов на выбор:

    1). [ВК] (Enter) - перезаписать текущий файл новым, при последующей аналогичной ситуации вновь появится такой же диалог;
    2). Любая другая символьная клавиша - не перезаписывать текущий файл, копирование пропустить, при последующей аналогичной ситуации вновь появится такой же диалог;
    3). [Ctrl]+[ВК] (Enter) - перезаписать текущий файл новым, при последующей аналогичной ситуации также выполнять перезапись без подтверждения;
    4). [Ctrl]+<любая символьная клавиша> - не перезаписывать текущий файл, при последующей аналогичной ситуации также не выполнять перезапись;
    5). [Esc] - отмена процесса копирования.

    Для удобства при выборе используются только клавиши с однозначной трактовкой, без завязки на регистр и язык.

    Во всех аналогичных диалогах (обработка ошибок и т.п.) при групповых файловых операциях действуют те же самые варианты ответов. В случаях ответов №3 и №4, в процессе дальнейшего выполнения операций, в окне появляется информация о выбранных вариантах для последующих аналогичных ситуаций.

    Перезаписывать (ЗАМенять) все последующие повторные файлы на новые:

    альт.ссылка на изображение

    Не перезаписывать:

    альт.ссылка на изображение

    Тут попытка перезаписать файл, защищённый от удаления:

    альт.ссылка на изображение

    Те же пять вариантов развития событий. Выбираем не перезаписывать защищённые файлы:

    альт.ссылка на изображение

    В итоге у нас продолжается процесс копирования со следующими "авансами": перезаписывать повторные, но не перезаписывать защищённые.

    При удалении группы файлов сначала появляется запрос на подтверждение, в котором указывается кол-во выделенных файлов на удаление:


    альт.ссылка на изображение

    Также, если встречается защищённый файл, то появляется дополнительный диалог (с пятью вариантами развития событий):


    альт.ссылка на изображение


    Команды переименования и перемещения выполняются одной клавишей: [6]. По-умолчанию предполагается перемещение файла(ов):


    альт.ссылка на изображение

    Переименование возможно только в случае операции с одним файлом!
    Для переименования необходимо чтобы диск назначения совпадал с исходным диском. Т.е. стираем явное указание диска назначения, а имя файла редактируем на новое:


    альт.ссылка на изображение

    Переименование также произойдёт если явно указанный диск назначения будет совпадать с исходным!
    Копировщик сам распознаёт и выполняет переименование (отражено в заголовке окна):


    альт.ссылка на изображение


    В функции копирования заложен вариант копирования файла(ов) в "никуда" (аналог копирования на "NUL" в IBM-PC). Для этого необходимо удерживать [Ctrl].
    Т.е. выделяем группу файлов, нажимаем [Ctrl]+[F5], в результате эти файлы просто считываются, но никуда не записываются:


    альт.ссылка на изображение

    Чтение честное, каждый файл полностью загружается в буфер. Данный режим может быть полезен для проверки чтения с ненадёжных носителей и для измерения скорости чтения файлов (для тестов).


    Макроподстановки

    В новой версии оболочки дополнена система макроподстановок параметров в эмулятор командной строки.

    Клавиша [A] вставляет команду изменения адреса посадки текущего файла:


    альт.ссылка на изображение

    Остаётся ввести новый адрес посадки и нажать [ВК] (Enter).


    Очень полезной на практике оказалась двойная подстановка файлов в команду запуска "L". Типичная задача при запуске программ и утилит - подстановка в качестве параметра имени рабочего файла. Допустим, требуется открыть на редактирование файл "ED.HLP", для этого нужно запустить из ROM-диска текстовые редактор ED$, а в качестве параметра указать диск размещения и имя редактируемого файла. Для выполнения таких задач сделана возможность подстановки имён файлов (с явными указаниями дисков) с обеих панелей оболочки. Для этого на одной (противоположной) панели выбираем файл программы-обработчика:


    альт.ссылка на изображение

    на другой (текущей) панели выбираем рабочий файл, который будет вставлен в качестве параметра,
    и нажимаем клавишу "L", при этом удерживая клавишу [Shift]:


    альт.ссылка на изображение

    В эмуляторе командной строки собрана готовая команда для запуска из ROM-диска текстового редактора с загрузкой из квазидиска файла помощи "ED.HLP". Далее можно ввести дополнительные параметры (например, ключи), если требуется, и нажать [ВК] (Enter) для выполнения.

    Если не требуется ввод доп. параметров, а нужно просто запустить утилиту с подстановкой рабочего файла, то достаточно нажать [Shift]+[ВК] (Enter) - команда выполнится сразу, без подтвержения.

    Размещение файла программы-обработчика на противоположной панели сделано для удобства, т.к. при множественных вызовах достаточно просто перемещаться по рабочим файлам текущей панели и давать команду запуска.


    Ещё одну часто используемую операцию оформил в виде макропостановки: сравнение двух файлов утилитой FC$. В произвольном порядке выделяем сравниваемые файлы на обеих панелях и нажимаем клавишу "J", в результате собирается и выполняется следующая команда:

    L A:FC$ d1:FILE1 d2:FILE2

    Для примера я выбрал файлы "ED.HLP" на диске "B:" (в правой панели) и на диске "A:" (в левой панели) и нажал "J", результат:


    альт.ссылка на изображение


    Также на клавишу "H" на будущее зарезервирована подстановка вызова утилиты HEX$, которая позволит редактировать бинарный файл.
    Последний раз редактировалось Denn; 11.02.2024 в 13:24. Причина: Изменение путей ссылок
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

    Этот пользователь поблагодарил Denn за это полезное сообщение:

    shapipovo(27.11.2019)

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 17
    Последнее: 26.12.2015, 23:22
  2. продам платы "Орион-128"
    от AHTuXPuCT в разделе Барахолка (архив)
    Ответов: 70
    Последнее: 19.06.2012, 20:39
  3. Платы ром-диска "Орион-128"
    от AL.EX в разделе Барахолка (архив)
    Ответов: 45
    Последнее: 10.06.2012, 12:54
  4. Куплю плату "Орион-ПРО"
    от АлександрПП в разделе Барахолка (архив)
    Ответов: 3
    Последнее: 15.05.2011, 20:48
  5. Ответов: 0
    Последнее: 15.08.2010, 14:38

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •