Просмотр полной версии : Описания RST #10 IS-DOS
SinglWolf
23.02.2009, 17:00
Пользуясь случаем, поздравляю Всех с праздником! :v2_cheer:
Народ! Остро нуждаюсь в ПОЛНОМ описании рестартов и ядра IS-DOS, особенно Шик+Классик!!!!!!!!! А чтоб не завалили тем же хламом что есть и у меня:smile:, уточню суть проблемы. Занялся я перекладкой некоторых прог из дистрибутивов старых версий на новые и столкнулся вот с чем. При инициализации прога проверяет 2 байта вектора конфигурации ядра (см. ПРИЛОЖЕНИЕ 3) по смещению -7 и -8... Пожалуйста, у кого есть полные описания рестартов, ядра и приложений, откликнитесь!!!!!!!!!!!!!!!
demon_zx
24.02.2009, 02:03
А чем тебе стандартная документация не устраивает?
В своё время когда я приводил в порядок "родные" описания рестартов и разбирался с загрузкой iS-DOS c винчестера, я долго искал что означают эти байты, но увы, не нашёл, а дизассемблировать полностью всю систему для определения что это за байты, было лень :)
Возможно стоит спросить у авторов TASiS, что это за байты, потому как эта система с большего повторяет iS-DOS.
SinglWolf
24.02.2009, 09:31
А чем тебе стандартная документация не устраивает?
Она меня вполне устраивает... За исключением того, что документация не полная... Мог бы и по аське спросить ;-)
Добавлено через 2 часа 28 минут
В своё время когда я приводил в порядок "родные" описания рестартов и разбирался с загрузкой iS-DOS c винчестера, я долго искал что означают эти байты, но увы, не нашёл
Мне бы хоть примерно знать на что влияют эти байты...
Найденные в сети и правленые файлы документации
SinglWolf
25.02.2009, 16:36
Найденные в сети и правленые файлы документации
И в этой документации в приложении 3 про байты -7 и -8 пустая строка, но всё равно спасибо...
по адресу #fe71 - слово - адрес начала эл. диска
SinglWolf
25.02.2009, 20:09
по адресу #fe71 - слово - адрес начала эл. диска
Если бы вектор конфигурации ядра был жёстко привязан к адресному пространству, то незачем был нужен рестарт ($g_cnfg(#10)). И спасибо за дезинформацию...
Приложение 3
Структура вектора конфигурации ядра ($g_cnfg(#10))
смеще-ние имя дли-на комментарий
-8 2 !!!!!!ИНФОРМАЦИЯ ОТСУТСТВУЕТ!!!!
-6 1 Размер электронного диска по умолчанию (обычно 29)
-5 ABODY 2 Адрес тела электронного диска
-3 CRDEV 1 Номер канала устройства Т (текущего)
-2 QUDEV 1 Номер канала устройства Q (быстрого)
-1 SYDEV 1 Номер канала устройства S (системного)
0 CNFG 1 Текущее количество компонент ОС
1 STOP 2 Адрес вершины ОС (то же, что и BTCHN)
3 UTOP 2 Адрес вершины программы пользователя
5 ADCAT 2 Адрес начала электронного диска
7 SZCAT 1 Размер электронного диска в блоках (1 блок - 260 байт)
8 APWR 16 Адрес загрузки 8-ми компонент ОС
24 QNMOD 8 Текущее количество модифицированных блоков на 8-ми блочных устройствах
32 DGCHN 2 Адрес начала области каналов (ОК)
34 BTCHN 2 Адрес конца области каналов
36 PTCHN 2 Указатель текущего заполнения области каналов
38 ERDEV 2 Адрес программы обработки ошибок блочных устройств
40 QVST 2 Адрес процедуры запроса для блочных устройств (см. ПРИЛОЖЕНИЕ 6)
55 $ANLZ CALL ANLZ - процедура обработки RST 16
62 EMPTY RET
66 1 EI или DI в зависимости от того, разрешены прерывания или нет (с 30.IV.1998)
Как видно из приложения адрес начала эл. диска лежит по смещению +5...
Да нет, всё правильно. Адрес тела эл. диска, это место, с которого читаются блоки (со смещением по номеру), а в начале эл. диска (!!) находится таблица описателей этих блоков, которая модифицируется при обращениях и т.д
Добавлено через 1 минуту
Адрес дал просто для ориентации. В is-dos chick и TASiS он одинаков
SinglWolf
25.02.2009, 22:33
Да нет, всё правильно. Адрес тела эл. диска, это место, с которого читаются блоки (со смещением по номеру), а в начале эл. диска (!!) находится таблица описателей этих блоков, которая модифицируется при обращениях и т.д
В приложении 3 и адрес тела электронного диска тоже указан: смещение -5 по вектору ядра конфигурации...
Адрес дал просто для ориентации. В is-dos chick и TASiS он одинаков
А конкретный адрес меня практически не интересует! Вычислением адреса вектора пусть занимается вышеуказанный RST!!!!!
P.S. Если посмотреть мой первый пост, то можно увидеть что меня интересует назначение байтов в векторе конфигурации ядра по смещению -8.
P.S. Если посмотреть мой первый пост, то можно увидеть что меня интересует назначение байтов в векторе конфигурации ядра по смещению -8.
Похоже есть некоторое недопонимание
-5 ABODY 2 Адрес тела электронного диска
- это начало блоков, а
-8 2 !!!!!!ИНФОРМАЦИЯ ОТСУТСТВУЕТ!!!! это начало так называемого эл. диска, точнее его заголовка в котором по 4 байта на блок - это описатели самого блока: его адрес на устройстве, номер самого устройства, кол-во обращений к блоку и т.д. А уж после описателей блоков идет сам массив блоков. Обратите внимание, что размер эл. диска считается в блоках по 260 баит, из них как раз 4 - идет на описатель.
Добавлено через 3 минуты
P.S. Если посмотреть мой первый пост, то можно увидеть что меня интересует назначение байтов в векторе конфигурации ядра по смещению -8.
Похоже есть некоторое недопонимание
-5 ABODY 2 Адрес тела электронного диска
- это начало блоков (по 256 байт), а
-8 2 !!!!!!ИНФОРМАЦИЯ ОТСУТСТВУЕТ!!!! это адрес начала так называемого эл. диска, точнее его заголовка, в котором по 4 байта на блок - это описатели самого блока: его адрес на устройстве, номер самого устройства, кол-во обращений к блоку и т.д. А уж после описателей блоков идет сам массив блоков. Обратите внимание, что размер эл. диска считается в блоках по 260 баит, из них как раз 4 - идет на описатель.
SinglWolf
26.02.2009, 11:52
Так значит по смещению -5 ABODY 2 Адрес тела электронного диска, который и начинался по смещению -7? Я сказал начинался, ибо в старых версиях ядра нам #84 и
#03. В новых - сплошные ноли... Буду "черепеть" дальше... Если правильно понял...
Должен признать свою ошибку. Запутался уже. Действительно ни в шике ни в TASiS система совершенно не обращается к этим адресам. Даже интересно, в какой проге они используются?
Эти байты используются в загрузчике iS-DOS с винчестера в KAY. Больше обращения к ним я нигде не встречал. Кстати, в оригинальной документации по системе эти байты вообще не фигурируют, а пустую строку в описании вектора системы вставил я :) после того, как обнаружил, что к этим байтам всё же есть обращение в загрузчике системы :)
SinglWolf
27.02.2009, 20:19
Кстати, в оригинальной документации по системе эти байты вообще не фигурируют, а пустую строку в описании вектора системы вставил я :) после того, как обнаружил, что к этим байтам всё же есть обращение в загрузчике системы :)
Чем и ввёл в огромное заблуждение :(
Больше обращения к ним я нигде не встречал.
Я насчитал около пяти из 8, в которых я смотрел кодинг. Особенно терминалки...
SinglWolf
28.02.2009, 08:59
Должен признать свою ошибку. Запутался уже. Действительно ни в шике ни в TASiS система совершенно не обращается к этим адресам. Даже интересно, в какой проге они используются?
Напомню, что мой первый пост начинался со строк: "Занялся я перекладкой некоторых прог из дистрибутивов старых версий на новые и столкнулся вот с чем..."
James DiGreze
02.03.2009, 09:02
Боюсь что полной документации на старые версии систем нет в природе. А большая часть старого софта была переложена на новый стандарт еще А.Г. Леонтьевым лет 10 назад.
Варианта я вижу два:
1) Писать самому с нуля;
2) Реверсинжениринг по дизасму.
А знает кто-нибудь полное описание битов в байтах +30 и +33 драйвера дисковода?
В документации указано, что бит 0 определяет 40/80 дорожек, а бит 1 - односторонний/двусторонний дисковод (для байта +30) или односторонняя/двусторонняя дискета (для байта +33). Однако насколько я понял, в этих байтах различными программами используется 7-й бит (например в format.com). За что отвечает этот бит?
7-й бит - признак работы драйвера с турбированным контроллером и HD дискет (1.44). Драйвер под TASiS эту переменную не использует, хотя она по-сути - маска для нужного регистра. А вот утилиты для работы с MS-DOS по этому биту в драйвере определяют признак работы с двойной плотностью и подменяют вдрайвере таблицу секторов на нужную. Это позволяет спокойно работать с дискетами 1.44.
При работе с турбированным контроллером бит 7 должен быть установлен?
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot