#!/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)"