Uxn68k 0.1.1 https://phial.org/d6/uxn68k Implementation of the Varvara virtual machine [1] for 68k Macintosh computers. The implementation has been developed and tested on System 7.0.1. Currently it will not work on System 6 though future support is possible. Usage To use the emulator select "Open ROM" from the File menu (or press Cmd-O). Any file with a data fork can be used as a ROM, and the emulator does not require a specific creator code or file type. Uxn68k uses the creator code "d6XN" and provides custom icons for several file types including "uROM" for ROM files. ROM files with type "uROM" and creator "d6XN" can be run by double-clicking their icon, which will launch Uxn68k. Included ROMs - catclock.rom: fun clock demo - drifblim.rom: assembler for Uxntal files - mandelbrot2.rom: animated mandelbrot visualization - perifs.rom: visualize Varvara input devices - opctest.rom: test Uxn instructions - date.rom: test Varvara date/time device - screen.rom: test Varvara screen device - file.rom: test Varvara file device - system.rom: test Varvara system device Devices The emulator supports all Varvara devices except for the audio devices. System All system ports are supported although colors are ignored. Additional memory banks are allocated on demand, and increase application memory usage by about 64K. See "Known Issues" for more information about banks. Console Uxn68k supports a very primitive console. Line editing is not supported (apart from backspace), copy/paste is not supported, and highlighting is not supported. (These might be added in a future release.) Input is usually line-buffered (very long lines may be flushed early) but output is unbuffered. For compatibility with existing ROMs the console uses unix line endings (LF, 0xA). The console window is initially hidden. If Uxn68k detects a ROM using the console it will show the window automatically. The console window can also be manually toggled using the Window menu. Screen The emulator will attempt to trigger the screen vector at 60 Hz if possible, although at 8 MHz all but the simplest screen vectors will exceed the 16ms time budget. Uxn68k does not support color. The 4 Varvara colors can be assigned to white or black in any combination using options found under the Emulation menu. Writes to the system color ports are ignored. The screen resolution is currently 360x240 and the screen window is not resizable. This will likely be added in a future release. The screen window is initially hidden. If Uxn68k detects a ROM using the screen it will show the window automatically. The screen window can also be manually toggled using the Window menu. Mouse The mouse only supports one button, and does not support a scroll wheel. Mouse events will only be reported when the screen window is active and the cursor is inside its borders. Controller The controller device does not support the A/B/start buttons, since System 7 cannot reliably detects presses and releases of modifier keys like shift, control, etc. Future versions of Uxn68k may have additional options to handle controller input. Files Uxn68k translates unix file paths (e.g. foo/bar/qux.txt) into Macintosh paths (e.g. foo:bar:qux.txt) but does not attempt to translate file names by removing/escaping characters. Paths are relative to the parent directory of the running ROM, which is treated as the working directory and cannot be changed. Latency To support System 7's cooperative multitasking Uxn68k periodically yields control back to the operating system. Doing this too often can potentially slow down compute-intensive ROMs, doing so too slowly will make the mouse, menus, and redraws feel sluggish. Uxn68k supports a "Low Latency" mode, a "Balanced" mode (the default), and a "High Throughput" mode. Testing Developed and tested using Minivmac emulating a Macintosh Plus. The emulator can run at 8 MHz but many ROMs are quite slow -- if you are using an emulator you will likely want to use a speed multiplier. Known Issues The emulator supports up to 16 memory banks, but you will likely have to manually increase the application's available memory to use more than 1-2 of them. ROMs using lots of banks (like dreams.rom) do not work correctly yet and will likely crash your computer. More work is needed to detect low memory situations and avoid errors. Credits Uxn68k is copyright 2026 by Eiríkr Åsheim (d6@phial.org) catclock.rom, drifblim.rom, perifs.rom, opctest.rom, date.rom, screen.rom, file.rom, and system.rom are by Devine Lu Linvega mandelbrot2.rom is by Andrew Alderwick and Eiríkr Åsheim