Hacker News new | ask | show | jobs
by mbbrutman 1065 days ago
(Sorry, I forgot to preface this with Show HN)

  ** 2023-07-14 18:38 PDT The DOS machine is getting DoSed.  It's still beeping and happy but it's busy. **
This website is hosted on a 39 year old PCjr running at 4.77Mhz and it has been running over 2,500 hours continuously now. No reboots or program restarts ... you can see the current runtime stats by visiting http://brutmanlabs.org/status .

The machine specs are:

  - IBM PCjr w/ NEC V20 CPU (the V20 gives a small speed bump compared to the original 8088)
  - jrIDE sidecar providing expansion RAM to bring the system up to 736KB and an IDE port
  - Kingston SSD w/ a Startech SATA-IDE bridge
  - Parallel printer sidecar, modified to be bi-directional
  - Xircom PE3-10BT Ethernet adapter hanging off of the parallel port
  - IBM PC DOS 5.02 and mTCP HTTPServ
  - APC UPS (45 watt power draw with networking equipment)
  - Dynamic DNS is being handled by my home router, which forwards port 80 to the machine.
All of the upgrade parts are there for performance or convenience; you could use period correct parts and everything would work the same. (The IDE adapter would be a homebrew MFM adapter and you'd have to use something like a 3Com 3C503 on a bus adapter, but all of that existed in the mid 1980s when the machine was new.)

The web server is my own work, part of the mTCP project. Here are some of the features:

  - serves HTTP 0.9, 1.0 and 1.1 requests to be friendly to vintage browsers
  - Maps "normal" looking paths and resources to DOS 8.3 file format
  - HTTP 1.1 requests can be pipelined.
  - can serve up to 8 concurrent connections
  - logging to local disk and over UDP
  - can serve pre-compressed content
  - basic auth
  - runs on DOS 2.1 and up
  - built in SNTP client for time syncing
Besides the UPS it needs the SNTP client to achieve long run times, otherwise dropped interrupts cause the machine to lose time. Without the SNTP client it was losing up to a few minutes per day depending on the system load. The SNTP client also helped it transition through the daylight savings time change in March.

The limiting factor is going to be disk space for logging; it is generating logs and eventually that disk partition will fill up. (I need to add log rotating and compression.) This machine was running when the ChatGPT client for DOS was announced, and it was hosting the mTCP networking pages at the time, so it got quite a bit of traffic. I learned after that to leave a lot of space for logs.

It beeps when somebody visits - enjoy!

5 comments

A PCjr? That somehow makes this more funny than if it was a 5150 or something (but equally impressive).

I remember playing around with Xircom parallel port ethernet adapters and TCP/IP packet drivers (and corresponding applications) in the 90s on an old 286 laptop I still had. Almost exclusively used it as a client, though. Good times.

Yep, a PCjr. No parity bit on the memory even.

I have a love/hate relationship with the Xircom adapter. It's portable and great for machines without ISA slots, but the max throughput is about 40KB/sec. A nice, real ISA card like a WD8003 can do over 100KB/sec on the same machine.

Hmm, I now have memories of both a parallel Xircom adapter, and just a null-modem connection with SLIP and PPP (pretty sure I used both). The Xircom adapter might have come after. Though with that, you'd get at most around 10kB/s (at 115200 baud), and that's assuming the 286 has a 16550A to begin with...
One of my friends was way ahead of the rest of us in 1987, and bought a V20 to upgrade his Tandy computer. He works for a telcom now. Nice to see one still churning away.
I bought my first NEC V20 in 1986 or 1987. It was my first time touching the motherboard of a computer which made it nerve wracking, but they were very popular at the time. I bought mine mail order through the Exec PC BBS, which I think was in Chicago.
Is there any PCjr software that lets you use the 8080 emulation mode of the V20 (i.e. for running CP/M software)?
Did you need to do anything extra for cooling? One thing that impressed me about old hardware that I did not appreciate back then is that the CPUs don't even need heatsinks. I imagine this PCjr don't have one either, but it's probably got a fan somewhere to circulate air through?
There is a fan internally in the machine, but it was placed to cool the 5.25" floppy drive when it was in use.

I have more open space in this machine because I am using a 3.5" drive instead. I also replaced the original fan with a quieter Noctua. The jrIDE is running naked on the side of the machine because I think it was having heat issues.

In a later iteration of this machine it will get more direct cooling; the slots in the case are kind of restrictive.

I guess HTTPS is just a little bit too much processing power for it to handle?
Yeah, far too much for a little CPU like this. Never mind the horror of trying to port all of the libraries and keep them up to date.

Although there are people are using Apache in front of their vintage computers to terminate SSL for them while still having the vintage computer handle the request.

PCjr was my first family computer! Love it, thanks for the nostalgia trip.