On CompuServe in the 1990's, my ID was "73313, 3443". I still remember it today because it was (seemed) way more important to me than any phone numbers I ever memorized.

According to Wikipedia:

The original CompuServe user IDs consisted of seven octal digits in the form 7xxxx,xx - a legacy of PDP-10 architecture - (later eight and nine octal digits in the form 7xxxx,xxx[20] and 7xxxx,xxxx and finally ten octal digits in the form 1xxxxx,xxxx)

How, exactly, was this User ID format "a legacy of PDP-10 architecture"?


It appears to be a legacy from TOPS-10. The easy part: octal was more popular in the 60s and 70s in general, but especially at DEC, which produced a number of 18-bit machines; the 3 bits per symbol divides 18 bits evenly, but the 4 bits per symbol of hex doesn't.

CompuServe's beginnings weren't as a bulletin board or ISP, but as a general-purpose timesharing system, where people could dial in and run programs on one of their PDP-10 machines running a Compuserve-modified version of the TOPS-10 operating system. On TOPS-10 a user ID was called a Project / Programmer Number (PPN), and consisted of two 18-bit parts (the project number and the programmer number), each written in octal, and separated by a comma — e.g. 3426,15, and this was how you would log into the system. The practice of giving subscribers project numbers over 70000 was probably a way to ensure separation between subscribers and system users, but I can't find any documentation of that; it's only my guess.

Compuserve continued to use PDP-10s into the 1990s, and as they grew into more of a communications service than a timesharing service, they eventually started using the term "user ID" (UID) instead of PPN, but the format remained the same, and when they connected to internet email, a user's PPN became their email address simply by changing the comma to a dot to get 71234.4321@compuserve.com.


Simply because DEC used octal representation of binary values, where IBM (and later micros) used hex. The PDP-10 used an 18 bit address and half word as smalest computational unit (the machine had 36 bit words). 18 Bits can be represented as 6 octal digits. So here you are. They just followed that scheme.

  • Oops, a downvote that late? Any chance the downvoter could explain the reasoning, maybe improve the answer? – Raffzahn Apr 3 at 16:41

CompuServe was initially a Time-sharing system utilizing original DEC PDP-10 machines. You would log in as a regular system user and run your programs. The credentials of these systems consisted of two octal numbers, the Project Number (1-377777, 1–10 reserved — akin to groups in Unix systems as I understand it) and the Programmer Number (1-777777, 1–7 reserved  —  the username). These numbers were combined with a comma (and enclosed with square brackets) when provided to system commands like LOGIN. When CompuServe later turned into the online service as we know it, the basic infrastructure was kept and that’s how the User-IDs came to be.

You can read up on the details in the DEC system-10 Operating System Commands Manual, specifically section 1.4.2.

(I initially just wanted to add a few details to hobbs' answer, but I'm not allowed to comment yet. So here's my full answer with all the context.)

Your Answer

