Commit Graph

686 Commits

Author SHA1 Message Date
Bart Oldeman
76f1c10a4e Eliminate xlt_fd(), save_far_f_node(), and the redundant fnode f_mode field.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1404 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-26 18:34:05 +00:00
Bart Oldeman
4a81e6e9a2 Let merge_file_changes operate directly on the other SFTs.
dos_setfattr with SHARE now closes open SFTs referring to that file
in compat mode.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1403 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-26 18:23:35 +00:00
Bart Oldeman
386fc961e3 Fix SFT/fnode fields so the SHARE related functions is_same_file() and
merge_file_changes() work.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1402 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-26 16:49:57 +00:00
Bart Oldeman
c179284147 Remove redundant checks for fnodes==0 since the checks are done in dosfns.c.
Replace global f_nodes[] array by f_sft_idx fields in the fnodes.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1401 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-26 14:44:44 +00:00
Bart Oldeman
a69b4ba011 Eliminate the sft_status field as it is now equal to the SFT index.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1400 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-26 14:11:50 +00:00
Bart Oldeman
f9f2fe447d Eliminate dos_getftime, dos_getfsize, and dos_getfattr_fd, because we can
now get these properties directly from the SFT.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1399 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-26 13:59:44 +00:00
Bart Oldeman
e63e5dd125 Eliminate f_count field in fnodes and some no-op functions.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1398 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-26 13:47:52 +00:00
Bart Oldeman
d7d201a53b This is the main change to eliminate far fnodes.
SFT info is copied from and to the two near fnodes.
Some cleanups still follow.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1397 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-26 13:24:14 +00:00
Bart Oldeman
39e6570be9 Make the SFT DOS 4+ compatible and change fields to be unsigned.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1396 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-26 13:09:20 +00:00
Bart Oldeman
0ad01cd768 Handle sft_count before calling dos_open and after calling dos_close so
the SFT is open for longer, during fatfs.c operations.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1395 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-25 22:55:06 +00:00
Bart Oldeman
cb4ab16a22 Fix compilation with -DDOSEMU set.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1394 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-25 00:04:03 +00:00
Bart Oldeman
affddaaf64 Handle dos_getfattr and dos_setfattr directly at the directory level, instead
of opening the file, to avoid needing to claim SFTs in later changes.
Clarify and implement parts of the correct SHARE behaviour.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1393 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-23 02:04:03 +00:00
Bart Oldeman
7083b0a4fa On close or commit, only update those directory entry fields that have an
SFT equivalent. The rest stays unmodified on disk.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1392 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-22 00:25:11 +00:00
Bart Oldeman
ba75006b67 Use explicit dir_write() instead of letting dir_close() do the writing.
This is to prepare for an updating version to deal with SFTs.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1391 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-22 00:01:27 +00:00
Bart Oldeman
d39420dc11 Add f_dirsector (sector containing dentry) and f_diridx (index within
sector) fields to the fnode, to make fnodes more compatible with SFTs.
Use them to simplify dir_read() and dir_write().


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1390 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-21 12:57:37 +00:00
Bart Oldeman
2092745236 Force near fnode use to use either fnode[0] or fnode[1] instead of the
allocation scheme. This eliminates the checks done in inthndlr.c because
the f_count field is no longer checked.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1389 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-20 18:13:37 +00:00
Bart Oldeman
24b9d0e61e Change Linux makefiles to only update what is necessary for subsequent makes.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1388 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-20 00:32:21 +00:00
Bart Oldeman
d6ad12a3dc Add Linux cross-compile capability, using Open Watcom:
* Flip \ to / where possible.
* Introduce $(DIRSEP) (/ or \) for use inside commands in makefiles
  where / won't work in DOS.
* Override various settings for Linux in owlinux.mak.
* Add quotes in exeflat.c to avoid shell expansion of $$$$$.
* Let "make all", "make clean", and "make clobber" do the job.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1387 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-19 21:39:29 +00:00
Bart Oldeman
dbd57dce42 OW 1.8 MS2WLINK is too picky about leading and trailing whitespace so
echoto is changed to not generate any.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1386 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-19 20:31:22 +00:00
Kenneth J Davis
a238ea500f update version # in preparation for next release and to avoid confusion between svn and release kernels
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1385 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-18 09:38:16 +00:00
Kenneth J Davis
32c2f5b1ec update LSM for release
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1383 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-17 01:20:07 +00:00
Kenneth J Davis
73d4d5e0f9 update to refer to SourceForge tracker
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1382 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-17 01:16:58 +00:00
Kenneth J Davis
9c9cb22b2f update version in preparation for 2038 tag and release
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1381 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-17 01:15:46 +00:00
Kenneth J Davis
9e2421746b correct FCB fix from Bart, during open only certain fields of FCB should be initialized, programs may expect others to remain as set prior to open/create call
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1380 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-17 01:06:07 +00:00
Kenneth J Davis
01cc83bc82 From Eric, reduce unnecessary calls to share hook, only re-check (int 2f/1000) on open/close, not on each access
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1379 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-11 22:04:43 +00:00
Kenneth J Davis
d41599e2cc from Lucho, there is no any key, don't ask the user to press it
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1378 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-11 21:45:12 +00:00
Kenneth J Davis
da25cd58b4 use total cylinders (+1 for count, not maximum value)
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1377 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-11 17:11:30 +00:00
Kenneth J Davis
c6b55c1119 From Tom, return 0xFF on invalid drives for int 21h/1c get drive allocation information (sectors/clusters)
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1376 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-10 12:36:57 +00:00
Kenneth J Davis
d9e2861a44 improve comments regarding call PSP:5 patch
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1375 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-08 00:00:17 +00:00
Kenneth J Davis
0d16215fef adjust so FCB reads return data (fix loading of config file [assign.sys] by GEM versions that use FCBs)
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1374 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-07 01:42:16 +00:00
Kenneth J Davis
65f8276a45 fix nasm warning - add missing colon to label
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1373 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-04 03:12:53 +00:00
Kenneth J Davis
240bcc30e2 commit Bart's patch to fix CP/M call psp:05h compatibility call along with some comments to explain the call trampoline
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1372 6ac86273-5f31-0410-b378-82cca8765d1b
2009-05-01 04:25:27 +00:00
Kenneth J Davis
497a2337ef ensure when compiling sys on windows a DOS binary is the target
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1371 6ac86273-5f31-0410-b378-82cca8765d1b
2009-04-30 07:06:12 +00:00
Kenneth J Davis
14116c8fbc fix compile without UPX, XUPX is passed to exeflat so should be unset when not using UPX
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1370 6ac86273-5f31-0410-b378-82cca8765d1b
2009-04-30 07:04:53 +00:00
Kenneth J Davis
ae3d48ab33 Change how DosGetExtFree checks for drive so int 21h/7303h more lax about path given, support driver specifier with or without slash (C: or C:\) and just slash (\) for current drive (does allow some additional bogus paths to return success)
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1369 6ac86273-5f31-0410-b378-82cca8765d1b
2009-04-30 05:16:31 +00:00
Kenneth J Davis
58de498fca Bart's patch to fix compile with OW1.8
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1367 6ac86273-5f31-0410-b378-82cca8765d1b
2009-04-25 16:26:57 +00:00
Eric Auer
31bc1f6149 Added support for BUFFERSHIGH as alias to BUFFERS: No new code
but useful for people who are used to writing HIGH everywhere.
Thanks to Christian Wallbaum the hint that config.txt had both.
Removed code which called int 16.1 in a loop before 16.0 - this
would only be useful if you invoke HLT before each int 16.1 ...


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1366 6ac86273-5f31-0410-b378-82cca8765d1b
2008-06-01 22:44:19 +00:00
Eric Auer
74167734ff Compatibility: Allow fat/data/dir type hints even for disk read
in int 21.7305 to fix compat issue found by Christian Wallbaum.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1365 6ac86273-5f31-0410-b378-82cca8765d1b
2008-04-12 15:54:29 +00:00
Eric Auer
bec1b777f4 New version: fdkernel.lsm, version.h to 2038 / Mar 9 2008
(newest source file is 2008-03-09, initclk.c revision 1359)
Changelog file history.txt: added 2038pre and 2038 sections,       
with a lot of "SVN log summarizing" help from Geraldo :-)


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1364 6ac86273-5f31-0410-b378-82cca8765d1b
2008-03-31 23:04:27 +00:00
Eric Auer
b74026cfb1 Added Geraldo (changelog) and Fritz (config.txt) to contrib.txt
Updated config.txt: verbose, readable, up to date, plain ASCII.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1363 6ac86273-5f31-0410-b378-82cca8765d1b
2008-03-31 22:44:55 +00:00
Eric Auer
a1a79dddea Added information about SVN (subversion), we no longer use CVS.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1362 6ac86273-5f31-0410-b378-82cca8765d1b
2008-03-31 00:20:40 +00:00
Eric Auer
7ee38c21dd Updated URL for bugzilla, added note and URL about SourceForge
feature request tracker for the FreeDOS project.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1361 6ac86273-5f31-0410-b378-82cca8765d1b
2008-03-31 00:19:37 +00:00
Eric Auer
72cb810ead New FSF postal mail address, see www.fsf.org/about/contact.html
51 Franklin Street, Fifth Floor Boston, MA 02110-1301 USA


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1360 6ac86273-5f31-0410-b378-82cca8765d1b
2008-03-31 00:06:18 +00:00
Eric Auer
bfb40c4b1c Workaround for y2k BIOS bugs at the only location where FreeDOS
reads the BIOS (CMOS RTC) date (at boot). Note that according to
RBIL, DRDOS would even hook int 1a ah=4 to force a correct year.

/* A BIOS with y2k (year 2000) bug will always report year 19nn */
if ((dosregs.c.x >= 1900) && (dosregs.c.x < 1980)) dosregs.c.x += 100;


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1359 6ac86273-5f31-0410-b378-82cca8765d1b
2008-03-09 16:11:10 +00:00
Eric Auer
26f116a217 More secure FAT handling: Avoids risk of cross links for example if
you reboot while files are open... Reported by Hardi Stengelin :-).

Always test *link_fat* result. New function is_free_cluster.  Extra
checks in *link_fat* (bad r/w offset, i/o, write) and *next_cluster*
(dangling chain: bad value in chain) with short messages (no msg for
bad chain start). Shorter "Bad DPB" (FAT size) msg.  More comments!

Update FS INFO on disk only when needed.  Check if chain EOF was at
expected place when extending.  Call *link_fat* before! *setdstart*
when a FAT chain grows.   [Q: Does 0 byte write always trunc? Why?]


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1358 6ac86273-5f31-0410-b378-82cca8765d1b
2008-03-08 20:31:37 +00:00
Eric Auer
0cc297cf2d The truename function must use the current working directory of
the virtual / created-by-subst drive when it resolves relative
paths, even though truename returns the "real" drive and dir
of where your files actually are in the end. Using the current
directory of the "real" drive made truename give wrong results.

PS: If "subst e: d:\" says "physical path x:\ cannot be made",
then it refers to "making" a root dir. "subst e: d:\foo" works.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1357 6ac86273-5f31-0410-b378-82cca8765d1b
2007-09-15 22:01:03 +00:00
Eric Auer
0b8ae53670 If FAT32 and a "backup boot sector" exists, also update the
backup boot sector to the contents of the main boot sector.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1356 6ac86273-5f31-0410-b378-82cca8765d1b
2007-09-07 12:46:54 +00:00
Eric Auer
b08c612f36 New bugzilla URL, mention that only writing needs a login.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1355 6ac86273-5f31-0410-b378-82cca8765d1b
2007-09-07 12:45:22 +00:00
Bart Oldeman
953e7b2007 Use _dos_allocmem for OW, similar to the Turbo C technique.
Split copy function into readfile and writefile functions.
Preserve time and date of kernel.sys and command.com.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1354 6ac86273-5f31-0410-b378-82cca8765d1b
2007-08-29 14:17:21 +00:00
Bart Oldeman
69d767be50 Let exeflat call UPX itself like in the unstable branch. Simplifies makefile.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1353 6ac86273-5f31-0410-b378-82cca8765d1b
2007-08-29 08:49:02 +00:00