Среда разработки для МК-152. Краткое описание

Содержание

  1. Подключение к ПК
  2. Входной язык и расширения
  3. Регистры функций
  4. Типы файлов и преобразования форматов
  5. Загрузить программу

Подключение к ПК

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

ЭКВМ "ИПС"		Компьютер
	2	-	3
	3	-	2
	5	-	5

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

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

Сетевой номер МК может принимать значения от 0 до 255 и задается в регистре функции 9049. При работе с программой МК должен находиться в режиме калькулятора.

Входной язык и расширения

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

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

Команды МК могут быть записаны как в латинской, так и в русской транскрипции.
Для ручного ввода и публикации в формате HTML более привычны русские обозначения. Для компилятора, по историческим причинам, предпочтительны латинские.

Значение HEX	Команда	Описание
00-09	0-9	Ввод цифр
0A	,	Ввод десятичной запятой 
0B	+/-	/-/ Смена знака 
0C	EE	ВП - Ввод порядка 
0D	CX	Cx - Сброс X
0E	ENT	В^ - Ввод в стек
0F	F ANS	F Bx - Вызов в X предыдущего результата из X1
10	+	Сложение
11	-	Вычитание
12	*	Умножение
13	/	Деление
14	<->	Обмен содержимого X и Y
15	F 10^X	Десять в степени X
16	F EXP	e(2,71828...) в степени X
17	F LG	Десятичный логарифм
18	F LN	Натуральный логарифм 
19	F ARCSIN	Арксинус
1A	F ARCCOS	Арккосинус
1B	F ARCTG	Арктангенс
1C	F SIN	Синус
1D	F COS	Косинус
1E	F TG	Тангенс
1F		Не используется
20	F PI	Занесение в стек числа Пи (3,14159...) 
21	F SQRT	Квадратный корень
22	F X^2	Возведение в квадрат
23	F 1/X	Обратная величина
24	F X^Y	Возведение X в степень Y
25	F R	Кольцевое передвижение информации в стеке
26	K M->D	Перевод минут в доли градуса
27	K -	Аварийный останов
28	K PRGM	К ИПРГ - Считывание байта из памяти программ *
29	K /	Аварийный останов
2A	K MS->D	Перевод минут и секунд в доли градуса 
2B-2F		Не используется
30	K D->MS	Перевод долей градуса в минуты и секунды
31	K ABS	K |x| - Абсолютное значение
32	K SGN	К ЗН - Определение знака числа
33	K D->M	Перевод долей градуса в минуты
34	K INT	K [x] - Выделение целой части
35	K FRAC	K {x} - Выделение дробной части
36	K MAX	Определение максимального значения **
37	K AND	Логическое умножение **
38	K OR	Логическое сложение **
39	K XOR	Логическое сложение по модулю 2 **
3A	K NOT	Логическая инверсия **
3B	K RAN	К СЧ - Генерация случайного числа от 0 до 1 **
3C-3F		Не используется 
40-4E	M0-ME	П0-ПЕ - Запись в память 
4F	PM	РП - Запись в память регистра 0-99 (+1)
50	R/S	С/П - Останов и пуск вычислений
51	GOTO	БП - Безусловный переход в пределах страницы (+1)
52	RTN	В/О - Возврат из подпрограммы
53	GSB	ПП - Переход на подпрограмму в пределах страницы(+1)
54	K NOP	К НОП - Нет операции
55	K SCR	К ЭКР - Обновление экрана *
56	K GRPH	К ГРФ - Вывод графической информации *
57	F X!=0	Переход по условию в пределах страницы (+1)
58	F L2	Цикл с R2 в пределах страницы (+1)
59	F X>=0	Переход по условию в пределах страницы (+1)
5A	F L3	Цикл с R3 в пределах страницы (+1)
5B	F L1	Цикл с R1 в пределах страницы (+1)
5C	F X<0	Переход по условию в пределах страницы (+1)
5D	F L0	Цикл с R0 в пределах страницы (+1)
5E	F X=0	Переход по условию в пределах страницы (+1)
5F		Не используется
60-6E	RM 1- RM E	ИП0-ИПЕ - Вызов содержимого регистра
6F	P RM	Вызов содержимого регистра 0-99 (+1)
70-7E	K X!=0 0 - K X!=0 E	Косвенный переход по условию по содержимому R0-RE
7F	PK X!=0	Косвенный переход по условию по содержимому R0-R99 (+1) *
80-8E	K GOTO 0 - K GOTO E	КБПR - Косвенный безусловный переход по содержимому R0-RE
8F	PK GOTO	Косвенный безусловный переход по содержимому R0-R99 (+1) *
90-9E	K X>=0 0 - K X>=0 E	Косвенный переход по условию по содержимому R0-RE
9F	PK X>=0	Косвенный переход по условию по содержимому R0-R99 (+1) *
A0-AE	K GSB 0 - K GSB E	КППR - Косвенный переход на подпрограмму по содержимому R0-RE 
AF	PK GSB	Косвенный переход на подпрограмму по содержимому R0-R99 (+1) *
B0-BE	K M 0 - K M E	КПR - Косвенная запись по содержимому R0-RE
BF	PK M	Косвенная запись по содержимому R0-R99 (+1) *
C0-CE	K X<0 0 - K X<0 E	Косвенный переход по условию по содержимому R0-RE
CF	PK X<0	Косвенный переход по условию по содержимому R0-R99 (+1) *
D0-DE	K RM 0 - K RM E	КИПR - Косвенный вызов в стек по содержимому R0-RE 
DF	PK RM	Косвенный вызов в стек по содержимому R0-R99 (+1) *
E0-EE	K X=0 0 - K X=0 E	Косвенный переход по условию по содержимому R0-RE
EF	PK X=0	Косвенный переход по условию по содержимому R0-R99 (+1) *
F0		Не используется
F1	P GOTO	Р БП - Безусловный переход (+2) *
F2		Не используется
F3	P GSB	Р ПП - Переход на подпрограмму (+2) *
F4	PP M	РР П - Запись R0-R9999 (+2) *
F5		Не используется
F6	PP RM	РР ИП - Вызов R0-R9999 (+2) *
F7	P X!=0	Переход по условию (+2) *
F8	PF L2	Цикл по R2 (+2) *
F9	P X>=0	Переход по условию (+2) *
FA	PF L3	Цикл по R3 (+2) *
FB	PF L1	Цикл по R1 (+2) *
FC	P X<0	Переход по условию (+2) *
FD	PF L0	Цикл по R0 (+2) *
FE	P X=0	Переход по условию (+2) *
FF		Не используется

* Команда отсутствовала в советских ПМК МК-61, МК-52
** Действие команды не совпадает с МК-61, МК-52
+1 После кода команды следует один байт
+2 После кода команды следует два байта

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

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

Метки

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

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

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

Комментарии

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

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

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

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

.OPT - параметр оптимизации. Параметр 1 разрешает использовать шестнадцатиричные адреса и номера регистров. Параметр 0 - запрещает.
Другие значения зарезервированы - не использовать.

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

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

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

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

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

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

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

.END - обозначает конец программы. Весь текст ниже считается комментарием.

Регистры функций

Функции графического экрана
R9000 Начальные координаты объекта
R9001 Атрибуты вывода
R9002 Расстояние между символами
R9003 Номер шрифта
R9004 Индексный регистр экрана
R9005 Работа с графической областью памяти
R9006 Работа с графической областью памяти, автоинкремент
R9007 Прокрутка экрана с заполнением 0
R9008 Прокрутка экрана с заполнением 1
R9010 Инициализация экрана
R9011 Вывод точки
R9012 Вывод линии
R9013 Вывод прямоугольника
R9014 Вывод рамки
R9015 Вывод образа из памяти программ
R9016 Вывод образа из памяти данных
R9020 Вывод символа
R9021 Вывод строки из памяти программ
R9022 Вывод строки из памяти данных
R9023 Вывод числа
R9024 Вывод числа в форматированном виде

Строка комментариев
R9025 Вывод символа
R9026 Вывод строки из памяти программ
R9027 Вывод строки из памяти данных

Буфер клавиатуры
R9029 Чтение кода клавиши и очистка буфера

Универсальный байтовый буфер
R9030 Индексный регистр 0
R9031 Индексный регистр 1
R9032 Запись и чтение по индексному регистру 0
R9033 Запись и чтение по индексному регистру 1
R9034 Запись и чтение по индексному регистру 1, автоинкремент
R9035 Преобразование числа в строку
R9036 Преобразование числа в строку в форматированном виде
R9037 Преобразование числа во внутренний формат и обратно
R9038 Преобразование числа в float и обратно
R9039 Преобразование кода команды в мнемонику

Дополнительные функции
R9040 Вычисление четности байта
R9041 Текущее значение счетчика адреса
R9042 Индексный регистр памяти программ
R9043 Чтение памяти программ
R9044 Чтение памяти программ, автоинкремент
R9045 Размерность аргумента тригонометрических функций
R9046 Инициализация генератора СЧ
R9047 Разрешение записи в энергонезависимую память
R9048 Разрешение автоматического запуска программы
R9049 Задание сетевого номера

Функции реального времени
R9050 Формирование интервалов (таймер 0)
R9051 Формирование интервалов (таймер 1)
R9052 Звуковой сигнал
R9053 Звуковой сигнал клавиатуры
R9055 Чтение и корректировка времени
R9056 Число
R9057 Месяц
R9058 Год
R9059 День недели

Электронный блокнот
R9060 Группа записей
R9061 Запись 0
R9062 Запись 1
R9063 Запись 2
R9064 Запись 3
R9065 Регистр состояния блокнота

Последовательный порт
R9070 Разрешение порта
R9071 Скорость обмена
R9072 Режим обмена
R9073 Время ожидания при приеме
R9074 Режим автоматического приема
R9075 Счетчик посылок
R9076 Прием данных
R9077 Передача данных
R9080 Индексный регистр буфера передачи
R9081 Байт буфера передачи
R9082 Байт буфера передачи, автоинкремент
R9083 Бит 9 буфера передачи
R9084 Бит 9 буфера передачи, автоинкремент
R9085 Индексный регистр буфера приема
R9086 Байт буфера передачи
R9087 Байт буфера передачи, автоинкремент
R9088 Бит 9 буфера передачи
R9089 Бит 9 буфера передачи, автоинкремент

Параллельный порт
R9090 Регистр режима
R9091 Сигналы параллельного порта
R9092 Сигналы параллельного порта
R9093 Регистр типа операции
R9094 Регистр состояния выполненной команды
R9095 Время ожидания ответа

Работа с двоичными числами
R9100 Разрядность двоичного числа
R9101 Вывод на графический экран
R9102 Вывод в строку комментариев
R9103 Преобразование в последовательность байтов и обратно

Типы файлов и преобразования форматов

Исходный текст программы (*.mkl)

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

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

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

Формат файла (смещение - назначение):
0 число страниц в программе n;
2i+1 код команды;
2i+2 признак шестнадцатиричного ввода (HEX).

Здесь i от 0 до 100*n-1.

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

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

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

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

Текст (*.mkt)

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

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

Файл с содержимым групп записей блокнота от 0 до 16383 во внутреннем формате МК.
Размер файла от 4 до 524292 байт, одно число занимает 8 байт (см. документацию). Первые четыре байта содержат номера начальной и конечной группы. Файл может быть откорректирован в текстовом виде. Для сохранения изменений выполнить "МК - Преобразовать файл".

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

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

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

Все файлы могут быть сохранены как текст, совпадающий с текстом на экране. Позиции в текстовом файле разделяются табуляцией.
Все файлы, кроме файлов экрана, могут быть сохранены в виде HTML документа. Для этого предварительно следует установить "Вид - HTML".
Файл графического экрана, может быть сохранен в формате BMP(128 на 64 пикселя, монохромный).

Загрузить программу

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

Оценка: 4 (Голосов 1)

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

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".
у меня созрел Автор: Ярослав
Число Автор: AtH
Оператор .EQU Автор: SMB