1
0
mirror of https://github.com/irmen/ksim65.git synced 2024-06-06 07:29:29 +00:00
Kotlin 6502/65C02 microprocessor simulator
Go to file
2019-09-19 01:22:11 +02:00
.idea virtual machine 2019-09-16 01:17:54 +02:00
gradle/wrapper initial 2019-09-11 02:17:59 +02:00
src fix disassembly issues, added ehBasic machine 2019-09-19 01:22:11 +02:00
.gitignore virtual machine 2019-09-16 01:17:54 +02:00
.travis.yml trigger 2019-09-13 01:43:58 +02:00
build.gradle.kts fix disassembly issues, added ehBasic machine 2019-09-19 01:22:11 +02:00
gradle.properties tweak 2019-09-13 01:20:57 +02:00
gradlew initial 2019-09-11 02:17:59 +02:00
gradlew.bat initial 2019-09-11 02:17:59 +02:00
LICENSE fix disassembler address display 2019-09-14 17:25:41 +02:00
README.md fix disassembly issues, added ehBasic machine 2019-09-19 01:22:11 +02:00
settings.gradle.kts initial 2019-09-11 02:17:59 +02:00

saythanks Build Status

KSim65 - Kotlin/JVM 6502/65C02 microprocessor simulator

Written by Irmen de Jong (irmen@razorvine.net)

Software license: MIT, see file LICENSE

6502

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.

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.

Documentation

Still to be written. For now, use the source ;-)