Программа обмена данными с ЭКВМ |
Главная / ЭКВМ / ПО |
НазначениеПрограмма предназначена для обмена данными с ЭКВМ "Электроника МК-152", "Электроника МК-161" и аналогичными. Программа имеет встроенный компилятор и декомпилятор языка МК, позволяет передавать и принимать содержимое памяти программ МК, регистров десятичных и двоичных данных, текста, блокнота и графического экрана, а также конвертировать принятые от МК файлы в распространенные форматы. Программа может распространяться свободно (freesoft) и использоваться без ограничений. Программа функционирует в операционной системе (ОС) Windows различных версий от 95 до XP, а также в ОС GNU/Linux под Wine. Подключение ЭКВМ к компьютеру производится через последовательный порт. Контакты разъемов последовательного порта ЭКВМ и компьютера следует соединить следующим образом:
Запуск программыПрограмма запускается средствами ОС. После запуска на экран выводится окно, работа с программой проводится при помощи меню окна. Файлы программыПрограмма (*.mkp) Файл содержит коды команд МК и является исполняемой программой ЭКВМ. Длина программы МК кратна странице (100 команд). Длина файла от 1 до 20001 байта. Формат файла:
Программа может быть преобразована в исходный текст (декомпилирована). Исходный текст (*.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". Файл графического экрана, может быть сохранен в формате 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 в терминальном режиме. Запись команд на языке МК в латинской транскрипции приведена в таблице.
В файле исходного текста операторы могут записываться строчными буквами и без пробелов. Допускается запись нескольких операторов в строке. При этом следует учитывать возможные неоднозначности. Язык МК, расширение для файлов 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. Описание команд см. в эксплуатационной документации. Ниже в качестве параметров применяются обозначения:
Компилирование Для запуска компилирования нужно после окончания ввода текста программы в окно или загрузки MKL-файла, подготовленного в любом текстовом редакторе, выполнить пункт меню "МК - Преобразовать файл". Программа открывает диалоговое окно, в котором имеется список, позволяющий выбрать представление результатов компилирования и кнопки: "Перейти", "Компилировать" и "Выход". Кнопка "Перейти" используется для перехода на строку файла MKL, содержащую ошибку. Для этого нужно поместить курсор на сообщение об ошибке и нажать кнопку. Курсор в основном окне программы будет установлен в начало строки с выбранной ошибкой. Кнопка "Компилировать" запускает компиляцию повторно. Кнопка "Выход" закрывает диалоговое окно. Выбор представления результатов из списка позволяет просмотреть сообщения об ошибках, числовые значения меток и идентификаторов, файл программы MKP в шестнадцатеричном виде и в виде листинга. После успешного завершения компилирования возможно изменить тип текущего файла с MKL на MKP. В окне будет выведен листинг программы, который можно сохранить на диске или передать в МК. Декомпилирование Для декомпилирования требуется загрузить в окно файл MKP, считанный с диска или из памяти ЭКВМ. После этого необходимо выбрать пункт меню "МК - Преобразовать файл". Программа выполняет преобразование программы в исходный текст и открывает диалоговое окно. В этом окне можно указать, каким образом интерпретировать части исходного файла - как команды языка МК или как записанные в программу шестнадцатеричные данные (режим ввода "P ПРГ" в ЭКВМ). Для изменения следует выделить в диалоговом окне нужную часть текста и нажать кнопку "HEX" или "Код". Для выхода из окна нажмите кнопку "Выход". Декомпилированный файл программы можно сохранить как файл MKL. Версии ПО Версия 1.01 от 05.12.07 Версия 1.02 от 18.12.07 Версия 1.03 от 26.12.07 Версия 1.04 от 29.12.07 Версия 1.05 от 10.01.08 Версия 1.06 от 28.01.08 Версия 1.07 от 10.07.08 Версия 1.08 от 04.09.08 Версия 1.09 от 27.12.08 Версия 1.10 от 14.01.09 Версия 1.11 от 03.02.09 Версия 1.12 от 25.02.09 Версия 1.13 от 03.03.09 Версия 1.14 от 19.05.09 Версия 1.15 от 11.06.09 Версия 1.16 от 23.07.09, MD5: 698aedf619f13fa9e8f1916485904c57 Версия 1.17 от 11.12.09, MD5: edd629c6a339c150dd709fe2a4af7fc4 Версия 1.18 от 24.03.11, MD5: 03f90a3f63e6ef237fd86cee975b1511 Версия 1.19 от 04.04.11, MD5: eb1f201460be967b418643e3f2007bce Версия 1.20 от 19.08.11, MD5: eb0e34c7995df54413ed639b2f8cc77e Версия 1.21 от 14.10.11, MD5: c6fa143d46c558760f1f14b723ea654f Версия 1.22 от 08.11.11, MD5: f295e5c7b99489ccbba5818dd8a2b751 Версия 1.23 от 14.11.11, MD5: b5448bb611d5400618ad92641e771d4e Версия 1.24 от 23.05.12, MD5: b81f8e31dfab339fff5ee65c77ad6e49 Версия 1.25 от 18.11.13, MD5: e0038ca40f7be501d9f63612152e5b51 Версия 1.26 от 03.04.14, MD5: 12f98739e891b735bcdc794a419788bb Версия 1.27 от 31.10.14, MD5: f9661daefd442a4865041ffad3dbf869 Версия 1.28 от 10.08.15, MD5: 480db9ddcff4ba4b0a38d5ef094e7bf3 Версия 1.29 от 06.04.19, MD5: 380822676407a25a5b799114f4cd052b Файл с программой можно скачать со страницы "Программное обеспечение". | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
НПП "СЕМИКО" (383) 271-01-25 (многоканальный) |