Commit Graph

134 Commits

Author SHA1 Message Date
Preston Skupinski
eff69c28bc added JMP absolute long and JMP absolute indirect long 2011-06-09 20:01:36 -04:00
Preston Skupinski
fe0117a1e0 the cpu object is now passed as the first argument to memory mapped io device interaction functions 2011-06-04 11:36:20 -04:00
Preston Skupinski
a0b9497eb4 added TXS and TSX 2011-06-01 13:17:03 -04:00
Preston Skupinski
4f98a754b7 added TRB and both addressing modes for it 2011-06-01 13:01:16 -04:00
Preston Skupinski
48c6fe5cf9 added TSB and both addressing modes for it 2011-05-30 19:55:59 -04:00
Preston Skupinski
c9d491411b added the rest of the addressing modes for BIT and fixed a bug in a few operations 2011-05-30 19:22:19 -04:00
Preston Skupinski
71552b5720 added BIT immediate 2011-05-30 18:57:20 -04:00
Preston Skupinski
150d6e57d2 added basic memory mapped i/o support 2011-05-30 17:23:00 -04:00
Preston Skupinski
688c2aaaa3 added DEC and INC direct page indexed x and absolute indexed x 2011-05-23 21:37:28 -04:00
Preston Skupinski
4998c9c4dc added operations that still need to be implemented to the TODO and fixed a few errors in the opcode map 2011-05-22 20:07:29 -04:00
Preston Skupinski
bd89ee30e1 added direct page indexed x indirect addressing for operations that support it 2011-05-22 18:35:05 -04:00
Preston Skupinski
382a4b1fc6 added absolute long indexed x addressing for operations that support it 2011-05-22 15:16:44 -04:00
Preston Skupinski
1b1193abbf added absolute long addressing for many operations that support it 2011-05-22 14:13:16 -04:00
Preston Skupinski
e046787510 added direct page indirect long indexed y addressing for operations that support it 2011-05-22 12:52:42 -04:00
Preston Skupinski
c469f3f3ae added direct page indirect long addressing mode for operations that support it 2011-05-22 11:20:02 -04:00
Preston Skupinski
7de24ebf33 added COP 2011-05-15 20:05:31 -04:00
Preston Skupinski
e37b40fb76 added basic working interrupt handling and the BRK and RTI operations. 2011-05-14 23:17:28 -04:00
Preston Skupinski
d446c727bf quick fix for a mistake in the opcode map 2011-05-13 22:28:13 -04:00
Preston Skupinski
a2b0188024 added stack relative indirect indexed y addressing for the operations that support it 2011-05-13 22:24:05 -04:00
Preston Skupinski
179980e8c3 added stack relative addressing for operations that support it 2011-05-13 18:30:22 -04:00
Preston Skupinski
38505fdc8b added direct page indexed x, absolute indexed x and absolute indexed y addressing modes for CMP 2011-05-13 15:24:00 -04:00
Preston Skupinski
7b821a0473 added direct page indirect indexed y addressing mode for those operations that support it 2011-05-13 14:58:10 -04:00
Preston Skupinski
e2341a63a1 added XBA 2011-05-13 13:51:10 -04:00
Preston Skupinski
0fd6d30fe3 added TCS and TSC 2011-05-13 12:46:35 -04:00
Preston Skupinski
8500c21618 added TCD and TDC 2011-05-13 12:18:16 -04:00
Preston Skupinski
e1f33e4af4 fixed the emulation mode stack register and stack behavior to be a bit more accurate 2011-05-12 00:57:29 -04:00
Preston Skupinski
b4f795f368 added BRL 2011-05-12 00:09:02 -04:00
Preston Skupinski
6acdd0d596 changed the program bank register's name from pbr to k as it should be 2011-05-11 22:44:48 -04:00
Preston Skupinski
758d336563 added emulation mode page one swap wrapping 2011-05-11 20:31:12 -04:00
Preston Skupinski
7f6ce58d56 leave stack pointer alteration with byte pushing or pulling to the mmu object 2011-05-11 17:31:50 -04:00
Preston Skupinski
4797ad0cd9 more work on emulation mode support, making sure that any operation that checks for 8-bit registers checks for emulation mode first 2011-05-11 12:41:07 -04:00
Preston Skupinski
25dbc8f08e begin work on emulation mode support 2011-05-11 12:25:54 -04:00
Preston Skupinski
5347ced894 added MVN and MVP 2011-05-11 01:05:31 -04:00
Preston Skupinski
02835299a7 added JSL and RTL 2011-05-09 14:43:47 -04:00
Preston Skupinski
9e1177864b added JSR and RTS, marking the beginning of subroutine support 2011-05-09 14:14:41 -04:00
Preston Skupinski
4a48a49547 added CLD, SED and CLV 2011-05-09 12:37:09 -04:00
Preston Skupinski
6a4d4ceeaa added PER 2011-05-09 12:21:50 -04:00
Preston Skupinski
8d68d281c7 added PHD and PLD 2011-05-09 00:56:00 -04:00
Preston Skupinski
81767302e4 use the program bank register when fetching the byte representing the instruction to execute next 2011-05-09 00:38:15 -04:00
Preston Skupinski
aa08ce700d added PHB and PLB 2011-05-09 00:34:19 -04:00
Preston Skupinski
b956d2254f added PEA and PEI 2011-05-09 00:01:16 -04:00
Preston Skupinski
98a058058f added PHP and PLP 2011-05-08 23:46:22 -04:00
Preston Skupinski
9af3fe68ee added PHY, PLY, PHX, PLX 2011-05-08 22:46:51 -04:00
Preston Skupinski
395e381c4f beginning of stack support with PHA and PLA 2011-05-08 22:20:33 -04:00
Preston Skupinski
86ea739777 added ROR and all of its addressing modes 2011-05-08 17:46:40 -04:00
Preston Skupinski
b3488669a8 added ROL and all of its addressing modes 2011-05-08 17:03:23 -04:00
Preston Skupinski
b1c6249169 added ASL and all of the addressing modes for it 2011-05-08 15:02:50 -04:00
Preston Skupinski
937dfdb7d8 make sure to add the direct page register to the location with the LSR direct page operation 2011-05-08 14:12:29 -04:00
Preston Skupinski
e8e96e0164 added LSR and all of the addressing modes for and rewrote the way in which I get the high byte from 16-bit data 2011-05-08 14:03:59 -04:00
Preston Skupinski
c941641d6a added EOR and many addressing modes for it 2011-05-08 01:11:11 -04:00
Preston Skupinski
8e3363b1e8 added ORA and many addressing modes for it 2011-05-08 00:58:50 -04:00
Preston Skupinski
4bac875b5c added AND and many addressing modes for it 2011-05-08 00:41:57 -04:00
Preston Skupinski
c716e6e2f0 added support for more addressing modes for SBC 2011-05-07 22:42:11 -04:00
Preston Skupinski
645c3b6a5b added CMP absolute and CPX/CPY immediate, direct page and absolute 2011-05-07 20:42:09 -04:00
Preston Skupinski
cbe6896e8f fix a mistake when it came to storing the high byte in memory, while the previous method "worked" it could cause problems down the road as I was storing data larger than 1 byte in 1 byte cells in numerous cases 2011-05-07 19:32:22 -04:00
Preston Skupinski
96022047d6 added CMP immediate and fixed a misunderstanding as to when the carry bit is set or not set with SBC/CMP 2011-05-07 18:18:25 -04:00
Preston Skupinski
146992b192 added SBC immediate 2011-05-07 17:45:39 -04:00
Preston Skupinski
047095c8cc don't add the execute function by extending the prototype 2011-05-07 15:43:13 -04:00
Preston Skupinski
9254648308 added ADC direct page indexed x, ADC absolute indexed x, ADC absolute indexed y 2011-05-07 15:16:37 -04:00
Preston Skupinski
47766a6b0d added ADC direct page indirect 2011-05-07 14:37:29 -04:00
Preston Skupinski
1f127547e1 added ADC direct page and ADC absolute 2011-05-07 13:08:02 -04:00
Preston Skupinski
861a8183b2 check for signed overflow with ADC 2011-05-07 12:17:14 -04:00
Preston Skupinski
676b111870 added ADC immediate 2011-05-07 11:02:17 -04:00
Preston Skupinski
f613f2b15e add 'var' where I somehow forgot to in order to satisfy QUnit 2011-05-05 22:42:16 -04:00
Preston Skupinski
17dd04c7d6 fixed DEC operations to properly handle decrementing 0 by 1 and numerous fixes to the DEC and INC operations otherwise 2011-05-05 22:34:49 -04:00
Preston Skupinski
7500a31ef5 started adding test cases for the emulator, I've decided upon using QUnit for the tests 2011-05-05 17:25:44 -04:00
Preston Skupinski
aed03f6ff5 fixed SEP and REP 2011-05-05 11:39:34 -04:00
Preston Skupinski
a9f15f133b set the n bit of the p status register as required and a few bug fixes otherwise 2011-05-04 22:39:19 -04:00
Preston Skupinski
94af723baa added DEC accumulator, DEC absolute, DEC direct page, DEX, and DEY as well as added overflow handling for INC and DEC operations and made some style changes 2011-05-03 00:00:40 -04:00
Preston Skupinski
5a349a4381 added BPL, BMI 2011-05-02 22:28:20 -04:00
Preston Skupinski
9795ea416b added BCC, BCS, BEQ, BNE, BVC, BVS 2011-05-02 21:11:57 -04:00
Preston Skupinski
ddbf51d8ef added BRA 2011-05-02 20:20:20 -04:00
Preston Skupinski
8a401c9eba added JMP absolute indirect and repositioned the incrementing of the program counter so the program counter doesn't incorrectly increment after a branch or jump and increments at the correct time anyways 2011-05-02 18:10:17 -04:00
Preston Skupinski
952b6ba840 added JMP absolute 2011-05-02 16:29:09 -04:00
Preston Skupinski
a5d690e9cb quick fix to a silly mistake 2011-05-02 08:03:53 -04:00
Preston Skupinski
4828d9c1b1 added STA and LDA absolute long 2011-05-01 20:09:14 -04:00
Preston Skupinski
09fce7cff5 added STA direct page indirect 2011-05-01 17:38:04 -04:00
Preston Skupinski
96a8899204 added LDA direct page indirect (0xb2) 2011-05-01 16:52:48 -04:00
Preston Skupinski
982107a90b fixed a mistake where I mixed up high byte and low byte in a few cases 2011-05-01 16:07:10 -04:00
Preston Skupinski
93ae3ec6a0 check if transferred value is zero and set the z bit of the p status register 2011-05-01 13:46:28 -04:00
Preston Skupinski
b167d4c164 added TAX, TAY, TXA and TYA 2011-05-01 13:15:16 -04:00
Preston Skupinski
08593831b3 added TXY and TYX 2011-05-01 12:20:18 -04:00
Preston Skupinski
44696ed8ce direct page addressing when using an index register must overflow to 0x0000 and not be allowed to exceed 0xffff, so 0xfff0+0x12 should result in an address of 0x02 2011-04-30 23:54:07 -04:00
Preston Skupinski
f809dfccc7 initial commit 2011-04-30 21:45:56 -04:00