Volatile was the key

A project log for Galaga meets IoT

ESP8266 captures high scores as they occur on a Galaga PCB from the Golden Age of Arcade

justin.richardsjustin.richards 11/30/2016 at 16:590 Comments

As per discussion suggestion, declared the array used by the interrupt routine as type *Volatile* .

The ESP8266 now behaves for the most. Just need to do some tidying up, make some boards etc. Will give them a bit of a polish and upload.

Have just uploaded rough schematic.

So in summary, the GAL16V8 triggers on matched addresses, which triggers the 273 to latch the data and also generate a interrupt to read the latched data.

The esp constantly scan writes to the bus for three consectutive spaces " . In GALASSCI this is char 0x24. Once it has a hit it waites a further 30 secs in anticipation that the high score initials are getting entered. It then processes the GALASSCI chars, converts to ascii and sends to web server for minor additional processing and displaying the time stamped high scores.