aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2007-12-18 14:28:13 -0800
committerH. Peter Anvin <hpa@zytor.com>2007-12-18 14:28:13 -0800
commitcbcc195e1ac4d7b4f4c3a37b51fa3c58db14269b (patch)
tree91bf06851549a17e9458a5fccae5c3b63106748f
parent019632dea32d93a070596ee796fb33fbf83cd6f6 (diff)
downloadsyslinux-elf-cbcc195e1ac4d7b4f4c3a37b51fa3c58db14269b.tar.gz
syslinux-elf-cbcc195e1ac4d7b4f4c3a37b51fa3c58db14269b.tar.xz
syslinux-elf-cbcc195e1ac4d7b4f4c3a37b51fa3c58db14269b.zip
Higher confidence in the harmlessness of the ADV codesyslinux-3.60-pre5
Make more sure that the ADV code is harmless when the current derivative doesn't support it.
-rw-r--r--adv.inc8
1 files changed, 6 insertions, 2 deletions
diff --git a/adv.inc b/adv.inc
index 03869514..7eca4b56 100644
--- a/adv.inc
+++ b/adv.inc
@@ -298,11 +298,15 @@ adv_write:
je .bad
cmp dword [ADVSec1],0
je .bad
+ cmp byte [ADVDrive],-1
+ je .bad
+
push ax
call adv_cleanup
mov ah,3 ; Write
call adv_read_write
pop ax
+
clc
ret
.bad: ; No location for ADV set
@@ -470,12 +474,12 @@ adv_read_write:
section .data
align 4, db 0
+ADVSec0 db 0 ; Undefined
+ADVSec1 db 0 ; Undefined
ADVDrive db -1 ; No ADV defined
section .bss
alignb 4
-ADVSec0 resd 1
-ADVSec1 resd 1
ADVSecPerTrack resw 1
ADVHeads resw 1
ADVOp resb 1