aboutsummaryrefslogtreecommitdiff
path: root/src/disk.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2008-12-26 23:50:17 -0500
committerKevin O'Connor <kevin@koconnor.net>2008-12-26 23:50:17 -0500
commit4d7c37e12ef4ceb6903dd76ee700beb99fbf5f8e (patch)
tree775ea50649f399752e929bd7cdcdc14e42a548c6 /src/disk.c
parent4735877249b30502e4c816bf1dc1a2c0e16be68e (diff)
downloadseabios-hppa-4d7c37e12ef4ceb6903dd76ee700beb99fbf5f8e.zip
seabios-hppa-4d7c37e12ef4ceb6903dd76ee700beb99fbf5f8e.tar.gz
seabios-hppa-4d7c37e12ef4ceb6903dd76ee700beb99fbf5f8e.tar.bz2
Support a relocatable ebda segment.
Some option roms will try to relocate the ebda. Also fix an apparent typo in the assignment of ivecs[0x46].
Diffstat (limited to 'src/disk.c')
-rw-r--r--src/disk.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/disk.c b/src/disk.c
index 23501ff..da12d39 100644
--- a/src/disk.c
+++ b/src/disk.c
@@ -409,7 +409,7 @@ disk_1348(struct bregs *regs, u8 device)
SET_INT13DPT(regs, size, 30);
- SET_INT13DPT(regs, dpte_segment, SEG_EBDA);
+ SET_INT13DPT(regs, dpte_segment, GET_BDA(ebda_seg));
SET_INT13DPT(regs, dpte_offset
, offsetof(struct extended_bios_data_area_s, ata.dpte));
@@ -453,7 +453,7 @@ disk_1348(struct bregs *regs, u8 device)
SET_EBDA(ata.dpte.reserved, 0);
SET_EBDA(ata.dpte.revision, 0x11);
- u8 *p = MAKE_FARPTR(SEG_EBDA
+ u8 *p = MAKE_FARPTR(GET_BDA(ebda_seg)
, offsetof(struct extended_bios_data_area_s, ata.dpte));
SET_EBDA(ata.dpte.checksum, -checksum(p, 15));