User Tag List

Страница 63 из 68 ПерваяПервая ... 596061626364656667 ... ПоследняяПоследняя
Показано с 621 по 630 из 697

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

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

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

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    почему добавление лишних операторов что-то ускоряет
    Лишний FOR исполняется один раз и это потребует
    в basic 2.5 - 4980 тактов
    в basic 2.996 - 2272 такта
    Т.е. за 2-3 итерации (а цикл то "бесконечный") это время будет скомпенсировано и пойдет чистый выигрыш.
    А выигрыш за счет
    1) Парсинг NEXT быстрее, чем GOTO+номер
    2) Адрес начала цикла в NEXT сохранен FORом и сразу переходим куда надо. В GOTO надо еще найти строку (если речь не о модернизированном бейсике и если номер не совпал с "кешем").

    Цитата Сообщение от svofski Посмотреть сообщение
    почему нельзя было просто написать 999 GOTO234 -- в чем смысл 199 GOTO234
    Это порча жизни кешированию переходов и ближе к реальности, когда в содержательной программе внутри цикла будут переходы, скорее всего условные.

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

    metamorpho(05.02.2025)

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    813
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    А выигрыш за счет
    1) Парсинг NEXT быстрее, чем GOTO+номер
    2) Адрес начала цикла в NEXT сохранен FORом и сразу переходим куда надо. В GOTO надо еще найти строку (если речь не о модернизированном бейсике и если номер не совпал с "кешем").
    Вот тут мне надо еще раз. В твоем примере я NEXT не вижу. Это какой-то неявный NEXT?
    Больше игр нет

    Эти 2 пользователя(ей) поблагодарили svofski за это полезное сообщение:

    ivagor(05.02.2025), metamorpho(05.02.2025)

  4. #3

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

    По умолчанию

    Спасибо, я умудрился скопировать хвост варианта NEXT из варианта GOTO, а правильный вариант такой
    1 REM
    10 REM
    100 REM
    199 FORI=.TO1STEP.:GOTO234
    200 REM
    234 REM
    999 NEXT

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

    metamorpho(05.02.2025), svofski(05.02.2025)

  5. #4

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

    По умолчанию

    Согласен, надо было четче разграничить суть и дополнительные бантики.
    Суть простая - в "бесконечных" циклах вместо
    GOTO назад
    быстрее делать так
    FORI=.TO1STEP.
    ...
    NEXT
    Переменная I выбрана случайным образом, можно использовать и другие буквы.

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

    Improver(07.02.2025), metamorpho(06.02.2025), svofski(06.02.2025)

  6. #5

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

    По умолчанию

    В msbasicах (даже версий 5.x) нет команды досрочного прерывания цикла FOR...NEXT, но есть как минимум два варианта, как это сделать.
    1. Очевидный.
    Если мы проверили внутри цикла некое условие и оказалось, что надо цикл прервать, то присваиваем переменной цикла конечное значение и переходим на NEXT.
    Строго говоря можно взять значение чуть меньше, главное чтобы (это значение+шаг цикла)>конечное значение. Это может иметь смысл, например если конечное значение дробное, а мы хотим для краткости и скорости использовать целое.
    2. Менее очевидный. Годится при наличии вложенных циклов.
    Если нам надо досрочно окончить внутренний цикл, то делаем переход за пределы внутреннего NEXT. Главное - надо в NEXT внешнего цикла обязательно добавить имя переменной этого цикла.
    NEXT с указанием переменной сбросит со стека "лишнее" и дойдет до своей переменной. Особенно эффективен этот вариант для прерывания сразу нескольких внутренних циклов с выходом во внешний.
    Вариант 1 при наличии вложенных циклов тоже годится, но скорее всего вариант 2 будет чуть быстрее, хотя лучше проверять конкретные случаи.

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

    metamorpho(08.02.2025)

  7. #6

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

    По умолчанию

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

Название:	yelfount.gif 
Просмотров:	74 
Размер:	4.9 Кб 
ID:	82133  
    Вложения Вложения

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

    Improver(31.03.2025), KTSerg(13.04.2025), metamorpho(30.03.2025), svofski(31.03.2025)

  8. #7

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

    По умолчанию

    С дизером намного лучше, ну и перешел с желтого на зеленый.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	grfntdit.gif 
Просмотров:	63 
Размер:	7.2 Кб 
ID:	82139  
    Вложения Вложения

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

    Improver(31.03.2025), KTSerg(13.04.2025), metamorpho(05.04.2025), Pyk(31.03.2025), svofski(01.04.2025)

  9. #8

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

    По умолчанию

    Переделал тригонометрию на LUT, в 2.996 ускорение почти в 3 раза (но все равно очень медленно).
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	gfntdlut.gif 
Просмотров:	34 
Размер:	7.2 Кб 
ID:	82151  
    Вложения Вложения

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

    Improver(05.04.2025), KTSerg(13.04.2025), metamorpho(05.04.2025), svofski(05.04.2025)

  10. #9

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

    По умолчанию

    Все побежали и я побежал.
    Еще год назад сделал (кроме шаманства с палитрой) версию 2.997 и хотел ее выложить вместе с более быстрым rtbasicом, но его не доделал, за год не притрагивался.
    А тут на горизонте новый Ретроград и вдруг кто-нибудь захочет использовать бейсик.
    Исправления и улучшения:
    89. Исправлены: работа разделителей , и ; с оператором PRINT; функция POS. Печать чисел без переноса, как в оригинальном бейсике-микрон для РК86.
    90. Исправлен CIRCLE (рисование дуг эллипсов при некоторых комбинациях параметров, ошибка была в 2.995). Спасибо Игорю Титарю за багрепорт.
    91. Часто встречающаяся в программах комбинация IF..THEN теперь выполняется чуть быстрее, чем практически не используемый вариант IF..GOTO
    92. В кодовых подпрограммах теперь можно использовать пересылки или стирание стеком (через BC) по методу Медноногова.
    93. Увеличено время между командами программирования палитры для максимальной совместимости с любыми 06Ц и .02.
    94. Несколько мелких оптимизаций.

    Это "очередная финальная" версия ветки 2.9x, надеюсь на это раз действительно финальная.
    Уже писал, но повторюсь, что 2.997 заменяет 2.995, по быстродействию они близки, а место более быстрого 2.996 в перспективе должен занять еще чуть более быстрый rtbasic.
    Вложения Вложения

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

    Improver(09.06.2025), metamorpho(09.06.2025), parallelno(15.06.2025), Pyk(10.06.2025), svofski(09.06.2025)

  11. #10

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

    По умолчанию

    В 2.997 длительность звучания оператора BEEP .001,1 ощутимо дольше чем BEEP .01,1

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

    Поэтому всё что остаётся автору написать в начале программы нечто подобное
    (и рассчитывать что умный пользователь пойдёт гуглить в чём дело):

    Нажмите на изображение для увеличения. 

Название:	basic_detect.jpg 
Просмотров:	43 
Размер:	22.0 Кб 
ID:	82521

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

    metamorpho, возьми эту версию, специально по заказу https://www.sensi.org/~svo/v06x/v06x-cload-run.zip
    К сожалению, sensi.org лежит и эта ссылка не доступна.

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

    Я конечно не метаморф, но эта ссылка дана также в документации Бейсик_Вектор-06Ц.pdf

Страница 63 из 68 ПерваяПервая ... 596061626364656667 ... ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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