Virtual Audrey: PC/GEOS for the 3Com Audrey, in QEMU
====================================================

Try the Audrey port without an Audrey. This is QEMU 8.2.2 with models of
the Audrey's own hardware added:
- the touchscreen and buttons (PC97317 GPIO, ADS7843) and the LCD
  controller: the window's pointer is the pen;
- the 56k modem, with a stand-in DSP: the modem driver boots it, but there
  is no phone line behind it;
- the chipset parts the modem driver needs (CS5530 interrupt steering and
  ACPI timer).
It boots a card image the way the Audrey does with Datebook held:
FlashBoot, then FreeDOS, then GEOS.

You need
- Linux with gcc, ninja, pkg-config, python3 (with venv), curl, and the
  glib and pixman development packages.
- For a window: GTK 3 or SDL 2 development packages. Without them, QEMU
  still offers VNC: add  -display vnc=:0  and connect to localhost:5900.
- For --net: the libslirp development package.
- Debian/Ubuntu, all of it:
    sudo apt install build-essential ninja-build pkg-config python3-venv \
        curl libglib2.0-dev libpixman-1-dev libgtk-3-dev libsdl2-dev \
        libslirp-dev
- The card image: audrey-pcgeos-card.img from this project's files.

Steps
1. Build QEMU with the Audrey's hardware (it downloads QEMU 8.2.2 and
   takes a few minutes):
     sh qemu/build-qemu.sh ~/audrey-qemu
2. Copy the card image first: the emulator writes to it as the Audrey
   writes to a real card.
     cp audrey-pcgeos-card.img mycard.img
3. Run it:
     sh run-card.sh mycard.img ~/audrey-qemu
   With a USB Ethernet adapter on QEMU's own network (DHCP and NAT), so
   GEOS's WebMagick can browse:
     sh run-card.sh mycard.img ~/audrey-qemu --net
   With sound: AUDIO=pa sh run-card.sh ...   (or alsa, sdl)

In the emulator a USB keyboard is plugged in; the pointer is the Audrey's
touchscreen. The card's switches work as on a unit (see the card's
README.TXT): for example, an empty D:\NOGEOS.TXT stops at the DOS prompt.

Files
  run-card.sh            boots a card image
  qemu/build-qemu.sh     downloads and builds QEMU with the devices below
  qemu/audrey-superio.c  touchscreen, buttons, LCD controller
  qemu/audrey-modem.c    the modem, with a stand-in DSP
  qemu/audrey-cs5530.c   CS5530 interrupt steering and ACPI timer

The device models are free software under the GNU GPL, version 2 or later,
like QEMU. Source and documentation: https://github.com/1hedu/pcgeos-audrey
(Audrey/emu, Audrey/PORTING.md).
