xroar—Dragon and Tandy 8-bit computer emulator
xroar [-c conffile] [OPTION]… [FILENAME]…
XRoar emulates the Dragon 32/64; Tandy Colour Computers 1, 2 and 3; the Tandy MC-10; and some other similar machines or clones. It runs on a wide variety of platforms.
Options are first read from a configuration file (by default, $HOME/.xroar/xroar.conf). Options on the command line override any found in the configuration file.
-C
-c conffile
-m name, -default-machine name
-machine name
-machine help lists
currently defined profiles.
The remaining options configure the currently selected machine:
-machine-desc text
-machine help and menu options.
-machine-arch arch
dragon64, dragon32,
coco, coco3 or mc10).
-machine-keyboard layout
dragon, dragon200e,
coco or coco3).
-machine-cpu cpu
6809 or 6309). Not applicable to the MC-10.
-bas rom
-extbas rom
-altbas rom
-nobas, -noextbas, -noaltbas
-ext-charset rom
-tv-type type
pal, ntsc or pal-m).
-tv-input input
cmp (composite video, no cross-colour),
cmp-br (composite video, blue-red cross-colour),
cmp-rb (composite video, red-blue cross-colour) or
rgb (RGB video, CoCo 3 only).
-vdg-type type
6847 or 6847t1.
-ram-org organisation
-ram-org help for list).
-ram kbytes
-ram-init pattern
-ram-init help for list).
-machine-cart name
-no-machine-cart to inhibit the
default behaviour of searching for a workign DOS cartridge.
-cart name
-cart help lists
currently defined profiles.
The remaining options configure the currently selected cartridge:
-cart-desc text
-cart help and menu options.
-cart-type type
-cart-type help for list).
-cart-rom rom
-cart-rom2 rom
-cart-autorun
-cart-becker
-mpi-slot slot
-mpi-load-cart [slot=]name
When configuring a Multi-Pak Interface (MPI), only the last configured DOS cartridge will end up connected to the virtual drives. MPI options also apply to the similar RACE Computer Expansion Cage.
-becker
-becker-ip address
-becker-port port
-load-tape file
-tape-write file
-tape-pan panning
-tape-hysteresis percent
-no-tape-fast
-no-tape-pad-auto
-tape-rewrite
-tape-rewrite-gap-ms ms
-tape-rewrite-leader bytes
-tape-ao-rate hz
-load-fdX file
-no-disk-write-back
-no-disk-auto-os9
-no-disk-auto-sd
-load-hdX file
-load-sd file
-kbd-layout layout
-kbd-layout help for list).
-kbd-lang lang
-kbd-lang help for list).
-kbd-bind hostkey=[pre:]emukey
-debug-ui 1, which will
log keypresses.
-kbd-translate
-type string
-load-text file
-joy-db-file file
-joy-right name
-joy-left name
-joy-virtual name
-joy name
-joy help for list).
The remaining options configure the currently selected joystick:
-joy-desc text
-joy-axis axis=spec
-joy-button btn=spec
Joystick specs are of the form [module:][arg[,arg]…], from:
| Module | Axis args | Button args |
|---|---|---|
| physical | joystick-index,[-]axis-index | joystick-index,button-index |
| keyboard | key-name0,key-name1 | key-name |
| mouse | screen-offset0,screen-offset1 | button-number |
For physical joysticks a '-' before the axis index inverts the axis. Axis 0 is the X-axis, and axis 1 the Y-axis. Buttons are numbered 0 or 1 (the second is only used when connected to a CoCo 3).
-lp-file file
-lp-pipe command
-load file
-run file
-load-fdX file
-load-hdX file
-load-sd file
-load-tape file
-tape-write file
-load-text file
-rompath path
-romlist name=list
-romlist-print
-crclist name=list
-crclist-print
-force-crc-match
-ui module
-ui help for list).
-fs
-fskip frames
-ccr renderer
simple, 5bit,
partial or simulated).
-gl-filter filter
auto, nearest or
linear).
-vo-vsync
-vo-pixel-fmt format
-vo-pixel-fmt help for list).
-geometry wxh+x+y
-vo-picture p
-vo-picture help for list).
-no-vo-scale-60hz
-invert-text
-vo-brightness n
-vo-contrast n
-vo-colour n
-vo-hue n
-vo-monochrome
-no-vo-colour-killer
-ao module
-ao help for list).
-ao-device string
-ao-format fmt
-ao-format help for list).
-ao-rate hz
-ao-channels n
1 or 2.
-ao-fragments n
-ao-fragment-ms ms
-ao-fragment-frames n
-ao-buffer-ms ms
-ao-buffer-frames n
-ao-gain db
-volume volume
-gdb
-gdb-ip address
-gdb-port port
-gdb-pseudo-regs
-no-ratelimit
-trace
-trace-timing
-debug-fdc flags
-1 for all).
-debug-file flags
-1 for all).
-debug-gdb flags
-1 for all).
-debug-ui flags
-1 for all).
-v, -verbose level
0 to 3) [1]
-q, -quiet
-verbose 0.
-trap condition
These options affect the configured trap:
-trap-range m-n
-trap-snap file
-trap-timeout n
-trap-trace
-trap-trace-n n
-trap-no-trace
Trap conditions can be one of the following:
| Condition | Action |
|---|---|
| immediate (or '-') | trigger immediately |
| pc=addr | trigger at CPU Program Counter value |
| read=a[-b] | trigger on read from address range |
| write=a[-b] | trigger on write to address range |
| access=a[-b] | trigger on either read or write |
| tape-motor-off | trigger when tape motor switches off |
Older options remain that can be implemented using traps:
-timeout s
-timeout-motoroff s
-snap-motoroff file
-config-print
-config-print-all
-config-auto-save
-h, --help
-V, --version
| Shortcut | Action |
|---|---|
| CTRL+[1–4] | Insert disk into drive 1–4. |
| CTRL+SHIFT+[1–4] | Create new disk in drive 1–4. |
| CTRL+[5–8] | Toggle write enable on disk in drive 1–4. |
| CTRL+SHIFT+[5–8] | Toggle write back on disk in drive 1–4. |
| CTRL+A | Cycle through cross-colour modes (and RGB on CoCo 3). |
| CTRL+D | Open disk control tool (GTK+ & Windows only). |
| CTRL+SHIFT+D | Flush disk images. |
| CTRL+E | Toggle cartridge on/off - reset to take effect. |
| CTRL+F | Toggle full screen mode. |
| or F11 | |
| CTRL+SHIFT+H | Halt the CPU (not on the MC-10). |
| or PAUSE | |
| CTRL+SHIFT+I | Toggle text mode inverse video. |
| CTRL+J | Cycle through joystick emulation modes (None, Right, Left). |
| CTRL+SHIFT+J | Swap left and right joysticks. |
| CTRL+K | Toggle Dragon/CoCo keyboard layout (not on the MC-10). |
| CTRL+L | Load a file. |
| CTRL+SHIFT+L | Load and attempt to autorun a file. |
| CTRL+M | Toggle menubar. |
| CTRL+SHIFT+P | Flush printer output. |
| CTRL+Q | Quit emulator. |
| CTRL+R | Soft reset emulated machine. |
| CTRL+SHIFT+R | Hard reset emulated machine. |
| CTRL+S | Save a snapshot. |
| CTRL+SHIFT+S | Write screenshot as PNG. |
| CTRL+T | Open the tape control tool (GTK+ & Windows only). |
| CTRL+V | Toggle trace mode. |
| CTRL+SHIFT+V | Open TV controls window (GTK+ & Windows only). |
| CTRL+W | Attach a virtual cassette file for writing. |
| CTRL+Z | Enable keyboard translation mode. |
| CTRL+- | Zoom out (smaller emulated display). |
| CTRL++ | Zoom in (larger emulated display). |
| CTRL+< | Zoom out picture (see more border). |
| CTRL+> | Zoom in picture area (see less border). |
| F12 | Run at maximum speed while held. |
| SHIFT+F12 | Maximum speed toggle. |
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
Here are some well-known filenames for firmware ROM images. Consult the full manual for more.
| Firmware ROM | Canonical image filenames |
|---|---|
| Dragon 32 BASIC | d32.rom |
| Dragon 64 32K BASIC | d64_1.rom |
| Dragon 64 64K BASIC | d64_2.rom |
| DragonDOS | dplus49b.rom, sdose6.rom, ddos10.rom |
| Tandy Colour BASIC | bas13.rom, bas12.rom, bas11.rom, bas10.rom |
| Tandy Extended BASIC | extbas11.rom, extbas10.rom |
| RS-DOS | disk11.rom, disk10.rom |
| Tandy Super ECB (CoCo 3) | coco3.rom |
| Tandy Super ECB (PAL CoCo 3) | coco3p.rom |
| Tandy Microcolour BASIC (MC-10) | mc10.rom |