PDA

Просмотр полной версии : Минимальное время чтения/записи байта



spensor
05.02.2009, 19:30
Есть интерес к повторению этой разработки http://zxdn.narod.ru/hardware/dv07vghd.htm. Но дело в том что клон не Пентагон, и турбировать его можно только в части обращения к ПЗУ. Это все лирика, вопрос следующий. Какова минимальная длина кода, который надо выполнить чтобы прочитать/записать байт на дискету? По идее нужны проверки на окнчание сектора и т.п. Интересует ширина "бутылочного горлышка".

GriV
05.02.2009, 20:18
Если интересует частота следования информации на дискете, то тут для стандартных режимов около 100 тактов на 1 байт. Типовой цикл работы ПЗУ тырдоса при этом - чтение регистра состояния пока не появится готовность и затем считывание командой регистра данных.
На 1 сектор - около 30000 тактов, на одну дорожку - около 8 прерываний.
(2,5 физических трека в секунду).
Если интересует программа чтения которая в ПЗУ тырдоса лежит, то тут бери ревюшки там полный дизасм есть с понятными каментами, для версии 5.03, а версии поломанные нашими ломакиными - там уже только самому разбираться.

spensor
06.02.2009, 10:01
Такты на дисководе я сам могу вычеслить;) Интересует участок кода в ПЗУ и ОЗУ, раздельно, в такты CPU сам смогу пересчитать. Кто в этом смыслит, подскажите.

Antipod
06.02.2009, 10:59
Такты на дисководе я сам могу вычеслить;) Интересует участок кода в ПЗУ и ОЗУ, раздельно, в такты CPU сам смогу пересчитать.
Участка кода (который побайтно читает данные) в ОЗУ не бывает, так как порты контроллера в норме открыты сам-знаешь-когда, и сектор целиком считывается процедурами тр-доса. Поэтому дорога тебе к дизассемблерному листингу ПЗУ тр-доса - считай там.

Кто в этом смыслит, подскажите.
[ Когда-то написал глючную тулзовину для копирования с мс-дос в тр-дос, глюки в основном были в гуе. Работа с дисководом частично была подсмотрена в storm. ]

spensor
06.02.2009, 12:26
В ОЗУ там точно выходить не нужно, для каких нибудь проверок? Имею в виду неTRDOS формат диска.

Antipod
06.02.2009, 13:14
В ОЗУ там точно выходить не нужно, для каких нибудь проверок? Имею в виду неTRDOS формат диска.Точно не нужно :).
Например, даем команду "прочитать сектор", и выполнение не выйдет из ПЗУ тр-доса до тех пор пока не прочитает _весь_ сектор, тость пока целиком не выполнится команда. Если сектор окажется, к примеру, длиной 512 байт вместо 256, то все равно прочитается все... Другими словами получить управление между считываниями байтов и не вызвав ошибки низя. Получить управление вообще-то можно - при аппаратном прерывании ( нажать кнопочку NMI, например. Или начать читать при разрешенных прерываниях ), но это, как правило, вызывает рассинхронизацию и еррор.

spensor
06.02.2009, 14:56
Кстати, по идее у нас есть все равно задержка на ОЗУ, байты то туда-оттуда идут.

Antipod
06.02.2009, 17:12
Кстати, по идее у нас есть все равно задержка на ОЗУ, байты то туда-оттуда идут.Ну да, тогда твоя турба обламывается... Ну, значит, при подсчете тактов когда обращении к ОЗУ турбу не учитывать. И придется турбу делать "авто", тость когда обращение к ОЗУ - турба выключается.

int4880053
01.03.2009, 20:13
Вопрос к участникам. Может быть кто нибудь подключал винчестер на 8ми битную
шину Синклера . Дело в том что в протоколе АТА есть режим 8ми битного DMA
старых винчестеров полно интересует подключение. Я слышал что кто-то уже подключал винчестер может быть ссылочку на драйвер кто даст желательно с
исходником

psb
02.03.2009, 20:32
винты подключали, не тока старые, но дма не использовали, только порты. схем несколько и их надо искать...