top | item 14545263

(no title)

marxidad | 8 years ago

Does that mean the games bootstrapped themselves to be their own OS (or to be otherwise OS-less)?

discuss

order

zu03776|8 years ago

There was very little OS needed. Most of the keyboard and joystick reads were single memory locations, there was no ROM support for graphics or sound, and most games bootstrapped in a fast loader anyway (later for copy protection as well). If necessary, a program could flip the ROM back into memory space to perform I/O, then flip it back out to use the RAM underneath.

jerf|8 years ago

Well... yes, but the modern sense of the term "OS" is somewhat different than what would apply to the Commodore 64. We tend to think of the OS as a management layer that tells its "processes" how many resources they can have and such, but on the Commodore 64, it's basically just a stream of assembler instructions. The distinction between "kernel" and "program" is all but nonexistent in modern terms. If you've got no use for the functions the kernel provides, then just unmap it and move merrily along.

andyjohnson0|8 years ago

Agreed. I'd say the onboard s/w was more like a simple version of what we now term a bios.

blue1|8 years ago

The 64K of RAM, amounting to the full address space of the 6510 CPU, were partially shadowed by other things (the Kernal ROM, the character map, the BASIC interpreter ROM, etc). Memory writes always went to RAM. By just setting memory location 1 appropriately (POKE 1 in BASIC) you could decide where the reads came from. Since there was a single thread/process (i.e. yours) you could do this as will.

jacquesm|8 years ago

Which lead to an interesting trick: read the ROM locations, write back the data to the same address. Flip the bit and now you have BASIC or the OS in RAM and everything just keeps on running, then you can modify these to your hearts content

simmons|8 years ago

Yes, in the sense that the game software would interface with hardware (more) directly, service interrupts, and manage its own low-level i/o, you might could say that it was its own OS. Some software, like GEOS, would completely replace KERNAL with its own OS, API, etc.

(KERNAL was very simple compared to what we think of as operating systems today -- only 8K, no virtual memory, and no processes.)