[syslinux] Completely disable local keyboard input in Syslinux / Extlinux?

Alexander Foken alexander at foken.de
Wed Jun 8 14:23:17 PDT 2011


Hello list,

On 07.06.2011 07:09, Alexander Foken wrote:
> On 06.06.2011 19:20, H. Peter Anvin wrote:
>> The other option is to edit the source and remove the calls to the
>> keyboard (INT 16h.)
>
> That's what I wanted to avoid.
>

I've looked into the Syslinux 4.04 sources, and into the good old 
interrupt list by Ralf Brown (<URL:http://www.ctyme.com/rbrown.htm>), 
and I found out that Syslinux calls INT 0x16 AH=0x10 and AH=0x11 
*without* checking that these functions are actually implemented by the 
BIOS. The check function INT 0x16 AH=0x09 
(<URL:http://www.ctyme.com/intr/rb-1769.htm>) returns AL=0x00 for the 
BIOS on the problematic machine, i.e. they are *NOT* supported.

My hacked Syslinux has all calls to INT 0x16 AH=0x10 replaced with 
AH=0x00, and AH=0x11 replaced with AX=0x01. I have modified just five 
modified lines, see the attached patch. With these modifications, and 
with relying on the BIOS redirection as proposed by Geert Stappers, 
Syslinux behaves as expected.

I don't quite understand why Syslinux has to use the extended functions. 
As far as I remember from the times I hacked DOS apps, the only 
difference between the 0x0X and the 0x1X functions is that the latter 
can see a differnce between the separate cursor keys (plus the main 
"enter" key) and the cursor key functions (and the enter key) of the 
numeric block. I don't think Syslinux needs to know that difference, and 
it could work quite well with the 0x0X functions. Or at least, it should 
check AL after calling INT 0x16 AH=0x09 before calling the 0x1X functions.

Alexander


-- 
Alexander Foken
mailto:alexander at foken.de  http://www.foken.de/alexander/

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: changes.diff
URL: <http://www.zytor.com/pipermail/syslinux/attachments/20110608/6e6a41a9/attachment.ksh>


More information about the Syslinux mailing list