Hacker News new | ask | show | jobs
by WalterBright 424 days ago
The things like the TYPE command, the DEL command, the 8.3 case insensitive filenames (6.3 for RT-11), the / for switches, the drive:, CRLF, etc. Anyone using RT-11 could pick up MSDOS in about 5 minutes. I know I did (I had an H-11, and bought an IBM PC).

I bought a hard disk drive for my H-11, wire-wrapped an interface board for it, and wrote the device driver for it. It was a fun project, and didn't take much time. It was straightforward. I even got RT-11 to bootstrap off of it.

Sorry, I don't think any of that stuff is a work of genius.

My profile pic on twitter is of the machine:

https://x.com/WalterBright

from before I added the HDD.

It's also been 40 some years since I touched an 11, so my memory of the details needs a refresh :-/

1 comments

Some of the things you're talking about are features MS-DOS had in common with RT-11 but where CP/M was totally different; specifically, DEL was called ERA on CP/M, and CP/M didn't have switches. (Except PIP, which, bizarrely, wrapped its switches in square brackets: PIP A:=B:*.COM[W]. See https://ia902808.us.archive.org/23/items/osborne-cpm-users-g...) MS-DOS got drive letters from CP/M; on RT-11, as you might remember, instead of A:, B:, C:, etc., you had SY0:, SY1:, and DK:. (HDOS copied that, as well as /switches.) I'm not sure where the 8.3 filenames are from, but CP/M and MS-DOS had them, and, as you say, RT-11 didn't, using 6.3 instead.

So, of the six similarities you listed between CP/M and RT-11, four were actually differences; only two were actually similarities (the TYPE command and the use of CRLF), with a third debatable one (8.3 is like 6.3 in that a three-character file type code forms part of the filename in some contexts).

If CP/M had used RADIX-50 like RT-11 did, it could have had case-insensitive 9.3 filenames in 8 bytes instead of 8.3 filenames in 11 bytes. I think that would have been a big improvement.

So, I don't think any of CP/M's deviations from RT-11 are a "work of genius", but it wasn't just a copy of RT-11, "little different", as you say. It clearly deviated from RT-11 in a lot of ways, to an extent that suggests drawing from some other source. Maybe RSX-11, dunno.

The page you link to just says "Sign in to Twitter". For the sake of courtesy, I'd rather not go into how I feel about that invitation.

The differences such as A: vs SY0:, are differences only in detail. The unix command line is fundamentally different, not just different in detail. BTW, RT-11 used PIP.

> The page you link to just says "Sign in to Twitter". For the sake of courtesy, I'd rather not go into how I feel about that invitation.

It goes to my profile page. Of course, I am logged in to twitter. I had no idea that it was necessary to sign in to twitter to see my profile page. There was no nefarious intent. I am not aware of any benefit that may accrue to me from you signing up for a twitter account.

I agree that Unix was fundamentally different in many ways, but CP/M wasn't a copy of Unix either; if anything, RT-11 was slightly more Unix-like than CP/M was. Because CP/M was evidently worse than RT-11 in many apparently unnecessary ways, I suspect that it was drawing from some other source.

I didn't suspect any nefarious intent, but if I didn't tell you it had happened, you would never have known. My apologies if it sounded like I was blaming you for it.

I don't see any heritage of unix in CP/M, but I do see a heritage from DEC. Not an exact copy, of course.

> if I didn't tell you it had happened, you would never have known

That's right, and now I know. Thanks!

> My apologies if it sounded like I was blaming you for it.

Thank you. Apology accepted!

Do you have any clues about which DEC system it might be drawing these other elements from? I mean specifically:

- FCBs.

- A command interpreter prompt ending in ">" rather than "*" or ".".

- 8-character filenames (rather than 6).

- ASCII filenames (rather than RADIX-50).

- Drive letters.

- PIP switches in square brackets rather than introduced by slashes. (Some TENEX programs evidently enclosed their switches in parentheses, but the ones I've seen so far don't use square brackets.)

- Launching programs from the command interpreter with command-line arguments, like Unix.

Maybe Kildall thought all these things up himself, but I suspect some previous DEC OS was their origin. But it isn't RT-11, TENEX, the DEC 10/50 monitor, TOPS-20, or VMS.

I want to emphasize I'm not claiming that these are advances or innovations. I'm just saying that they suggest some other influence.