The Stack Overflow podcast is back! Listen to an interview with our new CEO.

Hot answers tagged

110

When CD-ROM games were first introduced, game developers didn’t take any measures to prevent users from copying them, for two main reasons: CD-ROMs could contain more data than most hard drives at the time; CD writers were rare, and extremely expensive. The Wikipedia page on CD-R gives some idea of the expense involved: in 1990, CD recording systems cost ...


92

In the late '70s and very early 80s it was not unusual to make BIOS source code available. Apple did indeed do so; the full source listing starts at page 76 of the Apple II Reference Manual. Atari did the same in their Operating System Source Listing section of their Atari 400/800 Technical Reference Notes. For CP/M machines, having the BIOS source was near ...


82

It varied. There was no single method. Some people used assemblers on the target machine, others used cross-development tools. As an example of a large product for an 8-bit machine, I worked on the BitStik CAD software for Apple II and BBC Micro systems from 1984 to 1986. That used Apple II machines with Z80 CP/M cards for coding (with WordStar) and ...


64

When other manufacturers attempted to copy the BIOS from the source listings, IBM sued them for copyright violation and won. Besides, even without the listings, anyone would have been able to dump and disassemble the BIOS. Publishing the source code made it harder to argue that the engineers hadn’t seen or used it. What took IBM by surprise was the ...


62

As indicated on IMDb, the books are Green: International UNIX Environments, probably part of POSIX or The X/Open Guide. Orange: Trusted Computer System Evaluation Criteria, part of the Rainbow Series published by the US DoD. Pink: The Peter Norton Programmer's Guide to the IBM PC (Peter Norton wears a pink shirt in the cover photo, as can be seen in this ...


62

The message appears in sudo’s revision control (in its current guise) in June 1993, in the University of Colorado version of sudo, in a slightly shorter form: We trust you have received the usual lecture from the local Systems Administrator. It usually boils down to these two things: #1) Respect the privacy of others. #2) Think before you ...


61

In the embryonic form of C described in the 1974 C Reference Manual, there was no requirement that the left operand of . actually be a structure, nor that the left operand of -> actually be a pointer. The -> operator meant "interpret the value of the left operand as a pointer, add the offset associated with the indicated structure member name, and ...


61

The answer to the question as written is no. However, I can see where it came from. When Microsoft developed Windows NT, they decided they needed a "secure attention key" (SAK). This was a key, or key combination, that was guaranteed to bring up the genuine log in screen. The reason they wanted this is because, any sequence that could be intercepted by a ...


59

Why did trackballs disappear? To start with, they didn't. They are still around and can be bought in many variations. For example, Kensington sells six kinds of trackball, and Logitech sells three. Only their time attempting to work as a general pointing device is gone. Nub. Low-tech, cheap, compact and reliable, but miserably imprecise. Did they ever ...


59

Short answer: in the 1960s, NASA was buying and testing large numbers of integrated circuits (most of which would never be used) to make the technology mature. According to FastCompany: The MIT Instrumentation Lab tried to design the Apollo computer using transistors, which in the early 1960s were well-settled technology—reliable, understandable, ...


57

TL;DR; I'm asking if there is any information on why they chose to make kilobyte = 1000, Because kilo means 1000. It simply doesn't stand for 1024. The same way 13 inches aren't a foot. So I'm interested in the arguments used and the decision making process that lead the IEC to decide that kilobytes would be redefined as 1000 bytes, There was no ...


57

No, CTRL-ALT-DELETE was a thing before there were tasks to manage. The original IBM PC used this key sequence to reboot the computer, in case the computer crashed or the user just wanted to boot some other operating system or application. This was implemented by the BIOS, so any operating system, like MS-DOS, that used the BIOS services would get this ...


55

It all dates back to typewriters, but the two layouts aren’t ASCII v. non-ASCII, they’re mechanical v. electric. The !" etc. layout was common on mechanical typewriters, based on the layout used for the Remington No. 2 in 1878. This is the layout that ASCII was based on; that’s why “!”, “"” etc. received consecutive encodings, aligned with the encodings of ...


52

As far as I’m aware, the last FPU-less x86-compatible CPU which could still be considered general-purpose is the Vortex86SX, released in 2007 and still available now. This is a Pentium-class CPU, capable of running any Pentium code which doesn’t require an FPU. It is targeted at embedded applications, with up to 512 MiB of RAM, and includes a PCI bus, USB, ...


47

Some of the first C code I saw was like this: 0x8040->output = 'A'; — its purpose was accessing memory mapped I/O locations.  Needless to say it took me a while to figure out what this code was supposed to do, and the hex constant there really threw me. The original K&R C placed all field names (here output) into the same namespace.  ...


46

TL;DR: It was IBM's idea. IBM never intended to buy any of the software they acquired for the PC - and MS never intended to supply any OS beside Xenix. But MS (Paul Allen) soon recognized the potential business and acted accordingly. The Long Read IBM had no interest whatsoever in building up a basic software development for the PC. The strategy was ...


46

We had some software delivered on a CD in which the vendor purposely put a defect on a specific track. If that defect wasn't there, the software could say it wasn't an original CD. Since defects are not copied, even on low level track copies, an exact replica could not be created.


46

No, it wasn't even half of NASA's own computing power The shuttle itself had five AP-101 computers. They were derived from the IBM System/360 architecture, but with 32-bit registers and a 1 Mb address space. Mission control did have many computers (including many mainframes) in Building 30 of Johnson Space Center in Houston. Launch control at Kennedy ...


45

Throughout the duration of the Space Shuttle programme, the overwhelming majority of the world’s computers were busy with duties which had absolutely nothing to do with it. So launching one shuttle took far less than half the available computing power in the world, and launching two would also have taken far, far less than the available computing power in ...


45

After some more research, I believe I've stumbled across the real answer: The VIC-II and SID used a larger process node size because Commodore's fabrication line circa 1981 was uniquely positioned produce chips at that size at effectively no production cost whatsoever. Based on what I've read, here's my best guess at what Commodore's fabrication situation ...


45

When did computers stop checking memory on boot? Never. I remember my old 8088 used to do this (640K OK) but can't remember seeing anything like this since. Does this still happen and it's just not visible? Exactly. And it has been simplified and speed up as well. But more important, it's usually hidden under some manufacturer boot logo or whatsoever ...


42

The premise: Machine language (and Assembly language) don't have the concept of data types is not quite correct, because tagged architecture means exactly this, machine language where the data is tagged for its "type" (even though not quite what we know from higher level languages). Probably the first widespread tagged architecture computer was the ...


40

I remember a conversation with an IBM engineer back in the 1980s, who implied there was an internal fight over this between IBM's engineering and marketing departments. The engineers wanted the PC to have the same keyboard as the popular 3270 mainframe terminal, for easy migration of users and software in a business environment, and in fact IBM did produce ...


40

The ← and ↑ symbols were originally included in ASCII-1963 as programming operators. They were used in a number of programming languages at the time, but the only common usage left today is in Smalltalk where the _ and ^ characters which replaced them in ASCII-1967 can still be used for variable assignments and variable selectors, respectively. The ...


40

I will just explain what a bit is. It's a binary digit. 0 is numerically zero, 1 is numerically one. If you want to add 1 and 1, in binary it overflows. the result is 0, and a carry out. As you understand, other arithmetic operations can be done on bits. They takes a fair bit of logic to implement. Binary is positional. That means that a 1 which is 4 places ...


40

The cursor is needed on a CRT raster display because otherwise it's hard to know where the next character will appear. On a teletype or teleprinter, you know where the next character will be printed because that's where the print head is positioned. The full-block cursor depends on the ability of your video hardware to do reverse video (otherwise the ...


37

Despite your assertion, there would in fact be situations where it would be ambigious. First off, early C compilers were very simple. This was in fact the main appeal of the language, as compilers for it were very easy to create and could run on very small systems, like early 16/32 microprocessors. Adding a bunch of code for hitting all the niche cases of ...


37

Before IBM PC even existed, terminal keyboards for IBM Mainframes make extensive use of the SysRq or (System Request) key. I recall using SysReq key on IBM 5251 and 5291 terminals for IBM S/36. Probably the key (and function) was already present in the 1970s IBM 3270 terminal. Its function was to suspend the current job and display the System Request Menu. ...


36

To me it seems like kilobytes were well established as 1024 bytes, both by programmers using them and by electronic engineers They are not the only people though. The term got confusing mostly because of disk manufacturers who preferred base 10 because your disk capacity was a larger number. Perhaps the most egregious nonsense comes from the high density ...


35

Machine language (and Assembly language) don't have the concept of data types, so if you want to add an int and a float variable in Assembly, you have to use the appropriate Assembly instruction that adds an int and a float. Erm... this sounds as if you're mixing up the idea of data types and operations on these. Data types are memory structures. Operations ...


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