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.
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.
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.
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
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.)
zu03776|8 years ago
digi_owl|8 years ago
May be of interest for those that want more details.
jerf|8 years ago
andyjohnson0|8 years ago
unknown|8 years ago
[deleted]
blue1|8 years ago
jacquesm|8 years ago
simmons|8 years ago
(KERNAL was very simple compared to what we think of as operating systems today -- only 8K, no virtual memory, and no processes.)