10 · The driver

A driver, instead of the properties window

WinUAE’s named pipe inserts disks and resets. The installer buttons stay on the Amiga.

The pipe is how the host talks to WinUAE while the Amiga is running, and it is what lets a script feed the installer its disks. Rows marked Automated in the other chapters are these commands. The properties window is a view of the same settings a .uae file already stores. Clicking it is the equivalent of clicking browser chrome. WinUAE opens a Windows named pipe, \\.\pipe\WinUAE, before the emulation starts. Each message is a NUL-terminated line. Two tokens go to the parser that also reads a config file:

  1. 01 Start with WinUAE.exe -f a1200.uae -s use_gui=no so the pipe is the control path.
  2. 02 Write floppy0 C:\Disks\Install.adf and a trailing NUL. A reply that begins with 200 means the disk is in DF0. 404 means the key was unknown.
  3. 03 When the installer asks for the next floppy, send floppy0 again with Workbench, Locale, Extras, Fonts, then Storage.
  4. 04 AKS_EFLOPPY0 1 ejects DF0. floppy0 . clears the same slot in the configuration.
  5. 05 AKS_SOFTRESET 1 resets. IPC_QUIT closes WinUAE.

amiga-utils has the client as scripts/winuae_driver.py. It uses the Win32 pipe API, so it runs under Windows Python, next to WinUAE. scripts/wb31_session.py starts an A1200 with the Install disk in DF0 and a hardfile on uae0, then reads insert workbench, eject, reset, and quit from stdin.

HDToolBox and the Installer’s Proceed buttons are windows drawn by the Amiga. The pipe changes emulator state: which ROM, which hardfile, which ADF, and whether the machine resets. After the install, the hardfile is the one the hardfile note copies onto the MiSTer.

The pipe is created in WinUAE’s win32.cpp and parsed in uaeipc.cpp. Input names such as AKS_SOFTRESET come from aks.def.