Jason Scott is doing a great job of documenting the history..including some of the "bad guesses" at what CBBS stood for. I had forgotten it became "community" once in a while, too;-)
Little known is that Randy Suess actually copyrignted the phrase CBBS, and drives around - or drove around - in a car with "CBBS" license plates (My licence plate is Xmodem, haha).
I think it would be sort of fun to put up some sort of CBBS emulator on the web, seed it with all the files I can scrounge up from - alas - happens to be 10 years ago that it died - and let it rip.
Many would say "this is dumb". But then I guess you could call a 3 year old dumb if compared to an adult. It was the infancy of the "microcomputer industry".
P.S. I would like to say one thing about "me" and the stuff I did you have commented on - lots of give-away-stuff (disk editor, including looping 1-line macros (search for blah blah at offset xyz and replace it with something and loop 12 times, etc), disk cataloging program, Xmodem, etc).
The thing I'd like to say is that I was not a genius, or even very smart - because back THEN I was programming in a VACUUM. There were not millions of people doing more than I was at the time. Anything I could think of, would not exist, so just writing it became quite easy. I didn't have to write very GOOD code, I didn't have to compete with brighter people - I just "lucked out" to have thought of some of the stuff before others did, have a good enough job to not want to try to make money off of it, etc.
Regrets? I regret that when the IBM PC came out, with its 160K floppies (My CP/M system had 1.2M floppies and an 8M hard disk), 16K of Ram (or whatever - compared to the 256K I had on my CP/M system), and a few hundred character per second screen scroll rate (I believe my CP/M system scrolled text at about 50,000 characters/sec - it used hardware to change the starting display line not a block move instruction)...I repeat, I regret NOT scrapping my investment in CP/M and porting my programs (Oh, forgot the famous "disassembler, with its - ahem - clever name: Resource)... to the PC environment. As a result by the time I got a PC (after XT's came out, and I wanted to be "better" so got an external 15M drive (whooie!), all the bright aggressive programmers had started to saturate the market with their software. My disk utility? languished, as Peter Norton took over the helm of that ship; Commercial file transfer software became common, but some things like disk cataloging or disassembling never quite reached the stage they should... this "segment register stuff" made disassembly QUITE difficult compared to the simple linear 64K memory model of the 8080...
But I ramble...
I AM amused your comment got a "5", mine seem to get a "1". Working for IBM, a "1" is best, I'll just think of it that way;-)
P.S. Just to ramble some more:
1. In 1974 I learned that "TTL" electronics, and an "8008" microchip could make a home computer, and wrote to Heathkit to suggest they "invent" the home computer. Their response "We already have an analog computer kit, why would we want a digital computer kit?".
2. In approx '78, I wrote to IBM saying that I'd had a "microcomputer" for 3 years by then, and thought IBM should commercialize the microcomputer by coming out with one. Got back an answer "we don't see a market for such a device".
Thanks for remembering the 25th anniversary of CBBS - I think I might have not noticed, haha, had not Peter Zelchenko (son of one of the early co-sysops, "Alex Zell") decided to have it honored in Chicago with 2/16/2003 declared BBS day by Mayor Daley...which the city accepted, and was "thusly" declared.
Anyway just a quick correction, which I see someone else posted, but it seems to proliferate.
When Randy Suess & I came up with BBSs back in '78, there were only cork board and push pin ones, or those racks of 3x5 cards in the entryway to the grocery stores, or the "car for sale" type ones at some companies, etc.
So we decided to "Computerize" the idea of having a place to post and read things. It was on a computer, so it was an application, or a system, or a program, or something...we chose "system".
Thus was born CBBS - as the welcome message said from day 1, "Welcome to Ward & Randy's Computerized Bulletin Board System". Not "Chicago" (that implied we had enough forethought to think there might be ones in other cities, haha) and not Christensen, for it would never have happened without Randy Suess,...
P.S. my thanks also to Jim Willing who ran a copy of CBBS in the northwest called CBBS/NW and kept CBBS alive for a long time, and to all the people who ran CBBS and made good suggestions.
P.S. these were innocent days - there were no viruses, and while we had users - even nasty users - attempting to mess with CBBS, only one person broke in - and that turned out to be physical security - it was a friend who visited Randy and left a message in a file on the floppy by accessing it locally, haha.
CBBS was certainly the most fun programming project ever - supported by the neat HW Randy Suess came up with - like resetting CBBS on EVERY phone call - a couple 555 timers cross-linked - the first ring hits reset, then an inhibitor 555 timer inhibits rings from resetting for the next "something" (20 sec?) - since CP/M loaded with 2 revs of the floppy, and CBBS with another few, it didn't take long for CBBS to issue the "answer" command to the modem, and thus stop the phone ringing and thus the resets before the 2nd 555 timed out. If CBBS glitched while loading, the 2nd 555 would time out and stop inhibiting reset and the next ring would reset and thus retry the reboot.
Early CBBS was very immature - with users' complaints shaping it - from sending trailing white space (VERY annoying at 110 or 300 baud), to packing down the message numbers (thus not being able to figure out where you left off).
My solution to the latter was to create 50 message files, each one storing messages whose last 2 digits "anded with FFFE" determined the file name - this means message xxx04 and message xxx05 would both be stored in the file messages.x04, etc.
Later I Hashed (by just adding their ascii values together) the user names and wrote them to a 1024 entry file so it could remember your last call, the high msg #, and support flags to allow a set of assistant operators, optional passwords, etc.
Many people thought CBBS was put up for file transfers - well, my original idea of a message system was to have users contribute articles for our club newsletter, but as it formed, a message system seemed more interesting, and file transfers were supported by only a few users such as myself to transfer new releases of the code via Xmodem, into the system which lived 30 miles away at Randy Suess' house (he wanted it "in the city" (Chicago) not out in the burbs where I lived). Not a bad idea.
I could go on forever, I had so much fun with the programming - originally running in perhaps 48K of memory including CP/M - maybe 20,000 lines of 8080 assembler.
CBBS lived into the early 90's (approx 93?) and received over a quarter million calls, on its one phone line! Thanks to Randy Suess for keeping it going all that while, even some sophisticated things like running the actual files off a unix share! It ran on a PC with a hacked up 8080 emulator, TSR's to handle interrupts I added to the code, etc. Fun fun fun!
Gee, I did go on forever. I promise I will stop!
Ward Christensen
Re: "blizzard / sharing programs" Xmodem was independent of the BBS project and came at the end of summer '77. CBBS was invented because of the "snowed in, lets do something" issue.
Re: "They made use of a pair of direct connect 300 baud modems donated by Dennis Hayes." Randy never told me that! I used my Livermore acoustic coupler all the time. When I went online with a "test system" I think by then it was a "PMMI" modem - one that squeezed up to 710 baud out of the Bell 103 300 baud protocol.
Re: "There was no operating system in those days, so the program talked directly to the hardware". No, there was CP/M thank God. CBBS was a CP/M program.
Re: "It took them a month to have it done by the next CACHE meeting.". No, Randy said "forget having the BBS as a club project, it will get stuck in committee. Just the 2 of us do it. I'll do the hardware you do the software". I had the software done in 2 weeks, but no one believed it so we called it a month. (testing DID begin 2 weeks after conception).
I am VERY VERY happy to report that Jason doing the BBS history seems to be very accurate in everything he posted. In the past I've heard things like "Bill Blue invented the BBS" - his Apple BBS in fact honored us by programming his Apple BBS after my command set so they would have a similar look-and-feel).
The bit about Mike asking what the "C" stood for in CBBS, most people thought "Christensen" or "Chicago" not what it really was - "Computerized". That's so OBVIOUS they'd say. No, not when there was no such thing as a computerized bulletin board system - at THAT time it WAS unique, haha.
------
Do I have any regrets? Yes, (1) not having a single entrepreneurial gene in my body and thus passing up the chance to make a career out of my "fame" and experience in Xmodem & BBSs; (2) using a simple checksum for Xmodem not a better one or a CRC;
P.S. just have to say it - CBBS got "hacked" one day. A file on the drive was created saying "George Tirebiter was here". I was SO dumbfounded, since I wrote ALL the code and knew it was uncrackable. Turned out someone visiting Randy Suess's had physical access to the drive and put it there - the only possible answer. Later, I discovered a programming "loophole" allowing breaking CBBS passwords. I "incremented a byte register" to count the # of missed-chars while typing the password. So if you missed 256 of them (you might have to try a few times since some would coincidentally hit) you would roll back to 0 and be in. I had to use this hack when Randy would jokingly (?) Lock me out now and then.
Thanks VERY Much to Randy for pushing the project independent of the club, and pushing for the SW to be written, and doing such a great job of the hardware.
No point arguing what I called the protocol - I am not sure I even did call it anything.
The quick history:
In '74, I attended a class, one session only, called "Large Scale Integration". The teacher held up a microprocessor - an 8008. I asked if it could be used to create a general-purpose computer, because I wanted a home computer. He said an 8008 could be used, and I asked what I needed to know to make my own, and he said "TTL Logic" which I wrote down because I never heard of it.
In the rest of '74 I taught myself TTL 7400 series digital logic, and started designing my own circuits. I became convinced the 8008 was "feeble" and started designing my own scratch-built 7400-based microprogrammed computer, working only on the most trivial of "subsystems", (haha) like a start and stop button that would if you pushed start, start a 4-phase clock (fetch, decode, execute, increment instruction counter), but if you held stop and pushed start, it would only run 1 4-step cycle. I learned about "synchronous" logic - my asynchronous logic would blip in little phase 1's after phase 2, etc, because of propagation delays, etc. But too much detail.
Anyway, when the Altair was announced in Jan '75 Popular Electronics (curses! I loaned my issue to some guy used to work for a TV station in Chicago and lived on the S. side but never got it back and can't remember who it was)... I decided the 8080 was more powerful and abandoned my home-brew project.
Instead I designed and built (1) a selectric typewriter interface for the Altair and (2) a floppy drive interface - using "Dynastor" flying head 256K floppies.
At first I adopted Processor Technology's paper-tape based assembler/editor to Tarbell's Cassette system, and later to my kludgy disk system - I called it "KOS" - Kludge Operating System". It could load programs by name, but pretty much everything else was rather manual. This was before IBM became the standard with their 8" floppies.
When CP/M came out, I bought a copy, and "beeped" it with a 300 baud modem, to an audio cassette on a friend who had a "Digital Systems" IBM-compatible floppy. I took that cassette home and with a speaker set on my acoustic coupler, beeped it into my machine, only to find CP/M itself destroyed, but "movCPM" OK, which I understood had a copy of CP/M in it assembled to 0. I disassembled CP/M, into assembler, later optimized it a bit (getting rid of jump tables) and reassembled it in the high memory of my machine (what, 20K then?).
SO why Xmodem? Well, because of having designed my own disk controller, I was incompatible with what was now the standard - IBM 8". So I used the 'beep to cassette' idea I'd used to move CP/M to my incompatible system - 128 byte (1 CP/M sector) blocks, numbered, with a checksum.
I based the protocol on an ascii reference card I had - i.e. "ACK", "NAK", etc seemed logical to use.
I released MODEM.ASM into the public domain by putting it on the CP/M user's group 6th distribution disk, in I think about August of '77.
It was totally manual - to be used by 2 people each "attending" their systems - i.e. one would type "modem s[end] " the other would type "modem r[eceive] ". At some point I added a quiet switch like "modem sq ", to allow sending to a "remote system" -
Keith Petersen, now of Simtel.Net, modified modem.asm to turn the quiet switch on by default, and re-named it "Xmodem.asm". That being a much more recognizable-as-unique name than my dumb "modem.asm", the name "xmodem" stuck, and people began calling it the xmodem protocol, or the "christensen protocol" (which I never liked).
There were others very instrumental in this - my bad memory fails to bring the names back - I can picture him - Jaffe... First name escapes me. He did the "remote CP/M" where he wrote a "bye.com" that relocated itself to high memory and allowed people to call into your CP/M system. Also important was... John.... worked for IBM at the time - he added the CRC vs my rather weak checksum, to xmodmem.
Then of course Chuck Forsberg, wrote a unix version of xmodem and added batch send/receive (I numbered my blocks starting at 1, he used a block 0 to send minimally the filename, or more info (size, date, etc) if it was available. He extended it to 1K blocks - my original being in the 300 baud modem days where 128 byte blocks was "almost perfect" as one communications engineer said (luck!). If it was shorter, packet overhead would slow it down, if longer, higher chance of corruption would slow it down with resends.
Chuck called his program "rbsb" (Receive Batch, Send Batch) and I suggested since his 1K block batch protocol was better than Xmodem, he call it "Ymodem", and he liked that and did so and of course followed it up with the spectacular Zmodem.
Xmodem (modem.asm, originally) was of necessity to share programs with "the world", and the BBS was 100% independent of it. Its history is a bit much to type in here;-)
Jason Scott is doing a great job of documenting the history..including some of the "bad guesses" at what CBBS stood for. I had forgotten it became "community" once in a while, too ;-)
Little known is that Randy Suess actually copyrignted the phrase CBBS, and drives around - or drove around - in a car with "CBBS" license plates (My licence plate is Xmodem, haha).
I think it would be sort of fun to put up some sort of CBBS emulator on the web, seed it with all the files I can scrounge up from - alas - happens to be 10 years ago that it died - and let it rip.
Many would say "this is dumb". But then I guess you could call a 3 year old dumb if compared to an adult. It was the infancy of the "microcomputer industry".
P.S. I would like to say one thing about "me" and the stuff I did you have commented on - lots of give-away-stuff (disk editor, including looping 1-line macros (search for blah blah at offset xyz and replace it with something and loop 12 times, etc), disk cataloging program, Xmodem, etc).
The thing I'd like to say is that I was not a genius, or even very smart - because back THEN I was programming in a VACUUM. There were not millions of people doing more than I was at the time. Anything I could think of, would not exist, so just writing it became quite easy. I didn't have to write very GOOD code, I didn't have to compete with brighter people - I just "lucked out" to have thought of some of the stuff before others did, have a good enough job to not want to try to make money off of it, etc.
Regrets? I regret that when the IBM PC came out, with its 160K floppies (My CP/M system had 1.2M floppies and an 8M hard disk), 16K of Ram (or whatever - compared to the 256K I had on my CP/M system), and a few hundred character per second screen scroll rate (I believe my CP/M system scrolled text at about 50,000 characters/sec - it used hardware to change the starting display line not a block move instruction)...I repeat, I regret NOT scrapping my investment in CP/M and porting my programs (Oh, forgot the famous "disassembler, with its - ahem - clever name: Resource) ... to the PC environment. As a result by the time I got a PC (after XT's came out, and I wanted to be "better" so got an external 15M drive (whooie!), all the bright aggressive programmers had started to saturate the market with their software. My disk utility? languished, as Peter Norton took over the helm of that ship; Commercial file transfer software became common, but some things like disk cataloging or disassembling never quite reached the stage they should... this "segment register stuff" made disassembly QUITE difficult compared to the simple linear 64K memory model of the 8080...
But I ramble...
I AM amused your comment got a "5", mine seem to get a "1". Working for IBM, a "1" is best, I'll just think of it that way ;-)
P.S. Just to ramble some more:
1. In 1974 I learned that "TTL" electronics, and an "8008" microchip could make a home computer, and wrote to Heathkit to suggest they "invent" the home computer. Their response "We already have an analog computer kit, why would we want a digital computer kit?".
2. In approx '78, I wrote to IBM saying that I'd had a "microcomputer" for 3 years by then, and thought IBM should commercialize the microcomputer by coming out with one. Got back an answer "we don't see a market for such a device".
Wish I'd pushed a bit!
Ward Christensen
[here comes one]
paragraph breaks, haha. I'm a novied /. user ;-)
Thanks for remembering the 25th anniversary of CBBS - I think I might have not noticed, haha, had not Peter Zelchenko (son of one of the early co-sysops, "Alex Zell") decided to have it honored in Chicago with 2/16/2003 declared BBS day by Mayor Daley...which the city accepted, and was "thusly" declared. Anyway just a quick correction, which I see someone else posted, but it seems to proliferate. When Randy Suess & I came up with BBSs back in '78, there were only cork board and push pin ones, or those racks of 3x5 cards in the entryway to the grocery stores, or the "car for sale" type ones at some companies, etc. So we decided to "Computerize" the idea of having a place to post and read things. It was on a computer, so it was an application, or a system, or a program, or something...we chose "system". Thus was born CBBS - as the welcome message said from day 1, "Welcome to Ward & Randy's Computerized Bulletin Board System". Not "Chicago" (that implied we had enough forethought to think there might be ones in other cities, haha) and not Christensen, for it would never have happened without Randy Suess, ...
P.S. my thanks also to Jim Willing who ran a copy of CBBS in the northwest called CBBS/NW and kept CBBS alive for a long time, and to all the people who ran CBBS and made good suggestions.
P.S. these were innocent days - there were no viruses, and while we had users - even nasty users - attempting to mess with CBBS, only one person broke in - and that turned out to be physical security - it was a friend who visited Randy and left a message in a file on the floppy by accessing it locally, haha.
CBBS was certainly the most fun programming project ever - supported by the neat HW Randy Suess came up with - like resetting CBBS on EVERY phone call - a couple 555 timers cross-linked - the first ring hits reset, then an inhibitor 555 timer inhibits rings from resetting for the next "something" (20 sec?) - since CP/M loaded with 2 revs of the floppy, and CBBS with another few, it didn't take long for CBBS to issue the "answer" command to the modem, and thus stop the phone ringing and thus the resets before the 2nd 555 timed out. If CBBS glitched while loading, the 2nd 555 would time out and stop inhibiting reset and the next ring would reset and thus retry the reboot.
Early CBBS was very immature - with users' complaints shaping it - from sending trailing white space (VERY annoying at 110 or 300 baud), to packing down the message numbers (thus not being able to figure out where you left off).
My solution to the latter was to create 50 message files, each one storing messages whose last 2 digits "anded with FFFE" determined the file name - this means message xxx04 and message xxx05 would both be stored in the file messages.x04, etc.
Later I Hashed (by just adding their ascii values together) the user names and wrote them to a 1024 entry file so it could remember your last call, the high msg #, and support flags to allow a set of assistant operators, optional passwords, etc.
Many people thought CBBS was put up for file transfers - well, my original idea of a message system was to have users contribute articles for our club newsletter, but as it formed, a message system seemed more interesting, and file transfers were supported by only a few users such as myself to transfer new releases of the code via Xmodem, into the system which lived 30 miles away at Randy Suess' house (he wanted it "in the city" (Chicago) not out in the burbs where I lived). Not a bad idea.
I could go on forever, I had so much fun with the programming - originally running in perhaps 48K of memory including CP/M - maybe 20,000 lines of 8080 assembler.
CBBS lived into the early 90's (approx 93?) and received over a quarter million calls, on its one phone line! Thanks to Randy Suess for keeping it going all that while, even some sophisticated things like running the actual files off a unix share! It ran on a PC with a hacked up 8080 emulator, TSR's to handle interrupts I added to the code, etc. Fun fun fun!
Gee, I did go on forever. I promise I will stop!
Ward Christensen
Got to correct a few things in Netringer's post:
Re: "blizzard / sharing programs" Xmodem was independent of the BBS project and came at the end of summer '77. CBBS was invented because of the "snowed in, lets do something" issue.
Re: "They made use of a pair of direct connect 300 baud modems donated by Dennis Hayes." Randy never told me that! I used my Livermore acoustic coupler all the time. When I went online with a "test system" I think by then it was a "PMMI" modem - one that squeezed up to 710 baud out of the Bell 103 300 baud protocol.
Re: "There was no operating system in those days, so the program talked directly to the hardware". No, there was CP/M thank God. CBBS was a CP/M program.
Re: "It took them a month to have it done by the next CACHE meeting.". No, Randy said "forget having the BBS as a club project, it will get stuck in committee. Just the 2 of us do it. I'll do the hardware you do the software". I had the software done in 2 weeks, but no one believed it so we called it a month. (testing DID begin 2 weeks after conception).
I am VERY VERY happy to report that Jason doing the BBS history seems to be very accurate in everything he posted. In the past I've heard things like "Bill Blue invented the BBS" - his Apple BBS in fact honored us by programming his Apple BBS after my command set so they would have a similar look-and-feel).
The bit about Mike asking what the "C" stood for in CBBS, most people thought "Christensen" or "Chicago" not what it really was - "Computerized". That's so OBVIOUS they'd say. No, not when there was no such thing as a computerized bulletin board system - at THAT time it WAS unique, haha.
------
Do I have any regrets? Yes, (1) not having a single entrepreneurial gene in my body and thus passing up the chance to make a career out of my "fame" and experience in Xmodem & BBSs; (2) using a simple checksum for Xmodem not a better one or a CRC;
P.S. just have to say it - CBBS got "hacked" one day. A file on the drive was created saying "George Tirebiter was here". I was SO dumbfounded, since I wrote ALL the code and knew it was uncrackable. Turned out someone visiting Randy Suess's had physical access to the drive and put it there - the only possible answer. Later, I discovered a programming "loophole" allowing breaking CBBS passwords. I "incremented a byte register" to count the # of missed-chars while typing the password. So if you missed 256 of them (you might have to try a few times since some would coincidentally hit) you would roll back to 0 and be in. I had to use this hack when Randy would jokingly (?) Lock me out now and then.
Thanks VERY Much to Randy for pushing the project independent of the club, and pushing for the SW to be written, and doing such a great job of the hardware.
Interesting commentary about Xmodem.
... John .... worked for IBM at the time - he added the CRC vs my rather weak checksum, to xmodmem.
;-)
No point arguing what I called the protocol - I am not sure I even did call it anything.
The quick history:
In '74, I attended a class, one session only, called "Large Scale Integration". The teacher held up a microprocessor - an 8008. I asked if it could be used to create a general-purpose computer, because I wanted a home computer. He said an 8008 could be used, and I asked what I needed to know to make my own, and he said "TTL Logic" which I wrote down because I never heard of it.
In the rest of '74 I taught myself TTL 7400 series digital logic, and started designing my own circuits. I became convinced the 8008 was "feeble" and started designing my own scratch-built 7400-based microprogrammed computer, working only on the most trivial of "subsystems", (haha) like a start and stop button that would if you pushed start, start a 4-phase clock (fetch, decode, execute, increment instruction counter), but if you held stop and pushed start, it would only run 1 4-step cycle. I learned about "synchronous" logic - my asynchronous logic would blip in little phase 1's after phase 2, etc, because of propagation delays, etc. But too much detail.
Anyway, when the Altair was announced in Jan '75 Popular Electronics (curses! I loaned my issue to some guy used to work for a TV station in Chicago and lived on the S. side but never got it back and can't remember who it was)... I decided the 8080 was more powerful and abandoned my home-brew project.
Instead I designed and built (1) a selectric typewriter interface for the Altair and (2) a floppy drive interface - using "Dynastor" flying head 256K floppies.
At first I adopted Processor Technology's paper-tape based assembler/editor to Tarbell's Cassette system, and later to my kludgy disk system - I called it "KOS" - Kludge Operating System". It could load programs by name, but pretty much everything else was rather manual. This was before IBM became the standard with their 8" floppies.
When CP/M came out, I bought a copy, and "beeped" it with a 300 baud modem, to an audio cassette on a friend who had a "Digital Systems" IBM-compatible floppy. I took that cassette home and with a speaker set on my acoustic coupler, beeped it into my machine, only to find CP/M itself destroyed, but "movCPM" OK, which I understood had a copy of CP/M in it assembled to 0. I disassembled CP/M, into assembler, later optimized it a bit (getting rid of jump tables) and reassembled it in the high memory of my machine (what, 20K then?).
SO why Xmodem? Well, because of having designed my own disk controller, I was incompatible with what was now the standard - IBM 8". So I used the 'beep to cassette' idea I'd used to move CP/M to my incompatible system - 128 byte (1 CP/M sector) blocks, numbered, with a checksum.
I based the protocol on an ascii reference card I had - i.e. "ACK", "NAK", etc seemed logical to use.
I released MODEM.ASM into the public domain by putting it on the CP/M user's group 6th distribution disk, in I think about August of '77.
It was totally manual - to be used by 2 people each "attending" their systems - i.e. one would type "modem s[end] " the other would type "modem r[eceive] ". At some point I added a quiet switch like "modem sq ", to allow sending to a "remote system" -
Keith Petersen, now of Simtel.Net, modified modem.asm to turn the quiet switch on by default, and re-named it "Xmodem.asm". That being a much more recognizable-as-unique name than my dumb "modem.asm", the name "xmodem" stuck, and people began calling it the xmodem protocol, or the "christensen protocol" (which I never liked).
There were others very instrumental in this - my bad memory fails to bring the names back - I can picture him - Jaffe... First name escapes me. He did the "remote CP/M" where he wrote a "bye.com" that relocated itself to high memory and allowed people to call into your CP/M system. Also important was
Then of course Chuck Forsberg, wrote a unix version of xmodem and added batch send/receive (I numbered my blocks starting at 1, he used a block 0 to send minimally the filename, or more info (size, date, etc) if it was available. He extended it to 1K blocks - my original being in the 300 baud modem days where 128 byte blocks was "almost perfect" as one communications engineer said (luck!). If it was shorter, packet overhead would slow it down, if longer, higher chance of corruption would slow it down with resends.
Chuck called his program "rbsb" (Receive Batch, Send Batch) and I suggested since his 1K block batch protocol was better than Xmodem, he call it "Ymodem", and he liked that and did so and of course followed it up with the spectacular Zmodem.
Xmodem (modem.asm, originally) was of necessity to share programs with "the world", and the BBS was 100% independent of it. Its history is a bit much to type in here
Ward Christensen