Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.os.msdos.programmer > #737

Re: INT 09h hooking issues

From pete@nospam.demon.co.uk
Newsgroups comp.os.msdos.programmer
Subject Re: INT 09h hooking issues
Date 2012-08-12 07:18 +0000
Organization PDL
Message-ID <1344755920snz@nospam.demon.co.uk> (permalink)
References (4 earlier) <c1.2b8.3Wt711$04c@NOVOSAD3.EMBARQ.COM> <k01jce$jvs$1@speranza.aioe.org> <2bb5ac1d-d9b1-43ec-9a27-a634fdd3c0b8@googlegroups.com> <k02gfo$jlj$1@speranza.aioe.org> <ed0143f4-3e00-4ee5-a3f1-502f78abe86e@googlegroups.com>

Show all headers | View raw


In article <ed0143f4-3e00-4ee5-a3f1-502f78abe86e@googlegroups.com>
           jacks.1785@gmail.com "jacks" writes:

> On Friday, August 10, 2012 1:56:42 PM UTC+5:30, Rod Pemberton wrote:
> 
> > From what I've read, an Int 15h, AH=04Fh routine should work for you.
> > Supposedly, Int 15h, AH=04Fh processes keystrokes _before_ the Int 09h
> > routine.  I.e., PAUSE shouldn't halt in Int 15h or Int 09h, if it's been
> > removed by your Int 15h, AH=04Fh routine...
> 
> No, NOT ALL PCs, support INT 15h service 4Fh. None of the PCs, I have 
> tested even invoke INT 15h, whenever a key is pressed.

I find that astonishing; *every* pc that I have used since the late 
1980s has supported int15/4F.  Have you tried running code other than 
your own to test it?  For example, there is a TSR called CAPSCTRL that 
has been around for 20+ years which uses int15/4F to make the CapsLock 
key into a Ctrl key.  The code for this is tiny, so I enclose it here 
in case it's difficult to locate on the www.  Assemble and run this 
code; I'd be extremely surprised if it does not work, i.e. that 
int15/4F is not supported in your bios.

------- code begin -------
;         From:  Hess@MIT-Multics.ARPA
;
;         CapsCtrl.asm
;
;         This tiny tsr makes the "caps-lock" key act like the "Ctrl" key on
;         the IBM 101-key keyboards.
;         To get a real caps-lock, type shift+caps-lock.
;
;         Warning: this one MUST be loaded before any other TSR's that replace
;         the keyboard BIOS call!
;
code_seg  segment
          assume  CS:code_seg
          org     100H

old_int   label dword
begin:    jmp     short init
          dw 0
upcode    db 80H+3AH

; Int 15H points here:
bint:     cmp       AH,4FH              ; is this the "bios" keyboard interrupt?
          jnz       bint0               ; no, act normal.
          cmp       AL,3AH              ; is it the "caps-lock" key
          je        bint1
          cmp       AL,80H+3AH          ; is it the "release" key?
          jne       bint0
          xchg      al,upcode
          jmp       short bint2
bint0:    jmp       [old_int]
bint1:    push      ES
          push      AX
          xor       AX,AX
          mov       ES,AX
          test      byte ptr ES:[417H],1011B ; see if Alt or Shift
          pop       AX
          pop       ES
          jnz       bint0
          mov       AL,1DH              ; turn into ctrl key
          mov       upcode,80H+1DH      ; set for next call
bint2:    stc                           ; tell "bios" to use this new code
          iret

;--- end of TSR portion ---

     assume CS:code_seg,DS:code_seg
init:     xor       AX,AX
          mov       ES,AX
          mov       AX,ES:[54H]; copy old int pointer
          mov       word ptr old_int,AX
          mov       AX,ES:[56H]
          mov       word ptr old_int[2],AX
          cli
          mov       AX,offset bint
          mov       ES:[54H],AX
          mov       AX,CS
          mov       ES:[56H],AX
          sti
          mov       DX,offset init
          int       27H

code_seg  ends

     end begin

------- code end -------

Please report back how you get on...
Pete
-- 
Believe those who are seeking the truth.
Doubt those who find it.  -  André Gide

Back to comp.os.msdos.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

INT 09h hooking issues jacks <jacks.1785@gmail.com> - 2012-08-08 07:52 -0700
  Re: INT 09h hooking issues "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-08-08 20:49 -0400
    Re: INT 09h hooking issues pete@nospam.demon.co.uk - 2012-08-09 05:32 +0000
      Re: INT 09h hooking issues "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-08-09 04:39 -0400
        Re: INT 09h hooking issues Bogus@Embarq.com (Steve) - 2012-08-09 11:44 +0000
          Re: INT 09h hooking issues "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-08-09 20:09 -0400
            Re: INT 09h hooking issues jacks <jacks.1785@gmail.com> - 2012-08-09 23:20 -0700
              Re: INT 09h hooking issues "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-08-10 04:26 -0400
                Re: INT 09h hooking issues Bogus@Embarq.com (Steve) - 2012-08-10 12:08 +0000
                Re: INT 09h hooking issues jacks <jacks.1785@gmail.com> - 2012-08-11 23:10 -0700
                Re: INT 09h hooking issues pete@nospam.demon.co.uk - 2012-08-12 07:18 +0000
                Re: INT 09h hooking issues "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-08-12 04:29 -0400
                Re: INT 09h hooking issues jacks <jacks.1785@gmail.com> - 2012-08-14 05:40 -0700
                Re: INT 09h hooking issues Jim Leonard <MobyGamer@gmail.com> - 2012-08-14 08:29 -0700
                Re: INT 09h hooking issues jacks <jacks.1785@gmail.com> - 2012-08-15 20:14 -0700
                Re: INT 09h hooking issues jacks <jacks.1785@gmail.com> - 2012-08-14 05:30 -0700
                Re: INT 09h hooking issues "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-08-12 04:01 -0400
        Re: INT 09h hooking issues pete@nospam.demon.co.uk - 2012-08-10 05:27 +0000
      Re: INT 09h hooking issues jacks <jacks.1785@gmail.com> - 2012-08-09 08:41 -0700
        Re: INT 09h hooking issues "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-08-09 19:54 -0400
          Re: INT 09h hooking issues jacks <jacks.1785@gmail.com> - 2012-08-10 00:11 -0700
            Re: INT 09h hooking issues "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-08-10 04:27 -0400

csiph-web