All articles tagged as:


TGL-6502 Hardware Design

In this post I describe the hardware design of the TGL-6502 emulator board. The full schematic is available in the GitHub repository (PDF), it might be worth opening it in another window for reference while reading this post. I started this project as a challenge to see how much I could get out of the 8 pin DIP version of LPC810 microcontroller from NXP. This is one of the few ARM based controllers available in DIP format (the only other one I know of is also from NXP - the LPC1114. Some time ago I bought a Adafruit LPC810 Starter Kit and then later a handful of discrete LPC810 chips to fill u…

Read more »

Programming the TGL-6502

This post describes how to develop software for my TGL-6502 emulator board. The most recent update to the GitHub repository includes a desktop implementation of the emulator software so you don't need to build the hardware to write and test programs. Overview This is going to be a very long post unfortunately so I thought a brief executive summary would be useful. My goal in this post is to describe how you can develop and test software targeted at my 6502 emulator - to achieve that I will describe how to; Compile a version of the TGL-6502 firmware that runs on a desktop computer (Linux or Win…

Read more »

A Simple Serial (I2C/SPI) EEPROM Programmer

This is a small ATtiny84 based device to program I2C and SPI EEPROM chips over a serial port. As usual all code and schematics are available in GitHub. Background The TGL-6502 project uses an SPI EEPROM (the Microchip 25AA1024) to simulate the ROM exposed to the 6502 processor. To get the content into the ROM I added a simple serial protocol to the TGL-6502 firmware but as the firmware grew this functionality had to be dropped to free up some of the limited flash memory so I had to find an alternative method. I considered using a generic tool such as the Bus Pirate to program the EEPROMS or ev…

Read more »

On the Importance of Patience

Using some patience and taking some extra time to double check things can save a lot of problems in the long run. This is one of those things that we all know we should be doing but often fail to do in practice. Here is a concrete example where failing to spend a little bit of extra time to double check things has wound up costing me an unknown but significant amount of time and money. Here is the story of how I broke my CNC machine through a sequence of events that I can only blame myself for. If you have been reading this site or following my Google+ posts you will know that I have recently…

Read more »

Introducing the TGL-6502 Single Board Computer

Here is a project I've been working on over the past few weeks - a 6502 compatible single board computer with 128K of RAM, 128K of ROM and an IO expansion port. The reason I call it 'compatible' is because the role of the 6502 processor is being played by an emulator running on a 8 pin LPC810 ARM Cortex-M0+ processor. The emulated processor supports all the official 6502 instructions (the undocumented instructions are treated as NOPs) and it is not a cycle accurate emulation. The entire emulator fits in the 4K flash on the LPC810. The project is not yet complete, at this stage it is capable of…

Read more »