Новое кривое видео на нашем канале. Нашёл в GMXCom кнопку копировать диск в диск. И оно отрабатывает за 5,6 сек. Быстрее, чем по файлам, что логично.
Затем на забитом под 0 диске удалил первый файл и сделал уплотнение. Это где-то 6,5 сек.
Умели раньше делать софт, титаны.
Скрытый текст
https://drive.google.com/drive/folde...xZ83juCuaBe32I
Scorpion ZS 256 Turbo+/GMX 2MB/SMUC v1.3 OP/CF-IDE 2GB/TS ARM/Covox #DD/FDD 5'25/FDD 3'5/AT Kbrd & Mouse Ctrl v2.5/Universal PS/2 Kbrd Ctrl/ZX WiFi
Leningrad 1/Sega Joy Adapter
DivGMX
ZX Spectrum +2A
ZX Evolution rev. C
TCK Computer 486DX2-66/512K Tridend 9000i/8MB SIMM72/CF-IDE 512MB/ESS 1869/CNet CN200/FDD 5'25/FDD 3'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 все это должен смочь.
Последний раз редактировалось valerium; 26.11.2021 в 22:55.
Дешифрации порта можно сделать на 76688 ну или на паре из, или на одной gal16v8. А особые эстеты могут взять 28С512 )
Думаю, что китайская цена у них всех примерно одна. У меня просто скопилась кучка epm3032, которые заказывал по несколько штук, т.к среди них было много залоченных по JTAG. Потом удалось всю мертвечину оживить, надо теперь ее расходовать.
Собственно, разницы нет, на чем прототип сделать. Надо же просто идею проверить )
GMXCom работает на 7 мегагерц, напоминаю на всякий случай.
А вот в эмуляторе посмотрел во время чтения и во время записи:
А сразу хотя бы мегабит нельзя? Раз автор командера писал о 300Кб/сек, значит надо ориентироваться на около 3 мегабит ). В интернете пишут ESP может до 4.5 мегабит.
И ESP будет же в режиме с аппаратным контролем? С линиями CTS и RTS.
Скрытый текст
https://drive.google.com/drive/folde...xZ83juCuaBe32I
Scorpion ZS 256 Turbo+/GMX 2MB/SMUC v1.3 OP/CF-IDE 2GB/TS ARM/Covox #DD/FDD 5'25/FDD 3'5/AT Kbrd & Mouse Ctrl v2.5/Universal PS/2 Kbrd Ctrl/ZX WiFi
Leningrad 1/Sega Joy Adapter
DivGMX
ZX Spectrum +2A
ZX Evolution rev. C
TCK Computer 486DX2-66/512K Tridend 9000i/8MB SIMM72/CF-IDE 512MB/ESS 1869/CNet CN200/FDD 5'25/FDD 3'5
[свернуть]
Еще не знаю, что можно и чего нельзя. Сама железяка ведь тоже имеет определенные пределы, может при правильной разводке соединительных линий и можно вылезти за пределы. В даташитах частоты выше 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, только один байт сразу забирается, а другой защелкивается в промежуточном регистре и потом читается через второй порт. Номера портов не скажу, надо закапываться в схемы (а то еще и прошивки ?) СМУКа, но зато уже хоть видно, что не магия.
Последний раз редактировалось valerium; 27.11.2021 в 21:33.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)