projects
/
bootcensus
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed bug in boot2.s: when booting from floppy, the motor would keep
[bootcensus]
/
src
/
boot
/
boot2.s
diff --git
a/src/boot/boot2.s
b/src/boot/boot2.s
index
bf81487
..
5aeebaa
100644
(file)
--- a/
src/boot/boot2.s
+++ b/
src/boot/boot2.s
@@
-230,7
+230,7
@@
ldloop:
# just in case we were loaded from floppy, turn all floppy motors off
mov $0x3f2, %dx
in %dx, %al
# just in case we were loaded from floppy, turn all floppy motors off
mov $0x3f2, %dx
in %dx, %al
- and $0xf0, %al
+ and $0xf, %al
out %al, %dx
mov $10, %ax
out %al, %dx
mov $10, %ax
@@
-766,6
+766,7
@@
saved_ebp: .long 0
saved_eax: .long 0
saved_es: .word 0
saved_ds: .word 0
saved_eax: .long 0
saved_es: .word 0
saved_ds: .word 0
+saved_flags: .word 0
# drop back to unreal mode to call 16bit interrupt
.global int86
# drop back to unreal mode to call 16bit interrupt
.global int86
@@
-827,6
+828,9
@@
int_op: int $0
mov %eax, saved_eax
mov %ds, saved_ds
mov %es, saved_es
mov %eax, saved_eax
mov %ds, saved_ds
mov %es, saved_es
+ pushfw
+ pop %ax
+ mov %ax, saved_flags
# re-enable protection
mov %cr0, %eax
# re-enable protection
mov %cr0, %eax
@@
-851,7
+855,8
@@
int_op: int $0
pushw %ax
mov saved_es, %ax
pushw %ax
pushw %ax
mov saved_es, %ax
pushw %ax
- pushfw
+ mov saved_flags, %ax
+ pushw %ax
mov saved_eax, %eax
pushal
mov saved_esp, %esp
mov saved_eax, %eax
pushal
mov saved_esp, %esp