Hot answers tagged

49 votes
Accepted

Did anyone ever run out of stack space on the 6502?

Unlike its main rival the Z80, the 6502 had a size limit of 256 bytes for the hardware stack. The 6502 stack is mainly meant as a return stack and for register preservation - which usually isn't a ...
Raffzahn's user avatar
  • 213k
36 votes

Why did DOS-based Windows require HIMEM.SYS to boot?

Windows in protected mode requires an XMS driver — HIMEM.SYS is the one provided by Microsoft, but others can be used¹ (and the Windows Me kernel includes its own XMS driver). The role of the XMS ...
Stephen Kitt's user avatar
32 votes
Accepted

How did the X-Men game for Sega Genesis have its state survive a console reset?

The reset button should clear the console's memory. No, it shouldn’t. The 68000 reset vector is the first eight bytes in cartridge ROM. The cartridge will point at its own initialization code; the ...
Jacob Krall's user avatar
  • 2,230
19 votes
Accepted

How did the Fairchild Channel F provide a 2K frame buffer?

ChannelF uses 4 MK4096 4k * 1bit chips (4 middle-left rectangles in the schematics). The framebuffer is write-only, the CPU cannot directly access it through memory accesses. The CPU has no address ...
TEMLIB's user avatar
  • 3,447
17 votes

Did anyone ever run out of stack space on the 6502?

Most likely answer is, yes, someone has likely run out of stack space on a 6502 at some point. On the other hand, modern C compilers don't use the hardware stack much, as they implement a software ...
Justme's user avatar
  • 28.3k
16 votes
Accepted

What did it cost the 8086 to support unaligned access?

The Missing Angle It feels a bit like the question misses the most important point about the whole 8086 project over discussing implementation details: 8080/85 compatibility The 8086 was intended as a ...
Raffzahn's user avatar
  • 213k
16 votes

How to use all memory on an IBM PC with 8086

Assuming there is usable memory between 640K and 1024K (which would be rather unusual in an 8086 PC), I would recommend using DOS 5.0 or later and adding UMBs to the memory allocation strategy (there ...
Stephen Kitt's user avatar
15 votes

Did anyone ever run out of stack space on the 6502?

I did, arguably. The Atari Lynx is a system with unified memory, a 4bpp frame buffer and a scaling blitter. So for algorithmic drawing, a fairly obvious optimisation is to push pixels to the stack as ...
Tommy's user avatar
  • 35.9k
15 votes

How did the X-Men game for Sega Genesis have its state survive a console reset?

Similar methods have existed and are still used. The reset does not clear the memory, it simply resets the CPU to start running code from start vector. All the code needs to do is to check a known ...
Justme's user avatar
  • 28.3k
13 votes
Accepted

MS DOS 6.22 hangs on modern hardware after loading HIMEM.SYS

I have tried similar patterns, and found out that the culprit was the - too big to handle - amount of memory. As stated in VOGONS Wiki, the HIMEM.SYS from MS-DOS 6.22 (version 3.10) will only be able ...
Olivier's user avatar
  • 659
12 votes

How did the IBM 360 detect memory errors?

Usage The /360 Family uses parity all over the system, not just for memory: One Bit per Byte on main memory local storage (*1) data path address path channel data One Bit per Nibble on BCD data ...
Raffzahn's user avatar
  • 213k
12 votes

How did the X-Men game for Sega Genesis have its state survive a console reset?

The reset button should clear the console's memory. Why? And who should do that? The Mega Drive is a very classic console. There is no OS or monitor (*1) that controls execution and prepares the ...
Raffzahn's user avatar
  • 213k
12 votes

Why does the FRE() function in CBM BASIC v2 return negative values?

Whether that's a bug or just sloppy programming is hard to decide. Maybe the designers needed to save some ROM space and simply decided that the main use case for FRE(0) i.e., you want to know how ...
tofro's user avatar
  • 33k
10 votes

How to use all memory on an IBM PC with 8086

The short answer is, there is no usable RAM there so you can't use any. If you have an MDA video card, it has only 4096 bytes of video memory, and for 80x25 screen, it uses 4000 bytes already, so ...
Justme's user avatar
  • 28.3k
10 votes

How did the Fairchild Channel F provide a 2K frame buffer?

The Fairchild Channel F, released in 1976, was the first modern game console Let's restrict that to first successful in large numbers. Looking at the specifications, the thing that jumps out at me ...
Raffzahn's user avatar
  • 213k
10 votes

How did the Fairchild Channel F provide a 2K frame buffer?

There were two main kinds of memory chips in 1976: dynamic RAM and static RAM. A static RAM used two active transistors and two passive pullups to hold each bit, plus two more active transistors to ...
supercat's user avatar
  • 34.7k
8 votes
Accepted

How did the IBM 360 detect memory errors?

The IBM 360 manual Principles of operation says: The system transmits information between main storage and the CPU in units of eight bits, or a multiple of eight bits at a time. [...] A ninth bit, ...
dirkt's user avatar
  • 26k
8 votes

What is the motherboard part number for the Macintosh IIci that required parity memory?

661-0532 Logic Board Mac IIci 661-0583 Logic Board Mac IIci Parity from myoldmac.net - Apple Computer Model Part Numbers, confirmed in Apple's own Apple Module Identification, June 1994, pages xx and ...
scruss's user avatar
  • 20.5k
8 votes

Did anyone ever run out of stack space on the 6502?

The 6502 instruction set is not very well-suited for using the hardware stack for tasks other than subroutines calls and short-term storage. Subroutine calls nested 128 deep are pretty rare even ...
RETRAC's user avatar
  • 13.5k
8 votes
Accepted

Simple doubling of ZX80 RAM

Prelude Given only the lower ten address lines are delivered to the RAM chips, this has the effect of duplicating the 1K RAM at every 1K boundary in those ranges Yes, that's exactly as the ZX80 ...
Raffzahn's user avatar
  • 213k
7 votes

Was it possible to give an Atari 800 (not XL) 64KB of RAM?

TL;DR: NO. Memory structure of the original 400/800 was based on 8 KiB chunks managed by 8 select lines, S0..S7: Sel Addr Usage S0 $0000..$1FFF 8 KiB RAM S1 $2000..$3FFF 8 KiB RAM S2 $4000..$5FFF ...
Raffzahn's user avatar
  • 213k
7 votes

Why does the FRE() function in CBM BASIC v2 return negative values?

I already understand, on a purely technical level, why a negative value is returned: the free memory is calculated as an unsigned 16-bit integer, but the FRE() routine interprets the result of this ...
Raffzahn's user avatar
  • 213k
7 votes

Did anyone ever run out of stack space on the 6502?

It probably wasn't common for programs to use anywhere close to 256 bytes of storage as an actual stack which is accessed primarily via push/pop/jsr/rts. On the other hand, it was common for systems ...
supercat's user avatar
  • 34.7k
6 votes

Did anyone ever run out of stack space on the 6502?

Final Fantasy is a curious example. It has a spell called WARP which takes you one step closer to the entrance of the dungeon (or out of the dungeon if you're at the entrance). To implement this, the ...
Kef Schecter's user avatar
6 votes

Did anyone ever run out of stack space on the 6502?

In Total Replay, we rely heavily on the stack page to hold actual code, so the usable stack is far smaller than 256 bytes. As such, we've run out of stack quite often and had to work around it, by ...
peter ferrie's user avatar
  • 1,214
6 votes

How does POST memory test work on a relatively modern (2000s) PC? Does it still test every single byte like on older ones?

Because dynamic RAM's switch-on contents is random, the memory of a computer needs to be brought to a defined state anyways. The clearing (and clear-check afterwards) is and was also the method of ...
tofro's user avatar
  • 33k
6 votes
Accepted

Did the Vic-20 save money using static RAM?

Interfacing static RAM and ROM to an 6502-type processor is "nearly free". You just wire address and data lines directly, the address decoding circuit is simple. Nothing else is needed. On ...
Michael Karcher's user avatar
6 votes
Accepted

Was it possible to give an Atari 800 (not XL) 64KB of RAM?

It seems worth addressing the question in your title, Was it possible to give an Atari 800 (not XL) 64KB of RAM? Technically, it is possible to give a plain Atari 800 64KiB of RAM, and in fact quite ...
Stephen Kitt's user avatar
4 votes

Why did Windows 9x allow ring-3 software to change IDT?

I was researching how old Windows 9x viruses, such as Win95.CIH, got ring0 access, and it's shown that one of the approaches was to get the IDT, hook the interrupt handler and trigger an exception, so ...
Raffzahn's user avatar
  • 213k
3 votes

Could the Apple IIGS play any and all Amiga MOD files?

There is a newer version of NinjaTracker (NinjaTracker Plus) that supports almost all of the (traditional) MOD effects and supports streaming of instrument samples. It should be noted that ...
JCC's user avatar
  • 31

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