Редактирование: Слова Каллисто по категориям
Перейти к навигации
Перейти к поиску
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
Следующие слова реализованы в ядре [[Каллисто]] | Следующие слова реализованы в ядре [[Каллисто]] v0.8.4б и включены в стандартную поставку: | ||
== Математика == | == Математика == | ||
Строка 10: | Строка 10: | ||
=== Целочисленное деление === | === Целочисленное деление === | ||
* [[Слово /|/]] — Целочисленное деление | * [[Слово /|/]] — Целочисленное деление a на b, помещение частного в [[Стек данных|стек]]. | ||
* [[MOD]] — Получение остатка от деления | * [[MOD]] — Получение остатка от деления a на b. | ||
* [[Слово /MOD|/MOD]] — Деление с остатком | * [[Слово /MOD|/MOD]] — Деление с остатком a на b. | ||
* [[2/]] — Целочисленное деление на 2 (двоичный сдвиг вправо). | * [[2/]] — Целочисленное деление на 2 (двоичный сдвиг вправо). | ||
* [[×/]] — Операция масштабирования | * [[×/]] — Операция масштабирования -- умножение n1 на n2 с последующим делением на n3. | ||
* [[×/MOD]] — Остаток и частное от деления произведения | * [[×/MOD]] — Остаток и частное от деления произведения n1×n2 на n3. | ||
=== | === Сравнение === | ||
* [[Слово =|=]] [[⟨|<]] [[⟩|>]] — сравнение двух чисел на вершине [[Стек данных|стека]]. | * [[Слово =|=]] [[Слово ⟨|<]] [[Слово ⟩|>]] — сравнение двух чисел на вершине [[Стек данных|стека]]. | ||
* [[0=]] [[0⟨|0<]] [[0⟩|0>]] — сравнение числа на вершине [[Стек данных|стека]] с нулём. | * [[0=]] [[0⟨|0<]] [[0⟩|0>]] — сравнение числа на вершине [[Стек данных|стека]] с нулём. | ||
=== Константы === | === Константы === | ||
* [[FALSE]] [[TRUE]] — Значения «ложь» и «истина» (константы нуль и -1). | * [[FALSE]] [[TRUE]] — Значения «ложь» и «истина» (константы нуль и -1). | ||
* [[Слово 1|1]] [[Слово 2|2]] — | * [[Слово 1|1]] [[Слово 2|2]] — Константы один, два. | ||
* [[Слово Π| | * [[Слово Π|$\pi$]] — Число пи (3,14159265359). | ||
* [[BL]] — | * [[BL]] — Константа, код [[пробел]]а (32). | ||
=== Алгебраические функции === | === Алгебраические функции === | ||
Строка 36: | Строка 36: | ||
=== Тригонометрия === | === Тригонометрия === | ||
* [[DEGREES]] [[RADIANS]] — Даёт указание [[Каллисто]] (и [[ЭКВМ]]) принимать углы в [[градус]]ах, [[радиан]]ах | * [[DEGREES]] [[RADIANS]] — Даёт указание [[Каллисто]] (и [[ЭКВМ]]) принимать углы в [[градус]]ах, [[радиан]]ах | ||
* [[SIN]] [[COS]] [[TG]] — | * [[SIN]] [[COS]] [[TG]] — Вычисление тригонометрических функций: синуса, косинуса, тангенса. | ||
* [[ARCSIN]] [[ARCCOS]] [[ARCTG]] — | * [[ARCSIN]] [[ARCCOS]] [[ARCTG]] — Вычисление обратных тригонометрических функций: арксинуса, арккосинуса, арктангенса. | ||
=== Побитовые логические операции === | === Побитовые логические операции === | ||
* [[AND]] [[OR]] [[XOR]] — 32-битные поразрядные логические И, ИЛИ, исключающее ИЛИ | * [[Слово AND|AND]] [[Слово OR|OR]] [[Слово XOR|XOR]] — 32-битные поразрядные логические И, ИЛИ, исключающее ИЛИ | ||
* [[NOT]] — 32-битное поразрядное логическое отрицание (НЕ). | * [[Слово NOT|NOT]] — 32-битное поразрядное логическое отрицание (НЕ). | ||
=== Остальная математика === | === Остальная математика === | ||
* [[⟩⟨|><]] — Поменять местами байты в двухбайтном значении. | * [[⟩⟨|><]] — Поменять местами байты в переданном через стек двухбайтном значении. | ||
* [[S⟩D|S>D]] | * [[S⟩D|S>D]] | ||
* [[¦X¦||X|]] — | * [[¦X¦||X|]] — Получение абсолютного значения. | ||
* [[MIN]] [[MAX]] — Нахождение минимума, максимума из двух чисел. | * [[MIN]] [[MAX]] — Нахождение минимума, максимума из двух чисел на вершине [[Стек данных|стека]]. | ||
* [[СЧ]] — | * [[СЧ]] — Заносит в стек случайное число от 0 до 1. | ||
* [[ЗН]] — | * [[ЗН]] — Вычисляет знак числа. | ||
* [[[X]|[X]]] [[⎨X⎬|{X}]] — Целая, дробная часть числа. | * [[[X]|[X]]] [[⎨X⎬|{X}]] — Целая, дробная часть числа на вершине стека. | ||
== Работа с памятью разного типа == | == Работа с памятью разного типа == | ||
Строка 71: | Строка 71: | ||
=== Управление стеком возвратов === | === Управление стеком возвратов === | ||
* [[⟩R|>R]] — Переносит 16-битное число из [[Стек данных|стека данных]] в [[Стек возвратов Каллисто|стек возвратов]]. | * [[⟩R|>R]] — Переносит 16-битное число из [[Стек данных|стека данных]] в [[Стек возвратов Каллисто|стек возвратов]]. | ||
* [[R⟩|R>]] — Переносит 16-битное число | * [[R⟩|R>]] — Переносит 16-битное число из [[Стек возвратов Каллисто|стека возвратов]] в [[Стек данных|стек данных]]. | ||
* [[R@]] — Копирует верхнее 16-битное число | * [[R@]] — Копирует верхнее 16-битное число из [[Стек возвратов Каллисто|стека возвратов]] в [[Стек данных|стек данных]]. | ||
* [[RDROP]] — Убирает верхнее 16-битное число со стека возвратов. | * [[RDROP]] — Убирает верхнее 16-битное число со стека возвратов. | ||
* [[RP@]] — Адрес текущей вершины [[Стек возвратов Каллисто|стека возвратов]]. | * [[RP@]] — Адрес текущей вершины [[Стек возвратов Каллисто|стека возвратов]]. | ||
Строка 78: | Строка 78: | ||
* [[Слово R0|R0]] — Переменная, адрес дна [[Стек возвратов Каллисто|стека возвратов]]. | * [[Слово R0|R0]] — Переменная, адрес дна [[Стек возвратов Каллисто|стека возвратов]]. | ||
=== Обращение к памяти === | === Обращение к ячейкам памяти === | ||
* [[Слово @|@]] — | * [[Слово @|@]] — Замещает адрес в [[Стек данных|стеке]] его содержимым, двухбайтовая ячейка содержит число со знаком. | ||
* [[U@]] — | * [[U@]] — Считываем в [[Стек данных|стек]] 2-х байтовое целое без знака. | ||
* [[C@]] — | * [[C@]] — Извлекает байт информации из ячейки, адрес которой находится в [[Стек данных|стеке]]. | ||
* [[Слово !|!]] — | * [[Слово !|!]] — Записывает число x в ячейку с адресом a. | ||
* [[C!]] — Записывает байт c по адресу a. | |||
* [[C!]] — | * [[+!]] — Добавляет к содержимому ячейки с адресом a число n | ||
* [[+!]] — | * [[TOGGLE]] | ||
* [[TOGGLE]] | |||
=== Работа с областями памяти === | === Работа с областями памяти === | ||
* [[CMOVE]] — | * [[CMOVE]] — Копирует побайтно область памяти размером u байт начиная с a1 и записывает её начиная с a2. | ||
* [[CMOVE〉|CMOVE>]] | * [[CMOVE〉|CMOVE>]] | ||
* [[FILL]] — | * [[FILL]] — Записывает u байт c в память начиная с адреса a | ||
* [[ERASE]] — | * [[ERASE]] — Записывает u нулевых байтов в память начиная с адреса a. | ||
* [[BLANK]] — | * [[BLANK]] — Записывает n кодов [[пробел]]а (32) в память, начиная с адреса a. | ||
=== Работа со строками символов === | === Работа со строками символов === | ||
Строка 120: | Строка 118: | ||
* [[CONSTANT]] — Определить следующее слово, как 16-битную целую константу со значением, взятым из стека. | * [[CONSTANT]] — Определить следующее слово, как 16-битную целую константу со значением, взятым из стека. | ||
* [[VARIABLE]] — Определить следующее слово, как 16-битную целую переменную с начальным значением нуль. | * [[VARIABLE]] — Определить следующее слово, как 16-битную целую переменную с начальным значением нуль. | ||
* [[VALUE]] — Определить следующее слово, как десятичную величину с начальным значением, взятым из стека. | * [[VALUE]] — Определить следующее слово, как десятичную величину с начальным значением, взятым из стека. | ||
* [[TO]] — Запись [[Десятичное число|десятичного числа]] в [[VALUE|десятичную величину]] или [[CFA|токена]] в [[DEFER|переменную действия]]. | * [[TO]] — Запись [[Десятичное число|десятичного числа]] в [[VALUE|десятичную величину]] или [[CFA|токена]] в [[DEFER|переменную действия]]. | ||
Строка 134: | Строка 131: | ||
* [[[COMPILE]|[COMPILE]]] — Скомпилировать следующее слово, независимо от его [[IMMEDIATE|признака немедленного исполнения]]. | * [[[COMPILE]|[COMPILE]]] — Скомпилировать следующее слово, независимо от его [[IMMEDIATE|признака немедленного исполнения]]. | ||
* [[[']|[']]] — Скомпилировать [[CFA]] следующего слова как [[LITERAL|числовой литерал]]. | * [[[']|[']]] — Скомпилировать [[CFA]] следующего слова как [[LITERAL|числовой литерал]]. | ||
* [[LITERAL]] [[FLITERAL]] — Обработка литералов, целочисленных и | * [[LITERAL]] [[FLITERAL]] — Обработка литералов, целочисленных и «плавучки». | ||
* [[(LITERAL)]] [[(ИП)]] — Код периода выполнения для литералов, целочисленных и | * [[(LITERAL)]] [[(ИП)]] — Код периода выполнения для литералов, целочисленных и «плавучки». | ||
=== Условный оператор === | === Условный оператор === | ||
Строка 150: | Строка 147: | ||
* [[FOR]] [[NEXT]] — Цикл со счётчиком. Цикл исполнится ровно n раз. | * [[FOR]] [[NEXT]] — Цикл со счётчиком. Цикл исполнится ровно n раз. | ||
* [[Слово I|I]] [[Слово J|J]] [[Слово K|K]] — Помещает в [[Стек данных|стек данных]] значение счётчика цикла [[FOR]]…[[NEXT]], двух внешних циклов. | * [[Слово I|I]] [[Слово J|J]] [[Слово K|K]] — Помещает в [[Стек данных|стек данных]] значение счётчика цикла [[FOR]]…[[NEXT]], двух внешних циклов. | ||
* [[LEAVE]] — Досрочно прерывает цикл [[FOR]] .. [[NEXT]] | * [[LEAVE]] — Досрочно прерывает цикл [[FOR]] .. [[NEXT]] (только для области данных) | ||
* [[UNLOOP]] — Обеспечивает досрочный выход из цикла [[FOR]] … [[NEXT]]. | * [[UNLOOP]] — Обеспечивает досрочный выход из цикла [[FOR]] … [[NEXT]]. | ||
=== | === Управление последовательностью выполнения команд (реализация) === | ||
* [[BRANCH]] [[?BRANCH]] — Безусловный и условный переходы в шитом коде. | * [[BRANCH]] [[?BRANCH]] — Безусловный и условный переходы в шитом коде. | ||
* [[⟩MARK|>MARK]] [[⟩RESOLVE|>RESOLVE]] — Отметить, разрешить в шитом коде ссылку вперёд. | * [[⟩MARK|>MARK]] [[⟩RESOLVE|>RESOLVE]] — Отметить, разрешить в шитом коде ссылку вперёд. | ||
Строка 162: | Строка 159: | ||
=== Слова, лишённые заголовка (внутренние) === | === Слова, лишённые заголовка (внутренние) === | ||
* [[(;CODE)]] — Записать в | * [[(;CODE)]] — Записать в поле кода последней статьи следующий адрес и выйти из определения. | ||
* [[USER]] — | * [[USER]] — Определяет поведение переменной типа USER | ||
* [[(FOR)]] [[(NEXT)]] — Начало, конец цикла со счётчиком в | * [[(FOR)]] [[(NEXT)]] — Начало, конец цикла со счётчиком в шитом коде. | ||
== Ввод-вывод == | == Ввод-вывод == | ||
=== Ввод с клавиатуры === | === Ввод с клавиатуры === | ||
* [[KEY]] — Ожидает ввод | * [[KEY]] — Ожидает ввод [[Знакогенератор|символа]] с клавиатуры, после ввода посылает его код в [[Стек данных|стек]]. | ||
* [[EKEY]] — Ожидает нажатия клавиши. После нажатия посылает [[Код клавиши|код нажатой клавиши]] в [[Стек данных|стек]]. | * [[EKEY]] — Ожидает нажатия клавиши. После нажатия посылает [[Код клавиши|код нажатой клавиши]] в [[Стек данных|стек]]. | ||
* [[INKEY]] — Опрашивает состояние | * [[INKEY]] — Опрашивает состояние клавиатуры. Посылает в [[Стек данных|стек]] [[Код клавиши|код нажатой клавиши]] или −1, если нет нажатой клавиши. | ||
* [[ACCEPT]] — Ввод строки с клавиатуры. | * [[ACCEPT]] — Ввод строки с клавиатуры. | ||
* [[KBDFLG]] — Переменная, содержащая состояние алфавитно-цифровой клавиатуры. | * [[KBDFLG]] — Переменная, содержащая состояние алфавитно-цифровой клавиатуры. | ||
=== Вывод на | === Вывод на индикатор === | ||
* [[EMIT]] — Отображает на [[ | * [[EMIT]] — Отображает на [[индикатор]]е [[Знакогенератор|символ]], код которого находится в [[Стек данных|стеке]]. | ||
* [[EMI]] | * [[EMI]] | ||
* [[C.]] — Выводит [[Знакогенератор| | * [[C.]] — Выводит [[Знакогенератор|символ]] как в дампе, непечатные символы заменяются на "." | ||
* [[Слово TYPE|TYPE]] — Передаёт u [[Знакогенератор| | * [[Слово TYPE|TYPE]] — Передаёт u [[Знакогенератор|символов]] начиная с адреса a на выходное устройство. | ||
* [[TYPE1]] — Вывести строку из памяти данных, заменяя управляющие коды и строго в одну строчку, до конца [[ | * [[TYPE1]] — Вывести строку из памяти данных, заменяя управляющие коды и строго в одну строчку, до конца [[индикатор]]а. | ||
* [[AT]] — Позиционирование текстового курсора: колонка ряд AT | * [[AT]] — Позиционирование текстового курсора: колонка ряд AT | ||
* [[Слово ↖|↖]] — Очищаем [[ | * [[Слово ↖|↖]] — Очищаем [[индикатор]], курсор в левый верхний угол | ||
* [[Слово ↵|↵]] — Вывести на терминал [[возврат каретки]] и [[перевод строки]]. | * [[Слово ↵|↵]] — Вывести на терминал [[возврат каретки]] и [[перевод строки]]. | ||
* [[SPACE]] — Вывод одного [[пробел]]а. | * [[SPACE]] — Вывод одного [[пробел]]а. | ||
* [[SPACES]] — Вывод | * [[SPACES]] — Вывод заданного числа [[Символ с кодом 31|"цифровых" (шириной в цифру) пробелов]] на [[индикатор]]. | ||
* [[I.]] — Вывод целого числа, за которым следует один пробел. | * [[I.]] — Вывод целого числа, за которым следует один пробел. | ||
* [[Слово .|.]] — Вывод числа, за которым следует один пробел. | * [[Слово .|.]] — Вывод числа, за которым следует один пробел. | ||
Строка 192: | Строка 189: | ||
* [[(.")]] — Слово, компилируемое [[."]] | * [[(.")]] — Слово, компилируемое [[."]] | ||
* [[FONT!]] — Установить [[Номер шрифта|шрифт]] для терминала [[Каллисто]]. | * [[FONT!]] — Установить [[Номер шрифта|шрифт]] для терминала [[Каллисто]]. | ||
* [[‗FONT|_FONT]] | * [[‗FONT|_FONT]] | ||
=== Машинная графика === | === Машинная графика === | ||
Строка 200: | Строка 197: | ||
* [[ГРФ]] — Вывод графической информации (обновление экрана) | * [[ГРФ]] — Вывод графической информации (обновление экрана) | ||
* [[DARK]] [[LIGHT]] — Установить вывод тёмным цветом по светлому фону, светлым цветом по тёмному фону | * [[DARK]] [[LIGHT]] — Установить вывод тёмным цветом по светлому фону, светлым цветом по тёмному фону | ||
* [[ATR | * [[ATR]] — Системная переменная, содержащая атрибут точек, выводимых на [[индикатор]] | ||
=== Звук и электронная музыка === | === Звук и электронная музыка === | ||
* [[BELL]] — гудок терминала. | * [[BELL]] — гудок терминала. | ||
* [[BEEP]] — издать звук заданной частоты и длительности. | * [[BEEP]] — издать звук заданной частоты и длительности. | ||
* [[(PLAY)]] | * [[(PLAY)]] | ||
=== Работа с [[блок]]ами === | === Работа с [[блок]]ами === | ||
* [[SCR]] — Служит для хранения текущего значения номера редактируемого [[экран]]а. | * [[SCR]] — Служит для хранения текущего значения номера редактируемого [[экран]]а. | ||
* [[R♯|R#]] — Позиция курсора при редактировании [[экран]]а. | * [[R♯|R#]] — Позиция курсора при редактировании [[экран]]а. | ||
* [[C/L]] — Константа, количество [[Знакогенератор| | * [[C/L]] — Константа, количество [[Знакогенератор|символов]] в одной строке [[Экран|экрана Каллисто]] (64). | ||
* [[B/BUF]] — Константа, число байт в [[Буфер|блочном буфере]] (3072). | * [[B/BUF]] — Константа, число байт в [[Буфер|блочном буфере]] (3072). | ||
* [[APP]] — Слово, [[xt]] которого хранится в переменной [[APP]], будет выполнено после загрузки сохранения по [[LOAD"]] | * [[APP]] — Слово, [[xt]] которого хранится в переменной [[APP]], будет выполнено после загрузки сохранения по [[LOAD"]] | ||
* [[UPDATE]] — Устанавливает | * [[UPDATE]] — Устанавливает в [[буфер]]е флаг "спасения". | ||
* [[ | * [[BUFN]] — Даёт номер загруженного [[блок]]а. | ||
* [[EMPTY-BUFFERS]] — [[Буфер]] отмечается как пустой, независимо от содержания. Обновлённый [[блок]] на диск не записывается. | * [[EMPTY-BUFFERS]] — [[Буфер]] отмечается как пустой, независимо от содержания. Обновлённый [[блок]] на диск не записывается. | ||
* [[SAVE-BUFFERS]] — Если находящийся в [[буфер]]е [[экран]] был изменён, скидывает его на диск. | * [[SAVE-BUFFERS]] — Если находящийся в [[буфер]]е [[экран]] был изменён, скидывает его на диск. | ||
Строка 221: | Строка 218: | ||
* [[BLOCK]] — Записывает в [[Стек данных|стек]] адрес первого байта в [[буфер]]е с [[блок]]ом, номером которого u. | * [[BLOCK]] — Записывает в [[Стек данных|стек]] адрес первого байта в [[буфер]]е с [[блок]]ом, номером которого u. | ||
* [[(LINE)]] — Выдаёт адрес a и длину u строки L с [[экран]]а S. | * [[(LINE)]] — Выдаёт адрес a и длину u строки L с [[экран]]а S. | ||
* [[MESSAGE]] | * [[MESSAGE]] | ||
* [[LOAD]] — Загружает [[экран]] с номером u (исполняет, компилирует) | * [[LOAD]] — Загружает [[экран]] с номером u (исполняет, компилирует) | ||
* [[\S]] — Закончить интерпретацию [[экран]]а. | * [[\S]] — Закончить интерпретацию [[экран]]а. | ||
* [[−−⟩|−−>]] — Даёт команду немедленно приступить к интерпретации следующего по порядку [[экран]]а. | |||
=== Работа с | === Работа с [[блок]]ами (низкий уровень) === | ||
* [[‗RW|_RW]] — Низкоуровневые чтение/запись файла | * [[‗RW|_RW]] — Низкоуровневые чтение/запись файла | ||
* [[КАТ]] — Поиск на электронном диске каталога [[Каллисто]] и переход в него. Если каталога нет, он создаётся. | * [[КАТ]] — Поиск на электронном диске каталога [[Каллисто]] и переход в него. Если каталога нет, он создаётся. | ||
* [[RGRW]] — Чтение/запись файла регистров (словаря) в загруженном каталоге. | * [[RGRW]] — Чтение/запись файла регистров (словаря) в загруженном каталоге. | ||
* [[LORW]] — Чтение/запись [[блок]]а из файла | * [[LORW]] — Чтение/запись [[блок]]а из файла в загруженном каталоге. | ||
* [[DISKOFF]] | * [[DISKOFF]] | ||
== Остальные слова == | == Остальные слова == | ||
Строка 252: | Строка 250: | ||
* [[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]] | ||
* [[ | * [[‗EX|_EX]] — Десятичное значение порядка вводимого числа | ||
* [[DPL]] — Переменная, позиция последней запятой в последнем введённом числе от конца. | * [[DPL]] — Переменная, позиция последней запятой в последнем введённом числе от конца. | ||
* [[FL]] | * [[FL]] | ||
=== Диалог с оператором и отладка === | === Диалог с оператором и отладка === | ||
* [[LOAD"]] — Считать из файлов [[Словарь|словарь Форта]] и [[десятичный словарь]], они должны быть от той же версии [[Каллисто]]. | * [[LOAD"]] — Считать из файлов [[Словарь|словарь Форта]] и [[десятичный словарь]], они должны быть от той же версии [[Каллисто]]. | ||
* [[SAVE"]] — Сохранить в файлы [[Словарь|словарь Форта]] и [[десятичный словарь]]. | * [[SAVE"]] — Сохранить в файлы [[Словарь|словарь Форта]] и [[десятичный словарь]]. | ||
* [[WORDS]] — Просмотр полного списка слов, хранящихся в данный момент в [[Словарь|словаре]] | |||
* [[WORDS]] — Просмотр полного списка слов, хранящихся в данный момент в [[ | |||
* [[BYE]] — Выход из [[Каллисто]] в [[Режим автоматической работы|режим автоматической работы]] калькулятора ЭКВМ. | * [[BYE]] — Выход из [[Каллисто]] в [[Режим автоматической работы|режим автоматической работы]] калькулятора ЭКВМ. | ||
* [[ | * [[BFREE]] — Оценить количество свободных байт памяти. | ||
* [[DUMP]] — Отображает u байт памяти начиная с адреса a | * [[DUMP]] — Отображает u байт памяти начиная с адреса a | ||
* [[.S]] — Распечатка всего содержимого [[Стек данных|стека]], оставляющая [[Стек данных|стек]] без изменений. | * [[.S]] — Распечатка всего содержимого [[Стек данных|стека]], оставляющая [[Стек данных|стек]] без изменений. | ||
Строка 271: | Строка 268: | ||
* [[COPY]] — Копирует [[экран]] n на [[экран]] m | * [[COPY]] — Копирует [[экран]] n на [[экран]] m | ||
* [[Слово \|\]] — Закончить интерпретацию строки. | * [[Слово \|\]] — Закончить интерпретацию строки. | ||
* [[(]] — Комментарий | * [[(]] — Комментарий -- пропустить следующий текст до закрывающей круглой скобки. | ||
* [[.(]] — Напечатать следующие литеры до закрывающей скобки исключительно. | * [[.(]] — Напечатать следующие литеры до закрывающей скобки исключительно. | ||
* [[?BREAK]] — Проверяем клавиатуру на паузу и аварийную остановку. | * [[?BREAK]] — Проверяем клавиатуру на паузу и аварийную остановку. | ||
Строка 277: | Строка 274: | ||
* [[COLD]] — Первая словарная статья, «холодная» перезагрузка с урезанием [[Словарь|словаря]] в начальное состояние. | * [[COLD]] — Первая словарная статья, «холодная» перезагрузка с урезанием [[Словарь|словаря]] в начальное состояние. | ||
* [[WARM]] — «Тёплая» перезагрузка, сохраняющая [[словарь]]. | * [[WARM]] — «Тёплая» перезагрузка, сохраняющая [[словарь]]. | ||
=== Интерпретатор входного текста (внешний) === | === Интерпретатор входного текста (внешний) === | ||
Строка 283: | Строка 279: | ||
* [[TIB]] — Занесение в [[Стек данных|стек]] начального адреса [[Входной буфер терминала|входного буфера терминала (Terminal Input Buffer)]]. | * [[TIB]] — Занесение в [[Стек данных|стек]] начального адреса [[Входной буфер терминала|входного буфера терминала (Terminal Input Buffer)]]. | ||
* [[⟩IN|>IN]] — Переменная, смещение очередной литеры во [[Входной буфер терминала|входном текстовом буфере]] или [[экран]]е. | * [[⟩IN|>IN]] — Переменная, смещение очередной литеры во [[Входной буфер терминала|входном текстовом буфере]] или [[экран]]е. | ||
* [[ENCLOSE]] | * [[ENCLOSE]] | ||
* [[WORD]] — Считывает одно слово из [[Входной буфер терминала|входного]] или [[Буфер|экранного]] буфера и размещает его, начиная с адреса [[HERE]] | * [[WORD]] — Считывает одно слово из [[Входной буфер терминала|входного]] или [[Буфер|экранного]] буфера и размещает его, начиная с адреса [[HERE]] | ||
* [[QUERY]] — Осуществляет ввод строки символов с клавиатуры. | * [[QUERY]] — Осуществляет ввод строки символов с клавиатуры. | ||
Строка 289: | Строка 285: | ||
* [[QUIT]] — Очищает [[Стек возвратов Каллисто|стек возвратов]], устанавливает режим исполнения и возвращает управление терминалу. | * [[QUIT]] — Очищает [[Стек возвратов Каллисто|стек возвратов]], устанавливает режим исполнения и возвращает управление терминалу. | ||
* [[ABORT]] — Прерывает исполнение, делает список слов [[FORTH]] контекстным, исполняет [[QUIT]] | * [[ABORT]] — Прерывает исполнение, делает список слов [[FORTH]] контекстным, исполняет [[QUIT]] | ||
* [[SAVIN]] — Сохраняем | * [[SAVIN]] — Сохраняем [[⟩IN|>IN]] в [[INTERPRET]] для [[NUMBER]] | ||
* [[Пустое слово|\0]] (пустое слово) — закончить [[INTERPRET|интерпретацию]]. | * [[Пустое слово|\0]] (пустое слово) — закончить [[INTERPRET|интерпретацию]]. | ||
Строка 300: | Строка 296: | ||
=== Списки слов и поиск === | === Списки слов и поиск === | ||
* [[VOC-LINK]] | * [[VOC-LINK]] | ||
* [[CONTEXT]] — Переменная указывает на список [[VOCABULARY]], в котором происходит поиск слов во время интерпретации входного потока. | * [[CONTEXT]] — Переменная указывает на список [[VOCABULARY]], в котором происходит поиск слов во время интерпретации входного потока. | ||
* [[CURRENT]] — Переменная указывает список [[VOCABULARY]], в который вводятся определения новых слов. | * [[CURRENT]] — Переменная указывает список [[VOCABULARY]], в который вводятся определения новых слов. | ||
Строка 306: | Строка 302: | ||
* [[FINDN]] — Поиск слова в активных списках слов | * [[FINDN]] — Поиск слова в активных списках слов | ||
* [[VOCABULARY]] — Слово-описатель, которое создаёт новый список слов. | * [[VOCABULARY]] — Слово-описатель, которое создаёт новый список слов. | ||
* [['N]] — Ищет слово с именем XXX (из [[Входной буфер терминала|входного]] или [[Буфер|экранного]] буфера) в [[Словарь|словаре Форта]]. | * [['N]] — Ищет слово с именем XXX (из [[Входной буфер терминала|входного]] или [[Буфер|экранного]] буфера) в [[Словарь|словаре Форта]]. | ||
* [[FORTH]] — Делает список [[FORTH]] контекстным. | * [[FORTH]] — Делает список [[FORTH]] контекстным. | ||
Строка 314: | Строка 309: | ||
=== Работа с полями словарной статьи === | === Работа с полями словарной статьи === | ||
* [[⟩BODY|>BODY]] — [[CFA]] | * [[⟩BODY|>BODY]] — [[CFA]] ---> [[PFA]] | ||
* [[BODY⟩|BODY>]] — [[PFA]] | * [[BODY⟩|BODY>]] — [[PFA]] ---> [[CFA]] | ||
* [[N⟩LINK|N>LINK]] — [[NFA]] | * [[N⟩LINK|N>LINK]] — [[NFA]] ---> [[LFA]] | ||
* [[NAME⟩|NAME>]] — [[NFA]] | * [[NAME⟩|NAME>]] — [[NFA]] ---> [[CFA]] | ||
* [[N⟩BODY|N>BODY]] — [[NFA]] | * [[N⟩BODY|N>BODY]] — [[NFA]] ---> [[PFA]] | ||
* [[EXECUTE]] — Исполняет слово, [[CFA|токен (CFA)]] которого хранится в [[Стек данных|стеке]]. | * [[EXECUTE]] — Исполняет слово, [[CFA|токен (CFA)]] которого хранится в [[Стек данных|стеке]]. | ||
* [[ID.]] — Печатает имя слова, записанное в соответствии с требованиями [[Словарь|словаря Форта]] | * [[ID.]] — Печатает имя слова, записанное в соответствии с требованиями [[Словарь|словаря Форта]] | ||
Строка 324: | Строка 319: | ||
=== Диагностика и обработка ошибок === | === Диагностика и обработка ошибок === | ||
* [[ | * [[ERROR (Каллисто)|ERROR]] — Диагностика ошибок Форт ИТЭФ | ||
* [[?ERROR]] — | * [[?ERROR]] — диагностика ошибок Форт ИТЭФ | ||
* [[?COMP]] — проверить, что текущий режим — компиляция. | * [[?COMP]] — проверить, что текущий режим — компиляция. | ||
* [[?EXEC]] | * [[?EXEC]] | ||
* [[?PAIRS]] | * [[?PAIRS]] | ||
* [[CSP]] — Переменная для хранения контрольного значения указателя [[Стек данных|стека]]. | * [[CSP]] — Переменная для хранения контрольного значения указателя [[Стек данных|стека]]. | ||
* [[!CSP]] — Запомнить адрес вершины [[Стек данных|стека]] в [[CSP]]. | * [[!CSP]] — Запомнить адрес вершины [[Стек данных|стека]] в [[CSP]]. | ||
* [[?CSP]] — Выдать ошибку "сбился указатель [[Стек данных|стека]]" если он не равен значению в [[CSP]] | * [[?CSP]] — Выдать ошибку "сбился указатель [[Стек данных|стека]]" если он не равен значению в [[CSP]] | ||
* [[?LOADING]] | * [[?LOADING]] | ||
* [[?STACK]] — Выдать ошибку «Исчерпание [[Стек данных|стека]]», если он менее, чем пуст и «Исчерпание памяти» при зазоре, меньшем 5(?) элементов. | * [[?STACK]] — Выдать ошибку «Исчерпание [[Стек данных|стека]]», если он менее, чем пуст и «Исчерпание памяти» при зазоре, меньшем 5(?) элементов. | ||
* [[ERB]] — Флаг блокировки выхода в [[QUIT]] при ошибке [[ | * [[ERB]] — Флаг блокировки выхода в [[QUIT]] при ошибке [[ERROR (Каллисто)|ERROR]] | ||
== Ссылки == | == Ссылки == | ||
* См. [[Список встроенных слов Каллисто]] | * См. [[Список встроенных слов Каллисто]] | ||
* [http://the-hacker.ru/ | * [http://the-hacker.ru/2016/Callisto-0.8.4b.zip Каллисто v0.8.4б], последняя актуальная версия [[Каллисто]] | ||
* [[Палитра Каллисто]] — исходные тексты слов, не включённых в ядро Каллисто | * [[Палитра Каллисто]] — исходные тексты слов, не включённых в ядро Каллисто | ||
* [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] в Википедии | ||
Строка 344: | Строка 339: | ||
* [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] в Википедии | ||