Через кемпстон, к сожалению, нельзя:
- во первых некоторые клоны не имеют кемпстона.
- во вторых для синхронизации всё равно нужна обратка (в примере программы не показана)
- - - Добавлено - - -
Я не гуру. Я - велосипедист. Это фигня в первую очередь размышление для отечественных клонов у которых нет zx edge. Эдакий плохонький суррогат дисковода.
Это для того чтобы прочитал случайно чувачок, вспомнил детство, сходил в гараж, достал свой ленинград 1, припаял в него четыре проводка от ардуинки за 150 рублей и радовался жизни.
Если же передо мной маньяк спектрума, у которого FDD + IDE + MMC, то ему эта тема противопоказана: тот же divIDE гораздо быстрее, совместимее и уже есть в наличии.
Просто чувачок, вспомнивший детство, если увидит цену на divIDE и посчитает количество проводков которые надо ему припаять... и подумает что лучше купить пивка и не мучится ностальгией.
P.S. тема родилась как возможное решение проблемы загрузки бета-бейсика , а также сохранением программ на флешку.
Как бы если есть вариант проще и дешевле - рекомендуйте. И с чистой совестью похороним эту тему.
- - - Добавлено - - -
Дык вот именно, про то и речь. Ардуинка в 20 раз дешевле и если нет системного разъёма, то и паять в 20 раз легче.
А скорость загрузки - ну в 2-3 раза дольше
- - - Добавлено - - -
Спасибо что подсказали про дерево ветвлений. Я практиковался в кодах Z80 только в прошлом веке, поэтому могу не увидеть некоторые особенности.
Просто в вашем случае получается очень приличный блок кода. Если этот код будет размещён во внешнем ПЗУ то размеры не критичны.
А изначальная задумка была в том, чтобы минимизировать вмешательство в схему спектрума (типа те кто способен припаять ПЗУ, могут припаять и другую схемку, которая в 20 раз быстрее).
Если же такой драйвер загружать в оперативу через LOAD "", то во первых это будет довольно чувствительно по времени, а во вторых - займёт драгоценную память, которой может не хватить при загрузке какой-то здоровой программы.
Соглашусь что код krt17 попроще и наверное стоит его взять за основу.
Ну или как компромисс: простой загрузчик загружает два варианта кода. Если есть возможность - пользуется быстрым но длинным, если нет возможности - пользуется медленным но коротким. В любом случае чтобы определить достаточность скорости надо сначала поэкспериментировать.
Про TapeOut не написал для краткости. Возможно им придётся дёргать не раз на байт а даже раз на бит. Ну или припаять ещё один проводок ардуинки на IORQ.
Пока ни устройства ни программы нет. Пока это просто задумка.