muir↗CADR PRESERVED.
QUUX EVOLVED.

MUIR-SIM · QUUX

QUUX,
in muir-sim.

QUUX, the CADR evolved, run as quux.

What QUUX is, its processor and its whole machine, drawn, and everything it changes, is on its own page among the machines.

01 / RUNNING IT

Its system,
and a run.

Steps 01 and 02 on the simulator’s page build it.

03

QUUX’s system.

git checkout quux-revisions-13-15
cargo build --release
tools/fetch-system-for-quux.sh

QUUX’s current release runs on the quux of muir-sim’s tag quux-revisions-13-15, which this builds. QUUX is the CADR evolved, and quux runs it, with its own boot PROM, the video controller and block-disk. It needs muir-sys’s updated microcode and system on a raw image or a VHD with a GPT partition table: MIT’s own will not run on it. The script fetches QUUX’s current release (the release notes), and checks every file against its SHA-256 sum. It puts the machine’s disk in vendor/run/ and makes the machine’s host folder beside it: QUUX reads its files from there through a device of its own, so it needs no file server.

04

Run it.

target/release/quux --micro --disk-pack vendor/run/release-2001-disk.vhd \
    --file-root vendor/run/release-2001-root

quux on the fast engine, micro; without --micro it runs rtl, at the machine’s own speed. On the rtl engine its cache and main memory are timed as an FPGA board’s. It prints where its screen is: point any VNC viewer there. It boots to a Lisp Listener; (login "LISPM" "HOST" t) logs in.

What QUUX changes

02 / ITS OWN FLAGS

What quux
alone takes.

cadr refuses each of these but --disk-pack and --prom, which it takes for its own disk pack and boot PROM. The manual gives the whole of each.

FlagWhat it gives
--disk-pack <image>Its disk, block-disk’s: a raw image or a VHD, with a GPT partition table. QUUX’s disk needs no tool of muir-sim’s: it is made with standard tools.
--file-root [<name>=]<folder>[,ro]The host folders its file device serves, under the band’s pathname host.
--main-memory-size <n>MWMain memory, in whole megawords, 1MW to 64MW; 32MW by default.
--cache <words>The memory cache’s size, a power of two, on rtl.
--memory-timing <read>,<write>,<occupancy>Main memory’s timing on the memory port, on rtl: a line fill, a write and the interval between two accepted writes, in ns, or kria, arty or de25 for a board’s own figures; kria by default.
--microcycle-ns <ns>The clock’s period, the microcycle, 5 to 63.5 ns in steps of 0.5; 10 ns by default.
--video-size <width>x<height>The screen’s size, at most 1920 by 1080.
--rtc <unix-seconds>|hostThe real-time clock: the host’s clock, or a start that counts the machine’s own time.
--ethernet-socket <path>[,clocked]What stands behind the Ethernet device: a UNIX stream socket, such as the one muir-sim’s Ethernet frame mover gives for a tap of the host’s. With ,clocked each record carries the machine’s time, and a run repeats bit for bit. Without it, nothing arrives.
--ip-address A.B.C.D/NQUUX’s IPv4 address and prefix. By default a link-local one, 169.254.x.y, for a host-only tap; any other is a LAN address, for a LAN tap, through which QUUX is on the host’s LAN.
--ip-gateway A.B.C.DIts gateway, on its subnet: by default the tap’s host side, and on a LAN tap the LAN’s router.
--ethernet-mac XX:XX:XX:XX:XX:XXThe Ethernet device’s MAC address, a locally administered one by default.
--ethernet-traceEvery Ethernet frame the device sends and receives, to stderr.
--prom <file>The boot PROM to run.