How exactly does one go about describing one of the most amazing pieces of software ever written? One source highlights the negative social aspect more prominently, drawing several strong conclusions in the process. Does the recent proliferation of intense cyber realities redeem its former status? Or does it merely reflect the same desperation - using a higher level of technology? The choice is yours to decide - but what is not up for debate is the fact that the software Basham wrote is a beautiful piece and testament to the great Apple II.
You are calling the most advanced piece of software on the planet. Diversi-Dial (or DDial, for short) is a software program for Apple II computers that was advertised as a "CB Simulator", because it allowed for several people to chat with oneanother at the same time on a public channel. DDial was written in 1983 by Bill Basham of Diversified Software.
The basic idea of DDial is that it allows a computer user with a modem to dial up a DDial system and "chat" with other people that were currently signed on to the same system. While this seems like nothing special by today's standards given the advent of Instant Messaging and IRC (Internet Relay Chat), at the time DDial was released, there was nothing quite like it. Sure, multi-user minicomputer systems and multi-line dialup systems had similar features, but having a system solely dedicated to chat was non-existant.
What set DDial apart was that it cleverly used an Apple II computer stuffed with a case-full of 300 baud modems to allow concurrent connections of up to eight users (one local on the console itself). Additionally, since the connection speed was limited to 300 baud (quite acceptable in those days), the speed of the Apple was sufficient to service each connection and the local console without any noticable slowdown; essentially, you couldn't tell that you were sharing a 1MHz machine with seven other people.
The system worked, and was rather popular. Around 100 systems existed at one point in the United States, and welcomed an age of what I like to refer to as "Net Crack" (due to the fact that many people seem to become seriously addicted to chatting online). People would spend their $5 to $10 dollars a month for a password (in the form of a 9-digit number, where the first three digits represented your account number; there was no separate username and password, though your handle was stored) to have an Email "box" and relatively unlimited useage. If you didn't have a password, you would be subject to an automatic logoff after typically 1 to 3 minutes.
Using the system consisted of dialing your modem and connecting, optionally entering a password at a prompt, and then after a brief system bulletin, you would be placed in the main channel chat session (channels described in the next section). At this point, you could type or enter commands ('/?' would show a list of commands), and the conversations of other people would automatically scroll past your screen. You could type while the dialog was coming down the pipe, but you wouldn't see anything until either a pause in the discussion or you pressed return to transmit your message.
Thanks for reading. Quick background: Since 1989 I have owned a modem - a 1200 baud Datalink internal modem for my IIgs. I very quickly got hooked on talking on a chat system called Diversi-Dial or simply 'ddial'. I knew it would come back to haunt me some day as I now chat on the same system running under a custom emulator. I had inherited one of the actual stations of Savage Frontier (PhillyChat, Electronic Cafe, Silent Planet, et al) from the owner, Kozmo, many years ago and he told me to "put it to good use". The memory must live on.. so..
..A friend and I modified an Apple II+ emulator a while back to support virtual AppleCat modems. It uses sockets for network communication. When the socket notices a connection it simulates a "ring", the emulator picks up the "phone" and bytes are transferred.
To make the system more interesting and Internet-friendly, I wanted to write a bot that would interface both with ddial and the huntgroup software to allow for on-ddial transmitting of IP information ("caller ID"). The bot also extends ddial functionality in many areas - it keeps caller logs, handles email, shows who is on across multiple stations, and provides an interface for playing games over chat.
I'm a newbie Ruby coder, with about 15 years of C under my belt and zero Object Oriented experience. But I've been reading books (GoF DP, Booch, "Object-Oriented Modeling and Design with UML", "Design Patterns in Ruby", etc etc) and am ready to tackle the challenge of designing code with an OO feel.
Gentle reader, please peruse the code below. It is modelled slightly on EyeAreSee by Dominiek.com. (Thanks man! Beer!) It is not as complex, but it does work! Follow Along!
Follow along from genesis, where objects are initialized.
I would like to make the code more "rails" like in configuration, with an understandable directory hierarchy and config system. Right now it's all sort of jumbled in there.
Each service should run in its own thread, so a bug in one does not take down the other.
Any other object-oriented cleanups I can make. Thanks!
Thanks for looking. The virtual Applecat code and huntgroup software will be made available soon.