Serial & Parallel Connections¶
GSSquared treats each serial or parallel port as a jack you can plug a virtual device into — the same idea as mounting a disk image on a drive.
What you can attach¶
| Attachment | Serial ports (IIgs SCC, Super Serial) | Parallel card |
|---|---|---|
| None | Port idle | Port idle |
| File | Capture TX data to a host file | Capture printer bytes to a host file |
| Clipboard | Capture TX to the host clipboard | Capture printer bytes to the host clipboard |
| Modem | Virtual Hayes modem (TCP dial-out and inbound telnet on port 6502). Native builds only; absent in the browser. | — |
| Serial | Real host UART (macOS /dev/cu.*; Windows COMn; Linux /dev/ttyS* /dev/ttyUSB* /dev/ttyACM* /dev/ttyAMA*) |
— |
GS2 ignores Bluetooth/debug/wlan system fake serial devices. On Linux, motherboard /dev/ttyS* nodes with no UART (empty 8250 placeholders) are omitted from the picker.
When a File attachment closes, a short on-screen message shows the filename. When a Clipboard attachment closes (idle ~10s, or Ctrl-Reset on parallel), high-bit-stripped text is copied to the host clipboard and a toast reports the byte count. Newlines are normalized to LF; IIgs “Add LF after CR” CRLF pairs become a single line break.
Control Panel (while the machine is running)¶
- Press F4 (or click the Control Panel tab).
- Find the Serial / Parallel buttons (between the slot list and the drive icons).
- Click a port button.
- Pick None, File, Clipboard, Modem, or a host serial port listed by name (Modem and host ports only on serial jacks). The host-port list is rescanned every 2 seconds while the control panel or config editor is open, so plugging or unplugging a USB serial dongle updates the picker.
On Apple IIgs machines you will see the built-in ports (often labeled like printer/modem). Slot cards such as Super Serial or Parallel appear as their own buttons.
Config editor (saved with the machine)¶
When creating or editing a .gs2 config:
- Add the card (or use a IIgs platform for built-in serial).
- Use the Serial / Parallel row in the editor — click a port, choose the attachment.
- Save. Those choices become
[[connections]]entries in the file.
In a .gs2 file¶
IIgs built-in SCC (no slot):
[[connections]]
port = "a"
device = "file"
[[connections]]
port = "b"
device = "modem"
Slot card (Super Serial or Parallel):
[[connections]]
slot = 2
device = "modem"
Optional path sets the capture filename for device = "file". For device = "serial", path is the host port name stored as written (/dev/cu.usbserial-…, cu.usbserial-…, COM3, /dev/ttyUSB0, /dev/ttyS0, …) — it is not resolved relative to the config file.
[[connections]]
slot = 2
device = "serial"
path = "cu.usbserial-A50285BI" # macOS; on Windows use path = "COM3"; on Linux, /dev/ttyUSB0 or /dev/ttyS0
Guest software programs baud / data / parity / stop bits on the SCC or 6551; those settings are passed through to the host port. Host CD, CTS, and DSR are passed through to the emulated UART so BBS software can see carrier loss. If the dongle is unplugged, the emulator keeps the attachment and retries (handshake lines read as deasserted until it reopens). On Linux, /dev/ttyUSB* and /dev/ttyS* are owned by group dialout (some distros use uucp); the local user must be in that group and re-login before GSSquared can open the port.
A Modem attachment asserts CD only while the TCP session is connected. File and clipboard attachments keep handshake asserted. Details: SerialPortSpec.md.
If you omit [[connections]], GSSquared applies sensible defaults (IIgs: file on one port and modem on the other on native builds; SSC → modem; parallel → file).
device = "echo" is valid in a hand-written .gs2 only; the Control Panel and config editor do not offer Echo.