Редактирование: (LINE)

Перейти к навигации Перейти к поиску
Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы войдёте или создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.

Текущая версия Ваш текст
Строка 1: Строка 1:
'''(LINE)''' — адаптированное слово [[Каллисто]]. Считать строку с [[экран]]а.
'''(LINE)''' — стандартное слово [[Каллисто]].
(LINE)        ( c1 c2 −− a c )                    Вернуть адрес и длину строки c1 с экрана c2.
Выдаёт адрес a и длину c строки c1 с [[экран]]а c2. В [[Каллисто]] выдаёт длину без [[пробел]]ов в конце.
 
== Ввод слова (LINE) ==
В [[Режим NUM|режиме NUM]] последовательно нажмите клавиши {{ШГ→}}   [[Клавиша Р-ГРД-Г|{{Чёрная клавиша|Р-ГРД-Г}}]] [[Клавиша -|{{Серая клавиша|−}}]] [[Клавиша 7|{{Серая клавиша|7}}]] [[Клавиша 4|{{Серая клавиша|4}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]]   [[Клавиша P|{{Синяя клавиша|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}.
 
== Реализация ==
<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)}}
 


{{нет иллюстраций}}
{{нет иллюстраций}}
{{заготовка}}
{{заготовка}}
[[Категория:Слова Каллисто]]
[[Категория:Слова Каллисто]]
[[Категория:Слова высокого уровня]]
[[Категория:Работа с внешней памятью Каллисто]]
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:

Отменить Справка по редактированию (в новом окне)