Текущая версия |
Ваш текст |
Строка 1: |
Строка 1: |
| '''H''' (указатель словаря, читается «эйч») — фортовская переменная [[Каллисто]]. | | '''DP''' (указатель словаря, читается «ди-пи») — стандартная переменная [[Каллисто]]. |
| H ( −− a ) Переменная, адрес вершины словаря.
| |
| Переменная '''H''' указывает на первую свободную ячейку словаря, '''H''' [[Слово @|@]] = [[HERE]].
| |
|
| |
|
| == Ввод слова H == | | DP указывает на первую свободную ячейку словаря, DP @ = [[HERE]]. |
| В [[Режим ЛАТ|режиме ЛАТ]] нажмите [[Клавиша ПП|чёрную клавишу {{Чёрная клавиша|ПП}}]]
| |
|
| |
|
| == Заметки == | | == Ввод слова DP == |
| Переменная '''H''' отсутствует в стандартах Форта, поэтому её использование ухудшает переносимость приложения.
| | В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите две клавиши [[Клавиша K|{{Синяя клавиша|K}}]] [[Клавиша 6|{{Серая клавиша|6}}]] |
| | |
| В большинстве случаев можно обойтись без неё. Для получения адреса вершины стека есть стандартное слово [[HERE]], а изменить это значение позволяет стандартное слово [[ALLOT]]. | |
| | |
| == История ==
| |
| '''H''' это первая буква слова [[HERE]]
| |
|
| |
|
| Т.к. переменная '''H''' в стандартах Форта отсутствует, в некоторых системах Форта она и называется по другому: DP CP
| | == DP в fig-FORTH Release 1 glossary, май 1979 (англ.) == |
| | |
| === DP в fig-FORTH Release 1 glossary, май 1979 (англ.) ===
| |
| DP ---- addr U,L | | DP ---- addr U,L |
| A user variable, the dictionary pointer, which contains the address | | A user variable, the dictionary pointer, which contains the address |
Строка 22: |
Строка 12: |
| by HERE and altered by ALLOT. | | by HERE and altered by ALLOT. |
|
| |
|
| == Реализация == | | == Заметки == |
| <pre>
| | Переменная DP отсутствует в стандартах Форта, поэтому её использование ухудшает переносимость программы. В большинстве случаев достаточно использовать более распространённые слова [[HERE]] и [[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
| |
| </pre>
| |
|
| |
|
| === Реализация в SP-Forth 4.20 === | | == История == |
| <pre>
| | DP это сокращение от английского ''Dictionary Pointer'' (указатель словаря). |
| 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
| |
|
| |
|
| Вот её определение:
| | В некоторых системах Форта DP называется по другому: CP H |
| <PRE>
| |
| HEAD 202Q,'D',320Q,DP,$USE ; DP
| |
| DW 22Q
| |
| ...
| |
| XDP DW 16000 DUP(0) ; DICTIONARY
| |
| </PRE>
| |
|
| |
|
| == Ссылки == | | == Ссылки == |
| * {{Исходник|H|H}}
| | * См. слова [[HERE]] и [[ALLOT]] |
| * См. слова [[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] ''(англ.)''
| |
|
| |
|
|
| |
|
Строка 79: |
Строка 27: |
| {{заготовка}} | | {{заготовка}} |
| [[Категория:Слова Каллисто]] | | [[Категория:Слова Каллисто]] |
| [[Категория:Переменные USER]] | | [[Категория:Стандартные переменные Каллисто]] |
| [[Категория:Встроенные переменные Каллисто]]
| |
| [[Категория:Работа со словарём Каллисто]] | | [[Категория:Работа со словарём Каллисто]] |
| [[Категория:Фортовские слова]] | | [[Категория:Слова Каллисто без стековых диаграмм]] |