If anyone's interested, I wrote a Vic20 clone (not an emulator) in javascript http://quietcode.com/vic It's not finished (none of my stuff ever is), and to do much with it you need to open up a javascript console and drive it via its js api
Without the console, all you can do is type and move the cursor
I've mapped a number of the more important memory locations, including screen, character mapping, colours etc.
If you're game, give this a shot (in a js console)
vic20.mem.poke(7680,1)
which will put a capital A in the top left corner of the screen. Colour memory is located starting 38400, so we can change the colour of that A to red by adding vic20.mem.poke(38400,2)
I'd like to add a basic interpreter and the rest, but I keep getting distracted by other things. Oh, and the black strip along the bottom of sort of a cpu usage graph.Works well in Safari, and mostly well in FF. Chrome seems to have a problem with the cursor, and IE, well... it's a no go since it's all canvas based.
[Edit 2: entire thing is written in Coffee Script]