#!/bin/sh CMD=runmsx FMSX_DIR=~/emulators/msx/MSX FMSX_SHAREDIR=~/share/fmsx FMSX_SPOOLDIR=~/spool/fmsx FMSX_TAPEDIR=$FMSX_SHAREDIR/tapes FMSX_DISKDIR=$FMSX_SHAREDIR/disks FMSX_CARTDIR=$FMSX_SHAREDIR/carts FMSX_CMD=fmsx FMSX_OPTS="-msx1 \ -printer \"$FMSX_SPOOLDIR/print.out\" \ -sync 50 \ -uperiod 1 \ -scale 2 \ -sound 44000" while [ -n "$1" ]; do case "$1" in *.[Tt][Aa][Pp]) [ -z "$tape" ] && \ { tape="-tape \"$FMSX_TAPEDIR/$1\""; shift; continue; } echo "$CMD: Too many tapes" >&2; exit 1;; *.[Dd][Ss][Kk]) [ -z "$disk_a" ] && \ { disk_a="-diska \"$FMSX_DISKDIR/$1\""; shift; continue; } [ -z "$disk_b" ] && \ { disk_b="-diskb \"$FMSX_DISKDIR/$1\""; shift; continue; } echo "$CMD: Too many disks" >&2; exit 1;; *.[Rr][Oo][Mm]) [ -z "$cart_a" ] && { cart_a="\"$FMSX_CARTDIR/$1\""; shift; continue; } [ -z "$cart_b" ] && { cart_b="\"$FMSX_CARTDIR/$1\""; shift; continue; } [ -z "$cart_c" ] && { cart_c="\"$FMSX_CARTDIR/$1\""; shift; continue; } echo "$CMD: Too many cartridges" >&2; exit 1;; -lt) ls $FMSX_TAPEDIR; exit;; -ld) ls $FMSX_DISKDIR; exit;; -lc) ls $FMSX_CARTDIR; exit;; -*) break;; *) echo "$CMD: Invalid argument" >&2; exit 1;; esac done [ -d $FMSX_SPOOLDIR ] || mkdir -p $FMSX_SPOOLDIR cmd="exec ./$FMSX_CMD $FMSX_OPTS \"\$@\" $tape $disk_a $disk_b \ $cart_a $cart_b $cart_c" cd $FMSX_DIR && eval "$cmd" .