2002.04.03 ~07 "The CUSP emulator corpse stirs back to life.--More--" http://www.linux.ucla.edu/~phaethon/cuspemu/ Turns out that UCLA Computer Science Department (which is one of the few universities that places CompSci under "Engineering") is *still* using the crufty PITA POS known as CUSP for its assembly/machine-language course. I'm not too fond of having had CUSP shoved down my throat, instead of a real CPU. A short background on CUSP (Carleton's Utterly Simple Processor): * Developed at the University of Carleton (Ottawa, Canada) in late 80s for their assembly language course (they have since moved on to Real CPUs(TM)). * Fictitious CPU, exists only in emulation. * The only "official" emulator is binary-only (sourceless) MS-DOS EXE last updated 1992. * Copyright encumberance causes... "special parties" for the UCLA CS-33 students. A short dump of CUSP specs: * 12-bit address bus, 24-bit data bus * 4096 (i.e. 2**12) memory words (24 bits per word) * 4096 I/O ports (8 bits per port), separate address space * memory addressable 24-bit or 8-bit (but not 12) * 1 24-bit general-purpose register * 4 12-bit special-purpose registers * 4 CPU condition flags * 10 instruction addressing modes * 1 instruction occupies only a single whole word * Five devices: - Keyboard, input - CRT, output (monospace text, 14 rows, 38 columns) - tape, input/output permanent storage (emulated as a file) - printer (emulated as a file) - timer (in emulated system ticks, not host time) PHFC (expands to many thing: Officially "Phaethon's Hack For CUSP", but my personal favorite expansion is "PHFC Handles F***ing CUSP") is my (incomplete) GPL'd implementation of the CUSP emulator. For varying reasons, I got dismissed (kicked out) from the CompSci program at UCLA, so I have no chance of taking CS-33 again. So I don't have need of completing the emulator. PHFC is, as far as I recall, the first time I started a large-ish programming project, using compilation in parts, autoconf/automake, function pointers, and (meaningful) data encapsulation. As I said, I'm not too fond of CUSP. This fact is reflected in my choice of filenames and variable names. A few choice selections: * cataplex.l (asm source lexical analysis) * cramps.y (asm source grammar) * spasm.c (assmebler, linker) * phfc_bitch_and_die() (error messaging) Just recently, though, a student taking CS-33 this quarter sent me e-mail querying about PHFC, along the lines of actively helping development. I'd really prefer handing off the project to someone else, since I'm not in the mood to hack PHFC to completion (for whatever "complete" means). But not many people would be both willing and able to take on the project. On another note, turns out I had my old e-mail address on my PHFC pages, which is no longer valid (much less its domain). I'm surprised he found my current e-mail address at all. Well, OK, granted, it's the canonical pattern of ${~username}@${domain} reflected in the URL, but this person had determination to contact me [above mindless clicking].