source: bootcd/isolinux/syslinux-6.03/core/com32.inc

Last change on this file was e16e8f2, checked in by Edwin Eefting <edwin@datux.nl>, 3 years ago

bootstuff

  • Property mode set to 100644
File size: 2.0 KB
Line 
1;; -----------------------------------------------------------------------
2;;
3;;   Copyright 1994-2009 H. Peter Anvin - All Rights Reserved
4;;   Copyright 2009-2010 Intel Corporation; author: H. Peter Anvin
5;;
6;;   This program is free software; you can redistribute it and/or modify
7;;   it under the terms of the GNU General Public License as published by
8;;   the Free Software Foundation, Inc., 53 Temple Place Ste 330,
9;;   Boston MA 02111-1307, USA; either version 2 of the License, or
10;;   (at your option) any later version; incorporated herein by reference.
11;;
12;; -----------------------------------------------------------------------
13
14;;
15;; com32.inc
16;;
17;; Common code for running a COM32 image
18;;
19
20                extern pm_api_vector
21
22;
23; Load a COM32 image.  A COM32 image is the 32-bit analogue to a DOS
24; .com file.  A COM32 image is loaded at address 0x101000, with %esp
25; set to the high end of usable memory.
26;
27; A COM32 image should begin with the magic bytes:
28; B8 FF 4C CD 21, which is "mov eax,0x21cd4cff" in 32-bit mode and
29; "mov ax,0x4cff; int 0x21" in 16-bit mode.  This will abort the
30; program with an error if run in 16-bit mode.
31;
32                bits 16
33                section .data16
34
35                ; Ersatz com32 invocation structure, to make libcom32
36                ; code run the same if linked to the core.  This is in
37                ; the .data16 segment so HighMemSize can live here.
38                ;
39                ; Danger, Will Robinson: it's not clear the use of
40                ; core_xfer_buf is safe here.
41                global __com32:data hidden
42                alignz 4
43__entry_esp:
44                dd 0                            ; Dummy to avoid _exit issues
45__com32:
46                dd 9                            ; Argument count
47                dd 0                            ; No command line
48                dd core_intcall                 ; Intcall entry point
49                dd 0                            ; Bounce buffer address
50                dd 0                            ; 64K bounce buffer
51                dd core_farcall                 ; Farcall entry point
52                dd core_cfarcall                ; Cfarcall entry point
53HighMemSize     dd 0                            ; End of memory pointer (bytes)
54                dd 0                            ; No module name
55                dd pm_api_vector                ; Protected mode functions
56
57                section .uibss
58Com32Name       resb FILENAME_MAX
59
60                section .bss16
61%ifndef HAVE_CURRENTDIRNAME
62                global CurrentDirName:data hidden
63CurrentDirName  resb FILENAME_MAX
64%endif
65
66                section .text16
Note: See TracBrowser for help on using the repository browser.