Редактирование: Слово H

Перейти к навигации Перейти к поиску
Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы войдёте или создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.

Текущая версия Ваш текст
Строка 1: Строка 1:
'''H''' (указатель словаря, читается «эйч») — фортовская переменная [[Каллисто]].
'''H''' (указатель словаря, читается «эйч») — стандартная переменная [[Каллисто]].
  H              ( −− a )                            Переменная, адрес вершины словаря.
  H              ( −− a )                            Переменная, адрес вершины словаря.
Переменная '''H''' указывает на первую свободную ячейку словаря, '''H''' [[Слово @|@]] = [[HERE]].
'''H''' указывает на первую свободную ячейку словаря, '''H''' [[Слово @|@]] = [[HERE]].


== Ввод слова H ==
== Ввод слова H ==
В [[Режим ЛАТ|режиме ЛАТ]] нажмите [[Клавиша ПП|чёрную клавишу {{Чёрная клавиша|ПП}}]]
В [[Режим ЛАТ|режиме ЛАТ]] нажмите [[Клавиша ПП|чёрную клавишу {{Чёрная клавиша|ПП}}]]
== 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.


== Заметки ==
== Заметки ==
Переменная '''H''' отсутствует в стандартах Форта, поэтому её использование ухудшает переносимость приложения.
Переменная '''H''' отсутствует в стандартах Форта, поэтому её использование ухудшает переносимость программы. В большинстве случаев достаточно использовать более распространённые слова [[HERE]] и [[ALLOT]].
 
В большинстве случаев можно обойтись без неё. Для получения адреса вершины стека есть стандартное слово [[HERE]], а изменить это значение позволяет стандартное слово [[ALLOT]].


== История ==
== История ==
Строка 15: Строка 19:


Т.к. переменная '''H''' в стандартах Форта отсутствует, в некоторых системах Форта она и называется по другому: DP CP
Т.к. переменная '''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.


== Реализация ==
== Реализация ==
<pre>
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
</pre>
=== Реализация в SP-Forth 4.20 ===
<pre>
  VARIABLE (DP)    \ переменная, содержащая HERE сегмента данных
: DP ( -- addr ) \ переменная, содержащая HERE сегмента данных
  IS-TEMP-WL
  IF GET-CURRENT 7 CELLS + ELSE (DP) THEN
;
</pre>
=== Советская реализация ===
В ФОРТ-ЕС вместо переменной '''H''' использовался [[примитив]] DP!
В ФОРТ-ЕС вместо переменной '''H''' использовался [[примитив]] DP!


Строка 80: Строка 53:
[[Категория:Слова Каллисто]]
[[Категория:Слова Каллисто]]
[[Категория:Переменные USER]]
[[Категория:Переменные USER]]
[[Категория:Встроенные переменные Каллисто]]
[[Категория:Стандартные переменные Каллисто]]
[[Категория:Работа со словарём Каллисто]]
[[Категория:Работа со словарём Каллисто]]
[[Категория:Фортовские слова]]
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

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

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