last day (22 days later) » 

07:18
26
Q: Why did old IBM-PC-compatible computers only have 16 colors available?

Someone_who_likes_SEIn the MS-DOS Editor, the only choices for colors were a collection of 16 colors: That's 16 colors: Black Blue Green Cyan Red Magenta Brown White Gray Bright Blue Bright Green Bright Cyan Bright Red Pink Yellow Bright White How were these colors chosen, and why were there only 16?

Is this a question about MS-DOS specifically? (Or, rather MS-DOS and PCs in general?)
@wizzwizz4 This is a question about PCs in general, only DOS was used as an example.
Colours require bits, and bits cost money.
Because 16 colors should be enough for everyone ;-).
@Someone_who_likes_SE PCs in general or IBM PC compatibles?
07:18
Well, back then, son, there were only sixteen colours...
Heck, color itself wasn't invented until the late thirties ...
Old computers had two colours. (Usually black and white, but one could customise using different paper and/or ink).
@user3840170 PC = IBM PC compatibles in the mind of someone who uses DOS as an example; that was the usage at the time. Generic “PC” was an earlier (or later) use of the word.
Also, "old computer" = PC in the mind of someone who uses DOS as an example. As many of us know, PCs are middle-aged computers, not old. :-)
@Toby Speight: Not even old computers. With early PCs & compatibles, a lot of people preferred to run monochrome (usually amber on black) but higher resolution Hercules graphics cards rather than the standard PC CGA.
07:18
Some computers (I'm think of C64 specifically) had a larger number of colors that could be displayed, but only 16 of them could be displayed simultaneously, because screen image was composed of 4-bit indices into a color map. You could change the color map, but that would instantly change the colors on the screen using that color map.
@TobySpeight - old computers had three colours: black (ink) on alternating green and white (paper).
Heh, PC was Program Counter. When the IBM PC came along, CPU manufacturers every had to change the name of this most important CPU register to Instruction Pointer (IP) or something similar
@ReversedEngineer But, but, but... we also have Internet Protocol, Intellectual Property and possbly even more IPs so CPU manufacturers have to look for something else again :-( There are just not enough TLAs (Two Letter Acrynoms, or is it Three Letter Acronyms? Oh well...).
There are 676 possible two-letter abbreviations to choose from. Many of them are already used, but maybe something like ZQ could work as a register name.
@StarCat Yea, I think after that they gave up and accepted that the Instruction Pointer would share it's 2LA with a lot of other 2LAs. I did read somewhere probably in the 80s about the PC register (e.g. on Motorola 6800 CPU (and my first computer)) being named IP (e.g. on 8080/86/88) because of the IBM PC.
07:18
@Reversed Engineer: I think it was more a case that calling it "Program Counter" didn't make a whole lot of sense once you got multi-tasking.
@jamesqf On the contrary! A single core CPU can only ever execute one instruction at a time, the one pointed to by the Instruction Pointer or Program Counter. Various OS techniques are used to implement multi-tasking, making it more-or-less appear as if more than one program is running at the same time. However, in reality, only one process is running at any instant. With multiple cores, each core has it's own IP/PC, and executes only one instruction at a time, the one pointed to by its own IP/PC.
Ok, with modern CPUs that implement instruction pipelining, more than one instruction is being executed at any instant. But functionally, it makes no difference since only one instruction can be queued into the pipeline at any one instant: the one being referenced by the Instruction Pointer or Program Counter, or whatever the marketing dept. is forcing the developers to call the most important register this decade.

  last day (22 days later) »