add directory images
This commit is contained in:
BIN
images/Current/bootimage-0.11
Normal file
BIN
images/Current/bootimage-0.11
Normal file
Binary file not shown.
BIN
images/Current/bootimage-0.12
Normal file
BIN
images/Current/bootimage-0.12
Normal file
Binary file not shown.
BIN
images/Current/rootimage-0.11
Normal file
BIN
images/Current/rootimage-0.11
Normal file
Binary file not shown.
BIN
images/Current/rootimage-0.12
Normal file
BIN
images/Current/rootimage-0.12
Normal file
Binary file not shown.
BIN
images/Image-0.11-040327-rh9
Normal file
BIN
images/Image-0.11-040327-rh9
Normal file
Binary file not shown.
BIN
images/Obsolete/11.21.Image
Normal file
BIN
images/Obsolete/11.21.Image
Normal file
Binary file not shown.
BIN
images/Obsolete/Image-0.11-030920
Normal file
BIN
images/Obsolete/Image-0.11-030920
Normal file
Binary file not shown.
BIN
images/Original/bootimage-0.11
Normal file
BIN
images/Original/bootimage-0.11
Normal file
Binary file not shown.
BIN
images/Original/bootimage-0.12
Normal file
BIN
images/Original/bootimage-0.12
Normal file
Binary file not shown.
BIN
images/Original/bootimage-0.95a
Normal file
BIN
images/Original/bootimage-0.95a
Normal file
Binary file not shown.
BIN
images/Original/bootimage-0.95c+
Normal file
BIN
images/Original/bootimage-0.95c+
Normal file
Binary file not shown.
BIN
images/Original/bootimage-0.96
Normal file
BIN
images/Original/bootimage-0.96
Normal file
Binary file not shown.
BIN
images/Original/bootimage-0.96a
Normal file
BIN
images/Original/bootimage-0.96a
Normal file
Binary file not shown.
BIN
images/Original/bootimage-0.96b
Normal file
BIN
images/Original/bootimage-0.96b
Normal file
Binary file not shown.
BIN
images/Original/bootimage-0.96c
Normal file
BIN
images/Original/bootimage-0.96c
Normal file
Binary file not shown.
BIN
images/Original/bootimage-0.97
Normal file
BIN
images/Original/bootimage-0.97
Normal file
Binary file not shown.
BIN
images/Original/bootimage-0.97-hda2
Normal file
BIN
images/Original/bootimage-0.97-hda2
Normal file
Binary file not shown.
BIN
images/Original/bootimage-0.98
Normal file
BIN
images/Original/bootimage-0.98
Normal file
Binary file not shown.
BIN
images/Original/bootimage-0.98.1
Normal file
BIN
images/Original/bootimage-0.98.1
Normal file
Binary file not shown.
BIN
images/Original/bootimage-0.98.3
Normal file
BIN
images/Original/bootimage-0.98.3
Normal file
Binary file not shown.
50
images/Original/images-zip/eata_in_kernel.README
Normal file
50
images/Original/images-zip/eata_in_kernel.README
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
The file eata_in_kernel.gz represents the image of a Slackware 2.1.0
|
||||||
|
boot disk compiled with the new DPT controller code found in kernels
|
||||||
|
1.1.64 and up. This disk is a 1.44 Meg floppy with kernel 1.1.72. It
|
||||||
|
also contains the QUOTA patch, which should not cause any problems
|
||||||
|
for you though.
|
||||||
|
|
||||||
|
Previously, I was using the DPT code mentioned in the SCSI-HOWTO,
|
||||||
|
the driver written by Cyril. This driver was not compatible with
|
||||||
|
the new kernel driver. However, you can do a backup and restore!
|
||||||
|
I got creative with a spare disk and the fact that my 'old'
|
||||||
|
partition was readable under the new kernel even though the
|
||||||
|
sectors/heads/cyls were totally different. Anyway, ***BE CAREFUL
|
||||||
|
AND BACKUP EVERYTHING!!!!!***
|
||||||
|
|
||||||
|
Let me say that again.
|
||||||
|
|
||||||
|
**** BE VERY VERY CAREFUL AND BACKUP EVERYTHING!!!! ***
|
||||||
|
|
||||||
|
If you need a kernel, you can do a 'mount -t minix /dev/fd0 /mnt' and
|
||||||
|
then copy off the kernel. (You may also use 'rdev' to change the
|
||||||
|
kernel's root partion.)
|
||||||
|
|
||||||
|
Good luck!
|
||||||
|
|
||||||
|
Steve...
|
||||||
|
|
||||||
|
Steve Kneizys
|
||||||
|
Director, Academic Computing, Ursinus College
|
||||||
|
stevo@acad.ursinus.edu
|
||||||
|
|
||||||
|
P.S. Here is part of the header from the new 'eata.c' code in the
|
||||||
|
kernel:
|
||||||
|
----------------------------------------------------------------
|
||||||
|
*
|
||||||
|
* 30 Nov 1994 rev. 1.09 for linux 1.1.68
|
||||||
|
* Released by Dario Ballabio (Dario_Ballabio@milano.europe.dg.com)
|
||||||
|
*
|
||||||
|
* This code has been tested with up to 3 Distributed Processing Technology
|
||||||
|
* PM2122A/9X (DPT SCSI BIOS v002.D1, firmware v05E.0) eisa controllers,
|
||||||
|
* no on board cache and no RAID option.
|
||||||
|
* BIOS must be enabled on the first board and must be disabled for all other
|
||||||
|
* boards.
|
||||||
|
* Support is provided for any number of DPT PM2122 eisa boards.
|
||||||
|
* All boards should be configured at the same IRQ level.
|
||||||
|
* Multiple IRQ configurations are supported too.
|
||||||
|
* Boards can be located in any eisa slot (1-15) and are named EATA0,
|
||||||
|
* EATA1,... in increasing eisa slot number.
|
||||||
|
* In order to detect the boards, the IRQ must be _level_ triggered
|
||||||
|
* (not _edge_ triggered).
|
||||||
|
*
|
||||||
BIN
images/Original/images-zip/eata_in_kernel.gz
Normal file
BIN
images/Original/images-zip/eata_in_kernel.gz
Normal file
Binary file not shown.
14
images/Original/images-zip/eata_in_kernel.lsm
Normal file
14
images/Original/images-zip/eata_in_kernel.lsm
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
Begin3
|
||||||
|
Title: eata_in_kernel.gz
|
||||||
|
Version: Dec 12, 1994
|
||||||
|
Entered-date: Dec 12, 1994
|
||||||
|
Description: Slackware 2.1.0 Boot disk for kernel DPT driver 1.1.72
|
||||||
|
Keywords: DPT, Slackware Boot Image
|
||||||
|
Author: stevo@ursinus.edu
|
||||||
|
Maintained-by: stevo@ursinus.edu
|
||||||
|
Primary-site: sunsite.unc.edu
|
||||||
|
Alternate-site:
|
||||||
|
Original-site:
|
||||||
|
Platform: Linux 80x86
|
||||||
|
Copying-policy: GPL
|
||||||
|
End
|
||||||
BIN
images/Original/images-zip/tsx-11-old.zip
Normal file
BIN
images/Original/images-zip/tsx-11-old.zip
Normal file
Binary file not shown.
BIN
images/Original/rootimage-0.97
Normal file
BIN
images/Original/rootimage-0.97
Normal file
Binary file not shown.
BIN
images/Original/rootimage-0.97.1
Normal file
BIN
images/Original/rootimage-0.97.1
Normal file
Binary file not shown.
BIN
images/Original/rootimage-0.98
Normal file
BIN
images/Original/rootimage-0.98
Normal file
Binary file not shown.
128
images/Original/tsx-11-old/INSTALL/CHANGES-0.96
Normal file
128
images/Original/tsx-11-old/INSTALL/CHANGES-0.96
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
CHANGES IN THE LINUX v0.96 ROOT DISKETTE
|
||||||
|
Jim Winstead Jr. - 4 July 1992
|
||||||
|
|
||||||
|
This file mostly contains info about the changes in the root diskette
|
||||||
|
from Linux v0.95a to Linux v0.96.
|
||||||
|
|
||||||
|
CHANGES
|
||||||
|
|
||||||
|
With the release of Linux v0.95a, the maintenance of the root diskette
|
||||||
|
has been assumed by Jim Winstead Jr. (jwinstea@jarthur.Claremont.EDU).
|
||||||
|
|
||||||
|
This continues with the release of the Linux 0.96 release diskette.
|
||||||
|
The changes between the Linux 0.96 and Linux 0.95a root diskettes are
|
||||||
|
detailed below:
|
||||||
|
|
||||||
|
- bash is back! /bin/sh is now a symlink to /bin/bash. ash was
|
||||||
|
simple too buggy for general use as /bin/sh. (This was likely
|
||||||
|
a result of a sloppy port to Linux rather than any flaws with
|
||||||
|
ash, but it seems silly to worry about ash when bash fits.)
|
||||||
|
|
||||||
|
- GNU tar is not on the root disk. Instead, the POSIX-defined
|
||||||
|
utility 'pax' is included, which handles tar _and_ cpio
|
||||||
|
archives. There are symlinks from /bin/cpio and /bin/tar to
|
||||||
|
/bin/pax to allow using the tar and cpio interfaces to pax.
|
||||||
|
|
||||||
|
(The big change you'll notice is that pax does not support a
|
||||||
|
'z' option for compressed tar files. You will have to pipe
|
||||||
|
them through 'uncompress' first.)
|
||||||
|
|
||||||
|
This was done because pax is roughly 1/3 the size of GNU tar,
|
||||||
|
and GNU tar offered nothing significant beyond what pax does.
|
||||||
|
|
||||||
|
- the install script has been completely rewritten. Now, it is
|
||||||
|
much more intelligent, and tries to guide you along the path
|
||||||
|
of installing Linux on your system.
|
||||||
|
|
||||||
|
- split /etc/rc into /etc/rc and /etc/rc.local. /etc/rc.local
|
||||||
|
is the only one you should ever have need to change.
|
||||||
|
|
||||||
|
- mount has been improved to accept a -a option. This reads
|
||||||
|
/etc/fstab and mounts the filesystems specified within,
|
||||||
|
including swapping partitions. See /etc/fstab to see how it
|
||||||
|
works.
|
||||||
|
|
||||||
|
Similar changes have been made to swapon to allow the 'swapon'
|
||||||
|
of a single swap file/partition from /etc/fstab.
|
||||||
|
|
||||||
|
As a result of these two improvements, /bin/mount -a and
|
||||||
|
/bin/swapon -a have both been added to /etc/rc, and you
|
||||||
|
shouldn't need to add additional mount commands to rc.local -
|
||||||
|
use /etc/fstab instead.
|
||||||
|
|
||||||
|
Thanks to Doug Quale for writing the new mount and swapon.
|
||||||
|
|
||||||
|
- uncompress is really a link to compress this time, I screwed
|
||||||
|
up last time. oops!
|
||||||
|
|
||||||
|
- I recompiled everything with GCC 2.2.2, and they are linked
|
||||||
|
against shared libraries (located in /lib) - it is important
|
||||||
|
that /lib be part of your root partition!
|
||||||
|
|
||||||
|
- many of the small utilities are linked as 'impure'
|
||||||
|
executables. This saves a great deal of disk space, at the
|
||||||
|
expense that they can't be demand-loaded or shared. Most, if
|
||||||
|
not all, of the utilities linked this way are very small and
|
||||||
|
infrequently used, however, so the benefits far outweigh the
|
||||||
|
small disadvantage there.
|
||||||
|
|
||||||
|
- rootdev really is rdev this time.
|
||||||
|
|
||||||
|
- /dev/MAKEDEV is a fairly generic script for making devices.
|
||||||
|
It supercedes /INSTALL/mkdev from the 0.95a root disk, and
|
||||||
|
really should be kept even after installation, because such
|
||||||
|
things as the scsi tape devices are not made by default - this
|
||||||
|
script allows you to make them when needed.
|
||||||
|
|
||||||
|
- added the lp devices, scsi devices, and miscellaneous other
|
||||||
|
devices.
|
||||||
|
|
||||||
|
- included a new termcap file based upon the termcap file
|
||||||
|
released with the setterm-0.96b utility. Also included are
|
||||||
|
the termcap entires for X terminals and generic vt100 entries.
|
||||||
|
|
||||||
|
If you have questions, problems, or complaints about the root
|
||||||
|
diskette, either post to comp.os.linux, or send mail to me at
|
||||||
|
jwinstea@jarthur.Claremont.EDU.
|
||||||
|
|
||||||
|
If you have questions, problems, or complaints about the boot diskette
|
||||||
|
or the kernel itself, post to comp.os.linux or send mail to Linus
|
||||||
|
Torvalds at torvalds@cc.helsinki.fi.
|
||||||
|
|
||||||
|
Remember, the only stupid questions are the ones you don't ask.
|
||||||
|
|
||||||
|
FUTURE CHANGES
|
||||||
|
|
||||||
|
I'm already anticipating some changes for the next release, so here's
|
||||||
|
a sneak preview:
|
||||||
|
|
||||||
|
- you probably won't notice, but I plan on cleaning up the
|
||||||
|
source of some of the utilities, most noticeably shutdown,
|
||||||
|
passwd and mkfs. Those are all pretty ugly.
|
||||||
|
|
||||||
|
- the install script will be improved. The current one was
|
||||||
|
written rather rapidly, so there are parts of it I'm not
|
||||||
|
entirely happy with.
|
||||||
|
|
||||||
|
- I'd like to write an update script that will allow people who
|
||||||
|
have already installed Linux to update their binaries from the
|
||||||
|
latest root disk. The install script could serve as a base
|
||||||
|
for this, but is a little destructive at present. (It would
|
||||||
|
simply copy over old binaries, etc.)
|
||||||
|
|
||||||
|
- the documentation on disk will be cleaned up, and possibly
|
||||||
|
added to.
|
||||||
|
|
||||||
|
- fill in the gaps in the MAKEDEV script. (SCSI tapes, more pty
|
||||||
|
devices.)
|
||||||
|
|
||||||
|
- the release after the extended filesystem is added to the
|
||||||
|
Linux kernel, the root disk will use it. That means v0.98, if
|
||||||
|
things go according to current plans. This is to allow time
|
||||||
|
for bugs in the extended filesystem to filter out, and for the
|
||||||
|
new mkfs and fsck to stabilize. (For those that don't know,
|
||||||
|
the extended filesystem supports 4 terabyte partitions and long
|
||||||
|
filenames, and is currently in alpha testing.)
|
||||||
|
|
||||||
|
Again, mail your questions, comments and suggestions about the root
|
||||||
|
diskette to me at jwinstea@jarthur.Claremont.EDU.
|
||||||
339
images/Original/tsx-11-old/INSTALL/COPYING-2
Normal file
339
images/Original/tsx-11-old/INSTALL/COPYING-2
Normal file
@@ -0,0 +1,339 @@
|
|||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
|
675 Mass Ave, Cambridge, MA 02139, USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Library General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
Appendix: How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) 19yy <name of author>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Library General
|
||||||
|
Public License instead of this License.
|
||||||
206
images/Original/tsx-11-old/INSTALL/INSTALL-0.11
Normal file
206
images/Original/tsx-11-old/INSTALL/INSTALL-0.11
Normal file
@@ -0,0 +1,206 @@
|
|||||||
|
|
||||||
|
Using Linux v0.11
|
||||||
|
Linus Torvalds 08.12.91
|
||||||
|
|
||||||
|
NOTE: Users of 0.10, please check the "changed" list before using 0.11.
|
||||||
|
|
||||||
|
Booting linux
|
||||||
|
|
||||||
|
Linux-0.11 can easily be booted by getting the 2 files bootimage-0.11.Z
|
||||||
|
and rootimage-0.11.Z from the linux archive, uncompressing them and
|
||||||
|
writing them out to disks of the same size (ie 2 1.44M floppies or 2
|
||||||
|
1.2M floppies). Writing the disks is done with the "rawrite.exe" program
|
||||||
|
from dos, or with "dd" from unix. Linux is then booted simply by
|
||||||
|
inserting the bootdiskette in drive A, and rebooting the machine. If
|
||||||
|
everything goes well, linux will ask you to insert the root-disk after
|
||||||
|
loading the system. Hopefully linux will then correctly load the shell
|
||||||
|
executable, and leave you as root on the new system (prompt '# ').
|
||||||
|
|
||||||
|
Using it.
|
||||||
|
|
||||||
|
You can get a complete list of available commands by pressing <tab>
|
||||||
|
twice: the root-disk contains mostly setup-programs needed to install
|
||||||
|
the system on a harddisk. You can test them a bit, reading directories
|
||||||
|
etc.
|
||||||
|
|
||||||
|
In order to install linux on the harddisk, first check out your harddisk
|
||||||
|
by executing the command "fdisk" - it should show you all the partitions
|
||||||
|
available. If you have only 1 AT-harddisk, you should get a
|
||||||
|
errormessage, just ignore it. At my system fdisk reports the following:
|
||||||
|
|
||||||
|
/dev/hd1: 20476 blocks minix
|
||||||
|
/dev/hd2: 19975 blocks minix
|
||||||
|
/dev/hd3: 1020 blocks minix
|
||||||
|
/dev/hd4: 170 blocks active 16-bit DOS (>=32M)
|
||||||
|
/dev/hd6: 41641 blocks active minix
|
||||||
|
|
||||||
|
The partition type given (12-bit DOS, minix etc) doesn{t really mean
|
||||||
|
anything, unless it's a "extended partition", in which case you
|
||||||
|
shouldn't use that partition for anything: linux doesn't yet understand
|
||||||
|
them. When later using "mkfs" to make a linux file system, it won't
|
||||||
|
change the output of fdisk, so fdisk may well report "DOS", while in
|
||||||
|
fact you have made it a linux partition.
|
||||||
|
|
||||||
|
If fdisk doesn't print out anything but errors, linux is unable to read
|
||||||
|
your harddisk, and you are f**ked. Play around with the floppy version,
|
||||||
|
but you won't be able to do anything real.
|
||||||
|
|
||||||
|
Making a filesystem
|
||||||
|
|
||||||
|
In order to really use linux, you will have to make a filesystem on your
|
||||||
|
harddisk. This starts by deciding which partition you can use. Look
|
||||||
|
again at what fdisk reports, and try to figure out which of the
|
||||||
|
partitions you are using for DOS, OS/2 etc. /dev/hdX where X={1,2,3,4}
|
||||||
|
always refers to the first harddisk, X={6,7,8,9} always refers to the
|
||||||
|
second disk. /dev/hd0 and /dev/hd5 are special: they are all of the
|
||||||
|
drive, and mkfs will refuse to use them for a filesystem.
|
||||||
|
|
||||||
|
When you are certain you know which device points to which partition,
|
||||||
|
you make a filesystem on the partition of your choice by writing:
|
||||||
|
|
||||||
|
mkfs -c /dev/hdX blocks
|
||||||
|
|
||||||
|
where "-c" means that you want mkfs to check for errors, "dev/hdX" is
|
||||||
|
the free partition you intend to use for linux, and "blocks" is the
|
||||||
|
number of blocks fdisk reports for that particular partition. NOTE! mkfs
|
||||||
|
will overwrite the partition you selected, so be doubly (or triply) sure
|
||||||
|
that you don't mind that.
|
||||||
|
|
||||||
|
Note that when using the "-c" flag, mkfs will read through the entire
|
||||||
|
partition: this can take some time. If there are read errors, mkfs will
|
||||||
|
mark the particular block as bad, and continue: linux will also print a
|
||||||
|
little message "harddisk I/O error". After running mkfs these messages
|
||||||
|
should never occur again: if they do, your data may be corrupted.
|
||||||
|
|
||||||
|
Mounting the filesystem
|
||||||
|
|
||||||
|
After mkfs has exited, it's time to mount the file-system, and do the
|
||||||
|
necessary things to make it a root file system. Mount the new filesystem
|
||||||
|
on /user by writing:
|
||||||
|
|
||||||
|
cd /
|
||||||
|
mount /dev/hdX /user
|
||||||
|
|
||||||
|
If you get errors for this, mkfs failed, and there is probably something
|
||||||
|
seriously wrong.
|
||||||
|
|
||||||
|
After mounting the device, you want to move all the files on the current
|
||||||
|
floppy-root to the new fs. This can most easily be done by writing:
|
||||||
|
|
||||||
|
cd /user
|
||||||
|
for i in bin dev etc usr tmp floppy
|
||||||
|
do
|
||||||
|
cp +recursive +verbose /$i $i
|
||||||
|
done
|
||||||
|
sync
|
||||||
|
|
||||||
|
which will also tell you what it is doing (/bin/sh -> bin/sh etc).
|
||||||
|
|
||||||
|
After that, you should have a new filesystem that contains the bare
|
||||||
|
necessities to start hacking linux. Play around some more, and exit
|
||||||
|
linux by writing "logout or exit". This should result in
|
||||||
|
|
||||||
|
child 4 died with error code 0000
|
||||||
|
#
|
||||||
|
|
||||||
|
Do a couple of syncs (3 is a magic number), and reboot the machine.
|
||||||
|
ALWAYS remember to sync before rebooting: terrible things happen if you
|
||||||
|
don't.
|
||||||
|
|
||||||
|
Using the harddisk as root
|
||||||
|
|
||||||
|
Once you have happily made a new root, you will want to boot up with it.
|
||||||
|
This is done by changing a word at offset 508 in the boot-image. The
|
||||||
|
word (in 386-order, ie low byte first) tells the system which device to
|
||||||
|
use as root: it is initially 0, which means that we want to use a floppy
|
||||||
|
of the same type as the boot-disk (and this is the reason that you may
|
||||||
|
not use a 360kB boot-disk even though the system fits on one: it has to
|
||||||
|
be the same type as the root-diskette).
|
||||||
|
|
||||||
|
In order to use the harddisk as root, this value has to be changed to
|
||||||
|
point to the correct device. Harddisks have a major number of 3 under
|
||||||
|
linux, and the minor nr is the same as the number X in /dev/hdX. The
|
||||||
|
complete device number is then calculated with
|
||||||
|
|
||||||
|
DEV_NO = (major<<8)+minor
|
||||||
|
|
||||||
|
or alternatively major*256+minor. Thus /dev/hd1 is (3<<8)+1 = 0x301,
|
||||||
|
/dev/hd6 = 0x0306 etc. Assuming the partition you made into the new root
|
||||||
|
was /dev/hd2, you will have to write 0x0302 into the boot-image. That
|
||||||
|
is, you should change the 508th byte in the image to 0x02, and the 509th
|
||||||
|
byte to 0x03. There is a sample program for this in some of the older
|
||||||
|
INSTALL-notes, if you don't understand what it's all about.
|
||||||
|
|
||||||
|
Ok, I got the root on hd, what now?
|
||||||
|
|
||||||
|
As you have probably noticed, you cannot get very far with the binaries
|
||||||
|
found on the original root-diskette. So the first thing you want to do
|
||||||
|
is to import some new binaries. To do this you need to tell linux what
|
||||||
|
kind of floppies you have, as that's the easiest way to import things.
|
||||||
|
|
||||||
|
As with harddisk, floppies have device numbers, but this time major = 2
|
||||||
|
instead of 3. The minor number is not as easy: it's a composite that
|
||||||
|
tells which drive (A, B, C or D) and what type of drive (360kB, 1.2M,
|
||||||
|
1.44M etc). The formula is 'minor = type*4+nr', where nr is 0-3 for A-D,
|
||||||
|
and type is 2 for 1.2M disks, and 7 for 1.44M disks. There are other
|
||||||
|
types, but these should suffice for now.
|
||||||
|
|
||||||
|
Thus if you have a 1.2M A-drive, and want to call it "floppy0", you have
|
||||||
|
to tell linux so. This is done with the "mknod" command. mknod takes 4
|
||||||
|
paramters: the unix name of the device, a "b" or a "c" depending on
|
||||||
|
whether it's a Block of Character device, and the major and minor
|
||||||
|
numbers. Thus to make "floppy0" a 1.2M A-drive, you write:
|
||||||
|
|
||||||
|
mknod /dev/floppy0 b 2 8
|
||||||
|
|
||||||
|
b is for Block-device, the 2 is for floppy, and the 8 is 4*2+0, where
|
||||||
|
the 2 is 1.2M-drive and the 0 is drive A. Likewise to make a "floppy1"
|
||||||
|
device that is a 1.44M drive in B, you write:
|
||||||
|
|
||||||
|
mknod /dev/floppy1 b 2 29
|
||||||
|
|
||||||
|
where 29 = 4*7 + 1. There are a couple of standard names, for users
|
||||||
|
that are used to minix (major, minor in parentheses): /dev/PS0 is a
|
||||||
|
1.44M in A (2,28), /dev/PS1 a 1.44M in B (2,29), /dev/at0 is a 1.2M in A
|
||||||
|
(2,8), /dev/at1 is a 1.2M in B (2,9). Use mknod to make those that fit
|
||||||
|
your computer.
|
||||||
|
|
||||||
|
After you have made these special block devices, you can now read a
|
||||||
|
floppy under linux. The easiest way to import things into linux is by
|
||||||
|
writing a tar-file to a floppy with rawrite.exe, and then using:
|
||||||
|
|
||||||
|
tar xvf /dev/floppy0
|
||||||
|
|
||||||
|
to untar it under linux. This way you can get the gcc binaries etc
|
||||||
|
available from the linux-carrying sites.
|
||||||
|
|
||||||
|
Changes from 0.10:
|
||||||
|
|
||||||
|
- /bin/update is no longer automatically executed upon bootup: instead
|
||||||
|
the file /etc/rc is evaluated by the shell. This file can then start the
|
||||||
|
update process, mount andy needed filesystems, possibly fsck'ing them
|
||||||
|
first. A minimal /etc/rc looks like this:
|
||||||
|
|
||||||
|
/bin/update &
|
||||||
|
> /etc/mtab
|
||||||
|
echo " Ok."
|
||||||
|
|
||||||
|
- init() restarts the shell every time it is exited: logout from the
|
||||||
|
login shell results in a "child xxx died with error code yyy", a sync
|
||||||
|
and then a new shell as root.
|
||||||
|
|
||||||
|
- floppies work a lot better than in 0.10. Even using two floppies at
|
||||||
|
the same time seems to work out ok. Reading big chunks at a time is also
|
||||||
|
faster then in 0.10 (I think).
|
||||||
|
|
||||||
|
- harddisk errors are handled better. Use the "-c" option in mkfs to map
|
||||||
|
out all errors.
|
||||||
|
|
||||||
|
- linux accepts most video-cards: harcules, MDA, CGA etc seem to work.
|
||||||
|
|
||||||
|
- ^G beeps on the console, so command completion under bash etc will
|
||||||
|
notify of errors.
|
||||||
|
|
||||||
|
- sticky directories, corrected handling of uid/gid bits, and better
|
||||||
|
handling of protections when not root. Most of these won't be noticeable
|
||||||
|
until we get a init/login.
|
||||||
119
images/Original/tsx-11-old/INSTALL/INSTALL-0.96
Normal file
119
images/Original/tsx-11-old/INSTALL/INSTALL-0.96
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
INSTALL NOTES FOR LINUX v0.96
|
||||||
|
Jim Winstead Jr. - July 4, 1992
|
||||||
|
|
||||||
|
This file contains basic instructions for installing Linux v0.96.
|
||||||
|
More detailed instructions have been written by others. Read the
|
||||||
|
Linux FAQ for some suggestions, and for pointers to other installation
|
||||||
|
documents.
|
||||||
|
|
||||||
|
COPYRIGHT
|
||||||
|
|
||||||
|
Linux 0.96 is NOT public domain software, but is copyrighted by Linus
|
||||||
|
Torvalds (torvalds@cc.helsinki.fi). The copyright terms follow the
|
||||||
|
GNU Copyleft. See the file COPYING from any GNU software package for
|
||||||
|
the finer points. Note that the unistd library functions and all
|
||||||
|
library functions written by Linus Torvalds are exempt from this
|
||||||
|
copyright, and you may use them as you wish.
|
||||||
|
|
||||||
|
WARNING
|
||||||
|
|
||||||
|
The 0.96 root disk requires the 0.96b or later kernel. A bootable
|
||||||
|
image of this kernel should be available where you got the image
|
||||||
|
for the 0.96 root disk.
|
||||||
|
|
||||||
|
INSTALLATION
|
||||||
|
|
||||||
|
1) First, and absolutely the most important step, MAKE BACKUPS OF YOUR
|
||||||
|
SYSTEM! This system won't do anything nearly as nasty as coredump all
|
||||||
|
over your harddrive (see 386BSD v0.0), but it is quite easy to
|
||||||
|
accidently screw something up while installing.
|
||||||
|
|
||||||
|
2) Test out the Linux v0.96b boot disk with the Linux v0.96 root
|
||||||
|
disk. If you are unable to get the boot disk to work properly on
|
||||||
|
your system, try posting to comp.os.linux, or contacting Linus.
|
||||||
|
|
||||||
|
Notice that Linux (as of v0.95) contains an init/getty/login suite,
|
||||||
|
and this will start up 'login' on the first four virtual consoles,
|
||||||
|
accessed by Left-Alt-F[1234]. If you experience problems on one
|
||||||
|
virtual console, it should be possible to switch to another one.
|
||||||
|
|
||||||
|
3) login as 'install', and the system will walk you through the
|
||||||
|
process of installing Linux on a hard drive partition. The
|
||||||
|
process is fairly automated, but the process requires that you go
|
||||||
|
through the steps of creating a partition for Linux usage. Some
|
||||||
|
tips follow:
|
||||||
|
|
||||||
|
Read the efdisk file from the intro login, which will explain
|
||||||
|
the basic concepts of hard disk partitions, and how to use
|
||||||
|
efdisk.
|
||||||
|
|
||||||
|
You may find it useful to login to one virtual console as
|
||||||
|
intro, so you can access the on-disk documentation, and
|
||||||
|
another as install, so you can do the installation and easy
|
||||||
|
access the documentation.
|
||||||
|
|
||||||
|
The maximum size of a Minix filesystem (the type created by
|
||||||
|
mkfs) is 64 megabytes. This is not a limitation of mkfs or
|
||||||
|
Linux, but a limitation of the Minix filesystem that is used.
|
||||||
|
With the release of Linux v0.97, a new 'extended' filesystem
|
||||||
|
will be released that will support 4 terabyte (!) partitions,
|
||||||
|
and extended filenames.
|
||||||
|
|
||||||
|
4) You should now have a complete (but very basic) root filesystem on
|
||||||
|
your harddrive. To be able to boot from floppy with this as your
|
||||||
|
root filesystem, you will have to edit the boot diskette. This is
|
||||||
|
done by modifying the word at offset 508 (decimal) with a program
|
||||||
|
such as Norton's Disk Editor, or use pboot.exe (available where
|
||||||
|
you got this file, the boot disk and the root disk, hopefully.)
|
||||||
|
|
||||||
|
This word is in 386-order (that is, least-significant byte first),
|
||||||
|
which means it should look like one of the following:
|
||||||
|
|
||||||
|
LSB MSB - device
|
||||||
|
--------------------------
|
||||||
|
01 03 - /dev/hda1 LSB = Least-Significant Byte
|
||||||
|
02 03 - /dev/hda2 MSB = Most-Significant Byte
|
||||||
|
03 03 - /dev/hda3
|
||||||
|
04 03 - /dev/hda4
|
||||||
|
|
||||||
|
41 03 - /dev/hdb1
|
||||||
|
42 03 - /dev/hdb2
|
||||||
|
43 03 - /dev/hdb3
|
||||||
|
44 03 - /dev/hdb4
|
||||||
|
|
||||||
|
The numbers are in hex, and if you're editing the boot diskette by
|
||||||
|
hand, these two bytes should initially be 00 00 (and are followed
|
||||||
|
by two non-zero bytes).
|
||||||
|
|
||||||
|
Note that pboot.exe predates Linux 0.95a, so some of the
|
||||||
|
information it presents is inaccurate (it refers to the old hd*
|
||||||
|
naming scheme). The codes to use are as above, but with the most-
|
||||||
|
significant byte first. (So /dev/hda1 = 0301, /dev/hda2 = 0302,
|
||||||
|
etc.)
|
||||||
|
|
||||||
|
5) You should now be able to boot from this diskette and it will use
|
||||||
|
your new Linux partition as the root partition. You'll notice,
|
||||||
|
however, that you can't do a whole lot with just the programs on
|
||||||
|
the root diskette. You'll need to get further packages from
|
||||||
|
whereever you got the root and boot diskettes, and read these from
|
||||||
|
a floppy using tar and compress. (Simple instructions: Download
|
||||||
|
the file to DOS, use rawrite to write the tar file to diskette.
|
||||||
|
Use 'tar zxvf /dev/<floppy>' to read the file from floppy, where
|
||||||
|
<floppy> is the appropriate floppy device. (PS0 is a 1.44 meg
|
||||||
|
3.5" as A:, PS1 is a 1.44 meg as B:, at0 is a 1.2 meg as A:, at1
|
||||||
|
is a 1.2 meg as B:.)
|
||||||
|
|
||||||
|
6) To reboot your machine when running Linux, you should use the
|
||||||
|
'reboot' command. This makes sure to flush all caches to disk,
|
||||||
|
and notifies other users that the system is going down (well, the
|
||||||
|
last bit isn't real important).
|
||||||
|
|
||||||
|
FAILURE TO DO THIS COULD RESULT IN BADLY CORRUPT FILESYSTEMS.
|
||||||
|
|
||||||
|
----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
These instructions are not the best, but should be enough to get you
|
||||||
|
going. If you have more questions, either post on comp.os.linux, or
|
||||||
|
send mail to me (jwinstea@jarthur.Claremont.EDU), or to Linus
|
||||||
|
(torvalds@cc.helsinki.fi). Remember, the only stupid questions are
|
||||||
|
the ones that you don't ask.
|
||||||
265
images/Original/tsx-11-old/INSTALL/RELNOTES-0.95
Normal file
265
images/Original/tsx-11-old/INSTALL/RELNOTES-0.95
Normal file
@@ -0,0 +1,265 @@
|
|||||||
|
|
||||||
|
|
||||||
|
RELEASE NOTES FOR LINUX v0.95
|
||||||
|
Linus Torvalds, March 7, 1992
|
||||||
|
|
||||||
|
|
||||||
|
This is file mostly contains info on changed features of Linux, and
|
||||||
|
using old versions as a help-reference might be a good idea.
|
||||||
|
|
||||||
|
|
||||||
|
COPYRIGHT
|
||||||
|
|
||||||
|
Linux-0.95 is NOT public domain software, but is copyrighted by me. The
|
||||||
|
copyright conditions are the same as those imposed by the GNU copyleft:
|
||||||
|
get a copy of the GNU copyleft at any major ftp-site (if it carries
|
||||||
|
linux, it probably carries a lot of GNU software anyway, and they all
|
||||||
|
contain the copyright).
|
||||||
|
|
||||||
|
The copyleft is pretty detailed, but it mostly just means that you may
|
||||||
|
freely copy linux for your own use, and redistribute all/parts of it, as
|
||||||
|
long as you make source available (not necessarily in the same
|
||||||
|
distribution, but you make it clear how people can get it for nothing
|
||||||
|
more than copying costs). Any changes you make that you distribute will
|
||||||
|
also automatically fall under the GNU copyleft.
|
||||||
|
|
||||||
|
NOTE! The linux unistd library-functions (the low-level interface to
|
||||||
|
linux: system calls etc) are excempt from the copyright - you may use
|
||||||
|
them as you wish, and using those in your binary files won't mean that
|
||||||
|
your files are automatically under the GNU copyleft. This concerns
|
||||||
|
/only/ the unistd-library and those (few) other library functions I have
|
||||||
|
written: most of the rest of the library has it's own copyrights (or is
|
||||||
|
public domain). See the library sources for details of those.
|
||||||
|
|
||||||
|
|
||||||
|
INSTALLATION
|
||||||
|
|
||||||
|
This is a SHORT install-note. The installation is very similar to 0.11
|
||||||
|
and 0.12, so you should read INSTALL-0.11 too. There are a couple of
|
||||||
|
programs you will need to install linux: something that writes disk
|
||||||
|
images (rawrite.exe or NU or...) and something that can create harddisk
|
||||||
|
partitions (fdisk under xenix or older versions of dos, edpart.exe or
|
||||||
|
something like that).
|
||||||
|
|
||||||
|
NOTE! Repartitioning your harddisk will destroy all data on it (well,
|
||||||
|
not exactly, but if you know enough to get back the data you probably
|
||||||
|
didn't need this warning). So be careful.
|
||||||
|
|
||||||
|
READ THIS THROUGH, THEN READ INSTALL-0.11, AND IF YOU ARE SURE YOU KNOW
|
||||||
|
WHAT YOU ARE DOING, CONTINUE. OTHERWISE, PANIC. OR WRITE ME FOR
|
||||||
|
EXPLANATIONS. OR DO ANYTHING BUT INSTALL LINUX - IT'S VERY SIMPLE, BUT
|
||||||
|
IF YOU DON'T KNOW WHAT YOU ARE DOING YOU'LL PROBABLY BE SORRY. I'D
|
||||||
|
RATHER ANSWER A FEW UNNECESSARY MAILS THAN GET MAIL SAYING "YOU KILLED
|
||||||
|
MY HARDDISK, BASTARD. I'M GOING TO FIND YOU, AND YOU'LL BE SORRY WHEN I
|
||||||
|
DO".
|
||||||
|
|
||||||
|
Minumum files needed:
|
||||||
|
|
||||||
|
RELNOTES-0.95 (this file)
|
||||||
|
INSTALL-0.11 (+ any other docs you might find: the FAQ etc)
|
||||||
|
bootimage-0.96.Z
|
||||||
|
rootimage-0.95.Z
|
||||||
|
rootimage-0.12.Z (for tar+compress)
|
||||||
|
rawrite.exe
|
||||||
|
some disk partitioner
|
||||||
|
|
||||||
|
1) back up everything you have on your harddisk - linux-0.95 is still in
|
||||||
|
beta and might do weird things. The only thing I guarantee is that
|
||||||
|
it has worked fine on /my/ machine - for all I know it might eat your
|
||||||
|
harddisk and spit it out in small pieces on any other hardware.
|
||||||
|
|
||||||
|
2) Test out the linux boot-disk with the root file system. If it
|
||||||
|
doesn't work, check the hardware requirements, and mail me if you
|
||||||
|
still think it should work. I might not be able to help you, but
|
||||||
|
your bug-report would still be appreciated.
|
||||||
|
|
||||||
|
Linux-0.95 now has an init/login: there should be 4 logins started on
|
||||||
|
the first 4 virtual consoles. Log in as root (no password), and test
|
||||||
|
it out. Change to the other logins by pressing left-alt + FN[1-4].
|
||||||
|
Note that booting up with a floppy as root is S..L..O..W.. - the
|
||||||
|
floppy driver has been optimized for sequential access (backups etc),
|
||||||
|
and trashes somewhat with demand-loading.
|
||||||
|
|
||||||
|
Test that linux can read your harddisk at least partly: run the fdisk
|
||||||
|
program on the root-disk, and see if it barfs. If it tells you about
|
||||||
|
any partitions at all, linux can successfully read at least part of
|
||||||
|
your harddisk.
|
||||||
|
|
||||||
|
NOTE! Harddisk device names and numbers have changed between versions
|
||||||
|
0.12 and 0.95: the new numbering system was needed for the extended
|
||||||
|
partitions, and a new naming scheme was in order so that people
|
||||||
|
wouldn't cunfuse the old devices with the new ones.
|
||||||
|
|
||||||
|
The new harddisk device names are: /dev/hd followed by an 'a' for the
|
||||||
|
first drive, or a 'b' for the second one. After that comes the
|
||||||
|
partition number, 1-4 for the primary partitions, 5- for possible
|
||||||
|
extended partitions. No number means the complete disk. Like this:
|
||||||
|
|
||||||
|
/dev/hda the whole first harddisk (old: /dev/hd0)
|
||||||
|
/dev/hdb3 partition nr 3 on the second disk (old: /dev/hd8)
|
||||||
|
|
||||||
|
3) Make sure that you have a free /primary/ partition. There can be 4
|
||||||
|
primary partitions per drive: newer DOS fdisks seem to be able to
|
||||||
|
create only 2 (one primary and one extended). In that case use some
|
||||||
|
other partitioning software: edpart.exe etc. Linux fdisk currently
|
||||||
|
only tells you the partition info - it doesn't write to the disk.
|
||||||
|
|
||||||
|
Remember to check how big your partition was, as that can be used to
|
||||||
|
tell which device Linux thinks it is.
|
||||||
|
|
||||||
|
NOTE! Linux-0.95 /might/ recognize extended partitions: but the code
|
||||||
|
for this is utterly untested, as I don't have any of those. Do NOT
|
||||||
|
use the extended partitions unless you can verify that they are
|
||||||
|
indeed correctly set up - if my routines are wrong, writing to the
|
||||||
|
extended partitions might just overwrite some other partition
|
||||||
|
instead. Not nice.
|
||||||
|
|
||||||
|
4) Boot up linux again, fdisk to make sure you now have the new
|
||||||
|
partition, and use mkfs to make a filesystem on one of the partitions
|
||||||
|
fdisk reports. Write "mkfs -c /dev/hdX nnn" where X is the device
|
||||||
|
number reported by linux fdisk, and nnn is the size - also reported
|
||||||
|
by fdisk. nnn is the size in /blocks/, ie kilobytes. You should be
|
||||||
|
able to use the size info to determine which partition is represented
|
||||||
|
by which device name.
|
||||||
|
|
||||||
|
5) Mount the new disk partition: "mount /dev/hdX /mnt". Copy over the
|
||||||
|
root filesystem to the harddisk, eg like this:
|
||||||
|
|
||||||
|
# for i in bin dev etc usr tmp
|
||||||
|
# do
|
||||||
|
# cp +recursive /$i /mnt
|
||||||
|
# done
|
||||||
|
|
||||||
|
You caanot use just "cp +recursive / /mnt", as that will result in a
|
||||||
|
loop.
|
||||||
|
|
||||||
|
6) Sync the filesystem after you have played around enough, and reboot.
|
||||||
|
|
||||||
|
# sync
|
||||||
|
# lo
|
||||||
|
|
||||||
|
(none) login: sync
|
||||||
|
<wait for it to sync>
|
||||||
|
ctrl-alt-del
|
||||||
|
|
||||||
|
THIS IS IMPORTANT! NEVER EVER FORGET TO SYNC BEFORE KILLING THE MACHINE.
|
||||||
|
|
||||||
|
7) Change the bootdisk to understand which partition it should use as a
|
||||||
|
root filesystem. See INSTALL-0.11: it's still the word at offset
|
||||||
|
508 into the image. You should be up and running.
|
||||||
|
|
||||||
|
|
||||||
|
8) When you've successfully started up with your harddisk as root, you
|
||||||
|
can mount the older rootimage (rootimage-0.12) from a floppy, and
|
||||||
|
copy over any files you find there that weren't on the newer
|
||||||
|
root-image.
|
||||||
|
|
||||||
|
Mounting a floppy is easy: make the directory /floppy, and write:
|
||||||
|
|
||||||
|
# mount /dev/PS0 /floppy (if you have a 3.5" drive)
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
# mount /dev/at0 /floppy (for 5.25" floppies)
|
||||||
|
|
||||||
|
After that the files can be copied to your harddisk, eg:
|
||||||
|
|
||||||
|
# cp /floppy/usr/bin/compress /usr/bin
|
||||||
|
# ln -s /usr/bin/compress /usr/bin/compress
|
||||||
|
# cp /floppy/usr/bin/tar.Z /usr/bin
|
||||||
|
# uncompress /usr/bin/tar.Z
|
||||||
|
|
||||||
|
That's it. Now go back and read the INSTALL-0.11, until you are sure you
|
||||||
|
know what you are doing.
|
||||||
|
|
||||||
|
|
||||||
|
New features of 0.95, in order of appearance
|
||||||
|
(ie in the order you see them)
|
||||||
|
|
||||||
|
Init/login
|
||||||
|
|
||||||
|
Yeah, thanks to poe (Peter Orbaeck (sp?)), linux now boots up like a
|
||||||
|
real unix with a login-prompt. Login as root (no passwd), and change
|
||||||
|
your /etc/passwd to your hearts delight (and add other logins in
|
||||||
|
/etc/inittab etc).
|
||||||
|
|
||||||
|
Bash is even bigger
|
||||||
|
|
||||||
|
It's really a bummer to boot up from floppies: bash takes a long time to
|
||||||
|
load. Bash is also now so big that I couldn't fit compress and tar onto
|
||||||
|
the root-floppy: You'll probably want the old rootimage-0.12 just in
|
||||||
|
order to get tar+compress onto your harddisk. If anybody has pointers
|
||||||
|
to a simple shell that is freely distributable, it might be a good idea
|
||||||
|
to use that for the root-diskette.
|
||||||
|
|
||||||
|
Especially with a small buffer-cache, things aren't fun. Don't worry:
|
||||||
|
linux runs much better on a harddisk.
|
||||||
|
|
||||||
|
Virtual consoles on any (?) hardware.
|
||||||
|
|
||||||
|
You can select one of several consoles by pressing the left alt-key and
|
||||||
|
a function key at the same time. Linux should report the number of
|
||||||
|
virtual consoles available upon bootup. /dev/tty0 is now "the current"
|
||||||
|
screen, /dev/tty1 is the main console, and /dev/tty2-8 can exist
|
||||||
|
depending on your text-mode or card.
|
||||||
|
|
||||||
|
The virtual consoles also have some new screen-handling commands: they
|
||||||
|
confirm even better to vt200 control codes than 0.11. Special graphic
|
||||||
|
characters etc: you can well use them as terminals to VMS (although
|
||||||
|
that's a shameful waste of resources), and the PF1-4 keys work somewhat
|
||||||
|
in the application-key mode.
|
||||||
|
|
||||||
|
Symbolic links.
|
||||||
|
|
||||||
|
0.95 now allows symlinks to point to other symlinks etc (the maximum
|
||||||
|
depth is a rather arbitrary 5 links). 0.12 didn't like more than one
|
||||||
|
level of indirection.
|
||||||
|
|
||||||
|
Virtual memory.
|
||||||
|
|
||||||
|
VM under 0.95 should be better than under 0.12: no more lockups (as far
|
||||||
|
as I have seen), and you can now swap to the filesystem as well as to a
|
||||||
|
special partition. There are two programs to handle this: mkswap to set
|
||||||
|
up a swap-file/partition and swapon to start up swapping.
|
||||||
|
|
||||||
|
mkswap needs either a partition or a file that already exists to make a
|
||||||
|
swap-area. To make a swap-file, do this:
|
||||||
|
|
||||||
|
# dd bs=1024 count=NN if=/dev/hda of=swapfile
|
||||||
|
# mkswap swapfile NN
|
||||||
|
|
||||||
|
The first command just makes a file that is NN blocks long (initializing
|
||||||
|
it from /dev/hda, but that could be anything). The second command then
|
||||||
|
writes the necessary setup-info into the file. To start swapping, write
|
||||||
|
|
||||||
|
# swapon swapfile
|
||||||
|
|
||||||
|
NOTE! 'dd' isn't on the rootdisk: you have to install some things onto
|
||||||
|
the harddisk before you can get up and running.
|
||||||
|
|
||||||
|
NOTE2! When linux runs totally out of virtual memory, things slow down
|
||||||
|
dramatically. It tries to keep on running as long as it can, but at
|
||||||
|
least it shouldn't lock up any more. ^C should work, although you might
|
||||||
|
have to wait a while for it..
|
||||||
|
|
||||||
|
Faster floppies
|
||||||
|
|
||||||
|
Ok, you don't notice this much when booting up from a floppy: bash has
|
||||||
|
grown, so it takes longer to load, and the optimizations work mostly
|
||||||
|
with sequential accesses. When you start un-taring floppies to get the
|
||||||
|
programs onto your harddisk, you'll notice that it's much faster now.
|
||||||
|
That should be about the only use for floppies under a unix: nobody in
|
||||||
|
their right mind uses floppies as filesystems.
|
||||||
|
|
||||||
|
Better FS-independence
|
||||||
|
|
||||||
|
Hopefully you'll never even notice this, but the filesystem has been
|
||||||
|
partly rewritten to make it less minix-fs-specific. I haven't
|
||||||
|
implemented all the VFS-patches I got, so it's still not ready, but it's
|
||||||
|
getting there, slowly.
|
||||||
|
|
||||||
|
And that's it, I think.
|
||||||
|
|
||||||
|
Happy hacking.
|
||||||
|
|
||||||
|
Linus (torvalds@kruuna.helsinki.fi)
|
||||||
BIN
images/Original/tsx-11-old/INSTALL/autocn/ACONVERT.EXE
Normal file
BIN
images/Original/tsx-11-old/INSTALL/autocn/ACONVERT.EXE
Normal file
Binary file not shown.
1234
images/Original/tsx-11-old/INSTALL/autocn/AUTOCON.DOC
Normal file
1234
images/Original/tsx-11-old/INSTALL/autocn/AUTOCON.DOC
Normal file
File diff suppressed because it is too large
Load Diff
BIN
images/Original/tsx-11-old/INSTALL/autocn/AUTOCON.EXE
Normal file
BIN
images/Original/tsx-11-old/INSTALL/autocn/AUTOCON.EXE
Normal file
Binary file not shown.
BIN
images/Original/tsx-11-old/INSTALL/autocn/AUTOCON.HLP
Normal file
BIN
images/Original/tsx-11-old/INSTALL/autocn/AUTOCON.HLP
Normal file
Binary file not shown.
34
images/Original/tsx-11-old/INSTALL/autocn/CACHE
Normal file
34
images/Original/tsx-11-old/INSTALL/autocn/CACHE
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
If you are running a Cache program, and do not have it set to write
|
||||||
|
through, then (if you have Autocon set for a Warm or Cold boot -- and
|
||||||
|
probably External) you must configure Autocon to "Flush" your cache.
|
||||||
|
Hit the <F4> key, and put in the command string that causes your cache
|
||||||
|
to flush. The command should be listed in the documentation for your
|
||||||
|
Cache program. Autocon will then save the information, and perform a
|
||||||
|
"Flush" before each reboot.
|
||||||
|
|
||||||
|
If you are not sure if your Cache is set to "write through", please
|
||||||
|
configure Autocon to do the "Flush", just to be on the safe side.
|
||||||
|
|
||||||
|
The symptoms of a cache problem is that the Autoexec and Config files do
|
||||||
|
not get updated, and/or any edited Autocon configurations do not get
|
||||||
|
saved. In the worst case, the Autocon.Dat file will get corrupted, and
|
||||||
|
your screen colors will disappear (screen will be blank when you start
|
||||||
|
AutoCon).
|
||||||
|
|
||||||
|
Setting Autocon up to do the "Flush" will remove the problems.
|
||||||
|
|
||||||
|
Some Flush commands that I know are:
|
||||||
|
|
||||||
|
PC-KWIK - SUPERPCK /F
|
||||||
|
PC-CACHE - PC-CACHE /FLUSH
|
||||||
|
FLASH - FLASH /F?
|
||||||
|
HYPERDISK - HYPERDK W
|
||||||
|
SMARTDRV - SMARTDRV /C (new ver with WINDOWS 3.1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Sorry for any inconvenience,
|
||||||
|
|
||||||
|
|
||||||
|
-Larry Weaver
|
||||||
61
images/Original/tsx-11-old/INSTALL/autocn/CHANGES
Normal file
61
images/Original/tsx-11-old/INSTALL/autocn/CHANGES
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
|
||||||
|
CHANGES
|
||||||
|
|
||||||
|
I don't know if you read the changes file in the previous version,
|
||||||
|
so I will summarize it. I sold my home in Santa Barbara, and moved
|
||||||
|
to a small town in Northern California to concentrate on writing
|
||||||
|
shareware full time. Well (you may ask), how's it going.
|
||||||
|
|
||||||
|
Since my program was reviewed on page 50 in the Nov. 13, 1990 issue
|
||||||
|
of PC Magazine, registrations have increased significantly.
|
||||||
|
Appearantly a lot of people read (and pay attention to) PC
|
||||||
|
Magazine. Site registrations have really increased, and I now have
|
||||||
|
some Fortune 50 customers. Banks, however, make up the bulk of
|
||||||
|
the Site Licensees.
|
||||||
|
|
||||||
|
I ran into a few tax problems (it was either pay Uncle a lot of
|
||||||
|
money, or put a lot of money into my house), so I've been
|
||||||
|
consulting pretty heavily the last year and doing major
|
||||||
|
reconstruction to my house. I think I am finally through with any
|
||||||
|
big consulting jobs (and with rebuilding my house), so now AutoCon
|
||||||
|
will be getting a lot more attention.
|
||||||
|
|
||||||
|
This is still not the release I had planned (it will probably show
|
||||||
|
up some time around July), but one of my competitors was on
|
||||||
|
Compuserve saying how much better he was than I because his program
|
||||||
|
could handle DOS 5.0's HIGH and UMB flags. I decided I needed to
|
||||||
|
add this capability to AutoCon and get out a new release before he
|
||||||
|
could cause any more problems. So with this release, AutoCon will
|
||||||
|
handle both MSDOS 5.0's HIGH and UMB flags, and it is compatible
|
||||||
|
with DRDOS which is one up on my competitor.
|
||||||
|
|
||||||
|
The 2.1 release of AutoCon will have a lot more editor
|
||||||
|
enhancements. I'm planning pull down menus (similar to the front
|
||||||
|
screen), and a split screen capability. I also intend to allow
|
||||||
|
Search/Replace operations to go automatically through all
|
||||||
|
configurations. I will also be able to use the screen size in
|
||||||
|
effect when AutoCon is started, instead of switching everything to
|
||||||
|
the 80X25 mode.
|
||||||
|
|
||||||
|
I have a support BBS online and functional. The number is (916)
|
||||||
|
623 4455, and it is in operation 24 hours a day. It has a 9600+
|
||||||
|
BAUD modem that is CompuCom CSP, V32, and V42 compatible (of course
|
||||||
|
it connects just fine at 2400 <or less> BAUD). The main function
|
||||||
|
of the BBS is (of course ) AutoCon support. If it gets busy
|
||||||
|
enough, it will grow into a full multi-line BBS. As a consequence
|
||||||
|
there are several megabytes of downloadable files on it, always
|
||||||
|
including the latest shareware release of AutoCon. I will also set
|
||||||
|
up a section for a group of Beta testers, so let me know if you are
|
||||||
|
interested in becomming one. I see several enhancements in
|
||||||
|
AutoCons future, as well as a few other programs that I have in
|
||||||
|
mind.
|
||||||
|
|
||||||
|
This is my first BBS and I'm sure there will be will be some
|
||||||
|
growing pains, so please bear with me.
|
||||||
|
|
||||||
|
I love the place I've moved to and I thank you very much for the
|
||||||
|
support you have given to AUTOCON, and for giving me the incentive
|
||||||
|
to change careers.
|
||||||
|
|
||||||
|
|
||||||
|
-Larry Weaver
|
||||||
8
images/Original/tsx-11-old/INSTALL/autocn/FILE_ID.DIZ
Normal file
8
images/Original/tsx-11-old/INSTALL/autocn/FILE_ID.DIZ
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
AutoCon V2.0g is a database manager for
|
||||||
|
Autoexec and Config Files. Allows up to
|
||||||
|
50 configurations, and makes switching
|
||||||
|
between them easy. Run full interactive
|
||||||
|
(editor, mouse, menus, context sensitive
|
||||||
|
help, etc.) or command line. MENU.CTL
|
||||||
|
device driver can setup menu of
|
||||||
|
configurations during boot. (ASP)
|
||||||
175
images/Original/tsx-11-old/INSTALL/autocn/KEY.TXT
Normal file
175
images/Original/tsx-11-old/INSTALL/autocn/KEY.TXT
Normal file
@@ -0,0 +1,175 @@
|
|||||||
|
The following is a list of the all of the editor functions, and the
|
||||||
|
default key assignments.
|
||||||
|
|
||||||
|
CURSOR MOVEMENT:
|
||||||
|
<Left>, <CtrlS>
|
||||||
|
Cursor left one character.
|
||||||
|
|
||||||
|
<Right>, <CtrlD>
|
||||||
|
Cursor right one character.
|
||||||
|
|
||||||
|
<CtrlLeft>, <CtrlA>
|
||||||
|
Cursor left one word. A 'word' is a series of non-separator
|
||||||
|
characters followed by one or more of the following :
|
||||||
|
' ', ';', '/', '='
|
||||||
|
|
||||||
|
<CtrlRight>, <CtrlF>
|
||||||
|
Cursor right one word.
|
||||||
|
|
||||||
|
<Home>, <CtrlQ><S>
|
||||||
|
Cursor to beginning of line.
|
||||||
|
|
||||||
|
<End>, <CtrlQ><D>
|
||||||
|
Cursor to end of line.
|
||||||
|
|
||||||
|
<Up>, <CtrlE>
|
||||||
|
Cursor up one line.
|
||||||
|
|
||||||
|
<Down>, <CtrlX>
|
||||||
|
Cursor down one line.
|
||||||
|
|
||||||
|
<CtrlW>
|
||||||
|
Scroll display up one line.
|
||||||
|
|
||||||
|
<CtrlZ>
|
||||||
|
Scroll display down one line.
|
||||||
|
|
||||||
|
<PgUp>, <CtrlR>
|
||||||
|
Scroll display up one page.
|
||||||
|
|
||||||
|
<PgDn>, <CtrlC>
|
||||||
|
Scroll display down one page.
|
||||||
|
|
||||||
|
<CtrlHome>, <CtrlQ><E>
|
||||||
|
Move cursor to top of edit window.
|
||||||
|
|
||||||
|
<CtrlEnd>, <CtrlQ><X>
|
||||||
|
Move cursor to bottom of edit window.
|
||||||
|
|
||||||
|
<CtrlPgUp>, <CtrlQ><R>
|
||||||
|
Move cursor to beginning of field.
|
||||||
|
|
||||||
|
<CtrlPgDn>, <CtrlQ><C>
|
||||||
|
Move cursor to end of field.
|
||||||
|
|
||||||
|
<Tab>, <CtrlI>
|
||||||
|
Move the cursor to the next tab stop.
|
||||||
|
|
||||||
|
<ClickLeft>
|
||||||
|
Move the cursor to the position indicated by the mouse.
|
||||||
|
|
||||||
|
DELETE FUNCTIONS:
|
||||||
|
<Del>, <CtrlG>
|
||||||
|
Delete character at cursor.
|
||||||
|
|
||||||
|
<Bksp>, <CtrlH>, <CtrlBksp>
|
||||||
|
Delete character to left of cursor.
|
||||||
|
|
||||||
|
<CtrlY>
|
||||||
|
Delete current line.
|
||||||
|
|
||||||
|
<CtrlQ><Y>
|
||||||
|
Delete from cursor to end of line.
|
||||||
|
|
||||||
|
<CtrlT>
|
||||||
|
Delete word to right of cursor.
|
||||||
|
|
||||||
|
NEW LINE:
|
||||||
|
<Enter>, <CtrlM>
|
||||||
|
Start a new line.
|
||||||
|
|
||||||
|
<CtrlN>
|
||||||
|
Split the current line at the cursor.
|
||||||
|
|
||||||
|
DEFAULT CONTROLS:
|
||||||
|
<CtrlP>
|
||||||
|
Insert control character. For example, to insert a ^G, you
|
||||||
|
would enter <CtrlP><CtrlG>.
|
||||||
|
|
||||||
|
<Ins>
|
||||||
|
Toggle insert mode on and off. Fat cursor indicates insert
|
||||||
|
mode; thin cursor indicates overtype mode.
|
||||||
|
|
||||||
|
<CtrlO><I>
|
||||||
|
|
||||||
|
Toggle auto-indent mode. In auto-indent mode, pressing
|
||||||
|
<Enter> in insert mode causes the new line to have the same
|
||||||
|
indentation as the previous line. Auto-indent also affects
|
||||||
|
the way that text is formatted when word wrap occurs.
|
||||||
|
|
||||||
|
<CtrlB>
|
||||||
|
Reformat the current paragraph. Use with caution.
|
||||||
|
|
||||||
|
<AltR>
|
||||||
|
Reformat the entire field. Use this command with caution.
|
||||||
|
|
||||||
|
<CtrlQ><L>
|
||||||
|
Restore original contents of the line and continue editing.
|
||||||
|
|
||||||
|
SAVE COMMANDS:
|
||||||
|
<Esc>, <CtrlBreak>, <ClickRight>, <CtrlK><Q>,
|
||||||
|
<AltF2>
|
||||||
|
Quit editing and abandon changes (With Question).
|
||||||
|
|
||||||
|
<F2>, <CtrlK><S>
|
||||||
|
Save the data, but continue editing.
|
||||||
|
|
||||||
|
<CtrlF2>, <CtrlK><X>, <CtrlK><D>, <AltX>
|
||||||
|
Save the data (if modified), and quit editing.
|
||||||
|
|
||||||
|
BLOCK COMMANDS:
|
||||||
|
<CtrlK><B>, <F7> <CtrlK><K>, <F8>
|
||||||
|
Begin a block mark. End a block mark.
|
||||||
|
|
||||||
|
<CtrlK><C> <CtrlK><V>
|
||||||
|
Copy a marked block. Move a marked block.
|
||||||
|
|
||||||
|
<CtrlK><Y> <F5>
|
||||||
|
Delete a marked block. Delete Contents of Entire field.
|
||||||
|
|
||||||
|
<CtrlK><U> <CtrlK><P>
|
||||||
|
Put marked block in buffer. Copy cUt buffer to Fieeld.
|
||||||
|
Allows moving data between records.
|
||||||
|
|
||||||
|
<CtrlK><W>
|
||||||
|
Write the Marked Block to the selected file name.
|
||||||
|
|
||||||
|
<CtrlK><R>
|
||||||
|
Read the selected file name into the edit field. You can
|
||||||
|
popup a file list and use a point and shoot select
|
||||||
|
|
||||||
|
|
||||||
|
SEARCH COMMANDS:
|
||||||
|
<CtrlQ><CtrlF>
|
||||||
|
Pops up a window for you to enter a string of text to search for.
|
||||||
|
The string remains valid across all records until it is changed with
|
||||||
|
another search function.
|
||||||
|
|
||||||
|
<CtrlQ><CtrlA>
|
||||||
|
Pops up a window for you to enter a string of text to search for,
|
||||||
|
then pops up a window for you to enter a string of text to replace
|
||||||
|
the search string with. You will be asked to confirm the
|
||||||
|
replacement. The strings remain valid across all records until it
|
||||||
|
is changed with another search function.
|
||||||
|
|
||||||
|
<CtrlL>
|
||||||
|
Repeats the last Search(/Replace) function without going through the
|
||||||
|
exercise of entering new strings.
|
||||||
|
|
||||||
|
MISCELLANEOUS COMMANDS:
|
||||||
|
|
||||||
|
<F1>, <ClickBoth>
|
||||||
|
Help. This command invokes the help routine for this topic
|
||||||
|
if it exists. Otherwise it does nothing.
|
||||||
|
|
||||||
|
<F6>
|
||||||
|
Pops up a key edit window to allow chaging all of the editor key
|
||||||
|
assignments.
|
||||||
|
|
||||||
|
<AltE>
|
||||||
|
Creates a "SET AUTOCON=<configuration name>" command for the
|
||||||
|
Autoexec field. If each Autoexec has the correct one, the name of
|
||||||
|
the boot configuration will be in the environment.
|
||||||
|
|
||||||
|
<AltF6>, <AltF7>, <AltF8>
|
||||||
|
Changes the keys assigned to change the colors used in the editor.
|
||||||
BIN
images/Original/tsx-11-old/INSTALL/autocn/MENU.CTL
Normal file
BIN
images/Original/tsx-11-old/INSTALL/autocn/MENU.CTL
Normal file
Binary file not shown.
BIN
images/Original/tsx-11-old/INSTALL/autocn/MENUNUM.COM
Normal file
BIN
images/Original/tsx-11-old/INSTALL/autocn/MENUNUM.COM
Normal file
Binary file not shown.
94
images/Original/tsx-11-old/INSTALL/autocn/REGISTER.PRN
Normal file
94
images/Original/tsx-11-old/INSTALL/autocn/REGISTER.PRN
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
------------------- REGISTRATION ----------------------
|
||||||
|
|
||||||
|
Please support AutoCon!
|
||||||
|
Thank you for your support.
|
||||||
|
|
||||||
|
Remit To: Larry Weaver
|
||||||
|
P.O. Box 2639
|
||||||
|
Weaverville CA 96093-2639
|
||||||
|
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
You must check one registration option, and one disk option!
|
||||||
|
|
||||||
|
---------------------------
|
||||||
|
_
|
||||||
|
|_| AutoCon Standard registration ($15.00 -- no disk sent) $______
|
||||||
|
_
|
||||||
|
|_| AutoCon Site License and Registration (no disk sent)
|
||||||
|
$120.00 for the first 100 (or fewer) users or machines
|
||||||
|
100.00 for each additional 100 (or fewer) users or machines $______
|
||||||
|
|
||||||
|
---------------------------
|
||||||
|
_
|
||||||
|
|_| AutoCon Upgrade to the newest version ($8.00; $10.00 foreign) $______
|
||||||
|
Registered users only
|
||||||
|
_
|
||||||
|
|_| Subscription plan for REGISTERED users ($21.00; $26.00 foreign) $______
|
||||||
|
(Receive the next three updates of AutoCon, as they
|
||||||
|
become available. This fee is in addition to the
|
||||||
|
$15.00 or $120.00 registration.)
|
||||||
|
|
||||||
|
---------------------------
|
||||||
|
_
|
||||||
|
|_| Printed Manual ($8.00) $______
|
||||||
|
If you desire, I will print out the AUTOCON.DOC file and
|
||||||
|
send it to you. You can achieve the same results by printing
|
||||||
|
it out yourself, but several people seem to want this.
|
||||||
|
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
"Foreign" means outside the USA and Canada; the extra charge covers postage.
|
||||||
|
_ _
|
||||||
|
Payment by: |_| Check or |_| Money Order enclosed.
|
||||||
|
|
||||||
|
TOTAL in USA Funds. $______
|
||||||
|
Foreign checks are acceptable if they have the US Federal Reserve
|
||||||
|
Routing Number on them, use the current exchange rate.
|
||||||
|
_ _
|
||||||
|
Disk Type: |_| 5 1/4" (normally sent); |_| 3 1/2" required
|
||||||
|
|
||||||
|
Name ___________________________________________________________________
|
||||||
|
|
||||||
|
Address ___________________________________________________________________
|
||||||
|
|
||||||
|
___________________________________________________________________
|
||||||
|
|
||||||
|
___________________________________________________________________
|
||||||
|
|
||||||
|
|
||||||
|
Day Phone: _________________________ Eve: ______________________
|
||||||
|
|
||||||
|
Compuserve ID: _____________________
|
||||||
|
|
||||||
|
_
|
||||||
|
Invoice Required |_| P. O. Number: ______________________
|
||||||
|
|
||||||
|
------------------------ User comments -------------------------
|
||||||
|
I acquired AutoCon V2.0g from
|
||||||
|
[ ] - Friend [ ] - Software product
|
||||||
|
[ ] - Computer Club [ ] - Computer Store
|
||||||
|
[ ] - Data Base Service [ ] - Support BBS
|
||||||
|
[ ] - Electronic BBS - Please give phone no. _____________
|
||||||
|
[ ] - Other (please specify) ___________________________
|
||||||
|
|
||||||
|
I would also appreciate any input you would care to provide
|
||||||
|
concerning AutoCon. If you have any ideas or comments which would
|
||||||
|
make AutoCon a better program, please let me know.
|
||||||
|
|
||||||
|
I value your comments!
|
||||||
|
|
||||||
|
Comments and/or suggestions:
|
||||||
|
________________________________________________________________
|
||||||
|
|
||||||
|
________________________________________________________________
|
||||||
|
|
||||||
|
________________________________________________________________
|
||||||
|
|
||||||
|
________________________________________________________________
|
||||||
|
|
||||||
|
________________________________________________________________
|
||||||
|
|
||||||
|
________________________________________________________________
|
||||||
|
|
||||||
|
________________________________________________________________
|
||||||
441
images/Original/tsx-11-old/INSTALL/autocn/WHATSNEW
Normal file
441
images/Original/tsx-11-old/INSTALL/autocn/WHATSNEW
Normal file
@@ -0,0 +1,441 @@
|
|||||||
|
Version 2.0g
|
||||||
|
I still had complaints about people seeing Echo Off in the Autoexec
|
||||||
|
Bat file, so now if you have a DOS higher than 3.2, it will start
|
||||||
|
with @Echo off.
|
||||||
|
|
||||||
|
If you are using DOS 5.0, A DOS=HIGH,NOUMB line will be appended to
|
||||||
|
the bottom of the Autoexec.bat file, and you will have to put a
|
||||||
|
DOS=LOW (and/ or a DOS=UMB) in the configurations you need them in.
|
||||||
|
Menu.Ctl will control the flags.
|
||||||
|
|
||||||
|
If you are using DRDOS, Menu.Ctl will now work with it as well as
|
||||||
|
MSDOS.
|
||||||
|
|
||||||
|
I've changed the way I load configurations, so you will be able to
|
||||||
|
run AutoCon with less memory, and there is no longer a 6K or 2K
|
||||||
|
limit on the Autoexec and Config fields.
|
||||||
|
|
||||||
|
Each configuration now has the names of the files that the field is
|
||||||
|
written to. (I've had several requests for this one.)
|
||||||
|
|
||||||
|
The help screen colors are now installable.
|
||||||
|
|
||||||
|
The MENU.CTL interface has been rewritten to show up more distinctly
|
||||||
|
when booting. I had several complaints that it was easy to miss.
|
||||||
|
It will now put up some distinctive boxex, and show up in color if
|
||||||
|
you have a color monitor. The colors are installable from AutoCon.
|
||||||
|
|
||||||
|
Each configuration now has the names of the files that the field is written
|
||||||
|
to. (I've had several requests for this one.)
|
||||||
|
|
||||||
|
You can tell AutoCon not to restore the screen on exit (eliminates the
|
||||||
|
need for AutoConx.exe.
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.0e (mainly bug fix)
|
||||||
|
In Single mode if the Enviornment name wasn't set (AltE in the
|
||||||
|
editor) AutoCon could get the wrong cache 'Flush' information. This
|
||||||
|
is fixed, but I highly reccommend setting the Autocon Environment
|
||||||
|
variable if you are using Single mode.
|
||||||
|
|
||||||
|
If an external editor were being used, and the Autocon or Config
|
||||||
|
field size got too large, the AutoCon.Dat file could get messed up -
|
||||||
|
fixed.
|
||||||
|
|
||||||
|
Several people have complained that 4K and 2K is not large enough
|
||||||
|
for the Autoexec and Config fields, so I'm pushing the size up to 6K
|
||||||
|
and 4K. Please note that this adds 4K/configuration to AutoCon's
|
||||||
|
memory requirements.
|
||||||
|
|
||||||
|
There are two extra EXE files on the BBS. AutoCons.exe will still
|
||||||
|
use 4K and 2K for those needing the smaller memory requirements.
|
||||||
|
|
||||||
|
AutoConx.exe will not restore the screen when it exits. Try this if
|
||||||
|
you lose the cursor or the screen blanks out when you exit (I've had
|
||||||
|
two complaints about this).
|
||||||
|
|
||||||
|
Version 2.0d (bug fix)
|
||||||
|
If AutoCon followed an "ECHO OFF" and a "CLS" statement in a batch
|
||||||
|
file, the screen could get slightly messed up - fixed.
|
||||||
|
|
||||||
|
Version 2.0c (bug fix)
|
||||||
|
The user modified colors were getting lost if a reboot was performed
|
||||||
|
from the command line - fixed.
|
||||||
|
|
||||||
|
Version 2.0b (bug fix)
|
||||||
|
|
||||||
|
MENU.CTL had a problem with the name of the eighth configuration,
|
||||||
|
which is now fixed. It also had a tendency to leave menu choice 2
|
||||||
|
in the hi-lite mode, also fixed.
|
||||||
|
|
||||||
|
Several people complained about seeing the Errorlevel statements in
|
||||||
|
the AUTOEXEC.BAT during the boot process. AUTOEXEC.BAT files will
|
||||||
|
now start with ECHO OFF as the first statement if you choose the
|
||||||
|
MENU.CTL option.
|
||||||
|
|
||||||
|
Version 2.0 would allow you to choose more than the eight default
|
||||||
|
configurations. This is no longer allowed.
|
||||||
|
|
||||||
|
Version 2.0 had a problem writing the AUTOEXEC.BAT file for the Menu
|
||||||
|
mode if the Autoexec fields didn't end in a Carriage Return. This
|
||||||
|
is now fixed.
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
|
||||||
|
I'm jumping the version number from 1.4 to 2.0 for this release.
|
||||||
|
The reason is that AutoCon's capability has changed so much in this
|
||||||
|
release that I think it warrants a Major revision number change.
|
||||||
|
|
||||||
|
The major change is the inclusion of two new files. These are
|
||||||
|
MENU.CTL and MENUNUM.COM. Menu.Ctl is a device driver that can
|
||||||
|
disable commands in the CONFIG.SYS file. MenuNum.Com is a file that
|
||||||
|
will ask the portion of Menu.Ctl that stays resident which
|
||||||
|
configuration was chosen, and set the DOS ERRORLEVEL to that number.
|
||||||
|
This allows setting up menu choices in the AUTOEXEC.BAT file to
|
||||||
|
match the choice made from the CONFIG.SYS file. Together these two
|
||||||
|
files allow you to choose a system configuration from a menu of
|
||||||
|
configurations during the boot process itself.
|
||||||
|
|
||||||
|
AutoCon will handle all of the interface details to these two
|
||||||
|
commands for you, and allow you to return to a "Normal" system
|
||||||
|
configuration in just a couple of keystrokes. This will allow you
|
||||||
|
to run programs like "Optimize" from Quarterdeck.
|
||||||
|
|
||||||
|
|
||||||
|
There is a pull-down menu system available on the main screen. Each
|
||||||
|
item on the menu has a context sensitive help entry. This should
|
||||||
|
make it very easy to get AutoCon up and running the first time, and
|
||||||
|
allow you to look up those commands you can't remember the
|
||||||
|
keystrokes for.
|
||||||
|
|
||||||
|
|
||||||
|
There are two new command line options. If you enter
|
||||||
|
|
||||||
|
AutoCon /<return>
|
||||||
|
|
||||||
|
on the command line, a window of your configurations will pop up
|
||||||
|
asking you to choose which configuration you wish to use to reboot
|
||||||
|
the system. This is equivalent to the "AutoCon <configuraion name>,
|
||||||
|
except that AutoCon lets you choose the name from a pick list.
|
||||||
|
|
||||||
|
The second new command is
|
||||||
|
|
||||||
|
AutoCon /@<configuration name>
|
||||||
|
|
||||||
|
where <configuration name> is the name shown on the main screen for
|
||||||
|
each configuration. If the name matches the configuration that was
|
||||||
|
used for the boot process, the DOS errorlevel will be set to 1. It
|
||||||
|
will be set to 0 otherwise. For this function to work correctly,
|
||||||
|
you need to boot up with Menu.Ctl, or assure that each Autoexec
|
||||||
|
field has the correct name assigned with a SET command. See the new
|
||||||
|
"Put Name in Environment" editor function defined below.
|
||||||
|
|
||||||
|
|
||||||
|
The internal editor has a few new capabilities. In order to access
|
||||||
|
most them you will have to edit your keystrokes (using the F6 key).
|
||||||
|
The block operations are no longer constrained to full lines. The
|
||||||
|
default keys for reformating were removed. You may reassign them.
|
||||||
|
|
||||||
|
"Search Function" (default assigned to ^Q^F) allows you to search
|
||||||
|
the text for a specified string of text. The string is active for
|
||||||
|
the entire AutoCon session, and will be the same across records.
|
||||||
|
|
||||||
|
"Search/Replace Function" (default assigned to ^Q^A) allows you to
|
||||||
|
search the text for a specified string of text, and relpace it
|
||||||
|
with another string of text. You will be asked to confirm the
|
||||||
|
replacement.
|
||||||
|
|
||||||
|
"Repeat Search Function" (default assigned to ^L) This will
|
||||||
|
repeat the last Search, or Search/Replace that was performed. The
|
||||||
|
informations is retained during the AutoCon session, and will be
|
||||||
|
the same across records.
|
||||||
|
|
||||||
|
"Install Editor Keys" (default assigned to F6) allows you to
|
||||||
|
change the editor keys during an edit session.
|
||||||
|
|
||||||
|
"Put Name in Environment" (default assigned to AltE) will put a
|
||||||
|
SET command in your edit field. This will guarantee that the
|
||||||
|
configuration you are editing has its name placed correctly in the
|
||||||
|
environment. AutoCon will use this name for various command line
|
||||||
|
functions.
|
||||||
|
|
||||||
|
"Change (Text - AltF6, Block - AltF7, Control Char - AltF8)
|
||||||
|
Attribute" will allow you to change the keys that call up the
|
||||||
|
editor color installation windows.
|
||||||
|
|
||||||
|
"View Last Dos Screen" (default assigned to AltV) allows you to
|
||||||
|
see the DOS screen as it was when AutoCOn was started. Could be
|
||||||
|
useful if the reason your changing a configuration is shown there.
|
||||||
|
|
||||||
|
|
||||||
|
By March 1, 1991 I will have a support BBS in place operating 24
|
||||||
|
hours a day. The number will be (916) 623 4455.
|
||||||
|
|
||||||
|
|
||||||
|
Version 1.4
|
||||||
|
|
||||||
|
One of the WhatsNews has to do with me, I am now a member of the ASP
|
||||||
|
(Association of ShareWare Professionals). The rest of the WhatsNews
|
||||||
|
all concern changes (and additions) to the program.
|
||||||
|
|
||||||
|
You now have the option to use the built in editor to edit the
|
||||||
|
Autoexec and Config fields, or to install an external editor to do
|
||||||
|
the job. <CtrlF6> will pop up a window for you to enter an external
|
||||||
|
editor's file name. The Path will be checked for the entered file
|
||||||
|
name, and if found, it will be used to edit the Autoexec and Config
|
||||||
|
fields in the future. For more info, see the "Installing External
|
||||||
|
Editor" section of AUTOCON.DOC.
|
||||||
|
|
||||||
|
From the command line, typing <AUTOCON /=> will check the Autoexec
|
||||||
|
and Config fields of the current configuration record against the
|
||||||
|
file contents of the current Configuration files (usually
|
||||||
|
C:\AUTOEXEC.BAT and C:\CONFIG.SYS). The results of the comparison
|
||||||
|
will be shown on the screen. SPECIAL NOTE! - the configuration will
|
||||||
|
need to have been saved with the 1.4 version of AUTOCON.
|
||||||
|
|
||||||
|
From the command line, typing <AUTOCON /*> will update the Autoexec
|
||||||
|
and Config fields of the current configuration record from the file
|
||||||
|
contents of the current Configuration files (usually C:\AUTOEXEC.BAT
|
||||||
|
and C:\CONFIG.SYS). You might want to be a little careful with this
|
||||||
|
one.
|
||||||
|
|
||||||
|
The internal editor has a few new capabilities. In order to access
|
||||||
|
them, you will probably have to edit your keystrokes (using the <F6>
|
||||||
|
key). The new commands are "Split Line", "Cut the marked block",
|
||||||
|
and "Paste the last Cut block". These commands will be a little
|
||||||
|
more convenient than the current "Write marked block" and "Read
|
||||||
|
marked block" file commands.
|
||||||
|
|
||||||
|
"Split Line" (default assigned to <CtrlN> key) splits the current
|
||||||
|
line at the cursor, leaving the cursor where it is, and moving the
|
||||||
|
rest of the line down to the next line.
|
||||||
|
|
||||||
|
"Cut the marked block" (default assigned to <CtrlK> <U> key
|
||||||
|
combination) will put the current marked block into a text buffer.
|
||||||
|
"Paste the last Cut block" (default assigned to <CtrlK> <P> key
|
||||||
|
combination) will paste the contents of the cut buffer to the
|
||||||
|
current cursor location. This command can be used to move the
|
||||||
|
data in the same record, or across records. After a cUt, the data
|
||||||
|
will stay in the buffer until a new cUt is performed, or AUTOCON
|
||||||
|
is exited.
|
||||||
|
|
||||||
|
Formerly the editor only recognized a ' ' (space) as a word mark
|
||||||
|
(for <CtrlF>, <CtrlA>, <CtrlRarw>, etc.). This has been enhanced
|
||||||
|
to also recognize the following characters as word marks :
|
||||||
|
'/', ';', and '='.
|
||||||
|
|
||||||
|
Line length was increased to 254 for those long path names (and
|
||||||
|
any other long lines needed). This necessitated removing the
|
||||||
|
word-wrap capability while editing the Autoexec and Config
|
||||||
|
fields (I don't think this will be a hardship, you probably don't
|
||||||
|
want to word-wrap the lines in your Autoexec and Config files
|
||||||
|
anyway). Word-wrap is still used in the Notes field, but please
|
||||||
|
don't enter a line longer than 127 characters in there.
|
||||||
|
|
||||||
|
|
||||||
|
A couple of functions were also added to the Interactive Mode.
|
||||||
|
|
||||||
|
<AltC> will pop-up a pick list of the current configuration
|
||||||
|
records, and allow you to select one. The contents of the
|
||||||
|
Autoexec and Config fields of the selected configuration record
|
||||||
|
will be copied to the current configuration record. Be careful
|
||||||
|
with this one, there is NO "Undo" command. You can always
|
||||||
|
use ESC to get out of the pick list without doing a copy.
|
||||||
|
|
||||||
|
<AltV> will now show the Dos screen as it was when Autocon was
|
||||||
|
started.
|
||||||
|
|
||||||
|
<Alt=> will check the Autoexec and Config fields of the current
|
||||||
|
configuration record against the contents of the current
|
||||||
|
configuration files (C:\AUTOEXEC.BAT and C:\CONFIG.SYS, unless you
|
||||||
|
have changed them with <F8> or <F9> keys). SPECIAL NOTE! - the
|
||||||
|
configuration will need to have been saved with the 1.4 version of
|
||||||
|
AUTOCON.
|
||||||
|
|
||||||
|
All of the color changes now show up instantly (you previously had
|
||||||
|
to wait till the next time Autocon was executed to see some of the
|
||||||
|
color changes).
|
||||||
|
|
||||||
|
ESC is no longer accepted as a "Yes" answer (there were a lot of
|
||||||
|
complaints on this one). A "Yes" answer now requires a <Y> or
|
||||||
|
<Enter> key (accept default).
|
||||||
|
|
||||||
|
There are a few cosmetic changes on the screens (all in response to
|
||||||
|
comments by users). I won't take the space to list each one.
|
||||||
|
|
||||||
|
There are a couple more entrys on the help screen, and (I hope) the
|
||||||
|
entries are arranged in a little more logical fashion.
|
||||||
|
|
||||||
|
UltraVision : Autocon is now UltraVision "Aware". Autocon will
|
||||||
|
detect if UltraVision is installed and active. If it is, Autocon
|
||||||
|
will use UltraVision to switch modes, and restore screens (in other
|
||||||
|
words, Autocon won't mess up your screen).
|
||||||
|
|
||||||
|
Windows Problems : After spending a very unproductive day on the
|
||||||
|
phone with Microsoft, I decided to add another boot type option to
|
||||||
|
Autocon. Several people use Autocon to reconfigure in and out of
|
||||||
|
Windows. When Windows is running in 386 enhanced mode, a software
|
||||||
|
boot (usually) doesn't work. Microsoft's recommendation : "Never
|
||||||
|
reboot while running Windows". They say that this may trash hard
|
||||||
|
disks and worse (I'm not sure what could be "worse" than trashing a
|
||||||
|
hard disk). I don't know about you, but I've had to reboot out of
|
||||||
|
Windows several times. I know it's probably not a good idea, but
|
||||||
|
there are times it should be quite safe (and times when it is forced
|
||||||
|
upon us). Anyway, they say that is no way they are aware of to
|
||||||
|
ensure that a software reboot will work.
|
||||||
|
Therefore :
|
||||||
|
|
||||||
|
You may now select (N)one as an alternate boot type (using the
|
||||||
|
<F5> key). If you select (N)one, Autocon will now reconfigure the
|
||||||
|
files, but will not attempt a reboot. Now you may run Autocon
|
||||||
|
under Windows, and after the system files are reconfigured, you
|
||||||
|
can hit the dreaded CtrlAltDel key combination.
|
||||||
|
|
||||||
|
By the way, I'm not much of an artist, so if someone (out of the
|
||||||
|
goodness of their hearts) designs a nice Icon for Autocon, I would
|
||||||
|
appreciate them sending me a copy.
|
||||||
|
|
||||||
|
|
||||||
|
A potentially nasty bug was squashed. Since I never received a
|
||||||
|
complaint on this one, I assume that I was the only one "bit". If
|
||||||
|
your current configuration record was the last one, and you deleted
|
||||||
|
it, Autocon tried to find it again the next time it was started.
|
||||||
|
This could lead to bizarre behavior (a messed up pointer for those
|
||||||
|
technical people). If the current record number is larger than the
|
||||||
|
max record number, it will now be adjusted (with appropriate warning
|
||||||
|
message). It will still be pointing to the wrong record, but it
|
||||||
|
will behave in a known fashion.
|
||||||
|
|
||||||
|
______________________________________________________________________
|
||||||
|
|
||||||
|
Version 1.3a
|
||||||
|
|
||||||
|
There are a few bug fixes, and a couple of enhancements in this
|
||||||
|
version. If you used F2 to save changes in the previous versions,
|
||||||
|
when you hit ESC to exit it would issue a warning that the changes
|
||||||
|
were about to be lost, this has been corrected.
|
||||||
|
|
||||||
|
AUTOCON will now attempt to detect and restore the EGA/VGA (45/50)
|
||||||
|
small character mode upon exit.
|
||||||
|
|
||||||
|
After updating the configuration with 1.3a, when AUTOCON is started
|
||||||
|
in the interactive mode, it will default to the configuration used
|
||||||
|
in the last update.
|
||||||
|
|
||||||
|
On the command line if you type <AUTOCON /?> the name of the current
|
||||||
|
configuration will be displayed (Note: you must have saved a
|
||||||
|
configuration with V1.3a first).
|
||||||
|
|
||||||
|
If you are in the full screen entry mode, hitting <F7> will update
|
||||||
|
the Autoexec and Config fields in the current record from the
|
||||||
|
current AUTOEXEC.BAT and CONFIG.SYS files. This saves going into
|
||||||
|
each of the two fields and doing a <F5> <^KR> <AltX>.
|
||||||
|
|
||||||
|
From the command line, typing AUTOCON followed by a / and the name
|
||||||
|
of a configuration (e.g. <AUTOCON /NoTSRs>) will cause that
|
||||||
|
configuration to have it's Autoexec and Config fields updated from
|
||||||
|
the current AUTOEXEC.BAT and CONFIG.SYS files.
|
||||||
|
|
||||||
|
There was a bug in V1.3 that caused AUTOCON to have a problem with
|
||||||
|
reading files that were not terminated with ^Z. If you got an
|
||||||
|
"Edit Buffer Full" message when you tried to edit a field that you
|
||||||
|
know wasn't too big, then you were bitten by this bug. This is
|
||||||
|
fixed in 1.3a.
|
||||||
|
|
||||||
|
If you were in one of the fields and issued an <^KW> (block save)
|
||||||
|
and didn't have a marked block, you were not given an error message
|
||||||
|
in previous versions. This is fixed in 1.3a.
|
||||||
|
|
||||||
|
The help screen displayed in a color change window was the one for
|
||||||
|
changing the editor keystrokes. This is fixed in 1.3a.
|
||||||
|
|
||||||
|
______________________________________________________________________
|
||||||
|
|
||||||
|
Version 1.3
|
||||||
|
|
||||||
|
There are several changes in this version. If you have added
|
||||||
|
several extra configurations that you no longer need, the <CtrlF3>
|
||||||
|
key will delete the current configuration (you can't delete record
|
||||||
|
one, nor can you go below five records).
|
||||||
|
|
||||||
|
You can change the keystrokes used by the built in editor. Hitting
|
||||||
|
the <F6> key in the main menu will pop up a key editor which will
|
||||||
|
allow changing the actions of all of the control keys used in the
|
||||||
|
editor.
|
||||||
|
|
||||||
|
You can change the colors used by AUTOCON. Hitting the <Alt> key in
|
||||||
|
combination with the function keys will allow customization of most
|
||||||
|
of the colors. The use of each key is detailed in the pop-up help.
|
||||||
|
|
||||||
|
The DAT file format for 1.3 is quite different than the one for 1.2.
|
||||||
|
The white space has been eliminated, and as a consequence it is
|
||||||
|
significantly smaller (mine are about 1/4 the previous size). The
|
||||||
|
first time you run 1.3 it will change the format, and the DAT file
|
||||||
|
will no longer be compatible with 1.2. You may want to make a copy
|
||||||
|
of AUTOCON.DAT (just to be on the safe side) before running 1.3.
|
||||||
|
|
||||||
|
|
||||||
|
______________________________________________________________________
|
||||||
|
|
||||||
|
Version 1.2d keeps current file attributes
|
||||||
|
|
||||||
|
A request was made to update the Autoexec and Config files, but to
|
||||||
|
not change their current attributes (system, read only, hidden,
|
||||||
|
etc.). Therefore AUTOCON now reads the current file attributes of
|
||||||
|
Autoexec.Bat and Config.Sys before updating them, and restores the
|
||||||
|
attributes after the update.
|
||||||
|
|
||||||
|
|
||||||
|
______________________________________________________________________
|
||||||
|
|
||||||
|
Version 1.2c adds a boot type select.
|
||||||
|
|
||||||
|
Some computers have trouble with the warm boot that AUTOCON was
|
||||||
|
originally configured with. These seem to mainly be machines with
|
||||||
|
large hard disks, and a large hard disk manager. The <F5> key now
|
||||||
|
allows you to change the boot type from warm to cold to get around
|
||||||
|
this problem.
|
||||||
|
|
||||||
|
|
||||||
|
______________________________________________________________________
|
||||||
|
|
||||||
|
Version 1.2a is a bug fix.
|
||||||
|
|
||||||
|
AUTOCON didn't recognize more than three configurations from the
|
||||||
|
command line.
|
||||||
|
|
||||||
|
|
||||||
|
Version 1.2 is a bug fix.
|
||||||
|
|
||||||
|
When you attempted to read in your old configuration files to the
|
||||||
|
AUTOEXEC and CONFIG fields, it always defaulted to C:\AUTOEXEC.BAT
|
||||||
|
an C:\CONFIG.SYS no matter what files you had selected. The read
|
||||||
|
file option now works correctly.
|
||||||
|
|
||||||
|
|
||||||
|
______________________________________________________________________
|
||||||
|
|
||||||
|
Version 1.1 charges are as follows.
|
||||||
|
|
||||||
|
1. AUTOCON now does a Reboot when a reconfiguration is done from the
|
||||||
|
command line.
|
||||||
|
|
||||||
|
2. AUTOCON now handles up to 50 configurations (originally only 5).
|
||||||
|
|
||||||
|
3. You can now read any file into an AUTOEXEC or CONFIG edit field
|
||||||
|
(allows you to use your old configurations).
|
||||||
|
|
||||||
|
4. The On-line Help has been updated/enhanced.
|
||||||
|
|
||||||
|
5. The Doc file has been enhanced (left out a few things the first
|
||||||
|
time).
|
||||||
|
|
||||||
|
6. Allows you the choice of a Reboot when reconfiguring in the data
|
||||||
|
entry mode.
|
||||||
|
|
||||||
|
7. Hopefully a better choice of colors on an LCD screen. If you have
|
||||||
|
an LCD, you need to have your mode set to BW80 (2).
|
||||||
|
|
||||||
|
|
||||||
BIN
images/Original/tsx-11-old/INSTALL/autocn2g.zip
Normal file
BIN
images/Original/tsx-11-old/INSTALL/autocn2g.zip
Normal file
Binary file not shown.
BIN
images/Original/tsx-11-old/INSTALL/bootlin4.zip
Normal file
BIN
images/Original/tsx-11-old/INSTALL/bootlin4.zip
Normal file
Binary file not shown.
BIN
images/Original/tsx-11-old/INSTALL/pboot.zip
Normal file
BIN
images/Original/tsx-11-old/INSTALL/pboot.zip
Normal file
Binary file not shown.
3
images/Original/tsx-11-old/INSTALL/pfdisk/MAKE_TCC.BAT
Normal file
3
images/Original/tsx-11-old/INSTALL/pfdisk/MAKE_TCC.BAT
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
@echo This batch file uses Turbo C to build pfdisk.exe
|
||||||
|
@echo Note that only SMALL model has been tested...
|
||||||
|
tcc -v- -epfdisk.exe pfdiskaz.c syscodes.c s_msdos.c
|
||||||
264
images/Original/tsx-11-old/INSTALL/pfdisk/PFDISK.DOC
Normal file
264
images/Original/tsx-11-old/INSTALL/pfdisk/PFDISK.DOC
Normal file
@@ -0,0 +1,264 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PFDISK(8) MAINTENANCE COMMANDS PFDISK(8)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
NAME
|
||||||
|
pfdisk - partition fixed disk
|
||||||
|
|
||||||
|
SYNOPSIS
|
||||||
|
pfdisk device
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
pfdisk partitions the fixed disk identified as device into (at
|
||||||
|
most) four parts, each of which may be independently loaded with
|
||||||
|
an operating system. The actual name of device depends on the
|
||||||
|
operating system in use. For ESIX (System V/386) the device
|
||||||
|
name is either "/dev/rdsk/0s0" or "/dev/rdsk/1s0". For Minix,
|
||||||
|
it is "/dev/hd0" or "/dev/hd5". For MS-DOS it is a single digit
|
||||||
|
(zero or one).
|
||||||
|
|
||||||
|
pfdisk reads the hard disk partition table from block zero of
|
||||||
|
device into memory and allows the user to examine, modify, or
|
||||||
|
save the partition table. A regular file may be used instead of
|
||||||
|
a real device for testing purposes, though the device geometry
|
||||||
|
must be specified manually, and some systems will requrire a
|
||||||
|
file-name argument with the "R" and "W" commands (DOS, ESIX).
|
||||||
|
|
||||||
|
The partition table on device is NOT modified unless the write
|
||||||
|
command (W) is used with no argument.
|
||||||
|
|
||||||
|
USAGE
|
||||||
|
Commands
|
||||||
|
All pfdisk commands consist of a command word followed by
|
||||||
|
optional blank-separated command arguments. Note that only the
|
||||||
|
first letter of a command word is significant (except for "wq"
|
||||||
|
and "q!"). All command letters are accepted in either upper or
|
||||||
|
lower case. Numeric arguments are specified using C syntax.
|
||||||
|
Extra arguments are silently ignored.
|
||||||
|
|
||||||
|
The commands are:
|
||||||
|
|
||||||
|
? Prints a command summary (help).
|
||||||
|
|
||||||
|
1 sys_id first last sys_name
|
||||||
|
Set the partition table entry for part one, using:
|
||||||
|
sys_id as its system ID code, first as the lowest num-
|
||||||
|
bered cylinder it uses, last as the highest numbered
|
||||||
|
cylinder it uses, and sys_name (optional) as the system
|
||||||
|
name (in the menu name table).
|
||||||
|
|
||||||
|
2|3|4 sys-id first last sys-name
|
||||||
|
Similar to 1 but sets partition two, three, or four,
|
||||||
|
respectively.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Release 1.3 Last change: Oct 1990 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PFDISK(8) MAINTENANCE COMMANDS PFDISK(8)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A number
|
||||||
|
Mark partition number as active (so it will be used for
|
||||||
|
booting). If number is zero, no partition will be
|
||||||
|
active.
|
||||||
|
|
||||||
|
G cylinders heads sectors
|
||||||
|
Inform pfdisk what the geometry of the device is.
|
||||||
|
|
||||||
|
I Print a summary of the known ID codes.
|
||||||
|
|
||||||
|
L List the partition table. See Output Format below.
|
||||||
|
|
||||||
|
Q Quit without saving. If the memory copy of the parti-
|
||||||
|
tion table was modified, a warning will be issued and
|
||||||
|
the command ignored.
|
||||||
|
|
||||||
|
Q! Quit, even if the memory copy of the partition table was
|
||||||
|
not saved.
|
||||||
|
|
||||||
|
R file-name
|
||||||
|
Read boot sector from file-name (if given) otherwise
|
||||||
|
read from device.
|
||||||
|
|
||||||
|
W file-name
|
||||||
|
Write boot sector to file-name. (if given) otherwise
|
||||||
|
write to device.
|
||||||
|
|
||||||
|
WQ Same as "write" followed by "quit".
|
||||||
|
|
||||||
|
# This line is a comment (to be ignored).
|
||||||
|
|
||||||
|
Output Format
|
||||||
|
Here is a sample of the output from the L command:
|
||||||
|
|
||||||
|
# Partition table on device: /dev/rdsk/0s0
|
||||||
|
geometry 1222 15 34 (cyls heads sectors)
|
||||||
|
# ID First(cyl) Last(cyl) Name # start, length (sectors)
|
||||||
|
1 4 0 127 MS-LOSS # 34, 65246
|
||||||
|
2 129 128 255 Minix # 65280, 65280
|
||||||
|
3 0 0 0 # 0, 0
|
||||||
|
4 99 256 1220 ESIX # 130560, 492150
|
||||||
|
# note: last(4): phys=(1023,14,34) logical=(1220,14,34)
|
||||||
|
active: 4
|
||||||
|
|
||||||
|
This output format is carefully constructed so that it may be
|
||||||
|
saved in a file (by redirecting standard output) and later used
|
||||||
|
as input (by redirecting standard input). On a UNIX system, one
|
||||||
|
can save this output using the command:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Release 1.3 Last change: Oct 1990 2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PFDISK(8) MAINTENANCE COMMANDS PFDISK(8)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(echo L) | pfdisk device-name > save-file
|
||||||
|
|
||||||
|
save-file is a complete record of the partition table. On a
|
||||||
|
UNIX system, one could use save-file to re-initialize the parti-
|
||||||
|
tion table using the command:
|
||||||
|
|
||||||
|
(cat save-file ; echo wq) | pfdisk device-name
|
||||||
|
|
||||||
|
Consistency of each partition table entry is checked while the
|
||||||
|
table is listed. Any inconsistencies discovered are reported in
|
||||||
|
a commentary note as shown above.
|
||||||
|
|
||||||
|
Physical vs. Logical
|
||||||
|
Each partition table entry has both "physical" and a "logical"
|
||||||
|
fields. The physical fields specify the lowest and highest
|
||||||
|
cylinder,head,sector combinations to be used in that partition.
|
||||||
|
The logical start field has the total number of sectors which
|
||||||
|
precede this partition, and the logical length field has the
|
||||||
|
total number of sectors contained in this partition. These
|
||||||
|
fields should be self consistent unless the disk has more than
|
||||||
|
1024 cylinders.
|
||||||
|
|
||||||
|
The physical cylinder fields are only ten-bits wide so the con-
|
||||||
|
tents are limited to 1023. The logical sector fields are 32 bits
|
||||||
|
wide and always show the true logical beginning and length of
|
||||||
|
the partition. Generally, the physical start field is used only
|
||||||
|
to locate the secondary boot sector, and the logical start and
|
||||||
|
length fields are used to actually delimit the partition used by
|
||||||
|
a particular system.
|
||||||
|
|
||||||
|
Partition Names
|
||||||
|
The Name field in the partition table is treated specially if
|
||||||
|
the bootmenu program is installed in the primary boot sector.
|
||||||
|
(See the file bootmenu.doc for more information.) pfdisk can
|
||||||
|
recognize the name table used by bootmenu and will show the
|
||||||
|
actual names present in that name table. If any other boot pro-
|
||||||
|
gram is used then the Name field reflects the result of a
|
||||||
|
table-lookup of the system ID.
|
||||||
|
|
||||||
|
If you provide a name when setting any partition entry, the
|
||||||
|
boot-sector is marked as using a name table, so that on subse-
|
||||||
|
quent uses of pfdisk you will see the partition names you have
|
||||||
|
specified.
|
||||||
|
|
||||||
|
Boot program replacement
|
||||||
|
You can replace the boot program in your boot sector without
|
||||||
|
affecting the partition table by using pfdisk as follows.
|
||||||
|
First, (as always) save a copy of the current boot sector (on a
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Release 1.3 Last change: Oct 1990 3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PFDISK(8) MAINTENANCE COMMANDS PFDISK(8)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
floppy) using the "W file" command. Then, use the "R file" com-
|
||||||
|
mand to read the new boot program. If the boot program read in
|
||||||
|
is less than 446 bytes long, the partition table will be
|
||||||
|
unchanged.
|
||||||
|
|
||||||
|
Unlike the DOS or UNIX fdisk programs, pfdisk has NO boot pro-
|
||||||
|
gram compiled into its executable image. If you wish to use
|
||||||
|
pfdisk to partition a newly formatted hard disk, you must have a
|
||||||
|
boot program image available to read in using the "r file" com-
|
||||||
|
mand. Two boot programs, "bootmenu.bin" and "bootauto.bin" are
|
||||||
|
distributed with pfdisk and should be found with its source
|
||||||
|
files. See the file bootmenu.doc for further information about
|
||||||
|
these boot programs.
|
||||||
|
|
||||||
|
AUTHOR
|
||||||
|
Gordon W. Ross
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Release 1.3 Last change: Oct 1990 4
|
||||||
|
|
||||||
BIN
images/Original/tsx-11-old/INSTALL/pfdisk/PFDISK.EXE
Normal file
BIN
images/Original/tsx-11-old/INSTALL/pfdisk/PFDISK.EXE
Normal file
Binary file not shown.
605
images/Original/tsx-11-old/INSTALL/pfdisk/PFDISKAZ.C
Normal file
605
images/Original/tsx-11-old/INSTALL/pfdisk/PFDISKAZ.C
Normal file
@@ -0,0 +1,605 @@
|
|||||||
|
/*
|
||||||
|
* pfdisk - Partition a Fixed DISK
|
||||||
|
* by Gordon W. Ross, Jan. 1990
|
||||||
|
*
|
||||||
|
* See the file "pfdisk.doc" for user instructions.
|
||||||
|
*
|
||||||
|
* This program uses a simple, line-oriented interpreter,
|
||||||
|
* designed for both interactive and non-interactive use.
|
||||||
|
* To facilitate non-interactive use, the output from the
|
||||||
|
* 'L' (list partitions) command is carefully arranged so it
|
||||||
|
* can be used directly as command input. Neat trick, eh?
|
||||||
|
*/
|
||||||
|
|
||||||
|
char *versionString =
|
||||||
|
"# pfdisk version 1.2.1 by Gordon W. Ross Aug. 1990\nModified by S. Lubkin Oct. 1991\n";
|
||||||
|
|
||||||
|
/* These don't really matter. The user is asked to set them. */
|
||||||
|
#define DEFAULT_CYLS 306
|
||||||
|
#define DEFAULT_HEADS 4
|
||||||
|
#define DEFAULT_SECTORS 17
|
||||||
|
#define PROMPT_STRING "pfdisk> "
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
#include "sysdep.h"
|
||||||
|
#include "syscodes.h"
|
||||||
|
|
||||||
|
typedef unsigned char uchar;
|
||||||
|
typedef unsigned int uint;
|
||||||
|
typedef unsigned long ulong;
|
||||||
|
|
||||||
|
struct part { /* An entry in the partition table */
|
||||||
|
uchar active; /* active flag (0x80 or 0) */
|
||||||
|
uchar b_head; /* begin head */
|
||||||
|
uchar b_sec; /* sector */
|
||||||
|
uchar b_cyl; /* cylinder */
|
||||||
|
uchar sysid; /* system id (see sysid.c) */
|
||||||
|
uchar e_head; /* end head */
|
||||||
|
uchar e_sec; /* end sector */
|
||||||
|
uchar e_cyl; /* end cylinder */
|
||||||
|
/* These two are just longs, but this way is machine independent. */
|
||||||
|
/* uchar lsBeg[4]; /* logical sectors, beginning Saul */
|
||||||
|
ulong lsBeg; /* logical sectors, beginning Saul */
|
||||||
|
/* uchar lsLen[4]; /* logical sectors, length Saul */
|
||||||
|
ulong lsLen; /* logical sectors, length Saul */
|
||||||
|
};
|
||||||
|
|
||||||
|
#define LOC_PT 0x1BE
|
||||||
|
#define LOC_NT 0x1AA /* Saul */
|
||||||
|
/* #define LOC_NT 0x180 Saul */
|
||||||
|
/* #define LOC_GWR 0x1A0 Saul */
|
||||||
|
#define LOC_GWR 0x1A9 /* Saul */
|
||||||
|
#define MAGIC_LOC 0x1FE
|
||||||
|
#define MAGIC_0 0x55
|
||||||
|
#define MAGIC_1 0xAA
|
||||||
|
#define MAX_LINE 80
|
||||||
|
#define NT_ENTRY_SIZE 5 /* Saul */
|
||||||
|
/* Note: Entry in "printf" command, should be manually changed, to
|
||||||
|
"%-NT_ENTRY_SIZE.NT_ENTRY_SIZEs" Saul */
|
||||||
|
/* And header printf line should have blanks adjusted Saul */
|
||||||
|
|
||||||
|
char s[22]; /* For holding error string */
|
||||||
|
char buffer[SECSIZE]; /* The boot block buffer */
|
||||||
|
int bufmod=0; /* buffer modified... */
|
||||||
|
/* (zero means buffer is unmodified) */
|
||||||
|
int useNTable; /* boot sector uses name table */
|
||||||
|
|
||||||
|
/* device parameters (force someone to set them!) */
|
||||||
|
unsigned cyls = DEFAULT_CYLS;
|
||||||
|
unsigned heads = DEFAULT_HEADS;
|
||||||
|
unsigned sectors = DEFAULT_SECTORS;
|
||||||
|
|
||||||
|
char *devname; /* device name */
|
||||||
|
char cmdline[MAX_LINE];
|
||||||
|
char filename[80]; /* used by r/w commands */
|
||||||
|
char *prompt; /* null if no tty input */
|
||||||
|
|
||||||
|
/* Some of these strings are used in more than one place.
|
||||||
|
* For consistency, I put a newline on all of them.
|
||||||
|
*/
|
||||||
|
char h_h[] = "? <enter> : Help summary\n";
|
||||||
|
char h_l[] = "L : List partition table\n";
|
||||||
|
char h_1[] = "1 id first last [name]: set partition 1\n";
|
||||||
|
char h_2[] = "2,3,4 ... (like 1) : set respective partition\n";
|
||||||
|
char h_a[] = "A n [m, ...] : Activate partition(s) n [m, ...]\n";
|
||||||
|
char h_g[] = "G cyls heads sectors : set disk Geometry\n";
|
||||||
|
char h_i[] = "I : list known ID numbers\n";
|
||||||
|
char h_r[] = "R [optional-file] : Read device (or specified file)\n";
|
||||||
|
char h_w[] = "W [optional-file] : Write device (or specified file)\n";
|
||||||
|
char h_q[] = "Q[!] : Quit (! means force)\n";
|
||||||
|
|
||||||
|
char * helpTable[] = {
|
||||||
|
h_h, h_l, h_1, h_2, h_a, h_g, h_i, h_r, h_w, h_q,
|
||||||
|
"# (All command letters have lower-case equivalents.)\n",
|
||||||
|
(char *) 0 }; /* This MUST have a zero as the last element */
|
||||||
|
|
||||||
|
char *BadArg="Error: bad argument: %s\n";
|
||||||
|
char *WarnNotSaved =
|
||||||
|
"Warning, modified partition table not saved.\n";
|
||||||
|
|
||||||
|
help()
|
||||||
|
{
|
||||||
|
char ** p;
|
||||||
|
for (p = helpTable; *p; p++)
|
||||||
|
printf(*p);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* forward declarations */
|
||||||
|
void checkValidity();
|
||||||
|
char * setPartition();
|
||||||
|
char * makeActive();
|
||||||
|
char * setGeometry();
|
||||||
|
ulong chs2long();
|
||||||
|
char * nameID();
|
||||||
|
int printIDs();
|
||||||
|
|
||||||
|
main(argc,argv)
|
||||||
|
int argc;
|
||||||
|
char *argv[];
|
||||||
|
{
|
||||||
|
char *cmdp; /* points to command word */
|
||||||
|
char *argp; /* points to command args */
|
||||||
|
|
||||||
|
/* check command line args (device name) */
|
||||||
|
if (argc != 2) {
|
||||||
|
usage(argv[0]); /* See s-sysname.c */
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
devname = argv[1];
|
||||||
|
|
||||||
|
/* Should we prompt? */
|
||||||
|
prompt = (isatty(fileno(stdin))) ? PROMPT_STRING : (char *) 0;
|
||||||
|
|
||||||
|
/* Print version name. */
|
||||||
|
fputs(versionString, stderr);
|
||||||
|
|
||||||
|
/* get disk parameters */
|
||||||
|
getGeometry(devname,&cyls,&heads,§ors);
|
||||||
|
|
||||||
|
/* Get the boot block. */
|
||||||
|
if (getBBlk(devname, buffer) < 0)
|
||||||
|
fprintf(stderr,"%s: read failed\n", devname);
|
||||||
|
checkValidity();
|
||||||
|
|
||||||
|
if (prompt) fprintf(stderr,"For help, enter: '?'\n");
|
||||||
|
|
||||||
|
|
||||||
|
/* Read and process commands a line at a time. */
|
||||||
|
while (1) {
|
||||||
|
if (prompt) fputs(prompt,stdout);
|
||||||
|
if (! fgets(cmdline, MAX_LINE, stdin)) break;
|
||||||
|
|
||||||
|
/* Find beginning of command word */
|
||||||
|
cmdp = cmdline;
|
||||||
|
while (isspace(*cmdp)) cmdp++;
|
||||||
|
|
||||||
|
/* find beginning of args */
|
||||||
|
argp = cmdp;
|
||||||
|
while (*argp && !isspace(*argp)) argp++;
|
||||||
|
while (isspace(*argp) || *argp=='=') argp++;
|
||||||
|
|
||||||
|
switch (*cmdp) {
|
||||||
|
|
||||||
|
case '\0': /* blank line */
|
||||||
|
case '#': /* line comment */
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '?': case 'h': case 'H':
|
||||||
|
help();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '1': /* set partition entry */
|
||||||
|
case '2': case '3': case '4':
|
||||||
|
argp = setPartition(cmdp, argp);
|
||||||
|
if (argp) { /* arg list error */
|
||||||
|
fprintf(stderr,BadArg,argp);
|
||||||
|
fprintf(stderr,h_1);
|
||||||
|
fprintf(stderr,h_2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
bufmod = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'a': case 'A': /* activate partition */
|
||||||
|
argp = makeActive(argp);
|
||||||
|
if (argp) {
|
||||||
|
fprintf(stderr,BadArg,argp);
|
||||||
|
fprintf(stderr,h_a);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
bufmod = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'g': case 'G': /* set disk parameters (Geometry) */
|
||||||
|
argp = setGeometry(argp);
|
||||||
|
if (argp) { /* arg list error */
|
||||||
|
fprintf(stderr,BadArg,argp);
|
||||||
|
fprintf(stderr,h_g);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'i': case 'I': /* List known ID numbers */
|
||||||
|
printIDs();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'l': case 'L': /* List the partition table */
|
||||||
|
listPTable();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'q': case 'Q': /* Quit */
|
||||||
|
if (bufmod && (cmdp[1] != '!')) {
|
||||||
|
fprintf(stderr,"\007%s%s\n", WarnNotSaved,
|
||||||
|
"Use 'wq' or 'q!' (enter ? for help).");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
exit(0);
|
||||||
|
/*NOTREACHED*/
|
||||||
|
|
||||||
|
case 'r': case 'R': /* read from device or file */
|
||||||
|
if (sscanf(argp,"%80s",filename) == 1) {
|
||||||
|
/* Arg specified, read from filename */
|
||||||
|
if (getFile(filename, buffer, SECSIZE) < 0)
|
||||||
|
fprintf(stderr,"%s: read failed\n", filename);
|
||||||
|
bufmod = 1;
|
||||||
|
} else {
|
||||||
|
/* No arg, use device. */
|
||||||
|
if (getBBlk(devname, buffer) < 0)
|
||||||
|
fprintf(stderr,"%s: read failed\n", devname);
|
||||||
|
bufmod = 0;
|
||||||
|
}
|
||||||
|
checkValidity();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'w': case 'W': /* Write to file or device */
|
||||||
|
if (sscanf(argp,"%80s",filename) == 1) {
|
||||||
|
/* Arg specified, write to filename */
|
||||||
|
if (putFile(filename, buffer, SECSIZE) < 0)
|
||||||
|
fprintf(stderr, "%s: write failed\n", filename);
|
||||||
|
} else { /* No arg, use device. */
|
||||||
|
if (putBBlk(devname, buffer) < 0)
|
||||||
|
fprintf(stderr, "%s: write failed\n", devname);
|
||||||
|
bufmod = 0;
|
||||||
|
}
|
||||||
|
if (cmdp[1] == 'q' || cmdp[1] == 'Q') exit(0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
fprintf(stderr,"'%c': unrecognized. Enter '?' for help.\n", *cmdp);
|
||||||
|
break;
|
||||||
|
|
||||||
|
} /* switch */
|
||||||
|
} /* while */
|
||||||
|
if (bufmod) fprintf(stderr, WarnNotSaved);
|
||||||
|
exit(0);
|
||||||
|
} /* main */
|
||||||
|
|
||||||
|
|
||||||
|
/* Check for valid boot block (magic number in last two bytes).
|
||||||
|
* Also, check for presence of partition name table.
|
||||||
|
*/
|
||||||
|
void checkValidity()
|
||||||
|
{
|
||||||
|
/* Check the magic number. */
|
||||||
|
if ((buffer[MAGIC_LOC] & 0xFF) != MAGIC_0 ||
|
||||||
|
(buffer[MAGIC_LOC+1] & 0xFF) != MAGIC_1 ) {
|
||||||
|
/* The boot sector is not valid -- Fix it. */
|
||||||
|
buffer[MAGIC_LOC] = MAGIC_0;
|
||||||
|
buffer[MAGIC_LOC+1] = MAGIC_1;
|
||||||
|
bufmod = 1;
|
||||||
|
fprintf(stderr,
|
||||||
|
"\n\tWarning: The boot sector has an invalid magic number.\n\
|
||||||
|
\tThe magic number has been fixed, but the other contents\n\
|
||||||
|
\tare probably garbage. Initialize using the command:\n\
|
||||||
|
\t\tR boot-program-file (i.e. bootmenu.bin)\n\
|
||||||
|
\tthen set each partition entry if necessary.\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Does it use a name table (for a boot menu)?
|
||||||
|
* My boot program does, and can be identified by
|
||||||
|
* finding my name in a particular (unused) area.
|
||||||
|
*/
|
||||||
|
useNTable = ( buffer[LOC_GWR] == (char)0x3A ); /* Saul */
|
||||||
|
/* useNTable = !strcmp(&buffer[LOC_GWR], "Gordon W. Ross"); Saul */
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
char * setPartition(cmdp,argp) /* return string on error */
|
||||||
|
char *cmdp,*argp;
|
||||||
|
{
|
||||||
|
struct part *pp; /* partition entry */
|
||||||
|
char * np; /* name table pointer */
|
||||||
|
char tmpname[20];
|
||||||
|
char * newname = tmpname; /* name field */
|
||||||
|
int index; /* partition index (0..3) */
|
||||||
|
uint id; /* ID code (see syscodes.c) */
|
||||||
|
uint first,last; /* user supplied cylinders */
|
||||||
|
uint c,h,s; /* working cyl,head,sect, */
|
||||||
|
int i; /* returned by sscanf */
|
||||||
|
ulong lsbeg, lslen; /* logical begin, length */
|
||||||
|
|
||||||
|
/* Value check the index */
|
||||||
|
index = *cmdp - '1';
|
||||||
|
if (index < 0 || index > 3)
|
||||||
|
return("index");
|
||||||
|
pp = (struct part *) &buffer[LOC_PT + index * 16];
|
||||||
|
np = &buffer[LOC_NT + index * NT_ENTRY_SIZE]; /* Saul */
|
||||||
|
/* np = &buffer[LOC_NT + index * 8]; Saul */
|
||||||
|
|
||||||
|
/* Read System ID */
|
||||||
|
if ((i=sscanf(argp,"%d%d%d%s", &id, &first, &last, newname)) < 1)
|
||||||
|
return("id");
|
||||||
|
|
||||||
|
/* If ID==0, just clear out the entry and return. */
|
||||||
|
if (id == 0) {
|
||||||
|
strncpy( (char *) pp, "", 16);
|
||||||
|
if (useNTable) strncpy( np, "", NT_ENTRY_SIZE); /* Saul */
|
||||||
|
/* if (useNTable) strncpy( np, "", 8); Saul */
|
||||||
|
return((char *)0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Read first and last cylinder */
|
||||||
|
if (i < 3)
|
||||||
|
return("first last (missing)");
|
||||||
|
|
||||||
|
/* Reasonable start,end cylinder numbers? */
|
||||||
|
if (first > last) return("first > last");
|
||||||
|
if (first > 1023) return("first > 1023");
|
||||||
|
if (last >= cyls) return("last >= cyls");
|
||||||
|
|
||||||
|
/* Get (optional) system name. */
|
||||||
|
if (i == 3) { /* no name given, use default */
|
||||||
|
newname = nameID(id);
|
||||||
|
}
|
||||||
|
else useNTable = 1;
|
||||||
|
|
||||||
|
/* Set the ID and name. */
|
||||||
|
pp->sysid = id;
|
||||||
|
if (useNTable) {
|
||||||
|
strncpy(np, newname, NT_ENTRY_SIZE); /* Saul */
|
||||||
|
/* strncpy(np, newname, 8); Saul */
|
||||||
|
/* strcpy(&buffer[LOC_GWR], "Gordon W. Ross"); Saul */
|
||||||
|
buffer[LOC_GWR] = (char)0x3A; /* Saul */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* set beginning c,h,s */
|
||||||
|
c = first;
|
||||||
|
/* if c == 0, head == 1 (reserve track 0) */
|
||||||
|
h = (first) ? 0 : 1;
|
||||||
|
s = 1;
|
||||||
|
pp->b_cyl = c & 0xFF;
|
||||||
|
pp->b_head = h;
|
||||||
|
pp->b_sec = s | ((c >> 2) & 0xC0);
|
||||||
|
/* Set the logical sector begin field */
|
||||||
|
lsbeg = lslen = chs2long(c,h,s); /* using lslen as temp. */
|
||||||
|
/* pp->lsBeg[0] = lslen & 0xff; lslen >>= 8;
|
||||||
|
pp->lsBeg[1] = lslen & 0xff; lslen >>= 8;
|
||||||
|
pp->lsBeg[2] = lslen & 0xff; lslen >>= 8;
|
||||||
|
pp->lsBeg[3] = lslen & 0xff; lslen >>= 8; Saul */
|
||||||
|
pp->lsBeg = lslen; /* Saul */
|
||||||
|
|
||||||
|
/* set ending c,h,s (last may be larger than 1023) */
|
||||||
|
c = (last>1023) ? 1023 : last; /* limit c to 1023 */
|
||||||
|
h = heads - 1; s = sectors;
|
||||||
|
pp->e_cyl = c & 0xFF;
|
||||||
|
pp->e_head = h;
|
||||||
|
pp->e_sec = s | ((c >> 2) & 0xC0);
|
||||||
|
/* Set the logical sector length field (using REAL end cylinder) */
|
||||||
|
lslen = chs2long(last,h,s) + 1 - lsbeg;
|
||||||
|
/* pp->lsLen[0] = lslen & 0xff; lslen >>= 8;
|
||||||
|
pp->lsLen[1] = lslen & 0xff; lslen >>= 8;
|
||||||
|
pp->lsLen[2] = lslen & 0xff; lslen >>= 8;
|
||||||
|
pp->lsLen[3] = lslen & 0xff; lslen >>= 8; Saul */
|
||||||
|
pp->lsLen = lslen; /* Saul */
|
||||||
|
|
||||||
|
return((char *)0); /* success */
|
||||||
|
} /* setPartition() */
|
||||||
|
|
||||||
|
char * makeActive(argp) /* return error string or zero */
|
||||||
|
char *argp;
|
||||||
|
{
|
||||||
|
struct part *pp; /* partition entry */
|
||||||
|
int i,act1,act2,act3,act4,act5; /* which one becomes active */
|
||||||
|
|
||||||
|
act1=0;
|
||||||
|
act2=0;
|
||||||
|
act3=0;
|
||||||
|
act4=0;
|
||||||
|
if ((i=sscanf(argp,"%d%d%d%d%d", &act1, &act2, &act3, &act4, &act5)) < 1)
|
||||||
|
return("missing partition number");
|
||||||
|
if ( i > 4)
|
||||||
|
return("at most four partition numbers");
|
||||||
|
act1--; /* make it zero-origin */
|
||||||
|
act2--; /* make it zero-origin */
|
||||||
|
act3--; /* make it zero-origin */
|
||||||
|
act4--; /* make it zero-origin */
|
||||||
|
|
||||||
|
i=0; pp = (struct part *) &buffer[LOC_PT];
|
||||||
|
while (i<4) {
|
||||||
|
if (pp->sysid == 0 && (i == act1|| i == act2 || i == act3 || i == act4)) {
|
||||||
|
sprintf(s, "partition %d empty", i+1);
|
||||||
|
return(s);
|
||||||
|
}
|
||||||
|
i++; pp++;
|
||||||
|
}
|
||||||
|
i=0; pp -= 4;
|
||||||
|
while (i<4) {
|
||||||
|
if (i == act1|| i == act2 || i == act3 || i == act4)
|
||||||
|
pp->active = 0x80;
|
||||||
|
else
|
||||||
|
pp->active = 0;
|
||||||
|
i++; pp++;
|
||||||
|
}
|
||||||
|
return((char *)0);
|
||||||
|
}
|
||||||
|
|
||||||
|
char * setGeometry(argp) /* return string on error */
|
||||||
|
char *argp;
|
||||||
|
{
|
||||||
|
int c,h,s;
|
||||||
|
|
||||||
|
if (sscanf(argp,"%d%d%d", &c, &h, &s) < 3)
|
||||||
|
return("(missing)");
|
||||||
|
if (c<1) return("cyls");
|
||||||
|
if (h<1) return("heads");
|
||||||
|
if (s<1) return("sectors");
|
||||||
|
cyls=c; heads=h; sectors=s;
|
||||||
|
return((char *)0);
|
||||||
|
}
|
||||||
|
|
||||||
|
listPTable() /* print out partition table */
|
||||||
|
{
|
||||||
|
struct part * pp; /* partition table entry */
|
||||||
|
char *name;
|
||||||
|
int i; /* partition number */
|
||||||
|
/* int numActive=0; /* active partition [1-4], 0==none */
|
||||||
|
char Active[20]; /* active partitions [1-4], 0==none */
|
||||||
|
uint pbc,pbh,pbs; /* physical beginning c,h,s */
|
||||||
|
uint pec,peh,pes; /* physical ending c,h,s */
|
||||||
|
uint lbc,lbh,lbs; /* logical beginning c,h,s */
|
||||||
|
uint lec,leh,les; /* logical ending c,h,s */
|
||||||
|
ulong lsbeg,lslen; /* logical sectors: begin, length */
|
||||||
|
|
||||||
|
strcpy(Active, "active:");
|
||||||
|
printf("# Partition table on device: %s\n", devname);
|
||||||
|
printf("geometry %d %d %d (cyls heads sectors)\n",
|
||||||
|
cyls, heads, sectors);
|
||||||
|
/* printf("# ID First(cyl) Last(cyl) Name "); Saul */
|
||||||
|
printf("# ID First(cyl) Last(cyl) Name "); /* Saul */
|
||||||
|
printf("# start, length (sectors)\n");
|
||||||
|
|
||||||
|
for (i=0; i<4; i++) {
|
||||||
|
pp = (struct part *) &buffer[LOC_PT + i * 16];
|
||||||
|
|
||||||
|
if (pp->active) {
|
||||||
|
char s[3];
|
||||||
|
sprintf(s, " %d", i+1);
|
||||||
|
strcat(Active,s);
|
||||||
|
if (pp->active != 0x80)
|
||||||
|
fprintf(stderr, "Warning: Partition %d is active, with the illegal activity byte %d.\nCorrect with the \"A\" command.\n", i+1, pp->active);
|
||||||
|
/* if(numActive)
|
||||||
|
fprintf(stderr,"Error: multiple active partitions.\n");
|
||||||
|
else numActive = i+1; */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* physical beginning c,h,s */
|
||||||
|
pbc = pp->b_cyl & 0xff | (pp->b_sec << 2) & 0x300;
|
||||||
|
pbh = pp->b_head;
|
||||||
|
pbs = pp->b_sec & 0x3F;
|
||||||
|
|
||||||
|
/* physical ending c,h,s */
|
||||||
|
pec = pp->e_cyl & 0xff | (pp->e_sec << 2) & 0x300;
|
||||||
|
peh = pp->e_head;
|
||||||
|
pes = pp->e_sec & 0x3F;
|
||||||
|
|
||||||
|
/* compute logical beginning (c,h,s) */
|
||||||
|
/* lsbeg = ((((((pp->lsBeg[3] ) << 8 )
|
||||||
|
| pp->lsBeg[2] ) << 8 )
|
||||||
|
| pp->lsBeg[1] ) << 8 )
|
||||||
|
| pp->lsBeg[0] ; Saul */
|
||||||
|
lsbeg = pp->lsBeg; /* Saul */
|
||||||
|
long2chs(lsbeg, &lbc, &lbh, &lbs);
|
||||||
|
/* compute logical ending (c,h,s) */
|
||||||
|
/* lslen = ((((((pp->lsLen[3]) << 8 )
|
||||||
|
| pp->lsLen[2]) << 8 )
|
||||||
|
| pp->lsLen[1]) << 8 )
|
||||||
|
| pp->lsLen[0] ; Saul */
|
||||||
|
lslen = pp->lsLen; /* Saul*/
|
||||||
|
/* keep beginning <= end ... */
|
||||||
|
if (lslen > 0) long2chs(lsbeg+lslen-1, &lec, &leh, &les);
|
||||||
|
else long2chs(lsbeg, &lec, &leh, &les);
|
||||||
|
|
||||||
|
if (useNTable)
|
||||||
|
name = &buffer[LOC_NT + i * NT_ENTRY_SIZE ]; /* Saul */
|
||||||
|
/* name = &buffer[LOC_NT + i * 8]; Saul */
|
||||||
|
else
|
||||||
|
name = nameID((uint) pp->sysid);
|
||||||
|
|
||||||
|
/* show physical begin, logical end (works for cyl>1023) */
|
||||||
|
/* # ID First(cyl) Last(cyl) Name... # ... */
|
||||||
|
/* printf("%d %3d %4d %4d %-8.8s # %ld, %ld\n", Saul */
|
||||||
|
printf("%d %3d %4d %4d %-5.5s # %ld, %ld\n", /* Saul */
|
||||||
|
i+1, pp->sysid, pbc, lec, name, lsbeg, lslen );
|
||||||
|
|
||||||
|
/* That's all, for an empty partition. */
|
||||||
|
if (pp->sysid == 0) continue;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Now do some consistency checks...
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Same physical / logical beginning? */
|
||||||
|
if (pbc != lbc || pbh != lbh || pbs != lbs ) {
|
||||||
|
printf("# note: first(%d): ", i+1);
|
||||||
|
printf("phys=(%d,%d,%d) ", pbc, pbh, pbs);
|
||||||
|
printf("logical=(%d,%d,%d)\n",lbc, lbh, lbs);
|
||||||
|
}
|
||||||
|
/* Same physical / logical ending? */
|
||||||
|
if (pec != lec || peh != leh || pes != les ) {
|
||||||
|
printf("# note: last(%d): ", i+1);
|
||||||
|
printf("phys=(%d,%d,%d) ", pec, peh, pes);
|
||||||
|
printf("logical=(%d,%d,%d)\n",lec, leh, les);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Beginning on cylinder boundary? */
|
||||||
|
if (pbc == 0) { /* exception: start on head 1 */
|
||||||
|
if (pbh != 1 || pbs != 1) {
|
||||||
|
printf("# note: first(%i): ", i+1);
|
||||||
|
printf("phys=(%d,%d,%d) ", pbc, pbh, pbs);
|
||||||
|
printf("should be (%d,1,1)\n", pbc);
|
||||||
|
}
|
||||||
|
} else { /* not on cyl 0 */
|
||||||
|
if (pbh != 0 || pbs != 1) {
|
||||||
|
printf("# note: first(%i): ", i+1);
|
||||||
|
printf("phys=(%d,%d,%d) ", pbc, pbh, pbs);
|
||||||
|
printf("should be (%d,0,1)\n", pbc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ending on cylinder boundary? */
|
||||||
|
if (peh != (heads-1) || pes != sectors) {
|
||||||
|
printf("# note: last(%i): ", i+1);
|
||||||
|
printf("phys=(%d,%d,%d) ", pec, peh, pes);
|
||||||
|
printf("should be (%d,%d,%d)\n",
|
||||||
|
pec, heads-1, sectors);
|
||||||
|
}
|
||||||
|
|
||||||
|
} /* for */
|
||||||
|
if ( !Active[7] ) /* No active partitions */
|
||||||
|
strcat(Active, " 0 (none)");
|
||||||
|
strcat(Active, "\n");
|
||||||
|
printf(Active);
|
||||||
|
/* printf("active: %d %s\n", numActive,
|
||||||
|
(numActive) ? "" : "(none)"); */
|
||||||
|
} /* listPTable() */
|
||||||
|
|
||||||
|
ulong chs2long(c,h,s)
|
||||||
|
uint c,h,s;
|
||||||
|
{
|
||||||
|
ulong l;
|
||||||
|
if (s<1) s=1;
|
||||||
|
l = c; l *= heads;
|
||||||
|
l += h; l *= sectors;
|
||||||
|
l += (s - 1);
|
||||||
|
return(l);
|
||||||
|
}
|
||||||
|
|
||||||
|
long2chs(ls, c, h, s) /* convert logical sec-num to c,h,s */
|
||||||
|
ulong ls; /* Logical Sector number */
|
||||||
|
uint *c,*h,*s; /* cyl, head, sector */
|
||||||
|
{
|
||||||
|
int spc = heads * sectors;
|
||||||
|
*c = ls / spc;
|
||||||
|
ls = ls % spc;
|
||||||
|
*h = ls / sectors;
|
||||||
|
*s = ls % sectors + 1; /* sectors count from 1 */
|
||||||
|
}
|
||||||
|
|
||||||
|
char * nameID(n)
|
||||||
|
unsigned int n;
|
||||||
|
{
|
||||||
|
struct intString *is;
|
||||||
|
|
||||||
|
is = sysCodes;
|
||||||
|
while (is->i) {
|
||||||
|
if (is->i == n) return(is->s);
|
||||||
|
is++;
|
||||||
|
}
|
||||||
|
if (!n) return(is->s);
|
||||||
|
return("unknown");
|
||||||
|
}
|
||||||
|
|
||||||
|
int printIDs() /* print the known system IDs */
|
||||||
|
{
|
||||||
|
struct intString * is = sysCodes;
|
||||||
|
|
||||||
|
/* This might need to do more processing eventually, i.e.
|
||||||
|
* if (prompt) { ... do more processing ... }
|
||||||
|
*/
|
||||||
|
printf("_ID_\t__Name__ ____Description____\n");
|
||||||
|
while (is->i) {
|
||||||
|
printf("%3d\t%s\n", is->i, is->s);
|
||||||
|
is++;
|
||||||
|
}
|
||||||
|
}
|
||||||
43
images/Original/tsx-11-old/INSTALL/pfdisk/SYSCODES.C
Normal file
43
images/Original/tsx-11-old/INSTALL/pfdisk/SYSCODES.C
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
/* This file holds all knowledge of partition ID codes.
|
||||||
|
* Thanks to leendert@cs.vu.nl (Leendert van Doorn) for
|
||||||
|
* collecting most of this information.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define extern
|
||||||
|
#include "syscodes.h"
|
||||||
|
#undef extern
|
||||||
|
|
||||||
|
/* Note that my boot program menu can only use the first 8 characters
|
||||||
|
* of these names. The colon in the nineth position shows where the
|
||||||
|
* first truncated char is. (There's not much room in the bootblock!)
|
||||||
|
* changed sysCodes[] below, adding SIZE tms */
|
||||||
|
struct intString sysCodes[SIZE] = {
|
||||||
|
{ 0x01, "DOS12 :12-bit FAT" },
|
||||||
|
{ 0x02, "XENIX :root" },
|
||||||
|
{ 0x03, "XENIX :usr" },
|
||||||
|
{ 0x04, "DOS16 :16-bit FAT" },
|
||||||
|
{ 0x05, "DOSex :DOS 3.3 extended volume" },
|
||||||
|
{ 0x06, "DOSbi :DOS 4.0 large volume" },
|
||||||
|
{ 0x07, "OS/2 :OS/2 (or QNX or Adv. UNIX...)" },
|
||||||
|
{ 0x08, "AIX :file system" },
|
||||||
|
{ 0x09, "AIXbt:boot partition" },
|
||||||
|
|
||||||
|
{ 0x10, "OPUS :?" },
|
||||||
|
{ 0x40, "VENIX :Venix 80286" },
|
||||||
|
{ 0x51, "NOVEL :?" },
|
||||||
|
{ 0x52, "CPM :?" },
|
||||||
|
{ 0x63, "UNIX :System V/386" },
|
||||||
|
{ 0x64, "NOVEL :?" },
|
||||||
|
{ 0x75, "PC/IX :?" },
|
||||||
|
{ 0x80, "Minix :Minix (ver. 1.4a and earlier)" },
|
||||||
|
{ 0x81, "Minix :Minix (ver. 1.4b and later)" },
|
||||||
|
{ 0x93, "Ameba :Amoeba file system" },
|
||||||
|
{ 0x94, "Ameba :Amoeba bad block table?" },
|
||||||
|
{ 0xDB, "C.DOS :Concurrent DOS" },
|
||||||
|
|
||||||
|
/* { 0xF2, "DOS-2nd :DOS 3.3+ second partition" }, */
|
||||||
|
/* { 0xFF, "BAD-TRK :Bad track table?" }, */
|
||||||
|
|
||||||
|
/* Make sure this is last! */
|
||||||
|
{ 0, "empty" }
|
||||||
|
};
|
||||||
4
images/Original/tsx-11-old/INSTALL/pfdisk/SYSCODES.H
Normal file
4
images/Original/tsx-11-old/INSTALL/pfdisk/SYSCODES.H
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#define SIZE 40 /* added tms */
|
||||||
|
struct intString { unsigned int i; char * s; };
|
||||||
|
extern struct intString sysCodes[SIZE]; /* was sysCodes[] modified tms */
|
||||||
|
|
||||||
22
images/Original/tsx-11-old/INSTALL/pfdisk/SYSDEP.H
Normal file
22
images/Original/tsx-11-old/INSTALL/pfdisk/SYSDEP.H
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
/* communicate declarations from the files: s_*.c */
|
||||||
|
|
||||||
|
#define SECSIZE 0x200
|
||||||
|
|
||||||
|
extern int usage(); /* print a usage message */
|
||||||
|
/* (char *progname) */
|
||||||
|
|
||||||
|
extern void getGeometry(); /* determine disk parameters */
|
||||||
|
/* (char *dev, uint *cyls, uint *heads, uint *sectors) */
|
||||||
|
|
||||||
|
extern int getFile(); /* open, read, close, return(num-read) */
|
||||||
|
/* (char *name, char *buf, int len) */
|
||||||
|
|
||||||
|
extern int putFile(); /* open, write, close, return(num-writen) */
|
||||||
|
/* (char *name, char *buf, int len) */
|
||||||
|
|
||||||
|
extern int getBBlk(); /* open, read, close, return(num-read) */
|
||||||
|
/* (char *dev, char *buf) */
|
||||||
|
|
||||||
|
extern int putBBlk(); /* open, write, close, return(num-writen) */
|
||||||
|
/* (char *dev, char *buf) */
|
||||||
|
|
||||||
163
images/Original/tsx-11-old/INSTALL/pfdisk/S_MSDOS.C
Normal file
163
images/Original/tsx-11-old/INSTALL/pfdisk/S_MSDOS.C
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
/* This file contains system-specific functions for MS-DOS.
|
||||||
|
* The program pfdisk.c calls these routines.
|
||||||
|
*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <dos.h>
|
||||||
|
|
||||||
|
#define extern
|
||||||
|
#include "sysdep.h"
|
||||||
|
#undef extern
|
||||||
|
|
||||||
|
int usage(prog) /* print a usage message */
|
||||||
|
char *prog; /* program name */
|
||||||
|
{
|
||||||
|
fprintf(stderr,"Usage: %s <disk>\n", prog);
|
||||||
|
fprintf(stderr,"\twhere <disk> is a digit [0-9]\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
void getGeometry(name, c, h, s)
|
||||||
|
char *name; /* device name */
|
||||||
|
unsigned *c,*h,*s; /* cyls, heads, sectors */
|
||||||
|
{
|
||||||
|
int dev; /* hard disk number */
|
||||||
|
union REGS regs;
|
||||||
|
struct SREGS sregs;
|
||||||
|
|
||||||
|
if (name[0] < '0' ||
|
||||||
|
name[0] > '9' ||
|
||||||
|
name[1] != 0 )
|
||||||
|
{
|
||||||
|
fprintf(stderr,"%s: device name must be a digit\n", name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
dev = (name[0] - '0');
|
||||||
|
|
||||||
|
regs.h.ah = 8; /* get param. */
|
||||||
|
regs.h.dl = dev | 0x80;
|
||||||
|
|
||||||
|
int86x(0x13,®s,®s,&sregs);
|
||||||
|
|
||||||
|
/* Are that many drives responding? */
|
||||||
|
if (regs.h.dl <= dev ) {
|
||||||
|
fprintf(stderr,"%s: drive not found\n", name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (regs.x.cflag) {
|
||||||
|
fprintf(stderr,"%s: can't get disk parameters\n", name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
*c = ((((int) regs.h.cl << 2) & 0x300) | regs.h.ch) + 1;
|
||||||
|
*h = regs.h.dh + 1;
|
||||||
|
*s = regs.h.cl & 0x3F;
|
||||||
|
}
|
||||||
|
|
||||||
|
int getFile(name, buf, len) /* read file into buffer */
|
||||||
|
char *name, *buf;
|
||||||
|
int len;
|
||||||
|
{ /* (open, read, close) */
|
||||||
|
int devfd, retval;
|
||||||
|
|
||||||
|
devfd = open(name, O_RDONLY|O_BINARY, 0);
|
||||||
|
if (devfd < 0) {
|
||||||
|
fprintf(stderr,"%s: can't open for reading\n", name);
|
||||||
|
return(devfd);
|
||||||
|
}
|
||||||
|
retval = read(devfd, buf, len);
|
||||||
|
if (retval < 0)
|
||||||
|
fprintf(stderr,"%s: read failed\n", name);
|
||||||
|
close(devfd);
|
||||||
|
return(retval);
|
||||||
|
}
|
||||||
|
|
||||||
|
int putFile(name, buf, len) /* write buffer to file */
|
||||||
|
char *name, *buf;
|
||||||
|
int len;
|
||||||
|
{ /* (open, write, close) */
|
||||||
|
int devfd, retval;
|
||||||
|
|
||||||
|
devfd = open(name,
|
||||||
|
O_WRONLY|O_CREAT|O_BINARY,
|
||||||
|
S_IREAD|S_IWRITE ); /* stupid DOS... */
|
||||||
|
if (devfd < 0) {
|
||||||
|
fprintf(stderr,"%s: can't open for writing\n", name);
|
||||||
|
return(devfd);
|
||||||
|
}
|
||||||
|
retval = write(devfd, buf, len);
|
||||||
|
if (retval < 0)
|
||||||
|
fprintf(stderr,"%s: write failed\n", name);
|
||||||
|
close(devfd);
|
||||||
|
return(retval);
|
||||||
|
}
|
||||||
|
|
||||||
|
int getBBlk(name, buf) /* read boot block into buffer */
|
||||||
|
char *name, *buf;
|
||||||
|
{ /* BIOS absolute disk read */
|
||||||
|
int dev;
|
||||||
|
union REGS regs;
|
||||||
|
struct SREGS sregs;
|
||||||
|
|
||||||
|
if (name[0] < '0' ||
|
||||||
|
name[0] > '9' ||
|
||||||
|
name[1] != 0 )
|
||||||
|
{
|
||||||
|
fprintf(stderr,"%s: device name must be a digit\n",name);
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
dev = (name[0] - '0');
|
||||||
|
|
||||||
|
segread(&sregs); /* get ds */
|
||||||
|
sregs.es = sregs.ds; /* buffer address */
|
||||||
|
regs.x.bx = (int) buf;
|
||||||
|
|
||||||
|
regs.h.ah = 2; /* read */
|
||||||
|
regs.h.al = 1; /* sector count */
|
||||||
|
regs.h.ch = 0; /* track */
|
||||||
|
regs.h.cl = 1; /* start sector */
|
||||||
|
regs.h.dh = 0; /* head */
|
||||||
|
regs.h.dl = dev|0x80; /* drive */
|
||||||
|
|
||||||
|
int86x(0x13,®s,®s,&sregs);
|
||||||
|
if (regs.x.cflag) {
|
||||||
|
fprintf(stderr,"%s: read failed\n", name);
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
return(SECSIZE);
|
||||||
|
}
|
||||||
|
|
||||||
|
int putBBlk(name, buf) /* write buffer to boot block */
|
||||||
|
char *name, *buf;
|
||||||
|
{ /* BIOS absolute disk write */
|
||||||
|
int dev;
|
||||||
|
union REGS regs;
|
||||||
|
struct SREGS sregs;
|
||||||
|
|
||||||
|
if (name[0] < '0' ||
|
||||||
|
name[0] > '9' ||
|
||||||
|
name[1] != 0 )
|
||||||
|
{
|
||||||
|
fprintf(stderr,"%s: device name must be a digit\n", name);
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
dev = (name[0] - '0');
|
||||||
|
|
||||||
|
segread(&sregs); /* get ds */
|
||||||
|
sregs.es = sregs.ds; /* buffer address */
|
||||||
|
regs.x.bx = (int) buf;
|
||||||
|
|
||||||
|
regs.h.ah = 3; /* write */
|
||||||
|
regs.h.al = 1; /* sector count */
|
||||||
|
regs.h.ch = 0; /* track */
|
||||||
|
regs.h.cl = 1; /* start sector */
|
||||||
|
regs.h.dh = 0; /* head */
|
||||||
|
regs.h.dl = dev|0x80; /* drive */
|
||||||
|
|
||||||
|
int86x(0x13,®s,®s,&sregs);
|
||||||
|
if (regs.x.cflag) {
|
||||||
|
fprintf(stderr,"%s: write failed\n",name);
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
return(SECSIZE);
|
||||||
|
}
|
||||||
BIN
images/Original/tsx-11-old/INSTALL/pfdisktc.zip
Normal file
BIN
images/Original/tsx-11-old/INSTALL/pfdisktc.zip
Normal file
Binary file not shown.
182
images/Original/tsx-11-old/INSTALL/rawrite.c
Normal file
182
images/Original/tsx-11-old/INSTALL/rawrite.c
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
/*
|
||||||
|
rawrite.c Write a binary image to a 360K diskette.
|
||||||
|
By Mark Becker
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
MS-DOS prompt> RAWRITE
|
||||||
|
|
||||||
|
And follow the prompts.
|
||||||
|
|
||||||
|
History
|
||||||
|
-------
|
||||||
|
|
||||||
|
1.0 - Initial release
|
||||||
|
1.1 - Beta test (fixing bugs) 4/5/91
|
||||||
|
Some BIOS's don't like full-track writes.
|
||||||
|
1.101 - Last beta release. 4/8/91
|
||||||
|
Fixed BIOS full-track write by only
|
||||||
|
writing 3 sectors at a time.
|
||||||
|
1.2 - Final code and documentation clean-ups. 4/9/91
|
||||||
|
*/
|
||||||
|
#include <alloc.h>
|
||||||
|
#include <bios.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
#include <dir.h>
|
||||||
|
#include <dos.h>
|
||||||
|
#include <io.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#define FALSE 0
|
||||||
|
#define TRUE (!FALSE)
|
||||||
|
|
||||||
|
#define SECTORSIZE 512
|
||||||
|
|
||||||
|
#define RESET 0
|
||||||
|
#define LAST 1
|
||||||
|
#define READ 2
|
||||||
|
#define WRITE 3
|
||||||
|
#define VERIFY 4
|
||||||
|
#define FORMAT 5
|
||||||
|
|
||||||
|
int done;
|
||||||
|
|
||||||
|
/*
|
||||||
|
Catch ^C and ^Break.
|
||||||
|
*/
|
||||||
|
int handler(void)
|
||||||
|
{
|
||||||
|
done = TRUE;
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
void msg(char (*s))
|
||||||
|
{
|
||||||
|
fprintf(stderr, "%s\n", s);
|
||||||
|
_exit(1);
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
Identify the error code with a real error message.
|
||||||
|
*/
|
||||||
|
void Error(int (status))
|
||||||
|
{
|
||||||
|
switch (status) {
|
||||||
|
case 0x00: msg("Operation Successful"); break;
|
||||||
|
case 0x01: msg("Bad command"); break;
|
||||||
|
case 0x02: msg("Address mark not found"); break;
|
||||||
|
case 0x03: msg("Attempt to write on write-protected disk"); break;
|
||||||
|
case 0x04: msg("Sector not found"); break;
|
||||||
|
case 0x05: msg("Reset failed (hard disk)"); break;
|
||||||
|
case 0x06: msg("Disk changed since last operation"); break;
|
||||||
|
case 0x07: msg("Drive parameter activity failed"); break;
|
||||||
|
case 0x08: msg("DMA overrun"); break;
|
||||||
|
case 0x09: msg("Attempt to DMA across 64K boundary"); break;
|
||||||
|
case 0x0A: msg("Bad sector detected"); break;
|
||||||
|
case 0x0B: msg("Bad track detected"); break;
|
||||||
|
case 0x0C: msg("Unsupported track"); break;
|
||||||
|
case 0x10: msg("Bad CRC/ECC on disk read"); break;
|
||||||
|
case 0x11: msg("CRC/ECC corrected data error"); break;
|
||||||
|
case 0x20: msg("Controller has failed"); break;
|
||||||
|
case 0x40: msg("Seek operation failed"); break;
|
||||||
|
case 0x80: msg("Attachment failed to respond"); break;
|
||||||
|
case 0xAA: msg("Drive not ready (hard disk only"); break;
|
||||||
|
case 0xBB: msg("Undefined error occurred (hard disk only)"); break;
|
||||||
|
case 0xCC: msg("Write fault occurred"); break;
|
||||||
|
case 0xE0: msg("Status error"); break;
|
||||||
|
case 0xFF: msg("Sense operation failed"); break;
|
||||||
|
}
|
||||||
|
_exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Identify what kind of diskette is installed in the specified drive.
|
||||||
|
Return the number of sectors per track assumed as follows:
|
||||||
|
9 - 360 K and 720 K 5.25".
|
||||||
|
15 - 1.2 M HD 5.25".
|
||||||
|
18 - 1.44 M 3.5".
|
||||||
|
*/
|
||||||
|
int nsects(int (drive))
|
||||||
|
{
|
||||||
|
static int nsect[] = {18, 15, 9};
|
||||||
|
|
||||||
|
char *buffer;
|
||||||
|
int i, status;
|
||||||
|
/*
|
||||||
|
Read sector 1, head 0, track 0 to get the BIOS running.
|
||||||
|
*/
|
||||||
|
buffer = (char *)malloc(SECTORSIZE);
|
||||||
|
biosdisk(RESET, drive, 0, 0, 0, 0, buffer);
|
||||||
|
status = biosdisk(READ, drive, 0, 10, 1, 1, buffer);
|
||||||
|
if (status == 0x06) /* Door signal change? */
|
||||||
|
status = biosdisk(READ, drive, 0, 0, 1, 1, buffer);
|
||||||
|
|
||||||
|
for (i=0; i < sizeof(nsect)/sizeof(int); ++i) {
|
||||||
|
biosdisk(RESET, drive, 0, 0, 0, 0, buffer);
|
||||||
|
status = biosdisk(READ, drive, 0, 0, nsect[i], 1, buffer);
|
||||||
|
if (status == 0x06)
|
||||||
|
status = biosdisk(READ, drive, 0, 0, nsect[i], 1, buffer);
|
||||||
|
if (status == 0x00) break;
|
||||||
|
}
|
||||||
|
if (i == sizeof(nsect)/sizeof(int)) {
|
||||||
|
msg("Can't figure out how many sectors/track for this diskette.");
|
||||||
|
}
|
||||||
|
free(buffer);
|
||||||
|
return(nsect[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
void main(void)
|
||||||
|
{
|
||||||
|
char fname[MAXPATH];
|
||||||
|
char *buffer, *pbuf;
|
||||||
|
int count, fdin, drive, head, track, status, spt, buflength, ns;
|
||||||
|
|
||||||
|
puts("RaWrite 1.2 - Write disk file to raw floppy diskette\n");
|
||||||
|
ctrlbrk(handler);
|
||||||
|
printf("Enter source file name: ");
|
||||||
|
scanf("%s", fname);
|
||||||
|
_fmode = O_BINARY;
|
||||||
|
if ((fdin = open(fname, O_RDONLY)) <= 0) {
|
||||||
|
perror(fname);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("Enter destination drive: ");
|
||||||
|
scanf("%s", fname);
|
||||||
|
drive = fname[0];
|
||||||
|
drive = (islower(drive) ? toupper(drive) : drive) - 'A';
|
||||||
|
printf("Please insert a formatted diskette into ");
|
||||||
|
printf("drive %c: and press -ENTER- :", drive + 'A');
|
||||||
|
while (bioskey(1) == 0) ; /* Wait... */
|
||||||
|
if ((bioskey(0) & 0x7F) == 3) exit(1); /* Check for ^C */
|
||||||
|
putchar('\n');
|
||||||
|
done = FALSE;
|
||||||
|
/*
|
||||||
|
* Determine number of sectors per track and allocate buffers.
|
||||||
|
*/
|
||||||
|
spt = nsects(drive);
|
||||||
|
buflength = spt * SECTORSIZE;
|
||||||
|
buffer = (char *)malloc(buflength);
|
||||||
|
printf("Number of sectors per track for this disk is %d\n", spt);
|
||||||
|
printf("Writing image to drive %c:. Press ^C to abort.\n", drive+'A');
|
||||||
|
/*
|
||||||
|
* Start writing data to diskette until there is no more data to write.
|
||||||
|
*/
|
||||||
|
head = track = 0;
|
||||||
|
while ((count = read(fdin, buffer, buflength)) > 0 && !done) {
|
||||||
|
pbuf = buffer;
|
||||||
|
for (ns = 1; count > 0 && !done; ns+=3) {
|
||||||
|
printf("Track: %02d Head: %2d Sector: %2d\r", track, head, ns);
|
||||||
|
status = biosdisk(WRITE, drive, head, track, ns, 3, pbuf);
|
||||||
|
|
||||||
|
if (status != 0) Error(status);
|
||||||
|
|
||||||
|
count -= (3*SECTORSIZE);
|
||||||
|
pbuf += (3*SECTORSIZE);
|
||||||
|
}
|
||||||
|
if ((head = (head + 1) & 1) == 0) ++track;
|
||||||
|
}
|
||||||
|
if (eof(fdin)) {
|
||||||
|
printf("\nDone.\n");
|
||||||
|
biosdisk(2, drive, 0, 0, 1, 1, buffer); /* Retract head */
|
||||||
|
}
|
||||||
|
} /* end main */
|
||||||
86
images/Original/tsx-11-old/INSTALL/rawrite.doc
Normal file
86
images/Original/tsx-11-old/INSTALL/rawrite.doc
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
RaWrite 1.2
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Purpose
|
||||||
|
-------
|
||||||
|
|
||||||
|
Write a disk image file to a 360K floppy disk.
|
||||||
|
|
||||||
|
|
||||||
|
Equipment/Software Requirements
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
PC/XT/AT with a floppy disk drive capable of reading and writing a 360K
|
||||||
|
diskette.
|
||||||
|
|
||||||
|
This program uses generic low-level BIOS diskette read/write functions. It
|
||||||
|
should be portable to nearly every PC in existance. PS/2's should be able
|
||||||
|
to run RawWrite but this has not been tested.
|
||||||
|
|
||||||
|
|
||||||
|
CAVEAT
|
||||||
|
------
|
||||||
|
|
||||||
|
This program will write ANY disk file to a floppy, overwriting any previous
|
||||||
|
information that may have been present. If you wish to re-use a diskette
|
||||||
|
under MS-DOS thats been written to by RawWrite then the disk will need to be
|
||||||
|
reformatted; all MS-DOS specific information will have been erased.
|
||||||
|
|
||||||
|
|
||||||
|
How to Compile
|
||||||
|
--------------
|
||||||
|
|
||||||
|
TCC rawrite.c
|
||||||
|
|
||||||
|
The source code is specific to Borland International's Turbo C 2.01 and has
|
||||||
|
been tested in all memory models.
|
||||||
|
|
||||||
|
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
C> RAWRITE
|
||||||
|
|
||||||
|
And follow the prompts. All arguments are case-insensitive.
|
||||||
|
|
||||||
|
A sample run is shown below. The disk file being written, in this example,
|
||||||
|
is named DEMODISK and the destination - where the image is being written -
|
||||||
|
is the B: drive.
|
||||||
|
|
||||||
|
This program may be aborted at any time by typing ^C.
|
||||||
|
|
||||||
|
|
||||||
|
Sample Run
|
||||||
|
----------
|
||||||
|
|
||||||
|
C> RAWRITE
|
||||||
|
RaWrite 1.2 - Write disk file to raw floppy diskette
|
||||||
|
|
||||||
|
Enter source file name: DEMODISK
|
||||||
|
Enter destination drive: B
|
||||||
|
Please insert a formatted 360K diskette into drive B: and press -ENTER- :
|
||||||
|
Writing image to drive B:
|
||||||
|
|
||||||
|
|
||||||
|
Errors
|
||||||
|
------
|
||||||
|
|
||||||
|
RaWrite attempts to determine if the diskette is a 360K, 720K, 1.2M, or
|
||||||
|
1.44M diskette by reading specific sectors. If the inserted diskette is not
|
||||||
|
one of the mentioned types, then RaWrite will abort with a short error
|
||||||
|
message.
|
||||||
|
|
||||||
|
Errors such as write protect, door open, bad disk, bad sector, etc. cause a
|
||||||
|
program abort with a short error message.
|
||||||
|
|
||||||
|
|
||||||
|
History
|
||||||
|
-------
|
||||||
|
|
||||||
|
1.0 - Initial release
|
||||||
|
1.1 - Beta test (fixing bugs) 4/5/91
|
||||||
|
Some BIOS's don't like full-track writes.
|
||||||
|
1.101 - Last beta release. 4/8/91
|
||||||
|
Fixed BIOS full-track write by only only
|
||||||
|
writing 3 sectors at a time.
|
||||||
|
1.2 - Final code and documentation clean-ups. 4/9/91
|
||||||
16
images/Original/tsx-11-old/README.WORLD
Normal file
16
images/Original/tsx-11-old/README.WORLD
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
|
||||||
|
These are the binaries which we believe will get Linux up on most x86
|
||||||
|
systems. We don't know much about Linux, tell us if we are wrong.
|
||||||
|
|
||||||
|
For full sources and other linux files ftp to tsx-11.mit.edu,
|
||||||
|
sub-directory pub/linux/.
|
||||||
|
|
||||||
|
The two subdirectories here are images/ and INSTALL/, see the file
|
||||||
|
README.tsx-11.mit.edu (here) for a description. The images/ directory
|
||||||
|
has a zip file with the other files in it (you can use "unzip -l
|
||||||
|
images.zip" to list the files in that zip here on World if you are a
|
||||||
|
login shell.)
|
||||||
|
|
||||||
|
-yfnsm
|
||||||
|
|
||||||
|
|
||||||
179
images/Original/tsx-11-old/README.tsx-11.mit.edu
Normal file
179
images/Original/tsx-11-old/README.tsx-11.mit.edu
Normal file
@@ -0,0 +1,179 @@
|
|||||||
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Linux -- The free Minix like Un*x clone is here!
|
||||||
|
|
||||||
|
Yes, we have Linux 0.97! (the latest and greatest!)
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Welcome to TSX-11's Linux FTP site!
|
||||||
|
|
||||||
|
Directory structure:
|
||||||
|
|
||||||
|
docs documentation (such as it is)
|
||||||
|
|
||||||
|
INSTALL contains various programs useful for getting
|
||||||
|
Linux up and running.
|
||||||
|
|
||||||
|
SCSI contains the SCSI patches from drew@cs.colorado.edu,
|
||||||
|
including a bootable .12 kernel for those with
|
||||||
|
seagate adaptors only.
|
||||||
|
|
||||||
|
images contains the initial boot disk and root disk images
|
||||||
|
|
||||||
|
binaries various binaries for Linux
|
||||||
|
(use the tar and compress programs found on the
|
||||||
|
root disk to unpack these)
|
||||||
|
|
||||||
|
sources sources to Linux, broken down by whether system
|
||||||
|
sources (including libc.a), sources to system
|
||||||
|
programs, sources to usr.bin, and library sources.
|
||||||
|
|
||||||
|
patches contains patches to Linux (typically, but not always
|
||||||
|
patches to the system sources, such as patches to
|
||||||
|
add new features to the kernel).
|
||||||
|
|
||||||
|
ports contains patches to make other programs compile on
|
||||||
|
a Linux system
|
||||||
|
|
||||||
|
mail-archive contains an archive of the Linux-Activsts mailing
|
||||||
|
list
|
||||||
|
|
||||||
|
info contains various useful informational files which
|
||||||
|
Linux hackers may find useful
|
||||||
|
|
||||||
|
|
||||||
|
TSX-11 does not yet have a mail server --- I'm working on it....
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
To upload stuff --- please use the directory /incoming. It is
|
||||||
|
world-writable, but not world-readable, so you (or anybody else) will
|
||||||
|
not be able to see stuff which you drop there until I move it to the
|
||||||
|
proper place the directory hierarchy.
|
||||||
|
|
||||||
|
Please send mail to ftp-linux@tsx-11.mit.edu after you leave something there,
|
||||||
|
so I can pick it up as soon as possible.
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
The email address for digests of alt.os.linux (soon comp.os.linux?) is
|
||||||
|
|
||||||
|
linux-activists@news-digests.mit.edu
|
||||||
|
|
||||||
|
Anything mailed to this address will be posted to the appropriate
|
||||||
|
newsgroup.
|
||||||
|
|
||||||
|
All administrative requests (subscriptions/unsubscriptions/etc) MUST
|
||||||
|
go to the administrative address:
|
||||||
|
|
||||||
|
linux-activists-request@news-digests.mit.edu
|
||||||
|
|
||||||
|
See below for what happens if you ignore this address :-)
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Linux mailing list (is _MANUALLY_ kept) addresses:
|
||||||
|
|
||||||
|
For subscribing and unsubscribing:
|
||||||
|
|
||||||
|
linux-activists-request@niksula.hut.fi
|
||||||
|
|
||||||
|
For mailing real articles:
|
||||||
|
|
||||||
|
linux-activists@niksula.hut.fi
|
||||||
|
|
||||||
|
Please, do NOT send subscribe/unsubscribe mails to
|
||||||
|
linus-activist@niksula.hut.fi, or I and other people
|
||||||
|
will *flame* you, and you'll notice, how your mailbox
|
||||||
|
filled up ;-). You even might get dozens of copies
|
||||||
|
of netiquette from net users ...
|
||||||
|
|
||||||
|
How to find out, who's on the list ?
|
||||||
|
|
||||||
|
Just "telnet joker.cs.hut.fi 25" ('25' or 'smtp')
|
||||||
|
tell our smtp, you want to "vrfy linux-activists", then
|
||||||
|
you have the list of users. Say "quit" to quit.
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
current status can be obtained by using "finger torvalds@kruuna.helsinki.fi"
|
||||||
|
|
||||||
|
Here's a sample entry:
|
||||||
|
[kruuna.helsinki.fi]
|
||||||
|
Login name: torvalds In real life: Linus Benedict Torvalds
|
||||||
|
Directory: /home/kruuna/tkol/torvalds Shell: /bin/tcsh
|
||||||
|
Last login Wed Mar 18 23:28 on ttyp5 from klaava
|
||||||
|
New mail received Thu Mar 19 05:45:04 1992;
|
||||||
|
unread since Wed Mar 18 23:51:01 1992
|
||||||
|
Plan:
|
||||||
|
|
||||||
|
Free UNIX for the 386
|
||||||
|
|
||||||
|
The current version of linux is 0.95a: it was released March 17th, and
|
||||||
|
is pretty close to what 1.0 will be : it needs some testing, but should
|
||||||
|
be good enough to use for many things. 0.95a contains mainly bug-fixes
|
||||||
|
to 0.95.
|
||||||
|
|
||||||
|
NOTE! NOTE! NOTE! Plain 0.95 had problems with some harddisks that
|
||||||
|
worked ok under 0.12, as well as a few bad bugs. These have been
|
||||||
|
corrected (hopefully), but make sure you have the "a" version: the bugs
|
||||||
|
in plain 0.95 can crash your machine rather badly.
|
||||||
|
|
||||||
|
Linux can be gotten by anonymous ftp from 'nic.funet.fi' (128.214.6.100)
|
||||||
|
in the directory '/pub/OS/Linux'. This directory structure contains all
|
||||||
|
the linux OS- and library-sources, and enough binaries to get going. To
|
||||||
|
install linux you still need to know something about unices: it's
|
||||||
|
relatively straightforward to install, but the documentation sucks raw
|
||||||
|
eggs, and people with no previous unix experience are going to get very
|
||||||
|
confused.
|
||||||
|
|
||||||
|
Linux still requires an AT-compatible disk to be useful: there are
|
||||||
|
patches for a SCSI driver (currently ST-0[1|2]), but it hasn't made it
|
||||||
|
into the "official" kernel yet. (The patches are against the 0.12
|
||||||
|
version, but they should work with little changes on 0.95)
|
||||||
|
|
||||||
|
There are now a couple of other sites containing linux, as people have
|
||||||
|
had difficulties with connecting to nic. The sites are:
|
||||||
|
Tupac-Amaru.Informatik.RWTH-Aachen.DE (137.226.112.31):
|
||||||
|
directory /pub/msdos/replace
|
||||||
|
tsx-11.mit.edu (18.172.1.2):
|
||||||
|
directory /pub/linux
|
||||||
|
|
||||||
|
(and many additional sites: there are now sites in the uk, japan etc
|
||||||
|
that carry linux, but I have lost count)
|
||||||
|
|
||||||
|
There is also a mailing list set up 'Linux-activists@niksula.hut.fi'.
|
||||||
|
To join, mail a request to 'Linux-activists-request@niksula.hut.fi'.
|
||||||
|
It's no use mailing me: I have no actual contact with the mailing-list
|
||||||
|
(other than being on it, naturally).
|
||||||
|
|
||||||
|
For those of you able to read the alt.* newsgroups, there is also a
|
||||||
|
linux newsgroup available: alt.os.linux, which should hopefully become a
|
||||||
|
comp.* group when the votings etc are ready.
|
||||||
|
|
||||||
|
Mail me for more info:
|
||||||
|
|
||||||
|
Linus (torvalds@kruuna.Helsinki.FI)
|
||||||
|
|
||||||
|
0.95 contains these new things:
|
||||||
|
|
||||||
|
- ptrace (gdb is in beta-testing)
|
||||||
|
- VFS (at least a minimal stubs-version)
|
||||||
|
- bug-corrections (notably mm, but other bugs as well)
|
||||||
|
- better VC's (screen blanking, works on non-[EV]GA etc)
|
||||||
|
- init/login
|
||||||
|
- faster floppies
|
||||||
|
|
||||||
|
0.95a should correct these bugs in plain 0.95:
|
||||||
|
|
||||||
|
- floppy-reset gets called, and the machine may be unable to read
|
||||||
|
floppies on certain hardware.
|
||||||
|
- Some harddisks get read-errors (resulting in general protection errors
|
||||||
|
etc)
|
||||||
|
- console and tty-drivers have known bugs - sometimes weird output when
|
||||||
|
writing heavily to the screen.
|
||||||
|
- extended partitions don't work after all.
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------
|
||||||
150
images/Original/tsx-11-old/images/CHANGES-0.97-root
Normal file
150
images/Original/tsx-11-old/images/CHANGES-0.97-root
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
CHANGES IN THE LINUX v0.97 ROOT DISKETTE
|
||||||
|
Jim Winstead Jr. - 4 August 1992
|
||||||
|
|
||||||
|
This file mostly contains info about the changes in the root diskette
|
||||||
|
from Linux v0.96 to Linux v0.97.
|
||||||
|
|
||||||
|
BUGS
|
||||||
|
|
||||||
|
'mount' is broken in strange ways, particularly in passing
|
||||||
|
options '-o whatever'. I'm working on this.
|
||||||
|
|
||||||
|
CHANGES
|
||||||
|
|
||||||
|
With the release of Linux v0.95a, the maintenance of the root diskette
|
||||||
|
has been assumed by Jim Winstead Jr. (jwinstea@jarthur.Claremont.EDU).
|
||||||
|
|
||||||
|
This continues with the release of the Linux 0.97 release diskette.
|
||||||
|
The changes between the Linux 0.97 and Linux 0.96 root diskettes are
|
||||||
|
detailed below, and the changes in earlier releases are summarized
|
||||||
|
after that:
|
||||||
|
|
||||||
|
- many small binaries were added, including:
|
||||||
|
|
||||||
|
cmp cut date env find head id install logname nice
|
||||||
|
nohup pathchk printenv printf sed setserial sort sum
|
||||||
|
tac tee tr tty uname uniq wall wc who whoami write yes
|
||||||
|
|
||||||
|
(Some of these may have been on previous root disks -
|
||||||
|
I don't have the motivation to double check that. In any
|
||||||
|
case, they are definitely on 0.97. :)
|
||||||
|
|
||||||
|
- ps, w, uptime, and related utilities were removed.
|
||||||
|
Because these programs rely very closely upon the
|
||||||
|
kernel being used, they can be outdated quite quickly.
|
||||||
|
|
||||||
|
- migrated mount/umount/swapon from /bin to /etc.
|
||||||
|
This conforms to common usage (only root can use these
|
||||||
|
programs), and current standards.
|
||||||
|
|
||||||
|
- moved 'rootdev' to /usr/bin and renamed to 'setroot'.
|
||||||
|
This reflects more common usage of the utility - it is no
|
||||||
|
longer needed for inserting the root device in /etc/mtab, but
|
||||||
|
it is still useful to change the root device of a kernel image.
|
||||||
|
|
||||||
|
- removed /lib/libhard.2.2.2 and moved /lib/libsoft.2.2.2 to
|
||||||
|
/lib/libm.2.2.2, instead of using a symlink.
|
||||||
|
|
||||||
|
- upgraded efdisk and renamed to fdisk.
|
||||||
|
efdisk was upgraded to v0.93, from Owen LeBlanc's MCC 0.96c
|
||||||
|
interim release, with some small changes from me to support the
|
||||||
|
-l flag, allowing it to completely replace fdisk.
|
||||||
|
|
||||||
|
- fixed compress to work with long filenames.
|
||||||
|
Previous versions of compress would refuse to compress files
|
||||||
|
with names longer than 12 characters - this was hardcoded in
|
||||||
|
the source the FSF makes available.
|
||||||
|
|
||||||
|
- brought device names up to standards.
|
||||||
|
Fixed some device names according to decisions made on
|
||||||
|
the Linux Standards discussion list, particularly
|
||||||
|
renaming /dev/lp* to /dev/par*, 'hard' /dev/fd*
|
||||||
|
devices, /dev/bm (bus mouse), and fixing the numbering
|
||||||
|
of /dev/ttys*.
|
||||||
|
|
||||||
|
- revised /etc/group.
|
||||||
|
/etc/group now contains only the 'standard' group names
|
||||||
|
discussed in the Linux Standards list. Of special note is the
|
||||||
|
renaming of the 'bin' group to 'obsolete'.
|
||||||
|
|
||||||
|
Using the 'bin' group as a means of identifying executables is
|
||||||
|
not recommended. That is what the executable bits are designed
|
||||||
|
to do.
|
||||||
|
|
||||||
|
- revised /etc/passed.
|
||||||
|
/etc/passwd was changed as a result of the new /etc/group, and
|
||||||
|
to eliminate unnecessary usernames - many groups were removed
|
||||||
|
because using uid != 0 for important files is a security hole
|
||||||
|
on NFS-mountable drives
|
||||||
|
|
||||||
|
- changes file permissions and ownerships.
|
||||||
|
This was done to reflect changes in /etc/group and /etc/passwd.
|
||||||
|
|
||||||
|
- fixed up the install script where it was broken.
|
||||||
|
All known major bugs were fixed. Particularly where /usr was
|
||||||
|
concerned.
|
||||||
|
|
||||||
|
- fixed the install documentation to refer to pax.
|
||||||
|
|
||||||
|
- minor gaffes from 0.96 fixed (/etc/getty linked with
|
||||||
|
shared libs, correct file ownerships, etc)
|
||||||
|
|
||||||
|
If you have questions, problems, or complaints about the root
|
||||||
|
diskette, either post to comp.os.linux, or send mail to me at
|
||||||
|
jwinstea@jarthur.Claremont.EDU.
|
||||||
|
|
||||||
|
If you have questions, problems, or complaints about the boot diskette
|
||||||
|
or the kernel itself, post to comp.os.linux or send mail to Linus
|
||||||
|
Torvalds at torvalds@cc.helsinki.fi.
|
||||||
|
|
||||||
|
Remember, the only stupid questions are the ones you don't ask.
|
||||||
|
|
||||||
|
SUMMARY
|
||||||
|
|
||||||
|
This section very briefly summarizes previous changes.
|
||||||
|
|
||||||
|
0.95a -> 0.96
|
||||||
|
- reintroduced GNU bash as /bin/sh
|
||||||
|
- replaced GNU tar (/bin/tar) with POSIX pax utility
|
||||||
|
- all-new and improved installation script
|
||||||
|
- split /etc/rc into /etc/rc and /etc/rc.local
|
||||||
|
- new mount/umount/swapon with auto-mounting - uses /etc/fstab
|
||||||
|
- recompiled all utilities with shared libraries (gcc 2.2.2)
|
||||||
|
- added /dev/MAKEDEV - device creation script
|
||||||
|
- all new /etc/termcap using "tc=con-unk" entries
|
||||||
|
|
||||||
|
FUTURE CHANGES
|
||||||
|
|
||||||
|
I'm already anticipating some changes for future releases, so here's
|
||||||
|
a sneak preview:
|
||||||
|
|
||||||
|
- the install script will be improved. The current one was
|
||||||
|
written rather rapidly, so there are parts of it I'm not
|
||||||
|
entirely happy with.
|
||||||
|
|
||||||
|
- I'd like to write an update script that will allow people who
|
||||||
|
have already installed Linux to update their binaries from the
|
||||||
|
latest root disk. The install script could serve as a base
|
||||||
|
for this, but is a little destructive at present. (It would
|
||||||
|
simply copy over old binaries, etc.)
|
||||||
|
|
||||||
|
- program to allow the 'intro' login to be more interactive, and
|
||||||
|
will also serve more general purposes (it will be a generic
|
||||||
|
curses-based file-selector with support for file descriptions).
|
||||||
|
|
||||||
|
- the documentation on disk will be cleaned up, and possibly
|
||||||
|
added to.
|
||||||
|
|
||||||
|
- fill in the gaps in the MAKEDEV script. (SCSI tapes, more pty
|
||||||
|
devices.)
|
||||||
|
|
||||||
|
- the release after the extended filesystem is added to the
|
||||||
|
Linux kernel, the root disk will use it. That means v0.98, if
|
||||||
|
things go according to current plans. This is to allow time
|
||||||
|
for bugs in the extended filesystem to filter out, and for the
|
||||||
|
new mkfs and fsck to stabilize. (For those that don't know,
|
||||||
|
the extended filesystem supports 4 terabyte partitions and long
|
||||||
|
filenames, and is currently in testing.)
|
||||||
|
|
||||||
|
Again, mail your questions, comments and suggestions about the root
|
||||||
|
diskette to me at jwinstea@jarthur.Claremont.EDU.
|
||||||
149
images/Original/tsx-11-old/images/CHANGES-0.97.1
Normal file
149
images/Original/tsx-11-old/images/CHANGES-0.97.1
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
CHANGES IN THE LINUX v0.97.1 ROOT DISKETTE
|
||||||
|
Jim Winstead Jr. - 16 August 1992
|
||||||
|
|
||||||
|
This file mostly contains info about the changes in the root diskette
|
||||||
|
from Linux v0.97 to Linux v0.97.1.
|
||||||
|
|
||||||
|
CHANGES
|
||||||
|
|
||||||
|
With the release of Linux v0.95a, the maintenance of the root diskette
|
||||||
|
has been assumed by Jim Winstead Jr. (jwinstea@jarthur.Claremont.EDU).
|
||||||
|
|
||||||
|
This continues with the release of the Linux 0.97.1 release diskette.
|
||||||
|
The changes between the Linux 0.97.1 and Linux 0.97 root diskettes are
|
||||||
|
detailed below, and the changes in earlier releases are summarized
|
||||||
|
after that:
|
||||||
|
|
||||||
|
- fixed mount.
|
||||||
|
A few hours after releasing 0.97, I figured out why
|
||||||
|
mount wasn't working correctly with the MS-DOS
|
||||||
|
filesystem. 'mount' now does things correctly, and
|
||||||
|
will even pass 'odd' mount options correctly (i.e. the
|
||||||
|
conv=something option for the MS-DOS fs). Thanks to
|
||||||
|
Werner Almesberger for providing smount, from which
|
||||||
|
most of my changes to Doug Quale's mount were taken.
|
||||||
|
|
||||||
|
- made passwd sgid system.
|
||||||
|
I forgot to last time, which made /etc/passwd belong to
|
||||||
|
whatever group the person who last changed their password
|
||||||
|
belonged to. Thanks to Scott Mace (emace@tenet.edu) for
|
||||||
|
spotting this one.
|
||||||
|
|
||||||
|
- fixed bug in /etc/termcap.
|
||||||
|
The 'is' and 'rs' strings had an extra colon in them,
|
||||||
|
and the k? strings were wrong. Special thanks to
|
||||||
|
Jaakko.Hyvatti@Helsinki.FI for pointing this out.
|
||||||
|
|
||||||
|
- fixed pax (some).
|
||||||
|
Pax was broken in a few spots, and I've been trying to
|
||||||
|
clean it up. In particular, it would give some false
|
||||||
|
errors because it would try to create some directories
|
||||||
|
twice. Duh. I'm also trying to bring it up to POSIX
|
||||||
|
compliance, since it's quite out of date.
|
||||||
|
|
||||||
|
- fixed problems with GNU fileutilities.
|
||||||
|
The GNU fileutilities (cp, du and ls in particular)
|
||||||
|
were making some bad assumptions about the blocksize
|
||||||
|
on filesystems. I think I've tracked that all down.
|
||||||
|
Also, fixed ls so it recognizes the dir and vdir
|
||||||
|
counterparts using argv[0] instead of seperate filenames.
|
||||||
|
I was also able to trim some size off a few utilities
|
||||||
|
due to functions available in libc.
|
||||||
|
|
||||||
|
- compiled GNU text utilities to use getopt/regex from libc.
|
||||||
|
I also fixed cat so you can use it with the various
|
||||||
|
options (like -v, etc). This saved over 30k. (Wow!)
|
||||||
|
|
||||||
|
- compiled GNU shell utilities to use getopt/regex from libc.
|
||||||
|
This saved another 30k. Wow again!
|
||||||
|
|
||||||
|
- compiled GNU tput to use termcap from shared libs.
|
||||||
|
A lot of the changes to be like this, don't they? :)
|
||||||
|
Saved about 4k here.
|
||||||
|
|
||||||
|
- compiled sed with -N.
|
||||||
|
Saved 6k. :)
|
||||||
|
|
||||||
|
- added creation of user account to /INSTALL/install.
|
||||||
|
The install script now asks for a username to create an
|
||||||
|
account for and sets it up. This should encourage not
|
||||||
|
using 'root' all the time.
|
||||||
|
|
||||||
|
If you have questions, problems, or complaints about the root
|
||||||
|
diskette, either post to comp.os.linux, or send mail to me at
|
||||||
|
jwinstea@jarthur.Claremont.EDU.
|
||||||
|
|
||||||
|
If you have questions, problems, or complaints about the boot diskette
|
||||||
|
or the kernel itself, post to comp.os.linux or send mail to Linus
|
||||||
|
Torvalds at torvalds@cc.helsinki.fi.
|
||||||
|
|
||||||
|
Remember, the only stupid questions are the ones you don't ask.
|
||||||
|
|
||||||
|
SUMMARY
|
||||||
|
|
||||||
|
This section very briefly summarizes previous changes.
|
||||||
|
|
||||||
|
0.96 -> 0.97
|
||||||
|
- many small binaries were added.
|
||||||
|
- ps, w, uptime, and related utilities were removed.
|
||||||
|
- migrated mount/umount/swapon from /bin to /etc.
|
||||||
|
- moved 'rootdev' to /usr/bin and renamed to 'setroot'.
|
||||||
|
- removed /lib/libhard.2.2.2 and moved /lib/libsoft.2.2.2 to
|
||||||
|
/lib/libm.2.2.2, instead of using a symlink.
|
||||||
|
- upgraded efdisk and renamed to fdisk.
|
||||||
|
- fixed compress to work with long filenames.
|
||||||
|
- brought device names up to standards.
|
||||||
|
- revised /etc/group.
|
||||||
|
- revised /etc/passed.
|
||||||
|
- changes file permissions and ownerships.
|
||||||
|
- fixed up the install script where it was broken.
|
||||||
|
- fixed the install documentation to refer to pax.
|
||||||
|
- minor gaffes from 0.96 fixed (/etc/getty linked with shared
|
||||||
|
libs, correct file ownerships, etc)
|
||||||
|
|
||||||
|
0.95a -> 0.96
|
||||||
|
- reintroduced GNU bash as /bin/sh
|
||||||
|
- replaced GNU tar (/bin/tar) with POSIX pax utility
|
||||||
|
- all-new and improved installation script
|
||||||
|
- split /etc/rc into /etc/rc and /etc/rc.local
|
||||||
|
- new mount/umount/swapon with auto-mounting - uses /etc/fstab
|
||||||
|
- recompiled all utilities with shared libraries (gcc 2.2.2)
|
||||||
|
- added /dev/MAKEDEV - device creation script
|
||||||
|
- all new /etc/termcap using "tc=con-unk" entries
|
||||||
|
|
||||||
|
FUTURE CHANGES
|
||||||
|
|
||||||
|
I'm already anticipating some changes for future releases, so here's
|
||||||
|
a sneak preview:
|
||||||
|
|
||||||
|
- the install script will be improved. The current one was
|
||||||
|
written rather rapidly, so there are parts of it I'm not
|
||||||
|
entirely happy with. Michael K. Johnson (johnsonm@stolaf.edu)
|
||||||
|
has said he is working on this and the update script (below).
|
||||||
|
|
||||||
|
- I'd like to write an update script that will allow people who
|
||||||
|
have already installed Linux to update their binaries from the
|
||||||
|
latest root disk. The install script could serve as a base
|
||||||
|
for this, but is a little destructive at present. (It would
|
||||||
|
simply copy over old binaries, etc.)
|
||||||
|
|
||||||
|
- program to allow the 'intro' login to be more interactive, and
|
||||||
|
will also serve more general purposes (it will be a generic
|
||||||
|
curses-based file-selector with support for file descriptions).
|
||||||
|
|
||||||
|
- the documentation on disk will be cleaned up, and possibly
|
||||||
|
added to.
|
||||||
|
|
||||||
|
- fill in the gaps in the MAKEDEV script. (SCSI tapes, more pty
|
||||||
|
devices.)
|
||||||
|
|
||||||
|
- the release after the extended filesystem is added to the
|
||||||
|
Linux kernel, the root disk will use it. That means v0.98, if
|
||||||
|
things go according to current plans. This is to allow time
|
||||||
|
for bugs in the extended filesystem to filter out, and for the
|
||||||
|
new mkfs and fsck to stabilize. (For those that don't know,
|
||||||
|
the extended filesystem supports 4 terabyte partitions and long
|
||||||
|
filenames, and is currently in testing.)
|
||||||
|
|
||||||
|
Again, mail your questions, comments and suggestions about the root
|
||||||
|
diskette to me at jwinstea@jarthur.Claremont.EDU.
|
||||||
BIN
images/Original/tsx-11-old/images/RAWRITE3.COM
Normal file
BIN
images/Original/tsx-11-old/images/RAWRITE3.COM
Normal file
Binary file not shown.
68
images/Original/tsx-11-old/images/RAWRITE3.DOC
Normal file
68
images/Original/tsx-11-old/images/RAWRITE3.DOC
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
RaWrite 1.3
|
||||||
|
------------
|
||||||
|
|
||||||
|
Disclaimer of Warrenty
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
Users of this software must accept this disclaimer of warranty: "This
|
||||||
|
software is supplied AS IS. Mark Becker disclaims all warranties, expressed
|
||||||
|
or implied, including, without limitation, the warranties of merchantability
|
||||||
|
and of fitness for any purpose. Mark Becker assumes no liability for
|
||||||
|
damages, direct or consequential, which may result from the use of this
|
||||||
|
software."
|
||||||
|
|
||||||
|
|
||||||
|
Purpose
|
||||||
|
-------
|
||||||
|
|
||||||
|
Write a disk image file to a floppy disk.
|
||||||
|
|
||||||
|
|
||||||
|
Equipment/Software Requirements
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
* PC/XT/AT or 100% compatible with at least 256K of RAM and a floppy disk
|
||||||
|
drive.
|
||||||
|
|
||||||
|
* MS-DOS version 3.21 or greater.
|
||||||
|
|
||||||
|
* A formatted diskette.
|
||||||
|
|
||||||
|
This program uses well-documented generic low-level DOS and BIOS functions.
|
||||||
|
It should run on nearly every PC in existance. PS/2's should be able to run
|
||||||
|
RaWrite but this has not been tested.
|
||||||
|
|
||||||
|
|
||||||
|
CAVEAT
|
||||||
|
------
|
||||||
|
|
||||||
|
This program will write ANY disk file to a floppy, overwriting any previous
|
||||||
|
information that may have been present. If you wish to re-use a diskette
|
||||||
|
that has been written to by RaWrite then that diskette will probably need to
|
||||||
|
be reformatted; all MS-DOS specific information will have been erased.
|
||||||
|
|
||||||
|
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
C> RAWRITE
|
||||||
|
|
||||||
|
And follow the prompts. All arguments are case-insensitive.
|
||||||
|
|
||||||
|
If the source and destination drives are the same, RaWrite will ask the user
|
||||||
|
to swap diskettes as required. Rawrite allocates a large buffer in RAM to
|
||||||
|
reduce the number of disk swaps.
|
||||||
|
|
||||||
|
RaWrite may be aborted at any time by typing ^C or CTRL-Break.
|
||||||
|
|
||||||
|
|
||||||
|
Errors
|
||||||
|
------
|
||||||
|
|
||||||
|
RaWrite attempts to determine if the diskette is a 1.44M, 1.2M, 720K, or 360K
|
||||||
|
diskette by reading sectors 18, 15, and 9 in that order. If the inserted
|
||||||
|
diskette is not one of the these types, then RaWrite will abort with an error
|
||||||
|
message.
|
||||||
|
|
||||||
|
Errors such as write protect, door open, bad disk, bad sector, etc. cause a
|
||||||
|
program abort with a short error message.
|
||||||
BIN
images/Original/tsx-11-old/images/bootimage-0.96c
Normal file
BIN
images/Original/tsx-11-old/images/bootimage-0.96c
Normal file
Binary file not shown.
BIN
images/Original/tsx-11-old/images/bootimage-0.97
Normal file
BIN
images/Original/tsx-11-old/images/bootimage-0.97
Normal file
Binary file not shown.
BIN
images/Original/tsx-11-old/images/images.zip
Normal file
BIN
images/Original/tsx-11-old/images/images.zip
Normal file
Binary file not shown.
BIN
images/Original/tsx-11-old/images/rootimage-0.97
Normal file
BIN
images/Original/tsx-11-old/images/rootimage-0.97
Normal file
Binary file not shown.
BIN
images/Original/tsx-11-old/images/rootimage-0.97.1
Normal file
BIN
images/Original/tsx-11-old/images/rootimage-0.97.1
Normal file
Binary file not shown.
18
images/README
Normal file
18
images/README
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
|
||||||
|
The rootimage-0.11-for-orig or rootimage-0.11.Z can be used with the
|
||||||
|
orignal bootimage-0.11. That is the bootimage compiled without any
|
||||||
|
modification to the kernel source of linux 0.11.
|
||||||
|
|
||||||
|
Other bootimage-0.11 images must be used with the rootimage having
|
||||||
|
the same dating tag.The difference between rootimage-0.11.Z and
|
||||||
|
rootimage-0.1x-XXXXXX is they have different bash(sh).
|
||||||
|
|
||||||
|
rootimage-0.11.Z bash version 1.05, No job control.
|
||||||
|
rootimage-0.11-XXXXXX bash version 1.12, No job control.
|
||||||
|
rootimage-0.12.Z bash version 1.12, Has job control.
|
||||||
|
rootimage-0.12.XXXXXX bash version 1.12, Has job control.
|
||||||
|
|
||||||
|
|
||||||
|
Jiong Zhao (gohigh@sh163.net)
|
||||||
|
2004-03-23
|
||||||
|
|
||||||
182
images/Tools/rawrite.c
Normal file
182
images/Tools/rawrite.c
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
/*
|
||||||
|
rawrite.c Write a binary image to a 360K diskette.
|
||||||
|
By Mark Becker
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
MS-DOS prompt> RAWRITE
|
||||||
|
|
||||||
|
And follow the prompts.
|
||||||
|
|
||||||
|
History
|
||||||
|
-------
|
||||||
|
|
||||||
|
1.0 - Initial release
|
||||||
|
1.1 - Beta test (fixing bugs) 4/5/91
|
||||||
|
Some BIOS's don't like full-track writes.
|
||||||
|
1.101 - Last beta release. 4/8/91
|
||||||
|
Fixed BIOS full-track write by only
|
||||||
|
writing 3 sectors at a time.
|
||||||
|
1.2 - Final code and documentation clean-ups. 4/9/91
|
||||||
|
*/
|
||||||
|
#include <alloc.h>
|
||||||
|
#include <bios.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
#include <dir.h>
|
||||||
|
#include <dos.h>
|
||||||
|
#include <io.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#define FALSE 0
|
||||||
|
#define TRUE (!FALSE)
|
||||||
|
|
||||||
|
#define SECTORSIZE 512
|
||||||
|
|
||||||
|
#define RESET 0
|
||||||
|
#define LAST 1
|
||||||
|
#define READ 2
|
||||||
|
#define WRITE 3
|
||||||
|
#define VERIFY 4
|
||||||
|
#define FORMAT 5
|
||||||
|
|
||||||
|
int done;
|
||||||
|
|
||||||
|
/*
|
||||||
|
Catch ^C and ^Break.
|
||||||
|
*/
|
||||||
|
int handler(void)
|
||||||
|
{
|
||||||
|
done = TRUE;
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
void msg(char (*s))
|
||||||
|
{
|
||||||
|
fprintf(stderr, "%s\n", s);
|
||||||
|
_exit(1);
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
Identify the error code with a real error message.
|
||||||
|
*/
|
||||||
|
void Error(int (status))
|
||||||
|
{
|
||||||
|
switch (status) {
|
||||||
|
case 0x00: msg("Operation Successful"); break;
|
||||||
|
case 0x01: msg("Bad command"); break;
|
||||||
|
case 0x02: msg("Address mark not found"); break;
|
||||||
|
case 0x03: msg("Attempt to write on write-protected disk"); break;
|
||||||
|
case 0x04: msg("Sector not found"); break;
|
||||||
|
case 0x05: msg("Reset failed (hard disk)"); break;
|
||||||
|
case 0x06: msg("Disk changed since last operation"); break;
|
||||||
|
case 0x07: msg("Drive parameter activity failed"); break;
|
||||||
|
case 0x08: msg("DMA overrun"); break;
|
||||||
|
case 0x09: msg("Attempt to DMA across 64K boundary"); break;
|
||||||
|
case 0x0A: msg("Bad sector detected"); break;
|
||||||
|
case 0x0B: msg("Bad track detected"); break;
|
||||||
|
case 0x0C: msg("Unsupported track"); break;
|
||||||
|
case 0x10: msg("Bad CRC/ECC on disk read"); break;
|
||||||
|
case 0x11: msg("CRC/ECC corrected data error"); break;
|
||||||
|
case 0x20: msg("Controller has failed"); break;
|
||||||
|
case 0x40: msg("Seek operation failed"); break;
|
||||||
|
case 0x80: msg("Attachment failed to respond"); break;
|
||||||
|
case 0xAA: msg("Drive not ready (hard disk only"); break;
|
||||||
|
case 0xBB: msg("Undefined error occurred (hard disk only)"); break;
|
||||||
|
case 0xCC: msg("Write fault occurred"); break;
|
||||||
|
case 0xE0: msg("Status error"); break;
|
||||||
|
case 0xFF: msg("Sense operation failed"); break;
|
||||||
|
}
|
||||||
|
_exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Identify what kind of diskette is installed in the specified drive.
|
||||||
|
Return the number of sectors per track assumed as follows:
|
||||||
|
9 - 360 K and 720 K 5.25".
|
||||||
|
15 - 1.2 M HD 5.25".
|
||||||
|
18 - 1.44 M 3.5".
|
||||||
|
*/
|
||||||
|
int nsects(int (drive))
|
||||||
|
{
|
||||||
|
static int nsect[] = {18, 15, 9};
|
||||||
|
|
||||||
|
char *buffer;
|
||||||
|
int i, status;
|
||||||
|
/*
|
||||||
|
Read sector 1, head 0, track 0 to get the BIOS running.
|
||||||
|
*/
|
||||||
|
buffer = (char *)malloc(SECTORSIZE);
|
||||||
|
biosdisk(RESET, drive, 0, 0, 0, 0, buffer);
|
||||||
|
status = biosdisk(READ, drive, 0, 10, 1, 1, buffer);
|
||||||
|
if (status == 0x06) /* Door signal change? */
|
||||||
|
status = biosdisk(READ, drive, 0, 0, 1, 1, buffer);
|
||||||
|
|
||||||
|
for (i=0; i < sizeof(nsect)/sizeof(int); ++i) {
|
||||||
|
biosdisk(RESET, drive, 0, 0, 0, 0, buffer);
|
||||||
|
status = biosdisk(READ, drive, 0, 0, nsect[i], 1, buffer);
|
||||||
|
if (status == 0x06)
|
||||||
|
status = biosdisk(READ, drive, 0, 0, nsect[i], 1, buffer);
|
||||||
|
if (status == 0x00) break;
|
||||||
|
}
|
||||||
|
if (i == sizeof(nsect)/sizeof(int)) {
|
||||||
|
msg("Can't figure out how many sectors/track for this diskette.");
|
||||||
|
}
|
||||||
|
free(buffer);
|
||||||
|
return(nsect[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
void main(void)
|
||||||
|
{
|
||||||
|
char fname[MAXPATH];
|
||||||
|
char *buffer, *pbuf;
|
||||||
|
int count, fdin, drive, head, track, status, spt, buflength, ns;
|
||||||
|
|
||||||
|
puts("RaWrite 1.2 - Write disk file to raw floppy diskette\n");
|
||||||
|
ctrlbrk(handler);
|
||||||
|
printf("Enter source file name: ");
|
||||||
|
scanf("%s", fname);
|
||||||
|
_fmode = O_BINARY;
|
||||||
|
if ((fdin = open(fname, O_RDONLY)) <= 0) {
|
||||||
|
perror(fname);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("Enter destination drive: ");
|
||||||
|
scanf("%s", fname);
|
||||||
|
drive = fname[0];
|
||||||
|
drive = (islower(drive) ? toupper(drive) : drive) - 'A';
|
||||||
|
printf("Please insert a formatted diskette into ");
|
||||||
|
printf("drive %c: and press -ENTER- :", drive + 'A');
|
||||||
|
while (bioskey(1) == 0) ; /* Wait... */
|
||||||
|
if ((bioskey(0) & 0x7F) == 3) exit(1); /* Check for ^C */
|
||||||
|
putchar('\n');
|
||||||
|
done = FALSE;
|
||||||
|
/*
|
||||||
|
* Determine number of sectors per track and allocate buffers.
|
||||||
|
*/
|
||||||
|
spt = nsects(drive);
|
||||||
|
buflength = spt * SECTORSIZE;
|
||||||
|
buffer = (char *)malloc(buflength);
|
||||||
|
printf("Number of sectors per track for this disk is %d\n", spt);
|
||||||
|
printf("Writing image to drive %c:. Press ^C to abort.\n", drive+'A');
|
||||||
|
/*
|
||||||
|
* Start writing data to diskette until there is no more data to write.
|
||||||
|
*/
|
||||||
|
head = track = 0;
|
||||||
|
while ((count = read(fdin, buffer, buflength)) > 0 && !done) {
|
||||||
|
pbuf = buffer;
|
||||||
|
for (ns = 1; count > 0 && !done; ns+=3) {
|
||||||
|
printf("Track: %02d Head: %2d Sector: %2d\r", track, head, ns);
|
||||||
|
status = biosdisk(WRITE, drive, head, track, ns, 3, pbuf);
|
||||||
|
|
||||||
|
if (status != 0) Error(status);
|
||||||
|
|
||||||
|
count -= (3*SECTORSIZE);
|
||||||
|
pbuf += (3*SECTORSIZE);
|
||||||
|
}
|
||||||
|
if ((head = (head + 1) & 1) == 0) ++track;
|
||||||
|
}
|
||||||
|
if (eof(fdin)) {
|
||||||
|
printf("\nDone.\n");
|
||||||
|
biosdisk(2, drive, 0, 0, 1, 1, buffer); /* Retract head */
|
||||||
|
}
|
||||||
|
} /* end main */
|
||||||
86
images/Tools/rawrite.doc
Normal file
86
images/Tools/rawrite.doc
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
RaWrite 1.2
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Purpose
|
||||||
|
-------
|
||||||
|
|
||||||
|
Write a disk image file to a 360K floppy disk.
|
||||||
|
|
||||||
|
|
||||||
|
Equipment/Software Requirements
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
PC/XT/AT with a floppy disk drive capable of reading and writing a 360K
|
||||||
|
diskette.
|
||||||
|
|
||||||
|
This program uses generic low-level BIOS diskette read/write functions. It
|
||||||
|
should be portable to nearly every PC in existance. PS/2's should be able
|
||||||
|
to run RawWrite but this has not been tested.
|
||||||
|
|
||||||
|
|
||||||
|
CAVEAT
|
||||||
|
------
|
||||||
|
|
||||||
|
This program will write ANY disk file to a floppy, overwriting any previous
|
||||||
|
information that may have been present. If you wish to re-use a diskette
|
||||||
|
under MS-DOS thats been written to by RawWrite then the disk will need to be
|
||||||
|
reformatted; all MS-DOS specific information will have been erased.
|
||||||
|
|
||||||
|
|
||||||
|
How to Compile
|
||||||
|
--------------
|
||||||
|
|
||||||
|
TCC rawrite.c
|
||||||
|
|
||||||
|
The source code is specific to Borland International's Turbo C 2.01 and has
|
||||||
|
been tested in all memory models.
|
||||||
|
|
||||||
|
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
C> RAWRITE
|
||||||
|
|
||||||
|
And follow the prompts. All arguments are case-insensitive.
|
||||||
|
|
||||||
|
A sample run is shown below. The disk file being written, in this example,
|
||||||
|
is named DEMODISK and the destination - where the image is being written -
|
||||||
|
is the B: drive.
|
||||||
|
|
||||||
|
This program may be aborted at any time by typing ^C.
|
||||||
|
|
||||||
|
|
||||||
|
Sample Run
|
||||||
|
----------
|
||||||
|
|
||||||
|
C> RAWRITE
|
||||||
|
RaWrite 1.2 - Write disk file to raw floppy diskette
|
||||||
|
|
||||||
|
Enter source file name: DEMODISK
|
||||||
|
Enter destination drive: B
|
||||||
|
Please insert a formatted 360K diskette into drive B: and press -ENTER- :
|
||||||
|
Writing image to drive B:
|
||||||
|
|
||||||
|
|
||||||
|
Errors
|
||||||
|
------
|
||||||
|
|
||||||
|
RaWrite attempts to determine if the diskette is a 360K, 720K, 1.2M, or
|
||||||
|
1.44M diskette by reading specific sectors. If the inserted diskette is not
|
||||||
|
one of the mentioned types, then RaWrite will abort with a short error
|
||||||
|
message.
|
||||||
|
|
||||||
|
Errors such as write protect, door open, bad disk, bad sector, etc. cause a
|
||||||
|
program abort with a short error message.
|
||||||
|
|
||||||
|
|
||||||
|
History
|
||||||
|
-------
|
||||||
|
|
||||||
|
1.0 - Initial release
|
||||||
|
1.1 - Beta test (fixing bugs) 4/5/91
|
||||||
|
Some BIOS's don't like full-track writes.
|
||||||
|
1.101 - Last beta release. 4/8/91
|
||||||
|
Fixed BIOS full-track write by only only
|
||||||
|
writing 3 sectors at a time.
|
||||||
|
1.2 - Final code and documentation clean-ups. 4/9/91
|
||||||
BIN
images/bootimage-0.11-20040305
Normal file
BIN
images/bootimage-0.11-20040305
Normal file
Binary file not shown.
BIN
images/bootimage-0.12-20040306
Normal file
BIN
images/bootimage-0.12-20040306
Normal file
Binary file not shown.
BIN
images/bootimage-0.95
Normal file
BIN
images/bootimage-0.95
Normal file
Binary file not shown.
BIN
images/bootroot-0.11
Normal file
BIN
images/bootroot-0.11
Normal file
Binary file not shown.
BIN
images/bootroot-0.11.zip
Normal file
BIN
images/bootroot-0.11.zip
Normal file
Binary file not shown.
BIN
images/rootimage-0.11-20040305
Normal file
BIN
images/rootimage-0.11-20040305
Normal file
Binary file not shown.
BIN
images/rootimage-0.11-for-orig
Normal file
BIN
images/rootimage-0.11-for-orig
Normal file
Binary file not shown.
BIN
images/rootimage-0.12-20040306
Normal file
BIN
images/rootimage-0.12-20040306
Normal file
Binary file not shown.
Reference in New Issue
Block a user