Редактирование: LIST

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

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

Текущая версия Ваш текст
Строка 1: Строка 1:
'''LIST''' (распечатать, листинг, читается «лист») — стандартное слово [[Каллисто]].
'''LIST''' (распечатать, листинг) — стандартное слово [[Каллисто]].
LIST          ( c −− )                            Вывести экран c и записать его номер в переменную SCR.
 
Распечатывает [[экран]] с номером c и записывает его номер в переменную [[SCR]]
Распечатывает [[экран]] с номером u и записывает его номер в переменную [[SCR]]
 
Экран Каллисто содержит в три раза больше строк, чем экран Форта. Поэтому каллистянское слово LIST ближе к слову TRIO fig-Форта.
 
LIST устанавливает десятичную систему представления чисел, что исключает неоднозначность интерпретации текста. Но «старая» система счисления не восстанавливается, если ранее работала другая система, и это может создать трудности.


== Ввод слова LIST ==
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите четыре белые клавиши [[Клавиша -|{{Серая клавиша|−}}]] [[Клавиша 7|{{Серая клавиша|7}}]] [[Клавиша 1|{{Серая клавиша|1}}]] [[Клавиша 2|{{Серая клавиша|2}}]]


== LIST в стандарте ANS Forth ==
== LIST в стандарте ANS Forth ==
<pre>
  7.6.2.1770  LIST                                                    BLOCK EXT
  7.6.2.1770  LIST                                                    BLOCK EXT
             ( u -- )
             ( u -- )
Строка 14: Строка 15:


         См.: 7.6.1.0800 BLOCK.
         См.: 7.6.1.0800 BLOCK.
</pre>


== История ==
Слово LIST является одним из самых древних и устоявшихся в Форте. Оно появилось в 1966 году, когда Чак Мур, будучи гуру MCP на 5500, работал в Realtime Systems, Inc (RSI).


[[Экран]] [[Каллисто]] содержит в три раза больше строк, чем экран Форта. Поэтому каллистянское слово LIST ближе к слову TRIO fig-Форта.
== LIST в предыдущем стандарте Forth-83 (англ.) ==
 
=== LIST в предыдущем стандарте Forth-83 (англ.) ===
       LIST        u --                          M,79
       LIST        u --                          M,79
           The contents of screen u are displayed.  SCR is set to u.
           The contents of screen u are displayed.  SCR is set to u.
           See:  BLOCK
           See:  BLOCK


=== LIST в стандарте Forth-79 (англ.) ===
 
== LIST в стандарте Forth-79 (англ.) ==
  LIST          n --                          109
  LIST          n --                          109
     List  the ASCII symbolic contents of screen n on  the  current
     List  the ASCII symbolic contents of screen n on  the  current
     output device, setting SCR to contain n.  n is unsigned.
     output device, setting SCR to contain n.  n is unsigned.


=== LIST в fig-FORTH Release 1 glossary, май 1979 (англ.) ===
 
== LIST в fig-FORTH Release 1 glossary, май 1979 (англ.) ==
  LIST          n  ---                            L0
  LIST          n  ---                            L0
         Display the ascii text of screen n on the selected output device.
         Display the ascii text of screen n on the selected output device.
         SCR contains the screen number during and after this process.
         SCR contains the screen number during and after this process.


== Реализация ==
LIST устанавливает [[DECIMAL|десятичную систему представления чисел]], что исключает разночтения номера выводимого [[экран]]а. Но «старая» [[BASE|система счисления]] не восстанавливается. Если вам нужно постоянно работать в другой системе, это может создать трудности.
Вывод на [[индикатор]] можно приостановить или остановить, см. [[?BREAK]]
<pre>
3861 ;#LIST
3862 ; LIST            ( c −− )                            Вывести экран c и записать его номер в переменную SCR.
3863 USLIST:        .DB    4
3864                .TEXT  "LIST"                          ; ( №блока −− )
3865                .DW    LQUEST                          ; Распечатать экран с номером №блока и записать его номер в переменную SCR
3866 SLIST:          .DW CALL, DEC, DUP,SCR,STORE, PDOTQ    ; Без CR, экономим одну строчку.
3867                .DB 3
3868                .TEXT "S #"
3869                .DW DOT, ZERO, LITB
3870                .DB 48
3871                .DW XFOR,LST1
3872 LSTI:          .DW CR, DUP,TWO,DOTR, SPACE, QBREAK
3873                .DW DUP, SCR,UAT, DLINE, TYPE1, ONEP, XNEXT,LSTI
3874 LST1:          .DW DROP, EXIT
</pre>


=== Советская реализация ===
== Реализация LIST ==
Юрий Семёнов приводит следующее определение слова LIST (стр. 33), называя его одной из часто употребимых команд Форта:
Юрий Семёнов приводит следующее описание слова LIST (стр. 33), называя его одной из часто употребимых команд Форта:
  : LIST DECIMAL ↵ ↑                          ( в стеке n n )
  : LIST DECIMAL ↵ ↑                          ( в стеке n n )
         SCR !        ( запись в SCR номера выводимого экрана;
         SCR !        ( запись в SCR номера выводимого экрана;
Строка 68: Строка 46:
         1+ NEXT DROP ↵ ;
         1+ NEXT DROP ↵ ;


Описание и определение LIST в ядре ФОРТ-ЕС:
<PRE>
  (#SCR)    * N->А,Т                    ПЕРЕВЕСТИ НОМЕР ЗКРАНА N В ТЕКСТ  46


LIST      +  N-> РАСПЕЧАТАТЬ НА ТЕРМИНАЛЕ ЭКРАН N              46
{{нет иллюстраций}}
 
{{заготовка}}
                    Экран номер 46
[[Категория:Слова Каллисто]]
( 31.09.86  (#SCR/  LIST  SCR? INDEX  )
[[Категория:Работа с внешней памятью Каллисто]]
 
[[Категория:Средства отладки Каллисто]]
: (#SCR) ( N->A,T ПЕРЕВЕСТИ НОМЕР N ЭКРАНА В ТЕКСТОВОЕ ИМЯ)
  BASE @ >R DECIMAL  0 <# #S #> R> BASE ! ;
 
: LIST ( N->  РАСПЕЧАТАТЬ ЭКРАН N, ЗАПОМНИТЬ ЕГО В "SCR")
  DUP SCR ! CR ." ЭКРАН " DUP (#SCR) TYPE
  BLOCK 16 0 DO DUP I 64 * +
    CR I 3 .R SPACE 64 TYPE LOOP DROP ;
</PRE>
Определения слов LIST и TRIO в FORTH ИТЭФ:
<PRE>
  ;        ** Вспомогательные процедуры **
 
            HEAD    204Q,'LIS',324Q,$LIST,$COL          ; LIST
            DW  DEC,CR,DUBL,SCR,STORE,PDOTQ
            DB  3,'S#  '
            DW  $DOT,LIT,20Q,ZERO,XDO
  LSTI:    DW  CR,I,THREE,DOTR,SPACE
            DW  I,SCR,AT,DLINE,XLOOP,LSTI-$,CR,SEMI
            ...
            HEAD    204Q,'TRI',317Q,TRIO,$COL            ; TRIO
            DW  LIT,14Q,EMIT
            DW  THREE,OVER,PLUS,SWAP,XDO
  TRI:      DW  I,$LIST,XLOOP,TRI-$,SEMI
 
</PRE>


== Ссылки ==
== Ссылки ==
* {{Исходник|LIST|LIST}}
* [http://forth.sourceforge.net/standard/dpans/dpans7.htm#7.6.2.1770 Слово LIST в стандарте ANS Forth] ''(англ.)''
* См. слова [[INDEX]] и [[SCR]]
* [http://www.forth200x.org/documents/html/block.html#block:LIST Слово LIST в черновике Forth 200x] ''(англ.)''
* Слово [http://forth.sourceforge.net/standard/dpans/dpans7.htm#7.6.2.1770 LIST] в стандарте ANS Forth ''(англ.)''
* Слово [http://forth-standard.org/standard/block/LIST LIST] в черновике Forth 200x ''(англ.)''
* [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH\03.%20KAK%20RABOTATJ%20NA%20FORTE КАК РАБОТАТЬ НА ФОРТЕ] в книге [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH Л.Броуди «Начальный курс программирования на языке Форт»]
* [http://www.forth.com/starting-forth/sf3/sf3.html The Editor (and Staff)] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)''




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

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

Отменить Справка по редактированию (в новом окне)
Источник — https://pmk.the-hacker.ru/LIST