grumpydoc:
Think your missing the keep it simple while at the same time very expandable.
I'm trying not to
A good SCSI interface you are not bit banging.
OK, yes I agree you probably don't want to bit bang SCSI and if you can find an interface IC like the NCR 5380 or, even better, the Zilog one those details will be taken care of and it will be a lot simpler.
But there is still not all that much stuff around to actually talk to.
The next step pass SCSI-1 is SCSI-2 which has a max of 10MB/s while still the same, just better bus drivers. Both will slow down with out loss of data. If you want to push to a faster speed then the Z80 can do then you need to use DMA.
I thought SCSI-2 was mostly about the move to wider busses which probably isn't all that useful for a Z80 system.
With proper designed hardware the Z80 can go a lot faster then 20kbs.
My old Lobo at 5.3 meg clock can use 8" DD floppys with out DMA. If my math is correct that is 62.5k bytes a second.
I did say "if you are doing the handshake in software".
If you can use INIR a Z80 can transfer one byte every 21t-states or about 190kB/s for the 4MHz part
But if you have anything where you are doing handshake in software it is going to drop quickly - if you need to poll a "byte ready" flag as with most floppy controllers then I make the loop about 60 t-states minimum which is 67kBytes/sec for the 4MHz part.
However for the 2.5MHz part it is 41kB/s, and 33kB/s for a Z80 clocked at 2MHz - I remember trying to hook a 2MHz Z80 to an 8" floppy and found it impossible. Don't forget that your 5.3MHz part is a "fast" Z80.
If you need to toggle more handshake lines during transfer it will slow down even more.
Just so you know, most CP/M software will still function when using TurboDos as a operating system
Yes, I saw that which increases the appeal, I admit.
Did TurboDOS have subdirectories? - That was the biggest thing I disliked about CP/M
So just to be very clear
Use the SCSI-1 hardware layer to connect from one or more Z80s to NEW Processor and connect more NEW Hardware to this NEW Processor if needed.
If the NEW Processor is a Raspberry Pi then the SCSI hardware connection would let you tab everything the Raspberry Pi has just by adding some software.
OK, yes using SCSI to talk to a Raspberry Pi front end would certainly be doable and flexible.
But as far as I am concerned I have absolutely no interest in hooking a Z80 to an RPi and having the latter just act as an I/O processor for the Z80. This is totally a personal view, of course and everyone is different but were I to built a Z80 system I would want it to be able to stand on its own feet.
things like assemblers, compilers
It doesn't make sense to develop software on the target machine if you don't have to. A modern PC can cross-compile much better and faster than a typical CP/M Z80 system could, and you can download code into the target machine in a few seconds. Even burning code into an EEPROM is quicker.
See above, mostly - it would be nice if the system could sustain itself.
Given that the sort of programs that one might write on a Z80 system are going to be minuscule by the standards of modern PCs the speed-up might not be all that large.
That said I would probably set p a Z80 emulator running CP/M to do development work for the target.
After that? Well, roll your own but to do anything useful you need to do the OS and tools and applications yourself which seems like a lot of work.
You don't have to write an OS from scratch - just grab an existing one and modify it. Developing low level drivers is the hardest part whether you use CP/M or some other OS. The problem with CP/M is you are forced to do everything the way it wants.
Which is going to be true of any already extant OS.
Also, crud compared to what? 8-bit operating systems are all a bit crufty if you ask me.
I have an Amstrad CPC6128. For several years this was my main computer, which I used for cross development on other Z80 based machines. It came with CP/M 3 as an option. The only thing I ever used CP/M for was formatting and copying discs (which was painful if you only had one disc drive, because you had to swap discs several times). Other disc utilities that ran under AMSDOS were more powerful and user friendly, plus you could quickly hack together your own stuff in BASIC. Many ROM-based utilities were produced that provided instant access without having to boot a system disc and then load the application from another disc.
Which is fine if copies of AMSDOS can be had online and there is enough documentation to port it to new hardware.
I'm not so much suggesting CP/M3 because I think it is a good OS (it was functional) but because of the resources still in existence.
My idea of a good OS is one that boots instantly and is fully functional 'out of the box'. Modern systems have gone backwards in this regard. My PC gets left on for hours because turning it off and on again takes too long. I don't turn my phone off because it takes forever to boot, and I keep 3G turned off because it tries to download updates all the time.
Amen to that one.
I can't really see the point of writing a Z80 based operating system.
The whole concept of a Z80-based system is pretty pointless today - except for fun. I agree that writing writing a whole OS from scratch isn't most people's idea of fun. Luckily there is a fair bit of code out there that can be used as a framework.
My goal is to build a Z80-based 'home computer' style system (like Amstrad, Spectrum, Sega etc.) which does things that weren't practical 30 years ago because it was too expensive and/or time consuming. I don't want to just throw in modern hardware that does all the grunt work, leaving the Z80 as a hood ornament. I do want the Z80 to be in control and working as efficiently as possible, because I love writing optimized Z80 code!
Sounds like we actually agree on that one as well.