Assembly Language Vs Lego

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.

lego_thesimpsons

But before I get stuck in, can you identify this famous TV family from a few crude Lego bricks? (more…)

Retro Challenge – Closing Thoughts

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!

All of the other Retro Challenge entrants deserve a mention too, but there’s a few that really caught my eye and taught me stuff about their particular approach to RC2014, such as Wgoodf – Turtles all the way down, Ians restoration of Northstar Horizon, Tezzas restoration and programming of Challenger 4P, John finishing work on Fahrfall

IMG_20140730_205950

(more…)

Retro Challenge – Challenge Complete

With over 24 hours to go before the end of July deadline the final piece of the puzzle fell in to place!

IMG_20140730_205950

But, first, a quick catchup from the last blog post;

(more…)

Retro Challenge – Finishing Post Within Sight

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.

(more…)

Retro Challenge – PCBs arrived and built

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.

IMG_20140726_085406

Well, that’s my weekend planned out for me now! (more…)

Retro Challenge – Matrix Interface Finished

Just a little update as I’ve only done a little bit of work on the Z80 this evening;

2014-07-24 21.34.48

The LED matrix board now plugs in to my Z80 backplane!

(more…)

Retro Challenge – Z80 Assembler Breakthrough

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

Screenshot from 2014-07-23 21:00:25

(more…)

Retro Challenge – The Matrix Reloaded

The 5 matrix board has now been finished. And no one could be more relieved than me.  There’s a LOT of soldering going on in there!

2014-07-20 17.25.04

(more…)

Retro Challenge – Keep Calm and Solder On

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!

2014-07-17 22.23.27

(more…)

Retro Challenge – New IDEa

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.

Screenshot from 2014-07-16 22:31:09 (more…)