Слова Каллисто по категориям

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

Следующие слова реализованы в ядре Каллисто v0.6a и включены в стандартную поставку:

Математика

Арифметика

  • + × ÷ — Сложение, вычитание, умножение, деление двух верхних чисел в стеке.
  • 1+ 1− — Прибавление, вычитание 1.
  • 2+ — Прибавление 2.
  • — Умножение, деление на 2.
  • NEGATE — Смена знака числа в стеке.

Целочисленное деление

  • / — Целочисленное деление a на b, помещение частного в стек.
  • MOD — Получение остатка от деления a на b.
  • /MOD — Деление с остатком a на b.
  • 2/ — Целочисленное деление на 2 (двоичный сдвиг вправо).
  • ×/ — Операция масштабирования -- умножение n1 на n2 с последующим делением на n3.
  • ×/MOD — Остаток и частное от деления произведения n1×n2 на n3.

Сравнение

  • = < > — сравнение двух чисел на вершине стека.
  • 0= 0< 0> — сравнение числа на вершине стека с нулём.

Константы

  • 0 — Константа нуль (значение «ложь»).
  • 1 2 3 — Константы один, два, три.
  • $\pi$ — Число пи (3,14159265359).
  • BL — Константа, код пробела (32).

Алгебраические функции

  • 10x Ex — Десятичный антилогарифм, экспонента.
  • LG LN — Десятичный, натуральный логарифмы.
  • X2 — Возведение в квадрат, квадратный корень.
  • 1/X — Обратная величина.
  • Yx — Степенная функция.

Тригонометрия

Побитовые логические операции

  • AND OR XOR — 32-битные поразрядные логические И, ИЛИ, исключающее ИЛИ
  • INVERT — 32-битное поразрядное логическое отрицание (НЕ).

Остальная математика

  • ><
  • S>D
  • |X| — Получение абсолютного значения.
  • MIN MAX — Нахождение минимума, максимума из двух чисел на вершине стека.
  • СЧ — Заносит в стек случайное число от 0 до 1.
  • ЗН — Вычисляет знак числа.
  • [X] {X} — Целая, дробная часть числа на вершине стека.

Работа с памятью разного типа

Управление стеком

  • — Дублирует верхний элемент стека.
  • — Меняет местами два верхних элемента стека.
  • DROP — Удаляет верхний элемент стека.
  • OVER — Копирует 2-й элемент стека и заносит его наверх.
  • ROT — Переносит 3-й элемент стека наверх.
  • PICK — Копирует элемент стека с номером u и записывает его наверх стека.
  • ?DUP — Осуществляет операцию если x≠0
  • 2DUP — Дублирует верхнюю пару чисел в стеке.
  • 2DROP — Удаляет из стека число двойной длины.
  • 2SWAP — Меняет местами верхние две пары чисел в стеке.
  • SP@ — Записывает в стек адрес вершины стека, до исполнения команды SP@
  • !SP — Устанавливает указатель стека в исходное состояние из переменной S0.
  • S0 — Переменная, содержит адрес дна стека данных.

Управление стеком возвратов

Обращение к ячейкам памяти

  • @ — Замещает адрес в стеке его содержимым, двухбайтовая ячейка содержит число со знаком.
  • U@ — Считываем в стек 2-х байтовое целое без знака.
  • C@ — Извлекает байт информации из ячейки, адрес которой находится в стеке.
  • ! — Записывает число x в ячейку с адресом a.
  • C! — Записывает байт c по адресу a.
  • +! — Добавляет к содержимому ячейки с адресом a число n
  • TOGGLE

Работа с областями памяти

  • CMOVE — Копирует побайтно область памяти размером u байт начиная с a1 и записывает её начиная с a2.
  • CMOVE>
  • FILL — Записывает u байт c в память начиная с адреса a
  • ERASE — Записывает u нулевых байтов в память начиная с адреса a.
  • BLANK — Записывает n кодов пробела (32) в память, начиная с адреса a.

Работа со строками символов

  • COUNT — Дать адрес первой литеры и число литер N строки со счётчиком T.
  • −TRAILING — Отсечь конечные пробелы.
  • UPPER


Работа со словарём

  • DP — Переменная, указатель словаря
  • HERE — Выдаёт адрес первой свободной ячейки в словаре.
  • ALLOT — Добавляет n байт к полю параметров слова, описанного последним.
  • , — Компилирует число n в первую свободную ячейку словаря.
  • C, — Компилирует байт c в очередной свободный байт словаря.
  • COMPILE — Компиляция 16-битного слова, следующего за оператором.


Работа с десятичным словарём

Создание новых слов

Определение новых слов

  • CONSTANT — Определить следующее слово как 16-битную целую константу со значением W.
  • VARIABLE — Определить следующее слово как 16-битную целую переменную с начальным значением нуль.
  • VALUE — Определить следующее слово как десятичную переменную типа VALUE.
  • TO — Запись в десятичную переменную типа VALUE.
  • : ; — Определение слова через двоеточие.
  • EXIT — Закончить исполнение текущего определения.
  • IMMEDIATE — Преобразует слово, за описанием которого следует, в оператор, исполняемый при компиляции.
  • CREATE — Формирует слово с именем XXX (заголовок и CFA), оставляя его поле параметров пустым.

Управление процессом компиляции

Условный оператор

  • IF ELSE THEN — Условный оператор.

Циклы


Цикл со счётчиком

  • FOR NEXT — Цикл со счётчиком. Цикл исполнится ровно n раз.
  • I J — Помещает в стек данных значение счётчика цикла FORNEXT, внешнего цикла.
  • LEAVE — Досрочно прерывает цикл FOR .. NEXT (только для области данных)
  • UNLOOP — Обеспечивает досрочный выход из цикла FORNEXT.

Управление последовательностью выполнения команд (реализация)

  • BRANCH ?BRANCH — Безусловный, условный переходы в шитом коде.
  • >MARK >RESOLVE — Отметить, разрешить в шитом коде ссылку вперёд.
  • <MARK <RESOLVE — Отметить, разрешить в шитом коде ссылку назад.
  • (FOR) (NEXT) — Начало, конец цикла со счётчиком в шитом коде.

Разработка порождающих слов

  • <BUILDS DOES> — Создать новое слово с обработчиком высокого уровня.
  • (;CODE) — Записать в поле кода последней статьи следующий адрес и закончить определение.
  • ;CODE

Ввод-вывод

Ввод с клавиатуры

Вывод на индикатор

  • EMIT — Отображает на индикаторе символ, код которого находится в стеке.
  • EMI
  • C. — Выводит символ как в дампе, непечатные символы заменяются на "."
  • TYPE — Передаёт u символов начиная с адреса a на выходное устройство.
  • TYPE1 — Вывести строку из памяти данных, заменяя управляющие коды и строго в одну строчку, до конца индикатора.
  • AT-XY — Позиционирование текстового курсора: COL ROW AT-XY
  • — Очищаем индикатор, оба курсора в левый верхний угол
  • — Вывести на терминал возврат каретки и перевод строки.
  • SPACE — Вывод одного пробела.
  • SPACES — Вывод заданного числа "цифровых" (шириной в цифру) пробелов на индикатор.
  • I. — Вывод целого числа, за которым следует один пробел.
  • . — Вывод числа, за которым следует один пробел.
  • I.R — Напечатать целое число n на терминале в поле длиной p справа.
  • ." — При исполнении напечатать на терминале следующие литеры до кавычки исключительно.
  • (.") — Слово, компилируемое ."

Машинная графика

  • PLOT — Отображение точки на индикаторе
  • DRAW — Рисует прямые линии, X и Y - координаты конца линии; L - код цвета/яркости, как и в случае PLOT
  • ГРФ — Вывод графической информации.
  • GRXY — Графический курсор

Электронная музыка и звук

Работа с блоками

Работа с блоками (низкий уровень)

  • R/W — Низкоуровневые чтение/запись файла (fig-Форт).
  • КАТ — Поиск на электронном диске каталога Каллисто и переход в него. Если каталога нет, он создаётся.
  • RGRW — Чтение/запись файла регистров (словаря) в загруженном каталоге.
  • LORW — Чтение/запись блока из файла в загруженном каталоге.
  • DISKOFF

Форматные преобразования чисел

  • BASE — Переменная, текущее основание системы счисления при вводе-выводе чисел.
  • HEX — Устанавливает шестнадцатеричную систему счисления для ввода-вывода.
  • DECIMAL — Устанавливает десятичную систему счисления для ввода-вывода.
  • PAD — Выдаёт адрес буфера для промежуточного хранения последовательностей символов
  • HLD — Переменная — позиция последней литеры, перенесённой в буфер PAD по HOLD.
  • <# — Начинает процесс преобразования целого числа в последовательность кодов символов.
  • HOLD — Вводит в текущую ячейку выходного буфера PAD символ, код которого в стеке
  • SIGN — Вводит знак "минус" в выходной буфер PAD, если n<0
  • U# — Преобразует одну цифру целого числа и записывает её в выходной буфер PAD
  • U#S — Преобразует целое число до тех пор, пока не будет получен 0
  • U#> — Завершает преобразование целого числа
  • (.) — Как I. -- только не выводит число на индикатор, а возвращает адрес и длину строки.
  • <F# — Начинает преобразования чисел с плавающей запятой.
  • F#S — Преобразовывает число с плавающей запятой в строку символов.
  • F#> — Размещает преобразованную строку сразу после словаря, возвращает адрес и число символов.
  • DIGIT — ASCII-DIGIT BASE => DIGIT-VALUE TRUE / FALSE
  • NUMBER — Преобразует в число последовательность символов, начиная с a+1 с учётом BASE,
  • CONVERT
  • $EX — Десятичное значение порядка вводимого числа
  • DPL — Переменная, позиция последней запятой в последнем введённом числе от конца.
  • FL

Диалог с оператором и отладка

  • BYE — Выход из Каллисто в режим автоматической работы калькулятора ЭКВМ. Может использоваться, как временный останов для низкоуровневой отладки.
  • VERSION — Кладёт в стек номер версии Каллисто.
  • ?BREAK — Проверяем клавиатуру на паузу и аварийную остановку.
  • COPY — Копирует экран n на экран m
  • DEPTH — Выдаёт в стек полное количество чисел, хранившихся в стеке до исполнения этой команды.
  • DUMP — Отображает u байт памяти начиная с адреса a
  • .S — Распечатка всего содержимого стека, оставляющая стек без изменений.
  • LIST — Распечатывает экран с номером u и записывает его номер в переменную SCR
  • INDEX — Выводит на индикатор верхние строчки экранов, номера блоков которых входят в диапазон от нач до кон.
  • WORDS — Просмотр полного списка слов, хранящихся в данный момент в словаре
  • \ — Закончить интерпретацию строки.
  • ( — Комментарий -- пропустить следующий текст до закрывающей круглой скобки.
  • .( — Напечатать следующие литеры до закрывающей скобки исключительно.


Системные слова

Списки слов и поиск

  • VOC-LINK
  • CONTEXT — Переменная указывает на список VOCABULARY, в котором происходит поиск слов во время интерпретации входного потока.
  • CURRENT — Переменная указывает список VOCABULARY, в который вводятся определения новых слов.
  • LAST — Дать NFA последней созданной статьи.
  • FINDN — Поиск слова в активных списках слов
  • VOCABULARY — Слово-описатель, которое создаёт новый список слов.
  • 'N — Ищет слово с именем XXX (из входного или экранного буфера) в словаре Форта.
  • FORTH — Делает список FORTH контекстным.
  • TASK — Последнее стандартное слово в словаре.
  • DEFINITIONSКонтекстный список становится текущим, все последующие описания связаны с этим списком.
  • (FIND) — Искать слово a1 в списке a2. При успехе дать NFA его статьи и c - байт длины с флагами.


Работа с полями словарной статьи

Диагностика и обработка ошибок

  • WARNING
  • ERROR — Диагностика ошибок Форт ИТЭФ
  • ?ERROR — диагностика ошибок Форт ИТЭФ
  • ?COMP — проверить, что текущий режим — компиляция.
  • ?EXEC
  • ?PAIRS
  • CSP — Переменная для контрольного хранения значения указателя стека.
  • !CSP — Запомнить адрес вершины стека в CSP.
  • ?CSP — Выдать ошибку "сбился указатель стека" если он не равен значению в CSP
  • ?LOADING
  • ?STACK — Выдать ошибку «Исчерпание стека», если он менее, чем пуст и «Исчерпание памяти» при зазоре, меньшем 5(?) элементов.
  • ERB — Флаг блокировки выхода в QUIT при ошибке ERROR


Интерпретация входного текста


Служебные, классические

  • QUIT — Очищает стек возвратов, устанавливает режим исполнения и возвращает управление терминалу.
  • ABORT — Прерывает исполнение, делает список слов FORTH контекстным, исполняет QUIT
  • LITERAL
  • FLITERAL — Тоже, что и LITERAL, но для плавучки.
  • (LITERAL) — Код периода выполнения для литерала.
  • (РЕГ) — Код периода выполнения для литерала с плавающей запятой.
  • ENCLOSE


Служебные, внутренние

  • COLD — Первая словарная статья, «холодная» перезагрузка с урезанием словаря в начальное состояние.
  • WARM — «Тёплая» перезагрузка.
  • SAVIN — Сохраняем >IN в INTERPRET для NUMBER


Ссылки

  У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.


  Это заготовка статьи. Вы можете помочь проекту, дополнив её.