Компилятор файлов MKL в MKP


Главная / ЭКВМ / ПО

Назначение

Программа предназначена для преобразования файлов исходных текстов программ на языке МК в латинской транскрипции в исполняемый файл ЭКВМ формата MKP.

Программа распространяется с открытым исходным текстом под лицензией GPL 2 (или старше - по выбору). Программа работает под операционными системами GNU/Linux, DOS и Windows. Возможна компиляция под другие ОС.

Запуск программы

Запуск программы производится средствами ОС. В качестве параметра требуется указать имя файла с исходным текстом:

mkl2mkp [key] MKLfile [MKPfile]

Если имя MKP-файла не указано, оно будет создано автоматически.

При запуске программы с ключами: [-h] выводится краткая подсказка, [-v] номер версии и тип ОС, [-w] ссылка на GPL и предупреждение об отсутствии гарантий. Преобразование файла при этом не выполняется.

С версии 0.26 сообщения программы выводятся на английском языке.

При успешном завершении программа возвращает код 0. При возникновении ошибок - код ошибки в соответствии с соглашениями BSD.

Одновременно с файлом MKP создаются файлы листинга (TXT) и таблица в формате HTML (HTM)




Версии

0.11 - исправлена ошибка вывода команды "F 10x" в HTML формате.

0.12 - добавлена обработка команды возврата из прерывания "РР В/О" ("PP RTN"). Эта команда введена начиная с версии 1.07 ПО МК-152.

0.13 - введено сообщение об ошибке компилятора E015 - совпадение имени метки и идентификатора. Исправлена ошибка перекодировки строк сообщений в/из кодировок UTF-8 и UCS-2. Программа скомпилирована с ключем -mtune=i586 (эквивалентно -mpentium).

0.14 - NPP: Исправлена ошибка отсутствия вывода в .htm команды "F X=0" (mkkom.name1[94])
- изменен номер версии для исправления, сделанного NPP.

0.15 - исправлена ошибка операторов DA, DAH и DAL при обращении к следующей ниже метке. Добавлен разбор операторов NUMH и NUML.

0.16 - исправлена ошибка при обращении к метке, допущенная в версии 0.15.

0.17 - исправлена ошибка формата создаваемого файла MKP, обнаруженная пользователем NPP.

0.18 - добавлены псевдооператоры .DD .DDH .DDL (адреса DEC-HEX)
- исправлены ошибки в реализации .DA .DAH .DAL (адреса DEC-BCD)
- используется файл конфигурации пакета mk.cfg (вместо mkl2mkp.cfg)
- не используется установка кодировки ключом -c.

0.19 - корректный разбор символов 'Ё' и 'ё' в кодировке 1251 в строке оператора .TEXT.

0.20 - (15.01.10)
- используется файл конфигурации mkcfg v0.11, распознавание mkcfg v0.10
- размещены версии для DOS, использующие экстендеры DOS4GW v1.97 и PMODE/W v1.33.

0.21 (16.04.10)
- добавлен псевдооператор .NUMT - адрес из трёх байт;
- добавлено предупреждение W003 - четырёхзначное число в .NUMT;
- в файлы MKP добавлен признак текста 200h;
- изменён формат вывода текста в TXT и HTM файлы;
- добавлен ключ [-i] - вывод информации при компиляции.

0.22 (21.04.10)
- в вывод помощи [-h] добавлена информация по [-i], сообщения переведены на русский язык;
- дополнительная проверка при выводе символов текста в HTM-файлы.

0.23 (28.03.11)
- исправлена ошибка в реализации .DD;
- в операторах .DA, .DB, .DD строки могут заканчиватся запятой;
- добавлены псевдооператоры .BASE и .DBB - установка базы и запись смещения относительно базы.

0.24 (14.10.11)
- добавлены псевдооператоры .NUMD и .NUMI;
- исправлена ошибка вывода контрольной суммы XOR в HTM-файл.

0.25 (14.11.11)
- добавлены псевдооператоры .DW и .DWB - запись двухбайтовых шестнадцатеричных значений.

0.25 En (06.08.13)
- интерфейс переведен на английский (Перевод выполнил Vitali Samurov aka Vitasam).

0.26 En (08.08.13)
- вывод об ошибках модифицирован для интеграции с парсером Geany (Vitali Samurov aka Vitasam).

0.27 (11.11.13)
- добавлены команды интерфейса (макросы): .FORM, .TAB, .LDX, .LDY, .TYPE, .ATYPE, .LDADR, .SQU, .FRAME, .DRAWR, .DRAWB, .TXTP, .TXTB, .TXTK, .PREXP, .PRFORM, .PRHEX, .MCALL, .RETUM, .LCALL, .RETUL, .JNEZ, .JM, .END.
- для обозначения конца секции .MKP используется .ENDP (вместо .END).

0.28 (02.04.13)
- исправлено наименование команды .DRAWP (см. Д1 изм. 21).

0.29 (04.09.14)
Дополнения для ручной оптимизации (включены, если установлен бит 1 в .OPT):
- предупреждение W001 - двухбайтовые адреса переходов внутри страницы;
- предупреждение W004 - ведущий нуль в .NUM и .NUMT;
- предупреждение W005 - используется расширенная адресация для R0-R99.

0.30 (29.09.14)
- обработка чисел от 0 до 65535 в .DW и .EQU.

0.31 (05.11.14)
- обработка восьмеричных (...o), четвертичных (...q), троичных (...t) и двоичных (...b) чисел.
- десятичные числа (...d) установлены по умолчанию.

0.32 (14.07.15)
- исправление ошибки короткой адресации в диапазоне от 100 до 105 при включенной шестнадцатеричной оптимизации (бит 0 в OPT).

0.33 (18.03.16)
- исправление ошибки обращения к каталогам nix из командной строки;
- по замечанию Павла Петрова (vk.com/id88535872).

0.34 (23.03.19)
- исправление ошибки .NUMT - по замечанию AtH

0.35 (09.04.19)
- исправление ошибки .NUMT.

0.36 (20.11.20)
- исправление ошибки .TEXT (устранено сжатие последовательных пробелов);
- исправление ошибки .DA, .DAH, .DAL (установка признака данных);
- по замечаниям Павла Петрова (vk.com/id88535872).

Программа и ее исходный текст - на странице "программное обеспечение".


НПП "СЕМИКО" (383) 271-01-25 (многоканальный)