Files
Sprinter-SDCC/applications/Volkov/tests/make_p3_stress_floppy.sh
T
snark13 8e389c03f8 Volkov: добавить Sprinter Commander
Реализовать двухпанельный Commander от платформенного PoC до этапов P6-P20: EMM-каталог, сортировку и выбор, операции с файлами и деревьями, транзакционное копирование, метаданные, политику конфликтов и предварительную проверку свободного места.

Добавить проектную документацию, HDD/MAME-сценарии и проверенные артефакты. Расширить libc операцией bank_write_page, исправлением режима O_RDONLY и связанными регрессионными проверками.
2026-09-10 10:45:30 +03:00

47 lines
1.4 KiB
Bash

#!/bin/sh
# Создаёт стандартную FAT12-дискету для P3 stress-теста.
# Аргументы: [образ [исполняемый файл]]; по умолчанию — mc.img и Commander.
set -eu
PROJECT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
DEFAULT_IMAGE="$PROJECT_DIR/../../mame/v306/IMG/mc.img"
IMAGE=${1:-$DEFAULT_IMAGE}
EXECUTABLE=${2:-$PROJECT_DIR/build/sprcmd.exe}
TEMP_DIR=$(mktemp -d "${TMPDIR:-/tmp}/sprcmd-p3.XXXXXX")
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)"