Commit Graph

33 Commits

Author SHA1 Message Date
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
Kenneth J Davis
569337a7ef
fix bug# 98 (correct bad CONFIG value 19 with bad value 14, should be 6) and add support for additional CONFIG options Verbose and PartitionMode to sys CONFIG processing 2023-12-19 19:50:22 -05:00
Kenneth J Davis
5880d36ba9
add ability to adjust verboseness of messages during booting 2023-12-08 18:08:11 -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
C. Masloch
49733547f1 kernel, main: add debugger_present variable and skip ints 0, 1, 3, 6
Also adds a CheckDebugger byte to the CONFIG block and
support for reading and writing this setting in the
SYS CONFIG program. Default is 0 (no check assume absent).
2022-05-21 23:22:08 -04:00
C. Masloch
6d23a787fb fdkrncfg: bugfix, version info check should not include signature 2022-05-21 23:22:08 -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
Bart Oldeman
33d707ba7f Fix compilation with MSVC 1.52c.
Needs one more file from the c library, BSS_INIT all uninitialized
globals in config.c and a define of SEEK_SET.
2017-12-22 13:13:37 -05:00
KJD
bdc2e068c4 remove some additional built files during clobber, ignore command.com in bin directory 2016-05-12 19:05:02 -04:00
lpproj
0c6be32a7a Add cross-compile capability on Windows with OpenWatcom and mingw32-make
(Remove dependance on 16bit DOS executables when building)
2014-11-22 11:38:43 +09:00
KJD
a260927440 Tell version info without booting kernel 2012-10-15 06:41:07 -04:00
KJD
c431157156 FreeDOS kernel current - 2041+svn1709 2012-10-14 20:08:06 -04:00