X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=bootcensus;a=blobdiff_plain;f=src%2Fboot%2Fboot2.s;h=5aeebaa66a0e54dd2c043bbec8620a808d5c8c32;hp=bf814871b70cb238f4130b367eb986cd1caf6cc2;hb=6ddbba6fc0185f6aaf64c661c303549eb088010f;hpb=9c8fab227bf5da62f78bbd3da62aa9ff941c6239 diff --git a/src/boot/boot2.s b/src/boot/boot2.s index bf81487..5aeebaa 100644 --- 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 - and $0xf0, %al + and $0xf, %al 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_flags: .word 0 # 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 + pushfw + pop %ax + mov %ax, saved_flags # re-enable protection mov %cr0, %eax @@ -851,7 +855,8 @@ int_op: int $0 pushw %ax mov saved_es, %ax pushw %ax - pushfw + mov saved_flags, %ax + pushw %ax mov saved_eax, %eax pushal mov saved_esp, %esp