Слово H

Материал из ПМК вики
(перенаправлено с «Cлово H»)
Перейти к навигации Перейти к поиску

H (указатель словаря, читается «эйч») — фортовская переменная Каллисто.

H              ( −− a )                             Переменная, адрес вершины словаря.

Переменная H указывает на первую свободную ячейку словаря, H @ = HERE.

Ввод слова H[править]

В режиме ЛАТ нажмите чёрную клавишу  ПП 

Заметки[править]

Переменная H отсутствует в стандартах Форта, поэтому её использование ухудшает переносимость приложения.

В большинстве случаев можно обойтись без неё. Для получения адреса вершины стека есть стандартное слово HERE, а изменить это значение позволяет стандартное слово ALLOT.

История[править]

H это первая буква слова HERE

Т.к. переменная H в стандартах Форта отсутствует, в некоторых системах Форта она и называется по другому: DP CP

DP в fig-FORTH Release 1 glossary, май 1979 (англ.)[править]

DP            ----  addr                      U,L
       A user variable, the dictionary pointer, which contains the address
       of the next free memory above the dictionary. The value may be read
       by HERE and altered by ALLOT.

Реализация[править]

 145 rrDP            .EQU     1137                   ; 11137  H − Указатель на первую свободную ячейку словаря H @ = HERE
 146 pDP             .EQU      137
 147 rlDP            .EQU     1138
…
2774 ;#H
2775 ; H                ( −− a )                             Переменная, адрес вершины словаря.
2776 LDP:            .DB     1
2777                 .TEXT   "H"
2778                 .DW     LDDP
2779 DP:             .DW     SUSE
2780                 .DB pDP

Реализация в SP-Forth 4.20[править]

  VARIABLE (DP)    \ переменная, содержащая HERE сегмента данных
…
: DP ( -- addr ) \ переменная, содержащая HERE сегмента данных
  IS-TEMP-WL
  IF GET-CURRENT 7 CELLS + ELSE (DP) THEN
;

Советская реализация[править]

В ФОРТ-ЕС вместо переменной H использовался примитив DP!

Вот его описание и определение:

DP!    * A-> УСТАНОВИТЬ ВЕРШИНУ СЛОВАРЯ НА АДРЕС A              10

                     Экран номер 10
( 31.03.86       HERE ALLOT ALIGN ALIGNH DP! )

CODE DP!  ( A->)  RD PULL, RD RMASK NR, POP 8, END-CODE

В FORTH ИТЭФ переменная H называлась DP

Вот её определение:

            HEAD     202Q,'D',320Q,DP,$USE                ; DP
            DW 22Q
            ...
   XDP     DW  16000 DUP(0)           ; DICTIONARY

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


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


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