New answers tagged

2

I wonder if it might also have been the influence of tradition/habit. Things like pinball and pachinko have to be vertically oriented because the ball is pulled towards interaction with playing field elements (the bumpers, gates, etc.) by gravity, so the elements have to be stacked vertically. A landscape pinball machine would make for short turns and ...


2

It really depends on what you think of as a "callback". If you define it as "arbitrary code provided by an outer routine, to be executed by an inner routine under certain circumstances", I would argue that the concept dates back to the arithmetic overflow handler supported by the original UNIVAC (1951). Basically, the programmer could put two instructions ...


3

Callback is eventually present since the very first days of computing - right after arbitrary jumps and subroutines were invented :) The oldest case of organized callback, that is outside some custom package, as part of a standard programming system, I ever encountered is the Exit Routine mechanism under /360 style OS (like DOS/360). Exit Routine is the ...


5

My family owned an arcade parlor of sorts in the mid-1970's when Space Invaders, Pong, and PacMan were replacing mechanical games. I have seen the insides of many old-school arcade games when they were relatively new. In the early games the CRT was often mounted horizontally. What you saw was a mirror at about 45 degrees that reflected the CRT and made it ...


11

The highest capacity DRAM to ever be used for the Commodore 64 motherboard was 256Kbit. By the early 1990s, 1Mbit DRAM was commonplace, but used in a 256Kbx4 would require the C64 to have 256KB of main memory. It was almost certainly cheaper to continue to source the 256Kbit RAMs than to either upgrade the C64 to support 256KB of RAM near its end-of-life, or ...


2

Less historical example: ARM (Advanced RISC Machines...) Cortex-M4 has many (though a clear minority) instructions that execute in more than one cycle. See this list: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0439b/CHDDIGAC.html Cycle count gets less clear when pipelining or dual-issue is introduced (like in the Cortex-M7)


5

I can see logic in selecting 23 mantissa bits for 32-bit float: together with the implied "one" it fits exactly in 24 bits, which is convenient for emulating floats on a purely integer processor. And another pressure is the precision -- they had to trade precision for exponent size, and the precision (which was not particularly high for float-32) won a bit ...


4

Note that paper is usually also vertical, as were many early desktop PCs. Where does horizontal come from? Many professionals used vertical screens on PCs (and some still do) whenever possible. It's great for reading, which is why this very site only uses a fraction of the display to show actual content - the thing you're supposed to read still fits a ...


37

From an interview with Dr. William Kahan, the IEEE-754 formats were based on the VAX F and G formats, which have 8 and 11-bit exponents respectively. In fact Dr. Kahan also said that previously VAX has a double precision D format which has the same 8-bit exponent as the single precision F format which proved too limited in practical use, therefore DEC had to ...


11

Well, the first thing to remember about these binary formats you're talking about (there were also decimal formats) is that they are the interchange formats; it's not required that hardware, or even software, use these for internal calculations. It's perfectly reasonable for an implementation to use an entire separate byte for the sign and one or more ...


2

I'm sure there were plenty of early "RISC" engines which took on the order of 8 cycles per instruction. One cycle to fetch the instruction, one to access the registers, one to store the result, one to increment the instruction counter. That's 4, but the fetch may have taken several. (In case anyone's wondering, I was in meetings with George Radin ca 1975.)...


10

Any time you can pass a procedure (function, method) designation (address, reference) as a parameter to a procedure, that is a "callback". The reason why you're passing procedure B to procedure A is so that A can call B at some point, either synchronously or asynchronously. I think the concept is simply an obvious one which emerges as soon as subroutines (...


7

To start with, cycles, especially cycles in term of some external clock source aren't really a good measurement at all. Already with the mentioned 6502 internal workings are tied to two clocks effectively doubling the clock rate the chip works at (PHI0->PHI1/2). Something easy to see with the Visual 6502 simulator. Next, as Martin Rosenau has shown, even ...


20

Classic RISC CPUs like ARM ... instructions execute in one cycle ... This assumption is not correct. The ARM-2 CPU (VL86C010, one of the first ARM CPUs) took: Only one cycle for most operations (as you expected it) Typically two cycles if a jump/branch was done Up to 4 cycles for shift/rotate operations Up to 16 cycles for multiply operations Up to 17 (or ...


3

One RISC CPU I know of is included in the PIC microcontrollers: I happen to have an old General Intruments data book that says the oscillator clock is divided by sixteen for some part, and by four for some other part. The well-known 8-bit PICs by Microchip divide their system clock by four into instruction cycles. However, there were clones that run at ...


3

"Callbacks" could be considered a special, simplified case of continuation-passing style. The first formal description of this in an implemented language that I'm aware of is in MIT AI Memo 349, "Scheme: An Interpreter for Extended Lambda Calculus," from 1975. Generalized continuations run the risk of making your head explode even if you do understand ...


60

Having the display vertical reduces the width of the cabinet. This means that a game machine can be fitted into a smaller space in a pub/bar, or in an amusement arcade where machines are in rows you can get more machines (potentially a third more) into the same space. One-third more machines means one-third more revenue. The orientation may also have been ...


21

(From the perspective of the electronics, that means the displays were drawn sideways.) Not necessary. There is no inherent reason for drawing sideways. A video circuit can easy be made for either, as line width and number of lines can be defined either way. This is especially true for early games, where electronics were rather special to type and so was ...


6

This answer isn't backed up by facts or testimonies. It only reflects my personal thoughts The main reason is probably that early games such as Space Invaders (and Galaxian, Galaga...) or Breakout have a gameplay where vertical resolution / room is more important. Objects (bullets, balls) are travelling vertically. And the rest of games that could have ...


2

In the late seventies / early eighties my school in Bochum (North Rhine-Westphalia) first had a Wang 2200 BASIC computer that was both used for local basic programming and as a terminal to the communal data center (I didn't get to use that, though.) Later they installed two Apple II machines with UCSD Pascal. The school was part of a school trial project to ...


6

It’s available directly from the publisher (the author’s own publishing company), including in electronic format (e-pub and Mobi).


3

In 1983 my school in Hamburg purchased one expensive Commodore PET programmable in BASIC and i never saw any use in that. In 1985 my school in Bargteheide filled an entire classroom with Commodore C128s programmable in COMAL and let us students code on them and let us students teach a course to other students. Me and my hacker friends however preferred the ...


3

In the late 80's we had Apple IIs for 6502 assembler and those slightly incompatible Wang DOS machines with amber monitors for Turbo Pascal and SPS programming. That was at some sort of high school with engineering focus in northern West Germany.


4

Two data points from North Rhine-Westphalia: About 1980 our small Gymnasium had a demo setup of original IBM PCs (with CGA/EGA graphics?) for some weeks, but then settled for a bunch of Apple II clones, maybe 16 devices. A neighboring Gymnasium had a Dietz minicomputer with four user terminals (plus one management terminal) at the same time, for several ...


23

Which brand was most commonly used in West German schools? I know Commodore was big in Germany, which would make it a likely candidate, unless nationalistic pressure acted again? There is no simple answer. Not so much due to any 'nationalistic pressure' (*1) but the fact that German schools are not run according to federal guidelines, but are managed on ...


9

There wasn't any master plan. Each school did its own thing, depending on the commitment of their teachers (or the lack thereof). Our school in Rendsburg/S-H got a few (5?) Sharp MZ-80K in 1981?, one MZ-80A a bit later (which featured an actually usable keyboard!) for programming in BASIC and Pascal. The MZs were followed by two Commodore PC-10 around 1985 ...


10

I can only speak for my own school, a Roman Catholic Gymnasium (i.e. highest-of-three-tiers secondary school, the word does not mean "gym" in German) in a small town near the former West German capital Bonn. But as far as I heard from others, this was sort of typical. We had one Commodore PET-2001 which the school got soon after it was available in the late ...


9

I believe this is the best place for PDP-1X documentation: http://bitsavers.trailing-edge.com/pdf/mit/rle_pdp1/ (Linking to a mirror because the main bitsavers.org is offline for the moment.) The 1975 memo PDP35, part 5A documents spheres and capabilities: A virtual memory space, any virtual processors (processes) that might be executing inside that ...


1

The IBM Selectric went on sale in July of 1961 and was massively popular, this was 2 years before the original ASCII standard was released. For some reason the American Standards Association, through numerous revisions between 1963 and 1986, decided to ignore the most popular typewriter of the 60's, 70's and 80's. The only change from the 1961 Selectric ...


0

An additional reason - although this would be far less of a factor than the others posted - is that cartridges were a lot bulkier than CDs or floppy disks, and so a magazine with a bundled demo cartridge would take up more space on the newsagent's shelves and in shipping/storage. So the newsagent wouldn't be able to have so many copies on the shelf at once, ...


13

'Jeff Porter realized it would not be possible to significantly cost reduce the Amiga 500 to get it into the $250 retail price range'. They could have cost-reduced the A500 - perhaps even to $250 retail - but they would have had to make some compromises that (thankfully) they weren't willing to do. There were a lot of chips on the board. They needed ...


1

The Atari 7800 kept almost all information about sprites, including positions, in general-purpose RAM, re-fetching it every scan line. Any time the RAM spent serving up sprite data was time stolen from the CPU, so the amount of data one could display was very dependent upon how much CPU time one wanted to have left. The hardware didn't make decisions about ...


-2

Commodore obtained an infusion of cash from Gould, which Tramiel used beginning in 1976 to purchase several second-source chip suppliers, including MOS Technology, Inc., in order to assure his supply.[6] He agreed to buy MOS, which was having troubles of its own, only on the condition that its chip designer Chuck Peddle join Commodore directly as head of ...


3

Intel very likely did this with surplus batches of ROM-equipped microcontrollers - eg if you look closely at the pinout of the 8031 vs 8051/8751, an 8051 wired up like an 8031 WILL behave as an 8031 no matter what is in the ROM/EPROM.


1

The Apple Super Serial card did come with a metal back plate for the DB25 connector, which was clamped to the interior conductive coating on the plastic cases of later revisions of the Apple II+ and the Apple IIe. IIRC, this was tested for circa 1981 FCC Part 15 RFI compliance rules when used with a shielded serial cable (which many hobbyists very likely ...


14

They did, with the A600. But in true late-stage Commodore fashion, they screwed it up and made it more expensive. To cost-reduce an A500, you'd have to reproduce its spec on simpler silicon. The market wasn't interested in an 8 MHz 68000 in 1991/92: the PC had stolen all of the Amiga's thunder at commodity prices. The Amiga's niche silicon was just too ...


3

The other posts about hardware and gate costs better answer your question, but I'll add this as a counterpoint: A situation where a game programmer decided not to take advantage of hardware collision detection (in this case, for the Atari 8-bit port of Super Pac-Man): On the 400/800 I noticed that people knee-jerked toward using the player-missile ...


5

if the programmer can guarantee that sprites will never overlap each other, and that they will be presented in numerically increasing order on each scan line. A hardware designer's response would be "programmers can't actually guarantee that." And they'd be right. The hardware would have to be designed to do something sensible if those rules were broken. ...


5

Why was Apple unable to comply with the limits when e.g. Atari managed it? Purely through engineering that Apple was unwilling to carry out. I have added a relatively detailed explanation of this to the Atari 8-bit article on the wikipedia. The long-and-short is that it wasn't the slots themselves that were the problem, but providing some sort of ...


1

One thing that strikes me about all these sprite systems is that they are unrestricted in what can overlap what; you can have all eight sprites overlapping each other, with parts of background showing through, so that each pixel can come from one of nine different sources, and the hardware guarantees to handle this perfectly. The majority of earlier games ...


8

TL;DR Did historical sprite systems provide unrestricted positioning and overlap It wasn't unlimited and unrestricted, but limited by chip resources or memory bandwidth - or in case of inbetween systems by both. because the designers believed this was very valuable in reducing game development cost? No. Keep in mind, they often crippled machines ...


4

Supposing you have a fixed pixel output clock then the bottlenecks are: shifters, since you need to be sure you may need to sample any sprite at the current location; and either: bandwidth to fill those shifters, if you're a TMS descendant (which includes all 2d Sega consoles) and are fetching sprite contents from regular video RAM; or storage for what ...


17

Hardware of this sort has to be able to cope with the worst-case scenario in any given dot-clock cycle. So it has to look at the top layer pixel, determine whether that is transparent, and if so go down to the next layer and repeat. Only when it finds an opaque pixel (which may be the background) can it determine the colour to drive the video output with. ...


3

I have something to add. It's not exactly an answer, but it's too long for a comment. You are linking to 11Logo (which I put on GitHub, courtesy of CSAIL), but this wasn't the first version of Logo. It was first implemented on PDP-1 at BBN, and later updated for a PDP-10. The PDP-10 version was moved to MIT (the files still have a BBN copyright notice), ...


7

My firm designed microcomputer boards in the late 1970s to early 1980s, and we often had discussions about whether a particular design was going to use static or dynamic RAM. When you say "static RAM, because it's quite a bit easier to get to work", you also need to remember that the refresh circuits cost design time, chips, and board space. (No surface-...


5

The Vic20 was not the last consumer product to use static ram on the main system board. In the mid 90's a Socket 3 (486 class) motherboard was created by Ocean Technology octek.com - defunct. The HIPPO-DCA2 motherboard which required at least one 4MB 72-pin SIMM of something called DynamiCache RAM in the first 2 slots. DynamiCache was a built from high ...


10

I did find some prices in BYTE: November 1975, page 91 2107 4Kx1 Dynamic: $19.95 (0.49 cents/byte) 2111 256x4 Static: -- not listed 1101 256x1 Static: $2.25 (0.89 cents/byte) April 1976, page 89 2107 4Kx1 Dynamic: $19.95 (0.49 cents/byte) 2111 256x4 Static: $7.95 (0.77 cents/byte) 1101 256x1 Static: $2.25 (0.89 cents/byte) Byte ...


6

The 8088 (and Z80 and 1802 and many other older CPU designs, including minicomputers and mainframes) required multiple clock cycles to run each machine code instruction. This was due to being implemented by internal microcoding, limited shared resources, or non-pipelined state machines, due to much lower transistor counts than todays processors. As long ...


8

The 65816 does the same thing; the most-significant 8 address bits are multiplexed onto the data bus pins during the Phi1 half of each clock cycle, and it reverts to being a data bus during the Phi2 half. The WDC datasheet illustrates a simple external logic circuit which latches the address bits and isolates the data bus pins from a device responding ...


11

In general: memory needs stable address for a while. So the real access time is "time to address available + memory access time". If you use the CPU with a full address bus (Z80, 6502, ...), it can expose the whole address in one cycle, wait only "memory access time" interval, and you can read. On the other hand, let's take the 8085 CPU with a multiplexed ...


Top 50 recent answers are included