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


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


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

Вывод листинга программы и загрузка

Вы уже видели в гл. 1, как можно вывести листинг блоков исходной программы (LIST) и загрузить блок (LOAD) и, может быть, уже редактировали их, пользуясь либо редактором вашей системы или редактором, описанным здесь в гл. 12. Сейчас мы рассмотрим более подробно сначала вывод листинга, а затем загрузку блоков. Для повторения пройденного введите 25 LIST тогда на экране вы увидите текст блока номер 25 в виде последовательности из 16 строк по 64 символа в каждой, пронумерованных от 0 до 15. Во многих версиях Форт имеется возможность вывести листинг нескольких блоков. Если в MMSFORTH ввести 25 6 PLISTS то будет выведен листинг шести блоков, начиная с 25-го по 30-й (В некоторых версиях синонимом этого слова является слово SHOW.) Конечно, все они быстро пробегут по экрану вверх. Слова типа PLISTS предусмотрены для вывода нескольких блоков на принтер. В некоторых версиях (в частности, в MMSFORTH) есть и другие слова, с помощью которых можно получить изящно оформленный листинг программы.

Переменная SCR (screen - экран) используется Форт-системой для вывода листинга блоков. Слово SCR имеется в Форт-79, в Форт-83 это слово необязательное, но в большинстве версий оно также имеется, и в нем запоминается номер последнего блока, который был выведен. Так, после 25 LIST SCR @ . выведет на экран 25. В различных версиях имеются слова для повторения вывода листинга блока, вывода предыдущего и следующего блока. Если назвать эти слова L, LL (вывести_последний) или LN (вывести_следующий), то они могут быть определены следующим образом: : L ( - ) SCR @ LIST ; : LL ( - ) SCR @ 1- LIST ; и : LN ( - ) SCR @ 1+ LIST ; Если повторять ввод LN, то будут выводиться последовательно несколько блоков.




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