Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ??!!  Ctrl-PrScr, пойму... срочно нуждаюсь в помощи! 
:(
    Опции темы
Zigmund
  Дата 3.6.2002, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 27.4.2002

Репутация: нет
Всего: нет



Здрасте всем!
Я очень нуждаюсь в Вашей срочной помощи!

Объясните пожалуйста, зачем нужна комбиначия клавиш Crtl-PrScr в ДОСе?
Что за моменты она обрабатывает? Работа с AUX?

Фунцкии чтения драйвера консоли зачемто анализируют нажатие именно этой комбинации, и после ее обнаружения выдают как результат 16 (10h)...
прилагаю фрагмент кода:

;************************************************************************
;* *
;* chrin - input single char from keyboard into al *
;* *
;*  we are going to issue extended keyboard function, if *
;*  supported.  the returning value of the extended keystroke *
;*  of the extended keyboard function uses 0e0h in al *
;*  instead of 00 as in the conventional keyboard function. *
;*  this creates a conflict when the user entered real *
;*  greek alpha charater (= 0e0h) to  distinguish the extended *
;*  keystroke and the greek alpha.  this case will be handled *
;*  in the following manner: *
;* *
;*      ah = 16h *
;*      int 16h *
;*      if al == 0, then extended code (in ah) *
;*      else if al == 0e0h, then *
;*      if ah <> 0, then extended code (in ah) *
;* else greek_alpha character. *
;* *
;* also, for compatibility reason, if an extended code is *
;*  detected, then we are going to change the value in al *
;*  from 0e0h to 00h. *
;* *
;************************************************************************


chrin proc near
assume ds:Bios_Data,es:nothing

mov ah,keyrd_func ; set by msinit. 0 or 10h
xor al,al
xchg al,altah ;get character & zero altah

or al,al
jnz keyret

int 16h ; do rom bios keyrd function

alt10:
or ax,ax ;check for non-key after break
jz chrin

cmp ax,7200h ;check for ctrl-prtsc
jnz alt_ext_chk

mov al,16
jmp short keyret

alt_ext_chk:

;**************************************************************
;  if operation was extended function (i.e. keyrd_func != 0) then
;    if character read was 0e0h then
;      if extended byte was zero (i.e. ah == 0) then
; goto keyret
;      else
; set al to zero
; goto alt_save
;      endif
;    endif
;  endif

cmp byte ptr keyrd_func,0
jz not_ext
cmp al,0e0h
jnz not_ext

or ah,ah
jz keyret
ifdef DBCS
ifdef   KOREA                           ; Keyl  1990/11/5
       cmp     ah, 0f0h                ; If hangeul code range then
       jb      EngCodeRange1           ; do not modify any value.
       cmp     ah, 0f2h
       jbe     not_ext
EngCodeRange1:
endif ; KOREA
endif ; DBCS
xor al,al
jmp short alt_save

not_ext:

or al,al ;special case?
jnz keyret

alt_save:
mov altah,ah ;store special key
keyret:
ret
chrin endp
PM MAIL   Вверх
dostamax
Дата 17.7.2002, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 16.7.2002
Где: Donetsk

Репутация: нет
Всего: нет



Vpolne vozmogno no ja ne uveren.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0859 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.