Всем привет.
Оригинал от Марка можно найти здесь: 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 символов.