As promised here is the diff & misc info on the build. I installed the Mt Xinu disks to create a build environment and uucp’d the sources from CD#4 of Kirks’ CSRG set (/local/MACH/386/sys).
Grepping the source reveals it to be MK35. Which makes sense from the release notes as this was an i386 only release:
------8<------8<------8<------8<
***** MK Version MK35 (rvb) *****
This is an I386 architecture release only. It has been tested
on an AT as well as the hypercube.
No New features:
--- --------
Except possibly that the if_pc586.c is not timing dependent
any more.
The big deal about this release is that all the files in the
i386at directory and the files in Mach2.5 I386q are identical --
that is all improvements in the mainline have been merged to
the 3.0 code and vice versa. NOTE: the 3.0 com driver has
not been tested cause I did not have any hardware. Also I
have lpr and if_par drivers that I did not even install for
the same reason. (I needed to install com.c for the mouse
support code.)
ALSO, this release has the Prime copyrights changed to something
less threatening, courtesy of Prime Computer Inc.
Bug fix:
The panic that rfr reported with the ram_to_ptr is no longer
possible.
------8<------8<------8<------8<
For people who like DMESG’s here it is:
------8<------8<------8<------8<
boot:
442336+46792+115216[+38940+39072]
Insert file system
Sÿ boot: memory from 0x1000 to 0x7d0000
Kernel virtual space from 0xc0000000 to 0xc25d0000.
Available physical space from 0xa000 to 0x7d0000
i386_init: virtual_avail = c07d0000, virtual_end = c25d0000
end c01938d8, sym c01938dc(981c) str = c019d0f8(98a4)
[ preserving 78016 bytes of symbol table ]
Mach/4.3 #5.1(I386x): Wed Jan 20 00:45:55 WET 1988; obj/STD+WS-afs-nfs (localhost)
physical memory = 7.81 megabytes. vm_page_free_count = 689
using 200 buffers containing 0.78 megabytes of memory
available memory = 5.55 megabytes. vm_page_free_count = 58e
fdc0: port = 3f2, spl = 5, pic = 6.
fd0: port = 3f2, spl = 5, pic = 6. (controller 0, slave 0)
fd1: port = 3f2, spl = 5, pic = 6. (controller 0, slave 1)
com0: port = 3f8, spl = 6, pic = 4. (DOS COM1)
lpr0: port = 378, spl = 6, pic = 7.
par0: port = 378, spl = 6, pic = 7.
root on `b
------8<------8<------8<------8<
The diff from the CD is as follows:
------8<------8<------8<------8<
jsteve@2006macpro:/mnt/c/temp/csrg$ diff -ruN sys mach25-i386
diff -ruN sys/Makeconf mach25-i386/Makeconf
--- sys/Makeconf 1970-01-01 08:00:00.000000000 +0800
+++ mach25-i386/Makeconf 2019-06-24 15:24:49.000000000 +0800
@@ -0,0 +1,102 @@
+#
+# Mach Operating System
+# Copyright (c) 1989 Carnegie-Mellon University
+# All rights reserved. The CMU software License Agreement specifies
+# the terms and conditions for use and redistribution.
+#
+#
+# HISTORY
+# $Log: Makeconf,v $
+# Revision 2.16 91/09/25 18:51:17 mja
+# Fix VAX_CONFIG so that processor number component is last (for
+# SUP wild-carding to work); make MMAX_CONFIG consistent with
+# other platforms as STD+ANY+EXP+64.
+# [91/09/25 18:41:59 mja]
+#
+# Revision 2.15 91/09/24 20:07:07 mja
+# Require new ${KERNEL_SERIES} macro in place of old ${RELEASE}
+# even to specify the "latest" series; add temporary
+# ${ENVIRON_BASE}; add silent include of Makeconf-local.
+# [91/09/22 03:16:36 mja]
+#
+# Add SITE; set SOURCEDIR to MASTERSOURCEDIR if present (for build).
+# [91/09/21 18:06:08 mja]
+#
+# Revision 2.14 91/08/30 09:37:19 berman
+# Set up default config for MMAX which is STD+MP (multiprocessor)
+# [91/07/30 12:19:40 ern]
+#
+# Revision 2.13 91/04/02 16:04:53 mbj
+# Added {I,AT}386_CONFIG=STD+WS+EXP lines.
+# Changed ${MACHINE} references to ${TARGET_MACHINE}.
+#
+# Revision 2.12 90/08/30 12:24:52 bohman
+# Changes for mac2.
+# [90/08/28 bohman]
+#
+# Revision 2.11 89/09/25 22:43:32 mja
+# Correct mis-merged OBJECTDIR.
+#
+# Revision 2.10 89/09/25 22:20:03 mja
+# Use SOURCEDIR instead of VPATH for shadowing. This means we
+# can do away with the SRCSUFFIX stuff which "make" does by
+# itself, and that Makefiles can use VPATH themselves. I also
+# "simplified" the definition of CONFIG and "release_...".
+# [89/07/06 bww]
+#
+# Revision 2.9 89/08/08 21:44:58 jsb
+# Defined PMAX_CONFIG.
+# [89/08/03 rvb]
+#
+# Revision 2.8 89/07/12 23:02:52 jjc
+# Defined SUN4_CONFIG.
+# [89/07/12 23:01:03 jjc]
+#
+# Revision 2.7 89/04/10 00:34:59 rpd
+# Changed OBJECTDIR name to correspond to new organization.
+# [89/04/06 mrt]
+#
+# Revision 2.6 89/02/25 14:12:18 gm0w
+# Changes for cleanup.
+#
+# Revision 2.5 89/02/25 14:08:30 gm0w
+# Changes for cleanup.
+#
+# Revision 2.4 88/11/14 15:04:01 gm0w
+# Changed the standard configurations to correspond
+# to the new names.
+# [88/11/02 15:45:44 mrt]
+#
+# Revision 2.3 88/09/07 15:44:43 rpd
+# Moved CONFIG macros here from Makefile, so that the user
+# can easily customize them by modifying Makeconf.
+# [88/09/07 01:52:32 rpd]
+#
+# Revision 2.2 88/07/15 15:11:46 mja
+# Created.
+#
+
+VAX_CONFIG = STD+ANY+EXP+16
+mac2_CONFIG = MACMACH-macos_emul
+I386_CONFIG = STD+WS+EXP
+AT386_CONFIG = STD+WS+EXP
+MMAX_CONFIG = STD+ANY+EXP+64
+
+#CONFIG = ${${TARGET_MACHINE}_CONFIG?${${TARGET_MACHINE}_CONFIG}:STD+ANY+EXP}
+#CONFIG = STD+WS+EXP-afs-nfs
+CONFIG = STD+WS-afs-nfs
+
+SITE = CMUCS
+
+SOURCEDIR = ${MASTERSOURCEDIR?${MASTERSOURCEDIR}:${SRCBASE}}
+
+#OBJECTDIR = ../../../obj/@sys/kernel/${KERNEL_SERIES}
+OBJECTDIR = ./obj
+
+# XXX until build is fixed to set these XXX
+ENVIRON_BASE = ${RELEASE_BASE}
+
+.EXPORT: ENVIRON_BASE
+
+# Provide for private customizations in a shadow directory
+-include Makeconf-local
diff -ruN sys/Makefile mach25-i386/Makefile
--- sys/Makefile 2016-08-08 14:37:11.000000000 +0800
+++ mach25-i386/Makefile 2019-06-24 15:24:49.000000000 +0800
@@ -206,6 +206,12 @@
at386_cpu=i386
sun4_cpu=sun4
cpu=$(${machine}_cpu)
+#echo "CPU IS $cpu"
+AT386_cpu=i386
+I386_cpu=i386
+cpu=${${TARGET_MACHINE}_cpu?${${TARGET_MACHINE}_cpu}:${target_machine}}
+#echo "CPU IS $cpu"
+
VAX_OUTPUT=Makefile
SUN_OUTPUT=Makefile
diff -ruN sys/conf/newvers.sh mach25-i386/conf/newvers.sh
--- sys/conf/newvers.sh 2016-08-08 14:37:11.000000000 +0800
+++ mach25-i386/conf/newvers.sh 2019-06-24 15:25:15.000000000 +0800
@@ -56,8 +56,17 @@
v="${major}.${minor}(${variant}${edit}${patch})" d=`pwd` h=`hostname` t=`date`
CONFIG=`cat vers.config`
if [ -z "$d" -o -z "$h" -o -z "$t" -o -z "${CONFIG}" ]; then
- exit 1
+# exit 1
+edit="386"
+major=5
+minor=1
+variant="I"
+patch="x"
+copyright="/copyright.txt"
+v="${major}.${minor}(${variant}${edit}${patch})" d=`pwd` h=`hostname` t=`date`
fi
+#
+
d=`expr "$d" : '.*/\([^/]*\)/[^/]*$'`/${CONFIG}
(
/bin/echo "int version_major = ${major};" ;
diff -ruN sys/i386/start.s mach25-i386/i386/start.s
--- sys/i386/start.s 2016-08-08 14:37:11.000000000 +0800
+++ mach25-i386/i386/start.s 2019-07-01 23:47:25.208021800 +0800
@@ -210,13 +210,14 @@
lgdt (%eax)
+ / flip cr3 before you flip cr0
+ mov %edx, %cr3
+
/ turn PG on
mov %cr0, %eax
or $PAGEBIT, %eax
mov %eax, %cr0
- mov %edx, %cr3
-
ljmp $KTSSSEL, $0x0
/ *********************************************************************
diff -ruN sys/standi386at/boot/disk.c mach25-i386/standi386at/boot/disk.c
--- sys/standi386at/boot/disk.c 2016-08-08 14:37:11.000000000 +0800
+++ mach25-i386/standi386at/boot/disk.c 2019-07-01 23:51:11.261850100 +0800
@@ -340,11 +340,11 @@
#ifndef FIND_PART
*rel_off = vp->part[part].p_start;
- if (vp->part[part].p_tag != V_ROOT)
+ if (vp->part[part].p_flag != V_ROOT)
printf("warning... partition %d not root\n", part);
#else
for (i = 0; i < vp->nparts; i++)
- if (vp->part[i].p_tag == V_ROOT)
+ if (vp->part[i].p_flag == V_ROOT)
break;
if (i == vp->nparts) {
------8<------8<------8<------8<