Важная информация

User Tag List

Показано с 1 по 10 из 44

Тема: Очередной однобитный велосипед для спектрума

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Member
    Регистрация
    06.02.2017
    Адрес
    г. Тольятти
    Сообщений
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Очередной однобитный велосипед для спектрума

    Настоящим постом никого не хочу обидеть. Даже больше того, восхищаюсь тем кто делает что-то для спектрума. Так что прошу не обращать внимание на некоторую резкость. И за многобукаф тоже извините.

    Прочитал я несколько АКТУАЛЬНЫХ тем про устройства для спектрума и впал в уныние. Кто-то эмулирует магнитофон , кто-то - хочет сделать ROM-диск, кто-то флоппи-эмулятор и даже divIDE в продаже есть.
    С одной стороны приятно понастальгировать. Но с другой - блин, чуваки, ну почему у вас такие сложные и дорогие схемы? Сейчас кризис, надо быть проще... Да, безусловно, схемы крутые. Но все они ограничены по своим возможностям: на виртуальный дисковод больше 800 кило не запишешь, с магнитофона быстро не загрузишься. DivIDE чуток получше, но даже у него есть ограничения на объём раздела... плюсом к нему надо докупать дорогую флешку которую в маленьких городах и не найдёшь...

    В общем, предлагаю на обсуждение, следующую концепцию очередного велосипеда - внешнего устройства ввода вывода. Предупреждаю сразу что я её в железе реализовать не смогу по причине утери платы спектрума (корпус и клавиатура осталась, а плата потерялась при переезде). Но могу ответить на некоторые вопросы и оказать посильную консультацию по скайпу.

    Сама идея состоит в том, что Z80 - это довольно быстрая штука. И он может битиками ворочать ОЧЕНЬ быстро. Для примера возьмём магнитофонный порт. Какая может быть максимальная скорость ввода информации, при условии что за синхронизацию отвечает внешнее устройство? Проверяем на "секторе" из 256 байт:
    Код:
    		LD C,0		7
    sector:		LD b,8		7*256
    byte:		IN a,(254)	11*8*256
    		RLCA		4*8*256
    		RLCA		4*8*256
    		RRС d		8*8*256
    		DJNZ byte	(13*7+8)*256
    		LD (hl),d	7*256
    		INC hl		6*256
    		DEC c		4*256
    		JR nz,sector	12*255+7
    Итого у меня получилось - 102 402 такта на 256 байт, то есть 400 тактов на байт или 8.5 килобайт в секунду.
    Получается Z80 сам, без никакой помощи, без турбирования, по двум *****м проводкам, парой дюжин команд за 5 секунд скачает полностью свою память (без картинки).

    Но кто же даст нам такую скорость? Правильно - самый популярный ногодрыг - ардуина. Разумеется, втыкать её придётся не в разъём TapeIn / TapeOut, а припаивать на плату прямо на триггеры. Но припаять два сигнальных и два питательных проводка не проблема (TapeIn кстати нужно перерезать чтобы не спалить; или через переключатель подключить если планируется пользование магнитофона)
    Только в ардуине ПЗУ всего ничего, но зато на ней без проблем работают картридеры microSD. Заодно ардуина возьмёт на себя всю заботу о FAT (или даже о FAT32).

    Да, скорее всего заявленная скорость в 8.5 килобайт будет недостижима: Ардуине надо будет читать файл по секторам в свою небольшую память (Z80 в это время будет простаивать), дополнительно потребуется синхронизация в основном цикле. Проверку контрольной суммы тоже надо делать.
    Но в любом случае, гарантированно будет не менее 5 килобайт в секунду.

    Итак, как будет работать система с точки зрения пользователя?
    1. На спектруме набираем LOAD "" и нажимаем <ENTER>
    2. На ардуине нажимаем Reset - пошла загрузка драйвера (ардуинка отдаёт драйвер в магнитофонном режиме)
    3. После загрузки мелкого драйвера (пара сотен байт в буфере принтера или UDG или даже в бейсик-переменной) у нас становится доступна флешка и загрузчик грузится с неё - показывает список файлов: выбирай любой и грузись.

    Как под это дело адаптировать программы?
    В комплекте драйвера будут функции DEF FN которые обеспечат загрузку и выгрузку кодовых блоков.
    Адаптированию подлежат только программы в которых бейсик-загрузчики вида CLEAR 24000: LOAD "" CODE: RANDOMIZE USR xxx.
    Для простоты можно все кодовые файлы пожать архиватором, разместить со стандартного адреса (24000) и сделать им автозапуск. И обозвать с расширением zxexe

    Ну и самое вкусное - что это будет по цене?
    По сайту наших китайских братьев ардуинка 130 руб, картридер - 40 руб, флешка microSD (минимально) от 100 рублей, но флешка как правило уже есть от старого телефона. Провод для прошивки тоже подойдёт от телефона.


    P.S. На самом деле совсем уж правильно вместо ардуинки использовать esp8266. И все операции выполнять через wi-fi. Заодно и все образы программ выгрузить на спецсайт для спектрума - например http://zx.zx-pk.ru/ завести там каталоги для юзеров (с ограничением приватной части в мегабайт например). Тогда даже десяток пользователей с wi-fi за несколько дней наадаптируют сотню программ и разместят их в общий доступ.
    Но про esp8266 я ничего сказать не могу: в руках её не держал, да и пробовать на ардуинке проще.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. однобитный WAV
    от ALKO в разделе Софт
    Ответов: 26
    Последнее: 28.07.2021, 05:03
  2. Наборы для сборки Орион-128/запчасти для Спектрума.
    от falanger в разделе Барахолка (архив)
    Ответов: 15
    Последнее: 05.09.2007, 19:51
  3. Ответов: 11
    Последнее: 04.08.2006, 15:08
  4. Ответов: 21
    Последнее: 23.02.2005, 20:56

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •