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


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


Многие ЭВМ со встроенными дисплеями также воспринимают управляющие символы, и кроме того, работают со словами Форта, предназначенными для перемещения курсора и управления экраном. Например, MMSFORTH использует слово PAGE для очистки экрана и РТС для перемещения курсора в позицию, заданную числами в стеке. Мы написали этот редактор для работы с терминалом Lear-SiegeI ADM-31, и если вы используете другой терминал, вам надо модифицировать программу в блоке 2.

Кроме минимальных возможностей по очистке экрана и перемещению курсора многие терминалы (встроенные дисплеи) имеют много других функций. Например, часто бывает предусмотрена возможность стирания символов в интервале от места, отмеченного курсором, до края строки перемещения курсора вверх или вниз на одну строку и т.д. Если ваш дисплей позволяет делать такие вещи, то вы можете сделать работу редактора более удобной, хотя эти усовершенствования, строго говоря, и не являются обязательными. Мы дадим вам советы, как выполнить эти модификации. Наконец, некоторые встроенные дисплеи имеют ЗУ, в которых изображение хранится в виде ASCII символов и которые непрерывно опрашиваются с помощью схемотехнических средств, а их содержимое отображается на экране. Если ваша ЭВМ работает таким образом, можно сделать намного более эффективный редактор. Мы дадим вам некоторые предложения по поводу такого редактора в гл.13, где обсудим структуру этого редактора.

Приведенный ниже текст программы редактора содержит различные советы по модификациям, которые могут сделать его использование более удобным и эффективным. Программа составлена, однако, с тем расчетом, чтобы максимально упростить ее применение и сделать это возможным на максимальном числе ЭВМ. Мы полагаем, что вы используете ее сначала только с совершенно необходимыми, которые совершенно необходимыми, т.е. изменив лишь

0 ( 20 июля 85 Экранный редактор NS 01 из 10) 1 : TASK ; DECIMAL 2 3 32 CONSTANT BL 102/1 CONSTANT 1K 4 64 CONSTANT 64 63 CONSTANT 63 5 10000 CONSTANT PDELAY 5000 CONSTANT SDELAY 6 VARIABLE SCR VARIABLE ROW 7 VARIABLE COL VARIABLE I/R 8 VARIABLE LOWBLK VARIABLE HIGHBLK 9 ( запоминание первого и последнего блоков, которые можно редактировать на вашей ЭВМ) 10 1 LOWBLK ! 169 HIGHBIK ! 11 ; --- ; ( слово, не выполняющее никакой работы) 12 : MODE ( -- ) I/R @ 0= I/R ! ; ( выбор ввод-замещение ) 13 : DELAYS ( n -- ) 0 DO LOOP ; ( задержка на n циклов ) 14 : PAUSE ( -- ) PDELAY DELAYS ; ( длинная задержка) 15 : SPAUSE ( -- ) SDELAY DELAYS ; ( короткая задержка )




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