-----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-----