MS-DOS Shell Version 1.6READMEApril 1990
MS-DOS SHELL - Copyright (c) 1990 Data Logic Limited and Charles Forsyth
This code is based on (in part) the shell program written by Charles
Forsyth and is subject to the following copyright restrictions:
1. Redistribution and use in source and binary forms are permitted
provided that the above copyright notice is duplicated in the
source form and the copyright notice in file sh6.c is displayed
on entry to the program.
2. The sources (or parts thereof) or objects generated from the
sources (or parts of sources) cannot be sold under any circumstances.
$Header: C:/SRC/SHELL/RCS/readme 1.8 90/08/15 01:18:53 MS_user Exp $
Revision 1.8 90/08/15 01:18:53 MS_user
Add 1.6.3 comment
Revision 1.7 90/04/03 18:07:01 MS_user
Some changes for 1.6 (Int 24 and Config file)
Revision 1.6 90/03/14 12:37:23 MS_user
Add some more 1.6 changes
Revision 1.5 90/03/06 17:01:00 MS_user
Revision 1.4 90/02/22 16:52:41 MS_user
Add XMS support
Revision 1.3 90/02/16 16:58:10 MS_user
Set up 1.5 release
Revision 1.2 90/02/14 04:53:20 MS_user
Interrupt 24 note
Revision 1.1 90/01/25 13:43:20 MS_user
This is an implementation of the Unix Shell for MSDOS. As far as
possible it is compatible with the System V.3 program sh(1). The
following differences are noted:
1) Background or asynchronous commands are not supported
2) Certain internal commands which have no equivalent MSDOS supported
functionality support (ulimit, time etc) are not provided.
3) Command hashing and accounting are not supported.
4) The Shell uses all variables starting with a ~ (tilde) internally
and will not allow you to display them. I don't think this is a
difference from the user's view, just internally.
5) 8 bit character sets are not supported.
The following enhancements have been made for the MSDOS environment.
These enhancements are described in the appropriate section of the
1) The Shell will swap itself out to one of the following:
- Expanded memory
- Extended memory
- Disk (this is the slowest)
The swapping is controlled by the shell internal command swap. If
swapping is enabled, the shell only uses 3K of memory whilst a
child process is executing.
Note: Swapping to Extended memory is probably the most dangerous
unless you have an XMS memory manager available. The shell
requires the XMS manager to support the version 2 XMS
2) History processing has been added.
3) Command line editing has been added. A configuration file (sh.ini)
allows the Command Line editing keys to be tailored to the users
4) The command line prompt can be programmed to display 'useful'
5) The shell uses Unix format file names (ie slashes and not
backslashes) to delimit directories. Some programs require certain
environment variables to be in MS-DOS format (using backslashes).
The msdos command allows these variables to be marked so that they
are set correctly when the environment for a program is set up.
6) Extended command line processing is supported using the parameter
@ to a command. Examples of this include the Microsoft
Linker and Librarian and of course the Shell itself. A version of
stdargv.c which supports this format (and wildcards from a normal
command line) is included.
7) Wild cards on drives (ie echo *:*.c will echo all the C files in
the current directories of each drive) are supported.
8) Full Interrupt 24 processing has been added.
9) Filename completion has been added.
10) Alternate command interpreters are supported in shell scripts a la
11) A configuration file is supported to allow edit key specification.
12) The support of POSIX P1003.2 commands has been started.
The shell was built using MS-DOS C and MASM v5.1 in large model mode.
In order to rebuild this program, you need the DIRECTORY(3) functions
for MSDOS (also included) and the version of open in your library must
pass the O_NOINHERIT bit on the MSDOS kernel. The Microsoft C V5.1
library does not pass this bit on to the MSDOS open System call. I
fixed this using CodeView to find where the library function masks off
the bottom 2 bits. Extracted the object from the library and patched
mask from 0x03 to 0x83 in the object and reload into the library. No
Problem. The Patch.Lib document describes the process in more detail.
You can do want you like with this software as long as you don't sell
it or remove the Copyright notices in the sources or object.
If you have any problems or want to let me know about any enhancements
you have made (which could be included in a new general release), you
can contact me at
Data Logic Limited
Middlesex, HA1 1YR
Phone : +44 1 863 0383
E-Mail: [email protected] or ukc!datlog!istewart
Unix is a registered trademark of AT&T Bell Laboratories
Microsoft, MSDOS and CodeView are registered trademarks of Microsoft