Well, heres a quite bit I wrote up on my final solution - feel free to ask any questions.
Whilst I would have preferred to have my Warp6 BBS running on my LC 475’s //e card, I was forced to run it on my XP workstation under the KEGS emulator due to Warp6’s incompatibility with the //e card.
Essentially this is the brief run down of how I did it.
Software Used in the End:
KEGS 0.91 (http://kegs.sourceforge.net/) - //gs emulator
TCPSER (http://www.jbrain.com/pub/linux/serial/) - Hayes compatible modem emulator for getting your old serial comms app onto the internet. Note I’m not exactly sure which version I’m running now – I had thought it was 1.0RC12 – but I’m not so sure looking at the file sizes.
Warp6 BBS 2.5 – (http://mirrors.apple2.org.za/apple.cabi.net/Applications/Telcom/WARP6.BBS/) - the BBS software
Warped – (http://mirrors.apple2.org.za/ground.icaen.uiowa.edu/Collections/1WSW/warped.shk) - the door games for the Warp6 BBS
Ciderpress v3.0.0 – (http://ciderpress.sourceforge.net/) - All round wonderful program for Windows PC’s for messing with emulator images and .SHK files
Step 1 – Get Warp6 BBS image up and running in the emulator
Having decided to go with KEGS as a result of some testing of different emulators specifically around serial port support (note that in the end a lot of the issues I was experiencing could probably be put down to my cable that I resolved at the end – but I never went back and tested the other emulators) the first thing to do was to get the Warp6 BBS image up and running.
I wont go into the details here because I actually already had the base Warp6 emulator image up and running from a previous play with it a few years back, but essentially if my memory serves the process is something along the lines of
- Use CiderPress to make a HDV image
- Use CiderPress to copy the Warp6.shk and Warped.shk to the new HDV image
- Download a disk image with ProDos and shrinkit tools
- Start emulator and un-shrink the archives to your HDV image and install ProDos
The actual configuration of Warp6 is covered in the warp6 doco that is supplied in the archive. I’ll just go over some of the specifics here.
Step 2 – Configure the Warp6 BBS doors
Again, the warped.shk contains information on how to do this, however I noticed that two applications (insulter and the doorway) worked locally but not remotely. This was because Warp6 requires you to get input from users in a specific way in order to protect from crashes (which might dump you into a BASIC prompt) and to check and enforce time limits. As luck would have it the BBS doco talks about how to do this and I simply copied the Applesoft code from the “Micro bandit” game into doorway and insulter (using the wonderful applesoft line editor). I guess I had an advantage here as I had (man many many years ago) written some of the customisations in the warped.shk archive.
The final thing required was to install the modem drivers specific for use with the //gs serial port (as opposed to the Apple //’s super serial card) – this again is covered in the Warp6 doco and essentially requires the copying of two files into the Warp6 BBS main directory.
Step 3 – Getting the BBS online
Warp6 BBS expects to see a real old style hayes compatible modem to talk to. If it see’s that (like most old school BBS packages) its happy. Fortunately for us retro guys theres some really smart guys like Jim Brain who write some really cool software like TCPSER. TCPSER is a modem emulator with a twist. It runs on your PC (or linux/mac if you are using the cross platform java version I understand) and does two things.
1. Binds to a physical serial port on your machine to allow any other serial device to be connected to that port and see what it thinks is a standard hayes compatible modem – one that sends all the right responses back to those interesting AT commands we used to love
2. Replaces the traditional “phone line” with the internet and allows access to the serial device via the internet standard telnet protocol (BTW it also allows the device attached to the serial port to initiate access to the internet via telnet to!). For example if configured (by the BBS program) for answering calls, it will accept incoming telnet connections and then send the appropriate code to the device attached to the serial port – i.e RING RING, the BBS will then likely instruct the modem to connect, at which point TCPSER sends a “CONNECT” response back to the serial port and arbitrates communication between the telnet connected TCPIP session and the serial device (normally a BBS) connected to the serial port. When the BBS hangs up, TCPSER disconnects the telnet session, or if the telnet connection is dropped, TCPSER drops the serial connection to the attached device
This was one of the hard parts for me, warp6 was all ready to go (more or less) but wanted to talk to a modem out of the emulated serial port (that terminated on my PC’s real DE-9).
To theory behind this is that we use two serial ports on one PC. The emulator binds to one serial port and the modem emulator binds to the other, that is both end up poking out of the back of the machine to the real world. To connect these two things together requires the use of a serial cable (just like you would do to connect a real GS to a real modem). The trick being figuring out what kind of cable to use.
To begin with I had no real idea of how the emulated serial port mapped to my real serial port, and how the signals from the GS’s mini DIN related to those on my DE-9. After quite a bit of head scratching, googling and burnt fingers, I settled on the following cable and made the bold assumption that KEGS doesn’t honour the DCD signal on the PC’s real DE-9
Ultimately, the following signals are the ones I decided I needed to use:
DE-9 (my PC’s connector)
Pin 2 – Recevied Data
Pin 3 – Transmitted Data
Pin 4 – Data Terminal Ready
Pin 5 – Signal Ground
Pin 6 – Data Set Ready
Pin 7 – Request to Send
Pin 8 – Clear to Send
So to get comms going between TCPSER and my emulated GS I built a cable like this:
COM1 = Physical port that my modem emulator (TCPSER) bound to
COM2 = Physical port that my emulated GS serial port bound to
PIN2 (RCD) ----------------------- (TXD) PIN3
PIN3 (TXD) ----------------------- (RXD) PIN2
PIN4 (DTR) ----------------------- (DSR) PIN6
PIN5 (GND) ---------------------- (GND) PIN5
PIN7 (RTS) ----------------------- (CTS) PIN8
PIN8 (CTS) ----------------------- (RTS) PIN7
This cable doesn’t support DCD (PIN1 to PIN1) but it doesn’t seem like KEGS honours it anyway? I could be wrong about this, but I couldn’t get it to work and ultimately for my purposes it doesn’t need to – if someone drops carrier (disconnects the telnet session without logging off) the BBS times out after about 5 minutes and resets for the next caller – during this time no one can connect, but its not a big deal.
The only other thing I did was to much sure KEGS serial port emulation was set to “Use real ports if available” – this ensures that it binds to the real COM port and doesn’t start a TCPIP virtual modem instead – the KEGS virtual modem is a similar concept to TCPSER, but built into KEGS – it worked for me, but not with Warp6, so I didn’t play with it much. You set the KEGS serial port setting by hitting F4 when the emulator is running – this brings up the KEGS config screen that will write changes back to the config.kegs file.
Some screen shots:
Damn, I cant paste my pictures in here - is that even possible on this board? Anyway, I guess I'll have to see if I can figure out something else - they're not too exciting anyway...[/img]