Humboldt University of Berlin
Cultural, Social and Educational Faculty
Institute of Musicology and Media Studies
Master Program Media Studies
Summer semester 2015
Supervisor: Dr. Stefan Höltgen
project report
Retrocomputing as a practical
media Archeology
About the development of a flash memory module
for the video game console "Interton VC 4000"
John Maypole
September 28, 2015
Matriculation number: 533368
4th semester
Paul-Grasse-Str. 12, 10409 Berlin
jmaibaum@gmail.com
Table of Contents
1 Exposure of the problem area 1
2 The task 6
3 The Solution 7
3.1 Analysis of the hardware structure. , , , , , , , , , , , , , , , , , , , , , , , , , 7
3.2 First hardware tests with a SRAM. , , , , , , , , , , , , , , , , , , , , , 12
3.3 The third state of binary electronics. , , , , , , , , , , , , , , , , , , , , , 14
3.4 In the hunt for hardware errors. , , , , , , , , , , , , , , , , , , , , , 19
3.5 Additional logic gates. , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 22
3.6 (SD) card games. , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 23
3.7 Reading and Writing. , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 24
3.8 The last faulty game. , , , , , , , , , , , , , , , , , , , , , , , , , , , 26
4 The result 30
4.1 Arduino firmware code. , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 34
5 Retrocomputing as a media archeology method 38
5.1 Media-theoretical insights through active retrocomputing. , , , , , , 41
5.2 Media Archeology versus Media History? , , , , , , , , , , , , , , , , , 43
5.3 Sending and receiving. , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 46
5.4 Conclusion. , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 47
List of Figures 48
Literature 49
1 exposure of the problem field
The task of the project was developed during the course
series "Signetics 2650 Programming Workshop" Stefan Höltgen, the first time in the
Wintersemester2013 / 14undindendanachfolgendenzweiSemesternangebotenwurde.Hier
students of the bachelor and master programs Media Science had the opportunity
speed, a media-science-oriented introduction to assembler programming
to obtain. 1
GegenstanddesProgrammierworkshopswarderimJahr1975vorgestellte8-bit microprocessors
2 2650. 2 This was manufactured by the company Signetics, founded in 1961, one of the
first manufacturer of commercial integrated circuits (ICs). 3 still in
In 1975, Signetics was acquired by the US spin-off of the Dutch company Philips,
retained the name Signetics until 1993, before being renamed Philips Semiconductors
has been. In 2006, Philips divested itself of its semiconductor division, which has since been a corporate consortium.
NXP Semiconductors continues to produce and sell ICs. 4
In the first part of the course, first of all, Signetics
programs developed on their microprocessor, Instructor 50 has been
de, we switched from the second semester to the video game console VC 4000 German
Company Interton Electronic. 5 This contains besides the 2650 as the main processor the program-
1 See also Stefan Höltgen. "The NOPs and HALT's digital media. Programming less machine closer
Languages ​​for media scientists ". In: Basic Studies in Cybernetics and Humanities. inter-
National Journal of Modeling and Mathematization in Human Sciences 55.4 (Dec. 2014), p. 139-
153rd
2 Cf. "2650 Now Being Shipped And Sampled". In: Microcomputer Digest 2.1 (July 1975). Edited by Micro-
Computer Associates Inc., pp. 1-3; Signetics Corporation, ed. Signetics 2650 Microprocessor. Data sheet. USA,
1975th
3The most well-known, most successfulSignetics product is available in billions of euros
len produced (and sold) timer chip NE555, cf. Jack Ward. "The 555 Timer IC. An interview with Hans
Camenzind-TheDesigneroftheMostSuccessfulIntegratedCircuitEverDeveloped ".In: Transistormuseum.com
(June 2004). url: http://semiconductormuseum.com/Transistors/LectureHall/Camenzind/
Camenzind_Index.htm (visited on 24.09.2015), p. 1-2; Hans Camenzind. Designing Analog Chips. 2nd ed.
College Station / TX: Virtual Bookworm Publishing, 2005. url: http://www.designinganalogchips.com/
_count / designinganalogchips.pdf (visited 24.09.2015), chap. 11th
4 Cf. Silicon Valley Historical Association. NXP Semiconductors. 2008. url: http: / / www.
siliconvalleyhistorical.org/nxp-semiconductors-history (visited 24.09.2015).
5 Interton Electronic was the consumer electronics division of German hearing aid manufacturer Interton.
The VC 4000 video computer was made between 1978 and 82 as a licensed version of the British radio station
1292 Advanced Programmable Video System distributed. Historical information about the VC 4000 can be found in the
InternetineinemrudimentärenWikipedia-EintragundaufdenSeitenvonHobbyistenundPrivatsammlern.Die
There, however, contradict some information considerably. See, e.g. Entry "Interton VC4000".
In: Wikipedia. The free encyclopedia. Edited by Wikimedia Foundation Inc. March 15, 2015. url: https: //
de.wikipedia.org/w/index.php?title=Interton_VC4000&oldid=139806399 (visited on
09.24.2015); Andreas Thurow. Story. In: VC4000.de. Without dating. url: http://vc4000.de/html/
1
ble Video Interface (PVI) 2636 as coprocessor for graphics and sounds. 6 The game software becomes
programmable memory ICs (sogenanntePROMs, programmable read-only memory)
loaded within game modules. Rewritable memory (RAM, Random Access
Memory) is absent, except for 37 bytes within the PVI, unless that
Game module brings along appropriate RAM blocks. The 37 available for the VC 4000
Original games vary in their possible program length due to the built-in ROM
Blocks between 2KiB, 4KiB and 6KiB. The games "Backgammon", "Lady", "Chess 1"
and "chess 2" additionally have 1KiB RAM, e.g. for the calculations of the trains
of the computer opponent or to log the moves of a game of chess, so after
End of the game can be reconstructed. 7
During the workshop, only emulation software developed by
to be programmed with Jacobs developed WinArcadia, which has several home computer
and video game systems based on the 2650 emulates. 8 Thanks to built-in assembler and
Memory monitor as well as the possibility for the students, on their own computers
initially seemed very comfortable, but ultimately proved
very problematic. At the end of the workshop in September 2014, the half-way through
crunched game - an adaptation of the smartphone game FlappyBird - tested on the console
should be the differences between the emulation software and the real
Hardware clearly. Although the programmed bird was just like in the emulator in the
wanted to see colors and could also be controlled, other aspects of the game
Demo behaved on the original hardware but completely different than expected.
The music accompaniment of the game developed by Juliane Schütte was still in the emulator
very noisy, now the console surprised by absolutely trouble-free sound reproduction.
be. Quite different when displaying the scores: In the previous program code should here
the elapsed time since the beginning of the game, which
history.html (visited on 24.09.2015); W. Forster. Interton VC-4000 Video Computer. Entry to the VC
4000 on the Pong Picture Page. 27. Nov. 2005. url: http://www.pong-picture-page.de/catalog/
product_info.php? manufacturers_id = 78 & products_id = 110 (visited on 24.09.2015).
6 See Valvo, eds. Signetics Programmable Video Interface (PVI) 2636. Datasheet. Without dating.
7 An illustrated list of original games can be found at Andreas Thurow. Games. In: VC4000.de. Oh-
Dating. url: http://vc4000.de/html/body_spiele.html (visited on 24.09.2015). 1KiB
(ie: "a kibi byte") stands for 1 ⋅ 2 10 bytes = 1024bytes. Binary prefixes like kibi are used by the International
Electrotechnical Commission (IEC), the international standardization organization for electrical engineering in Geneva,
for a clear distinction from the usual decimal prefixes like kilo recommended (1kB = 1 ⋅ 10 3 Byte =
1000Byte). See, e.g. Markus Kuhn. Standardized units for use in information technology or "What is a megabyte
...? "19 July 1999. url: https://www.cl.cam.ac.uk/~mgk25/information-units.txt (visited on
09.24.2015).
8 James Jacobs. WinArcadia. Program source code. Version 24.21. url: http://amigan.1emu.net/
releases / WinArcadia-src.rar (visited on 24.09.2015).
2
Figure 1: Display error in the developed game on the original hardware.
3
lation succeeded. On the other hand, the counter remained on the console after one second
stehen.ZuletzterstauntedergrößtenteilsschwarzeHintergrundaufdemFernsehbildschirm,
daeindunkelblauerHintergrundvorgesehenwar.DieserwarnuramäußerenRanddesBild-
and in a few horizontal rectangles in the middle of the picture
(see Figure 1). Upon request, the emulator developer Jacobs responded with the following
Point out:
1. The sound issue will be fixed for the next version [of the emulator, J.M.].
2. The console is expecting SCORELT / SCORERT 9 to be written during the frame, not during
vertical blank; the emulator is more tolerant of when it is written.
3. Memory at $ 1F80 .. $ 1FAC holds the background grid definitions; the game needs to clear this
at boot. 10
In the naive programming experiments, the workshop group was thus equal to several
Points encountered in which the emulator behaves differently than the real hardware. interested
In a nutshell, two different causes for the observed divergences can be established.
do. Jens-Martin Loebel classifies these two types of errors as follows: "Either
refrain from (forgetting) to implement something ('error of omission'), or something became
incorrectly implemented ('error of commission') [...]. "For" community emulators "
omission errors more often because their developers often "only on insufficient specifications
can fall back. "11
Point 1 represents an error of commission, therefore the author can rectify it for
announce the next program version. Points 2 and 3 are in fact
Errors that the programmer is well aware of, he knows
explain why the programmed game in these cases depends on the real hardware.
behaves as in his emulator. Even more, in the case of point 3 he consciously renounces
the implementation error - in the sense of a more accurate or complete emula-
9 SCORELT and SCORERT are the mnemonics for the two memory cells FC8 16 and FC9 16 in the PVI, the
hold the score to be displayed, cf. James Jacobs. Interton VC 4000 Coding Guide. General
HinweisezurCodestrukturvonVC 4000 games. Erstelltam7.Feb2007. Feb.10,2014. url: http: // amigan.
yatho.com/i-coding.txt (visited on 09/24/2015).
10 JamesJacobs.Thesoundissuewillbefixed.Commentonfacebookindergedgroup "Signetics
2650 ". 24th Sep 2014. url: https://www.facebook.com/groups/392123604238327/permalink/
643611902422828 /? Comment_id = 643746732409345 & offset = 0 & TOTAL_COMMENTS = 8 & comment_
tracking =% 7B% 22tn% 22:% 22R1% 22% 7D (visited on 24.09.2015).
11 Jens-Martin Loebel. Lost in Translation. Performance, use and limitations of emulators in the
Long-term preservation of digital multimedia objects using the example of computer games. Glückstadt: Hülsbusch,
2014, p. 146.
4
tion - to fix, the observed "translation gap" thus remains in these cases. 12
The reasons for existing (and persisting) omissions in emulators
are not exclusively due to "missing system specifications and misunderstandings",
even if a look at the datasheet of the graphics processor of the VC 4000
helegt. 13 In fact, there is no explicit indication throughout the 14 pages
that any memory area of ​​the 2636 is initialized for proper startup
would. The authors presumably assumed that their primary readership was
engineers and not humanities scientists, so that in the case of our
lerous game codes crucial technical detail that an electronic memory cell
after applying their supply voltage an undefined, unpredictable
Can take state, simply leave out.
Why the emulator behaves differently here, a glance reveals in his source code.
Within the function interton_setmemmap (), which is used to emulate the hardware
required memory, the following loop can be found: 14
1 for (i = 0; i <= 0x7FFF; i ++)
2 {memory [i] = 0;
3}
Here the whole of the emulated 2650 within the emulated console is addressierba
re memory area initialized with zeros. In software development with machine-oriented
Programming languages ​​this is - to simplify the debugging, the elimination of
Errors in the program code - the usual practice, because here too the physical
characteristics of electronic memory cells or the properties of the current ones
Operating System known: "Automatic variables for which there is no explicit initializer have
undefined (i.e. garbage) values. "15
In the words of Friedrich Kittler, one could polish at this point: "A machine
So, at the same time, it can give less and more than its data sheets. "16 Formulated in 1991, on
looking for a way out of the "Protected Mode" of his "No Name AT 386 [...] under
12 The term "translation gap" refers to Loebel "all deviations [...] in the reception of a
complex digital artefacts within an emulation environment [...] to [...] derOriginalumgebung
of the artifact. "Loebel, Lost in Translation, p. 105.
13 See Valvo, Signetics Programmable Video Interface (PVI) 2636. This version of the datasheet is called a scan
on Jacobs' server and was therefore probably also to the development of his emulator
used.
14 Jacobs, WinArcadia, file interton.c, lines 48-50.
15 Brian W. Kernighan and Dennis M. Ritchie. The C Programming Language. 2nd edition Englewood Cliffs / NJ:
Prentice Hall, 1988, p. 40.
16 Friedrich Kittler. "Protected Mode". In the S. Dracula's legacy. Technical writings. Leipzig: Reclam,
1993, p. 208-224, here p. 221.
5
Microsoft DOS 3.3 ", 17 Kittler used this sentence as a vehicle to launch literary studies.
demand "to proceed according to similar procedures in a strictly technical field [...], such as
it proposed the discourse analysis Foucault for speeches and texts. "18 The empirical
Self-test of the faulty game code, the alleged gaps in the data sheet
of PVI, as revealed in the source code of the emulator used, could therefore as
simple confirmation of Kittler's polemic. Instead, the idea came
on, together with Mario Keller, another participant in the programming workshop,
the failure of programming in assembler due to "insufficient speech
cifications "not merely as proof that Kittler's texts therefore only
to be read "as a historical source and not as a 'Kittler'. 19 Instead, Dracula
Legacy now even more to be taken in the (pre) word. It states: "Readers will
because maybe learn wieSchreibmaschinenzubauen, computer programs or ascribing
Schematics are to be read. "20
2 The task
Instead of just reading datasheets and schematics, Mario Keller and the author decided to
to explain the unsatisfactory situation for today's programmers on the old VC 4000.
improve and design a piece of hardware yourself. This should primarily the respective
rundzwanzigMinutendauerndenLöschvorgangeinesEPROMs (ErasableandProgrammable
Read-only memory) by UV light irradiation, which occurs during the assemblerwork
If necessary, the self-programmed code on the VC4000 is required for a test run.
denwerdenkonnte.MitdergeplantenPlatineimModulschachtderKonsolesollteesmöglich
be the assembled program code from a modern flash memory such as an SD
Card instead of a hard or hardly changeable (EP) ROM.
At the same time, such a "flash ROM module" or "multi-ROM module", such as the
The title of the work was that further research questions from decidedly media-scientific
Not only enable eating, but also much easier. Trivially,
the manual change of original game modules is dispensed with next, as all their ROM in-
hold, once read and stored on the SD card, less than 100KiB space
occupy. A little less banal would be the test of software-compatible games technically
17 Kittler, "Protected Mode", p. 208.
18 Ibid., P. 222.
19 Claus Pias. "Friedrich Kittler and the 'Abuse of Army Equipment'. On the situation of a mental picture 1964 -
1984 - 2014 ". In: Mercury. German Journal of European Thinking 69.791 (Apr. 2015), pp. 31-44, here p. 34.
20 Friedrich Kittler. Dracula's legacy. Technical writings. Leipzig: Reclam, 1993, p. 8.
6
such as the Radiofin 1292, whose modules, however, due to other dimensions
The plastic case does not fit into the module bay of the VC4000
give the project the opportunity to assess the appropriateness of retrocomputing as a method of medi-
enarchaeology (see Section 5).
To put it simply, the planned multi-ROM module is a
Hardware emulation of all components found on a gaming module for the VC 4000
can and contribute to the correct rendering of the game. Like the look in any
Game module for the VC 4000, this hardware is in most cases
nothing more than a ROM-IC. Exceptions are only the four above
Games that also have RAM blocks. Here are next to the ROM and the
RAM ICs built in additional logic ICs, which depend on the desired memory address.
Do not activate any ROM or RAM devices (see Figure 2).
At the beginning of the project, the question of how to choose was left open
deszuladendenProgrammcodeserfolgensollte.AlsKönigswegerschieneineMenüsoftware,
dienachdemEinschaltenderKonsolezunächstgeladen, dieDateinamenderaufderSD card
list programs on the TV screen and then to the user
the selection of a game by means of the controls on the hand controller of the console
would allow. This would require the development of assembler code for the 2650
unddamiteinendirektenAnschlussandenProgrammierworkshopbedeuten.Alsalternative,
Simpler solution came up with the idea of ​​having additional selection electronics directly on the module
to install. Via mechanical switches and a simple display, e.g. in the form of two
Seven-segment LED digits could target one of up to 100 (at decimal) or from to
to 256 (in hexadecimal notation) programs are selected.
3 The solution
Aufgrunddes-zumindestfürElektroniklaien-complex project was decided
progressively towards the project objective by successively identifying individual, preferably
liert functioning subcircuits would be developed. Your merge would
then give the finished multi-ROM module.
3.1 Analysis of the hardware structure
In a first step, the hardware structure of the VC 4000 had to be examined more closely.
It was important to understand how the interconnection of the most important ICs in the console - namely -
7
Figure 2: Two exemplary original game modules of the VC 4000: left the game module
No. 12 "Hunting", which consists only of a ROM module; right the game module
No. 13 "Chess", the additional RAM modules and the necessary control logic
brings.
8th
Figure 3: The interconnection of the CPU (S [ignetics] 2650) and the PVI (S2636) with the module slot.
9
A0 ... A12 address lines inputs
D0 ... D7 Data lines Inputs / Outputs
CE1 control signal ROM input
OPREQ, R / W, WRP control signals RAM inputs
+ 5V, operating voltage inputs
Figure 4: Signal cables on the module slot. The signal type in the third column is off
the perspective of the game module specified.
The CPU 2650 and the PVI 2636 - structured with the components on a game module
is. Here it was possible to make use of circuit diagrams already available on the Internet. 21
The most important point of the circuit for the project is undoubtedly the module slot or
Cartridge Slot, which is the interface between the console and the module to be developed
represents (see Figure 3). 22 The cables running over them transport those
Signals that the console directs to a game module (a 13-bit address via the address
bus) and expected in response (an 8bit long data word over the data bus), ie
those hardware functions that are processed by the planned multi-ROM module, eg
be given must umalsHardware-EmulationeinesbeliebigenOriginal game module
to work. Negatively formulated, the signal lines on the module slot are the only ones
Possibilities to intervene in the operation of the console (see Figure 4).
This first look at the wiring diagram was immediately followed by the first disillusionment. Unfortunately
liegtamModulschachtkeineLeitungan, mitderdasMulti-ROM ModuldieSignetics-CPUin
could interrupt their ongoing operations, for example - after selecting a
Game out of a menu software - be able to restart the console to the game
load. 23 Any communication between the multi-ROM module and the console must therefore
done exclusively via the address and the data bus.
Equipped with these first findings about the hardware structure of the game console
It had to be clarified which hardware functions the multi-ROM module must possess
undwiesichdiesemitheutigenBauteilensinnvollumsetzenlassen.ZudiesenZeitpunktwa-
Mario Keller and the author already agree that the microcontroller
Development environment Arduino would work as soon as it has more complex control tasks.
21 The schematics found on various servers within a Compressed RAR archive
According to printed information, VC 4000 are all made by Manfred Schneider. Circuit diagrams of the VC4000. Archive-
file with PDF drawings. Feb. 2007. url: http://vc4000.de/vc4000_Schaltplaene.rar (visited
on 24.09.2015).
22 Ibid., Detail from the file vc4000-Mainboard.pdf.
23 Neither the RESET (terminal 16) nor the INTREQ terminal (INTerrupt REQuest, terminal 17) of the 2650
are led out to the module. The RESET connection is, however, via the button of the same name on the
Front of the console accessible. Here the user can force a restart of the CPU.
10
ben on the hardware of our multi-ROM module. This decision
had several reasons: First, both project participants already had several projects
realized this platform, so they were familiar with their programming. Secondly,
We have a large number of ready - to - use programming libraries for this platform
certain applications, dieauchimProjektbenötigtwürden.Zunennenistbeispielsweise
the SD library for comfortable reading and writing of data from an SD card via
High-level language features well documented on the Arduino project page. Third, third
wurdedieArduino-PlattformeigenszudemZweckentwickelt even "nontechnicalstudents"
to facilitate the programming of microcontrollers for control purposes. 25
Duino board is therefore the means of choice for technical projects that are not part of a
degree in engineering sciences such as media studies.
Beyond the microcontroller and its available libraries, the physical
Connection of an SD card also via an already available, so-called "Break-
out-board ", which in addition to an SD card slot
speaking level converters between the VC4000 and the Arduino
Spannungspegelnvon0bis5V (denklassischenTTL levels) unddenaufeinerheutigenSD-
Card usual 0 to 3.3V features. Such level shifters allow older TTL switching
circuits are installed together with more modern components in current circuits, such as
The data sheet of the SN74LCV125A used on the breakout board reads: "Inputs
can be driven either 3.3-V or 5-V devices. This feature allows the use of this device as
a translator in a mixed 3.3-V / 5-V system environment. "26
24 Cf. Arduino, ed. Getting Started with Arduino. Online documentation. url: https: //www.arduino.
cc / en / Guide / HomePage (visited on 24.09.2015). Certainly the programming would be access to
an SD card via the standardized "Serial Peripheral Interface" (SPI) in assembler the viable way for
a project created from an assembler workshop. But because the programming interface to the SD card,
as well as other aspects of programming on the Arduino platform compared to the project goal
If a Flash ROM module for the VC 4000 only plays beside or
Use of high-level language libraries is mandatory. Otherwise, this hardware project risks its whole
own software crisis. A complete development of the Arduino software in Assembler avoids machine-like
programming at any price would undermine the actual project goal; "So meaningful this had been
may be to understand basic ways of working the computer ", a criticism of a media
science "after Kittler" something purpose - alienated (Pias, "Friedrich Kittler and the, abuse of
Army equipment '", p. 34). Nonetheless, the source code of all these libraries is in the Arduino platform environment
thanks to open-source licenses visible at any time. Open source closes hardware functions only superficially
before a purely practical programmer, but not the equally theoretically interested me-
serving scientist. On the historical software crisis at the end of the 1960s, cf. e.g. Michael S. Mahoney. "The
histories of computing (s) ". In: Interdisciplinary Science Reviews 30.2 (2005), pp. 119-135, here p. 128.
25 David Kushner. "The Making of Arduino. How five friends engineered a small circuit board that's taking
the DIY world by storm ". In: IEEE Spectrum (Oct 26, 2011). url: http://spectrum.ieee.org/geek-
life / hands-on / the-making-of-arduino (visited 24.09.2015).
26 Texas Instruments Inc., ed. SN74LVC125A. Quadruple Bus Buffer Gate With 3-State Outputs. Data sheet.
Dallas / TX, Feb. 2004. url: http://pdf1.alldatasheet.com/datasheet-pdf/view/171748/TI/
11
Then it had to be clarified how the program code of the individual games for the console
lebereitgestelltwerdenkönnte, umspielbarzusein.WieausAbbildung4ersichtlich be
insgesamt25Signalleitungenbenötigt.DiesschlossdiealleinigeVerwendungeinesArduinos
In the simple versions, it only has more than 20 freely programmable connections.
se features. 27 But even if a bigger microcontroller like on an Arduino Mega
would be used, which has enough connections, there would be a strictly time-critical
Border. Patrick Vogt, who at the beginning of the project had some ideas for a multi-
Contributed ROM module through the collaboration platform Moodle, has this limit through
a rough estimate:
Even if the microcontroller has 20MHz 28, this would mean that a CLK
period of the main processor, J.M.] ~ 50ns. Since the desired byte, which to the
Address lines present must be returned after about 450ns, this gives a maximum
Number of 9 commands (under the idealized assumption that all commands exactly 1 CLK for the
Need processing). 29
3.2 First hardware tests with a SRAM
Instead of the consequently impossible real-time mode it was decided - based on a
Another note from Patrick Vogt from the just-quoted board contribution in which he
suggested "Using the Microcontroller" an EEPROM (Electrically Erasable Programmable
Read-Only Memory 30) with the desired program code - on the Mul-
ti-ROM module a dedicated memory module for the provision of the game code for
to use the VC 4000. Instead of an EEPROM, however, the decision was made
static RAM (SRAM). 31 Besides the omission of the limit of physically possible write
LVC125A.html (visited on 24.09.2015), p. 1.
27 Of these 20 are already two for the USB programming interface of the microcontroller, as well as four
more needed for the SPI interface to SD card, so effectively only 14 ports for communication
be available with the console.
28 Most Arduino boards - e.g. the nano used in the project or the mega with additional
Ports - have a standard 16MHz Quartz, so are clocked a little slower.
29 Patrick Vogt. Interton VC4000 homebrew EEPROM module? Post in the online forum circuit-board.de.
Apr. 10, 2014. url: http://circuit-board.de/forum/index.php/Thread/12776-Interton-
VC4000 homebrew EEPROM module /? PostID = 324054 # post324054 (visited 24.09.2015), Orthogra-
phie taken from the original.
30 EEPROMs are related to the older EPROMs. While the latter only clear themselves by means of UV light
EEPROMs can not only be programmed electronically, but also deleted electronically
are wasihreVerwendunggegenüberEPROMSvereinfacht.DadieAnzahlanmöglichenSchreibvorgängen,
before an EEPROM becomes unusable, but mostly limited to a few 100,000, this type of memory is different
for the project.
31 SRAM is characterized in that the memory cells - once described - their memory contents
without external intervention, as long as an operating voltage is applied. The name SRAM will be above all
12
This choice is also made possible by a very simple electronic control.
justify:
Using asynchronous SRAM is as easy as falling off a log: to read a word, you assert the address,
chip enable (ce ') and output enable (oe'); The requested data is obligingly appearing on the three-state
data lines a maximum of? AA (address-access time) later. 32 To write a word, you assert address,
data, and ce ', then follow (after a minimum of an address setup time,? AS) with a write enable (we')
pulse; valid data are latched into memory at the end of the we 'pulse. 33
The used SRAM-IC 6264 is an 8KiB (8192Byte)
module, which, like the console, has a 13-bit address bus and a
tenbus with a word width of 8 bits, which therefore directly with the corresponding
Interconnect buses of the VC 4000. 34
However, the limited output count on the Arduino forced the use of more
Blocks to describe the SRAM. By the series of three
The so-called 74HC595 shift register has only four outputs on the Arduino.
ge benötigt, um die Signale für einen Schreibvorgang – 13 Adress- und acht Datenbits –
seriell auszugeben. Die Schieberegister geben die empfangenen Bits dann über ihre je acht
Ausgänge parallel an die entsprechenden Adress- bzw. Datenanschlüsse am SRAM weiter,
wo sie gespeichert werden sollen. 35 Wie von Horowitz und Hill prinzipiell beschrieben, ist
im Vergleich mit dynamischem RAM (DRAM) klar, wo der Speicherinhalt jeder einzelnen Speicherzelle in Zy-
klen wiederaufgefrischt werden muss, um nicht verloren zu gehen. SRAM-Zellen sind meist mittels Flipflop-
Schaltungen aus sechs Transistoren realisiert, wohingegen eine DRAM-Zelle bereits mit nur einem Transistor
und einem Kondensator implementiert werden kann – was DRAM-Bausteine zwar deutlichgünstiger macht
als vergleichbare SRAMs, jedoch den Nachteil einer für den geplanten Zweck zu komplizierten externen Wie-
derauffrischungsschaltung mit sich bringt. Für eine aktuelle, dezidiert elektrotechnische Diskussion mit ent-
sprechenden Prinzipschaltungen, vgl. e.g. Paul Horowitz und Winfield Hill. The Art of Electronics. 3. Aufl. New
York: Cambridge University Press, 2015, S. 1015–1021.
32 Zu den three-state data lines, siehe den folgenden Abschnitt.
33 Horowitz und Hill, The Art of Electronics, S. 1016 f.
34 Der 6264 wird als standardisierter SRAM-IC von verschiedenen Herstellern gebaut und angeboten, so z.B.
vonUtronTechnologyInc.,Hrsg.UT6264C.8KX8BitLowPowerCMOSSRAM.1.4.Datenblatt.Hsinchu,15.Mai
2003. url: http://cdn-reichelt.de/documents/datenblatt/A300/UT6264.PDF (besucht am
24.09.2015).ImDatenblattwerdenalskonkreteWertefürdieminimaleDauereinesLese,bzw.Schreibvorgangs
70ns angegeben, vgl. ebd., S. 4.
35 Die serielle Übertragung der Daten vom Arduino und deren Übersetzung in parallele Signale für das SRAM
funktioniertdetailliertwiefolgt:ÜbereinenerstenAnschluss(„SHCP, shiftregisterclockinput“)wirdeinTakt-
signal erzeugt, dass den Schieberegistern signalisiert, in welchem Rhythmus an ihrem seriellen Eingang („DS,
serial data input“) die entsprechenden Datenbits anliegen. Pro weiterem Taktsignal wird das so empfangene Bit
um eine Stelle im internen Register weitergeschoben, während das nächste Bit am seriellen Eingang eintrifft.
Sind alle Bits übertragen, wird über den dritten Anschluss namens „STCP“ („storage register clock input“) der
aktuelle Inhalt des Schieberegisters in ein internes Speicherregister kopiert. Dessen Speicherzellen sind mit den
acht parallelen Ausängen des 74HC595 verbunden, die über den vierten Anschluss („OE, output enable input“)
aktiviert werden können. Vgl. NXP Semiconductors, Hrsg. 74HC595; 74HCT595. 8-bit serial-in, serial or parallel-
out shift register with output latches; 3-state. 7.Rev. Datenblatt. 26. Jan. 2015. url: http://www.nxp.com/
13
Abbildung 5: Testaufbau der seriellen Schreibschnittstelle zwischen SRAM und Arduino auf
einem Steckbrett. Links die drei Schieberegister, rechts daneben der SRAM-IC
(unter den Drähten), ganz rechts die Arduino-Platine.
dazu noch ein Schreibimpuls notwendig, der an einem weiteren Ausgang des Arduinos ge-
neriert werden kann. Zum Beschreiben des SRAMs werden am Arduino also insgesamt fünf
Ausgänge benötigt.
Ein erster Test dieser Schreibschaltung mit den drei Schieberegistern, dem SRAM und ei-
nem Arduino UNO auf einem Steckbrett verlief im November 2014 erfolgreich (siehe Ab-
bildung 5). Nach Abzug der fünf für die beschriebene serielle Schnittstelle benötigten An-
schlüsse blieben am Arduino noch genügend Aus- und Eingangsleitungen übrig, um einen
Speicherbereich von 256Byte testweise wieder auszulesen. So konnte der Schreibvorgang
verifiziert werden.
3.3 Der dritte Zustand binärer Elektonik
Es galt nun zu überlegen, wie diese Teilschaltung auf einem Multi-ROM-Modul innerhalb
der VC 4000 eingesetzt werden kann. Denn unmittelbar nach dem Einschalten der Konsole
beginnt nicht nur der Mikrocontroller des Arduinos seine Arbeit, sondern ebenso die CPU
in der Konsole. Der 2650 legt – im Takt von etwa 900kHz, das heißt rund einmal pro Mikro-
sekunde – Adresssignale an den Adressbus an und liest Datenbits vom Datenbus. Damit sind
documents/data_sheet/74HC_HCT595.pdf (besucht am 24.09.2015), S. 5, Tabellen 2 („Pin description“)
und 3 („Function table“) sowie S. 6, Abbildung 8 („Timing diagram“).
14
alle diese Leitungen elektrisch belastet und der Arduino hätte keine Chance, sein Programm
indenSpeicherzuschreiben.GenausowenigwürdedieCPUeinausführbaresProgrammvor-
finden, denn die SRAM-Speicherzellen wären direkt nach dem Einschalten mit undefinierten
Werten belegt. 36
Problematischist folglich,dass allebeteiligten Bauteileüberdieselben elektrischenLeitun-
gen miteinander verbunden sind und gleichzeitig versuchen, über diese Leitungen logische
Binärwerte als Signalspannungen von entweder 0 oder 5V zu übertragen. Im besten Fall
passiert dabei nichts schlimmeres. Beide Prozessoren, der 2650 in der VC 4000 und der AVR
ATmega 328 auf der Arduino-Platine, versuchen stur ihre Programme abzuarbeiten, was sich
für den Benutzer am Fernsehbildschirm gegebenenfalls als visuelle und auditive Störungen
(glitch) darstellen dürfte. Im schlechtesten Fall können jedoch durch die beteiligten Signal-
spannungen und dadurch ausgelöste Stromflüsse eines oder mehrere der beteiligten Geräte
durch Kurzschlüsse zerstört werden. 37
Um dies zu verhindern, können die Ausgänge komplexerer elektronischer Digitalschal-
tungen in der Regel einen zusätzlichen dritten Zustand einnehmen, den sogenannten hoch-
ohmigen Zustand (auch High-Z oder schlicht Z genannt). Elektronisch betrachtet bedeutet
dieser Zustand, dass eine Verbindung des Ausgangs mit den beiden Betriebsspannungspolen
nur über sehr hohe elektrische Widerstände besteht, sodass über diesen Anschluss lediglich
ein vernachlässigbarer Strom fließen kann. 38 Für die übrigen, an der selben Leitung ange-
schlossenen Geräte scheint es dann so, als wäre das Bauteil mit dem hochohmig geschalteten
Ausgang gar nicht vorhanden.
Auf diese Weise funktioniert auch die normale Schaltung der VC 4000, wenn ein normales
Spielmodul mit einem ROM-IC eingesteckt wurde. Denn bereits hier sind je drei Geräte mit
dem Adress- und Datenbus verbunden: die CPU 2650, das PVI 2630 und das ROM auf dem
Spielmodul,meistvomTyp2616 oder2632 (2KiB,bzw.4KiB;sieheAbbildung6). 39 DieSteue-
rung der Ausgänge D0–D7 des ROM erfolgt nicht nur über den Adressbus A0–A12, sondern
zunächst über die Signale, die an den Eingängen mit den Bezeichnungen „CS“ (Chip Select),
36 Genau wie die SRAM-Zellen innerhalb des PVI 2636, wie in Abschnitt 1 beschrieben.
37 Vgl. z.B. die Warnung vor „Short circuits on Arduino Pins“ in Arduino, Hrsg. Digital Pins. Online-Doku-
mentation. url: https://www.arduino.cc/en/Tutorial/DigitalPins (besucht am 24.09.2015),
Abschnitt „Properties of Pins configured as OUTPUT“.
38 Der stets existierende Reststrom (auch Leckstrom, leakage current, genannt) über hochohmige Anschlüs-
se ist laut den Datenblättern heutiger Digitalschaltungen normalerweise kleiner als 1 Mikroampere (1μA =
1 ⋅ 10 −6 A). Der entsprechende ohmsche Widerstand liegt dann im zweistelligen Megaohm-Bereich (1MΩ =
1 ⋅ 10 6 Ω). Eingänge werden heutzutage im Regelfall immer als hochohmige Anschlüsse ausgelegt. Vgl. z.B.
Philips Semiconductors, Hrsg. 74HC245; 74HCT245. Octal bus tranceiver; 3-state. 3.Rev. Datenblatt. 31. Jan. 2005.
url: http://www.nxp.com/documents/data_sheet/74HC_HCT245.pdf (besucht am 24.09.2015), S. 7,
Tabelle 7, Symbole „I LI “, bzw. „I OZ “.
39 Schneider, Schaltpläne der VC4000, Datei 2k-4krom-cartridge.pdf .
15
Abbildung 6: Schaltung auf einem Standard-Spielmodul für die VC 4000 mit ROM-IC.
16
bzw. „CE“ (Chip Enable) anliegen. Befindet sich bloß einer dieser Eingänge auf logisch-0 und
ist demnach deaktiviert, so werden die Ausgänge in den hochohmigen Zustand geschaltet. 40
Wird zunächst nur die Leitung verfolgt, die am Anschluss 20 des ROM anliegt („CS“), so wird
mit Blick auf Abbildung 3 deutlich, dass dieses Signal über Anschluss 12 am Modulschacht
vom PVI kommt. Die Prosa im Datenblatt des 2636 bestätigt die diagrammatische Intuition
der Schaltpläne:
The 2650A communicates with the PVI exclusively through memory addressing. […] Two hundred
and fifty-six addresses H’F00’ to H’FFF’ are used internally in the PVI as object and background
description, scratchpad, and control. Accessing the first 3½K [H’000’ to H’DFF’, J.M.] will activate
CE1—an active high output enable signal for external ROM. 41
Liegt die von der CPU angeforderte Adresse im unteren Adressbereich, erzeugt der 2636
das „CE1“-Signal, welches am ROM-IC den „CS“-Eingang aktiviert, worauf dieses die der
gewünschten Adresse entsprechenden Daten auf den Datenbus legt. Liegt die Adresse im
Bereich oberhalb von DFF 16 , muss der 2636 das gewünschte Byte aus seinem eigenen RAM-
Bereich liefern. Dafür deaktiviert er die Spannung an seinem „CE1“-Ausgang, woraufhin der
ROM-IC seine Ausgänge hochohmig schaltet. Innerhalb der VC 4000 entscheidet also der
Grafik-Coprozessor,welchesGerätaufdiegewünschteAdressederCPUreagiertundfolglich
denDatenbusbenutzendarf.DasjeweilsandereGerätmussseineAusgängeimgleichenTakt
hochohmig schalten.
UmimspäterenMulti-ROM-ModuldenArduinoindieLagezuversetzen,dasSRAMdirekt
nach dem Einschalten zunächst mit dem ausgewählten Spielcode zu beschreiben und dieses
erst danach an die CPU der Konsole zu übergeben, kann nach dem gleichen Prinzip vorge-
gangen werden. Ein zusätzliches Bauteil wird zwischen Modulschacht und SRAM installiert,
dassowohlAdresseingängewieDatenleitungenzurKonsolehinhochohmigschaltet,solange
der Arduino den Programmcode in das SRAM kopiert. Nach Abschluss des Schreibvorgangs
werden die Leitungen zum Modulschacht wieder freigegeben. Wenn nun auf den RESET-
Taster an der Konsole gedrückt wird, kann der 2650 bei Adresse 0 beginnend das eigentliche
Spielprogramm aus dem SRAM auslesen, als wäre nun ein Spielmodul mit ROM-IC einge-
steckt.
Ein solches Bauteil, das in der Lage ist, Ausgänge an einem Bussystem zu isolieren, wird
40 Im Falle von „CE1“ und „CE2“ ist hierfür ein Eingangssignal von 5V nötig, angezeigt durch die Über-
streichung der Anschlussbezeichnungen, die beide Eingänge als active low deklariert. Das bedeutet, dass eine
niedrige Eingangsspannung (0V) hier eine logische 1 und eine hohe Eingangsspannung (5V) eine logische 0
bedeutet, eine Invertierung der logischen Bedeutung der üblichen Spannungspegel.
41 Valvo, Signetics Programmable Video Interface (PVI) 2636, S. 3.
17
Bus Transceiver 42 genannt und ist in der 74HC-Logikfamilie z.B. als 74HC245 erhältlich. 43 In
einer solchen integrierten Schaltung sind acht einzelne Transceiver enthalten, deren elek-
tronisches Verhalten über zwei Steuereingänge reguliert wird, „an output enable input (OE)
for easy cascading and a send/receive input (DIR) for direction control. OE controls the out-
puts so that the buses are effectively isolated.“ 44 Das Signal am DIR-Eingang (direction) legt
fest, welche Seite aller acht Transceiver der Sender und welcher der Empfänger von Signa-
len auf der angeschlossenen Leitung ist. Mit dem OE-Eingang können alle Leitungen auf der
Senderseite bei Bedarf hochohmig geschaltet werden.
Benötigt werden drei 74HC245: Zwei sind für den Adressbus und die Steuereingänge CE1,
OPREQ, R/W und WRP (siehe Abbildung 4) zuständig. Ihre DIR-Eingänge werden fest auf
einen Spannungspegel eingestellt, sodass die Adresssignale von der Konsole stets die Emp-
fängerseite der Bus Transceiver bilden. Die Leitungen, die vom Bus Transceiver weg zum
SRAM und den Schieberegistern auf dem Multi-ROM-Modul führen, fungieren als Sender.
Die Senderseite wird gleich nach dem Einschalten der Konsole vom Arduino über einen ho-
hen Spannungspegel an OE (logisch-0) hochohmig geschaltet. Somit gelangen die Adress-
anfragen vom 2650 nicht zum SRAM durch und der Arduino ist seinerseits in der Lage, die
Programmdaten dort abzuspeichern.
Der dritte Bus Transceiver überwacht die acht Datenbus-Leitungen, wobei der DIR-Ein-
gang im einfachsten Fall das im Vergleich zu den DIR-Eingängen an den Adressbus-Trans-
ceivern gegenteilige Signal erhält, sodass hier Sender und Empfängerseite vertauscht sind.
Auf diese Weise wird das SRAM auf dem Multi-ROM-Modul zu einem Read-Only-Speicher
gemacht, da der Datenbus so nur noch die vom SRAM kommenden Signale an die Konsole
weitergibt. Mögliche Schreibversuche von der Konsole würde den Bus Transceiver blockie-
ren. Auch am Datenbus-Transceiver wird über ein entsprechendes Signal an OE gleich zu
Beginn die Senderseite – diesmal zur Konsole hin – hochohmig geschaltet. Dadurch wird
für die CPU und das PVI in der Konsole zunächst ein leerer Modulschacht emuliert. Für die-
se beiden Geräte scheint es so, als wäre kein Spielmodul eingesteckt, da auf ihrer Seite der
Transceiver keine definierten Signale anliegen, während der Arduino auf dem Multi-ROM-
Modul die Programmdaten in das SRAM kopiert.
42 Das englische Substantiv transceiver ist eine Kombination aus transmitter und receiver, kann also im Deut-
schen am ehesten mit Sender-Empfänger übersetzt werden. Siehe auch Abschnitt 5.3.
43 Die Abkürzung HC steht für High-speed CMOS, CMOS steht wiederum für Complementary Metal-Oxide
Semiconductor. Anstatt Bipolartransistoren, wie in älteren 74er-Familien werden in CMOS-Technik schneller
umschaltende und weniger Strom verbrauchende Feldeffekttransistoren integriert.
44 Philips Semiconductors, 74HC245, S. 1.
18
3.4 Auf der Jagd nach Hardware-Fehlern
Es wurde versucht, die soeben beschriebene Prinzipschaltung erneut auf einem Steckbrett
zu testen. Dafür wurde eine weitere Arduino-Platine genutzt, um – nach dem Ende des Ko-
piervorgangs – auf der ‚Konsolenseite‘ der Bus Transceiver die Daten auf dem SRAM wieder
auszulesen. Als dies erfolgreich gelang, wurde angenommen, es sei nun lediglich noch nötig,
den Steckbrettaufbau über eine selbst hergestellte Breakoutplatine an den Modulschacht der
VC4000 anzuschließen,umeinerstesSpielüberdenModul-PrototypenaufderKonsolespie-
len zu können. Zu diesem Zweck wurde – mit derselben Arduino-Schaltung, mit der zuvor
der Testaufbau überprüft wurde – der ROM-IC eines Originalspiels ausgelesen und dieser
Code fest als zu kopierendes Spiel in den Arduino auf dem Multi-ROM-Prototypen einpro-
grammiert. Doch anstelle des erwarteten Jagdspiels erschien am Fernsehmonitor nur ein
statischer, grauer Bildschirmhintergrund mit einem gelben Rahmen. An die Konsole ange-
schlossen, funktionierte etwas an der prinzipiellen Schaltung nicht, obwohl der Speicherin-
halt des SRAMs nach dem Kopieren mit dem Inhalt des originalen ROM-ICs übereinstimmte.
Da sich während dieser Versuche ständig einige der Drahtverbindungen vom Steckbrett
zum Modulschacht lösten, wurde nach einigen vergeblichen Stunden der Fehlersuche im
März 2015 entschieden, für den bisherigen Schaltungsaufbau eine Platine herzustellen. So
sollte sichergegangen werden, dass der beobachtete Fehler auch tatsächlich in der Schal-
tung lag und nicht in möglicherweise unzuverlässigen Drahtverbindungen auf dem Steck-
brett.MitdemfreienSoftwarepaketKiCad wurdezunächsteinklassischerdiagrammatischer
Schaltplan des Aufbaus erstellt, der sich mit einer solchen Electronics Design Automation Sui-
te nach einigen Zwischenschritten in ein druckbares Platinenlayout übertragen lässt. 45 Die-
ses Drucklayout wird anschließend mittels eines UV-Beleuchters auf einem mit einer licht-
empfindlichen Beschichtung versehenen Leiterplattenrohling abgebildet. Nach fotochemi-
scher Entwicklung, die die gewünschten Leiterbahnen auf dem Rohling einschwärzt, werden
die nicht benötigten Kupferflächen der Platine in einem Natriumpersulfat-Ätzbad entfernt.
Nachdem die Löcher für die Bauteilanschlüsse gebohrt sind, können in einem letzten Schritt
die Bauteile auf der Platine festgelötet werden.
DochauchmitdernungedrucktenSchaltungunseresTestaufbaustratdasgleicheProblem
45 Die nötigen Zwischenschritte zum Erstellen eines Leiterplattenlayouts aus einem Schaltplan sind: 1. Die
Zuweisung von sogenannten „Bauteil-Fußabdrücken“ (footprints) zu den diagrammatischen Schaltsymbolen,
sowie 2. das Erstellen einer Netzliste aus den Verbindungen der Bauteile dem auf Schaltplan. Diese Netzliste
dient beim Zeichnen der Leiterbahnen zunächst als visuelle Hilfe und später, nach Vollendung des Entwurfs,
zur automatischen Überprüfung auf Übereinstimmung mit dem Schaltplan durch das Layoutprogramm. Vgl.
KiCad. A Cross Plattform and Open Source Electronics Design Automation Suite. Website des verwendeten Plati-
nenlayoutprogramms. url: http://kicad-pcb.org (besucht am 24.09.2015), eine bebilderte Anleitung
findet sich dort unter dem Link „Docs“.
19
0000 1F00 2017 0620 0E47 A3CE 7F80 5A78 …
0010 F60E 26CA CD7E 0A0F 26CA CD7E 1AD9 …
0020 20C3 CF5F 005B 7B92 CC5E C9CC 1F0F …
0030 93BB 0404 17CC 1F0C CC1F 1C06 013F …
0040 04FE CC1F 2DCC 1F4D 0401 CC1F 5CCC …
0050 040F CC1F 0E04 28CC 1F62 20CC 1F6C …
0060 6DCC 1F6A CC5E 6804 32CC 1F1E 0508 …
0070 C3CD 7FA0 5978 0414 CC1F 680D 1F5C …
0080 9801 20CC 1F69 0D1F 6A18 0AA5 01E5 …
0090 0904 081B 0204 04CC 1E80 CD1F 6A3F …
Abbildung 7: Beginn des Spielcodes von „Jagd“: links ein Ausschnitt der aus dem Original-
ROM-IC ausgelesenen Daten; rechts eine Bildschirmansicht der am Modul-
schacht gemessenen Signale, welche vom Logikanalysator in eine äquivalente
Hexadezimaldarstellung übersetzt wurden. LOC zählt die laufenden Messun-
gen, GRPA sind die Messungen am Datenbus, GRPB am Adressbus. 46
auf. Allerdings konnte nun mit ausreichender Sicherheit ausgeschlossen werden, dass beim
Testaufbau auf dem Steckbrett ein Fehler gemacht wurde. Die rechnergestützte Bestätigung
der Äquivalenz zwischen unserem diagrammatisch-logischen Schaltplan und seiner fotogra-
fisch-realen Übertragung auf die Leiterplatte grenzte die möglichen Fehlerquellen demnach
weiterein.Eswurdejetztversucht,mittelszusätzlicherzeitkritischerMessungendurcheinen
LogikanalysatoranderlaufendenKonsolemitdemPrototypenimModulschachtzuüberprü-
fen, wann die tatsächlichen Signale vom erwarteten Verhalten abwichen.
Durch einen Logikanalysator können eine Vielzahl an gleichzeitig auftretenden Signalen
in einer elektronischen Schaltung in ihrer zeitlichen Aufeinanderfolge gemessen und – au-
tomatisch in symbolische Werte übersetzt – auf ihre Korrektheit untersucht werden. Am
Modulschacht der Konsole wurden acht Messleitungen an den Datenbus und weitere 13 an
den Adressbus angebracht, wobei A0, die niederwertigste Adressleitung, als Taktsignal dien-
te. Auf diese Weise war es möglich, zu verifizieren, dass die VC 4000, genau wie die Arduino-
Testschaltung zuvor, zumindest den Beginn des Spielcodes korrekt aus dem SRAM auslas
(sieheAbbildung7).DiesbestätigteaucheineVergleichsmessungmitdemOriginal-Spielmo-
46 Ein paar Erläuterungen zur rechten Seite der Abbildung 7: In Messung 4 wurde der Sprung an Adresse
20 16 vollzogen, in Messung 9 wird an Adresse 1FFF 16 ins RAM des PVI geschrieben und in Messung 14 hat ein
RücksprungzuZeile22 16 innerhalbeinerprogrammiertenSchleifestattgefunden.DieAbweichungenzwischen
den Messungen 3, 9, 10 und 13 und dem Programmcode auf der linken Seite scheinen durch die CPU verursacht
zu werden, die zur Ausführung einiger Instruktionen mehrere Takte benötigt oder für andere ihrerseits Daten
auf den Datenbus legt. So sorgt z.B. der Speicherbefehl CF 5F 00 an Adresse 22 16 dafür, dass die CPU den
Wert FF 16 an Adresse 1FFF 16 in den Speicher schreibt, was in den Messungen 9 und 10 sichtbar ist.
20
dul, welche die gleichen Messergebnisse zeigte. Der Fehler konnte also nicht ausschließlich
mit fehlerhaft aus dem SRAM ausgelesenen Werten des Programmcodes zu tun haben, denn
andernfalls hätten die Messungen am Original-Spielmodul und am Prototypen gravierende
Unterschiede aufweisen müssen. Mit Ausnahme einiger der Messungen, die während einiger
der länger als zwei Takte dauernden Instruktionen gemacht wurden, ließen sich jedoch über
den 256 Messwerte umfassenden Speicherbereich des Logikanalysators keine Unterschiede
ausmachen. 47
Ob es sich bei den minimalen Messunterschieden tatsächlich um einen Hinweis auf das
eigentliche Problem handelte oder ob die Signale, die während der zusätzlichen Takte bei
Speicheroperationen ins PVI-RAM auf am Datenbus gemessen wurden, klassische Messfeh-
ler waren, wurde im Nachhinein nicht weiter überprüft. Festzuhalten ist jedoch, dass die
unterschiedlichen Messwerte am Datenbus auf die richtige Fährte führten. Als im Folgen-
den die Schaltung des Bus Transceivers am Datenbus noch einmal genau überprüft wurde,
konnte festgestellt werden, dass ein entscheidendes Detail bisher nicht beachtet war:
In der bisherigen Schaltung sorgte der Arduino dafür, dass die Ausgänge des Bus Transcei-
vers am Datenbus nach dem Ende des Kopiervorgangs durchgehend aktiviert waren, der OE-
Eingang des 74HC245 lag permanent auf 0V. Dies hatte zur Folge, dass der Datenbus durch
das Multi-ROM-Modul elektronisch belastet war. Der Prototyp verletzte das erste Gebot der
von-Neumann-Architektur: Zu jedem Zeitpunkt soll nur eine isolierte Operation durchge-
führt – oder auf das vorliegende Problem umformuliert: nur ein Gerät darf zu jedem Zeit-
punkt seine Signale auf einem Bus platzieren. 48 Auch bei Adresssignalen, die eigentlich nur
denRAM-BereichdesPVI2636 betreffensollten,dasdafürseinCE1-Signaldeaktiverthatte, 49
blieben die Ausgänge der Bus Transceiver aktiv. Mit dem so lokalisierten Fehler schien die
Lösung trivial: Anstatt das CE1-Signal des PVI direkt auf den entsprechenden Eingang am
SRAM zu legen, so wie es in Anlehnung an die Originalschaltung auf den Interton-Spielmo-
dulen zunächst geplant war, musste dieses Signal lediglich auf den Anschluss 19 am Daten-
bus-Transceiver umgeleitet werden. Dieser kann dann den Datenbus hochohmig schalten,
sobald eine Speicheroperation – egal ob lesend oder schreibend – im Bereich des PVI-RAMs
(oberhalb von 1E00 16 ) durchgeführt werden soll.
47 Ein Beispiel für Abweichungen der Messungen vom Originalcode ist auch in Abbildung 7 zu sehen. Siehe
dazu die Erläuterungen in Fußnote 46.
48 Die entsprechende Stelle in von Neumanns „First Draft of a Report on the EDVAC“ bespricht zwar arith-
metische Operationen in der CPU, diese schließen aber die Leitungen zum angeschlossenen Speicher mit ein:
„The device should be as simple as possible, […]. This can be achieved by never performing two operations
simultaneously, […].“ John von Neumann. “First Draft of a Report on the EDVAC”. In: IEEE Annals of the History
of Computing 15.3 (1993), S. 27–75, hier S. 40, Abschnitt 5.6.
49 Siehe Abschnitt 3.3.
21
1
Inverter
≥ 1
OR
CE1 (PVI) ⇒
Steuersignal (Arduino) ⇒
⇒ OE (74HC245)
A B OR
0 0 0
0 1 1
1 0 1
1 1 1
Abbildung 8: Verschaltung des Output-Enable-Eingangs am Datenbus-Transceiver; Wahr-
heitstabelle für ein OR-Gatter.
3.5 Zusätzliche Logikgatter
Selbstverständlich war der besagte Anschluss 19 – der Output Enable des 74HC245 am Da-
tenbus – bereits belegt, nämlich mit dem in Abschnitt 3.3 beschriebenen Steuersignal vom
Arduino, das unser Multi-ROM-Modul für die Vorbereitung des SRAMs von der Konsole
isolieren sollte. Obendrein handelte es sich beim CE1-Signal vom PVI um ein Active-High-
Signal, der Bus Transceiver erwartete jedoch ein Active-Low-Signal an seinem OE-Eingang.
Solche Probleme von zueinander inkompatiblen Signalen oder mehrfach zu belegenden Ein-
und Ausgängen sind in der Digitalelektronik an der Tagesordnung. Lösungen liefern soge-
nannte Gatter, welche die logischen Grundfunktionen – AND, OR, XOR, NOT, NAND, NOR,
XNOR usw. – in standardisierten integrierten Schaltungen anbieten.
Für das konkret beschriebene Problem lässt sich mit zwei Gattertypen aus der berühm-
ten 74xx-Logikfamilie eine Lösung konstruieren (siehe Abbildung 8). 50 Zunächst wird das
vom CE1-Ausgang des PVI kommende Signal invertiert, um es zum OE-Eingang kompati-
bel zu machen. Dieses negierte Signal wird zusammen mit dem Steuersignal vom Arduino
auf die Eingänge eines OR-Gatters gelegt. Die darin implementierte logische Funktion sorgt
dafür, dass der Ausgang dieses Gatters auf einem hohen Spannungspegel liegt, sobald min-
destens eines der beiden Eingangssignale aktiv ist. 51 In der 74xx-Logikfamilie gibt es unter
der Kennnummer 74HC32 vier OR-Gatter in einem Baustein, für den Inverter wurde eines
50 Eine praxisorientierte Einführung in die 74xx-Logikfamilie aus elektronischer Sicht liefert Don Lancaster.
TTL Cookbook. 25. Aufl. [Erstauflage 1974]. Carmel/IN: SAMS, 1994.
51 Die Funktionsweisen logischer Gatter spiegeln sich in den verwendeten Schaltsymbolen wieder: Die Kenn-
zeichnung „≥ 1“ im OR-Gatter benennt diejenige Anzahl an Eingangssignalen, die logisch-1 sein müssen, damit
der Ausgang ebenfalls auf 1 schaltet. Analog verhält es sich mit dem Symbol des Inverters, der mit einem
sogenannten „Puffer“ verwandt ist: Ein Puffer gibt das anliegende Eingangssignal unverändert weiter, imple-
mentiert also die logische Funktion der Identität. Dies wird durch eine „1“ symbolisiert: Das Ausgangssignal
einesPuffersistdann1,wennauchseinEingangsignal1ist.DieIdentitätsfunktionistdaslogischeGegenteilder
Negation, welche durch einen Inverter implemetiert werden kann. Ein Gatter, das die komplementäre Funktion
eines anderen Gatters implementiert, wird durch das gleiche Schaltsymbol dargestellt, mit einem zusätzlichen
fallenden Strich über seinem Ausgang. Diese Schaltsymbole, die logische Gatter über die Verhältnisse von Ein-
und Ausgangssignalen zueinander darstellen, wurde Ende 1997 von der IEC im Standard 60617–12 eingeführt.
22
der vier NAND-Gatter in einem 74HC00 genutzt. 52 Ein NAND-Gatter lässt sich als Inverter
einsetzen, indem das Eingangssignal auf beide Eingänge gelegt wird. Denn wenn beide Ein-
gänge eines NAND-Gatters den gleichen logischen Wert haben, ergibt sich am Ausgang das
jeweils gegenteilige Signal (siehe auch Abbildung 10). Durch diese zusätzliche Logik kann
der Datenbus zur Konsole nicht nur kurz nach dem Einschalten durch den Arduino, sondern
auch während des Spielbetriebs durch den PVI deaktiviert werden, wenn dessen interner
RAM-Bereich adressiert wird.
3.6 (SD-)Kartenspiele
Mit dieser Modifikation gelang Ende Juli 2015 der Durchbruch. Es konnte erstmals ein Spiel
direktmitdemPrototypenaufderVC4000 gespieltwerden(sieheAbbildung9).ImAnschluss
wurde der Firmwarecode auf dem Arduino modifiziert, um den Spielcode wie geplant von
einer MicroSD-Karte laden zu können, auf der zuvor die ROM-Daten von allen ausgelesenen
Spielmodulen abgelegt wurden. Da der Prototyp zu diesem Zeitpunkt noch nicht über Sie-
bensegmentanzeigen und Auswahltaster verfügte, wurde pragmatisch ein aus Nutzersicht
zunächst etwas umständliches, aber funktionierendes Verfahren implementiert.
Auf der SD-Karte musste eine zusätzliche Textdatei angelegt werden, in die der Nutzer den
Dateinamen der zu ladenden Binärcodedatei einträgt. Der Arduino liest zunächst den Inhalt
dieser Textdatei aus und sucht anschließend nach einer ROM-Datei mit dem entsprechenden
Namen. Bei Erfolg wird deren Inhalt in das SRAM kopiert. Das Ende dieses Kopiervorgangs
wird dem Nutzer durch regelmäßiges, langsames Blinken der auf der Platine angebrachten
LED angezeigt, sodass durch Druck auf die RESET-Taste der Konsole das Spiel gestartet wer-
den kann. Fehler in diesem sequentiellen Programmablauf, etwa eine nicht eingesteckte SD-
Karte, eine fehlende Textdatei oder eine nicht vorhandene ROM-Datei, werden durch einen
abweichenden Blinkrhythmus angezeigt. 53
Mit diesen Änderungen konnten alle Spielmodule, die ausschließlich über einen ROM-IC
verfügen, erfolgreich über den Multi-ROM-Prototypen von SD-Karte geladen und gespielt
werden. 54 Es blieben lediglich vier Spiele übrig, für die noch weitere Modifikationen an der
52 Vgl. NXP Semiconductors, Hrsg. 74HC32; 74HCT32. Quad 2-input OR gate. 5.Rev. Datenblatt. 4. Sep. 2012.
url: http://www.nxp.com/documents/data_sheet/74HC_HCT32.pdf (besucht am 24.09.2015);
NXP Semiconductors, Hrsg. 74HC00; 74HCT00. Quad 2-input NAND gate. 6.Rev. Datenblatt. 14. Dez. 2011. url:
http://www.nxp.com/documents/data_sheet/74HC_HCT00.pdf (besucht am 24.09.2015).
53 Dieser Entwicklungsstand der Firmware kann – wie auch alle anderen hier im Text beschriebenen Hard-
und Softwaremodifikationen – im Github-Repository des Multi-ROM-Projekts eingesehen werden: Mario Kel-
ler und Johannes Maibaum. VC4000 MultiRom Modul. Code-Repository. url: https : / / github . com /
mkeller0815/flappy4000/tree/master/MultiRom (besucht am 24.09.2015), Commit 5a9af7a vom
21.08.2015, Datei MultiRom/firmware/MultiRomVC4000/MultiRomVC4000.ino , Zeilen37–71.
54 Eine Statusübersicht über die Unterstützung der verschiedenen Spiele durch das Multi-ROM-Modul findet
23
Abbildung 9: DererstefunktionierendePrototyp:linksinAktionmitdemSpiel„Jagd“,rechts
ein Blick auf die Platinenrückseite mit den manuellen Änderungen.
Hardware nötig waren: „Schach“ (Nr.13), „Schach 2“ (Nr.22), „Dame“ (Nr.26) und Backgam-
mon (Nr.36), die vier Spiele, die zusätzlichen RAM-Speicher auf dem Spielmodul mitbringen.
3.7 Lesen und Schreiben
Bis hierhin war der SRAM-IC auf dem Prototypen faktisch zu einem ROM degradiert, denn
die vorgeschalteten Bus Transceiver ließen auf dem Datenbus nur Daten aus Richtung des
SRAMs durch. 55 Um nun die genannten RAM-Spiele ebenfalls über das Multi-ROM-Modul
spielen zu können, musste dieser Zustand geändert werden. Die hierzu nötigen Modifikatio-
nen hielten sich in Grenzen, da der RAM-Speicher auf den genannten Spielmodulen eben-
falls durch SRAM-ICs realisiert wurde. Ein Blick in das Datenblatt des dort häufig verwen-
deten 2114-SRAMs zeigte, 56 dass deren Ansteuerung genauso funktioniert, wie oben in Ab-
sich ebenfalls im Github-Repository, Datei MultiRom/doc/README.md .
55 Alle DIR-Anschlüsse (direction) der drei Bus Transceiver waren zu diesem Entwicklungszeitpunkt fest auf
einenlogischenSpannungspegelgelegt,vgl.KellerundMaibaum,VC4000MultiRomModul,Commitba2324a3e1
vom 28.07.2015, Datei MultiRom/hardware/Printouts/MultiRomCard-Schematic.pdf .
56 MOS Technology Inc., Hrsg. F2114/2114L. 1024 x 4 Static RAM. Datenblatt. Ohne Datierung. url: https:
//www.princeton.edu/~mae412/HANDOUTS/Datasheets/2114.pdf (besucht am 24.09.2015). The
24
&
NAND
R/W (CPU) ⇒
WRP (CPU) ⇒
⇒ WE (SRAM)
A B NAND
0 0 1
0 1 1
1 0 1
1 1 0
Abbildung 10: Erzeugung eines Schreibsginals für den WE-Eingang des SRAMs; Wahrheits-
tabelle für ein NAND-Gatter
schnitt3.2bereitsfürdasgewählte6264-SRAMbeschrieben.DemnachliefertederSchaltplan
derentsprechendenSpielmoduledenHinweis,wiederWrite-Enable-Eingang(WE)amSRAM
durch die Signale von der VC 4000 zu beschalten ist, um einen erfolgreichen Schreibvorgang
einzuleiten: 57 Die von der Konsole kommenden Signale R/W und WRP werden dort über ein
NAND-Gatter verschaltet (siehe Abbildung 10).
Im Datenblatt des 2650 findet sich das Zeitablaufdiagramm, das verdeutlicht, auf welche
Art und Weise die CPU mittels der beiden genannten Signale einen Schreibvorgang orches-
triert: 58 Am Beginn eines Zyklus wird R/W auf hohen und WRP auf niedrigen Spannungspe-
gel geschaltet. Zu diesem Zeitpunkt liegen die Speicheradresse und die zu schreibenden Da-
tenbereitsaufdenjeweiligenBussen.Nacheinem„internaldelay“von300nswirddasWRP-
Signal kurzzeitig eingeschaltet, bevor der Schreibzyklus durch die nächste fallende CLOCK-
Signalflanke beendet wird. Nach einer weiteren Wartezeit von 500ns kehren R/W und WRP
in ihre Ausgangszustände zurück (siehe Abbildung 11).
Das NAND-Gatter fungiert auf den Spielmodulen folglich als Übersetzer der – für die ge-
nutzten SRAM-ICs – inkompatiblen Steuersignale der CPU. Beide Signale vom 2650 wer-
den für einen Schreibvorgang auf den hohen Spannungspegel gelegt, der WE-Eingang am
SRAM ist jedoch wiederum active low, für einen Speichervorgang wird hier ein niedriger
Spannungspegel erwartet. Mit R/W und WRP auf den Eingängen eines NAND-Gatters wird
dieser niedrige Pegel genau dann erzeugt, wenn beide Signale ihrerseits im Zustand logisch-
1 sind, also genau in der Mitte eines Schreibzyklusses. In allen anderen Fällen erzeugt das
NAND-Gatter eine Signalspannung von 0V.
Mit den Erfahrungen der letzten Hardwarefehlersuche im Hinterkopf, dass nicht verges-
sen werden dard, die Bus Transceiver in der Schaltung entsprechend mit zu berücksichtigen,
wurde das R/W-Signal, das über die gesamte Dauer eines Schreibzyklus bei 0V liegt, au-
Foto vom Spielmodul Nr. 13 in Abbildung 2 zeigt, dass anstatt zweier 2114 manchmal auch acht SRAM-ICs vom
Typ 2102 (1KiB x 1Bit) verbaut wurden.
57 Schneider, Schaltpläne der VC4000, Datei 4krom-1kram-cartridge.pdf .
58 Signetics Corporation, Signetics 2650 Microprocessor, S. 36, Abb. 11. R/W wird dort als READ/WRITE aus-
gezeichnet.
25
Abbildung 11: Schreibzyklus des Signetics 2650.
ßerdem auf den DIR-Anschluss des Datenbustransceivers gelegt. Dieses Signal stimmt pas-
senderweise mit der für die entsprechende Richtungsänderung des 74HC245 notwendigen
Spannung überein, sodass hier keine weitere Logikschaltung nötig war. Bei einem positi-
ven R/W-Signal, das den Schreibvorgang einleitet, lässt der Transceiver die Datenbussignale
von der CPU in Richtung des Multi-ROM-Moduls passieren; nach Ende des Schreibvorgangs,
wenn R/W fällt, schaltet somit auch der Bus Transceiver wieder um, sodass die nächste Le-
seoperation aus dem SRAM gelingen kann.
3.8 Das letzte fehlerhafte Spiel
Nach diesen Änderungen ließen sich alle Spielmodule für die VC 4000 auf dem Multi-ROM-
Prototypen spielen, mit Ausnahme von „Schach 2“. Das einzige 6KiB-ROM- und 1KiB-RAM-
Spiel ließ sich zwar erfolgreich laden und man konnte ein paar Züge gegen den Computer-
gegner spielen. Nach einiger Zeit reagierte die Konsole jedoch nicht mehr auf Eingaben am
Controller oder der errechnete Gegenzug, angekündigt durch ein kurzes Piepen der Konsole,
wurde nicht mehr auf dem Bildschirm angezeigt. Es wurde angenommen, dass diese Feh-
ler erneut durch den Hardwareaufbau verursacht würden. Denn bisher nicht berücksichtigt
wurde die Tatsache, dass die Art der Verschaltung der SRAMs auf den originalen Spielmo-
dulen dafür sorgt, dass Teile ihres Speicherbereichs von zwei unterschiedlichen Adressberei-
26
chen heraus aufgerufen werden können.
WieausAbbildung12ersichtlichwird,besitzendiebeiden2114-SRAMsjenurzehnAdress-
leitungen (A0–A9), was der angegebenen Speichergröße von 1KiB entspricht. Wie weiter-
hin aus der Wahrheitstabelle in der unteren rechten Ecke des Schaltplans hervorgeht, ist
ihr Chip-Enable-Anschluss jedoch über den Adressbereich von 1800 16 –1DFF 16 aktiv. Das be-
deutet, dass die SRAM-ICs über insgesamt 1536 Adressen, anstatt der nominellen 1024 an-
gesprochen werden können. 59 Doch welche Speicherzellen innerhalb der SRAMs liefern die
Daten, wenn Adresse 1C00 16 (die 1025. Adresse des genannten Bereichs) angefordert wird?
Dies wird deutlich, wenn die hexadezimalen Adressangaben im dualen Zahlensystem dar-
gestellt werden, sodass jedes Bit einer tatsächlichen Adressleitung entspricht (siehe Abbil-
dung 13). Bis auf das elfte Bit von rechts, das A10 entspricht, sind die beiden Adressen 1800 16
und 1C00 16 identisch. Den SRAM-ICs fehlt dieser Anschluss, demnach steuern lediglich die
unteren zehn Adressleitungen (A9–A10) den SRAM-Speicher an. Da diese in beiden Fällen
übereinstimmen, wird auch dieselbe Speicherzelle ausgewählt. Dies gilt für alle Adressen
oberhalb von 1C00 16 , was in der technischen Informatik auch als „Adressspiegelung“ (mirro-
ring) bezeichnet wird. 60 Dass im Spielmodul zu „Schach 2“ nicht der gesamte RAM-Bereich
gespiegelt wird, liegt am CE1-Signal vom PVI, das ab Adresse 1E00 16 alle Speicher-ICs auf
dem Spielmodul deaktiviert, um den Zugriff auf seinen internen Speicherbereich zu ermög-
lichen (siehe auch Abschnitt 3.3).
Eswäredemnachmöglich,dasszumindestTeiledesProgrammcodesvon„Schach2“davon
abhingen, dass der RAM-Speicher über unterschiedliche Adressen erreichbar ist und unsere
Schaltung deshalb zu dem beschriebenen Fehlverhalten führte. Denn ohne weiteres Zutun
steuern die genannten Adressen 1800 16 und 1C00 16 tatsächlich zwei unterschiedliche Spei-
cherzellen auf unserem 8KiB großen SRAM-IC an. Wenn nun an einer Stelle des Spielcodes
zunächst ein Wert an Adresse 1800 16 gespeichert und an einer anderen Stelle explizit ver-
sucht würde, eben diesen Wert von Adresse 1C00 16 zu lesen, so gelänge dies nur auf dem
Originalmodul – nicht jedoch auf unserem Prototypen, wo unter der Adresse 1C00 16 ein
anderer als der zuvor gespeicherte Wert aufgefunden würde.
Um diese Hypothese zu überprüfen, wäre es einerseits möglich gewesen, den Programm-
code von „Schach 2“ zu disassemblieren und ihn nach expliziten Adressierungen beider Spei-
cherbereiche zu durchsuchen. Da dies zu zeitaufwändig erschien, experimentierten wurde
stattdessen mit einer zusätzlichen Logikschaltung experimentiert, um die Spiegelung des
Adressbereichs auf dem Spielmodul auch in unserer Hardware zu emulieren. Es stellte sich
59 1536 Adressen decken einen Speicherbereich von 1,5KiB ab: 1024Byte + 512Byte.
60 Vgl. auch den Abschnitt „Memory Maps“ in Jacobs, Interton VC 4000 Coding Guide.
27
Abbildung 12: Schaltplan des „Schach-2“-Spielmoduls.
28
1. 1800 1100000000000 Beginn des SRAM-Speichers
⋮ ⋮ ⋮
1024. 1BFF 1101111111111 Letzte Adresse im 1KiB-Bereich
1025. 1C00 1110000000000 Beginn der Spiegelung
⋮ ⋮ ⋮
1536. 1DFF 1110111111111
1537. 1E00 1111000000000 PVI deaktiviert CE1 und damit die SRAM-ICs
Abbildung 13: SpiegelungdesSRAM-SpeichersaufdemSpielmodul„Schach2“.ZurVerdeut-
lichung ist die den SRAM-ICs fehlende 11. Adressleitung (A10) in der Bitmus-
ter-Spalte fett gedruckt.
jedoch heraus, dass der dafür nötige zusätzliche Platz auf der Platine sehr knapp würde. Als
eineMinimalversiondieserZusatzschaltungineinemTestaufbauobendreindazuführte,dass
zuvor funktionierende Spiele nun ebenfalls Fehler zeigten, wurden die Modifikationen wie-
der entfernt. Seltsamerweise funktionierte das Spiel bei einem erneuten Test nun fehlerfrei.
Im Nachhinein ist es schwierig zu klären, weshalb das Spiel zunächst nicht funktionier-
te und plötzlich doch fehlerfrei spielbar war. Eine erste Vermutung ging davon aus, dass
eine fehlerhafte ROM-Datei die Ursache war. Tatsächlich zeigte ein Direktvergleich zweier
aus unterschiedlichen Internetquellen stammenden ROM-Dateien des Spiels Unterschiede
auf: in einer Datei fehlten die letzten 512Byte. Letztendlich blieb diese Spur jedoch kalt,
da der fehlende Speicherbereich in der einen Datei einer weiteren Schaltungseigenart der
VC 4000 geschuldet ist. Wie die Wahrheitstabelle in Abbildung 12 zeigt, ist das CE1-Signal
nicht nur im Adressbereich von 1E00 16 aufwärts deaktiviert, sondern ebenso im Bereich von
1600 16 –17FF 16 .IndiesenAdressraum,derdirektandenSpiel-ROM-Adressbereichanschließt
undgenaudenfehlenden512Byteentspricht,wirdderSpeicherbereichderPVI-Registerund
einiger externer I/O-Schaltungen gespiegelt. 61 Das heißt, Adressanfragen von der CPU in
diesen Bereich gelangen ohnehin nicht in das SRAM auf dem Multi-ROM-Modul, sondern
werden auf die entsprechenden PVI-Register oder den I/O-Bereich umgeleitet. Während des
Auslesevorgangs, bei dem die vollständige, 6KiB große ROM-Datei erzeugt wurde, wurden
im Bereich über 1600 16 lediglich die gerade aktuellen Werte der PVI-Register und der I/O-
Hardware mit ausgelesen. Ein weiterer Test beider ROM-Dateien zeigte, dass sie beide funk-
61 Beispielsweise befindet sich an Adresse 1E80 16 – und dank der Spiegelung auch an Adresse 1680 16 –
das sogenannte „NOISE“-Register, das eine externe analoge Verstärkerschaltung zur Lautstärkeregulierung des
PVI-SoundgeneratorssowieeinendiskretaufgebautenanalogenRauschgeneratorfürExplosionsgeräuschepro-
grammierbar macht, vgl. Schneider, Schaltpläne der VC4000, Datei vc4000-Soundadapter.pdf . An den dar-
überliegenden Adressen können die Signale des analogen Joysticks sowie die Taster auf den Spielcontrollern
sowie der Konsolenfrontseite ausgelesen werden, vgl. Schneider, Schaltpläne der VC4000, Datei vc4000-I-O.
pdf ; Jacobs, Interton VC 4000 Coding Guide.
29
tionierten.DievorübergehendenProblemelagenalsonichtaneinerfehlerhaftenROM-Datei.
Ein weiterer Grund könnten minimale Unterschiede zwischen den zwei Prototypen des
Multi-ROM-Modulsgewesensein.AufdererstengeätztenPlatinelagdasCE1-SignaldesPVI
nicht nur am Datenbustransceiver, sondern ebenso noch am entsprechenden Chip-Select-
Eingang des SRAMs an. Eventuell könnte es hier zeitkritische Umschaltprobleme gegeben
haben, die zu den Fehlern in „Schach 2“ führten. Auch waren hier nicht alle integrierten
Schaltungen mit einem sogenannten Bypass-Kondensator zur Verminderung von störenden
Schwankungen der Betriebsspannung versehen. 62
Dieser letzte Punkt könnte erklären, warum „Schach 2“ auch auf der zweiten Prototyp-
Platine zunächst Fehler zeigte. Denn aus Mangel an ausreichenden 100nF-Kondensatoren
zum Zeitpunkt der Platinenbestückung waren diese zunächst gänzlich weggelassen worden.
Erst während der Experimente mit der Logikschaltung für die RAM-Spiegelung wurden alle
Bypass-Kondensatoren eingebaut. Da diese Testschaltung jedoch – wie oben beschrieben –
fehlerhaft war, konnte sich der womöglich entscheidend positive Effekt der Bypass-Konden-
satoren erst zeigen, nachdem die Modifikationen wieder entfernt wurden.
4 Das Ergebnis
Nachdem nun alle Original-Spiele auf unserem zweiten Prototypen erfolgreich zum Laufen
gebracht wurden, ist das Projektziel des Entwurfs und der Konstruktion eines funktionieren-
den Multi-ROM-Moduls für die VC 4000 erreicht. Nach ein paar letzten Anpassungen an der
Arduino-Firmware kann das zu ladende Spiel nun auch direkt auf dem Multi-ROM-Modul
ausgewählt werden. Hierzu wurde die vorübergehende Lösung mit der Textdatei zur Aus-
wahl eines Spiel-ROMs auf der SD-Karte (siehe Abschnitt 3.6) zugunsten eines intuitiveren
Systems aufgegeben. Der Nutzer wählt nun mit den Tastern auf der Platine eine zweistellige
Nummer aus, die auf den Siebensegmentanzeigen dargestellt wird. Sobald die Auswahltaste
betätigt wird, versucht der Arduino eine ROM-Datei mit dieser zweistelligen Nummer als
Dateinamen von der Speicherkarte zu laden. Abbildung 14 zeigt den aktuellen Aufbau des
Multi-ROM-Moduls auf einer dritten Prototyp-Platine. Der Schaltplan in Abbildung 4 und
das Platinenlayout in Abbildung 16 entsprechen diesem Aufbau. Hier sind die Siebenseg-
mentanzeigen direkt auf der Platine angebracht, ohne – wie noch beim zweiten Prototypen
– auf ein weiteres Breakout-Board angewiesen zu sein. Die LED-Segmente werden über zwei
62 Eine zusammenfassende Erklärung der elektronischen Funktion von Bypass-Kondensatoren liefert z.B.
Kevin Ross. “Basic Circuits. Bypass Capacitors”. In: Encoder. The Newsletter of the Seattle Robotics Society (Ju-
ni 1997). url: http://www.seattlerobotics.org/encoder/jun97/basics.html (besucht am
24.09.2015).
30
Abbildung 14: Ansicht der aktuellen Version (dritter Prototyp).
weitere Schieberegister vom Typ 74HC595 angesteuert.
31
1 2 3 4 5 6
1 2 3 4 5 6
A
B
C
D
A
B
C
D
Date: Monday, August 24, 2015
KiCad E.D.A. kicad (2015-08-23 BZR 6117)-product
Rev: 0.3 Size: A4
Id: 1/1
Title: Interton VC4000 MultiRom Cartridge
File: MultiRomCard.sch
Sheet: /
Mario Keller and Johannes Maibaum
QB
1
QC
2
QD
3
QE
4
QF
5
QG
6
QH
7
QH
9
SRCLR
10
SRCLK
11
RCLK
12
G
13
SER
14
QA
15
U2
74HC595
QB
1
QC
2
QD
3
QE
4
QF
5
QG
6
QH
7
QH
9
SRCLR
10
SRCLK
11
RCLK
12
G
13
SER
14
QA
15
U3
74HC595
QB
1
QC
2
QD
3
QE
4
QF
5
QG
6
QH
7
QH
9
SRCLR
10
SRCLK
11
RCLK
12
G
13
SER
14
QA
15
U4
74HC595
A->B
1
A0
2
A1
3
A2
4
A3
5
A4
6
A5
7
A6
8
A7
9
B7
11
B6
12
B5
13
B4
14
B3
15
B2
16
B1
17
B0
18
CE
19
U7
74HC245
A->B
1
A0
2
A1
3
A2
4
A3
5
A4
6
A5
7
A6
8
A7
9
B7
11
B6
12
B5
13
B4
14
B3
15
B2
16
B1
17
B0
18
CE
19
U8
74HC245
A12
2
A7
3
A6
4
A5
5
A4
6
A3
7
A2
8
A1
9
A0
10
CE1
20
D0
11
A10
21
D1
12
OE
22
D2
13
A11
23
A9
24
D3
15
A8
25
D4
16
CE2
26
D5
17
WE
27
D6
18
D7
19
U5
6264
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
D0
D1
D2
D3
D4
D5
D6
D7
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
D3
D4
D5
D6
D7
EA0
EA1
EA2
EA3
EA4
EA5
EA6
EA7
EA8
EA9
EA10
EA11 ED7
ED6
ED5
ED4
ED3
ED2
ED1
ED0
ED0
ED1
ED2
ED3
ED4
ED5
ED6
ED7
EA7
EA6
EA5
EA4
EA3
EA2
EA1
EA0
EA8
EA9
EA10
EA11
VCC
VCC
WESRAM
WESRAM
VCC
VCC
OEVCBUS
OEVCBUS
OEVCBUS
OEVCBUS
C1
.1uF
C2
.1uF
C3
.1uF
C4
.1uF
C5
.1uF
C6
.1uF
C7
.1uF
VCC
IC Power Bypass Caps
VCC
CE1
CE1
EA12
D0
1
D1
2
D2
3
GND
4
D3
5
D4
6
D5
7
D6
8
D7
9
A11
10
A2
20
+5V
30
A10
11
A3
21
NC
31
CE1
12
A4
22
A12
13
A5
23
PVI_SEL
14
A6
24
A9
15
A7
25
A8
16
OPREQ
26
+5V
17
RW
27
A0
18
WRP
28
A1
19
GND
29
P1
VC4000_Cartridge_Bus
WRP
RW
A->B
1
A0
2
A1
3
A2
4
A3
5
A4
6
A5
7
A6
8
A7
9
B7
11
B6
12
B5
13
B4
14
B3
15
B2
16
B1
17
B0
18
CE
19
U6
74HC245
VCC
EA12
CS
1
SCK
2
MOSI
3
MISO
4
5Vin
5
GND
6
P2
MicroSD_Breakout
RW
R1
10k
1
2
3
U9A
74HC00
1
2
3
U10A
74HC32
CEDBUS
CEDBUS
C8
.1uF
C9
.1uF
4
5
6
U9B
74HC00
WRP
RW
WCONTROL
WCONTROL
4
5
6
U10B
74HC32
VCC
(TX)D1
1
(RX)D0
2
RESET
3
GND
4
D2
5
(PWM)D3
6
D4
7
(PWM)D5
8
(PWM)D6
9
D7
10
A1
20
Vin
30
D8
11
A2
21
(PWM)D9
12
A3
22
(PWM)D10
13
A4
23
(PWM)D11
14
A5
24
D12
15
A6
25
D13
16
A7
26
3.3V
17
5V
27
AREF
18
RESET
28
A0
19
GND
29
U1
Arduino_Nano
R2
2k2
R3
330
R4
1k
SW1
UP
SW2
DOWN
SW3
SELECT
1
2
3
4
5
6
P3
DISPLAY
R2R Ladder - Select Buttons
VCC
QB
1
QC
2
QD
3
QE
4
QF
5
QG
6
QH
7
QH
9
SRCLR
10
SRCLK
11
RCLK
12
G
13
SER
14
QA
15
U11
74HC595
QB
1
QC
2
QD
3
QE
4
QF
5
QG
6
QH
7
QH
9
SRCLR
10
SRCLK
11
RCLK
12
G
13
SER
14
QA
15
U12
74HC595
R13
330
R14
330
R15
330
R16
330
R17
330
R18
330
R19
330
R20
330
R5
330
R6
330
R7
330
R8
330
R9
330
R10
330
R11
330
R12
330
VCC
1
2
P4
JUMPER1
1
2
P5
JUMPER2
1
2
P6
JUMPER3
1
2
P7
JUMPER4
C10
.1uF
C11
.1uF
Segm_G
1
Segm_F
2
K
3
Segm_E
4
Segm_D
5
SegmDP
6
Segm_C
7
K
8
Segm_B
9
Segm_A
10
S1
7SEGM_KB_SC39-11
Segm_G
1
Segm_F
2
K
3
Segm_E
4
Segm_D
5
SegmDP
6
Segm_C
7
K
8
Segm_B
9
Segm_A
10
S2
7SEGM_KB_SC39-11
Abbildung 15: Schaltplan des entwickelten Multi-ROM-Moduls.
32
Abbildung 16: Grafischer Export des Platinenlayouts aus KiCad im Maßstab 1:1. Die Masseflächen wurden zur besseren Übersicht
ausgeblendet.
33
4.1 Arduino-Firmwarecode
Der hier abgedruckte Firmwarecode für den Arduino entspricht der dritten Prototyp-Platine.
Alle Entwicklungsschritte an diesem Code, am Schaltplan und am Platinenlayout können im
Github-Repository des Projekts nachvollzogen werden. 63
1 #include <SD. h>
2 #include <SPI . h> / / Needed for SD lib
3
4 / / Defines for Arduino port numbers
5 #define CLOCK 5 / / SRCLK (A/D−Bus Shift Registers )
6 #define LATCH 3 / / RCLK (A/D−Bus Shift Registers )
7 #define DATA 6 / / SER (A/D−Bus Shift Registers )
8 #define OESHIFT 2 / / _G (A/D−Bus Shift Registers )
9 #define WESRAM 10
10 #define OEVCBUS 7 / / OE for Bus Transceivers
11 #define SD_CS 4 / / Chip Select for SD card
12
13 #define DISP_OE A2 / / 7−segment display
14 #define DISP_LATCH A3 / / 7−segment display
15 #define DISP_CLK A4 / / 7−segment display
16 #define DISP_DATA A5 / / 7−segment display
17
18 / / Miscellaneous other defines
19 #define NOKEY 0
20 #define UPKEY 1
21 #define DOWNKEY 2
22 #define SELECTKEY 3
23 #define MAX_ROMS 99
24 #define MAX_ROM_SIZE 6144
25 #define GO_MSG 9 / / 7−segment Message o f f s e t
26 #define ER_MSG 11 / / 7−segment Message o f f s e t
27
28 / / Global variables
29 byte lastkey = NOKEY;
30 byte message = GO_MSG;
31 byte romNumber = 1;
32 char romName[] = { 0 , 0 , 0 , 0 , 0 , 0 , 0 } ;
33 File romFile ;
34 byte SevenSegChar []= {
35 0x3f , / / 0
63 Keller und Maibaum, VC4000 MultiRom Modul. Der abgedruckte Code entspricht Commit 4d7ce272c9 vom
24. September 2015, Datei MultiRom/firmware/MultiRomVC4000/MultiRomVC4000.ino .
34
36 0x06 , / / 1
37 0x5b , / / 2
38 0x4f , / / 3
39 0x66 , / / 4
40 0x6d , / / 5
41 0x7d , / / 6
42 0x07 , / / 7
43 0x7f , / / 8
44 0x6f , / / 9
45 0x63 , / / o \
46 0x79 , / / E | − Additional characters for status messages
47 0x50 / / r /
48 } ;
49
50 void setup ( ) {
51 pinMode (SD_CS , OUTPUT) ;
52 pinMode (CLOCK, OUTPUT) ;
53 pinMode (LATCH, OUTPUT) ;
54 pinMode (DATA, OUTPUT) ;
55 pinMode (WESRAM, OUTPUT) ;
56 pinMode (OESHIFT , OUTPUT) ;
57 pinMode (OEVCBUS, OUTPUT) ;
58 pinMode (DISP_LATCH , OUTPUT) ;
59 pinMode (DISP_CLK , OUTPUT) ;
60 pinMode (DISP_DATA , OUTPUT) ;
61 pinMode (DISP_OE , OUTPUT) ;
62
63 / / I s o l a t e MultiROM from console bus
64 disableVCBus ( ) ;
65
66 / / Enable 7−segment display
67 digitalWrite (DISP_OE ,LOW) ;
68
69 / / I n i t i a l i z e SD card
70 if (SD. begin (SD_CS ) ) {
71 / / Wait for user s e l e c t i n g a ROM number
72 dispShowNumber (romNumber ) ;
73 byte key = getKey (A7 ) ;
74 do {
75 if ( key == UPKEY && lastkey != UPKEY && romNumber < MAX_ROMS)
76 ++romNumber ;
77 else if ( key == DOWNKEY && lastkey != DOWNKEY && romNumber > 1)
78 −−romNumber ;
79 dispShowNumber (romNumber ) ;
35
80 lastkey = key ;
81 key = getKey (A7 ) ;
82 } while ( key != SELECTKEY ) ;
83
84 / / Construct ROM f i l e name
85 if (romNumber < 10) {
86 romName[0] = ’0 ’ ;
87 itoa (romNumber , romName+1 , 10);
88 } else {
89 itoa (romNumber , romName , 10);
90 }
91 strcpy (romName+2 , ” . bin ” ) ; / / Append filename extension
92
93 / / Open ROM f i l e
94 romFile = SD. open (romName ) ;
95
96 / / Write ROM f i l e to SRAM
97 if ( romFile ) {
98 unsigned romSize = static_cast <unsigned >( romFile . size ( ) ) ;
99 if ( romSize <= MAX_ROM_SIZE) {
100 for ( unsigned i = 0; i < romSize ; i ++) {
101 write2RAM ( i , romFile . read ( ) ) ;
102 }
103 } else {
104 / / ROM size too big .
105 message = ER_MSG;
106 }
107 romFile . close ( ) ;
108 enableVCBus ( ) ;
109 } else {
110 / / ROM f i l e could not be opened .
111 message = ER_MSG;
112 }
113 } else {
114 / / SD card not found or otherwise failing i n i t i a l i z a t i o n
115 message = ER_MSG;
116 }
117 }
118
119 void loop ( ) {
120 / / Status indication
121 dispMessage ( message ) ;
122 }
123
36
124 void disableVCBus ( ) {
125 digitalWrite (WESRAM, HIGH ) ;
126 digitalWrite (OESHIFT , LOW) ;
127 digitalWrite (OEVCBUS, HIGH ) ;
128 }
129
130 void enableVCBus ( ) {
131 digitalWrite (WESRAM, HIGH ) ;
132 digitalWrite (OESHIFT , HIGH ) ;
133 digitalWrite (OEVCBUS, LOW) ;
134 delay (100);
135 / / handover R/W control to VC4000
136 digitalWrite (WESRAM, LOW) ;
137 }
138
139 void write2RAM ( unsigned int address , byte data ) {
140 digitalWrite (OESHIFT , LOW) ;
141 digitalWrite (WESRAM, HIGH ) ;
142 shiftout ( address , data ) ;
143 digitalWrite (WESRAM, LOW) ;
144 digitalWrite (WESRAM, HIGH ) ;
145 }
146
147 void shiftout ( unsigned int address , byte data ) {
148 byte lowbyte = address & 0 xff ;
149 byte highbyte = address >> 8;
150
151 digitalWrite (LATCH, LOW) ;
152 shiftOut (DATA, CLOCK, MSBFIRST , data ) ;
153 shiftOut (DATA, CLOCK, MSBFIRST , highbyte ) ;
154 shiftOut (DATA, CLOCK, MSBFIRST , lowbyte ) ;
155 digitalWrite (LATCH, HIGH ) ;
156 digitalWrite (LATCH, LOW) ;
157 }
158
159 byte getKey ( int pin ) {
160 int v = analogRead ( pin ) ;
161 delay ( 5 0 ) ;
162 v = analogRead ( pin ) ;
163 if ( v < 600 && v > 300)
164 return DOWNKEY;
165 if ( v < 300 && v > 100)
166 return SELECTKEY ;
167 if ( v < 100)
37
168 return UPKEY;
169 return NOKEY;
170 }
171
172 void dispShowNumber ( byte num) {
173 byte i = num % 10;
174 byte j = (num − i ) / 10;
175 digitalWrite (DISP_LATCH , LOW) ;
176 shiftOut (DISP_DATA , DISP_CLK , MSBFIRST , SevenSegChar [ i ] ) ; / / digitTwo
177 shiftOut (DISP_DATA , DISP_CLK , MSBFIRST , SevenSegChar [ j ] ) ; / / digitOne
178 digitalWrite (DISP_LATCH , HIGH ) ;
179 }
180
181 void dispMessage ( byte offset ) {
182 digitalWrite (DISP_LATCH , LOW) ;
183 shiftOut (DISP_DATA , DISP_CLK , MSBFIRST , SevenSegChar [ offset +1]);
184 shiftOut (DISP_DATA , DISP_CLK , MSBFIRST , SevenSegChar [ offset ] ) ;
185 digitalWrite (DISP_LATCH , HIGH ) ;
186 }
5 Retrocomputing als medienarchäologische Methode
Die Situierung des praktisch durchgeführten medientechnischen Projekts im Masterstudi-
engang Medienwissenschaft verlangt nach einer entsprechenden medientheoretischen Rah-
mungdeszuvorGesagten,dassicheinertechnischenBeschreibungentsprechendhauptsäch-
lich an den technisch notwendigen Einzelschritten und dem dafür zweckdienlichen prakti-
schen Wissen entlanghangeln musste. Aufgrund des materiellen Untersuchungsgegenstands
der Videospielkonsole Interton VC 4000 stammt der Großteil dieses Wissens aus der Elektro-
technik oder genauer: ihrem Teilgebiet der Digitalelektronik. Die zum Erreichen des Projekt-
ziels verwendete Mikrocontrollerplattform Arduino bezieht auch Werkzeuge und Praktiken
ausderzeitgenössischenpraktischenInformatikmitein:DieProgrammierunginnerhalbvon
aktuellen Hochsprachen-Entwicklungsumgebungen, die ihrerseits das Einbinden von ferti-
gen Programmbibliotheken umfasst. Im Folgenden soll dieses praktische Projekt kurz medi-
entheoretisch reflektiert werden.
Von der Kulturwissenschaft würde die Entwicklung einer Flash-Speicher-Schnittstelle, um
Daten von modernen Flash-Speichern wie auf ältere Videospielkonsolen laden zu können,
wohl als typische Aktivität der kulturellen Praxis namens Retrocomputing verstanden wer-
den. Stark komprimiert definiert die Kulturwissenschaft Retrocomputing als „a set of diverse
38
practices involving contemporary engagement with old computer systems. Such practices
are primarily private and non-professional, […].“ 64 Wenn man weiter den Versuch wagen
möchte, verschiedene kulturwissenschaftliche Arbeiten zum Retrocomputing ähnlich knapp
zusammenzufassen, kann darin die Tendenz ausgemacht werden, den Antrieb für Retrocom-
puting vornehmlich in einer „nostalgischen Sehnsucht“ der sie betreibenden Personen zu su-
chen. 65 DieSchlussfolgerungenkulturwissenschaftlicherArbeitenzumRetrocomputingsind
dennoch vielfältiger Art: Zu nennen ist erstens Takhteyevs und DuPonts pragmatische For-
derung an kulturelle Gedächtnisorganisationen wie Technikmuseen, „to appreciate the tech-
nicalknowledge possessedby retrocomputingparticipants andthe worktheyhavedone“,al-
somit Hilfedes praktischenWissens der Retrocomputing-Kulturdas drängendeProblemder
Erhaltung obsoleter Hard- und Software in einem funktionsfähigen Zustand endlich syste-
matisch anzugehen. 66 Sebastian Felzmann wiederum analysiert in seinem Aritkel den primär
sozialen Wunsch der Retrogamer als Rezipienten der einschlägigen Videospielästhetiken und
-inhalte, über das persönliche Spielen und den Austausch darüber mit anderen Retrospielern
„eine Rückkehr zu Altbekanntem zu suchen, welches ihnen eine vertraute Identifikations-
basis für die Definition ihres eigenen Selbst innerhalb einer von Veränderungen geprägten
Moderne liefert.“ Mit diesem Ansatz untersucht er das Interesse kommerzieller Hersteller
von „Retro-Remakes“, die Nostalgie der Spieler in ökonomischen Profit umzuwandeln, in-
dem sie erfolgreiche alte Spiele für aktuelle Spielhardware neu auflegen. Abschließend stellt
Felzmann daher die Frage, „was ein Spiel nun zu einem Klassiker macht“. 67
Innerhalb der Medienarchäologie, wie sie auch an der Berliner Humboldt-Universität be-
triebenwird,wirdRetrocomputingalspraktischeMethodejedochvorallemepistemologisch
weitergedacht. 68 Stefan Höltgen versteht Retrocomputing innerhalb seines laufenden For-
schungsprojekts zur „Archäologie des frühen Mikrocomputers und seiner Programmierung“
als „implizit vollzogene medienarchäologische Praxis […], die noch ihrer Explikation harrt.“ 69
Demnach können die Praktiken des Retrocomputings als Erweiterung des Methodenkanons
64 Yuri Takhteyev und Quinn DuPont. “Retrocomputing as preservation and remix”. In: Library Hi Tech 31.2
(2013), S. 355–370, hier S. 357.
65 Sebastian Felzmann. „Been there, done that. Mediennostalgie als kreative Praxis zur Schaffung neuer re-
troider Spiele“. In: SHIFT – RESTORE – ESCAPE. Retrocomputing und Computerarchäologie. Hrsg. von Stefan
Höltgen. Winnenden: CSW, 2014, S. 25–39, hier S. 31. Der Beitrag zitiert viele einschlägige Arbeiten zum Re-
trocomputing und Retrogaming.
66 Takhteyev und DuPont, „Retrocomputing as preservation and remix“, S. 365.
67 Felzmann, „Been there, done that“, S. 37.
68 Einen Einführung über die internationalen Strömungen in der Medienarchäologie liefern Erkki Huhtamo
und Jussi Parikka, Hrsg. Media Archaeology. Approaches, Applications and Implications. Berkeley, Los Angeles
und London: University of California Press, 2011.
69 Stefan Höltgen. „OPEN_. Ein Vorwort zur Computerarchäologie“. In: SHIFT – RESTORE – ESCAPE. Retro-
computing und Computerarchäologie. Hrsg. von dems. Winnenden: CSW, 2014, S. 11–23, hier S. 13.
39
derMedienarchäologieverstandenwerden,alsErweiterungeinervornehmlichtextorientier-
tenundtheoretischenDisziplinumpraktischeundzuweilenpragmatischeVorgehensweisen.
Man kann behaupten, die Retrocomputing-Kultur käme – trotz oder dank ihrer Nostalgie
– bereits durch einfaches praktisches Ausprobieren zum gleichen Ergebnis wie der Medi-
entheoretiker Kittler in seinen „technischen Schriften“. Denn dass „eine Maschine […] al-
so zugleich weniger und mehr [kann], als ihre Datenblätter zugeben“, wird jeder Retroga-
mer bestätigen, der schon einmal mit einer unzureichenden Emulationssoftware konfron-
tiert war (wie auch die Teilnehmer des Assemblerworkshops aus dem dieses Projekt her-
vorging, siehe Abschnitt 1). Die Feststellung Kittlers, die in den 1980er Jahren noch eine
Revolution der Literaturwissenschaft auslösen konnte, reicht der Retrocomputing-Gemein-
schaft als Erklärung jedoch nicht aus. Technisches Scheitern spornt ihre Teilnehmer erst zu
weiteren Anstrengungen an, den Ursachen der Diskrepanz zwischen Datenblättern, Hard-
ware- und Softwareverhalten erst recht auf den Grund zu gehen und sie zu dokumentie-
ren. Wie auch im vorliegenden Projekt regt dies nicht nur die Suche nach genaueren Daten-
blättern und (häufig von anderen Retrocomputing-Enthusiasten geschriebenen) technischen
Beschreibungen an, also weiteren klassischen Texten. Retrocomputing lässt darüber hinaus
diefraglicheTechnikselbstzuWortkommenunduntersuchtihrtatsächlichesVerhalten.Das
heißt, ihre Ein- und Ausgangssignale durch entsprechende Messgeräte gezielt auszumessen
(siehe Abschnitt 3.4). Technische Medien betreiben auf diese Weise ihre eigene Archäolo-
gie, also eine Medienarchäologie im Wortsinne, wie eines der Kernargumente des Medienar-
chäologen Wolfgang Ernst lautet. 70 Da die Taktraten digitaler Computer die Fähigkeiten des
menschlichen Wahrnehmungsapparats weit überschreiten, bleibt häufig keine andere Wahl,
als sie mit anderen technischen Medien auszumessen.
Die aktive Praxis des Retrocomputings, die tatsächlich an, mit und vor allem in Compu-
tersystemen arbeitet, liefert hier ein wirksames Plädoyer für mehr Hands-on auch in einer
traditionell vornehmlich geisteswissenschaftlichen Disziplin wie der Medienwissenschaft.
Aktives Retrocomputing, das die Geräte tatsächlich öffnet, liefert auf diese Weise nicht nur
politischeArgumentegegeneineVereinnahmungvon(immerauchpolitisch-sozialen)Bewe-
gungen wie Richard Stallmans „freier Software“ 71 durch den „freien Markt“, 72 sondern auch
70 Vgl. z.B. Wolfgang Ernst. “Media Archaeography. Method and Machine versus History and Narrative of
Media”. In: Media Archaeology. Approaches, Applications and Implications. Hrsg. von Erkki Huhtamo und Jussi
Parikka. Berkeley, Los Angeles und London: University of California Press, 2011, S. 239–255, hier S. 245.
71 Richard Stallman. The GNU Manifesto. Mehrfach überarbeitete Version auf gnu.org. (Erstveröffentlichung
1985). 12. Juni 2015. url: https://www.gnu.org/gnu/manifesto (besucht am 24.09.2015).
72 Der Publizist Evgeny Morozov hat für die Vereinnahmung des Begriffs „open“ durch „innovative“ Techno-
logiestartups den Begriff des „openwashings“ geprägt, siehe Evgeny Morozov. “Open and Closed”. In: New York
Times (16. März 2013). url: http://www.nytimes.com/2013/03/17/opinion/sunday/morozov-
open-and-closed.html (besucht am 24.09.2015). Eine ausführlichere Diskussion seiner Argumente findet
40
handfeste epistemologische Argumente für eine technikaffine Medienwissenschaft.
5.1 Medientheoretische Erkenntnisse durch aktives Retrocomputing
So brachte dann auch das in diesem Projekt aktiv betriebene Retrocomputing einige me-
dientheoretisch interessante Punkte ans Licht, die weitere, konkret technologisch belegbare
Argumente zur vonseiten der Medientheorie geforderten „akademisch-präzise[n] Definition
von Retrocomputing“ beitragen. 73 So zeigte sich beim Aufbau des Multi-ROM-Moduls für
die VC 4000, dass Retrocomputing eine viel umfassendere kulturelle Praxis ist, als dass ihr
Vorhandensein rein durch Nostalgie der Beteiligten erklärbar wäre.
Hierzu sei noch einmal auf den SN74LCV125A von Texas Instruments auf dem verwende-
tenMicroSD-Breakout-Boardverwiesen,derdenTTL-PegelderSignalevomArduinoaufdas
modernere CMOS-Level von 3,3V herabsenkt bzw. die Signale von der SD-Karte zur Prozes-
sierung im Mikrocontroller entsprechend wieder auf 5V anhebt. Solche integrierten Schalt-
kreiseschlagenBrückenzwischenGenerationenvonLogikfamilien.ImGegensatzzurVideo-
spielindustrie, die dem Endverbraucher als Nutzer alle paar Jahre neue, schnellere, hochauflö-
sendere, immersivere Spielkonsolen liefert, woraufhin alles Spielen auf der damit „obsolet“
gewordenen Hard- und Software der Vorgängergeneration zum Retrocomputing degradiert
wird–mitderFolge,dasssich,derNostalgiedefinitionnach,nunlediglichnochEnthusiasten
für diese interessieren sollten –, werden von der Halbleiterindustrie ganze Schaltkreisfami-
lien einzig zu dem Zweck neu entwickelt, dass obsolete integrierte Schaltungen weiterhin
Einzug in Neuentwicklungen finden oder zumindest Schnittstellen zu modernen Systemen
konstruiert werden können. In einer „Application Note“ der Fairchild Semiconductor Corpo-
ration aus dem Jahr 1984 liest man über die Existenzbegründung der 74HCT-Logikfamilie:
Why does HCT exist? Ideally, when a designer sits down to design a low power high speed
system,hewouldliketouse54HC/74HC,andCMOSLSIcomponents. Unfortunately,duetosystem
requirements, he may have to use NMOS microprocessors or bipolar peripherals or bipolar logic
(54S/74S, 54F/74F, 54ALS/74ALS, or 54AS/74AS) because either the specific function does not exist
in CMOS or the CMOS device may not have adequate performance. Since the system designer still
desires to use HC where possible, he will mix HC with these products. If these devices are specified
to be TTL compatible, incompatibilities my result at the interface between the TTL, NMOS, etc.
and HC. 74
sich z.B. in Evgeny Morozov. “The Meme Hustler. Tim O’Reilly’s crazy talk”. In: The Baffler 22 (2013), S. 66–75.
url: http://thebaffler.com/articles/the-meme-hustler (besucht am 24.09.2015). Zum Innova-
tionsbegriff, siehe Evgeny Morozov. „Die Rede von der Innovation. Der Jargon des Silicon Valley fängt sie alle
ein“. Aus dem Englischen übers. von Matthias Fienbork. In: Frankfurter Allgemeine Zeitung (18. Apr. 2014). url:
http://www.faz.net/-hbj-7ofqj (besucht am 24.09.2015).
73 Höltgen, „OPEN_“, S. 12.
74 Fairchild Semiconductor Corporation, Hrsg. An Introduction to and Comparison of 74HCT TTL Compatible
41
Bei der hier angedeuteten möglichen Inkompatibilität zwischen älteren 74er TTL-Serien und
dem modernen 74HC-Äquivalent dreht es sich ebenfalls um die Logikpegel der verschiede-
nen Familien. Wie der Leser der Application Note im nächsten Absatz erfährt, bedeutet das
Prädikat „TTL-kompatibel“ einer beliebigen integrierten Digitalschaltung mitnichten, dass
der hohe Signalpegel genau bei 5V liegen muss, wie häufig kolportiert: „Notice that the out-
put high level of a TTL specified device will not be guaranteed to be recognized as a valid
logic high input level by HC. A TTL output will be equal to or greater than 2.4V, but an HC-
MOSinputneedsatleast3.15V.“ 75 IndenmeistenFällenseieinedirekteVerbindungvonTTL-
kompatiblen Schaltkreisen mit Logikbausteinen aus der 74HC-Reihe (wie sie auch im vor-
liegenden Projekt zum Einsatz kamen) zwar umproblematisch, da die meisten älteren TTL-
Bausteine diese Minimalanforderungen weit überböten. Für mögliche Randfälle wurde je-
doch die Sonderfamilie 74HCT entwickelt, die einen hohen Eingangspegel TTL-kompatibel
schon ab 2,4V erkennt.
Die Halbleiterindustrie weiß also um die Tatsache, dass alte Hardware zwar technisch
überholt sein kann, viele Entwickler elektronischer Schaltungen jedoch auf gewisse bewähr-
te Bauteile zurückgreifen wollen und manchmal sogar müssen. Hans Camenzind schreibt
rückblickend über den von ihm entwickelten 555-Timer-IC: „Looking at the design now, 33
years later, there are many areas where it can be improved with the design techniques we
have learned since and with the enormous benefit of computer simulation.“ Aber er gibt
– natürlich nicht ohne Stolz – zu: „Except for a CMOS version, the design has never been
changed.“ 76 Es wurde nie verändert, weil Milliarden von bewährten elektronischen Geräten,
die sich im täglichen Einsatz befinden, auf die in seinem Datenblatt spezifizierte Funktiona-
lität hin entworfen sind und von ihr abhängen.
Wenn man dies berücksichtigt, kann das Feld des Retrocomputings beträchtlich erweitert
werden und es hängt nicht länger nur vor der Nostalgie von Enthusiasten und dessen ökono-
mischer Ausnutzung durch die Unterhaltungsindustrie ab. Stattdessen hängen ganze Tech-
nologiezweige davon ab. Der 555, Pegelumsetzer wie der SN74LCV125A oder die komplette
74HCT-Logikfamilie können demnach als aktives Retrocomputing der Halbleiterindustrie
verstanden werden. Wenn man Retrocomputing anders definieren wollte, könnte man es
auch als aktiven und daher notwendig invasiven Versuch verstehen, bewährte Systeme so
lange als möglich im produktiven Einsatz zu halten. Nostalgie wäre aus dieser Perspektive
dann möglicherweise ein Resultat dieses Vorhabens, jedoch nicht länger seine Ursache.
CMOS Logic. Application Note 368. März 1984. url: https://www.fairchildsemi.com/application-
notes/AN/AN-368.pdf (besucht am 24.09.2015), S. 1.
75 Fairchild Semiconductor Corporation, Introduction to 74HCT, S. 1.
76 Camenzind, Designing Analog Chips, S. 11-3.
42
Seit Kittler weiß die Medientheorie, dass auch Datenblätter und Application Notes zu kon-
sultieren sind, wenn der Untersuchungsgegenstand ein technisches Medium ist. Eine durch
Retrocomputing auch praktisch instruierte und informierte Medienarchäologie erinnert sich
jedoch auch an Kittlers Warnung vor unzureichenden technischen Dokumentationen. your
Lesen allein entbirgt demnach längst nicht alle möglichen epistemologischen Erkenntnisse.
Durch die aktive technische Beschäftigung mit den in Datenblättern beschriebenen Geräten,
Bauteilen, ihren Signalen im laufenden Betrieb und ihrer Software gelangt Retrocomputing
hier weiter.
5.2 Medienarchäologie versus Mediengeschichte?
DieMedienwissenschaftsolltediesezusätzlicheErkenntnisdimensionnichtvonvorneherein
ausschließen, wie es einige Teilnehmer der seit einiger Zeit innerhalb der Disziplin schwe-
lenden Debatte um Kittlers Medientheorie tun. So versucht zum Beispiel Claus Pias, Kittlers
laienhaftes Löten und Programmieren in den 1980er und 90er Jahren mit dem Verweis auf
die sich vermeintlich rapide ändernde Technologie zu historisieren:
Beides – das Konzept der Zweckentfremdung und des praktizierenden Medienverstehens, die Ver-
allgemeinerung des Einzelplatzrechners und die These vom „medientheoretischen Apriori“ – ist
nicht nur zeittypisch und an einen bestimmten historischen Stand von Hard- und Software ge-
bunden, sondern auch in der Geschichte und der Geschichtsschreibung der Computerkultur bereits
vorgeprägt. Deswegen funktionieren einige der theoretischen Konsequenzen nicht mehr, sobald
sich diese Technik ändert – was sie rapide getan hat. […]
Zahllose vernetzte digitale Geräte bevölkern unseren Alltag und kommunizieren (oft ohne Um-
weg über Subjekte) untereinander. Solche Phänomene lassen sich nur schwerlich beschreiben, in-
dem man einen Schreibtisch-PC in Assembler oder C programmieren lernt oder Grafikbibliotheken
optimiert – so sinnvoll das gewesen sein mag, um grundlegende Arbeitsweisen des Computers zu
begreifen und ein Denken in Notationssystemen und Algorithmen zu üben. 77
Etwas polemisch lässt sich auf dieses Plädoyer gegen mehr Hands-on zunächst mit dem di-
rekten Hinweis auf die Retrocomputing-Gemeinschaft antworten, die Webbrowser für ob-
solete Hardware längst entwickelt hat, wie z.B. den Singular Browser für den Commodore
C64. 78 Will man etwas differenzierter vorgehen, lässt sich an Pias’ Argument zugute halten,
dass eine Medienwissenschaft, die ihres ebenso geisteswissenschaftlichen Erbes aus Litera-
tur- und Geschichtswissenschaft nicht Unrecht tun möchte, die Antworten auf ihre Fragen
77 Pias, „Friedrich Kittler und der ‚Mißbrauch von Heeresgerät‘“, S. 33 f.
78 Vgl. Singular, Soci und The Dreams (Pseudonyme). Singular browser. url: http://singularcrew.hu/
browser (besucht am 24.09.2015). Passenderweise ist der Quellcode dafür ausgerechnet in 6502-Assembler
und in C geschrieben.
43
ebensowenig ausschließlich in Quellcodes und Schaltplänen findet, sondern eben auch in
klassischen Texten.
Interessanterweise lassen sich in der Technikgeschichte sowohl unterstützende Aussagen,
wie auch Gegenargumente zu Pias finden. Der Gewährsmann, der beide Aspekte vereint, ist
der Technikhistoriker Michael Mahoney. Sein Grundansatz ist, die Geschichtsschreibungen
zum Digitalcomputer zunächst von der eigentlichen Maschine wegzulenken, was er als „De-
zentrierung der Maschine“ bezeichnet, 79 indem er auf die unterschiedlichen disziplinären
Hintergründe und Geschichten derjenigen Gruppen verweist, welche die ersten elektroni-
schen Digitalcomputer bauten: „The computer has […] little or no history of its own. Rather,
it has histories derived from the histories of the groups of practitioners who saw in it […]
the potential to realise their agendas and aspirations.“ 80 Der Fokus auf die unterschiedlichen
Kontexte, in denen und für die Computer gebaut wurden, dient Mahoney dazu, darauf hin-
zuweisen, dass z.B. die mathematischen number crunchers, wie sie von John von Neumann,
Herman Goldstine und anderen gebaut wurden, andere Computer waren als die Datenver-
arbeitungsmaschinen von IBM, die in Wirtschaftsunternehmen eingesetzt wurden – obwohl
alle dem abstrakten Funktionsprinzip der Turingmaschine folgten. Dabei modifizierten die-
se unterschiedlichen Gruppen sowohl „den Computer“ und pluralisierten damit „seine Ge-
schichte“, genauso wie die gebauten Computer die sie konstruierenden Gruppen und ihre
Disziplinen veränderten:
Different groups of people saw different possibilities in computing, and they had different expe-
riences as they sought to realise those possibilities. One may speak of them as “communities of
computing”, or perhaps as communities of practitioners that took up the computer, adapting to it
while they adapted it to their purposes. 81
Dies ist auch Pias’ Kernargument: Kittlers Hacken in Assembler und C geschah auf einem
historisch anderen Computer als dem, der zum Verfassen dieser Arbeit genutzt wurde. Auch
die Medienwissenschaft hat, initiiert durch Kittlers Löten und Programmieren, den Compu-
tergeschichten ihre eigene Variante hinzugefügt. Der entsprechend selbst konstruierte Com-
puter wirkt auf die Disziplin zurück. Kittler war kein jugendlicher Hacker mehr, als er anfing
zuprogrammieren,sondern„einbrillianter,habilitierenderGermanist.“ 82 ImSinneMahoneys
undPias’ließesichdemnachformulieren:DurchKittlersComputerunddendaranunddamit
arbeitenden Germanisten wandelte sich ein Zweig der Germanistik zur Medienwissenschaft.
WasesfürKittlersTheoriebedeutet,wenndie„ThesedesmedientechnischenApriori“rekursiv
79 Mahoney, „The histories of computing(s)“, S. 121, Abschnitt „Decentring the Machine“.
80 Ebd., S. 119.
81 Ebd., S. 124.
82 Pias, „Friedrich Kittler und der ‚Mißbrauch von Heeresgerät‘“, S. 39.
44
auf sich selbst angewandt wird, ist auch eine Fragestellung der Medienwissenschaft. 83
Aber auch der Technikhistoriker Mahoney bezweckt mit seiner „Dezentrierung der Ma-
schine“ keineswegs eine vollständige Abkehr vom technischen Objekt und seinen Funkti-
onsweisen hin zu rein klassisch historischem Forschen an den Texten der Computernutzer-
gruppen. Er betont ebenso: „Technology is not a literate enterprise, but a visual, tactile one.
Its practitioners think not with words but, as Derek de Solla Peirce so deftly phased it, ‘with
their fingertips’.“ 84 Und genauso sollten sich auch Computerhistoriker verhalten. Der Blick
auf das, was verschiedene Gruppen von Praktikern mit und an Computern tatsächlich getan
haben und tun, entzaubere nämlich auch die Mythen vom ewigen, alles revolutionierenden
technischen Fortschritt:
With some recent exceptions, the history of computing has been centered on the machine, tracing
its origins back to the abacus and the first mechanical calculators and then following its evolution
through the generations of mainframe, mini, and micro. […] Once invented, the computer evolves
naturally into the PC as its present most visible form, 85 rather than into a variety of coexisting,
mutually supportive forms (as if mainframes disappeared with the invention of the minicomputer).
Its progress is inevitable and unstoppable, its effects revolutionary.
Chronicling the revolution, that machine-centered history reinforces the hype and with it what
one might call the “impact theory” of the relation of technology and society. There is society
strolling along, minding its own business, and, wham!, it gets impacted and is left reeling by a
revolutionary technology, which changes everything overnight or in some similar short time. […]
From that perspective, society breaks up into two classes – those who are on the train and those
who are not – and the latter are hopeless […]. In our field, you’re either a digeratus or a dinosaur. 86
Bei der Beantwortung der Frage, ob Kittlers Theorie des aktiven „Mißbrauchs“ von tech-
nischen Geräten wie im Retrocomputing also aufgrund des technischen Fortschritts vom
raumfüllenden, aber isolierten Mainframe zu den weltweit vernetzten Smartphones an allen
Ohren mehr als eine historische Notiz wert ist, lohnt demnach sowohl der Blick in die Geräte,
der zeigt, dass auch Smartphones immer noch Implementierungen der gleichen abstrakten
Turingmaschinesind, wie auch derBlick aufdie Praxis des Retrocomputings. Dankdieser Pra-
xis hat dieses Projekt bewiesen, dass auch Spielkonsolen aus den späten 1970er Jahren von
modernen Flash-Speichern lesen können. Ebenso gelingt es heute, auf Heimcomputern der
1980er Jahre Nachrichten in sozialen Netzwerken wie Twitter zu schreiben und zu lesen. 87
83 Pias, „Friedrich Kittler und der ‚Mißbrauch von Heeresgerät‘“, S. 33.
84 Mahoney, „The histories of computing(s)“, S. 130.
85 ImJahr2015,zehnJahrenachdemMahoneydieseZeilenschrieb,müsstenhierwohldievonPiaserwähnten
„zahllosen vernetzten digitalen Geräte“, also hauptsächlich Smartphones stehen.
86 Mahoney, „The histories of computing(s)“, S. 121.
87 Vgl. Christian Klaß. „Twittern mit dem C64“. In: Golem.de (15. Juni 2009). url: http://www.golem.de/
0906/67762.html (besucht am 24.09.2015).
45
5.3 Senden und Empfangen
Natürlich muss das größtenteils informelle, praktische Wissen, wie es im Retrocomputing an
der Tagesordnung ist, historisch kritisch hinterfragt werden. Allzu oft lesen sich die von Re-
trocomputing-Enthusiasten verfassten Technik-, Geräte- und Firmengeschichten wie Legen-
denundMythen.BelastbarehistorischeQuellenangabensuchtmannichtseltenvergeblich. 88
Als ein kurzes Beispiel für eine medienhistorisch kritische Recherche soll hier nochmals auf
den Begriff des Transceivers verwiesen werden, der im Zuge dieses Projekts in Form des
74HC245 Bus Transceiver als „Sender-Empfänger“ für die technisch korrekte Orchestrierung
der Signale auf den Adress- und Datenbussen nötig wurde (siehe Abschnitt 3.3).
LautderdeutschenWikipedia,derenAutorensichfürdieAngabe,dass„dasKofferwort[…]
in den 1930er Jahren [entstand]“, 89 ihrerseits auf das Oxford English Dictionary beziehen, 90
scheint das Wort aus der Radio- und Funktechnik zu stammen: „Damals war bei Funkgeräten
noch ungewöhnlich, weder ihr Funkmodul zwischen Senden und Empfangen umzuschalten,
noch drei Antennen ausrichten zu müssen, sondern einfach beides gleichzeitig zu können.“ 91
Eine kritische Recherche in den online verfügbaren Patenten aus der fraglichen Zeit kommt
jedoch zu einem anderen Schluss.
Während in Patenten zur Radio- und Funktechnik ausschließlich von einem „Combined
Wireless Sending and Receiving System“ geschrieben wird, 92 taucht der Begriff des trans-
ceivers erstmals in einem Patent von Harvey Hayes auf, das am 22. Oktober 1932 beantragt
wurde: „It is to be noted that this apparatus serves equally well as a receiver or transmitter
of sound, to which type of device I have heretofore applied the name of transceiver.“ 93 Es
mag sein, dass dieses Patent aufgrund seines erst 14 Jahre späteren Erscheinens im Sep-
tember 1946 weniger bekannt ist, jedoch konnte kein früheres Patent aus der Radio- und
Funktechnik mit einer expliziten Erwähnung, geschweige denn einer Definition des Begriffs
gefunden werden. Hayes Gerät und damit der Begriff entstand während seiner Arbeit am
Naval Research Laboratory (NRL) der US-Marine, wo er aktive und passive Sonargeräte für
88 Als Beispiel sei hier auf Andreas Thurows Interton-Firmengeschichte verwiesen, vgl. Thurow, Geschichte.
89 Eintrag „Transceiver“. In: Wikipedia. Die freie Enzyklopädie. Hrsg. von Wikimedia Foundation Inc. 29. Jan.
2015. url: https://de.wikipedia.org/w/index.php?title=Transceiver&oldid=138302071
(besucht am 24.09.2015).
90 Im verlinkten Eintrag liest man im Abschnitt „Origin“ lediglich: „1930s: blend of transmitter and receiver.“
Eintrag “transceiver”. In: Oxford English Dictionary. Hrsg. von Oxford University Press. url: https://www.
oxforddictionaries.com/definition/english/transceiver (besucht am 24.09.2015).
91 Wikimedia Foundation Inc., Eintrag „Transceiver“.
92 So der Titel eines Patents von Alexander Nyman. “Combined Wireless Sending and Receiving System”.
US-Pat. 1606775. 16. Nov. 1926. Vergleichbare Radio- und Funkpatente aus den 1920er und 1930er Jahren for-
mulieren ähnlich.
93 Harvey C. Hayes. “Directive Transceiver for Sound”. US-Pat. 2406767. 3. Sep. 1946, Spalte 9.
46
den Einsatz auf Schiffen entwickelte. 94 Sein Patent ist nicht nur medienhistorisch, sondern
geradeheraus von medienarchäologischer Relevanz, verweist es doch treffend auf die soni-
sche Verbundenheit akustischer und elektromagnetischen Wellen. 95 Radio bzw. (Rund-)Funk
und Sonar müssen am Beispiel des Transceivers epistemologisch zusammengedacht werden.
Darauf verweist Wolfgang Hagen medienhistorisch, wenn er die Bedeutung des Untergangs
der Titanic im Jahr 1912 für den US-amerikanischen „Radio-Act“ aus dem gleichen Jahr un-
terstreicht. Darin wurden „die Frequenzbereiche, auf denen die Amateure senden, von denen
[abgetrennt], auf denen die Schiffahrt generell und davon geschieden das Militär, sprich die
Navy, ausschließlich senden durfte.“ 96 Der „Radio-Act“ regelte Sende- und Empfangskanä-
le juristisch, heutige integrierte Schaltungen wie Bus Transceiver tun dies für Adress- und
Datenleitungen in Digitalcomputern auf hochtechnische Weise.
5.4 Fazit
Abschließend ist dieses Projekt als deutlicher Appell für mehr Praxis in einer Disziplin wie
derMedienwissenschaftzuverstehen.IhreLegitimitätfindetdieseForderungnichtnurdurch
diePraxisdesRetrocomputings,sondernauchbeiMartinHeidegger:„DasZuhandenebraucht
seinen Zeugcharakter nicht zu verlieren, um ‚Objekt‘ einer Wissenschaft werden zu können.
Die Modifikation des Seinsverständnisses scheint nicht notwendig konstitutiv zu sein für die
Genesis des theoretischen Verhaltens ‚zu den Dingen‘.“ 97
Anstelle ihre Argumente also ausschließlich aus Erzählungen und technischen Dokumen-
tationen zu ziehen, tut eine ihren Namen Ernst nehmende Medienarchäologie gut daran, die
Untersuchungen von technischen Medien ganz wie im Retrocomputing des Öfteren auch di-
rektam,mitundvorallemimtechnischenObjektdurchzuführen.Kittlersprachsichdezidiert
für eine Erweiterung des Textkorpus’ aus. Weder Medienarchäologie noch eine vermeintlich
traditionellere Mediengeschichte gewinnt auf lange Sicht etwas vom erneuten Verschließen
vor den Quellen und Methoden der jeweils anderen Teildisziplin.
94 Vgl. Fred T. Erskine. “Harvey C. Hayes: First Superintendend of the Sound Division at the Naval Research
Laboratoy, Washington D.C.” In: Journal of the Acoustical Society of America 137.4 (Apr. 2015), S. 2273.
95 Vgl. hierzu Wolfgang Ernst. „Zum Begriff des Sonischen (mit medienachäologischem Ohr erhört/vernom-
men)“. In: Das Sonische – Sounds zwischen Akustik und Ästhetik. Hrsg. von Forschungszentrum Populäre Musik
der HU Berlin. PopScriptum 10. 2008. url: http://www2.hu-berlin.de/fpm/popscrip/themen/
pst10/pst10_ernst.htm (besucht am 24.09.2015).
96 Wolfgang Hagen. Das Radio. Zur Geschichte und Theorie des Hörfunks – Deutschland/USA. München: Fink,
2005, S. 180 ff., Zitat auf S. 182.
97 Martin Heidegger. Sein und Zeit. 19. Aufl. [Erstausgabe: Halle, 1927]. Tübingen: Niemeyer, 2006, S. 361. Für
eine dezidiert medienwissenschaftliche Reformulierung desselben Arguments, siehe den Abschnitt „Mediales
Zeugals‚um…zu‘“inWolfgangErnst.Gleichursprünglichkeit.ZeitwesenundZeitgegebenheitvonMedien.Berlin:
Kadmos, 2012, S. 317 f.
47
Abbildungsverzeichnis
Übernommene Abbildungen anderer Autoren sind mit einer entsprechenden Quellenangabe ver-
sehen. Alle übrigen Abbildungen wurden eigenhändig erstellt.
1 Anzeigefehler im entwickelten Spiel auf der Originalhardware. Detailansicht
aus einem Videostill. , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 3
2 Zwei exemplarische Original-Spielmodule der VC 4000. . , , , , , , , , , , , 8
3 Die Verschaltung der CPU (S[ignetics]2650) und des PVI (S2636) mit dem Mo-
dulschacht(Ausschnitt).Aus:ManfredSchneider.SchaltplänederVC4000.Ar-
chivdatei mit PDF-Zeichnungen. Feb. 2007. url: http://vc4000.de/
vc4000_Schaltplaene.rar (besucht am 24.09.2015), Datei vc4000-
Mainboard.pdf . , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9
4 Signalleitungen am Modulschacht. Der Signaltyp in der dritten Spalte ist aus
der Perspektive des Spielmoduls angegeben. , , , , , , , , , , , , , , , , , , 10
5 Testaufbau der seriellen Schreibschnittstelle zwischen SRAM und Arduino
auf einem Steckbrett. , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14
6 Schaltung auf einem Standard-Spielmodul für die VC 4000 mit ROM-IC. Aus:
Manfred Schneider. Schaltpläne der VC4000. Archivdatei mit PDF-Zeichnun-
gen. Feb. 2007. url: http://vc4000.de/vc4000_Schaltplaene.rar
(besucht am 24.09.2015), Datei 2k-4krom-cartridge.pdf . , , , , , , , , 16
7 Beginn des Spielcodes von „Jagd“. Links: Spielcode aus der Binärdatei, rechts:
Detailansich einer fotografischen Aufnahme vom Display des Logikanalysa-
tors, nachträglich farbinvertiert und in s/w umgewandelt. , , , , , , , , , , , 20
8 Verschaltung des Output-Enable-Eingangs am Datenbus-Transceiver; Wahr-
heitstabelle für ein OR-Gatter. , , , , , , , , , , , , , , , , , , , , , , , , , , 22
9 Der erste funktionierende Prototyp. Links: Ausschnitt aus einem Videostill,
rechts: Platine mit manuellen Änderungen. , , , , , , , , , , , , , , , , , , , 24
10 ErzeugungeinesSchreibsginalsfürdenWE-EingangdesSRAMs;Wahrheits-
tabelle für ein NAND-Gatter . , , , , , , , , , , , , , , , , , , , , , , , , , , 25
11 Schreibzyklus des Signetics 2650. Aus: Signetics Corporation, Hrsg. Signetics
2650 Microprocessor. Datenblatt. USA, 1975, S.36, Abb.11. , , , , , , , , , , , 26
12 Schaltplan des „Schach-2“-Spielmoduls. Aus: Manfred Schneider. Schaltpläne
der VC4000. Archivdatei mit PDF-Zeichnungen. Feb. 2007. url: http://
vc4000.de/vc4000_Schaltplaene.rar (besuchtam24.09.2015),Datei
6krom-1kram-cartridge.pdf . , , , , , , , , , , , , , , , , , , , , , , , , 28
13 Spiegelung des SRAM-Speichers auf dem Spielmodul „Schach 2“. , , , , , , , 29
14 Ansicht der aktuellen Version (dritter Prototyp). , , , , , , , , , , , , , , , , 31
15 Schaltplan des entwickelten Multi-ROM-Moduls. , , , , , , , , , , , , , , , , 32
16 Grafischer Export des aktuellen Platinenlayouts aus KiCad. , , , , , , , , , , 33
48
Literatur
Arduino, Hrsg. Digital Pins. Online-Dokumentation. url: https://www.arduino.cc/
en/Tutorial/DigitalPins (besucht am 24.09.2015).
– Hrsg. Getting Started with Arduino. Online-Dokumentation. url: https://www.arduin
o.cc/en/Guide/HomePage (besucht am 24.09.2015).
Camenzind, Hans. Designing Analog Chips. 2. Aufl. College Station/TX: Virtualbookworm
Publishing, 2005. url: http://www.designinganalogchips.com/_count/design
inganalogchips.pdf (besucht am 24.09.2015).
Ernst, Wolfgang. „Zum Begriff des Sonischen (mit medienachäologischem Ohr erhört/ver-
nommen)“.In:DasSonische–SoundszwischenAkustikundÄsthetik.Hrsg.vonForschungs-
zentrum Populäre Musik der HU Berlin. PopScriptum 10. 2008. url: http://www2.hu-
berlin.de/fpm/popscrip/themen/pst10/pst10_ernst.htm (besucht am
24.09.2015).
– “Media Archaeography. Method and Machine versus History and Narrative of Media”. In:
Media Archaeology. Approaches, Applications and Implications. Hrsg. von Erkki Huhtamo
und Jussi Parikka. Berkeley, Los Angeles und London: University of California Press, 2011,
S. 239–255.
– Gleichursprünglichkeit. Zeitwesen und Zeitgegebenheit von Medien. Berlin: Kadmos, 2012.
Erskine, Fred T. “Harvey C. Hayes: First Superintendend of the Sound Division at the Naval
ResearchLaboratoy,WashingtonD.C.”In:JournaloftheAcousticalSocietyofAmerica 137.4
(Apr. 2015), S. 2273.
FairchildSemiconductorCorporation,Hrsg.AnIntroductiontoandComparisonof74HCTTTL
Compatible CMOS Logic. Application Note 368. März 1984. url: https://www.fairchi
ldsemi.com/application-notes/AN/AN-368.pdf (besucht am 24.09.2015).
Felzmann,Sebastian.„Beenthere,donethat.MediennostalgiealskreativePraxiszurSchaffung
neuer retroider Spiele“. In: SHIFT – RESTORE – ESCAPE. Retrocomputing und Computerar-
chäologie. Hrsg. von Stefan Höltgen. Winnenden: CSW, 2014, S. 25–39.
Forster, W. Interton VC-4000 Video Computer. Eintrag zur VC 4000 auf der Pong Picture Page.
27. Nov. 2005. url: http://www.pong-picture-page.de/catalog/product_
info.php?manufacturers_id=78&products_id=110 (besucht am 24.09.2015).
Hagen, Wolfgang. Das Radio. Zur Geschichte und Theorie des Hörfunks – Deutschland/USA.
München: Fink, 2005.
Hayes, Harvey C. “Directive Transceiver for Sound”. US-Pat. 2406767. 3. Sep. 1946.
Heidegger, Martin. Sein und Zeit. 19. Aufl. [Erstausgabe: Halle, 1927]. Tübingen: Niemeyer,
2006.
Höltgen,Stefan.„OPEN_.EinVorwortzurComputerarchäologie“.In:SHIFT–RESTORE–ES-
CAPE. Retrocomputing und Computerarchäologie. Hrsg. von dems. Winnenden: CSW, 2014,
S. 11–23.
– Hrsg. SHIFT – RESTORE – ESCAPE. Retrocomputing und Computerarchäologie. Winnenden:
CSW, 2014.
– „Die NOPs und HALTs digitaler Medien. Programmierlehre maschinennaher Sprachen für
Medienwissenschaftler“. In: Grundlagenstudien aus Kybernetik und Geisteswissenschaften.
49
InternationaleZeitschriftfürModellierungundMathematisierungindenHumanwissenschaften
55.4 (Dez. 2014), S. 139–153.
Horowitz, Paul und Winfield Hill. The Art of Electronics. 3. Aufl. New York: Cambridge Uni-
versity Press, 2015.
Huhtamo, Erkki und Jussi Parikka, Hrsg. Media Archaeology. Approaches, Applications and
Implications. Berkeley, Los Angeles und London: University of California Press, 2011.
Jacobs, James. WinArcadia. Programm-Quellcode. Version 24.21. url: http://amigan.
1emu.net/releases/WinArcadia-src.rar (besucht am 24.09.2015).
– Interton VC 4000 Coding Guide. Allgemeine Hinweise zur Codestruktur von VC-4000-Spie-
len. Erstellt am 7.Feb 2007. 10. Feb. 2014. url: http : / / amigan . yatho . com / i -
coding.txt (besucht am 24.09.2015).
– Thesoundissuewillbefixed.KommentaraufFacebookindergeschlossenenGruppe„Signe-
tics 2650“. 24. Sep. 2014. url: https://www.facebook.com/groups/392123604238
327/permalink/643611902422828/?comment_id=643746732409345&offset=
0&total_comments=8&comment_tracking=%7B%22tn%22:%22R1%22%7D (besucht
am 24.09.2015).
Keller, Mario und Johannes Maibaum. VC4000 MultiRom Modul. Code-Repository. url: htt
ps://github.com/mkeller0815/flappy4000/tree/master/MultiRom (besucht
am 24.09.2015).
Kernighan,BrianW.undDennisM.Ritchie.TheCProgrammingLanguage.2.Aufl.Englewood
Cliffs/NJ: Prentice Hall, 1988.
KiCad. A Cross Plattform and Open Source Electronics Design Automation Suite. Website des
verwendeten Platinenlayoutprogramms. url: http://kicad-pcb.org (besucht am
24.09.2015).
Kittler, Friedrich. Draculas Vermächtnis. Technische Schriften. Leipzig: Reclam, 1993.
– „Protected Mode“. In: Ders. Draculas Vermächtnis. Technische Schriften. Leipzig: Reclam,
1993, S. 208–224.
Klaß, Christian. „Twittern mit dem C64“. In: Golem.de (15. Juni 2009). url: http://www.
golem.de/0906/67762.html (besucht am 24.09.2015).
Kuhn, Markus. Standardized units for use in information technology or “What is a Megabyte
…?” 19. Juli 1999. url: https://www.cl.cam.ac.uk/~mgk25/information-
units.txt (besucht am 24.09.2015).
Kushner, David. “The Making of Arduino. How five friends engineered a small circuit board
that’s taking the DIY world by storm”. In: IEEE Spectrum (26. Okt. 2011). url: http://
spectrum.ieee.org/geek-life/hands-on/the-making-of-arduino (besucht
am 24.09.2015).
Lancaster, Don. TTL Cookbook. 25. Aufl. [Erstauflage 1974]. Carmel/IN: SAMS, 1994.
Loebel, Jens-Martin. Lost in Translation. Leistungsfähigkeit, Einsatz und Grenzen von Emula-
toren bei der Langzeitbewahrung digitaler multimedialer Objekte am Beispiel von Computer-
spielen. Glückstadt: Hülsbusch, 2014.
Mahoney,MichaelS.“Thehistoriesofcomputing(s)”.In:InterdisciplinaryScienceReviews 30.2
(2005), S. 119–135.
“2650 Now Being Shipped And Sampled”. In: Microcomputer Digest 2.1 (Juli 1975). Hrsg. von
Microcomputer Associates Inc., S. 1–3.
50
Morozov, Evgeny. “Open and Closed”. In: New York Times (16. März 2013). url: http://ww
w.nytimes.com/2013/03/17/opinion/sunday/morozov-open-and-closed.
html (besucht am 24.09.2015).
– “The Meme Hustler. Tim O’Reilly’s crazy talk”. In: The Baffler 22 (2013), S. 66–75. url:
http://thebaffler.com/articles/the-meme-hustler (besucht am 24.09.2015).
– „Die Rede von der Innovation. Der Jargon des Silicon Valley fängt sie alle ein“. Aus dem
Englischenübers.vonMatthiasFienbork.In:FrankfurterAllgemeineZeitung (18.Apr.2014).
url: http://www.faz.net/-hbj-7ofqj (besucht am 24.09.2015).
MOS Technology Inc., Hrsg. F2114/2114L. 1024 x 4 Static RAM. Datenblatt. Ohne Datierung.
url: https://www.princeton.edu/~mae412/HANDOUTS/Datasheets/2114.pdf
(besucht am 24.09.2015).
Neumann, John von. “First Draft of a Report on the EDVAC”. In: IEEE Annals of the History
of Computing 15.3 (1993), S. 27–75.
NXP Semiconductors, Hrsg. 74HC00; 74HCT00. Quad 2-input NAND gate. 6.Rev. Datenblatt.
14. Dez. 2011. url: http://www.nxp.com/documents/data_sheet/74HC_HCT00.
pdf (besucht am 24.09.2015).
– Hrsg. 74HC32; 74HCT32. Quad 2-input OR gate. 5.Rev. Datenblatt. 4. Sep. 2012. url: htt
p://www.nxp.com/documents/data_sheet/74HC_HCT32.pdf (besucht am
24.09.2015).
– Hrsg. 74HC595; 74HCT595. 8-bit serial-in, serial or parallel-out shift register with output
latches; 3-state. 7.Rev. Datenblatt. 26. Jan. 2015. url: http://www.nxp.com/docum
ents/data_sheet/74HC_HCT595.pdf (besucht am 24.09.2015).
Nyman, Alexander. “Combined Wireless Sending and Receiving System”. US-Pat. 1606775.
16. Nov. 1926.
Eintrag “transceiver”. In: Oxford English Dictionary. Hrsg. von Oxford University Press. url:
https://www.oxforddictionaries.com/definition/english/transceiver
(besucht am 24.09.2015).
PhilipsSemiconductors,Hrsg.74HC245;74HCT245.Octalbustranceiver;3-state.3.Rev.Daten-
blatt. 31. Jan. 2005. url: http://www.nxp.com/documents/data_sheet/74HC_
HCT245.pdf (besucht am 24.09.2015).
Pias, Claus. „Friedrich Kittler und der ‚Mißbrauch von Heeresgerät‘. Zur Situation eines
Denkbildes 1964 – 1984 – 2014“. In: Merkur. Deutsche Zeitschrift für europäisches Denken
69.791 (Apr. 2015), S. 31–44.
Ross, Kevin. “Basic Circuits. Bypass Capacitors”. In: Encoder. The Newsletter of the Seattle
Robotics Society (Juni 1997). url: http://www.seattlerobotics.org/encoder/
jun97/basics.html (besucht am 24.09.2015).
Schneider, Manfred. Schaltpläne der VC4000. Archivdatei mit PDF-Zeichnungen. Feb. 2007.
url: http://vc4000.de/vc4000_Schaltplaene.rar (besucht am 24.09.2015).
Signetics Corporation, Hrsg. Signetics 2650 Microprocessor. Datenblatt. USA, 1975.
Silicon Valley Historical Association. NXP Semiconductors. 2008. url: http : / / www . s
iliconvalleyhistorical . org / nxp - semiconductors - history (besucht am
24.09.2015).
Singular, Soci und The Dreams (Pseudonyme). Singular browser. url: http://singularc
rew.hu/browser (besucht am 24.09.2015).
51
Stallman, Richard. The GNU Manifesto. Mehrfach überarbeitete Version auf gnu.org. (Erst-
veröffentlichung 1985). 12. Juni 2015. url: https://www.gnu.org/gnu/manifesto
(besucht am 24.09.2015).
Takhteyev, Yuri und Quinn DuPont. “Retrocomputing as preservation and remix”. In: Library
Hi Tech 31.2 (2013), S. 355–370.
Texas Instruments Inc., Hrsg. SN74LVC125A. Quadruple Bus Buffer Gate With 3-State Outputs.
Datenblatt. Dallas/TX, Feb. 2004. url: http://pdf1.alldatasheet.com/datashee
t-pdf/view/171748/TI/LVC125A.html (besucht am 24.09.2015).
Thurow, Andreas. Story. In: VC4000.de. Ohne Datierung. url: http://vc4000.de/
html/geschichte.html (besucht am 24.09.2015).
– Spiele. In: VC4000.de. Ohne Datierung.url: http://vc4000.de/html/body_spiele.
html (besucht am 24.09.2015).
Utron Technology Inc., Hrsg. UT6264C. 8K X 8 Bit Low Power CMOS SRAM. 1.4. Datenblatt.
Hsinchu, 15. Mai 2003. url: http://cdn-reichelt.de/documents/datenblatt/
A300/UT6264.PDF (besucht am 24.09.2015).
Valvo, Hrsg. Signetics Programmable Video Interface (PVI) 2636. Datenblatt. Ohne Datierung.
Vogt, Patrick. Interton VC4000 Homebrew-EEPROM-Modul? Beitrag im Online-Forum circuit-
board.de. 10. Apr. 2014. url: http://circuit-board.de/forum/index.php/Th
read/12776-Interton-VC4000-Homebrew-EEPROM-Modul/?postID=324054#
post324054 (besucht am 24.09.2015).
Ward, Jack. “The 555 Timer IC. An Interview with Hans Camenzind—The Designer of the
MostSuccessfulIntegratedCircuitEverDeveloped”.In: Transistormuseum.com (Juni2004).
url: http://semiconductormuseum.com/Transistors/LectureHall/Camenzi
nd/Camenzind_Index.htm (besucht am 24.09.2015).
Wikimedia Foundation Inc., Hrsg. Wikipedia. Die freie Enzyklopädie.
Eintrag „Interton VC4000“. In: Wikipedia. Die freie Enzyklopädie. Hrsg. von Wikimedia Foun-
dation Inc. 15. März 2015. url: https://de.wikipedia.org/w/index.php?title=
Interton_VC4000&oldid=139806399 (besucht am 24.09.2015).
Eintrag „Transceiver“. In: Wikipedia. Die freie Enzyklopädie. Hrsg. von Wikimedia Foundation
Inc. 29. Jan. 2015. url: https://de.wikipedia.org/w/index.php?title=
Transceiver&oldid=138302071 (besucht am 24.09.2015).
52
