Just a quick update to about the SD Bootloader I designed a few posts ago. Well, the PCBs have arrived and last week I took a soldering iron to one of them and gave it a quick test
One side of the board is effectively an Arduino, so without plugging it in to the RC2014, I connected up an FTDI lead and uploaded the Arduino Blink sketch. A quick check with a multimeter and one of the pins was altenating between 5v and 0v. So far, all good! Continue Reading »
When Google first launched the Chromecast, I wanted one as it seemed like it would solve a lot of viewing problems for me. The trouble was, my “TV” (technically, it’s a 42″ monitor as it has no tuner) doesn’t have any HDMI sockets, so it would cause more issues than it would solve, and I figured it would be £30 wasted.
When the price was dropped to £18 recently though, I figured that was within the realms of wasteable money I was prepared to spend. My TV didn’t have HDMI, but it did have composite, RGB, SCART and VGA connections. Surely something would work…
So, the RC2014 is great. I can run Microsoft BASIC and program it from there, and as long as I am using a terminal emulator, I can copy & paste to save and load programs. Alternatively, I can write Z80 code using an online compiler then download it, copy it to USB stick, move it to my old Windows 2000 laptop (which has a parallel port) so I can burn it on to EPROM to see if it works, make adjustments and repeat with another EPROM.
I will be the first to admit, however, that this is probably not the most efficient workflow. Not to mention the time and effort involved in wiping the limited stock of aged EPROMS.
So, I am in the process of designing an SD Card based bootloader.
My original plan had never been to design and build my own computer. I had, however, planned to build a clone of the Sinclair ZX80, which has been on my bucket list of things to own for year, and which I had found plans for online. Whilst collecting the parts and reading up on simple Z80 computers I got kind of sidetracked and ended up with the RC2014.
The heart of the RC2014 is a Zilog Z80 CPU, which is the same one that Sinclair used in the ZX80, ZX81, ZX Spectrum and Z88. If the ZX81 and ZX Spectrum can run a ZX Printer, then surely it follows that the RC2014 will be able to too?
As a child growing up in the 1970s, I had no idea of what the future held. I didn’t know if Mr Benn would be able to get back from his adventures, or if Scooby Doo could catch the Evil Swamp Monster, or even if we were going through the round or square window in PlaySchool. But there were some things about the future that was pretty certain. We would all have robot butlers, go on holiday to the moon and drive electric cars!
So, as I drove to work this morning in my electric car, wondering when my moon tickets would drop through the letterbox, I realised that maybe, just maybe, I am already in the future Continue Reading »
Recently I’ve read a few posts about other peoples working environments, office setups, man caves or work benches. I’ve also had a couple of people ask about mine, since I tweeted about the redecoration and overhaul of my old “spare room” as it transformed in to “Man Cave 2.0″. I had intended to write it up when it was finished anyway, although, even now, 9 months later, it is still not finished, I am begining to realise that it will never actually be finished but will evolve and morph over time.
So, this is a look at the overall design and some of the finer detail in to my Man Cave 2.0 as it stands in August 2014 Continue Reading »
Some of you may remember that last year , after a regretful decision to ‘upgrade’ from Windows 7 to Windows 8 I decided to jump ship and switch over to Linux. Ubuntu 13.04 to be precise. I blogged about the install process here, and my first thoughts after a week here, with the intention of regular posts whenever something goes really good or really bad.
So, it’s 14 months later, and basically things have gone pretty good. Sure, there’s some things that aren’t just how I like them with Windows, but other bits that just seem to work really well. In defence of my lax blogging, I’d just say that I got on and used the computer as I expected I would. I got tripped up a couple of times, but Google and AskUbuntu.com always seem to put me back on the right track.
I have expanded my Linux network too. I was donated an old netbook last year that now runs Ubuntu 13.04 for an hourly Twitter job. The plan had been to test it on the netbook then set up a Raspberry Pi to run it, but the netbook is surplus, capable, cheap to run and it works – so why change. I have also bought myself a little HP server which I put Ubuntu Server 13.10 on, along with OwnCloud. This works like DropBox, and synchronises files between my main PC, phone, tablet, work computer and is available to me (albeit slowly) anywhere on the internet.
All in all, things have been ticking over quite nicely. Life has been happy in Linux land… until recently! Continue Reading »
I guess this is kind of a follow up to my Retro Challenge posts, as it was thoughts that stemmed from teaching myself Assembly Language for my Z80 project. Essentially it is a comparison between programming in the 70’s and today against building with Lego in the 70s and today.
But before I get stuck in, can you identify this famous TV family from a few crude Lego bricks? Continue Reading »
Wow! What an awesome month July has been. The whole Retro Challenge thing has been great, and despite moments of stress or despair, I have thoroughly enjoyed taking part and seeing what everyone else has been up to. Before I sum up my project, I should make a few honourable mentions.
Retro Challenge – A huge thanks to Mark and Wgoodf do a great job in hosting this twice a year. Keeping everyone updated via Twitter has worked really well. Cheers guys!
Grant Searle is responsible for the general Z80 design I used and also converted MS BASIC from the Nascom to run on this. Really, this project is a test of my understanding of Grants work and seeing how far I can take things.
Nottingham Hackspace has an amazing “parts bin” that included the LEDs, Veroboard, case, some of the logic chips and the RAM I used.
OSHPark did a great job (for a very good price!) on the PCBs – even if the postal system did keep me on the edge of my seat for a bit!
Chris Gammell introductions to KiCad PCB design videos were critical in guiding me through the various stages of board design.
Rodney Zaks book Programming the Z80 has been like a bible for me. Combined with a few dozen other resources of Z80 info on line I’ve been able to at least get the basics assembly language programming.
CLRHome is a great online Z80 IDE that can compile assembly language in a variety of output formats including for the ZX Spectrum. I doubt I could have managed this in notepad!
Despite a late start today, things have gone well so I actually feel like I’m ahead of the game right now. Certainly not finished, but with most of the major hurdles now behind me, the only thing left is writing a bit of Z80 assembler code. And even that is starting to look manageable.
So, exactly 3 weeks after they were ordered, the PCBs from OSHPark arrived today. It’s just as well, as I was running low on things to do without them, and with just 6 days left of the Retro Challenge I would have struggled to finish in time.
Sorry I’ve not made any updates for a couple of days, but there’s not been much of significance to report of late. Until today, that is. Although, as far as the PCBs I’m waiting for are concerned, the only news to report there is that there is no news to report. I will report tomorrow if there is news to report on this or not.
I have, however, been plodding away at teaching myself Z80 assembler language. And with some progress too! I’ve managed to pass the first major milestone with the code I’m writing to display text on the LED matrix displays! It basically, looks at some text stored in a memory location, then looks up each character in turn on the ASCII character map that I lifted from a ZX Spectrum ROM, and puts each line in every 5th byte in a different location. This new location is essentially a 40 byte screen map for the matrix
The mounting of the LED matrix has probably caused me the biggest turmoil so far on the Retro Challenge. First, I was going to design a custom PCB for them, but I missed the window of opportunity to get it manufactured at a reasonable price. So, for simplicity, I decided to use breadboard until I realised this wasn’t simple with that amount of wires. So, I went back to PCB design preparing to take the financial hit. However, it proved impossible to get the tracks to fit, so this idea went in the bin again. Back to breadboard, I bought a load of jumper cables, and started expanding on what I started earlier. For the driver chips it was ok. For the matrices themselves though, I came across a show stopper; The width of it is so wide that in the breadboard there are 2 free tie points on one side but just 1 on the other. Getting a data bus down all of them was not going to be possible :-(
So, I had a rummage through some vintage Veroboard and found a Euro-card sized board with chip layout tracks. It would only fit 5 modules side by side, but I was prepared to make that sacrifice. I also had some 40 pin female sockets, so that made life even easier!
just a quick update about my Z80 development environment.
If you look down a couple of blogs, you’ll see that I found an online Z80 emulator and I’d written a couple of bits that executed in it, so I was going to do my Z80 learning and development on that. However, there were two issues. The first being that it didn’t run on Chrome on my Linux PC at home (but did on Chrome on Windows at work). The second issue is that it isn’t a Z80 emulator, it’s a 8080 emulator. I didn’t think this would be a problem as they pretty much run the same instruction set, although the 8080 has a sub-set of the Z80 (well, technically, as the 8080 came first, the Z80 has an expanded instruction set), and I quite quickly came across an instruction that wasn’t supported. Bugger! That’s messed up that plan.
Then I remembered I have Fuse which is a ZX Spectrum emulator running on my Linux PC. There are oodles of menus and options which I’ve never looked at, but thought it worth a poke (no pun intended) about with.
We’re at the halfway mark of the Retro Challenge, and there’s a slight lull in activity, so this seems like a good chance to catch up on what’s been done so far, and what’s still to come.
Firstly, a quick review of the challenge I set myself; write my name in LED lights. These must, however, be controlled by a Z80 computer, which I’ve got to design and build myself, and written in assembly language which I need to learn.
Well, the start of the challenge saw me dive headlong in to KiCad, learning some of the intricacies of printed circuit board layout. I’d used KiCad for a couple of little projects before, but certainly wouldn’t have described myself as competent. I’m still not a master of it, but I’m a lot more familiar with it than I was.
I split my breadboard based Z80 down in to several modules, each of which will plug in to a Veroboard backplane. 6 of these have been designed and sent off for manufacture which will give me a basic Z80 computer that I can use via a terminal emulator. The boards are;
I knew there would be some stumbling blocks with this Retro Challenge, but, hey, it wouldn’t be a challenge if everything was just nice and simple. However, I seem to be beset by little stupid technical issues that aren’t necessarily retro in nature.
However, the fact that you’re reading this does at least mean that my blog is working again! I ran some updates last week, and it caused some issues with a plugin meaning I had no way of adding, editing or modifying any posts. I’ve now got that tracked down to the Poll plugin and disabled it. So, yay, I’m back!
So, part of this challenge is to use LEDs, and the little 8×8 matrix modules I found seem ideal. I had initially intended to design a PCB to mount a bunch of these on, but due to time constraints, it was looking very unlikely I’d get them designed, ordered, manufactured and delivered by the end of the month, let alone time for testing. So I decided to go Old Skool, and do this part on a breadboard. Well, 2 breadboards, as they each need a driver chip. Although, it’s actually 3 breadboards, as 2 aren’t quite big enough. Not to mention the other breadboard with the supporting circuitry on. I made a start on this last night;