Входной буфер терминала: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
(Новая страница: «'''Входной буфер терминала''' (''англ.'' Terminal Input Buffer, TIB) располагается в начале Регистры бай…»)
 
Нет описания правки
Строка 1: Строка 1:
'''Входной буфер терминала''' (''англ.'' Terminal Input Buffer, TIB) располагается в начале [[Регистры байтовых данных|области байтовых данных]] и предназначен для ввода слов [[Каллисто]] с клавиатуры ЭКВМ. Адрес начала этого буфера даёт стандартное слово [[TIB]]. Данный буфер представляет собой входной поток, откуда слово [[WORD]] выбирает слова. По исчерпании входного потока Каллисто вводит в этот буфер новый текст, получаемый от программиста.
'''Входной буфер терминала''' (''англ.'' Terminal Input Buffer, TIB) располагается в начале [[Регистры байтовых данных|области байтовых данных]] и предназначен для ввода слов [[Каллисто]] с клавиатуры ЭКВМ. Адрес начала ''входного буфера'' даёт стандартное слово [[TIB]]. Данный ''буфер'' представляет собой входной поток, откуда слово [[WORD]] выбирает слова. По исчерпании входного потока [[Каллисто]] вводит в этот ''буфер'' новый текст, получаемый от программиста.


Переключением входного потока на внешнюю память и обратно управляет стандартная переменная [[BLK]] (сокращение от англ. block — блок), значение которой проверяется каждый раз в слове [[WORD]]. Если это нуль, то в качестве входного потока служит буфер TIB, в противном случае это значение рассматривается, как номер блока внешней памяти, который используется как входной поток (этот блок переносится в оперативную память словом [[BLOCK]]). Текущая позиция во входном потоке хранится в стандартной переменной [[больше-IN (Каллисто)|>IN]] (от англ. IN — вход).
Переключением входного потока на внешнюю память и обратно управляет стандартная переменная [[BLK]] (сокращение от англ. block — блок), значение которой проверяется каждый раз в слове [[WORD]]. Если это нуль, то в качестве входного потока служит ''буфер TIB'', в противном случае это значение рассматривается, как номер блока внешней памяти, который используется как входной поток (этот блок переносится в оперативную память словом [[BLOCK]]). Текущая позиция во входном потоке хранится в стандартной переменной [[больше-IN (Каллисто)|>IN]] (от англ. IN — вход).


Конец входного потока в оперативной памяти отмечается нулевым кодом. Слово [[WORD]], «натыкаясь» на нулевой код, возвращает в качестве результата пустую строку, при этом в список [[FORTH]] включена [[\0 (Каллисто)|словарная статья для такого «пустого» слова]]. Оно имеет признак немедленно исполнения и поэтому всегда исполняется, независимо от [[STATE|текущего состояния]] текстового интерпретатора. Его исполнение состоит в прекращении интерпретации данного входного потока и тем самым позволяет избежать дополнительных проверок на исчерпание.
Конец входного потока в оперативной памяти отмечается нулевым кодом. Слово [[WORD]], «натыкаясь» на нулевой код, возвращает в качестве результата пустую строку, при этом в список [[FORTH]] включена [[\0 (Каллисто)|словарная статья для такого «пустого» слова]]. Оно имеет признак немедленно исполнения и поэтому всегда исполняется, независимо от [[STATE|текущего состояния]] текстового интерпретатора. Его исполнение состоит в прекращении интерпретации данного входного потока и тем самым позволяет избежать дополнительных проверок на исчерпание.
[[Категория: Структуры данных Каллисто]]
[[Категория: Структуры данных Каллисто]]

Версия от 09:04, 10 августа 2015

Входной буфер терминала (англ. Terminal Input Buffer, TIB) располагается в начале области байтовых данных и предназначен для ввода слов Каллисто с клавиатуры ЭКВМ. Адрес начала входного буфера даёт стандартное слово TIB. Данный буфер представляет собой входной поток, откуда слово WORD выбирает слова. По исчерпании входного потока Каллисто вводит в этот буфер новый текст, получаемый от программиста.

Переключением входного потока на внешнюю память и обратно управляет стандартная переменная BLK (сокращение от англ. block — блок), значение которой проверяется каждый раз в слове WORD. Если это нуль, то в качестве входного потока служит буфер TIB, в противном случае это значение рассматривается, как номер блока внешней памяти, который используется как входной поток (этот блок переносится в оперативную память словом BLOCK). Текущая позиция во входном потоке хранится в стандартной переменной >IN (от англ. IN — вход).

Конец входного потока в оперативной памяти отмечается нулевым кодом. Слово WORD, «натыкаясь» на нулевой код, возвращает в качестве результата пустую строку, при этом в список FORTH включена словарная статья для такого «пустого» слова. Оно имеет признак немедленно исполнения и поэтому всегда исполняется, независимо от текущего состояния текстового интерпретатора. Его исполнение состоит в прекращении интерпретации данного входного потока и тем самым позволяет избежать дополнительных проверок на исчерпание.