(LINE): различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
 
(не показано 12 промежуточных версий этого же участника)
Строка 1: Строка 1:
'''(LINE)''' — стандартное слово [[Каллисто]].
'''(LINE)''' — адаптированное слово [[Каллисто]]. Считать строку с [[экран]]а.
(LINE)        ( c1 c2 −− a c )                    Вернуть адрес и длину строки c1 с экрана c2.
Выдаёт адрес a и длину c строки c1 с [[экран]]а c2. В [[Каллисто]] выдаёт длину без [[пробел]]ов в конце.


Выдаёт адрес a и длину u строки L с [[экран]]а S.
== Ввод слова (LINE) ==
В [[Режим NUM|режиме NUM]] последовательно нажмите клавиши {{ШГ→}}   [[Клавиша Р-ГРД-Г|{{Чёрная клавиша|Р-ГРД-Г}}]] [[Клавиша -|{{Серая клавиша|−}}]] [[Клавиша 7|{{Серая клавиша|7}}]] [[Клавиша 4|{{Серая клавиша|4}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]]   [[Клавиша P|{{Синяя клавиша|P}}]] {{ШГ←}}


 
== История ==
== (LINE) в fig-FORTH Release 1 glossary, май 1979 (англ.) ==
=== (LINE) в fig-FORTH Release 1 glossary, май 1979 (англ.) ===
(LINE) n1 n2 --- addr count
(LINE)           n1 n2 --- addr count
         Convert the line number n1 and the screen n2 to the disc buffer
         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
         address containing the data. A count of 64 indicates the full line
         text length.
         text length.


 
=== LINE в предыдущем стандарте Forth-83 (англ.) ===
== LINE в предыдущем стандарте Forth-83 (англ.) ==
       LINE        +n -- addr                    M
       LINE        +n -- addr                    M
           addr is the address of the beginning of line +n for the
           addr is the address of the beginning of line +n for the
Строка 17: Строка 19:
           is {0..15}.
           is {0..15}.


 
=== LINE в стандарте Forth-79 (англ.) ===
== LINE в стандарте Forth-79 (англ.) ==
  LINE          n -- addr
  LINE          n -- addr
     Leave  the  address of the beginning of line n for the  screen
     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}.
     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)}}




Строка 27: Строка 65:
{{заготовка}}
{{заготовка}}
[[Категория:Слова Каллисто]]
[[Категория:Слова Каллисто]]
[[Категория:Слова высокого уровня]]
[[Категория:Работа с внешней памятью Каллисто]]
[[Категория:Работа с внешней памятью Каллисто]]

Текущая версия от 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

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


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


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