(LINE): различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) (Новая страница: «'''(LINE)''' — стандартное слово Каллисто. {{нет иллюстраций}} {{заготовка}} Категория:Слова…») |
AtH (обсуждение | вклад) |
||
(не показано 18 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
'''(LINE)''' — | '''(LINE)''' — адаптированное слово [[Каллисто]]. Считать строку с [[экран]]а. | ||
(LINE) ( c1 c2 −− a c ) Вернуть адрес и длину строки c1 с экрана c2. | |||
Выдаёт адрес a и длину c строки c1 с [[экран]]а c2. В [[Каллисто]] выдаёт длину без [[пробел]]ов в конце. | |||
== Ввод слова (LINE) == | |||
В [[Режим NUM|режиме NUM]] последовательно нажмите клавиши {{ШГ→}} [[Клавиша Р-ГРД-Г|{{Чёрная клавиша|Р-ГРД-Г}}]] [[Клавиша -|{{Серая клавиша|−}}]] [[Клавиша 7|{{Серая клавиша|7}}]] [[Клавиша 4|{{Серая клавиша|4}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] [[Клавиша P|{{Синяя клавиша|P}}]] {{ШГ←}} | |||
== История == | |||
=== (LINE) в fig-FORTH Release 1 glossary, май 1979 (англ.) === | |||
(LINE) n1 n2 --- addr count | |||
Convert the line number n1 and the screen n2 to the disc buffer | |||
address containing the data. A count of 64 indicates the full line | |||
text length. | |||
=== LINE в предыдущем стандарте Forth-83 (англ.) === | |||
LINE +n -- addr M | |||
addr is the address of the beginning of line +n for the | |||
screen whose number is contained in SCR . The range of +n | |||
is {0..15}. | |||
=== LINE в стандарте Forth-79 (англ.) === | |||
LINE n -- addr | |||
Leave the address of the beginning of line n for the screen | |||
whose number is contained in SCR. The range of n is {0..15}. | |||
== Реализация == | |||
<pre> | |||
3518 ;#xLINE | |||
3519 ; (LINE) ( c1 c2 −− a c ) Вернуть адрес и длину строки номер c1 с экрана c2. | |||
3520 ; Выдать адрес a и длину c строки c1 с экрана c2. В Каллисто выдаёт длину без пробелов в конце. | |||
3521 LDLINE: .DB 6 | |||
3522 .TEXT "(LINE)" ; ( №строки №экрана −− адрес длина) | |||
3523 .DW LBLOCK | |||
3524 DLINE: .DW CALL | |||
3525 RDLINE: .DW TOR, LIT64,B3BUF,SSMOD, FROMR,PLUS, BLOCK | |||
3526 .DW PLUS, LIT64, DTRAI, EXIT | |||
</pre> | |||
=== Советская реализация === | |||
Юрий Семёнов приводит следующее описание слова (LINE) (стр. 157): | |||
: (LINE) >R ( запись номера экрана в стек возврата) | |||
64 B/BUF ×/MOD ( частное указывает, на каком экране | |||
по отношению к первому лежит | |||
нужный текст) | |||
R> + ( запись в стек абсолютного номера экрана, | |||
откуда будет проведено чтение строки) | |||
BLOCK + ( считывание экрана в буфер и запись в | |||
стек адреса начала нужной строки) | |||
64 ( в стеке адрес начала текста и длина строки) | |||
-TRAILING ( из 64 вычитается число пробелов в | |||
конце строки) | |||
; ( всё готово для печати строки) | |||
Определение слова .LINE в FORTH ИТЭФ: | |||
<PRE> | |||
HEAD 205Q,'.LIN',305Q,DLINE,$COL ; .LINE | |||
DW TOR,$CL,BBUF,SSMOD,FROMR,PLUS,BLOCK | |||
DW PLUS,$CL,DTRAI,$TYPE,SEMI | |||
</PRE> | |||
== Ссылки == | |||
* {{Исходник|xLINE|(LINE)}} | |||
{{нет иллюстраций}} | {{нет иллюстраций}} | ||
{{заготовка}} | {{заготовка}} | ||
[[Категория:Слова Каллисто]] | [[Категория:Слова Каллисто]] | ||
[[Категория:Слова высокого уровня]] | |||
[[Категория:Работа с внешней памятью Каллисто]] |
Текущая версия от 21:34, 9 ноября 2017
(LINE) — адаптированное слово Каллисто. Считать строку с экрана.
(LINE) ( c1 c2 −− a c ) Вернуть адрес и длину строки c1 с экрана c2.
Выдаёт адрес a и длину c строки c1 с экрана c2. В Каллисто выдаёт длину без пробелов в конце.
Ввод слова (LINE)[править]
В режиме NUM последовательно нажмите клавиши ШГ→ Р-ГРД-Г − 7 4 ИП P ШГ←
История[править]
(LINE) в fig-FORTH Release 1 glossary, май 1979 (англ.)[править]
(LINE) n1 n2 --- addr count Convert the line number n1 and the screen n2 to the disc buffer address containing the data. A count of 64 indicates the full line text length.
LINE в предыдущем стандарте Forth-83 (англ.)[править]
LINE +n -- addr M addr is the address of the beginning of line +n for the screen whose number is contained in SCR . The range of +n is {0..15}.
LINE в стандарте Forth-79 (англ.)[править]
LINE n -- addr Leave the address of the beginning of line n for the screen whose number is contained in SCR. The range of n is {0..15}.
Реализация[править]
3518 ;#xLINE 3519 ; (LINE) ( c1 c2 −− a c ) Вернуть адрес и длину строки номер c1 с экрана c2. 3520 ; Выдать адрес a и длину c строки c1 с экрана c2. В Каллисто выдаёт длину без пробелов в конце. 3521 LDLINE: .DB 6 3522 .TEXT "(LINE)" ; ( №строки №экрана −− адрес длина) 3523 .DW LBLOCK 3524 DLINE: .DW CALL 3525 RDLINE: .DW TOR, LIT64,B3BUF,SSMOD, FROMR,PLUS, BLOCK 3526 .DW PLUS, LIT64, DTRAI, EXIT
Советская реализация[править]
Юрий Семёнов приводит следующее описание слова (LINE) (стр. 157):
: (LINE) >R ( запись номера экрана в стек возврата) 64 B/BUF ×/MOD ( частное указывает, на каком экране по отношению к первому лежит нужный текст) R> + ( запись в стек абсолютного номера экрана, откуда будет проведено чтение строки) BLOCK + ( считывание экрана в буфер и запись в стек адреса начала нужной строки) 64 ( в стеке адрес начала текста и длина строки) -TRAILING ( из 64 вычитается число пробелов в конце строки) ; ( всё готово для печати строки)
Определение слова .LINE в FORTH ИТЭФ:
HEAD 205Q,'.LIN',305Q,DLINE,$COL ; .LINE DW TOR,$CL,BBUF,SSMOD,FROMR,PLUS,BLOCK DW PLUS,$CL,DTRAI,$TYPE,SEMI
Ссылки[править]
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |