Важная информация

User Tag List

Страница 1 из 25 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 249

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

  1. #1
    Veteran Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    1,064
    Благодарностей: 357
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb DSDOS для ПРК "Орион"

    Доброго времени суток уважаемые орионщики и им сочувствующие

    По просьбам трудящихся, в данном топике буду выкладывать свои наработки по этому замечательному ПРК.

    Для начала немного предыстории. Я "заболел" Орионом сразу, как получил первый номер журнала РАДИО со схемой и описанием.
    С нетерпением ждал очередной журнал, делал все доработки, руками набивал весь публикуемый софт (в т.ч. гигантские BASIC и PENX!).
    Мне понравилась концепция авторской ОС ORDOS, впоследствии я написал достаточно много своих программ под неё.
    Но в какой-то момент понял узкие рамки ORDOS и у меня выработалось чёткое представление чего бы хотелось в ней улучшить.
    Окончательно "сложилась картинка" после публикации контроллера НГМД и прилагаемой к нему ОС SPDOS. В результате я начал работу по созданию (с нуля) собственной ОС, которая бы взяла всё лучшее от обеих ОС, а также позволила ещё больше реализовать возможности ПРК Орион в варианте с расширенным до 256 Кб ОЗУ.
    От ORDOS взята базовая идеология (ROM/RAM-диски, однобуквенные команды, частично структура файлов), а от SPDOS взят формат хранения файлов на дискетах. Заодно была решена давно мучавшая меня проблема - медленный вывод символов на экран.
    Новая ОС (далее - DSDOS) включает модуль обеспечивающий совместимость с программами, написанными под ORDOS (правда с некоторыми небольшими ограничениями, о которых упомяну ниже), т.о. авторский софт под ней работоспособен. DSDOS содержит полный набор процедур ввода-вывода (BIOS), т.о. родной софт, написанный под DSDOS, обходится без подпрограмм ПЗУ "Монитора".
    Помимо "многообразия" неплохого авторского софта, мною создан некий набор системного и прикладного ПО, которое я по мере возможности постараюсь осветить в данной теме.

    Итак, перехожу непосредственно к описанию операционной системы DSDOS.
    На данный момент "устаканившейся" является версия 3.5, про неё и будет дальнейшее описание.
    Образ ROM-диска с DSDOS v3.5 и базовым пакетом системного ПО можно загрузить тут - http://www.denn.ru/orion/ROM_DISK.BIN


    Требования к конфигурации ПРК:

    Процессор___________КР580ВМ80А (Z80 со звуком через INTE)
    ОЗУ_________________256 Кб (расширенная память)
    ПЗУ_________________2 Кб ("Монитор-2", используется для начальной загрузки ОС с ROM-диска)
    ROM- или RAM-диск___64 Кб (в варианте RAM-диска заводится дополнительный сигнал управления с порта клавиатуры для реализации режима записи)

    Опционально (и очень желательно ):
    НГМД________________контроллер на КР1818ВГ93, 2 FDD, MFM, 800 Кб (по схеме из журнала РАДИО №12/1992, стр. 14-15)

    *Возможна работа под эмулятором на IBM PC


    Возможности DSDOS:

    + Поддержка файловой структуры (с точки зрения ПО) совместимой с ORDOS v2.x
    + Поддержка файла автозапуска (EXT$) при передаче управления ОС
    + Поддержка механизма пакетной обработки команд ОС
    + Поддержка ROM-диска объёмом до 64 Кб (формат ORDOS v2.x, диск «A:»)
    + Поддержка RAM-диска объёмом 120 Кб (2 и 3-я страницы расширенного ОЗУ, диск «B:»)
    + Поддержка двух накопителей НГМД (каждый по 800 Кб, диски «C:» и «D:»)
    + Быстрый доступ к файлам RAM-диска (при операциях чтения/записи перенос блоков с помощью инструкций push/pop)
    + Поддержка общего буфера обмена между программами (aka ClipBoard)
    + Возможность интегрирования в ОС ещё 4-х накопителей произвольного вида (диски E, F, G, H)
    + Сервисное меню пользователя (доступно в любых программах в момент опроса клавиатуры)
    + Возможность вызова программ из программ, минуя выход в систему (через сервисное меню пользователя)
    + Возможность подгрузки и сохранения данных, не выходя из программ (через сервисное меню пользователя)
    + Ускоренный вывод символов на экран (знакоместо 8x8 пикселей)
    + Поддержка цветного режима вывода символов
    + Поддержка расширенной кодировки ASCII (заглавные и строчные буквы)
    + Поддержка 32-х видов курсоров (а также в качестве курсора может быть задействован любой из 224-х символов основого знакогенератора)
    + Поддержка 32-х символов псевдографики (в т.ч. рамки, стрелки)
    + Поддержка двух рабочих экранов (основной и альтернативный)
    + Поддержка псевдооконного режима отображения
    + Максимальная совместимость с ОС ORDOS v2.x (кроме операций с произвольным доступом к файлу)
    + Размещение ОС полностью в дополнительной странице ОЗУ (кроме модуля обеспечивающего совместимость с ORDOS)
    + Занимает небольшой объём оперативной памяти (менее 32 Кб)


    Загрузка операционной системы DSDOS

    При начальной загрузке ОС DSDOS (при включении питания ПК, при полной перезагрузке системы или после “зависания”) на экран выводится меню выбора источника загрузки ОС, которое содержит два пункта: [ROM] [FDD]



    Выбор нужного пункта осуществляется при помощи клавиш: «», «» и «Enter». В случае выбора пункта ”ROM” загрузка ОС производится из ROM-диска. В случае выбора пункта ”FDD” производится поиск на дисководе №0 операционной системы и при успешной попытке производится её загрузка.

    После успешного прохождения начального этапа загрузки в зарезервированной системной области ОЗУ делается отметка об источнике начальной загрузки ОС, а также делается отметка о том, что была произведена "холодная" загрузка. Таким образом, последующие "горячие" перезагрузки ОС (аппаратный сброс, передача управления по адресу 0F800h) не будут приводить к выводу меню выбора источника загрузки ОС.

    В процессе дальнейшей загрузки ОС из ROM-диска производится проверка на наличие и простейшая проверка на исправность всех устройств, поддерживаемых ОС DSDOS (наличие файлов на ROM-диске, расширенного ОЗУ, контроллера НГМД). При этом на экран выводится соответствующая информация:



    После выполнения этапа проверки управление передаётся непосредственно ОС DSDOS.



    "Горячая" перезагрузка ОС производится путём аппаратного сброса или передачей управления по адресу 0F800h. При этом производится подгрузка некоторых блоков ОС из источника, определённого при начальной "холодной" загрузке (перезагрузке) и передача управления ОС DSDOS. Если по какой-либо причине компьютер "завис", то рекомендуется произвести его перезагрузку с полным обновлением всех блоков системы (в целях исключения некорректного поведения испорченных блоков системы и, как следствие, возможной порчи информации). Для этого достаточно при нажатии на кнопку аппаратного сброса удержать клавишу «РУС/ЛАТ». Если необходимо произвести полную "холодную" перезагрузку ОС DSDOS (например, для смены источника загрузки системы), то достаточно при нажатии на кнопку аппаратного сброса удержать вместе нажатыми клавиши «Ctrl» и «Shift». Аналогичный результат можно получить при одновременном нажатии клавиш «Ctrl», «Shift» и «F4» в любой момент, когда на экране присутствует мигающий курсор.

    При передаче управления ОС DSDOS происходят следующие операции:

    • установка знакогенератора ПЗУ "Монитор-2" в область ОЗУ пользователя по адресу из системной переменной M_FONT;
    • установка полноэкранного режима отображения символов;
    • если не нажата клавиша «Shift», то поиск на RAM-диске файла EXT$ (если он есть, то его загрузка и исполнение);
    • инициализация режима отображения (окраска экрана, установка текущего вида курсора и, при первом запуске очистка экрана с выводом фирменной заставки ОС DSDOS);
    • передача управления программе поддержки диалога с пользователем.


    После первоначальной загрузки ОС DSDOS (а иногда и в случае "зависания"), необходимо выполнить некоторые команды инициализации.

    Форматирование RAM-диска

    Физически не удаляет файлы с диска, в начале списка файлов записывается признак конца каталога.
    Выполняется командой "F", после ввода которой следует запрос подтверждения [Y/N]:




    Установка системной даты

    В ОС DSDOS есть системная переменная, в которой содержится значение текущей даты. При "холодной" загрузке эта переменная содержит дату релиза ОС. Системная дата используется при файловых операциях для актуализации даты создания/изменений файлов.
    Узнать текущую дату можно запуском утилиты DATE$ без параметров. Установить текущую дату можно вызвав эту же утилиту с параметрами "<день>.<месяц>.<год>". При корректном вводе параметров установленная дата будет повторно отображена:




    Запуск файлового менеджера (оболочки ОС)

    Для удобства работы с файлами рекомендуется включить оболочку ОС, для этого необходимо запустить файл DC$:



    После запуска файлового менеджера, он создаёт на RAM-диске файл собственного автозапуска, т.о. при рестарте и выходе из программ в ОС пользователь автоматически будет попадать в оболочку:



    Если по какой-то причине при выходе из программы нужно игнорировать загрузку оболочки, то необходимо удерживать клавишу «Shift». Полностью выгрузить оболочку можно выполнив команду «Q» из самой оболочки.


    +++ to be continued +++
    Последний раз редактировалось Denn; 30.12.2016 в 11:29. Причина: правка текста
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  2. Эти 16 пользователя(ей) поблагодарили Denn за это полезное сообщение:
    AHTuXPuCT (13.10.2013), AIS (13.10.2013), AlexBel (13.10.2013), alvis (13.10.2013), Astrolux (13.10.2013), DATAsoft (13.10.2013), dk_spb (13.10.2013), Doronetty (06.04.2015), John North (13.10.2013), Mad Killer/PG (14.10.2013), palsw (15.10.2013), perestoronin (13.10.2013), pvlad (28.10.2013), Stampmaker (03.10.2015), UEA (14.10.2013), Vladimir_S (13.10.2013)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  4. #2
    Guru Аватар для Vladimir_S
    Регистрация
    12.12.2011
    Адрес
    г. Иркутск
    Сообщений
    2,367
    Благодарностей: 746
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Denn, Контроллер FDD не из Радио №5 1993г?

  5. #3
    Veteran Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    1,064
    Благодарностей: 357
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Wink

    Цитата Сообщение от Vladimir_S Посмотреть сообщение
    Denn, Контроллер FDD не из Радио №5 1993г?
    из описания:

    НГМД________________контроллер на КР1818ВГ93, 2 FDD, MFM, 800 Кб (по схеме из журнала РАДИО 2/93)
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  6. #4
    Guru Аватар для Vladimir_S
    Регистрация
    12.12.2011
    Адрес
    г. Иркутск
    Сообщений
    2,367
    Благодарностей: 746
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    НГМД________________контроллер на КР1818ВГ93, 2 FDD, MFM, 800 Кб (по схеме из журнала РАДИО 2/93)
    Так схема откуда? В РАДИО 2/93 схема только для РК86.
    Видимо РАДИО 12/92. И ничего не менял?
    Последний раз редактировалось Vladimir_S; 13.10.2013 в 15:45.

  7. #5
    Veteran Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    1,064
    Благодарностей: 357
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Exclamation

    Цитата Сообщение от Vladimir_S Посмотреть сообщение
    Так схема откуда? В РАДИО 2/93 схема только для РК86.
    Прошу прощения за дезу... Контроллер по схеме из РАДИО №12/1992, стр. 14-15

    Вот его описание и схема:

    http://www.denn.ru/orion/hardware/fdc1.jpg
    http://www.denn.ru/orion/hardware/fdc2.jpg
    http://www.denn.ru/orion/hardware/fdc3.jpg
    http://www.denn.ru/orion/hardware/fdc4.jpg


    Цитата Сообщение от Vladimir_S Посмотреть сообщение
    И ничего не менял?
    С тех прошло 20 лет! Чесное слово, не помню деталей Возможно как обычно были какие-то неточности, которые впоследствии были исправлены в следующих журналах. Но скорее всего заработало сразу, т.к. секаса с FDC я не помню.

    У меня на той же плате контроллера собрана ещё схема интерфейса RS-232 с таймером:

    http://www.denn.ru/orion/hardware/5351.jpg

    Прямого отношения к контроллеру дисковода она не имеет, но пользуется общим с ним дешифратором адресов 0F7xxh (КР1533ИД3).
    Последний раз редактировалось Denn; 04.02.2015 в 18:02. Причина: и добавил...
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  8. Эти 3 пользователя(ей) поблагодарили Denn за это полезное сообщение:
    Astrolux (13.10.2013), perestoronin (13.10.2013), Stampmaker (13.10.2015)

  9. #6
    Veteran Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    1,064
    Благодарностей: 357
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Post Основные команды ОС DSDOS

    Итак, продолжим.

    Система команд ОС DSDOS

    Команды однобуквенные (латинские заглавные, установка по-умолчанию при загрузке ОС), вводятся сразу после промпта (имя текущего устройства и значёк ">") без пробела. Параметры команд отделяются пробелами (их кол-во может быть любым). Если используются ключи-модификаторы, то они также разделяются пробелами, предваряются символом "/" и могут следовать в произвольном порядке. Для выполнения команды, после набора всех необходимых параметров нужно нажать клавишу "ВК" (Enter).

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

    "←" / "→" - перемещение по символам;
    "УС" (Ctrl) + "←" / "→" - перемещение по словам
    "TAB" - на четыре символа вперёд;
    "УС" (Ctrl) + "TAB" - на восемь символов вперёд;
    "⌐" (Home) - переход в начало строки;
    "ПС" (End) - переход в конец строки;
    "СТР" (Cls) - очистка содержимого всей строки;
    "АР2" (Esc) - отмена ввода строки;
    "ЗБ" (BackSpace) - удаление символа слева от курсора;
    "УС" (Ctrl) + "ЗБ" (BackSpace) - удаление строки слева от курсора;
    "F2" (Del) - удаление символа в позиции курсора;
    "УС" (Ctrl) + "F2" - удаление строки правее курсора;
    "F3" (Ins) - переключение режима вставка/замена (также изменяется вид курсора);
    "↑" - восстановление содержимого строки предыдущего ввода (замещение текущих данных предыдущими);
    "↓" - добавление содержимого строки предыдущего ввода в конец текущей строки (добавление предыдущих данных к текущим).

    Все вышеперечисленные возможности редактирования доступны в любых программах написанных под ОС DSDOS и использующих строчный ввод данных.

    Также всегда, когда на экране присутствует мигающий курсор модуля ввода-вывода DSDOS, работают следующие команды:

    "РУС/ЛАТ" (Caps Lock) - переключение раскладки (Лат/Рус);
    "РУС/ЛАТ" (Caps Lock) + "Shift" - переключение регистра (Заглавные/Строчные);
    "Shift" + символ - ввод символа в альтернативном регистре;
    "Shift" + "F1" - вызов сервисного меню пользователя (также доступно при опросе клавиатуры через п/п ПЗУ "Монитор");
    "Ctrl" + "Shift" + "F4" - "холодная" перезагрузка ПРК.


    *
    Последний раз редактировалось Denn; 18.10.2013 в 10:31. Причина: компоновка
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  10. Этот пользователь поблагодарил Denn за это полезное сообщение:
    Astrolux (16.10.2013)

  11. #7
    Veteran Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    1,064
    Благодарностей: 357
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Основные команды ОС DSDOS

    1. Вывод краткого описания команд DSDOS

    A>H




    2. Вывод информации о разработчике и номере версии DSDOS

    A>V


    3. Выбор (смена) текущего устройства

    A>{drive name}:

    При успешном исполнении команды в следующей строке в промпте системы появляется выбранное устройство (имя устройства), которое становится текущим. В противном случае появляется сообщение об ошибке.
    Возможны следующие имена устройств:
    A: ROM-диск
    B: RAM-диск
    C: дисковод №0
    D: дисковод №1
    E: зарезервировано
    F: зарезервировано
    G: зарезервировано
    H: зарезервировано


    4. Форматирование RAM-диска (устройства "B:")

    A>F

    При вводе команды появляется запрос на подтверждение [Y/N], т. к. после выполнения команды происходит полное уничтожение всех файлов на RAM-диске. Команда применяется в случае возникновения сбоев на RAM-диске или для быстрого освобождения от большого количества ненужных файлов.
    Данная команда форматирует только RAM-диск (устройство "B:"), независимо от выбранного текущего устройства!


    5. Вывод каталога устройства

    A>D[drive name]

    При вводе команды без параметра выводится каталог текущего устройства (в данном примере устройства "А"); аналогичный результат получается при введении пустой строки (нажатие клавиши "Enter" без ввода какой-либо команды).
    Записи каталога выводятся в порядке следования файлов на диске (без сортировки по алфавиту) и содержат следующую информацию:

    FileName Addr DecLong/HexLong{P} (Page) Date

    где

    FileName - имя файла (1..8 символов)
    Addr - адрес посадки файла в шестнадцатиричном виде
    DecLong - длина файла в десятичном виде
    HexLong - длина файла в шестнадцатиричном виде
    P - при включённом атрибуте защиты отображается символ "*"
    Page - номер рабочей страницы ОЗУ
    Date - дата создания/модификации файла

    Под списком файлов отображается общее их количество.


    6. Вывод информации об устройстве

    A>?[drive name]

    При вводе команды без параметра выводится информация о текущем устройстве (в данном примере - устройстве "А"). Отображается следующая информация:

    - полный объём дискового пространства (в Кбайтах)
    - объём, занимаемый файлами (в Кбайтах)
    - свободный объём дискового пространства (в Кбайтах)

    7. Загрузка (исполнение) файла

    A>L {full file name} [additional information]

    Под {full file name} понимается полное имя файла, которое может состоять либо просто из одного имени файла, либо из указания имени устройства и имени файла (разделяются двоеточием, например: A:PROG.CFG). Под [additional information] понимается любой набор символов, отделённых от имени файла пробелом (эта информация бывает необходима для указания параметров при запуске некоторых программ).
    Файл загружается в память и обрабатывается в соответствии со следующими правилами:

    * если файл имеет в имени символ "$", то он является командным (исполняемым) и после считывания в память ему передаётся управление (после завершения работы файла управление передаётся обратно ОС DSDOS);
    * если файл имеет в имени символ "%", то он является пакетным, т. е. содержит список команд DSDOS. После считывания его содержимое переносится в буфер пакетных файлов DSDOS и далее происходит последовательная построчная обработка команд;
    * если файл имеет в имени последовательность символов ".FT", то он распознаётся системой как знакогенератор ОС DSDOS и его загрузка производится в рабочую страницу памяти модуля CONIO по адресу, определённому переменной M_FNTS;
    * если файл имеет в имени последовательность символов ".ZG", то он распознаётся системой как знакогенератор стандартной процедуры вывода символов ПЗУ "Монитора" (процедура 0F809h) и его загрузка в память производится по адресу начала стандартного знакогенератора (адрес начала определяется переменной монитора BegnZG);
    * Во всех остальных случаях загрузка файла в память производится по адресу, указанному в заголовке файла и управление передаётся обратно ОС DSDOS.

    Примечание: Вместо символа "L" можно набирать "_" (пробел).


    8. Вызов файла

    A>B {full file name} [additional information]

    Команда аналогична предыдущей. Отличия состоят в том, что после обработки исполняемого файла выход происходит не в ОС DSDOS, а в программу, которая давала команду "B". Данную команду необходимо использовать при пакетной обработке команд. В остальном работа команды аналогична работе команды "L".


    9. Загрузка файла в память

    A>I {full file name} [begin address]

    При успешном выполнении команды осуществляется чтение файла в память и далее управление передаётся ОС DSDOS не зависимо от имени файла, т.е. не производится распознавание командных, пакетных и прочих файлов. Параметр [begin address] указывает начальный адрес загрузки файла, при отсутствии параметра загрузка производится по адресу, указанному в заголовке файла. При чтении файла командой "I" производится проверка на превышение верхней границы памяти пользователя и если файл "залезает" в область ОЗУ, находящуюся выше этой границы, то выводится сообщение об ошибке "Out of memory".


    10. Сохранение участка памяти в виде файла

    B>S {full file name} {begin address},{long} [/P]

    Параметр {begin address} указывает адрес начала, а параметр {long} указывает длину сохраняемого участка ОЗУ. Необязательный параметр [/P] указывает на установку атрибута защиты, записываемого файла от удаления. При успешном выполнении
    команды осуществляется сохранение файла на текущем (если параметр {full file name} состоит только из имени файла) устройстве или на устройстве, заданном в параметре {full file name} (отделяется двоеточием, например: B:TEXT.TXT).


    11. Переименование файла

    B>R {source file name} {target file name}

    Параметр {source file name} указывает имя файла, который подлежит переименованию. Параметр {target file name} указывает новое имя файла. Оба параметра не допускают указание полного имени файла т. к. переименование возможно только на текущем устройстве!


    12. Копирование файла

    B>C {source full file name} [target drive name]:[target file name]

    Параметр {source full file name} указывает имя файла, который подлежит копированию. Необязательный параметр [target drive name] указывает имя устройства, куда производится копирование (в случае отсутствия параметра копирование производится на тоже устройство, с которого копируется файл). Необязательный параметр [target file name] указывает имя скопированного файла (в случае отсутствия
    параметра файл копируется со своим именем).


    13. Удаление файла

    B>E {full file name}

    Параметр {full file name} указывает полное имя файла, которое может состоять либо просто из одного имени файла, либо из указания имени устройства и имени файла (разделяются двоеточием, например: A:PROG.CFG).


    14. Просмотр файла

    A>T {full file name} [/O]

    При успешном выполнении команды на экран выводится содержимое файла в текстовом виде в соответствии с расширенной кодировкой ASCII, принятой в ОС DSDOS. В варианте с ключом [] содержимое файла выводится в соответствии с кодировкой ASCII, принятой в ОС ORDOS v2.x. Коды со значением меньше 20h (ПРОБЕЛ) не отображаются и пропускаются.
    Для отмены вывода информации нужно нажать клавишу "АР2" (Esc), а для приостановки - любую другую.


    15. Постановка/снятие атрибута защиты файла от удаления

    B>P {full file name}

    Параметр {full file name} указывает полное имя файла, которое может состоять либо просто из одного имени файла, либо из указания имени устройства и имени файла (разделяются двоеточием, например: A:PROG.CFG). Выполнение команды происходит по принципу триггера, т.е. если атрибут не установлен, то он устанавливается, а если уже установлен, то - снимается.


    16. Изменение адреса посадки файла

    B>A {full file name} {new begin address}

    Параметр {full file name} указывает полное имя файла, которое может состоять либо просто из одного имени файла, либо из указания имени устройства и имени файла (разделяются двоеточием, например: A:PROG.CFG). Параметр {new begin address} указывает новый адрес посадки файла. После успешного выполнения команды для справки выводится прежний адрес посадки.


    17. Просмотр/изменение адреса верхней границы ОЗУ пользователя

    A>M [new user memory address]

    Без параметров команда выводит на экран текущее значение адреса верхней границы ОЗУ пользователя. При задании параметра [new user memory address] команда производит установку адреса верхней границы ОЗУ пользователя и отображение нового значения. Адрес задаётся в шестнадцатиричном виде.


    18. Вызов подпрограммы по адресу

    A>G {address}

    При правильном вызове команды происходит передача управления по указанному адресу (параметр {address}). Выход из вызываемой подпрограммы происходит в ОС DSDOS. Адрес задаётся в шестнадцатиричном виде.


    19. Выход из ОС DSDOS (полная перезагрузка ОС DSDOS)

    A>Q

    При вводе команды появляется запрос на подтверждение [Y/N] и в случае подтверждения происходит полная перезагрузка ОС DSDOS, а именно производится установка признака "холодной" загрузки ОС DSDOS и осуществляется переход по адресу 0F800h, что приводит к полной перезагрузке компьютера. Аналогичный результат, но без запроса на подтверждение можно получить одновременным нажатием клавиш "Ctrl+Shift+F4" в любой момент, когда на экране присутствует мигающий курсор модуля ввода-вывода ОС DSDOS.
    Последний раз редактировалось Denn; 18.10.2013 в 10:30.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  12. Этот пользователь поблагодарил Denn за это полезное сообщение:
    Astrolux (16.10.2013)

  13. #8
    Veteran Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    1,064
    Благодарностей: 357
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Post Сообщения об ошибках в ОС DSDOS

    Возможные ошибки при выполнении команд ОС DSDOS

    01h - Error I/O DIR: <d>*
    Ошибка при выполнении операции чтения/записи каталога

    02h - Out of DIR: <d>
    Переполнение каталога устройства
    (превышение максимально-возможного для данного устройства количества файлов)

    03h - Out of disk: <d>
    При записи: переполнение памяти устройства;
    При чтении: нарушение структуры данных файла

    04h - Not found file: <filename>*
    Файл не найден

    05h - Error I/O file: <filename>
    Ошибка при выполнении операции чтения/записи "тела" файла

    06h - Read only file: <filename>
    Файл доступен только для чтения (установлен атрибут защиты)

    07h - Replace name: <filename>
    Повторное имя файла (попытка переименовать имя файла в имя, уже имеющееся на данном устройстве)

    08h - Replace file: <filename>
    Повторное имя файла (попытка записи или копирования файла с именем, уже имеющимся на данном устройстве)

    09h - Out of memory
    Считываемый файл выходит за верхнюю границу ОЗУ пользователя и может испортить область системы и/или резидентных программ

    0Ah - No access to drive: <d>
    Попытка выбора недоступного устройства
    (доступ устройств определяется при конфигурации системы)

    0Bh - Invalid drive: <d>
    Попытка выбора несуществующего устройства
    (разрешены устройства: A, B, C, D, E, F, G, H)

    0Ch - Incorrect call batch
    Некорректный вызов пакетного файла (попытка вызова из пакетного файла или запрещён вызов программно)

    1Bh - Terminated!
    Выполнение операции прервано нажатием клавиши "АР2" (Esc)

    40h - Write protect drive: <d>
    Устройство защищено от выполнения операций записи/удаления

    80h - Not ready drive: <d>
    Устройство не готово к записи/чтению данных (например: не закрыт дисковод)

    FFh - Invalid command
    Попытка выполнить несуществующую в данной версии DSDOS команду
    __________________________________________________ __________________________________________________ _____________
    * <d> - символ имени устройства (A, B, C, ...), при операции с которым произошла ошибка
    * <filename> - имя файла, при операции с которым произошла ошибка


    Пакетная обработка команд ОС DSDOS

    В DSDOS есть возможность выполнять команды ОС в автоматическом режиме (пакетная обработка). Для её реализации необходимо в любом редакторе создать текстовый файл со списком команд ОС DSDOS, имя этого файла должно содержать символ "%". При запуске такого файла командой "L", ОС DSDOS будет поочерёдно исполнять все команды от начала списка до конца. Команды должны быть указаны полностью, со всеми необходимыми параметрами их вызова. Неверно записанная команда приведёт к выводу сообщения об ошибке, и будет продолжено выполнение остальных команд в списке.
    Т.о. если результат выполнения какой-либо команды зависит от предыдущей в списке, то необходимо заранее принять меры по контролю возможных ошибочных ситуаций.
    Также нужно понимать, что пакетный файл может быть запущен на исполнение с любого устройства, которое для пакета будет текущим диском, поэтому если используются команды без явного указания имён дисков, то следует принять меры по избежанию некорректного исполнения пакета.

    При обработке пакетных файлов есть некоторые отличия и некоторые дополнения в системе команд.
    Не обрабатываются следующие команды ОС DSDOS: "?", "T" и "ВК" (Enter).

    Инструкция "?" вместо вывода информации о текущем диске, используется для вывода текстовых сообщений в процессе исполнения пакетного файла. Т.о. любая последовательность символов после "?" будет немедленно выведена на экран при обработке данной строки, а в конце будет выполнен перевод строки.
    Введённая пустая строка не приведёт к выводу каталога текущего диска, а просто будет игнорирована при обработке. Для вывода на экран кода перевода строки нужно указать строку из одного символа "?".
    Команда "T" просто игнорируется, это связано с тем, что она для своей работы использует ту же область, что и буфер обработчика пакетных файлов.
    Для указания комментариев используется инструкция ";", после которой может следовать любая последовательность символов до конца строки.
    Для приостановки исполнения используется инструкция "W" (работает только при пакетной обработке!), на экран выводится мигающий курсор и по нажатию любой клавиши продолжается дальнейшее исполнение команд.
    Прервать исполнение команд можно нажатием клавиши "АР2" (Esc), проверка на нажатие которой производится при интерпретации очередной команды.
    Для вызова запускаемых программ необходимо пользоваться командой "B" вместо команды "L", в этом случае при выходе из программы будет продолжено выполнение остальных команд пакета.
    Во время обработки команд пакетного файла запрещается вызов других пакетных файлов, т.е. нельзя вызывать пакетный файл из пакетного!
    Последний раз редактировалось Denn; 10.11.2013 в 10:57.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  14. Этот пользователь поблагодарил Denn за это полезное сообщение:
    Astrolux (16.10.2013)

  15. #9
    Veteran Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    1,064
    Благодарностей: 357
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Post Сервисное меню пользователя ОС DSDOS

    Сервисное меню пользователя ОС DSDOS

    В DSDOS существует возможность пользоваться некоторыми средствами ОС прямо из программ пользователя. Эта возможность реализована в виде сервисного меню, которое вызывается одновременным нажатием клавиш «Shift+F1» в любой момент, когда на экране присутствует мигающий курсор. Меню выводится в самой верхней строке экрана, при это затёртая информация сохраняется во временный буфер и при выходе из меню восстанавливается. Для отмены меню необходимо нажать клавишу «АР2» (Esc), выбор нужного пункта осуществляется клавишами «←», «→» и «ВК» (Enter).




    Меню содержит следующие опции:

    Load - загрузка файла
    Save - сохранение участка памяти в файл
    Code - ввод кода ASCII (00h…FFh)
    View - просмотр альтернативного экрана
    Curs - выбор вида курсора
    Exit - выход в ОС DSDOS

    Этот небольшой набор опций позволяет облегчить процесс отладки программ, а также упрощает адаптацию программ не рассчитанных на работу в ОС DSDOS.

    1. Загрузка файла (Load)
    Данная опция позволяет, находясь в программе пользователя производить загрузку файлов данных, знакогенераторов, а также производить запуск других программ пользователя. Опция аналогична команде «L» ОС DSDOS с тем отличием, что запрещена обработка пакетных файлов и саму команду вводить не нужно - сразу вводится имя файла (можно с указанием диска, через двоеточие) и, если необходимо, параметры его вызова.

    2. Сохранение участка памяти в файл (Save)
    Данная опция позволяет, находясь в программе пользователя, производить сохранение участка памяти в файл. В том числе позволяет без использования специальных резидентных программ создавать "снимок" экрана. Опция аналогична команде «S» ОС DSDOS, только саму команду уже вводить не нужно - сразу вводятся параметры: имя файла (можно с указанием диска, через двоеточие), адрес начала, длина.

    3. Ввод кода ASCII (Code)
    Данная опция позволяет в любой момент, когда на экране присутствует мигающий курсор, вводить любой код ASCII путём набора его шестнадцатиричного значения (00h…FFh). Т.о. возможен ввод абсолютно любых символов, в т.ч. тех, которых нет на клавиатуре (например, рамок, стрелок и т.п.).

    4. Просмотр альтернативного экрана (View)
    Данная опция позволяет в любой момент просмотреть содержимое альтернативного экрана. Альтернативным экраном для "основного" считается "теневой" и наоборот. "Теневой" экран используют некоторые программы, чтобы не изменять содержимого "основного" экрана.

    5. Выбор вида курсора (Curs)
    Данная опция позволяет в любой момент изменить вид курсора процедуры ввода-вывода ОС DSDOS. В системе зарезервировано 32 вида курсоров, плюс 224 символа основного знакогенератора ОС DSDOS, которые тоже могут быть задействованы в качестве курсора.

    6. Выход в ОС DSDOS (Exit)
    Данная опция позволяет в любой момент, когда на экране присутствует мигающий курсор, осуществить выход из программы пользователя в ОС DSDOS. Опция необходима для программ, не имеющих выхода или делающими выход некорректно.


    *
    Последний раз редактировалось Denn; 18.10.2013 в 10:32.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  16. Этот пользователь поблагодарил Denn за это полезное сообщение:
    Astrolux (16.10.2013)

  17. #10
    Veteran Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    1,064
    Благодарностей: 357
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Post Оболочка ОС DSDOS (файл-менеджер)

    Оболочка ОС DSDOS (файл-менеджер)

    DSDOS-Commander (далее - DC) представляет собой оболочку ОС DSDOS и предназначен для значительного облегчения выполнения операций с файлами. Интерфейс программы построен по принципу аналогичных программ (NC$ - для ПК "Орион-128", Norton Commander - для IBM PC и т.д.). После запуска программа создает на устройстве начальной загрузки ОС DSDOS (по-умолчанию диск «B:») файл самозапуска (EXT$) оболочки при передаче управления ОС (например после завершения программы пользователя или после горячей перезагрузки ОС), причём автозагрузчик "помнит" с какого устройства был запущен DC и все последующие самозапуски будут производиться именно с этого устройства (обычно диск «A:»).



    При чтении/запуске файла или при выполнении какой-либо команды ОС DSDOS оболочка сохраняет на том же устройстве (где и файл самозапуска) свой конфигурационный файл «DC.INI». Файл конфигурации содержит информацию о панелях: выбранные диски, положения указателей, цвет, формат вывода размеров файлов; образец шаблона выделения файлов; последние данные, вводимые в командную строку из-под оболочки. Для своей работы DC использует область ОЗУ пользователя (0-я страница):

    9000..97FFh - каталог диска левой панели
    9800..9FFFh - каталог диска правой панели
    A000..B27Fh - собственно оболочка DC

    При выполнении команд ОС DSDOS и при запуске программ пользователя DC полностью освобождает ОЗУ пользователя, но также необходимо помнить, что при выходе в ОС область 9000..B27Fh будет затерта оболочкой, т.е. не следует располагать в этой области каких-либо драйверов или резидентных программ. Если же, всё-таки необходимо использовать вышеуказанную область ОЗУ под драйвер/резидент, то необходимо завершить работу с оболочкой DC (команда «Q») и далее осуществлять диалог с DSDOS штатными средствами ОС через интерфейс командной строки (см. подсказку по команде «H» ОС DSDOS). При завершении работы с DC, автоматически удаляются файлы «EXT$» и «DC.INI» с соответствующего диска и пользователь попадает в диалог процессора команд ОС DSDOS.
    В DC имеется также возможность исполнения одно буквенных команд ОС DSDOS через встроенные средства поддержки командной строки. для перехода в командную строку DC необходимо нажать клавишу «СТР», причём, если при этом удерживать клавишу «Ctrl», то в командную строку будет вставлено имя текущего выбранного файла. При выполнении всех команд ОС DSDOS, не связанных с запуском файлов на исполнение, возврат осуществляется в диалог командного процессора ОС, и для возврата в оболочку необходимо нажать клавишу «F4» или «АР2» (Esc). Возврат из программ пользователя всегда осуществляется в оболочку. Если необходимо запретить выход в оболочку (например требуется посмотреть результаты работы утилиты), то при выходе из утилиты/программы необходимо удержать клавишу «Shift» до появления промпта ОС DSDOS. Возврат в оболочку в этом случае делается аналогично - по «F4» или «АР2» (Esc). При редактировании командной строки действуют все стандартные средства редактирования строк ОС DSDOS.


    Операции выбора дисков и файлов

    Для выбора нужного диска необходимо нажать соответственно для левой панели клавишу «F1» или «1», а для правой панели - клавишу «F2» или «2». В результате на соответствующей панели появится окно диалога выбора диска.



    Далее необходимо нажать на клавишу с буквой нужного диска или нажать «АР2» (Esc) в случае отказа. Нажатия на клавиши с буквами несуществующих в системе дисков будут игнорироваться. Если произошла ошибка чтения каталога выбранного диска, то будет выведено сообщение о причине ошибки и пользователь снова попадет в диалог выбора диска, где можно повторить процедуру чтения каталога, нажав клавишу «ВК» (Enter), либо выбрать другой диск, либо отказаться от выбора, нажав клавишу «АР2» (Esc). Для обновления каталога текущей панели необходимо нажать клавишу «D» или комбинацию клавиш: Ctrl+«R». При нажатии на клавишу «N» будет произведено обновление каталогов обеих панелей.
    Для выбора текущей панели служат клавиши: , , ТАБ - они все осуществляют активизацию противоположенной панели. Панели можно поменять местами, нажав: Ctrl+«W».

    Для выбора файла на текущей панели существуют следующие команды:

    «↓» / «↑» - переход к следующему / предыдущему файлу;
    «Home» / «ПС» - в начало / конец текущей страницы;
    Ctrl + «↓» / «↑» - на страницу вверх / вниз;
    Ctrl + «Home» / «ПС» - в начало / конец всего списка.

    По нажатию клавиши «F» осуществляет изменение формата отображения длин файлов (шестнадцатеричный / десятичный) на обеих панелях.



    Нажав клавишу «?» можно получить информацию о текущем диске аналогично соответствующей команде ОС DSDOS (занято/свободно/всего места на диске), а также адрес верхней границы ОЗУ пользователя, размер и код типа данных в буфере обмена.




    Операции загрузки файлов

    Загрузка файлов в ОЗУ, а также запуск на исполнение командных файлов осуществляется нажатием клавиши «ВК» (Enter) на выбранном файле. При этом механизм загрузки/запуска файлов полностью аналогичен команде «L» ОС DSDOS. Для запуска программы с параметрами необходимо нажать «L» или Ctrl+«Enter», при этом под панелями откроется диалог редактирования командной строки со вставленной командой:



    Далее пользователь может ввести параметры запуска и нажать клавишу «Enter», или отказаться и вернуться к обзору панелей, нажав клавишу «АР2» (Esc) или «F4». Загрузка файлов в ОЗУ пользователя по конкретному адресу осуществляется нажатием клавиши «I» на выбранном файле. Далее механизм аналогичен вышеописанному для команды запуска с параметрами, только в качестве параметра необходимо указать адрес загрузки файла в ОЗУ. Команда полностью аналогична соответствующей команде ОС DSDOS.


    Операции выделения файлов в группу, шаблоны

    Некоторые операции (копирование, удаление) могут быть выполнены не только над отдельным файлом, но и над группой файлов. Далее рассмотрены команды выделения файлов в группу:

    «*» - выделение/снятие выделения текущего файла панели;
    «_» (пробел) – выделение/снятие выделения текущего файла панели со смещением указателя вниз на одну позицию;
    Ctrl + «.» - инвертировать выделение файлов;
    «S» (+) - выделение файлов по шаблону;
    «U» (-) - отмена выделения файлов.

    Выделенный файл на панели помечается слева символом «>».



    Выделение файлов снимается после обновления содержимого панели(ей), после выполнения операций копирования и удаления файлов, а также после выхода из DC (запуска программ, сброс ПРК).

    При выборе выделения по шаблону (команда «S») появляется окно ввода/редактирования шаблона по которому будет производиться выделение файлов, причем в строку будет подставлен последний введенный шаблон (по-умолчанию «*»), который можно отредактировать стандартными средствами редактирования строк ОС DSDOS.



    Нельзя ввести в качестве шаблона пустую строку. При вводе допустимы любые комбинации символов, причём символы «*», «?» выполняют специальные функции:

    «*» - означает любое кол-во любых символов;
    «?» - означает один любой символ.

    Например: шаблон «*.TXT» выделит все текстовые файлы на текущей панели, а шаблон «FL??.TMP» выделит все файлы с именами начинающимися на "FL", с расширением ".TMP" и имеющие в середине любые два символа.


    Копирование файлов

    Для копирования файла необходимо выбрать его на какой-либо панели и нажать клавишу «C» («F5» или «5»). Далее откроется окно диалога, где пользователю будут предложены диск противоположенной панели и имя файла назначения, разделенные символом «:».



    При необходимости пользователь может их изменить, пользуясь стандартными средствами редактирования строк ОС DSDOS или принять без изменений, сразу нажав «ВК» (Enter). Если же на текущей панели есть выделенные файлы, то будет произведено их немедленное копирование на диск противоположенной панели. В процессе копирования в окне будет отображаться ход событий (имена копируемых файлов, их номер в очереди).



    Если в процессе копирования на диске назначения будет обнаружен файл с аналогичным именем, то пользователю будет предложено: записать поверх «Yes», пропустить «No», а также произвести аналогичные действия со всеми остальными повторяющимися файлами без дополнительного подтверждения («for All» = «Yes», «Skip for all» = «No»). Заглавными выделены буквы, нажатие которых инициирует соответствующие операции.



    Пользователь также может нажать клавишу «АР2» (Esc) для отмены дальнейшего копирования. Если при выборе режима перезаписи поверх встретится файл, защищенный от удаления, то пользователю будет предложено подтвердить перезапись, подтвердить для всех последующих, пропустить, пропустить для всех последующих или прервать выполнение копирования.

    Примечание: оболочка DC не позволяет копировать файлы больших размеров (более 9000h), что связано с ограничением буфера копирования из-за присутствия «тела» DC в основной странице ОЗУ. Для копирования больших файлов надо использовать команду «C» ОС DSDOS. Если в процессе копирования группы файлов встретится файл, превышающий вышеуказанный размер, то пользователю будет предложено либо пропустить этот файл, либо прервать процесс копирования.


    +++ продолжение на следующей странице +++
    Последний раз редактировалось Denn; 18.10.2013 в 12:04.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  18. Эти 2 пользователя(ей) поблагодарили Denn за это полезное сообщение:
    Astrolux (16.10.2013), Ewgeny7 (25.10.2013)

Страница 1 из 25 12345 ... ПоследняяПоследняя

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

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

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

Похожие темы

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

Ваши права

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