File size: 1,515 Bytes
c722e6d a1e3a8f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #!/bin/bash
# Assemble the 1.44 MB FreeDOS boot floppies. Needs mtools.
# build/dosmqtt.img : A.EXE + B.EXE (MQTT demo, two machines)
# build/gradio.img : G.EXE (Gradio demo, one machine)
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"; D="${DEPS:-$ROOT/deps}"; OUT="$ROOT/build"
make_floppy() { # make_floppy <image> <FDAUTO source> <program>...
local NAME="$1" IMG="$OUT/$1" AUTO="$ROOT/src/dos/$2"; shift 2
cp "$D/fd14/144m/x86BOOT.img" "$IMG"
# Drop installer-only files to make room (about 1 MB stays free).
mdel -i "$IMG" ::/SETUP.BAT ::/FREEDOS/SETUP.BAT 2>/dev/null || true
mdeltree -i "$IMG" ::/FREEDOS/NLS ::/FREEDOS/CONFIGS 2>/dev/null || true
for f in FDISK.EXE FDISK.INI FORMAT.EXE SLICEREX.EXE SYS.COM FC.EXE FDAPM.COM COUNTRY.SYS FASTHELP.BAT SETLANG.BAT WELCOME.BAT; do mdel -i "$IMG" "::/FREEDOS/BIN/$f" 2>/dev/null || true; done
mdel -i "$IMG" ::/FREEDOS/BIN/V*.COM 2>/dev/null || true
sed 's/\r$//; s/$/\r/' "$AUTO" > "$OUT/FDAUTO.BAT.tmp"; mcopy -o -i "$IMG" "$OUT/FDAUTO.BAT.tmp" ::/FDAUTO.BAT
for f in FDCONFIG.SYS MTCP.CFG; do sed 's/\r$//; s/$/\r/' "$ROOT/src/dos/$f" > "$OUT/$f"; mcopy -o -i "$IMG" "$OUT/$f" "::/$f"; done
mcopy -o -i "$IMG" "$D/ne2k/NE2000.COM" ::/NE2000.COM
mcopy -o -i "$IMG" "$D/mtcp-bin/dhcp.exe" ::/DHCP.EXE
for exe in "$@"; do mcopy -o -i "$IMG" "$OUT/$exe" "::/$exe"; done
echo "== $NAME"; mdir -i "$IMG" :: | tail -12
}
make_floppy dosmqtt.img FDAUTO.BAT A.EXE B.EXE
make_floppy gradio.img FDAUTO_G.BAT G.EXE
|