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

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

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

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


== Ввод слова 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
         of the next free memory above the dictionary. The value may be read
         of the next free memory above the dictionary. The value may be read
         by HERE and altered by ALLOT.
         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] ''(англ.)''




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

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

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