Re: [PATCH] Use BIOS Keyboard variable to set Numlock

Bodo Eggert
2007-07-12T01:42:29Z

On Wed, 11 Jul 2007, H. Peter Anvin wrote:
> Bodo Eggert wrote:

> > Instead of the byte at 0x497 as suggested in that thread, I'm using the
> > byte at 0x417, which reflects the intended LED state. In order to change
> > the keyboard LED, DOS programs would change this byte and call INT 5
> > (which is the keyboard software interrupt).
> >
>
> 0x417 is actually the current keyboard modifier state, which is the
> right thing to use.

exactly.

> Presumably you meant INT 9 (IRQ 1), not INT 5 which is the print screen
> interrupt (also used by the CPU for BOUND error, which has some amusing
> consequence if anyone ever used the BOUND instruction in DOS.)

I meant int 0x16:
mem[0x40:0x17] |= 0x20;
ah = 1;
int 0x16;

> That being said, one could argue that since this is a BIOS interface it
> should be queried via INT 16h, AH=02h and stuffed in the zeropage
> structure. This would also solve the issue of it not being supported by
> non-BIOS firmware.

This is an interesting option, but it's more invasive. I'd rather like a
feedback saying we can depend on that data area to be there.
--
Top 100 things you don't want the sysadmin to say:
64. Do you really need your home directory to do any work?