add directory Minix

This commit is contained in:
gohigh
2024-02-19 00:21:39 -05:00
parent 56596ada90
commit 5a46ddb732
2923 changed files with 1764412 additions and 0 deletions

Binary file not shown.

189
Minix/old/demo/READ_ME Normal file
View 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

Binary file not shown.

104
Minix/old/demo/crc.c Normal file
View 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

Binary file not shown.

91
Minix/old/demo/file2dsk.c Normal file
View 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");
}

View 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

Binary file not shown.

39
Minix/old/demo/posting Normal file
View 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
View 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 */

View 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

View 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