What is KERNAL?

KERNAL (not kernel and all upper case) is the OS that has ran on Commodore home computers (micros) since the introduction of the Personal Electronic Transactor (PET) in 1977 although most of us only knew about CBM BASIC 2.0 running on ROM. At the time, most of us neither understood nor cared what an OS was. In general I wish I could say that I know more about KERNAL.

By Evan-Amos — Own work, Public Domain, https://commons.wikimedia.org/w/index.php?curid=17414886

As with most programmers who liked Commodore machines, I started writing code on a C64 and this was my only exposure to its built-in language interpreter ( CBM BASIC 2.0) and its OS (KERNAL).

Commodore 64:

Although I enjoyed many hours of programming in CBM BASIC 2.0 including some machine language (lots of POKE) on my C64 (1982-94) not any other language, I now wish I knew then more about the OS underneath CBM BASIC 2.0. Hence the only time I truly interacted with the OS was while programming CBM BASIC 2.0 — in other words, merely basic code poking into the OS. At least, those hours of programming had me in front of my C64 connected to a cassette recorder and a B/W 13" Zenith TV set with a broken channel potentiometer (pot or knob) via an RF modulator on channel 3 (still no over-the-air channel 3 where I live), a container of dry-roasted peanuts and a three-little bottle of soda. At times, given the fact that my memory has flushed out almost all I learned in CBM BASIC 2.0 more than three (3) decades ago, I wonder if I should once again learn how to program in CBM BASIC 2.0 accessing KERNAL with machine language as I used to do or perhaps this time writing directly to KERNAL in assembly.

Although the original C64 has not been in production for almost three (3) decades, this has not stopped developers from working on new technologies retrofitted printed circuit boards (PCBs) to emulate hardware like FDDs, HDDs, modems and even NICs to access local networks or the internet. The same is true for new OSs as replacements for KERNAL — not to mention new games for that matter.

Aside from OSs, there is also the OpenCBM project, which is a "Win NT/2K/XP, and Linux/i386 kernel driver and development library to control serial CBM devices, such as the Commodore 1541 disk drive, connected to the PCs parallel port via a XM1541 or XA1541 cable. Fast disk copier included. Successor of cbm4li" (06/2006).