Skip to content

SteveHagins/vintage-commodore-64

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation


Logo
Logo

Commodore 64

All my fun C64 bits

The Commodore 64 (C64) is a popular 8-bit home computer that was released in 1982. It featured a MOS Technology 6510 microprocessor running at 1 MHz and had 64 kilobytes of RAM. Assembly language programming was a common way to develop software for the Commodore 64, as it provided direct access to the hardware and allowed for efficient code execution.

Here are some key points about Commodore 64 assembly language programming:

  1. CPU and Memory: The Commodore 64's CPU, the 6510, is an enhanced version of the 6502 processor. It has a 16-bit address bus, which allows it to address up to 64 kilobytes of memory. The C64's memory map includes ROM (Basic and Kernal), RAM, and various hardware registers. ssembler: To write assembly code for the Commodore 64, you need an assembler program. Popular assemblers for the C64 include the built-in assembler in the Commodore 64's development environment, the Turbo Assembler (TASM), and the ACME cross-assembler.

  2. Memory Organization: The Commodore 64's memory is divided into different sections. The most commonly used memory locations include the zero page (first 256 bytes), the stack pointer (locations 256 to 511), and the screen memory (locations 1024 to 2023) where text and graphics are displayed.

  3. Registers: The 6510 processor has several registers that are used for various purposes. The most important registers include the accumulator (A), the index registers (X and Y), the stack pointer (SP), the program counter (PC), and the status register (P).

  4. Interrupts: The Commodore 64 supports interrupts, which are events that can pause the normal execution of the program to handle specific tasks. The C64 has two main interrupt sources: the raster interrupt (VIC-II chip) and the CIA (Complex Interface Adapter) timers.

  5. I**/O Programming**: The Commodore 64 has various input/output devices, including the keyboard, joystick ports, VIC-II graphics chip, SID sound chip, and serial bus. You can control these devices by writing to specific memory addresses or using specific instructions.

  6. Programming Tools: Besides assembly language programming, the Commodore 64 also supported higher-level languages like BASIC and machine language. You could use a monitor program to directly enter and execute machine language instructions or use a cartridge-based development environment like the Commodore 64's built-in editor/assembler (E/A) or third-party tools like the "Action Replay" cartridge.

  7. Documentation and Resources: The Commodore 64 Programmer's Reference Guide and the Commodore 64 Programmers' Reference Manual are excellent resources for learning about Commodore 64 assembly language programming. There are also online forums, communities, and tutorials dedicated to C64 programming.

Assembly language programming for the Commodore 64 provides low-level access to the hardware, allowing for efficient and highly optimized code. However, it requires a good understanding of the C64's architecture and can be more complex compared to higher-level languages.

My Bits

Code I've collected and/or hacked together over the yeaers.

  1. hello-world
  2. sprite

(back to top)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published