Программа обмена данными с ЭКВМ


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

Назначение

Программа предназначена для обмена данными с ЭКВМ "Электроника МК-152", "Электроника МК-161" и аналогичными. Программа имеет встроенный компилятор и декомпилятор языка МК, позволяет передавать и принимать содержимое памяти программ МК, регистров десятичных и двоичных данных, текста, блокнота и графического экрана, а также конвертировать принятые от МК файлы в распространенные форматы. Программа может распространяться свободно (freesoft) и использоваться без ограничений. Программа функционирует в операционной системе (ОС) Windows различных версий от 95 до XP, а также в ОС GNU/Linux под Wine.

Подключение ЭКВМ к компьютеру производится через последовательный порт. Контакты разъемов последовательного порта ЭКВМ и компьютера следует соединить следующим образом:

ЭКВМ, разъем ИПСКомпьютер
23
32
55



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

Программа запускается средствами ОС. После запуска на экран выводится окно, работа с программой проводится при помощи меню окна.

выбор типа файла исходного текста MKL


Файлы программы

Программа (*.mkp)

Файл содержит коды команд МК и является исполняемой программой ЭКВМ. Длина программы МК кратна странице (100 команд). Длина файла от 1 до 20001 байта.

Формат файла:

СмещениеНазначение
0номер начальной страницы
2i+1код команды
2i+2признак команды (0 - команда или адрес), шестнадцатеричного ввода (1 - HEX) или текста (2 - TEXT)
Здесь i принимает значения от 0 до 100*n-1, где n-число страниц в файле

Программа может быть преобразована в исходный текст (декомпилирована).

Исходный текст (*.mkl)

Текстовый файл на языке МК в латинской транскрипции. В ЭКВМ не передается, но может быть преобразован и сохранен в МК как текст (MKT-файл). Может быть компилирован в программу МК (MKP-файл).

Десятичные данные (*.mkd)

Файл с содержимым регистров от 0 до 999 во внутреннем формате ЭКВМ.

Размер файла 8000 байт, одно число занимает 8 байт. Файл может быть откорректирован в текстовом виде. Для сохранения изменений выполните "МК - Преобразовать файл".

Двоичные данные (*.mkb)

Файл с содержимым регистров от 1000 до 5095. Размер файла 4096 байт, по одному байту на регистр.

Файл может быть откорректирован в текстовом виде (можно использовать шестнадцатеричные значения). Для сохранения изменений выполните "МК - Преобразовать файл".

Текст (*.mkt)

Файл с содержимым регистров от 5096 до 8167. Размер файла 3072 байта, по одному байту на регистр. Длина отображаемой строки МК - 24 байта. Кодировка символов 866.

текст МК

Для форматирования текста в соответствии с отображением на МК выполните "МК - Преобразовать файл".

Блокнот (*.mkn)

Файл с содержимым групп записей электронного блокнота от 0 до 16383 во внутреннем формате МК. Размер файла от 4 до 524292 байт, одно число занимает 8 байт. Первые четыре байта содержат номера начальной и конечной группы.

Файл может быть откорректирован в текстовом виде. Для сохранения изменений выполните "МК - Преобразовать файл".

Графический экран (*.mki)

Файл с содержимым структуры графического экрана МК.

Размер файла 1028 байт. Первые четыре байта содержат координаты начальной точки и размеры, остальные соответствуют структуре графического экрана.

просмотр изображения

Файл может быть просмотрен в виде изображения при выборе пункта "Вид - Изображение\". Изменения в текстовом виде не выполняются.

Преобразование форматов

Все файлы могут быть сохранены как текст, совпадающий с текстом на экране. Позиции в текстовом файле разделяются табуляцией. Это позволяет обрабатывать файлы с данными в электронных таблицах, таких как "GNUmeric", "KSpread", "OpenOffice.org Calc" и т.д. в ОС GNU/Linux или "MS Excel" в ОС Windows.

Все файлы, кроме файлов экрана, могут быть сохранены в виде HTML документа. Для этого предварительно следует установить в меню пункт "Вид - HTML".

файл MKP Лунолёт-1 в виде HTML файла

Файл графического экрана, может быть сохранен в формате BMP (128 на 64 пикселя, монохромный).

Конфигурация

Конфигурация программы и введённые пользователем параметры сохраняются в INI-файле, который располагается в системном каталоге. По отдельному указанию пользователя в реестре ОС могут быть зарегистрированы перечисленные выше типы файлов.

Обмен данными с ЭКВМ

Подключение

Для обмена данными следует выполнить установку параметров обмена в программе через пункт меню: "МК - Подключить МК". При выборе более чем одного порта или сетевого номера вместо установки выполняется поиск подключенных ЭКВМ. Первый обнаруженный МК выбирается как текущий для обмена. Сетевой номер МК может принимать значения от 0 до 255 и задается в регистре функции 9049. При работе с программой МК должен находиться в режиме автоматической работы калькулятора.

подключение МК

Выбранный номер порта и сетевой номер можно установить без выполнения проверки.

Через пункт "МК - Параметры обмена" можно указать временные параметры последовательного интерфейса, в том числе скорость обмена при выполнении операций записи-считывания. Параметры для скорости 9600 бит/с указываются и сохраняются отдельно поскольку она автоматически устанавливается после включения ЭКВМ и требуется для поиска подключенных ЭКВМ и обмена командами управления.

подключение МК

Передача файла

Для передачи файла в ЭКВМ загрузите его в окно и выберете пункт меню "МК - Записать файл...", после чего откроется диалоговое окно "Передача файла в МК". Для файла типа MKP необходимо указать начальную страницу. По умолчанию будет предложена страница, записанная в самом файле. Для файлов других типов указание дополнительных параметров не требуется.

передача файла в МК

Считывание файла

Для считывания файла из ЭКВМ выберете пункт меню "МК - Считать файл...", после чего откроется диалоговое окно "Считать с МК".

выбор типа считываемого файла

В списке окна нужно выбрать тип файла. Для файлов программы (MKP) и блокнота (MKN) необходимо указать дополнительные параметры: начальную страницу и число страниц программы или начальную и конечную группу записи блокнота.

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

считывание файла программы с ЭКВМ

Файлы других типов считываются аналогичным образом. Считывание всех строк файла блокнота занимает заметное время, поэтому не следует указывать групп больше, чем реально требуется.

считывание электронного блокнота

электронный блокнот считан

Компилирование и декомпилирование

Язык МК

Полное описание языка МК следует смотреть в эксплуатационной документации или в литературе. Здесь приводится только краткая справка об архитектуре и системе команд.

Язык МК основан на языке программирования советских микрокалькуляторов МК-61 и МК-52, поэтому для ознакомления можно использовать литературу по этим калькуляторам. Значительная часть программ советских калькуляторов может выполняться на моделях ЭКВМ ряда МК-152 без каких-либо изменений.

Основа архитектуры МК - стек, состоящий из четырех регистров: X, Y, Z и T. Большинство операций выполняются над регистрами X и Y.

ЭКВМ имеет 10000 ячеек памяти программ, разбитых на 100 страниц, и может обращаться к 10000 регистрам. Из них первые 1000 хранят десятичные числа, остальные служат для работы с байтами, текстом и обращения к дополнительным функциям.

Команды МК могут быть записаны как в латинской, так и в русской транскрипции. Для ручного ввода и публикации в формате HTML более привычны наглядные русские обозначения. Для компилятора, по историческим причинам, предпочтительны латинские. Латинские обозначения не содержат никаких специальных символов. Записанная таким образом программа ЭКВМ может быть передана в кодировке КОИ-7 в терминальном режиме.

Запись команд на языке МК в латинской транскрипции приведена в таблице.

Значение HEXКомандаОписание
00-090-9Ввод цифр
0A,Ввод десятичной запятой
0B+/-Смена знака
0CEEВП - Ввод порядка
0DCXCx - Сброс
0EENTВ↑ - Ввод в стек
0FF ANSF Вх - Вызов в X предыдущего результата из X1
10+Сложение
11-Вычитание
12*Умножение
13/Деление
14<->Обмен содержимого X и Y
15F 10^XДесять в степени X
16F EXPe(2,71828...) в степени X
17F LGДесятичный логарифм
18F LNНатуральный логарифм
19F ARCSINАрксинус
1AF ARCCOSАрккосинус
1BF ARCTGАрктангенс
1CF SINСинус
1DF COSКосинус
1EF TGТангенс
1F Не используется
20F PIЗанесение в стек числа Пи (3,14159...)
21F SQRTКвадратный корень
22F X^2Возведение в квадрат
23F 1/XОбратная величина
24F X^YВозведение X в степень Y
25F RF ↻ - Кольцевое передвижение информации в стеке
26K M->DПеревод минут в доли градуса
27K -Аварийный останов
28K PRGMК ИПРГ - Считывание байта из памяти программ *
29K /Аварийный останов
2AK MS->DПеревод минут и секунд в доли градуса
2B-2F Не используется
30K D->MSПеревод долей градуса в минуты и секунды
31K ABSK |x| - Абсолютное значение
32K SGNК ЗН - Определение знака числа
33K D->MПеревод долей градуса в минуты
34K INTK [x] - Выделение целой части
35K FRACK {x} - Выделение дробной части
36K MAXОпределение максимального значения **
37K ANDЛогическое умножение **
38K ORЛогическое сложение **
39K XORЛогическое сложение по модулю 2 **
3AK NOTЛогическая инверсия **
3BK RANК СЧ - Генерация случайного числа от 0 до 1 **
3C-3F Не используется
40-4EM0-MEП0-ПЕ - Запись в память
4FPMРП - Запись в память регистра 0-99 (+1)*
50R/SС/П - Останов и пуск вычислений
51GOTOБП - Безусловный переход в пределах страницы (+1)
52RTNВ/О - Возврат из подпрограммы
53GSBПП - Переход на подпрограмму в пределах страницы(+1)
54K NOPК НОП - Нет операции
55K SCRК ЭКР - Обновление экрана *
56K GRPHК ГРФ - Вывод графической информации *
57F X!=0Переход по условию в пределах страницы (+1)
58F L2Цикл с R2 в пределах страницы (+1)
59F X>=0Переход по условию в пределах страницы (+1)
5AF L3Цикл с R3 в пределах страницы (+1)
5BF L1Цикл с R1 в пределах страницы (+1)
5CF X<0Переход по условию в пределах страницы (+1)
5DF L0Цикл с R0 в пределах страницы (+1)
5EF X=0Переход по условию в пределах страницы (+1)
5F Не используется
60-6ERM0-RMEИП0-ИПЕ - Вызов содержимого регистра
6FP RMВызов содержимого регистра 0-99 (+1)*
70-7EK X!=0 0 -
K X!=0 E
Косвенный переход по условию по содержимому R0-RE
7FPK X!=0Косвенный переход по условию по содержимому R0-R99 (+1) *
80-8EK GOTO 0 -
K GOTO E
КБПR - Косвенный безусловный переход по содержимому R0-RE
8FPK GOTOКосвенный безусловный переход по содержимому R0-R99 (+1) *
90-9EK X>=0 0 -
K X>=0 E
Косвенный переход по условию по содержимому R0-RE
9FPK X>=0Косвенный переход по условию по содержимому R0-R99 (+1) *
A0-AEK GSB 0 -
K GSB E
КППR - Косвенный переход на подпрограмму по содержимому R0-RE
AFPK GSBКосвенный переход на подпрограмму по содержимому R0-R99 (+1) *
B0-BEKM0 - KMEКПR - Косвенная запись по содержимому R0-RE
BFPK MКосвенная запись по содержимому R0-R99 (+1) *
C0-CEK X<0 0 -
K X<0 E
Косвенный переход по условию по содержимому R0-RE
CFPK X<0Косвенный переход по условию по содержимому R0-R99 (+1) *
D0-DEK RM 0 -
K RM E
КИПR - Косвенный вызов в стек по содержимому R0-RE
DFPK RMКосвенный вызов в стек по содержимому R0-R99 (+1) *
E0-EEK X=0 0 -
K X=0 E
Косвенный переход по условию по содержимому R0-RE
EFPK X=0Косвенный переход по условию по содержимому R0-R99 (+1) *
F0 Не используется
F1P GOTOР БП - Безусловный переход (+2) *
F2PP RTNРР В/О - Возврат из прерывания *
F3P GSBР ПП - Переход на подпрограмму (+2) *
F4PP MРР П - Запись R0-R9999 (+2) *
F5 Не используется
F6PP RMРР ИП - Вызов R0-R9999 (+2) *
F7P X!=0Переход по условию (+2) *
F8PF L2Цикл по R2 (+2) *
F9P X>=0Переход по условию (+2) *
FAPF L3Цикл по R3 (+2) *
FBPF L1Цикл по R1 (+2) *
FCP X<0Переход по условию (+2) *
FDPF L0Цикл по R0 (+2) *
FEP X=0Переход по условию (+2) *
FF Не используется
* - Команда отсутствовала в советских ПМК моделей МК-61, МК-52;
** - Действие команды не совпадает с МК-61, МК-52;
(+1) - После кода команды следует один байт;
(+2) - После кода команды следует два байта.

В файле исходного текста операторы могут записываться строчными буквами и без пробелов. Допускается запись нескольких операторов в строке. При этом следует учитывать возможные неоднозначности.




Язык МК, расширение для файлов MKL

В файле исходного текста кроме операторов языка могут использоваться метки, идентификаторы, псевдооператоры и комментарии.

Метки

Метки обозначают место на которое выполняется переход из другой части программы, также могут обозначать начало какой-либо области памяти программ.

В нужном месте программы с начала строки (до первого оператора), записывается обозначение метки, после которого ставится двоеточие. Длина метки может быть до 250 символов, но различаются они только по первым 32. Двух одинаковых меток в программе быть не должно.

В командах метка может использоваться вместо адреса перехода или начала области памяти. Допустимое количество меток - не более 10000.

Идентификаторы

Могут заменять собой любое число в командах вместо адреса или номера регистра. Должны быть определены псевдооператором ".EQU". Допустимое количество идентификаторов - не более 10000.

Комментарии

Записываются в строке текста после символа точки с запятой до конца строки. Кодировка может быть 866 или 1251, текущее состояние устанавливается псевдооператором ".CHARSET".

Псевдооператоры

Используются для управления процессом компиляции.

.ORG - устанавливает текущий адрес. Должно следовать число от 0 до 9999 или определенный ранее идентификатор.

.PAGE - эквивалентно ".ORG" с начала следующей страницы, параметров нет.

.OPT - параметр оптимизации.

Бит 0 установленный в 1 разрешает использовать шестнадцатеричные адреса и номера регистров.

Бит 1 разрешает предупреждения для ручной оптимизации.

Другие значения зарезервированы - не использовать.

.CHARSET - кодировка русских букв. Параметр - число 866 или 1251. Влияет на разбор текста (".TEXT") и комментарии.

.EQU - устанавливает значение идентификатора равное числу. Идентификатор записывается перед оператором, число после него. Допускается не более одного определения в строке.

.DB - вводит строку байт, разделенных запятыми от этого оператора до комментария или до конца текущей строки текста. Каждое число должно быть от 0 до 255 и может быть записано в десятичном (0 - 255) или в шестнадцатеричном (0h - 0FFh) виде. Допускается также использование идентификаторов и меток.

.DA - вводит строку чисел от 0 до 9999 (или до 16665 при ".OPT 1") от оператора до конца строки или до комментария. Каждое число интерпретируется как адрес и занимает 2 байта. Младший байт - положение на странице (остаток от деления на сто), старший байт - номер страницы. Допускается использование меток и идентификаторов. Формат записи байта - BCD.

.DAH и .DAL - аналогичны ".DA", но вводят только один байт из числа - старшую или младшую часть соответственно.

.DD - вводит строку чисел от 0 до 9999 от оператора до конца строки или до комментария. Каждое число интерпретируется как адрес и занимает 2 байта. Младший байт - положение на странице (остаток от деления на сто), старший байт - номер страницы. Допускается использование меток и идентификаторов. Формат записи байта - шестнадцатеричное число.

.DDH и .DDL - аналогичны ".DD", но вводят только один байт из числа - старшую или младшую часть соответственно.

.DW (с v1.23)- вводит строку двухбайтовых чисел от оператора до конца строки или до комментария. Числа вводятся в шестнадцатеричном формате в порядке старший-младший.

.TEXT "строка" - вводит в программу строку символов. При разборе учитывается текущая кодировка. В строке могут использоваться символы: "\n", "\r", "\t", "\\", "\0" - обозначающие перевод строки, возврат каретки, табуляцию, обратную черту и нулевой символ.

.NUM - вставляет число, идентификатор или адрес метки в программу в виде числа, записываемого в регистр X стека. Формат целого числа - десятичное или шестнадцатеричное. Дробная часть отделяется запятой. Порядок записывается после символа E. Если число или порядок отрицательны, в нужном месте ставится знак минуса.

.NUMH и .NUML (с v1.08) - работают с адресами: метками, идентификаторами и целыми числами от 0 до 9999. Вставляют в программу старшую (страница) или младшую часть адреса соответственно.

.NUMT (c v1.18) - вставляет число соответствующее адресу в диапазоне от 0 до 999.

.NUMD и .NUMI (с v1.20) - работают с адресами: метками, идентификаторами и целыми числами от 0 до 9999. Вставляют в программу в виде числа адрес уменьшенный или увеличенный на единицу соответственно.

.BASE (с v1.18) - устанавливает базу относительно которой будет вставлен адрес оператором .DBB.

.DBB (с v1.18) - вставляет строку байт разделяемых запятыми и соответствующих смещению указанного адреса относительно ближайшей базы.

.DWB (с v1.23) - вставляет строку двухбайтовых значений разделяемых запятыми и соответствующих смещению указанного адреса относительно ближайшей базы.

.ENDP - обозначает конец программы. Весь текст ниже считается комментарием. (Примечание: до v1.25 mk.exe и v0.27 mkl2mkp для обозначения конца программы использовался оператор ".END".)

Макроопределения

Заменяют несколько операторов или псевдооператоров и могут принимать параметры для подстановки в программу.

Макроопределения языка графического интерфейса пользователя введены с v1.25 программы mk.exe и v0.27 программы mkl2mkp. Описание команд см. в эксплуатационной документации.

Ниже в качестве параметров применяются обозначения:

  • X0, Y0 - координаты графического объекта, 1 байт;
  • X, Y - размеры графического объекта, 1 байт;
  • atr - атрибуты графического объекта, 1 байт;
  • M, N - число, 1 байт;
  • addr - адрес в формате BCD, 2 байта;
  • rem - адрес (смещение) относительно начала текущей формы.

Команда Назначение и заменяемые операторы
Команды графического вывода
.FORM M, rem1, rem2, rem3, rem4, rem5, rem6, rem7 Заголовок экранной формы
.BASE
.DB M
.DBB rem1, rem2, rem3, rem4, rem5, rem6, rem7
.TAB X0, Y0 Установка начальной позиции вывода
.DB 96, X0, Y0
.LDX addr Загрузка начальной позиции вывода по X из памяти десятичных данных
.DB 104
.DA addr
.LDY addr Загрузка начальной позиции вывода по Y из памяти десятичных данных
.DB 105
.DA addr
.TYPE N Установка номера шрифта
.DB 101, N
.ATYPE addr Загрузка адреса загружаемого шрифта
.DB 78
.DA addr
.LDADR addr Загрузка адреса регистра для ввода числа
.DB 77
.DA addr
.SQU atr, X, Y Вывод прямоугольника
.DB 89, atr, X, Y
.FRAME atr, X, Y Вывод рамки
.DB 91, atr, X, Y
.DRAWP atr, addr Вывод графического образа из памяти программ
.DB 84, atr
.DA addr
.DRAWB atr, addr Вывод графического образа из памяти двоичных данных
.DB 86, atr
.DA addr
.TXTP atr, addr Вывод строки символов из памяти программ
.DB 83, atr
.DA addr
.TXTB atr, addr Вывод строки символов из памяти двоичных данных
.DB 85, atr
.DA addr
.TXTK atr, addr Вывод строки символов с косвенной адресацией
.DB 87, atr
.DA addr
.PREXP atr, addr Вывод числа с естественной или плавающей запятой
.DB 92, atr
.DA addr
.PRFORM atr, addr, M, N Вывод числа в форматированном виде
.DB 93, atr
.DA addr
.DB M, N
.PRHEX atr, addr Вывод числа в шестнадцатеричном виде
.DB 94, atr
.DA addr
Команды управления ГИ
.MCALL rem Переход к подпрограмме в текущей форме
.DB 102
.DBB rem
.RETUM Возврат из подпрограммы в текущей форме
.DB 103
.LCALL addr Переход к подпрограмме в памяти программ
.DB 112
.DA addr
.RETUL Возврат из подпрограммы в памяти программ
.DB 113
.JNEZ addr, rem Переход, если число не равно 0
.DB 1
.DA addr
.DBB rem
.JM rem Безусловный переход
.DB 56
.DBB rem
.END Окончание программы
.DB 255



Компилирование

Для запуска компилирования нужно после окончания ввода текста программы в окно или загрузки MKL-файла, подготовленного в любом текстовом редакторе, выполнить пункт меню "МК - Преобразовать файл".

исходный текст программы Лунолет-1

Программа открывает диалоговое окно, в котором имеется список, позволяющий выбрать представление результатов компилирования и кнопки: "Перейти", "Компилировать" и "Выход".

Кнопка "Перейти" используется для перехода на строку файла MKL, содержащую ошибку. Для этого нужно поместить курсор на сообщение об ошибке и нажать кнопку. Курсор в основном окне программы будет установлен в начало строки с выбранной ошибкой.

Кнопка "Компилировать" запускает компиляцию повторно.

Кнопка "Выход" закрывает диалоговое окно.

результат компилирования в виде MKP-файла

Выбор представления результатов из списка позволяет просмотреть сообщения об ошибках, числовые значения меток и идентификаторов, файл программы MKP в шестнадцатеричном виде и в виде листинга.

значения меток в программе Лунолет-1

После успешного завершения компилирования возможно изменить тип текущего файла с MKL на MKP. В окне будет выведен листинг программы, который можно сохранить на диске или передать в МК.

листинг программы Лунолет-1


Декомпилирование

Для декомпилирования требуется загрузить в окно файл MKP, считанный с диска или из памяти ЭКВМ. После этого необходимо выбрать пункт меню "МК - Преобразовать файл". Программа выполняет преобразование программы в исходный текст и открывает диалоговое окно.

В этом окне можно указать, каким образом интерпретировать части исходного файла - как команды языка МК или как записанные в программу шестнадцатеричные данные (режим ввода "P ПРГ" в ЭКВМ). Для изменения следует выделить в диалоговом окне нужную часть текста и нажать кнопку "HEX" или "Код". Для выхода из окна нажмите кнопку "Выход".

Декомпилированный файл программы можно сохранить как файл MKL.




Версии ПО

Версия 1.01 от 05.12.07
- первая распростаняемая версия программы.

Версия 1.02 от 18.12.07
- введен режим декомпилирования файлов программ MKP в исходный текст, корректно разбираются даже программы с переходами внутрь других команд, например "00.БП 01.51 02.БП 03.01 ... 51.БП 52.02";
- убраны замеченные ошибки.

Версия 1.03 от 26.12.07
- исправлена ошибка вывода команды F10X в текст в HTML-формате.

Версия 1.04 от 29.12.07
- добавлена поддержка последовательных (COM) портов с 1 по 20. Данная возможность востребована при использовании переходников Serial-USB, драйвер которых может автоматически устанавливать устройство на старшие номера, например COM11.

Версия 1.05 от 10.01.08
- устранены ошибки, возникающие при работе программы под ОС Windows XP.

Версия 1.06 от 28.01.08
- уменьшено время задержек при работе с портом;
- убрана ошибка вывода команды "F X=0";
- изменен пункт Save меню;
- возможен выбор и установка шрифта, сохранение наименования и размера выбранного шрифта в реестре;
- генерация ошибки компиляции при повторном задании метки или идентификатора.

Версия 1.07 от 10.07.08
- в компилятор/декомпилятор добавлена команда выхода из прерывания "РР В/О";
- дополнено описание функций работы с файлами и прерываний.

Версия 1.08 от 04.09.08
- добавлен разбор псевдооператоров ".NUMH" и ".NUML";
- в описании указана возможность свободного распространения и использования (freesoft).

Версия 1.09 от 27.12.08
- откорректировано описание регистров функций для версии 1.09 ПО МК-152;
- добавлено описание регистров функций интерфейса 1-Wire для устройства "Электроника MC-1105".

Версия 1.10 от 14.01.09
- изменен алгоритм работы с последовательным портом для улучшения совместимости с преобразователями USB-COM;
- введено сообщение об ошибке E015 при компиляции - совпадение имени метки и идентификатора.

Версия 1.11 от 03.02.09
- исправлена ошибка обработки текста в псевдооператоре .TEXT при установленной кодировке 866.

Версия 1.12 от 25.02.09
- исправлена ошибка операторов DA, DAH и DAL при обращении к следующей ниже метке;
- добавлены описания функций в соответствии с версией 1.12 ПО МК-152;
- по умолчанию установлен непропорциональный шрифт;
- устранена ошибка при задании размера шрифта;
- сохранение параметров в INI-файле вместо реестра системы;
- сохранение и вызов при запуске последних установленных номеров порта и МК;
- cохранение последнего выбранного при загрузке типа файла.

Версия 1.13 от 03.03.09
- исправлена ошибка при обращении к метке, допущенная в версии 1.12;
- сделано переключение активного окна при выборе сообщения об ошибке и переходе на неё из окна компиляции.

Версия 1.14 от 19.05.09
- добавлены псевдооператоры .DD .DDH .DDL (адреса DEC-HEX);
- исправлены ошибки в реализации .DA .DAH .DAL (адреса DEC-BCD);
- исправлена ошибка при выборе шрифта.

Версия 1.15 от 11.06.09
- добавлены описания функций в соответствии с версией 1.14 ПО МК-152 и 1.01 ПО МК-161.

Версия 1.16 от 23.07.09, MD5: 698aedf619f13fa9e8f1916485904c57
- исправлена ошибка считывания MKB файлов;
- исправлена ошибка, возникавшая при создании MKT файлов и приводившая к созданию пустого файла;
- сделан корректный вывод в заголовок окна имен файлов, содержащих несколько точек;
- при поиске МК в списке портов выводятся все от 1 до 20, а не только обнаруженные при опросе;
- исправлено несколько мелких ошибок в алгоритме опроса портов, которые могли вызывать ошибки для портов COM10 и выше;
- регистрация типов файлов в ОС сделана отдельной командой в меню "Файл", что позволяет избежать сообщений при запуске программы без прав администратора в Windows XP/Vista/7.

Версия 1.17 от 11.12.09, MD5: edd629c6a339c150dd709fe2a4af7fc4
- корректный разбор символов 'Ё' и 'ё' в кодировке 1251 в строке оператора .TEXT.

Версия 1.18 от 24.03.11, MD5: 03f90a3f63e6ef237fd86cee975b1511
- добавлен признак текста в MKP и соответствующая кнопка в окне декомпиляции;
- изменён алгоритм разбора строки в операторах .DB,.DA,.DD - при окончании строки запятой ошибка не возникает;
- добавлены псевдооператоры .NUMT, .BASE, .DBB;
- исправлены и дополнены описания функций ЭКВМ в соответствии с версией ПО МК-152 v1.18 и МК-161 v1.06;
- введён диалог настроек временных параметров обмена через последовательный порт;
- скорость обмена по порту в режимах чтения и записи файлов может быть установлена пользователем.

Версия 1.19 от 04.04.11, MD5: eb1f201460be967b418643e3f2007bce
- для совместимости с ПО v1.18 МК-152 и v1.06 МК-161 изменён алгоритм обработки ожидания завершения операции при обмене данными.

Версия 1.20 от 19.08.11, MD5: eb0e34c7995df54413ed639b2f8cc77e
- добавлены псевдооператоры .NUMD и .NUMI.

Версия 1.21 от 14.10.11, MD5: c6fa143d46c558760f1f14b723ea654f
- в описание функций внесен раздел для функций работы с таблицами;
- введена возможность считывания основного экрана в MKI-файл.

Версия 1.22 от 08.11.11, MD5: f295e5c7b99489ccbba5818dd8a2b751
- исправлена ошибка при считывании основного экрана в MKI-файл.

Версия 1.23 от 14.11.11, MD5: b5448bb611d5400618ad92641e771d4e
- добавлены псевдооператоры .DW и .DWB.

Версия 1.24 от 23.05.12, MD5: b81f8e31dfab339fff5ee65c77ad6e49
- исправлена ошибка определения размера файла MKP при записи в ЭКВМ.

Версия 1.25 от 18.11.13, MD5: e0038ca40f7be501d9f63612152e5b51
- добавлены макроопределения команд языка ГИ.

Версия 1.26 от 03.04.14, MD5: 12f98739e891b735bcdc794a419788bb
- команда .DRAWP (по Д1 изм. 21);
- исправлены замеченные пользователями ошибки в справочной информации.

Версия 1.27 от 31.10.14, MD5: f9661daefd442a4865041ffad3dbf869
- дополнения для ручной оптимизации:
-- Предупреждение W001 - двухбайтовые адреса переходов внутри страницы;
-- Предупреждение W004 - ведущий нуль в .NUM и .NUMT;
-- Предупреждение W005 - используется расширенная адресация для R0-R99.
- обработка чисел до 65535 в .DW и .EQU.

Версия 1.28 от 10.08.15, MD5: 480db9ddcff4ba4b0a38d5ef094e7bf3
- обработка восьмеричных (...o), четвертичных (...q), троичных (...t) и двоичных (...b) чисел.
-- десятичные числа (...d) установлены по умолчанию.
- исправление ошибки короткой адресации в диапазоне от 100 до 105 при включенной шестнадцатеричной оптимизации (бит 0 в OPT).
- (соответствует возможностям v0.32 mkl2mkp)

Версия 1.29 от 06.04.19, MD5: 380822676407a25a5b799114f4cd052b
- исправление ошибки .NUMT - по замечанию AtH (pmk.arbinada.com).
- (соответствует возможностям v0.35 mkl2mkp)




Файл с программой можно скачать со страницы "Программное обеспечение".


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