This is a series of posts in which I analyse the Chip-8 interpreter as implemented on the RCA COSMAC VIP. They are primarily intended to be of use to anyone writing a Chip-8 interpreter for another platform. However, they will also be of use to anyone wanting to know more about the COSMAC VIP in general.
As the number of posts in this series is now growing, I’ve out together an index, which I’ll add to as further posts are created.
1802 Overture – This is a good place to start if you are not familiar with the RCA CDP1802 microprocessor at the heart of the COSMAC VIP.
Chip 8 RAM (or memory management with Chip 8) – This post discusses the memory map on the COSMAC VIP when it is running the Chip-8 interpreter. This is recommended reading before approaching any of the posts analysing the interpreter.
The following posts analyse different parts of the interpreter. These are useful if you want to ensure that your implementations of Chip-8 instructions follow the behaviour of the original interpreter:
Chip-8 on the COSMAC VIP: Initialisation
Chip-8 on the COSMAC VIP: The Call Routine (Fetch and Decode)
Chip-8 on the COSMAC VIP: Machine Code Integration
Chip-8 on the COSMAC VIP: Branch and Call Instructions
Chip-8 on the COSMAC VIP: Skip Instructions
Chip-8 on the COSMAC VIP: Loading and Saving Variables
Chip-8 on the COSMAC VIP: Arithmetic and Logic Instructions
Chip-8 on the COSMAC VIP: Interrupts
Chip-8 on the COSMAC VIP: Generating Random Numbers
Chip-8 on the COSMAC VIP: Drawing Sprites
Chip-8 on the COSMAC VIP: The General Purpose Timer
Chip-8 on the COSMAC VIP: Keyboard Input
Chip-8 on the COSMAC VIP: Sound
Chip-8 on the COSMAC VIP: Indexing the Memory
Chip-8 on the COSMAC VIP: The Character Set
Chip-8 on the COSMAC VIP: Binary Coded Decimal
These articles are also indexed by their relevance to Chip-8 instructions.
Here is a PDF with the complete CHIP-8 Interpreter Disassembly.
By 1802 Overture | Laurence Scotford August 4, 2013 - 10:25 am
[…] For other posts in this series, refer to the index. […]
By Chip 8 RAM (or memory management with Chip 8) | Laurence Scotford August 4, 2013 - 10:41 am
[…] For other posts in this series, refer to the index. […]
By Chip-8 on the COSMAC VIP: Initialisation | Laurence Scotford August 4, 2013 - 10:48 am
[…] For other posts in this series, refer to the index. […]
By Chip-8 on the COSMAC VIP: The Call Routine (Fetch and Decode) | Laurence Scotford August 6, 2013 - 7:05 am
[…] This is part of a series of posts analysing the Chip-8 interpreter on the RCA COSMAC VIP computer. These posts may be useful if you are building a Chip-8 interpreter on another platform or if you have an interest in the operation of the COSMAC VIP. For other posts in the series refer to the index. […]
By Chip-8 on the COSMAC VIP: Machine Code Integration | Laurence Scotford August 6, 2013 - 7:06 am
[…] This is part of a series of posts analysing the Chip-8 interpreter on the RCA COSMAC VIP computer. These posts may be useful if you are building a Chip-8 interpreter on another platform or if you have an interest in the operation of the COSMAC VIP. For other posts in the series refer to the index. […]
By Chip-8 on the COSMAC VIP: Branch and Call Instructions | Laurence Scotford August 6, 2013 - 7:07 am
[…] This is part of a series of posts analysing the Chip-8 interpreter on the RCA COSMAC VIP computer. These posts may be useful if you are building a Chip-8 interpreter on another platform or if you have an interest in the operation of the COSMAC VIP. For other posts in the series refer to the index. […]
By Chip-8 on the COSMAC VIP: Skip Instructions | Laurence Scotford August 6, 2013 - 7:08 am
[…] This is part of a series of posts analysing the Chip-8 interpreter on the RCA COSMAC VIP computer. These posts may be useful if you are building a Chip-8 interpreter on another platform or if you have an interest in the operation of the COSMAC VIP. For other posts in the series refer to the index. […]
By Chip-8 on the COSMAC VIP: Loading and Saving Variables | Laurence Scotford August 6, 2013 - 7:12 am
[…] This is part of a series of posts analysing the Chip-8 interpreter on the RCA COSMAC VIP computer. These posts may be useful if you are building a Chip-8 interpreter on another platform or if you have an interest in the operation of the COSMAC VIP. For other posts in the series refer to the index. […]
By Chip-8 on the COSMAC VIP: Arithmetic and Logic Instructions | Laurence Scotford August 10, 2013 - 8:08 am
[…] This is part of a series of posts analysing the Chip-8 interpreter on the RCA COSMAC VIP computer. These posts may be useful if you are building a Chip-8 interpreter on another platform or if you have an interest in the operation of the COSMAC VIP. For other posts in the series refer to the index. […]
By Chip-8 on the COSMAC VIP: Interrupts | Laurence Scotford August 16, 2013 - 6:08 am
[…] This is part of a series of posts analysing the Chip-8 interpreter on the RCA COSMAC VIP computer. These posts may be useful if you are building a Chip-8 interpreter on another platform or if you have an interest in the operation of the COSMAC VIP. For other posts in the series refer to the index. […]
By Chip-8 on the COSMAC VIP: Generating Random Numbers | Laurence Scotford August 17, 2013 - 9:35 am
[…] This is part of a series of posts analysing the Chip-8 interpreter on the RCA COSMAC VIP computer. These posts may be useful if you are building a Chip-8 interpreter on another platform or if you have an interest in the operation of the COSMAC VIP. For other posts in the series refer to the index. […]
By Chip-8 on the COSMAC VIP: Drawing Sprites and Characters | Laurence Scotford August 24, 2013 - 7:06 am
[…] This is part of a series of posts analysing the Chip-8 interpreter on the RCA COSMAC VIP computer. These posts may be useful if you are building a Chip-8 interpreter on another platform or if you have an interest in the operation of the COSMAC VIP. For other posts in the series refer to the index. […]
By Chip-8 on the COSMAC VIP: The General Purpose Timer | Laurence Scotford August 28, 2013 - 7:17 am
[…] This is part of a series of posts analysing the Chip-8 interpreter on the RCA COSMAC VIP computer. These posts may be useful if you are building a Chip-8 interpreter on another platform or if you have an interest in the operation of the COSMAC VIP. For other posts in the series refer to the index. […]
By Chip-8 on the COSMAC VIP: Keyboard Input | Laurence Scotford October 8, 2013 - 9:15 pm
[…] This is part of a series of posts analysing the Chip-8 interpreter on the RCA COSMAC VIP computer. These posts may be useful if you are building a Chip-8 interpreter on another platform or if you have an interest in the operation of the COSMAC VIP. For other posts in the series refer to the index. […]
By Chip-8 on the COSMAC VIP: Sound | Laurence Scotford October 9, 2013 - 6:38 am
[…] This is part of a series of posts analysing the Chip-8 interpreter on the RCA COSMAC VIP computer. These posts may be useful if you are building a Chip-8 interpreter on another platform or if you have an interest in the operation of the COSMAC VIP. For other posts in the series refer to the index. […]
By Chip 8 on the COSMAC VIP: Instruction Index | Laurence Scotford October 9, 2013 - 9:23 pm
[…] already have the existing posts indexed by article. I thought it would be useful to also have the articles indexed by Chip-8 instruction, so here is […]
By Chip-8 on the COSMAC VIP: Indexing the Memory | Laurence Scotford October 10, 2013 - 5:47 am
[…] you have an interest in the operation of the COSMAC VIP. For other posts in the series refer to the index or instruction […]
By Chip-8 on the COSMAC VIP: The Character Set | Laurence Scotford October 12, 2013 - 11:47 am
[…] you have an interest in the operation of the COSMAC VIP. For other posts in the series refer to the index or instruction […]
By Chip-8 on the COSMAC VIP: Binary Coded Decimal | Laurence Scotford October 19, 2013 - 11:13 am
[…] you have an interest in the operation of the COSMAC VIP. For other posts in the series refer to the index or instruction […]