profile/ivi/syslinux.git
16 years agoparseconfig, ui: store the label name unmangled
Sebastian Herbszt [Tue, 22 Jul 2008 15:09:55 +0000 (17:09 +0200)]
parseconfig, ui: store the label name unmangled

Store the label names unmangled and match those against command_line.

- Sebastian

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
16 years agocore/runkernel.inc: remove dead code syslinux-3.71-pre16
Sergey Vlasov [Tue, 22 Jul 2008 09:46:09 +0000 (13:46 +0400)]
core/runkernel.inc: remove dead code

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
16 years agoFix initrd overwriting the kernel for some kernel sizes
Sergey Vlasov [Tue, 22 Jul 2008 09:46:08 +0000 (13:46 +0400)]
Fix initrd overwriting the kernel for some kernel sizes

The address in EDI returned by the load_high call used to load the
kernel needs to be passed to parse_load_initrd, but the code which
clears memory after setup sectors for 1.2.x kernels was corrupting
low 16 bits of EDI.  In most cases this corruption was not noticed,
because with usual setup sizes DI was set to 0xf800, therefore the
chance of getting the kernel size such that initrd would actually
overwrite the kernel was about 3%.

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
16 years agoFix loading of *.lkrn images from gPXE
Sergey Vlasov [Tue, 22 Jul 2008 09:46:07 +0000 (13:46 +0400)]
Fix loading of *.lkrn images from gPXE

Attempts to load *.lkrn images were failing with "Not enough memory
to load specified image".  These images have the su_ramdisk_max
header field set to zero, and the code in core/runkernel.inc was
limiting MyHighMemSize too early (before the load_high call used to
load the main part of the kernel).

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
16 years agovesamenu: avoid strcmp() with NULL
H. Peter Anvin [Tue, 22 Jul 2008 01:36:44 +0000 (21:36 -0400)]
vesamenu: avoid strcmp() with NULL

Avoid touching memory at address zero when going from a background to
a non-background.

16 years agopci: resize pci_device arrays syslinux-3.71-pre15
Sebastian Herbszt [Sat, 19 Jul 2008 20:26:48 +0000 (22:26 +0200)]
pci: resize pci_device arrays

pci_bus->pci_device get's populated with functions so it
should take up to MAX_PCI_DEVICES * MAX_PCI_FUNC elements.
pci_device_list->pci_device get's populated with functions
for every possible pci bus. Therefore it should take up to
MAX_PCI_BUS * MAX_PCI_DEVICES * MAX_PCI_FUNC elements.
Also adjust count variable types.

- Sebastian

16 years agoethersel: use library functions
Sebastian Herbszt [Sat, 19 Jul 2008 19:54:34 +0000 (21:54 +0200)]
ethersel: use library functions

Replace get_config() and execute() with syslinux_config_file() and
syslinux_run_command().

- Sebastian

16 years agoDocument SERIAL fix
H. Peter Anvin [Thu, 17 Jul 2008 22:18:46 +0000 (15:18 -0700)]
Document SERIAL fix

16 years agoCorrectly parse "serial" statements with no baud rate
H. Peter Anvin [Thu, 17 Jul 2008 21:54:31 +0000 (14:54 -0700)]
Correctly parse "serial" statements with no baud rate

People often don't bother specifying a baud rate for virtual serial
ports.  Handle parsing correctly.

16 years agowin32: run shell script in the current dir with ./
H. Peter Anvin [Thu, 17 Jul 2008 20:47:51 +0000 (13:47 -0700)]
win32: run shell script in the current dir with ./

Need leading ./ to run shell script in the current directory.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
16 years agoisolinux: rename CurDir to CurrentDir
Sebastian Herbszt [Wed, 16 Jul 2008 23:13:48 +0000 (01:13 +0200)]
isolinux: rename CurDir to CurrentDir

ldlinux and extlinux are both using CurrentDir variable name.
Rename CurDir to make it consistent with those.

- Sebastian

16 years ago<sys/cpu.h>: asm() formatting cleanup
H. Peter Anvin [Thu, 17 Jul 2008 01:57:28 +0000 (18:57 -0700)]
<sys/cpu.h>: asm() formatting cleanup

Minor asm() formatting cleanup.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
16 years ago<sys/cpu.h>: drop redundant "return"
H. Peter Anvin [Thu, 17 Jul 2008 01:56:50 +0000 (18:56 -0700)]
<sys/cpu.h>: drop redundant "return"

Drop "return" for function returning void.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
16 years agocom32: move cpuid inlines to <sys/cpu.h>
H. Peter Anvin [Thu, 17 Jul 2008 01:56:01 +0000 (18:56 -0700)]
com32: move cpuid inlines to <sys/cpu.h>

<sys/cpu.h> already has most of the CPUID inlines, put them all there.
<cpuid.h> still have structures for the code that really should be
librarized at some point.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
16 years agowin32: search for a mingw compiler under several names
H. Peter Anvin [Thu, 17 Jul 2008 00:01:33 +0000 (17:01 -0700)]
win32: search for a mingw compiler under several names

Search for the MinGW compiler under several names, since different
distros like to install it under different names.  What's wrong with a
simple mingw- prefix??

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
16 years agoifcpu64.c32: clean up the sources syslinux-3.71-pre14
H. Peter Anvin [Wed, 16 Jul 2008 22:42:20 +0000 (15:42 -0700)]
ifcpu64.c32: clean up the sources

Clean up the sources to make them easier to read.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
16 years agocpuid.h: add __constfunc
H. Peter Anvin [Wed, 16 Jul 2008 22:39:40 +0000 (15:39 -0700)]
cpuid.h: add __constfunc

Add __constfunc to CPUID calls, so gcc knows it can CSE them.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
16 years agocpufeature.h: remove unused macros syslinux-3.71-pre13
H. Peter Anvin [Wed, 16 Jul 2008 22:25:06 +0000 (15:25 -0700)]
cpufeature.h: remove unused macros

Remove a bunch of unused macros (from Linux) which we don't need or
use.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
16 years agoifcpu64.c32: simple module to choose a 32, 32pae, or 64-bit kernel
H. Peter Anvin [Wed, 16 Jul 2008 22:21:21 +0000 (15:21 -0700)]
ifcpu64.c32: simple module to choose a 32, 32pae, or 64-bit kernel

A very simple module to choose between a 32-bit, 32-bit PAE, or a
64-bit kernel depending on the capabilities of the CPU.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
16 years agocpuid.[ch]: various cleanups
H. Peter Anvin [Wed, 16 Jul 2008 22:12:47 +0000 (15:12 -0700)]
cpuid.[ch]: various cleanups

Minor cleanups to the CPUID code

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
16 years agoNEWS: document ADV CBIOS fix. syslinux-3.71-pre12
H. Peter Anvin [Wed, 16 Jul 2008 18:32:09 +0000 (11:32 -0700)]
NEWS: document ADV CBIOS fix.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
16 years agoadv: fix the handling of the ADV with CBIOS
H. Peter Anvin [Wed, 16 Jul 2008 18:27:00 +0000 (11:27 -0700)]
adv: fix the handling of the ADV with CBIOS

Fix numerous problems in the way we handled the ADV with CBIOS.  The
EBIOS code was largely correct, but the CBIOS code was just busted.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
16 years agoparseconfig: fix invalid mangle_name assumption
H. Peter Anvin [Wed, 16 Jul 2008 18:25:57 +0000 (11:25 -0700)]
parseconfig: fix invalid mangle_name assumption

Remove assumption that mangle_name leaves DI beyond the end of the
buffer.  This was true back when the mangled filename buffer was an
11-byte DOS filename, but it is definitely not true anymore.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
16 years agochain.c32: fix test for partition types which can be hidden syslinux-3.71-pre11
Sergey Vlasov [Wed, 16 Jul 2008 11:13:21 +0000 (15:13 +0400)]
chain.c32: fix test for partition types which can be hidden

The result of shift in C is undefined if the shift count is greater
than the width of type.  On x86 the corresponding CPU instruction
masks the shift count with 0x1f, therefore (mask >> (t & ~0x10)) & 1)
gives false positives for types greater than 0x1f (e.g., the partition
type 0x8e (Linux LVM) could be "hidden" to 0x9e).

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
16 years agochain.c32: fix bounce buffer handling
Sergey Vlasov [Wed, 16 Jul 2008 11:13:20 +0000 (15:13 +0400)]
chain.c32: fix bounce buffer handling

Fix breakage in the "hide" option support patch:

 - The code which initialized the global variable "dapa" was lost in
   commit 81c203f2, therefore EBIOS access did not work properly.
   Fixed by removing the global variable completely and moving all
   bounce buffer handling into read_sector() and write_sector().

 - write_sector() copied data to the bounce buffer, but then tried
   to use the pointer to the original buffer in BIOS calls.

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
16 years agogen-id: only truncate tags starting with syslinux-<version>-
H. Peter Anvin [Tue, 15 Jul 2008 23:10:46 +0000 (16:10 -0700)]
gen-id: only truncate tags starting with syslinux-<version>-

If git-describe comes up with a tag not starting with
syslinux-<version>- then leave it as-is.

16 years agoUse "git describe" in generating build signatures
H. Peter Anvin [Tue, 15 Jul 2008 23:06:14 +0000 (16:06 -0700)]
Use "git describe" in generating build signatures

We got rid of the 10-character limitation a long time ago, so we might
as well use "git describe" in generating the build signatures.

16 years agoReformat overwide comment
H. Peter Anvin [Tue, 15 Jul 2008 16:53:47 +0000 (09:53 -0700)]
Reformat overwide comment

16 years agoNEWS: KEYMAP -> KBDMAP
H. Peter Anvin [Mon, 14 Jul 2008 20:40:54 +0000 (13:40 -0700)]
NEWS: KEYMAP -> KBDMAP

16 years agokeymap, font: use readc, so we can handle indeterminate file sizes syslinux-3.71-pre10
H. Peter Anvin [Mon, 14 Jul 2008 19:44:21 +0000 (12:44 -0700)]
keymap, font: use readc, so we can handle indeterminate file sizes

The keymap and font commands still assumed that we knew the file size,
which is no longer true.  Fix that by instead using "readc" and
checking the CF.

16 years agogetc: add "readc" function to do block reads
H. Peter Anvin [Mon, 14 Jul 2008 19:43:50 +0000 (12:43 -0700)]
getc: add "readc" function to do block reads

Add "readc" function to do block reads.  Currently it just does a loop
around "call getc/stosb".

16 years agoconio: jump to loadkeys_ret in loadkeys if size not 256 bytes syslinux-3.71-pre9
Sebastian Herbszt [Mon, 14 Jul 2008 15:04:02 +0000 (17:04 +0200)]
conio: jump to loadkeys_ret in loadkeys if size not 256 bytes

Add back jump to loadkeys_ret if the file size was not 256 bytes;
inadvertently deleted when removing DX:AX 16-bitism.

16 years agoDocument unbreaking of KEYMAP syslinux-3.71-pre8
H. Peter Anvin [Sun, 13 Jul 2008 23:09:43 +0000 (16:09 -0700)]
Document unbreaking of KEYMAP

16 years agoFix residual use of DX:AX in the KEYMAP command
H. Peter Anvin [Sun, 13 Jul 2008 23:08:44 +0000 (16:08 -0700)]
Fix residual use of DX:AX in the KEYMAP command

The KEYMAP command still expected length in DX:AX, and so got broken.

16 years agochain.c32: explicitly verify after writing MBR syslinux-3.71-pre7
H. Peter Anvin [Fri, 11 Jul 2008 05:29:49 +0000 (01:29 -0400)]
chain.c32: explicitly verify after writing MBR

If we write the MBR, do verify by reading it back and comparing.
Right now all we do is print an error, though.

16 years agochain.c32: new "hide" option
H. Peter Anvin [Fri, 11 Jul 2008 05:22:15 +0000 (01:22 -0400)]
chain.c32: new "hide" option

Option for chain.c32 to hide primary partitions on the boot drive.

16 years agosyslinux.txt: update; add INITRD
H. Peter Anvin [Thu, 10 Jul 2008 00:33:15 +0000 (20:33 -0400)]
syslinux.txt: update; add INITRD

Add the INITRD statement and a few other updates.

16 years agoDocument fix for RootDir
H. Peter Anvin [Wed, 9 Jul 2008 19:56:42 +0000 (15:56 -0400)]
Document fix for RootDir

16 years agoldlinux: CurrentDir not set if syslinux.cfg is missing
Sebastian Herbszt [Wed, 9 Jul 2008 19:02:39 +0000 (21:02 +0200)]
ldlinux: CurrentDir not set if syslinux.cfg is missing

If a syslinux floppy does not contain a config file (syslinux.cfg) modules are
not being found unless specified with a directory prefix (e.g. /pcitest.c32).
The reason is that CurrentDir is only set if there is a config file present. This is a
possible regression since commit 68eefb79e2cbb590ebf958dd0c50ce00b941abd2.
Before this change RootDir was used in searchdir and now it's CurrentDir unless
the filename starts with '/'. Possible fix is to set CurrentDir to RootDir if no config
file is found.

Actually it seems better to move this to the top of the "check for config file" block.
Initialize CurrentDir to RootDir and change it if a config file is found.

- Sebastian

16 years agoMake version.mk optional, so cleaning commands work syslinux-3.71-pre6
H. Peter Anvin [Mon, 7 Jul 2008 23:11:42 +0000 (16:11 -0700)]
Make version.mk optional, so cleaning commands work

For cleaning commands, we need version.mk to be optional.

16 years agoShare the gen-id stuff between core and memdisk
H. Peter Anvin [Mon, 7 Jul 2008 22:32:21 +0000 (15:32 -0700)]
Share the gen-id stuff between core and memdisk

Both core and memdisk wants to use the gen-id stuff, so let it.

16 years agoCentralize more of the version number machinery
H. Peter Anvin [Mon, 7 Jul 2008 22:21:56 +0000 (15:21 -0700)]
Centralize more of the version number machinery

Centralize more (most) of the version number machinery to version.pl.

16 years agoDrop macros that just point to other macros
H. Peter Anvin [Mon, 7 Jul 2008 22:00:56 +0000 (15:00 -0700)]
Drop macros that just point to other macros

Drop macros for "date" and "version_str", which are nothing but
redefined names of macros we already define (DATE_STR and VERSION).

16 years agocomboot: re-enable the idle call syslinux-3.71-pre5
H. Peter Anvin [Mon, 7 Jul 2008 21:54:53 +0000 (14:54 -0700)]
comboot: re-enable the idle call

Try again to enable the idle call.

16 years agopcitest: display "1 bus found" instead of "1 buses found"
Sebastian Herbszt [Mon, 7 Jul 2008 20:28:16 +0000 (22:28 +0200)]
pcitest: display "1 bus found" instead of "1 buses found"

Fix the text for pci_bus_list->count == 1 ("1 bus found").

- Sebastian

16 years agocomboot: make sure we CLD at all relevant entry points
H. Peter Anvin [Mon, 7 Jul 2008 20:20:05 +0000 (13:20 -0700)]
comboot: make sure we CLD at all relevant entry points

DF is undefined on entry, so make sure we clear it at all entry points
where it could possibly matter.

16 years agocomboot.inc: add missing "section .text"
H. Peter Anvin [Mon, 7 Jul 2008 19:46:48 +0000 (12:46 -0700)]
comboot.inc: add missing "section .text"

16 years agocomboot: save/restore all the DOS vectors; handle a few more
H. Peter Anvin [Mon, 7 Jul 2008 19:43:15 +0000 (12:43 -0700)]
comboot: save/restore all the DOS vectors; handle a few more

- save and restore all the DOS vectors around COMBOOT invocations.
- handle INT 28h and INT 29h, and IRET on INT 2Dh, 2Fh, 33h.

16 years agoInclude the git ID in the build string
H. Peter Anvin [Mon, 7 Jul 2008 19:08:47 +0000 (12:08 -0700)]
Include the git ID in the build string

If we're doing an unofficial build from git, put the git id and a
dirty flag in the build string, instead of a timestamp.  This is a lot
more useful.

16 years agoAllow the initrd to be specified on a separate line syslinux-3.71-pre4
H. Peter Anvin [Fri, 4 Jul 2008 01:45:42 +0000 (18:45 -0700)]
Allow the initrd to be specified on a separate line

Allow the initrd to be specified on a separate line from command-line
options (append).  This apparently can help certain tools.

16 years agoNEWS: handle being the only floppy better.
H. Peter Anvin [Thu, 3 Jul 2008 22:32:39 +0000 (15:32 -0700)]
NEWS: handle being the only floppy better.

16 years agodoc/memdisk.txt: document INT 1Eh fields
H. Peter Anvin [Thu, 3 Jul 2008 22:29:57 +0000 (15:29 -0700)]
doc/memdisk.txt: document INT 1Eh fields

Document the fields to recover the original INT 1Eh vector.

16 years agomemdisk: install a DPT if needed in INT 1Eh; better zero-drive detection
H. Peter Anvin [Thu, 3 Jul 2008 22:22:39 +0000 (15:22 -0700)]
memdisk: install a DPT if needed in INT 1Eh; better zero-drive detection

Per the Interrupt list, treat INT 13 08 returning with CL=0 as a
failure, meaning single drive only.

If we find ourselves the only floppy drive, install a DPT into INT
1Eh.  This appears to be needed for PC-DOS 7.0 to boot.  This can be
overridden with the "nodpt" option, and forced with the "dpt" option.

16 years agomemdisk/version.h: bump copyright year
H. Peter Anvin [Thu, 3 Jul 2008 22:22:18 +0000 (15:22 -0700)]
memdisk/version.h: bump copyright year

2008, not 2007

16 years ago.gitignore: make singleton filenames absolute
H. Peter Anvin [Thu, 3 Jul 2008 22:21:36 +0000 (15:21 -0700)]
.gitignore: make singleton filenames absolute

Ignore, for example, version.h, but not memdisk/version.h

16 years agoextlinux: fix handling of /etc/mtab syslinux-3.71-pre3
H. Peter Anvin [Thu, 3 Jul 2008 02:53:58 +0000 (19:53 -0700)]
extlinux: fix handling of /etc/mtab

When we didn't find the filesystem in /proc/mounts, we would go
through /etc/mtab, but then completely botch the parsing thereof.
Move the parsing to a common function to avoid this problem.

16 years agoSimple menu: really avoid disabled entries syslinux-3.71-pre2
H. Peter Anvin [Thu, 3 Jul 2008 01:34:49 +0000 (18:34 -0700)]
Simple menu: really avoid disabled entries

Really, really try to avoid stepping on disabled entries...

16 years ago3.70 is out, next release is 3.71 syslinux-3.71-pre1
H. Peter Anvin [Tue, 1 Jul 2008 05:23:53 +0000 (22:23 -0700)]
3.70 is out, next release is 3.71

16 years agoNEWS: There never was a 3.64
H. Peter Anvin [Tue, 1 Jul 2008 05:23:05 +0000 (22:23 -0700)]
NEWS: There never was a 3.64

There was no 3.64 release; remove the heading.

16 years agocomboot: issue IRET for INT 2Fh
H. Peter Anvin [Tue, 1 Jul 2008 05:21:47 +0000 (22:21 -0700)]
comboot: issue IRET for INT 2Fh

At least one laptop exists which calls INT 2Fh from inside the BIOS!
So just point INT 2Fh to IRET, and hope that's good enough.

16 years agogPXE: Missing files from gPXE sync syslinux-3.70 syslinux-3.70-pre30
H. Peter Anvin [Mon, 30 Jun 2008 22:34:05 +0000 (15:34 -0700)]
gPXE: Missing files from gPXE sync

Files that should have been added before...

16 years agochain.c32: allow "boot" as a drive specification
H. Peter Anvin [Mon, 30 Jun 2008 22:28:16 +0000 (15:28 -0700)]
chain.c32: allow "boot" as a drive specification

Allow "boot" as the drive specification; this can be used both with
partition numbers and with loaders.

16 years agogPXE: update gPXE to get rid of gpxe/src/Config
H. Peter Anvin [Mon, 30 Jun 2008 19:37:48 +0000 (12:37 -0700)]
gPXE: update gPXE to get rid of gpxe/src/Config

gpxe/src/Config versus gpxe/src/config is a problem on case-deficient
filesystems; update to top of tree gPXE so we don't have that problem
anymore.

16 years agocptable.pl: it seems to make more sense to put console first
H. Peter Anvin [Sun, 29 Jun 2008 02:09:07 +0000 (19:09 -0700)]
cptable.pl: it seems to make more sense to put console first

It seems to make more sense to put the console codepage first, since
it is the more significant of the two codepages.  It also makes more
sense in the from..to sense.

16 years agospec: can't put anything in the /etc directory if it's not there syslinux-3.70-pre29
H. Peter Anvin [Sat, 28 Jun 2008 02:26:42 +0000 (19:26 -0700)]
spec: can't put anything in the /etc directory if it's not there

Make sure we create the /etc directory before putting something there.

16 years agogpxe/Makefile: don't remove gpxelinux.0 for "make dist"
H. Peter Anvin [Sat, 28 Jun 2008 02:20:12 +0000 (19:20 -0700)]
gpxe/Makefile: don't remove gpxelinux.0 for "make dist"

After all, "make dist" is about producing the wrapped binaries for
release.

16 years agoBuild _bin.c files in libinstaller; clean up B/I separation
H. Peter Anvin [Sat, 28 Jun 2008 02:15:00 +0000 (19:15 -0700)]
Build _bin.c files in libinstaller; clean up B/I separation

Clean up the BSUBDIR/ISUBDIR separation further.  Build _bin.c files,
which are an intermediate stage toward building the installers, in the
libinstaller directory, since that directory is used by all the
installers anyway.  That also lets us get bin2c.pl out of the root.

16 years agoFix "make clean", "make installer"
H. Peter Anvin [Sat, 28 Jun 2008 01:47:02 +0000 (18:47 -0700)]
Fix "make clean", "make installer"

- "make clean" should not clean up things that "make installer" cannot
  regenerate.
- "make installer" should not descend into subdirectories which are
  target only, e.g. com32 and sample.

The Linux platform stuff in com32 is old and bitrotted, and was only
for debugging in the first place.  Just ignore it.

16 years agoUpdate gPXE to current git syslinux-3.70-pre28
H. Peter Anvin [Fri, 27 Jun 2008 22:05:14 +0000 (15:05 -0700)]
Update gPXE to current git

There are some build fixes which may be relevant, so pull in the
latest gPXE git.

16 years agogpxe: Separate rules for undionly.kpxe and gpxelinux.0
H. Peter Anvin [Fri, 27 Jun 2008 22:03:13 +0000 (15:03 -0700)]
gpxe: Separate rules for undionly.kpxe and gpxelinux.0

To avoid confusion during subdirectory make, make the undionly.kpxe ->
gpxelinux.0 conversion an explicit rule.

16 years agogPXE: [a20] Send a null command to the KBC after changing A20 syslinux-3.70-pre27
H. Peter Anvin [Fri, 27 Jun 2008 19:56:10 +0000 (12:56 -0700)]
gPXE: [a20] Send a null command to the KBC after changing A20

Send a null command, specifically "pulse outputs" with no outputs
selected, to the KBC after changing A20.  This was apparently done by
DOS, presumably as a synchronization hack, and the authors of the UHCI
spec thought it was inherent.  Therefore, there are systems out there
(e.g. HP DL360 G5) which will stop responsing to "legacy USB" unless
they see the null command, 0xFF, written to port 0x64 at the end of
the A20 toggling sequence.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
16 years agoisolinux: don't clobber bp in getfssec syslinux-3.70-pre26
H. Peter Anvin [Fri, 27 Jun 2008 01:50:22 +0000 (18:50 -0700)]
isolinux: don't clobber bp in getfssec

The comapi functions get very unhappy if bp is ever clobbered, since
it uses bp as a frame pointer.

16 years agocomboot.doc -> comboot.txt syslinux-3.70-pre25
H. Peter Anvin [Fri, 27 Jun 2008 00:41:52 +0000 (17:41 -0700)]
comboot.doc -> comboot.txt

16 years agoldlinux: handle "first byte E5 change to 05" rule in FAT
H. Peter Anvin [Wed, 25 Jun 2008 20:50:50 +0000 (13:50 -0700)]
ldlinux: handle "first byte E5 change to 05" rule in FAT

FAT has a somewhat obnoxious rule: byte E5 in the first position is
encoded as 05.  If it was *always* that case we could simply fold it
into the codepage tables, but that rule applies only to the first
character.

Note that in the common codepages (incl. 437), E5 is lower-case sigma
(σ), which we currently upper case to upper case sigma (Σ, E4)
preventing a match -- which DOS *doesn't* do (it thinks of the Greek
characters as symbols, not subject to case distinctions.)  Putting
that special case in the codepage-generation scripts seems too ugly,
though.

16 years agocptable: error out on incorrect usage
H. Peter Anvin [Wed, 25 Jun 2008 19:14:05 +0000 (12:14 -0700)]
cptable: error out on incorrect usage

16 years agoAdd more codepage data; support disjoint mappings
H. Peter Anvin [Wed, 25 Jun 2008 19:10:44 +0000 (12:10 -0700)]
Add more codepage data; support disjoint mappings

Add additional codepage data from the Unicode Consortium.
Additionally, add support for generating codepage files for the case
where the filesystem codepage and the display codepage do not match.
The standard Makefile doesn't actually do that, however.

16 years agoextlinux: Fix comment
H. Peter Anvin [Wed, 25 Jun 2008 01:06:09 +0000 (18:06 -0700)]
extlinux: Fix comment

"Bytes left" should be "bytes read"

16 years agomboot.c32: no need to include the ANSI engine syslinux-3.70-pre24
H. Peter Anvin [Tue, 24 Jun 2008 22:28:40 +0000 (15:28 -0700)]
mboot.c32: no need to include the ANSI engine

We don't need the ANSI engine in mboot.c32.

16 years agoNEWS: document newline fix.
H. Peter Anvin [Tue, 24 Jun 2008 22:27:12 +0000 (15:27 -0700)]
NEWS: document newline fix.

16 years agoDefault to \n -> \r\n in ANSI and xserial
H. Peter Anvin [Tue, 24 Jun 2008 22:25:14 +0000 (15:25 -0700)]
Default to \n -> \r\n in ANSI and xserial

Default to \n -> \r\n conversion in the ANSI and xserial modules,
rather than relying on escape codes to make that behave.  This
effectively means that as far as the serial port is concerned, this
behavior cannot be turned off (with less than having the xserial state
machine interpret this sequence) and the escape code *should not* be
used.

That is fine for our applications, though.

16 years agoNEWS: document complex menu system fix syslinux-3.70-pre23
H. Peter Anvin [Tue, 24 Jun 2008 06:18:30 +0000 (23:18 -0700)]
NEWS: document complex menu system fix

16 years agocomplex menu: Fixed bug in menu.c so complex.c32 works again.
Murali Ganapathy [Mon, 23 Jun 2008 06:04:11 +0000 (23:04 -0700)]
complex menu: Fixed bug in menu.c so complex.c32 works again.

Avoid crashing in the presence of unnamed submenus.

16 years agoUgly workaround for bug in GNU ld 2.17
H. Peter Anvin [Tue, 24 Jun 2008 00:21:50 +0000 (17:21 -0700)]
Ugly workaround for bug in GNU ld 2.17

GNU ld 2.17, which is still included with Debian 4.0 (etch),
mishandles PC-relative relocations to an absolute address.  Hack
around it by making pm_entry a segment-relative symbol, completely
unnecessarily so.

16 years agoextlinux: actually fix the closing of a file on EOF syslinux-3.70-pre22
H. Peter Anvin [Mon, 23 Jun 2008 04:25:44 +0000 (21:25 -0700)]
extlinux: actually fix the closing of a file on EOF

Actually close the file properly on EOF, even if not aligned to a
sector boundary.  Sigh.

16 years agoparsecmd: on an unknown keyword, print the unknown keyword syslinux-3.70-pre21
H. Peter Anvin [Mon, 23 Jun 2008 02:11:28 +0000 (19:11 -0700)]
parsecmd: on an unknown keyword, print the unknown keyword

Print the unknown keyword if we run into one.

16 years agoextlinux: fix the end of file condition
H. Peter Anvin [Mon, 23 Jun 2008 02:10:53 +0000 (19:10 -0700)]
extlinux: fix the end of file condition

We would incorrectly not set SI=0 when returning from getfssec upon
end of file.  Fix this.

16 years agoNEWS: Document A20 change syslinux-3.70-pre20
H. Peter Anvin [Fri, 20 Jun 2008 23:12:14 +0000 (16:12 -0700)]
NEWS: Document A20 change

16 years agochain.c32: use a more Linux-kernel-like syntax
H. Peter Anvin [Fri, 20 Jun 2008 23:09:13 +0000 (16:09 -0700)]
chain.c32: use a more Linux-kernel-like syntax

Make the syntax for chain.c32 more Linux-kernel-like.  This also makes
parsing easier, so it's a win all around.

16 years agocore/writedec.inc: fix comment
H. Peter Anvin [Thu, 19 Jun 2008 23:32:57 +0000 (16:32 -0700)]
core/writedec.inc: fix comment

Decimal, not hex...

16 years agocore: add decimal number write routine
H. Peter Anvin [Thu, 19 Jun 2008 18:06:38 +0000 (11:06 -0700)]
core: add decimal number write routine

Add routine to write decimal numbers, currently unused, but likely to
become useful at some time or another.

16 years agochain.c: avoid comma-space in assembly stubs
H. Peter Anvin [Thu, 19 Jun 2008 18:05:06 +0000 (11:05 -0700)]
chain.c: avoid comma-space in assembly stubs

Comma-space takes up too much horizontal space, since we
want to be able to comment properly.

16 years agochain.c32: check the stub sources into the tree
H. Peter Anvin [Thu, 19 Jun 2008 18:00:59 +0000 (11:00 -0700)]
chain.c32: check the stub sources into the tree

Check the stub sources into the tree, even though they aren't used by
the build; they are still useful when experimenting with changing this
stuff.

16 years agoAdd address aliases for freedos and msdos
H. Peter Anvin [Thu, 19 Jun 2008 17:39:44 +0000 (10:39 -0700)]
Add address aliases for freedos and msdos

16 years agochain.c32: minor stylistic cleanup
H. Peter Anvin [Thu, 19 Jun 2008 17:38:15 +0000 (10:38 -0700)]
chain.c32: minor stylistic cleanup

16 years agochain.c: we can't rely on dosmem and int13 in here...
H. Peter Anvin [Thu, 19 Jun 2008 17:36:07 +0000 (10:36 -0700)]
chain.c: we can't rely on dosmem and int13 in here...

dosmem and int13 can change during boot loader shutdown.  It
is therefore unsafe to rely on them retaining their value from
running in chain.c32 itself.  Instead, we have to install a
suitable stub which makes that particular determination at
runtime.  Fortunately that is not all that hard to do.

16 years agochain.c32: support loading DOS kernels
H. Peter Anvin [Thu, 19 Jun 2008 06:43:39 +0000 (23:43 -0700)]
chain.c32: support loading DOS kernels

Support loading files below 0x7c00, as required, for example, by DOS
kernels.  Furthermore, pass the drive number in BL as well as DL.

With this, we can load the FreeDOS kernel with:

     chain.c32 hd0 -seg 0x60 -file /kernel.sys

Should really clean up the syntax before 3.70 final, though, and
provide a way to default to the syslinux device.

16 years ago<syslinux/bootrm.h>: fix order of SS and DS
H. Peter Anvin [Thu, 19 Jun 2008 06:42:47 +0000 (23:42 -0700)]
<syslinux/bootrm.h>: fix order of SS and DS

SS is segment 2, DS is segment 3; this header had them backwards.
Fortunately not too many things relied on having DS != SS.

16 years agoTEST: issue a null command to the KBC as part of A20-flipping syslinux-3.70-pre19
H. Peter Anvin [Wed, 18 Jun 2008 16:05:33 +0000 (09:05 -0700)]
TEST: issue a null command to the KBC as part of A20-flipping

UHCI supposedly wants a null command (0FFh) sent to the KBC as part of
the A20-flipping sequence.  See if that works for us.

16 years agocodepage: strip accents during shortname upper-casing
H. Peter Anvin [Mon, 16 Jun 2008 07:18:48 +0000 (00:18 -0700)]
codepage: strip accents during shortname upper-casing

If we don't have a direct upper-case equivalent to a character, but we
*do* have the "naked" version of the upper-case character (defined as
the first character of the canonical Unicode decomposition of the
case-mapped character), then use it for the intracodepage table (used
for shortnames.)  This matches DOS behaviour.  No obvious way, yet, to
handle the fact that DOS doesn't uppercase the lowercase sigma, but
that's not a huge problem; besides, lowercase sigma is mapped to
position 0xE5, which would require dealing with the special handling
of this character in the first position.

16 years agocodepage: include case variant characters in UnicodeData
H. Peter Anvin [Mon, 16 Jun 2008 07:07:23 +0000 (00:07 -0700)]
codepage: include case variant characters in UnicodeData

Adjust the gensubset.pl script to that all case variants are
explicitly included in UnicodeData.