Hi, Interested in porting CPM to z80, including which tools/compilers to use. Also a video or two on fuzix. A general video about it and also a porting video. Thanks for the interesting videos.
4:12 The Z80 SIO and DART are good but do have a limitation; they have rather inflexible baudrate dividers. They can only usefully divide the input baud clock by 16, 32 or 64. They really need the Z80 CTC or some other means of generating a variable baud clock. Of course, if you only need 115K for a terminal then use a 1.8432 MHz baud clock, dividee by 16 and you're done.
Although it's not a "direct anscestor" a lot of the things in CP/M are "inspired by" PDP-11 operating systems "drive:name.ext", commands with slash "/options" and PIP leap immediately to mind. Back at college in the 1989s, it was easy to move to RSTS from CP/M because so much was very similar.
I've tinkered with putting a Propeller on my 6502 system. I cannot stand the clunky IDE that is recommended. Fortunately, you can just use VS Code or any other IDE you choose and use command line tools to compile/assemble and upload. So that solves that issue. Voltage differences are an issue too but that would be the same with FPGA. CPLD's like the ATF1508 work with 5V and can create simple VGA framebuffers. So that's probably a better option for simple VGA. And, you're not going to outrun it. My biggest issue with the Prop and 8-bit systems is the interface between is slow like you mentioned. Even with a 6.25 MHz crystal (putting the Prop at over 100 MHz) can't handle a very fast CPU. Now you can devote an entire core or two to help. So it can be done. Just a lot of work. Too bad there isn't a better solution for video. And don't mention the Vera "chip". lol
That's awesome! I'm thinking of making a Z80 multicore system with 4 CPUs that each have 8k of dedicated RAM besides a shared global system bus with more ROM and RAM. One or two of the 8 k pages on that global system bus would be paged so that you can theoretically access 256 pages of 8k. I wonder if I just enable 1 core by default and I don't make the rest of the system too difficult to work with, how difficult it would be to port some software. My biggest concern is that after I make this system and I get everything working, I don't really have any software for it, so it would be great if it doesn't take months and months to port existing software.
@@AidanJennings Ah maybe I'm not using the right terminology. What I meant with a "core" is just a single z80 CPU. Using 74x245 bus tranceivers, i could connect each CPUs address, control, and databus to a common system bus, shared by the 4 CPUs. If that common bus is in use by one CPU and another one wants to use it, the WAIT line of that second one would be asserted. I'm thinking of some kind of priority or queue system (perhaps one or more shift registers could help there) to manage the order in which the CPUs get access to that common system bus. And then each CPU would also have 8k of dedicated ram that isn't shared. The software could optimise parallel processing by copying most of the code to that 8k.
@@joefish6091. How would you get the 4xZ80 from talking on the address line at the same time? To read from memory requires 4 T states. I have heard people dividing the 20MHZ by 2. 4 T states for you Z80 number 1, 4 states for you z80 number 2. And then back again. This way you can multiplex access to a ram chip and make it read write by both as they never read/write at the same time. But this means the chips run at 10Mhz.
Things like that have been done on S-100 systems. But to make use of that, you need something more than just CPM 2.2 To get multitasking, you would need MP/M or fuzix. Another old one is TurboDOS if I remember correctly. That one can even have different CPUs mixed together.
I'm not sure why you deleted the post in the Reddit sub. I was glad you posted it there and totally enjoyed the video. I wasn't trying to criticize or hijack anything, just sharing my own ideas. I am sorry about that.
Hi, I'm writing to you because I bought a box with thousands of components in a flea market, I understood that there was something good in the middle. in fact I managed to find different versions of the z80,, and the 8085,8088,8086, ram, rom, eeprom, plus hundreds of TTLs as well as thousands of transistors, capacitors, .... etc. I wanted to know if you could help me choose the best versions of components and build a computer from scratch. It has always been a passion of mine. If you want I'll send you photos of the components I found, I'm cataloging them.. I hope you can help me, thanks...
Hi, Interested in porting CPM to z80, including which tools/compilers to use. Also a video or two on fuzix. A general video about it and also a porting video. Thanks for the interesting videos.
I have a script kicking around for those but to get you started I used pasmo
pasmo.speccy.org/
That Mandelbrot Set in MBASIC is BRILLIANT........ Can't say anything else, just brilliant!
4:12 The Z80 SIO and DART are good but do have a limitation; they have rather inflexible baudrate dividers. They can only usefully divide the input baud clock by 16, 32 or 64. They really need the Z80 CTC or some other means of generating a variable baud clock. Of course, if you only need 115K for a terminal then use a 1.8432 MHz baud clock, dividee by 16 and you're done.
I'd like a more in-depth explanation. I'm curious to see what code needs to be changed and why when porting.
Would love to see a repo of your port of Fuzix and potentially an deep dive of your port. Great vid!
Although it's not a "direct anscestor" a lot of the things in CP/M are "inspired by" PDP-11 operating systems "drive:name.ext", commands with slash "/options" and PIP leap immediately to mind. Back at college in the 1989s, it was easy to move to RSTS from CP/M because so much was very similar.
I've tinkered with putting a Propeller on my 6502 system. I cannot stand the clunky IDE that is recommended. Fortunately, you can just use VS Code or any other IDE you choose and use command line tools to compile/assemble and upload. So that solves that issue. Voltage differences are an issue too but that would be the same with FPGA. CPLD's like the ATF1508 work with 5V and can create simple VGA framebuffers. So that's probably a better option for simple VGA. And, you're not going to outrun it. My biggest issue with the Prop and 8-bit systems is the interface between is slow like you mentioned. Even with a 6.25 MHz crystal (putting the Prop at over 100 MHz) can't handle a very fast CPU. Now you can devote an entire core or two to help. So it can be done. Just a lot of work. Too bad there isn't a better solution for video. And don't mention the Vera "chip". lol
I did C on an Amiga, so yeah.
That's awesome! I'm thinking of making a Z80 multicore system with 4 CPUs that each have 8k of dedicated RAM besides a shared global system bus with more ROM and RAM. One or two of the 8 k pages on that global system bus would be paged so that you can theoretically access 256 pages of 8k. I wonder if I just enable 1 core by default and I don't make the rest of the system too difficult to work with, how difficult it would be to port some software. My biggest concern is that after I make this system and I get everything working, I don't really have any software for it, so it would be great if it doesn't take months and months to port existing software.
I've never heard of a multi-core Z80 although I'm sure its possible. What you're describing sounds a bit like the parallax propeller.
@@AidanJennings Ah maybe I'm not using the right terminology. What I meant with a "core" is just a single z80 CPU. Using 74x245 bus tranceivers, i could connect each CPUs address, control, and databus to a common system bus, shared by the 4 CPUs. If that common bus is in use by one CPU and another one wants to use it, the WAIT line of that second one would be asserted. I'm thinking of some kind of priority or queue system (perhaps one or more shift registers could help there) to manage the order in which the CPUs get access to that common system bus. And then each CPU would also have 8k of dedicated ram that isn't shared. The software could optimise parallel processing by copying most of the code to that 8k.
@@tuxcode7344 Just have 4 independent 64K Z80 systems but they share a 256MB RAM 8K page unit that fits into a 8K hole in. each system.
@@joefish6091. How would you get the 4xZ80 from talking on the address line at the same time? To read from memory requires 4 T states. I have heard people dividing the 20MHZ by 2. 4 T states for you Z80 number 1, 4 states for you z80 number 2. And then back again. This way you can multiplex access to a ram chip and make it read write by both as they never read/write at the same time. But this means the chips run at 10Mhz.
Things like that have been done on S-100 systems. But to make use of that, you need something more than just CPM 2.2
To get multitasking, you would need MP/M or fuzix. Another old one is TurboDOS if I remember correctly. That one can even have different CPUs mixed together.
I am.just curious of this z80 could operate a servo of even an arduino board
What was that editor at the 1:47 mark?
github.com/MiguelVis/te
when will the next video be out?
I'm not sure why you deleted the post in the Reddit sub. I was glad you posted it there and totally enjoyed the video. I wasn't trying to criticize or hijack anything, just sharing my own ideas. I am sorry about that.
Any new development on your Z80 project?
Uff, it Will be awsome if the video resolution was 620 x 480.
Hi, I'm writing to you because I bought a box with thousands of components in a flea market, I understood that there was something good in the middle. in fact I managed to find different versions of the z80,, and the 8085,8088,8086, ram, rom, eeprom, plus hundreds of TTLs as well as thousands of transistors, capacitors, .... etc. I wanted to know if you could help me choose the best versions of components and build a computer from scratch. It has always been a passion of mine. If you want I'll send you photos of the components I found, I'm cataloging them.. I hope you can help me, thanks...
Get some Z80 DMA chips from mouser, that'll handle your SD IO FAST.
Nope. The z80 DMA only does parallel IO, but SD cards use a serial SPI interface.