Просмотр полной версии : vTR-DOS для Pentagon1024SL
Начал написание vTR-DOS для Pentagon1024SL + NEMO_IDE
В процессе наткнулся на некоторые неясности
1. Где четко почитать про методы выполнения команд Beta-Disk
(прямое программирование без TR-DOS)
Типа:
а)Посылаем в порт #1F команду записи сектора
б) Проверяем то-то (такой-то бит-защита от записи)
в)Ждем того-то (точно не знаю, может надо дождатся какого-то бита чего-то)
г)Ждем сего-то (запрос данных DRQ - откуда читается #ff или #1f или можно из любого)
д)Кидаем в порт данных байт
е) уменьшаем счетчик, если не ноль, переход на г)
ф) ... еще чего-то
и.т.д...
2. Интересуют временные задержки по сигналам (а еще лучше временные диаграммы сигналов)
Т.е. фраза: На каждый запрос DRQ необходимо записать в рег.данных очередной байт. - Сколько секунд (а лучше тактов между соседними запросами DRQ)???
через сколько тактов повторяется индексная метка?
deathsoft
29.01.2007, 01:54
Фирменая документация от WD на контроллер fd179x (ВГ93).
Спасибо, ценная информация.
Но еслиб я сначала подумал :v2_clapp: разобрался еще проще:
скорость диска 300об/мин -> 5 об/сек
полный размер дорожки со служебными данными - 6250 байт
За 1сек диск прокручивает 31250байт
на Пентагоне - 71680тактов в прерывании -> 358400 тактов в секунде
время, между соседними DRQ - 358400/31250 = 114.6 такта
Время чтения/записи tr-dos сектора = 114.6*256 = 29337.6 такта
Попросил у ukms_z исходники vTRDOS для ATM. - возможно много чего почерпну:-)
Попросил у ukms_z исходники vTRDOS для ATM. - возможно много чего почерпну:-)
Желательно чтобы была совместимость, хотя бы по стандарту электронного диска.
Начал написание vTR-DOS для Pentagon1024SL + NEMO_IDE
В процессе наткнулся на некоторые неясности
А исходники самой TR-DOS посмотреть слабо?
Там все просто до безобразия.
А исходники самой TR-DOS посмотреть слабо?
Там все просто до безобразия.
Уже смотрел:-)
Именно на основе них и буду делать. Версия 5.04T
KingOfEvil
30.01.2007, 01:23
Начал написание vTR-DOS для Pentagon1024SL + NEMO_IDE
Нужна ли какая-либо тех. информация по Pentagon-1024SL?
Версии 1.4 и 2.x отличаются друг от друга весьма значительно, более того в ноябре прошлого года я прекратил сборку плат версии 1.4. Поддерживать надо в первую орчередь платы 2.x.
Желательно чтобы была совместимость, хотя бы по стандарту электронного диска.
А у ATM есть совместимость с KAY?
KingOfEvil
31.01.2007, 00:01
Желательно чтобы была совместимость, хотя бы по стандарту электронного диска.
Как раз не надо делать совместимость с АТМ, т.к. нужна совместимость по RAM-диску с Gluk 6.x. Совместимость с АТМ не даст никаких преимуществ не для АТМ, не для Пентагона, т.к. RAM-диск всегда находится внутри компа, его нельзя вынуть, например, из Пентагона и вставить в АТМ.
Как раз не надо делать совместимость с АТМ, т.к. нужна совместимость по RAM-диску с Gluk 6.x. Совместимость с АТМ не даст никаких преимуществ не для АТМ, не для Пентагона, т.к. RAM-диск всегда находится внутри компа, его нельзя вынуть, например, из Пентагона и вставить в АТМ.
Как всегда давайте мульен стандартов плодить :).
УРа товарищи :)
demon_zx
31.01.2007, 11:30
Никто не плодит мульен стандартов, стандарт по Gluk'у существует, потому как существует Gluk.
KingOfEvil
31.01.2007, 18:02
Как всегда давайте мульен стандартов плодить :).
УРа товарищи :)
Для Пентагона ЕСТЬ СТАНДАРТ RAM-диска. Он используестя в Gluk reset service и TR-DOS 6.10. Если сделать RAM-диск как в АТМ, теряем совместимость с Gluk reset service. В Pentagon-1024sl 2.x старт идет из 0-й страницы ПЗУ, там Gluk reset service. Если vTR-DOS будет не совместим по RAM диску с глюком, то какой от последнего толк??? Значит, вместо глюка надо писать что-то новое. Что? Кто это сделает? Ты сделаешь?
1) А какой формат RAM-диска у Gluk`а у KAY и у ATM???
2) По информации о Пентагоне: надобы знать скока страниц ПЗУ задействовано в схеме и как переключаются.
И собственно вопрос по поводу стандартов:
А зачем вообще совместимость по рам диску?
Я расчитываю убить васик-128, поместить туда
стартовое меню:
trdos boot
vtrdos boot
ide master boot
ide slave boot
options
utilities
в опциях
выбор v-disk (trd, scl) с ide master/slave
настройки окружения vtrdos
... Пока точного списка нет, тока набросок 6 функций
(можно также добавить встроенный boot к диску)
утилиты
partition magic - некий минимальный набор функций из аналогии на ПЦ
коммандер
Имелось ввиду, что ПЗУ будет иметь в себе все необходимое для работы vtrdos, и никаких внешних утилит не понадобится!
acidrain
31.01.2007, 20:13
на Пентагоне - 71680тактов в прерывании -> 358400 тактов в секундеЕсли не ошибаюсь, то 3584000 tackts/sec. ?
Для Пентагона ЕСТЬ СТАНДАРТ RAM-диска. Он используестя в Gluk reset service и TR-DOS 6.10. можно поподробней, что это такое? я лишь знаю трдос5.12f и производные, которые работают с рамдиском D по #3d13. неужели глюк сам лезет в память в независимости от трдоса??
KingOfEvil
01.02.2007, 01:45
1) А какой формат RAM-диска у Gluk`а у KAY и у ATM???
2) По информации о Пентагоне: надобы знать скока страниц ПЗУ задействовано в схеме и как переключаются.
1. Про формат RAM-диска в KAY и ATM я ничего сказать не могу, в Gluk-e и в TR-DOS 6.10e формат RAM-диска, если не ошибаюсь, как в TR-DOS 5.12 и TR-DOS 6.05, но перевернутый, т.е. растет сверху-вниз. В прилагаемом архиве Gluk 6.3 вместе с исходниками и описаниями (взято с сайта http://alonecoder.narod.ru), там можно посмотреть более подробно, а еще лучше спросить у Alco, если потребуется.
2. По поводу страниц ПЗУ. Задействованы все страницы. Те страницы, где находятся basic48, basic128, TR-DOS, переключаются стандартным образом, но старт происходит из дополнительной страницы (в которой находится Gluk). Т.е. после reset-a включается дополнительная страница ПЗУ, которая отключается автоматически при извлечении кода операции вне ПЗУ (т.е. если сделать CALL или что-то подобное в адрес старше 16384), после чего переключение страниц ПЗУ ничем не отличается от обычного Spectrum-128.
Для нужд vTRDOS можно использовать либо страницу Basic128, либо доп. старницу, но исключать Gluk не очень хочется, т.к. в него встроен коммандер, диск доктор и много дополнительных функций. С помощью глюка можно форматировать RAM-диск и работать с ним, поэтому желательно сохранить существующий формат RAM-диска.
KingOfEvil
01.02.2007, 01:55
неужели глюк сам лезет в память в независимости от трдоса??
Он делает форматирование RAM-диска, причем на разный объем. Судя по всему, это делается без привлечения TR-DOS. Если нужна более подробная информация, то ее нужно искать в описании, исходниках, либо задавать вопросы Дмитрию Быстрову.
Максагор
01.02.2007, 02:10
Он делает форматирование RAM-диска, причем на разный объем. Судя по всему, это делается без привлечения TR-DOS. Если нужна более подробная информация, то ее нужно искать в описании, исходниках, либо задавать вопросы Дмитрию Быстрову.
Сомневаюсь, что он при этом лезет во все страницы. Для "виртуального" форматирования достаточно очистить и проинициализировать только нулевою дорожку - область каталога и системный сектор.А это максимум 4Кб в одной единственной странице.
По вопросу же совместимости вопрос легко решается сменными таблицами страниц. На 640Кб-диск нужна таблица всего в 40 байтов.
Соответственно на Пентагоне будет одна табличка, а в АТМ - другая. Точнее она там уже есть. И приэтом ее можно менять как угодно. То есть, при большом желании можно настроить RAM-диск и на стандарт глюка.
demon_zx
01.02.2007, 08:58
А зачем нужна совместимость по рам-диску с АТМ, что это дает? По моему это ничего не дает.
Он делает форматирование RAM-диска, причем на разный объем
1) Вот как раз разный объем в случае использования образов нам нафиг не сдался.
Т.к. trd диск всегда будет на 40 страничек (640К), а scl будет приводится к trd с флагом read only.
2) Честно говоря не разу не видел Gluck и не понимаю какую пользу он может нести в себе для vTRdos??? Хотя если надо - не проблема, но проблема в том, что первой должна стартовать НОВАЯ прошивка, при первом запуске создавать свои переменные, определять параметры IDE и т.п. Так что возникает еще одна проблема - как их с Глюком подружить???
3) Пока есть исходники, переделать формат рам диска не проблема!!! Так что на данном этапе я подумаю лучше о точности эмуляции dos`a т.к. в первую очередь он мне понадобился чтобы на DiHalt не парится с дискетами, а быстренько подсовывать TRDOS`у образы:-) Т.е. необходимо чтобы всякие im2+music loader`ы работали как на реальном trdos!!!
2acidrain: Естественно 3584000 tackts/sec - просто опечатка
Дальше вопрос:
Как защитить рам-диск от посягательств программ???
1 вариант) использовать соответствующий бит дополнительного порта, ограничивая память 128к
2 вариант) Более продвинутый. При чтении/записи сектора проверяем целостность рам-диска. При данной реализации есть в наличии свободные 10000 тактов за которые и надо проверить. Естественно контрольная сумма отпадает - слишком долго... У кого есть предложения?
KingOfEvil
01.02.2007, 21:20
1) Вот как раз разный объем в случае использования образов нам нафиг не сдался.
Т.к. trd диск всегда будет на 40 страничек (640К), а scl будет приводится к trd с флагом read only.
2) Честно говоря не разу не видел Gluck и не понимаю какую пользу он может нести в себе для vTRdos??? Хотя если надо - не проблема, но проблема в том, что первой должна стартовать НОВАЯ прошивка, при первом запуске создавать свои переменные, определять параметры IDE и т.п. Так что возникает еще одна проблема - как их с Глюком подружить???
Это вопрос не ко мне, а к AlCo. Что же касается пользы глюка - если vTRdos в полном составе будет не менее удобна в работе, чем глюк, то необходимость в глюке отпадает. Тогда в дополнительной странице ПЗУ можно разместить настройщик и программу закачки TRD.
Дальше вопрос:
Как защитить рам-диск от посягательств программ???
1 вариант) использовать соответствующий бит дополнительного порта, ограничивая память 128к
2 вариант) Более продвинутый. При чтении/записи сектора проверяем целостность рам-диска. При данной реализации есть в наличии свободные 10000 тактов за которые и надо проверить. Естественно контрольная сумма отпадает - слишком долго... У кого есть предложения?
Первый вариант уже реализован в Pentagon-1024SL 2.x.
Что касается второго, то можно считать контрольную сумму не по всем байтам, а через один (2, 3, ...). Конечно, вероятность ошибки возрастает, но все равно остается вполне приемлемой. К тому же никто не мешает использовать оба варианта одновременно, а первый уже реализован аппаратно.
ВАРИАНТ1 не очень удобен в том плане, что свободной памяти больше чем 128к.
Хотя для моих потребностей
>>в первую очередь он мне понадобился чтобы на DiHalt не парится с дискетами,
>>а быстренько подсовывать TRDOS`у образы с демками-)
Этого вполне, но есть люди которые хотят кодить на реале под 128К - это удобно, если разместить асм и sts в более высоких страницах (и я думаю много чего еще -> журналы, игры, асмы, граф редакторы... ) - тут либо надеятся на то, что все ОК!!! и зпбить на проверку, либо использовать вариант2
>>Что касается второго, то можно считать контрольную сумму не по всем
>>байтам, а через один
Напиши процедуру и посчитай скока тактов она сожрет!!!!!!!!!!!!!!!!!!!!!!!!!!!
(не забудь!!!!! например при записи проверили CR - сошлось, пишем файл, снова считаем CR!!! - т.е. практически двойная операция!!!)
Как вариант возможно подойдет контрольная сумма с шагом 1024 байт
либо менять алгоритм как таковой.
demon_zx
02.02.2007, 08:44
Учитывая что большинство программ обычно занимают страницы памяти с начала (с адреса #c000) то можно проверять только целостность в начале страницы.
Т.е. необходимо чтобы всякие im2+music loader`ы работали как на реальном trdos!!!
Они могут работать лучше и быстрее чем на реальной TRDOS. Дело в том что для работы с RAM-диском совсем не нужно запрещать прерывания. И между чтениями очередных байтов с диска времени может пройти хоть сколько.
acidrain
02.02.2007, 12:18
2acidrain: Естественно 3584000 tackts/sec - просто опечаткаАга, опечатка. Но это лишь часть проблемы просто опечатка, но есть еще и мат часть -
кварец в пентагоне РОВНО 14 мгц, а значит тактов в секунде
РОВНО 3500000 (три с полтиной мульёна)!
и кадровая там не 50гц а чуть меньше (ибо строчек не 312 а 320).
=))) (сенкс, дружище (зы. друг понял;))))
Они могут работать лучше и быстрее чем на реальной TRDOS
А прикинь как тогда будет например тот же Refresh смотреться???
Там чтение видео с диска...
Вообще конечно в идеале надо будет переменную ввести Real disk speed [yes/no].
KingOfEvil
03.02.2007, 21:06
Сомневаюсь, что он при этом лезет во все страницы.
А я разве сказал, что он лезет во все страницы? Я только сказал, что он делает это без помощи TR-DOS.
А прикинь как тогда будет например тот же Refresh смотреться???
Там чтение видео с диска...
Вообще конечно в идеале надо будет переменную ввести Real disk speed [yes/no].
А в чем там фишка? Вывод кадров синхронизируется с чтением секторов с диска? То бишь следующий сектор - следующий кадр?
Впрочем я имел в виду не это, а то, что можно исключить в принципе потерю данных. Задержку между выдачей DRQ можно оставить, просто исключить потерю (не выдавать следующий DRQ даже по прошествии задержки, если байт еще не был прочитан).
А в чем там фишка? Вывод кадров синхронизируется с чтением секторов с диска? То бишь следующий сектор - следующий кадр?
Типа того: Там читается кадр (12 секторов вроде) потом сразу следующий. Т.е. синхронизация идет иммено со скоростью чтения с диска!!!
Впрочем я имел в виду не это, а то, что можно исключить в принципе потерю данных. Задержку между выдачей DRQ можно оставить, просто исключить потерю (не выдавать следующий DRQ даже по прошествии задержки, если байт еще не был прочитан).
дело не в этом!!! В пзу заменяется не обращение к портам, а целизом процедуры чтения/записи секторов. Т.к. в варианте с портами не хватит тактов!!!
Типа того: Там читается кадр (12 секторов вроде) потом сразу следующий. Т.е. синхронизация идет иммено со скоростью чтения с диска!!!
Ну так это просто - после чтения тупо задерживаться на нужно время имитируя скорость реального диска.
дело не в этом!!! В пзу заменяется не обращение к портам, а целизом процедуры чтения/записи секторов. Т.к. в варианте с портами не хватит тактов!!!
Интересно, а если приложуха сама напрямую обращается к портам, используя известные трюки для чтения из #1F (в одном из вариантов используется как раз функция чтения сектора, там хитро устанавливаются параметры и она запускается с середины) ?
Может перекинуть тему в ОСи, всетаки по смыслу она больше там подходит чем здесь?
KingOfEvil
08.02.2007, 08:35
Может перекинуть тему в ОСи, всетаки по смыслу она больше там подходит чем здесь?
Ну если vTRDOS можно присвоить гордое звание ОС. А вообще я этот раздел редко читаю.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot