C is for CP/M
Вставка
- Опубліковано 19 лис 2024
- What's between BBC and DOS? Why, CP/M, of course! Control Program and Monitor? Or Control Program for Microcomputers? How about both?
The full "Art of Code" intro video clip mentioned in the video is here:
• "The Art of Code" Intr...
Check out Michal Kváč's synthwave art: www.artstation...
Petition to get Microsoft to allow emoji as drive letters! I want to store my files on 🙃:\>
I like that! And they could be versions of smiley faces when the drive is working and change to frowny faces (or maybe poop emojis) if the drive had a problem!
Come to think of it, when I’m writing software a lot of my file names should probably have poop emojis in the name!
@@cs233 I used to have emojis in my shall prompt, smiley or frowny face depending on if the previous command exited successfully or with an error code. Today it's a bit more boring, just a coloured chevron.
The correct usage of initialism and acronym have earned you a subscriber, sir.
"C is for....lack of namespace Collisions back then"?
Loving this series, nice idea for a bunch of not-shorts, but not-too-longs :)
Something I love to bring up every now and then in the comments on UA-cam is that - in a round-about way - I think we have CP/M to thank for much of the invention and popularisation of the term “forward slash”. A “forward” slash is just a slash - that’s the only version that exists in natural human language. So why do people call it “forward slash”? To distinguish it from the backslash. Why do they need to do that? Because backslashes are ubiquitous in Windows. Why is that? Because it inherited them from DOS. And why is that? Because DOS copied CP/M, and CP/M used slashes to introduce command arguments. When a directory structure was introduced, the most obvious course of action would be to just copy Unix and use slashes as directory separators, but that character was already in use, which would be confusing. But there’s this typographical oddity on everyone’s keyboards which is its mirror image, so why not use that? And thus the language was very subtly altered.
My first computer was an Schneider CPC464, a rebrand of the Amstrad CPC464. I remember booting CP/M on it a few times but didn't know what to do with it. After all I was like 7 at the time. Now I write code that runs in hospitals.
Thank you for this series. It is so refreshing to see a channel that does not engage in click-baity, hot take nonsense to get more views.
Looking forward to watching the ray tracing series too!
C is obviously for CDE - Common Desktop Environment
and if you are plugging in more drives into windows than there are available letters you will be forced to mount them as directories.
With VMS you'd get a lot wider range. DUA0 to DUZ9. Some 260 disks required to fill up the space.
Was looking for this comment as I've definitely saw a video of some guys doing it, but didn't remember what happens :D
The videos in this series are fun and very informative. I always learn something new. Thank you :)
Damn dude do you have to make these so good I watch him just because you're entertaining I had no idea that you were going to be philosophically good these are awesome can't wait for more
My first programming job was building an application on CP/M in BASIC in 1983.
CGA was Color Graphics *Adapter*, not *Array*. There were no "arrays" on a CGA card -- just a Motorola 6845 CRT controller, some DRAM, and a bunch of 74LS TTL chips. The MDA (Monochrome Display Adapter) had a similar design.
I like what you are saying... and I love the way HOW you are saying it. It is just brilliant:
"Keep your old disks... throw away your old network cards. Understand, that languages will come and go, but it's the underlying patterns, that matter..."
Aww hoped to c some C!
or CPP for the 3 letters
Yes. The original C and whatever came later where it's part of the language name would be nice. Maybe a "^C*" special? 😊
@@mtarek2005 Ew
BCPL... My introduction to coding as part of my work as a hardware and software developer back in 1982, targettng a proprietary microcomputer system based around the TMS9900 microprocessor. As mostly a hardware guy, I loved the simplicity of the language. Fun times!
I have a set of diags on 8" floppy discs in my loft for CP/M based machines. I remember PIPing to xx from yy. I do not have an 8" floppy drive to take my disks though.
PIP was my favorite CP/M utility, for sure,. You could do so many things with it.
Really an awesome series, this should get many more views.
On the subject of more than 26 drives: 2000 (maybe even nt4 and 3.5) and later lets you navigate to volume IDs instead of drive letter so it's not the end of the world, just really annoying. You could say, place these in a volume folder shortcut on another drive and have some weird russian doll situation going on.
it won't auto mount, and you can need to mount it to a directory Unix style(yes windows supports that apparently, since forever, u don't even need to run out)
I am pretty sure this was the thing on 2000 and XP. Now I don't know.
Are A and B useable for hard drives? I thought you only needed to exceed 24 drives to run out of letters.
@@pjl22222 I just tried in Win10 and you can totally use A and B for hard drives.
@@pjl22222 windows won't auto assign to them but u can use them, floppy disks are auto assigned to A and B, then the rest of the letters
6:58 any chance of talking about where the tradition of 80-character-wide terminals came from? years ago I went down a rabbit hole related to those and I recall it having roots all throughout the history of printing, well before digital computers came along
I saw your Space Quest 3 image there...the other aspect of it that blew me away, when I played it on an XT compatible, was how dang catchy the music could be through the computer's very limited speaker and sound processing.
As soon as you mentioned that there were other acronyms/initialisms, there was only one that sprung to mind immediately, and you didn't mention it: CPU
It was super weird finding out BIOS stood for "Basic Input Output System", I remember being taught it meant "Basic Integrated Operating System"
Ahhhh... memory lane. Excellent talk. Been there and lived a lot of it. Hope you get to mention FOCAL on DEC PDP8 when the time comes. But DEC also had a hand in CP/M. I learnt RT-11 years before CP/M. Never read the manual for CP/M (Bondwell-14 luggable) since the old version of RT-11 had the same command line syntax. (RT-11 had been "modernised" by the time of CP/M but you could still invoke ye olde syntax on the newer systems.) As you are about to say, PC/MS-DOS followed with this old RT-11 syntax, but, IMHO, really botched everything with their back-slash usage. We now have to live with specifying forward-slash in the most stupid places (and, as an Apple adopter since 1988, needing to do that continues to appear dumb).
Wow. Very nice! Thanks :)
Great little vid.
Or introducing multiple partitions per drive.
I suppose you'll discuss it more next week, but I'm fascinated that no one will ever know what really happened when IBM went to Digital Research. It's a real Rashomon Effect, and we just don't have an unbiased account. My guess is that, in many ways, they just didn't "vibe".
interesting, thanks!
Cp/m was quite fascinating with my little dos experience in the 80ies. But I perceived it being similar albeit more structured/orthogonal command line syntax
General Failure reading Drive C. Who is General Failure? Why is he reading my drive?
More than 26 drives, Windows will just stop automatically assigning drive letters but you are free to mount as many drives into mount points on NTFS Partitions using the magic of NTFS reparse points. The NT Kernel internally doesn't use drive letters to refer to drives it uses GUIDs as volume ids and creates links in kernel object space from drive letters to volume ids (it wouldn't even be theoretically possible to exhaust the number of possible volume ids before you ran out of size in the universe for all the drives). There is a special syntax that allows you to access drives by volume id in Win32 so even if a drive is unmounted it can still be accessed in any program that doesn't require drive letters
basically mounting to a directory Unix style
Great episode! I'd forgotten why it was called the "C:" drive, although it was obvious back in the day. I wish you'd introduced the C for the C-language as standing for "combined" and worked it back though: it might have blown a few minds! By the way, "C++", "P" or "D", what's your position?
As for the question at the very end: is you put more than 26 physical disks in a PC running Windows, you can either only use 26 at a time and change drive letter assignments as you need to, or you can combine some of them into one or more multi-disk volumes, bringing the number of mountable volumes below 26.
Another awesome video! Thanks.
Have a question, though /usr is for unified systems resources not for user, not sure where I picked it up from but I’m sure someone corrected me when I used it as acronym instead of initialism. Feels like you might know the answer.
The most detailed account I've seen of how this happened is post Rob Landley made to the Busybox mailing list back in 2010:
lists.busybox.net/pipermail/busybox/2010-December/074114.html
It doesn't cite any source, though, so no idea how accurate it really is. But "unified systems resources" sounds to me like an attempt at post-hoc rationalisation - the /usr directory/partition definitely goes all the way back to the very earliest Unix systems and somehow I can't picture Dennis Ritchie and Ken Thompson picking "unified system resources" and abbreviating it to /usr.
Thanks @@DylanBeattie
I'm not entirely sure, but I believe Unix since early would have /usr on hard drive 2, as the pdp-11 there had two hard drives. OS on / and user home directories mounted as /usr. But the system at some point wouldn't fit one drive, so /usr/bin etc. became the rescue. Later, /home became a thing, since /usr had a different use. And backronyms like unix system resources are invented.
I've also recently been reading up on how to develop apps for GEM which was a GUI interface for CP/M, Just out of general curiosity.
Atari also called it gem
Great video...Can we have one on the history of the Inferno OS
Oh, clever use of letters to do a 2-parter!
... CP/M 2.2 is such a nostalgia trip for me... with only 64K, the whole system can "fit inside your head" and being an elite hacker was a much easier goal.
Unless I'm mistaken, the backslash that DOS, and now Windows, use to separate path elements is also from CP/M, where Unix uses a [forward] slash, as do Web URLs. Interesting tidbit: Microsoft released the source code for DOS 2.0, which has a compile-time flag, or more accurately an assembly EQU, that allowed you to build the OS to use a forward slash as a path element separator, and a minus for command line switches, just like Unix does.
Before DOS had directories they decided to use slash for command options, like UNIX uses dashes. Then when they added directories slash was already in use so they had to pick something else and they figured backslash was good enough causing much confusion in non techie people who like to call slashes backslash for some reason.
@@pjl22222 And the use of slashes for command line switches, as opposed to dashes (or minuses) for command line options, came from CP/M.
C is for cookies, but serious „the world runs on C“ :) - not sure how that fares in terms of Acronym ,)
My computer still has an A and B drive because I spent money on a grease weasel and a USB floppy disc drive, drive D is my USB DVD drive. And the reason they are all USB is that there's a stupidly complicated and convoluted network of USB devices that route to a switcher to go between my laptop and my main desktop computer which also has an installed Blu ray drive, and the only reason I bring this up is that I recently moved house and had to re-replicate that convoluted setup, and I've only used the floppy disc drive at least once this year.
I don't even think the B drive (a 5.25 floppy) appears in Windows 10, but it's labelled as such. I'm fun at parties, and I hope I made someone at valve scratch their head during the steam hardware surveys...
To your last question:
It either breaks, or...
You are suddenly able to move a file from M156: by a program on A1: over to M306: - and the whole file system gets as complicated as the british motorway system.
Thankyou for celebrating Gary Kildall.
For making a shitty OS and setting computers back decades? His crap deserves to be forgotten.
Kind of had that happen with work one time, running out of drive letters. I had so many remote server drives mounted that I was running out of drive letters to assign them to. Thankfully, while you can run out of letters for mounting in Windows you can still directly address a server using its full path, \\servername\directorypath. Mounting is just a connection convenience at that point. Not sure what you'd do if they were physical drives, or logical partitions, but I'm not sure why you'd want that setup.
for physical drives, it won't auto mount, and you'd need to mount it to a directory Unix style(yes windows supports that apparently, since forever, u don't even need to run out)
My prediction... you'd end up with Æ:/Documents/...
it won't auto mount, and you'd need to mount it to a directory Unix style(yes windows supports that apparently, since forever, u don't even need to run out)
If it’s the “last available letter” on an appropriate ISO codepage containing Æ, it would be *Å,* but who’s counting letters outside MS…
You'll always have ℵn
Wait ... what does happen if you use all 26 drive letters. I haven't used Windows as a daily driver in a long time, but now I want to know!
the TLA beginning with C for me has to be CPC (the amstrad CPC) which is where it all started for me and it included CP/M.
My first computer was also the Amstrad CPC. I wrote an emulator once, as I couldn't get any of the existing ones working on Windows NT 4. Lost the source code unfortunately :(
Particularly emulating the "graphics chip" was an interesting experience, as it was really a character renderer abused to do graphics. Which is why the Amstrad had the 8 line interlace pattern.
And it was programming the Amstrad as a kid that tought me (non-native English speaker) to spell "colour", not "color".
been there - done that.
Even MP/M ..
I have seen folks on networked PC's who run out of drive letters as they are not wanting to use long paths.
As A & B are "free" I allocate these to removable USB drives
What about CICS. It still runs the world.
Commodore Business Machines????
I have always felt so bad for Kildall. He had the opportunity to become literally the richest person in the world and he blew it. He was so bitter for the rest of his life. It's sad this seemed to get the better of him.
CP/M snarfed the idea of drive letters from DEC RT-11 which snarfed it from IBM DOS/VSE and VM.
My goodness, I'm even older than CP/M :D
I haven't had a lot of exposure to CP/M, I tried it on my XT machine and it was nice but all the good software, was on DOS by then (unfortunately). But the moment I saw the first Unix like machine, I was sold... It's been Unix/Unix_like for me since. I did run it a year ago on a C128 and my goodness, that was slow on a C128! Unusably slow!
Oh man CORBA, that was uggghhh! The worst of the distributed crap ever! How unnecessarily complex could you make something as trivial as RPCs? I build several CORBA services with Delphi 5 in the late 90s, I so wanted it to be over! I rather build socket application with BSD sockets and have fun doing it compared to CORBA.
More than 26 disks (volumes, really)? No problem, mount them as directories into existing filesystem that supports this feature (such as NTFS, the mounted volume doesn't need to be NTFS). Or, access them via their NT name (that is projected to the Win32 name space), something like \device\harddisk2\volume3 being projected possibly as \\.\harddisk2\volume3.
🥇
Dave Plummer explains/demonstrates what >26 drives on a windows computer does.
I'd like to see you try connecting more than 26 disk drives to a single pc. Guess USB will be needed.
The opinions of computer dealers at the time was not relevant to IBM. IBM didn't not sell computers through "just anyone". Even when I got my PS/2 Model 50 in 1987, I had to go to a mainframe VAR. Selling through regular dealers to anyone off the street didn't come until later.
8:35 you just can't mount them as letters but NTFS allows you to mount drives as directories unix-style
yeah
I love mounting my flashdrives to C:\mnt\whatever or to mess with Linux users, to C:\dev\sda
C for CP/M is fine. Gary needs some credit for his work. It's sad that microsoft prevailed with it's inferior DOS.
Microsoft has always copied others. They couldn’t innovate out of a paper bag.
If you add more than 26 drives, the 27th will just not show up in Windows. It will still show up in disk management.
And you could mount it in almost Unix/Linux style to empty folder of existing drives
Even before that you can remove letter and mount as subdirectory (at least on NTFS filesystem)
C is for CRASH!
Fun fact "usr" in /usr doesn't stand for "User" it stands for "Unix System Resources"
It's funny, I've seen the same thing in a lot of articles and bits of documentation but I suspect that's another backronym added many years after the fact... mainly 'cos I just don't believe Dennis Ritchie and Ken Thompson would have stopped to figure that out the day their prototype OS got too big for the PDP-11 hard drive they were developing it on and they had to mount the second drive to give them enough space to keep going. That might be a fun one to come back to when we get to "U" :)
5:12 guess it just wouldn't mount those drives going over Z?
C is for Cobol.
Watching…
C is for CPU
pip b:=a:*.*
Internally CP/M uses a 4 bit number to identity disc drives. Meaning that the dive letters run A-P, rather than A-Z.
CP/M filenames are an 11 character string. The dot only exists for human readability. Also conventions like filenames being upper case were only enforced by the Console Command Processor (CCP), effectively the "shell". It was trivial for applications to create lower and mixed case filenames. Even control code sequences.
For more information about CP/M: The Phintage Collector is currently doing a series all about it!
From what I remember, it’ll start double lettering the drives. After Z comes AA, AB, AC…
it won't auto mount, and you'd need to mount it to a directory Unix style(yes windows supports that apparently, since forever, u don't even need to run out)
Excel is what doubles the letters
I'm starting an office pool on what "D" will stand for.
Didn't he say it stands for DOS?
D is for DOS. E might be a fun one to run a pool on, though. :)
@@DylanBeattie We've started with ACK, so ... EOF :-)
@@clasqm I predict you have 2 of the 3 letters correct (And in the right position too).
Delphi