My colleague Myke pointed out this New York Times column about the Commodore 64, which waxes nostalgic and also points out how the computer opened up possibilities for new programmers to explore and learn. Myke also pointed out, quite aptly, that the photo, which is supposed to be of a Commodore 64, is actually of a 1541 disk drive. Alas, the Grey Lady, in reference to the rainbow-logoed computer, nods…
I’ll post more on this soon, but for now, let me invite you to the opening of my & Páll Thayer’s show at the Boston Cyberarts Gallery: 141 Green Street, Jamaica Plain, MA 02130, located in the Green Street T Station on the Orange Line, 617-522-6710.
The opening is 6pm-9pm on Thursday March 6.
The exhibit (which will be up March 6-16) will feature ten programs (five in Commodore 64 BASIC by Nick Montfort, five in Perl by Páll Thayer), each running on its own computer. The programs re-create aspects of the concepts and artistic processes that underlie well-known artworks, not just the visual appearance of those works. They participate in popular and “recreational” programming traditions of the sort that people read about in magazines of the 1970s and 1980s, including _Creative Computing._ Programmers working in these traditions share code, and they also share an admiration for beautiful output. By celebrating such practices, the exhibit relates to the history of art as well as to the ideals of free software and to the productions of the demoscene. By encouraging gallery visitors to explore programming in the context of contemporary art and the work of specific artists, the exhibit offers a way to make connections between well-known art history and the vibrant, but less widely-known, creative programming practices that have been taken up in recent decades by popular computer users, professional programmers, and artists.
Flag · Páll Thayer
Perl program · 2009
After Jasper Johns · Nick Montfort
one-line Commodore 64 BASIC program · 2013
I am moved by the holiday spirit of MIT’s Independent Activities Period (IAP) to announce a Commodore 64 BASIC programming workshop using original hardware.
[Update: The workshop is now fully subscribed, but I will try to arrange for spectators who would like to join us around 4:30pm to see the results of our work.]
Beginning at 2pm on Wednesday January 29, we will spend about two and half hours working on short BASIC programs. Collaboration will be strongly encouraged; there will be one Commodore 64 provided for each pair of programmers. (If you negotiate with your partner, you may write something individually, however.) It is fine to proceed by modifying programs, and some will be provided for this exact purpose. Programs need not be interactive, but can be. Visual and textual effects will be our focus, but programmers are welcome to work with sound, to develop simple games, or even (gasp!) to write a program that does something useful.
No programming experience (in BASIC, on the Commodore 64, or otherwise) is required. Those who are new to programming can be paired with experienced programmers, if this is suitable to both people. Also, the essentials of BASIC on the Commodore 64 will be described during the workshop. Finally, new programmers can do very interesting work by modifying programs, changing data and parameters and then getting into changing and adding code.
At about 4:30pm we will have a presentation, screening, showcase, or compos of sorts for Commodore 64 BASIC programs in the following three categories:
– (max) 10-line program
– (max) 25-line program
After this workshop, the code developed will be presented and shared on the Web, where it can be run in emulation or by people who have Commodore 64s.
The time for the workshop, again, is:
January 29 (Wednesday)
I can accommodate 8-10 people, programming in pairs. Reserve a place by sending me an email. Because space is limited, please promise to come to the workshop if you write to reserve a space.
Just back from several travels, I’ve found that there’s a video record online of me, Patsy Baudoin, and John Bell presenting 10 PRINT at the University of Maine way back in April of this year. In our presentation, we answer questions and discuss the origin of the 10 PRINT project and the nature of our collaboration. And I do some livecoding. Pretty often, actually.
Please note that 10 PRINT CHR$(205.5+RND(1)); : GOTO 10 is available as a beautiful MIT Press book, designed by our co-author Casey Reas, ans also as a free PDF.
Boston: No reaction.
Seattle: “No, for real?” “Yes, for real.” “That was my first computer!” “How old is that thing?” “It’s from 1982.” “Hey, that used to be state of the art! But now -” [TSA agent takes phone out of pocket, points to it.] “This has got more processing power!”
Los Angeles: “Sir, please come with me.” [TSA agent swabs power supply for explosives.] “Can you tell me what this is for?” “It’s a computer.” [Older TSA agent arrives.] “Hey! A Commodore 64! That’s a classic!”
Our first event for 10 PRINT is scheduled for:
November 12, 2012
Harvard Book Store
1256 Massachusetts Ave.
This means, of course, that the book will be printed and available for sale by then, which is less than a month from now.
The Harvard Book Store is an independent book store in Harvard Square, founded in 1932.
Of the ten authors of 10 PRINT, we’re planning to have at least me (Nick Montfort), Patsy Baudoin, and Noah Vawter there for some reading from the book, comments on the titular program and the writing of the book, and discussion. The reading is free and takes place at the bookstore itself, as the page on the event explains.
Local sound artist/electronic musician Keith Fullerton Whitman released an extraordinary piece on the b-side of his November 2009 cassette hallicrafters, inc. The piece is called 10 poke 54272+int(rnd(1) *25),int(rnd(1) *256) : goto 10 and is 18 minutes of sound produced by a Commodore 64 emulator running the BASIC program that is the title of the piece.
The memory locations beginning at 54272 are mapped on the Commodore 64 to the registers of the SID (Sound Interface Device). By POKEing random values into them, the SID, although it is a musical chip, is stimulated to produce sounds in what probably seems like a non-musical way: based on the effect of register settings and the sequence produced by the system’s random number generator, a polynomial counter.
I’m listening to the piece running on a hardware C64 now, which is soothing, although it seems like it shouldn’t be. Looking at the code, I note that the program
10 poke 54272+rnd(1) *25,rnd(1) *256 : goto 10
will put the same values into the same memory locations (and therefore SID registers) in the same order. The INT function is unnecessary because all arithmetic in C64 BASIC is done in floating point and then cast to integer whenever necessary. It’s possible that removing these functions will cause the piece to speed up, however, and I suspect it will, even though a BASIC interpreter could skip the unnecessary INT calls to begin with. There would be various ways of determining this, but the one I’d like to try involves getting two C64s, each with one version of the program, and seeing if they go out of phase.
By the way, I say that these two programs will put the same values in the same order because RND(1) returns a deterministic sequence. Any time either of these programs is invoked before other calls to RND are made, they will produce the same sequence. Using RND(0) would seed the random number generator on the jiffy clock, so would do different things depending upon how long the computer had been on before startup.
Thanks to sound artist and digital media scholar Kevin Driscoll, a.k.a. Lone Wolf, for letting me know about this.
Update: Hilariously, I overlooked that Whitman is not the author of this program – he credits Noah Vawter, a.k.a. Shifty, who is currently collaborating with me on a project about a one-line Commodore 64 BASIC program. I guess I was too distracted by that picture of an iPhone running a C64 emulator.