Repository navigation
System 2000
System 2000
The first release for QUUX, the CADR evolved. System 2000 runs only on QUUX,
on microcode 2000 and boot PROM 2000; the CADR's systems are the 1000s, on
the cadr branch.
docs/release-2000.md
lists every change, one by one.
The band on the disk was compiled by the system from the sources in
release-2000-sys.tar.gz, every file, made into a cold load, loaded with
QLD and saved, all on QUUX.
What changed
- QUUX only. The band and the microcode check the machine at boot and
stop on anything but QUUX hardware revision 11 or later. The system takes
its sizes from QUUX's feature page: the PDL buffer, the level-1 map, the
video controller's screen. - QUUX's own devices, on its register page at 17777400: block-disk,
whose disk is a GPT disk (a VHD on the host); a real-time clock, which a
boot takes the time from; a file device, through whichSYS:is on
HOST, the machine's host folder, so no file server is needed; three
interval timers, the tick among them; the video controller, a one-bit
frame buffer up to 1920 by 1080. - The boot PROM saves nothing and writes nothing to the disk, and
resets the devices; the PROM and the microcode find the microcode and the
band by the disk's GPT. - Faster simple instructions (the fused return, on revision 12): the
microcode fills QUUX's MACRO DISPATCH MEMORY at every start, with
specialised handlers for moves, pops, branches and three arithmetic
instructions on locals and arguments. - Time zones by name (a tzdata zone in the site's
:TIMEZONE), and
FILE dates in UTC on the wire. - Faults fixed in dates (1900, 2000 and after 2100; summer time;
four-digit years), division by the most negative fixnum, the error table,
QLD, the directory date parser and pathname matching, among others. - The herald names the site and the machine type; the site defines
LISPM-1 to LISPM-7.
Known faults are listed at the end of the notes.
Assets
| File | Bytes | SHA-256 |
|---|---|---|
release-2000-disk.vhd.gz |
6,013,023 | 8dd7a9b353339f7be482a0090449e019170c827f330ac44fd889f9e7285caa6f |
release-2000-sys.tar.gz |
4,494,691 | e953c7d844c787ec43a9d5939badbd31d0f745a792a0b64f78f8932015df9954 |
release-2000-promh.mcr |
143,360 | 1fcb62bc6d8cf8e1170a422e1401a2261043d1d1c1f9fb5f3f9450fdc0a54058 |
SHA256SUMS |
358 | 99e8f34aeeba038f9072fdd9db517ae231aecca25e84027d35b46dd25e1514fa |
SHA256SUMS gives these and the disk uncompressed, release-2000-disk.vhd
(25,175,040 bytes, 77178ef2c2cda8f00354e81809d87fc4b644c3c342dca9c9f7bed12833dade8e). A VHD's own bytes differ with every
conversion, so the build is identified by the disk as raw blocks:
269,562,880 bytes, SHA-256 dff94dce039ab2b3bd361126bcc70b854bcff402980ce9b7240e2dff1b98868e (qemu-img convert -f vpc -O raw).
- The disk is a GPT disk as a dynamic VHD, 263,245 blocks of 1024
bytes: MCR1, "MCR1 UCADR 2000", microcode 2000, and LOD1, "LOD1 System
2000", the band, both current (GPT attribute bit 48); MCR2, PAGE and LOD2
to LOD4 are empty and zero. Made withsgdiskanddd, converted with
qemu-img 10.2.1 (docs/building.md, "Writing QUUX's release disk"). - The sources unpack to
release-2000/: the repository at tag
release-2000(commit3997c39c837d29a5f4df4ada3694d0b15bbdd8da), plussys/ubin/: microcode 2000 and
boot PROM 2000 assembled fromsys/ucadr/, which the error handler reads
at run time and a rebuild needs. Every member is owned by root. - The boot PROM,
release-2000-promh.mcr, is the one part of the system
not on the disk:quux --promtakes it. It is muir-sim's built-in QUUX
PROM byte for byte. site/in the sources is the site the band was built with,:MIT,
an example to copy.
Verification
Built on 2026-09-29 from commit 70e280a8230c9aa969fbd090928bdab8e3ea4f4c, whose tree differs from the tag's in README.md and docs/ alone, on muir-sim f9f4cf0's
quux (QUUX revision 12), micro engine, on QUUX alone, with no file server
but the machine's file device. The builder was the previous System 2000 band
on the new microcode. Every file was compiled, 217 compiled files in
1h44m27s with the site, the readtables and WORMCH (SYSTEM alone 1h38m02s);
MAKE-COLD took 3m35s, and the unattended QLD, from the cold boot to the
save, 13m22s. Microcode 2000 and boot PROM 2000 were each assembled twice from the
commit's sys/ucadr/, and the two assemblies agree byte for byte in all four
files of each.
The band, booted from a copy of the published disk with the sources unpacked
from the published tarball as its host folder, prints "MIT System, band 1 of
LISPM-1", System 2000, microcode 2000, machine type QUUX, site MIT; reads
SYS: files through the file device; regenerates WORMCH equal to the loaded
font; and gives, on micro, the arithmetic checks of 1001 and the 2304
division cases exactly as before (the one exception is (%div 0 0), a
known fault); the same checks but the long arithmetic ones pass on rtl.
muir-sim f9f4cf0's own System 2000 tests pass on it, on micro and rtl: the video
controller and its sizes, the ticks and the timers (word 110 reads 401 and
word 111 16,667, INTR-TICK 600 times in 10 s after a cold boot, a
%DISK-RESTORE and a warm boot), a restore of the band, and the fused
return filled by the microcode at every start. Thirteen workloads on micro
and on rtl ran with the fused return's checkers counting no problem. A
session of login, the editor, a compile, a directory listing, a font loaded
on demand, the inspector and PEEK opened no compiled file the sources lack;
with one font's compiled file taken away, that file is the one reported.
The machine wrote only PAGE; the GPT and both loaded partitions were as
published afterwards. MCR1 holds sys/ubin/ucadr.mcr, LOD1 the saved band,
and every other partition, PAGE included, is zero. The sums were taken
before any boot and read again after. Not checked here: a QUUX board.
Running it
System 2000 needs QUUX hardware revision 11 or later: muir-sim's quux, or
a QUUX bitstream of muir-fpga. Its SYS: is on the file device, so the
machine's host folder must hold sys/ and site/ from the sources and a
home for the login:
gunzip release-2000-disk.vhd.gz
tar -xzf release-2000-sys.tar.gz
mkdir -p root/home/lispm
cp -a release-2000/sys release-2000/site root/
quux --micro --disk-pack release-2000-disk.vhd --file-root $PWD/root
--micro is the faster engine; quux runs the register-transfer engine,
at the machine's own speed, without it.
The copies keep the unpacked sources as they are, since the machine writes
under its host folder. The machine boots to "MIT System, band 1 of LISPM-1"
and "Experimental System 2000", "Microcode 2000", "Machine Type QUUX".
quux serves the screen, keyboard and mouse over RFB, for any VNC viewer
(quux --help, --terminal). Log in with (login "LISPM" "HOST" t).
Upgrading from System 1001
Nothing carries over between bands: a release is a whole band, and there are
no patches. System 2000 does not run on the CADR; the CADR's next system is
1002, on the cadr branch.
Licence
GNU Affero General Public License, version 3 or later. LICENSE and NOTICE
are in the sources tarball; NOTICE gives the sources' provenance and every
copyright notice in the tree that is not MIT's.