Peter Evans
d581194bbc
Add apple text functions and refactor draw logic for text
2018-01-24 16:11:08 -06:00
Peter Evans
8bbe337643
Move open apple to index 0
2018-01-24 15:05:29 -06:00
Peter Evans
6069ab4d1b
Add inverse font
2018-01-24 14:26:28 -06:00
Peter Evans
4a4fd93d9d
Inverse for last two glyphs; add inverse bitmap
2018-01-24 14:14:49 -06:00
Peter Evans
375b5a173f
Add inverse font glyphs
2018-01-24 13:56:48 -06:00
Peter Evans
f073c0d007
Add new glyph grid files and rebuild bitmap
2018-01-24 13:05:35 -06:00
Peter Evans
70cfa527b4
Add new glyphs and sort glyph map
2018-01-24 13:05:16 -06:00
Peter Evans
cfee8baf25
Refresh once every thirtieth of a second
...
And also refresh on keypress
2018-01-23 23:14:26 -06:00
Peter Evans
882cf2c166
Comment out cycles
2018-01-23 21:41:43 -06:00
Peter Evans
9f518d5141
We should not resolv the address a second time
2018-01-23 21:41:30 -06:00
Peter Evans
47630fdc88
pha/php only push one byte onto the stack
2018-01-23 21:37:36 -06:00
Peter Evans
c946eb3f69
Fix incorrect stack info
...
(The previous behavior of RTS/JSR was not right.)
2018-01-23 21:35:59 -06:00
Peter Evans
2e334e2ee1
Update tests with correct expected text from disassembler
2018-01-23 21:19:26 -06:00
Peter Evans
1751a7af1f
Don't try to call resolv() if resolv is NULL
2018-01-23 21:18:42 -06:00
Peter Evans
80136e9360
Most status flags are now set when the CPU is created
2018-01-23 20:41:48 -06:00
Peter Evans
0b03fd24f5
Carry must also be factored in
2018-01-23 20:26:01 -06:00
Peter Evans
5656b271ee
Account for carry being set by default
2018-01-23 16:30:52 -06:00
Peter Evans
746e2246b3
Set negative and unset zero since the operand >= A
2018-01-23 16:29:53 -06:00
Peter Evans
3c7002c6c7
Carry is only unset if the operand >= A
2018-01-23 16:29:08 -06:00
Peter Evans
dc97a6996e
Account for carry being set by default
2018-01-23 16:28:39 -06:00
Peter Evans
b02679f6a0
Carry must be unset
2018-01-23 16:26:05 -06:00
Peter Evans
522905b39c
Carry must be unset in this test
2018-01-23 16:24:46 -06:00
Peter Evans
60ff0e5781
Carry is set by default now
2018-01-23 16:24:16 -06:00
Peter Evans
a3598ecd16
The stack pushes from the end of the page now
2018-01-23 16:21:43 -06:00
Peter Evans
8edf83f7ad
Carry is set only if the result is > 0xFF
2018-01-23 16:20:33 -06:00
Peter Evans
8133781fd3
Use the address mode enum itself
2018-01-23 16:18:22 -06:00
Peter Evans
7a0ea50aa3
The stack now only works with 8bit values; disable carry
2018-01-23 16:16:59 -06:00
Peter Evans
9215600148
Don't attempt to render a glyph if render is NULL
2018-01-23 16:09:27 -06:00
Peter Evans
ef13fe4ef1
Require STATUS_DEFAULT, stack pointer at ff
2018-01-23 16:07:21 -06:00
Peter Evans
766aea9c96
Change dbuf switches to work off correct addresses
2018-01-23 15:51:06 -06:00
Peter Evans
8f516db42b
Remove arbitrary counter and allow escape to exit
2018-01-23 15:04:11 -06:00
Peter Evans
775a145480
Rework screen display logic for more efficiency
2018-01-23 14:52:16 -06:00
Peter Evans
b5e1e09a35
Bump up counter by a ton
2018-01-22 21:43:18 -06:00
Peter Evans
b97af6cb16
Disable active refresh
2018-01-22 21:43:01 -06:00
Peter Evans
47d7483297
Disable usleep delay for now
2018-01-22 21:42:42 -06:00
Peter Evans
e0b4fd27e8
Better logging
2018-01-22 21:42:30 -06:00
Peter Evans
56433e2ebe
Show nothing if no value is associated with an instruction
2018-01-22 12:31:19 -06:00
Peter Evans
945bf23f22
Use correct default status and memory mode
2018-01-21 21:33:12 -06:00
Peter Evans
c2debec4d3
Make output more compact
2018-01-21 21:32:43 -06:00
Peter Evans
ef7977c18b
Only set or unset DHIRES if IOUDIS is on
2018-01-21 21:32:22 -06:00
Peter Evans
d119854631
Carry is set by left- or right-most bits
...
Don't rely on modify_status() to get it right.
2018-01-21 16:21:15 -06:00
Peter Evans
3206332a7d
Set carry if the right-most bit is 1
...
Don't consider the left-most bit
2018-01-21 16:17:31 -06:00
Peter Evans
5d8403aaa7
Only set negative if operand has it set
...
That is, don't consider A & operand for negative.
2018-01-21 16:12:03 -06:00
Peter Evans
ecd8a7974a
Add "BAD" instruction to crash when we hit an invalid opcode
2018-01-21 12:48:34 -06:00
Peter Evans
1334e34e76
Use A & oper here
2018-01-21 12:47:58 -06:00
Peter Evans
f9a95827f5
Change carry flag strategy according to docs
2018-01-21 12:47:36 -06:00
Peter Evans
5f93bdae25
Try to match technical behavior described for JSR/RTS
2018-01-21 01:17:04 -06:00
Peter Evans
0581ed6b44
Fix stack in several ways
...
1. The stack should descend, not ascend;
2. The stack should be pushed byte for byte; meaning, when pushing P or
A, those should consume one byte, not two;
3. The MSB should be pushed first when doing JSR and BRK, which makes
some sense if you were reading the stack from $0100 - $01FF.
2018-01-21 01:09:42 -06:00
Peter Evans
42c7fcbb47
XOR the orig and result bit 7 for overflow
...
We should have done this all along. We hadn't accounted for if orig >=
0x80 and result < 0x80, but at that point, it's kind of silly to have a
long complicated condition that we can satisfy simply with an XOR.
(Which is what the machine would do anyway.)
2018-01-21 00:05:49 -06:00
Peter Evans
809e6ca7c6
Overflow should simply be bit 6's value
2018-01-20 23:47:02 -06:00