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 67