[syslinux] Broken BIOS time

Mr E_T troll at arach.net.au
Sun Jun 27 18:09:30 PDT 2004


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I have a BIOS that has a broken timer.

I think tho that the user tick interrupt 1ch works.

I was trying to write four functions in assembler to fix the problem.
new_timer
check_timer
install_timer
uninstall_timer

The check timer was going to simply get the value of BIOS_timer use int 15h function 86h to sleep 1 tick then
compare the two values. If they were different then the timer is OK.

the new_timer was simply going to increment a variable. 

the install function was going to install the new_timer into the vector table and change the value of 
BIOS_timer to point to my new variable.

the uninstall function would have undone this.

My problem is threefold.
First its been a long time since I have done assembler - and I was taught under real mode.

Second I cant quite figure out where to put the uninstall function in the pxelinux code. I think that it should
unload b4 calling ANY image. and be reloaded if being set back to the command prompt.

Third I cant figure out if the interrupt should be chained in real or protected mode. I also have no experience in
chaining protected mode interupts. ( also would it be preferable to use ax style or eax style ?)

I need the timer fixed as pxelinux uses the timers to get keyboard input. - also under this BIOS it hangs forever.

The int 15h function 86h wait works as the complex menu timer works.

I hope that this fix will work (If it doesn't then the only thing I can think of will be to use the programmable clock).

Any help would be appreciated.
- -- 
regs MR E_T
_______________________
\                      \
  \   OOHH I hate TYPOS  \
    \                      \
      ~~~~~~~~~~~~~~~~~~~~~~~
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQFA32/WPBbX35pvTSgRAkACAKCjorLpdNxltcs5hDb48bi0SkcSGwCfXzAv
cCGtOuyhiUIyzGou2ujR6F4=
=LDtq
-----END PGP SIGNATURE-----




More information about the Syslinux mailing list