1
0
mirror of https://github.com/irmen/ksim65.git synced 2024-05-29 03:41:30 +00:00
ksim65/README.md

36 lines
1.5 KiB
Markdown
Raw Normal View History

2019-09-12 23:32:26 +00:00
[![saythanks](https://img.shields.io/badge/say-thanks-ff69b4.svg)](https://saythanks.io/to/irmen)
[![Build Status](https://travis-ci.org/irmen/ksim65.svg?branch=master)](https://travis-ci.org/irmen/ksim65)
2019-09-14 15:25:41 +00:00
# KSim65 - Kotlin/JVM 6502/65C02 microprocessor simulator
2019-09-12 23:32:26 +00:00
*Written by Irmen de Jong (irmen@razorvine.net)*
*Software license: MIT, see file LICENSE*
![6502](https://upload.wikimedia.org/wikipedia/commons/thumb/4/43/KL_MOS_6502.jpg/320px-KL_MOS_6502.jpg)
2019-09-14 15:25:41 +00:00
This is a Kotlin/JVM library that simulates the 8-bit 6502 and 65C02 microprocessors,
which became very popular in the the early 1980's.
2019-09-12 23:32:26 +00:00
2019-09-14 15:25:41 +00:00
Properties of this simulator:
- Written in Kotlin. It is low-level code, but hopefully still readable :-)
- Designed to simulate hardware components (bus, cpu, memory, i/o controllers)
- IRQ and NMI simulation
- Aims to be clock cycle-precise (not yet 100% correct right now)
- Aims to implements all 6502 and 65c02 instructions, including the 'illegal' 6502 instructions (not yet done)
- correct BCD mode for adc/sbc instructions on both cpu types
- passes several extensive unit test suites that verify instruction and cpu flags behavior
- maximum simulated performance is a 6502 running at ~100 Mhz (on my machine)
## Virtual machine examples
Two virtual example machines are included.
The default one starts with ``gradle run`` or run the ``ksim64vm`` command.
There's another one ``ehBasicMain`` that is configured to run the "enhanced 6502 basic" ROM.
2019-09-14 15:25:41 +00:00
## Documentation
Still to be written. For now, use the source ;-)