(LINE)

Материал из ПМК вики
Перейти к: навигация, поиск

(LINE) — адаптированное слово Каллисто. Считать строку с экрана.

(LINE)         ( c1 c2 −− a c )                     Вернуть адрес и длину строки c1 с экрана c2.

Выдаёт адрес a и длину c строки c1 с экрана c2. В Каллисто выдаёт длину без пробелов в конце.

Ввод слова (LINE)[править]

В режиме NUM последовательно нажмите клавиши $\mathrm{\overset{\rightarrow}{ШГ}}$    Р-ГРД-Г      7   4   ИП     P  $\mathrm{\overset{\leftarrow}{ШГ}}$

История[править]

(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

Ссылки[править]


  Nopictures-icon.png У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.


  Stub-icon-48px.png Это заготовка статьи. Вы можете помочь проекту, дополнив её.