User Tag List

Страница 31 из 70 ПерваяПервая ... 272829303132333435 ... ПоследняяПоследняя
Показано с 301 по 310 из 697

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

  1. #301

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

    По умолчанию

    Цитата Сообщение от Ramiros Посмотреть сообщение
    по АР-2 быстрый набор сохранится?
    Да, сохранился. "Новый" по УС+СС - 335 байт, "старый" по АР2 - 79 байт. Есть еще резервы - таблицу синусов для дуг (256 байт) в CIRCLE можно сократить вдвое, а промежуточные значения вычислять линейной интерполяцией. Дальше сложнее. Можно убрать принтерные процедуры, выигрыш не оценивал. Ну и есть две таблицы по 256 байт для вычисления адресов и масок точек. Их в крайнем случае можно сократить (в basic48k сократил таблицу масок до 8 байт), но это приведет к замедлению графики. Вопрос в приоритетах, что важно, а что не очень.

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

  3. #302

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,065
    Спасибо Благодарностей отдано 
    582
    Спасибо Благодарностей получено 
    471
    Поблагодарили
    253 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    "Новый" по УС+СС - 335 байт, "старый" по АР2 - 79 байт.
    По поводу быстрых наборов: активно пользовался и тем, и другим, но чаще через УС+СС, и заметил ещё с версии 2.50, что команды там выводятся немного по-разному, например по УС+СС+<запятая> выводит CLOAD с пробелом и кавычками в конце, а по АР2,[ -- без кавычек и пробела. Может если как-то объединить оба этих набора, то это немного сократит код?

  4. #303

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

    По умолчанию

    "Классический" быстрый набор (АР2+), унаследованный от РКшного бейсика, выдает операторы и функции из таблицы токенизатора. А "новый" (УС+СС) пользуется собственной отдельной таблицей, куда в принципе можно ввести что угодно. В примере с cload его можно убрать из УС+СС, но не из АР2 (если запретить выдачу cload в АР2, то это не сократит, а увеличит соответствующую процедуру). Оба быстрых набора сегодня лично мне кажутся не очень нужными, особенно учитывая наличие современных утилит конверсии txt<->bas/cas, но я догадываюсь, что не все со мной согласны, поэтому в 2.55-2.72 я их не трогал. Если уж убирать, то ради какой-нибудь очень нужной штуки.

  5. #304

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

    По умолчанию

    Есть идея усовершенствовать ANTIGRAV - ускорить человечика и взлёт ракеты, а также уровень при загрузке не рисовать постепенно, а быстро загрузить через BLOAD.

    1. Вывод человечика идёт через POKE. По совету ivagor-а я уже заменил десятичные данные на шестнадцатеричные - немного ускорения уже есть.
    И осталась идея в команде POKE отключить проверку адреса куда заносятся данные - это будет ещё + в ускорение.
    Как можно это реализовать через ассемблерный код вставленый в тело моей программы (подобно тому как вставлен альтернативный опрос клавиатуры) ?

    2. Ускорить вывод ракеты - он происходить через PUT. ivagor написал что PUT можно ускорить при ширине фрагмента кратной 8 точек.
    Если нежелательно изменить это в Бейсике (для сохранения совместимости), то можно ли это реализовать через ассемблерный код вставленый в тело моей программы,
    чтобы это было особенностью только моей программы, а не изменения Бейсика (это для сохранения совместимости) ?
    Также есть проблема что PUT неправильно выводит данные, если при аппаратном скроллинге есть переход через границу адреса FF на 00 (в столбике).
    Можно ли как-то это устранить ?

    3. Загрузка уровня через BLOAD - можно реализовать уже сейчас без видоизменения Бейсика.
    Таким образом можно сделать несколько различных уровней.
    И так можно очень сильно сэкономить памяти т.к. всё что рисовалось через операторы Бейсика,
    будет уже нарисовано и в готовом виде загружено в экранную-память (8000-FFFF).
    При этом графика уровня уже может быть более разнообразной т.к. она не занимает память, а грузится сразу на своё место.
    А ещё можно данные уровня тоже грузить через BLOAD (заодно с картинкой уровня) например с 7F00-FFFF.
    Таким образом нет необходимости хранить все уровни в коде программы - это тоже сэкономит память.

  6. #305

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

    По умолчанию

    Цитата Сообщение от metamorpho Посмотреть сообщение
    в команде POKE отключить проверку адреса куда заносятся данные - это будет ещё + в ускорение.
    Это очень-очень маленькое ускорение, могу гарантировать, что заметно не будет.
    Цитата Сообщение от metamorpho Посмотреть сообщение
    PUT можно ускорить при ширине фрагмента кратной 8 точек.
    Да, это сравнительно простой вариант. В сложном, если очень заморочиться, можно сделать быстрый PUT с любыми размерами, но при некоторых неудобных значениях ширины придется сочетать байтовый и пиксельный вывод. На руку играет ошибка в описании бейсика, где приведена формула размера массива для GET, дающая во многих случаях завышенные значения. Возможно это для компенсации неаккуратного get, который иногда использует лишние байты. Проблема с быстрыми GET и PUT в том, что если не убрать все "лишнее" из бейсика, то они не поместятся. Вариант с кратностью 8 точкам проще, но менее интересен, т.к. во многих игрушках ширина фрагментов не подходит и они не ускорятся.
    Цитата Сообщение от metamorpho Посмотреть сообщение
    Также есть проблема что PUT неправильно выводит данные, если при аппаратном скроллинге есть переход через границу адреса FF на 00 (в столбике).
    Можно ли как-то это устранить ?
    Можно переделать обрезание на заворот, но это создает потенциальную несовместимость с имеющимися программами, вдруг есть игрушки, которые используют эту фичу.
    Лучше использовать ассемблерную процедуру.

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

    Цитата Сообщение от metamorpho Посмотреть сообщение
    И так можно очень сильно сэкономить памяти т.к. всё что рисовалось через операторы Бейсика,
    будет уже нарисовано и в готовом виде загружено в экранную-память (8000-FFFF).
    Обращу внимание, что загрузка 32 килобайт в формате монитора на стандартной скорости - это в районе 200 секунд. Сейчас в ANTIGRAV от RUN до завершения построения уровня проходит 164 (2.5) или 134 (2.71-2.72) секунды. Но экономия памяти для программы на бейсике при использовании bload несомненная.

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

    metamorpho(21.04.2023)

  7. #306

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,065
    Спасибо Благодарностей отдано 
    582
    Спасибо Благодарностей получено 
    471
    Поблагодарили
    253 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    В примере с cload его можно убрать из УС+СС
    Не, я имел в виду не сокращать как-то количество команд, а сделать для обоих вариантов один общий метод вывода команды из одной таблицы, отдельной или токенизатора.

    Цитата Сообщение от ivagor Посмотреть сообщение
    Оба быстрых набора сегодня лично мне кажутся не очень нужными
    Может и так, если не писать программы непосредственно в Бейсике.

  8. #307

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

    По умолчанию

    Цитата Сообщение от Improver Посмотреть сообщение
    для обоих вариантов один общий метод вывода команды из одной таблицы, отдельной или токенизатора.
    Технически можно убрать отдельную таблицу для УС+СС и задублировать выдачу по AР2+ и УС+СС+, но мне это кажется излишним.

  9. #308

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

    По умолчанию

    Заменил 2.72 на 2.80. Дополнил результаты тестирования PAINT.

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

    Improver(22.04.2023), metamorpho(22.04.2023)

  10. #309

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,065
    Спасибо Благодарностей отдано 
    582
    Спасибо Благодарностей получено 
    471
    Поблагодарили
    253 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    1. Убрал быстрый набор по УС+СС.
    Ну это, может быть, зря, я предлагал объединить их с АР2, а не сократить... Можно как-то вернуть хотя бы основные команды, RUN, LIST, NEW, EDIT, CLOAD/CSAVE и BLOAD/BSAVE?

  11. #310

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

    По умолчанию

    Полнофункциональный 2.71 остался, я его не убирал. А 2.80 - это для любителей быстрого paint.
    Есть справка по комбинациям АР2+ РКшного микрона, она в значительной степени подходит и для векторовского бейсика.
    EDIT - АР2+1
    CLOAD - АР2+[
    CSAVE - АР2+\
    LIST - АР2+Y
    RUN - АР2+J

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

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

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

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

Ваши права

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