Zero to ASIC – Introduction

A few weeks ago I was given the opportunity to sign up for the Zero to ASIC course offered by Matthew Venn. This is a really exciting prospect as it is not every day that you get to design your own custom silicon! I had always though of chip design as one of those things that only big corporations filled with academics could do, which is the same way that I though of designing and building computers until a few years ago. Looking through the syllabus for the course, though, it certainly looks like it is within reach for mere mortals like myself. At the end of it I can submit my design, and if I am lucky, I will end up with a few pieces of silicon with my own circuit on it.

Make-A-Chip software for ZX Spectrum

I will be updating this blog as I make my way through the course, highlighting anything of interest, or bits I struggle with, or giving some details about some of the choices I make. There will also be a series of interviews on YouTube after each section of the course where we discuss how things are going, what I’ve learned and maybe other stuff. The first episode is available on YouTube now;

So, the important question is what am I going to make? When the possibilities are almost endless, I had to narrow things down. I decided that I wanted to design something which I understood well enough to make out of 7400 series logic (So full CPU design is out), something that wasn’t just an off the shelf part (no point making just another RAM chip), and something which would benefit from the tiny size that this will give.

TIL311 Displays in a RC2014 Module

A few years ago I built the Bus Monitor board designed by Dr Scott M Baker. This uses the iconic TIL311 hexadecimal LED displays. These are absolutely beautiful, and also really easy to use as each display has the decoding on board to convert 4 bits of the bus to a 0-F hex display. They were very popular in the 1970s and used in all kinds of equipment. They have only two drawbacks as far as I can tell; they are very power hungry, being based on early LED technology, and they are rare/expensive as they were discontinued decades ago.

Microdot PHAT by Pimoroni

There is no direct equivalent available today. But there is, however, a LED matrix by Lite-On called the LTP-305. This has the aesthetic beauty of the TIL311, and is much more power efficient too. Sadly, though, this is just a simple 5×7 LED matrix so displaying the characters for 0-F from 4 bit input needs quite a bit of circuitry to drive it.

I have thought about this several times in the past, and making the logic needed to run a pair of LTP305 is going to be huge if using 7400 series DIP logic chips. It will be much smaller with an FPGA, although it would need some level shifters as the RC2014 bus runs at 5v and almost all FPGA have 3v3 (or lower) I/O pins.

But, what if there was a piece of silicon just a couple of mm square that could be on a PCB the same size as a couple of these displays, transforming them in to a plug in replacement for the TIL311? Wouldn’t that be cool? If you think so, then keep on checking in on this blog over the next few months to see how things are coming on.

Oh, and to answer some of the obvious questions, yes, I am fully aware that this proposed design will work out to be much more rare and much more expensive than the TIL311 displays. Which I already have. This is not about solving that part of the problem. If I just used TIL311 displays then I wouldn’t learn anything about ASIC design!

Yes, I am also aware of the Pixie boards from Lixie Labs. These solve a diferent problem, but are not what I am looking to do here. I also know about ReTIL too, which is solving basically the same problem but in a very different (and very cool) way.

Is my ROM blank?

I recently had a customer contact me to say his RC2014 kit was not working, and asked if the ROM had definitely been programmed. It is the first time I had been asked that, but despite sending out over 3000 ROMs so far without sending out a blank one yet, how could I be 100% sure that one hadn’t slipped through?

This question got me thinking. Obviously the easy answer is for the customer to put the ROM in an EPROM programmer and read it – but I don’t know if the customer has an EPROM programmer. Sending out a replacement ROM would normally be another option, but due to the Christmas shutdown, huge postal delays, and the customer being on a different continent, that wasn’t going to be a quick solution.

It turns out that there is a very simple way to prove the existence of something on the ROM. It won’t prove that the right image is on the ROM, or that there isn’t corruption on it, but it does answer the question of whether or not it has been programmed.

The theory is quite simple. Read the first byte of the ROM. A blank ROM will have 0xFF (0b11111111) in every location. The images for the RC2014 ROMs all start with either 0xF3 (0b11110011) or 0xC3 (0b10100011). So selecting address 0 should give either 11110011 or 10100011 on the datalines.

Thankfully, this is actually very simple in practice, and can be done with just 18 jumper cables! Firstly, remove all modules from the backplane except for the ROM Module. Set the three jumpers on the ROM Module to 0. To ground all the address lines, place a jumper cable from the Gnd pin on Slot 3 of the backplane to A0 on Slot 4. Then another from A0 on Slot 3 to A1 on Slot 4, and so on all the way up the address pins. RD and MREQ need to be held low too, so add a cable from Gnd on Slot 4 to MREQ on Slot 3, and from MREQ on Slot 4 to RD on Slot 3. Take a multimeter on its continuity setting and just confirm that A0-A15, MREQ and RD are all connected to ground.

Then swap your multimeter to DC voltage, connect power to the backplane, and read the voltages on D7 – D0. They should be a mixture of 0v and 5v that correlate to either 11110011 or 10100011. If they are all 5v, then it’s a pretty good assumption that the ROM has not been programmed!

Note that if you do not have jumper cables, then ordinary solid core wire can be used, or even humble paper clips! Alternatively, if you have a spare 40 way pin header, then soldering a wire across all the address lines to ground, and also connecting RD and MREQ to ground will also work.

This was written specifically for the RC2014 Classic, however the same applies to the RC2014 Classic ][, the RC2014 Plus and the RC2014 Pro. The theory also applies to the RC2014 Mini, although you will have to get a bit more creative with the wiring :-)

CrayZee Eighty

Ever wished that you had a Cray 1 Supercomputer? Ever wondered if an RC2014 backplane could wrap around a cylinder? Ever thought about how many retweets a Z80 drawing a Mandelbrot fractal could get? Ever had an idea that’s so daft, the only way to exorcise it is to do it? If so, would you like to Seymore…

Like most ideas in Lockdown, things started with a throwaway comment on Twitter and quickly escalated to laser cutting a toilet roll. I blame Shirley Knott

So, as a practical joke, the homage to the powerful Cray 1, and also the less powerful Rolodex worked surprisingly well. This inevitably lead to the question of making it work for real

Taking some measurements from the toilet roll, I laser cut a simple jig to hold 12 40 pin sockets around 270 degrees, with the intention of soldering wire from pin to pin in situ. This quickly demonstrated that it just wasn’t practical to get the soldering iron in such a tight area.

Another jig was made to hold the sockets at an even distance, and use brass wire to connect them up, with the intention of bending them around afterwards. This also became quickly apparent that it wasn’t going to work.

Luckily OSHPark offer a flex PCB option. I’ve been aware of this for a while, and wanted to try it, but there hadn’t been anything suitable within the RC2014 ecosystem. (Well, there have been requests for a Floppy Module, but I don’t think anybody actually wants a module which is floppy!). At $10 per square inch, it isn’t cheap, but, after a bit of KiCad work, the smallest 12 slot RC2014 backplane was ordered.

Soldering through hole components on to flex PCB is not easy, and 480 solder joints generate a lot of heat which will warp the plastic if it is not done carefully in a controlled manner. The Flex PCB was designed to fit the existing jigs, and when soldered up, it fitted perfectly!

Using the jig dimensions, I was able to 3D print a couple of end caps which held the slots in place and made things much more solid. I filled it with a bunch of spare modules and tested out if the backplane itself worked…

Huston we have a problem! Nothing came up when I plugged in a FTDI cable :-(

A few hours were wasted going down different rabbit holes chasing too many red herrings. The modules I’d put together essentially made up a RC2014 Zed, and were picked from some of my non-current module archive. What I’d forgotten about is that old versions of RomWBW which are built for use with a DS1302 RTC Module will hang for about 2 minutes on startup if the RTC cannot be found. So, in fact, it was all working perfectly, I just had to wait a little while after plugging in!

A quick upgrade to RomWBW v3.0.1 overcomes this problem, and should have been done right at the start!

To make things more Cray-like, I redesigned the end caps to be open at the top and bottom, and extended the lower one to support a laser cut skirt. One day this will house an IDE hard drive, but for now, it’s just there to mimic the bench seat on the Cray 1

The irony is not lost on me that the Pi Zero, which is only used to generate HDMI from serial data, is several orders of magnitude more powerful than the Cray 1, which is, itself, way more powerful than the Z80 which is calling all the shots!

There are no plans to release this as a product at this stage. The price would be too high to justify for a kit which really is not very practical at all.

RCade – An Arcade Cabinet For RC2014

Arcade cabinets are great.  For many of us they bring back memories of a wasted youth pumping in coins for an endorphin hit of flashy graphics, joystick wiggling and button mashing.  But what if your favorite games are text adventures like Zork, or Hitchhikers Guide To The Galaxy?  Or you get your adrenaline rush from writing code in BASIC?  Even Wordstar or DBASE II can get the blood pumping.

Well, recently Pimoroni relaunched their Picade cabinet, which is a desktop sized arcade cabinet designed to add a joystick, buttons, sound and screen to your Raspberry Pi to turn it in to a great little arcade emulator.  Luckily, it can easily be turned in to a home for your RC2014!

(more…)

BASIC, CP/M, RomWBW or Small Computer Monitor

There are currently 4 different operating systems supplied for the RC2014; BASIC, CP/M, RomWBW or Small Computer Monitor.  The ROM codes for these are R, K, 1, 2, 4, 6, 9, 88 or 1.512k.  See Decoding ROM Labels for clarification

BASIC

Microsoft BASIC 4.7 comes in 2 variations for the RC2014; 32k or 56k.  The 32k BASIC will run on the RC2014 Mini, RC2014 Classic, RC2014 Plus and RC2014 Pro, but 56k BASIC will only run on a RC2014 Pro or an expanded Classic or Plus.

This particular implementation was modified from Nascom 2 BASIC by Grant Searle and has been used here with his kind permission.  The hardware specific code from the Nascom implemention has been stripped out to form a more generic BASIC, and a few extra commands have been added in.  Details on this can be found on Grant Searles website here; http://searle.x10host.com/z80/SimpleZ80.html#RomBasic

The source code can be found here for the 32k BASIC (“R”) and here for the 56k BASIC (“K”)as used in the RC2014 Mini and RC2014 Classic – both of which use a 68B50 ACIA.  The serial routine for the SIO/2 found in the RC2014 Plus and RC2014 Pro has been modified from Grants code and this can be downloaded from the Factory ROM GitHub page, designated as “2” for 32k and “4” for 56k.

The original Nascom 2 BASIC manual can be found here http://www.nascomhomepage.com/pdf/Basic.pdf

When you first boot in to BASIC, you are greeted with

Z80 SBC By Grant Searle

Memory top?

Simply hit return to accept the full amount of memory.  You will then see the following prompt

Z80 BASIC Ver 4.7b
Copyright (C) 1978 by Microsoft
56958 Bytes free          (Or 32382 Bytes free for 32k BASIC)
Ok

You’re now running BASIC!

CP/M

The RC2014 Pro runs CP/M as standard, or a CP/M Upgrade Kit can be added to the RC2014 Classic or RC2014 Plus.  The variation supplied is CP/M 2.2 and, as with BASIC, this has been modified by Grant Searle and is used with his kind permission.

The CP/M Monitor has been modified to allow it to be used with the Pageable ROM Module and CP/M itself has been modified for either the 68B50 ACIA (“1”) or SIO/2 UART (“6”).  Note that the CP/M Monitor runs from ROM as the RC2014 is booted up, and CP/M runs from the compact flash after it has been invoked from the Monitor.

The original files can be found on Grant Searles website http://searle.x10host.com/cpm/index.html#ROMFiles

The RC2014 modifications can be found on GitHub https://github.com/RC2014Z80/RC2014/tree/master/CPM

When you boot up the RC2014 you are greeted by the following message;

Press [SPACE] to activate console

This is sent out to both Port A and Port B on the SIO/2 serial module, or sent out twice on the 68B50 serial module.

After hitting space, you have the following prompt

Z80 SBC Boot ROM 1.1 by G. Searle
Type ? for options

Typing ? will give you the following options

R – Reset
BC or BW – ROM BASIC Cold or Warm
X – Boot CP/M (load $D000-$FFFF from disk)
:nnnnnn… – Load Intel-Hex file record

Note that on the RC2014, the BC and BW options are not active.  If you wish to run BASIC, you can change the jumpers on the ROM module, or download BASIC for CP/M.  Using BASIC under CP/M gives you the ability to load and save programs from the CF card, which is unavailable for ROM based BASIC

Hit the X key, followed by Y and you are in to CP/M

Z80 CP/M BIOS 1.0 by G. Searle 2007-13
CP/M 2.2 Copyright 1979 (c) by Digital Research
A>

RomWBW

RomWBW is available for any RC2014 model which has the 512k ROM 512k RAM Module upgrade.  It can use the Compact Flash Module for storage, and also supports IDE drives, floppy drives and RTC.  RomWBW was written by Wayne Warthen and used on the RC2014 with his kind permission.

RomWBW is a ROM-based implementation of CP/M-80 2.2 and Z-System for all RetroBrew Computers Z80/Z180 hardware platforms including SBC 1/2, Zeta 1/2, N8, Mark IV, and RC2014. Virtually all RetroBrew hardware is supported including floppy, hard disk (IDE, CF Card, SD Card), Video, and keyboard. VT-100 terminal emulation is built-in.

The RomWBW ROM loads and runs the built-in operating systems directlyfrom the ROM and includes a selection of standard/useful applicationsaccessed via a ROM disk drive. A RAM disk drive is also providedto allow temporary file storage.

Pre-built ROM images are included for all platforms. Detailed system customization is achieved by making simple modifications to a configuration file and running a build script to generate a custom ROM image. All source and build tools are included in the distribution. As distributed, the build scripts run under any modern 32 or 64 bit version of Microsoft Windows.

For full details, see https://github.com/wwarthen/RomWBW/releases

Small Computer Monitor

Small Computer Monitor was written by Steve Cousins and has been tested extensively on all variants of the RC2014 excluding the 512k RomWBW. It is used here with Steve Cousins kind permission. Full information, as well as user guides, tutorials and reference sheets can be found https://smallcomputercentral.com/projects/small-computer-monitor/

SCM has been designed to work with 32k, 56k or 64k of RAM, and either the 68B50 or SIO/2 serial module.

In it’s simplest form, it is a basic machine code monitor for the Z80 CPU.  It features an inline assmebler and disassembler, can examine or set registers, can set breakpoints or run single step, or load Intel .hex file.  In short, it is everything that you need to develop on the RC2014

Two variations are supplied on RC2014 ROMs.  “9” is an 8k image that will run on any RC2014.  Simply set the 3 address jumpers for the ROM all high.  When you boot you will be greeted by the following prompt

Small Computer Monitor – RC2014

Typing a ? or HELP will bring up the help screen, which shows the commands available

*?
Small Computer Monitor by Stephen C Cousins (www.scc.me.uk)
Version 1.0.0 configuration R1 for Z80 based RC2014 systems

Monitor commands:
A [<address>] = Assemble | D [<address>] = Disassemble
M [<address>] = Memory display | E [<address>] = Edit memory
R [<name>] = Registers/edit | F [<name>] = Flags/edit
B [<address>] = Breakpoint | S [<address>] = Single step
I <port> = Input from port | O <port> <data> = Output to port
G [<address>] = Go to program
BAUD <device> <rate> | CONSOLE <device>
FILL <start> <end> <byte> | API <function> [<A>] [<DE>]
DEVICES, DIR, HELP, RESET

The 2nd variation has the designation “88” and is a 16k ROM for use on the RC2014 Pro.  This works exactly the same as the “9”, but includes a BASIC and CP/M loader;

*?
Small Computer Monitor by Stephen C Cousins (www.scc.me.uk)
Version 1.0.0 configuration R4 for Z80 based RC2014 systems

Monitor commands:
A [<address>] = Assemble | D [<address>] = Disassemble
M [<address>] = Memory display | E [<address>] = Edit memory
R [<name>] = Registers/edit | F [<name>] = Flags/edit
B [<address>] = Breakpoint | S [<address>] = Single step
I <port> = Input from port | O <port> <data> = Output to port
G [<address>] = Go to program
BAUD <device> <rate> | CONSOLE <device>
FILL <start> <end> <byte> | API <function> [<A>] [<DE>]
DEVICES, DIR, HELP, RESET
BASIC Grant Searle’s adaptation of Microsoft BASIC
WBASIC Warm start BASIC (retains BASIC program)
CPM Load CP/M from Compact Flash (requires prepared CF card)
*CPM

Z80 CP/M BIOS 1.0 by G. Searle 2007-13

CP/M 2.2 Copyright 1979 (c) by Digital Research

A>

Typing BASIC, WBASIC or CPM at the prompt will boot in to the appropriate operating system as shown above.

Retro Challenge 2017/10 – Returning to Zork

After what felt like a lot of aimless bumbling around and poor progress on the first streamed game of Zork, I decided to take a peek at a walkthrough solution before playing this.

The last live stream finished off with me getting frustrated with not being able to undo a bolt at the Dam, despite having a wrench.  A peek at the walkthrough mentioned pushing a yellow button in the control room first.  Really?  Like, how was I supposed to know that?  Ok, I’ll admit that I hadn’t spotted any of the buttons in the control room (there was a lot of text bombarding me as I arrived in there), but if I had, I would have probably pushed all the buttons.  I don’t know if you must push only the yellow one, or if pushing them all would render the bolt still unturnable, but if this is the level of puzzle I’m supposed to solve, then it’s unlikely that I’m going to make too much progress after this part.

So, instead, I decided to print off the first couple of pages of the walkthrough, and planned to just follow along with it.

The live stream started at 7pm on Thursday evening, and the set up was the same as the previous one.  The only difference was that I’ve now upgraded from the free version of Wirecast to a licence one with no interruptions.  There was 5 viewers on YouTube and 4 on the text stream, although towards the end I spotted a tweet from a viewer that was unable to connect to the text stream (Sorry!), but I never found out if it was a problem at my end or his.

The first thing I wanted to do was test out the instructions on pushing the yellow button before undoing the bolt.  Sure enough, this worked!  However, there were a few other things that I’d missed out between the start and the dam.  I could have possibly caught up with those in a different order, but decided to quit this game and start afresh.

Progress went well, and within an hour I had completed around 50% of the game.  Some of the walkthrough was invaluable.  I can imagine I’d have ended up stuck in the maze for ever, and probably unable to map it too, but when the walkthrough tells you to just go northwest, south, west, up, west, southwest, and northeast, it is much more enjoyable.  Even following along on the map this was hard to work out.

I feel like I’ve successfully completed the Retro Challenge I set myself, and I’m happy that things went pretty well.  As I’ve mentioned before, I’m not much of a text adventurer, and I don’t think this experience has changed that.  Zork was actually better than I thought it would be, and at some point I’ll play through the 2nd half of the walkthrough.  The best part for me, however, was the technical side of things, and hooking up an ESP8266 as a wifi link for the RC2014.  There seems to be a few different bits of ESP8266 software that will add value to the RC2014, so I’ll be developing a proper ESP8266 Module soon.

A big thanks to those that have followed along with this blog, via Twitter, and, of course, via YouTube and the text stream.

Transcript of this adventure here;

ZORK1

ZORK I: The Great Underground Empire
Copyright (c) 1981, 1982, 1983 Infocom, Inc. All rights
reserved.
ZORK is a registered t
>RESTORE
Load SAVE disk then enter file name.
(default file name is ZORK1.SAV).
Type <ENTER> to continue  > ZORK1.SAV

Load Game Disk if it was removed.
Type <ENTER> to continue >
Failed.

>RESTORE
Load SAVE disk then enter file name.
(default file name is ZORK1.SAV).
Type <ENTER> to continue  > 

Load Game Disk if it was removed.
Type <ENTER> to continue >
Failed.

>QUIT
Your score is 0 (total of 350 points), in 0 moves.
This gives you the rank of Beginner.
Do you wish to leave the game? (Y iY

G>DIR

G: ZORK1    COM : ZORK1    DAT : ZORK2    COM : ZORK2    DAT
G: ZORK3    COM : ZORK3    DAT : FIRSTGO     
G>L ZORK1

ZORK I: The Great Underground Empire
Copyright (c) 1981, 1982, 1983 Infocom, Inc. All rights
reserved.
ZORK is a registered tRESTORE FIRSTGO
I don't know the word "firstgo".

>RESTORE
Load SAVE disk then enter file name.
(default file name is ZORK1.SAV).
Type <ENTER> to continue  > FIRSTGO

Load Game Disk if it was removed.
Type <ENTER> to continue >

Ok.

>LOOK
Dam
You are standing on the top of the Flood Control Dam #3, which
was quite a tourist attraction in times far distant. Thered dam.
There is a control panel here, on which a large metal bolt is
mounted. Directly above the bolt is a small green plastic
buLOOK
Dam
You are standing on the top of the Flood Control Dam #3, which
was quite a tourist attraction in times far distant. There are
paths to the nortThe brown sack contains:
  A leaflet
  A ZORK owner's manual
  A clove of garlic
There is a tour guidebook here.
There is a
>N
Dam Lobby

>N
Maintenance Room

>LOOK
Maintenance Room
This is what appears to have been the maintenance room for
Flood Control Dam #3. Apparently, this room has PUSH YELLOW BUTTON
Click.

>
I beg your pardon?

>S
Dam Lobby

>S
Dam
You are standing on the top of the Flood Control Dam #3, which
was quite a tourist attraction in timesI
You are carrying:
  A sword
  A tube
  A wrench
  A matchbook
  A pile of plastic
  A nasty knife
  A brass lantern (prUSE WRENCH ON BOLT
I don't know the word "use".

>UNSCREW BOLT
I don't know the word "unscrew".

>UB NBOLT WRENCH
I don't know the word "unbolt".

>TURN BOLT
What do you want to turn the bolt with?

>TURN BOLT WITH WRENCH
The sluice gates open and water pours through the dam.

>E
Dam Base

>LOOK
Dam Base
You are at the base of Flood Control Dam #3, which looms above
you and to the north. The river Frigid is flowing by here.
AlonE
You can't go that way.

>S DIAG
I don't know the word "diag".

>DIAGNOSTIC
You are in perfect health.
You can be killed by a serious wound.

>SAVE
Load SAVE disk then enter file name.
(default file name is FIRSTGO.).
Type <ENTER> to continue  > FIRSTGO2

Load Game Disk if it was removed.
Type <ENTER> to continue >

Ok.

>RESTART
Your score is 44 (total of 350 points), in 156 moves.
This gives you the rank of Amateur Adventurer.
Do you wish to restartY
Restarting.
ZORK I: The Great Underground Empire
Copyright (c) 1981, 1982, 1983 Infocom, Inc. All rights
reserved.
ZORK iOPEN MAILBOX
Opening the small mailbox reveals a leaflet.

>GET LEAFLET
Taken.

>READ LEAFLET
"WELCOME TO ZORK!

ZORK is a game of adventure, danger, and low cunning. In it
you will explore some of the most amazing terrN
North of House
You are facing the north side of a white house. There is no
door here, and all the windows are boarded up. ToN
Forest Path
This is a path winding through a dimly lit forest. The path
heads north-south here. One particularly large tree UP
Up a Tree
You are about 10 feet above the ground nestled among some
large branches. The nearest branch above you is above yourGET EGG
Taken.

>OPEN EGG
You have neither the tools nor the expertise.

>D
Forest Path

>E
Forest
This is a dimly lit forest, with large trees all around.

>W
Forest Path

>S
North of House

>E
Behind House
You are behind the white house. A path leads into the forest
to the east. In one corner of the house there is aOPEN WINDOW
With great effort, you open the window far enough to allow
entry.

>ENTER WINDOW
Kitchen
You are in the kitchen of the white house. A table seems to
have been used recently for the preparation of food. A p
>GET SACK
Taken.

>GET BOTTLE
Taken.

>OPEN SACK
Opening the brown sack reveals a lunch, and a clove of garlic.

>EAT GARLIC
What the heck! You won't make friends this way, but nobody
around here is too friendly anyhow. Gulp!

>W
Living Room
You are in the living room. There is a doorway to the east, a
wooden door with strange gothic lettering to the wOPEN TROPHY CASE
Opened.

>GET SWORD
Taken.

>GET LAMP
Taken.

>REMOVE RUG
The rug is extremely heavy and cannot be carried.

>PULL UP RUG
With a great effort, the rug is moved to one side of the room,
revealing the dusty cover of a closed trap door.

>OPEN TRAPDOOR
The door reluctantly opens to reveal a rickety staircase
descending into darkness.

>DOWN
You have moved into a dark place.
The trap door crashes shut, and you hear someone barring it.

It is pitch black. You are
>LIGHT THE LAMP
The brass lantern is now on.

Cellar
You are in a dark and damp cellar with a narrow passageway
leading north, and a crawlwaDROP EGG
Dropped.

>SAVE
Load SAVE disk then enter file name.
(default file name is ZORK1.).
Type <ENTER> to continue  > 2NDGO.SAV

Load Game Disk if it was removed.
Type <ENTER> to continue >

Ok.

>N
The Troll Room
This is a small room with passages to the east and south and a
forbidding hole leading west. Bloodstains andATTACK TROLL
(with the sword)
A quick stroke, but the troll is on guard.
The troll swings; the blade turns on your armor but crashes
broadATTACK TROLL
(with the sword)
You are still recovering from that last blow, so your attack
is ineffective.
The troll swings his axe, but i
>ATTACK TROLL
(with the sword)
The haft of your sword knocks out the troll.

>ATTACK TROLL
(with the sword)
The unarmed troll cannot defend himself: He dies.
Almost as soon as the troll breathes his last breath, a cloud
of sinister blDIAGNOSTIC
You are in perfect health.
You can be killed by a serious wound.

>SAVE
Load SAVE disk then enter file name.
(default file name is 2NDGO.SAV).
Type <ENTER> to continue  > 

Load Game Disk if it was removed.
Type <ENTER> to continue >

Ok.

>W
Maze
This is part of a maze of twisty little passages, all alike.
A "lean and hungry" gentleman just wandered through, carrying
a large bag. Finding nothing of value, he left disgruntled.

>W
Maze
This is part of a maze of twisty little passages, all alike.

>U
You can't go that way.

>W
Maze
This is part of a maze of twisty little passages, all alike.

>U
Maze
This is part of a maze of twisty little passages, all alike. A
skeleton, probably the remains of a luckless adventurer,
>GET COINS
Taken.

>GET KEY
Taken.

>SW
Maze
This is part of a maze of twisty little passages, all alike.

>E
Maze
This is part of a maze of twisty little passages, all alike.

>S
Maze
This is part of a maze of twisty little passages, all alike.
Your sword is glowing with a faint blue glow.

>SE
Cyclops Room
This room has an exit on the northwest, and a staircase
leading up.
A cyclops, who looks prepared to eat horses (much less merI
You are carrying:
  A skeleton key
  A leather bag of coins
  A brass lantern (providing light)
  A sword
  A glass bottlOPEN SACK
It is already open.

>TAKE LUNCH
Taken.

>GIVE LUNH CH TO Y\CYCLOPS
I don't know the word "y\cyclops".

>GIVE LUNCH TO CYCLOPS
The cyclops says "Mmm Mmm. I love hot peppers! But oh, could I
use a drink. Perhaps I could drink the blood of that thing." 
FOPEN BOTTLE
Opened.
The cyclops is moving about the room, looking for something.

>GIVE WATER TO CYCLOPS
The cyclops takes the bottle, checks that it's open, and
drinks the water. A moment later, he lets out a yawn that
nearly blI
You are carrying:
  A skeleton key
  A leather bag of coins
  A brass lantern (providing light)
  A sword
  A brown sack
NW
Maze
This is part of a maze of twisty little passages, all alike.
Your sword is glowing with a faint blue glow.

>S
Maze
This is part of a maze of twisty little passages, all alike.
Your sword is no longer glowing.

>W
Maze
This is part of a maze of twisty little passages, all alike.

>U
Maze
This is part of a maze of twisty little passages, all alike.

>W
Maze
This is part of a maze of twisty little passages, all alike.

>SW
Maze
This is part of a maze of twisty little passages, all alike.

>NE
Grating Room
You are in a small room near the maze. There are twisty
passages in the immediate vicinity.
Above you is a gra
>UNLOCK GRATING
(with the skeleton key)
The grate is unlocked.

>OPEN GRATING
The grating opens to reveal trees above you.
A pile of leaves falls onto your head and to the ground.

>UP
Clearing
You are in a clearing, with a forest surrounding you on all
sides. A path leads south.
There is an open grating, dW
Forest
This is a forest, with trees in all directions. To the east,
there appears to be sunlight.
You hear in the distanceW
You would need a machete to go further west.

>LOOK
Forest
This is a forest, with trees in all directions. To the east,
there appears to be sunlight.

>E
Forest Path
You hear in the distance the chirping of a song bird.

>LOOK
Forest Path
This is a path winding through a dimly lit forest. The path
heads north-south here. One particularly large tree E
Forest

>W
Forest Path

>S
North of House

>E
Behind House

>ENTER WINDOW
Kitchen

>W
Living Room

>OPEN TROPHY   CASE
It is already open.

>PUT COINS IN TROPHY CASE
Done.

>DROP KEY
Dropped.

>DROP BOTTLE
You don't have that!

>I
You are carrying:
  A brass lantern (providing light)
  A sword
  A brown sack
  A leaflet

>OPEN TRAPDOOR
The door reluctantly opens to reveal a rickety staircase
descending into darkness.

>D
Cellar
There is a jewel-encrusted egg here.

>S
East of Chasm
You are on the east edge of a chasm, the bottom of which
cannot be seen. A narrow passage goes north, and theE
Gallery
This is an art gallery. Most of the paintings have been stolen
by vandals with exceptional taste. The vandals left tGET PAINTING
Taken.

>W
East of Chasm

>N
Cellar
There is a jewel-encrusted egg here.

>U
Living Room
There is a skeleton key here.
Your collection of treasures consists of:
    A leather bag of coins

>PUT PAINTING IN TROPHY CASE
Done.

>D
Cellar
There is a jewel-encrusted egg here.

>N
The Troll Room
There is a bloody axe here.

>E
East-West Passage
This is a narrow east-west passageway. There is a narrow
stairway leading down at the north end of the rooE
Round Room
This is a circular stone room with passages in all directions.
Several of them have unfortunately been blocked byE
Loud Room
This is a large room with a ceiling which cannot be detected
from the ground. There is a narrow passage from east GET BAR
bar bar ...

>LOOK
look look ...

>GET BAR BAR BLACKSHEEP
blacksheep blacksheep ...

>BAR BAR BARBRANNE!
barbranne! barbranne! ...

>ECHO
The acoustics of the room change subtly.

Loud Room
On the ground is a large platinum bar.

>GET PLATINUM BAR
Taken.

>W
Round Room

>W
East-West Passage

>W
The Troll Room
There is a bloody axe here.

>S
Cellar
There is a jewel-encrusted egg here.

>U
Living Room
There is a skeleton key here.
Your collection of treasures consists of:
    A painting
    A leather bag of coins

>PUT PLATINUM BAR IN TROPHY CASE
Done.

>LOOK
Living Room
You are in the living room. There is a doorway to the east, a
wooden door with strange gothic lettering to the wD
Cellar
There is a jewel-encrusted egg here.

>N
The Troll Room
There is a bloody axe here.

>E
East-West Passage

>E
Round Room

>E
Loud Room

>N
You can't go that way.

>U
Deep Canyon
You are on the south edge of a deep canyon. Passages lead off
to the east, northwest and southwest. A stairway l
>E
Dam
You are standing on the top of the Flood Control Dam #3, which
was quite a tourist attraction in times far distant. TherN
Dam Lobby
This room appears to have been the waiting room for groups
touring the dam. There are open doorways here to the noGET B \ MATCHBOOK
Taken.

>READ MATCHBOOK

(Close cover before striking)

YOU too can make BIG MONEY in the exciting field of PAPER
SHUFFLING!

Mr. Anderson of MuddREAD MATCHBOOK

(Close cover before striking)

YOU too can make BIG MONEY in the exciting field of PAPER
SHUFFLING!

Mr. Anderson of M
I beg your pardon?

>READ MATCHBOOK

(Close cover before striking)

YOU too can make BIG MONEY in the exciting field of PAPER
SHUFFLING!

Mr. Anderson of Mupromising future and make really big Zorkmids."

GUE Tech can't promise these fantastic results to everyone.
But when you earN
Maintenance Room
This is what appears to have been the maintenance room for
Flood Control Dam #3. Apparently, this room hasPUSH YELLOW BUTTON
Click.

>GET WRENCH
Taken.

>S
Dam Lobby
Some guidebooks entitled "Flood Control Dam #3" are on the
reception desk.

>S
Dam
You are standing on the top of the Flood Control Dam #3, which
was quite a tourist attraction in times far distant. TherTURN BOLT
(with the wrench)
The sluice gates open and water pours through the dam.

>DROP WRENCH
Dropped.

>W
Reservoir South
You are in a long room. To the north is a large lake, too deep
to cross. You notice, however, that the water lLOOK
Reservoir South
You are in a long room. To the north is a large lake, too deep
to cross. You notice, however, that the watsouthwest along the edge of a chasm, and a
path leading into a canyon to the southeast.

>WAIT
Time passes...

>LOOK
Reservoir South
You are in a long room. To the north is a large lake, too deep
to cross. You notice, however, that the wat
>WAIT
Time passes...

>LOOK
Reservoir South
You are in a long room. To the north is a large lake, too deep
to cross. You notice, however, that the wateThe water level is now quite low here and you could easily
cross over to the other side.

>WAIT
Time passes...

>LOOK
Reservoir South
You are in a long room, to the north of which was formerly a
lake. However, with the water level lowered, thWAIT
Time passes...

>LOOK
Reservoir South
You are in a long room, to the north of which was formerly a
lake. However, with the water level lowered, t
>SAVE
Load SAVE disk then enter file name.
(default file name is 2NDGO.SAV).
Type <ENTER> to continue  > 

Load Game Disk if it was removed.
Type <ENTER> to continue >

Ok.

>LOOK
Reservoir South
You are in a long room, to the north of which was formerly a
lake. However, with the water level lowered, thSA\  TATUS
I don't know the word "status".

>SCORE
Your score is 85 (total of 350 points), in 131 moves.
This gives you the rank of Novice Adventurer.

>LOOK
Reservoir South
You are in a long room, to the north of which was formerly a
lake. However, with the water level loweredWAIT
Time passes...

>LOOK
Reservoir South
You are in a long room, to the north of which was formerly a
lake. However, with the water level lowered, tLOOK
Reservoir South
You are in a long room, to the north of which was formerly a
lake. However, with the water level loweredWAIT
Time passes...

>LOOK
Reservoir South
You are in a long room, to the north of which was formerly a
lake. However, witN
Reservoir
You are on what used to be a large lake, but which is now a
large mud pile. There are "shores" to the north and sGET TRUNK
Taken.

>I
You are carrying:
  A trunk of jewels
  A matchbook
  A brass lantern (providing light)
  A sword
  A brown sack
  A leaS
Reservoir South

>SW
Chasm
A chasm runs southwest to northeast and the path follows it.
You are on the south side of the chasm, where a crack opeSW
East-West Passage

>W
The Troll Room
There is a bloody axe here.

>S
Cellar

>U
Living Room
There is a skeleton key here.
Your collection of treasures consists of:
    A platinum bar
    A painting
   PUT JEWELS IN TROPHY CABINET
I don't know the word "cabinet".

>PUT JEWELS IN TROPHY CASE
Done.

>SCORE
Your score is 105 (total of 350 points), in 148 moves.
This gives you the rank of Junior Adventurer.

>SAVE
Load SAVE disk then enter file name.
(default file name is 2NDGO.SAV).
Type <ENTER> to continue  > 

Load Game Disk if it was removed.
Type <ENTER> to continue >

Ok.

>D
Cellar

>N
The Troll Room
There is a bloody axe here.

>E
East-West Passage

>N
Chasm

>NE
Reservoir South

>N
Reservoir

>N
Reservoir North
You are in a large cavernous room, the south of which was
formerly a lake. However, with the water level lowerGET AIR PUMP
That sentence isn't one I recognize.

>GET PUMP
Taken.

>N
Atlantis Room
This is an ancient room, long under water. There is an exit to
the south and a staircase leading up.
On the sGET GET\    TRIDENT
Taken.

>U
Cave
This is a tiny cave with entrances west and north, and a
staircase leading down.

>N
Mirror Room
You are in a large square room with tall ceilings. On the
south wall is an enormous mirror which fills the enti
>LOOK IN MIRROR
There is an ugly person staring back at you.

>N
Cold Passage
This is a cold and damp corridor where a long east-west
passageway turns into a southward path.

>W
Slide Room
This is a small chamber, which appears to have been part of a
coal mine. On the south wall of the chamber the let
>D
Cellar

>U
Living Room
There is a skeleton key here.
Your collection of treasures consists of:
    A trunk of jewels
    A platinum bPUT TRIDENT IN TROPHY CASE
Done.

>SCORE
Your score is 120 (total of 350 points), in 166 moves.
This gives you the rank of Junior Adventurer.

>SAVE
Load SAVE disk then enter file name.
(default file name is 2NDGO.SAV).
Type <ENTER> to continue  > 

Load Game Disk if it was removed.
Type <ENTER> to continue >

Ok.

>E
Kitchen

>U
Attic
This is the attic. The only exit is a stairway leading down.
A large coil of rope is lying in the corner.
On a table isGET ROPE
Taken.

>D
Kitchen

>W
Living Room
There is a skeleton key here.
Your collection of treasures consists of:
    A crystal trident
D
Cellar

>N
The Troll Room
There is a bloody axe here.

>E
East-West Passage

>E
Round Room

>SE
Engravings Cave
You have entered a low cave with passages leading northwest
and east.
There are old engravings on the walls
>E LOOK AT ENGRAVINGS
The engravings were incised in the living rock of the cave
wall by an unknown hand. They depict, in symbolic form, the
beli
>E
Dome Room
You are at the periphery of a large dome, which forms the
ceiling of another room below. Protecting you from a
precipitous drop is a wooden railing which circles the dome.

>TIE ROPE TO T RAILING
The rope drops over the side and comes within ten feet of the
floor.

>D
Torch Room
This is a large room with a prominent doorway leading to a
down staircase. Above you is a large dome. Up around Sitting on the pedestal is a flaming torch, made of ivory.

>GET FLAMING TORCH
Taken.

>TURN OFF LAMP
The brass lantern is now off.

>LOOK
Torch Room
This is a large room with a prominent doorway leading to a
down staircase. Above you is a large dome. Up around t
>S
Temple
This is the north end of a large temple. On the east wall is
an ancient inscription, probably a prayer in a long-forThere is a brass bell here.

>I
You are carrying:
  A torch (providing light)
  A hand-held air pump
  A matchbook
  A brass lantern
  A sword
  A browDROP PUMP
Dropped.

>DROP MATCHBOOK
Dropped.

>DROP LANTERN
Dropped.

>FROP
I don't know the word "frop".

>DROP SWORD
Dropped.

>DROP SACK
Dropped.

>DROO P LEAFLET
Dropped.

>LOOK
Temple
This is the north end of a large temple. On the east wall is
an ancient inscription, probably a prayer in a long-for
>I
You are carrying:
  A torch (providing light)

>SAVE
Load SAVE disk then enter file name.
(default file name is 2NDGO.SAV).
Type <ENTER> to continue  > 

Load Game Disk if it was removed.
Type <ENTER> to continue >

Ok.

>E
Egyptian Room
This is a room which looks like an Egyptian tomb. There is an
ascending staircase to the west.
The solid-goldLOOK AT COFFIN
The gold coffin is closed.

>OPEN COFFIN
The gold coffin opens.
A sceptre, possibly that of ancient Egypt itself, is in the
coffin. The sceptre is ornamented with coloTAKE SCEPTRE
Taken.

>W
Temple
A small leaflet is on the ground.
There is a brown sack here.
There is a sword here.
There is a brass lantern (battS
Altar
This is the south end of a large temple. In front of you is
what appears to be an altar. In one corner is a small holePRAY
Forest

>E
Forest Path

>S
North of House

>E
Behind House

>ENTER WINDOW
Kitchen

>W
Living Room
There is a skeleton key here.
Your collection of treasures consists of:
    A crystal trident
    A trunk of jPUT SCEPTE\RE IN TROPHY CASE
Done.

>SCORE
Your score is 144 (total of 350 points), in 206 moves.
This gives you the rank of Junior Adventurer.

>SAVE
Load SAVE disk then enter file name.
(default file name is 2NDGO.SAV).
Type <ENTER> to continue  > 

Load Game Disk if it was removed.
Type <ENTER> to continue >

Ok.

>D
Cellar

>N
The Troll Room
There is a bloody axe here.

>E
East-West Passage

>E
Round Room

>SW E
Engravings Cave
There are old engravings on the walls here.

>E
Dome Room

>D
Torch Room

>S
Temple
A small leaflet is on the ground.
There is a brown sack here.
There is a sword here.
There is a brass lantern (battGET MATCHN BOOK
Taken.

>GET BELL
Taken.

>OPEN MATCHBOOK
You have 5 matches.

>S
Altar
On the two ends of the altar are burning candles.
On the altar is a large black book, open to page 569.

>GET CANDLES
Taken.

>GET BOOK
Taken.

>I
You are carrying:
  A black book
  A pair of candles (providing light)
  A brass bell
  A matchbook
  A torch (providing TURN OFF CABL\   NDE LES
The flame is extinguished.

>D
Cave
This is a tiny cave with entrances west and north, and a dark,
forbidding staircase leading down.
Someone carrying a larD
Entrance to Hades
You are outside a large gateway, on which is inscribed

  Abandon every hope all ye who enter here!

Th
>RING BELL
The bell suddenly becomes red hot and falls to the ground. The
wraiths, as if paralyzed, stop their jeering and slowly turn
 expression of a
long-forgotten terror takes shape.
In your confusion, the candles drop to the ground (and they
are out).

>GET CANDLES
Taken.

>LIGHT MATCH
One of the matches starts to burn.

>LIGHT CANN DLE
(with the match)
The candles are lit.
The flames flicker wildly and appear to dance. The earth
beneath your feet trembles, I
You are carrying:
  A pair of candles (providing light)
  A black book
  A matchbook
  A torch (providing light)

>LOOK AT BOOK
Commandment #12592

Oh ye who go about saying unto each:  "Hello sailor":
Dost thou know the magnitude of thy sin before thTURN OFF CAB NDLES
The flame is extinguished.

>DROP BOOK
Dropped.

>LOOK
Entrance to Hades
You are outside a large gateway, on which is inscribed

  Abandon every hope all ye who enter here!

ThSAVE
Load SAVE disk then enter file name.
(default file name is 2NDGO.SAV).
Type <ENTER> to continue  > 

Load Game Disk if it was removed.
Type <ENTER> to continue >

Ok.

>SCORE
Your score is 144 (total of 350 points), in 233 moves.
This gives you the rank of Junior Adventurer.

>EXIT
You can't go that way.

>QUIT
Your score is 144 (total of 350 points), in 234 moves.
This gives you the rank of Junior Adventurer.
Do you wish to leave tY

G>

If you need to watch the YouTube stream, it can be found here https://youtu.be/K-Kv5saIHyE

Retro Challenge 2017/10 Zork First Stream

At 7pm UK time on Sunday (yesterday), I did the first Zork live stream.  This post is going to look back at how this went, from a technical point of view, from my point of view as a new YouTube streamer, and from the point of view of a non-adventure gamer playing Zork for the first time.

There was two aspects to the hardware.  The RC2014 running Zork was almost completely stand-alone.  It had it’s own keyboard and monitor, and the only connection to the outside world was via the ESP8266 module.  The ESP connected to the internet over Wifi, and streamed everything that was sent to the monitor via web sockets.  The Tx line from the ESP also went to a laptop so that I could monitor how many connections were open.

The laptop was also running Wirecast, and streaming it’s webcam and microphone to a live (live-ish.  About a 10 second delay) YouTube feed.  I could then talk, mumble, gesture, or use the chat feature, as well as read the chat messages as they came in.

Overall, this worked reasonably well – however there were a few things that could have been better.  About 20 minutes in, there were a couple of people complaining that they couldn’t connect to the text stream from the ESP.  The 3 people still connected were ok and getting updates, but nobody else could connect.  After a reboot everyone could connect and I was streaming to an audience of 5.  There was a report of odd characters being sent, although I think this was only when I used the delete key, which couldn’t be displayed properly in the live feed.  Also, there was still the issue with some lines being truncated.  If anybody viewing has kept a transcript, it will be interesting to compare with my transcript to see if they are both truncating at the same point (indicating a dropout between the web socket server and the ESP), or if they are different (indicating a dropout between the web socket server and the viewer)

I felt a bit awkward on YouTube.  It was kind of odd, and I couldn’t quite decide if I should just be playing Zork on my own and ignoring everyone looking over my shoulder – or if I should be ‘performing’ for the audience and involving them more.  As someone that isn’t that comfortable in front of the camera, and not good at text adventure games, I am beginning to question my life choices that lead to me narrating my fumbling through a troll filled underworld live on YouTube :-/

Although I had loaded up Zork a few times in the past, I had never gone further than randomly typing in directions, or going in to the house.  So I really was treading new ground here.  One of the things that surprised me for a 40 year old game is just how large the place is, and how much is going on.  I didn’t realise that there would be other characters that moved around, stole things from you and dropped things in different rooms.

The first game didn’t last too long, after picking a fight with the thief left me injured and a troll finished me off.  So I restarted the game, and decided to take a different approach in attacking the thief – but was surprised to find he wasn’t where he was in the previous game.

I did find myself questioning my motives here though.  Basically, I broke in to somebodys house, took all of their possessions, and tried to kill the first person I met.  I should be asking myself who the bad guy is in this game!

I had downloaded a map from the internet to make things a little bit easier for me.  It saved me from trying to go in directions that didn’t exist, and meant that I didn’t have to map things out for myself as I went along.  However it didn’t mean that I could just get to where I thought I wanted to go.  For example, once I went downstairs from the house, I couldn’t get back up again.  Well, one way up was up an unclimbable slope, one was up through the trap door that was locked behind me (probably by the house owner after I stole his lunch), and the stairs to the kitchen could only be climbed if I dropped most of what I was carrying.

Eventually I ended up at the Dam, and there was a control panel with a bolt and a green bubble on it.  In the Maintenance Room I found a wrench.  Also a tube of magical gunk.  So, surely these things were all related, and something good would happen if I could remove the bolt.  But no matter what combination of words I used, it just wouldn’t do anything.

I’d been playing for an hour by this time, so decided to call it a day for now.  I’ll resume again soon, although I can’t promise that I won’t have looked up how to remove the bolt before I try again :)

A transcript of my adventure can is below

G>ZORK1

ZORK I: The Great Underground Empire
Copyright (c) 1981, 1982, 1983 Infocom, Inc. All rights
reserved.
ZORK is a registered tn field west of a white house, with
a boarded front door.
There is a small mailbox here.

>OPEN MAILBOX
Opening the small mailbox reveals a leaflet.

>READ LEAFLET
(Taken)
"WELCOME TO ZORK!

ZORK is a game of adventure, danger, and low cunning. In it
you will explore some of the most ama
>SOUTH
South of House
You are facing the south side of a white house. There is no
door here, and all the windows are boarded.

>EAST
Behind House
You are behind the white house. A path leads into the forest
to the east. In one corner of the house there is a small
window which is slightly ajar.

>OPEN WINDOW
With great effort, you open the window far enough to allow
entry.

>ENTER WINDOW
Kitchen
You are in the kitchen of the white house. A table seems to
have been used recently for the preparation of food. A pasing on the table.
The glass bottle contains:
  A quantity of water

>GET BOTTLE
Taken.

>UP
You have moved into a dark place.
It is pitch black. You are likely to be eaten by a grue.

>DOWN
Kitchen
On the table is an elongated brown sack, smelling of hot
peppers.

>WEST
Living Room
You are in the living room. There is a doorway to the east, a
wooden door with strange gothic lettering to the wes
>GET LANTERN
Taken.

>OPEN TROPHY CASE
Opened.

>GET SWORD
Taken.

>I
You are carrying:
  A sword
  A brass lantern
  A glass bottle
  The glass bottle contains:
    A quantity of water
  A le
>W
The door is nailed shut.

>E
Kitchen
On the table is an elongated brown sack, smelling of hot
peppers.

>UP
You have moved into a dark place.
It is pitch black. You are likely to be eaten by a grue.

>USE LAMP
I don't know the word "use".

>TURN ON LAMP
The brass lantern is now on.

Attic
This is the attic. The only exit is a stairway leading down.
A large coil of rope is lying in the corner.
On a table is
>GET ALL
nasty knife: Taken.
rope: Taken.

>I
You are carrying:
  A rope
  A nasty knife
  A sword
  A brass lantern (providing light)
  A glass bottle
  The glass bott
>I
You are carrying:
  A rope
  A nasty knife
  A sword
  A brass lantern (providing light)
  A glass bottle
  The glass bottle contains:
    A quantity of
>I
You are carrying:
  A rope
  A nasty knife
  A sword
  A brass lantern (providing light)
  A glass bottle
  The glass bottle contains:
    A quantity of water
  A lea
>LOOK
Attic
This is the attic. The only exit is a stairway leading down.
There is a table here.

>D
Kitchen
On the table is an elongated brown sack, smelling of hot
peppers.

>W
Living Room

>D
You can't go that way.

>LOOK
Living Room
You are in the living room. There is a doorway to the east, a
wooden door with strange gothic lettering to the wes
>GET RUG
The rug is extremely heavy and cannot be carried.

>LIFT RUG
The rug is too heavy to lift, but in trying to take it you
have noticed an irregularity beneath it.

>MOVE RUG
With a great effort, the rug is moved to one side of the room,
revealing the dusty cover of a closed trap door.

>OPEN TRAP DOOR
The door reluctantly opens to reveal a rickety staircase
descending into darkness.

>DOWN
The trap door crashes shut, and you hear someone barring it.

Cellar
You are in a dark and damp cellar with a narrow passageway
leading north, and a crawlway to the south. On the wes
>S
East of Chasm
You are on the east edge of a chasm, the bottom of which
cannot be seen. A narrow passage goes north, and the pa
>E
Gallery
This is an art gallery. Most of the paintings have been stolen
by vandals with exceptional taste. The vandals left thr
>GET PAINTING
Taken.

>I
You are carrying:
  A painting
  A rope
  A nasty knife
  A sword
  A brass lantern (providing light)
  A glass bottle
  The glass bottle contains:
    A
>N
Studio
This appears to have been an artist's studio. The walls and
floors are splattered with paints of 69 different colors.

>GET PAPER
Taken.
Someone carrying a large bag is casually leaning against one
of the walls here. He does not speak, but it is clear fromaspect that the bag will be taken only over his dead body.
Your sword has begun to glow very brightly.

>TALK TO MAN
The thief is a strong, silent type.
The thief pauses for a moment, perhaps thinking that you
should re-read the manual.

>KILL THEIF
I don't know the word "theif".

>KILL MAN
What do you want to kill the man with?

>KILL MAN WITH KINDNESS
I don't know the word "kindness".

>L\KILL MAN WITH SWRO  OW RD
I don't know the word "l\kill".

>KILL MAN WITH SWR ORD
The thief is confused and can't fight back.
The thief slowly regains his feet.

>G
You charge, but the thief jumps nimbly aside.
The stiletto flashes faster than you can follow, and blood
wells from your leg.

>G
Your stroke lands, but it was only the flat of the blade.
The thief just left, still carrying his large bag. You may not
have 
>I
You are carrying:
  A ZORK owner's manual
  A rope
  A nasty knife
  A brass lantern (providing light)
  A glass bottle
  The glass bottle contains:
    A quantity o
>KILL MAN WITH KNIFE
You can't see any man here!

>LOOK
Studio
This appears to have been an artist's studio. The walls and
floors are splattered with paints of 69 different colors.
Strangel
>U
You can't get up there with what you're carrying.

>WESW T
You can't go that way.

>S
Gallery

>LOOK
Gallery
This is an art gallery. Most of the paintings have been stolen
by vandals with exceptional taste. The vandals left t
>W
East of Chasm

>N
Cellar

>UP
The trap door is closed.

>S
East of Chasm

>W
You can't go that way.

>N E
Gallery

>N
Studio

>UP
You can't get up there with what you're carrying.

>I
You are carrying:
  A ZORK owner's manual
  A rope
  A nasty knife
  A brass lantern (providing light)
  A glass bottle
  The glass bottle contains:
    A quantity of water
 
>READ MANUAL

Congratulations!

You are the privileged owner of ZORK I: The Great Underground
Empire, a self-contained and self-maintainie operation.



>READ LEAFLET
"WELCOME TO ZORK!

ZORK is a game of adventure, danger, and low cunning. In it
you will explore some of the most amazing terr
>DROP LEAFLET
Dropped.

>DROP MANUAL
Dropped.

>UP
You can't get up there with what you're carrying.

>DROP ROPE
Dropped.

>DROP BOTTLE
Dropped.

>UP
Kitchen
On the table is an elongated brown sack, smelling of hot
peppers.

>GET SACK
Taken.

>D
Only Santa Claus climbs down chimneys.

>W
Living Room

>OPEN DOOR
Which door do you mean, the wooden door or the trap door?

>OPEN TRAP DOOR
The door reluctantly opens to reveal a rickety staircase
descending into darkness.

>D
The trap door crashes shut, and you hear someone barring it.

Cellar

>S
East of Chasm

>E
Gallery

>N
Studio
There is a glass bottle here.
The glass bottle contains:
  A quantity of water
There is a rope here.
There is a ZORK owner's manual here.
A small
>GET ALL
glass bottle: Taken.
rope: Taken.
ZORK owner's manual: Taken.
leaflet: Taken.

>I
You are carrying:
  A leaflet
  A ZORK owner's manual
  A rope
  A glass bottle
  The glass bottle contains:
    A quantit  A brass lantern (providing light)

>U
You can't get up there with what you're carrying.

>S
Gallery

>W
East of Chasm

>N
Cellar

>N
The Troll Room
This is a small room with passages to the east and south and a
forbidding hole leading west. Bloodstains and de
>TALK TO TROLL
The troll isn't much of a conversationalist.
The troll pauses for a moment, perhaps thinking that you
should re-read the manua
>LOOK
The Troll Room
This is a small room with passages to the east and south and a
forbidding hole leading west. Bloodstains and de
>E
The troll fends you off with a menacing gesture.

>S
Cellar

>W
You try to ascend the ramp, but it is impossible, and you
slide back down.

>
I beg your pardon?



//////////////////////////////////////////////////////////////////////

This is where I reset the ESP8266 and waited for everyone to reconnect

//////////////////////////////////////////////////////////////////////


Connected to Serial on 192.168.0.14

I beg your pardon?

>I
You are carrying:
  A leaflet
  A ZORK owner's manual
  A rope
  A glass bottle
  The glass bottle contains:
    A quant
>I
You are carrying:
  A leaflet
  A ZORK owner's manual
  A rope
  A glass bottle
  The glass bottle contains:
    A quant  A nasty knife
  A brass lantern (providing light)

>LOOK
Cellar
You are in a dark and damp cellar with a narrow passageway
leading north, and a crawlway to the south. On the west is
I beg your pardon?

>
I beg your pardon?

>I
You are carrying:
  A leaflet
  A ZORK owner's manual
  A rope
  A glass bottle
  The glass bottle contains:
    A quantity of water
  A brown sack
  A nasty knife
  A brass lantern (providing light)

>
I beg your pardon?

>LOOK
Cellar
You are in a dark and damp cellar with a narrow passageway
leading north, and a crawlway to the south. On the west is tUSE ROPE
I don't know the word "use".

>ROPE
There was no verb in that sentence!

>CLIMB WITH ROPE
That would involve quite a contortion!

>N
The Troll Room
A nasty-looking troll, brandishing a bloody axe, blocks all
passages out of the room.
The flat of the troll'Conquering his fears, the troll puts you to death.
It appears that that last blow was too much for you. I'm
afraid you are deaRESTART
Your score is 29 (total of 350 points), in 91 moves.
This gives you the rank of Amateur Adventurer.
Do you wish to restart? 

>RESTART
Your score is 29 (total of 350 points), in 91 moves.
This gives you the rank of Amateur Adventurer.
Do you wish to restart? Y
Restarting.
ZORK I: The Great Underground Empire
Copyright (c) 1981, 1982, 1983 Infocom, Inc. All rights
reserved.
ZORK is a registered tOPEN MAILBOX
Opening the small mailbox reveals a leaflet.

>GET LEAFLET
Taken.

>S
South of House
You are facing the south side of a white house. There is no
door here, and all the windows are boarded.

>E
Behind House
You are behind the white house. A path leads into the forest
to the east. In one corner of the house there is a sOPEN WINDOW
With great effort, you open the window far enough to allow
entry.

>ENTER WINDOW
Kitchen
You are in the kitchen of the white house. A table seems to
have been used recently for the preparation of food. A pas
>GET BOTTLE
Taken.

>GET SACK
Taken.

>W
Living Room
You are in the living room. There is a doorway to the east, a
wooden door with strange gothic lettering to the w
>GET LAMP
Taken.

>OPEN TROPHY CASE
Opened.

>GET SWORD
Taken.

>E
Kitchen

>U
You have moved into a dark place.
It is pitch black. You are likely to be eaten by a grue.

>LIGHT LAMP
The brass lantern is now on.

Attic
This is the attic. The only exit is a stairway leading down.
A large coil of rope is lyi
>GET ROPE
Taken.

>GET KNIFE
Taken.

>D
Kitchen

>W
Living Room

>MOVE RUG
With a great effort, the rug is moved to one side of the room,
revealing the dusty cover of a closed trap door.

>OPEN TRAP DOOR
The door reluctantly opens to reveal a rickety staircase
descending into darkness.

>DOWN
The trap door crashes shut, and you hear someone barring it.

Cellar
You are in a dark and damp cellar with a narrow passagewS
East of Chasm
You are on the east edge of a chasm, the bottom of which
cannot be seen. A narrow passage goes north, and the paE
Gallery
This is an art gallery. Most of the paintings have been stolen
by vandals with exceptional taste. The vandals left tainting of unparalleled beauty.

>GET PAINTING
Your load is too heavy.

>GET PAINTING
Your load is too heavy.

>N
Studio
This appears to have been an artist's studio. The walls and
floors are splattered with paints of 69 different colors.
GET PAPER
Taken.

>READ PAPER

Congratulations!

You are the privileged owner of ZORK I: The Great Underground
Empire, a self-contained and self-maintaiDROP PAPER
Dropped.

>DROP LEAFLET
Dropped.

>S
Gallery
Fortunately, there is still one chance for you to be a vandal,
for on the far wall is a painting of unparalleled bea
>GET PAINTING
Your load is too heavy.

>I
You are carrying:
  A nasty knife
  A rope
  A sword
  A brass lantern (providing light)
  A brown sack
  A glass bottle
>DROP SWO   ROPE
Dropped.

>GET PAINTING
Taken.

>GET ROE PE
Your load is too heavy.

>N
Studio
A small leaflet is on the ground.
There is a ZORK owner's manual here.
A seedy-looking individual with a large bag just wandered
through the room. On the way through, he quietly abstracted
some valI
You are carrying:
  A nasty knife
  A sword
  A brass lantern (providing light)
  A brown sack
  A glass bottle
  The gl
>U
You can't get up there with what you're carrying.

>DROP BOTTLE
Dropped.

>UP
You can't get up there with what you're carrying.

>DROP SACK
Dropped.

>UP
You can't get up there with what you're carrying.

>GET ALL
brown sack: Taken.
glass bottle: Taken.
leaflet: Taken.
ZORK owner's manual: Taken.

>PUT ALL IN SACK
ZORK owner's manual: The brown sack isn't open.
leaflet: The brown sack isn't open.
glass bottle: The brown sack isn't open.

>OPEN SACK
Opening the brown sack reveals a lunch, and a clove of garlic.

>PUT ALL IN SACK
ZORK owner's manual: Done.
leaflet: There's no room.
glass bottle: There's no room.
brown sack: How can you do that?
nasty knife: There's no room.
sword:

>EAT U LUNCH
Thank you very much. It really hit the spot.

>PUT ALL IN SACK
leaflet: Done.
glass bottle: There's no room.
brown sack: How can you do that?
nasty knife: There's no room.
sword: There's brass lantern: There's no room.

>U
You can't get up there with what you're carrying.

>I
You are carrying:
  A glass bottle
  The glass bottle contains:
    A quantity of water
  A brown sack
  The brown sack c
>DRINK WATER
You'll have to open the glass bottle first.

>I OPEN BOTTLE
Opened.

>DRINK WATER
Thank you very much. I was rather thirsty (from all this
talking, probably).

>DROP BOTTLE
Dropped.

>U
You can't get up there with what you're carrying.

>I
You are carrying:
  A brown sack
  The brown sack contains:
    A leaflet
    A ZORK owner's manual
    A clove of garlic
S
Gallery
There is a rope here.

>W
East of Chasm

>N
Cellar
Your sword is glowing with a faint blue glow.

>N
The Troll Room
This is a small room with passages to the east and south and a
forbidding hole leading west. Bloodstains and deFIGHT TROLL WITH SWORD
Your sword crashes down, knocking the troll into dreamland.

>E
East-West Passage
This is a narrow east-west passageway. There is a narrow
stairway leading down at the north end of the roo
>E
Round Room
This is a circular stone room with passages in all directions.
Several of them have unfortunately been blocked by
>E
Loud Room
This is a large room with a ceiling which cannot be detected
from the ground. There is a narrow passage from east toGET BAR
bar bar ...

>I
i i ...

>
I beg your pardon?

>GET BAR
bar bar ...

>BARBRAANN
barbraann barbraann ...

>GET BAR
bar bar ...

>BAR BAR
bar bar ...

>BLACK SHEEP
sheep sheep ...

>GET BAR BAR
bar bar ...

>I
i i ...

>I
i i ...

>I
i i ...

>W
Round Room

>N
North-South Passage
This is a high north-south passage, which forks to the
northeast.

>NE
Deep Canyon
You are on the south edge of a deep canyon. Passages lead off
to the east, northwest and southwest. A stairway lNW
Reservoir South
You are in a long room on the south shore of a large lake, far
too deep and wide for crossing.
There is a p
>W
Stream View
You are standing on a path beside a gently flowing stream. The
path follows the stream, which flows from west toN
You can't go that way.

>W
The stream emerges from a spot too small for you to enter.

>W E
Reservoir South

>E
Dam
You are standing on the top of the Flood Control Dam #3, which
was quite a tourist attraction in times far distant. Ther
>GET BUBBLE
It is an integral part of the control panel.

>P EXAMINE BUBBLE
There's nothing special about the green bubble.

>EXAMINE BOLT
There's nothing special about the bolt.

>GET BOLT
It is an integral part of the control panel.

>GET BOLT
It is an integral part of the control panel.

>OXY OFF CONTROL PANEL
I don't know the word "oxy".

>I
You are carrying:
  A brown sack
  The brown sack contains:
    A leaflet
    A ZORK owner's manual
    A clove of garlic
HIT BOLT WOT  ITH SWORD
I've known strange people, but fighting a bolt?

>E
Dam Base
You are at the base of Flood Control Dam #3, which looms above
you and to the north. The river Frigid is flowing by
>GET PLASTIC
Taken.

>EXAMINE PLASTIC
There's nothing special about the pile of plastic.

>N
Dam

>LOOK
Dam
You are standing on the top of the Flood Control Dam #3, which
was quite a tourist attraction in times far distant. Ther>USE PLASTIC ON BUBBLE
I don't know the word "use".

>PUT PLASTIC ON BUBBLE
There's no good surface on the green bubble.

>GET BUBBLE
It is an integral part of the control panel.

>EXAMINE BUBBLE
There's nothing special about the green bubble.

>N
Dam Lobby
This room appears to have been the waiting room for groups
touring the dam. There are open doorways here to the no
>GET B MATCHBOOK
Taken.

>EXAMINE MATCHBOOK
The matchbook isn't very interesting, except for what's
written on it.

>READ MATCHBOOK

(Close cover before striking)

YOU too can make BIG MONEY in the exciting field of PAPER
SHUFFLING!

Mr. Anderson of MuddG

(Close cover before striking)

YOU too can make BIG MONEY in the exciting field of PAPER
SHUFFLING!

Mr. Anderson of MuddG

(Close cover before striking)

YOU too can make BIG MONEY in the exciting field of PAPER
SHUFFLING!

Mr. Anderson of MuTech I feel really important and can obfuscate and confuse
with the best."

Dr. Blank had this to say: "Ten short days ago alN
Maintenance Room
This is what appears to have been the maintenance room for
Flood Control Dam #3. Apparently, this room hasGET ALL
group of tool chests: The chests are so rusty and corroded
that they crumble when you touch them.
wrench: Your load is too hI
You are carrying:
  A screwdriver
  A matchbook
  A pile of plastic
  A brown sack
  The brown sack contains:
    A leaDROP W SWORD
Dropped.

>TURN OFF LAP MP
The brass lantern is now off.
It is now pitch black.

>DROP LA       LIGHT LAMP
The brass lantern is now on.

Maintenance Room
This is what appears to have been the maintenance room for
Flood Control Dam #3. Apparently, this room has GET WRENCH
Taken.

>S
Dam Lobby
Some guidebooks entitled "Flood Control Dam #3" are on the
reception desk.

>S GET GUIDEBOOKS
Taken.

>S
Dam

>LOOK
Dam
You are standing on the top of the Flood Control Dam #3, which
was quite a tourist attraction in times far distant. 
>U REMOVE BOLT WITH WRENCH
That sentence isn't one I recognize.

>UNDO BOLT WITH WRENCH
I don't know the word "undo".

>TAKE BOLT WITH WRENCH
That sentence isn't one I recognize.

>TAKE BOLT
It is an integral part of the control panel.

>UNSCREW BOLT WITH WRENCH
I don't know the word "unscrew".

>I
You are carrying:
  A tour guidebook
  A wrench
  A screwdriver
  A matchbook
  A pile of plastic
  A brown sack
  The READ GUIDEBOOK
" Flood Control Dam #3

FCD#3 was constructed in year 783 of the Great Underground
Empire to harness the mighty Frigid RiPUSH BOLT
Pushing the bolt isn't notably helpful.

>PULL BOLT
You can't move the bolt.

>MOVE BOLT WITH WRENCH
The bolt won't turn with your best effort.

>N
Dam Lobby

>N
Maintenance Room
There is a sword here.
There is an object which looks like a tube of toothpaste here.

>EXAMINE TOOTHA\  PASTE
I don't know the word "toothpaste".

>EXAMINE TUBE
---> Frobozz Magic Gunk Company <---
   All-Purpose Gunk

>GET TUBE
Taken.

>GET SWORD
Your load is too heavy.

>S
Dam Lobby

>S
Dam

>PUT GUNK ON BOLT
You don't have that!

>I
You are carrying:
  A tube
  A tour guidebook
  A wrench
  A screwdriver
  A matchbook
  A pile of plastic
  A brown sPUTTUB    TUBE ON BOLT
There's no good surface on the bolt.

>SQUEEZE TUBE ON BOLT
You can't do that.

>
I beg your pardon?

>EXAMINE TUBE
---> Frobozz Magic Gunk Company <---
   All-Purpose Gunk

>MAKE BOLT UNDO
I don't know the word "undo".

>MAKE BU OLT LOOSE WITH G TUBE OF GUNK
I don't know the word "loose".

>I
You are carrying:
  A tube
  A tour guidebook
  A wrench
  A screwdriver
  A matchbook
  A pile of plastic
  A brown sa  A brass lantern (providing light)

>LOOK
Dam
You are standing on the top of the Flood Control Dam #3, which
was quite a tourist attraction in times far distant. Thermounted. Directly above the bolt is a small green plastic
bubble.

>CUT BUBBLE WITH KNIFE
Strange concept, cutting the green bubble....

>TURN BOLT WTH    ITH WRENCH
The bolt won't turn with your best effort.

>PRESS BUBBLE
Pushing the green bubble has no effect.

>PU OUR TUBE ON BOLT
You can't pour that.

>DROP TUBE ON BOLT
There's no good surface on the bolt.
The robber, rummaging through his bag, dropped a few items he
found valueless.

>LOOK
Dam
You are standing on the top of the Flood Control Dam #3, which
was quite a tourist attraction in times far distant. TheThere is a sword here.

>GET SWORD
Your load is too heavy.

>DROP SCREWDRIVER
Dropped.

>GET SWORD
Your load is too heavy.

>I
You are carrying:
  A tube
  A tour guidebook
  A wrench
  A matchbook
  A pile of plastic
  A brown sack
  The brown sDROP GUIDEBOOK
Dropped.

>GET SWORD
Your load is too heavy.

>DROP SACK
Dropped.

>GET SWORD
Taken.

>GET D SACK
Your load is too heavy.

>LOOK
Dam
You are standing on the top of the Flood Control Dam #3, which
was quite a tourist attraction in times far distant. TheThere is a brown sack here.
The brown sack contains:
  A leaflet
  A ZORK owner's manual
  A clove of garlic
There is a touPRAY
If you pray enough, your prayers may be answered.

>SAVE
Load SAVE disk then enter file name.
(default file name is ZORK1.SAV).
Type <ENTER> to continue  > FIRSTGO

Load Game Disk if it was removed.
Type <ENTER> to continue >

Ok.

>

The YouTube stream can be found here https://youtu.be/Gdjq2Rb9y64 But, really, it’s probably not going to be one of those thing I expect anybody to sit through!

 

Retro Challenge 2017/10 – Live Zork Streaming Soon

Firstly, apologies that not much has happened recently.  I’ve been under the weather for the last few days, so only made minimal progress.  However, feeling a bit better, so Tonight I will try streaming Zork!

I am planning to go live at 7PM UK time tonight for around an hour (If you’re not in the UK, see this countdown timer).  If you missed it, I’m sorry – but I hope to have a transcript up soon, and will probably do it again shortly.

There will be a tweet beforehand with links to connect to, so if you don’t follow @ZXSpectROM on Twitter, click here to view

Essentially, there will be two aspects to the streaming.

  • Primarily, there will be a RC2014, running CP/M, with Zork on it.  This machine will have the ESP8266 Wifi bridge, and everything that is sent to the screen will also be sent to http://tzapu.github.io/WebSocketSerialMonitor/ via web sockets.  This machine will also be using one of the old parallel 80’s keyboards I investigated in the last Retro Challenge (It’s important to point this out so you’ll cut me some slack with all the inevitable typos that I know I’ll make with this keyboard layout).  This will be the live stream of Zork, which is essentially the goal of this Retro Challenge.
  • A live stream on YouTube will also take place.  Well, live-ish.  Apparently there’s a 10 second delay, so that might be a bit odd.  However, the main reason for this is to provide a feedback loop for those watching along at home via the YouTube Chat function.  I’ll have a laptop set up next to the RC2014 so I can see any comments as they come in.  So, if I forgot to pick up an object in a room, or you think I should go north instead of east, you can let me know.  It will be streaming video from a webcam too, but don’t expect that to be too exciting.  (Seriously, you’ll be watching a 40 year old ASCII based text adventure game being played by somebody that isn’t good at text adventure games, and the webcam footage will be LESS exciting!)

 

So, that’s the important stuff that you need to know to follow along tonight.

In other news, as I was happy enough with how the prototype PCB seems to be working, I’ve laid out a real board now.  The PCBs are currently being manufactured in China, although it isn’t looking likely that I’ll get them back before the end of this particular Retro Challenge.  But if I do, then expect an update here!  Here’s a sneaky peek at what they should look like though;

 

Retro Challenge 2017/10 Testing

The initial testing of the ESP8266 board with the RC2014 was pretty good, and fundamentally it worked.  However, it wasn’t quite right, and I suspected that the problem was to do with CR or LF.

The code I was using was found here; https://github.com/tzapu/WebSocketSerialMonitor (Thanks Tzapu!).  It uses web sockets, and allows an external web page to connect through to the ESP8266.  So, by going to http://tzapu.github.io/WebSocketSerialMonitor/ and connecting to ws://x.x.x.x:81/ws (where x.x.x.x is my external IP address and a firewall rule is set up to forward port 81 through to the internal address of the ESP) it will display everything the ESP receives on its Rx pin.  Well, almost everything, but not quie everything.

If, for example, I did a directory listing which was 2 full lines and a little bit more on the 3rd line, only the first 2 lines would show up.  If I’m playing Zork, sometimes it would show the whole chunk of text as it came in, other times it would miss the last line.

The code itself is fairly easy to read, although the complicated web sockets stuff is hidden away in libraries.  This is the part of the routine that reads the serial input until it detects a CR (the ‘\n’ part), where upon it then sends the line;

void serialEvent() {
  while (Serial.available()) {
    char inChar = (char)Serial.read();
    if (inChar == '\n') {
      stringComplete = true;
      return;
    } else {
      inputString += inChar;
    }
  }
}

I figured that adding a check for a LF would do the job;

if (inChar == '\n' || inChar == '\r') {

But, sadly, it didn’t.  If anything, it made it worse.  So, instead, I tried just reading a set amount of characters (10 initially) and sending them regardless of a CR or LF, but that didn’t work either.  When I got it to send every character without checking, it worked much much better, although if I sent a very large chunk of text it would miss random bits of it.

So, the problem seemed to be speed related.  The checking for CR was a nice idea by the original author, but it wasn’t something I needed, so time to strip out all the surplus code.  It went from this;

void serialEvent() {
  while (Serial.available()) {
    char inChar = (char)Serial.read();
    if (inChar == '\n') {
      stringComplete = true;
      return;
    } else {
      inputString += inChar;
    }
  }
}


void loop() {
  serialEvent();
  if (stringComplete) {
    
    String line = inputString;
       // clear the string:
    inputString = "";
    stringComplete = false;

    //line += '\n';
    webSocket.broadcastTXT(line);
    Serial.println(line);
  }
  webSocket.loop();
}

to this;

void serialEvent() {
  while (Serial.available()) {
    char inChar = (char)Serial.read();
    inputString += inChar;
  }
}

void loop(){
  serialEvent();
  webSocket.broadcastTXT(inputString);
  inputString="";
  webSocket.loop();
}

Much simpler, and it seemed to work perfectly!

All the testing up until this point was done either on my laptop or mobile.  Although they are on the same wifi network as the ESP, it’s connecting out to an external web page before coming back in, so it should be a reasonable test.  But there’s nothing like real people connecting in to really see if it works.  So, I put a shout out on Twitter, and on Saturday evening, 4 willing volunteers sat there watching me do random things on the RC2014.

Feedback was pretty good, and it all seemed to work as expected.  Thanks Thilo for this screenshot;

I messed about with simple programs in BASIC, directory listings, and the opening moves in Zork, with success.  In a moment of madness, I fired up Wordstar.  When the RC2014 is connected to a VT100 terminal, it works great by using escape codes to set where things are on the screen and what colours are used.  However, these escape codes don’t render at all well on the web sockets interface.  Thanks Dave for showing my just how bad it looked!

So, yes, I should have known that Wordstar would be pushing it a bit far.  But otherwise, I was very pleased with the performance.

The biggest problem I had, though, was that of feedback when interacting with the “audience”.  I could type short sentences in to Zork that the viewers would see and understand, even if the Zork engine couldn’t interpret it.  But, of course, there was no live feedback from the viewers.

I’m not sure what the solution to that will be, but it could be as simple as keeping Twitter open on my phone.  Alternatively, things like IRC or Slack could be used (although I don’t want viewers to have to jump through hoops to get connected to me).  Skype might be an option too, although, at the moment, I think it’s more likely I’ll set up a YouTube live stream and use the chat feature in that.

For those wondering about the set up that I’m using, it’s pretty much a stock RC2014 Pro with a Pi Serial Terminal and the ESP8266 prototype I built for this project.  The Pi Zero is connected via a HDMI > VGA adapter, and then to a 17″ monitor.  The keyboard is this Cherry keyboard from the last Retro Challenge.  Note that the key layout is sufficiently different from what I’m used to that typos aren’t too uncommon yet.

The laptop is there to program the ESP, and to monitor it’s output.

I am aiming to have a live run through on Friday, so that gives me a few days to look in to the feedback options.

Retro Challenge 2017/10 Getting Started

So, the idea of streaming the RC2014 to the internet had been rattling around in my head for a while, but I’d never quite worked out how the software side of things would work.  Although the hardware side should be kind of straightforward, with my software skills, I need to find something I can copy & paste.  A couple of days ago I just happened to put the right search terms in to Google and it gave a result that looked like it would do want I wanted.  So, with that, my plan for Retro Challenge took shape!

A couple of years ago I played around with some EPS8266 Wifi Modules, but never really found a use for them.  However, for this, they would be ideal.  The code I had found was a Web Sockets Serial Monitor designed specifically to run on an ESP8266, so I decided to test it out just to check that it did what I expected it would.

Several hours later, it did!  Those hours, however, were spent trying to remember how to program these things.  My desktop machine didn’t have any of the ESP stuff in the Arduino IDE, but luckily, I still have my old laptop that I used a couple of years ago.  Despite getting all the right libraries, it just wouldn’t compile.  So, on to the new laptop, with a fresh Arduino IDE and all the ESP stuff and libraries, and it compiles.  Getting it to upload, however, was another challenge which actually involved burning myself on the USB to serial adapter at one point!  It turns out that of the two I tried, one of them was dead, and the other one spammed my Twitter account ever time it’s turned on (I didn’t know this until checking Twitter later… what!  86 new mentions!).  It also turns out they need more power than the adapter can supply.  And, in order to program them, the ESP needs to be pushed in to the adapter really really really hard!

The programming jig wasn’t really suitable for testing things out, so time to transfer this to a prototype board.  But first, lets work out a circuit!  The programming jig has the necessary support components and minimal connections, so that’s a good start.  The ESP works on 3v3, so I’m going to need a regulator to drop the 5v down.  And the Rx pin is only 3v3 tolerant, so a couple of resistors as a voltage divider will work fine as a level shift here.  The Tx pin won’t be connecting to the RC2014, although even if it was needed, 3v3 is sufficient enough to work.  GPIO0 is used to either put the ESP in to programming mode or run mode.  2 of the other GPIO pins (15 and 2) were tide to ground and 3v3 respectively on the programming jig.  I can’t remember why I did that, but that won’t be needed for this board.

Before hooking up the ESP to the power rails, I checked that the regulator I used (spare one I had lying around) did it’s job.  Yup, 3.299v, close enough!  On with adding the rest of the stuff.

So, from left to right, we’ve got a connector for 3v3 so it can be powered directly if needed (or use 3v3 elsewhere), and an FTDI header for my 3v3 adapter so the ESP can be reprogrammed.  Then there’s a reset button, the 3v3 regulator and caps, then the ESP itself.  There’s a 10k pull up resistor on the reset pin, and a program/run jumper below the ESP.  As yet, the resistor divider for the Rx pin aren’t fitted.  But it should power up and work just as it did in the jig, right?

Ummm… no.  Regardless if I used the power regulator, or fed 3v3 in directly, out of the serial header all I got was gibberish.  It was consistent gibberish, but not something I could make any sense of.  Maybe I damaged the ESP when soldering the wires on?  Hmmmm… maybe I should program another one just in case.  Well, long story short, it needs GPIO15 connected to ground to work!  I can’t see any logic why this would need to be the case, but, whatever, it works now.

I needed to add a rule on the firewall to allow port 81 through to the IP address of the ESP, and after that, I could connect from the outside world and see what my RC2014 was saying!

Things work pretty well, although there’s some kind of issue with carriage returns and/or linefeeds that’s causing some stuff to be dropped, but that’s enough success for one day.  We’ll sort that out tomorrow!