138

Because you might not want error messages in your output. According to computer scientist Stephen C. Johnson: One of the most amusing and unexpected consequences of phototypesetting was the Unix standard error file (!). After phototypesetting, you had to take a long wide strip of paper and feed it carefully into a smelly, icky machine which ...


120

Why is ASCII this way? First of all, there is no one best sorting order for everything. For example, should UPPER or lower case be first? Should numbers be before or after letters? Too many choices, and no way to please everyone. So they came up with specific pieces that "made sense": Numerals 0x30–0x39 - Easy bit mask to get your integer value. ...


109

You are thinking that all output is for human reading. For instance, take the Unix cpio command. It writes the archive to stdout, which is always redirected to a device or file. It writes the archive with a header before each file that contains the size of the file, which lets it calculate the offset to the next file when reading it back. If there was an ...


104

This is covered largely in the history section of Wikipedia’s entry on newlines. Basically there are two primary lineages of operating systems leading to modern-day desktop usage: Windows on the one hand, and Unix-like systems on the other. Windows descends from MS-DOS (because initially it was implemented on top of DOS), which itself inherits much of its ...


93

For once, I do have a direct source for a "Why didn't they ...?" question. Eric Isaacson, back in the late '80s and '90s, wrote a commercial assembler for the 8086, called A86. (His homepage still has a section offering it for sale for $50, $52 outside North America, and explaining why it's the best assembler on the market for DOS. You can even download ...


61

According to ASA X3.4-1963 Appendix A, one of the design considerations was: (7) Ease in the identification of classes of characters Furthermore: A4.4 The character set was structured to enable the easy identification of classes of graphics and controls. And on page 8: A6.3 To simplify the design of typewriter-like devices, it is desirable that ...


48

Why is the clock frequency of the PS/2 keyboard protocol so high? I wouldn't call it high. It's quite in line with similar keyboard speeds - like Amiga operating a 17 kHz. At 11 bits per scancode, 10 kHz is a massive 909 scancodes per second. World-record holder Barbara Blackburn peaked at 216 wpm ≈ 18 cps ≈ 54 scancodes/sec. on a Dvorak keyboard layout. ...


39

In short, to better support interrupts, because interrupts were arguably broken (or at least very limited in usability) on the 8008. The direct answer to the question of why you'd move the stack off-die is "space": they needed a bigger stack and dedicating a lot of die space for a larger stack on the 8080 was basically a non-starter. But the ...


37

This was a good piece of production engineering. IBM expected to sell lots of twin-floppy PCs, even after the launch of the XT (personal experience in a UK reseller in late 1984). To assemble a twin-floppy PC and have the drives respond correctly to the drive select wires in the cable, there are four choices: Pay the drive supplier to jumper "left"...


36

Yes, huge safety concerns as I remember engineers sitting inside the cabinets of large mainframes while it was running, fully powered, large currents in each cabinet powering fans. Cooling water being pumped through the frames. Huge wiring looms hanging across the floor to great logic analysers on wheeled trolleys; trip hazards. One person regularly smoked ...


35

What reasons would CPU designers have for choosing these different approaches? It depends on what the designers intended to mark a valid bus cycle, which is the 'leading' signal for decoding. In a more general way, it's the design view of the bus. Common ways (*1) are: The 8080 way - Marking a cycle by a one of several (*2) dedicated signals marking the ...


34

At that time, developers at Microsoft were still dreaming the dream of version independent management of libraries, so newer, more powerful libraries could replace older, less powerful or buggy libraries - and best of all, deduplication of code. Think how bad it is today, there were dozens of different Visual C++ runtime libraries are installed on each ...


33

The range of intermediate results. The Java Language Specification, 2nd Ed. relaxed the evaluation rules for floating-point expressions by introducing the notion of an ‘FP-strict’ expression, defined as follows (§15.4, p. 319): Within an FP-strict expression, all intermediate values must be elements of the float value set or the double value set, implying ...


32

In UNIX, which was developed along with C, it is common to redirect the output of a command to a file or another program. For example, ls -a | more or ls -lr > index. In these cases, you would not want error messages appearing in your list of files, and especially not if the output of one command is being used as an input to another, and inserting an ...


31

man 7 ascii of Linux Programmer's Manual says, Uppercase and lowercase characters differ by just one bit and the ASCII character 2 differs from the double quote by just one bit, too. That made it much easier to encode characters mechanically or with a non microcontroller-based electronic keyboard and that pairing was found on old teletypes. As ...


31

As far as I am familiar with the genesis of the IEEE-754 floating-point standard from the literature, G. W. Stewart never looked at implementation cost for the support of gradual underflow. He was tasked with examining its claimed advantages to floating-point computation from a numerical analysis viewpoint. Charles Severance, "IEEE 754: An Interview ...


28

The user will perceive a delay (latency) between pressing a key and seeing the computer react. The reactions are usually on its screen, such as displaying a typed character or motion in a game. This delay must be kept short for the user to have a feeling of sharpness in the computer's reactions. The delay is the sum of (a) the keyboard scanning interval and ...


28

TL;DR: What functionality or convenience is gained by having these offsets be negative values from the base address? It provided easy access to two lists that can be extended independently in future versions with a single pointer. The Long Read: A single pointer can only point a single memory location (yes, sound obvious, but stay with me). So at first ...


26

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. I beg to differ. Using segments doesn't 'complicate' things in any way. Sure, it may require a different style of structuring the data used and there are very ...


21

The 8008 inherited its on-CPU stack from the 4004; as you mention, its successor, the 8080, replaced that with a stack pointer and an in-memory stack. (Less, if you want to save registers other than the program counter.) I suspect this is the main problem in the immediate aftermath of the 8008. If you want to push anything other than the return address ...


20

From the patent, "Integrated circuit microprocessor with parallel binary adder having on-the-fly correction to provide decimal results" (US3991307A) by Peddle et al. in 1975: It is desirable in microprocessors to improve the speed by reducing the number of cycles necessary to perform a given operation. However, it is also desirable to have a ...


20

Why does the 6502 JSR instruction only increment the return address by 2 bytes? Simply because the PC is already pushed before the second address byte is read. That way the CPU does need only to buffer the lower target address byte and read later on the higher one direct into the PC. The workings are described in great detail in the original 1976 MCS 6500 ...


18

It starts with discussion about computers overheating, That discussion seams to include some quite vague memory, so I wouldn't put to much into here. Still, such buttons were available and even installed after market, depending on company or state regulations. A CRAY Y-MP EL used at TU München is a great example, with its big power off: (Picture taken from ...


17

Because there were spare pins otherwise. Because sometimes this could make the design simpler. As an example, I'll put again schematics of a russian ZX clone, for example this one, named "Leningrad". All other clones with single DRAM set are made in a similar way. The inputs of DRAM chips (D21..28, labelled as 565RU5 -- russian analog of 4164) are ...


17

There seems to be some confusion about how this worked clouding the categorization of what to call it. Let's compare the interfaces between how Shugart designated signals at the drive (and how other makers used them) vs how IBM re-designated them at the controller in order to support the twist idea. (I've used A and B on the IBM version to reduce confusion) ...


16

This chart (showing the hexadecimal values of ASCII characters) outlines manassehkatz's answer graphically: Numbers are at 0x30 + the value of the number Capital letters are at 0x40 + the value of the letter (A=1, B=2 etc) Lowercase letters are at 0x60 + the value of the letter.


16

It's great to look back at a technology developed nearly 30 years ago and say "whoa, those are poor design decisions". OLE, and then COM answered questions that were apparent in early Windows. In particular the first thing it attacked was the problem of "DLL Hell" and how to package components from multiple vendors that could be consumed by multiple ...


16

Because $foo may itself start with a hyphen and look like an option or an operation, which would cause misinterpretation of the command line. Using -z or -n guarantees that no matter the contents of $foo, it will never be interpreted as an option. The BSD 2.11 man page for test says: The test grammar is inherently ambiguous. In order to assure a degree of ...


15

[Insert: Some site history While the German subsidiary (Commodore Büromaschinen GmbH), originally set in Neu-Isenburg near Frankfurt, had facilities for import handling and distribution, this was soon moved to a distribution center in Braunschweig and accomplished by a final assembly line and a development center. At the same time the company moved into ...


Only top voted, non community-wiki answers of a minimum length are eligible