Важная информация

User Tag List

Страница 17 из 70 ПерваяПервая ... 131415161718192021 ... ПоследняяПоследняя
Показано с 161 по 170 из 697

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

  1. #161

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

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    "Единый самонастраивающийся бейсик" удобнее для использования,
    Не то, что для использования, скорее для разработки -- делать одну универсальную версию проще, чем поддерживать актуальность нескольких. Хотя, случаи всякие бывают, может тут универсальность только навредит, не возражаю.

    Цитата Сообщение от ivagor Посмотреть сообщение
    Например в Basic48k для ускорения и сокращения немного используются недокументированные команды 8085
    Интересный момент, не знал этого. А насколько Basic48k по другим оптимизациям отличается от более позднего 2.62? Может его тоже пора обновить?

    Цитата Сообщение от ivagor Посмотреть сообщение
    Более нужная вещь - run262 или basd262 для запуска с диска.
    Согласен, это тоже нужно.

  2. #162

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

    По умолчанию

    Цитата Сообщение от Improver Посмотреть сообщение
    скорее для разработки -- делать одну универсальную версию проще, чем поддерживать актуальность нескольких.
    Еще проще не поддерживать актуальность, и к сожалению, на данный момент я следую этим путем. Фактически три ветки: бейсик для ВМ1 - упор на ускорение, в т.ч. графики, исправлены некоторые баги; basic48k - возможность делать большие программы, исправлены некоторые баги; basic 2.62 - исправлены все известные баги (там где это не мешает совместимости) и некоторое ускорение. Последнее направление наиболее актуально, первое скорее всего все (т.к. ВМ1 актуален только для коллекционеров), второе под вопросом.
    basic48 несколько уступает в скорости работы с графикой, т.к. приходится щелкать страницами, но не сильно.

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

    Improver(08.03.2023)

  3. #163

    Регистрация
    13.05.2018
    Адрес
    г. Тамбов
    Сообщений
    816
    Спасибо Благодарностей отдано 
    345
    Спасибо Благодарностей получено 
    659
    Поблагодарили
    200 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Привет всем...

    Думаю компилятор для Basic' a проще будет -
    на основе драйверов устройств сделать...
    ???

    На Спектруме - есть множество компиляторов...
    Можете глянуть...
    MCoder2, Tobos, Blast и тд...
    Была целая кассета компиляторов...

    Может что и подойдет...

  4. #164

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

    По умолчанию

    Наконец-то довёл свой эксперимент до более-менее логического завершения.
    Эксперимент называется "База ХТ1024". Всё дело происходило на Windows 7 32bit.
    Текст программы редактировался с помощью утилиты Vector06CBasic и обычного текстового редактора. Утилита
    Vector06CBasic вполне чётко справляется со своей главной задачей - конвертирование. Однако если бы там был более
    богатый выбор цветовых тем и наличие более чёткого шрифта - тогда было бы совсем хорошо (однако в целом это не
    обязательно т.к. есть куча удобных текстовых редакторов). Ещё заметил такое неудобство в Vector06CBasic - когда
    переключаешься с одного окна на другое через ALT+Tab то нужно сначала щёлкнуть на поле конвертора и только потом
    далее что-то делать можно.
    Тестировал программу в эмуляторе VV. Там насколько я понимаю грузится стандартный Бейсик v2.5
    Интересно что после загрузки в Бейсик, программа первый раз работает нормально, а потом я нажимал F12 и снова
    запускал программу и она выдаёт ошибку - это похоже что остатки некоторых данных от первого запуска сохраняются в
    памяти, а при повторном запуске получается "столкновение" интересов и сбой (так что если хотите второй раз запустить
    программу, то нужно нажать F11 и повторить загрузку Бейсика и программы). При этом вспомнилось как я пытался в
    детстве писать программы на Бейсике и записывал это на магнитную ленту кассет (по два раза на всякий случай) - и
    постоянно в напряжении (пока не записал на кассету) с мыслями главное чтобы не отключили свет или чтобы не зависла
    программа - т.к. при данных событиях был примерно такой по смыслу возглас - "шеф всё пропало...." т.е. всё что "набрано
    непосильным трудом" исчезло и теперь нужно снова набирать программу - да это было то ещё испытание нервов - но всё
    же вдохновлённые умы шли вперёд и делали свои шедевры
    Приступая к этому проекту поначалу думал что сейчас по быстренькому напишу програмку (это ведь Бейсик), но
    то и дело спотыкался об специфику Векторовского синтаксиса Бейсика. Также поначалу долго не мог понять почему
    выдавалась непонятная ошибка - оказалось что в конце текста на Бейсике (вконце последней строки) нужно нажать Enter,
    это таков формат Бейсик текста - а без этого будет выдавать непонятную ошибку и попробуй догадайся что же случилось.
    Далее очень скоро начались проблемы с нехваткой памяти. Пришлось укрощать код прогрммы, особенно помогло
    удаление почти всех комментариев REM (так как я довольно много их составлял). Далее время ушло на выяснение вопроса
    - какой способ вывода графики наиболее быстрый.
    Протестировал четыре следующих варианта вывода спрайта 8Х8:
    вариант_1 = используя рисование прямоугольника с маской LINE BF (в одну плоскость)
    вариант_2 = используя прямую запись в экран через POKE (в одну плоскость)
    вариант_3 = используя подпрограмму в машинных кодах и её вызов через USR (в одну плоскость)
    вариант_4 = используя вывод графики командой PUT
    Насколько я выяснил все способы оказались почти одинаково медлены. Особенно удивил вариант подпрограммы в
    машинных кодах и её вызов через USR, я думал что будет быстрее других, но нет. Скорее всего если бы размеры спрайта
    были более крупными, тогда сила ассемблера проявилась бы.
    Хотя вначале я выбрал вариант 4 (вывод через PUT) т.к. мне показалось что он немного более быстрее выводит
    спрайт и им более удобно работать, но в итоге всё переделал и вывод главного героя я сделал через прямую запись в
    экран командой POKE (в одну плоскость). Это стало необходимо поскольку память с PUT вариантом быстро закончилась т.к.
    использование PUT оказалось довольно громоздким (для него нужно резервировать массив + рисуем главного героя +
    запоминаем через GET).
    Скорость персонажа в итоге получилась как на соревнованиях улиток
    Кажется я изобрёл новый игровой жанр "пошаговый платформер" (хотя нет он и до этого существовал).
    Но как бы всё работало на АССЕМБЛЕРЕ ? В эмуляторе VV есть кнопка F10, которая включает 12Мгц и "улитка"
    существенно ускоряется.
    В этом проекте также есть фон (одноцветный) в некоторых местах, а также есть места где персонаж оказывается
    за объектом и его видно лишь частично - реализовано этос помощью размещения графики в разных плоскостях - это
    несомненно сильная сторона Вектора.
    В конце уровня ракета взлетает, но полностью не улетает в космос т.к. проблема - команда PUT (выводящая
    ракету) спотыкается когда при вертикальным скроле координата Y сталкивается с границей-переходом от 255 сразу в
    ноль, PUT не умеет это различать. Я хотел было сделать полёт ракеты через POKE, но решил что достаточно того что есть
    (показано как ракета взлетает) в данном варианте исполнения проекта.
    Программа почти вся на Бейсике, кроме одного - машинный код в программе используется для опроса
    клавиатуры (спасибо Ivagor за код), т.к. INKEYS Бейсика из-за создаваемого им буфера нажатых клавиш - препятствует
    тому чтобы сразу реагировать на изменения направления движения (если игрок жмёт например вправо или влево то всё
    это копится в буфере и пока он не опустошён никуда в другую сторону не повернёшь).
    На определёном этапе написания программы снова вылезло сообщение "нет памяти" - поэтому решил немного
    ужать уровень-карту игры. REM вначале программы это "сжатый" уровень. Можно было ещё сжать, но появившейся
    свободной памяти уже хватало.
    Код программы наверное можно в чём-то оптимизировать и возможно это прибавит совсем немного скорости, но
    решил этого не делать т.к. цель в основном другая была - проверить идею анимации с помощью палитры цветов. Да кстати
    из всего что вы видите на экране - рисуется только персонаж - всё остальное анимируется через изменение палитры
    цветов. Эксперимент удался - результаты мне понравились. Конечно слишком много вариантов анимации и различных
    цветов не получится для одного экрана, но в разных уровнях игры можно использовать другие цвета и другие "обекты" для
    анимации с помощью палитры - так что в целом возможно неплохое разнообразие (в рамках Вектора).
    Ощущение от использования Бейсика v.2.5 - для своего времени (80-х) это было конечно мощно и хорошая идея
    + некоторые "хитрые" знания + некоторое количество фантазии смогли бы и без использования машинных кодов сделать
    "небыстрые" интересные проекты (что впрочем отчасти и было сделано многими энтузиастами того времени).
    Этот же проект возможно в том или ином виде когда-нибудь воплотится но уже будет сделан полностью на ассемблере.
    Для жедающих посмотреть-потестировать это произведение - в приложении (см. файл ниже) текст программы на Бейсике
    для Вектора 06Ц. Для загрузки уровня можно включить ускорение F10, а потом включить нормальный режим F9. Клавиши
    управления: курсорные стрелки и пробел. Нашему персонажу по какой-то причине нужно покинуть космическую базу
    XT1024, улетев на космическом корабле. Для этого нужно открыть все двери - это делается через пульты управления -
    заходим на пульт нажимаем пробел и дверь открывается. В самом конце не забудьте открыть большую дверь над ракетой,
    иначе не взлетит. Открыв все двери поднимаетесь на космиечский корабль и улетаете....

    BAZAXT1024_v2.zip

    Последний раз редактировалось metamorpho; 26.03.2023 в 21:32. Причина: исправление и замена файла

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

    Improver(18.03.2023), ivagor(17.03.2023), lafromm31(20.03.2023), nzeemin(19.03.2023), parallelno(18.03.2023), PPC(19.03.2023), svofski(17.03.2023), thetrik(17.03.2023)

  5. #165

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

    По умолчанию

    Впечатлен, не ожидал такого. Вроде бы идея лежала на поверхности, но не могу вспомнить, чтобы в игрушке на бейсике палитра использовалась для анимации многочисленных элементов уровня. Для полного счастья не хватает скорости.
    Чтобы можно было запускать повторно надо изменить в строке 83 переход на строку 91 вместо 93.

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

    metamorpho(18.03.2023)

  6. #166

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

    По умолчанию

    Присоединяюсь, впечатляюсь вместе с ivagor-ом. Очень крутая получилась игрушка. Анимация уровня просто отличная.
    Больше игр нет

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

    metamorpho(18.03.2023)

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

  8. #167

    Регистрация
    02.12.2012
    Адрес
    г. Астрахань
    Сообщений
    24
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    31
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Для бейсика - очень впечатляюще! Круто!
    "Hello world!"
    17 errors
    31 warnings

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

    metamorpho(18.03.2023)

  9. #168

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

    По умолчанию

    Доработал бейсик до 2.63, теперь там можно внедряться в обработчик прерывания как в 2.5. Просто раньше не было в открытом доступе игрушек требующих такую фичу (свои я не выкладывал), а теперь это нужно для BAZAXT1024/ANTIGRAV.

    Про резервы ANTIGRAV по размеру. Массив GROT(32,32) можно безболезненно урезать до (31,31) и даже не менять программу. Если менять программу, то можно выиграть еще 3 Кб - вместо DIM организовать байтовый массив с использованим POKE и PEEK. Вредный совет - все имена переменных можно сократить до 2 букв, все равно эта ветка бейсиков больше не учитывает.
    Вложения Вложения

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

    Improver(18.03.2023), metamorpho(18.03.2023), svofski(18.03.2023), thetrik(18.03.2023)

  10. #169

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

    По умолчанию

    Хочу написать несколько мыслей по поводу ANTIGRAV, надеюсь в них есть конструктивность.
    1. Можно попробовать все же реализовать концепцию basic-only изменив принцип управления. Пусть нажатие клавиши задает направление движения не на одну позицию, а до упора или до нажатия другой клавиши. Возможно тогда INKEY$ все же более-менее подойдет. Чтобы уменьшить влияние буферизации кнопку действия лучше перенести с пробела на СС и опрашивать по INP. Тогда, кстати, можно одновременно опрашивать две клавиши штатными средствами. Есть еще РУС/ЛАТ, но к нему привязана лампочка, хотя этот недостаток можно попробовать обратить в достоинство, если придумать какую-то игровую механику.
    2. Если же оставить машинокодовый опрос, то почему-бы не решить ассемблером и другую проблему - скорость рисования уровня.
    3. Игра на бейсике, поэтому тут не до быстроты реакции, я однозначно за это. Но было бы здорово добавить элемент головоломки, чтобы немного подумать над порядком выключения лазеров и открытия дверей.
    Последний раз редактировалось ivagor; 18.03.2023 в 14:26. Причина: убрал про ракету

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

    metamorpho(18.03.2023)

  11. #170

    Регистрация
    29.06.2022
    Адрес
    г. Ирвайн, США
    Сообщений
    408
    Спасибо Благодарностей отдано 
    590
    Спасибо Благодарностей получено 
    340
    Поблагодарили
    109 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    metamorpho, класная задумка и реализация! Прикольно было надлюдать как строиться уровень Рокета только застряла и так не вылетела в космос, а в осталальном все супер!

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

    metamorpho(19.03.2023)

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

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

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

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

Ваши права

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