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

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

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

Текущая версия Ваш текст
Строка 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
H это сокращение от [[HERE]]
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 ===
Т.к. переменная H в стандартах Форта отсутствует, в некоторых системах Форта она и называется по другому: DP CP
<pre>
  VARIABLE (DP)    \ переменная, содержащая HERE сегмента данных
: DP ( -- addr ) \ переменная, содержащая HERE сегмента данных
  IS-TEMP-WL
  IF GET-CURRENT 7 CELLS + ELSE (DP) THEN
;
</pre>


=== Советская реализация ===
== Реализация ==
В ФОРТ-ЕС вместо переменной '''H''' использовался [[примитив]] DP!
В ФОРТ-ЕС был [[примитив]] DP!


Вот его описание и определение:
Вот его описание и определение:
Строка 59: Строка 32:
CODE DP!  ( A->)  RD PULL, RD RMASK NR, POP 8, END-CODE
CODE DP!  ( A->)  RD PULL, RD RMASK NR, POP 8, END-CODE
</PRE>
</PRE>
В FORTH ИТЭФ переменная '''H''' называлась DP
В FORTH ИТЭФ переменная H называлась DP


Вот её определение:
Вот её определение:
Строка 70: Строка 43:


== Ссылки ==
== Ссылки ==
* {{Исходник|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://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] ''(англ.)''
* [http://www.forth.com/starting-forth/sf9/sf9.html Under the Hood] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)''
Строка 80: Строка 52:
[[Категория:Слова Каллисто]]
[[Категория:Слова Каллисто]]
[[Категория:Переменные USER]]
[[Категория:Переменные USER]]
[[Категория:Встроенные переменные Каллисто]]
[[Категория:Стандартные переменные Каллисто]]
[[Категория:Работа со словарём Каллисто]]
[[Категория:Работа со словарём Каллисто]]
[[Категория:Фортовские слова]]
[[Категория:Слова Каллисто без стековых диаграмм]]
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

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

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