| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
The comapi functions get very unhappy if bp is ever clobbered, since
it uses bp as a frame pointer.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
"Bytes left" should be "bytes read"
|
|
|
|
| |
We don't need the ANSI engine in mboot.c32.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
Avoid crashing in the presence of unnamed submenus.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Actually close the file properly on EOF, even if not aligned to a
sector boundary. Sigh.
|
|
|
|
| |
Print the unknown keyword if we run into one.
|
|
|
|
|
| |
We would incorrectly not set SI=0 when returning from getfssec upon
end of file. Fix this.
|
| |
|
|
|
|
|
| |
Make the syntax for chain.c32 more Linux-kernel-like. This also makes
parsing easier, so it's a win all around.
|
|
|
|
| |
Decimal, not hex...
|
|
|
|
|
| |
Add routine to write decimal numbers, currently unused, but likely to
become useful at some time or another.
|
|
|
|
|
| |
Comma-space takes up too much horizontal space, since we
want to be able to comment properly.
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
SS is segment 2, DS is segment 3; this header had them backwards.
Fortunately not too many things relied on having DS != SS.
|
|
|
|
|
| |
UHCI supposedly wants a null command (0FFh) sent to the KBC as part of
the A20-flipping sequence. See if that works for us.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Adjust the gensubset.pl script to that all case variants are
explicitly included in UnicodeData.
|
| |
|
|
|
|
| |
Settle on a final implementation of the NTLDR support.
|
|
|
|
| |
Make sure we don't trash a useful value in errno.
|
|
|
|
|
| |
We have made it this far without it, but it seems like a disaster
waiting to happen. We can afford the extra four bytes in sector 1.
|
|
|
|
| |
Fix a set of bogus calls to writestr_early instead of writestr.
|
|
|
|
|
|
|
|
|
|
| |
Mechanically rename the writestr functions:
writestr -> writestr_early
cwritestr -> writestr
... to reflect which function is more appropriate to call in normal
circumstances.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In include/sys/pci.h we have
#define MAX_PCI_BUSES 255
and
struct pci_bus_list {
struct pci_bus pci_bus[MAX_PCI_BUSES];
uint8_t count;
};
And in lib/pci/scan.c
for (bus = 0; bus <= MAX_PCI_BUSES; bus++) {
pci_bus_list->pci_bus[bus].pci_device_count = 0;
Fix possible overflows and introduce MAX_PCI_FUNC.
- Sebastian
|
|
|
|
|
| |
Don't install the swap stub when we are already the primary drive,
even if -swap is specified.
|
| |
|
|
|
|
| |
Support installing a stub to swap BIOS drive numbers.
|
|
|
|
|
| |
Use the shuffle API, and support loading a boot file instead of the
standard boot sector. This should be able to load NTLDR.
|
| |
|
|
|
|
|
| |
Return exit values to go with the error messages; don't divide by zero
in case of range error.
|
| |
|
|
|
|
|
| |
Print the interrupt number, AX, and CS:IP of the offending system
call.
|
|
|
|
|
| |
search_dos_dir returns attributes in DL, so we shouldn't push/pop DX
around this function!
|
| |
|
|
|
|
| |
Add file missing from checkin 012d53b0453ac7a5ec03fb802434fe64e6f85bf5
|