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

Перейти к навигации Перейти к поиску
Внимание: Вы не вошли в систему. Ваш 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).
* [[Слово 0|0]] — Константа нуль (значение «ложь»).
* [[Слово 1|1]] [[Слово 2|2]] — Числа один и два.
* [[Слово 1|1]] [[Слово 2|2]] [[Слово 3|3]] — Константы один, два, три.
* [[Слово Π| \(\pi\)]] — Число пи (3,14159265359).
* [[Слово Π|$\pi$]] — Число пи (3,14159265359).
* [[BL]] — Код литеры [[пробел]]а, число 32.
* [[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]] — Преобразовывает 32−битное число n в пару 16−битных чисел u2 u1.
* [[S⟩D|S>D]]
* [[¦X¦||X|]] — Абсолютное значение (модуль числа).
* [[¦X¦||X|]] — Получение абсолютного значения.
* [[MIN]] [[MAX]] — Нахождение минимума, максимума из двух чисел.
* [[MIN]] [[MAX]] — Нахождение минимума, максимума из двух чисел на вершине [[Стек данных|стека]].
* [[СЧ]] — Случайное число от 0 до 1.
* [[СЧ]] — Заносит в стек случайное число от 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-битное число со знаком из [[Стек возвратов Каллисто|стека возвратов]] в [[Стек данных|стек данных]].
* [[RDROP]] — Убирает верхнее 16-битное число со стека возвратов.
* [[RDROP]] — Убирает верхнее 16-битное число со стека возвратов.
* [[RP@]] — Адрес текущей вершины [[Стек возвратов Каллисто|стека возвратов]].
* [[RP@]] — Адрес текущей вершины [[Стек возвратов Каллисто|стека возвратов]].
Строка 78: Строка 77:
* [[Слово R0|R0]] — Переменная, адрес дна [[Стек возвратов Каллисто|стека возвратов]].
* [[Слово R0|R0]] — Переменная, адрес дна [[Стек возвратов Каллисто|стека возвратов]].


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


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


=== Работа со строками символов ===
=== Работа со строками символов ===
Строка 118: Строка 115:


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


=== Условный оператор ===
=== Условный оператор ===
Строка 150: Строка 146:
* [[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: Строка 158:


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


== Ввод-вывод ==
== Ввод-вывод ==


=== Ввод с клавиатуры ===
=== Ввод с клавиатуры ===
* [[KEY]] — Ожидает ввод литеры с клавиатуры, после ввода посылает [[Знакогенератор|её код]] в [[Стек данных|стек]].
* [[KEY]] — Ожидает ввод [[Знакогенератор|символа]] с клавиатуры, после ввода посылает его код в [[Стек данных|стек]].
* [[EKEY]] — Ожидает нажатия клавиши. После нажатия посылает [[Код клавиши|код нажатой клавиши]] в [[Стек данных|стек]].
* [[EKEY]] — Ожидает нажатия клавиши. После нажатия посылает [[Код клавиши|код нажатой клавиши]] в [[Стек данных|стек]].
* [[INKEY]] — Опрашивает состояние [[Клавиатура|клавиатуры]]. Посылает в [[Стек данных|стек]] [[Код клавиши|код нажатой клавиши]] или −1, если нет нажатой клавиши.
* [[INKEY]] — Опрашивает состояние клавиатуры. Посылает в [[Стек данных|стек]] [[Код клавиши|код нажатой клавиши]] или −1, если нет нажатой клавиши.
* [[ACCEPT]] — Ввод строки с клавиатуры.
* [[ACCEPT]] — Ввод строки с клавиатуры.
* [[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.]] — Вывод целого числа, за которым следует один пробел.
* [[Слово .|.]] — Вывод числа, за которым следует один пробел.
* [[Слово .|.]] — Вывод числа, за которым следует один пробел.
Строка 191: Строка 187:
* [[."]] — При исполнении напечатать на терминале следующие литеры до кавычки исключительно.
* [[."]] — При исполнении напечатать на терминале следующие литеры до кавычки исключительно.
* [[(.")]] — Слово, компилируемое [[."]]
* [[(.")]] — Слово, компилируемое [[."]]
* [[FONT!]] — Установить [[Номер шрифта|шрифт]] для терминала [[Каллисто]].
* [[‗FONT|_FONT]] — Адрес структуры терминала из 5 байт, описывающей активный шрифт.


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


=== Звук и электронная музыка ===
=== Звук и электронная музыка ===
* [[BELL]] — гудок терминала.
* [[BELL]] — гудок терминала.
* [[BEEP]] — издать звук заданной частоты и длительности.
* [[BEEP]] — издать звук заданной частоты и длительности.
* [[(PLAY)]] — Сыграть мелодию.
* [[(PLAY)]]


=== Работа с [[блок]]ами ===
=== Работа с [[блок]]ами ===
* [[SCR]] — Служит для хранения текущего значения номера редактируемого [[экран]]а.
* [[SCR]] — Служит для хранения текущего значения номера редактируемого [[экран]]а.
* [[R♯|R#]] — Позиция курсора при редактировании [[экран]]а.
* [[R♯|R#]] — Позиция курсора при редактировании [[экран]]а.
* [[C/L]] — Константа, количество [[Знакогенератор|литер]] в одной строке [[Экран|экрана Каллисто]] (64).
* [[C/L]] — Константа, количество [[Знакогенератор|символов]] в одной строке [[Экран|экрана Каллисто]] (64).
* [[B/BUF]] — Константа, число байт в [[Буфер|блочном буфере]] (3072).
* [[B/BUF]] — Константа, число байт в [[Буфер|блочном буфере]] (3072).
* [[APP]] — Слово, [[xt]] которого хранится в переменной [[APP]], будет выполнено после загрузки сохранения по [[LOAD"]]
* [[AUTOEXEC]] — Слово, [[xt]] которого хранится в переменной [[AUTOEXEC]], будет выполнено после загрузки сохранения по [[LOAD"]]
* [[UPDATE]] — Устанавливает «флаг спасения» [[буфер]]а.
* [[UPDATE]] — Устанавливает в [[буфер]]е флаг "спасения".
* [[BUFBLK]] — Переменная, номер загруженного [[блок]]а.
* [[Слово X|X]] — Даёт номер загруженного [[блок]]а.
* [[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]] — Сохранить [[⟩IN|>IN]] в [[R#]] и вывести сообщение номер c.
* [[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]],
* [[UCONVERT]] — Преобразовать последовательность цифр в целое, с учётом [[BASE]].
* [[CONVERT]]
* [[Слово EE|EE]] — Значение порядка вводимого числа
* [[$EX]] — Десятичное значение порядка вводимого числа
* [[DPL]] — Переменная, позиция последней запятой в последнем введённом числе от конца.
* [[DPL]] — Переменная, позиция последней запятой в последнем введённом числе от конца.
* [[FL]] — Преобразовать возвращённое NUMBER целое в [[десятичное число]].
* [[FL]]


=== Диалог с оператором и отладка ===
=== Диалог с оператором и отладка ===
* [[LOAD"]] — Считать из файлов [[Словарь|словарь Форта]] и [[десятичный словарь]], они должны быть от той же версии [[Каллисто]].
* [[LOAD"]] — Считать из файлов [[Словарь|словарь Форта]] и [[десятичный словарь]], они должны быть от той же версии [[Каллисто]].
* [[SAVE"]] — Сохранить в файлы [[Словарь|словарь Форта]] и [[десятичный словарь]].
* [[SAVE"]] — Сохранить в файлы [[Словарь|словарь Форта]] и [[десятичный словарь]].
* [[THRU]] — [[LOAD|Загрузить]] несколько [[экран]]ов.
* [[WORDS]] — Просмотр полного списка слов, хранящихся в данный момент в [[Словарь|словаре]]
* [[WORDS]] — Просмотр полного списка слов, хранящихся в данный момент в [[CONTEXT|контекстном наборе слов]]
* [[BYE]] — Выход из [[Каллисто]] в [[Режим автоматической работы|режим автоматической работы]] калькулятора ЭКВМ.
* [[BYE]] — Выход из [[Каллисто]] в [[Режим автоматической работы|режим автоматической работы]] калькулятора ЭКВМ.
* [[UNUSED]] — Оценить количество свободных байт памяти.
* [[DUMP]] — Отображает u байт памяти начиная с адреса a
* [[DUMP]] — Отображает u байт памяти начиная с адреса a
* [[.S]] — Распечатка всего содержимого [[Стек данных|стека]], оставляющая [[Стек данных|стек]] без изменений.
* [[.S]] — Распечатка всего содержимого [[Стек данных|стека]], оставляющая [[Стек данных|стек]] без изменений.
Строка 271: Строка 267:
* [[COPY]] — Копирует [[экран]] n на [[экран]] m
* [[COPY]] — Копирует [[экран]] n на [[экран]] m
* [[Слово \|\]] — Закончить интерпретацию строки.
* [[Слово \|\]] — Закончить интерпретацию строки.
* [[(]] — Комментарий пропустить следующий текст до закрывающей круглой скобки.
* [[(]] — Комментарий -- пропустить следующий текст до закрывающей круглой скобки.
* [[.(]] — Напечатать следующие литеры до закрывающей скобки исключительно.
* [[.(]] — Напечатать следующие литеры до закрывающей скобки исключительно.
* [[?BREAK]] — Проверяем клавиатуру на паузу и аварийную остановку.
* [[?BREAK]] — Проверяем клавиатуру на паузу и аварийную остановку.
Строка 277: Строка 273:
* [[COLD]] — Первая словарная статья, «холодная» перезагрузка с урезанием [[Словарь|словаря]] в начальное состояние.
* [[COLD]] — Первая словарная статья, «холодная» перезагрузка с урезанием [[Словарь|словаря]] в начальное состояние.
* [[WARM]] — «Тёплая» перезагрузка, сохраняющая [[словарь]].
* [[WARM]] — «Тёплая» перезагрузка, сохраняющая [[словарь]].
* [[ВЫКЛ]] — Сохранить состояние [[Каллисто]] в энергонезависимую память и подготовить ЭКВМ к выключению.


=== Интерпретатор входного текста (внешний) ===
=== Интерпретатор входного текста (внешний) ===
Строка 283: Строка 278:
* [[TIB]] — Занесение в [[Стек данных|стек]] начального адреса [[Входной буфер терминала|входного буфера терминала (Terminal Input Buffer)]].
* [[TIB]] — Занесение в [[Стек данных|стек]] начального адреса [[Входной буфер терминала|входного буфера терминала (Terminal Input Buffer)]].
* [[⟩IN|>IN]] — Переменная, смещение очередной литеры во [[Входной буфер терминала|входном текстовом буфере]] или [[экран]]е.
* [[⟩IN|>IN]] — Переменная, смещение очередной литеры во [[Входной буфер терминала|входном текстовом буфере]] или [[экран]]е.
* [[ENCLOSE]] — Окружить. Выделить лексему с адреса a1 и ограничительным символом c.
* [[ENCLOSE]]
* [[QUERY]] — Осуществляет ввод строки символов с клавиатуры.
* [[WORD]] — Считывает одно слово из [[Входной буфер терминала|входного]] или [[Буфер|экранного]] буфера и размещает его, начиная с адреса [[HERE]]
* [[WORD]] — Считывает одно слово из [[Входной буфер терминала|входного]] или [[Буфер|экранного]] буфера и размещает его, начиная с адреса [[HERE]]
* [[QUERY]] — Осуществляет ввод строки символов с клавиатуры.
* [[INTERPRET]] — Интерпретирует последовательность слов, пока там что-то есть.
* [[INTERPRET]] — Интерпретирует последовательность слов, пока там что-то есть.
* [[SAVIN]] — Сохраняем [[⟩IN|>IN]] в [[INTERPRET]] для [[NUMBER]]
* [[Пустое слово|\0]] (пустое слово) — закончить интерпретацию.
* [[QUIT]] — Очищает [[Стек возвратов Каллисто|стек возвратов]], устанавливает режим исполнения и возвращает управление терминалу.
* [[QUIT]] — Очищает [[Стек возвратов Каллисто|стек возвратов]], устанавливает режим исполнения и возвращает управление терминалу.
* [[ABORT]] — Прерывает исполнение, делает список слов [[FORTH]] контекстным, исполняет [[QUIT]]
* [[ABORT]] — Прерывает исполнение, делает список слов [[FORTH]] контекстным, исполняет [[QUIT]]
* [[SAVIN]] — Сохраняем литеру в [[INTERPRET]] для [[NUMBER]] и [[BASE]] для [[FL]]
* [[Пустое слово|\0]] (пустое слово) — закончить [[INTERPRET|интерпретацию]].


=== Системные слова «Электроники МК» ===
=== Системные слова «Электроники МК» ===
Строка 296: Строка 291:
* [[Слово ИП|ИП]] — Чтение из [[Регистр памяти данных|регистра ЭКВМ]] с сохранением [[Стек калькулятора|стека ЭКВМ]] в переменных [[Слово RX|RX]] [[Слово RY|RY]] [[Слово RZ|RZ]] [[Слово RT|RT]]
* [[Слово ИП|ИП]] — Чтение из [[Регистр памяти данных|регистра ЭКВМ]] с сохранением [[Стек калькулятора|стека ЭКВМ]] в переменных [[Слово RX|RX]] [[Слово RY|RY]] [[Слово RZ|RZ]] [[Слово RT|RT]]
* [[Слово RX|RX]] [[Слово RY|RY]] [[Слово RZ|RZ]] [[Слово RT|RT]] — Переменные, содержат регистры [[RX]] [[RY]] [[RZ]] [[RT]] ЭКВМ после чтения из регистра словом [[Слово ИП|ИП]].
* [[Слово RX|RX]] [[Слово RY|RY]] [[Слово RZ|RZ]] [[Слово RT|RT]] — Переменные, содержат регистры [[RX]] [[RY]] [[RZ]] [[RT]] ЭКВМ после чтения из регистра словом [[Слово ИП|ИП]].
* [[ИПРГ]] — считать содержимое шага из памяти программ
* [[Слово ИПРГ|ИПРГ]] — считать содержимое шага из памяти программ
* [[SAVE-TEXT]] — Сохранить область текста в энергонезависимую память.
* [[SAVE-TEXT]] — Сохранить область текста в энергонезависимую память.


=== Списки слов и поиск ===
=== Списки слов и поиск ===
* [[VOC-LINK]] — Переменная связи [[VOCABULARY|наборов слов]].
* [[VOC-LINK]]
* [[CONTEXT]] — Переменная указывает на список [[VOCABULARY]], в котором происходит поиск слов во время интерпретации входного потока.
* [[CONTEXT]] — Переменная указывает на список [[VOCABULARY]], в котором происходит поиск слов во время интерпретации входного потока.
* [[CURRENT]] — Переменная указывает список [[VOCABULARY]], в который вводятся определения новых слов.
* [[CURRENT]] — Переменная указывает список [[VOCABULARY]], в который вводятся определения новых слов.
Строка 306: Строка 301:
* [[FINDN]] — Поиск слова в активных списках слов
* [[FINDN]] — Поиск слова в активных списках слов
* [[VOCABULARY]] — Слово-описатель, которое создаёт новый список слов.
* [[VOCABULARY]] — Слово-описатель, которое создаёт новый список слов.
* [[Слово '|']] — Дать [[CFA|токен]] следующего слова.
* [['N]] — Ищет слово с именем XXX (из [[Входной буфер терминала|входного]] или [[Буфер|экранного]] буфера) в [[Словарь|словаре Форта]].
* [['N]] — Ищет слово с именем XXX (из [[Входной буфер терминала|входного]] или [[Буфер|экранного]] буфера) в [[Словарь|словаре Форта]].
* [[FORTH]] — Делает список [[FORTH]] контекстным.
* [[FORTH]] — Делает список [[FORTH]] контекстным.
Строка 314: Строка 308:


=== Работа с полями словарной статьи ===
=== Работа с полями словарной статьи ===
* [[⟩BODY|>BODY]] — [[CFA]] [[PFA]]
* [[⟩BODY|>BODY]] — [[CFA]] ---> [[PFA]]
* [[BODY⟩|BODY>]] — [[PFA]] [[CFA]]
* [[BODY⟩|BODY>]] — [[PFA]] ---> [[CFA]]
* [[N⟩LINK|N>LINK]] — [[NFA]] [[LFA]]
* [[N⟩LINK|N>LINK]] — [[NFA]] ---> [[LFA]]
* [[NAME⟩|NAME>]] — [[NFA]] [[CFA]]
* [[NAME⟩|NAME>]] — [[NFA]] ---> [[CFA]]
* [[N⟩BODY|N>BODY]] — [[NFA]] [[PFA]]
* [[N⟩BODY|N>BODY]] — [[NFA]] ---> [[PFA]]
* [[EXECUTE]] — Исполняет слово, [[CFA|токен (CFA)]] которого хранится в [[Стек данных|стеке]].
* [[EXECUTE]] — Исполняет слово, [[CFA|токен (CFA)]] которого хранится в [[Стек данных|стеке]].
* [[ID.]] — Печатает имя слова, записанное в соответствии с требованиями [[Словарь|словаря Форта]]
* [[ID.]] — Печатает имя слова, записанное в соответствии с требованиями [[Словарь|словаря Форта]]
Строка 324: Строка 318:


=== Диагностика и обработка ошибок ===
=== Диагностика и обработка ошибок ===
* [[Слово ERROR|ERROR]] — Вывести сообщение об ошибке c и уйти в QUIT если ERB=0.
* [[ERROR (Каллисто)|ERROR]] — Диагностика ошибок Форт ИТЭФ
* [[?ERROR]] — Сгенерировать ошибку номер c, если флаг ф истинен (ф<>0).
* [[?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]] при ошибке [[Слово ERROR|ERROR]]
* [[ERB]] — Флаг блокировки выхода в [[QUIT]] при ошибке [[ERROR (Каллисто)|ERROR]]


== Ссылки ==
== Ссылки ==
* См. [[Список встроенных слов Каллисто]]
* См. [[Список стандартных слов Каллисто]]
* [http://the-hacker.ru/2017/Callisto-1.zip Каллисто Классик 1.0], последняя актуальная версия [[Каллисто]] и [http://the-hacker.ru/Callisto.html её исходный текст]
* [http://the-hacker.ru/2016/Callisto-0.8b.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: Строка 338:
* [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:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

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

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

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