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
Peter Evans
fcd25f6385
Use set16 to push items to the stack.
...
The previous method was not incorrect, but set16 already handles the
little-endian logic for us, and there's no need to do something bespoke
here that we then need to test for separately.
2018-01-20 23:43:58 -06:00
Peter Evans
2f777ce881
Several core changes to status, soft switches
...
Regarding soft switches, we had several we should have been listening
for on both reads and writes, but were only doing so on writes; this is
now fixed.
Regarding statuses, we were incorrectly calculating both carry and
overflow. This should now be fixed, although some quick examinations of
disassembly output suggest there is something else amiss. Debugging will
continue shortly.
2018-01-20 21:01:26 -06:00
Peter Evans
103a188faf
Add an extra line break
...
Mostly for vim to make it easier to skip over blocks with '}'.
2018-01-19 19:14:59 -06:00
Peter Evans
a9cf25853d
Show the individual flags of the P register
2018-01-19 13:14:02 -06:00
Peter Evans
6b160c6ca2
Show the dereferenced value for a given address
2018-01-19 12:18:24 -06:00
Peter Evans
2c319399d2
Change disassembly to add more info
2018-01-19 00:34:57 -06:00
Peter Evans
e286ba34f5
Greatly increase counter
2018-01-18 22:19:31 -06:00
Peter Evans
8d9a990997
Remove addresses that aren't handled in dbuf
2018-01-18 22:19:15 -06:00
Peter Evans
0ae4f041e5
Increase counter amount
2018-01-18 16:21:56 -06:00
Peter Evans
d4bf5da480
Draw text in 40 column mode
2018-01-18 16:21:25 -06:00
Peter Evans
a55fd2f71f
Remove log message
2018-01-18 16:20:53 -06:00
Peter Evans
e77837ceed
Reformat; add a bit more info on running
2018-01-17 16:07:42 -06:00
Peter Evans
818adb4f72
Add some updates!
2018-01-17 16:00:28 -06:00
Peter Evans
96b8b77f37
Use apple2.tests.h for setup/teardown
2018-01-17 15:31:12 -06:00
Peter Evans
37df8db225
Initiate last_key and key_pressed with default values
2018-01-17 15:28:23 -06:00
Peter Evans
c0ce4ec2f1
Set strobe to false by default
...
Otherwise we could get garbage values, and that was flagging some tests
as failed at random times
2018-01-17 15:16:25 -06:00
Peter Evans
c8dbf1c84c
Add missing tests for new vm_screen functions
2018-01-17 15:16:12 -06:00
Peter Evans
53f40ff960
Add tests for apple2.kb.c
2018-01-17 14:58:42 -06:00
Peter Evans
6670df930b
Remove unnecessary functions and tests
2018-01-17 14:02:37 -06:00
Peter Evans
bf529d6c9b
Finish map, mapper handling for keyboard events
...
We still need to revise the test code we currently have for handling
keyboard functions; I imagine some code will need to be removed.
2018-01-17 01:07:31 -06:00
Peter Evans
8d4283b1dc
Add first work on keyboard support
...
Mainly the switch_read function, which had necessitated some work done
in the vm_screen area
2018-01-16 23:50:02 -06:00
Peter Evans
2b688c7815
Add last key, strobe fields
2018-01-16 23:49:34 -06:00
Peter Evans
9d6869bfc4
Add missing decls for switch read/write
2018-01-16 23:49:14 -06:00
Peter Evans
9811bbe450
Add switch read/write for display buffer switches
2018-01-16 23:48:49 -06:00