10-Print Book Review | Software studies series
Before I start my 10 print review and before you stop watching this video be sure to check out the video bonus segments near the endpoint of this video, they are worth it.
“10 Print” is an abbreviation of the actual name of this book which is when fully expanded is a 38-byte long single line basic program code that randomly prints one of two slanted characters within an endless loop. The resulting output resembles a sort of complex maze. This program and it’s output are the focus of the many deep dives taken in this book. This book falls into the “Software Studies” series as did the book I recently reviewed “Racing the Beam”. The book was written by 10 authors/acadamians, using a collaborative effort to come up with the ideas that would need to be expanded upon in order to create a book. All proceeds collected from this book are being donated to a non-profit. On page 16, the book states the goal of the book is to plumb the depths of “cultural, computational and historical depth” of “10 print”. When I first heard about this book I have to admit I was intrigued. How could it be possible to write an entire book based upon one line of code? A short one-liner at that. Never underestimate the power and willingness of a team of dedicated author’s ability to innovate and create a story where none was previously imagined. The book is written in an academic sort of format. I did have to look up some of the words they used, Terms like, ” culturomics, unicursal, vertiginous, quixotic, pedagogical, elucidate”. I feel so illiterate right now.
They covered nearly every possible angle that could be covered, even stating for example on page 37, “10 print retains a dimension of spiritual mystery”. The book is arranged into 20 chapters with the table of contents resembling a basic program, some even including the abbreviation “REM”, which is a remark or comment statement in BASIC. These chapters, the ones starting with “REM”, contain discussions of programs or ports related to the “10 print” program.
In the early parts of the book, they dove DEEEEP into the artistic qualities of the generated maze output.
Page 66 detailed some of the possible comparisons of the output of “10 print”, comparing them to mazes, stitching, sewing, and weaving, the intersection of design craft, art, and computation, generative qualities of repetition.
The first half of the book contains a lot of detailed discussions on artistry, “regularity” and “randomness” and how variations of the program can be compared and contrasted to modern art pieces. They also do the best they can to break down the program into its various components, explaining the mechanics of the “10 print” program for those of us that are unfamiliar with basic programming processes.
I actually really liked the second half of the book. They had a reference to the movie Tron on page 139, and explained the Commodore 64 RND function in great detail on page 144. In the BASIC chapter, page 181, I learned something fascinating. Commodore paid Microsoft a paltry twenty-five thousand dollars to include BASIC on all Commodore 64s. Isn’t that amazing…
There was a terrific chapter on the Atari VCS port of “10 print”. On page 196, they explain,
“Unlike the Apple II and the PET, the Atari had no onboard ROM and no operating system, and only a fraction of the RAM of those other 1977 computers. As a result, Atari programmers had to write code that manipulated the TIA’s registers not merely on a screen-by-screen basis, but on every single scanline of the television display. ”
As a result, the shortest optimized assembler version on the VCS was a whopping 360 characters long. After looking everywhere I could fathom on the internet, I came up empty trying to find the ROM or source for the VCS version. However, I shot off an email to two of the book’s authors, Nick Monfort and Ian Bogost. Ian, graciously provided me with both files which I will have a link to in the notes of this video. Stick around for the Video bonus at the end for more on this.
In the Commodore 64 chapter, page 213, I was reminded the Commodore character set is physically printed on the computer’s keyboard on the front side of each key, a detail I had forgotten about. Also interesting on Page 229, they explain the real reason for the large border surrounding the Commodore 64, was to support all the various CRT monitors and televisions that were out at the time, with their varying viewports.
They went on to cover porting the C64 version of “10 print” into assembly language. I was surprised to learn their port to assembly was only 22 bytes long as opposed to 38 for the BASIC version. I would have thought the assembler version of the program would have been bigger than the basic version. This was due mostly to the fact there are built-in Kernal routines and video ROM on the C64.
The chapter preceding the conclusion covers the subject of “Walking the Maze”, which is trying to find some sort of solution to “10 print”. This begs the question, how do you find a solution to a program that never ends? Even if you end the program after one screen, what constitutes a valid solution? What they decided, was to define ONE solution for a fixed size, as being able to navigate from one side of the maze to the other. They wrote and documented a basic program to do just that. They also included a version of the program that would allow the user to navigate the maze through the use of the arrow keys. All Nice touches, stick around for the video bonus for more on that.
There is quite a bit that can be learned from the “10 print” book. Diving into every aspect of one line of code imaginable for example; Spiritualism, artistry, history of computing in general, history of the Commodore and the BASIC programming language, assembly language, the list goes on and on. I think it takes a lot of moxy to write a book about one line of basic code. There are tons of helpful illustrations and photographs. They include several short stories or segues that are highlighted with a light blue background, all nice touches.
I would say this book is mostly targeted to a technical audience. A PDF version of the book is available to download for free on 10print.org under a creative commons license. Alternately you can purchase the hardcover or paperback on Amazon.com for about $27 and $20 respectively. The digital Kindle format is also available for $14.00. If you want to know EVERYTHING there is to know about a single concise line of code on the Commodore 64, then this book is for you. This is a really masterfully done book and I highly recommended it.
Video Bonus:
I found an unofficial Commodore 64 companion disk to the book at this web address:
http://csdb.dk/release/index.php?id=131637
Youtube Description:
This is my review of the 10-Print book. Please be sure to check out the bonus content near the end of the video.
PDF version of the book:
http://10print.org/
Link to VCS source and ROM (Provided by Ian Bogost, Ph.D.):
http://bogost.com/downloads/10-Print-Atari.zip
C64 Companion disk:
http://csdb.dk/release/index.php?id=131637
New eBook by Warren Robinett:
http://www.warrenrobinett.com/adventure/index.html
Can’t get enough of Warren Robinett:
http://www.gdcvault.com/play/1021860/Classic-Game-Postmortem
C64 Dirmaster program:
http://style64.org/
Youtube Original Post Date: 09/18/2016