User Tag List

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

Тема: Estex DSS и shell

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

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

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    1) откуда стартует и где заканчивается TPA (область в адресном пространстве процессора где программа пользователя может использовать ОЗУ адресного пространства CPU без подключения доп. страниц и с гарантией что ее там никто не пропилит). Интересует окружение когда прога запущена из CCP как "стандарт" (FN по-хорошему при старте чужой проги должен отдавать ей такое же окружение, да FN и вообще может не быть. FN же для запуска DSS 40h (64) EXEC использует или что-то своё? А DSS 40h (64) EXEC - стандарт окружения или тоже не гарантия?).
    Ну т.е. по остаточной памяти в 16к сегменте 0 сидит BIOS/DSS, с 4000h где-то еще вкрапления экранов, и с какого то адреса должна начаться "безопасная область". 8000..BFFF "взятые с потолка" как в большинстве примеров, это слишком мало. Вопрос со стеком тут ранее уже задавали, тоже осталось не совсем понятно: DSS при выполнении "чреватых" операций уносит стек на свой безопасный с восстановлением оригинального при выходе из п/п или нет? Стек ниже BFFF - это неудобно.
    При старте из шелла простейшее приложение helloworld из примера стартует с таким набором страниц:
    0000..3fff = FB:82 {page:xframe}
    4000..7fff = FF:A2
    8000..bfff = F6:C2
    c000..ffff = FF:E2

    что прискорбно (т.к. это фактически с 16кб ОЗУ TPA), и сразу надо начинать с операций над страницами (либо уживаться как есть если приложение маленькое).

    Цитата Сообщение от Error404 Посмотреть сообщение
    2) Как приложению передается строка параметров ОС (то что мы наколотили в строке ввода shell) - в каком-то буфере? Или адрес буфера не гарантирован и требуются функции типа 43h (67) GSWITCH (Get command line switch), довольно странного вида?
    Адрес буфера передается приложению параметром в регистре IX и обычно равен "адресу посадки" минус 128. Буфер хранится в виде такой структуры: <length>< cmdline>0000h<self>
    что похоже на то как командная строка передается в CP/M и MSDOS
    Последний раз редактировалось Error404; 05.02.2022 в 23:10.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

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

    Romych(06.02.2022)

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

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

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

Похожие темы

  1. Estex API
    от Smalovsky в разделе Sprinter
    Ответов: 11
    Последнее: 26.07.2021, 00:10

Ваши права

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