Zur Beschreibungsseite auf Commons

Datei:WDR paper computer performing addition.gif

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Originaldatei(800 × 800 Pixel, Dateigröße: 286 KB, MIME-Typ: image/gif, Endlosschleife, 19 Bilder, 29 s)

Diese Datei und die Informationen unter dem roten Trennstrich werden aus dem zentralen Medienarchiv Wikimedia Commons eingebunden.

Zur Beschreibungsseite auf Commons


Beschreibung

Beschreibung
English: An animation of the WDR paper computer running a program that performs addition (inside a Python-based emulator, see code below). At the beginning the two registers contain 5 and 4 respectively; at the end the first register contains their sum 9. This addition program is from the original German publication: [1] The Courier Prime font is used for the text. Also see File:WDR paper computer (pen and matchsticks).jpg for the pen and paper version of this program.
Deutsch: Eine Animation des Know-how-Computers, der eine Addition ausführt. Am Anfang befinden sich die Werte 5 und 4 in den beiden Registern; am Ende die Summe 9. Dieses Programm stammt aus der deutschen Erstveröffentlichung der Know-how-Computers: [2]
Datum
Quelle Eigenes Werk
Urheber Morn
GIF‑Erstellung
InfoField
 
Diese GIF-Rastergrafik wurde mit Python erstellt.
Quelltext
InfoField

Python code

Source code
#!/usr/bin/python

# Run a simple addition program on the WDR paper computer
# and output steps as PNGs

# Create GIF animation with ImageMagick:
# convert -delay 150 wdr_step*.png -loop 0 wdr.gif

from PIL import Image, ImageDraw, ImageFont

w, h = 800, 800
fnt = ImageFont.truetype('Courier Prime.ttf', 40)

# the paper computer program to run
prog = """# Add register 2 to register 1
1 jmp 4
2 inc 1
3 dec 2
4 isz 2
5 jmp 2
6 stp"""

# set up registers
reg = 10 * [0]
reg[1] = 5
reg[2] = 4

# set up program counter
pc = 1

pp = prog.splitlines()
step = 0

while True:
    ins = pp[pc].split()
    step += 1
    print(pp[pc])
    print(step, reg)

    # create output image for current step
    im = Image.new('RGBA', (w, h), (0,0,0))
    d = ImageDraw.Draw(im)
    for n, x in enumerate(pp):
        if pc == n:
            col = (255, 255, 255)
            s = "> "
        else:
            col = (0, 255, 0)
            s = "  "
        d.text((0, 50 * n), s + pp[n], font = fnt, fill = col, align = "left")
    for n in range(1, 3):
        d.text((0, 50 * (n + len(pp) + 2)), "REGISTER %u: %u" % (n, reg[n]), font = fnt, fill = (255, 255, 0), align = "left")
    d.text((0, 50 * (n + len(pp) + 4)), "PROGRAM STEP: %u" % step, font = fnt, fill = (255, 0, 0), align = "left")
    im.save("wdr_step%04u.png" % step)

    # carry out the current instruction
    if ins[1] == "stp":
        break
    if ins[1] == "isz":
        if reg[int(ins[2])] == 0:
            pc += 2
        else:
            pc += 1
        continue
    if ins[1] == "jmp":
        pc = int(ins[2])
        continue
    if ins[1] == "inc":
        reg[int(ins[2])] += 1
    if ins[1] == "dec":
        reg[int(ins[2])] -= 1

    pc += 1

Lizenz

Ich, der Urheber dieses Werkes, veröffentliche es unter der folgenden Lizenz:
Creative Commons CC-Zero Diese Datei wird unter der Creative-Commons-Lizenz „CC0 1.0 Verzicht auf das Copyright“ zur Verfügung gestellt.
Die Person, die das Werk mit diesem Dokument verbunden hat, übergibt dieses weltweit der Gemeinfreiheit, indem sie alle Urheberrechte und damit verbundenen weiteren Rechte – im Rahmen der jeweils geltenden gesetzlichen Bestimmungen – aufgibt. Das Werk kann – selbst für kommerzielle Zwecke – kopiert, modifiziert und weiterverteilt werden, ohne hierfür um Erlaubnis bitten zu müssen.

Kurzbeschreibungen

Ergänze eine einzeilige Erklärung, was diese Datei darstellt.

In dieser Datei abgebildete Objekte

Motiv

image/gif

Dateiversionen

Klicke auf einen Zeitpunkt, um diese Version zu laden.

Version vomVorschaubildMaßeBenutzerKommentar
aktuell23:10, 10. Sep. 2021Vorschaubild der Version vom 23:10, 10. Sep. 2021800 × 800 (286 KB)Mornadd marker to current line
21:55, 10. Sep. 2021Vorschaubild der Version vom 21:55, 10. Sep. 2021800 × 800 (285 KB)Mornuse official mnemonics
15:26, 10. Sep. 2021Vorschaubild der Version vom 15:26, 10. Sep. 2021800 × 800 (297 KB)MornUploaded own work with UploadWizard

Die folgende Seite verwendet diese Datei:

Globale Dateiverwendung

Die nachfolgenden anderen Wikis verwenden diese Datei: