Commit Graph

26 Commits

Author SHA1 Message Date
Bernd Wilhelm Böckmann e9c6682dbe sys: add newest findings regarding operation system support 2024-05-20 07:08:27 -04:00
Bernd Wilhelm Böckmann 7ce25f0ac4 sys: more bootloader / OS compatibility work 2024-05-20 07:08:27 -04:00
Bernd Wilhelm Böckmann cc4ad94f0a update /OEM:LMSPACK description 2024-05-20 07:08:27 -04:00
Bernd Wilhelm Böckmann ab9ad1e299 sys: fix Bernds version confusion 2024-05-20 07:08:27 -04:00
Bernd Wilhelm Böckmann 3b9403a353 first print version info, then operating mode 2024-05-20 07:08:27 -04:00
Bernd Wilhelm Böckmann 76f14d608d add support for more kernels to SYS, throw out EDR specifics 2024-05-20 07:08:27 -04:00
E. C. Masloch 8e8fcd1628 sys: fix, work on DOS versions that clobber di in int 25h/26h
Running on DR-DOS v7.03, the int 25h call zeroes di leading to a crash
here when di is expected to preserve the stack pointer. So push di twice
and pop it twice. The second pop always gets the saved sp, regardless of
whether int 21h or int 25h/26h are used.

Refer to https://github.com/SvarDOS/edrdos/issues/57#issuecomment-2119360035
2024-05-19 17:39:15 -04:00
E. C. Masloch 1cd4a75e98 sys: fix, allow odd magic offsets to work as expected
Created using this scriptlet:

sed -i -re 's/\(\(int \*\)newboot\)\[([0-9A-Fa-fxX]+)\/sizeof\(int\)\]/\*\(int \*\)\(\&newboot\[\1\]\)/g' sys/sys.c
2024-02-18 14:20:56 -05:00
E. C. Masloch 19058ff1bf sys: correct a magic offset (problem: odd offsets won't work) 2024-02-18 14:20:56 -05:00
E. C. Masloch 4ae6f22249 sys, boot: mark additional magic offsets 2024-02-18 14:20:56 -05:00
E. C. Masloch f036741b6b sys: update magic offset of OEM FAT12 jmp offset 2024-02-18 14:20:56 -05:00
E. C. Masloch 55f2a81406 sys: check default content of all magic offset patchsites 2024-02-18 14:20:56 -05:00
C. Masloch 384e68529a sys: detect small FAT32 as FAT32 (zero in word SPF)
Also checks that the total amount of clusters is possible
for the detected file system, erroring out otherwise.
Small FAT32 is displayed in the verbose output specifically.
2023-01-10 13:17:16 -05:00
C. Masloch 7115d69cd2 sys: support 256 sectors per cluster
This was overlooked in the earlier commits because SYS
uses its own BPB structures and name for the SPC field.
2023-01-10 13:17:16 -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 302b002adb sys: enable building without WITHFAT32 defined 2022-12-31 09:37:42 -05:00
C. Masloch bf085a7ed6 sys: fix gcc build, int86 has to preserve ds
The int86 function is used to call interrupt 21h
service 32h in the reset_drive function. This
function returns a pointer using the ds register.
ds will usually point into the DOS data segment
then (for our kernel). However, the compiler
assumed ds to be unchanged.
2022-12-31 09:37:42 -05:00
Kenneth J Davis c152d551de
fix OW warning W115
cast array using pointer to first element [newboot] instead of pointer to whole array [&newboot] to avoid OW error W115 "&array may not produce intended result" since the address of operator "&" is not required for getting the address of an array.
2022-10-24 17:56:33 -04:00
Piotr Durlej e0818e305b SYS: Fix a bad merge 2021-05-11 21:45:38 -04:00
Piotr Durlej 0a0d55ea53 SYS: Reduce verbosity when the verbose flag is not set 2021-05-11 21:45:38 -04:00
Kenneth J Davis 49d3c8d76b add safety check to FAT12/16 boot sector to warn about breaking sys, update new offset in sys.c for NOPing out use of BIOS boot drive during boot (fix error about boot sector unsupported format) 2021-05-11 21:39:29 -04:00
Bart Oldeman a70f31bf61 ia16-elf-gcc: enable and fix basic warnings; don't do strict ptr aliasing for now 2018-01-11 17:50:31 -05:00
Bart Oldeman 9e04932d2b sys.com compiled with ia16-elf-gcc: fill in missing functions. 2018-01-11 17:50:31 -05:00
Bart Oldeman 71a7d0d264 ia16-elf-gcc: provide GNU LD linker script and symbols to link kernel.
The resulting kernel and sys.com do not work yet (kernel prints 123 only).
Some functions in sys.com are placeholders.
2018-01-11 17:50:31 -05:00
Bart Oldeman fbdbc4c25c C source code changes so the kernel can compile with ia16-elf-gcc.
Use "make all COMPILER=gcc".
Linking does not work yet with these changes.
2018-01-11 17:50:31 -05:00
KJD c431157156 FreeDOS kernel current - 2041+svn1709 2012-10-14 20:08:06 -04:00