(LINE)
(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}.
Реализация
Юрий Семёнов приводит следующее описание слова (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
Ссылки
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |