Remarks: Maze Walker
From Maze
(Difference between revisions)
| Line 1: | Line 1: | ||
| − | The abstract visual pattern produced by 10-print can be appreciated purely for its formal, compositional qualities, like an abstract painting or a fabric pattern. [reference other sections of the book that discuss 10-print as a formal pattern]. However, as has been discussed in [reference to section/chapter on cultural history of mazes and 10-print's location and context within this history], the 10-print pattern can also be interpreted as a maze. In this chapter, we investigate how it is that 10-print, as an abstract machine, succeeds in representing a maze or labyrinth. More specifically, we employ our software studies methodology of writing programs to interpret programs, writing a series of hermeneutic probes in Commodore BASIC that employ representational machinery of increasing complexity to ever more elaborately cash out the interpretation of the 10-print pattern as a maze. | + | The abstract visual pattern produced by 10 PRINT can be appreciated purely for its formal, compositional qualities, like an abstract painting or a fabric pattern. [reference other sections of the book that discuss 10 PRINT as a formal pattern]. However, as has been discussed in [reference to section/chapter on cultural history of mazes and 10 PRINT's location and context within this history], the 10 PRINT pattern can also be interpreted as a maze. In this chapter, we investigate how it is that 10 PRINT, as an abstract machine, succeeds in representing a maze or labyrinth. More specifically, we employ our software studies methodology of writing programs to interpret programs, writing a series of hermeneutic probes in Commodore BASIC that employ representational machinery of increasing complexity to ever more elaborately cash out the interpretation of the 10 PRINT pattern as a maze. |
| − | The first step in this process is to stabilize the pattern so that it can be contemplated as a fixed maze. Throughout this book we have shown figures of static rectangular patterns produced by 10-print [reference to a figure depicting such a pattern]. But this is not what someone running 10-print on a Commodore 64 experiences; rather than a fixed maze, 10-print produces an endlessly scrolling sequence of symbols. Figure [fig] shows a sequence of screen shots as 10-print executes. As the program starts executing, a growing line of symbols starts printing out below the typed command RUN 10, continuing in the first column of the next line as each line becomes full. When the line at the bottom of the screen fills with symbols, the screen begins scrolling, moving all lines up by one on the screen, pushing the line at the top off the screen. The bottom line of the screen is blank after this scroll operation, and the bottom line again refills with symbols. Eventually, any text that was on the screen above the RUN 10 command has been pushed off the screen. At this point, when the bottom line fills with symbols, the screen scrolls upwards by two lines instead of one, pushing the top two lines of the pattern off the top of the screen, and creating two blank lines at the bottom of the screen (this apparently anomalous scrolling behavior is explained below). From this point on, the two blank lines are continuously filled with randomly selected symbols, scrolling by two when the bottom line fills. Only for the fraction of a second when a line has filled, and before the first symbol of the next line is drawn, is there ever a rectangular maze pattern present on the screen. And not even for that fraction of second is there ever a maze pattern filling the whole screen, as the pattern immediately scrolls up by two lines when the symbol in the last row and column is drawn. | + | The first step in this process is to stabilize the pattern so that it can be contemplated as a fixed maze. Throughout this book we have shown figures of static rectangular patterns produced by 10 PRINT [reference to a figure depicting such a pattern]. But this is not what someone running 10 PRINT on a Commodore 64 experiences; rather than a fixed maze, 10 PRINT produces an endlessly scrolling sequence of symbols. Figure [fig] shows a sequence of screen shots as 10 PRINT executes. As the program starts executing, a growing line of symbols starts printing out below the typed command RUN 10, continuing in the first column of the next line as each line becomes full. When the line at the bottom of the screen fills with symbols, the screen begins scrolling, moving all lines up by one on the screen, pushing the line at the top off the screen. The bottom line of the screen is blank after this scroll operation, and the bottom line again refills with symbols. Eventually, any text that was on the screen above the RUN 10 command has been pushed off the screen. At this point, when the bottom line fills with symbols, the screen scrolls upwards by two lines instead of one, pushing the top two lines of the pattern off the top of the screen, and creating two blank lines at the bottom of the screen (this apparently anomalous scrolling behavior is explained below). From this point on, the two blank lines are continuously filled with randomly selected symbols, scrolling by two when the bottom line fills. Only for the fraction of a second when a line has filled, and before the first symbol of the next line is drawn, is there ever a rectangular maze pattern present on the screen. And not even for that fraction of second is there ever a maze pattern filling the whole screen, as the pattern immediately scrolls up by two lines when the symbol in the last row and column is drawn. |
| − | To draw a fixed rectangular maze pattern, 10-print must be modified to draw a finite number of symbols, rather than an infinite sequence. Instead of repeating the PRINT statement forever (which the GOTO statement does), we should repeat the PRINT statement a fixed number of times. How many symbols should be drawn? To avoid the extra complexity of having to format maze rows that are narrower than the width of the screen (by either centering the maze pattern by padding each line with blank spaces on each side of the maze pattern, or by having to explicitly terminate each maze line if not centering), consider only rectangular mazes that are as wide as the entire screen. Forty text symbols (characters or graphic symbols) can fit on one line of the C64 screen. Therefore, any rectangular pattern will consist of a multiple of 40 symbols. To make this concrete, consider a modified version of 10-print that will create a rectangular pattern 10 lines high; it will consist of 10 x 40 = 400 maze symbols. | + | To draw a fixed rectangular maze pattern, 10 PRINT must be modified to draw a finite number of symbols, rather than an infinite sequence. Instead of repeating the PRINT statement forever (which the GOTO statement does), we should repeat the PRINT statement a fixed number of times. How many symbols should be drawn? To avoid the extra complexity of having to format maze rows that are narrower than the width of the screen (by either centering the maze pattern by padding each line with blank spaces on each side of the maze pattern, or by having to explicitly terminate each maze line if not centering), consider only rectangular mazes that are as wide as the entire screen. Forty text symbols (characters or graphic symbols) can fit on one line of the C64 screen. Therefore, any rectangular pattern will consist of a multiple of 40 symbols. To make this concrete, consider a modified version of 10 PRINT that will create a rectangular pattern 10 lines high; it will consist of 10 x 40 = 400 maze symbols. |
| − | Now 10-print must be modified to execute the PRINT statement 400 times. One way would be to write the following 400 line program: | + | Now 10 PRINT must be modified to execute the PRINT statement 400 times. One way would be to write the following 400 line program: |
<pre> | <pre> | ||
