Diffstat (limited to 'doc')
1 files changed, 11 insertions, 8 deletions
diff --git a/doc/comboot.txt b/doc/comboot.txt
index b3d8e648..fb954038 100644
@@ -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.
+A COM32R program must start 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
ESP is set up at the end of available memory and also serves as