1
0
mirror of https://github.com/lefticus/6502-cpp.git synced 2024-12-22 01:30:03 +00:00
Commit Graph

65 Commits

Author SHA1 Message Date
Jason Turner
841a80f2dd Begin support for signed 'S' operations from AVR 2021-05-27 12:05:44 -06:00
Jason Turner
8b159faa59 Better label handling 2021-05-27 08:31:02 -06:00
Jason Turner
949e118ef7 Game map actions starting to work 2021-05-25 22:30:03 -06:00
Jason Turner
bb51249b4c Optimize around single instruction jump statements 2021-05-25 19:12:16 -06:00
Jason Turner
13dbaafbfd Optimize out flag-fixing code followed by ldy 2021-05-25 18:56:10 -06:00
Jason Turner
cc08629435 Fix parsing of literal expressions for adiw/subw 2021-05-25 18:42:57 -06:00
Jason Turner
1f03d18d5e Fix processing of labels to get std::variant working 2021-05-25 13:49:33 -06:00
Jason Turner
5b764ad179 Add AVR tst opcode 2021-05-23 13:53:52 -06:00
Jason Turner
7f8516d61d Add jmp instruction support 2021-05-21 12:18:13 -06:00
Jason Turner
a04c937aeb Faster 16bit increment for index operations 2021-05-21 12:02:48 -06:00
Jason Turner
61e3609f47 Enable option to disable optimization of 6502 assembly
- narrow down bug for optimized -O0 for 2d array writes
2021-05-19 22:15:14 -06:00
Jason Turner
49cf9cc32d Initial support for __mulhi3 2021-05-19 21:34:33 -06:00
Jason Turner
49d68fe54c Add NOP support and allow for unused symbols 2021-05-19 15:18:44 -06:00
Jason Turner
f64fa3cce6 Start adding tests 2021-05-19 14:28:05 -06:00
Jason Turner
681e35ba5f fix complement opcode translation 2021-05-17 13:58:50 -06:00
Jason Turner
e2b2601705 Re-enable optimizations 2021-05-17 13:54:55 -06:00
Jason Turner
c6a1a31533 Fix cpse instruction implementation from bit to cmp 2021-05-17 13:23:31 -06:00
Jason Turner
ac8895120f Add icall, inc, and fix up some assembly parsing 2021-05-17 13:17:26 -06:00
Jason Turner
e7a3db9dda Fix up some optimizer passes 2021-05-13 23:35:57 -06:00
Jason Turner
28ebf888e3 Start adding command line options, and some formatting fixes 2021-05-13 22:23:25 -06:00
Jason Turner
4cbdae3ffe Fix handling of 16 bit C,N,Z flags 2021-05-12 09:38:18 -06:00
Jason Turner
a6f012878e Add 'call' instruction 2021-05-12 07:51:58 -06:00
Jason Turner
905e850abb Try to get carry/zero/N flags set properly for various branch states 2021-05-11 22:00:33 -06:00
Jason Turner
6c0e5a660d Add ror instruction 2021-05-11 20:44:38 -06:00
Jason Turner
a1c596622b Disable a fixup, which might not be necessary now 2021-05-11 09:18:03 -06:00
Jason Turner
eedec41b1e Fix handling of sbc/sub and enable parsing of -fverbose-asm 2021-05-09 17:31:44 -06:00
Jason Turner
a4edf7194e Better stack handling. We now require -mtiny-stack from GCC 2021-05-08 22:59:35 -06:00
Jason Turner
baf9c092ea Add some (broken) stack handling. Need to move to -mtiny-stack 2021-05-08 21:15:21 -06:00
Jason Turner
d2241528e5 Implement a bunch more instructions 2021-05-08 17:58:14 -06:00
Jason Turner
f79a189a12 Fix lookup of X,Y,Z registers 2021-05-08 16:01:25 -06:00
Jason Turner
e6040763eb Some code organization and splitting up 2021-05-06 23:11:12 -06:00
Jason Turner
afcbe05bff Some reorg and start to move to ctre 2021-05-06 21:43:03 -06:00
Jason Turner
3f9fd79586 Start to cleanup layout and code 2021-05-06 17:50:36 -06:00
Jason Turner
7a5926b5fd Move start address and make c64 auto-startable 2021-05-06 16:49:33 -06:00
Jason Turner
f0caf81299 Remove i386 which was lagging very far behind now 2021-05-06 14:12:16 -06:00
Jason Turner
4ffae19177 change name to 6502-c++ and merge in files from cpp_starter_project 2021-05-06 14:04:59 -06:00
Jason Turner
f95290b68c Apply a few more optimization rounds 2021-05-05 20:21:06 -06:00
Jason Turner
d39ad32438 convert sec/sbc with cmp, increase perf 2021-05-05 17:02:38 -06:00
Jason Turner
ab9dd4e1b7 Updated 16bit counter example with higher level functions 2021-05-05 16:44:30 -06:00
Jason Turner
77c25389aa 16 bit counter example working 2021-05-05 15:56:08 -06:00
Jason Turner
1547abccab Apply some clang-format action 2021-05-04 23:31:39 -06:00
Jason Turner
14b3f4192e Fix several CPU bugs and add several more instructions 2021-05-04 23:29:48 -06:00
Jason Turner
b0980ac10a More multi-byte operations working 2021-05-03 09:57:49 -06:00
Jason Turner
51c5767f0e Ability to copy from .data section resources to RAM 2021-05-02 18:10:12 -06:00
Jason Turner
ad75dcdfef Fix which bit is tested with the sbrs instruction 2021-04-22 20:44:44 -06:00
Jason Turner
24012c1ff7 Fix use of address 1 to literal 1 for skip instructions
Thank you to the viewers who pointed out the issue at the
end of the stream.

At this point, simple code works, but the conditional
from the joystick input does not seem to work yet.

 * also add location header for linker
 * also filter errors and directives better
2021-04-22 18:54:00 -06:00
Jason Turner
5591249f2a Almost working programs with AVR conversion
* need to add a decent header address
 * probably need to fix sbrc and sbrs
2021-04-22 15:52:35 -06:00
Jason Turner
13af1e8cca Get AVR code starting to work, make debuggable 2021-04-22 10:42:21 -06:00
Jason Turner
2a2ce54d32 add jst 2021-04-18 16:50:56 -06:00
Marko Mäkelä
4ed4e6a94c Implement some more instructions, and fix typos.
Implement 16-bit shrl (new instruction).

Implement movl with a 16-bit literal value. Add the 6502 ROR instruction.
2016-10-06 17:41:33 +03:00