home *** CD-ROM | disk | FTP | other *** search
- MS-DOS Shell Version 2.0 README April 1992
-
- MS-DOS SHELL - Copyright (c) 1990,1,2 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:/usr/src/shell/rcs/readme 2.0 1992/04/13 17:40:33 Ian_Stewartson Exp $
-
- $Log: readme $
- Revision 2.0 1992/04/13 17:40:33 Ian_Stewartson
- MS-Shell 2.0 Baseline release
-
-
- ________________________________________________________________________________
-
- This is an implementation of the Unix Shell for MSDOS. As far as possible it
- is compatible with the System V.4 program sh(1) with ksh(1) extension. The
- following differences are noted:
-
- 1) Background or asynchronous commands are not supported under MSDOS. Some
- support is provided under OS/2, but it is not as full as UNIX. You can
- only run one command and not a pipeline in background.
-
- 2) Certain internal commands which have no equivalent MSDOS or OS/2 supported
- functionality support (ulimit, time etc) are not provided.
-
- 3) Command hashing and accounting are not supported.
-
- 4) Some of the ksh functionality has not yet been implemented or made ksh
- compatible (command line editing for example).
-
- 5) 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.
-
- The Shell has been tested mainly under MSDOS 3.3 and 4.01, and OS/2 1.3. But
- has also been run successfully on MSDOS 5.0 and OS/2 2.0. It has exposed some
- shortcomings in the C6.0 compiler and MSDOS library. As such, using C5.1 and
- its library are prefered when re-building the shell for MSDOS.
-
- The following enhancements have been made for the MSDOS environment. These
- enhancements are described in the appropriate section of the manual pages.
-
- 1) Under MSDOS, 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 specification.
-
- 2) History processing has been added. It is not ksh compatible - more csh.
-
- 3) Command line editing has been added. A configuration file (sh.ini) allows
- the Command Line editing keys to be tailored to the users requirements.
- It is not ksh compatible.
-
- 4) The command line prompt can be programmed to display 'useful' information.
-
- 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 or typeset -H
- commands allows these variables to be marked so that they are set correctly
- when the environment for a program is set up.
-
- 6) The format of the command line which the shell passes to a program is
- configurable between normal, indirect files and environment variables
- (see SH.1). A version of stdargv.c which supports the indirect file
- 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
- Unix V.4.
-
- 11) A number of OS/2 internal commands (start, detach) have been addded.
-
- 12) Significant parts of the shell have been re-written this release 1.6.4.
-
-
- The following Bugs are known to exist in the Shell.
-
- 1) Interrupting the MSDOS version via Control-C can cause the shell to hang.
- I have been unable to track the cause of the problem down. It appears to
- occur if the interrupt takes place between the start of the swap process
- and the completion of the load of the new application. I cannot trace
- it using CodeView and may need an ICE system which I don't currently
- have access to. Any fixes gratefully received.
-
- 2) The Shell is not 8-bit clean (to be fixed in a later release).
-
- 3) The escape character is not handled correctly in double-quotes (to be
- fixed in a later release).
-
- 4) I may have mis-interpreted the functionality of either the UNIX version
- of sh or ksh (tell me about it).
-
- I apologise in advance for bugs 2 and 3 which I had intended to fix in
- release 2. However, they a major changes which require understanding of
- the part of the shell I least understand and I have not be able to devote
- the time to do so.
-
- The shell was built using Microsoft C 5.1 and MASM v5.1 in large model mode
- for MSDOS and Microsoft C6.0 for OS/2.
-
- In order to rebuild this program, you need the following library functions
- (I normally compile and load them into my library so that they are always
- available, particularly the stdargv function).
-
- 1) The DIRECTORY(3) functions
- 2) The STDARGV(3) function - see earlier
- 3) The GLOB(3) function, but only if you intend to use STDARGV other that
- with the shell.
-
- The sources for all these are included with the Shell source.
-
- In addition, the version of open in your library must pass the O_NOINHERIT bit
- on the MSDOS kernel. The Microsoft C v5.1 library (and possibly the v6.0) 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
- Queens House
- Greenhill Way
- Harrow
- Middlesex, HA1 1YR
- UK.
-
- Phone : +44 1 863 0383
- E-Mail: istewart@datlog.co.uk
-
- Note:
- Unix is a registered trademark of AT&T Bell Laboratories
- Microsoft, MSDOS, MASM and CodeView are registered trademarks of Microsoft
- Corporation
- OS/2 is a registered trademark of Internation Business Machines Corporation
-
- Acknowledgements:
-
- This program is based on ideas, code or parts of code developed by:
-
- David Korn and Steve Bourne (the original ideas)
- Charles Forsyth (original source for the MINIX Shell program)
- Erik Baalbergen (original source for the MINIX test program)
- Paul Falstad (original source for the maths functions from GNU zsh program)
-