220 lines
5.0 KiB
Tcsh
220 lines
5.0 KiB
Tcsh
#! /bin/csh -f
|
|
#
|
|
# Run Medley
|
|
#
|
|
# Syntax: medley [-nogreet][-xns][-noxns] [-geometry pixelgeometry] [-display xdisplay-device]
|
|
# [-raw] [-t xtimeout][-prog executable-program] [-vmem savevmemfilename] |
|
|
# [-m memorylimit] [-kbd keyboardtype] [-key key]
|
|
# [sysoutfilename | -lfg | -lisp | -full | -xlfg
|
|
# -{name of any sysout on the public sysout directory} ]
|
|
#
|
|
# -xns means leave unix xns running
|
|
# -noxns means suppress Lisp xns.
|
|
|
|
onintr cleanup
|
|
limit coredumpsize 0
|
|
setenv HOSTNAME `hostname`
|
|
setenv OSVERSION `uname -r`
|
|
\
|
|
# Directory variables are accessible from Lisp via UNIX-GETENV
|
|
setenv MEDLEYDIR $local/medley3.5
|
|
setenv lispcore $MEDLEYDIR/lispcore
|
|
setenv LDEINIT "$MEDLEYDIR/current/local-init.lcom"
|
|
setenv lfghome $local/lfg
|
|
|
|
|
|
set mem="-m 256" # Default, has to be set
|
|
#set geometry="-g 1060x790"
|
|
# MBA screensize
|
|
set geometry="-g 1440x900"
|
|
setenv LDEKBDTYPE x
|
|
set ICONSPEC=" "
|
|
|
|
setenv LDEFILETIMEOUT 60
|
|
setenv TAKEXNSDOWN 0
|
|
setenv LDELISPXNS 0
|
|
#default is no lispxns
|
|
|
|
if ($#argv != 0) then
|
|
while ("$1" != "")
|
|
switch ($1)
|
|
case "-m":
|
|
set mem="-m $2"
|
|
shift
|
|
breaksw
|
|
case "-makefull":
|
|
setenv LDEINIT $MEDLEYDIR/lispcore/makesysout/makefullsysout.lcom
|
|
setenv LOADUPDIR $MEDLEYDIR/lispcore
|
|
case "-xlisp":
|
|
setenv LDESRCESYSOUT "$MEDLEYDIR/lispcore/loadups/xlisp.sysout"
|
|
breaksw
|
|
case "-oldlisp":
|
|
case "-lisp":
|
|
setenv LDESRCESYSOUT "$MEDLEYDIR/basics/lisp.sysout"
|
|
breaksw
|
|
case "-full":
|
|
setenv LDESRCESYSOUT "$MEDLEYDIR/basics/full.sysout"
|
|
breaksw
|
|
case "-makelfg":
|
|
setenv LDEINIT $lfghome/parser/makelfgsysout.lcom
|
|
setenv LOADUPDIR $lfghome/parser
|
|
case "-xfull":
|
|
setenv LDESRCESYSOUT "$MEDLEYDIR/lispcore/loadups/xfull35.sysout"
|
|
breaksw
|
|
case "-lfg":
|
|
case "-lfg35":
|
|
setenv LDESRCESYSOUT "$lfghome/parser/release/lfg.sysout"
|
|
set ICONSPEC = "-iconbitmap $lfghome/release/lfg.xbm -icontitle Xerox"
|
|
breaksw
|
|
case "-oldlfg":
|
|
setenv LDESRCESYSOUT "$lfghome/parser/oldrelease/lfg35.sysout"
|
|
set ICONSPEC = "-iconbitmap $lfghome/release/lfg.xbm -icontitle Xerox"
|
|
breaksw
|
|
case "-xlfg35":
|
|
case "-xlfg":
|
|
setenv LDESRCESYSOUT "$lfghome/parser/xlfg35.sysout"
|
|
set ICONSPEC = "-iconbitmap $lfghome/release/lfg.xbm -icontitle Xerox"
|
|
breaksw
|
|
case "-makelisp":
|
|
setenv LDEINIT $lispcore/makesysout/synclispfiles.lcom
|
|
setenv LOADUPDIR $lispcore
|
|
setenv LDESRCESYSOUT "$MEDLEYDIR/basics/lisp.sysout"
|
|
breaksw
|
|
case "-xlisp":
|
|
setenv LDESRCESYSOUT "$MEDLEYDIR/lispcore/xlisp.sysout"
|
|
breaksw
|
|
case "-makeinit":
|
|
setenv LDESRCESYSOUT "$MEDLEYDIR/basics/next/INIT.DLINIT"
|
|
setenv LDEINIT ""
|
|
breaksw
|
|
case "-nogreet":
|
|
setenv LDEINIT ""
|
|
breaksw
|
|
case "-greet":
|
|
setenv LDEINIT "$2"
|
|
shift
|
|
breaksw
|
|
case "-xns":
|
|
setenv TAKEXNSDOWN 1
|
|
setenv LDELISPXNS 1
|
|
breaksw
|
|
case "-noxns":
|
|
setenv TAKEXNSDOWN 0
|
|
setenv LDELISPXNS 0
|
|
breaksw
|
|
case "-raw":
|
|
unsetenv DISPLAY
|
|
breaksw
|
|
case "-geometry":
|
|
set geometry="-g $2"
|
|
shift
|
|
breaksw
|
|
case "-display":
|
|
setenv DISPLAY $2
|
|
shift
|
|
breaksw
|
|
case "-t":
|
|
set xtimeout=$2
|
|
shift
|
|
breaksw
|
|
case "-prog":
|
|
set progparam=$2
|
|
shift
|
|
breaksw
|
|
case "-vmem":
|
|
setenv LDEDESTSYSOUT $2
|
|
shift
|
|
breaksw
|
|
case "-kbd":
|
|
setenv LDEKBDTYPE $2
|
|
shift
|
|
breaksw
|
|
|
|
default:
|
|
if (`expr index "$1" "[-]"` == 1) then
|
|
# public sysout name
|
|
set name=`expr substr $1 2 999`
|
|
setenv LDESRCESYSOUT "$MEDLEYDIR/basics/${name}.sysout"
|
|
else # not an option so must be a private sysout name
|
|
setenv LDESRCESYSOUT $1
|
|
endif
|
|
breaksw
|
|
endsw
|
|
shift
|
|
end
|
|
else
|
|
# no options specified
|
|
endif
|
|
|
|
if ($?LDEDESTSYSOUT) then
|
|
else if (-f /$HOSTNAME/$LOGNAME/lisp.virtualmem) then
|
|
setenv LDEDESTSYSOUT /$HOSTNAME/$LOGNAME/lisp.virtualmem
|
|
else if (-f ~/lisp.virtualmem) then
|
|
setenv LDEDESTSYSOUT ~/lisp.virtualmem
|
|
else if (-d /$HOSTNAME/$LOGNAME) then
|
|
setenv LDEDESTSYSOUT /$HOSTNAME/$LOGNAME/lisp.virtualmem
|
|
endif
|
|
|
|
if (! $?LDESRCESYSOUT) then
|
|
setenv LDESRCESYSOUT $LDEDESTSYSOUT
|
|
endif
|
|
|
|
|
|
if (! $?LDEKBDTYPE) then
|
|
# switch (`/usr/bin/hostinfo keyboardtype`)
|
|
# endsw
|
|
endif
|
|
echo "keyboard type is " $LDEKBDTYPE
|
|
|
|
#set hostid = `hostid`
|
|
setenv INMEDLEY 1
|
|
echo "sysout is " $LDESRCESYSOUT
|
|
#set version = `medley-lisp-version $LDESRCESYSOUT`
|
|
set version = "35010"
|
|
if ($status) exit
|
|
|
|
if ($LDELISPXNS) then
|
|
set prog="ldeether"
|
|
else
|
|
set prog="lde"
|
|
echo "running without xns protocols"
|
|
endif
|
|
switch ("$version")
|
|
case "35000":
|
|
set version = "3.5"
|
|
breaksw
|
|
case "35010":
|
|
set version = "3.501"
|
|
breaksw
|
|
default:
|
|
set version = "3.5"
|
|
endsw
|
|
echo "using emulator version $version"
|
|
|
|
switch ("$version")
|
|
case "3.5":
|
|
case "3.501":
|
|
set path = ($MEDLEYDIR/bin/ $path)
|
|
# if ${?DISPLAY} then # we are running under X
|
|
$prog $mem $geometry $ICONSPEC
|
|
# else $prog $mem
|
|
endif
|
|
breaksw
|
|
|
|
endsw
|
|
#
|
|
# Now we are done, so clean up after ourselves
|
|
#
|
|
cleanup:
|
|
|
|
if ${?DISPLAY} then
|
|
# do X cleanup
|
|
else
|
|
# reset
|
|
endif
|
|
#clear ; this obscures error messages
|
|
|
|
|
|
|
|
|