[an error occurred while processing this directive]
3.1.2* Особенности IN/OUT 3.1.3* Создание слов- обработчиков ВВОДА/ВЫВОДА ПРИМЕР1: МЫ ХОТИМ Чтобы система подсчитывала кол- во выведенных на консоль символов. КАК ЭТО СДЕЛАТЬ? 0 Variable QSymbols ( Переменная для подсчета :dev SymCount QSymbols 1+! ;dev ' SymCount OutSet ЧТО БУДЕТ ДАЛЬШЕ? При выводе любого символа переменная QSyblols будет увеличиваться на 1. ПРИМЕР2: МЫ ХОТИМ Чтобы при ВВОДЕ( хотя бы при вводе строки ) на каждый введенный с устройства символ отобра- жался в углу окна. КАК ЭТО СДЕЛАТЬ? :dev SymShow InWas ` If Dup BegPos ` c! Then ;dev InReset ' SymShow InSet ' KbdIn InSet ЧТО БУДЕТ ДАЛЬШЕ? При вводе символа он будет отражаться в ЛевоВерх углу окна. ( Чтобы снять всю эту бяку достаточно: inreset ' kbdin inset ) ПРИМЕР3: Структура слова типа D( device ) Рассмотрим системное слово KBDIN( ввести с клави- атуры 1 символ ) Kbdin dfb ¤85 asc "kbdiN" NFA dw ??? LFA jsr Device CFA dw 0 PFA ( это поле введено для оргганизации цепочки потока ВВОДА/ВЫВОДА, в нем содержится адрес след. слова из цепочки ) dw ??? Здесь те слова, которые будут выполнятся .......... dw devout Слово-выход из слова устройства 3.2.1.0.2* Системный набор ОБРАБОТЧИКОВ ПРИМЕР1: Структура систеного ОБРАБОТЧИКА для TEAC Для нотации ассемблера структура выглядит: Teac jsr Doe CFA Это структура <BUILDS DOES> dw makechoice PFA Системный ветвитель по номеру dw TF0 PFA+2 Массив векторов для перехо- dw TF1 дов по функциям устройства .... dw TF11 3.2.1.3* Считать блок данных с устройства ПРИМЕР1: МЫ ХОТИМ Считать в память с адреса HERE весь 1 трек. ( 0 трек средствами BForth НЕ может быть счита[an error occurred while processing this directive]