public inbox for linux-8086@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH]- big patch that fixes bugs
@ 2004-05-28 20:22 Tommy McCabe
  2004-05-28 21:30 ` [PATCH 1/5] Splitting Tommy's big patch Eduardo Pereira Habkost
                   ` (4 more replies)
  0 siblings, 5 replies; 13+ messages in thread
From: Tommy McCabe @ 2004-05-28 20:22 UTC (permalink / raw)
  To: linux-8086

[-- Attachment #1: Type: text/plain, Size: 417 bytes --]

This patch fixes so many bugs I can't remember them
all. When applied, ELKS will compile, but not boot
(sys_execve and sys_open return 2 and 8 errors- YES I
CHECKED THE FLOPPY). 2 bugs I noticed-

1. How do you get ash on comb but not on root?
2. How do you fit everything on root?


	
		
__________________________________
Do you Yahoo!?
Friends.  Fun.  Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/ 

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: patch.diff --]
[-- Type: text/x-diff; name="patch.diff", Size: 86731 bytes --]

diff -ruN ./elks-stuff/elks/arch/i86/Makefile ./elks/elks/arch/i86/Makefile
--- ./elks-stuff/elks/arch/i86/Makefile	2004-05-28 16:01:49.000000000 -0400
+++ ./elks/elks/arch/i86/Makefile	2004-04-18 14:45:26.000000000 -0400
@@ -105,9 +105,10 @@
 
 boot/system:	$(AARCHIVES) $(ADRIVERS) boot/crt1.o boot/crt0.o
 	(cd $(BASEDIR) ; $(LD) $(LDFLAGS) $(ARCH_LD) \
+		-t -M -o $(ARCH_DIR)/boot/system \
 		$(ARCH_DIR)/boot/crt0.o $(ARCH_DIR)/boot/crt1.o \
 		init/main.o $(ARCHIVES) $(DRIVERS) \
-		-t -M -o $(ARCH_DIR)/boot/system > System.tmp ; \
+		> System.tmp ; \
 		sort -k4 System.tmp > System.map ; rm -f System.tmp ) 
 
 #PC image build
diff -ruN ./elks-stuff/elks/arch/i86/boot/setup.S ./elks/elks/arch/i86/boot/setup.S
--- ./elks-stuff/elks/arch/i86/boot/setup.S	2004-05-28 16:01:49.000000000 -0400
+++ ./elks/elks/arch/i86/boot/setup.S	2004-04-18 14:42:59.000000000 -0400
@@ -585,7 +585,7 @@
 	or	al,al
 	jnz	is486
 #endif
-#ifdef(CONFIG_CPU_80386)
+#ifdef CONFIG_CPU_80386
         mov cl,#7
 	lea	si,p80386
 	br	getfpu
diff -ruN ./elks-stuff/elks/init/main.c ./elks/elks/init/main.c
--- ./elks-stuff/elks/init/main.c	2004-05-28 16:01:50.000000000 -0400
+++ ./elks/elks/init/main.c	2004-05-09 11:05:45.000000000 -0400
@@ -106,7 +106,7 @@
 #ifdef CONFIG_CONSOLE_SERIAL
 	num = sys_open("/dev/ttyS0", 2, 0);
 #else
-	num = sys_open("/dev/tty1", 2, 0);
+	num = sys_open("/dev/tty0", 2, 0);
 #endif
 
 	if (num < 0)
diff -ruN ./elks-stuff/elks/kernel/printk.c ./elks/elks/kernel/printk.c
--- ./elks-stuff/elks/kernel/printk.c	2004-05-28 16:01:50.000000000 -0400
+++ ./elks/elks/kernel/printk.c	2004-04-18 14:38:48.000000000 -0400
@@ -136,7 +136,7 @@
 		continue;
 	    }
 
-	    width = zero = '0';
+	    width = zero = 0;
 	    if (c == '0')
 		zero++;
 	    while (c >= '0' && c <= '9') {
diff -ruN ./elks-stuff/elkscmd/MAKEDEV ./elks/elkscmd/MAKEDEV
--- ./elks-stuff/elkscmd/MAKEDEV	1969-12-31 19:00:00.000000000 -0500
+++ ./elks/elkscmd/MAKEDEV	2004-05-28 15:31:49.000000000 -0400
@@ -0,0 +1,266 @@
+#!/bin/sh
+
+# Devices are generated by this script in the same order that they are listed
+# in the Documentation/devices.txt file in the Linux 2.4.18 and5.21 kernel
+# sources. This includes devices that are not currently relevant to ELKS, to
+# encourage the use of common node numbers when these devices are eventually
+# implemented.
+#
+# Where different node numbers are currently used by ELKS, the current ELKS
+# node numbers are generated by lines labelled "Currently" and the relevant
+# Linux node numbers are generated by lines labelled "Ought to be".
+#
+# Refer to the MAKESET command, also in this directory, for usage details.
+
+LINK=ln
+MKDEV=mknod
+MKSET=./MAKESET
+TARGET_MNT=/mnt/test
+DEVDIR=./$TARGET_MNT/dev
+
+##############################################################################
+# Ensure required auxilliary script is present.
+
+if ! test -f "$MKSET"
+then
+    echo ERROR: \"$MKSET\" script missing, unable to continue.
+    exit 1
+fi
+
+##############################################################################
+# Create memory devices.
+
+	$MKDEV $DEVDIR/mem c 1 1
+	$MKDEV $DEVDIR/kmem c 1 2
+	$MKDEV $DEVDIR/null c 1 3
+#	$MKDEV $DEVDIR/port c 1 4
+	$MKDEV $DEVDIR/zero c 1 5
+#	$MKDEV $DEVDIR/core c 1 6
+	$MKDEV $DEVDIR/full c 1 7
+#	$MKDEV $DEVDIR/random c 1 8
+#	$MKDEV $DEVDIR/urandom c 1 9
+#	$MKDEV $DEVDIR/aio c 1 10
+
+##############################################################################
+# RAM disks.
+
+	$MKSET   0 7  $MKDEV $DEVDIR/ram b 1
+
+	$LINK  $DEVDIR/ram1 $DEVDIR/ramdisk
+
+##############################################################################
+# Pseudo-TTY master devices. These are not yet supported by the ELKS kernel.
+
+#	$MKSET   0 15 $MKDEV $DEVDIR/ptyp x 2
+#	$MKSET  16 15 $MKDEV $DEVDIR/ptyq x 2
+#	$MKSET  32 15 $MKDEV $DEVDIR/ptyr x 2
+#	$MKSET  48 15 $MKDEV $DEVDIR/ptys x 2
+#	$MKSET  64 15 $MKDEV $DEVDIR/ptyt x 2
+#	$MKSET  80 15 $MKDEV $DEVDIR/ptyu x 2
+#	$MKSET  96 15 $MKDEV $DEVDIR/ptyv x 2
+#	$MKSET 112 15 $MKDEV $DEVDIR/ptyw x 2
+#	$MKSET 128 15 $MKDEV $DEVDIR/ptyx x 2
+#	$MKSET 144 15 $MKDEV $DEVDIR/ptyy x 2
+#	$MKSET 160 15 $MKDEV $DEVDIR/ptyz x 2
+#	$MKSET 176 15 $MKDEV $DEVDIR/ptya x 2
+#	$MKSET 192 15 $MKDEV $DEVDIR/ptyb x 2
+#	$MKSET 208 15 $MKDEV $DEVDIR/ptyc x 2
+#	$MKSET 224 15 $MKDEV $DEVDIR/ptyd x 2
+#	$MKSET 240 15 $MKDEV $DEVDIR/ptye x 2
+
+##############################################################################
+# Floppy diskettes. Only the auto-detect nodes are listed.
+
+	$MKDEV $DEVDIR/fd0	b 3 128 	# Currently.
+	$MKDEV $DEVDIR/fd1	b 3 192 	# Currently.
+
+#	$MKSET   0 3  $MKDEV $DEVDIR/fd b 2	# Ought to be.
+
+##############################################################################
+# Pseudo-TTY master devices. These are not yet supported by the ELKS kernel.
+
+#	$MKSET   0 15 $MKDEV $DEVDIR/ttyp x 3
+#	$MKSET  16 15 $MKDEV $DEVDIR/ttyq x 3
+#	$MKSET  32 15 $MKDEV $DEVDIR/ttyr x 3
+#	$MKSET  48 15 $MKDEV $DEVDIR/ttys x 3
+#	$MKSET  64 15 $MKDEV $DEVDIR/ttyt x 3
+#	$MKSET  80 15 $MKDEV $DEVDIR/ttyu x 3
+#	$MKSET  96 15 $MKDEV $DEVDIR/ttyv x 3
+#	$MKSET 112 15 $MKDEV $DEVDIR/ttyw x 3
+#	$MKSET 128 15 $MKDEV $DEVDIR/ttyx x 3
+#	$MKSET 144 15 $MKDEV $DEVDIR/ttyy x 3
+#	$MKSET 160 15 $MKDEV $DEVDIR/ttyz x 3
+#	$MKSET 176 15 $MKDEV $DEVDIR/ttya x 3
+#	$MKSET 192 15 $MKDEV $DEVDIR/ttyb x 3
+#	$MKSET 208 15 $MKDEV $DEVDIR/ttyc x 3
+#	$MKSET 224 15 $MKDEV $DEVDIR/ttyd x 3
+#	$MKSET 240 15 $MKDEV $DEVDIR/ttye x 3
+
+##############################################################################
+# Direct IDE disks, Primary channel.
+
+	$MKSET   0 7 $MKDEV $DEVDIR/hda b 5	# Currently.
+	$MKSET  8 7 $MKDEV $DEVDIR/hdb b 5	# Currently.
+
+#	$MKSET   0 7 $MKDEV $DEVDIR/hda b 3	# Ought to be.
+#	$MKSET  8 7 $MKDEV $DEVDIR/hdb b 3	# Ought to be.
+
+##############################################################################
+# Virtual consoles. Note that tty4 through tty7 can't be enabled at this
+# time because of the possible conflict with ttyS0 through ttyS3 which
+# used to use the node numbers these now use. However, it is expected that
+# this restriction can be removed in the near future.
+
+	$MKSET  0 3  $MKDEV $DEVDIR/tty c 4	# Currently
+#	$MKSET  0 15 $MKDEV $DEVDIR/tty c 4	# Soon to be
+
+# Serial ports, as detected by the ROM BIOS.
+
+	$MKSET 64 3  $MKDEV $DEVDIR/ttyS c 4
+
+##############################################################################
+# Alternate TTY devices. These are not yet supported.
+
+#	$MKDEV $DEVDIR/tty	c 5 0
+#	$MKDEV $DEVDIR/console	c 5 1
+#	$MKDEV $DEVDIR/ptmx	c 5 2
+
+##############################################################################
+# Parallel devices, as detected by the ROM BIOS.
+
+	$MKSET  0 3  $MKDEV $DEVDIR/lp c 6
+
+##############################################################################
+# Loopback devices. These are not yet supported.
+
+#	$MKSET  0 15 $MKDEV $DEVDIR/loop c 7
+
+##############################################################################
+# SCSI disks. These are not yet supported.
+
+#	$MKSET   0 7 $MKDEV $DEVDIR/sda b 8
+#	$MKSET   8 7 $MKDEV $DEVDIR/sdb b 8
+#	$MKSET  16 7 $MKDEV $DEVDIR/sdc b 8
+#	$MKSET  24 7 $MKDEV $DEVDIR/sdd b 8
+#	$MKSET  32 7 $MKDEV $DEVDIR/sde b 8
+#	$MKSET  40 7 $MKDEV $DEVDIR/sdf b 8
+#	$MKSET  48 7 $MKDEV $DEVDIR/sdg b 8
+#	$MKSET  56 7 $MKDEV $DEVDIR/sdh b 8
+#	$MKSET  64 7 $MKDEV $DEVDIR/sdi b 8
+#	$MKSET  72 7 $MKDEV $DEVDIR/sdj b 8
+#	$MKSET  80 7 $MKDEV $DEVDIR/sdk b 8
+#	$MKSET  88 7 $MKDEV $DEVDIR/sdl b 8
+#	$MKSET  96 7 $MKDEV $DEVDIR/sdm b 8
+#	$MKSET 104 7 $MKDEV $DEVDIR/sdn b 8
+#	$MKSET 112 7 $MKDEV $DEVDIR/sdo b 8
+#	$MKSET 120 7 $MKDEV $DEVDIR/sdp b 8
+
+##############################################################################
+# SCSI tapes. These are not yet supported.
+
+#	$MKSET   0 31 $MKDEV $DEVDIR/st c 9
+#	$MKSET  32 31 $MKDEV $DEVDIR/st c 9 l
+#	$MKSET  64 31 $MKDEV $DEVDIR/st c 9 m
+#	$MKSET  96 31 $MKDEV $DEVDIR/st c 9 a
+#	$MKSET 128 31 $MKDEV $DEVDIR/nst c 9
+#	$MKSET 160 31 $MKDEV $DEVDIR/nst c 9 l
+#	$MKSET 192 31 $MKDEV $DEVDIR/nst c 9 m
+#	$MKSET 224 31 $MKDEV $DEVDIR/nst c 9 a
+
+##############################################################################
+# Metadisk (RAID) devices. These are not yet supported.
+
+#	$MKSET   0 15 $MKDEV $DEVDIR/md b 9
+
+##############################################################################
+# SCSI CD-ROM devices. These are not yet supported.
+
+#	$MKDEV $DEVDIR/scd b 11
+
+##############################################################################
+# MSCDEX CD-ROM devices. These are not yet supported.
+
+#	$MKDEV $DEVDIR/doscd b 12
+
+##############################################################################
+# 8-bit MFM/RLL controllers. These are not yet supported.
+
+#	$MKSET   0 7 $MKDEV $DEVDIR/xda b 13
+#	$MKSET  8 7 $MKDEV $DEVDIR/xdb b 13
+
+##############################################################################
+# BIOS hard disks.
+
+	$MKSET   0 7 $MKDEV $DEVDIR/bda b 3	# Currently
+	$MKSET  8  7 $MKDEV $DEVDIR/bdb b 3	# Currently
+	$MKSET  16 7 $MKDEV $DEVDIR/bdc b 3	# Currently
+	$MKSET  24 7 $MKDEV $DEVDIR/bdd b 3	# Currently
+
+#	$MKSET   0 7 $MKDEV $DEVDIR/bda b 14	# Ought to be
+#	$MKSET  8 7 $MKDEV $DEVDIR/bdb b 14	# Ought to be
+#	$MKSET  16 7 $MKDEV $DEVDIR/bdc b 14	# Ought to be
+#	$MKSET  24 7 $MKDEV $DEVDIR/bdd b 14	# Ought to be
+
+##############################################################################
+# Joysticks. These are not yet supported.
+
+#	$MKDEV $DEVDIR/js c 15
+#	$MKDEV $DEVDIR/djs c 15
+
+##############################################################################
+# Generic SCSI devices. These are not yet supported.
+
+#	$MKSET   0 15 $MKDEV $DEVDIR/sg c 21
+
+##############################################################################
+# Direct IDE disks, Secondary channel. These are not yet supported.
+
+#	$MKSET   0 7 $MKDEV $DEVDIR/hdc b 22
+#	$MKSET  8 7 $MKDEV $DEVDIR/hdd b 22
+
+##############################################################################
+# Direct IDE disks, Tertiary channel. These are not yet supported.
+
+#	$MKSET   0 7 $MKDEV $DEVDIR/hde b 33
+#	$MKSET  8 7 $MKDEV $DEVDIR/hdf b 33
+
+##############################################################################
+# Z80-SIO devices. These are not yet supported.
+
+#	$MKSET   0  7 $MKDEV $DEVDIR/scc c 34
+
+##############################################################################
+# Direct IDE disks, Quaternary channel. These are not yet supported.
+
+#	$MKSET   0 7 $MKDEV $DEVDIR/hde b 34
+#	$MKSET  8 7 $MKDEV $DEVDIR/hdf b 34
+
+##############################################################################
+# Direct IDE disks, Quinternary channel. These are not yet supported.
+
+#	$MKSET   0 7 $MKDEV $DEVDIR/hdg b 56
+#	$MKSET  8 7 $MKDEV $DEVDIR/hdh b 56
+
+##############################################################################
+# Direct IDE disks, Septernary channel. These are not yet supported.
+
+#	$MKSET   0 7 $MKDEV $DEVDIR/hdi b 57
+#	$MKSET  8 7 $MKDEV $DEVDIR/hdj b 57
+
+##############################################################################
+# SCSI Media Changer. These are not yet supported.
+
+#	$MKSET   0 15 $MKDEV $DEVDIR/sch c 86
+
+##############################################################################
+# I2C bus drivers. These are not yet supported.
+
+#	$MKSET   0 7  $MKDEV $DEVDIR/i2c c 89
+
+##############################################################################
+# Conrad Electronic Parallel Port Radio Clocks. These are not yet supported.
+
+#	$MKSET	 0 1  $MKDEV $DEVDIR/pcfclock c 181
+
+##############################################################################
+# EOF.
diff -ruN ./elks-stuff/elkscmd/MAKESET ./elks/elkscmd/MAKESET
--- ./elks-stuff/elkscmd/MAKESET	1969-12-31 19:00:00.000000000 -0500
+++ ./elks/elkscmd/MAKESET	2004-04-18 14:54:13.000000000 -0400
@@ -0,0 +1,48 @@
+#!/bin/sh
+
+if [ $# -lt 6 -o $# -gt 7 ]; then
+    echo
+    echo "Usage: makeset min count cmd prefix type major [suffix]"
+    echo
+    echo "where  min     is the minor of the first node to make,"
+    echo "       count   is the number of the last node to make,"
+    echo "       cmd     is the command to make a node,"
+    echo "       prefix  is the node name prefix,"
+    echo "       type    is the type selector for the node,"
+    echo "       major   is the major number for the node,"
+    echo "  and  suffix  is a suffix to append to the node names."
+    echo
+    echo "The following type selectors are supported:"
+    echo
+    echo "   b    Block device, all nodes have numeric suffix."
+    echo "   d    Block device, first node is raw device without numeric suffix."
+    echo
+    echo "   c    Character device with decimal numeric suffix."
+    echo "   x    Character device with hexadecimal numeric suffix."
+    echo
+else
+    N=0
+    while [ $N -le $2 ]; do
+	P=`expr $N + $1`
+	case ".$5" in
+	    .b)     eval $3 $4$N$7 $5 $6 $P
+		    ;;
+	    .c)     eval $3 $4$N$7 $5 $6 $P
+		    ;;
+	    .d)     if [ $N -gt 0 ]; then
+			eval $3 $4$N$7 $5 $6 $P
+		    else
+			eval $3 $4$7 $5 $6 $P
+		    fi
+		    ;;
+	    .x)	    if [ $N -gt 9 ]; then
+			R=`echo 123456789abcdef | cut -b $N`
+			eval $3 $4$R$7 c $6 $P
+		    else
+			eval $3 $4$N$7 c $6 $P
+		    fi
+		    ;;
+	esac
+	N=`expr $N + 1`
+    done
+fi
diff -ruN ./elks-stuff/elkscmd/Make.defs ./elks/elkscmd/Make.defs
--- ./elks-stuff/elkscmd/Make.defs	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/Make.defs	2004-04-18 15:02:51.000000000 -0400
@@ -147,7 +147,7 @@
 MKFS=/sbin/mkfs.minix
 MKFS_OPTS=-n14
 
-MINIX_BOOT=$(DEV86_DIR)/bootblocks
+MINIX_BOOT=./bootblocks
 
 ##############################################################################
 #
@@ -159,7 +159,7 @@
 endif
 
 ifeq ($(TARGET_MODE),LOOP)
-TARGET_MNT=/mnt/elks
+TARGET_MNT=/mnt/test
 LOOP=-o loop
 endif
 
diff -ruN ./elks-stuff/elkscmd/Makefile ./elks/elkscmd/Makefile
--- ./elks-stuff/elkscmd/Makefile	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/Makefile	2004-05-28 15:30:59.000000000 -0400
@@ -46,9 +46,10 @@
 		$(FULL3_TARGET_FS) $(FULL5_TARGET_FS) || true
 	rm -f $(COMB_TARGET_FS) $(ROOT_TARGET_FS) $(ROOT_NET_TARGET_FS) \
 		$(FULL3_TARGET_FS) $(FULL5_TARGET_FS) boot images.zip core
-	rm -rf rootfs_template $(ROOTDIR)
+	rm -rf ./rootfs_template $(ROOTDIR)
+	rm -rf ./bootblocks/*s ./bootblocks/*bin ./bootblocks/*v
 	@for i in $(DIRS); do make -C $$i clean ; done
-	tar xf rootfs_template.tar
+	tar xzf rootfs_template.tar.gz
 
 ###############################################################################
 #
@@ -119,10 +120,13 @@
 # Create relevant parts of other packages.
 
 $(FD_BSECT):
-	make -C $(MINIX_BOOT) bin
+	bcc -Mf -O -DTRY_FLOPPY -DDOTS -o ./bootblocks/minix.s -S ./bootblocks/minix.c
+	as86 -w- -0 -b ./bootblocks/minix.bin -s ./bootblocks/minix.sym ./bootblocks/minix.s
 
 $(KHELPER):
-	make -C $(MINIX_BOOT)
+	as86_encap ./bootblocks/minix.s ./bootblocks/minix.v minix_ -0 -w
+	bcc -Mf -O -DDOTS -o ./bootblocks/minix_elks.s -S ./bootblocks/minix_elks.c
+	as86 -w- -0 -b ./bootblocks/minix_elks.bin -s ./bootblocks/minix_elks.sym ./bootblocks/minix_elks.s
 
 ###############################################################################
 #
@@ -146,8 +150,8 @@
 $(SIBO_TARGET_FS):
 	dd if=/dev/zero of=$(SIBO_TARGET_FS) bs=1024 count=$(SIBO_TARGET_BLKS)
 
-$(ELKSCMD_DIR)/rootfs_template/etc/passwd: rootfs_template.tar
-	tar xpf rootfs_template.tar
+$(ELKSCMD_DIR)/rootfs_template/etc/passwd: rootfs_template.tar.gz
+	tar xzpf rootfs_template.tar.gz
 
 $(ELKSCMD_DIR)/rootfs_template/etc/issue: $(ELKSCMD_DIR)/rootfs_template/etc/passwd $(ELKS_DIR)/Makefile
 	$(ELKSCMD_DIR)/tools/ver.pl $(ELKS_DIR)/Makefile > $(ELKSCMD_DIR)/rootfs_template/etc/issue
@@ -155,37 +159,37 @@
 mount_combfs: $(COMB_TARGET_FS) $(ELKSCMD_DIR)/rootfs_template/etc/issue
 	$(MKFS) $(MKFS_OPTS) $(COMB_TARGET_FS) $(COMB_TARGET_BLKS)
 	mount $(COMB_TARGET_FS) $(TARGET_MNT) $(LOOP)
-	(cd $(ELKSCMD_DIR)/rootfs_template ; tar cf - --exclude CVS *) | \
-		(cd $(TARGET_MNT) ; tar xpvf -)
-	(cd $(TARGET_MNT)/dev ; ./MAKEDEV)
+	cd $(ELKSCMD_DIR)/rootfs_template; tar cf test.tar ./; cp ./test.tar $(TARGET_MNT)
+	cd $(TARGET_MNT); tar -xpf ./test.tar; rm -rf test.tar; cd $(ELKSCMD_DIR)
+	rm -rf ./rootfs_template/test.tar; ./MAKEDEV
 
 mount_full3fs: $(FULL3_TARGET_FS) $(ELKSCMD_DIR)/rootfs_template/etc/issue
 	$(MKFS) $(MKFS_OPTS) $(FULL3_TARGET_FS) $(FULL3_TARGET_BLKS)
 	mount $(FULL3_TARGET_FS) $(TARGET_MNT) $(LOOP)
-	(cd $(ELKSCMD_DIR)/rootfs_template ; tar cf - --exclude CVS *) | \
-		(cd $(TARGET_MNT) ; tar xpvf -)
-	(cd $(TARGET_MNT)/dev ; ./MAKEDEV)
+	cd $(ELKSCMD_DIR)/rootfs_template; tar cf test.tar ./; cp ./test.tar $(TARGET_MNT)
+	cd $(TARGET_MNT); tar -xpf ./test.tar; rm -rf test.tar; cd $(ELKSCMD_DIR)
+	rm -rf ./rootfs_template/test.tar; ./MAKEDEV
 
 mount_full5fs: $(FULL5_TARGET_FS) $(ELKSCMD_DIR)/rootfs_template/etc/issue
 	$(MKFS) $(MKFS_OPTS) $(FULL5_TARGET_FS) $(FULL5_TARGET_BLKS)
 	mount $(FULL5_TARGET_FS) $(TARGET_MNT) $(LOOP)
-	(cd $(ELKSCMD_DIR)/rootfs_template ; tar cf - --exclude CVS *) | \
-		(cd $(TARGET_MNT) ; tar xpvf -)
-	(cd $(TARGET_MNT)/dev ; ./MAKEDEV)
+	cd $(ELKSCMD_DIR)/rootfs_template; tar cf test.tar ./; cp ./test.tar $(TARGET_MNT)
+	cd $(TARGET_MNT); tar -xpf ./test.tar; rm -rf test.tar; cd $(ELKSCMD_DIR)
+	rm -rf ./rootfs_template/test.tar; ./MAKEDEV
 
 mount_rootfs: $(ROOT_TARGET_FS) $(ELKSCMD_DIR)/rootfs_template/etc/issue
-	$(MKFS) $(MKFS_OPTS) $(ROOT_TARGET_FS) $(ROOT_TARGET_BLKS)
+	$(MKFS) -i 200 $(MKFS_OPTS) $(ROOT_TARGET_FS) $(ROOT_TARGET_BLKS)
 	mount $(ROOT_TARGET_FS) $(TARGET_MNT) $(LOOP)
-	(cd $(ELKSCMD_DIR)/rootfs_template ; tar cf - --exclude CVS *) | \
-		(cd $(TARGET_MNT) ; tar xpvf -)
-	(cd $(TARGET_MNT)/dev ; ./MAKEDEV)
+	cd $(ELKSCMD_DIR)/rootfs_template; tar cf test.tar ./; cp ./test.tar $(TARGET_MNT)
+	cd $(TARGET_MNT); tar -xpf ./test.tar; rm -rf test.tar; cd $(ELKSCMD_DIR)
+	rm -rf ./rootfs_template/test.tar; ./MAKEDEV
 
 mount_rootnetfs: $(ROOT_NET_TARGET_FS) $(ELKSCMD_DIR)/rootfs_template/etc/issue
 	$(MKFS) $(MKFS_OPTS) $(ROOT_NET_TARGET_FS) $(ROOT_NET_TARGET_BLKS)
 	mount $(ROOT_NET_TARGET_FS) $(TARGET_MNT) $(LOOP)
-	(cd $(ELKSCMD_DIR)/rootfs_template ; tar cf - --exclude CVS *) | \
-		(cd $(TARGET_MNT) ; tar xpvf -)
-	(cd $(TARGET_MNT)/dev ; ./MAKEDEV)
+	cd $(ELKSCMD_DIR)/rootfs_template; tar cf test.tar ./; cp ./test.tar $(TARGET_MNT)
+	cd $(TARGET_MNT); tar -xpf ./test.tar; rm -rf test.tar; cd $(ELKSCMD_DIR)
+	rm -rf ./rootfs_template/test.tar; ./MAKEDEV
 	
 mount_sibofs: $(SIBO_TARGET_FS) $(ELKSCMD_DIR)/rootfs_template/etc/issue
 	$(MKFS) $(MKFS_OPTS) $(SIBO_TARGET_FS) $(SIBO_TARGET_BLKS)
@@ -210,35 +214,42 @@
 	
 
 comb: mount_combfs $(ELKS_DIR)/arch/i86/boot/Image $(FD_BSECT) $(KHELPER)
+	dd if=/dev/zero of=./flagfile bs=1k count=0
 	@for i in $(DIRS); do make -C $$i min_rfs ; done
+	mkdir $(TARGET_MNT)/boot
 	cp $(ELKS_DIR)/arch/i86/boot/Image $(TARGET_MNT)/boot/linux
 	cp $(KHELPER) $(TARGET_MNT)/boot/boot
 	umount $(COMB_TARGET_FS)
 	dd if=$(FD_BSECT) of=$(COMB_TARGET_FS) bs=512 count=2 conv=notrunc
 
 full3: mount_full3fs $(ELKS_DIR)/arch/i86/boot/Image $(FD_BSECT) $(KHELPER)
+	mkdir $(TARGET_MNT)/bin; cp -p -f $(ELKSNET_DIR)/ktcp/ktcp $(TARGET_MNT)/bin
 	@for i in $(DIRS); do make -C $$i rfs ; done
+	mkdir $(TARGET_MNT)/boot
 	cp $(ELKS_DIR)/arch/i86/boot/Image $(TARGET_MNT)/boot/linux
 	cp $(KHELPER) $(TARGET_MNT)/boot/boot
 	umount $(FULL3_TARGET_FS)
 	dd if=$(FD_BSECT) of=$(FULL3_TARGET_FS) bs=512 count=2 conv=notrunc
 
-full5: mount_full3fs $(ELKS_DIR)/arch/i86/boot/Image $(FD_BSECT) $(KHELPER)
+full5: mount_full5fs $(ELKS_DIR)/arch/i86/boot/Image $(FD_BSECT) $(KHELPER)
 	@for i in $(DIRS); do make -C $$i rfs ; done
+	mkdir $(TARGET_MNT)/boot
 	cp $(ELKS_DIR)/arch/i86/boot/Image $(TARGET_MNT)/boot/linux
 	cp $(KHELPER) $(TARGET_MNT)/boot/boot
-	umount $(FULL3_TARGET_FS)
-	dd if=$(FD_BSECT) of=$(FULL3_TARGET_FS) bs=512 count=2 conv=notrunc
+	umount $(FULL5_TARGET_FS)
+	dd if=$(FD_BSECT) of=$(FULL5_TARGET_FS) bs=512 count=2 conv=notrunc
 
 root: mount_rootfs
+	rm -rf ./flagfile
 	@for i in $(DIRS); do make -C $$i min_rfs ; done
 	umount $(ROOT_TARGET_FS)
 	
 comb_net: mount_rootnetfs $(ELKS_DIR)/arch/i86/boot/Image $(FD_BSECT) $(KHELPER)
 	cd $(ELKSNET_DIR)/ktcp ; \
 	make ; \
-	cp -p -f ktcp $(TARGET_MNT)/bin
+	mkdir $(TARGET_MNT)/bin; cp -p -f ktcp $(TARGET_MNT)/bin
 	@for i in $(DIRS); do make -C $$i net_rfs ; done
+	mkdir $(TARGET_MNT)/boot
 	cp $(ELKS_DIR)/arch/i86/boot/Image $(TARGET_MNT)/boot/linux
 	cp $(KHELPER) $(TARGET_MNT)/boot/boot
 	umount $(ROOT_NET_TARGET_FS)
diff -ruN ./elks-stuff/elkscmd/ash/Makefile ./elks/elkscmd/ash/Makefile
--- ./elks-stuff/elkscmd/ash/Makefile	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/ash/Makefile	2004-04-21 17:14:03.000000000 -0400
@@ -1,6 +1,6 @@
 # Makefile for ash.
 #
-# 19980209 Claudio Matsuoka <claudio@conectiva.com>
+# 19980209 Claudio Matsuoka <claudio@pos.inf.ufpr.br>
 # Modified for ELKS and bcc
 
 BASEDIR=..
@@ -70,13 +70,13 @@
 
 rfs: install
 
-min_rfs: install
+min_rfs:
 
 net_rfs: install
 
 smin_rfs:
 
-install: ash
+install: ash 
 	cp -p ash $(TARGET_MNT)/bin/ash
 	rm -f $(TARGET_MNT)/bin/sh
 	ln $(TARGET_MNT)/bin/ash $(TARGET_MNT)/bin/sh
diff -ruN ./elks-stuff/elkscmd/ash/README.elks ./elks/elkscmd/ash/README.elks
--- ./elks-stuff/elkscmd/ash/README.elks	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/ash/README.elks	1999-02-16 13:22:59.000000000 -0500
@@ -13,7 +13,7 @@
 Change log:
 
 --------------------------------------------------------------
-19980209 Claudio Matsuoka <claudio@conectiva.com>
+19980209 Claudio Matsuoka <claudio@pos.inf.ufpr.br>
 
 (*) Initial port (quite trivial).
     Adjusted makefiles for bcc, defined sig_t as int, kicked out some
@@ -59,7 +59,7 @@
     Very important for some powerful but easy to use IPC.
 
 --------------------------------------------------------------
-19980218 Claudio Matsuoka <claudio@conectiva.com>
+19980218 Claudio Matsuoka <claudio@pos.inf.ufpr.br>
 
 (*) Workaround for bcc miscompilation in bltin/expr.c.
     bcc complained about "invalid indirect to indirect" and "invalid label"
diff -ruN ./elks-stuff/elkscmd/ash/bltin/expr.c ./elks/elkscmd/ash/bltin/expr.c
--- ./elks-stuff/elkscmd/ash/bltin/expr.c	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/ash/bltin/expr.c	1999-02-16 13:22:59.000000000 -0500
@@ -173,7 +173,7 @@
 		  binary = opsp->op;
 		  for (;;) {
 			/*
-			 * 19980218 Claudio Matsuoka <claudio@conectiva.com>
+			 * 19980218 Claudio Matsuoka <claudio@pos.inf.ufpr.br>
 			 * Oh my, this is a nasty one! Once again, bcc
 			 * complains about invalid indirect to indirect
 			 * (mov byte ptr -9[bp],#_op_argflag[bx]).
@@ -280,7 +280,7 @@
  */
 
 /*
- * 19980218 Claudio Matsuoka <claudio@conectiva.com>
+ * 19980218 Claudio Matsuoka <claudio@pos.inf.ufpr.br>
  * So, here's one more workaround for a bcc problem. This time bcc
  * complains about an illegal label when using `goto filetype'.
  */
diff -ruN ./elks-stuff/elkscmd/ash/bltin/regexp.c ./elks/elkscmd/ash/bltin/regexp.c
--- ./elks-stuff/elkscmd/ash/bltin/regexp.c	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/ash/bltin/regexp.c	1999-02-16 13:22:59.000000000 -0500
@@ -260,7 +260,7 @@
 			break;
 		case RE_MATCHED:
 			/*
-			 * 19980218 Claudio Matsuoka <claudio@conectiva.com>
+			 * 19980218 Claudio Matsuoka <claudio@pos.inf.ufpr.br>
 			 * Workaround for bcc compilation problem
 			 */
 			
@@ -310,7 +310,7 @@
 	len = 1;
 	if (*curpat == RE_MATCHED) {
 		/*
-		 * 19980218 Claudio Matsuoka <claudio@conectiva.com>
+		 * 19980218 Claudio Matsuoka <claudio@pos.inf.ufpr.br>
 		 * Yet another workaround for a bcc problem.
 		 */
 #if 0
diff -ruN ./elks-stuff/elkscmd/ash/expand.c ./elks/elkscmd/ash/expand.c
--- ./elks-stuff/elkscmd/ash/expand.c	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/ash/expand.c	1999-02-16 13:22:59.000000000 -0500
@@ -491,7 +491,7 @@
 		break;
 #if 0
 	/*
-	 * 19980209 Claudio Matsuoka <claudio@conectiva.com>
+	 * 19980209 Claudio Matsuoka <claudio@pos.inf.ufpr.br>
 	 * FIXME: Commented out due to problems with bcc (illegal
 	 * indirect to indirect: mov byte ptr -1[si],#_optchar[bx]).
 	 */
diff -ruN ./elks-stuff/elkscmd/ash/parser.c ./elks/elkscmd/ash/parser.c
--- ./elks-stuff/elkscmd/ash/parser.c	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/ash/parser.c	2002-01-13 19:19:04.000000000 -0500
@@ -692,7 +692,7 @@
  */
 
 /*
- * 19980209 Claudio Matsuoka <claudio@conectiva.com>
+ * 19980209 Claudio Matsuoka <claudio@pos.inf.ufpr.br>
  * bcc fails with `return lasttoken = token', returning an invalid value.
  */
 #define RETURN(token)	{ lasttoken = token; return token; }
diff -ruN ./elks-stuff/elkscmd/bc/Makefile ./elks/elkscmd/bc/Makefile
--- ./elks-stuff/elkscmd/bc/Makefile	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/bc/Makefile	2004-04-21 17:43:20.000000000 -0400
@@ -90,7 +90,7 @@
 	install -c -o bin $? $@
 
 rfs: all
-	cp -p bc $(TARGET_MNT)/bin
+	cp -p fbc $(TARGET_MNT)/bin
 
 min_rfs: all
 
diff -ruN ./elks-stuff/elkscmd/bootblocks/minix.c ./elks/elkscmd/bootblocks/minix.c
--- ./elks-stuff/elkscmd/bootblocks/minix.c	1969-12-31 19:00:00.000000000 -0500
+++ ./elks/elkscmd/bootblocks/minix.c	2004-04-18 15:00:49.000000000 -0400
@@ -0,0 +1,943 @@
+/*
+ * This bootblock loads the linux-8086 executable in the file 'boot'
+ * from the root directory of a minix filesystem.
+ *
+ * Copyright (C) 1990-1998 Robert de Bath, distributed under the GPL Version 2
+ * Based on minix filesystem definitions.
+ *
+ * TODO:
+ *       Alter nogood() to do a mov sp,... so the helper program can override
+ *       the panic message.
+ */
+
+#include <a.out.h>
+#include "minix.h"
+
+/* #define DOTS		/* define to have dots printed */
+/* #define HARDDISK	/* Define for hard disk version */
+/* #define TRY_FLOPPY	/* To do trial reads to find floppy size */
+
+/* #define MIN_SPACE	   */
+
+#define zone_shift 0	/* for any < 32M (!= 0 not supported yet, if ever) */
+#define seg_at(k) ((k)*64)
+#define seg_of(p) ((unsigned int)p >>4)
+#define BOOTSEG	  (0x07c0)
+#define LOADSEG   (0x1000)
+#define ORGADDR   (0x0500)
+
+#ifdef HARDDISK
+#define get_now()
+#endif
+
+#ifdef zone_shift
+#if zone_shift == 0
+#define load_zone load_block
+#endif
+#else
+static short     zone_shift;
+#endif
+
+#asm 
+BOOTADDR = 0x7c00
+
+.text
+! Apparently on startup the only things we can assume are that we start at
+! `start` (ABS addr $07C00) and the boot sector is in the segment.
+
+! So first set CS=DS=ES=SS=0
+! The we move this to $0500 and put the stack at the top of the first 64k.
+! The directory 'file' is loaded $1500 and scanned there.
+! The final executable will be loaded in the 2nd 64k chunk.
+!
+org ORGADDR	! The lowest available address.
+start:
+#ifndef MIN_SPACE
+  include sysboot.s
+
+org start	! The lowest available address, again.
+  j	skip_vars
+
+org dos_sysid
+  .ascii "MINIXFS BOOT (C) 1990-1999,  Robert de Bath"
+
+  org codestart
+#endif
+
+! A few variables we need to know the positions of for patching, so export
+! them and as86_encaps will make some variables. Put them here at the start
+! so they're in the same place for both Floppy and harddisk versions as they
+! will be used by helper programs.
+
+export	inode			! Inode to search
+inode:
+_inode: .word	1		! ROOT_INODE
+
+#ifndef MIN_SPACE
+export	dinode			! Inode of directory file was found in.
+dinode:
+_dinode: .word	1		! ROOT_INODE
+#endif
+
+export	bootfile		! File to boot, make this whatever you like,
+bootfile:			! 'boot' is good, 'linux' too.
+_bootfile:
+   .ascii	"boot"
+   .byte	0,0,0,0,0,0,0,0,0,0
+
+skip_vars:
+#ifdef HARDDISK
+  mov	bx,[si+8]	! Fetch the linear address of part from DS:SI
+  mov	dh,[si+10]	! DL is drive number
+#endif
+
+  xor	ax,ax		! All segments are zero, first 64k of mem.
+  mov	ds,ax
+  mov	es,ax
+  mov	ss,ax
+  mov	sp,ax
+
+#ifndef HARDDISK
+loopy:
+  mov	ax,#$0203		! Read 3 sectors, code + superblock.
+  mov	bx,#start		! Where this _should_ be
+  mov	cx,#$0001		! From sector 1
+  xor	dx,dx			! Of the floppy drive head zero
+  int	$13
+  jc	loopy
+#else
+
+  mov	cx,#$100	! Move 256 words
+  mov	si,#BOOTADDR	! From default BB
+  mov	di,#ORGADDR	! To the correct address.
+  rep
+   movsw
+
+  xchg	dl,dh
+  mov	[bootpart],bx	! Save the partition sector offset (and drive)
+  mov	[bootpart+2],dx
+
+  ! Read next 2 sectors of hd.
+  xor	dx,dx
+  mov	cx,#1
+  mov	bx,#ORGADDR+$200
+  mov	al,#2
+
+  call	load_sect
+#endif
+
+  jmpi	code,#0
+
+#endasm
+
+/* \f/* */
+/****************************************************************************/
+/* Section cdef */
+/****************************************************************************/
+
+/* The name of the file and inode to start */
+extern char bootfile[];
+extern inode_nr inode;
+extern inode_nr dinode;
+
+/* For multi-sector reads */
+extern sect_nr lastsect;
+extern sect_nr firstsect;
+extern unsigned loadaddr;
+extern unsigned loadcount;
+
+/* Keep track of zones to load */
+extern zone_nr * next_zone;
+extern zone_nr * end_zone;
+extern zone_nr   indirect;
+
+/* Where to load zones */
+extern unsigned ldaddr;
+
+/* Directory reading */
+extern dir_struct * dirptr;
+extern unsigned flength;
+extern unsigned dir_32;
+
+#ifndef HARDDISK
+/* The 'shape' of the floppy - intuit from superblock or try to read max */
+extern unsigned n_sectors;
+#endif
+
+extern struct super_block b_super;
+extern d_inode            b_inode[INODES_PER_BLOCK];
+extern zone_nr            b_zone[NR_INDIRECTS];
+extern dir_struct         directory[];
+
+/* \f/* */
+/****************************************************************************/
+/* Section adef */
+/****************************************************************************/
+
+#asm
+.text
+
+#ifdef HARDDISK
+bootpart:   .long	0
+#else
+_loadcount: .word	0
+_firstsect: .word	0
+_loadaddr:  .word	0
+_lastsect:  .word	0
+#endif
+
+  block start+0x400
+_b_super:	.blkb 512
+
+#ifndef MIN_SPACE
+export helper
+helper:		.blkb 1024
+export helper_end
+helper_end:
+#endif
+
+_b_inode:	.blkb 1024
+_b_zone:	.blkb 1024
+
+#ifdef MIN_SPACE
+temp_space:	.blkb 512
+#endif
+probe_buf:
+_directory:	.blkb 32768
+  endb
+
+#endasm
+
+/* \f/* */
+/****************************************************************************/
+/* Section nogood */
+/****************************************************************************/
+/* #if defined(HARDDISK) && !defined(SKIPBOOT) */
+#ifndef SKIPBOOT
+static
+nogood()
+{
+#asm
+  mov	si,#fail_fs
+min_nextc:
+  lodsb
+  cmp	al,#0
+  jz	min_eos
+  mov	bx,#7
+  mov	ah,#$E		! Can't use $13 cause that's AT+ only!
+  int	$10
+  jmp	min_nextc
+min_eos:		! Wait for a key then reboot
+  xor	ax,ax
+  int	$16
+  jmpi	$0,$FFFF	! Reboot.
+
+fail_fs:
+  .byte		13,10
+#if defined(HARDDISK)
+  .asciz	"Initial boot failed, press return to reboot\r\n"
+#else
+  .asciz	"Boot failed:"
+#endif
+#endasm
+}
+
+#else
+
+static
+nogood()
+{
+/* This didn't work, chain the boot sector of the HD */
+#asm
+  push	cs
+  pop	es
+hcode:
+  mov	ax,#$0201		! Read 1 sector
+  mov	bx,#BOOTADDR		! In the boot area
+  mov	cx,#$0001		! From sector 1
+  mov	dx,#$0080		! Of the hard drive head zero
+  int	$13
+  jc	hcode			! Keep trying forever!
+  jmpi	BOOTADDR,0
+#endasm
+}
+#endif
+
+/* \f/* */
+/****************************************************************************/
+/* Section hd_sect */
+/****************************************************************************/
+#ifdef HARDDISK
+#asm
+!
+! Load AL sectors from linear sector DX:CX into location ES:BX
+! Linear sector zero is at [bootpart]
+! This loads one sector at a time, but that's OK cause even in the _very_
+! worst case it'll take no more that 5 seconds to load a 16 bit executable.
+!
+load_sect:
+  add	cx,[bootpart]
+  adc	dx,[bootpart+2]
+moresect:
+  cmp	al,#0
+  jnz	onesect
+  clc
+  ret
+
+! Load one sector...
+onesect:
+  push	ax	! Save lots
+  push	di
+  push	si
+  push	cx	! Drive and sector.
+  push	dx
+
+  push	es	! Load location
+  push	bx
+
+  push	cx	! Drive and sector again.
+  push	dx
+
+  ! Fetch drive 'shape'
+  mov	ah,#8
+  mov	dl,dh
+  int	$13	! DX:CX = drive specification
+  jc	_nogood
+
+  and	cx,#$3F	! Get sector count => DI
+  mov	di,cx
+
+  xor	dl,dl	! Get head count  => SI
+  xchg	dl,dh
+  inc	dx
+  mov	si,dx
+  
+  pop	dx	! Get back drive and sector
+  pop	ax
+
+  mov	bl,dh	! Save drive
+  xor	dh,dh
+
+  div	di	! DX=sector, AX=track number
+  mov	cx,dx
+  inc	cl	! CL=sector number
+
+  xor	dx,dx
+  div	si	! DX=head, AX=cylinder
+
+  mov	dh,dl
+  mov	dl,bl	! DX for int 1302
+
+  xchg	al,ah
+  ror	al,#1
+  ror	al,#1
+  or	cx,ax	! CX for int 1302
+
+  pop	bx	! ES:BX for int 1302
+  pop	es
+
+  mov	di,#5	! Lots of retries for a hd
+retry:
+  mov	ax,#$0201
+  int	$13
+  jnc	got_hd_sect
+
+  xor	ax,ax	! Reset between each try.
+  int	$13
+
+  dec	di
+  jnz	retry
+  br	_nogood
+
+got_hd_sect:
+  pop	dx
+  pop	cx
+  pop	si
+  pop	di
+  pop	ax
+
+  dec	al
+  add	cx,#1
+  adc	dh,#0
+  add	bh,#2
+  jmp	moresect
+#endasm
+#endif
+
+/****************************************************************************/
+/* This is the end of the parts that MUST be in the first sector            */
+/* From here down the functions can safely be in any order.                 */
+/****************************************************************************/
+
+/* \f/* */
+/****************************************************************************/
+/* Section fd_block */
+/****************************************************************************/
+#ifndef HARDDISK
+static
+load_block(address, blkno)
+unsigned address, blkno;
+{
+   register sect_nr sectno;
+   if(blkno == 0) { zero_block(address); return; }
+#ifdef DOTS
+   prt_dot();
+#endif
+
+   sectno = (sect_nr)blkno * 2;
+   load_sect(address,    sectno);
+   load_sect(address+32, sectno+1);
+}
+#endif
+
+/****************************************************************************/
+/* Section fd_bpb */
+/****************************************************************************/
+#ifndef HARDDISK
+#asm
+_set_bpb:
+#ifdef MIN_SPACE
+bios_tabl=temp_space		! Temp space.
+bios_disk=temp_space+4		!
+#else
+bios_tabl=dosfs_stat		! Temp space.
+bios_disk=dosfs_stat+4		!
+#endif
+
+#ifndef __CALLER_SAVES__
+  push	si
+  push	di
+#endif
+
+  mov	di,#bios_disk
+  mov	bx,#0x78		
+! 0:bx is parameter table address
+
+  push	ds
+  push	di
+
+  mov	si,[bx]
+  mov	ax,[bx+2]
+  mov	[bios_tabl],si
+  mov	[bios_tabl+2],ax
+  push	ax
+
+  pop	ds
+! ds:si is source
+
+! copy 12 bytes
+  mov	cl,#6			
+  cld
+  rep
+  movsw
+
+  pop	di
+  pop	ds
+  mov	ax,[_n_sectors]
+  movb	4[di],al		! patch sector count
+
+  mov	[bx],di
+  mov	2[bx],es
+
+#ifndef __CALLER_SAVES__
+  pop	si
+  pop	di
+#endif
+  ret
+
+_unset_bpb:
+! 0:0x78 is parameter table address
+
+  mov	ax,[bios_tabl]
+  mov	[0x78],ax
+  mov	ax,[bios_tabl+2]
+  mov	[0x78+2],ax
+  ret
+
+#endasm
+#endif
+
+/****************************************************************************/
+/* Section fd_get_now */
+/****************************************************************************/
+#ifndef HARDDISK
+static
+get_now()
+{
+#asm
+  mov	si,#5
+retry_get:
+  xor	dx,dx
+  mov	cx,[_firstsect]
+  shr	ch,#1
+  adc	dh,#0
+  mov	es,[_loadaddr]
+  xor	bx,bx
+  mov	ax,[_loadcount]
+  test	ax,ax
+  jz	no_load
+  mov	ah,#2
+  int	$13		! Try fetch
+  jnc	no_load
+  xor	ax,ax		! Bad, retry.
+  int	$13
+  dec	si
+  jnz	retry_get
+  br	_nogood
+no_load:
+  xor	ax,ax
+  mov	[_loadcount],ax
+#endasm
+}
+#endif
+
+/****************************************************************************/
+/* Section fd_probe */
+/****************************************************************************/
+#ifndef HARDDISK
+#ifdef TRY_FLOPPY
+#asm
+!-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+!
+! These are the number of sectors per track that will be scanned for.
+! For 3.5 inch floppies 36 is 2.88 Mb, 18 is 1.44Mb, 21 is 1.68Mb on
+! a 1.44Mb floppy drive. 15 and 9 are for 5.25 inch floppies.
+
+disksizes: .byte 36,21,18,15,9
+
+! It seems that there is no BIOS call to get the number of sectors.  Guess
+! 36 sectors if sector 36 can be read, 18 sectors if sector 18 can be read,
+! 15 if sector 15 can be read.  Otherwise guess 9.
+
+_probe_sectors:
+	mov	si,#disksizes		! table of sizes to try
+
+probe_loop:
+	lodsb
+	cbw				! extend to word
+	mov	_n_sectors, ax
+	cmp	al,#9
+	je	got_sectors		! if all else fails, try 9
+	xchg	ax, cx			! cx = track and sector
+	xor	dx, dx			! drive 0, head 0
+	mov	bx,#probe_buf 		! address after setup (es = cs)
+	mov	ax,#0x0201		! service 2, 1 sector
+	int	0x13
+	jc	probe_loop		! try next value
+got_sectors:
+
+	ret
+#endasm
+#else
+probe_sectors()
+{
+   /* Guess the number of sectors based on the size of the file system */
+   if( (n_sectors = b_super.s_nzones / 40) > 11 ) n_sectors /= 2;
+}
+#endif
+#endif
+
+/****************************************************************************/
+/* Section fd_sect */
+/****************************************************************************/
+#ifndef HARDDISK
+static
+load_sect(address, sectno)
+unsigned address;
+sect_nr sectno;
+{
+   register sect_nr nsect;
+
+   nsect   =  sectno%n_sectors +1;
+   sectno /= n_sectors;
+   nsect  |= (sectno<<8);
+
+   if( loadcount )
+   {
+      lastsect++;
+      if( ( address & 4095 ) && nsect == lastsect )
+      {
+         loadcount++;
+         return;
+      }
+      get_now();
+   }
+
+   lastsect  = firstsect = nsect;
+   loadaddr  = address;
+   loadcount = 1;
+}
+#endif
+
+/****************************************************************************/
+/* Section fd_zeroblk */
+/****************************************************************************/
+#ifndef HARDDISK
+static
+zero_block(address)
+{
+#asm
+#if __FIRST_ARG_IN_AX__
+  mov	es,ax
+#else
+  mov	bx,sp
+  mov	es,[bx+2]
+#endif
+  push	di
+  mov	cx,#512
+  xor	ax,ax
+  mov	di,ax
+  rep
+   stosw
+  pop	di
+#endasm
+}
+#endif
+
+/****************************************************************************/
+/* Section hd_block */
+/****************************************************************************/
+#ifdef HARDDISK
+/*----------------------------------*/
+/* Hard disk block driver           */
+/*----------------------------------*/
+
+#asm
+_load_block:
+  push	bp
+  mov	bp,sp
+#if __FIRST_ARG_IN_AX__
+  ! Fetch load location
+  mov	es,ax
+
+  ! Test for block zero
+  mov	ax,4[bp]
+#else
+  ! Fetch load location
+  mov	ax,[bp+4]
+  mov	es,ax
+
+  ! Test for block zero
+  mov	ax,6[bp]
+#endif
+  test	ax,ax
+  jne 	real_block
+
+  ! Iff block zero, zap memory
+  push	di
+  mov	cx,#512
+  xor	ax,ax
+  mov	di,ax
+  rep
+   stosw
+  pop	di
+
+func_exit:
+  mov	sp,bp
+  pop	bp
+  ret
+
+real_block:
+#ifdef DOTS
+  push	ax
+  call	_prt_dot
+  pop	ax
+#endif
+
+! Load a real block.
+  mov	cx,ax
+  xor	dx,dx
+  shl	cx,#1
+  rcl	dx,#1
+
+  xor	bx,bx
+  mov	al,#2
+  call	load_sect 
+
+  j	func_exit
+#endasm
+#endif
+
+/****************************************************************************/
+/* Section main */
+/****************************************************************************/
+#asm
+code:
+  call	_loadprog
+  call	_runprog
+  br	_nogood
+
+#endasm
+
+/****************************************************************************/
+/* Section prt_dots */
+/****************************************************************************/
+#ifdef DOTS
+#asm
+_prt_crlf:
+  mov   al,#13
+  call	outch
+  mov	al,#10
+  j	outch
+_prt_dot:
+  mov   al,#'.
+outch:
+  mov	ah,#$0E
+  mov	bx,#7
+  int	$10
+  ret
+#endasm
+#endif
+
+/****************************************************************************/
+/* Section end_1 */
+/****************************************************************************/
+#if defined(HARDDISK) || !defined(MIN_SPACE)
+#asm
+end_of_part1:
+#ifdef HARDDISK
+  if *>start+0x1FE	! Leave space for magic
+#else
+  if *>start+0x200
+#endif
+     fail! Part 1 too large!
+  endif
+  .blkb	0x200+start-*
+#endasm
+#endif
+
+/****************************************************************************/
+/* Section prog_load */
+/****************************************************************************/
+
+loadprog()
+{
+#ifdef DOTS
+   prt_dot();
+#endif
+   if( b_super.s_magic == SUPER_MAGIC2 ) 
+      dir_32 = 1;
+   else if( b_super.s_magic == SUPER_MAGIC )
+      dir_32 = 0;
+   else
+      nogood();
+
+#ifdef zone_shift
+   if( zone_shift != b_super.s_log_zone_size) nogood();
+#else
+   zone_shift = b_super.s_log_zone_size;
+#endif
+
+#ifndef HARDDISK
+   probe_sectors();
+
+   /* if( (n_sectors = b_super.s_nzones / 40) > 11 ) n_sectors /= 2; */
+
+   set_bpb();
+#endif
+
+try_again:;
+   inode--;
+   load_block(seg_of(b_inode), inode/INODES_PER_BLOCK
+                          + b_super.s_imap_blocks
+                          + b_super.s_zmap_blocks
+                          + 2);
+   get_now();
+
+   ldaddr = LOADSEG;		/* Load at 64k mark */
+
+   {
+      register d_inode * i_ptr;
+      i_ptr = b_inode + inode%INODES_PER_BLOCK;
+      next_zone = i_ptr->i_zone;
+      flength   = i_ptr->i_size;
+      if( (i_ptr->i_mode & I_TYPE) == I_DIRECTORY )
+      {
+	 ldaddr = seg_of(directory);
+#ifndef MIN_SPACE
+	 dinode  = inode+1;	/* Remember current directory */
+#endif
+	 inode  = 0;		/* Mark - we've no _file_ inode yet */
+      }
+   }
+
+   end_zone = next_zone+NR_DZONE_NUM;
+   load_zone(seg_of(b_zone), (indirect = next_zone[NR_DZONE_NUM]));
+   get_now();
+
+   for(;;)
+   {
+      if( next_zone >= end_zone )
+      {
+         if( indirect != 0 )
+         {
+            next_zone = b_zone;
+            end_zone  = next_zone + NR_INDIRECTS;
+            indirect  = 0;
+            continue;
+         }
+	 break;
+      }
+      load_zone(ldaddr, *next_zone);
+      next_zone++;
+      ldaddr += (seg_at(1) << zone_shift);
+   }
+   get_now();
+
+#ifdef DOTS
+   prt_crlf();
+#endif
+   if(!inode)
+   {
+      dirptr = directory;
+      while(flength > 0)
+      {
+register char * s = bootfile;
+register char * p = dirptr->d_name;
+
+	 if( dirptr->d_inum )
+	 {
+	    for(;;)
+	    {
+	       if( *s == '\0')
+	       {
+		  if(*p == '\0')
+		  {
+		     inode = dirptr->d_inum;
+		     goto try_again;
+		  }
+		  break;
+	       }
+	       if( *s++ != *p++ ) break;
+	    }
+	 }
+	 flength -= 16;
+	 dirptr++;
+	 if( dir_32 )
+	 {
+	    flength -= 16;
+	    dirptr++;
+	 }
+      }
+      nogood();
+   }
+#ifndef HARDDISK
+   unset_bpb();
+#endif
+}
+
+/****************************************************************************/
+/* Section prog_run */
+/****************************************************************************/
+static
+runprog()
+{
+/* It all worked, run the loaded executable */
+#asm
+#ifdef HARDDISK
+  mov	dx,[bootpart+2]
+  xchg	dh,dl		! DX => hard drive
+  push	[bootpart]	! CX => partition offset
+  xor	si,si
+#else
+  xor	dx,dx		! DX=0 => floppy drive
+  push	dx		! CX=0 => partition offset = 0
+  mov	si,[_n_sectors]	! Save for monitor.out
+#endif
+
+  mov	bx,#LOADSEG
+  mov	ds,bx		! DS = loadaddress
+  xor	di,di		! Zero
+  mov	ax,[di]
+  cmp	ax,#0x0301	! Right magic ?
+  jnz	binfile		! Yuk ... assume .SYS
+  inc	bx
+  inc	bx		! bx = initial CS
+  mov	ax,[di+2]
+  and	ax,#$20		! Is it split I/D ?
+  jz	impure		! No ...
+  mov	cl,#4
+  mov	ax,[di+8]
+  shr	ax,cl
+impure:
+  pop	cx
+  add	ax,bx
+  mov	ss,ax
+  mov	sp,[di+24]	! Chmem value
+  mov	ds,ax
+binfile:
+
+  push	bx
+  push	di		!  jmpi	0,#LOADSEG+2
+  retf
+#endasm
+}
+
+/****************************************************************************/
+/* Section sys_libs */
+/****************************************************************************/
+#asm
+! These functions are pulled from the C library.
+libstuff:
+imodu:
+	xor	dx,dx
+	div	bx
+	mov	ax,dx		! instruction queue full so xchg slower
+	ret
+idiv_u:
+	xor	dx,dx
+	div	bx
+	ret
+#ifndef zone_shift
+isl:
+islu:
+	mov	cl,bl
+	shl	ax,cl
+	ret
+#endif
+libend:
+#endasm
+
+/****************************************************************************/
+/* Section sys_vars */
+/****************************************************************************/
+#asm
+#ifdef MIN_SPACE
+  block	temp_space+64
+#endif
+vars:
+#ifndef HARDDISK
+_n_sectors:	.blkw 1
+#endif
+_next_zone:	.blkw 1
+_end_zone:	.blkw 1
+_indirect:	.blkw 1
+_ldaddr:	.blkw 1
+_dirptr:	.blkw 1
+_flength:	.blkw 1
+_dir_32:	.blkw 1
+varend:
+#ifdef MIN_SPACE
+  endb
+#endif
+#endasm
+
+/****************************************************************************/
+/* Section end_2 */
+/****************************************************************************/
+#asm
+end_of_prog:
+  if *>start+0x400
+     fail! Part 2 too large!
+  endif
+
+  if end_of_prog<start+0x201
+  .blkb	0x400+start-*
+  else
+  .blkb	0x3FF+start-*
+  .byte 0xFF
+  endif
+
+#endasm
+
+/****************************************************************************/
diff -ruN ./elks-stuff/elkscmd/bootblocks/minix.h ./elks/elkscmd/bootblocks/minix.h
--- ./elks-stuff/elkscmd/bootblocks/minix.h	1969-12-31 19:00:00.000000000 -0500
+++ ./elks/elkscmd/bootblocks/minix.h	2004-04-18 15:00:59.000000000 -0400
@@ -0,0 +1,104 @@
+/****************************************************************************/
+/* Super block table.  The root file system and every mounted file system
+ * has an entry here.  The entry holds information about the sizes of the bit
+ * maps and inodes.  The s_ninodes field gives the number of inodes available
+ * for files and directories, including the root directory.  Inode 0 is 
+ * on the disk, but not used.  Thus s_ninodes = 4 means that 5 bits will be
+ * used in the bit map, bit 0, which is always 1 and not used, and bits 1-4
+ * for files and directories.  The disk layout is:
+ *
+ *      Item        # blocks
+ *    boot block      1
+ *    super block     1
+ *    inode map     s_imap_blocks
+ *    zone map      s_zmap_blocks
+ *    inodes        (s_ninodes + 1 + INODES_PER_BLOCK - 1)/INODES_PER_BLOCK
+ *    unused        whatever is needed to fill out the current zone
+ *    data zones    (s_nzones - s_firstdatazone) << s_log_zone_size
+ *
+ * A super_block slot is free if s_dev == NO_DEV. 
+ */
+
+#define BLOCK_SIZE      1024	/* # bytes in a disk block */
+
+/* Flag bits for i_mode in the inode. */
+#define I_TYPE          0170000	/* this field gives inode type */
+#define I_REGULAR       0100000	/* regular file, not dir or special */
+#define I_BLOCK_SPECIAL 0060000	/* block special file */
+#define I_DIRECTORY     0040000	/* file is a directory */
+#define I_CHAR_SPECIAL  0020000	/* character special file */
+#define I_SET_UID_BIT   0004000	/* set effective uid on exec */
+#define I_SET_GID_BIT   0002000	/* set effective gid on exec */
+#define ALL_MODES       0006777	/* all bits for user, group and others */
+#define RWX_MODES       0000777	/* mode bits for RWX only */
+#define R_BIT           0000004	/* Rwx protection bit */
+#define W_BIT           0000002	/* rWx protection bit */
+#define X_BIT           0000001	/* rwX protection bit */
+#define I_NOT_ALLOC     0000000	/* this inode is free */
+
+/* Type definitions */
+typedef unsigned short unshort;	/* must be 16-bit unsigned */
+typedef unshort block_nr;	/* block number */
+typedef unshort inode_nr;	/* inode number */
+typedef unshort zone_nr;	/* zone number */
+typedef unshort bit_nr;		/* if inode_nr & zone_nr both unshort,
+				   then also unshort, else long */
+
+typedef unshort sect_nr;
+
+typedef long zone_type;		/* zone size */
+typedef unshort mask_bits;	/* mode bits */
+typedef unshort dev_nr;		/* major | minor device number */
+typedef char links;		/* number of links to an inode */
+typedef long real_time;		/* real time in seconds since Jan 1, 1970 */
+typedef long file_pos;		/* position in, or length of, a file */
+typedef short uid;		/* user id */
+typedef char gid;		/* group id */
+
+/* Tables sizes */
+#define NR_ZONE_NUMS       9	/* # zone numbers in an inode */
+#define NAME_SIZE         14	/* # bytes in a directory component */
+
+/* Miscellaneous constants */
+#define SUPER_MAGIC   0x137F	/* magic number contained in super-block */
+#define SUPER_MAGIC2  0x138F	/* Secondary magic 30 char names */
+
+#define BOOT_BLOCK  (block_nr)0	/* block number of boot block */
+#define SUPER_BLOCK (block_nr)1	/* block number of super block */
+#define ROOT_INODE  (inode_nr)1	/* inode number for root directory */
+
+/* Derived sizes */
+#define NR_DZONE_NUM     (NR_ZONE_NUMS-2)		/* # zones in inode */
+#define INODES_PER_BLOCK (BLOCK_SIZE/sizeof(d_inode))	/* # inodes/disk blk */
+#define NR_INDIRECTS     (BLOCK_SIZE/sizeof(zone_nr))	/* # zones/indir blk */
+#define INTS_PER_BLOCK   (BLOCK_SIZE/sizeof(int))	/* # integers/blk */
+
+struct super_block {
+  inode_nr s_ninodes;		/* # usable inodes on the minor device */
+  zone_nr s_nzones;		/* total device size, including bit maps etc */
+  unshort s_imap_blocks;	/* # of blocks used by inode bit map */
+  unshort s_zmap_blocks;	/* # of blocks used by zone bit map */
+  zone_nr s_firstdatazone;	/* number of first data zone */
+  short s_log_zone_size;	/* log2 of blocks/zone */
+  file_pos s_max_size;		/* maximum file size on this device */
+  short s_magic;		/* magic number to recognize super-blocks */
+
+} ;
+
+/* Type definitions local to the File System. */
+typedef struct {		/* directory entry */
+  inode_nr d_inum;		/* inode number */
+  char d_name[NAME_SIZE];	/* character string */
+} dir_struct;
+
+/* Declaration of the disk inode used in rw_inode(). */
+typedef struct {		/* disk inode.  Memory inode is in "inotab.h" */
+  mask_bits i_mode;		/* file type, protection, etc. */
+  uid i_uid;			/* user id of the file's owner */
+  file_pos i_size;		/* current file size in bytes */
+  real_time i_modtime;		/* when was file data last changed */
+  gid i_gid;			/* group number */
+  links i_nlinks;		/* how many links to this file */
+  zone_nr i_zone[NR_ZONE_NUMS];	/* block nums for direct, ind, and dbl ind */
+} d_inode;
+
diff -ruN ./elks-stuff/elkscmd/bootblocks/minix.sym ./elks/elkscmd/bootblocks/minix.sym
--- ./elks-stuff/elkscmd/bootblocks/minix.sym	1969-12-31 19:00:00.000000000 -0500
+++ ./elks/elkscmd/bootblocks/minix.sym	2004-05-09 13:36:50.000000000 -0400
@@ -0,0 +1,137 @@
++ 00000500 ----- $start
++ 00000900 ----- $end
+0 FFFFFFFE ---A- ..FFFF
+0 000005B7 ---A- .1
+0 000007A0 ---A- .10
+0 0000078A ---A- .11
+0 00000813 ---A- .12
+0 00000811 ---A- .13
+0 000007C6 ---A- .14
+0 000007F2 ---A- .15
+0 000007D0 ---A- .16
+0 000007F0 ---A- .17
+0 000007D7 ---A- .18
+0 00000896 ---A- .19
+0 00000823 ---A- .1A
+0 00000893 ---A- .1B
+0 0000088C ---A- .1C
+0 0000082B ---A- .1D
+0 00000869 ---A- .1E
+0 0000083F ---A- .1F
+0 000005AD ---A- .2
+0 00000869 ---A- .20
+0 00000867 ---A- .21
+0 0000083F ---A- .22
+0 0000085E ---A- .23
+0 00000845 ---A- .24
+0 0000085C ---A- .25
+0 0000084B ---A- .26
+0 00000867 ---A- .27
+0 00000865 ---A- .28
+0 0000088C ---A- .29
+0 0000087E ---A- .2A
+0 00000893 ---A- .2B
+0 000006B7 ---A- .3
+0 00000697 ---A- .4
+0 000006B4 ---A- .5
+0 000006AC ---A- .6
+0 000006A3 ---A- .7
+0 00000716 ---A- .8
+0 0000070E ---A- .9
+0 00000728 ---A- .A
+0 00000725 ---A- .B
+0 0000071E ---A- .C
+0 00000728 ---A- .D
+0 00000732 ---A- .E
+0 0000072F ---A- .F
+0 00000738 ---A- .FFFF
+0 00007C00 ---A- BOOTADDR
+0 00000F00 ---A- _b_inode
+0 00000900 ---A- _b_super
+0 00001300 ---A- _b_zone
+0 00000542 ---A- _bootfile
+0 00000540 ---A- _dinode
+0 000008E9 ---A- _dir_32
+0 00001700 ---A- _directory
+0 000008E5 ---A- _dirptr
+0 000008DF ---A- _end_zone
+0 00000570 ---A- _firstsect
+0 000008E7 ---A- _flength
+0 00000615 ---A- _get_now
+0 000008E1 ---A- _indirect
+0 0000053E ---A- _inode
+0 00000574 ---A- _lastsect
+0 000008E3 ---A- _ldaddr
+0 000005A0 ---A- _load_block
+0 00000665 ---A- _load_sect
+0 00000572 ---A- _loadaddr
+0 0000056E ---A- _loadcount
+0 00000700 E--A- _loadprog
+0 000008DB ---A- _n_sectors
+0 000008DD ---A- _next_zone
+0 00000576 ---A- _nogood
+0 0000064B ---A- _probe_sectors
+0 000006E7 ---A- _prt_crlf
+0 000006F0 ---A- _prt_dot
+0 0000089B ---A- _runprog
+0 000005DF ---A- _set_bpb
+0 00000608 ---A- _unset_bpb
+0 000006D0 ---A- _zero_block
+0 000008CB ---A- binfile
+0 0000050F ---A- bios_disk
+0 0000050B ---A- bios_tabl
+0 000006FE E--A- bootblock_magic
+0 00000542 E--A- bootfile
+0 000006DE ---A- code
+0 0000053E E--A- codestart
+0 00000540 E--A- dinode
+0 00000646 ---A- disksizes
+0 00000536 ---A- dos4_fattype
+0 0000052B ---A- dos4_label
+0 00000520 ---A- dos4_maxsect
+0 00000524 ---A- dos4_phy_drive
+0 00000527 ---A- dos4_serial
+0 0000050D ---A- dos_clust
+0 00000516 ---A- dos_fatlen
+0 0000051A ---A- dos_heads
+0 0000051C ---A- dos_hidden
+0 00000513 ---A- dos_maxsect
+0 00000515 ---A- dos_media
+0 00000510 ---A- dos_nfat
+0 00000511 ---A- dos_nroot
+0 0000050E ---A- dos_resv
+0 0000050B ---A- dos_sect
+0 00000518 ---A- dos_spt
+0 00000503 ---A- dos_sysid
+0 0000050B E--A- dosfs_stat
+0 000006FA ---A- end_of_part1
+0 000008EB ---A- end_of_prog
+0 00000590 ---A- fail_fs
+0 00000527 ---A- floppy_temp
+0 00000664 ---A- got_sectors
+0 00000B00 E--A- helper
+0 00000F00 E--A- helper_end
+0 000008D6 ---A- idiv_u
+0 000008CF ---A- imodu
+0 000008C1 ---A- impure
+0 0000053E E--A- inode
+0 000008DB ---A- libend
+0 000008CF ---A- libstuff
+0 0000055A ---A- loopy
+0 00000587 ---A- min_eos
+0 00000579 ---A- min_nextc
+0 00000640 ---A- no_load
+0 000006F2 ---A- outch
+0 000006BE ---A- partition_1
+0 000006CE ---A- partition_2
+0 000006DE ---A- partition_3
+0 000006EE ---A- partition_4
+0 00001700 ---A- probe_buf
+0 0000064E ---A- probe_loop
+0 00000618 ---A- retry_get
+0 00000550 ---A- skip_vars
+0 00000500 ---A- start
+0 00000000 ---R- sysboot.s
+0 00000500 ---A- sysboot_start
+0 000008EB ---A- varend
+0 000008DB ---A- vars
diff -ruN ./elks-stuff/elkscmd/bootblocks/minix_elks.c ./elks/elkscmd/bootblocks/minix_elks.c
--- ./elks-stuff/elkscmd/bootblocks/minix_elks.c	1969-12-31 19:00:00.000000000 -0500
+++ ./elks/elkscmd/bootblocks/minix_elks.c	2004-04-18 15:04:37.000000000 -0400
@@ -0,0 +1,152 @@
+
+#define __ASSEMBLY__
+
+#asm
+#include "minix.v"
+
+! Must match minix.c ...
+#define LOADSEG   (0x1000)
+
+! Must match ELKS
+#define ELKS_INITSEG	(0x0100)
+#define ELKS_SYSSEG	(0x1000)
+
+org minix_helper
+
+  push	cs
+  pop	ds
+  xor	ax,ax
+  mov	es,ax
+  mov	ss,ax
+  mov	sp,ax
+
+  mov	cx,#$200		! Move 512 words
+  mov	si,ax			! Current load address.
+  mov	di,#minix_helper	! To the correct address.
+  rep
+   movsw
+
+  mov	ds,ax
+  jmpi	code,0
+
+msg_p2:
+  .asciz	"\r\nLoading ELKS kernel\r\n"
+
+msg_p3:
+  .asciz	"Starting ...\r\n"
+
+aint_elks:
+  .asciz	"Not an ELKS image!"
+
+elks_name:
+  .asciz	"linux"
+  .byte		0,0,0,0,0,0,0,0,0
+
+dispmsg:		! SI now has pointer to a message
+  lodsb
+  cmp	al,#0
+  jz	EOS
+  mov	bx,#7
+  mov	ah,#$E		! Can't use $13 cause that's AT+ only!
+  int	$10
+  jmp	dispmsg
+EOS:
+  ret
+
+code:
+  mov	si,#msg_p2
+  call	dispmsg
+
+  mov	ax,minix_dinode		! In the same directory.
+  mov	minix_inode,ax
+
+  mov	cx,#14
+  mov	si,#elks_name
+  mov	di,#minix_bootfile
+  rep
+   movsb
+
+  call	minix__loadprog
+  				! Ok, now loaded "boot/linux" (or so)
+  mov	si,#msg_p3
+  call	dispmsg
+
+  call	kill_motor		! For kernels without a floppy driver.
+!
+  mov	ax,#LOADSEG
+  mov	ds,ax
+
+  mov	ax,$1E6			! Check for ELKS magic number
+  cmp	ax,#$4C45
+  jnz	not_elks
+  mov	ax,$1E8
+  cmp	ax,#$534B
+  jz	boot_it
+not_elks:
+  xor	ax,ax
+  mov	ds,ax
+  mov	si,#aint_elks
+  call	dispmsg
+  xor	ax,ax
+  int	$16
+  jmpi	$0,$FFFF
+
+boot_it:
+  mov	ax,#ELKS_INITSEG
+  mov	es,ax
+
+  mov	bl,497			! Fetch number of setup sects.
+  xor	bh,bh
+  inc	bx
+  mov	ax,500			! Fetch system size
+  mov	cl,#5
+  add	ax,#31
+  shr	ax,cl
+  mov	dx,ax
+
+looping:			! Put the setup where it belongs
+  call	copy_sect
+  dec	bx
+  jnz	looping
+
+  mov	ax,#ELKS_SYSSEG
+  mov	es,ax
+
+looping2:			! Put the body code in the right place.
+  call	copy_sect
+  dec	dx
+  jnz	looping2
+  
+  ! Ok, everything should be where it belongs call it.
+  mov	ax,#ELKS_INITSEG
+  mov	ds,ax
+  mov	es,ax
+  mov	ss,ax
+  mov	sp,#0x4000-12
+  jmpi	0,ELKS_INITSEG+$20
+
+copy_sect:
+  mov	cx,#256
+  xor	si,si
+  xor	di,di
+  rep
+   movsw
+
+  mov	ax,ds
+  add	ax,#32
+  mov	ds,ax
+  mov	ax,es
+  add	ax,#32
+  mov	es,ax
+  ret
+  
+kill_motor:
+  push	dx
+  mov	dx,#0x3f2
+  xor	al, al
+  outb
+  pop	dx
+  ret
+
+#endasm
+
diff -ruN ./elks-stuff/elkscmd/bootblocks/minix_elks.sym ./elks/elkscmd/bootblocks/minix_elks.sym
--- ./elks-stuff/elkscmd/bootblocks/minix_elks.sym	1969-12-31 19:00:00.000000000 -0500
+++ ./elks/elkscmd/bootblocks/minix_elks.sym	2004-05-09 13:36:50.000000000 -0400
@@ -0,0 +1,26 @@
++ 00000B00 ----- $start
++ 00000C19 ----- $end
+0 00000B72 ---A- EOS
+0 00000B42 ---A- aint_elks
+0 00000BBE ---A- boot_it
+0 00000B73 ---A- code
+0 00000BF8 ---A- copy_sect
+0 00000B64 ---A- dispmsg
+0 00000B55 ---A- elks_name
+0 00000C10 ---A- kill_motor
+0 00000BD6 ---A- looping
+0 00000BE1 ---A- looping2
+0 00000700 ---A- minix__loadprog
+0 000006FE ---A- minix_bootblock_magic
+0 00000542 ---A- minix_bootfile
+0 0000053E ---A- minix_codestart
+0 00000540 ---A- minix_dinode
+0 0000050B ---A- minix_dosfs_stat
+0 00000B00 ---A- minix_helper
+0 00000F00 ---A- minix_helper_end
+0 0000053E ---A- minix_inode
+0 00000400 ---A- minix_size
+0 00000500 ---A- minix_start
+0 00000B1B ---A- msg_p2
+0 00000B33 ---A- msg_p3
+0 00000BAB ---A- not_elks
diff -ruN ./elks-stuff/elkscmd/disk_utils/Makefile ./elks/elkscmd/disk_utils/Makefile
--- ./elks-stuff/elkscmd/disk_utils/Makefile	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/disk_utils/Makefile	2004-04-20 21:22:58.000000000 -0400
@@ -39,6 +39,7 @@
 SPROGS=mkfs
 
 all:		$(PROGS)
+	mkdir $(TARGET_MNT)/sbin
 
 rfs:		install
 
diff -ruN ./elks-stuff/elkscmd/disk_utils/mkfs.c ./elks/elkscmd/disk_utils/mkfs.c
--- ./elks-stuff/elkscmd/disk_utils/mkfs.c	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/disk_utils/mkfs.c	2004-04-18 18:57:36.000000000 -0400
@@ -162,7 +162,7 @@
 	exit(status);
 }
 
-#define usage() fatal_error("Usage: mkfs /dev/name blocks # Max blocks=65535\n",16)
+#define usage() fatal_error("Usage: mkfs /dev/name blocks number of Max blocks=65535\n",16)
 #define die(str) fatal_error("mkfs: " str "\n",8)
 
 void write_tables(void)
diff -ruN ./elks-stuff/elkscmd/errors ./elks/elkscmd/errors
--- ./elks-stuff/elkscmd/errors	1969-12-31 19:00:00.000000000 -0500
+++ ./elks/elkscmd/errors	2004-04-19 16:56:21.000000000 -0400
@@ -0,0 +1 @@
+as: error opening input file
diff -ruN ./elks-stuff/elkscmd/file_utils/Makefile ./elks/elkscmd/file_utils/Makefile
--- ./elks-stuff/elkscmd/file_utils/Makefile	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/file_utils/Makefile	2004-04-20 21:23:46.000000000 -0400
@@ -39,7 +39,7 @@
 PRGS=cat chgrp chmod chown cmp cp dd grep ln ls mkdir mkfifo mknod \
 	more mv rm rmdir sync touch 
 
-MIN_PRGS=cat chgrp chmod chown cmp cp l ls mknod mkdir mv rm rmdir \
+MIN_PRGS=cat chgrp chmod chown cmp cp ln ls mknod mkdir mv rm rmdir \
 	sync touch
 
 SMIN_PRGS=cat cp ls mkdir sync 
diff -ruN ./elks-stuff/elkscmd/file_utils/l.c ./elks/elkscmd/file_utils/l.c
--- ./elks-stuff/elkscmd/file_utils/l.c	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/file_utils/l.c	1999-02-16 13:23:00.000000000 -0500
@@ -1,5 +1,5 @@
 /* l.c - A short version of `ls'
- * Sun Feb  8 16:28:03 EST 1998 - claudio@conectiva.com (Claudio Matsuoka)
+ * Sun Feb  8 16:28:03 EST 1998 - claudio@pos.inf.ufpr.br (Claudio Matsuoka)
  *
  * Based on the ls.c sources Copyright (c) 1993 by David I. Bell
  */
diff -ruN ./elks-stuff/elkscmd/file_utils/ls.c ./elks/elkscmd/file_utils/ls.c
--- ./elks-stuff/elkscmd/file_utils/ls.c	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/file_utils/ls.c	2002-01-16 14:04:41.000000000 -0500
@@ -9,7 +9,7 @@
  *		- Added -C option to print 5 across screen.
  * 30-Jan-1998 ajr@ecs.soton.ac.uk (Al Riddoch)
  *		- Made -C default behavoir.
- * 02-Feb-1998 claudio@conectiva.com (Claudio Matsuoka)
+ * 02-Feb-1998 claudio@pos.inf.ufpr.br (Claudio Matsuoka)
  *		- Options -a, -F and simple multicolumn output added
  * 28-Nov-1999 mario.frasca@home.ict.nl (Mario Frasca)
  *		- Options -R -r added
@@ -18,9 +18,6 @@
  * 13-Jan-2002 rhw@MemAlpha.cx (Riley Williams)
  *		- Reformatted source consistently.
  *		- Added -A option: -a excluding . and ..
- * 28-May-2004 claudio@conectiva.com (Claudio Matsuoka)
- *		- Fixed sort direction, keeps qsort and strcmp consistent
- *		- Removed alias to 'dir' (doesn't seem to belong here)
  */
 
 #if !defined(DEBUG)
@@ -74,7 +71,7 @@
 			( (c=name[1]) && (c!='.') ) || (name[2]&&c)
 
 
-static int cols = 0, col = 0, reverse = 1;
+static int cols = 0, col = 0, reverse=-1;
 static char fmt[16] = "%s";
 
 
@@ -84,7 +81,7 @@
 int namesort(a, b)
 const char **a, **b;
 {
-    return reverse * strcmp(*a, *b);
+    return reverse*strcmp(*a, *b);
 }
 
 struct Stack
@@ -468,6 +465,8 @@
 /*
  * Set relevant flags for command name
  */
+    if (!strcmp(*argv,"dir"))
+	flags |= LSF_LONG;
 
     while ( --argc && ((cp = * ++argv)[0]=='-') ) {
 	while (*++cp) {
diff -ruN ./elks-stuff/elkscmd/inet/telnet/ttn.c ./elks/elkscmd/inet/telnet/ttn.c
--- ./elks-stuff/elkscmd/inet/telnet/ttn.c	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/inet/telnet/ttn.c	2004-04-18 19:14:13.000000000 -0400
@@ -27,14 +27,14 @@
 #include <linuxmt/time.h>
 #include "../httpd/mylib.h"
 
-#define assert(a)
+/* #define assert(a)- Huh? */
 #else
 #include <sys/time.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
 #endif
 
-#include <netdb.h>
+/* #include <netdb.h> And where is this file supposed to come from? */
 
 #include "ttn.h"
 
diff -ruN ./elks-stuff/elkscmd/levee/editcor.c ./elks/elkscmd/levee/editcor.c
--- ./elks-stuff/elkscmd/levee/editcor.c	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/levee/editcor.c	2004-04-18 19:03:09.000000000 -0400
@@ -444,14 +444,16 @@
 	    strcat(gcb,"c$"); break;
 	case 'Y':			/* yank ... */
 	    strcat(gcb,"y$"); break;
+/*
 	case '\x06':			/* scroll up one page */
-	    strcpy(gcb,"22\x04"); break;
+/*		strcpy(gcb,"22\x04"); break;
 	case '\x02':			/* ... down one page */
-	    strcpy(gcb,"22\x15"); break;
+/*		strcpy(gcb,"22\x15"); break;
 	case '\x05':			/* scroll up one line */
-	    strcpy(gcb,"1\x04"); break;
+/*		strcpy(gcb,"1\x04"); break;
 	case '\x19':			/* ... down one line */
-	    strcpy(gcb,"1\x15"); break;
+/*		strcpy(gcb,"1\x15"); break;
+*/
 	default:
             error();
             return 0;
diff -ruN ./elks-stuff/elkscmd/levee/insert.c ./elks/elkscmd/levee/insert.c
--- ./elks-stuff/elkscmd/levee/insert.c	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/levee/insert.c	2004-04-18 19:06:38.000000000 -0400
@@ -85,8 +85,8 @@
 	Dflag = (cp==0 || core[cp-1]==EOL);
 	do {
 	    if (Dflag)
-		while ((cmd=peekc()) == '\x14' || cmd == '\x04') {
-		    if (readchar() == '\x14')
+		while ((cmd=peekc()) == 'b' /* This needs fixing*/ || cmd == 'b'/* This needs fixing */) {
+		    if (readchar() == 'h'/*This need sfixing*/)
 			currDLE = min(COLS,currDLE+shiftwidth);
 		    else
 			currDLE = max(0,currDLE-shiftwidth);
diff -ruN ./elks-stuff/elkscmd/levee/misc.c ./elks/elkscmd/levee/misc.c
--- ./elks-stuff/elkscmd/levee/misc.c	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/levee/misc.c	2004-04-18 19:09:13.000000000 -0400
@@ -392,10 +392,10 @@
 	    *size = (ip-start);
             return (c==ESC) ? ESC : EOL;
 	}
-	else if ((!beautify) || c == TAB || c == '\x16'
+	else if ((!beautify) || c == TAB || c == 'h' /*This needs fixing*/
 			     || (c >= ' ' && c <= '~')) {
 	    if (ip < endd) {
-		if (c == '\x16')
+		if (c == '\x16f'/*This needs fixing*/) 
 		    c = readchar();
 		switch (cclass(c)) {
 		    case 0 : ixp++; break;
diff -ruN ./elks-stuff/elkscmd/rootfs_template/dev/MAKEDEV ./elks/elkscmd/rootfs_template/dev/MAKEDEV
--- ./elks-stuff/elkscmd/rootfs_template/dev/MAKEDEV	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/rootfs_template/dev/MAKEDEV	1969-12-31 19:00:00.000000000 -0500
@@ -1,264 +0,0 @@
-#!/bin/sh
-
-# Devices are generated by this script in the same order that they are listed
-# in the Documentation/devices.txt file in the Linux 2.4.18 and5.21 kernel
-# sources. This includes devices that are not currently relevant to ELKS, to
-# encourage the use of common node numbers when these devices are eventually
-# implemented.
-#
-# Where different node numbers are currently used by ELKS, the current ELKS
-# node numbers are generated by lines labelled "Currently" and the relevant
-# Linux node numbers are generated by lines labelled "Ought to be".
-#
-# Refer to the MAKESET command, also in this directory, for usage details.
-
-LINK=/bin/ln
-MKDEV=/bin/mknod
-MKSET=/dev/MAKESET
-
-##############################################################################
-# Ensure required auxilliary script is present.
-
-if ! /bin/test -f "$MKSET"
-then
-    echo ERROR: \"$MKSET\" script missing, unable to continue.
-    exit 1
-fi
-
-##############################################################################
-# Create memory devices.
-
-	$MKDEV mem	c 1 1
-	$MKDEV kmem	c 1 2
-	$MKDEV null	c 1 3
-#	$MKDEV port	c 1 4
-	$MKDEV zero	c 1 5
-#	$MKDEV core	c 1 6
-	$MKDEV full	c 1 7
-#	$MKDEV random	c 1 8
-#	$MKDEV urandom	c 1 9
-#	$MKDEV aio	c 1 10
-
-##############################################################################
-# RAM disks.
-
-	$MKSET   0 7  $MKDEV ram b 1
-
-	$LINK  ram1	ramdisk
-
-##############################################################################
-# Pseudo-TTY master devices. These are not yet supported by the ELKS kernel.
-
-#	$MKSET   0 15 $MKDEV ptyp x 2
-#	$MKSET  16 15 $MKDEV ptyq x 2
-#	$MKSET  32 15 $MKDEV ptyr x 2
-#	$MKSET  48 15 $MKDEV ptys x 2
-#	$MKSET  64 15 $MKDEV ptyt x 2
-#	$MKSET  80 15 $MKDEV ptyu x 2
-#	$MKSET  96 15 $MKDEV ptyv x 2
-#	$MKSET 112 15 $MKDEV ptyw x 2
-#	$MKSET 128 15 $MKDEV ptyx x 2
-#	$MKSET 144 15 $MKDEV ptyy x 2
-#	$MKSET 160 15 $MKDEV ptyz x 2
-#	$MKSET 176 15 $MKDEV ptya x 2
-#	$MKSET 192 15 $MKDEV ptyb x 2
-#	$MKSET 208 15 $MKDEV ptyc x 2
-#	$MKSET 224 15 $MKDEV ptyd x 2
-#	$MKSET 240 15 $MKDEV ptye x 2
-
-##############################################################################
-# Floppy diskettes. Only the auto-detect nodes are listed.
-
-	$MKDEV fd0	b 3 128 	# Currently.
-	$MKDEV fd1	b 3 192 	# Currently.
-
-#	$MKSET   0 3  $MKDEV fd b 2	# Ought to be.
-
-##############################################################################
-# Pseudo-TTY master devices. These are not yet supported by the ELKS kernel.
-
-#	$MKSET   0 15 $MKDEV ttyp x 3
-#	$MKSET  16 15 $MKDEV ttyq x 3
-#	$MKSET  32 15 $MKDEV ttyr x 3
-#	$MKSET  48 15 $MKDEV ttys x 3
-#	$MKSET  64 15 $MKDEV ttyt x 3
-#	$MKSET  80 15 $MKDEV ttyu x 3
-#	$MKSET  96 15 $MKDEV ttyv x 3
-#	$MKSET 112 15 $MKDEV ttyw x 3
-#	$MKSET 128 15 $MKDEV ttyx x 3
-#	$MKSET 144 15 $MKDEV ttyy x 3
-#	$MKSET 160 15 $MKDEV ttyz x 3
-#	$MKSET 176 15 $MKDEV ttya x 3
-#	$MKSET 192 15 $MKDEV ttyb x 3
-#	$MKSET 208 15 $MKDEV ttyc x 3
-#	$MKSET 224 15 $MKDEV ttyd x 3
-#	$MKSET 240 15 $MKDEV ttye x 3
-
-##############################################################################
-# Direct IDE disks, Primary channel.
-
-	$MKSET   0 63 $MKDEV hda d 5	# Currently.
-	$MKSET  64 63 $MKDEV hdb d 5	# Currently.
-
-#	$MKSET   0 63 $MKDEV hda d 3	# Ought to be.
-#	$MKSET  64 63 $MKDEV hdb d 3	# Ought to be.
-
-##############################################################################
-# Virtual consoles. Note that tty4 through tty7 can't be enabled at this
-# time because of the possible conflict with ttyS0 through ttyS3 which
-# used to use the node numbers these now use. However, it is expected that
-# this restriction can be removed in the near future.
-
-	$MKSET  0 3  $MKDEV tty c 4	# Currently
-#	$MKSET  0 15 $MKDEV tty c 4	# Soon to be
-
-# Serial ports, as detected by the ROM BIOS.
-
-	$MKSET 64 3  $MKDEV ttyS c 4
-
-##############################################################################
-# Alternate TTY devices. These are not yet supported.
-
-#	$MKDEV tty	c 5 0
-#	$MKDEV console	c 5 1
-#	$MKDEV ptmx	c 5 2
-
-##############################################################################
-# Parallel devices, as detected by the ROM BIOS.
-
-	$MKSET  0 3  $MKDEV lp c 6
-
-##############################################################################
-# Loopback devices. These are not yet supported.
-
-#	$MKSET  0 15 $MKDEV loop c 7
-
-##############################################################################
-# SCSI disks. These are not yet supported.
-
-#	$MKSET   0 15 $MKDEV sda d 8
-#	$MKSET  16 15 $MKDEV sdb d 8
-#	$MKSET  32 15 $MKDEV sdc d 8
-#	$MKSET  48 15 $MKDEV sdd d 8
-#	$MKSET  64 15 $MKDEV sde d 8
-#	$MKSET  80 15 $MKDEV sdf d 8
-#	$MKSET  96 15 $MKDEV sdg d 8
-#	$MKSET 112 15 $MKDEV sdh d 8
-#	$MKSET 128 15 $MKDEV sdi d 8
-#	$MKSET 144 15 $MKDEV sdj d 8
-#	$MKSET 160 15 $MKDEV sdk d 8
-#	$MKSET 176 15 $MKDEV sdl d 8
-#	$MKSET 192 15 $MKDEV sdm d 8
-#	$MKSET 208 15 $MKDEV sdn d 8
-#	$MKSET 224 15 $MKDEV sdo d 8
-#	$MKSET 240 15 $MKDEV sdp d 8
-
-##############################################################################
-# SCSI tapes. These are not yet supported.
-
-#	$MKSET   0 31 $MKDEV st c 9
-#	$MKSET  32 31 $MKDEV st c 9 l
-#	$MKSET  64 31 $MKDEV st c 9 m
-#	$MKSET  96 31 $MKDEV st c 9 a
-#	$MKSET 128 31 $MKDEV nst c 9
-#	$MKSET 160 31 $MKDEV nst c 9 l
-#	$MKSET 192 31 $MKDEV nst c 9 m
-#	$MKSET 224 31 $MKDEV nst c 9 a
-
-##############################################################################
-# Metadisk (RAID) devices. These are not yet supported.
-
-#	$MKSET   0 15 $MKDEV md b 9
-
-##############################################################################
-# SCSI CD-ROM devices. These are not yet supported.
-
-#	$MKSET   0 15 $MKDEV scd b 11
-
-##############################################################################
-# MSCDEX CD-ROM devices. These are not yet supported.
-
-#	$MKSET   0 15 $MKDEV doscd b 12
-
-##############################################################################
-# 8-bit MFM/RLL controllers. These are not yet supported.
-
-#	$MKSET   0 63 $MKDEV xda b 13
-#	$MKSET  64 63 $MKDEV xdb b 13
-
-##############################################################################
-# BIOS hard disks.
-
-	$MKSET   0 63 $MKDEV bda d 3	# Currently
-	$MKSET  64 63 $MKDEV bdb d 3	# Currently
-	$MKSET 128 63 $MKDEV bdc d 3	# Currently
-	$MKSET 192 63 $MKDEV bdd d 3	# Currently
-
-#	$MKSET   0 63 $MKDEV bda d 14	# Ought to be
-#	$MKSET  64 63 $MKDEV bdb d 14	# Ought to be
-#	$MKSET 128 63 $MKDEV bdc d 14	# Ought to be
-#	$MKSET 192 63 $MKDEV bdd d 14	# Ought to be
-
-##############################################################################
-# Joysticks. These are not yet supported.
-
-#	$MKSET   0 15 $MKDEV js c 15
-#	$MKSET 128 15 $MKDEV djs c 15
-
-##############################################################################
-# Generic SCSI devics. These are not yet supported.
-
-#	$MKSET   0 15 $MKDEV sg c 21
-
-##############################################################################
-# Direct IDE disks, Secondary channel. These are not yet supported.
-
-#	$MKSET   0 63 $MKDEV hdc d 22
-#	$MKSET  64 63 $MKDEV hdd d 22
-
-##############################################################################
-# Direct IDE disks, Tertiary channel. These are not yet supported.
-
-#	$MKSET   0 63 $MKDEV hde d 33
-#	$MKSET  64 63 $MKDEV hdf d 33
-
-##############################################################################
-# Z80-SIO devices. These are not yet supported.
-
-#	$MKSET   0  7 $MKDEV scc c 34
-
-##############################################################################
-# Direct IDE disks, Quaternary channel. These are not yet supported.
-
-#	$MKSET   0 63 $MKDEV hde d 34
-#	$MKSET  64 63 $MKDEV hdf d 34
-
-##############################################################################
-# Direct IDE disks, Quinternary channel. These are not yet supported.
-
-#	$MKSET   0 63 $MKDEV hdg d 56
-#	$MKSET  64 63 $MKDEV hdh d 56
-
-##############################################################################
-# Direct IDE disks, Quaternary channel. These are not yet supported.
-
-#	$MKSET   0 63 $MKDEV hdi d 57
-#	$MKSET  64 63 $MKDEV hdj d 57
-
-##############################################################################
-# SCSI Media Changer. These are not yet supported.
-
-#	$MKSET   0 15 $MKDEV sch c 86
-
-##############################################################################
-# I2C bus drivers. These are not yet supported.
-
-#	$MKSET   0 7  $MKDEV i2c c 89
-
-##############################################################################
-# Conrad Electronic Parallel Port Radio Clocks. These are not yet supported.
-
-#	$MKSET	 0 1  $MKDEV pcfclock c 181
-
-##############################################################################
-# EOF.
diff -ruN ./elks-stuff/elkscmd/rootfs_template/dev/MAKESET ./elks/elkscmd/rootfs_template/dev/MAKESET
--- ./elks-stuff/elkscmd/rootfs_template/dev/MAKESET	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/rootfs_template/dev/MAKESET	1969-12-31 19:00:00.000000000 -0500
@@ -1,48 +0,0 @@
-#!/bin/sh
-
-if [ $# -lt 6 -o $# -gt 7 ]; then
-    echo
-    echo "Usage: makeset min count cmd prefix type major [suffix]"
-    echo
-    echo "where  min     is the minor of the first node to make,"
-    echo "       count   is the number of the last node to make,"
-    echo "       cmd     is the command to make a node,"
-    echo "       prefix  is the node name prefix,"
-    echo "       type    is the type selector for the node,"
-    echo "       major   is the major number for the node,"
-    echo "  and  suffix  is a suffix to append to the node names."
-    echo
-    echo "The following type selectors are supported:"
-    echo
-    echo "   b    Block device, all nodes have numeric suffix."
-    echo "   d    Block device, first node is raw device without numeric suffix."
-    echo
-    echo "   c    Character device with decimal numeric suffix."
-    echo "   x    Character device with hexadecimal numeric suffix."
-    echo
-else
-    N=0
-    while [ $N -le $2 ]; do
-	P=`expr $N + $1`
-	case ".$5" in
-	    .b)     eval $3 $4$N$7 $5 $6 $P
-		    ;;
-	    .c)     eval $3 $4$N$7 $5 $6 $P
-		    ;;
-	    .d)     if [ $N -gt 0 ]; then
-			eval $3 $4$N$7 $5 $6 $P
-		    else
-			eval $3 $4$7 $5 $6 $P
-		    fi
-		    ;;
-	    .x)	    if [ $N -gt 9 ]; then
-			R=`echo 123456789abcdef | cut -b $N`
-			eval $3 $4$R$7 c $6 $P
-		    else
-			eval $3 $4$N$7 c $6 $P
-		    fi
-		    ;;
-	esac
-	N=`expr $N + 1`
-    done
-fi
diff -ruN ./elks-stuff/elkscmd/rootfs_template/etc/rc.d/rc.sysinit ./elks/elkscmd/rootfs_template/etc/rc.d/rc.sysinit
--- ./elks-stuff/elkscmd/rootfs_template/etc/rc.d/rc.sysinit	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/rootfs_template/etc/rc.d/rc.sysinit	2002-07-15 01:39:30.000000000 -0400
@@ -18,19 +18,20 @@
 	stty $ttybaud < $sliptty
 	echo -n ' stty'
 	ktcp $localip $sliptty &
-	echo ' ktcp'
+	echo -n ' ktcp'
+
+	echo ''
 	
 	echo -n "Starting network daemons: "
 	for daemon in ftpd httpd
 	do
 		if test -f /bin/$daemon 
 		then
-			echo -n " $daemon"
 			$daemon &
+			echo -n " $daemon"
 		fi
 	done
-	echo .
-
+	echo ''
 fi
 
 # 
Binary files ./elks-stuff/elkscmd/rootfs_template.tar and ./elks/elkscmd/rootfs_template.tar differ
Binary files ./elks-stuff/elkscmd/rootfs_template.tar.gz and ./elks/elkscmd/rootfs_template.tar.gz differ
diff -ruN ./elks-stuff/elkscmd/sys_utils/Makefile ./elks/elkscmd/sys_utils/Makefile
--- ./elks-stuff/elkscmd/sys_utils/Makefile	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/sys_utils/Makefile	2004-04-21 17:38:24.000000000 -0400
@@ -6,7 +6,7 @@
 #
 # Include standard packaging commands.
 
-MIN_BIN 	= getty init kill login mount passwd ps swapon meminfo reboot umount
+MIN_BIN 	= getty init kill login mount passwd ps meminfo reboot umount
 MIN_LIB 	= 
 MIN_SBIN	= clock exitemu getty init reboot
 MIN_USR_BIN	= meminfo passwd
@@ -36,26 +36,29 @@
 ###############################################################################
 
 PRGS		= getty kill man mount reboot umount clock exitemu who ps \
-		  init login passwd knl
+		  init login passwd knl meminfo
 
-NETPRGS=init getty login kill mount umount passwd reboot ps swapon meminfo who
+NETPRGS=init getty login kill mount umount passwd reboot ps meminfo who
 
-MIN_PRGS=init getty login kill mount reboot umount clock exitemu ps swapon meminfo
+MIN_PRGS=init getty login kill mount reboot umount clock exitemu ps meminfo
 
 SMIN_PRGS	= init mount umount
 
 all: $(PRGS)
 
 rfs: all
+	mkdir $(TARGET_MNT)/bin
 	cp -p $(PRGS) $(TARGET_MNT)/bin
 	
 net_rfs: all
 	cp -p $(NETPRGS) $(TARGET_MNT)/bin
 
 min_rfs: all
+	mkdir $(TARGET_MNT)/bin
 	cp -p $(MIN_PRGS) $(TARGET_MNT)/bin
 
 smin_rfs: all
+	mkdir $(TARGET_MNT)/bin
 	cp -p $(SMIN_PRGS) $(TARGET_MNT)/bin
 
 clean:
@@ -80,9 +83,6 @@
 meminfo: meminfo.c
 	$(CC) $(CFLAGS) $(LDFLAGS) meminfo.c -o meminfo -H 100
 
-swapon: swapon.c
-	$(CC) $(CFLAGS) $(LDFLAGS) swapon.c -o swapon -H 100
-
 new_init: init.c utent.o
 	$(CC) $(CFLAGS) $(LDFLAGS) init.c utent.o -o init
 
diff -ruN ./elks-stuff/elkscmd/sys_utils/qsort.c ./elks/elkscmd/sys_utils/qsort.c
--- ./elks-stuff/elkscmd/sys_utils/qsort.c	2004-05-28 16:02:01.000000000 -0400
+++ ./elks/elkscmd/sys_utils/qsort.c	1999-02-16 13:23:00.000000000 -0500
@@ -9,7 +9,7 @@
  */
 
 /*
- * Sun Feb  8 21:02:15 EST 1998 claudio@conectiva.com (Claudio Matsuoka)
+ * Sun Feb  8 21:02:15 EST 1998 claudio@pos.inf.ufpr.br (Claudio Matsuoka)
  * Changed sort direction
  */
 
diff -ruN ./elks-stuff/elkscmd/sysboot.s ./elks/elkscmd/sysboot.s
--- ./elks-stuff/elkscmd/sysboot.s	1969-12-31 19:00:00.000000000 -0500
+++ ./elks/elkscmd/sysboot.s	2004-04-19 21:56:00.000000000 -0400
@@ -0,0 +1,82 @@
+
+! The master boot sector will have setup a stack,
+! this is normally at 0:7c00 down.
+! DS, SS, CS and ES will all have value 0 so the execution address is 0:7c00
+! On entry the register SI will be pointer to the partition entry that
+! this sector was loaded from, DL is the drive.
+
+! Also if it's a standard Master boot DH will be the head, CX will be the
+! sector and cylinder, BX=7C00, AX=1, DI=7DFE, BP=SI. There's a reasonable
+! chance that this isn't true though.
+
+! The Master boot itself will have been loaded and run at $07c00
+! The BIOS must have setup a stack because interrupts are enabled
+! Little else can be assumed because DOS doesn`t assume anything either
+
+sysboot_start:
+j codestart
+nop		! DOS appears to _require_ this to identify an MSDOS disk!!
+
+.blkb sysboot_start+3-*
+public dosfs_stat
+dos_sysid:	.ascii "LINUX"	! System ID
+		.byte 0,0,0
+dosfs_stat:
+dos_sect:	.blkw 1		! Sector size
+dos_clust:	.blkb 1		! Cluster size
+dos_resv:	.blkw 1		! Res-sector
+dos_nfat:	.blkb 1		! FAT count
+dos_nroot:	.blkw 1		! Root dir entries
+dos_maxsect:	.blkw 1		! Sector count (=0 if large FS)
+dos_media:	.blkb 1		! Media code
+dos_fatlen:	.blkw 1		! FAT length
+dos_spt:	.blkw 1		! Sect/Track
+dos_heads:	.blkw 1		! Heads
+dos_hidden:	.blkw 2		! Hidden sectors
+
+! Here down is DOS 4+ and probably not needed for floppy boots.
+
+dos4_maxsect:	.blkw 2		! Large FS sector count
+dos4_phy_drive:	.blkb 1		! Phys drive
+.blkb 1		! Reserved
+.blkb 1		! DOS 4
+
+floppy_temp:
+dos4_serial:	.blkw 2		! Serial number
+dos4_label:	.blkb 11	! Disk Label (DOS 4+)
+dos4_fattype:	.blkb 8		! FAT type
+
+!
+! This is where the code will be overlaid, the default is a hang
+.blkb sysboot_start+0x3E-*
+public codestart
+codestart:
+  j	codestart
+
+! Partition table
+public bootblock_magic
+
+.blkb sysboot_start+0x1BE-*
+partition_1:
+.blkb 8			! IN,SH,SS,ST,OS,EH,ES,ET
+.blkw 2			! Linear position (0 based)
+.blkw 2			! Linear length
+.blkb sysboot_start+0x1CE-*
+partition_2:
+.blkb 8			! IN,SH,SS,ST,OS,EH,ES,ET
+.blkw 2			! Linear position (0 based)
+.blkw 2			! Linear length
+.blkb sysboot_start+0x1DE-*
+partition_3:
+.blkb 8			! IN,SH,SS,ST,OS,EH,ES,ET
+.blkw 2			! Linear position (0 based)
+.blkw 2			! Linear length
+.blkb sysboot_start+0x1EE-*
+partition_4:
+.blkb 8			! IN,SH,SS,ST,OS,EH,ES,ET
+.blkw 2			! Linear position (0 based)
+.blkw 2			! Linear length
+
+.blkb sysboot_start+0x1FE-*
+bootblock_magic:
+.word 0xAA55
diff -ruN ./elks-stuff/elksnet/ktcp/vjhc.c ./elks/elksnet/ktcp/vjhc.c
--- ./elks-stuff/elksnet/ktcp/vjhc.c	2004-05-28 16:01:54.000000000 -0400
+++ ./elks/elksnet/ktcp/vjhc.c	2004-04-20 22:08:26.000000000 -0400
@@ -113,10 +113,7 @@
 	}
 }
 
-DEFUN
-(int ip_vjhc_compress, (pkt),
-	pkt_ut *pkt
-)
+int ip_vjhc_compress(pkt_ut *pkt)
 {
 	iphdr_t *ip_hdr, *oip_hdr;
 	tcphdr_t *tcp_hdr, *otcp_hdr;
@@ -127,107 +124,112 @@
 	__u32 delta, deltaA, deltaS;
 	__u16 cksum;
 
-	if (pkt->p_size < IP_MIN_HDR_SIZE + TCP_MIN_HDR_SIZE)
+	if(pkt->p_size < IP_MIN_HDR_SIZE + TCP_MIN_HDR_SIZE)
 	{
 #ifdef DEBUG
-		if (opt_d) fprintf(stderr,"ip_vjhc_compress: packet too small %d\n",
-			pkt->p_size);
+		if(opt_d)
+			{
+			fprintf(stderr,"ip_vjhc_compress: packet too small %d\n", pkt->p_size);
+			}
 #endif
 		return PPP_TYPE_IP;
 	}
-	ip_hdr= (iphdr_t *)(pkt->p_data + pkt->p_offset);
-	if ((ntohs(ip_hdr->frag_off) &
-		(IH_MORE_FRAGS | IH_FRAGOFF_MASK)) != 0)
+	ip_hdr = (iphdr_t *)(pkt->p_data + pkt->p_offset);
+	if((ntohs(ip_hdr->frag_off) & (IH_MORE_FRAGS | IH_FRAGOFF_MASK)) != 0)
 	{
 #ifdef DEBUG
-		if (opt_d) fprintf(stderr,"ip_vjhc_compress: fragmented packet\n");
+		if(opt_d)
+			{
+			fprintf(stderr,"ip_vjhc_compress: fragmented packet\n");
+			}
 #endif
 		return PPP_TYPE_IP;
 	}
 	ip_hdr_len= (ip_hdr->version_ihl & IH_IHL_MASK) * 4;
 	tcp_hdr= (tcphdr_t *)(pkt->p_data + pkt->p_offset + ip_hdr_len);
-	if ((tcp_hdr->flags & (TF_SYN | TF_FIN | TF_RST | TF_ACK)) !=
-		TF_ACK)
+	if((tcp_hdr->flags & (TF_SYN | TF_FIN | TF_RST | TF_ACK)) != TF_ACK)
 	{
 #ifdef DEBUG
-		if (opt_d) fprintf(stderr,"ip_vjhc_compress: wrong flags in TCP header\n");
+		if(opt_d)
+			{
+			fprintf(stderr,"ip_vjhc_compress: wrong flags in TCP header\n");
+			}
 #endif
 		return PPP_TYPE_IP;
 	}
 	tcp_hdr_len= TCP_DATAOFF(tcp_hdr);	/* !!! */
 	tot_len= ip_hdr_len + tcp_hdr_len;
 #ifdef DEBUG
-	if (opt_d) {
-	fprintf(stderr,"ip_vjhc_compress: packet with size %d\n\t",
-		pkt->p_size);
-	for (cp= (__u8 *)pkt->p_data+pkt->p_offset; cp < (__u8 *)pkt->p_data +
-		pkt->p_offset + ip_hdr_len; cp++)
-	{
-		fprintf(stderr,"%x ", *cp);
-	}
-	fprintf(stderr,"\n\t");
-	for (; cp < (__u8 *)pkt->p_data + pkt->p_offset + tot_len; cp++)
-	{
-		fprintf(stderr, "%x ", *cp);
-	}
-	fprintf(stderr, "\n\t");
-	for (; cp < (__u8 *)pkt->p_data + pkt->p_offset + pkt->p_size; cp++)
-	{
-		fprintf(stderr, "%x ", *cp);
-	}
-	fprintf(stderr, "\n");
-	}
+	if(opt_d) 
+		{
+		fprintf(stderr,"ip_vjhc_compress: packet with size %d\n\t", pkt->p_size);
+		for (cp= (__u8 *)pkt->p_data+pkt->p_offset; cp < (__u8 *)pkt->p_data +pkt->p_offset + ip_hdr_len; cp++)
+			{
+			fprintf(stderr,"%x ", *cp);
+			}
+		fprintf(stderr,"\n\t");
+		for (; cp < (__u8 *)pkt->p_data + pkt->p_offset + tot_len; cp++)
+			{
+			fprintf(stderr, "%x ", *cp);
+			}
+		fprintf(stderr, "\n\t");
+		for(; cp < (__u8 *)pkt->p_data + pkt->p_offset + pkt->p_size; cp++)
+			{
+			fprintf(stderr, "%x ", *cp);
+			}
+		fprintf(stderr, "\n");
+		}
 #endif
 	for (prev= NULL, state= xmit_head;; )
 	{
-		if (ip_hdr->saddr == state->s_src_ip &&
-			ip_hdr->daddr == state->s_dst_ip &&
-			*(__u32 *)&tcp_hdr->sport ==
-			state->s_srcdst_port)
+		if((ip_hdr->saddr == state->s_src_ip) && (ip_hdr->daddr == state->s_dst_ip) && (*(__u32 *)&tcp_hdr->sport == state->s_srcdst_port))
 		{
 #ifdef DEBUG
-			if (opt_d) fprintf(stderr, "ip_vjhc_compress: found entry\n");
+			if(opt_d)
+			{
+			fprintf(stderr, "ip_vjhc_compress: found entry\n");
+			}
 #endif
-			if (prev != NULL)
+			if(prev != NULL)
 			{
 #ifdef DEBUG
-				if (opt_d) fprintf(stderr, "ip_vjhc_compress: moving entry to front\n");
+				if(opt_d) fprintf(stderr, "ip_vjhc_compress: moving entry to front\n");
 #endif
-				prev->s_next= state->s_next;
-				state->s_next= xmit_head;
-				xmit_head= state;
+				prev->s_next = state->s_next;
+				state->s_next = xmit_head;
+				xmit_head = state;
 			}
 			break;
 		}
-		next= state->s_next;
-		if (next != NULL)
+		next = state->s_next;
+		if(next != NULL)
 		{
-			prev= state;
-			state= next;
+			prev = state;
+			state = next;
 			continue;
 		}
-
 		/* Not found */
-		if (prev != NULL)
+		if(prev != NULL)
+		{
+			prev->s_next = state->s_next;
+			state->s_next = xmit_head;
+			xmit_head = state;
+		}
+		state->s_src_ip = ip_hdr->saddr;
+		state->s_dst_ip = ip_hdr->daddr;
+		state->s_srcdst_port = *(__u32 *)&tcp_hdr->sport;
+#ifdef DEBUG
+		if(opt_d)
 		{
-			prev->s_next= state->s_next;
-			state->s_next= xmit_head;
-			xmit_head= state;
-		}
-		state->s_src_ip= ip_hdr->saddr;
-		state->s_dst_ip= ip_hdr->daddr;
-		state->s_srcdst_port= *(__u32 *)&tcp_hdr->sport;
-#ifdef DEBUG
-		if (opt_d) fprintf(stderr,"ip_vjhc_compress: new entry: %x, %x, %x\n",
-			state->s_src_ip, state->s_dst_ip,
-			state->s_srcdst_port );
+		fprintf(stderr,"ip_vjhc_compress: new entry: %x, %x, %x\n", state->s_src_ip, state->s_dst_ip, state->s_srcdst_port);
+		}
 #endif
 		memcpy(state->s_data, ip_hdr, tot_len);
-		xmit_last= ip_hdr->protocol= state->s_indx;
+		xmit_last = ip_hdr->protocol = state->s_indx;
 		return PPP_TYPE_VJHC_UNCOMPR;
-	}	
-	oip_hdr= (iphdr_t *)(state->s_data);
-	otcp_hdr= (tcphdr_t *)(state->s_data + ip_hdr_len);
+	}
+	oip_hdr = (iphdr_t *)(state->s_data);
+	otcp_hdr = (tcphdr_t *)(state->s_data + ip_hdr_len);
 
 	if (*(__u16 *)&ip_hdr->version_ihl !=
 			*(__u16 *)&oip_hdr->version_ihl ||
@@ -388,10 +390,8 @@
 	return PPP_TYPE_VJHC_COMPR;
 }
 
-DEFUN
-(void ip_vjhc_arr_uncompr, (pkt),
-	pkt_ut *pkt
-)
+
+void ip_vjhc_arr_uncompr(pkt_ut *pkt)
 {
 	rcv_state_ut *state;
 	iphdr_t *ip_hdr;
@@ -430,10 +430,7 @@
 
 }
 
-DEFUN
-(void ip_vjhc_arr_compr, (pkt),
-	pkt_ut *pkt
-)
+void ip_vjhc_arr_compr(pkt_ut *pkt)
 {
 	iphdr_t *ip_hdr;
 	tcphdr_t *tcp_hdr;
diff -ruN ./elks-stuff/elksnet/screen/screen.h ./elks/elksnet/screen/screen.h
--- ./elks-stuff/elksnet/screen/screen.h	2004-05-28 16:01:55.000000000 -0400
+++ ./elks/elksnet/screen/screen.h	2004-04-20 22:11:50.000000000 -0400
@@ -28,10 +28,9 @@
     PM,          /* Privacy message */
 };
 
-#define MAXSTR       128
-#define	MAXARGS      64
-
-#define IOSIZE       80
+#define MAXSTR 128
+#define MAXARGS 64
+#define IOSIZE 80
 
 struct win {
     int wpid;

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 1/5] Splitting Tommy's big patch
  2004-05-28 20:22 [PATCH]- big patch that fixes bugs Tommy McCabe
@ 2004-05-28 21:30 ` Eduardo Pereira Habkost
  2004-05-31 13:44   ` Miguel Bolanos
  2004-05-28 21:30 ` [PATCH 2/5] " Eduardo Pereira Habkost
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 13+ messages in thread
From: Eduardo Pereira Habkost @ 2004-05-28 21:30 UTC (permalink / raw)
  To: linux-8086

Use #ifdef rightly on setup.S

--- elks/arch/i86/boot/setup.S	2004-05-28 16:01:49.000000000 -0400
+++ elks/arch/i86/boot/setup.S	2004-04-18 14:42:59.000000000 -0400
@@ -585,7 +585,7 @@
 	or	al,al
 	jnz	is486
 #endif
-#ifdef(CONFIG_CPU_80386)
+#ifdef CONFIG_CPU_80386
         mov cl,#7
 	lea	si,p80386
 	br	getfpu

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 2/5] Splitting Tommy's big patch
  2004-05-28 20:22 [PATCH]- big patch that fixes bugs Tommy McCabe
  2004-05-28 21:30 ` [PATCH 1/5] Splitting Tommy's big patch Eduardo Pereira Habkost
@ 2004-05-28 21:30 ` Eduardo Pereira Habkost
  2004-05-31 13:44   ` Miguel Bolanos
  2004-05-28 21:30 ` [PATCH 3/5] " Eduardo Pereira Habkost
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 13+ messages in thread
From: Eduardo Pereira Habkost @ 2004-05-28 21:30 UTC (permalink / raw)
  To: linux-8086

Fix order of LD parameters on arch/i86/Makefile

--- elks/arch/i86/Makefile	2004-05-28 16:01:49.000000000 -0400
+++ elks/arch/i86/Makefile	2004-04-18 14:45:26.000000000 -0400
@@ -105,9 +105,10 @@
 
 boot/system:	$(AARCHIVES) $(ADRIVERS) boot/crt1.o boot/crt0.o
 	(cd $(BASEDIR) ; $(LD) $(LDFLAGS) $(ARCH_LD) \
+		-t -M -o $(ARCH_DIR)/boot/system \
 		$(ARCH_DIR)/boot/crt0.o $(ARCH_DIR)/boot/crt1.o \
 		init/main.o $(ARCHIVES) $(DRIVERS) \
-		-t -M -o $(ARCH_DIR)/boot/system > System.tmp ; \
+		> System.tmp ; \
 		sort -k4 System.tmp > System.map ; rm -f System.tmp ) 
 
 #PC image build

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 3/5] Splitting Tommy's big patch
  2004-05-28 20:22 [PATCH]- big patch that fixes bugs Tommy McCabe
  2004-05-28 21:30 ` [PATCH 1/5] Splitting Tommy's big patch Eduardo Pereira Habkost
  2004-05-28 21:30 ` [PATCH 2/5] " Eduardo Pereira Habkost
@ 2004-05-28 21:30 ` Eduardo Pereira Habkost
  2004-05-31 13:45   ` Miguel Bolanos
  2004-05-28 21:30 ` [PATCH 4/5] " Eduardo Pereira Habkost
  2004-05-28 21:30 ` [PATCH 5/5] Remaining (not reviewed) parts of the " Eduardo Pereira Habkost
  4 siblings, 1 reply; 13+ messages in thread
From: Eduardo Pereira Habkost @ 2004-05-28 21:30 UTC (permalink / raw)
  To: linux-8086


Fix wrong assignment (typo?) on printk.

--- elks/kernel/printk.c	2004-05-28 16:01:50.000000000 -0400
+++ elks/kernel/printk.c	2004-04-18 14:38:48.000000000 -0400
@@ -136,7 +136,7 @@
 		continue;
 	    }
 
-	    width = zero = '0';
+	    width = zero = 0;
 	    if (c == '0')
 		zero++;
 	    while (c >= '0' && c <= '9') {

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 4/5] Splitting Tommy's big patch
  2004-05-28 20:22 [PATCH]- big patch that fixes bugs Tommy McCabe
                   ` (2 preceding siblings ...)
  2004-05-28 21:30 ` [PATCH 3/5] " Eduardo Pereira Habkost
@ 2004-05-28 21:30 ` Eduardo Pereira Habkost
  2004-05-31 13:45   ` Miguel Bolanos
  2004-05-28 21:30 ` [PATCH 5/5] Remaining (not reviewed) parts of the " Eduardo Pereira Habkost
  4 siblings, 1 reply; 13+ messages in thread
From: Eduardo Pereira Habkost @ 2004-05-28 21:30 UTC (permalink / raw)
  To: linux-8086

Use tty0, not tty1 as system console. Should check if that works and boot

--- elks/init/main.c	2004-05-28 16:01:50.000000000 -0400
+++ elks/init/main.c	2004-05-09 11:05:45.000000000 -0400
@@ -106,7 +106,7 @@
 #ifdef CONFIG_CONSOLE_SERIAL
 	num = sys_open("/dev/ttyS0", 2, 0);
 #else
-	num = sys_open("/dev/tty1", 2, 0);
+	num = sys_open("/dev/tty0", 2, 0);
 #endif
 
 	if (num < 0)

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 5/5] Remaining (not reviewed) parts of the big patch
  2004-05-28 20:22 [PATCH]- big patch that fixes bugs Tommy McCabe
                   ` (3 preceding siblings ...)
  2004-05-28 21:30 ` [PATCH 4/5] " Eduardo Pereira Habkost
@ 2004-05-28 21:30 ` Eduardo Pereira Habkost
  2004-05-28 22:47   ` Tommy McCabe
  2004-05-28 22:48   ` Tommy McCabe
  4 siblings, 2 replies; 13+ messages in thread
From: Eduardo Pereira Habkost @ 2004-05-28 21:30 UTC (permalink / raw)
  To: linux-8086

[-- Attachment #1: Type: text/plain, Size: 168 bytes --]


The attached file has the remaining parts of the patch that hadn't been
reviewed. There are parts that reverted last fixes from Claudio that
were removed.

--
Eduardo

[-- Attachment #2: bigpatch.patch.gz --]
[-- Type: application/x-gzip, Size: 20234 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 5/5] Remaining (not reviewed) parts of the big patch
  2004-05-28 21:30 ` [PATCH 5/5] Remaining (not reviewed) parts of the " Eduardo Pereira Habkost
@ 2004-05-28 22:47   ` Tommy McCabe
  2004-05-28 22:48   ` Tommy McCabe
  1 sibling, 0 replies; 13+ messages in thread
From: Tommy McCabe @ 2004-05-28 22:47 UTC (permalink / raw)
  To: linux-8086

--- Eduardo Pereira Habkost
<ehabkost@conectiva.com.br> wrote:
> 
> The attached file has the remaining parts of the
> patch that hadn't been
> reviewed. There are parts that reverted last fixes
> from Claudio that
> were removed.
> 

Hey, there's a lot of important stuff in there! In
order to not revert Claudio's fixes, simply remove the
part about elkscmd/file_utils/Makefile.

> Eduardo
> 

> ATTACHMENT part 2 application/x-gzip 




	
		
__________________________________
Do you Yahoo!?
Friends.  Fun.  Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/ 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 5/5] Remaining (not reviewed) parts of the big patch
  2004-05-28 21:30 ` [PATCH 5/5] Remaining (not reviewed) parts of the " Eduardo Pereira Habkost
  2004-05-28 22:47   ` Tommy McCabe
@ 2004-05-28 22:48   ` Tommy McCabe
  2004-05-29 16:00     ` Eduardo Pereira Habkost
  1 sibling, 1 reply; 13+ messages in thread
From: Tommy McCabe @ 2004-05-28 22:48 UTC (permalink / raw)
  To: linux-8086

--- Eduardo Pereira Habkost
<ehabkost@conectiva.com.br> wrote:
> 
> The attached file has the remaining parts of the
> patch that hadn't been
> reviewed. There are parts that reverted last fixes
> from Claudio that
> were removed.
> 

Hey, there's a lot of important stuff in there! In
order to not revert Claudio's fixes, simply remove the
part about elkscmd/file_utils.

> Eduardo
> 

> ATTACHMENT part 2 application/x-gzip 




	
		
__________________________________
Do you Yahoo!?
Friends.  Fun.  Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/ 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 5/5] Remaining (not reviewed) parts of the big patch
  2004-05-28 22:48   ` Tommy McCabe
@ 2004-05-29 16:00     ` Eduardo Pereira Habkost
  0 siblings, 0 replies; 13+ messages in thread
From: Eduardo Pereira Habkost @ 2004-05-29 16:00 UTC (permalink / raw)
  To: linux-8086

[-- Attachment #1: Type: text/plain, Size: 805 bytes --]

I mean: there *were* parts that removed Claudio's fixes. I already
removed them. This 5th patch is the original patch from Tommy except
the four parts that were put on separated patches, and the parts that
reverted the fixes from Claudio.

On Fri, May 28, 2004 at 03:48:47PM -0700, Tommy McCabe wrote:
> --- Eduardo Pereira Habkost
> <ehabkost@conectiva.com.br> wrote:
> > 
> > The attached file has the remaining parts of the
> > patch that hadn't been
> > reviewed. There are parts that reverted last fixes
> > from Claudio that
> > were removed.
> > 
> 
> Hey, there's a lot of important stuff in there! In
> order to not revert Claudio's fixes, simply remove the
> part about elkscmd/file_utils.
> 
> > Eduardo
> > 
> 
> > ATTACHMENT part 2 application/x-gzip 

-- 
Eduardo

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/5] Splitting Tommy's big patch
  2004-05-28 21:30 ` [PATCH 1/5] Splitting Tommy's big patch Eduardo Pereira Habkost
@ 2004-05-31 13:44   ` Miguel Bolanos
  0 siblings, 0 replies; 13+ messages in thread
From: Miguel Bolanos @ 2004-05-31 13:44 UTC (permalink / raw)
  To: Eduardo Pereira Habkost; +Cc: linux-8086

Applied. Thanks.

Mike

On Fri, 2004-05-28 at 15:30, Eduardo Pereira Habkost wrote:
> Use #ifdef rightly on setup.S
> 
> --- elks/arch/i86/boot/setup.S	2004-05-28 16:01:49.000000000 -0400
> +++ elks/arch/i86/boot/setup.S	2004-04-18 14:42:59.000000000 -0400
> @@ -585,7 +585,7 @@
>  	or	al,al
>  	jnz	is486
>  #endif
> -#ifdef(CONFIG_CPU_80386)
> +#ifdef CONFIG_CPU_80386
>          mov cl,#7
>  	lea	si,p80386
>  	br	getfpu
> -
> To unsubscribe from this list: send the line "unsubscribe linux-8086" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 2/5] Splitting Tommy's big patch
  2004-05-28 21:30 ` [PATCH 2/5] " Eduardo Pereira Habkost
@ 2004-05-31 13:44   ` Miguel Bolanos
  0 siblings, 0 replies; 13+ messages in thread
From: Miguel Bolanos @ 2004-05-31 13:44 UTC (permalink / raw)
  To: Eduardo Pereira Habkost; +Cc: linux-8086

Applied. Thanks

Mike

On Fri, 2004-05-28 at 15:30, Eduardo Pereira Habkost wrote:
> Fix order of LD parameters on arch/i86/Makefile
> 
> --- elks/arch/i86/Makefile	2004-05-28 16:01:49.000000000 -0400
> +++ elks/arch/i86/Makefile	2004-04-18 14:45:26.000000000 -0400
> @@ -105,9 +105,10 @@
>  
>  boot/system:	$(AARCHIVES) $(ADRIVERS) boot/crt1.o boot/crt0.o
>  	(cd $(BASEDIR) ; $(LD) $(LDFLAGS) $(ARCH_LD) \
> +		-t -M -o $(ARCH_DIR)/boot/system \
>  		$(ARCH_DIR)/boot/crt0.o $(ARCH_DIR)/boot/crt1.o \
>  		init/main.o $(ARCHIVES) $(DRIVERS) \
> -		-t -M -o $(ARCH_DIR)/boot/system > System.tmp ; \
> +		> System.tmp ; \
>  		sort -k4 System.tmp > System.map ; rm -f System.tmp ) 
>  
>  #PC image build
> -
> To unsubscribe from this list: send the line "unsubscribe linux-8086" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 3/5] Splitting Tommy's big patch
  2004-05-28 21:30 ` [PATCH 3/5] " Eduardo Pereira Habkost
@ 2004-05-31 13:45   ` Miguel Bolanos
  0 siblings, 0 replies; 13+ messages in thread
From: Miguel Bolanos @ 2004-05-31 13:45 UTC (permalink / raw)
  To: Eduardo Pereira Habkost; +Cc: linux-8086

Applied. Thanks

Mike

On Fri, 2004-05-28 at 15:30, Eduardo Pereira Habkost wrote:
> Fix wrong assignment (typo?) on printk.
> 
> --- elks/kernel/printk.c	2004-05-28 16:01:50.000000000 -0400
> +++ elks/kernel/printk.c	2004-04-18 14:38:48.000000000 -0400
> @@ -136,7 +136,7 @@
>  		continue;
>  	    }
>  
> -	    width = zero = '0';
> +	    width = zero = 0;
>  	    if (c == '0')
>  		zero++;
>  	    while (c >= '0' && c <= '9') {
> -
> To unsubscribe from this list: send the line "unsubscribe linux-8086" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 4/5] Splitting Tommy's big patch
  2004-05-28 21:30 ` [PATCH 4/5] " Eduardo Pereira Habkost
@ 2004-05-31 13:45   ` Miguel Bolanos
  0 siblings, 0 replies; 13+ messages in thread
From: Miguel Bolanos @ 2004-05-31 13:45 UTC (permalink / raw)
  To: Eduardo Pereira Habkost; +Cc: linux-8086

Applied. Thanks

Mike

On Fri, 2004-05-28 at 15:30, Eduardo Pereira Habkost wrote:
> Use tty0, not tty1 as system console. Should check if that works and boot
> 
> --- elks/init/main.c	2004-05-28 16:01:50.000000000 -0400
> +++ elks/init/main.c	2004-05-09 11:05:45.000000000 -0400
> @@ -106,7 +106,7 @@
>  #ifdef CONFIG_CONSOLE_SERIAL
>  	num = sys_open("/dev/ttyS0", 2, 0);
>  #else
> -	num = sys_open("/dev/tty1", 2, 0);
> +	num = sys_open("/dev/tty0", 2, 0);
>  #endif
>  
>  	if (num < 0)
> -
> To unsubscribe from this list: send the line "unsubscribe linux-8086" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2004-05-31 13:45 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-05-28 20:22 [PATCH]- big patch that fixes bugs Tommy McCabe
2004-05-28 21:30 ` [PATCH 1/5] Splitting Tommy's big patch Eduardo Pereira Habkost
2004-05-31 13:44   ` Miguel Bolanos
2004-05-28 21:30 ` [PATCH 2/5] " Eduardo Pereira Habkost
2004-05-31 13:44   ` Miguel Bolanos
2004-05-28 21:30 ` [PATCH 3/5] " Eduardo Pereira Habkost
2004-05-31 13:45   ` Miguel Bolanos
2004-05-28 21:30 ` [PATCH 4/5] " Eduardo Pereira Habkost
2004-05-31 13:45   ` Miguel Bolanos
2004-05-28 21:30 ` [PATCH 5/5] Remaining (not reviewed) parts of the " Eduardo Pereira Habkost
2004-05-28 22:47   ` Tommy McCabe
2004-05-28 22:48   ` Tommy McCabe
2004-05-29 16:00     ` Eduardo Pereira Habkost

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox