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

Перейти к навигации Перейти к поиску
Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы войдёте или создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.

Текущая версия Ваш текст
Строка 1: Строка 1:
Следующие слова реализованы в ядре [[Каллисто]] Классик v1.0rc2 и включены в стандартную поставку:
Следующие слова реализованы в ядре [[Каллисто]] v0.и включены в стандартную поставку:


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


=== Целочисленное деление ===
=== Целочисленное деление ===
* [[Слово /|/]] — Целочисленное деление y на x, помещение частного в [[Стек данных|стек]].
* [[Слово /|/]] — Целочисленное деление a на b, помещение частного в [[Стек данных|стек]].
* [[MOD]] — Получение остатка от деления y на x.
* [[MOD]] — Получение остатка от деления a на b.
* [[Слово /MOD|/MOD]] — Деление с остатком y на x.
* [[Слово /MOD|/MOD]] — Деление с остатком a на b.
* [[2/]] — Целочисленное деление на 2 (двоичный сдвиг вправо).
* [[2/]] — Целочисленное деление на 2 (двоичный сдвиг вправо).
* [[×/]] — Операция масштабирования: умножение z на y с последующим делением на x.
* [[×/]] — Операция масштабирования -- умножение n1 на n2 с последующим делением на n3.
* [[×/MOD]] — Остаток и частное от деления произведения z×y на x.
* [[×/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).
* [[Слово Π|$\pi$]] — Число пи (3,14159265359).
* [[BL]] — Код литеры [[пробел]]а, число 32.
* [[BL]] — Константа, код [[пробел]]а (32).


=== Алгебраические функции ===
=== Алгебраические функции ===
Строка 40: Строка 40:


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


=== Остальная математика ===
=== Остальная математика ===
Строка 78: Строка 78:
* [[Слово R0|R0]] — Переменная, адрес дна [[Стек возвратов Каллисто|стека возвратов]].
* [[Слово R0|R0]] — Переменная, адрес дна [[Стек возвратов Каллисто|стека возвратов]].


=== Обращение к памяти ===
=== Обращение к ячейкам памяти ===
* [[Слово @|@]] — Заместить адрес в [[Стек данных|стеке]] его содержимым, ячейка содержит число со знаком.
* [[Слово @|@]] — Замещает адрес в [[Стек данных|стеке]] его содержимым, двухбайтовая ячейка содержит число со знаком.
* [[U@]] — Считать 2-х байтовое целое без знака.
* [[U@]] — Считываем в [[Стек данных|стек]] 2-х байтовое целое без знака.
* [[C@]] — Извлечь байт.
* [[C@]] — Извлекает байт информации из ячейки, адрес которой находится в [[Стек данных|стеке]].
* [[Слово !|!]] — Записать число в ячейку.
* [[Слово !|!]] — Записывает число x в ячейку с адресом a.
* [[0!]] — Обнулить ячейку.
* [[0!]] — Обнулить ячейку по адресу a.
* [[C!]] — Записать байт.
* [[C!]] — Записывает байт c по адресу a.
* [[+!]] — Добавить число к содержимому ячейки.
* [[+!]] — Добавляет к содержимому ячейки с адресом a число n
* [[TOGGLE]] — Изменить байт памяти по маске XOR.
* [[TOGGLE]] — Изменить байт с адресом a по xor−маске c.
* [[++!]] [[−−!]] [[++@]] [[−−@]] — Косвенная адресация с предварительным уменьшением или увеличением указателя.


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


=== Работа со строками символов ===
=== Работа со строками символов ===
Строка 169: Строка 168:


=== Ввод с клавиатуры ===
=== Ввод с клавиатуры ===
* [[KEY]] — Ожидает ввод литеры с клавиатуры, после ввода посылает [[Знакогенератор|её код]] в [[Стек данных|стек]].
* [[KEY]] — Ожидает ввод [[Знакогенератор|символа]] с клавиатуры, после ввода посылает его код в [[Стек данных|стек]].
* [[EKEY]] — Ожидает нажатия клавиши. После нажатия посылает [[Код клавиши|код нажатой клавиши]] в [[Стек данных|стек]].
* [[EKEY]] — Ожидает нажатия клавиши. После нажатия посылает [[Код клавиши|код нажатой клавиши]] в [[Стек данных|стек]].
* [[INKEY]] — Опрашивает состояние [[Клавиатура|клавиатуры]]. Посылает в [[Стек данных|стек]] [[Код клавиши|код нажатой клавиши]] или −1, если нет нажатой клавиши.
* [[INKEY]] — Опрашивает состояние [[Клавиатура|клавиатуры]]. Посылает в [[Стек данных|стек]] [[Код клавиши|код нажатой клавиши]] или −1, если нет нажатой клавиши.
Строка 175: Строка 174:
* [[KBDFLG]] — Переменная, содержащая состояние алфавитно-цифровой клавиатуры.
* [[KBDFLG]] — Переменная, содержащая состояние алфавитно-цифровой клавиатуры.


=== Вывод на [[Графический экран|экран]] ===
=== Вывод на индикатор ===
* [[EMIT]] — Отображает на [[Графический экран|экран]]е [[Знакогенератор|литеру]], код которой находится в [[Стек данных|стеке]].
* [[EMIT]] — Отображает на [[индикатор]]е [[Знакогенератор|символ]], код которого находится в [[Стек данных|стеке]].
* [[EMI]] — Вывод нескольких литер на [[Графический экран|экран]].
* [[EMI]] — Вывод нескольких символов на [[индикатор]].
* [[C.]] — Выводит [[Знакогенератор|литеру]] как в дампе, непечатные символы заменяются на "."
* [[C.]] — Выводит [[Знакогенератор|символ]] как в дампе, непечатные символы заменяются на "."
* [[Слово TYPE|TYPE]] — Передаёт u [[Знакогенератор|литер]], начиная с адреса a на выходное устройство.
* [[Слово TYPE|TYPE]] — Передаёт u [[Знакогенератор|символов]] начиная с адреса a на выходное устройство.
* [[TYPE1]] — Вывести строку из памяти данных, заменяя управляющие коды и строго в одну строчку, до конца [[Графический экран|экран]]а.
* [[TYPE1]] — Вывести строку из памяти данных, заменяя управляющие коды и строго в одну строчку, до конца [[индикатор]]а.
* [[AT]] — Позиционирование текстового курсора: колонка ряд AT
* [[AT]] — Позиционирование текстового курсора: колонка ряд AT
* [[Слово ↖|↖]] — Очищаем [[Графический экран|экран]], курсор в левый верхний угол
* [[Слово ↖|↖]] — Очищаем [[индикатор]], курсор в левый верхний угол
* [[Слово ↵|↵]] — Вывести на терминал [[возврат каретки]] и [[перевод строки]].
* [[Слово ↵|↵]] — Вывести на терминал [[возврат каретки]] и [[перевод строки]].
* [[SPACE]] — Вывод одного [[пробел]]а.
* [[SPACE]] — Вывод одного [[пробел]]а.
* [[SPACES]] — Вывод на [[Графический экран|экран]] заданного числа [[Символ с кодом 31|"цифровых" (шириной в цифру) пробелов]].
* [[SPACES]] — Вывод заданного числа [[Символ с кодом 31|"цифровых" (шириной в цифру) пробелов]] на [[индикатор]].
* [[I.]] — Вывод целого числа, за которым следует один пробел.
* [[I.]] — Вывод целого числа, за которым следует один пробел.
* [[Слово .|.]] — Вывод числа, за которым следует один пробел.
* [[Слово .|.]] — Вывод числа, за которым следует один пробел.
Строка 210: Строка 209:
* [[SCR]] — Служит для хранения текущего значения номера редактируемого [[экран]]а.
* [[SCR]] — Служит для хранения текущего значения номера редактируемого [[экран]]а.
* [[R♯|R#]] — Позиция курсора при редактировании [[экран]]а.
* [[R♯|R#]] — Позиция курсора при редактировании [[экран]]а.
* [[C/L]] — Константа, количество [[Знакогенератор|литер]] в одной строке [[Экран|экрана Каллисто]] (64).
* [[C/L]] — Константа, количество [[Знакогенератор|символов]] в одной строке [[Экран|экрана Каллисто]] (64).
* [[B/BUF]] — Константа, число байт в [[Буфер|блочном буфере]] (3072).
* [[B/BUF]] — Константа, число байт в [[Буфер|блочном буфере]] (3072).
* [[APP]] — Слово, [[xt]] которого хранится в переменной [[APP]], будет выполнено после загрузки сохранения по [[LOAD"]]
* [[APP]] — Слово, [[xt]] которого хранится в переменной [[APP]], будет выполнено после загрузки сохранения по [[LOAD"]]
Строка 224: Строка 223:
* [[LOAD]] — Загружает [[экран]] с номером u (исполняет, компилирует)
* [[LOAD]] — Загружает [[экран]] с номером u (исполняет, компилирует)
* [[\S]] — Закончить интерпретацию [[экран]]а.
* [[\S]] — Закончить интерпретацию [[экран]]а.
* [[−−⟩|−−>]] — Даёт команду немедленно приступить к интерпретации следующего по порядку [[экран]]а.


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


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


Строка 338: Строка 337:
== Ссылки ==
== Ссылки ==
* См. [[Список встроенных слов Каллисто]]
* См. [[Список встроенных слов Каллисто]]
* [http://the-hacker.ru/2017/Callisto-1.zip Каллисто Классик 1.0], последняя актуальная версия [[Каллисто]] и [http://the-hacker.ru/Callisto.html её исходный текст]
* [http://the-hacker.ru/2016/Callisto-0.9b.zip Каллисто v0.], последняя актуальная версия [[Каллисто]]
* [[Палитра Каллисто]] — исходные тексты слов, не включённых в ядро Каллисто
* [[Палитра Каллисто]] — исходные тексты слов, не включённых в ядро Каллисто
* [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: Строка 343:
* [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] — короткий адрес этой страницы (через зарубежный сайт)




Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:

Отменить Справка по редактированию (в новом окне)

Шаблоны, используемые на этой странице: