home *** CD-ROM | disk | FTP | other *** search
/ Garbo / Garbo.cdr / pc / source / ms_sh16.lzh / ms_sh.7 < prev    next >
Text File  |  1990-05-06  |  40KB  |  1,098 lines

  1.  
  2. #!/bin/sh
  3. # this is part 7 of a multipart archive
  4. # do not concatenate these parts, unpack them in order with /bin/sh
  5. # file Patch1.6 continued
  6. #
  7. CurArch=7
  8. if test ! -r s2_seq_.tmp
  9. then echo "Please unpack part 1 first!"
  10.      exit 1; fi
  11. ( read Scheck
  12.   if test "$Scheck" != $CurArch
  13.   then echo "Please unpack part $Scheck next!"
  14.        exit 1;
  15.   else exit 0; fi
  16. ) < s2_seq_.tmp || exit 1
  17. echo "x - Continuing file Patch1.6"
  18. sed 's/^X//' << 'SHAR_EOF' >> Patch1.6
  19. X  
  20. X***************
  21. X*** 13,21 ****
  22. X   2.  The sources (or parts thereof) or objects generated from the
  23. X       sources (or parts of sources) cannot be sold under any circumstances.
  24. X  
  25. X!     $Header: readme 1.3 90/02/16 16:58:10 MS_user Exp $
  26. X  
  27. X      $Log:    readme $
  28. X      Revision 1.3  90/02/16  16:58:10  MS_user
  29. X      Set up 1.5 release
  30. X      
  31. X--- 13,33 ----
  32. X   2.  The sources (or parts thereof) or objects generated from the
  33. X       sources (or parts of sources) cannot be sold under any circumstances.
  34. X  
  35. X!     $Header: readme 1.7 90/04/03 18:07:01 MS_user Exp $
  36. X  
  37. X      $Log:    readme $
  38. X+     Revision 1.7  90/04/03  18:07:01  MS_user
  39. X+     Some changes for 1.6 (Int 24 and Config file)
  40. X+     
  41. X+     Revision 1.6  90/03/14  12:37:23  MS_user
  42. X+     Add some more 1.6 changes
  43. X+     
  44. X+     Revision 1.5  90/03/06  17:01:00  MS_user
  45. X+     1.6 release
  46. X+     
  47. X+     Revision 1.4  90/02/22  16:52:41  MS_user
  48. X+     Add XMS support
  49. X+     
  50. X      Revision 1.3  90/02/16  16:58:10  MS_user
  51. X      Set up 1.5 release
  52. X      
  53. X***************
  54. X*** 59,69 ****
  55. X      child process is executing.
  56. X  
  57. X      Note: Swapping to Extended memory is probably the most dangerous
  58. X!       because there is no memory manager available for it.
  59. X  
  60. X  2)  History processing has been added.
  61. X  
  62. X! 3)  Command line editing has been added.
  63. X  
  64. X  4)  The command line prompt can be programmed to display 'useful'
  65. X      information.
  66. X--- 71,85 ----
  67. X      child process is executing.
  68. X  
  69. X      Note: Swapping to Extended memory is probably the most dangerous
  70. X!       unless you have an XMS memory manager available.  The shell
  71. X!       requires the XMS manager to support the version 2 XMS
  72. X!       specification.
  73. X  
  74. X  2)  History processing has been added.
  75. X  
  76. X! 3)  Command line editing has been added.  A configuration file (sh.ini)
  77. X!     allows the Command Line editing keys to be tailored to the users
  78. X!     requirements
  79. X  
  80. X  4)  The command line prompt can be programmed to display 'useful'
  81. X      information.
  82. X***************
  83. X*** 83,92 ****
  84. X  7)  Wild cards on drives (ie echo *:*.c will echo all the C files in 
  85. X      the current directories of each drive) are supported.
  86. X  
  87. X! 8)  Interrupt 24 processing has been added.
  88. X  
  89. X! The shell was built using MS-DOS C and MASM v5.1 in large model mode.
  90. X  
  91. X  In order to rebuild this program, you need the DIRECTORY(3) functions
  92. X  for MSDOS (also included) and the version of open in your library must
  93. X  pass the O_NOINHERIT bit on the MSDOS kernel.  The Microsoft C V5.1
  94. X--- 99,115 ----
  95. X  7)  Wild cards on drives (ie echo *:*.c will echo all the C files in 
  96. X      the current directories of each drive) are supported.
  97. X  
  98. X! 8)  Full Interrupt 24 processing has been added.
  99. X  
  100. X! 9)  Filename completion has been added.
  101. X  
  102. X+ 10) Alternate command interpreters are supported in shell scripts a la
  103. X+     Unix V.4.
  104. X+ 
  105. X+ 11) A configuration file is supported to allow edit key specification.
  106. X+ 
  107. X+ The shell was built using MS-DOS C and MASM v5.1 in large model mode.
  108. X+ 
  109. X  In order to rebuild this program, you need the DIRECTORY(3) functions
  110. X  for MSDOS (also included) and the version of open in your library must
  111. X  pass the O_NOINHERIT bit on the MSDOS kernel.  The Microsoft C V5.1
  112. X***************
  113. X*** 94,100 ****
  114. X  fixed this using CodeView to find where the library function masks off
  115. X  the bottom 2 bits.  Extracted the object from the library and patched
  116. X  mask from 0x03 to 0x83 in the object and reload into the library.  No
  117. X! Problem.
  118. X  
  119. X  You can do want you like with this software as long as you don't sell
  120. X  it or remove the Copyright notices in the sources or object.
  121. X--- 117,123 ----
  122. X  fixed this using CodeView to find where the library function masks off
  123. X  the bottom 2 bits.  Extracted the object from the library and patched
  124. X  mask from 0x03 to 0x83 in the object and reload into the library.  No
  125. X! Problem.  The Patch.Lib document describes the process in more detail.
  126. X  
  127. X  You can do want you like with this software as long as you don't sell
  128. X  it or remove the Copyright notices in the sources or object.
  129. XIndex: sh.1
  130. XPrereq: 1.2
  131. X*** ../sh15/sh.1    Wed Mar  7 11:09:03 1990
  132. X--- sh.1    Tue May  1 20:02:16 1990
  133. X***************
  134. X*** 1,3 ****
  135. X--- 1,4 ----
  136. X+ .\"!ts -t -msqan
  137. X  .\"
  138. X  .\" MS-DOS SHELL - Manual Page
  139. X  .\"
  140. X***************
  141. X*** 13,21 ****
  142. X  .\" 2.  The sources (or parts thereof) or objects generated from the sources
  143. X  .\"     (or parts of sources) cannot be sold under any circumstances.
  144. X  .\"
  145. X! .\"    $Header: sh.1 1.2 90/02/16 16:58:27 MS_user Exp $
  146. X  .\"
  147. X  .\"    $Log:    sh.1 $
  148. X  .\"    Revision 1.2  90/02/16  16:58:27  MS_user
  149. X  .\"    Set up 1.5 release
  150. X  .\"    
  151. X--- 14,46 ----
  152. X  .\" 2.  The sources (or parts thereof) or objects generated from the sources
  153. X  .\"     (or parts of sources) cannot be sold under any circumstances.
  154. X  .\"
  155. X! .\"    $Header: sh.1 1.10 90/05/01 19:58:38 MS_user Exp $
  156. X  .\"
  157. X  .\"    $Log:    sh.1 $
  158. X+ .\"    Revision 1.10  90/05/01  19:58:38  MS_user
  159. X+ .\"    Fix typing error
  160. X+ .\"    
  161. X+ .\"    Revision 1.9  90/04/04  11:31:14  MS_user
  162. X+ .\"    Change MAILPATH to use a semi-colon and not a colon for DOS
  163. X+ .\"    
  164. X+ .\"    Revision 1.8  90/03/28  19:42:29  MS_user
  165. X+ .\"    Full Interrupt 24 handler included
  166. X+ .\"    
  167. X+ .\"    Revision 1.7  90/03/14  19:43:46  MS_user
  168. X+ .\"    Add new initialisation file processing
  169. X+ .\"    
  170. X+ .\"    Revision 1.6  90/03/09  16:04:37  MS_user
  171. X+ .\"    Add SH_BELL and SH_ALT_KEYS description
  172. X+ .\"    
  173. X+ .\"    Revision 1.5  90/03/06  16:03:00  MS_user
  174. X+ .\"    Final clean up for 1.6
  175. X+ .\"    
  176. X+ .\"    Revision 1.4  90/03/05  13:46:27  MS_user
  177. X+ .\"    Add functionality changes for Command Line editor
  178. X+ .\"    
  179. X+ .\"    Revision 1.3  90/02/22  16:55:13  MS_user
  180. X+ .\"    Add XMS driver support
  181. X+ .\"    
  182. X  .\"    Revision 1.2  90/02/16  16:58:27  MS_user
  183. X  .\"    Set up 1.5 release
  184. X  .\"    
  185. X***************
  186. X*** 23,38 ****
  187. X  .\"    Initial revision
  188. X  .\"    
  189. X  .\"
  190. X! .\"
  191. X  .ds OK [\|
  192. X  .ds CK \|]
  193. X! .TH SH 1L "Data Logic Limited" "MS-DOS Version 1.5"
  194. X  .SH NAME
  195. X  sh, rsh - shell, the standard/restricted command programming language
  196. X  .SH SYNOPSIS
  197. X! \fBsh\fR [ \fB-acefhiknmrstuvx\fR ] [ args ]
  198. X  .br
  199. X! \fBrsh\fR [ \fB-acefhiknmrstuvx\fR ] [ args ]
  200. X  .SH DESCRIPTION
  201. X  \fISh\fR is a command programming language that executes commands read from a
  202. X  terminal or a file.  \fIRsh\fR is a restricted version of the standard command
  203. X--- 48,63 ----
  204. X  .\"    Initial revision
  205. X  .\"    
  206. X  .\"
  207. X! .\"    This man page requires tbl.
  208. X  .ds OK [\|
  209. X  .ds CK \|]
  210. X! .TH SH 1L "Data Logic Limited" "MS-DOS Version 1.6"
  211. X  .SH NAME
  212. X  sh, rsh - shell, the standard/restricted command programming language
  213. X  .SH SYNOPSIS
  214. X! \fBsh\fR [ \fB-acefhiknmrstuvx0\fR ] [ args ]
  215. X  .br
  216. X! \fBrsh\fR [ \fB-acefhiknmrstuvx0\fR ] [ args ]
  217. X  .SH DESCRIPTION
  218. X  \fISh\fR is a command programming language that executes commands read from a
  219. X  terminal or a file.  \fIRsh\fR is a restricted version of the standard command
  220. X***************
  221. X*** 114,124 ****
  222. X  which to execute the \fIlist\fR, but does not fork a sub-shell as a Unix
  223. X  system would.  The original environment is restored on completion.
  224. X  .TP
  225. X! \fB{\fIlist\fB;}\fR
  226. X  .br
  227. X  \fIlist\fR is simply executed.
  228. X  .TP
  229. X! \fIname \fB() {\fIlist\fB;}\fR
  230. X  Define a function which is referenced by \fIname\fR.  The body of the function
  231. X  is the \fIlist\fR of commands between \fB{\fR and \fB}\fR.  Execution of
  232. X  functions is described below (see \fIExecution\fR).
  233. X--- 139,149 ----
  234. X  which to execute the \fIlist\fR, but does not fork a sub-shell as a Unix
  235. X  system would.  The original environment is restored on completion.
  236. X  .TP
  237. X! \fB{ \fIlist\fB; }\fR
  238. X  .br
  239. X  \fIlist\fR is simply executed.
  240. X  .TP
  241. X! \fIname \fB() { \fIlist\fB; }\fR
  242. X  Define a function which is referenced by \fIname\fR.  The body of the function
  243. X  is the \fIlist\fR of commands between \fB{\fR and \fB}\fR.  Execution of
  244. X  functions is described below (see \fIExecution\fR).
  245. X***************
  246. X*** 225,236 ****
  247. X  .TP
  248. X  .B
  249. X  .SM CDPATH
  250. X! The search path for the \fIcd\fR command.  (Note that becuase a colon is used
  251. X  by MSDOS to indicate a drive, a semi-colon is used to separate the path names
  252. X  instead of a colon - this implies that the CDPATH variable must be set using
  253. X  single or double quotes to surround the value).
  254. X  .TP
  255. X  .B
  256. X  .SM EXTENDED_LINE
  257. X  This parameter defines a file containing a list of command which can accept
  258. X  an Extended Command Line using the indirect command file character \fB@\fR.
  259. X--- 250,268 ----
  260. X  .TP
  261. X  .B
  262. X  .SM CDPATH
  263. X! The search path for the \fIcd\fR command.  (Note that because a colon is used
  264. X  by MSDOS to indicate a drive, a semi-colon is used to separate the path names
  265. X  instead of a colon - this implies that the CDPATH variable must be set using
  266. X  single or double quotes to surround the value).
  267. X  .TP
  268. X  .B
  269. X+ .SM COMSPEC
  270. X+ When the shell has to process an MSDOS \fI.bat\fR file, it expects the file
  271. X+ indicated by the value of this environment variable to be an executable
  272. X+ program capable of processing the MSDOS \fI.bat\fR file.  The program is
  273. X+ invoked with the arguments \fB/c bat_file_name\fR.
  274. X+ .TP
  275. X+ .B
  276. X  .SM EXTENDED_LINE
  277. X  This parameter defines a file containing a list of command which can accept
  278. X  an Extended Command Line using the indirect command file character \fB@\fR.
  279. X***************
  280. X*** 273,279 ****
  281. X  .TP
  282. X  .B
  283. X  .SM MAILPATH
  284. X! A colon (\fB:\fR) separated list of file names.  If this parameter is set,
  285. X  the shell informs the user of the arrival of mail in any of the specified
  286. X  files. Each file name can be followed by \fB%\fR and a message that will be
  287. X  printed when the modification time changes.  The default message is
  288. X--- 305,311 ----
  289. X  .TP
  290. X  .B
  291. X  .SM MAILPATH
  292. X! A semi-colon (\fB;\fR) separated list of file names.  If this parameter is set,
  293. X  the shell informs the user of the arrival of mail in any of the specified
  294. X  files. Each file name can be followed by \fB%\fR and a message that will be
  295. X  printed when the modification time changes.  The default message is
  296. X***************
  297. X*** 285,291 ****
  298. X  change \fB\s-1PATH\s+1\fR if executing under \fIrsh\fR.  (Note that because a
  299. X  colon is used by MSDOS to indicate a drive, a semi-colon is used to separate
  300. X  the path names instead of a colon - this implies that the PATH variable must
  301. X! be set using single or double quotes to surround the value).
  302. X  .TP
  303. X  .B
  304. X  .SM PS1
  305. X--- 317,327 ----
  306. X  change \fB\s-1PATH\s+1\fR if executing under \fIrsh\fR.  (Note that because a
  307. X  colon is used by MSDOS to indicate a drive, a semi-colon is used to separate
  308. X  the path names instead of a colon - this implies that the PATH variable must
  309. X! be set using single or double quotes to surround the value).  The Shell
  310. X! automatically converts Unix format \fB\s-1PATH\s+1\fR assignments to MSDOS
  311. X! format when appropriate.  A assignment is converted if there are no semi-colons,
  312. X! no backslashes and one or more colons.  If there is only one colon, it must
  313. X! not be the second character of the new value.
  314. X  .TP
  315. X  .B
  316. X  .SM PS1
  317. X***************
  318. X*** 299,314 ****
  319. X  .SM SHELL
  320. X  When the shell is invoked, it scans the environment (see \fIEnvironment\fR
  321. X  below) for this name.  If it is found and there is an 'r' in the file name
  322. X! part of its value, the shell becomes a restricted shell.
  323. X  .TP
  324. X  .B
  325. X  .SM TMP
  326. X! The location of temporary files created by the shell.
  327. X  .RE
  328. X  .PP
  329. X  The shell gives default values to \fB\s-1PATH\s+1\fR, \fB\s-1PS1\s+1\fR,
  330. X  \fB\s-1PS2\s+1\fR, \fB\s-1SHELL\s+1\fR, \fB\s-1HOME\s+1\fR and
  331. X  \fB\s-1IFS\s+1\fR.
  332. X  .SS Blank Interpretation
  333. X  After parameter and command substitution, the results of substitution are
  334. X  scanned for internal field separator characters (those found in
  335. X--- 335,356 ----
  336. X  .SM SHELL
  337. X  When the shell is invoked, it scans the environment (see \fIEnvironment\fR
  338. X  below) for this name.  If it is found and there is an 'r' in the file name
  339. X! part of its value, the shell becomes a restricted shell.  The shell also
  340. X! uses this variable to decide which program to spawn to interpret shell
  341. X! scripts (see \fIExecution\fR below).
  342. X  .TP
  343. X  .B
  344. X  .SM TMP
  345. X! The location of temporary files created by the shell.  If this variable is
  346. X! not defined, the Shell uses the \fB\s-1HOME\s+1\fR directory for temporary
  347. X! files.  Failing that, the root directory of the current drive is used.
  348. X  .RE
  349. X  .PP
  350. X+ .sp
  351. X  The shell gives default values to \fB\s-1PATH\s+1\fR, \fB\s-1PS1\s+1\fR,
  352. X  \fB\s-1PS2\s+1\fR, \fB\s-1SHELL\s+1\fR, \fB\s-1HOME\s+1\fR and
  353. X  \fB\s-1IFS\s+1\fR.
  354. X+ .sp
  355. X  .SS Blank Interpretation
  356. X  After parameter and command substitution, the results of substitution are
  357. X  scanned for internal field separator characters (those found in
  358. X***************
  359. X*** 343,348 ****
  360. X--- 385,396 ----
  361. X  \fB\(ga\(ga!\(aa\(aa\fR any character not enclosed is matched.
  362. X  .PD
  363. X  .RE
  364. X+ .PP
  365. X+ If the shell has to open or create the file \fB/dev/tty\fR or \fB/dev/null\fR
  366. X+ (which are Unix special files), they are converted to the equivalent MSDOS
  367. X+ file names (\fB/dev/con\fR and \fB/dev/nul\fR respectively).  Any user
  368. X+ programs which could expect \fB/dev/tty\fR or \fB/dev/null\fR as
  369. X+ arguments must do its own mapping to the MSDOS equivalents.
  370. X  .SS Quoting
  371. X  The following characters have a special meaning to the shell and cause
  372. X  termination of a word unless quoted:
  373. X***************
  374. X*** 520,528 ****
  375. X  the shell for normal processing.  A history substitution takes the form:
  376. X  .RS
  377. X  .PP
  378. X! \fB!\fR \*(OK \fIstr\fR \(br \fInum\fR \*(CK \fIterminator\fR
  379. X  .RE
  380. X  .PP
  381. X  \fB!\fInum\fR will place the history command with the specified number
  382. X  in the command line.  \fB!\fIstr\fR will find the most recent command
  383. X  line that started with the characters in \fIstr\fR.
  384. X--- 568,577 ----
  385. X  the shell for normal processing.  A history substitution takes the form:
  386. X  .RS
  387. X  .PP
  388. X! \fB!\fR \*(OK ! \(br \fIstr\fR \(br \fInum\fR \*(CK \fIterminator\fR
  389. X  .RE
  390. X  .PP
  391. X+ \fB!!\fR will place the previous command in the command line.
  392. X  \fB!\fInum\fR will place the history command with the specified number
  393. X  in the command line.  \fB!\fIstr\fR will find the most recent command
  394. X  line that started with the characters in \fIstr\fR.
  395. X***************
  396. X*** 534,595 ****
  397. X  manner described below.
  398. X  .SS Command Line Editing
  399. X  When reading input from an interactive terminal, certain keystrokes allow
  400. X! the current input line to be edited.  The following keystrokes are
  401. X! available:
  402. X  .TP
  403. X! .SM "Cursor Right"
  404. X  Move the cursor right one character
  405. X  .TP
  406. X! .SM "Control-Cursor Right"
  407. X  Move the cursor right one word
  408. X  .TP
  409. X! .SM "Cursor Left"
  410. X  Move the cursor left one character
  411. X  .TP
  412. X! .SM "Control-Cursor Left"
  413. X  Move the cursor left one word
  414. X  .TP
  415. X! .SM "Cursor Up"
  416. X  Get the previous command from the history file
  417. X  .TP
  418. X! .SM "Cursor Down"
  419. X  Get the next command from the history file
  420. X  .TP
  421. X  .SM "Insert"
  422. X! Toggle insert/overwrite mode
  423. X  .TP
  424. X! .SM "Delete"
  425. X! Delete the current character
  426. X  .TP
  427. X! .SM "Home"
  428. X  Move the cursor to the start of the command
  429. X  .TP
  430. X  .SM "End"
  431. X  Move the cursor to the end of the command, unless the first character of
  432. X  the command is a \fB!\fR, in which case the appropriate history search is
  433. X! done.
  434. X  .TP
  435. X! .SM "Control-End"
  436. X  Delete to the end of the line
  437. X  .TP
  438. X! .SM "Page-Up"
  439. X  Search backwards from the current history command for the next match against
  440. X! the last history request.  This command can only be used after \fBEnd\fR has
  441. X! been used to select a history line.
  442. X  .TP
  443. X! .SM "Page-Down"
  444. X  Search forewards from the current history command for the next match against
  445. X! the last history request.  This command can only be used after \fBEnd\fR has
  446. X! been used to select a history line.
  447. X  .TP
  448. X! .SM "Backspace"
  449. X! Move the cursor back one character, erasing the current character.
  450. X  .TP
  451. X  .SM "Return"
  452. X  Execute the command line, unless the first character of the command is a
  453. X! \fB!\fR, in which case the appropriate history processing is done.
  454. X  .PD
  455. X  .RE
  456. X  .SS Execution
  457. X  Each time a command is executed, the above substitutions are carried out.  If
  458. X  the command name matches one of the \fISpecial Commands\fR listed below, it
  459. X--- 583,753 ----
  460. X  manner described below.
  461. X  .SS Command Line Editing
  462. X  When reading input from an interactive terminal, certain keystrokes allow
  463. X! the current input line to be edited.  The following keystrokes
  464. X! corresponding to the following functions are defined in the initialisation
  465. X! file \fBsh.ini\fR.  The keywords in the initialisation file which provide
  466. X! the functions are listed below:
  467. X  .TP
  468. X! .B
  469. X! .SM "Right"
  470. X  Move the cursor right one character
  471. X  .TP
  472. X! .B
  473. X! .SM "WordRight"
  474. X  Move the cursor right one word
  475. X  .TP
  476. X! .B
  477. X! .SM "Left"
  478. X  Move the cursor left one character
  479. X  .TP
  480. X! .B
  481. X! .SM "WordLeft"
  482. X  Move the cursor left one word
  483. X  .TP
  484. X! .B
  485. X! .SM "Previous"
  486. X  Get the previous command from the history file
  487. X  .TP
  488. X! .B
  489. X! .SM "Next"
  490. X  Get the next command from the history file
  491. X  .TP
  492. X+ .B
  493. X  .SM "Insert"
  494. X! Toggle insert/overwrite mode (note the shape of the cursor changes to
  495. X! indicate the current mode)
  496. X  .TP
  497. X! .B
  498. X! .SM "DeleteRight
  499. X! Delete the current character unless the cursor is at the end of line when
  500. X! no action is taken
  501. X  .TP
  502. X! .B
  503. X! .SM "Start"
  504. X  Move the cursor to the start of the command
  505. X  .TP
  506. X+ .B
  507. X+ .SM "Complete"
  508. X+ Attempt to complete the filename.  The shell attempts to complete the file
  509. X+ name at the current cursor position.  The file name is delimited by white
  510. X+ space characters.  If the shell is unable to complete the file name (ie no
  511. X+ match can be found in the appropriate directory), the bell is rung.  If a
  512. X+ single match is found, the new file name is displayed.  If multiple matches
  513. X+ are found, the file name is replaced by the longest non-unique part of the
  514. X+ file name and the bell is rung.
  515. X+ .TP
  516. X+ .B
  517. X  .SM "End"
  518. X  Move the cursor to the end of the command, unless the first character of
  519. X  the command is a \fB!\fR, in which case the appropriate history search is
  520. X! done.  The cursor is placed at the end of the command line.
  521. X  .TP
  522. X! .B
  523. X! .SM "Flush"
  524. X  Delete to the end of the line
  525. X  .TP
  526. X! .B
  527. X! .SM "ScanBackward"
  528. X  Search backwards from the current history command for the next match against
  529. X! the last history request or the string currently in the command line if
  530. X! there has been no previous history request.
  531. X  .TP
  532. X! .B
  533. X! .SM "ScanForeward"
  534. X  Search forewards from the current history command for the next match against
  535. X! the last history request or the string currently in the command line if
  536. X! there has been no previous history request.
  537. X  .TP
  538. X! .B
  539. X! .SM "Clear"
  540. X! Erase the complete line.
  541. X  .TP
  542. X+ .B
  543. X+ .SM "Directory"
  544. X+ Display the file name list matching the partially entered file name under
  545. X+ the cursor.  If no matches are found the bell is rung.  To display the
  546. X+ whole directory, enter the directory name followed by a slash \fB/\fR.
  547. X+ After the directory listing has been displayed, the entered command line is
  548. X+ redisplayed.
  549. X+ .TP
  550. X+ .B
  551. X+ .SM "DeleteLeft"
  552. X+ Delete the character to the left of the cursor.
  553. X+ .TP
  554. X+ .B
  555. X  .SM "Return"
  556. X  Execute the command line, unless the first character of the command is a
  557. X! \fB!\fR, in which case the appropriate history processing is done.  \fIThis
  558. X! is the actual key pressed and cannot be modified by the initialisation file.\fR
  559. X  .PD
  560. X  .RE
  561. X+ .SS Initialisation File
  562. X+ When the shell is run in interactive mode, the Command Line Editing keys
  563. X+ and other user configuration parameters are read from the initialisation
  564. X+ file \fIsh.ini\fR.  This shell looks for this file in the same directory as
  565. X+ the \fBsh\fR executable which is running.  It does not use the \fBSHELL\fR
  566. X+ environment variable or search the directories in the \fBPATH\fR
  567. X+ environment variable.  At present, there are two types of entry in this
  568. X+ file: keyboard configuration; and others.  The entry is contained in a
  569. X+ single line and consists of a keyword (in upper or lower case), white space,
  570. X+ an equals symbols, white space and one or two numeric values (see \fIstrtol\fR
  571. X+ for valid formats where \fIbase\fR parameter is zero), followed by an end
  572. X+ of line character.
  573. X+ .PP
  574. X+ For the keyboard entries, the numeric values give the MSDOS Function 8 (Console
  575. X+ Input without Echo) return values for that entry.  Note that extended codes
  576. X+ (function keys) require two calls to this function.  The first call returns
  577. X+ zero and the second the extended code.  In the configuration file, a first
  578. X+ numeric value of zero indicates a extended code and must be followed by a
  579. X+ second value.  A non-zero first numeric value must not be followed by
  580. X+ anything else on the line.
  581. X+ .PP
  582. X+ Other entries must only have one numeric value.  A zero value disables the
  583. X+ function and a non-zero value enables the function.  At present, there are
  584. X+ two other functions:
  585. X+ .TP
  586. X+ .B
  587. X+ .SM "Bell"
  588. X+ Enable/disable warning bells
  589. X+ .TP
  590. X+ .B
  591. X+ .SM "HalfHeight"
  592. X+ Use full or halfheight block cursor to indicate Insert mode
  593. X+ .PD
  594. X+ .RE
  595. X+ .PP
  596. X+ Invalid lines or lines beginning with a \fB#\fR are ignored.
  597. X+ .PP
  598. X+ The following table gives the list of valid keywords and their default
  599. X+ values:
  600. X+ .TS
  601. X+ box;
  602. X+ l l l l.
  603. X+ Keyword    First numeric    Second numeric    Actual Key
  604. X+ _
  605. X+ KEYBOARD ENTRIES
  606. X+ ScanBackward    0    0x49    PAGE UP
  607. X+ ScanForeward    0    0x51    PAGE DOWN
  608. X+ Previous    0    0x48    UP ARROW
  609. X+ Next    0    0x50    DOWN ARROW
  610. X+ Left    0    0x4b    LEFT ARROW
  611. X+ Right    0    0x4d    RIGHT ARROW
  612. X+ WordRight    0    0x74    Control RIGHT ARROW
  613. X+ WordLeft    0    0x73    Control LEFT ARROW
  614. X+ Start    0    0x47    HOME
  615. X+ Clear    0    0x76    Control PAGE DOWN
  616. X+ Flush    0    0x75    Control END
  617. X+ End    0    0x4f    END
  618. X+ Insert    0    0x52    INSERT
  619. X+ DeleteRight    0    0x53    DELETE
  620. X+ DeleteLeft    0x08        BACKSPACE
  621. X+ Complete    0    0x77    Control HOME
  622. X+ Directory    0    0x0f    Shift TAB
  623. X+ _
  624. X+ OTHER FUNCTIONS
  625. X+ Bell    0
  626. X+ HalfHeight    0
  627. X+ .TE
  628. X  .SS Execution
  629. X  Each time a command is executed, the above substitutions are carried out.  If
  630. X  the command name matches one of the \fISpecial Commands\fR listed below, it
  631. X***************
  632. X*** 611,624 ****
  633. X  anywhere else in the path list.  If the command name contains a \fB/\fR or
  634. X  starts with \fBx:\fR (where x is a drive letter) the search path is not used;
  635. X  such commands will not be executed by the restricted shell.  Otherwise, each
  636. X! directory in the path is searched for an executable file.
  637. X  .PP
  638. X! If the file does not have a .com or .exe extension, it is opened and the first
  639. X! 5 characters are read.  If the first 5 characters are the string
  640. X! \fB#!sh\\n\fR it is assumed to be a file containing shell commands.  Note
  641. X! that the shell will check the file and if that file does not exist or is not a
  642. X! script, it will try the file with an extension of \fB.sh\fR.  If a \fB.sh\fR
  643. X! file is found, that will be processed.  A sub-shell is spawned to read it.
  644. X  A parenthesized command is also executed in a sub-shell.
  645. X  .SS Special Commands
  646. X  Input/output redirection is permitted for these commands.  File descriptor 1
  647. X--- 769,807 ----
  648. X  anywhere else in the path list.  If the command name contains a \fB/\fR or
  649. X  starts with \fBx:\fR (where x is a drive letter) the search path is not used;
  650. X  such commands will not be executed by the restricted shell.  Otherwise, each
  651. X! directory in the path is searched for an executable file.  Executable files
  652. X! are indicated by a .exe or .com extension.  This extension is automatically
  653. X! supplied by the shell and not have to be entered by the user.
  654. X  .PP
  655. X! If the file with a .com or .exe extension cannot be found in the
  656. X! directory, the file is opened and first 512 characters are read.  If there are
  657. X! no characters in the block with a value in the range 0 to 7, the file is
  658. X! assumed to be a script file containing shell commands.  Note that the shell
  659. X! will check the file and if that file does not exist or is not a script, it
  660. X! will try the file with an extension of \fB.sh\fR.  If a \fB.sh\fR file is
  661. X! found, that will be processed.  A sub-shell (given by the environment
  662. X! variable \fBSHELL\fR) is spawned to read
  663. X! it.
  664. X! .PP
  665. X! If the script file starts with the a line of the form \fI#! interpreter\fR
  666. X! \*(OK\fIarguments\fR\*(CK, the interpreter is invoked instead of the shell
  667. X! to process the script.  Optional arguments can be supplied in the script
  668. X! file which are passed before the name of the script file.  Thus, if the
  669. X! file \fIdemo\fR contained the following string as the first line
  670. X! .RS
  671. X! .PP
  672. X! #! perl -sP
  673. X! .RE
  674. X! .PP
  675. X! Entering \fIdemo name\fR would be equivalent to entering the \fIperl -sP name\fR
  676. X! at the command prompt.  Note that no other processing of the first line
  677. X! other that the separation (by white space) into arguments is done.
  678. X! .PP
  679. X! If none of the above conditions for a executable file are detected and a file
  680. X! with a .bat extension exists in the directory, the command processor given by
  681. X! the \fBCOMSPEC\fR environment variable is spawned to process the file.  This
  682. X! is normally the standard MSDOS \fIcommand.com\fR processor.
  683. X! .PP
  684. X  A parenthesized command is also executed in a sub-shell.
  685. X  .SS Special Commands
  686. X  Input/output redirection is permitted for these commands.  File descriptor 1
  687. X***************
  688. X*** 796,802 ****
  689. X  \fBmsdos\fR \*(OK \fIname\fR ... \*(CK
  690. X  The given \fIname\fRs are marked \fImsdos\fR format and if the \fB-m\fR flag
  691. X  is set, the values of the these \fIname\fRs are exported to child processes
  692. X! with the any slashes in the value replaced by backslashes.
  693. X  .TP
  694. X  \fBpwd\fR
  695. X  Print the current working directory.  
  696. X--- 979,985 ----
  697. X  \fBmsdos\fR \*(OK \fIname\fR ... \*(CK
  698. X  The given \fIname\fRs are marked \fImsdos\fR format and if the \fB-m\fR flag
  699. X  is set, the values of the these \fIname\fRs are exported to child processes
  700. X! with any slashes in the value replaced by backslashes.
  701. X  .TP
  702. X  \fBpwd\fR
  703. X  Print the current working directory.  
  704. X***************
  705. X*** 884,896 ****
  706. X  swapped, the shell reduces the available memory by about 3K.
  707. X  .TP
  708. X  \fBexpand\fR
  709. X! Enable swapping to Expanded Memory.  The EMS drive must exist on your
  710. X  system for this to work.
  711. X  .TP
  712. X  \fBextent\fR \*(OK \fIstart address\fR \*(CK
  713. X! Enable swapping to Extended Memory.  The optional start address defines the
  714. X! based address in the Extended Memory at which point the shell writes its
  715. X! swap area.  The default location is \fI0x100000\fR.
  716. X  .TP
  717. X  \fBdisk\fR
  718. X  Enable swapping to disk.  The shell creates a temporary file and saves
  719. X--- 1067,1081 ----
  720. X  swapped, the shell reduces the available memory by about 3K.
  721. X  .TP
  722. X  \fBexpand\fR
  723. X! Enable swapping to Expanded Memory.  The EMS driver must exist on your
  724. X  system for this to work.
  725. X  .TP
  726. X  \fBextent\fR \*(OK \fIstart address\fR \*(CK
  727. X! Enable swapping to Extended Memory.  If you have an XMS driver on your
  728. X! system, the shell will use the XMS driver.  Otherwise, the BIOS Interrupt
  729. X! 15 interface is used.  The optional start address defines the based address
  730. X! in the Extended Memory at which point the shell writes its swap area when
  731. X! the BIOS interface is used.  The default location is \fI0x100000\fR.
  732. X  .TP
  733. X  \fBdisk\fR
  734. X  Enable swapping to disk.  The shell creates a temporary file and saves
  735. X***************
  736. X*** 937,943 ****
  737. X  true if the open file whose file descriptor number is \fIfildes\fR (1 by
  738. X  default) is associated with a terminal device.
  739. X  .TP
  740. X! \fB-n \fIs1\fR
  741. X  true if the length of the string \fIs1\fR is zero.
  742. X  .TP
  743. X  \fB-n \fIs1\fR
  744. X--- 1122,1128 ----
  745. X  true if the open file whose file descriptor number is \fIfildes\fR (1 by
  746. X  default) is associated with a terminal device.
  747. X  .TP
  748. X! \fB-z \fIs1\fR
  749. X  true if the length of the string \fIs1\fR is zero.
  750. X  .TP
  751. X  \fB-n \fIs1\fR
  752. X***************
  753. X*** 1089,1094 ****
  754. X--- 1274,1285 ----
  755. X  \s-1$HOME\s+1/profile.sh
  756. X  .br
  757. X  \s-1$TMP\s+1/sh\(**
  758. X+ .br
  759. X+ ??/sh.ini
  760. X+ .SH CRITICAL ERRORS
  761. X+ The Shell provide a Critical Error Handler (Interrupt 24) similar to the
  762. X+ standard MSDOS handler.  In addition to the standard message, the handler
  763. X+ also displays the Extended Error Code information in hexadecimal.
  764. X  .SH LIMIITATIONS
  765. X  Any TSR (Terminate Stay Resident) programs must be loaded before loading
  766. X  \fISh\fR as the shell will overwrite the TSR when it reloads itself after
  767. X***************
  768. X*** 1105,1110 ****
  769. X--- 1296,1302 ----
  770. X  signal(2),
  771. X  umask(2),
  772. X  wait(2),
  773. X+ strtol(3),
  774. X  profile(4),
  775. X  environ(5) in the
  776. X  \fI\s-1UNIX\s+1 System Programmer Reference Manual\fR.
  777. SHAR_EOF
  778. echo "File Patch1.6 is complete"
  779. chmod 0644 Patch1.6 || echo "restore of Patch1.6 fails"
  780. set `wc -c Patch1.6`;Sum=$1
  781. if test "$Sum" != "223824"
  782. then echo original size 223824, current size $Sum;fi
  783. echo "x - extracting Notes1.6 (Text)"
  784. sed 's/^X//' << 'SHAR_EOF' > Notes1.6 &&
  785. XVersion 1.6 Release Notes:
  786. X
  787. XThe following problems have been fixed in 1.6
  788. X
  789. X   1.   Traps did now work correctly (as far as possible for DOS) la System
  790. X    V.3
  791. X   2.   File descriptor duplication closed standard input.
  792. X   3.   !! has been implemented to return the previous command in the history
  793. X    file
  794. X   4.   erase_to_end_of_line has been improved/fixed
  795. X   5.   The processing of . filename has been fixed so that the script is
  796. X    now executed immediately.  This is the area most likely to contain
  797. X    bugs.
  798. X   6.   History does not double prompt
  799. X   7.    Bugs in the 'here' document code delete backslashes and prevented
  800. X    `command` in a here document from working.
  801. X   8.   Interrupting a pipeline could result in std??? remaining redirected
  802. X   9.   exec >filename did not work
  803. X  10.   Some temporary files were not deleted.
  804. X  11.   The swapper failed to check for disk full errors
  805. X
  806. XThe following enhancements have been made:
  807. X
  808. X   1.   /dev/tty and /dev/null are mapped to /dev/con and /dev/nul internally
  809. X   2.   <up arrow> returns the previous history command
  810. X   3.   <page up> will now search for the previous history entry matching
  811. X    the entered string
  812. X   4.   The shell determines the number of columns on the screen from the
  813. X    BIOS
  814. X   5.   Shell scripts are detected in a new manner.  For a file to be a
  815. X    shell script, it must contain no characters with values in the
  816. X    range 0 to 7 in the first 512 bytes.
  817. X   6.   #! <command> <arguments> processing on the first line of script files
  818. X    has been implemented a la System V.4
  819. X   7.   XMS drivers are now supported
  820. X   8.   Some static buffers are now 'malloced' instead and some length
  821. X    checks have been added
  822. X   9.   Insert command selects a full or halfheight block cursor
  823. X   10.  .bat files are processed by the shell specified by the variable
  824. X    COMSPEC.
  825. X   11.  UNIX format PATH variables are converted MSDOS format
  826. X   12.  The shell attempts to find the number of lines on the screen from
  827. X    the BIOS
  828. X   13.  File name completion has been implemented
  829. X   14.  Erase input buffer has been implemented
  830. X   15.  A Configuration file (sh.ini) allows the user to configure the
  831. X    editor keys
  832. X   16.  Quoting of arugments with white space in them to MSDOS commands
  833. X    has been added.
  834. X   17.  Full internal Interrup 24 support is provided.
  835. X
  836. XThe following enhancements/bugs remain outstanding:
  837. X
  838. X    1.  The processing of the escape character (\) is not consistent with
  839. X    the System V shell.  The MS-Shell always strips the first escape
  840. X    character.  The System V shell only strips escape characters when
  841. X    it detects a shell special character following (Release 1.7).
  842. X
  843. X    ie.  echo "\033[H" works under System V however echo "\\033[H" is
  844. X    required in the MSDOS shell.
  845. X
  846. X    2.  8 Bit character are not supported.  This is tied in with the
  847. X    processing of escape characters.  The shell uses the 8-bit to
  848. X    mark escaped characters (Release 1.7).
  849. X    
  850. X    3.  Reduce the amount of data written to swap file by only dumping the
  851. X    data and stack space after the first write (Release 1.7+).
  852. X    
  853. XThanks are due to
  854. X
  855. X    Greg Yachuk 
  856. X    Leo Vermeulen 
  857. X    Lee Fisher 
  858. X    John B Thiel 
  859. X    Harry McGavran 
  860. X    Bill Davidsen
  861. X
  862. Xfor their comments, fixes, tolerance etc in testing release 1.6
  863. X
  864. XIan Stewartson.
  865. SHAR_EOF
  866. chmod 0644 Notes1.6 || echo "restore of Notes1.6 fails"
  867. set `wc -c Notes1.6`;Sum=$1
  868. if test "$Sum" != "3216"
  869. then echo original size 3216, current size $Sum;fi
  870. echo "x - extracting Notes1.5 (Text)"
  871. sed 's/^X//' << 'SHAR_EOF' > Notes1.5 &&
  872. XVersion 1.6 Release Notes:
  873. X
  874. XThe following enhancements have been included:
  875. X
  876. X1)  Interrupt 24 processing is now handled correctly.  The shell does not
  877. X    exit on Abort, it terminates the system call instead.
  878. X
  879. X2)  Some of the other interrupt processing has been cleaned up.
  880. X
  881. X3)  A bug in the Interrupt 23 detection code in sh0.asm has been fixed
  882. X
  883. X4)  The dependency on ANSI.SYS or NANSI.SYS has been removed (thanks to
  884. X    Tom Horsley)
  885. X
  886. X5)  A missing source acknowledgement in sh7.c for the test command code
  887. X    has been added.  The code came from Minix news group and was based 
  888. X    on the version written by Erik Baalbergen.
  889. X
  890. X6)  The executable version of this release has been send to the moderator
  891. X    of comp.binaries.ibm.pc.
  892. SHAR_EOF
  893. chmod 0644 Notes1.5 || echo "restore of Notes1.5 fails"
  894. set `wc -c Notes1.5`;Sum=$1
  895. if test "$Sum" != "731"
  896. then echo original size 731, current size $Sum;fi
  897. echo "x - extracting Patch.Lib (Text)"
  898. sed 's/^X//' << 'SHAR_EOF' > Patch.Lib &&
  899. X MS-DOS Shell Version 1.6    Patch.Lib            March 1990
  900. X
  901. X MS-DOS SHELL - Copyright (c) 1990 Data Logic Limited and Charles Forsyth
  902. X
  903. X This code is based on (in part) the shell program written by Charles
  904. X Forsyth and is subject to the following copyright restrictions:
  905. X
  906. X 1.  Redistribution and use in source and binary forms are permitted
  907. X     provided that the above copyright notice is duplicated in the
  908. X     source form and the copyright notice in file sh6.c is displayed
  909. X     on entry to the program.
  910. X
  911. X 2.  The sources (or parts thereof) or objects generated from the
  912. X     sources (or parts of sources) cannot be sold under any circumstances.
  913. X
  914. X    $Header: patch.lib 1.1 90/03/14 11:47:03 MS_user Exp $
  915. X
  916. X    $Log:    patch.lib $
  917. X    Revision 1.1  90/03/14  11:47:03  MS_user
  918. X    Initial revision
  919. X    
  920. X________________________________________________________________________________
  921. X
  922. XThis document provides a set of instructions for modifying the Microsoft C
  923. Xv5.1 Library function open so that the O_NOINHERIT flag is passed to MSDOS.
  924. XThe CodeView commands are given where appropriate.
  925. X
  926. X1.  Using CodeView (or a similar debugger), set a breakpoint on the call to
  927. X    open in S_open.
  928. X
  929. X    - v S_open
  930. X    move cursor to open
  931. X    - <F9>
  932. X
  933. X2.  Execute to the break point.  You may have to enter a command which opens
  934. X    a file.
  935. X
  936. X    - g
  937. X
  938. X3.  Display the Assembly listing
  939. X
  940. X    - <F3>
  941. X
  942. X4.  Single step the debugger into the open function
  943. X
  944. X    - <F8> (5 times on my system)
  945. X
  946. X5.  Page through the assembler listing until you find the Interrupt 21 call.
  947. X    In my version, this is about 16 assembler instructions into the open
  948. X    function.  The call sequence is:
  949. X
  950. X    mov        byte ptr [bp - 4], 80H
  951. X    push    ds
  952. X    lds        dx, dword ptr [bp + 6]
  953. X    and        al, 03
  954. X    or        al, bh
  955. X    mov        ah, 3d
  956. X    int        21H
  957. X
  958. X6.  Record the machine code values for this sequence (especially the last 4
  959. X    instructions).  On my system these are:
  960. X
  961. X    2403    and        al, 03
  962. X    0AC7    or        al, bh
  963. X    B43D    mov        ah, 3d
  964. X    CD21    int        21H
  965. X
  966. X7.  Exit CodeView
  967. X
  968. X8.  Extract the module open.obj from your library.
  969. X
  970. X    lib llibce "*open.obj;"
  971. X
  972. X9.  Using an appropriate binary editor (or hex dump program) look for the
  973. X    sequence of machine code values leading up to the interrupt (see step 6
  974. X    above).  In my version of open.obj, it starts at offset 0x0f2 in the
  975. X    file.  Change the AND AL, 03 instruction to AND AL, 83 by changing 24
  976. X    03 to 24 83.
  977. X
  978. X    You may have to write a little program to open the file in binary mode,
  979. X    seek to the appropriate location and write 0x83 to the file and close
  980. X    it.
  981. X
  982. X10. Re-load the module in the library (you may want to keep a copy of the
  983. X    original module/library in case of problems).
  984. X
  985. X    lib llibce "-+open.obj;"
  986. X
  987. X11. Re-link the shell
  988. X
  989. X12. Check that the AND AL, 03 has become an AND AL, 83 using steps 1 to 5.
  990. X
  991. XNote:
  992. X    Microsoft, MSDOS and CodeView are registered trademarks of Microsoft
  993. X    Corporation
  994. SHAR_EOF
  995. chmod 0644 Patch.Lib || echo "restore of Patch.Lib fails"
  996. set `wc -c Patch.Lib`;Sum=$1
  997. if test "$Sum" != "2900"
  998. then echo original size 2900, current size $Sum;fi
  999. echo "x - extracting ms_dio.2 (Text)"
  1000. sed 's/^X//' << 'SHAR_EOF' > ms_dio.2 &&
  1001. X.TH DIO_FUNCTION 2L "Data Logic Limited" "MS-DOS Version 1.1"
  1002. X.SH NAME
  1003. Xdio_functions - MSDOS Raw Disk/Memory I/O Functions
  1004. X.SH SYNOPSIS
  1005. X\fB#include <sys/types.h>
  1006. X.br
  1007. X#include <sys/stat.h>
  1008. X.br
  1009. X#include <fcntl.h>
  1010. X.br
  1011. X#include <ms_dio.h>
  1012. X.sp
  1013. Xint dio_access (path, amode)
  1014. X.br
  1015. Xint dio_chmod (path, mode)
  1016. X.br
  1017. Xint dio_close (fildes)
  1018. X.br
  1019. Xint dio_creat (path, mode)
  1020. X.br
  1021. Xint dio_dup (fildes)
  1022. X.br
  1023. Xint dio_isatty (fildes)
  1024. X.br
  1025. Xlong dio_lseek (fildes, offset, whence)
  1026. X.br
  1027. Xint dio_open (path, oflag\fR [ \fB, mode\fR ] \fB)
  1028. X.br
  1029. Xint dio_read (fildes, buf, nbyte)
  1030. X.br
  1031. Xint dio_stat (path, statb)
  1032. X.br
  1033. Xint dio_fstat (fildes, statb)
  1034. X.br
  1035. Xint dio_write (fildes, buf, nbyte)
  1036. X.br
  1037. Xlong dio_tell (fildes)
  1038. X.sp
  1039. Xchar *path;
  1040. X.br
  1041. Xchar *buf;
  1042. X.br
  1043. Xint amode;
  1044. X.br
  1045. Xint mode;
  1046. X.br
  1047. Xint fildes;
  1048. X.br
  1049. Xint whence;
  1050. X.br
  1051. Xint oflag;
  1052. X.br
  1053. Xlong offset;
  1054. X.br
  1055. Xunsigned int nbyte;
  1056. X.br
  1057. Xstruct stat *statb;
  1058. X.SH DESCRIPTION
  1059. XThese functions provide replacements for the standard MS-DOS library
  1060. Xfunction of similar name.  The object of these functions is to allow the
  1061. Xuser to access either the files, or raw disks or memory using standard
  1062. Xlibrary calls, in a similar manner to UNIX where files or devices can be
  1063. Xaccessed using the standard library functions.  A set of macros is provided
  1064. Xin the include file \fBms_dio.h\fR which maps the standard library functions
  1065. Xonto one of these functions.  If the file name or file descriptor refers to
  1066. Xa normal MSDOS file, the standard library function is invoked to perform
  1067. Xthe required function.  Otherwise, the appropriate action is taken by these
  1068. Xreplacement functions.  The functionality of the libraries is described on
  1069. Xthe appropriate manual pages for the standard function.
  1070. X.PP
  1071. XThese libraries recognise three devices - hard disks, floppy disks or
  1072. Xmemory and these are accessed using the following file names:
  1073. X.PP
  1074. X.PD 0
  1075. X.TP
  1076. X\fB/dev/fd\fIn\fR
  1077. XThis device allows the user to access a floppy disk.  The digit \fIn\fR
  1078. Xgives the drive number (from 0 to 9).  The topological information for
  1079. Xthis device (heads, tracks, sectors) is obtained from MS-DOS.  The open
  1080. Xfunction then checks to see what type of disk is loaded.  The following
  1081. Xdisks are recognised (8, 9 or 15 sectors, 1 or 2 heads, double or single
  1082. Xdensity).  The drive density is selected when necessary by attempting to
  1083. Xread sector 0 from the disk.
  1084. X.TP
  1085. X\fB/dev/hd\fIxy\fR
  1086. XThis device allows the user to access a hard disk.  The first digit \fIx\fR
  1087. Xgives the drive number (from 0 to 9) and the second digit \fIy\fR gives the
  1088. Xpartition number on the disk (from 0 to 9).  Partition zero refers to the
  1089. Xwhole disk.  Note that the open function sorts the partition table before
  1090. Xdeciding which partition is referred to.  All topological information for
  1091. SHAR_EOF
  1092. echo "End of part 7"
  1093. echo "File ms_dio.2 is continued in part 8"
  1094. echo "8" > s2_seq_.tmp
  1095. exit 0
  1096.  
  1097.  
  1098.