Shao Miller
2009-Nov-20 01:20 UTC
[PATCH] memdisk: Restore DL for INT 13h, AH=15h, DL=floppy
At least PC-DOS requires this to avoid an infinite loop --- memdisk/memdisk.inc | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/memdisk/memdisk.inc b/memdisk/memdisk.inc index 98ad52b..a37218b 100644 --- a/memdisk/memdisk.inc +++ b/memdisk/memdisk.inc @@ -174,7 +174,9 @@ Int13Start: cmp byte [cs:SavedAX+1],08h ; Get drive params function? je .norestoredl ; DL = number of drives cmp byte [cs:SavedAX+1],15h ; Get disk type function? - je .norestoredl ; CX:DX = size of device + jne .restoredl + test byte [bp+4],80h ; Hard disk? + jnz .norestoredl ; CX:DX = size of device .restoredl: mov dl,[bp+4] .norestoredl: -- 1.5.6.3 --------------050707070402050101020105--
Shao Miller
2009-Nov-20 01:34 UTC
[syslinux] [PATCH] memdisk: Restore DL for INT 13h, AH=15h, DL=floppy
At least PC-DOS requires this to avoid an infinite loop
---
memdisk/memdisk.inc | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/memdisk/memdisk.inc b/memdisk/memdisk.inc
index 98ad52b..a37218b 100644
--- a/memdisk/memdisk.inc
+++ b/memdisk/memdisk.inc
@@ -174,7 +174,9 @@ Int13Start:
cmp byte [cs:SavedAX+1],08h ; Get drive params function?
je .norestoredl ; DL = number of drives
cmp byte [cs:SavedAX+1],15h ; Get disk type function?
- je .norestoredl ; CX:DX = size of device
+ jne .restoredl
+ test byte [bp+4],80h ; Hard disk?
+ jnz .norestoredl ; CX:DX = size of device
.restoredl:
mov dl,[bp+4]
.norestoredl:
--
1.5.6.3
- Shao Miller
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 0001-memdisk-Restore-DL-for-INT-13h-AH-15h-DL-floppy.patch
URL:
<http://www.zytor.com/pipermail/syslinux/attachments/20091119/7dff6c98/attachment.ksh>