PDA

View Full Version : Bulletin board and Modem question



Dr_Acula
March 14th, 2009, 05:16 AM
I am wondering if some kind soul could please explain how CP/M machines used to connect to bulletin boards?

I'll explain the setup first as it helps frame the question. I've now got a N8VEM CP/M board talking to a PockeTerm terminal board and displaying (in retro Green!) on a VGA monitor. Photo here: http://hackaday.com/2009/03/04/n8vem-computer-with-a-3km-wireless-link/ I now have a truly independent computer that does not need a PC to run. And it boots in 2 secs!

The N8VEM talks to the PockeTerm via a standard 3 wire RS232 connection. But what I also want to do is talk to a radio module at the same time. The radio module happens to run at 1200 baud which I gather is the same speed that BBS' used to run.

Here are a couple of scenarios:

N8VEM/Board/Retro computer has one RS232 connection which normally goes to a dumb terminal. It also goes via a RS232 splitter to a modem/radio module. You type 'DIR' on the keyboard. That goes to the board, which responds with A>. The A> goes both to the display, and also to the modem. Anything the modem collects also goes to the board via an OR gate. This is a pretty simple setup but I don't think it replicates how things used to work?

Scenario 2. The board/N8VEM/retro computer has two serial ports. One goes to the dumb terminal and one goes to the modem. I think this is more historically accurate but I'm not sure how it works.

The user wants to download a file from the BBS. They might run XMODEM or Kermit. The versions I have of those programs only listen to one port and don't care whether the data coming back is from the dumb terminal or the modem. You could manually key in a 132 byte packet on the keyboard if you wanted. Did the vintage computers have different versions of xmodem that only talked to "port 2"?

If so, and I assume this is the case, then it is interesting to note BBS programs that enabled you to 'log in' to CP/M at the remote machine. Was this every used much, or did people interact with the remote machine via an intermediate program like RBBS that listed files and handled transfers? But that still would be complicated, because the users machine would have to be running a program that captured keyboard input and sent it off up the modem, where the program at the other end then sent it back. And if there were two serial ports, did real retro computers have those running at different baud rates, ie 9600 for the dumb terminal and 1200 (or 300) for the modem?

I'm intrigued to find a number of programs on the Walnut Creek archive that run BBS and were in themselves written in CP/M. This opens up a form of networking for CP/M, in that one could upload a file, then another user could download it later. Even if only one user could be connected at any one time, this is still a useful protocol for wired and wireless networking for CP/M.

Help and advice would be most appreciated.

Chuck(G)
March 14th, 2009, 09:35 AM
Several schemes were used. Take, for instance, BYE (http://www.retroarchive.org/cpm/cdrom/SIMTEL/SIGM/VOLS000/VOL065/BYE78.ASM), which was a small utility that required the sysop to generate his system with some room left above CBIOS in memory. BYE loaded up there and watched the modem and handled logon and logoff. BYE was about the simplest BBS that I'm aware of.

CP/M jump vectors were then patched and I/O was redirected appropriately. If the user wanted to send a file, he ran XMODEM or DSZ or whatever was provided. XMODEM (or whatever you used) was configured for a specific COM port to which the modem was attached.

RBBS is essentially a big hunk of BASIC that handled file transfers and messaging. More friendly for newbies.

RichCini
March 14th, 2009, 10:47 AM
Several schemes were used. Take, for instance, BYE (http://www.retroarchive.org/cpm/cdrom/SIMTEL/SIGM/VOLS000/VOL065/BYE78.ASM), which was a small utility that required the sysop to generate his system with some room left above CBIOS in memory. BYE loaded up there and watched the modem and handled logon and logoff. BYE was about the simplest BBS that I'm aware of.

CP/M jump vectors were then patched and I/O was redirected appropriately. If the user wanted to send a file, he ran XMODEM or DSZ or whatever was provided. XMODEM (or whatever you used) was configured for a specific COM port to which the modem was attached.


I actually recently configured an RBBS host system for my IMSAI. I tried it with an external Hayes 300 modem but I couldn't get it to auto-answer properly (I was using a VG Bitstreamer) so I switched to a PMMI-103 internal board. The properly modified BYE program watched for the ring signal from the modem and answered the phone. BYE then chained to the RBBS program. From the client-side, it was if you were sitting at the CP/M console -- everything you typed appeared on the host console screen and if so configured, you can drop-out to a CP/M prompt. I would think of BYE+RBBS more in the context of a "remote desktop" than a multi-user BBS like Mystic.

When you hang-up, your RBBS session ends and BYE waits for the next caller.

I did a bunch of testing with this setup and my various classic and non-classic machines -- a Windows box, an Apple II+, and a Commodore C64. The PMMI modem is pulse-only for dialing, so I can't use the IMSAI as a dial-up terminal with the test PBX I have (which only supports Touch Tone dialing). Otherwise, the PMMI on the IMSAI worked the first time I used it.

The only comment I'll make with regards to modems is that the auto-negotiation feature of the new modems (even 1200 baud modems) messes up the PMMI (and probably other 300-only baud modems). I found that I could only successfully connect to the 300-baud host if I forced the 1200-baud modem to work at 300-baud (on Windows, use a 300 baud port speed).

I actually have a cheap Windows PC running Mystic with a Digi 8-port serial card, 8 Hayes Smartmodem 1200's and an 8-line PBX. Theoretically this could be part of a VCF display, but it would be back-end hardware only because other than the modem speed, it's not vintage.

Chuck(G)
March 14th, 2009, 11:37 AM
I've still got a bunch of old BBS software packages.

PCBoard, Sapphire, etc. My favorite was Auntie, which I ran on a NT system multiline. The NT system also periodically dialed up and ran UUPC to get email.

You could probably work up some virtual com ports that would simulate a modem and funnel it through a NIC if you wanted to keep the experience alive.

If I wanted to run RCPM or RBBS or BYE on a CP/M system, I'd be tempted to use a PC as a network-modem bridge and just fake all of the modem signals.

My modem with BYE was a Racal-Vadic 3450 "triple modem" that ran 300/1200 and "Racal" mode (1800?) when talking to other 3450s.

I don't miss the line noise.

RichCini
March 14th, 2009, 12:15 PM
I've still got a bunch of old BBS software packages.

PCBoard, Sapphire, etc. My favorite was Auntie, which I ran on a NT system multiline. The NT system also periodically dialed up and ran UUPC to get email.

You could probably work up some virtual com ports that would simulate a modem and funnel it through a NIC if you wanted to keep the experience alive.

If I wanted to run RCPM or RBBS or BYE on a CP/M system, I'd be tempted to use a PC as a network-modem bridge and just fake all of the modem signals.



I guess what I had envisioned was having VCF participants configure their machines with modems and connecting them to the PBX to communicate with RBBS on the IMSAI. Downside is it's single-user. Upside is that it's certainly vintage.

That's when I thought about the modem bank on a Windoze box with Mystic. I found a copy of Auntie 5.12 but it says it's for DOS. Did you run it in a DOS box under NT? I have a copy of NT4 floating around and the NT drivers for the Digi board. Is it easy to setup?

Chuck(G)
March 14th, 2009, 12:47 PM
That's when I thought about the modem bank on a Windoze box with Mystic. I found a copy of Auntie 5.12 but it says it's for DOS. Did you run it in a DOS box under NT? I have a copy of NT4 floating around and the NT drivers for the Digi board. Is it easy to setup?

Roger that. Multiple DOS sessions under NT. I may still have my Auntie notes kicking around. At worst, I still have my hard drive with the Auntie installation on it. I ran a bunch of USR Courier modems from it.

Auntie is pretty easy to set up. The nice part about it is that you can insert your own commands into menus (batch files) very easily.

Dr_Acula
March 14th, 2009, 03:26 PM
Many thanks for the replies.

Bye looks very interesting, especially the remote cp/m facility. I was thinking it might be some sort of high memory TSR type process that sits in the background listening for modem(s) to ring. I've got sbasic doing chain and shell via batch programs so it is possible to have a series of programs each running the next. The board I am using has 4 serial ports, so with one devoted to the dumb terminal, that leaves three that can connect to various things, including wireless modules and wired link to a PC (and hence the internet).

I see some interesting possibilities here. It would be great to be able to log into a cp/m board via the internet. Then run a program on that board that logs into the next board. If each board had an autoexec.sub on startup that ran a program like Bye, then each board would be ready to be logged into at any time.

I've got several TSR programs already sitting above CBIOS, to handle things such as interface to a LCD display and a keyboard. So adding more is just a matter of making some more room. Back to coding...

RichCini
March 14th, 2009, 03:45 PM
Roger that. Multiple DOS sessions under NT. I may still have my Auntie notes kicking around. At worst, I still have my hard drive with the Auntie installation on it. I ran a bunch of USR Courier modems from it.

Auntie is pretty easy to set up. The nice part about it is that you can insert your own commands into menus (batch files) very easily.

If you can find your notes, I'd appreciate it. I'd like to try to import the CPMUG and Walnut Creek CDROM file trees into the BBS and see if it's VCF display-worthy.

MikeS
March 15th, 2009, 11:31 AM
There are quite a few 8 bit BBSs on the Internet these days, with RS-232<>TCP/IP bridges at both ends (usually freeware running on an old PC; a good use for an old laptop with a bad display).

Just for fun I hooked up 3 ports of a multi-user Cromemco and an AIM-65 to the 'Net a while back and accessed them remotely from a PC running ProComm; I used a single TCP/IP port and an old RS-232 terminal server so I could only select one system at a time, but you could run multiple bridges using different ports for real multi-user operation.

RichCini
March 15th, 2009, 01:28 PM
There are quite a few 8 bit BBSs on the Internet these days, with RS-232<>TCP/IP bridges at both ends (usually freeware running on an old PC; a good use for an old laptop with a bad display).

Just for fun I hooked up 3 ports of a multi-user Cromemco and an AIM-65 to the 'Net a while back and accessed them remotely from a PC running ProComm; I used a single TCP/IP port and an old RS-232 terminal server so I could only select one system at a time, but you could run multiple bridges using different ports for real multi-user operation.

Interestingly, some of the modern PC-BBS programs seem to have that bridge capability but I never really investigated it. I think I'll pull the docs and read-up. Might be the next project...

Dr_Acula
March 15th, 2009, 04:52 PM
I just found this thread that ran last month http://www.vintage-computer.com/vcforum/showthread.php?p=89726 which linked to this http://home.ica.net/~leifb/bbs/

I guess one way to learn about a BBS is to actually set one up. I've played around with Telnet recently using the SIMH and vb.net and while it seems a bit odd to telnet into another program on the same machine, there is no reason it could not be another machine. An old PC is probably the cheapest TCP/IP<>RS232 bridge.

I'm still a little lost in the RBBS code (MBASIC line numbers can do that) and I can see how it does messages but I'm not sure how it does file transfers. It makes reference to a help file that I don't have and one that I did find has very similar instructions but not quite the same, which included 'F' for file transfers but I'm not exactly sure where in the code that is. Maybe some of the machine code BBS programs would be better.

In a generic sense, I guess what one wants is a BBS that will run on CP/M and talks to a serial port. The old PC can then handle interface to the internet. I have a vague feeling I saw someone had done this a few years back. Probably many people have.

Did FTP and CP/M ever overlap? There are GUI FTP programs but behind the scenes it is all text based. I guess one problem would be file structures and the lack of directories in CP/M. A BBS with file transfers would be a simple FTP anyway.

Addit: I just logged into the bbs bbs.jammingsignal.com using teraterm and it is online and working. It even has that wonderful retro feel that 1200 baud gives you. You gotta wait for your data! The bridge software should make things easier.

Chuck(G)
March 15th, 2009, 05:33 PM
I don't know if there was ever an overlap. Kermit was widely used when talking to mainframes, as witnessed by the number of configuration overlays available. I used Kermit, myself.

However, someone has decided to pursue the sick idea of a Z-80 CP/M ftp server:

http://www.kc85.susowa.homeftp.net/ (in German)

MikeS
March 15th, 2009, 06:32 PM
I just found this thread that ran last month http://www.vintage-computer.com/vcforum/showthread.php?p=89726 which linked to this http://home.ica.net/~leifb/bbs/

I guess one way to learn about a BBS is to actually set one up. I've played around with Telnet recently using the SIMH and vb.net and while it seems a bit odd to telnet into another program on the same machine, there is no reason it could not be another machine. An old PC is probably the cheapest TCP/IP<>RS232 bridge.

I'm still a little lost in the RBBS code (MBASIC line numbers can do that) and I can see how it does messages but I'm not sure how it does file transfers. It makes reference to a help file that I don't have and one that I did find has very similar instructions but not quite the same, which included 'F' for file transfers but I'm not exactly sure where in the code that is. Maybe some of the machine code BBS programs would be better.

In a generic sense, I guess what one wants is a BBS that will run on CP/M and talks to a serial port. The old PC can then handle interface to the internet. I have a vague feeling I saw someone had done this a few years back. Probably many people have.

Did FTP and CP/M ever overlap? There are GUI FTP programs but behind the scenes it is all text based. I guess one problem would be file structures and the lack of directories in CP/M. A BBS with file transfers would be a simple FTP anyway.

Addit: I just logged into the bbs bbs.jammingsignal.com using teraterm and it is online and working. It even has that wonderful retro feel that 1200 baud gives you. You gotta wait for your data! The bridge software should make things easier.
-------------
Well, don't forget that although you're connecting through a Telnet connection, most of these classic BBSs are actually running on the *real* vintage hardware, a C64 in the case of Leif's system. To see what one of these systems actually looks like, check out:
http://cottonwood.servebbs.com/
Also a BBS running on a C64, and one of the very few still accessible the old-fashioned way over the POTS (last time I checked), as well as via Telnet; those floppy drives are actually used by the BBS.

So no, at your end the bridge software isn't going to make things any easier, just allow you to use your CP/M system and terminal software instead of Teraterm on a PC.

Really no different than it was back then; just think of the old laptop (or whatever you're using as a bridge) as a Hayes-compatible modem connecting to another modem at the far end. In fact you can buy RS-232<>TCP/IP "modems," but they tend to be a little pricey.

To download a file you generally told the far end to send a file with kermit, xmodem, etc. and then switched your local terminal program into the appropriate receive mode, although the actual commands, detail and amount of automation varied among BBSs and terminal software.

Dr_Acula
March 15th, 2009, 07:33 PM
Thanks for the link. Of course, this all needs to run on pukka hardware if possible. Funny how the links work. I go to the cottonwood site and half way down it mentions Jeff Ledger. I'm assuming that is the same Jeff who posts over on the Propeller forum and indeed, I sent him some CP/M hardware to test a few months back. The propeller group are working on getting a whole retro computer into a single 40 pin chip. They might just do it too - the Z80 emulation is coming together, the vga driver works, the keyboard works and there is even code that encodes and decodes sine waves to create a software modem and send data down the phone line or via wireless.

I reckon a BBS on real hardware sounds a great little project. Ideally real hardware via wireless. Back to soldering...

Dr_Acula
March 18th, 2009, 03:59 PM
Just a brief update - Henk Verbeek has gone and connected a N8VEM to the internet using the bridge software. It actually works! He is on the other side of the world to me, but I was able to log in, run the BBS software, and even jump out into CP/M and then recompile the BBS software with some changes. The N8VEM forum is discussing this at the moment. File transfers ought to be possible by logging out to CP/M and running xmodem at both ends. It is early days yet, but this could well end up one way of networking vintage computers. We might see if we can get a board up more permanently running a BBS.

A question for the experts - were file transfers done from within the BBS software, or did one log out to CP/M, run xmodem or kermit etc, and then re-run the BBS software afterwards?

Chuck(G)
March 18th, 2009, 04:05 PM
A question for the experts - were file transfers done from within the BBS software, or did one log out to CP/M, run xmodem or kermit etc, and then re-run the BBS software afterwards?

Depends on the setup. BYE is pretty much nothing more than a CP/M redirector and a lot of BBS ran BYE "barefoot", so you're pretty much always at a CP/M prompt.

If you ran RBBS, you ran it under control of BYE.

Dr_Acula
March 19th, 2009, 05:34 PM
Ah, BYE sounds just the ticket. Might need to get the source because it will need to know how to access the serial port.

I replicated Henk's setup (I think he is disconnected again now) but I'm not able to log in from the outside quite yet. Works from within a LAN though. I think all firewalls etc need to be off (which raises some other issues!).

I'm trying to understand the history here. Back in the olden days I think you would connect a modem to the serial port, dial up a BBS using a telephone, connect the modem, run BYE(?), then start typing and the BBS would send things back.

Even though Telnet was around before CP/M, I suspect only universities and big institutions would log in without using a telephone.

So now, we are using bridge software to fake a telephone line connection and also to fake a modem. So if you are sitting in front of a 'pure' CP/M cmoputer, and not using a PC in any way (except as a bridge from serial to the internet), and you promise not to touch that PC, then how would this work? From within CP/M, you need some way to 'dial' somebody. This would have been on a telephone, but there is no phone. So I think some other sort of software needs to be written/found that does the dialing. Fortunately, the number to dial is a 12 digit IP address, which isn't much more that a phone number, and maybe shorter than an international phone number (no-one dialed a BBS overseas? Please tell me no!)

So something like BYE needs a menu of numbers (IP addresses) that the user can look at, edit, call etc. Then it needs to send this to the bridge software to tell the bridge software which IP address to Telnet to.

Maybe, if that worked, one could look at a hardware bridge solution (which ought to be possible as Henk is using one on the MyCPU machine, and those chips are only $7 at Futurlec).

But first, a PC bridge solution. One thing that Leif's program can do is have many copies running, as many as there are serial ports on the PC. So if one had a large collection of vintage machines and wanted them all online, that could be possible with a single PC with serial expansion cards.

I wonder, would it be possible to build some sort of CP/M network?

RichCini
March 19th, 2009, 05:52 PM
Ah, BYE sounds just the ticket. Might need to get the source because it will need to know how to access the serial port.

I'm trying to understand the history here. Back in the olden days I think you would connect a modem to the serial port, dial up a BBS using a telephone, connect the modem, run BYE(?), then start typing and the BBS would send things back.



Well, I didn't use BYE when it was originally available, but the source is in the CP/M User's Group archive. I probably have a cached copy on altair32.com. In the index, look for BYE339. There are versions up to 5.x or 7 (I forget), but 3.39 works for me. Later versions support more diverse types of modems. I will say I was never able to get the HAYES insert to work for me, but I think that was because of the serial card and not the insert specifically.

BYE is two or three source modules -- one core program, an "inserts" (or overlays) for the modem and console. It's a cut-and-paste job, then compile the entire thing.

Each distribution of BYE comes with a list of inserts -- one for each of the then-common modem and console card manufacturers/models. That's how you configure BYE for your system -- pick the insert and configure the ports to the right values. BYE can be configured to chain to a BBS program or drop to CP/M. A console redirector is a good description -- Windows Remote Desktop but 26 years earlier.

BYE is a host program -- it watches the modem status lines and when it senses a ring, it directs the modem to connect, waits for a carrier and if valid, it chains to the BBS program (if so configured). My system uses a PMMI-103 which is an S-100 card. I guess it could be used with an acoustic coupler and regular phone, but the SYSOP would have to be sitting there to connect.

Dr_Acula
March 19th, 2009, 06:25 PM
I'll check out the source - it might be on the Walnut Creek CD somewhere too.

Meantime, I'm a bit stuck logging into my own machine from outside. I don't know how to test that short of getting in a car and going to another location and using someone elses computer. Which I have done, but I can't connect. Ping fails too. I'm pretty sure all the firewalls are turned off. I wonder, is it possible to simulate someone logging into your machine? The internet works. Ping out from the machine to somewhere works and gives a reply. But how do you simulate someone pinging you? I'm wondering if this might be a portforward issue in the router - maybe I'll look into explicitly opening port 23.

Also, I hope this won't involve a solution that has firewalls turned off. If that is necessary, then maybe a hardware bridge is a better answer.

MikeS
March 19th, 2009, 06:48 PM
Ah, BYE sounds just the ticket. Might need to get the source because it will need to know how to access the serial port.

I replicated Henk's setup (I think he is disconnected again now) but I'm not able to log in from the outside quite yet. Works from within a LAN though. I think all firewalls etc need to be off (which raises some other issues!).

I'm trying to understand the history here. Back in the olden days I think you would connect a modem to the serial port, dial up a BBS using a telephone, connect the modem, run BYE(?), then start typing and the BBS would send things back.

Even though Telnet was around before CP/M, I suspect only universities and big institutions would log in without using a telephone.

So now, we are using bridge software to fake a telephone line connection and also to fake a modem. So if you are sitting in front of a 'pure' CP/M cmoputer, and not using a PC in any way (except as a bridge from serial to the internet), and you promise not to touch that PC, then how would this work? From within CP/M, you need some way to 'dial' somebody. This would have been on a telephone, but there is no phone. So I think some other sort of software needs to be written/found that does the dialing. Fortunately, the number to dial is a 12 digit IP address, which isn't much more that a phone number, and maybe shorter than an international phone number (no-one dialed a BBS overseas? Please tell me no!)

So something like BYE needs a menu of numbers (IP addresses) that the user can look at, edit, call etc. Then it needs to send this to the bridge software to tell the bridge software which IP address to Telnet to.

Maybe, if that worked, one could look at a hardware bridge solution (which ought to be possible as Henk is using one on the MyCPU machine, and those chips are only $7 at Futurlec).

But first, a PC bridge solution. One thing that Leif's program can do is have many copies running, as many as there are serial ports on the PC. So if one had a large collection of vintage machines and wanted them all online, that could be possible with a single PC with serial expansion cards.

I wonder, would it be possible to build some sort of CP/M network?
-----
I'm not sure I understand all the questions, but I think BYE is intended to be used at the BBS end to handle the connection and present CP/M to the caller, similar to DOS's CTTY. At the calling end you would normally use a terminal program (MEX was a fairly good example) and it would handle the dialing and file transfer. I don't know about other bridge programs but I think they're probably similar to Leif's and more or less emulate the Hayes protocol, so to "dial" the remote system you would type ATDT but instead of a phone number you would use the server name or IP address (see section 5.5 of the BBS Server manual).

Other than the "phone number," both the caller and the BBS would use and see the same commands and result codes etc. from the bridge s/w that they would if they were connected to a "real" modem, and be unaware that they were in fact connected over the net through modem emulators.

MikeS
March 19th, 2009, 06:54 PM
I was going to try to call you but couldn't find the IP address at a fast glance; did you remove it?

I haven't tried one, but there are free IP redirector services so that you can have a 'fixed' Internet address even though your IP issues you different dynamic ones.

Anyway, if you're still around, send it again (by PM if you like)

I could even fire up a Cromemco at this end and let you log in and we could message and email on there ;-)

Dr_Acula
March 19th, 2009, 07:33 PM
Yes sorry I took the IP address down when it didn't work. After some more research I'm starting to think the next thing to try is portforwarding on the router.

I also found some links to programs that periodically ask the ISP for the latest IP address so you can automatically update it. Though that would be a pain for everyone at the other end to have a phone book that kept changing all the time. So a static IP might end up being the answer. I gather the world is running out of addresses, and that is why they are dynamic?

Re "you would type ATDT but instead of a phone number you would use the server name or IP address (see section 5.5 of the BBS Server manual)."

Yes, that would make sense. It looks like all the bits exist to do this - just a matter of pulling it all together. Would it be possible to provide a link please to the BBS server manual?

MikeS
March 19th, 2009, 07:36 PM
Yes sorry I took the IP address down when it didn't work. After some more research I'm starting to think the next thing to try is portforwarding on the router.

Re "you would type ATDT but instead of a phone number you would use the server name or IP address (see section 5.5 of the BBS Server manual)."

Yes, that would make sense. It looks like all the bits exist to do this - just a matter of pulling it all together. Would it be possible to provide a link please to the BBS server manual?
Probably the same place you got the software:
http://www.jammingsignal.com/files/BBS%20Server%201.2%20Manual.pdf

Dr_Acula
March 20th, 2009, 04:10 AM
Thanks for that - reading it now.

Re the IP address - I haven't been able to find much about this on the internet, so here is my theory anyway. I have a single router and I happen to have 8 computers on that router on a LAN. If I get on one computer and I browse the internet, then a message goes out from that computer to the router and hence to the internet, and then the 'internet' sends back some data to the same place that the signal came from.

BUT - say a computer is sitting waiting for someone to log in. It has opened port 23 and is waiting for some data. It isn't sending anything out to the internet - just waiting. Someone logs in by typing my IP address. That address gets them to my router. But where does the signal go next? Which computer does the router then feed those bytes to? Does it send them to all 8 computers? Does it send them to any of the computers? Or does it (and this is my theory) send it to a specific computer that the router knows is listening to port 23.

So - that means I need to tell the router somehow where to send incoming packets. I have logged into my router, and indeed I think there is a way. I can open up specific ports on specific computers. The router wants to know the local IP address and I have set these as static in the control panel network settings. This particular machine has a LAN IP address of 192.168.2.17 And the router allows me to open a specific port on that specific machine. So I've told it to open port 23.

Now - what I'm hoping is that any packets that come in will arrive at the router and the router will then look up who can talk to port 23 and will forward them to that machine.

The only catch - I can't test it from within my own LAN because it always works!

So, here goes the big test - my ISP IP address I'm told is 121.45.128.99

Fingers crossed (in a big way) - if someone can log in and find the board - or even the single line sign on message, then this will be working and I'll write all this up. If not - I have a colleague who is an expert on routers and port forwarding and can help me.

I have a feeling that simpler setups may not need any of the above security. A dial up connection would not. A older DSL modem that only went to one machine wouldn't either. Even Telnet was quite secure till the mid 1990s. I think it was only more recently that routers defaulted to having all the ports blocked unless you specifically unblocked them. At least sites like this http://portforward.com/ do make it easier.

If we can get this working, then yes, MikeS, it would be great to talk directly to the Cromenco. Maybe even grow it into a BBS if there is enough interest...

tezza
March 20th, 2009, 09:11 AM
I logged in successfully and could "dir' and see your cp/m directory. It was very quick too. Only thing is, I got an echo so when I typed it looked like "ddiirr". It worked though.

I wasn't sure how to leave a sign on message?

Tez

MikeS
March 20th, 2009, 10:44 AM
@Tez: sounds like you had local echo (AKA half-duplex) turned on.

I tried it but only connected to the server:

Dr_AculaN8VEM_Australia
connecting...

Time was 18:41 GMT (abt 1 1/2 hrs after Tez?); maybe the CP/M system was disconnected?

Dr_Acula
March 20th, 2009, 01:43 PM
Wow - this actually works! Much rejoicing.

It is morning here and Henk has just posted overnight on the N8VEM forum an almost identical description about opening ports. So I think this is on the right track. The board is actually out in my shed and I just tried logging in myself and it says it is busy. So I assume that someone else is using it - and that is great because it means if more than one person tries to log in you get a meaningful message back saying to try again later. And this is with no BBS software running as yet - that will be the next step.

Re double echo - I'd be interested to hear experiences from others on that one. I got a double echo using teraterm talking to the Netherlands. But the weird thing is that it only happened on the first login and fixed itself on the second login. I presume it is a matter of turning off local echo so that the only byte that comes back is the one that came from the remote machine?

There are some timeout settings that might need adjusting - eg I think it drops out after 15 mins of no activity. Not sure about the settings like whether to drop out if the BBS drops DCD. These are modem settings I think and won't apply for this application.

Baud rate is 9600. We could try up to 38400.

What BBS software would people suggest?

Addit: It looks like it hung about 6 hours ago, and then about 5 people had tried to log in after that. The default on the disconnections was no disconnection, so I've changed that so it disconnects after 5 mins of inactivity and after 30 mins of anyone being connected. Working again now and baud rate is 38400 and it is at an A> prompt. Try running wordstar (WS).

MikeS
March 20th, 2009, 02:21 PM
Worked for me this time, although using Hyperterm I was dropping characters; probably my end, will try a different TelNet client. Said HELLO but figured WS might be messy; what kind of terminal is it installed for?

So, can I log on to one CP/M board out in the shed and then talk to you on another in the house via wireless link yet? And if not, why not?
;-)

I'll thank Leif on your behalf next time I see him in a couple of weeks...

Chuck(G)
March 20th, 2009, 03:47 PM
Tried it, but I had to type very slowly, otherwise characters were dropped or garbled. Even though I had local echo turned off, I still got double characters.

Reasonably, 4800 is about the fastest you're going to do with a 4 MHz Z80. Limiting the speed to 1200 would historically be more accurate.

MikeS
March 20th, 2009, 03:56 PM
Chuck's experience sounds like mine, although I didn't get any double characters. But if Tez really had no problems other than the echo, then either he was doing something different or his neighbour across the Tasman Sea changed something. What kind of handshaking have we got going there, and is it a full cable?

Dr_Acula
March 20th, 2009, 04:05 PM
Woot!

Cool if you could thank Leif personally. I'd really appreciate that.

Am brainstorming with Henk about bbs software. Some nice packages here http://www.bbsdocumentary.com/software/AACPM/CPM/RBBS/ which ran with no errors and they are .com files. Pretty amazing considering they would have been compiled for a completely different machine. The .asc I think is a .bas file and the source looks fairly similar to the one Henk has (but the two bugs on his version are not there). I ran it on another board with the setup and it asked a large number of questions and then worked just fine. It even had an option to chain a program when it finishes, so it could chain itself and prevent users ever getting into CP/M if you wanted to.

I tried doing some tests with xmodem and that hasn't worked. The message coming back is "short packets". I suspect solving this will solve the dropped character issue too.

I tried 9600 and 38400 and no difference.

I also tried logging in via a terminal program on the local PC and that works fine. So the difference between it working on the local machine and logging in from a different PC (using the same terminal software Hyperterminal private edition v5.0) is the LAN network cabling, the router and the bridge software. Of these 3, I suspect the bridge software would be the first to look at. I couldn't find the source code - maybe it isn't out there, but it could be handy to trap data going through and trap an xmodem packet and see if it indeed it is short.

Re wireless links - yes the aim is to be working on a portable CP/M computer, out in the yard or anywhere in the house, and to connect to another one wirelessly, do file transfers, and then to connect to the CP/M 'internet', which in practice would be a BBS somewhere. I'd like to get data hopping smoothly between wireless nodes too. I've got a lot working there - I have a test setup with 4 boards and they are all running some software that tests for links with a 'ping', then builds up a database of all the boards each board can talk to. Then every now and then, each board will pick a friend at random and send it the list of its friends. (using a shell to xmodem). Over time, each board ends up with a bunch of text files which has the lists of what each board can talk to. I've got that working now (it takes all night to build up a good statistical database), and I've also got upgraded software automatically propogating through the network.

Next step is to take the list of each boards friends and work out optimum paths for any message. Probably just work through every combination - I think it should be a manageable factorial number if the number of boards in the mesh is small. Then put that list in another text file, and if a message arrives with a destination x, then every board knows the most efficient path to send it.

But an important part of all this is the ability to log into the internet from within CP/M. So that might require a modification to Leif's program, ie from within CP/M you send a command out to the serial port that contains an IP address, and the bridge software tries to connect to that IP address, and then sends back a message either with the connected data or with an error saying unable to connect.

Dr_Acula
March 20th, 2009, 04:15 PM
Re "Reasonably, 4800 is about the fastest you're going to do with a 4 MHz Z80. Limiting the speed to 1200 would historically be more accurate."

Ok, Dropped it back from 38400 to 1200. It has got that retro feeling again.

Tried xmodem from the local PC and all ok as it was for 38400, but from another PC even at 1200 I am getting errors but less errors - some short packets and some checksum errors and some packets are ok but not enough for the file to go through. I'd be interested to see if anyone has dropped characters now at 1200.

tezza
March 20th, 2009, 04:43 PM
Chuck's experience sounds like mine, although I didn't get any double characters. But if Tez really had no problems other than the echo, then either he was doing something different or his neighbour across the Tasman Sea changed something. What kind of handshaking have we got going there, and is it a full cable?

I logged in using Telnet in the MS-DOS window under Windows XP.

The echo seemed to be the only problem initially. Certainly I could get a directory without any problem. I even managed to get mbasic up! However once I did, it seem to stall.

I then disconnected and tried to log on again. I couldn't. Perhaps I was the one that hung it.

Tez

Dr_Acula
March 20th, 2009, 04:49 PM
Yes it was stuck in mbasic. That was my fault though as I hadn't set the timeout parameters. Now, even if it does hang, it should disconnect after 5 mins of inactivity. Try again now and see if the characters are better when run at a slower rate. MikeS, you might be right, maybe handshaking is the issue. This is a 3 wire null modem connection. So no RTS etc. Leif's program has this as an option and so it knows this is the hardware setup. But maybe that isn't enough? Are the dropped characters ones going into the board (ie you type DIR and it comes back with DR?), or is it characters coming out of the board? Maybe the software needs some sort of buffering/timeouts? I've been using similar techniques with a vb.net terminal program where it periodically checks for input 10x a second and if there is a character it adds them to a buffer. If no character has come in for (say) 0.3 seconds it sends the buffer on.

MikeS
March 20th, 2009, 05:01 PM
Hmm, I would think that a 3-wire cable would definitely cause problems, since there's either no handshaking at all or it'd be XON-XOFF, but that would probably mess up file transfers.

But that still doesn't explain how/why Tez had no problems...

Time for me to dust off some old hardware and try it myself so I know (or think I know) what I'm talking about...

MikeS
March 20th, 2009, 05:07 PM
Just tried it again (and apparently crashed it by asking for c: ); This time I tried Teleterm from an XP command prompt like Tez and it did indeed work quickly but echoing commands. Is that an option on the BBS end by chance? Looks like I really *will* have to dig it out again.

And it's time to fire up a *serious* Telcom program...

Chuck(G)
March 20th, 2009, 06:03 PM
You have to add some bullet-proofing to your BIOS. I just logged on and was greeted with:

BDOS ERR ON D: BAD SECTOR

I take it that you don't have a D: drive.

The simplest thing is to map all references (via the select routine in the BIOS) to the same drive. So the user can't get away from the legal drives. You could even do that by hooking the CBIOS vector with the BBS software so that your system would operate without restriction when you run it locally.

MikeS
March 20th, 2009, 06:19 PM
Oops - that was me, looking for some useful software; looks like he swapped disks and the only file on a: was xmodem. b: and c: did come back empty but d: finally crashed it. Needs a watchdog.
Sorry... ;-)

Chuck(G)
March 20th, 2009, 06:30 PM
Oops - that was me, looking for some useful software; looks like he swapped disks and the only file on a: was xmodem. b: and c: did come back empty but d: finally crashed it. Needs a watchdog.
Sorry... ;-)

That's okay--it was me who got it stuck in MBASIC. ;)

Here's some files to stick on the BBS. ADVENTURE and STARTREK (uses BASIC-E, included)

MikeS
March 20th, 2009, 06:38 PM
Just tried to log in with my Radio Shack M100 but unfortunately it was busy. It ended with some garbage; what baud rate are we running right now?

Never mind; guess someone else was trying. Got in with the M100 this time, but it's still trying to read a non-existent drive d:

There are a couple of options to control echo from the BBS; maybe they need looking at...

MikeS
March 20th, 2009, 07:46 PM
Well, I was going to put a Cromemco on line but alas, the main HD seems to have developed a fatal problem since it last spun.

So it may be a while... maybe I'll put the AIM-65 up instead.

MikeS
March 20th, 2009, 08:31 PM
http://www.vintage-computer.com/vcforum/attachment.php?attachmentid=1554&stc=1&d=1237609709

Dr_Acula
March 20th, 2009, 08:36 PM
Nothing like a test in the real world to iron out the bugs. It was stuck on drive D (which doesn't exist). I've done a hard reset. I should point out that there is absolutely nothing you can do to this board that would do any permanent damage. Indeed, this particular board was just a pile of chips only 3 days ago. You can even delete files or corrupt them if you feel so inclined.

It has drive A and B only. Drive B just has 3 programs on it that are needed to get the board talking and downloading.

I guess one could think about a reboot circuit that sends a hard reset to the CPU if something doesn't happen for a while.

Then there is the other approach which is to always stay within a BBS program, and set it so that any exit to cp/m just restarts the bbs program.

Addit: I needed some exercise so I took a pick and shovel and dug a few more metres of road. Doing it by hand because it is too steep to get machinery in. Should take about 2 more years at this rate. But my typping muscles don't work properly any more!

I do like logging in and getting the message "the connection is busy, please try again in a few moments".

@MikeS - is the cromenco repairable? Also, nice looking computer there in the photo. I've got 20x4 LCDs which are a little too small for a lot of things. What is yours - 40x8?

MikeS
March 20th, 2009, 09:01 PM
@MikeS - is the cromenco repairable? Also, nice looking computer there in the photo. I've got 20x4 LCDs which are a little too small for a lot of things. What is yours - 40x8?
----------
Yes and yes: It's an 8x40 Tandy M100; now that I can log in and get a directory the screen is a little messy. Looks like partly the 40 col screen but also a handshaking problem at this end I think, the M100 uses XON/XOFF and I haven't found that option in the Server. More research is needed.

Just logged in with an 80 col terminal and it looks perfect. Going to try xmodem.

Cromemco should be OK if I can find another HD; lots of spares.

MikeS
March 20th, 2009, 09:27 PM
Downloaded a couple of files OK with xmodem. Tried to upload Chuck's files and it started well with no errors, but partway through ADVENTUR.COM it got very confused. Could use STAT on that disk to see how much space is available. Tried again to upload to b: but it said there was a disk read error.

but in general it seems to work quite well; I'm running Procomm on a DOS system at 9600bd - no echo and no dropped characters.

Tried another upload of ADVENTUR.COM; out of ~25KB it got to around 5000 without any errors, started having errors, and at ~6000 died and crashed the system with the spurious crap that xmodem was still sending (to the CP/M prompt).

Wonder why file size should matter... anyway, have fun!

Dr_Acula
March 20th, 2009, 10:17 PM
Cool - more things are working. I rebooted out of the drive M error - looks like I need to go back to the eprom and redo some code there to block non existant drives. Drive B is read only so this board only has drive A. There are N8VEM boards with hard drives around so this can always grow once the basics are working.

Stat isn't on the board but DIRX will do a DIR and give you the amount of space left. There are several hundred k so disk full is not the problem.

I got HELLO. Thanks for the message!

XMODEM will give up after 10 errors I think, so the probability of a file not going through increases with file size.

I'm looking through some vb.net code I wrote last year and it may have the things needed to hand code a bridge - ie w3sock and all the serial comms. But better if Leif can help us out. It could be that he is batching up a packet after 32 bytes and we need to make it >132. Or something like that.

MikeS
March 20th, 2009, 10:42 PM
This time 80 columns on a genuine Cromemco C-5 terminal:

http://www.vintage-computer.com/vcforum/attachment.php?attachmentid=1556&stc=1&d=1237617846

Dr_Acula
March 20th, 2009, 10:53 PM
This is great.

It looks like xmodem crashes the board and it looks like we have enough info to show xmodem isn't 100% either, so I'm wondering maybe no xmodem for the moment as I'm going out for a bit and won't be able to reset the board. In the next day or two I'll rewrite the CP/M code so it doesn't crash if it gets xmodem data (need to block drive C to Z, and maybe also ignore characters with an ascii value 128 to 255.

I'll also look at BBS software and maybe Leif might be able to be contacted? I might head over to the commodore forum. (as an aside, all these boards are being powered by Commodore 16 wall warts - I got a job lot of 50 when I was a kid for $1 each).

MikeS
March 20th, 2009, 11:11 PM
No worries here; I think I've done all the testing I'm going to, at least for now, so if it crashes again it won't have been me.

I may play with the Cromemco a bit; should probably archive some of those 140 MB if I can bring the HD back to life, and while I'm playing I might as well fool around with putting it on the 'Net.

Had the AIM-65 connected but it needs 7bits with parity and I don't think that's an option, so I'm gonna have to dig in the basement for a protocol converter.

Anyway, glad I could help a little bit; it's been fun. Leif's usually at the monthly TPUG meetings but he happened to miss the last one; if/when I see him I'll talk to him, but you can also find his email address at the bottom of his personal page:
http://home.ica.net/~leifb/

Dr_Acula
March 21st, 2009, 05:41 PM
Ok, it looks like we need some work on xmodem. Henk had the same issue - he says "My experience was that a transfer from pc to n8vem succeeded for about half of the file and then stopped with an error. Sending a file from the n8vem to a pc didn't succeed at all. "

So, we need to work out what is going through Leif's program. It would only need one byte to get missed for it to all fail. Maybe there is a timing issue - eg a program can't listen to a com port and a telnet port at the same time. It ought to be possible to put delays in and also to capture data. I might take this board down (I'll need port 23 free) and see if I can get some simple winsock code working that can echo back some data - maybe send it through a com port and echo it back with a simple loopback cable. Then a remote user could send a pile of data at it and see if it comes back ok.

The other option would be for someone else to try this program and see if the problems come up the same.

MikeS
March 21st, 2009, 06:45 PM
Have you got any other protocols that we could try? Xmodem was never the most robust anyway. Ymodem/zmodem/kermit?

It certainly takes more than just one byte; all the transfer protocols have error checking and correction (up to a point). As I said, when I tried it it was flawless for the first few thousand bytes, then it would get the occasional error or two which it corrected, and then finally around 5000-6000 there was a sudden stream of errors which finally crashed xmodem.

The fact that the data is sent as packets within packets could well be a problem; we've had the same problem elsewhere trying to transfer data wirelessly between the M100 in the above picture and a PC since the protocols like Bluetooth etc. also all use packets. Have you tried exchanging data using xmodem over your wireless links?

I'll try to find time to play with it a bit; I did download a file *from* your system without error, but it was very small.

Dr_Acula
March 21st, 2009, 10:01 PM
Sorry, xmodem is the only one I've got. Coding a transfer protocol is getting right inside the operating system because you have to grab that packet and save it quickly. It is a long story, but suffice to say that it took many people working over several months last year to get it working. Before July last year getting a program onto a N8VEM meant putting it into an eprom. I can't take credit for fixing xmodem for the n8VEM but more recently I have subsequently coded both the Tx and Rx halves of xmodem in vb.net so I have an understanding how it works. It would be one of the simplest protocols around so if it doesn't work then more complex ones probably won't either. It sends a packet then waits for a NAK or ACK byte. If either of those two bytes didn't go through then it would wait 5 secs or so and then resend. So you would see it slowing down. I don't think that is what we are seeing. Rather, I think the 128 byte packet plus the checksum is not going through. I got two errors - one said "short packet" and the other said "checksum error". The short packet one is interesting because it suggests that the first bit of the packet went through, and the last bit with the checksum, but there were not the full number of bytes. So some bytes went missing somewhere in the middle.

Where would they go? Maybe they didn't get all round the world via the internet. But then again, I get the same errors logging in locally. So maybe they are getting lost in Leif's program somewhere. Perhaps the program polls the serial port, and in that brief moment it misses the next byte coming in via winsock.

At least I can replicate this error locally so I can work on it.

Re wireless, I do have xmodem sending files wirelessly between boards at 1200 baud. That works really well all through the house and outside as well. Uses these modules http://www.yishi.net.cn/index.asp?id=47 (eg the YS-1020U#) Lots of modules have been tried but only these ones in this series can do file transfers because they have a 256 byte buffer. Most modules are 32 or 64 byte, which is too small for xmodem. All the ones on that page are interchangeable - all that is different is the power rating. The 10mW ones are fine round the house. The 500mW ones are overkill and indeed won't work less than 2 metres apart and tend to make CRT displays wobble when they transmit. But they work great outside when you put them up on a high pole. And all the modules in that series have the same plug so you can drop in the right power one for the job. I made a little adaptor board to convert to a D9 RS232 plug. If you are going down that road let me know because I've got 100 of those little boards and I'll never use them all and would be happy to give some away.

I have pondered coding a bittorrent protocol. Ie one that can be terminated in the middle of a file and resume whenever a connection is there, and can handle noisy lines and won't crash on long files on the very last packet. It could be a fun project.

MikeS
March 21st, 2009, 10:47 PM
Looks like the protocol's not the issue anyway; I hooked up a couple of PCs locally, i.e Terminal PC A <> Bridge PC A <> Internet <> Bridge PC B <> Terminal PC B (I'm running out of cables/null modems/gender changers ;-) ) and all protocols failed. As a matter of fact xmodem was one of the better ones... ASCII transfer seems OK though.

Unfortunately with my fiddling I seem to have disabled one of them so I can't do any more diagnosing at the moment.

Have you tried any XMTR/RCVR pairs that don't have any buffering at all? I've been meaning to try a set for the M100<>PC link as well as some control/monitor stuff.

Another thing: are you available on MSN or some other immediate chat place? Might be useful to be able to communicate in real time some day while testing this stuff.

PM if you do and don't want to make it public.

Cromemco's humming again BTW.

Dr_Acula
March 21st, 2009, 11:01 PM
Well bad news that it doesn't work but good in that we are both getting the same sort of problem, and it ought to be possible to narrow it down.

Do you mean raw RF modules? The problem with those is that when nothing is transmitting, you get white noise coming out of the receiver. I gather that at 433Mhz this is left over noise from the universe cooling from the big bang. Anyway, UARTs don't seem to like white noise - every now and then they interpret it as a valid byte. So I've had to move up one notch to these modules that output a steady logic level (high) when nothing is coming through. There is a simple picaxe circuit that could act as a raw rf module to serial converter and for $4 for a picaxe chip and $2 for a RF module, and another $4 for another picaxe and $4 for a RF Rx, at $14 that could be cheaper than a Yishi module for $23. But picaxe only has a buffer of 14 bytes which is far too small.

Re instant messaging - search for james moxham on skype. But the problem is I'm only on my home machine a few hours a day - mostly I log in from a large variety of machines all over the city depending on where I am and none of these let you install instant messaging software. This forum works pretty well as a form of instant messaging. If I'm not replying I'm probably asleep!

Looking forward to talking to the cromenco.

re "ASCII transfer seems OK though." - could you try a big pile of ascii in a format like
abcdefg
abcdefg
abcdefg
.. so you can spot a missing character? It would be odd for big slabs of ascii to work but xmodem not to.

MikeS
March 21st, 2009, 11:06 PM
Yeah, I was thinking that they're cheap and no problems with packet formats; good to know about that white noise problem, thanks!

Time to hit the sack; tomorrow's another day.

CromeMco!
;-)

Heh, you're right; this *is* just like IM...

Will try a large ASCII file as soon as I figure out why one bridge has gone to sleep (unless I do first)

MikeS
March 21st, 2009, 11:20 PM
Did you do something? Looks like a baud rate problem or similar - getting back high ASCII junk.
Or is it my end? Same thing on both systems here.

Are you monitoring the flow at your end BTW?

Dr_Acula
March 21st, 2009, 11:33 PM
I'm not at home right now - I will be in an hour or so and I'll reset it. Others could be logging in.

MikeS
March 21st, 2009, 11:53 PM
I'll be snoozing by then and dreaming of ACKs & NAKs...

Hmm, just saw something interesting: I guess handshaking's working - both systems stopped for a moment and then the receiver "unspooled" 20 or 30 lines or so at (relatively) high speed, the transmitter started up again and they're continuing on their merry way...

Have transferred about 120K of ASCII so far and don't see any errors. Sounds like the same issue we had with Bluetooth: we could transfer ASCII no problem, but the transfer protocols didn't like the packets being chopped up and the relatively long turn-around time.

Hmm, there are differences but I think one of the terminal programs is doing some CR/LF conversion (although I've never seen it quite like this). Will investigate further tomorrow.

Yeah, that was it: LF/CR and pacing; turned off all the ASCII options and the files are identical. Pretty quick too, but then they're both on the same ISP.

Dr_Acula
March 22nd, 2009, 03:01 AM
Well a big thankyou to all the people who have attempted to and succeeded in crashing the board, because this is the best way to find errors and fix them!

I've got into CP/M and changed a few lines and reburned an eprom:
1) any attempt to access invalid drives now does a warm boot. So it can't get stuck on an invalid drive.
2) I've done an AND 127 after reads from the uart input. This masks out invalid characters 128 to 255 which CP/M chokes on. (xmodem has its own uart read so it won't mind). Hopefully an aborted xmodem transfer will just send stuff for a while then time out after a minute or so and go back to A>

Dr_Acula
March 22nd, 2009, 09:22 PM
Re the suggestion on the other thread running at the moment on this topic, searching for Lantronix on ebay briings up all sorts of interesting devices. Some as low as $15. It is a matter of knowing what these things are called - 'Terminal Server' is one such term. There appears to be lots of surplus equipment out there. There are also some that don't appear to be quite what they seem - eg they have a row of 8 or 16 RJ45 plugs on the front and look like a router, but the RJ45 are serial ports. Some use a D25 pin plug and use some of the pins for power in and out. It is a matter of going through the documentation for each one, but there do seem to be a lot of choices. They all would use a lot less power than leaving a PC on all the time. The multiport ones might be only $5 or less per port. One could have a whole row of boards running bbs software - cue crazy world domination laugh...

MikeS
March 22nd, 2009, 09:37 PM
For sure, it doesn't make sense to have a dual-core heavy duty system running just to interface the N8VEM to the internet, but if you're like many of us and the system is up 24/7 anyway then why not if it's free. But I hadn't looked at stuff like the Lantronix for a while and didn't realize you could get them that cheaply.

Speaking of using computers as bridges, I was doing a little more testing yesterday; here's what my desk looked like:

http://www.vintage-computer.com/vcforum/attachment.php?attachmentid=1558&stc=1&d=1237786604

Almost all vintage of course; the T3100 is monitoring the data flow.

Nothing new to report, alas; I'm not happy with the handshaking but can't find my breakout box.

Dr_Acula
March 23rd, 2009, 03:04 PM
I've just taken a punt on three MSS100 lantronix ethernet to serial devices. $20 each on ebay (second hand). We shall see how they work when they arrive. Addit - looks like my ISP changed my IP address - that might pose a problem too for running a BBS.

Chuck(G)
March 24th, 2009, 08:18 AM
If you've got a spare domain name kicking around, this is useful (http://www.dyndns.com/services/dns/dyndns/)

Used to be that there were a few island nations that would allow free domain registration, but the only one that seems to come close is Nauru (http://www.freedomain.co.nr) today.

MikeS
March 24th, 2009, 10:30 AM
I've just taken a punt on three MSS100 lantronix ethernet to serial devices. $20 each on ebay (second hand). We shall see how they work when they arrive. Addit - looks like my ISP changed my IP address - that might pose a problem too for running a BBS.
-----------
Looking forward to see how they work out; are these the same as what Henk has?
Yeah, the DynDNS service that Chuck mentions is what I was talking about a few messages back.
Do you want to send me (us) your current address, or have you had enough of us bringing your poor N8VEM to its knees or keeping you from logging in?

Dr_Acula
March 24th, 2009, 02:45 PM
Yes, I'll get the new IP address. I didn't think my ISP changed it that often but obviously they do. Nauru could be an option. And if they charge a bit - well it is helping the economy of a small island nation. Better anyway than Nauru's main source of income over the last decade, which has been payment from the Australian Government for detaining all the illegal immigrants to Australia. The modules are on the way, and Henk has the Xport and Rick Haseman over at the N8VEM forum is using the slightly different UDS100. Rick seems an expert on these as he uses them at work.

Earlier someone said they crashed wordstar - actually what has happened there is something has changed over the last 3 months with my CP/M code and wordstar doesn't like it, so I'm in the middle of going through two hex files side by side trying to isolate which bit of code changed. So this experiment is finding other bugs and proving extremely helpful. So a big thanks to all those helping out. I'd like to get it more robust. I think CP/M can now handle having raw xmodem data thrown at an A> prompt but I'd like to test that a bit further too.

I did get a RBBS working last night which prevented exiting out to CP/M and that probably is a good solution to making something robust. That version is compiled only though and I can't seem to get it to link to help files, so it comes up with a prompt with all the letters you can type but no clue as to what they do (? and H do nothing). Without the source code it is a bit hard to work out. But I have another version with the source code but the help file isn't the right one! So I'm still looking for a RBBS variant that has the source code and the correct help files.

Chuck(G)
March 24th, 2009, 03:59 PM
I recall reading about Nauru and phosphate mining.

While the phosphate held out, Nauru had one of the highest per-capita incomes in the world. Sadly, most of the money was frittered away and now, with the phosphate almost gone, most of the island's pretty much destroyed. A parable for our times...

Yeah, they could use some attention.

If the Nauru domain doesn't work out, you can still get one for free using the Turkmenistan .TK (http://www.dot.tk/en/pageA00.html) TLD.

Dr_Acula
April 11th, 2009, 01:51 AM
Well the Lantronix devices arrived and thanks to Rick Haseman we have got them working and found out all sorts of useful information.

The Lantronix MSS100 is a neat little box 9x6cm that connects a blue ethernet cable to a serial port. Only uses 4 watts so much better than leaving a PC on all the time. You start off talking to it via the serial port and give it an IP address and a password. Then you can log into it with a number of different methods - via telnet from hyperterminal, or via some custom software on the lantronix site, or even just by typing the ip address into a browser. There are about 20 settings to get right, but they all make sense when you read the manual.

Then - open up port 3001 with portforward on the router and anyone can log in.

Then we started at 300 baud and worked up to 38400. Still working fine for logging in and running wordstar etc.

Then we tried xmodem, and it fell over just like it fell over with Leif's program. .COM programs simply would not work. So - time for some detective work. It was going to be one of two things - the baud rate or a byte. We know that the PC can talk to the board directly at 38400 so unlikely to be the baud rate but nevertheless, lots of testing revealed even at 300 baud it falls over at the same place. So - it must be a byte. I found this nifty free program called hexedit http://www.hexedit.com/ and it ended up being the missing link in solving this mystery. I was so impressed I sent them a $20 donation via paypal.

Hexedit has helped me debug the N8VEM source binary in the past, but this time I wanted to use it to make big (20k) files filled with arbitrary bytes. These files could then be downloaded via xmodem to see if they work. So I made some files with characters I was suspicious about, eg 00, 03 (^C), xon, xoff, escape, break, delete and FF. Well, they all worked except FF.

Next, and this was the bit that really impressed me with hexedit, I wanted to create a binary file with random bytes. And there it was, as one of the options! The reason for this is that while FF is a problem, what if another byte was a problem as well? So I took my binary file, found the first FF, did an xmodem transfer and yes, it failed on the packet I expected it to fail. So, change that byte, resend, see if it is FF, and yes it was. So deleting all the FF bytes means xmodem works.

Next step, send a big text file via xmodem. I've sent a 25k .asm and that works. Then, try an even bigger file. Well, it falls over at packet #255, (32k)and packet #255 is FF. So, we are limited to xmodem with text files and files <32k. I guess one could use UNLOAD to turn a .COM into a hex file.

Why is this so?

Well, searching a telnet help forum I came across this:
'FF' means IAC, which stands for "Interpret As Command". All telnet control sequences start with IAC, consequently, your program should look for IAC, and any time it receives it, a subroutine in your program should take control and handle the escape codes.

So, the problem is not with Leif's program, nor with xmodem, nor with the Lantronix devices. The problem lies with the terminal program (hyperterminal in my case, but probably others too). It seems telnet and xmodem don't like each other! I've just realised too that the reason I can xmodem via the com port from hyperterminal is that this is not using telnet.

Some possible solutions, and advice here would be most gratefully received.
1) is there a raw mode, where FF isn't interpreted?
2) is there some other login protocol besides telnet?
3) is it possible to chop up a program, rebuild it at the other end, and also convert it so there are no FF codes?
4) is there another way - eg use a file transfer protocol that doesn't use FF - I have a feeling Kermit might be the only one that can do this, but one would need the source code to get kermit working on the n8vem.

Anyway, if anyone has any ideas they would be appreciated.

As an aside, there are two n8vem boards online at present. 121.45.125.169 and try either port 23 for one or port 3001 for the other. Only thing is my ISP seems to be changing my IP address every few hours at the moment. Maybe don't xmodem any .com files for the moment - keep it to smaller text files?!

Addit - I added the dyndns service as suggested. When you log into telnet, instead of the IP address above, try n8vem.homedns.org
and use port 23 for one board and 3001 for the other. I think the link should be live by now. If it works, then at least every time I turn my computer on it will update the address.

Addit addit - blimey, they changed my ip address again!! This seems to be every half an hour or so. Well the address this minute, is 121.45.201.131. But I did log in again from n8vem.homedns.org and that seems static.

addit next morning - still a very fickle system. Somehow something disabled my PC's local area network connection (I hope it wasn't dyndns) and then dyndns couldn't find the internet, and then my isp changed the ip address again, and then the link broke. 121.45.197.210 (?for the next half an hour). The 3001 is working, but I wouldn't be relying on this yet for a mission to the moon. Hmm - more testing and the IP address has changed twice in the last 10 minutes. Each time it changes, dyndns takes a few minutes to update, so this isn't a very stable solution. It probably needs a static IP address...

addit 14th April - the boards are offline for the moment due to my telephone line becoming so noisy over the last week that you can't hold a voice conversation. I suspect this explains the dropouts and IP addresses changing. I'm getting the phone company to fix this, but one positive outcome is that it is good to test the system with the IP address changing as this means we have a system with dyndns that can handle repeated changing of the IP address so should easily be able to handle the more normal situation of it changing very infrequently. I'm also working on w3sock.dll and vb.net writing my own telnet program. w3sock.dll can pass through all characters from 0 to 255, which is a big step forward from hyperterminal, teraterm etc. However, w3sock.dll appears to have a bug where it can only read back lines that have a carriage return at the end. Reading back characters one at a time does not seem to work, nor does reading in the buffer. Options now - code Kermit for this board. Find the bug in w3sock.dll so it can read in characters one at a time. Find another .dll for winsock. Find a terminal program that can pass through xFF.

bluethunder
May 13th, 2010, 05:52 PM
So much good info in this thread..

Thinking of firing up one of my old H89s to run a BBS via a lantronix uds - 10. Gonna be a learning curve, I haven't fired these machines in 10 years, at the very least...

Gotta look for a bbs package, I've read about RBBS..

What other good CPM BBS packages are out there? Do I need to find one specifically compiled for an 89?

I might start with a emulator, and see if I can get the hang of the 89 again, without having to wade through hard sectored disks, and the massive H77 external drive unit. See what i can get going, then grudge-uate to the real deal.

Thanks

Dr_Acula
May 13th, 2010, 09:15 PM
Here is a link to some very interesting discussions on the xport http://forums.parallax.com/forums/default.aspx?f=15&m=451576 which is similar to the lantronix modules, but more up to date, less power, smaller etc.

I've gone off on a tangent building CP/M wireless networks, but sooner or later will need to link that network to the internet so will need to revisit this at some stage. I never got kermit working - it is too big and complicated a program and I have not been able to even work out how to recompile it. So xmodem is one option. The wireless network has variable size packets and maybe there are options there for transferring data.

Since the post above, we did solve the problem of IP addresses changing by using dyndns.

If you can get a BBS up and running that would be cool.

geneb
May 14th, 2010, 05:57 AM
Awesome thread guys. I spent a LOT of time back in the day working on CP/M based BBSs. This kind of thing is right up my alley. :)

FYI, there is a parameter within BYE (and possible MBYE) that will restrict what drives can be logged. This would cure your BDOS error without any CBIOS hacks.

When I put Age of Reason up, I used a program called tcpser. It's a utility written by Jim Brain that emulates a Hayes Smartmodem and accepts incoming telnet connections. I had to tweak it to send the telnet negotiation sequence "WILLDO ECHO" in order to prevent the caller's telnet program from doing local echo. The software is open source, although I don't know if Jim has applied the patches I sent him. tcpser runs under Windows, Linux and (I think) MacOS.

bluethunder: I've had my '89 running Citadel a couple of years ago - Citadel was born on an H-89 too. I may get that thing back online soon. Sadly, it only talks at 300 baud - I may try to tweak that up to 1200 or 2400 though.
The SEBHC guys have developed a small device that will allow you to connect a pair of 1.44M 3.5" drives to the H17 hard sectored controller. While you can only use 720k media in the drives, it does provide the sector hole pulse necessary to use soft-sectored media with the H17. They're $25 each (interfaces two drives) and they're available here: http://www.lesbird.com/sebhc/storage/storage.html The HSFE board will work with any hard-sectored controller. I've heard the new edition of the board has a jumper that will turn off the microcontroller and allow you to interrface any 1.44M 3.5" drive (720k media) to any soft-sectored controller without modification. It handles the RDY line hack normally required to use "modern" drives in legacy systems.

g.

bluethunder
May 15th, 2010, 07:42 PM
Little bit of progress..

I got my uds-10 yesterday, and got it configured, and talking as serial client from my "IBM XT (AMD64 x4)" box to one of my laptops through telnet. That's pretty slick.

And, I got my second 89 powered up, and working with the H77 drive unit.. Good thing I have a complete set of manuals for that pig. Even managed to find a working CPM 2.2.0.4 disk, which I'm trying to duplicated.. I forgot how damned heavy those 89s are..

Next step, some comm software on the 89, and see if I can talk to it through the magic telnet box. Probably be it for tonight, otherwise I will be working on this until 3 in the morning..

Dr_Acula
May 16th, 2010, 05:57 PM
Sounds promising. What sort of software are you planning to run?

bluethunder
May 17th, 2010, 06:54 AM
I was looking at RBBS 3, to start with. Mostly because I have a disk for it. Maybe rbbs or turbo bbs.

Donno if its gonna be the h89.. I don't seem to have 1 good floppy drive out of 5 spares. Not a single one will format a disk.. Unless I've got a flakey controller, which I will swap next out of the spare 89.

brain
May 17th, 2010, 09:47 AM
Just in case someone is searching the boards later, I'll note that tcpser and tcpser4j handle flow control, 7,E,1, and such things:

http://www.jbrain.com/pub/linux/serial/
http://www.jbrain.com/pub/xplatform/serial/

Jim

bluethunder
May 26th, 2010, 03:47 PM
Been puttering on this, the old H-89 seems to be the biggest hurdle. Marginal disks, marginal drives. Thinking about that SEBHC adapter that lets you use 3.5" 720k floppy drives, and turn the H-77 into a decoration.

I have been able to successfully communicate through telnet, through the interweb/dyndns, and use REACH 2.0 as my terminal software on the 89..

Still need to find a way to transfer zbbs or rbbs and BYE over, maybe a direct connection with a null modem. I have a copy of MDM711, but I'm not sure its working.

This machine may just be too old for what I'm asking of it.

geneb
May 26th, 2010, 05:11 PM
If you've got a modem, you can easily see if your terminal program works. :)

I strongly suggest you join the heath list here: http://sebhc.org/ There's a number of really bright folks there.

g.

bluethunder
May 26th, 2010, 07:30 PM
Something was up with MDM711, But I did find a copy of MDM740, which did work. transfered some zbbs files over, and then started having drive problems again.. I think I'm going to shelve this project until the 3.5" adapter arrives. I can't tell if its the media, or the drives, but both are 30 years old.

I joined SEBHC a little while ago, asking about HS disk drives, and trying to refurbish them. Lots of helpful advice there, I think these are just beyond hope.

geneb
May 27th, 2010, 05:18 AM
Your best bet is to get a copy of IMP245 and install the H-89 overlay into it. IMP is one of the best terminal progs I've seen for CP/M.

g.

bluethunder
July 30th, 2010, 08:25 AM
The project is rolling again, as I now have functioning disk drives again (http://www.vintage-computer.com/vcforum/showthread.php?21460-Hosed-Disk-Drives)

I found a copy of h-89 BYE, and I have had my lantronix telnet -> serial talking to the heath via the interweb.

Working at getting Zbbs to compile (bascom / ld80) next.