Каллисто: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
Строка 9: Строка 9:


== Словарь Каллисто ==
== Словарь Каллисто ==
* [[COLD]]
* [[COLD]] — Первая словарная статья
* [[WARM]]
* [[WARM]]
* [[BYE]]
* [[BYE]] — Выход из системы может использоваться как временный, отладочный останов.
* [[VERSION]]
* [[VERSION]] — Кладёт в стек номер версии Каллисто.
* [[EXECUTE]]
* [[EXECUTE]] — Исполняет слово, [[CFA]] которого хранится в стеке.
* [[?BREAK]]
* [[?BREAK]] — Проверяем клавиатуру на паузу и аварийную остановку.
* [[(LITERAL)]]
* [[(LITERAL)]] — Код периода выполнения для литерала.
* [[TYPE (Каллисто)|TYPE]]
* [[TYPE (Каллисто)|TYPE]] — Передаёт u символов начиная с адреса a на выходное устройство.
* [[TYPE1]]
* [[TYPE1]] — Вывести строку из памяти данных, заменяя управляющие коды и строго в одну строчку, до конца индикатора.
* [[?BRANCH]]
* [[?BRANCH]] — Условный переход в шитом коде.
* [[BRANCH]]
* [[BRANCH]] — Безусловный переход в шитом коде.
* [[(FOR)]]
* [[(FOR)]]
* [[(NEXT)]]
* [[(NEXT)]]
* [[(FIND)]]
* [[(FIND)]] — Искать слово a1 в списке a2. При успехе дать NFA его статьи и c - байт длины с флагами.
* [[DIGIT]]
* [[DIGIT]] — ASCII-DIGIT BASE => DIGIT-VALUE TRUE / FALSE
* [[РЕГ!]]
* [[РЕГ!]] — Запись в регистр ЭКВМ Rn при стеке ЭКВМ, заполненном на основе стека Форта.
* [[РЕГ@]]
* [[РЕГ@]] — Чтение из регистра ЭКВМ Rn с сохранением стека ЭКВМ в переменных RX RY RZ RT
* [[0=]]
* [[0=]]
* [[0-больше (Каллисто)|0>]]
* [[0-больше (Каллисто)|0>]]
Строка 34: Строка 34:
* [[ENCL]]
* [[ENCL]]
* [[EMI]]
* [[EMI]]
* [[EMIT]]
* [[EMIT]] — Отображает на экране символ, код которого находится в стеке.
* [[C.]]
* [[C.]] — Выводит символ как в дампе, управляющие символы заменяются на "."
* [[↵ (Каллисто)|↵]]
* [[↵ (Каллисто)|↵]]
* [[BELL]]
* [[BELL]]
* [[BEEP]]
* [[BEEP]]
* [[(PLAY)]]
* [[(PLAY)]]
* [[PLOT]]
* [[PLOT]] — Отображение точки на экране
* [[DRAW]]
* [[DRAW]] — Рисует прямые линии, X и Y - координаты конца линии; L - код цвета/яркости, как и в случае PLOT
* [[ГРФ]]
* [[ГРФ]] — Вывод графической информации.
* [[↖ (Каллисто)|↖]]
* [[↖ (Каллисто)|↖]] — Очищаем экран, оба курсора в левый верхний угол
* [[AT-XY]]
* [[AT-XY]] — Позиционирование курсора: COL ROW AT-XY
* [[DISKOFF]]
* [[DISKOFF]]
* [[KEY]]
* [[KEY]] — Ожидает ввод символа с клавиатуры, при вводе посылает его код в стек.
* [[ACCEPT]]
* [[ACCEPT]]
* [[1+]]
* [[1+]] — Прибавление 1.
* [[2+]]
* [[2+]] — Прибавление 2.
* [[1-]]
* [[1-]] — Вычитание 1.
* [[2×]]
* [[2×]] — Умножение на 2 (двоичный сдвиг влево).
* [[2/]]
* [[2/]] — Целочисленное деление на 2 (двоичный сдвиг вправо).
* [[2÷]]
* [[2÷]] — Деление на 2 чисел с десятичной плавающей запятой.
* [[+ (Каллисто)|+]]
* [[+ (Каллисто)|+]] — Сложение.
* [[- (Каллисто)|-]]
* [[- (Каллисто)|-]] — Вычитание b из a.
* [[× (Каллисто)|×]]
* [[× (Каллисто)|×]] — Умножение.
* [[÷ (Каллисто)|÷]]
* [[÷ (Каллисто)|÷]] — Деление с десятичной плавающей запятой.
* [[/ (Каллисто)|/]]
* [[/ (Каллисто)|/]] — Целочисленное деление a на b, помещение частного в стек.
* [[MOD]]
* [[MOD]] — Получение остатка от деления a на b.
* [[/MOD]]
* [[/MOD]] — Деление с остатком a на b.
* [[× (Каллисто)|×]]
* [[×/]] — Операция масштабирования -- умножение n1 на n2 с последующим делением на n3.
* [[×/]]
* [[×/MOD]] — Остаток и частное от деления произведения n1*n2 на n3.
* [[×/MOD]]
* [[NEGATE]] — Смена знака числа в стеке.
* [[NEGATE]]
* [[Больше-меньше (Каллисто)|><]]
* [[Больше-меньше (Каллисто)|><]]
* [[S-больше-D (Каллисто)|S>D]]
* [[S-больше-D (Каллисто)|S>D]]
* [[Bar-X-bar (Каллисто)||X|]]
* [[Bar-X-bar (Каллисто)||X|]] — Получение абсолютного значения.
* [[AND]]
* [[AND]] — 32-битное побитовое логическое умножение (И).
* [[OR]]
* [[OR]] — 32-битное побитовое логическое сложение (ИЛИ).
* [[XOR]]
* [[XOR]] — 32-битное побитовое логическое исключающее ИЛИ (XOR).
* [[INVERT]]
* [[INVERT]] — 32-битное побитовое логическое отрицание (НЕ).
* [[MIN]]
* [[MIN]] — Выделение минимума.
* [[MAX]]
* [[MAX]] — Выделение максимума.
* [[10ˣ|10<sup>x</sup>]]
* [[10ˣ|10<sup>x</sup>]]
* [[Eˣ|E<sup>x</sup>]]
* [[Eˣ|E<sup>x</sup>]]
Строка 286: Строка 285:
* [[LOAD"]]
* [[LOAD"]]
* [[;CODE]]
* [[;CODE]]
* [[FORTH]]
* [[FORTH]] — Делает словарь FORTH контекстным.
* [[TASK]]
* [[TASK]]



Версия от 00:18, 29 июля 2015

Каллисто — компактный диалект языка Форт с элементами colorFORTH, написанный для «Электроники МК-161» на РЯМК и предназначенный для программирования «на борту». Пока существует в альфа-версии, но уже позволяет определять новые слова, редактировать и компилировать экраны, успешно переносить на МК-161 старые программы, написанные на языке Форт. Актуальная версия — 0.3.5a.

Вместо фортовского цикла LOOP Каллисто использует более простой и быстрый цикл FOR из colorFORTH, а «бесконечный» стек содержит 12-разрядные десятичные числа ЭКВМ с плавающей запятой. Помимо обычной (для Форта) целочисленной операций деления, Каллисто использует традиционное для ПМК деление с плавающей запятой. Сохранены традиционные для ПМК обозначения операций умножения, подъёма стека, а также русскоязычные операции ПМК — ЗН , СЧ и т.д.

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

Вводимые слова компилируются в словарь, находящийся в области двоичных данных. В этой же области располагается стек возвратов. Стек данных располагается в области десятичных регистров. Там же располагается «десятичный словарь», где хранятся десятичные переменные типа VALUE


Словарь Каллисто

Ссылки