Commit Graph

51 Commits

Author SHA1 Message Date
Takashi Toyoshima
02c08505eb Implement I/O for lpc1114
Now Apple BASIC can run on the LPC1114 device :)
2014-12-09 04:54:33 +09:00
Takashi Toyoshima
826647fb93 Update test: now it can run Apple BASIC.
]10 PRINT "HELLO"

]20 END

]LIST

10  PRINT "HELLO"
20  END

]RUN
HELLO

]
2014-12-08 04:19:05 +09:00
Takashi Toyoshima
faacc4ea52 Bug fix: op7e ROR did not store result
- also fp should be saved as 32bit register
2014-12-08 03:38:58 +09:00
Takashi Toyoshima
47d7fb8749 Bug fix: 0x26 is not ROR but ROL 2014-12-08 03:23:08 +09:00
Takashi Toyoshima
4994158c0c Bug fix: 0x2a is not ROR but ROL 2014-12-08 03:19:08 +09:00
Takashi Toyoshima
7dcce64f10 Bug fix: bit 2014-12-08 03:18:54 +09:00
Takashi Toyoshima
5465cc99d2 Update test.c to check Apple BASIC behaviors 2014-12-08 03:11:03 +09:00
Takashi Toyoshima
3f2daf7b08 Bug fix: data was broken on absolute and absolute indexed destination
Now it can show "Apple ][" logo by using Apple BASIC ROM!!
2014-12-08 03:01:27 +09:00
Takashi Toyoshima
62b69b5458 Bug fix: TSX was still wrong 2014-12-08 02:49:17 +09:00
Takashi Toyoshima
77fa2964f1 Bug fix: stack is hard :(
SP should wrap correctly on push and pop
2014-12-08 02:43:05 +09:00
Takashi Toyoshima
9098230d7d Bug fix: conditions are hard :( 2014-12-08 02:35:47 +09:00
Takashi Toyoshima
2ad2fa6efb Bug fix: BRK should set I flag 2014-12-08 00:50:05 +09:00
Takashi Toyoshima
729cac78a0 Bug fix: INX did not store the result correctly 2014-12-08 00:46:38 +09:00
Takashi Toyoshima
82990fdab7 Bug fix: B and reserved flag should not be modified on updating SR 2014-12-08 00:44:42 +09:00
Takashi Toyoshima
42cb53c0ad Bug fix: after TSX, X got a value >= 0x100 2014-12-08 00:36:42 +09:00
Takashi Toyoshima
d0ad06c86a Use 6502_65C02_functional_tests, and two bug fixes
- transfer operations should update n and z flags
 - TSX should transfer SP, not SR
2014-12-08 00:21:49 +09:00
Takashi Toyoshima
1f39658a0b Bug fix: toAbsb can not store the right value 2014-12-07 19:02:33 +09:00
Takashi Toyoshima
064567f346 Bug fix: adc and sbc performed wrong carry flag calculation 2014-12-07 19:01:33 +09:00
Takashi Toyoshima
86d07009b1 Add some I/O and memory emulation to check Apple2 BASIC 2014-12-07 18:31:41 +09:00
Takashi Toyoshima
91c94746d8 Bug fix: manage r12 correctly, and TXS used a wrong register
To use r12 in assembly code:
 - use -fomit-frame-pointer for test.c
 - save and restore on calling libc functions
2014-12-07 16:35:46 +09:00
Takashi Toyoshima
dbf8142e61 Bug fix on shift operations again. Other macros broke T0. 2014-12-07 15:51:59 +09:00
Takashi Toyoshima
e419d9da69 Bug fix: absolute and absolute indexed fetched wrong address 2014-12-07 15:15:06 +09:00
Takashi Toyoshima
c5d69f2c14 dec and inc was swapped, and results are not stored correctly 2014-12-07 15:10:05 +09:00
Takashi Toyoshima
c3c8eafc07 Bug fix on sbc, C was reversed, and result was not stored on V=0 2014-12-07 15:02:40 +09:00
Takashi Toyoshima
8ff302aaf0 Bug fix: cmp didn't take Z flag 2014-12-07 14:47:46 +09:00
Takashi Toyoshima
51faf4afb1 Bug fix: brannch target calculation was still wrong 2014-12-07 14:44:00 +09:00
Takashi Toyoshima
21b25243d7 Bug fix: bit and cmp operations didn't increment PC 2014-12-07 14:32:52 +09:00
Takashi Toyoshima
ff26481127 Bug fix on adc condition flag updates 2014-12-07 14:29:14 +09:00
Takashi Toyoshima
ff1f7b8b2f Fix branch operation bugs
- address calculation on not taken
 - use macro to implement each branch operation
2014-12-07 14:05:38 +09:00
Takashi Toyoshima
8d94c76d47 Bug fix on shift operations that set a result to a wrong register 2014-12-07 13:54:47 +09:00
Takashi Toyoshima
bc8b0b0906 Bug fux: absolute and absolute indexed didn't increment PC correctly 2014-12-07 13:35:20 +09:00
Takashi Toyoshima
7370d07645 Implement _sbc. They must have many bugs, but anyway, finished. 2014-12-07 12:56:02 +09:00
Takashi Toyoshima
14fa2b22c3 Implement _adc, ...sigh :( 2014-12-07 12:38:48 +09:00
Takashi Toyoshima
90feea53ed Implement _cp and _inc 2014-12-07 11:47:22 +09:00
Takashi Toyoshima
b86a32323e Implement all ops, except for macros, _adc, _cp, _inc, _sbc 2014-12-07 02:13:45 +09:00
Takashi Toyoshima
8301b1e97e Implement op -0xde 2014-12-07 02:03:38 +09:00
Takashi Toyoshima
677b893b40 Implement op -0xd0 (except for _adc and _cp macros) 2014-12-07 01:58:56 +09:00
Takashi Toyoshima
4f71331f06 Implement op -0xbf 2014-12-07 01:50:39 +09:00
Takashi Toyoshima
f694a16d58 Implement op -0xaf 2014-12-07 01:45:07 +09:00
Takashi Toyoshima
4a3cf30de1 Implement op -0x8f 2014-12-07 01:20:36 +09:00
Takashi Toyoshima
34f60ed8b6 Implement op -0x7f (turning point!) 2014-12-06 23:29:28 +09:00
Takashi Toyoshima
428c8b54c5 Implement op -0x6f (except for _adc macro) 2014-12-06 23:24:53 +09:00
Takashi Toyoshima
8e22cfe6cf Implement op -0x5f 2014-12-06 23:14:21 +09:00
Takashi Toyoshima
4c3a822893 Implement op -0x4f 2014-12-06 23:08:34 +09:00
Takashi Toyoshima
fb81353de3 Implmenet op -0x3f 2014-12-06 22:50:50 +09:00
Takashi Toyoshima
124bfa1941 Implement op -0x2f 2014-12-06 22:45:05 +09:00
Takashi Toyoshima
02560fdc4b Implement op -0x20 2014-12-06 21:48:20 +09:00
Takashi Toyoshima
e12f4260f3 Implement op -0x0f 2014-12-06 21:22:12 +09:00
Takashi Toyoshima
ef36502777 Implement op 0x00-0x08 2014-12-06 21:00:22 +09:00
Takashi Toyoshima
dd372c8a2d Ready to implement a 6502 interpreter
All investigation for implementation and testing were done.
Now, 6502.S can be verified on qemu-arm, and run even on LPC1114.
All I have to do is just implement the 6502 interpreter.
2014-12-05 02:43:58 +09:00