Список встроенных слов Каллисто

Материал из ПМК вики
Версия от 01:35, 9 ноября 2017; AtH (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

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

  1. COLD — Первая словарная статья, «холодная» перезагрузка с урезанием словаря в начальное состояние.
  2. WARM — «Тёплая» перезагрузка.
  3. UNUSED — Оценить количество свободных байт памяти.
  4. BYE — Выход из Каллисто в режим автоматической работы калькулятора ЭКВМ.
  5. VERSION — Кладёт на стек номер версии Каллисто.
  6. CLD — Очистить RD в энергонезависимой памяти.
  7. EXECUTE — Исполняет слово, CFA которого хранится в стеке.
  8. НОП — Нет операции. Действие, присваиваемое по умолчанию словам, созданным DEFER.
  9. ?BREAK — Проверяем клавиатуру на паузу и аварийную остановку.
  10. (LITERAL) — Код периода выполнения для литерала.
  11. TYPE — Выводит на индикатор u символов, начиная с адреса a.
  12. TYPE1 — Вывести строку из памяти данных, заменяя управляющие коды и строго в одну строчку, до конца индикатора.
  13. ?BRANCH — Условный переход в шитом коде.
  14. BRANCH — Безусловный переход в шитом коде.
  15. (FIND) — Поиск слова по имени. При успехе дать NFA его статьи и байт длины с флагами.
  16. DIGIT — Цифра. Преобразовать литеру в число.
  17. П — Запись в регистр ЭКВМ Rn при стеке ЭКВМ, заполненном на основе стека данных.
  18. ИП — Чтение из регистра ЭКВМ Rn с сохранением стека ЭКВМ в переменных RX RY RZ RT
  19. (ИП) — Чтение из регистра, номер которого «зашит» в шитом коде.
  20. ИПРГ — Чтение шага из памяти программ.
  21. 0= — Проверка на равенство нулю.
  22. 0> — Проверка на положительность.
  23. 0< — Проверка на отрицательность.
  24. = — Проверка на равенство.
  25. < — Меньше. f равно −1 если и только если x1 меньше, чем x2.
  26. > — Больше. f равно −1 если и только если x1 больше, чем x2.
  27. ENCLOSE — Окружить. Выделить лексему с адреса a1 и ограничительным символом c.
  28. EMI — Вывод нескольких символов на индикатор.
  29. EMIT — Отображает на индикаторе символ, код которого находится в стеке.
  30. C. — Выводит символ как в дампе, управляющие символы заменяются на "."
  31. — Вывести на терминал возврат каретки и перевод строки.
  32. BELL — звонок терминала.
  33. BEEP — издать звук заданной частоты и длительности.
  34. (PLAY) — Сыграть мелодию.
  35. LIGHT — Установить вывод на индикатор светлым по тёмному.
  36. DARK — Установить вывод на индикатор тёмным по светлому.
  37. DOT! — Отображение точки на индикаторе
  38. BAR — Рисует прямые линии, X и Y - координаты конца линии
  39. +BOX — Нарисовать на индикаторе прямоугольник шириной u1 вышиной u2.
  40. +FRAME — Нарисовать на индикаторе рамку шириной u1 вышиной u2.
  41. ГРФ — Вывод графической информации.
  42. — Очищаем индикатор, оба курсора в левый верхний угол
  43. AT — Позиционирование курсора: COL ROW AT
  44. FONT! — Установить шрифт для терминала Каллисто.
  45. DISKOFF — Запрет дисковых операций.
  46. KEY — Ожидает ввод символа с клавиатуры, при вводе посылает его код в стек.
  47. EKEY — Ожидает нажатие клавиши на клавиатуре, после нажатия посылает её код в стек.
  48. INKEY — Посылает в стек код нажатой клавиши или −1, если нет нажатой клавиши.
  49. ACCEPT — Ввести строку литер с алфавитно-цифровой клавиатуры Каллисто.
  50. 1+ — Прибавление 1.
  51. 2+ — Прибавление 2.
  52. >BODY — К телу. Преобразовать адрес поля кода в адрес поля параметров.
  53. 1− — Вычитание 1.
  54. — Умножение на 2 (двоичный сдвиг влево).
  55. 2/ — Целочисленное деление на 2 (двоичный сдвиг вправо).
  56. 2− — Вычитание 2.
  57. + — Сложение.
  58. — Вычитание b из a.
  59. × — Умножение.
  60. ÷ — Деление с десятичной плавающей запятой.
  61. / — Целочисленное деление a на b, помещение частного в стек.
  62. MOD — Получение остатка от деления a на b.
  63. /MOD — Деление с остатком a на b.
  64. ×/ — Операция масштабирования -- умножение n1 на n2 с последующим делением на n3.
  65. ×/MOD — Остаток и частное от деления произведения n1×n2 на n3.
  66. /−/ — Смена знака числа в стеке.
  67. >< — Поменять местами байты в переданном через стек двухбайтном значении.
  68. S>D — Преобразовывает 32−битное число n в пару 16−битных чисел u2 u1.
  69. |X| — Получение абсолютного значения.
  70. AND — 32-битное побитовое логическое умножение (И).
  71. OR — 32-битное побитовое логическое сложение (ИЛИ).
  72. XOR — 32-битное побитовое логическое исключающее ИЛИ (XOR).
  73. NOT — 32-битное побитовое логическое отрицание (НЕ).
  74. MIN — Нахождение минимума из двух чисел.
  75. MAX — Нахождение максимума из двух чисел.
  76. 10x — Десятичный антилогарифм.
  77. Ex — Экспонента.
  78. LG — Десятичный логарифм.
  79. LN — Натуральный логарифм.
  80. X2 — Возведение в квадрат.
  81. — Квадратный корень.
  82. 1/X — Обратная величина.
  83. Yx — Степенная функция.
  84. СЧ — Заносит в стек случайное число от 0 до 1.
  85. ЗН — Вычисляет знак числа.
  86. [X] — Целая часть числа.
  87. {X} — Дробная часть числа.
  88. DEGREES — Даёт указание КаллистоЭКВМ) принимать углы в градусах
  89. RADIANS — Даёт указание КаллистоЭКВМ) принимать углы в радианах
  90. ARCSIN — Вычисление арксинуса.
  91. ARCCOS — Вычисление арккосинуса.
  92. ARCTG — Вычисление арктангенса.
  93. SIN — Вычисление синуса.
  94. COS — Вычисление косинуса.
  95. TG — Вычисление тангенса.
  96. SP@ — Записывает в стек адрес вершины стека, до исполнения команды SP@
  97. !SP — Устанавливает указатель стека в исходное состояние из переменной S0.
  98. RP@ — Адрес текущей вершины стека возвратов.
  99. !RP — Присваивает указателю стека возвратов исходное (базовое) значение из переменной R0.
  100. EXIT — Закончить исполнение текущего определения.
  101. LEAVE — Досрочно прерывает цикл FOR .. NEXT (только для области данных)
  102. UNLOOP — Обеспечивает досрочный выход из цикла FORNEXT.
  103. >R — Переносит 16-битное число из стека данных в стек возвратов.
  104. R> — Переносит 16-битное число из стека возвратов в стек данных.
  105. R@ — Копирует верхнее 16-битное число из стека возвратов в стек данных.
  106. I — Копирует верхнее 16-битное число из стека возвратов в стек данных.
  107. J — Помещает в стек данных значение счётчика внешнего цикла FORNEXT.
  108. K — Дать текущее значение счётчика третьего объемлющего цикла FOR.
  109. RDROP — Убирает верхнее 16-битное число со стека возвратов.
  110. PICK — Копирует элемент стека с номером u и записывает его наверх стека.
  111. OVER — Копирует 2-й элемент стека и заносит его наверх.
  112. — Меняет местами два верхних элемента стека.
  113. 2SWAP — Меняет местами верхние две пары чисел в стеке.
  114. — Дублирует верхний элемент стека.
  115. ?DUP — Осуществляет операцию если x≠0
  116. 2DUP — Дублирует верхнюю пару чисел в стеке.
  117. ROT — Переносит 3-й элемент стека наверх.
  118. 2DROP — Удаляет из стека число двойной длины.
  119. DROP — Удаляет верхний элемент стека.
  120. CMOVE — Копирует побайтно область памяти размером u байт начиная с a1 и записывает её начиная с a2.
  121. CMOVE> — Копировать u байтов из a1 в a2, начиная с больших адресов.
  122. FILL — Записывает u байт c в память начиная с адреса a
  123. ERASE — Записывает u нулевых байтов в память начиная с адреса a.
  124. BLANK — Записывает n кодов пробела (32) в память, начиная с адреса a.
  125. HOLD — Вводит в текущую ячейку выходного буфера PAD символ, код которого в стеке
  126. TIB — Занесение в стек начального адреса входного буфера терминала (Terminal Input Buffer).
  127. +! — Добавляет к содержимому ячейки с адресом a число n
  128. ++! — Косвенная запись с прединкрементом.
  129. −−! — Косвенная запись с преддекрементом.
  130. TOGGLE — Изменить байт с адресом a по xor−маске c.
  131. @ — Замещает адрес в стеке его содержимым, двухбайтовая ячейка содержит число со знаком.
  132. U@ — Считываем в стек 2-х байтовое целое без знака.
  133. C@ — Извлекает байт информации из ячейки, адрес которой находится в стеке.
  134. ++@ — Косвенное чтение с прединкрементом.
  135. −−@ — Косвенное чтение с преддекрементом.
  136. ! — Записывает число x в ячейку с адресом a.
  137. 0! — Обнулить ячейку по адресу a.
  138. C! — Записывает байт c по адресу a.
  139. BODY>PFACFA
  140. !CSP — Запомнить адрес вершины стека в CSP.
  141. HERE — Выдаёт адрес первой свободной ячейки в словаре.
  142. ALLOT — Добавляет n байт к полю параметров слова, описанного последним.
  143. ДHERE — Выдаёт адрес первого свободного десятичного регистра в десятичном словаре.
  144. ДALLOT — Резервирует n десятичных регистров в десятичном словаре.
  145. [ — Переключить текстовый интерпретатор в режим исполнения
  146. ] — Переключить текстовый интерпретатор в режим компиляции.
  147. HEX — Устанавливает шестнадцатеричную систему счисления для ввода-вывода.
  148. DECIMAL — Устанавливает десятичную систему счисления для ввода-вывода.
  149. −TRAILING — Отсечь конечные пробелы.
  150. UPPER — Делает все буквы в строке заглавными.
  151. DEFINITIONSКонтекстный список становится текущим, все последующие описания связаны с этим списком.
  152. UPDATE — Устанавливает в буфере флаг "спасения".
  153. BUF# — Переменная, номер загруженного блока.
  154. : — Начать определение слова через двоеточие.
  155. ; — Закончить определение через двоеточие.
  156. CONSTANT — Определить следующее слово как константу со значением W.
  157. VARIABLE — Определить следующее слово как переменную с начальным значением нуль.
  158. FVARIABLE — Определить следующее слово, как десятичную переменную с начальным значением нуль.
  159. VALUE — Определить следующее слово как десятичную переменную типа VALUE.
  160. DEFER — Определение переменной действия.
  161. DOES> — Начало «исполнения» в определяющем слове.
  162. F#S — Преобразовывает число с плавающей запятой в строку символов.
  163. FALSE — Значение «ложь» (константа нуль).
  164. 1 — Константа один.
  165. 2 — Константа два.
  166. TRUE — Значение «истина» (константа -1).
  167. $\pi$ — Число пи.
  168. BL — Константа, код пробела (32).
  169. C/L — Количество символов в одной строке экрана Каллисто (64).
  170. B/BUF — Константа, число байт в блочном буфере.
  171. RT — Переменная, содержит RT ЭКВМ после чтения из регистра словом ИП
  172. RZ — Переменная, содержит RZ ЭКВМ после чтения из регистра словом ИП
  173. RY — Переменная, содержит RY ЭКВМ после чтения из регистра словом ИП
  174. RX — Переменная, содержит RX ЭКВМ после чтения из регистра словом ИП
  175. ATR! — Установить атрибуты вывода.
  176. S0 — Переменная, содержит адрес дна стека данных.
  177. R0 — Переменная, адрес дна стека возвратов.
  178. ДH — Указатель десятичного словаря.
  179. H — Указатель словаря.
  180. VOC-LINK — Переменная связи наборов слов.
  181. APP — Слово, токен которого хранится в переменной APP, будет выполнено после загрузки сохранения по LOAD"
  182. KBDFLG — Состояние алфавитно-цифровой клавиатуры.
  183. _FONT — Адрес структуры терминала из 5 байт, описывающей активный шрифт.
  184. BLK — Переменная, номер входного блока-экрана.
  185. >IN — Переменная, смещение очередной литеры во входном текстовом буфере или экране.
  186. SCR — Служит для хранения текущего значения номера редактируемого экрана.
  187. CONTEXT — Переменная указывает на набор слов, в котором происходит поиск слов во время интерпретации входного потока.
  188. CURRENT — Переменная указывает набор слов, в который вводятся определения новых слов.
  189. STATE — Переменная с состоянием текстового интерпретатора: «Истина» — компиляция.
  190. BASE — Переменная, текущее основание системы счисления при вводе-выводе чисел.
  191. DPL — Переменная, позиция последней запятой в последнем введённом числе от конца.
  192. CSP — Переменная для контрольного хранения значения указателя стека.
  193. R# — Позиция курсора при редактировании экрана.
  194. HLD — Переменная — позиция последней литеры, перенесённой в буфер PAD по HOLD.
  195. EE — Значение порядка вводимого числа
  196. ERB — Флаг блокировки выхода в QUIT при ошибке ERROR
  197. SAVIN — Сохраняем литеру в INTERPRET для NUMBER и BASE для FL
  198. , — Компилирует число n в первую свободную ячейку словаря.
  199. C, — Компилирует байт c в очередной свободный байт словаря.
  200. Д, — Компилирует число x в первую свободную ячейку десятичного словаря.
  201. LAST — Дать NFA последней созданной статьи.
  202. SPACE — Вывод одного пробела.
  203. N>LINKNFALFA
  204. NAME>NFACFA
  205. N>BODYNFAPFA
  206. ?ERROR — Сгенерировать ошибку номер c, если флаг ф истинен (ф<>0).
  207. ?COMP — проверить, что текущий режим — компиляция.
  208. ?EXEC — Проверка состояния исполнения.
  209. ?PAIRS — Проверка парности.
  210. ?CSP — Выдать ошибку "сбился указатель стека" если он не равен значению в CSP
  211. ?LOADING — Проверка режима экрана.
  212. COMPILE — Компиляция 16-битного слова, следующего за оператором.
  213. SMUDGE — Изменить флаг "SMUDGE" в последней созданной статье.
  214. <BUILDS — Начало определяющей части порождающего слова.
  215. COUNT — Дать адрес первой литеры и число литер N строки со счётчиком T.
  216. (.") — Слово, компилируемое ."
  217. ." — При исполнении напечатать на терминале следующие литеры до кавычки исключительно.
  218. .( — Напечатать следующие литеры до закрывающей скобки исключительно.
  219. QUERY — Осуществляет ввод строки символов с клавиатуры.
  220. \0 — (Пустое слово) - закончить интерпретацию.
  221. PAD — Выдаёт адрес буфера для промежуточного хранения последовательностей символов
  222. WORD — Считывает одно слово из входного или экранного буфера и размещает его, начиная с адреса HERE
  223. UCONVERT — Преобразовать последовательность цифр в целое, с учётом BASE.
  224. FINDN — Поиск слова в активных списках слов
  225. NUMBER — Преобразует в число последовательность символов, начиная с a+1 с учётом BASE,
  226. FL — Преобразовать возвращённое NUMBER целое в десятичное число.
  227. ERROR — Вывести сообщение об ошибке c и уйти в QUIT если ERB=0.
  228. ID. — Печатает имя слова, записанное в соответствии с требованиями словаря Форта
  229. CREATE — Формирует слово с именем XXX (заголовок и CFA), оставляя его поле параметров пустым.
  230. [COMPILE] — Скомпилировать следующее слово, независимо от его признака IMMEDIATE.
  231. TO — Запись в переменную типа VALUE.
  232. LITERAL — Целочисленный литерал.
  233. FLITERAL — Десятичный литерал.
  234. ?STACK — Выдать ошибку «Исчерпание стека», если он менее, чем пуст и «Исчерпание памяти» при зазоре, меньшем 5(?) элементов.
  235. INTERPRET — Интерпретирует последовательность слов, пока там что-то есть.
  236. IMMEDIATE — Преобразует слово, за описанием которого следует, в оператор, исполняемый при компиляции.
  237. VOCABULARY — Порождающее слово, которое создаёт новый набор слов.
  238. ( — Комментарий -- пропустить следующий текст до закрывающей круглой скобки.
  239. QUIT — Очищает стек возвратов, устанавливает режим исполнения и возвращает управление терминалу.
  240. ABORT — Прерывает исполнение, делает список слов FORTH контекстным, исполняет QUIT
  241. EMPTY-BUFFERSБуфер отмечается как пустой, независимо от содержания. Обновлённый блок на диск не записывается.
  242. SAVE-BUFFERS — Если находящийся в буфере экран был изменён, скидывает его на диск.
  243. FLUSH — Если экран изменён, скидывает его на диск и выкидывает его из памяти.
  244. BUFFER — Резервирует блок в памяти и приписывает ему номер u (как и BLOCK ), но сам блок с диска не считывается.
  245. BLOCK — Записывает в стек адрес первого байта в буфере с блоком, номер которого u.
  246. (LINE) — Выдаёт адрес a и длину u строки L с экрана S.
  247. MESSAGE — Сохранить >IN в R# и вывести сообщение номер c.
  248. LOAD — Загружает экран с номером u (компилирует или исполняет)
  249. \ — Закончить интерпретацию строки.
  250. \S — Закончить интерпретацию экрана.
  251. THRUЗагрузить несколько экранов.
  252. 'N — Ищет слово с именем XXX (из входного или экранного буфера) в словаре Форта.
  253. ' — Дать токен следующего слова.
  254. ['] — Скомпилировать CFA следующего слова как числовой литерал.
  255. >MARK — Отметить текущий адрес для ссылки вперёд.
  256. >RESOLVE — Разрешить ссылку вперёд в адресе a.
  257. <MARK — Отметить текущий адрес для ссылки назад.
  258. <RESOLVE — Разрешить ссылку назад в адрес a.
  259. UNTIL — Конец цикла "BEGIN UNTIL".
  260. AGAIN — Конец бесконечного цикла "BEGIN AGAIN".
  261. BEGIN — Начало циклов "BEGIN".
  262. THEN — Конец ветвления "IF".
  263. ELSE — Начало 2-ой ветви ветвления "IF".
  264. IF — Начало ветвления "IF".
  265. WHILE — Ветвление "WHILE" в цикле "BEGIN WHILE REPEAT".
  266. REPEAT — Конец цикла "BEGIN WHILE REPEAT".
  267. FOR — Начало цикла со счётчиком. Цикл исполнится ровно n раз.
  268. NEXT — Конец цикла со счётчиком.
  269. SPACES — Вывод заданного числа "цифровых" (шириной в цифру) пробелов на индикатор.
  270. U#> — Завершает преобразование целого числа
  271. F#> — Размещает преобразованную строку сразу после словаря, возвращает адрес и число символов.
  272. SIGN — Вводит знак "минус" в выходной буфер PAD, если n<0
  273. U# — Преобразует одну цифру целого числа и записывает её в выходной буфер PAD
  274. U#S — Преобразует целое число до тех пор, пока не будет получен 0
  275. <# — Начинает процесс преобразования целого числа в последовательность кодов символов.
  276. <F# — Начинает преобразования чисел с плавающей запятой.
  277. (.) — Как I. -- только не выводит число на индикатор, а возвращает адрес и длину строки.
  278. I. — Вывод целого числа, за которым следует один пробел.
  279. . — Вывод числа, за которым следует один пробел.
  280. I.R — Напечатать n на терминале в поле длиной p справа.
  281. ? — Заглянуть в ячейку, адрес которой на стеке.
  282. LIST — Распечатывает экран с номером u и записывает его номер в переменную SCR
  283. INDEX — Выводит на индикатор верхние строчки экранов, номера блоков которых входят в диапазон от нач до кон.
  284. WORDS — Просмотр полного списка слов, хранящихся в данный момент в словаре
  285. COPY — Копирует экран n на экран m
  286. DEPTH — Выдаёт в стек полное количество чисел, хранившихся в стеке до исполнения этой команды.
  287. DUMP — Отображает u байт памяти начиная с адреса a
  288. .S — Распечатка всего содержимого стека, оставляющая стек без изменений.
  289. КАТ — Поиск на электронном диске каталога Форта и переход в него. Если каталога нет, он создаётся.
  290. SAVE-TEXT — Сохранить область текста в энергонезависимую память.
  291. ВЫКЛ — Сохранить состояние Каллисто в энергонезависимую память и подготовить ЭКВМ к выключению.
  292. RGRW — Чтение/запись файла регистров (словаря) в загруженном каталоге.
  293. LORW — Чтение/запись блока из файла в загруженном каталоге.
  294. _RW — Низкоуровневый ввод/вывод блока.
  295. SAVE" — Сохранить в файлы словарь Форта и десятичный словарь.
  296. LOAD" — Считать из файлов словарь Форта и десятичный словарь, они должны быть от той же версии Каллисто.
  297. FORTH — Делает набор слов FORTH контекстным.
  298. TASK — Последнее стандартное слово в словаре.

Следующие 4 слова присутствуют в Каллисто, но не предназначены для использования в приложениях и в целях экономии памяти лишены заголовков:

  1. (FOR) — Начало цикла со счётчиком в шитом коде.
  2. (NEXT) — Конец цикла со счётчиком в шитом коде.
  3. USER — Определяет поведение переменной типа USER
  4. (;CODE) — Записать в поле кода последней статьи следующий адрес и закончить определение.


Ссылки[править]