(FIND): различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Строка 15: Строка 15:


== Реализация ==
== Реализация ==
Слово (FIND) в ФОРТ-ЕС было [[примитив]]ом и устроено сложнее, чем в [[Каллисто]] и fig-Форте. Вот его определение:
Слово (FIND) в ФОРТ-ЕС было [[примитив]]ом и устроено сложнее, чем в [[Каллисто]] и fig-Форте. Вот его описание и определение:
<PRE>
<PRE>
   (FIND)    * -1,AN,,,A1,T->CFA,C,TF/FF                  ИСКАТЬ СЛОВО T  34
   (FIND)    * -1,AN,,,A1,T->CFA,C,TF/FF                  ИСКАТЬ СЛОВО T  34

Версия от 18:20, 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-Форте. Вот его описание и определение:

  (FIND)    * -1,AN,,,A1,T->CFA,C,TF/FF                   ИСКАТЬ СЛОВО T  34
                                   В СПИСКАХ A1,,,AN ПРИ УСПЕХЕ ДАТЬ CFA
                                ЕГО СТАТЬИ И C - БАЙТ ДЛИНЫ С ПРИЗНАКАМИ

                     Экран номер 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


  У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.


  Это заготовка статьи. Вы можете помочь проекту, дополнив её.