User Tag List

Страница 67 из 70 ПерваяПервая ... 6364656667686970 ПоследняяПоследняя
Показано с 661 по 670 из 697

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

  1. #661

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

    По умолчанию

    Как я вижу варианты требований к точности определения версии:
    1. Нужна конкретная версия и только она. Такое возможно, если программа вызывает через машинный код процедуры бейсика, адреса которых плавают от версии к версии. Пример - бейсиковский вариант Моны. В таком случае самый надежный вариант ориентироваться на 2.5.
    2. Нужна версия, в которой уже исправлена определенная ошибка или ошибки. Т.е. скорее всего подойдут несколько версий начиная с такой-то. Примеры были на ретрограде, например широкое использование шестнадцатеричных чисел, которые в 2.5 очень ограниченны. Можно сделать очень просто (хотя и не очень изящно) - печатаем на экране что-то вроде
    "Для данной программы требуется версия бейсика не ниже такой-то"
    потом пробуем использовать исправленный вариант какого-то оператора или функции. Если бейсик старый - вылетаем с ошибкой и на экране остается вышеприведенное сообщение. Если бейсик подходящий - стираем сообщение и идем дальше.
    3. Используются внутренние особенности, без которых можно обойтись. Примеры были и в классических программах и на ретрограде. Например - для картинки, которая будет выведена с использованием PUT, пишем данные прямо в массив, откуда будет PUT. Вместо этого лучше нарисовать на экране например через POKE, потом GET, потом PUT, в таком случае программа будет совместима с любым внутренним представлением картинки GET/PUT. Примеры таких адаптаций пары программ я выкладывал, это вполне осуществимо.
    Последний раз редактировалось ivagor; 25.07.2025 в 20:18.

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

  3. #662

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

    По умолчанию

    Ушатал Бейсик. Писал трек в текстовом редакторе с конверсией в cas через Vector06CBasic. Где-то паттерна до 6 всё было нормально, дальше начало орать про "Несоотв. данных" на этапе загрузки cas. Далее в эмуляторе vv начали происходить чудеса. Бейсик 2.5 ушатывается сразу, Бейсик 2.997 ещё немного мучается. Прилагаю программу: conv_polet.zip и видео на тытруба. В документации не сказано сколько м.б. GOTO с оператора ON, мог перебрать. Строки передаваемые в PLAY менее 127 символов.

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

    ivagor(26.07.2025)

  4. #663

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

    По умолчанию

    Проблема не в бейсике, это конвертер привередничает. Если несоответствие данных при загрузке, то запускать нет смысла, надо добиваться безошибочной загрузки.
    Загрузил в Vector06CBasic, удалил последнюю пустую строку, потом нажал Enter (добавил пустую строку) и после этого он смог сделать нормальный cas, который нормально загружается и играет и в 2.5 и в 2.997.
    Конверсия музыки отличная, спасибо!

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

    aGGreSSor(26.07.2025)

  5. #664

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

    По умолчанию

    Попробовал встроенным конвертером в v06x. Надо переименовать .txt в .asc и заменить клопов на доллары, а так все всосалось сразу.
    Больше игр нет

  6. #665

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

    По умолчанию

    Вопрос по функциям. В описании DEF FN сказано "Список параметров содержит имена формальных переменных, которые используются при формировании выражения функции." Например, два параметра понадобится для вычисления целочисленного остатка от деления (т.к. функции MOD в 06Ц Бейсик нет). Оператор DEF DN M(A,B)=A-INT(A/B)*B даёт синтаксическую ошибку. Обнаружил, что если записать DEF FN M(A B)=A-INT(A/B)*B, то ошибки нет. Казалось бы: это оно. Но при попытке передачи функции аргументов, например FN M(2 4), выбрасывает ошибку "деление на ноль". Судя по всему, при таком вызове в функцию передаётся 0 для обоих аргументов. Потому что тестовые DEF FN M(A B)=A и DEF FN M(A B)=B вернули 0.

  7. #666

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

    По умолчанию

    Версия микрософтовского бейсика, которая была прототипом, поддерживает только один аргумент DEFFN. Цитата со страницы 31 (страница 36 pdf) отсюда
    "A function may be defined to be any expression, but may only have one argument"

    В описании 2.5 начало (там где Формат: ) правильное
    "<параметр> - любое допустимое имя, которое будем называть формальной переменной"
    Но потом в разделе Действие: уже ерунда про список параметров.

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

    aGGreSSor(31.07.2025)

  8. #667

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

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Версия микрософтовского бейсика, которая была прототипом, поддерживает только один аргумент DEFFN. Цитата со страницы 31 (страница 36 pdf)
    Отличная pdf, спасибо! Заодно прояснил себе, что оператор с нестандартным/нелогичным именем INP (которое бесит) был ещё в 8K ALTAIR BASIC на 9 странице.

    Хорошо бы исправить эту формулировку в следующей версии описания (пользуюсь pdf от metamorpho ( v.1.2 2023-2024 г.). Также там в описании SCREEN есть невнятное место: N - код математического цвета (от 0 до 15), начиная с которого производится изменение цвета (0-цвет фона). Отсюда невозможно понять, что 1 - цвет бордюра. Например, SCREEN 0,0,5,0 установит красный фон и чёрный бордюр. И, кстати, 15 как я понимаю - это цвет тона. Т.е. SCREEN 0,15,5 сработает аналогично COLOR 5 и установит красный цвет тона. @metamorpho, неплохо было бы добавить эту формулировку. Кстати, во всех доках палитровых бейсиков которые находил, то что в v1.2 называется математическими цветами, называют логическими. Долго пытался понять что такое "математический" цвет. Нормальная формулировка: Команда SCREEN 0,0,L,P служит для присвоения логическому цвету L (0-15, из 16 возможных) физического цвета P из палитры. Она аналогична VDU 19,L,P в Acorn BASIC, кстати.
    Последний раз редактировалось aGGreSSor; 31.07.2025 в 12:14.

  9. #668

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

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    не хотелось бы замедлять PEEK введением проверок, но на это я в крайнем случае готов.
    Ну а что, рабочий вариант. Что там возращают бейсики 2.5 на PEEK(0) и PEEK(1)? Для новых версий - номер версии.

  10. #669

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

    По умолчанию

    POKE и PEEK по адресам 0-639 - это знакогенератор. Если понадеяться на то, что в знакогенератор практически всегда пишут, но не читают, то можно попробовать выдавать по PEEK(0) и PEEK(1) что-нибудь другое (не из знакогенератора), например версию бейсика.
    Свое видение детекта версии я уже написал, на мой взгляд без явной реализации этой фичи в бейсике можно обойтись. В тех же микрософтовских бейсиках поздних версий такого тоже не добавили.

  11. #670

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

    По умолчанию

    Цитата Сообщение от aGGreSSor Посмотреть сообщение
    Долго пытался понять что такое "математический" цвет.
    Это терминология из штатного описания бейсика 2.5

    Цитата Сообщение от aGGreSSor Посмотреть сообщение
    Также там в описании SCREEN есть невнятное место: N - код математического цвета (от 0 до 15), начиная с которого производится изменение цвета (0-цвет фона). Отсюда невозможно понять, что 1 - цвет бордюра.
    Цвет бордюра зависит не только от SCREEN (физический) но и от третьего аргумента COLOR (математический/логический, по умолчанию в 2.5=1, но так не во всех его клонах).

    Цитата Сообщение от aGGreSSor Посмотреть сообщение
    Т.е. SCREEN 0,15,5 сработает аналогично COLOR 5 и установит красный цвет тона.
    SCREEN0,15,5 не аналогичен COLOR5
    1. Он поменяет 15й цвет палитры, COLOR5 цвет палитры не поменяет.
    2. COLOR5 задаст в каких плоскостях будут рисовать следующие графические операторы (рисуем в 0й и 2й плоскостях, стираем в 1й и 3й - это справедливо, если разрешено рисование во всех плоскостях). SCREEN0 не влияет на то, в каких плоскостях будут рисовать следующие графические операторы.

    Цитата Сообщение от aGGreSSor Посмотреть сообщение
    15 как я понимаю - это цвет тона
    В состоянии по умолчанию настроено рисование цветом 15, т.е. во всех плоскостях. Но опять же это справедливо не для всех клонов 2.5

    Цитата Сообщение от aGGreSSor Посмотреть сообщение
    Команда SCREEN 0,0,L,P служит для присвоения логическому цвету L (0-15, из 16 возможных) физического цвета P из палитры.
    Команда SCREEN0,0,L,P присвоит математическим/логическим цветам 0 и 1 физические цвета L и P

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

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

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

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

Ваши права

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