Commit Graph

209 Commits

Author SHA1 Message Date
Bart Oldeman
8db46073f9 From: Eric Luttmann <ecl@users.sourceforge.net>
Fix for multisegmented device drivers: If there are multiple device
drivers in a single driver file, only the END ADDRESS returned by the
last INIT call should be the used.  It is recommended that all the
device drivers in the file return the same address.
This fixes a load problem with DUSE.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@721 6ac86273-5f31-0410-b378-82cca8765d1b
2003-10-26 13:07:49 +00:00
Bart Oldeman
58808de6c8 Fix typo.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@719 6ac86273-5f31-0410-b378-82cca8765d1b
2003-10-16 15:05:10 +00:00
Bart Oldeman
492fef1f72 Change FcbReadWrite to handle multiple records at once; this allows
for the optimization of FcbRandomBlockIO.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@718 6ac86273-5f31-0410-b378-82cca8765d1b
2003-10-16 15:03:16 +00:00
Bart Oldeman
dd9df1f3a6 Divide optimisation (ceiling) + some small cleanups
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@717 6ac86273-5f31-0410-b378-82cca8765d1b
2003-10-16 14:25:15 +00:00
Bart Oldeman
61d87d82bb Rename the global lpFcb variable to sda_lpFcb. Then use local lpFcb
variables where necessary. This clears up the confusing shadowing.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@716 6ac86273-5f31-0410-b378-82cca8765d1b
2003-10-16 13:01:55 +00:00
Bart Oldeman
fdb58291c4 Fix FCB problems with int21/ah=27,28 (RandomBlockIO)
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@715 6ac86273-5f31-0410-b378-82cca8765d1b
2003-10-11 23:58:51 +00:00
Bart Oldeman
11e163096d Added SET support to config.sys + some small cleanups (from Lucho)
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@714 6ac86273-5f31-0410-b378-82cca8765d1b
2003-10-05 16:22:57 +00:00
Bart Oldeman
3fa044c149 Implement support for int2f/ax=1220.
Fix int2f/ax=1216 (needs sft handles, not psp handles, and to return
the relative handle in BX, and to deal with carry)


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@712 6ac86273-5f31-0410-b378-82cca8765d1b
2003-10-05 13:30:47 +00:00
Bart Oldeman
bdc5569995 Set the Critical Error number immediately after calling a device driver.
This solves problems with int24 handlers that call int21/ah=59.
Let truename and blockrw return with an error if there is a critical error.
Don't overwrite the critical error # with the DOS error #.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@709 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-24 19:34:11 +00:00
Bart Oldeman
6df5c0be61 Fix problem with loading multiple device drivers in one file: the
segment part in the header must be ignored.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@708 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-24 18:53:44 +00:00
Bart Oldeman
9fd4a67e1d Correct segment for int21_handler to call for ctrl-c.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@707 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-23 22:33:45 +00:00
Bart Oldeman
22dd4265cf Fix problem with character map service.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@705 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-22 18:57:45 +00:00
Bart Oldeman
c4e02e8654 Correct floppy booting; increase "menu space tolerance" from 3 to 10.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@701 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-19 02:13:35 +00:00
Bart Oldeman
df99dd3007 Use memcpy instead of fmemcpy; avoid downcasting from far to near.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@698 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-18 21:00:09 +00:00
Bart Oldeman
d38750a538 From Michal Bakowski <mb@orad.pl>:
Change the boot drive to always be C: if DLASortByDriveNo==1


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@697 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-18 20:57:53 +00:00
Bart Oldeman
f489b1a1b1 Full screen config.sys menus (use MENUCOLOR=)
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@696 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-18 20:55:41 +00:00
Bart Oldeman
c20f68e73d Free memory if there is an error in the relocation table.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@695 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-18 20:54:21 +00:00
Bart Oldeman
2f4e2d3a69 * add support for the far jmp at "int 30" (0000:00c0)
* mirror it for the HMA (ffff:00d0)
* put all DOS int handler (and the CPM entry jumped to from int30)
  jumpers in the "CONST" portion of DGROUP (instead of LGROUP)
  This helps Turbo C++ 1.01 make with the -S (swap) switch.
* adjustments to set the relevant PSP fields in task.c


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@694 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-16 12:38:02 +00:00
Bart Oldeman
7c241c59c6 Always use huge block sectors if the relevant bit is set in the device
header. This solves a problem with xmsdsk.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@693 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-15 21:08:22 +00:00
Bart Oldeman
81654429d7 Small optimizations
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@692 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-15 10:55:58 +00:00
Bart Oldeman
7bcbfa999c Add missing (); small optimization for DosGet date/time.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@691 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-15 10:54:43 +00:00
Bart Oldeman
178b66e6de Flip some slashes for Linux compat; simplifications in kernel/makefile
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@688 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-15 10:46:24 +00:00
Bart Oldeman
b0e54ff704 (with a little help from Arkady)
inthndler.c, chario.c, break.c simplifications and cleanups.
Pass a near pointer to the far pointer that points to the device instead
of an SFT index (in general).
Make cooked_write much faster by only testing for input every 32
characters.
No longer test for ctl_s on syscon if writing to the printer: just
read from the printer which will return zero characters.
Fix reading/writing zero characters by returning "256" (special code).
Adjust interfaces in other files.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@683 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-09 17:43:43 +00:00
Bart Oldeman
8c22873b3e Initclk changes (mainly by Lucho)
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@682 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-09 17:33:23 +00:00
Bart Oldeman
b4bee283f9 (suggestion from Arkady)
if sizeof(struct ClockRecord) != rp->r_count error
move year init below reading the BIOS
remove trailing whitespace


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@681 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-09 17:32:20 +00:00
Bart Oldeman
59484b2fc9 EBDA corrections by Lucho
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@680 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-09 17:30:10 +00:00
Bart Oldeman
6cd84b06d1 init_device corrections/cleanups (mainly by Arkady)
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@679 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-09 17:29:19 +00:00
Bart Oldeman
72c8bf17b8 Support for switches=/e[[:]nnnn] and for moving the EBDA (with Lucho)
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@675 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-04 19:14:16 +00:00
Bart Oldeman
d1f48fb2b2 Add necessary "BootHardDiskSeconds" for non UPXed kernels.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@674 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-04 19:07:55 +00:00
Bart Oldeman
1266a13f7f Add necessary casts to ? : constructions; cleanup read_line_handle a little.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@673 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-04 19:05:27 +00:00
Bart Oldeman
67ef543bae Fix pointer overflow problem for reading line using handle.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@671 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-01 17:49:40 +00:00
Bart Oldeman
bef6672954 Use 0x10000UL (avoids Turbo C warning)
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@667 6ac86273-5f31-0410-b378-82cca8765d1b
2003-08-31 10:22:32 +00:00
Bart Oldeman
8f1bbcd45d Set the PSP before the DTA. This solves an interrupt vector table corruption.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@665 6ac86273-5f31-0410-b378-82cca8765d1b
2003-08-30 22:17:42 +00:00
Bart Oldeman
df5776dca7 Adjustments for MSVC.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@663 6ac86273-5f31-0410-b378-82cca8765d1b
2003-08-28 21:03:47 +00:00
Bart Oldeman
f5a65b5992 int21/ax=440d lock/unlock logical/physical volume
simulate success for MS-DOS 7+ SCANDISK etc. --LG


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@662 6ac86273-5f31-0410-b378-82cca8765d1b
2003-08-28 20:55:34 +00:00
Bart Oldeman
7471b8f614 && should be || in check for \, / and :
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@661 6ac86273-5f31-0410-b378-82cca8765d1b
2003-08-28 20:53:21 +00:00
Bart Oldeman
4e0c27f016 Adjust registers used when starting programs. Some demos expect
undocumented values.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@660 6ac86273-5f31-0410-b378-82cca8765d1b
2003-08-28 20:47:25 +00:00
Bart Oldeman
9b42b52056 Use "local" (instead of "global") disable/enable A20.
This solves the problems with NIOS.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@656 6ac86273-5f31-0410-b378-82cca8765d1b
2003-08-28 20:32:01 +00:00
Bart Oldeman
c444161296 Use near bpb on the stack in bpb_to_dpb.
Make sure the number of FAT sectors is actually enough to hold that
many clusters. Otherwise back the number of clusters down (LG & AB)


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@655 6ac86273-5f31-0410-b378-82cca8765d1b
2003-08-28 20:30:09 +00:00
Bart Oldeman
68805961dc Don't disable a20 for "exit" int21/ah=4c
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@654 6ac86273-5f31-0410-b378-82cca8765d1b
2003-08-28 20:25:09 +00:00
Bart Oldeman
8a7b83ab63 Remove (unused) strncpy.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@653 6ac86273-5f31-0410-b378-82cca8765d1b
2003-08-09 09:35:18 +00:00
Bart Oldeman
3229fe3fc4 From Luchezar: IOCTL 4406 provided reverse AL output on regular
files - FF if EOF, 0 if not. It should output 0 if EOF, FF if not.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@651 6ac86273-5f31-0410-b378-82cca8765d1b
2003-08-06 19:47:24 +00:00
Bart Oldeman
2b0c219e5e Solve compilation problem with Borland C++ 3.1
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@649 6ac86273-5f31-0410-b378-82cca8765d1b
2003-08-03 10:44:29 +00:00
Bart Oldeman
96c1c46d60 Fix ctrl-break bug.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@644 6ac86273-5f31-0410-b378-82cca8765d1b
2003-07-20 17:33:45 +00:00
Bart Oldeman
c672e81012 Correct problem with multiple UMBs
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@641 6ac86273-5f31-0410-b378-82cca8765d1b
2003-07-19 15:06:55 +00:00
Bart Oldeman
8a9dcfe8bb (from Tom) Fix a problem with the
'BootFromHarddiskIfNoKeyHit' option.
with some Compaq and Fujitsu/Siemens
Highend Equipment


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@640 6ac86273-5f31-0410-b378-82cca8765d1b
2003-07-15 12:32:35 +00:00
Bart Oldeman
dde7ba7791 There aren't lastdrive open file handles but a maximum of 20.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@638 6ac86273-5f31-0410-b378-82cca8765d1b
2003-07-14 19:17:01 +00:00
Bart Oldeman
7f21061003 Make a message #ifdef DEBUG only.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@637 6ac86273-5f31-0410-b378-82cca8765d1b
2003-07-12 20:57:23 +00:00
Bart Oldeman
756c578ca7 (joint with Luchezar Georgiev): add extra low disk buffer to avoid HMA
problems with certain device driver. Add an extra space for the device
driver command line and point to a correct environment for
INSTALL= (fixes problems with xmsdsk).


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@636 6ac86273-5f31-0410-b378-82cca8765d1b
2003-07-12 20:56:11 +00:00
Bart Oldeman
d7f6e1181f From Luchezar Georgiev: parameters were in the wrong order...
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@635 6ac86273-5f31-0410-b378-82cca8765d1b
2003-07-10 10:46:31 +00:00