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

User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 24

Тема: Кросскомпилятор PL/M-80

  1. #1
    Activist
    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    401
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    28 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Кросскомпилятор PL/M-80

    Всем привет.

    Оригинал от Марка можно найти здесь: https://github.com/ogdenpm/c-ports

    Мой пакет PL/M-80, каким его вижу я. В пакет входят все необходимые утилиты:
    https://github.com/MrDemonid/PL-M-80-Tools

    Итак, изменения, по сравнению с базовой версией от Марка, а точнее от Intel:
    ASM80:
    - имена файлов расширены с 6 до 8 символов + расширение.
    - длина имён идентификаторов расширена до 18 символов.
    - в именах теперь допускается символ '_'.
    - в директивах DB и DW теперь можно размещать до 16 значений в строке, против 8 в оригинале (кому мало - черкните, сделаю больше).
    - пути к файлам и утилитам задаются как в оригинале на ISIS-II, то есть в виде :F0: - :F9:.
    - корректная работа с русскими символами в комментариях (в оригинале они портились)
    - результат компиляции сохраняется в ERRORLEVEL.
    - имя компилируемого исходника теперь выводится на экран.
    - добавлена поддержка исходников в unix-формате (т.е. конец строки одним символом 0x0A).
    - добавил вывод справки по параметрам компилятора.

    LINK:
    - параметры теперь можно передавать в файле, как в более современных компиляторах, например: link @:f1:fileparams.txt

    OBJCPM:
    - поддерживает задание путей к файлам в формате ISIS-II, то есть через :F0:-:F9:.

    PLM80:
    - добавлены два оператора: BREAK и CONTINUE, для циклов.
    - в именах теперь допускается символ '_'.
    - в листинге размер страницы можно задать до 65535 строк, для более удобного просмотра.
    - корректная работа с русскими символами в комментариях.
    - пути к файлам и утилитам задаются как в оригинале на ISIS-II, то есть в виде :F0: - :F9:.
    - результат компиляции сохраняется в ERRORLEVEL.
    - имя компилируемого исходника теперь выводится на экран.
    - добавил цикл DO...UNTIL, аналогичный паскалевскому.
    - увеличена рабочая память компилятора, для сборки больших исходников.
    - увеличена максимальная длина строки, определяемой через LITERALLY, с 256 до 4096 символов;
    - максимальное количество элементов структур увеличено с 32 до 256.
    - добавлена справка по параметрам компилятора, выводится при запуске без параметров.


    Параметры компиляторов PLM80 и ASM80 можно передавать как в командной строке, так и непосредственно в файлах исходников. В последнем случае строка с параметрами должна начинаться с символа '$'. Например:
    $code
    $macrofile debug xref
    Сами параметры делятся на две группы: primary и global. Первые задаются только один раз, до начала компиляции. Второй тип можно использовать много раз, в любом месте исходника.


    Чтобы не было путаницы, я изменил номера версий PL/M-90, ASM-80 и LINK.
    Для удобства к пакет входит файл SETENV.BAT, задающий переменную окружения %PLM80%, чтобы не выставлять вручную пути до компилятора.


    Мои проекты на PL/M:
    ---------------------------
    Плеер музыки формата STC:
    https://github.com/MrDemonid/AY-Player/releases

    Просмотровщик картинок:
    https://github.com/MrDemonid/Image-V...K8000/releases
    Поддерживает форматы:
    - standart ZX (SCR)
    - timex (SCR)
    - multicolor (MLT, MC, IFL)
    - MSX (SC2)
    - ПК8000 (VM2)

    Порт игра "Двигалка":
    https://github.com/MrDemonid/Dvigalka-PK8000/releases

    Порт игры "Bolder Dash":
    https://github.com/MrDemonid/Bolder-...K8000/releases
    Собрать можно только новыми компилятором и линковщиком, поскольку в коде присутствуют команды BREAK, а длина строки передаваемых в LINK параметров превышает 128 символов.
    Последний раз редактировалось DemonId7; 29.07.2023 в 04:53.

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

    anasana (23.12.2022), andrews (22.12.2022), Barmaley_m (24.12.2022), creator (22.12.2022), ivagor (22.12.2022), Kakos_nonos (23.12.2022), mastermind (30.12.2022), Oleg N. Cher (23.12.2022), Pyk (27.12.2022), Sergey (20.03.2023), Xrust (24.12.2022)

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

  4. #2
    Guru Аватар для andrews
    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,683
    Спасибо Благодарностей отдано 
    422
    Спасибо Благодарностей получено 
    196
    Поблагодарили
    174 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от DemonId7 Посмотреть сообщение
    Интерес представляет прежде всего для тех, кому захочется адаптировать PL/M под Z80
    о, это отдельная песня! PL/M регистровый и достаточно низкоуровневый язык. А уж его оптимизаторы.
    Вот сюда бы для PL/M-80 библиотеку с пзпт добавить. Пока в этом перечне нет FORTRAN-80 тем более интересно.
    Можно выдрать ее из исходников BASIC-80.
    Последний раз редактировалось andrews; 23.12.2022 в 11:34.

  5. #3
    Activist
    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    401
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    28 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andrews Посмотреть сообщение
    библиотеку с пзпт
    Извиняюсь, а о чем речь? Знаю такой термин из электроники, но вряд ли Вы это имели в виду

  6. #4
    Guru Аватар для andrews
    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,683
    Спасибо Благодарностей отдано 
    422
    Спасибо Благодарностей получено 
    196
    Поблагодарили
    174 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от DemonId7 Посмотреть сообщение
    Извиняюсь, а о чем речь?
    поддержка арифметики с плавающей запятой. Сам PL/M их не поддерживает( тип переменных real и арифметические операции с ними), но ничто не мешает прикрутить к нему библиотеку с их поддержкой. Ведь представление этих чисел всего лишь последовательность байт с определенным назначением. Исходники Basic80 на ассемблере доступны в сети. Правда тип лицензии не припомню. Но если использовать в библиотеке, то будет все-равно не так явно, только ее не нужно распространять исходник. Есть конечно еще FPAL.LIB в ISIS, но ее придется дизассемблировать для 8080, а затем уже прикручивать. Можно добавить операции с 24 и 32 битными целыми числами. На реальном железе это будет долго работать, а на 8Мгц fpga 8080 и эмуляторах приемлемо.
    Последний раз редактировалось andrews; 23.12.2022 в 11:33.

  7. #5
    Activist
    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    401
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    28 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Мне казалось, что в первую очередь нужна 32-х битная арифметика. Только я еще не настолько вникал в исходники, чтобы начать такую серьезную переделку. Что касается вещественной арифметики, то есть исходники Basic-E, на PL/M, где эта арифметика вынесена в отдельные ассемблерные модули. Но там хотя бы из комментариев понятно что к чему.
    Только в данный момент я готовлю к публикации игрушку на PL/M, плюс следом хочу реверсировать OBJCPM, чтобы полностью избавиться от эмуляторов в пакете. Затем можно и улучшениями заняться. Ну или кто-нибудь желающий может заняться улучшениями, пока я занят другим. Было бы вообще здорово.

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

    Oleg N. Cher (23.12.2022)

  9. #6
    Guru Аватар для andrews
    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,683
    Спасибо Благодарностей отдано 
    422
    Спасибо Благодарностей получено 
    196
    Поблагодарили
    174 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Аппроксимация иррациональных чисел целыми конечно известный прием, особенно если это ускоряет алгоритмы.Но не знаю всех и всегда ли это устраивает?

    Я за Basic-E не возьмусь. Уже с Basic-80 ковыряюсь потихонечку. К тому же у меня цель msuvt v7 под эмулятор b2m. Это двухконсольная машинка на 8080 без графики. CP/M там нет, поскольку у прототипа не было контроллера дисков.

    Образ магнитной ленты есть. Ну и может быть многозадачная примитивная система будет, если Бог даст мне время на это.
    Последний раз редактировалось andrews; 23.12.2022 в 12:23.

  10. #7
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,611
    Спасибо Благодарностей отдано 
    2,183
    Спасибо Благодарностей получено 
    140
    Поблагодарили
    106 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andrews Посмотреть сообщение
    PL/M регистровый и достаточно низкоуровневый язык.
    Ну может и не столь регистровый, но стек юзает уж точно по минимуму. Им удалось сделать хороший компилятор! И не в последнюю очередь благодаря свойствам языка.

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

    DemonId7, отдельное спасибо за Вашу активность) Здорово, что этим кто-то занялся.

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

    Watcom C странный выбор. Современные GCC и Clang ничем не хуже вроде как? Или то старая любовь?

  11. #8
    Master
    Регистрация
    27.11.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    828
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    128
    Поблагодарили
    108 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    OpenWatcom компактней, работает везде, БЫСТРЫЙ. минимум причуд с оптимизацией кода. Но в нём "не хватает LINT'а"

  12. #9
    Guru Аватар для andrews
    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,683
    Спасибо Благодарностей отдано 
    422
    Спасибо Благодарностей получено 
    196
    Поблагодарили
    174 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Watcom C странный выбор
    Зато возможно сей софт откомпилится на моем любимом Digital Mars C/C++ Compiler-е. Сразу скажу я его не выбирал среди других компиляторов. Просто в Мультиком СПб к нему пристрастился. Хотя в других конторах приходилось порой на Borland пересаживаться. У эмбеддеров в Питере в начале 2000-х эти компиляторы были популярны. А станции ЦАТС работали на 186EX и 386EX без дисковых накопителей.
    Linux директора на рабочие компы там не ставили.
    Последний раз редактировалось andrews; 23.12.2022 в 19:30.

  13. #10
    Activist
    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    401
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    28 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Watcom C странный выбор
    Ничего странного. Он работает везде и без инсталляции. Разархивировал куда-нибудь на диск, подправил в батнике пути и всё. Давно с собой на флешке имею "походный" набор, мало ли где и за чей комп придется приземлиться. А так и чужие компы не засоряю и разворачивается быстро.

    Цитата Сообщение от andrews Посмотреть сообщение
    Зато возможно сей софт откомпилится на моем любимом Digital Mars C/C++ Compiler-е
    Тут по минимуму нестандартных фичек. В основном ищите по #pragma, которые используются для отмены выравнивания в структурах и для того, чтобы компилятор не ругался на неиспользуемые данные (а таких данных оказалось немало, но оставил ради идентичности). В остальном это стандартный Си и должен подойти к любому компилятору.

Страница 1 из 3 123 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Кросскомпилятор Си под 8080
    от vinxru в разделе Разное
    Ответов: 108
    Последнее: 18.10.2016, 16:29

Ваши права

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