Редактирование: Слова Каллисто по категориям
Перейти к навигации
Перейти к поиску
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
Следующие слова реализованы в ядре [[Каллисто]] | Следующие слова реализованы в ядре [[Каллисто]] v0.9б и включены в стандартную поставку: | ||
== Математика == | == Математика == | ||
Строка 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). | ||
=== Алгебраические функции === | === Алгебраические функции === | ||
Строка 40: | Строка 40: | ||
=== Побитовые логические операции === | === Побитовые логические операции === | ||
* [[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]] — Нахождение минимума, максимума из двух чисел. | ||
Строка 78: | Строка 78: | ||
* [[Слово R0|R0]] — Переменная, адрес дна [[Стек возвратов Каллисто|стека возвратов]]. | * [[Слово R0|R0]] — Переменная, адрес дна [[Стек возвратов Каллисто|стека возвратов]]. | ||
=== Обращение к памяти === | === Обращение к ячейкам памяти === | ||
* [[Слово @|@]] — | * [[Слово @|@]] — Замещает адрес в [[Стек данных|стеке]] его содержимым, двухбайтовая ячейка содержит число со знаком. | ||
* [[U@]] — | * [[U@]] — Считываем в [[Стек данных|стек]] 2-х байтовое целое без знака. | ||
* [[C@]] — | * [[C@]] — Извлекает байт информации из ячейки, адрес которой находится в [[Стек данных|стеке]]. | ||
* [[Слово !|!]] — | * [[Слово !|!]] — Записывает число x в ячейку с адресом a. | ||
* [[0!]] — Обнулить ячейку. | * [[0!]] — Обнулить ячейку по адресу a. | ||
* [[C!]] — | * [[C!]] — Записывает байт c по адресу a. | ||
* [[+!]] — | * [[+!]] — Добавляет к содержимому ячейки с адресом a число n | ||
* [[TOGGLE]] | * [[TOGGLE]] | ||
=== Работа с областями памяти === | === Работа с областями памяти === | ||
* [[CMOVE]] — | * [[CMOVE]] — Копирует побайтно область памяти размером u байт начиная с a1 и записывает её начиная с a2. | ||
* [[CMOVE〉|CMOVE>]] — Копировать | * [[CMOVE〉|CMOVE>]] — Копировать u байтов из a1 в a2, начиная с больших адресов. | ||
* [[FILL]] — | * [[FILL]] — Записывает u байт c в память начиная с адреса a | ||
* [[ERASE]] — | * [[ERASE]] — Записывает u нулевых байтов в память начиная с адреса a. | ||
* [[BLANK]] — | * [[BLANK]] — Записывает n кодов [[пробел]]а (32) в память, начиная с адреса a. | ||
=== Работа со строками символов === | === Работа со строками символов === | ||
Строка 120: | Строка 119: | ||
* [[CONSTANT]] — Определить следующее слово, как 16-битную целую константу со значением, взятым из стека. | * [[CONSTANT]] — Определить следующее слово, как 16-битную целую константу со значением, взятым из стека. | ||
* [[VARIABLE]] — Определить следующее слово, как 16-битную целую переменную с начальным значением нуль. | * [[VARIABLE]] — Определить следующее слово, как 16-битную целую переменную с начальным значением нуль. | ||
* [[VALUE]] — Определить следующее слово, как десятичную величину с начальным значением, взятым из стека. | * [[VALUE]] — Определить следующее слово, как десятичную величину с начальным значением, взятым из стека. | ||
* [[TO]] — Запись [[Десятичное число|десятичного числа]] в [[VALUE|десятичную величину]] или [[CFA|токена]] в [[DEFER|переменную действия]]. | * [[TO]] — Запись [[Десятичное число|десятичного числа]] в [[VALUE|десятичную величину]] или [[CFA|токена]] в [[DEFER|переменную действия]]. | ||
Строка 134: | Строка 132: | ||
* [[[COMPILE]|[COMPILE]]] — Скомпилировать следующее слово, независимо от его [[IMMEDIATE|признака немедленного исполнения]]. | * [[[COMPILE]|[COMPILE]]] — Скомпилировать следующее слово, независимо от его [[IMMEDIATE|признака немедленного исполнения]]. | ||
* [[[']|[']]] — Скомпилировать [[CFA]] следующего слова как [[LITERAL|числовой литерал]]. | * [[[']|[']]] — Скомпилировать [[CFA]] следующего слова как [[LITERAL|числовой литерал]]. | ||
* [[LITERAL]] [[FLITERAL]] — Обработка литералов, целочисленных и | * [[LITERAL]] [[FLITERAL]] — Обработка литералов, целочисленных и «плавучки». | ||
* [[(LITERAL)]] [[(ИП)]] — Код периода выполнения для литералов, целочисленных и | * [[(LITERAL)]] [[(ИП)]] — Код периода выполнения для литералов, целочисленных и «плавучки». | ||
=== Условный оператор === | === Условный оператор === | ||
Строка 153: | Строка 151: | ||
* [[UNLOOP]] — Обеспечивает досрочный выход из цикла [[FOR]] … [[NEXT]]. | * [[UNLOOP]] — Обеспечивает досрочный выход из цикла [[FOR]] … [[NEXT]]. | ||
=== | === Управление последовательностью выполнения команд (реализация) === | ||
* [[BRANCH]] [[?BRANCH]] — Безусловный и условный переходы в шитом коде. | * [[BRANCH]] [[?BRANCH]] — Безусловный и условный переходы в шитом коде. | ||
* [[⟩MARK|>MARK]] [[⟩RESOLVE|>RESOLVE]] — Отметить, разрешить в шитом коде ссылку вперёд. | * [[⟩MARK|>MARK]] [[⟩RESOLVE|>RESOLVE]] — Отметить, разрешить в шитом коде ссылку вперёд. | ||
Строка 162: | Строка 160: | ||
=== Слова, лишённые заголовка (внутренние) === | === Слова, лишённые заголовка (внутренние) === | ||
* [[(;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.]] — Вывод целого числа, за которым следует один пробел. | ||
* [[Слово .|.]] — Вывод числа, за которым следует один пробел. | * [[Слово .|.]] — Вывод числа, за которым следует один пробел. | ||
Строка 210: | Строка 208: | ||
* [[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"]] | ||
Строка 224: | Строка 222: | ||
* [[LOAD]] — Загружает [[экран]] с номером u (исполняет, компилирует) | * [[LOAD]] — Загружает [[экран]] с номером u (исполняет, компилирует) | ||
* [[\S]] — Закончить интерпретацию [[экран]]а. | * [[\S]] — Закончить интерпретацию [[экран]]а. | ||
* [[−−⟩|−−>]] — Даёт команду немедленно приступить к интерпретации следующего по порядку [[экран]]а. | |||
=== Работа с | === Работа с [[блок]]ами (низкий уровень) === | ||
* [[‗RW|_RW]] — Низкоуровневые чтение/запись файла | * [[‗RW|_RW]] — Низкоуровневые чтение/запись файла | ||
* [[КАТ]] — Поиск на электронном диске каталога [[Каллисто]] и переход в него. Если каталога нет, он создаётся. | * [[КАТ]] — Поиск на электронном диске каталога [[Каллисто]] и переход в него. Если каталога нет, он создаётся. | ||
Строка 252: | Строка 251: | ||
* [[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 — адрес первой не цифры. | ||
* [[Слово EE|EE]] — Значение порядка вводимого числа | * [[Слово EE|EE]] — Значение порядка вводимого числа | ||
* [[DPL]] — Переменная, позиция последней запятой в последнем введённом числе от конца. | * [[DPL]] — Переменная, позиция последней запятой в последнем введённом числе от конца. | ||
* [[FL]] — Преобразовать возвращённое NUMBER целое в | * [[FL]] — Преобразовать возвращённое NUMBER целое в десятичное число. | ||
=== Диалог с оператором и отладка === | === Диалог с оператором и отладка === | ||
* [[LOAD"]] — Считать из файлов [[Словарь|словарь Форта]] и [[десятичный словарь]], они должны быть от той же версии [[Каллисто]]. | * [[LOAD"]] — Считать из файлов [[Словарь|словарь Форта]] и [[десятичный словарь]], они должны быть от той же версии [[Каллисто]]. | ||
* [[SAVE"]] — Сохранить в файлы [[Словарь|словарь Форта]] и [[десятичный словарь]]. | * [[SAVE"]] — Сохранить в файлы [[Словарь|словарь Форта]] и [[десятичный словарь]]. | ||
* [[WORDS]] — Просмотр полного списка слов, хранящихся в данный момент в [[CONTEXT|контекстном наборе слов]] | * [[WORDS]] — Просмотр полного списка слов, хранящихся в данный момент в [[CONTEXT|контекстном наборе слов]] | ||
* [[BYE]] — Выход из [[Каллисто]] в [[Режим автоматической работы|режим автоматической работы]] калькулятора ЭКВМ. | * [[BYE]] — Выход из [[Каллисто]] в [[Режим автоматической работы|режим автоматической работы]] калькулятора ЭКВМ. | ||
* [[ | * [[BFREE]] — Оценить количество свободных байт памяти. | ||
* [[DUMP]] — Отображает u байт памяти начиная с адреса a | * [[DUMP]] — Отображает u байт памяти начиная с адреса a | ||
* [[.S]] — Распечатка всего содержимого [[Стек данных|стека]], оставляющая [[Стек данных|стек]] без изменений. | * [[.S]] — Распечатка всего содержимого [[Стек данных|стека]], оставляющая [[Стек данных|стек]] без изменений. | ||
Строка 271: | Строка 269: | ||
* [[COPY]] — Копирует [[экран]] n на [[экран]] m | * [[COPY]] — Копирует [[экран]] n на [[экран]] m | ||
* [[Слово \|\]] — Закончить интерпретацию строки. | * [[Слово \|\]] — Закончить интерпретацию строки. | ||
* [[(]] — Комментарий | * [[(]] — Комментарий -- пропустить следующий текст до закрывающей круглой скобки. | ||
* [[.(]] — Напечатать следующие литеры до закрывающей скобки исключительно. | * [[.(]] — Напечатать следующие литеры до закрывающей скобки исключительно. | ||
* [[?BREAK]] — Проверяем клавиатуру на паузу и аварийную остановку. | * [[?BREAK]] — Проверяем клавиатуру на паузу и аварийную остановку. | ||
Строка 289: | Строка 287: | ||
* [[QUIT]] — Очищает [[Стек возвратов Каллисто|стек возвратов]], устанавливает режим исполнения и возвращает управление терминалу. | * [[QUIT]] — Очищает [[Стек возвратов Каллисто|стек возвратов]], устанавливает режим исполнения и возвращает управление терминалу. | ||
* [[ABORT]] — Прерывает исполнение, делает список слов [[FORTH]] контекстным, исполняет [[QUIT]] | * [[ABORT]] — Прерывает исполнение, делает список слов [[FORTH]] контекстным, исполняет [[QUIT]] | ||
* [[SAVIN]] — Сохраняем | * [[SAVIN]] — Сохраняем [[⟩IN|>IN]] в [[INTERPRET]] для [[NUMBER]] | ||
* [[Пустое слово|\0]] (пустое слово) — закончить [[INTERPRET|интерпретацию]]. | * [[Пустое слово|\0]] (пустое слово) — закончить [[INTERPRET|интерпретацию]]. | ||
Строка 324: | Строка 322: | ||
=== Диагностика и обработка ошибок === | === Диагностика и обработка ошибок === | ||
* [[Слово ERROR|ERROR]] — | * [[Слово ERROR|ERROR]] — Диагностика ошибок Форт ИТЭФ | ||
* [[?ERROR]] — | * [[?ERROR]] — диагностика ошибок Форт ИТЭФ | ||
* [[?COMP]] — проверить, что текущий режим — компиляция. | * [[?COMP]] — проверить, что текущий режим — компиляция. | ||
* [[?EXEC]] — Проверка состояния исполнения. | * [[?EXEC]] — Проверка состояния исполнения. | ||
Строка 338: | Строка 336: | ||
== Ссылки == | == Ссылки == | ||
* См. [[Список встроенных слов Каллисто]] | * См. [[Список встроенных слов Каллисто]] | ||
* [http://the-hacker.ru/ | * [http://the-hacker.ru/2016/Callisto-0.9b.zip Каллисто v0.9б], последняя актуальная версия [[Каллисто]] | ||
* [[Палитра Каллисто]] — исходные тексты слов, не включённых в ядро Каллисто | * [[Палитра Каллисто]] — исходные тексты слов, не включённых в ядро Каллисто | ||
* [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: | Строка 342: | ||
* [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] в Википедии | ||