mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-27 00:57:50 +00:00
New port of ITS RP06 filesystem image for KLH10 PDP-10 emulator
New port containing an ITS RP06 filesystem image for KLH10 PDP-10 emulator. Now's your chance to see firsthand what was happening at MIT in the 60s through the early 90s. Run the original versions of Emacs on TECO and Maclisp, etc. PR: ports/39912 Submitted by: Ken Stailey <kstailey@speakeasy.net>
This commit is contained in:
parent
010ce51d3b
commit
cecf451da1
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=73490
@ -29,6 +29,7 @@
|
||||
SUBDIR += hfsutils
|
||||
SUBDIR += ia64sim
|
||||
SUBDIR += ines
|
||||
SUBDIR += its
|
||||
SUBDIR += klh10
|
||||
SUBDIR += kmamerun
|
||||
SUBDIR += libvm68k
|
||||
|
59
emulators/its/Makefile
Normal file
59
emulators/its/Makefile
Normal file
@ -0,0 +1,59 @@
|
||||
# New ports collection makefile for: its
|
||||
# Date created: 11 January 2002
|
||||
# Whom: kstailey
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= its
|
||||
PORTVERSION= 1.0
|
||||
CATEGORIES= emulators
|
||||
MASTER_SITES= ftp://ftp.usefulprojects.com/pub/FreeBSD/ports/distfiles/
|
||||
DISTNAME= PI-ITS-RP06.0-dbd9
|
||||
EXTRACT_SUFX= .bz2
|
||||
EXTRACT_ONLY= # none
|
||||
|
||||
MAINTAINER= kstailey@yahoo.com
|
||||
|
||||
BUILD_DEPENDS= kn10-ks:${PORTSDIR}/emulators/klh10
|
||||
RUN_DEPENDS= kn10-ks:${PORTSDIR}/emulators/klh10
|
||||
|
||||
ONLY_FOR_ARCHS= i386 # really KLH10 has this problem.
|
||||
|
||||
NO_WRKSUBDIR= yes
|
||||
NO_BUILD= yes
|
||||
NO_PACKAGE= PI ITS RP06 disk image is too big.
|
||||
NO_CDROM= PI ITS RP06 disk image is too big.
|
||||
|
||||
# KSITS_KLH10_HOME and KSITS_DRIVER_DIR must be set to the same locations
|
||||
# that the klh10 port uses
|
||||
KSITS_KLH10_DIR= klh10-ks-its
|
||||
KLH10_HOME= ${PREFIX}/share/${KSITS_KLH10_DIR}
|
||||
KSITS_DRIVER_DIR= ${PREFIX}/libexec/${KSITS_KLH10_DIR}
|
||||
IMAGE_HOME?= ${KLH10_HOME}
|
||||
IMAGE_NAME= PI-ITS-RP06.0-dbd9
|
||||
IMAGE_BZ2= ${IMAGE_NAME}.bz2
|
||||
DOCDIR= ${PREFIX}/share/doc/${KSITS_KLH10_DIR}
|
||||
PLIST_SUB+= IMAGE_HOME=${IMAGE_HOME}
|
||||
|
||||
do-install:
|
||||
@ ${ECHO} Installing compressed PI ITS RP06 disk image in ${IMAGE_HOME}
|
||||
.if (${IMAGE_HOME} == ${KLH10_HOME})
|
||||
@ ${ECHO} Use IMAGE_HOME=/my/directory to relocate.
|
||||
.endif
|
||||
@ ${MKDIR} ${IMAGE_HOME}
|
||||
@ ${INSTALL_DATA} ${DISTDIR}/${IMAGE_BZ2} ${IMAGE_HOME}/${IMAGE_BZ2}
|
||||
@ ${INSTALL_DATA} ${FILESDIR}/klh10-kn-freebsd.ini.in ${KLH10_HOME}
|
||||
@ ${INSTALL_SCRIPT} ${FILESDIR}/its.sh ${PREFIX}/bin/its
|
||||
@ ${SED} -e "s;@PI-IMG@;${IMAGE_NAME};g" \
|
||||
-e "s;@KLH-SHARE@;${KLH10_HOME};g" \
|
||||
-e "s;@KLH-LIBEX@;${KSITS_DRIVER_DIR};g" \
|
||||
${FILESDIR}/its-user-install.sh > ${WRKSRC}/its-user-install
|
||||
@ ${INSTALL_SCRIPT} ${WRKSRC}/its-user-install ${PREFIX}/bin
|
||||
@ ${INSTALL_MAN} ${FILESDIR}/MIT-ITS-papers ${DOCDIR}
|
||||
@ ${SED} -e "s;@PREFIX@;${PREFIX};g" \
|
||||
${FILESDIR}/README.FIRST >${WRKSRC}/README.FIRST
|
||||
@ ${INSTALL_MAN} ${WRKSRC}/README.FIRST ${DOCDIR}
|
||||
@ ${ECHO} "*** Please read ${DOCDIR}/README.FIRST"
|
||||
|
||||
.include <bsd.port.mk>
|
1
emulators/its/distinfo
Normal file
1
emulators/its/distinfo
Normal file
@ -0,0 +1 @@
|
||||
MD5 (PI-ITS-RP06.0-dbd9.bz2) = c575c2b02326b26fd36c732378174cbc
|
17
emulators/its/files/MIT-ITS-papers
Normal file
17
emulators/its/files/MIT-ITS-papers
Normal file
@ -0,0 +1,17 @@
|
||||
ITS Status report (includes architecture info) from 1972
|
||||
ftp://publications.ai.mit.edu/ai-publications/0-499/AIM-238.ps
|
||||
|
||||
ITS reference manual from 1969:
|
||||
ftp://publications.ai.mit.edu/ai-publications/0-499/AIM-161A.ps
|
||||
|
||||
Midas macro assembler documentation from 1965:
|
||||
ftp://publications.ai.mit.edu/ai-publications/0-499/AIM-090.ps
|
||||
|
||||
DDT debugger ("system apex procedure" i.e. "shell") from 1968
|
||||
ftp://publications.ai.mit.edu/ai-publications/0-499/AIM-147.ps
|
||||
|
||||
Emacs text editor (original ITS version)
|
||||
ftp://publications.ai.mit.edu/ai-publications/500-999/AIM-519A.ps
|
||||
|
||||
These files may be converted to PDF or gzipped to save space:
|
||||
$ ps2pdf13 AIM-238.ps AIM-238.pdf
|
190
emulators/its/files/README.FIRST
Normal file
190
emulators/its/files/README.FIRST
Normal file
@ -0,0 +1,190 @@
|
||||
Consider adding firewall protection for the KLH-10 emulator before
|
||||
ever running it. See @PREFIX@/share/doc/its/pubits/adm directory for
|
||||
samples.
|
||||
|
||||
To setup the emulator you must run the its-user-install(1) command.
|
||||
It takes no arguments. It is best to run it as a regular (non-root)
|
||||
user. Once that has been done to start ITS run the its(1) command.
|
||||
It also takes no arguments.
|
||||
|
||||
The first time the ITS boots it will not know the time of day. ITS
|
||||
will display this message:
|
||||
|
||||
The time could not be set because:
|
||||
No host responded.
|
||||
It will be necessary for someone to set the time
|
||||
manually by logging in and running :PDSET.
|
||||
|
||||
Tell ITS to activate the apex procedure, DDT, by typing a Ctrl-Z.
|
||||
When you type that you will see:
|
||||
|
||||
KN ITS.1647. DDT.1545.
|
||||
TTY 0
|
||||
You're all alone, Fair share = 0%
|
||||
|
||||
(ITS does not know the date, so messages cannot be reviewed right now.)
|
||||
|
||||
Then run PDSET by typing (colon and all)
|
||||
|
||||
:pdset
|
||||
|
||||
ITS will suggest that you log in but you don't have to.
|
||||
|
||||
(Please Log In)
|
||||
___002 PDSET IOTLSR
|
||||
|
||||
Now enter the time and save it. First the century:
|
||||
|
||||
20C
|
||||
|
||||
Next the YYMMDD:
|
||||
|
||||
020219D
|
||||
|
||||
Then the HHMMSS (try to time it so you have some lead time because it
|
||||
will become active when you save it.)
|
||||
|
||||
235115T
|
||||
|
||||
Now save the time:
|
||||
|
||||
!.
|
||||
|
||||
Now exit PDSET
|
||||
|
||||
X
|
||||
|
||||
You will have no feedback from the exit operation except that new
|
||||
commands will be echoed in lower case. Now bring down ITS so you can
|
||||
start it without being root:
|
||||
|
||||
:lock
|
||||
(Please Log In)
|
||||
LOCK.154
|
||||
_
|
||||
|
||||
the _ is a prompt, do not type it. Type
|
||||
|
||||
5down
|
||||
|
||||
LOCK is very picky about typos so be careful. It does not need the
|
||||
Enter key so don't use it.
|
||||
|
||||
DO YOU REALLY WANT THE SYSTEM TO GO DOWN?
|
||||
|
||||
Type "y"
|
||||
|
||||
y
|
||||
___004
|
||||
PLEASE ENTER A BRIEF MESSAGE TO USERS, ENDED BY ^C
|
||||
LOCK SYS DOWN MAIL WRITE 21:13:17
|
||||
|
||||
Just type Ctrl-C for the message unless you have a burning desire to
|
||||
talk to yourself via ITS.
|
||||
|
||||
KN ITS going down in 5:00
|
||||
CULPRIT = ___004 LOCK 21:13:38
|
||||
|
||||
|
||||
_
|
||||
KN ITS 1647 NOT IN OPERATION 21:13:38
|
||||
PFTHMG DRAGON CHANNA _DRGN_ TIMES WRITE 21:13:38
|
||||
PFTHMG DRAGON CHANNA LOGOUT TIMES DELRNM 21:13:38
|
||||
|
||||
After the "NOT IN OPERATION" message only very special programs like
|
||||
the accounting dragon, PFTHMG DRAGON, may run. Be patient and it will
|
||||
finish with:
|
||||
|
||||
SHUTDOWN COMPLETE
|
||||
PI LEVEL 7 BUGDDT. TYPE <ALTMODE>P TO CONTINUE.
|
||||
YOU ARE NOW IN DDT.
|
||||
BUGPC/ CAIA COFFI4+1 $Q-2/ JRST COFFI7
|
||||
|
||||
If ITS gets stuck shutting down for more than five minutes just
|
||||
continue from here:
|
||||
|
||||
At this point type Ctrl-\ to abort KLH10 back to the monitor.
|
||||
|
||||
[HALTED: FE interrupt]
|
||||
KLH10>
|
||||
|
||||
and quit KLH10
|
||||
|
||||
KLH10> quit
|
||||
Are you sure you want to quit? [Confirm]y
|
||||
Shutting down...Bye!
|
||||
$
|
||||
|
||||
ITS uses DEL for erasing characters. ITS defaults to dumb hardcopy
|
||||
terminal settings. This is a pain so you want to configure ITS to
|
||||
use something nicer. ITS knows about VT52. If you are using xterm
|
||||
from XFree86 you can get into VT52 mode by running a script like this:
|
||||
|
||||
#! /bin/sh
|
||||
|
||||
awk 'END {printf "%c[?2l", 27}' </dev/null
|
||||
|
||||
From ITS run
|
||||
:tctyp vt52
|
||||
|
||||
On your VT52 mode terminal emulator.
|
||||
|
||||
An alternative is that you can use vt100 mode via the CRTSTY program
|
||||
which is a bit like window(1) in that you end up on something like a
|
||||
pty but only one full screen window is available and it does terminal
|
||||
emulation on it. You will be automatically logged in a second time on
|
||||
the same terminal as a crufty side-effect.
|
||||
|
||||
:crtsty vt100 speed 9600
|
||||
|
||||
Run :info and look at the introductory information about the
|
||||
filesystem. I did not find that it covers directory operations very
|
||||
well so here is what I have found out. ITS does have a process tree
|
||||
(try the PEEK command) but does not have a directory tree. There is a
|
||||
Master File Directory MFD (try DSKUSE * or DIRED and then MFD. Use
|
||||
"Q" to quit after either of those.) and User File Directories UFDs one
|
||||
level deep only. The only way to remove a directory is to delete its
|
||||
contents and run the salvager. The salvager is the ITS equivalent of
|
||||
fsck and will automatically be run at boot time. To create a new
|
||||
directory provide certain options to the open UUO (ITS equivalent of
|
||||
system call; try the DOC UUO command.) Since the PRINT command calls
|
||||
the open UUO you can create a directory using print:
|
||||
|
||||
:print ..new. (udir) dirnam;
|
||||
|
||||
Where dirnam; is the name of the directory to be created. Directory
|
||||
names are limited to six characters.
|
||||
|
||||
Missing from this ITS distribution is the INQUIR database. It
|
||||
contains user information. There were too many personal details in it
|
||||
and no one has been able to scrub it so it was left out. This means
|
||||
you cannot have a complete user account yet. The best you can do is
|
||||
to pick a user name and make yourself a directory with that name and
|
||||
put a login script in it. In this example the user "user" is created:
|
||||
|
||||
:login user
|
||||
:print ..new. (udir) user;
|
||||
:emacs login user
|
||||
[add startup code like ":tctyp vt52" and ^X^S to save ^X^C to exit]
|
||||
|
||||
You log out with <ALTMODE><ALTMODE>u which is [Esc][Esc]u and
|
||||
represented in the documentation as $$u
|
||||
|
||||
The ITS equivalent of $PATH is implemented by scanning all
|
||||
directories for files for files with TS as the first name and
|
||||
the second name set to the command you issued. By convention
|
||||
most commands are in the SYS; SYS1; ... SYSN; directories.
|
||||
ITS supports symlinks via the LINK command and TS name is often
|
||||
a symlink.
|
||||
|
||||
ITS equivalent of job control works by typing ^Z to interrupt the
|
||||
current program. To get back to the DDT prompt "*" use $^K
|
||||
|
||||
Don't like DDT as the shell? Try MONMOD to use monitor mode where the
|
||||
colon is printed for you. DDTMOD gets you back. Or try SHELL to
|
||||
bring up a UNIX-like shell.
|
||||
|
||||
Zork was developed in MDL (muddle) on an ITS system but apparently it
|
||||
suffered from being too popular. Try the ZORK command to see what
|
||||
happened. A scrap of MDL source code is left (:find @muddle) but I
|
||||
don't know how to MIDAS it.
|
216
emulators/its/files/its-user-install.sh
Normal file
216
emulators/its/files/its-user-install.sh
Normal file
@ -0,0 +1,216 @@
|
||||
#! /bin/sh
|
||||
|
||||
# $FreeBSD$
|
||||
|
||||
# 1) zcat the PI fs image into a user's directory (the compressed
|
||||
# image location is also configurable via "make install")
|
||||
#
|
||||
# 2) copy or lndir the /usr/local/share/klh10-ks-its/* (this location
|
||||
# is immutable) bits into a user's directory
|
||||
#
|
||||
# 3) generate the klh-kn-its-freebsd .ini file for the user
|
||||
#
|
||||
# 4) generate ~/.itsrc file for its(1) command so that multple users
|
||||
# can use its(1) with different filesystem images.
|
||||
|
||||
umask 022
|
||||
|
||||
# remove symlinks in cleanup()?
|
||||
|
||||
cleanup() {
|
||||
rm -f $KLH10_HOME/@PI-IMG@
|
||||
echo its-install-user: Terminating.
|
||||
exit 1
|
||||
}
|
||||
|
||||
trap cleanup 1 2 3 15
|
||||
|
||||
validate_ip() {
|
||||
echo $1 | grep -q -s '[^0-9\.]'
|
||||
if [ $? != 1 ]; then
|
||||
echo its-install-user: IP address must be digits and periods only.
|
||||
return 1
|
||||
fi
|
||||
echo $1 | grep -q -s '\..*\..*\.'
|
||||
if [ $? != 0 ]; then
|
||||
echo its-install-user: IP address must have at least three periods.
|
||||
return 1
|
||||
fi
|
||||
echo $1 | grep -q -s '\..*\..*\..*\.'
|
||||
if [ $? = 0 ]; then
|
||||
echo its-install-user: IP address must not exceed three periods.
|
||||
return 1
|
||||
fi
|
||||
echo $1 | grep -q -s '\.\.'
|
||||
if [ $? = 0 ]; then
|
||||
echo its-install-user: IP address must not have consecutive periods.
|
||||
return 1
|
||||
fi
|
||||
OLDIFS="$IFS"
|
||||
IFS=.
|
||||
set $1
|
||||
for i in $* ; do
|
||||
if [ $i -gt 255 ]; then
|
||||
echo its-install-user: Octets of IP address must not exceed 255.
|
||||
IFS="$OLDIFS"
|
||||
return 1
|
||||
fi
|
||||
done
|
||||
IFS="$OLDIFS"
|
||||
return 0
|
||||
}
|
||||
|
||||
in_network=false
|
||||
for i in `groups`; do
|
||||
if [ $i = network ]; then
|
||||
in_network=true
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ `whoami` = root ]; then
|
||||
in_network=true
|
||||
fi
|
||||
|
||||
if [ $in_network = false ]; then
|
||||
echo WARNING: You must be in group network in order to run a networked ITS.
|
||||
echo WARNING: You may still run a non-networked ITS.
|
||||
fi
|
||||
|
||||
if [ ! -d @KLH-SHARE@ ]; then
|
||||
echo its-install-user: Can\'t find the emulator directory.
|
||||
cleanup
|
||||
fi
|
||||
|
||||
cd @KLH-SHARE@
|
||||
|
||||
if [ ! -r @PI-IMG@.bz2 ]; then
|
||||
echo its-install-user: The compressed PI disk image is missing.
|
||||
cleanup
|
||||
fi
|
||||
|
||||
valid_input=false
|
||||
while [ $valid_input = false ]; do
|
||||
KLH10_HOME=~/klh10-its-home
|
||||
echo Where do you want to install the 170MB filesystem image\?
|
||||
echo -n "[default: $KLH10_HOME]: "
|
||||
read ans
|
||||
if [ "$ans" != "" ]; then
|
||||
KLH10_HOME=$ans
|
||||
fi
|
||||
|
||||
if [ -e $KLH10_HOME -a ! -d $KLH10_HOME ]; then
|
||||
echo There already is a non-directory $KLH10_HOME in the filesystem.
|
||||
continue
|
||||
fi
|
||||
if [ ! -d $KLH10_HOME ]; then
|
||||
echo -n "$KLH10_HOME is not an existing directory. Create it? (y/n) "
|
||||
read yorn
|
||||
case "$yorn" in
|
||||
y|Y)
|
||||
if ! mkdir -p $KLH10_HOME ; then
|
||||
echo its-install-user: Can\'t make the target directory.
|
||||
cleanup
|
||||
else
|
||||
valid_input=true
|
||||
fi
|
||||
;;
|
||||
n|N)
|
||||
echo Type the interupt key to quit or try again.
|
||||
;;
|
||||
*)
|
||||
echo "I do not recognize your answer. ($yorn)"
|
||||
;;
|
||||
esac
|
||||
elif [ ! -w $KLH10_HOME ]; then
|
||||
if ! chmod u+w $KLH10_HOME || chmod g+w $KLH10_HOME; then
|
||||
echo its-install-user: Can\'t write in $KLH10_HOME
|
||||
elif [ ! -w $KLH10_HOME ]; then
|
||||
echo its-install-user: Can\'t write in $KLH10_HOME
|
||||
else
|
||||
valid_input=true
|
||||
fi
|
||||
else
|
||||
valid_input=true
|
||||
fi
|
||||
done
|
||||
|
||||
echo Extracting @PI-IMG@.bz2 into $KLH10_HOME
|
||||
bzcat @PI-IMG@.bz2 > $KLH10_HOME/@PI-IMG@
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
echo its-install-user: What a mess--the extract failed.
|
||||
cleanup
|
||||
fi
|
||||
|
||||
echo Linking up the emulator support files.
|
||||
for i in *; do
|
||||
case $i in
|
||||
@PI-IMG@.bz2) # exclusions
|
||||
;;
|
||||
*)
|
||||
rm -f $KLH10_HOME/$i && ln -s @KLH-SHARE@/$i $KLH10_HOME
|
||||
if [ $? != 0 ]; then
|
||||
echo its-install-user: Failed to make symlinks.
|
||||
cleanup
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done
|
||||
cd @KLH-LIBEX@
|
||||
for i in *; do
|
||||
rm -f $KLH10_HOME/$i && ln -s @KLH-LIBEX@/$i $KLH10_HOME
|
||||
if [ $? != 0 ]; then
|
||||
echo its-install-user: Failed to make symlinks.
|
||||
cleanup
|
||||
fi
|
||||
done
|
||||
cd $KLH10_HOME
|
||||
|
||||
EM_IP=10.134.198.236
|
||||
valid_input=false
|
||||
while [ $valid_input = false ]; do
|
||||
echo -n "What is the IP address for the emulated PDP-10? [$EM_IP]: "
|
||||
read ans
|
||||
if [ "$ans" != "" ]; then
|
||||
if validate_ip $ans ; then
|
||||
valid_input=true
|
||||
EM_IP=$ans
|
||||
fi
|
||||
else
|
||||
valid_input=true
|
||||
fi
|
||||
done
|
||||
|
||||
GW_IP=10.0.0.1
|
||||
valid_input=false
|
||||
while [ $valid_input = false ]; do
|
||||
echo -n "What is the IP address for the gateway' [$GW_IP]: "
|
||||
read ans
|
||||
if [ "$ans" != "" ]; then
|
||||
if validate_ip $ans ; then
|
||||
valid_input=true
|
||||
GW_IP=$ans
|
||||
fi
|
||||
else
|
||||
valid_input=true
|
||||
fi
|
||||
done
|
||||
|
||||
sed -e "s;@IPADDR@;$EM_IP;g" \
|
||||
-e "s;@GWADDR@;$GW_IP;g" \
|
||||
-e "s;@KLH-HOME@;$KLH10_HOME;g" \
|
||||
< klh10-kn-freebsd.ini.in > klh10-kn-freebsd.ini
|
||||
if [ $? != 0 ]; then
|
||||
echo its-install-user: Failed to generate ini file.
|
||||
cleanup
|
||||
fi
|
||||
rm -f klh10-kn-freebsd.ini.in
|
||||
|
||||
rm -f ~/itsrc
|
||||
echo KLH10_HOME=$KLH10_HOME > ~/.itsrc
|
||||
echo PI_IMAGE=$KLH10_HOME/@PI-IMG@ >> ~/.itsrc
|
||||
if [ $? != 0 ]; then
|
||||
echo its-install-user: Failed to generate rc file.
|
||||
cleanup
|
||||
fi
|
57
emulators/its/files/its.sh
Normal file
57
emulators/its/files/its.sh
Normal file
@ -0,0 +1,57 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
# Run KLH10 with KS-ITS hardware configuration and ITS OS configuration
|
||||
# to bring up MIT Incompatible Timesharing System emulation.
|
||||
|
||||
in_network=false
|
||||
for i in `groups`; do
|
||||
if [ $i = network ]; then
|
||||
in_network=true
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ `whoami` = root ]; then
|
||||
in_network=true
|
||||
fi
|
||||
|
||||
if [ $in_network = false ]; then
|
||||
echo WARNING: You must be in group network in order to run a networked ITS.
|
||||
echo WARNING: You may still run a non-networked ITS.
|
||||
fi
|
||||
|
||||
if [ ! -r ~/.itsrc ]; then
|
||||
echo its: My config file '(~/.itsrc)' is missing!
|
||||
echo its: Did you remember to run its-user-install\?
|
||||
echo its: Terminating.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -e # croak on corrupt config file.
|
||||
. ~/.itsrc
|
||||
set +e
|
||||
|
||||
if [ "$KLH10_HOME" = "" ]; then
|
||||
echo its: KLH10_HOME is missing from my config file.
|
||||
echo its: terminating.
|
||||
exit 1
|
||||
elif [ ! -d "$KLH10_HOME" ]; then
|
||||
echo its: $KLH10_HOME is not a directory.
|
||||
echo its: terminating.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$PI_IMAGE" = "" ]; then
|
||||
echo its: PI_IMAGE is missing from my config file.
|
||||
echo its: Terminating.
|
||||
exit 1
|
||||
elif [ ! -w "$PI_IMAGE" ]; then
|
||||
echo its: $PI_IMAGE is not a writable file.
|
||||
echo its: Terminating.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd $KLH10_HOME
|
||||
exec lockf -t 0 -k $PI_IMAGE kn10-ks klh10-kn-freebsd.ini
|
31
emulators/its/files/klh10-kn-freebsd.ini.in
Normal file
31
emulators/its/files/klh10-kn-freebsd.ini.in
Normal file
@ -0,0 +1,31 @@
|
||||
; KLH10 emulator configuration for KN ITS system from FreeBSD ports collection..
|
||||
|
||||
; Define basic KS10 device config - two RH11s each on its own Unibus
|
||||
|
||||
devdef rh0 ub1 rh11 addr=776700 br=6 vec=254
|
||||
devdef rh1 ub3 rh11 addr=772440 br=6 vec=224
|
||||
|
||||
; Provide one disk, one tape in config ITS expects
|
||||
|
||||
devdef dsk0 rh0.0 rp type=rp06 format=dbd9 path=@KLH-HOME@/PI-ITS-RP06.0-dbd9 iodly=0
|
||||
devdef mta0 rh1.0 tm02 fmtr=tm03 type=tu45
|
||||
|
||||
; ITS wants a 60Hz clock, allow it. Need this until defaults OK.
|
||||
set clk_ithzfix=60
|
||||
|
||||
; Define IMP for KN
|
||||
devdef imp ub3 lhdh addr=767600 br=6 vec=250 ipaddr=@IPADDR@ gwaddr=@GWADDR@
|
||||
|
||||
; Dummy definitions. Only one DZ is still (apparently) needed.
|
||||
devdef dz0 ub3 dz11 addr=760010 br=5 vec=340
|
||||
;devdef dz1 ub3 dz11 addr=760020 br=5 vec=350
|
||||
;devdef chaos ub3 ch11 addr=764140 br=5 vec=270
|
||||
|
||||
; Define new HOST device hackery
|
||||
devdef idler ub3 host addr=777000
|
||||
|
||||
; Preload ITS for convenience
|
||||
load @.its-647kn-u
|
||||
|
||||
; Use "GO 774000" to start DDT, else just "GO" to start ITS
|
||||
|
1
emulators/its/pkg-comment
Normal file
1
emulators/its/pkg-comment
Normal file
@ -0,0 +1 @@
|
||||
Bootable ITS filesystem for KLH-10 PDP-10 emulator
|
14
emulators/its/pkg-descr
Normal file
14
emulators/its/pkg-descr
Normal file
@ -0,0 +1,14 @@
|
||||
This is an image of a PI (Public ITS) filesystem that can be booted on
|
||||
the KLH10 PDP-10 emulator.
|
||||
|
||||
The emulator image is about 45MB compressed and 170MB uncompressed.
|
||||
The installation needs to have a minimum of 45MB in ports/disfiles
|
||||
plus 45MB in the installation directory which defaults to
|
||||
/usr/local/share/klh10-ks-its. That's about 90MB total but "make
|
||||
distclean" will delete 45MB leaving you with only 45MB. After "make
|
||||
install" you must run the "its-user-install" script as a regular user
|
||||
to install an uncompressed 170MB RP06 filesystem image and setup
|
||||
emulator support files. Additional 170MB RP06 filesystem images
|
||||
may also be installed.
|
||||
|
||||
For more information about ITS see WWW: http://www.its.os.org/
|
6
emulators/its/pkg-plist
Normal file
6
emulators/its/pkg-plist
Normal file
@ -0,0 +1,6 @@
|
||||
bin/its
|
||||
bin/its-user-install
|
||||
%%PORTDOCS%%share/doc/klh10-ks-its/MIT-ITS-papers
|
||||
%%PORTDOCS%%share/doc/klh10-ks-its/README.FIRST
|
||||
share/klh10-ks-its/klh10-kn-freebsd.ini.in
|
||||
@unexec rm -f %%IMAGE_HOME%%/PI-ITS-RP06.0-dbd9.bz2
|
Loading…
Reference in New Issue
Block a user