|
|
Строка 12: |
Строка 12: |
|
| |
|
| При разработке Каллисто учитывались черновики готовящегося стандарта [http://www.forth200x.org/forth200x.html Forth 200x] — например, с помощью стандартных префиксов Форта для каждого числа можно индивидуально задавать систему счисления. Также в Каллисто можно обнаружить наследие Форта ИТЭФ, от реализации которого отталкивались первые версии Каллисто. Несмотря на явное влияние стандартов языка Форт, при разработке Каллисто приоритет отдавался удобству и скорости работы на [[ЭКВМ]] — вообще говоря, не предназначенной разработчиками для алгоритмических языков высокого уровня. | | При разработке Каллисто учитывались черновики готовящегося стандарта [http://www.forth200x.org/forth200x.html Forth 200x] — например, с помощью стандартных префиксов Форта для каждого числа можно индивидуально задавать систему счисления. Также в Каллисто можно обнаружить наследие Форта ИТЭФ, от реализации которого отталкивались первые версии Каллисто. Несмотря на явное влияние стандартов языка Форт, при разработке Каллисто приоритет отдавался удобству и скорости работы на [[ЭКВМ]] — вообще говоря, не предназначенной разработчиками для алгоритмических языков высокого уровня. |
|
| |
| == Словарь Каллисто ==
| |
| * [[COLD]] — Первая словарная статья, «холодная» перезагрузка.
| |
| * [[WARM]] — «Тёплая» перезагрузка.
| |
| * [[BYE]] — Выход из Каллисто в калькулятор ЭКВМ. Может использоваться, как временный останов для низкоуровневой отладки.
| |
| * [[VERSION]] — Кладёт в стек номер версии Каллисто.
| |
| * [[EXECUTE]] — Исполняет слово, [[CFA]] которого хранится в [[Стек данных|стеке]].
| |
| * [[?BREAK]] — Проверяем клавиатуру на паузу и аварийную остановку.
| |
| * [[(LITERAL)]] — Код периода выполнения для литерала.
| |
| * [[TYPE (Каллисто)|TYPE]] — Передаёт u символов начиная с адреса a на выходное устройство.
| |
| * [[TYPE1]] — Вывести строку из памяти данных, заменяя управляющие коды и строго в одну строчку, до конца [[индикатор]]а.
| |
| * [[?BRANCH]] — Условный переход в шитом коде.
| |
| * [[BRANCH]] — Безусловный переход в шитом коде.
| |
| * [[(FOR)]] — Начало цикла со счётчиком в шитом коде.
| |
| * [[(NEXT)]] — Конец цикла со счётчиком в шитом коде.
| |
| * [[(FIND)]] — Искать слово a1 в списке a2. При успехе дать [[NFA]] его статьи и c - байт длины с флагами.
| |
| * [[DIGIT]] — ASCII-DIGIT BASE => DIGIT-VALUE TRUE / FALSE
| |
| * [[РЕГ!]] — Запись в [[Регистр памяти данных|регистр ЭКВМ]] Rn при [[Стек калькулятора|стеке ЭКВМ]], заполненном на основе [[Стек данных|стека данных]].
| |
| * [[РЕГ@]] — Чтение из [[Регистр памяти данных|регистра ЭКВМ]] Rn с сохранением [[Стек калькулятора|стека ЭКВМ]] в переменных [[RX (Каллисто)|RX]] [[RY (Каллисто)|RY]] [[RZ (Каллисто)|RZ]] [[RT (Каллисто)|RT]]
| |
| * [[0=]]
| |
| * [[0-больше (Каллисто)|0>]]
| |
| * [[0-меньше (Каллисто)|0<]]
| |
| * [[= (Каллисто)|=]]
| |
| * [[меньше (Каллисто)|<]]
| |
| * [[больше (Каллисто)|>]]
| |
| * [[ENCL]]
| |
| * [[EMI]]
| |
| * [[EMIT]] — Отображает на [[индикатор]]е символ, код которого находится в [[Стек данных|стеке]].
| |
| * [[C.]] — Выводит символ как в дампе, управляющие символы заменяются на "."
| |
| * [[↵ (Каллисто)|↵]] — Вывести на терминал перевод строки.
| |
| * [[BELL]]
| |
| * [[BEEP]]
| |
| * [[(PLAY)]]
| |
| * [[PLOT]] — Отображение точки на [[индикатор]]е
| |
| * [[DRAW]] — Рисует прямые линии, X и Y - координаты конца линии; L - код цвета/яркости, как и в случае [[PLOT]]
| |
| * [[ГРФ]] — Вывод графической информации.
| |
| * [[↖ (Каллисто)|↖]] — Очищаем [[индикатор]], оба курсора в левый верхний угол
| |
| * [[AT-XY]] — Позиционирование курсора: COL ROW AT-XY
| |
| * [[DISKOFF]]
| |
| * [[KEY]] — Ожидает ввод символа с клавиатуры, при вводе посылает его код в [[Стек данных|стек]].
| |
| * [[ACCEPT]]
| |
| * [[1+]] — Прибавление 1.
| |
| * [[2+]] — Прибавление 2.
| |
| * [[1-]] — Вычитание 1.
| |
| * [[2×]] — Умножение на 2 (двоичный сдвиг влево).
| |
| * [[2/]] — Целочисленное деление на 2 (двоичный сдвиг вправо).
| |
| * [[2÷]] — Деление на 2 чисел с десятичной плавающей запятой.
| |
| * [[+ (Каллисто)|+]] — Сложение.
| |
| * [[- (Каллисто)|-]] — Вычитание b из a.
| |
| * [[× (Каллисто)|×]] — Умножение.
| |
| * [[÷ (Каллисто)|÷]] — Деление с десятичной плавающей запятой.
| |
| * [[/ (Каллисто)|/]] — Целочисленное деление a на b, помещение частного в [[Стек данных|стек]].
| |
| * [[MOD]] — Получение остатка от деления a на b.
| |
| * [[/MOD]] — Деление с остатком a на b.
| |
| * [[×/]] — Операция масштабирования -- умножение n1 на n2 с последующим делением на n3.
| |
| * [[×/MOD]] — Остаток и частное от деления произведения n1*n2 на n3.
| |
| * [[NEGATE]] — Смена знака числа в [[Стек данных|стеке]].
| |
| * [[Больше-меньше (Каллисто)|><]]
| |
| * [[S-больше-D (Каллисто)|S>D]]
| |
| * [[Bar-X-bar (Каллисто)||X|]] — Получение абсолютного значения.
| |
| * [[AND]] — 32-битное побитовое логическое умножение (И).
| |
| * [[OR]] — 32-битное побитовое логическое сложение (ИЛИ).
| |
| * [[XOR]] — 32-битное побитовое логическое исключающее ИЛИ (XOR).
| |
| * [[INVERT]] — 32-битное побитовое логическое отрицание (НЕ).
| |
| * [[MIN]] — Выделение минимума из двух чисел.
| |
| * [[MAX]] — Выделение максимума из двух чисел.
| |
| * [[10ˣ|10<sup>x</sup>]] — Десятичный антилогарифм.
| |
| * [[Eˣ|E<sup>x</sup>]] — Экспонента.
| |
| * [[LG]] — Десятичный логарифм.
| |
| * [[LN]] — Натуральный логарифм.
| |
| * [[X²|X<sup>2</sup>]] — Возведение в квадрат.
| |
| * [[√ (Каллисто)|√]] — Квадратный корень.
| |
| * [[1/X (Каллисто)|1/X]] — Обратная величина.
| |
| * [[Yˣ|Y<sup>x</sup>]] — Степенная функция.
| |
| * [[СЧ]] — Заносит в стек случайное число от 0 до 1.
| |
| * [[ЗН]] — Вычисляет знак числа.
| |
| * [[lbr-X-rbr (Каллисто)|[X]]] — Целая часть числа.
| |
| * [[lbc-X-rbc (Каллисто)|{X}]] — Дробная часть числа.
| |
| * [[DEGREES]] — Даёт указание Форту (и ЭКВМ) принимать углы в градусах
| |
| * [[RADIANS]] — Даёт указание Форту (и ЭКВМ) принимать углы в радианах
| |
| * [[ARCSIN]] — Вычисление арксинуса.
| |
| * [[ARCCOS]] — Вычисление арккосинуса.
| |
| * [[ARCTG]] — Вычисление арктангенса.
| |
| * [[SIN]] — Вычисление синуса.
| |
| * [[COS]] — Вычисление косинуса.
| |
| * [[TG]] — Вычисление тангенса.
| |
| * [[SP@]] — Записывает в стек адрес вершины [[Стек данных|стека]], до исполнения команды [[SP@]]
| |
| * [[!SP]] — Устанавливает указатель [[Стек данных|стека]] в исходное состояние из переменной [[S0]].
| |
| * [[RP@]] — Адрес текущей вершины [[Стек возвратов Каллисто|стека возвратов]].
| |
| * [[!RP]] — Присваивает указателю [[Стек возвратов Каллисто|стека возвратов]] исходное (базовое) значение из переменной [[R0 (Каллисто)|R0]].
| |
| * [[EXIT]] — Закончить исполнение текущего определения.
| |
| * [[LEAVE]] — Досрочно прерывает цикл [[FOR]] .. [[NEXT]] (только для области данных)
| |
| * [[UNLOOP]]
| |
| * [[На R|>R]] — Переносит 16-битное число из [[Стек данных|стека данных]] в [[Стек возвратов Каллисто|стек возвратов]].
| |
| * [[С R|R>]] — Переносит 16-битное число из [[Стек возвратов Каллисто|стека возвратов]] в [[Стек данных|стек данных]].
| |
| * [[I (Каллисто)|I]] — Копирует верхнее 16-битное число из [[Стек возвратов Каллисто|стека возвратов]] в [[Стек данных|стек данных]].
| |
| * [[LEV]]
| |
| * [[PICK]] — Копирует элемент [[Стек данных|стека]] с номером u и записывает его наверх [[Стек данных|стека]].
| |
| * [[OVER]] — Копирует 2-й элемент [[Стек данных|стека]] и заносит его наверх.
| |
| * [[↔ (Каллисто)|↔]] — Меняет местами два верхних элемента [[Стек данных|стека]].
| |
| * [[2SWAP]] — Меняет местами верхние две пары чисел в [[Стек данных|стеке]].
| |
| * [[↑ (Каллисто)|↑]] — Дублирует верхний элемент [[Стек данных|стека]].
| |
| * [[?DUP]] — Осуществляет операцию [[↑ (Каллисто)|↑]] если x<>0
| |
| * [[2DUP]] — Дублирует верхнюю пару чисел в [[Стек данных|стеке]].
| |
| * [[ROT]] — Переносит 3-й элемент [[Стек данных|стека]] наверх.
| |
| * [[2DROP]] — Удаляет из [[Стек данных|стека]] число двойной длины.
| |
| * [[DROP]] — Удаляет верхний элемент [[Стек данных|стека]].
| |
| * [[CMOVE]] — Копирует побайтно область памяти размером u байт начиная с a1 и записывает её начиная с a2.
| |
| * [[CMOVE-больше (Каллисто)|CMOVE>]]
| |
| * [[FILL]] — Записывает u байт c в память начиная с адреса a
| |
| * [[ERASE]] — Записывает u нулевых байтов в память начиная с адреса a.
| |
| * [[BLANK]] — Записывает n кодов пробела (32) в память, начиная с адреса a.
| |
| * [[HOLD]] — Вводит в текущую ячейку выходного буфера [[PAD]] символ, код которого в [[Стек данных|стеке]]
| |
| * [[TIB]] — Занесение в [[Стек данных|стек]] начального адреса [[Входной буфер терминала|входного буфера терминала (Terminal Input Buffer)]].
| |
| * [[+!]] — Добавляет к содержимому ячейки с адресом a число n
| |
| * [[TOGGLE]]
| |
| * [[@ (Каллисто)|@]] — Замещает адрес в [[Стек данных|стеке]] его содержимым, двухбайтовая ячейка содержит число со знаком.
| |
| * [[U@]] — Считываем в [[Стек данных|стек]] 2-х байтовое целое без знака.
| |
| * [[C@]] — Извлекает байт информации из ячейки, адрес которой находится в [[Стек данных|стеке]].
| |
| * [[! (Каллисто)|!]] — Записывает число x в ячейку с адресом a.
| |
| * [[C!]] — Записывает байт c по адресу a.
| |
| * [[BODY-больше (Каллисто)|BODY>]] — [[PFA]] ---> [[CFA]]
| |
| * [[!CSP]] — Запомнить адрес вершины [[Стек данных|стека]] в [[CSP]].
| |
| * [[HERE]] — Выдаёт адрес первой свободной ячейки в словаре.
| |
| * [[ALLOT]] — Добавляет n байт к полю параметров слова, описанного последним.
| |
| * [[ДHERE]] — Выдаёт адрес первого свободного десятичного регистра в десятичном словаре.
| |
| * [[ДALLOT]] — Резервирует n десятичных регистров в десятичном словаре.
| |
| * [[lbr (Каллисто)|[]] — Переключить текстовый интерпретатор в режим исполнения
| |
| * [[rbr (Каллисто)|]]] — Переключить текстовый интерпретатор в режим компиляции.
| |
| * [[HEX]] — Устанавливает шестнадцатеричную систему счисления для ввода-вывода.
| |
| * [[DECIMAL]] — Устанавливает десятичную систему счисления для ввода-вывода.
| |
| * [[-TRAILING]] — Отсечь конечные пробелы.
| |
| * [[UPPER]]
| |
| * [[DEFINITIONS]] — Контекстный словарь [[VOCABULARY]] становится текущим, все последующие описания связаны с этим словарём.
| |
| * [[UPDATE]] — Устанавливает в [[буфер]]е флаг "спасения".
| |
| * [[X (Каллисто)|X]] — Даёт номер загруженного блока.
| |
| * [[Двоеточие (Каллисто)|:]] — Начать определение слова через двоеточие.
| |
| * [[; (Каллисто)|;]] — Закончить определение через двоеточие.
| |
| * [[CONSTANT]] — Определить следующее слово как константу со значением W.
| |
| * [[VARIABLE]] — Определить следующее слово как переменную с начальным значением нуль.
| |
| * [[VALUE]] — Определить следующее слово как десятичную переменную типа [[VALUE]].
| |
| * [[DOES-больше (Каллисто)|DOES>]] — Начало «исполнения» в определяющем слове.
| |
| * [[F-решётка-больше (Каллисто)|F#>]] — Размещает преобразованную строку сразу после словаря, возвращает адрес и число символов.
| |
| * [[F-решётка-S (Каллисто)|F#S]] — Преобразовывает число с плавающей запятой в строку символов.
| |
| * [[меньше-F-решётка (Каллисто)|<F#]] — Начинает преобразования чисел с плавающей запятой.
| |
| * [[0 (Каллисто)|0]] — Константа нуль (значение «ложь»).
| |
| * [[1 (Каллисто)|1]] — Константа один.
| |
| * [[2 (Каллисто)|2]] — Константа два.
| |
| * [[3 (Каллисто)|3]] — Константа три.
| |
| * [[π (Каллисто)|$\pi$]] — Число пи.
| |
| * [[BL]] — Константа, код пробела (32).
| |
| * [[C/L]] — Количество символов в одной строке экрана Форта.
| |
| * [[B/BUF]] — Константа, число байт в [[Буфер|блочном буфере]].
| |
| * [[RT (Каллисто)|RT]] — Переменная, содержит [[RT]] ЭКВМ после чтения из регистра словом [[РЕГ@]].
| |
| * [[RZ (Каллисто)|RZ]] — Переменная, содержит [[RZ]] ЭКВМ после чтения из регистра словом [[РЕГ@]].
| |
| * [[RY (Каллисто)|RY]] — Переменная, содержит [[RY]] ЭКВМ после чтения из регистра словом [[РЕГ@]].
| |
| * [[RX (Каллисто)|RX]] — Переменная, содержит [[RX]] ЭКВМ после чтения из регистра словом [[РЕГ@]].
| |
| * [[S0]] — Переменная, содержит адрес дна [[Стек данных|стека данных]].
| |
| * [[R0 (Каллисто)|R0]] — Переменная, адрес дна [[Стек возвратов Каллисто|стека возвратов]].
| |
| * [[ДDP]] — Указатель десятичного словаря.
| |
| * [[WIDTH]]
| |
| * [[WARNING]]
| |
| * [[FENCE]] — Служит для защиты базового словаря от стирания с помощью оператора FORGET
| |
| * [[DP]]
| |
| * [[VOCL]]
| |
| * [[AUTOEXEC]] — Слово, [[xt]] которого хранится в переменной [[AUTOEXEC]], будет выполнено после загрузки сохранения по [[LOAD"]]
| |
| * [[GRXY]] — Графический курсор
| |
| * [[BLK]] — Переменная, номер входного блока-экрана.
| |
| * [[больше-IN (Каллисто)|>IN]] — Переменная, смещение очередной литеры во [[Входной буфер терминала|входном текстовом буфере]] или экране.
| |
| * [[SCR]] — Служит для хранения текущего значения номера редактируемого экрана.
| |
| * [[OFFSET]] — Переменная, содержащая смещение, добавляемое к номеру блоку на стеке словом [[BLOCK]] для получения физического номера блока.
| |
| * [[CONTEXT]] — Переменная указывает на словарь [[VOCABULARY]], в котором происходит поиск слов во время интерпретации входного потока.
| |
| * [[CURRENT]] — Переменная указывает словарь [[VOCABULARY]], в который вводятся определения новых слов.
| |
| * [[STATE]] — Переменная с состоянием текстового интерпретатора: «Истина» — компиляция.
| |
| * [[BASE]] — Переменная, текущее основание системы счисления при вводе-выводе чисел.
| |
| * [[DPL]] — Переменная, позиция последней запятой в последнем введённом числе от конца.
| |
| * [[CSP]] — Переменная для контрольного хранения значения указателя [[Стек данных|стека]].
| |
| * [[R-решётка (Каллисто)|R#]] — Позиция курсора при редактировании экрана.
| |
| * [[HLD]] — Переменная — позиция последней литеры, перенесённой в буфер [[PAD]] по [[HOLD]].
| |
| * [[$EX]] — Десятичное значение порядка вводимого числа
| |
| * [[ERB]]
| |
| * [[SAVIN]] — Сохраняем [[Больше-IN (Каллисто)|>IN]] в [[INTERPRET]] для [[NUMBER]]
| |
| * [[, (Каллисто)|,]] — Компилирует число n в первую свободную ячейку словаря.
| |
| * [[C,]] — Компилирует байт c в очередной свободный байт словаря.
| |
| * [[Д,]] — Компилирует число x в первую свободную ячейку десятичного словаря.
| |
| * [[LATEST]] — Дать NFA последней созданной статьи.
| |
| * [[SPACE]] — Вывод одного пробела.
| |
| * [[N-больше-LINK (Каллисто)|N>LINK]] — [[NFA]] ---> [[LFA]]
| |
| * [[NAME-больше|NAME>]] — [[NFA]] ---> [[CFA]]
| |
| * [[N-больше-BODY|N>BODY]] — [[NFA]] ---> [[PFA]]
| |
| * [[?ERROR]] — диагностика ошибок Форт ИТЭФ
| |
| * [[?COMP]] — проверить, что текущий режим — компиляция.
| |
| * [[?EXEC]]
| |
| * [[?PAIR]]
| |
| * [[?CSP]] — Выдать ошибку "сбился указатель [[Стек данных|стека]]" если он не равен значению в [[CSP]]
| |
| * [[?LOAD]]
| |
| * [[COMPILE]] — Компиляция 16-битного слова, следующего за оператором.
| |
| * [[SMUDGE]] — Изменить флаг "SMUDGE" в последней созданной статье.
| |
| * [[(;CODE)]] — Записать в поле кода последней статьи следующий адрес и закончить определение.
| |
| * [[меньше-BUILDS|<BUILDS]]
| |
| * [[COUNT]] — Дать адрес первой литеры и число литер N строки со счётчиком T.
| |
| * [[(.")]] — Слово, компилируемое [[."]]
| |
| * [[."]] — При исполнении напечатать на терминале следующие литеры до кавычки исключительно.
| |
| * [[.(]] — Напечатать следующие литеры до закрывающей скобки исключительно.
| |
| * [[QUERY]] — Осуществляет ввод строки символов с клавиатуры.
| |
| * [[\0 (Каллисто)|\0]] — (Пустое слово) - закончить интерпретацию.
| |
| * [[PAD]] — Выдаёт адрес буфера для промежуточного хранения последовательностей символов
| |
| * [[WORD]] — Считывает одно слово из [[Входной буфер терминала|входного]] или [[Буфер|экранного]] буфера и размещает его, начиная с адреса [[HERE]]
| |
| * [[CONVERT]]
| |
| * [[FINDN]] — Поиск слова в активных словарях
| |
| * [[NUMBER]] — Преобразует в число последовательность символов, начиная с a+1 с учётом [[BASE]],
| |
| * [[FL]]
| |
| * [[ERROR (Каллисто)|ERROR]] — Диагностика ошибок Форт ИТЭФ
| |
| * [[ID.]] — Печатает имя слова, записанное в соответствии с требованиями словаря Форта
| |
| * [[CREATE]] — Формирует слово с именем XXX (заголовок и [[CFA]]), оставляя его поле параметров пустым.
| |
| * [[lbr-COMPILE-rbr (Каллисто)|[COMPILE]]] — Скомпилировать следующее слово, независимо от его признака [[IMMEDIATE]].
| |
| * [[TO]] — Запись в переменную типа [[VALUE]].
| |
| * [[LITERAL]]
| |
| * [[FLITERAL]] — Тоже, что и [[LITERAL]], но для плавучки.
| |
| * [[?STACK]] — Выдать ошибку «Исчерпание [[Стек данных|стека]]», если он менее, чем пуст и «Исчерпание памяти» при зазоре, меньшем 5(?) элементов.
| |
| * [[INTERPRET]] — Интерпретирует последовательность слов, пока там что-то есть.
| |
| * [[IMMEDIATE]] — Преобразует слово, за описанием которого следует, в оператор, исполняемый при компиляции.
| |
| * [[VOCABULARY]] — Слово-описатель, которое создаёт новый словарь.
| |
| * [[(]] — Комментарий -- пропустить следующий текст до закрывающей круглой скобки.
| |
| * [[QUIT]] — Очищает стек возвратов, устанавливает режим исполнения и возвращает управление терминалу.
| |
| * [[ABORT]] — Прерывает исполнение, делает словарь [[FORTH]] контекстным, исполняет [[QUIT]]
| |
| * [[EMPTY-BUFFERS]] — [[Буфер]] отмечается как пустой, независимо от содержания. Обновлённый блок на диск не записывается.
| |
| * [[SAVE-BUFFERS]] — Если находящийся в [[буфер]]е экран был изменён, скидывает его на диск.
| |
| * [[FLUSH]] — Если экран изменён, скидывает его на диск и выкидывает его из памяти.
| |
| * [[BUFFER]] — Резервирует блок в памяти и приписывает ему номер u (как и [[BLOCK]] ), но сам блок с диска не считывается.
| |
| * [[BLOCK]] — Записывает в [[Стек данных|стек]] адрес первого байта в [[буфер]]е с блоком, номером которого u.
| |
| * [[(LINE)]] — Выдаёт адрес a и длину u строки L с экрана S.
| |
| * [[MESSAGE]]
| |
| * [[LOAD]] — Загружает экран с номером u (компилирует или исполняет)
| |
| * [[\ (Каллисто)|\]] — Закончить интерпретацию строки.
| |
| * [[\S]] — Закончить интерпретацию экрана.
| |
| * [[---больше (Каллисто)|-->]] — Даёт команду немедленно приступить к интерпретации следующего по порядку экрана.
| |
| * [['N]] — Ищет слово с именем XXX (из входного или [[Буфер|экранного]] буфера) в словаре Форта.
| |
| * [[lbr-'-rbr (Каллисто)|[']]] — Скомпилировать [[CFA]] следующего слова как числовой литерал.
| |
| * [[больше-MARK (Каллисто)|>MARK]] — Отметить текущий адрес для ссылки вперёд.
| |
| * [[больше-RESOLVE (Каллисто)|>RESOLVE]] — Разрешить ссылку вперёд в адресе a.
| |
| * [[меньше-MARK (Каллисто)|<MARK]] — Отметить текущий адрес для ссылки назад.
| |
| * [[меньше-RESOLVE (Каллисто)|<RESOLVE]] — Разрешить ссылку назад в адрес a.
| |
| * [[UNTIL]] — Конец цикла "[[BEGIN]] [[UNTIL]]".
| |
| * [[AGAIN]] — Конец бесконечного цикла "[[BEGIN]] [[AGAIN]]".
| |
| * [[BEGIN]] — Начало циклов "[[BEGIN]]".
| |
| * [[THEN]] — Конец ветвления "[[IF]]".
| |
| * [[ELSE]] — Начало 2-ой ветви ветвления "[[IF]]".
| |
| * [[IF]] — Начало ветвления "[[IF]]".
| |
| * [[WHILE]] — Ветвление "[[WHILE]]" в цикле "[[BEGIN]] [[WHILE]] [[REPEAT]]".
| |
| * [[REPEAT]] — Конец цикла "[[BEGIN]] [[WHILE]] [[REPEAT]]".
| |
| * [[FOR]] — Начало цикла со счётчиком. Цикл исполнится ровно n раз.
| |
| * [[NEXT]] — Конец цикла со счётчиком.
| |
| * [[SPACES]] — Вывод заданного числа "цифровых" (шириной в цифру) пробелов на [[индикатор]].
| |
| * [[I-решётка-больше (Каллисто)|I#>]] — Завершает преобразование целого числа
| |
| * [[SIGN]] — Вводит знак "минус" в выходной буфер [[PAD]], если n<0
| |
| * [[I-решётка (Каллисто)|I#]] — Преобразует одну цифру целого числа и записывает её в выходной буфер [[PAD]]
| |
| * [[I-решётка-S (Каллисто)|I#S]] — Преобразует целое число до тех пор, пока не будет получен 0
| |
| * [[меньше-I-решётка (Каллисто)|<I#]] — Начинает процесс преобразования целого числа в последовательность кодов символов.
| |
| * [[(.)]] — Как [[I.]] -- только не выводит число на [[индикатор]], а возвращает адрес и длину строки.
| |
| * [[I.]] — Вывод целого числа, за которым следует один пробел.
| |
| * [[. (Каллисто)|.]] — Вывод числа, за которым следует один пробел.
| |
| * [[I.R]] — Напечатать n на терминале в поле длиной p справа.
| |
| * [[LIST]] — Распечатывает экран с номером u и записывает его номер в переменную [[SCR]]
| |
| * [[INDEX]] — Выводит на экран верхние строчки экранов, номера блоков которых входят в диапазон от нач до кон.
| |
| * [[WORDS]] — Просмотр полного списка операторов, хранящихся в данный момент в словаре
| |
| * [[COPY]] — Копирует экран n на экран m
| |
| * [[DEPTH]] — Выдаёт в [[Стек данных|стек]] полное количество чисел, хранившихся в стеке до исполнения этой команды.
| |
| * [[DUMP]] — Отображает u байт памяти начиная с адреса a
| |
| * [[.S]] — Распечатка всего содержимого [[Стек данных|стека]], оставляющая [[Стек данных|стек]] без изменений.
| |
| * [[КАТ]] — Поиск на электронном диске каталога Форта и переход в него. Если каталога нет, он создаётся.
| |
| * [[SAVE-TEXT]] — Сохранить область текста в энергонезависимую память.
| |
| * [[RGRW]] — Чтение/запись файла регистров (словаря) в загруженном каталоге.
| |
| * [[LORW]] — Чтение/запись блока из файла в загруженном каталоге.
| |
| * [[R/W]]
| |
| * [[SAVE"]] — Сохранить в файлы словарь Форта и десятичный словарь.
| |
| * [[LOAD"]] — Считать из файлов словарь Форта и десятичный словарь, должны быть от той же версии Каллисто.
| |
| * [[;CODE]]
| |
| * [[FORTH]] — Делает словарь [[FORTH]] контекстным.
| |
| * [[TASK]] — Последнее стандартное слово в словаре.
| |
|
| |
|
| == Ссылки == | | == Ссылки == |
| | * См. [[Список стандартных слов Каллисто]] |
| * [https://vk.com/topic-10838600_30361028 Обсуждение Каллисто в Контакте], [http://mk-152.livejournal.com/53935.html в живом журнале] и [http://arbinada.com/pmk/ru/node/1195 на сайте Арбинады] | | * [https://vk.com/topic-10838600_30361028 Обсуждение Каллисто в Контакте], [http://mk-152.livejournal.com/53935.html в живом журнале] и [http://arbinada.com/pmk/ru/node/1195 на сайте Арбинады] |
| * [http://the-hacker.ru/2015/Callisto-0.3.5a.zip Каллисто v0.3.5a], последняя актуальная версия Каллисто | | * [http://the-hacker.ru/2015/Callisto-0.3.5a.zip Каллисто v0.3.5a], последняя актуальная версия Каллисто |