10 PRINT CHR$(205.5+RND(1)); : GOTO 10
5. SERIES FOREWORD
Software is deeply woven into contemporarylife economically, culturally, creatively,politically in manners both obvious and nearlyinvisible. Yet while much is written about how software is used,and the activities that it supports and shapes, thinking aboutsoftware itself has remained largely technical for much of itshistory. Increasingly, however, artists, scientists, engineers,hackers, designers, and scholars in the humanities and socialsciences are finding that for the questions they face, and thethings they need to build, an expanded understanding of software isnecessary. For such understanding they can call upon a strand oftexts in the history of computing and new media, they can take partin the rich implicit culture of software, and they can also takepart in the development of an emerging, fundamentallytransdisciplinary, computational literacy. These provide thefoundation for software studies.
Software studies uses and develops cultural, theoretical, andpractice-oriented approaches to make critical, historical, andexperimental accounts of (and interventions via) the objects andprocesses of software. The field engages and contributes to theresearch of computer scientists, the work of software designers andengineers, and the creations of software artists. It tracks howsoftware is substantially integrated into the processes ofcontemporary culture and society, reformulating processes, ideas,institutions, and cultural objects around their closeness toalgorithmic and formal description and action. Software studiesproposes histories of computational cultures and works with theintellectual resources of computing to develop reflexive thinkingabout its entanglements and possibilities. It does this both in thescholarly modes of the humanities and social sciences and in thesoftware creation and research modes of computer science, the arts,and design.
The Software Studies book series, published by the MIT Press, aimsto publish the best new work in a critical and experimental fieldthat is at once culturally and technically literate, reflecting thereality of todays software culture.
10. REM VARIATIONS IN BASIC
Even small changes to the 10 PRINT
code can have a significant impact on the visual output and thepattern produced. The output of 10 PRINT
has a unique visual appeal that can be understood in terms ofdesign (a diagonal vs. an orthogonal composition, for instance),and in terms of how it plays against the contextual expectations ofthe historical period when it emerged (all-text BASIC programs onthe one hand and graphical software, particularly videogames, onthe other).
To understand more about this, its possible notonly to read the program the way one might go over a poem or otherliterary text, but also to modify the program and see what happens,as the Commodore 64 Users Guide and RUN magazine explicitly invite programmers to do. Writing code can be amethod of reading it more closely, as was recognized decades ago.The text accompanying the first two printed variants suggestedmodifying the distribution of characters (in Commodore 64 Users Guide )and adding code to cause random color changes (in themagazine RUN ).This section shows the results of doing the first of these,explores what happens if other PETSCII characters are chosen fordisplay, and finally gives a one-line variation that usesPOKE
to directly write to screen memory.
As tweaking the program will show, 10 PRINT
isa kind of optimal solution that is uniquely elegant in its designspace, that of the Commodore 64 BASIC one-line maze generator. Anysimilar attempt is both less concise (it requires more code) andless expressive (it resembles a maze less or produces a lessinteresting visual pattern). In fact, the concision of the code andthe expressiveness of the image are tightly related. They arise outof a unique set of constraints and interactions, particularly theinteraction between the desire to constrain the program code to asingle line and the sequence of adjacent characters in the PETSCIItable.
EMULATING THE COMMODORE 64
The Commodore 64 was an extremely popular computer; many millionsof units were sold and many remain in working condition. It isstill possible to cheaply acquire a Commodore 64, hook it to atelevision, and operate it as users of the 1980s did. Whenones goal is to provide a classroom of studentswith access to the platform, however, or when one wishes to be ableto play with and program for the Commodore 64 in manydifferent locations on ones own contemporary notebookcomputer, there is a more practical alternative to finding, settingup, and starting up the classic taupe unit.
This alternative is a Commodore 64 emulator, a software version ofthe computer that runs on contemporary hardware and functions inthe way the original Commodore 64 did. In 1983, a Commodore 64could be purchased for $600. Today, for those who already haveInternet-connected computers, it costs nothing to download and usean emulator. Emulators have been disparaged as inadequate attemptsto mimic computers; while they do not capture the material aspectsof older computers, they need not be considered as poorsubstitutes. Instead, an emulator can be usefully conceptualized asan edition of a computer.
When developers produce a program, such as the free softwareemulator VICE, that operates like a Commodore 64, it can beconsidered as a software edition of the Commodore 64. Itisnt an official or authorizededition only being a product of Commodore wouldallow for that. (There are official, authorized emulators for somesystems, but VICE and many of the most frequently used emulatorsare not official.) An emulator like this is anattempt more or lesssuccessful to produce a system that functionslike a Commodore 64. The development of an emulator typically takesa great deal of effort and can be extremely effective, as it is inthe case of VICE. Thinking of this as an edition of the systemseems to be a useful way to frame emulation, as it allows users tocompare editions and usefully understand differences andsimilarities. Some emulators (like some editions) may be better forteaching, for casual reading or play, or for research and study.Instead of dismissing the emulator as useless because itisnt the original hardware, it makes more senseto consider how it works and what it affords, to look at what sortof edition it is.
The BASIC programs printed in this chapter can be run on aCommodore 64 emulator. The reader is encouraged to download anemulator, run the programs, and imagine how various differencesbetween emulation and the original hardware influence theexperience. For instance, the modern PC keyboard does not have theCommodore 64 graphics characters printed on the keys, and mappingthe Commodore 64 keys to a modern keyboard layout is notstraightforward. Graphically, a composite video monitor ortelevision display attached to a Commodore 64 do not functionexactly like a modern LED flat panel; the pixels drawn by anemulator are overly crisp when compared to those seen on an early display. Anemulator lets the user to save the current state of memory,registers, and so on more easily than BASIC programs can be savedto and loaded from disk on the hardware Commodore 64.
Figure 10-1. 10 PRINT CHR$(205.25+RND(1)); : GOTO 10
Figure 10-2. 10 PRINT CHR$(198.5+RND(1)); : GOTO 10