[comp.sys.ibm.pc] Need Help w/ IRQ? ISR on HP Vectra

forrest@ga.ecn.purdue.edu (Dave Forrest) (04/11/88)

Hello!

     This group is new to me, so please forgive mistakes.  My problem is
this:  I am doing a project which requires me to use the IRQ interrupts
and I am working on an HP Vectra.  I can get the interrupt installed and
it runs, but when the interrupt terminates, it locks the keyboard up.  
So I'm left sitting in DOS with no keyboard.  What am I missing?
Any help would be appreciated, I'm a bit new to this.
                  
            Dave Forrest

everett@hpcvlx.HP.COM (Everett Kaser) (04/12/88)

I assume (and we all know what that makes out of 'u' and 'me', huh?) that
you're taking over interrupt 9, the keyboard hardware interrupt.  I'm also
assuming that you're saving the old interrupt vector and restoring it before
you return to DOS (unless you're a terminate-stay-resident, of course).
You see, there are many questions about your situation that makes an answer
difficult.  However, here is the skeleton of an ISR that I've used that might
help.
;
int9isr:
	push	ax
	push	bx
	push	cx
	push	dx
	push	si
	push	di
	push	bp
	push	ds
	push	es

	in	al,60h			; get keyboard data byte
;
; at this point test the scan code in AL for a value that you want, or do
; whatever with it that you do.
; then,
;
	in	al,61h			; reset keyboard
	mov	ah,al
	or	al,80h
	out	61h,al
	xchg	ah,al
	out	61h,al

	mov	al,20h			; send End-Of-Interrupt command to
	out	20h,al			;    the interrupt controller

	pop	es
	pop	ds
	pop	bp
	pop	di
	pop	si
	pop	dx
	pop	cx
	pop	bx
	pop	ax
	iret
;
;
I hope that this helps.

Everett Kaser
!hplabs!hp-pcd!everett

jack@csccat.UUCP (Jack Hudler) (04/13/88)

In article <358@ga.ecn.purdue.edu> forrest@ga.ecn.purdue.edu (Dave Forrest) writes:
> I am doing a project which requires me to use the IRQ interrupts
>and I am working on an HP Vectra.  I can get the interrupt installed and
>it runs, but when the interrupt terminates, it locks the keyboard up.  

You didn't say what interrupt you were using.. I assume it's has to
do with the keyboard interrupt, are you just hooking into the interrupt
or are you attempting to service it your self and forget the other guys
down the line. With out knowing more I would say you are not issuing 
the Non-specific Interrupt Clear to the 8059 but that about all I can
say.
Be more specific about what you are tring to do here.. Interrupts on
the PC machines are screwed up at best (for those of you that
don't think so, try messing with the EGA interrupt).

				Jack Hudler


-- 
See above 	 (214)661-8960