ComputeSidPlayerC64Source
COMPUTE!'s Enhanced SIdplayer C64 Source Code
Install / Use
/learn @MyDeveloperThoughts/ComputeSidPlayerC64SourceREADME
COMPUTE!'s Enhanced Sidplayer player routine C64 Source Code
What this is?
This is the source code in Kick Assembler format of the player routine that is used by Compute!'s Enhanced Sidplayer for the C64.
The source code was created by disassembling the player object file (SID.OBJ.64) that is found on the disk that is included with the book. It will assemble 100% byte for byte to the original SID.OBJ.64 file.
What is the Enhanced Sidplayer?
The Enhanced Sidplayer is the 2nd version of a popular music player that was available in the mid 1980s to early 1990s. This routine was used by several programs that could play songs in the .MUS file format. .MUS files were commonly traded between users at casual get togethers, Bulletin Board Systems and online services such as Quantum Link.
Visit the "Compute's Gazette Sid Collection" at https://www.c64music.co.uk to download and experience over 16,000 .MUS files. New music is still entering the collection today.
Why was this dissembled?
Like most projects I do, it was a personal challenge for myself where my personal goals were to:
- Learn about how to program the SID chip in the C64
- Continue my learning of 6502 Assembly Language by analyzing other programmers code.
- Possibly use the Sidplayer code in other projects where I can add my own enhancements to it.
Getting Started
Links to the main documents in this project:
How the SID Player Routine Works
.MUS File Format
Source Code in Kick Assembler format
Resources
The following books will be very useful to reference while analyzing the source code.
"COMPUTE!'s Music System for the C64 and C128" (1986)
Mappings the C64 and C64c (1987)
C64 Programmers Reference (1982)
Kick Assembler
Contributions
There are for sure mistakes or areas where the comments could use some extra details or reworking.
I performed this disassembly with no knowledge of how the SID Chip works. I did learn a tremendous amount about the SID chip through the course of this project, but I am aware there are places in the source code where my lack of knowledge and experience with the SID chip is apparent. Any contributions that would enhance the source code will be warmly received.
Feel free e-mail your ideas to me if you are not familiar with how to submit changes through GIT.
