Last updated: 06 Aug 2007 - 22:04
I wrote an article a while ago about making a tool for reading and writing parallel memory chips using a PIC and a USBMOD2 unit. I have finally got around to writing the code out in MPASM (the original was for the PICAXE BASIC programmed PIC.) The code is fairly simple but shows how a PIC can effectively be used in place of complex glue logic.
- Source memtool.asm file
- Compiled HEX file, memtool.hex
- GPLv3 License
Last updated: 05 Aug 2007 - 20:14
Written at the same time as the degrees to radians function as a compliment to it. Again, the function is incredibly simple, however, it's a handy thing to have in your path anyway. It's also a really simple function, showing the syntax to create a function that takes an argument, returns a value, and has a documentation string (if I remember correctly just type help r2d into MATLAB and it should describe the function if it's in your path.)
Last updated: 05 Aug 2007 - 19:03
This is one of the earliest bits of MATLAB code that I wrote. It's basically a one line function that converts an input value in degrees to radians. The code is so simple I have no doubt that all users of MATLAB would be able to write it with a few moments of thought, however, I often found it useful to have this function in my path when writing code to allow me to call it without having to think, e.g. sin(d2r(alpha)) where alpha was the angle in degrees.
Last updated: 26 Jun 2007 - 22:31
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 mus
Last updated: 26 Jun 2007 - 22:07
After many weeks developing ideas about this project without any materials to practically build it with (while I was at Uni). I dreamed up all manner of insane and complicated schemes. Now that I look at the practicalities of actually producing something, it has become clear that many of my ideas were impractical.
With some practical experimentation and a bit of real basic design, the system has been simplified significantly. I have dropped the idea of a 20bit address space for now, and decided that trying to make the whole system suitable for processor upgrade is a waste of time and resources. I also had been intending to make the system with separate I/O expansion bus, mother board, memory slots etc. which, again, I have decided is a waste of time and resources.The system which is now a considerable way through construction is based on some sheets of tripad board I got from Maplin at a very reasonable price. These are
Last updated: 09 Jun 2007 - 22:51
I've been back home for just under a week now and I've actually begun construction of the system. I've made some important design decisions and discovered some useful facts for the continued design of the system.
The most important decision I've made is that the physical construction of the system should be very modular. I've started with the idea that the system is going to have a processor daughter card, a mother board, and a number of other cards that provide additional memory/interfaces etc.
As I had planned, I am still intending to use a CompactFlash card in IDE mode as a mass storage medium and boot the operating system from that using a minimal "ROM" to store just the BIOS and boot-loader for the system. As such, the IDE controller is going to have to be a feature of the mother board, as is the BIOS ROM, I have yet to decide how to include RAM in the system.
I have also decided that to allow a smooth upgrade path of my system to the Z80180 processor which has a 20 bi
Last updated: 28 May 2007 - 21:01
Retroleum - "Phil's techie type website." An excellent resource for retro computing (Z80) type info.
Highlights include some useful stuff on TV timings, an 8 bit IDE interface for the Z80 and an impressive graphics system.
Last updated: 08 May 2007 - 21:09
It's been a while since I thought up this project now, and it's heading for a shelf as fast as it's vestigial legs will carry it. I blame this rapid attempt at mothballing on a lack of practical progress while I'm at Uni with no Z80 chips in sight. I have however been thinking about the project a bit and come up with some basic ideas for the architecture.
Firstly, I've decided that instead of the normal idea of holding the operating system on a ROM chip that's used in most Z80 systems, I want to set it up something more like a conventional PC with a boot ROM containing the system BIOS (Basic Input-Output System) which causes the processor to boot from the IDE bus. In my design this is going to be a small compact flash card.
One advantage of this is that it should allow advanced functionality such as being able to edit a version of the operating system kernel on the device itself, reboot, test the new kernel by selecting it from a boot loader menu, if it fails, go back to the f
Last updated: 20 Apr 2007 - 20:37
In the beginning was the Amstrad NC100.
At one point during the Easter holiday I had the sudden urge to get out my old Z80 based laptop, an Amstrad NC100. Fiddling with it for a little while, I decided it was under-utilising the hardware due to the very restrictive operating system. It does have BBC basic built in, allowing the user to easily write programs, however BASIC isn't a very powerful language (quick to code I'll admit, but not powerful), and the programming was slow. It also left you having to start BASIC, load a program into memory then run it every time you wanted to use one. Clearly this didn't make for an enticing environment to develop.
I then had the idea of writing a new ROM for the device. If you look at the back of an NC100 there's a little panel that comes off with just one screw, revealing a standard 2Mbit ROM. "Easy", I thought, all I need to do is replace that with a memory chip that I've programmed, and away we go. I had an 8KB Ferric RAM (a type of non-vo