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

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
 
(не показано 9 промежуточных версий этого же участника)
Строка 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
Строка 10: Строка 13:
         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) ==
=== Советская реализация ===
Юрий Семёнов приводит следующее описание слова (LINE) (стр. 157):
Юрий Семёнов приводит следующее описание слова (LINE) (стр. 157):
   : (LINE)  >R          ( запись номера экрана в стек возврата)
   : (LINE)  >R          ( запись номера экрана в стек возврата)
Строка 38: Строка 51:
                                 конце строки)
                                 конце строки)
             ;                    ( всё готово для печати строки)
             ;                    ( всё готово для печати строки)
Определение слова .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)}}




Строка 43: Строка 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

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


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


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