PDA

Просмотр полной версии : Утилита SAV2CART



nzeemin
30.05.2016, 21:49
Какие изменения надо внести в исходники чтобы собирался не .SAV, а образ ПЗУ?

Хочу загружать игру в эмулятор через "разъем" кассеты ПЗУ, а в живой УКНЦ - через эмулятор кассеты ПЗУ :)

Есть код загрузки Бейсика с кассеты -- по идее, можно приспособить его.
http://www.emuverse.ru/wiki/%D0%A3%D0%9A%D0%9D%D0%A6_%D0%B7%D0%B0%D0%B3%D1%80% D1%83%D0%B7%D0%BA%D0%B0_%D0%91%D0%B5%D0%B9%D1%81%D 0%B8%D0%BA-%D0%92%D0%B8%D0%BB%D1%8C%D0%BD%D1%8E%D1%81_%D1%81_ %D0%BA%D0%B0%D1%81%D1%81%D0%B5%D1%82%D1%8B_%D0%9F% D0%97%D0%A3

MacBuster
30.05.2016, 22:02
Есть код загрузки Бейсика с кассеты -- по идее, можно приспособить его.

Спасибо! На первый взгляд все понятно, кроме конкретных адресов типа 5566. Мне кажется сборка исходного кода в образ ПЗУ может сильно ускорить разработку относительно небольших игр - не надо тратить время на загрузку системы с диска и запуска того-же MAIN.SAV...

Vamos
30.05.2016, 22:29
не надо тратить время на загрузку системы с диска
есть загрузка с магнитофона и конвертер SAV2WAV.exe и набор игрушек в WAV
еще здесь http://zx-pk.ru/threads/11277-audio-programmy-dlya-uknts.html?p=232225&viewfull=1#post232225

DJs3000
30.05.2016, 22:43
А может стоит сделать картридж и писать игры в пзу программатором? Игр на укнц очень мало и можно их все в образы картриджа перевести. 2016 год какие дискеты и плёнка...

Vamos
30.05.2016, 23:04
DJs3000, зачем пленка, со звуковой карты на магнитофонный разъем

nzeemin
31.05.2016, 01:05
Я почти готов отдать вам утилиту Sav2Cart, надо ещё немного её доделать и попроверять.
Но и в самом Lode Runner понадобятся некоторые изменения -- сейчас он пользуется некоторыми вызовами системы, надо будет это устранить.

MacBuster
31.05.2016, 09:12
А может стоит сделать картридж и писать игры в пзу программатором?
Зачем программатор? Все уже есть - эмулятор контроллера дисковода на SD картах Ярика, который может работать в качестве эмулятора кассеты ПЗУ. Я его с успехом использую.

Впрочем да, там тоже потребуется программатор для этой SoC, но он недорогой и совсем простой - выглядит примерно как USB-разъем типа A.


Игр на укнц очень мало и можно их все в образы картриджа перевести. 2016 год какие дискеты и плёнка...
Не факт что все, но определенная часть из них точно может быть переделана в образ кассеты ПЗУ - если помещается в объем памяти кассеты и нет обращения к диску для дозагрузки. Впрочем, второе можно победить.

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


DJs3000, зачем пленка, со звуковой карты на магнитофонный разъем

Ещё проще - любой mp3-плеер.

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


Я почти готов отдать вам утилиту Sav2Cart, надо ещё немного её доделать и попроверять.
Здорово! Со своей стороны я готов проверить её на живой УКНЦ с использованием эмулятора Ярика :) Всякие Xonix-ы скорее всего пойдут, я их через магнитофонный порт успешно загружал.


Но и в самом Lode Runner понадобятся некоторые изменения -- сейчас он пользуется некоторыми вызовами системы, надо будет это устранить.
Спасибо! Буду ждать новостей :)

nzeemin
31.05.2016, 12:41
Спасибо! На первый взгляд все понятно, кроме конкретных адресов типа 5566. Мне кажется сборка исходного кода в образ ПЗУ может сильно ускорить разработку относительно небольших игр - не надо тратить время на загрузку системы с диска и запуска того-же MAIN.SAV...

Это подходит только для программ, которым не нужна RT-11 и её системные вызовы.
Так же как в случае с Sav2Wav, но ещё плюс ограничение на объём -- до 24 КБ.

DJs3000
31.05.2016, 12:51
Это подходит только для программ, которым не нужна RT-11 и её системные вызовы.
Так же как в случае с Sav2Wav, но ещё плюс ограничение на объём -- до 24 КБ.

Есть вариант обойти ограничения в 24кб? маппер какой или фс для работы подгрузок. УКНЦ же явно делали по образу и подобию КУВТ тот что MSX судя по дизайну да и барсик там очень похож. Вариант с SD картой тоже не плох но в идеале бы карик конечно)))

nzeemin
31.05.2016, 16:27
Есть вариант обойти ограничения в 24кб? маппер какой или фс для работы подгрузок. УКНЦ же явно делали по образу и подобию КУВТ тот что MSX судя по дизайну да и барсик там очень похож. Вариант с SD картой тоже не плох но в идеале бы карик конечно)))

Можно много чего, понять бы ещё зачем.
Если мы эмулируем картридж, то у нас ограничение на 24 КБ. Если делаем больше -- это уже не картридж УКНЦ, это другое устройство -- новодел.
Если нам не хватает 24 КБ -- есть другие варианты:
(1) эмулятор флопповода на SD-картах;
(2) реплика контроллера винчестера, работающая с картами памяти Compact Flash (которые, в свою очередь, эмулируют интерфейс IDE) -- это уже практически неограниченное место, плюс высокая скорость работы;
(3) связь с PC через COM-порт плюс HX драйвер.

Vamos
31.05.2016, 17:09
Можно много чего, понять бы ещё зачем.
Вот вот, есть ТВ приставки с картриджами, берите и играйте, зачем вам УКНЦ?

hobot
31.05.2016, 17:57
Это подходит только для программ, которым не нужна RT-11 и её системные вызовы.
Так же как в случае с Sav2Wav, но ещё плюс ограничение на объём -- до 24 КБ.


Должен МИЭтовский ФОКАЛ (http://zx-pk.ru/threads/25802-focal.html) работать в принципе ) Это такая среда для инженерных вычислений и графики
мониторно не зависимая )

Alex_K
31.05.2016, 19:25
Есть вариант обойти ограничения в 24кб?
Два картриджа, итого 48 кБ.

MacBuster
31.05.2016, 22:24
(1) эмулятор флопповода на SD-картах;
(2) реплика контроллера винчестера, работающая с картами памяти Compact Flash (которые, в свою очередь, эмулируют интерфейс IDE) -- это уже практически неограниченное место, плюс высокая скорость работы;
Эти варианты хочется сразу отмести с негодованием - иначе нет никакого выигрыша из-за необходимости грузить систему. Кассета ПЗУ изначально отличный вариант для почти моментальной загрузки чего угодно - хоть системы, хоть своего кода и данных. Очень хочется побыть в роли хомяка из «Миссии Дарвина», лежать на полу, махать лапами и вопить, - Вся клетка память моя!

nzeemin
31.05.2016, 22:45
Ну вот вам на побаловаться -- первая версия Sav2Cart.
(Тем самым, открываем ящик Пандоры, из которого валится куча образов картриджей.)

Собственно что она делает:
1. Читает .SAV, отвергает если он больше 24576 байт
2. Находит адрес старта и адрес стека
3. Пишет в первые байты загрузчик, вставляет в него адреса старта и стека
4. Записывает 24576 байт в выходной .BIN файл

Недостаток: нет проверки контрольной суммы считанного из картриджа.

Проверил на LAND.SAV -- вроде как работает.

Исходный код: https://github.com/nzeemin/ukncbtl-utils/blob/master/Sav2Cartridge/Sav2Cart.cpp

См. обновлённую версию: http://zx-pk.ru/threads/24886-portirovanie-lode-runner-bk-gt-uknts.html?p=872964&viewfull=1#post872964

MacBuster
31.05.2016, 23:58
Ну вот вам на побаловаться -- первая версия Sav2Cart.
Ура! Xgonix и vert заработали сразу :)_


(Тем самым, открываем ящик Пандоры, из которого валится куча образов картриджей.)
Штук триста файлов и всё ;)

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


Должен МИЭтовский ФОКАЛ работать в принципе )
А в чем смысл? Ни загрузить ни сохранить ничего.

DJs3000
01.06.2016, 02:38
Эти варианты хочется сразу отмести с негодованием - иначе нет никакого выигрыша из-за необходимости грузить систему. Кассета ПЗУ изначально отличный вариант для почти моментальной загрузки чего угодно - хоть системы, хоть своего кода и данных. Очень хочется побыть в роли хомяка из «Миссии Дарвина», лежать на полу, махать лапами и вопить, - Вся клетка память моя!

Да именно так и хочется чтоб вставил картридж и имеешь моментальную загрузку игры. Есть вообще жирные игры на УКНЦ более 24кб?

MacBuster
01.06.2016, 07:59
Да именно так и хочется чтоб вставил картридж и имеешь моментальную загрузку игры.
Именно! А написание чего-нибудь и тестирование этого чего-нибудь вообще ускоряется раз в 100500.


Есть вообще жирные игры на УКНЦ более 24кб?
Конечно есть и много, тот же кот-рыболов. Можно в архиве Хобота посмотреть по размерам файлов.

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


первая версия Sav2Cart.
Можно попросить туда добавить на будущее ключик --custom-loader filename, чтобы можно было брать загрузчик из внешнего файла?

hobot
01.06.2016, 20:36
nzeemin, http://zx-pk.ru/threads/24886-portirovanie-lode-runner-bk-gt-uknts.html?p=872829&viewfull=1#post872829 мощно! Может даже отдельную тему про утилиту такую ) Жаль сейчас крайне неудобно мне самому пощупать (чужая машинка, под рукой ничего нет!). Всяко утилита интересная! ) Предлагаю - В отдельной теме "удачные эксперименты" можно выкладывать для всех.

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


А в чем смысл? Ни загрузить ни сохранить ничего.
А в чём смысл БЕЙСИКА-ВИЛЬНЮС на картридже?
Можно составить программу, получить график-отчёт и распечатать экран как минимум (та самая подпрограмма в ПЗУ УК-НЦ)

nzeemin
01.06.2016, 23:57
Обновил Sav2Cart.
Эта версия уже с подсчётом и проверкой контрольной суммы.

- - - Updated - - -


Можно попросить туда добавить на будущее ключик --custom-loader filename, чтобы можно было брать загрузчик из внешнего файла?
Честно говоря, не вижу смысла.
Нужен будет другой загрузчик -- можно изменить утилиту. А с ключиком только сложнее: нужно же ещё знать адреса в загрузчике куда подставлять START, STACK, CHKSUM.

hobot
04.07.2016, 18:41
http://zx-pk.ru/threads/24886-portirovanie-lode-runner-bk-gt-uknts.html?p=872964&viewfull=1#post872964

nzeemin,


Захотелось поэкспериментировать, забрал версию из поста по ссылке.
Вот беда - не работает ! Пишет, что не является приложением Win32?
Подозреваю компиляцию под 64-битную ось, но зачем? Скорее всего по умолчанию стоит. Наверное в случае с этой утилитой нет смысла две версии делать, поскольку 32-битное ПО как правило отлично работает и под 64-окошками, а вот обратное конечно не возможно )

Хорошо бы встроенную инструкцию или прилагающуюся более чёткую инструкцию.
Спасибо.

nzeemin
04.07.2016, 19:29
http://zx-pk.ru/threads/24886-portirovanie-lode-runner-bk-gt-uknts.html?p=872964&viewfull=1#post872964
Захотелось поэкспериментировать, забрал версию из поста по ссылке.
Вот беда - не работает ! Пишет, что не является приложением Win32?
Подозреваю компиляцию под 64-битную ось, но зачем? Скорее всего по умолчанию стоит. Наверное в случае с этой утилитой нет смысла две версии делать, поскольку 32-битное ПО как правило отлично работает и под 64-окошками, а вот обратное конечно не возможно )


Причина в другом.
Я разрабатываю под VS2013, которая компилит под рантайм, не поддерживающий Windows XP.
Поэтому чтобы релизить -- мне нужно отдельно создавать проект на VS2010 и компилить в ней.

57528

hobot
04.07.2016, 20:36
Причина в другом.
Важно! Любые пояснения нужны - я люблю информацию (помните как в фильме STAND Up guys (https://www.kinopoisk.ru/film/467729/)) Аль Пачино на больничной каталке лепечит??? ).

Да! Эта вот (http://zx-pk.ru/attachment.php?attachmentid=57528&d=1467649537) без проблем стартанула, ух побалуюсь я теперь )))
Обидно, что БК-шахматки замигали, но дальше первой страницы описания не идут,
просто перерисовывают её бесконечно ))) Что бы это значило? Неужели картридж с CHESS недостижим? ;-(

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

nzeemin, может всё таки Sav2Cart отдельную тему создать? Интересное же баловство ))) Там можно и образы и стейт-сэйвы из эмулятора и для эмулятора лепить\выкладывать !

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

Ха! Понеслась, кому картриджы для УК-НЦ )))
Вот есть PIFPAF ))) http://storage6.static.itmages.ru/i/16/0704/s_1467653462_9271603_e8f2be5d4c.png (http://itmages.ru/image/view/4544016/e8f2be5d)
Без проблем )))

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

+ LANDM - тот который со звуком, где выстрелы переделаны на q и w

nzeemin
04.07.2016, 20:48
nzeemin, может всё таки Sav2Cart отдельную тему создать? Интересное же баловство ))) Там можно и образы и стейт-сэйвы из эмулятора и для эмулятора лепить\выкладывать !


Так создавайте. Лучше бы конечно из этой темы сбросить хвост в новую.

- - - Updated - - -

Вообще ещё одна идея у меня была в связи с Sav2Cart. Можно взять какой-нибудь LZW или какое-то более простое сжатие и попробовать впихнуть экстрактор в 512 байт загрузчика -- тем самым можно будет снять ограничение в 24 КБ -- будет немного больше.

hobot
04.07.2016, 21:08
Ок! Я утилиту + архив проверенных на рабочесть .BIN сделаю в архиве
в правый фрейм - будет оформлено стандартно в "стиле и духе хламничка" для УК-НЦ.
Папка SAV2CART будет добавлена в папку к UKNCBTL, как то так. В самое ближайшее время.

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


Можно взять какой-нибудь LZW
по скорости работы самый мощный FCU, но он "капризный" до запуска - часто ругается например на недостаток памяти,
а потом при тех же параметрах запускается. Оправдывает себя реально очень быстрой скоростью работы.

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

А по поводу откусить хвост на форуме из этой темы я модераторам напишу. Хвост именно SAV2CART посвящённый.

MacBuster
04.07.2016, 21:40
по скорости работы самый мощный FCU, но он "капризный" до запуска - часто ругается например на недостаток памяти, а потом при тех же параметрах запускается. Оправдывает себя реально очень быстрой скоростью работы.

Я где-то видел реализацию целочисленного арифметического сжатия-распаковки и даже deflate по RFC для PDP11 - что неожиданно, аж под МК85.

hobot
04.07.2016, 23:23
Как бы придумать перенос на картридж выдранного из сборника Knight!!! )
там крохотный стартовый загрузчик SAV и огроменный OVL файл )))

Штука именно этого варианта игры в честности, так как в сущ. образе сборника "ИГРУШКА-1" он ломанный (бессмертие). Но пока ограничиваюсь играми вписывающимися в ограничения ;-)

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

Ну вот так наверное опрятней ;-)
http://archive.pdp-11.org.ru/EMULATORS/UKNCBTL_HDD/Sav2Cart/

nzeemin
05.07.2016, 18:02
В общем нужен будет упаковщик на C/C++, и распаковщик на MACRO11.
Если есть что-то на примете -- скажите.

Могу сесть и написать что-то простое типа RLE, но реализовывать сейчас LZ77 или что-то подобное -- сил нету.

hobot
06.07.2016, 19:09
Неужели картридж с CHESS недостижим? ;-(
Нюанс с шахматами ) Портированные с БК0010 шахматы с граф. доской правильно работать не захотели,
зато версия V001T нормально себя чувствует и запустилась. По мере набора таких нюансов буду немного
расширять архив bin файлов


(http://archive.pdp-11.org.ru/EMULATORS/UKNCBTL_HDD/Sav2Cart/)
http://storage9.static.itmages.ru/i/16/0706/s_1467799377_2549664_7bae6fcd39.png (http://archive.pdp-11.org.ru/EMULATORS/UKNCBTL_HDD/Sav2Cart/)


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


В общем нужен будет упаковщик на C/C++, и распаковщик на MACRO11.
Если есть что-то на примете -- скажите.

Я помнил, что где то попадался мне не совсем стандартный архиватор для ДВК\УК-НЦ (RT-11\TSX), так на дискетах Хранительницы же откопался RTARCH



RTARC RT-11 TSX FODOS RTXARC


rtarc, rtxarc - архивирование и упаковка файлов


ФОРМАТ

rtarc [-d] [-o] [-q] [-p devise] [-z] [file...]

rtxarc [-d] [-o] [-q] [-p devise] [file...]


ОПИСАНИЕ

Программа RTARC архивирует и сжимает указанные
файлы . Каждый файл упаковывается в файл с расшире-
нием .ARC . Файлы содержат архивную информацию :
имя исходного файла, его длину в блоках и строку ин-
формации о своем содержании и могут быть разархиви-
рованны с помощью программы RTXARC.

Программы могут быть использованы для архивных целей
не производя побочных последствий после распаковки.

Для ускорения передачи файлов между RT-11 и UNIX
программа RTARC позволяет создавать файлы, которые
могут быть раскомпрессированы в UNIX с помощью про-
граммы uncompress, а программа RTXARC позволяет рас-
компрессировать файлы скомпрессированные программой
compress в ос UNIX. Отметим , что в системе RT-11
длина файла определяется с точностью до блока, а в
UNIX с точностью до байта, поэтому возможны изменния
длин файлов, что однако не отражается на их содержи-
мом , т.к. дополнение до блока осуществляется симво-
лами '\0' . Работающих только в RT-11 эта проблема
может не волновать.

Если выходной файл существует, то запись в него про-
изводится только при наличии ключа -о. Если ключ -о
не указан то запрашивается разрешение на запись в
файл.

При вызове с ключом -d все исходные файлы уничтожа-
ются после обработки.

Кляч -p с указанием после него имени устройства
заставляет помещать создаваемые файлы на это устрой-
ство.

Ключ -z при архивировании дает файл с суффиксом
.Z пригодный для передачи в UNIX , а при работе с
RTXARC позволяет раскомпрессировать принятые из UNIX
файлы.

Ключ -c заставляет результаты работы RTXARC выда-
вать на терминал, архивные файлы не изменяются.

Ключ -l позволяет распечатывать архивы без преоб-
разования файлов в исходный вид ( аналог -cp LP: ).

Программы используют модифицированный алгоритм
Лемпеля-Зива (Lempel-Ziv), описанный в статье "A
Technique for High Performance Data Compression",
Terry A. Welch, IEEE Computer Vol 17, No 6 (June
1984), pp 8-19.

Программа RTARC в начале создаваемого файла записы-
вает информацию позволяющую отличить его от случай-
ного текста.Дополнительно в файл записывается предел
bits, использовавшийся при работе rtarc , что поз-
воляет не указывать его для compress в ос UNIX , и
если файл является архивным то и неоходимая информа-
ция для преведения его к исходному виду.

Достигаемое сокращение размера зависит от размера
исходного файла. Обычно текстовые файлы, такие как
программы на языке Си , уменьшаются на 50-60%.

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

ДИАГНОСТИКА

Usage: ru rtarc

# [-doqz] [-p output_devise] [file ...]
... ... ...

В командной строке был указан неправильный
режим работы.

Unknown flag: '_';

В командной строке были указаны неправильные
ключи.

file: already exists

do you wish to overwrite (y or n)?

Файл с именем file уже существует; если его
можно стереть, то ответьте "y", иначе "n".


ПРОГРАММА RTARC.


file: already has .ARC suffix -- no change

Файл с именем file уже имеет суффикс .ARC ,
либо является архивом.

file: enter information about your file

->
Введите 60 символов информации о вашем файле
закончив ввод нажатием "ВК" или "ПС".

file:

Этот фрагмент сообщения выдается в начале
обработки файла с именем file.

compressed on xx.yy%

Этот фрагмент сообщения указывает коэффици-
ент сжатия исходного файла.

to file

Этот фрагмент сообщает об успешном образова-
нии результирующего файла.

sourse deleted

Этот фрагмент говорит об уничтожении файла
источника.

sourse was't deleted

Этот фрагмент говорит о не уничтожении файла
источника из за каких либо неполадок при ра-
боте RTARC.


ПРОГРАММА RTXARC.


file have a bad suffix

Файл с именем file имеет суффикс не .ARC и
не .Z .

file: not in compressed format

Файл с именем file не обрабатывался rtarc .

file: not in archiving format

Файл с именем file не архив.

file: compressed with xx bits, can only handle yy

bits

Файл с именем file был упакован командой,
которая использовала xx бит для упаковки, а
вызванная команда может обработать только yy
бит. Только при работе с файлами из UNIX.

file was archived as file1

В файле с именем file архивирован файл file1

file

Этот фрагмент сообщения выдается в начале
обработки файла с именем file.

unarchived to file1

Этот фрагмент выдается в случае успешного
разархивирования архивного файла file.

sourse deleted

Этот фрагмент выдается в случае уничтоже-
ния исходного файла.



http://archive.pdp-11.org.ru/vid/UK_KAZAKOV_DSK.rar


ссылка на образы временная.


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

По поводу "виртуальных" картриджей ) => "Цепочка тестов для УК-НЦ" частично ПКМ из .BIN такого работает. Ещё несколько вариантов LAND-игры, "терминал"-версию шахмат (см. выше) на сайт добавил.



File Blocks Date Bytes
---------- ------ ----------- ----------
CASTLE.BIN 48 04-Jul-2016 24'576
CHESS1.BIN 48 06-Jul-2016 24'576
GARDEN.BIN 48 04-Jul-2016 24'576
KLAD40.BIN 48 04-Jul-2016 24'576
LAND .BIN 48 06-Jul-2016 24'576
LAND0 .BIN 48 06-Jul-2016 24'576
LAND1 .BIN 48 06-Jul-2016 24'576
LANDM .BIN 48 04-Jul-2016 24'576
LANDUK.BIN 48 04-Jul-2016 24'576
PIFPAF.BIN 48 04-Jul-2016 24'576
PIRAM .BIN 48 04-Jul-2016 24'576
SHERIF.BIN 48 04-Jul-2016 24'576
TESTUK.BIN 48 06-Jul-2016 24'576
XONIX .BIN 48 04-Jul-2016 24'576
---------- ------ ----------- ----------
14 Files

MacBuster
07.07.2016, 09:02
Может быть список игр, успешно опробованных в формате картриджа, тоже выделим в отдельную тему?

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


Я где-то видел реализацию целочисленного арифметического сжатия-распаковки и даже deflate по RFC для PDP11 - что неожиданно, аж под МК85.

Прошу прощения, перепутал модели - на самом деле там МК90. Исходник для распаковщика deflate на ассемблере PDP-11 здесь, в самом низу страницы:

- http://mirrors.pdp-11.ru/_mk90/www.pisi.com.pl/piotr433/mk90mc1e.htm.html

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

Хорошо бы запихать в картридж образ той системы, которая загружается с диска - жуткая экономия времени :)

hobot
07.07.2016, 18:18
Может быть список игр, успешно опробованных в формате картриджа, тоже выделим в отдельную тему? ??? или снова юмор?


Хорошо бы запихать в картридж образ той системы, которая загружается с диска - жуткая экономия времени такое возможно только при использовании "Электронного диска" и практиковалось на живых
машинках, но система первоначально должна стартовать с реального носителя (дискеты), а уже потом процедурно переносится на ЭД, для ускорения работы RT-11 и уменьшения износа дискет и дисковода так же использовался
драйвер "квази диска" или "виртуал мемори" - такое же частично решение применяли на БК-11 в одной из версий
ОС БК по умолчанию, ИМХО: это всё погоня за призраками, дисковая система - не случайно дисковой называется )))

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


жуткая экономия времени
странно такое читать от спектрум-пользователя где загрузка даже малюсенькой программы длится несколько минут,
RT-11 достаточно шустрая система, время загрузки меньше 2 минут, какие проблемы то?

MacBuster
07.07.2016, 20:47
загрузка даже малюсенькой программы длится несколько минут

Не пора выздоравливать? Я пользовался спектрумом последний раз лет 20 назад, но ещё помню что там загрузка программы на всю память в 128к занимала секунд 20-30.

hobot
07.07.2016, 20:55
в 128к занимала секунд 20-30.
Игра? С кассеты? 20-30 секунд? или мы о разных вещах говорим?

nzeemin
08.07.2016, 00:44
Ребят, вы куда-то ушли от темы.

Если кому-то ещё интересно, RLE encoder я написал, дальше нужно загрузчик с декодером написать.

MacBuster
08.07.2016, 08:28
Если кому-то ещё интересно, RLE encoder я написал, дальше нужно загрузчик с декодером написать.
А тот исходник распаковщика deflate, ссылку на который я привёл выше, не работает? По-моему блок zip это многократно лучше чем простой RLE.

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

Посмотрел как сжимаются zip-ом игры в виде образа картриджей (fish, gxonix, vert) - средний размер сжатого образа составляет 4Кб, и это ещё без удаления заголовка архиватора.

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

Сравнил сжатие zip в винде и gz в убунте:


# name bin zip gz
------------------------------------
1 fish.bin 24576 6470 6354
2 gxonix.bin 24576 3597 3476
3 TSPAL.BIN 24576 814 695
4 vert.bin 24576 4486 4369

nzeemin
02.08.2016, 23:10
В аттаче третья версия утилиты -- добавил кодер/декодер RLE.
Да, сжимает не очень хорошо. Зато я с ним разобрался за обозримое время.
RLE кодирование выбирается автоматически, если выбранный SAV-файл размером больше 24576 байт.

MacBuster
03.08.2016, 07:08
В аттаче третья версия утилиты -- добавил кодер/декодер RLE.
Здорово, большое спасибо!

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

Попытавшись сжать swap.sys получил неожиданный эффект:

http://s017.radikal.ru/i440/1608/0e/9ccb2a053377.png

С остальными файлами проблем не возникло.

AFZ
03.08.2016, 07:27
Попытавшись сжать swap.sys получил неожиданный эффект: Похоже, он из одних нулей. Вероятно он из-под системы, в которой установлено SET USR NOSWAP, SET EXIT NOSWAP, и поэтому никто не свопится.

MacBuster
03.08.2016, 21:42
Похоже, он из одних нулей.
Нет, там внутри есть какой-то мусор. Но это определенно не .sys и не .sav.

nzeemin
03.08.2016, 23:31
Попытавшись сжать swap.sys получил неожиданный эффект:

http://s017.radikal.ru/i440/1608/0e/9ccb2a053377.png

С остальными файлами проблем не возникло.

Ну да, давайте туда прокатный стан засунем :)

SAV Image Size определяется так:
wTopAddr = слово по смещению 050 от начала SAV-файла
savImageSize = (wTopAddr + 2 - 01000)

Это даёт нам "истинный" размер SAV без заголовка, с тем чтобы не пихать в картридж ненужный хвост, добивающий до границы блока в 512 байт.
Естественно, в не-SAV файле по смещению 050 написан бред. Из бреда получился бред. По идее, нужно поставить дополнительные проверки на некорректные входные данные.

hobot
09.09.2016, 03:00
третья версия утилиты
Нет, в картридже не хочет играть.
http://storage3.static.itmages.ru/i/16/0908/s_1473379171_4887672_a43cf411ba.png (http://itmages.ru/image/view/4855948/a43cf411)

MacBuster
18.09.2016, 21:54
Нельзя ли к эмулятору добавить ключик для автоматического запуска программы из картриджа? С диска-то система автоматически загружается, а вот с картриджа пока нет.

nzeemin
18.09.2016, 22:27
Нельзя ли к эмулятору добавить ключик для автоматического запуска программы из картриджа? С диска-то система автоматически загружается, а вот с картриджа пока нет.

Да, ключи командной строки -- это правильно, буду развивать.
Кстати, если кто не знает, опция командной строки "/boot" приводит к автозапуску эмулятора и автоматической загрузке с диска.

hobot
20.08.2017, 21:40
http://zx-pk.ru/threads/15297-korvet-zagruzka-iz-vneshnego-pzu.html?p=917166&viewfull=1#post917166
- вопрос похожего устройства для УК-НЦ ? А именно :
1. Возможность создания
2. Схема работы - конкретно манипуляции со стороны пользователя
3. Целесообразность

Интересно мнение всех кто сочтёт нужным высказать
Спасибо.

nzeemin
10.11.2018, 11:30
Для утилиты Sav2Cart сделал сжатие по алгоритму LZSS, используется если только образ не влезает как есть и не влезает после использования RLE.
За основу была взята реализация LZSS, которая лежит в виде lzss.c буквально на каждом углу /* LZSS encoder-decoder (c) Haruhiko Okumura */, и затем допилена напильником под загрузчик.
Загрузчик взят из исходников утилиты LZSAV (за авторством Остапенко Алексей, 1994 год).

Для примера в том же архиве вложен HWYENC.BIN

https://zx-pk.ru/attachment.php?attachmentid=66878&d=1541797769

Если вдруг кому интересны детали реализации -- в отличие от "классического" LZSS управляющие биты сгруппированы в байты, биты "ссылок" устроены как 4 бит длина + 12 бит смещение назад = одно слово, окно получается размером 4 КБ. В такой реализации почти не используются побитовые сдвиги, выборка идёт побайтно.

Исходники утилиты здесь: https://github.com/nzeemin/ukncbtl-utils/tree/master/Sav2Cartridge

nzeemin
25.04.2020, 13:29
Для утилиты Sav2Cart прикрутил сжатие по алгоритму LZSA1/LZSA2.

LZSA описание и исходники тут: https://github.com/emmanuel-marty/lzsa
Версия распаковщика для PDP-11 за авторством ivagor: https://gitlab.com/ivagor/lzsa8080/tree/master/PDP11

Утилита для Win32 во вложении. Исходники тут: https://github.com/nzeemin/ukncbtl-utils/tree/master/Sav2Cartridge