My Z80 project has evolved within my mind into something more than a vaguely educational retro type computing and electronics project, having tried using my Sinclair ZX Spectrum again yesterday, I have come to realise why computing products of that vintage have come to be looked upon scornfully. It was quite frankly absurdly slow and hard to use the Spectrum, even when I was using an emulator that rid me of having to use the horrible non-standard rubber keyboard, the interface was a mess and so I have taken it upon myself to make a comfortable Z80 computer, not necessarily easy to use but not as time consuming and fruitless as older machines.
My chief complaint about the system was, as a reasonably experienced BASIC programmer, I just wanted a quick syntax guide and to get on with programming, but there's no built in assistance, nor could I find the kind of quick reference I wanted on the internet. However, more irritating is the fact that you cannot just type the text in, you must press the keys with the correct code word printed on them in one of about four colours, each one selected by an increasingly complex pattern of pressing shift keys until I felt more like I was trying to find a cheat code hidden in special key combinations. The fact that the system boots into a BASIC interpreter that can do nothing very useful without hours of programming or fiddling with tapes also annoyed me.
I have therefore decided that my own Z80 computer will be an example of just what the humble little Z80 could achieve given a little help from some slightly more advanced and thought out features. I am planning to include a battery backed real time clock in my computer, something we take for granted these days, but is absent from all the machines around the age of my Spectrum. I am also fortunate enough to have been able to afford entirely non-volatile memory, making it easy to keep projects going across several sessions. Further, I am implementing an IDE controller allowing the attachment of a hard disk or compact flash card, allowing almost instantaneous loading of fairly large pieces of software.
I also have the advantage of knowing that my target user (me) has a fair experience of computers, and typing, and what sort of keyboard type I'm used to, and that I can grasp something more complex than BASIC as was the general limit of the user markets programming knowledge in the 80s. So I'm not going to have keywords printed on the keys because I can probably type them out quicker than find the right key, I'm going to have a command line interface when you boot the computer with syntax based on BASH which I use regularly, and the initial programming tool I intend to write for the system is an assembler allowing me to write machine code programs on the machine itself.
I later hope to write a C compiler of sorts for the machine, and for this and the assembler a text editor will be a must.