Очередной тест улучшений TRDN. Я проводил тестирование по-прежнему на эмуляторе. Приглашаю желающих, владельцев компьютера Scorpion, поучаствовать.
- во вложении универсальная программа переключения HDD master <-> slave для версий ТМ 3.9f, 4.01 и разрабатываемой LW.
- процедура проверки включения LBA-режима перенесена в стартовые процедуры.
- процедура определения master/slave также в стартовых процедурах.
- налажена работа с HDD-slave в ТМ 3.9f (хоть это и никому не нужно
).
- тестовая версия по-прежнему не работает с разрабатываемой версией ТМ (но это мы обсудим в соответствующей теме).
Во время работы тестовой версии, как сказано в описании для текущей версии: не следует что-либо менять в меню H.Hard disk utility Теневого монитора.
Данную тестовую версию я запускал на эмуляторе Unreal Speccy в режиме Scorpion GMX + ProfROM G5.00. Переменная монитора, в которой хранится копия регистра накопителя/головки та же, что и в 4.01: +#35 группы 0, но переключения на slave-HDD она не производит. У меня подозрение, что функция 34 R8DOS в G5.00 принудительно включает HDD-master независимо от значения в +#35.
Последний раз редактировалось Grand; 26.12.2022 в 04:35. Причина: Удаление вложения
LW(19.12.2022)
по адресу #CD02 смените команду на jp #3D30
Плюс к этому я пишу настройки в 3й сектор в адресации LBA, а вы тоже в 3й, но в CHS. Что вернее даже не знаю.
Неверно ваш вариант распространенней будет, перейду на него.
Последний раз редактировалось LW; 19.12.2022 в 08:33.
Сделаю.Сообщение от LW
Я за 3-й физический он же 2-й логический. Но не настаиваю. То, что сектор будет один и в LBA, и в не LBA - уже хорошо.Сообщение от LW
сменил
Предлагаю вам подумать над поддержкой новой версии ПрофПЗУ. Для этого надо пока в общем то немного. Достаточно в +5 байт описателя примонтированных дисков писать номер винчестера и раздела на нем в формате bit 0-1 - номер раздела, bit 2 - номер винчестера bit 7-3 =0.
Прочитать текущий номер раздела/винчестера можно функцией #2D(45) R8DOS
Без этого, к сожалению, TRDN сможет нормально работать только с 1м разделом на мастере.
- - - Добавлено - - -
Да и смену диска тоже функцией надо делать
Это хорошо. Но я думаю, что на "классических" версиях Монитора нужно монтировать по-старому. А в новой версии Монитора должны быть новые, правильные функции монтирования, которые сделают все сами. Старые функции тоже нужно оставить для совместимости.Сообщение от LW
Хочу кратко описать работу TRDN c HDD. Этой информации пока нет в файле COMMENTS.TXT в архиве исходников.
При выборе устройства E: происходит чтение каталога разделов функцией 38 R8DOS (#81). На файловой панели (ФП) формируется список имен, состоящий только из TR-DOS-подразделов.
При выборе подраздела происходит его временное монтирование на D: и на ФП формируется список имен псевдодисков. Имена берутся из 8-го логического 256-и байтного блока каждого псевдодиска, т.е. фактические имена, заданные при их инициалицации. Чтение осуществляется функцией 36.
При входе в псевдодиск его монтирования не происходит. Вместо этого нужные сектора из него читаются функцией 36. На ФП формируется список файлов и подкаталогов DirSys.
При монтировании псевдодиска как устройство A:...D:, читается 2-й (или 3-й для LBA) логический сектор HDD собственной процедурой. В нем создается новая запись о примонтированном псевдодиске. Расцитывается и заносится CRC сектора вызовом соответствующей прцедуры по абсолютному адресу из ROM7. Cектор записывается нв прежнее место собственной процедурой. Функцией 35 прозводится "автомонтирование". Дальнейшая работа осуществляется TR-DOS-вызовами 15635, первым из которых: LD A,drive / LD C,1 / CALL 15635. Оказалось что он является обязательным - без него операции с псевдодиском невозможны, и его не заменишь вызовом LD A,drive / LD C,1 / RST 8 / DB #81.
При размонтировании устройства A:...D:, собственной процедурой с HDD читается сектор с записями о примонтированных псевдодисках. Если к устройству действительно примонтирован псевдодиск он отключается Функцией 35, вносятся соответствующие изменения в считанный сектор, включая подсчет CRC и сектор записывается на прежнее место собственной процедурой.
Evgeny Muchkin(22.12.2022)
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)