Challenge: 10 PRINT Screensavers

All right, anyone who is listening.

Someone has written requesting a 10 PRINT screensaver.

I can’t find one lying around the Web – is anyone up for creating one for Windows, Mac, and/or GNU/Linux (xscreensaver)?

It’s be great to make the code available so that people could modify it as they could modify the original 10 PRINT program.

The person seeking this screensaver has suggested, cleverly, that upon exiting the screensaver, the message “BREAK IN 10 / READY.” be shown.

10 PRINT Marches on

The news service of my school at MIT, the School of Humanities, Arts, and Social Sciences, has an article about 10 PRINT CHR$(205.5+RND(1)); : GOTO 10.

Also, there has been some furious and pretty amazing program creation and compaction going on in DOS/x86 land. It all seems to have started when demoscener Trixter (a.k.a. Jim Leonard) decided to port 10 PRINT to x86 assembly. His first, straightforward version was 42 bytes long, but he was quickly able to chop it down by replacing the random number generator with a single instruction: 25 bytes. Getting ready of some of the nice and tidy but strictly unnecessary startup and shutdown code brought the program down to 15 bytes. Then, thanks to the clever use of an opcode that I’d never heard of before which is meant for string comparison and is called SCAS, he was able to trim the code to 13 bytes — the shortest he thought it could ever be.

Of course, someone (Peter Ferrie) found a way to get rid of another byte, so the program sat at 12 bytes long.

herm1t came along to provide an optimization that assumed DOS was loaded, reducing the program to 11 bytes.

And, most recently, Peter Ferrie returned to lop off another byte, showing that the program (on Intel CPUs, at least) need only be 10 bytes long.

Trixter provides the full story (so far!) on his blog, Oldskooler Ramblings.

My joke about this is that the shortest possible 10-PRINT-like program will be a single jmp instruction to a run of 8 or 9 bytes that happen to already be in memory. However, this is probably only a joke: the number of possible 8-byte combinations of bits are 256^8 = 18446744073709551616, so it really isn’t very likely, even for an extremely short program of this sort, that it will just happen to be lying around somewhere in memory initially.

Speaking of the demoscene, I mentioned in my last post that viznut has checked out the book. He’s also written a very nice VIC-20 version of the program that uses two of the tiles from the Black Path Game instead of the original diagonal lines:

0 FORI=7168TO7183:READA:POKEI,A:NEXT:POKE36869,255
1 PRINTCHR$(64.5+RND(.));:GOTO1
2 DATA16,16,32,192,3,4,8,8,8,8,4,3,192,32,16,16

The result:

VIC-20 Black Path Game version of 10 PRINT

Finally, we had a great time exhibiting the 10 PRINT program and the 10 PRINT book at the 2013 MLA’s electronic literature exhibit and presenting the program and modifications of it at the MLA offsite electronic literature reading. Thanks to Dene Grigar and Kathi Inman Berens for curating the exhibit and the reading. And, thanks to Patsy Baudoin, Mark C. Marino, and Mark Sample for joining me for that presentation and for offering commentary (play-by-play and color) as I coded on the Commodore 64.

10 PRINT “HAPPY NEW YEAR”

Happy new year!

A few updates related to our book 10 PRINT CHR$(205.5+RND(1)); : GOTO 10

Booksellers had some problems keeping the book in stock in recent weeks. The MIT Press is addressing this by printing more copies.

We learned in November, and were recently reminded by Finnish scener and programmer of one-liners viznut, that there is a pre-Commodore 64 version of the program. It’s in a fairly obvious place, too: The VIC-20 User’s Manual, on page 102. The program is identical to the first variant in our book (Variant 1982) except that the line numbers are 10, 20, and 30 instead of 10, 20, and 40. This wasn’t a big surprise to us, as we knew since early in the process of writing the book that the program worked not only on the Commodore 64 but also on the VIC-20 and the PET. It would have been nice to have documented this variant in the book, of course.

mjcohenw on Hacker News states that the program originated even earlier:

I discovered this on my Commodore PET probably about 1980 and presented it at a users’ group meeting (in the Los Angeles area). I have no way to prove this right now, but I swear that this is true.

So, there’s a testament to the program being written and shared on the PET even earlier. That it comes from human memory, and not from some print source, should be no surprise to readers of 10 PRINT.

Finally, I’ll note that 10 PRINT appears as one of the “creation stations” at the 2013 Modern Langauge Association Convention. The exhibit it’s in, Avenues of Access: An Exhibit & Online Archive of New ‘Born Digital’ Literature, will be in room 312 in the Hynes Veterans Memorial Convention Center. Exhibit times are:

Thursday, 3 January, 12 Noon to 7:00 p.m.
Friday, 4 January, 9:00 a.m. to 7:00 p.m.
Saturday, 5 January, 9:00 a.m. to 7:00 p.m.

The exhibit closes on Saturday afternoon and will not be open on Sunday.

There will be a reading to accompany the exhibit on Friday night, 8 p.m. to 10 p.m., at Emerson College’s Bordy Theatre, 216 Tremont Street. 10 PRINT will be part of that and will be presented by five of the book’s co-authors.

Review of 10 PRINT in Slate, New Ports/Variants

Geeta Dayal reviewed 10 PRINT in Slate. As far as I know, this is the first published review of the book, and I greatly appreciate how it traces the discussion of mazes and other topics, pointing out the many cultural and well as technical touchstones.

Over at Stack Overflow they have a nice thread going with several shell scripts that implement 10 PRINT.

Daniel Haehn has written a 3D version of the 10 PRINT program in WebGL.

And my lab’s server is back up after a power outage here in Cambridge, MA, so the PDF of the book that was hosted there is once more available.

10 PRINT Event, Post, Site, Photos

Our event at the Boston Cyberarts Gallery (with me – Nick Montfort – Patsy Baudoin and Noah Vawter) went very well, with the gallery full for the salon and people willing up after the discussion to come program on the two Commodore 64s that we brought. There were some fascinating variants developed, too. Thanks to George for setting this up for us and to Dan and Bill for getting the space set so that the C64s could be powered up and connected to a projector.

Lev Manovich, one of the editors of the Software Studies series in which our book appears, writes of it:

10 PRINT was “coded” by 10 writers. However, rather than producing yet another academic anthology made up by independent parts, they made a coherent single “intellectual software” which executes beautifully.

We have a site for the book now at http://10print.org – you can download the entire contents, Creative Commons licensed, from the site there in a 50MB PDF. We’re happy to follow up on how the original program was shared in the 1980s by sharing our book in this way.

Finally, Casey Reas, our co-author and the designer of the book, has posted a set of photos of the 10 PRINT book. These are very effective in showing the care that Casey took in putting together the book, and how well it communicates the insights we reached together – and why you may enjoy reading the physical, printed 10 PRINT.

10 PRINT at the Boston Cyberarts Gallery

As seen on Bruce Sterling’s blog, we have an 10 PRINT (or, to be precise, a 10 PRINT CHR$(205.5+RND(1)); : GOTO 10) event tomorrow, Wednesday, here in Boston. The Boston Cyberarts Gallery (formerly AXIOM) is located in the Green Street T station on the Orange Line; the event’s at 7:30pm.

An evening to celebrate the publication by MIT Press of 10 PRINT CHR$(205.5+RND(1)); : GOTO 10. This book takes a single line of code-the extremely concise BASIC program for the Commodore 64 inscribed in the title-and uses it as a lens through which to consider the phenomenon of creative computing and the way computer programs exist in culture. The ten authors of this collaboratively written book, treat code not as merely functional but as a text-in the case of 10 PRINT, a text that appeared in many different printed sources-that yields a story about its making, its purpose, its assumptions, and more.

They consider randomness and regularity in computing and art, the maze in culture, the popular BASIC programming language, and the highly influential Commodore 64 computer.

Nick Montfort will start off the evening leading a discussion among co-authors and the audience about this celebrated piece of software. And there will be a short hackathon.

ATNE Salons are informal discussions on art/technology topics. At each event, we start the discussion with a presentation by an expert in the field who’ll provide context and raise provocative questions. Next, with the help of a moderator, we turn the debate over to you. Share your ideas, discover new ones and participate in analytical discourse and artistic cross-pollination.

About Art Technology New England

ATNE is a member-run organization whose purpose is to foster existing and new collaborations in the New England art and technology communities, including non-profit, academic & corporate entities, as well as individuals.

When: Wednesday, November 28th, 7:30pm
Where: Boston Cyberarts Gallery,
141 Green St.,
Jamaica Plain, MA 02130

Free event!
RSVP to info [at] atne.org
www.atne.org

10 PRINT Exhibit, Reading

Our book 10 PRINT CHR$(205.5+RND(1)); : GOTO 10 has been printed and bound and is making its way to bookstores now. It’s featured in a current exhibit at Hampshire College, and three of us ten co-authors did a reading to celebrate the release at the Harvard Book Store yesterday, where the first copies were available.

Nick Montfort of 10 PRINT

Our reading at the Harvard Book Store drew a sizable crowd, including MIT colleagues from Comparative Media Studies / Writing and Humanistic Studies and the Literature section; comrades in the People’s Republic of Interactive Fiction, librarians, and local free software folks and hackers, among others. The three of us read some short excerpts from the book and discussed the project, first with each other and then in response to questions from the audience. Several people assumed that the book was a collection of individually-authored articles, which is not a surprise, since that’s usually how a book like this is done. So we spent some time explaining the process of collaborative authorship that we used. The photos here are of me (Nick Montfort) on the left, then of Patsy Baudoin and Noah Vawter.

Patsy Baudoin of 10 PRINT Noah Vawter of 10 PRINT

Meanwhile, back in Western Massachusetts … and specifically at Hampshire College, the exhibit “Pulp to Pixels: Artist’s Books in the Digital Age” is on until November 16. The exhibit is curated by Andrea Dezsö, Steven Daiber, and Meredith Brober, is part of the “Non-Visible and Intangible” series, and is located at the Harold F. Johnson Library. There’s a news item about the exhibit and site with curatorial descriptions and documentation.

Below are photos of John Slepian, who offered his Commodore 64 for the exhibit and set it up, and a gallery visitor enjoying a 10 PRINT variant.

Setting up the C64

A visitor using the C64