[HN Gopher] QModem 4.51 Source Code
___________________________________________________________________
QModem 4.51 Source Code
Author : AaronFriel
Score : 141 points
Date : 2025-05-03 15:30 UTC (7 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| nu11ptr wrote:
| Super cool. At first I was thinking QModem was the name of an old
| protocol (like XModem, YModem, ZModem) because it has been so
| long, but it sounded so familiar. I googled for images and boom -
| there it is, my childhood. I spent so many hours in this program,
| and what a great time I had dialing all my local BBSs and
| downloading all sorts of programs via ZModem on my 14.4K modem.
| Thank you, Aaron, for making this little piece of my childhood
| available for inspection and posterity. And may John RIP.
|
| Update: it is also neat it was written in Pascal which was my 2nd
| language and holds a special place in my heart. I realized early
| on that BASIC was not ideal for writing professional programs and
| hadn't yet moved on to C, so Pascal had my attention for a number
| of years as a teenager.
| cptskippy wrote:
| I remember once a month the the ABBL(Atlanta Bulletin Board
| List) would come out and my father would download and print it
| at work because we didn't have a printer. He'd come home with a
| reem of green striped tractor feed paper and I would scour over
| it transferring annotations from the previous list and making
| note of new boards to try.
| johntarter wrote:
| I also completely forgot that Qmodem isn't the protocol but the
| software. My first PC was an IBM XT 8088 with 20MB HD and 2400
| baud modem. Twice as fast as a 1200 baud and the number of
| floppy disks it could fit in that hard drive!
|
| Now also remembering we could assign macros on Qmodem to
| function keys. That let us automate playing games like Trade
| Wars. I'll be honest and say we were using it to also pirate
| games like Space Quest, Ultima, Leisure Suit Larry.
|
| My lord, where has the time gone since then?
| mrpippy wrote:
| Original post when John Friel passed away:
| https://news.ycombinator.com/item?id=42551900
| monocasa wrote:
| John Friel.
|
| I normally wouldn't care about a mistake that'd be corrected
| when someone clicks through, but I think this is release
| supposed to be a sort of memorial to his life.
| reaperducer wrote:
| _I normally wouldn 't care about a mistake that'd be
| corrected when someone clicks through, but I think this is
| release supposed to be a sort of memorial to his life._
|
| Plus, AI crawls the world, and if it sees an error enough
| times, it becomes the truth for millions of people.
| codr7 wrote:
| Who will devolve themselves out of history, I say let them.
| monocasa wrote:
| A true gradient descent into the trash can.
| mrpippy wrote:
| Yikes, my mistake, fixed.
| smashed wrote:
| That is very cool, had no idea qmodem was built in Pascal at the
| time.
|
| Thanks to the author for adding a very interesting readme.
|
| I know this is for archiving and historical value, but I'm
| wondering what kind of license this work would/could fall under?
|
| I see some files have copyright headers from probably long gone
| companies (upgrade.pas for example).
|
| Also, the readme mentions the original documentation is not
| included but the src dir does contain a 98kb .HLP file, which I
| thought was more associated with early windows era software and
| not common for MS-DOS but someone might want to take a look
| 486sx33 wrote:
| Batch upload Phone book Mini bbs server Later Windows Scripts
| Terminal window Graphics
|
| Great memories !
| paulryanrogers wrote:
| Gives me waves of nostalgia. I settled on Telix, but recall using
| Qmodem from time to time. These were essential tools to
| connecting to the outside world for us nerdy teens in the early
| 90s.
| mycall wrote:
| Same here, Telix was the best for its time. Procomm and Qmodem
| were top tier as well.
| EvanAnderson wrote:
| Aaron - Thank you for putting this code out on Github. It is a
| fitting tribute to your father's work and his life. I wish you
| and and your family well.
| LVB wrote:
| I love seeing this. I used these tools during my computer-
| formative years. Now, at 51 with a whole computer career under my
| belt, I've been thinking a lot about those days. Nostalgia will
| bias things positively, of course, but I'm look back fondly on
| how, at least for personal projects, I _just did stuff_.
|
| At that time, I had no background in "real" CS or best practices.
| I didn't have the internet advising this way or that, and my only
| resource was a book or two from B. Dalton. I didn't even really
| think about good or bad code... merely: does it do the thing I
| want it to. I just made my programs however I wanted and
| thoroughly enjoyed it.
|
| Lately, I've wanted to get back to that mode, at least a bit. It
| is really tough to set aside all of the rigor and analysis I'm
| accustomed to and just bang something out. Ugly, buggy, happy
| path only, but at least they exist. Things like Cursor et al.
| have come along at the right time...
| antirez wrote:
| A bit less than 30 years ago my friend and I found an IBM AT in
| the trash, perfect conditions, with even the floppy disks nearby.
| We connected it with an RS232 cable to a Linux box, and made an
| IRC workstation using QMODEM, for the girlfriend of my friend. We
| were connecting via dialups, and the bill every month was high.
| With Linux NAT, we were already sharing between my and his
| apartment, using a coaxial cable, and with the IBM AT now we
| could share the Internet connection to three computers.
| yusina wrote:
| Seeing "internet connection" mentioned in connection with
| QMODEM is weird. Are you sure you got your story right?
| kosolam wrote:
| Modems were the way to connect to the internet providers so I
| guess he used QMODEM to dial up.
| yusina wrote:
| That's not at all what QMODEM does.
| grgbrn wrote:
| That's precisely what QMODEM does? What do _you_ think it
| does?
| tom_ wrote:
| qmodem probably makes a perfectly good terminal program. So
| presumably the 3rd PC gets its internet connection (so to
| speak) by being a terminal for one of the other 2.
| EvanAnderson wrote:
| I'm reading it as they used the IBM AT as a serial terminal,
| running QMODEM as the terminal emulator, for a Linux host
| that was connected to the Internet via modem.
| yusina wrote:
| Saying "share the internet connection" is quite a stretch
| though if you just had a terminal connection to some other
| host which then connected to the internet. I'd associate
| "sharing a connection" with some (perhaps NATed) IP
| routing. And they mention NAT, thus my question.
| grgbrn wrote:
| Maybe your association would be different / the
| terminology would make more sense if you were online in
| the early 90s?
|
| BUT, it was definitely possible to do what you're
| describing with some combination of a dialup shell
| account, a terminal program like qmodem and something
| like https://en.wikipedia.org/wiki/Slirp
| EvanAnderson wrote:
| I think running SLiRP on the Linux box and a SLIP client
| on the IBM AT was probably a stretch, but it's certainly
| possible. At that point it probably would have made more
| sense to grab an NE2000 NIC and throw the IBM AT onto the
| coax network.
| grgbrn wrote:
| Oh I wasn't trying to reverse-engineer his network from
| that comment, just saying that this was a thing that was
| possible and that people did at the time.
|
| I agree it's highly unlikely that the AT was running
| slirp. Wikipedia says an AT was a 286, so it wouldn't
| have been linux. Not even sure what the options would
| have been. Minix? Xenix?
| EvanAnderson wrote:
| Based on their mention of "coax" I bet they have a Linux
| box w/ a modem doing dial-up PPP to an ISP, and a
| 10Base-2 NIC that they used to attach another PC. The
| Linux box was doing IP masquerading (NAT) to share the
| PPP connection w/ the machine(s) on the 10Base-2 LAN.
|
| Having the IBM AT a a serial terminal would let somebody
| run CLI-based software on the Linux box (like Lynx, an
| IRC client, FTP, etc). You'd just be using a shell
| account on the Linux box.
|
| I did stuff like this in the early 90s at home and later
| at a company I worked at (sharing a single dial-up
| connection over 10Base-2 with 5-ish Windows 95 PCs).
| resize2996 wrote:
| My first "real internet connection" (not prodigy or
| compuserve or local BBS) was connecting to the county
| library's gopher server via modem (Likely with QModem),
| navigating out to other gopher servers and then being able to
| telnet from there.
| antirez wrote:
| The clue is in the rs232 mentioned in my comment. Linux is a
| Unix, even if nobody does it today you can configure an
| external terminal via serial port and use the system as if
| you were a user.
|
| The two Linux box were one with the modem and the other via
| Nat (Ethernet but with old coaxial cables). The AT was just a
| terminal.
| EvanAnderson wrote:
| Having a serial terminal was just good fun, too, back in
| the days when having multiple monitors / computers wasn't
| common. I ran Slackware on a 486 w/ X Windows so I could
| use Netscape Navigator and I had an old RS-232 dumb
| terminal from my dad's old computer connected so I could
| have a shell open w/ an IRC client or my mail while I used
| Netscape. (I never liked running Pine in an X terminal. It
| was abnormal and strange. It seemed more natural on the
| terminal and it was cool to have two screens!)
| anonzzzies wrote:
| Wow that is a long time ago. I spent so much time in there. I
| wrote my own BBS software for the MSX in Pascal before that and
| got a bit obsessed with cramming features. When my family
| switched to PC, I believed real programmers, including the author
| of qmodem, of course, programmed in C. If I had known then it was
| Pascal, I would've been a lot more sure of my young self that I
| was on the right track (I was 14 or so).
| nu11ptr wrote:
| I also felt inferior programming in Pascal and believed "real
| programmers" wrote in C back in the early 90s. I quickly moved
| on to Turbo C/C++ after only a couple of years writing in Turbo
| Pascal in my teen years. If there is one thing I have learned
| in 35 years writing code, it is to ignore tech religion and
| focus on getting the work done. Some of the biggest feats in
| software engineering have been done with the fewest resources
| at their disposal.
| hnlmorg wrote:
| Well said. That's been one of the biggest lessons I've
| learned over my career too.
| zafka wrote:
| I loved Turbo C/C++!. I still have copies of the directory
| tree that I would move from computer to computer. It was a
| simple little sandbox to test things, or to show newbies
| code. I have an 486 box that still worked last I checked with
| a bunch of Turbo Pascal and Turbo C code - Almost all of
| which I would be embarrassed to see the light. I wrote
| thousands of lines of code before I should be using functions
| :). I did amuse myself though.
| mycall wrote:
| Anders sure has a great lineage of languages he developed.
| f1shy wrote:
| Beautiful code in a beautiful language. Very nice to see this.
| ck2 wrote:
| Ha my instant memory just seeing the word "qmodem" goes back so
| many decades?
|
| If Zmodem isn't available, choose Qmodem because Xmodem is slow
| as heck with ack after each packet
|
| I'm sure someone has a simulator around the web somewhere but not
| quite that nostalgic
| sedatk wrote:
| You're probably thinking of YModem.
| wenc wrote:
| This brought back memories. I remember dialling into BBSes using
| Qmodem, downloading QWKs (compressed email packets) from
| "conferences" (similar to newsgroups).
|
| I would read/reply offline using OLX (Offline Express, a QWK
| reader also part of the Qmodem suite), and then batch upload my
| replies (.REPs, also compressed) to the BBS.
|
| This was back in the day when you weren't connected 24/7, and
| when dial-up wasn't unlimited (in my country -- even if it was,
| BBSes were node limited so you couldn't stay connected forever).
| So participating in BBS conferences meant quick dial-ins and
| uploads, where most of the messaging/replies was done offline.
|
| Although bandwidth is abundant these days, I still think the
| QWK/REP idea is an attractive one. There is an art and a beauty
| to crafting replies offline from the cozy Turbo Vision UI that
| was OLX.
| EvanAnderson wrote:
| I loved QWK packets. That saved me a ton of long distance
| telephone charges. I didn't use OLX ("Silly Little Mail Reader"
| was my jam) but the concept was wonderful.
| wenc wrote:
| Ah SLMR is OLX.
|
| Mustang Software (Wildcat! BBS) bought Qmodem and SLMR (and
| renamed the latter to OLX).
| EvanAnderson wrote:
| Oh, wow. I didn't realize that. Very cool. I used the heck
| out of it.
|
| At one point I learned about the QWK format and wrote some
| code to build a QWK packet out of text files. My idea was
| to distribute an e-zine as a QWK packet. I successfully
| made QWK packets but never had any actual content to
| release.
| anthk wrote:
| I use slrn and mutt with mbsync/msmtp like that, among RSS.
| atombender wrote:
| Similar story here. I used RoboMail for MS-DOS as the offline
| reader back in maybe 1992-1993?, connecting to a BBS that
| interfaced with RelayNet/RIME, which was similar to FidoNet.
|
| RoboMail wasn't TurboVision, but it was very nice as TUIs went
| at the time. It seems mostly vanished from Google. I was a
| Turbo Pascal developer myself at the time, and I made an
| offline reader that I thought was far superior (multiple Turbo
| Vision windows etc.), but by the time I had gotten close to the
| point of release, the Internet arrived and I completely lost
| interest.
|
| I still wish there was an archive of RelayNet, because I used
| to post a lot, and of course I never kept anything myself. I've
| never found any archive of the content since it was shut down
| in 2007.
|
| Also, it's sad to hear that the QWK format's creator died in a
| swatting incident in 2020, of all things.
| EvanAnderson wrote:
| > Also, it's sad to hear that the QWK format's creator died
| in a swatting incident in 2020, of all things.
|
| Oh, man. That sucks. I knew about that tragedy[0] but I never
| read deep enough to realize that Mark Herring (the gentleman
| who, arguably, was killed in the incident) was the creator of
| the QWK format.
|
| It was already a horrific story. Now it just feels that much
| closer to home. Ugh. RIP Mark Herring.
|
| [0] https://en.wikipedia.org/wiki/2020_Tennessee_swatting
| snvzz wrote:
| Without a license, it's sadly not possible to continue to
| maintain the code, or even e.g. package it as part of freedos.
| sgt wrote:
| I'm sure his son can legally apply a license to that work.
| firesteelrain wrote:
| I forgot most of this but looking into the BBS software at the
| time, it looks like most of it was based on Pascal. Apparently
| very popular at the time
___________________________________________________________________
(page generated 2025-05-03 23:00 UTC)