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


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


Описания и в строках б, 7 и 8 выполнены для терминала ADM-31 и, вероятно, должны быть изменены для вашего оборудования. Описание в строке 7 показывает типовой способ прямого позиционирования курсора. ADM-31 требует ESC- последовательности из четырех символов вида

ESC "=" (строка) + 32 (столбец) + 32,

где строка (row) и столбец (column) равны номерам строки и столбца, куда должен быть установлен курсор (0 - 23 и 0 - 79).

Когда ESC и "=" (ASCII коды 27 и 61) переданы, к кодам строки и столбца добавляется 32, после чего они посылаются на терминал. Редактор использует переменные ROW и COL для отслеживания положения курсора.

Если ваша версия Форта содержит слова для очистки экрана и перемещения курсора, вы захотите использовать описания на строке 9 (не забывайте поместить в скобки прежние описания). В MMSFORTH слово PAGE очищает экран и устанавливает курсор в верхний левый угол, в то время как PTC устанавливает курсор в положение, заданное кодами в стеке. Вам следует подставить эквивалентные слова из вашей версии Форта. Если у вас нет средств для непосредственного управления положением курсора с помощью слова типа PTC или управляющих кодовых последовательностей, вы можете использовать строки 13 и 14,

0 ( 20 июля 85 Экранный редактор NS 03 из 10) 1 : @CURSOR ( --r с ) ROW @ COL @ ; ( вызов строки и столбца ) 2 : ! CURSOR ( r c--) COL ! ROW ! ; ( запоминание столбца и строки) 3 ( Опишите здесь, если возможно, и и используйте в блоках 3 и 4) 4 : 0 COL ! ; ( перемещение курсора в начало строки ) 5 : 0 0 !CURSOR ; ( перемещение курсора вверх влево ) 6 : BABOVE ( --n ) ROW @ 64 * ; ( число байтов в рядах выше курсора ) 7 : BBELOW ( --n ) 16 ROW @ - 64 * 1К + ; ( байт ниже курсора ) 8 : OFFSET ( --n ) BABOVE COL @ + ; ( число байт в буфере перед курсором ) 9 10 : CPOS ( --адр ) PAD OFFSET + : ( адрес курсора ) 11 : LSTART ( --адр ) PAD BABOVE + ; ( адрес начала строки ) 12 : LEND ( --адр ) LSTART 63 + ; ( адрес конца строки ) 13 14 : BLEFT ( --n ) LEND CPOS - ; ( число байтов в строке слева от курсора) 15




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



Книжный магазин