Среда разработки для МК-152. Обзор возможностей

Разработчики МК-152 (НПП "СЕМИКО") порадовали своих пользователей, предложив пока еще простую, но уже достаточно функциональную среду разработки ПМК-программ на персональном компьютере.
Основные возможности:

  1. Обмен информацией между ПК и ЭКВМ "Электроника МК-152"
  2. Компиляция исходных файлов на расширенном входном языке типа ассемблера
  3. Конвертирование принятых с ПМК файлов в распространенные форматы (текст, HTML, BMP)

Среда в настоящий момент имеет версию 1.04 и представляет собой небольшую программу для Windows, не требующую установки. Вы просто скачиваете архив и распаковываете его на своем компьютере. Программа состоит всего из одного файла с именем mk.exe.

Подключение к компьютеру производится через последовательный порт (кабель входит в комплект поставки). Для обладателей новых компьютеров, не имеющих последовательного порта, дополнительно понадобится переходник типа "Serial-USB".

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

Что это означает для пользователей?

В эпоху советских ПМК пользователи набирали программы вручную, что называется "с листа". В лучшем случае, программу можно было загрузить с "флешки", но обмениваться программами все равно можно было только через перенабивание руками. Конечно, набрать 105 шагов программы и заполнить 15 регистров памяти - не слишком долгая процедура, но нынешний МК-152 позволяет создавать программы длиной в 10000 шагов при использовании до 10000 регистров.

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

Проблема обмена и набора программ "с листа" решена.

Вторая проблема - недостаточно мощный входной язык МК-152, совместимый с прежними моделями ПМК МК-61 и МК-52.
Если для разработки 105-шаговых программ его выразительных средств хватало, то для 500 шагов любой сдвиг чреват перекройкой структуры и адресов переходов.
Проблему решает расширенный входной язык, напоминающий ассемблер.
Язык позволяет:

  • определять метки вместо абсолютных адресов переходов
  • использовать идентификаторы вместо абсолютных адресов (номеров) регистров
  • добавлять в программу комментарии
  • вставлять (псевдо)команды для управления компиляцией

Вот так, например, выглядит легендарная программа "Лунолет-1" на ассемблере МК-152:

.ORG 0
	RM D
	F X<0 A9
	ENT
	RM 8
	/
	<->
	GSB A90
A9:	RM A
	F X!=0 A43
	F X<0 A33
	2
	*
	ENT
	RM 4
	RM 3
	-
	*
	RM B
	F X^2
	+
	F SQRT
	RM B
	-
	/
	ENT
	RM 8
	*
	GOTO A90
A33: 	RM D
	F X!=0 A86
	RM 3
	F X^2
	F SQRT
	RM 7
	-
	F X<0 A87
A43: 	RM B
	RM A
	R/S
	M 1
	M 2
	F X!=0 A43
A50:	/
	M 8
	RM 5
	RM D
	+
	/
	RM 6
	*
	M 3
A59:	RM 4
	-
	RM 2
	*
	RM B
	+
	M B
	F ANS
	+
	2
	/
	RM 2
	*
	RM A
	+
	M A
	RM C 
	RM 2 
	RM 0 
	*
	-
	M C
	RM D
	RM 1
	-
	M D
	RTN
A86:	RM 6
A87:	RM 9
	R/S
	CX
A90: 	M 1
	<->
	M 2
	F X<0 A50
	RM 3
	GOTO A59
.END

Из такого текста, кстати, становятся более понятными причины легендарности "Лунолетов": в менее чем сотню машинных команд (!, т.е. примерно в сотню байт + регистры) удалось вместить моделирование полета космического корабля в безвоздушной среде.

Однако, такая запись не единственно возможная. Лексический анализатор воспринимает мнемокод (терминальные символы) без явных разделителей, поэтому ценителям языков write-only (только для кодирования) может понравиться другая запись той же программы.

rmdfx<09 entrm8/<->gsb90rmafx!=043 fx<033 2*entrm4rm3-*rmbfx^2+
fsqrtrmb-/entrm8*goto90rmdfx!=086rm3fx^2fsqrtrm7-fx<087rmbrmar/sm1m2fx!=043
/m8rm5rmd+ /rm6*m3rm4-rm2*rmb+ mbfans+ 2/rm2*rma+
marmcrm2rm0*-mcrmdrm1-mdrtnrm6rm9r/scxm1<->m2fx<050rm3goto59

После компиляции двоичный файл выгружается в МК-152 и исполняется.
Программирование для МК-152 из среды на компьютере по сути превращяется в хорошо знакомый процесс написания ассемблерных программ.

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

Конечно, данная среда - еще не бесплатный обед, но уже похожа на неплохой завтрак.
Что хотелось бы увидеть в новой версии?

  1. Возможность запуска и отладки программы непосредственно на ПК
  2. Подсветку синтаксиса в редакторе
  3. Окошко компиляции встроенное где-нибудь справа: все равно ввиду узкого ассемблерного кода эта область пустует

Более подробно о возможностях среды разработки читайте на странице "Среда разработки для МК-152. Краткое описание"


Обновление от 18 декабря 2007


Доступна версия среды разработки 1.02

  1. Дополнительно введен режим декомпилирования файлов программ MKP в исходный текст.
    Корректно разбираются даже программы с переходами внутрь других команд.
    Простейший пример - 00.БП 01.51 02.БП 03.01 ... 51.БП 52.02.
  2. Убраны замеченные ошибки. Например, в версии 1.01 в меню "Файл" не работал список последних документов


Обновление от 26 декабря 2007


Доступна версия среды разработки 1.03.
Исправлена ошибка: при выводе текста в HTML-формате команда F10X выводилась неправильно.


Обновление от 29 декабря 2007


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


Обновление от 10 января 2008


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

Загрузить

Загрузить среду разработки и файл программы "Лунолет-1" вы можете по ссылкам ниже.

Прикрепленный файлРазмер
Среда разработки 1.01 (zip)248.14 кб
Файл с прораммой "Лунолет" (zip)379 байта
Среда разработки 1.02 (zip)255.03 кб
Среда разработки 1.03 (zip)255.31 кб
Среда разработки 1.04 (zip)255.23 кб
Среда разработки 1.05 (zip)255.13 кб
Среда разработки 1.06 (zip)255.63 кб
Оценка: 4 (Голосов 1)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".
Так Автор: AtH
Оперение Автор: Serguei_Tarassov
Тогда уж Автор: AtH
Вот такой каталог Автор: Serguei_Tarassov
Жаль, конечно, Автор: AtH
Нет возможности Автор: Serguei_Tarassov
Интересно было Автор: 3ГГ0Г (не проверено)