Rethinking the Commodore 64 Memory Map (2018)

Rethinking the Commodore 64 Memory Map (2018)

How can you put an entire operating system, with keyboard and mouse drivers, memory management, string and math libraries, an event model, widget toolkit, menu system, screen compositor, and more, in just a handful of kilobytes such that you’ll still have most of the small space left over for an application’s own code and data? After some effort of writing a paged memory manager that would use bits to indicate used pages of memory, and then cramming a 32 byte bit-map under I/O space at $Dxxx, I realized you need more code to manipulate those bits than the number of bytes you save by using bits. It is actually possible to have two character sets coded up and stored in memory, each for different phases of the game.

Source: www.c64os.com