Просмотр полной версии : Утилита SAV2CART
Какие изменения надо внести в исходники чтобы собирался не .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...
не надо тратить время на загрузку системы с диска
есть загрузка с магнитофона и конвертер SAV2WAV.exe и набор игрушек в WAV
еще здесь http://zx-pk.ru/threads/11277-audio-programmy-dlya-uknts.html?p=232225&viewfull=1#post232225
А может стоит сделать картридж и писать игры в пзу программатором? Игр на укнц очень мало и можно их все в образы картриджа перевести. 2016 год какие дискеты и плёнка...
DJs3000, зачем пленка, со звуковой карты на магнитофонный разъем
Я почти готов отдать вам утилиту Sav2Cart, надо ещё немного её доделать и попроверять.
Но и в самом Lode Runner понадобятся некоторые изменения -- сейчас он пользуется некоторыми вызовами системы, надо будет это устранить.
MacBuster
31.05.2016, 09:12
А может стоит сделать картридж и писать игры в пзу программатором?
Зачем программатор? Все уже есть - эмулятор контроллера дисковода на SD картах Ярика, который может работать в качестве эмулятора кассеты ПЗУ. Я его с успехом использую.
Впрочем да, там тоже потребуется программатор для этой SoC, но он недорогой и совсем простой - выглядит примерно как USB-разъем типа A.
Игр на укнц очень мало и можно их все в образы картриджа перевести. 2016 год какие дискеты и плёнка...
Не факт что все, но определенная часть из них точно может быть переделана в образ кассеты ПЗУ - если помещается в объем памяти кассеты и нет обращения к диску для дозагрузки. Впрочем, второе можно победить.
- - - Добавлено - - -
DJs3000, зачем пленка, со звуковой карты на магнитофонный разъем
Ещё проще - любой mp3-плеер.
- - - Добавлено - - -
Я почти готов отдать вам утилиту Sav2Cart, надо ещё немного её доделать и попроверять.
Здорово! Со своей стороны я готов проверить её на живой УКНЦ с использованием эмулятора Ярика :) Всякие Xonix-ы скорее всего пойдут, я их через магнитофонный порт успешно загружал.
Но и в самом Lode Runner понадобятся некоторые изменения -- сейчас он пользуется некоторыми вызовами системы, надо будет это устранить.
Спасибо! Буду ждать новостей :)
Спасибо! На первый взгляд все понятно, кроме конкретных адресов типа 5566. Мне кажется сборка исходного кода в образ ПЗУ может сильно ускорить разработку относительно небольших игр - не надо тратить время на загрузку системы с диска и запуска того-же MAIN.SAV...
Это подходит только для программ, которым не нужна RT-11 и её системные вызовы.
Так же как в случае с Sav2Wav, но ещё плюс ограничение на объём -- до 24 КБ.
Это подходит только для программ, которым не нужна RT-11 и её системные вызовы.
Так же как в случае с Sav2Wav, но ещё плюс ограничение на объём -- до 24 КБ.
Есть вариант обойти ограничения в 24кб? маппер какой или фс для работы подгрузок. УКНЦ же явно делали по образу и подобию КУВТ тот что MSX судя по дизайну да и барсик там очень похож. Вариант с SD картой тоже не плох но в идеале бы карик конечно)))
Есть вариант обойти ограничения в 24кб? маппер какой или фс для работы подгрузок. УКНЦ же явно делали по образу и подобию КУВТ тот что MSX судя по дизайну да и барсик там очень похож. Вариант с SD картой тоже не плох но в идеале бы карик конечно)))
Можно много чего, понять бы ещё зачем.
Если мы эмулируем картридж, то у нас ограничение на 24 КБ. Если делаем больше -- это уже не картридж УКНЦ, это другое устройство -- новодел.
Если нам не хватает 24 КБ -- есть другие варианты:
(1) эмулятор флопповода на SD-картах;
(2) реплика контроллера винчестера, работающая с картами памяти Compact Flash (которые, в свою очередь, эмулируют интерфейс IDE) -- это уже практически неограниченное место, плюс высокая скорость работы;
(3) связь с PC через COM-порт плюс HX драйвер.
Можно много чего, понять бы ещё зачем.
Вот вот, есть ТВ приставки с картриджами, берите и играйте, зачем вам УКНЦ?
Это подходит только для программ, которым не нужна RT-11 и её системные вызовы.
Так же как в случае с Sav2Wav, но ещё плюс ограничение на объём -- до 24 КБ.
Должен МИЭтовский ФОКАЛ (http://zx-pk.ru/threads/25802-focal.html) работать в принципе ) Это такая среда для инженерных вычислений и графики
мониторно не зависимая )
Есть вариант обойти ограничения в 24кб?
Два картриджа, итого 48 кБ.
MacBuster
31.05.2016, 22:24
(1) эмулятор флопповода на SD-картах;
(2) реплика контроллера винчестера, работающая с картами памяти Compact Flash (которые, в свою очередь, эмулируют интерфейс IDE) -- это уже практически неограниченное место, плюс высокая скорость работы;
Эти варианты хочется сразу отмести с негодованием - иначе нет никакого выигрыша из-за необходимости грузить систему. Кассета ПЗУ изначально отличный вариант для почти моментальной загрузки чего угодно - хоть системы, хоть своего кода и данных. Очень хочется побыть в роли хомяка из «Миссии Дарвина», лежать на полу, махать лапами и вопить, - Вся клетка память моя!
Ну вот вам на побаловаться -- первая версия 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 заработали сразу :)_
(Тем самым, открываем ящик Пандоры, из которого валится куча образов картриджей.)
Штук триста файлов и всё ;)
- - - Добавлено - - -
Должен МИЭтовский ФОКАЛ работать в принципе )
А в чем смысл? Ни загрузить ни сохранить ничего.
Эти варианты хочется сразу отмести с негодованием - иначе нет никакого выигрыша из-за необходимости грузить систему. Кассета ПЗУ изначально отличный вариант для почти моментальной загрузки чего угодно - хоть системы, хоть своего кода и данных. Очень хочется побыть в роли хомяка из «Миссии Дарвина», лежать на полу, махать лапами и вопить, - Вся клетка память моя!
Да именно так и хочется чтоб вставил картридж и имеешь моментальную загрузку игры. Есть вообще жирные игры на УКНЦ более 24кб?
MacBuster
01.06.2016, 07:59
Да именно так и хочется чтоб вставил картридж и имеешь моментальную загрузку игры.
Именно! А написание чего-нибудь и тестирование этого чего-нибудь вообще ускоряется раз в 100500.
Есть вообще жирные игры на УКНЦ более 24кб?
Конечно есть и много, тот же кот-рыболов. Можно в архиве Хобота посмотреть по размерам файлов.
- - - Добавлено - - -
первая версия Sav2Cart.
Можно попросить туда добавить на будущее ключик --custom-loader filename, чтобы можно было брать загрузчик из внешнего файла?
nzeemin, http://zx-pk.ru/threads/24886-portirovanie-lode-runner-bk-gt-uknts.html?p=872829&viewfull=1#post872829 мощно! Может даже отдельную тему про утилиту такую ) Жаль сейчас крайне неудобно мне самому пощупать (чужая машинка, под рукой ничего нет!). Всяко утилита интересная! ) Предлагаю - В отдельной теме "удачные эксперименты" можно выкладывать для всех.
- - - Добавлено - - -
А в чем смысл? Ни загрузить ни сохранить ничего.
А в чём смысл БЕЙСИКА-ВИЛЬНЮС на картридже?
Можно составить программу, получить график-отчёт и распечатать экран как минимум (та самая подпрограмма в ПЗУ УК-НЦ)
Обновил Sav2Cart.
Эта версия уже с подсчётом и проверкой контрольной суммы.
- - - Updated - - -
Можно попросить туда добавить на будущее ключик --custom-loader filename, чтобы можно было брать загрузчик из внешнего файла?
Честно говоря, не вижу смысла.
Нужен будет другой загрузчик -- можно изменить утилиту. А с ключиком только сложнее: нужно же ещё знать адреса в загрузчике куда подставлять START, STACK, CHKSUM.
http://zx-pk.ru/threads/24886-portirovanie-lode-runner-bk-gt-uknts.html?p=872964&viewfull=1#post872964
nzeemin,
Захотелось поэкспериментировать, забрал версию из поста по ссылке.
Вот беда - не работает ! Пишет, что не является приложением Win32?
Подозреваю компиляцию под 64-битную ось, но зачем? Скорее всего по умолчанию стоит. Наверное в случае с этой утилитой нет смысла две версии делать, поскольку 32-битное ПО как правило отлично работает и под 64-окошками, а вот обратное конечно не возможно )
Хорошо бы встроенную инструкцию или прилагающуюся более чёткую инструкцию.
Спасибо.
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
Причина в другом.
Важно! Любые пояснения нужны - я люблю информацию (помните как в фильме 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, может всё таки Sav2Cart отдельную тему создать? Интересное же баловство ))) Там можно и образы и стейт-сэйвы из эмулятора и для эмулятора лепить\выкладывать !
Так создавайте. Лучше бы конечно из этой темы сбросить хвост в новую.
- - - Updated - - -
Вообще ещё одна идея у меня была в связи с Sav2Cart. Можно взять какой-нибудь LZW или какое-то более простое сжатие и попробовать впихнуть экстрактор в 512 байт загрузчика -- тем самым можно будет снять ограничение в 24 КБ -- будет немного больше.
Ок! Я утилиту + архив проверенных на рабочесть .BIN сделаю в архиве
в правый фрейм - будет оформлено стандартно в "стиле и духе хламничка" для УК-НЦ.
Папка SAV2CART будет добавлена в папку к UKNCBTL, как то так. В самое ближайшее время.
- - - Добавлено - - -
Можно взять какой-нибудь LZW
по скорости работы самый мощный FCU, но он "капризный" до запуска - часто ругается например на недостаток памяти,
а потом при тех же параметрах запускается. Оправдывает себя реально очень быстрой скоростью работы.
- - - Добавлено - - -
А по поводу откусить хвост на форуме из этой темы я модераторам напишу. Хвост именно SAV2CART посвящённый.
MacBuster
04.07.2016, 21:40
по скорости работы самый мощный FCU, но он "капризный" до запуска - часто ругается например на недостаток памяти, а потом при тех же параметрах запускается. Оправдывает себя реально очень быстрой скоростью работы.
Я где-то видел реализацию целочисленного арифметического сжатия-распаковки и даже deflate по RFC для PDP11 - что неожиданно, аж под МК85.
Как бы придумать перенос на картридж выдранного из сборника Knight!!! )
там крохотный стартовый загрузчик SAV и огроменный OVL файл )))
Штука именно этого варианта игры в честности, так как в сущ. образе сборника "ИГРУШКА-1" он ломанный (бессмертие). Но пока ограничиваюсь играми вписывающимися в ограничения ;-)
- - - Добавлено - - -
Ну вот так наверное опрятней ;-)
http://archive.pdp-11.org.ru/EMULATORS/UKNCBTL_HDD/Sav2Cart/
В общем нужен будет упаковщик на C/C++, и распаковщик на MACRO11.
Если есть что-то на примете -- скажите.
Могу сесть и написать что-то простое типа RLE, но реализовывать сейчас LZ77 или что-то подобное -- сил нету.
Неужели картридж с 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
- - - Добавлено - - -
Хорошо бы запихать в картридж образ той системы, которая загружается с диска - жуткая экономия времени :)
Может быть список игр, успешно опробованных в формате картриджа, тоже выделим в отдельную тему? ??? или снова юмор?
Хорошо бы запихать в картридж образ той системы, которая загружается с диска - жуткая экономия времени такое возможно только при использовании "Электронного диска" и практиковалось на живых
машинках, но система первоначально должна стартовать с реального носителя (дискеты), а уже потом процедурно переносится на ЭД, для ускорения работы RT-11 и уменьшения износа дискет и дисковода так же использовался
драйвер "квази диска" или "виртуал мемори" - такое же частично решение применяли на БК-11 в одной из версий
ОС БК по умолчанию, ИМХО: это всё погоня за призраками, дисковая система - не случайно дисковой называется )))
- - - Добавлено - - -
жуткая экономия времени
странно такое читать от спектрум-пользователя где загрузка даже малюсенькой программы длится несколько минут,
RT-11 достаточно шустрая система, время загрузки меньше 2 минут, какие проблемы то?
MacBuster
07.07.2016, 20:47
загрузка даже малюсенькой программы длится несколько минут
Не пора выздоравливать? Я пользовался спектрумом последний раз лет 20 назад, но ещё помню что там загрузка программы на всю память в 128к занимала секунд 20-30.
в 128к занимала секунд 20-30.
Игра? С кассеты? 20-30 секунд? или мы о разных вещах говорим?
Ребят, вы куда-то ушли от темы.
Если кому-то ещё интересно, 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
В аттаче третья версия утилиты -- добавил кодер/декодер RLE.
Да, сжимает не очень хорошо. Зато я с ним разобрался за обозримое время.
RLE кодирование выбирается автоматически, если выбранный SAV-файл размером больше 24576 байт.
MacBuster
03.08.2016, 07:08
В аттаче третья версия утилиты -- добавил кодер/декодер RLE.
Здорово, большое спасибо!
- - - Добавлено - - -
Попытавшись сжать swap.sys получил неожиданный эффект:
http://s017.radikal.ru/i440/1608/0e/9ccb2a053377.png
С остальными файлами проблем не возникло.
Попытавшись сжать swap.sys получил неожиданный эффект: Похоже, он из одних нулей. Вероятно он из-под системы, в которой установлено SET USR NOSWAP, SET EXIT NOSWAP, и поэтому никто не свопится.
MacBuster
03.08.2016, 21:42
Похоже, он из одних нулей.
Нет, там внутри есть какой-то мусор. Но это определенно не .sys и не .sav.
Попытавшись сжать 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 написан бред. Из бреда получился бред. По идее, нужно поставить дополнительные проверки на некорректные входные данные.
третья версия утилиты
Нет, в картридже не хочет играть.
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
Нельзя ли к эмулятору добавить ключик для автоматического запуска программы из картриджа? С диска-то система автоматически загружается, а вот с картриджа пока нет.
Нельзя ли к эмулятору добавить ключик для автоматического запуска программы из картриджа? С диска-то система автоматически загружается, а вот с картриджа пока нет.
Да, ключи командной строки -- это правильно, буду развивать.
Кстати, если кто не знает, опция командной строки "/boot" приводит к автозапуску эмулятора и автоматической загрузке с диска.
http://zx-pk.ru/threads/15297-korvet-zagruzka-iz-vneshnego-pzu.html?p=917166&viewfull=1#post917166
- вопрос похожего устройства для УК-НЦ ? А именно :
1. Возможность создания
2. Схема работы - конкретно манипуляции со стороны пользователя
3. Целесообразность
Интересно мнение всех кто сочтёт нужным высказать
Спасибо.
Для утилиты 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
Для утилиты 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
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot