Altogether: Xerox Alto microcode-level simulator
TODO list
$Id: TODO 123 2005-02-18 22:16:22Z eric $
Copyright 2001, 2003, 2004 Eric Smith <eric@brouhaha.com>


fix warnings
    arg 3 of call to priority_queue_remove() in run_scheduler_until()
    many in debug.c


microcode
    embedded in executable by default
    read microcode from zip file rather than separate PROM files
        GSF: http://www.gnome.org/projects/libgsf/
    cross-microassembler

I/O
    keyboard
    mouse
    disk
    ethernet
        IP/UDP encapsulation?  multicast?
    general purpose port

Display
    SDL - Simple Directmedia Layer
        http://www.libsdl.org/index.php
        supports X, Windows, OS X
	supports warping mouse
    Allegro game programming library
        http://alleg.sourceforge.net/
        supports X, Windows, OS X
        supports hiding, warping mouse
        supports bitmap of keys down
	full-screen mode only?

write documentation

verify ALU carry handling

more debugger functionality
    always output next uinst trace info *before* command prompt
    save memory to file
    disassemble memory
    make task switch break selective
    breakpoints that execute a debugger command (or Tcl script)

debugger/GUI integration
    make Nalin's requested changes to my VTE patch for prexisting PTYs
    microcode source window
    microcode state window(s)
        current task, uPC, uinst, T, L, M, ALUCY, IR, CARRY, SKIP
        uPC[], R[], S[] 
        show as highlighted flowchart (at least as an option)
    main memory window

better Tcl integration
    command result codes and strings
    direct access to simulation memory, registers, etc. as Tcl var/hash?
    command completion w/ readline

write a Tcl script to define well-known memory locations

STARTF function (F1=17) - used for start I/O instruction

clean up main_mem.c
    memory refresh on load mar from R37
    change from ad-hoc tracking to state machine

measure display signal timings on real hardware
