Commit Graph

176 Commits

Author SHA1 Message Date
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
lpproj
08c05b1d7a Fix build break on DOSish buildenv 2014-11-22 11:40:26 +09: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
8ca06cf20a Fix FCB parse filename (int21h func 29h) - update filename separators and terminators and remove extra handling of spaces, invert lead separator parsing to match description in MS Encyclopedia pages 269 and 1263-1264. 2014-11-04 23:01:35 -05:00