Да, хорошая идея, спасибо ! Я подумаю как реализовать.
Вид для печати
Записал SMILE в v06x:
https://youtu.be/QNF5GR59imI
Берегите уши. В моем эмуляторе наверное та же проблема, что и у остальных -- звук выводится "как его слышит Вектор", а Вектор больше одного бита не слышит. Зато рок-н-ролл :v2_dizzy_punk: electroscat, пиши еще ;)
Да, у меня в планах есть еще пару программ,... да и сам вектор, точнее все контроллеры, блоки питания и провода к ним хочу упаковать и привести к приемлимому виду, всунуть в корпус.. )))
Программа еще требует доработки, да... там кстати есть еще автоматический режим смены выводимых смайлов, "ус" но почему то срабатывает не всегда :smile:
На реале под разную музыку разные интересные штуки на экране визуализируются, иногда очень интересные рисунки проскакивают.. У меня сейчас эта программка как индикатор, все время работает если музыка воспроизводится )) Я делал еще, что нулевой бит палитры меняется по определенному закону, а с ним бордюр и все что черное на экране, тоже прикольно, но там нужно не перебором это менять, а "нарезать" сочетаемых с общей палитрой цветов и их перебирать, будет интересно выглядеть.. А пока все это перебором от 0 до 255 вместе с скролингом - выглядит не очень, не стал в эту версию добавлять. Ну и с палитрами можно поиграться, тоже их сменными сделать, пока есть только 3 подобрнных палитры, сочетаемых, но реально подобрать 5 - 8.. и вывести кнопкой смену.. Но на все нужно время...
Доработал программулинку, меняет палитру (рус\лат), меняет блок пикселов (СС), меняет тип смены блоков, авто или в ручную (УС), выходит в microDOS (УС+СС). Проверял на трех системах, t34,t35,t72,mdos32h.
Походу крайняя доработка по функционалу. Далее может чуть оптимизирую код, но не факт.. Все что хотел отработал, по графике.
Видос тут:
https://youtu.be/GnkJOBtv500
Программа тут
Спасибо !
P.S.... Добавил пикселных блоков, теперь их 16, и палитры чутка упорядочил, сделал RGB палитры контрастные. Отработал перегрузку программы по "БЛК"+"СБР" код оптимизировал, самую малость... Сейчас видео не соответствует программе. :) Обновил на яндекс диске.
Еще добавил вариант - CM-MAHA.COM и CM-MAHA.WAV (для загрузки с телефона в реал. вектор) - это стилизация под "Матрицу". Пикселные блоки программы предтавляют собой санскритские символы маха- мантры, с небольшим дополнением, и по цветовой гамме это похоже на код "матрицы" из всем известного фильма...
Заменил CM-MAHA.COM и CM-MAHA.WAV на CM-MM.COM и CM-MM.WAV - окончательные версии, проработал с настоящим санскритологом, чтобы написание "деванагари" шрифта соответствовала на 100% действительности, упорядочил символы, сделал смену символа не "поплоскостно" а "построчно" - теперь это аутентичная махамантра, которую в плане правильности написания символов даже санскритолог ободрил.. Управление такое же, УС - останов автоматической смены символа, он же запуск, чтобы все символы можно было просмотреть, СС - переключение символа, когда не автоматический просмотр, и рус\лат - смена палитры. Совместное нажатие "УС"+"СС" - выход в microDOS.
Так же поигрался еще с СМ-SMILE - палитру сменил кое где, символы поменял некоторые, главное - отработал глюк - который меня доставал с самого начала рабоиы программы, иногда последний байт символа заносило в адресс 0000h. И тогда перегрузка программы по БЛК+ВВОД вешала комп, на некоторых символах. Разобрался, и наверняка - это конечная версия.
Xотел бы добавить, общение с санскритологом дало некоторое понимание ассемблера... Санскрит и ассемблер - это очень похожие штуки. Санскрит - это первый язык, вообще изначальный, он был всегда, по крайней мере к такому выводу пришел санскритолог, то есть что то вроде ассемблера, на компе. Машинный код это еще трудные в целом для понимания человека "вибрации", а первый вариант их упорядочить для человеческого сознания, не усложняя - это Ассемблер. И из него уже строятся все остальные языки, но с заметным расширением функционала, то есть неминуемо с усложнением.. Так же примерно и с санскритом и остальными языками..
А кому подавать заявку, чтобы разместить в базисе мои програмулины? Хочется внести свой вклад в софт для вектора официально, хоть и с опозданием в 25 лет, развивать дальше скорее всего не буду... :)
Добавил еще версию - копию изначальной, но со сменой палитры и выходом в MDOS. Рус\лат - смена палитры. Совместное нажатие "УС"+"СС" - выход в microDOS. Называется CMU-DOS.COM. Все по ссылке https://yadi.sk/d/p8ZXTM_ZPeidCQ доступно.
Заявку не надо :) просто говори, что добавить.
Все что по ссылке https://yadi.sk/d/p8ZXTM_ZPeidCQ лежит, в color-music наверное. Если надо описание, https://zx-pk.ru/threads/29144-progr...=1#post1041018 в этом сообщении все, коротко, СМ-SMILE.COM переименовал в CM.COM... если надо подробно, могу и как когда в оборонном нии работал, документацию составить ))))))
Хочу поднять снова эту тему, хотя бы немного...
По поводу реакции на изменения, пробовал, может конечно я не очень эффективные алгоритмы использую, но мне кажется, реакция чутка запаздывает при сборе информации и сравнении,.. она и без действий запаздывает, но не так сильно, а когда набираешь буфер, и потом сравниваешь - заметно...
Сейчас делаю пзу для своего вектара, на базе TimSoft32, всунул туда 7 программ, чуть поправил код, все уже работает, стилизовал программы под вектор, всем сделал сине - желтую гамму, встроил на F3 - microdos31h, еще тест квазидиска, тест техпрогона, как же без него, и на сдачу, три разновидности своей проги с эффектами и тест AY - добавил ему чуть интерфейса... Так я к чему, пока заказл на али микросхемы, тестирую на эмуляторе, и некоторые моменты отладить было очень трудно, потому что по умолчанию 1 на входе магнитофона... А у реального вектора там 1 иногда мелькает, только когда пальцем держишься за контакт входа, в остальных случаях, подключен шнур, отключен, воткнут он в звуковую карту или телефон, отключен - абсолютный ноль...
Может все таки как то можно вывести в настройки эмулятора этот бит, или просто поправить. Я понимаю, что это абсолютно никому не нужно и не важно, но таки это же ближе к реальности все же... Ну или у меня какой то Вектор особенный :)...
В целом, наверное сообщение адресовано авторам эмуляторов, со всем моим уважением и почтением !
Все таки допускаю, что у меня вектор особенный, тогда есть просьба, всем у кого есть реальные векторы, запустите это: можно прям с телефона на вход, есть WAV - и напишите что увидите - если синий екран с желтыми символами - то на входе 0, если вертикально бегущие ряды текста белого цвета - то 1.. Заранее благодарен.
Ок, вижу вертикально бегущие ряды белых символов на чёрном фоне, значит 1:
Вложение 72108
А это при наличии сигнала на входе:
Вложение 72109
Доброго времени !
Спасибо огромное ! Скорее всего компараторы имеют разную чувствительность, у моего вектора чувствительность очень небольшая, в итоге, он иногда дает 1 на выходе только когда держишься пальцем за сигнальный провод, являясь антенной для наводок ))) В некоторых случаях на вход без кабеля наводки не действуют а с кабелем действуют, в некоторых - наводки наверняка действуют даже на дорожки от компаратора к разьему входа. В моем векторе корпус металлизирован изнутри, и заземлен, это полностью исключает такую возможность.. Но на качество ввода программ с кассеты это вроде не влияет..
В любом случае разобрался с этим, все таки программа теперь реагирует на изменения а не на абсолютное значение, теперь не важно, 0 на входе или 1... Если это повторяется - реакции нет. Отказался от идеи набирать буфер и вычислять среднее от разницы, поступил проще - регистр "С" является битом буфера, и с битом только полученным сравнивается пред идущий бит... Этого вполне достаточно, реакция программы в целом удовлетворительная. Залил программы в яндекс по ссылке. Там теперь 6 программ, те которые без "-BOOT" в названии это вариант для загрузчика, с синей заставкой и желтыми значками в режиме паузы (отсутствия сигнала) - они написаны для загрузки из загрузчика вектора. Те которые без "-BOOT" - там соответственно в режиме отсутствия сигнала просто черный экран.
Ну и между делом, рас уж все получилось - загрузчик для вектора "вектор-06ц-2020" на базе Timsoft 32к...
https://sun9-71.userapi.com/c855616/...JImVrTuqTw.jpg
наваял... , "все включено". Постарался стилизовать все программы под загрузчик "Вектора" в сине - желтый (жовто-блокитний) цвет. Если кому не нравится дос в таком стиле - команда "0 FF P" все исправит.
Клавиши управления, если держать эту клавишу или комбинацию при старте вектора, или при нажатии "ВВОД+БЛК":
F3 - загрузка FH51-LBAMicroDOS 3.1 H mod V2.0...надеюсь скоро заменить этот дос на дос T-72H, над которым сейчас работает Improvert, над "пропатчить mdos31h" работы ведутся. На данном этапе в ПЗУ загрузчика встроен FH51-LBA без завороа с 41й дискеты (!)...
F4 - загрузка "тест технологического прогона"
F5 - загрузка "тест квазидиска"
F3+F4 - загрузка СM - программа ЦМУ - реагирует на изменения сигнала на аудиовходе вектора, вариант со сменными пиксельными блоками.
F3+F5 - загрузка СM_MM - программа ЦМУ - реагирует на изменения сигнала на аудиовходе вектора, вариант с санскритским текстом махамантры.
F4+F5 - загрузка СMU_DOS - программа ЦМУ - реагирует на изменения сигнала на аудиовходе вектора, вариант просто с кубиками, самый быстрый ...
F3+F4+F5 - загрузка теста AY-3-8910 и YM-2149F
Приоритет загрузки изменился, теперь такая последовательность:
1. Квазидиск
2. HDD
3. FDD
4. Сетевое подключение
5. блок внешнего ПЗУ
6. Кассета
То есть если на квазидиске загрузчик видит системные файлы - грузит от туда, если там нет - ищет их на HDD (вместо дисковода как раньше), грузит от туда, если там нету, то с FDD, если нету на FDD - то проверяет наличие сетевого подключения, если такового нет - ищет блок внешнего ПЗУ, и если нет ПЗУ - то ждет загрузки с кассеты. Этот сценарий работает если не нажаты клавиши при старте, с указанием конкретного места загрузки, если указанного клавишами места загрузки не существует - то работает этот сценарий в порядке убывания с 1 пункта.
Для программ ЦМУ - клавиши управления
УС - включение автоматической смены пикселных блоков (в CM-MM по умолчанию, в CMU-DOS отсутствует)
СС - изменение пиксельного блока, не работает если включена автосмена, в CMU-DOS отсутствует)
РУС. - изменение палитры пиксельных блоков.
для программ без "-BOOT" - комбинация клавиш "УС+СС" выход в mDOS.
Все это работает в эмуляторе, для "Башкирии" есть файл конфигурации по ссылке, в этом файле конфигурации так же прописан жесткий диск от сюда. Если положить файл жесткого диска и файл загрузчика в папку "Vector06c" в папке эмулятора "emu", и скопировать файл конфигурации в папку "config" там же в "emu" - все заработает.
При отсутствии жесткого диска (например в VVector) операционная система естественно не загружается, только синий экран. Все остальное работает.
На реальном векторе еще не проверял, заказал микросхем несколько разновидностей и емкостей на али, жду когда прийдут.
Если есть возможность потестить, то пожалуйста, попробуйте..
Вот небольшой ролик с демонстрацией возможностей загрузчика и некоторым заделом на будущее.
https://youtu.be/BNj4r294vlU
Спасибо!
Хочу обратить внимание, что существовало минимум два варианта входной схемы на Векторах: на компараторе СА3 и на операционном усилителе, поэтому и чувствительность может немного отличаться, и быть отличия в сигнале 0 или 1 на входе ВВ55. Естественно, эти все отличия никак не влияли на чтение цифрового сигнала с магнитофона, но на цветомузыку вполне могут влиять.
Глупость спрошу:
При разработке программ на ассемблере кто какие костыли использует/использовал для конвертации txt (ibm dos) -> wav (формат монитора или ассемблер-редактора), неужели ручками все листинги набивали?
bin2wav поддерживает форматы монитора и EDASM, это не то?
Вячеслав, смотрите, что я имел ввиду: в данный момент в свободное время обложился старыми книжкам по i8080 и потихонечку ковыряю программирование под Вектор. Где-то год назад уже решал задачу, которую так и не решил в детстве по программированию на Ассемблере с использованием только системного ПО предоставленным на комплектной кассете, с помощью участников формуа разумеется всё решилось, всё нормально, всё получается )
Но комплектный Ассемблер-редактор откровенно кривой до ужаса ))) Выяснил, что есть разница в нажатии одноменно АР2+O и последовательно АР2 и O )))) Опыт общения с более современным ПО как-то налагает какой-то отпечаток ))) не поясню какой, но всё же ))) Поэтому пришла шальная идея, мол кто-то уже решал задачу набора программы для векторовского ассемблера на обычном pc в plain text, ну и переводом его в wav для последующей загрузки в Ассемблер-редактор )))) такой вот костылик. Написал тестовичек *.asm скормил тулзе и получил bin или сразу wav пригодный сразу для загрузки в Ассемблер-редактор.
Я видел, что вы пишете под Вектор с помощью pretty assembler, но вот честно, я пока не совсем врубился каким образом его использовать для написания программ не под МикроДОС.
Кстати Virtual Vector жутко тормозит, по сравнению с emu80qt! и это притом, что у меня core2quad, хоть старенький, но полный.
Зато в первом, хоть через костыль audio recorder-а, но можно по АР2+0 выгружать программы (загружать через АР2+I), а вот в emu80 пока рекордер у меня не работает, хоть "Перехват магнитофона" и включен ( вроде автору уже написал, авось поправит.
Понятно. Я просто не знаю, какой именно формат нужен этому самому Ассемблер-редактору, но может быть его устроит v06c-mon или v06c-edasm из тех, что у меня поддержаны.
В Прекрасном дефолтная рыба — как раз пример программы под МикроДОС. Если нажать RUN, он сделает образ диска и запустит эмулятор с ним. Если нажать BIN, скачается test.com -- это исполняемый файл для МикроДОС. Как его засунуть в реальный МикроДОС я на самом деле не подскажу, но по-моему LOADDOS/SAVEDOS тут не спроста http://sensi.org/scalar/ware/693/
Еще есть команда МикроДОС "2", только я не знаю в каком формате она хочет файлы.
У меня совсем нету опыта разработки в таком режиме, поэтому без форсированного погружения в тему не могу подсказать точнее.Код:2 N [V:]ИМЯ.ТИП - копирует N файлов с именем ИМЯ.ТИП с магнитной
ленты на диск. Имя файла может быть задано в
неявном виде.
Пример,
2 3 *.*
Копирует 3 первые файла с магнитной ленты.
Команде 2 Микродоса (там где она есть) нужны файлы в формате DOS, например выгруженное по SAVEDOS.
Ассемблеру-редактору нужны файлы в формате EDASM.
Простейшие программы для дос (только выводящие на экран и работающие с клавиатурой) можно запускать в мониторе-отладчике, там встроенный "эмулятор дос".
Извиняюсь за не скромный вопрос, а для чего загружать ассемблерный текст (набранный на РС) программы в Ассемблер-редактор ?
Это "фишка" какая-то, или я что-то упустил... ?
Чаще пользуюсь эмулятором emu (от b2m), комп IP4, может настройки какие-то менял, загрузка процессора около 30% при emu. Эмулятор VV загружает на 80-90% и это с настройкой пропуска кадров "Auto Frame Skip", без неё действительно тормозит очень.Цитата:
Кстати Virtual Vector жутко тормозит, по сравнению с emu80qt! и это притом, что у меня core2quad, хоть старенький, но полный.
Да не фишка. Просто я пока другой методики удобного написания на ассемблере для себя не нашел. Ищу.
Стандартным, описанным в комплектном мануале и у Лебедева понятно как, как писал svofski из исходников тоже вроде понял, с виндой/досом какая методика?! 100% пишут же не так как описано в вышеуказанных книгах.
На РС в FAR, на файле *.asm жму F4, редактирую ассемблерный текст.
Выхожу из редактора с сохранением.
Рядом с *.asm есть файл *.bat , в котором прописан запуск "TASM Assembler" (Tasm32) - получаю *.obj файл (он-же *.rom после переименования).
Нажимаю (в FAR) на файле *.rom последовательно "F2" "v" (настроено пользовательское меню, запуск файла в эмуляторе).
И наслаждаюсь результатом, ну или не наслаждаюсь, если выплыли косяки...
Это если пишу программу не под ДОС.
Если под ДОС, по перед её запуском с помощью эмулятора VV можно создать дискету с той программой, которую пишем. И запустить программу с дискеты уже из под ДОС, в эмуляторе, который удобнее или привычнее.
Что упустил?
По выделенному: это The Telemark Assembler ? если да, то поделитесь пожалуйста definition table для i8080 тот который удалось нарыть, его не содержит, а для i8085 и тем более z80 я так понимаю не подойдет для кросскомпиляции i8080?
Ну так глубоко пока рановато ) но за подсказку спасибоЦитата:
Если под ДОС, по перед её запуском с помощью эмулятора VV можно создать дискету с той программой, которую пишем. И запустить программу с дискеты уже из под ДОС, в эмуляторе, который удобнее или привычнее.
Что упустил?
Упс, а я всю жизнь с опцией -85 компилирую... :)
Не замечал, чтобы Вектор не сделал то, что я хочу... Может я просто не использую инструкции 85-го...
А там ни чего сложного.Цитата:
Ну так глубоко пока рановато ) но за подсказку спасибо
Запустил VV, вошел в меню эмулятора, выбрал в меню: Файл -> Диск А: -> открыть папку как FDD образ, выбрал папку.
Всё, автор эмулятора позаботился, эмулятор сам создаёт образ дискеты из выбранной папки. А потом этот файл образа можно указать для дисковода (в другом эмуляторе, если нужно)...
Если пользуешься FAR-ом, то удобнее использовать мою утилитку KDI. Это типа архиватора для образов дисков, поддерживаются образы для Корвета,Ориона,Вектора. Единственный недостаток - не создаёт пустых образов, нужен готовый. Подключать нужно в файле ..\Far\Plugins\MultiArc\Formats\custom.ini, саму утилиту положить в каталог, куда путь для запуска есть. После этого можно заходить внутрь образа как в архив.
Скрытый текст
Настройки для custom.ini
Код:[KDI]
Extension=kdi
List="kdi l"
Format0="nnnnnnnn.nnn zzzzzzzz"
Extract=kdi x %%A %%fWQ %%fP
ExtractWithoutPath=kdi x %%A %%fWQ %%fP
Delete=kdi d %%A %%fWQ
Add=kdi a %%A %%fWQ
[ODI]
ID=01 01 03 01 05 00 50 00
IDPos=8
IDOnly=1
Extension=odi
List="kdi l"
Format0="nnnnnnnn.nnn zzzzzzzz"
Extract=kdi x %%A %%fWQ %%fP
ExtractWithoutPath=kdi x %%A %%fWQ %%fP
Delete=kdi d %%A %%fWQ
Add=kdi a %%A %%fWQ
[FDD]
Extension=fdd
List="kdi l"
Format0="nnnnnnnn.nnn zzzzzzzz"
Extract=kdi x %%A %%fWQ %%fP
ExtractWithoutPath=kdi x %%A %%fWQ %%fP
Delete=kdi d %%A %%fWQ
Add=kdi a %%A %%fWQ
[свернуть]
Спасибо.
Вроде с чем-то подобным пытался разбираться, но что-то шло не так.
Там на сайте есть ещё два плагина для Far (для Вектора) для работы с образами, они функциональны?
Кстати, этот плагин файлы размером 16КБ корректно добавляет в каталог (с пустой записью):
Цитата:
A040: 00 53 50 49 43 48 20 20 │ 20 52 4F 4D 00 00 00 80 SPICH ROM
A050: 07 00 08 00 09 00 0A 00 │ 0B 00 0C 00 0D 00 0E 00
A060: 00 53 50 49 43 48 20 20 │ 20 52 4F 4D 01 00 00 00 SPICH ROM
A070: 00 00 00 00 00 00 00 00 │ 00 00 00 00 00 00 00 00
В дополнение:
Поправьте если я не прав, но этот полученный после ассемблирования .obj (у меня он имеет формат intel hex) нужно еще с помощью hex2bin переводить в бинарник, а потом уже его переименовав в .rom подсовывать в эмулятор (как просто скормив .rom, так и с помощью rom2wav и Wav2Csw перегонять в формат необходимый для работы в эмуляторах тот же Virtual Vector, emu80
Не для Вектора. Один для образов Башкирии-2м, там в одном образе два диска (каждая сторона - один логический диск). Другой я делал для образов БК-0010, но им можно пользоваться и для других дисков с FAT, однако запись в подкаталоги он не поддерживает. Они тоже фукциональны, но особого контроля нет, так что на некорректных файлах иногда вылетают.
Ясно.
Да, на этом тоже заметил вылет с окном винды предлагающем отправить сообщение об ошибке.Цитата:
... Они тоже фукциональны, но особого контроля нет, так что на некорректных файлах иногда вылетают.
На образе оказался "запорот" каталог, в последних записях каталога дискеты мусор.
С остальными образами, что успел просмотреть, плагин справлялся.
:)
Для голого Вектора, "hello world!" - можно несколькими путями:
1. Нарисовать эту надпись точками, перевести их в байты, собрать эти байты в спрайт, написать малюсенькую программу вывода спрайта на экран, прицепить к программе спрайт. Запустить и наслаждаться.
2. Написать несколько функций: прерывания ( программирование цвета и опрос клавы (клаву можно не опрашивать)), вывода символа на экран, вывода строки, прицепить к программке знакогенератор. Запустить и наслаждаться.
3. Найти в картотеке Вектора (http://sensi.org/scalar/ware/575/) так называемые "Драйверы устройств". Это готовая библиотека всевозможных функций. На основе этой библиотеки даже игрушки для вектора делали. В этих Драйверах уже есть всё необходимое. Останется написать программку, которая просто вызывает нужные функции с нужными параметрами. Программка получится большая, т.к. сами драйвера не маленькие, но самому эти функции (вывода текста, и пр.) писать не нужно (нужно только разобраться, как их вызывать).
4. Начать можно с изучения текстов умных людей:
http://www.sensi.org/scalar/ware/563/
Там есть файл secrets.txt очень полезная штука.
Я боюсь, что тут я сам виноват, потому что применение рыбы в ассемблере может быть не очевидно тем, кто не часто ее готовит. Надо кликнуть прямо в текстовом редакторе на рыбу и выбрать желаемую из меню. На всякий случай вот прямые ссылки на рыбы для Вектора:
* Hello world
* Проявление Павиана
* Быстрая линия
* Окружность по алгоритму Мичнера
* Дуги окружности
* Эллипсы с клиппингом
Кроме того, все эти файлы лежат в репозитории.
ну как минимум тасмом не компилируется в лоб. Конечно правлю исходник потихоньку, но есть не понятные места.Цитата:
Сообщение от ivagor
Ладно, буду курить Лебедева, спасибо. Как-то я про него совсем забыл.
Все нормально, я в курсе как менять "рыбу" )Цитата:
Сообщение от svofski
Адаптация prettyasm->tasm несложная.
1. Убираем лишнее (.project и .tape)
2. Добавляем определения для замены (подсмотрены у b2m)
#define ORG .org
#define END .end
#define EQU .equ
#define DB .db
#define DW .dw
#define DS .ds