Язык программирования Форт


Глава 10. Хранение программ и данных - часть 15


Это слово понимает, что запоминать буферы на диске не нужно, и отменяет назначение буферов блокам, а в некоторых версиях оно, кроме того, производит заполнение буферов нулями (байтами, имеющими значение 0) или пробелами с кодом ASCII 32.

Слово EMPTY-BUFFERS в Форт-83 не обязательное, поскольку стандартной программе не разрешается изменять содержимое буфера блока до тех пор, пока не будут спасены на диске предыдущие изменения. Словом EMPTY-BUFFERS следует пользоваться осмотрительно, поскольку можно потерять ценную информацию, не сохранив ее предварительно на диске. Лучше всего поучиться работать с блоками и буферами блоков, проделав несколько упражнений.

Упражнения

1. Определите слово.LINE, которое будет показывать на экране строку заданного блока, если в стеке на вершине указывается номер строки, а второй элемент содержит номер блока. 2. Определите слово INDEX под именем NEWINDEX, используя слово .LINE. 3. Определите слово LIST под именем NEWUST, используя слово .LINE. 4. Определите слово BLLINE, которое будет заполнять строку 64 пробелами (код ASCII 32), если задан номер блока и номер строки. Нужно ли делать UPDATE? 5. Слово TL (напечатать строку), которое является словом MMSFORTH, выводит на экран ряд строк с номерами, так же как и LIST, выбирая их из блока, номер которого содержится в SCR. Это значит, что 5 SCR ! 9 11 TL будет выводить строки с 9-й по 11-ю из блока 5. Определите слово TL с именем NEWTL. Определите также NEWLIST пол именем NEWLIST1, используя TL. 6. Определите слово CLEAR-BLOCK, которое, если перед ним в стеке задан номер блока, заполнит его пробелами (код ASCII 32). 7. Слово РР в некоторых версиях форта позволяет изменить содержимое строки, попросту печатая ее новое содержимое. Например, 32 5 РР Это новое содержимое этой строки

изменит содержимое пятой строки в блоке 32 на текст "Это новое содержимое этой строки". Определите слово РР. (Указание: Используйте 0 WORD.) 8. Определите слово COPY, назвав его NEWCOPY. 9. Очень полезно слово, позволяющее копировать ряд блоков.


- Начало -  - Назад -  - Вперед -