Philip Pemberton wrote:
In message <43043235.1000404 at jbrain.com>
Jim Brain <brain at jbrain.com> wrote:
OK, now that takes coolness to a whole new level. How did you find out about
the protocol - reverse engineer the Qlink client?
short answer: yes
long answer:
The disk was reverse engineered by Keith Henricksen in 2001, by using
the C64 emulator VICE and it's ability to pipe user port RS232 to STDIO
of any application. He wrote a stub app to give to VICE that converted
STDIO into TCP traffic, and then write a TCP/IP server. Through a
combination of looking at what the client initially sends and how it was
constructed, Keith determined the packet format. Via stepping through
the VICE monitor, he determined the CRC checksum and found what response
the initial packet needed. He then modified his C application to send
said response. As we went along this way, he documented it sparsely in
a text file. After a while, Keith set the work aside. He picked it up
again and wrote a new server in C++, but shelved it while it was less
functional than his C effort. In 2004, I disassembled the code via VICE
and determined the CRC and packet format, but could not get much farther
because WinVICE doesn't have the same functionality as UNIX VICE does,
and Keith seems better able to reverse engineer the QLink code. Thus, I
shelved my effort in late 2004. In June 2005, Keith found the forum we
use to discuss the idea, and shared some information. After that, he
offered up his 2 server attempts, from which I grabbed his text
documentation. I then restarted my implementation, which went very
quickly. Along the way, I found some new keywords, and determined how
to do some stuff not in Keith's code. Some of the development required
seeing the service as it was (for example, the server sends the first
and second email lines to the client, but we had no idea of the format),
so I went looking for screen shots. I found a few at
http://www.dsgames.net/qlink/, Keith Elkin's site. After using the
information found there, I emailed Keith about the project, and asked if
there were any more shots. He replied that he had hours of videotape of
the sessions, which he would convert to video files. I just received
those, and they may hold the keys to how the Auditorium worked. This
past Tuesday, we were finally able to do a cross country test of the
server code, after which the tester, Jeff Ledger posted about it in
several places. Those posts brought more emails, some from Raymond Day
with old saved QLink messages. As the messages were from the end, when
people were posting what file areas they had downloaded, the postings
provide deiscriptions of the file base heirarchy. I also trolled USENET
and Google to find other sites emailing them the project progress.
Keith Elkin is also a great resource, as he was remote staff for quite a
while of QLink's existence, so he knows more of the system minutuae.
The video feeds he provided include Habitat and Club Caribe sessions,
which will make re-introducing those easier.
I'd love to have a PC running some form of RS232->TCP/IP bridge, then have
the TCP side connect to a Qlink server over the
Internet. Would be fun to
play with, especially if Qlink could be patched into #classiccmp on freenode.
Well, I can help you with getting rs232 to TCP/IP (tcpser and tcpser4j
both work, as might other bridges), but I don't know how to merge QLink
chat and IRC into one. Most of it I have mapped out, but QLink only
allows 23 users per room. I have no idea how to guard against an IRC
room getting more than 23 users in it.
Congratulations Jim, and good luck sorting out the rest
of the protocol!
Thanks. I hope to have enough of the system operational by the 20th
Anniversay of QLink, Nov 1, 2005. I gotta hurry, tho.
JIm
Later.
--
Jim Brain, Brain Innovations
brain at
jbrain.com http://www.jbrain.com
Dabbling in WWW, Embedded Systems, Old CBM computers, and Good Times!