minor corrections

This commit is contained in:
ArthurFerreira2 2020-08-09 00:09:10 +02:00 committed by GitHub
parent e89b74338b
commit 181f7a11cd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 6 deletions

View File

@ -1,34 +1,38 @@
# puce6502
This is a simple and readable emulation of the MOS 6502 CPU\
It passes the [Klaus Test Suite](https://github.com/Klaus2m5/6502_65C02_functional_tests)\
It implements all original instruction and is cycle accurate excepted for :
It passes the [Klaus Test Suite](https://github.com/Klaus2m5/6502_65C02_functional_tests), implements all original instructions and is cycle accurate excepted for :
*Absolute-X, absolute-Y, and Zero page-Y addressing modes which need an extra cycle if indexing crosses a page boundary, or if the instruction writes to memory.*
You can easely interface it with your code using the two provided functions :
You can easely interface it with your code using :
```
void puce6502Reset();
void puce6502Exec(long long int cycleCount);
```
The first emulates a reset signal, the second will execute as many instruction as needed to reach cycleCount
RAM and ROM are implemented using 8 bits integer arrays. And are directly accessible to your code to load ROM binary images and, for example, generate video output\
RAM starts at adress 0x000\
Update the three #define to adapt it to your needs :
Update the three #define to adapt the ranges to your needs :
```
#define ROMSTART 0xD000
#define ROMSIZE 0x3000
#define RAMSIZE 0xC000
```
you are expected to provide a function to handle read and writes to locations not
in ROM or in RAM (for Soft Switches, extension cards ROMs, PIA, VIA, ACIA etc...)
You are expected to provide a function to handle read and writes to locations not in ROM or in RAM (for Soft Switches, extension cards ROMs, PIA, VIA, ACIA etc...)
```
extern uint8_t softSwitches(uint16_t address, uint8_t value);
```
Finally, the variable `ticks` is a long long int holding the number of cycles since last reset.
For an example of use, you can refer to [reinette II plus](https://github.com/ArthurFerreira2/reinette-II-plus) a french Apple II plus emulator.
Have fun !