Я, конечно, далёк от мысли, что я единственный гений, освоивший google/yandex, но как так получилось, что я не нашёл никаких следов своих предшественников? Пользуясь случаем, представляю набор изменений для процедур использования RS232 через IO Port AY 8912. Ускоряем MRF for fun and profit! Я экспериментировал на Sizif да ещё и с прошивкой Zimodem, но, не вижу причин, почему бы оно не работало бы везде.
«ESP AT» сборки протестировать лично не смог, но, говорят -- работают. Теоретическое ускорение должно быть даже больше, чем у Zimodem.
В общем, предлагаю вашему вниманию экспериментальные сборки MRF (все для esxdos, внутри 7z обычный TAR для распаковки на Спеке):
MRF-FE.TAR.7z
ESP AT Firmware
- 9600 baud («стандарт») с моим «драйвером», исключительно для коллекционеров, отличительной чертой является возможность нажать BREAK и завершить любую операцию с сетью -- MRF-ESP.TAP
- 57600 baud, тут всё понятно, быстрее раза в три (см. технические детали ниже) -- MRF-ESP5.TAP
Zimodem
- 9600 baud, для эксперментаторов, практически оно медленнее AT Firmware -- MRF-ZIM.TAP
- 57600 baud -- MRF-ZIM5.TAP
ZX Spectrum Next, опять же с новым «драйвером», он не мой, только для KS2, но МОЖЕТ быть поустойчивее той жути, которая на Next используется в силу каких-то исторических причин, мне лично непонятных. Честно, я и не вникал. Опуская все идиоматические выражения, которыми таки богат английский язык, я бы перевёл описание как «работает гораздо лучше, чем всё остальное». -- MRF-ZXOS.TAP
Все сборки предполагают, что нужная скорость выставлена в модеме заранее. Используйте замечательную утилиту .UART для настройки
UART.7z (-5 включает 56700). Файлики ESP576.BAS и ZIM576.BAS могут помочь.
Про скорость, baud и всех всех всех
Как настраивать скорость. Для Zimodem всё просто -- ATBspeed, действует сразу, отменить, если что пошло не так, только сбросом или питанием. Для ESP AT -- настоятельно рекомендую AT+UART_CUR, чтобы, опять же, сбросом или питанием легко всё возвращалось, как было.
Получается так, теоретическая скорость в байтах на 57600 у нас 5760, так? Практически получается экран (6912) принимается за 2.76 сек. То есть, примерно 2500/сек. Это по настоящей сети «откуда-то» из интернета, это не с соседнего компьютера.
Самый большой файл, на котором я замерял, был 21498 байт и в целом передача занимала чуть меньше 10 сек. ~2200/сек.
На скорость «в среднем по больнице» влияет странная особенность Zimodem, он первые несколько байт первого пакета передаёт с сильными задержками.
Тут, теоретически, ESP AT должно вырываться вперёд, там я такого ещё не видел.
Если выключить прерывания на всю операцию «принять файл», наверное, можнр «разогнать» ещё немножко. И, может быть, убрать те паузы в 1.5мс,
которые я добавил для стабильности на 9600, на 57600 это просто гигантский интервал.
Хотя, как правильно заметил Pavel Vymetálek, на скоростях выше 38400 основную роль играет время обработки принятого байта (записать в память, уменьшить счётчик, и т.п.). На 57600 такие паузы составляют, я бы сказал, половину времени.
[свернуть]
P.S. Наверное, мне пора в тему для MRF, только где она?
P.P.S. Случилась у меня беда, точно по симптомам как у djs. После очередной сборки/разборки моего WiFi "«модуля»" (двойные кавычки, чтобы подчеркнуть, что там всё было ОЧЕНЬ временно) оно перестало работать. Похоже, что-то где-то окислилось и сопротивление выросло, если выкинуть резисторы для RX/TX нафиг, то оно оживает, но эксплуатировать его в таком режиме я как-то боюсь.