Commit Graph

12 Commits

Author SHA1 Message Date
E. C. Masloch
9783ac97e0 boot32, boot32lb: mark magic offsets with macro 2024-02-18 14:20:56 -05:00
E. C. Masloch
ef10fa11e3 boot32, boot32lb: fix and update memory layout maps 2024-02-18 14:20:56 -05:00
E. C. Masloch
9ac407ae63 boot32, boot32lb: avoid big file overlap with FAT sector [fixes #127] 2024-02-18 14:20:56 -05:00
E. C. Masloch
42d3ae6aac boot32, boot32lb: fix EDR-DOS incompatibility [fixes #119] 2024-02-03 20:55:57 -05:00
E. C. Masloch
53d3fd556b boot32: display an error indicator instead of silently waiting 2024-02-03 20:55:57 -05:00
E. C. Masloch
a189ceb650 boot32: comment out unused print function 2024-02-03 20:55:57 -05:00
E. C. Masloch
630735e14a boot32: save another byte, use loop instruction 2024-02-03 20:55:57 -05:00
E. C. Masloch
3415ad93c9 boot32: fix very old bug, init high byte of fat_secshift
It turned out that this loader was severely broken for many years,
at least since 2012 (the git repo's creation). This variable was
read as a word to set cx for a loop, but only the low byte had
been written. The high byte happened to be 0EEh so cn_loop would
always zero out the FAT sector to read.

This _happened_ to work if the first root directory cluster and
all the kernel file clusters were all referenced in the first
sector of the FAT. Otherwise it would blow up.
2024-02-03 20:55:57 -05:00
E. C. Masloch
52136b27d6 boot32: optimise read sector increment to prepare for DL patch 2024-02-03 20:55:57 -05:00
C. Masloch
2efe4ab9f4 boot: enable loading from file systems with 256 sectors per cluster
This should be Enhanced DR-DOS compatible.

oemboot.asm contains an optimisation to save 2 bytes,
by using mov instead of a lea with bp evaluating to
a constant value. This was needed to fit the addition
for 256 spc support. It is otherwise unrelated.

The LBA detection patch offsets in SYS have also been
updated to match the changed boot.asm offsets.
2023-01-04 19:38:57 -05:00
C. Masloch
92ae538f1d boot: allow instsect to match the filesystem ID string
Reference: https://hg.ulukai.org/ecm/instsect/file/33218c729b43/instsect.asm#l1257

lDOS's instsect recently started to default to checking
the filesystem ID string in order to validate that the
boot sector loader to write matches the detected FS.
Using the /S=filename option or building instsect to
include the FreeDOS kernel's loaders would require use
of the /SN switch without this commit.

In addition, boot.asm and oemboot.asm are made to check
that exactly one of the ISFAT12 and ISFAT16 defs is
defined so as to select the FS. Prior to this commit
using both or neither def would silently result in a
broken loader.
2020-11-28 12:11:16 -05:00
KJD
c431157156 FreeDOS kernel current - 2041+svn1709 2012-10-14 20:08:06 -04:00