Bart Oldeman
89d97b18de
Fix ASMCFUNC (FAR) functions for ia16-elf-gcc.
...
We need to use make the functions vararg (,...) to make them cdecl.
For FAR functions we need wrappers.
2018-01-11 17:50:31 -05:00
Bart Oldeman
9b5b2e7d60
Create init varieties for unsigned long helper functions.
...
An INITPATCH is used to make sure the correct symbols are used.
The GCC kernel now shows the copyright string and boots a little further.
2018-01-11 17:50:31 -05:00
Bart Oldeman
97003a8aca
Introduce popargs and arg macros to distinguish PASCAL/STDCALL conventions.
...
GCC has -mrtd but the args are pushed in reverse versus PASCAL. So asm
routines have to use macros to obtain the stack arguments.
For the complex call_nls assembly, revert the arguments in C using a
preprocessor macro.
2018-01-11 17:50:31 -05:00
Bart Oldeman
f6d62165e0
ia16-elf-gcc: introduce DOSTEXT and DOSDATA macros.
...
Using DOSTEXT(x) accesses x in LGROUP and DOSDATA(x) in DGROUP.
This is necessary since ia16-elf-gcc does not understand data
in far segments.
For non-macro'ed symbols, FP_SEG needs to be replaced by explicit
segment references.
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
7bf4b77233
ia16-elf-gcc port: compile all asm files with -f elf.
...
Because ia16-elf-gcc and the GNU linker do not understand OMF we
need to use ELF everywhere.
This also means we cannot use "wrt", "seg" and "call/jmp far".
Most wrt's are superfluous, and seg and call/jmp far can be
replaced by explicit ?GROUP references (to be defined in the
linker script).
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
705268267c
Use DOSTEXTFAR and DOSFAR for kbdType and internal_data.
2018-01-11 17:50:31 -05:00
Bart Oldeman
0b26c3f18f
NLS: clean up to use the struct more and fewer relocations.
2018-01-11 17:50:31 -05:00
Bart Oldeman
fdac78cc67
Fix compilation with TC2 (no // comments; a global variable needs ASM)
2017-12-22 13:14:11 -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
Bart Oldeman
e82de4b707
Introduce end-of-line normalization
2017-12-22 09:37:31 -05:00
Bart Oldeman
ab6d98ff56
.gitignore: be more thorough
2017-12-22 09:37:31 -05:00
Stas Sergeev
44cf0a17a1
fix and enable i386 support
...
This gives ~5K size reduction with bc3.1.
Today no one uses pre-i386 CPUs so there is no good
reason against having an extra optimization.
2017-12-06 23:13:47 -05:00
Stas Sergeev
8187fd8153
disk: fix sectors count truncation for CHS [ fixes #10 ]
...
LBA_to_CHS() uses geometry taken from BIOS, but LBA_Transfer()
was using the geometry from VBR. This caused "count" variable
to underflow over unsigned long, then corrupting the entire
DOS memory with the large read.
This patch makes LBA_to_CHS() to return the geometry to caller,
so that the calculus do always match.
Thanks to @ecm-pushbx and @andrewbird for helping to
nail this down.
2017-09-22 23:03:47 -04:00
Stas Sergeev
5fb0c4482d
config: enable fat32 support
...
These days everyone wants fat32 support. :)
2017-09-22 07:12:15 -04:00
PerditionC
2835dfe920
Merge pull request #8 from stsp/chain
...
Implement CHAIN directive
2017-02-11 13:00:40 -05:00
Stas Sergeev
0b541ffd81
implement CHAIN directive for config.sys
2016-10-07 00:22:56 +03:00
Stas Sergeev
baad0b69dd
remove trailing spaces in config.c
2016-10-06 23:01:14 +03:00
Stas Sergeev
5c168c350e
add bc3 build support
2016-10-06 07:23:59 -04:00
Stas Sergeev
f4c9691ef5
fix watcom check
...
WATCOM var may be defined in autoexec.bat, but this doesn't
mean the user wants to build with watcom.
Check the COMPILER="WATCOM" instead.
2016-10-06 07:23:59 -04:00
Stas Sergeev
0b303a23b4
nasm16 no longer exists
2016-10-06 07:23:59 -04:00
Stas Sergeev
68693a71c5
add missing ASM to fix build
...
Without this I am getting undefined reference to
_ReturnAnyDosVersionExpected
2016-10-06 07:23:59 -04:00
Stas Sergeev
e698ae2b3b
unix2dos bat files
...
ms-dos/pc-dos command.com does not understand unix line-endings.
2016-10-06 07:23:59 -04:00
PerditionC
63b31b301d
Merge pull request #4 from lpproj/fix_20160206
...
some fixes (initial DTA and NUL device)
2016-10-05 17:50:51 -04:00
KJD
5406ba5a9b
add initial tests for DOS absolute sector read/write
2016-05-12 19:44:39 -04:00
KJD
bdc2e068c4
remove some additional built files during clobber, ignore command.com in bin directory
2016-05-12 19:05:02 -04:00
KJD
99a5e09f28
update history (based on git log)
2016-05-10 00:50:08 -04:00
KJD
14906e110d
Update contributors list
2016-05-10 00:06:15 -04:00
KJD
445aee81d3
merge changes with SVN source for building packagesignore svn or git hidden directories, default to build with win support, better usage message.
2016-05-09 23:35:14 -04:00
lpproj
cab8092ad6
Fix memory break in NUL device
2016-02-06 13:43:34 +09:00
lpproj
e024f72a4c
Fix initial DTA
2016-02-06 13:32:36 +09:00
KJD
c9300387e7
Implement Int 2F/AX=120Bh based on RBIL description
2016-01-16 20:56:29 -05:00
KJD
ad3d7802f6
Implement Int 2F/AX=120Ah based on RBIL description - untested!
2016-01-16 16:46:22 -05:00
KJD
618e682a3b
From Evelyn, CPU unsupported message missing loading error msg address (pop si)
2016-01-15 22:34:38 -05:00
PerditionC
55fe761ebf
Merge pull request #3 from lpproj/underdesk_201509
...
Multiple fixes
2015-09-22 01:30:35 -04:00
lpproj
a87e233849
Copy FCB-format filename from PriPathName
...
(some redirectors require FCB-format filename stored in SDA+22Bh DirEntBuffer)
2015-09-22 12:19:27 +09:00
lpproj
9f254f2bee
Fix memory break on loading country information (in config.sys)
2015-09-22 12:15:26 +09:00
lpproj
bc4615093a
Fix an error at opening a character device prefixed with invalid drive letter (e.g. "@:NUL")
...
(some application use it for opening character device driver)
2015-09-22 12:06:43 +09:00
lpproj
2394f842ce
Fix incompletion on loading huge (more than 65280 bytes) binary device driver
2015-09-22 12:02:57 +09:00
lpproj
5756cf8d26
On creating child PSP (func 0x55), copy command line parameters from the parent
...
(required for some device loaders)
2015-09-22 11:58:25 +09:00
KJD
234ed1181f
Improve support for older BPB based volumes lacking extended fields.
...
Based on lpproj's nec98:Fix for DOS 3.x partitions
5fab40fc63
On loading BPB check signature if extended fields (serial#, volume, and fstype) are available, use dummy values if not.
Return error if attempt to set BPB serial# and not part of BPB.
2015-05-27 23:54:45 -04:00
PerditionC
6e1274b1b3
Merge pull request #2 from lpproj/underdesk
...
fix for fat16 build and DBCS
2015-04-13 07:24:09 -04:00
lpproj
7eca245bad
Fix broken decompression on loading FAT16 kernel (compressed in dos/sys)
2015-04-13 00:03:25 +09:00
lpproj
2efc2e8f69
Increase size of nlsDBCSHardcoded (to sizeof struct nlsDBCS)
2015-03-29 22:46:57 +09:00
lpproj
6d9a39d646
Write correct length of DBCS table on loading country.sys
2015-03-29 22:37:46 +09:00
lpproj
effd87fafb
Return current country code (func 0x38)
2015-03-29 15:16:59 +09:00
PerditionC
7f649868f9
Merge pull request #1 from lpproj/prototype
...
Cross-build on Windows and DBCS fix
2014-11-21 22:34:40 -05:00
lpproj
504fd16746
Enable to load DBCS table from COUNTRY.SYS
2014-11-22 11:42:05 +09:00
lpproj
0246178809
Fix pointer of DBCS table (int 0x21, func 0x6300)
2014-11-22 11:41:07 +09:00