diff options
author | hpa <hpa> | 2005-08-23 20:52:43 +0000 |
---|---|---|
committer | hpa <hpa> | 2005-08-23 20:52:43 +0000 |
commit | a4c0c06c9fad14b5af79a570e61335ac7ef74dff (patch) | |
tree | ccd8945c499c1ae27296f2c1e8dd5a8b8b4fc92f | |
parent | 9edb4d65029c36318601762268b9e2c0e0d4cb79 (diff) | |
download | syslinux-a4c0c06c9fad14b5af79a570e61335ac7ef74dff.tar.gz |
Revert change to searchdir; document BX and CX trashed.
-rw-r--r-- | isolinux.asm | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/isolinux.asm b/isolinux.asm index f488dba0..a843b478 100644 --- a/isolinux.asm +++ b/isolinux.asm @@ -9,7 +9,7 @@ ; available. It is based on the SYSLINUX boot loader for MS-DOS ; floppies. ; -; Copyright (C) 1994-2004 H. Peter Anvin +; Copyright (C) 1994-2005 H. Peter Anvin ; ; This program is free software; you can redistribute it and/or modify ; it under the terms of the GNU General Public License as published by @@ -1167,25 +1167,23 @@ local_boot: ; If unsuccessful ; ZF set ; - +; Assumes CS == DS == ES, and trashes BX and CX. ; ; searchdir_iso is a special entry point for ISOLINUX only. In addition ; to the above, searchdir_iso passes a file flag mask in AL. This is useful ; for searching for directories. ; -searchdir_iso.alloc_failure: +alloc_failure: xor ax,ax ; ZF <- 1 - jmp searchdir_iso.ret + ret searchdir: xor al,al searchdir_iso: - push bx - push cx mov [ISOFlags],al TRACER 'S' call allocate_file ; Temporary file structure for directory - jnz .alloc_failure + jnz alloc_failure push es push ds pop es ; ES = DS @@ -1270,7 +1268,8 @@ searchdir_iso: .failure: xor eax,eax ; ZF = 1 mov [bx+file_sector],eax - jmp .ret + pop es + ret .success: mov eax,[si+2] ; Location of extent @@ -1285,10 +1284,7 @@ searchdir_iso: shr edx,16 and bx,bx ; ZF = 0 mov si,bx -.ret: pop es - pop cx - pop bx ret .resume: ; We get here if we were only doing part of a lookup |