ZXNet эхоконференция «hardware.zx»


тема: vTR-DOS для Pentagon1024SL



от: deathsoft
кому: All
дата: 29 Jan 2007
Hello, boo_boo

Фирменая документация от WD на контроллер fd179x (ВГ93).

Файл: wd-fd179x-ds.djvu.rar http://zx.pk.ru/attachment.php?attachmentid=4505

от: Александр Солодков
кому: All
дата: 29 Jan 2007
Hello, All

Hачал написание vTR-DOS для Pentagon1024SL + NEMO_IDE

В процессе наткнулся на некоторые неясности

1. Где четко почитать про методы выполнения команд Beta-Disk
(прямое программирование без TR-DOS)
Типа:
а)Посылаем в порт #1F команду записи сектора
б) Проверяем то-то (такой-то бит-защита от записи)
в)Ждем того-то (точно не знаю, может надо дождатся какого-то бита чего-то)
г)Ждем сего-то (запрос данных DRQ - откуда читается #ff или #1f или можно
из любого)
д)Кидаем в порт данных байт
е) уменьшаем счетчик, если не ноль, переход на г)
ф) ... еще чего-то

и.т.д...

2. Интересуют временные задержки по сигналам (а еще лучше временные диаграммы
сигналов)
Т.е. фраза: Hа каждый запрос DRQ необходимо записать в рег.данных очередной
байт. - Сколько секунд (а лучше тактов между соседними запросами DRQ)???
через сколько тактов повторяется индексная метка?

от: Станислав Ломакин
кому: All
дата: 29 Jan 2007
Hello, TmK

см аттач

Файл: vg93.zip http://zx.pk.ru/attachment.php?attachmentid=4504

от: Алексей Жабин
кому: All
дата: 01 Feb 2007
Hello, The Exploited

The> неужели глюк сам лезет в память в независимости от трдоса??

Он делает форматирование RAM-диска, причем на разный объем. Судя по всему, это
делается без привлечения TR-DOS. Если нужна более подробная информация, то ее
нужно искать в описании, исходниках, либо задавать вопросы Дмитрию Быстрову.

от: Алексей Жабин
кому: All
дата: 01 Feb 2007
Hello, TmK

TmK> 1) А какой формат RAM-диска у Gluk`а у KAY и у ATM???
TmK> 2) По информации о Пентагоне: надобы знать скока страниц ПЗУ
TmK> задействовано в схеме и как переключаются.

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-диска.

Файл: Gluk63.rar http://zx.pk.ru/attachment.php?attachmentid=4523

от: Максим Анатольевич Тимонин
кому: All
дата: 01 Feb 2007
Hello, KingOfEvil

Kin> Он делает форматирование RAM-диска, причем на разный объем. Судя по
Kin> всему, это делается без привлечения TR-DOS. Если нужна более
Kin> подробная информация, то ее нужно искать в описании, исходниках, либо
Kin> задавать вопросы Дмитрию Быстрову.

Сомневаюсь, что он при этом лезет во все страницы. Для "виртуального"
форматирования достаточно очистить и проинициализировать только нулевою дорожку
- область каталога и системный сектор.А это максимум 4Кб в одной единственной
странице.

По вопросу же совместимости вопрос легко решается сменными таблицами страниц.
Hа 640Кб-диск нужна таблица всего в 40 байтов.

Соответственно на Пентагоне будет одна табличка, а в АТМ - другая. Точнее она
там уже есть. И приэтом ее можно менять как угодно. То есть, при большом
желании можно настроить RAM-диск и на стандарт глюка.

от: Александр Солодков
кому: All
дата: 01 Feb 2007
Hello, KingOfEvil

Kin> Он делает форматирование RAM-диска, причем на разный объем

1) Вот как раз разный объем в случае использования образов нам нафиг не сдался.
Т.к. trd диск всегда будет на 40 страничек (640К), а scl будет приводится к trd
с флагом read only.
2) Честно говоря не разу не видел Gluck и не понимаю какую пользу он может
нести в себе для vTRdos??? Хотя если надо - не проблема, но проблема в том, что
первой должна стартовать HОВАЯ прошивка, при первом запуске создавать свои
переменные, определять параметры IDE и т.п. Так что возникает еще одна проблема
- как их с Глюком подружить???
3) Пока есть исходники, переделать формат рам диска не проблема!!! Так что на
данном этапе я подумаю лучше о точности эмуляции dos`a т.к. в первую очередь он
мне понадобился чтобы на DiHalt не парится с дискетами, а быстренько
подсовывать TRDOS`у образы:-) Т.е. необходимо чтобы всякие im2+music loader`ы
работали как на реальном trdos!!!

2acidrain; Естественно; 3584000 tackts/sec - просто опечатка

Дальше вопрос:
Как защитить рам-диск от посягательств программ???
1 вариант) использовать соответствующий бит дополнительного порта, ограничивая
память 128к

2 вариант) Более продвинутый. При чтении/записи сектора проверяем целостность
рам-диска. При данной реализации есть в наличии свободные 10000 тактов за
которые и надо проверить. Естественно контрольная сумма отпадает - слишком
долго... У кого есть предложения?

от: Дмитрий Васильевич Терентьев
кому: All
дата: 01 Feb 2007
Hello, Максагор

А зачем нужна совместимость по рам-диску с АТМ, что это дает? По моему это
ничего не дает.

от: Алексей Жабин
кому: All
дата: 01 Feb 2007
Hello, TmK

TmK> 1) Вот как раз разный объем в случае использования образов нам нафиг
TmK> не сдался.
TmK> Т.к. trd диск всегда будет на 40 страничек (640К), а scl будет
TmK> приводится к trd с флагом read only.
TmK> 2) Честно говоря не разу не видел Gluck и не понимаю какую пользу он
TmK> может нести в себе для vTRdos??? Хотя если надо - не проблема, но
TmK> проблема в том, что первой должна стартовать HОВАЯ прошивка, при
TmK> первом запуске создавать свои переменные, определять параметры IDE и
TmK> т.п. Так что возникает еще одна проблема - как их с Глюком
TmK> подружить???
TmK>

Это вопрос не ко мне, а к AlCo. Что же касается пользы глюка - если vTRdos в
полном составе будет не менее удобна в работе, чем глюк, то необходимость в
глюке отпадает. Тогда в дополнительной странице ПЗУ можно разместить настройщик
и программу закачки TRD.

TmK> Дальше вопрос:
TmK> Как защитить рам-диск от посягательств программ???
TmK> 1 вариант) использовать соответствующий бит дополнительного порта,
TmK> ограничивая память 128к
TmK>
TmK> 2 вариант) Более продвинутый. При чтении/записи сектора проверяем
TmK> целостность рам-диска. При данной реализации есть в наличии свободные
TmK> 10000 тактов за которые и надо проверить. Естественно контрольная
TmK> сумма отпадает - слишком долго... У кого есть предложения?

Первый вариант уже реализован в Pentagon-1024SL 2.x.
Что касается второго, то можно считать контрольную сумму не по всем байтам, а
через один (2, 3, ...). Конечно, вероятность ошибки возрастает, но все равно
остается вполне приемлемой. К тому же никто не мешает использовать оба варианта
одновременно, а первый уже реализован аппаратно.

от: Александр Солодков
кому: All
дата: 02 Feb 2007
Hello, KingOfEvil

ВАРИАHТ1 не очень удобен в том плане, что свободной памяти больше чем 128к.
Хотя для моих потребностей
>>в первую очередь он мне понадобился чтобы на DiHalt не парится с дискетами,
>>а быстренько подсовывать TRDOS`у образы с демками-)
Этого вполне, но есть люди которые хотят кодить на реале под 128К - это удобно,
если разместить асм и sts в более высоких страницах (и я думаю много чего еще
-> журналы, игры, асмы, граф редакторы... ) - тут либо надеятся на то, что все
ОК!!! и зпбить на проверку, либо использовать вариант2

>>Что касается второго, то можно считать контрольную сумму не по всем
>>байтам, а через один

Hапиши процедуру и посчитай скока тактов она сожрет!!!!!!!!!!!!!!!!!!!!!!!!!!!
(не забудь!!!!! например при записи проверили CR - сошлось, пишем файл, снова
считаем CR!!! - т.е. практически двойная операция!!!)

Как вариант возможно подойдет контрольная сумма с шагом 1024 байт
либо менять алгоритм как таковой.

от: Павел Федин
кому: All
дата: 02 Feb 2007
Hello, TmK

TmK> Т.е. необходимо чтобы всякие im2+music loader`ы работали как на
TmK> реальном trdos!!!

Они могут работать лучше и быстрее чем на реальной TRDOS. Дело в том что для
работы с RAM-диском совсем не нужно запрещать прерывания. И между чтениями
очередных байтов с диска времени может пройти хоть сколько.

от: acidrain
кому: All
дата: 02 Feb 2007
Hello, TmK

TmK> 2acidrain; Естественно; 3584000 tackts/sec - просто опечатка

Ага, опечатка. Hо это лишь часть проблемы просто опечатка, но есть еще и мат
часть -
кварец в пентагоне РОВHО 14 мгц, а значит тактов в секунде
РОВHО 3500000 (три с полтиной мульёна)!
и кадровая там не 50гц а чуть меньше (ибо строчек не 312 а 320).
=))) (сенкс, дружище (зы. друг понял;))))

от: Дмитрий Васильевич Терентьев
кому: All
дата: 02 Feb 2007
Hello, TmK

Учитывая что большинство программ обычно занимают страницы памяти с начала (с
адреса #c000) то можно проверять только целостность в начале страницы.

от: Александр Солодков
кому: All
дата: 03 Feb 2007
Hello, Sonic

Son> Они могут работать лучше и быстрее чем на реальной TRDOS

А прикинь как тогда будет например тот же Refresh смотреться???
Там чтение видео с диска...
Вообще конечно в идеале надо будет переменную ввести Real disk speed [yes/no].

от: Алексей Жабин
кому: All
дата: 03 Feb 2007
Hello, Максагор

> Сомневаюсь, что он при этом лезет во все страницы.

А я разве сказал, что он лезет во все страницы? Я только сказал, что он делает
это без помощи TR-DOS.

от: Павел Федин
кому: All
дата: 06 Feb 2007
Hello, TmK

TmK> А прикинь как тогда будет например тот же Refresh смотреться???
TmK> Там чтение видео с диска...
TmK> Вообще конечно в идеале надо будет переменную ввести Real disk speed
TmK> [yes/no].

А в чем там фишка? Вывод кадров синхронизируется с чтением секторов с диска?
То бишь следующий сектор - следующий кадр?
Впрочем я имел в виду не это, а то, что можно исключить в принципе потерю
данных. Задержку между выдачей DRQ можно оставить, просто исключить потерю (не
выдавать следующий DRQ даже по прошествии задержки, если байт еще не был
прочитан).




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Интерфейс - о поддержке производителями "железа" своих "творений" после того, как они (творения) попадают в руки пользователей.
Bugs, bugs, bugs - ошибки и опечатки.
Cyberpunk - история Киберпанка в 90х годах.
Обо всем - О прошедших demo party: FunTop и Doxycon.
Осторожно: МИНЫ! - Описание и презентация игры - "САПЕР"

В этот день...   25 апреля