Текущая версия |
Ваш текст |
Строка 1: |
Строка 1: |
| '''H''' (указатель словаря, читается «эйч») — фортовская переменная [[Каллисто]]. | | '''H''' (указатель словаря, читается «эйч») — стандартная переменная [[Каллисто]]. |
| H ( −− a ) Переменная, адрес вершины словаря.
| | |
| Переменная '''H''' указывает на первую свободную ячейку словаря, '''H''' [[Слово @|@]] = [[HERE]].
| | H указывает на первую свободную ячейку словаря, H [[Слово @|@]] = [[HERE]]. |
|
| |
|
| == Ввод слова H == | | == Ввод слова H == |
| В [[Режим ЛАТ|режиме ЛАТ]] нажмите [[Клавиша ПП|чёрную клавишу {{Чёрная клавиша|ПП}}]] | | В [[Режим ЛАТ|режиме ЛАТ]] нажмите [[Клавиша ПП|чёрную клавишу {{Чёрная клавиша|ПП}}]] |
|
| |
|
| == Заметки ==
| | == DP в fig-FORTH Release 1 glossary, май 1979 (англ.) == |
| Переменная '''H''' отсутствует в стандартах Форта, поэтому её использование ухудшает переносимость приложения.
| |
| | |
| В большинстве случаев можно обойтись без неё. Для получения адреса вершины стека есть стандартное слово [[HERE]], а изменить это значение позволяет стандартное слово [[ALLOT]].
| |
| | |
| == История ==
| |
| '''H''' это первая буква слова [[HERE]]
| |
| | |
| Т.к. переменная '''H''' в стандартах Форта отсутствует, в некоторых системах Форта она и называется по другому: DP CP
| |
| | |
| === 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>
| | Переменная H отсутствует в стандартах Форта, поэтому её использование ухудшает переносимость программы. В большинстве случаев достаточно использовать более распространённые слова [[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>
| | H это сокращение от [[HERE]] |
| 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
| |
|
| |
|
| Вот её определение:
| | Т.к. переменная H в стандартах Форта отсутствует, в некоторых системах Форта она и называется по другому: DP CP |
| <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]] | | [[Категория:Стандартные переменные Каллисто]] |
| [[Категория:Встроенные переменные Каллисто]]
| |
| [[Категория:Работа со словарём Каллисто]] | | [[Категория:Работа со словарём Каллисто]] |
| [[Категория:Фортовские слова]] | | [[Категория:Слова Каллисто без стековых диаграмм]] |