Skip to content

Commit

Permalink
Delete 16-bit COMBOOT support
Browse files Browse the repository at this point in the history
16-bit COMBOOT files are no longer supported by Syslinux in 5.00 so
delete all references and change any 32-bit COMBOOT image references
to mention ELF instead.

Some of the COMBOOT stuff is still used internally so we can't nuke
core/comboot.inc yet, but that will disappear in a future release.

Signed-off-by: Matt Fleming <matt.fleming@intel.com>
  • Loading branch information
Matt Fleming committed Dec 6, 2012
1 parent e4b3ce2 commit ddb10ce
Show file tree
Hide file tree
Showing 20 changed files with 23 additions and 2,443 deletions.
4 changes: 2 additions & 2 deletions Makefile
Expand Up @@ -30,7 +30,7 @@ include $(MAKEDIR)/syslinux.mk
# directories.
#

MODULES = memdisk/memdisk memdump/memdump.com modules/*.com \
MODULES = memdisk/memdisk memdump/memdump.com \
com32/menu/*.c32 com32/modules/*.c32 com32/mboot/*.c32 \
com32/hdt/*.c32 com32/rosh/*.c32 com32/gfxboot/*.c32 \
com32/sysdump/*.c32 com32/lua/src/*.c32 com32/chain/*.c32 \
Expand All @@ -57,7 +57,7 @@ BOBJECTS = $(BTARGET) \
# Note: libinstaller is both a BSUBDIR and an ISUBDIR. It contains
# files that depend only on the B phase, but may have to be regenerated
# for "make installer".
BSUBDIRS = codepage com32 lzo core memdisk modules mbr memdump gpxe sample \
BSUBDIRS = codepage com32 lzo core memdisk mbr memdump gpxe sample \
diag libinstaller dos win32 win64 dosutil
ITARGET =
IOBJECTS = $(ITARGET) \
Expand Down
3 changes: 3 additions & 0 deletions NEWS
Expand Up @@ -25,6 +25,9 @@ Changes in 5.00:
* ldlinux: A new "PATH" directive was added to the ldlinux.c32
config parser that specifies a colon-separated list of
directories to search when attempting to load modules.
* ALL: Delete all references to/code for 16-bit COMBOOT files.
COMBOOT files (.cbt and .com) are no longer supported under
Syslinux.

Changes in 4.06:
* Support for NTFS, by Paulo Alcantara.
Expand Down
1 change: 0 additions & 1 deletion README
Expand Up @@ -7,7 +7,6 @@ See the files in the doc directory for documentation about SYSLINUX:
extlinux.txt - Documentation specific to EXTLINUX.
menu.txt - About the menu systems.
usbkey.txt - About using SYSLINUX on USB keys.
comboot.txt - About the extension API.
memdisk.txt - Documentation about MEMDISK.

Also see the files:
Expand Down
1 change: 0 additions & 1 deletion com32/elflink/ldlinux/execute.c
Expand Up @@ -39,7 +39,6 @@ const struct image_types image_boot_types[] = {
{ "bss", IMAGE_TYPE_BSS },
{ "pxe", IMAGE_TYPE_PXE },
{ "fdimage", IMAGE_TYPE_FDIMAGE },
{ "comboot", IMAGE_TYPE_COMBOOT },
{ "com32", IMAGE_TYPE_COM32 },
{ "config", IMAGE_TYPE_CONFIG },
{ NULL, 0 },
Expand Down
2 changes: 0 additions & 2 deletions com32/elflink/ldlinux/ldlinux.c
Expand Up @@ -21,8 +21,6 @@ struct file_ext {
};

static const struct file_ext file_extensions[] = {
{ ".com", IMAGE_TYPE_COMBOOT },
{ ".cbt", IMAGE_TYPE_COMBOOT },
{ ".c32", IMAGE_TYPE_COM32 },
{ ".img", IMAGE_TYPE_FDIMAGE },
{ ".bss", IMAGE_TYPE_BSS },
Expand Down
1 change: 0 additions & 1 deletion com32/include/menu.h
Expand Up @@ -87,7 +87,6 @@ enum kernel_type {
KT_BSS, /* Boot sector with patch */
KT_PXE, /* PXE NBP */
KT_FDIMAGE, /* Floppy disk image */
KT_COMBOOT, /* COMBOOT image */
KT_COM32, /* COM32 image */
KT_CONFIG, /* Configuration file */
};
Expand Down
1 change: 0 additions & 1 deletion com32/include/syslinux/boot.h
Expand Up @@ -61,7 +61,6 @@ extern const struct image_types image_boot_types[];
#define IMAGE_TYPE_BSS 3
#define IMAGE_TYPE_PXE 4
#define IMAGE_TYPE_FDIMAGE 5
#define IMAGE_TYPE_COMBOOT 6
#define IMAGE_TYPE_COM32 7
#define IMAGE_TYPE_CONFIG 8
#define IMAGE_TYPE_LOCALBOOT 9
Expand Down
2 changes: 1 addition & 1 deletion com32/sysdump/README
@@ -1,4 +1,4 @@
This is a very simple COMBOOT program which can be used to dump memory
This is a very simple COM32 program which can be used to dump memory
regions over a serial port. To use it, type on the SYSLINUX command
line:

Expand Down
47 changes: 2 additions & 45 deletions core/comboot.inc
Expand Up @@ -114,7 +114,7 @@ DOSSaveVectors resd 32

comboot_vectors:
dw comboot_return ; INT 20 = exit
dw comboot_int21 ; INT 21 = DOS-compatible system calls
dw comboot_err(21h) ; INT 21 = DOS-compatible system calls
dw comboot_int22 ; INT 22 = native system calls
dw comboot_err(23h) ; INT 23 = DOS Ctrl-C handler
dw comboot_err(24h) ; INT 24 = DOS critical error handler
Expand Down Expand Up @@ -148,31 +148,6 @@ comboot_vectors:

section .text16

; INT 21h: generic DOS system call
comboot_int21: sti
push ds
push es
push fs
push gs
pushad
cld
mov bp,cs
mov ds,bp
mov es,bp
mov bp,sp ; Set up stack frame

pm_call pm_adjust_screen ; The COMBOOT program might hav changed the screen

mov cx,int21_count
mov si,int21_table
.again: lodsb
cmp al,P_AH
lodsw
loopne .again
; The last function in the list is the
; "no such function" function
clc
call ax ; Call the invoked function
comboot_resume:
mov bp,sp ; In case the function clobbers BP
setc P_FLAGSL ; Propagate CF->error
Expand Down Expand Up @@ -212,7 +187,7 @@ comboot_bogus_tail:
jmp kaboom

; Proper return vector
; Note: this gets invoked both via INT 21h and directly via INT 20h.
; Note: this gets invoked directly via INT 20h.
; We don't need to cld explicitly here, because comboot_exit does that
; when invoking RESET_STACK_AND_SEGS.
comboot_return:
Expand Down Expand Up @@ -457,24 +432,6 @@ comapi_initadv:

section .data16

%macro int21 2
db %1
dw %2
%endmacro

int21_table:
int21 00h, comboot_return
int21 01h, comboot_getkey
int21 02h, comboot_writechr
int21 04h, comboot_writeserial
int21 08h, comboot_getkeynoecho
int21 09h, comboot_writestr
int21 0Bh, comboot_checkkey
int21 30h, comboot_checkver
int21 4Ch, comboot_return
int21 -1, comboot_bad_int21
int21_count equ ($-int21_table)/3

alignz 2
int22_table:
dw comapi_err ; 0000 unimplemented syscall
Expand Down

0 comments on commit ddb10ce

Please sign in to comment.