diff --git a/Linux-0.12/INSTALL/partition-programs/edpart.arc b/Linux-0.12/INSTALL/partition-programs/edpart.arc new file mode 100644 index 00000000..02f0f406 Binary files /dev/null and b/Linux-0.12/INSTALL/partition-programs/edpart.arc differ diff --git a/Linux-0.12/INSTALL/partition-programs/edpart.doc b/Linux-0.12/INSTALL/partition-programs/edpart.doc new file mode 100644 index 00000000..9274265e --- /dev/null +++ b/Linux-0.12/INSTALL/partition-programs/edpart.doc @@ -0,0 +1,31 @@ +Edpart.exe is a disk partition editor capable of managing up to four +partitions on PC/XT and AT hard disks. It specifically says "no +copyright", so I figured someone else might like to use it rather than +doing fdisk/diskfix pairs to create partitions. + +There's no instruction file and no real on-line help, so here's a +summary: + +EDPART.EXE maintains up to four hard disk partitions on either of two +hard drives. If it sees more than one hard drive, it will ask which +one to edit. + +The commands are: + +CREATE Create hard disk partitions +DELETE Delete hard disk partitions +STATUS Bootable partitions may have the following status: + ACTIVE This partition is the boot partition + READ/WRITE R/W, not the boot partition + Non-bootable partitions (``extensions'') may be any of: + READ/WRITE + READ-ONLY + INACCESSIBLE +TYPE There are four types; for Minix purposes, either "extension" + type will do to my knowledge. + DOS(4) Bootable For DOS 3.x + DOS(4) Extension + DOS(1) Bootable For DOS 2.x + DOS(1) Extension + The "Bootable" partitions are recognized by MS-DOS directly, + so I don't advise using either of them for Minix. diff --git a/Linux-0.12/INSTALL/partition-programs/pdisk.arc b/Linux-0.12/INSTALL/partition-programs/pdisk.arc new file mode 100644 index 00000000..d4abbcc6 Binary files /dev/null and b/Linux-0.12/INSTALL/partition-programs/pdisk.arc differ diff --git a/Linux-0.12/INSTALL/partition-programs/pdisk.doc b/Linux-0.12/INSTALL/partition-programs/pdisk.doc new file mode 100644 index 00000000..8d6a415d --- /dev/null +++ b/Linux-0.12/INSTALL/partition-programs/pdisk.doc @@ -0,0 +1,79 @@ +This stuff is mostly self explanatory, but: + part takes one optional argument, which is the disk number with + which to start (either 0 or 1. 0 is default). + + 286pd1.sys and 286pd2.sys are for driving partitions on your first + and second disks, respectively. They will only work on 80186 or higher + processors. For 8086/8088 computers, use pdisk1.sys, pdisk2.sys. They + are just a *wee* bit slower.... + + fdins is for use when you're short of free space in "low menory" -- + i.e. free interrupt vectors. fdintins, on the other hand, doesn't + use up any application space memory. In either case, these programs + don't do *anything* directly -- you run them in order to create a + .COM program that does the dirty work. You get TBL1.com, TBL2.com, + TBL1INT.com, or TBL2INT.com, depending on whether you run fdins, + fdintins and specifiy disk 1 or 2 (== 0 or 1). + + pformat is for when you want to be particularly destructive with your + new partition. You run "pformat :" where must be a + valid pdisk. It's good for marking newly developed bad sectors, + I guess. Be careful. + +According to tests I ran with the PC Magazine benchmark program, disk access +to a pdisk is actually faster than the normal DOS driver (i.e. C: or a DOS +3.3/4.x extended DOS partition). (This may only be true using the 286 version, +and may be affected by your usage. The main point is that you certainly do +not take a performance *cut* by using my program.) + +I am not including most of the COPYING file that comes with stuff from the +Free Software Foundation (Richard Stallman, et al.) because I don't know +if I'm allowed, but that's what I intend for this software. Specifically, +you can *give* away as many copies of this software as you like. You can +charge a *reasonable* handling fee. You can even incorporate parts of it +into other projects, as long as you distribute at least the source you got +from pdisk. I don't want money or contributions, I want plaudits. I hope +this software is helpful to you. + +When you find the inevitable bug (there are *none* in the driver, but I +don't absolutely swear for the partitioning program), please try to +fix it yourself and let me know the solution. Failing that, drop me a +line describing the situation exactly, especially including DOS version and +all hardware, including fixed disk and controller type. I don;t promise +to do anything about it, but I might. + +One thing I recommend from experience: my boot code will only work on some +IBM compatibles. It is best to use the manafacturer's (or generic) MSDOS +fdisk to set up the initial partition, then use "format c: /s" to set up +your bootable DOS partition. If you can get this working right with pdisk, +that would be nice. + +have fun. Scott E. Garfinkle + smsdpg!seg@uunet.uu.net + + + + NO WARRANTY + + BECAUSE PDISK IS LICENSED FREE OF CHARGE, WE PROVIDE ABSOLUTELY NO +WARRANTY, TO THE EXTENT PERMITTED BY APPLICABLE STATE LAW. EXCEPT +WHEN OTHERWISE STATED IN WRITING, SCOTT GARFINKLE +AND/OR OTHER PARTIES PROVIDE PDISK "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 PDISK IS WITH YOU. SHOULD PDISK PROVE DEFECTIVE, YOU +ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL SCOTT GARFINKLE +AND/OR ANY OTHER PARTY +WHO MAY MODIFY AND REDISTRIBUTE PDISK AS PERMITTED ABOVE, BE LIABLE TO +YOU FOR DAMAGES, INCLUDING ANY LOST PROFITS, LOST MONIES, OR OTHER +SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS) PDISK, EVEN +IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR +ANY CLAIM BY ANY OTHER PARTY. diff --git a/Linux-0.12/INSTALL/rawrite.c b/Linux-0.12/INSTALL/rawrite.c new file mode 100644 index 00000000..4ac1f1cb --- /dev/null +++ b/Linux-0.12/INSTALL/rawrite.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include + +#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 */ diff --git a/Linux-0.12/INSTALL/rawrite.doc b/Linux-0.12/INSTALL/rawrite.doc new file mode 100644 index 00000000..09a815b9 --- /dev/null +++ b/Linux-0.12/INSTALL/rawrite.doc @@ -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 diff --git a/Linux-0.12/INSTALL/rawrite.exe b/Linux-0.12/INSTALL/rawrite.exe new file mode 100644 index 00000000..a4a464ba Binary files /dev/null and b/Linux-0.12/INSTALL/rawrite.exe differ diff --git a/Linux-0.12/binaries/compilers/as86.tar.Z b/Linux-0.12/binaries/compilers/as86.tar.Z new file mode 100644 index 00000000..daf3ceb0 Binary files /dev/null and b/Linux-0.12/binaries/compilers/as86.tar.Z differ diff --git a/Linux-0.12/binaries/compilers/bison.tar.Z b/Linux-0.12/binaries/compilers/bison.tar.Z new file mode 100644 index 00000000..9c654c02 Binary files /dev/null and b/Linux-0.12/binaries/compilers/bison.tar.Z differ diff --git a/Linux-0.12/binaries/compilers/flex.tar.Z b/Linux-0.12/binaries/compilers/flex.tar.Z new file mode 100644 index 00000000..083dfb0c Binary files /dev/null and b/Linux-0.12/binaries/compilers/flex.tar.Z differ diff --git a/Linux-0.12/binaries/compilers/gccbin.tar.Z b/Linux-0.12/binaries/compilers/gccbin.tar.Z new file mode 100644 index 00000000..078fa263 Binary files /dev/null and b/Linux-0.12/binaries/compilers/gccbin.tar.Z differ diff --git a/Linux-0.12/binaries/lib/curses.tar.Z b/Linux-0.12/binaries/lib/curses.tar.Z new file mode 100644 index 00000000..5191c2c0 Binary files /dev/null and b/Linux-0.12/binaries/lib/curses.tar.Z differ diff --git a/Linux-0.12/binaries/lib/libc-0.12.a.Z b/Linux-0.12/binaries/lib/libc-0.12.a.Z new file mode 100644 index 00000000..d4872ab6 Binary files /dev/null and b/Linux-0.12/binaries/lib/libc-0.12.a.Z differ diff --git a/Linux-0.12/binaries/lib/libsdbm.a b/Linux-0.12/binaries/lib/libsdbm.a new file mode 100644 index 00000000..3a77f0a5 Binary files /dev/null and b/Linux-0.12/binaries/lib/libsdbm.a differ diff --git a/Linux-0.12/binaries/sbin/bash-1.12.tar.Z b/Linux-0.12/binaries/sbin/bash-1.12.tar.Z new file mode 100644 index 00000000..591fdfdd Binary files /dev/null and b/Linux-0.12/binaries/sbin/bash-1.12.tar.Z differ diff --git a/Linux-0.12/binaries/sbin/mkswap b/Linux-0.12/binaries/sbin/mkswap new file mode 100644 index 00000000..8f19a507 Binary files /dev/null and b/Linux-0.12/binaries/sbin/mkswap differ diff --git a/Linux-0.12/binaries/sbin/stty b/Linux-0.12/binaries/sbin/stty new file mode 100644 index 00000000..20d8f982 Binary files /dev/null and b/Linux-0.12/binaries/sbin/stty differ diff --git a/Linux-0.12/binaries/sbin/update.Z b/Linux-0.12/binaries/sbin/update.Z new file mode 100644 index 00000000..e18ec7af Binary files /dev/null and b/Linux-0.12/binaries/sbin/update.Z differ diff --git a/Linux-0.12/binaries/usr.bin/Zoo.Fiz.note b/Linux-0.12/binaries/usr.bin/Zoo.Fiz.note new file mode 100644 index 00000000..85d27728 --- /dev/null +++ b/Linux-0.12/binaries/usr.bin/Zoo.Fiz.note @@ -0,0 +1,6 @@ +This is zoo and fiz from Rahul Dhesi compiled for Linux. It is a very +popular PD archiver in the Ms-Dog world. + +Roger + +cs89rdb@brunel.ac.uk diff --git a/Linux-0.12/binaries/usr.bin/beav-1.20.tar.Z b/Linux-0.12/binaries/usr.bin/beav-1.20.tar.Z new file mode 100644 index 00000000..0ebe7de2 Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/beav-1.20.tar.Z differ diff --git a/Linux-0.12/binaries/usr.bin/beav.README b/Linux-0.12/binaries/usr.bin/beav.README new file mode 100644 index 00000000..c8b0d77b --- /dev/null +++ b/Linux-0.12/binaries/usr.bin/beav.README @@ -0,0 +1,58 @@ + This is the latest release of BEAV. I am posting it to alt.sources +because I my posting to comp.sources.unix has not been released by the +moderator. It has sat in the mill for over 3 months. I would like +to find an archive for the source. If someone would like to archive it +and tell me where I would be most appreciative. If this is not propper +protocol please excuse me, I am reletively new to news. + + This release 1.20 of BEAV (Binary Editor And Viewer), +a full featured binary file editor. Just about any operation that +you could want to do to a binary file is possible with BEAV. You +can insert or delete in the middle of a file thereby changing it's size. +You can display and edit data in hex, octal, decimal, binary, ascii, +or ebcdic formats. You can display data in byte, word, or long word +formats in either Intel or Motorola byte ordering. You can send the +formatted display mode to a file or printer. + + Version 1.20 (3/10/91) of beav contains the following +fixes and enhancements; + +* Under unix files are created with read/write + permissions. + +* Fixed the bug in the terminal I/O routine that + caused beav to spin rather than give up control when + waiting for a character. + +* Added the ANSI #define that was missing for MSDOS. + +* Changed the D16 #define to a unsigned short. + +* Called ttclose on error exit. + +* Check and limit ncol and nrow to the actual screen + array size. + +* Add the ability to load key bindings from a file + automatically under MSDOS and unix. + +* Add delete current window command. + +* Support VT100 type function keys. + + BEAV is based on the source for emacs for display and keyboard handling +functions. The binary file handling and display formats are special +to BEAV. There is a full manual included in this release. There +are makefiles for unix, xenix 286, and MSC 5.1 under DOS. The old Wang PC +is supported. This has been tested on 286 and 386 PC's under SCO UNIX and +XENIX as well as under UNIX on a MIPS system. + I am willing to maintain BEAV and will entertain suggestions for +modifications and/or bug fixes. I can be reached at; + + pvr@wang.com + +or at; + + Peter Reilley + 19 Heritage Cir. + Hudson, N.H. 03051 diff --git a/Linux-0.12/binaries/usr.bin/bootmenu.tar.Z b/Linux-0.12/binaries/usr.bin/bootmenu.tar.Z new file mode 100644 index 00000000..bd4ab3b1 Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/bootmenu.tar.Z differ diff --git a/Linux-0.12/binaries/usr.bin/cawf.tar.Z b/Linux-0.12/binaries/usr.bin/cawf.tar.Z new file mode 100644 index 00000000..392311f2 Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/cawf.tar.Z differ diff --git a/Linux-0.12/binaries/usr.bin/diff.Z b/Linux-0.12/binaries/usr.bin/diff.Z new file mode 100644 index 00000000..0d75080e Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/diff.Z differ diff --git a/Linux-0.12/binaries/usr.bin/diff3.Z b/Linux-0.12/binaries/usr.bin/diff3.Z new file mode 100644 index 00000000..77fe7e77 Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/diff3.Z differ diff --git a/Linux-0.12/binaries/usr.bin/diffbin.tar.Z b/Linux-0.12/binaries/usr.bin/diffbin.tar.Z new file mode 100644 index 00000000..803976fa Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/diffbin.tar.Z differ diff --git a/Linux-0.12/binaries/usr.bin/emacs/EM-diffs.Z b/Linux-0.12/binaries/usr.bin/emacs/EM-diffs.Z new file mode 100644 index 00000000..5c36d807 Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/emacs/EM-diffs.Z differ diff --git a/Linux-0.12/binaries/usr.bin/emacs/README b/Linux-0.12/binaries/usr.bin/emacs/README new file mode 100644 index 00000000..282c0f8a --- /dev/null +++ b/Linux-0.12/binaries/usr.bin/emacs/README @@ -0,0 +1,24 @@ +EMACS 18.57 patches for Linux 0.12: + +These patches are in two parts: + +1) two small kernel patches to fix some minor problems (fs-diff): + select.c: a pipe with no writer should select as readable to + allow detection of EOF + also, the kernel now silently corrects any attempts to + select more file descriptors than are supported (this + avoids the bit loss on left shift problem reported on + the activists list) + + pipe.c: (I sent this to Linus for 0.12, but it didn't make it): + reads on a pipe should return partial results. + Otherwise, programs expecting to get such reads will + work weirdly. + +2) patches to the EMACS 18.57 distribution to build it for Linux-0.12. + +Shar & enjoy, + + +John Kohl +jtkohl@cs.berkeley.edu diff --git a/Linux-0.12/binaries/usr.bin/emacs/emacs-etc.tar.Z b/Linux-0.12/binaries/usr.bin/emacs/emacs-etc.tar.Z new file mode 100644 index 00000000..96fe9845 Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/emacs/emacs-etc.tar.Z differ diff --git a/Linux-0.12/binaries/usr.bin/emacs/emacs-lisp.tar.Z b/Linux-0.12/binaries/usr.bin/emacs/emacs-lisp.tar.Z new file mode 100644 index 00000000..e3b6c7d9 Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/emacs/emacs-lisp.tar.Z differ diff --git a/Linux-0.12/binaries/usr.bin/emacs/fs-diff.Z b/Linux-0.12/binaries/usr.bin/emacs/fs-diff.Z new file mode 100644 index 00000000..10b7d6c9 Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/emacs/fs-diff.Z differ diff --git a/Linux-0.12/binaries/usr.bin/fileutil.tar.Z b/Linux-0.12/binaries/usr.bin/fileutil.tar.Z new file mode 100644 index 00000000..d478ce75 Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/fileutil.tar.Z differ diff --git a/Linux-0.12/binaries/usr.bin/fiz b/Linux-0.12/binaries/usr.bin/fiz new file mode 100644 index 00000000..a775d82d Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/fiz differ diff --git a/Linux-0.12/binaries/usr.bin/gawk b/Linux-0.12/binaries/usr.bin/gawk new file mode 100644 index 00000000..e752fea9 Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/gawk differ diff --git a/Linux-0.12/binaries/usr.bin/gawk.Z b/Linux-0.12/binaries/usr.bin/gawk.Z new file mode 100644 index 00000000..1075f207 Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/gawk.Z differ diff --git a/Linux-0.12/binaries/usr.bin/install.tar.Z b/Linux-0.12/binaries/usr.bin/install.tar.Z new file mode 100644 index 00000000..cf3f4bd7 Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/install.tar.Z differ diff --git a/Linux-0.12/binaries/usr.bin/joe.tar.gz b/Linux-0.12/binaries/usr.bin/joe.tar.gz new file mode 100644 index 00000000..808bb53c Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/joe.tar.gz differ diff --git a/Linux-0.12/binaries/usr.bin/kermit.Z b/Linux-0.12/binaries/usr.bin/kermit.Z new file mode 100644 index 00000000..3393666b Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/kermit.Z differ diff --git a/Linux-0.12/binaries/usr.bin/less.Z b/Linux-0.12/binaries/usr.bin/less.Z new file mode 100644 index 00000000..2a3faa3d Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/less.Z differ diff --git a/Linux-0.12/binaries/usr.bin/mg b/Linux-0.12/binaries/usr.bin/mg new file mode 100644 index 00000000..43aba69b Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/mg differ diff --git a/Linux-0.12/binaries/usr.bin/patch.Z b/Linux-0.12/binaries/usr.bin/patch.Z new file mode 100644 index 00000000..d6f34330 Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/patch.Z differ diff --git a/Linux-0.12/binaries/usr.bin/pmake/pm_supp.tar.Z b/Linux-0.12/binaries/usr.bin/pmake/pm_supp.tar.Z new file mode 100644 index 00000000..8d3d455c Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/pmake/pm_supp.tar.Z differ diff --git a/Linux-0.12/binaries/usr.bin/pmake/pmake.README b/Linux-0.12/binaries/usr.bin/pmake/pmake.README new file mode 100644 index 00000000..5eef34e5 --- /dev/null +++ b/Linux-0.12/binaries/usr.bin/pmake/pmake.README @@ -0,0 +1,11 @@ +pmake.Z is the make from the bsd net release #2. +pm_supp.tar.Z is a tar file of some support "include" files used +by that version of make. + +It may not completely correctly handle error conditions from children, +since I had to guess a bit on how to recode its abuse of the old +union wait. + +John Kohl +jtkohl@cs.berkeley.edu +[sources on request; that's another kermit, though.] diff --git a/Linux-0.12/binaries/usr.bin/pmake/pmake.Z b/Linux-0.12/binaries/usr.bin/pmake/pmake.Z new file mode 100644 index 00000000..26d480f3 Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/pmake/pmake.Z differ diff --git a/Linux-0.12/binaries/usr.bin/sed.Z b/Linux-0.12/binaries/usr.bin/sed.Z new file mode 100644 index 00000000..d7e7c43d Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/sed.Z differ diff --git a/Linux-0.12/binaries/usr.bin/tr.Z b/Linux-0.12/binaries/usr.bin/tr.Z new file mode 100644 index 00000000..b5c76ce0 Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/tr.Z differ diff --git a/Linux-0.12/binaries/usr.bin/uemacs-linux.tar.Z b/Linux-0.12/binaries/usr.bin/uemacs-linux.tar.Z new file mode 100644 index 00000000..952cefab Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/uemacs-linux.tar.Z differ diff --git a/Linux-0.12/binaries/usr.bin/uemacs.Z b/Linux-0.12/binaries/usr.bin/uemacs.Z new file mode 100644 index 00000000..0d511bcf Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/uemacs.Z differ diff --git a/Linux-0.12/binaries/usr.bin/utils.tar.Z b/Linux-0.12/binaries/usr.bin/utils.tar.Z new file mode 100644 index 00000000..173c0a16 Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/utils.tar.Z differ diff --git a/Linux-0.12/binaries/usr.bin/vcutil.tar.Z b/Linux-0.12/binaries/usr.bin/vcutil.tar.Z new file mode 100644 index 00000000..7c5aeabe Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/vcutil.tar.Z differ diff --git a/Linux-0.12/binaries/usr.bin/vi.Z b/Linux-0.12/binaries/usr.bin/vi.Z new file mode 100644 index 00000000..2b87a933 Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/vi.Z differ diff --git a/Linux-0.12/binaries/usr.bin/zoo b/Linux-0.12/binaries/usr.bin/zoo new file mode 100644 index 00000000..df12ed53 Binary files /dev/null and b/Linux-0.12/binaries/usr.bin/zoo differ diff --git a/Linux-0.12/binaries/usr.games/banner.Z b/Linux-0.12/binaries/usr.games/banner.Z new file mode 100644 index 00000000..be2a95f8 Binary files /dev/null and b/Linux-0.12/binaries/usr.games/banner.Z differ diff --git a/Linux-0.12/binaries/usr.games/nh3p10bin.tar.Z b/Linux-0.12/binaries/usr.games/nh3p10bin.tar.Z new file mode 100644 index 00000000..155be534 Binary files /dev/null and b/Linux-0.12/binaries/usr.games/nh3p10bin.tar.Z differ diff --git a/Linux-0.12/docs/INFO-SHEET-0.12 b/Linux-0.12/docs/INFO-SHEET-0.12 new file mode 100644 index 00000000..a3da30ed --- /dev/null +++ b/Linux-0.12/docs/INFO-SHEET-0.12 @@ -0,0 +1,117 @@ + +LINUX INFORMATION SHEET +(last updated 13 Jan 1992) + +1. WHAT IS LINUX 0.12 + LINUX 0.12 is a freely distributable UNIX clone. It implements a +subset of System V and POSIX functionality. LINUX has been written +from scratch, and therefore does not contain any AT&T or MINIX +code--not in the kernel, the compiler, the utilities, or the libraries. +For this reason it can be made available with the complete source code +via anonymous FTP. LINUX runs only on 386/486 AT-bus machines; porting +to non-Intel architectures is likely to be difficult, as the kernel +makes extensive use of 386 memory management and task primitives. + + Version 0.12 is still a beta release, but it already provides much +of the functionality of a System V.3 kernel. For example, various +users have been able to port programs such as bison/flex without having +to modify code at all. Another indication of its maturity is that +it is now possible to do LINUX kernel development using LINUX itself +and freely-available programming tools. + +2. LINUX features + - System call compatible with a subset of System V and POSIX + - Full multiprogramming (multiple programs can run at once) + - Memory paging with copy-on-write + - Demand loading of executables + - Page sharing of executables + - Virtual memory: swapping to disk when out of RAM + - POSIX job control + - virtual consoles on EGA/VGA screens + - pty's + - some 387-emulation + - ANSI compliant C compiler (gcc) + - A complete set of compiler writing tools + (bison as yacc-replacement, flex as lex replacement) + - The GNU 'Bourne again' shell (bash) + - Micro emacs + - most utilities you need for development + (cat, cp, kermit, ls, make, etc.) + - Over 200 library procedures (atoi, fork, malloc, read, stdio, etc.) + - Currently 4 national keyboards: Finnish/US/German/French + - Full source code (in C) for the OS is freely distributable + - Full source code of the tools can be gotten from many anonymous ftp sites + (Almost the entire suite of GNU programs has been ported to Linux.) + - Runs in protected mode on 386 and above + - Support for extended memory up to 16M on 386 and above + - RS-232 serial line support with terminal emulation, kermit, zmodem, etc. + - Supports the real time clock + + +3. HARDWARE REQUIRED + - A 386 or 486 machine with an AT-bus. (EISA will probably work, also, + but you will need an AT-bus hard disk controller.) + Both DX and SX processors will work. + - A hard disk implementing the standard AT hard disk interface-- + for example, an IDE drive. SCSI drives are not supported yet. + - A high-density disk drive--either 5.25" (1.2MB) or 3.5" (1.44MB). + - At least 2 megabytes of RAM. (LINUX will boot in 2 Mb. To use + gcc 4 MB is a good idea.) + - Any video card of the following: Hercules,CGA,EGA,VGA + +In addition, LINUX supports + - Up to two serial lines + - A real time clock + +4. PARTIAL LIST OF UTILITIES INCLUDED IN OR AVAILABLE FOR LINUX 0.12 + - The MTOOLS package (reading/writing to DOS filesystems) + - The complete GNU filetools (ls, cat, cp, mv, ...) + - The GNU C compiler with GNU assembler, linker, ar, ... + - bison + - flex + - rcs + - pmake (BSD 4.3 Reno/BSD 4.4 make) + - kermit + - Micro emacs + - less + - mkfs + - fsck + - mount/umount + + +5. LINUX BINARIES + The LINUX binaries and sources are available at three + anonymous FTP sites. These are: + + nic.funet.fi:/pub/OS/Linux + tsx-11.mit.edu:/pub/linux + tupac-amaru.informatik.rwth-aachen.de:/pub/msdos/replace + + +6. LEGAL STATUS OF LINUX + Although LINUX is supplied with the complete source code, it is +copyrighted software. Unlike MINIX, however, it is available for free, +provided you obey to the rules specified in the LINUX copyright. + + +7. NEWS ABOUT LINUX + Since LINUX's introduction to the public there has been a rapidly +growing mailing list, "linux-activists@niksula.hut.fi". To subscribe to +this list, mail to "linux-activists-request@niksula.hut.fi". If the +traffic in this lists increases further, there are plans to swap ( at +least partially ) over to comp.os.misc, so watch out for any LINUX +articles in this group. For the current status of LINUX, do "finger +torvalds@kruuna.helsinki.fi". + + +8. FUTURE PLANS + Work is underway on LINUX version 1.0, which will close some of the +gaps in the present implementation. Various people are currently working +on: + - A virtual filesystem layer + - STREAMS + - init/getty/login + - Interprocess communication + - IEEE POSIX P1003.1 / P1003.2 compatibility + - SCSI support +If you want to help, join the mailing list. diff --git a/Linux-0.12/docs/README-0.12 b/Linux-0.12/docs/README-0.12 new file mode 100644 index 00000000..40e6c208 --- /dev/null +++ b/Linux-0.12/docs/README-0.12 @@ -0,0 +1,178 @@ +% ~ftp/pub/OS/Linux/README +% arl@hut.fi ed. +% Created: Tue Jul 16 03:36:31 1991 +% Last modified: Wed Jan 15 02:15:51 1992 + +----------------------------------------------------------------------- + + Linux -- The free Minix like Un*x clone is here. + +----------------------------------------------------------------------- + + This file is updated constantly. + NOT to be published ... contains unreleased information. + +----------------------------------------------------------------------- + + For hackers only Linux version 0.12 code and sources + available here. + + nic.funet.fi will also be site for Linux binaries, + + Directory structure: + + INSTALL contains everything you should + have to get Linux up and running. + + bin binaries for /bin, /usr/bin and + /usr/contrib/bin + doc documents and man pages + images boot and root images etc. + kernel kernel and driver sources + lib lib sources + tools tools for hackers, not for common + use + xtra community contributed diffs and + utilities. + incoming you can FTP 'put' your stuff here, + see next section for putting. + + Check file 'ls-laR', which contains "ls -laR" listing. + + Eh ... for people having question 'but my site doesn't + have FTP' ... + + Just mail to 'mailserver@nic.funet.fi' and put + command "help" to mail _body_ (body is the part + where you write your messages/text and is not + related to mail header, which contains lines + like 'To: foobar'). + + Mailserver is not official .. it's under testing, + to it might work or not, but don't flame me about + it ... I take only 'thanks' mails (nice to get them + for work you didn't do ;-) + +----------------------------------------------------------------------- + + Putting Linux stuff to nic.funet.fi ... + + Please use directory /pub/OS/Linux/incoming + + Please use FTP command "binary" for binary i.e. + stuff like *.tar, *.tar.Z, or runable binaries etc. + + Our FTP is _hacked_, so you or anybody won't + see the stuff in there, until I enable it. I try + to check directories constantly, but you might + also want to throw me a mail ?-) + +----------------------------------------------------------------------- + + If you are willing to support Linux development, + please "mail arl@hut.fi" .. and tell what goodies + you are willing to do - I try to organize. + + Or you might use mailing list ... + + Or you might want to send mail directly to + 'torvalds@cs.helsinki.fi' + +----------------------------------------------------------------------- + + 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 asked with "finger torvalds@kruuna.helsinki.fi" +here's sample entry: + +Free UNIX for the 386 - coming 4QR 91 or 1QR 92. + +Most system calls are now implemented (including mount/umount), and they +are almost POSIX, so porting programs to it is relatively easy. The +official version has still no floppy support, but that will be out next +week (and there is a update already, though not official). It still +needs minix to be installed (stand-alone boot-floppy coming this month). + +Linux can now be gotten by anonymous ftp from 'nic.funet.fi' in the +directory '/pub/OS/Linux'. The same directory also contains some binary +files to run under Linux. Currently gcc, bash, update, uemacs, tar, +make and fileutils. Several people with minix have gotten a running +system, but it's still a hackers kernel. + +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'. + +Mail for more info. + + Linus (torvalds@kruuna.helsinki.FI) + +----------------------------------------------------------------------- + + At HUT (Helsinki University of Technology) I try to + use students for programming work to make Linux better. + + So could you, if you are teacher. Linux might be + even more suitable for teaching purposes than Minix. + + My experiencies with Minix are not promising, I got about + 1/3 of given projects back i.e. 2/3 were unfinished. + Projects were like 'create symlinks to Minix' or + 'do a device driver for XX adapter'. + +----------------------------------------------------------------------- + + Some of the features I'd like to have (maybe I'll also + code them): + + o adding some features from my own OS. + - STREAMS I/O, now only subset + - Kernel development environment + Should be like configuring + BSD kernel. + + o Socket stuff from BSD. + o BSD net stuff or Xkernel. + + o Mach. I try to check what's usable in Mach. + I took keyboard stuff from Mach + to my own OS, but floppy stuff + was too complicated (spaghetti-code), + so I coded it again. + Maybe some parts of kernel is also usable. + + o Portability + o Modularity + Like device drivers should have + multiple levels; high/medium for + abstraction and low level for + specific card/chip support. + +----------------------------------------------------------------------- + + More info from: + + torvalds@kruuna.helsinki.fi + + arl diff --git a/Linux-0.12/docs/RELNOTES-0.12 b/Linux-0.12/docs/RELNOTES-0.12 new file mode 100644 index 00000000..1734ef85 --- /dev/null +++ b/Linux-0.12/docs/RELNOTES-0.12 @@ -0,0 +1,191 @@ + + + RELEASE NOTES FOR LINUX v0.12 + + +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 + +The Linux copyright will change: I've had a couple of requests to make +it compatible with the GNU copyleft, removing the "you may not +distribute it for money" condition. I agree. I propose that the +copyright be changed so that it confirms to GNU - pending approval of +the persons who have helped write code. I assume this is going to be no +problem for anybody: If you have grievances ("I wrote that code assuming +the copyright would stay the same") mail me. Otherwise The GNU copyleft +takes effect as of the first of February. If you do not know the gist +of the GNU copyright - read it. + + + INSTALLATION + +This is a SHORT install-note. The installation is very similar to 0.11, +so read that (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". + +1) back up everything you have on your harddisk - linux-0.12 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. + + 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. + +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. + +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 /user". Copy over the + root filesystem to the harddisk, eg like this: + + # for i in bin dev etc usr tmp + # do + # cp +recursive /$i /user + # done + + You caanot use just "cp +recursive / /user", as that will result in a + loop. + +6) Sync the filesystem after you have played around enough, and reboot. + + # sync + + ctrl-alt-del + + The folklore says you should do this three times before rebooting: + once should be enough, but I admit I do it three times anyway :) 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. + + +That's it. Go back and read the INSTALL-0.11 + + + New features of 0.12, in order of appearance + (ie in the order you see them) + + Linux now prints cute dots when loading + +WoW. Run, don't walk, to see this :). Seriously, it should hopefully now +load even on machines that never got off the ground before, but +otherwise the loading hasn't changed. Implemented by drew. + + Super-VGA detection for extended alphamun modes + +I cannot guarantee it, I didn't write it, but it works great on a ET400 +SVGA card. I'm addicted to the new look with 100x40 character editing, +instead of a cramped 80x25. This only works on VGA-cards that support +higher text-resolutions, and which are correctly identified. Implemented +by d88-man. + + Job Control. + +Ok, everybody used to typing ^Z after they started a long command, and +forgot to put it in the background - now it works on linux too. Bash +knows the usualy job-control commands: bg, fg, jobs & kill. I hope +there will be no nasty surprises. Job control was implemented by +tytso@athena.mit.edu. + + Virtual consoles on EGA/VGA screens. + +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. + +NOTE! Scrolling is noticeably much slower with virtual consoles on a +EGA/VGA. The reason is that no longer does linux use all the screen +memory as a long buffer, but crams in several consoles in it. I think +it's worth it. + +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). + + pty's + +Ok. I have to admit that I didn't get the hangup-code working correctly, +but that should be easy to add. The general things are there. + + select + +I've never used it, so I cannot say how well it works. My minor testing +seems to indicate that it works ok. vc's, pty's and select were +implemented by pmacdona, although I hacked it heavily. + + 387-emulation. + +It's not complete, but it works well enough to run those gcc2.0 compiled +programs I tested (few). None of the "heavy" math-functions are +implemented yet. + + Symbolic links. + +Try out a few "ln -s xx yy", and ls -l. Note that I think tar should be +recompiled to know anout them, and probably some other programs too. The +0.12 rootimage-disk has most of the recompiled fileutilities. + + Virtual memory. + +In addition to the "mkfs" program, there is now a "mkswap" program on +the root disk. The syntax is identical: "mkswap -c /dev/hdX nnn", and +again: this writes over the partition, so be careful. Swapping can then +be enabled by changing the word at offset 506 in the bootimage to the +desired device. Use the same program as for setting the root file +system (but change the 508 offset to 506 of course). + +NOTE! This has been tested by Robert Blum, who has a 2M machine, and it +allows you to run gcc without much memory. HOWEVER, I had to stop using +it, as my diskspace was eaten up by the beta-gcc-2.0, so I'd like to +hear that it still works: I've been totally unable to make a +swap-partition for even rudimentary testing since about christmastime. +Thus the new changes could possibly just have backfired on the VM, but I +doubt it. + + And that's it, I think. + +Happy hacking. + + Linus diff --git a/Linux-0.12/docs/STATUS b/Linux-0.12/docs/STATUS new file mode 100644 index 00000000..445710ba --- /dev/null +++ b/Linux-0.12/docs/STATUS @@ -0,0 +1,61 @@ +[kruuna.helsinki.fi] +Login name: torvalds In real life: Linus Benedict Torvalds +Directory: /home/kruuna/tkol/torvalds Shell: /bin/tcsh +Last login Tue Feb 18 16:51 on ttypf from LKS500 +No unread mail +Plan: + + Free UNIX for the 386 + +The current version of linux is 0.12 - it has most things a unix kernel +needs, and will probably be released as 1.0 as soon as it gets a little +more testing, and we can get a init/login going. Currently you get +dumped into a shell as root upon bootup. There are simple init/logins +available, but it's not yet part of the "official" distribution. + +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: people are +working on a SCSI-driver, but I don't know when it will be ready. + +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) + +PS. The next version (0.13, possibly called 0.95) should be out in early +March. The deadline for patches to 0.12 was February 15th, and no more +patches will be accepted any more unless they are important (bug-fixes +etc). 0.13 should contain these new things (most of them implemented by +others, I'm happy to say): + +- ptrace (gdb is in beta-testing) +- VFS (at least a minimal stubs-version) +- bug-corrections (notably mm, but also some other minor bugs) +- better VC's (screen blanking etc) +- init/login +- faster floppies diff --git a/Linux-0.12/docs/linux-standards/000-README b/Linux-0.12/docs/linux-standards/000-README new file mode 100644 index 00000000..9a61c286 --- /dev/null +++ b/Linux-0.12/docs/linux-standards/000-README @@ -0,0 +1,21 @@ +alt.os.linux #309 [1] +From: abc@banjo.concert.net (Alan B Clegg) +[1] Announcing: linux-standards mailing list. +Organization: Concert Network -- Internet Operations Group +Date: Tue Jan 28 10:42:51 EST 1992 + +I am happy to announce the creation of the Linux Standards (linux-standards) +mailing list. The list is chartered as follows: + +linux-standards: Discussion of distribution and directory standards for + the Linux Operating System, including directory structure, + file location, and release disk format. + +Requests to be added to the mailing list should be sent to: + linux-standards-request@banjo.concert.net + +-abc +-- +abc@concert.net Alan Clegg - Network Programmer +KD4JML (just my luck!) MCNC -- Center for Communications + diff --git a/Linux-0.12/docs/linux-standards/File_System_Standard b/Linux-0.12/docs/linux-standards/File_System_Standard new file mode 100644 index 00000000..366a5b11 --- /dev/null +++ b/Linux-0.12/docs/linux-standards/File_System_Standard @@ -0,0 +1,254 @@ +The following is being submitted by Alan Clegg [abc@concert.net] on behalf of +the linux-standards group as the recommended standard for directory file +structure under Linux. + +Complete implementation of this file structure is completely voluntary, +and will not be enforced, but will be recommended. This specification +is released as guidelines for people porting and writing software for +the Linux Operating System to allow easy software installation, upgrade, and +tailoring on already installed systems. + +Root Directory: + + Files: + {none defined by spec} + + Directories: + bin dev etc home lib mnt usr + + Rationale: + The root directory should not be cluttered with files or + directories, and should contain no user programs. + +/bin Directory: + + Files: + sh init mount umount dd cat ls fsck mkfs {and as needed} + + Directories: + {none defined by spec} + + Rationale: + The /bin directory should contain programs that are vital + to the restoration of other file systems in the case of + a corrupting crash. No executable in /bin should require + any other file system to be mounted to execute correctly. + +/dev Directory: + + Files: + {device files} + + Directories: + {none define by spec} + + Rationale: + Standard UNIX device files. This directory should contain + device entries for all devices that are supported in the + standard kernel, even if the hardware device does not exist + on the system. Note that the distribution will have all + device files, but they may be removed by the user upon + system installation. + + +/etc Directory: + + Files: + mtab passwd rc ttytab {and as needed} + + Directories: + {none defined by spec} + + Rationale: + Standard location of files required during system boot. Files + in this directory are usually system specific. Most will + require human intervention during system upgrade. + +/home Directory: + + Files: + NONE + + Directories: + {one per user excepting root} + + Rationale: + Standard location of users home directories. Will most likely + be a mounted file system once the system is up. root's home + directory should be /. + +/lib Directory: + + Files: + {libraries required for system initialization} + + Directories: + {none defined by spec} + + Rationale: + To keep the size of the root partition small (if separate from + /usr), the files in this directory should only be ones required + by files in the root partition. + +/mnt Directory: + + Files: + NONE + + Directories: + NONE + + Rationale: + Standard mount point for external (transient) file systems. + Must be available for sub-system installation. Should remain + as an empty directory. + +/tmp Directory: + + Files: + NONE + + Directories: + NONE + + Rationale: + Temporary file space available for general program use. May + become a mounted partition upon system boot. + +/usr Directory: + + Files: + {none defined by spec} + + Directories: + adm bin spool local lib etc man include src tmp + + Rationale: + /usr is the mount point for the second major (after root) + hierarchy of file structure and is discussed in the next + section. + +/usr/adm Directory: + + Files: + {none defined in spec} + + Directories: + {none defined in spec} + + Rationale: + Location of log files and accounting information. + +/usr/bin Directory: + + Files: + {all executable files from standard distribution not contined + in /bin} + + Directories: + {none defined in spec} + + Rationale: + contains 'drop-in' executables that are considered to be + standard to the UNIX system. These files should NOT be + Linux specific, but should have the same function as their + UNIX equivalents. + +/usr/etc Directory: + + Files: + {none defined in spec} + + Directories: + {none defined in spec} + + Rationale: + contains configuration files for any files in /usr/bin. helps + to keep /etc clean and small. + +/usr/spool Directory: + + Files: + {none defined in spec} + + Directories: + uucp mail + + Rationale: + containes spool files for mail, printing, uucp transfer, etc. + May be a mount point for another volume. + +/usr/local Directory: + + Files: + NONE + + Directories: + bin lib etc man src + + Rationale: + contains files local to the specific system. will not be + modified by upgrade process. + +/usr/lib Directory: + + Files: + libc.a crt0.s {and as needed} + + Directories: + {none defined in spec} + + Rationale: + location for library files required for multi-user system + operation. This is the directory where program libraries + should reside. + +/usr/man Directory: + + Files: + NONE + + Directories: + man1 man2 man3 man4 man5 man6 man7 man8 + cat1 cat2 cat3 cat4 cat5 cat6 cat7 cat8 + + Rationale: + Contains manual pages for programs that are standard with + Linux. + +/usr/include Directory: + + Files: + {programmers include files} + + Directories: + {as needed} + + Rationale: + Standard place for system include files. + +/usr/src Directory: + + Files: + NONE + + Directories: + bin lib linux usr.bin usr.lib + + Rationale: + Contains source code for all applications in the release. + /usr/src/linux contains directories required for kernel builds. + +/usr/tmp Directory: + + Files: + NONE + + + Directories: + NONE + + Rationale: + Used as additional scratch space for programs. If /tmp is + a mounted file system, /usr/tmp may be a symbolic link to + /tmp. diff --git a/Linux-0.12/docs/linux-standards/Package_Draft b/Linux-0.12/docs/linux-standards/Package_Draft new file mode 100644 index 00000000..02a39e59 --- /dev/null +++ b/Linux-0.12/docs/linux-standards/Package_Draft @@ -0,0 +1,62 @@ +Please comment on the following document. + + [available as /pub/Linux/linux-standards/draft] + +Tommy Thorn (tthorn@daimi.aau.dk) writes (with my comments in [* ... *]): + +We need to make installation REAL SIMPLE AND FAST. I suggest the +following standard for distributing ported programs. + +Everything should be contained in a [compressed] tar file with a: + + - README, a short explanations of how this version differs from + the original, if it does, and how it was compiled. + + - PREREQUIST, again which kernel, but also which version of the + original. + +[* Let's call this PREREQ so we can all spell it *] + + - Makefile, not for compilation, but for installation!! After having + checked that you agree with paths and so, you just type 'make install' + perhaps as root. + + - Patches, context diff against the original. + + - Binaries + + - Optionally, manual pages, also with full path. + +Kernel patches should also be a [compressed] tar file containing: + + - README, describing what the patch does/is. + - PREREQUIST, a precise statement of which version of the + kernel the patches applies, and which, if any, patches that + was already applied. + +[* Begin Soap Box: + I don't think we should distribute kernel patches in the standard + release trees, unless there is a DEFINITE (fatal) bug fixed by the + patch. Most people are looking for an easy-to-build system with + binaries and sources that they can get up-and-running without much + trouble. Yes, we have to put together kernel patch kits, but we + need to have them coordinated (all patches in one common patchfile). + End Soap Box *] + +Sources belong in /usr/src, linux sources in /usr/src/linux, etc. + +Maybe we should split patches and binaries, but I don't like that, as you +would properbly end up having only one of either. + +[* It is my feeling that we should not distribute patches without the source + that the patches apply to. Often, someone will grab the wrong + "official" source, and the patches won't take. Then they make noises + about the patch not working. I feel that we should provide FULL + SOURCE to all programs, *WITH PATCHES APPLIED*. Leave the patches + in a _common_ directory under each source tree, ie: + + /usr/src/gcc/LINPAT/* + ^^^^^^ name subject to discussion + + to allow someone to see exactly what was changed, but also allow them + to compile without applying the patches themselves. *] diff --git a/Linux-0.12/dos_utils/pfdisk.tar.Z b/Linux-0.12/dos_utils/pfdisk.tar.Z new file mode 100644 index 00000000..6b303692 Binary files /dev/null and b/Linux-0.12/dos_utils/pfdisk.tar.Z differ diff --git a/Linux-0.12/images/bootimage-0.12.Z b/Linux-0.12/images/bootimage-0.12.Z new file mode 100644 index 00000000..0dcd5be5 Binary files /dev/null and b/Linux-0.12/images/bootimage-0.12.Z differ diff --git a/Linux-0.12/images/rootimage-0.12.Z b/Linux-0.12/images/rootimage-0.12.Z new file mode 100644 index 00000000..630a49b9 Binary files /dev/null and b/Linux-0.12/images/rootimage-0.12.Z differ diff --git a/Linux-0.12/info/vt102.codes b/Linux-0.12/info/vt102.codes new file mode 100644 index 00000000..b12eecaa --- /dev/null +++ b/Linux-0.12/info/vt102.codes @@ -0,0 +1,386 @@ + +Escape codes for vt102 terminal. + +All numbers below are octal. means numeric value, means character string. +If is missing it is 0 or in cursor movements 1. + +Reset and set modes + Set Modes + Esc [ ; ... ; h + 033 133 073 073 150 + Reset Modes + Esc [ ; ... ; l + 033 133 073 073 154 + + Where is + '2'= Lock keyboard (set); Unlock keyboard (reset) + '4'= Insert mode (set); Replace mode (reset) + '12'= Echo on (set); Echo off (reset) + '20'= Return = CR+LF (set); Return = CR (reset) + '?1'= Cursorkeys application (set); Cursorkeys normal (reset) + '?2'= Ansi (set); VT52 (reset) + '?3'= 132 char/row (set); 80 char/row (reset) + '?4'= Jump scroll (set); Smooth scroll (reset) + '?5'= Reverse screen (set); Normal screen (reset) + '?6'= Sets relative coordinates (set); Sets absolute coordinates (reset) + '?7'= Auto wrap (set); Auto wrap off (reset) + '?8'= Auto repeat on (set); Auto repeat off (reset) + '?18'= Send FF to printer after print screen (set); No char after PS (reset) + '?19'= Print screen prints full screen (set); PS prints scroll region (reset) + '?25'= Cursor on (set); Cursor off (reset) + +Set scrolling region (n1=upper,n2=lower) + Esc [ ; r + 033 133 073 162 + + +Cursor movement (=how many chars or lines), cursor stop at margin. + Up + Esc [ A + 033 133 101 + Down + Esc [ B + 033 133 102 + Right + Esc [ C + 033 133 103 + Left + Esc [ n D + 033 133 104 + Cursor position (=y,=x, from top of screen or scroll region) + Esc [ ; H + 033 133 073 110 + Or Esc [ ; f + 033 133 073 146 + Index (cursor down with scroll up when at margin) + Esc D + 033 104 + Reverse index (cursor up with scroll down when at margin) + Esc M + 033 115 + Next line (CR+Index) + Esc E + 033 105 + Save cursor and attribute + Esc 7 + 033 067 + Restore cursor and attribute + Esc 8 + 033 070 + + +Keybad character selection + Application keypad mode + Esc = + 033 075 + Numeric keypad mode + Esc > + 033 076 + + Keypadkeys codes generated + Numeric Application VT52 Application + 0 0 (060) Esc O p (033 117 160) Esc ? p (033 077 160) + 1 1 (061) Esc O q (033 117 161) Esc ? q (033 077 161) + 2 2 (062) Esc O r (033 117 162) Esc ? r (033 077 162) + 3 3 (063) Esc O s (033 117 163) Esc ? s (033 077 163) + 4 4 (064) Esc O t (033 117 164) Esc ? t (033 077 164) + 5 5 (065) Esc O u (033 117 165) Esc ? u (033 077 165) + 6 6 (066) Esc O v (033 117 166) Esc ? v (033 077 166) + 7 7 (067) Esc O w (033 117 167) Esc ? w (033 077 167) + 8 8 (070) Esc O x (033 117 170) Esc ? x (033 077 170) + 9 9 (071) Esc O y (033 117 171) Esc ? y (033 077 171) + - (minus) - (055) Esc O m (033 117 155) Esc ? m (033 077 155) + , (comma) , (054) Esc O l (033 117 154) Esc ? l (033 077 154) + . (period) . (056) Esc O n (033 117 156) Esc ? n (033 077 156) + Enter CR (015)* Esc O M (033 117 115) Esc ? M (033 077 115) + PF1 Esc O P Esc O P (033 117 120) Esc P (033 120) + PF2 Esc O Q Esc O Q (033 117 121) Esc Q (033 121) + PF3 Esc O R Esc O R (033 117 122) Esc R (033 122) + PF4 Esc O S Esc O S (033 117 123) Esc S (033 123) + * Or CR+LF (015 012) + + Cursorkeys codes generated (changed by set and reset modes '?1') + normal application + Up Esc [ A Esc O A + 033 133 101 033 117 101 + Down Esc [ B Esc O B + 033 133 102 033 117 102 + Right Esc [ C Esc O C + 033 133 103 033 117 103 + Left Esc [ D Esc O D + 033 133 104 033 117 104 + + +Select chaacter set + UK as G0 + Esc ( A + 033 050 101 + US as G0 + Esc ( B + 033 050 102 + Special characters and line drawing character set as G0 + Esc ( 0 + 033 050 060 + Alternate ROM as G0 + Esc ( 1 + 033 050 061 + Alternate ROM special characters character set as G0 + Esc ( 2 + 033 050 062 + + UK as G1 + Esc ) A + 033 051 101 + US as G1 + Esc ) B + 033 051 102 + Special characters and line drawing character set as G1 + Esc ) 0 + 033 051 060 + Alternate ROM as G1 + Esc ) 1 + 033 051 061 + Alternate ROM special characters character set as G1 + Esc ) 2 + 033 051 062 + + Selects G2 for one character + Esc N + 033 115 + Selects G3 for one character + Esc O + 033 117 + + +Set graphic rendition + Esc [ ; m + 033 133 073 156 + + Where is + 0 = Turn off attributes + 1 = Bold (Full) + 2 = Half + 4 = Underline + 5 = Blink + 7 = Reverse + 21 = Normal intensity + 22 = Normal intensity + 24 = Cancel underlined + 25 = Cancel blinking + 27 = Cancel reverse + +Tab stops + Set horizontal tab + Esc H + 033 110 + Clear horizontal tab + Esc [ g + 033 133 147 + Or Esc [ 0 g + 033 133 060 147 + Clear all horizontal tabs + Esc [ 3 g + 033 133 063 147 + + +Line attributes + Double-height + Top half + Esc # 3 + 033 043 063 + Bottom half + Esc # 4 + 033 043 064 + Single-width, single-height + Esc # 5 + 033 043 065 + Double-width + Esc # 6 + 033 043 066 + + +Erasing + Erase in line + End of line (including cursor position) + Esc [ K + 033 133 113 + Or Esc [ 0 K + 033 133 060 113 + Beginning of line (including cursor position) + Esc [ 1 K + 033 133 061 113 + Complete line + Esc [ 2 K + 033 133 062 113 + Erase in display + End of screen (including cursor position) + Esc [ J + 033 133 112 + Or Esc [ 0 J + 033 133 060 112 + Beginning of screen (including cursor position) + Esc [ 1 J + 033 133 061 112 + Complete display + Esc [ 2 J + 033 133 062 112 + + +Computer editing + Delete characters ( characters right from cursor + Esc [ P + 033 133 120 + Inser line ( lines) + Esc [ L + 033 133 114 + Delete line ( lines) + Esc [ M + 033 133 115 + + +Printing + Esc [ i + 033 133 151 + + Where is + ''= Same as '0' + '0'= Prints screen (full or scroll region) + '4'= Printer controller off + '5'= Printer controller on (Print all received chars to printer) + '?1'= Print cursor line + '?4'= Auto print off + '?5'= Auto print on (Prints line to printer when you exit from it) + + +Reports + Device status + Esc [ n + 033 133 156 + + Where is + '0'=Response Ready, no malfunctions detected + '3'=Malfunction, error in self-test. + '5'=Status report request + '6'=Request cursor position. + '?10'=Response to printer status request, All ok. + '?11'=Response to printer status request, Printer is not ready. + '?13'=Response to printer status request, No printer. + '?15'=Status report request from printer + + Cursor position raport (Response to request cursor position) + Esc [ ; R + 033 133 073 122 + Request terminal to identify itself (esc Z may not be supported in future) + Esc [ c + 033 133 143 + Esc [ 0 c + 033 133 060 143 + Esc Z + 033 132 + Response to terminal identify (VT102) + Esc [ ? 6 c + 033 133 077 066 143 + + +Reset to initial state + Esc c + 033 143 + + +Tests + Invoke confidence test + Esc [ 2 ; y + 033 133 062 073 171 + + Where is + '1'= Power-up test + '2'= Data loopback test + '4'= EIA loopback test + '9'= Power-up tests (continuously) + '10'= Data loopback tests (continuously) + '12'= EIA loopback tests (continuously) + '16'= Printer loopback test + '24'= Printer loopback tests (continuously) + + +Screen adjustments + Esc # 8 + 033 043 070 + + +Keyboard indicator + Led L1 off + Esc [ 0 q + 033 133 060 181 + Led L1 on + Esc [ 1 q + 033 133 061 181 + + + +VT52 sequences + Ansi mode + Esc < + 033 074 + Cursor positioning + Up Esc A + 033 101 + Down Esc B + 033 102 + Right Esc C + 033 103 + Left Esc D + 033 104 + Home Esc H + 033 110 + Direct cursor address + Esc Y + 033 131 + Reverse linefeed Esc I + 033 111 + Erase to end of line Esc K + 033 113 + Erase to end of screen Esc J + 033 112 + Auto print on Esc ^ + 033 136 + Auto print off Esc + 033 137 + Printer controller on Esc W + 033 127 + Printer controller off Esc X + 033 130 + Print cursor line Esc V + 033 135 + Print screen Esc ] + 033 135 + Indentify request Esc Z + 033 132 + Response to indetify Esc / Z + request (VT52) 033 057 132 + Special charset (same Esc F + as line draw in VT102 033 106 + Normal char set Esc G + 033 107 + + +Control characters + 000 = Null (fill character) + 003 = ETX (Can be selected half-duplex turnaround char) + 004 = EOT (Can be turnaround or disconnect char, if turn, then DLE-EOT=disc.) + 005 = ENQ (Transmits answerback message) + 007 = BEL (Generates bell tone) + 010 = BS (Moves cursor left) + 011 = HT (Moves cursor to next tab) + 012 = LF (Linefeed or New line operation) + 013 = VT (Processed as LF) + 014 = FF (Processed as LF, can be selected turnaround char) + 015 = CR (Moves cursor to left margin, can be turnaround char) + 016 = SO (Selects G1 charset) + 017 = SI (Selects G0 charset) + 021 = DC1 (XON, causes terminal to continue transmit) + 023 = DC3 (XOFF, causes terminal to stop transmitting) + 030 = CAN (Cancels escape sequence) + 032 = SUB (Processed as CAN) + 033 = ESC (Processed as sequence indicator) + diff --git a/Linux-0.12/info/xterm-seqs.ms b/Linux-0.12/info/xterm-seqs.ms new file mode 100644 index 00000000..289c7866 --- /dev/null +++ b/Linux-0.12/info/xterm-seqs.ms @@ -0,0 +1,502 @@ +.\"#! troff -Q -ms $1 +.\" This is the "Xterm Control Sequences" document, originally written by +.\" Edward Moy, University of California, Berkeley, for the X.V10R4 xterm. +.\" Some minor edits have been made to begin to reconcile this document with +.\" the current sources, but it still has a long way to go: +.\" +.\" 1) I don't guarantee that this is 100% correct. I tried most of +.\" the things that seemed to be different, and this document +.\" reflects what I saw. Stuff that appears to be in the X10R4 +.\" document and missing from this document is so because it +.\" appears not to be present in the X11 version of "xterm" (e.g., +.\" the "Alternate Character ROM" character sets and the Sun TTY +.\" emulation). +.\" +.\" 2) It is definitely not 100% complete; some escape sequences +.\" that do something that's either unobservable - at least in +.\" the current state of the code - or not useful aren't +.\" documented. An example of the former are the Locking Shift +.\" sequences that modify the interpretation of the GR +.\" characters; at present, it sets a state variable that's +.\" unused, but perhaps some future version will use it (perhaps +.\" for displaying characters in the range 0200-0377?). An +.\" example of the latter is the sequence to set DECANM mode +.\" (ANSI/VT52 mode): it doesn't do what it does on a VT100, +.\" namely get the terminal to emulate a VT100, it only seems to +.\" fiddle the current character set a bit. +.\" +.\" 3) It doesn't document any of the mouse-related stuff, such as +.\" what the "Track Mouse" escape sequence does, or what the +.\" different mouse modes (MIT, VT220, "VT220 Hilite") do; I +.\" leave that to somebody familiar with that part of the code.... +.\" +.\" Run this file through troff and use the -ms macro package. +.ND +.de St +.sp +.nr PD 0 +.nr PI 1.5i +.nr VS 16 +.. +.de Ed +.nr PD .3v +.nr VS 12 +.. +.rm CH +.ds LH Xterm Control Sequences +.nr s 6*\n(PS/10 +.ds L \s\nsBEL\s0 +.ds E \s\nsESC\s0 +.ds T \s\nsTAB\s0 +.ds X \s\nsETX\s0 +.ds N \s\nsENQ\s0 +.ds e \s\nsETB\s0 +.ds C \s\nsCAN\s0 +.ds S \s\nsSUB\s0 +.nr [W \w'\*L'u +.nr w \w'\*E'u +.if \nw>\n([W .nr [W \nw +.nr w \w'\*T'u +.if \nw>\n([W .nr [W \nw +.nr w \w'\*X'u +.if \nw>\n([W .nr [W \nw +.nr w \w'\*N'u +.if \nw>\n([W .nr [W \nw +.nr w \w'\*e'u +.if \nw>\n([W .nr [W \nw +.nr w \w'\*C'u +.if \nw>\n([W .nr [W \nw +.nr w \w'\*S'u +.if \nw>\n([W .nr [W \nw +.nr [W +\w'\|\|'u +.de [] +.nr w \w'\\$2' +.nr H \\n([Wu-\\nwu +.nr h \\nHu/2u +.ds \\$1 \(br\v'-1p'\(br\v'1p'\h'\\nhu'\\$2\h'\\nHu-\\nhu'\(br\l'-\\n([Wu\(ul'\v'-1p'\(br\l'-\\n([Wu\(rn'\v'1p'\| +.. +.[] Et \v'-1p'\*X\v'1p' +.[] En \v'-1p'\*N\v'1p' +.[] Be \v'-1p'\*L\v'1p' +.[] Bs \v'-1p'\s\nsBS\s0\v'1p' +.[] Ta \v'-1p'\*T\v'1p' +.[] Lf \v'-1p'\s\nsLF\s0\v'1p' +.[] Vt \v'-1p'\s\nsVT\s0\v'1p' +.[] Ff \v'-1p'\s\nsFF\s0\v'1p' +.[] Cr \v'-1p'\s\nsCR\s0\v'1p' +.[] So \v'-1p'\s\nsSO\s0\v'1p' +.[] Si \v'-1p'\s\nsSI\s0\v'1p' +.[] Eb \v'-1p'\*e\v'1p' +.[] Ca \v'-1p'\*C\v'1p' +.[] Su \v'-1p'\*S\v'1p' +.[] Es \v'-1p'\*E\v'1p' +.[] Fs \v'-1p'\s\nsFS\s0\v'1p' +.[] Gs \v'-1p'\s\nsGS\s0\v'1p' +.[] Rs \v'-1p'\s\nsRS\s0\v'1p' +.[] Us \v'-1p'\s\nsUS\s0\v'1p' +.[] # # +.[] (( ( +.[] ) ) +.[] * * +.[] + + +.[] 0 0 +.[] 1 1 +.[] 2 2 +.[] 3 3 +.[] 4 4 +.[] 5 5 +.[] 6 6 +.[] 7 7 +.[] 8 8 +.[] 9 9 +.[] : : +.[] ; ; +.[] = = +.[] > > +.[] ? ? +.[] @ @ +.[] A A +.[] cB B +.[] C C +.[] D D +.[] E E +.[] F F +.[] H H +.[] J J +.[] K K +.[] L L +.[] M M +.[] N N +.[] O O +.[] P P +.[] R R +.[] S S +.[] T T +.[] Z Z +.[] [[ [ +.[] ] ] +.[] ` \` +.[] a a +.[] b b +.[] c c +.[] d d +.[] f f +.[] g g +.[] h h +.[] i i +.[] j j +.[] k k +.[] l l +.[] m m +.[] n n +.[] o o +.[] p p +.[] q q +.[] r r +.[] s s +.[] t t +.[] x x +.[] | | +.[] } } +.[] c~ ~ +.ds Cc \fIC\fP +.ds Ps \fIP\v'.3m'\h'-.2m'\s-2s\s0\v'-.3m'\fP +.ds Pm \fIP\v'.3m'\h'-.2m'\s-2m\s0\v'-.3m'\fP +.ds Pt \fIP\v'.3m'\h'-.2m'\s-2t\s0\v'-.3m'\fP +.ds Ix \fIx\fP +.ds Iy \fIy\fP +.ds Iw \fIw\fP +.ds Ih \fIh\fP +.ds Ir \fIr\fP +.ds Ic \fIc\fP +.nr LL 6.5i +.TL +Xterm Control Sequences +.am NP +.ds CF % +.. +.SH +Definitions +.IP \*(Cc +A single (required) character. +.IP \*(Ps +A single (usually optional) numeric parameter, composed of one of more digits. +.IP \*(Pm +A multiple numeric parameter composed of any number of single numeric +parameters, separated by \*; character(s). +.IP \*(Pt +A text parameter composed of printable characters. +.SH +VT102 Mode +.ds RH VT102 Mode +.LP +Most of these control sequences are standard VT102 control sequences. +There are, however, additional ones to provide control of +.I xterm +dependent functions, like the scrollbar or window size. +.St +.IP \\*(Be +Bell (Ctrl-G) +.IP \\*(Bs +Backspace (Ctrl-H) +.IP \\*(Ta +Horizontal Tab (Ctrl-I) +.IP \\*(Lf +Line Feed or New Line (Ctrl-J) +.IP \\*(Vt +Vertical Tab (Ctrl-K) +.IP \\*(Ff +Form Feed or New Page (Ctrl-L) +.IP \\*(Cr +Carriage Return (Ctrl-M) +.IP \\*(So +Shift Out (Ctrl-N) \(-> Switch to Alternate Character Set +.IP \\*(Si +Shift In (Ctrl-O) \(-> Switch to Standard Character Set +.IP \\*(Es\\*#\\*8 +DEC Screen Alignment Test (DECALN) +.IP \\*(Es\\*(((\\*(Cc +Select G0 Character Set (SCS) + \*(Cc = \*0 \(-> Special Character and Line Drawing Set + \*(Cc = \*A \(-> United Kingdom (UK) + \*(Cc = \*(cB \(-> United States (USASCII) +.IP \\*(Es\\*)\\*(Cc +Select G1 Character Set (SCS) + \*(Cc = \*0 \(-> Special Character and Line Drawing Set + \*(Cc = \*A \(-> United Kingdom (UK) + \*(Cc = \*(cB \(-> United States (USASCII) +.IP \\*(Es\\**\\*(Cc +Select G2 Character Set (SCS) + \*(Cc = \*0 \(-> Special Character and Line Drawing Set + \*(Cc = \*A \(-> United Kingdom (UK) + \*(Cc = \*(cB \(-> United States (USASCII) +.IP \\*(Es\\*+\\*(Cc +Select G3 Character Set (SCS) + \*(Cc = \*0 \(-> Special Character and Line Drawing Set + \*(Cc = \*A \(-> United Kingdom (UK) + \*(Cc = \*(cB \(-> United States (USASCII) +.IP \\*(Es\\*7 +Save Cursor (DECSC) +.IP \\*(Es\\*8 +Restore Cursor (DECRC) +.IP \\*(Es\\*= +Application Keypad (DECPAM) +.IP \\*(Es\\*> +Normal Keypad (DECPNM) +.IP \\*(Es\\*D +Index (IND) +.IP \\*(Es\\*E +Next Line (NEL) +.IP \\*(Es\\*H +Tab Set (HTS) +.IP \\*(Es\\*M +Reverse Index (RI) +.IP \\*(Es\\*N +Single Shift Select of G2 Character Set (SS2) +.IP \\*(Es\\*O +Single Shift Select of G3 Character Set (SS3) +.IP \\*(Es\\*Z +Return Terminal ID (DECID) +.IP \\*(Es\\*([[\\*(Ps\|\\*@ +Insert \*(Ps (Blank) Character(s) (default = 1) (ICH) +.IP \\*(Es\\*([[\\*(Ps\|\\*A +Cursor Up \*(Ps Times (default = 1) (CUU) +.IP \\*(Es\\*([[\\*(Ps\|\\*(cB +Cursor Down \*(Ps Times (default = 1) (CUD) +.IP \\*(Es\\*([[\\*(Ps\|\\*C +Cursor Forward \*(Ps Times (default = 1) (CUF) +.IP \\*(Es\\*([[\\*(Ps\|\\*D +Cursor Backward \*(Ps Times (default = 1) (CUB) +.IP \\*(Es\\*([[\\*(Ps\|\\*;\\*(Ps\|\\*H +Cursor Position [row;column] (default = [1,1]) (CUP) +.IP \\*(Es\\*([[\\*(Ps\|\\*J +Erase in Display (ED) + \*(Ps = \*0 \(-> Clear Below (default) + \*(Ps = \*1 \(-> Clear Above + \*(Ps = \*2 \(-> Clear All +.IP \\*(Es\\*([[\\*(Ps\|\\*K +Erase in Line (EL) + \*(Ps = \*0 \(-> Clear to Right (default) + \*(Ps = \*1 \(-> Clear to Left + \*(Ps = \*2 \(-> Clear All +.IP \\*(Es\\*([[\\*(Ps\|\\*L +Insert \*(Ps Line(s) (default = 1) (IL) +.IP \\*(Es\\*([[\\*(Ps\|\\*M +Delete \*(Ps Line(s) (default = 1) (DL) +.IP \\*(Es\\*([[\\*(Ps\|\\*P +Delete \*(Ps Character(s) (default = 1) (DCH) +.IP \\*(Es\\*([[\\*(Ps\|\\*;\\*(Ps\|\\*;\\*(Ps\|\\*;\\*(Ps\|\\*;\\*(Ps\|\\*T +Track Mouse [func;startcol;startrow;firstrow;lastrow] XXX - describe +.IP \\*(Es\\*([[\\*(Ps\|\\*c +Device Attributes (default 0) (DA) +.IP \\*(Es\\*([[\\*(Ps\|\\*;\\*(Ps\|\\*f +Horizontal and Vertical Position [row;column] (default = [1,1]) (HVP) +.IP \\*(Es\\*([[\\*(Ps\|\\*g +Tab Clear + \*(Ps = \*0 \(-> Clear Current Column (default) + \*(Ps = \*3 \(-> Clear All +.IP \\*(Es\\*([[\\*(Ps\|\\*h +Mode Set (SET) + \*(Ps = \*4 \(-> Insert Mode (IRM) + \*(Ps = \*2\*0 \(-> Automatic Linefeed (LNM) +.IP \\*(Es\\*([[\\*(Ps\|\\*l +Mode Reset (RST) + \*(Ps = \*4 \(-> Insert Mode (IRM) + \*(Ps = \*2\*0 \(-> Automatic Linefeed (LNM) +.IP \\*(Es\\*([[\\*(Pm\|\\*m +Character Attributes (SGR) + \*(Ps = \*0 \(-> Normal (default) + \*(Ps = \*1 \(-> Blink (appears as Bold) + \*(Ps = \*4 \(-> Underscore + \*(Ps = \*5 \(-> Bold + \*(Ps = \*7 \(-> Inverse +.IP \\*(Es\\*([[\\*(Ps\|\\*n +Device Status Report (DSR) + \*(Ps = 5 \(-> Status Report \*(Es\*([[\*0\*n \(-> OK + \*(Ps = 6 \(-> Report Cursor Position (CPR) [row;column] as +\*(Es\*([[\*(Ir\|\*;\*(Ic\|\*R +.IP \\*(Es\\*([[\\*(Ps\|\\*;\\*(Ps\|\\*r +Set Scrolling Region [top;bottom] (default = full size of window) (DECSTBM) +.IP \\*(Es\\*([[\\*(Ps\|\\*x +Request Terminal Parameters (DECREQTPARM) +.IP \\*(Es\\*([[\\*?\\*(Ps\|\\*h +DEC Private Mode Set (DECSET) + \*(Ps = \*1 \(-> Application Cursor Keys (DECCKM) + \*(Ps = \*3 \(-> 132 Column Mode (DECCOLM) + \*(Ps = \*4 \(-> Smooth (Slow) Scroll (DECSCLM) + \*(Ps = \*5 \(-> Reverse Video (DECSCNM) + \*(Ps = \*6 \(-> Origin Mode (DECOM) + \*(Ps = \*7 \(-> Wraparound Mode (DECAWM) + \*(Ps = \*8 \(-> Auto-repeat Keys (DECARM) + \*(Ps = \*9 \(-> Send MIT Mouse Row & Column on Button Press + \*(Ps = \*3\*8 \(-> Enter Tektronix Mode (DECTEK) + \*(Ps = \*4\*0 \(-> Allow 80 \z\(<-\(-> 132 Mode + \*(Ps = \*4\*1 \(-> \fIcurses\fP(5) fix + \*(Ps = \*4\*4 \(-> Turn On Margin Bell + \*(Ps = \*4\*5 \(-> Reverse-wraparound Mode + \*(Ps = \*4\*6 \(-> Start Logging + \*(Ps = \*4\*7 \(-> Use Alternate Screen Buffer + \*(Ps = \*1\*0\*0\*0 \(-> Send VT200 Mouse Row & Column on Button Press + \*(Ps = \*1\*0\*0\*3 \(-> Send VT200 Hilite Mouse Row & Column on Button Press +.IP \\*(Es\\*([[\\*?\\*(Ps\|\\*l +DEC Private Mode Reset (DECRST) + \*(Ps = \*1 \(-> Normal Cursor Keys (DECCKM) + \*(Ps = \*3 \(-> 80 Column Mode (DECCOLM) + \*(Ps = \*4 \(-> Jump (Fast) Scroll (DECSCLM) + \*(Ps = \*5 \(-> Normal Video (DECSCNM) + \*(Ps = \*6 \(-> Normal Cursor Mode (DECOM) + \*(Ps = \*7 \(-> No Wraparound Mode (DECAWM) + \*(Ps = \*8 \(-> No Auto-repeat Keys (DECARM) + \*(Ps = \*9 \(-> Don't Send Mouse Row & Column on Button Press + \*(Ps = \*4\*0 \(-> Disallow 80 \z\(<-\(-> 132 Mode + \*(Ps = \*4\*1 \(-> No \fIcurses\fP(5) fix + \*(Ps = \*4\*4 \(-> Turn Off Margin Bell + \*(Ps = \*4\*5 \(-> No Reverse-wraparound Mode + \*(Ps = \*4\*6 \(-> Stop Logging + \*(Ps = \*4\*7 \(-> Use Normal Screen Buffer + \*(Ps = \*1\*0\*0\*0 \(-> Don't Send Mouse Row & Column on Button Press + \*(Ps = \*1\*0\*0\*3 \(-> Don't Send Mouse Row & Column on Button Press +.IP \\*(Es\\*([[\\*?\\*(Ps\|\\*r +Restore DEC Private Mode + \*(Ps = \*1 \(-> Normal/Application Cursor Keys (DECCKM) + \*(Ps = \*3 \(-> 80/132 Column Mode (DECCOLM) + \*(Ps = \*4 \(-> Jump (Fast)/Smooth (Slow) Scroll (DECSCLM) + \*(Ps = \*5 \(-> Normal/Reverse Video (DECSCNM) + \*(Ps = \*6 \(-> Normal/Origin Cursor Mode (DECOM) + \*(Ps = \*7 \(-> No Wraparound/Wraparound Mode (DECAWM) + \*(Ps = \*8 \(-> Auto-repeat/No Auto-repeat Keys (DECARM) + \*(Ps = \*9 \(-> Don't Send/Send MIT Mouse Row & Column on Button Press + \*(Ps = \*4\*0 \(-> Disallow/Allow 80 \z\(<-\(-> 132 Mode + \*(Ps = \*4\*1 \(-> Off/On \fIcurses\fP(5) fix + \*(Ps = \*4\*4 \(-> Turn Off/On Margin Bell + \*(Ps = \*4\*5 \(-> No Reverse-wraparound/Reverse-wraparound Mode + \*(Ps = \*4\*6 \(-> Stop/Start Logging + \*(Ps = \*4\*7 \(-> Use Normal/Alternate Screen Buffer + \*(Ps = \*1\*0\*0\*0 \(-> Don't Send/Send VT220 Mouse Row & Column on Button Press + \*(Ps = \*1\*0\*0\*3 \(-> Don't Send/Send VT220 Hilite Mouse Row & Column on Button Press +.IP \\*(Es\\*([[\\*?\\*(Ps\|\\*s +Save DEC Private Mode + \*(Ps = \*1 \(-> Normal/Application Cursor Keys (DECCKM) + \*(Ps = \*3 \(-> 80/132 Column Mode (DECCOLM) + \*(Ps = \*4 \(-> Jump (Fast)/Smooth (Slow) Scroll (DECSCLM) + \*(Ps = \*5 \(-> Normal/Reverse Video (DECSCNM) + \*(Ps = \*6 \(-> Normal/Origin Cursor Mode (DECOM) + \*(Ps = \*7 \(-> No Wraparound/Wraparound Mode (DECAWM) + \*(Ps = \*8 \(-> Auto-repeat/No Auto-repeat Keys (DECARM) + \*(Ps = \*9 \(-> Don't Send/Send MIT Mouse Row & Column on Button Press + \*(Ps = \*4\*0 \(-> Disallow/Allow 80 \z\(<-\(-> 132 Mode + \*(Ps = \*4\*1 \(-> Off/On \fIcurses\fP(5) fix + \*(Ps = \*4\*4 \(-> Turn Off/On Margin Bell + \*(Ps = \*4\*5 \(-> No Reverse-wraparound/Reverse-wraparound Mode + \*(Ps = \*4\*6 \(-> Stop/Start Logging + \*(Ps = \*4\*7 \(-> Use Normal/Alternate Screen Buffer + \*(Ps = \*1\*0\*0\*0 \(-> Don't Send/Send VT220 Mouse Row & Column on Button Press + \*(Ps = \*1\*0\*0\*3 \(-> Don't Send/Send VT220 Hilite Mouse Row & Column on Button Press +.IP \\*(Es\\*]\\*(Ps\|\\*;\\*(Pt\|\\*(Be +Set Text Parameters + \*(Ps = \*0 \(-> Change Icon Name and Window Title to \*(Pt + \*(Ps = \*1 \(-> Change Icon Name to \*(Pt + \*(Ps = \*2 \(-> Change Window Title to \*(Pt + \*(Ps = \*4\*6 \(-> Change Log File to \*(Pt +.IP \\*(Es\\*c +Full Reset (RIS) +.IP \\*(Es\\*n +Locking Shift Select of G2 Character Set (LS2) +.IP \\*(Es\\*o +Locking Shift Select of G3 Character Set (LS3) +.Ed +.SH +Tektronix 4015 Mode +.ds RH Tektronix 4015 Mode +.LP +Most of these sequences are standard Tektronix 4015 control sequences. +The major features missing are the alternate (APL) character set and +the write-thru and defocused modes. +.St +.IP \\*(Be +Bell (Ctrl-G) +.IP \\*(Bs +Backspace (Ctrl-H) +.IP \\*(Ta +Horizontal Tab (Ctrl-I) +.IP \\*(Lf +Line Feed or New Line (Ctrl-J) +.IP \\*(Vt +Vertical Tab (Ctrl-K) +.IP \\*(Ff +Form Feed or New Page (Ctrl-L) +.IP \\*(Cr +Carriage Return (Ctrl-M) +.IP \\*(Es\\*(Et +Switch to VT102 Mode +.IP \\*(Es\\*(En +Return Terminal Status +.IP \\*(Es\\*(Lf +PAGE (Clear Screen) +.IP \\*(Es\\*(Eb +COPY (Save Tektronix Codes to File) +.IP \\*(Es\\*(Ca +Bypass Condition +.IP \\*(Es\\*(Su +GIN mode +.IP \\*(Es\\*(Fs +Special Point Plot Mode +.IP \\*(Es\\*(Gs +Graph Mode (same as \*(Gs) +.IP \\*(Es\\*(Rs +Incremental Plot Mode (same as \*(Rs) +.IP \\*(Es\\*(Us +Alpha Mode (same as \*(Us) +.IP \\*(Es\\*8 +Select Large Character Set +.IP \\*(Es\\*9 +Select #2 Character Set +.IP \\*(Es\\*: +Select #3 Character Set +.IP \\*(Es\\*; +Select Small Character Set +.IP \\*(Es\\*]\\*(Ps\|\\*;\\*(Pt\|\\*(Be +Set Text Parameters + \*(Ps = \*0 \(-> Change Icon Name and Window Title to \*(Pt + \*(Ps = \*1 \(-> Change Icon Name to \*(Pt + \*(Ps = \*2 \(-> Change Window Title to \*(Pt + \*(Ps = \*4\*6 \(-> Change Log File to \*(Pt +.IP \\*(Es\\*` +Normal Z Axis and Normal (solid) Vectors +.IP \\*(Es\\*a +Normal Z Axis and Dotted Line Vectors +.IP \\*(Es\\*b +Normal Z Axis and Dot-Dashed Vectors +.IP \\*(Es\\*c +Normal Z Axis and Short-Dashed Vectors +.IP \\*(Es\\*d +Normal Z Axis and Long-Dashed Vectors +.IP \\*(Es\\*h +Defocused Z Axis and Normal (solid) Vectors +.IP \\*(Es\\*i +Defocused Z Axis and Dotted Line Vectors +.IP \\*(Es\\*j +Defocused Z Axis and Dot-Dashed Vectors +.IP \\*(Es\\*k +Defocused Z Axis and Short-Dashed Vectors +.IP \\*(Es\\*l +Defocused Z Axis and Long-Dashed Vectors +.IP \\*(Es\\*p +Write-Thru Mode and Normal (solid) Vectors +.IP \\*(Es\\*q +Write-Thru Mode and Dotted Line Vectors +.IP \\*(Es\\*r +Write-Thru Mode and Dot-Dashed Vectors +.IP \\*(Es\\*s +Write-Thru Mode and Short-Dashed Vectors +.IP \\*(Es\\*t +Write-Thru Mode and Long-Dashed Vectors +.IP \\*(Fs +Point Plot Mode +.IP \\*(Gs +Graph Mode +.IP \\*(Rs +Incremental Plot Mode +.IP \\*(Us +Alpha Mode +.Ed diff --git a/Linux-0.12/info/xterm-seqs2.txt b/Linux-0.12/info/xterm-seqs2.txt new file mode 100644 index 00000000..f9624585 --- /dev/null +++ b/Linux-0.12/info/xterm-seqs2.txt @@ -0,0 +1,220 @@ +Date: 12 Sep 89 17:44:43 GMT +From: crdgw1!montnaro@uunet.uu.net (Skip Montanaro) +Organization: GE Corporate Research & Development, Schenectady, NY +Subject: XTerm Escape Sequences (X11 Version) +To: xpert@expo.lcs.mit.edu + +I rummaged around through the xterm code and came up with the following +stuff. No guarantees. I'm headed out of town for a couple days and thought +it better to get it out than let it get stale. Comments, bugs, and other +notes are welcome. Somebody else can convert it to troff. I prefer LaTeX. +:-) I will try and get to the Tek mode stuff when I return, although I doubt +it's changed much from X10 XTerm. + +I gleaned the basic stuff out of the charproc.c code, by hacking VTparse() +so it spit out leaves of the parse tree. I was mildly surprised to see +things like "ESC # BEL" turn up. + +For most folks, the most interesting stuff will probably be "ESC ] Ps ND +string NP" down near the bottom. That's what you use to change the icon and +window labels, and the log file name. Most other things appear the same as +the X10 documentation, although a few DEC-ish mode parameters (42, 43, 48, & +49) seem to have disappeared. + +------------------------------------------------------------------------------ +BEL Bell (Ctrl-G) +BS Backspace (Ctrl-H) +HT Horizontal Tab (Ctrl-I) +NL Line Feed or New Line (Ctrl-J) +VT Vertical Tab (Ctrl-K) +NP Form Feed or New Page (Ctrl-L) +CR Carriage Return (Ctrl-M) +SO Shift Out (Ctrl-N) -> Switch to Alternate Character Set +SI Shift In (Ctrl-O) -> Switch to Standard Character Set +ESC BEL (Same as non-escaped BEL) +ESC BS (Same as non-escaped BS) +ESC HT (Same as non-escaped HT) +ESC NL (Same as non-escaped NL) +ESC VT (Same as non-escaped VT) +ESC NP (Same as non-escaped NP) +ESC CR (Same as non-escaped CR) +ESC SO (Same as non-escaped SO) +ESC SI (Same as non-escaped SI) +ESC # BEL (Same as non-escaped BEL) +ESC # BS (Same as non-escaped BS) +ESC # HT (Same as non-escaped HT) +ESC # NL (Same as non-escaped NL) +ESC # VT (Same as non-escaped VT) +ESC # NP (Same as non-escaped NP) +ESC # CR (Same as non-escaped CR) +ESC # SO (Same as non-escaped SO) +ESC # SI (Same as non-escaped SI) +ESC # 8 DEC Screen Alignment Test (DECALN) +ESC ( BEL (Same as non-escaped BEL) +ESC ( BS (Same as non-escaped BS) +ESC ( HT (Same as non-escaped HT) +ESC ( NL (Same as non-escaped NL) +ESC ( VT (Same as non-escaped VT) +ESC ( NP (Same as non-escaped NP) +ESC ( CR (Same as non-escaped CR) +ESC ( SO (Same as non-escaped SO) +ESC ( SI (Same as non-escaped SI) +ESC ( C Select G0 Character Set (SCS) + C = 0 -> Special Character and Line Drawing Set + C = 1 -> Alternate Character ROM Standard Set + C = 2 -> Alternate Character ROM Special Set + C = A -> United Kingdom (UK) + C = B -> United States (USASCII) +ESC ) C Select G1 Character Set (SCS) + C takes same values as above +ESC * C Select G2 Character Set (SCS) + C takes same values as above +ESC + C Select G3 Character Set (SCS) + C takes same values as above +ESC 7 Save Cursor (DECSC) +ESC 8 Restore Cursor (DECRC) +ESC = Application Keypad (DECPAM) +ESC > Normal Keypad (DECNM) +ESC D Index (IND) +ESC E Next Line (NEL) +ESC H Tab Set (HTS) +ESC M Reverse Index (RI) +ESC N Single Shift Select of G2 Character Set (SS2) +ESC O Single Shift Select of G3 Character Set (SS3) +ESC [ BEL (Same as non-escaped BEL) +ESC [ BS (Same as non-escaped BS) +ESC [ HT (Same as non-escaped HT) +ESC [ NL (Same as non-escaped NL) +ESC [ VT (Same as non-escaped VT) +ESC [ NP (Same as non-escaped NP) +ESC [ CR (Same as non-escaped CR) +ESC [ SO (Same as non-escaped SO) +ESC [ SI (Same as non-escaped SI) +ESC [ ? BEL (Same as non-escaped BEL) +ESC [ ? BS (Same as non-escaped BS) +ESC [ ? HT (Same as non-escaped HT) +ESC [ ? NL (Same as non-escaped NL) +ESC [ ? VT (Same as non-escaped VT) +ESC [ ? NP (Same as non-escaped NP) +ESC [ ? CR (Same as non-escaped CR) +ESC [ ? SO (Same as non-escaped SO) +ESC [ ? SI (Same as non-escaped SI) +ESC [ ? Ps h DEC Private Mode Set (DECSET) + Ps = 1 -> Application Cursor Keys (DECCKM) + Ps = 2 -> Set VT52 Mode + Ps = 3 -> 132 Column Mode (DECCOLM) + Ps = 4 -> Smooth (Slow) Scroll (DECSCLM) + Ps = 5 -> Reverse Video (DECSCNM) + Ps = 6 -> Origin Mode (DECOM) + Ps = 7 -> Wraparound Mode (DECAWM) + Ps = 8 -> Auto-Repeat Keys (DECARM) + Ps = 9 -> Send MIT Mouse Row & Column on Button + Press + Ps = 38 -> Enter Tektronix Mode (DECTEK) + Ps = 40 -> Allow 80 <-> 132 Mode + Ps = 41 -> curses(5) fix + Ps = 44 -> Turn on Margin Bell + Ps = 45 -> Reverse-wraparound Mode + Ps = 46 -> Start Logging + Ps = 47 -> Use Alternate Screen Buffer + Ps = 1000 -> xtem bogus sequence (???) + Ps = 1001 -> xtem sequence w/hilite tracking (???) +ESC [ ? Ps l DEC Private Mode Reset (DECRST) + Ps = 1 -> Normal Cursor Keys (DECCKM) + Ps = 3 -> 80 Column Mode (DECCOLM) + Ps = 4 -> Jump (Fast) Scroll (DECSCLM) + Ps = 5 -> Normal Video (DECSCNM) + Ps = 6 -> Normal Cursor Mode (DECOM) + Ps = 7 -> No Wraparound Mode (DECAWM) + Ps = 8 -> No Auto-Repeat Keys (DECARM) + Ps = 9 -> Don't Send MIT Mouse Row & Column on + Button Press + Ps = 40 -> Don't Allow 80 <-> 132 Mode + Ps = 41 -> No curses(5) fix + Ps = 44 -> Turn Off Margin Bell + Ps = 45 -> No Reverse-wraparound Mode + Ps = 46 -> Stop Logging + Ps = 47 -> Use Normal Screen Buffer + Ps = 1000 -> xtem bogus sequence (???) + Ps = 1001 -> xtem sequence w/hilite tracking (???) +ESC [ ? Ps r Restore DEC Private Mode + Ps = 1 -> Normal/Application Cursor Keys (DECCKM) + Ps = 3 -> 80/132 Column Mode (DECCOLM) + Ps = 4 -> Jump (Fast)/Smooth (Slow) Scroll (DECSCLM) + Ps = 5 -> Normal/Reverse Video (DECSCNM) + Ps = 6 -> Normal/Origin Cursor Mode (DECOM) + Ps = 7 -> No Wraparound/Wraparound Mode (DECAWM) + Ps = 8 -> Auto-repeat/No Auto-repeat Keys (DECARM) + Ps = 9 -> Don't Send/Send MIT Mouse Row & Column on + Button Press + Ps = 40 -> Disallow/Allow 80 <-> 132 Mode + Ps = 41 -> Off/On curses(5) fix + Ps = 44 -> Turn Off/On Margin Bell + Ps = 45 -> No Reverse-wraparound/Reverse-wraparound + Mode + Ps = 46 -> Stop/Start Logging + Ps = 47 -> Use Normal/Alternate Screen Buffer + Ps = 1000 -> mouse bogus sequence (???) + Ps = 1001 -> mouse bogus sequence (???) +ESC [ ? Ps s Save DEC Private Mode + Same P's as Restore DEC Private Mode +ESC [ Ps @ Insert Ps (Blank) Character(s) (default = 1) (ICH) +ESC [ Ps A Cursor Up Ps Times (default = 1) (CUU) +ESC [ Ps B Cursor Down Ps Times (default = 1) (CUD) +ESC [ Ps C Cursor Forward Ps Times (default = 1) (CUF) +ESC [ Ps D Cursor Backward Ps Times (default = 1) (CUB) +ESC [ Ps ; Ps H Cursor Position [row;column] (default = [1,1]) (CUP) +ESC [ Ps J Erase in Display + Ps = 0 -> Clear Below (default) + Ps = 1 -> Clear Above + Ps = 2 -> Clear All +ESC [ Ps K Erase in Line + Ps = 0 -> Clear to Right (default) + Ps = 1 -> Clear to Left + Ps = 2 -> Clear All +ESC [ Ps L Insert Ps lines (default = 1) (IL) +ESC [ Ps M Delete Ps lines (default = 1) (DL) +ESC [ Ps P Delete Ps Characters (default = 1) (DCH) +ESC [ T Track Mouse (???) +ESC [ Ps c Device Attributes (DA1) +ESC [ Ps ; Ps f Cursor Position [row;column] (default = [1,1]) (HVP) +ESC [ Ps g Tab Clear + Ps = 0 -> Clear Current Column (default) + Ps = 3 -> Clear All +ESC [ Ps h Mode Set (SET) + Ps = 4 -> Insert Mode (IRM) + Ps = 20 -> Automatic Linefeed (LNM) +ESC [ Ps l Mode Reset (RST) + Ps = 4 -> Insert Mode (IRM) + Ps = 20 -> Automatic Linefeed (LNM) +ESC [ Pm m Character Attributes (SGR) + Ps = 0 -> Normal (default) + Ps = 1 -> Blink (appears as Bold) + Ps = 4 -> Underscore + Ps = 5 -> Bold + Ps = 7 -> Inverse +ESC [ Ps n Device Status Report (DSR) + Ps = 5 -> Status Report ESC [ 0 n -> OK + Ps = 6 -> Report Cursor Position (CPR) [row;column] + as ESC [ r ; c R +ESC [ Ps ; Ps r Set Scrolling Region [top;bottom] (default = full size + of window) (DECSTBM) +ESC [ Ps x Request Terminal Parameters (DECREQTPARM) +ESC ] Ps ND string NP OSC Mode + ND can be any non-digit Character (it's discarded) + NP can be any non-printing Character (it's discarded) + string can be any ASCII printable string + (max 511 characters) + Ps = 0 -> use string as a new icon name and title + Ps = 1 -> use string is a new icon name only + Ps = 2 -> use string is a new title only + Ps = 46 -> use string as a new log file name + +ESC c Full Reset +ESC n Switch to Alternate Character Set LS2 +ESC o Switch to Alternate Character Set LS3 +ESC | Switch to Alternate Graphics(?) Set LS3R +ESC } Switch to Alternate Graphics(?) Set LS2R +ESC ~ Switch to Alternate Graphics(?) Set LS1R +-- +Skip Montanaro (montanaro@crdgw1.ge.com) diff --git a/Linux-0.12/mail-archive/linux-activists.91.z b/Linux-0.12/mail-archive/linux-activists.91.z new file mode 100644 index 00000000..a58cdc5d Binary files /dev/null and b/Linux-0.12/mail-archive/linux-activists.91.z differ diff --git a/Linux-0.12/mail-archive/linux-activists.92 b/Linux-0.12/mail-archive/linux-activists.92 new file mode 100644 index 00000000..dff5b0b8 --- /dev/null +++ b/Linux-0.12/mail-archive/linux-activists.92 @@ -0,0 +1,9928 @@ +[0263] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 01/01/92 01:41 (17 lines) +Subject: Re: shoelace +Date: Tue, 31 Dec 91 22:36:19 PST +From: pmacdona@sanjuan.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + +In order to use shoelace under linux, someone will have to compile +laceup.c. If someone does this, I will post the other components +that have been compiled under minix. A more reasonable method +would be to just adapt that portion that selects the menu of +which partition to boot, and make that part of the linux +distribution. + +This is particularly so since, linux and minix treat device number/names +differently. + +Integrating the boot code is important because linux will be +going to a differnt file system (bigger) than minix, which will +use 32 bit inode pointers instead of 16 bit ones. +--[0263]-- + +[0264] daemon@ATHENA.MIT.EDU (drew@kinglear.cs.Colorado.EDU) Linux_Activists 01/01/92 15:21 (22 lines) +Subject: Re: Porting g++ 1.40.3 +To: Wolfgang Thiel , +In-Reply-To: Your message of Thu, 26 Dec 91 04:02:45 +0700. +Date: Wed, 01 Jan 92 13:14:17 MST +From: drew@kinglear.cs.Colorado.EDU + +-------- + + Hi, + Did somebody else try to port g++-1.40.3 to linux? I am having problems + with the estdio FILE structure. I tried the MASSCOMP define, setting __rend + +-------- + +Gcc 2.0 is imminient. Some one in our CS department is playing with a beta +version, and although I'm unsure of the release date, it may be installed +before next semester. Gcc and g++ also become one product in 2.0. + +Save the trouble of porting another gcc in the future, and do it when 2.0 +is available. Then send in diffs to the config files to the gnu people, +any conditionaly compiled code in any source files (should be +unecessary) and have it part of the standard gcc distribution. + +--[0264]-- + +[0265] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 01/01/92 17:06 (81 lines) +Subject: Re: VC distribution probs. +Date: Wed, 1 Jan 92 14:03:53 PST +From: pmacdona@sanjuan.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + +Thanks to John Schutz for finding the bootsect.s ommission. +Move bootsect.s to bootsect.S and apply the following patch. +Its purpose is to avoid defining the same constants in two +different places. + + + +*** boot/bootsect.s.orig Tue Dec 24 23:15:32 1991 +--- boot/bootsect.S Tue Dec 24 23:22:17 1991 +*************** +*** 3,9 **** + ! 0x3000 is 0x30000 bytes = 196kB, more than enough for current + ! versions of linux + ! +! SYSSIZE = 0x3000 + ! + ! bootsect.s (C) 1991 Linus Torvalds + ! +--- 3,10 ---- + ! 0x3000 is 0x30000 bytes = 196kB, more than enough for current + ! versions of linux + ! +! #include +! SYSSIZE = DEF_SYSSIZE + ! + ! bootsect.s (C) 1991 Linus Torvalds + ! +*************** +*** 33,41 **** + + SETUPLEN = 4 ! nr of setup-sectors + BOOTSEG = 0x07c0 ! original address of boot-sector +! INITSEG = 0x9000 ! we move boot here - out of the way +! SETUPSEG = 0x9020 ! setup starts here +! SYSSEG = 0x1000 ! system loaded at 0x10000 (65536). + ENDSEG = SYSSEG + SYSSIZE ! where to stop loading + + ! ROOT_DEV: 0x000 - same type of floppy as boot. +--- 34,42 ---- + + SETUPLEN = 4 ! nr of setup-sectors + BOOTSEG = 0x07c0 ! original address of boot-sector +! INITSEG = DEF_INITSEG ! we move boot here - out of the way +! SETUPSEG = DEF_SETUPSEG ! setup starts here +! SYSSEG = DEF_SYSSEG ! system loaded at 0x10000 (65536). + ENDSEG = SYSSEG + SYSSIZE ! where to stop loading + + ! ROOT_DEV: 0x000 - same type of floppy as boot. +*** tools/build.c.orig Tue Dec 24 23:22:59 1991 +--- tools/build.c Tue Dec 24 23:23:38 1991 +*************** +*** 26,31 **** +--- 26,32 ---- + #include /* unistd.h needs this */ + #include + #include ++ #include + #include /* contains read/write */ + #include + +*************** +*** 32,38 **** + #define MINIX_HEADER 32 + #define GCC_HEADER 1024 + +! #define SYS_SIZE 0x3000 + + #define DEFAULT_MAJOR_ROOT 3 + #define DEFAULT_MINOR_ROOT 6 +--- 33,39 ---- + #define MINIX_HEADER 32 + #define GCC_HEADER 1024 + +! #define SYS_SIZE DEF_SYSSIZE + + #define DEFAULT_MAJOR_ROOT 3 + #define DEFAULT_MINOR_ROOT 6 +--[0265]-- + +[0266] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 01/01/92 18:51 (34 lines) +Subject: gcc 2.0 +Date: Thu, 2 Jan 1992 01:47:37 +0200 +From: Linus Benedict Torvalds +To: Linux-activists@joker.cs.hut.fi + +drew@kinglear.cs.Colorado.EDU: "Re: Porting g++ 1.40.3" (Jan 1, 13:14): +> +> Gcc 2.0 is imminient. Some one in our CS department is playing with a beta +> version, and although I'm unsure of the release date, it may be installed +> before next semester. Gcc and g++ also become one product in 2.0. +> +> Save the trouble of porting another gcc in the future, and do it when 2.0 +> is available. Then send in diffs to the config files to the gnu people, +> any conditionaly compiled code in any source files (should be +> unecessary) and have it part of the standard gcc distribution. + +I've also been fooling around a bit with a beta version of gcc-2.0 - +that's the reason I wanted to have some kind of 387-emulation in 0.12. +I can happily report that cc1 compiles without changes, but the version +I compiled sometimes aborts without any error message (not due to linux: +it does the same thing on a Sun). In any case it seems that with the +387 emulation in place, gcc-2.0 shouldn't need any difficult porting: it +compiled at once after "./configure --gas i386-gas-sysv", and after I +removed a "-lPW" and a "-g" from the Makefile. + +This all leads up to the sad thing: gcc-2.0 is /a lot/ bigger than 1.40: +the binary is about 800kB for cc1 alone, and with all the C++ files, I +won't be able to port the whole thing after all, due to lack of disk +space. I gave it one whole 20M partition, and wasn't able to compile +more than the C-part before it ran out of space. I'd guess you'll need +at least 25M free to get everything compiled. That's why I have been +working on the 387-emu: at least whoever ports gcc-2.0 won't have to +trouble with the floating-point patches. + + Linus +--[0266]-- + +[0267] daemon@ATHENA.MIT.EDU (John R. Schutz) Linux_Activists 01/01/92 22:26 (22 lines) +Subject: More VC distribution problems +From: john@csrnxt1.ae.utexas.edu (John R. Schutz) +To: linux-activists@joker.cs.hut.fi +Date: Wed, 1 Jan 92 21:18:52 CST + +It's possible that I missed this in the patches somewhere, but the +following needs to be added to your include/linux/config.h file: + +#define DEF_INITSEG 0x9000 +#define DEF_SYSSEG 0x1000 +#define DEF_SETUPSEG 0x9020 +#define DEF_SYSSIZE 0x3000 + +I would have liked to make a diff file, but since I'm a complete loser +who doesn't know how to use diff, I didn't. + + john + +-- +| John R. Schutz | Email&NeXTmail: | +| A learning NeXTie | john@csrnxt1.ae.utexas.edu | +| (512)328-0587 | "We are all victims of dead men." | +| 3009 Hatley Dr., Austin, TX 78746 | -Charles Fuller | +--[0267]-- + +[0268] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 01/02/92 01:42 (54 lines) +Subject: VC +Date: Wed, 1 Jan 92 22:40:45 PST +From: pmacdona@sanjuan.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + +Now you know why I am posting this before sending it to Linus. +Perhaps I should explain. Disk space for me is extremely tight, +and I do not have enough to do a test patch before posting. +I have to do incredible contortions just to get this done. +But with your help, hopefully Linux will not have any serious +problems. Here is the patches to, not one, but two files. + +*** include/linux/fs.h.orig Wed Dec 25 19:32:44 1991 +--- include/linux/fs.h Wed Dec 25 19:34:39 1991 +*************** +*** 22,28 **** + */ + + #define IS_SEEKABLE(x) ((x)>=1 && (x)<=3) +- + #define READ 0 + #define WRITE 1 + #define READA 2 /* read-ahead - don't pause */ +--- 22,27 ---- +*************** +*** 62,67 **** +--- 61,71 ---- + #define PIPE_FULL(inode) (PIPE_SIZE(inode)==(PAGE_SIZE-1)) + #define INC_PIPE(head) \ + __asm__("incl %0\n\tandl $4095,%0"::"m" (head)) ++ ++ #define NIL_FILP ((struct file *)0) ++ #define SEL_IN 1 ++ #define SEL_OUT 2 ++ #define SEL_EX 4 + + typedef char buffer_block[BLOCK_SIZE]; + +*** include/linux/config.h.orig Tue Dec 24 23:18:14 1991 +--- include/linux/config.h Tue Dec 24 23:49:25 1991 +*************** +*** 44,48 **** +--- 44,55 ---- + If you want the BIOS to tell what kind of drive you have, just + leave HD_TYPE undefined. This is the normal thing to do. + */ ++ #define VIDEO_VGA_50_LINES ++ ++ /* Don't touch these, unless you really know what your doing. */ ++ #define DEF_INITSEG 0x9000 ++ #define DEF_SYSSEG 0x1000 ++ #define DEF_SETUPSEG 0x9020 ++ #define DEF_SYSSIZE 0x3000 + + #endif +--[0268]-- + +[0269] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 01/02/92 19:07 (97 lines) +Subject: Final version of the job control patches.... +Date: Thu, 2 Jan 92 19:00:19 -0500 +From: tytso@ATHENA.MIT.EDU (Theodore Ts'o) +To: Linux-activists@joker.cs.hut.fi +Reply-To: tytso@athena.mit.edu + +The final copy of my job control patches to Linux 0.11 have been sent to +Linus; if you want an early peek at them, look in +tsx-11.mit.edu:/ALPHA/jobcontrol. The following is the NOTES file from +that directory: + +New Features added by these patches + + * Job control (setpgrp(), tcsetpgrp(), signals, wait(), etc.) + * gethostname(), sethostname() + - try using the included hostname program! + * getrusage() + - not completely implemented, but the skeleton + is in place. + * getrlimit(), setrlimit() + - try using the ulimit command in bash! + - nothing looks at the limits yet, though + * gettimeofday(), settimeofday() + - for that microsecond accuracy some people demand :-) + (well, 0.01 second accuracy, actually....) + +Notes about patches: + +1) I integrated in John Kohl's patches to tty_io.c, since I had also + made changes, and at least one of his patches depended on + my patch being made first. I have included the other patches + which he sent to me as separate patches in separate files, + in case you did not get a copy from him. + +2) I changed the name of system_call.s to sys_call.s, since system_call.s + is too long for RCS and !@#$! 14 character filenames. You + should either also make this change (and modify the Makefile + appropriately) or edit the patch file to change the filename + back to system_call.s + +3) Currently, MAXHOSTNAMELEN is set at 8 characters. I think it + should be changed to 64 characters (change in sys/param.h), + to make it like BSD. Unfortunately, doing this will require + recompiling libc.a and the shell, since it uses the uname() + system call. Not a big deal, but it means that when you boot + with the new kernel, you need to make sure you have the right + version of /bin/sh installed. + +4) When we add time zone support into the library, we will need to + do something about how Linux sets the time from the CMOS + registers. The problem is that the CMOS clock ticks localtime, + and POSIX specifies that we should be ticking GMT time. + Currently, we're not, so it's not a problem; but once we + start including TZ routines in the libc, we will need to deal + with it. My attempt to solve the problem can be found in + sys.c: adjust_time(). I don't like the solution all that much, + but it's the best I could think of at the time. + +Things to think about: + +A) Perhaps the task_struct should go in malloc()'ed memory. This + will free close to 1k for the kernel stack. We may not need + to do it now, but as more things get added to the task_struct + (like BSD-style group lists, etc.), and as the kernel gets more + complicated (for example, when networking code is added), + I suspect we will need to do it sooner or later. + + +B) Speaking of which, I haven't looked at the new VM stuff that does + paging. Does the malloc() routine still work, or will it + need to be modified to coexist with paging? + +C) Another good idea would be to unify the buffer management and + the free pool memory management, ala SunOS and the latest + Sys VR4 design. This allows free memory pages to be used as + buffers and vice versa. + +D) Currently, gid_t is a unsigned char. I would strongly suggest that + we change to be a unsigned short, and represent it internally + in the kernel as an unsigned int. This will make life much + easier if (ha, ha) we ever decide add the Andrew Filesystem + (AFS) to Linux. Since this effects the stat structure, this + will probably require recompiling large numbers of programs. + +E) If a Linux machine stays up for greater than 248 days, the number of + clock ticks will become > 2**31, and jiffies will overflow. I + suspect something really messy will happen then. We can make + things better by making jiffies (and all places that refer to + offsets off jiffies) unsigned longs instead of signed longs, + but even so, it is still conceivable for a machine to be + up for greater than 500 days. + + This isn't a problem now, since Linux is in beta test, but + saying that Unix systems are too unstable to worry about what + happens when they've been up for more than 500 days seems + a bit wrong to me. + + - Ted +--[0269]-- + +[0270] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 01/02/92 21:05 (1676 lines) +Subject: shoelace +Date: Thu, 2 Jan 92 17:44:55 PST +From: pmacdona@sol.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + +Here is a quick hack to get shoelace to work under native +Linux. All that required was coaxing laceup to compile. +The catch was, no minix header files could be used. + +All the executables are provided, so there is nothing to +compile. I provided laceup.c only in case some adventurous +soul wishes to try adapting shoelace properly someday so that +large file systems could be supported. + +Please note. I have only tested this with my floppy drive, +so be wary.. + +Just follow the readme file provided, and you should be fine. + + +table + !"#$%&'()*+,-./0123456789:;<=>? +@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ +begin 644 shoelace.tar.Z +M'YV04LJ$(=.F#("#"!,J7,BPH<.'$"-*1 BBH@T:-$ J,@1AD:.%3UN!,G1z +M1@T9%6O$F '#Q@P9-VC8J!@#1@R3&V%,W,FSI\^? .K,H1-&3D4 $DM9.&,!D6=-_RWMI5LYNEF=VD=JM -FW;DT$D :'\#7/GJO6Z=C$&u +MQ!LW;/)X=0-BC.BN<]X4#$MFL1LZ=20EE +YU7'9'5_U!A9?=,@AWT!AP)&8t +M=G39A9=>Y"4%QU;Q15<0&6'D@9L"4-AVGV%+W5;1>&HMYAY\\M%1QE!E@,:;s +M9@CR!D(;\IG!QAMPP"$?&7(H5@8+!+XE1E=W%.5&C2,J(=1<9KQAV1MW8-85r +M5P/M9T9MR2W77(W0A3$8"'F\44>%:K(!VI(@?/GD9 I@9:=58BA%QVH&W>GGq +M51S%E-%('7T$DD@D533#11Z!H!)++LE@TPTTP5###3J!H-.?G/HY95%'/<64p +M5:)V:NJIJ*9:50 #0$" 1@?!,\!""A#04 0#(K .NDD$D,,LQ 0PTVW("#o +M*W>JHQ,P!S""C"/8. (-+P 0@H@% @!@CS" T)&""?_0(8 )BM 1@!0F$$,$n +M J-P C!G@ "T(-#.!'/X $LX/B#B 0#^&(.(#1KPJ@$N!SD"C G'&(#'m +M1@"8P(@'>@" "ZY0V * %/8Z<, N_@2@119!T * O1<+8*\<]2 ,P3TF(#L*l +M/ (% h +M //8.X(01\'%#?.A0 .M0P#] 6(=5C!$!=6 $W?"1c +M#C'\(VZ#2* 5T$: *S2"$-&CG#YR8 =]V,$+BR Y;CH!R_2804^-B .H93P",T1YU&$ Z:G&V2K8 5Y3S1RXT0C=_J.X>x +M\1B $?@1@V3H0E92("(ZU-&/;RZTH Y=73PLIX_@Z2,7!0# -,:QB$>HH$>]83'0>J),P#<4%9]6)P=\'%">9P0'B>Dv +M!SJ X$TF)O2&T*M#!8(GCVB,8P _3<1/_V$$>! 55^M0!E8#<(<'&,, P ! u +M W ABV&B8QO]0)\_\)D)@0[A'^D@1S_B!@4&^H$ A .$#X9Q$#H<0!%%( t +M$V&,MS(V: 1( 3P2,8\ E' *Z/@'/[:PA70"3Y>!2$?T:GE+_M7T (1#1RKZs +MXQ#T+A?%2"M#7"/\A3:$o +MX3$,T? 8>G.6+S$BP]/]0IY2])\5X#?(%GY2?0KG!l +ME<.$S:3/"+M@#ESQL!^:[ 3VA!HA?R"U"\@ :KD+M+X>1 #3%<(3GD"%*21!"T7XW$$",%T? 4E(!UD#j +M0I"M7 2YX2M$H8,6MCU=5J]!#/>!V+&G:P0B4"$(0F!"$:P@KVE/=[YOT#8 i +MN/!>;CM!V0A&.4*(0M4*,(4H% $*1B\YTZ(,:W=T B3.P'?BY%##&8^7Y?380%4%WG'"7V!f +MF:OJZSL1 QS$X (T@/WL#RD)1@Q5*$*%A.T@@12E'+62ELB !C.X5*5@ (,9e +MY 3M@(?(IXRBD5*12D^!3[SB%]^4%ZA 2!000(F+P0H" $$6AE(88P )L@_d +M/O(@0,$04@""(0 I#T4Z QKF,@00%*'TO;F#YST/ B.4 2]QXLI>8G/ZL)Q)c +M*'O)#%CR8P8Z-(DK&3+/F,B@@]E'/@$QF$R:UM1Q%,U%.7)!,680@R8U]24Ib +M,O(*'3R? !E(W_LF^F:ISG_60@?<1)[V10CN7) [K_DH?GWa +M!WHP( ,MT 0AT@(QD ,XD ,)@ 1KL08UDGOZD1ZLL1YCX'DOH *X'@@0 1Ez +M("?!UQ6^AAAI\!Y@\09FH"7UH1]P\![[10=@\1@J:&8@D')HH0(9J C0!@@y +M" )"\ 5$D 13L 1#\ 1$4 1?\ 1&8 0"1P7EEP P48-CQX4:R($>V(-?w +MI@==@8(@<(5H05Q=411R$")TJ(,\"(8)\(-!.(1%>(1?, 63%P,:2 =YL"$\v +M" *"\65G\"2@ 7-&L8A$:(1%L 6**(2AZ(A3T 4[4(=L>(=@V(9O"(.^!QIYu +M."/SP1=B)P9A(0>#*!\XJ(%>V(,_F 1$\ 50,'D) .&^(5/0GE?0(R/B(PXt +ML(S"^(@4QW .]VQ(>(P)@ +#6(Q0L +?^(@I0(V(F(C66''9"&W16'[FV(QBs +MR 1/, 1+X&SLR(W>F([8:(_;*([Z:'':2([O6 ;.&&_S6(\!"8G0-Y#H* 5"r +M5W03!XZ3EX\&28_\:(S^6)$(R8Y34([!>(X_Z) ")P41V8XRP) _: 0X-P7&q +M.)$A^9 D603@Z(\B"9$R*9 ?V8SHJ)+-UHZ2F),$&9++UFP!B8\IN9(8>90]p +MV9$,V9!#>9$*>9) B8Y': 47:91?( 5/690TN94 290<:98H^054( 5!8)&""9=?P)-7Z8^:F9!V"8+..)F5N9%(m +M&)61.019P 1)X 1'N([;B)FB:9GWZ(^Q29J+>9?.B)JJR9I%5Y9GB9L_B 3$l +M>(3+A96ZN9JMN9D_>)R\Z9JW"9KH*)Q$0)SM2 .1:0100 5OB9G229V'^07=k +M603+Q913N9/9V8[0YY? ^05CB)[YB)W:^9WP*9 ;V(IW.8-S*(B$^(L*0(F6j +M^(&8Z ::R(GUH19&,8:DR)Z6]XBJ6">,]Z 0&J$2.J$46J%701IN\"5G8*&Fi +MHG:#0A*(0\A(FBA(@4!-W)P-_QZ&J,GBA@GB'!Q4RFJ,Zh +M:A4CH(/(V 2/D09X4'KOH:$!0H+O47N=UZ,C ),(!ISD7]I,'Y,JBDTT (>g +M. 8(J( ,:'IN$'4R AI58A1/DB7[Q1Q)X08%\1\K2!@Z" (R0(!!H!Q;NH )f +M$ 0,%H%R(!BJ 6YO:A,%6!1URH!XBA[EP1K=]1=]V@93BJ1N\*8Q4 ,M8'MBe +M,*@)$!!M8!X1R%X<(A"+ :DYT )/, 9T4*U<1EP GR@$:LJ6*\Uz +M*!_>X8+_<8(2DJUQEAHAJQEP(!J$9B/2T:T0* =/4V(=%$G63x +MD01S\1C!-:NV.!UM48E[F(*]^JMR8"-JD;;LYP9/0JHU$K95VQ48FA_@8;#=w +M"AEML"1&H1ENNVGT 8A*:Q1NRQ6V80=F0J4@T*N342("06B;\8&%\;5[,;9$v +M8B1&,:8[\A==01A$41LVJX%4>*9T06&.NQ)(VZU5[9XBXE3&X=8QJB6Z[:'.B/Y ;EP^[AM,2,3DAI;ZQTD* :U,:7_IX-Ot +MNB1,"ZK7#NZW=RL*VB""648-=8;+SX1YU^[GT6AJ@L;6)5AN@<<-"^B):\J8^(B*$p +MVQ4BT )S( +N$;-)*H-FD*9SP8=BT;)/PJ;/A1\ALL ;G :O,1UO.@=Y<+A6o +MTA84;!O2Z[9F_((C,H7[VJ__&K O,(4*$*1T\,=TX*]R+,B&K !MT :(K,@ n +M*R,"^\@*H,-X$N#,NAQX-A8"!S,;"O_ *#V 8Il +M@!N]' :,&K&_G !NNZKQ%X=VILI=09E- *]A$!<2V ;%_(''S ;)O*J#3 8Pk +M\,P^F@ >&X,G"",,#!IWT!OTXj +MW(?"5Ki +MRL]&H\[-#,T\G+J>46C^I]+7,1>,2Z"F>\VOG,UI/'Q_&\HJK!UO2AJ\.",Mh +M.!C[A;[(D1; VJ81B )#JAEF(A^&B[@IT'Q5ZL\ W0;EB\VM&@/0P:C7810>g +M@0)NN]!^Z)$KO?!AL,!FZX1X6:QB^?1S(QQ5G *P1*!I>81EEc +M<-V?/,%GPA5PP"=O(A]:W=(?3 !YEH!^Z7<(@,(T.NJ/Zb +MS:%^2!S[#2@6L79NIRDC&J(D$:?!DA)U%RD#. .50@,Q$ ,Q^M^>PF&$AQ0Va +M6A6&1^$8".@(YH -M0 9D7@,Sx +MX.5@K@.+U@,P@ =DD()YCA)][N)]KBEXD ."+@-BD>=N*.@UX!&(/A-Y'@."w +MC@-8G>(@ON(MWN1/CL=1'H%D,1 Y?N7R<0.2\N-<+N0QL.0MSFIQ0 :H[N*/v +M >-3#N4UWNFJNE^@#@*BKN5 WN5?'N9C7N9GGN9B/@=L[N9P?G%7NB C@=^/NB%?NAXD.AYONB";@:.C@>0GN>2CN(J/@,NX.I=Z^2QKNDUt +MGNZI:^L[GNND+EPG7NEDX!I8QK9BFA3D;.2I/@>K#@*0O7YT<7MML,!^ 1A"s +M+@-\0.Y(/@=*SO"8SNX=+>4R7N7N/K;PON7RKNQB3@=D;N9E@.; ,NS%_N9Dr +M3@/)WNMV#@=XKN=\+NW0_NQY3NA];NW8C@?:WNB"_NUX$.X@KN+\;NZP7O$Tq +MCAZ9H7J?ON/ PG?Q;N)"/@.M/G*L'O013_03'X%'C^X7+Q]+K^M\JB*$-LK1;H>+<1X.)41"Rn +M/"-=0;EL4 >ZG+IU\,CR(?JDO\ V!H$J[K:/P6&6X:@B7",! L-SX-O2FRE@9\X/=/PL&"7]I8"/8>G^S!/O)KGNPF?W>2KO8Ll +MS^@$SOW>W_V:TGP>/O[D7_[FKQ!\XAKG_Q.!4@,N/N &_G8#'@,0;BDS@:(Mk +M,0.1&J>5HO\W,.'KKRG0J,*3X:C"A@N "#!"81V$ E\QD$X50_PZ"3 "4@!j +M*Z %O( 8, -JP W( 1/@(B ")(!=Y(J#@ YT $)0 P '6P"&,4K\@$ N ,Fi +ML KDOKB@ T! "0 +6Z %9(G5EAB&51>($V "!&R!_@:WND!^@QM/(XXP $A@h +M#(J %VF"] H(%#XT_J /X!W4 :"#$D &#D(B 9?,!$4@15"#!C (& Jg +M#X 0& *$L C&X!F\ ^)B';"!4$ #4L%! 0X0(PAa +M$UD'*. 0!L2!Z$Z*@!D$!@3@'\ @#@-*:)!1(@*L0W8"J/"1)8)+CP(R6 8z +M\*M$]@+,C-)8B?ZJOU$P . $WL)3(&%&L /^A*^9%*J&V#,/I0UP)v +MK4$\(-Y5&,9 'OA9A,$HH(#_4(X *&1C%^1,IZ)JE88^-!&:UCDH3 @1K<@u +M&@54:110J%$JR@G0P!J-@KJ2:8YO0T"N0<061N,<*(UO+C=2MMVX(VI$&A +t +MA&'"%(GEMK+"#PIXC\T,)J8WR?ZXYU!;P&!THC"$@ ( **(4=s +M,=5T%REK844L\7W'@M#X[!B.(X^E,<\! !B !0! "7@8)> -^,2@! !&8,3%"/%8 W."G1Q #Z-.W('M^'VFl +M%,(29GZ1+W!%A'! V $E0 A7P"JA 5/P7M"!$* 7K (, (T0 MZ90T EHNDk +M""""1% (Z$ P7"((H!%4 420"YXEX^@%SC(8+I.UX0KN031( HE &:R#70$ j +M&H$02 #,,EL&PUJ@+M$!#& "7K!9/LMT^2Q' 01HAS7$@6#+9QD4-, Z;(=Hi +M(!CT2@S0 N"A/*P + AU! &L @JP+T<*H4 #CQ+ M .&X&RI)?!)86LV6J2XWY,COF-5@Fg +MU?)9"^+!!X@ 699,_^!T"2'+O-9 @&T^0_8I;6T@F@ ';R7d +M?TD"#T %,)CH 8&9)( *= !z +M;$]T< "\I\(D!OBP#T"# % '%@ QC 8#H X4@%&($*@G$+B?[1 =>(.&" !\y +MYS5( <(3@+9!;# B@ W0)N!(&OVE(-@!SB [D0#5L"XH -3X#U]YRC H EAx +M88I-=8D".L%!4!UBLV]&#\YY,=?F/T $T& 19,U%T CZ)C^8!ZI@$=!.9IDYw +M_V8%!0 /P!84 6J /M5E^$0'!F"\N,^H60;CIS"L S@@?&[0#OI!:6?A5)?Qv +M$ W44!*X!I;G^P2@7E1KTH$%B@JKX+", Q"4!)H#6%A!Y>$WB(@Q%(!>T0 u +M0RTF)4";NF"-&A5A, !RZ+,$I"21 '3.S$E$^Z;H%*+J\HB2 B6J+IEHT"27t +M:D &%*TN0T10!5]ENB@$CP J/DLI68(E9[&Q0YL@!,:"51H$("AOM,'0%*2s +MR "D)25PI,&P%1B78U $" $",)L]=&;6 DO:-9H (> '20 /((">"0SJP#U r +MHB7S9.(*-& +5*@5H *LM&,NT2* #/)E',6"_A)_HH%"0WE-3:D;39S#DI^A@" #4/FI/HR8PV(,=55TBo +MC)'X4/BI/OT'Z, !C%2,JE%-Z@)XJ2OUAJX.EYI246DV: .D02@@0RP*] !n +M"C"H6W1>CE.%JB^M:!TPH>J4 Q152V!1?>"@8[*G!$ W8@:):CPYJ#:$ <90:GM \4%2-P5WUG<.@k +M!&152"!8">M0*0+,X&L6@&2%7 /.D #@BL@2 31i +M@+C2 7G@!!2+#BD!G$6Y=H^M(ERA*W&M ]35NM(! _!60"4N3"P[X _NUMI:h +M!R")-T@$+LZUYM9$X%%/(NSLI..4%T36-,@-WLL@Z /,8 &XU1,Z"HKJ.-"Lg +M?10=@ ,2X! 99A7@!<#T'_0-B,D'GB7/4:WSLFO UHS9""IL,(2FTI05N((Lf +M*#+K@4E, ,+D(/ ! 7 /L($G=9W&!6MF3AU26AYLA*T&NT)LX@$+BTQE9H:Ee +MF<^2B.[8#QM-I^F(10 E]L2F6 "P8EOLB_6;1J47S%@ZX HUJ\5$!B\5#7#0d +M@X %>0$ZX $C50P2@X6Y#OQ &^0%:%-:4DMKB4F?Y;8DKMX27(I+7#$(]$$ c +M\ ,SX,RB33P( ^I ";BR678;[(HNBP[" 5D5LV1V!)1+EA<\D *YV8>("1;H-Y0GM]*41%I).TB!;1.>E-6BS'W8>;-(EZD/My +MJUY]EAY5#2 -+ #F&TN8 #P<*O6U+W*4:VH1T4'K@ ])E5T:SNM +,E!/"6x +MI'+5>XI2[6V[S /Z-LO> 6;[! )N#6$!-+6KWE3$"E.#0,*EN&A $S#;"Q!Pw +MR^? -:FAA.*B P9P<0WNLT0#O8#9BH,%X!!!0,2]IP[@I:(#:G!,]VWM/+G8v +M@-FJ I9;0>5M5X4 ,O<3U-PLNP^8;0%MN1YWW@;#;=A71>X9&+H8UP.DE!38u +M WCNRS6I$T#FR@"H:W(3*Q"8NN@ ?#<&N)R?>X]_:HBE\78W#-Z?MO6^%S]P J:M:\6\M%,7F(#;6P68@2(HB(U UZ*.q +M)E!ZI<%!L+T'H0"$C(.J"S# Y8R=%[:'4M)NRS;!K6@1MYQ4J3;1;4H.IBX6p +MU((K %8PSW'Z/)E(9*4#+"!\FIV1F$85*3K ZN6E +05\HO1V) 60<:X?NBo +M 7,P=74G.@!SD', ?( ,JA#!0 %OD!*A(DOX/B9&589%FD0n +MD_R+7-$K2L6P:"5 P]L;4FJ+:(PRL<5.4*1I&Q( #2XR-+S&0U6]$K!(& %m +M/\K+0!*$P(D@"5, S/C',< %?Z0,R),^& C;P!\\I(:P$"X!1#@(%V$D?(23l +M< G( 6["!D)A,H 74V.K##^<[RW,REJ)1PY"KF2,PX""H@-/,'7%+/$TGG6 k +M&*S0>B,&GVL1<,,*U0P*UZ#P ; @,:B>>30%Z@+SXCMG00<@P&%U?'K<6?N&j +ML2 @0 ?T8 G2T /X7K_*S#:1@-V,^ BC_1@1[@P_)P#OSA0!I F0$!-:!]i +MH!DD4#K:0"/Q Z7$$50)8.*0NHG_)S.L'L3:< LY:20 Q0h +M;WQG!6C%,O0-(X*> 0!4QRZ .!:3$#!+#_M#@VAWS09'-(F^X64<-'$%"HRBg +M1>!\%N(Z C"*CJ@!.-P$2_,_PH(@D+ZY:=MD!K$XC9LB-/H,":!!4 1M^%&f +M7([G* /ELI$X&E!0_VL(;"/*[$ \,>^<5[_Ra +M&U[*37DNFV5V8@#,,E;> GJ9*P,"N/R7PW)@)LMTF9T4 ,.LEF% 8N;+2;DQz +MRV7(/)B#@2"YR^B@ %SF;MR5^W)(!@2 >2R79:G,3N0):-8&_M4MD^;%;)KCy +M\F->S5.9+F/E5Q";]_)L9LRHV3&K9KH!OC6ML*(* @(T( 5R,@,8B36$!_Q:?C!+w +M4HC6A"P, !$4@"+ "8[O.P8 !8 BMV%I20AV 1! ILJX$##C1) -+JEPU:1Mv +M\+D*Z*!I,>ZS\GTO;;CYML-=$'T#]( NT-_V0&/?:;R@72>Y1 /=]R"C@Q=@u +M8A@R'(:>#[D$A%6S8US<,3%&!X6@)#/B^3N'C4M[70(!FN'D701/ r +M!^4D 8S!7XL VB 7L1UAT FN@VP0G9UH2M3 E*UBU8< P178U)9\D7E 1 HHq +M12.KRA6;*@B9*ER9+JZ8"0^"-($ 7]CO?E_%N95E(8J.@G4@ 33#=% .\&8Sp +M%(/P8!=TZD6+#\0@/5 =BZ .P(/>X3;AIMP,*(E 'B@!D4D/$D$5H >OLPT6o +M:UDH!E=('XB":3 .'.6,N*?K #] !Z 0IMJ\_NLH6@AH *+F0%7P_Y+En +MLE[67(08.)!N'0K7+S[&!^C@&6Q.6WVJ=8@K=!=H0 28&/];"(ZR//0#%R"0m +M.EA\8#%KM2SLK0CU9OY6./LMK3*R/AMAN6##:H3--=YL<067RR!9RT*R[)KIl +M 3N)RO0 "TJ5"%"N;;7)+@+%1%W_5U3M ; @/T #0&!?5^("X*_1@3^P )S8k +M(/9I)PBK);8LS-6;Y1I\S)!934GFL4:9.GL7< $3X[.+]7M5V A[9U+3D6FLj +M'[;.7@1=@!\T[?D*M:VEU";:5/MHHV%XK3C((!^7:J 3EH* 7K4L7 )@&ML!&6 '##IE#@%<$$X/AM<( 2:@47 h +M!$@ V@&@* 0 (,^P !:["A 4S38EC++W)7;FQPN3,W+K"6g +MPV 14 $2($E!( ,P(73 <4L!=! *].W"9"R.) 3"[A"(!BA!!$T$MKL,,A;5f +MS;IS]^L.%[(;'52!Q\E+G?330"!=& !\83M=E9L +[#3?3H.$( =$ /N 2(e +M HL@"' *Y(OQ2 N>(7DL GTZ0 01=$R+L#>_X#7%@&3,32+0'2)A?6Y"6("d +M $!,64%":(*D8!>"@K/1!#" ,< 5C: )@,$FP @:01>P!O^56J1!2: P^P Nc +M: %UP(#39_E=+-F@^EX$VIM[VP$+L XTZW_%!2M ,/Q:6H"]0?CV[MX1 'R+b +M;_*MKLWW.J"@!'Q]MV^K_+[5=_R.TKQ@':378HL+8, #* 2"H('.[Q8>PKMWa +M Y#AXQL:Y,O$D;YUN,:(W^8;B#?!;!W!@X(P6 =,X(2_ #\0QBUX#O@#1F 'z +M= %&8 <> &3IX8Q@U_Y:1K .O&\3@ 4KG(F_\#O * X#:>%++>%L^\K'@"Ry +MN/7NXG7 %73Q-"@.*C@N< %''!LH<1;^P9OX'8CAX3N*E^\B<+YQN"#?X4V@x +MAR. 'VZ]+28PR,Z,X(A7@@HNP0G!(G#D1KP0!())KL>Y-Q_WXU)<7:^#0/[!w +M![D_*>2<'(C_6EBPQ5U('Z 6=R?=X'\_D?WR7Y_!%X,NQ># _Y,<\*,@"4W[-4T PL,JHH! D X =u +MI=4( P<$.:#/7L$['J51P7]%!0#@#Z0#8CC ZX "^.=0E!!4@*DK-IGQFLZHt +M#[T=?M;[4K^%2OV.@O6[37]6GVPV%;A59@3$%!$DA'20#!;"?T4$!X .R(!%s +MT @03O< 4V $M!>(LJ,-28S;@0$P!%<A"K@*$8*FC4@U0U@F %# A=2"MJV5#4-:!+K.N OC 3D."7$T)&@$-p +MB+EU8*\S<'Z85Y% 4&?&Q/16*G&MKBSGN)U&!3 =$1!E%]!*^\"M= LG_0#\o +M :5>"YCZ+# Q4%VJ4W6KCM4)N%:G US]'WAUL"ZRT8$L .UF?1JC=;6N/O4 n +M;'?K<%VN'V)S -OM>K'&ZWJ=K_MUP/X\^T #]'BD/7U#:=3>U;]Z'0CK4J4.m +M]':3C=<7.2'H.D1<+AQT"UX$CO@!>"_!GN ->P#%'X W(,NP K:("18 ?9[Q/MU4\KB96L?H (L'0:4]AP0h +M#QZ ([@%'=W%"O5@Z,#9 6T/AHNNM*.#,G %N&QG?Y93 +1@ 7 * $"+"D"Jg +M6;ZTIP :7T,P $QG!7\@8WN8-NC@G:>4IP.CG+XRX^>!X@\"43XH!^'3LH)&f +M#P#\0 ](X"Y6*I=Y0XP&*+W-?IKB.&8109CP#4OP)L)C8 *ZS G3P"T ]KB\B18 =(!$)@%3/.B&XA^E &"#3d +M7._DH3PJ )(9!+X^B*0ZRVFL+?V2$00(%5LCPZBP*G_]9V^5ZX!4$]V?SVWc +MWP6GWMC_@T77#M<]"VCW<1TKFX. _3V-O=1<]SB@W=L]>*_;T<$-.#3W4'+_b +M 1*P[F& OG_W^+C?)P)Z?P^-_3HP.*:5&4A\9D!,"8'$'P%]L _49SI ;!@a +MOZ\$#%\V&VM77L /N#$OGAS_#VQW"A O,"S #SP^5D8 -^J#(#OBP5Qy +M 3J WR[#=("!+RD&W!*/ A6B7$[[D60N($N,O %^>VAV(,E@ B4 5D&! $@x +M&: 90 (A $,0 19-QC(\SH #A(!-F# PWMUVXW&C0"2 ! E 0= LNS:8* .w +M$J@\2 3(P-*$_=7-,!LW,XS=% !<2G%PX,8YP-W/ (R? .AJR _XD6 YB",/#EH@^0@!03[_RI4EF&NI@>*H# W4W(0C=?!O[#3YU^L>\P-s +M30_P/UDNY$U _X?]-0(4P)1V7]0!.=4!OQ]7A]C,1H9"&P !E4KT6_26]B'L@T"TE10@$BH;^Q$[0<"o +M0@$HT 4( B0"C0 68"U% \R2&KAT,1':'VP!#*0#F #/U;\]=/?;V8"R;8!Hn +M(&+G0XE65=E?QJ$-68P#RF8"\GX)G2. [IAM(#8Y ;^ PB6(E0(/(*Y&B#0m +MJY5.=%,U93?A3:M3&Z;]20 )V@I0"!""8A LD [$;P@!PB9$$8(66YQEE1$"l +M>57F9%IQ 7=5@L8LD8)WG,7$"I"!J$,6A [< L/6$L$ I .Y -XD^U%_?=KPk +M-P @ 10 &FA"+%UX@,SW !@"3\%i +M(* #E !I4!#P7MAI@( B(!"^@X^@/,AMJ8/!T*YE#^*#O8 ^F 9) /U@#@ 0h +M$@()P$#(#@8!O ,\^#EYA#_4 / 06@#Y(+^4!E$#P] .3;04%^(,E !VP! @!OQ8@L -4A<^2'/ --(!-!!&(!CZ"2* 2d +M6 N@ -E R]4T)FFP8%ZX#.$!/1@!,0^O X59GG7$G@!(%)5)?1B$#$ @X$DK u +M^10[18F^0)?&B.D#+\ ?0 W469 <$K<(2HDFF3Z@ OA9@T"0:#<$B42BD<@'t +M0 !CHFIH<)1,:("U](:M U& /<0F^@%*P);X!Q0!@2*_!/$5 H4BL:4HCG$Ls +M@*/8)5**W%:E&":.B41 F<@L>8IHHII89[6)U$"4!@BD U9 , @[;8.# #CPr +M" P"R #0M14&0^F #^ J*E&PHJQ(*YZ!MR)@80+LBL%BK#@K(@.STS:8#C@ q +MKF*>*"0&B6U@D(4$9!!I8)#E0^U\Z< -H \(0[QB*^4K(@/ HE<( D2*P5 Yp +M5@H5 F0 OR0V%87T0#NT#B !"($Q@"ZJB[;AL\0.N(LPBKR8+@I#ZT"II2_2o +MBT4A/^ NPD+_8C#$:]6+P1 YT [= \%B>%8'_ ,XS9X=- !,T MMB_*41: n +ML[@G0@ /P"_0\S%+4>$ZT" :%7IBZ_< W (?8U/H.@5L&F/K%RUF3-,B&A@5m +MP@#2@,7(+UT=6%-4" #T 0* +. .5@(*6+G8"P2-:UXA0Q4Y6HFM(k +M:7U-M%,*((MA65T Q!#,A47AU6$N(0!=8U&X)N2)O( L 1$h +MCN8BY2@+8 %U'$(@"^ !>!_C*/1U %T@A?MM YT05Y0)U 4XFIBX\OXd +M#TANX9#JL YL $"4$%449H8ZDW15 /P">-,3D C\3%%3UA04; !*%/G( & c +M:.#)5"@8.&)*QC6[C=?%9Q8T04_SH>LF-16%"b +MX, U><54 .!#=8U]DQP@ KR&." O$ "04V>6^N;+D7AAD[8' WPZP/](!H*#S-^8Q#L"?\ =T.5/1I%)5%.H"v +M^0W61@BP5P] 0T<"'@3](D(00O8"12&!QBW-42@D0J!"]@+,&-;DT%E"W]?Tu +MAP04@?LC$HA,[G[_&:*G"UA+ZX#9L A4 J$3-(" 0$+6!1H^L41,, 58 ; t +M?K.$YB1#E& K (F0%3&J!0(T $+P]0$ 85_BQ@#D?D/ OX T $5q +M@!D0"(P!&, _< \T3*1 4YD(3 $H0"+0 <25!X$O@%?R"OI6#C ,'#*0I I(p +M6U53\X#V1P( GM P< 'E "?Y!! \)EW'&0$P \- 1H $N$)=)615!QXN@5-o +M+("=IP0X1 0 6?DOS$\+@%K)5@( ., Z$ &P072ES0!:- -1'V(!#)1^TL3?n +MQ0^0@1_5%41(+G.+A# 0\!V)LN4ZT !TC&,0%" %H$#HP!( +P( 7U]MJ?J9m +M05U@'6 "Y&IFD#%0^\$!KUL9^!JT>DV?-="L24W:GT@Y!X8 KEH7L+.-E-\F.;=YQ6]G$!;4b +M:09[T6:7R6SB= $ E$=1[%3#8!%@#!)P^( :7W=3/7D$+0'@U;>Y\RF WIK3B"L: \\FLVF5H0.[@+4$^R4$.4 V8 >Ty +M;25E"E"@,9OK0!-@;%*.L!\GB U >>@ KFFGL0-37JNG 0: 7)X=T DF\OFx +M5!>0K8!6652'#+2;#%-)V0AP C H-DX=@%56=:&E/w +M"9R\5)9IIQ%L- "5AP^H?_Q '8 -C)W$8=:FQJ$#6Q]v +MP+$9 41IR%K6R0[L>?3 $;=E8KII^9C75u +M5OI^6^9DJ7:" 9O".!;6(0";I>L4;9@!@P!;^0V(EI\#'5 #' .M!RC@!PP5t +MCB4.X%(. 1P 'W![ @"L)UM)3Y!+_-L0,#D6GYMC\1ED%F/ . V6GR5T@0)s +MH/I!5M&E"/!MAH'/'QEX-B !9V /B 2*0>0 > D,'''MH-GFVTEN:1 ?X%]1r +M;@F='# 0,G]C4!O4:*:7WMH/,!"&D\Y?#W@!5H<]X#+8#/: D%^PB?TI:]D9q +M.? # (LG]E6.0%_KJ:RAG7:?L*F_+D!BI.+0/%W_.V=!F<7 *-M T\5%E0Yp +M%0$+:!'H?;*!V%^^Q$$: >N #W 0))S+7^54_0T"#:<=H $0:+E:!B&T;6A:o +M&P/@FFEMX<7#E[[Q ^T@/;B>"0$DYXP)@M:80%GD5 <@ E@;._#@M:!(9LN'n +M!HQ_X("?QK$9@1)H-MD#T@$/P 4X3N9U^.8X?B&8CIQ!DFPI3&P"M$0*&DH."*#GGP?E_U6334 <*@OE ,B j +M'T *THKCEX_E>I:"B$>%8/9EL.NH.V0=S X'G$A5&0h +M)P0@>0)N5X1%^4FN;@@ #+ -X *L0#N4^TT;RU#HH%:" /_ !H$$X /+8 :!g +M!- #O5L[-+MI TP%0N5;,A&$@&T% >"C^F@@<$R)> -I\T@#0e +MP(4N EH !+ #: !U0 1 DR*"J1I*NM^!FO< J6DK/ "5 #"0"N!-ATRJ"0$,d +M3D* (!%!M&T2 "* #-"#4=1L>5D@;P0 .K!R@):6!O(VRL5N6M ET)M9&A\0c +MZT:\G:4D0)46E[YU\Y!Y<0\-;R"0W4"/(F]R*01 ETX>#A$$P%B8I81I#0 !b +M3$/K'@,P#35U4]==R@;EI6\I7\J7TJ590&,*0.&E;NE>&KOUI71I!F"9"J9Ga +M V2JF<:EDRD240:@9Y>I/X&6FJ7HP S02C$1;*EH&@(A;PP 75H(B%X, &:Jz +ME\ZFL5MMBD3$ [BI;AJ9]J9T:1,P=@EOJBEO&@*)I2.5U%26QFYAZ3?@<*EKy +MEH8TP0#D2CH;1]H A ***3GD,&&)0)5FMEBX4)IIJ[%I,10[4)6= XV 6)<+D$M'5"G ZYE-90 [$ 5:w +MIV'?!P=VYE;!@#M 0\(#(M--Y0TTJ$ 7A-H]Z ,JH,:K!U^?P /\ >X51EJv +MAPH7[;4$FCu +MJ@-^0 ;PGL:G"H"*N@[4 A!ZOD'K!)Z(#XP$+5MQQKC9P$D ,( <-E6FF&:#^00!J)94F / #?< $q +MP)U.0V#3-/0+W9N=*O@T /@!>,U_!0M90@09J5H!@ "F*@Z -X4"%("LB@&8p +MJB? >T&GJJJ+6Y!H!@0#^ !T)4.1!A ((!*"$,)@#'PGKZJ^50\$ RD S0Do +M,L Q(:V #" K"JK_%*S"EE "3 P ,@ /&:K8Z$ &*RZH_T:PF M+J+ 'Yn +M?42!@"0* . !C-\&@ !X@^8J.("N"D.]A#%0#B%8]T,P@ Y, ,>J <:M^A/]m +MZK\* (@9 NL"T)4JJPAKPFH1E0!BAD 4:Q6LR>HXT*T. _ 9XC>N%@ %*Z"Hl +ML6I-O<0P0*!-JV:?SA:O(@1*JCI@K^*KVJJ^&@B,K.IJZH:R :P'@,!*L.:Kk +M",#,2K*6K,V09L6PH@,.:[8ZLT:L"8#)ZF+) X ;/1"FFFEO)JBF!?9I;QK6j +M-DX6:UT /A (E $-Z2H5"-QI!0N[I(" ._ '#JE-V\Z&L5AD\H @PFW,@ 8 (,)MF0!0%N 8 R@![&I;1J2T$h +M/X"XMEZ11']*#_RG"$& "K@);E[?5 A\$F^0Y@Y ^?$!*L#BMKIEKI3?'[#2g +MK6X4@.8: LD!E1/I:KHB '? G+:Z^:2"WXFS9*T#1MK9\+J:KC-@D,I03EW,f +MI_-V^I&I'SA3>L P1%'8 #&FP?*4R(1Q0",:%78J5;0]X5$T +FJQ9$ \Q+d +MP@#UUKSV><^K8\&E"DUI)N#&9EJ4H6EF&@(% IOI,"29;J9T*>_JF$H3+,#Tc +MU@6L>)73F]:\BDQ9I_#JKB(#RY73T*Y6JQ$JNXJW4K#= P_AP%*KQ&N'^J'6b +MFA^LV3>B@A+3WT&4#MB;"8$&"\(B R2 "%L'1*L;[ E;E2VMZ8 (<&]NF=_7a +MBXI$- /!H%5B,=UMZ( P$ S>0XM;$R /F $PG3_ E$:OZJE.J00E OQI'8 .z +M0*X'08 ZQ5:QCRN .@\(J!& ^8H!I)MU@ K0","ACBL6"P!(KL]:?WK%>K&Ey +MP!F+#O2GW( :&Z!VC%V $_L+'*^_0!4 #_2BB8!OJ0_0 '] &E!G?0!^ * 9x +MU964,Z?") RHH8JJX#6IM@%7;'BF;+9![$">!GA"5]- &\ ._%>2W YAIRU$w +M >!B%:6]FN@ XWET[GFJQ/W' RI. :"N:L#6TU%L!OL+%KDP#$@//U62T ><*MM PE/G+;"\$@,GHV3Y"@@#!. 'D @$ X% .$!L!0!,0"6 q +M# BL@.;%0 0T E\=)V>G$0.- ![5ZA$#1\ @X'KY ?ZJ I?40A+)W! @ZZJp +MJC !1"3#K.L@.5Y>?ZN0( "^W%6910 NK-EGS8ZJWJDV&T9V _>Fm +M"TM#JK20!3$0SGZHR%6[VL[" /8 I86V)J_U[#T+O>JST$ =H 7TL][IKKK-l +M0@+&(#5[VA(#Q)">402'S]*VL2UQ^\3BMOQLKMK;FJI&k +MP'L1JWJG!&T8:0.\%T*L0IL "+/BZT,+>"(1^L!C^W@]=)GH9^4UU6^2G &F +-?B6DWJ+2-0!X@2%Q:#ZXXX0=P Q@N.>7 ,0/1 IP#PP 4*D!8)$.g +M0TE?'4D Q+@"@!] #D0#;0 U$*CB X4J1@< = L.Q)T6 2J_9\"EP $@$; f +M(. /T !>'C 4#.FUFFI?&PB,0:U7$BO8$K93K(SAN 97P,!B*Z#J _8 F5<&e +MT *2K74ZO<67E)O5F@CD ]'L3<7G5K/= PWYYU:KJ^T,N^?6L"2JGDI\ZA8Kd +M)":4*_FPZ$ Q% Q)J=N0Y34 B*?\P#) 0_2R7*R;BP[4 7'N,(L.&+-OYG4:c +M]IF7U&5SR\$64)VM9AOHJKJ%;E_EVD)^)VS-L+3V"F#E% #I!@ -:;#*J6Z1b +M*P2G^\M&KHRMMB#GCKH'ZIL) B2S+RP$2\ZZNA0C/!O"BK/,[ 0[HB);/&P6a +M!.E* O? &PC7HIPA3@L'=@970-<#D A\ 00 :)O-UJK&((VZ#/P!68"6FH>&z +M BR K H#8(GPEKI;JJ9O0% @UIy +M8/%L[H$J[#60$'2,85F3>,CVJ+:D$ZD$@ ,H:3D1 @AJJ]3Q92UQLN# Q^NQx +M];)E #BPYO8!X("GNPW,D<*F5(<%015U@)FG\&I!($!#"GX::\4F,< !R+M2w +MP"@;S6:=Z$ S>Z$6? 9OO8N/T;SL0&BF\P9[,B_!:_ BO/A8:%$'D /H #K0v +M[2)4V!_/>W1B;18@E98(F+OH+OIG$,VQ90 U4.=.;VP "= ,J@.,WU@(#12Zu +M+P"L!=3R (" ='FVPJH"+7=KJGX MZIUFS+YMF&D P"A%;WH 8@,M5^B"\$t +M(#)) /KN=[K-QGY>$.)+0R:O?T BD Z@K'/@ 1!%)0.- ",0!0 "NT*X% SHs +M ^6J--"4):O+JM:4 %@#]6L^=0\$ ^\ #8D/7*L8*[?*K H,=)\X(*XZ978Or +M.@ !( +!@+Z !\R! P "H Q$4:JO.+"ODJROK\<*#DQF<*\ZL*5% \@O G!Uq +M\JP':S#4K ("XL ! RD7NPI.@ ,Q%H(0)1J"P@#$.NSU*R6O](OR)JO9JP;p +MZ]'Z+$51P\! U+-JK AKTIH(? .TKRF%#X2L/BOTJ[0&:TQ:_#"FUA%A'YY;o +ME0VZX1*'*L[.H']N._L [+UN0"C YBJ#0"$!@&ONE]5!>SJ&G1TD*G:#JA.n +M'W"L^ <,1(*$"*P, /J0.K;"% " H E& P% OH ]"!J$0!&XA\P ARZ+VS]m +MR@!HP*;J*J 06'6FZAC9PD(#T< //\6P*ZOTBJP8@#U*P2 ^S[!(VL4?/@%l +M .-JS> "@[^_;_)[/OVYII0RH#G,@06 ]DL TZPE*_C[ 8R_E^Z>BP9KI>EOk +M%"4,Z+\^:_\[#+"G^8"^\ %HI>.J/)'9OL#J0!H,L]J_WB\VH+]*MF,J!?"%j +MG:D)G3GP>O4 >$ SN0Q]7Z% )2Q5I@/. +F$O:T #0 F(%=>FPA7(Q +_ ,Ai +MK](9#/0!^NFOI0%V (Q 4_GUUKPXG1,0R#9E!1$#,(-Z@/)<) ?>-0"<@"Q,h +M!&@ !,! Q(L6 "2 :_4!$3]J $M"4Z: 5@"@,6N8 PD =@.5U ?! ,# .9)U_[%PA5V(#z +M+=8_I!=+E1EQ^I;7@6O1$@40])H+*#$DH)<& )*49KP(F NF%!V #X_& 0"5y +M9^:!Q4UE"M !0,/I6U37 %##V^R2Q64!PTWEDF6G\0/E1 J #+M6.G%8?' \x +MP]%PL(<$&,,#P"8A"^O#HW"5"Q27Q1XQ0/S^D7U;UVZ\4ERAS*;+\(-. _C w +M,T0$R #&:B&PRI%#?BSY4*1JCPLt +M0^19S.8BD WAJ=G0Z,,;K !R@WN6Ms +MZ7")O!![Q 01@JP@JT[30"#;!L$#DEL?4 4 *CP0:!9:P.10!] I8V\$8 Z0.TX;VT":B2T#R]LRE1SR$JL, !#@5\H!l +M_.DW["K_@JR>,6"" A1W)LH6&>?%>S&B:41ZPUN JXP"60&IK(F1*FO*K/)!k +MX"K#RDTEP\P&&&DLW3[L 4)^[W)3&2]WR_1R58P@&P++9W36,1\$'_.\?/M6j +MQ0U3IQP ] T50*=, %8"(+,Z4)51 88 T%4#J,,N&SH@ BS=N6YK+[A=-=Ri +MMIPR2\S?\BA0%WM!!-N:6><^#0TP A!M6D$,27>M 0P#T9 -+ .U '[P") f +M =0#8_)!4)Y:"ZI36)9JV@U[4#%A B%ZBT!!I 0($AC@P;D"= #PLH\[#(#,e +M^P #, 1DS*/P'*LO$T3_ !.@0- !7:(&:ON%SH%LE,PMA[Q7\O H#-BG\4"Dd +M&ESEE$3 !S#*%0 -LL7 "1;/ZNF#[$^PQMNL?65V&!SH0 [<,;E!:UL:) B\c +M%T%G_18Y#8K%<^$YRL)TU_ 0L'52SDTE,34^>T'E\_(7U4'/NS$!V*YMM4!SMOP[(\U5V3 P!-#*]C N7" Ov +MFF]G!AT2,\ARY4^;1SO#R? V*TL^FT#T.EQ:W&D[ ,@".R&^P"KAPT4BP EM (40W3T2L<'t +MQ ""!!\ 'B\"Q[0II4SW:51 #) 9![W'](N[=&J K' CP .HD*SP**!#$P&^s +M@"E%!%@"M!#>1B)S3A1 PBP=,P$A<=7Y]6;3VW0BP J#Q*84$X +]&GL-%IVr +M30=72&<\/4]3 >UT!:!#4P&X0$9$/0, D'0Z+4D3 )1T?.;%80.\ &!M+_L9]H#BJ,5E YDMRVGF!@,U- !X)=&#S!,S+$7Y 'VPY1%n +M,& .%$14@ .PO1UK=H 1L )"D&29+QT.1&6O)G"%UQ7(1Q S;58/T\5:BF,Wm +M'&N)0%E- +#2.FBVC$20 G-DKM8CD@,( 23M4U,!)S$V2@_0 >> 8EU:,-:"l +MQ+$F#4O11),4[6OY@F0 S$L7-Y4FM2P -#O572= L57(0G]T)R#,(IK1V^F8k +M!=$!>X"RED9_7PSS"4!!K0-I %'#R0!2U8YD9TQ &"C;AP ^M86T0&:!1Q.j +M#$"W-UK_RQVDWR8#"-?T ''- (RXY5 8 5V7$Z0DPTP,\%&C&BX@3#K*90"Ri +MVZ1-MJ-:/-"-c +MSL!$FP9U D>9%!1BDT 50)B%-1<3#&T:5 ZX9^D F)<0J '@T\8TT8(6&D"4b +M;0;A QQC(0#0@9K^I(:=!C4=]E"=?6>7EM'D1+L.F!T7MH[-+=8":$"/K4I.a +MM#B3UT9-B%$X^M/DT#A]8D^&.;V.%"z +MYZI$_=IM-H<]T4IW*K8CL&<7 GTVG#U#3;0L-;;D:1,"/@"O:7RRQ5VX#%-. J40YO/u +MM*HIP3A@( 1RU]QC(Q@PTWFG-T"A p +M!$Q#2E,70 *U H8VH+PGR(4OP)Z !@0!SG<*5 F$60\I#RP-T %4 -= 77Y,o +M1Y;(A \H67A3DR6+0S9 X! %C -k +MM042@"Z@A!\$0T 1+FS: PPU)C(/R(4C0!J4!P19E%MNM0*"6$86B55-F5A^j +M&XJ5?K-8ZS<'F0(H:S\X!L 'C%=MN X@W?7,]\ T$ S-KAR 7/B&&U [@ XPi +M7@T!:#CS &SX*I ,7 ,R4\C;>Y8!EVS#)X'CH$6=;+0#IW1VD!VA-h +M!EWVBA#\7D( #R"'IP.&-T(@!/!# @ 2_H1O!'7 /, UY%;L5.1:9(E88G@=g +M0(9[9TN6^LU!%K]Z@ P M0!NX"Y- @$6Y P-6T/LV-^*G;IU4 D/CWS0-Sf +MH!6 47KJ 0*7>%" HP:U *'X0C.*XA2F^A*?BJ[@WT(IGL:]Xe +M^3V&H]\(@2U>304#2]8PGNS^K@B (XZ,DZI5:PS 7>*A#$#W)Z;A0]&X08=Hd +MH@"+IB(D '3BG[@V#@!PXZ5X$OZ-J^+7 "O.& X _F-"MU'>0#J #I$$J=#5>#PKA% /X 4<<1C&-JX(* " 0# Pb +M!SX">),0\'L1 -Z@+Q"]X@-$P&[X<7!9P"$T :T&&( 46Z4GQ=%.0! !"3Ea +M2[F"R)0_Y4YY5*Z40^53N53>E%?E6/E5KI4GY>2 @9&54^5;N54.EH_E8GE9z +M_I6;Y6'Y6:Z6I^57.0% EF/E#,!;SI:_Y>R 5SZ7.X=V>5+.#WCEN_$!MP&Ly +M U] 7QX * #KP-S@ 1YP#< Z\ 0(Y@E ]RJ8BVD_@&#. *!MNU5_Z^AUXPKYx +M04 Y*&- !> #4 #OQ8^\. 60T6N.= [[,:[EA*@"RE";9NUUB\,H1[Y$=<#w +MN&>".0'',(EXUIH1D C$ ( ;F!H%+AM0 %(UIL:94;/21HSU9 ]=Y#0,J:!Iv +MT!W0#_H &$A\ 6\%T: (N +Y@".T!_P!%0!V?A'6T7=0/K "T %#0#J@u +M QB#V/F4\@'\ 1$ =DX&I$'[VS8[ MR;V/FD,0&D Q: ,=B3X4WI0 4 /@.>t +M_'E&6&PIH>"$E!:*4V]_*S[@9!JO>JL3) 4 ?" $?"2I0/'6 Q5>$KC-]^!s +M7K6.0?:SL;8#L@._ 4) &0"W6[5IJS] OD-B8Y050'7'_PG"RE^IL,ZX%T,r +MZ!BZ@7YX;^@\J"EE6%#(3H" &0+@M!%K/0q +MW6HI?H67JP!Z,/ 4L6T6G[p +MV7_QX@!0 G"<16HGCVJ3W"/0 4, T14,$JZQ@-34-^P!/ $05+m +M_=\X2P$8 OX@!H?WZ@$VJ0TPJYMK6!O#Q ,, KX %$!!DM^Q^/E-D9_A3I8Ll +MQ$%* #IQ0$2![QP)P:]NJU&7P;0A($_W?Q6 JGZ9$P 8*H0^"M !Q-@9Y(>3k +M )"%!>C[;=U3YB:H.NE-\_41=[]AFDC -*1#S 'INO%*#P2N4M2^OK7Z9!2Wj +MGJ:X_NM:DUKI 2X-Y= B(/3YIR,O_YV#1P%K9NJZ'9" (T' "/Y;3H0-@ !42BPLE_K728%P(3*0H# BF63@@!"^S0Tg +MG=7J J .2@,L2W9/(D2A+P0WN^SG#4U#1-DCH##U /4Z0@"#Y.NR$+]>MF^Mf +M7D3 [@2IE5QKP?ZU>A%M6Y>YL#^N#?M(";%_[.W ?XZ07NQE4,9NMXML)?M1e +MME7A V2@Q&X>!\LK>[%L2L"3*!!"'1!=ZRV[MG[B996O^E!1 "3N",$ZL+BCd +M["';Y4ZJ1N[;>LP^#0\ '8#O?GR-C+R[\@X b +M^)6.19GI.F463;*3>$4, X5;D$GVA4"06Y0\NI5N(N\"=ED4;M_C]DZ[>^^6a +M&X2MN8GOMSLNX,G-[F(?P_2Z=N^B6_INNFUNXSLNP+N:[_$[\08!T.^4F_T>z +MO@=#MGN=5V&S0?![XR:_QZ4 _/>NOJ.D!7SAQDV%S!.4W&L>E'E/7?$'?_'<2Ww +M\',$'U#$(^L2^7.'CJM8:#@.CYU*\0S39JK$0^3FN"Q^Q3-96;P0#_8I J[;v +M"0]E6M[M>I6Y.GD!C(45@*NAI6B\X[9U=]V9M_YWPP_Q?SK0I5LIW#H3,^WVu +M,FQREG8U?@CRS6!TY0K0 ?& +?S'0H%"_/16]N56 ?>'A<@3\LG564/Z!8X?!98s +MR3,.O2EPA GR5HIPYNI;)6F=G]: "7/6UE+V](E?['1 L6!NE?P56OE!;U7^RLTGP6Vp +MI96?VWO" UW'@"95R\<-CGC+'8IFG4 7G_P-:%*OT,WG2* .4&$&@%#QR== o +M/R!NA9*RX0@W\7'I5\\,'_(5.0M5BTOO0GR"$ =O\#GQ_2U'(B^n +M>4'1 !V:3QX$*B0^(- S]/#9_'WS16/-D/,Y7I-#>:D:H "@0$A$O-!@719Mm +M*0&@U#/UZ( \L(G=;F1S C%\LUDA97OI 4K#(Q!Y:EL- 53B_'U)>8!@?"P^l +MBYOAZ3@:7DG^F='9#PX!:.0'@",1UE)QBX#_O!1RI+_ ,M&;D[J_:^J7H/9Ik +M"^JTF;7F:J;[]_A$H4"LG5@WZCX#;V!^/+EI W#@OS63\0'@Q!CD&.J!_$!DC [Ti +M )I]&[WS$IND?15D]6*]V4!NK]J_W*@V/! $E/:_/3J " CWL9U,26RB 1, h +M$3 -_ !HP QP#9006%!R+P$P]WXI$D$/- .;_?JWMO4!2AXY_&FQ \V >]8'g +M.-C!7D+@"R0$GD/FS@=404TO%Q!PO76?/7P-WE.TE 778$ZQPCOC+!4K_ Hf +M4*Z$#N0 W'V4' 1$:>S .A# H=HDP$>6!:(#'D""#PSP >!"L ?A2_@&O@%@e +MX1-E(V P]-XC!/$]/!"9D\,# &)LI]&0)&PS:(^[N( ;) ]]OIG(;(+*,"VPd +M5MD'U054H5U ,]@%8 /$U))%3+6W9X-Y.?ZMM#]^< 6^\@ V;1] #10"7G8Uc +M2 [5 "Z=:TT-^ $#0*Y&#:0 =0 5!0] >>];!7#5D4,,0/S*!4R%5MFLU05(b +M<19<4-"RU0&@>1W0>O%]6! W4/2V7OR]!V6L@0/K0*-!P,6A.W[5.?Z9%;+0a +M0Z?1K90<'0\E[%$0OJ&NA@79O'$^,X .Y %X?L,']?JQGST6%.FC U] I1_;z +M_7:=_:*?!@Q=>GXV*C593.0 7(>^VODEP'XO!GU0V6AVCP5AO1" I[^7Z5=Ey +MT(F<0M !100'P&JW0^-?\ @\+@+(E05W9@'IP@!'6CDB ][99T7D U&2!=9&x +M#,CIOQ8QD&:VF[B ^L?@-9][0 ;1!P #NCX6I L$^18Z2GC$S0+N&:H-#A#Xw +M5="JCP[( 'B^Y,8'* %#OFA%#*P#-D IM!_]6LA =H9&I "_UMW9!XC4OA_6v +MQ@$$5\A "K #S*Y;0"I4C$G[?N/B0&GI0D@ ]( 'G7%(OI_7!2 #Y/WXAVMUu +M 0?_IJ7P_U<:@3K?!F7\2\#X]R8RM!P?$B 6!E?3?AVFTD9I;Z*3_^BSG"[ t +M!@6X1;91H$V0$$@3/, 7)OT5_+!FSF=*B7A0 !B:0?1>^*W%! \ >[ZDQ71;s +M:OI8D*0?#1S9E-9JZ1!1 )\6/+#J!4-]@ 60"["P , X'*JM/+<'U #4EHLr +M]=HV7KT5@"-05:AR (DC ?!6K !J]9MV#!B#B< ],$P#72XNN9L(Y $(P.MJW38"+o +MA0P@ 5#>)KIT&O=6&9:%#'10[$!V1@SX 3S 40O3G508.-++P),YFIPW_N#]]2PSL>> ](]E79N#9*I8\X95GSW#3 2PT6*0m +M0L4!U/X)W>F0OF$#GL0#T C8JEP6A/Y6Q #&0';K F#_M+_#W^;(>[#B(RF!l +M ](!M@;-WT@G=%8*,0# /I_ 8#_'SG%50.A:[$4Q/X ZQ1K"?1OLU"+VO,Lk +MG8@!Z+,^P.W/"17]:P)X_ZI.I3WS'SN@M ?=:01(Z"Q+$RV]F;[MO^(U43+Uj +M_U12M2P38/B,RU*+2@)-9&D&$>E,@2SXAg +M_!(!? %@DPL3./7N0'$@'0(-P#UV>QLGT &$210_H ,J5 ( $ 01:FX2-Uf +M1?2 C$!R]80L!1.H0%0#^,>N,C"P00e +M +)<<"@=@@Y $:A$*XCH_1J!KAHX%"!0@4 )5"!,0VB!!+)&X)IF$]C"0O0Dd +MT:@W_+0 !_ %9A ^62QO'0(7:C#7^)O)%(&3-404S9_\*32 R:0#X@+9(.Pc +MO':!D\!U@2_0"_+EXQ.9 .%-=AIN +RI@W+^P5.UB 1""0'XWR'CO_(OP/(Qb +M^$Y^SY!@CPCPZ 3]F_[9J=)0PJ;RWZ-OD 3=89CQ 1Y;-00.P!E$ %! ^;7 a +M R" +H ;( Q@&W@+] .RPHX X$ O8% %"@ M)N1 @]_XAK?#SWPSA)%8(>]z +M:5J!3K%:(/6F$SCS42"@ ND 0(#.GW&!#I (Q 3V 7.!?1])8"_0$@@,3)()y +M X 3,FGP_2RVRC-#G&3 8'FUw +MFG( 6RW #2Z &*<$L6Q)_4P(2)^@#E #: !R.]Mv +M ?R"7"]0GP\KO^<%0 SV]ZX!-02"CXXI"%AT<@S*$Z8 &1%KC8%/!( 8_ ?,u +M :X@

2GBM3B;),^C%;MI*NJ@3PBCG,^@9U((\t +M $J#_+UC0")@ 1<;M /,!O6"Z !\ #$@LO?6J0)< = !1 #<8,-'-\@;S(BDs +MV6B#H4&0W7"0HE4@9! [. J:#]Y#J8&@!/*A!60) r +M 8 3H#O#5W*#8 ==(DU8!1@8RJIU2Z#&9$;@&=P/X@.. $@p +M".$Z(1M=#3K@#= @- *84JP 5Y"%BP2A.U@@#"VLSOA[A1E_RR+ /#@ > ( o +M7=*#KSO^%>YN-@4=)!#N!2V$D;U!P!Y )]4 \ QV][XQY$&7F*5A1EA,V!'Jn +M$!8'!N=*>JHA@ 2DSU/ &U/1m +M *8W6AHC44@)NG(/R 9HXZ K;+$'P&[(7BU3;+B#9PJ@!H>1P]C(#X%@!@!U !H &4=H@RL[]$P#. ]O7BHJ(Hi +MJKHh +M:N0Y>2Y)X8WIAA6LL:XE! 9EJI.[SNMG/*7H0R+8P I!U 66", $ /4.PLg +M JB%/[Y63QQ*6T@I#/1=O?Y[AJ;9$+4'V+/H>P:PT=8!8X!%2[4GV /72:YQf +M 8)!)C46P+]0!:6V,32UQR8^S !=P,4'"# Z>@3JJ0X $$-2(0%@8AA4E0X.;<.R$@JH > SA"Q54[(NJ@1D2=V05$8'B 6@a +MI&1O1[T_'7JIK/2?J0.0\T*#*X DH=,0Z'(:%"U-Q (*IH-FT!" 6 %\!$"z +M#74&;1D&0 [ &$!(,XGL>%A/2P , ! @@?'DY1!#3)/#)//(-$$JW00X &Hy +ME!8W925)T^)/W<#JZ@!\FG@%1X>RR:8@3657H@4TE6!/9R4:@&FIK?16J@#Lx +ME>9*=:6[4C7,=F@7NP!<#KE0H"7MCP% K10Z/#@L#A,!C4.W(>^'@#( B!QBw +M#[.$?8C=$PG $F,Y@ZJ9ROPV0!5E&3I@#]"^$IMY ;X^K4%F""=O, -0 +(!45@4!H8(U6\8Ut +MUW!K_4,OR/]PKT1[VI41GVA/(L/3X)I&2Y@08$_- 2!-J3=$ &4)M' ("+,,s +M 9I!:S%P0):/ E (X &4=N9*!S\B(A+@B#@% '0GD@ NB[ 0'P0W ?1 <0*(A !!&7 $\ "@!_S7IU?AAHY1#$ ",q +MXXP*_X ]A0. @S1IJNP58Y(!ZP!Y"@=)R-$PR!84@Q0FR0 @@%,+,: " 24p +M='(AT*.2SDBDMM('B !P4]X+40!BDRV@2D5"7)CX?1)@XSOSG6CIF,*%\A&Bo +M UX!S#U:B$5%M*23Z@"H#G !J("FTB @#Q)?,@\F L0T=8*D3XSKSJ(."#YAn +M ,X!G)OI#2KOA%H=@HIRB!ZCU"J%]80$P $ ) (88 H&P%@>-.XV4W!j +MM5)-D*9840A :MCR@6LEI42'>A"C%+T'^#0(4 )@ 0 K",i +M =AHSJD$HOR)+ICREE^Y4L808T0[0F_Y4Y'P. LDe +M8SY#A(!C0,TEKNAEZP747/ @%R%& Z(&>"-&PZAJ/A] J6OXAT@K'@!&BLVd +M BSU $!!8K -($A*+[[WL##/@B ,&$ UQc +MD;R*(:[1HEB1K&A6%"2L%IMN"2[7HBT MFBL808 X))/_@3$(C4 #Z(".","b +M XQ7P(#ERM1GBD),(06P6:8H>) QC@[@XE=YZ2[J[' 8YPU''AQ ?$'T!H5a +M 38I30!2 %DF$)".D0V1B;0QWD7I8GCQ#] U6"^R :R+QBM<@,@$!/!8Q &@z +M 0",\QN1R2MFNH@#8 (@&'D!VL5?RW11XQ,4>#JM%TD520 \R!; ^],&X2QFy +MYC8"=( PRF\Q&21:E ,%T^+Q<5 %IM.#]2G0AFA YY&:^,Z0 Z8YOQ($ ."#,"u +MD)Y%=AU0P 4H@W!:;(-@65I$; #%7A,$8:!2,^GT 8@\A !/0 6'&1#+4>Q$t +M%W$MP$6PXHD1M5B^.2X>@UR,,,;88NLEOI@&X0<56Y@!;8:F(#, "U 'V & s +M%C.-=P 38VF1N)A:-"ZN&%N+I\508W-Q%W!T2 < M 1PFZ/$3MHF'2 /6 CLr +M& DA])Y=0+ QHY*V:2@=!'B-%1Q(8WN+&.*_H0/ J0 L*1R-WHCQ O15G 9Yq +M&<-($HO#3_*8AJDM*,'8@;D DYQ5+@ 0,N'P01:D<\Pm +MDRYS%8"?H[: MKBJNSH$ H0!HH#,W02/'Q)T),9 _B VS( Z"QC #P %" REl +M JI1=@!P2>\EVJ2*JP,(&D$K_T2)([_9UQ+66f +M&,V._L8O3LA+[:AK[+T\' N.R<;:/$8#NX_$%Z4 16!8#IS-?1G@@.L&D5b +M 3 !)3DO2#" A=8& 07 ,PH!MB@&8T)'TL@Y@0,HAAB,78 TB-?N#H('" !@a +M<"8 BH4N0!Y*O**JF?RU@W0 :*T:0'WQO??J,P+X(+D!0$@A)#HJ5F2$1$)Rz +M@I:0XH FY!.2&T EP@'Q%7T!&("OT/CG@X(-B$,2: 8!X8 /0!)2I2 .V$-&y +MX7P!%H <@#:@#_ -,"9D^:8HA*']5H'16U,&N"9A(8\X[X!AB/U1)(A_+ )(x +M'PF-1L"/H_\1 !EIW"S>'*"+H+DI2CJ +#U.LA4_29]L@#(DYH)$2#9(A(2]/QWDAL_P /@K0-:, LVt +M6+0_@H0N53;1S02/DS-]G/)C 4A #ZGSX(#, BY@PH 0D=^"#;@KWB*$P Xs +M%NI(?#Y]"S^D R!TA$&Q&A$ ::+,'4 EG):YRR&@?10F_@!+4PQ@(IF#M$CZr +M'(DQ&DF.Y#3$(UE,& ;P^?(;(\F2Y#Z U;A.:">('BUS (!?P"D.UP4 " +Xq +M:>X!YH#-6R7)3Y-/+)Z@Q:(SW: 1E^B1O6(%(.PT:ZAPB9\YRC8$&D E\DJ.p +M0<"2/,EM2"H@2X00,$OR \"2'<5M2#*@6=-0ZLG\ 7! &83XTQB$];.7'(-Lo +M#N\ @P!!'9M&YE0 4-_546A,.YNFF6_NJ+=-O-J,LZ@TUKP!0'\J@V !@/+Qn +M >([\1LZ@,_I-_0'0 *0XCJ+(,8'P"MR&_>97$""NFP&N3KKXM5L$# .:/E(m +M#G(ELQLP@'N&O8(!Z &,$^T $8"8&P"@CF*D&H5T?VJ3PQ#^J3'6U&7?Y?M@KDLFL32)@ B!;27%HN5H^.D5_ G #P"!,TQ&k +M 8,FD)3/Y(>Q+2":/,4AY&*1I\D)@%5B=@,,DG.)]-9K;R82@,6$&_!A$VN)j +M:,A[EK/)S?EPMF@PM 2@A 8>(H,!M1\-Y0_15?-#)-Z9g +M[U0'&,3T5!B HWC$V30%*25-,#9+DPD TW0[Y#1YFGZ'3D-1$ZG)#&!J.F0$f +MO51-?QS'(>5H=I7E^R'B!3E&!DJUTQH@'M Q>4CEXZ0!FQT"3802%S"4,[R9e +M 7 !&@$.XJ/)@_0!@#VU?"X F"9(P*8I#^5P" 7H*;MH#ZD^C9;P22A"PQYZd +MWZX.BX"AS!7'%6)>@.#Y)V=WHJ7"X0Q M*01D&;%0Q*574," (DM3(E$Z !Lc +M U!)9*P" (N2JS6HE"<8GTPB!0!'99WG+;4(&)T-I?*'::5 @$J1?PA 7"1Hb +M >I*QD-9F! Z ))J$H= X0 '(#;SU!!U40+F$4.FO:36!)T@"C ?/4-\UVAa +M?K:*;I!!R!U@C-4] [B\GYQN$)L>T7?'_+2X:2BJE<(!^Q&UD@O$TG0"8%+Nz +M*>4$@;]QI-8 8Z=*/M\:!9=4IU%AGP8($S%A'3I TE0=IZF(0J=60)34KB( PW=(IWY3-P0?Pv +M /H3>B,/T!%G? -YP@? WZQ03R#8'2X@WT<.2>"-?>9WH9L 7@CO?L>^ZX!Xu +M+;^65P':F^T-][8Y>0A4 6IP^P8*3MKR(( "D.@\!"A*UI)_P#?@+KD3N *Tt +M0_ F!@ <0+8 IL0(V0,\0%1*& >$0'Y#1.>CTQY95$ !A@!< 1!@%/?DL@3$s +MY\(!]8"4@C) $[ #L"OR!+ -,>1B 0 !8 KX%OR /R6J"7 )4+ )A L&!84r +M"Q80%(PQ ]B/P(L$!80"XP%.0!XPQ#@",%V @# CXWD:M5"S"@'<(/6+5$q +M ]HA"Y:% -^![P 2F C ^B6"0&HPD+ Q+>\C._I[.B6W1A(@(@M<#EM0 C@p +M37 5:4PC?9R>XD"Z%YV+[>7X,OPI?82%/ S*%^:+\^7K@("@/IR?;F^1%]"o +M (( \,OXI@#/@$, &L )@ 3H!.X ASI-K$T (, #T (0!J8 # !O %4 (4 -(m +M,-$ PH 2 ^@!] "& )D N H( N@!1 @@D(R 1< N( /8 _@#S@$A !" 5Xl +M V0!$DQPP!^@'U *Z %\ -X!@X4D@"7@'"#!Q 9\ _@ VX >P#E #= '6 5Lk +M _8 '0 > $* :.4"B #X (!%H Y0!9 "; && %(,0\"X !'0!Z@". #,&+Qj +M YP!80!"0"3@BPD P 3( ZX!>@ ?P P@TR0$T .4 XH!;$Q0P#W & +\ 'Xi +M S !U@!30"R@%V .8&,B FH!^ !R@ _ !_ #8 1 #P ;0 .0-D2'2 .(!C\h +M (8!TX 50!D@ R .0 .4+:$!30 Q !3@!Z %( /L +X!3X!&P"F@; D$" ?Hg +M 0@!/P!<@ >@$( HP@6X \J6F(!,0"8@%_ #T 3H,G^9^8"R989L<9<0B/ Mf +M!+( _YF$ !#@$9#,E"<- YJ9\!!\ #03$$ (< $$ 1("T )P!C@FHD0( 3(e +M'KF9!X$R0#.@&0#.! %\ 4 ! [DI9H'I!B $0 B( B@!&H V0#LSQE8.X 3 d +M $0!\TQ(@ > &, +L ;,,VD )H!ZP!K =880P 3L !P!(0 "0#S@$U "2 (Lc +M '0!>0"> S(@$] 'F ,< *8'NP Q0"T@"! -X%U! R(!HX!B@ (@ ] &\,/(b +M 5X!)0"[(A@ !6 P X )( _0!. .@%Q +6#FRK!8 K U0 2@!V /: 4,a +M \H GH!50,BKC7D*X 3T B@ ? !I@!?@%( !* %8 ' XT( - !P H !( &$z +M & 7@!I@"= \*@.,?&) 38 LH >P # '! !4 4L VI7B4PA "W ^ *:.8 y +M )8!.( %0"L& L )P"&( -H!68!) "A@#K -:"(B!)!9^0 L !+F#T &" :Dx +M 'P MP!7"P &4!F6@6@ 'P 5@ H@!S "R #< !85&R79@!D@#]@!3 *, 7Xw +M M(!,@ \@!? ?X(% 18 *( +P!W "*@&9 *T 7X W8!(R,( "L 'R *D & ?, +H R@!.@"C 'F ".0A t +M F0!T@!VP _@ F *: 7 TP 8H G ,-P/Y('& 94)A0"@H!7 #@3%E +P 5,s +M HP $ !\@#- "X +J #0 X@ " $49#F@') $& 9D ;0 5P '0 Z K!<2H&Tr +M"'$ 38 _0!Y %= $^ 1X!I< " $HP#L " 4%. /@ NX![X!:P /@&6 (.0B q +M 4!=W8 I #2@&" *H !L HH!)H!3C\6@'G!5N@)H ?@ P( I@!F !# #J *Pp +MK) =P!!@!; &\ (^ 5D *8! 8!AP/02!W % 10 [H 60 ^0"=@$^ $& 48o +M $Y1PR%J@## !! &\ 6L *H!"X!YP"] .A?BI 4 ?( K(X^P"3@%[ )* 0$n +M Y)R_P4/@ . &7 &P ,L *H!JH"G@Y!C&!(,* %\ -8 N(!I@"@ !A ,V 3Hm +M 7)K!P%L@!1 "1 '"#$$ RX!9 !/0#S@&\ &0 A@ V@ ,H!A0!R@#& -D 4Ll +M KX O8(YX+RJ&_ $J #4 ;P![@ CP(C3&5#11 B@ '0 J8 ^YQ: G)8'V $\k +M 4H!=H!AR#> "* +V ,, N8 C( 7@!J "Y %R" S8 *H &P!]@'# *\ <$j +M 7P $@ P0!\@&.">H?1("YDLOR=^P"R2;VE[8ENJE#Z7!,QTI[ISWZi +M.]^=\,YXI[QSWDGOK'?:.^^=^,Y\I[YSW\GO['?Z.W<4DZ/C$T(@^2/P/ @$h +M9"9'5)!($,(3(>!WT,R)[2 ,;,S)42CD(/!9P0":(>8f +M E2>8$P( Z_AY0D.@##,&&:>" $20#NDI#/RQ = &(PO14\( S;P>X3P 0"0e +MRX">!P$:0+L'YVF[7+6 #4:>M\L6PWOAX[EJ\0!L/1$"64\ O@ZWD0"'O6d +M>K">JQ9X8.'L(("Y/ @D 54]/#=PS[#D&F'NN6M8 <,_@I6D$[MF[/ C\c +MY*"> (#=Y4$ %G00^![]+CDG[X7OD<+H(& )@'O:0 X"OTC )R\) /"4&GDBb +M 5@@'9R7Y^7S(" ,F'NR0)(!GL^#P#4@[\D"44^-/,$!+)"=P<@3#]#PM ? a +M/5F?FCGCPN2(%=#PA,J,/&F?!P$-@.P3(< (%+M)G>?!X'>YT' ,C/RI D^z +M0("?B,"#@(1NY$D/*-<\ 9"?S<^#0!< ^4D**&\6%T:>U<^#@!P ^>F3\GMRy +M/XP!<3%9#^_&)V4T:>/("A$C ^1G_/ @Xx +M Y"?T)Z#0,ANY D(,*>]U:Y#"(%.F7UE2(!9!]^P!(0!$"%-"#0 M@5[ YVM-%/2^@'S(*DEASY&FL.P@Lv +M 78%WZ.5710 !+IOV% +( +% N@ OT#, "90.X0-L -5 7Z!X !8H0<-[)u +MZ4:>N 7J*X ".H"]02P0+$!+E#)X\@3"7H0H 6P0/$!+E!>P!/4!:H,8(&Ft +M!0X"")21YQ44 / -8($B 5!MDC#+)ZI-G3#RA .@VNY:95!46P)@)#(YH@2@s +MVB( ;%"$@!OT(/ !B(,>!'@!J+83@!T4 ( '/0C4 /:@?5 @ \ $(IJ8P+Lr +M0?D!^@;,X,@3$7H0" /L04D (D^_R\@3$GH0(/J,/#$!(D]7X"54Y&F0?'EBq +M0@\"G8 ]*!/ P4#YW(-R ^H 35!3*"H4 &"Y>GER !X&)X,]Z"OT(+ -&(E\p +MC\ :DMT@"T4(0 -"#?6 V2AL%#)TR0P$!UE \0!^ '!(/G8>.Z*RADYN#P"@ 'VH/C058m +M0QD OR=>P#_T]Z0,L(;ZG@X"U "#Z.\I]7+Z_#T5PAJB!P%\@#44!D"W]!N,l +M/"FB!X$(@#]F?)=$O8U''!Y 2/8D"k +M ) *=&#WT$@"A 3?>7\%E*B[ZQL T[4)IH'2(D**[&,/E&;*"0@*'H0N 2Dj +M1(N5^M"4*!, U-8*4(J"VG8!*5%8@(]I&! 5]3%% _PQO"M6 2(&X 5I0B@i +MVL0!7=&#@ WT(' ."(LR688X\@"SJ$P4 * /,(N" P@.GP/SPD4K(*( ,"_Ph +MKM !;*<)@'G!KDBN.PAL .RB4\PA3@D ,"H6A8NZ /:B" %-V*R0, H .(4>g +M!(H C%%LP.:$"L 8G7CN&QBC_0%I*&.4%3#$<0/(1=4A[1 \ &/T($J>8HQRf +M T1LA)?DBSKDU%,)8(PB0ST!C-&EZ$$ %< 8W8:6/1&C*A9BS"^ ,:K^M'\Re +M1BFA !K &.4;_D-V(PB2](!C%%.0#)SRH"?00@P HYUC%%(P!#' %!SX5U!d +M !8A '0'44(0 ,:-Q9 &HN=L696L1@.]I8:-RY ,BC !L *33!H >908@c +M.&-LX-%N)C'F8W@0L"O>9Z8 Z%$9Z$$ B:8:UOJCT8,OIA^@YG+1:GL" P!Z%%( *CG$8 >Y3\41=&CF !(I] %02KN/ BHa +M M"CJ(#&G2P /1H(U05$2$5LSH **0LD&X >!0.8&,8!Z-&<* #@'< @U82Tz +M0_(!Z-'Q9^%3WW+1\MT4'/0MO"N6YT$ Z!OL8\VE4P 0-*$0#O$!9 DC7IRy +M,\L7"-*>YS:.1QH G88H 9JD%@-()R0"02KAVS<429VC3:4SP)?4O-E4@@-@x +M25D!7TQ)2'U4#MI44@1@26D!V-%) ):TW D <$(B2 &B!X%5 ):4&H!JHP5@w +M27D 7TQA )4T/Z2V9 8,2G,%[9!K ):4 P#I! >,2=N83:5F7W-4+ KII =@v +M28D S4P'!>^*GE(?=5!#0#;@5XH \,>, Y:EH$MW@+;T(+!7J@?\2KN? (!^P+H4 %"AC![Pr +M7.R*O3(( ,_EHD4#F(9D '@NO"M&P!P0!' O10A@+P\")@" *=@3PO "V)<:q +M3)UV#M,6PS0$"J P/0C,0:4W!=,F:%/I"Y QM1@TE=8 $5, #9K#M QO1WNp +M 2JF;T<@8 Z 2@3($ ^H920,AT W80N 6$o +M3/M>BTV4*1X@*?<,Z)CZ\QQ$*--\* @@( @I07H&]@!(5-+8#T 90H)T#?Tn +M U"F! "5T@$@X,*[*OP%&+BF" $,@$J) Q!PN6B-^2(&8-.#@!DT.90V76P.m +M<6P ;=.P7@^@;2H551"U33&B ("&"X(4"O#%!!$.2[^89("RJ9+T(- &:)M&l +M/X,";=-UB(JE;;KQM#(*3M]'TQ!'0-LT^PD H 2T386? (!-0,#%KMA)HY>Vk +M38V? (!70-OT"WH0J 6T3;D!$"!@P.;4UNE:60:T3<$!OZ=I0-L4]^D@:ILRj +M ER@>30$*1(@^Y8.6)VR+0LK !Y0-N4 E L;9VM2=F6F1L! %G%.CJ4 P Li +M ):GPY O9@2 K&)77)KD/J&G!0>1)PB K,(O+>U$.Q&DL 6" P >[K&TC?8h +M ,BG%4X> /FT_GF0(Y]R XPT30#R*13T($ %X)Z.+DL[7@#R*1,4 % &H)YBg +M0!,A<@#R*0C@BPER1)#"/HT*]E.V9VE'$4 ^Y04L[C8!Y-,@Z$% %. _'7XFf +M0EH!%5344B)$%A!!-=+L LBG440 #& ?(KZ-(F23T6B*H4$JE)N&J(-4*%2e +M3 X"Y@ 5:M@. . .R*"R[K0%9)47@,Y":&'+> '$2>@ , 7@(#D"_ %4%@ d +M -(?< A*@#@## && -\ ;P#8 )[!0!@+3#"4*(R49VH4%3;@!15CM&UL*(Vc +M49^H+(@HZGB!N=3O@"&5N8#.^ (,(H(+D@&=P!? 35 I:H+ZPQV5D/I*3:424?,$PX'?@AU@T4!'/:.Zy +M4O6H;-3? A%U.*"%$*9^ 8BI0]1AJEO@84!$W:1B*(*=S=0ZP#/5F'I)%5(8x +M4\VHT-1;:G.AT_D%L , 4LT$@E0\*BIUO/ ;F%+\4B6I4E0SP)6!:' ;F*6Jw +M48&IAM0JP8; #7!.W:,N&H8#-@MW:B35GCI?J*<&4]\098 U@#\UGGH'*!+(v +M" :J4E0X #X5H3I>$ Q4+!ZI^M1Q*O!I6L&ID .$4VFI\-1T:A(UHEI+'2^J)54 @%:$GHI6W:/V4]NJP50.0U15G-I1?8$85-NI4E6)*JD";E%4;6-Hq +M!XJJB($W0!J@J%JQ.%,P5>6H8P [P%P5HYI6;:8.*&P,+@7P:5:NY#;)$',*9F*O8OP4JJO/"F/I1-1 84X,+=@ 6JS%UE7H'>*WZ5^L=<(#LZF_AH9I3_2W8h +M!T*JNE4W1,W"PFI@9:;*6,$$'M;[ZAO B6H7R#<84]T59P 9 +MCR@K"R*8*g +M&=P0M8'?@@0&\=!,Q5YP!=BL;@$)@8?50*!D?:^N5W\+ZE4S:S.52Q!2K;$*f +M6C<8EM7WZBG#P=!,1;*."82II(K9 &Q53\ D$:9"58FL159NJHQUPOI>G548e +M4^< -XX^:Q&UP&!4%0A@63NMDM9.*QH@PGI+K5N\!^(#@-8&@7,AUMJSP#8Td +M6LT9R(P: ^J"J&$0:*9Z4\6KO]7!P)-!Q1I27:Y^6M4;6P%6*R6U- "#: Z8c +M 8ZM4PZFP!R5O?!L):+N& 0#6@;F@N[!TCIG^+3>."PETM9O:H8"TGH4H;7Vb +M+%:MM-:Q0X65B I3?0Q4"8RI6@ Y !L@MFI,_0W(" 8#*K65M;IH:*0&#)NI,]8R@+'5VHH&P+;.x +M 8ZI4PL+:Y]!I;-F;;367-&LOP4Z0,7"1Q#.F*F6 1X9FHJ#JX#5M]I,O6$(w +M!62NO58BJL]5ERIF_;D244.K8U95ZKL9=1>:K65B#ITZ*TF 3(4AHP.:S.U1" 4N+S*";@7IQ+;PFt +M+Z84\-;%*[PUECI3+;M:70L>K@9&JD(5!B%,#6.$,T8,;U=,S1B X?J(\+K.s +M 3ROF5=CJN\5^+IVU;Q*79<"C-> ZXV5B%J"F"^\7G<,RE8]P#;U^4IR_0*U9TAAN#[TI$Q;X"7;VO#:3&q +M44NL,59&:KY"=3F%V+?^%GPB:8HX*G6UU_IB-;%N&/( 70L/ZZ[5IJI>P*>^p +M7T4.PM37R(P Z5HCB*,2&@*JI=:! )%UK %2G;0N!6P0QE3O:AQU]FI:G0-Do +M5:.NA=7("'!!WM$@ ,'*!0P7]U=>Q'7 ! N#*,'J6D&L(U@LA']CJ_IG[;IZn +M7P&N@=7OJF< WEI0C1"H/UZN;U>W0!!6MWI&W;(Rl +M%XZP<53SJI4U0C 38:0.52,$9XH3:^,CPBJL0*W^.^^P>-A])Q*5/?"U]% 4k +M./ZP XX2QK" ):#@2%'0/VP ]X^:P$D 1J$I<'<.0# <. H-1P$D#ZL!<3R0j +M'Q( 5X"[J@]"3^ 8V4,8!:X 08H33!7B+3 F&7T4!)P/; C1 ^G!]" D<#^Pi +M'EP/L <+"2JV]G![N P$7;49O8>MA?Q"X!'\.#XT,.0;S =4+/3A_$!]> M(h +M1; /]U:[!?=A^O!]2!&('\@/YH?NPYH@_1!\T QL,URQ\(=6!7N!_F!_^#RPg +M(>(93@V111"#<>%["%!D*@0#80H0@!V 3.(E4%0P1NX"G=A9!.T!B'$@T,36f +M-F E.Y)P+/#"+I*/#<& +4 /ZUA3[&U@%BNEV#_T'QP$ @VQ-VA!3"GV$8Ee +M(/(Y"8 A@%I .[#;N#+4 ;803P8C1FA$>A%],'),(P00DHHLA:5B:)!O*&((d +M!XH:CIJ8!J1&>O%D:%T(($(5-1$[@*4"4W%UQ8SP!>P#10,40"9B[AJ!0+.2c +M'F005];=@'1@S&J@F .@ -P9SX<[!>["E?'00&:(++X-B@_6AJ4.%X$?0&5\b +M": $M(?]10L@)FNI:)/( >("M(BY*V+@]B&RT!'$&-@#6=D;P%;6/&"I* *Xa +M 2:RK $QA:("%/MM$,5F90D0!H@\@*6"\P 6.!MU^#*\!XZS:%;7[)P!//L>L%X v +M%Z:PY%D* 7&6N]";3AX#&?%<]Ju +M&L ,_5GB+)&@%A&@9:2"7,L !5KZPGU@%=$'6$7H(%X=HX\MA @@QL G*#N(t +M '003!$ A1G5#/"@[5I$:+L"/(!%1O4-;F&S0 /X #JT%MDM1(@68'$T"#>4s +M'4ZT(P ([4461'MZA4&\:%&T']H!JF W&"O,-'B:&>T U2_ZAG@1ANC]= "r +M:4.TZHT2!)%61BNAS458:'^T$EH>R),V1FL&0&JD(/@210 HP$ "!("EA0(4q +M.I01(P 4 \KB05NEO40\(@(25(#^!-SB$A&=W6W8-, ,C-151)AV,!"K $;$p +M*JRT,9@B0!%@"6"-2-,")?*T>]H^;3)"!R&FY=!N::\ JXDD , AZ##GH4Q o +M'_85; A[ZR#B1A*#H _09=, HMA"A+U5>%&@ !6H *BLH $H0/>R-:L"@ ZPn +M%U( "K_ZA%JD\?&P8%,(6;L+( !1+0J 5&NJ)8TH_.@0FUJLA3I6L H:@*K&m +M:KN7I]I4;:ZV56O3 ,"V!V2UZ]CF *IV%3&LW=4V!R(/:-=C;?>R3=L4\18(l +M:]L,G-ID;;[C]O"K10%H:R,/RUH%0+.6O= 6",'.!62UM-I.K5% !1"N'=>Rk +M*:2N)]C31[>65-NNQ=;J:DFU\-H6K%$ 79N;+=6J:R,/[-IK+:OV%@$7D L(j +M*[JU[ 7H *G67TNO3=6*:^VUQ-I*G=J"60NQ_=>J .JP7UD'[;=VSDK9X-=Zi +M:FNUUMI5Q+?6)8(A\-BN:Q6V_=IP[;=6#%N4[=92:U4#Y5GHP,LV7?NR#=:Nh +M(EZVX=DP!A"V92NKG=GV:V6VV%DW;;B65+L;R?V- L#@ [ !JT85O8K6_@2_$3B=JR*?@3-8>;0\[!(='1V$2,b +M99$/G=O@+'Zx +M1IJHC)H(Q ?W7WO\(.%R(-"V- C^1$7 =($"0-MV;DVX((#.+0Q@!Q!ZR.#Fw +M< NV>=84$&K5@1NJLP- !T0 ,! 1 *H6!&"_=3TH(7BXI <++D<@@SNE@'&@v +M #*X4=S4+ CW1' "N .< 0) &4!0H 8WL&V +0;W.X.EP0@/ZV4H=:'=S^u +M0)JX[0PM+DD A]NYE8O)<2L"> '.A10W44#%360X.<:X$H(V+OTVBYL P,EVt +M!4X ,8 O[E,V#5 1J./R<*NJ @%^)9C#D L". '( !2Y:-L?K@S@DW#W#'!0'P&Z

W(0"T+397FPL:X.9^p +M9;44,H E[AXW3K"AO>(B6WD11UP9B$BC!I(4R8'L0#H,(!@WP \D(SL$$2X(6n +M=+< (E8R0!< .B#1/<[F<1D#( &2+6L !2#!Q>C&+ 8#&]TBKDEW0D &6 '\m +M;QVV%8%00X" /K##50 \="VQH(=,K*MD$[L4Z,3.8EFQ' U1;#R6O?#3X-NRl +M!6H8A0O?AI@"N(J!T$!H:Q4 (MVN0 )W5ONSY>DB6XVX%EOH !%D0T#!E>*.k +M9DD5:I'@@%AD(+#!Y4!0:#$$N-?*+42739$&<.&R(2(E0XH5+KG6#>#6!7(0j +M!]2Q[8K5!QWB@LNFL /4=<6KG8NZ*WU ]6&]S4" L@i +M;I$#BEO#KL5VT5#799 T,SHD8($5[A@B;8M[K>O2(-*ZZUK)KA$@"2!OB#R(h +M8BF[R(BZ[:MV-#"1S5KL=2VVIUTP01JCK,N&H$&D,5Z[I%K0[)-AMANV37R(g +M8*0;^P$9KE5WMZO[Z-P6;<$$WHBA!!.@,E$$&.W*&Q*Z=ET*!G%W/V#<55L\f +M&5 H(AW@Q# N5L$@.EZ!:2Y>(V6:QG@Y6K0/>-V;JFZGEK20[3VB@MF0$&8e +M-=ZP\]0)+@*". 3F0$:0!#88S@68J3]7NBO;]6V0'L(O^%O20P] AYO%!0G;9HB* (FR0,$= >Z=(%WKAP NHO'/0VDc +M@!JZJ5EG;LI52!#>C=U^*0ZZT('3;7P7NIMR10R4>,>[FEOZK59WOQM;[>\6b +M!*"[4-L?K@E =TO>/>@>9_NX5MQ\[0M"ORN#I6#,>&6P< MU;FJ6DIOLD./Ja +M7.NH[MS0B!S@B%L4P4*\+38$@!&E2)6 *5+$N(%<>)$$?Q*.P%;W2)#A/;?*z +M 5Z\/5X9;R6W!W "2 &X=#F\:I$I!4,7NDO)14" <6>X[=RA@)3WB'L6H1*Hy +M"08#7]XR+_05S1OC3>F> -B\;EX0KT+7PSOG=>BR(D 3X!Y:J=6;X%[P$4(x +M,T(:X@P<1$4 H@O>/>V^!HR[:U5OA)Y@NDOF%0%8D9:X UX0@!.@"L $8 (4w +M>#D"3]XS:I0WV7K$1=2,,22]7EZ!+G0@MNM<\.\R<^.\'U[H[DV7#1$0\'2Xv +M+4"[F9$>QEID./ AD>M*L X%1;D>]Y1$F;N>V%N'>[?:^>O&\DM=9+SS7ZBMYG+J.s +M>FV\90 X+[Y7V O-Y4"(<0&^T57B[&X6+)#-[=*2'N"XYUYV+CXUP5L$6/;^r +M=J4BIH9.M$E]&;[ZW#U"(B.:.-D0.XELW;)N!.#36M5<(q +M:*>P( ?0+;7O6MFL$&D +08[=UM[X#B>!OQ#?D>>(VR(@"XR!XBZC 7,8STp +M178D+E\-;\Q7SCOS??06>^T6KY*K;]_VM8NIH4)(>].[:5L;A.T6.D#NW?86o +M?7;BW=*5N[V!63\NG;4*0n +M'L*\B0(XKAHWQ9$H@/:2 5 ;]^^[;4W[UN+8*2";W&O.=\YPPH \_OS)0IXm +M>X>[X=Y4;SOC-.OD)?CN>=F]DQ%W;]JV!I&/U=F2,W*]&%YZ;QICZQOL=?3.l +M<(^P=M\S:GG$0D!OJDGP+VBk +M>*F]D=^S0(*B/5&&:$*D=-N^D-_F;\ 7NBO&=?T&85$ S%_L@,@A0:%PV$<4j +M)5*Z/XCR+T#B*Q'TS=.J(^2V3E\.;()7ZNL>H/H61E:_3)*LKY27]MOH#?$^i +M>B^OA(;.K$Z#F/'5K=[.!\84-@9+W0IWX[I[S0.$BP?L?4.(*g +M>#NWWES2[\!WY!OU3?TR1WHCF1%#"6?$*. 9 8T4!D8CW@+]+\SWUSOQM?W"f +M!KZ_.MF@+6A@[^L&@ Z$?Z<#$^#E1&H".=&;./^&@)D3R0G/A(-6[CL:^>&Je +M@$\?"5Y"@PL8C0OPP-_*@&&]\M\:L!7F!@QA36@D86,C,!+@2.C!-B($YD7Pd +M?[N^%0&6;5' *)L$7LTN@V!(L!]8$GP&H 23@BW!@N!-\/CW)3&2*$D@@GT060F81$G"% P", %Wa +M@5/ %8L5L A 0#$&3O7&@->Y3]_YKPVX,H(#_HTT2N# ;0%#R1SX.%('WO 2z +M@66^%-]3,!(89PL(-@PX@!<-&%X3P"GC!1QZH-=J"N*_-&!\<&7$L@L>\9! 2,HC ^%K,->W($S#O0AWv +M;C/"IMH?[@X71/+I+?.Z!>J^IXPC+@A "#<&AN/R<&W"F@)3[0I@!1#R%>,Ru +M S\2$RXEUL$EN,Zt +M<^6^#.#9 'GDB)OGP/"F<\G 'H$U;EH8#K 6]MSR1]S").$X;J*@O3'N%:_6s +MA44 _Y&0\/>6"%Q670>[R)" 0;@9W"XEY<\'QB*FP/I@%/2.($%A(P"7Q$0V+EY9#4o +M1WZ[8F%=;X9W_RL3KOWZ?U6U)8+*!?"WB#'\G0OX18R_5]<&,/@W^KL&F/XNn +M**J_9XB4;O(77#L(A@([A-6\V%]P\/:7]\N&>,=F"=P6P >CP#V#^\"\:)!@m +M=A\?K]UVK@A@1/*"(%?,*K(5G9(5B;Q7UQL*Q@5#(Z8 #&%"L$-X'&$!ANY*l +MB%TDM)%L;Z)D1K(H2<)^>3O$WM^#L"RX$*P(_@0G@KFVB^"X;X: VIK@U9&,k +M??TDE))%R9KD1?PGB1&G@F?$(^)1L"?8"HP+UDC4)4S$Z5X10*:64Y(D$1(?j +M28C$/A(C\2,829R@J$G$), 1YF O\2Y81RPA?I(<+J(D,PLJ29HD4((EEI%Hi +MB8VR7&*E!$OB%BPG)D= B7G$(H L"67C44,;Z9),2KXD6^$V<>-7W_']C1-Gh +M);P2Y> 0L%8BX."9N!-#>44 I=@RB8KX3^(I:90(BDD";^+Y<$,X05&5L!'Cg +M@CO%C>+CK(2X31)<>)/T@U&L G%,F(!<2%X(DPG)DSLf +M)>S$HN(H,9_D37LF0?S:0*S$EF(.<9$85GPDEA4GB3L3]PAS,+*X-$$FCA(7e +M2AX0DV)*,;"8-K(A'NC"B(G%6V)C<8*B-N$I_D%PBT/%J5D)\0PF4@(CF92Ld +MB6TDEA(M@ZL8UHLMAA-KBZ7 NXDL<++X"CP%;DX\B7/%>.),28.!44(M[I1,c +MBX&HL'8">NL56 I/=#D"$N)5,:H$P_LN-@[')U8 R6%'L:Q7!'#AA>ZJa +M:@' 6X$J1+=B>FN\-0"O<"G&G^&D;_;W @OW14!K1G?y +M/A).8%X?R7Z874OMC1K?/E"\8(ZAK]*7>OLU=MAR('2ZX8?V,.MW[.N/;7<0x +M,YR][&!/[P]7GKI?R/VN*HZX=X QL*^8))#J7?6V>A>_O5PSP/YU9TP'4/NVw +M*-B^.F/Z\.?7T_OQ'?=&CMNV<-_X;[KWY;ON50-+1?:OJ]]8B1:F6OSM70JLv +M*@C"CM[4+!=5HI*J'?;2'N#&78%+K5TV ,&& .JJ(&3'E][_P$\CC;'4'5PDu +M+3HP4=D>B,QB*TQ[6&K8!HH/MPAN;%/7X<2K50!4=&L/"MQTK2CV;WR+@ Z8t +M&7@@7=VU;MJBK@O7?>T6@,.Z[8'.;N2637 A:%4@>U>XW-W(PZ46M3L^AN$*s +M,S*R*UQ2[?H8XDO;7>2N?C&]A=W4+!0@"" %H (D ?S'3P G0/ 8BV",X!]Kr +M)]:W6 "Z+0?B S.LR.SF(#@0D5Z3!LR!TBN4M1_CC[D0F]Z*P/RXUTO=!8((q +M6Y&[B%HG@*)V*,'=Y?Z"=]?'/6&^<6)X@USO+0@<<4^])&'#L:N7*LS.W1P7p +M?%&_5IBU*F DT,M"GOV6A_N_S5RO[U[DV#L6\8VD(-P6"E^V2+-7LMO]G2\\o +M@/G#U5Z1P^17;8SQQ5] !U#(E6,JLKF7AASK5?K>D#W'>A%/![S7*4(Z7G8%n +M*4B]J./SL-RWW[N^;=]ND>W!-N33+V#XX(L6H0\DD1F^M@$>\AD9XIM&#B*Gm +M9BV^X%W.+R4UG,'QY?L*'* 6>31;W78*ESR7?B>?"D;*=^5;\M7/,PYM@;?l +M>['!#EV#A7@W+##I90TH;/4#%%Z!1RQU,B#<%>,*DN<,/%]!WM+!OQ6i +MD3^_ H= K>%W<$P24/SJ;Q/'3N1I,FUDBLS>U4-8?F^^&5^=[R%!E3R%_?QBh +MD>'"FF,><26YUIOZK< @DU/$KM\=LGBXAVSO7?3.A(W ZM0? :$!FWQ&WOT^g +M>OT>8XPH# -99O';Q1MW+U'(>^-0[_3XE?%"%AR3DV4DA6-6+Q, <=SXO29Gf +MDT,/>]]6\O[XE8P?I@(,?L7)9XC#;^(WC[&_V.,K3@L@&9N&Q<[DCDy +MEG?+.Q$9L6\9N"Q<;C8(C6_!R>7J)'!>CA+Q :Z<;F(%:VJ&#'AQ%@!K <#LZRn +M@J$#@F"?[<>6/ "T704S<,4 V>.*P#TC" +Y+1K3D%4 <("E\ ^7KBO'I0\Lm +M,CNW0P D /^8/?$_=O2ZCD$/KN:8\;\6V%QK1EZ49V>QX-AG:LR8U^R)H#_(l +M1LH M&9AK"k +M ;K-">%O<[@9.6MM#L^RFW^SWF8V17L6KZRH: ?7;ND".N%'[J..ATL?X .%@+\CXW&((#CK$Q75\MNOC>Si +M(3@/9P*QP)-A%DN210OD-)*Z'P(@R. B"9""F%),-OR\3!'HP(^@)"O\[5:[Fg +MCP^[GMHQ0$ZUKGMVEMJNG<,5I61I[FIW-.+;@ ZHEY\ 2X"\,-)YZ4P?F.V>f +MFB^^>N?B;IG7S,MX=B%7F7#-61]\A>YW:NH*3RG9+D"D)J6\:^WPWM0-@O+<2^^MUW8\[1WO8O?[1N[c +MGO^[9=[\[NDYXLOS3>?&D$7*R.:G/YF'AL!QWQ.L 3F,H;'.J<-X6;PK(_^RY?0'Y7/"%XN",#XL-P#+6^U!0=<9.*:"QQ%C5@*>B&LM^J$*K'N8"-8ULQC:65-&-Q3_Hv +M'S /!]GN111Z !&HT,MB9AD0#HBS0 0BH'R610,LC^T0]PF&A@0HVA7\@$9L(R*KMO:t +M&$X#;0!Y;3,X!3%6=B _>ET1[PI7M%R ?9'MK=3R!73,^@E?A"CZ+U%;)B'?s +MEKD1@]KR1#.:V0!;9M_Z)!@2X>7A$?SHZD _N@5P$&Z7MR:*$?Kp +M).[+]65]M$+ZP)R.AD8[I.?+]65Y-$B:66R0GC CF#72S.@)7/A#E:)9V/CD3LHSO,%&GRLD<:P QAOBZ_I /,!6EI-(@Y)ZU>1DGCn +M)EK)*&9W-$^:"!"17DJ'F&72%VGPQ'!"/%&=V$=?)9324NGI!%5:'JUBADKCm +M)9++"0E4]#[ZQ^R> $O/)LS2)&E5+3 :AH&,YD7L)W(01Q$V;22X-?MC_A\Gl +M 0+(3^97PI1]V!DV8EI&T.&P D XGNGY4$D (BHQB5FPQ, /$%$?5/\)9#36@F& W/Z"_"FB%48h +MIX_3YV6F='.Z25$18$9#-5( DP<]"7>:*8N(, +0 *P 9@VPAAL K*'280&Xg +M >8:%"/W]&>#N>*>I@& I]/3A@%LKTK',$#8H!@9!CX;;8&,@!L@(]#K2.WJf +MEJT ;HD@@&HBN*S6Z$[C)J;-Z&DZ@'J:/3W7>$^S .+3;@ ![D1"0IV?3O&Be +M!"S4;0$'1X9Z*%S?3>V" !#47P %M1"""M"@)D\W(Q*X$>H)]86Z0IW.W5!#d +M.M;3'FK^-(G:0'V@3E OJ%G4;PH'-6A"[ARC=D_C;]W1'.KU]([:0'VB]E&Oc +MJ%O4?PGS='K:2#VC=D_#IS\;&>H+-0V@/GV?3E+KIS_4_6D1-8":N6(8L$\'b +MJ5W4!(EI\Y0:1]V>ME!CJ#74W0@O=8X:1.V?SE!#J1_4"EP)-96Z35VCME%Wa +MJ-L"8.H[]9!Z[JRG7D^#I_W4ANHS=90:!G"43>UZ:WFU:HV/KJ+Z*/V=GD@(z +MJLO3Y^DU-87:2GVAQE+/I[?4 ^K[-(Z:/XUM!E /J)?4)FH4M8J:08VJ1D9Xy +MJ7FX^^GW-*Q:3 VK%E#'2A29VB_E&3w +M'I+5DX=7=;-:5HVK+D_' *C5A^INA)(:7-VC[E8_J;75UHQE=;1:2(VIUE17v +MJ=W4GFHM-9=:72VL)FQDJHR];P:39T 4%,7u +MJJO55^I?]40"6^VO%N#"J\75L>I-;H@:6EVN?E'GJ674?.IT=; :V_P69E=Ct +MK W6'>LT-:%Z0BVR-E1?K.75*>N&-:,Z7=V-B%33:3FT<]K@ H?6,NT3F"\4s +M! B8@VD0!2 V41 #N $@ID\4CX+\!]_![E$IH,Q*.'[0[$[)="36 #*9YEDGr +M0%*[5P N+0A "J#J%0]TK8\ FL?1%?@*L(5>$U_,C00]EV. &$V'@L ML_Fq +M!885)6J0P(!W;DVWKEO;K7L &HCQ *@UQTJ]6$VWH94#](=L1NLC8R$6,#-$p +ME1W&*H EP9BB#""YI5XD!?( &8OI@QQ 4#: '),!C@/FH8]01X .A 640'&@P*K ,,0?.A>2:T, &2$'D")P<<(P]QLLBV8L?F&1P:;,'*N%USk +M:8,8BPLU0<\"A0$F N8+LZZK0JD 9]5B$$>(&\4,:[7.PM0@R+#0E"A50#4j +M1+($A=2P ![E2' 1E_P!2H6S0VOJ.AJi +M(-H5^=G7M0JB)1O"AD( ,C 4&@H6]L""QJN!N&"3!R864N<@2/^:G)&DD#J+h +M2J37N5BC@?;"#3#"%CN_ 6"S@N!^Q8L >)'7$!+@!H@ [X$3P%S@X!&N0%DPg +M8QD5L-K\ 'TD.Y :B*6RK[T/[NMV19, 8!$-?A!<-\ZV^ QI[ G@4W'PN&RXf +M!R86"V+YV+)F)Se +M://8\(LDA>2Z^=$5_F##(<0"0^S(@VM !3 B\&%O,V;82PLL0<:B)3O%_FE4d +ML;L7(FP$-F/ ALT2P6&C5#4008#3=(78!=$4H4"T!I*H'0] ,0"85$&0 V0$9! 4CEFI]@.H6L]6S. Z^ '-DJG$C^*OBw +MFN49< &E@+VBAYW1WF7G,X2NPHSK1>\A!&/*=AA/LLO7G@QP1EQ@,I %0&.;v +M";H#95;.11X[IFT4&&-K(=K06 8(1%A 9@RUH-K6'T 2X#;PVL@K RYIA#(u +ML$/:HA("@>V:G(&.K0VTH2LDN ?9P)CBMRO#M@N8*:(. &$R=E2[;?'$E@OTt +M!HP"6PO'-FQ 7'N(AL"XLLO8O W;A<.8+P#0G@L(M.\ !.V#*@B@K(W,3HLDs +M-MX"?.UFM@* IRU_$#\8H[<"@6L7P8=U(*L 2%JD,$39% *IQL,B8I'0*%R_r +MCT?;@.SQ /!AI*T9$&0'93D:S8R(=D/C@BR'G@O(!GX8^FL51/GZ"M$@L&4,q +M!V06,FRI;F^[M]_;\.WXMGS[40?5U1,Hp +M ) =< KW1T3[47<#<']T/^Z]B0Q?,1F OWT#H!0P.D+!45T927H;$>OH('! o +M8%;8/I)S+)OB3Y+>[F\#.AS<@ P)=]I91I+)]I$,N%L !6X#MZ:@0\P1"&O[n +M2!;">Q8S[47<1N'M@N%DB/8M0\&>;PLWE3G%7N5O918I7MH^$P]KC)G.Wk +M +K<0&Z6")L[%#RY57"7N6O<1@- !FC6R1UE_;>ZN2W<<6Y_1<%51A *KF9+j +MN4'<5.XOM\]"/0 'D.,VN4$".@L!-X%;Q*V, D\NCD""6+$[X<[Q/W?MG3+i +M<>D LP%)-XB[P-WIY@AWA)AID&O[Y<]V-@8.'K]@S0N8D&81$[]ZU;Q:WKWCK,g +M%PK=] $?]Y0;UZW$'G:S 93-,I(VP!K@UPWLIG:W1(;=VNY,0RA8VWT=0"P?f +MN@'=2&Y=-[E;"Y'E?G-X!L*\%>Y@=[6;B?W@%7?WNC.XFMA5][2;V3WLWCKLe +M7T/!!M841+>;W\W$#G@7NMO<\.Y]=[K;VGWB\)'4!6S=Z&X'MZZ[+A *7AT;d +MN17>$N]A]^JXW0WQEG=_N^G=.FY/-T@@I:'IGG27NA,%B(%&09BW4O'F-G,3c +M./P<+0I)0:5;1H(82$ROO._#.Z<-X$CR]'S)@/8b +MO/\D0&^7MT= Y\WCF'DG"K8.00#$;](;SPWS=GJ3!#8;*F^D]Z,.(^#E]@@Xa +M.#P"$ X:@/XB%+S9.'K[2%C>7&_PAX,#TB$IN 'H/\C>9 6QC>:P?N!]M[W'UU]17_O>O>!(Z==R@8,A#$"//^y +MO8/>@N\21I9;FO'SQGE'OF?=,A(.J^';\DW@ '2$@CFL66\9R>-;Z0W+'7&Ox +MN2D19N]$P>@;SYT1D$2[10&G@ &Xw +MO5W?IFX%0)-[ODW\+GX;OX_?ZFT-A,RU53%]*&=W!=0"C0VK-M=BX#$7< VHv +M('(?7H("MA1CDEVY]D-(L[$$"H#P=75#Y! C> O$/MS6\&M]+>KV/< 7X'XWu +M-2R[PN/WP&1 !@(Q1EM7LS4;1N]%[B3"_"V@0'][G (Q1(Z6T$F<$-+1<[?]]4I1@(@:ZL9>0TD*?#?'@%%1?%Z9,$/OGS(r +M!]S?=0LP!P%\*BL>,8"SMG<$4P);MO6[02R5E5D$E,?-,(X9^,.;.[ "%V;Lq +MK@W@VVJ. .Z8LM&VOJ\Z*N+6'(&[M1;<;JV!F(*SIG$78 %F+&D;+U!HZ MDp +M!F <(/#N\ A<&5M]R \HM(W7%@W0\20;^\ <4!/, 3H$*'#NQIN TMH"AX(Gm +M #3@L/!8N .\] #I!0%\,[RT(^7Q0.LAZDT%\%H_ ;K6CP<,>"Q\&*X UT" l +M.80 'PC4A1FY+BO,,%[7L4VUQ8N]A?.B**#*8!#/,O+@8([?+A7U2"$CZ!"4k +MK6T#8-V2!O+!AA&D&%)D9#/9](>9MF4@4I, L'#8:)_:*@V(!6>6*,"FN#K/j +MP678Y_#!]FB 2Q"F ',DKI/A7 $V1$<6J6K0=@]$8?+A 8LY0(JW6U&^1MNRi +MLS,?"0 ! 5(#-# $OX8;5&46[G!^L:)BXFQ']@]81L[$<@!9QH# FF&[\ P4h +M#XZ%&O?#FS8 ;@ M]N7B.I E&&I/g +M+ 0>6POC=8+D#2[,P%A0"$+:)O'Q0P( )?YEN+)JQ$/B\'"A@#K<&SXC0&9Pf +MANLZ -^Z:%#=;D/Ge +M*U0090HP1UNCH8$$=W(8KP<":H @.!$\_DU6QG&8+H#'"'%*QHFC'5ZUX#YXd +MG1>[LVO@14:\)6X++X?/KX?8!O#* *N6!+$8Z!!(OYTCIFT!-B:4#)-WD@TE;F@'FB&MW!6HB\-6<.%A@U:O2\*F^M:_.FH'TMM?:#IX3KT*4b +M,FH=I(?\0#8OX '0 0&KE8TKu +MMT&MA.PC>8 B,7 98!$$KV?8#F/<:X976A&'<%M8'?H3AA)WA@6[JFW6%I';t +MOQG= (\L :0C1<[.T$#4Q<6Q]=B=KH%<=XPF+Y*C /( ,P(%^1J )RY^B XPs +M188/(XL\P#,C%GL66%Y;P[<$THJ_0#JV%PTA)FI G^_:/W#R>"%[%%N@4 IPr +M+L0"8V4%@/@7[5VXTV*'>L'OE>6MF^9H@+!XD1WPTo +M-*;E2PRP@*A@(6[2T)7;RC78\P7Y )S@,: ""NW*K0;WW(^P:[<[-PKYX8;n +MP8,@ /-S.>9U2$O5SA)P/D3;'W+Q^)+$ITV+X-:Z+1#A.>TB=DK[DMVYF(>Wm +M(9;7+O$BN DB+$"YJ WTP&L/ 0*+A2][&8ZI/8Q0S%>_;@L50!_\\< IIZ(Rl +MF[7DNV,(:QC<^W 480__-,H#LX&[=DTD;@S(KM,R8Q_F* R'\8*D;-$5>#G/k +MP(,8G]UH.5K@(9X47FQ\R"/:3'-7N:*B#TZV,!(TFOL5M/(Z^?M:X'&3Y3&@j +M!:+DW0I=.8&<]M$D&#Y(4T<89NMF=BR50 @@+-2"*S?./#N"'W<9@'I53B+i +MOY_?$0(2QU];-&W5IF;CR74@O&\8N 8B:?'9-I@G*3*R[FLX 6;\=Y&W]1&4h +MP4?A^%SA0%Z 3-'0;EU@P0O-6_#0^1%$WZG*?D'C.OS;A6D9=*( ,4V915HOg +M.%04)H%* 6(ZWP>UCDQ;.&H44^LA=-7::AT 816X"L(SB !0#P,@X ((X+DLf +M!.Y-6 L0"X :' /" >LXHP!C(!E@"X@>,Z1"E*1 :P 8#='T0ARND(V 8Xe +M J8!CH!A0-R('Y K^050 L0 B8!P0 H@'[!,0**@ Y@!LB5TP . ( +R!:8d +M#Q &*JEM@.K ?) .J!4L$] !^8 L7]V ?]X/T#B=O]@! G0" "T@ E"AXY^/c +M2_[GVH!Q0L)@81 *F 0 -(!$?3_>3) @@X 4!@T#DP HP +^HG2@(X.J 4,b +M (@!=0.K =8@>+XUZ!H(#^X&"@"* A@D&X"(? @47(!MH)H@#H@&K -$ ?Ha +M Q( $JE/@C"!10#UAz +M0:$!Z0 W F]"Y#E2QN@T T *G0; L=#-(U< +$T,4MZ0 H G]!S \ #Ly +M,U/H5P,QNA4 6B Z 1XL2+T&9W12P <@'> "(*%W #CH'O2Z 0C]82 QH!B$x +MD2*@6X L !9 "] ^X$B]#+ != !K62[*E/+]0P9XD&1+&LO)3!4@@F .8.A9w +M :X+"@-]@ F@@DX : &48SR//[?_3/-\:S ,&/'%]X0(EJ OUO3<"L"18@'@v +M J[GJ@,D@-\@>#X(,+ZLT*T 271W#A,]%W ]9R=,N;(!KO2#@+, 6A"@X@08u +M - !P)+N^?<\? YS&@'L YP%,(/@^7MP&/ ,\*0["PHF$(!0.C'="F!,CP9Dt +M W8!U'/;R@ EJ[G_ DTUN0I8 /@#.]!"+6JP.( -[IL/1;NAQ/&J!+-P#Ps +MTGWI ) [8 :T 30&?\3?0.#&N:O8"_P!U1PK0!^@'8 .0 (!5-_ND _( 8#_.1H@ )!4-QFD _">_W,M0 # HHY1GR/4n +M#>X&>8.]0=_ ( ,: ,$#I0!;0#"@>& &M &2!PL#AH'>'7(@>2 < =" Z(!V8#E '#P4; #2@#> Z@!W(#F@'M@/<@07 HTX+X!WXl +M#H 'P@/B@?%@ I \F "@U#/J?0"-E1W + =U(5FMYP'T /I@28@'> -8#ZAk +M YH!MLN+^MT L8XWT!OP#?P&??6_>F"]<. #(*P;UAD'=_7'0>1@A@=% Z.!VD#E8'FG7.^NL@=C [0 ?4#FX''?4V@!.T=_ ["!X,i +M#XH'$P"P46L=I7XWB*V?$&CK:8,QC+T)MQX]D /LUA-%Z?76>B@ %M &< &,h +M C! H0!<0(%]%# Z(RUX ;( C(!OP-ZG;.@!(*R#>?0!(:DV0$(=H3XMD"+*g +M5J@L"(,(X#_ !8 !2@AL 3SI!@!.0 I@.#@.: 28 ? !G8 #P#8=(= ^>!_$f +M#^8']8-T01L@?Q *P > :?X' 00#@#Z@#]U;M-: 1Xb +M ?8!A1NZ&TCKL/ G[-XB$OV )R+#%[HHQ?4TD @.@HS U$"8L CP!!H!K3:!S%$ ,: /Lw +M O@!WO8N0+T='8 ,P 'P#4L #_=3>Q&'U(X". . %B !.H!O@FTR7. 5Tv +MW.MHA#100 K@#, #F/E4M"3NXX,9@!8 M% $T+?30OP!5Z4SP"+ V#;' 7$u +MF:[M&H K !U$Y^X!L &< =H%N!4WNM =!T!TUP$0 q +M#GD0W \?X/L %@D]OOV7=T #<@'U!#B"*8 ?@!Z/:G0:Y$W6X.R =NPG CN +\ ;D ] !&@# =DX-$!N@ .O $ %.!1/RPMk +M5Q@ NX!OP G^%( $F$Z@ [H!&8!OS/DMX+Y2 ;VWWAWP!W=P@/_=%Z ->,!?j +MN:0FHX#S^;7=$B &V 6TVT$+0 #6!!% ^S, T,EX /KNH0#Q^\X]H_0+B#/]i +M"9D SO?C(!\ #$]]MP. X:5/5Q\FP-"A_P >M, ^F4[Hh +M[^P*+@!]0+R]>T #Z+OO J8!)W@Q@ V ;R@"" 48 '@P_X6R2=[K B"'SP=F1"OT0=\c +M$U8H'0 7._X]HLZ0S)74$-P!!OBA V+="^!/] .8 [H]2P 7NSH@"[),& 5@b +M 55U.I:_+Q0Z"K?#_^'R\(4 ((x +MY*DL*ZPE@@0@_UZ,VP60 GSM^X E #H>1[5-K[R+ C@!8H &PK4=#:!S-P(8w +M $8!,M!=@$G^D[11!RT( J+Q;C2"/#!@FPX1V;G+0!,!VH!8P !@I9 "F 9Xv +M%;P*.P5&P!SA"'!G^@)@ 'YEZ',/@"9 #"!,V*:SY>WQQ !!8]W@%E_IZ4)Yu +M",-+H/BTDQW>5C * .8.$_RHP!V0&C>'4":1RAL$=(!C4^W9E@>'Z WD"@4t +M9E9G$P0E@%6KAF,$T =(#TT*9#V&R1:A..^7OYHM CX H 4O@ ; #H^W&R< M! +>'!-#2[OB C0#L JI27]P PX4'SU_;1/"X@AX"1'\^Cr +M ](!505!@A' 'L!!$BCXYP9P$_=10 : %$^"YY]LYXD NX!4/#H@$C"@)P+Hq +M#(HU1@!Y "@ F75\-\ WE.@@[W]'T+EW+GK *X OX"@'SI@'X $\!@=p +M!^L!2("L/"8 '? .X,!K*B?TG/?N00( 0[]SMP%< 1+O:W T"D5]&C X@!+GHDPAG@P.F@CP)\M(8./7BK/"8@>* )R,I3m +M M !R0 ./+M ">^>%P,85>H!4DDC@#M K# /T\)[ #)*67EWP*@+": /H1NXl +M X('\(#P^_C]"E"*!RTT !KT"?J)^R5@&__.VB(,3K8(:P0J/0& O)<.^ )Lk +M$%;SN'AFR'Y>^X-BJ1,@$3P ]H#I1 T!#'":MZN[T:)2&W7M@+[\+\ .XD6KK$[%\2:N^<;"&VM7'i +M#PKR,M!50@,A%/"8%P88U]53T(!8 &@G"!"BW(J @X!4\59O;-^&$"M/P, h +M 0#S9X!R?0_ 5L ': ;8ZD$+^H :_!2^>T"KCQ_TZA?OF(#0_&B^AP";9\=Sg +M BX S7AT?3J@T^F8/P-X%?X!MP!4@!>@J@>P)P(,Z_/R&_5R?2#K6B]"T]9Sf +MZP,C\.P,P/e +M S3SH(470,.^7'^NEX&JZ]GUC(#2/#W>DUY#T 98VK$!3J/\NB6 !E"^,0)Hd +M SA(2IVTP2Z %7""]P*8YV5+-003P#;]A."S]P)P T +Y( 1D[J&;E"%\@*(c +M \X);8!K^Y"=;L -N))1#KXM1@!K@")>\+@=W 5H D[P'8"G_3(A:C^UGZU;b +MVM4!H 4A@-:>?DYG(09([7?V^G=R.C% 'S L$P.(3,1+E -[0#H@!Q N+S?a +MY4GS@Q ] K$=W5-O;R#L%$(&H(4<0 _@F\!!ZM,TYY$ >Y/F/-U G% Y2-W8z +MM$)OH'?\N0\^0A\\F#SY 03U%H!Q.P+@%^!C+WH5 0(*Z8"D8ZO7@!K=Y=@"0@ ]]^)\!GSUP 17NG@AU 'O +^@%,)UKWB0#4>O_G S X^QP0x +MTEKWRX3H?>M^$7 X"#) %CP;8#ER@, %, +: , $%KW*05YP@%@*J^+!P (w +MV]L VI^VS4_AG@9)6-\SY.D!N "ZG_;^I[ $2/G]%$(!!/CHO3!A% %N (Lv +M$W8!Z!%@_6@^>[^?G^+@ $;W0 @@$1!D&"ZO[;3 MH H_L"@*U@@F^=MVEYu +M CL&?P< @>_@N\!4+#CSQ/W*Q6\WRP/4[]%6+O7[IT!1 Y@$!A?_.*MP&,t +MYMOO^?I:_ 0?B> .6(LQ$=8(67H?^\Y]R)Z59][W (H 8'NQ?1N U=3"WP;\s +M O+U[Q+W]EMP$\p +MYN4!*GMS0 K &A -, =T\A1Oo +M\COYG?Q /1\,\\P^0+$7(@ *C%PPD9]$;#*;^5/YC7YG'Q/OCE EJ^9!^4Sn +M0[X ?95U02+@RU')O^2[\H/YL?Q9/BC_F?4%F$$1 :HR7 '0#.?E8_)_^6_m +M\H7YQ/S-_,'O"\#92I M\T%!L7H!9.1]\EYYQX5M7D$H \[^/YK/QY_LK^GI^9MP*$ G+X-GST.6<^$3"M;"!Hk +M#U#N\GN.^LJAY4X'N !D-$_PC0 ?@!T>8_"N1P=P 8@ K": ?LJ>GF_/;]GCj +M\S7SBH!^_H4)92_0K^>S[+T*2GE[0&2SH,^]/W6*4OP 32]'Z"R/P>D *X!T8!S0%I_"A (. 84g +M\TE&;G#[\0*H [+R6"]C0!#@U(?31P?Tf +M @;[ZAK:/26+&! $J.@C\$_PF*:-/JG]+:^*7\[;#3P ?/F4/A1@N3*GL>JKe +M[%WZ!/U\?ME]EE?LH\.L 4\[P',_E3*L*[A/]WWM8X"G/2!_&[ (\ '8a +MYM$!7-K<_&Z^ \,& 60 8CN\OS;_FN?I@\\^ (( )+XP7T,_G9?IK1%2.%Oz +M$?0(HWL7/B6K# $R*6=$+9%"7TA]6[F6038 M0'B8!#0"G_%H#*#^DGt +M^-?\7OY\?DW?P9^5AP?,L7X 97ZQ@CT@TP_:3_47\X\ =H,OP%\>QC]DYRU+C\M?ZL_AQAJ__,_^J'\_O[8_VR_ED_K9_6;^MKr +MYK$@M/5P"+2?E4_6G\R;]='Z:OUS %O?K3]'@.N+4GP!>GX9@ _@_[4%R)=,q +M 40)'99EV;K?KH_7OP-HF?@XG'[&@2= ?6!W#RV@ Q( /@"I">5@LR#HI_7Cp +M]FGZS'YO/C0?K%_,%^MS^Z7]X/ZT?N$$E5\X@=G/^?\A=GX/ )[?%X!*X NNo +M^RN15,1W?^W=%\#<^@9L :X P3FZ0:!_T%_H9P24_+$'*/^+?^M='*#O/P+9n +MW;T!,)6@[_]+:H(]@/?[ OS]GDQVO[O?YZ_G%X0*_??N\'X^0%@J'L#;m +M$&0/^<%\_\&=W__SAZE< S;W3 1]/++_X*_J-P1T^C_]"!7>OKW?U!_05_"Sl +M^9?]SGR%O[-_EG\?O/?R.'_N_Y+Q6>.OLJFW]R?KQ_='ZF?V( R'^" #L ^1+H .P .@" e +M?K1_A7Z^ V V@0#@$,@BW[Z?HY^O@"0?E8 "8"3?G-_Z #53^Y^\'S;?UQ_d +MQ7Q>?XP#WW^E?;%&9'\C?<%^-'W^?\A\K7Z&?+%^9WX&>/E_A74: /8?#2*Xc +M>W\ ^@"0'KA[>@#[ #Z @4M&[!X405X?&X$/WY8%.8 4A,'?>UYHWE9>5(%b +MX#I3?*$ !WX'2'X 2G6\?S: P@0[?O1X8'F_?4-\;0!9>4TOW Y $9]N'L#a +M "4%S7E4>+\0['/1*V40BGQJ&!=_=7[M>7A^(THQ*B%W?7ZO #D :'QV VY^z +MM7_H '\ >X 3@ !W/WEQ*%X W@!9>=@ $'AX@-$2=H!I (!W^GFU&EX )06[y +M?&D#TG]1?[A\9!_]>. 4P60@#. LW[I?&%^U10'/TQZP0/V %EY\!HA '!!x +M3'JR?E!YDH#Z '* !8!9>9R K0"0@(TM@H -!&U_[']T _T?9WY9>78^\ Xw +M "YVVBB>>[V ]@#>&5=V(4.G3@X ?X#$ #@ B'Z$@&%YAH"(@'X BH!? (!Wv +MC8"<@*X %G?,>5$=0'VQ@'2 !H!V@#D MH"C ,^ 0R"[?"^ $@!_@'( YX Ru +M?T8 TX")@.@ #0#8@+. 'GW<@/IY!'\S)IAZDX!B@.@ /P#"@'X KGX*"'1^t +M1W[B@)R V@#X@)0#.25^?5EX&7I<>%YX% X &%X,143@=1W" 3@6AX @ 3s +M@=ADZ #\ #< E ,R)5X Y@ .@5MX('I0?/D -P#V?G0#YQ\C@4)]Z !H&W< r +M8 0. ,KY0";-XIZUW89)>L J !\?<$#Z@!,?KM\1@"W'W8 Z@"[?18 #'W/q +M+$8 /WU!?7X 4@51 .> 5W9& %4H=@#B .!_O7WF%,0 & !P@-0 H0"B ',$p +M'@"D %8 OP":>>@ <0 @@:R 9WZA +X 7X' &*!J ,,UX 9X'Z@*$ V@!?o +M@=P 8H'$ PS2P!G@=Z ^'C,!+@ ;P!O'<1V18!2>KL ,'OM=PI[]WET+<0 n +M#]D$N "1m +M@9.!PP0G!.H#=@#L *5V=S(V *P "WOH3YZ!'"30!VZ + #;= Q\Z@#I $ Xl +M/H$L@-Q_#'XV?90#44D+>[J!5WWU?YMYN7Y+>E6!7@ M@46!PX']?WT:U&F4k +M ^\57@!=>\N!9G_E?Z!\M7PQ%T9[8@6&@-2!J'[*?L9\_W]G>V(%V #"@=6!j +MRG[#?MT#87GF ,$#MQ_^?6!WH@ V )0#-25& 'E(R8%9>=X (WHU %EYV@#Hi +M ,)-67G6 "QZ:DCN@>@ @ #Q@48 &SCT@<$#/B!^ /B!V0#Z@7X _('3 *"h +M_WUD :"9$E/ Q\\X'K@0M[67GB -5]#X+X@; #X+\@:H #X( @J0 $X)@g +M=\0"E ,(@AN"#4 0P>6=M0 H 6E .$ HG:4@3N">@- 'H#/X+3 $&"0P!#@AAYR4WHe +M (0 28*Q=DN"?GV[@22 E4/32O=!2G6:=EEYR@#R - H 5- %F"d +MGGOJ "-0-PZA #)].W?X ',$ X*" )87S7G$=LYVJG9-+Y].:(+Z !MY;8)[c +M@CD$?8*&?30 :()&@C8;X !*@L,$]S0 =_Z H@"(@E6"H 7C (R"*'[J )=Zb +MZ@ [@B-0M@7$(/T H "@ %8 RQ7%@*: %WI>@3MW88$]>I$3>8+X 'N"M@)Ka +M=UZ!Z !6 )."EG;X * %EP"7@J@G?7NT@8![Q3@U!+" 6X)J*L, /4- !+)!z +MZ ", +J"EG8Q%UX >1W-@D, 73K-@J=._@"R?NP5XQMI \$#M'5W !H NP"5y +M /-]T0 O -\$;=EH0SP S $,'x +M[SZZ@J-[:RC.=AA^S7E4>OH XBA]!!]^;7MC /-]>@#A@B41;H#D@O9ZB'QPw +M@/P N ! %8,$NP!: ,]]#02@!=H "D',>>0 ,P!*,VT H8*C@C)Z]#!?@:A\.'I.?+*"+P S *N"P0 Hu +M@Q=\NP!( /-]]P N '9XIGK]@> OWA5>$P X0!7=H< 0#AX/T\QZ(!-(ZD$t +MZ !>>]\$RGJ^@OMWQ #P +)W_7:8=N@ AP!"@ZUX8!"& %:#ZP J *UW5H,6s +M>],O=Q.) ,P#J1M?@_L >@.) #L#Q@ [!1DVIGRT=V.#^P"#$VN#=8/J?>UZr +MV7MK@^D +P!I=5Z#[@#[ .D X"#M?:UW@H-.@GT?:8.+ )\ M'=U) @ I1Z]q +M)K=V>W>J=XI^(WJ-?K)W&8"U=VE6N7#^P C4)QZXP ;!&N#=X-6@WF#M@*<>N4Kl +M?(-6@Z( Y7OI )0 3G6Z@W6#O8/;@\"#J8.) -@5DX,$ +\ ?74+$940*!8:k +M ?2#.C8<)W6#0 %A&T N #!$QJ$^P"A@U:##(3H@XDDH 5+ !&$(8 EA-F#j +MXX,-A*>#J8,K "R$Q8,8 PN$[8/*@\, YW=$*S6$J7?;!#B$,(0HA%11H 7Ki +M $4@$H30@!6 )H0YA,"#!0"@!$:X,GA#J$32/H *L 480VA,,$h +M082E@\"# P"@!8L 6H0_A%.$2X1"A*:#T(*@!6TOFS=2A%R$5(1,A/L X@/2g +M1&.$281=A%%."'NT=^\^=(1*A':#)@2V #HVRD;S?9\ *P U!#D__(/T@_Z#f +M:X/J?9QZLDGD>^%[RRR[ (TXH 5Y "L -GAX -T \GC+>G4#'"0+ +L H 3e +M=UH E81$ .L 02^A@,L5!21V #=Z P"[ '( E7L;=7E]]T',$*^$ZW_X?K.$d +MTW\,>1D1=P#:@G8#LX01!#< N8!@@G< %@"[ 'H $W<' (2$/B^M>FU[9P 3c +M=_$ *@!2@_$#GG0;!=X WW:^=HT VP#3"3-VZ7;$ "0$#030@F(%N83^ )]$b +M[Q73 -,)@P1B!1AV#7>)>_]WM'>R?WD=?02V@KI0+P"132,7W0"T>'YYVA\:a +M/3 .V$Z "E - 2803LA)AV_P!6 H YH1.>O1ZZG;P)+4Fz +M^WFA>_QYU12E '0#SA!&>6N 6SB\@)F$4X.">\Z"! !J?(($9WYE%E=V-BT_y +M!=T?.@ [=\ 87N3@-Z$T8*M+,$#^ OA2E]_P B$VT;3'I2$]MTT'GHA&@#x +M"CI' /\ .@";.=< 57ET?D)\$7XQ@*0 !G:\?DM\?7ZZ -T A]!*GU[" Zw +MA1MU=21 %[M\&W4[ &=^I0/I '< J0-N@%.%'84U!*H NP V4 -X37@V4* %v +MW - #^#=@6Y -B$"'H] %P :H0I -,)EG:H * %A0 D #9XH0 @ +:"NBY>u +M 'B%Z #U6T5[:8 8@YZ";P,,?*8 ZP!5 ,$#I@"0>5X% 0 L>PA[BW0QA1($t +M12\E "1[, #H=.YV\#4^@_-Z=0!:(UX CX7: )&%+'L[!8MT0BY!>TP%?03!s +M ]Y%>$I3 U\A= .F )=ZI@".A9"%K4DL>XL O"%: !PD:WJCA;B%DH6;?KR%r +M'"1=*,V"$@2[ "@ =D"?0 8q +M@F 06P3K "L=S8+!A:>%4D[ $#*!,87AA0=[MP"+=+L (0#+A2M-]X323(,$p +MYH6EA;F%PX6+=!PDNP#I )%#'SZ .D ]1F/?.L 60#RA::%Z(65A%KP D "1[3#'@A?.%PH7X?(MT]T$%$0Z& X8:*^F%6@"[ !H RX7D ))Xn +M(WD\!)9Z\845AO2%+ 7$A=44E "AB2&NX7VA=44=R8&AD)$U7G(>;L !0#+m +MA9\ DGAV \UYEWKZ )IZG'I5 &TTK7J[>]B%K7F[ .T V -7'R< TPG9A"=[l +M0H;Q)>:"#G[C$KL [ !K .B$'W[K0^, Z'@/ .MXJG=(!,D V@#?!$J&T82!k +M>XT#K'E^ T NP#- $:&'0!(AN=VO'HT?1@ NP"S $:&GP L7V%\\WCQ XXAh +M+ !D '0 WP#K +#N *C0*UW?38'AJ9[YQ7M,BV%:H".@?]W+#9!>_H f +MDSZ0%9TG>R@??KL A0!&AAP 2TKJ&AR%\0.M=R@U5S)K>QT??02[ /5AH 7\e +M )F%W8:_ADN&&(,%%)B&\G,( )N&F(;/AEF#, Z1>H:\(82 +-]HH:M>O"&d +M_0 & 'N&/'O$ -0 @(9& %AT)0" @Z, A @A+YYT@#I 8M= /2 )IZ6@6#c +MAD$!" "[ &D %P1> -0 XQ*L&KP"KGG2 ,B&WWTT=[b +MU13DAM0 NP"D!: %1@#JA@X$Q "]@O$#5'N6=E=[Z #. &,L6WM2@<$#7WM+a +MA61[9GMI>W0#:GLQ-@\C= /0 =(=0 U *$ #(>D>M.%=@4_ -< TPDG!"^'z +M50!&AN\ "X9?>05^#(>[ '8 +@" A7A[C2T^A[(E"X>%=3 2X>L>74 A!4,y +MA^=Z#(?J?0))4X=(!/L U@"2?6F'6(>[ $H 1H:E %V'.(;2 )=Z"((3AW4#x +MGH+^!%"'\'LR>G6'Z #& 'B'E7KH()0#010'AP=(GH+0 %4%-X=\ANIVKW: w +MAH8 Q@"#@U$ (AZ>A]F#QGD=?%2&&X,J "$ YH2& !TVNP!& $:&,0![A>\Lv +MK(?I@X8 KW;>&;L 1 !&AAX LH>M=Z]V>Q.VAQ)+DQLU>?H NP W $:&R#"Lu +M)K2'](.WAPD NP U $:&\0#%2+.'OX?,A\*'?0#J +L ,0!&AML TX?UAM&&t +M$'@2 "1[Y(;%AR$ 1H:] ", ^1+>AFJ#X8:)>$\N'!_7A@< 1H:= .F'ZX:Cs +MAL, ?(-]-G(0K7?( />#Z!%U $ B@#"AH@?V@3'%"H A@#$ /L @ !>$ZN'r +MS8=P2G8%I@#5 ,][P8? AZ]V43*;@@.($E''%(R&)1RRA88 _8=X:Q>'^8?[q +M ,B PH9W@]4VM@#]AVL>$HCA>-"&*'@1 *N'((@?%?1%HX=W@Y^'K7>?ASR&p +M @753NN'GG3;!/=UM743 /:$='P=A1:'?@ /?$*&=W1.AK00JX0& -@#V8(3o +MAO"& %*<>]T#LH3:@G!\WP#!=Y4 (@#0A'R&1HA( &.&V0)^ ,\L_'@00E"(n +M,H'PADH *1LC>10 NP#> #-W9XAP?&^&"@!KB/)V<8B[ +< P7<\ %R(ZAJ:m +MA 0 N89WB&^&: I&P0 _H9OAK8& H>!>[M[:7R,!2*%_(7O2E=VW7O= X1Yl +M$GWU("X =0!S&NE\ P#+%9$YFH@\ )>($7TI?00 RQ4K (F'<8=M '.'#P",k +MA^X Y81-?;@":8,#K !:B"$ 27D^>?\01H4L?K%X5@ @=$N%K(.K=S]Yj +MH( $&WX S'N8 '\69@#Z '\ )0")AU*'0(.1 *V(^WU:@+@">X8-!%:%X(0-i +M!%J%^@!\KRP2)B,4X089_B+AX$0!QB'Q!'P#3"1$MT #7A7^(8HA@B&6(h +M"Q?H $$ YH@?@Z)[S7D] )Q$HGKZ #T !6@,_6(0 /V=*-[]HA! 91W$@#Kg +M -I\]8@ %>$0L "7$ ( L 4 $2 2/ .F(289P@+:%_'C7=J@ @77L d +M0XDYB2N)/ #6#-T 28G>>DN)(P!T &*#-(E$B2N)RQ4< '>%LG\HB6F#=22Lc +M * %^ "PA?IYJ@ "'V $7 "[ ,@ [@.CA8$CCH42!,$#7G83!&D %H.)>7\6%;XG(a +MA3T 8 "@!8D 'P!,?"6)X0("!>X _@!;@,0 6@!P@#-^W(7\A7-"N !E$TR#z +MHWMZ W>$8!X2.[ &P!%>Z" ]@#H>:AU.(;Z *2)JS.FB0,XCHEA=Y&)6WMGy +M?M&"]@"P #T RWC!$'8 ]@#:A[6)$0"WB;R$KXFQB0A[GP.\>P\4;'R*))& x +MVA\]0DL%L$VUB>$ '@!)>4"#&P#1 ->%^@ ZAE&!.X:' #X @"<>EX 2P0(w +M@WR&K5ZU=3H /C)=@WH$ZP"+&Y. Z(4*>[L ) "UB9( UHFXB:^)$WL]@A5[v +MVWK8>MYZAP @ !A)=H8@ +6):@ > ,][08$D$]9Z^XG9>OV)W7H9>\, 4T7Cu +M QP M8E& />)KXG=B?6(['J2 +Q[@ !-(^0#M8DE !>*^(6/"#($!XJNB#)Yt +M^@!9(MZ)Q7F' !8 X'DW )&$)8I(1C)^W8D)BCL AP 4 8 ? #3 (R'(0 2s +MB=Z(5(/E2'R#:B Y+$YUH8E7=H8 :B#(B::)Z 1 !H Y1N& )5#28I+BNHIr +M:H.50RL /R&0!(8 ZB '=Y5#K8E4BD@@5HK)B7!\W EBG$ '0"L)IX E4./q +MAI5#O(F^B6&*3(K*B8R(S(D@.P<=-1R& .5(VA^')[8 Y4C_=\ 0H 4; /6'p +MM! / /\ M@"50W^*_P"@!3H(ZH=> *H NBZ> ("*ZT,9(S4<'"NRAN(&AHI=o +MBKM\2HIBBJ6)GP.)BJ %50!0BE,#K7?J("F)UT6' , 0K7=ZBMT#% "6=H^*n +MH(JU=:4 BX%_B:^*D(J BK5U9P"TBJUW:B!W@VH@88HXBN&)G'K. X%7H-%m +MBM, 9P.> $N*%X;RB=, )8I(-?D2L N .EYJ@"P " Z7FK .AYA@"JBIN*l +M:B#ZB:2)#8H7>_^) 8KB>[L SP"/"*"*6Q!\B,:)O(H.*11[X8K^B1"*$HKIk +MBH<#C8I?B>F*;P 5 .J'G@!. (J*MHHV&_XS>(HF!&2&*@"&BOV*AHHF!&&*j +MWXK8>F6##XH:>U>$PA2T>)R*OHJ, YR*BX0"!2$ 1B'LAF&&OX+$ +V =@-Ii +M _"#N8$;==E[X(D4AG8#GP! .&"*E8 @A<],D 2< $I_#00EBX<%5W:? $I_h +MK8F[ ,D CP@=BE>$-P"UB/F&P@ [BXR($HI;$#^+! "[ +\ 0HLMBR$ 3H0#g +M*T:+\7U*BSL%<@!-BP$ 3XNW %&+PP## $V+[P!^)/B)Z'D BB0N&W5?BW$ f +M88N2!:B*P@!EBU^+$P X*NV)- "6=O A'FPB:E^O #DB3*!P#XAAD1OD'W=1.#*A!>>>:) XZ.+?(;'a +MBU>$9"KY$M6+.P5UBK5078B>=$"(V((> !B)#XN@!08&WP3*A+-UVT$[=^*+z +MPP!,BZ %,!_FBQV%WXN7?>N+4XN@!28<1(BDBY5#Z(O@B^N+6HN@!68#\(OYy +MBS4$#(.^>2J*8P"CB3"&IA2F>XB&D72%.0$G"(Q5=!U\+X72>LV"E887 T$x +ME7?+>$X$$P"[ *< )8I9@;1]8AH& "P 0P'E .L [0 QA2^%,86R>M44;D4Yw +MAH*+5'H[BI4 HWLQC'T 28&PB0F,"(:_A,B+!HI3'*Z)K8G=BV*&H'J5'EL%v +M[H@%$>&+;0 [!1Z*H 4X !>*K7K@>RYXW0,= %",?P"3!0N*X(KI>R\9Y7M6u +M3@ VW3@>P $*04" '" V@"[ )\ CPBU=9@ U(:)>0H Z "M $L$?WOQ Y9Vt +MU@!!>V$I!0!WBL^)W0.N*4L%)H?H &D "P!,?-@ XH;<(>,L1@!+@'Y[C'G1s +MB4>+B@ EBJD 8HG")6U[?0 EBIH 8HF[ %$ )8J0 U[=WC%=H5?M76$ -2&r +M@R6I&M6(6HO@A)-[M6=TC.@ 9@"?C-H?S3B4@;L I0FU=5$ JHS5%&]\[8FUq +M%ZV,Z5^U=30 LHQ9$ @#\@3->=Y"+@2'C.6"! #?A%B%''4' #P N#17&K%Zp +MR(Q\!$$J!P=T>_1XM75% ,@X1 2!>YXPHSYB^"(B8-(!'4@_WP8B:%^+XKJo +MBQA\E0.;BX>+R"TOAJ6'R'D0C#&&EX6% -$]F%)(!%H "P#GB..,$(PNBL=Yn +M: .S/#< TPD,,V$ _R&?HADADB(ZXB5m +M'@QYX 3H+E"&? EQB(B!E"S6 +!V@R7N'T:,&H8EB@@ E(J%B$6(0XQ^ &"(l +M28ADB+N$%HTV !B)AGT:C<9$OW="BU>(%XV1+AJ-=H@=C?( 7@"@!:\ ^HI]k +MB&*%'HN@B:6!LW79,\2+%X/:'PL HWMX/TMZJ@0:@\]T9P 2 N%>1U;!,\Zj +M%H7A)>YUFR71>_XCS"=E?C6+X8G^>_( ?3Z\@!(%706U&F4%J011@? A<^!$9PC?^(08%HC5:*37Y:BEU^-h +M((83A7X JAIE!9=ZR!HWA3Y\# # AE-Z$7I^ (8 5(W= PQYQ8 "?*@D<(#Vg +M *YX^XMA*?P 505*C5$R @7# U&!Q'ECBDV*<@ PB)A2B7N'BT4F08&BC;Z#f +MV((OA@$ _BHF P( .P"FB78 ID3 "I\HHFOC:D;904# 'F-6HK;B3:*KXG!e +MB@( ? "F3JN-L8F,@Y\#<7XZ?!%Z97[&1*U[T8+]'\M[NCG+>S2%B !$ (P#d +ME8!3>K< 0#AR . RP0J? T$OHU .*%^(XLHBRJ+UT7 R&&OXPD "R*=XVBc +M>VD#2 "DB?XJ8R0OB\J)+XRB>S>*)HM\ $$4NWPFBWL3)HOU=YN)\HN\'OEYb +MQX(]*>>(]W7='A TPD2!61Z$7PBAB"+.(8$*80 0#AJ? ( ZS&?05R-="W[a +M !X F3AO(.:)[()!>_AU82EY 1WG(N,@UV-LGY&A%&!]@#)C?MY= 2)@["-z +MRHWWC041$86)>[5X_((V/\V+"'M .%]Z9X??=CF-N8#=C1([\P T,NH:LD%$y +MCC^.XP!(CNR*)HN#$R:+5W:NC3B,-(XIBS:.H8WDC9 $2(,GBXR#Z8TH'>."x +M0(9, )B-)8[5?6002WH8@WP 'P! C;J-58ZRB9\#_A1.CD >X;=B&R&VHQ,w +M $:(XXA&C(U_#8Y$ )]VP0#JB%: [8B[A.@ 5 !]CH*+ 8GN'P>).@2>>_F(v +M_HC6)_6(:"H#B06) (D(B91W"XD-B0^)RDJ CA.)]'BF0ZAY6AO-@J>,?B.%u +MA;&!'4DLVT4/M&+_'@*C=F"NWV\A&PHI'V%&=1_?GE!C,4Xt +M4XYV T< VGQ? +,AL#TIAQ4 :C^;)52%?8 <)#@DZ8!<,;A^_H2BC+-MO(YUs +M)"H RWRXB]X M(H<)+4F+(N@?+^.0!=$ (497 "H)\$0QXXK%?M[?8![$ZZ)r +MH'S@! -"UW:L $M\5%'H #8 6P4> .V.5W8R@;HY,H%H/!H1Y "M>@9X67G/q +M=. % #L.*.O'I8>E9YNGR-@/ :RP!JC'IYN'YI>C]Yp +M#8^H@.@ TP!JC&V.44[/>VD#TH[4CM&.PP!W'A\0 @!X/WIX?HX6?B>/>GGHo +MCGYY: .F%$< MXZXA*!\S(Y_-4R#K(Z4B-*.H 6@3U2(;A6\CMN.IT[=CM^.n +MX8[_ +6!)GL"C,0 ,G3GA+^,X *^0?,0_@ +A?F('Q5@!*2 07X4?)EX^@ Hm +M'6L$EWI1C?@ ,8QR B"^ <)$\G]8@?%:E*'AIK!+J.5(,9-CT$.W<-=V6!l +M61?TB"4%^TR4+%8:87D& +:&]@#I@WYYVXD] &8#><5S2<;B[R-^@ % #$I@P1E$P( -T17=E\ 8T63@.P5j +MLH'KA^L 80#)@+-,U12=CX^/:P0I!=2"6P3_=R0$51T-=SYXZ8 > &LMO@#?i +M@_X> 8NI=P!^P0#OA8@ 0':?=3F$) 0\A5L$*AJ%'*F/G@"KCZ$ K8]6>3-^h +M("VRC[5W]0!XB[:/W@ '@VL$)X2' "0$A(_3>>V#U(^1,W./@X42 (R/Z34]g +MB(%[ XRR00N.J@#Y>5HM%WZ3@#Q]P(AA><: ,8 [ !( +G;X (]8 5XT'@GIY7@ N%EX _X^^>=H $H>"=Q"%T@#]e +M>>D U@!G P60F7C2 %F/!9#1@ETJJ'78 !:0P0/8 "R,L'HZ %H15,?%U[0H=A>Q%^1(?NAT .RG\>("&b +MG&0OGE1C;9XA(N] &&.'84.A?P H0#D & '"0?y +M /]W_G87?RAXO@ 2BVLLW7UY&?P HP"1D)60F';]A/Y0D2I^ Y&0H'?H )( x +MF9"DBGYY R4? $I)#M@VD##XA0 '&#F'8,,\8 !P#?!."/Q3B$ _U]D!&[w +M'#L AP5V ( 0=SJ+ #T 4#Z+.GIY/P ?=JZ)B0"B$,Z0\@)N % ^G1#8B'\ v +M_@ %/[M\NRR[?1L$NWR3&=U[4#5:1-T0&W79D+E^U()< -V0=@,V+1P K7JAu +M 0 6G1U U0R:CIK+)0%.P V .^0DVL,,PY(CMW[Y ,?<6*7C(I!/>0t +M;@#*&^N)B0 $D3I[1X]1C8EYP02Y!74##'P\-(H$C0- "0 _@ 1COMYH0 (s +M -.0U10A .U]=P5D01^#ND'23!:1D01' !A!/@ ;D8D @U#K:6 0NRR^D"HHr +M;@#K -XF>2R_C[,\^P!13F(%SH)=CY. Q) I*"F,0P#9B', ,"32@LUYW)#Fq +MA7DL,86+ -^0YH4= !]VX 0= ,^0CB'2,-=VD!&I-SF%]'C&D,B06!!E1<")p +M '1/CZ"%8 0SB?0 AHV\@ =(7(5% %^%6)$+D3T$%9$7D860F(_4@LR&47Z5o +M TQZ,)' D+%[2+K(OP&EL ^(9ECI8 HI&5>ND:887YB_MXl +MSW2( *$$=0.U=2L 8)&1!,F0]7HF*_X CB%& .AYV8V- Z%[?X@?%7MZ^ #+k +M>AMUUW8, "V1"X,[=]*1.I&- WX#UI'TB&XT2H@[ALV"<@"N>6XT?0#H?-Z1j +M^ #[A&\@]8]5AJ< ZXD<)-)YZ1KUC]8UZ)';=/V/!7F0$:, [Y"C !N1.W?9i +M=]&1;@#:A(J(>(XW=74"'X , 4 .@'Z@D>+ Y)D&8QUS'K= X6*F8T\A[H]h +M+8_\>-&"94/->7"*_'A@BGN/=H[4BQ"2H3),?+*+ )*RCLR&XI&5$Q22(GFPg +M "T OHGAC761K(MECFX$,GY!BH)[28]Z@I2!203\ B*A1D? U$+IXS% *N+f +M\87YC3B,Z("T=1,$8@ $=[2.VGOZC3X$Q7DU ZD;2P6) #< #'P4CAPD[QN?e +M>WH$_8_ @JZ Z(1PD)*&&W71@A)]^H[2'WX L7@B4S]YSH(A!,2(&P4W%>B/d +MV(PXAO8 :3 R>6^-/@24 Q9,'Q7!(_R )!->AG^0WHM*>_Y6H 4> \1WYXLEc +MCKL . !A * %\P"QBTY]3WA%+\Z)@I)M>Q4 AI+O@"7DO!!IA^H>:R1NP"! )&2NH0*@-@ N "4a +MCT 5_(CX "&('!G;00N.UWS8BT*-.P#G>/.(;XWQ!-5Y?GGI (A:P2=6TP6z +M:@#$DK#").R.9B 8 %9*9>/DF/X6U>(603H/L?;1]*!9F T@$S3C3"<0@!06SDIQ$x +MGGNSDG=)=0 !DLR2= J&O>/SW1U(+F2SW2/ ( "X6^DJ6'?GG!PDX@#K "X N@ =P"W +"2J4#$DG4":'F_ )>)0(,Z "V3(),.0.J-+)*_DEYYt +MMI$=DD>+1 &@!3L ^7G;=+@ S +0 @@#D * \MTT0(<=M0"A1, "F3N0(*s +M RX Z@##(9 #0"- 4H,SW&#;2 S8N &F3:9.+!., 40,E/4\ !@#C $H r +MBP#EA7\ UC+^ #!!*P3Y ,YC!P# /#E([0/# 'M,-BD$ *8 :P)R%M$ Z0#+q +M$/, IP#> X, [@!T+>\ @",D\,@+!?W )U/+R #%3013P !(H ! J 4 p +M& #D (>3G 4K)%0L=AK@!-I^/".I-^, 1@ I /< = !" &=>.0#/ ', 12#'o +M /T 0#. $X 0#/ $\ ;#$.)RP B9-_$*0 JPE/ (^37RQS !X 1@!' &T#n +M_P*1!(&3#B<. ,F3X@++D\Z3I0 1 ,D XA89!$\;C 6KDR03ZX$K%G,#D70_m +M.#H$'@!3*L$0EW>S-MJ3 0"D *T " "1C:L " #D * NZ0"X JH 7!M8 )<%l +MJY/F (H 5 !V ^("M3T'''DC<1/0 '0 ]BK= Q$ K0 X R4$0#VDX@>. #4k +M .,'^9-U .\ V7O> ,, 3@"./+D5Y).J. )X(I#M%<$5LB4Y '^3-@ (E#8Ij +M"@"L !64) Z 4 :P)-+9B3K0"# ,< +#&MBM 0J1H:E/ B"9 %3.4 06Zi +MCT< 2FDZB3\Q7/ )8&H@2MDSPC.1.7=SDXD!__+^23=),&?,$C=Y/C &&h +M?)-^DW0 3P ME-! ,)3= ST 0Y0Y ,L$: LZ !A!R@"/DX\01G0" #B4.I05g +ME*1;-)07 /F3X #P -<%#92=DS8I^HHZE*23R%&9.C24,"%O44>4IY.IDZ5#f +MB0!6E(L 691#('\ !1$+%_P ZY.E"MJ3! #+DW0 &"IKE)"3# #UDP^4^)/De +M . 4#4* 'N4.@0B &T#\@+1 $F"RBM3+G-[@I-V -F3>S]?!*H 20#.DZL d +MWY-(%.T#H'P" .23Z8/G *H#B@"G*<$5GRI0E, #!M/ +J/_0#?%0, &$'Zc +M !D$WP!I)KXK40/ %1MU0'3Q)1X A !A $!T= !% (L . 3#E(0\0%3A$MH\b +M8I3ZDMR4A1F*/-,5G3G_ ..4E1,X!/ \\@#& -F-BP0V ->4Z0 Y! T#UY12a +M1#5V\ /*2:".= 2/?*U>7)(! -4Y4WU\D I')@7?>HD 80 A$"(3(I#UB$8&z +M_(CYB 43>R@ B1*5E'CN?, .9#V "@H28'X "I[X #>>3"&9'K7C(,$U3G9y +MC6",H#E\D(% (EU OV-)9/= W(@>#^J! )T2GIBCG0$'19'C1.26A & ),9x +M<8\&DBF* (EU)H.-&7QSD,UY3P!7C_(9;(_" ^@ T@#Z>:",Q "X%? !0 Lw +M%S&54(]' -4Y:9'8C=!U\7I\D-@XN@4RDKM[:0,WE5 $4((;>DF5C8!2!? v +M-8<$ %\ @HL^E8B.096$C9&/1)7Z $:5%Y(D+D8 "@!DE16/[G5!@I0 :I5Lu +ME=5Y2I4+ #24GX2Z!5*5DA-;!%655Y4_%,B15I+-AEV5\ RDHM\-I4X!#4$t +M>%'YCCF0FX(N>1PDNI"J+<"&;X*:%8HC1($Q%;( [Y+' )))7@ $?T%]J95Bs +M!<<\W(7@ *23/ 8' @ :C52@9=Z'"\9A$8 W@"QE7T6!P!& !MWT($,?.8 r +M)97ZCI0#FI5O@CH!? !7&BYY/0!U)G\ .)6%,"B5+GG0C1;1"Hq +MCR]Y8 0P)(6,"XLB-&V#A8QT Y(P+GF_@>L K0 ,?.( #'SG'\R5#55: ,25p +MF96<@LF5RY5O@LZ5T)4% -*5+WF5$]65;!O8E=N0TY5@!)".,B57C-AZX97Lo +ME>0 $@5%@48 [)7B )=Z)Y.F Q\<2C,E9U._(AO@O 221UD>Y=ZW "DD\L5n +M#6N8E11^QY7I )H -G7< !J6,7G&E0Z%O )RC266E /< %.'*)9!),(E&98Mm +MEH^"QI5D>]H?,P1$@3F4F4$I!#HF=@"">KP !'>:?^X D4>H T2!)Y%8$"D$l +M/Y:M*2B.E -$EC0Y,Y;P@#>6W0-B #N6T1E8&ZB/!)#: !MZK8/2 /I^J2)Vk +M=YH]ED>B%*8 %01? "\WP0/N -&"[@ IDG"*1@#D@5X _($1390#6I9UAU1[j +M)P0[)4N6-0!"EDZ6Z0" +_Z5J(\P&I,;)I)JEF(%;)8JDC^%+)(Y)4*!=I9Vi +M *$%2Y:- &>.?9:J!0^(T(%IEFN6L #\ C^%Z0 H(966NI78E4!]:Y:0!?X h +MOHGI -0"GI;> -B5-9$9>>P5!@"&@>AS&7DL@?B"P40A@<$#?8% B:&6AI9Ig +MEAV0.)7D *%[V1^3&R:,<@"7EH:6F7CJ +Z) $.?CU@*00$"!S4B&U#,EE,USY8L%W( R@ ] (\3=P U &V#PP"4':< IP!3e +M $ 4P!- %( [ #LENZ68P!3 /"6\I;QEO26\)8' %( \Y;PEAD ]);T %$ d +M\Y;A %$ ZP Z'7IZ>#]1'4*!XY5X/XN6Y@"^,\*57'N=>RR244GBE86,43(]c +M +:6B(:AA70#W@!X#D$!V8[L -&"[ TA9J.E0"N ->%+74+@2<$^(&& "27b +ME7KF )=Z"Y?5%-DXZ'P>EZV5(9>I/N@ 9P KEWQ]H7N"EK%U'"'DE13M 0_C&P!D, PP!+ (B3T !Uy +M.&PI3R<\(^@ ^QN1 (< ^P"I&W&7$CL '767=Y?_ "D=NI3^! )(4#UYEY"3x +M9P.$ER(=-RWW &4 @"3 /< "8>I&P4 S7.2A98&%QXM%H, Z#;# (.5"P!Bw +MEXL$^0#C '^,^0!T 0< QG4L-/H ^(=@$%F+*#"?EVPQHI>.,]$ V ^=*>7v +M5S.6!M@R&P"?\ >0 ' /< WP!E0H, WP!Bu +M/7D "P"5EW '( !@#;=X0Q=P \s +M -$ X@#1 -8 DVOOEW( ]@ +%X0Q=@!HC=X T0"EA>$ T0#7 /R7\I<23L( r +ML@?&=(, $B^]*!D \P#1 .X !)@[ "@$=P#? %.+.P!6 /P /X WA+W -< S)>7EXL$!BH*,":8p +M> #O ($L"0 JF.XH$P4NF#"8T0 RF.\#7@ *,,27QI?(ET68\0-9 %L K5Z)o +M '4ONHJ) $\ LB7_ .$ I 58 *QYP!*+ "\ BP"ZBO\ 9P $ )YT= 3EE+@0n +MKQ-6E9 %C)4UA=44^X#UCV$KO'/D#V=+M&T %S>@%+ R4 " @T #UNI1(Im +M7W4>T@K^$38 0!@E (&8KPV$F#80AIB#F$<8B)@S +]7+%]+ RE?1PU26RMOl +M-QC3"SM?W6E 7QP![%D6840!; %R#'0,-0LQ;KH-G4YS#/ +RYC-i +MF$L#NYB#"!19[!&P6>T!.&#+F'P-&VA=7MX%86W$F$D QIC""5!B06%==_A%0e +M;0A?HVE0$0J9&VBYF$,#G@Y&"R(--YE*#+%:'0;>!>-R"W-+ P =@#1!QX!d +M,5DM"EP* #E:TD19A&56DERE1I26QP&G9@]5HP!,)F5F+QB=W!H$1B9G @Wc +M)#4-Z5A<$0H 21&" 1\28&C_ 8\!I \."J$ 7@" &F" %@ 7@"' "D b +M4 !> +2!MP"@94!]70#R "@ Z0!= +\ 70!' "D !B0.'!$ + "* %T 8@!=a +M ,D ;I!= #=(B !"9IN7H0 M 0 70#4 %P Z@ M ,L 7 "D %P 0P N )L z +M0CA< /8*RTY %P 7@"S&@@!>)CT#Z-4>IA' 4\ $PM\"%!;%%ZG#!@",@A4y +M""D-LQ*PF6,,*0BSF5*959E%#*\+(0RS$DD1U@%H$9T+HCJ;9BMF3UNPICB#QIHJI@MF9D0Q9DUw +MF6(!U@T& J "4V?,F941 9E88>T1C7._<@=SQ@%U E4 ;@"+<@-M*P@+9J&TQ#)!5S > $74"0E\ +MM0A!56G0 t +M/Q#4;^I88P+W<;H-@PSL;T(0Z$7T#R\ -P'.-_(-] V$ 8%8,A)F5*E;O5NTs +MF=UMV@'>!694<5BW71YN9'#A![Z9*F= FAL*F0AM5I 1N@^"#0AH< A)FC8-r +M2YIA 0B9<0T& ;B9KPQ/FOL!A%WW75.:$EZK6TJ:=%0;"L*9P4X966^385YOq +M<>L*( +N"@1LM@%( 8(! !; %$+.@)ODRF:,A+H"I01Q@%%#*ARAEE'5-X%p +M6P!IF@,V>9HD 3R:97%["*%M@ LF"%8"!@&>5H1FJU_E:\QLLFNT5Q,826,1o +M"X::B0(J"V(!Y6L79($+#0*D6=8*^G(;"UT0]0HZFC(25PBQ;?"9C@H *J:n +M>0$=5CD0&ETFFF "/Q"O:*R:PPI>505S=U:1FCR:9'/V5E(0> &J3MT 8 #:m +M & UP!@ -( S5.E$& 0R-7-ZT 8 "D & 0!6< ,U3D@!!(XL 8 #L &)Tl +M8 * #< A0 K33< @ !@ $8 -P![ -.:. !T & +@!N#F ,!!I & EP Yk +M %\ 8 !+ /--9$!Y4[&9O9EBFKY;-@W F;>9<@&YF8$1^9J\F3V:$UZ_F;:9j +MFQ)M5B&: 15=$&T-4U1, 5H-&P&0#:(ZS@L9"S8&:@"*"EL+8@V*"E&:O1$8i +MFEI>+)E7F5(1?A&G#.,*[0H +,-7)H;FA&:$ENU"O)5:U? )]X%CPP )X,h +M))KE9S)L&AP;7MH@W!]: "v +ME!J3 IY<30"31$I6IY8&UFF"P-Q'UEL"%I9t +M7%F/:!%9$UE@67YGQ&C::V%97F:V9IH"D@IY698*T0K?$>E8E6B-70,/40>4s +M.BU965DQ (UHE@I>"K-I[P&06;M;91+QF28(M >46999#EE<"KL*$0AC""UEr +MM PYRY85-8EIQJ68& $9;;\(30K::P-4-5HE6C!:+PY]g +MG=UK00N@FD1:E9U'6I>=(UH; IJ=D)T\ %,(/E0F"/4'@IV;G2I:HYU'$:"=f +M1EJIG7, +1&*!JR=*IVBG:^=3IVW :>=H9VCG?9K6P%$6H5:QG!\G4!:(@!_e +M:4]:&%IX6AM:Q9V7"+-7%PB[.'A:#U4&"L (/IT;6CMB_P',"F1:5EIZ&JM>d +M30!3 '.=[PK[!:3@"Z#VX+W5DR"]=;/IT3!]D( 623!R( 19GHc +M:TB9CV@76JI:XYT% 4F=X@JP"HBQPV #!5=!IY_"?Z=S%W#VYX5P6>6UH(GAM@')X4GAZ>JFP9GO<)V5WP!AV>%IXL$:!9*9X]"$4(z +M3@"C75:5)IXNGOX*GVWSG4=H5PQ #=3'$J<;0'\F<. OML5U,6TD"ZQP@PBO 8X+>UL@GF6>v +MQ&@Q!G!P')W\"7%I H89UQ:TPDB"=!;OVC! 9MSR0%H "EQ3G&Z80]B_)T]u +M"&5FT 8) &D.AUL>#2D(J'*>GDUQE#H7&(Z=/IU$9\4(H C)"#T/, !A6UQSt +MV@MJ6Z)HL0J)"*]@_ @O *6>KP=-7%())EP1<2('?A&5:X (!9J\;S\.)9M@s +M!O,.OIVJ6@8(&9M"G5F:'W&("[YH6UI5"5D)'V = =X.? ?.>>K$_BGFIIFYY+#3YR;V:%" >>20 V!\M;#@GL"4 '0@>Gq +M68H.-0"V6W@ 80!B 4@BTEN'$?2>DIYK6I2>46^5BD@VCGJ\(JPE0 %4 5 !" %4 2PA58*:>^@NIGNYQ<@MEo +M !2?30T7GQ,+RU5W6X4(F&BE:<@'KFFP::MD!6"W#]N>DYXI"-IF!IJ4&EL!n +M;UL'"7);J@@<"(D/)0@9GS*?; B. 555U' .G4L!X9S\"=]:TIU'6_Y:;Y/Am +M6N1:.5CS6BE;J5KUFUZ?_TX57:9S@@)#:^2;( &M^;l +MZ4[QFU +88[16P "H j +M$'@! %0ZL0#N((J 7D]3 +\ 0 /:>K, 4":['N @_@#+ -84GI\* +, @#=i +MAI%T5@.1$\T#K)_R +L IP,Z&72:_@## &8A,R"U %&&*1"@@Q-TNP"&+],Eh +M4G5$=49U6@7='_8 4'7)GW0 [P D)^< H "V&/X S#X- $EU%3HL #$ / $g +M !^8 S0Q "H0 "YG_(0(AU8 +0 $ #V .0 DI_?'<8 G !D=4P6A1L3="D#f +MY +F N0"[#3D FP P"Y ]DMX (N / 2"@"B6*42B'#OG4>9Y@%)F0L(:9-:e +M7)E::F5P96QE;F4Q& ^@-!@@ 7-E70%U97H(Q994_O!2X&6A0* 95W8P;Z!?P%4UBV2^\%"09. 0&7Z!;a +MH 8J"1!AT&"P'Y!64&*@9@H%R@.UBD4 H!;*"# =U6S$<1!G(&P)H?!M,%z +M_F-K"<()!P%N ",1&0=F5*L-(R/^!FT 3U3R5L]671$S!QQ8IP;HENL&R@51y +M"R(ZRG0S!WV@10!/ ""?V5'O!1D'O0J9 :,"-T^1H$X VEWR!OLVG*#3!;EMx +M?0(8!],%,7(?9&!.GP/3!4=RO0IG TX'Y5943QD'BUH_9K88]@;*!?4*79UJw +M)+"@+0= A)815$S!T$ P65%!Z8(_A,9!WX(@ A4-<&@3@ U#1,8:1N'H'=7v +M. JQ'_X&$Q@( 0)%HJ!/94<'@Z &6 @!8RG0H!,'Z@C'<],%-0V] ;!0G@ Su +M!XM: @<$!\P"O* :!\,! 4,]4#,'LYY "$((M2,9!^()DPE) $('+T\9!Z (t +M7P#EH$,E2 ?$95@ ^&&731D' 631!O\MUDO5!DEQ5UD&H?X&T 9:"0D!@ 89s +M!T,'S%T4 1"A/@H-,P=K$B)3'J'SH'0 *%@ -TLHJ 3!I 22 WD$AD'P0%7H80!p +M%RT9!Y>@\@AB48*@TP6S5U!7[@6BH(B@ +To: drew@hazelrah.cs.Colorado.EDU, linux-activists@joker.cs.hut.fi, + +I initally had Linux on the second, smaller partition on my drive. +It was error free, and I had no problem doing a mkfs on it. + +However, I have another, 32M partition I'd like to sacrifice to Linux, and it +does have errors on it. However, when I do a mkfs -c, the parameters +come up, the drive light blinks for a while, and then it just hangs there - +no disk activity light, nothing. + +I can cntrl-C out of mkfs, but after it's died, I don't get a prompt back again. +There is NO furthur output from mkfs. + +Pertinient information : +Software +Linux .11, as distributed with minor boot sector patches. + +Hardware +386-33, Elite chipset, 4M ram +Western Digital WD1006-MM1 - very WD1003 compatable + Microscience 1050 (1024 X 5 heads, MFM) + +Seagate ST-02 (currently ignored) + Seagate 296N + +the problem is always reproducable, occurs irregardless of what's mounted +as the root file system, and any disk accesses performed before the mkfs. + +Any ideas? mkfs source or a newer working binary? + +Some one needs to get gdb up and running. Any takers? +--[0271]-- + +[0272] daemon@ATHENA.MIT.EDU (Drew Eckhardt) Linux_Activists 01/02/92 22:07 (8 lines) +Subject: mkfs -c still +Date: Thu, 2 Jan 1992 20:03:42 -0700 +From: Drew Eckhardt +To: drew@hazelrah.cs.Colorado.EDU, linux-activists@joker.cs.hut.fi, + + +Looking furthur, I find that when the -c flag was specified, only 1000 blocks +were created. It's getting stuck there... +:wq +--[0272]-- + +[0273] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 01/03/92 02:12 (29 lines) +Subject: shoelace for linux +Date: Thu, 2 Jan 92 23:02:03 PST +From: pmacdona@sol.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + +If you didn't get my last message re: shoelace for linux, +you are probably one of the ones whose mailer cheerfully +bounced the message because it was two large. So instead, +I have uploaded shoelace.tar.Z to incoming on nic.funet.fi +Below I repeat the message... + + + + + +-------------------------------------------------------- + +Here is a quick hack to get shoelace to work under native +Linux. All that required was coaxing laceup to compile. +The catch was, no minix header files could be used. + +All the executables are provided, so there is nothing to +compile. I provided laceup.c only in case some adventurous +soul wishes to try adapting shoelace properly someday so that +large file systems could be supported. + +Please note. I have only tested this with my floppy drive, +so be wary.. + +Just follow the readme file provided, and you should be fine. +--[0273]-- + +[0274] daemon@ATHENA.MIT.EDU (jim wiegand) Linux_Activists 01/03/92 02:45 (129 lines) +Subject: lp support (Alpha level) +Date: Fri, 3 Jan 1992 02:32:11 EST +From: jim wiegand +To: linux-activists@joker.cs.hut.fi + +Hi Y'all; + here are the lp files. they aren't much right now but they will make + the printer go. (that reminds me- put a line in your init code somewhere that +calls void lp_init( void ). i forgot to put the file in the archive. oops) + right now i am working on the following (mis-) features :-) + o ioctl - to handle error recovery, translation, reset, etc. + o lpd - basic queue services + in that order. + and now for a few stupid questions: + what does the GNU getgroups() do? i wanted to compile cp(1) but make +barfed on this- not found. + is the message passing stuff going to be in the pipeline somewhere? i +am asking this because i need some sort of system log for the lpd. + what does POSIX say about printers & does anyone care? + thanks for the airtime. jim[v5068u].vm.temple.edu + +---[cut here]--- +begin 666 lp.tar.Z +M'YV09?#`>2.'S@L`"!,J7,BPH<.'$"-*G(@0A,4;-6J``&"Q(XR-'2U^Y!BR +MY$<0-6+,@&%CQ@T;,6Y8C`%CAHP:''%2W,FSI\^?=>;0"2/'(@`Y;][0^?D0 +MJ5*F4*-*G4JUJE6I`0<6?&$D#9LR."21JA5]-*[6B#!@V0(4>:A%LR +MAHRV%E.N;(DQQEL0=F_$P`D"AMK#B!L&'5ITH].E5A\GGDRYLN7*0>:`>&,& +MA)(P;ER`D,$"<(X<,G0HZ/I5<]`R9$#0>0,B31LX7]N4<4,'Q%@0<^K`T4I' +MM8(I0^D$3>"DS)T70]"`/@,[`>O=870K:/.&3((Q"1*P2>.F#IX7:\K(<5.& +MS8LQ:.1\(2/'SHLF8=*;\5I&0=8$;H0W7GGGI;=>>^_%-U]]+XSEPA@*N*$4 +M@`*29QYZZK'G'GSRT6??6%^D\<88=+#QX';=?5"1,U7AATGDO$& +M>Q0F\`(9,S8(QQ8PM"!#%R"@`,(8(-C`PDB& +M:E*$<0<(/-J1QAAE;.8&&WFXH,`39^8!''EG?`4"''*0UUN88Y9)!UA[DE&: +M&'7T-D9W99X%)EAIG,%>;+.!()T;9,@Y%I.^P2&#FE*4H=QZFKT1:`NEF9I@Q8)FH@E"$$4%4P005:D*!%)ESS-$" +M&R.F%YLH=7WXI1YKG*@A!OOA?#$1L9893!G1NG!OI&&V&<,688;*#I@I13.-PR +MF&^`!8*$O3&[*QY19=(M%=F-T6N358 +M7BJQ-(,-&)UDETV$&0;WX0PM1I11DD66%&2(1R[YY!&!\((*"H"@@D4#7N@B +MC!W.>*+FF6]>Y!`IF)9##!:959YF5!!D!\MDS%'Z"U..0-X8;-3!(P@\]"RA +M"VCXH(#N;O#N>YD\S)''BW3D42_QQA^_>^^_\]#Y>7/`!QOUUB>//?/;8WB@ +MB<7G?OWRP*/:Q@MSE'&&;KR!C[SRV;O_@HC@^X?'GNOA5V_H$+TO,"L,9$!! +M'=PPAT0M"@1M(`]!6,"VHFP.4&9@@9V.Y"G>I&`'_@,@R39(P#Q\X0YUVI," +M&>A`V$!0@G*@H'0LJ+$Z9'"#@UH@'3X8P@P)L%(G3&$9C+3`!BK*A1&44`R/ +M-$/-8;`T..Q@;SX(@BE%KU0\Z@P*5#"&IGT!#G200PI0L,&FL:"(+8Q-$B=8 +M0I32'A20`)W)BF0H0$'3>M`#*10A"$1(P0]*:,`R +M(!`%:XSA$R>Y0]6$AY4H3(,*8\F"64HQ!3SLPY3\"$@DE?$.=XR>(7-VAS.R +M4)$O5&(C:?C$*,Z15G;$XYS>L$<%;#(!:=#B&&3%+-ZTP`3P:P +M!46`0A&DT`00=K)9)!MD]`IIQG'*H9QT.&<)>PE)6K(@DR`49A^S9,Q#(E,. +MV5DF"/K9Q$=F\(<&Q>8E59!);W+2G22#9Q*>D-!A,E20R-1-&R1*44>^$8J2 +ME&)IZKC1;7;SFR`%@4A)J@"%$C.0Q_S"&E3*TF:VT:(P%91,-:K-CN(4GSHM +MPDA+NM`_`M6A7QB+D8Y9FD0^D)=,=.D3,;I4FN)1CU'RZ#UW%LJ)?HF4(#`E +M*J,$@A]$-0E.L$(0F``"'0`QERJ,Y@1?*L*V?G"]1,5Q0F6XX/`Z.WV@^G%,O#E5DHFQFABEYXN]T +M>`8LAFJ,22G75/X@PK3<@8XVY\7RS$P%N$-QAVF0XYW-ES@Q)BX%36Q9>R8@ +MBV&H`QN*P]R<[O2[[SU>%LE3)B=(@0A%L,(4BH2"!NJA#)PI4A>1.10Q?`68 +M+VAS&MXQT'0.@YW+L(4N].";3O`5$U@0GLO=C%!V +MT%R2O5A?I%':TCOJD4I!H"DD(9F3D6;"I"N]N5#;QPRQ.35S)$WI(5LN3"]` +M0ZPW3>=]?KK5N":DIC_:ZSS4&M3!CMZP.XG,L1P;V#WZC:Q3S80^"-G6"W1# +M=EPXKWH-6P%!K:!C-QBFTAR5L)*EPTPMV53+JG7.7SRT@UOV!032Q[.Q+5(3 +M@J"$)T@!!6%*@0]Z8&8TJYF=('ZGJIY@<'N<@A&"W+V%!O,M"G!_"N\U>V +ML.]^_SO@71#TA)T,SU4U_*-0G3?%[2V'*#> +MEK1MQ4%CX'EBY/86DGC$;G*I"PQH8`,HH:1O?(F!768B=8QPQ'!"'YOB&G.4 +MQUVE<5D/N]@1<[_Q`4]X;[#?^K)7/@-I2.WB8Y_V+,0][Y$![OACGO[XE[ZR +MRUU_\9L?EOIGZ;9G"$$<6M"'R(*D,;@@!J>)00L@CQK/;%LS5TB#_$"S:P58 +MVL%V<&5Q(.@FE,&'S&9"DZ-RQ3J(\<940*@4':"T,-FS+K5CH<,,3H6OS%G$ +M-K@1&99<"*C>5,$)5"C"%))/A&];.@W`$8X>]80PST&9A +MN@&.VFCE*%?RJ"C[D9,.6O"14X]@S.P!`1.@\(4B8"$)RR\,'F#`_QB(N0S[ +M$7_S]P534`1,4`1#H'_\!P,R\'\!6"8#""W2D@`*R'\TX("H-X!/8`1&P`04 +M"`/[QW\X@($"2'^K`@5!(!(A2!.Y`W]E]@1?,']K-@,D"('T1P5)T`1%\`15 +M0`6CL8">MSD*<$`MXR9B`%'DT0(\@D"BT2Y%(2%W(!I]M#ME<@>X@B]+."!G +M``('A@:GXB@$42=VYB9S@"Q?@B=D0B4TXP8GT!OQ0WUEPAXNY(1?&`=U4`9W +MJ`"G)A1R4`VDC)S8$^6)H<\$AMT""C. +MXTQ$+U8=_""*D"$0:QVA$,EZP +M%1Y[H'\S(`9C4!HP4!I]P`+,98CT>`,X@(_ZR(_A(8_Z)P,`*9`@`%[A41(+ +MN0-5%(15)`:Z="@/R"X$`0(XJ1G$<8P=M@*`08XU"`(2 +MF`4)`((X\!&6%@8`PXQF.&SO!X"H%P1#L`0F@0*01%$);^)Y&^YXH@,#N]4X4IM"_R8444T4=D5.VB9MWR(6[N1NB$014L)S1XYQJ +MHQD3,S,Y!0.B47N@Y28X0X@HDQXF2*>,9J>]@:=Z&B7V!*8$2ISB.`=VE7[?0AZRP:EO6AMF8"2) +M>JGCU:?["0)\P`>5JJB%ZJ0QRJ4A\:4=L:F+M@6>"@)XVHC8@JOC-8#VAW]4 +M,*H=$:=M]1'#521S6JS'"JHG.1I10JF!2A"R"JG7^:2SVJL\``*-F@6/:JF] +M.JG2"J>!$EQ&,IE#``6XFHQ.H)GX>JW82JQUFJ7(FJ?="B6'Q4DAX7ITL`9& +M(@(EZ@:ZY%=C40*Q$1"GR@5N(`+KYB)-"JX+B;`+F0!AMD$@(F[]52D5E%2" +M512754::@IM.>JC@%E,Z9!%/.B6V!K+`L1NQT4:-DGO^UZ5S(A_M:*P?022< +M)&O4BK(S5!H`VZFQ-+"ARD>V=@=A4)%T>*9N(FLV<:K3(*JG[ +M(FMK!;.82J_96J=1RZV&N2\'RVH@H#+,*!P(&G[!.:!NUQXZ51OY0AYJBK8\ +M6GUU^0:_R"RN%`:,VS)%6+UN$:4-F8"K1Q2X4 +MXT)XB[;=XS!DH&5#Q%VT)*DK8&7@!5K\8201-U$ORS(@D%HM25>H55B]D:X# +MB(,ZR)2BBK.?=R-A]`:".7YA6[1W0R2'J;,]6B9\^`:]B#!GX(5*.Z]M9:_X +MJJN9V93YZII/`)M14AI&\K3&^K8$&[<&BUP\FA_4F[R]>)/;^US=:X"4F:_A +MVZ_HV[90"T-26[#?ZEF<9&G1)7ZZ`:!NL(6Z`1IP8@9:!@)9"U6+*FLZH[;\ +M0J_JN[(#'+>L<[`HYV09S#)41;)P$$2Z-$3Y]4Q?Q5]'%5DT:U@>M4&VRZML +M`$(VC"R("T)M=(^:DS6_.%X8M*.;XSUN2H>_8;%"<9QE(FN?YS!)G)&XJ:(2 +MLFSA9"11ZP-3"H,R^+MG`G9VM(K*:_T8Y8'*OIF\+.R[[*JAFIY:SW +MEW^I`U?6*L9057(,EV9&S*937!1T,B+EPB_YI6)0_)^&:RATHBG*UD6D`@=& +M*#2V.0>C0BQ<>(T4G)$\`BAGH#(-O,9MU<%PS`:.F+OR1W^[*W(6(:Q9#,#K +M*\!XNJFA>$[$E*/CM7OL%*PZ^[%=JES](;2PVL9BJZWL2\MK<$[S$AMX#*PE +M(:PA`5XA`/,MNC"K)S,7+[*M'0DY8HLPJBG"P)V*2V>8IKB_F*Y!YM*N6QHF/:E>>UL\FA1J&GYAT,_\L:;[<0:R0GV&XES+ +M]ATQ&UW355V!9=+<5<+?,EXE.T-&`L11RUV%6R;,8H?^XD+.!2IF("JD8BHX +MDR='_W0L%9MF5G?? +M'1)2MWM/MQ!8DO09R-L>">T00;AY"(A('[EQRPG(*#4RZ!DPD$\ +M0BVW_=W@'=[B/=[D7=[F?=[HG=[JO=[LW=[N_=[P'=_R/=_T7=_V?=_XG=_Z +MO=_\W=_^_=\`'N`"/N`$7N`&?N`(GN`*ON`,WN`._N`0'N$2/N$47N$6?N$8 +KGN$:ON$_N$@'N(B/N(D7N(F?N(HGN(JON(LWN(N_N(P'N,R/N.3#>$8 +` +end +--[0274]-- + +[0275] daemon@ATHENA.MIT.EDU (Ari Lemmke) Linux_Activists 01/03/92 09:08 (14 lines) +Subject: shoelace for linux +Date: Fri, 3 Jan 1992 15:59:12 +0200 +From: Ari Lemmke +To: linux-activists@joker.cs.hut.fi +In-Reply-To: Peter MacDonald's message of Thu, 2 Jan 92 23:02:03 PST <9201030702.AA00807@sol.UVic.CA> + + +Peter MacDonald: +> I have uploaded shoelace.tar.Z to incoming on nic.funet.fi + + nic.funet.fi:/pub/OS/Linux/tools/shoelace.tar.Z + + arl + + +--[0275]-- + +[0276] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 01/03/92 11:24 (63 lines) +Subject: Re: lp support (Alpha level) +Date: Fri, 3 Jan 92 11:06:05 -0500 +From: tytso@ATHENA.MIT.EDU (Theodore Ts'o) +To: jim wiegand +Cc: linux-activists@joker.cs.hut.fi +In-Reply-To: jim wiegand's message of Fri, 3 Jan 1992 02:32:11 EST, +Reply-To: tytso@athena.mit.edu + + Date: Fri, 3 Jan 1992 02:32:11 EST + From: jim wiegand + + what does the GNU getgroups() do? i wanted to compile cp(1) but make + barfed on this- not found. + +getgroups() is an optional POSIX system call, derived from BSD systems: + + int ngroups = getgroups(int gidsetlen, gid_t *gidset) + +(this is the POSIX definition. BSD systems have the type of gidset as +int, which is not the same as gid_t (unsigned short in BSD, and unsigned +char in Linux) --- this can be confusing) + +This is used to support the feature where a user can be a member of more +than one group simultaneously. At login-time, login(1) uses the +setgroups() call to establish a list of groups that the user is in, and +this list is inherited by all child processes. When a groups-level +permission check is done, if any of the groups in the groups list match +the group of the file, then the user is given group access. The +getgroups() call is a way that the process can inquire about its group +list. + +If cp(1) from the GNU fileutils is trying to use getgroups(), it sounds +like there's some sort of mis-configuration going on. Its .h files must +somehow think that it's being compiled on a BSD-like system. It sounds +like either something in the /usr/include .h files is tricking it to +believe that the getgroups() call exists on your system, or you need to +frob some #define's in the configuration header file of the fileutils +package. In general, I've found that programs which are told that it's +compiling on SysV R2 or R3 machine generally work. + +Alternatively, someone could try adding setgroups()/getgroups() to +Linux --- this would be a good thing, since the BSD way is much easier +to use when you belong to multiple groups. + + + Date: Thu, 2 Jan 1992 19:51:55 -0700 + From: Drew Eckhardt + + Some one needs to get gdb up and running. Any takers? + +Some one needs to get core dumps and/or ptrace() working first. :-) + +The job control patches have a hook for the core dump routine, but it +hasn't been implemented yet. (I wanted to wait until after the VFS +stuff settles out.) + +Another thing which would be really nice to get working would be +profiling --- both user-level and possibly kernel-level profiling would +be nice. Also, assuming you have a swap partition, it would be nice to +change linux to do crash dumps after it panics. In short, it looks like +there will be plenty of hacking for people to do after Linux 0.12 comes +out. :-) + + - Ted +--[0276]-- + +[0277] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 01/03/92 22:30 (11 lines) +Subject: serial port hang +Date: Fri, 3 Jan 92 19:25:00 PST +From: pmacdona@sanjuan.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + + +Sometimes I when working for a while, including kernel +rebuilds, reboots and powering of the modem off and on +The serial port refuses to talk to the modem anymore and +only a hardboot clears it. Anyone else seen this behavior? + + +--[0277]-- + +[0278] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 01/03/92 22:41 (17 lines) +Subject: Re: serial port hang +Date: Fri, 3 Jan 92 22:37:32 -0500 +From: tytso@ATHENA.MIT.EDU (Theodore Ts'o) +To: pmacdona@sanjuan.UVic.CA +Cc: linux-activists@joker.cs.hut.fi +In-Reply-To: Peter MacDonald's message of Fri, 3 Jan 92 19:25:00 PST, +Reply-To: tytso@athena.mit.edu + +Yes, I've had it happen once, and I haven't been able to reproduce it +since. + +Interestingly enough, only once of my serial ports wedged, so I just +dealt with the problem by switching my modem to the other port and +continued work on /dev/tty2. A reboot later on did clear the problem. +The next time it happens, I'm going to try reading out the serial +registers using /dev/port to see if there any clues to be found there. + + - Ted +--[0278]-- + +[0279] daemon@ATHENA.MIT.EDU (John R. Schutz) Linux_Activists 01/03/92 22:59 (16 lines) +Subject: Re: serial port hang +From: john@csrnxt1.ae.utexas.edu (John R. Schutz) +To: linux-activists@joker.cs.hut.fi +Date: Fri, 3 Jan 92 21:55:47 CST + +I have also had this happen every so often. Soft boots haven't +cleared it, even when I reboot into MessyDOS, and use a comm program +there, then reboot to Linux. The only thing that seems to clear it is +power cycle or reset. While it has happened a few times, I have not +been able to figure out any conditions that lead up to it ... + + john +-- +| John R. Schutz | Email&NeXTmail: | +| A learning NeXTie | john@csrnxt1.ae.utexas.edu | +| (512)328-0587 | "We are all victims of dead men." | +| 3009 Hatley Dr., Austin, TX 78746 | -Charles Fuller | +--[0279]-- + +[0280] daemon@ATHENA.MIT.EDU (Bruce Evans) Linux_Activists 01/04/92 06:53 (16 lines) +Subject: Re: serial port hang +Date: Sat, 4 Jan 92 15:26:05 +1100 +From: Bruce Evans +To: linux-activists@joker.cs.hut.fi + +If the serial ports sometimes hang after booting linux, it is probably due +to inadequate initialization. See the Minix-1.6.16 rs232.c (i.e., my rs232.c) +for (almost?) correct initialization. + +If they hang after heavy use, it is more likely one of the xx50 bugs. E.g., +the interrupt ID reg sometimes reports no interrupt when there is an +interrupt. It's necessary to check the modem status bits and possibly the +line status bits directly before leaving the interrupt handler. Someone +says that these bits sometimes lie too and it helps to disable and enable +modem status and output interrupts a lot. + +Bruce +--[0280]-- + +[0281] daemon@ATHENA.MIT.EDU (Bruce Evans) Linux_Activists 01/04/92 06:53 (43 lines) +Subject: Re: lp support (Alpha level) +Date: Sat, 4 Jan 92 15:42:01 +1100 +From: Bruce Evans +To: bde@runxtsa.runx.oz.au +Cc: linux-activists@joker.cs.hut.fi + +>getgroups() is an optional POSIX system call, derived from BSD systems: + +I thought it was a required POSIX system call. + +> int ngroups = getgroups(int gidsetlen, gid_t *gidset) + +>(this is the POSIX definition. BSD systems have the type of gidset as +>int, which is not the same as gid_t (unsigned short in BSD, and unsigned +>char in Linux) --- this can be confusing) + +To handle this mess, fileutils-1.5 (which implements cp) has + +#ifdef POSIX +#if !defined(sun) && !defined(ultrix) +#define GID_T gid_t +#else +#define GID_T int +#endif +#else +#define GID_T int +#endif + +and it assumes (GID_T *) in the prototype. I think another gnu utilities +package uses GETGROUPS_T to allow for gid_t being different. + +>...It sounds +>like either something in the /usr/include .h files is tricking it to +>believe that the getgroups() call exists on your system, or you need to + +NGROUPS_MAX. + +>Alternatively, someone could try adding setgroups()/getgroups() to +>Linux --- this would be a good thing, since the BSD way is much easier + +Minix has { return 0; } for getgroups. This is good enough for fileutils +to work. + +Bruce +--[0281]-- (nref = [0304]) + +[0282] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 01/04/92 13:15 (47 lines) +Subject: nonblock read; ptys; +Date: Sat, 4 Jan 92 10:07:08 PST +From: pmacdona@sanjuan.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + +I also found the tty_read command to be blocking when VMIN=0. Now some +questions about the solution seen in the job control patches. Which is: + + if (!time && !minimum && !L_CANON(tty) + nr = MIN(nr,CHARS(tty->secondary); + +Now for the questions: + + - Should open with O_NONBLOCK implemented by setting VMIN=0 and !L_CANON? + - If so, should the above be changed to just return -EAGAIN? + - Ditto for fcntrl O_NONBLOCK? + +EAGAIN is what nonblocking read is supposed to return in errno +on failed reads. + + +Next, some pseudo-tty questions: + +Ptys are pairs of ttys, the Master and the Slave. Anything written to the +Master tty, appears on the input of the Slave, and vice versa. +I am implementing the Slave as just a normal tty, but to save +wasted buffer space, I have the Master tty write directly to the +slave read_q and then call copy_to_cooked. Likewise, the Master +reads come directly from the the Slaves write_q. This not only +saves space, but also unecessary shuffling of data to and from +queues. + +Is this approach sound? Aren't there concurrency problems with +two processes manipulating the same queue at the same time? Don't +the serial and tty handlers have the same problem, cause even +though they have interrupts disabled, the tty_read or tty_write +processes could have been right in the middle of changing q.head? + +If there are no concurrency problems, then master ptys can just +use tty_read and tty_write, with modifications to point to the +right queues, and the q->write() pointer called in tty_write +calling a function that invokes copy_to_cooked. + +If there are concurrency problems, +would tty_write have to call a seperate pty_write function +which would (shudder) cli() and sti() around writing across queues? +This would result in more code to maintain in future. + +--[0282]-- + +[0283] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 01/04/92 17:57 (37 lines) +Subject: A screen dumper for VC +Date: Sat, 4 Jan 92 14:55:02 PST +From: pmacdona@sanjuan.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + +Someone, somewhere said "when you have virtual consoles, you almost +don't need a windowing system, except for cutting and pasting, of +course". Well cut and paste is hard to do without a windowing system +and mouse, but dumping the contents of the screen isn't to hard. + +One to many times I watched my modem go "NO CARRIER" in the middle +of a mail message I was composing, leaving me staring at the contents +of a screen I knew I would have to completely retype. So I implemented.. + + + setterm -dump n -file dumpscreenfile + +or just + + setterm -dump + +These options to the setterm command cause the screen to be dumped +to a file. If a console number n is specified, the contents of that +console are dumped, otherwise the current console is dumped. + +If a file is not specified with the -file dumpscreenfile option, +then the contents of the screen go to the file screen.dump in the +current directory. + + +Technical Note: + + To avoid adding another system call, I defined TIOCSNAP in termios.h + and used ioctl to do the dumping for me. + + The SCR_COLS and SCR_ROWS should be defined in . + Instead, I currently just check if VIDEO_VGA_50_LINES is defined, + else use 25 lines. +--[0283]-- + +[0284] daemon@ATHENA.MIT.EDU (Owen Cooper) Linux_Activists 01/04/92 20:44 (12 lines) +Subject: FAQ: Non-ftp access to linux +To: linux-activists@joker.cs.hut.fi +Date: Sat, 4 Jan 92 10:11:35 PST +From: Owen Cooper + +Hello +Do any of the sites that archive linux have email servers? I +lack FTP access but would very much like to get a copy. sorry if +this is a FAQ. + +Thanks in advance for any information, +Owen Cooper (owen@seer.mystic.com) +, +--[0284]-- + +[0285] daemon@ATHENA.MIT.EDU (Rob Soukoreff) Linux_Activists 01/05/92 03:45 (35 lines) +Subject: Two Beginer Questions +Date: Sun, 5 Jan 92 03:37:42 -0500 +From: Rob Soukoreff +To: Linux-activists@joker.cs.hut.fi + + + +Hello Activists: + + +I seem to be having a problem figuring-out Disk Partitions. I have +an IDE drive, with MSDOS 5.0, and two questions. + + +Question #1: +When I use DOS's FDISK, I can only make a maximum of two partitions, +the Primary Partition, and the Extended partition. Now, since DOS +wants the Primary Partition for itself, this only leaves the extended +partition, which Linux won't accept. How do you create a partition +of a kind other than Primary or Extended for Linux? + +Question #2: +I see in many places people talking about having four partitions on +one hard drive, but I seem only able to create one Primary, and one +Extended partition. How are these people creating more than two +partitions? Are they refering to separate Logical DOS Drives within +one Extended Partition? In particular I am refering to the file: +INSTALL-0.11, by Linus, under the section titled: "Using it." + + +Thanks, + Rob Soukoreff + rwsoukoreff@descartes + + + +--[0285]-- + +[0286] daemon@ATHENA.MIT.EDU (d88-man@nada.kth.se) Linux_Activists 01/05/92 06:44 (11 lines) +Subject: short question... +Date: Sun, 5 Jan 92 12:40:06 +0100 +From: d88-man@nada.kth.se +To: Linux-activists@joker.cs.hut.fi + +I am trying to read the keyboard via int 0x16 from setup.s +this seems to work until Linux have booted then the keyboard +is hanged. But if I for example press ctrl+c after I have done +the keyboard read the keyboard is not hanged when Linux starts. +Anybody have any ideas of why and how to avoid ? +This may be uninteresting to most so please answer to me directly. +/Mats Andersson (d88-man@nada.kth.se) +--[0286]-- + +[0287] daemon@ATHENA.MIT.EDU (Rick Buhagiar) Linux_Activists 01/05/92 07:13 (8 lines) +Subject: Unsubscribe to linux +From: rickb@phoenix.pub.uu.oz.au (Rick Buhagiar) +To: linux-activists@joker.cs.hut.fi +Date: Sun, 5 Jan 92 11:30:25 EST + + +Can you please take me off the linux mail list as I now use xenix. +Thanks. + +--[0287]-- + +[0288] daemon@ATHENA.MIT.EDU (d88-man@nada.kth.se) Linux_Activists 01/05/92 10:35 (14 lines) +Subject: int 0x16 +Date: Sun, 5 Jan 92 16:30:42 +0100 +From: d88-man@nada.kth.se +To: Linux-activists@joker.cs.hut.fi + +As I mailed earlier int 0x16 seems to hang the keyboard for Linux when +used in setup.s. I guess the keyboard must be reset or something before +starting Linux (after the int 0x16). I said something about when pressing +ctrl+c afterwards seems to "undo" the hanging this was not true (it was +just as it looked) In fact it seems to hang at random (with possibility +going towards 1 :-( ) If anybody knows how to reset/or anything the keyboard +outport etc. Please let me know ! Or any other ideas of why/how/etc. +Thanks in advance... +/Mats Andersson (d88-man@nada.kth.se) + +--[0288]-- + +[0289] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 01/05/92 11:56 (41 lines) +Subject: Re: Two Beginer Questions +Date: Sun, 5 Jan 92 11:47:25 -0500 +From: tytso@ATHENA.MIT.EDU (Theodore Ts'o) +To: Rob Soukoreff +Cc: Linux-activists@joker.cs.hut.fi +In-Reply-To: Rob Soukoreff's message of Sun, 5 Jan 92 03:37:42 -0500, +Reply-To: tytso@athena.mit.edu + +The problem is that the fdisk which MS-DOS uses very limited; it only +knows how to deal with MS-DOS partitions (my 8-bit CP/M machines from +ten years ago did better than that!). + +The MS-DOS partitioning scheme does indeed allow for having four +partitions on one hard drive. The problem was that four is just way too +small of a number. So what MS-DOS did was that MS-DOS knows how to make +two partitions --- the "Primary" DOS parition, and the "Extended +partition", which is in reality one of the four "Primary" partitions +which can be allocated on a hard disk. This leaves two other partitions +which MS-DOS FDISK doesn't deal with at all. Other operating systems, +like OS/2 or Linux, can use them, if they can figure out a way to set up +the other two partitions. I thought you could indeed use the Extended +partition for Linux, but this is sort of a bad idea, since the wrong +MS-DOS commands could easily trash your Linux filesystem. + +If you want to set up one the third and fourth "Primary" partitions, +there are two ways to do this. The first is to use something like +Norton Utilities, and mess with partition tables with a disk editor. +Norton Utilities' disk editor is actually fairly sophisticated, so it +knows the format of the tables. You still have to do a bit of manual +calculations to get the ector numbering and double-checking, though. + +The other method is to use a more sophisticated FDISK command; the one +supplied with OS/2 will work. I don't know if there are any other PD +versions of FDISK out there that will do the trick. There is a fdisk +command under Linux, but currently it will only print out the partition +table. Eventually you should be able to use the fdisk that comes with +Linux; however, for right now, that's why I only recommend Linux to +people who are willing to hack on it. :-) + + - Ted + + +--[0289]-- (nref = [0293]) + +[0290] daemon@ATHENA.MIT.EDU (Tom Ivar Helbekkmo) Linux_Activists 01/05/92 13:30 (46 lines) +Subject: Incorrect path parsing in fs/namei.c. +From: Tom Ivar Helbekkmo +To: linux-activists@joker.cs.hut.fi (Linux Activists) +Date: Sun, 5 Jan 92 19:26:17 MET + +There's a problem in fs/namei.c that affects absolute pathnames. It +can easily be demonstrated by e.g.: + +# cd /etc +# cp rc / + +...which gives an error message (can't remember the exact wording) to +the effect that "//rc" can't be opened. This is caused by the +concatenation of the directory, a '/' and the filename, which gives a +double slash. + +Of course, multiple slashes should be allowed. Not being familiar +with how, exactly, namei parsing should work, I can't offer a fix. +What I did locally, just to minimize the effect, was to check for +another slash near the top of get_dir(), where it recognizes a leading +slash as being the root directory, and just skipping that second slash +if present. + +Also, another bug somewhere (race condition in the file system?) +showed up after I installed the virtual consoles patches... Starting +three shells on three virtual consoles from /etc/rc in direct +succession caused the file system to be damaged. It turned out that +this was caused by the three instances of bash accessing the +.bash_history file at the same time. Staggering the shell startups +sufficiently in time fixed it, as did disabling the history file +feature from the .profile file. At startup, the kernel would report + + trying to free block (NNNN:NNNN), count = N + +while starting the shells, where the last N would be sometimes 1, +sometimes 2. Running fsck on the file system would show that number +of references to the same (actually unallocated) block. On the good +side, fsck fixed the file system. + +A bit of good news: I'm running with the posted shoelace here, and can +report that booting from my hard disk with shoelace works great. No +more floppies here, except for my emergency boot floppy, of course. + +-tih +-- +Tom Ivar Helbekkmo, NHH, Bergen, Norway. Telephone: +47-5-959205 +Postmaster for domain nhh.no. Internet mail: tih@barsoom.nhh.no +--[0290]-- + +[0291] daemon@ATHENA.MIT.EDU (Yanek Martinson) Linux_Activists 01/05/92 14:27 (15 lines) +Subject: Re: int 0x16 (reading keyboard) +From: Yanek Martinson +To: d88-man@nada.kth.se +Date: Sun, 5 Jan 92 14:22:17 EST +Cc: linux-activists@joker.cs.hut.fi +In-Reply-To: <9201051530.AA25892@dront.nada.kth.se>; from "d88-man@nada.kth.se" at Jan 5, 92 4:30 pm + +> As I mailed earlier int 0x16 seems to hang the keyboard for Linux +... +> outport etc. Please let me know ! Or any other ideas of why/how/etc. + +You don't really have to go through BIOS int 16 to read keyboard, +potentially causing problems. You can read it directly, on port 0x60. +A value less than 129 is a "key pressed" signal, with the value bin +the scancode of key pressed. A value more than 128 is "key released" +signal, with the value being scancode+128. +--[0291]-- + +[0292] daemon@ATHENA.MIT.EDU (Rob Soukoreff) Linux_Activists 01/05/92 16:18 (21 lines) +Subject: Partions ok now... +Date: Sun, 5 Jan 92 16:13:41 -0500 +From: Rob Soukoreff +To: Linux-activists@joker.cs.hut.fi + + + + Hello Activists! + +I wanted to report that my partition problem is fixed! The program +edpart.zip from wuarchive worked great! Many thanks for all of the +suggestions. + +Do you think edpart.zip should be mentioned in the FAQ? + + +Thanks, + Rob Soukoreff + rwsoukoreff@descartes + + + +--[0292]-- + +[0293] daemon@ATHENA.MIT.EDU (John T Kohl) Linux_Activists 01/05/92 16:28 (14 lines) +Subject: Re: disk partitioning +Date: Sun, 5 Jan 92 13:20:27 PST +To: tytso@athena.mit.edu (Theodore Ts'o) +Cc: Rob Soukoreff , +In-Reply-To: [289] +From: John T Kohl +Reply-To: jtkohl@cs.berkeley.edu + +I use the 'edpart' program I picked up from WSMR-SIMTEL20.ARMY.MIL. +it runs under DOS, and provides an o.k. interface. I believe it lets +you select partitions on cylinder boundaries, and does the rest of the +calculations itself. +[of course, you have to calculate from blocks/MB to cylinders...] + +John +--[0293]-- (pref = [0289]) + +[0294] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 01/05/92 17:31 (44 lines) +Subject: Re: Incorrect path parsing in fs/namei.c. +Date: Mon, 6 Jan 1992 00:25:45 +0200 +From: Linus Benedict Torvalds +In-Reply-To: Tom Ivar Helbekkmo's message as of Jan 5, 19:26 +To: Tom Ivar Helbekkmo , + +Tom Ivar Helbekkmo: "Incorrect path parsing in fs/namei.c." (Jan 5, 19:26): +> There's a problem in fs/namei.c that affects absolute pathnames. It +> can easily be demonstrated by e.g.: +> +> # cd /etc +> # cp rc / +> +> ...which gives an error message (can't remember the exact wording) to +> the effect that "//rc" can't be opened. This is caused by the +> concatenation of the directory, a '/' and the filename, which gives a +> double slash. + +This is corrected in my version - it will be in 0.12. I had expressly +forbidden zero-length pathnames, as I didn't know what to do about them, +but tytso implemented the same change as you wanted, and it seems that +is what linux should do. + +> Also, another bug somewhere (race condition in the file system?) +> showed up after I installed the virtual consoles patches... +> [ deleted ] +> +> trying to free block (NNNN:NNNN), count = N + +Right - this is a race-condition in "open()" when using the O_TRUNC +flag. I knew about it when I wrote the code, but happily forgot about +it (as it seldom happens on a single-user machine - I've never actually +seen it). + +fsck should report "Zone XXXX: no file uses it, marked used in the +bitmap". If you get another message, please tell me. The reason this +happens is that I didn't know how to handle a truncate on a file that +was in use, so I ignored the problem, and forgot about it. I think I +have a solution, and I'll try to get it corrected in 0.12. + +As far as I know, this bug is totally harmless (except for the message), +and just results in a unused block on the disk. fsck should repair it, +but if you got another message than the above, I'm wrong. + + Linus +--[0294]-- + +[0295] daemon@ATHENA.MIT.EDU (Teresa Selling) Linux_Activists 01/05/92 21:09 (12 lines) +Subject: kermit +From: Teresa Selling +To: linux-activists@joker.cs.hut.fi +Date: Sun, 5 Jan 92 21:04:43 EST + +I am having trouble getting Kermit to work with linux. I set the line to +/dev/tty1 (for com1). Is this correct? Doesn't seem to access the modem. + +Also when I send mail to linux-activists-requests@joker.cs.hut.fi it gets +returned. +What am I doing wrong? +Thanks. + +--[0295]-- + +[0296] daemon@ATHENA.MIT.EDU (Christopher Provenzano | ) Linux_Activists 01/05/92 23:21 (13 lines) +Subject: VFS +To: linux-activists@joker.cs.hut.fi +Date: Sun, 05 Jan 92 23:15:46 EST +From: Christopher Provenzano | Food is Great! + + +Ok, I just mailed Linus the VFS code. Hopefully he'll include it in the next +release. Ted there is a prerelease version +/afs/net/user/tytso/linux/proven/vfs910105.tar.Z, can you make it publically +available so anyone who wants to look at it can. More stuff for the VFS is +coming but the current version does include all the functionallity of the old +fs, and hopefully very few bugs. + +CAP +--[0296]-- + +[0297] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 01/06/92 00:41 (21 lines) +Subject: Re: VFS +Date: Mon, 6 Jan 92 00:35:43 -0500 +From: tytso@ATHENA.MIT.EDU (Theodore Ts'o) +To: linux-activists@joker.cs.hut.fi +In-Reply-To: Chris Provenzano's message of Sun, 05 Jan 92 23:15:46 EST, +Reply-To: tytso@athena.mit.edu + + Date: Sun, 05 Jan 92 23:15:46 EST + From: Christopher Provenzano + + Ted there is a prerelease version + /afs/net/user/tytso/linux/proven/vfs910105.tar.Z, can you make it + publically available so anyone who wants to look at it can. + +TSX-11.MIT.EDU:~ftp/ALPHA/VFS/vfs910105.tar.Z + + - Ted + +P.S. If any one knows of some email archive server software which takes +little time and energy to set up and run (very important! :-), please +send me a pointer to it; I've gotten one or two requests for a mail +access path. Thanks! +--[0297]-- + +[0298] daemon@ATHENA.MIT.EDU (Owen Cooper) Linux_Activists 01/06/92 02:27 (12 lines) +Subject: setting up linux with dos 5.0 +To: linux-activists@joker.cs.hut.fi +Date: Sun, 5 Jan 92 21:24:13 PST +From: Owen Cooper + +Thanks to everyone who replied to my last message. I have now obtained a +copy of the linux boot & root images (I got them from ftpmail.) I tried to +create a non-dos partition for linux in fdisk (msdos 5.0) but am unable to +set up such a partition. The dos manual says that the other operating system +should set up the partition. any help in resolving this problem would be +appriciated. + +Owen (owen@seer.mystic.com) +--[0298]-- + +[0299] daemon@ATHENA.MIT.EDU (drew@hazelrah.cs.Colorado.EDU) Linux_Activists 01/06/92 02:53 (29 lines) +Subject: Re: int 0x16 (reading keyboard) +To: Yanek Martinson +Cc: linux-activists@joker.cs.hut.fi +In-Reply-To: Your message of Sun, 05 Jan 92 14:22:17 -0500. +Date: Mon, 06 Jan 92 00:48:08 MST +From: drew@hazelrah.cs.Colorado.EDU + + +-------- + + > As I mailed earlier int 0x16 seems to hang the keyboard for Linux + ... + > outport etc. Please let me know ! Or any other ideas of why/how/etc. + + You don't really have to go through BIOS int 16 to read keyboard, + potentially causing problems. You can read it directly, on port 0x60. + A value less than 129 is a "key pressed" signal, with the value bin + the scancode of key pressed. A value more than 128 is "key released" + signal, with the value being scancode+128. + +-------- + +Infact, you CANNOT use BIOS calls in Linux. BIOS is INACCESSABLE in protected +mode, which Linux and all other REAL operating systems run under. There is NO +Code for handling int 16h. + +You either talk directly to the hardware, or let a device driver handle it +for you. + +code for handling 16h. +--[0299]-- + +[0300] daemon@ATHENA.MIT.EDU (drew@hazelrah.cs.Colorado.EDU) Linux_Activists 01/06/92 03:03 (47 lines) +Subject: Re: int 0x16 (reading keyboard) +To: linux-activists@joker.cs.hut.fi +In-Reply-To: Your message of Mon, 06 Jan 92 00:48:08 -0700. +Date: Mon, 06 Jan 92 00:58:16 MST +From: drew@hazelrah.cs.Colorado.EDU + + + -------- + + > As I mailed earlier int 0x16 seems to hang the keyboard for Linux + ... + > outport etc. Please let me know ! Or any other ideas of why/how/etc. + + You don't really have to go through BIOS int 16 to read keyboard, + potentially causing problems. You can read it directly, on port 0x60. + A value less than 129 is a "key pressed" signal, with the value bin + the scancode of key pressed. A value more than 128 is "key released" + signal, with the value being scancode+128. + + -------- + + Infact, you CANNOT use BIOS calls in Linux. BIOS is INACCESSABLE in protec ted + mode, which Linux and all other REAL operating systems run under. There is + NO Code for handling int 16h. + + You either talk directly to the hardware, or let a device driver handle it + for you. + + +-------- + +Sorry - misplaced that original mail - whenever I leave even for a short +time my mail box fills up with mundane sys admin mail, etc and I can't +always find the good stuff. + +If you're calling int 16h BEFORE the protected mode switch, you should be +fine. Make sure you haven't cleared the interrupt flag. As far as reading +the keyboard directly.... + +This gives a SCAN CODE, not an ASCII value, which must be converted +if you are interested in the value. + +You can use an index into a translation table, but this means you must store +all of the keys you are interested in in the table - a real pain. You also +have to worry about shift states if case is significant, multibyte scan +codes, etc. + + +--[0300]-- + +[0301] daemon@ATHENA.MIT.EDU (Stephen. Clawson) Linux_Activists 01/06/92 03:14 (28 lines) +Subject: Re: setting up linux with dos 5.0 +From: sclawson@cadehp12.eng.utah.edu (Stephen. Clawson) +To: linux-activists@joker.cs.hut.fi +Date: Mon, 6 Jan 92 1:09:38 MST +In-Reply-To: ; from "Owen Cooper" at Jan 5, 92 9:24 pm + +> +> Thanks to everyone who replied to my last message. I have now obtained a +> copy of the linux boot & root images (I got them from ftpmail.) I tried to +> create a non-dos partition for linux in fdisk (msdos 5.0) but am unable to +> set up such a partition. The dos manual says that the other operating system +> should set up the partition. any help in resolving this problem would be +> appriciated. +> +> Owen (owen@seer.mystic.com) +> + + Try getting pdisk.arc from wuarchive.wustl.edu in /mirrors/msdos/dskutl. +Someone else suggested edpart, but I tried it and like the program that comes +with pdisk better. I'm not sure what the rest of it is, but there is a +program called part.exe in the archive that will do what you want nicely. +edpart dosen't seem to understand partitions >32meg and managed to mung +my partition table up a bit... I used part.exe to set my formerly extended +DOS partition to XENIX and things have worked fine since. + +steve + +// sclawson@cadehp0.eng.utah.edu - University of Utah + +--[0301]-- + +[0302] daemon@ATHENA.MIT.EDU (d88-man@nada.kth.se) Linux_Activists 01/06/92 11:58 (293 lines) +Subject: SVGA-alphanum. modes +Date: Mon, 6 Jan 92 17:43:12 +0100 +From: d88-man@nada.kth.se +To: Linux-activists@joker.cs.hut.fi + + +I have finally had time to finish the SVGA-detector. This patch will +look for clues to determine if/what SVGA-card available. If it finds +a card it will ask (at boottime) if one wants to select from the modes +supported by the current card or just do a 'normal' init without SVGA-modes. +This is not the best thinkable way of doing this, I will work on a version +that can do the modeswitching from 'user-mode', which however is FAR more work than this straightforward hack. But the detection part of it must still lie +in the kernel (at least that's simplest). But this is good enough to be +usefull/easy to use. + +I have uploaded this code to both nic.funet.fi and tsx-11.mit.edu. + +I have only been able to test the Trident part of this code. People out +there with different cards could please test this and mail results. And even +the Trident part is not guarateed to work since my card seems a bit strange. + +Cards supported: ATI, Ahead, Chips & Tech., Cirrus, Everex, Genoa, Paradise, +Trident, Tseng, Video7. People with code to guess other cards and what modes +they support could mail me, or implement them themselves as long as it +gets spread. + +Finally, the patch someone (can't remember who) sent out with the 'standard' +80x50 mode for VGA could be implemented in this code as an extra choice +but I can't remeber how one did it so could please someone send it to me, +and I can tuck it in at the end ... + +++++++++++++++++++++++CUT+HERE++++++++++++++++++++++CUT+HERE++++++++++++++++++ +begin 664 svga.tar.Z +M'YV04HH$(=*D"("#"!,J7,BPH<.'$"-*1 BBH@T:-$ J,@1AD:.%3UN!%E1 +MA@T9-RK6B#%#1@P8-V#8F,'QQ@T:,#;FG,BSI\^?0.O,H1-&3D4 : H/,&!),T;NK@ ;&F +MC!PW9=BX4*" "IHT:LF:10/B3AHV;$"4<1-&#!NQ>=[46=M6J-@PB->B!8$9 +M#IHP<=O833,&Q->P:N?4@0/GC1PZ90Z1K5R;3&F*!D7()+0*7PX +M,9FV<]K2!C$'S1O#;LYH%GLZ+6<[80XW?LQYN!BE=.BD$:T M&PZ:.5 EFPZ +M3![F>%:&Y@!ET1^MRDP1WSS<0:" +M;EU5I]^#=*S60E)UB&>?89F%T>$;"(K7&V+OP67&@>W!U0)<:="A 'Z%_746 +M".HEQT:':=0' F @G/7&@VYPYH9L&.I'11%2-*&8&W8 AYT<:6QWV1ACN$8& +M7&>P41M<%Z*%&'!^V57&BNJ!<)MI >)8QE=VB(6>6(O1(4>*1;H 1U)F'";G +M9\-A.$=?3#8!7!!L)*VVT"=<8.X;%669S@K"E&6:8Z<9PL,G11F]PM% G +ME=:9D50;^O7YF *=?AH&'"Z$0<9Y@"Z*6Y"^,;=::Z_-P<)]1MV!QGL&#O=H +MI'^^.6EB;#%'EGJL;B:>:/?EE]QK7$Z'J@XMI,!7F0^.5=99UA5U&6MLI!$; +M9?J]NN<;>U8)&PBJIO6K>=,56>FH>0R:I1PYMG9DMLW>9I2LKW;ZH[Z;9;EI +M=GB=9Y>K<-#K)YM#S7;9K+&QVI;!:TT,JL6/*<@@>\>Y<<)P:QAX1XUE<49& +MPG;9"L)G1LK&AE)K_)A?I5E*VEN1.[]QAAMIZ+'> +MK0C#T>FO:>07HZ5O6/CIMV=:=S" +M&NBY\*"W"M2KUK%UA$6&#GP%-%!!"23@%Y#UB>7"[0HXK&,9+HSA@MP)$-&U +M&2W42Z]_+Z0;%QXO"(T7&R^<)<<79,AA1_3U[=Z[ @C"U?OOPP<_?/$7HPE" +M\G#)]0*,=+S0O1O;8[B:Z.!C*CZFY'-G/OK+O_#=4B^0'ZP&U2I0Q6I6"0C" +MK&+4(\8P2V2O$M6F2%6@,L2F8WUIB[N\%+?AJ05 &PI2K\/&.@ RD( =I%148,DC9FR+OQI" +M*=2A2$20SQO/&(,;Z( &-M"!2]Z8@QS$0 $M""4BW: ]W^'E#HU\) B4 !J5 +M@$ &,- !#&(Y@Y3$H),R4( A=\G+7JI EX>D00Q80(.4\%(!%1E!6/IDGR=( +M(0E'^((5DD"$(CSA"U (PA&*$#L4J %CYQ#&J:VKN:X9C@J2 $,\)"#6:[1 +M6\E<)ES$XDQH2I.:UOQ"$YY0S6YZ$YRD'&?$F..MLYRQM #<3@&"= +MF((G")1YIGF"H)[1G&8UKSF$)S!A"B!( I&^LUP"K28#'X !]X*P43EV^$ 0LB+2D 24GDE)ZT)4J% 8X1>9.*]I3>VHTGU(-PA>$8-5_FE2K!#UG +M5Q/JSC HE:=--2M0HSK5(;05J^*$JSD-BE"6SG(,W@IE"T @3&*F1+$M$.M2 +M+8K1I^8SF]OL)F!/NE6Y%O:K-+@K6?/Z4ZCNLY\B=6M6!SI8E=)UH0U]*!XB +M*EF\7M2I9^6H1T&:6M4&EK5<_6Q+8QO3F8*@IC?-Z5B9>EN]0E6H1#4J20'Z +M6Y1ZUJON+ -Q9VL&T3*WLKGEJUJK>E7J-+5E+'!YLX(GDTBD;^Z$?PG/C%,(YQ578YQ-ZE +MLDBL+-*&.:F#E>@@!AFY90YRJ=@:F[(,J'0DCENYXUOVV)(HX>20@>G+*E,9 +M!#/( 3%M<-!=@E*4629F#D 6;%*%G62XH'RU&>&.;@ #4NLB )6,%$TBX4' +M0Z%2=-Z\1#J+=2AE(4V0/F.4>&U*#'4PPQ9>(@,:=&$'9J:S#B; UJP&P>,J @SW6($!U0I8*UM,'6GM9VKKLM'4"_9C5?F%89 +M5#UG7<,:!&+*>,BE[W+M2@1GFF% +M(GQAJ$9X0LN_B>X(52\-<1*V&U84I:Q3>?Z$DU?3"F,WKV"#B]T8 +M&&$($J7RL8])XQS@@ 4OR<@QBSQBQ,? VF6N"*!-Q.WZ2$=7;>SBMAS2=0U^:L^BQ +M58NVP:/[W6_>5]HH[2[*&8(MAS%LH0L@\/P>0" "_\$E@&@0P:^<4 4F, $$ +M?= ]XH=TE@ 7" >+!GV>URH[D #]QHA0 +MHG[L%P.0&#*>@H=#D09^6!$) "<^R!9?8!G34QVA&%)=TW(A@"9KL&EPLP=' +MV&YW(!99\DCTP3! <@:OYFUOD#0J('):V$M7%D=:5DD><4RBJ!X9DFMIH&I] +M8&:+18$$F'P'R'S.MXGPUX /6(+Z]W_52'X#:&GHAXG;Z'[PQX%%4'\C:((2 +M"$H@((_6:([*9P<9"'\,* ;7UQP0"(_B&("45X'MUHCYN('SUXX>. <@*(+@ +M>(+R*%9#.&P&)U9[H(:BYC-DP +1&&UO= ,V@'@XX&QE5HR$=TBP5(:P-&9B +MN%@N<7@R, ,>$7DA-8VBN'EX (=P-XE(Z 1U5P0ZA9,Q$H5+L6IP"#?#*%;3 +MZ&=T-H2'V"I%6&SO1WR+:&JH)@)+TB0]X# E0 9XT)7WMW0=]5&_LG0\YW.< +M1HF+B&F:UBJ_8FIL6(@)8)4H( )9@0(4#TTV"(^401QD4D$49@=&$E 4M1MF%IY&$VP65OU(4V4&*-24@IMD(61$)DJMZ0*GE !-X",Y9A%O +ME$DP4 .:=)NXE(5:>&4S0&T2QHSS*(IPD@!A@ WLQ?2^09VD !DX"O5*8^C2)_4B0;7 +MN4XP, />N82R,0:X<2UC,23ZB0>NL8;^*09HH)^2DP#K]!*QHU-S$ 9Q\B/& +M4B0M\QQ% @=Z,P9E\"L.PX?T(G#D,BB+M9_UN04PT 4LX)47RJ'T!QW'\3*&00;H$9$5H5/D,@9)8SYI]0);$01%PQPD +M@HOUT2?2\2P\)'"-8V;S69]W^I]_FIN+Q4:.A8:15:5;>$C-QFQJ@#^C6F0B(YZDX[6HG]EJ;#D:EM^J9R(!MQ&@:L +MLX@RZZL/BPJF> +M)[2;RA^=ZGZ@^AS$0:H1*F>G"@) .AQZZ!%':V;(^DLT9IDLD)+/]DM%EI)9 +M>@,R8*QJJ 9NH >,V#-TH'IOQT8#F@?6L5A' R]JZ(P J%-2D'$692=Y0#!M +M$3534Z0U=$/5,B&OV@+?D2M_0R3#$3GY 1IY4',^&JNM^#6D2S56^DB6)D@)[P92#)K '"[!L0 :5" ="@0;VB;$A +MA;_- ;#\.Y?PLK]+&U+5":QCX$Y5:R_YN8B/$08)($XLT 9S< :?M(@GP@9S +MV2MVTF\&4A=Y@+!P09WSJJXV0+48'*_EJZXXD$OV*@;Y&HQE4!LI# *\1/+!5>\#JRJ[N6I4#?)^5J+F[-[ (^\ A +M)<&P%F@U.@1HH:H@$ 14D 0@< *04@=I<0)5NR7 .@,7'%)P$E+E"JPPD -1 +M7 8W!,1P, =B4,1X$<.!5HD/',%I,*-ST!OB \.Z'%(-6LPAZ\H= LN46C9A6Y_J +MK*Z)%SNW[ ;^3,X)ZQ@'G'5(:>\-GG0!<'RG+#E"Z&(C08;N]@;C4".+=&)O=,C@ .730:< +M;0-);)U![<;I?-2LS-A;C=>Q'-:TW-?]_-<;?21JK=>*R[@&,@90+0=SW;$@ +M+=)Z+=8U2]("W:XLG=N[[:^(D0!R,!1)O=0Z+=-8LMM"H=,X3=T!',C?G!?A +MO,/CW&_-30?/7=0&K:[/W=N.48EI_:N'O99HH-CIZMF+*"N@K<0 JM5W'=)= +M+='.J);E/-2[C; 9S-S.K=2QX\ZA# )%$"?J,1?Z;,95/=K &A.SI-X-:JB% +MZMHA/;7$3=P1M(JC@%6C=;^09VM78DN0!OSXJ#QF<:#_-C3&P >#OB6''E*U?NO& +MG.NK' 9X[NM[GLC!?@:6 Z\54^S'G@;)+NOP(A;1W,8 .\YRK,,)H+C)+#6+ +M$=V#3,U?GLE!/L'JKLPZO=V3K.3>S>28_.5;'M.##&NXNJCXBN!-#05%(2N +M(18/SL^FK="#K*XW<,T)R^H >N+,;<=E@,=Z#.*XRNX]'O )'^]? ?(/4N]( +M?N\2KP;?+=2X2MXSGMIAGC140"5A43<+'^%77=P9O]KZ[=8/+=>Q/=82C0=G +M<0;].=@-C]45SO/ [=="K]Y%K]8>F_04C1DU.@5V AH!IQG9$I\+HQ__DS3@ +MJ19W$ 9S(.FS#=H4W>HR,*!X0:*.4Q3O\9XV>@>NT3:^:QKOT1M%6R.D,?7G +MSK@8(@9M?[-J$09K0?-U AQ7$"/.(>I?4RF%K!YKXXLQ.]^T+=!F -HZY1BX +MH1ZR<>I+3K]R0/@76GP"1_@(&]!T/7/>V6^04OHRL/JLC?34F?E-^[3$G?LN +MO,-]7"PTWV]3GN/]SN/4_.1U(O)+H?B;8O(\G>0IO_+__>0NC]I8$O-)2"32 +M_!M@BK$KY2Y#=KU18VNB 8T"$ ^Q;H<+_)0N3'AM$;'4 AI4O +M2*'<-!@9V!/-#X/]JU*CVZ(#()MU=P#JH0&C5[[:&QS[5[_P+M2T!$#TEN'1 +M6VN)4,WU-HC7XB#A<@.&=$#]:\!]M@VFQ(3=T-1 +M@CVVHW&?DJ$3LV%0;!%)L?^V!V$A6G1-.@4)F E$4@?JE\9 ))*B6:@&UB!7 +M ,V1R!5O9UU!J\ HDR3<$FM7.<"_7;R:!KTZ%X^P#^@A9JR,QE#5V 5>8#6( +M1"]0)6=1#*U=%>QD.Z\?;K!-(>[(8"\S=P,.',8 Q6@:C1EJC(32<#5N0]?8 +M"T=C.&2-<+"3O<9O&!OK6$C;C)S+9NU1TUXY;S"!>DK-^TPAC'28T>\'P80?MX!C$@G^@7?=A3A@%$,8N'(:',&,N0 14(OL$ +MPP#41NIUG1! A>H,1$=&>B8 +M3NMCBLQH-S)/Y#Y$6/=29>I++J84PH6%6 ZO2YQX&Z;A&@)&?=@2WB8T[$B&. +MN& &PL!\P UV 6%5!"= @_!#PD18+;,,)"U#R OJG#%[G4B->(:X(G<\>R?6A'98,W8ZK=G9Z\I0 +MKSL\(#/:B0$\1T;()_@T9L-$MN"$TSDWJR>SVYI^2DOAN1HP,H6G;%E6]Q-Z +MSH2]R3W7B>'"HP':$R/SJ6^ +M-F>_H6::#&6&RTTH3#PH%94!^ V*6C.W.47Q Y@(V, SWW16R)&A4D8E2UT +MKB7,SS72^ZC9[E256J(I5M$RVA*>Z$PSGIBPBXY1*^I%P6@9C0$L:\6QD;A) +MS8A<@^.B<52!SIP,&J#.J""5 >/S?F*$2$I%R:AL^:)8=(T"4OX9 RCI#EDC +M%72,AD9WMQ@R&2)EE8H4EO!/&3 R]^@?U9J8-)3ZT4N*0QVI8&1E:]2'"E(: +MVDA0WX0-)CV/0JZ23_HS/&D[ J7TE)B.DP#:1^% +MI'0TBQY3[7=*E^4MM:47009P4%3,?A1%631;VHC:M2-:D<*R*LX(&2 HS:%QT29)!.%$2-(Q2;0 +M!,S486 "A1,Q+D$&@":1>A5&TXHI35:!Q=#4G9I11X!/_:E -:@*U:%*5(NJ +M43VJ2%4!C "EFH2H)/B2?$3A+_8]?O'U*H5'K1C- F>(A<"(5'P7!_$]T2'C +MC8"GNAGH&P/Q$33"87#5,P(F8!F4 +MQG\[F!6"/X O[[4VK.K$ %])HEFH56-6 _;"4D6JD#6R2M;)2E3YPF*E<36 +M#\15/B!%? @74 )0 <6M:X"_>H$& +MFUV=0W(5KFL@!NC6)P %(JP,6+%1(,+.@!4K!2(L#5BQSE%KF%<-FW)T@!V@ +M R-@!N@ /!#_XFLATZV6I/GHUF,Y!N9 @_@5,^^!T@% J_U^10K45#APK):);GDG4L.N."?K8CF +M#+[76>HBK]D8JH-=@(RK>D+R[%CU#VOB2G(&UL!Y](.P4"1<;VE^#,E@%*ZJ +M8ZVR63;6REJCRD3&JB/ABZ\ATH8PIGIG^]5E':C8-;2.UM)Z6M] :M4!JQ78 +M0HH36UMO:VZ-K;PUO@+7$3M=*!J"KA=T"T[6ZUM;K&E]) +M%'?UKN#5O(K7VDI>S2N W0+IUNP7:;1O@K[75 +MO\I7>ZL#!FQ]-; Y ,'*UH&Z8$EL:'VPQU+"4M@U\&TQ[!K@MQS6P\I6$"MB +M':X.,+&U%<6JV-C*8ETLC)6Q--;&XE@=H&,9DFYM CX6R I9(AMLS>L80+(Z +M0,G&5B8K;V4KE-VV4I;*VMI'FVMYS:X=JW2VP0%:YB# +M;-- D(TERS;D-EOS^FQW:\V=ML*5N.H XXIM:^O/Y;;>5KI25SA 8W:#;JV=$$07-AA= +MUC%6>VWNJ ^$"* +M!L*+=P^O#$B\+:'A-EX@&W$AKVR]KA1W\F98M=MADVOFI;;QE?/.U@@[MWMNXVZZ30[KE^"JUWD+?P-LS>V[AO?OLMO]*G@'+O\EL#L +M=P)@&B" '2P!?KP3M^(N8/';@#]LA.VXFW?==EX*_'E-[NA%N:=7Y:Y>EMMZ +M>2SLE;FSM^;:7A2<35JEK;*GN:@W%6;?S;EW<6H2E[1$.N];VN$+B[QM^96L4)K^AU?S*5O1[ +MA?5PORVO[-<+;V'92F_-V-[%M_-7#,O6^UN&]V_[+;R+9@?@T,2+0]MP=G6\ +M$C?R)N#:2GD9\.5]P!Y7 GM>DGN!3V[I3;FI=^6V7$,\@F\ZP0BBF >78A\\ @!R*IZMJ[CK6M_?^HJSKQ*N +MQ]WV":M=<7N :ZXNW@*\>!7[XG8;C.&M^^7"]?88AU8PO&B4\2^6K_AW"^A? +M@@N-"RQ&H,9LF/&Z80B;C2OR-KZP<]@66UX'?(/8 OOA# R(.; @ +M_L"$. 2_WG: 1=]\6/&7YPM"-P;J6!B=='6)G^?'2%;2$=@,: +MVD)X?-U 8#QA 9D4.U^KBY8/,FT=PJP8VAIAS9N$MR]$3KOBER)O 7);?M\N +MNM7(6=CN#N.\&Y+C+S+6M_47\*;DE7R&#^X)2[PGS!H_W#=RY.7&.1G< +M[F0['&)]PR,!8"^/= +M["R2Y6LR)M++F P?:3.P?NX-]>'.SV;EN\.5LM[VNHJ +M6S]MG 4U64B'84Q]DHUT +M_D727K@E(UQ0G0-$-4V&TI<9)YMJG5R'-RY\#L>@F56+9E=-FHMR?I;5^YE6 +MKV9$?*OA\9F&RE)Y6K/I!/VK+S%3?6I1S5=4:*7+H06MB&X)2"V6&.M1W'R3 +M]=4-PJJ811]GA@RM'_*:3M3.F5%CZUVLK0$U=<[4W=HC8V=P?6]'\J7NSD5Z +M,:-KCZRN$6]ME4GNN@"3:LP\KS5SO<:\]SH/K^H*O*4Q<+^&U?_Z-*=F=FRK +M 70\1M/S>%<;: 2-CXLNL"Z^_'@>V6F,#7TWMD > 1X;^JYHE]VB!_6+CM8Q +M^E"W8!J]J*VU95[9&+EESUT>+:E_M#$VS#:;.]M?37VN.76Z#L\M 0#+@* - +MA[6QE*Z\1QL<*^V0JZ7+<9?&SQU8'1?B,4VPK?;!'M!J6F%+8MN,E=]TAI8# +M?I9E9>(Z :(]\<66 3U4R)IM9 U]3[&07=O4UUF3[+=MLD4WW;[%T!E'2^=> +M')BO\[<&TN'Z, ]IG VSS;5*WMD"-CQ/XWD[ QAW98[2I1IROV*4Q#8#)UAM>K^?V3*^W=ZJ6SY1;7]=G\.VO,W>8WMRUVGP[ +MY=N+M6-SZ);;M/D%=VU+?'2=VIM]W8(Q3Z/M #X"V!7(1L@%W.NZ;5@,MPUU +M[T79U1H7/_!LK:.W=?'VUGY;.ROO<V8LG:^9MN5^U9A;/T]MSOV?SS<-1]@$&H=SV_6]PQ?TA59F7UD3 W&T_+]- +M-!%ORP2<;8_L UZR[?+)_MW/^5I'9RK^J*^XS#[>?SM(;_&23*Z9\:9VQH<; +M#3_FVAJ99?(U'M6..WM3:%C/$AIG20JYGIXE*!HE'/$_G;N5^+/FW8[<=R_P&MW &S4$M^)\ +M6S!CN)=W!G?>C+E3'UR4 *IO@!E/Y40[C;/R-?YQV_CWOL^F67,K95O> +MFG$Y;$[8>GQA]W'3/;^KFYT>YK5$B,-(%!W0<7>@=N:[FXGW[GP.Q1FX%+_( +M&1F;2_"^#9(S>?+NYES\FW]Q4![&T7 M <#FW)1/YG=]QMES9LZX:OQ*M_-7 +MOL+AN?B6Y_V9*1?L 'W'0;?6SN%^=/#I[1,$Z@QHO7XS[I +MDD["C;8)9^=96H4W;9<>J\>WP/;/]1Q7UW1=K;YUN$YWWW\EQ&Z4E?HT;RI3_.Z_= =-?'.YL8[BU=JDDQ_N[@G+]PW2#_/)!V=H_%5;J^Y]^3>PVK]C3_M. ZPYW@,O^5R/9?;]+J>TTOW +M3@?F(GJ8AV)CCK8#>T&^W4?]H"=U[*N?F6=V; +M;W7,WM4/[O0FQM7[LX]UT6[2BS9*7^M#G2 C/M!7JQE9YLW:L/_W)J[ %?6 O]M0 +M/6]+];V-X"/[N[>'?^>7.YZ_\'D. +MU\NTB9?M=#W%OW,NX",YD"_P +M4;V20W8L?N07/&4WR9?]P6?V@BO&)WS K? S66AS][+^W4M[*U_I5QZ6LW41 +MO^5C>M6VXV >Q8MN%4_F\3IN1_."5*"S>:OKYH-[81_N")S'!W@?;^<=.$37 +MV^IWSU]R!:_),3HGM^R$6]!7]PX^Q@]]E%?/&9[*.WJT[LXE?99_Z94>O9=X +MFI[IV3MM9R((AJ=*^VE/[:N]M;_VV#[;:_MMS^V[O;?_]N ^W(O[<4_NR[VY +&/_?H?BH + +end +--[0302]-- + +[0303] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 01/06/92 14:08 (30 lines) +Subject: Re: SVGA-alphanum. modes +Date: Mon, 6 Jan 92 13:53:39 -0500 +From: tytso@ATHENA.MIT.EDU (Theodore Ts'o) +To: d88-man@nada.kth.se +Cc: Linux-activists@joker.cs.hut.fi +In-Reply-To: d88-man@nada.kth.se's message of Mon, 6 Jan 92 17:43:12 +0100, +Reply-To: tytso@athena.mit.edu + +TSX-11 FTP server update.... + +d88-man@nada.kth.se's SVGA patches: + + ~ftp/pub/linux/patches/svga.tar.Z + +edpart and pdisk have been uploaded from wuarcive and placed in: + + ~ftp/pub/msdos + +A quick summary of xterm/VT100 escape sequences can be found in + + ~ftp/pub/linux/info/xterm-seqs.ms + ~ftp/pub/linux/info/xterm-seqs2.txt + +I uploaded the last because it might be useful for people wanting to +hack on the console driver. In particular, it would be neat if ESC [ ? +3 h switched the screen to 132 column mode, and ESC [ ? 3 l set it back +to 80 columns. hint, hint. :-) + + - Ted + + +--[0303]-- + +[0304] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 01/06/92 14:46 (44 lines) +Subject: Re: lp support (Alpha level) +Date: Mon, 6 Jan 92 14:31:59 -0500 +From: tytso@ATHENA.MIT.EDU (Theodore Ts'o) +To: linux-activists@joker.cs.hut.fi +In-Reply-To: [281] +Reply-To: tytso@athena.mit.edu + + Date: Sat, 4 Jan 92 15:42:01 +1100 + From: Bruce Evans + + >getgroups() is an optional POSIX system call, derived from BSD systems: + + I thought it was a required POSIX system call. + +I stand corrected. It is required; I was getting confused by the fact +that NGROUPS_MAX can be 0, which means that there is no supplementary +groups support, and getgroups() will then also always return 0. + + Minix has { return 0; } for getgroups. This is good enough for fileutils + to work. + +I've fixed it by actually implementing getgroups() and setgroups(), as +well as POSIX_SAVED_IDS. Patches have been sent to Linus; if you want +to look at them, they can be found in TSX-11.MIT.EDU in +~ftp/ALPHA/job-control/grppatch.tar.Z. The patches are relative to +Linux 0.11 + the job control patches, but they shouldn't depend on the +job control changes except for silly things like system call numbering. + +Note that programs which use the getgroups() call will depend on the +size of gid_t and will need recompiling when/if it gets changed. gid_t +is currently a unsigned char, but I would strongly recommend that at +some point we change it to be an unsigned short (at least). The problem +is that if we do this, all programs which use the stat() or fstat() +system call will also need recompiling. + +Another change which is similar is MAXHOSTNAMELEN, which is currently 8. +To change it to something greater (I would suggest the BSD value of 64), +will require that all programs which use the uname() system call be +recompiled. No big deal, except that /bin/sh is one of them. + +Neither of these are particularly important to make, so perhaps we +should batch up all of these changes and make them at some future point, +at which point everyone will have to recompile all their binaries. + + - Ted +--[0304]-- (pref = [0281]) + +[0305] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 01/06/92 14:53 (13 lines) +Subject: Re: SVGA-alphanum. modes +Date: Mon, 6 Jan 92 11:45:27 PST +From: pmacdona@sanjuan.UVic.CA (Peter MacDonald) +To: d88-man@nada.kth.se +Cc: linux-activists@joker.cs.hut.fi + +It was I who sent out the patches to get to 50 line mode. +I also implemented the Virtual Consoles coming in .12. +Note that it would be desirable to run a windowing system in one +VC and be able to switch to other text-mode consoles. +This means not using the bio (yuck) or finding a way +to use V86 mode to do the switching. This would be nice +because it is a step towards DOS under Linux. + +--[0305]-- + +[0306] daemon@ATHENA.MIT.EDU (John T Kohl) Linux_Activists 01/06/92 15:00 (15 lines) +Subject: Re: 486 problem +Date: Mon, 6 Jan 92 11:52:59 PST +To: nicholas@cs.uwa.oz.au (Nicholas Yue) +Cc: linux-activists@joker.cs.hut.fi +In-Reply-To: [128] +From: John T Kohl +Reply-To: jtkohl@cs.berkeley.edu + +I finally found and corrected the problem I had with booting a 486/33 at +full speed. + +The problem was the BIOS "Fast A20 Gate Option". For UNIXes, this +should be DISABLED; for Mess-Dos, it seems to make no difference. +[A droid at the computer store said it has something to do with DMA] + +John +--[0306]-- (pref = [0128]) + +[0307] daemon@ATHENA.MIT.EDU (Mika Matti Jalava) Linux_Activists 01/06/92 15:51 (18 lines) +Subject: The partitioning problem +From: Mika Matti Jalava +To: linux-activists@joker.cs.hut.fi +Date: Mon, 6 Jan 92 22:44:55 EET + +Oups, I seem to be forgetting the basics. I think I sent my previous +posting to someone personally instead of the list. Whoever it was, +sorry. + +Anyway, how are the bigger (>32M) partitions meant to be formatted? +Now I know where to get a program to make them, but... Is there any +way other than getting a new dos (I have 3.30)? I am not going to pay +any more for dos than I've already paid, especially now that there is +linux for free! And actually, is even a newer dos a solution, haven't +they got the same 2-partition limit as the older ones, the partitions +just may be bigger? So, what program should I use to format these +beasts? + + Mika +--[0307]-- + +[0308] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 01/06/92 16:39 (41 lines) +Subject: Re: SVGA-alphanum. modes +Date: Mon, 6 Jan 92 16:30:43 -0500 +From: tytso@ATHENA.MIT.edu (Theodore Ts'o) +To: pmacdona@sanjuan.UVic.ca +Cc: d88-man@nada.kth.se, linux-activists@joker.cs.hut.fi +In-Reply-To: Peter MacDonald's message of Mon, 6 Jan 92 11:45:27 PST, <9201061945.AA12593@sanjuan.UVic.CA> +Reply-To: tytso@athena.mit.edu + +I suspect that you would want to use the raw I/O instructions to do the +switching, and not try to use BIOS in V86 mode. I really don't know if +I'd want to trust the BIOS, and in any case, if you want real speed, you +will want to be talking to the VGA card directly anyway. The X server +in the X11R5 tape already has code to talk to a couple of Super VGA +cards; it probably shouldn't be that hard the kernel mods integrated +with VC changes so that you can switch around. + +I've thought about what it would take to add V86 tasks; since each V86 +task requires that it has 0-640k in Virtual space (you can't just give +it a segment), each V86 task would need to have its own set of page +tables that would have to be swapped in when it was running. While this +would be tricky to implement (the task switching code would need to be +changed --- carefully), it has the advantage that we could at the same +time get rid of the 64 process limit. For the 65th through 129th +process, we simply use another set of page tables, and so on. + +We'd also want to intercept all of the BIOS and DOS interrupts and +replace them with blocking versions of the calls, so that the MS-DOS +tasks can run efficiently. Yet some programs will try using the raw I/O +instructions, and in order to handle them we would need to trap +attempted I/O instructions and attempt to emulate them. Then's there's +all of the memory-mapped video that would need to be emulating by +putting in hooks to the VM code. + +All-in-all a pretty big job.... + + + - Ted + + + + + +--[0308]-- + +[0309] daemon@ATHENA.MIT.EDU (Ari Lemmke) Linux_Activists 01/06/92 17:32 (14 lines) +Subject: SVGA-alphanum. modes +Date: Tue, 7 Jan 1992 00:23:45 +0200 +From: Ari Lemmke +To: Linux-activists@joker.cs.hut.fi +In-Reply-To: d88-man@nada.kth.se's message of Mon, 6 Jan 92 17:43:12 +0100 <9201061643.AA21121@dront.nada.kth.se> + + +d88-man@nada.kth.se: +>I have uploaded this code to both nic.funet.fi and tsx-11.mit.edu. + + nic.funet.fi:/pub/OS/Linux/kernel/svga.tar.Z + + + arl + +--[0309]-- + +[0310] daemon@ATHENA.MIT.EDU (Ari Lemmke) Linux_Activists 01/06/92 17:34 (25 lines) +Subject: VT102 codes +Date: Tue, 7 Jan 1992 00:30:03 +0200 +From: Ari Lemmke +To: Linux-activists@joker.cs.hut.fi +In-Reply-To: Theodore Ts'o's message of Mon, 6 Jan 92 13:53:39 -0500 <9201061853.AA07025@tsx-11.MIT.EDU> + + +>A quick summary of xterm/VT100 escape sequences can be found in +> +> ~ftp/pub/linux/info/xterm-seqs.ms +> ~ftp/pub/linux/info/xterm-seqs2.txt + + Also VT102 codes available at + + nic.funet.fi:/pub/doc/HW/terminals/vt102.codes + + I'm collecting all hardware documentation I can get ;-) + especially interested in different PC cards and their + dip-settings. + + Also I'm going to put available my drivers (sources) + collection (for different PC and non-PC devices/cards). + + arl + + +--[0310]-- + +[0311] daemon@ATHENA.MIT.EDU (drew@hazelrah.cs.Colorado.EDU) Linux_Activists 01/06/92 22:01 (134 lines) +Subject: Re: SVGA-alphanum. modes +To: tytso@athena.mit.edu +Cc: d88-man@nada.kth.se, linux-activists@joker.cs.hut.fi +In-Reply-To: Your message of Mon, 06 Jan 92 16:30:43 -0500. +Date: Mon, 06 Jan 92 19:47:25 MST +From: drew@hazelrah.cs.Colorado.EDU + + +-------- + + I suspect that you would want to use the raw I/O instructions to do the + switching, and not try to use BIOS in V86 mode. I really don't know if + I'd want to trust the BIOS, and in any case, if you want real speed, you + will want to be talking to the VGA card directly anyway. The X server + +I disagree. The actual mode setting will be called ONCE when the +Xserver initializes. Initialization code for all different VGA cards is +often radically different - with registers spread all over the place, +with different values and functionality. Saving a few hundred clock cycles +one time on a machine with 20 to 40 million is not a big deal. + + + in the X11R5 tape already has code to talk to a couple of Super VGA + cards; it probably shouldn't be that hard the kernel mods integrated + with VC changes so that you can switch around. + + I've thought about what it would take to add V86 tasks; since each V86 + task requires that it has 0-640k in Virtual space (you can't just give + it a segment), each V86 task would need to have its own set of page + tables that would have to be swapped in when it was running. While this + would be tricky to implement (the task switching code would need to be + changed --- carefully), it has the advantage that we could at the same + time get rid of the 64 process limit. For the 65th through 129th + process, we simply use another set of page tables, and so on. + +The appropriate CR is stored in the task state structure saved by the 386 - +so switching can be basically automated. You have some inteligence to +share the BIOS and manage the IO bitmaps though - to prevent contention +problems. Also, V86 tasks can only address 1M + ~64K (address carry +present in 286's and above), requiring at most 256 + 16 second level +table entries, meaning a single secone level table (1024 entries +MAX per table) and first table entry. Spares for video memory bank +switching are also desireable. +(Excuse my terminology -= I can't keep tables and directories straight) + + + We'd also want to intercept all of the BIOS and DOS interrupts and + replace them with blocking versions of the calls, so that the MS-DOS + tasks can run efficiently. Yet some programs will try using the raw I/O + +DOS does not need to be trapped. You run one copy of DOS per VM - this saves +MANY reentrancy problems, etc. As far as what needs to be trapped - + +1. Disk BIOS should write to the Linux routines, with extraneous routines + trapped - ie no go for format, etc : we want a minimal functionality + first. + +2. Video set mode int 10h function 0 should be trapped for mode, and + only allow VALID VGA modes, the setting of which will be sent to + the Linux window program (outputing to X11) All other BIOS + video accesses are OK except perhaps the set palette, which + we would probably only emulate at the register level (eventually) + and let BIOS do it's thing. Also, we need to keep track of + state for text / graphics. + + +3. Any BIOS routines that talk to registers that are NOT being emulated. + A simple solution would be to block any and all BIOS calls, a better + solution would be to change IOPL once in BIOS and cause all read / + writes to fault -, setting a blocking flag. If the blocking flag is + set, you wait until it is cleared by a ret / iret from the BIOS code. + +Video RAM access is handled by having a buffer allocated for each machine. +Text, and CGA are no problem at all - these are not bank switched, and +lack the special EGA / VGA ALU / barell shifter, plane mask, and +bank switching used for 16 color modes. Each task has its own +video memory buffer. You after a refresh alarm expires, you +look at the accessed bits in the page table and update those regions that +have changed. + +Trapping interrupts in DOS : +Not overly complicated. When an INT, INT3, or INTO opcode is executed +in a vm task, it creates a general protection violation. When you trap this +fault, you examine the VM flag in the flags on the stack. If it +is set, you use your special DOS handler which looks for one of these or +other IOPL or VM sensitive instructions and perform the appropriate +emulation. + + + instructions, and in order to handle them we would need to trap + attempted I/O instructions and attempt to emulate them. Then's there's + all of the memory-mapped video that would need to be emulating by + putting in hooks to the VM code. + +Other stuff for a complete emulation of real mode : +trapping of EGA / VGA Palette, panning, and palette registers. +trapping of "normal" PIC mask register, timer ports, keyboard +registers (tie to the ttyp of the Linux proram) and eventually maybe +serial / parallel. + +It is a nice idea, and would make an incredible summer project +after some one has ported X11R5 to Linux. + +Virtual 8086 mode allows you to use almost all of the BIOS and any DOS +or other real mode OS underneath this mess. You have a few interrupts +that need dealing with, the hardware interrupts to simulate, and +some ports to trap, but other than being an exercise in protected and +VM program - it should be not overly difficult, just time consuming. +----------------------------------------------------------------------------- +I'd be more worried about getting X11 up in the first place as distribution +for R5 is around 150 megs. The two possibilities I'm looking at right now +are + +1. It is possible to use + NFS servers over serial lines. A direct link, at 38.4K baud + could be made to a machine with disk and build done locally. + I think one such NFS program is PPP - are there others? + + How soon until sockets, rpc, etc are implemented on Linux? + +2. Large local SCSI disk + I've been offered a 340M SCSI drive real cheap (locally), + and am getting there on my SCSI drivers - after Winter USENIX is a + definite possibility for completion. + + +For work, we're currently installing X11R5 on our HP 68k Unix boxes - +I'll see how soothly it goes and take a look at the Xserver code +to see what needs changing. + +Again, a lot of goodies like X hinge not only on some one having enough +disk space to do a build, but on availability of key Unix networking +related features....... +i + +--[0311]-- + +[0312] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 01/06/92 22:33 (65 lines) +Subject: Re: SVGA-alphanum. modes +Date: Mon, 6 Jan 92 22:25:05 -0500 +From: tytso@ATHENA.MIT.EDU (Theodore Ts'o) +To: drew@hazelrah.cs.Colorado.EDU +Cc: d88-man@nada.kth.se, linux-activists@joker.cs.hut.fi +In-Reply-To: drew@hazelrah.cs.Colorado.EDU's message of Mon, 06 Jan 92 19:47:25 MST, +Reply-To: tytso@athena.mit.edu + + Date: Mon, 06 Jan 92 19:47:25 MST + From: drew@hazelrah.cs.Colorado.EDU + + I disagree. The actual mode setting will be called ONCE when the + Xserver initializes. + +Well, it would be called when the X server initializes and each time you +switch bach and forth between Virtual Consoles. I suppose you are right +that it won't be called enough to make it worthwhile. I still would be +nervous about the BIOS code doing something funky like messing with the +interrupts and what not, but that's probably just an irrational fear on +my part. + + DOS does not need to be trapped. You run one copy of DOS per VM - + this saves MANY reentrancy problems, etc. As far as what needs to be + trapped - + +Well, in my conception DOS calls would be trapped and emulated by +calling the appropriate Linux filesystem routine, so that DOS programs +would be able to use Linux filesystems and Linux devices. Once we get +the MS-DOS filesystem working in Linux, it could even get to MS-DOS +filesystems that way. (!) + +The first cut implementation probably would just run native DOS in each +task, though, since that is much easier. + + It is a nice idea, and would make an incredible summer project + after some one has ported X11R5 to Linux. + +Agreed; this would be a very big project! You actually don't need to +port X11 R5, though. It could just be done on top of Virtual Consoles, +and in fact it may be easier to do it that way, and worry about the X +interface later. + +We probably shouldn't worry about it too much until after we get Linux +in a much more polished state, though. + + I'd be more worried about getting X11 up in the first place as distribution + for R5 is around 150 megs. + +Well, you don't need to grab the whole thing. The X library is 3 meg, +and the Xt toolkit is another 1.1 meg. You may also need the Xmu library +which is ~350k. Then the device dependent portion of the X server is +800k (and you don't need all of it), and the device independent portion +of the X server is 1200k or so. (All of these sizes are source only, +with no RCS directories). + +A lot of the X11R5 distribution are big, (somewhat) useless things like +games and demo programs, and then there are the big, slow, and really +useless things like Motif. If you strip out all of those programs, X11 +really isn't as big as you might think.... + +All of this really doesn't matter until we get sockets and networking +running, at which point SLIP, NFS and SCSI support might be in the +kernel already, making the whole space issue moot. My, it's nice to +dream, isn't it! :-) + + - Ted +--[0312]-- + +[0313] daemon@ATHENA.MIT.EDU (Stephen. Clawson) Linux_Activists 01/06/92 23:10 (14 lines) +Subject: tseng et4000 detection +From: sclawson@cadehp10.eng.utah.edu (Stephen. Clawson) +To: linux-activists@joker.cs.hut.fi +Date: Mon, 6 Jan 92 21:04:19 MST + + I just installed the svga detection patches to the kernel, and +while it is *very* nice to be able to use a bigger screen, the auto +detection didn't seem to work on my system. I'm running a 40Mhz 386 +with a Diamond Speedstar Plus HiColor, which uses the Tseng ET4000 +chipset. Has anyone else had this problem? I had to force the system +into realizing I have a tseng card to get it to work. + +steve + +// sclawson@cadehp0.eng.utah.edu - University of Utah +--[0313]-- + +[0314] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 01/07/92 00:56 (25 lines) +Subject: Re: SVGA and the kitchen sink. +Date: Mon, 6 Jan 92 21:49:06 PST +From: pmacdona@sanjuan.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + + +Two things. First I think bios and therefore V86 access will be required +if for no other reason than because two many clone vendors rely on it +to deliver "compatibility". + +Second. Before X11 can even be looked at, another feature will be +required. That is, shared dynamic linked libraries. I just finished +working on a Decstation 3100 for 6 months using Ultrix which does +not have this. The executables are monsterous, and the only thing +they eat more of than disk space is memory. Plus, if Linux is to +be distributed over ftp, and we wish to permit access to distributing +binaries, then much net-width can be saved. But most of all, since +Linux is fast evolving, if we want to avoid frequent recompiles of +all utilities every time a library routine changes (such as job +control requires) then we better get shared libs fast. + +The moral of the tale is, if anyone out there is currently idle, +and knows something about compilers, and is willing to tackle +shared libs, please step forward at the sound of the tone. + +^G +--[0314]-- + +[0315] daemon@ATHENA.MIT.EDU (Rwo-Hsi Wang) Linux_Activists 01/07/92 01:34 (15 lines) +Subject: The way to X11. (was Re: SVGA and the kitchen sink.) +From: rhwang@cs.utexas.edu (Rwo-Hsi Wang) +Date: Tue, 7 Jan 1992 00:26:57 -0600 +To: linux-activists@joker.cs.hut.fi + +Peter (pmacdona@sanjuan.UVic.CA) wrote: +> Before X11 can even be looked at, another feature will be +> required. That is, shared dynamic linked libraries. + +Could someone give us a list of features (preferably in the order of +implementation precedence) that are required (and yet to be implemented) +before X11 can be ported to Linux? I'm curious about how far away +Linux is from X11. Thanks! + +Regards, +Rwo-Hsi +--[0315]-- + +[0316] daemon@ATHENA.MIT.EDU (SMTP@FINHUTC.hut.fi) Linux_Activists 01/07/92 02:19 (43 lines) +Subject: Undeliverable Mail +Resent-From: dyslexic jim the domain mangler +Resent-To: linux-activists@joker.cs.hut.fi +Date: Tue, 07 Jan 92 09:11:16 EET +From: +To: + + + +----------------------------Original message---------------------------- +FINHUTC.hut.fi unable to deliver following mail to recipient(s): + +550 Host 'joker.hut.cs.fi' Unknown + + ** Text of Mail follows ** +Received: from Finhutc.HUT.FI by FINHUTC.hut.fi (IBM VM SMTP R1.2.2MX) with + BSMTP id 8017; Tue, 07 Jan 92 09:11:15 EET +Received: from VM.TEMPLE.EDU by Finhutc.HUT.FI (Mailer R2.08 R208004) with + BSMTP id 8016; Tue, 07 Jan 92 09:11:15 EET +Received: by TEMPLEVM (Mailer R2.08 R208004) id 2523; + Tue, 07 Jan 92 02:11:09 EST +Date: Tue, 07 Jan 92 01:47:54 EST +From: "jim wiegand[v5068u].vm.temple.edu" + +Subject: lp support & daemonology +To: linux-activists@joker.hut.cs.fi + +hi all; + I am working on a print spooler daemon to go along with the lp driver +and have a question about the general init/rc thang. I have installed a test ve +rsion of my spooler ( it's really an exec that has the personality of a daemon +:-) ) in the /etc/rc file but the question is this: + When a person logs out of bash, the lpd is still busy opening & deleting +files. i.e. it is not safe to turn of the machine & it is possible that it may +seem like nothing is going on. so, is there/will there/should there be some sor +t of rc0 like AT&T uses for shutdown? what do you folks w/uucp do? will this be +in 0.12 & if not it might be a nice project after the lp is mature. + I have fixed up a bunch of bugs in the lp driver & will post a new versi +on in a day or so. The lpd uses a printcap file & reads the disk as little as +possible to build its queue. The lp should be Posix-compliant and will have a +lot of the features of the BSD lp filter: tab-expand, margins, form size, & +font, all printcap set. What won't be for a while is queue control. + && thanks for all the info & replies. + v5068u@vm.temple.edu jim wiegand +--[0316]-- + +[0317] daemon@ATHENA.MIT.EDU (d88-man@nada.kth.se) Linux_Activists 01/07/92 03:25 (20 lines) +Subject: Re: tseng et4000 detection +Date: Tue, 7 Jan 92 08:58:23 +0100 +From: d88-man@nada.kth.se +To: linux-activists@joker.cs.hut.fi, sclawson@cadehp10.eng.utah.edu + +Linus has had the same prob. The strange thing is that the code to do the +'guessing' is taken from a book/vga-doc files that says that it has been +tested to work properly ! If anybody knows how to do it please let me know. +I have read the postings about BIOS or no BIOS in SVGA-handling, and I would +just like to say (in my deffence :-) that this is just a small hack to help +people having bigger screens (remember Linux is still beta-version) and it +is not meant to be installed for good. I will work on a stand alone program +to do mode-switching from a runing shell, it's just that that is A LOT more +work. This code was finnished in a rush, mainly to let people test the 'feature' +and to test the somewhat inconsistent card-detection code (I do only have one +card to test on :-) And for that purpose the BIOS can be used since it's just a +int-call from the setup which is running in native mode so the BIOS-call there +really do no harm, it's just a MUCH more simple way of doing it instead of +doing direct I/O to the card. And by all means nobody is forced to use the +patch :-) +/Mats Andersson (d88-man@nada.kth.se) +--[0317]-- + +[0318] daemon@ATHENA.MIT.EDU (d88-man@nada.kth.se) Linux_Activists 01/07/92 14:28 (75 lines) +Subject: SVGA... +Date: Tue, 7 Jan 92 19:23:33 +0100 +From: d88-man@nada.kth.se +To: Linux-activists@joker.cs.hut.fi + +Hi again, + +I'm getting more and more confused about this, trying out the code on a +computer at the place I work it detected a Paradise as a Genoa ! And if one +looks at the code for Genoa this is mighty impressive how it could ! +Anyway here are two more versions of the Tseng detection, since I guess +most people have Tseng or Trident those might be most interesting to have. +Just change the old Tseng part to one of these and try. Please let me know if +you get either of them working. +/Mats Andersson (d88-man@nada.kth.se) +------------------------------------------------------------------------------- +Attempt #1: + +notrid: mov dx,#0x3cd ! Check Tseng 'clues' + in al,dx ! Could things be this simple ! :-) + mov bl,al + mov al#0x55 + out dx,al + in al,dx + mov ah,al + mov al,bl + out dx,al + cmp ah,#0x55 + jne notsen + lea si,dsctseng + lea di,motseng + lea cx,selmod + jmp cx + +Attempt #2: + +notrid: mov dx,#0x3bf ! Check Tseng 'clues' Acoording to + mov al,#0x03 ! Ferrano + out dx,al + mov dx,#0x3cc + in al,dx + mov dx,#0x3b8 + and al,#0x01 + jz even + mov dx,#0x3d8 +even: mov al,0xa0 + out dx,al + call setATC + inc dx + in al,dx + mov bl,al + call setATC + mov al,bl + xor al,#0x10 + mov bh,al + out dx,al + call setATC + inc dx + in al,dx + mov ah,al + call setATC + mov al,bl + out dx,al + cmp ah,bh + jne notsen + lea si,dsctseng + lea di,motseng + lea cx,selmod + jmp cx +setATC: mov dx,#0x3da + in al,dx + mov dx,#0x3c0 + mov al,#0x16 + out dx,al + ret + +--[0318]-- + +[0319] daemon@ATHENA.MIT.EDU (Ari Lemmke) Linux_Activists 01/07/92 14:32 (27 lines) +Subject: lp support & daemonology +Date: Tue, 7 Jan 1992 21:22:31 +0200 +From: Ari Lemmke +To: linux-activists@joker.cs.hut.fi + + +From: "jim wiegand[v5068u].vm.temple.edu" +Subject: lp support & daemonology + +hi all; + I am working on a print spooler daemon to go along with the lp driver +and have a question about the general init/rc thang. I have installed a test ve +rsion of my spooler ( it's really an exec that has the personality of a daemon +:-) ) in the /etc/rc file but the question is this: + When a person logs out of bash, the lpd is still busy opening & deleting +files. i.e. it is not safe to turn of the machine & it is possible that it may +seem like nothing is going on. so, is there/will there/should there be some sor +t of rc0 like AT&T uses for shutdown? what do you folks w/uucp do? will this be +in 0.12 & if not it might be a nice project after the lp is mature. + I have fixed up a bunch of bugs in the lp driver & will post a new versi +on in a day or so. The lpd uses a printcap file & reads the disk as little as +possible to build its queue. The lp should be Posix-compliant and will have a +lot of the features of the BSD lp filter: tab-expand, margins, form size, & +font, all printcap set. What won't be for a while is queue control. + && thanks for all the info & replies. + v5068u@vm.temple.edu jim wiegand + + +--[0319]-- + +[0320] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 01/07/92 14:34 (13 lines) +Subject: VC final patches +Date: Tue, 7 Jan 92 08:48:38 PST +From: pmacdona@sanjuan.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + +I mailed the final VC patches to Linus two days ago, and I just heard from +him that he never got them. I had both mailed a single big file and +a pile of split ones, but I guess even they must have been too big. + +Well, I have uploaded vc.tar.Z to incoming on nic (For you ARL). +Linus, can you get them from there. + +PS: this includes the new tty_io.c patch which has pseudo ttys working, +so throw away the last patch I sent you. +--[0320]-- + +[0321] daemon@ATHENA.MIT.EDU (John T Kohl) Linux_Activists 01/07/92 14:34 (15 lines) +Subject: Re: 486 problem +Date: Tue, 7 Jan 92 11:25:50 PST +To: linux-activists@joker.cs.hut.fi +Cc: nicholas@cs.uwa.oz.au (Nicholas Yue) +In-Reply-To: [306] +From: John T Kohl +Reply-To: jtkohl@cs.berkeley.edu + +Yesterday I said: + +> The problem was the BIOS "Fast A20 Gate Option". + +Actually, that wasn't it. At the same time, I upgraded to 4M simms +rather than 1M simms, and the problem went away. Oh well...? + +John +--[0321]-- (pref = [0306]) + +[0322] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 01/07/92 14:35 (69 lines) +Subject: Re: SVGA and the kitchen sink. +Date: Tue, 7 Jan 92 11:28:26 -0500 +From: tytso@Athena.MIT.EDU (Theodore Ts'o) +To: linux-activists@joker.cs.hut.fi +In-Reply-To: Peter MacDonald's message of Mon, 6 Jan 92 21:49:06 PST, +Reply-To: tytso@Athena.MIT.EDU + + Date: Mon, 6 Jan 92 21:49:06 PST + From: pmacdona@sanjuan.UVic.CA (Peter MacDonald) + + Second. Before X11 can even be looked at, another feature will be + required. That is, shared dynamic linked libraries. I just finished + working on a Decstation 3100 for 6 months using Ultrix which does + not have this. The executables are monsterous, and the only thing + they eat more of than disk space is memory. Plus, if Linux is to + be distributed over ftp, and we wish to permit access to distributing + binaries, then much net-width can be saved. But most of all, since + Linux is fast evolving, if we want to avoid frequent recompiles of + all utilities every time a library routine changes (such as job + control requires) then we better get shared libs fast. + +A couple of points. First of all, job-control does *not* require +recompiling all of the utilities. /bin/bash needs to be recompiled with +the job control commands built in, of course, but that's about it. + +Secondly, many of the changes which I (at least) have been talking about +requiring recompiling all of the utilities because they mean that the +system /usr/include files would have to be change, and the structures +passed back from the kernel would change as the sizes changed. A +dynamically linked library wouldn't solve this problem. + +Finally, people should be aware that many shared libraries implemented +under Unix are not fully "dynamically linked" --- that is, when you +change the library, you often have to relink all of the utilities or +they won't work at all. These designs are great for conserving disk +space, but they're hell for evolving systems, because with statically +linked programs, at least you know they will always work as long as the +kernel interface remains constant. With shared libraries, often times +replacing the library will cause all the programs which relied on the +old version of the library to break, even if the kernel hasn't changed +at all. It is possible to do it right, but whoever tackles this one +needs to be careful about the design.... + + From: rhwang@cs.utexas.edu (Rwo-Hsi Wang) + Date: Tue, 7 Jan 1992 00:26:57 -0600 + + Could someone give us a list of features (preferably in the order of + implementation precedence) that are required (and yet to be implemented) + before X11 can be ported to Linux? I'm curious about how far away + Linux is from X11. Thanks! + +Well, I believe the only unimplemented feature which is absolutely +required is Berkeley-style sockets (or a socket emulation library, +although the real thing would be preferable, IMHO). There are a lot of +features which would be helpful but not required. They include: + + * Networking code that goes with the socket() implementation + * Symbolic links, to make dealing with the source tree easier + * SCSI disk driver, to make it easier to hook up big fast disks + so you have room for the complete X11 distribution + * Shared libraries, to make the (many) X executables smaller and + usable on systems with small amounts of memory. + +I suspect that implementing the above items could be done in parallel +with porting the X server, once we have BSD-style sockets. The port of +the X server itself may not be trivial, so one should not discount that; +however, getting the X clients to build should be fairly easy, as long +as you have the disk space. + + - Ted +--[0322]-- + +[0323] daemon@ATHENA.MIT.EDU (Drew Eckhardt) Linux_Activists 01/07/92 17:00 (9 lines) +Subject: symbolic links +Date: Tue, 7 Jan 1992 14:47:16 -0700 +From: Drew Eckhardt +To: drew@kinglear.cs.colorado.edu, linux-activists@joker.cs.hut.fi, + + +Is anybody implementing symbolic links so links can exist across +file systems? + +Looking at running SLIPP, etc? +--[0323]-- + +[0324] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 01/07/92 17:17 (16 lines) +Subject: Re: symbolic links +Date: Wed, 8 Jan 1992 00:07:02 +0200 +From: Linus Benedict Torvalds +In-Reply-To: Drew Eckhardt's message as of Jan 7, 14:47 +To: Drew Eckhardt , + +Drew Eckhardt: "symbolic links" (Jan 7, 14:47): +> +> Is anybody implementing symbolic links so links can exist across +> file systems? + +I've been meaning to do these for a long time: but something has always +come in the way - this time it was the VFS patches: I want those in +place before I start changing the fs structure again. If 0.12 is more +stable than 0.11 (ie not so many patches), I'll do it then. + + Linus +--[0324]-- + +[0325] daemon@ATHENA.MIT.EDU (Teresa Selling) Linux_Activists 01/07/92 22:58 (18 lines) +Subject: micro-emacs +Date: Tue, 7 Jan 92 22:50:20 est +From: Teresa Selling +To: linux-activists@joker.cs.hut.fi + + +I have been trying to use uemacs, but am having some trouble with saving +a file. ^X^S I thought was supposed to save a file...but doesn't seem to +work. How do I manage to save a file I've edited. + +Also my computer doesn't seem to want to do a warm-reboot. Is this normal? +I have to use the reset button. + +One more thing...when using compress to decompress a large file (the manual +I think) I get out of memory type errors. I have 8 meg of ram, so that +doesn't make sense to me. Any suggestions. + +Thanks. +Teresa +--[0325]-- + +[0326] daemon@ATHENA.MIT.EDU (Yanek Martinson) Linux_Activists 01/07/92 23:48 (27 lines) +Subject: lpdemon, init, shutdown, uucp +From: Yanek Martinson +To: linux-activists@joker.cs.hut.fi +Date: Tue, 7 Jan 92 23:41:55 EST +Cc: V5068U@TEMPLEVM.BITNET +In-Reply-To: <9201070713.AA15276@joker.cs.hut.fi>; from "SMTP@FINHUTC.hut.fi" at Jan 7, 92 9:11 am + +> and have a question about the general init/rc thang. I have installed a test ve +> rsion of my spooler ( it's really an exec that has the personality of a daemon +> :-) ) in the /etc/rc file but the question is this: +> When a person logs out of bash, the lpd is still busy opening & deleting +> files. i.e. it is not safe to turn of the machine & it is possible that it may +> seem like nothing is going on. so, is there/will there/should there be some sor +> t of rc0 like AT&T uses for shutdown? + +When my init is done, what you do is start lp, gettys, and any other +such stuff with runlevel 2. So they get killed when runlevel changes +to 's'. Then write a shutdown script that sets run level to s, then +cleans everything up, kills any remaining demons, unmounts +filesystems, etc. Then syncs a few times, and says "Ready to power +down or reboot" and just sit there. + +> what do you folks w/uucp do? will this be + +There is no uucp for linux yet as far as I know. When I get done with +init and login next thing I'll do is try to get Taylor UUCP working. +t is a public domain uucp, pretty comapatible, and with some extra +options.. +--[0326]-- + +[0327] daemon@ATHENA.MIT.EDU (Pietro Caselli) Linux_Activists 01/08/92 00:22 (24 lines) +Subject: Yup! ... a bug. +To: linux-activists@joker.cs.hut.fi +Date: 7 Jan 92 10:36:39 MET (Tue) +From: zaphod@petruz.sublink.org (Pietro Caselli) + +I know 0.12 is on the final rush anyway there is a little strange bug with +0.11 I cant trace off. +I just finished porting an AT&T uucp on Linux ( a few more beta-test and I'll +post it on nic.funet.fi ), well after polling my host and after getting my +CARRIER LOST ( I said I need some tests :-) ) Linux hangs with "ls -l" !!! + +My question is Why ? + +Anyone had a similar problem ? + +P.S I have a tcsh6.01 working on Linux, I need also some tests on It ... if + people on the mailing list are interested I'll post it too. + +Ciao. + + Pietro Caselli | + internet: zaphod@petruz.sublink.org | IF YOU MEET THE BUDDHA + : pietro@deis33.cineca.it | ON THE ROAD,KILL HIM. + Mail : V. Pietro Mattiolo, 4 | + 40139 Bologna ITALY | +--[0327]-- + +[0328] daemon@ATHENA.MIT.EDU (d88-man@nada.kth.se) Linux_Activists 01/08/92 03:57 (10 lines) +Subject: Re: micro-emacs +Date: Wed, 8 Jan 92 09:49:03 +0100 +From: d88-man@nada.kth.se +To: linux-activists@joker.cs.hut.fi, tselling@natasha.iusb.indiana.edu + +saving in uemacs: ^X S not ^X^S as in the real one. +No warm reboot: I have the same problem as do more people I know of, the +problem is (as I know it) the AMI-bios in my computer, do you have an AMI ? +If so that's almost surely the reason. Anybody knows why ? I haven't looked +into it. You always have the red button ... :-) +/Mats Andersson (d88-man@nada.kth.se) +--[0328]-- + +[0329] daemon@ATHENA.MIT.EDU (d88-man@nada.kth.se) Linux_Activists 01/08/92 04:31 (13 lines) +Subject: SVGA (again...) +Date: Wed, 8 Jan 92 10:26:11 +0100 +From: d88-man@nada.kth.se +To: Linux-activists@joker.cs.hut.fi + + +Linus has tested a new aproach to detecting Tseng which works. I have also +looked closer at the code for Genoa, I had screwed things up a bit so to say. +I think that's why it detected a Paradise as a Genoa :-) +Anyway I have uploaded a file called newsvga.tar.Z to tsx-11 and nic which +include the new Tseng and the corrected (hopefully :-) Genoa. It is a new +diff which should be applied to the original setup.s not the patched one. +I cross my fingers that this one works :-) +/Mats Andersson (d88-man@nada.kth.se) +--[0329]-- + +[0330] daemon@ATHENA.MIT.EDU (Mika Matti Jalava) Linux_Activists 01/08/92 05:36 (21 lines) +Subject: what's wrong with ESDI? +From: Mika Matti Jalava +To: linux-activists@joker.cs.hut.fi +Date: Wed, 8 Jan 92 12:25:29 EET + +What might be the problem with my ESDI drive that I've tried to get +running with linux? It is a Magtron MT-4115E and the controller is +Joincom. + +The problems: I start linux with root on floppy. I get a message like +"unexpected hd interrupt", but immediately after that "partition table +ok.". I try fdisk, and that tells just right what's there on the disk +(a 32 M primary dos and the rest of 115 M as an extended "don't +use"-partition), but right after that an I/O-error, and if I remember +it was on on device /dev/hd5! I don't even have a second drive. It +might have been hd0 though, I'll check it. Anyway, what's this +unexpected interrupt? I think it shouldn't be too much work making the +ESDI drive work, as it "half works" even now. The 20 M MFM drive I'm +using now is getting a bit small... + + Mika + +--[0330]-- + +[0331] daemon@ATHENA.MIT.EDU (LCDR Michael E. Dobson) Linux_Activists 01/08/92 09:15 (24 lines) +Subject: Re: lpdemon, init, shutdown, uucp +From: "LCDR Michael E. Dobson" +To: yanek@mthvax.cs.miami.edu (Yanek Martinson) +Date: Wed, 8 Jan 92 8:50:22 EST +Cc: linux-activists@joker.cs.hut.fi (Linux Mailing List) +In-Reply-To: <9201080441.AA08208@mthvax.cs.miami.edu>; from "Yanek Martinson" at Jan 7, 92 11:41 pm + +> +> > what do you folks w/uucp do? will this be +> +> There is no uucp for linux yet as far as I know. When I get done with +> init and login next thing I'll do is try to get Taylor UUCP working. +> t is a public domain uucp, pretty comapatible, and with some extra +> options.. +> +There are several of us working on it. I've played with both the Taylor +package and Will Rose's UUCP 1.2 The former needs quite a few library +functions that haven't been implemented yet. I've made some progress with +the latter but I haven't finished yet, no time :-( + +-- +Mike Dobson, Sys Admin for | Internet: rdc30@nmrdc1.nmrdc.nnmc.navy.mil +nmrdc1.nmrdc.nnmc.navy.mil | UUCP: ...uunet!mimsy!nmrdc1!rdc30 +AT&T 3B2/600G Sys V R 3.2.2 | BITNET: dobson@usuhsb or nrd0mxd@vmnmdsc +WIN/TCP for 3B2 | MCI-Mail: 377-2719 or 0003772719@mcimail.com +--[0331]-- + +[0332] daemon@ATHENA.MIT.EDU (Robert Duncan) Linux_Activists 01/08/92 11:49 (23 lines) +Subject: AMI BIOS (was: micro-emacs) +Date: Wed, 8 Jan 92 11:38:37 EST +From: duncan@erim.org (Robert Duncan) +To: linux-activists@joker.cs.hut.fi +In-Reply-To: d88-man@nada.kth.se's message of Wed, 8 Jan 92 09:49:03 +0100 <9201080849.AA21293@dront.nada.kth.se> + + + I am running Linux on a 33MHz 386dx clone with an AMI BIOS. + I have never had any problem doing a three finger salute (warm + reboot). + + For some reason though, kermit (the binary from tsx-11) doesn't + seem to be working, although other copies work fine under both + Minix and msdos. Any ideas? Should I just get the package from + columbia and build it myself? + +p----------------------------------------------q +| Robert H. Duncan | +| Environmental Research Institute of Michigan | +| PO Box 134001 | +| Ann Arbor, MI 48113-4001 | +| (313)994-1200 ext.2880 | +| Internet: duncan@erim.org | +b----------------------------------------------d +--[0332]-- + +[0333] daemon@ATHENA.MIT.EDU (Peter Cooper) Linux_Activists 01/09/92 00:53 (87 lines) +Subject: bugs in linux 0.11 and Q's about alarm() +Date: Thu, 9 Jan 1992 14:34:56 +0900 +From: comrade@uniwa.uwa.oz.au (Peter Cooper) +To: linux-activists@joker.cs.hut.fi + + +First a few Q's about the alarm() call. + +I had the impression that if a 'slow' system call was processing and +an alarm signal was recieved, that the slow call would return EINTR. + +Is this in fact the behaviour expected? I have a program that relies on +the fact that the system call is aborted with EINTR rather than simply +being restarted by the kernel. (I have hacked my kernel so that +tty_read() return -EINTR, rather than -ERESTARTSYS ) + +Does POSIX say anything about this?? + +Also: + There is a bug in kernel/chr_drv/tty_io.c + +At the end of the tty_read() fn, there is a line that reads + + current->alarm = oldalarm; + +This SHOULD read + + if (flag) + current_alarm = oldalarm; + +Flag is set if tty_read uses it's own alarm. + +The effect of this bug was to produce 2 alarm signals if an alarm occured +while read()'ing instead of the single signal it should produce. + +Also: + Something very odd seems to be happening when there is a key in +the keyboard buffer. +I have code like: + +main() { + signal(SIGALRM, handler); + alarm(2); + read(0, buff, 40); + printf("All ok\n"); + } + +handler() { printf("Alarm\n"); fflush(stdout); } + +Now this works fine if you just run it. In 2 seconds it tells you that the +alarm went off. BUT if you run it and type a key before the alarm goes off, +then the alarm doesn't occur untill the buffer is empty. i.e. untill you +backspace to the beginning of the line, or you hit return. + +NOTES: The alarm definately doesn't occur. I have code that has the alarm simply +set a variable, and it only runs once, no matter how long you wait before +emptying the buffer. + +What on earth is happening when there is a key in the buffer? It happens +in other places as well. Try doing... + +cat < /dev/tty4 > /dev/tty64 +cat < /dev/tty64 > /dev/tty4 + +(note. I have the virtual consoles installed. ) + +Then get a bunch of stuff comming down the serial port. +If you type a key while it is comming down, it will stop dead until you +delete it or hit return, regardless that bytes are pouring continously +down the serial line. I am very confused as to why this occurs... + +FYI: + I have a 486/33 with a 120Mb IDE drive. I have jobcontrol and + lvc-4th installed. I am using shoelace to boot. I have 4Mb of + memory. + +PS: Just an aside: Does anyone know why + doshell /dev/tty64 /bin/sh +doesn't properly attach a shell to the serial port?? Dialing in through +the modem doesn't get you a shell. + +Also, when you do by rather incredible contortions do get a shell on it, +you don't get a prompt + (We achived it by dailingthe machine under DOS, rebooting to + linux without hangingup and then running doshell /dev/tty64 + /bin/sh. running doshell from /etc/rc DOESN'T work. doing it by + hand produces a shell with no prompt. Vi doesn't complain about + it not haveing a term to work on. What gives? anyone ?? ) +--[0333]-- + +[0334] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 01/09/92 02:27 (178 lines) +Subject: a df for linux +Date: Wed, 8 Jan 92 23:21:28 PST +From: pmacdona@sanjuan.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + +Here is my quick hack for df for linux. Of course, soon VFS +will come along and more will have to be done, but for now, this should work. + +PS. I did this because by reflex I keep typing df to see if I'm full. + +****CUT HERE ********************************************************* +/* df.c: Copywrite (92) Peter MacDonald: distribute freely, don't restrict. */ + +#include +#include +#include +#include +#include +#include +#include + +char *hdr1="\n inodes inodes inodes blocks blocks blocks mount"; +char *hdr2= "device total used free total used free point"; +char *hdr3= "--------------------------------------------------------------------"; +char *fmt = "%-9s %-7d %-7d %-7d %-7d %-7d %-7d %s\n"; + +void do_df(char *dev, char *dir); + +int main(int argc, char *argv[]) +{ int i; + + sync(); + puts(hdr1); + puts(hdr2); + if (argc != 1) + for (i=1; i= (8*BLOCK_SIZE)) + { + end = BLOCK_SIZE; + numbits -= 8*BLOCK_SIZE; + } + else + { int tmp; + end = numbits >> 3; + numbits &= 0x7; + tmp = buf[end] & ((1<>4)&0xf]; + numbits = 0; + } + for (j=0; j>4)&0xf]; + } + return(sum); +} + +void do_df(char *dev, char *dir) +{ int it,iu,bt,bu; + struct super_block supstruct; + + if ((fd=open(dev,O_RDONLY))<0) + oops("df can't open device: %s",dev); + + lseek(fd,BLOCK_SIZE,SEEK_SET); + if (read(fd,(char*)&supstruct,sizeof(struct super_block)) + != sizeof(struct super_block)) + oops("super block unreadable: %s",dev); + + lseek(fd,BLOCK_SIZE*2,SEEK_SET); + if (supstruct.s_magic != SUPER_MAGIC) + oops("not a valid file system: %s",dev); + + it = supstruct.s_ninodes; + iu = count(supstruct.s_imap_blocks,supstruct.s_ninodes+1); + + bt = supstruct.s_nzones << supstruct.s_log_zone_size; + bu = count(supstruct.s_zmap_blocks,supstruct.s_nzones) << + supstruct.s_log_zone_size; + + printf(fmt,dev,it,iu,it-iu,bt,bu,bt-bu,dir); +} + + +table + !"#$%&'()*+,-./0123456789:;<=>? +@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ +begin 644 df.c +M+RH@9&8N8SH@0V]P>7=R:71E("@Y,BD@4&5T97(@36%C1&]N86QD.B @9&ESz +M=')I8G5T92!F7,O='EP97,N:#X*(VEN8VQU9&4@x +M/'-Y6YCm +M*"D["B @<'5T&ET*#$I.PH@h +M(" @?0H@(" @9&\@"B @("![(&-H87(@8G5F6S(P,%TL(&1E=ELT,%TL(&1Ig +MR!F<')I;G1F*'-T9&5RF]N95]S:7IE.PH@(&)U(#T@8V]U;G0HFUA<%]B;&]C:W,L +Resent-To: linux-activists@joker.cs.hut.fi +Date: Thu, 09 Jan 92 09:56:26 EET +From: +To: + +hi all; + this is a shameless hack of the BSD su. even though i cut out +90% of the code it will still give you both a simple su shell +and a login shell. i needed it to test out setuid/setgid for the +lp stuff, since it fiddles with the permissions ala BSD. + enjoy! +begin 644 su.uu +M'YV0<^J\`$"PH,&#"!,J7,BPH<.'"$%(O%&C!@@`$C/"N)A1XD:,'4-N!%$C +MQ@P9-F[`H`'#1L8;-%!BK`&QILV;.',"J#.'3A@Y$@'(>?.&CDZ%0XL>7.&SAP0;\R`H&,:1!4W:>R4D3,G#9T\L&4/"<,F +MC9DW,@;-B`H&S9]?0R?/&J,N02=.3LI@Z=-*\<0,B +MC!LR('B>3L-^SILZ-\Y1EL8=.B060R??B",5UX:YZ6WWFMRE.$3?;.A01X(K*67(@AC1#99 +M99>!X$91:8#(7X4TOM%&&S&&QE]F,G`F(AWFH:>>&Z_1-P8;=8SGQAD@^.?& +M3VE@%R)Y<+`1!G"TG79<=&_<0=\90(8QQAH[WL&&>*L1V9J&((`!1FDO/O@& +M&76,@9F45$[XFGUFT'&'@2&6H1L;D34H!IFF`7E;;KOU]EMPCQ%G''+*A2;$ +M;FN4,2=P1_KV6HVM-4D'&$\*E)6XNG+>GJD^V]1ZL;;4;7'AFZR9%>;U>"0"R#E"$K;HQ/K@F" +M&65@B)^7P,K'*6TO(JJH@=V!YT09OID&5)DZAD'DO+5=VJVFP.WX;VU;$OE: +M;+1:QRJ3)*('J[AC`BG&:?+!]RJ,[\%Z&K!^ME'4@4,!*NAK$U*VW;I#M=%B +MO;'=.Z.S:-Q'!Y!S(#B&<3TZ2!FP=U!&!X/L(3@@>;VMEZ]C5""1Q!0@3/&$ +M$51<$80418`P-0A02/&$%4D04001>8(1!-53RPI"$$Z@?44243]1!15O.Y$% +M"$5@$7814U#]A!1>-P$%$TF<#:364D@!-Q6)3Q%:$DX,P4051%!^1&ASUWTW +M"(@W07<0D#_A1&A1=YV$X8B?#0+CCCL!.>`@7`UD$T5(,002CPIIW)FPPMVO3!:A^ACAS>4BCM@G`(3U:2M%-G'6[.Q(\`@-0;B."B+6^SBNM(PIV`N +MTUH`@P,RN2@'+R('C&S$%AV%-9\"<;**NP$EC.0P%#DP)PD]5&)`%/"B,N"A +M#+IB4'^`(YC0[.B86J0F?%[D1"CVI$%'VN0<7LD&!>`,6NV!@Y\>="P&Q:>" +MD;31"@(8OM>6@E +MR\8I৕=PT2!IE,7Y#.HU/#79>,S0)5R69CYNH&B#!FHJZ<2R-HO]*USG +MP!P^1:F0L)5#&#+Z)&-N[+$1`E9LG*I`E*KTM+`IZI,*-"/(G@E2=YB##NJG +M4@8N00%$L...,(,A!K6AJ,Z4%T?#64@[PE26J2P60A79'2I4MP4C1"=":6G+ +MU1(TCTX=PT`WY,=#NNAAREV/T!P5HRAAQ@PQN\YNU04P/;E`OVC(C]M(.Z?V +MOK>@4TA#&V*JWDV:(:;2R69M:V/3-.!4IR\243&KV2!W$O7`U[0JX<#:M:;* +MN&I(T"I7;7Q5Y]F/QX2C0NZ:,-60OL>I2LU=5\%(8R.3(9A6R%)JP9@W#`3GRA)F00)"'^P!%5^2,$C1BUJH4/:V&)V]/$]JUE +M=D-<__ADJSIPE\R4SB#=LYHOI4A0R"&3,,7<5C*/,:Z.%5*T3`S/5\DA#Q96 +M``/;H``FM$LW""WQB14=6I^2]J0*0"Y];^G*UDJTT/@A;'T(RNF+CN?4M@;. +MJ*_DI2GOM@RL]&9V$.T;X#P(GN=]TAQE$]A6)[*"L)ZT:[VY(S>TX"_O^P3I$QZR`A_-:[!7H()X\_ +M;=!0KZND;#!NLFO#0.D<:=?)]15S3[-A.M2!.&P`CHNIU!O=6'286<3,>D[3 +M,WA660%:W@UE#%4M*B2U/K_-C>HKC"43.TD;15::9.2QV*BTT(8&7G]CYZZ0B^Q=O +M/7*9<^(,P`*BM!8H4@$EN[M?T^IF,(S`;1]+D8*LM7-.J:H]=\".K!V4IMUT +MYXQ"4RI/DK;TT\TD&%-3` +M]55_I.]=+^SUH.`&*5"`8I;/_.8[GRE4:4(82D7A,CS?^5WY2ED\LOV\=%\B +M,H@!7212DI.D1/PP0-]L+0$] +M<`99U&M$`(!GP`9/-@1#8(!C,`8*,`1&,#U',`4`V`)7`',L]`0L9`;EP1IG +M0!LMD"(JF&Q;.%T)0`(HH("<`8<0*(%3P!E< +MH``)T`)/2`=1R$)2V`)V1`(JX(4@0`(\H``A%1T:`H=44(9GF'PHU(@HH(7) +M]X9Q.`1S6(E5P!F"R'%`)P9J4&O2=8B<>(ESD`=6J(B*Z(,^P8@: +M`1\NX`(@<'.`,0:RT4`*Q`=!\EV^A(,@X`,T1!]U@`=6P58NH`6HJ(H.J``3 +M`@=NF!WP<0(OP`4C@(_X"$1E@"#OP1H_@QTO$`>SP@,@('W4QTRG08YT8(S( +MB(0)@`)GE`935XACL`.X`B.#9$=\J#\N\`(BL`-TF%*>2&0D0`)I@)$[QQD^ +MP)`..7T0R82S\9*E&J"%$:5,/ +MAHMT]@)&."%5D0=S\`*_@2"TA09,281.:86%4@8O('0[X@)8F8<2085;>850 +M.2)7(I8@()1684<:8A52:)9/Z97%H2"NP99TR95'^`)N%1ETP)9DF955B)9> +MF8I3F1Y$HI=-69=4J6'@AI5[:9A5X8?J(9@*4):-R9=0"0=WP!V2N9F4Z1Z] +M,2%3PIA:Z9B(295Y8)68J9FIR9E>V4AP@)J%V965208N99MGB9MJ>0:O29B] +MV9<\11Y^R)NJ*965B2'(*9M1F9B0>94O")NWV9>KB1X_*#"1*9R.Z22+B97* +MUW_B.9[D69[F>9[C215)*89C@)Y9D7U@`1(:T7UC$1(@0`,V$!?D9Q)V40,V +M\!8R(!'B)P,M@1%ZX9Z),7^`<1'YAW_VAZ`0&J%.\0(J\!@V0ATY$H><$0,Y +MD`/H8P0I(MZ;% +MP5H!!S`@"G95DZ0FBJ)D@"%/8E'\(BP@<##4$J`S6BEOJA]04@:A`2PH@"&$ +M9F@I]R0+YP;`(28NB*A.HXC():8X^J9#"B`2)2T5$VBU4ALY@R`M0JF^`0*\ +M)!T;(UD?Q@9-52*O0S=0]3EPLS>P\SA98%$XHS,PHAOL`3!^5AQ`]1.ZU1K` +M,5RXHSN\(SN^`SQTLS?`8CQ4@#R!`P++0SBMA&92`#W20SU08#W8HSW66#5\ +M2J,VVFLZ:JIFNG2Z)1UJRJ9!TZAQ:B;`8C(S,B$KP@:TI8A9J;W"C9VVB/RZJAR2ASK@25!%:87.ZKS>FL6 +ME1V65ALO.@0=E`6:XP*((P3MBDX*L%VA432^86FK=AI[*J)^"K2`*JCKL:)L +M&!HI81'2EUA!H!M--1PS.'2K$1I-T$IU81(Y$!I*%03MJ@(OH``C\&]+MU=' +M(+9U"0(\L)I5R71HX`-H*YMJ"Y9O()9P.P+&X5)50P5$,`1?D&-!8#92,`5Q +M:YAJ"X7%(09V*[:FDAT*X$[D,DNM,4[)\08[P+CO81QH*QMD*QZ5R+=^"[B" +M>X<@P`?>V+F]IU1'D'QX*[=KNX/`^;9BV[G7,B%XX$!,,DAR,+MS95)9,K%Y +M@`)S$!ID8$^<021MP(3!BP)DX'K"Z[QNH'",2[!(V+J&^[J4<257>;>L,5J; +MJ[?KF@184+A=J;;%"86+.P+=J[EX:P;_*!LV6E9CV[ME&[]922./];\-4P9? +MT+T@P(7T8;LJ#+NA<0(]<`(I<+D2D2(V]$]`T1L9]P68P<1E8,37D<0NZ,(` +MW(\$+!%TE'7:F,C#6,BX+,T@D,QP +M,,9:+!LH4,E,P:G +MS(6J[,X9,:3ML@92+!&-BX3V"?!HK``)),HP.]-,0 +MHQDU/(P*]]+OG!DS7=,XM<,MS0276,WXP1XM$`-,G1FU)"&<(0;`V]-6S!D" +M'!I(;=*<\=1E7=091]10?-1C#[G$M`9SL+(4(RB7*X.\D@!`0-1`0,`* +M$-XQ`(_%D@`Y(`,ND'X#C@,N$'XN76ZI62$B7NW1X0`<)H-^&XH!`0$VR%RZ>^BNRL4F/I4K] +M02JF4@;`L4Y`P(K\K0`UI`!`D`2XD1[&='3D\21"?DB0*^04J@`D@`3MTC(D +M4,!-281C4!5U\&`*4./,AF"#MDGJPSXZ_FE9`AP2[C"RVB4">&1@FY-IRP-W +MJ2KI&^=_651U[KIL"YEY?KU0>)FR:[WERP.>"9IW:^=R4)N!'N>_V>>#?K[' +M*;N\2UI+EP!EF,!2D``BP`;^,[^4?AI?@&91\P5"0%9<)0*Y6!5HX!B3[KO9 +MZ\/EH;NM7K:AGF9?H#U;LSNB3D`BL.L](&=->09N(!!Q9I;$1!RY*&?%WI3% +MKB)CT.FT^P6BXP3B^P5Z1F0B<.T]P"KV,2?^PXNL[5:[-P[J+EAC$!HQ+5BTF'PRO+_7 +M'-.DC?"2BQET&ZG*]1Z7B\3&64GE$2B8,>Z?.8R%/O&J4?&'QMIP$!H`?`;G +MS2083W6.!$DJT$B72W%DX,33`?.7J^XTO'J9EL>S;<6*1/+R9E@5=,,K5!(! +MV@4D#XU+EUI;0`-&/XQ;TE9VL/1-#\!N`.**F`!5G\# +M)-G^FP*#=(G'W,L)4$QR>@)L<`)N>,S'W%ATQR&9GP#=[.!0O\Y<")@]?/9TJ_-G;\"# +MA6@I,KF-=<-3VFS:\N8)(`[O +M[]&-S/>'W_>IG[UT@/5!(:$#^P*"AJ`EG@(^9!/?)P*.7_);?@[P^<4ZR5#N +M%,D-"PV%K@7X`,_T!<`?^]-#]T^/C8'O@O\^DP;D@#\/!-2Z45?JH@Q7D5[' +M3/4%P'(G`A1(BH +MA_@-%UJ!2(#4F;KL5Z$&RZ61-M="0(P+=>-V1!_CF0[V9QB%K02@2/*8"B!X +M(.`'#",TJ"%$@&`(2;O(_6T\+B3N[D##J(`0Q?ZQOB,('_3?5N%_":"7_;\6 +M)`#]$`'4'P8P/K@!.)$FV$-C$8*_#^CM!@?H3B!@YC-M>LB`K0>HL]/N0(L` +M):@%HMV!#X0/X:"?QK)+.PW*&` +M6>C$.,-&T(/ESA8:OEZ&)>B@'-"`C>08E8$VD/G27ADH=RT/$`;"RA<"Y5E^ +M((%1YP(.(RP!`RV?Q)%HE>\,0++F]_P20#6,AH9O&D*^0;CZ6M\AK(%U0$,P +M*48!!%<5SR&%P0>20!;!(Q(!WK_*IPW4H`PNAZX-](XJ7@&H"P +MERF-[:;<;'F/2BG@S(:V,ME[FTOJ?]_LHFV3K$Y`3`!P&F +M4S[&N%,Z'-&7U;6;QAE32^9;3^W.0<"[JV<.]^`@N39SL2Y>FZV8%[WBO9.& +MB(\=SL`!2$X*8#R\*(WEVM2:5$,4F]]A'(B0[R`6Q*LG]O)88U&#(N#>U`'' +MT`8#`AP\9IDI^<&3=O<#(_L]<2R.`0374NL)FWP^+D5 +MZ2/ +M_)%`,D@*R2%))(NDD3R22#))*LDER22;I)-\DE`R2DK)*4DEJZ25O))8,DMJ +MR2W));NDE_R28#),BLDQ22;+I)D\DV@R3:K)- +To: linux-activists@joker.cs.hut.fi + +AAGH! + +This is the second time its happened - the first time I put it down to some +0.10 fs bugs, but this time some text in the corruption gave it away as +windows 3 (and in particular Word Perfect for Windows - again.) Since it +only seems to happen when WP4W has been used I'd guess that it's either WP4W +itself, or windows 3 swapping a large program (never had any problems with +write, etc.) Has anyone else had such a problem? [I know this isn't really +a linux problem, but..] + +Never mind - I had full backups, of course [ha ha :-(]. A question: is there +any way, or how hard would it be to get a way of mapping a given range of +physical memory into a user process's address space - I'm thinking of the +full screen addressing provided by many (most?) vga cards.. + +-- +Brian + +--[0337]-- + +[0338] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 01/09/92 06:46 (38 lines) +Subject: Re: bugs in linux 0.11 and Q's about alarm() +Date: Thu, 9 Jan 1992 13:39:05 +0200 +From: Linus Benedict Torvalds +In-Reply-To: Peter Cooper's message as of Jan 9, 14:34 +To: comrade@uniwa.uwa.oz.au (Peter Cooper), linux-activists@joker.cs.hut.fi + +Peter Cooper: "bugs in linux 0.11 and Q's about alarm()" (Jan 9, 14:34): +> +> There is a bug in kernel/chr_drv/tty_io.c +> +> At the end of the tty_read() fn, there is a line that reads +> +> current->alarm = oldalarm; + +This is corrected in my version (and will be in 0.12) - the alarm is no +longer used, as I got tired of the contortions needed, so I added a +simple "timeout" to the task-structure. Thus system calls with a +timeout now don't need to mess with saving alarm etc. Using alarm had +another problem: if it was blocked, the task wouldn't be awakened by it. +This was no problem in versions < 0.11, but the current version needed +something better. + +> PS: Just an aside: Does anyone know why +> doshell /dev/tty64 /bin/sh +> doesn't properly attach a shell to the serial port?? Dialing in through +> the modem doesn't get you a shell. + +I have hacked on the tty's quite a bit, and although I never saw this +problem, I hope it is corrected: I simplified some things in the +drivers, and I think it should work (also, I've hacked pty's till they +aren't recognizeable: I think I have the stalling bug fixed.) + +While changing (and simplifying) the virtual consoles, I also changed +them to use EGA/VGA screen memory, so that they won't take up space in +the kernel. This means that the vc's in 0.12 will work only on a +EGA/VGA, and I hope that won't be any problem. It shouldn't be too hard +to patch it back to use a kernel buffer though. + + Linus +--[0338]-- + +[0340] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 01/09/92 13:05 (39 lines) +Subject: Re: bugs in linux 0.11 and Q's about alarm() +Date: Thu, 9 Jan 92 12:57:18 -0500 +From: tytso@ATHENA.MIT.EDU (Theodore Ts'o) +To: comrade@uniwa.uwa.oz.au +Cc: linux-activists@joker.cs.hut.fi +In-Reply-To: Peter Cooper's message of Thu, 9 Jan 1992 14:34:56 +0900, +Reply-To: tytso@athena.mit.edu + + Date: Thu, 9 Jan 1992 14:34:56 +0900 + From: comrade@uniwa.uwa.oz.au (Peter Cooper) + + Is this in fact the behaviour expected? I have a program that relies on + the fact that the system call is aborted with EINTR rather than simply + being restarted by the kernel. (I have hacked my kernel so that + tty_read() return -EINTR, rather than -ERESTARTSYS ) + + Does POSIX say anything about this?? + +POSIX doesn't say a whole lot about this, and it's somewhat confusing +what it does say. The problem is that 99% of the code out there +*doesn't* check for EINTR, so restarting a system call generally works +as a better default. The problem is that you do lose in the case where +you're expecting the system call to be interrupted. + +You don't need to hack the kernel to change what tty_read() returns to +solve your problem, however. You just need to set the sigaction flag +SIG_INTERRUPT for the alarm signal, and then the signal handling code in +the kernel will set things up so that the system call returns with EINTR +after the signal handler is finished. + +It may make sense to set the default flag for the alarm signal so that +SA_INTERRUPT is set. But then again, it may not. I suspect that no +matter which default you pick, some set of programs will lose because +they're either expecting the EINTR and they don't get it, or they're not +prepared to handle the EINTR and they die when they get it. +Fortunately, there is a programming interface to select which behavior +you want, but that may mean that you need to recompile your program to +set the sigaction flag in order to make things work. + + - Ted +--[0340]-- + +[0341] daemon@ATHENA.MIT.EDU (Teresa Selling) Linux_Activists 01/09/92 20:01 (10 lines) +Subject: keyboard when recompiling linux +From: Teresa Selling +To: linux-activists@joker.cs.hut.fi +Date: Thu, 9 Jan 92 19:53:09 EST + + +I have just recently started using linux. With some help from people +here I have got it up and running. Shoelace seems to work ok as well. +But when I recompile the image and attempt to use it my keyboard is messed +up. I assume that it is set for other than USA for default keyboard, but +I cannot find where that is set. Any suggestions? +--[0341]-- + +[0342] daemon@ATHENA.MIT.EDU (Russ Nelson) Linux_Activists 01/09/92 20:30 (28 lines) +Subject: Networking. +Date: Thu, 9 Jan 92 17:20:33 EST +From: Russ Nelson +To: linux-activists@joker.cs.hut.fi + +Hi, all. I'm not on the list (yet), so if you reply to this, include me +in the CC:. + +Eventually, people are going to want to do networking on Linux. And +they're going to want to do it with a bunch of different Ethernet +boards. Well, there is a bunch of freely copyable (copyleft to be +specific) MS-DOS Ethernet drivers called the Clarkson packet driver +collection. I'm the editor of that collection. + +These drivers all use a common skeleton that interfaces between FTP +Software's Packet Driver Specification, and the code that's specific +to each card. That code could be reused if someone could find a way +to keep most of the entry points identical, or at least similar. If +the entry points into the device-specific code need to be changed, +maybe we could find a way to do it so that all the drivers can get +ported at the same time? + +I'd do it myself, but I've never seen the source for a Unix Ethernet driver. +Does anyone know how such code is structured? I've got a book on Unix device +drivers, so I ought to be able to understand it if I could just see it... + +--russ I'm proud to be a humble Quaker. +Peace is not the absence of war. Peace is the presence of a system for +resolving conflicts before war becomes necessary. War never creates peace. +--[0342]-- + +[0343] daemon@ATHENA.MIT.EDU (Teresa Selling) Linux_Activists 01/09/92 20:44 (10 lines) +Subject: still a keyboard problem +Date: Thu, 9 Jan 92 20:38:57 est +From: Teresa Selling +To: linux-activists@joker.cs.hut.fi + + +I changed the config.h and mused make on kernel directory and src direcotryectory, +but though it seems aI have a slightly differcent keyboard its definitlely noNOT +a usUS-101 enhanced keyboard. Namely I cannot find < > keys and - / are on +the worngrong keys etc. Wheyy is it theat the original image works ok but I +cannot get a new one to work? +--[0343]-- + +[0344] daemon@ATHENA.MIT.EDU (Teresa Selling) Linux_Activists 01/09/92 20:53 (9 lines) +Subject: compressdecompressing large files +From: Teresa Selling +To: linux-activists@joker.cs.hut.fi +Date: Thu, 9 Jan 92 20:45:26 EST + +I am also having trouble decompressing a ~177K file. A 170K or so file +decompresses fine. Have I hit a limit on compress or can more memory +be allocated? I get out of memory and segmentation fault errors. +I have 8 meg of memory, so it seems strange to run out of memory. + +--[0344]-- + +[0345] daemon@ATHENA.MIT.EDU (Stephen. Clawson) Linux_Activists 01/09/92 22:27 (19 lines) +Subject: Re: still a keyboard problem +From: sclawson@cadesm12.eng.utah.edu (Stephen. Clawson) +To: linux-activists@joker.cs.hut.fi +Date: Thu, 9 Jan 92 20:19:14 MST +In-Reply-To: <9201100139.AA06101@joker.cs.hut.fi>; from "Teresa Selling" at Jan 9, 92 8:38 pm + +> I changed the config.h and used make on kernel directory and src directory, +> but though it seems I have a slightly different keyboard its definetely NOT +> a US-101 enhanced keyboard. Namely I cannot find < > keys and - / are on +> the wrong keys etc. Why is it that the original image works ok but I +> cannot get a new one to work? + + Some things might not be being remade quite right. I have problems with +this quite a bit, and have just gotten in the habit of doing a 'make clean' +then re-making the entire kernel. Anyone know why remaking parts of the +kernel doesn't seem to work? A friend of mine has the same problem. + +steve + + +--[0345]-- + +[0346] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 01/09/92 22:38 (16 lines) +Subject: make +Date: Thu, 9 Jan 92 19:31:13 PST +From: pmacdona@sanjuan.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + +When changing header files you currently have to go into each sub +directory and type make. ie: + cd mm + make + cd ../kernel + make + cd chr_drv + make + +etc. + +Don't know why. +--[0346]-- + +[0347] daemon@ATHENA.MIT.EDU (Teresa Selling) Linux_Activists 01/09/92 23:34 (7 lines) +Subject: what-goes-where +Date: Thu, 9 Jan 92 23:27:12 est +From: Teresa Selling +To: linux-activists@joker.cs.hut.fi + + +Is there some sora file somewhere that tell s what files go in which directory. +For example what goes in /lib vs /usr/lib.....etc. +--[0347]-- + +[0348] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 01/10/92 00:03 (82 lines) +Subject: Re: still a keyboard problem +Date: Thu, 9 Jan 92 23:52:17 -0500 +From: tytso@ATHENA.MIT.EDU (Theodore Ts'o) +To: sclawson@cadesm12.eng.utah.edu +Cc: Russ Nelson +Cc: linux-activists@joker.cs.hut.fi +In-Reply-To: Stephen. Clawson's message of Thu, 9 Jan 92 20:19:14 MST, +Reply-To: tytso@athena.mit.edu + + From: sclawson@cadesm12.eng.utah.edu (Stephen. Clawson) + Date: Thu, 9 Jan 92 20:19:14 MST + + Some things might not be being remade quite right. I have + problems with this quite a bit, and have just gotten in the habit of + doing a 'make clean' then re-making the entire kernel. Anyone know + why remaking parts of the kernel doesn't seem to work? A friend of + mine has the same problem. + +The problem is in how the dependancies of the make files are set up. +Each subdirectory has a bunch of .o files (which depend on the .c and +the .h files), which are assembled to gether to form one "subassembly" +.o file for the subdirectory. So for example, all of the .o files in +the kernel subdirectory are linked together to form kernel.o, and all of +the .o files in the fs subdirectory are linked to gether to form fs.o + +The problem is that the "image" file is created by linking the +subassembly files together (fs.o, kernel.o, etc.), and the top-level +makefile only knows that about this dependency; it has no way of knowing +that since the .h files have changed, the .o files making up the +kernel.o file have changed, and it needs to cd into the kernel +subdirectory and do a remake. This could be fixed by adding more +dependency rules, but it would substantially complicate the make files. + +Actually, I'm not sure why we have the second level .o files, unless it +is to speed up the linking of the kernel when you are only making +changes in one part of the kernel. It would probably faster if the top +level make file assembled the "image" file from the component .o files, +and the dependencies were all in the top level make file. + + From: Teresa Selling + Date: Thu, 9 Jan 92 20:45:26 EST + Mailer: Elm [revision: 64.9] + + I am also having trouble decompressing a ~177K file. A 170K or so file + decompresses fine. Have I hit a limit on compress or can more memory + be allocated? I get out of memory and segmentation fault errors. + I have 8 meg of memory, so it seems strange to run out of memory. + +I doubt you are running out of memory. Are you sure that your ~177k +file isn't corrupted? Typically you will get an out of memory error if +the .Z file was FTP'ed in ASCII mode instead of binary mode or some such +thing. + + Date: Thu, 9 Jan 92 17:20:33 EST + From: Russ Nelson + + These drivers all use a common skeleton that interfaces between FTP + Software's Packet Driver Specification, and the code that's specific + to each card. That code could be reused if someone could find a way + to keep most of the entry points identical, or at least similar. If + the entry points into the device-specific code need to be changed, + maybe we could find a way to do it so that all the drivers can get + ported at the same time? + +First a disclaimer: I haven't locked at the FTP Packet Driver +Specification; but I suspect the one place that will be a problem is +interrupt handling. Presumably the Clarkson drivers are interrupt +driven and not polling off the clock tick, right? I suspect that if +they're clock tick driven, it would make things easier but it would make +performance suffer a lot. If they are interrupt driven, then you need +to worry about installing a 386 protected-mode interrupt gate, and +saving all of the 386 32-bit registers; and if the drivers were designed +for the 16-bit DOS world, they might not be up to handling this. + +Also, how nailed-down is the interface between the "common" portion of +the packet driver and the "device specific" portion of the packet +driver? I suspect that we would want to dump the "common" portion of +the driver and speak directly to the "device specific" portion. + +Having an Ethernet driver sounds like a really cool thing! Of course, +the thing that would really interest me is a SLIP driver.... :-) + + - Ted +--[0348]-- + +[0350] daemon@ATHENA.MIT.EDU (Mika Matti Jalava) Linux_Activists 01/10/92 03:46 (29 lines) +Subject: Re: keyboard when recompiling linux +From: Mika Matti Jalava +To: linux-activists@joker.cs.hut.fi +Date: Fri, 10 Jan 92 10:33:56 EET +In-Reply-To: <9201100053.AA05736@joker.cs.hut.fi>; from "Teresa Selling" at Jan 9, 92 7:53 pm + +Teresa writes: +> I have just recently started using linux. With some help from people +> here I have got it up and running. Shoelace seems to work ok as well. +> But when I recompile the image and attempt to use it my keyboard is messed +> up. I assume that it is set for other than USA for default keyboard, but +> I cannot find where that is set. Any suggestions? + +Here is an excerpt from /usr/linux/include/linux/config.h: +/* + * define your keyboard here - + * KBD_FINNISH for Finnish keyboards + * KBD_US for US-type + * KBD_GR for German keyboards + * KBD_FR for Frech keyboard + */ +/*#define KBD_US */ +/*#define KBD_GR */ +/*#define KBD_FR */ +#define KBD_FINNISH + +And KBD_FINNISH is the default. Change it to KBD_US and you should get +it right. + + Mika +--[0350]-- + +[0352] daemon@ATHENA.MIT.EDU (Ari Lemmke) Linux_Activists 01/10/92 05:48 (42 lines) +Subject: No subject found in mail header +Date: Fri, 10 Jan 1992 12:34:52 +0200 +From: Ari Lemmke +To: SUPERVISOR@novell.oih.no +Cc: linux-activists@joker.cs.hut.fi +In-Reply-To: SUPERVISOR@novell.oih.no's message of 10 Jan 92 10:39:16 MET-1 + + +>Please delete my name/address from the linux-activists. +> +>Thanks + + Really people - stop these _jokes_ - on our mailing list. + + This mailing list is intended ONLY for Linux + related discussion, not requesting. + + The one and only channel for requests is + + Linux-activists-request@niksula.hut.fi + + I even think this kind of mail do not belong here, + but .. I wonder where we always have illiterates. + + "The only way to get on this mailing list was + Linux-activists-request@niksula.hut.fi and the + only way out is Linux-activists-request@niksula.hut.fi, + there's no other way than Linux-activists-request@niksula.hut.fi + for address changes." + + BTW. we have atleast 140 people getting this list + around the world (+multiple secondary lists). In couple + of hours (within my session 16.00-12.20 [huh, all nite long]) + we have had more than 20 new subscribers. + + When the list gets bigger we might have more trouble + request messages on wrong address .. I really want to + prevent that. And this is yet an other reason for + the news group. + + arl + + +--[0352]-- + +[0354] daemon@ATHENA.MIT.EDU (Johan Myreen) Linux_Activists 01/10/92 11:55 (18 lines) +Subject: Three Finger Salute +From: Johan Myreen +To: linux-activists@joker.cs.hut.fi +Date: Fri, 10 Jan 92 18:45:17 EET +In-Reply-To: <9201080849.AA21293@dront.nada.kth.se>; from "d88-man@nada.kth.se" at Jan 8, 92 9:49 am + +> No warm reboot: I have the same problem as do more people I know of, the +> problem is (as I know it) the AMI-bios in my computer, do you have an AMI ? +> If so that's almost surely the reason. Anybody knows why ? I haven't looked +> into it. You always have the red button ... :-) + +I have seen this problem too, on a MikroMikko 4m346 (also known as +Alfaskop 4m346) from ICL Data. The funny thing is that the warm boot +works on model 4m336SX from the same manufacturer. The machine doesn't +have a reset button, and the power switch isn't even red! + +-- +Johan Myreen +jem@cs.hut.fi +--[0354]-- + +[0355] daemon@ATHENA.MIT.EDU (Mika Matti Jalava) Linux_Activists 01/10/92 12:06 (12 lines) +Subject: Re: Three Finger Salute +From: Mika Matti Jalava +To: linux-activists@joker.cs.hut.fi +Date: Fri, 10 Jan 92 18:51:06 EET +In-Reply-To: <199201101645.AA16180@sauna.cs.hut.fi>; from "Johan Myreen" at Jan 10, 92 6:45 pm + +Various users have noted that their machines don't work right after +warm boot. Sorry, I'm not able to help, but if it helps anything, I +can tell that something has changed from 0.10 to 0.11: With 0.10 my +machine had the same problem, but 0.11 boots OK in every situation. My +machine is a 386-25 with Award BIOS. + + Mika +--[0355]-- + +[0357] daemon@ATHENA.MIT.EDU (Teresa Selling) Linux_Activists 01/10/92 14:32 (7 lines) +Subject: length of file names +Date: Fri, 10 Jan 92 14:23:10 est +From: Teresa Selling +To: linux-activists@joker.cs.hut.fi + + +I was just wondering why the file names have to be so short. Would +it be difficult to implement longer ones, say 32 characters long/? +--[0357]-- + +[0358] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 01/10/92 15:47 (162 lines) +Subject: A kill for linux +Date: Fri, 10 Jan 92 12:32:46 PST +From: pmacdona@sanjuan.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + + +There may not be much demand for this one now that Job Controls is +coming to bash, but for processes that are unattached to a tty +(like pty pgming) it can be usefull. Also daemon management. +Here is kill.c. Note that .11 has a bug in sys_kill, which +is supposed to return -1 on a kill of an unknown process number. +Because of this, kill.c never warns of illegal kills. +Use kill -? for info. + +******CUT HERE*************** +/* kill.c : copyright (92) Peter MacDonald: Distribute freely, don't restrict*/ + +#include +#include +#include + +#define ERR 2 +const char *usagestr = "usage: kill [-signal] pid ...\n"; + +void oops(void) +{ write(ERR,usagestr,strlen(usagestr)); + exit(1); +} + +void oops2(char *str1, char *str2) +{ + write(ERR,str1,strlen(str1)); + write(ERR,str2,strlen(str2)); + write(ERR,"\n",1); + exit(1); +} + +char *itoa(int num) +{ int sign = 0; + static char buf[15]; + char *cp = buf+sizeof(buf)-1; + if (num<0) + { sign = 1; + num = -num; + } + do + { + *cp-- = '0'+num%10; + num /= 10; + } while (num); + if (sign) + *cp-- = '-'; + return(cp+1); +} + +const char *signames[] = { + "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "UNUSED", + "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", + "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", 0 }; + +int main(int argc, char *argv[]) +{ + int i, signum = SIGTERM; + + if (argc < 2) + oops(); + if ((argc>1) && ('-' == *argv[1])) + { + if ('?' == argv[1][1]) + for (i=0; iNSIG)) + oops(); + argc--; + argv++; + } + + while (--argc) + { + argv++; + if ((i = atoi(*argv)) <= 3) + oops(); + if (kill(i,signum)) + oops2( "kill: no such process ", itoa(i)); + } + return(0); +} + + + + + + +table + !"#$%&'()*+,-./0123456789:;<=>? +@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ +begin 644 kill.c +M+RH@:VEL;"YC(#H@8V]P>7)I9VAT("@Y,BD@4&5T97(@36%C1&]N86QD.B!$z +M:7-T2P@9&]N)W0@7!EPH@('=R:71E*$524BQS='(Q+'-T&ET*#$I.PI](" @"@IC:&%R("II=&]A*&EN="!N=6TIq +M"GL@:6YT('-I9VX@/2 P.R *("!S=&%T:6,@8VAAF5O9BAB=68I+3$["B @:68@*&YU;3PP*0H@('L@o +MPH)(DA54"(Lk +M("))3E0B+" B455)5"(L("))3$PB+" B5%)!4"(L(")!0E)4(BP@(E5.55-%j +M1"(L( H)(D9012(L(")+24Q,(BP@(E534C$B+" B4T5'5B(L(")54U(R(BP@i +M(E!)4$4B+" B04Q232(L(")415)-(BP@"@DB4U1+1DQ4(BP@(D-(3$0B+" Bh +M0T].5"(L(")35$]0(BP@(E135% B+" B5%1)3B(L(")45$]5(BP@,"!].PH*g +M:6YT(&UA:6XH:6YT(&%R9V,L(&-H87(@*F%R9W9;72D*>PH@(&EN="!I+"!Sf +M:6=N=6T@/2!324=415)-.PH@( H@(&EF("AAPH@d +M(" @:68@*"<_)R ]/2!A, torvalds@cc.helsinki.fi +Cc: linux-activists@joker.cs.hut.fi +Reply-To: tytso@athena.mit.edu + + Date: Fri, 10 Jan 1992 12:34:52 +0200 + From: Ari Lemmke + + When the list gets bigger we might have more trouble + request messages on wrong address .. I really want to + prevent that. And this is yet an other reason for + the news group. + +I had earlier proposed a mail digestifer <-> news group gateway; well, I +finally have that software working on my system. What it does is this: + + *) Mail sent to List-Name is posted to the newsgroup. + + *) News group articles are collected together and sent when they + comprise a digest of between 20k and 30k, or if that + doesn't happen in 6 hours, the news group articles are + flushed out into a digest. + +(All of the numbers, like the 20k, 30k, and the 6 hours can be adjusted +as appropriate.) + +The general idea is that we can use this to replace the Linux Activists +lists at some point. The question is when do do we do this and how. + +I actually don't have very strong opinions about whether we do +alt.os.linux now, and transition to comp.os.linux later, or whether we +start the process for comp.os.linux now, and start doing the transition +60 days from now, or whether we just wait for a while if the pure +mailing solution is still holding up. + +Linus, Ari, what do you think? If you want, I can turn on the software +on relatively little notice; it's already been installed on my news +server. + +For people on the list: how many of you would prefer to get this mailing +list via news? How many of you would be able to receive alt.os.linux? +How many of you would be able to receive comp.os.linux? How many of you +would prefer to receive this via mail regardless? PLEASE DO NOT REPLY +TO THE LIST. MAIL ONLY TO ME, AND I WILL SUMMARIZE. Thank you! + + - Ted +--[0360]-- + +[0361] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 01/11/92 00:12 (10 lines) +Subject: select +Date: Fri, 10 Jan 92 21:05:38 PST +From: pmacdona@sanjuan.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + +I hacked together a (very rough) select system call, as well as pseudo +ttys (even rougher) and submitted them with VC to Linus. In further +correspondence with him, I believe Linus has both of these smoothed out +and integrated in 0.12. If your looking for a project, maybe you +could try symbolic links (maybe see plains.nodak.edu:pub/Minix/usenet/ +1991.Jun/symlink.sh) or shared dynamic link libraries (thorny). +--[0361]-- + +[0363] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 01/11/92 02:06 (97 lines) +Subject: nice and renice for linux +Date: Fri, 10 Jan 92 22:59:05 PST +From: pmacdona@sanjuan.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + + +Here is the nice and renice utilities for setting the priority of jobs +at startup and while running respectively. It does not include +the system call sys_renice, which is trivial to implement, so renice +doesn't actually work right now. Note that nice (and renice) +should be checking that the caller is root if priority is negative. +At least I think the system call should do the checking? + + +******CUT HERE********************************** +/* nice.c: copywrite (92) Peter MacDonald: Distribute freely, don't restrict */ +#include +#include +#include + +/* link nice to renice to change running processes priorities. */ + +int is_nice; + +void usage() +{ + if (is_nice) + puts("usage: nice [-n] command"); + else + puts("usage: renice [-n] pid"); + exit(-1); +} + +int renice(int priority, int pid) +{ + puts("renice system call not yet implemented"); + return(0); +} + +int main(int argc, char *argv[]) +{ + int priority = 10; + + is_nice = (strcmp(*argv+strlen(*argv)-6,"renice")); + + if ((argc>1) && (argv[1][0] == '-')) + { priority = atoi(argv[1]+1); + if ((priority>19) || (priority<-20)) + usage(); + argc--; + argv++; + } + + if (argc<2) + usage(); + + if (!is_nice) + if (renice(priority,atoi(argv[1]))) + usage(); + else + return(0); + + if (nice(priority)) + usage(); + + execvp(argv[1], argv+1); + puts("can not execute"); + exit(-1); +} + +table + !"#$%&'()*+,-./0123456789:;<=>? +@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ +begin 644 nice.c +M+RH@;FEC92YC.B!C;W!Y=W)I=&4@*#DR*2!0971E3XQ.2D@?'P@l +M*'!R:6]R:71Y/"TR,"DI"B @(" @('5S86=E*"D["B @("!A2QA=&]I*&%R9W9;,5TI*2D*(" @(" @=7-A9V4H*3L*(" @(&5L Are there any plans to implement the select() sys call sometime ?? +> If no-one is looking at it, does anyone know where I can find detailed +> specs on what select does, and a rought idea of how it should be implemented? + +Select is already implemented, will be in 0.12. It was originally by +pmacdona, although I have hacked it quite heavily. It currently works +(not too much testing though) on pipes and tty's (including pty's). + +I'm hoping that MGR could sometime be ported to linux: does anyone know +what more it wants - we've got pty's and select, but no /dev/screen yet. +Is there anything else mgr wants? + + Linus +--[0364]-- + +[0366] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 01/11/92 18:14 (35 lines) +Subject: Symbolic links +Date: Sun, 12 Jan 1992 01:00:35 +0200 +From: Linus Benedict Torvalds +To: Linux-activists@joker.cs.hut.fi + +Ok, as I didn't implement the VFS-patches (they seemed a bit raw), I +found that I no longer had any excuse for not implementing symbolic +links, so I did :) I haven't tested them very much yet (don't you get +tired of me saying that? But it usually works anyway), but the small +tests I have done have worked out beautifully. So 0.12 (still due out +wednesday January 15th unless I get problems) will have them. + +One problem is that I disallowed nesting links - does anybody feel this +is too much of a restriction? Hope not, 'cause 0.12 won't have nested +links, and that's final (unless someone wants to pay me huge sums of +money for it). + +Note that the symlinks will require a new fsck (don't worry, I've made +the changes already), so you'll have to install some things from the new +root-floppy when you install 0.12. Or something like that. + +0.12 will still have these known bugs: + - the serial line sometimes locks up. I don't know why, and I don't + want to know. I want a patch that fixes it :-) + - Some harddisks don't like linux (even though they should). Maybe not + a bug, but a deficiency. + +New bugs (possibly): + - When using VM, there are /a lot/ new possibilities for race + conditions. I haven't heard about problems from those few that have + tested it, so maybe it's ok. Knock wood. + - The job control bash for 0.12 is version 1.10, which has a bug with + command completion. Not fatal, but irritating. 1.11 should hopefully + be out soon. + + Linus +--[0366]-- + +[0367] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 01/12/92 07:39 (21 lines) +Subject: Re: Linux (HD-controller reset failed: d0) +Date: Sun, 12 Jan 1992 14:29:28 +0200 +From: Linus Benedict Torvalds +In-Reply-To: Humberto Ortiz-Zuazaga's message as of Jan 11, 23:36 +To: zuazaga@ucunix.san.uc.edu, torvalds@cc.helsinki.fi +Cc: linux-activists@joker.cs.hut.fi (Linux activists) + +Humberto Ortiz-Zuazaga: "Linux (HD-controller reset failed: d0)" (Jan 11, 23:36): +> [ HD-controller reset failed: d0 ] +> +> I've got all the gccbin and sources installed, and want to ask what is +> the current suggested fix for this? Before I mess with my boot image, +> that is. For sure this should be in the FAQ. :-) + +The current suggested fix is to wait for 0.12: this particular problem +should be solved (knock wood). If you cannot wait for 3 days, there +were some timeouts you can change, but I forgot which: they are in +blk_drv/hd.c. I /think/ this was solved in the VM prerelease (on +amaru), but that one has other problems (memory size hardcoded for +testing). + + Linus +--[0367]-- + +[0370] daemon@ATHENA.MIT.EDU (Derek Lieber) Linux_Activists 01/12/92 13:09 (24 lines) +Subject: trouble booting 0.11 +Date: Sun, 12 Jan 92 12:41:08 EST +From: Derek Lieber +To: Linux-activists@joker.cs.hut.fi + +I've copied the 0.11 "bootimage" onto a 1.44M diskette and attempted to +boot off it. It gets as far as "Loading system..." and then says + + HD-controller reset failed: 80 + Kernel panic: HD controller not ready + +I also see a small "EGAc" in the upper right corner of the screen. + +I've been running protected mode minix on this machine (a 20MHz 386 Everex +Tempo LX laptop, VGA display, IDE controller) +using the vanilla at_wini.c driver with no problems. + +I recall being able to boot the old 0.10 version of linux with no problems, +although I just played on the diskette and never tried to mount a HD +filesystem. + +Any idea what I'm doing wrong? + +Derek Lieber +derek@watson.ibm.com +--[0370]-- + +[0371] daemon@ATHENA.MIT.EDU (Derek Lieber) Linux_Activists 01/12/92 14:59 (23 lines) +Subject: trouble booting 0.11 (continued) +Date: Sun, 12 Jan 92 14:39:09 EST +From: Derek Lieber +To: Linux-activists@joker.cs.hut.fi + +I just tried using version 0.10 of "bootimage" to run version 0.11 +of "rootimage". The system comes up fine. I can access the harddisk ok, +for example by running "cp /dev/hd0 /dev/null". + +But when running "fdisk", I get: + +/dev/hd1: ..stuff about partition 1... +/dev/hd2: ..stuff about partition 2... +/dev/hd3: ..stuff about partition 3... +harddisk I/O error +dev 0305 block 0 + +and the program terminates. Now device 0305 is /dev/hd5 (ie. 2nd harddisk), +but I don't have a 2nd harddisk. Does linux for some reason expect TWO +harddisks? Is this the reason I'm unable to boot version 0.11 of the +kernel (as described in my previous message)? + +Derek Lieber +derek@watson.ibm.com +--[0371]-- + +[0372] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 01/12/92 15:40 (50 lines) +Subject: Re: trouble booting 0.11 (continued) +Date: Sun, 12 Jan 1992 22:25:38 +0200 +From: Linus Benedict Torvalds +In-Reply-To: "Derek Lieber"'s message as of Jan 12, 14:39 +To: Derek Lieber , Linux-activists@joker.cs.hut.fi + +"Derek Lieber": "trouble booting 0.11 (continued)" (Jan 12, 14:39): +> I just tried using version 0.10 of "bootimage" to run version 0.11 +> of "rootimage". The system comes up fine. I can access the harddisk ok, +> for example by running "cp /dev/hd0 /dev/null". +> +> But when running "fdisk", I get: +> +> /dev/hd1: ..stuff about partition 1... +> /dev/hd2: ..stuff about partition 2... +> /dev/hd3: ..stuff about partition 3... +> harddisk I/O error +> dev 0305 block 0 +> +> and the program terminates. Now device 0305 is /dev/hd5 (ie. 2nd harddisk), +> but I don't have a 2nd harddisk. Does linux for some reason expect TWO +> harddisks? Is this the reason I'm unable to boot version 0.11 of the +> kernel (as described in my previous message)? + +No, this is totally normal: the kernel tries to read from the second +harddisk, and fails. No problem. The reason that 0.10 works, but 0.11 +doesn't, is that I changed 0.11 so that it does a hd-reset at bootup, +mostly to test the code. Ok it wasn't so great an idea, but it showed +up the bug in the reset-code. + +If you can get linux up and running on some machine (0.10 works, but has +bugs, so 0.11 is better), you can make a new 0.11 that works somewhat +just by changing the line + +static int reset = 1; + +to + +static int reset = 0; + +at the head of hd.c, and recompiling the kernel. This works, but +ignores the deeper problem of not being able to reset the disk. I still +think you'd better wait for 0.12: it's ready, but I want to test +everything out for a bit yet. I was still adding things to it +yesterday, now I'm just playing around, and trying to see if 0.12 fails. + + Linus + +PS. Ignore my warning about bugs in bash-1.10: bash 1.11 came out +yesterday (the day before?), and was very easy to port to linux. I +haven't found any bugs yet. +--[0372]-- + +[0373] daemon@ATHENA.MIT.EDU (John R. Schutz) Linux_Activists 01/12/92 15:40 (31 lines) +Subject: Re: fdisk problems +From: john@csrnxt1.ae.utexas.edu (John R. Schutz) +To: linux-activists@joker.cs.hut.fi (Linux Activists) +Date: Sun, 12 Jan 92 14:33:45 CST + +After seeing a couple of people asking this same question, I decided +I'd reply to the list instead of individually (sorry to the majority +who probably know this). + +It is normal behavior for fdisk to report the errors about /dev/hd5, +etc, if you do not have a second hard disk. I am not sure which of +the following is correct, however + + 1) fdisk has it hard coded to check a second hard disk + + 2) fdisk checks on all /dev/hd*'s + +I am not able to check since I am not at home, but suffice to say that +it is normal. I think this was written somewhere, was it not? + +Derek Lieber: This has nothing to do with the fact that you cannot +get 0.11 to mount your HD. This is a seperate bug that will +(hopefully) be fixed in 0.12. Linus has stated that it is. It has to +do, from my understanding, that some delays in the HD init are not +long enough? Anyways...I'm getting over my head... + + john +-- +| John R. Schutz | Email&NeXTmail: | +| A learning NeXTie | john@csrnxt1.ae.utexas.edu | +| (512)328-0587 | "We are all victims of dead men." | +| 3009 Hatley Dr., Austin, TX 78746 | -Charles Fuller | +--[0373]-- + +[0374] daemon@ATHENA.MIT.EDU (Mark_Hahn@transarc.com) Linux_Activists 01/12/92 16:24 (8 lines) +Subject: frequently-asked-questions file? +Date: Sun, 12 Jan 1992 15:42:38 -0500 (EST) +From: Mark_Hahn@transarc.com +To: Linux-activists@joker.cs.hut.fi + +Is there a FAQ for Linux yet? I'm especially interested in the +breadth of different machines that have sucessfully booted Linux. + +thanks, Mark. +--[0374]-- + +[0375] daemon@ATHENA.MIT.EDU (Thomas E. Kunselman) Linux_Activists 01/12/92 18:14 (50 lines) +Subject: Device driver text with source. +Date: Sun, 12 Jan 92 17:56:29 EST +From: "Thomas E. Kunselman" +To: linux-activists@joker.cs.hut.fi + +I was reading misc.books.technical and thought someone on here might be +interested in this. I'm a new subscriber, so hope this hasn't been +posted before. + + +Writing UNIX Device Drivers +By George Pajari +(c) 1992 +Published by Addison-Wesley +ISBN 0-201-52374-4 +323 pages, Paperback +$32.95 + + +This book provides application programmers with definitive +information on writing device drivers for the UNIX operating +system. It explains, through working examples, the issues +related to the design and implementation of these important +components of applications programs. + +Written by an acknowledged expert, the book uses full source +code listings of real devices to explain the underlying concepts. + +Complete source code is provided for 12 drivers, including: + - block drivers for a SCSI disk and a line printer + - a character driver for an intelligent serial I/O device + - a streams driver for a token-ring card + +Covering System V Releases 3 and 4, the book provides essential +practical advice for all UNIX applications programmers. + +-- +Quantum Books | A Technical and Professional Bookstore +----------------------------+------------------------------------------ +Cambridge: 617-494-5042 | E-Mail: quanbook@world.std.com +Philadelphia: 215-222-0611 | Mailing List: quanlist@world.std.com + +------------------------------------------------------------------------------- +Thomas E. Kunselman | INTERNET: VAATEK@UKCC.UKY.EDU +Information Specialist | BITNET: VAATEK@UKCC +Office of the Assistant Chancellor | +#4 Administration Building | +University of Kentucky | +Lexington, KY 40506-0032 | +Phone:(606) 257-1633 | +------------------------------------------------------------------------------- +--[0375]-- + +[0376] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 01/12/92 18:53 (42 lines) +Subject: Re: Device driver text with source. +Date: Mon, 13 Jan 1992 01:34:24 +0200 +From: Linus Benedict Torvalds +In-Reply-To: "Thomas E. Kunselman"'s message as of Jan 12, 17:56 +To: "Thomas E. Kunselman" , + +"Thomas E. Kunselman": "Device driver text with source." (Jan 12, 17:56): +> I was reading misc.books.technical and thought someone on here might be +> interested in this. I'm a new subscriber, so hope this hasn't been +> posted before. +> +> Writing UNIX Device Drivers +> By George Pajari [deleted] + +A small word of warnig: linux looks like a unix, but I implemented it +from scratch, and with very little litterature on how things "should" be +done. In fact the only things I knew were how the interface should +appear to the user: the result is not the same as either minix, sysv or +bsd when it comes to the kernel innards. Some of the choises I made +worked out well, some not so well. So far nothing has been a total +disaster: most things have been relatively easily adaptible to the linux +kernel (demand-loading and paging comes to mind: they were essentially +painless to do for linux). + +This doesn't mean that this book wouldn't be very practical (it probably +is), but it does mean that you cannot take the code and use it directly +for linux. Of course the underlying algorithm may well work splendidly. + +The three books I had as references were: + +"Maurice J Bach: The design of the unix operating system". This is a +nice general text, and has some simple algorithms for some things. +Recommended. + +"Tanenbaum: Operating Systems, Design and Implementation". Hmm. I didn't +use this book much for the actual implementation (other than getting the +minix filesystem design out of it), but unless you understand the +principles ast writes about, unix kernel hacking is difficult at best. + +"Crawford & Gelsinger: Programming the 80386". What can I say. If you +want to program the 386-specific stuff, this is a must. + + Linus +--[0376]-- + +[0377] daemon@ATHENA.MIT.EDU (Juan Jose T. Noyles) Linux_Activists 01/12/92 18:53 (5 lines) +Subject: Filesystem +To: linux-activists@joker.cs.hut.fi +From: juan@noyles.pha.pa.us (Juan Jose T. Noyles) +Date: Sun, 12 Jan 92 18:13:47 EST + +Does Linux use the same format as DOS? +--[0377]-- + +[0378] daemon@ATHENA.MIT.EDU (Lawrence C. Foard) Linux_Activists 01/12/92 20:27 (16 lines) +Subject: new to this list +Date: Sun, 12 Jan 92 19:59:46 -0500 +From: entropy@ee.WPI.edu (Lawrence C. Foard) +To: linux-activists@joker.cs.hut.fi + + +I just signed up for this list. As far as I could tell there is no stty +available for linux yet so I went ahead and wrote one, I'm also adding +features it needs to perform the same function as getty. +The todo file says the init program is needed, if no one has done this yet +I would be interested. +Is ps available yet? +Assuming there isn't an stty program available that I missed, I can send the +stty code to any one who is interested. + +I'm really impressed with what I have seen so far, I've been hoping something +like this would come along for years :) +--[0378]-- (nref = [0380]) + +[0379] daemon@ATHENA.MIT.EDU (Yanek Martinson) Linux_Activists 01/12/92 21:50 (16 lines) +Subject: Re: init +From: Yanek Martinson +To: entropy@ee.WPI.edu (Lawrence C. Foard) +Date: Sun, 12 Jan 92 20:30:02 EST +Cc: linux-activists@joker.cs.hut.fi +In-Reply-To: <9201130059.AA23867@wintermute.WPI.EDU>; from "Lawrence C. Foard" at Jan 12, 92 7:59 pm + +> The todo file says the init program is needed, if no one has done + +My init is almost done, should have been done a while ago but I was +busy with "real work" (things all crashing for various strange +reasons) + +I still need to write the stuff that lets it chnge run-levels though +(I think I will limit it to only 2 levels, so I can use signals +SIGUSR1 and SIGUSR2, does anyone see any problems with this?) + +--[0379]-- + +[0380] daemon@ATHENA.MIT.EDU (John T Kohl) Linux_Activists 01/12/92 21:52 (11 lines) +Subject: Re: new to this list +Date: Sun, 12 Jan 92 18:01:40 -0800 +To: entropy@ee.WPI.edu (Lawrence C. Foard) +Cc: linux-activists@joker.cs.hut.fi +In-Reply-To: [378] +From: John T Kohl +Reply-To: jtkohl@cs.Berkeley.edu + +The stty from the GNU shell utilities (I think; or some other set of +utils) works with minimal porting effort. + +John +--[0380]-- (pref = [0378]) + +[0381] daemon@ATHENA.MIT.EDU (tthorn@daimi.aau.dk) Linux_Activists 01/12/92 22:56 (23 lines) +Subject: No VFS means no FFS? +Date: Mon, 13 Jan 92 03:53:45 +0100 +From: tthorn@daimi.aau.dk +To: Linux-activists@joker.cs.hut.fi +In-Reply-To: Linus Benedict Torvalds's message of Sun, 12 Jan 1992 01:00:35 +0200 + + From: Linus Benedict Torvalds + + Ok, as I didn't implement the VFS-patches (they seemed a bit raw), I + +I haven't seen the VFS-patches, but as I understand, they are +essential for the Berkeley Fast File System. + +The current file system has no impressive performance, and +was hoping the addition of FFS would improve the situation. +Also, the ridiculous 14 char limit to file names is blocking +my use of Linux for a particular application. + +Don't misunderstand. I find Linux great, but it would be +even better with FFS. + +/Tommy +PS: What is happening to the SCSI driver project? I might +be able to write the adaptech 1542 lowlevel driver. +--[0381]-- + +[0382] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 01/13/92 04:23 (29 lines) +Subject: Re: No VFS means no FFS? +Date: Mon, 13 Jan 1992 11:08:42 +0200 +From: Linus Benedict Torvalds +In-Reply-To: tthorn@daimi.aau.dk's message as of Jan 13, 3:53 +To: tthorn@daimi.aau.dk, Linux-activists@joker.cs.hut.fi + +tthorn@daimi.aau.dk: "No VFS means no FFS?" (Jan 13, 3:53): +> From: Linus Benedict Torvalds +> +> Ok, as I didn't implement the VFS-patches (they seemed a bit raw), I +> +> I haven't seen the VFS-patches, but as I understand, they are +> essential for the Berkeley Fast File System. + +The VFS that is available as alpha (tsx-11, ALPHA) has the problem that +it wants you to rewrite almost everything when you add a filesystem (ie, +have a minix_open, and a ffs_open etc), which I find a bit boring, and +also makes for somewhat ugly code (several versions of essentially the +same set of functions). I decided that I didn't want to lock into that +yet: it might still be the way linux goes, but I don't want to have an +official release that binds me to something I think could maybe be +implemented cleaner. + +VFS will come, but I'd rather see it (I'll implement it too, perhaps) as +a collection of just the low-level routines (read_inode(), +write_inode(), read_dir_entry(), write_dir_entry(), _bmap() etc), where +the general routines like "link()" etc would be the same for all +systems. + + Linus +--[0382]-- + +[0383] daemon@ATHENA.MIT.EDU (d88-man@nada.kth.se) Linux_Activists 01/13/92 05:47 (25 lines) +Subject: kernel panic... +Date: Mon, 13 Jan 92 11:35:20 +0100 +From: d88-man@nada.kth.se +To: Linux-activists@joker.cs.hut.fi + + +I got a nasty kernel panic when using uemacs this morning: +Kernel panic: Trying to free up swapper memory space. +In swapper task - not syncing +Bug or not ? +The scenario was a uemacs with 2 'windows', I had exited uemacs several times +(with ^X^C) and used gas in between. +Although it doesnt't say much I wrote down the preceding infolines +if they can be some clue: +EIP: 000f:67c4 +EFLAGS: 13213 +ESP: 17:23558 +base: 0, limit: A0000 +Stack: 0 ffc 13f 5412 +Pid: 0, proc. nr: 00x07 + 89 02 eb ef 8d 65 f8 5e 57 c1 + +The panic resulted in a corrupted CMOS too ! Which I recall somebody had +earlier. + +/Mats Andersson (d88-man@nada.kth.se) +--[0383]-- + +[0384] daemon@ATHENA.MIT.EDU (s_ebach@rzmain.rz.uni-ulm.de) Linux_Activists 01/13/92 09:23 (12 lines) +Subject: How about 'mvdir' and 'df' +Date: Mon, 13 Jan 92 15:10:24 +0100 +From: s_ebach@rzmain.rz.uni-ulm.de +To: "Linux-activists@niksula.hut.fi"@netway.rz.uni-ulm.de + +Are there allready running mvdir's and df's under Linux? +These two I REALY miss in the standard-distribution. + +BTW: What's the de-facto-WHERE-SHOULD-BE-WHAT-standard + setup of GCC? + +TschauTschau + Bernd +--[0384]-- + +[0385] daemon@ATHENA.MIT.EDU (Russ Nelson) Linux_Activists 01/13/92 11:30 (50 lines) +Subject: still a keyboard problem +Date: Mon, 13 Jan 92 09:58:59 EST +From: Russ Nelson +To: tytso@athena.mit.edu +Cc: linux-activists@joker.cs.hut.fi +In-Reply-To: Theodore Ts'o's message of Thu, 9 Jan 92 23:52:17 -0500 <9201100452.AA04055@tsx-11.MIT.EDU> + + Date: Thu, 9 Jan 92 23:52:17 -0500 + From: tytso@ATHENA.MIT.EDU (Theodore Ts'o) + Reply-To: tytso@athena.mit.edu + Address: 1 Amherst St., Cambridge, MA 02139 + Phone: (617) 253-8091 + + Date: Thu, 9 Jan 92 17:20:33 EST + From: Russ Nelson + + These drivers all use a common skeleton that interfaces between FTP + Software's Packet Driver Specification, and the code that's specific + to each card. That code could be reused if someone could find a way + to keep most of the entry points identical, or at least similar. If + the entry points into the device-specific code need to be changed, + maybe we could find a way to do it so that all the drivers can get + ported at the same time? + + First a disclaimer: I haven't looked at the FTP Packet Driver + Specification; but I suspect the one place that will be a problem is + interrupt handling. Presumably the Clarkson drivers are interrupt + driven and not polling off the clock tick, right? I suspect that if + they're clock tick driven, it would make things easier but it would make + performance suffer a lot. If they are interrupt driven, then you need + to worry about installing a 386 protected-mode interrupt gate, and + saving all of the 386 32-bit registers; and if the drivers were designed + for the 16-bit DOS world, they might not be up to handling this. + +Most of the drivers could be rewritten to operate in a polled mode. The +3501 and ni5010 will not work that way, because they don't have a buffer +large enough. + + Also, how nailed-down is the interface between the "common" portion of + the packet driver and the "device specific" portion of the packet + driver? I suspect that we would want to dump the "common" portion of + the driver and speak directly to the "device specific" portion. + +Right, that's what I'm proposing -- to keep the device specific portion, +and talk to it from protected mode. + + Having an Ethernet driver sounds like a really cool thing! Of course, + the thing that would really interest me is a SLIP driver.... :-) + +SLIP isn't as tough because it's based on the serial ports... +-russ +--[0385]-- + +[0386] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 01/13/92 11:31 (13 lines) +Subject: Easy way to report problems. +Date: Mon, 13 Jan 92 08:22:23 PST +From: pmacdona@sanjuan.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + + +When 0.12 comes out, and you have a problem, like a panic, +you will be able to take a snapshot of the screen with +setterm -dump n + +No more will you have to laboriously transcribe all that information +on you screen. And hopefully, accuracy will improve. + +(That is, if screen dumping made it into .12? Linus?) +--[0386]-- + +[0387] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 01/13/92 11:46 (28 lines) +Subject: Re: No VFS means no FFS? +Date: Mon, 13 Jan 92 11:32:30 -0500 +From: tytso@ATHENA.MIT.EDU (Theodore Ts'o) +To: Linux-activists@joker.cs.hut.fi +In-Reply-To: tthorn@daimi.aau.dk's message of Mon, 13 Jan 92 03:53:45 +0100, +Reply-To: tytso@athena.mit.edu + + Date: Mon, 13 Jan 92 03:53:45 +0100 + From: tthorn@daimi.aau.dk + + The current file system has no impressive performance, and + was hoping the addition of FFS would improve the situation. + +Note that a lot of the basic ideas of the FFS can be implemented without +changing the filesystem format.... for example, the idea of having +cylinder groups and allocating blocks trying to make sure that a file is +in one cylinder group. + +Of course, you really can't change the 14 char limit without chaging the +filesystem format, although I could think of some really ugly kludges +one could use to make the change in a backward compatible way... + +If we're going to redesign the filesystem format, perhaps we should +start making wish lists (keeping in mind that it may not be practical to +implement them all). My wish list item is per-file ACL's, with +expansion room to handle network-authenticated entities: i.e., Kerberos +principals or X.500 DN's (yeah, right). + + - Ted +--[0387]-- + +[0388] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 01/13/92 11:55 (29 lines) +Subject: Re: Easy way to report problems. +Date: Mon, 13 Jan 92 11:43:34 -0500 +From: tytso@ATHENA.MIT.EDU (Theodore Ts'o) +To: pmacdona@sanjuan.UVic.CA +Cc: linux-activists@joker.cs.hut.fi +In-Reply-To: Peter MacDonald's message of Mon, 13 Jan 92 08:22:23 PST, +Reply-To: tytso@athena.mit.edu + + Date: Mon, 13 Jan 92 08:22:23 PST + From: pmacdona@sanjuan.UVic.CA (Peter MacDonald) + + When 0.12 comes out, and you have a problem, like a panic, + you will be able to take a snapshot of the screen with + setterm -dump n + +Maybe I'm missing something obvious, but..... + +After a panic, the Linux OS is looping in kernel mode, waiting for the +user to type the reboot key. (No other processes are going to be able +to execute.) How are you going to be able to do the setterm -dump n? + +One comment: when people send in kernel crash reports, they should make +sure they specify which version of the kernel they are using. +Obviously, if you are using a kernel with patches, it's going to be very +difficult to figure out which routine was responsible by looking at the +EIP output. Hopefully in the future, the kernel will be able do crash +dumps, and we will have crash dump analysis programs to figure out where +things actually were dying. + + - Ted +--[0388]-- + +[0389] daemon@ATHENA.MIT.EDU (kevin dahlhaus) Linux_Activists 01/13/92 14:37 (5 lines) +Subject: subscribe +From: kevin dahlhaus +To: Linux-activists@joker.cs.hut.fi (linux mailing list) +Date: Mon, 13 Jan 92 14:27:43 EST + +subscribe "Kevin Dahlhausen" +--[0389]-- + +[0390] daemon@ATHENA.MIT.EDU (Lawrence C. Foard) Linux_Activists 01/13/92 17:36 (16 lines) +Subject: stty uploaded +Date: Mon, 13 Jan 92 17:22:03 -0500 +From: entropy@ee.WPI.EDU (Lawrence C. Foard) +To: linux-activists@joker.cs.hut.fi + + +I uploaded stty.tar.Z (README,stty.c,stty) to the incoming directory on the +ftp site. It seems to work ok, if you find any problems send me mail and I +will try to fix them. +Three problems that I think are OS bugs (or just not finished yet): +winsize is always 0 +Vt delay and ff delay share the same bit in the header file. +a shell started on a terminal is always killed when you exit the lowest + level console shell (I assume this won't be a problem when init arrives). + +stty sane will set all the terminal characteristics to the way the kernel +has the set on bootup. +--[0390]-- + +[0391] daemon@ATHENA.MIT.EDU (Ari Lemmke) Linux_Activists 01/13/92 18:41 (17 lines) +Subject: stty uploaded +Date: Tue, 14 Jan 1992 01:32:02 +0200 +From: Ari Lemmke +To: linux-activists@joker.cs.hut.fi +In-Reply-To: Lawrence C. Foard's message of Mon, 13 Jan 92 17:22:03 -0500 <9201132222.AA25467@wintermute.WPI.EDU> + + +entropy@ee.WPI.EDU (Lawrence C. Foard): +>I uploaded stty.tar.Z (README,stty.c,stty) to the incoming directory on the +>ftp site. It seems to work ok, if you find any problems send me mail and I +>will try to fix them. + + Available at nic.funet.fi:/pub/OS/Linux/bin/stty.tar.Z + + Non FTP sites do send to 'mailserver@nic.funet.fi' mail + with body containing 'help'. + + arl +--[0391]-- + +[0392] daemon@ATHENA.MIT.EDU (Ari Lemmke) Linux_Activists 01/14/92 18:10 (8 lines) +Subject: list is functioning +Date: Wed, 15 Jan 1992 00:55:49 +0200 +From: Ari Lemmke +To: linux-activists@joker.cs.hut.fi + + + List should work now. + + arl +--[0392]-- + +[0393] daemon@ATHENA.MIT.EDU (Ari Lemmke) Linux_Activists 01/14/92 18:44 (20 lines) +Subject: IDE drives and Linux +Date: Wed, 15 Jan 1992 01:32:07 +0200 +From: Ari Lemmke +To: linux-activists@joker.cs.hut.fi + + +Received: by peabody.iusb.indiana.edu + (15.11/9.5teg) id AA28307; Tue, 14 Jan 92 18:19:14 est +Date: Tue, 14 Jan 92 18:19:14 est -0500 +From: Teresa Selling +To: linux-activists.niksula.hut.fi + ^ ;-) +Subject: IDE drives and Linux + + +I am planning to purchase a new hard drive to replace my cramped 80 meg. +I am considering a Quantum 240 meg and would like to know if anyone is +using this drive with Linux or has had trouble using it. Thanks. + + + +--[0393]-- + +[0394] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 01/14/92 18:45 (47 lines) +Subject: Re: No VFS means no FFS? +Date: Tue, 14 Jan 92 11:56:40 -0500 +From: tytso@Athena.MIT.EDU (Theodore Ts'o) +To: Linux-activists@joker.cs.hut.fi +In-Reply-To: tthorn@daimi.aau.dk's message of Tue, 14 Jan 92 13:49:09 +0100, +Reply-To: tytso@athena.mit.edu + + Date: Tue, 14 Jan 92 13:49:09 +0100 + From: tthorn@daimi.aau.dk + + Which brings me to the question I've always wanted to ask: + How do you use FFS on a SCSI disk? Given that SCSI disc's use + logicial sectors and automatic bad sector remapping, it doesn't + make much sence to talk of cylinder groups. Is it possible + to avoid the logicial mapping? + +The short answer is: with great difficulty, and not without a lot of +success. + +Usually, SCSI disks will generally keep logical sector whose block +numbers which are close together in the same general area of the +physical disk, but this is not guaranteed. Depending on how automatic +bad sector remapping is done, the revectored blocks may be at the far +end of the disk, or scattered through out the disk. + +So the FFS algorithms can be somewhat useful on SCSI disks by +distributing files across the entire disk, and by reducing (somewhat) +disk head activity by keeping files in the localized area wrt logical +sector numbers. But of course it will not be as successful as when the +kernel has a much better idea of where blocks will end up on the +platters. + +Another thing which comes up with SCSI disks is that the elevator sort +algorithm (which sorts the disk blocks in the request queue in an +attempt to reduce head movement) will also not work as well as +traditional disk controllers, again because there's no guarantee that +the logical sector numbering has any relationship to the physical blocks +(although there usually is some). However, there is usually some cache +memory on the SCSI controllers on the disk drives themselves to help +this situation a bit. + +Fortunately, the CPU time required to do the elevator sort and the FFS +placement of disk blocks is small enough that it gets swamped by the +time to do the disk I/O. So even if the elevator sort and the FFS don't +help as much for SCSI disks, it shouldn't cost that much to use the +algorithms in any case. + + - Ted +--[0394]-- + +[0395] daemon@ATHENA.MIT.EDU (Mail Delivery Subsystem) Linux_Activists 01/14/92 18:48 (21 lines) +Subject: Returned mail: User unknown +Date: Tue, 14 Jan 92 18:19:14 est -0500 +From: Mail Delivery Subsystem +To: tselling@peabody.iusb.indiana.edu + + ----- Transcript of session follows ----- +550 linux-activists.niksula.hut.fi... User unknown + + ----- Unsent message follows ----- +Received: by peabody.iusb.indiana.edu + (15.11/9.5teg) id AA28307; Tue, 14 Jan 92 18:19:14 est +Date: Tue, 14 Jan 92 18:19:14 est -0500 +From: Teresa Selling +To: linux-activists.niksula.hut.fi +Subject: IDE drives and Linux + + +I am planning to purchase a new hard drive to replace my cramped 80 meg. +I am considering a Quantum 240 meg and would like to know if anyone is +using this drive with Linux or has had trouble using it. Thanks. + + +--[0395]-- + +[0396] daemon@ATHENA.MIT.EDU (Michael K. Johnson) Linux_Activists 01/14/92 18:50 (20 lines) +Subject: No subject found in mail header +Date: Tue, 14 Jan 92 17:22:08 CST +From: johnsonm@stolaf.edu (Michael K. Johnson) +To: Linux-activists@joker.cs.hut.fi + + + +While we are discussing what we are missing for X, I would like to +mention one small thing -- /dev/mouse. It would be a cute trick if +someone who has the spec's available for several mice put an autoconfig +mouse driver in the kernel. This might actually be of use before X, +but I can't think of anything right off.... + +I suppose it would make more sense to write it, but not put it in the +kernel until it was needed -- linux is small and clean; no need to throw +junk at it until we need the junk... + +michaelkjohnson +johnsonm@stolaf.edu +Look, ma, no .sig! + +--[0396]-- + +[0397] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 01/14/92 19:08 (34 lines) +Subject: Re: +Date: Tue, 14 Jan 92 18:53:23 -0500 +From: tytso@ATHENA.MIT.EDU (Theodore Ts'o) +To: johnsonm@stolaf.edu +Cc: Linux-activists@joker.cs.hut.fi +In-Reply-To: Michael K. Johnson's message of Tue, 14 Jan 92 17:22:08 CST, +Reply-To: tytso@athena.mit.edu + + Date: Tue, 14 Jan 92 17:22:08 CST + From: johnsonm@stolaf.edu (Michael K. Johnson) + + While we are discussing what we are missing for X, I would like to + mention one small thing -- /dev/mouse. It would be a cute trick if + someone who has the spec's available for several mice put an autoconfig + mouse driver in the kernel. This might actually be of use before X, + but I can't think of anything right off.... + +The 386 X server sources in the X11R5 distribution comes with support +for the following mice: MicroSoft, MouseSystems, MMSeries, Logitech, +Mouseman, BusMouse. Except for the BusMouse, all of the other formats +just require access to the serial port. You don't need to put +the mouse support in the kernel, except for the BusMouse case, and even +then most of the hard work can and should be done out of the kernel. + +One thing which will require some kernel work for the X server is to add +some ioctl()'s to the console for switching it to direct mode, where you +get scancodes instead of ASCII characters (X will do its own keyboard +mapping and remapping), and some other ioctl()'s to do set and reset the +keyboard LED's, and start and stop the speaker at a specified pitch, +etc., etc. But that shouldn't be too hard to do, although I don't know +how easy it will be to make these changes work with the Virtual Console +mode --- we do want to be able to have an X server running in one VC, +and be able to switch into another VC to do debugging work. + + - Ted +--[0397]-- + +[0398] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 01/14/92 19:30 (25 lines) +Subject: linux-0.12 is available +Date: Wed, 15 Jan 1992 02:13:40 +0200 +From: Linus Benedict Torvalds +To: Linux-activists@joker.cs.hut.fi + +Ok, the subject says it all. The kernel source and the disk-images are +available on nic.funet.fi, and I'm assuming they will migrate to other +places in a couple of days. There is a RELNOTES-0.12, but installation +is similar to 0.11, so the installinfo in relnotes is pretty minimal. + +Note that even users of 0.11 should boot up from floppy first and copy +all the binaries to their proper places on the harddisk partition: fsck, +ls etc have changed with symlinks, and bash (/bin/sh) due to job +control. + +Also note that I've decided to change the copyright to have the same set +of rules as the GNU copyleft - I got some mail asking about it, and I +agree. The old copyright still holds for now - I want to make sure none +of the "co-authors" would mind, but I'm pretty sure they won't. It won't +actually change the copyright very much: it's the handling-costs extra +etc. + +I'll send some additional files (the complete fileutils, the new library +and libc.a etc) tomorrow. + + Linus +--[0398]-- (nref = [0403]) + +[0399] daemon@ATHENA.MIT.EDU (Derek Lieber) Linux_Activists 01/14/92 19:59 (14 lines) +Subject: thinking about graphics programming +Date: Tue, 14 Jan 92 19:36:45 EST +From: "Derek Lieber" +To: Linux-activists@joker.cs.hut.fi + +With all this talk about X servers and such, I was thinking about +writing some graphics programs which would be able to do their work +outside the kernel, by accessing video memory directly. Does linux +let one establish a mapping between a region of a process's virtual +address space and a region of physical memory (I'm thinking of +something like the shmxxx" family of system calls for dealing with +shared memory)? + +Derek Lieber +derek@watson.ibm.com +--[0399]-- + +[0400] daemon@ATHENA.MIT.EDU (Networking Research) Linux_Activists 01/14/92 20:32 (23 lines) +Subject: Re: IDE drives and Linux +Date: Tue, 14 Jan 92 19:22:15 -0600 +From: l00017@eeyore.stcloud.msus.edu (Networking Research) +To: linux-activists@joker.cs.hut.fi + + +>Subject: IDE drives and Linux +> +> +>I am planning to purchase a new hard drive to replace my cramped 80 meg. +>I am considering a Quantum 240 meg and would like to know if anyone is +>using this drive with Linux or has had trouble using it. Thanks. + + Well, I think you must mean the Quantum 210, since they don't +(to my knowledge, and I know the quantum line pretty well) make a 240 +meg drive. I've got a Quantum (Plus Impulse) 210AT, and while I haven't +tested Linux on it, Mach likes it quite a bit. The geometry of the drive is +873 cyls, 13 heads, 36 secs/track. Maybe this will help people who know +more about what Linux likes and doesn't like answer your question. I +haven't, to be honest, brought Linux up yet myself, but I intend to use a +Quantum 105AT for it. + + -Mark Holden + l00017@eeyore.stcloud.msus.edu +--[0400]-- + +[0403] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 01/15/92 00:29 (15 lines) +Subject: Re: linux-0.12 is available +Date: Wed, 15 Jan 92 00:22:14 -0500 +From: tytso@ATHENA.MIT.EDU (Theodore Ts'o) +To: Linux-activists@joker.cs.hut.fi +In-Reply-To: [398] +Reply-To: tytso@athena.mit.edu + +Linux 0.12 is available from TSX-11.MIT.EDU. For most U.S. sites, it +will be much faster if you grab the distribution from TSX-11 than from +nic.funet.fi. + +I will grab the 0.12 libc.a sources and include file, and any other +ancilliary files as soon as they become available on nic.funet.fi. + + - Ted + +--[0403]-- (pref = [0398]) + +[0404] daemon@ATHENA.MIT.EDU (Morgan Schweers) Linux_Activists 01/15/92 01:10 (18 lines) +Subject: SCSI question +Date: Tue, 14 Jan 92 22:03:25 PST +From: mrs@netcom.com (Morgan Schweers) +To: linux-activists@joker.cs.hut.fi + +Greetings, + Being a novice at fun stuff like kernel development and device +driver design, I'd like to know under what circumstances I'd need +a SCSI driver. + + I have a 20Meg floptical disk drive that MS/DOS thinks is just +another drive. No device drivers are needed, etc... It is, +however, a SCSI device. Does this mean that I'll need a driver +for it under Linux? + + Does anyone have any good kernel and driver design books that +they can refer me to? + + -- Morgan Schweers +--[0404]-- + +[0405] daemon@ATHENA.MIT.EDU (Robert Blum) Linux_Activists 01/15/92 03:07 (14 lines) +Subject: 0.12 available on tupac-amaru.informatik.rwth-aachen.de +Date: Wed, 15 Jan 92 08:55:50 +0100 +From: blum@cip-s01.informatik.rwth-aachen.de (Robert Blum) +To: linux-activists@joker.cs.hut.fi + +As the subject says, the new boot/rootimages are installed on tupac-amaru. +The library stuff will follow as soon as it appears on nic.funet.fi + +BTW: This means amaru is up and running again.... + + +C U l8r + Robert Blum + + +--[0405]-- + +[0406] daemon@ATHENA.MIT.EDU (Nicolas CAILLAUD ) Linux_Activists 01/15/92 04:21 (13 lines) +Subject: Linux & Mgr +From: nicolas@cli52fb.edf.fr ( Nicolas CAILLAUD ) +To: linux-activists@joker.cs.hut.fi +Date: Wed, 15 Jan 92 8:29:37 MET DST + +Hi * + +Has someone tried porting MGR to LINUX ? +Is it much faster than with Minix ? + +Thank you all + +Nicolas + +--[0406]-- + +[0407] daemon@ATHENA.MIT.EDU (Simon Marlow) Linux_Activists 01/15/92 05:17 (11 lines) +Subject: UK keyboards +Date: Wed, 15 Jan 1992 09:53:47 +0000 +From: Simon Marlow +To: linux-activists@joker.cs.hut.fi + + +Unless I'm wrong, LINUX only have support for Finish and US +keyboards, so can somebody give me some pointers as to how to add UK +keyboard support to LINUX? Also, am I the first UK 'customer'? + +Thanks, + Simon. +--[0407]-- + +[0408] daemon@ATHENA.MIT.EDU (drew@hazelrah.cs.Colorado.EDU) Linux_Activists 01/15/92 05:29 (271 lines) +Subject: Re: SCSI question +To: mrs@netcom.com (Morgan Schweers), linux-activists@joker.cs.hut.fi +In-Reply-To: Your message of Tue, 14 Jan 92 22:03:25 -0800. +Date: Wed, 15 Jan 92 01:18:28 MST +From: drew@hazelrah.cs.Colorado.EDU + + + Greetings, + Being a novice at fun stuff like kernel development and device + driver design, I'd like to know under what circumstances I'd need + a SCSI driver. + + I have a 20Meg floptical disk drive that MS/DOS thinks is just + another drive. No device drivers are needed, etc... It is, + however, a SCSI device. Does this mean that I'll need a driver + for it under Linux? + +Yes. Most definately. The current SCSI situation is that I'm working on +a multi-tiered driver (interference from fried SCSI hosts, family visits, +long ski weekends, sysadmin chores and Usenix) with abstract high level +disk and tape drivers that interface with low level SCSI drivers in a +device independant manner. The low level driver needed for each SCSI host +merely has to send SCSI commands and return the results / data to the +high level driver- bad block remapping, etc are all handled by the +high level driver. + + +The initial low level driver will be for the seagate ST-01 / ST-02 +controllers. Other hosts should be fairly easy to adapt to - see +the interface spec following this. + + + Does anyone have any good kernel and driver design books that + they can refer me to? + + -- Morgan Schweers + +-------- + +Current interface spec for SCSI driver - should have everything +(keeping my fingers crossed here) ready within two weeks after +Usenix. I've added a command queing function, where the driver is +notified on command completion, so that multiple read/writes etc. can +be accomplished - much better than the kernel blocking until the +read/write was done.... + +-- hosts.h -- + +#ifndef __HOST_H__ + #define __HOSTS_H__ + +/* + File hosts.h + SCSI host adapter include file. +*/ + +#define MAX_SCSI_HOSTS 1 + +/* + The Scsi_Host type has all that is needed to interface with a SCSI + host in a device independant matter. +*/ + +typedef struct + { + /* + The name pointer is a pointer to the name of the SCSI + device detected. + */ + + char *name; + + /* + The detect function shall return non zero on detection, + and initialize all data necessary for this particular + SCSI driver. + */ + + int (* detect)(void); + + /* + The info function will return whatever useful + information the developer sees fit. + */ + + char *(* info)(void); + + /* + The command function shall return the SCSI return + code in the low 8 bits, a driver error in the high 8 + bits. Target is the target ID, IN normal numbers - not a + bit. The cmnd is the variable length command to + be sent, + buff a pointer to the buffer which will be read from / + written to, and bufflen the length of that buffer + */ + + int (* command)(unsigned char target, const void *cmnd, + void *buff, int bufflen); + + /* + The QueueCommand function works in a similar manner + to the command function. It takes an additional parameter, + void (* done)(int code) which is passed the exit result + when the command is complete. + */ + + int (* queuecommand)(unsigned char target, const void *cmnd, + void *buff, int bufflen, void (*done)(int)); + + + + /* + present contains a flag as to weather we are present - + so we don't have to call detect multiple times. + */ + + unsigned char present; + } Scsi_Host; + +/* + The scsi_hosts array is the array containing the data for all + possible scsi hosts. +*/ + +extern Scsi_Host scsi_hosts[MAX_SCSI_HOSTS]; + +/* + scsi_init initializes the scsi hosts. +*/ + +void scsi_init(void); +#endif + + + +--- scsi.h --- + + +#ifndef __SCSI_H__ + #define __SCSI_H__ +/* + For documentation on the OPCODES, MESSAGES, and SENSE values, + please consult the SCSI standard. +*/ + +/* + SCSI opcodes +*/ + +#define TEST_UNIT_READY 0x00 +#define REZERO_UNIT 0x01 +#define REQUEST_SENSE 0x03 +#define FORMAT_UNIT 0x04 +#define REASSIGN_BLOCKS 0x07 +#define READ_6 0x08 +#define WRITE_6 0x0a +#define SEEK 0x0b +#define INQUIRY 0x12 +#define MODE_SELECT 0x15 +#define RESERVE 0x16 +#define RELEASE 0x17 +#define COPY 0x18 +#define MODE_SENSE 0x1a +#define START_STOP 0x1b +#define RECIEVE_DAIGNOSTIC 0x1c +#define SEND_DIAGNOSTIC 0x1d +#define ALLOW_MEDIUM_REMOVAL 0x1e + +#define READ_CAPACITY 0x25 +#define READ_10 0x28 +#define WRITE_10 0x2a +#define SEEK_10 0x2b +#define WRITE_VERIFY 0x2e +#define VERIFY 0x2f +#define SEARCH_HIGH 0x30 +#define SEARCH_EQUAL 0x31 +#define SEARCH_LOW 0x32 +#define SET_LIMITS 0x33 +#define COMPARE 0x39 +#define COPY_VERIFY 0x3a + +/* + MESSAGE CODES +*/ + +#define COMMAND_COMPLETE 0x00 +#define EXTENDED_MESSAGE 0x01 +#define SAVE_POINTERS 0x02 +#define RESTORE_POINTERS 0x03 +#define DISCONNECT 0x04 +#define INITIATOR_ERROR 0x05 +#define ABORT 0x06 +#define MESAGE_REJECT 0x07 +#define NOP 0x08 +#define MSG_PARITY_ERROR 0x09 +#define LINKED_CMD_COMPLETE 0x0a +#define LINKED_FLG_CMD_COMPLETE 0x0b +#define BUS_DEVICE_RESET 0x0c +#define IDENTIFY 0x80 + +/* + Our errors returned by OUR driver, NOT SCSI message. Orr'd with + SCSI message passed back to driver . +*/ + +/* NO error */ +#define DID_OK 0x0000 +/* Couldn't connect before timeout period */ +#define DID_NO_CONNECT 0x0100 +/* BUS stayed busy through time out period */ +#define DID_BUS_BUSY 0x0200 +/* TIMED OUT for other reason */ +#define DID_TIME_OUT 0x0300 +/* ERROR from TARGET */ +#define DID_TERROR 0x0400 +/* TARGET was busy */ +#define DID_TBUSY 0x0500 +/* TARGET disconnected prematurely */ +#define DID_TDISCONNECT 0x0600 +/* TARGET was off line */ +#define DID_TOFFLINE 0x0700 +/* TARGET wants US to send IT a message */ +#defibe DID_TREQ_MSG_OUT 0x0800 +/* TARGET parity error */ +#define DID_TPARITY 0x0900 +/* TARGET requested reselect */ +#define DID_TRESELECT 0x0A00 +/* TARGET was not in the range 0-6 inlclusive */ +#define DID_BAD_TARGET 0x0B00 + +/* + SENSE KEYS +*/ + +#define NO_SENSE 0x00 +#define RECOVERED_ERROR 0x01 +#define NOT_READY 0x02 +#define MEDIUM_ERROR 0x03 +#define HARDWARE_ERROR 0x04 +#define ILLEGAL_REQUEST 0x05 +#define UNIT_ATTENTION 0x06 +#define DATA_PROTECT 0x07 +#define BLANK_CHECK 0x08 +#define COPY_ABORTED 0x0a +#define ABORTED_COMMAND 0x0b +#define VOLUME_OVERFLOW 0x0d +#define MISCOMPARE 0x0e + + +/* + DEVICE TYPES + +*/ + +#define TYPE_DISK 0x00 +#define TYPE_TAPE 0x01 +#define TYPE_WORM 0x04 /* Treated as ROM by our system */ +#define TYPE_ROM 0x05 +#define TYPE_NO_LUN 0x7f +/* + Every SCSI command starts with a one byte OP-code. + The next byte's high three bits are the LUN of the + device. Any multi-byte quantities are stored high byte + first, and may have a 5 bit MSB in the same byte + as the LUN. +*/ + + +#endif + + +--[0408]-- + +[0409] daemon@ATHENA.MIT.EDU (John T Kohl) Linux_Activists 01/15/92 12:12 (19 lines) +Subject: Re: linux sockets and stuff +Date: Wed, 15 Jan 92 08:47:28 -0800 +To: ury segal +Cc: linux-activists@joker.cs.hut.fi +In-Reply-To: ury segal's message of Wed, 15 Jan 92 16:41:57 +0200, +From: John T Kohl +Reply-To: jtkohl@cs.Berkeley.EDU + +> From: ury segal +> Date: Wed, 15 Jan 92 16:41:57 +0200 + +> I understood U R writing the linux socket liberary. When will it be ready ? + +I've said this on the list before, and I'll say it again now. I am NOT +working on BSD networking. + +I _WAS_ doing some work to port various utilities that come on the BSD +networking _release_. + +John +--[0409]-- + +[0410] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 01/15/92 13:15 (83 lines) +Subject: the rest of the linux-0.12 distribution +Date: Wed, 15 Jan 1992 19:49:55 +0200 +From: Linus Benedict Torvalds +To: Linux-activists@joker.cs.hut.fi + +Ok, I have uploaded the rest of the linux distribution to nic.funet.fi. +They aren't visible yet, but I guess they'll show up tomorrow or so. + +The new files are: + + - fileutil.tar.Z, which contains most of the GNU fileutils. It's not + the latest release, so if you want that, you'll have to compile it + for linux. No source changes, but a lot of -DSTPCPY_MISSING etc in + the makefiles. + + - hd.c. I have gotten one problem report already about hd-handling in + 0.12. This is a correction to kernel/blk_drv/hd.c, and should + hopefully correct the problem. There was also a problem with a + second harddisk not working although the first one did: I think I + found the problem, and fixed it. If you cannot get linux operating + at all (but the bug wasn't that severe, I think), and are thus unable + to recompile it, mail me. + + - include.tar.Z. Yes. Yet another include.tar.Z. I don't save old + versions, so I don't do cdiffs :(. I still expect patches to be + cdiffs. Bastard, ain't I? + + - lib.tar.Z. The library sources. + + - libc.a.Z. Compiled libc.a + + - mkswap. This should have been on the root-diskette, but was + forgotten. See description in RELNOTES. + + - system.tar.Z. The latest sources to the system files: mkswap, mkfs, + fsck and fdisk. + + - utils.tar.Z. Contains a new tar (you can use the old one to untar + this, but this should understand about symbolic links etc), make, + uemacs and some minor programs (sed and basename I think). + +The old utilbin.tar.Z file should be replaced by 'fileutil' and 'utils'. +The old include.tar.Z, libc.a library.tar.Z should be replaces by their +newer versions. The old uemacs.Z, bash.Z can also be removed from the +archives. + +There is some overlapping between these files and the root-diskette (and +older versions of linux). + + And over to other things: + +Someone asked on comp.os.minix how to move non-tar files to a linux +partition: the INSTALL-0.11 told about tar-files, but not about things +like libc.a. The easiest answer is to tar the single file into a +tar-file, and then the problem is reduced to something we can handle. + +Another possibility is to use the mtools package, but there were so many +questions about it the last time that I'm not even going to mention it +this time around. + +A third possibility is to just write the file to a floppy using +rawrite.exe or NU or something, and then reading the floppy and +truncating at the filelength. This means you have to remember how long +the file was. Truncation can be done by 'dd' or by 'head -c'. + + And one warning... + +There are easy ways to make fsck report errors on your harddisk that +were introduced with the demand-loading in 0.11. It's not a bug, but I +thought I'd warn everyone: + +While a program is running, it's inode is marked in use. Thus if you +delete a running command, it seems to be gone, but the file is still +there (standard unix practice). Sync a thousand times, and the file +will still not be really deleted until the inode no longer is in use: +This may not happen if the file was /bin/update or /bin/sh. + +The result is that if you reboot with a deleted file in use, fsck will +wanr about a lot of unused blocks that are marked in use. No problem, +'fsck -a' repairs it, and it /really/ isn't a bug, it's just that we +haven't got something like shutdown yet that sees to these kinds of +problems. + + Linus +--[0410]-- + +[0411] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 01/15/92 14:16 (31 lines) +Subject: Re: raw disk device +Date: Wed, 15 Jan 92 13:58:51 -0500 +From: tytso@ATHENA.MIT.EDU (Theodore Ts'o) +To: Peter Gober +Cc: linux-activists@joker.cs.hut.fi, erweka@cs.tu-berlin.de +In-Reply-To: Peter Gober's message of Wed, 15 Jan 92 19:48:32 MET, +Reply-To: tytso@athena.mit.edu + + From: Peter Gober + Date: Wed, 15 Jan 92 19:48:32 MET + + Having not much knowledge about UNIX devices I tried to port "mtools", a PD + collection of MS-DOS read/write-tools for Unix. It compiled well, but didn't + work, obviously, because it requires a raw disk device instead of a block + disk device. A driver for this seems to be missing from the Linux kernel. + +No, you can just use the block disk device. It's already been ported to +Linux, however. (although it's pretty easy to port) + +On TSX-11.MIT.EDU: + +/pub/linux/ports/mtools-patches.tar --- contains some patches to make + mtools compile on linux and to add support of > 32 Meg + DOS hard disk partitions. + +/pub/linux/sources/usr.bin/mtools_sh.?.Z --- contains the latest + version of the mtools package + + - Ted + + + +--[0411]-- + +[0412] daemon@ATHENA.MIT.EDU (Peter Gober) Linux_Activists 01/15/92 14:17 (20 lines) +Subject: raw disk device +From: Peter Gober +To: linux-activists@joker.cs.hut.fi +Date: Wed, 15 Jan 92 19:48:32 MET +Cc: erweka@cs.tu-berlin.de (Reinhard Koehn) + +Running Linux on an IBM PC, what could more interesting than being able to +read/write MS-DOS diskettes directly? + +Having not much knowledge about UNIX devices I tried to port "mtools", a PD +collection of MS-DOS read/write-tools for Unix. It compiled well, but didn't +work, obviously, because it requires a raw disk device instead of a block +disk device. A driver for this seems to be missing from the Linux kernel. + +I am not able to write this driver, but would be very thankful if someone +could tell me whether I did something wrong, or would write it (it can't be +difficult for one of those experiences Unix hackers...). + +Thank you. + +Peter (qed@cs.tu-berlin.de) +--[0412]-- + +[0413] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 01/15/92 14:58 (82 lines) +Subject: console problems +Date: Wed, 15 Jan 92 11:43:06 PST +From: pmacdona@sanjuan.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + + +There are a few small anoyances in the console patches for VC. +All in all, .12 is an amazing leap over .11. + +First, to the termcap, you should add to your termcap entry, + + :rs=\Ec: + +This defines the reset string. Otherwise, window sizes etc hang around. +It seems some systems define \E> instead of \Ec, but this according +to DEC (who created vt100) is to reset to application keypad. So +console uses \Ec. Argg. + +Second, autodectection correctly identifies my ATI card, but only supports +132 line mode, which my monitor (and preferences) don't. So, anyone know +the correc mode to use? The old code I have has to use int 10 twice, once +to set the mode and once to set the font. Also a termcap entry for 50 line mode +needs to be added. + +Screen dumping isn't working cause the handler in tty_ioctl.c didn't make +make it through Linus's vicous editing. Screen blanking ditto. + +I note that when at the bottom of the screen now, hitting enter causes +an unpleasant jitter on the screen, in VC. This is probably as +a result of using Video memory. I plan on posting a patch (as soon +as I get time) that will let you use ram buffers instead of video +ram, as a conditional compile. It turns out that when X shows up, +we will need buffers to store video contents in anyways, but ... + +The problem is that the screen size can be determined dynamically +at boot time. This is nice, but I think a conditional compile +should be added to setup.S to allow the individual to select a +screen dimension as the default, either with a timeout upon +selection, or with just a hardcoded one videomode. ie + +#define DEFAULT_VIDEO_MODE ati3 +#ifdef DEFAULT_VIDEO_MODE ati3 + use ati3 as default +#else + use detection, (maybe default to 80x25 if timeout) +#endif + +The other problem with my old console.c was that the buffer size had +to be hard coded. This was tough to do when the screen dimensions +could vary dynamically. My new approach will be: + +/*#define RAM_BUFFER_SIZE (MAX_CONSOLES*MAX_COLS*MAX_ROWS)*/ + +#ifdef RAM_BUFFER_SIZE +static short vc_video_buf[RAM_BUFFER_SIZE]; +#endif + +This will allow each individual to either specify exactly how much +precious kernel memory they want to give up or, how many consoles +they desire of whic maximum dimensions, all without modifying code. + +This will also allow VC to work with non EGA/VGA, not a problem +for me, but no good reason to exclude them. + +It will also allow screen blanking to work on all systems, again. + +None of this should be too tough, since Linus has already done all the +knotty work of dividing up a single big buffer. And when +X (or MGR) comes, coexistance should be easy. + +Finally, setterm.c will be changed to no longer consult your terminal +type. Else, you will note that con132x44 does not allow setterm to +do anything. + +Sorry about all this mess, but due to my situation (sob, sob), I +don't have all that much time to devote to Linux. Most of the +stuff I submitted to Linus was, shall we say, half baked, but +well intentioned. But I am ecstatic to play any part in it. +In fact, it looks like Linus and I, between us, have managed +to pound out a design for shared libraries that is excruciatingly +simple to implement. That is what I will be working on next, +(unless Linus beets me to the punch). + +--[0413]-- + +[0414] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 01/15/92 15:27 (29 lines) +Subject: policy for accepting patches to 0.12 +Date: Wed, 15 Jan 1992 22:09:37 +0200 +From: Linus Benedict Torvalds +To: Linux-activists@joker.cs.hut.fi + +Ok, I forgot to mention this in my last post, but I'm afraid I'll have +to warn all of you that want to implement a new feature: I will not +accept big non-localized patches to 0.12. This doesn't mean you cannot +implement something neat, but it does mean that it probably won't be in +0.13 unless it's so neat I cannot live without it. + +There are good reasons for this: I'll have to do some studuing that I +missed the last semester due to working on linux, and the courses start +tomorrow. That was one of the reasons for the fixed release-date of the +current version. + +Also, VFS support (which is missing in 0.12, although there were +alpha-patches for it) will probably be implemented for 0.13, and I need +a relatively clean kernel for that: as pmacdona found out, the patches +that get in put after other patches have to be extensively edited to +fit. + +This does NOT mean that I won't accept bug-reports and patches. Also, +it doesn't mean I won't accept the init/login package: I assume that +won't touch the kernel very much. I hope this won't be a big problem: +most of the things people wanted are in 0.12. And with VFS we'll +eventually get the longer filenames that was also high on the list of +wanted things. + + Linus +--[0414]-- + +[0416] daemon@ATHENA.MIT.EDU (Steve McCoole ) Linux_Activists 01/15/92 16:42 (20 lines) +Subject: Adaptec SCSI driver work underway? +From: smm@acd4.acd.com ( Steve McCoole ) +To: linux-activists@joker.cs.hut.fi +Date: Wed, 15 Jan 92 15:37:13 EST + + +Greetings, + Does anyone know of any current work underway on a Linux SCSI + driver for the Adaptec 154x series? I'd really be interested + in Linux but all I have available to me is a SCSI drive ( have + to cross-develop and experiment on the same disk, not good.. ). + I'm also not really clear on what type of setup was needed + under Minix(?) to do cross development for Linux if I under + took working on this myself. + +Thanks! +Steve +-- +Steve McCoole | smm@acd4.acd.com / uunet!acd4!smm +Applied Computing Devices, Inc. +Terre Haute, IN "The Silicon Cornfield" +--[0416]-- + +[0417] daemon@ATHENA.MIT.EDU (drew@hazelrah.cs.Colorado.EDU) Linux_Activists 01/15/92 18:17 (30 lines) +Subject: Re: Adaptec SCSI driver work underway? +To: smm@acd4.acd.com ( Steve McCoole ), linux-activists@joker.cs.hut.fi +In-Reply-To: Your message of Wed, 15 Jan 92 15:37:13 -0500. +Date: Wed, 15 Jan 92 15:57:59 MST +From: drew@hazelrah.cs.Colorado.EDU + + + Greetings, + Does anyone know of any current work underway on a Linux SCSI + driver for the Adaptec 154x series? I'd really be interested + in Linux but all I have available to me is a SCSI drive ( have + to cross-develop and experiment on the same disk, not good.. ). + I'm also not really clear on what type of setup was needed + under Minix(?) to do cross development for Linux if I under + took working on this myself. + + Thanks! + Steve + -- + Steve McCoole | smm@acd4.acd.com / uunet!acd4!smm + Applied Computing Devices, Inc. + Terre Haute, IN "The Silicon Cornfield" + +-------- + +If it hasn't been lost, you might want to write the low level interface part +of what i'm working on - I've got disk and tape drivers on the way that are +independant of the SCSI host and low level software. The final (I think) +revision of the interface hosts.h and scsi.h files were posted to the +mailing list. + +--[0417]-- + +[0418] daemon@ATHENA.MIT.EDU (Tad Hunt) Linux_Activists 01/15/92 18:21 (15 lines) +Subject: Linux-0.12 +From: hunt@cthulhu.control.com (Tad Hunt) +To: linux-activists@joker.cs.hut.fi +Date: Wed, 15 Jan 92 17:59:23 EST + +I'm having a problem booting the new Linux 0.12 bootimage disk. +I downloaded it, uncompressed and wrote it to a 1.44MB disk with RaWrite. +Unfortunately, when I boot, I get this: + +(some IBM graphics character) +Loa + +And the system halts. I don't know what's wrong since Linux-0.11 worked fine. +Does this have something to do with the graphics card detection? I have +an ET4000-based SVGA card, if that matters. Any suggestions? + +--[0418]-- + +[0419] daemon@ATHENA.MIT.EDU (Tad Hunt) Linux_Activists 01/15/92 18:33 (21 lines) +Subject: Re: Linux-0.12 +From: hunt@cthulhu.control.com (Tad Hunt) +To: drew@hazelrah.cs.Colorado.EDU +Date: Wed, 15 Jan 92 18:17:45 EST +Cc: linux-activists@joker.cs.hut.fi +In-Reply-To: <199201152316.AA07001@hazelrah.cs.Colorado.EDU>; from "drew@hazelrah.cs.Colorado.EDU" at Jan 15, 92 4:16 pm + +> Has linux bootstrapped (Ie the loading..... mesage finished)? +> +> Do you get hex numbres too - or a single character? +> +> +> + +No, that's the problem... It starts to say "Loading..." +but only gets to "Loa" when it freezes. +At first I thought it was a bad download but I went and downloaded +the file again, compared the file size to the original but it still +won't work. +So basically I get a single graphics character (same one every time) +and "Loa" and that's it. + +--[0419]-- + +[0420] daemon@ATHENA.MIT.EDU (drew@hazelrah.cs.Colorado.EDU) Linux_Activists 01/15/92 18:34 (37 lines) +Subject: Re: Linux-0.12 +To: hunt@cthulhu.control.com (Tad Hunt) +Cc: linux-activists@joker.cs.hut.fi +In-Reply-To: Your message of Wed, 15 Jan 92 18:17:45 -0500. +Date: Wed, 15 Jan 92 16:24:05 MST +From: drew@hazelrah.cs.Colorado.EDU + + +-------- + + > Has linux bootstrapped (Ie the loading..... mesage finished)? + > + > Do you get hex numbres too - or a single character? + > + > + > + + No, that's the problem... It starts to say "Loading..." + but only gets to "Loa" when it freezes. + At first I thought it was a bad download but I went and downloaded + the file again, compared the file size to the original but it still + won't work. + So basically I get a single graphics character (same one every time) + and "Loa" and that's it. + + +-------- + +Your binary is corrupt - Loading is printed in a single int 10h call, so at +least that much should be printed. The graphics character and hang would +indicate the boot sector had been corrupted. You might examine it with +debug or NU and look at the Loading message, etc, and compare a disassembly +to the source. + + +probably isn't getting to the first int 13h call. + + +--[0420]-- + +[0421] daemon@ATHENA.MIT.EDU (Jon Tombs) Linux_Activists 01/15/92 19:16 (38 lines) +Subject: Linux install +Date: Wed, 15 Jan 1992 23:15:00 +0000 +From: Jon Tombs +To: linux-activists@joker.cs.hut.fi + +:->From simonm%uk.ac.glasgow.dcs@fi.hut.santra Wed Jan 15 23:32:57 1992 +:->Also, am I the first UK 'customer'? + +Maybe not :-). + +I've just got round to installing linux on my hard disk, after being +suitably impressed with the 0.11 bootable images. I've today ordered +a second disk so until that arrives I'm sorry that I won't be doing any +programing. + +A couple of points: + +In the INSTALL documents it asks you to (in a for loop): +cp -r /dev /user +Not surprisingly this hangs as cp trys to read the devices and doesn't cp +special devices (well it didn't for me!). Can I suggest the documentation +changes to: + +uncompress < /usr/bin/tar.Z > /user/tar +/user/tar xf - bin dev etc usr tmp | (cd /user ; tar xfv -) + +which will copy the /dev entries. + +Also has anyone got the -M (multivolumes) to work? I get EIO at the end +of disk and never asked for the next volume. + +Thanks for a fun time. + +Jon. +--- +_________ + / UK + / _ __ <...!mcsun!ukc!robots.oxford.ac.uk!jon> Uck +(_/ (_) / / World +--[0421]-- + +[0425] daemon@ATHENA.MIT.EDU (Robert Blum) Linux_Activists 01/15/92 21:19 (11 lines) +Subject: All V0.12 stuff is now available on tupac-amaru +Date: Thu, 16 Jan 92 03:09:24 +0100 +From: blum@cip-s01.informatik.rwth-aachen.de (Robert Blum) +To: linux-activists@joker.cs.hut.fi + + +The subject says it all... And my apologies to all who downloaded +the corrupted (0 Byte) bootimage of 0.12 +This is corrected now + +C U l8r +Robert Blum +--[0425]-- + +[0426] daemon@ATHENA.MIT.EDU (Teresa Selling) Linux_Activists 01/15/92 22:55 (10 lines) +Subject: kermit send/receive +From: Teresa Selling +To: linux-activists@joker.cs.hut.fi +Date: Wed, 15 Jan 92 22:46:21 EST + +I cannot seem to send/receive files since I started using 0.12 +I think the problem lies in the virtual consoles because I know I cannot +upload/download when I am rlogged-in to one of my other accounts at school. +Is there a way around this? It would be nice to upload/download in the +background by using the virtual consoles. Does anyone have any comments or +suggestions? +--[0426]-- + +[0427] daemon@ATHENA.MIT.EDU (Teresa Selling) Linux_Activists 01/15/92 23:06 (8 lines) +Subject: Availability of additional 0.12 files at tsx-11 +Date: Wed, 15 Jan 92 22:53:18 est +From: Teresa Selling +To: linux-activists@joker.cs.hut.fi + + +Does anyone know when the fileutil.tar.Z utils.tar.Z ... new include and +library files for ver 0.12 will be available at tsx-11? + +--[0427]-- + +[0428] daemon@ATHENA.MIT.EDU (boltonja@cs.rose-hulman.edu) Linux_Activists 01/15/92 23:21 (14 lines) +Subject: virtual consoles? +Date: Wed, 15 Jan 92 23:14:19 EST +From: boltonja@cs.rose-hulman.edu +To: linux-activists@joker.cs.hut.fi + + Can someone please tell me how to use the virtual consoles under +Linux? I can switch to the alternate consoles, but there is no command +prompt. I am relatively new to the Unix world, so I am probably missing +something simple. + + Also, how do I take advantage of the alternate SVGA screen modes? + +Thanks. + + Jerry Bolton, Jr. +--[0428]-- + +[0429] daemon@ATHENA.MIT.EDU (Andrew Gillham) Linux_Activists 01/15/92 23:43 (61 lines) +Subject: Re: Linux +Date: Wed, 15 Jan 92 23:35:49 -0500 +From: gillham@edmund.cs.andrews.edu (Andrew Gillham) +To: tim@maths.tcd.ie +In-Reply-To: <1992Jan13.141829.2257@maths.tcd.ie> +Cc: linux-activists@joker.cs.hut.fi + +In article <1992Jan13.141829.2257@maths.tcd.ie> you write: +>Is any independent person actually running Linux, +>and can give an opinion on its merits +>vis-a-vis 386-Minix? + +I've used both, Minix386 about 6months ago, Linux for the last month. +Linux is a lot faster I feel, and ports better according to people on +the mailing list. It is compiled with gcc, and feels pretty stable +and solid. I would suggest you give it a go for a couple of days +and see how you like it. + +>While I could be convinced on this, +>it seems to me pretty unlikely on the face of it +>that anyone could really write a reliable operating system +>from scratch in a short time. +>After all, it took Tanenbaum years to write Minix, +>and he worked night and day without stop, +>and had a team working under him too. +>One only has to look at the sources +>to see the sheer intellectual work involved +>in such an enterprise. + +Then Linus is a f**king code poet. I don't know how long he's been +working on it, but if it's been "months" I'd be *super* impressed! +Right now I'm just real impressed.. :-) +Seriously though there have been quite a few contributions from other +net.code.poets to Linux so it's not like it was a total one man effort, +though Linus seems to have done most the core operating system stuff. +I'd suggest you send a note to "linux-activists-request@joker.cs.hut.fi" +and ask to be put on the mailing list if you're real interested or that +you just download linux itself and play with it or read some of the release +notes and/or code if you're just mildly intrigued. I don't have a lot +of time to dedicate to development (ok, none really) but I *really* like +the idea of a free, evolving (rapidly) UNIX clone that isn't "owned" by +a big company like Prentice-Hall and has all the hassles (and costs) that +come along with commercialization. It's Linus' system but because it's +free (except for your net connections) I think it has the potential to +become a popular, well supported (ports) system.. + +(ok, I got carried away..basic thought: I like it!) + + +>Timothy Murphy +>e-mail: tim@maths.tcd.ie +>tel: +353-1-2842366 +>s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland + + + +-Andrew +-- +===================================================================== +Andrew Gillham ****** Andrews University ****** (gillham@andrews.edu) +I would've added a cool .signature, but I already mailed this letter. + +--[0429]-- + +[0430] daemon@ATHENA.MIT.EDU (Humberto Ortiz-Zuazaga) Linux_Activists 01/15/92 23:49 (31 lines) +Subject: Re: virtual consoles? +Date: Wed, 15 Jan 92 23:37:48 EST +From: zuazaga@ucunix.san.uc.EDU (Humberto Ortiz-Zuazaga) +In-Reply-To: <9201160414.AA17439@cs.rose-hulman.edu>; from +To: boltonja@cs.rose-hulman.edu +Cc: linux-activists@joker.cs.hut.fi (Linux activists) +Reply-To: zuazaga@ucunix.san.uc.EDU +X-Envelope-To: linux-activists@joker.cs.hut.fi + +boltonja@cs.rose-hulman.edu wrote: + +> Can someone please tell me how to use the virtual consoles under +> Linux? I can switch to the alternate consoles, but there is no command +> prompt. I am relatively new to the Unix world, so I am probably missing +> something simple. + +first do: doshell /dev/tty2 sh & + +Then switch to tty2 (Left ALT - F2) and bingo! Shell prompt. This is +real neat. + +By the way, in case any of you were wondering, your serial ports are now +on /dev/tty64 and /dev/tty65. + +> Also, how do I take advantage of the alternate SVGA screen modes? + +I pass on this one. + +-- +Humberto Ortiz-Zuazaga INTERNET: zuazaga@ucunix.san.uc.edu +Dept. of Physiology & Biophysics BITNET: picone@ucbeh +University of Cincinnati CIS: 72301,2303 +--[0430]-- + +[0431] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 01/16/92 00:32 (66 lines) +Subject: Re: Availability of additional 0.12 files at tsx-11 +Date: Thu, 16 Jan 92 00:26:51 -0500 +From: tytso@ATHENA.MIT.EDU (Theodore Ts'o) +To: Teresa Selling +Cc: linux-activists@joker.cs.hut.fi +In-Reply-To: Teresa Selling's message of Wed, 15 Jan 92 22:53:18 est, +Reply-To: tytso@athena.mit.edu + + Date: Wed, 15 Jan 92 22:53:18 est + From: Teresa Selling + + Does anyone know when the fileutil.tar.Z utils.tar.Z ... new include and + library files for ver 0.12 will be available at tsx-11? + +They're there now. My apologies for the delay. First it took a while +because I couldn't log into nic.funet.fi (because too foreign users were +logged in), and then I was away at a wine tasting class (we did white +wines tonight; yum! :-) + +Also, someone (qpliu@phoenix.prinnceton.edu from the source files) has +uploaded to TSX-11 a quick and dirty implementation of init/login. I've +placed it in ~ftp/pub/linux/sources/sbin on TSX-11, and I've also +forwarded a copy to nic.funet.fi. It looks pretty minimal and +bare-bones (it doesn't appear to support run levels), but it appears to +be functional. + +Perhaps this and the other init development efforts can be merged +together, with the best code being taken from each. + +The README file for the qpl init/login follows: + +------------------------------------------------------------------ +Although there are other people working on init/getty/login, +I couldn't wait. Being dumped into root is not so nice. + +There is no getty here. I put /bin/login in the getty field of /etc/ttytab. + +What is here: + a patch to init/main.c that makes it exec /etc/init. + init.c + getttyent.c + getttynam.c + ttyent.h (from BSD) + login.c + +init.c: + written based on sunos init(8) manpage. differences are + that the -sb switches are ignored, the window="command" in + /etc/ttytab is ignored, runs only /etc/rc and ignores + the result code, utmp and wtmp are not updated, SIGTERM + is ignored, does not create /etc/ttys, and any + undiscovered bugs. + since the manpage doesn't say how the getty entry in + /etc/ttytab is parsed, using strtok seems reasonable. + works for /dev/tty0 in 0.11. should be able to hang + terminals off the serial ports, but i can't test it + without terminals or cables. + +getttyent.c, getttynam.c, ttyent.h: + functions to read /etc/ttytab. + +login.c: + does the basic login stuff. accepts and ignores -p switch. + uses stuff in getttyent.o and getttynam.o to set TERM. + makes a better filler in /etc/ttytab than /bin/sh, making + it easier to avoid being root. + +--[0431]-- + +[0432] daemon@ATHENA.MIT.EDU (Timothy L. Kay) Linux_Activists 01/16/92 01:21 (59 lines) +Subject: Use PERL rather than C for system commands? +From: tim@pokey.cs.caltech.edu (Timothy L. Kay) +To: linux-activists@joker.cs.hut.fi +Date: Wed, 15 Jan 92 22:08:25 -0800 + + +I've been following the Linux discussion with great interest, and I +hope to download a copy and try it as soon as I have time. + +I'd like to make a suggestion to the activists group. The suggestion +goes against the grain of typical Unix system administrator +philosophy, but I think the suggestion warrants serious consideration. + +Here is my suggestion. + +It seems to me that the language PERL is ideal for implementing many +of the pieces that are currently missing from Linux. For example, +init, getty, login, shutdown, halt, cron, inetd, etc. could very +easily be written in PERL rather than C. Most OS-support programs +(including the ones mentioned previously) are not time critical. They +run very infrequently, and the performance degradation (if there is +any) should be inconsequential. + +There are several advantages to using PERL rather than C. + +First of all, programs would take up much less disk space and RAM. It +is true that the PERL executable must be in RAM in order to run a PERL +program, but only one copy ever need be in RAM at any time, and I +think the savings elsewhere will more than make up the difference. +(On my workstation, the PERL .text section is about 4 times as large +as the login .text section. If perhaps four or five memory-resident +programs are replaced by PERL scripts, the break-even point is +reached.) Also, if the PERL executable is always resident, then +loading PERL programs from disk should require very little time. + +A more obvious advantage is that writing PERL programs is much less +time-consuming that writing C programs. This is due to the fact that +the compile step gets skipped, and because PERL has a built-in +debugger. + +Third, I find PERL a *much* better script language than either sh or +csh. + +Additionally, PERL contains special support to aid in writing secure +programs. It is easier to write secure SUID programs in PERL than it +is in C. + +Finally, PERL scripts are architecture-independent. If Linux ever +gets ported to multiple architectures (which I am guessing it will), +all support programs written in PERL port with no effort at all. + +There are several disadvantages to using PERL. + +First of all, PERL must be ported to Linux. Of course, PERL should be +ported to Linux whether or not my suggestion is adopted. + +PERL is a very *expert* friendly language. Learning to program in +PERL involves a steep learning curve. It takes quite a bit of +practice to become proficient at writing in PERL. I believe the +effort is well spent. +--[0432]-- + +[0433] daemon@ATHENA.MIT.EDU (drew@hazelrah.cs.Colorado.EDU) Linux_Activists 01/16/92 01:57 (17 lines) +Subject: Re: virtual consoles? +To: linux-activists@joker.cs.hut.fi (Linux activists) +Date: Wed, 15 Jan 92 23:42:42 MST +From: drew@hazelrah.cs.Colorado.EDU + + + + > Also, how do I take advantage of the alternate SVGA screen modes? + + +-------- + + +If your SVGA chipset is supported, you get a prompt to choose a screen +mode, or continue for normal EGA operation. + +(Personally, I like the 132 X 60) + +--[0433]-- + +[0434] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 01/16/92 02:19 (20 lines) +Subject: PERL +Date: Wed, 15 Jan 92 23:14:50 PST +From: pmacdona@sanjuan.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + + +I am a little opposed to using PERL for development. +Because. + + We already are using C for most things. + Sh script has to be there because bash is. + Everyone would have to become experts in a third language. + +I mean, as far as I am concerned, I'am a little peaved that sh isn't +more like C. Going to PERL will take us even further from the KISS +principle. And.. + +Shared libraries are coming, so executables will be getting smaller, +and the break even point for PERL will be increased. + +Don't get me wrong, DO port PERL. But sell the farm... +--[0434]-- + +[0435] daemon@ATHENA.MIT.EDU (drew@hazelrah.cs.Colorado.EDU) Linux_Activists 01/16/92 02:37 (37 lines) +Subject: Re: Use PERL rather than C for system commands? +To: tim@pokey.cs.caltech.edu (Timothy L. Kay) +Cc: linux-activists@joker.cs.hut.fi +In-Reply-To: Your message of Wed, 15 Jan 92 22:08:25 -0800. +Date: Thu, 16 Jan 92 00:28:19 MST +From: drew@hazelrah.cs.Colorado.EDU + + + It seems to me that the language PERL is ideal for implementing many + of the pieces that are currently missing from Linux. For example, + init, getty, login, shutdown, halt, cron, inetd, etc. could very + easily be written in PERL rather than C. Most OS-support programs + (including the ones mentioned previously) are not time critical. They + run very infrequently, and the performance degradation (if there is + any) should be inconsequential. + +Can't do standard library calls in perl :( - +init, shutdown are definates +getty - maybe +cron - probably want to use alarms for the next event, so no +inetd - we want to use listen, so no + + + Third, I find PERL a *much* better script language than either sh or + csh. + +Agreed! Let's get perl for Linux. + + Finally, PERL scripts are architecture-independent. If Linux ever + gets ported to multiple architectures (which I am guessing it will), + all support programs written in PERL port with no effort at all. + +Non-issue : any of the programs mentioned above, halt excepted (If we +are to code in an infinite loop with interrupts disabled) will go +no deeper than mayuking system calls. + +-------- + +--[0435]-- + +[0436] daemon@ATHENA.MIT.EDU (Karl Heinz Kremer) Linux_Activists 01/16/92 02:46 (23 lines) +Subject: Problems with bootimage +Reply-To: kremer@sisd.sisd.Kodak.COM +Date: Thu, 16 Jan 92 08:37:05 +0100 +From: kremer@sisd.sisd.Kodak.COM (Karl Heinz Kremer) +To: linux-activists@joker.cs.hut.fi + +Hi linux specialists, + +i've downloaded the linux software yesterday and tried to create the boot disk. I write the bootimage to a 360k and 1.2M disk with rawrite and used both as bootdisk. In both cases i got the following output on my screen: + +Loading. +@X:0404 +AX:020A +000 +CX:0006 +DX:0000. +@X:0404 +AX:020A + +and so on. What is my problem? Is the bootimage corrupted, or is my machine not able to hanlde linux (386SX 16MHz)? + +Thanks for your help + +Karl Heinz +--[0436]-- + +[0437] daemon@ATHENA.MIT.EDU (drew@hazelrah.cs.Colorado.EDU) Linux_Activists 01/16/92 02:49 (13 lines) +Subject: Re: Filesystem +To: juan@noyles.pha.pa.us (Juan Jose T. Noyles) +Cc: linux-activists@joker.cs.hut.fi +In-Reply-To: Your message of Sun, 12 Jan 92 18:13:47 -0500. +Date: Thu, 16 Jan 92 00:42:13 MST +From: drew@hazelrah.cs.Colorado.EDU + + + Does Linux use the same format as DOS? + +-------- + +Nope. Supposedly, it uses a minix file system. + +--[0437]-- + +[0438] daemon@ATHENA.MIT.EDU (Mark Denovich) Linux_Activists 01/16/92 03:00 (36 lines) +Subject: How to get Started +Date: Thu, 16 Jan 1992 02:46:53 -0500 (EST) +From: Mark Denovich +To: linux-activists@joker.cs.hut.fi +Cc: + + +I just learned of Linux today. I have a few questions: + +What files do I need to get this running? + +Where? + +How Much disk space do I need? + +Does linux support communications? (i.e. Token Ring card) + + +Thanks, + +Mark Denovich + +Computer Consultant +Carnegie Mellon University + + +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@ Mark "it's only a small blast furnace" Denovich @@ +@=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=@ +@ md3z@andrew.cmu.edu or r746md3z @vb.cc.cmu.edu @ +@ phone: (412)-268-406 Standard Disclaimers Apply @ +@ Quotes: 'Hey I smell smoke' - Eric Furst @ +@ 'Aggggh my computer!!!!!' -me @ +@ 'fizzle'- computer @ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + + +--[0438]-- + +[0439] daemon@ATHENA.MIT.EDU (ury segal) Linux_Activists 01/16/92 03:14 (13 lines) +Subject: swaping +From: ury segal +Date: Thu, 16 Jan 92 10:07:23 +0200 +To: linux-activists@joker.cs.hut.fi + + + +I have a 25Mhz 386 running linux. I have 40M hard disk, which divide into +2 patritions: 32M for the root and (hopefully) 8M for swap. Althow +I read in the release note that mkswap is avleable on the root disk, +I couldn't find it. Can someone tell me where is it ? +Also, What about TCP/IP? s someone working on it? +and ; where is /usr/include ? +--ury +--[0439]-- + +[0440] daemon@ATHENA.MIT.EDU (IJW11@phx.cam.ac.uk) Linux_Activists 01/16/92 03:14 (9 lines) +Subject: No subject found in mail header +Date: Wed, 15 Jan 92 14:56:28 GMT +From: IJW11@phx.cam.ac.uk +To: linux-activists@joker.cs.hut.fi + +I'm interested in a UK keyboard too. The American one is infuriating. I've +just repaired my machine (faulty RAM) so I have enough memory to compile, so +I can probably do one within two days or so. + +Ian Wells. +--[0440]-- + +[0441] daemon@ATHENA.MIT.EDU (IJW11@phx.cam.ac.uk) Linux_Activists 01/16/92 03:17 (8 lines) +Subject: No subject found in mail header +Date: Tue, 14 Jan 92 02:59:22 GMT +From: IJW11@phx.cam.ac.uk +Apparently-To: Linux-activists@niksula.hut.fi + +Has anybody done a British keyboard yet? The American one is getting infuriating. +I'll do one if no-one else has, but I'm lazy... 8-) + +Ian Wells +--[0441]-- + +[0442] daemon@ATHENA.MIT.EDU (Rwo-Hsi Wang) Linux_Activists 01/16/92 03:18 (12 lines) +Subject: Linux and ESDI +From: rhwang@cs.utexas.edu (Rwo-Hsi Wang) +Date: Thu, 16 Jan 1992 02:08:19 -0600 +To: linux-activists@joker.cs.hut.fi + +Does Linux support ESDI hard drive? I checked the mail archive of Linux +but couldn't find an absolute confirmation to this question. (Linus put +"ESDI drives should work ok, but ...". Another person mentioned that his/her +ESDI drive didn't seem to like Linux.) + +Thanks. + +Rwo-Hsi +--[0442]-- + +[0443] daemon@ATHENA.MIT.EDU (Rwo-Hsi Wang) Linux_Activists 01/16/92 03:23 (12 lines) +Subject: Linux and ESDI +From: rhwang@cs.utexas.edu (Rwo-Hsi Wang) +Date: Thu, 16 Jan 1992 02:08:19 -0600 +To: linux-activists@joker.cs.hut.fi + +Does Linux support ESDI hard drive? I checked the mail archive of Linux +but couldn't find an absolute confirmation to this question. (Linus put +"ESDI drives should work ok, but ...". Another person mentioned that his/her +ESDI drive didn't seem to like Linux.) + +Thanks. + +Rwo-Hsi +--[0443]-- + +[0444] daemon@ATHENA.MIT.EDU (Mika Matti Jalava) Linux_Activists 01/16/92 03:30 (28 lines) +Subject: Re: Linux and ESDI +From: Mika Matti Jalava +To: linux-activists@joker.cs.hut.fi +Date: Thu, 16 Jan 92 10:19:51 EET +In-Reply-To: <9201160808.AA25887@cs.utexas.edu>; from "Rwo-Hsi Wang" at Jan 16, 92 2:08 am + +> Does Linux support ESDI hard drive? I checked the mail archive of Linux +> but couldn't find an absolute confirmation to this question. (Linus put +> "ESDI drives should work ok, but ...". Another person mentioned that his/her +> ESDI drive didn't seem to like Linux.) + +I have been writing about my ESDI disk every now and then. Now it +SEEMS to work OK, but be warned: if I get any read errors, the system +just hangs, doesn't even boot with ctrl-alt-del. Also I had to remove +the printk statement in hd.c that puts "unexpected hd interrupt" on +the screen, because I was getting so many of those messages that +sometimes I couldn't see anything else on the screen. Luckily I had +other drives to compile a new system. + +I am going to try fixing the driver so that the interrupt gets handled +as it should, but it might take some time as I'm not experienced +systems programmer. Anyway, the hd driver LOOKS simple enough for me +to try. But first I have to find some info on the ESDI controller, so +I'll know what it wants. + +In the meantime, you should be able to use ESDI drives, if you can +live with these nuisances. + + Mika +--[0444]-- + +[0445] daemon@ATHENA.MIT.EDU (ury segal) Linux_Activists 01/16/92 03:31 (13 lines) +Subject: swaping +From: ury segal +Date: Thu, 16 Jan 92 10:07:23 +0200 +To: linux-activists@joker.cs.hut.fi + + + +I have a 25Mhz 386 running linux. I have 40M hard disk, which divide into +2 patritions: 32M for the root and (hopefully) 8M for swap. Althow +I read in the release note that mkswap is avleable on the root disk, +I couldn't find it. Can someone tell me where is it ? +Also, What about TCP/IP? s someone working on it? +and ; where is /usr/include ? +--ury +--[0445]-- + +[0446] daemon@ATHENA.MIT.EDU (ury segal) Linux_Activists 01/16/92 03:53 (13 lines) +Subject: swaping +From: ury segal +Date: Thu, 16 Jan 92 10:07:23 +0200 +To: linux-activists@joker.cs.hut.fi + + + +I have a 25Mhz 386 running linux. I have 40M hard disk, which divide into +2 patritions: 32M for the root and (hopefully) 8M for swap. Althow +I read in the release note that mkswap is avleable on the root disk, +I couldn't find it. Can someone tell me where is it ? +Also, What about TCP/IP? s someone working on it? +and ; where is /usr/include ? +--ury +--[0446]-- + +[0447] daemon@ATHENA.MIT.EDU (drew@kinglear.cs.colorado.edu) Linux_Activists 01/16/92 03:53 (95 lines) +Subject: Re: Problems with bootimage +To: kremer@sisd.sisd.kodak.com +Cc: linux-activists@joker.cs.hut.fi +In-Reply-To: Your message of Thu, 16 Jan 92 08:37:05 +0100. +Date: Thu, 16 Jan 92 01:41:02 MST +From: drew@kinglear.cs.colorado.edu + + + + Hi linux specialists, + + i've downloaded the linux software yesterday and tried to create the boot d + isk. I write the bootimage to a 360k and 1.2M disk with rawrite and used bot + h as bootdisk. In both cases i got the following output on my screen: + +Currently, unless you patch the boot image, Linux will not boot off of a +360K disk in a 1.2M drive. Messy-Loss hard codes the number of sectors +into the boot image, where as Linux finds the number from the BIOS. + Problem is that the BIOS returns the MAXIMUM capacity of the drive, not +what the current disk has on it. + +As far as the 1.2, the error dump shows that it was probably formatted +as a 360K disk. + +This is the error dump code, working perfectly in the MASM version of the +source, binged by me on the translation back to Unix assembler +(Perl script was one way.) + + +I should probably explain it : + +The loading prompy prints one '.' for each track read, before it is read. +The Loading. means a read was attempted on the first track + + Loading. + +I left off a conditional jump in the translation to Bruce's assembler +syntax, so a register was printed where it should have been, +but the first hex number is the return code (from AX) of the failed +int 0x13. + +ah = error code, 4, I believe sector not found? +al = sectors successfully read. + + + @X:0404 + +After that, the registers as they were on entry to the int 0x13 call are +printed so we know exactly what is going on. + + + AX:020A + 000 + CX:0006 + DX:0000. +AH = 2 read +AL = sectors requested +bx = address +CL is the starting sector, 6 +CH is the track +DH is the head +DL is the disk + +This means that the read of ten sectors, starting at sector 6 head 0 +disk 0 cylinder 0 failed after successfully reading four sectors starting at +sector 6. Means sector 10 was not found, 9 sector diskette, +or perhaps CMOS setup wrong. + +Try reformatting a disk with format a: /n:15 /t:80 and rawrite to that. + +CMOS setting of the floppy. + + + + @X:0404 + AX:020A + +K eeps retrying. + + + and so on. What is my problem? Is the bootimage corrupted, or is my machine + not able to hanlde linux (386SX 16MHz)? + + Thanks for your help + + Karl Heinz + +Floppy disk problem, no more. +-------- + +Well, I'll fix the cosmetics of the error dump, and can also fix it so that + if a sector is +not found, it changes sector count to that, so it can adjust itself to +9 sector disks. Any other sugestions? + + +--[0447]-- + +[0448] daemon@ATHENA.MIT.EDU (Nicolas CAILLAUD ) Linux_Activists 01/16/92 04:19 (9 lines) +Subject: Re: Linux & Mgr +From: nicolas@cli52fb.edf.fr ( Nicolas CAILLAUD ) +To: linux-activists@joker.cs.hut.fi +Date: Thu, 16 Jan 92 8:38:24 MET DST + +MGR is the Bellcore Window Manager +See Comp.os.minix, certainly also +comp.sources.unix + +Nicolas +--[0448]-- + +[0451] daemon@ATHENA.MIT.EDU (Lars Wirzenius) Linux_Activists 01/16/92 05:41 (11 lines) +Subject: Re: Linux +Date: Thu, 16 Jan 92 12:27:46 +0200 +From: wirzeniu@cs.Helsinki.FI (Lars Wirzenius) +To: tim@maths.tcd.ie, gillham@edmund.cs.andrews.edu +Cc: linux-activists@joker.cs.hut.fi + +> Then Linus is a f**king code poet. I don't know how long he's been +> working on it, but if it's been "months" I'd be *super* impressed! +> Right now I'm just real impressed.. :-) + +I think he's been at it since about April, 1991. Can't be much longer than +that, since he didn't get a 386 until spring 1991. +--[0451]-- + +[0452] daemon@ATHENA.MIT.EDU (Jack Dunn) Linux_Activists 01/16/92 07:44 (14 lines) +Subject: Obtaining Linux +Date: Thu, 16 Jan 92 07:31:27 EST +From: Jack Dunn +To: Linux-Activists@joker.cs.hut.fi + + +I am interested in obtaing the source +to Linux. Could you please tell +where I can ftp the sources from. +I am also interested in being +added to your mailing list. + + +Jack Dunn +jack@headless.larc.nasa.gov (128.155.20.25) +--[0452]-- + +[0453] daemon@ATHENA.MIT.EDU (ury segal) Linux_Activists 01/16/92 08:39 (11 lines) +Subject: easyest way +From: ury@mosque.huji.ac.il (ury segal) +Date: Thu, 16 Jan 92 15:06:03 +0200 +To: linux-activists@joker.cs.hut.fi + + +What is the easyest way to move files from my sun to the linux machine? +I'm tyerd of using the diskkets, so I thout to use the RS232 port I have, +and connect it to the Sun's, and use kermit. Does someone ever tryed that? + + +--ury +--[0453]-- + +[0454] daemon@ATHENA.MIT.EDU (Jon Allen Boone) Linux_Activists 01/16/92 10:22 (8 lines) +Subject: Short Introduction to Linux please +Date: Thu, 16 Jan 1992 07:56:29 -0500 (EST) +From: Jon Allen Boone +To: Linux-Activists@joker.cs.hut.fi +Reply-To: jb3o+linux@andrew.cmu.edu +Cc: Jon Allen Boone + + + +--[0454]-- + +[0455] daemon@ATHENA.MIT.EDU (Timothy Cullip) Linux_Activists 01/16/92 10:28 (30 lines) +Subject: Uncompress corrupting files +Date: Thu, 16 Jan 92 10:05:42 -0500 +From: Timothy Cullip +To: linux-activists@joker.cs.hut.fi + + +I am new to Linux (I've installed 0.12 and used it for less than 2 hours). +It looks great! + +So far I've found one problem: uncompress can do weird things. +This is what I did: + cd / + mkdir test + cp bin/* test + cd test + compress * + uncompress * + +What everything seemed fine up to and through the compress. But +uncompress * resulted in some of the files uncompressing fine and +others not. The ones that didn't typically left the .Z file and a +corresponding non .Z file (that was bad - like 0 bytes). + +If I did an uncompress on each file individually by name (rather than +using the wildcard *) all is fine. + +Is it the fault of uncompress, or the wildcard *, or am I doing something +stupid? + +Tim Cullip +cullip@cs.unc.edu +--[0455]-- + +[0456] daemon@ATHENA.MIT.EDU (Jay Maynard) Linux_Activists 01/16/92 10:44 (18 lines) +Subject: Boot problem with 0.11 +Date: Thu, 16 Jan 92 09:26 CST +To: linux-activists@joker.cs.hut.fi +From: Jay Maynard + +(Yes, I know 0.12 is out. Will it fix this problem?) + +System hardware is Mylex 386SX-16 motherboard with 7.5 MB of RAM, an Everex +EV332 ST506/MFM disk controller, and a Seagate ST251 40 meg disk. +When I try to boot 0.11, I get an error message complaining that the hard +disk controller reset got a return code of D2 or D0, and a kernel panic. +This happens no matter whether I boot up from power off, from the front +panel reset switch after booting DOS, or with an Alt-Ctrl-Delete from DOS. + +Is my hardware flaky? Is my hardware even supported? How do I go about +figuring out the problem? + +...Jay Maynard + +--[0456]-- + +[0457] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 01/16/92 10:50 (38 lines) +Subject: Re: Uncompress corrupting files +Date: Thu, 16 Jan 1992 17:35:42 +0200 +From: Linus Benedict Torvalds +In-Reply-To: Timothy Cullip's message as of Jan 16, 10:05 +To: Timothy Cullip , linux-activists@joker.cs.hut.fi + +Timothy Cullip: "Uncompress corrupting files" (Jan 16, 10:05): +> uncompress * + +Ok, this has come up before. The bug is (I'm told) in the +estdio/compress pair: either compress does something it shouldn't really +do, or estdio has a subtle bug that shows up /only/ with compress, but +the fact is that [un]compress doesn't like several arguments. There +should be a fix for this (a patch to estdio), but I have never seen it. +Do the uncompresses one by one (or in a for-loop), and things are well. + +Someone: +> kermit on 0.12 doesn't work. + +Yet another thing I forgot to say about the new release: the device +numbers for tty's have changed: tty0 is now a "general console" - it +always uses the current console to read/write things (current at the +time of the system call), tty1-63 are reserved for virtual consoles, +tty64-127 are reserved for serial io (possibly line printer: how about +making it a tty-device?) and tty128- are reserved for pty's. + +The com1 is now called /dev/tty64, and com2 is called /dev/tty65. Users +of the alpha vc package for 0.11 will recognize this numbering. Hope +this was the only problem. + +Yet someone else: +> Cannot find mkswap & include.tar.Z + +mkswap was intended to be on the root disk, but I forgot it: it can be +found at least on nic: /pub/OS/Linux/bin/mkswap. include.tar.Z is in the +kernel subdir. I think the other sites have them too - search for them +from the closest site first. + + Linus +--[0457]-- + +[0458] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 01/16/92 11:14 (28 lines) +Subject: Re: Uncompress corrupting files +Date: Thu, 16 Jan 92 11:00:02 -0500 +From: tytso@ATHENA.MIT.EDU (Theodore Ts'o) +To: Linus Benedict Torvalds +Cc: Timothy Cullip , linux-activists@joker.cs.hut.fi +In-Reply-To: Linus Benedict Torvalds's message of Thu, 16 Jan 1992 17:35:42 +0200, +Reply-To: tytso@athena.mit.edu + + Date: Thu, 16 Jan 1992 17:35:42 +0200 + From: Linus Benedict Torvalds + X-Mailer: Mail User's Shell (7.1.1 5/02/90) + + Timothy Cullip: "Uncompress corrupting files" (Jan 16, 10:05): + > uncompress * + + Ok, this has come up before. The bug is (I'm told) in the + estdio/compress pair: either compress does something it shouldn't really + do, or estdio has a subtle bug that shows up /only/ with compress, but + the fact is that [un]compress doesn't like several arguments. + +There's also a problem where if you control-C a "zcat filename", it will +often delete it's input file! I usually type "zcat +To: Linux-activists@joker.cs.hut.fi + +Attached below is a patch to estdio that was posted to comp.os.minix +awhile back. Last time I looked, the linux version of estdio did *NOT* +have these patches applied. Maybe that's what causes the uncompress +problem? + + +Derek Lieber +derek@watson.ibm.com + +-----------------------------------attachment-------------------------------- +Newsgroups: comp.os.minix +Path: arnor!bywater!uunet!uunet!cs.utexas.edu!qt.cs.utexas.edu!yale.edu!ira.uka.de!fauern!NewsServ!rommel +From: rommel@Informatik.TU-Muenchen.DE (Kai Uwe Rommel) +Subject: Yet another bug in estdio (fread.c) +Message-ID: <1991Oct3.111254.23702@Informatik.TU-Muenchen.DE> +Sender: news@Informatik.TU-Muenchen.DE (News System) +Organization: Technische Universitaet Muenchen, Germany +Date: Thu, 3 Oct 1991 11:12:54 GMT +Lines: 38 + +I noticed another bug in estdio/fread.c. It does not set the _IOEOF flag +when hitting EOF during an __ioread() call. + +The diff below fixes it and included the previously known bug with +readsize. I don't know if this fix catches all situations, it works for +me. + +*** fread.c~ Tue Oct 30 05:33:23 1990 +--- fread.c Thu Oct 3 11:17:50 1991 +*************** +*** 66,71 **** +--- 66,72 ---- + MEMCPY(p, q, (size_t) readsize); + p += readsize; + q += readsize; ++ readsize = 0; + } + else { + do +*************** +*** 105,110 **** +--- 106,114 ---- + reed != 0 && (red = __ioread(fileno(fp), (char *) p, reed)) != 0; + p += red, reed -= red) + ; ++ ++ if (red == 0) ++ SETFLAG(fp, _IOEOF); + + if (reed != 0) { + if ((readsize -= reed) >= leftover) { + +Kai Uwe Rommel + +/* Kai Uwe Rommel, Munich ----- rommel@informatik.tu-muenchen.de */ + +DOS ... is still a real mode only non-reentrant interrupt +handler, and always will be. -Russell Williams +--[0459]-- + +[0460] daemon@ATHENA.MIT.EDU (Humberto Ortiz-Zuazaga) Linux_Activists 01/16/92 13:32 (24 lines) +Subject: Re: Boot problem with 0.11 +Date: Thu, 16 Jan 92 13:09:29 EST +From: zuazaga@ucunix.san.uc.EDU (Humberto Ortiz-Zuazaga) +In-Reply-To: <9201161528.AA13668@joker.cs.hut.fi>; from "Jay Maynard" at Jan +To: S0JM@admin.hsc.uth.tmc.EDU (Jay Maynard) +Cc: linux-activists@joker.cs.hut.fi (Linux activists) +Reply-To: zuazaga@ucunix.san.uc.EDU +X-Envelope-To: linux-activists@joker.cs.hut.fi + +Jay Maynard wrote: + +> (Yes, I know 0.12 is out. Will it fix this problem?) + +It did for me, your milage may vary. + +> When I try to boot 0.11, I get an error message complaining that the hard +> disk controller reset got a return code of D2 or D0, and a kernel panic. + +I got 0.11 to work by turning off turbo mode. The 0.12 version works at +full speed, with no complaints. (Thanks Linus!) + +-- +Humberto Ortiz-Zuazaga INTERNET: zuazaga@ucunix.san.uc.edu +Dept. of Physiology & Biophysics BITNET: picone@ucbeh +University of Cincinnati CIS: 72301,2303 +--[0460]-- + +[0462] daemon@ATHENA.MIT.EDU (gordon grant) Linux_Activists 01/16/92 13:52 (18 lines) +Subject: FAQ anyone ? +Date: Thu, 16 Jan 92 15:53:14 GMT +From: gg@jet.uk (gordon grant) +To: linux-activists@joker.cs.hut.fi + + + +Is there a FAQ for this list ? +An information sheet ? +A couple of sentences to get me going ? +anything at all ? :-) + +Where can I get Linux by mail ? we don't have FTP access here. + +Can I run it from a partition or my SCSI disc ? (Adaptec 1542 with +Fujitsu disc). + +gg@jet.uk Gordon Grant Jet Abingdon OX14 3EA UK +Voice +44 235 528822 x4822 Fax +44 235 464404 +--[0462]-- + +[0463] daemon@ATHENA.MIT.EDU (Donald.B.Taber@SYBIL.RISC.ROCKWELL) Linux_Activists 01/16/92 13:52 (23 lines) +Date: 16 Jan 1992 08:37:29 PDT +From: Donald.B.Taber@SYBIL.RISC.ROCKWELL.COM +To: Linux-activists@joker.cs.hut.fi +X-Vms-Original-To: LINUX + + +I'm new to linux and am, of course, filled with burning questions. +I've been playing with the floppy versions and am all excited about +installing it on a hard drive. I have noticed, however, that 0.12 +seems to be lacking /dev/hd8 and /dev/hd9. Does this mean that I +will have trouble installing it on a 2nd (hd5) hard drive? Should +I swap hard drive positions to avoid it? I imagine that once I'm +up with sources & a compiler I can get everything straightened out. + +I'm reasonably proficient in C/C++ but have only a user's knowledge +of Unix. Can anyone suggest a good reference to get me started +on the real guts of unix architecture, administrative details, etc? + +Thanks. + +Don Taber +dbt@victoria.risc.rockwell.com + +--[0463]-- + +[0465] daemon@ATHENA.MIT.EDU (ury segal) Linux_Activists 01/16/92 14:02 (8 lines) +Subject: Socket for the people ! +From: ury segal +Date: Thu, 16 Jan 92 20:28:29 +0200 +To: linux-activists@joker.cs.hut.fi + + +Is someone working on sockets ??? If not, I may do it. + +--ury +--[0465]-- + +[0466] daemon@ATHENA.MIT.EDU (Timothy L. Kay) Linux_Activists 01/16/92 14:19 (15 lines) +Subject: Re: Use PERL rather than C for system commands? +From: tim@pokey.cs.caltech.edu (Timothy L. Kay) +To: linux-activists@joker.cs.hut.fi +Date: Thu, 16 Jan 92 10:55:30 -0800 + + +I recently submitted a message suggesting that Linux use PERL as the +implementation lanugage for many of its system support programs. The +follow-ups indicated that people aren't familiar with the abilities of +PERL. To address specific points mentioned in the followup, PERL does +give access to essentially all of the Unix system calls, including +alarm() and listen(). There is no technical reason why PERL couldn't +be used; it is simply a question of whether people think the +philosophical change is justified by the advantages gained. + +Tim +--[0466]-- + +[0467] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 01/16/92 14:26 (29 lines) +Subject: shoelace, and console +Date: Thu, 16 Jan 92 09:25:33 PST +From: pmacdona@sanjuan.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + + +Beware, that the shoelace patches I posted overwrite the byte at offset +that is used for the swap device. That is because I tried to get +clever and put the "rootdev" in that is in the shoelace config file +and put it where Linux expects it, ie offset 508. It never worked, +but I never took it out of the code in shoe.c. Somehow, +it ends up at 506, where the swapdev is now stored! + +So guess when I found this out, go on, take a guess. + +You got it, right after I blew away my minix partition, to create +a swap partition. So I can't recompile shoelace without reinstalling +minix. I don't have the diskspace for this. + +If someone out there has installed my shoelace patches, and has minix, +can you change the 508, to 510 in shoe.c at around line 548, and recompile. +Then maybe upload the executable to nic? And maybe let me know? + +Also, there is a problem with special characters in console.c now. +Even reset doesn't clear it. When I figure it out, I will post +it as part of my console patch for blanking, dumping et al. +I don't want to repeat the slew of patches I put out in .11. + +Peter. + +--[0467]-- + +[0468] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 01/16/92 14:52 (24 lines) +Subject: No subject found in mail header +Date: Thu, 16 Jan 1992 21:19:58 +0200 +From: Linus Benedict Torvalds +In-Reply-To: Donald.B.Taber@SYBIL.RISC.ROCKWELL.COM's message as of Jan 16, 8:37 +To: Donald.B.Taber@SYBIL.RISC.ROCKWELL.COM, Linux-activists@joker.cs.hut.fi + +Donald.B.Taber@SYBIL.RISC.ROCKWELL.COM: "" (Jan 16, 8:37): +> +> I'm new to linux and am, of course, filled with burning questions. +> I've been playing with the floppy versions and am all excited about +> installing it on a hard drive. I have noticed, however, that 0.12 +> seems to be lacking /dev/hd8 and /dev/hd9. Does this mean that I +> will have trouble installing it on a 2nd (hd5) hard drive? + +Argghh. Yet another root-diskette bug. This one is simple to rectify: +make the new devices with; + +# mknod /dev/hd8 b 3 8 +# mknod /dev/hd9 b 3 9 + +and all should be well. I don't have hd8 and hd9, and used just a "cp ++recursive" to get the files copied to the root-diskette. I will write a +C-program to print out 1000 times:"check the rootdiskette next time". + + Linus "shamefaced" Torvalds +--[0468]-- + +[0469] daemon@ATHENA.MIT.EDU (Arlie Davis) Linux_Activists 01/16/92 14:52 (24 lines) +Subject: Re: PERL +From: Arlie Davis +To: linux-activists@joker.cs.hut.fi (Linux Mailing List) +Date: Thu, 16 Jan 92 14:24:46 EST + +> I recently submitted a message suggesting that Linux use PERL as the +> implementation lanugage for many of its system support programs. The +> follow-ups indicated that people aren't familiar with the abilities of +> PERL. To address specific points mentioned in the followup, PERL does +> give access to essentially all of the Unix system calls, including +> alarm() and listen(). There is no technical reason why PERL couldn't +> be used; it is simply a question of whether people think the +> philosophical change is justified by the advantages gained. +> +> Tim + +The technical abilities of PERL are not being questioned. But using PERL +would greatly complicate matters, when there is no storage benefit and a +performance degradation. (Before you reply that PERL is interpretted, or +interpiled, remember that very soon Linux will have shared libraries, and I +believe Linux already has shared and sticky binaries.) + +-- +Arlie Davis + +--[0469]-- + +[0470] daemon@ATHENA.MIT.EDU (Timothy Cullip) Linux_Activists 01/16/92 14:53 (13 lines) +Subject: VI for Linux +Date: Thu, 16 Jan 92 12:27:29 -0500 +From: Timothy Cullip +To: linux-activists@joker.cs.hut.fi + + +Is there an ftp'able vi (yes, I'm a dinosaur) binary available for Linux? +I have this sickening feeling that it will take me awhile to get gcc up +and working to the point where I can easily compile a version of +vi (e.g. elvis) so I'd like to have a binary if there is one available. + +Tim Cullip +cullip@cs.unc.edu + +--[0470]-- + +[0471] daemon@ATHENA.MIT.EDU (Arlie Davis) Linux_Activists 01/16/92 14:54 (8 lines) +Subject: newsgroup? +From: Arlie Davis +To: linux-activists@joker.cs.hut.fi (Linux Mailing List) +Date: Thu, 16 Jan 92 14:20:35 EST + +There is enough traffic here to warrant a newsgroup, wouldn't you think? Or +is the privacy worth it? comp.os.linux would be pretty impressive. + + +--[0471]-- + +[0473] daemon@ATHENA.MIT.EDU (Timothy Cullip) Linux_Activists 01/16/92 15:07 (13 lines) +Subject: VI for Linux +Date: Thu, 16 Jan 92 12:27:29 -0500 +From: Timothy Cullip +To: linux-activists@joker.cs.hut.fi + + +Is there an ftp'able vi (yes, I'm a dinosaur) binary available for Linux? +I have this sickening feeling that it will take me awhile to get gcc up +and working to the point where I can easily compile a version of +vi (e.g. elvis) so I'd like to have a binary if there is one available. + +Tim Cullip +cullip@cs.unc.edu + +--[0473]-- + +[0474] daemon@ATHENA.MIT.EDU (Corvin Zahn) Linux_Activists 01/16/92 15:10 (10 lines) +Subject: linux on PS/2 P70-386? +From: zahn@nova.tat.physik.uni-tuebingen.de (Corvin Zahn) +To: linux-activists@joker.cs.hut.fi +Date: Thu, 16 Jan 92 20:49:41 MEZ + +Hi, + +does linux run on a PS/2 P70-386 (ESDI-drive) ? + +Corvin + +--[0474]-- + +[0475] daemon@ATHENA.MIT.EDU (Lawrence C. Foard) Linux_Activists 01/16/92 15:29 (18 lines) +Subject: BSD sockets+TCP/IP +Date: Thu, 16 Jan 92 15:14:19 -0500 +From: entropy@ee.WPI.EDU (Lawrence C. Foard) +To: linux-activists@joker.cs.hut.fi + +IF YOUR WORKING ON TCP/IP OR SOCKETS READ THIS... + +It appears that no one is working on sockets or TCP/IP yet? A friend and I are +planning to start working on this if no one has already started work. +If you are working on it please please write so we don't waste our time +duplicating efforts. + +Questions: + +What ethernet boards would you like to see supported? +Currently we are planning to buy an intel board but don't have money to buy +other boards so would appreciate donations or loans of other manufactorers +cards. Any technical docs would be helpful, or source code for software that +uses them. +--[0475]-- + +[0476] daemon@ATHENA.MIT.EDU (Pietro Caselli) Linux_Activists 01/16/92 15:34 (21 lines) +Subject: Re: VI for Linux +Date: Thu, 16 Jan 92 21:08:17 MES +From: pietro@deis35.cineca.it (Pietro Caselli) +To: cullip@cs.unc.edu, linux-activists@joker.cs.hut.fi + +If people on the mailing list is enough patient I'll post my +porting of Berkeley Vi 3.0 ( I don't know if I'm going against +any copyright ... if some one knows plese tell me ! ) + +It worked well with Linux 0.11, I don't see why it shouldn't with +0.12. + +I just need some time, a week, since I destroyed my HD and I'm waiting +for a brand new :-( + +Ciao. + +_ +| Pietro Caselli +| Dipartimento di Elettronica, Informatica e Sistemistica +| Universita' di Bologna +| Undergraduate Student +--[0476]-- + +[0477] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 01/16/92 15:43 (24 lines) +Subject: No subject found in mail header +Date: Thu, 16 Jan 1992 21:19:58 +0200 +From: Linus Benedict Torvalds +In-Reply-To: Donald.B.Taber@SYBIL.RISC.ROCKWELL.COM's message as of Jan 16, 8:37 +To: Donald.B.Taber@SYBIL.RISC.ROCKWELL.COM, Linux-activists@joker.cs.hut.fi + +Donald.B.Taber@SYBIL.RISC.ROCKWELL.COM: "" (Jan 16, 8:37): +> +> I'm new to linux and am, of course, filled with burning questions. +> I've been playing with the floppy versions and am all excited about +> installing it on a hard drive. I have noticed, however, that 0.12 +> seems to be lacking /dev/hd8 and /dev/hd9. Does this mean that I +> will have trouble installing it on a 2nd (hd5) hard drive? + +Argghh. Yet another root-diskette bug. This one is simple to rectify: +make the new devices with; + +# mknod /dev/hd8 b 3 8 +# mknod /dev/hd9 b 3 9 + +and all should be well. I don't have hd8 and hd9, and used just a "cp ++recursive" to get the files copied to the root-diskette. I will write a +C-program to print out 1000 times:"check the rootdiskette next time". + + Linus "shamefaced" Torvalds +--[0477]-- + +[0478] daemon@ATHENA.MIT.EDU (LCDR Michael E. Dobson) Linux_Activists 01/16/92 16:24 (38 lines) +Subject: Re: your mail +From: "LCDR Michael E. Dobson" +To: linux-activists@joker.cs.hut.fi +Date: Thu, 16 Jan 92 15:23:56 EST +In-Reply-To: <199201161919.AA06121@kruuna.helsinki.fi>; from "Linus Benedict Torvalds" at Jan 16, 92 9:19 pm + +> +> Donald.B.Taber@SYBIL.RISC.ROCKWELL.COM: "" (Jan 16, 8:37): +> > +> > I'm new to linux and am, of course, filled with burning questions. +> > I've been playing with the floppy versions and am all excited about +> > installing it on a hard drive. I have noticed, however, that 0.12 +> > seems to be lacking /dev/hd8 and /dev/hd9. Does this mean that I +> > will have trouble installing it on a 2nd (hd5) hard drive? +> +> Argghh. Yet another root-diskette bug. This one is simple to rectify: +> make the new devices with; +> +> # mknod /dev/hd8 b 3 8 +> # mknod /dev/hd9 b 3 9 +> +> and all should be well. I don't have hd8 and hd9, and used just a "cp +> +recursive" to get the files copied to the root-diskette. I will write a +> C-program to print out 1000 times:"check the rootdiskette next time". +> +> Linus "shamefaced" Torvalds +> + +Either that or include the instructions in the INSTALL/RELNOTES and/or +keep them on your working copy even though you don't have those partitions. +I don't have 4 partitions on my first hd but keep the devices in /dev "just +in case" + +Regards, +-- +Mike Dobson, Sys Admin for | Internet: rdc30@nmrdc1.nmrdc.nnmc.navy.mil +nmrdc1.nmrdc.nnmc.navy.mil | UUCP: ...uunet!mimsy!nmrdc1!rdc30 +AT&T 3B2/600G Sys V R 3.2.2 | BITNET: dobson@usuhsb or nrd0mxd@vmnmdsc +WIN/TCP for 3B2 | MCI-Mail: 377-2719 or 0003772719@mcimail.com +--[0478]-- + +[0479] daemon@ATHENA.MIT.EDU (Arlie Davis) Linux_Activists 01/16/92 16:38 (7 lines) +Subject: Duplicates... +From: Arlie Davis +To: linux-activists@joker.cs.hut.fi (Linux Mailing List) +Date: Thu, 16 Jan 92 16:14:13 EST + +I'm starting to see duplicate messages from the mailing list -- any clues, or +is this just a net.hiccup? + +--[0479]-- + +[0480] daemon@ATHENA.MIT.EDU (IJW11@phx.cam.ac.uk) Linux_Activists 01/16/92 16:48 (21 lines) +Subject: No subject found in mail header +Date: Thu, 16 Jan 92 21:21:41 GMT +From: IJW11@phx.cam.ac.uk +To: linux-activists@joker.cs.hut.fi + +> Color me an ignorant american, but what is the difference between a +> U.S. and a U.K. keyboard (besides the pound symbol for currency)? + +First, thanks for replying, I wasn't sure whether this got though. + +The differences involve: + +Key '2' has a '"' when shifted; +Key '3' Has a pound sign, nort a hash; +The ' and " key is pound sign and '@'; +and there are some other odd keys, noticeably the fact that the +backslash and backquote characters have moved by miles. +I have an American keyboard, but it's twice as heavy as the +British one that I uae, and since I go by key symbols when +typing (professional typing, eh? 8-) it gets on my nerves. + +Ian Wells. +--[0480]-- + +[0481] daemon@ATHENA.MIT.EDU (Rob Soukoreff) Linux_Activists 01/16/92 16:49 (30 lines) +Subject: gcc questions +Date: Thu, 16 Jan 92 16:35:30 -0500 +From: Rob Soukoreff +To: Linux-activists@joker.cs.hut.fi + + + +Hello Activists! + + +I am unable to compile with gcc, (on Linux 0.12, 2meg ram, 386-sx, AMI bios). + +When I type gcc filename, I get: +gcc: installation problem, cannot exec cpp: Exec format error + +I think I just don't have the correct things in the correct places, so: +1) Where does gcc (and accompanying files) go? /usr/gnu/bin? +2) Where do libc.a & libreadline.a go? +3) Where do I put the files in lib.tar.Z +4) Where do I put the include files, include.tar? +5) Is there anything else I need, and where should I put it? + +I appologize if these questions are FAQ, if so could someone point me +to the FAQ? + + +Thanks, + Rob Soukoreff + rwsoukoreff@descartes.uwaterloo.ca + + +--[0481]-- + +[0482] daemon@ATHENA.MIT.EDU (Lawrence C. Foard) Linux_Activists 01/16/92 17:12 (10 lines) +Subject: WD card +Date: Thu, 16 Jan 92 16:44:24 -0500 +From: entropy@ee.WPI.EDU (Lawrence C. Foard) +To: linux-activists@joker.cs.hut.fi + + +I got about 10 requests for the WD card in the minutes after posting it :) +If I can get ahold of one I will probably try to make the first driver for it +(this is assuming no one else has claimed sockets+TCP/IP yet). Does any one +know the name of the company that bought the card production from WD? + +--[0482]-- + +[0484] daemon@ATHENA.MIT.EDU (Paul Hetrick) Linux_Activists 01/16/92 17:20 (40 lines) +Subject: Re: BSD sockets+TCP/IP +Date: Thu, 16 Jan 92 17:04:15 EST +From: hetrick@sparky.eeel.nist.gov (Paul Hetrick) +To: linux-activists@joker.cs.hut.fi +In-Reply-To: <9201162014.AA00798@wintermute.WPI.EDU> + +> Date: Thu, 16 Jan 92 15:14:19 -0500 +> From: entropy@ee.WPI.EDU (Lawrence C. Foard) +> To: linux-activists@joker.cs.hut.fi +> Subject: BSD sockets+TCP/IP +> +> IF YOUR WORKING ON TCP/IP OR SOCKETS READ THIS... +> +> It appears that no one is working on sockets or TCP/IP yet? A friend and I +> are planning to start working on this if no one has already started work. +> If you are working on it please please write so we don't waste our time +> duplicating efforts. +> +> Questions: +> +> What ethernet boards would you like to see supported? +> Currently we are planning to buy an intel board but don't have money to buy +> other boards so would appreciate donations or loans of other manufactorers +> cards. Any technical docs would be helpful, or source code for software +> that uses them. +> + + TCP/IP and Sockets are more than I have time to tackle, but I might be +able to point you to some Code and docs. Try FTPing to zaphod.ncsa.uiuc.edu +[141.142.20.50]. They have a PD (or at least freely distributed) telnet +program for MS-DOS with drivers for LOTS of ethernet boards. The source +code for all the drivers is in one BIG .zip file. If you could base your +low-level drivers on this code it would probably make it easier to port to +other boards. + + Hope this helps + +Paul +hetrick@eeel.nist.gov + + +--[0484]-- + +[0485] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 01/16/92 17:30 (34 lines) +Subject: Re: BSD sockets+TCP/IP +Date: Thu, 16 Jan 92 17:12:39 -0500 +From: tytso@ATHENA.MIT.EDU (Theodore Ts'o) +To: hetrick@sparky.eeel.nist.gov +To: entropy@ee.WPI.EDU (Lawrence C. Foard) +Cc: linux-activists@joker.cs.hut.fi +In-Reply-To: Paul Hetrick's message of Thu, 16 Jan 92 17:04:15 EST, +Reply-To: tytso@athena.mit.edu + + Date: Thu, 16 Jan 92 17:04:15 EST + From: hetrick@sparky.eeel.nist.gov (Paul Hetrick) + + TCP/IP and Sockets are more than I have time to tackle, but I might be + able to point you to some Code and docs. Try FTPing to zaphod.ncsa.uiuc.edu + [141.142.20.50]. They have a PD (or at least freely distributed) telnet + program for MS-DOS with drivers for LOTS of ethernet boards. The source + code for all the drivers is in one BIG .zip file. If you could base your + low-level drivers on this code it would probably make it easier to port to + other boards. + +If this is the Clarson packet driver stuff, be aware that the code +assumes you are running in 16 bit real mode. It may be non-trivial to +port them so that they work in a 32-bit protected mode. You may want to +look at them and form your own opinion. + +Whether or not you use the MS-LOSS packet drivers, it would be a very +good idea to have a well-defined abstraction boundary between the +Networking/IP layer and the Ethernet driver layer. Then you can publish +the interface early on, and people can write their own drivers for their +ethernet cards with a minimum of pain. + +Lawrence, I assume that you will be using the BSD networking release as +a base? + + - Ted +--[0485]-- + +[0486] daemon@ATHENA.MIT.EDU (Ari Lemmke) Linux_Activists 01/16/92 17:37 (30 lines) +Subject: Hmmmm...too much of a good thing? =8^) +Date: Fri, 17 Jan 1992 00:26:50 +0200 +From: Ari Lemmke +To: linux-activists@joker.cs.hut.fi +In-Reply-To: "Ken Corey, CSCI Major..."'s message of Thu, 16 Jan 1992 15:59 CDT <01GFE18S1YRK003ISR@vaxb.acs.unt.edu> + + +>Is it just me, or are we ALL getting 2 copies of the mail about linux? + + It should not happen. There was only one person who had + 2 entries caused by requesting two times ;-) + + We have no 300+ Linux activists on the mailing list, and + every day there's 20 or more requesting for joining. + + You can check the mailing list: + 'telnet niksula.hut.fi 25' + 'vrfy linux-activists' + and to quit use ;-) + 'quit' + + I'm going to start RFD about comp.os.linux, and when + the voting comes, I hope you do vote for it ... + Still we are _not_ going to end this mailing list, + because there are sites which don't have access to news. + + Also for the future we might need special hackers + list .. where only Linux kernel hacking is + discussed. + + arl +--[0486]-- + +[0487] daemon@ATHENA.MIT.EDU (Randy Appleton) Linux_Activists 01/16/92 18:08 (22 lines) +Subject: Mtools and Me +From: Randy Appleton +Date: Thu, 16 Jan 1992 17:52:47 EST +To: linux-activists@joker.cs.hut.fi + +I'm rather new to the Linux world, but I have been able to boot it and +get it to recognize my hard drive. However, I'm having a bear of a +time getting things onto the hard drive. Does anyone have the +binaries for the Mtools package they can send me, or tell me where I +can ftp the same. I'd really appricate it. + +Also, can whoever adds people to this list make sure I'm on it. I +sent in a subscription request, but havenn' heard back. Nor did my +mail bounce. + +-Thanks +-Randy + +-- +============================================================================== +Is it fair to the young people of today that we keep raising the +national debt? Vote against George Bush! +============================================Randy@ms.uky.edu================== +--[0487]-- + +[0488] daemon@ATHENA.MIT.EDU (Linus Benedict Torvalds) Linux_Activists 01/16/92 18:47 (42 lines) +Subject: Re: gcc questions +Date: Fri, 17 Jan 1992 01:22:52 +0200 +From: Linus Benedict Torvalds +In-Reply-To: Rob Soukoreff's message as of Jan 16, 16:35 +To: Rob Soukoreff , + +Rob Soukoreff: "gcc questions" (Jan 16, 16:35): +> +> I am unable to compile with gcc, (on Linux 0.12, 2meg ram, 386-sx, AMI bios). + +Ok, this comes up every once in a while, and I agree a FAQ would be a +good idea. We had one, but it got out-of-date even before it was ready: +linux has evolved rather quickly. Just as a pointer, there are +linux-activists mail collected at tsx-11 (or was some time ago), and +people new on the list might want to know what the problems of +yesterweek have been. + +Gcc can install in several directories, but the following is what I use: + +from gccbin.tar: + +/usr/local/bin - gcc +/usr/local/lib - all the other stuff + +/usr/local/bin needs to be in the path (as an aside: bash-1.11 has a bug +which results in an abort() if your path ends in a colon, and you try to +execute something that doesn't exists: eg xyzzy). + +include.tar.Z should untar to the /usr/include -directory tree if you +untar it in the root directory. Check with "tar tf include.tar". + +lib.tar.Z doesn't need to go in any special place: I have a source tree +under /usr/src, and I put it under that. You don't need this file unless +you want to recompile the library. + +Additionally, I've linked (use symbolic links if you wish, testing out +new features) gcc to just 'cc', as that means I sometimes don't have to +change the makefiles at all. Likewise, gcc-ld, gcc-as, gcc-ar can with +success be linked to the files 'gld', 'gas' and 'gar', somewhere on the +path. I have all the /usr/local/lib/gcc-XX files linked both to +/usr/local/bin/XX and /usr/local/bin/gXX. + + Linus +--[0488]-- + +[0490] daemon@ATHENA.MIT.EDU (klaus@ced.utah.edu) Linux_Activists 01/16/92 19:26 (11 lines) +Subject: debugger for linux? +Date: Thu, 16 Jan 92 17:05:25 MST +From: klaus@ced.utah.edu +To: Linux-activists@joker.cs.hut.fi +X-Envelope-To: Linux-activists@joker.cs.hut.fi + + +Is there any kind of debugger for linux? SOmething like gdb would be nice. +Is there such a beast.. yet? + +-klaus@ced.utah.edu + +--[0490]-- + +[0491] daemon@ATHENA.MIT.EDU (Paul Rubin) Linux_Activists 01/16/92 19:57 (16 lines) +Subject: Re: BSD sockets+TCP/IP +Date: Thu, 16 Jan 92 16:46:58 -0800 +From: Paul Rubin +To: hetrick@sparky.eeel.nist.gov, linux-activists@joker.cs.hut.fi + +There are at least a couple of free implementations of TCP/IP, +though I don't know about sockets. One was written by Russ Nelson +and is GNU-copylefted, but I don't know what functionality it +includes. I believe it is ftpable from grape.soe.clarkson.edu. +The other was written by Phil Karn KA9Q and includes pretty +much everything, but I'm not sure of the exact distribution +permissions. It's called the KA9Q TCP package. I'm not sure +where to ftp a copy but "archie" should be able to find it, +or I could ask someone. Having no network hardware I haven't +really looked into either of these. I believe there was also +a free package written at MIT that was the basis for FTP Software's +implementation but I don't know more details. +--[0491]-- + +[0492] daemon@ATHENA.MIT.EDU (Peter Cooper) Linux_Activists 01/16/92 20:13 (8 lines) +Subject: Re: VI for Linux +Date: Fri, 17 Jan 1992 09:58:36 +0900 +From: comrade@uniwa.uwa.oz.au (Peter Cooper) +To: cullip@cs.unc.edu, linux-activists@joker.cs.hut.fi + +I have a compiled version of elvis. It took virtually nothing to compile +it if I remember rightly (no patches). I will upload it to nic.funet.fi +and tsx-11.mit.edu in a few hours. + +--[0492]-- + +[0493] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 01/16/92 20:24 (12 lines) +Subject: Re: VI for Linux +Date: Thu, 16 Jan 92 17:13:34 PST +From: pmacdona@sanjuan.UVic.CA (Peter MacDonald) +To: comrade@uniwa.uwa.oz.au +Cc: linux-activists@joker.cs.hut.fi + +Elvis has some problems, including failure to keep the screen representation +accurate (extra, missing and duplicated lines) and no line wrap. + +I know, cause I have been using it for several years. If something out +there does a better job, lets see it instead. + +Ps. I am currently using it under linux as well. +--[0493]-- + +[0494] daemon@ATHENA.MIT.EDU (Tad Hunt) Linux_Activists 01/16/92 20:31 (9 lines) +Subject: Device numbers +From: hunt@cthulhu.control.com (Tad Hunt) +To: linux-activists@joker.cs.hut.fi +Date: Thu, 16 Jan 92 20:12:01 EST + +Can anyone tell me the device numbers for /dev/hd3 and /dev/hd4? +The docs only seem to mention hd1 and hd2 and I'm having trouble +figuring out the minor device numbers. I want to use /dev/hd3 as root +and /dev/hd4 as swap. Thanks in advance. + +--[0494]-- + +[0495] daemon@ATHENA.MIT.EDU (Adam Goldberg) Linux_Activists 01/16/92 21:31 (29 lines) +Subject: Booting problems... +To: linux-activists@joker.cs.hut.fi +Date: Thu, 16 Jan 92 20:15:44 CST +From: Adam Goldberg + + +I can't get Linux 0.12 to boot: + +Here's my equipment: +386DX-25, 4M, AMI BIOS (dated '89), Hercules Mono. +105M Priam RLL drive, which has >1024 cylinders, hence I have a DTC 7287 +controller, which maps the harddrive to having 32 sectors/track. + +Here's the problem: +I boot & get the Loading..., then '*MDA' goes in the upper-right corner +of the screen, then '2 Virtual Consoles' & '4 pty's' then (argh) +'Kernel Panic: HD Controller not ready'. + +Sometimes I don't get past the Loading..., sometimes I get to the +panic. + +Any clues? + + ++-----------------------------------------------------------------------------+ +! Adam Goldberg ! "It's simple! Even a PASCAL programmer could do ! +! goldberg@iastate.edu ! it!" ! +! tabu6@isuvax.BITNET ! "Remember: the sooner you fall behind, the ! +! #include ! more time you have to catch up!" ! ++-----------------------------------------------------------------------------+ +--[0495]-- + +[0496] daemon@ATHENA.MIT.EDU (Michael K. Johnson) Linux_Activists 01/16/92 21:37 (12 lines) +Subject: FIFO's +Date: Thu, 16 Jan 92 20:19:32 CST +From: johnsonm@stolaf.edu (Michael K. Johnson) +To: Linux-activists@joker.cs.hut.fi + + +Is anyone working on FIFO's? if not I might try them next month or +so. Anyone with any advice on this, please mail me. + +michaelkjohnson +johnsonm@stolaf.edu +I don't do .sig's +ha. got it right this time.:-) +--[0496]-- + +[0497] daemon@ATHENA.MIT.EDU (Michael K. Johnson) Linux_Activists 01/16/92 21:40 (33 lines) +Subject: DTC SCSI +Date: Thu, 16 Jan 92 20:18:01 CST +From: johnsonm@stolaf.edu (Michael K. Johnson) +To: Linux-activists@joker.cs.hut.fi + + +DTC (division of qume) is sending me chip specs so that I can write +a low-level SCSI driver for the DTC3180A/DTC3280A pair of cards. I +don't know what other DTC cards it will work on, but I should find +out when the docs come. When I do know, I will post. + +A word of warning -- There is a miniscule but non-zero chance that +some people will have to upgrade their driver BIOS to use such a driver. +if and only if this turns out to be true, I will contact DTC and +get the necessary information for upgrading. + +When I do this, I will need beta-testers, because all I have is a +very brain-dead ST296N that responds to almost no SCSI commands. I +will need someone with an advanced SCSI drive ti check to see if it +passes SCSI commands correctly. + +If you wish to beta this (due to my busy student status, I make no +guarantees about time frames) please send me a note, and I will +keep your address. Bear in mind if you do this that it may be +awhile before I even get the specs, let alone start coding the +driver, and that is dependant on the high-level drivers coming +out.... + +happy linuxing... +michaelkjohnson +johnsonm@stolaf.edu +I don't do .sig;s + ' oops. + +--[0497]-- + +[0499] daemon@ATHENA.MIT.EDU (Michael K. Johnson) Linux_Activists 01/16/92 22:11 (33 lines) +Subject: DTC SCSI +Date: Thu, 16 Jan 92 20:18:01 CST +From: johnsonm@stolaf.edu (Michael K. Johnson) +To: Linux-activists@joker.cs.hut.fi + + +DTC (division of qume) is sending me chip specs so that I can write +a low-level SCSI driver for the DTC3180A/DTC3280A pair of cards. I +don't know what other DTC cards it will work on, but I should find +out when the docs come. When I do know, I will post. + +A word of warning -- There is a miniscule but non-zero chance that +some people will have to upgrade their driver BIOS to use such a driver. +if and only if this turns out to be true, I will contact DTC and +get the necessary information for upgrading. + +When I do this, I will need beta-testers, because all I have is a +very brain-dead ST296N that responds to almost no SCSI commands. I +will need someone with an advanced SCSI drive ti check to see if it +passes SCSI commands correctly. + +If you wish to beta this (due to my busy student status, I make no +guarantees about time frames) please send me a note, and I will +keep your address. Bear in mind if you do this that it may be +awhile before I even get the specs, let alone start coding the +driver, and that is dependant on the high-level drivers coming +out.... + +happy linuxing... +michaelkjohnson +johnsonm@stolaf.edu +I don't do .sig;s + ' oops. + +--[0499]-- + +[0500] daemon@ATHENA.MIT.EDU (drew@hazelrah.cs.Colorado.EDU) Linux_Activists 01/16/92 22:14 (28 lines) +Subject: Re: VI for Linux +To: linux-activists@joker.cs.hut.fi +In-Reply-To: Your message of Thu, 16 Jan 92 21:08:17 +0600. +Date: Thu, 16 Jan 92 20:02:59 MST +From: drew@hazelrah.cs.Colorado.EDU + + + If people on the mailing list is enough patient I'll post my + porting of Berkeley Vi 3.0 ( I don't know if I'm going against + any copyright ... if some one knows plese tell me ! ) + + It worked well with Linux 0.11, I don't see why it shouldn't with + 0.12. + + I just need some time, a week, since I destroyed my HD and I'm waiting + for a brand new :-( + + Ciao. +--------- + +elvis, compiled with the SYSV options works fine, also can emulate ex, +and has other neato faetures like scrolling left to right instead of +wrapping lines, and allowing the cursor controls to remain functional +when in edit mode..... + +I've got binaries if people are interested - I just couldn't live +without my vi!! + + +--[0500]-- + +[0501] daemon@ATHENA.MIT.EDU (Morgan Schweers) Linux_Activists 01/16/92 23:07 (12 lines) +Subject: GNU Emacs? +Date: Thu, 16 Jan 92 19:50:13 PST +From: mrs@netcom.netcom.com (Morgan Schweers) +To: linux-activists@joker.cs.hut.fi + +Greetings, + O-o-o-kay, I just found the 'Emacs' patches on tsx-11.mit.edu, and I'd +like to know if these are 1) for .12, and 2) for GNU Emacs. If so, I'll +be spending a bunch of time compiling tonight... *grin* + + Suggestions? + + -- Morgan Schweers +--[0501]-- + +[0503] daemon@ATHENA.MIT.EDU (Michael Almond) Linux_Activists 01/16/92 23:27 (23 lines) +Subject: DOS emulator +From: mra@searchtech.com (Michael Almond) +To: linux-activists@joker.cs.hut.fi +Date: Thu, 16 Jan 92 23:11:55 EST + +Has anyone considered creating a DOS emulator for linux? I have heard +the the GNU hurd folks had expiremented with this with reported success, +but I don't remeber ever seeing any details of how they did it. + +Does anyone see how the current design of linux might prevent creating +and emulator? + +I'm not sure what all would need to be done in order to create an +emulator. Anyone have any pointers? + +Thanks. + +-- +Michael R. Almond (Georgia Tech Alumnus) mra@srchtec.uucp (registered) +digital presence associates mra@searchtech.com +1017J oak chase drive uupsi!srchtec!mra +tucker, georgia 30084 (404) 491-0036 (office/home) + + *** League for Programming Freedeom member / GNU supporter *** +--[0503]-- + +[0504] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 01/17/92 03:19 (37 lines) +Subject: ps, and some vc junk. +Date: Fri, 17 Jan 92 00:04:08 PST +From: pmacdona@sanjuan.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + + +I have all of the features of VC working again, including +screen blanking, screen dumping and using memory buffers so +more consoles than your single page of video memory will allow +can be used. These buffers use kernel memory, but would have +been required when a windowing system comes along anyways. +The unpleasant juddering of the screen when scrolling is also +eliminated. Does anyone else see this or is it just me? +Also, terminal reset is fixed. It wasn't resetting back from +graphics char mode. Finally, I got rid of the check in +setterm.c for the terminal type. But since setterm wasn't +distributed with .12, it won't affect to many people. + +I will probably not release it for a few more days, so I can +test it some more, and figure out whats going on with +vt100 graphics chars, but if you are desperate to alpha test, +drop me a note. The patches are not too extensive, and the +main goal was to disturb .12 as little as possible. + +I have also written a poor persons version of ps. Actually, +it is more like a skeleton. But it correctly gets info from +the kernel, and runs as a standalone program rather than being. +driven by function keys. + +However, it should be made to look more like what +people are used to. If someone wants to volunteer to take +it and extend it to have all the nice options, let me know. +I think ps is one of those very system specific functions that +we can not pull in from GNU. But, if you have an idea of +what it should be modelled after (Sun?) speak up now. + +I am announcing all this so hopefully, duplication is avoided. + +--[0504]-- + +[0505] daemon@ATHENA.MIT.EDU (tthorn@daimi.aau.dk) Linux_Activists 01/17/92 03:20 (19 lines) +Subject: Adaptec SCSI driver work is underway, yes.. +Date: Fri, 17 Jan 92 07:59:38 +0100 +From: tthorn@daimi.aau.dk +To: linux-activists@joker.cs.hut.fi + +(I'm double copies of many, but not all mails also.) + +I'm working on a lowlevel driver for the Adaptech-1542. +I've just read my first sector:-) I'm planning to base +it on drew (drew@hazelrah.cs.Colorado.EDU)'s highlevel +stuff. + +I'm in as much need for the driver as any, since without +it I'm only running floppies:-< + +/Tommy +Tommy Thorn email: tthorn@daimi.aau.dk +Computer Science Department "People shouldn't work because they love it, +Aarhus University they should work because it hurts." +DENMARK -- Bob Sparacino, former Xerox executive +--[0505]-- + +[0506] daemon@ATHENA.MIT.EDU (gaia@leland.Stanford.EDU) Linux_Activists 01/17/92 03:43 (169 lines) +Subject: US extended keyboard +Date: Thu, 16 Jan 92 23:40:21 PST +From: gaia@leland.Stanford.EDU +To: linux-activists@joker.cs.hut.fi + +Greetings, + +The following is a patch to kernel/chr_drv/keyboard.S to switch the +infamous keys of a US extended keyboard: + + ESC <-> [`~] + Ctrl <-> Capslock + +-Alfred + +*** keyboard.old Thu Jan 16 12:28:26 1992 +--- keyboard.S Thu Jan 16 12:15:09 1992 +*************** +*** 304,316 **** + #elif defined(KBD_US) + + key_map: +! .byte 0,27 + .ascii "1234567890-=" + .byte 127,9 + .ascii "qwertyuiop[]" + .byte 13,0 + .ascii "asdfghjkl;'" +! .byte '`,0 + .ascii "\\zxcvbnm,./" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ +--- 304,324 ---- + #elif defined(KBD_US) + + key_map: +! #ifdef EXTENDED_KEYBOARD +! .byte 0,'` +! #else +! .byte 0,27 +! #endif + .ascii "1234567890-=" + .byte 127,9 + .ascii "qwertyuiop[]" + .byte 13,0 + .ascii "asdfghjkl;'" +! #ifdef EXTENDED_KEYBOARD +! .byte 27,0 +! #else +! .byte '`,0 +! #endif + .ascii "\\zxcvbnm,./" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ +*************** +*** 321,333 **** + + + shift_map: +! .byte 0,27 + .ascii "!@#$%^&*()_+" + .byte 127,9 + .ascii "QWERTYUIOP{}" + .byte 13,0 + .ascii "ASDFGHJKL:\"" +! .byte '~,0 + .ascii "|ZXCVBNM<>?" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ +--- 329,349 ---- + + + shift_map: +! #ifdef EXTENDED_KEYBOARD +! .byte 0,'~ +! #else +! .byte 0,27 +! #endif + .ascii "!@#$%^&*()_+" + .byte 127,9 + .ascii "QWERTYUIOP{}" + .byte 13,0 + .ascii "ASDFGHJKL:\"" +! #ifdef EXTENDED_KEYBOARD +! .byte 27,0 +! #else +! .byte '~,0 +! #endif + .ascii "|ZXCVBNM<>?" + .byte 0,'*,0,32 /* 36-39 */ + .fill 16,1,0 /* 3A-49 */ +*************** +*** 518,531 **** + .long do_self,do_self,do_self,do_self /* 10-13 q w e r */ + .long do_self,do_self,do_self,do_self /* 14-17 t y u i */ + .long do_self,do_self,do_self,do_self /* 18-1B o p } ^ */ +! .long do_self,ctrl,do_self,do_self /* 1C-1F enter ctrl a s */ + .long do_self,do_self,do_self,do_self /* 20-23 d f g h */ + .long do_self,do_self,do_self,do_self /* 24-27 j k l | */ + .long do_self,do_self,lshift,do_self /* 28-2B { para lshift , */ + .long do_self,do_self,do_self,do_self /* 2C-2F z x c v */ + .long do_self,do_self,do_self,do_self /* 30-33 b n m , */ + .long do_self,minus,rshift,do_self /* 34-37 . - rshift * */ +! .long alt,do_self,caps,func /* 38-3B alt sp caps f1 */ + .long func,func,func,func /* 3C-3F f2 f3 f4 f5 */ + .long func,func,func,func /* 40-43 f6 f7 f8 f9 */ + .long func,num,scroll,cursor /* 44-47 f10 num scr home */ +--- 534,555 ---- + .long do_self,do_self,do_self,do_self /* 10-13 q w e r */ + .long do_self,do_self,do_self,do_self /* 14-17 t y u i */ + .long do_self,do_self,do_self,do_self /* 18-1B o p } ^ */ +! #ifdef EXTENDED_KEYBOARD +! .long do_self,caps,do_self, do_self /* 1C-1F enter ctrl a s */ +! #else +! .long do_self,ctrl,do_self,do_self /* 1C-1F enter ctrl a s */ +! #endif + .long do_self,do_self,do_self,do_self /* 20-23 d f g h */ + .long do_self,do_self,do_self,do_self /* 24-27 j k l | */ + .long do_self,do_self,lshift,do_self /* 28-2B { para lshift , */ + .long do_self,do_self,do_self,do_self /* 2C-2F z x c v */ + .long do_self,do_self,do_self,do_self /* 30-33 b n m , */ + .long do_self,minus,rshift,do_self /* 34-37 . - rshift * */ +! #ifdef EXTENDED_KEYBOARD +! .long alt,do_self,ctrl,func /* 38-3B alt sp caps f1 */ +! #else +! .long alt,do_self,caps,func /* 38-3B alt sp caps f1 */ +! #endif + .long func,func,func,func /* 3C-3F f2 f3 f4 f5 */ + .long func,func,func,func /* 40-43 f6 f7 f8 f9 */ + .long func,num,scroll,cursor /* 44-47 f10 num scr home */ +*************** +*** 550,563 **** + .long none,none,none,none /* 90-93 br br br br */ + .long none,none,none,none /* 94-97 br br br br */ + .long none,none,none,none /* 98-9B br br br br */ +! .long none,unctrl,none,none /* 9C-9F br unctrl br br */ + .long none,none,none,none /* A0-A3 br br br br */ + .long none,none,none,none /* A4-A7 br br br br */ + .long none,none,unlshift,none /* A8-AB br br unlshift br */ + .long none,none,none,none /* AC-AF br br br br */ + .long none,none,none,none /* B0-B3 br br br br */ + .long none,none,unrshift,none /* B4-B7 br br unrshift br */ +! .long unalt,none,uncaps,none /* B8-BB unalt br uncaps br */ + .long none,none,none,none /* BC-BF br br br br */ + .long none,none,none,none /* C0-C3 br br br br */ + .long none,none,none,none /* C4-C7 br br br br */ +--- 574,595 ---- + .long none,none,none,none /* 90-93 br br br br */ + .long none,none,none,none /* 94-97 br br br br */ + .long none,none,none,none /* 98-9B br br br br */ +! #ifdef EXTENDED_KEYBOARD +! .long none,uncaps,none,none /* 9C-9F br unctrl br br */ +! #else +! .long none,unctrl,none,none /* 9C-9F br unctrl br br */ +! #endif + .long none,none,none,none /* A0-A3 br br br br */ + .long none,none,none,none /* A4-A7 br br br br */ + .long none,none,unlshift,none /* A8-AB br br unlshift br */ + .long none,none,none,none /* AC-AF br br br br */ + .long none,none,none,none /* B0-B3 br br br br */ + .long none,none,unrshift,none /* B4-B7 br br unrshift br */ +! #ifdef EXTENDED_KEYBOARD +! .long unalt,none,unctrl,none /* B8-BB unalt br uncaps br */ +! #else +! .long unalt,none,uncaps,none /* B8-BB unalt br uncaps br */ +! #endif + .long none,none,none,none /* BC-BF br br br br */ + .long none,none,none,none /* C0-C3 br br br br */ + .long none,none,none,none /* C4-C7 br br br br */ + +--[0506]-- + +[0507] daemon@ATHENA.MIT.EDU (Lawrence C. Foard) Linux_Activists 01/17/92 03:48 (12 lines) +Subject: mga trouble +Date: Fri, 17 Jan 92 01:48:36 -0500 +From: entropy@ee.WPI.EDU (Lawrence C. Foard) +To: linux-activists@joker.cs.hut.fi + + +Has anyone else had trouble with virtual consoles on monocrome cards? I +downloaded the new version and it worked fine on a system with CGA or EGA but +doesn't work on my monocrome system. When you try to change to another console +the cursor goes away but the screen doesn't change, also typed input goes +someplace else (I assume to the other console). Playing with this for a while +made the system spontaneosly reboot. +I'm not sure if this is a software problem or just incompatible hardware. +--[0507]-- + +[0508] daemon@ATHENA.MIT.EDU (Brett McCoy) Linux_Activists 01/17/92 05:05 (32 lines) +Subject: trying to free free page errors +Date: Fri, 17 Jan 92 02:55:19 CST +From: brtmac@maverick.ksu.ksu.edu (Brett McCoy) +To: linux-activists@joker.cs.hut.fi + +I just got linux-0.12 up and running on a machine here at work tonight. +Works great except for one problem, I keep getting these kernel panic's +and messages that say 'trying to free free page'. I don't have any of +the other information that it printed out right now but if anyone would +like it I'm sure I can get it without much problem and send it to them. + +I have a sneaking suspicion that the particular hardware setup I have is +partially the cause for the crashes: 20Mhz 386sx, 85M 3.5 drive with a +15M partition for root and a 6M partition for swap, VGA (although the +VC stuff doesn't recognize any of the VGA text modes, EGA 80x24 only :( ) +and 1 (that's right folks, ONE) Meg of memory. I have a feeling that the +amount of paging and swapping that it is having to do is overworking some +portion of the kernel and is exercising a bug pretty rigirously, but hey, +what better test? + +I am amazed at how well it runs even with only 1M of physical memory. Now +for a question, is there any way I can decrease the default number of disk +buffers from 405 to something more reasonable like 100 or 200 so that there +is a bit more free memory for programs (380k or so is a little tight). I +can deal with a little bit decreased disk I/O performance due to the increase +in buffer cache misses. + +Well, that's in for now folks. + +-- +Brett McCoy Computing and Network Services +brtmac@maverick.ksu.ksu.edu Kansas State University +If the minimum wasn't good enough it would't be the minimum. +--[0508]-- + +[0509] daemon@ATHENA.MIT.EDU (meajjk@Skferc.NL) Linux_Activists 01/17/92 06:38 (33 lines) +Subject: No subject found in mail header +From: meajjk@Skferc.NL +Date: Fri, 17 Jan 92 08:42:41 +0100 +To: linux-activists@joker.cs.hut.fi + +Lawrence C. Foard wrote: + +>IF YOUR WORKING ON TCP/IP OR SOCKETS READ THIS... + +>It appears that no one is working on sockets or TCP/IP yet? A friend and I are +>planning to start working on this if no one has already started work. +>If you are working on it please please write so we don't waste our time +>duplicating efforts. +I am not working on it, in fact i haven't managed to get Linux running yet. But +i will need something like sockets to get X running. + +>Questions: + +>What ethernet boards would you like to see supported? +>Currently we are planning to buy an intel board but don't have money to buy +>other boards so would appreciate donations or loans of other manufactorers +>cards. Any technical docs would be helpful, or source code for software that +>uses them. +The WD8003E from Western Digital would be nice to start with because it cheap +(about $200). The source of a device driver should be somewhere on the +sun.soe.clarkson.edu site and i think i also have it somewhere. + +Jan Jitze Krol + +PS. Are there any brave guys out there who want to help porting X-Windows to + Linux? I think it is a bit big for one person to do it. (X11R4 is about + 150Mb and X11R5 i even don't dare thinking about). But first i want to + figure out what i needed for this port. + +--[0509]-- + +[0510] daemon@ATHENA.MIT.EDU (Simon Marlow) Linux_Activists 01/17/92 06:55 (27 lines) +Subject: Strange GCC error +Date: Fri, 17 Jan 1992 11:13:27 +0000 +From: Simon Marlow +To: linux-activists@joker.cs.hut.fi + + +I got this really wierd error from GCC yesterday while trying to +compile the GNU textutils package v1.1 (I know its already been done +but I don't trust anything unless I've compiled it myself). The +particular error occurred when compiling the file lib/regex.c using +the command + +gcc -O -I. -I../lib -DSTDC_HEADERS -DPOSIX -DUSG -c regex.c (I think) + +the error was something like 'unrecognised insn at line 5285' +followed by a short listing of GCC intermediate code which I havn't +written down. It only occurred when optimization was turned on. + +I believe the problem is caused by the include file 'string.h' which +defines all the string operations as inline assembly code (as the +error only happened when this file was included) and in particular +the 'strlen' function (as this is at line 5285 in the source). +Unfortunately I was unable to repeat the error on a smaller test +file but the error was completely repeatable on the regex.c file. + +Is this a bug in GCC? Can anyone help? + +Simon. +--[0510]-- + +[0511] daemon@ATHENA.MIT.EDU (Kent Williams) Linux_Activists 01/17/92 07:54 (18 lines) +Subject: Re: BSD sockets+TCP/IP +Date: Fri, 17 Jan 92 06:43:01 -0600 +From: williams@herky.cs.uiowa.edu (Kent Williams) +To: linux-activists@joker.cs.hut.fi + +> [141.142.20.50]. They have a PD (or at least freely distributed) telnet +> program for MS-DOS with drivers for LOTS of ethernet boards. The source +> +>If this is the Clarson packet driver stuff, be aware that the code +>assumes you are running in 16 bit real mode. It may be non-trivial to +>port them so that they work in a 32-bit protected mode. You may want to +>look at them and form your own opinion. +> +What you need to know about an ethernet card IS contained in a packet driver; +which is, after all, fairly low level. You need to know what port to +stuff commands in, how to set up interrupts, where to get data out of it, +and not much more. Most of the stuff will be congruent -- in fact, if +linux provides any support for setting up interrupts and DMA transfers, the +drivers will be simpler than the clarkson drivers. +--[0511]-- + +[0512] daemon@ATHENA.MIT.EDU (Prof.Dr.Ir. Stolk (Brammie)) Linux_Activists 01/17/92 08:50 (21 lines) +Subject: Re: X11 +Date: Fri, 17 Jan 92 14:36:43 +0100 +From: stolk@fwi.uva.nl (Prof.Dr.Ir. Stolk (Brammie)) +To: linux-activists@joker.cs.hut.fi, meajjk@Skferc.NL + +Hi, + +About X11: Try ftping to 131.159.8.35 +It features an 386 port of X11. +The neat thing about it: it takes only 18MB, and features +some SVGA cards. +The stuff runs using SCO UNIX... the big question: will Linux +do as well? + +About the binaries: let's get some more of them :-) +Surely binaries of vi and the like are sheer nescesities. +My attempt to compile elvis failed, but that was probably +due to using old include files. + + Long live Linux, + + Bram Stolk +--[0512]-- + +[0513] daemon@ATHENA.MIT.EDU (Simon Marlow) Linux_Activists 01/17/92 08:59 (27 lines) +Subject: Strange GCC error +Date: Fri, 17 Jan 1992 13:29:00 +0000 +From: Simon Marlow +To: linux-activists@joker.cs.hut.fi + + +I got this really wierd error from GCC yesterday while trying to +compile the GNU textutils package v1.1 (I know its already been done +but I don't trust anything unless I've compiled it myself). The +particular error occurred when compiling the file lib/regex.c using +the command + +gcc -O -I. -I../lib -DSTDC_HEADERS -DPOSIX -DUSG -c regex.c (I think) + +the error was something like 'unrecognised insn at line 5285' +followed by a short listing of GCC intermediate code which I havn't +written down. It only occurred when optimization was turned on. + +I believe the problem is caused by the include file 'string.h' which +defines all the string operations as inline assembly code (as the +error only happened when this file was included) and in particular +the 'strlen' function (as this is at line 5285 in the source). +Unfortunately I was unable to repeat the error on a smaller test +file but the error was completely repeatable on the regex.c file. + +Is this a bug in GCC? Can anyone help? + +Simon. +--[0513]-- + +[0514] daemon@ATHENA.MIT.EDU (Alan B Clegg) Linux_Activists 01/17/92 09:16 (18 lines) +Subject: Re: your mail +To: meajjk@Skferc.nl +Date: Fri, 17 Jan 92 9:01:34 EST +Cc: linux-activists@joker.cs.hut.fi +In-Reply-To: <9201170742.AA04804@ercx39.Skferc.NL>; from "meajjk@Skferc.nl" at Jan 17, 92 8:42 am +From: Alan B Clegg + +> The WD8003E from Western Digital would be nice to start with because it cheap +> (about $200). The source of a device driver should be somewhere on the +> sun.soe.clarkson.edu site and i think i also have it somewhere. + +I have three of these boards that I am willing to let go for $120 each. Please +let me know if you are interested. They are still in their original boxes with +original documentation, etc... + +-abc +-- +abc@concert.net Alan Clegg - Network Programmer + MCNC -- Center for Communications +--[0514]-- + +[0515] daemon@ATHENA.MIT.EDU (Robert Duncan) Linux_Activists 01/17/92 11:01 (11 lines) +Subject: mga trouble +Date: Fri, 17 Jan 92 10:33:42 EST +From: duncan@erim.org (Robert Duncan) +To: entropy@ee.WPI.EDU +In-Reply-To: Lawrence C. Foard's message of Fri, 17 Jan 92 01:48:36 -0500 <9201170648.AA02616@wintermute.WPI.EDU> +Cc: linux-activists@joker.cs.hut.fi + + I've had the same problem with a hercules compatible monochrome + system. Probably Linus doesn't have a monochrome system to test + the code on. + + -Rob Duncan +--[0515]-- + +[0516] daemon@ATHENA.MIT.EDU (Jay Maynard) Linux_Activists 01/17/92 11:10 (21 lines) +Subject: Re: BSD sockets+TCP/IP +Date: Fri, 17 Jan 92 09:26 CST +To: Paul Rubin +From: Jay Maynard +Cc: linux-activists@joker.cs.hut.fi + +(Paul Rubin, about existing TCP/IP packages:) +> The other was written by Phil Karn KA9Q and includes pretty +> much everything, but I'm not sure of the exact distribution +> permissions. It's called the KA9Q TCP package. + +The KA9Q NOS TCP/IP package is available in several flavors for anonymous +FTP from ucsd.edu; look in the hamradio/tcpip/nos directory. It is licensed +for amateur and non-profit educational use. + +NOS is probably going to be a lot of work to port to a native Linux +environment, as it is a monolithic program with its own built-in +multitasker and user support system...some work has been done in that area, +but it's a pain. Different folks' efforts can be found on ucsd.edu as well. + +...Jay Maynard + +--[0516]-- + +[0517] daemon@ATHENA.MIT.EDU (David Engel) Linux_Activists 01/17/92 11:12 (19 lines) +Subject: Re: debugger for linux? +From: David Engel +To: klaus@ced.utah.edu +Date: Fri, 17 Jan 92 9:17:11 CST +Cc: Linux-activists@joker.cs.hut.fi +In-Reply-To: <9201170005.AA10496@ced.utah.edu>; from "klaus@ced.utah.edu" at Jan 16, 92 5:05 pm + +> Is there any kind of debugger for linux? SOmething like gdb would be nice. +> Is there such a beast.. yet? + +I'm looking into it. I suspect implementing the ptrace system call will be +the hardest part. If anyone with kernel experience (any would be more than +me :-) wants to tackle ptrace, let me know and I'll concentrate on compiling +gdb. Also, does anybody with access to gcc 2 know of any changes from 1.4 +that might affect porting gdb 4.3 to Linux? + +BTW, does anyone know how to patch the keyboard driver to increase the repeat +rate? I like a fast keyboard and the default repeat rate is driving me nuts. + +David +--[0517]-- + +[0518] daemon@ATHENA.MIT.EDU (Gautam H Thaker) Linux_Activists 01/17/92 11:14 (15 lines) +Subject: Please remove me. TOo much mail traffic. +Date: Fri, 17 Jan 92 11:04:26 EST +From: Gautam H Thaker +X-To: aitgw::Linux-Activists@niksula.hut.fi +To: LINUX-ACTIVISTS@joker.cs.hut.fi + +I can't keep up. Please remove me. + +Thanks +Gautam H. Thaker +Internet: gthaker@atl.ge.com ("reply" won't work). +GE DECNET: atl::gthaker Dialcom 8*777-6412 +GE Adv. Tech. Lab. 609-866-6412 (office) +Route 38, Bldg 145-2 609-866-6397 (fax) +Moorestown, NJ 08057 609-767-4396 (home) + +--[0518]-- + +[0519] daemon@ATHENA.MIT.EDU (Gautam H Thaker) Linux_Activists 01/17/92 11:29 (15 lines) +Subject: Please remove me. TOo much mail traffic. +Date: Fri, 17 Jan 1992 11:01:04 -0500 +From: Gautam H Thaker +X-To: advax::Linux-Activists@niksula.hut.fi +To: LINUX-ACTIVISTS@joker.cs.hut.fi + +I can't keep up. Please remove me. + +Thanks +Gautam H. Thaker +Internet: gthaker@atl.ge.com ("reply" won't work). +GE DECNET: atl::gthaker Dialcom 8*777-6412 +GE Adv. Tech. Lab. 609-866-6412 (office) +Route 38, Bldg 145-2 609-866-6397 (fax) +Moorestown, NJ 08057 609-767-4396 (home) + +--[0519]-- + +[0520] daemon@ATHENA.MIT.EDU (Theodore Ts'o) Linux_Activists 01/17/92 11:49 (89 lines) +Subject: We really need a FAQ! +Date: Fri, 17 Jan 92 11:34:50 -0500 +From: tytso@ATHENA.MIT.EDU (Theodore Ts'o) +To: linux-activists@joker.cs.hut.fi +In-Reply-To: Lawrence C. Foard's message of Fri, 17 Jan 92 01:48:36 -0500, +Reply-To: tytso@athena.mit.edu + +Hmm.... I think we really need a FAQ soon..... a lot of new people have +joined the mailing list and they're posting questions which have already +been discussed on this mailing list. Which is fine, since they don't +know that, but it may be frustrating to people who are already on the +list. Is someone willing to volunteer putting together a FAQ and +posting it every month or so, along with diff's of the previous month's +FAQ sheet? + +To all you newcomers --- Welcome! If you have the time, you may wish to +look at the mailing list archives, which can be found on TSX-11.MIT.EDU. +It's in ~ftp/pub/linux/mail-archives, and I have archived everything on +the Linux-Activsts mailing list since November, 1991 (during the time of +Linux 0.10). You may find that many of your questions are ones which +have already been answered. + + Date: Fri, 17 Jan 92 01:48:36 -0500 + From: entropy@ee.WPI.EDU (Lawrence C. Foard) + + Has anyone else had trouble with virtual consoles on monocrome cards? I + downloaded the new version and it worked fine on a system with CGA or + EGA but doesn't work on my monocrome system. + +The version of virtual consoles included with Linux 0.12 does indeed not +work with MGA cards. This is because it attempts to use the CGA video +memory. I believe Peter MacDonalnd (pmacdona@sanjuan.uvic.ca), who +wrote the original VC code, has patches to change the VC code back to +using buffer memory instead of video memory. + + Date: Fri, 17 Jan 1992 11:13:27 +0000 + From: Simon Marlow + + I got this really wierd error from GCC yesterday while trying to + compile the GNU textutils package v1.1 (I know its already been done + but I don't trust anything unless I've compiled it myself)..... + the error was something like 'unrecognised insn at line 5285' + followed by a short listing of GCC intermediate code which I havn't + written down. It only occurred when optimization was turned on. + +It's a bug in the machine description file included with the distributed +binary of GCC. Linus added some instruction patters so that it could +take advantage of the string instructions, and they didn't work out +completely right. The way to fix it (for now) is to just compile that +module without optimization (-O). When a new version of GCC binary is +posted, hopefully the MD file can be made smart enough so that these +errors won't happen. + + From: meajjk@Skferc.NL + Date: Fri, 17 Jan 92 08:42:41 +0100 + + PS. Are there any brave guys out there who want to help porting X-Windows to + Linux? I think it is a bit big for one person to do it. (X11R4 is about + 150Mb and X11R5 i even don't dare thinking about). But first i want to + figure out what i needed for this port. + + Date: Fri, 17 Jan 92 14:36:43 +0100 + From: stolk@fwi.uva.nl (Prof.Dr.Ir. Stolk (Brammie)) + + About X11: Try ftping to 131.159.8.35 + It features an 386 port of X11. + The neat thing about it: it takes only 18MB, and features + some SVGA cards. + The stuff runs using SCO UNIX... the big question: will Linux + do as well? + +What you've pointed out is the 386 server which is included in X11R5. +It will probably be quite useful in bringing X to Linux, but first we +need to get minor little details like BSD Networking and Sockets to +Linux... A previous message sent out to mailing list (look in the +archives) discussed other kernel features which would be nice to have in +conjuction with X. + + About the binaries: let's get some more of them :-) + Surely binaries of vi and the like are sheer nescesities. + My attempt to compile elvis failed, but that was probably + due to using old include files. + +Look at the "binaries" directory of the FTP sites; there's quite a bit +of stuff ported already, including elvis. The program "em" which is +available on in the utils.tar.Z file is a micro-gnuemacs, which may be +quite useful to many people. + + - Ted + +--[0520]-- + diff --git a/Linux-0.12/patchs/ahadrive.tar.Z b/Linux-0.12/patchs/ahadrive.tar.Z new file mode 100644 index 00000000..563a1b37 Binary files /dev/null and b/Linux-0.12/patchs/ahadrive.tar.Z differ diff --git a/Linux-0.12/patchs/color.diff.Z b/Linux-0.12/patchs/color.diff.Z new file mode 100644 index 00000000..fb17730d Binary files /dev/null and b/Linux-0.12/patchs/color.diff.Z differ diff --git a/Linux-0.12/patchs/devices-entry-for-linux b/Linux-0.12/patchs/devices-entry-for-linux new file mode 100644 index 00000000..8521586b --- /dev/null +++ b/Linux-0.12/patchs/devices-entry-for-linux @@ -0,0 +1,43 @@ +From: zuazaga@ucunix.san.uc.edu (Humberto Ortiz-Zuazaga) +Newsgroups: alt.os.linux +Subject: Re: linux-dos-linux file access +Summary: Mtools pl5 changes +Keywords: Mtools, changes +Date: 23 Jan 92 16:21:23 GMT +Organization: Univ. of Cincinnati + +In article <1992Jan22.135130.26695@athena.mit.edu> mont@netcom.netcom.com (Mont Pierce) writes: +>I've tried compiling mtools, but it wants a device[s] to be defined in +>devices.c. Can anyone send me a sample of drives defined in this module? +> + +I grabbed a copy of Mtools patchlevel 5 off of comp.sources.xxx +recently, and the only change I had to make was to define the +appropriate devices for Linux. Note that the patches I found on tsx-11 +were not quite correct, the B: drive didn't work. The devices I'm using +now are: + +#ifdef __linux__ +struct device devices[] = { + {'A', "/dev/dosA" , 0L, 12, 0, (int (*) ()) 0, 80, 2, 9}, + {'A', "/dev/at0" , 0L, 12, 0, (int (*) ()) 0, 80, 2, 15}, + {'B', "/dev/dosB" , 0L, 12, 0, (int (*) ()) 0, 80, 2, 9}, + {'B', "/dev/PS1" , 0L, 12, 0, (int (*) ()) 0, 80, 2, 18}, + {'C', "/dev/dosC" , 0L, 16, 0, (int (*) ()) 0, 0, 0, 0}, + {'\0', (char *) NULL, 0L, 0, 0, (int (*) ()) 0, 0, 0, 0} +}; +#endif /* __LINUX__ */ + +But for this to work, the named devices have to be already made in /dev. +Example, in my case /dev/dosA is a low density drive, (9 sectors, 80 +tracks), so it must be made with the appropriate major and minor device +numbers for a low density drive. The devices Linux comes with are +probably not the same you have, so double check them. (Linux has a 1.44 +in A:, a 1.2 in B:, and C is the 6th HD partition.) + +Good luck! +-- +Humberto Ortiz-Zuazaga INTERNET: zuazaga@ucunix.san.uc.edu +Dept. of Physiology & Biophysics BITNET: picone@ucbeh +University of Cincinnati CIS: 72301,2303 + diff --git a/Linux-0.12/patchs/fcntl.c.diff.Z b/Linux-0.12/patchs/fcntl.c.diff.Z new file mode 100644 index 00000000..d08f07f2 Binary files /dev/null and b/Linux-0.12/patchs/fcntl.c.diff.Z differ diff --git a/Linux-0.12/patchs/fpatch.tar.Z b/Linux-0.12/patchs/fpatch.tar.Z new file mode 100644 index 00000000..d25dc07e Binary files /dev/null and b/Linux-0.12/patchs/fpatch.tar.Z differ diff --git a/Linux-0.12/patchs/hd.c.Z b/Linux-0.12/patchs/hd.c.Z new file mode 100644 index 00000000..7b79a97e Binary files /dev/null and b/Linux-0.12/patchs/hd.c.Z differ diff --git a/Linux-0.12/patchs/lib.patch b/Linux-0.12/patchs/lib.patch new file mode 100644 index 00000000..472d35f9 --- /dev/null +++ b/Linux-0.12/patchs/lib.patch @@ -0,0 +1,63 @@ +Date: Thu, 16 Jan 92 10:54:37 EST +From: "Derek Lieber" +To: Linux-activists@joker.cs.hut.fi +Subject: uncompress and estdio + +Attached below is a patch to estdio that was posted to comp.os.minix +awhile back. Last time I looked, the linux version of estdio did *NOT* +have these patches applied. Maybe that's what causes the uncompress +problem? + + +Derek Lieber +derek@watson.ibm.com + +-----------------------------------attachment-------------------------------- +Newsgroups: comp.os.minix +Path: arnor!bywater!uunet!uunet!cs.utexas.edu!qt.cs.utexas.edu!yale.edu!ira.uka.de!fauern!NewsServ!rommel +From: rommel@Informatik.TU-Muenchen.DE (Kai Uwe Rommel) +Subject: Yet another bug in estdio (fread.c) +Message-ID: <1991Oct3.111254.23702@Informatik.TU-Muenchen.DE> +Sender: news@Informatik.TU-Muenchen.DE (News System) +Organization: Technische Universitaet Muenchen, Germany +Date: Thu, 3 Oct 1991 11:12:54 GMT +Lines: 38 + +I noticed another bug in estdio/fread.c. It does not set the _IOEOF flag +when hitting EOF during an __ioread() call. + +The diff below fixes it and included the previously known bug with +readsize. I don't know if this fix catches all situations, it works for +me. + +*** fread.c~ Tue Oct 30 05:33:23 1990 +--- fread.c Thu Oct 3 11:17:50 1991 +*************** +*** 66,71 **** +--- 66,72 ---- + MEMCPY(p, q, (size_t) readsize); + p += readsize; + q += readsize; ++ readsize = 0; + } + else { + do +*************** +*** 105,110 **** +--- 106,114 ---- + reed != 0 && (red = __ioread(fileno(fp), (char *) p, reed)) != 0; + p += red, reed -= red) + ; ++ ++ if (red == 0) ++ SETFLAG(fp, _IOEOF); + + if (reed != 0) { + if ((readsize -= reed) >= leftover) { + +Kai Uwe Rommel + +/* Kai Uwe Rommel, Munich ----- rommel@informatik.tu-muenchen.de */ + +DOS ... is still a real mode only non-reentrant interrupt +handler, and always will be. -Russell Williams diff --git a/Linux-0.12/patchs/lib.patch.Z b/Linux-0.12/patchs/lib.patch.Z new file mode 100644 index 00000000..68d6cf0b Binary files /dev/null and b/Linux-0.12/patchs/lib.patch.Z differ diff --git a/Linux-0.12/patchs/mtools-patches.tar.Z b/Linux-0.12/patchs/mtools-patches.tar.Z new file mode 100644 index 00000000..ead4bd32 Binary files /dev/null and b/Linux-0.12/patchs/mtools-patches.tar.Z differ diff --git a/Linux-0.12/patchs/namei.c.patch b/Linux-0.12/patchs/namei.c.patch new file mode 100644 index 00000000..31d19203 --- /dev/null +++ b/Linux-0.12/patchs/namei.c.patch @@ -0,0 +1,206 @@ +------------------------------ + +From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) +Subject: patches for sys_rename +Date: 23 Jan 92 19:43:34 GMT + +Ok, here's the sys_rename patch to "linux/kernel/namei.c". Additionally +you need to remove the sys_rename stub function (just returns -ENOSYS) +from "linux/kerne|/sys.c". This is not heavily tested: I wrote it today, +but it seems to work. + +Patch the file, remove the stub and recompile linux: voila, you have a +rename system call that actually works. It's not in the library, so +you'll have to explicitly call it by using __asm__'s. A simple +/usr/bin/mvdir command is here: + +#define __LIBRARY__ +#include +#include + +int main(int argc, char ** argv) +{ + int i; + + if (argc != 3) + return -1; + __asm__("int $0x80":"=a" (i):"0" (__NR_rename), + "b" ((long) argv[1]), + "c" ((long) argv[2])); + return i; +} + +and with this in place mv seems to be able to move directories without +problems. (You can also use mvdir to move non-directories, but who +cares). And, yes, I'm interested in bug-reports if it doesn't work. + + Linus + +---- snip snip ----------------------------------------- +*** linux/fs/namei.c Sun Jan 12 06:09:58 1992 +--- namei.c Thu Jan 23 23:05:53 1992 +*************** +*** 892,894 **** +--- 892,1051 ---- + iput(oldinode); + return 0; + } ++ ++ static int subdir(struct m_inode * new, struct m_inode * old) ++ { ++ unsigned short fs; ++ int ino; ++ int result; ++ ++ __asm__("mov %%fs,%0":"=r" (fs)); ++ __asm__("mov %0,%%fs"::"r" ((unsigned short) 0x10)); ++ new->i_count++; ++ result = 0; ++ for (;;) { ++ if (new == old) { ++ result = 1; ++ break; ++ } ++ if (new->i_dev != old->i_dev) ++ break; ++ ino = new->i_num; ++ new = _namei("..",new,0); ++ if (new->i_num == ino) ++ break; ++ } ++ iput(new); ++ __asm__("mov %0,%%fs"::"r" (fs)); ++ return result; ++ } ++ ++ #define PARENT_INO(buffer) \ ++ (((struct dir_entry *) (buffer))[1].inode) ++ ++ #define PARENT_NAME(buffer) \ ++ (((struct dir_entry *) (buffer))[1].name) ++ ++ /* ++ * rename uses the -ERESTARTNOINTR error return to avoid race conditions: ++ * it tries to allocate all the blocks, then sanity-checks, and if the sanity- ++ * checks fail, it tries to restart itself again. Very practical - no changes ++ * are done until we know everything works ok.. and then all the changes can be ++ * done in one fell swoop when we have claimed all the buffers needed. ++ * ++ * Anybody can rename anything that they have access to (and write access to the ++ * parents) - except the '.' and '..' directories. ++ */ ++ static int do_rename(const char * oldname, const char * newname) ++ { ++ struct m_inode * inode; ++ struct m_inode * old_dir, * new_dir; ++ struct buffer_head * old_bh, * new_bh, * dir_bh; ++ struct dir_entry * old_de, * new_de; ++ const char * old_base, * new_base; ++ int old_len, new_len; ++ int retval; ++ ++ inode = old_dir = new_dir = NULL; ++ old_bh = new_bh = dir_bh = NULL; ++ old_dir = dir_namei(oldname,&old_len,&old_base, NULL); ++ retval = -ENOENT; ++ if (!old_dir) ++ goto end_rename; ++ retval = -EPERM; ++ if (!old_len || get_fs_byte(old_base) == '.' && ++ (old_len == 1 || get_fs_byte(old_base+1) == '.' && ++ old_len == 2)) ++ goto end_rename; ++ retval = -EACCES; ++ if (!permission(old_dir,MAY_WRITE)) ++ goto end_rename; ++ old_bh = find_entry(&old_dir,old_base,old_len,&old_de); ++ retval = -ENOENT; ++ if (!old_bh) ++ goto end_rename; ++ inode = iget(old_dir->i_dev, old_de->inode); ++ if (!inode) ++ goto end_rename; ++ new_dir = dir_namei(newname,&new_len,&new_base, NULL); ++ if (!new_dir) ++ goto end_rename; ++ retval = -EPERM; ++ if (!new_len || get_fs_byte(new_base) == '.' && ++ (new_len == 1 || get_fs_byte(new_base+1) == '.' && ++ new_len == 2)) ++ goto end_rename; ++ retval = -EACCES; ++ if (!permission(new_dir, MAY_WRITE)) ++ goto end_rename; ++ if (new_dir->i_dev != old_dir->i_dev) ++ goto end_rename; ++ new_bh = find_entry(&new_dir,new_base,new_len,&new_de); ++ retval = -EEXIST; ++ if (new_bh) ++ goto end_rename; ++ retval = -EPERM; ++ if (S_ISDIR(inode->i_mode)) { ++ if (!permission(inode, MAY_WRITE)) ++ goto end_rename; ++ if (subdir(new_dir, inode)) ++ goto end_rename; ++ retval = -EIO; ++ if (!inode->i_zone[0]) ++ goto end_rename; ++ if (!(dir_bh = bread(inode->i_dev, inode->i_zone[0]))) ++ goto end_rename; ++ if (PARENT_INO(dir_bh->b_data) != old_dir->i_num) ++ goto end_rename; ++ } ++ new_bh = add_entry(new_dir,new_base,new_len,&new_de); ++ retval = -ENOSPC; ++ if (!new_bh) ++ goto end_rename; ++ /* sanity checking before doing the rename - avoid races */ ++ retval = -ERESTARTNOINTR; ++ if (new_de->inode || (old_de->inode != inode->i_num)) ++ goto end_rename; ++ /* ok, that's it */ ++ old_de->inode = 0; ++ new_de->inode = inode->i_num; ++ old_bh->b_dirt = 1; ++ new_bh->b_dirt = 1; ++ if (dir_bh) { ++ PARENT_INO(dir_bh->b_data) = new_dir->i_num; ++ dir_bh->b_dirt = 1; ++ old_dir->i_nlinks--; ++ new_dir->i_nlinks++; ++ old_dir->i_dirt = 1; ++ new_dir->i_dirt = 1; ++ } ++ retval = 0; ++ end_rename: ++ brelse(dir_bh); ++ brelse(old_bh); ++ brelse(new_bh); ++ iput(inode); ++ iput(old_dir); ++ iput(new_dir); ++ return retval; ++ } ++ ++ /* ++ * Ok, rename also locks out other renames, as they can change the parent of ++ * a directory, and we don't want any races. Other races are checked for by ++ * "do_rename()", which restarts if there are inconsistencies. ++ */ ++ int sys_rename(const char * oldname, const char * newname) ++ { ++ static struct task_struct * wait = NULL; ++ static int lock = 0; ++ int result; ++ ++ while (lock) ++ sleep_on(&wait); ++ lock = 1; ++ result = do_rename(oldname, newname); ++ lock = 0; ++ wake_up(&wait); ++ return result; ++ } + +------------------------------ diff --git a/Linux-0.12/patchs/nonblock.tar.Z b/Linux-0.12/patchs/nonblock.tar.Z new file mode 100644 index 00000000..e11876b6 Binary files /dev/null and b/Linux-0.12/patchs/nonblock.tar.Z differ diff --git a/Linux-0.12/patchs/patchboot.c b/Linux-0.12/patchs/patchboot.c new file mode 100644 index 00000000..06d5df43 --- /dev/null +++ b/Linux-0.12/patchs/patchboot.c @@ -0,0 +1,43 @@ +#include +char tmp[512]; + +#define NEW_DEV 0x303 +void main(void) +{ + int i; + + if (512 != read(0,tmp,512)) + exit(1); + if (0xAA55 != *((unsigned short *)(tmp+510))) + exit(2); + *((unsigned short *)(tmp+508)) = NEW_DEV; + if (512 != write(1,tmp,512)) + exit(3); + while ((i=read(0,tmp,512)) > 0) + if (i != write(1,tmp,i)) + exit(4); + exit(0); +} +/*------- + + Devices: + +Harddisks: +0x301 - /dev/hd1 - first partition on first drive +... +0x304 - /dev/hd2 - fourth partition on first drive + +0x306 - /dev/hd1 - first partition on second drive +... +0x309 - /dev/hd2 - fourth partition on second drive + +0x300 - /dev/hd0 - the whole first drive. BE CAREFUL +0x305 - /dev/hd5 - the whole second drive. BE CAREFUL + + +Floppies: +0x208 - 1.2M in A +0x209 - 1.2M in B +0x21C - 1.44M in A +0x21D - 1.44M in B +*/ diff --git a/Linux-0.12/patchs/rename-pat.Z b/Linux-0.12/patchs/rename-pat.Z new file mode 100644 index 00000000..0ea78870 Binary files /dev/null and b/Linux-0.12/patchs/rename-pat.Z differ diff --git a/Linux-0.12/patchs/tet1.c.Z b/Linux-0.12/patchs/tet1.c.Z new file mode 100644 index 00000000..cdafaf22 Binary files /dev/null and b/Linux-0.12/patchs/tet1.c.Z differ diff --git a/Linux-0.12/patchs/tetrs6k.c.Z b/Linux-0.12/patchs/tetrs6k.c.Z new file mode 100644 index 00000000..a0c5fb42 Binary files /dev/null and b/Linux-0.12/patchs/tetrs6k.c.Z differ diff --git a/Linux-0.12/ports/emacs-18.57/EM-diffs.Z b/Linux-0.12/ports/emacs-18.57/EM-diffs.Z new file mode 100644 index 00000000..5c36d807 Binary files /dev/null and b/Linux-0.12/ports/emacs-18.57/EM-diffs.Z differ diff --git a/Linux-0.12/ports/find-3.2-diffs b/Linux-0.12/ports/find-3.2-diffs new file mode 100644 index 00000000..245f4b87 --- /dev/null +++ b/Linux-0.12/ports/find-3.2-diffs @@ -0,0 +1,8 @@ +70c70 +< DEFS = -DDIRENT -DST_BLOCKS_MISSING -DSTDC_HEADERS -DPOSIX -DUSG +--- +> DEFS = -DDIRENT -DST_BLOCKS_MISSING -DSTDC_HEADERS -DPOSIX -DUSG -D_POSIX_SOURCE +80c80 +< bindir = $(prefix)/gnubin +--- +> bindir = $(prefix)/bin diff --git a/Linux-0.12/ports/gawk-diffs b/Linux-0.12/ports/gawk-diffs new file mode 100644 index 00000000..52d4434e --- /dev/null +++ b/Linux-0.12/ports/gawk-diffs @@ -0,0 +1,329 @@ +*** 1.1 1991/12/11 16:13:13 +--- Makefile 1991/12/11 17:07:11 +*************** +*** 64,71 **** + # MISSING = -DSPRINTF_INT -DBLKSIZE_MISSING -DSTRERROR_MISSING -DRANDOM_MISSING + + # VAX running Ultrix 3.x +- MISSING = -DSTRERROR_MISSING + + # A generic 4.2 BSD machine + # (eliminate GETOPT_MISSING for 4.3 release) + # (eliminate STRCASE_MISSING and TMPNAM_MISSING for Tahoe release) +--- 64,75 ---- + # MISSING = -DSPRINTF_INT -DBLKSIZE_MISSING -DSTRERROR_MISSING -DRANDOM_MISSING + + # VAX running Ultrix 3.x + ++ # LINUX ++ MISSING = -DSPRINTF_INT -DTMPNAM_MISSING -DBLKSIZE_MISSING -DSTRCASE_MISSING \ ++ -Dalloca=__builtin_alloca -DGCVT_MISSING -DRANDOM_MISSING \ ++ -DBCOPY_MISSING -DSTRTOD_MISSING ++ + # A generic 4.2 BSD machine + # (eliminate GETOPT_MISSING for 4.3 release) + # (eliminate STRCASE_MISSING and TMPNAM_MISSING for Tahoe release) +*************** +*** 80,92 **** + + # Comment out the next line if you don't have gcc. + # Also choose just one of -g and -O. +! #CC= gcc + +! #OPTIMIZE= -O -g + PROFILE= #-pg + DEBUG= #-DDEBUG #-DMEMDEBUG #-DFUNC_TRACE #-DMPROF + DEBUGGER= #-g -Bstatic +! WARN= #-W -Wunused -Wimplicit -Wreturn-type -Wcomment # for gcc only + + # Parser to use on grammar -- if you don't have bison use the first one + #PARSER = yacc +--- 84,96 ---- + + # Comment out the next line if you don't have gcc. + # Also choose just one of -g and -O. +! CC= gcc + +! OPTIMIZE= -O #-g + PROFILE= #-pg + DEBUG= #-DDEBUG #-DMEMDEBUG #-DFUNC_TRACE #-DMPROF + DEBUGGER= #-g -Bstatic +! WARN= -W -Wunused -Wimplicit -Wreturn-type -Wcomment # for gcc only + + # Parser to use on grammar -- if you don't have bison use the first one + #PARSER = yacc +*************** +*** 154,160 **** + + # rules to build gawk + gawk: $(ALLOBJS) $(GNUOBJS) +! $(CC) -o gawk $(CFLAGS) $(ALLOBJS) $(GNUOBJS) -lm + + $(AWKOBJS): awk.h + +--- 158,164 ---- + + # rules to build gawk + gawk: $(ALLOBJS) $(GNUOBJS) +! $(CC) -o gawk $(CFLAGS) $(ALLOBJS) $(GNUOBJS) #-lm + + $(AWKOBJS): awk.h + +*** 1.1 1991/12/11 16:18:17 +--- awk.h 1991/12/11 17:07:45 +*************** +*** 42,51 **** + extern char *alloca(); + #endif + #else + extern char *alloca(); + #endif + #ifdef SPRINTF_INT +! extern int sprintf(); + #else /* not USG */ + /* nasty nasty berkelixm */ + #define setjmp _setjmp +--- 42,53 ---- + extern char *alloca(); + #endif + #else ++ #ifndef alloca + extern char *alloca(); + #endif ++ #endif + #ifdef SPRINTF_INT +! /* extern int sprintf(); XXX LINUX */ + #else /* not USG */ + /* nasty nasty berkelixm */ + #define setjmp _setjmp +*************** +*** 78,99 **** + extern char *memset(char *, int, int); + + /* extern int fprintf(FILE *, char *, ...); */ +! extern int fprintf(); + extern int vfprintf(); + #ifndef MSDOS +! extern int fwrite(char *, int, int, FILE *); + #endif + extern int fflush(FILE *); + extern int fclose(FILE *); + extern int pclose(FILE *); + #ifndef MSDOS +! extern int fputs(char *, FILE *); + #endif + extern void abort(); + extern int isatty(int); + extern void exit(int); + extern int system(char *); + extern int sscanf(/* char *, char *, ... */); + + extern double atof(char *); + extern int fstat(int, struct stat *); +--- 80,104 ---- + extern char *memset(char *, int, int); + + /* extern int fprintf(FILE *, char *, ...); */ +! /* extern int fprintf(); XXXL */ + extern int vfprintf(); + #ifndef MSDOS +! /* extern int fwrite(char *, int, int, FILE *); XXXL */ + #endif + extern int fflush(FILE *); + extern int fclose(FILE *); + extern int pclose(FILE *); + #ifndef MSDOS +! /* extern int fputs(char *, FILE *); XXXL */ + #endif + extern void abort(); + extern int isatty(int); + extern void exit(int); + extern int system(char *); ++ #if 0 ++ /* XXXL */ + extern int sscanf(/* char *, char *, ... */); ++ #endif + + extern double atof(char *); + extern int fstat(int, struct stat *); +*************** +*** 100,110 **** + extern off_t lseek(int, off_t, int); + extern int fseek(FILE *, long, int); + extern int close(int); +! extern int open(); + extern int pipe(int *); + extern int dup2(int, int); + #ifndef MSDOS +! extern int unlink(char *); + #endif + extern int fork(); + extern int execl(/* char *, char *, ... */); +--- 105,115 ---- + extern off_t lseek(int, off_t, int); + extern int fseek(FILE *, long, int); + extern int close(int); +! /* extern int open(); XXXL */ + extern int pipe(int *); + extern int dup2(int, int); + #ifndef MSDOS +! /* extern int unlink(char *); XXXL */ + #endif + extern int fork(); + extern int execl(/* char *, char *, ... */); +*** 1.1 1991/12/11 16:29:17 +--- awk.y 1991/12/11 17:08:04 +*************** +*** 96,102 **** + + %type func_name + %token FUNC_CALL NAME REGEXP +! %token ERROR + %token NUMBER YSTRING + %token RELOP APPEND_OP + %token ASSIGNOP MATCHOP NEWLINE CONCAT_OP +--- 96,102 ---- + + %type func_name + %token FUNC_CALL NAME REGEXP +! %token ERROR_TOK + %token NUMBER YSTRING + %token RELOP APPEND_OP + %token ASSIGNOP MATCHOP NEWLINE CONCAT_OP +*************** +*** 386,401 **** + + nls + : NEWLINE +! { $$ = NULL; } + | nls NEWLINE +! { $$ = NULL; } + ; + + opt_nls + : /* empty */ +! { $$ = NULL; } + | nls +! { $$ = NULL; } + ; + + input_redir +--- 386,401 ---- + + nls + : NEWLINE +! { $$ = (NODETYPE) NULL; } + | nls NEWLINE +! { $$ = (NODETYPE) NULL; } + ; + + opt_nls + : /* empty */ +! { $$ = (NODETYPE) NULL; } + | nls +! { $$ = (NODETYPE) NULL; } + ; + + input_redir +*************** +*** 953,959 **** + case '\\': + if (*lexptr++ == '\0') { + yyerror("unterminated regexp ends with \\"); +! return ERROR; + } else if (lexptr[-1] == '\n') + goto retry; + break; +--- 953,959 ---- + case '\\': + if (*lexptr++ == '\0') { + yyerror("unterminated regexp ends with \\"); +! return ERROR_TOK; + } else if (lexptr[-1] == '\n') + goto retry; + break; +*************** +*** 969,975 **** + case '\0': + lexptr--; /* so error messages work */ + yyerror("unterminated regexp"); +! return ERROR; + } + } + } +--- 969,975 ---- + case '\0': + lexptr--; /* so error messages work */ + yyerror("unterminated regexp"); +! return ERROR_TOK; + } + } + } +*************** +*** 1163,1169 **** + case '\n': + lexptr--; + yyerror("unterminated string"); +! return ERROR; + case '"': + yylval.nodeval = make_str_node(tokstart + 1, + lexptr-tokstart-2, esc_seen); +--- 1163,1169 ---- + case '\n': + lexptr--; + yyerror("unterminated string"); +! return ERROR_TOK; + case '"': + yylval.nodeval = make_str_node(tokstart + 1, + lexptr-tokstart-2, esc_seen); +*************** +*** 1171,1177 **** + return YSTRING; + } + } +! return ERROR; + + case '-': + if (*lexptr == '=') { +--- 1171,1177 ---- + return YSTRING; + } + } +! return ERROR_TOK; + + case '-': + if (*lexptr == '=') { +*************** +*** 1256,1262 **** + } + return LEX_AND; + } +! return ERROR; + + case '|': + if (*lexptr == '|') { +--- 1256,1262 ---- + } + return LEX_AND; + } +! return ERROR_TOK; + + case '|': + if (*lexptr == '|') { +*************** +*** 1279,1285 **** + + if (c != '_' && ! isalpha(c)) { + yyerror("Invalid char '%c' in expression\n", c); +! return ERROR; + } + + /* it's some type of name-type-thing. Find its length */ +--- 1279,1285 ---- + + if (c != '_' && ! isalpha(c)) { + yyerror("Invalid char '%c' in expression\n", c); +! return ERROR_TOK; + } + + /* it's some type of name-type-thing. Find its length */ diff --git a/Linux-0.12/ports/mtools-patches.tar b/Linux-0.12/ports/mtools-patches.tar new file mode 100644 index 00000000..c6cece77 Binary files /dev/null and b/Linux-0.12/ports/mtools-patches.tar differ diff --git a/Linux-0.12/ports/shoelace.patch.1 b/Linux-0.12/ports/shoelace.patch.1 new file mode 100644 index 00000000..8625b641 --- /dev/null +++ b/Linux-0.12/ports/shoelace.patch.1 @@ -0,0 +1,332 @@ +[0029] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 11/10/91 19:38 (329 lines) +Subject: patch to use shoelace with linux + fsck and mkfs +Date: Sun, 10 Nov 91 16:21:27 PST +From: pmacdona@sol.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + + +Following are patches to shoelace to allow it to boot the Linux +image (sorry, no building by parts cause there are no parts). +This also means that the fsck function of shoelace is available, +including fsck -m, or mkfs, which I have not tested. Please note +that by using strip on the shoelace executable, I was able to fsck +a 20Meg partition. 64Meg partitions, I doubt it can handle. +In this way, both minix and linux can be run from the same partition, +with a bit of mv'ing of directories like bin. + +You will need minix to build these because of the 16bit assembler. +I also have not tried compiling laceup under linux yet (no disk space). +Perhaps some kind soul can do this and post executables for non-minixers. +If you are not already familiar with and using shoelace, please install +and learn it first!!! The following assumes this. + + +To use: + - Get shoelace from plains or wherever. + - Apply the mxvid50 patches (may not have to, but my diffs are against them) + - Copy makefile.bcc to makefile and then apply the patches in shoelace.pat. + - Put the bootsect.x file in the shoelace dir. + - Type make and cross fingers. + - Use strip, ie: strip shoelace + - Copy new shoelace to your root. (Might wish to try floppy first). + - Reboot, hit enter when shoelace prompt appears and type "load /bootimage" or + - If you want an automatic boot, edit /etc/config and set "load /bootimage" + You must also ensure config doesn't allow shoelace to find system, + fs, mm and init or it will boot from them by default. Either + move the executables or set them to a bogus path. + +Why Use Shoelace: + 1) has fsck and mkfs. + 2) doesn't require a seperate boot partition. + 3) allows passing environment variables to kernel (like video mode). + 4) doesn't require kernel patch (byte 508) to indicate root device. + 5) allow you to dynamically boot different partitions and different + images in the same partition. + + +Disclaimer: + This patch is a bit of a hack. You can set your rootdev in the config + file and it should work. But I didn't implement the bootdev. + I also did not try to pass on the environment to linux. + +Acknowledgment: + Earl Chew for shoelace. + +pmacdona@sol.uvic.ca + + +table + !"#$%&'()*+,-./0123456789:;<=>? +@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ +begin 644 slpat.Z +M'YV09<:@>0,"#X@6(,2\>4-G3D Z+O H<$@&Q(D77K"\F/.BXPD0/A(N;/@Pz +M(@@>/"R^.*$ "Y^6?!(H9.AP#,0Y"1*@&)("1(P<.6* 8)+&39TY(*B\D6,Gy +M#!LR" D/.F#IVB9>:P !'&3<4V;^P$GHJU#!LS(/J&?0.9K=L[8=32($0+YR/9-)\MLE&v +M;1@S=,K( 9&&Y&,0*$3#D'$VA6G#:]N"F).';IDV4\&*Q1.#-(S!1XN> 2$Du +MR9,IS-TDER,G;T,7(&+S >'D"94B(8 P1AWTE2%?<=MUEUP;S"$E'F)T@8"#t +M"C;44,,,-J257%9ON'$&?E2@@=5V ]7Q5$)NN?'&5'#P)08;WPU6AF*W%96=s +M6V;X16 9^"4! F;RK470&F64H5=SVZ6Q&HP@BHA4#3'( ,(:0DQ%I!QN.):Dr +M'F[-4>*)8KAE8%]GH"'C'' $E(93"(;1FI,@D/%&8&Z<$-88'=9EHV53B5&'q +M&68H)V 8 KGE9GP@M%%4&A*Y-%6(;N76U7)H'!JF@8ER92A2$I7U%UQ#759UR!H!Q?$FM&J=4<:VZOTX$*@U;58Kn +M86$!^U<;E[65I6++C3I'J4RVU)(+R>%A+18N=&4&8"!\09===+#!:J/\EN&Om +MOEA,400554#!1!%.@- #"#3DE--^;BQ'V7;CYC770TM%A8403_@G\1$@:#P>l +M#&7!X/%^2Z5Q1E%.$4:&9Z!%!MFS)]NT5$M).)$$%2_'O+%T9]W\HUN(*495k +M6&U]=E!D?@E]XX^9M20QQ5 T_30>HU$G=6]Y;5?774AE78;864S1M-/CE1?Uj +MQPEZQZ"D7K&;MWG057BA#2G AL544K1,Q1=$%&&%#@F,1=K6$R5XS$##$(A-'"M8<&!<'-PW=8A"*]'Z%D:5H\[1DN-^P>Yh +MY#*/M;J4^QD/@PT0&_QVP@OKT!(("52=0!AXL# "RRX7<<3TU2>6 %0L8 ^^g +M]=AKG_32+Y\O?F#E-WK&&Y2CG_T8*H=OQ_B"F8^%_@F G__V X>N'6P,:Q"\,:e +MOB I@Y4,#M);G&R.,*XX826!N[.:[#P(K_D(9CMI&D,:!C8&-JDE9%Y+5\I>d +M0 1b +MX PG8<:)HQP(J9UGO>@-"(RA!-6PFC14C@5CJUC[9 BQ-LSA##&(80)<$*WDa +M^&0&+"B/!%W@)B&F 00B8,)6@J-'[O@-!"X(I@AFV4JWQ "6Y8DE,F$ L88]z +M# L&(D._Z!##@($E#"V))AFN64TQW"N;AO'F'*3W @4$9" %V5H;\&"'-)"Ay +M!LRDB$HRLI&.K 0DB6*G.^%YDI1@%!#GR22@OI8'4@@ (1J. 3H,2@)4&XRT)AI .N8FBK(\/3u +M:EP0%Q3*-RX.@#T+VMP <5:T(01NJ%008T<=)80r +MAC2TH IW<(L44MT,#.P.!CH6Nq +M,7P&4YWB$NZ6 H(F+,H@*)@!#A#7DB: )@SB:D$2B-!6'OPD*%C%@0NB=);Rp +MN& &,[C!#(1+7..")0W)76YS#01=%T3.!RTA EC*T%8<@ "K6A5*E'1P%AV4o +M!P1': (5Q!9-Y;3UHAPNKAR."V+E5H&YSBVQ=%$ 7J1,04'?\2X6GB"',Q0Fn +M#7KX<(?:2H5SJG0.A0)!%51*KT[5I88C?JZ\!D/#(1QO$= 4I0N[O^K! &.P45UADl +M: F2BJ(J&JTT2$[!3'>$)*!IB0L$*E (6U1 HCFQ@5"&PLZ5LL2&%ZBJKTP:k +M PM:,IS1I4B:&=7]PSA9:(P4V!$W<9"(+N4$TM5Q8OY#3Wh +M&Z0^XV P,:!!9)83@PS]&@^.B=N[%0 (>_=,@I^ D"&_HZg +M&!\5L#9W($AO#&2';NOV-%>Y3;YU!NZANZ'HB_X"GG9^$CS@P0QL[>>C+H-R0S>9DS9"$ 8'$*5YNMP@K#7%P2Y\#3R#%NW/B(K$+&08SASJLd +MW4U<7WS%,33O2%/!(7JDP>44HGFDH."8,L"##'#0$_X6\F"&T3P(K'"$(*S%c +M86&I.*'MC4TL!.?0GPD2NU\><\Y[GOA(P0$>/LX$2N4T7^B$R=E,#!SUB2!08!VL2:F8BN(YC-=P6=#HART]@)GH!4N0'S8y +M81==,BZ:=AOJ9VL'V"#!(D^_XC;U81/]IG@M>( MT15C\&H>9'.W$6F%U$[Zv +MUS.+5B2WX2?(=U!)(3="YA;)%BL"V(7 4E"->(($XQKW5VB%$2RB(R@*@6F1u +M<1NW9U^:N"4\\HDL*$((:'X#$1=S@P64J(38HR2JL1VXB%]8YA:O-P-28A#Pt +MU!-%-(!?LTUUH8M>(W%,G-N@"##EWC0^!:*!F4,@@(?q +MM8O^A5OAFT^X0(P "P8J'YW61D$\0)'n +M(0<;(0=C\ +JUQ(8V&N=!"KJEXAZB7<@, 2FUB4#49=E4)5+MQZ11GF31(QAm +M8 =]X5&NM'B)TG@Y9QB#X2E+41?R,1A;691")BZU01 N]4A?@RXABZ8A=,j +M:#4H4)-DX'F!4W=>8A??5X\S(&7V21# YT2UH1T#4X5F,%#9D9^**2**P7FEi +MF8>YF7@3>BJ[4C7#^)MV) =X)")Z="R)(7G:(0+O&9_S*0*X03 LNJ&):)UNh +MT77V%J)?X ::4P8BH#@C4)^98FXPD ,O ,X\ (/)F.I) ,94@54P)9U!YY g +M !6=TD;*00HF1RW(2S_AQ04)8AHHB8#XQ5PB@7V"2<'NARJHB=N,$Y&e +M"B,>4FBK:6XQLZG;%J1&V@*@&JH'$:JD"JJC6JJHFJJJNJJE:J0Q0QT#B4AWd +M(*NT"@)24 1!0 1-4 2N^GW+ WZT*@>S*JP((9C'UZL"]A,'0:S,.JMVMY<\c +MJW6:JNXJJM%H#'8^JW5JFF5$1AAT0*0<0*WFJN[^A$M "Q8b +M( (D$ ,T&@(;\ZX4)0([<".$]S_G1! G8! (,0=KD :B4R[IRJW0803\YA2Pa +M0@9J(:=T 8 E7+#V*\6 ;"RXB\0:K#;NJO0T67^D@( )4^\@1$:<4\H81%3z +M (A?4 1/8 0?$1+HVK%%\!$F8 )(@Y%[1FI_]H5],6CX=WR!DGR*MHR-UGB0y +MQE]-,&F)>&E;AP6;]EP=XFF)1AAL(&JMH9N9B6KUQFJ5R9>!V8WKUR&XQE+\x +M")F_!BH8.&RR I**(T-A*I3*YA;GYVS/*FU]1FW,86W85G.)QVT&]VTM\3_Aw +M=GGD9FX\@&[JMGP@X&YE$F_S5F_WIAV?6:?!%A\ 9Q.\LXOWB12!BW#CHG#Mv +M\1X.!W$5H9H5=RC9A7&'HG' YW*D1GTA-W(^87*,DG*-NW+C)Z%YTK@P][B"u +M2'.2B',@H',\)Y0_MQ9!9TA$9W0'!Q6(\IDQ1+A>IXQR('5^A10\8'58IW69t +MA@74.R[-&W5BI[UE=W98D'8+17Q:XW;R%'?:,9D&NIG0FG=[MQY]Y[E_5Q$5s +M643["G.N@7C @KK>]WB11VJB:7GCEGDOY7R?IS*$VWWF1GHM87JHMQZJYY.Lr +M]U*N!WNR1WNT>WNRN4TOM7N]]WO^DJFM2'R-.$1#6[6,Z[CPYL#0)R'3]YK6q +M)R'9AQ;;-[@)4+CC-GKA-[B[BRG V&SI)[:V1K;M=X0H '\?9C7PZQ;V]R/Xp +MYX[[QP;]Q\3_%X :V853>(!.-H$-^( 1.($5>('8X8<,"(@?.*G)(8)F0()Zo +M(3" X8F0 L:+^()3HS6= 7(74TA):F#5GIH?9(1YLO($=^(%(,8#^=AOZV42>UR[8D!MFJ8**Z(M( 8P+X1 5',U4"5^T#)T$e +M4L&E>9K-08"&J\*MN7G,L1JQ61AT0)M$&1:W64-]MIL/T9MO\)NG$9QI,)SCd +M4IS'F9P@N9Q#YIS[M1P)/!]WU3,ZJM=8D)UBEEVVVIU:_)W4+9X=YF;(Q2^Hc +ME9XDMIY=(38LZ[)&T']HX&AB80/JK:WJVJU\\!+0)!#^^AET(=,C<[ >ZRW b +M1@8 =05C('4]( )@< =CX1 +^+74T^MX2a +M9+$SV]YME3,[ Z2Z8I8%R:3G(2 $0K2Z^!'P6N%C4'II0*W@BJV++,A_=7S>z +M&N/7*JZ_%R'F:A'&.D3LZJ[P*J\@0*\@8*\MGJ^VD>'R?;&8,[ %JT<_#ADHy +MH+!JRP8-^[!X,*<2FTT[5[%-_J];\Z !5RY3_K' )[(M0;(<04\HZT\KVX$Mx +M^[(QZ^.(?7PVB[-8H )\#@(Y.%)HX <)0 4C! )*8"(%"7XU1@,W8&,W4%9!w +MT1*B^N<[..B%?NBZ(@/@]Q,Z( ,Y0&,B]Z0MP>>D7NJFK@*CWNH]NR4t +M!@*Y_A_3[NMS<)39ONW%?NP$D93_G"5>P2E;_1E5TS/.WA(K (C,$0",QM.s +M\!],\ 70V!Y,(_ 9.Q\U$B2][( 0F($4^ 06>,9_^,L[ /$C$$U#1,30CIRLr +M9F"(@:*ZZ(D!7_+MONL9(RR=<@994A' ]P7P8DK-&.S;OBA_X13-6!%UYR8.q +MT0:FDH_/TS9X8FXM3^H"4H00,0:"3NAN@>F)+A8PT.DSH ,7 NEGA06BVL@(p +MPU&67O6(KNEEU>DXH ,TX&*BON>G'O>H#O>LE@.PE ,N5NJQCA!V'TO+1*L_!00 52T!-B8! ;\RQ?L$-!ZD.L! <&X[]+[Q8;LT)@n +M\09I4/AV [?\F-_=L#]@9WR)?_.'^Y+?8A/__4^_H?Qj +MTA@ W S.S_!!/_K7R]R8S/!_\('5L+$T1@!#GF$8>24O9O0!P1V'OJY$]JF?H=&#:FSU:S^NE.KEGh +MZI8@"+ !L(0GO3H^M_>>("R)5;:NY!6\YR)"S,WKXPO)P2;LH'FS[K;@(ZH#g +M7G!;Y($Q2/*DG\$[00CO^C4\]@'Q8@84J )"@ DD ;;DZT"@S.!4V(< VD$\f +MJ ?Y(,5#8QH//FP,3F60!&%8(81[D-IUP%_V!V/&0$)I-< 1C@ [EB4P7A,(e +M O^#4_DC%3"-0![%JH,$CQ.Z!3_(J5HA]M%VK.8W,1L(1?S$&K *FZAY0V\d +MF+$)55$G'(&)L!6V0H,$"PE>C9HS8NT6,1KSQ_UXH2K$>+XL$ G#F($"_* (c +M1(06* 440UE8*6CANFAG7:*:Z<)-U0O)F2<$A0F 4TU"#V0*3^ Q(3(J2Q'3RJ&B$%%z +M"(2!(J)D $4L81?QM&7$C=CTF& 3I'L@X ;$ !9P [:*WM."SS!R&($O8 28y +M0!5860SH/5"!=.@39$ Q7&6] G>($"_1;2+$/W2&'I$],($@, 260$Y8B,7Px +M11"*!+(Q(.)R0 LHX'9(KI0X4A*16>P)5S$59L4K@ 261A'XBC'C!A1#]>5*w +MRJ)?X2^/+BUN(H9@;]@B?L! ;Y$9(H1R2#!8X3348=NPU#@SFU +==(QS(7/v +M;C$^0V!H@1[CJZH!D1$7BJ2O\<]:GF;,BNL0/CS&:DC&+!Y!XHQ30!MN.VXXu +M&7U(,G1GXE#=845S> 2> %%\ E+@"G0@(N 9;8;WLR]^15<(&H)B9 0&Y_2#XD"2X6D\Q$'D"G$4.$RCJ<(!5]#%D*HE:!.I($Z,r +M 3?@!L02 #D%Y]ZZBQG;#@EH'N:('RL?\?.'NG%3^;JE< :R73&T%[3C=HR,q +MW'$GNB%^L!%C( \\HH5BS9 /1^14OFY U(JEX"&W'64P ]\OKA"(OK(<*E1Np +M&3GKH>4%B!8X$.Y"9.!$6R U=@&>QVJF68BK9IQH:+W(305MC*18= -K8 YLo +M@3P8!)S $I".56 HCL0BL"3#XC43%)&JNJ@4/7(E$\@L9'D9L@_,P"H8 P9,n +M+,D!4F) ID"3!P(DY$NAD'Y&^(FO6H$A62"UXY UDM6 R/(W(H5#A)B%)U+Im +MJ$B%4>"BI*"(BS$C1NY(&BGL6,V-S)&004;R2-QAH3@D,QR2K<9(VJ0_D20Gl +M$'DLD]O.25JO7&0IEP.F3)70XM5@22W));TDF!23")%,,LD6*273Y*)@D[K2k +M379#."GXY"3)BW,+B+R9-_2V/-;;F<-P\0V=G #ZIBZH&&0X<_H-1O"WEL#Bj +M MR *W"%RI],N1.PX+X1N?)54/ @1+@)Q^(N''P+(&%NRG4XC_+A,%%"6QU0i +M<##(2!1GEE0-PW,:X;#;.8>8XJ#6N>-RY@IA [B (N7@Uh +MK^J5"+A72DY>,#EMB;$$%L'Z-;U$L-DE&U?E%A:6*P-<0DUR:;9O TP1D*L34]'8S+$VRN0/]'IN4U:=])@7=Q$"(,32@ ^d +MP7=Kc +MPYRO;G/.P!98%QRGX@%]H1-0D<[*^6\$9C=,G1NPW+E.T&E([$#%*9VU$W7Rb +M.=7).%LGBRP*C>='Y:.!< <<25BIG+42U1#/DN=I.FTGa +M@AJ>G)- %D@G: -R $\4.3]15-V \W #,H2>?) @8 ]T'=$Y(T3 8! !0&ISz +MC,Z%XA:H9 VI9%"H:M$%C[*BD,+^Q#;V\S'VAM'9!_@1_)2?,D][VH$$BC^#y +ME&?L"M1&3#R=)^0&+IDA4@\)U#-NJ@@J.QNHH92?+>+?$!T**D(W50H-$@"Tx +M@PK0)J(>XM]@:*%^AH"64'ZT"^,G$)LXZ(:"5IQU(Q^Z0 NL(02L*[P QK4%w +MFE3(<5(V0-[W(/E+@MN@)+GK,$7^+3)CI!&I #:D"KPWL-v +ML@J2404));;*^Q2&711^QE%.I2T(Q&V 02PBZX B#?LZJ#70J*G#=WXT6>Wu +M1[E?]7R=D;.*5APC( .Z9Z Y [I&>*H TU!E[("4&7A[P &VF]\%;^:? Z1Rt +MC[3 A02A<$FI1P+H#5_ BG8%%! [<(9L -;( 9T@>E92.D?X0NE^$1*E-($s +MD$FY7TZ086%A8[322KH%9, L)8 YX98"4V^E-]^;[[I(U;(T1E<,]]HS7P*7[XF3@R;FTF?VLVSF3?=WM:+ 6WS;0)!N%4GPJ20;Y1W7D\@X1#\$_RP@X@o +MA=*),:P JO&>MO(U!0G-R3E9YX>m +ML9JM^LS\#.B3#Y=2W6%4N><$\20+R &/+GV:JKX'%!9G%IV?LC.$(,IW24RQL3I#P-*0,_(P9=11+&**5*/I:@ \XJG!@"[B!+C 83D /. $]i +M8>#%@-6YJ8+K;4 !555SBH4\*O#XZ-S;A7\4DP72QC-(NZLAS:I/M772'55EHN>&EQ":E53*:V\^"C25L&*9;'R G;+JD9!,)& PR;T',,XFA*z +M)EI:B[@4AJ*X#V@ Q6C!4+MHS\U_B;1T80=)6U$U6FE=ZUBMO/#,=L(TNT+8y +MK I[LWM6W'[$.8MG[VS2R+.@,-WV64([)@?MKBJT\9;2+EM1NZ."B:F]-1#!x +MT[8$5RHR[(N/I1356=I $L0 ;4V)&: /# 4A@?V8,,-(IU=_OD0^J0r +M)24/OM$_3@('$@ N^A>UM&!HTQX&#WVIYY4#UR-[^ _Z5T1RA>N= W; O-(_q +M^]'J4(#QVZ7_YO0RD]J[>E>#Z]46PE?V!MAMFB=B2.SMO)\W?>Q>ZM%[V<#Op +M#;[,EWH07QI@?$G?^4,?9F($B-.O-WS%Q^.;(N9!D](!Y6M>22_K?;Y "(RFo +MW@1 0]H%8A 6DP$R&%YH.>?*&Q80"-12O64(C D9L*6&XY;V#3(P8-Q17<1En +M?T.8YI+ &;B38!$8,+MD<.\R6;G1>;GB$*:]')G^B@'O2YU!G;21"!:8)TZ m +M-B.#62\59C;9Nl +MVWCR,-OM/'DW-6,@A HS3#'O 9@$$T/U%UC7KN@9%:=#((ABAT@T41-Q;9AKk +M5MB'EC MR ",D .HPFIA+2N&<<($?L"AFZH%2(&CX! PSA7 %0I#<[R1Q5%.j +M+%;)++(?:2($CHM 3SA"T0P)E^TC&% N-i +MKN1P/:W[]425)7:H9#-$<&(GX(ESHEC8>EV6[;F]IPMFPVR?6Y\\D?(:2)NZh +M.Z^G>;$_0:)T#M!C)B""GY%SL*W<,QG?3O!I^I@Q4:T(g +MBC4:4]5I3%--7X XI#)/9]0\$U<@Y,/HY)Z@X,!-Y[AT9M=Ef +M[%1Y)V%M7E/U="ICZ&>-TRMAC<>TG)?FR/?0TP#@O"V)@AHO^V0\)"0];'W)@>'U+>^8PM:#YFR 2Y>F8C7S\.ETb +MJ5JV!C:?#G@6'9G4 (L#FB)4@T\IR,PP9@QCH9;Z<'_PR7.9J*, R$V;#?!T1y +MLV*6,E@9)ZXZ\TD#9L#;_(F2>4\Y+3XC-P9#-TP5C:?XB"TAC!3'%_Yx +MV8UFNER:W7%%Z,FJ.09@UVE,FV:$;67-!?DO:\@@,3K?HXKM7YYL@<,UB-%YOL.8=FZ=R:2;-,?L?Tv +M,SMOY^_9G>W =R[(X?DU^[KRK!K.\[9+SV]G/;>3]OR?F:'3HTLJ9Y,O[2LS$P1)X:'!K!/4= I2!NCHL*OI/HZJp +M%CD3N3X3Z"[:EP<>62U_*F *=*BP'%^@0!,YRGWT0;*:)_!<1)E%$B]EM5*4o +MCEQT@@(%951MD8HOZ KWA8#@%U8(S;A#6&BN#D%P((VV+G]AXL.]";< *W2%n +M5X)*D$%2E MAJSAX=)\S2*S.(.GBN2>J#!+FE5(E+0O&#/$<,ZKJ9U(A; &Q"D*Z]I35([NT[29X(4/!Y'TG@"T@4#A2@11]@&=*"6?IMQ8H@2[S$>j +MTL;R'7C QP:E5Z@'5/ST7B: =?DZ)^BO#?$*\IY.GB&C(#>LR60$M'/T7*K'i +M-U#?["6@@#IRIH]HP@L D. "@#'0$L2C=S2;D8U>RX+PQ=*!\R ZRL!g +M^HNX4$HZ)>*>L':K'5Q@L0Z&$/6=O?$T]-MG@/76$?K >D%.3FZ%731 B.Y-f +MA2,1R!> 7AM#3MDZ/"\$_?Q9=QUP'%;[S*P F@ AJ6TVQO,K!#\(3.4=W4>Q\S;<"/Nd +M:2R]4P#Z5M\/YWI'T=\]O&.&\2L*?UIB9.[-/2:/L@H,U)S*^(FXA]F,*$/@c +M/KY;XX"[ 3Q@^D05%,2\ZDTBZVN]W0KY-NX&W/;[0 \SCZR_H7=N/=_4^W$'b +M\#(@N2GW:YZ&EWN!+Z!ZZ[F!C5D*W?";3[I0'6JZ10#JUFB@8Z&P[H3FNHE,a +MAXC="91V!RGMW0IQM^Z>%;W;)Y0^(3D-";<*: .=HXG(C,%]OP-'_B;?^_M[z +M]N\M $]PP/M&E7MU&H-QOL 09 8"G /5<%=_ZHO- D0 '2^L]9.* V;H,$#'y +MP&I 7-\)/3Q9Q%8-V X#@?CGEQF1 XK\ 60 !% "P,/,S-J5!XSw +M-+DKW]M4S@VX$*.Q+DIL&^+ED!R6E_+Q *MLMPCUY7B8E']RV1,#QH S!]ZHv +MO$__Z>F:S9]TE"X>:,,\7/,(CC+_-"C?Y/+TD5.L^(G*N??Q7D@$B8RK\,*-u +MQEVX=H7AZ;MZSW#L_<:GH3OWWO4[?)?Q%9Y;G7<:C]Z*VW_'\/7=OONY,'3Gt +M]!M\RW/33-";=_GFWPG]?^MSB+,"!O@XWU0:/(%C;LV]PX/E1P_>)/R!K[O7s +M+,$3&@7G$A8\U9"^#%[.3=_<%JT@O :@3Y_]!'$Q3Q+A9?>W=IO1L1D.^@O7r +M"[F\G \&-PVE@V=+YQ)!>7O[\(1V$"(?:]AY-]Q)Z-P^>$]TZ8ZZ>\+FAN@.W7!/<)SA"PJ?-W3J5?!Y=&P^0;?@IV8OVn +M%SC:D>,HT^K6_*&-KHCV)"6Z(ISHF)$A-"_7:W0&:P9"" J(^T2WYDX)OD&#]%&-F(-B(&Y?$HCl +M2NZ=(JJ';W@&FO,$18YZ9^^GX;V/@!8P%N)[ M@/@J:1B*-])=[%QQ?1'D.@k +M$"Z!*0 %=MT2J!*D-SUYWR\B-)NQ>L-?$?"^X<>[1BSO_WTO: [T+H36.Z5M[V) OX^%5QCCY[M>B!(Ni +MYK[?^/PN1OC[]+$9,3[ #Z4[0.#%KX'/'B,@P>_!!=_@I<"#;_$FPO4>7?,^h +MXR^\@,CPX=W)[X\.+]_)%<\H?R(^T53B@%HW?_MW5\4T^A/3#!NSHF?QUH71g +M6+-N-O8^GXP#,.QJ&-NI4e +M[V0 22:-.T@%A$"8- *[;DR6R6(([C:8T#N3MI) 9\H@D08L-*LI"EW!(*QId +M5)CI-_W%EAD:^U.?=JB(AK9J&7#>GRFJI_3C!AU^SBQ$ 2<@=D/7?)6O@+C3c +MPRE$(D2QDFM#HDUT*\X0-YH&2/>3M% 1 KI713"BW0OW=Y_HFJZ-D1*"'O(Zb +M/8/$ GH@HD^[IW0SR8F#4I9B=(&C2V( 1QXA+K#A$WZ>_R@//Z!>8KLC\0L]%O\$R>\C1)?^G!@@^9LIYTU\]A[R%0680?ES0KGYT[X<,Z!57K!):J 'z +M) ";?UX*\JU0*<\"Y^M\NM06N )=L6) ?R30E2I(\ U^K,ZF"K^N-/PY ?.=y +M1<<' 1\?X=--C&]W!"K'/R@>O^+3)>Y=]4U^U5?Y8?_&MWRLP% R?LQG3D?Hx +M6:2+H;O2UQW/%_H['];DA:6_[GY^&@CZ8B#GA_RB3P:.OM\W'2OB\8I1G.B;w +M6QW>GGM:/^H?E,!&]2F_U9_\6%_LA_JC?XK- .??3!*?(&1]4SKV1[[E-_N6v +M7^6+?I9/EUP^)K8[,C_QTWQ@,@5N?1+ EZ:H"LQ1%0U_M%*u +MGZ'^G%CXG[_RVYV(C_E'O_'OFA_%\NM3RQ_Z,S_(+_T()/FW$:UP\E/_=SCZt +G'S] /'_7K_UC_]68^[*?A+N VG]!;G_N7R4$@??_CG47$8"_ B@Gs + r +end +--[0029]-- diff --git a/Linux-0.12/ports/shoelace.patch.2 b/Linux-0.12/ports/shoelace.patch.2 new file mode 100644 index 00000000..bd82fab0 --- /dev/null +++ b/Linux-0.12/ports/shoelace.patch.2 @@ -0,0 +1,42 @@ +[0030] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 11/10/91 20:34 (39 lines) +Subject: shoelace patch #2 +Date: Sun, 10 Nov 91 16:57:48 PST +From: pmacdona@sol.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + + +There is a big difference between floppy the device numbers on linux and +on minix. In particular linux has fd0 as 0x208 while minix uses 0x200. +ie. linux /dev/fd0 == minix /dev/fd0-dshd5in + +The following patch will keep linux from using 0x200, which it doesn't +know about and instead use 0x208 and 0x21c. +Apply this after all other patches. + +pmacdona@sol.uvic.ca + + + +*** shoe.c.bad Thu Nov 7 08:43:30 1991 +--- shoe.c Thu Nov 7 08:52:27 1991 +*************** +*** 638,646 **** + longjmp(errjmp, 1);*/ + unsigned *myptr = (unsigned int *) (&((char *) bp)[508]); + char *myroot = getenvs(SaveConfigPtr,"rootdev"); +! if (strcmp(myroot,"bootdev")) +! *myptr = atoi(myroot); +! else + *myptr = 0; + if (*myptr == 0) + { if (diskcode) +--- 638,645 ---- + longjmp(errjmp, 1);*/ + unsigned *myptr = (unsigned int *) (&((char *) bp)[508]); + char *myroot = getenvs(SaveConfigPtr,"rootdev"); +! *myptr = atoi(myroot); +! if (0x200 == *myptr) + *myptr = 0; + if (*myptr == 0) + { if (diskcode) +--[0030]-- diff --git a/Linux-0.12/ports/shoelace.patch.3 b/Linux-0.12/ports/shoelace.patch.3 new file mode 100644 index 00000000..c2dec336 --- /dev/null +++ b/Linux-0.12/ports/shoelace.patch.3 @@ -0,0 +1,38 @@ +[0043] daemon@ATHENA.MIT.EDU (Peter MacDonald) Linux_Activists 11/11/91 14:06 (35 lines) +Subject: shoelace patch#3: put environment ptr where linux can find it. +Date: Mon, 11 Nov 91 10:58:22 PST +From: pmacdona@sol.UVic.CA (Peter MacDonald) +To: linux-activists@joker.cs.hut.fi + +I know, I know. Three patches in 24 hours... I plead end of term +instability. The following one line patch puts the environment +offset relative to the shoelace corpse which is located at segment 0x80000. +Thus, an offset of 0x1234 would put the address of the env at 0x81234. +This offset is stored at location 0x90506: ie. in the word before the +root device word (508) in the bootsect.s corpse. + +By including the shoelace header file shoeconf.h, the linux kernel +could now read in any of the environment variables it wanted (including +scr_cols and scr_rows ;-) + +BTW: Given Bruce Evans comments about shoelace:fsck ties to minix, +we may wish to remove it from the code. Who wants a facility that +only works with ~20Meg or less partitions anyways :-) + + +pmacdona@sol.uvic.ca + +--PULL_TAB_HERE ------------------------------- +*** shoe.c.bad2 Thu Nov 7 09:33:34 1991 +--- shoe.c Thu Nov 7 09:45:28 1991 +*************** +*** 650,655 **** +--- 650,656 ---- + else + *myptr = 0x21c; + } ++ *--myptr=(unsigned int)SaveConfigPtr; + Linux = 1; + LoadPoint = 0x90000; + bpinx = 0; +--[0043]-- diff --git a/Linux-0.12/ports/shoelace.tar.Z b/Linux-0.12/ports/shoelace.tar.Z new file mode 100644 index 00000000..6876723a Binary files /dev/null and b/Linux-0.12/ports/shoelace.tar.Z differ diff --git a/Linux-0.12/sources/libs/README.curses b/Linux-0.12/sources/libs/README.curses new file mode 100644 index 00000000..cff95b28 --- /dev/null +++ b/Linux-0.12/sources/libs/README.curses @@ -0,0 +1,10 @@ +curses.tar.Z contains the curses library from bsd-net-2, with +pre-installed diffs & RCS files for linux changes. +You'll need to use 'pmake' to build it, or reconstruct the Makefile. + +I'm not completely certain that I got all of the raw(), crmode() etc +stuff right. If you have applications that use curses, try them out and +send back patches if you find bugs. + +John Kohl + diff --git a/Linux-0.12/sources/libs/curses.tar.Z b/Linux-0.12/sources/libs/curses.tar.Z new file mode 100644 index 00000000..5191c2c0 Binary files /dev/null and b/Linux-0.12/sources/libs/curses.tar.Z differ diff --git a/Linux-0.12/sources/libs/libcurses.patch b/Linux-0.12/sources/libs/libcurses.patch new file mode 100644 index 00000000..febf0154 --- /dev/null +++ b/Linux-0.12/sources/libs/libcurses.patch @@ -0,0 +1,49 @@ +Reply-To: obz@sisd.sisd.Kodak.COM +Date: Tue, 28 Jan 1992 15:54:57 +0200 +From: obz@sisd.sisd.Kodak.COM (Orest Zborowski COMP) +Sender: linux-activists-request@joker.cs.hut.fi +To: linux-activists@joker.cs.hut.fi +Subject: libcurses patch + + +hi- + we don't have news posting working quite right (or at all) at our +site but i couldn't wait any longer. i have a fun yahtzee program (good as +a short break between hacking) which makes pretty good use of the libcurses +library on tsx-11. the problem with that library is that it was missing +the fwopen() call, which apparently creates a special FILE which does +output through the curses window vectors. i made the small change to +make it use vsprintf instead and avoid the non-portable FILE creation +code. + +zorst (orest zborowski) +obz@sisd.kodak.com + +---cut here--- +*** printw.c.ORIG Sat Jan 25 06:19:45 1992 +--- printw.c Sat Jan 25 06:26:19 1992 +*************** +*** 131,141 **** + #endif + va_list ap; + { +! FILE *f; +! extern FILE *fwopen(); + +! if ((f = fwopen((void *)win, _winwrite)) == NULL) + return ERR; +! (void) vfprintf(f, fmt, ap); +! return fclose(f) ? ERR : OK; + } +--- 131,140 ---- + #endif + va_list ap; + { +! char buf[1024]; + +! vsprintf(buf, fmt, ap); +! if (_winwrite(win, buf, strlen(buf))) + return ERR; +! return OK; + } +---cut here--- diff --git a/Linux-0.12/sources/libs/libmsrc.tar.Z b/Linux-0.12/sources/libs/libmsrc.tar.Z new file mode 100644 index 00000000..b57d69fd Binary files /dev/null and b/Linux-0.12/sources/libs/libmsrc.tar.Z differ diff --git a/Linux-0.12/sources/libs/perl-lib.tar.Z b/Linux-0.12/sources/libs/perl-lib.tar.Z new file mode 100644 index 00000000..73af674e Binary files /dev/null and b/Linux-0.12/sources/libs/perl-lib.tar.Z differ diff --git a/Linux-0.12/sources/libs/sdbm.tar.Z b/Linux-0.12/sources/libs/sdbm.tar.Z new file mode 100644 index 00000000..a7b27471 Binary files /dev/null and b/Linux-0.12/sources/libs/sdbm.tar.Z differ diff --git a/Linux-0.12/sources/libs/unistd.tar.Z b/Linux-0.12/sources/libs/unistd.tar.Z new file mode 100644 index 00000000..2072b85d Binary files /dev/null and b/Linux-0.12/sources/libs/unistd.tar.Z differ diff --git a/Linux-0.12/sources/sbin/df.c b/Linux-0.12/sources/sbin/df.c new file mode 100644 index 00000000..729d3975 --- /dev/null +++ b/Linux-0.12/sources/sbin/df.c @@ -0,0 +1,103 @@ +/* df.c: Copywrite (92) Peter MacDonald: distribute freely, don't restrict. */ + +#include +#include +#include +#include +#include +#include +#include + +char *hdr1="\n inodes inodes inodes blocks blocks blocks mount"; +char *hdr2= "device total used free total used free point"; +char *hdr3= "--------------------------------------------------------------------"; +char *fmt = "%-9s %-7d %-7d %-7d %-7d %-7d %-7d %s\n"; + +void do_df(char *dev, char *dir); + +int main(int argc, char *argv[]) +{ int i; + + sync(); + puts(hdr1); + puts(hdr2); + puts(hdr3); + if (argc != 1) + for (i=1; i= (8*BLOCK_SIZE)) + { + end = BLOCK_SIZE; + numbits -= 8*BLOCK_SIZE; + } + else + { int tmp; + end = numbits >> 3; + numbits &= 0x7; + tmp = buf[end] & ((1<>4)&0xf]; + numbits = 0; + } + for (j=0; j>4)&0xf]; + } + return(sum); +} + +void do_df(char *dev, char *dir) +{ int it,iu,bt,bu; + struct super_block supstruct; + + if ((fd=open(dev,O_RDONLY))<0) + oops("df can't open device: %s",dev); + + lseek(fd,BLOCK_SIZE,SEEK_SET); + if (read(fd,(char*)&supstruct,sizeof(struct super_block)) + != sizeof(struct super_block)) + oops("super block unreadable: %s",dev); + + lseek(fd,BLOCK_SIZE*2,SEEK_SET); + if (supstruct.s_magic != SUPER_MAGIC) + oops("not a valid file system: %s",dev); + + it = supstruct.s_ninodes; + iu = count(supstruct.s_imap_blocks,supstruct.s_ninodes+1); + + bt = supstruct.s_nzones << supstruct.s_log_zone_size; + bu = count(supstruct.s_zmap_blocks,supstruct.s_nzones) << + supstruct.s_log_zone_size; + + printf(fmt,dev,it,iu,it-iu,bt,bu,bt-bu,dir); +} diff --git a/Linux-0.12/sources/sbin/fd.tar.Z b/Linux-0.12/sources/sbin/fd.tar.Z new file mode 100644 index 00000000..fef53b51 Binary files /dev/null and b/Linux-0.12/sources/sbin/fd.tar.Z differ diff --git a/Linux-0.12/sources/sbin/fdisk.scsi.tar.Z b/Linux-0.12/sources/sbin/fdisk.scsi.tar.Z new file mode 100644 index 00000000..4a8ddb95 Binary files /dev/null and b/Linux-0.12/sources/sbin/fdisk.scsi.tar.Z differ diff --git a/Linux-0.12/sources/sbin/hostname.c b/Linux-0.12/sources/sbin/hostname.c new file mode 100644 index 00000000..945b51c1 --- /dev/null +++ b/Linux-0.12/sources/sbin/hostname.c @@ -0,0 +1,27 @@ +/* + * Set or display hostname. Jeff Comstock - Bloomington, MN USA 1992 + * Usage: hostname [name] + * Only root may change the hostname. +*/ +#include +#include + +main(int argc, char **argv) { +struct utsname uts; + + if ( argc == 2 ) { + if ( sethostname(argv[1],strlen(argv[1]))) { + perror("sethostname"); + exit(1); + } + } + else { + if (uname(&uts)) { + perror("uname"); + exit(1); + } + else + puts(uts.nodename); + } + return(0); +} diff --git a/Linux-0.12/sources/sbin/mount.c.Z b/Linux-0.12/sources/sbin/mount.c.Z new file mode 100644 index 00000000..516a8851 Binary files /dev/null and b/Linux-0.12/sources/sbin/mount.c.Z differ diff --git a/Linux-0.12/sources/sbin/mylogin3.tar.Z b/Linux-0.12/sources/sbin/mylogin3.tar.Z new file mode 100644 index 00000000..cfe0beb7 Binary files /dev/null and b/Linux-0.12/sources/sbin/mylogin3.tar.Z differ diff --git a/Linux-0.12/sources/sbin/poeigl-1.2.tar.Z b/Linux-0.12/sources/sbin/poeigl-1.2.tar.Z new file mode 100644 index 00000000..e976a634 Binary files /dev/null and b/Linux-0.12/sources/sbin/poeigl-1.2.tar.Z differ diff --git a/Linux-0.12/sources/sbin/ps012.tar.gz b/Linux-0.12/sources/sbin/ps012.tar.gz new file mode 100644 index 00000000..1e317e89 Binary files /dev/null and b/Linux-0.12/sources/sbin/ps012.tar.gz differ diff --git a/Linux-0.12/sources/sbin/qpl-init.tar.Z b/Linux-0.12/sources/sbin/qpl-init.tar.Z new file mode 100644 index 00000000..e240d710 Binary files /dev/null and b/Linux-0.12/sources/sbin/qpl-init.tar.Z differ diff --git a/Linux-0.12/sources/sbin/shadow-src.tar.Z b/Linux-0.12/sources/sbin/shadow-src.tar.Z new file mode 100644 index 00000000..5180042d Binary files /dev/null and b/Linux-0.12/sources/sbin/shadow-src.tar.Z differ diff --git a/Linux-0.12/sources/sbin/shoelace.tar.Z b/Linux-0.12/sources/sbin/shoelace.tar.Z new file mode 100644 index 00000000..0a96e158 Binary files /dev/null and b/Linux-0.12/sources/sbin/shoelace.tar.Z differ diff --git a/Linux-0.12/sources/sbin/stty.tar.Z b/Linux-0.12/sources/sbin/stty.tar.Z new file mode 100644 index 00000000..cd933c23 Binary files /dev/null and b/Linux-0.12/sources/sbin/stty.tar.Z differ diff --git a/Linux-0.12/sources/sbin/swapon.tar.Z b/Linux-0.12/sources/sbin/swapon.tar.Z new file mode 100644 index 00000000..cff17b48 Binary files /dev/null and b/Linux-0.12/sources/sbin/swapon.tar.Z differ diff --git a/Linux-0.12/sources/sbin/system-0.12.tar.Z b/Linux-0.12/sources/sbin/system-0.12.tar.Z new file mode 100644 index 00000000..be5b7601 Binary files /dev/null and b/Linux-0.12/sources/sbin/system-0.12.tar.Z differ diff --git a/Linux-0.12/sources/sbin/umount.c.Z b/Linux-0.12/sources/sbin/umount.c.Z new file mode 100644 index 00000000..802dfd55 Binary files /dev/null and b/Linux-0.12/sources/sbin/umount.c.Z differ diff --git a/Linux-0.12/sources/sbin/uname.c b/Linux-0.12/sources/sbin/uname.c new file mode 100644 index 00000000..25fa63ca --- /dev/null +++ b/Linux-0.12/sources/sbin/uname.c @@ -0,0 +1,72 @@ +/* + * uname - print system information. Jeff Comstock - Bloomington, MN USA 1992 + * Usage: uname [-asnrvm] + * -s prints system name + * -n prints nodename + * -r prints software release + * -v prints os version + * -m prints machine name + * -a prinst all the above information +*/ +#include +#include +#include + +#define SYSNAME 0 +#define NODENAME 1 +#define RELEASE 2 +#define VERSION 3 +#define MACHINE 4 + +struct utsname u; + +struct utstab { + char *str; + int requested; +} uttab[] = { + { u.sysname, 0 }, + { u.nodename, 0 }, + { u.release, 0 }, + { u.version, 0 }, + { u.machine, 0 } +}; + +main(int argc, char **argv) { +char *opts="amnrsv"; +register int c,space, all=0; + + if ( ! uname(&u) ) { + if ( argc == 1 ) { + puts(u.sysname); + } else { + while ( (c = getopt(argc,argv,opts)) != -1 ) { + switch ( c ) { + case 'a' : all++; + break; + case 'm' : uttab[MACHINE].requested++; + break; + case 'n' : uttab[NODENAME].requested++; + break; + case 'r' : uttab[RELEASE].requested++; + break; + case 's' : uttab[SYSNAME].requested++; + break; + case 'v' : uttab[VERSION].requested++; + break; + } + } + space=0; + for(c=0; c <= MACHINE; c++) { + if ( uttab[c].requested || all ) { + if ( space ) + putchar(' '); + printf("%s", uttab[c].str); + space++; + } + } + puts(""); + } + } + else + perror("uname"); +} diff --git a/Linux-0.12/sources/sbin/virtcons.tar.Z b/Linux-0.12/sources/sbin/virtcons.tar.Z new file mode 100644 index 00000000..740f7e31 Binary files /dev/null and b/Linux-0.12/sources/sbin/virtcons.tar.Z differ diff --git a/Linux-0.12/sources/sbin/vixie-cron.tar.Z b/Linux-0.12/sources/sbin/vixie-cron.tar.Z new file mode 100644 index 00000000..0a7264ce Binary files /dev/null and b/Linux-0.12/sources/sbin/vixie-cron.tar.Z differ diff --git a/Linux-0.12/sources/sbin/vp.tar.Z b/Linux-0.12/sources/sbin/vp.tar.Z new file mode 100644 index 00000000..c9220953 Binary files /dev/null and b/Linux-0.12/sources/sbin/vp.tar.Z differ diff --git a/Linux-0.12/sources/sbin/vt100.tar.Z b/Linux-0.12/sources/sbin/vt100.tar.Z new file mode 100644 index 00000000..7f4df0a7 Binary files /dev/null and b/Linux-0.12/sources/sbin/vt100.tar.Z differ diff --git a/Linux-0.12/sources/system/ega.tar.Z b/Linux-0.12/sources/system/ega.tar.Z new file mode 100644 index 00000000..27a1296b Binary files /dev/null and b/Linux-0.12/sources/system/ega.tar.Z differ diff --git a/Linux-0.12/sources/system/hd.c.Z b/Linux-0.12/sources/system/hd.c.Z new file mode 100644 index 00000000..ed5d2cbb Binary files /dev/null and b/Linux-0.12/sources/system/hd.c.Z differ diff --git a/Linux-0.12/sources/system/lp.12.tar.Z b/Linux-0.12/sources/system/lp.12.tar.Z new file mode 100644 index 00000000..306cc756 Binary files /dev/null and b/Linux-0.12/sources/system/lp.12.tar.Z differ diff --git a/Linux-0.12/sources/system/mmap.tar.Z b/Linux-0.12/sources/system/mmap.tar.Z new file mode 100644 index 00000000..8d55e3de Binary files /dev/null and b/Linux-0.12/sources/system/mmap.tar.Z differ diff --git a/Linux-0.12/sources/system/reboot-kmem.patch b/Linux-0.12/sources/system/reboot-kmem.patch new file mode 100644 index 00000000..aaff3166 --- /dev/null +++ b/Linux-0.12/sources/system/reboot-kmem.patch @@ -0,0 +1,186 @@ +From: db1@ukc.ac.uk (D.Bolla) +Newsgroups: alt.os.linux +Subject: Patches to have reboot and /dev/kmem working +Summary: How to add a syscall. And various considerations +Message-ID: <5375@falcon.ukc.ac.uk> +Date: 22 Feb 92 13:50:56 GMT +Sender: db1@ukc.ac.uk +Organization: Computing Lab, University of Kent at Canterbury, UK. +Lines: 174 + + + +Hello + +This time I have some small solutions :-) + +The first one is the implentation of the reboot syscall. +The syscall just does a reboot after having checked that you are root. +The old method does not work anymore ( CTRL-ALT-DEL ) + +The second is an implementation of the /dev/kmem. Most of the code is +done by linux. I just added FEW lines in the right place ( I hope ). +The point is that with this /unix and nlist(3) it is possible to get +all information we need from the kernel WITHOUT having to add code to the +kernel. + +It seems to me that people who complain about "normal users cannot read +/dev/kmem" and "A library to read kernel data is not nice" don't have a +clear idea about what /dev/kmem is used for. +When you look in /dev/kmem you look for VERY special information about +the system. I am not sayng that normal user should be denied ps :-) +but if you think, normal users use ps just to see what others are doing +( The same thing for w ) + +Anyway.... under Sun there are three programs that "look" into /dev/kmem +ps, w, pstats. The amount of information you can get out of them is very +big. The point that I am tryng to make here is: +To obtain the same amount of information from syscalls you need a +GREAT number of variations and parameters. Is this worth the work ? +( Considering the small amount of programs that need that information ) +Again..... + +Negative points of kernel implementation. +1) Extra (Unnecessary) code in the kernel -> Kernel bigger. +2) Possible introduction of ERRORS -> Kernel panic. +3) Increased number of syscall and paramentrs -> Complexity +4) Problems on returning lists of data in user space +To me point 2 is already enough NOT to use this method. If you can live +with possible kernel panics....... + +Positive points of a library implementation. +1) NO extra code in the kernel. -> Save memory +2) Impossibility to add ERRORS to the kernel code. -> NO panic +3) Easy to update, modify even by average user. +4) No problems in allcating memory for the result. + +What it is important is to DEFINE what information we want to +extract from /dev/kmem and who can use them. After that is defined it +is possible to discuss about implementaion. + +And now to the code :-) + +----------------------------------------------------------------- +I decided to put the actual routine that does reboot into +kernel/sys.c Probably your sys.c may be different.... + +522a523,533 +> /* This function reboots the system if the current UID is root +> * No sync is performed. The optional flag is not used yet +> * The called routine is in kernel/chr_drv/keyboard.S +> */ +> int sys_reboot ( int flag ) +> { +> if (!suser()) +> return (-EPERM); +> __asm__("call _hard_reset;" ); +> return (0); +> } + +The next step is to add the syscall code in the file +include/unistd.h + +148a149 +> #define __NR_reboot 87 + +And then add the syscall address in the file +include/linux/sys.h + +91a92 +> extern int sys_reboot(); +108c109 +< sys_lstat, sys_readlink, sys_uselib }; +--- +> sys_lstat, sys_readlink, sys_uselib ,sys_reboot }; + +The last bit is to modify the keyboard.S file +kernel/chr_drv/keyboard.S +This file is different from yours so.... don't just apply the diff +Understand what it does and do it by hand. + +25a26 +> .globl _hard_reset +203c204 +< jne reboot +--- +> jne 1f /* CTRL-ALT-DEL */ +659c660 +< reboot: +--- +> _hard_reset: +661,662c662,663 +< movw $0x1234,0x472 /* don't do memory check */ +< movb $0xfc,%al /* pulse reset and A20 low */ +--- +> movw $0x1234,0x472 /* don't do memory check */ +> movb $0xfc,%al /* pulse reset and A20 low */ + +At this point recompile the kernel and all should go together. +Unfortunately the work is NOT finished. You have to add the syscall to +libc.a To do this you need the source for the library. Usually in +/usr/src/lib. Go into the unistd directory and create the file +reboot.c with the following content. + +/* This function will reboot the syestem + */ +#define __LIBRARY__ +#include + +_syscall1(int,reboot,int,param) + +And then modify the Makefile as follow. +At the end of OBJ=.... list add reboot.o and do a make dep + +Before making the new libary you have to change the standard unistd.h library +file to point to the unistd.h file in the linux directory +cd /usr/include +rm unistd.h +ln -s /usr/src/linux/include/unistd.h unistd.h + +At this point you can make the new libc.a +Then you can experiment with the new syscall. +Eg: + +#include +#include + +main () + { + if ( reboot (1) ==(-EPERM) ) + printf ("Not superuser \n"); + exit (-1); + } + +------------------------------------------------------------- +The second part is a patch that gives you access to the kernel memory +in particular kernel DATA memory. +The following diff applies to the file fs/char_dev.c and in particular +to the function rw_kmem . + +52,54c52,67 +< { +< return -EIO; +< } +--- +> { +> int i = *pos; /* Current position where to read */ +> +> /* i can go from 0 to LOW_MEM (See include/linux/mm.h */ +> /* I am not shure about it but it doesn't mem fault :-) */ +> while ( (count-- > 0) && (i { +> if (rw==READ) put_fs_byte( *(char *)i ,buf++); +> else return (-EIO); +> i++; +> } +> +> i -= *pos; /* Count how many read or write */ +> *pos += i; /* Update position */ +> return (i); /* Return number read */ +> } + +NOTE: The LOW_MEM value may not be the most appropriate. Linus please +confirm if it is the correct one. + +Damiano + diff --git a/Linux-0.12/sources/system/reboot.tar.Z b/Linux-0.12/sources/system/reboot.tar.Z new file mode 100644 index 00000000..71f1d2a5 Binary files /dev/null and b/Linux-0.12/sources/system/reboot.tar.Z differ diff --git a/Linux-0.12/sources/system/rename.patch b/Linux-0.12/sources/system/rename.patch new file mode 100644 index 00000000..2319ebf0 --- /dev/null +++ b/Linux-0.12/sources/system/rename.patch @@ -0,0 +1,210 @@ +From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) +Newsgroups: alt.os.linux +Subject: patches for sys_rename +Summary: patch to 0.12 +Keywords: rename mvdir +Message-ID: <1992Jan23.194334.23058@klaava.Helsinki.FI> +Date: 23 Jan 92 19:43:34 GMT +Organization: University of Helsinki +Lines: 198 + + +Ok, here's the sys_rename patch to "linux/kernel/namei.c". Additionally +you need to remove the sys_rename stub function (just returns -ENOSYS) +from "linux/kerne|/sys.c". This is not heavily tested: I wrote it today, +but it seems to work. + +Patch the file, remove the stub and recompile linux: voila, you have a +rename system call that actually works. It's not in the library, so +you'll have to explicitly call it by using __asm__'s. A simple +/usr/bin/mvdir command is here: + +#define __LIBRARY__ +#include +#include + +int main(int argc, char ** argv) +{ + int i; + + if (argc != 3) + return -1; + __asm__("int $0x80":"=a" (i):"0" (__NR_rename), + "b" ((long) argv[1]), + "c" ((long) argv[2])); + return i; +} + +and with this in place mv seems to be able to move directories without +problems. (You can also use mvdir to move non-directories, but who +cares). And, yes, I'm interested in bug-reports if it doesn't work. + + Linus + +---- snip snip ----------------------------------------- +*** linux/fs/namei.c Sun Jan 12 06:09:58 1992 +--- namei.c Thu Jan 23 23:05:53 1992 +*************** +*** 892,894 **** +--- 892,1051 ---- + iput(oldinode); + return 0; + } ++ ++ static int subdir(struct m_inode * new, struct m_inode * old) ++ { ++ unsigned short fs; ++ int ino; ++ int result; ++ ++ __asm__("mov %%fs,%0":"=r" (fs)); ++ __asm__("mov %0,%%fs"::"r" ((unsigned short) 0x10)); ++ new->i_count++; ++ result = 0; ++ for (;;) { ++ if (new == old) { ++ result = 1; ++ break; ++ } ++ if (new->i_dev != old->i_dev) ++ break; ++ ino = new->i_num; ++ new = _namei("..",new,0); ++ if (new->i_num == ino) ++ break; ++ } ++ iput(new); ++ __asm__("mov %0,%%fs"::"r" (fs)); ++ return result; ++ } ++ ++ #define PARENT_INO(buffer) \ ++ (((struct dir_entry *) (buffer))[1].inode) ++ ++ #define PARENT_NAME(buffer) \ ++ (((struct dir_entry *) (buffer))[1].name) ++ ++ /* ++ * rename uses the -ERESTARTNOINTR error return to avoid race conditions: ++ * it tries to allocate all the blocks, then sanity-checks, and if the sanity- ++ * checks fail, it tries to restart itself again. Very practical - no changes ++ * are done until we know everything works ok.. and then all the changes can be ++ * done in one fell swoop when we have claimed all the buffers needed. ++ * ++ * Anybody can rename anything that they have access to (and write access to the ++ * parents) - except the '.' and '..' directories. ++ */ ++ static int do_rename(const char * oldname, const char * newname) ++ { ++ struct m_inode * inode; ++ struct m_inode * old_dir, * new_dir; ++ struct buffer_head * old_bh, * new_bh, * dir_bh; ++ struct dir_entry * old_de, * new_de; ++ const char * old_base, * new_base; ++ int old_len, new_len; ++ int retval; ++ ++ inode = old_dir = new_dir = NULL; ++ old_bh = new_bh = dir_bh = NULL; ++ old_dir = dir_namei(oldname,&old_len,&old_base, NULL); ++ retval = -ENOENT; ++ if (!old_dir) ++ goto end_rename; ++ retval = -EPERM; ++ if (!old_len || get_fs_byte(old_base) == '.' && ++ (old_len == 1 || get_fs_byte(old_base+1) == '.' && ++ old_len == 2)) ++ goto end_rename; ++ retval = -EACCES; ++ if (!permission(old_dir,MAY_WRITE)) ++ goto end_rename; ++ old_bh = find_entry(&old_dir,old_base,old_len,&old_de); ++ retval = -ENOENT; ++ if (!old_bh) ++ goto end_rename; ++ inode = iget(old_dir->i_dev, old_de->inode); ++ if (!inode) ++ goto end_rename; ++ new_dir = dir_namei(newname,&new_len,&new_base, NULL); ++ if (!new_dir) ++ goto end_rename; ++ retval = -EPERM; ++ if (!new_len || get_fs_byte(new_base) == '.' && ++ (new_len == 1 || get_fs_byte(new_base+1) == '.' && ++ new_len == 2)) ++ goto end_rename; ++ retval = -EACCES; ++ if (!permission(new_dir, MAY_WRITE)) ++ goto end_rename; ++ if (new_dir->i_dev != old_dir->i_dev) ++ goto end_rename; ++ new_bh = find_entry(&new_dir,new_base,new_len,&new_de); ++ retval = -EEXIST; ++ if (new_bh) ++ goto end_rename; ++ retval = -EPERM; ++ if (S_ISDIR(inode->i_mode)) { ++ if (!permission(inode, MAY_WRITE)) ++ goto end_rename; ++ if (subdir(new_dir, inode)) ++ goto end_rename; ++ retval = -EIO; ++ if (!inode->i_zone[0]) ++ goto end_rename; ++ if (!(dir_bh = bread(inode->i_dev, inode->i_zone[0]))) ++ goto end_rename; ++ if (PARENT_INO(dir_bh->b_data) != old_dir->i_num) ++ goto end_rename; ++ } ++ new_bh = add_entry(new_dir,new_base,new_len,&new_de); ++ retval = -ENOSPC; ++ if (!new_bh) ++ goto end_rename; ++ /* sanity checking before doing the rename - avoid races */ ++ retval = -ERESTARTNOINTR; ++ if (new_de->inode || (old_de->inode != inode->i_num)) ++ goto end_rename; ++ /* ok, that's it */ ++ old_de->inode = 0; ++ new_de->inode = inode->i_num; ++ old_bh->b_dirt = 1; ++ new_bh->b_dirt = 1; ++ if (dir_bh) { ++ PARENT_INO(dir_bh->b_data) = new_dir->i_num; ++ dir_bh->b_dirt = 1; ++ old_dir->i_nlinks--; ++ new_dir->i_nlinks++; ++ old_dir->i_dirt = 1; ++ new_dir->i_dirt = 1; ++ } ++ retval = 0; ++ end_rename: ++ brelse(dir_bh); ++ brelse(old_bh); ++ brelse(new_bh); ++ iput(inode); ++ iput(old_dir); ++ iput(new_dir); ++ return retval; ++ } ++ ++ /* ++ * Ok, rename also locks out other renames, as they can change the parent of ++ * a directory, and we don't want any races. Other races are checked for by ++ * "do_rename()", which restarts if there are inconsistencies. ++ */ ++ int sys_rename(const char * oldname, const char * newname) ++ { ++ static struct task_struct * wait = NULL; ++ static int lock = 0; ++ int result; ++ ++ while (lock) ++ sleep_on(&wait); ++ lock = 1; ++ result = do_rename(oldname, newname); ++ lock = 0; ++ wake_up(&wait); ++ return result; ++ } + diff --git a/Linux-0.12/sources/usr.bin/cawf2.cdiff b/Linux-0.12/sources/usr.bin/cawf2.cdiff new file mode 100644 index 00000000..576f7fa4 --- /dev/null +++ b/Linux-0.12/sources/usr.bin/cawf2.cdiff @@ -0,0 +1,125 @@ +*** orig/makefile Thu Feb 21 17:15:06 1991 +--- makefile Wed Feb 5 10:38:20 1992 +*************** +*** 4,12 **** + # + # define STDLIB for systems that have + + DEFS = -DUNIX -DSTDLIB + +! CFLAGS = -g ${DEFS} + + HDR = cawf.h regexp.h regmagic.h + +--- 4,14 ---- + # + # define STDLIB for systems that have + ++ CC = gcc ++ + DEFS = -DUNIX -DSTDLIB + +! CFLAGS = ${DEFS} + + HDR = cawf.h regexp.h regmagic.h + +*** orig/bsfilt.c Thu Feb 21 17:14:54 1991 +--- bsfilt.c Sat Jan 18 20:15:50 1992 +*************** +*** 45,51 **** + int Ulx = 0; /* underline buffer index */ + + void Putchar(); +! #ifndef STDDEF + char *strrchr(); + #endif + +--- 45,51 ---- + int Ulx = 0; /* underline buffer index */ + + void Putchar(); +! #ifndef STDLIB + char *strrchr(); + #endif + +*** orig/cawf.c Thu Feb 21 17:14:54 1991 +--- cawf.c Sat Jan 18 20:15:50 1992 +*** orig/cawf.h Thu Feb 21 17:14:54 1991 +--- cawf.h Wed Feb 5 10:43:06 1992 +*************** +*** 40,46 **** + #include "regexp.h" + + #ifdef UNIX +! #define CAWFLIB "/Homes/abe/src/cawf" /* UNIX library location */ + #else + #define CAWFLIB "c:/sys/lib/cawf" /* PC-DOS library location */ + #endif +--- 40,46 ---- + #include "regexp.h" + + #ifdef UNIX +! #define CAWFLIB "/usr/local/lib" /* UNIX library location */ + #else + #define CAWFLIB "c:/sys/lib/cawf" /* PC-DOS library location */ + #endif +*** orig/error.c Thu Feb 21 17:14:56 1991 +--- error.c Sat Jan 18 20:15:50 1992 +*** orig/expand.c Thu Feb 21 17:14:56 1991 +--- expand.c Sat Jan 18 20:15:50 1992 +*** orig/expr.c Thu Feb 21 17:14:56 1991 +--- expr.c Sat Jan 18 20:15:50 1992 +*** orig/macsup.c Thu Feb 21 17:14:56 1991 +--- macsup.c Sat Jan 18 20:15:50 1992 +*** orig/output.c Thu Feb 21 17:14:56 1991 +--- output.c Sat Jan 18 20:15:50 1992 +*** orig/pass2.c Thu Feb 21 17:14:58 1991 +--- pass2.c Sat Jan 18 20:15:50 1992 +*** orig/pass3.c Thu Feb 21 17:14:58 1991 +--- pass3.c Sat Jan 18 20:15:50 1992 +*** orig/regerror.c Thu Feb 21 17:14:58 1991 +--- regerror.c Sat Jan 18 20:15:50 1992 +*** orig/regexp.c Thu Feb 21 17:15:00 1991 +--- regexp.c Sat Jan 18 20:25:37 1992 +*************** +*** 708,714 **** + register char *string; + { + register char *s; +! extern char *strchr(); + + /* Be paranoid... */ + if (prog == NULL || string == NULL) { +--- 708,714 ---- + register char *string; + { + register char *s; +! /* extern char *strchr(); */ + + /* Be paranoid... */ + if (prog == NULL || string == NULL) { +*************** +*** 807,813 **** + { + register char *scan; /* Current node. */ + char *next; /* Next node. */ +! extern char *strchr(); + + scan = prog; + #ifdef DEBUG +--- 807,813 ---- + { + register char *scan; /* Current node. */ + char *next; /* Next node. */ +! /* extern char *strchr(); */ + + scan = prog; + #ifdef DEBUG +*** orig/regexp.h Thu Feb 21 17:15:00 1991 +--- regexp.h Sat Jan 18 19:55:38 1992 +*** orig/regmagic.h Thu Feb 21 17:15:00 1991 +--- regmagic.h Sat Jan 18 20:10:06 1992 +*** orig/store.c Thu Feb 21 17:15:00 1991 +--- store.c Sat Jan 18 20:26:26 1992 +*** orig/string.c Thu Feb 21 17:15:02 1991 +--- string.c Sat Jan 18 20:27:18 1992 diff --git a/Linux-0.12/sources/usr.bin/cawf2.zip b/Linux-0.12/sources/usr.bin/cawf2.zip new file mode 100644 index 00000000..42cb7fb8 Binary files /dev/null and b/Linux-0.12/sources/usr.bin/cawf2.zip differ diff --git a/Linux-0.12/sources/usr.bin/df.c b/Linux-0.12/sources/usr.bin/df.c new file mode 100644 index 00000000..0b2205a7 --- /dev/null +++ b/Linux-0.12/sources/usr.bin/df.c @@ -0,0 +1,104 @@ +/* df.c: Copywrite (92) Peter MacDonald: distribute freely, don't restrict. */ + +#include +#include +#include +#include +#include +#include +#include + +char *hdr1="\n inodes inodes inodes blocks blocks blocks mount"; +char *hdr2= "device total used free total used free point"; +char *hdr3= "--------------------------------------------------------------------"; +char *fmt = "%-9s %-7d %-7d %-7d %-7d %-7d %-7d %s\n"; + +void do_df(char *dev, char *dir); + +int main(int argc, char *argv[]) +{ int i; + + sync(); + puts(hdr1); + puts(hdr2); + puts(hdr3); + if (argc != 1) + for (i=1; i= (8*BLOCK_SIZE)) + { + end = BLOCK_SIZE; + numbits -= 8*BLOCK_SIZE; + } + else + { int tmp; + end = numbits >> 3; + numbits &= 0x7; + tmp = buf[end] & ((1<>4)&0xf]; + numbits = 0; + } + for (j=0; j>4)&0xf]; + } + return(sum); +} + +void do_df(char *dev, char *dir) +{ int it,iu,bt,bu; + struct super_block supstruct; + + if ((fd=open(dev,O_RDONLY))<0) + oops("df can't open device: %s",dev); + + lseek(fd,BLOCK_SIZE,SEEK_SET); + if (read(fd,(char*)&supstruct,sizeof(struct super_block)) + != sizeof(struct super_block)) + oops("super block unreadable: %s",dev); + + lseek(fd,BLOCK_SIZE*2,SEEK_SET); + if (supstruct.s_magic != SUPER_MAGIC) + oops("not a valid file system: %s",dev); + + it = supstruct.s_ninodes; + iu = count(supstruct.s_imap_blocks,supstruct.s_ninodes+1); + + bt = supstruct.s_nzones << supstruct.s_log_zone_size; + bu = count(supstruct.s_zmap_blocks,supstruct.s_nzones) << + supstruct.s_log_zone_size; + + printf(fmt,dev,it,iu,it-iu,bt,bu,bt-bu,dir); +} + diff --git a/Linux-0.12/sources/usr.bin/disksplit.tar.Z b/Linux-0.12/sources/usr.bin/disksplit.tar.Z new file mode 100644 index 00000000..b4f69e1d Binary files /dev/null and b/Linux-0.12/sources/usr.bin/disksplit.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/doshell.c b/Linux-0.12/sources/usr.bin/doshell.c new file mode 100644 index 00000000..34ebdaeb --- /dev/null +++ b/Linux-0.12/sources/usr.bin/doshell.c @@ -0,0 +1,34 @@ + +#include +#include +#include + +extern char *sys_errlist[]; + +main(int argc, char *argv[]) +{ + + if (argc != 3) { + fprintf(stderr, "usage: doshell &\n"); + exit(1); + } + + /* close down fd's */ + close(0); + close(1); + close(2); + + /* detach from parent process's group */ + setsid(); + + /* open new tty */ + if (open(argv[1], O_RDWR, 0) == -1) + exit(2); + dup(0); + dup(0); + execlp(argv[2], "-", 0); + /* should appear on new tty...: */ + fprintf(stderr, "can't exec shell: %s\n", sys_errlist[errno]); + exit(3); +} + diff --git a/Linux-0.12/sources/usr.bin/elle-new-makefile b/Linux-0.12/sources/usr.bin/elle-new-makefile new file mode 100644 index 00000000..8fcd0da1 --- /dev/null +++ b/Linux-0.12/sources/usr.bin/elle-new-makefile @@ -0,0 +1,204 @@ +To: Linux-Activists@BLOOM-PICAYUNE.MIT.EDU +From: gt0178a@prism.gatech.EDU (BURNS) +Subject: Re: elle(1) and rc(1) ports uploaded to tsx-11.mit.edu +Date: 10 May 92 08:13:59 GMT + +I found out why I was getting undefineds from elle's make. There was a +syntax problem with the '-sh -c if ...' line in Makefile that prevented +ranlib from processing the made libraries. That, plus adding -ltermcap to +the link line solved everything. To remake things in mid-stream, I also had +to reorganize things in sbmake. New make files follow: + +========= +Makefile: +========= +# ELLE Makefile. +# The main trickery to notice is that this Makefile invokes itself +# in order to build ELLE. This allows it to generate sections of +# the makefile dynamically, namely: +# makecf.rl - defines the RANLIB macro to use "ranlib" if system has it +# makecf.fun - defines the FUN_OFILES macro to specify which modules +# are needed in order to furnish all of the desired +# functions for a specific ELLE configuration. + +# Basic definitions + +CFLAGS = -c -O + +CONFS = makecf.rl makecf.fun defprf.c eefdef.h eefidx.h + +CORE_OFILES = eemain.o eecmds.o eesite.o eevini.o\ + eedisp.o eeterm.o eeerr.o eeques.o\ + eebuff.o eefile.o eefed.o eeedit.o eebit.o + +.c.o: + cc $(CFLAGS) $*.c + ar rv elib.a $*.o + +# ------------------------------------------------------------------ +# Standard ELLE configuration: "elle". +# Default if no target given to make. +# Note that "xelle" is created, not "elle". + +elle: $(CONFS) + make -f makecf.rl -f makecf.fun -f Makefile B-elle + +B-elle: $(CORE_OFILES) $(FUN_OFILES) elle.h eesite.h libsb.a + $(RANLIB) elib.a + cc -o xelle eemain.o elib.a libsb.a -ltermcap + + +# Don't flush these files if interrupted, dammit! + +.PRECIOUS: ellec deffun.e defprf.e $(CONFS) libsb.a + +# Configuration setup stuff, for files listed by CONFS. +# If any of the files is missing or outdated, all must be +# re-generated. We assume the *.t files always exist. +# A forced re-compilation of eecmds.c must also be done to +# ensure that the latest .h files are included in ELLE. + +makecf.fun defprf.c eefdef.h eefidx.h : ellec defprf.e deffun.e + cat deffun.e defprf.e | ./ellec -CMconf > makecf.fun + cat deffun.e defprf.e | ./ellec -Pconf > defprf.c + cat deffun.e defprf.e | ./ellec -Fconf > eefdef.h + cat deffun.e defprf.e | ./ellec -FXconf > eefidx.h + rm -f eecmds.o + +# The following modules make use of eefidx.h and thus must also +# be recompiled if the configuration is changed. + +eebuff.o eeerr.o eehelp.o eejust.o eemain.o eeques.o eef1.o : eefidx.h + cc $(CFLAGS) $*.c + ar rv elib.a $*.o + + +# RANLIB definition stuff. The idea here is to automatically check to see +# whether a system has the "ranlib" program, and set up the RANLIB +# macro appropriately (use ranlib if possible; else substitute a dummy +# program, "echo" in this case). The existence of "makecf.rl" +# indicates that this setup code has been executed; it should never +# need to be done again. +makecf.rl: + echo "RANLIB = echo" > makecf.rl + -sh -c "if [ ranlib ]; then (echo \"RANLIB = ranlib\" > makecf.rl;) fi" + +# ELLE profile compiler. Needed to generate makecf files! +# Although eefdef.h and defprf.c are included by ELLEC, they +# are not listed as dependencies in order to avoid loops (see +# their target entries). That is OK because their information is not +# used when generating the makecf files; it only furnishes default +# values needed when an ELLE user compiles a user profile. + +ellec: ellec.c + cc -o ellec -O ellec.c + +# SB library, used by ELLE. +# This target should not be directly invoked by the user since it +# requires that RANLIB be defined; for direct invocation, better to +# just do a MAKE of "sb" in the sbmake file. + +libsb.a: + make -f sbmake sbnoran + $(RANLIB) libsb.a + +# ------------------------------------------------------------------ +# ELLE Variants (system or configuration dependent) + +# SUN workstation system/configuration. +# Needs extra libraries to support window hacking; libsb.a comes last +# so that "valloc" refs can be satisfied from SB library instead of +# C library. +# Plus special patch to binary, very installation-dependent! + +sunelle: $(CONFS) + make -f makecf.rl -f makecf.fun -f Makefile B-sunelle + +B-sunelle: $(CORE_OFILES) $(FUN_OFILES) eesun.o elle.h eesite.h libsb.a + $(RANLIB) elib.a + cc -o xelle -u _main elib.a -ltermlib\ + -lsuntool -lsunwindow -lpixrect\ + libsb.a + echo "tool_select+148?W my_select" > esunpat.sh + adb -w xelle < esunpat.sh + +# APOLLO system. +# Linker doesn't understand libraries as regular arguments. +# May have troubles with duplication of CORE and FUN files. +# System has no termlib - uses TERMCAP emulation that comes with AUX. + +SB_OFILES = sbstr.o sbm.o sberr.o + +apolloelle: $(CONFS) + make -f makecf.rl -f makecf.fun -f Makefile B-apolloelle + +B-apolloelle: $(CORE_OFILES) $(FUN_OFILES) elle.h eesite.h libsb.a + cc -o xelle $(CORE_OFILES) $(FUN_OFILES) $(SB_OFILES) -ltermcap + +# IBM PC/IX system. +# Just needs -ltermcap instead of -ltermlib. +# Does not have/need "ranlib" by the way. + +pcixelle: $(CONFS) + make -f makecf.rl -f makecf.fun -f Makefile B-pcixelle + +B-pcixelle: $(CORE_OFILES) $(FUN_OFILES) elle.h eesite.h libsb.a + cc -i -o xelle -u _main elib.a libsb.a -ltermcap + +========= +sbmake: +========= +# SB library makefile. +# Only funny stuff is handling for the "bcopy" routine, where +# we try to use the system version if any exists. +# +# On PDP-11 systems only, BCOPYSUF can be set to ".s" to use +# an assembly-language version. The bcopy.s here is +# better than the BSD2.9 version and can replace it. + +CFLAGS = -c -O + +OFILES = sbstr.o sbvall.o sbm.o sberr.o sbbcpy.o + +BCOPYSUF = .c + +.c.o: + cc $(CFLAGS) $*.c +# ar rv libsb.a $*.o + +# Default entry - build library and attempt ranlib, but since some +# systems don't have ranlib, ignore error in latter. +sb: libsb.a $(OFILES) + -sh -c "ranlib libsb.a" + +# Note that ELLE's makefile invokes this entry, since it does the ranlib +# itself if necessary. +sbnoran: libsb.a $(OFILES) + +libsb.a: $(OFILES) + ar rv libsb.a $(OFILES) + +# BCOPY special-case handling. If system already appears to have +# a "bcopy" routine, we use that for best efficiency (normally it +# is written in assembler to take advantage of things like +# block move instructions). +# Otherwise, we use our own C-language version. + +sbbcpy.o: sbbcpy$(BCOPYSUF) + cc -c -O sbbcpy$(BCOPYSUF) + rm -f a.out bnull.c bnull.o bfind.c bfind.o bfind + echo "sbm_null(){}" > bnull.c + cc -c bnull.c + echo "main(){exit(0);bcopy();}" > bfind.c + -cc -o bfind bfind.c + -sh -c "if ./bfind;\ + then echo Using system bcopy; (mv bnull.o sbbcpy.o)\ + else echo Using SB bcopy; fi" + rm -f bfind bfind.c bfind.o a.out bnull.c bnull.o + ar rv libsb.a sbbcpy.o +-- +BURNS,JIM (returned student) +Georgia Institute of Technology, 30178 Georgia Tech Station, +Atlanta Georgia, 30332 | Internet: gt0178a@prism.gatech.edu +uucp: ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gt0178a + diff --git a/Linux-0.12/sources/usr.bin/elle.src.diffs.Z b/Linux-0.12/sources/usr.bin/elle.src.diffs.Z new file mode 100644 index 00000000..b2fbff46 Binary files /dev/null and b/Linux-0.12/sources/usr.bin/elle.src.diffs.Z differ diff --git a/Linux-0.12/sources/usr.bin/elle.src.tar.Z b/Linux-0.12/sources/usr.bin/elle.src.tar.Z new file mode 100644 index 00000000..6fe6dc4d Binary files /dev/null and b/Linux-0.12/sources/usr.bin/elle.src.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/emacs-18.57.tar.Z b/Linux-0.12/sources/usr.bin/emacs-18.57.tar.Z new file mode 100644 index 00000000..3c5161db Binary files /dev/null and b/Linux-0.12/sources/usr.bin/emacs-18.57.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/file.tar.Z b/Linux-0.12/sources/usr.bin/file.tar.Z new file mode 100644 index 00000000..7bae2ce6 Binary files /dev/null and b/Linux-0.12/sources/usr.bin/file.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/fileutils-3.1.tar.Z b/Linux-0.12/sources/usr.bin/fileutils-3.1.tar.Z new file mode 100644 index 00000000..1467b611 Binary files /dev/null and b/Linux-0.12/sources/usr.bin/fileutils-3.1.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/flip1src.zip b/Linux-0.12/sources/usr.bin/flip1src.zip new file mode 100644 index 00000000..e10251ed Binary files /dev/null and b/Linux-0.12/sources/usr.bin/flip1src.zip differ diff --git a/Linux-0.12/sources/usr.bin/hostname.c b/Linux-0.12/sources/usr.bin/hostname.c new file mode 100644 index 00000000..2973149e --- /dev/null +++ b/Linux-0.12/sources/usr.bin/hostname.c @@ -0,0 +1,27 @@ +/* + * Set or display hostname. Jeff Comstock - Bloomington, MN USA 1992 + * Usage: hostname [name] + * Only root may change the hostname. +*/ +#include +#include + +main(int argc, char **argv) { +struct utsname uts; + + if ( argc == 2 ) { + if ( sethostname(argv[1],strlen(argv[1]))) { + perror("sethostname"); + exit(1); + } + } + else { + if (uname(&uts)) { + perror("uname"); + exit(1); + } + else + puts(uts.nodename); + } + return(0); +} diff --git a/Linux-0.12/sources/usr.bin/install.tar.Z b/Linux-0.12/sources/usr.bin/install.tar.Z new file mode 100644 index 00000000..cf3f4bd7 Binary files /dev/null and b/Linux-0.12/sources/usr.bin/install.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/less-177.src.tar.Z b/Linux-0.12/sources/usr.bin/less-177.src.tar.Z new file mode 100644 index 00000000..cf04b652 Binary files /dev/null and b/Linux-0.12/sources/usr.bin/less-177.src.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/lha-0.04PatchedLinux.lzh b/Linux-0.12/sources/usr.bin/lha-0.04PatchedLinux.lzh new file mode 100644 index 00000000..8c8cb5ec Binary files /dev/null and b/Linux-0.12/sources/usr.bin/lha-0.04PatchedLinux.lzh differ diff --git a/Linux-0.12/sources/usr.bin/lha.Linux.README b/Linux-0.12/sources/usr.bin/lha.Linux.README new file mode 100644 index 00000000..3d58ff56 --- /dev/null +++ b/Linux-0.12/sources/usr.bin/lha.Linux.README @@ -0,0 +1,11 @@ +This archive contains a Executable of LHA and an archive with the source +and the addapted Makefile so one can compile under Linux. + +I (The Sender of this File) would like to see this archive added to the +archive of Linux Programs. + +I hope it is of any use to someone out there! + +For any questions I'm reacheable by E-Mail under + +m2c6@sci.kun.nl (At least until June 1992). diff --git a/Linux-0.12/sources/usr.bin/m4.tar.Z b/Linux-0.12/sources/usr.bin/m4.tar.Z new file mode 100644 index 00000000..a41a76a7 Binary files /dev/null and b/Linux-0.12/sources/usr.bin/m4.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/man.tar.Z b/Linux-0.12/sources/usr.bin/man.tar.Z new file mode 100644 index 00000000..77e031fe Binary files /dev/null and b/Linux-0.12/sources/usr.bin/man.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/mg.tar.Z b/Linux-0.12/sources/usr.bin/mg.tar.Z new file mode 100644 index 00000000..fbb70c4c Binary files /dev/null and b/Linux-0.12/sources/usr.bin/mg.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/mtools-2.0.5.tar.Z b/Linux-0.12/sources/usr.bin/mtools-2.0.5.tar.Z new file mode 100644 index 00000000..d064bcea Binary files /dev/null and b/Linux-0.12/sources/usr.bin/mtools-2.0.5.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/mtools.n.tar.Z b/Linux-0.12/sources/usr.bin/mtools.n.tar.Z new file mode 100644 index 00000000..adb60c10 Binary files /dev/null and b/Linux-0.12/sources/usr.bin/mtools.n.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/mtools_Readme b/Linux-0.12/sources/usr.bin/mtools_Readme new file mode 100644 index 00000000..939472f4 --- /dev/null +++ b/Linux-0.12/sources/usr.bin/mtools_Readme @@ -0,0 +1,44 @@ +This is the Mtools v2.0 distribution package. Mtools is a public domain +collection of programs to allow Unix systems to read, write, and +manipulate files on an MSDOS filesystem (typically a diskette). + +The following MSDOS commands are emulated: + +Mtool MSDOS +name equivalent Description +----- ---- ----------- +mattrib ATTRIB change MSDOS file attribute flags +mcd CD change MSDOS directory +mcopy COPY copy MSDOS files to/from Unix +mdel DEL/ERASE delete an MSDOS file +mdir DIR display an MSDOS directory +mformat FORMAT add MSDOS filesystem to a low-level format +mlabel LABEL make an MSDOS volume label. +mmd MD/MKDIR make an MSDOS subdirectory +mrd RD/RMDIR remove an MSDOS subdirectory +mread COPY low level read (copy) an MSDOS file to Unix +mren REN/RENAME rename an existing MSDOS file +mtype TYPE display contents of an MSDOS file +mwrite COPY low level write (copy) a Unix file to MSDOS + +Here are what the files should look like: + +file name length att sum bsd sum + +mtools_patches1-5.Z 43331 01381 04887 +mtools_sh.1.Z 27527 34726 38082 +mtools_sh.2.Z 26902 17097 42191 +mtools_sh.3.Z 16327 04558 20371 +mtools_sh.4.Z 10405 51165 39152 + +The 'mtools_patches1-5' file is for those people who already have Mtools +version 2.0, but are missing one or more of the patches. The 'mtools_sh.*' +files already have the patches installed. The last file 'mtools_sh.4' is +optional... it contains the formatted output of the manual pages for the +benefit of those without nroff. + +Emmet P. Gray US Army, HQ III Corps & Fort Hood +...!uunet!uiucuxc!fthood!egray Attn: AFZF-DE-ENV +fthood!egray@uxc.cso.uiuc.edu Directorate of Engineering & Housing + Environmental Management Office + Fort Hood, TX 76544-5057 diff --git a/Linux-0.12/sources/usr.bin/mtools_patches1-5.Z b/Linux-0.12/sources/usr.bin/mtools_patches1-5.Z new file mode 100644 index 00000000..64384f44 Binary files /dev/null and b/Linux-0.12/sources/usr.bin/mtools_patches1-5.Z differ diff --git a/Linux-0.12/sources/usr.bin/mtools_sh.1.Z b/Linux-0.12/sources/usr.bin/mtools_sh.1.Z new file mode 100644 index 00000000..f9a55a79 Binary files /dev/null and b/Linux-0.12/sources/usr.bin/mtools_sh.1.Z differ diff --git a/Linux-0.12/sources/usr.bin/mtools_sh.2.Z b/Linux-0.12/sources/usr.bin/mtools_sh.2.Z new file mode 100644 index 00000000..106762be Binary files /dev/null and b/Linux-0.12/sources/usr.bin/mtools_sh.2.Z differ diff --git a/Linux-0.12/sources/usr.bin/mtools_sh.3.Z b/Linux-0.12/sources/usr.bin/mtools_sh.3.Z new file mode 100644 index 00000000..31aa2501 Binary files /dev/null and b/Linux-0.12/sources/usr.bin/mtools_sh.3.Z differ diff --git a/Linux-0.12/sources/usr.bin/mtools_sh.4.Z b/Linux-0.12/sources/usr.bin/mtools_sh.4.Z new file mode 100644 index 00000000..85e0647f Binary files /dev/null and b/Linux-0.12/sources/usr.bin/mtools_sh.4.Z differ diff --git a/Linux-0.12/sources/usr.bin/nh3p10bin.tar.Z b/Linux-0.12/sources/usr.bin/nh3p10bin.tar.Z new file mode 100644 index 00000000..155be534 Binary files /dev/null and b/Linux-0.12/sources/usr.bin/nh3p10bin.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/pcomm12.tar.Z b/Linux-0.12/sources/usr.bin/pcomm12.tar.Z new file mode 100644 index 00000000..5e345ac8 Binary files /dev/null and b/Linux-0.12/sources/usr.bin/pcomm12.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/sdb.tar.Z b/Linux-0.12/sources/usr.bin/sdb.tar.Z new file mode 100644 index 00000000..6c78ae7f Binary files /dev/null and b/Linux-0.12/sources/usr.bin/sdb.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/stat.c b/Linux-0.12/sources/usr.bin/stat.c new file mode 100644 index 00000000..1796242a --- /dev/null +++ b/Linux-0.12/sources/usr.bin/stat.c @@ -0,0 +1,283 @@ +/* + * Stat.c Dump out inode info in nice form. pur-ee!rsk + * Original version by someone at Purdue in the days of v6; + * this one by Rsk for modern times. (4.2, V) + * + * Bug fix for setuid bit misplacement, and modifications + * for System V by Bill Stoll, whuxlm!wws. + * + * Masscomp (and system V) mods by Stan Barber, neuro1!sob. + * + * Bug fix for setuid bit and flag mods, and for + * misplaced include of time.h, okstate!zap. + * Note: I left SINCE as a compile-time option; it + * probably shouldn't even be there. ---Rsk + * + * (void)'s added to make lint happy, pur-ee!rsk. + * + * Still doesn't run under 2.9; to be fixed soon. + * + * + * Vanilla version is for system V. + * Define BSD42 for 4.2bsd version. + * Define SINCE for "elapsed time" since inode times. + * Define MASSCOMP for those machines; this implies system V. + */ +/* + * 1992-03-03 bergt@informatik.tu-chemnitz.de: ported the stuff + * to Linux 0.12 and add's unknown uid's and gid's + */ + +#ifdef MASSCOMP +#undef BSD42 +#endif MASSCOMP + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define FAIL -1 /* Failure return code from call */ +#define OKAY 0 /* Success return code from call */ + +struct stat Sbuf; /* for return values from stat() call */ +char *ctime(); /* Time conversion */ +struct passwd *pwent; /* User structure */ +struct group *grent; /* Group structure */ + +char Mode[10]; /* File protection mode */ + +#define LBUFSIZ 256 /* Length for symbolic link translation buffer */ +char Lbuf[LBUFSIZ]; /* Symbolic link translation buffer */ + +main(argc, argv) +int argc; +char *argv[]; +{ + int i; + + i = 1; + + if(argc == 1) { + (void) fprintf(stderr,"Usage: stat file1 [file2 ...]\n"); + exit(1); + } + + do { + + (void) stat_it(argv[i]); + + if( (argc > 1) && (i < (argc-1)) ) + (void) printf("\n"); + } + while(++i < argc); + + exit(0); +} + +/* + * stat_it() - Actually stat and format results from file. + * exit - OKAY if no problems encountered + * FAIL if couldn't open or other nastiness + * + */ +stat_it(filename) +char *filename; +{ + int count; + +#ifdef BSD42 + if( lstat(filename,&Sbuf) == FAIL) { + (void) fprintf(stderr,"Can't lstat %s\n",filename); + return(FAIL); + } +#else BSD42 + if( stat(filename,&Sbuf) == FAIL) { + (void) fprintf(stderr,"Can't stat %s\n",filename); + return(FAIL); + } +#endif BSD42 + +#ifdef BSD42 + if( (Sbuf.st_mode & S_IFMT) == S_IFLNK) { + if( (count=readlink(filename,Lbuf,LBUFSIZ)) == FAIL) { + (void) fprintf(stderr,"Can't readlink %s\n", filename); + return(FAIL); + } + if( count < LBUFSIZ) + Lbuf[count] = '\0'; + (void) printf(" File: \"%s\" -> \"%s\"\n",filename,Lbuf); + } + else +#endif BSD42 + (void) printf(" File: \"%s\"\n", filename); + + (void) printf(" Size: %-10d", Sbuf.st_size); +#ifdef BSD42 + (void) printf(" Allocated Blocks: %-10ld", Sbuf.st_blocks); +#endif BSD42 + + (void) printf(" Filetype: "); + switch( Sbuf.st_mode & S_IFMT) { + case S_IFDIR: (void) printf("Directory\n"); + break; + case S_IFCHR: (void) printf("Character Device\n"); + break; + case S_IFBLK: (void) printf("Block Device\n"); + break; + case S_IFREG: (void) printf("Regular File\n"); + break; +#ifdef BSD42 + case S_IFLNK: (void) printf("Symbolic Link\n"); + break; + case S_IFSOCK: (void) printf("Socket\n"); + break; +#else BSD42 + case S_IFIFO: (void) printf("Fifo File\n"); + break; +#endif BSD42 +#ifdef MASSCOMP + case S_IFCTG: (void) printf("Contiguous File\n"); + break; +#endif MASSCOMP + default : (void) printf("Unknown\n"); + } + + (void) strcpy(Mode,"----------"); + if(Sbuf.st_mode & (S_IXUSR>>6)) /* Other execute */ + Mode[9] = 'x'; + if(Sbuf.st_mode & (S_IWUSR>>6)) /* Other write */ + Mode[8] = 'w'; + if(Sbuf.st_mode & (S_IRUSR>>6)) /* Other read */ + Mode[7] = 'r'; + if(Sbuf.st_mode & (S_IXUSR>>3)) /* Group execute */ + Mode[6] = 'x'; + if(Sbuf.st_mode & (S_IWUSR>>3)) /* Group write */ + Mode[5] = 'w'; + if(Sbuf.st_mode & (S_IRUSR>>3)) /* Group read */ + Mode[4] = 'r'; + if(Sbuf.st_mode & S_IXUSR) /* User execute */ + Mode[3] = 'x'; + if(Sbuf.st_mode & S_IWUSR) /* User write */ + Mode[2] = 'w'; + if(Sbuf.st_mode & S_IRUSR) /* User read */ + Mode[1] = 'r'; + if(Sbuf.st_mode & S_ISVTX) /* Sticky bit */ + Mode[9] = 't'; + if(Sbuf.st_mode & S_ISGID) /* Set group id */ + Mode[6] = 's'; + if(Sbuf.st_mode & S_ISUID) /* Set user id */ + Mode[3] = 's'; + switch( Sbuf.st_mode & S_IFMT) { + case S_IFDIR: Mode[0] = 'd'; + break; + case S_IFCHR: Mode[0] = 'c'; + break; + case S_IFBLK: Mode[0] = 'b'; + break; + case S_IFREG: Mode[0] = '-'; + break; +#ifdef BSD42 + case S_IFLNK: Mode[0] = 'l'; + break; + case S_IFSOCK: Mode[0] = 's'; + break; +#else BSD42 + case S_IFIFO: Mode[0] = 'f'; + break; +#endif BSD42 +#ifdef MASSCOMP + case S_IFCTG: Mode[0] = 'C'; + break; +#endif MASSCOMP + default : Mode[0] = '?'; + } + (void) printf(" Mode: (%04o/%s)", Sbuf.st_mode&07777,Mode); + + + (void) setpwent(); + if( (pwent = getpwuid(Sbuf.st_uid)) == NULL) { + pwent = (PTR) malloc(sizeof(struct passwd)); + (void) strcpy(pwent->pw_name, "???"); + } + (void) printf(" Uid: (%5d/%8s)", Sbuf.st_uid, pwent->pw_name); + + (void) setgrent(); + if( (grent = getgrgid(Sbuf.st_gid)) == NULL) { + grent = (PTR) malloc(sizeof(struct passwd)); + (void) strcpy(grent->gr_name, "???"); + } + (void) printf(" Gid: (%5d/%8s)\n", Sbuf.st_gid, grent->gr_name); + + + (void) printf("Device: %-5d", Sbuf.st_dev); + (void) printf(" Inode: %-10d", Sbuf.st_ino); + (void) printf("Links: %-5d", Sbuf.st_nlink); + + /* Only meaningful if file is device */ + + if( ( (Sbuf.st_mode & S_IFMT) == S_IFCHR) + || ( (Sbuf.st_mode & S_IFMT) == S_IFBLK) ) + (void) printf(" Device type: %d\n",Sbuf.st_rdev); + else + (void) printf("\n"); + + /* The %.24s strips the newline from the ctime() string */ + +#ifdef SINCE + (void) printf("Access: %.24s",ctime(&Sbuf.st_atime)); + (void) tsince(Sbuf.st_atime); + (void) printf("Modify: %.24s",ctime(&Sbuf.st_mtime)); + (void) tsince(Sbuf.st_mtime); + (void) printf("Change: %.24s",ctime(&Sbuf.st_ctime)); + (void) tsince(Sbuf.st_ctime); +#else SINCE + (void) printf("Access: %s",ctime(&Sbuf.st_atime)); + (void) printf("Modify: %s",ctime(&Sbuf.st_mtime)); + (void) printf("Change: %s",ctime(&Sbuf.st_ctime)); +#endif SINCE + +/* +* Should I put this in somewhere? No. +* +* printf("Optimal Blocksize: %ld\n", Sbuf.st_blksize); +*/ + + return(OKAY); +} + +#ifdef SINCE +tsince(time_sec) +long time_sec; +{ + long time_buf; + long d_since; /* days elapsed since time */ + long h_since; /* hours elapsed since time */ + long m_since; /* minutes elapsed since time */ + long s_since; /* seconds elapsed since time */ + + (void) time(&time_buf); + + if(time_sec > time_buf) { + (void) fprintf(stderr,"Time going backwards\n"); + exit(1); + } + + s_since = time_buf - time_sec; + d_since = s_since / 86400l ; + s_since -= d_since * 86400l ; + h_since = s_since / 3600l ; + s_since -= h_since * 3600l ; + m_since = s_since / 60l ; + s_since -= m_since * 60l ; + + (void) printf("(%05ld.%02ld:%02ld:%02ld)\n",d_since,h_since,m_since,s_since); + + return(OKAY); +} +#endif SINCE diff --git a/Linux-0.12/sources/usr.bin/strings.tar.Z b/Linux-0.12/sources/usr.bin/strings.tar.Z new file mode 100644 index 00000000..76b72a49 Binary files /dev/null and b/Linux-0.12/sources/usr.bin/strings.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/su.tar.Z b/Linux-0.12/sources/usr.bin/su.tar.Z new file mode 100644 index 00000000..dbce4621 Binary files /dev/null and b/Linux-0.12/sources/usr.bin/su.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/swipr-man.tar.Z b/Linux-0.12/sources/usr.bin/swipr-man.tar.Z new file mode 100644 index 00000000..f91eb71e Binary files /dev/null and b/Linux-0.12/sources/usr.bin/swipr-man.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/swipr-rest.tar.Z b/Linux-0.12/sources/usr.bin/swipr-rest.tar.Z new file mode 100644 index 00000000..c260ad85 Binary files /dev/null and b/Linux-0.12/sources/usr.bin/swipr-rest.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/swipr-src.tar.gz b/Linux-0.12/sources/usr.bin/swipr-src.tar.gz new file mode 100644 index 00000000..714d6bf5 Binary files /dev/null and b/Linux-0.12/sources/usr.bin/swipr-src.tar.gz differ diff --git a/Linux-0.12/sources/usr.bin/tty.c.shar b/Linux-0.12/sources/usr.bin/tty.c.shar new file mode 100644 index 00000000..2d512274 --- /dev/null +++ b/Linux-0.12/sources/usr.bin/tty.c.shar @@ -0,0 +1,133 @@ +This is a version of tty.c for linux. + +john harvey JOHNBOB at AUSVMQ I don't speak for my employer. +johnbob@innerdoor.austin.ibm.com johnbob@there.austin.ibm.com +johnbob@129.35.81.111 johnbob@129.35.81.200 + main(int c,char**v){if(c==2){int n=atoi(v[1]);printf("%d\n", + n*main(-n+1,v));}else if(c<0)return-c*main(c+1,v);return 1;} + +---- Cut Here and unpack ---- +#!/bin/sh +# This is a shell archive (shar 3.10) +# made 01/21/1992 18:47 UTC by rjohnbobpts/4@AIX +# Source directory /drive2/u/johnbob/net/linux/contrib +# +# existing files will NOT be overwritten +# +# This shar contains: +# length mode name +# ------ ---------- ------------------------------------------ +# 170 -rw-r--r-- Makefile +# 158 -rw-r--r-- add.this +# 587 -rw-r--r-- tty.c +# +touch 2>&1 | fgrep '[-amc]' > /tmp/s3_touch$$ +if [ -s /tmp/s3_touch$$ ] +then + TOUCH=can +else + TOUCH=cannot +fi +rm -f /tmp/s3_touch$$ +# ============= Makefile ============== +if test -f Makefile; then echo "File Makefile exists"; else +echo "x - extracting Makefile (Text)" +sed 's/^X//' << 'SHAR_EOF' > Makefile && +X# +X# +X +XPROGRAM = tty +XSRC = tty.c +XOBJS = tty.o +X +XCC=cc +XCFLAGS = -O +X +X +Xall: $(PROGRAM) +X +X$(PROGRAM): $(OBJS) +X $(CC) -o $(PROGRAM) $(OBJS) $(LIBS) +X +X.c.o: +X $(CC) $(CFLAGS) -c $< +X +SHAR_EOF +chmod 0644 Makefile || echo "restore of Makefile fails" +if [ $TOUCH = can ] +then + touch -am 0120162992 Makefile +fi +fi +# ============= add.this ============== +if test -f add.this; then echo "File add.this exists"; else +echo "x - extracting add.this (Text)" +sed 's/^X//' << 'SHAR_EOF' > add.this && +XThe prototype for the ttyname() function wasn't in +X/usr/include/unistd.h so you will have to add it to +Xthe bottom of the file: +X +Xchar * ttyname(int fildes); +X +X +SHAR_EOF +chmod 0644 add.this || echo "restore of add.this fails" +if [ $TOUCH = can ] +then + touch -am 0120174392 add.this +fi +fi +# ============= tty.c ============== +if test -f tty.c; then echo "File tty.c exists"; else +echo "x - extracting tty.c (Text)" +sed 's/^X//' << 'SHAR_EOF' > tty.c && +X/* +X tty.c +X By John Harvey AKA johnbob AKA qk +X copy this all you want +X*/ +X +X#include +X#include +X#include +X +Xvoid syntax(int rv) +X{ +X fprintf(stderr,"syntax: tty [-s]\n"); +X exit(rv); +X} +X +Xmain(int argc, char **argv) +X{ +X int silent = 0; +X char *n; +X +X if( argc == 2 ) +X { +X if( strcmp(argv[1],"-s") ) +X syntax(1); +X silent = 1; +X } +X else if ( argc != 1 ) +X syntax(1); +X if( n=ttyname(0) ) +X { +X if ( ! silent ) +X printf("%s\n", n); +X exit(0); +X } +X else +X { +X if ( ! silent ) +X printf("%s\n", "Not a tty"); +X exit(1); +X } +X} +SHAR_EOF +chmod 0644 tty.c || echo "restore of tty.c fails" +if [ $TOUCH = can ] +then + touch -am 0120173492 tty.c +fi +fi +exit 0 diff --git a/Linux-0.12/sources/usr.bin/tube.tar.Z b/Linux-0.12/sources/usr.bin/tube.tar.Z new file mode 100644 index 00000000..4556a131 Binary files /dev/null and b/Linux-0.12/sources/usr.bin/tube.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/uname.c b/Linux-0.12/sources/usr.bin/uname.c new file mode 100644 index 00000000..25fa63ca --- /dev/null +++ b/Linux-0.12/sources/usr.bin/uname.c @@ -0,0 +1,72 @@ +/* + * uname - print system information. Jeff Comstock - Bloomington, MN USA 1992 + * Usage: uname [-asnrvm] + * -s prints system name + * -n prints nodename + * -r prints software release + * -v prints os version + * -m prints machine name + * -a prinst all the above information +*/ +#include +#include +#include + +#define SYSNAME 0 +#define NODENAME 1 +#define RELEASE 2 +#define VERSION 3 +#define MACHINE 4 + +struct utsname u; + +struct utstab { + char *str; + int requested; +} uttab[] = { + { u.sysname, 0 }, + { u.nodename, 0 }, + { u.release, 0 }, + { u.version, 0 }, + { u.machine, 0 } +}; + +main(int argc, char **argv) { +char *opts="amnrsv"; +register int c,space, all=0; + + if ( ! uname(&u) ) { + if ( argc == 1 ) { + puts(u.sysname); + } else { + while ( (c = getopt(argc,argv,opts)) != -1 ) { + switch ( c ) { + case 'a' : all++; + break; + case 'm' : uttab[MACHINE].requested++; + break; + case 'n' : uttab[NODENAME].requested++; + break; + case 'r' : uttab[RELEASE].requested++; + break; + case 's' : uttab[SYSNAME].requested++; + break; + case 'v' : uttab[VERSION].requested++; + break; + } + } + space=0; + for(c=0; c <= MACHINE; c++) { + if ( uttab[c].requested || all ) { + if ( space ) + putchar(' '); + printf("%s", uttab[c].str); + space++; + } + } + puts(""); + } + } + else + perror("uname"); +} diff --git a/Linux-0.12/sources/usr.bin/uniq.src.tar.Z b/Linux-0.12/sources/usr.bin/uniq.src.tar.Z new file mode 100644 index 00000000..d31101b8 Binary files /dev/null and b/Linux-0.12/sources/usr.bin/uniq.src.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/upsd-1.0.3.tar.Z b/Linux-0.12/sources/usr.bin/upsd-1.0.3.tar.Z new file mode 100644 index 00000000..45f37a0e Binary files /dev/null and b/Linux-0.12/sources/usr.bin/upsd-1.0.3.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/uuxxcode.tar.Z b/Linux-0.12/sources/usr.bin/uuxxcode.tar.Z new file mode 100644 index 00000000..12f78c2f Binary files /dev/null and b/Linux-0.12/sources/usr.bin/uuxxcode.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/vcutil.tar.Z b/Linux-0.12/sources/usr.bin/vcutil.tar.Z new file mode 100644 index 00000000..7c5aeabe Binary files /dev/null and b/Linux-0.12/sources/usr.bin/vcutil.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/xlharc.tar.Z b/Linux-0.12/sources/usr.bin/xlharc.tar.Z new file mode 100644 index 00000000..6140b52d Binary files /dev/null and b/Linux-0.12/sources/usr.bin/xlharc.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/zmodem.tar.Z b/Linux-0.12/sources/usr.bin/zmodem.tar.Z new file mode 100644 index 00000000..1e7b3e32 Binary files /dev/null and b/Linux-0.12/sources/usr.bin/zmodem.tar.Z differ diff --git a/Linux-0.12/sources/usr.bin/zoo210.tar.Z b/Linux-0.12/sources/usr.bin/zoo210.tar.Z new file mode 100644 index 00000000..cf236ccf Binary files /dev/null and b/Linux-0.12/sources/usr.bin/zoo210.tar.Z differ diff --git a/Linux-0.12/sources/usr.games/rogue.tar.Z b/Linux-0.12/sources/usr.games/rogue.tar.Z new file mode 100644 index 00000000..752af2c6 Binary files /dev/null and b/Linux-0.12/sources/usr.games/rogue.tar.Z differ diff --git a/Linux-0.12/sources/usr.games/torus.tar.Z b/Linux-0.12/sources/usr.games/torus.tar.Z new file mode 100644 index 00000000..56e57dcb Binary files /dev/null and b/Linux-0.12/sources/usr.games/torus.tar.Z differ diff --git a/Linux-0.12/sources/usr.games/worms.tar.Z b/Linux-0.12/sources/usr.games/worms.tar.Z new file mode 100644 index 00000000..3d0bf729 Binary files /dev/null and b/Linux-0.12/sources/usr.games/worms.tar.Z differ diff --git a/Linux-0.12/sources/usr.games/yahtzee.tar.Z b/Linux-0.12/sources/usr.games/yahtzee.tar.Z new file mode 100644 index 00000000..0945134a Binary files /dev/null and b/Linux-0.12/sources/usr.games/yahtzee.tar.Z differ