summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mbr/mbr.S12
1 files changed, 4 insertions, 8 deletions
diff --git a/mbr/mbr.S b/mbr/mbr.S
index 304557b7..e0d42d6e 100644
--- a/mbr/mbr.S
+++ b/mbr/mbr.S
@@ -109,7 +109,6 @@ next:
missing_os:
call error
.ascii "Missing operating system.\r\n"
- .byte 0
/*
* read_sector: read a single sector pointed to by %eax to 0x7c00.
@@ -249,7 +248,6 @@ scan_partition_table:
too_many_active:
call error
.ascii "Multiple active partitions.\r\n"
- .byte 0
/*
* boot: invoke the actual bootstrap. (%si) points to the partition
@@ -273,7 +271,6 @@ boot:
disk_error:
call error
.ascii "Operating system load error.\r\n"
- .byte 0
/*
* Print error messages. This is invoked with "call", with the
@@ -283,14 +280,13 @@ error:
popw %si
2:
lodsb
- andb %al, %al
- jz 3f
movb $0x0e, %ah
movb (BIOS_page), %bh
movb $0x07, %bl
- int $0x10
- jmp 2b
-3:
+ int $0x10 /* May destroy %bp */
+ cmpb $10, %al /* Newline? */
+ jne 2b
+
int $0x18 /* Boot failure */
die:
hlt