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