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



         

Глава 5. Ввод и вывод - часть 8


Дайте определение слова $..

Управление экраном дисплея

Как вы, возможно, догадываетесь, в языке Форт не предусмотрены стандартные слова для управления содержимым экрана дисплея; имеется множество других способов, с помощью которых компьютеры и дисплеи осуществляют это. Однако мы увидим некоторые дополнительные возможности, рассмотрев некоторые слова MMSFORTH, которые предназначены для работы с компьютерами типа TRS-80 и IBM PC. Вы сможете определить такие же слова для вашей машины, если поймете, как она исполняет управляющие коды, а возможно, в вашей версии Форта уже имеются подобные слова. Наиболее важная функция управления экраном состоит в возможности перемещения курсора по экрану. Если вы можете делать это, то сможете сделать почти все. Представьте себе экран как таблицу из символов с определенным числом строк и столбцов. Вам хотелось бы иметь возможность поместить курсор в любую строку и столбец. В MMSFORTH для этого служит слово РТС (put cursor - поместить курсор). Для него номер строки ожидается вторым в стеке, а номер столбца - на вершине стека. Таким образом, 0 0 РТС передвинет курсор в левый верхний угол экрана, в то время как 10 30 РТС поместит его в 11 строку и введет 31 пробел. Содержимое экрана не изменится (кроме того, что на месте курсора и сообщения "ok" прежние символы будут стерты). Указанную возможность можно рассматривать как форму, содержащую пустые места, которые должны быть заполнены. Для примера, пусть меню задает вопрос, ответ на который должен начинаться в строке номер 10 и столбце номер 30, а для текста вопроса отводится 10 пустых мест. Тогда слово, которое поместит курсор и вставит в пустые места пробелы, выглядит так: : FILL-IN 10 30 РТС 10 SPACES 10 30 РТС : (Заполнить) Конечно, слово должно печатать вопрос вместо того, чтобы оставлять пробелы. Приведем другое определение слова PAGE из последних упражнений, которое будет исполняться более медленно предполагается, что экран содержит 16 строк по 64 символа в строке, т.е. всего 1024 символа): : PAGE 0 0 РТС 1024 SPACES 0 0 РТС ; (Страница)




Содержание  Назад  Вперед