summaryrefslogtreecommitdiff
path: root/doc/comboot.txt
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2009-05-24 19:04:14 -0700
committerH. Peter Anvin <hpa@zytor.com>2009-05-24 19:04:14 -0700
commit73ab2bf37fb8ebf91fa55e9ece4031840335382d (patch)
tree9c013103f5501aabb91dffdfde6e4ad66e67fea5 /doc/comboot.txt
parent04e7c2784dd3fd45090d1ddb31905dd7a9b921a3 (diff)
downloadsyslinux-73ab2bf37fb8ebf91fa55e9ece4031840335382d.tar.gz
Document the COM32R format
Diffstat (limited to 'doc/comboot.txt')
-rw-r--r--doc/comboot.txt19
1 files changed, 11 insertions, 8 deletions
diff --git a/doc/comboot.txt b/doc/comboot.txt
index f5fefdaf..1b087a16 100644
--- a/doc/comboot.txt
+++ b/doc/comboot.txt
@@ -51,25 +51,28 @@ program), or execute INT 20h or INT 21h AH=00h or INT 21h AH=4Ch.
If compatiblity with Syslinux 1.xx is desired, use INT 20h.
- ++++ COM32 file format ++++
+ ++++ COM32R file format ++++
-A COM32 file is a raw binary file containing 32-bit code. It should
-be linked to run at address 0x101000, and should not contain any
-segment references. It will be run in flat-memory 32-bit protected
+A COM32R file is a raw binary file containing 32-bit code. It should
+be self-relocating, as it will be loaded by the Syslinux core at any
+4K aligned address. It will be run in flat-memory 32-bit protected
mode. Under Syslinux, it will be run in CPL 0, however, since it may
be possible to create a COM32 execution engine that would run under
something like Linux DOSEMU, it is recommended that the code does not
assume CPL 0 unless absolutely necessary.
-It is highly recommended that every COM32 program begins with the byte
-sequence B8 FF 4C CD 21 (mov eax,21cd4cffh) as a magic number.
+It is highly recommended that every COM32R program begins with the byte
+sequence B8 FE 4C CD 21 (mov eax,21cd4cfeh) as a magic number.
-A COM32 file should have extension ".c32".
+The COM32R format replaces the earlier COM32 format, which was linked
+to a fixed address (0x101000).
+
+A COM32R file should have extension ".c32".
On startup, CS will be set up as a flat 32-bit code segment, and DS ==
ES == SS will be set up as the equivalent flat 32-bit data segment.
FS and GS are reserved for future use and are currently initialized to
-zero. A COM32 image should not assume any particular values of
+zero. A COM32R image should not assume any particular values of
segment selectors.
ESP is set up at the end of available memory and also serves as