Текущая версия |
Ваш текст |
Строка 1: |
Строка 1: |
| '''LIST''' (распечатать, листинг, читается «лист») — стандартное слово [[Каллисто]]. | | '''LIST''' — стандартное слово [[Каллисто]]. |
| LIST ( c −− ) Вывести экран c и записать его номер в переменную SCR.
| | |
| Распечатывает [[экран]] с номером c и записывает его номер в переменную [[SCR]] | | Распечатывает [[экран]] с номером u и записывает его номер в переменную [[SCR]] |
|
| |
|
| == Ввод слова 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 -- ) |
| Отображает блок u в формате, определенном реализацией. Сохраняет u в | | Отображает блок u в формате определенном реализацией. Сохраняет u в |
| SCR. | | SCR. |
|
| |
|
| См.: 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 n -- 109
| |
| List the ASCII symbolic contents of screen n on the current
| |
| output device, setting SCR to contain n. n is unsigned.
| |
|
| |
| === LIST в fig-FORTH Release 1 glossary, май 1979 (англ.) ===
| |
| LIST n --- L0
| |
| Display the ascii text of screen n on the selected output device.
| |
| 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 (стр. 33), называя его одной из часто употребимых команд Форта:
| |
| : LIST DECIMAL ↵ ↑ ( в стеке n n )
| |
| SCR ! ( запись в SCR номера выводимого экрана;
| |
| в стеке n)
| |
| ." S# " . ( отображение номера выводимого экрана)
| |
| 0 16 FOR ( начало цикла отображения 16 строк)
| |
| ↵ ↑ 3 I.R SPACE ( печать номера строки )
| |
| ↑ SCR @ (LINE) TYPE ( распечатка текста строки)
| |
| 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: |
Строка 27: |
| {{заготовка}} | | {{заготовка}} |
| [[Категория:Слова Каллисто]] | | [[Категория:Слова Каллисто]] |
| [[Категория:Слова высокого уровня]]
| |
| [[Категория:Терминальный ввод/вывод Каллисто]] | | [[Категория:Терминальный ввод/вывод Каллисто]] |
| [[Категория:Работа с внешней памятью Каллисто]] | | [[Категория:Работа с внешней памятью Каллисто]] |
| [[Категория:Средства отладки Каллисто]] | | [[Категория:Средства отладки Каллисто]] |
| [[Категория:Стандартные слова]]
| |
| [[Категория:1994 BLOCK EXT]]
| |
| [[Категория:2012 BLOCK EXT]]
| |