Dan you make me sick with seemingly easy solutions you come up with!
I was looking for a way to do this before CS3 after seeing the "black tambourines" video by Beck. I long gave up on the idea that I could figure it out myself.
The only thing I would like to add is that when you're experimenting with different video's it's more convenient to use the "layer(index)" attribute (just an other handy thing I learned from Dan)
Setting up the target as "target = thisComp.layer(index -1);"
Now you can just add the video you want to "ascciisize" to the layer above your scripted text layer.
To add a little more depth to my ascii video I made a second text layer with bold type and sampled the same video with crunched levels to limit the bold type to the darkest areas. You do need to adjust the letter-spacing to align the bold and normal type. Beware that adding a second scripted layer really shows that this is a processor intense expression.