Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Yes. The Program Segment Prefix is designed for CP/M compatibility:

https://faydoc.tripod.com/structures/13/1378.htm



yep, lots of other things, too. MS-DOS was CP/M-compatible.

Windows 95 was DOS-compatible.

and so on. and even though the base OS changed starting with Windows 2000, lots of compatibility things were kept because they were supported in previous versions of Windows or MS-DOS.

All the way down to files with special names such as "AUX" or "CON", and the backslash as directory path separator are all from CP/M, though the path thing happened to maintain CP/M compatibility, and not because CP/M had filesystem directories, because early on (maybe always?) it didn't have directories.


The backslash as path separator didn't come from CP/M (it also didn't have directories at the time). The forward slash couldn't be used because it was already heavily used for command-line switches in DOS 1.0 applications. That choice was likely copied from DEC TOPS-10 which many Microsoft employees would have been using.

Microsoft apparently wanted to break compatibility and use the forward slash, and even coded for the possibility by making the switch character configurable in the CONFIG.SYS of DOS 2.0, but IBM was against it.


DOS 1.0 used forward slashes for arguments because CP/M did the same. DOS 1.0 was almost an exact copy of CP/M, changing only a few small things, which is why it didn't support directories, either.

DOS 2 needed to be compatible with DOS 1, and DOS 1 needed to be able to run CP/M programs in order to capture the business it was gaining at that point, so DOS 2 kept what DOS 1 had, and so on. all the way up to Windows 11 today.

The backslash didn't come from CP/M, as I said. it came because they needed a directory separator for DOS 2, and being visually similar to the UNIX directory separator character (a simple diagonal line), the backslash was chosen. so, as I said earlier (very poorly, looking back), the backslash was chosen because of CP/M, but was not copied from it.


CP/M didn't use the slash for arguments. Slashes as arguments in PC operating systems seemed to start with PC-DOS 1.0. And even then, the number of included programs with arguments could be counted on one hand.


True, but none of these things began with CP/M or DOS. They were present in systems from the 60's. "pip" for example was in RSX-11, and probably didn't originate there either.


In fact, DOS 1.x didn't have directories either. Those were added in DOS 2.0


yep, because DOS 1 was a virtual clone of CP/M and kept the same feature set.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: