panda antivirus, Архиваторы, avast 4 professional, avast 4 server, avast antivirus, .

simplecompproj.narod.ru

 
 На сайте
   Главная
   Links

 Разделы
avast 4 home
panda antivirus
avast 4.7
програмное обеспечение
asplinux deluxe
архиватор winzip
panda activescan
резервное копирование файлов
panda
avast 4 professional
русско английский словарь
 Главная  Links
{img1} avast edition
PRINT.COM решает эту проблему пе- ресылкой EOI в свой int 1Сh ISR. Альтернативной стратегией является перехват int 8. Новая int 8 ISR сразу вызывает старую ISR, которая посылает EOI контроллеру прерываний перед возвращением.
операционная система windows
{img2} panda
ISR, приведенная на листинге 4-8 работает вместе с приведенной на листинге 4-7. Если горячий ключ не обработан, или если с последней активации прошла 1 секунда, то для реактивации TSRint 8 ISR вызывает BKGResume. Листинг 4-8.
avast 4 server
{img3} win zip
Пример замены прерывания по времени ISR int 8 ---------------------------------------------------------------- OldInt8 DD 0 ; сохранение кода инициализации ; начальный адрес ISR int 8 BusyFlag DB -1 ; запрет прерывания ; нереентерабельная секция ; программы PopupPending DB 0 ; не 0, если встретилась нажатая клавиша Ticks DB 18 ; выполняется один раз в секунду Int8ISR PROC FAR NewInt8: pushf ;;; моделирование прерывания call cs:OldInt8 ;;; посылка кода ROM cli ;;; не является необходимым cmp cs:PopPending,0 ;;; ожидание запроса выборки? jnz i8_0 ;;; если не 0 - да cmp cs:Ticks,0 ;;; счетчик тактов = 0? jz i 8_0 ;;; если 0 - да dec cs:Ticks ;;; иначе - уменьшение его jnz Int9Exit1 ;;; если еще не 0 - продолжение 8_0 call DOSSafeCheck ;;; OS не испорчена? jc Int8Exit0 ;;; если c - нет - 4-15 - ;;; заметим, что отметка времени ;;; остается на 0, попытаемся ;;; сохранить для передачи ;;; каждую отметку call BKGResume ; передача фоновой программе mov cs:Ticks,18 ; сброс счетчика Int8Exit0: dec cs:BusyFlaag ; закрыть Int8Exit1: iret ; возврат Int8ISR ENDP ---------------------------------------------------------------- Управление отображением на экране Учитывая ранее приведенные ограничения в сервисе видео ROM-BIOS, для непосредственного управлении аппаратурой отображе- ния на экран часто требуется TSR. Прямое чтение и запись на эк- ран ускоряют процесс переключения дисплеев, когда горячий ключ активизирует TSR, устраняет проблему, связанную с изменением меж- ду текстовым и и графическим режимами, может уменьшить прямой доступ к контроллеру 6845 CRT. ----------------------------------------------------------------- ПРЕДУПРЕЖДЕНИЕ: Прямой доступ к аппаратуре отображения может быть опасен. Ошибка при такой обработке может разрушить Ваш монитор. ----------------------------------------------------------------- Перед тем, как попытаться программировать дисплей, надо себе представлять, как он работает.
asplinux 11

GPS-навигатор

panda antivirus, Архиваторы, avast 4 professional, avast 4 server, avast antivirus, .
 

panda activescan

Ниже Вы увидите,что Вы не можете обеспечить безопасность прерывания некоторых команд DOS'а. Одной из претензий написанной - 4-13 - TSR является снятие этих ограничений. В этом примере новая ISR выполняется каждый раз, когда горя- чий ключ нажат или опущен. Сначала она вызывает старую ISR клави- атуры для считывания и обработки сканируемого кода клавиатуры. Новая TSR проверяет переменную PgmState, поддерживаемую TSR, для определения, является ли TSR программой переднего плана. Если TSR выполняется не в переднем плане и ISR распознает горячий ключ, она попытается вызвать TSR в передний план. Если TSR в данный мо- мент работает в переднем плане, то прерывание дальнейшей обработ- ки не потребует. Если биты состояния клавиатуры,соответствующие горячему клю- чу, установлены, ISR добавляет флаг ожидания (Popup Pending) и проверяет возможность безопасного вызова TSR в передний план. Механизм этого процесса описывает раздел "Реактивация, архи- тектура DOS и сервис". Если безопасность обеспечена, то чтобы ре- активировать TSR, ISR вызывает BKGResume. DOSSafe добавляет BusyFlag, предупреждающий повторный запуск TSR; перед возвращением к прерванной программе ISR должна эту переменную восстановить. Листинг 4-7. Пример замены ISR клавиатуры ---------------------------------------------------------------- FGCombo EQU KB_M_Alt OR KB_M_LShift BKG_C_FG EQU 1 BKG_C_BG EQU 2 BIOS SEGMENT at 40h ORG 17h KB_B_Flag DB 0 BIOS ENDS _text SEGMENT BYTE PUBLIC 'code'- PgmState DB 0 BusyFlag DB -1 ; запрет прерывания ; нереентерабельная часть программы OldInt9 DD 0 ; сохранение первоначальной ISR int9 PopupPending DB 0 ; приращение, если запрос не ; может быть обслужен ASSUME ds:NOTHING Int9ISR PROC FAR NewInt9: pushf ;;; моделирование прерывания call cs:OldInt9 ;;; вызов первоначальной ISR cmp cs:PgmState,BKG_C_BG ;;; фоновая программа? jz i9_0 ;;; если z - да iret ;;; не выбирать из стека, если нет pushr ;;; доступ к B_Flag mov ax,SEG BIOS mov ds,ax ASSUME ds:BIOS mov al,KB_B_Flag;;; al <== текущие флаги KB and al,FGCombo ;;; маска всех ненужных битов cmp al,FGCombo ;;; запрошена выборка из стека? popr - 4-14 - ASSUME ds:NOTHING jnz Int9Exit1 ;;; если NZ - нет запроса ;;; выборки из стека inc cs:PopupPending ;;; выборка из стека запрошена call DOSSafeCheck ;;; можно ее делать? jc Int9Exit0 ;;; если с - нет call BKGResume ; вызов приоритетной программы Int9Exit0: dec cs:BusyFlag ; выпуск программы Int9Exit1: iret ; отмена прерывания Int9ISR ENDP _text ENDS ---------------------------------------------------------------- Альтернатива для перехвата Int 1Сh Важно заметить, что ISR Int 1Сh вложена в ISR Int 8, так как прерывание по времени имеет высший приоритет; никакие прерывания не обслуживаются, пока контроллер прерываний не получит EOI (ко- нец прерывания). Любые команды, которые зависят от прерываний, не будут работать. Другой потенциальной проблемой является то, что DOS будет терять такты таймера, если он будет слишком долго путе- шествовать по цепочке int 1Сh.


avast pro


 



Caa?ocea ...
 

CNews: Новости | e-Business | Hi-Tech | Telecom List.ru - каталог ресурсов интернет Directrix џ­¤ҐЄб жЁвЁа®ў ­Ёп
Сайт управляется системой uCoz