Просмотр полной версии : Минимальное время чтения/записи байта
Есть интерес к повторению этой разработки http://zxdn.narod.ru/hardware/dv07vghd.htm. Но дело в том что клон не Пентагон, и турбировать его можно только в части обращения к ПЗУ. Это все лирика, вопрос следующий. Какова минимальная длина кода, который надо выполнить чтобы прочитать/записать байт на дискету? По идее нужны проверки на окнчание сектора и т.п. Интересует ширина "бутылочного горлышка".
Если интересует частота следования информации на дискете, то тут для стандартных режимов около 100 тактов на 1 байт. Типовой цикл работы ПЗУ тырдоса при этом - чтение регистра состояния пока не появится готовность и затем считывание командой регистра данных.
На 1 сектор - около 30000 тактов, на одну дорожку - около 8 прерываний.
(2,5 физических трека в секунду).
Если интересует программа чтения которая в ПЗУ тырдоса лежит, то тут бери ревюшки там полный дизасм есть с понятными каментами, для версии 5.03, а версии поломанные нашими ломакиными - там уже только самому разбираться.
Такты на дисководе я сам могу вычеслить;) Интересует участок кода в ПЗУ и ОЗУ, раздельно, в такты CPU сам смогу пересчитать. Кто в этом смыслит, подскажите.
Такты на дисководе я сам могу вычеслить;) Интересует участок кода в ПЗУ и ОЗУ, раздельно, в такты CPU сам смогу пересчитать.
Участка кода (который побайтно читает данные) в ОЗУ не бывает, так как порты контроллера в норме открыты сам-знаешь-когда, и сектор целиком считывается процедурами тр-доса. Поэтому дорога тебе к дизассемблерному листингу ПЗУ тр-доса - считай там.
Кто в этом смыслит, подскажите.
[ Когда-то написал глючную тулзовину для копирования с мс-дос в тр-дос, глюки в основном были в гуе. Работа с дисководом частично была подсмотрена в storm. ]
В ОЗУ там точно выходить не нужно, для каких нибудь проверок? Имею в виду неTRDOS формат диска.
В ОЗУ там точно выходить не нужно, для каких нибудь проверок? Имею в виду неTRDOS формат диска.Точно не нужно :).
Например, даем команду "прочитать сектор", и выполнение не выйдет из ПЗУ тр-доса до тех пор пока не прочитает _весь_ сектор, тость пока целиком не выполнится команда. Если сектор окажется, к примеру, длиной 512 байт вместо 256, то все равно прочитается все... Другими словами получить управление между считываниями байтов и не вызвав ошибки низя. Получить управление вообще-то можно - при аппаратном прерывании ( нажать кнопочку NMI, например. Или начать читать при разрешенных прерываниях ), но это, как правило, вызывает рассинхронизацию и еррор.
Кстати, по идее у нас есть все равно задержка на ОЗУ, байты то туда-оттуда идут.
Кстати, по идее у нас есть все равно задержка на ОЗУ, байты то туда-оттуда идут.Ну да, тогда твоя турба обламывается... Ну, значит, при подсчете тактов когда обращении к ОЗУ турбу не учитывать. И придется турбу делать "авто", тость когда обращение к ОЗУ - турба выключается.
int4880053
01.03.2009, 20:13
Вопрос к участникам. Может быть кто нибудь подключал винчестер на 8ми битную
шину Синклера . Дело в том что в протоколе АТА есть режим 8ми битного DMA
старых винчестеров полно интересует подключение. Я слышал что кто-то уже подключал винчестер может быть ссылочку на драйвер кто даст желательно с
исходником
винты подключали, не тока старые, но дма не использовали, только порты. схем несколько и их надо искать...
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot