LIST
LIST (распечатать, листинг, читается «лист») — стандартное слово Каллисто.
LIST ( c −− ) Вывести экран c и записать его номер в переменную SCR.
Распечатывает экран с номером c и записывает его номер в переменную SCR
Ввод слова LIST[править]
В режиме ЛАТ последовательно нажмите четыре белые клавиши − 7 1 2
LIST в стандарте ANS Forth[править]
7.6.2.1770 LIST BLOCK EXT ( u -- ) Отображает блок u в формате, определенном реализацией. Сохраняет u в SCR. См.: 7.6.1.0800 BLOCK.
История[править]
Слово LIST является одним из самых древних и устоявшихся в Форте. Оно появилось в 1966 году, когда Чак Мур, будучи гуру MCP на 5500, работал в Realtime Systems, Inc (RSI).
Экран Каллисто содержит в три раза больше строк, чем экран Форта. Поэтому каллистянское слово LIST ближе к слову TRIO fig-Форта.
LIST в предыдущем стандарте Forth-83 (англ.)[править]
LIST u -- M,79 The contents of screen u are displayed. SCR is set to u. 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 устанавливает десятичную систему представления чисел, что исключает разночтения номера выводимого экрана. Но «старая» система счисления не восстанавливается. Если вам нужно постоянно работать в другой системе, это может создать трудности.
Вывод на индикатор можно приостановить или остановить, см. ?BREAK
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
Советская реализация[править]
Юрий Семёнов приводит следующее определение слова 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 в ядре ФОРТ-ЕС:
(#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 ;
Определения слов LIST и TRIO в FORTH ИТЭФ:
; ** Вспомогательные процедуры ** 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
Ссылки[править]
- Исходный текст слова LIST в Каллисто Классик 1.0
- См. слова INDEX и SCR
- Слово LIST в стандарте ANS Forth (англ.)
- Слово LIST в черновике Forth 200x (англ.)
- КАК РАБОТАТЬ НА ФОРТЕ в книге Л.Броуди «Начальный курс программирования на языке Форт»
- The Editor (and Staff) в книге Leo Brodie Starting Forth (англ.)
![]() |
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
![]() |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |