Вход

Просмотр полной версии : Какой сделать простейший вариант загрузки из внешнего ПЗУ?



hal99
14.12.2016, 00:19
Наконец, спустя 16 лет, обзавёлся реалом, - Дельта-С02.
И теперь не даёт мне покоя нужда быстрой загрузки моего любимого Бета-Бейсика и сохранения написанных программ.
Хочется сотворить что-то вроде ром-диска. Но максимально простого и дешёвого.
Какие посоветуете варианты?

Gutten
14.12.2016, 00:46
Флоппи-эмуль. Недёшево, но позволяет сохранять. Или вариант на атмеге - дешевле, но (вроде бы) только чтение, зато не надо в промежуточный формат конвертить.
само собой, это если BDI есть.
Сам понимаешь, ром-диск не позволит записать в себя ничего без программатора.

- - - Добавлено - - -

ну или ещё вариант, но за точность сказать не могу - расширяешь память до гига, прошиваешь РОМ TR-DOS, что рам-диск поддерживает, ставишь NEMO-IDE, подключаешь к нему карточку и работаешь.

hal99
14.12.2016, 00:56
Недешёвый и сложный вариант, оба сразу.

Я то думал, сейчас наверняка есть микросхемы ППЗУ или энергонезависимого ОЗУ, не требующие программатора, на них и сделать.
На асме накропать коротюсенькую прогу для считывания/записи, её загружать с магнитофона, далее через неё работать с ром-диском.
Или как вообще это делается?

krotan
14.12.2016, 01:02
Прикупить ещё Скорпион с ПрофПЗУ с этим Бейсиком и ничего изобретать не надо...

Gutten
14.12.2016, 01:15
ещё вариант - воспользоваться шпаргалкой от ф. Скорпион, доработать Дельту до совместимости со скорпионом и поставить ПрофРОМ.

hal99
14.12.2016, 01:27
Прикупить, и - что делать, как подключать?

Вот нашёл нечто наиболее близкое к моей хотелке - http://zxbyte.ru/?id=56
Но напрягает написанное автором "Помимо ROM-диска необходимо наличие контроллера дисковода"
У меня есть плата BDI, но без ПЗУ и ВГ93.

ALS
14.12.2016, 02:02
Вроде ж, к Спектруму цепляли CompactFlash.

krotan
14.12.2016, 02:23
У меня есть плата BDI, но без ПЗУ и ВГ93. это легко доступно...
а вот прикрутить профпзу к чему-то кроме Скорпиона... инструкция-то есть, но не слышал, чтобы кто-то смог её реализовать....

creator
14.12.2016, 07:33
Вроде ж, к Спектруму цепляли CompactFlash.
Вот кстати да, имхо для топикстартера самое оптимальное решение. hal99, здесь (http://www.phantom.sannata.ru/konkurs/2008/kt0825.shtml) посмотри.

ALS
14.12.2016, 08:31
creator
еще 3 сообщения, но чтоб никто не благодарил

Prusak
14.12.2016, 09:45
Но напрягает написанное автором "Помимо ROM-диска необходимо наличие контроллера дисковода"

Эта фраза относится не к ROM-диску :)
Суть в том, что если в "Байте" занять системный разъём, то потом некуда будет подключить контроллер дисковода, поэтому плата с ROM-диском параллельно является переходником, в который потом сверху можно будет включить контроллер дисковода.

А сам ROM-диск, конечно же, можно использовать без контроллера дисковода.

hal99
14.12.2016, 20:41
Вот кстати да, имхо для топикстартера самое оптимальное решение. hal99, здесь (http://www.phantom.sannata.ru/konkurs/2008/kt0825.shtml) посмотри.

Я это уже видел, но ничего не понял.
"3. Загрузчик загружает прошивку ПЗУ в ОЗУ по старшим адресам." - не увидел на схеме ПЗУ и его прошивка тоже не приведена.
И совершенно неясно, как работать с CF-картой, где её купить занедорого такой малой ёмкости, где купить коннектор для карты.

Gutten
14.12.2016, 20:48
Китай всё готов тебе предоставить по весьма невысокой цене. Правда, иногда мелким оптом :)

Если опыта хватает - может рискнёшь доработать до скорпиона и поставить ПрофРОМ? Вообще, вещь удобная.

hal99
14.12.2016, 23:26
А сам ROM-диск, конечно же, можно использовать без контроллера дисковода.

Кстати!
Я правильно понял, что при нажатии на кнопку SB1 ПЗУ DD16 как бы заменяет родное ПЗУ?
А реально ли упростить схему таким образом, чтобы там использовать только DD16?
То есть чтобы всякий раз не вскрывать корпус и не менять ПЗУ, чтоб поиграться с прошивками, поставить панельку вместо DD16 и втыкать туда ПЗУ со свежей прошивкой, а комп будет воспринимать его как родное ПЗУ?

Думаю, ну как удастся потом переделать любимый мною Бета-Бейсик для прошивки в ПЗУ, чтоб он не только запускался сразу по включении, но и памяти свободной было не 20килобайт, а почти вся.

- - - Добавлено - - -



Если опыта хватает - может рискнёшь доработать до скорпиона и поставить ПрофРОМ? Вообще, вещь удобная.

Как раз опыта нет. Дорабатывать дельту до скорпиона считаю бессмысленным.
Хочу просто поиграться. Попробовать придумывать и делать разные внешние устройства для доставшейся мне Дельты.

goodboy
15.12.2016, 00:03
вообще-то BetaBasic при работе не подменяет родное ПЗУ, а скорее дополняет его.
оригинальная прошивка всё равно нужна, свободной памяти больше нестанет.

присмотритесь (при ваших запросах) к divIDE.
это перехват (на аппаратном уровне) стандартных процедур save/load и подстановка данных из файла который хранится на hd/cf

creator
15.12.2016, 00:21
Я это уже видел, но ничего не понял.
"3. Загрузчик загружает прошивку ПЗУ в ОЗУ по старшим адресам." - не увидел на схеме ПЗУ и его прошивка тоже не приведена.
И совершенно неясно, как работать с CF-картой, где её купить занедорого такой малой ёмкости, где купить коннектор для карты.
Да, это проблема.

hal99
15.12.2016, 01:03
Да, это проблема.

Ну, во всяком случае, проблема - как с этим работать.

Покуда погляжу, сработает ли OTLA

CodeMaster
15.12.2016, 07:24
где её купить занедорого такой малой ёмкости

64MB CompactFlash (https://meshok.net/item/49609448)


где купить коннектор для карты

Можно купить отдельно, но я бы купил вот такой адаптер (https://www.aliexpress.com/item/40-Pin-IDE-Bootable-Adapter-Compact-Flash-CF-to-3-5-Female-Converter-Card-Wholesale-PromotionHot/32450236831.html?spm=2114.01010208.3.2.bL3Irt&ws_ab_test=searchweb0_0,searchweb201602_2_10065_10 068_10084_10083_10080_10082_10081_10060_10061_1006 2_10056_10055_10054_10059_10032_10099_10078_10079_ 10077_10073_10103_10102_10096_10052_10050_10051,se archweb201603_8&btsid=800cc9ea-69e8-40a6-81a8-30e27486a167) и распаял его, ибо в разы дешевле.

mmxdmv
06.02.2017, 23:08
Хочется сотворить что-то вроде ром-диска. Но максимально простого и дешёвого.
Какие посоветуете варианты?

Варианты? Их есть у меня.
Сразу предупрежу что за темой не следил и могут быть другие варианты (особенно с точки зрения софта)

ROM-Disk Довольно простая штука.
Аппаратная часть: паяете ПЗУ поверх существующей и делаете переключатель на линию CS (родная/самопал).
Программная часть:
Грузим бетабейсик в чистый комп, и сохраняем всю значимую оперативу (начиная с буфера принтера и заканчивая UDG), потом этот снимок памяти сжимаем упаковщиком (хрумом или хрустом или любым другим). По идее архив должен поместится в 16 килобайт (т.к. большинство памяти - нули, они очень хорошо сожмутся). Дальше в ПЗУ пишем загрузчик - скопировать от сих до сих (зависит от размера архива), запустить распаковщик, после чего запустить процедуру в ОЗУ которая поморгает бордером и побикает, подождёт пока вы щёлкните переключателем и вернётся в бейсик.
Соответственно работать будет так: переключатель в положение - самопал, нажимаем сброс, ждём окончания распаковки (обычно пара секунд) и сигнализации что переключатель можно врубать обратно.

Требования - ПЗУшка 16 килобайт, переключатель, два резистора подтяжки CS к плюсу (несколько килоом, знающие пояснят). Ну и умение пользоваться архиватором и мало-мальски программировать в ассемблере, понимать что и куда копировать.

BDI Ну или любой дисковый интерфейс. Идеально с переходником на флешку.
Аппаратная часть: купить и припаять.
Программная часть: всё придумано за нас, заходим в TR-DOS и грузим

Турбо загрузчик самый простой и "бесплатный" способ
через TapeIn подключаете смартфон и грузите с него бета-бейсик. Если скорость не нравится, то пакуете бета-бейсик архиватором, а затем вешаете турбо-загрузчик (на форуме проскакивал, но что-то я на вскидку не нахожу). Полагаю что время загрузки на максимальной скорости будет 15-20 секунд

в следующем посте - ещё один прикольный вариант (это если программировать умеете)

- - - Добавлено - - -


Какие посоветуете варианты?

Самый прикольный вариант - на Ардуинке (цена 130 рублей, внешних компонент не надо... ну может кроме картридера). Паять тоже там мало. Зато программировать много.

Итак, поехали.
Максимально простой ввод данных на спектруме это традиционно - TapeIn : однобитный и все спектрумы его умеют.
Берём ардуинку на 328p (это для простоты и для опытов. Ну и на алиэкспрессе цена порядка 130 рублей, так что не критично). У ардуинки память - 32 килобайта, бета бейсик туда легко полезет. Далее учимся ногодрыгу на ардуинке. В принципе надо-то всего несколько разных периодов ногодрыга: пилоттон, синхроимпульс, ноль и единица. Не знаете ArduinoIDE - не страшно, там понадобится-то пяток команд. Подключили питание и TapeIn, набрали на спектруме LOAD "" - бетабейсик загружен и все счастливы.

Но медленно. Для ускорения - тот же архиватор и та же турбозагрузка. Здесь у Ардуинки преимущество перед смартфоном- её можно припаять в обход аналоговой схемы прямо к цифре. Сответственно тут два плюса - помехозащищённость ещё более увеличивается и появляется постоянная составляющая. Благодаря помехозащищённости можно грузить секунд за 10 (быстрее турбозагрузчики не позволят). Да, в случае турбо-загрузчика придётся дополнять ногодрыг.

В общем красота: припаяли четыре проводка (землю, питание, TapeIn, TapeOut) включили спектрум, набрали LOAD "", сбросили ардуинку встроенной кнопкой и через 10 секунд всё у нас в шоколаде.

Но скучно. Мы хотим ещё и сохранять. И даже загружать свои программки.
Что делать? Надо к ардуинке подключить microSD карточку (на алиэкспрессе цена картридера от 20руб). Дальше читаем мануалы по ардуинке как рулить карточкой.
И пишем на спектруме процедурки чтения/загрузки сектора. Если умеючи, то это не сложно.
Дальше пишем пару-тройку DEF FN, через которые будем передавать имена файлов, начало и конец загрузки. Ну или каталог на флешке читать.

Про скорость: Так как ардуинка припаяна напрямую к регистру, то помех нет. Расчётное время за которое можно прочитать байт (со всеми квитированиями) будет порядка 1000 тактов. Т.е. тот же бета-бейсик можно загрузить (если он 16 килобайт) за 5 секунд. Максимальное время загрузки 40 килобайтной игры - 12 секунд
В общем и дисковода не надо. Да и с флешкой удобно: больше программ поместятся.

Ну и самая сложная часть - подключить самопальное ПЗУ и заменить стандартные SA/LD-Bytes на флешечные.
Тогда вообще полная демократия - загружатся с флешки и сохранятся на оную можно будет напрямую из бейсика (в том числе и бета-бейсика)

bigral
08.02.2017, 17:33
Вот тут http://velesoft.speccy.cz/zx/divide/divide-history.htm говорят что CF карта Pera Putnik-а эволюционировала в DivIDE (что имеет популярность на западе такую же как и tr-dos у нас). Почему бы и не собрать на макетке?

mmxdmv
08.02.2017, 23:28
Почему бы и не собрать на макетке?

Если это мне, то чукча не паятель. Я и ПЗУшку-то не перепаяю своим паяльником.

Вообще любое готовое решение лучше не готового. Так что если кто-то разобрался в DivIDE - то пусть инструкцию пишет. Я может даже и куплю с оказией.
Кстати, вопросы про DivIDE:
- а как с ним работать?
- у него ПЗУ-шка под внутренние нужды или там код для Z80?
- можно из бейсика в несколько нажатий клавиш запустить загрузчик?
- а из машинного кода одной-двумя командами CALL сохранить игру на диск?
- он со всеми дисками/флешками работает? а то рабочий IDE винт найти уже проблема, CF опять же из продажи выводят...

Если DivIDE вещь в себе (нет простого интерфейса из бейсика/ассемблера) то нужен ли он?

просто если делать на ардуинке+SD-карте:
+ запчасти копеечные и везде продаются.
+ плата не нужна, пайка тоже не нужна (4 проводка не считаются)
+ низкоуровневый интерфейс с диском (головки, сектора) и среднеуровневый (FAT, кластера) не требуются: эту кухню будет вести стандартная библиотека ардуинки.
- требуется софт начального загрузчика
- требуется софт покластерного обмена
- желателен высокоуровневый софт встраиваемый в бейсик

mmxdmv
01.03.2017, 22:59
Про велосипед на адруинке завёл отдельную тему (http://zx-pk.ru/threads/27441-ocherednoj-odnobitnyj-velosiped-dlya-spektruma.html). Может умные люди присоветуют и доведём её до ума.
Думаю, если правильно реализовать, то такая фишка для бета-бейсика была бы идеальна.