add directory Minix
This commit is contained in:
BIN
Minix/old/demo/Announcement.gz
Normal file
BIN
Minix/old/demo/Announcement.gz
Normal file
Binary file not shown.
189
Minix/old/demo/READ_ME
Normal file
189
Minix/old/demo/READ_ME
Normal file
@@ -0,0 +1,189 @@
|
||||
This directory contains MINIX demonstration disks. To use them, first
|
||||
download the correct one to your machine:
|
||||
|
||||
demo_dsk.ibm (IBM PC, XT, AT, or 386)
|
||||
demo_dsk.st (Atari ST)
|
||||
demo_dsk.sp (SPARC)
|
||||
amiga.lzh (Amiga)
|
||||
|
||||
Then copy it bit for bit to a floppy disk. These files are exact disk images.
|
||||
They are not files readable by any operating system. They are bootable disks.
|
||||
For the Atari, you must use a 360K diskette. For the SPARC, you need a 1.44M
|
||||
diskette. The Amiga demo is a standard lharc archive.
|
||||
|
||||
To transfer the demo disk to a floppy, you need a program that can write
|
||||
a raw disk image. A program 'rawrite' has been provided for MS-DOS users.
|
||||
The Turbo C source (rawrite.c), the executable (rawrite.exe), and the
|
||||
user manual (rawrite.doc) are provided in this directory. For the Atari,
|
||||
use file2dsk instead of rawrite (see file2dsk.doc).
|
||||
|
||||
The demo user manual is available in PostScript form as manual.ps or as
|
||||
flat ASCII text as manual.txt. If you can print PostScript, use the
|
||||
former; if not, use the latter. The manual.txt file can be printed
|
||||
on any printer that can handle ASCII text (including Form Feed).
|
||||
|
||||
The announcement file tells more about MINIX, describes the MINIX newsgroup,
|
||||
comp.os.minix, and the MINIX archives. It is a flat ASCII file.
|
||||
|
||||
The files ending in .Z are compressed using the UNIX compress program.
|
||||
Not all the files are compressed, just the larger ones. If you have the
|
||||
UNIX or MINIX compress program, download the .Z files to save bandwidth, and
|
||||
decompress them on your own machine. Please do not FTP during business
|
||||
hours European time, (i.e., please FTP after 11 a.m. Eastern Standard Time).
|
||||
|
||||
Once more, to avoid any confusion, MINIX is not public domain or shareware.
|
||||
It is copyrighted software. All the files in this directory, including
|
||||
the demo disks are also fully protected by copyright. The copyright owners
|
||||
hereby grant permission to copy and use the MINIX demo disks and other files
|
||||
in this directory only for the purpose of evaluating MINIX to see if it
|
||||
is suitable for your needs.
|
||||
|
||||
|
||||
Andy Tanenbaum (ast@cs.vu.nl)
|
||||
|
||||
|
||||
|
||||
|
||||
=============================================================================
|
||||
The crcs of most of the files in this directory are listed below.
|
||||
The crc is the MINIX replacement for sum. It gives a much stronger
|
||||
checksum. The source is in crc.c, in case you don't already have it.
|
||||
|
||||
|
||||
Cksum Bytes File name Description
|
||||
----- ------ --------- -----------
|
||||
13973 26323 announcement General info about the MINIX community
|
||||
27342 181305 amiga.lzh Amiga demo (lharc format)
|
||||
50933 3844 crc.c MINIX checksum program
|
||||
57848 368640 demo_dsk.ibm IBM demo disk
|
||||
26774 320512 demo_dsk.st Atari ST demo disk
|
||||
24566 624640 demo_dsk.sp SPARC demo disk
|
||||
08584 2289 file2dsk.c C program to write Atari boot disk
|
||||
41135 2107 file2dsk.doc Documentation for file2dsk
|
||||
32394 9659 file2dsk.ttp Executable for file2dsk for Atari TOS
|
||||
59522 175493 manual.ps Manual in postscript
|
||||
58276 72014 manual.txt Manual as flat ASCII file
|
||||
24330 5153 rawrite.c Turbo C program to write a raw disk image
|
||||
54726 2138 rawrite.doc Documentation for rawrite
|
||||
58584 13052 rawrite.exe Executable version of rawrite for MS-DOS
|
||||
39214 3771 sparc.addendum Additional documentation for the SPARC demo
|
||||
|
||||
42004 14451 announcement.Z These are all compressed versions of the above
|
||||
04519 201819 demo_dsk.ibm.Z
|
||||
39985 288826 demo_dsk.sp.Z
|
||||
19632 184677 demo_dsk.st.Z
|
||||
01416 81289 manual.ps.Z
|
||||
30559 34985 manual.txt.Z
|
||||
|
||||
==============================================================================
|
||||
|
||||
|
||||
|
||||
HOW TO ORDER MINIX 1.5
|
||||
|
||||
MINIX 1.5 is being sold by Prentice-Hall. The product numbers and prices
|
||||
are as follows:
|
||||
|
||||
- MINIX 1.5 for the IBM: 5 1/4" (0-13-585076-2) $169
|
||||
- MINIX 1.5 for the IBM: 3 1/2" (0-13-585068-1) $169
|
||||
- MINIX 1.5 for the Amiga (0-13-585043-6) $169
|
||||
- MINIX 1.5 for the Atari (0-13-585035-5) $169
|
||||
- MINIX 1.5 for the Macintosh (0-13-585050-9) $169
|
||||
|
||||
- MINIX 1.5 IBM demo disk (0-13-582768-x) $10
|
||||
- MINIX 1.5 Macintosh demo disk (0-13-582784-1) $10
|
||||
- MINIX 1.5 Atari demo disk (0-13-582792-2) $10
|
||||
|
||||
|
||||
Sales tax and shipping are extra; Prices are slightly higher outside the U.S.
|
||||
|
||||
All versions include the executable binaries, a detailed manual, the complete
|
||||
source code (on diskettes), and an attractively typeset, cross-referenced
|
||||
listing of the operating system code.
|
||||
|
||||
P-H is making a big effort to get software stores to keep MINIX in stock.
|
||||
The easiest way to order it is to go to a software store and ask them for
|
||||
it. If they don't stock it, they can always order it. Alternatively, you
|
||||
can order directly by email, FAX, phone, or mail from Prentice-Hall as follows.
|
||||
|
||||
In North America and the Far East
|
||||
To order by email: books@prenhall.com
|
||||
To order by FAX: (201) 767-5625
|
||||
To order by phone: (800) 624-0023 or (201) 767-5969
|
||||
To order by mail: Microservice Customer Service
|
||||
Simon & Schuster
|
||||
200 Old Tappan Road
|
||||
Old Tappan, NJ 07675
|
||||
|
||||
|
||||
In UK/Europe
|
||||
To order by email: Not recommended as the email is printed out in the U.S.
|
||||
and then sent to England by regular letter
|
||||
To order by FAX: Same problem as email
|
||||
To order by phone: +44 (442) 231-555 (UK number)
|
||||
To order by mail: Order Dept.
|
||||
Prentice-Hall International
|
||||
Campus 400
|
||||
Maylands Ave.
|
||||
Hemel Hempstead
|
||||
Herts. HP2 7E2 ENGLAND
|
||||
|
||||
|
||||
For email and FAX orders, please include the product name and number, your
|
||||
name and address, and your MasterCard or VISA card number and expiration date.
|
||||
If you wish delivery by Federal Express (costs extra), please indicate so.
|
||||
|
||||
MINIX can also be ordered from the following addresses:
|
||||
|
||||
In England: The MINIX Center
|
||||
Forncett End
|
||||
Norwich
|
||||
Norfolk NR16 1HT England
|
||||
0953-89345
|
||||
|
||||
In Germany: Prentice Hall
|
||||
Feldtorweg 24
|
||||
D3406 Bovenden 1
|
||||
Germany
|
||||
|
||||
In the Benelux: Fred van Kempen
|
||||
Postbus 184
|
||||
2100 AD Heemstede
|
||||
Holland
|
||||
Tel: +31 23 287935
|
||||
FAX: +31 23 294229
|
||||
|
||||
In Scandinavia: Frank O'Donell
|
||||
P.O. Box 88
|
||||
1371 Asker
|
||||
Norway
|
||||
|
||||
In Spain and Deborah Worth
|
||||
Portugal: Appartado Numero 50672
|
||||
Madrid
|
||||
Spain
|
||||
|
||||
In Italy: Jim Blaho
|
||||
Piazza Santo Spirito 17
|
||||
50125 Florence
|
||||
Italy
|
||||
|
||||
In Greece: Vassilis Zahos
|
||||
Kritonos 5-7
|
||||
GR 11634 Athens
|
||||
Greece
|
||||
|
||||
In Turkey: Atilla Gullu
|
||||
Milli Mudafaa Cad 14/7
|
||||
Kizilay Ankara
|
||||
Turkey
|
||||
|
||||
|
||||
If you have previously purchased MINIX from Prentice-Hall, you can get
|
||||
a discount of $60, but only if you order by mail and include the label from
|
||||
the original PH boot disk (or the entire disk) with your letter. Not valid
|
||||
for email, phone or FAX orders since you must enclose the original boot disk
|
||||
label (not a photocopy). Mail orders can be by credit card or check for
|
||||
$169. You will be billed for tax and shipping.
|
||||
|
||||
|
||||
BIN
Minix/old/demo/amiga.lzh
Normal file
BIN
Minix/old/demo/amiga.lzh
Normal file
Binary file not shown.
104
Minix/old/demo/crc.c
Normal file
104
Minix/old/demo/crc.c
Normal file
@@ -0,0 +1,104 @@
|
||||
/* Compute checksum Author: Johan W. Stevenson */
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
int errs;
|
||||
|
||||
main(argc, argv)
|
||||
char **argv;
|
||||
{
|
||||
char line[256];
|
||||
|
||||
if (argc <= 1)
|
||||
crc((char *) 0);
|
||||
else if (argc == 2 && strcmp(argv[1], "-") == 0)
|
||||
while (fgets(line, sizeof line, stdin) != NULL) {
|
||||
if (line[strlen(line) - 1] == '\n')
|
||||
line[strlen(line) - 1] = '\0';
|
||||
crc(line);
|
||||
}
|
||||
else
|
||||
do {
|
||||
crc(argv[1]);
|
||||
argv++;
|
||||
argc--;
|
||||
} while (argc > 1);
|
||||
exit(errs != 0);
|
||||
}
|
||||
|
||||
/* Crctab calculated by Mark G. Mendel, Network Systems Corporation */
|
||||
static unsigned short crctab[256] = {
|
||||
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
|
||||
0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
|
||||
0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,
|
||||
0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,
|
||||
0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,
|
||||
0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,
|
||||
0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,
|
||||
0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,
|
||||
0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,
|
||||
0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,
|
||||
0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,
|
||||
0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,
|
||||
0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,
|
||||
0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,
|
||||
0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,
|
||||
0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,
|
||||
0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,
|
||||
0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,
|
||||
0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,
|
||||
0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,
|
||||
0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,
|
||||
0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
|
||||
0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,
|
||||
0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,
|
||||
0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,
|
||||
0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,
|
||||
0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,
|
||||
0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,
|
||||
0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,
|
||||
0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,
|
||||
0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,
|
||||
0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0
|
||||
};
|
||||
|
||||
/* Updcrc macro derived from article Copyright (C) 1986 Stephen Satchell.
|
||||
* NOTE: First argument must be in range 0 to 255.
|
||||
* Second argument is referenced twice.
|
||||
*
|
||||
* Programmers may incorporate any or all code into their programs,
|
||||
* giving proper credit within the source. Publication of the
|
||||
* source routines is permitted so long as proper credit is given
|
||||
* to Stephen Satchell, Satchell Evaluations and Chuck Forsberg,
|
||||
* Omen Technology.
|
||||
*/
|
||||
|
||||
#define updcrc(cp, crc) ( crctab[((crc >> 8) & 255)] ^ (crc << 8) ^ cp)
|
||||
|
||||
crc(fname)
|
||||
char *fname;
|
||||
{
|
||||
register int c;
|
||||
register int i;
|
||||
register long len = 0;
|
||||
register unsigned short crc = 0;
|
||||
register FILE *fp;
|
||||
|
||||
if (fname == NULL)
|
||||
fp = stdin;
|
||||
else if ((fp = fopen(fname, "r")) == NULL) {
|
||||
fprintf(stderr, "crc: cannot open %s\n", fname);
|
||||
errs++;
|
||||
return;
|
||||
}
|
||||
while ((c = getc(fp)) != EOF) {
|
||||
len++;
|
||||
crc = updcrc(c, crc);
|
||||
}
|
||||
printf("%05u %6ld", crc, len);
|
||||
if (fname) {
|
||||
printf(" %s", fname);
|
||||
fclose(fp);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
BIN
Minix/old/demo/dyer512.prg
Normal file
BIN
Minix/old/demo/dyer512.prg
Normal file
Binary file not shown.
91
Minix/old/demo/file2dsk.c
Normal file
91
Minix/old/demo/file2dsk.c
Normal file
@@ -0,0 +1,91 @@
|
||||
/*
|
||||
File to disk moving utility for the Atari ST
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
char buffer[4610];
|
||||
main(argc,argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
{
|
||||
|
||||
int i,handle,result=1,drive=0,sector=1,track=0,side=0,done,count=0;
|
||||
char dummy[255];
|
||||
long filler=0,buflen=4608;
|
||||
FILE *infile;
|
||||
|
||||
printf("file2dsk.ttp -- (c)1991 Ken Corey (aka kenc@vaxb.acs.unt.edu)\n");
|
||||
printf("Intended for use with the demonstration distribution of \n MINIX-ST (c)1990 Prentice Hall\n");
|
||||
if(argc<2)
|
||||
{
|
||||
printf("\nThis program will transfer a file onto a disk bit for bit.\n");
|
||||
printf("It's meant to be used with the Minix demo software, though it will\n");
|
||||
printf("use any file. Use with other files will no doubt lead to\n");
|
||||
printf("interesting deadly, and useless (8^)) results.\n");
|
||||
printf("\nUsage: file2dsk demo_dsk.st [B:]\n");
|
||||
printf("\nwill copy the file demo_dsk.st onto a floppy, bit for bit, sector for sector.\n");
|
||||
printf("2 Caveats:\n\n");
|
||||
printf(" 1)This software will completely erase any extant info on the floppy.\n");
|
||||
printf("\n 2)The disk must previously be formatted out to single sided,\n");
|
||||
printf(" using the standard st desktop. No other configuration has been tested!\n");
|
||||
printf("\n\n BTW, have a great day!\n");
|
||||
|
||||
printf("Hint: hit a key to exit to desktop....");
|
||||
gets(dummy);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if(argc==3)
|
||||
drive=1;
|
||||
printf("\nOkay, I'm gonna use '%s' as the filename.\n",argv[1]);
|
||||
printf("Please insert a freshly formatted, SINGLE sided floppy in drive ");
|
||||
if(drive==0)
|
||||
printf("A:\n");
|
||||
else
|
||||
printf("B:\n");
|
||||
printf("and hit return...\n\n");
|
||||
printf("THIS FLOPPY WILL BE COMPLETELY ERASED!");
|
||||
|
||||
gets(dummy);
|
||||
|
||||
result=gemdos(0x3D,argv[1],0);
|
||||
if (result<0)
|
||||
{
|
||||
printf("I couldn't open the file '%s'!\n",argv[1]);
|
||||
exit(result);
|
||||
}
|
||||
|
||||
handle=result;
|
||||
|
||||
while((track<=80)&&(count<0x2D0)&&(done!=1))
|
||||
{
|
||||
for(i=0;i<4610;buffer[i++]=0xE5) ;
|
||||
|
||||
result=gemdos(0x3F,handle,buflen,&buffer[0]);
|
||||
if (result<0)
|
||||
{
|
||||
printf("Error in reading '%s'!\n",argv[1]);
|
||||
exit(result);
|
||||
}
|
||||
|
||||
if(result==0)
|
||||
done=1;
|
||||
|
||||
printf("%d--%d t--s\n",track,sector);
|
||||
|
||||
result=xbios(0x9,&buffer[0],filler,drive,sector,track,side,9);
|
||||
if(result<0)
|
||||
{
|
||||
printf("Error in writing to drive A:!\n");
|
||||
exit(result);
|
||||
}
|
||||
|
||||
track += 1;
|
||||
count += 9;
|
||||
}
|
||||
|
||||
printf("All done!\n");
|
||||
|
||||
}
|
||||
|
||||
72
Minix/old/demo/file2dsk.doc
Normal file
72
Minix/old/demo/file2dsk.doc
Normal file
@@ -0,0 +1,72 @@
|
||||
This file describes two ways of getting an Atari ST boot image file onto a
|
||||
floppy disk. One method uses two drives. The other uses a RAM disk and
|
||||
one drive. Read this file to select the one most appropriate for your system.
|
||||
|
||||
|
||||
------------------------------ Method 1 ------------------------------
|
||||
file2dsk.ttp -- (c) 1991 Ken Corey (aka kenc@vaxb.acs.unt.edu)
|
||||
|
||||
This program is intended to copy the demonstration copy of MINIX-ST to floppy
|
||||
disk. Any other use indicates a warped mind, and you should get help fast!
|
||||
Why? Because this copies a file bit for bit, sector for sector to the A:
|
||||
floppy. No questions asked. It'll work with any file, and can thoroughly
|
||||
confuse and trash TOS, forcing a reboot.
|
||||
|
||||
Usage is simple:
|
||||
|
||||
file2dsk filename.ext [B:]
|
||||
|
||||
Where filename.ext can be any legal pathname, ending with filename.ext.
|
||||
|
||||
The B: on the end is optional. Matter of fact, any extra word out there
|
||||
means to use drive B:. (For instance, you could type 'BILL' out there)
|
||||
and file2dsk would assume you had meant drive b.
|
||||
|
||||
WARNING: This program will eat whatever is stored on the drive you chose.
|
||||
Matter of fact, you should format the floppy as single sided, USING THE
|
||||
DESKTOP, prior to using this program! No other configuration is supported,
|
||||
recommended, allowed or condoned. (We'll get Guido out after the offenders)
|
||||
|
||||
Once you've done this, you must turn the ST off for a few seconds, because it
|
||||
still thinks that the floppy in drive A: is not bootable, and won't pay any
|
||||
attention if you simply hit the reset button. Turn your ST on, give it about
|
||||
15 seconds, and you should hear the magical sound of the floppy booting, and
|
||||
see the screen go black. You're on your own from there!
|
||||
|
||||
Any questions, or comments, you can reach me at my internet address
|
||||
kenc@vaxb.acs.unt.edu
|
||||
|
||||
or, (yikes), snail mail at 117 Lake Vista West
|
||||
Lewisville, TX 75067
|
||||
214/221-4469 (evenings only)
|
||||
|
||||
I am in no way affiliated with Prentice Hall, or Minix-st.
|
||||
MINIX-ST is (c) 1990 Prentice Hall
|
||||
|
||||
|
||||
Yeah, the BS rights area....hm....
|
||||
|
||||
This program MAY NOT be charged for other than the costs of duplication. I'll
|
||||
be happy to send uuencoded versions to anyone who needs it, assuming they have
|
||||
access to internet. If someone reads this, and MUST have a copy, I'll mail
|
||||
the source (in Sozobon C) and program on a floppy for $4.00...cheap, but that's
|
||||
my price.
|
||||
|
||||
|
||||
|
||||
------------------------------ Method 2 ------------------------------
|
||||
If you have only one drive, you can use a RAMDISK. Download the file
|
||||
dyer512.prg. If not yet present, make a subdirectory A:\AUTO on the floppy
|
||||
that by now should contain dyer512.prg, demo_dsk.st and file2dsk.ttp.
|
||||
Copy dyer512.prg into the A:\AUTO directory. Reboot from this floppy.
|
||||
Now you can:
|
||||
|
||||
- Go into command mode (by clicking COMMAND.PRG or GULAM.PRG, or some
|
||||
other command language program).
|
||||
- Copy demo_dsk.st and file2dsk.ttp onto M:
|
||||
- Change working directory to M:
|
||||
- Remove A:
|
||||
- Insert the fresh formatted demo disk
|
||||
- Use file2dsk.ttp to copy demo_dsk.st onto A:
|
||||
|
||||
|
||||
BIN
Minix/old/demo/file2dsk.ttp
Normal file
BIN
Minix/old/demo/file2dsk.ttp
Normal file
Binary file not shown.
39
Minix/old/demo/posting
Normal file
39
Minix/old/demo/posting
Normal file
@@ -0,0 +1,39 @@
|
||||
MINIX is a UNIX-like operating system for the IBM PC, XT, AT, 386,
|
||||
and PS/2, as well as the Apple Macintosh, Commodore Amiga, Atari ST, and
|
||||
later in 1991, Sun SPARC. It is available with all the source code for
|
||||
the entire operating system, the libraries, and nearly 200 UNIX-like
|
||||
utilities.
|
||||
|
||||
Demonstration disks for the IBM PC line and Atari ST are available for free
|
||||
via anonymous FTP for people on the Internet. A Macintosh version will be
|
||||
online soon. (If you can't wait, see below.)
|
||||
|
||||
To get a free demo disk and the manual, use ftp to connect to
|
||||
ftp.cs.vu.nl (192.31.231.42) and look in pub/minix/demo. The READ_ME
|
||||
file describes the contents of the directory and how to use it. Be sure to
|
||||
fetch and read this first. It contains important information.
|
||||
|
||||
If you don't have FTP access, you can buy the demo disk package from Prentice-
|
||||
Hall for $10 by calling (201) 767-5969 or FAX (201) 767-5625. Please DON'T
|
||||
ask me to send it by email. I have quite enough work already thank you.
|
||||
The ordering numbers for Prentice-Hall are:
|
||||
|
||||
- MINIX 1.5 IBM demo disk (0-13-582768-x) (in stock now)
|
||||
- MINIX 1.5 Atari demo disk (0-13-582792-2) (in stock now)
|
||||
- MINIX 1.5 Macintosh demo disk (0-13-582784-1) (in stock now)
|
||||
|
||||
Please note that although the demo disks are available for free on line,
|
||||
MINIX itself is copyrighted software and is not available on line. The
|
||||
demo disks are also copyrighted, but permission is hereby granted to
|
||||
upload and use them for evaluation purposes. The READ_ME file tells how
|
||||
MINIX can be ordered.
|
||||
|
||||
AS A COURTESY TO US, PLEASE DO NOT FTP DURING BUSINESS HOURS (EUROPEAN
|
||||
TIME). PLEASE FTP AFTER 11 A.M. EASTERN STANDARD TIME.
|
||||
|
||||
If you want to follow the MINIX discussion, read the comp.os.minix
|
||||
newsgroup, which is quite active and has almost 50,000 subscribers.
|
||||
|
||||
Have fun!
|
||||
|
||||
Andy Tanenbaum (ast@cs.vu.nl)
|
||||
182
Minix/old/demo/rawrite.c
Normal file
182
Minix/old/demo/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
Minix/old/demo/rawrite.doc
Normal file
86
Minix/old/demo/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
|
||||
102
Minix/old/demo/sparc.addendum
Normal file
102
Minix/old/demo/sparc.addendum
Normal file
@@ -0,0 +1,102 @@
|
||||
ADDENDUM TO THE MINIX MANUAL FOR THE SPARC DEMO DISK
|
||||
|
||||
Almost all of the
|
||||
"Reference Manual for the MINIX 1.5 Demonstration Disk"
|
||||
is applicable to the MINIX-SPARC 1.5 demo disk as well.
|
||||
This note explains the differences, on a section by section basis.
|
||||
|
||||
1. Introduction.
|
||||
|
||||
- SparcStations have no parallel port for printers. You might be able
|
||||
to use a serial port, although this is not tested.
|
||||
- SparcStations do not distinguish between real and protected mode.
|
||||
All addresses spaces are protected using the SparcStation MMU.
|
||||
- ethernet, remote login and network file transfer are currently
|
||||
not supported in the MINIX-SPARC 1.5 product.
|
||||
- The MINIX-SPARC 1.5 demo does support mounting of file systems, but
|
||||
has no provision to create new MINIX file systems.
|
||||
- the MINIX-SPARC demo has two editors: mined and vi.
|
||||
|
||||
1.1. Booting MINIX.
|
||||
|
||||
- step 2: read "internal floppy disk" for "drive 0"
|
||||
- step 4: do no hit the '=' key, but:
|
||||
- interrupt booting vmunix, if necessary, by hitting L1-a
|
||||
- insert the demo diskette
|
||||
- if you get the ">" prompt, type "b fd()"
|
||||
if you get the "ok " prompt, type "boot fd()"
|
||||
- step 5: if you simply hit "Return" the date will be set to the
|
||||
current Greenwich Mean Time, as stored in the RealTimeClock chip.
|
||||
|
||||
When you boot you will see 3 windows appearing on your screen.
|
||||
You can switch windows by hitting the "L1"/"Stop" key. The window
|
||||
with the highlighted border will receive keyboard input.
|
||||
|
||||
To eject the diskette from the diskette unit you can hit the
|
||||
"L2"/"Again" key.
|
||||
|
||||
If you want to reboot (SunOS or MINIX), you can type "CTRL-ALT-DEL".
|
||||
|
||||
1.2 Making and Mounting File Systems.
|
||||
|
||||
For the other hardware platforms (IBM/PC, Atari ST, etc.) the demo
|
||||
disk is rather full. To do some useful work this section describes
|
||||
how to create some working space. For MINIX-SPARC this is not needed,
|
||||
so you can skip this section.
|
||||
|
||||
1.3 Using the Mined Editor.
|
||||
|
||||
In addition to Mined, the MINIX-SPARC demo comes with Vi.
|
||||
Most of the Vi commands, as described in the SunOS documentation,
|
||||
will work.
|
||||
For Mined, the function keys are the same as for the Atari ST
|
||||
|
||||
1.5 Printing.
|
||||
|
||||
As mentioned above, printing is not fully tested.
|
||||
|
||||
2. Manual Pages
|
||||
|
||||
The command mkfs, to make new file systems, is not present on the
|
||||
MINIX-SPARC demo disk.
|
||||
|
||||
Commands that are added to the MINIX-SPARC demo disk are: mv, vi
|
||||
and readall. The commansd mv and vi will be familiar to users of
|
||||
a SparcStation. The manual page for readall is:
|
||||
|
||||
Command: read a device quickly to check for bad blocks
|
||||
Syntax: readall [-bt] file
|
||||
Flags: -b Produce shell script on stdout that calls badblocks
|
||||
-t Just print device size
|
||||
Example: readall /dev/hd0 Read all of /dev/hd0
|
||||
readall -b /dev/hd1 >s Generate shell script on s
|
||||
Readall reads all of the named device in large chunks. It reports about
|
||||
blocks that it cannot read. Unlike diskcheck, it does not attempt to
|
||||
write on the disk, making it safer to use when one is worried about a
|
||||
sick system When the -b flag is given, the output is a shell script
|
||||
that calls the badblocks program to marked all the bad blocks.
|
||||
Whenever installing MINIX it is wise to run readall with the -b flag
|
||||
first on all the hard disks.
|
||||
|
||||
3. Description of Full MINIX 1.5
|
||||
|
||||
3.1. MINIX Reference Manual Table of Contents
|
||||
|
||||
Additional chapter for:
|
||||
Installing MINIX on a SparcStation
|
||||
Additional section for:
|
||||
Rebuilding MINIX on a SparcStation
|
||||
|
||||
3.2. Partial list of programs supplied with MINIX
|
||||
|
||||
Additional Programs:
|
||||
as: GNU Sparc Assembler
|
||||
cc: GNU C Compiler
|
||||
chtime: change the local time
|
||||
cv: convert GNU executable to MINIX
|
||||
fdeject: eject a diskette from the drive
|
||||
fdformat: format a diskette
|
||||
gnm: print name list
|
||||
gsize: print segment sizes of a GNU-type object file
|
||||
gstrip: (partially) remove symbol table
|
||||
ld: object file linker
|
||||
Reference in New Issue
Block a user