да
да
Вид для печати
Цитата:
Сообщение от izzx
С эмулятором Unreal Speccy и у меня все неоднозначно. Поэтому важно набрать статистистику работы на реале, чего я пока сделать не могу.
А вообще в TRDN наличие HDD определяется вот так:Если на выходе CY=1, то работа с HDD блокируется без вариантов.Код:LD HL,#7000
LD D,L
LD C,9
RST 8;выделяем буфер для чтения сектора HDD
DEFB #81
LD C,34
RST 8
DEFB #81
CityAceE, А если сделать TRDN с оверлеями, и какие ни будь редкие функции вынести в файлы на текущий диск? Можно тогда при запуске, проверять доступную память и если её больше 48кб, оверлеи загружать туда.
Тестовая версия X10.2. Я проводил тестирование по-прежнему на эмуляторе.
Сделано, чтобы для slave-HDD в LBA-режиме не было коррекции номера сектора примонтированных псевдодисков, как рекомендавал LW.
Сделана возможность запуска на разрабатываемой версии ТМ с кодом 98, но работа с HDD там почему-то не ладится; буду искать причину.
Оказалось что это смещение +#33. Но переключения на slave-HDD 4-м битом в этой переменной по-прежнему не происходит.Цитата:
Сообщение от LW
Несмотря на то, что в последних версиях TRDN включение режима LBA проверяется перед каждым чтением сектора с данными о примонтированных дисках, переключение "на лету" в Мониторе при работающем TRDN не получается. Переключение нужно делать так:
- зайти в Монитор;
- H.Hard disk utility > S.Set up > L.LBA mode;
- S.Set up > M.Monitor > P.Save CMOS
В следеющих версиях TRDN процедура проверки LBA-режима вероятно будет перенесена в стартовые процедуры.
Очередной тест улучшений 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.
по адресу #CD02 смените команду на jp #3D30
Плюс к этому я пишу настройки в 3й сектор в адресации LBA, а вы тоже в 3й, но в CHS. Что вернее даже не знаю.
Неверно ваш вариант распространенней будет, перейду на него.
Сделаю.Цитата:
Сообщение от 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 и сектор записывается на прежнее место собственной процедурой.
там есть отличия, но они не должны влиять на это
в Tr-Dos при вызове этой функции (при подключенном образе), сначала вызывается функиця 40 с установленным 7м битом в A (т.е. автомонтирование образа), устанавливается переменная #5D16 =%001111dd (dd-номер дисковода), потом собственно вызывается функция 1, а после это устанавливаются некоторые переменные tr-dos: #5CFA (Время перемещения головки дисковода) =#00; #5CC8 (Тип дисковода) =#83; #5CCD =#80.
Но эти переменные никак не влияют на работу с образом.
Дело скорее всего в том, что выключен Tr-Dos mirror.
У вас в коде идет сначала автомонтирование на выбранный пользователем дисковод, потом на дисковод D и только потом вызов функции 1. И при выключенной функции Tr-Dos mirror настройки первого монтирования просто не сохраняются.
Меняйте порядок, сначала монтируйте на D, потом на выбранный дисковод.
Раньше, в TRDN 0.75, алгоритм монтирования поменялся другой, как вЦитата:
Сообщение от LW
статье Влада Сотникова. Но проблема с первым обращением к примонтированному образу была таже самая.
Возможно, по замыслу МОА, работа с образом должна была начинаться так: LD A, drive \ LD C,1 \ RST 8 \ DB #81 \ LD C,8 \ RST 8 \ DB #81.
Но ф-ция 8 в ТМ 4.01, как мы выяснили, с дискетами не работает.
Отличия 1й функции tr-dos и r8dos я написал. Вы попробуйте изменить порядок монтирования. И посмотрим будет работать или нет.
Нет, он у меня всегда включен. Но я тестировал TRDN и при выключеном.Цитата:
Сообщение от LW
Нет. Наоборот. Временно монтируется раздел на D: (это может быть любая буква), без записи служебного сектора, чтобы работала функция прямого чтения секторов HDD. Когда пользователь выберет монтирование, действие отработается, как я писал в своем предыдущем сообщении.Цитата:
Сообщение от LW
Я имел ввиду, после выбора образа для монтирования, сначала идет автоподключение этого образа, потом восстанавливается образ на D, и только потом идет вызов функции 1.
Очередная тестовая версия.
Для ТМ версии 98 сделано:
В процедуре, где обрабатывается подсчет CRC, изменена команда на JP #3D30.
В байт +5 записи в секторе примонтированных дисках по прежнему записывается #01 при монтировании псевдодиска.
- - - Добавлено - - -
Таким образом, налажено монтирования псевдодисков для монитора 4.хх.008.
Для разрабатываемого монитора (версии 98) сделано:
- В процедуре, где обрабатывается подсчет CRC, возвращена команда на JP #3D31.
- Сама процедура подсчета CRC, как и прежде, вызывается по адресу #0000 из ROM7.
- В байт +5 записей сектора примонтированных дисков заносится #00.
Как и ранее, во вложении, в TRD-образе имеется программа HDD0-1.B, предназначенная для переключения на slave-HDD (только при его наличии), как писалось здесь.
Эту операцию переключения я проверял только на эмуляторе, поскольку у меня на реальном компьютере slave-HDD пока еще не подключен. Прошу пользователей компьютера Scorpion, имеющих два HDD, проверить работу тестовой версии TRDN на реальном компьютере.
На эмуляторе компьютера Scorpion GMX (монитор G5.00) переключения на slave-HDD программой HDD0-1.B не происходит. Если потом выбрать в меню Теневого монитора опцию H.Hard disk utility, выдается сообщение Hard disk not ready.
Очевидно, что это последняя программа, выпущенная в уходящем году. :)
Поздравляю всех пользователей TRDN и всех форумчан с наступающим (а где-то, уже наступившим) Новым годом!
Следующей версией будет официальная версия TRDN; в ней не будет поддержки монитора, который сейчас разрабатывает LW, так как работа над ним не завершена, но другие тестовые вирсии TRDN будут выпускаться по мере надобности.
Новогодний подарок от Grand'а всем пользователям TRDN - новая версия коммандера (см. первое сообщение данной темы).
Версия с альтернативной цветовой палитрой интерфейса.
https://i.postimg.cc/wMxQxbV5/trdnx81.png
Данная версия, кроме цвета, ничем не отличается от основной, представленной в первом сообщении темы. Также в первом сообщении смотрите Руководство и Лицензионное соглашение.
Принимаются пожелания по совершенствованию цветовой палитры.
Во вложении V0.76.5.1b (07.06.2025)
MD5SUM архива: a6e9f99986b9881914490f1cf05d659b
Дополнительные материалы
- Последняя на текущий момент полная официальная версия TRDN
- Официальная ROM-версия TRDN (для Scorpion)
- Драйверы памяти для Scorpion 1024 и Scorpion GMX от Grand.
- Драйверы памяти для Profi 512 и 1024 и Pentagon 1024 от molodcov_alex.
- Драйверы памяти для (ATM) Turbo 2+ 512 и 1024 от Grand.
- Драйверы часов для GLUK RTC и ZXMC RTC от caro.
- Драйвер часов для любого ZX Spectrum 128 с использованием системного таймера от Grand.
- Набор альтернативных шрифтов от Grand.
В первом сообщении данной темы обновлён архив с актуальными исходными текстами коммандера.
Также обновлена и ROM-версия TRDN.
функция 34 не причем, все процедуры R8DOS ПЗУ GMX идентичны ПЗУ v4.01
Проблема в том, что SMUC не видит Slave. Из-за чего непонятно, возможно некорректная эмуляция. По хорошему этот момент надо проверить на реале.
И есть еще один нюанс, что в GMX, что в 4.01 данный метод работать не будет, если к SMUC`у будет подключен только Slave.
Grand выпустил новую версию TRND. Как обычно, её вместе с исходными текстами вы сможете найти в первом сообщении этой темы.
Конечно спрашивал уже, но время прошло, может планы поменялись. Поддержка немо так и не планируется?
Увы, - нет. Свое отрицательное мнение относительно FAT'а на Спектруме я неоднократно высказывал.
Что-то новое в TRDN можно планировать не раньше выхода версии V0.80. А пока там нет места...
Кроме того, ждут своей реализации более интересные вещи, как мне кажется, - поддержка текстового режима (ATM) Turbo 2+ и ресширенного графического режима Scorpion GMX.
Опубликованы: версия с альтернативной цветовой палитрой интерфейса и ROM-версия для Scorpion'а.
Главное с чего-то начать. У меня есть реальный (ATM) Turbo 2+. Когда появится рабочий механизм, можно будет поддержать и Profi.Цитата:
Сообщение от Djoni
- - - Добавлено - - -
Кроме того, вышло улучшение последней версии без поддержки Scorpion'а.