Просмотр полной версии : Вектор-06Ц: Средства разработки
В картотеку выложено средство разработки программ "Драйверы устройств" (http://www.sensi.org/~svo/scalar/ware/575/), которое представляет собой пакет подпрограмм, выполняющих определенные функции, такие, как запись и чтение данных с магнитной ленты, работа с экраном дисплея, программирование цвета и музыки, ввод информации с клавиатуры и т.д.
В Вектор-USER №8 данный пакет был окрещен, как "некое окно для дураков в мир ВЕКТОРА", но тем не менее с его помощью были написаны первые, ставшие уже классическими, игры Тетрис, Xonix, Штурм, Полет, Йети и многие другие.
Скомпилил тест, добавил скриншоты. Менеджер памяти VV - "рулит" :)
А также Basic, Тест устройств и некоторые другие прикладные и системые программы.
В картотеку добавлены все имеющиеся версии ФОРТ http://www.sensi.org/~svo/scalar/ware/34/
Добавлено через 6 минут
Turbo Pascal System v3.02a (Z80 Only!) http://sensi.org/~svo/scalar/ware/685
Добавлено через 7 минут
К компилятору ЛС-Паскаль добавлен еще один вариант документации в формате ROM http://sensi.org/~svo/scalar/ware/97/
Добавлено через 1 час 1 минуту
Pascal-80 http://sensi.org/~svo/scalar/ware/686
Добавлено через 2 часа 18 минут
Спрайтовая мультипликация для BASIC 2.5 - BASS (http://sensi.org/~svo/scalar/ware/687/)
Добавлено через 3 часа 36 минут
Дисковый бейсик в1.1 (CPM7991) http://sensi.org/~svo/scalar/ware/688
Добавлено через 4 часа 50 минут
Дисковая (RDS) версия "Бейсик v2.5" http://sensi.org/~svo/scalar/ware/689/
В Вектор-USER №8 данный пакет был окрещен, как "некое окно для дураков в мир ВЕКТОРА", но тем не менее с его помощью были написаны первые, ставшие уже классическими, игры Тетрис, Xonix, Штурм, Полет, Йети и многие другие.
Что касается игр, то в основном с помощью ДУ рисовались заставки и меню. В самом игровом процессе могли, максимум, использоваться функции ввода с клавиатуры и проигрывания музыки, скорость графического вывода в ДУ была явно недостаточной - да, собственно, там даже не было человеческой поддержки спрайтов, только PUT/GET со скоростью как в Basiс 2.5.
Вообще, непонятно, почему драйвера устройств не входили в стандартный комплект поставки. Мне в свое время удалось их "выдрать" из какой-то прикладной программы, но без описалова толку все равно было мало.
да, непонятно почему в стандартной документации карту портов В/В зажо*ли, без нее всеравно как без рук, только в бейсике и програмировал.
да, непонятно почему в стандартной документации карту портов В/В зажо*ли, без нее всеравно как без рук, только в бейсике и програмировал.
Эту ошибку попытались частично исправить в документации к "Вектор-06Ц.02" http://www.sensi.org/~svo/scalar/ware/578/ Техническое описание из "Вектор-USER" было в свое время настоящим откровением в этом плане, но все равно ассемблер на голову не надевался, т.к. вопросов было больше чем ответов, пришлось паскаль учить.
Графические и музыкальные драйвера с исходниками и демками (30 штук).
Представляет интерес для программистов на Векторе.
http://sensi.org/~svo/scalar/ware/692/
Добавил в картотеку библиотеку для профессионального написания прикладных программ для компьютера ВЕКТОР-06ц
PPCLIB-Professional 3.0 (http://www.sensi.org/~svo/scalar/ware/829/)
Да, всё это на дискетах есть, которые не читаются.Обстоятельства пока не позволяют унести комп на восстановление.Жду когда привезут, тогда и унесу
Добавил в картотеку Средство разработки ПО ATAS (альтернатива ассемблеру) (http://www.sensi.org/~svo/scalar/ware/834/)
Добавил в картотеку пакет перемещаемых процедур GRAF16 (http://www.sensi.org/~svo/scalar/ware/845/) (аналогичный по возможностям "Драйверам устройств") от группы разработчиков "Центр ТЕНЬ" (http://www.sensi.org/~svo/scalar/author/167/) с простой демкой.
http://sensi.org/~svo/scalar/media/s/GRAF16_1.png http://sensi.org/~svo/scalar/media/s/GRAF16_2.png
Вспомнил с детства мучавший меня вопрос - а как на "Векторе" делались игры размером в 32+ килобайт? Насколько я помню, монитор-отладчик + ассемблер не оставляли столько свободной памяти - особенно, если загружать монитор ниже видеоОЗУ, чтобы при отладке игра его не затерла.
Да и в альтернативной IDE (забыл, к сожалению, как она называлась) не сильно больше свободной памяти было.
Или у разработчиков таких игр гарантированно были дисковод и/или квазидиск?
Вспомнил с детства мучавший меня вопрос - а как на "Векторе" делались игры размером в 32+ килобайт? Насколько я помню, монитор-отладчик + ассемблер не оставляли столько свободной памяти - особенно, если загружать монитор ниже видеоОЗУ, чтобы при отладке игра его не затерла.
Да и в альтернативной IDE (забыл, к сожалению, как она называлась) не сильно больше свободной памяти было.
Или у разработчиков таких игр гарантированно были дисковод и/или квазидиск?
Используя магнитофон можно было только на Бейсике что то писать.
Используя магнитофон можно было только на Бейсике что то писать.
И еще на ЛС-Паскале (http://www.sensi.org/~svo/scalar/ware/97/). У меня был такой опыт - написал одну игрушку и даже продал ее "Центру Компьютер" (Кишинев). Альтернативы тогда не было, пришлось с магнитофоном возиться.
Используя магнитофон можно было только на Бейсике что то писать.
Ну, на самом деле, я помню изврат собственного изобретения в виде припасенных на кассете "объектных модулей" с процедурами вывода спрайтов, обработки прерываний и т.п., а также "ресурсных файлов" с собственно спрайтами и шрифтом. Карта адресов всего этого счастья тщательно велась в тетрадке - эдакая линковка в ручном режиме.
Таким образом, игровую логику можно было компилировать и отлаживать отдельно, а потом уже собирать все вместе с помощью серии подгрузок .MON файлов.
Но это все могло работать только для небольших в смысле занимаемой памяти игрушек, до 20 КБайт.
sergey2b
02.05.2012, 02:30
И еще на ЛС-Паскале. У меня был такой опыт - написал одну игрушку и даже продал ее "Центру Компьютер" (Кишинев).
если не секрет а сколько они платили за программы ?
почему народ не использовал ROM диск для компиляции больших программ
ведь туда было реально разместить библиотеки и программатор для РФ не сложный
если не секрет а сколько они платили за программы ?
Комп тогда стоил 750 рублей, программу взяли за 400 или 450. Считай, больше половины отбил ))
camister
02.05.2012, 22:27
Тимоха, а что это за программа? В картотеке есть?
Тимоха, а что это за программа? В картотеке есть?
Есть. Надо отметить, что это был мой первый подобный опыт, так что ... :rolleyes:
http://www.sensi.org/~svo/scalar/ware/413 - эту не взяли, сказали доделать
http://www.sensi.org/~svo/scalar/ware/414 - вот эту взяли
http://www.sensi.org/~svo/scalar/ware/415 - мелкие доработки
У меня даже исходники остались, удалось оцифровать, как нибудь выложу.
Очередная находка! Дисковая версия бейсика, адаптированная с "Корвета"
http://www.sensi.org/~svo/scalar/ware/854/
http://sensi.org/~svo/scalar/media/s/KORVDISK1.png
Ни у кого не завалялись случайно L80.COM, MAS.COM и GDBM.COM? В картотеке я их не нашел.
shapipovo
11.05.2012, 07:43
Все файлы и языки есть в эмуляторе Юниор
Error404
16.05.2012, 13:02
Ни у кого не завалялись случайно L80.COM, MAS.COM и GDBM.COM? В картотеке я их не нашел.
Что такое GDBM.COM?
Что такое GDBM.COM?
Преобразует файл данных в ассемблерный текст типа:
DB 255,0,235,255,130,0,1,255,147,0,255,0,235,248,251, 11
Немного про кросс-тулы, когда становится тесно жить в одном окне Прекрасного ассемблера (http://sensi.org/~svo/i8080/).
Для кросс-компиляции C на 8080 теоретически можно пользоваться Small-C. Здесь на страничке собраны разные версии:
http://www.cpm.z80.de/small_c.html
Самая нижняя, "Small C For Linux", собирается в 32-битном режиме (надо добавить -m32 в CFLAGS в Makefile, если линукс 64-битный). Это, похоже, единственный доступный кросс-Си для 8080. У него есть несколько проблем:
- это совсем Small C, даже без поддержки структур
- он генерирует только ассемблерный код, который понимает некий RMAC. RMAC-а в кросс-версии я найти не смог.
- код, который он порождает, шокирует своей похабностью.
BDS C значительно более Си, но он не очень кросс-компилятор. Можно запускать его в SIMH из командной строки, заготавливая предварительно файл-задачу. Proof of concept:
http://sensi.org/~svo/i8080/c
В браузере, наверное, так много не попишешь. Но локально вполне можно склеить Makefile, который будет все это делать прозрачно из нескольких исходных файлов.
Свежий кросс-ассемблер для 8080, собирается под юниксами:
http://asm8080.sourceforge.net/
Только успел пока собрать, выглядит хорошо.
rmac - это макро от DigitalResearch
RMAC, a relocatable macro assembler, assembles .ASM files of into .REL files that you can link to create .COM files.
он есть, есть даже его dasm от некого товарища из инета
esl, спасибо. К сожалению, это не совсем подходит в категорию кросс-тулов.
Я успел разочароваться в asm8080 и просто сделал командлайновый прекрасный ассемблер с инклудами.
У меня есть m80 и l80m, работающие в досовском окне под эмулем 22nice
Где скачал, уже не помню, но могу выложить сюда (просто сейчас не под рукой).
На самом деле, m80 и l80.com скомпилены как MS-DOS приложения, запускающие 22nce эмулятор с передачей ему командной строки, а настоящие m80 и l80 имеют расширение .cpm и грузятся уже эмулятором. Выглядит это как-будто действительно m80 и l80 - настоящие MS-DOS программки.
В принципе, таким-же образом можно запустить любой компилятор C.
22nice можно взять здесь http://www.gaby.de/edownl.htm (см. 22nce132.zip в конце страницы)
Выкладываю архив со средствами разработки для Вектора.
Очень надеюсь, что это кому-нибудь пригодится на практике, а не просто осядет в Базисе.
Структура архива - простая:
/include - .inc файлы для m80 и .h файлы для Supersoft C, необходимые для перекомпиляции
Компилятор не выкладываю (Maranatha Software Systems существует до сих пор)
/lib - библиотеки в .rel - формате, необходимые при линковке сишных прог. wios.rel - если используется оконный интерфейс в МикроДОСе и graph.rel - для графики в МикроДОСе.
/src - содержит исходники всех утилит в каталоге /bin
/src/fonts - редактор шрифтов для BASIC-Disk 2.5, заготовки шрифтов и submit-файлы для генерации шрифтов. Готовые шрифты не выкладываю, их можно взять с диска ROBOTZ.
/bin содержит скомпилённые файлы для МикроДОСа (и совсем немножко для MS-DOS, в частности - registry файл с Векторовской кодировкой для FAR Manager ). Детально:
sub.com - submit для МикроДОСа
make.com - простенький генератор .sub файлов для компилятора SuperSoft C
scr2bin.com - утилита для конвертауции файлов графического редактора Карандаш в 32Kib raw формат VideoRAM
2dsci.com - утилита для просмотра выхода с scr2bin.com и печати на принтере Электроника MC-6312
grab.com - утилита-грабилка изображений из 32Kib raw Video-RAM формата в заготовки для спрайтов разных типов. inc/sprite.inc содержит описание форматов спрайтов, a inc/hdrspt.inc - sprite header форматы и их мнемоническую идентификацию. Например:
SF_BTP EQU 3 ; Byte-through-plane
gas.com - утилита, превращающая 2 изображения формата SF_WBC в изображение формата SF_ABC с альфа-каналом и размножающая полученное до 8 по фазам.
sptx8.com - утилита, размножающая изображения типа SF_BTP (Byte-Through-Plane) до 8 по фазам.
setpal.com - утилита, меняющая 16 байт палитры в любой программе
pen4.pal - файл с палитрой из ROBOTZ! для Карандаша
pen4.com - Карандаш с палитрой pen4.pal
grid88.scr - просто сетка координатная
invert.com - инвертилка файлов
Очень надеюсь, что это кому-нибудь пригодится на практике, а не просто осядет в Базисе.
В картотеку, как минимум, осело (http://www.sensi.org/~svo/scalar/ware/892)...
PPC, огромное Вам спасибо, за проделанную работу, а так же за то, что продолжаете развивать платформу. Спасибо.
Я тоже внесу скромную лепту. Проапдейтил Прекрасный ассемблер (http://sensi.org/~svo/i8080/): исправил несколько багов, чуть доработал интерфейс, сделал динамическую подсветку используемых регистров.
чуть доработал интерфейс, сделал динамическую подсветку используемых регистров.
Memory Dump шикарен!
Ещё бы syntax highliting команд CPU замутить... :smile:
Memory Dump шикарен!
Ещё бы syntax highliting команд CPU замутить... :smile:
Спасибо! А что подсвечивать в командах? Я исходил из того, что наводя мышой на регистры полезно видеть где поблизости они меняются, по меткам удобно прыгать туда, где они используются и т.д. Еще если навестись, например, на xchg, подсветсятся все d,e,h,l вокруг (это может быть не полностью доделано для всех инструкций). Сами инструкции ничего не стоит рисовать другим цветом, но, по-моему, это только усилит пестроту и осложнит восприятие.
Что мне хотелось бы сделать -- это автоматический подсчет тактов, но пока отвлекают другие занятия.
- Кстати, для оффлайнового редактирования я пользуюсь http://www.sublimetext.com/ -- могу попозже выложить для него схему синтаксиса для 8080.
Выкладывай конечно !
я тоже на нем давно сижу
даже вот баг нашел, он гад не ищет в файлах (find in file) если там есть коды <20h
Держи: http://pastebin.com/AATFjnWV
Еще дополнительно, на вкус, в Settings specific - User:
{
"extensions":
[
"inc",
"asm"
],
"font_face": "Glass TTY VT220",
"font_size": 18,
"translateTabsToSpaces": true
}
Спасибо! А что подсвечивать в командах? ...Сами инструкции ничего не стоит рисовать другим цветом, но, по-моему, это только усилит пестроту и осложнит восприятие.
Подсвечивать мнемоники команд цветом, отличным от операторов выделения памяти типа DB, DW, DS. Смысл таком подсвечивании (если и есть), с моей точки зрения в следующем:
Часто приходится писать следующий код:
lblOp: DB (lxi b)
lblDta: DW 0
Ссылаться на lblDta удобнее, чем на lblOp+1, и при переходе на многомодульные компиляции, lblDta легко экспортировать. К сожалению, мнемоники немного теряются, когда такого кода становится много. А его, в конце концов становится ;-). Если мнемоники подсвечены, код IMHO читать полегче. Хотя, я и сам минималист и не очень люблю пестроту.
Что мне хотелось бы сделать -- это автоматический подсчет тактов, но пока отвлекают другие занятия.
Круто бы было замутить pre-profiler как отдельное CP/M приложение и опционально с учётом Векторовских wait-states. Скармливаем ему asm, получаем - листинг с CPU-циклами и просчётом потерь от вэйт-стэйтов. Работа не такая тривиальная, если используются конструкции как выше и макросы типа REPT / EndM
Ч
- Кстати, для оффлайнового редактирования я пользуюсь http://www.sublimetext.com/
А я - Crimson Editor: http://www.crimsoneditor.com/. В нём можно проекты создавать и подключать внешние тулы для компиляции проекта.
Приаттачиваю мои настройки синтаксиса для него
Почти IDE получается. Хотя грешен, часто просто в МикроДОСе пользую wm.com (margo). Там не всё так страшно, даже поиск паттерна, дело привычки. Так что может подсветка и от лукавого.
Удивительные бывают открытия. Порылся у себя в закромах, и нашёл исходники ISA Sprite Editor, т.е. вот это: http://sensi.org/~svo/scalar/ware/661/
Причём, они даже компилятся и линкуются в готовую прогу, правда в КОИ-7 из-за того, что так работает m80, сбрасывая у всех data declarations старший бит. Похоже, что m80 мы захакали когда-то, и он у нас работал в КОИ-8, но как мы его захакали сейчас уже и не вспомнить. Тогда каждый день что-то правили то в Суперкалке, то в Вордстаре. В любом случае, выкладываю исходники. Я только файл для сборки make.sub приделал. Ещё из интересного нашёл переделку моей 2dsci.mac (см. выше), но c для принтера D100. У Серёги, получается был такой принтер. Глядишь, так я нарою и исходники нашего БИОСа. Где-то они были.
Две программки, прямо со сковородки. Обе с исходниками.
1. IDC.COM - Image Data Converter
Конвертирует Windows или OS/2 bitmap размером от 1x1 до 256x256 пикселов в формат несжатой Векторовской видеопамяти. Входной .BMP файл должен иметь 4 бита на пиксел без RLE компрессии. Выходной файл всегда будет иметь размер 32K и может быть просмотрен утилитами 2DSCI.COM, GRAB.COM (см. пост выше) или SHIM.COM (см.ниже в этом посте). Изображение меньшего размера всегда выводится в левом нижнем углу. Утилита GRAB использует такой-же формат, поэтому возможно выдирать куски из полученного изображения и создавать спрайты в многочисленных форматах, которые GRAB поддерживает.
Во время конвертации, IDC.COМ также производит текстовый файл с исходным именем .BMP файла и расширением .PAL, содержащий палитру, конвертированную из 24-битового цветового пространства в Векторовскую 8-битовую палитру. Файл содержит палитру в виде кода на ассемблере вида:
DB xx
...
DB yy
и может быть немедленно использован для ассемблирования. Комментарии в файле содержат исходные цвета в .BMP картинке и рассчитанное значение яркости. Поддерживается десятичный (по умолчанию) и шестнадцатиричный (опция IDC -h1) форматы вывода палитры. Алгоритм нахождения ближайшего цвета пока довольно примитивный, поэтому возможны повторения цветов, что может быть исправлено дальнейшим редактированием .pal файла.
По умолчанию, IDC производит "зеркальное" копирование плоскостей из BMP, так, что цвет 0 соответствует плоскости 0xE000, а цвет 8 - плоскости 0x8000. Зеркальное копирование можно отменить опцией
IDC -f0
Опция IDC -vX, где X=0,1,2 задаёт объём выдаваемой информации об исходном изображении и диагностики во время конвертирования.
Процесс конвертирования достаточно долгий, и требует большого количества обращений к диску, так что лучше используйте квазидиск.
Исходники для компилятора Supersoft C прилагаются.
2. ShIm.COM - Show Image
Позволяет посмотреть картинку, сгенерённую утилитой IDC в цветах из файла палитры в 16-цветном режиме. Не портит содержимое квазидиска.
Единственное условие, цвета в файле палитры должны быть в десятичной системе счисления.
Файл палитры может содержать и больше строчек с цветами, ShIm будет использовать только первые 16. Выход из просмотра - клавиша BackSpace.
Исходники для m80 прилагаются.
О, я тоже нечто отдаленно похожее (http://sensi.org/~svo/scalar/ware/720/) делал. Там слегка устаревшая версия (вроде уровни не соотвествуют текущим версиям эмуляторов, еще какая-нибудь мелочь).
О, я тоже нечто отдаленно похожее (http://sensi.org/~svo/scalar/ware/720/) делал. Там слегка устаревшая версия (вроде уровни не соотвествуют текущим версиям эмуляторов, еще какая-нибудь мелочь).
А я даже немножко пользовал SPRView.
Вот, собсно, результат прогона BMP через IDC на VV, затем-screenshot и в JPG. Не все цвета совпали, но вроде на оригинал-похоже.
Главная проблема сейчас - найти более разумный алгорим подгонки цветов. На картинке выше пара-тройка цветов совпала, потому, как алгоритм сейчас донельзя примитивный (ниже - кусок функции GenPal() из IDCLib.c)
/* BGR(8,8,8) to BGR(2,3,3) */
b = rgb->rgbBlue / 64;
g = rgb->rgbGreen / 32;
r = rgb->rgbRed / 32;
l = (rgb->rgbBlue + rgb->rgbGreen + rgb->rgbRed) / 3;
color[i] = (b << 6) + (g << 3) + r;
Сначала я тоже так делал, потом стал по евклидовой метрике искать ближайшие цвета к векторовским, вроде так все же лучше и правильнее. Причем "векторовские цвета" желательно задавать конфигом, чтобы можно было без перекомпиляции изменить. А то в VV одни цвета, в emu - другие, мне кажутся правильными третьи, да и у каждого векториста свое собственное мнение, какой д.б. палитра.
В утилите Романа кстати много вариантов, но задания палитры, к которой подгоняем, нет. Хотя у него там есть другие "регуляторы".
Погляжу, на Евклида, спасибо. В принципе, так как конвертилка у меня генерит отдельный файл с палитрой, где в комментариях стоят исходные цвета, можно написать какой-нибудь постпроцессор "уточнения палитры с опциями" перед тем как просматривать изображение.
Можно конечно и ручками, в обычном текстовом редакторе палитру править, "разводя" сдублированные цвета. Всё-же, это средство разработки, побочный эффект моей основной задачи, поделка, зробленная "на коленке" за 3 дня. В общем, покумекаю, но не очень много.
Сейчас посмотрел, у меня в последней версии (1.79) так:
На основании уровней из конфига формируем полную векторовскую палитру (256 цветов) с 8 битами на компоненту. Потом перебираю каждый цвет палитры картинки и ищу ближайший цвет в векторовской картинке по метрике
(r1-r2)*(r1-r2)+(g1-g2)*(g1-g2)+(b1-b2)*(b1-b2)
Может это тоже не лучший вариант, но он мне понравился больше, чем просто отбрасывание бит (которое, фактически, является частным случаем)
А кстати вопрос. При всех разных исходных цветах, возможны-ли совпадения конечных цветов по такой метрике или исключены?
возможны-ли совпадения конечных цветов по такой метрике или исключены
Возможны, и "слияния" идентичных (по результирующей векторовской палитре) цветов в один я не сделал, недоработка (если не просто конвертить картинки "на посмотреть", а для игрушек и т.п.).
Думается, надо делать двухпроходный алгоритм. На первом проходе исключать при поиске уже отобранные цвета, помечая совпадение, и подбирая ближайший наилучший из оставшихся, а на втором проходе - ранжировать совпавший и наилучший по luminosity. Как-то так наверное.
Слегка улучшенный, по сравнению с вариантом в картотеке (http://sensi.org/~svo/scalar/ware/694/) вариант распаковщика exomizera 2 - 37433. В качестве сомнительного бонуса на условной компиляции также варианты для ВМ1 и ВМ85 (в эмуляторах работают, на реале - не знаю).
Было бы неплохо, если бы кто-нибудь переписал их заново, вслед за b2m, лихо написавшим рапаковщик для MegaLZ (хотя и его вариант можно чуть ускорить и как min на пару байт сократить).
ivagor, ты на ВМ85 используеш недокум. команды? было бы неплохо их проверить в VV т.к. я их реализовал но практически не тестировал.
Что я заметил и что имеет независимые подтверждения:
1. Есть проблема с командой RSTV. Обнаружил на 37435. Этот тест запускал Денис Кущ на ПК-6128Ц и у него он работал. К сожалению, я не сразу добавил недокументированные команды и приложено фото не с окончательного варианта. Когда он прогонял последний вариант теста были плохие условия для фотографирования и он написал результаты текстом. В emu работает.
2. Установка флага AC в командах ANA/ANI. Здесь уже писали про это
На nedopc.org было сказано о различии в команде ANA для i8080 и i8085:
ANA/ANI : C=0, AC=1 (8085) or AC=A3|B3 (8080)
Косвенным подтверждением правильности этого являются результаты exerciserа (http://www.idb.me.uk/sunhillow/8080.html). Там есть результаты прогона на 8085 (сокращенного, к сожалению). Если исправишь ANA/ANI, то скорее всего и у тебя заработает. В emu все нормально. Обрати внимание, вариант экзорциста для 8085 урезанный, там замаскированы все недокументированные флаги, поэтому видны только отличия в установке "старых" флагов.
ANA/ANI я уже поправил, но vstvi53 1.4 виснет
разобрался, я упустил инкремент РС после выполнения команды RSTV при условии что V=0
прогнал exerciser в VV в режиме ВМ85, совпало все кроме INR M / DCR M. Принцип формирования флагов в этих командах мне найти пока неудалось :(
еще непонятно почему в ALUOP <B,C,D,E,H,L,M,A> прочерк ?
совпало все кроме INR M / DCR M
Если использовать emu в качестве эталона по установке "старых" флагов (все же exerciser для 8085 он проходит успешно), то получается, что в DCR M флаг AC нужно инвертировать по отношению к текущему варианту в VV.
непонятно почему в ALUOP <B,C,D,E,H,L,M,A> прочерк
Exerciser работает очень долго и люди не хотят его прогонять на своих компах. Вместо того, чтобы ускорить, автор просто сделал облегченный вариант без ALUOP <B,C,D,E,H,L,M,A>. Фаната, который выдержал бы прогон на своем 8085 полного варианта пока не нашлось.
Если использовать emu в качестве эталона по установке "старых" флагов (все же exerciser для 8085 он проходит успешно), то получается, что в DCR M флаг AC нужно инвертировать по отношению к текущему варианту в VV.
пробовал, выяснилось что команда DCR M вообще никак на результат не влияет, а вот INR M влияет. т.е. реально в тесте используется только INR M. так что эталон еще под вопросом...
Когда он прогонял последний вариант теста были плохие условия для фотографирования и он написал результаты текстом.
Если что - я готов исправиться. Увы, как обычно не быстро, но теперь условия найду.
---------- Post added at 17:11 ---------- Previous post was at 17:09 ----------
Фаната, который выдержал бы прогон на своем 8085 полного варианта пока не нашлось.
А сколько займет? Или на 1821 неинтересно?
пробовал, выяснилось что команда DCR M вообще никак на результат не влияет, а вот INR M влияет. т.е. реально в тесте используется только INR M.
Ramiros, даже не знаю, что написать конструктивного. DCR M в тесте используется, 100%! Проще всего проверить - когда дойдет до inr, dcr m в отладчике поставь бряк на 0D4Bh (iut, instruction under test в исходнике, 0D4B - 1й байт из 4х).
Если что - я готов исправиться.
Мне кажется, что на это не стоит тратить время, и у Дмитрия RSTV работает и у Игоря теперь заработала. Они поверили (и мне и Вам) на слово :)
А сколько займет? Или на 1821 неинтересно?
Несколько часов, точнее не скажу, может Tim0xA помнит. Можно в эмуляторе прогнать на повышенной скорости и потом пропорционально умножить время. 1821 - очень интересно, но тестировать его текущей версией exercizera - трата времени с очень маленьким КПД. Почему я так думаю:
1. Там не тестируются "новые" флаги.
2. Не тестируются недокументированные команды.
В полной версии осталась, конечно, непротестированная "жирная" группа арифметических команд. Да, интересно было бы знать результат хотя бы для "старых" флагов, но, боюсь, что второй раз на многочасовой прогон сагитировать Вас будет сложно. Это все IMHO, думаю многие со мной не согласятся.
Ramiros, даже не знаю, что написать конструктивного. DCR M в тесте используется, 100%! Проще всего проверить - когда дойдет до inr, dcr m в отладчике поставь бряк на 0D4Bh (iut, instruction under test в исходнике, 0D4B - 1й байт из 4х).
команда то может и используется, но флаги видимо неучитываются, т.к. я делал чтобы после DCR M в рег. флагов писалось 0, FF и еще разные варианты, но на результат это невлияло никак вообще.
команда то может и используется, но флаги видимо неучитываются, т.к. я делал чтобы после DCR M в рег. флагов писалось 0, FF и еще разные варианты, но на результат это невлияло никак вообще.
В каком процессоре? Пробовал так делать в ВМ80 и прогонять его вариант теста?
В каком процессоре? Пробовал так делать в ВМ80 и прогонять его вариант теста?
BM85, в ВМ80 непробовал
что второй раз на многочасовой прогон сагитировать Вас будет сложно. Это все IMHO, думаю многие со мной не согласятся.
Тут вопрос не в количестве прогонов, а к количестве подходов.
То есть если я соберу стенд с ПК6128, а потом разберу, то следующая сборка будет не скоро. Так что если что надумаете - пишите.
Так что если что надумаете - пишите.
Спасибо, если у кого-то случайно не завалялись мега-тесты для 8085, то я бы предложил прогнать на ПК6128 Exerciser для 8085 (http://www.idb.me.uk/sunhillow/files/8085EXER.COM). Эта версия будет ругаться ERROR на каждую строчку, т.к. служит для определения правильных CRC. Их нужно сфотографировать, причем, насколько помню, лучше в 2 приема, т.к. верхние строчки (одна или две) по окончанию теста не видны ("уезжают" за верхнюю границу экрана). Можно запускать не в ДОС, а, как делал Tim0xA, в Мониторе-отладчике (http://sensi.org/~svo/scalar/ware/696/) или в этой версии (http://sensi.org/~svo/scalar/ware/690/) или там еще есть разные варианты (http://sensi.org/~svo/scalar/categories/monitor/). Версии с загрузкой формата ROM могут быть удобны, если использовать для перегона COM в WAV Rom2Wav21 (http://vector06c.narod.ru/emul/Rom2Wav21.rar). Желательно перед стартом теста установить белый цвет символов - NCFF
ivagor, Задачу в работу принял, не обещаю что будет быстро, но буду стараться
dk_spb, на некоторое время я пропаду, так что заранее хочу сказать спасибо, если у Вас найдется время на прогон теста (Exercizera, по зрелому размышлению, достаточно, ерунду я убрал) на 6128. Также было бы здорово, если бы Вы отправили результаты теста автору Exercizera, мировая ретрокомпьютерная общественность будет благодарна.
команда то может и используется, но флаги видимо неучитываются, т.к. я делал чтобы после DCR M в рег. флагов писалось 0, FF и еще разные варианты, но на результат это невлияло никак вообще.
Беру свои слова обратно, это компилятор почему то игнорировал некоторые строки кода с включеной оптимизацией. выключил и все стало правильно. первый раз такие грабли вижу :confused:
Зроблено на этих выходных. Полагаю, что доведено до такого состояния, что можно и в картотеку, если Tim0xA не против.
Пакет графических утилит для конвертации Windows или OS/2 bitmap размером от 1x1 до 256x256 пикселов в формат несжатой видеопамяти компьютера Вектор-06ц в операционных системах CPM/МикроДОС.
IDC.COM - Image Data Converter
Конвертирует .BMP файл 4 бита на пиксел без RLE компрессии. Выходной файл всегда будет иметь размер 32K и может быть в дальнейшем просмотрен утилитой SHIM.COM из этого пакета.
Возможные опции:
-fN N={0,1} При N=1 переворачивает биты исходного изображения для палитр с цветом 0 в видеоплоскости 0xE000-0xFFFF. По умолчанию N=1.
CLR.COM - Color Level File Generator
Создаёт файл .clr с уровнями палитры Вектора-06ц, транслированной из BGR233 в BGR888. Файл используется утилитой APG.COM ниже
Возможные опции:
-bN N={0-255} задаёт уровень синей компоненты. По умолчагнию N=255.
-gN N={0-255} задаёт уровень зелёной компоненты. По умолчагнию N=255.
-rN N={0-255} задаёт уровень красной компоненты. По умолчагнию N=255.
-lN управляет усилением/ослаблением освещённости (luminosity gain). По умолчанию N=127
-wN N={0,1} При N=1 создаёт файл уровней белого для превращения цветного изображения в чёрно-белое. По умолчанию N=0.
APG.COM - Advanced Palette Generator
Конвертирует цветовое пространство .BMP файла из BGR888 в BGR233. Cоздаёт файл .pal с палитрой BGR233 для просмотра сконвертированной картинки на Векторе. Может использовать файл с уровнями палитры,
Возможные опции:
-dN N={0,1} При N=1 устанавливает режим отсечения битов при конвертировании BGR888 в BGR233.
В этом режиме цветовые уровни не используются, и утилита CLR.COM не нужна.
При N=0, использует цветоразностный метод поиска ближайшего цвета в палитре. По умолчанию N=0.
-rN N={0-2} Управляет модулем разведения одинаковых цветов (duplicate color resolver),
получившихся в результате конверсии палитр из цветового пространства BGR888 в BGR233.
N=0 - отключает duplicate color resolver
N=1 - использует цветоразностный метод. По умолчанию.
N=2 - использует разность уровней цветовой яркости.
При одинаковой цветовой яркости, автоматически переключается в режим N=1
Максимальное количество попыток разрешить цвета в уникальные ограничено в данной версии 16ю.
SHIM.COM - Show Image
Показывает картинку, сконвертированную утилитой IDC.COM используя палитру, сгенерированную утилитой APG.COM.
Не портит содержимое квазидиска. Файл палитры может содержать больше, чем 16 строчек с цветами, ShIm будет использовать только первые 16. Выход из просмотра - клавиша BackSpacе.
Опции, общие для всех утилит:
-vN N={0-2} - уровень выводимой диагностики при работе (verbosity).
N=0 - silent mode
N=1 - средний. По умолчанию.
N=2 - extensive
Тизер внизу. Слева - виндоза, colorspace 888. Справа - Вектор-06ц, colorspace 233. По моему, недурственно.
чёт у меня на винде не пашет конвертер
На винде? Пробовал в emu и VV. Работает (долго, лучше увеличить тактовую). Сначала получились 4 мусорные вертикальные полосы при flipe, но под t34 все стало нормально.
а как в emu его запустить?
Не буду лезть поперек автора, лучше сам PPC напишет.
а как в emu его запустить?
1. Создаем на писюке BMP файл 4BPP, без компрессии размером до 256x256 пикселов.
2. Кидаем BMP и IDC.COM на образ FDD с операционной системой в boot секторах.
3. Грузим образ FDD
4. Запускаем IDC.COM xxxx.BMP -v2
Опция -v2 позволяет следить за ходом конверсии.
Ждём. Долго. Лучше и правда поднять тактовую до 16MГц, как предложил выше ivagor. К счастью, конвертор надо запускать только один раз на картинку, весь дальнейший workflow использует CLR.COM и APG.COM.
По окончании работы IDC.COM, получаем сконвертированный xxx.BIN. Конверсию лучше производить на квазидиске. Иначе в некоторых операционных системах получается 4 полосы мусора на изображении. Возможно, это проблемы с file random access на границах экстентов/16K в самих ОС для дисковых драйвов, может ещё что-то в эмуле или библиотеках С компилятора.
Вот более новые версии всего. Запуск всех программ без параметров теперь выводит пошаговую workflow подсказку по работе с пакетом по типу:
To display BMP image on Vector-06c, do the following:
1. Use IDC utility to convert .BMP image into Vector-06c .BIN format.
2. Use CLR utility to generate colorspace component levels .CLR file.
3. Use APG (this program) to get image palette from .BMP and .CLR files.
4. Use SHIM image viewer to display .BIN image in .PAL palette.
Основные изменения коснулись APG.COM:
- Теперь APG.COM позволяет "переворачивать" цвета палитры опцией -f. (IDC переворачивает реальные биты, а APG - цвета палитры)
- Чуть изменёны алгоритмы duplicate color resolver-a и добавлена опция управления количеством попыток разрешить цвета в уникальные.
Ну и всякие косметические мелочи.
Немного дополню.
Рекомендую использовать именно emu, т.к. он гладко работает с высокими частотами. Частоту лучше установить еще выше, я указал в Vector06c.cfg main.CPUClock=96MHz
Если нет желания устанавливать плагины к FAR или TC для работы с образами дисков, можно просто распаковать файлы из архива в каталог, переписать в этот же каталог bmp, а при открытии образа (нажатием на иконку с дискетой на тулбаре) в emu сменить фильтр типа файлов на All files (*.*) и выбрать все нужные файлы. В результате на ходу создастся образ дискеты. Теперь еще нужно через правую крайнюю иконку на тулбаре (Change External ROM) выбрать файл доса, например один из ДОСов PPC (http://zx-pk.ru/showpost.php?p=377561&postcount=61), потом F2+F11, затем F12.
Рекомендую использовать опции влияющие на flip, т.е. будет такая последовательность действий
idc имя_картинки -f0
clr имя_картинки
apg имя_картинки -f1
shim имя_картинки
Также могу нескромно порекомендовать свою утилитку SPRView (http://sensi.org/~svo/scalar/ware/720/). Только там устаревшие уровни для эмуляторов, вот новые 37695. Для использования их нужно до запуска переписать в один каталог с SPRView.exe
Для примера, вот что у меня получилось
Исходная картинка, автор Андрей Пьянков
37698
Скриншот из emu с результатом работы PPCBMP 1.1
37699
Результат работы SPRView с уровнями из b2.new
37700
Результат работы SPRView с уровнями из VV.new
37701
Мне в SPRView определенно надо бы учитывать соотношение компонентов.
Спасибо за дополнения, ivagor.
duckoutPPCBMP.bmp - скриншот из emu с результатом работы PPCBMP 1.1
DUCKOUT_SPRView_VV.bmp - результат работы SPRView с уровнями из VV.new
Вот эти 2 очень похожи. Уровни SPRView, на мой взгляд, лучше подходят к цвету зелёной куртки, но что-то не то с цветом рук.
У PPCBMP цвет рук чуть ближе к истине, но блекловат цвет куртки.
ivagor, я так понимаю, Вы использовали PPCBMP с опциями по умолчанию? Мне кажется, можно попробовать чуть снизить luminosity
CLR duckout -lXXX
Скажем, со 127 по умолчанию до XXX=120
В общем всё это неплохо, но IMHO есть ещё огромное поле для улучшения результата.
PS. Заранее sorry за оффтоп ниже.
К сожалению, я уже курю мануалы музыкальных форматов типа PT2/PT3, потому как там на Векторе непаханое поле, и вряд-ли будут какие-то немедленные изменения в PPCBMP. Ну только если что-то очень критичное.
C музыкой дело плохо, ох плохо. Конечно, я могу выдрать PT3 плейер из улитки svofski, но как-то это негуманно.
Вчера выдрал STM плейёр из S.E.S. polet4k.com. Только в качестве ознакомления. Я в музыке полный профан, а код трекера, исходники которого мне привёз когда-то Витя Саттаров уж больно ветвист.
Но самое страшное не это. Я не могу найти вообще нигде каких угодно утилит для создания спецэффектов на PIT 8253. Это удручает до ужаса. Когда-то, в другой жизни, я натворил игралку на таймере в PPCLib. Возможно, спецэффекты придётся делать этим, но хочется что-то типа как в игре Blaster, а главное мне нужны эффекты типа metallic clang, как в фильме Terminator. Если такое вообще можно сотворить на таймере (огибающая может быть слишком плавна из-за IRQ раз в 20ms).
Видимо, надо сделать отдельную тему "про музыку". Вчера почти решился, но остановило то, что чтобы получить ответы, надо знать что спрашивать. Пока читаю сырки С.Бульбы.
что-то не то с цветом рук.
Да, с руками и лицом. Как уже выше написал, мне надо бы учитывать соотношение компонентов.
огромное поле для улучшения результата.
Это точно.
выдрать PT3 плейер из улитки svofski
У него там точно PT3, а не PT2? PT3 я запускал на "векторе с z80", но за переписывание плеера под ВМ80 так и не взялся.
Я не могу найти вообще нигде каких угодно утилит для создания спецэффектов на PIT 8253.
Вроде бы был некий редактор SESа для этого, но как он называется я не помню. Может что-то путаю.
Не совсем то, но может пригодится - альфа версия эмулятора AY на ВИ53 и бипере (http://sensi.org/~svo/scalar/ware/788/)
У него там точно PT3, а не PT2? PT3 я запускал на "векторе с z80", но за переписывание плеера под ВМ80 так и не взялся.
Я толком не смотрел, понял только что что-то PT-образное. Похоже, придётся писать библиотеки поддержки хотя-бы самых распространённых музыкальных форматов. Возможно, svofski проделал какую-то работу с трекерами для Вектора, ведь как-то он этот PT2/3 выбрал из сонма музыкальных форматов. Вероятно, были прикидки, тесты быстродействия (точнее нагрузки на проц) и т.п.
В моём случае, это всё ещё усугубляется тем, что планируется музыку хранить на квазидиске. В ROBOTZ такая идеология: освободить как можно больше места под сегмент(ы в будущем) кода и уже есть некое RAM banking API для доступа к данным на квазидиске. Все спрайты, PCM sound с песней и прочее уже там, а в банк номер 0 - основное ОЗУ Вектора - для кода и дескрипторов памяти аллокированых в heap и ссылающихся на банки квазидиска. Это уже всё сделано. Мудрёно, но тому есть причины.
Вроде бы был некий редактор SESа для этого, но как он называется я не помню. Может что-то путаю.
Не совсем то, но может пригодится - альфа версия эмулятора AY на ВИ53 и бипере (http://sensi.org/~svo/scalar/ware/788/)
Спасибо. Эх, найти-б редактор SESa, ну или как там ... "глухаря, аль куропатку, аль ещё чего-нибудь" :-)
Похоже вот он (http://sensi.org/~svo/scalar/ware/196/), но не представляю, как им пользоваться. Скорее всего это не совсем то, что нужно для редактирования эффектов на ВИ53.
Похоже вот он (http://sensi.org/~svo/scalar/ware/196/), но не представляю, как им пользоваться. Скорее всего это не совсем то, что нужно для редактирования эффектов на ВИ53.
Пасиб. Выглядит как пульт управления АЭС :eek:. Гляну на выходных, у нас уже ночь-полночь.
Вот исходники плееров PTx(2/3), STP/STM, SQT, которые я адаптировал для Вектора+Z80 и которые используются у меня в эмуляторе для воспроизведения музыки:
Ради интереса прогнал DUCKOUT через PPCBMP на VV ver. 6.55
Все настройки PPCBMP были по умолчанию.
Получается вроде наиболее похоже на оригинал. Понятно, что прогонять можно на любом эмуле с одним-и тем-же результатом, но цвета на мониторе в VV и emu чуть разнятся. Вроде как emu слегка подсинивает по сравнению с VV.
Emu от 12.08.21
RG:0 50 92 127 159 191 223 255
B:0 127 191 255
VV 6.55
RG:0 38 75 113 142 180 217 255
B:0 88 167 255
Вроде как emu слегка подсинивает по сравнению с VV.
Можно в конфиге задать градации. Вот любимые числа ivagor-а :) :
vid : V06c-Video {
mem=mem1[8000]
scroll=sys.portA
control=sys.portB
ruslat=sys.portC[3]
color.level.blue="0 72 144 216"
color.level.green="0 36 72 108 144 180 216 252"
color.level.red="0 36 72 108 144 180 216 252"
}
Ясно. В emu первая градация синего сразу половина максимального уровня, в то время как в VV диапазон поделен равномерно. Я не знаю, как там на труъ, но PPCBMP писал из таких-же соображений как и Ramiros в VV.
Чтобы правильно отображать палитры в emu, нужно при генерации 888->233 учитывать эту особенность. Это-специальный режим в CLR.COM нужен, иначе цвета "поползут"
---------- Post added at 07:09 ---------- Previous post was at 07:00 ----------
Можно в конфиге задать градации.
Здорово! Тогда-вообще никаких проблем.
Числа ivagora звучит почти как числа Пифагора ;-)
Помучал SPRView и выдавил из него следующее:
С уровнями и весовыми коэффициентами оценки для EMU
37712
С уровнями и весовыми коэффициентами оценки для VV
37713
Судя по результату для EMU нужно думать дальше.
В emu первая градация синего сразу половина максимального уровня
Исходил из того, что синий цвет обладает слабой интенсивностью. Чисто синий со значением <127 мне показался очень тёмным.
Судя по результату для EMU нужно думать дальше.
Чё тут думать, давайте уже определимся с "правильными" градациями.
Чисто синий со значением <127 мне показался очень тёмным.
Это имеет смысл. С другой стороны, равномерно распределённые уровни компонент легче "просчитывать" программно (дельта между соседями). У Вас получился как-бэ "порог синего". В этом ничего плохого нет, но чаще всего задают пороги чёрного (т.н. "knee points" - это места излома линейных функций в сторону "чернее чёрного" и "белее белого"), а не отдельных цветовых компонент.
Чё тут думать, давайте уже определимся с "правильными" градациями.
Мне кажется, что даже померив уровни отдельных компонент на реальном видеовыходе с Вектора, и проэмулировав это, мы не получим правильные цвета. Проблема здесь в том, что необходима калибровка уровней DAC реальной видеокарты + панели/монитора конкретной машины на которой пашет эмулятор. Скажем, у меня на десктопе в VV цвета 1 и 8 почти неотличимы от чёрного, в то время как в такой-же конфигурации на лэптопе их прекрасно видно.
Осмелюсь предложить на обсуждение следующую схему для эмуляторов:
- Конфигурируемый параметр уровень чёрного (black knee point). Изначально установлен в DAC level (0,0,0)
- Конфигурируемый параметр уровень белого (white knee point)
Изначально установлен в DAC level (255,255,255)
- Диапазон между knee points изначально равномерно поделен на 4 (B) и 8 (R,G) уровней яркости, образуя коллинеарные линейные функции усиления.
- 3 отдельных парамера для сдвига яркости каждой компоненты изменяют цветовую температуру добавлением к black knee point компоненты.
Предлагаю использовать только линейные функции, мы не Adobe Color Correction делаем.
А вообще, всё это от лукавого. Короткая байка, да простят и поймут меня модераторы за оффтоп. Лет 12 назад довелось мне работать с командой очень неплохих ребят. Писали мы на плюсях, в стиле generic metaprogramming, все имели уже немалый опыт за плечами. И вот, как-то мы решили, что нам нужен coding standard. Потому что вроде это модно, и все об этом говорят, и ваапщее.
Стали собираться и обсуждать как писать параметры, нужны-ли комментарии, или это извинения программиста за невозможность выразить вещи простым кодом, где ставить запятые и двоеточия, чем camelCase лучше. Все мы были ещё сравнительно не стары, уверены в своей единственной правоте, безапелляционности и непогрешимости. Дальше в лес-больше дров. Производительность нашего труда упала до плинтуса, дошло до ненормативной английской лексики и хватания за грудки. Один очень мудрый чел, наш менеджер по совместительству, посмотрев на это некоторое время, резюмировал: никаких стандартов. Был издан указ, запрещающий в нашей crew употребление слова "стандарт", или ссылки на таковое применительно к восприятию или написанию кода. Мы опять занялись делом, оставив право определять "правильные" градации каждому по своему вкусу.
Мы опять занялись делом, оставив право определять "правильные" градации каждому по своему вкусу.
Примерно из таких-же побуждений я и добавил возможность задавать градации в конфиге. Только об этом мало кто знает :)
Примерно из таких-же побуждений я и добавил возможность задавать градации в конфиге. Только об этом мало кто знает :)
а твои конфиги - вообще одна сплошная черная магия, без описания ...
;)
а твои конфиги - вообще одна сплошная черная магия, без описания ...
;)
Волдеморт Волдемортович отдыхает :)
Допилил SPRView до нормального состояния. Теперь он вот что выдает:
для EMU
37722
для VV
37723
Осталось дождаться возможной унификации палитр в эмуляторах, еще немного потестировать и, возможно, добавить выбор опций конверсии, хотя и на автомате теперь неплохо.
Унификация палитр, похоже, откладывается до светлого будущего, поэтому выкладываю доработанный 37786 как есть.
ivagor, СПАСИБО!!)
тличная прога!
вот кой какие наброски окна сделал - мот кто заинтересуетя проба (http://narod.ru/disk/63147743001.0fd2336e1ece7fc0eb6283a4c8da5687/%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%82%D 0%BE%D1%80.zip.html)
yur, если Вы сделаете кроссIDE бейсика для Вектора, то это будет здорово.
С использованием уже имеющихся программ - 38188 сейчас можно работать примерно так:
1. Запускаем конфиг вектора в EMU
2. Жмем на иконку диска A: на тулбаре, меняем фильтр на All files (*.*), выбираем файлы из каталога work
3. Теперь выбираем дос (иконка Change External ROM). Для данного применения рекомендую приложенный f51.rom или другой авторства Филиппова.
4. F2+F11; F12
5. Стартует DOS, PROBA.TXT преобразуется в BT.BAS, RUN.COM запустит BT.BAS
b2m скорее всего мог бы сделать на базе этого нечто вроде IDE, как он сделал для Ориона.
будем пробовать, но как Вы знаете - без поддержки тяжковато,
так что для ускоренного процесса мне нужна будет помощь
Можно еще так сделать - добавить в EMU.ext строчки:
cas : loader {
config="PK-6128c"
cmd[0].delay=1800
cmd[0].keymacro="CLOAD{lshift-on}22{lshift-off}{enter}"
cmd[1].delay=5000
cmd[1].keymacro="RUN{enter}"
mode=5
}
Теперь можно запускать EMU с бейсиковским cas-файлом в командной строке (набор буковок в бейсике меня прикалывает). До IDE один шаг - не хватает парсера типа BT, но под win.
Использование Бейсика 6128 почти не влияет на совместимость (со стандартным 2.5). Работает чуть быстрее и один редко используемый режим оператора PUT поломали.
Можно еще так сделать - добавить в EMU.ext строчки:
Не перестаю удивляться мощи эмулятора b2m :eek_std:
во во
b2m - где дока ?
:)
Действительно что касается популярности то не каждый новичок им сможет пользоваться,не смотря на то что эмулятор превосходнейший, с кучей возможностей
Вот тут много чего полезного можно почитать про эмулятор, но это только "видимая часть айсберга"
http://www.old-games.ru/wiki/EMU_для_пользователей
Хоть это и пустяки, но можно чуть ускорить запуск (правда за счет отказа от прикольного побуквенного набора)
cas : loader {
config="PK-6128c"
cmd[0].delay=2500
cmd[0].keymacro="{lshift-on}{lctrl-on},{lctrl-off}2{enter}"
cmd[1].delay=4000
cmd[1].keymacro="{lctrl-on}R{lctrl-off}{lshift-off}{enter}"
mode=5
}
Насчет парсера под win. Там можно было бы ввести кое-какой препроцессинг для повышения удобства. Например, можно отказаться от нумерации всех строк в исходном тексте и ставить метки (буквенно-цифровые) только на строках, куда переход. А парсер при токенизации уже все пронумерует.
Еще очень желательно табличку с токенами и, возможно, русскими символами, сделать отдельной, не зашитой в программу, чтобы можно было адаптировать для любого бейсика этой серии, в т.ч. для других компов. Или, как вариант - выкладывать вместе с исходником.
Выкладываю детокенизатор 38351 (BAS->TXT) Евгения Лугового с исходником, там есть готовая табличка (авторский вариант я не стал править, но надо бы заменить {c8} на AT), надеюсь он не против.
ну да - думаю на АТ более удобно
Спасибо, если у кого-то случайно не завалялись мега-тесты для 8085, то я бы предложил прогнать на ПК6128 Exerciser для 8085 (http://www.idb.me.uk/sunhillow/files/8085EXER.COM). Эта версия будет ругаться ERROR на каждую строчку, т.к. служит для определения правильных CRC. Их нужно сфотографировать, причем, насколько помню, лучше в 2 приема, т.к. верхние строчки (одна или две) по окончанию теста не видны ("уезжают" за верхнюю границу экрана). Можно запускать не в ДОС, а, как делал Tim0xA, в Мониторе-отладчике (http://sensi.org/~svo/scalar/ware/696/) или в этой версии (http://sensi.org/~svo/scalar/ware/690/) или там еще есть разные варианты (http://sensi.org/~svo/scalar/categories/monitor/). Версии с загрузкой формата ROM могут быть удобны, если использовать для перегона COM в WAV Rom2Wav21 (http://vector06c.narod.ru/emul/Rom2Wav21.rar). Желательно перед стартом теста установить белый цвет символов - NCFF
Лучше поздно чем никогда ;-)
Достал 6128, готов запустить exerciser. Но у меня пока только магнитофон.
Перегнал 8085EXER.COM в .wav, загрузил, но при нажатии БЛК+СБР программа не стартует - виден тот же экран с загруженными 18 блоками. Что посоветуете? В общем я сам понимаю что оно так работать не будет. Сейчас буду пробовать в мониторе-отл
---------- Post added at 23:57 ---------- Previous post was at 23:37 ----------
В общем оба монитора из первых двух ссылок ведут себя одинаково.
При попытке читать 8085exer.wav по команде -R дают ошибку чтения по адресу 0000. По команде RW пишут "поиск" и ничего.
Жду точных инструкций ;-)
так просто в 6128 его незагрузиш, вот подготовил рабочую версию, со встроеным монитором, просто грузи безовсяких мониторов.
потом как загрузится набери команду "К" и нажми [СТР] для очистки экрана;
для запуска теста набери "G100"
тест очень долгий...
Ramiros, Очень долгий это сколько? Ночь, сутки, трое суток, неделя?
Меньше суток, но ночи может нехватить :)
Начало полета.
А результаты в конце будут? Тут вроде пока только про CRC...
И может пока не поздно можно как-то регистр изменить?
про регистр я незнаю, видимо никак, ну это ерунда, главное циферки :)
результат фоткай в 2 этапа, т.к. к концу теста верхние строчки (2 или 3) уйдут за экран
вот эти вот ФОУНД:хххххххххххх и есть результат, их потом сравнивать будем уже в эмуляторах
тут вот подробней: http://www.idb.me.uk/sunhillow/8080.html
Вторая часть результата.
Если какие-то цифирьки не видны - спрашивайте (я и фоток в разных ракурсах наделал и комп пока работает).
Вот, отсутствие ошибок "перевода" не гарантирую
dad <b,d,h,sp> - 44331DEF
aluop nn - 98FAF22B
aluop <...> - 0CFD7555
<daa,cma,...> - 17CFA599
...A - 9EF4EF36
...B - B0AFBA7D
...B - D38A84E2
...C - D6B4DB23
...D - 26F7FEA2
...D - 5B56262E
...E - FC681AAE
...X - 21F03C14
...X - BB3320EF
...L - CC157A6E
...M - A1ABCA85
...SP - F1682C84
lhld nnn - 6D1EEB35
shld nnn - 2C5B71D8
lxi... - CFDFBBB3
ldax... - 30CDCCC6
mvi... - CC3F3D29
mov.. - E2C0FEB3
sta... - F6187EEB
<rlc...> - 7EA730B3
stax... - B726A433
Кроме BASIC 2.5 (http://sensi.org/~svo/scalar/ware/469/) и его дисковой версии (которая есть, например, в BASS (http://sensi.org/~svo/scalar/ware/687/)) осталось еще несколько бейсиков, оригинальные версии которых несовместимы с Z80. Например BASIC-M (http://sensi.org/~svo/scalar/ware/470/). Кроме того, в картотеке не указан автор. Попробую исправить эти недочеты.
Опять же летом 2011 пытался сравнивать производительность версий бейсика 2.5. Тестов было несколько, но больше всего версий проверил с использованием 39596. Этот тест проверяет только вычислительную скорость, зато можно найти его результаты и для других компов.
basic-М на 580ВМ80 - 163479644 тактов=54.4932 секунд
basic 2.5 на 580ВМ80 - 151734048 тактов=50.5780 секунд
basic 2.5 на 1821ВМ85 - 135410832 тактов=45.1369 секунд
basic6128 на 1821ВМ85 - 133762692 тактов=44.5876 секунд
basic48k на 1821ВМ85 - 131616012 тактов=43.8720 секунд
basic 2.6вм1 - 130264796 тактов=43.4216 секунд - финальная версия, вариант в картотеке немного медленнее
В этом сообщении (http://zx-pk.ru/showpost.php?p=205047&postcount=12) есть еще пара слов про быстродействие бейсиков. Еще вроде картинка с цифрами была здесь (http://zx-pk.ru/showpost.php?p=205028&postcount=13), но уже нет.
В версии 1.80 нечаянно поломал открытие двух форматов - исправил.
Хоть это и пустяки, но можно чуть ускорить запуск (правда за счет отказа от прикольного побуквенного набора)
cas : loader {
config="PK-6128c"
cmd[0].delay=2500
cmd[0].keymacro="{lshift-on}{lctrl-on},{lctrl-off}2{enter}"
cmd[1].delay=4000
cmd[1].keymacro="{lctrl-on}R{lctrl-off}{lshift-off}{enter}"
mode=5
}
Насчет парсера под win. Там можно было бы ввести кое-какой препроцессинг для повышения удобства. Например, можно отказаться от нумерации всех строк в исходном тексте и ставить метки (буквенно-цифровые) только на строках, куда переход. А парсер при токенизации уже все пронумерует.
Еще очень желательно табличку с токенами и, возможно, русскими символами, сделать отдельной, не зашитой в программу, чтобы можно было адаптировать для любого бейсика этой серии, в т.ч. для других компов. Или, как вариант - выкладывать вместе с исходником.
Выкладываю детокенизатор 38351 (BAS->TXT) Евгения Лугового с исходником, там есть готовая табличка (авторский вариант я не стал править, но надо бы заменить {c8} на AT), надеюсь он не против.
ну там кроме {c8} есть ещё и {d3} может это команды "cload" и "csave" ?
Последняя версия (http://files.mail.ru/45833CE464CD4AE99C21A7692302157D) этой хрени (http://asdasd.rpg.fi/~svo/scalar/ware/833/)
Последняя версия (http://files.mail.ru/45833CE464CD4AE99C21A7692302157D) этой хрени (http://asdasd.rpg.fi/~svo/scalar/ware/833/)
Стоит обновить файл в картотеке?
Обновил и название исправил на Бейсик 2.6. А ты не хотел бы чего-нибудь добавить в историю изменений, чтобы любопытные потомки смогли бы узнать чем версия 2.6 отличалась от 2.5?
Основные отличия описаны в readme.txt
Раз такое дело, может еще
это (http://files.mail.ru/0DEC7F9D808E4F41B123C70DED8C517F)
и
это (http://zx-pk.ru/showpost.php?p=570950&postcount=113) (в дополнение к имеющимся версиям (http://asdasd.rpg.fi/~svo/scalar/ware/470/), заодно и автора можно указать)
закинешь в картотеку?
По наводке PPC нагуглил интересную страничку (http://www.z80.eu/c-compiler.html) про C для CP/M
Если кого интересует "CP/M - совместимая" графика, там также есть очень интересная страничка, посвящённая GSX (http://www.z80.eu/gsx.html) - это попытка Digital Research на излёте своих дней представить унифицированный GUI для СP/M - совместимых систем. Нечто типа WinGDI для 80го проца.
Из этого потом родился GEM VDI для x86 и 68K. Я уже приводил где-то здесь на форумах эту ссылку, но просто повторюсь потому, что довольно редкая инфа. Там есть Programmers Guide и готовые примеры для 128го помидора. При некоторых усилиях GSX можно портануть и на Вектор.
GSX-80 (gsx.sys) можно забрать отсюда (http://www.cpm.z80.de/download/gsxcpm80.zip).
GSX 80 45K A copy of GSX for CP/M 2.2 or 3 that came from an Amstrad. Runs on Microbee Z80 CP/M 2.2 computer but no drivers to get graphics to screen, prints out okay though.
Программы бы под этот GSX, а без программ не так интересно
Интересно, насколько производительным был этот GSX-80 по сравнению с родными Векторовскми "драйверами устройств"?
Думаю, что по скорости должно быть примерно тоже самое как и стандартные драйвера устройств, если использовать все возможные оптимизации по выводу графики, написав свой собственный GIOS не переписывая GSX. Произодительность в основном будет зависеть от того, насколько хорошую работу проделал Digital Research c имплементацией кишок своего API. Другое дело, что это раза в 4 медленнее, чем то, что можно выжать из Вектора.
Отчего тогда заботиться этим? Дело в том, что GSX - это один шаг до GEM. Ну а GEM - это один шаг до таких вещей как Ventura Publisher и прочее и прочее. Конечно всё равно 8-битных версий всех этих вкусностей не было и в помине, и ничто не переносимо, но портируемо. Одни GUI элементы, хоть и выводились как текстовые символы, прорисовывать самому запара. ПМСМ, огромным достоинством Вектора является его программный вывод текста, с возможностью пиксельной а не знакоместовой адресации.
Безусловно, GEM не был реализован на 8-битках по той простой причине, что не на всех 8080/z80-совместимых машинах был ERAM и page mappers. 64к адресного пространства для многих платформ был стандарт. И MSX и Вектор в каком-то смысле весьма приятственны с этой точки зрения. Но и для таких платформ пришлось бы городить дополнительную прослойку типа универсального менеджера памяти с платформо-зависимой частью, если не ограничиваться MSX (домашняя платформа прямого смертельного конкурента Digital Research). IBM сразу предлагала до 640к, что по тем временам казалось огромным, непомерным объёмом адресуемой памяти. Плюс, IBM (с точки зрения Digital) не была прямым конкурентом.
Это всё так, мысли вслух. Совсем не означает, что стоит немедленно начинать писать GIOS а затем - портировать GEM на Вектор. Но прицениться можно.
PPC, вроде ты в свое время начинал делать какую-то графическую оконную среду и Tim0xA даже выкладывал исходники наработок. Честно говоря, исходниками сейчас вряд ли кто будет заниматься, а вот скриншоты, если есть, было бы интересно взглянуть. Или пару слов напиши, что планировалось сделать.
Может я все напутал, тогда извини.
PPC, вроде ты в свое время начинал делать какую-то графическую оконную среду и Tim0xA даже выкладывал исходники наработок. Честно говоря, исходниками сейчас вряд ли кто будет заниматься, а вот скриншоты, если есть, было бы интересно взглянуть. Или пару слов напиши, что планировалось сделать.
Может я все напутал, тогда извини.
ivagor, я вообще-то потрясён...я сам забыл о том, что я собирался такое делать и были намётаны какие-то поделки. Ты практически историограф :v2_dizzy_vodka2: Прикинь моё изумление. Ведь это - последнее, что я налабал для Вектора "в своё время", до того, как всё забросил. Более чем 20 лет прошло!
Код, возможно, попал к Tim0xA c архивов S.E.S, с которым я лично так и не встретился, хотя он в гости звал, оба жили в Питере. S.E.S активно писал под Вектор когда я уже всё забросил. Был небольшой период в 93м, когда мы передавали друг другу код на дискетах через знакомых.
Я порылся в закромах и таки нашёл какие-то обрывки и рабочие примеры с выводом окна. Дата в файле windows.inc (хаха) - февраль 1994 года! Вообще-то назвать это "графической средой" будет глумлением над графическими средами.
Посмотрел сейчас на исходник. До сих пор приятно его читать. Помню, что цель была превратить асм в удобное для разработчика средство. Приведу клиентскую часть кода всего приложения здесь. Это-макроассемблер для m80. Всё компилится до сих пор!
App_ver set 30H
INCLUDE PPCLIB.INC
INCLUDE WINDOWS.INC
InitWindows
DefWindow MyWin1,BPanel,5,5,21,20,LightGray
DefWindow MyWin2,BPanel,2,2,28,28,Yellow
DefWindow MyWin3,BPan3D,3,3,24,24,Green
DefWindow MyWin4,BPanel,4,4,20,20,Red
DefWindow MyWin5,BPan3D,5,5,16,16,Blue
DefWindow MyWin6,BPan3D,6,6,12,12,White
DefWindow MyWin7,BPanel,7,7,8,8,DarkGray
DefWindow MyWin8,BPan3D,8,8,4,4,Black
SetWindow MyWin1
CALL GETCH
SetWindow MyWin2
SetWindow MyWin3
SetWindow MyWin4
SetWindow MyWin5
SetWindow MyWin6
SetWindow MyWin7
SetWindow MyWin8
CALL GETCH
SetWindow MyWin7
SetWindow MyWin6
SetWindow MyWin5
SetWindow MyWin4
SetWindow MyWin3
SetWindow MyWin2
ExitWindows
END
И такая вот поделка выплёвывает 7 окон в графике на экран и тасует их like crazy. Конечно сейчас я бы смог ускорить вывод залитого прямоугольника ещё раза в 2-3, но и по тем временам совсем неплохо.
Видно, что бордюры окон рисуются спрайтами, но по "знакоместам", выровненным на границу байтов. Ну точь в точь, как в GEM :)
Что планировалось сделать - не упомню уже. Но явно видно, что есть "рабочий стол" с заливкой текстурой из файла marble.pak и окна рисуются поверх этого. Полагаю, навеяно третьими Виндами. На окнах - никаких контролов. Процедур обработки событий-никаких, message queues ещё нету. Видимо это планировалось, но сейчас уже и не упомню, как собирался делать. В текстовой оконной библиотеке wios для CP/M обошёлся без этого, в стиле трубо-вижн.
Приложу сырки. Вряд ли кто будет копаться в этом, но кто знает! Там же, в архиве - скомпилённое приложение и исходники оконной библиотеки. Всё это линкуется с PPCLib для низкоуровневых операций типа заливка плоскостей и т.п. (также, как и GEM использует VDI для вывода примитивов). Прикольно, что многие идеи - по наитию, я тогда понятия не имел о том, как делать "идеологически правильно".
А вообще мечта сделать какую-то оконную среду типа GEM для Вектора часто овладевала мной ;).
Раз пошла такая пьянка, выложу-ка я заодно и исходники wios для CP/M c примерами и картинками. Это 92 год. Навеяно прочтением книги Г.Шилдта "Язык С для профессионалов", И.В.К.-СОФТ, 1992.
Скомпилено для Supersoft C 1.2.3 (Maranatha Software Systems), но уверен, что можно перетащить на любой K&R - совместимый C компилятор для 8-биток без особых проблем. Возможно кому-нибудь оконная псевдографика, горизонтальные, вертикальные и выпадающие меню в CP/М потребуются.
Сначала скриншоты посмотрел и на wios реакция была - турбо вижн для вектора. А потом почитал - оказывается ты так и планировал :)
Подлатал чуточку Прекрасный ассемблер (http://sensi.org/~svo/i8080/) и добавил в него возможность запуска программ в эмуляторе Вектора.
Если директива .binfile указывает файл типа .rom, к нему требования такие же как к рому — должен начинаться с .org 100h. .r0m может быть с 0. Если тип файла .com, он запустится в МикроДОСе.
Исправлены чтение и запись rmb/rbr
Upd 18.10.2020: переложил на форум
ivagor, Можете поделиться своей процедурой сжатия в формат .spr? В моей во втором варианте где-то ошибка проскакивает, никак не отловлю.
Процедура сжатия не моя, к сожалению не помню автора, если найду - укажу. Но 99% что это кто-то из кировских программистов.
Классно! А я наворотил монстра и сам там запутался. :(
А никому не попадалось описание Форт-системы для Вектора? Она же была адаптирована и для Корвета, и наверняка для других подобных компов.
Для удобства выпуска Рива Рейда я вытащил процедуру превращения бинарника в WAV из Прекрасного в отдельную утилиту. Вдруг кому еще пригодится:
https://github.com/svofski/bin2wav
Для запуска нужен node.js, остальное по идее само собой должно случиться.
Поддерживает те же форматы пленок, что и Прекрасный Ассемблер: Вектор, Криста, Специалист, РК, Микроша, Партнер.
- - - Добавлено - - -
Для винды сделал exe (http://sensi.org/~svo/b/bin2wav.exe) без внешних зависимостей.
...
Для винды сделал exe (http://sensi.org/~svo/b/bin2wav.exe) без внешних зависимостей.
А что там про ехе для винды?
Хороша утилитка, файл 18М весом и не запускается, точку входа в процедуру не находит...
Только что проверил на 10-ке, все запускается. Какая винда?
Только что проверил на 10-ке, все запускается. Какая винда?
Винда ХР SP3.
файл весит 18 мб и не запускается, точку входа в процедуру не находит...
У меня на Win XP SP3 + полный апгрейд весом в дополнительные 1.5 Гб - то же самое.
Похоже Ваш компилятор использует более свежую версию какого-то DLL. Возможно удастся выкрутиться, если включать этот новый DLL в дистрибутив и заставлять пользователя Win XP подменять им старый DLL, если это получится (это не всегда получается, если DLL используется в самой Windows XP, то не выйдет). А лучше просто перетранслируйте на более ранней версии компилятора.
Я так понял, что это конверсия из звукового файла в коды. А есть программка для обратной задачи ? Это программа для двухфазной кодировки, что на большинстве отечественных рэтро компов ? Для кодировки ZX-Spectrum и MSX есть такие ?
Понятно. Пользуясь случаем напомню, что XP не поддерживается уже много лет. И дело не в том, что я ее не люблю, а в том, что все средства разработки давно уже не проверяются на XP, никакой новый софт не проверяется и не поддерживается для XP и дальше будет только хуже. Капитан Очевидность signed off.
У меня XP, увы, нет.
То, что вы видите, это в некотором роде технологический курьез. Никакой компиляции тут не происходит. Это просто скрипт, тот же самый, что в репозитории. Exe-файл это просто любезность для пользователей Виндус, потому что им обычно тяжело иметь адекватные средства разработки в силу общей кривизны системы. Кто-то подумал и сделал инструмент, с помощью которого появилась возможность завернуть весь рантайм node.js вместе с зависимостями и скриптом в исполняемый файл. Я ей и воспользовался. Но возможности взять и поставить node.js (https://nodejs.org/en/download/) и запустить скрипт по-людски, равно как и возможности воспользоваться гуглом и найти недостающие DLL, я никого не лишаю. Если у вас получится "выкрутиться", буду благодарен за отчет о том, как именно вам это удалось, потому что это может пригодиться другим.
В конвертере работает тот же код, что и в Прекрасном Ассемблере (https://svofski.github.io/pretty-8080-assembler/), где его можно испытать прямо в браузере (хотя, учитывая что мы вспоминаем в этом разговоре Windows XP, я должен сделать оговорку: в браузере в понимании 2017 года). Список форматов такой же: Вектор, Криста, Специалист, РК, Микроша, Партнер.
В обратную сторону для распознавания wav-ов с кассет я летом написал Тапир:
http://zx-pk.ru/threads/27958-tapir-analizator-wav-fajlov-dlya-vektora-kristy-86rk.html
Тапир это скорее эксперимент, чем законченный инструмент. Скачивание файлов в виде бинарника я даже не делал в нем, есть дамп. Все понимаемые им форматы на основе BPSK. Поддерживать FSK мне, честно говоря, лень, тем более, что для западных компьютеров написан миллион разных программ уже и так, а всевозможных альтернативных форматов записи у них миллиард. Вот усилить хитроумность распознавания — это что-то, чем я может быть в обозримом будущем хотел бы заняться. Но пока Тапир смог разобрать мне те записи, которые я не мог расковырять своими предыдущими экспериментами, менее удачными, поэтому не опубликованными.
Если у вас есть какие-то кассеты, которые не получается вычитать имеющимися инструментами, но которые при этом не совсем убитые и есть чутье, что будь струмент чуть половчее, было бы вот: сохраните с них оцифровку. Это может пригодится в качестве тренировочных данных на будущее.
вытащил процедуру превращения бинарника в WAV из Прекрасного в отдельную утилиту.
Для винды сделал exe без внешних зависимостей.
Хороша утилитка, файл 18М весом и не запускается
Винда ХР SP3.
:v2_dizzy_aaaaa::v2_lol::v2_dizzy_biggrin2::v2_lau gh:
Вылез из-под стола (праздничного), :v2_ny:
переписал/скомпиллировал на другом языке (был интересен формат Вектора)
1) Почему такие значения speed ? (изменил на другие, более близкие к реалам значения)
для РК - 12 (изменил на 10)
для Партнёра - 8 (изменил на 10)
для Микроши - 12 (изменил на 15)
для Специалиста - 9 (изменил на 8)
Вектор, мне кажется, нужно по-быстрее.
2) Почему для Микроши в конце после микроша-суммы дополнительно писались ещё 0xE6 и РК-сумма ? (убрал)
И вообще, во многих случаях пишутся лишние байты (нули).
Вдруг кто не знает - ROM2WAV (http://www.sensi.org/scalar/ware/556/)
DDp, спасибо! Конструктив!
Форматы там переплетаются так просто потому, что в Микроше как-то назло всему миру сделали несовместимую КС, но и положили ее не туда. Пэддинг нулями в конце это просто чтоб не обрывать звук слишком внезапно. Не все плееры уважают последние доли секунды. Константы надо бы вообще сделать настраиваемыми. Эти я взял с потолка и с полей сообщили, что мониторы-загрузчики ими остались довольны. Так что я их больше и не трогал.
Про ROM2WAV я знаю, но во-первых он меньше 18МБ, во-вторых только под винду и в третьих я не знаю можно ли запустить его без интерфейса. Я люблю написать 'make' и получить на выходе ошибку, если ошибка, или .rom и .wav, если все хорошо.
Пэддинг нулями в конце это просто чтоб не обрывать звук слишком внезапно. Не все плееры уважают последние доли секунды.
Понятно, ну тогда можно просто тишину нагенерировать.
В предыдущем моём посте обновил программу и приложил исходник.
Конечно, тишина тоже годится.
DDp, спасибо за исходник!
shuran33
09.01.2018, 13:19
А пакета программ(IDC, CLR, APG, SHIM) под 64 винду нет случайно?
Не уверен, правильно ли я понял - речь о CP/Mовских утилитах PPC для работы с картинками?
Про его утилиты он сам ответит, а я делал такой (http://zx-pk.ru/threads/9532-vektor-06ts-sredstva-razrabotki.html?p=876625&viewfull=1#post876625) просмотрщик/конвертер, он работает и под Win32 и под Win64.
shuran33
09.01.2018, 14:28
Наверное просто я не разобрался прежде чем написать. Я подумал, что IDC.com, CLR.com и тд под винду.
Я хочу сделать картинку под Вектор, используя либо эмулятор, либо виндовые проги(что было бы удобнее).
ivagor, можете посоветовать что-то?
Сделать в смысле сконвертировать из bmp или чего-то подобного? Если да, то SPRView по ссылке выше подойдет. В readme есть список поддерживаемых форматов.
Я подумал, что IDC.com, CLR.com и тд под винду.
Я хочу сделать картинку под Вектор, используя либо эмулятор, либо виндовые проги(что было бы удобнее).
ivagor, можете посоветовать что-то?
Нет, они под CP/M.
А можно небольшое пояснение, что имеется в виду под "картинкой под Вектор"? Снапшот видеопамяти, или файл с каким-нибудь конкретным форматом. На ум приходят форматы редакторов Карандаш, Draw, Rembrandt.
Если дело касается Карандаша, могу выложить малюсенькую утилитку, которая скручивает 32К файл (образ видеопамяти) в Карандашный-же .scr файл. Одна беда, утилитка тоже будет под CP/M (ээ... МикроДОС, чтобы быть точнее).
shuran33
10.01.2018, 14:19
Нет, они под CP/M.
А можно небольшое пояснение, что имеется в виду под "картинкой под Вектор"? Снапшот видеопамяти, или файл с каким-нибудь конкретным форматом. На ум приходят форматы редакторов Карандаш, Draw, Rembrandt.
Если дело касается Карандаша, могу выложить малюсенькую утилитку, которая скручивает 32К файл (образ видеопамяти) в Карандашный-же .scr файл. Одна беда, утилитка тоже будет под CP/M (ээ... МикроДОС, чтобы быть точнее).
Я имею ввиду нарисованную для компьютера Вектор, которую можно посмотреть на Векторе. Я могу и в МикроДОСе работать, но тогда куча вопросов наверное будет. А графических редакторов для Вектора не так много, думаю подберу себе какой-нибудь. Использую эмулятор VV, но не понимаю какие клавиши на клавиатуре соответствуют клавишам Вектора.
- - - Добавлено - - -
Сделать в смысле сконвертировать из bmp или чего-то подобного? Если да, то SPRView по ссылке выше подойдет. В readme есть список поддерживаемых форматов.
в ручную нарисовать, без конверсий. Либо нарисовать вручную в писишных редакторах и перевести SPRView, но тогда нужно знать размеры и доступные цвета картинки/
upd: смог получить файл в формате *.spr , подскажите как его можно посмотреть в эмуляторе?
upd: смог получить файл в формате *.spr , подскажите как его можно посмотреть в эмуляторе?
Можно так сделать:
1. Создаем папку, в которую помещаем VIEW.COM и картинки spr.
2. Качаем эмулятор Virtual Vector (http://www.sensi.org/scalar/ware/552/). Запускаем. В меню File > Drive A: > Open Folder as FDD Image... и выбираем папку из п.1
3. Кидаем (драг&дроп) в окно эмулятора подходящий дос, например mdos31.com
4. ДОС должен стартовать, появится A:>
Можно посмотреть оглавление - D и enter
Можно посмотреть картинку - VIEW, enter и дальше в просмотрщике курсором выбираем и пробелом просматриваем картинку. Выход из просмотра тоже пробел.
Использую эмулятор VV, но не понимаю какие клавиши на клавиатуре соответствуют клавишам Вектора.
Клавиши можно посмотреть и даже настроить в CPU->Options...->Keyboard.
shuran33
10.01.2018, 15:41
ivagor, огромное спасибо!
- - - Добавлено - - -
svofski, понял. Попробую!
Как вариант, вместо mdos31.com можно взять f51.rom - в просмотрщике будут русские буквы вместо латинских в заголовке списка (хотя и без этого понятно).
В качестве примера, какие картинки может показать вектор, приложил конверсии Романа Пантелеева.
shuran33
10.01.2018, 15:54
Как вариант, вместо mdos31.com можно взять f51.rom - в просмотрщике будут русские буквы вместо латинских в заголовке списка (хотя и без этого понятно).
В качестве примера, какие картинки может показать вектор, приложил конверсии Романа Пантелеева.
Смотрятся очень круто. Но сразу видно, что конверсия. Много мусора на картинках.
Если рисовать на PC, то еще важно правильно выбрать палитру.
Для соответствия палитре Virtual Vector возможные значения:
В каналах Red и Green: 0; 38; 75; 113; 142; 180; 217; 255
В канале Blue: 0; 88; 167; 255.
Можно использовать другие значения и SPRView при конверсии подтянет к ближайшим, но если придерживаться именно приведенных значений, то при конверсии или просмотре цвета не изменятся.
Но сразу видно, что конверсия
Я мало оригинального пикселинга видел на Векторе. Вот пример http://sensi.org/scalar/ware/633/
Игры Лебедева с оригинальной графикой http://sensi.org/scalar/author/13/
S.E.S. тоже много рисовал http://sensi.org/scalar/author/5/
Есть и еще конечно, но для такой графичной платформы все равно мало.
- - - Добавлено - - -
Есть еще школа мысли, которая говорит, что белый на Векторе не белый, а желтоватый.
Мы с tnt23, подключив Вектор к цветному монитору, попытались раз и навсегда для себя этот вопрос закрыть. Но не смогли, потому что на картинке из "Таблицы PAL" белый выглядит совершенно белым, а на картинке из "Тест-таблицы черно-белой" белый правда заметно желтит. Мы нашли таким образом аналог опыта Юнга, подтверждающий желтовато-сероватую природу белого во вселенной Вектора-06ц.
Вряд ли этот эффект настолько существенен, что его стоит принимать во внимание рисуя новую графику.
Я имею ввиду нарисованную для компьютера Вектор, которую можно посмотреть на Векторе. Я могу и в МикроДОСе работать, но тогда куча вопросов наверное будет. А графических редакторов для Вектора не так много, думаю подберу себе какой-нибудь.
Да, как это ни странно, самый цветной бытовой советский компьютер не очень-то и богат на графические редакторы.
Распространены практически 3 штюки:
Карандаш (самый старый): http://sensi.org/scalar/ware/583/
Draw: http://sensi.org/scalar/ware/664/
Rembrandt: http://sensi.org/scalar/ware/656/
Но это ещё пол беды. Ни один из имеющихся редакторов не позволяет рисовать без боли. В одних палитра вшита, в других - нет поворота на произвольный угол или используется не весь экран. Нет color блендеров, и много ещё чего. Всё-же, думаю, что рисовать надо в какой нить писишной проге типа фотошопа или Paint Shop Pro, а затем - конвертировать утилитами ivagora или моими поделками IDC/CLR. Только обязательно необходимо учитывать aspect ratio из-за "квадратных" пикселов Вектора, картинка должна быть перед конвертированием сжата по горизонтали. Обычно коэффициент сжатия 3/4, но некоторые лучше смотрятся при сжатии только до 85%.
На всякий случай приаттачу-ка сюда обещанную утилитку bin2scr. Она работает в МикроДОСе. На вход ей даётся 32к файл, полученный из BMP утилиткой IDC, а на выходе получается файл в формате редактора Карандаш. Компрессор там байт в байт как в Карандаше, со всеми багами. Просто я этим летом взял в руки шашки, запустил ИДУ и выдрал это дело прямо из кишок редактора. Занятно его было приделывать в консольную CP/M программу, чтобы ДОС не рушило, но всё уже позади.
Там есть чуть параметров про которые можно почитать, если запускать "bin2scr -h". Например, можно сжать только часть плоскостей, от 1й до 4х (иногда нужно для получения спрайтов) или перевернуть порядок плоскостей.
Заодно бросил в архив утилку для обратного преобразования, scr2bin.com ажно 93 года, чуть иной дисковый Карандаш, чем в картотеке, и утилку setpal.com для смены палитры этого Карандаша. Нужно создать файл pen.pal и скормить его программе setpal (пример файла прилагается). Надеюсь, это чуть облегчит нелёгкое начинание. Спрашивайте, если что.
- - - Добавлено - - -
Я мало оригинального пикселинга видел на Векторе.
svofski, а вона произведения ISA, с которым мы Bold BIOS писали. Ажно 92 года. И при этом всё попиксельно нарисовано в Карандаше. Я пока в jpeg-и законвертил. Ещё столько-же лет, и попиксельные оригиналы можно, наверное, будет выставлять на Sotheby's в раздел "первобитное искусство пейзажа эпохи векторианства". Там, среди прочего, зачатки графики к нашей игре, которую мы начали делать уже после БИОСа (или вместе с ним, не упомню). С тех пор прошло 0x1A лет.
Обычно коэффициент сжатия 3/4, но некоторые лучше смотрятся при сжатии только до 85%.
Я сторонник соотношения 5:4. Почему написал здесь (http://zx-pk.ru/threads/28632-podklyuchenie-vektora-k-fotoramke.html?p=943588&viewfull=1#post943588).
Откуда берутся 14.75 МГц (или 7.375 для низкого разрешения) пиксельклока для квадратности, можно почитать здесь (http://www.mir.com/DMG/aspect.html).
Если коротко: 13.5 МГц * 59/54=14.75 МГц
LeoN65816
12.01.2018, 14:13
ivagor, заблуждаться - не грех (как и не грех сомневаться в себе и исправляться), а вот вводить в заблуждение других - это уже не хорошо...
Дано: Вектор подключен к ЭЛТ- или ЖК-монитору, не важно. И не важно с каким DAR, хоть 4:3, хоть 5:4. Покрути на мониторе размер по горизонтали на сжатие и на растяжение. Также покрути на мониторе размер по вертикали на сжатие и на растяжение.
Вопрос №1: Размер точки (SAR или PAR) меняется? Правильно, меняется!
Вопрос №2: А пиксельклок ты менял при этом? Правильно, не менял! Как был родной 12 МГц, так и остался.
[Update on]
При DAR=4:3. А теперь покрути на мониторе размеры по вертикали и горизонтали так, чтобы по горизонтали на всю длину строки умещались все 256 точек, причем без бордюра, а по вертикали в экран влазило бы только 192 точки (строки), разумеется без бордюра.
При DAR=5:4. А теперь покрути на мониторе размеры по вертикали и горизонтали так, чтобы по горизонтали на всю длину строки умещались все 256 точек и бордюры слева и справа по 32 точки, а по вертикали в экран влазило бы 256 точек (строк), причем без бордюра.
Вопрос №3: Точки стали квадратными (то есть SAR или PAR = 1:1)? Правильно, стали!
Вопрос №4: А пиксельклок ты менял при этом? Правильно, не менял! Как был родной 12 МГц, так и остался.
Вопрос №5: Тогда причем здесь (на Векторе) "аксиоматичный" пиксельклок 14.75МГц (#165 (http://zx-pk.ru/threads/9532-vektor-06ts-sredstva-razrabotki.html?p=945128&viewfull=1#post945128))???
Вывод: для SAR(PAR) важны DAR и полезное разрешение, о чем здесь (http://www.mir.com/DMG/aspect.html) в "Definitions" и сказано.
[Update off]
вводить в заблуждение других - это уже не хорошо
Всегда придерживался и придерживаюсь этого правила. И тебе бы рекомендовал его придерживаться.
Покрути на мониторе размер по горизонтали на сжатие и на растяжение. Также покрути на мониторе размер по вертикали на сжатие и на растяжение.
У монитора или ТВ может не быть вынесенных на панель управления регулировок размера. Но это даже не важно. Важно то, что существует правильная регулировка размера изображения, для которой и приведены цифры в вышепроцитированном источнике.
Каждый отдельный человек может накрутить что угодно. Если бы, например, в руководстве было написано - "Обязательно растяните картинку до границ экрана", тогда это и было бы стандартом. Но в руководстве вектора такой фразы нет.
Тогда причем здесь (на Векторе) "аксиоматичный" пиксельклок 14.75МГц???
Откуда это взялось? Может ты не понял, то я написал?
TomaTLAB
12.01.2018, 16:21
Я вот нагло влезу в тему, но скажу за LCD. Ковыряясь и с корветом, и со своей наМГТФленной "видеокартой" заметил, что моему телеку (дешманская SUPRA) абсолютно глубоко фиолетово какой стоит кварц, совершенно плевать на пиксельклок и по барабану частота ССИ. А важно ему, категорически, их соотношение. Просто поменяв кварц, скажем, 20МГц на 24МГц (в корвете) я не увижу ровно никаких изменений на экране, если не поменяю коэффициенты пересчета сихрогенератора. Вот на ЭЛТ, я полагаю, сие сразу заметно было бы :)
Просто поменяв кварц, скажем, 20МГц на 24МГц (в корвете) я не увижу ровно никаких изменений на экране, если не поменяю коэффициенты пересчета сихрогенератора.
Конечно, ведь при этом просто изменится кадровая частота. Разницу (т.е. значение кадровой) можно увидеть в меню (если оно есть) в пункте инфо. Или если очень сильно изменить частоту и она выйдет за поддерживаемые пределы, то изображение сорвется и пропадет.
В период активных экспериментов с плисовыми платами использовал 4 (иногда 5) устройства отображения: 2 жк тв и 2 старых элт тв (их уже продал). На изменение пиксельклока (с соответствующей коррекцией параметров развертки) реагировали все.
Интересные "средства разработки" тут =)
По-моему изрядная путаница в разговоре получилась из-за привлечения термина "пиксельклок". Автор приведенной ivagor-ом статьи использует его, потому что ему удобней в его системе отсчета таким образом ссылаться на стандарт и объяснять сопутствующие ему курьезы. У Вектора пиксельклок конечно же другой. Но Вектор должен удовлетворить телевизор, попав своим видеосигналом в заданные стандартом временные промежутки. От того, когда он начинает выдавать строку, зависит сдвиг по горизонтали. От того, как быстро он закончит ее выдавать, зависит размер по горизонтали.
Если на время отложить пиксели в сторону и все пересчитать в микросекунды и там и там, сравнивать будет проще.
Я придерживаюсь точки зрения с которой пропорции и положение картинки определены временными интервалами, закреплены стандартом и должны быть выставлены по настроечной таблице, то есть ручек как бы нет. Если для правильно выставленной таблицы компьютер выдает картинку (растровую область) 4:3, значит это его AR. Если 5:4, значит его AR 5:4. К счастью, зная все параметры мы можем не искать телевизор и телевещательную станцию из прошлого, а просто воспользоваться цифрами из стандарта, цифрами из Вектора и посчитать правильное соотношение.
Я считаю, что это единственный правильный метод, потому что просто крутя ручки каждый может накрутить что угодно себе по вкусу, но нет критерия определения верности настройки.
Я придерживаюсь точки зрения с которой пропорции и положение картинки определены временными интервалами, закреплены стандартом и должны быть выставлены по настроечной таблице
Придерживаюсь такой же точки зрения.
Кроме случаев, когда параметры развертки настолько нестандартные, что без "крутилок" нормальной картинки не получается. Но к вектору это не относится.
просто воспользоваться цифрами из стандарта, цифрами из Вектора и посчитать правильное соотношение.
Ты не согласен с моим результатом?
Ты не согласен с моим результатом?
Это предложение было такой барочной формой сказать "прислушаться к мнению ivagor-а", потому что я подумал, что это было именно то, что ты сделал. Но я не пробовал вывести его самостоятельно. Мне очень лень, если честно.
LeoN65816
12.01.2018, 23:57
Вопрос №6: В моем понимании Векторовская картинка - это на телевизорах конца 80-х - начало-середина 90-х. Полагаю у подавляющего большинства из нас также. А какие телевизоры были тогда? Правильно, с DAR 4:3! (Картинки из #163 (http://zx-pk.ru/threads/9532-vektor-06ts-sredstva-razrabotki.html?p=945091&viewfull=1#post945091) выглядят "Векторовскими"? Правильно, да!)
Вопрос №7: Так какой SAR(PAR) у Вектора в стандарте (т.е. 256х256)? Правильно, 4:3! А при 512х256? Правильно, 2:3! Вспоминаем формулу "Width / Height = DAR / SAR". Считаю это совершенно очевидным, не?
Вопрос №8: Тогда для чего эта смута: #164 (http://zx-pk.ru/threads/9532-vektor-06ts-sredstva-razrabotki.html?p=945106&viewfull=1#post945106), #14 (http://zx-pk.ru/threads/28632-podklyuchenie-vektora-k-fotoramke.html?p=943588&viewfull=1#post943588), #165 (http://zx-pk.ru/threads/9532-vektor-06ts-sredstva-razrabotki.html?p=945128&viewfull=1#post945128)? :(
OrionExt
13.01.2018, 01:06
Да не было тогда телевизоров:v2_dizzy_wassup:
Трудностей с подключением не было. КР-02 отлично синхронизировался с Березкой (там еще такой барабан выбора канала) ламповый.
- - - Добавлено - - -
Как вы их тыкаете в телек, хз (уникальные экземпляры не рассматриваем), и должно видимо работать? не было у вас Березки – Ламповой:)
- - - Добавлено - - -
Я к чему за дурной головой и бордюра нет (ногам покоя нет).
- - - Добавлено - - -
А вот журналов в те годы не хватало. Чтобы хотя бы одно предложение - запулить. Так и жили. Ловили фразы где попало. И одна фраза решала вопрос – 6 месячного поиска проблемы, в один момент.
Оффтоп, но надеюсь когда-нибудь отсюда отцепят посты про соотношение сторон.
Еще один источник (http://martin.hinner.info/vga/pal.html), подтверждающий, что для квадратности пикселей на ТВ пиксельклок д.б. 14.75 МГц (при 625 строках и чересстрочной развертке) или 7.375 МГц (при 312 строках и прогрессивной развертке).
Цитата: Of course, you normally want your pixels to be as square as possible and a common pixel rate used in DVD players etc is 14.75MHz (so 7.375MHz for non-interlaced pixels).
Я всего лишь хотел сказать, что при конвертировании на Вектор абсолютно необходимо учитывать AR. :)
В общем случае, это ещё одно дополнительное преобразование, которое вносит в нарисованную на PC картинку дополнительные искажения (даже если сжатие производится используя bicubic interpolation). Наилучшие результаты получаются при выборе размера исходной картинки точно кратному размеру картинки на Векторе с учётом будущей интерполяции, но увеличенному в N раз. По крайней мере, меньше блюр и алиасинг.
Всем привет.
Есть ли какие-либо средства разработки для "Вектора", предназначенные для переноса графики с MSX? Предполагаю, что если в своё время портировали весьма много игр с MSX (большинство могло не увидеть свет из-за проблем с быстродействием, но ведь перенос был произведён), то может существовать наработанный инструментарий или, хотя бы, какие-либо, зафиксированные в виде текстов, методики. Очень вероятно, предстоит перенос графики с MSX и хочу узнать об этом побольше. Разумеется, вопрос буду изучать в любом случае, но чем больше информации и/или инструментов, тем лучше.
В SPRView (http://zx-pk.ru/threads/9532-vektor-06ts-sredstva-razrabotki.html?p=876625&viewfull=1#post876625) сделал опцию для преобразования графики, пригодную для значительной части игрушек HUDSON, чтобы было удобно редактировать. Но я не художник, подраскрасил пару игрушек, а остальные остались в исходном виде.
ИМХО, при конверсии msxных игрушек преобразование графики не главная проблема и не так сложно делать его в самой конверснутой игрушке. Так делали счетмашевцы и так делали мы с Tim0xой (кроме пары-тройки игрушек).
Графические и музыкальные драйвера с исходниками и демками (30 штук).
Представляет интерес для программистов на Векторе.
http://sensi.org/~svo/scalar/ware/692/
Скачал по ссылке (http://www.sensi.org/scalar/ware/692/). В архиве RAB.ZIP файл RAB.FDD. Запускаю в эмуляторе - как будто всё время нажимают БЛК+ВВОД. Посмотрел содержимое образа - он весь заполнен кодом 0xE5. Архив не повреждён, тест проходит нормально.
Не все так плохо. Например, первый блок E5 идет до 9FFF. Просто это не системный образ.
Рискну предположить, что это процедуры из Волгограда (Лебедев/Новиков).
Black Cat / Era CG
31.01.2018, 11:15
Посмотрел содержимое образа - он весь заполнен кодом 0xE5.
Нет. Не весь. Сейчас проверил. С 08 дорожки директория (если смотреть в Хексе - 00A000).
Рискну предположить, что это процедуры из Волгограда (Лебедев/Новиков).
Некорректно написал, уточню. Возможно часть процедур взята из программ Лебедева и Новикова.
Не все так плохо. Например, первый блок E5 идет до 9FFF. Просто это не системный образ.
Рискну предположить, что это процедуры из Волгограда (Лебедев/Новиков).
Перепроверил - точно! Как диск B подключил - всё на месте. Видимо, у меня, во время просмотра, вьюер застрял где-то, так и не показав полезную информацию. Извиняюсь за ложную тревогу :)
- - - Добавлено - - -
Есть какие-нибудь утилиты на РС для работы с образами .fdd? Создание образов, добавление-удаление-извлечение файлов...
Нашёл плагин для FAR, собственно, его достаточно. Но, может быть, есть автономные программы под Windows, как Disk-Manager для образов MSX.
Black Cat / Era CG
31.01.2018, 14:02
Есть какие-нибудь утилиты на РС для работы с образами .fdd? Создание образов, добавление-удаление-извлечение файлов...
Есть. Например та, что у меня в подписи, но с ней надо объяснять, как работать. Еще есть плагин для ТС - OdiWcx, можно и его настроить.
Есть. Например та, что у меня в подписи, но с ней надо объяснять, как работать. Еще есть плагин для ТС - OdiWcx, можно и его настроить.
Запустил SteinBlume.exe, на первый взгляд, понятно. Поудалял, подобавлял файлы - всё нормально в образе сохраняется. Может, и будут вопросы по программе, но пока их нет. Спасибо!
Black Cat / Era CG
31.01.2018, 14:48
Запустил SteinBlume.exe, на первый взгляд, понятно. Поудалял, подобавлял файлы - всё нормально в образе сохраняется. Может, и будут вопросы по программе, но пока их нет. Спасибо!
Не за что. Есть несколько тонкостей:
1) При вытаскивании файлов наружу, нужно учитывать то, что изначально утилита отображает все файлы из всех пользователей одним списком, поэтому при совпадении имен, извлекаться по сути будет только один файлик.
2) Образа без системы проще всего открыть, открыв перед этим системный образ, а потом при открытии образа без системы попробовать выбрать вариант "используя параметры предыдущего"
3) Создавать новые образа, наверное, будет проще всего используя один готовый пустой образ с системой.
4) Ну и еще одна тонкость. По сути при редактировании образа и последующем сохранении, утилита не сохраняет отредактированный образ, а пересоздает его с 0 на том же месте, упорядочивая директорию и расположение файлов, УДАЛЕННЫЕ при этом не сохраняются.
Ну а с вопросами всегда можно писать мне в почту.
В дополнение вот рыбы, которые vector06js использует для запуска дисковых программ, которые в картотеке хранятся россыпью:
https://github.com/svofski/vector06js/tree/master/fdd
Вчера впервые увидел "официальную" адаптацию дискового бейсика 2.5 под z80, которая поставлялась в комплекте с адаптером Фролова.
Две основные проблемы там исправили, а вот одну мелкую пропустили (но она практически не мешает). И для патчей пожертвовали частью быстрого набора.
Если коротко - наша с Tim0xой адаптация лучше :)
shuran33
02.05.2018, 15:16
Спасибо всем, кто помогал с программами для графики. Выставлялся на демопати Мультиматограф.
Ссылка на работу - http://events.retroscene.org/mf2018/pixelart/1680
shuran33
10.05.2018, 22:57
А есть ли какая либо документация к Прекрасному Ассемблеру? Например, описание служебных команд.
shuran33, дефолтная рыба показывает весь спектр возможностей. Больше ничего нет. Просто для общего ознакомления можно загрузить другие рыбы (для этого кликнуть на рыбу).
Обновил bin2wav (https://github.com/svofski/bin2wav), в том числе маленький экзешничек (https://github.com/svofski/bin2wav/releases/tag/casbas) для тех, кто в Виндус.
Теперь можно конвертировать файлы .CAS и .BAS в WAV-ы для реала. Примерный синтаксис:
bin2wav REKLAMA.BAS reklama.wav -m v06c-bas
Или
bin2wav business_part1.cas business_part1.wav -m v06c-cas
Кто не может позволить себе скачать 8 Мб, просите DDp обновить его версию (http://zx-pk.ru/threads/9532-vektor-06ts-sredstva-razrabotki.html?p=943474&viewfull=1#post943474) :)
- - - Добавлено - - -
Из другого (http://zx-pk.ru/threads/29144-programmirovanie-na-assemblere.html?p=969961&viewfull=1#post969961) треда:
А с BAS-файлами пока что единственный вариант это b2m-эмулятор и загруженный в него интерпретатор?
Теперь нет.
Improver
05.07.2018, 10:39
Теперь можно конвертировать файлы .CAS и .BAS в WAV-ы для реала.Я что-то запутался: файлы .BAS -- это бейсиковские, загружаемые по CLOAD, а файлы .CAS -- по BLOAD, или наоборот?
.bas - это для загрузки в дисковые бейсики
.cas - для загрузки в магнитофонные бейсики по CLOAD
И те и другие превращаются в один и тот же вав. BAS это чисто токены, CAS это то же самое, обрамленное декорациями типа заголовков и контрольных сумм.
Какое происхождение файлов .bas вроде понятно. Как зарождаются .cas я на самом деле не в курсе.
Небольшое дополнение. Файлы в формате MON, для загрузки по bload в магнитофонные бейсики тоже должны быть в виде .cas.
"Естественный" способ возникновения casов (без утилит) - выгрузка из бейсика в эмуляторе с перехватом магнитофонных операций.
ivagor, а можешь подкинуть мне такой cas? Или лучше как его получить.
Не совсем понял, какой конкретно "такой" cas.
В картотеке есть игрушка Бизнес (http://www.sensi.org/scalar/ware/505/), там один cas это bas в обертке, а другой - (если так можно назвать) .mon в обертке.
Получить из эмулятора пример тоже несложно. Набираем в бейсике пару строк, записываем по CSAVE. Или записываем фрагмент памяти по BSAVE.
- - - Добавлено - - -
Уточню, там где я говорю про выгрузку из эмулятора я про Emu b2ma. VV Ramirosa вроде тоже поддерживает, но я не уверен, надо смотреть.
lafromm31
05.07.2018, 11:59
В VV - с помощью CSAVE и CLOAD - можно открывать и записывать CAS файлики.
А есть утилита, которая из CAS или BAS делает TXT и наоборот?
Знаю, что есть BT.COM, но может есть под винду.
Improver
05.07.2018, 12:09
Ок, поизучав содержимое файлов игры "бизнес", форум и подводя итог по форматам, получается следующее:
-- ФОРМАТ Монитора-Отладчика ----------------------------------------------------
- header 256 байт 0h
- синхробайт 0E6h
- 4 байта 0D2h
- имя (до 11 байт)
- 3 байта 0h
- header 256 байт 0h
- синхробайт 0E6h
- ст., мл. байт адреса начала
- ст., мл. байт адреса конца
- байты файла =========
- 1 байт контр. суммы всех байтов без переноса.
-- ФОРМАТ BASIC -------------------------------------------------------------
Формат записи на магнитную ленту директивой CSAVE следующий:
- header 256 байт 0h (?)
- синхробайт 0E6h
- 4 байта 0D3h
- имя (до 127 байт ?)
- 3 байта 0h
- header 768 байт 55h
- синхробайт 0E6h
- 3 байта 0D3h
- байт 0h
- байты файла ==========
- 3 байта 0h
- младший байт контр. суммы всех байтов файла без переноса
- старший байт контр. суммы всех байтов файла без переноса
Формат записи на магнитную ленту директивой BSAVE следующий:
- header 256 байт 0h (?);
- синхробайт 0E6h
- 4 байта 0D2h
- имя (до 127 байт ?);
- 3 байта 0h
- header 256 байт 0h
- синхробайт 0E6h
- ст., мл. байт адреса начала;
- ст., мл. байт адреса конца;
- байты файла ==========
- 1 байт контр. сумма всех байтов файла без переноса
-- ФОРМАТ CAS ---------------------------------------------------------------
Полностью совпадает с форматами BASIC, но отсутствует заголовок:
- header 256 байт 0h (?)
- синхробайт 0E6h
З.Ы. Формат Монитора-отладчика и формат вывода BSAVE имеют одно отличие: длинна имени во втором случае ограничена только длинной строки Бейсика -- это я проверял на живом Векторе. :)
А есть утилита, которая из CAS или BAS делает TXT и наоборот?
Знаю, что есть BT.COM, но может есть под винду.
Была утилита Евгения Лугового (надеюсь не спутал имя и фамилию) BAS->TXT на паскале для дос. Для win и в обратную сторону (TXT->BAS) не припоминаю.
подводя итог по форматам
Тут надо аккуратно, чтобы не возникло путаницы.
Расширение .BAS имеют дисковые файлы, в которых только "байты файла".
В вышеприведенной таблице под "форматом BAS" понимается поток байт, который будет подан на магнитофонный выход при записи по CSAVE. Emu, насколько я помню, отсекает все до первого синхробайта включительно. Т.е. формат CAS совпадает с форматами (не с файлами с таким расширением!) BAS и MON за исключением "вступительной" части до первого синхробайта включительно.
ivagor, не заметил, что вторая часть Бизнеса это другой CAS, спасибо. Синтаксис BSAVE я просто не знаю.
а ещё формат cas (для бейсика) вроде как очень похож на бейсик-микрон РК-86 (на слух вроде очень похоже).
Improver
05.07.2018, 13:06
Тут надо аккуратно, чтобы не возникло путаницы.
Расширение .BAS имеют дисковые файлы, в которых только "байты файла".
В вышеприведенной таблице под "форматом BAS" понимается поток байт, который будет подан на магнитофонный выход при записи по CSAVE.Наверно, я не правильно в таблице обозначил форматы, там должно быть подписано "--- Формат Монитора-отладчика ---" и "--- Формат BASIC ---" вместо "MON" и "BAS", тогда разночтений и путаницы с форматом записи файлов на диски не будет. :)
Т.е. формат CAS совпадает с форматами (не с файлами с таким расширением!) BAS и MON за исключением "вступительной" части до первого синхробайта включительно.Ну... не совсем точно совпадает -- бейсик, всё-таки, поддерживает длинные имена в отличие от монитора-отладчика, о чём я написал в примечании.
Можно сказать, что cas это контейнер, который поддерживает положение в себя bas и mon?
Я бы разделил формат и возможности конкретных программ, поддерживающих этот формат. Сам формат CAS/MON не накладывает ограничений на длину имени. А реализация поддержки этого формата в мониторе накладывает, причем ограничения косметические. Надо бы проверить, но насколько я помню, монитор нормально читает файлы с длинными именами, хотя может и не отображает все буквы имени. И, конечно, сам не может создавать файлов с длинными именами.
- - - Добавлено - - -
Можно сказать, что cas это контейнер, который поддерживает положение в себя bas и mon?
Скорее всего не только bas и mon, думаю другие перехватываемые форматы тоже должны туда ложиться.
И еще для других компов тоже cas поддерживается, иногда по несколько форматов-наполнителей для одного компа.
Improver
05.07.2018, 14:06
Я бы разделил формат и возможности конкретных программ, поддерживающих этот формат. Сам формат CAS/MON не накладывает ограничений на длину имени. А реализация поддержки этого формата в мониторе накладывает, причем ограничения косметические.Это не косметические ограничения формата CAS, а хорошее совпадение двух форматов записи Вектора. Когда писался и Монитор-Отладчик, и Бейсик, ещё никто понятия не имел о формате CAS, поэтому, я думаю, тут надо говорить не о "реализации поддержки этого формата", а наоборот, о соответствии формата CAS выводимым данным из Монитора-Отладчика и Бейсика. А с учётом того, что формат CAS содержит в себе все выводимые Вектором метки/заголовки/контрольные суммы, да, он может использоваться для ввода-вывода любых форматов Вектора, предназначенных для МЛ и имеющих в своём начале шапку из 256 нулей и синхробайт 0E6h (т.е. сохранить данные ROM-формата он всё-таки не сможет).
А, с другой стороны, достаточно будет дополнить CAS упомянутой шапкой с синхробайтом и он станет на 100% универсальным для Вектора. :) Но тогда с эмуляторами возможно будут проблемы...
- - - Добавлено - - -
Можно сказать, что cas это контейнер, который поддерживает положение в себя bas и mon?Это скорее не контейнер, а просто т.н. RAW-запись данных с Вектора без начальной шапки.
Это не косметические ограничения формата CAS
Я не говорил про CAS в целом, а конкретно про формат MON в обертке CAS, который назвал CAS/MON. Не вижу здесь предмета для дальнейшего обсуждения, все уже написано.
Добавил в bin2wav cas/mon и edasm.
пока все здесь спрошу
а бейсик 2.6 для z80 был ?
А есть утилита, которая из CAS или BAS делает TXT и наоборот?
Из BAS в TXT есть программа Tim0xи на Паскале под названием debasic:
Program DeBasic;
uses Crt;
const
BasWord : array [32..228] of string[8]=(
{32} ' ','!','"','#','$','%','&','^','(',')','*','+',',','-','.','/','0','1',
{50} '2','3','4','5','6','7','8','9',':',';','<','=','>','?','@','A','B','C',
{68} 'D','E','F','G','H','I','J','K','L','M','N','O','P ','Q','R','S','T','U',
{86} 'V','W','X','Y','Z','[','\',']','^',' ','Ю','А','Б','Ц','Д','Е','Ф','Г',
{104} 'Х','И','Й','К','Л','М','Н','О','П','Я', 'Р','С','Т','У','Ж','В','Ь','Ы',
{122} 'З','Ш','Э','Щ','Ч','_',
{128} 'CLS','FOR','NEXT','DATA','INPUT','DIM','READ','CU R','GOTO','RUN','IF',
{139} 'RESTORE','GOSUB','RETURN','REM','STOP','OUT','ON' ,'PLOT','LINE','POKE',
{149} 'PRINT','DEF','CONT','LIST','CLEAR','CLOAD','CSAVE ','NEW','TAB(','TO',
{159} 'SPC(','FN','THEN','NOT','STEP','+','-','*','/','^','AND','OR','>','=','<',
{174} 'SGN','INT','ABS','USR','FRE','INP','POS','SQR','R ND','LOG','EXP','COS',
{186} 'SIN','TAN','ATN','PEEK','LEN','STR$','VAL','ASC', 'CHR$','LEFT$','RIGHT$',
{197} 'MID$','POINT','INKEY$','AT','&','BEEP','PAUSE','VERIFY','HOME','EDIT',
{207} 'DELETE','MERGE','AUTO','HIMEM','@','ASN','ADDR',' PI','RENUM','ACS',
{217} 'LG','LPRINT','LLIST','SCREEN','COLOR','GET','PUT' ,'BSAVE','BLOAD',
{226} 'PLAY','PAINT','CIRCLE');
{ BasDWord: array [154,156,204,208,224,225] of string[8]=(
'LOAD','SAVE','BYE','FILES','CLOSE','OPEN');}
var
fin : file of byte;
fout : text;
a,c,e: byte;
Size : longint;
S : string;
n : integer;
begin
WriteLn('"DEBASIC", v(1.1), TimSoft, Chernigov, 2000');
if paramcount=0 then begin
WriteLn('debasic.exe filename.bbd [basfile.bas]');
exit
end;
Assign(fin,paramStr(1));
if ParamCount=2 then Assign(fout,ParamStr(2)) else Assign(fout,'vector.bas');
Reset(fin); ReWrite(fout);
repeat
read(fin,a)
until (a=$43);
c:=3;
repeat
read(fin,a);
if c=3 then n:=a;
if c=4 then n:=n+a*256;
if c=5 then begin
write(fout,n);
write(fout,#32)
end;
if c>4 then begin
if a=0 then begin
Write(fout,#$0D#$0A);
c:=0;
end else
if a in [0..31] then write(fout,chr(a)) else
if a in [32..228] then begin
S:=BasWord[a];
write(fout,S);
end else write(fout,a);
end;
inc(c);
if a<>0 then e:=0 else inc(e)
until Eof(fin) or (e=3);
Close(fin); Close(fout)
end.
Еще есть аналогичная по смыслу программа Евгения Лугового, тоже на паскале.
ivagor, а быстрый бейсик 2.6 можно под z80 адаптировать ?
Я бы так переформулировал - можно ли ускорить бейсик 2.5 с использованием уникальных команд z80 и получить какой-нибудь бейсик 2.6z или что-то в этом духе - да можно!
- - - Добавлено - - -
Более того, можно и для ВМ80 ускорить и исправить.
ivagor, было бы зашибись и здорово!
и версию с поддержкой Combodevice
вот еще есть se basic
модули арифметики , калькулятора и звука в нем отличные
https://github.com/cheveron/sebasic4/tree/master/modules
использовать в проекте же можно -)
Оптимизация и исправление basic 2.5 вполне осуществимая задача, но это мало кому интересно и вряд ли кто-то этим займется. Еще интереснее был бы (кросс-)компилятор векторовского бейсика, но это сложнее и еще менее вероятно.
ivagor, думал мож модифицируешь http://sensi.org/scalar/ware/833/
для z80
нужно не нужнодело такое
вот недавнийпример
http://zx-pk.ru/threads/29106-basic-48-s-podsvetkoj-sintaksisa.html
На спектруме народа на порядки больше, соответвенно больше и вероятность, что кто-то захочет сделать, а кто-то - попользоваться.
На правах фантазии, но по теме топика - где-то году в 1994м для разработки игр под PC был популярен язык C-- (это не опечатка: https://ru.wikipedia.org/wiki/C--). Такой себе очень упрощённый C с адски оптимизирующим компилятором и крайне облегчённой вставкой ассемблерного кода. Ещё в те годы была мечта портировать компилятор этого языка на "Вектор" вместе с оболочкой типа TEXTASM, но куда там... в компиляторах я и сейчас ни в зуб ногой :(
Тем более, что оригинальный компилятор написан на каком-то эзотерическом языке, и, несмотря на то, что исходники доступны: https://github.com/nrnrnr/qc--, сильно это не поможет.
Но так или иначе ИМХО это было бы куда полезнее, чем очередной Бейсик, на котором вряд ли кто-то будет писать новый софт под "Вектор".
Для Вектора, даже в 90-ых, была куча языков программирования. Я даже распечатывал толстенные инструкции... но дальше Ассемблера в не времена так и не продвинулся...
кроме паскаля и бейсика в картотеке и нет ничего
однако под cp/m парочка си точно есть
кроме паскаля и бейсика в картотеке и нет ничего
BDS C Compiler (http://www.sensi.org/scalar/ware/75/)
- - - Добавлено - - -
Форт-Система (http://www.sensi.org/scalar/ware/34/)
Не добавлять же в Картотеку весь софт под CP/M.
BDS C я добавил только потому, что Леор Золман публично дал добро на всевозможное его распространение.
Я для кореша базу данных делал на REBUSе.
"Электронные таблицы SuperCalc2" - это конечно не среда разработки... и кроме распечатанной инструкции со странными пометками на полях, в памяти ничего не осталось...
Да, совместимость с СР/М дала доступ к софту...
Improver
16.07.2018, 10:03
кроме паскаля и бейсика в картотеке и нет ничегоВ базе есть ещё один интересный язык -- Форт (http://www.sensi.org/scalar/ware/34/). В своё время баловался им на Векторе... Своеобразный, не похожий на другие язык программирования.
Немного про Форт для Корвета, генетически тот же самый:
http://zx-pk.ru/threads/24910-korvet-arkhiv-programm-dlya-korveta.html?p=890148&viewfull=1#post890148
Исторический Форт может быть и хорошо, но для разработки сейчас я советую DXFORTH. Полноценный современный Форт без анахронизмов, невероятным образом при этом для 8080 и 8086 и с еще более невероятной датой последней версии 2017 года. Умеет делать запускаемые файлы. Автор его поддерживает. Правда у него чего-то с хостингом, о чем был анонс (https://groups.google.com/forum/#!topic/comp.lang.forth/LynaoVTunr4), сейчас он хостится на зеркале: http://dxforth.mirrors.minimaltype.com/
Я начинал однажды писать Rogue для CP/M (https://github.com/svofski/forth-roguelike) на Форте, но силы мои через несколько недель иссякли. Язык слишком своеобразный все-таки, даже на мой вкус.
bin2wav (https://github.com/svofski/bin2wav/releases/) стал поддерживать формат savedos/loaddos (http://sensi.org/scalar/ware/693/), который используются МикроДОС-ом. Тапир (https://svofski.github.io/tapir/) взаимно.
bin2wav (https://github.com/svofski/bin2wav/releases/) стал поддерживать формат savedos/loaddos (http://sensi.org/scalar/ware/693/), который используются МикроДОС-ом. Тапир (https://svofski.github.io/tapir/) взаимно.
У Тапир-а вверху есть график, на других форматах он "раскрашен" как радуга, а на dos-формате только sync выделен...
Improver
08.10.2018, 14:10
bin2wav (https://github.com/svofski/bin2wav/releases/) стал поддерживать формат savedos/loaddos (http://sensi.org/scalar/ware/693/), который используются МикроДОС-ом. Тапир (https://svofski.github.io/tapir/) взаимно.svofski, а есть какое-либо описание этого формата? Хочу в свой ардуиноплеер добавить...
Improver, https://github.com/svofski/bin2wav/blob/master/tape.js#L383
Improver
08.10.2018, 16:37
Improver, https://github.com/svofski/bin2wav/blob/master/tape.js#L383
Спасибо. Значит, там так:
- 256 нулей
- 0E6h -- синхроимпульс
- старший и младший байты адреса начала данных
- старший и младший байты адреса конца данных
- собственно, сами данные
- 1 байт -- контрольная сумма данных
- 11 байт -- имя файла
- 1 байт -- контрольная сумма имени файла + контрольная сумма данных
Я всё верно расшифровал?
А какая скорость используется по-умолчанию для вывода потока?
Да. По сути это подвид формата РК, отличаются контрольная сумма и приписка в виде имени файла.
Про скорость не знаю. На слух ;)
Думаю заинтересованные лица знают, что из современных PCшных упаковщиков на векторе (8080) есть
1) exomizer2 - сжимает лучше всех (аналогичного класса), но очень медленный распаковщик.
2) MegaLZ - достаточно хорошо сжимает, b2m написал быстрый распаковщик
Почитал обзор (http://hypr.ru/blog/dev/740.html) и решил дополнить палитру быстрым распаковщиком - LZ4. Кроме того, распаковщик получился еще и компактный.
Поверхностное сравнение. Исходный файл - Тест устройств, 25600 байт.
Сжатие (только данные, без распаковщика):
1) exomizer2 - 14976 байт
2) MegaLZ - 15727 байт
3) LZ4 - 18094 байта
Размер распаковщиков:
1) exomizer2 - 239 байт
2) MegaLZ (слегка оптимизированный вариант b2ma) - 207 байт
3) LZ4 - 106 байт
Скорость распаковки:
1) exomizer2 - 16945332 тактов (в 8.2515 раз медленнее unlz4)
2) MegaLZ - 3634808 тактов (в 1.77 раза медленнее unlz4)
3) LZ4 - 2053600 тактов
unlz4 легко можно подсократить, но скорость несколько упадет.
Improver
09.10.2018, 17:05
Поигрался я в МДОСе командами "2", "3" и savedos... Запишу тут, чтобы не забылось:
- начальный адрес всегда 0100h.
- длинна файла всегда округляется до кратной 256, при этом savedos дополняет файл нулями, а в случае команды "3" файл дополняется мусором из памяти/диска.
- скорость по-умолчанию соответствует скорости в бейсике, мониторе и т.п. и равна длине короткого полупериода в 376 мкс.
Интересно будет сгенерить файл с другим начальным адресом, или не кратной 256 длинной -- проглотит ли его мдос? ;-)
Вчера попробовал дожать LZ4. Чуть сократил (до 103 байт), чуть-чуть ускорил. И решил еще накропать вариации распаковщиков. В итоге их 4: compact (89 байт), normal (103 байта), fast (154 байта), faster (170 байт). Протестировал на 3х файлах: xorz (маленький, рыхлый); тесты устройств (средний, рыхлый); колобиха+ (большой, плотный, он уже сжат каким-то векторовским упаковщиком).
Для краткости результаты скорости только в сравнении с megalz (с exomizerom по скорости сравнивать нет смысла):
Колобиха+ (исходно 34688 байт, megalz - 31298 байт, lz4 - 32191 байт)
lz4 compact в 1.9621 раз быстрее megalz
lz4 normal в 2.1978 раз быстрее megalz
lz4 fast в 2.4591 раз быстрее megalz
lz4 faster в 2.6731 раз быстрее megalz
Тест устройств (исходно 25600 байт, megalz - 15727 байт, lz4 - 18904 байта)
lz4 compact в 1.6046 раз быстрее megalz
lz4 normal в 1.7823 раз быстрее megalz
lz4 fast в 2.0191 раз быстрее megalz
lz4 faster в 2.0579 раз быстрее megalz
Xorz (исходно 6390 байт, megalz - 3048 байт, lz4 - 3802 байта)
lz4 compact в 1.4573 раз быстрее megalz
lz4 normal в 1.6348 раз быстрее megalz
lz4 fast в 1.8610 раз быстрее megalz
lz4 faster в 1.8610 раз быстрее megalz
Коротко:
1) Даже самый компактный (и медленный) распаковщик и даже на не очень "удобном" файле примерно в полтора раза быстрее megalz;
2) В удачных случаях выигрыш в скорости может превышать 2,5 раза;
3) Преимущество unlz4 в скорости тем больше, чем хуже запаковались данные.
Improver
12.10.2018, 16:43
Тапир (https://svofski.github.io/tapir/) взаимно.
svofski, похоже, я обнаружил несущественную багу в тапире... На форматах cas/mon (и оно же бейсик по bload) в самом конце записи на графике показывается не контрольная сумма, а старший байт начального адреса:
66547
Вот для опытов две вав-ки с идентичным содержимым, только одна грузится с адреса AA00, а вторая -- с CD00:66546
Контрольная сумма в обоих должна быть равна 080h, и это даже можно увидеть по одинаковым "волнам" в конце графика, а вот показывается в красном прямоугольнике совсем не то число. Я чуть голову не сломал, пытаясь понять, почему так...:v2_crazy:
Еще один декомпрессор, теперь суперкомпактный, на базе ZX7 Mini (http://retrolandia.net/foro/showthread.php?tid=82). Переписал для 8080 только вариант "обратного" распаковщика (опция back при упаковке), т.к. он лучше перекладывается для 8080 (короче и быстрее), хотя несложно реализовать и прямой распаковщик. Предлагаю 2 модификации: compact (53 байта) и normal (57 байт).
По степени сжатия - Тест устройств ZX7 Mini упаковал с 25600 до 17730 байт, т.е. чуть лучше LZ4, но, например, колобиха+ совсем не упаковалась, т.ч. тут надо смотреть конкретные случаи.
Скорость распаковки на примере Теста устройств:
compact - 3301972 такта
normal V4-5 - 2586572 такта
Т.е. быстрее MegaLZ, но медленнее LZ4.
Финальный комплект ZX7 Mini. К "обратным" вариантам добавил на условной трансляции прямые, они на 3 байта длиннее и чуть-чуть медленнее. Вариант в предыдущем посте оставил, т.к. там без условной трансляции и легче адаптировать к другим ассемблерам (я использовал tasm).
Уникальная фича - добавил стековый распаковщик (только прямой). Он самый быстрый из ZX7m (хотя и медленнее LZ4), но не в этом основная фишка. Он может распаковывать прямо с квазидиска, я закомментил в исходнике соответствующие настройки. Я делал стековый распаковщик MegaLZ, но пока его не выкладывал и он намного медленнее и длиннее (данные на другом компе, сейчас не могу назвать точные цифры).
Недостаток стекового распаковщика - он разбух до 86 байт и прерывания на время его работы конечно должны быть запрещены.
Пока я в теме и руки помнят, адаптировал для 8080 еще два распаковщика - ZX7 (полный, не mini) и Aplib. Почитать про них можно все по той же ссылке (http://hypr.ru/blog/dev/740.html).
ZX7 сжимает почти на уровне MegaLZ, но распаковщик получился в 2 раза компактнее, хотя и в полтора раза медленнее.
Aplib - крутая штука, круче жмет только exomizer. Размер упаковщика получился немного меньше MegaLZ, но работает, увы, в 2 раза медленнее. Но все же в 2 раза быстрее текущего распаковщика exomizera для 8080, т.ч. если критична именно степень сжатия, то можно и Aplib использовать.
Upd 09.05.2020: убрал старую версию распаковщика aPLib/aPack, новая здесь (https://gitlab.com/ivagor/unapack/-/tree/master/8080)
Improver
24.10.2018, 09:22
Возникла такая идея: а что если на основе одного из этих упаковщиков создать и внедрить в ОС некую систему динамического сжатия содержимого КД (и/или флопиков), по типу, как это делал ранее dblspace/drvspace (https://en.wikipedia.org/wiki/DriveSpace), или их аналог stacker (http://www.frolov-lib.ru/books/bsp/v10/ch1_18.htm)? Было бы прикольно...
если на основе одного из этих упаковщиков создать и внедрить в ОС некую систему динамического сжатия содержимого КД (и/или флопиков)
Проблема в упаковщиках, они для вышеперечисленных форматов только для PC. Судя по векторовскому упаковщику LZ77 вариации LZ на 8080 будут сжимать очень медленно. Для 8080 на лету более-менее реально использовать для упаковки RLE, эффективность, конечно, будет меньше чем LZ.
Cheburashka
22.07.2019, 09:38
Перенес сообщение в тему "Архивирование, сжатие, упаковка"
Ссылка (https://zx-pk.ru/threads/296-arkhivirovanie-szhatie-upakovka.html?p=1021162&viewfull=1#post1021162)
Cheburashka, вот самая подходящая тема (https://zx-pk.ru/threads/23155-szhatie-i-upakovka-obsuzhdenie-i-sravneniya.html), или вот еще (https://zx-pk.ru/threads/296-arkhivirovanie-szhatie-upakovka.html). Ну и парочка более узких и специализированных: 1 (https://zx-pk.ru/threads/2007-optimalnoe-lz-kodirovanie.html), 2 (https://zx-pk.ru/threads/29957-paker-exomizer.html).
Improver
02.09.2019, 08:49
На старом диске нашёл компилятор ассемблера для DOS, вот что он о себе пишет:
Кpосс-ассемблеp в коды пpоцессоpа КР580ВМ80
Кузнецов Р.В. г.Екатеpинбуpг 1993 г.
Распpостpаняется чеpез довеpенных лиц.
В отличие от других ассемблеров не требует точки перед служебными операторами, типа "org", "db", "end" и т.д., как в EDASM Вектора.
Может кому пригодится, вот архив с ним: 69925
Больше ассемблеров хороших и разных.
Насчет точек в tasme. Подсмотрел у b2mа идею, которой пользуюсь при адаптации исходников под tasm - можно дефайнами перевести директивы без точек в варианты с точками. Самый удобный вариант (вроде b2m так и делал, я и сейчас так делаю) - забить эти дефайны в отдельный файл и инклудить их.
В утилиту bin2wav (https://github.com/svofski/bin2wav/releases) добавлена возможность кодировать ромы в разработанном ivagor-ом скоростном формате loadfm. Сам турбозагрузчик (https://github.com/svofski/bin2wav/blob/master/loadfm/loadfm-db00.asm) доработан автозапуском. А чтобы пользоваться этим было сплошное удовольствие, команда bin2wav -m v06c-turbo склеит турбозагрузчик и закодированный ром сама.
Проверены 512-байтовый загрузчик, 2048-байтовый boots.bin и TimSoft 32K.
https://youtu.be/B64Wzztin-o
Ты довел быстрогруз до состояния, когда им может воспользоваться любой желающий, а не только автор, большой респект!
Improver
28.07.2020, 12:26
В утилиту bin2wav добавлена возможность кодировать ромы в разработанном ivagor-ом скоростном формате loadfm.Что-то не работает FM9... Попробовал в виртуалке (EMU) запустить полученный WAV с турбозагрузчиком, сам загрузчик FM9 грузится и автозапускается, а дальше -- тишина, даже столбик справа не появляется... И тапир (https://svofski.github.io/tapir/) по вавкам в FM9 ничего сказать не может, не пойму, в чём причина, в эмуляторе или в полученном файле?
Хотя, сама утилитка bin2wav работает -- наделал всяких wav-ок для тестов в других форматах, там всё отлично.
Проблема в emu, к счастью это легко правится изменением конфига (https://zx-pk.ru/threads/10002-rom-format-avtozapusk-zashchita-sekrety.html?p=859367&viewfull=1#post859367)
Improver
28.07.2020, 12:57
Проблема в emu, к счастью это легко правится изменением конфига (https://zx-pk.ru/threads/10002-rom-format-avtozapusk-zashchita-sekrety.html?p=859367&viewfull=1#post859367)Да, "noisefilterfreq=22050" в конфиге помогло. Спасибо.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot