Евгений Каратаев
Эта заметка описывает программный перехват ввода-вывода текущего устройства в Cache'. Неудобство стандартных устройств mumps, а точнее определенного их поведения состоит в том, что если выполняется программный код, осуществляющий ввод-вывод через него, то этот процесс сторонним кодом неуправляем иначе как установкой возможных опций устройству. В то время как в некоторых случаях очень нужно иметь возможность выполнить так называемый унаследованный (legacy) код, который оперирует текущим устройством, но при этом в самих операциях ввода-вывода произвести дополнительные действия.
Ситуация примерно аналогична вводу-выводу в сишном стиле и в стиле C++, когда в первом случае мы можем открыть файл и передать его коду, а во втором случае мы можем создать объект ввода-вывода и переопределить для него операции чтения - записи.
Для перехвата операций ввода-вывода текущего устройства нужно
Сделать отдельную рутину, в которой прописать функции, вызываемые при операциях ввода-вывода.
Указать текущему устройству эту рутину как мнемоническую в команде use
Включить перенаправление для текущего устройства
В функциях переопределяющих операции ввода-вывода можно использовать штатное поведение текущего устройства если отключить перенаправление и при выходе из обработчика снова его включить.
Рутина-перехватчик должна реализовать на свое усмотрение метки
rstr(len,to) |
Чтение с опциональным указанием заданной длины и таймаута |
rchr(to) |
Чтение номера символа |
wstr(expr) |
Запись строки W expr |
wchr(expr) |
Запись символа W *expr |
wtab(expr) |
Запись пропуска W ?expr |
wnl |
Перевод строки W ! |
wff |
Очистка экрана W # |
Шаблон рутины примерно такой:
rstr(len,to)
D $ZU(82,12,0)
if $D(len)&&$D(to) d
. ; перехват
. R data#len:to
e i $D(len) d
. ; перехват
. R data#len
e i $D(to) d
. ; перехват
. R data:to
e d
. ; перехват
. R data
D $ZU(82,12,1)
; перехват
Q $G(data)
rchr(to)
D $ZU(82,12,0)
i $d(to)
. ; перехват
. R *data:to
. ; перехват
e d
. ; перехват
. R *data
. ; перехват
D $ZU(82,12,1)
; перехват
Q data
// W expr
wstr(expr)
D $ZU(82,12,0)
; перехват
W expr
D $ZU(82,12,1)
Q
// W *expr
wchr(expr)
D $ZU(82,12,0)
; перехват
W *expr
D $ZU(82,12,1)
Q
// W ?expr
wtab(expr)
D $ZU(82,12,0)
; перехват
W ?expr
D $ZU(82,12,1)
Q
// W !
wnl
D $ZU(82,12,0)
; перехват
W !
D $ZU(82,12,1)
Q
// W #
wff
D $ZU(82,12,0)
; перехват
W #
D $ZU(82,12,1)
Q
После чего можно пользоваться, указывая прехватчик:
u dev::"^ИМЯРУТИНЫ" ; указываем какую мнемонику использовать
D $ZU(82,12,1) ; реально включаем флаг использования
d normal() ; что будет писать в текущий девайс
D $ZU(82,12,0) ; перед закрытием девайса возвращаем флажок
c dev
Кроме программного назначения перехвата для обработки вывода наследованного кода можно использовать также и другие возможности: спулер, запись-чтение внешних файлов, межпроцессное взаимодействие.
Другие работы по теме:
Расчет антенны типа Волновой канал
5 Эскиз антенны и схема питания Рисунок 5.1 – Эскиз антенны и схемы питания где, 1 – директоры 2 – активный вибратор 3 – рефлектор 4, 5, 11 – элементы симметрирующего устройства для возбуждения вибратора.
Инцидент в заливе Сидра 1981
Первый инцидент в заливе Сидра — воздушный бой между истребителями ВМС США и ВВС Ливии в 1981 году. В 1973 году ливийский лидер Муаммар Каддафи в одностороннем порядке провозгласил так называемую «линию смерти», объявив залив Сидра (Большой Сирт) ливийскими территориальными водами. США оспаривали этот факт.
Настройка и оптимизация модемного соединения в XP
Очень важным моментом в настройке Windows является оптимизация соединения с Интернет. Ведь от качества связи напрямую зависит время, проведенное вами в сети и соответственно затраты денег на это.
Система управления сетями Transcend Manager v.5.0 фирмы 3Com
Структура систем Transcend Manager, их основные элементы и характеристика, назначение. Методы цветового кодирования. Выбор узла для перехвата пакетов и выделение под перехват пакетов буфер. Установка фильтров и декодирование пакетов, определение ошибки.
История AMD
Министерство Образования Российской Федерадии Санкт-Петербургский Государственный Технический Университет Факультет Экономики и Менеджмента
Как сделать двунаправленный запрос
Можно ли сделать в Cache' такой запрос, чтобы его можно было бы прокручивать назад, например что-то вроде команды, парной к Fetch, например Prior. Собственные средства Cache' почему-то не предоставляют такой возможности.
Комментарии в Cache
Стандартный однострочный комментарий. Стандартный двойной комментарий. Макрокомментарий.
Инженерные аспекты СОРМ
Понятие СОРМ. Законный перехват сообщений. Европейские стандарты. Механизмы организации СОРМ в концепции ETSI.
XMLHttpRequest (AJAX)
Объект XMLHttpRequest (AJAX): отправка и обработка ответов HTTP-запросов с помощью JavaScript. Методы и свойства объекта, общие для Internet Explorer 5, Mozilla, Netscape 7. Алгоритм выполнения, JavaScript-код. PHP-скрипт получения данных из базы.
Подготовка дистрибутива MUI к установке
Microsoft выпустила 6 CD с MUI, на каждом из которых содержится несколько различных языков. CD с MUI не распространяются через розничную сеть, и доступны только корпоративным пользователям.
Дополнительные команды Google
ополнительные команды поисковой машине Google позволяют добиться гораздо лучших результатов. С их помощью можно ограничить область поиска, а также указать поисковой машине, что не нужно просматривать все страницы.
Устройства памяти
Text Graphics Презентацию выполняли Корепанова А Макрушина Т Graphics Устройства Памяти Устройства Памяти - устройства памяти данных, которые используются в компьютерах, чтобы хранить данные. Компьютер имеет много типов устройств памяти данных. Некоторые из них могут быть тематическими категориями как сменные Устройства Памяти данных и другие как не сменные Устройства Памяти данных.
Программированное задание
Команда dir служит Для вывода оглавления каталога Команда cd служит Для изменения текущего каталога Команда copy служит Для копирования файлов Команда type служит
История AMD
Министерство Образования Российской Федерадии Санкт-Петербургский Государственный Технический Университет Факультет Экономики и Менеджмента
Silas Marner 3 Essay Research Paper George
Silas Marner 3 Essay, Research Paper George Eliot’s Silas Marner is an engaging novel intertwining money, sex, and family feuds during the 18th century. The title character is a friendless weaver who cares only for his cache of gold. He is ultimately redeemed through his love for Eppie, an abandoned golden-haired baby girl, whom he discovers shortly after he is robbed and rears as his own child.
King Ramses II Essay Research Paper Ramses
King Ramses II Essay, Research Paper Ramses II Usermaatre Setepenre,third ruler of the 19th Dynasty,was born about 1303 B.C in the Eastern Nile Delta, following the death of his grandfather King Ramses I and Father Sethi I, was one of the longest reigning pharaohs of ancient Egypt.He reigned 67 years (roughly from 1290 to 1224 B.C), during the early part of his reign, Ramses fought to regain the territory in Africa and Western Asia that Egypt had held during the 15th and 16th centuries B.C in the beginning as coregent with his father, and lived for more than 80 years, which was very rare in those days.During his life he made quite a reputation as a builder and a warrior, but also as a ladies man.He had 5 or 6 main wives, mostly of all being Nefertari, but is known to have over 100 children with all of his wives.In Ancient Egypt people seems to have made fun of this fact.
Hobbit Essay Research Paper The main conflict
Hobbit Essay, Research Paper The main conflict in this novel is ultimately the acquisition of the lost treasure of the dwarves hoarded by Smaug (the great dragon under the mountain).
Ufos Essay Research Paper Is there life
Ufos Essay, Research Paper Is there life beyond Earth?: Discovering aliens and UFOs For a while now there have been many UFO sightings around the world and many people have become amazed and astonished by this. Many scientists who study extraterrestrial life have come up with a lot of information that points toward the fact that aliens and UFOs are real.
Buying A Computer Essay Research Paper COSC
Buying A Computer Essay, Research Paper COSC 1401.004 TTH Mrs. Armstrong April 29, 1998 Buying a Computer Choosing the computer components What should I look for? First I will consider of the following components since the are the most important components to in order to help the computer work faster and better. – Processor (MHz)- Memory- CD-ROM Now, we have already established the necessity of a computer, and we have decided where one should go to purchase a computer.
Distributed File Sytsem Essay Research Paper IntroCODA
Distributed File Sytsem Essay, Research Paper Intro CODA is an experimental distributed file system being developed at Carnegie Mellon University. Dr. M. Satyanarayanan heads this group whose purpose is to design and implement a distributed file system that allows for transparent mobile computing in a client server environment.
Buying A Computer Essay Research Paper Buying
Buying A Computer Essay, Research Paper Buying a Computer today is much more complicated then it was ten years ago. The choices we have are abundant, and the information we must gather to make those choices is much greater. The average consumer is a more educated buyer; they at least have some ideas of what they want in a computer.
Microprocessors Essay Research Paper If there is
Microprocessors Essay, Research Paper If there is one piece of technology in this world today that has been through thousands of revolutions and evolutions in the past several decades, it is the computer. The basis of all computers is the microprocessor, which is integrated on the motherboard which functions as the computer s nucleus or brain.
Othello 2
Othello – Iago Hates The Moor Essay, Research Paper Iago has a large appetite for revenge. In his perspective, he believes that it is he who should be in charge, not Othello the moor. This creates an anger in Iago, who entraps Othello in a web of deceit. He does this through a series of suggestions and hesitations that entice and implant images in Othello’s head that lead to his demise.
Microprocessors Essay Research Paper The newest version
Microprocessors Essay, Research Paper The newest version of Transputer architectured chips is the INMOS T-9000, a processor containing 4 serial links, designed to be hooked up to other processors for parallel processing. The instruction set is minimized, as is the Sparc’s RISC design, but is “based on a stack/accumulator design and designed around the OCCAM language”. each chip containing 4 serial links to connect the chips in a network.The T-9000 was an attempt to regain the lead after more recent chips have surpassed previous transputers.
A Tour Of The Pentium Pro Processor
Microarchitecture Essay, Research Paper A Tour of the Pentium Pro Processor Microarchitecture Introduction One of the Pentium Pro processor’s primary goals was to significantly exceed the