PDA

Просмотр полной версии : Описания RST #10 IS-DOS



SinglWolf
23.02.2009, 18:00
Пользуясь случаем, поздравляю Всех с праздником! :v2_cheer:
Народ! Остро нуждаюсь в ПОЛНОМ описании рестартов и ядра IS-DOS, особенно Шик+Классик!!!!!!!!! А чтоб не завалили тем же хламом что есть и у меня:smile:, уточню суть проблемы. Занялся я перекладкой некоторых прог из дистрибутивов старых версий на новые и столкнулся вот с чем. При инициализации прога проверяет 2 байта вектора конфигурации ядра (см. ПРИЛОЖЕНИЕ 3) по смещению -7 и -8... Пожалуйста, у кого есть полные описания рестартов, ядра и приложений, откликнитесь!!!!!!!!!!!!!!!

demon_zx
24.02.2009, 03:03
А чем тебе стандартная документация не устраивает?

Prusak
24.02.2009, 09:53
В своё время когда я приводил в порядок "родные" описания рестартов и разбирался с загрузкой iS-DOS c винчестера, я долго искал что означают эти байты, но увы, не нашёл, а дизассемблировать полностью всю систему для определения что это за байты, было лень :)

Возможно стоит спросить у авторов TASiS, что это за байты, потому как эта система с большего повторяет iS-DOS.

SinglWolf
24.02.2009, 10:31
А чем тебе стандартная документация не устраивает?

Она меня вполне устраивает... За исключением того, что документация не полная... Мог бы и по аське спросить ;-)

Добавлено через 2 часа 28 минут

В своё время когда я приводил в порядок "родные" описания рестартов и разбирался с загрузкой iS-DOS c винчестера, я долго искал что означают эти байты, но увы, не нашёл

Мне бы хоть примерно знать на что влияют эти байты...

kury0
25.02.2009, 14:53
Найденные в сети и правленые файлы документации

SinglWolf
25.02.2009, 17:36
Найденные в сети и правленые файлы документации

И в этой документации в приложении 3 про байты -7 и -8 пустая строка, но всё равно спасибо...

kury0
25.02.2009, 20:24
по адресу #fe71 - слово - адрес начала эл. диска

SinglWolf
25.02.2009, 21: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...

kury0
25.02.2009, 23:17
Да нет, всё правильно. Адрес тела эл. диска, это место, с которого читаются блоки (со смещением по номеру), а в начале эл. диска (!!) находится таблица описателей этих блоков, которая модифицируется при обращениях и т.д

Добавлено через 1 минуту
Адрес дал просто для ориентации. В is-dos chick и TASiS он одинаков

SinglWolf
25.02.2009, 23:33
Да нет, всё правильно. Адрес тела эл. диска, это место, с которого читаются блоки (со смещением по номеру), а в начале эл. диска (!!) находится таблица описателей этих блоков, которая модифицируется при обращениях и т.д

В приложении 3 и адрес тела электронного диска тоже указан: смещение -5 по вектору ядра конфигурации...


Адрес дал просто для ориентации. В is-dos chick и TASiS он одинаков

А конкретный адрес меня практически не интересует! Вычислением адреса вектора пусть занимается вышеуказанный RST!!!!!
P.S. Если посмотреть мой первый пост, то можно увидеть что меня интересует назначение байтов в векторе конфигурации ядра по смещению -8.

kury0
26.02.2009, 01:13
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, 12:52
Так значит по смещению -5 ABODY 2 Адрес тела электронного диска, который и начинался по смещению -7? Я сказал начинался, ибо в старых версиях ядра нам #84 и
#03. В новых - сплошные ноли... Буду "черепеть" дальше... Если правильно понял...

kury0
26.02.2009, 15:09
Должен признать свою ошибку. Запутался уже. Действительно ни в шике ни в TASiS система совершенно не обращается к этим адресам. Даже интересно, в какой проге они используются?

Prusak
27.02.2009, 15:46
Эти байты используются в загрузчике iS-DOS с винчестера в KAY. Больше обращения к ним я нигде не встречал. Кстати, в оригинальной документации по системе эти байты вообще не фигурируют, а пустую строку в описании вектора системы вставил я :) после того, как обнаружил, что к этим байтам всё же есть обращение в загрузчике системы :)

SinglWolf
27.02.2009, 21:19
Кстати, в оригинальной документации по системе эти байты вообще не фигурируют, а пустую строку в описании вектора системы вставил я :) после того, как обнаружил, что к этим байтам всё же есть обращение в загрузчике системы :)

Чем и ввёл в огромное заблуждение :(


Больше обращения к ним я нигде не встречал.

Я насчитал около пяти из 8, в которых я смотрел кодинг. Особенно терминалки...

SinglWolf
28.02.2009, 09:59
Должен признать свою ошибку. Запутался уже. Действительно ни в шике ни в TASiS система совершенно не обращается к этим адресам. Даже интересно, в какой проге они используются?

Напомню, что мой первый пост начинался со строк: "Занялся я перекладкой некоторых прог из дистрибутивов старых версий на новые и столкнулся вот с чем..."

James DiGreze
02.03.2009, 10:02
Боюсь что полной документации на старые версии систем нет в природе. А большая часть старого софта была переложена на новый стандарт еще А.Г. Леонтьевым лет 10 назад.
Варианта я вижу два:
1) Писать самому с нуля;
2) Реверсинжениринг по дизасму.

Prusak
10.03.2009, 10:05
А знает кто-нибудь полное описание битов в байтах +30 и +33 драйвера дисковода?

В документации указано, что бит 0 определяет 40/80 дорожек, а бит 1 - односторонний/двусторонний дисковод (для байта +30) или односторонняя/двусторонняя дискета (для байта +33). Однако насколько я понял, в этих байтах различными программами используется 7-й бит (например в format.com). За что отвечает этот бит?

kury0
10.03.2009, 16:21
7-й бит - признак работы драйвера с турбированным контроллером и HD дискет (1.44). Драйвер под TASiS эту переменную не использует, хотя она по-сути - маска для нужного регистра. А вот утилиты для работы с MS-DOS по этому биту в драйвере определяют признак работы с двойной плотностью и подменяют вдрайвере таблицу секторов на нужную. Это позволяет спокойно работать с дискетами 1.44.

Prusak
10.03.2009, 18:07
При работе с турбированным контроллером бит 7 должен быть установлен?

kury0
11.03.2009, 11:20
Да.