Questions tagged [design-choices]

Justifications and trade-offs of historical hardware and software designs, and their possible alternatives.

Filter by
Sorted by
Tagged with
30
votes
3answers
3k views

What aspect of portable floating point did Java back down on?

Java was released under the slogan 'write once, run anywhere'; while its adoption was probably more about 'now we have a language that provides garbage collection in a familiar workflow and with a ...
21
votes
1answer
2k views

Why do Amiga Libraries have negative entry points?

As described in these answers, the jump table offsets to functions contained in an AmigaOS library are always negative values. The reason for this is not intuitive to me, but I suspect Carl Sassenrath ...
7
votes
2answers
193 views

Why was the VT05 resolution 72×20?

According to https://en.wikipedia.org/wiki/VT05 the VT05 presented the user with an upper-case only ASCII character display of 20 rows by 72 columns. At first glance this seems a reasonably natural ...
30
votes
3answers
4k views

Why is the ‘auto’ storage class specifier included in C?

The auto keyword in C seems quite redundant: wherever it makes sense to define a variable with automatic storage duration, it is already the default, so there is no reason to use the keyword. The ...
25
votes
5answers
10k views

Twist in floppy disk cable - hack or intended design?

There are many documents (e.g. this) describing the twist on two-drive floppy disk cable on IBM PC compatibles. While this is not the most proud example of clean hardware design, how much of this was ...
20
votes
5answers
5k views

Why did mainframes have big conspicuous power-off buttons?

Some fascinating stories in this discussion thread. It starts with discussion about computers overheating, but about halfway through the thread, it switches to discussion of mainframe installations in ...
6
votes
3answers
964 views

Why does -z and -n exist in most shells and /bin/test?

The test command on Unix-like systems provides two special syntax forms for checking whether a string is empty or not: test -z "$foo" # the length of $foo is zero test -n "$foo" # ...
2
votes
1answer
110 views

Intel vs Motorola device communication protocols

On this page about "An S-100 68000 CPU Board" it is said: From a hardware perspective there are some very significant differences how Intel and Motorola CPU's talk to the world. Somewhat ...
32
votes
2answers
3k views

What did Pete Stewart think he knew about efficient implementation of floating point denormals?

The most controversial part of the IEEE 754 floating-point standard is gradual denormals. Typically they trap to software rather than being implemented in hardware. In the common case where a workload ...
17
votes
1answer
1k views

Why did the 6502 handle BCD with a special mode?

The 6502 had special support for BCD arithmetic, because it was widely used in those days; this much, it had in common with other CPUs. But the 8080 and 6800 implemented this in the form of a 'decimal ...
34
votes
5answers
9k views

Why is the clock frequency of the PS/2 keyboard protocol so high?

The PS/2 keyboard protocol allows the keyboard to generate a clock rate between 10 kHz and 16.7 kHz. At 11 bits per scancode, 10 kHz is a massive 909 scancodes per second. World-record holder Barbara ...
29
votes
7answers
9k views

Why did post-8008 CPUs not keep the on-chip stack idea?

Ken Shirriff writes in his blog entry about the 8008: The 8008's seven registers are in the upper right. In the lower right is the address stack, which consists of eight 14-bit address words. ...
1
vote
0answers
221 views

Why did the Spectrum Next choose Z80 on FPGA? [closed]

I'm curious to understand why the Spectrum Next uses Z80 on an FPGA instead of something like at eZ80? I would have imagined they would choose the eZ80 since it is still a production part. Anyone ...
23
votes
10answers
5k views

Why did the original design of COM on Windows rely on the Registry?

In the early 1990s Microsoft introduced COM (Component Object Model) which was widely used in various programming environments including Visual Basic 5 & 6. Also known as ActiveX (or at least if ...
12
votes
1answer
621 views

Why do PC DOS kernel files have the COM extension, even though they are not executable as COM files?

The PC DOS kernel is stored in files named IBMBIO.COM and IBMDOS.COM. Although they have the COM extension like executable files, neither of these files could actually be run from the command line, ...
1
vote
2answers
1k views

In the Amstrad CPC's Mode 0, what was the design rationale for interleaving the pixel bits?

The following tables are modified and corrected from Painting pixels: Introduction to video memory. m-bit: memory bit p-bit: pixel bit Mode 2 - 640x200 (half width pixels), 2 colours m-bit | 7 | 6 |...
13
votes
4answers
2k views

Why did 1-bit DRAM chips have separate data input and output?

Many 1-bit DRAM chips provide two pins for data communication, one for writing data (typically described as Din or D on datasheets) and one for reading data (Dout or Q). Examples I've found include ...
5
votes
1answer
298 views

Original Mac clock frequency

Why was the crystal clock frequency for the original Macintosh (128k,Plus, etc.) 15.667 MHz, instead of a multiple of 8 MHz (which was the maximum clock frequency for the speed grade of MC68000 ...
19
votes
3answers
2k views

What was the role of Commodore-West Germany?

Most of the history of Commodore in personal computers took place while East and West Germany were divided, and Commodore maintained a significant corporate presence in West Germany. While I believe ...
42
votes
9answers
7k views

What was the point of separating stdout and stderr?

I occasionally need to work with console commands and 100% of the time I want to redirect my output to a file I fail to redirect stderr as well as stdout the first time. I can't think of a single ...
69
votes
5answers
12k views

Why wasn't ASCII designed with a contiguous alphanumeric character order?

Anyone who has dealt with strings at a low level (e.g., writing a parser in C), knows that doing so tends to involve frequent checks of—either manually, or through isalpha(), isalnum(), etc—whether a ...
3
votes
1answer
520 views

Why did CGA RGBI output leave DAC to the monitor?

CGA on the original IBM PC produced sixteen colors, one bit each for red, green, blue and overall intensity modifier. The preferred output device was the later-arriving 5153 color monitor, which ...
15
votes
2answers
2k views

Why did some CPUs use two Read/Write lines, and others just one?

Many 8-bit processors, such as Motorola's 6800 and MOS Technology's 6502 make use of a single pin to indicate to the rest of the system whether the CPU wishes to read from or write to a memory ...
49
votes
8answers
10k views

Why didn't the 8086 use linear addressing?

The 8086 used a segmented memory architecture where the linear address was computed from a 16-bit segment number and a 16-bit offset. This greatly complicated things from a programming perspective. ...
62
votes
4answers
21k views

Why is Windows using CR+LF and Unix just LF when Unix is the older system?

Windows and MS-DOS use the control characters CR+LF (carriage return, line feed) for new lines, while Unix uses just LF. As far as I know CR+LF made sense for systems controlling a real teletypewriter,...