2 ms·
> Only one program ran at a time so no OS was needed. The Commodore 64 had a simple OS, and it does have all the elements to be called a primitive OS. The fea
by tenebrisalietum 5y ago
> Only one program ran at a time so no OS was needed.
The Commodore 64 had a simple OS, and it does have all the elements to be called a primitive OS. The features include:
- Devices (0 was the keyboard, 1 was cassette, 2 was RS-232, 3 was the screen, 4-30 were the serial bus where printers and disks lived)
- Uniform I/O calls across those devices (you must OPEN a device, and then can use CHRIN, GETIN, CHROUT, LOAD, SAVE calls to move data, and then you have to CLOSE it).
- Handles (called "logical file numbers", up to 10 open at once supported) - a bit more sophisticated than CP/M really.
- A rudimentary notion of standard input/output (called the "default" input and output device)
But this primitive OS definitely depended upon what could be considered a single background task to read the keyboard (SCNKEY) and update the timer (UDTIM) - triggered by an IRQ that was set to fire off 60 times a second (50 for PAL). Tape I/O overtook this IRQ and messed up the timer though.
However nothing in this primitive OS except for reset routines even acknowledged the presence of the SID chip or features of the VIC beyond the text display, so you were definitely on your own there.
> How does one approach a simple hardware project of poke at bitmaps and pixels stored in the Intel GPU from a "modern" Operating system.
Linux exposes a `/dev/fb0` device, doesn't. Can't you `mmap()` this device and peek/poke to your hearts content, assuming something else isn't trying to write to `/dev/fb0`?