summaryrefslogtreecommitdiff
path: root/comboot.inc
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2007-11-14 20:51:23 -0800
committerH. Peter Anvin <hpa@zytor.com>2007-11-14 20:51:23 -0800
commit2c2fed8305e2cf52c27d8a5c1fd5b5982f541711 (patch)
treeed39fedc95bdb7f26b748ed1d1d7943465de4665 /comboot.inc
parentd2520f1b46d08fe2879a93c81973df67834fea17 (diff)
downloadsyslinux-2c2fed8305e2cf52c27d8a5c1fd5b5982f541711.tar.gz
Preserve ES:DI instead of probing for $PnPsyslinux-3.53-pre5
The $PnP probe has been found to lock up at least one machine for reasons unknown. Drop it; instead, burn the extra few bytes in the bootsector to save away ES:DI for later restore.
Diffstat (limited to 'comboot.inc')
-rw-r--r--comboot.inc21
1 files changed, 12 insertions, 9 deletions
diff --git a/comboot.inc b/comboot.inc
index 33414bc4..2c1c8826 100644
--- a/comboot.inc
+++ b/comboot.inc
@@ -460,13 +460,7 @@ comapi_pxecall equ comapi_err ; Not available
;
comapi_derinfo:
mov P_AL,my_id
-%if IS_SYSLINUX || IS_MDSLINUX || IS_EXTLINUX
- mov al,[DriveNumber]
- mov P_DL,al
- mov P_ES,cs
- mov P_BX,PartInfo
- mov P_CL,SECTOR_SHIFT
-%elif IS_PXELINUX
+%if IS_PXELINUX
mov ax,[APIVer]
mov P_DX,ax
mov ax,[StrucPtr]
@@ -477,12 +471,21 @@ comapi_derinfo:
mov P_SI,ax
mov ax,[InitStack+2]
mov P_FS,ax
-%elif IS_ISOLINUX
+%else
+ ; Physical medium...
+
+ mov P_CL,SECTOR_SHIFT
mov al,[DriveNumber]
mov P_DL,al
+ mov P_FS,cs
+ mov P_SI,OrigESDI
+%if IS_SYSLINUX || IS_MDSLINUX || IS_EXTLINUX
+ mov P_ES,cs
+ mov P_BX,PartInfo
+%elif IS_ISOLINUX
mov P_ES,cs
mov P_BX,spec_packet
- mov P_CL,SECTOR_SHIFT
+%endif
%endif
clc
ret