locore.s' history?
Max Okumoto
okumoto at ucsd.edu
Tue May 10 09:57:52 PDT 2005
Thomas E. Spanjaard wrote:
Zera William Holladay wrote:
Hi, I've been reading "Operating System Source Code Secrets Volume." The
authors imply (I can't remember the exact quote) that locore has a
history. Does anyone know where this name came from, or where it first
appeared? My intuition tells me "locore" means low memory (as in old
magnetic core memory)? Just curious.
"locore" means "low core", and core refers to the RAM which used to be
magnetic drums. It was called "core memory" because it was closer to the
processing hardware than the tapes, disks et al. It got this name due to
the place in the memory address space where the code in this file got
loaded: the lowermost part of RAM, address 0 usually. This was some
requirement in the early days, although I'm not sure why.
Cheers,
-- Thomas E. Spanjaard
tgen at xxxxxxxxxxxxx
Some of the older processors initialized the PC (program counter) to
zero when reset. Thus people put the 'boot' code a location zero.
Thus the firmware rom was initially mapped starting at location 0.
There was a hardware trick where writes to low memory was read mapped
to the boot firmware, and write mapped to ram. The first thing the
boot code did was to copy itself to the same location.
char *mem = 0;
for (int i = 0; i < size_of_rom; ++) {
mem[i] = mem[i];
}
disable_rom();
After the copy was done it would unmap the rom, and then would execute
out of 'fast ram'. (Roms in the past where really slow)
I think the 68k from motorola did that.
Max
More information about the Users
mailing list