diff options
Diffstat (limited to 'contrib/syslinux-4.02/core/loadhigh.inc')
-rw-r--r-- | contrib/syslinux-4.02/core/loadhigh.inc | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/contrib/syslinux-4.02/core/loadhigh.inc b/contrib/syslinux-4.02/core/loadhigh.inc new file mode 100644 index 0000000..89de5e8 --- /dev/null +++ b/contrib/syslinux-4.02/core/loadhigh.inc @@ -0,0 +1,60 @@ +;; ----------------------------------------------------------------------- +;; +;; Copyright 1994-2009 H. Peter Anvin - All Rights Reserved +;; Copyright 2009-2010 Intel Corporation; author: 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 +;; the Free Software Foundation, Inc., 53 Temple Place Ste 330, +;; Boston MA 02111-1307, USA; either version 2 of the License, or +;; (at your option) any later version; incorporated herein by reference. +;; +;; ----------------------------------------------------------------------- + +;; +;; loadhigh.inc +;; +;; Load a file into high memory +;; + + section .text16 + +; +; load_high: loads (the remainder of) a file into high memory. +; +; Assumes CS == DS. +; +; Inputs: SI = file handle/cluster pointer +; EDI = target address in high memory +; EAX = maximum number of bytes to load +; DX = zero-padding mask (e.g. 0003h for pad to dword) +; BX = subroutine to call at the top of each loop +; (to print status and check for abort) +; [MyHighMemSize] = maximum load address +; +; Outputs: SI = file handle/cluster pointer +; EBX = first untouched address (not including padding) +; EDI = first untouched address (including padding) +; CF = reached EOF +; + extern pm_load_high +load_high: + push ebp + mov ebp,[MyHighMemSize] + pm_call pm_load_high + pop ebp + jo .overflow + ret + +.overflow: mov si,err_nohighmem + jmp abort_load + + section .data16 +err_nohighmem db CR, LF + db 'Not enough memory to load specified image.', CR, LF, 0 + + section .bss16 + alignb 2 +PauseBird resw 1 + + section .text16 |