I'm struggling a bit to find relevant documentation on this subject when it comes to using just assembly. All I've found is either irrelevant or for BASIC. My goal is to be able to send and receive strings from the C64 IEC serial port, but I cannot find literally any documentation on kernal subroutines, instructions, or examples. The documentation on the IEC serial port is useful for seeing how it works in terms of electronics, but I either found it too difficult to parse or there's no information on programming it with assembly.

  • 2
    Are you asking for "user port serial" or "IEC-bus serial" connections - The C64 actually has more than one serial port which are handled largely different.
    – tofro
    Aug 3, 2023 at 13:13
  • 1
    Sorry for the confusion. I'm talking about the IEC-bus. @tofro
    – SkyeG06
    Aug 3, 2023 at 13:55

1 Answer 1


The IEC kernal (sic!) routines can be found at $ed00, and the RS232 kernal routines at $eeba. Michael Steil has built a very nice side-by-side table of 5 different commented disassemblies which, taken together, should tell you everything you need to know.

  • 1
    I'm not entirely sure how to navigate the kernal source. Whereabouts is $ed00
    – SkyeG06
    Aug 3, 2023 at 14:10
  • You can find the adresses on the very left, white on blue. The easiest way to get to a specific address is to use your browser's search function, typically Ctrl + F, and search for :ED00. Aug 3, 2023 at 14:15
  • 2
    It may be helpful to add as well a few links with background information beside just reading source code. For example a hig level overview of the Kernal and Jim Butterfields Compute! article about the basic protocol, or this nice write up.
    – Raffzahn
    Aug 3, 2023 at 15:33
  • @SkyeG06 Rather than using the routines starting at $ED00, you should use the ones in @Raffzahn 's first link. These are the official kernal routines. If you look for them in the disassembly listing (they start at address $FFA5) you'll see that they are properly documented, although on my browser the documentation column seems to be one row out of sync with the disassembly.
    – JeremyP
    Aug 15, 2023 at 10:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .