Главное - забить TRD под завязку или около, чтобы MOVE действительно работало с полным объемом дискеты, а не вид делало.
Вид для печати
Новое кривое видео на нашем канале. Нашёл в GMXCom кнопку копировать диск в диск. И оно отрабатывает за 5,6 сек. Быстрее, чем по файлам, что логично.
Затем на забитом под 0 диске удалил первый файл и сделал уплотнение. Это где-то 6,5 сек.
Умели раньше делать софт, титаны.
В схемах СМУКа ничего магического не нашел.. По идее все данные таскаются через процессор.
640кбайт за 5,6 сек - это грубо 114кбайт в секунду, причем за эту секунду 114кбайт прочитано и 114кбайт записано. В сумме 228К проходит через 8-битную шину.
3,5М/~228K= ~15-16 тактов на байт (ну или чуть больше, учитывая погрешность измерений с секундомером). Действительно похоже на цепочки ini/outi при чтении/записи сектора. Точнее уже только глядя в код можно сказать.
Надо снапшот памяти при работе коммандера дернуть и глянуть, есть ли там массовые ini или outi.
Вывод такой: чтобы это максимально быстро работало через параллельный порт, надо, чтоб железка могла последовательно отдавать байты блока при чтении из определенного регистра. И читать их через кучу ini или через inir. Это к вопросу реализации этого порта на ESP, если дело дойдет.
Сейчас пока для последовательной версии леплю макетку с ПЛИСкой для дешифратора портов (вроде говорилось про F8EFh, но это всегда можно будет поправить) и как придет 16c550, попробую его с кварцем 18,432мгц на предмет, а сумеет ли он 115200 и 230400 (при таком кварце делитель 10 и 5 соответственно). ESP все это должен смочь.
Дешифрации порта можно сделать на 76688 ну или на паре из, или на одной gal16v8. А особые эстеты могут взять 28С512 )
Думаю, что китайская цена у них всех примерно одна. У меня просто скопилась кучка epm3032, которые заказывал по несколько штук, т.к среди них было много залоченных по JTAG. Потом удалось всю мертвечину оживить, надо теперь ее расходовать.
Собственно, разницы нет, на чем прототип сделать. Надо же просто идею проверить )
GMXCom работает на 7 мегагерц, напоминаю на всякий случай.
А вот в эмуляторе посмотрел во время чтения и во время записи:
https://pic.maxiol.com/thumbs2/16380...670.gmxcom.pnghttps://pic.maxiol.com/thumbs2/16380...670.gmxcom.png
А сразу хотя бы мегабит нельзя? Раз автор командера писал о 300Кб/сек, значит надо ориентироваться на около 3 мегабит ). В интернете пишут ESP может до 4.5 мегабит.
И ESP будет же в режиме с аппаратным контролем? С линиями CTS и RTS.
Еще не знаю, что можно и чего нельзя. Сама железяка ведь тоже имеет определенные пределы, может при правильной разводке соединительных линий и можно вылезти за пределы. В даташитах частоты выше 128000 не рассматриваются.
Скорость задается двумя параметрами: 1. частотой генератора 16550, 2. делителем, который является собой 16-разрядное число и пишется в один из регистров 16550.
Кварцы используются на 1,8432 мгц, 3,072мгц и 18,432мгц, а скорость передачи (= частота) это (частота генератора/<делитель>)/16.
И вот с кварцем 1,8432мгц с минимальным делителем 1 мы получаем максимальную частоту 115200,
с кварцем 3,072мгц и делителем 1 получаем частоту 192000, с делителем 2 - 96000, между ними соот-но нет промежуточных значений. Ну и дальше частоты уже ниже.
С кварцем 18,432мгц и делителем 1 - частоту 1152000, с делителем 2 - 576000, дел=3 - 384000, дел=4 - 288000, дел=5 - 230400, дел=10 - 115200.
Так что частоты не любые, а вполне опеределенная сетка получается. И далеко не все из того, что мы можем настроить на второй стороне. К тому же чем выше скорости, тем выше "percent error" из-за возможной рассинхронизации.
Что касается аппаратного контроля, то линии-то есть и задействовать на 16550 их, видимо, можно. Алгоритм передачи будет соот-но ориентирован на них. Но сможем ли того же добиться от esp - еще вопрос, там для меня пока сплошная неизвестность.
Что касается скринов, то в первом как раз видно, что выполняется чтение из двух портов попеременно (то из D*256+C, то из E*256+C) с сохранением в память в (HL), это видимо старший и младший байты каждого читаемого с ШД IDE слова. И одно из этих чтений должно дергать строб чтения этого самого слова с IDE, только один байт сразу забирается, а другой защелкивается в промежуточном регистре и потом читается через второй порт. Номера портов не скажу, надо закапываться в схемы (а то еще и прошивки ?) СМУКа, но зато уже хоть видно, что не магия.