Yow Revisited from Ward Cunningham on Vimeo.
I wrote the driver for this part in four steps corresponding to four distinct levels of abstraction required of such an application. These are:
I wrote perl functions for each pin, each register, each method and each application of those methods that make up the demo in the movie. Here are some sample functions pulled from each section of the code:
# HDLx-2416 Pins sub wr_ { tz "4f 0o 1o"; } # HDLx-2416 Registers sub ch { my ($a, $ch) = @_; a $a; cue 0; cu_ 1; d ord($ch); wr_; } # Application Helpers sub txt { my ($t) = @_; for my $i (0..60) { msg (substr $t, $i, 4); tz "_wait_100m" }} # Scroll Application txt "Now is the time for all good men to come to Dorkbot.";
With the rest of the pins, registers, helpers and applications, the program runs a full page. As always, you can find it in the Yow Project page on GitHub.