1
0
mirror of https://github.com/rkujawa/rk65c02.git synced 2024-06-01 05:41:27 +00:00
Commit Graph

47 Commits

Author SHA1 Message Date
Radoslaw Kujawa
6ccb94ac46 Update copyright year. 2021-01-25 01:09:01 +01:00
Radosław Kujawa
b3e49fdb24 Add preambles with license information. 2019-09-23 15:28:05 +02:00
Radosław Kujawa
2cc9d86c64 Simplify error handling if malloc fails.
There's no way to reliable handle out of memory situation in an
emulator. So just bail out by raising assertion.
2018-08-05 23:45:44 +02:00
Radosław Kujawa
6d7f0abef0 Comment WAI/interrupt behaviour. 2018-04-13 11:25:30 +02:00
Radosław Kujawa
d0728c8ade Emulate invalid instructions.
Treat them as NOPs of different length just as real 65C02.
2018-04-10 13:56:37 +02:00
Radosław Kujawa
faec05b87e Start doxifying the documentation. 2018-04-10 12:17:59 +02:00
Radosław Kujawa
ed4b2786b6 Simplify ROM loading by providing utility function. 2018-04-10 10:12:27 +02:00
Radosław Kujawa
7cf3f263e3 Simplify handling ciritcal emulation errors. 2018-04-01 21:40:49 +02:00
Radosław Kujawa
68fa918d97 Document the way invalid opcodes are handled. 2018-04-01 21:16:58 +02:00
Radosław Kujawa
9c16656198 Disable tracing by default. 2018-03-26 16:11:26 +02:00
Radosław Kujawa
ae3e782b74 Use boehm gc to manage memory.
I'm less likely to fuck this up now.
2018-03-26 12:36:47 +02:00
Radosław Kujawa
eeb337a0d6 Don't forget newline when printing regs. 2018-03-24 00:14:41 +01:00
Radosław Kujawa
5fddf2c5dc More refactoring and improvements to logging! 2018-03-23 13:37:07 +01:00
Radosław Kujawa
5cb6f3488e Further improvements and refactoring to logging. 2018-03-22 15:08:51 +01:00
Radosław Kujawa
47aca32da7 Add minimal logging functionality. 2018-03-21 16:22:29 +01:00
Radosław Kujawa
de1ab25427 Make runtime disassembly optional. 2017-02-15 21:38:51 +01:00
Radosław Kujawa
0b83a263d7 Introduce trace functionality. 2017-02-15 21:32:12 +01:00
Radosław Kujawa
6afb4531d5 The rk65c02_exec should return immediately after hitting breakpoint. 2017-02-15 19:56:22 +01:00
Radosław Kujawa
3363959b87 Add breakpoints. 2017-02-14 11:17:40 +01:00
Radosław Kujawa
4c7a15f524 Add emulation of WAI instruction. 2017-02-09 21:53:45 +01:00
Radosław Kujawa
299b7ee7d8 Add functions to dump stack.
Always useful.
2017-02-06 23:16:00 +01:00
Radosław Kujawa
ac48e5435f Add preliminary support for interrupts. 2017-02-04 21:44:13 +01:00
Radosław Kujawa
51b47d707b Set reason for stopping the emulation when stepping. 2017-02-03 22:21:43 +01:00
Radosław Kujawa
941036615e Add some null pointer checking asserts. 2017-02-02 14:43:44 +01:00
Radosław Kujawa
436810b79f The overflow flag should be represented by "V". 2017-02-01 22:11:24 +01:00
Radosław Kujawa
b21d884f8b Clear the decimal flag on initialisation. 2017-01-31 00:31:04 +01:00
Radosław Kujawa
05cedfb1f5 Also print program counter when dumping regs. 2017-01-27 22:28:09 +01:00
Radosław Kujawa
2430cfd722 Branch and jump instrucitons need special PC treatment. 2017-01-27 20:43:08 +01:00
Radosław Kujawa
1f581d3fd3 Add function to dump registers state onto stdout. 2017-01-27 11:27:14 +01:00
Radosław Kujawa
0c63342ad7 Add comments explaing what these functions do. 2017-01-27 10:13:32 +01:00
Radosław Kujawa
1da576c821 Merge branch 'master' of github.com:rkujawa/rk65c02 2017-01-26 17:27:22 +01:00
Radosław Kujawa
80b6848108 Preliminary support for stepping. 2017-01-26 13:11:00 +01:00
Radosław Kujawa
941e89173a Add struct with info about reason for stopping emulation. 2017-01-26 12:52:40 +01:00
Radosław Kujawa
285d2ee828 Initial state of the CPU has IRQ disable bit set. 2017-01-25 21:17:18 +01:00
Radosław Kujawa
5eede9333b Add emulation of PHP, PLP instructions and test cases for them. 2017-01-22 23:01:24 +01:00
Radosław Kujawa
473e0e2636 Add INX, INY emulation and test cases.
Some comments while here.
2017-01-22 13:07:21 +01:00
Radosław Kujawa
e763ca0d3a Avoid getting instruction definition again when emulating.
While here try to make program counter incrementation more universal
and flexible.
2017-01-22 11:07:19 +01:00
Radosław Kujawa
5ca671aecb Print value of PC register when unimplemented opcode encountered. 2017-01-21 09:13:43 +01:00
Radosław Kujawa
51de051e19 Stop on unimplemented instruction. 2017-01-20 23:18:00 +01:00
Radosław Kujawa
bcedb50e48 Clean up. 2017-01-20 09:11:22 +01:00
Radosław Kujawa
52ce9bff8c Preliminary support for emulation of instructions.
Some refactoring while here.
2017-01-18 17:18:19 +01:00
Radosław Kujawa
f106e227cd Prepare structures for adding emulation of instructions. 2017-01-18 15:45:28 +01:00
Radosław Kujawa
23802b176f Instruction set definition is now private to 65c02isa.c, has API.
Minor refactoring while here, splitting stuff.
2017-01-17 14:29:20 +01:00
Radosław Kujawa
d515954f44 Move reg_state struct to header, rename op to opcode. 2017-01-17 11:18:48 +01:00
Radosław Kujawa
0da3d6dc5f Instruction addressing modes now handled with enum.
While here imlpement instruciton printing for all addressing modes.
2017-01-17 00:42:31 +01:00
Radosław Kujawa
64e71a081f Since this is a library, off with the main function now. 2017-01-16 23:54:24 +01:00
Radosław Kujawa
e7c81c0fbc Initial import, skeleton... 2017-01-16 19:35:28 +01:00