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


Глава 12. Редакторы Форта - часть 6


0 ( 20 июля 85 Экранный редактор NS 02 из 10) 1 : PADDR ( n--) CREATE , DOES> @ PAD + ; 2 1K 2 * PADDR BLINE ( последняя строка кольцевого буфера) 3 1K 2 * 64 + PADDR LBUFF ( адрес строки для копирования-замещения) 4 : CONTROL ( с--) CREATE DEPTH DUP С, 0 DO DEPTH ROLL С, 5 LOOP DOES> DUP DUP C@ + SWAP DO I 1+ C@ EMIT LOOP ; 6 27 42 CONTROL ( очистка экрана, курсор вверх влево) 7 : 27 EMIT 61 EMIT ROW @ 32 + EMIT COL @ 32 + EMIT ; 8 ( положение курсора в строке Х и столбце Y) 9 ( : PAGE ; : ROW @ COL @ PTC ;)

10 ( Чтобы использовать далее , , , и ) 11 ( необходимо описать их здесь, используя лишь в случае 12 отсутствия прямого позиционирования курсора) 13 ( 28 CONTROL ( перемещение курсора вверх влево) 14 ( : ROW @ ?DUP IF 0 DO LOOP THEN ) 15 ( COL @ ?DUP IF 0 DO LOOP THEN ;)

описания и в блоке 2. Вы можете позднее использовать сам редактор для внесения последующих модификаций, которые допускает ваша ЭВМ, ваша версия Форта и ваш дисплей.

Хотя это весьма простой редактор, он включает в себя некоторые функции, которые полезны и в то же время необычны. Даже если вы удовлетворены редактором, поставленным с вашей версией Форта, для вас будет, вероятно, полезно изучить эту программу, особенно в связи с тем, что мы используем ее в качестве примера того, как следует укладывать и комментировать исходный текст программы.

Если ваша версия Форта содержит пользовательскую переменную SCR, вам следует удалить описание SCR со строки 6. Вы должны также заменить числа 1 и 169 в строке 10 на номера первого и последнего блоков, которые может модифицировать редактор в вашей системе. CONTROL представляет собой слово-описатель, которое формирует слова, предназначенные для генерации последовательностей управляющих символов, число которых задается числом в стеке. Хотя это слово используется здесь только один раз (для в строке 9), оно включено в текст, чтобы позволить вам описать другие управляющие последовательности. Слово определено так, что оно посылает на терминал символ 27, за которым следует код 42.


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