Nerdcore per Mail

RSS Feed About Archive NC-Sources Impressum Datenschutz

Infocoms Text-Adventure Z-Machine implemented in CPU

Gepostet vor 1 Jahr, 6 Monaten in DIY feat Hardware Retrogames Textadventure

cpu

Das hier ist supernerdy, aber auch ganz ganz grandios, wenn man was mit den ollen Text-Adventures von Infocom (Zork, Hitchhikers Guide) und ein bisschen DIY-Hardware anfangen kann. Die legendäre Adventure-Schmiede Infocom hatte damals für den grade aufkommenden Heimcomputer-Markt eine Art Text-Adventure-Kernel namens Z-Machine programmiert, inklusive eigener Zork Implementation Language und Schnickschnack. Das hatten sie gemacht, weil die Hardware damals mit zuvielen Systemen daherkam und es unwirtschaftlich gewesen wäre, ihr Zork für jede der damals neuen Maschinen zu programmieren. Also haben sie die Z-Machine entwickelt und mussten nur noch Interpreter für alle Plattformen coden und hatten so eine komplett offene Text-Adventure-Engine für alle Systeme, die mit demselben Zork-Code programmiert werden konnten. Genius!

Und jetzt hat einer diese Engine mit ihrer Zork-Language genommen, die auf eine CPU gebacken und damit praktisch den ersten tatsächlich laufenden Computer aus einer virtuellen Text-Adventure-Engine gebaut, auf dem Zork, Hitchhiker und Planetfall nativ laufen, direkt mit dem Befehlssatz der CPU. W00t!

Und um das ganze komplett mindblowing zu machen: In der Zork-Language hat er dann als Easter Egg einen Mandelbrot-Generator und Space Invader programmiert. o_O! Die Z-Machine ist Turing Complete, weshalb man auf der CPU praktisch coden könnte. Fantastisch! Im Grunde ist das eine DIY-CPU zum Einrahmen für Liebhaber klassischer Text-Adventures. Ganz, ganz grandios!

Back in the very early 80s Infocom, the purveyor of very fine text based video games, when faced with the problems of porting their games to the plethora of home computers available back in the day invented a virtual machine optimised for running interactive fiction. Then interpreters were written for all the popular computers of the day so they could all run the same code.

This virtual machine was never meant to be implemented in hardware although now thanks to cheap FPGAs it can be! The Z-Machine CPU is written in Verilog and included here. So using a Cyclone II EP2C5 FPGA (~$10), a TFT LCD Arduino Shield (~$3), 512Kb 8-bit flash (~$2), 128Kb 8-bit SRAM (~$2) and a ADC ($2) you too could have a functioning Z-Machine system.[…] Z3 passes the "CZECH - Comprehensive Z-machine Emulation CHecker" by Amir Karger. And is known to run Zork I, Hitchhiker's Guide to the Galaxy, Planetfall and Curses (by Graham Nelson).

To provide some input/output a terminal is implemented in a BIOS (in Z-machine code) which exists in the ROM above 120Kb. The IO related opcodes (like @print) vector into the BIOS which provides the terminal. A small number of extra op codes were added so the BIOS could interface with an LCD touchscreen. Save/Restore isn't currently supported (as my hardware hasn't any storage) and is the only notable omission.

To compare the performance of the Z-Machine to other machines from around the same time. I ported the Dhrystone benchmark (and others) to Inform (a language for writing Z-Machine code). Using this benchmark the Z3 at 10MHz is around 0.93 DMIPS which is comparable to the performance of an Atari ST running native code.

The BIOS contains two easter eggs. By typing "invade" a fairly complete Space Invaders clone will start. Also "mandelbrot" draws a mandelbrot fractal.

Z3: A Verilog implementation of the Infocom Z-Machine V3. With BIOS and benchmarks. Verified in hardware. (via Hacker News)

More: DIY feat Hardware Retrogames Textadventure

13437394_852980701474156_105942614_n

Notizbuch-To-Do-List-Porn

I'm a sucker for Notizbücher. Ich hab ne Menge To-Do-Listen ausprobiert, von irgendwelchen IFTTT-Wunderlist-Hacks, Evernote, Google Tasks, whatevs. Alles scheiße. Digital nutze ich jetzt seit…

sound

Dude arrested for big ass Soundsystem

In Queens wurde ein Typ mit ’nem DIY-Soundsystem verhaftet, weil er seine Nachbarschaft volllärmte und das grade stattfindende Baseballspiel in einem Stadion übertönte, was natürlich…

luth1

Joy Divisions Unkown Pleasures made from Wood again

Heute vor 37. Jahren wurde das Album Unknown Pleasures von Joy Division veröffentlicht, passend zum Anlass hat die Schreinerei Luther eine neue Auflage ihres ganz…

adblock

Augmented Reality Offline-Adblocker

Neulich so ’ne Werbebutze in Dänemark: Ha ha, fuck you Adblockers, gehn’wa halt offline! Jonathan Dubin so: Ha ha, nope, Brandkiller, ein Realtime-Werbedetektor und Augmented…

mario

Nintendo Vans

Nintendo x Vans. Ich nehm die Mario Sk8-Highs, die psychedelic Goomba-Flip-Flops und die Pilz-Socken.

poetry

Hotspot Poetry

Nette Spielerei mit Fake-Poetry-WiFis von Dmitry „vtol“ Morozov aus Moskau: Autonomous micro-device which distributes wi-fi masked as wireless network, visible at any gadget such as…

arcade

Kowloon Arcade Walkthrough

In Japan gibt es (natürlich) eine Kowloon-Walled-City-themed Arcade-Halle. BeatdownBoogie waren dort uns sind mit einer Kamera durchgelatscht: Und apropos Abandoned Krams und Arcade: Vor ein…

flame

DIY-Flamethrower Guitar

Der Irre (Colin Furze) hat sich eine Flamethrower Guitar gebaut: Making of:

R-Type – The Anime

R-Type – The Anime

„This is an homage to arcade classic R-Type and 90’s anime - with each second of animation containing around 17 drawings. […] Animated and written…

visor01_cover

DIY-Illu-Zine Visor Berlin

Vor zweieinhalb Jahren bloggte ich über Philip Hölldoblers Illu-Zine „Berlin Scrawling“, jetzt ist das Sequel dazu erschienen: Visor Berlin out now! Visor Berlin contains 41…

socmedbros

ConnectedNES

Sweet, ein DIY-„Modem“ für's NES inklusive TwitterClient in einem modifizierten SuperMario-ROM von Rachel Weil. ConnectedNES is comprised of: a standard-issue Nintendo Entertainment System, ca. 1985,…