(LINE): различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) Нет описания правки |
AtH (обсуждение | вклад) |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
'''(LINE)''' — | '''(LINE)''' — адаптированное слово [[Каллисто]]. Считать строку с [[экран]]а. | ||
(LINE) ( c1 c2 −− a c ) Вернуть адрес и длину строки c1 с экрана c2. | (LINE) ( c1 c2 −− a c ) Вернуть адрес и длину строки c1 с экрана c2. | ||
Выдаёт адрес a и длину c строки c1 с [[экран]]а c2. В [[Каллисто]] выдаёт длину без [[пробел]]ов в конце. | Выдаёт адрес a и длину c строки c1 с [[экран]]а c2. В [[Каллисто]] выдаёт длину без [[пробел]]ов в конце. | ||
== Ввод слова (LINE) == | == Ввод слова (LINE) == | ||
В [[Режим NUM|режиме NUM]] последовательно нажмите клавиши | В [[Режим NUM|режиме NUM]] последовательно нажмите клавиши {{ШГ→}} [[Клавиша Р-ГРД-Г|{{Чёрная клавиша|Р-ГРД-Г}}]] [[Клавиша -|{{Серая клавиша|−}}]] [[Клавиша 7|{{Серая клавиша|7}}]] [[Клавиша 4|{{Серая клавиша|4}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] [[Клавиша P|{{Синяя клавиша|P}}]] {{ШГ←}} | ||
== История == | == История == | ||
Строка 25: | Строка 25: | ||
== Реализация == | == Реализация == | ||
<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) (стр. 157): | ||
: (LINE) >R ( запись номера экрана в стек возврата) | : (LINE) >R ( запись номера экрана в стек возврата) | ||
Строка 44: | Строка 57: | ||
DW PLUS,$CL,DTRAI,$TYPE,SEMI | DW PLUS,$CL,DTRAI,$TYPE,SEMI | ||
</PRE> | </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
Ссылки[править]
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |