https://github.com/elvircrn/commodore64emu
Yet another Commodore 64 Emulator written in C++
https://github.com/elvircrn/commodore64emu
cpp17 emulation nes visual-studio
Last synced: 10 months ago
JSON representation
Yet another Commodore 64 Emulator written in C++
- Host: GitHub
- URL: https://github.com/elvircrn/commodore64emu
- Owner: elvircrn
- Created: 2017-08-10T20:06:44.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2019-09-25T23:51:47.000Z (over 6 years ago)
- Last Synced: 2025-03-16T16:25:36.431Z (over 1 year ago)
- Topics: cpp17, emulation, nes, visual-studio
- Language: C++
- Homepage: https://github.com/elvircrn/Commodore64EMU
- Size: 18.4 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README - C64.md
Awesome Lists containing this project
README
The area at $d000-$dfff with
CHAREN=1 CHAREN=0
$ffff +--------------+ /$e000 +----------+ +----------+
| Kernal ROM | / | I/O 2 | | |
$e000 +--------------+/ $df00 +----------+ | |
|I/O, Char ROM | | I/O 1 | | |
$d000 +--------------+\ $de00 +----------+ | |
| RAM | \ | CIA 2 | | |
$c000 +--------------+ \$dd00 +----------+ | |
| Basic ROM | | CIA 1 | | |
$a000 +--------------+ $dc00 +----------+ | Char ROM |
| | |Color RAM | | |
. RAM . | | | |
. . $d800 +----------+ | |
| | | SID | | |
$0002 +--------------+ |registers | | |
| I/O port DR | $d400 +----------+ | |
$0001 +--------------+ | VIC | | |
| I/O port DDR | |registers | | |
$0000 +--------------+ $d000 +----------+ +----------+
## CIA #1 Progress Report
### 0xDC00
Done
### 0xDC01
Done
### 0xDC02
No need to implement
### 0xDC03
No need to implement
### 0xDC04
Simple bind
### 0xDC05
Simple bind
### 0xDC06
Simple bind
### 0xDC07
Simple bind
### 0xDC08
No need to implement
### 0xDC09
No need to implement
### 0xDC0A
No need to implement
### 0xDC0B
No need to implement
### 0xDC0C
TODO
Serial shift register. (Bits are read and written upon every positive edge of the CNT pin.)
NOTE that this likely is not needed at all, TODO: Check if this is the case!
### 0xDC0D
IMPORTANT
Two different registers are actually used for r/w.
Read:
Simple bind. Requires logic to be implemented in CIA1::tick for writes
Write:
Dictates how CIA#1::tick() operates e.g. interrupt enable etc.
### 0xDC0E
TODO
Timer A control
### 0xDC0F
TODO
Timer B control