Текущая версия |
Ваш текст |
Строка 1: |
Строка 1: |
| '''C,''' (байт компилировать, читается «си-запятая») — стандартное слово [[Каллисто]]. | | '''C,''' — стандартное слово [[Каллисто]]. |
| C, ( b −− ) Скомпилировать b в первый свободный байт словаря.
| |
| Компилирует байт b в [[HERE|очередной свободный байт]] [[Словарь|словаря]].
| |
|
| |
|
| == Ввод слова C, ==
| | Компилирует байт c в очередной свободный байт [[Словарь|словаря]]. |
| В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите три клавиши [[Клавиша С/П|{{Чёрная клавиша|С/П}}]] [[Клавиша P|{{Синяя клавиша|P}}]] [[Клавиша ,|{{Серая клавиша|1=<span style="position:relative;bottom:3px"> , </span>}}]]
| |
|
| |
|
| Эти нажатия оставляют клавиатуру в [[Режим NUM|режиме NUM]].
| |
|
| |
|
| == C, в стандарте ANS Forth == | | == C, в стандарте ANS Forth == |
| <PRE>
| |
| 6.1.0860 C, "c-comma" CORE | | 6.1.0860 C, "c-comma" CORE |
| ( char -- ) | | ( char -- ) |
Строка 20: |
Строка 15: |
|
| |
|
| См.: 3.3.3 Область данных, 3.3.3.1 Выравнивание адреса. | | См.: 3.3.3 Область данных, 3.3.3.1 Выравнивание адреса. |
| </PRE>
| |
|
| |
|
| == История ==
| | |
| === C, в предыдущем стандарте Forth-83 (англ.) ===
| | == C, в предыдущем стандарте Forth-83 (англ.) == |
| C, 16b -- 83 "c-comma" | | C, 16b -- 83 "c-comma" |
| ALLOT one byte then store the least-significant 8 bits of | | ALLOT one byte then store the least-significant 8 bits of |
| 16b at HERE 1- . | | 16b at HERE 1- . |
|
| |
|
| === C, в стандарте Forth-79 (англ.) ===
| |
| C, n -- "c-comma"
| |
| Store the low-order 8 bits of n at the next byte in the
| |
| dictionary, advancing the dictionary pointer.
| |
|
| |
| === C, в fig-FORTH Release 1 glossary, май 1979 (англ.) ===
| |
| C, b ---
| |
| Store 8 bits of b into the next available dictionary byte, advancing
| |
| the dictionary pointer. This is only available on byte addressing
| |
| computers, and should be used with caution on byte addressing mini-
| |
| computers.
| |
|
| |
| == Реализация ==
| |
| <pre>
| |
| 2946 ;#CComma
| |
| 2947 ; C, ( b −− ) Скомпилировать b в первый свободный байт словаря.
| |
| 2948 LCCOM: .DB 2
| |
| 2949 .TEXT "C," ; ( c −− )
| |
| 2950 .DW LCOMMA
| |
| 2951 CCOM: .DW CALL, HERE,CSTOR, ONE,ALLOT, EXIT ; Скомпилировать байт c в очередной свободный байт словаря.
| |
| </pre>
| |
| Реализация из SP-Forth 4.20:
| |
| <pre>
| |
| : C, ( char -- ) \ 94
| |
| \ Зарезервировать место для символа в области данных и поместить туда char.
| |
| DP @ 1 CHARS ALLOT C!
| |
| ;
| |
| </pre>
| |
|
| |
| === Советская реализация ===
| |
| Описание и определение слова C, в ядре ФОРТ-ЕС:
| |
| <PRE>
| |
| C, + С-> СКОМПИЛИРОВАТЬ БАЙТ С НА ВЕРШИНУ СЛОВАРЯ 11
| |
|
| |
| Экран номер 11
| |
| ( 31.03.86 ! 0! @ С! С@ , С, EXECUTE )
| |
|
| |
| : C, ( C-> ) HERE 1 ALLOT C! ;
| |
| </PRE>
| |
| Определение слова C, в FORTH ИТЭФ:
| |
| <PRE>
| |
| HEAD 202Q,'C',254Q,CCOM,$COL ; C,
| |
| DW HERE,CSTOR,ONE,ALLOT,SEMI
| |
| </PRE>
| |
|
| |
| === colorForth (cf2019.nasm 2019 Sep 14) ===
| |
| <PRE>
| |
| dcomma: ; c, performed n times ( n in ecx )
| |
| mov edx, [ v_H ]
| |
| mov [edx], _TOS_
| |
| mov _TOS_, [ esi ]
| |
| lea edx, [ ecx + edx ]
| |
| lea esi, [ esi + 0x04 ]
| |
| mov [ v_H ], edx
| |
| ret
| |
|
| |
| comma1_: ; 1 byte c,
| |
| mov ecx, 0x01
| |
| jmp short dcomma
| |
| </PRE>
| |
|
| |
|
| == Ссылки == | | == Ссылки == |
| * {{Исходник|CComma|C,}} | | * [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.0860 Слово C, (c-comma) в стандарте ANS Forth] ''(англ.)'' |
| * Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.0860 C, (c-comma)] в стандарте ANS Forth ''(англ.)''
| | * [http://www.forth200x.org/documents/html/core.html#core:C, Слово C, (c-comma) в черновике Forth 200x] ''(англ.)'' |
| * Слово [http://forth-standard.org/standard/core/CComma C, (c-comma)] в черновике Forth 200x ''(англ.)'' | |
| * [http://www.forth.com/starting-forth/sf8/sf8.html Variables, Constants, and Arrays] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)''
| |
|
| |
|
|
| |
|
Строка 99: |
Строка 31: |
| {{заготовка}} | | {{заготовка}} |
| [[Категория:Слова Каллисто]] | | [[Категория:Слова Каллисто]] |
| [[Категория:Слова высокого уровня]]
| |
| [[Категория:Работа со словарём Каллисто]] | | [[Категория:Работа со словарём Каллисто]] |
| [[Категория:Стандартные слова]]
| |
| [[Категория:1994 CORE]]
| |
| [[Категория:2012 CORE]]
| |