Слово H: различия между версиями
AtH (обсуждение | вклад) Нет описания правки |
AtH (обсуждение | вклад) |
||
(не показаны 43 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
''' | '''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. | |||
== Реализация == | |||
<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! | |||
Вот его описание и определение: | |||
<PRE> | |||
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 | |||
</PRE> | |||
В FORTH ИТЭФ переменная '''H''' называлась DP | |||
Вот её определение: | |||
<PRE> | |||
HEAD 202Q,'D',320Q,DP,$USE ; DP | |||
DW 22Q | |||
... | |||
XDP DW 16000 DUP(0) ; DICTIONARY | |||
</PRE> | |||
== Ссылки == | |||
* {{Исходник|H|H}} | |||
* См. слова [[HERE]] и [[ALLOT]], а также [[ДH]] | |||
* [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH\09.FUNKZIONIROWANIE%20FORT-SISTEMY ФУНКЦИОНИРОВАНИЕ ФОРТ-СИСТЕМЫ] в книге [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH Л.Броуди «Начальный курс программирования на языке Форт»] | |||
* [http://www.forth.com/starting-forth/sf9/sf9.html Under the Hood] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)'' | |||
{{нет иллюстраций}} | {{нет иллюстраций}} | ||
{{заготовка}} | {{заготовка}} | ||
[[Категория:Слова Каллисто]] | [[Категория:Слова Каллисто]] | ||
[[Категория: | [[Категория:Переменные USER]] | ||
[[Категория:Встроенные переменные Каллисто]] | |||
[[Категория:Работа со словарём Каллисто]] | |||
[[Категория:Фортовские слова]] |
Текущая версия от 09:32, 19 февраля 2019
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
Ссылки[править]
- Исходный текст слова H в Каллисто Классик 1.0
- См. слова HERE и ALLOT, а также ДH
- ФУНКЦИОНИРОВАНИЕ ФОРТ-СИСТЕМЫ в книге Л.Броуди «Начальный курс программирования на языке Форт»
- Under the Hood в книге Leo Brodie Starting Forth (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |