48 lines
1.4 KiB
Bash
48 lines
1.4 KiB
Bash
#!/bin/sh
|
|
# Создаёт стандартную FAT12-дискету для P3 stress-теста.
|
|
# Аргументы: [образ [исполняемый файл]]; по умолчанию — локальный образ.
|
|
|
|
set -eu
|
|
|
|
PROJECT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
|
|
DEFAULT_IMAGE="$PROJECT_DIR/build/media/p3_stress.img"
|
|
IMAGE=${1:-$DEFAULT_IMAGE}
|
|
EXECUTABLE=${2:-$PROJECT_DIR/build/sprcmd.exe}
|
|
TEMP_DIR=$(mktemp -d "${TMPDIR:-/tmp}/sprcmd-p3.XXXXXX")
|
|
mkdir -p "$(dirname -- "$IMAGE")"
|
|
|
|
cleanup()
|
|
{
|
|
rm -rf -- "$TEMP_DIR"
|
|
}
|
|
trap cleanup EXIT HUP INT TERM
|
|
|
|
mkdir "$TEMP_DIR/MANY" "$TEMP_DIR/BIGDIR"
|
|
|
|
i=0
|
|
while [ "$i" -lt 40 ]; do
|
|
name=$(printf 'M%07d.TXT' "$i")
|
|
cp "$PROJECT_DIR/tests/p3_data/P3ROOT.TXT" "$TEMP_DIR/MANY/$name"
|
|
i=$((i + 1))
|
|
done
|
|
|
|
i=0
|
|
while [ "$i" -lt 680 ]; do
|
|
name=$(printf 'B%07d.DAT' "$i")
|
|
cp "$PROJECT_DIR/tests/p3_data/P3ROOT.TXT" "$TEMP_DIR/BIGDIR/$name"
|
|
i=$((i + 1))
|
|
done
|
|
|
|
mformat -C -i "$IMAGE" -f 1440 -v SPRCMD ::
|
|
mcopy -i "$IMAGE" "$EXECUTABLE" ::
|
|
mmd -i "$IMAGE" ::EMPTY
|
|
mmd -i "$IMAGE" ::TESTDIR
|
|
mcopy -i "$IMAGE" "$PROJECT_DIR/tests/p3_data/P3ROOT.TXT" ::
|
|
mcopy -i "$IMAGE" "$PROJECT_DIR/tests/p3_data/ZETA.BIN" ::
|
|
mcopy -i "$IMAGE" "$PROJECT_DIR/tests/p3_data/INNER.TXT" ::TESTDIR/
|
|
mcopy -i "$IMAGE" -s "$TEMP_DIR/MANY" ::
|
|
mcopy -i "$IMAGE" -s "$TEMP_DIR/BIGDIR" ::
|
|
|
|
mdir -i "$IMAGE" ::
|
|
echo "P3 stress floppy ready: $IMAGE (executable: $EXECUTABLE)"
|