home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-05-06 | 38.7 KB | 1,419 lines |
-
- #!/bin/sh
- # shar: Shell Archiver (v1.23)
- #
- # This is a shell archive, meaning:
- # 1. Remove everything above the #! /bin/sh line.
- # 2. Save the resulting text in a file.
- # 3. Execute the file with /bin/sh (not csh) to create the files.
- #
- # This is part 1 of a multipart archive
- # do not concatenate these parts, unpack them in order with /bin/sh
- #
- # The following text will create:
- # Patch1.5
- # Patch1.6
- # Notes1.6
- # Notes1.5
- # Patch.Lib
- # ms_dio.2
- # scripts/sh.ini
- #
- if test -r s2_seq_.tmp
- then echo "Must unpack archives in sequence!"
- next=`cat s2_seq_.tmp`; echo "Please unpack part $next next"
- exit 1; fi
- echo "x - extracting Patch1.5 (Text)"
- sed 's/^X//' << 'SHAR_EOF' > Patch1.5 &&
- XIndex: ReadMe
- XPrereq: 1.1
- X*** ../sh14/ReadMe Mon Feb 19 14:13:41 1990
- X--- ReadMe Fri Feb 16 19:07:39 1990
- X***************
- X*** 1,4 ****
- X! MS-DOS Shell Version 1.4 README January 1990
- X
- X MS-DOS SHELL - Copyright (c) 1990 Data Logic Limited and Charles Forsyth
- X
- X--- 1,4 ----
- X! MS-DOS Shell Version 1.5 README February 1990
- X
- X MS-DOS SHELL - Copyright (c) 1990 Data Logic Limited and Charles Forsyth
- X
- X***************
- X*** 13,24 ****
- X 2. The sources (or parts thereof) or objects generated from the
- X sources (or parts of sources) cannot be sold under any circumstances.
- X
- X! $Header: readme 1.1 90/01/25 13:43:20 MS_user Exp $
- X
- X $Log: readme $
- X! # Revision 1.1 90/01/25 13:43:20 MS_user
- X! # Initial revision
- X! #
- X ________________________________________________________________________________
- X
- X This is an implementation of the Unix Shell for MSDOS. As far as
- X--- 13,30 ----
- X 2. The sources (or parts thereof) or objects generated from the
- X sources (or parts of sources) cannot be sold under any circumstances.
- X
- X! $Header: readme 1.3 90/02/16 16:58:10 MS_user Exp $
- X
- X $Log: readme $
- X! Revision 1.3 90/02/16 16:58:10 MS_user
- X! Set up 1.5 release
- X!
- X! Revision 1.2 90/02/14 04:53:20 MS_user
- X! Interrupt 24 note
- X!
- X! Revision 1.1 90/01/25 13:43:20 MS_user
- X! Initial revision
- X!
- X ________________________________________________________________________________
- X
- X This is an implementation of the Unix Shell for MSDOS. As far as
- X***************
- X*** 76,81 ****
- X--- 82,91 ----
- X
- X 7) Wild cards on drives (ie echo *:*.c will echo all the C files in
- X the current directories of each drive) are supported.
- X+
- X+ 8) Interrupt 24 processing has been added.
- X+
- X+ The shell was built using MS-DOS C and MASM v5.1 in large model mode.
- X
- X In order to rebuild this program, you need the DIRECTORY(3) functions
- X for MSDOS (also included) and the version of open in your library must
- XIndex: sh.1
- XPrereq: 1.1
- X*** ../sh14/sh.1 Mon Feb 19 14:24:22 1990
- X--- sh.1 Fri Feb 16 19:07:02 1990
- X***************
- X*** 13,21 ****
- X .\" 2. The sources (or parts thereof) or objects generated from the sources
- X .\" (or parts of sources) cannot be sold under any circumstances.
- X .\"
- X! .\" $Header: sh.1 1.1 90/01/24 14:17:00 MS_user Locked $
- X .\"
- X .\" $Log: sh.1 $
- X .\" Revision 1.1 90/01/24 14:17:00 MS_user
- X .\" Initial revision
- X .\"
- X--- 13,24 ----
- X .\" 2. The sources (or parts thereof) or objects generated from the sources
- X .\" (or parts of sources) cannot be sold under any circumstances.
- X .\"
- X! .\" $Header: sh.1 1.2 90/02/16 16:58:27 MS_user Exp $
- X .\"
- X .\" $Log: sh.1 $
- X+ .\" Revision 1.2 90/02/16 16:58:27 MS_user
- X+ .\" Set up 1.5 release
- X+ .\"
- X .\" Revision 1.1 90/01/24 14:17:00 MS_user
- X .\" Initial revision
- X .\"
- X***************
- X*** 23,29 ****
- X .\"
- X .ds OK [\|
- X .ds CK \|]
- X! .TH SH 1L "Data Logic Limited" "MS-DOS Version 1.4"
- X .SH NAME
- X sh, rsh - shell, the standard/restricted command programming language
- X .SH SYNOPSIS
- X--- 26,32 ----
- X .\"
- X .ds OK [\|
- X .ds CK \|]
- X! .TH SH 1L "Data Logic Limited" "MS-DOS Version 1.5"
- X .SH NAME
- X sh, rsh - shell, the standard/restricted command programming language
- X .SH SYNOPSIS
- XIndex: sh.h
- XPrereq: 1.1
- X*** ../sh14/sh.h Mon Feb 19 16:47:24 1990
- X--- sh.h Fri Feb 16 19:03:36 1990
- X***************
- X*** 13,27 ****
- X * 2. The sources (or parts thereof) or objects generated from the sources
- X * (or parts of sources) cannot be sold under any circumstances.
- X *
- X! * $Header: sh.h 1.1 90/01/29 17:46:51 MS_user Exp $
- X *
- X * $Log: sh.h $
- X * Revision 1.1 90/01/29 17:46:51 MS_user
- X * Initial revision
- X *
- X *
- X */
- X
- X #define LINE_MAX 1000 /* Command line length */
- X #define HISTORY_MAX 100 /* History array length */
- X /* Space for full file name */
- X--- 13,34 ----
- X * 2. The sources (or parts thereof) or objects generated from the sources
- X * (or parts of sources) cannot be sold under any circumstances.
- X *
- X! * $Header: sh.h 1.3 90/02/16 16:58:48 MS_user Exp $
- X *
- X * $Log: sh.h $
- X+ * Revision 1.3 90/02/16 16:58:48 MS_user
- X+ * Set up 1.5 release
- X+ *
- X+ * Revision 1.2 90/02/14 04:45:33 MS_user
- X+ * Add Interrupt 24 processing and clean up interrupt 0 and 23 processing
- X+ *
- X * Revision 1.1 90/01/29 17:46:51 MS_user
- X * Initial revision
- X *
- X *
- X */
- X
- X+ #define PATCHLEVEL 1
- X #define LINE_MAX 1000 /* Command line length */
- X #define HISTORY_MAX 100 /* History array length */
- X /* Space for full file name */
- X***************
- X*** 124,133 ****
- X extern unsigned int SW_intr; /* interrupt pending */
- X extern unsigned int SW_Blocks; /* Number of blocks to read */
- X extern int SW_fp; /* File or EMS Handler */
- X- extern unsigned int SW_I0_V_BX; /* Out interrupt Zero address */
- X- extern unsigned int SW_I0_V_ES;
- X- extern unsigned int SW_I23_V_ES; /* Our Interrupt 23 address */
- X- extern unsigned int SW_I23_V_BX;
- X extern unsigned long SW_EMstart; /* Start addr of extend mem */
- X extern unsigned int SW_Mode; /* Type of swapping to do */
- X /* 1 - disk */
- X--- 131,136 ----
- X***************
- X*** 523,525 ****
- X--- 526,537 ----
- X extern void Restore_Environment (int, int);
- X extern int sort_compare (char **, char **);
- X extern int Check_Script (char *);
- X+
- X+ /*
- X+ * Interrupt handling
- X+ */
- X+
- X+ extern void interrupt SW_Int24 (void); /* Int 24 New address */
- X+ extern void (interrupt far *SW_I24_V) (void); /* Old address */
- X+ extern void (interrupt far *SW_I0_V) (void); /* Int 0 address */
- X+ extern void (interrupt far *SW_I23_V) (void); /* Int 23 address */
- XIndex: sh0.asm
- XPrereq: 1.1
- X*** ../sh14/sh0.asm Mon Feb 19 16:46:08 1990
- X--- sh0.asm Fri Feb 16 19:13:56 1990
- X***************
- X*** 18,26 ****
- X ; 2. The sources (or parts thereof) or objects generated from the sources
- X ; (or parts of sources) cannot be sold under any circumstances.
- X ;
- X! ; $Header: sh0.asm 1.1 90/01/25 13:43:36 MS_user Exp $
- X ;
- X ; $Log: sh0.asm $
- X ; Revision 1.1 90/01/25 13:43:36 MS_user
- X ; Initial revision
- X ;
- X--- 18,29 ----
- X ; 2. The sources (or parts thereof) or objects generated from the sources
- X ; (or parts of sources) cannot be sold under any circumstances.
- X ;
- X! ; $Header: sh0.asm 1.2 90/02/14 04:45:58 MS_user Exp $
- X ;
- X ; $Log: sh0.asm $
- X+ ; Revision 1.2 90/02/14 04:45:58 MS_user
- X+ ; Add Interrupt 24 processing and clean up interrupt 0 and 23 processing
- X+ ;
- X ; Revision 1.1 90/01/25 13:43:36 MS_user
- X ; Initial revision
- X ;
- X***************
- X*** 67,88 ****
- X public _SW_intr
- X public _SW_Blocks
- X public _SW_fp
- X! public _SW_I0_V_BX
- X! public _SW_I0_V_ES
- X! public _SW_I23_V_ES
- X! public _SW_I23_V_BX
- X public _SW_EMstart
- X public _SW_Mode
- X public _SW_EMSFrame
- X
- X _cmd_line db 129 dup (?) ; Command line
- X _path_line db 80 dup (?) ; Path line
- X _SW_Blocks dw 0 ; Number of blocks to read/write
- X _SW_fp dw 0 ; File ID
- X! _SW_I23_V_ES dw 0 ; Interrupt 23 address
- X! _SW_I23_V_BX dw 0
- X! _SW_I0_V_BX dw 0 ; Our Interrupt zero value
- X! _SW_I0_V_ES dw 0
- X _SW_EMstart dd 0100000H ; Default Extended Mem start
- X _SW_Mode dw 0 ; Type of swapping to do
- X ; 1 - disk
- X--- 70,90 ----
- X public _SW_intr
- X public _SW_Blocks
- X public _SW_fp
- X! public _SW_I0_V
- X! public _SW_I23_V
- X! public _SW_I24_V
- X public _SW_EMstart
- X public _SW_Mode
- X public _SW_EMSFrame
- X+ public _SW_Int24
- X
- X _cmd_line db 129 dup (?) ; Command line
- X _path_line db 80 dup (?) ; Path line
- X _SW_Blocks dw 0 ; Number of blocks to read/write
- X _SW_fp dw 0 ; File ID
- X! _SW_I0_V dd 0 ; Our Interrupt Zero address
- X! _SW_I23_V dd 0 ; Our Interrupt 23 address
- X! _SW_I24_V dd 0 ; Original Interrupt 24 address
- X _SW_EMstart dd 0100000H ; Default Extended Mem start
- X _SW_Mode dw 0 ; Type of swapping to do
- X ; 1 - disk
- X***************
- X*** 91,97 ****
- X _SW_EMSFrame dw 0 ; EMS Frame segment
- X _SW_intr dw 0 ; Interrupt 23 detected.
- X
- X-
- X ;
- X ; Some addition variables
- X ;
- X--- 93,98 ----
- X***************
- X*** 514,520 ****
- X ; Check for interrupt 23 detected
- X ;
- X mov ax, word ptr cs:_SW_intr
- X! xor ax, ax
- X jz $I23_Cf ; No - continue;
- X
- X ;
- X--- 515,521 ----
- X ; Check for interrupt 23 detected
- X ;
- X mov ax, word ptr cs:_SW_intr
- X! or ax, ax
- X jz $I23_Cf ; No - continue;
- X
- X ;
- X***************
- X*** 527,534 ****
- X sti
- X
- X mov ds, word ptr cs:S_ds ; Restore DS
- X! mov word ptr ds:_errno, 4 ; Set to EINTR
- X! jmp $Exec_Error
- X
- X ;
- X ; No interrupts - continue
- X--- 528,535 ----
- X sti
- X
- X mov ds, word ptr cs:S_ds ; Restore DS
- X! xor ax, ax
- X! jmp $Exec_Complete
- X
- X ;
- X ; No interrupts - continue
- X***************
- X*** 729,741 ****
- X $SA_spawn_Exit:
- X push ax ; Save exit code
- X mov ax, 02523H ; Set Control C Interrupt
- X! mov ds, word ptr cs:_SW_I23_V_ES
- X! mov dx, word ptr cs:_SW_I23_V_BX
- X int 021H
- X
- X! mov ax, 02523H ; Set Divide Zero Interrupt
- X! mov ds, word ptr cs:_SW_I0_V_ES
- X! mov dx, word ptr cs:_SW_I0_V_BX
- X
- X ;
- X
- X--- 730,742 ----
- X $SA_spawn_Exit:
- X push ax ; Save exit code
- X mov ax, 02523H ; Set Control C Interrupt
- X! mov dx, word ptr cs:_SW_I23_V
- X! mov ds, word ptr cs:_SW_I23_V + 2
- X int 021H
- X
- X! mov ax, 02500H ; Set Divide Zero Interrupt
- X! mov dx, word ptr cs:_SW_I0_V
- X! mov ds, word ptr cs:_SW_I0_V + 2
- X
- X ;
- X
- X***************
- X*** 983,1003 ****
- X ;
- X
- X SA_IRET proc far
- X! push ax
- X! push bp ; Save the AX and DS registers
- X! push ds
- X! mov bp, seg SH0_TEXT ; Get my segment
- X! mov ds, bp
- X! inc word ptr ds:_SW_intr ; Set Interrupt 23 detected.
- X! cmp byte ptr ds:InShell, 0 ; Are we in the shell ?
- X jz $SA_Ins
- X
- X ; In another program - move the stack around
- X
- X- mov bp, sp
- X- pop ds ; Unstack values
- X- pop bp
- X- pop ax
- X stc
- X ret
- X
- X--- 984,995 ----
- X ;
- X
- X SA_IRET proc far
- X! inc word ptr cs:_SW_intr ; Set Interrupt 23 detected.
- X! cmp byte ptr cs:InShell, 0 ; Are we in the shell ?
- X jz $SA_Ins
- X
- X ; In another program - move the stack around
- X
- X stc
- X ret
- X
- X***************
- X*** 1005,1013 ****
- X ; In shell - ignore interrupt 23 for the moment
- X
- X $SA_Ins:
- X- pop ds ; Restore regs
- X- pop bp
- X- pop ax
- X iret
- X
- X SA_IRET endp
- X--- 997,1002 ----
- X***************
- X*** 1028,1033 ****
- X--- 1017,1054 ----
- X int 021H
- X
- X SA_DZERO endp
- X+
- X+ ;
- X+ ; INTERRUPT 24 - ERROR HANDLER - Output message
- X+ ;
- X+
- X+ _SW_Int24 proc far
- X+ pushf ; Save flags
- X+ call dword ptr cs:_SW_I24_V
- X+
- X+ cmp byte ptr cs:InShell, 0 ; Are we in the shell ?
- X+ jnz $SW_int24c ; No - no processing
- X+
- X+ test ah, 010h
- X+ jnz $SW_int24a
- X+ test ah, 008h
- X+ jnz $SW_int24b
- X+
- X+ mov al, 003h ; Fail system call
- X+
- X+ $SW_int24c:
- X+ iret
- X+
- X+ ;
- X+ $SW_int24a:
- X+ xor al, al ; Ignore error
- X+ iret
- X+
- X+ ;
- X+ $SW_int24b:
- X+ mov al, 001h ; Retry error
- X+ iret
- X+ _SW_Int24 endp
- X
- X ;
- X ; Start of overwrite area for environment. Align on a paragraph
- XIndex: sh1.c
- XPrereq: 1.1
- X*** ../sh14/sh1.c Mon Feb 19 16:09:18 1990
- X--- sh1.c Fri Feb 16 19:12:27 1990
- X***************
- X*** 13,21 ****
- X * 2. The sources (or parts thereof) or objects generated from the sources
- X * (or parts of sources) cannot be sold under any circumstances.
- X *
- X! * $Header: sh1.c 1.1 90/01/25 13:40:39 MS_user Exp $
- X *
- X * $Log: sh1.c $
- X * Revision 1.1 90/01/25 13:40:39 MS_user
- X * Initial revision
- X *
- X--- 13,24 ----
- X * 2. The sources (or parts thereof) or objects generated from the sources
- X * (or parts of sources) cannot be sold under any circumstances.
- X *
- X! * $Header: sh1.c 1.2 90/02/14 04:46:20 MS_user Exp $
- X *
- X * $Log: sh1.c $
- X+ * Revision 1.2 90/02/14 04:46:20 MS_user
- X+ * Add Interrupt 24 processing
- X+ *
- X * Revision 1.1 90/01/25 13:40:39 MS_user
- X * Initial revision
- X *
- X***************
- X*** 1522,1527 ****
- X--- 1525,1538 ----
- X /* Patch the ctype table as a cheat */
- X
- X (_ctype+1)['_'] |= _UPPER;
- X+
- X+ /* Save the interrupt 24 address */
- X+
- X+ SW_I24_V = _dos_getvect (0x24);
- X+
- X+ /* Set the newinterrupt 24 address */
- X+
- X+ _dos_setvect (0x24, SW_Int24);
- X }
- X
- X /*
- XIndex: sh3.c
- XPrereq: 1.1
- X*** ../sh14/sh3.c Mon Feb 19 16:24:02 1990
- X--- sh3.c Fri Feb 16 19:10:04 1990
- X***************
- X*** 13,21 ****
- X * 2. The sources (or parts thereof) or objects generated from the sources
- X * (or parts of sources) cannot be sold under any circumstances.
- X *
- X! * $Header: sh3.c 1.1 90/01/25 13:41:24 MS_user Exp $
- X *
- X * $Log: sh3.c $
- X * Revision 1.1 90/01/25 13:41:24 MS_user
- X * Initial revision
- X *
- X--- 13,24 ----
- X * 2. The sources (or parts thereof) or objects generated from the sources
- X * (or parts of sources) cannot be sold under any circumstances.
- X *
- X! * $Header: sh3.c 1.2 90/02/14 04:47:06 MS_user Exp $
- X *
- X * $Log: sh3.c $
- X+ * Revision 1.2 90/02/14 04:47:06 MS_user
- X+ * Clean up Interrupt 23 and 0 processing, change EMS version error message
- X+ *
- X * Revision 1.1 90/01/25 13:41:24 MS_user
- X * Initial revision
- X *
- X***************
- X*** 1116,1135 ****
- X
- X /* Save the interrupt 0 address */
- X
- X! or.x.ax = 0x3500;
- X! intdosx (&or, &or, &sr);
- X
- X- SW_I0_V_BX = or.x.bx;
- X- SW_I0_V_ES = sr.es;
- X-
- X /* Save the interrupt 23 address */
- X
- X! or.x.ax = 0x3523;
- X! intdosx (&or, &or, &sr);
- X
- X- SW_I23_V_BX = or.x.bx;
- X- SW_I23_V_ES = sr.es;
- X-
- X /* Get max Extended memory pages, and convert to 16K blocks. If Extended
- X * memory swapping disabled, set to zero
- X */
- X--- 1119,1130 ----
- X
- X /* Save the interrupt 0 address */
- X
- X! SW_I0_V = _dos_getvect (0x00);
- X
- X /* Save the interrupt 23 address */
- X
- X! SW_I23_V = _dos_getvect (0x23);
- X
- X /* Get max Extended memory pages, and convert to 16K blocks. If Extended
- X * memory swapping disabled, set to zero
- X */
- X***************
- X*** 1174,1180 ****
- X
- X if ((or.h.ah != 0) || (or.h.al < 0x32))
- X {
- X! EMS_error (EMS_emsg, or.h.ah);
- X return;
- X }
- X
- X--- 1169,1175 ----
- X
- X if ((or.h.ah != 0) || (or.h.al < 0x32))
- X {
- X! EMS_error ("Warning: EMS Version < 3.2\n", 0);
- X return;
- X }
- X
- XIndex: sh6.c
- XPrereq: 1.1
- X*** ../sh14/sh6.c Mon Feb 19 16:33:18 1990
- X--- sh6.c Fri Feb 16 19:07:19 1990
- X***************
- X*** 13,21 ****
- X * 2. The sources (or parts thereof) or objects generated from the sources
- X * (or parts of sources) cannot be sold under any circumstances.
- X *
- X! * $Header: sh6.c 1.1 90/01/25 13:42:04 MS_user Exp $
- X *
- X * $Log: sh6.c $
- X * Revision 1.1 90/01/25 13:42:04 MS_user
- X * Initial revision
- X *
- X--- 13,24 ----
- X * 2. The sources (or parts thereof) or objects generated from the sources
- X * (or parts of sources) cannot be sold under any circumstances.
- X *
- X! * $Header: sh6.c 1.2 90/02/16 16:58:22 MS_user Exp $
- X *
- X * $Log: sh6.c $
- X+ * Revision 1.2 90/02/16 16:58:22 MS_user
- X+ * Set up 1.5 release
- X+ *
- X * Revision 1.1 90/01/25 13:42:04 MS_user
- X * Initial revision
- X *
- X***************
- X*** 31,37 ****
- X #include <unistd.h>
- X #include "sh.h"
- X
- X! char *Copy_Right1 = "MS-DOS SH Version 1.4\341 (DOS %d.%d)\n";
- X char *Copy_Right2 = "Copyright (c) Data Logic Ltd and Charles Forsyth 1990\n";
- X char **dolv; /* Parameter array */
- X int dolc; /* Number of entries in parameter array */
- X--- 34,40 ----
- X #include <unistd.h>
- X #include "sh.h"
- X
- X! char *Copy_Right1 = "MS-DOS SH Version 1.5\341 (DOS %d.%d)\n";
- X char *Copy_Right2 = "Copyright (c) Data Logic Ltd and Charles Forsyth 1990\n";
- X char **dolv; /* Parameter array */
- X int dolc; /* Number of entries in parameter array */
- XIndex: sh7.c
- XPrereq: 1.1
- X*** ../sh14/sh7.c Mon Feb 19 16:36:26 1990
- X--- sh7.c Fri Feb 16 19:16:21 1990
- X***************
- X*** 3,9 ****
- X * MS-DOS SHELL - Copyright (c) 1990 Data Logic Limited and Charles Forsyth
- X *
- X * This code is based on (in part) the shell program written by Charles
- X! * Forsyth and is subject to the following copyright restrictions:
- X *
- X * 1. Redistribution and use in source and binary forms are permitted
- X * provided that the above copyright notice is duplicated in the
- X--- 3,11 ----
- X * MS-DOS SHELL - Copyright (c) 1990 Data Logic Limited and Charles Forsyth
- X *
- X * This code is based on (in part) the shell program written by Charles
- X! * Forsyth and is subject to the following copyright restrictions. The
- X! * code for the test (dotest) command was based on code written by
- X! * Erik Baalbergen. The following copyright conditions apply:
- X *
- X * 1. Redistribution and use in source and binary forms are permitted
- X * provided that the above copyright notice is duplicated in the
- X***************
- X*** 13,21 ****
- X * 2. The sources (or parts thereof) or objects generated from the sources
- X * (or parts of sources) cannot be sold under any circumstances.
- X *
- X! * $Header: sh7.c 1.1 90/01/29 17:46:25 MS_user Exp $
- X *
- X * $Log: sh7.c $
- X * Revision 1.1 90/01/29 17:46:25 MS_user
- X * Initial revision
- X *
- X--- 15,26 ----
- X * 2. The sources (or parts thereof) or objects generated from the sources
- X * (or parts of sources) cannot be sold under any circumstances.
- X *
- X! * $Header: sh7.c 1.2 90/01/30 14:43:34 MS_user Exp $
- X *
- X * $Log: sh7.c $
- X+ * Revision 1.2 90/01/30 14:43:34 MS_user
- X+ * Add missing author note
- X+ *
- X * Revision 1.1 90/01/29 17:46:25 MS_user
- X * Initial revision
- X *
- XIndex: sh9.c
- XPrereq: 1.1
- X*** ../sh14/sh9.c Mon Feb 19 16:42:18 1990
- X--- sh9.c Mon Feb 19 15:49:13 1990
- X***************
- X*** 12,24 ****
- X * 2. The sources (or parts thereof) or objects generated from the sources
- X * (or parts of sources) cannot be sold under any circumstances.
- X *
- X! * $Header: sh9.c 1.1 90/01/26 17:25:19 MS_user Exp $
- X *
- X * $Log: sh9.c $
- X * Revision 1.1 90/01/26 17:25:19 MS_user
- X * Initial revision
- X! *
- X! *
- X */
- X
- X #include <sys/types.h>
- X--- 12,27 ----
- X * 2. The sources (or parts thereof) or objects generated from the sources
- X * (or parts of sources) cannot be sold under any circumstances.
- X *
- X! * $Header: sh9.c 1.2 90/02/19 15:42:39 MS_user Exp $
- X *
- X * $Log: sh9.c $
- X+ * Revision 1.2 90/02/19 15:42:39 MS_user
- X+ * Remove dependency on ANSI.SYS
- X+ *
- X * Revision 1.1 90/01/26 17:25:19 MS_user
- X * Initial revision
- X! *
- X! *
- X */
- X
- X #include <sys/types.h>
- X***************
- X*** 47,68 ****
- X static bool UpDate_CLine (char *);
- X static bool Re_start (char *);
- X static void memrcpy (char *, char *, int);
- X! static int read_cursor_position (void);
- X static void set_cursor_position (int);
- X static void gen_cursor_position (void);
- X
- X static bool insert_mode = FALSE;
- X static char *c_buffer_pos; /* Position in command line */
- X static char *end_buffer; /* End of command line */
- X static int s_cursor; /* Start cursor position */
- X static int c_history = -1; /* Current entry */
- X static int l_history = 0; /* End of history array */
- X static int M_length = -1; /* Match length */
- X static char l_buffer[LINE_MAX + 1];
- X! static char *No_prehistory = "history: No previous commands\033[2K\n";
- X! static char *No_MatchHistory = "history: No history match found\033[2K\n";
- X! static char *No_posthistory = "history: No more commands\033[2K\n";
- X! static char *History_2long = "history: History line too long\033[2K\n";
- X static char *H_TooLongI = "History file line too long - ignored (%d)\n";
- X
- X /* Arrary of history Items */
- X--- 50,73 ----
- X static bool UpDate_CLine (char *);
- X static bool Re_start (char *);
- X static void memrcpy (char *, char *, int);
- X! static void read_cursor_position (void);
- X static void set_cursor_position (int);
- X static void gen_cursor_position (void);
- X+ static void erase_to_end_of_line (void);
- X
- X static bool insert_mode = FALSE;
- X static char *c_buffer_pos; /* Position in command line */
- X static char *end_buffer; /* End of command line */
- X static int s_cursor; /* Start cursor position */
- X+ static int m_line = 0; /* Max write line number */
- X static int c_history = -1; /* Current entry */
- X static int l_history = 0; /* End of history array */
- X static int M_length = -1; /* Match length */
- X static char l_buffer[LINE_MAX + 1];
- X! static char *No_prehistory = "history: No previous commands";
- X! static char *No_MatchHistory = "history: No history match found";
- X! static char *No_posthistory = "history: No more commands";
- X! static char *History_2long = "history: History line too long";
- X static char *H_TooLongI = "History file line too long - ignored (%d)\n";
- X
- X /* Arrary of history Items */
- X***************
- X*** 129,135 ****
- X end_buffer = l_buffer;
- X insert_mode = FALSE;
- X M_length = -1;
- X! s_cursor = read_cursor_position ();
- X
- X while (((i = getch ()) != 0x1a) && (i != NL) && (i != '\r'))
- X {
- X--- 134,140 ----
- X end_buffer = l_buffer;
- X insert_mode = FALSE;
- X M_length = -1;
- X! read_cursor_position ();
- X
- X while (((i = getch ()) != 0x1a) && (i != NL) && (i != '\r'))
- X {
- X***************
- X*** 156,162 ****
- X v1a_puts (l_buffer);
- X break;
- X }
- X!
- X else if (*l_buffer != '!')
- X break;
- X
- X--- 161,167 ----
- X v1a_puts (l_buffer);
- X break;
- X }
- X!
- X else if (*l_buffer != '!')
- X break;
- X
- X***************
- X*** 372,385 ****
- X
- X /* Read Cursor position */
- X
- X! static int read_cursor_position ()
- X {
- X union REGS r;
- X
- X r.h.ah = 0x03; /* Read cursor position */
- X r.h.bh = 0; /* Page zero */
- X int86 (0x10, &r, &r);
- X! return (r.h.dh * 80) + r.h.dl;
- X }
- X
- X /* Re-position the cursor */
- X--- 377,391 ----
- X
- X /* Read Cursor position */
- X
- X! static void read_cursor_position ()
- X {
- X union REGS r;
- X
- X r.h.ah = 0x03; /* Read cursor position */
- X r.h.bh = 0; /* Page zero */
- X int86 (0x10, &r, &r);
- X! s_cursor = (r.h.dh * 80) + r.h.dl;
- X! m_line = r.h.dh;
- X }
- X
- X /* Re-position the cursor */
- X***************
- X*** 402,412 ****
- X s_cursor -= 80;
- X }
- X
- X int86 (0x10, &r, &r);
- X }
- X
- X! /* Generate the new cursor position */
- X
- X static void gen_cursor_position ()
- X {
- X char *cp = l_buffer - 1;
- X--- 408,439 ----
- X s_cursor -= 80;
- X }
- X
- X+ if (m_line < r.h.dh)
- X+ m_line = r.h.dh;
- X+
- X int86 (0x10, &r, &r);
- X }
- X
- X! /* Erase to end of line (avoid need for STUPID ansi.sys memory eater!) */
- X
- X+ static void erase_to_end_of_line ()
- X+ {
- X+ union REGS r;
- X+
- X+ r.h.ah = 0x03;
- X+ r.h.bh = 0;
- X+ int86 (0x10, &r, &r);
- X+
- X+ if ((r.x.cx = 80 - r.h.dl + (m_line - r.h.dh) * 80) > 0)
- X+ {
- X+ r.x.ax = 0x0920;
- X+ r.x.bx = 0x0007;
- X+ int86 (0x10, &r, &r);
- X+ }
- X+ }
- X+
- X+ /* Generate the new cursor position */
- X+
- X static void gen_cursor_position ()
- X {
- X char *cp = l_buffer - 1;
- X***************
- X*** 471,477 ****
- X ++cp;
- X }
- X
- X! v1_puts ("\033[2K"); /* clear to end of line */
- X }
- X
- X /* Process history command
- X--- 498,504 ----
- X ++cp;
- X }
- X
- X! erase_to_end_of_line (); /* clear to end of line */
- X }
- X
- X /* Process history command
- X***************
- X*** 531,540 ****
- X
- X while (isspace (*optionals))
- X ++optionals;
- X-
- X
- X- /* Copy selected item into line buffer */
- X
- X case 2:
- X M_length = strlen (l_buffer) - 1;
- X if (!Scan_History ())
- X--- 558,567 ----
- X
- X while (isspace (*optionals))
- X ++optionals;
- X
- X
- X+ /* Copy selected item into line buffer */
- X+
- X case 2:
- X M_length = strlen (l_buffer) - 1;
- X if (!Scan_History ())
- X***************
- X*** 562,568 ****
- X
- X if (end_buffer > optionals)
- X memrcpy (end_buffer + 1 + opt_len, optionals + opt_len, opt_len + 1);
- X!
- X else
- X strcpy (end_buffer + 1, optionals);
- X
- X--- 589,595 ----
- X
- X if (end_buffer > optionals)
- X memrcpy (end_buffer + 1 + opt_len, optionals + opt_len, opt_len + 1);
- X!
- X else
- X strcpy (end_buffer + 1, optionals);
- X
- X***************
- X*** 816,822 ****
- X--- 843,853 ----
- X char *cp;
- X {
- X if (cp != (char *)NULL)
- X+ {
- X print_warn (cp);
- X+ erase_to_end_of_line ();
- X+ v1_putc (NL);
- X+ }
- X
- X put_prompt (last_prompt);
- X
- X***************
- X*** 824,830 ****
- X
- X c_buffer_pos = l_buffer;
- X end_buffer = l_buffer;
- X! s_cursor = read_cursor_position ();
- X
- X return FALSE;
- X }
- X--- 855,861 ----
- X
- X c_buffer_pos = l_buffer;
- X end_buffer = l_buffer;
- X! read_cursor_position ();
- X
- X return FALSE;
- X }
- SHAR_EOF
- chmod 0644 Patch1.5 || echo "restore of Patch1.5 fails"
- set `wc -c Patch1.5`;Sum=$1
- if test "$Sum" != "24187"
- then echo original size 24187, current size $Sum;fi
- echo "x - extracting Patch1.6 (Text)"
- sed 's/^X//' << 'SHAR_EOF' > Patch1.6 &&
- XIndex: lib/popen.c
- X*** ../sh15/lib/popen.c Fri Mar 2 11:34:14 1990
- X--- lib/popen.c Mon Apr 30 22:51:53 1990
- X***************
- X*** 17,44 ****
- X char *p_file; /* Pipe file name */
- X int p_status; /* Status for close to return */
- X /* Read pipes only */
- X! bool p_write; /* Read or write */
- X } PIPE;
- X
- X static PIPE P_list[_NFILE]; /* The pipe structures */
- X static int Pipes_Inited = 0; /* Initialised ? */
- X static int Unique_Pipe = 0;
- X
- X! static PIPE *_p_save_entry (char *, bool);
- X static int _p_run (char *);
- X static int _p_reset_entry (PIPE *, int);
- X static PIPE *_p_get_entry (FILE *);
- X
- X /* Set up a pipe structure */
- X
- X static PIPE *_p_save_entry (prog, mode)
- X char *prog;
- X! bool mode;
- X {
- X FILE *fp; /* File handler */
- X PIPE *pp; /* Pipe handler structure */
- X char tmpfile[NAME_MAX + PATH_MAX + 2];
- X char *tmpdir; /* Points to directory prefix of pipe */
- X
- X /* Find out where we should put temporary files */
- X
- X--- 17,46 ----
- X char *p_file; /* Pipe file name */
- X int p_status; /* Status for close to return */
- X /* Read pipes only */
- X! char p_write; /* Read or write */
- X } PIPE;
- X
- X static PIPE P_list[_NFILE]; /* The pipe structures */
- X static int Pipes_Inited = 0; /* Initialised ? */
- X static int Unique_Pipe = 0;
- X
- X! static PIPE *_p_save_entry (char *, char *);
- X static int _p_run (char *);
- X static int _p_reset_entry (PIPE *, int);
- X static PIPE *_p_get_entry (FILE *);
- X+ static int _p_onexit (void);
- X
- X /* Set up a pipe structure */
- X
- X static PIPE *_p_save_entry (prog, mode)
- X char *prog;
- X! char *mode;
- X {
- X FILE *fp; /* File handler */
- X PIPE *pp; /* Pipe handler structure */
- X char tmpfile[NAME_MAX + PATH_MAX + 2];
- X char *tmpdir; /* Points to directory prefix of pipe */
- X+ char s_mode = *mode;
- X
- X /* Find out where we should put temporary files */
- X
- X***************
- X*** 52,65 ****
- X
- X /* Get a unique pipe file name */
- X
- X! sprintf (tmpfile, "%s/pipe%05d.tmp", tmpdir, Unique_Pipe++);
- X unlink (tmpfile);
- X
- X /* Create the pipe */
- X
- X! if ((fp = fopen (tmpfile, "w")) == (FILE *) NULL)
- X! return (PIPE *)NULL;
- X
- X /* Create the PIPE entry */
- X
- X if ((pp = _p_get_entry ((FILE *)NULL)) == (PIPE *)NULL)
- X--- 54,71 ----
- X
- X /* Get a unique pipe file name */
- X
- X! sprintf (tmpfile, "%s/pipe%.4x.tmp", tmpdir, Unique_Pipe++);
- X unlink (tmpfile);
- X
- X /* Create the pipe */
- X
- X! *mode = 'w';
- X! fp = fopen (tmpfile, mode);
- X! *mode = s_mode;
- X
- X+ if (fp == (FILE *) NULL)
- X+ return (PIPE *)NULL;
- X+
- X /* Create the PIPE entry */
- X
- X if ((pp = _p_get_entry ((FILE *)NULL)) == (PIPE *)NULL)
- X***************
- X*** 73,79 ****
- X /* Set up the entry */
- X
- X pp->p_fp = fp;
- X! pp->p_write = mode;
- X pp->p_process = strdup (prog);
- X pp->p_file = strdup (tmpfile);
- X
- X--- 79,85 ----
- X /* Set up the entry */
- X
- X pp->p_fp = fp;
- X! pp->p_write = *mode;
- X pp->p_process = strdup (prog);
- X pp->p_file = strdup (tmpfile);
- X
- X***************
- X*** 121,127 ****
- X shell = ++bp;
- X
- X if (strcmp (shell, "command.com"))
- X! *dash = '-';
- X
- X /* Run the program */
- X
- X--- 127,133 ----
- X shell = ++bp;
- X
- X if (strcmp (shell, "command.com"))
- X! *dash = '/';
- X
- X /* Run the program */
- X
- X***************
- X*** 199,210 ****
- X {
- X memset (&P_list[0], 0, sizeof (P_list));
- X Pipes_Inited = 1;
- X- }
- X
- X /* For write style pipe, pclose handles program execution */
- X
- X! if (strcmp (type, "w") == 0)
- X! return ((pp = _p_save_entry (command, TRUE)) == (PIPE *)NULL)
- X ? (FILE *)NULL : pp->p_fp;
- X
- X /* read pipe must create tmp file, set up stdout to point to the temp
- X--- 205,219 ----
- X {
- X memset (&P_list[0], 0, sizeof (P_list));
- X Pipes_Inited = 1;
- X
- X+ if (onexit (_p_onexit) == (onexit_t)NULL)
- X+ return (FILE *)NULL;
- X+ }
- X+
- X /* For write style pipe, pclose handles program execution */
- X
- X! if (*type == 'w')
- X! return ((pp = _p_save_entry (command, type)) == (PIPE *)NULL)
- X ? (FILE *)NULL : pp->p_fp;
- X
- X /* read pipe must create tmp file, set up stdout to point to the temp
- X***************
- X*** 213,228 ****
- X * fine.
- X */
- X
- X! else if (strcmp (type, "r") == 0)
- X {
- X! if ((pp = _p_save_entry (command, FALSE)) == (PIPE *)NULL)
- X return (FILE *)NULL;
- X
- X /* Save the stdout file descriptor, dup the pipe onto standard out,
- X * execute the command, close the pipe and re-open it
- X */
- X
- X! if ((old_stdout = dup (fileno(stdout)) < 0) ||
- X (dup2 (fileno (pp->p_fp), fileno(stdout)) < 0) ||
- X ((pp->p_status = _p_run (command)) < 0) ||
- X (fclose (pp->p_fp) < 0) ||
- X--- 222,237 ----
- X * fine.
- X */
- X
- X! else if (*type == 'r')
- X {
- X! if ((pp = _p_save_entry (command, type)) == (PIPE *)NULL)
- X return (FILE *)NULL;
- X
- X /* Save the stdout file descriptor, dup the pipe onto standard out,
- X * execute the command, close the pipe and re-open it
- X */
- X
- X! if (((old_stdout = dup (fileno(stdout))) < 0) ||
- X (dup2 (fileno (pp->p_fp), fileno(stdout)) < 0) ||
- X ((pp->p_status = _p_run (command)) < 0) ||
- X (fclose (pp->p_fp) < 0) ||
- X***************
- X*** 264,270 ****
- X * descriptor to stdin, execute the command, and then restore stdin
- X */
- X
- X! if (pp->p_write &&
- X ( ((pp->p_fp = fopen (pp->p_file, "r")) == (FILE *)NULL) ||
- X ((old_stdin = dup (fileno (stdin))) < 0) ||
- X (dup2 (fileno (pp->p_fp), fileno (stdin)) < 0) ||
- X--- 273,279 ----
- X * descriptor to stdin, execute the command, and then restore stdin
- X */
- X
- X! if ((pp->p_write == 'w') &&
- X ( ((pp->p_fp = fopen (pp->p_file, "r")) == (FILE *)NULL) ||
- X ((old_stdin = dup (fileno (stdin))) < 0) ||
- X (dup2 (fileno (pp->p_fp), fileno (stdin)) < 0) ||
- X***************
- X*** 277,280 ****
- X--- 286,304 ----
- X /* Close the temp file and remove it */
- X
- X return _p_reset_entry (pp, 0);
- X+ }
- X+
- X+ /* Clean up on exit, in case a pipe has not been processed */
- X+
- X+ static int _p_onexit ()
- X+ {
- X+ int i;
- X+
- X+ for (i = 0; i < _NFILE; i++)
- X+ {
- X+ if (P_list[i].p_fp != (FILE *)NULL)
- X+ pclose (P_list[i].p_fp);
- X+ }
- X+
- X+ return 0;
- X }
- XIndex: shell/sh6.c
- XPrereq: 1.2
- X*** ../sh15/shell/sh6.c Fri Feb 16 19:07:19 1990
- X--- shell/sh6.c Tue May 1 19:49:19 1990
- X***************
- X*** 13,21 ****
- X * 2. The sources (or parts thereof) or objects generated from the sources
- X * (or parts of sources) cannot be sold under any circumstances.
- X *
- X! * $Header: sh6.c 1.2 90/02/16 16:58:22 MS_user Exp $
- X *
- X * $Log: sh6.c $
- X * Revision 1.2 90/02/16 16:58:22 MS_user
- X * Set up 1.5 release
- X *
- X--- 13,48 ----
- X * 2. The sources (or parts thereof) or objects generated from the sources
- X * (or parts of sources) cannot be sold under any circumstances.
- X *
- X! * $Header: sh6.c 1.11 90/04/25 22:38:47 MS_user Exp $
- X *
- X * $Log: sh6.c $
- X+ * Revision 1.11 90/04/25 22:38:47 MS_user
- X+ * Add initialisation for new field in IO_Args
- X+ *
- X+ * Revision 1.10 90/04/25 09:20:39 MS_user
- X+ * Change version message processing
- X+ *
- X+ * Revision 1.9 90/04/11 12:57:12 MS_user
- X+ * Update release date
- X+ *
- X+ * Revision 1.8 90/04/06 17:17:46 MS_user
- X+ * RELEASE 1.6!
- X+ *
- X+ * Revision 1.7 90/03/26 20:55:36 MS_user
- X+ * Move to beta test version
- X+ *
- X+ * Revision 1.6 90/03/12 20:34:07 MS_user
- X+ * Add save program name variable for initialisation file
- X+ *
- X+ * Revision 1.5 90/03/06 15:13:48 MS_user
- X+ * Set up for alpha release
- X+ *
- X+ * Revision 1.4 90/03/05 13:52:31 MS_user
- X+ * Change in environment structure
- X+ *
- X+ * Revision 1.3 90/02/22 16:38:56 MS_user
- X+ * Add XMS support
- X+ *
- X * Revision 1.2 90/02/16 16:58:22 MS_user
- X * Set up 1.5 release
- X *
- X***************
- X*** 26,47 ****
- X
- X #include <sys/types.h>
- X #include <stddef.h>
- X #include <signal.h>
- X #include <errno.h>
- X #include <setjmp.h>
- X #include <stdlib.h>
- X #include <limits.h>
- X #include <unistd.h>
- X #include "sh.h"
- X
- X! char *Copy_Right1 = "MS-DOS SH Version 1.5\341 (DOS %d.%d)\n";
- X! char *Copy_Right2 = "Copyright (c) Data Logic Ltd and Charles Forsyth 1990\n";
- X char **dolv; /* Parameter array */
- X int dolc; /* Number of entries in parameter array */
- X int exstat; /* Exit status */
- X char gflg;
- X int fn_area_number = -1; /* Next function area number */
- X! int talking; /* interactive (talking-type wireless) */
- X int execflg; /* Exec mode */
- X int multiline; /* \n changed to ; */
- X int Current_Event = 0; /* Current history event */
- X--- 53,76 ----
- X
- X #include <sys/types.h>
- X #include <stddef.h>
- X+ #include <stdio.h>
- X #include <signal.h>
- X #include <errno.h>
- X #include <setjmp.h>
- X #include <stdlib.h>
- X #include <limits.h>
- X #include <unistd.h>
- X+ #include <string.h>
- X #include "sh.h"
- X
- X! static char *Copy_Right1 = "MS-DOS SH Version 1.6 - %s (DOS %d.%d)\n";
- X! static char *Copy_Right2 = "Copyright (c) Data Logic Ltd and Charles Forsyth 1990\n";
- X char **dolv; /* Parameter array */
- X int dolc; /* Number of entries in parameter array */
- X int exstat; /* Exit status */
- X char gflg;
- X int fn_area_number = -1; /* Next function area number */
- X! bool talking = FALSE;/* interactive (talking-type wireless) */
- X int execflg; /* Exec mode */
- X int multiline; /* \n changed to ; */
- X int Current_Event = 0; /* Current history event */
- X***************
- X*** 78,83 ****
- X--- 107,113 ----
- X Var_List *C_dir; /* Current directory */
- X char *last_prompt; /* Last prompt output */
- X Var_List *ifs; /* Inter-field separator */
- X+ char *Program_Name; /* Program name */
- X char *home = "HOME";
- X char *shell = "SHELL";
- X char *history_file = "HISTFILE";
- X***************
- X*** 96,101 ****
- X--- 126,132 ----
- X 0, /* File descriptor */
- X AFID_NOBUF, /* Buffer id */
- X 0L, /* File position */
- X+ 0, /* Offset in buffer */
- X (IO_Buf *)NULL /* Buffer */
- X };
- X
- X***************
- X*** 112,117 ****
- X--- 143,161 ----
- X iostack, /* I/O Stack pointers */
- X iostack - 1,
- X (int *)NULL,
- X+ FALSE, /* End of file processing */
- X FDBASE, /* Base file handler */
- X (Environ *)NULL /* Previous Env pointer */
- X };
- X+
- X+ /* The only bit of code in this module prints the version number */
- X+
- X+ void Print_Version (fp)
- X+ int fp;
- X+ {
- X+ char buf[100];
- X+
- X+ sprintf (buf, Copy_Right1, __DATE__, _osmajor, _osminor);
- X+ write (fp, buf, strlen (buf));
- X+ write (fp, Copy_Right2, strlen (Copy_Right2));
- X+ }
- XIndex: shell/sh0.asm
- XPrereq: 1.2
- X*** ../sh15/shell/sh0.asm Fri Feb 16 19:13:56 1990
- X--- shell/sh0.asm Tue May 1 19:50:48 1990
- X***************
- X*** 4,11 ****
- X
- X ; MS-DOS SHELL - Swapper
- X ;
- X- ; MS-DOS SHELL - Copyright (c) 1989 Data Logic Limited.
- X- ;
- X ; MS-DOS SHELL - Copyright (c) 1990 Data Logic Limited
- X ;
- X ; This code is subject to the following copyright restrictions:
- X--- 4,9 ----
- X***************
- X*** 18,26 ****
- X ; 2. The sources (or parts thereof) or objects generated from the sources
- X ; (or parts of sources) cannot be sold under any circumstances.
- X ;
- X! ; $Header: sh0.asm 1.2 90/02/14 04:45:58 MS_user Exp $
- X ;
- X ; $Log: sh0.asm $
- X ; Revision 1.2 90/02/14 04:45:58 MS_user
- X ; Add Interrupt 24 processing and clean up interrupt 0 and 23 processing
- X ;
- X--- 16,42 ----
- X ; 2. The sources (or parts thereof) or objects generated from the sources
- X ; (or parts of sources) cannot be sold under any circumstances.
- X ;
- X! ; $Header: sh0.asm 1.8 90/04/25 22:32:31 MS_user Exp $
- X ;
- X ; $Log: sh0.asm $
- X+ ; Revision 1.8 90/04/25 22:32:31 MS_user
- X+ ; Fix missing disk full check on writing swap file
- X+ ;
- X+ ; Revision 1.7 90/04/11 12:54:38 MS_user
- X+ ; Fix non-disk device name print in CEH
- X+ ;
- X+ ; Revision 1.6 90/03/26 04:31:01 MS_user
- X+ ; Remove original Interrupt 24 save address
- X+ ;
- X+ ; Revision 1.5 90/03/26 04:12:38 MS_user
- X+ ; Add Full Interrupt 24 handler
- X+ ;
- X+ ; Revision 1.4 90/03/05 13:47:05 MS_user
- X+ ; Add XMS driver
- X+ ;
- X+ ; Revision 1.3 90/02/22 16:50:23 MS_user
- X+ ; Add XMS Driver support
- X+ ;
- X ; Revision 1.2 90/02/14 04:45:58 MS_user
- X ; Add Interrupt 24 processing and clean up interrupt 0 and 23 processing
- X ;
- X***************
- X*** 72,97 ****
- X public _SW_fp
- X public _SW_I0_V
- X public _SW_I23_V
- X- public _SW_I24_V
- X public _SW_EMstart
- X public _SW_Mode
- X public _SW_EMSFrame
- X public _SW_Int24
- X
- X _cmd_line db 129 dup (?) ; Command line
- X _path_line db 80 dup (?) ; Path line
- X _SW_Blocks dw 0 ; Number of blocks to read/write
- X _SW_fp dw 0 ; File ID
- X _SW_I0_V dd 0 ; Our Interrupt Zero address
- X _SW_I23_V dd 0 ; Our Interrupt 23 address
- X- _SW_I24_V dd 0 ; Original Interrupt 24 address
- X _SW_EMstart dd 0100000H ; Default Extended Mem start
- X _SW_Mode dw 0 ; Type of swapping to do
- X ; 1 - disk
- X ; 2 - Extended memory
- X! ; 3 - Expanded memory
- X _SW_EMSFrame dw 0 ; EMS Frame segment
- X _SW_intr dw 0 ; Interrupt 23 detected.
- SHAR_EOF
- echo "End of part 1"
- echo "File Patch1.6 is continued in part 2"
- echo "2" > s2_seq_.tmp
- exit 0
-
-
-