I've finally got everything working at 4Mhz and almost working at 6Mhz.
I improved the routing of supplies and decoupling on the memory board (that actually made things worse!)
I added pull up resistors to the memory data lines (buffered) on the memory board and all is now well.
The thing seems to clock up to 6Mhz but then crashes at exactly the same point each time I reboot so it could be a memory/speed issue or it could just be a bug in my transmit code that is only showing up at higher speeds....
Friday, 24 July 2009
Source for z80 monitor
The sources for the monitor for my z80 machine are here:
http://www.authorityfile.co.uk/personal/z80/z80-monitor-20090719.tar.gz
This gives enough CP/M like functionality to run MBasic and BBCBasic
http://www.authorityfile.co.uk/personal/z80/z80-monitor-20090719.tar.gz
This gives enough CP/M like functionality to run MBasic and BBCBasic
Thursday, 16 July 2009
It gets better....

Now I've got a proper Basic working! R.T.Russell's BBC Basic. This allows proper programming and outperforms MBasic in many areas and it uses a lot less memory!
Wednesday, 15 July 2009
Now for some real programming...

Yay! I've now written a monitor program to test things out it consists of:
- A basic CP/M BIOS - no disk stuff yet
- A "monitor" program - a hacked down version of CP/M 2.2 with no disk routines (to fit in 4k rom window)
- An intel hex loader
Now to see if I can get any shareware games working!....
Monday, 13 July 2009
Full Duplex - With interrupts
I've now got Serial I/O working fine on one channel. I've made two ring buffers for receive and transmit and the interrupt service routine services the SIO and places stuff in the buffers. I can transfer huge files looped back through a simple program without losing a byte so it should do for now - though it is slow. I think I need to look at how it prioritises TX and RX as with the processor running at 1MHz and a baud rate of 19200 it doesn't quite give the throughput I'd hoped for more like 1000 cps. Still it will do for now if it is reliable.
For handshaking I've now tied the DCDA line low, ignore the RTS line and instead use DTRA on the SIO as a RTS/RTE this is controlled by the interrupt routine which turns DTRA high when there are only a few bytes left in the ring buffer and reenables it when the buffer is emptied.
Now to write a simple monitor so I can upload code without having to pop the Flash ROM out every five minutes - I'm bound to drop it in a cup of coffee or bend the pins sooner or later....
Sunday, 12 July 2009
Serial I/O I think I've worked it out
Serial IO Working...well sort of!
I've made up a bit of ground on my Serial I/O card today and managed to print a few messages from the Z80 to a computer running Hyperterm in both 3-wire (no handshaking) and 5-wire (RTS/CTS) handshaking - however I've can only get 3-wire working in the opposite direction. I think I need to bridge some signals at the PC end to use just RTS/CTS or possibly use different signals from the SIO instead of its own RTS.
On the memory glitches I've now got it working 100% fine for all but the first bank which goes through a lot of different gates to get the boot rom select to work, I think I may have too many gates in the path and it is not settling quickly enough so I may have to rethink that bit!
On the memory glitches I've now got it working 100% fine for all but the first bank which goes through a lot of different gates to get the boot rom select to work, I think I may have too many gates in the path and it is not settling quickly enough so I may have to rethink that bit!
Subscribe to:
Posts (Atom)


