Z80 Project

Nathan's Z80 Project Mark 2: Tidying and Sorting

Last updated: Oct. 14, 2009, 10:36 p.m.

I've re-arranged the site a bit. I've added a new section with its own link at the top of the site entitled "Z80 Project". This page gives quick access to all the information on the project and links to downloads. At the moment I've not put much on the page, but I'll add stuff as I get it sorted enough to publish.

I've also been coding. I've got the first commands running, I can change the LED status on the debug port with a command sent over the serial link now. A lot of the background code to do with bus management etc. is all sorted out as well now (although not very thoroughly tested). The biggest change to take note of since my last bit of documentation on the website though is that I've scrapped the ASCII based command codes. This initially seemed like a good idea because the commands could be sent from any text-terminal, but since the packet format evolved to require a binary packet length field, this advantage was lost. So I dumped the ASCII to reduce the over head a little, and to allow for 32 instead of 26 commands. So the command codes are now 0x00-0x1F (0-31). Error responses set bit 6, or respond with a code of 0x80 (128) or more.

These changes to the structure lead me to realise two things however, one is that the documentation in passing articles is not a lot of use, especially to me developing this, and the project is getting too big for one file. The first problem I've partially solved by writing new documentation; all of the info on the PIC software, from pin-allocations to function names as well as the comms spec. are now written out in a PDF that can be downloaded from the new project home page. Note that so far there is not a huge amount in it. The pinout of the PIC is included (pin allocations to Z80 bus functions etc.) and the revised comms spec are all that are in it so far along with some place holders for function references. Most of this information is mainly for my own reference as it should be quicker to look it up in the PDF than it is to scroll around in the code and figure out what it's doing by reading the assembly and few comments.

The second problem is quite acute already, the assembly file is nearing 1000 lines long so I'm going to split it off into separate files and use gplink to link them all into one coherent hex file to program the PIC with. My plans have been somewhat revealed in the first version of the documentation which includes a summary of the files and their intended content, but I'm not yet familiar with how to work with multiple file assembly projects so I may have to revise my plans a little as I figure out the mechanics of the operation. Once the code is split up into separate files I will hopefully be able to split my time roughly equally between documentation and development, but for a little while longer I need to concentrate on the docs until I can say I know what I'm doing!

Z80 Project
Z80 Mark 2


Posting comments is not currently possible. If you want to discuss this article you can reach me on twitter or via email.


Email: nathan@nathandumont.com

Twitter: @hairymnstr