User Tag List

Страница 66 из 70 ПерваяПервая ... 626364656667686970 ПоследняяПоследняя
Показано с 651 по 660 из 697

Тема: Бейсики для Вектора-06Ц и клонов

  1. #651

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,393
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Запускал bench64vc много раз и получил-таки перенос между PEEKами. Проявляется это как неожиданные +5 секунд в каком-нибудь тесте. Для контроля правильности надо или запускать тест 2-3 раза или откорректировать измерение времени.

    В 2.997 остались несколько свободных байт и попробовал потратить их на оптимизацию одной из процедур работы со строками. Седьмой тест (7/8 - STRING) становится на секунду быстрее (I=142 вместо 139), общий индекс 187 вместо 186.

    И еще вспомнил специфический момент. В последних модернизированных бейсиках в случае прерывания выполнения программы в результате ошибки или по УС+С (LCtrl+C) однобуквенные переменные обнуляются (это экономит 1 байт, что было крайне необходимо в момент введения).
    Например
    10 I=1:I2=2
    20 MMM
    Запускаем, получаем синтаксическую ошибку в строке 20, жмем LCtrl+С для перехода к командной строке и делаем PRINT I,I2
    2.5 напечатает 1 2
    2.997 напечатает 0 2
    Это не ошибка, скорее особенность, но в некоторых случаях для отладки удобнее классический вариант.

    Вопрос к заинтересованной общественности - надо ли ради такой ерунды (микроускорение строковых операций и необнуление однобуквенных переменных) зарелизить еще одну версию или лучшее враг хорошего и стоит успокоиться на 2.997?

  2. #652

    Регистрация
    05.08.2008
    Адрес
    Магнитогорск
    Сообщений
    989
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    96
    Поблагодарили
    46 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Вопрос к заинтересованной общественности - надо ли ради такой ерунды (микроускорение строковых операций и необнуление однобуквенных переменных) зарелизить еще одну версию или лучшее враг хорошего и стоит успокоиться на 2.997?
    Я за то, что бы зарелизить.
    Здесь можно скачать актуальные версии Virtual Vector (VV)

  3. #653

    Регистрация
    02.02.2005
    Адрес
    Saint-Petersburg
    Сообщений
    221
    Спасибо Благодарностей отдано 
    127
    Спасибо Благодарностей получено 
    48
    Поблагодарили
    30 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Вопрос к заинтересованной общественности - надо ли ради такой ерунды (микроускорение строковых операций и необнуление однобуквенных переменных) зарелизить еще одну версию или лучшее враг хорошего и стоит успокоиться на 2.997?
    Вопрос версионности. Может точку ввести для минорных изменений? Типа 2.997.2?

    Цитата Сообщение от ivagor Посмотреть сообщение
    Для контроля правильности надо или запускать тест 2-3 раза или откорректировать измерение времени.
    Bench64 мне понравился за возможность оценки сверху, чтобы понять порядок, соотношение. Если надо откорректировать, напишите как. Хотел сделать пуллреквест автору scruss (хотя врядли он его примет спустя 5 лет ).

    У меня два вопроса:

    1. Когда у меня заполнен экран изображением отрисованным через LINE BF, включая нижние 2 строки, спустя некоторое время (зависящее от режима CPU в эмуляторе) этот экран начинает сам двигаться вверх по знакоместам, как Scroll? на Спектруме. На Спектруме это выключается через переменные, а как на Векторе выключить прокрутку? Читал "Скроллинг экрана - 771" в доке по Бейсику, но больше ничего по теме там не нашёл. «Vector-user» №1 №10 и «Байт №8» ясности тоже не добавили (м.б. невнимателен).
    2. Как принудительно заткнуть замечательную самоиграйку запущенную через PLAY? Она играет всю дорогу пока выполняется программа. Прописывание пробела в M1$,M2$,M3$ с повтором PLAY не помогает. Команда STOP в доке по Бейсику не описана.

  4. #654

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,393
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Графические операторы напрямую не связаны со скроллом, только вывод текста на экран (PRINT, INPUT, или в режиме редактирования, ну и CLS приводит в исходную позицию).
    PEEK(771) или POKE771,... позволяют узнать или задать позицию аппаратного скролла.
    bench64 в качестве синтетического теста быстродействия мне не очень нравится, пока не вижу примеров, где он соответствует (пусть не в целом, а по отдельным позициям) более содержательным программам. Но это общий недостаток синтетики (RFBM это тоже касается).
    Например тест 6/8 MATHS показывает выигрыш 2.997 относительно 2.5 примерно в 2 раза, а если сравнить с околоматематическими тестами без графики (Мандельброты и решето Эратосфена), то там ускорение примерно в 2.2-2.3 раза.
    Но тест полезный, спасибо за адаптацию для вектора, он мне нашел еще одну ошибку в 2.996.
    Каждый PLAY перезагружает соответствующий канал или каналы. Например PLAY"P","P","P" заглушит все три канала.

    Этот пользователь поблагодарил ivagor за это полезное сообщение:

    aGGreSSor(25.07.2025)

  5. #655

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,393
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Прикинул, сколько байт потребовал бы самый простой вариант выдачи информации о версии. Новая отдельная функция это запредельная роскошь, но даже если использовать имеющуюся функцию с хитрым аргументом, например FRE(-.5) и возвращает 2.998, то минимум потребуется 27 байт или немного больше. Столько места нет, даже если не оптимизировать строки и попробовать наскрести еще несколько байт.

    Этот пользователь поблагодарил ivagor за это полезное сообщение:

    aGGreSSor(25.07.2025)

  6. #656

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,927
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Прикинул, сколько байт потребовал бы самый простой вариант выдачи информации о версии. Новая отдельная функция это запредельная роскошь, но даже если использовать имеющуюся функцию с хитрым аргументом, например FRE(-.5) и возвращает 2.998, то минимум потребуется 27 байт или немного больше.
    Пару байт по фиксированному адресу и PEEK()

  7. #657

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,393
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Думал об этом варианте, но речь о бейсиках 2.5+ в которых
    1. Для PEEK (и POKE) недоступны часть адресов
    2. Для части адресов используется трансляция/переадресация
    Т.е. нельзя расположить в коде бейсика 2 байта и прочитать их с использованием PEEK.
    Я не придумал, где можно расположить байты с версией в читабельной области так, чтобы в 2.5 это были всегда одни байты, а в 2.998 всегда (как вариант) 29h и 98h и это ничего бы не портило.
    Дополнительно не хотелось бы замедлять PEEK введением проверок, но на это я в крайнем случае готов.
    Компромисс - можно читать байты с версией из кода бейсика с использованием подпрограммы в машинных кодах, это реалистично, но возможно не всех устроит.

    Есть вариант, который требует от самого бейсика 0 байт - определение по косвенным признакам. Конкретную версию в общем случае так вряд ли получится узнать, но примерную группу (2.5 или 2.8 или 2.9) можно.
    Последний раз редактировалось ivagor; 25.07.2025 в 16:19.

  8. #658

    Регистрация
    24.08.2012
    Адрес
    г. Волжский
    Сообщений
    464
    Спасибо Благодарностей отдано 
    792
    Спасибо Благодарностей получено 
    273
    Поблагодарили
    105 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Возможно я не совсем точно понимаю как новые версии Бейсика разворачиваются при запуске. но
    вот такая идея есть - зашить в Бейсик готовую программу типа:
    10 CLS:PRINT "2.997":NEW
    и при запуске Бейсика, запустить эту готовую программу, которая себя удалит, а на экране останется версия Бейсика.

  9. #659

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,393
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Механизм автостартующей "предустановленной" программы был в 2.5, в новых бейсиках его нет. Тем не менее при старте другим способом выполняется микропрограммка, заменить ее не получится, не хватает места. Печати версии бейсика при старте нет для сокращения размера, чтобы легче было разместить в пзу при необходимости. Ну и печать версии на экране не решает задачу определения версии из программы.

  10. #660

    Регистрация
    02.02.2005
    Адрес
    Saint-Petersburg
    Сообщений
    221
    Спасибо Благодарностей отдано 
    127
    Спасибо Благодарностей получено 
    48
    Поблагодарили
    30 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В порядке бреда. Наверное цифра 2 версии нам вообще не нужна. Потому что и так ясно что бейсик 2.какой-то. Поэтому достаточно 1 байта. Если появляется Бейсик 3, ну значит в этом байте будет 3, для 3.1 - 4 и т.д. До мажорной версии 4.какой-то мы врядли доживём. Есть функция которая меня выбесила - INP. Почему она не IN? Чтобы парсер отличил от INT? Вот это 1 байт, кстати. Ломает совместимость, правда.
    Последний раз редактировалось aGGreSSor; 25.07.2025 в 20:18.

Страница 66 из 70 ПерваяПервая ... 626364656667686970 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Картотека ПО для Вектора-06ц
    от svofski в разделе Вектор
    Ответов: 719
    Последнее: 04.04.2024, 11:13
  2. Восстановление Вектора-06ц
    от Daniil Chislov 86 в разделе Вектор
    Ответов: 100
    Последнее: 11.03.2021, 00:23
  3. Ответов: 198
    Последнее: 26.04.2020, 13:05
  4. Ответов: 58
    Последнее: 06.07.2019, 23:56
  5. Ответов: 8
    Последнее: 14.11.2008, 02:41

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •