Просмотр полной версии : Вектор для чайника
Добавил данные (https://litwr2.github.io/pi-spigot-benchmark/pi-spigot-benchmark.html) по Вектору для калькулятора числа π - это на пока самый тормозной результат, даже Tandy TRS-80 с процессором на 1.77 МГц чуть быстрее. Буду признателен, если кто сможет сделать код для Вектора более быстрым.
Удивительный компьютер Вектор, узнал про него уже только после 2010, а оказывается их немало было сделано и софт интересный есть. И цвета сделаны лучше, чем у многих тогдашних зарубежных компьютеров. Складывается впечатление, что Векторов было выпущенo не менее тысяч 30-40, но может и раза в два больше. Пытались ли по серийным номерам или как-то иначе вычислить тиражность? Странно, что такой удачный компик оказался в тени у прессы, о Векторе практически нигде не писали. :(
Трудно не удержаться, чтобы не сравнить с Корветом, с которым сталкивался ещё в 80-е. Корвет (с ВОЗУ в 48 КБ), конечно, раза в полтора дороже, но чуть быстрее и в более профессиональной аппаратной компоновке. Но Корветy явно можно позавидовать некоторым деталям Вектора:
1) палитре в 256 цветов;
2) монитору вместо отстойного бейсика;
3) загружаемым шрифтам;
4) 3-голосному звуку.
Может что пропустил?
Есть ещё практический вопрос. Не совсем понял как оптимальнее грузить свой код в монитор. Пока приходится конвертировать BIN в WAV и в мониторе грузить как с кассеты. Неужели нельзя как-то сразу закинуть код в монитор? Использую эмуляторы emu80 и v06x.
parallelno
09.01.2024, 03:30
Спасибо за то что делаешь что-то для Вектора!
Было бы удобно взглянуть на код который ты хочешь оптимизировать.
Если я не ошибаюсь то запустить bin файл можно напрямую закинув его на окно запущенного эмулятора. Если это не поможет, переименуй пожалуйста файл в rom
- - - Добавлено - - -
Кажется я нашел сорс
https://www.z88dk.org/wiki/doku.php?id=libnew:examples:pi
А где можно глянуть асм?
2) монитору вместо отстойного бейсика;
Бредогенератор добрался до Вектора :-(
И где там монитор???? В ПЗУ размером 512 байт?
Про загружаемые шрифты - это вообще какой-то феерический трындец.
Может всё-таки слезете с тяжелых наркотиков?
Вот получился и Мандельброт (https://litwr2.github.io/vector-06c/mandelbrot.html), Вектор по скорости построения (https://litwr2.github.io/mandelbrot8/micro-mandel.html) на этот раз предпоследний. Но картинки красивые получаются, из участвующих в "забеге" 8-биток по красоте могут сравниться только MSX-2. Корвет догоняет Вектор по качеству только в полноэкранном генераторе (https://litwr2.github.io/corvette/mandelbrot.html) большее разрешение компенсирует меньшее количество цветов. Удивительно, но Вектор выводит 4 bpp графику быстрее, чем Корвет ускоренную 3 bpp. Конечно, это из-за особенностей алгоритма, если бы данные выводись попиксельно, то Корвет в несколько раз был бы быстрее.
Снова приглашаю тех, кто хочет улучшить показатели Вектора к оптимизации кода. Пока код заметно быстрее того, что сделал ivagor в 2021.
У Вектора есть ещё одна фишка на зависть Корвету, использование портов. В Корвете работа с адесным пространством портов не поддерживается - наверное так на один чип сэкономили. Интересно, если бы в Векторе вместо портов были бы адреса в обычной памяти, то могло бы это удешевить Вектор? Но на Векторе кошерно сменить палитру - это как-то сложно (на Корвете с этим очень просто), наверное в конверторе картинок построчную смену цветов будет очень трудно сделать. Удивительно, что сделали несколько демок с 256 цветами. Трудно поверить, что они одинаково работают на любом реальном Векторе.
Спасибо за то что делаешь что-то для Вектора!
Было бы удобно взглянуть на код который ты хочешь оптимизировать.
Если я не ошибаюсь то запустить bin файл можно напрямую закинув его на окно запущенного эмулятора. Если это не поможет, переименуй пожалуйста файл в rom
А где можно глянуть асм?
По приведенной ссылке внизу страницы есть ссылка на сорцы, для Вектора они в папке 8080. Сорцы есть и в общем архиве. Там из одного файла условной генерацией можно выбрать Вектор, Корвет или Амстрад, Благодарю за желание поучаствовать в оптимизации, но это штука очень сложная и времязатратная. Как видите, у некоторых это привело к нервным осложнениям. :) Но на все сто за свой код для 8080 не уверен, может и возможно там ещё пару циклов отжать.
ДОБАВЛЕНИЕ. Проблема с монитором в том, что если гружу с эмулятора ROM или BIN, то монитор сбрасывется, а мои коды используют вызовы BDOS и BIOS из монитора. В emu80 вроде есть опция просто грузить ROM без перезапуска, но по этой опции монитор сбрасывается. :( Похоже альтернативы ленте пока нет. :(
Пока код заметно быстрее того, что сделал ivagor в 2021.
Интересно, где я делал 128x256 да еще с оптимизацией по скорости. У меня такого варианта нет.
Improver
12.01.2024, 19:31
Проблема с монитором в том, что если гружу с эмулятора ROM или BIN, то монитор сбрасыветсяВарианты:
1. Грузить в формате mon.
2. Использовать загрузку через УС-БЛК-СБРОС или монитор Супер-Монстр (https://caglrc.cc/scalar/ware/726/) и грузить ROM через WAV.
3. Загружать бинарник в эмулятор непосредственно в память вручную, через режим отладки.
Проблема с монитором в том, что если гружу с эмулятора ROM или BIN, то монитор сбрасывется, а мои коды используют вызовы BDOS и BIOS из монитора. В emu80 вроде есть опция просто грузить ROM без перезапуска, но по этой опции монитор сбрасывается. :( Похоже альтернативы ленте пока нет. :(
В VV можно через Memory Manager->Load memory Block... указать начальный адрес и нажать Load... выбрать all type и грузить свой бинарник прямиком в память (либо в квази диск).
Благодарю за подсказки, но лучше бы авторам эмуляторов давать пользователю дозагружать ROM-файлы в текущее окружение. Это вроде есть в emu80, но не работает. Может в VV всё ок, но редко использую Виндуз.
Интересно, где я делал 128x256 да еще с оптимизацией по скорости. У меня такого варианта нет.
Представлены два варианта Мандельброта: 128х256 и полноэкранный 256х256 - оба используют один и тот же алгоритм, отличия только в параметрах. Просматривал ваш код на 256х256, который начинается с
;Mandelbrot 256x256 (MAXITER=16) with zoom for Vector06c
;Ivan Gorodetsky
;v 112 - 25.12.2021 (364 bytes)
и который использовал для сравнения по скорости. Уверен, что можно немного разогнать оба кода.
Improver
13.01.2024, 09:28
Благодарю за подсказки, но лучше бы авторам эмуляторов давать пользователю дозагружать ROM-файлы в текущее окружение.Ну так задача эмуляторов максимально точно воспроизвести работу Вектора, а он в "текущее окружение" умел дозагружать только описанными выше двумя способами из трёх. Третий метод, через загрузку в память эмулятором, вполне работает и удобен для отладки, если к нему приспособиться -- сам им часто пользуюсь.
И, кстати, есть четвёртый способ: использовать вместо Монитора МДОС, или РДС -- там можно вызывать те же функции, что и в Мониторе, только программы запускаются с образов дискет или КД.
Просматривал ваш код на 256х256, который начинается с
Код:
;Mandelbrot 256x256 (MAXITER=16) with zoom for Vector06c
;Ivan Gorodetsky
;v 112 - 25.12.2021 (364 bytes)
и который использовал для сравнения по скорости. Уверен, что можно немного разогнать оба кода.
Сравнивать скорости варианта оптимизированного по скорости и варианта оптимизированного по размеру - это сильно. Этот инновационный подход можно попробовать и в другую сторону - вариант оптимизированный по размеру (о чудо) сильно компактнее варианта оптимизированного по скорости.
Ну и насчет скорости. От Superfast Mandelbrot generator ожидаешь чего-то выдающегося, но смотрю код и там сразу неоптимальные комбинации команд, т.е. ускорить точно можно.
Можно ли сократить мой вариант при сохранении функциональности - надеюсь, что можно, но не знаю как. Можно сделать и оптимизированный по скорости вариант, но это совсем другая история.
Для тех кто только в 2024 заинтересовался spigotом - быстрый spigot для вектора существует (https://zx-pk.ru/threads/25783-vychislenie-chisla-pi-na-assemblere.html?p=849604&viewfull=1#post849604). При желании его можно так или иначе модифицировать, например изменить число рассчитываемых цифр, изменить вывод символов или что-то еще.
Сравнивать скорости варианта оптимизированного по скорости и варианта оптимизированного по размеру - это сильно. Этот инновационный подход можно попробовать и в другую сторону - вариант оптимизированный по размеру (о чудо) сильно компактнее варианта оптимизированного по скорости.
Ну и насчет скорости. От Superfast Mandelbrot generator ожидаешь чего-то выдающегося, но смотрю код и там сразу неоптимальные комбинации команд, т.е. ускорить точно можно.
Можно ли сократить мой вариант при сохранении функциональности - надеюсь, что можно, но не знаю как. Можно сделать и оптимизированный по скорости вариант, но это совсем другая история.
Для тех кто только в 2024 заинтересовался spigotом - быстрый spigot для вектора существует (https://zx-pk.ru/threads/25783-vychislenie-chisla-pi-na-assemblere.html?p=849604&viewfull=1#post849604). При желании его можно так или иначе модифицировать, например изменить число рассчитываемых цифр, изменить вывод символов или что-то еще.
Сравнивались имеющиеся версии, пока ваша заметно тормознее. ;) Но с вашими добрыми напутствиями достиг некоторых успехов с оптимизацией, текущая версия (2) для Вектора даже обогнала европейский Коммодор 128! И это за счет графики! Возможно код для Коммодора в плане отрисовки нужно ещё подопиливать.
Буду Вам очень признателен, если подскажите подробности про неоптимальные комбинации команд. Много спасибо заранее. Ещё бы чуть-чуть и обгоним американский Коммодор 128!
Ваш пи-затвор использует разные коды для разного числа цифр, а для сравнения и занесения в таблицу рекордов нужен универсальный калькулятор. Но это очень наш старый разговор...
ДОБАВЛЕНИЕ. В коде Мандельброта главный цикл от LOC1 до LOC2 - всего 63 инструкции.
Ваш пи-затвор использует разные коды для разного числа цифр, а для сравнения и занесения в таблицу рекордов нужен универсальный калькулятор. Но это очень наш старый разговор...
Есть компьютер вектор. Есть реализация (https://zx-pk.ru/threads/25783-vychislenie-chisla-pi-na-assemblere.html?p=849604&viewfull=1#post849604) алгоритма spigot, которая работает на компьютере вектор и считает 100 и 1000 цифр числа пи быстрее других реализаций. Значит это самый быстрый spigot для вектора, по крайней мере для 100 и 1000 цифр.
Можно ли ставить дополнительные условия и так или иначе ограничивать реализацию spigotа? Конечно можно. Будет медленнее, но это дело конкретного программиста, принимать ограничения или нет. Можно ведь и бегать с гирями, привязанными к ногам, кто же запретит.
Вносить мою реализацию в Вашу таблицу рекордов альтернативной олимипиады определенно не стоит, она не подходит по требованиям.
В целом хороший пример "добросовестного" подхода. Если свой spigot медленнее - про быструю альтернативу промолчим. Если свой Мандельброт быстрее - вот тогда можно и упомянуть про другой.
Есть компьютер вектор. Есть реализация (https://zx-pk.ru/threads/25783-vychislenie-chisla-pi-na-assemblere.html?p=849604&viewfull=1#post849604) алгоритма spigot, которая работает на компьютере вектор и считает 100 и 1000 цифр числа пи быстрее других реализаций. Значит это самый быстрый spigot для вектора, по крайней мере для 100 и 1000 цифр.
Можно ли ставить дополнительные условия и так или иначе ограничивать реализацию spigotа? Конечно можно. Будет медленнее, но это дело конкретного программиста, принимать ограничения или нет. Можно ведь и бегать с гирями, привязанными к ногам, кто же запретит.
Вносить мою реализацию в Вашу таблицу рекордов альтернативной олимипиады определенно не стоит, она не подходит по требованиям.
В целом хороший пример "добросовестного" подхода. Если свой spigot медленнее - про быструю альтернативу промолчим. Если свой Мандельброт быстрее - вот тогда можно и упомянуть про другой.
Давайте попробуем включить логику. Предпожим на забег 100-метровки вышел спортсмен и сделал заявление, что он быстрее всех пробежит 30 м, а дальше ему бежать облом. И ещё он потребовал, чтобы его результат включили в официальные таблицы. Куда пошлют такого спортсмена? Есть же правила! Нельзя на спортивной хотьбе делать спринт. Начал тему с предложения оптимизировать алгоритм, который должен соответствовать 4-м требованиям. Ваша реализация им не соответствует. Никто не спорит о её достоинствах, но какие претензии к организаторам спринта?!
Без Вашей помощи американский Коммодор так и будет впереди Вектора. :( И это при том, что рисунок на Векторе намного красивее.
Общение с демагогами вызывает у меня отвращение, но попробую.
1.
Предпожим на забег 100-метровки вышел спортсмен и сделал заявление, что он быстрее всех пробежит 30 м, а дальше ему бежать облом.
Предположим, что на забег 100-метровки вышел спортсмен и сделал заявление, что он быстрее всех пробежит марафон, и только результаты тех, кто пробегут марафон быстрее него, будут учтены в призах 100-метровки.
2.
И ещё он потребовал, чтобы его результат включили в официальные таблицы.
Вносить мою реализацию в Вашу таблицу рекордов альтернативной олимипиады определенно не стоит, она не подходит по требованиям.
3.
Есть же правила! Нельзя на спортивной хотьбе делать спринт.
Можно ли ставить дополнительные условия и так или иначе ограничивать реализацию spigotа? Конечно можно. Будет медленнее, но это дело конкретного программиста, принимать ограничения или нет.
4.
какие претензии к организаторам спринта?!
В целом хороший пример "добросовестного" подхода. Если свой spigot медленнее - про быструю альтернативу промолчим. Если свой Мандельброт быстрее - вот тогда можно и упомянуть про другой.
Если не понятно, то в п.4 претензия не к условиям/ограничениям соревнований (повторюсь, что они могут быть любые, и право любого человека принимать или не принимать их), а к поведению организатора.
Общение с демагогами вызывает у меня отвращение, но попробую.
Действительно демагогия какая-то. :( Скажите конкретно, что вы хотите? Как упомянуть ваш результат, если он не соответствует другим результатам? Мне, извиняюсь за повторения, хотелось бы лучшего кода для Вектора. Обидно, что Коммодор почти догнали, но похоже убежит при отсутствие дела и странном многословии. Зря вы похоже в тухлую политику вместе с несколькими самообиженными - вы же реально хороший специалист. :( Если ошибаюсь, то пишите, в чем притензии, можно в личку.
Осмелюсь предположить, что на большом числе чисел, ваша реализации пи-затвора медленнее...
Еще раз, надеюсь последний, поддался на провокацию (минус немного самоуважения) и сам посмотрел, на что способен быстрый spigot при увеличении числа цифр до 3000. Откатил пару громоздких оптимизаций; заменил вывод символов на режим 512 (медленный столбцовый вариант, который пилили со svofski), чтобы все цифры поместились на экране. Время расчета и печати на экране 3000 цифр - 2735.28, на 15.24% быстрее варианта litwr (3227.18). Если вдруг кто-то нацелится на быстрый spigot3000, то 2735 секунд - это нижняя планка для вектора, медленнее нет смысла, медленнее уже есть.
Еще раз, надеюсь последний, поддался на провокацию (минус немного самоуважения) и сам посмотрел, на что способен быстрый spigot при увеличении числа цифр до 3000. Откатил пару громоздких оптимизаций; заменил вывод символов на режим 512 (медленный столбцовый вариант, который пилили со svofski), чтобы все цифры поместились на экране. Время расчета и печати на экране 3000 цифр - 2735.28, на 15.24% быстрее варианта litwr (3227.18). Если вдруг кто-то нацелится на быстрый spigot3000, то 2735 секунд - это нижняя планка для вектора, медленнее нет смысла, медленнее уже есть.
Благодарю вас за интересный результат. Про провокацию не понял, вроде тема коды для Вектора, а не личные проблемы. Но вашей логике опять нестыковки. В нашем старом проекте по расчету π тема была именно в оптимизации алгоритма расчета, а не в простейших трюках вроде оптимизации вывода на экран с запретом скроллинга (и это-то при наличие аппаратного скроллинга!). Стандартная функция вывода знаков на экран у Вектора небыстрая, но быстрее чем у многих других компиков такого же класса. Поэтому имею основание утверждать, что при отказе от трюков, не имеющих к расчету π никакого отношения, программа ivagor'a будет не быстрее представленой в моём проекте. Ну а на большем числе чисел может и отстать. Реально не уверен в своём коде для 8080, у ivagor да и многих других фанов Вектора тут опыта на порядок больше, чем у меня. В сущности, текущая версия ivagor почти соответствует требованиям для использования результатов в моём проекте, осталось всего чуть-чуть дожать. Выложить универсальную версию и использовать стандартную функцию печати. Понимаю, что это сложнее, чем может показаться, так как на Векторе скроллинг системной функции работает через прерывания, а их ivagor оптимизировал...
Кстати, воспользуюсь случаем, чтобы полагодарить ivagor за его замечательную деятельность на ретрокомпьютерной сцене. Когда-то именно от него и узнал, что существует такой интересный компьютер Вектор! Он был и одним из фактических инициаторов проекта по расчету числа π по алгоритму-затвору, и поэтому упомянут на странице проекта. Он не раз был источником очень интересной информации по самым разным компьютерам. Ну а сколько он сделал для Вектора, мне трудно судить, но ясно, что очень много.
Но вашей логике опять нестыковки. В нашем старом проекте по расчету π тема была именно в оптимизации алгоритма расчета, а не в простейших трюках вроде оптимизации вывода на экран с запретом скроллинга (и это-то при наличие аппаратного скроллинга!).
А Вы уверены, что понимаете, что такое логика? Если "тема была именно в оптимизации алгоритма расчета, а не в простейших трюках вроде оптимизации вывода на экран с запретом скроллинга" значит влияние вывода на экран надо было минимизировать. Например можно было совсем отказаться от вывода на экран (тем более если все цифры не помещаются и их нельзя проверить), таскать с собой эталонные значения и сравнивать с ними по мере расчета. Но нет, все печатаете на экране и при этом недовольны тем, что в моем варианте влияние вывода на экран меньше.
Ну а то, что разница >15% в данном случае обусловлена выводом на экран и "оптимизацией прерываний" это было бы даже смешно, если бы не было грустно и противно. Разница обусловлена лучшей оптимизацией с учетом торможения вектора ("эффективная частота" 2.4572 против 2.3356) и более оптимизированными арифметическими процедурами. Вывод символов и оптимизация прерываний влияют, но в меньшей степени.
Стандартная функция вывода знаков на экран у Вектора небыстрая
У Вектора-06Ц нет стандартной функции вывода знаков на экран. Если Вы про функцию вывода символов на экран в мониторе, то ей пользуются 4 общедоступные программы, из которых 3 Ваши: EDASM и вот теперь добавились m128, m256 и pi-8080-vector06c-bios.
Демагог! Противно! Это такой сейчас у вас протокол коммуникации? Прием.
А Вы уверены, что понимаете, что такое логика? Если "тема была именно в оптимизации алгоритма расчета, а не в простейших трюках вроде оптимизации вывода на экран с запретом скроллинга" значит влияние вывода на экран надо было минимизировать. Например можно было совсем отказаться от вывода на экран (тем более если все цифры не помещаются и их нельзя проверить), таскать с собой эталонные значения и сравнивать с ними по мере расчета. Но нет, все печатаете на экране и при этом недовольны тем, что в моем варианте влияние вывода на экран меньше.
Ну а то, что разница >15% в данном случае обусловлена выводом на экран и "оптимизацией прерываний" это было бы даже смешно, если бы не было грустно и противно. Разница обусловлена лучшей оптимизацией с учетом торможения вектора ("эффективная частота" 2.4572 против 2.3356) и более оптимизированными арифметическими процедурами. Вывод символов и оптимизация прерываний влияют, но в меньшей степени.
Калькулятор числа π без печати числа π - браво, так ivagor скоро изобретет рисование без рисунков. Вы неправы, что недоволен уменьшением влияния влияние вывода на экран в вашем коде. Недоволен только тем, что ваша позиция не позволяет сделать код для Вектора лучше. Хотя это скорее у вас какая-то генеральная линия - не делится деталями оптимизации. :( Что очень грустно для открытого проекта и при наличии явного запроса.
Ну и в итоге получается, что для цифр 4000 и более мой код всё равно быстрее, от вас опровержений нет. Это просто факт, чей код быстрее мне всё равно. Мой интерес просто иметь самый быстрый код, возможно коллективного авторства и открытый для всех.
У Вектора-06Ц нет стандартной функции вывода знаков на экран. Если Вы про функцию вывода символов на экран в мониторе, то ей пользуются 4 общедоступные программы, из которых 3 Ваши: EDASM и вот теперь добавились m128, m256 и pi-8080-vector06c-bios.
А как же тысячи программ для СР/М? ;) Очень уважаю монитор Вектора. Его бы ещё и в cтандартное ПЗУ! Классная штука. Это была крутая фишка Апплов 2 и Коммодоров +4/128. Она и БК сильно поднимает, но в БК монитор, к сожалению, сверхминималистичен.
Калькулятор числа π без печати числа π - браво, так ivagor скоро изобретет рисование без рисунков.
При чем тут рисование без рисунков? Цитирую
В нашем старом проекте по расчету π тема была именно в оптимизации алгоритма расчета
Еще раз - если цель в оптимизации алгоритма расчета, то печатать не обязательно, главное чтобы правильно считало и чтобы можно было эту правильность проверить.
Хотя это скорее у вас какая-то генеральная линия - не делится деталями оптимизации.
??? Исходники выложены. Сужу по себе, если мне что-то интересно, то я изучаю чужие исходники.
Ну и в итоге получается, что для цифр 4000 и более мой код всё равно быстрее, от вас опровержений нет.
О как, теперь уже не 3000, а 4000. А если сделаю 4000, то точка сравнения опять уедет. Другого я и не ожидал.
А как же тысячи программ для СР/М?
Кто запускает тысячи или хотя бы десятки программ для CP/M в мониторе-отладчике вектора?
Есть реальная программа-калькулятор, она должна печатать ибо калькулятор. Программа использует алгоритм расчета, мы оптимизируем имеено этот алгоритм. Квадратичность выбранного алгоритма позволяет отделять тайминги расчетов от таймингов печати знаков. Oбъяснял это не раз - https://forum.vcfed.org/index.php?threads/have-a-power-macintosh-please-run-it-for-me.1242173/post-1309053
Вы бы раскрыли секрет, что вы заметили неоптимального? Можно и конкретнее, типа на Векторе сильно тормозятся инструкции вроде LD A,B - но как же без них?! И 4000 или более знаков интересны мне только тем, что у меня до сих пор нет уверенности, что ваш код может быть реально быстрее, если он будет соответствовать требованиям проекта.
А мои программы для Вектора можно и под СР/М запускать, писал об этом. Реально они и есть программы для СР/М. Монитор - это фактически эмулятор СР/М.
А мои программы для Вектора можно и под СР/М запускать, писал об этом.
А где я писал, что Вашего spigota нельзя запускать под CP/M? Или это кому адресовано?
Думаю, что основная проблема - в безответственности, но это можно преодолеть.
Предлагаю такой эксперимент. Я сделаю вариант spigotа, который
1. Считает 4000 цифр. Пожалуйста приведите время расчета 4000 Вашим вариантом программы.
2. Работает в мониторе 3.5 супер монстр.
3. Выводит символы на экран с использованием встроенного в монитор эмулятора консоли CP/M
Можно добавить еще условия, или что-то поменять/уточнить.
Если моя программа будет быстрее, то Вы в течении года со дня, следующего за выкладыванием программы на форум не будете писать на форуме zx-pk.ru.
Если моя программа будет медленнее, то я в течении года со дня, следующего за выкладыванием программы на форум не буду писать на форуме zx-pk.ru.
Срок самобана тоже можно обсудить.
В идеале тут помогли бы модераторы, если вдруг проигравший не будет соблюдать условия, но вряд ли они захотят впутываться.
А где я писал, что Вашего spigota нельзя запускать под CP/M? Или это кому адресовано?
Про spigota я не писал, но раз я за максимальную добросовестность, то надо упомянуть фрагмент поста (https://zx-pk.ru/threads/21907-demo-effekty-dlya-vektora.html?p=1192852&viewfull=1#post1192852) про Мандельброта
Отдельно отмечу формат файла. Бинарники litwrа имеют расширение .com, но не существует операционных систем для вектора, в которых они будут корректно работать. Нормальное функционирование возможно только при запуске из монитора-отладчика. Этот технический момент я не считаю недостатком при сравнении скорости, просто он не документирован и надо его учитывать.
Это касается только Мандельброта (файлы m128.com и m256.com). Это не касается файла pi-8080-vector06c-bios.com, он может корректно работать в большинстве операционных систем для вектора, хотя и не во всех. Извините, если кто-то подумал, что вышеприведенная цитата касается и расчета пи.
А где я писал, что Вашего spigota нельзя запускать под CP/M? Или это кому адресовано?
Вы писали, что только мои программы и ещё одна не моя используют стандартные функции СР/М. И ответил именно вам.
Думаю, что основная проблема - в безответственности, но это можно преодолеть.
Мне абсолютно всё равно, будете ли вы использовать форум или нет. Повторю, мне лишь интересен максимально оптимизированный код. Было бы интересно узнать результаты вашего кода на 4000, а лучше и на большем числе знаков. Но это не критично. Вас приглашали помочь разобраться, вы же провоцируете какой-то нелепый конфликт. Бросаесь всякими протокальными словечками... Что за безответственность? О чем это Вы?
Про spigota я не писал, но раз я за максимальную добросовестность, то надо упомянуть фрагмент поста (https://zx-pk.ru/threads/21907-demo-effekty-dlya-vektora.html?p=1192852&viewfull=1#post1192852) про Мандельброта
Будьте, пожалуйста, поконкретнее. Вас просто не понимают. Повторю, мой код быстрее (и может быть за несколько секунд стать на 20% быстрее) - это просто факт. Тут нет ничего личного. Мопед быстрее велосипеда, а Вольво мопеда - c'est la vie - этим никто велосипед поставить в неудобную позицию не хочет.
Вы писали, что только мои программы и ещё одна не моя используют стандартные функции СР/М. И ответил именно вам.
Желающие могут поискать в цитатах упоминание стандартных функций CP/M
Стандартная функция вывода знаков на экран у Вектора небыстрая
У Вектора-06Ц нет стандартной функции вывода знаков на экран. Если Вы про функцию вывода символов на экран в мониторе, то ей пользуются 4 общедоступные программы, из которых 3 Ваши: EDASM и вот теперь добавились m128, m256 и pi-8080-vector06c-bios.
А я завершил общение с litwrом, удачи всем желающим пообщаться с ним.
parallelno
28.01.2024, 20:47
Чего бы точно не хотелось, так это банить тех кто что-то делает для Вектора. Их и так по пальцам пересчитать можно.
Пожалуйста не сортесь.
Банить не обязательно.
Если вдруг кто-то считает, что вариант litwrа быстрее посчитает 4000 цифр, то я готов с ним поспорить на беспроигрышной (для вектора) основе. Например - проигравший переведет 4000 рублей (по числу цифр пи) в призовой фонд конкурса РЕТРОГРАД (https://zx-pk.ru/threads/35466-retrograd-konkurs-programm-na-bejsike.html). Сумму и другие условия можно обсудить и, при необходимости, изменить.
Прошу прощения у фанатов вектора, которых лишаю (пусть и крайне маловероятного) доната для конкурса, но я не удержался и переделал spigota под монитор или CP/M (в CP/M не пробовал).
Скриншоты завершения расчета. Слева - вариант litwr, справа мой
8024980250
В нижней строке - время в секундах.
В варианте litwrа есть хорошая оптимизация алгоритма. Не знаю, кто ее предложил, попробую угадать, что БКшники (в исходнике написано, кто участвовал в оптимизации), но не уверен. По крайней мере для БК (хотя не только для БК) реализовано красиво. Предположу, что litwr посчитал, что эта оптимзация в одиночку может вывести в лидеры и его вариант для 8080, но тесты показали, что это не так (мои 3000 (https://zx-pk.ru/threads/35484-vektor-dlya-chajnika.html?p=1192622&viewfull=1#post1192622) и 4000 (https://zx-pk.ru/threads/35484-vektor-dlya-chajnika.html?p=1193616&viewfull=1#post1193616) без заветной оптимизации). А если взять эту оптимизацию, грамотно реализовать для 8080 и интегрировать в быстрого spigota, то при 1000 цифр даже мониторный вариант немного опережает предыдущего чемпиона (https://zx-pk.ru/threads/25783-vychislenie-chisla-pi-na-assemblere.html?p=849604&viewfull=1#post849604), а при 3000 обгоняет vic20-3. Если попробовать наоборот, т.е. интегрировать все фишки быстрого spigotа в вариант litwr, то (постараюсь сформулировать аккуратно) это намного сложнее. Вот такие новые горизонты. Надо бы собраться и сделать нормальный вариант ускоренного spigota для вектора.
litwrу спасибо, что он поднял эту тему и привлек грамотных специалистов к оптимизации, но дискуссию с ним стоило завершить раньше, это сэкономило бы мне нервы и не выглядело бы так неприятно со стороны. Прошу прощения за некоторые резкие высказывания, стоило выбрать более сдержанную форму для того содержания.
Прошу прощения у фанатов вектора, которых лишаю (пусть и крайне маловероятного) доната для конкурса, но я не удержался и переделал spigota под монитор или CP/M (в CP/M не пробовал).
Скриншоты завершения расчета. Слева - вариант litwr, справа мой
8024980250
В нижней строке - время в секундах.
Совершенство недостижимо и кое что (https://zx-pk.ru/threads/25783-vychislenie-chisla-pi-na-assemblere.html?p=1200938&viewfull=1#post1200938) всегда можно улучшить.
aGGreSSor
16.09.2025, 23:06
Не нашёл более подходящей темы. Вопрос: я создаю образ МикроДОС или CP/M в формате .fdd, закидываю туда компилятор, исходники, загружаю в эмулятор через Open FDD Image..., успешно компилирую и...
Не могу найти пункта меню Save FDD Image...
Причём не могу найти его ни в Virtual Vector, ни в Emu80qt, ни в v06x.
А в RAM-диск есть Save as...
Я что-то не понимаю/не вижу/не знаю? Как сохранять диск в формате .fdd?
В VV Fdd образ при открытии грузится в память, и все изменения происходят в памяти. только когда работа с образом будет закончена (например закрыть VV) и если не стоит галка FDD Read only, автоматом из памяти в файл образа сохранятся данные. Если же галка Read only включена, то данные из памяти в файл не запишутся.
Почитайте мануал к VV, там все подробно расписано.
aGGreSSor, в Emu80 в настоящее время изменения отражаются в файле образа немедленно.
В v06x тоже запись сразу, но к сожалению она до сих пор плохо отлажена.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot