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

Материал из ПМК вики
Перейти к навигации Перейти к поиску
(не показаны 24 промежуточные версии этого же участника)
Строка 1: Строка 1:
Следующие слова реализованы в ядре [[Каллисто]] v0.и включены в стандартную поставку:
Следующие слова реализованы в ядре [[Каллисто]] Классик v1.0rc2 и включены в стандартную поставку:


== Математика ==
== Математика ==
Строка 18: Строка 18:


=== Сравнение ===
=== Сравнение ===
* [[Слово =|=]] [[Слово ⟨|<]] [[Слово ⟩|>]] — сравнение двух чисел на вершине [[Стек данных|стека]].
* [[Слово =|=]] [[⟨|<]] [[⟩|>]] — сравнение двух чисел на вершине [[Стек данных|стека]].
* [[0=]] [[0⟨|0<]] [[0⟩|0>]] — сравнение числа на вершине [[Стек данных|стека]] с нулём.
* [[0=]] [[0⟨|0<]] [[0⟩|0>]] — сравнение числа на вершине [[Стек данных|стека]] с нулём.


Строка 40: Строка 40:


=== Побитовые логические операции ===
=== Побитовые логические операции ===
* [[Слово AND|AND]] [[Слово OR|OR]] [[Слово XOR|XOR]] — 32-битные поразрядные логические И, ИЛИ, исключающее ИЛИ
* [[AND]] [[OR]] [[XOR]] — 32-битные поразрядные логические И, ИЛИ, исключающее ИЛИ
* [[Слово NOT|NOT]] — 32-битное поразрядное логическое отрицание (НЕ).
* [[NOT]] — 32-битное поразрядное логическое отрицание (НЕ).


=== Остальная математика ===
=== Остальная математика ===
Строка 87: Строка 87:
* [[+!]] — Добавляет к содержимому ячейки с адресом a число n
* [[+!]] — Добавляет к содержимому ячейки с адресом a число n
* [[TOGGLE]] — Изменить байт с адресом a по xor−маске c.
* [[TOGGLE]] — Изменить байт с адресом a по xor−маске c.
* [[++!]] [[−−!]] [[++@]] [[−−@]] — Косвенная адресация.


=== Работа с областями памяти ===
=== Работа с областями памяти ===
Строка 119: Строка 120:
* [[CONSTANT]] — Определить следующее слово, как 16-битную целую константу со значением, взятым из стека.
* [[CONSTANT]] — Определить следующее слово, как 16-битную целую константу со значением, взятым из стека.
* [[VARIABLE]] — Определить следующее слово, как 16-битную целую переменную с начальным значением нуль.
* [[VARIABLE]] — Определить следующее слово, как 16-битную целую переменную с начальным значением нуль.
* [[FVARIABLE]] — Определить следующее слово, как десятичную переменную с начальным значением нуль.
* [[VALUE]] — Определить следующее слово, как десятичную величину с начальным значением, взятым из стека.
* [[VALUE]] — Определить следующее слово, как десятичную величину с начальным значением, взятым из стека.
* [[TO]] — Запись [[Десятичное число|десятичного числа]] в [[VALUE|десятичную величину]] или [[CFA|токена]] в [[DEFER|переменную действия]].
* [[TO]] — Запись [[Десятичное число|десятичного числа]] в [[VALUE|десятичную величину]] или [[CFA|токена]] в [[DEFER|переменную действия]].
Строка 132: Строка 134:
* [[[COMPILE]|[COMPILE]]] — Скомпилировать следующее слово, независимо от его [[IMMEDIATE|признака немедленного исполнения]].
* [[[COMPILE]|[COMPILE]]] — Скомпилировать следующее слово, независимо от его [[IMMEDIATE|признака немедленного исполнения]].
* [[[']|[']]] — Скомпилировать [[CFA]] следующего слова как [[LITERAL|числовой литерал]].
* [[[']|[']]] — Скомпилировать [[CFA]] следующего слова как [[LITERAL|числовой литерал]].
* [[LITERAL]] [[FLITERAL]] — Обработка литералов, целочисленных и «плавучки».
* [[LITERAL]] [[FLITERAL]] — Обработка литералов, целочисленных и десятичных.
* [[(LITERAL)]] [[(ИП)]] — Код периода выполнения для литералов, целочисленных и «плавучки».
* [[(LITERAL)]] [[(ИП)]] — Код периода выполнения для литералов, целочисленных и десятичных.


=== Условный оператор ===
=== Условный оператор ===
Строка 151: Строка 153:
* [[UNLOOP]] — Обеспечивает досрочный выход из цикла [[FOR]] … [[NEXT]].
* [[UNLOOP]] — Обеспечивает досрочный выход из цикла [[FOR]] … [[NEXT]].


=== Управление последовательностью выполнения команд (реализация) ===
=== Разработка структур управления ===
* [[BRANCH]] [[?BRANCH]] — Безусловный и условный переходы в шитом коде.
* [[BRANCH]] [[?BRANCH]] — Безусловный и условный переходы в шитом коде.
* [[⟩MARK|>MARK]] [[⟩RESOLVE|>RESOLVE]] — Отметить, разрешить в шитом коде ссылку вперёд.
* [[⟩MARK|>MARK]] [[⟩RESOLVE|>RESOLVE]] — Отметить, разрешить в шитом коде ссылку вперёд.
Строка 160: Строка 162:


=== Слова, лишённые заголовка (внутренние) ===
=== Слова, лишённые заголовка (внутренние) ===
* [[(;CODE)]] — Записать в поле кода последней статьи следующий адрес и выйти из определения.
* [[(;CODE)]] — Записать в [[поле кода]] [[LAST|последней статьи]] следующий адрес и [[EXIT|выйти из определения]].
* [[USER]] — Определяет поведение переменной типа USER
* [[USER]] — Обработчик переменной типа USER
* [[(FOR)]] [[(NEXT)]] — Начало, конец цикла со счётчиком в шитом коде.
* [[(FOR)]] [[(NEXT)]] — Начало, конец цикла со счётчиком в [[Шитый код|шитом коде]].


== Ввод-вывод ==
== Ввод-вывод ==
Строка 169: Строка 171:
* [[KEY]] — Ожидает ввод [[Знакогенератор|символа]] с клавиатуры, после ввода посылает его код в [[Стек данных|стек]].
* [[KEY]] — Ожидает ввод [[Знакогенератор|символа]] с клавиатуры, после ввода посылает его код в [[Стек данных|стек]].
* [[EKEY]] — Ожидает нажатия клавиши. После нажатия посылает [[Код клавиши|код нажатой клавиши]] в [[Стек данных|стек]].
* [[EKEY]] — Ожидает нажатия клавиши. После нажатия посылает [[Код клавиши|код нажатой клавиши]] в [[Стек данных|стек]].
* [[INKEY]] — Опрашивает состояние клавиатуры. Посылает в [[Стек данных|стек]] [[Код клавиши|код нажатой клавиши]] или −1, если нет нажатой клавиши.
* [[INKEY]] — Опрашивает состояние [[Клавиатура|клавиатуры]]. Посылает в [[Стек данных|стек]] [[Код клавиши|код нажатой клавиши]] или −1, если нет нажатой клавиши.
* [[ACCEPT]] — Ввод строки с клавиатуры.
* [[ACCEPT]] — Ввод строки с клавиатуры.
* [[KBDFLG]] — Переменная, содержащая состояние алфавитно-цифровой клавиатуры.
* [[KBDFLG]] — Переменная, содержащая состояние алфавитно-цифровой клавиатуры.
Строка 222: Строка 224:
* [[LOAD]] — Загружает [[экран]] с номером u (исполняет, компилирует)
* [[LOAD]] — Загружает [[экран]] с номером u (исполняет, компилирует)
* [[\S]] — Закончить интерпретацию [[экран]]а.
* [[\S]] — Закончить интерпретацию [[экран]]а.
* [[−−⟩|−−>]] — Даёт команду немедленно приступить к интерпретации следующего по порядку [[экран]]а.


=== Работа с [[блок]]ами (низкий уровень) ===
=== Работа с электронным диском (низкий уровень) ===
* [[‗RW|_RW]] — Низкоуровневые чтение/запись файла
* [[‗RW|_RW]] — Низкоуровневые чтение/запись файла
* [[КАТ]] — Поиск на электронном диске каталога [[Каллисто]] и переход в него.  Если каталога нет, он создаётся.
* [[КАТ]] — Поиск на электронном диске каталога [[Каллисто]] и переход в него.  Если каталога нет, он создаётся.
Строка 251: Строка 252:
* [[DIGIT]] — ASCII-DIGIT BASE => DIGIT-VALUE TRUE / FALSE
* [[DIGIT]] — ASCII-DIGIT BASE => DIGIT-VALUE TRUE / FALSE
* [[NUMBER]] — Преобразует в число последовательность символов, начиная с a+1 с учётом [[BASE]],
* [[NUMBER]] — Преобразует в число последовательность символов, начиная с a+1 с учётом [[BASE]],
* [[CONVERT]] — Преобразовать u и литеры от a+1 в u1 и a1 — адрес первой не цифры.
* [[UCONVERT]] — Преобразовать последовательность цифр в целое, с учётом [[BASE]].
* [[Слово EE|EE]] — Значение порядка вводимого числа
* [[Слово EE|EE]] — Значение порядка вводимого числа
* [[DPL]] — Переменная, позиция последней запятой в последнем введённом числе от конца.
* [[DPL]] — Переменная, позиция последней запятой в последнем введённом числе от конца.
* [[FL]] — Преобразовать возвращённое NUMBER целое в десятичное число.
* [[FL]] — Преобразовать возвращённое NUMBER целое в [[десятичное число]].


=== Диалог с оператором и отладка ===
=== Диалог с оператором и отладка ===
* [[LOAD"]] — Считать из файлов [[Словарь|словарь Форта]] и [[десятичный словарь]], они должны быть от той же версии [[Каллисто]].
* [[LOAD"]] — Считать из файлов [[Словарь|словарь Форта]] и [[десятичный словарь]], они должны быть от той же версии [[Каллисто]].
* [[SAVE"]] — Сохранить в файлы [[Словарь|словарь Форта]] и [[десятичный словарь]].
* [[SAVE"]] — Сохранить в файлы [[Словарь|словарь Форта]] и [[десятичный словарь]].
* [[THRU]] — [[LOAD|Загрузить]] несколько [[экран]]ов.
* [[WORDS]] — Просмотр полного списка слов, хранящихся в данный момент в [[CONTEXT|контекстном наборе слов]]
* [[WORDS]] — Просмотр полного списка слов, хранящихся в данный момент в [[CONTEXT|контекстном наборе слов]]
* [[BYE]] — Выход из [[Каллисто]] в [[Режим автоматической работы|режим автоматической работы]] калькулятора ЭКВМ.
* [[BYE]] — Выход из [[Каллисто]] в [[Режим автоматической работы|режим автоматической работы]] калькулятора ЭКВМ.
* [[BFREE]] — Оценить количество свободных байт памяти.
* [[UNUSED]] — Оценить количество свободных байт памяти.
* [[DUMP]] — Отображает u байт памяти начиная с адреса a
* [[DUMP]] — Отображает u байт памяти начиная с адреса a
* [[.S]] — Распечатка всего содержимого [[Стек данных|стека]], оставляющая [[Стек данных|стек]] без изменений.
* [[.S]] — Распечатка всего содержимого [[Стек данных|стека]], оставляющая [[Стек данных|стек]] без изменений.
Строка 269: Строка 271:
* [[COPY]] — Копирует [[экран]] n на [[экран]] m
* [[COPY]] — Копирует [[экран]] n на [[экран]] m
* [[Слово \|\]] — Закончить интерпретацию строки.
* [[Слово \|\]] — Закончить интерпретацию строки.
* [[(]] — Комментарий -- пропустить следующий текст до закрывающей круглой скобки.
* [[(]] — Комментарий пропустить следующий текст до закрывающей круглой скобки.
* [[.(]] — Напечатать следующие литеры до закрывающей скобки исключительно.
* [[.(]] — Напечатать следующие литеры до закрывающей скобки исключительно.
* [[?BREAK]] — Проверяем клавиатуру на паузу и аварийную остановку.
* [[?BREAK]] — Проверяем клавиатуру на паузу и аварийную остановку.
Строка 287: Строка 289:
* [[QUIT]] — Очищает [[Стек возвратов Каллисто|стек возвратов]], устанавливает режим исполнения и возвращает управление терминалу.
* [[QUIT]] — Очищает [[Стек возвратов Каллисто|стек возвратов]], устанавливает режим исполнения и возвращает управление терминалу.
* [[ABORT]] — Прерывает исполнение, делает список слов [[FORTH]] контекстным, исполняет [[QUIT]]
* [[ABORT]] — Прерывает исполнение, делает список слов [[FORTH]] контекстным, исполняет [[QUIT]]
* [[SAVIN]] — Сохраняем [[⟩IN|>IN]] в [[INTERPRET]] для [[NUMBER]]
* [[SAVIN]] — Сохраняем литеру в [[INTERPRET]] для [[NUMBER]] и [[BASE]] для [[FL]]
* [[Пустое слово|\0]] (пустое слово) — закончить [[INTERPRET|интерпретацию]].
* [[Пустое слово|\0]] (пустое слово) — закончить [[INTERPRET|интерпретацию]].


Строка 322: Строка 324:


=== Диагностика и обработка ошибок ===
=== Диагностика и обработка ошибок ===
* [[Слово ERROR|ERROR]] — Диагностика ошибок Форт ИТЭФ
* [[Слово ERROR|ERROR]] — Вывести сообщение об ошибке c и уйти в QUIT если ERB=0.
* [[?ERROR]] — диагностика ошибок Форт ИТЭФ
* [[?ERROR]] — Сгенерировать ошибку номер c, если флаг ф истинен (ф<>0).
* [[?COMP]] — проверить, что текущий режим — компиляция.
* [[?COMP]] — проверить, что текущий режим — компиляция.
* [[?EXEC]] — Проверка состояния исполнения.
* [[?EXEC]] — Проверка состояния исполнения.
Строка 336: Строка 338:
== Ссылки ==
== Ссылки ==
* См. [[Список встроенных слов Каллисто]]
* См. [[Список встроенных слов Каллисто]]
* [http://the-hacker.ru/2016/Callisto-0.9b.zip Каллисто v0.], последняя актуальная версия [[Каллисто]]
* [http://the-hacker.ru/2017/Callisto-1.zip Каллисто Классик 1.0], последняя актуальная версия [[Каллисто]] и [http://the-hacker.ru/Callisto.html её исходный текст]
* [[Палитра Каллисто]] — исходные тексты слов, не включённых в ядро Каллисто
* [[Палитра Каллисто]] — исходные тексты слов, не включённых в ядро Каллисто
* [https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D1%8B%D0%B9_%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C_Forth Стандартный словарь Forth] в Википедии
* [https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D1%8B%D0%B9_%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C_Forth Стандартный словарь Forth] в Википедии
Строка 342: Строка 344:
* [http://www.forth200x.org/documents/html/alpha.html Annex H: Alphabetic list of words к готовящемуся стандарту Forth 200x] ''(англ.)''
* [http://www.forth200x.org/documents/html/alpha.html Annex H: Alphabetic list of words к готовящемуся стандарту Forth 200x] ''(англ.)''
* Языки [https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D1%82_%28%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%29 Форт] и [https://ru.wikipedia.org/wiki/ColorForth colorFORTH] в Википедии
* Языки [https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D1%82_%28%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%29 Форт] и [https://ru.wikipedia.org/wiki/ColorForth colorFORTH] в Википедии
* [http://tinyurl.com/Words2-161 tinyurl.com/Words2-161] — короткий адрес этой страницы (через зарубежный сайт)





Версия от 04:11, 26 февраля 2018

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

Математика

Арифметика

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

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

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

Сравнение

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

Константы

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

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

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

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

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

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

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

  • >< — Поменять местами байты в двухбайтном значении.
  • S>D — Преобразовывает 32−битное число n в пару 16−битных чисел u2 u1.
  • |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.
  • 0! — Обнулить ячейку по адресу a.
  • C! — Записывает байт c по адресу a.
  • +! — Добавляет к содержимому ячейки с адресом a число n
  • TOGGLE — Изменить байт с адресом a по xor−маске c.
  • ++! −−! ++@ −−@ — Косвенная адресация.

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

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

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

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

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

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

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

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

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

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

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

  • STATE — Переменная с состоянием текстового интерпретатора: «Истина» — компиляция.
  • [ ] — Переключить текстовый интерпретатор в режим интерпретации, компиляции.
  • [COMPILE] — Скомпилировать следующее слово, независимо от его признака немедленного исполнения.
  • ['] — Скомпилировать CFA следующего слова как числовой литерал.
  • LITERAL FLITERAL — Обработка литералов, целочисленных и десятичных.
  • (LITERAL) (ИП) — Код периода выполнения для литералов, целочисленных и десятичных.

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

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

Циклы

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

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

Разработка структур управления

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

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

  • <BUILDS DOES> — Создать новое слово с обработчиком высокого уровня.

Слова, лишённые заголовка (внутренние)

Ввод-вывод

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

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

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

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

  • DOT! — Отображение точки на индикаторе
  • BAR — Рисует прямые линии, X и Y - координаты конца линии
  • +BOX +FRAME — Рисование прямоугольника, рамки
  • ГРФ — Вывод графической информации (обновление экрана)
  • DARK LIGHT — Установить вывод тёмным цветом по светлому фону, светлым цветом по тёмному фону
  • ATR! — Установить атрибуты вывода на индикатор

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

  • BELL — гудок терминала.
  • BEEP — издать звук заданной частоты и длительности.
  • (PLAY) — Сыграть мелодию.

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

  • SCR — Служит для хранения текущего значения номера редактируемого экрана.
  • R# — Позиция курсора при редактировании экрана.
  • C/L — Константа, количество символов в одной строке экрана Каллисто (64).
  • B/BUF — Константа, число байт в блочном буфере (3072).
  • APP — Слово, xt которого хранится в переменной APP, будет выполнено после загрузки сохранения по LOAD"
  • UPDATE — Устанавливает «флаг спасения» буфера.
  • BUFBLK — Переменная, номер загруженного блока.
  • EMPTY-BUFFERSБуфер отмечается как пустой, независимо от содержания. Обновлённый блок на диск не записывается.
  • SAVE-BUFFERS — Если находящийся в буфере экран был изменён, скидывает его на диск.
  • FLUSH — Если экран изменён, скидывает его на диск и выкидывает его из памяти.
  • BUFFER — Резервирует блок в памяти и приписывает ему номер u (как и BLOCK ), но сам блок с диска не считывается.
  • BLOCK — Записывает в стек адрес первого байта в буфере с блоком, номером которого u.
  • (LINE) — Выдаёт адрес a и длину u строки L с экрана S.
  • MESSAGE — Сохранить >IN в R# и вывести сообщение номер c.
  • LOAD — Загружает экран с номером u (исполняет, компилирует)
  • \S — Закончить интерпретацию экрана.

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

  • _RW — Низкоуровневые чтение/запись файла
  • КАТ — Поиск на электронном диске каталога Каллисто и переход в него. Если каталога нет, он создаётся.
  • 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,
  • UCONVERT — Преобразовать последовательность цифр в целое, с учётом BASE.
  • EE — Значение порядка вводимого числа
  • DPL — Переменная, позиция последней запятой в последнем введённом числе от конца.
  • FL — Преобразовать возвращённое NUMBER целое в десятичное число.

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

Интерпретатор входного текста (внешний)

Системные слова «Электроники МК»

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

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

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

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

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

Ссылки


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


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