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