(FIND): различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) Нет описания правки |
AtH (обсуждение | вклад) Нет описания правки |
||
Строка 13: | Строка 13: | ||
length byte of name field and boolean true for a good match. If no | length byte of name field and boolean true for a good match. If no | ||
match is found, only a boolean false is left. | match is found, only a boolean false is left. | ||
== Реализация == | |||
Слово (FIND) в ФОРТ-ЕС было [[примитив]]ом и устроено сложнее, чем в [[Каллисто]] и fig-Форте. Вот его определение: | |||
<PRE> | |||
Экран номер 34 | |||
( 31.03.86 (FIND/ ) | |||
CODE (FIND) ( -1,AN,..,,A1,Т->СFA,С,TF/FF ) RW2 POP, RW2 RMASK NR, | |||
RW2 RFORTH AR, ( ОБРАЗЕЦ) 0 0 SR, | |||
0 0 (, 0 RW2 IC, 0 LENG1MSK N, ( ДЛИНА) 1 1 SR, 1 0 BCTR, | |||
BEGIN, RW1 PULL, ( ВХОД В ОЧЕРЕДНОЙ СПИСОК СЛОВ) 2 =F В, | |||
BEGIN, RW1 RFORTH AR, 14 0 (, 0 RW1 IC, 14 LEHGMASK N, | |||
14 0 CR, ?E IF, 14 4 =F EX, 3 =F BE, THEN, | |||
14 LENG1MSK N, RW1 2 (, 14 RW1 LH, | |||
2 =H RW1 RMASK NR, ?Z UNTIL, | |||
RSTACK RTWO AR, 1 FIRST CH, ?E UNTIL, PUTRW1 B, | |||
BEGIN, RSTACK RTWO AR, 3 =H 1 FIRST CH, ?E UNTIL, | |||
0 0 (, 0 RW1 IC, RW1 RFORTH SR, RW1 4 (, 14 RW1 LA, | |||
RW1 PUT, 0 PUSH, RW1 1 LR, PUSHRW1 B, | |||
4 =H 1 (, 1 RW1 ), 1 (, RW2 CLC, END-CODE | |||
</PRE> | |||
Версия от 01:42, 26 марта 2016
(FIND) — стандартное слово Каллисто.
Искать слово a1 в списке a2. При успехе дать NFA его статьи и c - байт длины с флагами.
Ввод слова (FIND)
В режиме NUM последовательно нажмите клавиши ШГ→ Р-ГРД-Г П 7 4 K P ШГ←
(FIND) в fig-FORTH Release 1 glossary, май 1979 (англ.)
(FIND) addr1 addr2 --- pfa b tf (ok) addr1 addr2 .--- ff (bad) Searches the dictionary starting at the name field address addr2, matching to the text at addr1. Returns parameter field address, length byte of name field and boolean true for a good match. If no match is found, only a boolean false is left.
Реализация
Слово (FIND) в ФОРТ-ЕС было примитивом и устроено сложнее, чем в Каллисто и fig-Форте. Вот его определение:
Экран номер 34 ( 31.03.86 (FIND/ ) CODE (FIND) ( -1,AN,..,,A1,Т->СFA,С,TF/FF ) RW2 POP, RW2 RMASK NR, RW2 RFORTH AR, ( ОБРАЗЕЦ) 0 0 SR, 0 0 (, 0 RW2 IC, 0 LENG1MSK N, ( ДЛИНА) 1 1 SR, 1 0 BCTR, BEGIN, RW1 PULL, ( ВХОД В ОЧЕРЕДНОЙ СПИСОК СЛОВ) 2 =F В, BEGIN, RW1 RFORTH AR, 14 0 (, 0 RW1 IC, 14 LEHGMASK N, 14 0 CR, ?E IF, 14 4 =F EX, 3 =F BE, THEN, 14 LENG1MSK N, RW1 2 (, 14 RW1 LH, 2 =H RW1 RMASK NR, ?Z UNTIL, RSTACK RTWO AR, 1 FIRST CH, ?E UNTIL, PUTRW1 B, BEGIN, RSTACK RTWO AR, 3 =H 1 FIRST CH, ?E UNTIL, 0 0 (, 0 RW1 IC, RW1 RFORTH SR, RW1 4 (, 14 RW1 LA, RW1 PUT, 0 PUSH, RW1 1 LR, PUSHRW1 B, 4 =H 1 (, 1 RW1 ), 1 (, RW2 CLC, END-CODE
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |