User Tag List

Показано с 1 по 10 из 697

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

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

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

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

    По умолчанию

    Закрыл еще один детский гештальт связанный с векторовским бейсиком - быстрые PUT и GET. Это не замена полнофункционального 2.85, это ответвление, т.к. в 2.90 пришлось выпилить: быстрый набор (УС+СС и АР2), SCREEN5 (JCUKEN/QWERTY).
    При ширине фрагмента <8 точек работает пиксельный вариант (скорость между 2.84 и 2.85).
    При ширине фрагмента >=8 точек работает байтово-пиксельный вариант (в лучшем случае PUT быстрее 2.85 почти в 2 раза, быстрее 2.5 почти в 3 раза; GET примерно аналогично, не стал измерять).
    Если добавить ограничений (чтобы ширина была четная или даже кратна 8 точкам), то можно было бы еще ускорить, но есть две причины, почему не стал:
    1. Хотелось получить эффект для большинства существующих программ, а там нечетная ширина для GET/PUT встречается.
    2. Свободного места для альтернативных вариантов совершенно не осталось.

    Пара слов про особенности PUT.
    В описании PUT сказано, что аргументы X и Y в диапазоне 0-255. На самом деле они трактуются как двухбайтные знаковые. Отрицатаельные значения позволяют при необходимости постепенно выдвигать картинку слева и/или снизу. Это, кстати, позволяет эмулировать и заворот - делаем 2 PUT одной картинки, один вариант с положительными координатами, другой - с отрицательными (ну и надо их конечно совместить).
    У пиксельного PUT есть побочный эффект - цвет последней "значащей" (не фоновой) точки после PUT становится текущим цветом рисования и вывода символов. Повторить такое поведение в байтово-пиксельном варианте во всех случаях к сожалению невозможно - это съело бы весь выигрыш в скорости, да и места нет. К счастью это не критично, попробовал несколько программ/игрушек - все нормально.

    Upd 15.05.2023. Исправил GET и PUT (ошибки были в 2.90, в 2.85 все нормально), спасибо metamorpho за багрепорт. PUT немного ускорен.

    Upd 18.05.2023. Заметно ускорен PUT (для ширины фрагмента >= 8 точек, особенно при четной ширине в режиме 2), немного ускорен GET (для ширины фрагмента >= 8 точек).

    Upd 19.05.2023.
    1. Исправлен GET для случая выхода за границу экрана (ошибка появилась в 2.92).
    2. Исправлена ошибка в оцифровщике номеров строк (появилась в 2.70) - в некоторых случаях оцифровщик мог пропустить и неправильно перевести в число слишком большие номера.
    3. Околоматематические микроускорения: сравнение, изменение знака, сложение, округление, оцифровка номеров строк.

    Upd 20.05.2023.
    1. Исправил (ошибка появилась в 2.93) и ускорил ON.
    2. Добавил в инициализатор распаковщика очистку памяти программы.
    3. Ускорены: сложение/вычитание, преобразование в целые (касается не только INT), помещение числа в стек.

    Upd 26.05.2023.
    54. Ускорены: вывод символов, LINE BF/BS.
    55. Немного ускорены: сравнение чисел, оцифровка десятичных чисел, обработчик прерываний, изменение цвета рисования точки.
    56. Исправлена ошибка разрешения доступа к плоскостям в PAINT при использовании значений цвета заливки и бордюра с предыдущего вызова PAINT.

    Upd 27.05.2023. Заметно ускорена оцифровка десятичных чисел.

    Upd 08.06.2023.
    58. Оцифровщик номеров строк переведен обратно на "стандарт Microsoft" 0-65529 и ускорен.
    59. Вернул "старый" (новый был с 2.57) вариант обработки токенов при вводе символьных переменных в INPUT. Исправлено сообщение об ошибке при вводе неправильной строки в INPUT.
    60. Исправил (ошибка была в 2.95-2.96) и ускорил сравнение чисел.
    61. Очень много оптимизаций: переходы, разбор имени и поиск переменных, математика, оцифровка чисел, массивы, обработка строк и некоторые другие вещи.

    Upd 09.06.2023 - Исправлена (крайне редкая) ошибка поиска номера строки (появилась в 2.97).
    Вложения Вложения
    Последний раз редактировалось ivagor; 09.06.2023 в 17:02. Причина: заменил на 2.97fix

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

    Improver(13.05.2023), metamorpho(13.05.2023), Stl75(13.05.2023), svofski(13.05.2023), tnt23(18.05.2023)

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

  3. #2

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

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    .... быстрые PUT и GET....
    Протестировал начальную версию ANTIGRAV (там через PUT вывод спрайта человечика) на Бейсике 2.90 - управление перестало работать, мои подозрения падают на baskey, видимо адреса опроса переехали на другие места.
    На Бейсике 2.85 тест начальной версии ANTIGRAV (там через PUT вывод спрайта человечика) прошёл успешно - управление работает - скорость немного прибавилась и движение человечика выглядит более плавно.

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

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

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

Похожие темы

  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

Ваши права

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