Skip to main content
We’ve updated our Terms of Service. A new AI Addendum clarifies how Stack Overflow utilizes AI interactions.

Questions tagged [memory-layout]

For questions regarding the layout or mapping of memory in a retrocomputer.

Filter by
Sorted by
Tagged with
9 votes
2 answers
1k views

If the penalty was 0, then you have a flat 640K. But it wasn't zero, so what was it? I get the feeling from reading about it that segment switching was something to be avoided at almost any cost.
Miss Understands's user avatar
11 votes
7 answers
4k views

I'm watching this video, which, at 9:51, says that around the late 1980s the majority of computers were byte-addressable. So the minimum amount of data you can retrieve from RAM was 8 bits. What was ...
robertspierre's user avatar
12 votes
3 answers
2k views

The Sol-PC (also known as the Sol-10 and Sol-20) has ROM on the "personality card" addressed at $C000-$C7FF and, in a minimal configuration, RAM (for system use and the video frame buffer) ...
cjs's user avatar
  • 29.5k
14 votes
2 answers
3k views

You copy the driver code and data but how do you redirect everything that may have jumped into the old entry point? You could scan all the interrupt vectors and see if any of them pointed to that ...
Miss Understands's user avatar
12 votes
3 answers
2k views

I read about blitters - history and technical implementation (what I could understand), for example in Amiga and Bally Astrocade. The principle is that there is a fast copying of memory from one place ...
Alex's user avatar
  • 733
13 votes
2 answers
2k views

The Wikipedia page describing specifics of row-major vs column-major storage order for multi-dimensional arrays, mentions, among others, C/C++ (*1), Pascal and PL/I for the former, and, surely, ...
Leo B.'s user avatar
  • 22.3k
1 vote
1 answer
259 views

I'm looking at the .SNA snapshot file format for Amstrad CPC emulators based on the Multiface Two device. I'm used to the ZX Spectrum which had 16K ROM and 48K RAM and the 48K .SNA snapshot format is ...
hippietrail's user avatar
  • 8,214
12 votes
1 answer
974 views

I'm working on a disassembly tool for the Sinclair ZX Spectrum and want to do things "right" when possible. I remember seeing lists of ROM routines, system variables, and memory addresses ...
hippietrail's user avatar
  • 8,214
9 votes
2 answers
2k views

For educational purposes, I'm developing my own software emulator for the 8086 microprocessor with VGA/MCGA support. Although it's far from complete, it's advanced enough to start using a BIOS (though ...
ExecAssa's user avatar
  • 201
15 votes
4 answers
4k views

Can I have more than 640 KB conventional RAM under some DOS? I'm looking at an 80186 PC that has RAM at address A0000. Video RAM starts at B0000 as expected for a Hercules; A0000 is just more main ...
Joshua's user avatar
  • 2,056
13 votes
3 answers
3k views

It is rather well-known that, with VGA-compatible PC video adapters, in black-and-white text modes video memory is available at linear address 0xB0000, in colour text mode at address 0xB8000, while in ...
user3840170's user avatar
  • 27.3k
8 votes
1 answer
1k views

I'm trying out some 6502 assembly language, specifically using Kick Assembler. I have the following routine that just sticks a character on the text screen at a specified x and y, it's taken from the ...
Alan B's user avatar
  • 5,593
14 votes
1 answer
2k views

From MS-DOS help for the LOADFIX command: Some programs will display the "Packed file corrupt" message when all or a portion of the program has been loaded in the first 64K of conventional ...
user10191234's user avatar
  • 2,003
10 votes
2 answers
2k views

I'm developing software for the IBM PC with an 8086 processor. I want my program to use all available memory. I know that I can use DOS int 21h function AH=48h to allocate all available conventional ...
pts's user avatar
  • 5,479
12 votes
1 answer
724 views

I wrote a simple Win16 program in NASM assembly. It works on Windows 3.11. (Source code: https://github.com/pts/mininasm/blob/master/demo/hello/helljw16.nasm .) When I tried to combine the code and ...
pts's user avatar
  • 5,479
22 votes
4 answers
3k views

TL;DR: Using the DEF SEG and POKE commands in GWBASIC, was there any way to make changes to an IBM-PC compatible computer that would (a) persist even after a reboot and (b) cause an increase in crash ...
Schmuddi's user avatar
  • 935
19 votes
6 answers
5k views

When the execution of a COM program begins, DOS jumps to address 100h. But at what address is DOS stored in RAM while the COM program is executing? Is DOS stored in conventional memory? If so, isn't ...
Flux's user avatar
  • 531
12 votes
2 answers
833 views

In my early days, many many years ago, one of the machines I managed to get my hands on was the COMX-35, a funky little machine based on the 1802 CPU. I remember trying to develop some games for it ...
user avatar
24 votes
3 answers
5k views

I've heard the phrase "memory model" used in relation to MS-DOS programming (and early Windows), with terms such as "small" and "compact". But what were the actual ...
user avatar
2 votes
1 answer
385 views

The 8-bit microprocessors invented in the seventies, had a 16-bit address space. It didn't take long for memory demand to exceed this, with the result that bank switching was a fact of life for the ...
rwallace's user avatar
  • 65.3k
23 votes
5 answers
4k views

I have an old Sharp PC-G830 pocket computer from the '80s that has 32K of RAM and 256K of ROM. I also have a simple single board computer I built with 128K of RAM and a few megabytes of ROM from a ...
Shades's user avatar
  • 341
18 votes
3 answers
6k views

The Altair 8800 typically, at least in the early years after its release in 1975, operated with no more than a few kilobytes of memory, for the excellent and sufficient reasons that memory was ...
rwallace's user avatar
  • 65.3k
7 votes
3 answers
2k views

The early microcomputers were well served by 8-bit CPUs with 16-bit address bus width, but later generations of these machines tended to run out of address space, and had to resort to some form of ...
rwallace's user avatar
  • 65.3k
10 votes
2 answers
4k views

The IVT is at 0x0000-0x03ff while the BDA is at 0x0400-0x04ff but boot sectors are loaded at 0x7c00. What was at 0x0500-0x7bff that caused this convention? I'm also curious why some MBRs relocate ...
Anthony's user avatar
  • 485
20 votes
3 answers
5k views

[Please see answers to this related question as well] I've started reading the "official" NES Documentation and in page ten, it says that "memory locations $0000-$07FF are mirrored ...
anmomu92's user avatar
  • 303
5 votes
1 answer
883 views

A similar question was asked here but I read it and didn't really understand the solution. What I'm trying to do here is make an NES ROM that uses Mapper 24, aka Konami VRC6 Version 1 (the one used by ...
puppydrum64's user avatar
  • 1,668
16 votes
2 answers
1k views

I am writing a tiny TSR program, and I want it to take as little memory while installed as possible. The memory footprint of every loaded DOS process, including a TSR, includes a data structure known ...
user3840170's user avatar
  • 27.3k
5 votes
1 answer
561 views

If I recall, PAGE = &E00 for a BBC Model B system with cassette tape based storage. On installation of Acorn DFS ROM (with 8271 Floppy disc controller), the ROM allocated more memory, increasing ...
therobyouknow's user avatar
5 votes
2 answers
704 views

Following my previous question on Identifying the functionality of the memory select in Apple II and now that I know that the memory select device is simply an interconnection block. Searching for ...
Paul Ghobril's user avatar
  • 1,065
6 votes
1 answer
2k views

I've been reading up on bank switching on Wiki and in particular here which contains the below nice image and have a few questions: Am I right in thinking that LOAD loads into RAM (dark grey in the ...
user avatar
4 votes
2 answers
1k views

As a follow-up to this question, I now have: A memory dump of the unpacked application The start address of the application I can verify that the dump is correct by starting a new instance of Vice, ...
Cactus's user avatar
  • 2,830
8 votes
2 answers
1k views

I'm following root42's videos about DOS programming using Turbo C 2.01. I've written my own Soundblaster 1.xx driver following the Creative Labs documentation, and I'm confused about memory allocation....
knol's user avatar
  • 12.9k
9 votes
2 answers
370 views

Answers to question PDP-10 effective address calculation explain how PDP-10 effective address calculation works, including potentially infinite indirections. However the answers don't address how this ...
Rhialto supports Monica's user avatar
26 votes
8 answers
15k views

In an answer to Why did IBM System 360 have byte addressable RAM I wrote regarding the choice of byte size: 7 bits would be a perfect match for ASCII, but engineers would instinctively recoil from ...
rwallace's user avatar
  • 65.3k
9 votes
1 answer
3k views

I know that when an .COM file is loaded, DOS loads its contents into memory, sets the segment registers (CS, DS and SS) to point to the 64KB segment and then performs a jmp to the starting address. ...
DarkAtom's user avatar
  • 2,407
7 votes
2 answers
575 views

There's this page about the ZS Scorpion, and I'm reading about the way bankswitching works. Port 0x7ffd is the same as on western ZX Spectrums, but to double the amount of RAM to 256k and also the ...
Omar and Lorraine's user avatar
11 votes
3 answers
3k views

How do you access more memory (above the 1MB) in DOS if the 640KB of conventional memory are not enough? I have read a lot about this, but I couldn't figure out how to do this in actual code. Is ...
DarkAtom's user avatar
  • 2,407
17 votes
2 answers
4k views

I am reading up on old C64 stuff and I am using the Vice emulator to play with it. Currently I am studying about how the C64 stored BASIC programs in RAM. This is quite clear (it starts on address $...
Bart Friederichs's user avatar
4 votes
7 answers
641 views

Does anyone know of any operating system that used static memory partitioning: contiguous physical memory allocation with one process per partition, one partition per process, partitions generated at ...
DYZ's user avatar
  • 285
9 votes
2 answers
2k views

The following tables are modified and corrected from Painting pixels: Introduction to video memory. Mode 2 - 640x200 (half width pixels), 2 colours memory bit 7 6 5 4 3 2 1 0 pixel 0 1 2 3 4 5 6 7 ...
CJ Dennis's user avatar
  • 2,649
14 votes
1 answer
2k views

The screen memory layout on the Commodore 64 in bitmap mode was nonlinear - which incurred a penalty in development time, code size and speed for games using it - because when designing the VIC-II, ...
rwallace's user avatar
  • 65.3k
16 votes
1 answer
2k views

This is something of a followup to How much control of TRS-80 Model III disk drives was possible from its Cassette (ROM) BASIC? but on a more general topic: I know that PEEK and POKE enable direct ...
natevw's user avatar
  • 3,067
6 votes
2 answers
2k views

This mouse plugged into the user port on the underside of the BBC micro models. The mouse came with software in the form of a sideways ROM which provided APIs, CLI commands for own programs as well as ...
therobyouknow's user avatar
22 votes
1 answer
3k views

Super Mario World (SMW) is known to have several bugs relating to re-use of memory for multiple purposes. For example some memory items are used for more than one type of item, and the designers are ...
user's user avatar
  • 15.7k
9 votes
10 answers
1k views

Were there any games/software that used memory beyond what was advertised as available to BASIC on the machine ? On home / personal computers any time up to 1984 . Without needing to plug in any ...
questiontype's user avatar
  • 1,061
3 votes
2 answers
227 views

Sun's SBus is particular for having virtual addressing and address translation even for device drivers. Any other buss design which had this peculiarity ? Check out Ben Catanzaro's book The SPARC ...
Stefan Skoglund's user avatar
15 votes
1 answer
3k views

I had always assumed that EMM386.EXE was responsible for managing the Upper Memory Blocks - UMBs - the memory space between 640KiB and 1MiB in real mode x86. For example, on MS-DOS 6.22, help emm386....
Richard Downer's user avatar
10 votes
2 answers
1k views

I've read that the usual way to execute code on the N64 is to use DMA to copy it from ROM into RAM, and then run from RAM. However, it seems that the contents of the ROM are directly visible to the ...
RetroSpark's user avatar
10 votes
3 answers
5k views

Is there a software method of disabling memory refresh on the Z80? Or would it be acceptable to create a hardware method of disabling the address bus during the refresh cycle? If I switch off the ...
Jasmine's user avatar
  • 203
7 votes
4 answers
2k views

I am a big fan of the TV show lost, and I was trying to make the Dharma Initiative logo. But at certain point I couldn't add new lines of code and the final part of the logo was cut off. I tried to ...
Arthur Oribe's user avatar