#!/usr/bin/env python3
"""Build tiny 8086 .COM shell: print C:\\> then exec C:\\DOOM.EXE (WAD on C:)."""

import sys
from pathlib import Path

# Loaded at CS:0100 — offsets are 0x100 + file_offset.
BODY = bytes([
    0x8C, 0xC8,
    0x8E, 0xD8,
    0x8E, 0xC0,
    0xB4, 0x09,
    0xBA, 0x31, 0x01,       # prompt @ 0100h+31
    0xCD, 0x21,
    0xB8, 0x00, 0x3B,
    0xBA, 0x38, 0x01,       # C:\ @ 0100h+38
    0xCD, 0x21,
    0xB8, 0x00, 0x4B,
    0xBA, 0x3C, 0x01,       # C:\DOOM.EXE @ 0100h+3C
    0xCD, 0x21,
    0xEB, 0xFE,
    0x43, 0x3A, 0x5C, 0x3E, 0x0D, 0x0A, 0x24,
    0x43, 0x3A, 0x5C, 0x00,
    0x43, 0x3A, 0x5C, 0x44, 0x4F, 0x4F, 0x4D, 0x2E, 0x45, 0x58, 0x45, 0x00,
])


def main() -> int:
    root = Path(__file__).resolve().parents[1]
    out = Path(sys.argv[1] if len(sys.argv) > 1 else root / "assets/dos/MINISHL.COM")
    out.parent.mkdir(parents=True, exist_ok=True)
    out.write_bytes(BODY)
    print(f"wrote {out} ({len(BODY)} bytes)")
    return 0


if __name__ == "__main__":
    raise SystemExit(main())