Chinet -- Public Access since 1982

The Birth of the BBS

I met Randy prolly late '75 at Cache -
I went to most meetings starting with the 2nd which was Sept '75. He and I
worked with Tarbell cassette exchanges for a while - built-in assembler, editor,
etc.

Saved stuff to cassette by a speaker and microphone on a 300 baud acoustic
coupler.

Met Rob't Swartz - now of Mark Williams company fame - he had CP/M in '76. I
bought a license in Jan '77 and took my diskette to his house. He showed me the
CP/M editor and assembler and I wrote a program to "beep" the contents of my
floppy to cassette via a modem. (the modem wouldn't generate the carrier without
hearing another, and Bob happened to have a cassette of modem "stuff" around, so
we played it into the modem to get it to generate the tone). Used 128 byte
blocks and a checksum - the bare essentials for XMODEM though I didn't think of
it as a protocol at the time.

Sometime around there Randy also got CP/M, but HE got the "real thing" - IBM
format 8" diskettes.

I needed a way to swap stuff with Randy and others - so on late summer '77
wrote MODEM.ASM and tossed it into the CP/M users group.

That program became the singly most modified program in computing history due
to the many hardware environments in which it had to operate (no standards - no
"IBM" to say where serial ports should be addressed, etc).

Dave Jaffe wrote a routine "BYE" to allow remote users to call in to your
CP/M system and operate it. I put up a 70K/diskette Northstar system with BYE
and my modem program. Keith Peterson would call from Michigan and fill the
diskette in one night or so. I got tired of that and took it down. Turns out
that was - as others say - the first "remote CP/M system" since apparently Dave
never put up a system for any length of time.

Keith thought there should be an easier way to run MODEM than having to
remember to use a "Q" option (Quiet - i.e. don't chatter about block numbers to
the console) so he stripped MODEM down and called it XMODEM. Since that was a
more "recognizable" name, that stuck as the protocol name.

Chuck's 1K protocol as implemented in rb/sb needed a name, so I suggested he
call it "Ymodem" which he did. He later wrote Zmodem, a protocol to send
continuous blocks with asynch ACKs to allow max transfer throughput.

================

There was a group called PCNET mostly
out of California who were doing a lot of talk on ARPANET about building a
network of microcomputers. They were great at planning - something I've always
been terrible at - but they weren't putting any HARDWARE/SOFTWARE together. I
was frustrated by the lack of DOERS and lost interest.

January 16, 1978 was a very snowy day. Couldn't get dug out, so called Randy.
I had the CACHE message recorder phone line in my house, and Hayes had
"invented" the hobbyist modem.

I called Randy and talked about putting up my Vector machine (a 2nd S-100 box
I'd bought to take around when asked to give talks on microcomputers) on the
CACHE line as a way for people to call in with newsletter articles.

Randy said "no" - "you're in the burbs, I'm in the city - we'll put it in my
house - and forget the club, a committee project will never be done - just the
two of us - you do the software I'll do the hardware. When will the software be
ready?" heh heh.

Without Randy's drive and ambition, it would never have seen the light of
day.

I prototyped a bit of a dialog in Basic, patterned after (1) the cork board
bulletin board at CACHE meetings, and (2) the kind of BB you see at the Jewel -
you know, garage for rent, dog grooming, etc.

Very early in Feb, started testing. No one believed it could be written in 2
weeks of spare time so we called it "one month" and to this day declare Feb 16
as the birthday.

================

The PCNET people became very
interested in CBBS - and they wanted a copy so they could start talking about
PCNET by using CBBS (heh heh). Conversation with Dave Caulkins went like this:
"I guess I'll charge $25 for CBBS - to keep people from bugging me (if it were
free), yet making it cheap enough for anyone to buy". "No, that's crazy - charge
at least $50". OK, so $50 it was. I was concerned about "conflict of interest",
so let Randy get all the money (what, 200 sales or so, Randy?) He had after all
put up all the money - all I'd put up was time. (Uh, I seem to recall from the
Nov '78 BYTE article that I did buy a bit of the hardware also).

That's about it. XMODEM was born of the necessity of transferring files
mostly between Randy and myself, at some means faster than mailing cassettes (if
we'd lived less than the 30 miles apart we did, XMODEM might not have been
born). CBBS was born of the conditions "all the pieces are there, it is snowing
like @#$%, lets hack".

Hope you don't mind this long monologue. (I thought it was monolog, but my
Word Finder Plus screen checker said monologue).

================

Unscrew Oreo Cookies because - well if
you don't know then you haven't done it.

(randy's narrative)

The original CBBS consisted of a S-100
motherboard picked up at some fleamarket. This was a "kit" of course, so I had
to solder all the connectors. (lotsa soldering done in those days, such as 8 k
memory boards filled with 1kX1 chips)

It was mounted on a BUD chassis with a single density 8 inch floppy drive. On
the motherboard was some 8080 cpu (upgraded to a Z80) a Hayes 300 baud modem
card, a 3P+S board with the parallel port used for control signals, a Processor
Technology VDM video display card, and an 8k memory board. There was also a card
with 8 1702 EEPROMS that held the CP/M BIOS, video display drivers, and debug
code, all written by Ward. I had a EPROM burner, and Ward made sure all the BIOS
variables and experimentor stuff ended up in the last 1702. Musta re-programmed
that sucker 10 times a week for a few months.

The floppy drives of that time had 117vAC running the spindle motor, and the
drive would wear out quickly. So I built a circuit on a prototype board that
would turn on the system power when a ring signal came in from the modem card
and do a reset of the computer. By the time the drive spun up, the software had
answered the phone and booted CPM and CBBS from the floppy. (simple power fail
system!) The circuit board also had some 555 timers, so when the caller went
away, the drive motors would continue to spin for about 10 seconds to flush out
any data, then shut the system down. I had an old Heath chart recorder I hooked
across the floppy drive motor and set up the chart speed for 2 days per sheet.
Was able to determine the calling patterns from the chart.

From the 173k single density single sided floppy, we went to a pair of them,
then to double density double sided drives. Bout a year later, moved CBBS to a
NorthStar Horizon cabinet with a 10 meg seagate hd. Both those systems are still
sitting around someplace. It is now running on a PC clone motherbard still
running CP/M with the original 8080 assembly code! The clone board has a V20
chip, which fully supports the 8080 op codes. Ward wrote a wrapper around CP/M-CBBS,
and CBBS has been running that way for over 15 years.