User Tag List

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

Тема: Компилирование кода MSX Basic в COM-файл

Древовидный режим

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

    Регистрация
    15.06.2010
    Адрес
    г. Чита
    Сообщений
    65
    Спасибо Благодарностей отдано 
    110
    Спасибо Благодарностей получено 
    13
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от yevrowl Посмотреть сообщение
    При помощи компилятора MSX Basic от Егора Глебовича Вознесенского — SOLiD VBasic — попытался собрать в командный файл MSX-DOS свой исходник (bt.bas).

    Инструкция — https://sysadminmosaic.ru/msx/vbc/vbc

    Затем попытался собрать штатным компилятором Microsoft Basic Compiler.

    Инструкция — http://sysadminmosaic.ru/msx/basic_c...basic_compiler

    В обоих случаях не получилось:



    Посоветовали компилировать бразильским компилятором Mozart Basic от Cibertron Software — однако результат компиляции отличается от запуска в среде MSX Basic.

    Исходник (bt.bas) прилагается:

    bt.7z

    Можно ли собрать COM-файл, который будет функционировать как исходник после команды RUN?
    Давайте пройдемся по вашим проблемам по мере их возникновения.
    Первое, о VBasic Егора Вознесенского: К сожалению та версия компилятора что доступна в интернете, или недописана, или повреждена, либо то и другое одновременно. По крайней мере у меня он сыпал мусором в ассемблерный файл при компиляции вполне тривиальной программы.
    По тексту ошибки при компиляции вашей программы, на этапе линковки с библиотекой линковщик не может найти в ней функцию/подпрограмму BEEPX которая является реализацией оператора BEEP. Что бы понять точнее надо посмотреть ассемблерный листинг и просмотреть библиотеку с которой линкуется программа.
    Далее: В документации к компилятору прямо сказано следующее: "Типы переменных жёстко связаны с именами. Нельзя, например использовать в одной программе A и A$, а также массив с именем, совпадающим с именем простой переменной. Подробнее об этом в главе 3."
    В третей главе говорится следующее:"В отличие от MSX BASIC по умолчанию все переменные определены как целые, поэтому следует в программах первой строкой вставить DEFDBL A-Z. Напротив, конструкцию типа DEFINT A-Z можно опустить."
    Далее "Тип переменной устанавливается компилятором один раз при первой встрече согласно правилам, описанным выше, и остаётся неизменным на протяжении всей программы, поэтому символ точности можно указывать только один раз, что экономит текст программы и избавляет пользователя от возможных ошибок в результате пропуска такого символа в программе."
    Далее "Функция RND - если аргумент плавающий, работает стандартно в отличие от случая с целым аргументом, который описан ниже.
    Если функция вызвана как RND(M), где М - целое выражение, она возвращает строго случайное, равномерно распределенное целое число в интервале от 0 (включительно) до M (исключительно), положительное или отрицательное в зависимости от знака М."

    Теперь по поводу Microsoft BASIC Compiler, это НЕ компилятор MSX BASIC. Это (как ни удивительно прозвучит) компилятор Microsoft BASIC который имеет некоторые отличия от MSX Basic в поведении, к примеру оператора FOR. Далее данный компилятор не курсах о расширенных аппаратных возможностях MSX (Screen, Width, CLS, Locate и т.д.), и соответственно буде пугаться при их виде.
    Почему Мелкомягкие таки не удосужились создать полноценный компилятор для MSX Basic? Сделаю спекулятивное предположение, что это произошло из-за ссоры Кея Ниши и Билла Гейтса, когда Гейтс попытался подмять стандарт MSX под себя, а Ниши резко воспротивился этому. После этого Microsoft резко вышла из проекта хлопнув дверью, и далее ASCII corp самостоятельно возилась со стандартом MSX.
    ПыСы. Я посмотрел исходный текст вашей программы, и у меня сложилось впечатление что вы отлаживали эту программу на GWBasic. По крайней мере псевдографику в вашей программе я смог увидеть только в досовской 866 кодовой таблице, а не в КОИ-8

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

    yevrowl(16.10.2025)

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

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

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

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

Похожие темы

  1. Ответов: 31
    Последнее: 10.09.2022, 14:22
  2. MSX BASIC — Промежуточный код
    от GreyWolf в разделе MSX
    Ответов: 7
    Последнее: 05.12.2019, 21:42
  3. Ответов: 30
    Последнее: 28.11.2017, 02:51
  4. Ответов: 0
    Последнее: 24.04.2017, 16:24
  5. Spectaculator - BASIC LLIST в текстовый файл
    от Gelip в разделе Эмуляторы
    Ответов: 3
    Последнее: 16.07.2011, 02:30

Ваши права

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