Текущая версия |
Ваш текст |
Строка 1: |
Строка 1: |
| '''BLANK''' (заполнить пробелами, читается «блэнк») — стандартное слово [[Каллисто]]. Заполнить массив пробелами. | | '''BLANK''' — стандартное слово [[Каллисто]]. |
| BLANK ( a u −− ) Опробелить. Записать u пробелов в память, начиная с адреса a.
| |
| Слово BLANK записывает n кодов [[пробел]]а (32) в память, начиная с адреса a.
| |
| | |
| == Ввод слова BLANK ==
| |
| В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши [[Клавиша В/О|{{Чёрная клавиша|В/О}}]] [[Клавиша -|{{Серая клавиша|−}}]] {{ШГ←}} [[Клавиша 4|{{Серая клавиша|4}}]] [[Клавиша 9|{{Серая клавиша|9}}]]
| |
| | |
| == BLANK в стандарте ANS Forth ==
| |
| 17.6.1.0780 BLANK STRING
| |
| ( c-addr u -- )
| |
| Если u больше чем нуль, сохраняет символьное значение пробела в u
| |
| последовательных символьных позициях, начинающихся с c-addr.
| |
| | |
| == История ==
| |
| Слово BLANK взято из Форта, где получило своё настоящее имя в 1983 году и с тех пор не изменялось, переходя из стандарта в стандарт.
| |
| | |
| В программах, написанных для Форта-79 и более ранних диалектов, нужно исправить название слова на современное BLANK.
| |
| | |
| === BLANK в предыдущем стандарте Forth-83 (англ.) ===
| |
| BLANK addr u -- 83
| |
| u bytes of memory beginning at addr are set to the ASCII
| |
| character value for space. No action is taken if u is zero.
| |
| | |
| === BLANKS в стандарте Forth-79 (англ.) ===
| |
| BLANKS addr n -- 152
| |
| Fill an area of memory over n bytes with the value for ASCII
| |
| blank, starting at addr. If n is less than or equal to zero,
| |
| take no action.
| |
| | |
| === BLANKS в fig-FORTH Release 1 glossary, май 1979 (англ.) ===
| |
| BLANKS addr count --
| |
| Fill an area of memory beginning at addr with blanks.
| |
| | |
| == Реализация ==
| |
| <pre>
| |
| 2013 JFILL2: M8 1 + MA 1 + M3
| |
| 2014 KRM8 M0 +/− KX<09 ; Счётчик литер
| |
| 2015 KRMA 1 EE 4 − KX>=09 1 − M5 RMB
| |
| 2016 FILL1: KM5 FL0 FILL1
| |
| 2017 KGOTO9
| |
| 2018 JBLANK: ; Обработчик FILL
| |
| 2019 32
| |
| 2020 .DB 59H ; FX>=0 aka пропустить 1 байт
| |
| 2021 JERASE: CX ; Обработчик ERASE
| |
| 2022 JJFILL: MB RM3 GOTO JFILL2
| |
| …
| |
| 2031 ;#BLANK
| |
| 2032 ; BLANK ( a U −− ) Опробелить. Записать U пробелов в память, начиная с адреса a.
| |
| 2033 LBLANK: .DB 5
| |
| 2034 .TEXT "BLANK" ; ( где сколько −− )
| |
| 2035 .DW LERASE
| |
| 2036 BLANK: .DW JBLANK ; Опробелить строку.
| |
| </pre>
| |
| Реализация из SP-Forth 4.20:
| |
| <pre>
| |
| : BLANK ( addr len -- ) \ fill addr for len with spaces (blanks)
| |
| BL FILL ;
| |
| </pre>
| |
| | |
| === Советская реализация ===
| |
| Юрий Семёнов приводит следующее определение BLANK (стр. 27) через [[BL]] и более общее слово [[FILL]]:
| |
| : BLANK BL FILL ;
| |
| | |
| Описание и определение слова BLANK в ядре ФОРТ-ЕС:
| |
| <PRE>
| |
| BLANK +A,U-> ЗАСЛАТЬ ПРОБЕЛЫ В U БАЙТОВ ПО АДРЕСУ А 22
| |
| | |
| Экран номер 22
| |
| ( 31.03.86 FILL ERASE BLANK COMPILE [ ] MIN MAX HEX DECIMAL)
| |
| | |
| : BLANK ( A,U-> ) BL FILL ;
| |
| </PRE>
| |
| В FORTH ИТЭФ слово BLANK называлось BLANKS и было [[примитив]]ом, который опирался на код [[примитив]]а [[FILL]]. Вот их определения:
| |
| <PRE>
| |
| HEAD 204Q,'FIL',314Q,FILL ; FILL
| |
| POP AX ; Символ
| |
| FLL: POP CX ; Счетчик символов
| |
| CMP CX, 0
| |
| JLE DRP ;
| |
| POP BX
| |
| $REPE: MOV BYTE PTR [BX], AL
| |
| INC BX
| |
| | |
| LOOP $REPE
| |
| NEXT
| |
| ...
| |
| HEAD 206Q,'BLANK',323Q,BLANK ; BLANKS
| |
| MOV AX, 32
| |
| JMP FLL
| |
| </PRE>
| |
| | |
| == Ссылки ==
| |
| * {{Исходник|BLANK|BLANK}}
| |
| * См. слова [[FILL]] [[ERASE]]
| |
| * См. также слова [[BL]] [[SPACE]] [[SPACES]]
| |
| * Слово [http://forth.sourceforge.net/standard/dpans/dpans17.htm#17.6.1.0780 BLANK] в стандарте ANS Forth ''(англ.)''
| |
| * Слово [http://forth-standard.org/standard/string/BLANK BLANK] в черновике Forth 200x ''(англ.)''
| |
| * [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH\10.WWOD-WYWOD ВВОД-ВЫВОД] в книге [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH Л.Броуди «Начальный курс программирования на языке Форт»]
| |
| * [http://www.forth.com/starting-forth/sf10/sf10.html I/O and You] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)''
| |
| | |
|
| |
|
| {{нет иллюстраций}} | | {{нет иллюстраций}} |
| {{заготовка}} | | {{заготовка}} |
| [[Категория:Слова Каллисто]] | | [[Категория:Слова Каллисто]] |
| [[Категория:Примитивы]]
| |
| [[Категория:Работа с памятью Каллисто]]
| |
| [[Категория:Стандартные слова]]
| |
| [[Категория:1994 STRING]]
| |
| [[Категория:2012 STRING]]
| |