Commit Graph

633 Commits

Author SHA1 Message Date
Eric Auer
94085ce923 Changed copy() to use a two pass algorithm: Now SYS first calls
copy to read kernel and command.com into RAM, then updates the
boot sector, then calls copy again to write kernel and command
from RAM to disk. This reduces disk changes a lot when you do
SYS A: B: on a PC which only has 1 diskette drive ("DJ style").


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1349 6ac86273-5f31-0410-b378-82cca8765d1b
2007-08-27 00:23:38 +00:00
Eric Auer
94d0560e7b Do not ABORT if image size is above 1 MB - Instead, handle size
MODULO 1 MB (paras = low_16_bits(pages<<5) ...) because for e.g.
Turbo C++ 3.0 needs this: Their IDE is 1.3 MB BOSS NE style EXE,
the first < 0.3 MB load a DOS ext which loads and runs the rest.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1348 6ac86273-5f31-0410-b378-82cca8765d1b
2007-08-25 02:37:59 +00:00
Eric Auer
f7320f6452 Init HaltCpuWhileIdle to 0 before installing int handlers.
Removed HaltCpuWhileIdle handling from GetBiosKey because it is
only used *before* IDLEHALT is processed anyway - in the config
sys menu *and* in CheckContinueBootFromHarddisk. Adding s.th.
like "switches /i" would be a way to enable it a bit earlier.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1346 6ac86273-5f31-0410-b378-82cca8765d1b
2007-08-17 19:33:24 +00:00
Eric Auer
ab53a50c49 Mktemp (21.5a) only inserts leading backslash in temp file name
if no directory given in template if DOS version is 5.
Older and newer DOS versions just use no dirspec in that case.
This helps ftp.sac.sk/pub/sac/pack/iup067.zip exepacker which
tries to rename the temp file to a file in current directory.

Prepared Truename (21.60) to return 0 if okay, 3a00 if char dev
(and not JOIN / network?). May need further coding to actually
have the intended effect...? Note: The shell TRUENAME command
may change names for display!

Changed the "true DOS version" for FAT16 kernels from 5.0 to
6.22 to reflect the updates in 21.5a and 21.60, other 5 / 6
differences are not simply in the kernel but more in COUNTRY,
KEYB, HIMEM, SMARTDRV, DBLSPACE, EMM386, COMMAND and so on.
In addition, 6.22 is a popular version number to report :-).


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1345 6ac86273-5f31-0410-b378-82cca8765d1b
2007-07-28 19:03:40 +00:00
Eric Auer
65798a9203 Clarified description of 21.63 (country / nlsfunc), 21.71
(long file names) and 21.5d0x (share). The share extensions
need both SHARE and kernel extensions, neither are done yet.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1344 6ac86273-5f31-0410-b378-82cca8765d1b
2007-07-28 18:29:50 +00:00
Bart Oldeman
c3bd779112 Reinstated _IRQTEXT, now with corrected segment loads in irqstack.asm.
It is better to use groups than segments here.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1343 6ac86273-5f31-0410-b378-82cca8765d1b
2007-07-23 11:23:11 +00:00
Bart Oldeman
43399a4335 Correct fat32readwrite prototype and register use in detect LBA pragma.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1342 6ac86273-5f31-0410-b378-82cca8765d1b
2007-07-23 09:53:49 +00:00
Eric Auer
c2fababb01 Reverted the "add new IRQTEXT" segment patch from 1324->1325
again, as this made the kernel crash in Bochs in PostConfig
(or short before or after it). FASTBOOT should still be okay.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1341 6ac86273-5f31-0410-b378-82cca8765d1b
2007-07-21 21:46:17 +00:00
Eric Auer
37cfbe2e44 Updated lsm and version.h ("svn snapshot", will settle into 2038),
updated history.txt (only my changes this week, needs cleanup!).


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1340 6ac86273-5f31-0410-b378-82cca8765d1b
2007-07-21 04:01:02 +00:00
Eric Auer
1e5efe260e New config.sys (config.c, config.txt) options: IDLEHALT=n to activate
"HLT on idle" (dosidle.asm, int2f.asm) and KEYBUF=n[,m] to relocate
the keyboard buffer to another area in the 40:ac..40:1ff range. Global
functions and variables: proto.h DosIdle_hlt, init-mod.h and globals.h
DosIdle_hlt() and HaltCpuWhileIdle.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1339 6ac86273-5f31-0410-b378-82cca8765d1b
2007-07-21 03:37:53 +00:00
Eric Auer
cf05259924 Removed "Dutch plurals" ("Dutch plural's" ;-)) from the source code:
kernel/fatfs.c kernel/config.c kernel/kernel.asm kernel/initdisk.c
kernel/fattab.c kernel/dyninit.c kernel/int2f.asm kernel/memmgr.c
kernel/task.c kernel/dsk.c kernel/printer.asm kernel/globals.h
kernel/dosfns.c docs/config.txt hdr/device.h drivers/rdpcclk.asm


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1338 6ac86273-5f31-0410-b378-82cca8765d1b
2007-07-20 20:52:33 +00:00
Bart Oldeman
c10f276c46 Really fix the 8086 issue!
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1337 6ac86273-5f31-0410-b378-82cca8765d1b
2007-06-17 21:23:12 +00:00
Bart Oldeman
4d7fc0f7ed Disable interrupts before storing IVTs and fix the 8086 kernel.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1336 6ac86273-5f31-0410-b378-82cca8765d1b
2007-06-17 21:20:50 +00:00
Bart Oldeman
a4bc22884c Use the largest possible lastdrive value ('Z',26) for the initial CDS.
This allows device=f:\foo.sys to work.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1335 6ac86273-5f31-0410-b378-82cca8765d1b
2007-06-04 16:54:11 +00:00
Bart Oldeman
3f1938d8e8 Fix bug 1953: 21h/29h returns 0 (valid) for all drive root names up to
LASTDRIVE. Also, if the drive is invalid this function no longer fills in
any values in the destination FCB.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1334 6ac86273-5f31-0410-b378-82cca8765d1b
2007-06-04 16:35:53 +00:00
Bart Oldeman
920274e93a Fix stack for UPX-compressed kernels via a .sys file; adjust the threshold
from 64K to the real UPX limit which is 65420.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1333 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-28 18:45:52 +00:00
Bart Oldeman
5fa8f24fb7 Fix zero timeouts for GetBiosKey (F5/F8 handling).
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1332 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-28 18:01:59 +00:00
Bart Oldeman
77af35928e Documentation updates merged from UNSTABLE
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1331 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-26 22:21:04 +00:00
Bart Oldeman
ce58a924fe Fix builds with Turbo C.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1330 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-26 21:57:11 +00:00
Bart Oldeman
29d6eb79f1 Use dos/sys compression if the uncompressed kernel is less than 64K. That
makes the compressed kernel about 2K smaller.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1329 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-26 21:20:58 +00:00
Bart Oldeman
ad58440395 Process relocations before compressing kernel.sys. This shaves about 130 bytes
off the compressed kernel.sys.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1328 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-26 20:03:51 +00:00
Bart Oldeman
ca4ea74eeb Replace UPX trailer in exeflat by the more flexible one from UNSTABLE.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1327 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-26 19:35:20 +00:00
Bart Oldeman
eeef2f7efd Implement an int19 hook (from Japheth's JEMFBHLP.ASM).
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1326 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-26 17:34:12 +00:00
Bart Oldeman
dc840d98f4 Jemm's FASTBOOT needs interrupt vectors at 0070:0100 so put them there,
eliminating the need for JEMFBHLP.EXE


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1325 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-26 16:57:15 +00:00
Bart Oldeman
fc3a696ca3 Add share to the stable kernel too.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1324 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-21 03:46:06 +00:00
Bart Oldeman
acbc504765 Fix Bugzilla Bug 1956: all file opens fail under specific conditions.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1323 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-21 02:29:01 +00:00
Bart Oldeman
4a8c30c6e2 Fix problem with an old game that calls findfirst with attribute 77a8:
the kernel should not return a volume label in that case.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1322 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-21 02:17:44 +00:00
Bart Oldeman
ea91fd0236 Extra check for EBDA move: ramsize == peek(0, RAMSIZE) by Tom Ehlert
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1321 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-21 02:16:36 +00:00
Bart Oldeman
fbd8d43ccb From Eric: add some comments about what intr() does.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1320 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-21 02:15:56 +00:00
Bart Oldeman
7d18a16081 Read partition tables using CHS methods unless instructed to do otherwise.
Fixes problems with some older boot sector managers like PROT.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1319 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-21 01:57:21 +00:00
Bart Oldeman
c20a106569 Fix warning with OW 1.7 in-development.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1318 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-21 01:14:20 +00:00
Bart Oldeman
d99cfc38c1 Add Tom Ehlert's freeing of near f_node's work-around for problems with
INT24 handling.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1317 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-15 17:50:22 +00:00
Bart Oldeman
1e98a86033 Remove unused intr prototype for resident code; add dir kernel.exe (TE),
cosmetic p=A -> p = A (TE).


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1316 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-15 17:48:47 +00:00
Bart Oldeman
511646b03f Set OEM name to FRDOS5.1 instead of FreeDOS as Win9x seems to require 5
uppercase letters, digit(4 or 5) dot digit (Tom Ehlert)


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1315 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-15 17:46:30 +00:00
Bart Oldeman
2618be338f Implement floppy change notification via int2f/ax=4a00 (originally by
Tom Ehlert). Add forgotten bit of NLS int2f.asm change.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1314 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-15 17:44:02 +00:00
Bart Oldeman
f2823f9f27 Changed and optimized call_nls a bit to return the id in the high word
of a long, eliminating the on-stack pointer.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1313 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-15 17:41:35 +00:00
Bart Oldeman
85856ae35b Always set lr.ES just before the "break". Enables the compiler to do some
tail merge optimizations.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1312 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-15 04:26:45 +00:00
Bart Oldeman
81da8db94d Having set extended error like Tom is a little smaller.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1311 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-15 04:22:30 +00:00
Bart Oldeman
f777f91f4c Ioctl optimization using a command table, present both in Tom's and the
unstable kernel. ~83 bytes saved.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1310 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-15 04:12:53 +00:00
Bart Oldeman
2faf38e208 Fix typo in booot (from Tom's kernel).
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1309 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-15 03:10:02 +00:00
Bart Oldeman
2466934534 Fix OW 1.6 warnings about functions redeclared as 'static'.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1308 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-15 00:05:41 +00:00
Bart Oldeman
818e1bf0da Fix OW warnings about "unsigned int <= 0".
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1307 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-14 23:53:46 +00:00
Bart Oldeman
46d959f0cb Fix the NUL device so it returns 0 bytes for reads, independent of whether
cooked or raw mode is used. It was broken for raw mode. Fixes problem
with DJGPP sed (see
http://sourceforge.net/tracker/index.php?func=detail&aid=1429741&group_id=49784&atid=457447)


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1306 6ac86273-5f31-0410-b378-82cca8765d1b
2007-05-14 23:52:39 +00:00
Bart Oldeman
599278eeae Build system adjustments from the FD1.0 kernel. Shuts up dos4g and some
other stuff.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1305 6ac86273-5f31-0410-b378-82cca8765d1b
2006-10-31 21:13:02 +00:00
Bart Oldeman
56d8008672 Fix QB4 MCB problem (from FD1.0 kernel).
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1304 6ac86273-5f31-0410-b378-82cca8765d1b
2006-10-31 21:08:12 +00:00
Bart Oldeman
c952ceff61 Clear high 4 bits of FAT32 FAT table entries & diagnostics. From FD 1.0
kernel.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1303 6ac86273-5f31-0410-b378-82cca8765d1b
2006-10-31 21:05:09 +00:00
Bart Oldeman
4768a9d2f8 Serial code fixes from the FD1.0 kernel.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1302 6ac86273-5f31-0410-b378-82cca8765d1b
2006-10-31 21:01:38 +00:00
Eric Auer
ba7bde0bdf VERSION=x.yy must set the setver-able DOS version, not the "true internal"
DOS version. The setver-able version is the one queried by int 21.30 and
settable by int 21.33fc, internal version is the one queried by int 21.3306.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1190 6ac86273-5f31-0410-b378-82cca8765d1b
2006-05-21 18:50:30 +00:00
Eric Auer
db243d4688 Updated the year in the "copyright" string which is used for the
signon message at boot time. Note that the string in globals.h is
no longer used! Message is now:
(C) Copyright 1995-2004 Pasquale J. Villani and The FreeDOS Project.
All Rights Reserved. This is free software and comes with ABSOLUTELY NO
WARRANTY; you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation;
either version 2, or (at your option) any later version.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1189 6ac86273-5f31-0410-b378-82cca8765d1b
2006-05-20 21:01:29 +00:00
Eric Auer
2d8b3b8f91 LSM update: the kernel now identifies itself as build 2036 cvs. Actually
the UNSTABLE kernel should identify itself as build 2037 test, which has
to be uploaded to the cvs (branch) for UNSTABLE separately. The kernel
signon message is now:
FreeDOS kernel build 2036 cvs [version Sep 09 2005 compiled May 20 2006]
Kernel compatibility 7.10 - WATCOMC - 80386 CPU required - FAT32 support
... (second line depends on compile time options)
IMPORTANT: The "version Sep 09 2005" is taken from version.h and must
be updated manually. It is meant to state the date of the most recent
major source code update for the current build.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1188 6ac86273-5f31-0410-b378-82cca8765d1b
2006-05-20 20:58:54 +00:00