PDA

Просмотр полной версии : Вектор-06Ц: Средства разработки



Страницы : [1] 2

Tim0xA
09.02.2009, 15:34
В картотеку выложено средство разработки программ "Драйверы устройств" (http://www.sensi.org/~svo/scalar/ware/575/), которое представляет собой пакет подпрограмм, выполняющих определенные функции, такие, как запись и чтение данных с магнитной ленты, работа с экраном дисплея, программирование цвета и музыки, ввод информации с клавиатуры и т.д.
В Вектор-USER №8 данный пакет был окрещен, как "некое окно для дураков в мир ВЕКТОРА", но тем не менее с его помощью были написаны первые, ставшие уже классическими, игры Тетрис, Xonix, Штурм, Полет, Йети и многие другие.

Скомпилил тест, добавил скриншоты. Менеджер памяти VV - "рулит" :)

ivagor
09.02.2009, 15:51
А также Basic, Тест устройств и некоторые другие прикладные и системые программы.

Tim0xA
15.02.2009, 17:24
В картотеку добавлены все имеющиеся версии ФОРТ 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/

x-code
21.02.2009, 00:46
В Вектор-USER №8 данный пакет был окрещен, как "некое окно для дураков в мир ВЕКТОРА", но тем не менее с его помощью были написаны первые, ставшие уже классическими, игры Тетрис, Xonix, Штурм, Полет, Йети и многие другие.


Что касается игр, то в основном с помощью ДУ рисовались заставки и меню. В самом игровом процессе могли, максимум, использоваться функции ввода с клавиатуры и проигрывания музыки, скорость графического вывода в ДУ была явно недостаточной - да, собственно, там даже не было человеческой поддержки спрайтов, только PUT/GET со скоростью как в Basiс 2.5.

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

Ramiros
21.02.2009, 21:33
да, непонятно почему в стандартной документации карту портов В/В зажо*ли, без нее всеравно как без рук, только в бейсике и програмировал.

Tim0xA
21.02.2009, 22:09
да, непонятно почему в стандартной документации карту портов В/В зажо*ли, без нее всеравно как без рук, только в бейсике и програмировал.
Эту ошибку попытались частично исправить в документации к "Вектор-06Ц.02" http://www.sensi.org/~svo/scalar/ware/578/ Техническое описание из "Вектор-USER" было в свое время настоящим откровением в этом плане, но все равно ассемблер на голову не надевался, т.к. вопросов было больше чем ответов, пришлось паскаль учить.

Tim0xA
05.03.2009, 15:09
Графические и музыкальные драйвера с исходниками и демками (30 штук).
Представляет интерес для программистов на Векторе.
http://sensi.org/~svo/scalar/ware/692/

Tim0xA
05.04.2011, 12:55
Добавил в картотеку библиотеку для профессионального написания прикладных программ для компьютера ВЕКТОР-06ц
PPCLIB-Professional 3.0 (http://www.sensi.org/~svo/scalar/ware/829/)

Viknik
05.04.2011, 15:30
Да, всё это на дискетах есть, которые не читаются.Обстоятельства пока не позволяют унести комп на восстановление.Жду когда привезут, тогда и унесу

Tim0xA
24.06.2011, 11:26
Добавил в картотеку Средство разработки ПО ATAS (альтернатива ассемблеру) (http://www.sensi.org/~svo/scalar/ware/834/)

Tim0xA
15.04.2012, 00:38
Добавил в картотеку пакет перемещаемых процедур 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

x-code
24.04.2012, 12:33
Вспомнил с детства мучавший меня вопрос - а как на "Векторе" делались игры размером в 32+ килобайт? Насколько я помню, монитор-отладчик + ассемблер не оставляли столько свободной памяти - особенно, если загружать монитор ниже видеоОЗУ, чтобы при отладке игра его не затерла.

Да и в альтернативной IDE (забыл, к сожалению, как она называлась) не сильно больше свободной памяти было.

Или у разработчиков таких игр гарантированно были дисковод и/или квазидиск?

TAL
24.04.2012, 19:19
Вспомнил с детства мучавший меня вопрос - а как на "Векторе" делались игры размером в 32+ килобайт? Насколько я помню, монитор-отладчик + ассемблер не оставляли столько свободной памяти - особенно, если загружать монитор ниже видеоОЗУ, чтобы при отладке игра его не затерла.

Да и в альтернативной IDE (забыл, к сожалению, как она называлась) не сильно больше свободной памяти было.

Или у разработчиков таких игр гарантированно были дисковод и/или квазидиск?

Используя магнитофон можно было только на Бейсике что то писать.

Tim0xA
25.04.2012, 11:14
Используя магнитофон можно было только на Бейсике что то писать.
И еще на ЛС-Паскале (http://www.sensi.org/~svo/scalar/ware/97/). У меня был такой опыт - написал одну игрушку и даже продал ее "Центру Компьютер" (Кишинев). Альтернативы тогда не было, пришлось с магнитофоном возиться.

x-code
27.04.2012, 16:17
Используя магнитофон можно было только на Бейсике что то писать.

Ну, на самом деле, я помню изврат собственного изобретения в виде припасенных на кассете "объектных модулей" с процедурами вывода спрайтов, обработки прерываний и т.п., а также "ресурсных файлов" с собственно спрайтами и шрифтом. Карта адресов всего этого счастья тщательно велась в тетрадке - эдакая линковка в ручном режиме.

Таким образом, игровую логику можно было компилировать и отлаживать отдельно, а потом уже собирать все вместе с помощью серии подгрузок .MON файлов.

Но это все могло работать только для небольших в смысле занимаемой памяти игрушек, до 20 КБайт.

sergey2b
02.05.2012, 02:30
И еще на ЛС-Паскале. У меня был такой опыт - написал одну игрушку и даже продал ее "Центру Компьютер" (Кишинев).
если не секрет а сколько они платили за программы ?

почему народ не использовал ROM диск для компиляции больших программ
ведь туда было реально разместить библиотеки и программатор для РФ не сложный

Tim0xA
02.05.2012, 19:35
если не секрет а сколько они платили за программы ?
Комп тогда стоил 750 рублей, программу взяли за 400 или 450. Считай, больше половины отбил ))

camister
02.05.2012, 22:27
Тимоха, а что это за программа? В картотеке есть?

Tim0xA
03.05.2012, 12:45
Тимоха, а что это за программа? В картотеке есть?
Есть. Надо отметить, что это был мой первый подобный опыт, так что ... :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 - мелкие доработки

У меня даже исходники остались, удалось оцифровать, как нибудь выложу.

Tim0xA
10.05.2012, 17:59
Очередная находка! Дисковая версия бейсика, адаптированная с "Корвета"
http://www.sensi.org/~svo/scalar/ware/854/

http://sensi.org/~svo/scalar/media/s/KORVDISK1.png

TAL
11.05.2012, 01:46
Ни у кого не завалялись случайно L80.COM, MAS.COM и GDBM.COM? В картотеке я их не нашел.

shapipovo
11.05.2012, 07:43
Все файлы и языки есть в эмуляторе Юниор

b2m
11.05.2012, 10:07
Эти?

Error404
16.05.2012, 13:02
Ни у кого не завалялись случайно L80.COM, MAS.COM и GDBM.COM? В картотеке я их не нашел.

Что такое GDBM.COM?

TAL
16.05.2012, 15:13
Что такое GDBM.COM?

Преобразует файл данных в ассемблерный текст типа:
DB 255,0,235,255,130,0,1,255,147,0,255,0,235,248,251, 11

svofski
09.08.2012, 15:19
Немного про кросс-тулы, когда становится тесно жить в одном окне Прекрасного ассемблера (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/
Только успел пока собрать, выглядит хорошо.

esl
09.08.2012, 15:51
rmac - это макро от DigitalResearch
RMAC, a relocatable macro assembler, assembles .ASM files of into .REL files that you can link to create .COM files.

он есть, есть даже его dasm от некого товарища из инета

svofski
10.08.2012, 03:04
esl, спасибо. К сожалению, это не совсем подходит в категорию кросс-тулов.

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

PPC
10.08.2012, 14:43
У меня есть 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 в конце страницы)

PPC
10.08.2012, 14:50
Нашлись.

PPC
30.08.2012, 11:10
Выкладываю архив со средствами разработки для Вектора.
Очень надеюсь, что это кому-нибудь пригодится на практике, а не просто осядет в Базисе.

Структура архива - простая:

/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 - инвертилка файлов

Tim0xA
30.08.2012, 12:31
Очень надеюсь, что это кому-нибудь пригодится на практике, а не просто осядет в Базисе.
В картотеку, как минимум, осело (http://www.sensi.org/~svo/scalar/ware/892)...

dbk
30.08.2012, 12:43
PPC, огромное Вам спасибо, за проделанную работу, а так же за то, что продолжаете развивать платформу. Спасибо.

svofski
30.08.2012, 13:07
Я тоже внесу скромную лепту. Проапдейтил Прекрасный ассемблер (http://sensi.org/~svo/i8080/): исправил несколько багов, чуть доработал интерфейс, сделал динамическую подсветку используемых регистров.

PPC
30.08.2012, 13:47
чуть доработал интерфейс, сделал динамическую подсветку используемых регистров.
Memory Dump шикарен!
Ещё бы syntax highliting команд CPU замутить... :smile:

svofski
30.08.2012, 15:50
Memory Dump шикарен!
Ещё бы syntax highliting команд CPU замутить... :smile:

Спасибо! А что подсвечивать в командах? Я исходил из того, что наводя мышой на регистры полезно видеть где поблизости они меняются, по меткам удобно прыгать туда, где они используются и т.д. Еще если навестись, например, на xchg, подсветсятся все d,e,h,l вокруг (это может быть не полностью доделано для всех инструкций). Сами инструкции ничего не стоит рисовать другим цветом, но, по-моему, это только усилит пестроту и осложнит восприятие.

Что мне хотелось бы сделать -- это автоматический подсчет тактов, но пока отвлекают другие занятия.

- Кстати, для оффлайнового редактирования я пользуюсь http://www.sublimetext.com/ -- могу попозже выложить для него схему синтаксиса для 8080.

esl
30.08.2012, 16:20
Выкладывай конечно !
я тоже на нем давно сижу
даже вот баг нашел, он гад не ищет в файлах (find in file) если там есть коды <20h

svofski
30.08.2012, 21:13
Держи: http://pastebin.com/AATFjnWV

Еще дополнительно, на вкус, в Settings specific - User:


{
"extensions":
[
"inc",
"asm"
],


"font_face": "Glass TTY VT220",
"font_size": 18,
"translateTabsToSpaces": true
}

PPC
31.08.2012, 02:06
Спасибо! А что подсвечивать в командах? ...Сами инструкции ничего не стоит рисовать другим цветом, но, по-моему, это только усилит пестроту и осложнит восприятие.
Подсвечивать мнемоники команд цветом, отличным от операторов выделения памяти типа 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). Там не всё так страшно, даже поиск паттерна, дело привычки. Так что может подсветка и от лукавого.

PPC
31.08.2012, 07:49
Удивительные бывают открытия. Порылся у себя в закромах, и нашёл исходники ISA Sprite Editor, т.е. вот это: http://sensi.org/~svo/scalar/ware/661/
Причём, они даже компилятся и линкуются в готовую прогу, правда в КОИ-7 из-за того, что так работает m80, сбрасывая у всех data declarations старший бит. Похоже, что m80 мы захакали когда-то, и он у нас работал в КОИ-8, но как мы его захакали сейчас уже и не вспомнить. Тогда каждый день что-то правили то в Суперкалке, то в Вордстаре. В любом случае, выкладываю исходники. Я только файл для сборки make.sub приделал. Ещё из интересного нашёл переделку моей 2dsci.mac (см. выше), но c для принтера D100. У Серёги, получается был такой принтер. Глядишь, так я нарою и исходники нашего БИОСа. Где-то они были.

PPC
15.09.2012, 08:14
Две программки, прямо со сковородки. Обе с исходниками.

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 прилагаются.

ivagor
15.09.2012, 11:01
О, я тоже нечто отдаленно похожее (http://sensi.org/~svo/scalar/ware/720/) делал. Там слегка устаревшая версия (вроде уровни не соотвествуют текущим версиям эмуляторов, еще какая-нибудь мелочь).

PPC
15.09.2012, 12:25
О, я тоже нечто отдаленно похожее (http://sensi.org/~svo/scalar/ware/720/) делал. Там слегка устаревшая версия (вроде уровни не соотвествуют текущим версиям эмуляторов, еще какая-нибудь мелочь).
А я даже немножко пользовал SPRView.
Вот, собсно, результат прогона BMP через IDC на VV, затем-screenshot и в JPG. Не все цвета совпали, но вроде на оригинал-похоже.

PPC
15.09.2012, 12:57
Главная проблема сейчас - найти более разумный алгорим подгонки цветов. На картинке выше пара-тройка цветов совпала, потому, как алгоритм сейчас донельзя примитивный (ниже - кусок функции 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;

ivagor
15.09.2012, 13:08
Сначала я тоже так делал, потом стал по евклидовой метрике искать ближайшие цвета к векторовским, вроде так все же лучше и правильнее. Причем "векторовские цвета" желательно задавать конфигом, чтобы можно было без перекомпиляции изменить. А то в VV одни цвета, в emu - другие, мне кажутся правильными третьи, да и у каждого векториста свое собственное мнение, какой д.б. палитра.
В утилите Романа кстати много вариантов, но задания палитры, к которой подгоняем, нет. Хотя у него там есть другие "регуляторы".

PPC
15.09.2012, 13:23
Погляжу, на Евклида, спасибо. В принципе, так как конвертилка у меня генерит отдельный файл с палитрой, где в комментариях стоят исходные цвета, можно написать какой-нибудь постпроцессор "уточнения палитры с опциями" перед тем как просматривать изображение.
Можно конечно и ручками, в обычном текстовом редакторе палитру править, "разводя" сдублированные цвета. Всё-же, это средство разработки, побочный эффект моей основной задачи, поделка, зробленная "на коленке" за 3 дня. В общем, покумекаю, но не очень много.

ivagor
15.09.2012, 13:38
Сейчас посмотрел, у меня в последней версии (1.79) так:
На основании уровней из конфига формируем полную векторовскую палитру (256 цветов) с 8 битами на компоненту. Потом перебираю каждый цвет палитры картинки и ищу ближайший цвет в векторовской картинке по метрике
(r1-r2)*(r1-r2)+(g1-g2)*(g1-g2)+(b1-b2)*(b1-b2)
Может это тоже не лучший вариант, но он мне понравился больше, чем просто отбрасывание бит (которое, фактически, является частным случаем)

PPC
15.09.2012, 13:44
А кстати вопрос. При всех разных исходных цветах, возможны-ли совпадения конечных цветов по такой метрике или исключены?

ivagor
15.09.2012, 13:52
возможны-ли совпадения конечных цветов по такой метрике или исключены
Возможны, и "слияния" идентичных (по результирующей векторовской палитре) цветов в один я не сделал, недоработка (если не просто конвертить картинки "на посмотреть", а для игрушек и т.п.).

PPC
15.09.2012, 14:05
Думается, надо делать двухпроходный алгоритм. На первом проходе исключать при поиске уже отобранные цвета, помечая совпадение, и подбирая ближайший наилучший из оставшихся, а на втором проходе - ранжировать совпавший и наилучший по luminosity. Как-то так наверное.

ivagor
19.09.2012, 14:00
Слегка улучшенный, по сравнению с вариантом в картотеке (http://sensi.org/~svo/scalar/ware/694/) вариант распаковщика exomizera 2 - 37433. В качестве сомнительного бонуса на условной компиляции также варианты для ВМ1 и ВМ85 (в эмуляторах работают, на реале - не знаю).
Было бы неплохо, если бы кто-нибудь переписал их заново, вслед за b2m, лихо написавшим рапаковщик для MegaLZ (хотя и его вариант можно чуть ускорить и как min на пару байт сократить).

Ramiros
19.09.2012, 15:23
ivagor, ты на ВМ85 используеш недокум. команды? было бы неплохо их проверить в VV т.к. я их реализовал но практически не тестировал.

ivagor
19.09.2012, 16:26
Что я заметил и что имеет независимые подтверждения:
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 урезанный, там замаскированы все недокументированные флаги, поэтому видны только отличия в установке "старых" флагов.

Ramiros
19.09.2012, 17:56
ANA/ANI я уже поправил, но vstvi53 1.4 виснет

разобрался, я упустил инкремент РС после выполнения команды RSTV при условии что V=0

Ramiros
19.09.2012, 22:21
прогнал exerciser в VV в режиме ВМ85, совпало все кроме INR M / DCR M. Принцип формирования флагов в этих командах мне найти пока неудалось :(

еще непонятно почему в ALUOP <B,C,D,E,H,L,M,A> прочерк ?

ivagor
20.09.2012, 14:26
совпало все кроме 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 полного варианта пока не нашлось.

Ramiros
20.09.2012, 16:38
Если использовать emu в качестве эталона по установке "старых" флагов (все же exerciser для 8085 он проходит успешно), то получается, что в DCR M флаг AC нужно инвертировать по отношению к текущему варианту в VV.


пробовал, выяснилось что команда DCR M вообще никак на результат не влияет, а вот INR M влияет. т.е. реально в тесте используется только INR M. так что эталон еще под вопросом...

dk_spb
20.09.2012, 17:11
Когда он прогонял последний вариант теста были плохие условия для фотографирования и он написал результаты текстом.
Если что - я готов исправиться. Увы, как обычно не быстро, но теперь условия найду.

---------- Post added at 17:11 ---------- Previous post was at 17:09 ----------


Фаната, который выдержал бы прогон на своем 8085 полного варианта пока не нашлось.
А сколько займет? Или на 1821 неинтересно?

ivagor
20.09.2012, 18:12
пробовал, выяснилось что команда 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
20.09.2012, 18:21
Ramiros, даже не знаю, что написать конструктивного. DCR M в тесте используется, 100%! Проще всего проверить - когда дойдет до inr, dcr m в отладчике поставь бряк на 0D4Bh (iut, instruction under test в исходнике, 0D4B - 1й байт из 4х).


команда то может и используется, но флаги видимо неучитываются, т.к. я делал чтобы после DCR M в рег. флагов писалось 0, FF и еще разные варианты, но на результат это невлияло никак вообще.

ivagor
20.09.2012, 18:31
команда то может и используется, но флаги видимо неучитываются, т.к. я делал чтобы после DCR M в рег. флагов писалось 0, FF и еще разные варианты, но на результат это невлияло никак вообще.
В каком процессоре? Пробовал так делать в ВМ80 и прогонять его вариант теста?

Ramiros
20.09.2012, 18:46
В каком процессоре? Пробовал так делать в ВМ80 и прогонять его вариант теста?

BM85, в ВМ80 непробовал

dk_spb
20.09.2012, 20:45
что второй раз на многочасовой прогон сагитировать Вас будет сложно. Это все IMHO, думаю многие со мной не согласятся.
Тут вопрос не в количестве прогонов, а к количестве подходов.
То есть если я соберу стенд с ПК6128, а потом разберу, то следующая сборка будет не скоро. Так что если что надумаете - пишите.

ivagor
21.09.2012, 06:31
Так что если что надумаете - пишите.
Спасибо, если у кого-то случайно не завалялись мега-тесты для 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

dk_spb
21.09.2012, 13:53
ivagor, Задачу в работу принял, не обещаю что будет быстро, но буду стараться

ivagor
23.09.2012, 17:34
dk_spb, на некоторое время я пропаду, так что заранее хочу сказать спасибо, если у Вас найдется время на прогон теста (Exercizera, по зрелому размышлению, достаточно, ерунду я убрал) на 6128. Также было бы здорово, если бы Вы отправили результаты теста автору Exercizera, мировая ретрокомпьютерная общественность будет благодарна.

Ramiros
23.09.2012, 19:26
команда то может и используется, но флаги видимо неучитываются, т.к. я делал чтобы после DCR M в рег. флагов писалось 0, FF и еще разные варианты, но на результат это невлияло никак вообще.

Беру свои слова обратно, это компилятор почему то игнорировал некоторые строки кода с включеной оптимизацией. выключил и все стало правильно. первый раз такие грабли вижу :confused:

PPC
24.09.2012, 16:13
Зроблено на этих выходных. Полагаю, что доведено до такого состояния, что можно и в картотеку, если 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. По моему, недурственно.

yur
10.10.2012, 19:59
чёт у меня на винде не пашет конвертер

ivagor
10.10.2012, 21:22
На винде? Пробовал в emu и VV. Работает (долго, лучше увеличить тактовую). Сначала получились 4 мусорные вертикальные полосы при flipe, но под t34 все стало нормально.

yur
10.10.2012, 21:47
а как в emu его запустить?

ivagor
10.10.2012, 22:06
Не буду лезть поперек автора, лучше сам PPC напишет.

PPC
11.10.2012, 01:17
а как в 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 и добавлена опция управления количеством попыток разрешить цвета в уникальные.

Ну и всякие косметические мелочи.

ivagor
11.10.2012, 07:47
Немного дополню.
Рекомендую использовать именно 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 определенно надо бы учитывать соотношение компонентов.

PPC
11.10.2012, 09:32
Спасибо за дополнения, 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).
Видимо, надо сделать отдельную тему "про музыку". Вчера почти решился, но остановило то, что чтобы получить ответы, надо знать что спрашивать. Пока читаю сырки С.Бульбы.

ivagor
11.10.2012, 09:47
что-то не то с цветом рук.
Да, с руками и лицом. Как уже выше написал, мне надо бы учитывать соотношение компонентов.


огромное поле для улучшения результата.
Это точно.


выдрать PT3 плейер из улитки svofski
У него там точно PT3, а не PT2? PT3 я запускал на "векторе с z80", но за переписывание плеера под ВМ80 так и не взялся.


Я не могу найти вообще нигде каких угодно утилит для создания спецэффектов на PIT 8253.
Вроде бы был некий редактор SESа для этого, но как он называется я не помню. Может что-то путаю.

Не совсем то, но может пригодится - альфа версия эмулятора AY на ВИ53 и бипере (http://sensi.org/~svo/scalar/ware/788/)

PPC
11.10.2012, 10:43
У него там точно 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, ну или как там ... "глухаря, аль куропатку, аль ещё чего-нибудь" :-)

ivagor
11.10.2012, 11:00
Похоже вот он (http://sensi.org/~svo/scalar/ware/196/), но не представляю, как им пользоваться. Скорее всего это не совсем то, что нужно для редактирования эффектов на ВИ53.

PPC
11.10.2012, 11:13
Похоже вот он (http://sensi.org/~svo/scalar/ware/196/), но не представляю, как им пользоваться. Скорее всего это не совсем то, что нужно для редактирования эффектов на ВИ53.
Пасиб. Выглядит как пульт управления АЭС :eek:. Гляну на выходных, у нас уже ночь-полночь.

b2m
11.10.2012, 11:22
Вот исходники плееров PTx(2/3), STP/STM, SQT, которые я адаптировал для Вектора+Z80 и которые используются у меня в эмуляторе для воспроизведения музыки:

PPC
11.10.2012, 14:15
Ради интереса прогнал DUCKOUT через PPCBMP на VV ver. 6.55
Все настройки PPCBMP были по умолчанию.

Получается вроде наиболее похоже на оригинал. Понятно, что прогонять можно на любом эмуле с одним-и тем-же результатом, но цвета на мониторе в VV и emu чуть разнятся. Вроде как emu слегка подсинивает по сравнению с VV.

ivagor
11.10.2012, 14:35
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

b2m
11.10.2012, 14:56
Вроде как 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"
}

PPC
11.10.2012, 15:09
Ясно. В emu первая градация синего сразу половина максимального уровня, в то время как в VV диапазон поделен равномерно. Я не знаю, как там на труъ, но PPCBMP писал из таких-же соображений как и Ramiros в VV.
Чтобы правильно отображать палитры в emu, нужно при генерации 888->233 учитывать эту особенность. Это-специальный режим в CLR.COM нужен, иначе цвета "поползут"

---------- Post added at 07:09 ---------- Previous post was at 07:00 ----------


Можно в конфиге задать градации.
Здорово! Тогда-вообще никаких проблем.
Числа ivagora звучит почти как числа Пифагора ;-)

ivagor
11.10.2012, 16:07
Помучал SPRView и выдавил из него следующее:
С уровнями и весовыми коэффициентами оценки для EMU
37712
С уровнями и весовыми коэффициентами оценки для VV
37713

Судя по результату для EMU нужно думать дальше.

b2m
11.10.2012, 16:25
В emu первая градация синего сразу половина максимального уровня
Исходил из того, что синий цвет обладает слабой интенсивностью. Чисто синий со значением <127 мне показался очень тёмным.


Судя по результату для EMU нужно думать дальше.
Чё тут думать, давайте уже определимся с "правильными" градациями.

PPC
12.10.2012, 06:04
Чисто синий со значением <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 употребление слова "стандарт", или ссылки на таковое применительно к восприятию или написанию кода. Мы опять занялись делом, оставив право определять "правильные" градации каждому по своему вкусу.

b2m
12.10.2012, 10:53
Мы опять занялись делом, оставив право определять "правильные" градации каждому по своему вкусу.
Примерно из таких-же побуждений я и добавил возможность задавать градации в конфиге. Только об этом мало кто знает :)

esl
12.10.2012, 11:09
Примерно из таких-же побуждений я и добавил возможность задавать градации в конфиге. Только об этом мало кто знает :)

а твои конфиги - вообще одна сплошная черная магия, без описания ...
;)

b2m
12.10.2012, 12:26
а твои конфиги - вообще одна сплошная черная магия, без описания ...
;)
Волдеморт Волдемортович отдыхает :)

ivagor
12.10.2012, 21:52
Допилил SPRView до нормального состояния. Теперь он вот что выдает:
для EMU
37722
для VV
37723

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

ivagor
16.10.2012, 15:01
Унификация палитр, похоже, откладывается до светлого будущего, поэтому выкладываю доработанный 37786 как есть.

yur
29.10.2012, 17:07
ivagor, СПАСИБО!!)
тличная прога!

yur
30.10.2012, 19:49
вот кой какие наброски окна сделал - мот кто заинтересуетя проба (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)

ivagor
10.11.2012, 12:08
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, как он сделал для Ориона.

yur
12.11.2012, 20:56
будем пробовать, но как Вы знаете - без поддержки тяжковато,
так что для ускоренного процесса мне нужна будет помощь

ivagor
17.11.2012, 13:05
Можно еще так сделать - добавить в 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 поломали.

Tim0xA
17.11.2012, 21:55
Можно еще так сделать - добавить в EMU.ext строчки:
Не перестаю удивляться мощи эмулятора b2m :eek_std:

esl
17.11.2012, 23:51
во во
b2m - где дока ?
:)

yur
18.11.2012, 00:08
Действительно что касается популярности то не каждый новичок им сможет пользоваться,не смотря на то что эмулятор превосходнейший, с кучей возможностей

Tim0xA
18.11.2012, 00:29
Вот тут много чего полезного можно почитать про эмулятор, но это только "видимая часть айсберга"
http://www.old-games.ru/wiki/EMU_для_пользователей

ivagor
19.11.2012, 12:10
Хоть это и пустяки, но можно чуть ускорить запуск (правда за счет отказа от прикольного побуквенного набора)
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), надеюсь он не против.

yur
20.11.2012, 17:52
ну да - думаю на АТ более удобно

dk_spb
25.12.2012, 23:57
Спасибо, если у кого-то случайно не завалялись мега-тесты для 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 пишут "поиск" и ничего.
Жду точных инструкций ;-)

Ramiros
26.12.2012, 12:03
так просто в 6128 его незагрузиш, вот подготовил рабочую версию, со встроеным монитором, просто грузи безовсяких мониторов.
потом как загрузится набери команду "К" и нажми [СТР] для очистки экрана;
для запуска теста набери "G100"
тест очень долгий...

dk_spb
26.12.2012, 12:22
Ramiros, Очень долгий это сколько? Ночь, сутки, трое суток, неделя?

Ramiros
26.12.2012, 12:48
Меньше суток, но ночи может нехватить :)

dk_spb
26.12.2012, 13:46
Начало полета.
А результаты в конце будут? Тут вроде пока только про CRC...

dk_spb
26.12.2012, 13:46
И может пока не поздно можно как-то регистр изменить?

Ramiros
26.12.2012, 14:12
про регистр я незнаю, видимо никак, ну это ерунда, главное циферки :)
результат фоткай в 2 этапа, т.к. к концу теста верхние строчки (2 или 3) уйдут за экран

вот эти вот ФОУНД:хххххххххххх и есть результат, их потом сравнивать будем уже в эмуляторах
тут вот подробней: http://www.idb.me.uk/sunhillow/8080.html

dk_spb
26.12.2012, 16:08
Вторая часть результата.
Если какие-то цифирьки не видны - спрашивайте (я и фоток в разных ракурсах наделал и комп пока работает).

dk_spb
26.12.2012, 16:24
Вот, отсутствие ошибок "перевода" не гарантирую

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

ivagor
27.01.2013, 10:10
Кроме 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/). Кроме того, в картотеке не указан автор. Попробую исправить эти недочеты.

ivagor
01.02.2013, 11:36
Опять же летом 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 секунд - финальная версия, вариант в картотеке немного медленнее

ivagor
01.02.2013, 15:17
В этом сообщении (http://zx-pk.ru/showpost.php?p=205047&postcount=12) есть еще пара слов про быстродействие бейсиков. Еще вроде картинка с цифрами была здесь (http://zx-pk.ru/showpost.php?p=205028&postcount=13), но уже нет.

ivagor
13.03.2013, 20:46
В версии 1.80 нечаянно поломал открытие двух форматов - исправил.

yur
07.05.2013, 22:54
Хоть это и пустяки, но можно чуть ускорить запуск (правда за счет отказа от прикольного побуквенного набора)
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" ?

ivagor
27.05.2014, 18:04
Последняя версия (http://files.mail.ru/45833CE464CD4AE99C21A7692302157D) этой хрени (http://asdasd.rpg.fi/~svo/scalar/ware/833/)

svofski
27.05.2014, 20:44
Последняя версия (http://files.mail.ru/45833CE464CD4AE99C21A7692302157D) этой хрени (http://asdasd.rpg.fi/~svo/scalar/ware/833/)

Стоит обновить файл в картотеке?

ivagor
27.05.2014, 20:55
да

svofski
28.05.2014, 01:10
Обновил и название исправил на Бейсик 2.6. А ты не хотел бы чего-нибудь добавить в историю изменений, чтобы любопытные потомки смогли бы узнать чем версия 2.6 отличалась от 2.5?

ivagor
28.05.2014, 06:25
Основные отличия описаны в 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/), заодно и автора можно указать)
закинешь в картотеку?

ivagor
03.11.2014, 06:18
По наводке PPC нагуглил интересную страничку (http://www.z80.eu/c-compiler.html) про C для CP/M

PPC
03.11.2014, 11:10
Если кого интересует "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.

ivagor
03.11.2014, 17:55
Программы бы под этот GSX, а без программ не так интересно

x-code
04.11.2014, 17:05
Интересно, насколько производительным был этот GSX-80 по сравнению с родными Векторовскми "драйверами устройств"?

PPC
04.11.2014, 19:49
Думаю, что по скорости должно быть примерно тоже самое как и стандартные драйвера устройств, если использовать все возможные оптимизации по выводу графики, написав свой собственный 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 на Вектор. Но прицениться можно.

ivagor
05.11.2014, 07:55
PPC, вроде ты в свое время начинал делать какую-то графическую оконную среду и Tim0xA даже выкладывал исходники наработок. Честно говоря, исходниками сейчас вряд ли кто будет заниматься, а вот скриншоты, если есть, было бы интересно взглянуть. Или пару слов напиши, что планировалось сделать.
Может я все напутал, тогда извини.

PPC
06.11.2014, 09:00
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 для Вектора часто овладевала мной ;).

PPC
06.11.2014, 09:19
Раз пошла такая пьянка, выложу-ка я заодно и исходники wios для CP/M c примерами и картинками. Это 92 год. Навеяно прочтением книги Г.Шилдта "Язык С для профессионалов", И.В.К.-СОФТ, 1992.
Скомпилено для Supersoft C 1.2.3 (Maranatha Software Systems), но уверен, что можно перетащить на любой K&R - совместимый C компилятор для 8-биток без особых проблем. Возможно кому-нибудь оконная псевдографика, горизонтальные, вертикальные и выпадающие меню в CP/М потребуются.

ivagor
06.11.2014, 14:01
Сначала скриншоты посмотрел и на wios реакция была - турбо вижн для вектора. А потом почитал - оказывается ты так и планировал :)

svofski
28.04.2016, 20:42
Подлатал чуточку Прекрасный ассемблер (http://sensi.org/~svo/i8080/) и добавил в него возможность запуска программ в эмуляторе Вектора.

Если директива .binfile указывает файл типа .rom, к нему требования такие же как к рому — должен начинаться с .org 100h. .r0m может быть с 0. Если тип файла .com, он запустится в МикроДОСе.

ivagor
03.07.2016, 06:07
Исправлены чтение и запись rmb/rbr

Upd 18.10.2020: переложил на форум

AzAtom
03.07.2016, 12:10
ivagor, Можете поделиться своей процедурой сжатия в формат .spr? В моей во втором варианте где-то ошибка проскакивает, никак не отловлю.

ivagor
03.07.2016, 17:16
Процедура сжатия не моя, к сожалению не помню автора, если найду - укажу. Но 99% что это кто-то из кировских программистов.

AzAtom
03.07.2016, 18:05
Классно! А я наворотил монстра и сам там запутался. :(

svofski
02.11.2016, 16:49
А никому не попадалось описание Форт-системы для Вектора? Она же была адаптирована и для Корвета, и наверняка для других подобных компов.

svofski
30.12.2017, 20:51
Для удобства выпуска Рива Рейда я вытащил процедуру превращения бинарника в WAV из Прекрасного в отдельную утилиту. Вдруг кому еще пригодится:

https://github.com/svofski/bin2wav

Для запуска нужен node.js, остальное по идее само собой должно случиться.
Поддерживает те же форматы пленок, что и Прекрасный Ассемблер: Вектор, Криста, Специалист, РК, Микроша, Партнер.

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

Для винды сделал exe (http://sensi.org/~svo/b/bin2wav.exe) без внешних зависимостей.

KTSerg
30.12.2017, 21:28
...
Для винды сделал exe (http://sensi.org/~svo/b/bin2wav.exe) без внешних зависимостей.

А что там про ехе для винды?
Хороша утилитка, файл 18М весом и не запускается, точку входа в процедуру не находит...

svofski
30.12.2017, 21:58
Только что проверил на 10-ке, все запускается. Какая винда?

KTSerg
31.12.2017, 08:54
Только что проверил на 10-ке, все запускается. Какая винда?

Винда ХР SP3.

barsik
31.12.2017, 09:02
файл весит 18 мб и не запускается, точку входа в процедуру не находит...
У меня на Win XP SP3 + полный апгрейд весом в дополнительные 1.5 Гб - то же самое.

Похоже Ваш компилятор использует более свежую версию какого-то DLL. Возможно удастся выкрутиться, если включать этот новый DLL в дистрибутив и заставлять пользователя Win XP подменять им старый DLL, если это получится (это не всегда получается, если DLL используется в самой Windows XP, то не выйдет). А лучше просто перетранслируйте на более ранней версии компилятора.

Я так понял, что это конверсия из звукового файла в коды. А есть программка для обратной задачи ? Это программа для двухфазной кодировки, что на большинстве отечественных рэтро компов ? Для кодировки ZX-Spectrum и MSX есть такие ?

svofski
31.12.2017, 16:32
Понятно. Пользуясь случаем напомню, что 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 мне, честно говоря, лень, тем более, что для западных компьютеров написан миллион разных программ уже и так, а всевозможных альтернативных форматов записи у них миллиард. Вот усилить хитроумность распознавания — это что-то, чем я может быть в обозримом будущем хотел бы заняться. Но пока Тапир смог разобрать мне те записи, которые я не мог расковырять своими предыдущими экспериментами, менее удачными, поэтому не опубликованными.

Если у вас есть какие-то кассеты, которые не получается вычитать имеющимися инструментами, но которые при этом не совсем убитые и есть чутье, что будь струмент чуть половчее, было бы вот: сохраните с них оцифровку. Это может пригодится в качестве тренировочных данных на будущее.

DDp
01.01.2018, 10:46
вытащил процедуру превращения бинарника в 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 и РК-сумма ? (убрал)
И вообще, во многих случаях пишутся лишние байты (нули).

ivagor
01.01.2018, 11:35
Вдруг кто не знает - ROM2WAV (http://www.sensi.org/scalar/ware/556/)

svofski
01.01.2018, 15:10
DDp, спасибо! Конструктив!

Форматы там переплетаются так просто потому, что в Микроше как-то назло всему миру сделали несовместимую КС, но и положили ее не туда. Пэддинг нулями в конце это просто чтоб не обрывать звук слишком внезапно. Не все плееры уважают последние доли секунды. Константы надо бы вообще сделать настраиваемыми. Эти я взял с потолка и с полей сообщили, что мониторы-загрузчики ими остались довольны. Так что я их больше и не трогал.

Про ROM2WAV я знаю, но во-первых он меньше 18МБ, во-вторых только под винду и в третьих я не знаю можно ли запустить его без интерфейса. Я люблю написать 'make' и получить на выходе ошибку, если ошибка, или .rom и .wav, если все хорошо.

DDp
02.01.2018, 18:37
Пэддинг нулями в конце это просто чтоб не обрывать звук слишком внезапно. Не все плееры уважают последние доли секунды.
Понятно, ну тогда можно просто тишину нагенерировать.
В предыдущем моём посте обновил программу и приложил исходник.

svofski
02.01.2018, 18:38
Конечно, тишина тоже годится.

ivagor
02.01.2018, 18:47
DDp, спасибо за исходник!

shuran33
09.01.2018, 13:19
А пакета программ(IDC, CLR, APG, SHIM) под 64 винду нет случайно?

ivagor
09.01.2018, 14:18
Не уверен, правильно ли я понял - речь о 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, можете посоветовать что-то?

ivagor
09.01.2018, 14:38
Сделать в смысле сконвертировать из bmp или чего-то подобного? Если да, то SPRView по ссылке выше подойдет. В readme есть список поддерживаемых форматов.

PPC
09.01.2018, 21:16
Я подумал, что 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 , подскажите как его можно посмотреть в эмуляторе?

ivagor
10.01.2018, 15:30
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 и дальше в просмотрщике курсором выбираем и пробелом просматриваем картинку. Выход из просмотра тоже пробел.

svofski
10.01.2018, 15:41
Использую эмулятор VV, но не понимаю какие клавиши на клавиатуре соответствуют клавишам Вектора.
Клавиши можно посмотреть и даже настроить в CPU->Options...->Keyboard.

shuran33
10.01.2018, 15:41
ivagor, огромное спасибо!

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

svofski, понял. Попробую!

ivagor
10.01.2018, 15:48
Как вариант, вместо mdos31.com можно взять f51.rom - в просмотрщике будут русские буквы вместо латинских в заголовке списка (хотя и без этого понятно).
В качестве примера, какие картинки может показать вектор, приложил конверсии Романа Пантелеева.

shuran33
10.01.2018, 15:54
Как вариант, вместо mdos31.com можно взять f51.rom - в просмотрщике будут русские буквы вместо латинских в заголовке списка (хотя и без этого понятно).
В качестве примера, какие картинки может показать вектор, приложил конверсии Романа Пантелеева.

Смотрятся очень круто. Но сразу видно, что конверсия. Много мусора на картинках.

ivagor
10.01.2018, 16:03
Если рисовать на PC, то еще важно правильно выбрать палитру.
Для соответствия палитре Virtual Vector возможные значения:
В каналах Red и Green: 0; 38; 75; 113; 142; 180; 217; 255
В канале Blue: 0; 88; 167; 255.

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

svofski
10.01.2018, 16:26
Но сразу видно, что конверсия
Я мало оригинального пикселинга видел на Векторе. Вот пример http://sensi.org/scalar/ware/633/

Игры Лебедева с оригинальной графикой http://sensi.org/scalar/author/13/
S.E.S. тоже много рисовал http://sensi.org/scalar/author/5/

Есть и еще конечно, но для такой графичной платформы все равно мало.

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

Есть еще школа мысли, которая говорит, что белый на Векторе не белый, а желтоватый.

Мы с tnt23, подключив Вектор к цветному монитору, попытались раз и навсегда для себя этот вопрос закрыть. Но не смогли, потому что на картинке из "Таблицы PAL" белый выглядит совершенно белым, а на картинке из "Тест-таблицы черно-белой" белый правда заметно желтит. Мы нашли таким образом аналог опыта Юнга, подтверждающий желтовато-сероватую природу белого во вселенной Вектора-06ц.

Вряд ли этот эффект настолько существенен, что его стоит принимать во внимание рисуя новую графику.

PPC
12.01.2018, 01:17
Я имею ввиду нарисованную для компьютера Вектор, которую можно посмотреть на Векторе. Я могу и в МикроДОСе работать, но тогда куча вопросов наверное будет. А графических редакторов для Вектора не так много, думаю подберу себе какой-нибудь.

Да, как это ни странно, самый цветной бытовой советский компьютер не очень-то и богат на графические редакторы.

Распространены практически 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 лет.

ivagor
12.01.2018, 08:20
Обычно коэффициент сжатия 3/4, но некоторые лучше смотрятся при сжатии только до 85%.
Я сторонник соотношения 5:4. Почему написал здесь (http://zx-pk.ru/threads/28632-podklyuchenie-vektora-k-fotoramke.html?p=943588&viewfull=1#post943588).

ivagor
12.01.2018, 12:35
Откуда берутся 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]

ivagor
12.01.2018, 14:34
вводить в заблуждение других - это уже не хорошо
Всегда придерживался и придерживаюсь этого правила. И тебе бы рекомендовал его придерживаться.


Покрути на мониторе размер по горизонтали на сжатие и на растяжение. Также покрути на мониторе размер по вертикали на сжатие и на растяжение.
У монитора или ТВ может не быть вынесенных на панель управления регулировок размера. Но это даже не важно. Важно то, что существует правильная регулировка размера изображения, для которой и приведены цифры в вышепроцитированном источнике.
Каждый отдельный человек может накрутить что угодно. Если бы, например, в руководстве было написано - "Обязательно растяните картинку до границ экрана", тогда это и было бы стандартом. Но в руководстве вектора такой фразы нет.


Тогда причем здесь (на Векторе) "аксиоматичный" пиксельклок 14.75МГц???
Откуда это взялось? Может ты не понял, то я написал?

TomaTLAB
12.01.2018, 16:21
Я вот нагло влезу в тему, но скажу за LCD. Ковыряясь и с корветом, и со своей наМГТФленной "видеокартой" заметил, что моему телеку (дешманская SUPRA) абсолютно глубоко фиолетово какой стоит кварц, совершенно плевать на пиксельклок и по барабану частота ССИ. А важно ему, категорически, их соотношение. Просто поменяв кварц, скажем, 20МГц на 24МГц (в корвете) я не увижу ровно никаких изменений на экране, если не поменяю коэффициенты пересчета сихрогенератора. Вот на ЭЛТ, я полагаю, сие сразу заметно было бы :)

ivagor
12.01.2018, 17:15
Просто поменяв кварц, скажем, 20МГц на 24МГц (в корвете) я не увижу ровно никаких изменений на экране, если не поменяю коэффициенты пересчета сихрогенератора.
Конечно, ведь при этом просто изменится кадровая частота. Разницу (т.е. значение кадровой) можно увидеть в меню (если оно есть) в пункте инфо. Или если очень сильно изменить частоту и она выйдет за поддерживаемые пределы, то изображение сорвется и пропадет.
В период активных экспериментов с плисовыми платами использовал 4 (иногда 5) устройства отображения: 2 жк тв и 2 старых элт тв (их уже продал). На изменение пиксельклока (с соответствующей коррекцией параметров развертки) реагировали все.

svofski
12.01.2018, 19:08
Интересные "средства разработки" тут =)

По-моему изрядная путаница в разговоре получилась из-за привлечения термина "пиксельклок". Автор приведенной ivagor-ом статьи использует его, потому что ему удобней в его системе отсчета таким образом ссылаться на стандарт и объяснять сопутствующие ему курьезы. У Вектора пиксельклок конечно же другой. Но Вектор должен удовлетворить телевизор, попав своим видеосигналом в заданные стандартом временные промежутки. От того, когда он начинает выдавать строку, зависит сдвиг по горизонтали. От того, как быстро он закончит ее выдавать, зависит размер по горизонтали.

Если на время отложить пиксели в сторону и все пересчитать в микросекунды и там и там, сравнивать будет проще.

Я придерживаюсь точки зрения с которой пропорции и положение картинки определены временными интервалами, закреплены стандартом и должны быть выставлены по настроечной таблице, то есть ручек как бы нет. Если для правильно выставленной таблицы компьютер выдает картинку (растровую область) 4:3, значит это его AR. Если 5:4, значит его AR 5:4. К счастью, зная все параметры мы можем не искать телевизор и телевещательную станцию из прошлого, а просто воспользоваться цифрами из стандарта, цифрами из Вектора и посчитать правильное соотношение.

Я считаю, что это единственный правильный метод, потому что просто крутя ручки каждый может накрутить что угодно себе по вкусу, но нет критерия определения верности настройки.

ivagor
12.01.2018, 19:15
Я придерживаюсь точки зрения с которой пропорции и положение картинки определены временными интервалами, закреплены стандартом и должны быть выставлены по настроечной таблице
Придерживаюсь такой же точки зрения.
Кроме случаев, когда параметры развертки настолько нестандартные, что без "крутилок" нормальной картинки не получается. Но к вектору это не относится.


просто воспользоваться цифрами из стандарта, цифрами из Вектора и посчитать правильное соотношение.
Ты не согласен с моим результатом?

svofski
12.01.2018, 19:47
Ты не согласен с моим результатом?
Это предложение было такой барочной формой сказать "прислушаться к мнению 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 месячного поиска проблемы, в один момент.

ivagor
26.01.2018, 13:22
Оффтоп, но надеюсь когда-нибудь отсюда отцепят посты про соотношение сторон.
Еще один источник (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).

PPC
26.01.2018, 22:54
Я всего лишь хотел сказать, что при конвертировании на Вектор абсолютно необходимо учитывать AR. :)

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

AlexBel
30.01.2018, 06:57
Всем привет.

Есть ли какие-либо средства разработки для "Вектора", предназначенные для переноса графики с MSX? Предполагаю, что если в своё время портировали весьма много игр с MSX (большинство могло не увидеть свет из-за проблем с быстродействием, но ведь перенос был произведён), то может существовать наработанный инструментарий или, хотя бы, какие-либо, зафиксированные в виде текстов, методики. Очень вероятно, предстоит перенос графики с MSX и хочу узнать об этом побольше. Разумеется, вопрос буду изучать в любом случае, но чем больше информации и/или инструментов, тем лучше.

ivagor
30.01.2018, 20:08
В SPRView (http://zx-pk.ru/threads/9532-vektor-06ts-sredstva-razrabotki.html?p=876625&viewfull=1#post876625) сделал опцию для преобразования графики, пригодную для значительной части игрушек HUDSON, чтобы было удобно редактировать. Но я не художник, подраскрасил пару игрушек, а остальные остались в исходном виде.
ИМХО, при конверсии msxных игрушек преобразование графики не главная проблема и не так сложно делать его в самой конверснутой игрушке. Так делали счетмашевцы и так делали мы с Tim0xой (кроме пары-тройки игрушек).

AlexBel
31.01.2018, 10:30
Графические и музыкальные драйвера с исходниками и демками (30 штук).
Представляет интерес для программистов на Векторе.
http://sensi.org/~svo/scalar/ware/692/

Скачал по ссылке (http://www.sensi.org/scalar/ware/692/). В архиве RAB.ZIP файл RAB.FDD. Запускаю в эмуляторе - как будто всё время нажимают БЛК+ВВОД. Посмотрел содержимое образа - он весь заполнен кодом 0xE5. Архив не повреждён, тест проходит нормально.

ivagor
31.01.2018, 11:13
Не все так плохо. Например, первый блок E5 идет до 9FFF. Просто это не системный образ.
Рискну предположить, что это процедуры из Волгограда (Лебедев/Новиков).

Black Cat / Era CG
31.01.2018, 11:15
Посмотрел содержимое образа - он весь заполнен кодом 0xE5.
Нет. Не весь. Сейчас проверил. С 08 дорожки директория (если смотреть в Хексе - 00A000).

ivagor
31.01.2018, 11:29
Рискну предположить, что это процедуры из Волгограда (Лебедев/Новиков).
Некорректно написал, уточню. Возможно часть процедур взята из программ Лебедева и Новикова.

AlexBel
31.01.2018, 13:41
Не все так плохо. Например, первый блок E5 идет до 9FFF. Просто это не системный образ.
Рискну предположить, что это процедуры из Волгограда (Лебедев/Новиков).

Перепроверил - точно! Как диск B подключил - всё на месте. Видимо, у меня, во время просмотра, вьюер застрял где-то, так и не показав полезную информацию. Извиняюсь за ложную тревогу :)

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

Есть какие-нибудь утилиты на РС для работы с образами .fdd? Создание образов, добавление-удаление-извлечение файлов...
Нашёл плагин для FAR, собственно, его достаточно. Но, может быть, есть автономные программы под Windows, как Disk-Manager для образов MSX.

Black Cat / Era CG
31.01.2018, 14:02
Есть какие-нибудь утилиты на РС для работы с образами .fdd? Создание образов, добавление-удаление-извлечение файлов...
Есть. Например та, что у меня в подписи, но с ней надо объяснять, как работать. Еще есть плагин для ТС - OdiWcx, можно и его настроить.

AlexBel
31.01.2018, 14:17
Есть. Например та, что у меня в подписи, но с ней надо объяснять, как работать. Еще есть плагин для ТС - OdiWcx, можно и его настроить.

Запустил SteinBlume.exe, на первый взгляд, понятно. Поудалял, подобавлял файлы - всё нормально в образе сохраняется. Может, и будут вопросы по программе, но пока их нет. Спасибо!

Black Cat / Era CG
31.01.2018, 14:48
Запустил SteinBlume.exe, на первый взгляд, понятно. Поудалял, подобавлял файлы - всё нормально в образе сохраняется. Может, и будут вопросы по программе, но пока их нет. Спасибо!
Не за что. Есть несколько тонкостей:
1) При вытаскивании файлов наружу, нужно учитывать то, что изначально утилита отображает все файлы из всех пользователей одним списком, поэтому при совпадении имен, извлекаться по сути будет только один файлик.
2) Образа без системы проще всего открыть, открыв перед этим системный образ, а потом при открытии образа без системы попробовать выбрать вариант "используя параметры предыдущего"
3) Создавать новые образа, наверное, будет проще всего используя один готовый пустой образ с системой.
4) Ну и еще одна тонкость. По сути при редактировании образа и последующем сохранении, утилита не сохраняет отредактированный образ, а пересоздает его с 0 на том же месте, упорядочивая директорию и расположение файлов, УДАЛЕННЫЕ при этом не сохраняются.
Ну а с вопросами всегда можно писать мне в почту.

svofski
31.01.2018, 14:58
В дополнение вот рыбы, которые vector06js использует для запуска дисковых программ, которые в картотеке хранятся россыпью:
https://github.com/svofski/vector06js/tree/master/fdd

ivagor
14.02.2018, 08:08
Вчера впервые увидел "официальную" адаптацию дискового бейсика 2.5 под z80, которая поставлялась в комплекте с адаптером Фролова.
Две основные проблемы там исправили, а вот одну мелкую пропустили (но она практически не мешает). И для патчей пожертвовали частью быстрого набора.
Если коротко - наша с Tim0xой адаптация лучше :)

shuran33
02.05.2018, 15:16
Спасибо всем, кто помогал с программами для графики. Выставлялся на демопати Мультиматограф.
Ссылка на работу - http://events.retroscene.org/mf2018/pixelart/1680

shuran33
10.05.2018, 22:57
А есть ли какая либо документация к Прекрасному Ассемблеру? Например, описание служебных команд.

svofski
11.05.2018, 02:20
shuran33, дефолтная рыба показывает весь спектр возможностей. Больше ничего нет. Просто для общего ознакомления можно загрузить другие рыбы (для этого кликнуть на рыбу).

svofski
05.07.2018, 02:25
Обновил 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, или наоборот?

ivagor
05.07.2018, 11:06
.bas - это для загрузки в дисковые бейсики
.cas - для загрузки в магнитофонные бейсики по CLOAD

svofski
05.07.2018, 11:24
И те и другие превращаются в один и тот же вав. BAS это чисто токены, CAS это то же самое, обрамленное декорациями типа заголовков и контрольных сумм.

Какое происхождение файлов .bas вроде понятно. Как зарождаются .cas я на самом деле не в курсе.

ivagor
05.07.2018, 11:28
Небольшое дополнение. Файлы в формате MON, для загрузки по bload в магнитофонные бейсики тоже должны быть в виде .cas.
"Естественный" способ возникновения casов (без утилит) - выгрузка из бейсика в эмуляторе с перехватом магнитофонных операций.

svofski
05.07.2018, 11:31
ivagor, а можешь подкинуть мне такой cas? Или лучше как его получить.

ivagor
05.07.2018, 11:48
Не совсем понял, какой конкретно "такой" 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 имеют одно отличие: длинна имени во втором случае ограничена только длинной строки Бейсика -- это я проверял на живом Векторе. :)

ivagor
05.07.2018, 12:30
А есть утилита, которая из CAS или BAS делает TXT и наоборот?
Знаю, что есть BT.COM, но может есть под винду.
Была утилита Евгения Лугового (надеюсь не спутал имя и фамилию) BAS->TXT на паскале для дос. Для win и в обратную сторону (TXT->BAS) не припоминаю.


подводя итог по форматам
Тут надо аккуратно, чтобы не возникло путаницы.
Расширение .BAS имеют дисковые файлы, в которых только "байты файла".
В вышеприведенной таблице под "форматом BAS" понимается поток байт, который будет подан на магнитофонный выход при записи по CSAVE. Emu, насколько я помню, отсекает все до первого синхробайта включительно. Т.е. формат CAS совпадает с форматами (не с файлами с таким расширением!) BAS и MON за исключением "вступительной" части до первого синхробайта включительно.

svofski
05.07.2018, 12:43
ivagor, не заметил, что вторая часть Бизнеса это другой CAS, спасибо. Синтаксис BSAVE я просто не знаю.

BYTEMAN
05.07.2018, 12:58
а ещё формат cas (для бейсика) вроде как очень похож на бейсик-микрон РК-86 (на слух вроде очень похоже).

Improver
05.07.2018, 13:06
Тут надо аккуратно, чтобы не возникло путаницы.
Расширение .BAS имеют дисковые файлы, в которых только "байты файла".
В вышеприведенной таблице под "форматом BAS" понимается поток байт, который будет подан на магнитофонный выход при записи по CSAVE.Наверно, я не правильно в таблице обозначил форматы, там должно быть подписано "--- Формат Монитора-отладчика ---" и "--- Формат BASIC ---" вместо "MON" и "BAS", тогда разночтений и путаницы с форматом записи файлов на диски не будет. :)


Т.е. формат CAS совпадает с форматами (не с файлами с таким расширением!) BAS и MON за исключением "вступительной" части до первого синхробайта включительно.Ну... не совсем точно совпадает -- бейсик, всё-таки, поддерживает длинные имена в отличие от монитора-отладчика, о чём я написал в примечании.

svofski
05.07.2018, 13:23
Можно сказать, что cas это контейнер, который поддерживает положение в себя bas и mon?

ivagor
05.07.2018, 13:31
Я бы разделил формат и возможности конкретных программ, поддерживающих этот формат. Сам формат 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-запись данных с Вектора без начальной шапки.

ivagor
05.07.2018, 14:28
Это не косметические ограничения формата CAS
Я не говорил про CAS в целом, а конкретно про формат MON в обертке CAS, который назвал CAS/MON. Не вижу здесь предмета для дальнейшего обсуждения, все уже написано.

svofski
05.07.2018, 16:50
Добавил в bin2wav cas/mon и edasm.

zx_
05.07.2018, 17:14
пока все здесь спрошу
а бейсик 2.6 для z80 был ?

svofski
05.07.2018, 17:37
А есть утилита, которая из 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
05.07.2018, 17:54
Еще есть аналогичная по смыслу программа Евгения Лугового, тоже на паскале.

zx_
05.07.2018, 21:37
ivagor, а быстрый бейсик 2.6 можно под z80 адаптировать ?

ivagor
06.07.2018, 05:48
Я бы так переформулировал - можно ли ускорить бейсик 2.5 с использованием уникальных команд z80 и получить какой-нибудь бейсик 2.6z или что-то в этом духе - да можно!

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

Более того, можно и для ВМ80 ускорить и исправить.

zx_
06.07.2018, 09:16
ivagor, было бы зашибись и здорово!
и версию с поддержкой Combodevice

вот еще есть se basic
модули арифметики , калькулятора и звука в нем отличные
https://github.com/cheveron/sebasic4/tree/master/modules

использовать в проекте же можно -)

ivagor
06.07.2018, 09:43
Оптимизация и исправление basic 2.5 вполне осуществимая задача, но это мало кому интересно и вряд ли кто-то этим займется. Еще интереснее был бы (кросс-)компилятор векторовского бейсика, но это сложнее и еще менее вероятно.

zx_
06.07.2018, 11:24
ivagor, думал мож модифицируешь http://sensi.org/scalar/ware/833/
для z80

нужно не нужнодело такое
вот недавнийпример
http://zx-pk.ru/threads/29106-basic-48-s-podsvetkoj-sintaksisa.html

ivagor
06.07.2018, 11:51
На спектруме народа на порядки больше, соответвенно больше и вероятность, что кто-то захочет сделать, а кто-то - попользоваться.

x-code
13.07.2018, 13:27
На правах фантазии, но по теме топика - где-то году в 1994м для разработки игр под PC был популярен язык C-- (это не опечатка: https://ru.wikipedia.org/wiki/C--). Такой себе очень упрощённый C с адски оптимизирующим компилятором и крайне облегчённой вставкой ассемблерного кода. Ещё в те годы была мечта портировать компилятор этого языка на "Вектор" вместе с оболочкой типа TEXTASM, но куда там... в компиляторах я и сейчас ни в зуб ногой :(

Тем более, что оригинальный компилятор написан на каком-то эзотерическом языке, и, несмотря на то, что исходники доступны: https://github.com/nrnrnr/qc--, сильно это не поможет.

Но так или иначе ИМХО это было бы куда полезнее, чем очередной Бейсик, на котором вряд ли кто-то будет писать новый софт под "Вектор".

KTSerg
13.07.2018, 19:13
Для Вектора, даже в 90-ых, была куча языков программирования. Я даже распечатывал толстенные инструкции... но дальше Ассемблера в не времена так и не продвинулся...

zx_
13.07.2018, 19:19
кроме паскаля и бейсика в картотеке и нет ничего
однако под cp/m парочка си точно есть

ivagor
13.07.2018, 19:31
кроме паскаля и бейсика в картотеке и нет ничего
BDS C Compiler (http://www.sensi.org/scalar/ware/75/)

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

Форт-Система (http://www.sensi.org/scalar/ware/34/)

svofski
13.07.2018, 19:35
Не добавлять же в Картотеку весь софт под CP/M.

BDS C я добавил только потому, что Леор Золман публично дал добро на всевозможное его распространение.

KTSerg
13.07.2018, 19:38
Я для кореша базу данных делал на REBUSе.
"Электронные таблицы SuperCalc2" - это конечно не среда разработки... и кроме распечатанной инструкции со странными пометками на полях, в памяти ничего не осталось...
Да, совместимость с СР/М дала доступ к софту...

Improver
16.07.2018, 10:03
кроме паскаля и бейсика в картотеке и нет ничегоВ базе есть ещё один интересный язык -- Форт (http://www.sensi.org/scalar/ware/34/). В своё время баловался им на Векторе... Своеобразный, не похожий на другие язык программирования.

svofski
16.07.2018, 11:40
Немного про Форт для Корвета, генетически тот же самый:
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) на Форте, но силы мои через несколько недель иссякли. Язык слишком своеобразный все-таки, даже на мой вкус.

svofski
21.09.2018, 17:27
bin2wav (https://github.com/svofski/bin2wav/releases/) стал поддерживать формат savedos/loaddos (http://sensi.org/scalar/ware/693/), который используются МикроДОС-ом. Тапир (https://svofski.github.io/tapir/) взаимно.

KTSerg
21.09.2018, 20:08
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, а есть какое-либо описание этого формата? Хочу в свой ардуиноплеер добавить...

svofski
08.10.2018, 14:49
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 байт -- контрольная сумма имени файла + контрольная сумма данных

Я всё верно расшифровал?
А какая скорость используется по-умолчанию для вывода потока?

svofski
08.10.2018, 17:35
Да. По сути это подвид формата РК, отличаются контрольная сумма и приписка в виде имени файла.
Про скорость не знаю. На слух ;)

ivagor
09.10.2018, 16:52
Думаю заинтересованные лица знают, что из современных 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 длинной -- проглотит ли его мдос? ;-)

ivagor
10.10.2018, 17:18
Вчера попробовал дожать 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:

ivagor
21.10.2018, 09:32
Еще один декомпрессор, теперь суперкомпактный, на базе 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.

ivagor
21.10.2018, 18:24
Финальный комплект ZX7 Mini. К "обратным" вариантам добавил на условной трансляции прямые, они на 3 байта длиннее и чуть-чуть медленнее. Вариант в предыдущем посте оставил, т.к. там без условной трансляции и легче адаптировать к другим ассемблерам (я использовал tasm).
Уникальная фича - добавил стековый распаковщик (только прямой). Он самый быстрый из ZX7m (хотя и медленнее LZ4), но не в этом основная фишка. Он может распаковывать прямо с квазидиска, я закомментил в исходнике соответствующие настройки. Я делал стековый распаковщик MegaLZ, но пока его не выкладывал и он намного медленнее и длиннее (данные на другом компе, сейчас не могу назвать точные цифры).
Недостаток стекового распаковщика - он разбух до 86 байт и прерывания на время его работы конечно должны быть запрещены.

ivagor
22.10.2018, 17:10
Пока я в теме и руки помнят, адаптировал для 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)? Было бы прикольно...

ivagor
24.10.2018, 09:39
если на основе одного из этих упаковщиков создать и внедрить в ОС некую систему динамического сжатия содержимого КД (и/или флопиков)
Проблема в упаковщиках, они для вышеперечисленных форматов только для 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)

ivagor
22.07.2019, 10:13
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

ivagor
02.09.2019, 09:42
Больше ассемблеров хороших и разных.
Насчет точек в tasme. Подсмотрел у b2mа идею, которой пользуюсь при адаптации исходников под tasm - можно дефайнами перевести директивы без точек в варианты с точками. Самый удобный вариант (вроде b2m так и делал, я и сейчас так делаю) - забить эти дефайны в отдельный файл и инклудить их.

svofski
30.06.2020, 03:04
В утилиту 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

ivagor
30.06.2020, 06:16
Ты довел быстрогруз до состояния, когда им может воспользоваться любой желающий, а не только автор, большой респект!

Improver
28.07.2020, 12:26
В утилиту bin2wav добавлена возможность кодировать ромы в разработанном ivagor-ом скоростном формате loadfm.Что-то не работает FM9... Попробовал в виртуалке (EMU) запустить полученный WAV с турбозагрузчиком, сам загрузчик FM9 грузится и автозапускается, а дальше -- тишина, даже столбик справа не появляется... И тапир (https://svofski.github.io/tapir/) по вавкам в FM9 ничего сказать не может, не пойму, в чём причина, в эмуляторе или в полученном файле?

Хотя, сама утилитка bin2wav работает -- наделал всяких wav-ок для тестов в других форматах, там всё отлично.

ivagor
28.07.2020, 12:32
Проблема в 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" в конфиге помогло. Спасибо.