[freeldr]
authorGabriel Ilardi <gabrielilardi@hotmail.it>
Sat, 31 Jul 2010 21:00:40 +0000 (21:00 +0000)
committerGabriel Ilardi <gabrielilardi@hotmail.it>
Sat, 31 Jul 2010 21:00:40 +0000 (21:00 +0000)
commit04dc5e3fce26dc0be0add3926b0b3c682b60465a
tree05290f9842f63b2ad4c3b4d1ea28c4ce30949cea
parenta5101cce2597159ba3a439ffcca2b44367028938
[freeldr]
- Patch by Carlo Bramini reviewed by lassy:
The CF must be tested when reading time because the legacy DS12x87
chip shows a condition where it's updating its time registers and if it's the
case then the call should be retried later. Now the time is valid when both CF flags for date and time are good at the same time.
It's better to send the correct value of CF with the proper field to the REGS structure instead of hoping that the flag won't be changed by compiled code.
In the Int386() function I did the fix for acquiring the status flags to send to the software interrupt.
I also think it is also a good idea to always clear the direction flag before
doing movsb/movsw/movsd in this function. Since we are working with DOS stuff,
the state of the direction register could be unknown, who knows what happens
after those INT opcodes. Afterall I don't think that adding these two "cld"
would be a big problem.
See issue #2786 for more details.

svn path=/trunk/; revision=48383
reactos/boot/freeldr/freeldr/arch/i386/int386.S
reactos/boot/freeldr/freeldr/arch/i386/pcrtc.c
reactos/boot/freeldr/freeldr/include/arch.h