the three transistor type ... works ok when the inteface it to a PC etc which can supply the negative output. If two of the transistor interfaces ended up talking to each other then there would be a problem.
Yes Toby, I didn't think of it but you are right. If I connect 2 Propellers together trough the serial cable, it won't work with the transistors.
I like the max232 - they are $1 or less on ebay and from other sources
That's right. I have at least 5 of them in a drawer. I don't know exactly why I didn't use one. Perhaps because I found the schematic with the transistors before the one with MAX232 and that the transistors worked fine to program the Prop. Or perhaps because I am pushing the "homemade" a bit to far.
The MAX232 is really a 5V chip (but I have used then at 3.3V) if they are powered by 5V then a 1k resistor from the MAX to the Prop is good enough for protection.
According to the last attached document, I have modified the schematic : 1 diode and 1 polarized capacitor (see picture 1).
It was easy to modify the existing board: removing one track and adding the 2 components.
I made tests with "Parallax Serial Terminal Demo v1.0" with the 6 terminals. All terminals received characters from the Prop. So I think the modification is successful. For some terminals, an additional line feed is needed but I guess it is selectable somewhere. One of two had graphical characters instead of letters, probably also selectable.
Shamcom Terminal correctly received the com from the Prop, but any key typed on the keyboard produced a sound and was refused, as already mentioned, so I could not send any answer to the Prop. But no problem with that. Five working terminals are well enough.
This time, CPM.BIN, modified to send data to a terminal and renamed CPMCOM.BIN, is working. Picture 2 shows the start with The Parallax Terminal. When started with Teraterm, it sends special characters at the beginning (see picture 3) but the "DIR" command gives a normal display. Of course, I don't know why.
I had not noticed that your interface circuit did not have the diode and capacitor. These are used to provide a short time of the negative volts (derived from the receive side of the PC). I allways have these fitted.
The diode and cap are not present in the Parallax RS232 adapter. It's OK for programming but not satisfactory for duplex serial communication. It would be a good thing to add them, unless they want to promote their USB Plug :smilewinkgrin:
I saw the three transistor interface first as an Elektor artical, probably one of thir summer edidions, as it had a large font size number at its heading. I assumed that it was the same as the Parallax version. The two transistors (without the reset bit) is as I have used before on the 8051 and AVR stuff, it was cheaper and smaller than using the MAX chips (as long as the neg volts were coming from somewhere else).
I succeded sending a file from windows to the CP/M disk using Teraterm and XMODEMF with "R" as parameter ("R" = "Receive" ?).
When I type A>dir xmod*.* I get:
A: XMODEMP COM : XMODEMF COM : XMODEM COM : XMODEM TXT
A: XMODEM2 COM
XMODEM.TXT is an info about XMODEM protocol.
But what are the other commands: XMODEMP; XMODEM and XMODEM2 ?
Is there a place where I can find some infos about these commands and their parameters ?
Those other xmodem programs are slight variants with the timing at startup (Too fast, and you miss the chance to download, too slow and it takes ages to start the download).. On the dracblade, xmodemf.com seems to be about right.
Great to see you have a file transfer. You can send it back to the PC as well if you need to.
I have tried sending a file to the PC. At the second try I succeeded.
In fact, I wanted to print the file SBENTIRE.TXT (info about S-Basic)
what I did:
XMODEMF S SBENTIRE.TXT
I received:
XMODEM Ver 5.0V
FILE OPEN - 818 (0332 HEX) SECTORS
(APPROXIMATELY 58 MINS, 24 SECS TO SEND AT 300 BAUD).
[^X TO CANCEL]
In Teraterm Menu, I chose File ==> Transfer ==> Xmodem ==> Receive
I chose a directory and a name for the file
The file started to be transferred. By chance, I was not in 300 baud. So it took probably less than one minute.
By the way, S-Basic seems to be quite close to Turbo Pascal : no line numbers, no GOTO, use of BEGIN ... END, possibility to include libraries, compiled language, etc... Might be interesting.
On the other hand, I bought on Amazon (Marked Place) 2 second hand books (very cheap):
The CP/M handbook with MP/M (1980 Rodnay Zaks)
Z80 Assembly Language Programming (1979 Lance A. Leventhal)
I also downloaded the CP/M Operating System Manual (from Digital Research). I printed it like a book in 20 little booklets that I am occupied to bind (it is one of my hobbies).
Yes those messages are still there for 300 baud. It is a pleasant surprise when it works 100x faster. How did people ever transfer files at 300 baud?
Are you thinking of programming on this board?
I think there is pascal somewhere if you want to use that.
Once you have the hardware working, you can do more with this board. See the Catalina thread for ways of using the 512k of ram for a big C program. Or the 'full color tile' thread for putting pretty color pictures on the screen.
Yes, I would like to. But before being able to do something interesting, I must understand a lot of stuff : the organization of the memory, of the disks, the CP/M commands, how to access the I/O ports, what CP/M programs I can import from Internet, etc...
For example, a lot of CP/M programs are available on the web but most of them are more or less dedicated to a specific machine: Osborne, Kaypro, Commodore, Amstrad, etc... Is there a particular machine organized the same way as the Dracblade, so that the softs for that machine will work on the Dracblade ?
See the Catalina thread for ways of using the 512k of ram for a big C program
I am reading the thread called" Dracblade SBC with Catalina C, PropBasic, CP/M, MP/M, TRS80, wireless network, " (is this the thread to which you refer ?) but this thread has 36 pages and I am on the third one !
Or the 'full color tile' thread for putting pretty color pictures on the screen.
I didn't notice that thread yet ! So many interesting subjects to discover !
By the way, would you have a nice little colour game to run on the Dracblade in order to impress my wife ? (She would more easily understand why I am stuck all the day long to the PC :smilewinkgrin:)
...a lot of CP/M programs are available on the web but most of them are more or less dedicated to a specific machine...
Yes indeed, if software for those machines is delivered on floppy disk images they will be specific to the format, disk geometry, used by those machines.
Then if they use graphics, like on the Amstrads, there will be problems with that.
The original Z80 / CP/M emulator on the Prop, ZiCog depended on the software available for the SIMH AltairZ80 simulator project. There is a lot of it:) http://www.schorn.ch/cpm/intro.php
All that is needed is to load up those SIMH AltairZ80 floppy images under SIMH running on a PC and copy the files to an 8MB hard disk image. Or use xmodem to get the files into a running CP/M on the Prop.
I guess you are using a later Z80 emulation on the Prop, by PullMoll. I can't be sure but I believe that works the same way still.
There is a LOT of CP/M stuff to play with this way. More than enough for me.
and let me know if not all the files are there. They might have got lost in the forum migration a few months ago. (I did a zip of files and it is a bit big to put in one post on the forum but maybe could split it up).
Screenshot is in my webpage link below.
This isn't CP/M - but it is a Z80 emulation.
Re CP/M - many things can be reconfigured with different input and output ports. The biggest library is the SIMH emulation, so that was the emulation that we emulated.
Certainly there are word processors (Vedit and Wordstar) plus a huge variety of languages. But all boring in boring text.
I got interested in CP/M on the propeller because it was the only way to access a word processor and a variety of languages. Meanwhile though, more languages have become available on the propeller itself, and I can see some great potential merging Catalina C and the 64 color tile driver into a graphical operating system. Same dracblade hardware as what you have. We just need to write the software!
I already have several downloads from http://www.schorn.ch/cpm/intro.php but I didn't realize it is the main source for the Z80 emulator on the Prop. I will have to examine all this in more details.
@Dr_Acula
Thank you for the link. I'll tell you when the Man will have been Packed.
Like you say, every CP/M machine is different. The two main differences were the disk drive format (tracks/cylinders etc) as nothing had been standardised back then. So disks from one machine would not work in another. The second difference was the ports. There are 255 ports and they were all different - eg which port number was the serial port.
So, rather than pick an old machine, the SIMH standard was chosen.
We did have some problems with the floppy drive image standard, so we changed to the hard drive standard. If you download the SIMH most of the emulations have drives A,B,C etc, and also have drive I,J,K,L which are four hard drives. These binary files can be simply copied to the sd card.
So if you get a copy of a SIMH floppy disk (most of the disks listed are floppy images), create a SIMH emulation with drive I, and do a PIP I:=A:*.*
If you have any problems doing this please let me know.
Sure, schematic attached. All untested at the moment and the software is not written. If you are interested in writing the software or want to build this, I could send you a board.
That was the way I thought of doing the Z80 boltings, load the RAM and let the Z80 run.
I got all wrapped up in the VDU reactions, but then the QZ80 made it all a bit academic.
A 6+MHz Z80 would be good though. I have got hold of some PLC sort of things, for power switching. I originally wanted the LCDs off of them (4 rows, 10 columns) but then I noticed they have a Z80 ish proc in them.
The reason I built that board is that (apologies to Pullmoll), I cannot get MP/M to work reliably on the qZ80 emulation. CP/M is fine, but MP/M crashes about once an hour.
@Ale - I have three of those boards. I can send you a free one if you want. But no software is written. It needs software in Z80 to copy into ram a tiny bootloader comms program. It might only be 20 Z80 instructions, but that needs to be loaded into ram and then set running. The program needs to talk to the 8255. I have very similar code working. Then on the propeller side, it needs a tiny amount of software to talk to that program and start sending a copy of CP/M.
Then one needs a new routine in Z80 to handle IN and OUT. This needs to be a custom routine, and then one needs to go through the source of CP/M and change every IN and OUT instruction to a call to that new routine.
Finally, one needs new disk block drivers for the propeller.
There is nothing impossible here and lots of code can be copied from existing code.
One big advantage of this board is that the propeller side of the code is going to be much smaller than the qZ80. That would free up lots of hub ram, and that means one could add in the color driver code from the full color tile thread. So you could give CP/M the ability to change individual pixels on the screen. So you could have big programs (up to 8x48k running in parallel in MP/M, in C or Basic or other languages) talking to a color screen. Spin can't do that because there is virtually no hub ram left once you run a full color screen. The only other program that has the potential to do this is Catalina. Or running dual propellers.
Comments
That's right. I have at least 5 of them in a drawer. I don't know exactly why I didn't use one. Perhaps because I found the schematic with the transistors before the one with MAX232 and that the transistors worked fine to program the Prop. Or perhaps because I am pushing the "homemade" a bit to far.
The MAX3232 is the 3.3V official version.
According to the last attached document, I have modified the schematic : 1 diode and 1 polarized capacitor (see picture 1).
It was easy to modify the existing board: removing one track and adding the 2 components.
I made tests with "Parallax Serial Terminal Demo v1.0" with the 6 terminals. All terminals received characters from the Prop. So I think the modification is successful. For some terminals, an additional line feed is needed but I guess it is selectable somewhere. One of two had graphical characters instead of letters, probably also selectable.
Shamcom Terminal correctly received the com from the Prop, but any key typed on the keyboard produced a sound and was refused, as already mentioned, so I could not send any answer to the Prop. But no problem with that. Five working terminals are well enough.
This time, CPM.BIN, modified to send data to a terminal and renamed CPMCOM.BIN, is working. Picture 2 shows the start with The Parallax Terminal. When started with Teraterm, it sends special characters at the beginning (see picture 3) but the "DIR" command gives a normal display. Of course, I don't know why.
The diode and cap are not present in the Parallax RS232 adapter. It's OK for programming but not satisfactory for duplex serial communication. It would be a good thing to add them, unless they want to promote their USB Plug :smilewinkgrin:
I succeded sending a file from windows to the CP/M disk using Teraterm and XMODEMF with "R" as parameter ("R" = "Receive" ?).
When I type A>dir xmod*.* I get: XMODEM.TXT is an info about XMODEM protocol.
But what are the other commands: XMODEMP; XMODEM and XMODEM2 ?
Is there a place where I can find some infos about these commands and their parameters ?
Great to see you have a file transfer. You can send it back to the PC as well if you need to.
In fact, I wanted to print the file SBENTIRE.TXT (info about S-Basic)
what I did:
- XMODEMF S SBENTIRE.TXT
- I received:
- In Teraterm Menu, I chose File ==> Transfer ==> Xmodem ==> Receive
- I chose a directory and a name for the file
- The file started to be transferred. By chance, I was not in 300 baud. So it took probably less than one minute.
By the way, S-Basic seems to be quite close to Turbo Pascal : no line numbers, no GOTO, use of BEGIN ... END, possibility to include libraries, compiled language, etc... Might be interesting.On the other hand, I bought on Amazon (Marked Place) 2 second hand books (very cheap):
- The CP/M handbook with MP/M (1980 Rodnay Zaks)
- Z80 Assembly Language Programming (1979 Lance A. Leventhal)
I also downloaded the CP/M Operating System Manual (from Digital Research). I printed it like a book in 20 little booklets that I am occupied to bind (it is one of my hobbies).Are you thinking of programming on this board?
I think there is pascal somewhere if you want to use that.
Once you have the hardware working, you can do more with this board. See the Catalina thread for ways of using the 512k of ram for a big C program. Or the 'full color tile' thread for putting pretty color pictures on the screen.
Yes, I would like to. But before being able to do something interesting, I must understand a lot of stuff : the organization of the memory, of the disks, the CP/M commands, how to access the I/O ports, what CP/M programs I can import from Internet, etc...
For example, a lot of CP/M programs are available on the web but most of them are more or less dedicated to a specific machine: Osborne, Kaypro, Commodore, Amstrad, etc... Is there a particular machine organized the same way as the Dracblade, so that the softs for that machine will work on the Dracblade ?
I am reading the thread called" Dracblade SBC with Catalina C, PropBasic, CP/M, MP/M, TRS80, wireless network, " (is this the thread to which you refer ?) but this thread has 36 pages and I am on the third one !
I didn't notice that thread yet ! So many interesting subjects to discover !
By the way, would you have a nice little colour game to run on the Dracblade in order to impress my wife ? (She would more easily understand why I am stuck all the day long to the PC :smilewinkgrin:)
Yes indeed, if software for those machines is delivered on floppy disk images they will be specific to the format, disk geometry, used by those machines.
Then if they use graphics, like on the Amstrads, there will be problems with that.
The original Z80 / CP/M emulator on the Prop, ZiCog depended on the software available for the SIMH AltairZ80 simulator project. There is a lot of it:) http://www.schorn.ch/cpm/intro.php
All that is needed is to load up those SIMH AltairZ80 floppy images under SIMH running on a PC and copy the files to an 8MB hard disk image. Or use xmodem to get the files into a running CP/M on the Prop.
I guess you are using a later Z80 emulation on the Prop, by PullMoll. I can't be sure but I believe that works the same way still.
There is a LOT of CP/M stuff to play with this way. More than enough for me.
The thread is here http://forums.parallax.com/showthread.php?t=122361&highlight=color+genie
and let me know if not all the files are there. They might have got lost in the forum migration a few months ago. (I did a zip of files and it is a bit big to put in one post on the forum but maybe could split it up).
Screenshot is in my webpage link below.
This isn't CP/M - but it is a Z80 emulation.
Re CP/M - many things can be reconfigured with different input and output ports. The biggest library is the SIMH emulation, so that was the emulation that we emulated.
Certainly there are word processors (Vedit and Wordstar) plus a huge variety of languages. But all boring in boring text.
I got interested in CP/M on the propeller because it was the only way to access a word processor and a variety of languages. Meanwhile though, more languages have become available on the propeller itself, and I can see some great potential merging Catalina C and the 64 color tile driver into a graphical operating system. Same dracblade hardware as what you have. We just need to write the software!
I already have several downloads from http://www.schorn.ch/cpm/intro.php but I didn't realize it is the main source for the Z80 emulator on the Prop. I will have to examine all this in more details.
@Dr_Acula
Thank you for the link. I'll tell you when the Man will have been Packed.
So, rather than pick an old machine, the SIMH standard was chosen.
We did have some problems with the floppy drive image standard, so we changed to the hard drive standard. If you download the SIMH most of the emulations have drives A,B,C etc, and also have drive I,J,K,L which are four hard drives. These binary files can be simply copied to the sd card.
So if you get a copy of a SIMH floppy disk (most of the disks listed are floppy images), create a SIMH emulation with drive I, and do a PIP I:=A:*.*
If you have any problems doing this please let me know.
DRAC: did you connect the Z80 to the propeller yet ?...
Board is half soldered up. Sorry - I got distracted with the color video drivers.
That was the way I thought of doing the Z80 boltings, load the RAM and let the Z80 run.
I got all wrapped up in the VDU reactions, but then the QZ80 made it all a bit academic.
A 6+MHz Z80 would be good though. I have got hold of some PLC sort of things, for power switching. I originally wanted the LCDs off of them (4 rows, 10 columns) but then I noticed they have a Z80 ish proc in them.
@Ale - I have three of those boards. I can send you a free one if you want. But no software is written. It needs software in Z80 to copy into ram a tiny bootloader comms program. It might only be 20 Z80 instructions, but that needs to be loaded into ram and then set running. The program needs to talk to the 8255. I have very similar code working. Then on the propeller side, it needs a tiny amount of software to talk to that program and start sending a copy of CP/M.
Then one needs a new routine in Z80 to handle IN and OUT. This needs to be a custom routine, and then one needs to go through the source of CP/M and change every IN and OUT instruction to a call to that new routine.
Finally, one needs new disk block drivers for the propeller.
There is nothing impossible here and lots of code can be copied from existing code.
One big advantage of this board is that the propeller side of the code is going to be much smaller than the qZ80. That would free up lots of hub ram, and that means one could add in the color driver code from the full color tile thread. So you could give CP/M the ability to change individual pixels on the screen. So you could have big programs (up to 8x48k running in parallel in MP/M, in C or Basic or other languages) talking to a color screen. Spin can't do that because there is virtually no hub ram left once you run a full color screen. The only other program that has the potential to do this is Catalina. Or running dual propellers.