Peter Evans
288b4a9e8d
The boot procedure no longer defaults bank_switch to 0
2018-01-10 21:50:43 -06:00
Peter Evans
8d9b48912e
Add memory injection to 6502; main memory in apple2
...
Note that memory _is_ now managed in apple2, and _not_ in mos6502.
2018-01-10 21:28:05 -06:00
Peter Evans
3db536a83d
Change memory_mode -> bank_switch
...
This also changes the concept of the field; bank_switch is a collection
of bit flags now.
2018-01-10 19:59:33 -06:00
Peter Evans
fcba14f91b
Add set16 function
2018-01-10 16:43:14 -06:00
Peter Evans
7f6b8d3587
We can no longer assume PC increments during address handling
...
This change required a number of consequent changes to assumptions we'd
made, and I'm not 100% confident we have things right at this point in
time.
2018-01-09 20:59:14 -06:00
Peter Evans
04aab568df
Oh, little-endian issues; you are my bane
2018-01-09 16:28:14 -06:00
Peter Evans
68b1b79549
Added a "fix" to JSR test.
...
It's really wrong, because we _should_ be storing PC + 2 in the stack.
And software's definitely gonna bork when we try emulating them, because
they will invariably inspect the stack and assume that's what we have in
there.
But the proper fix is to not actually do next_byte(), and to never
advance PC outside of the execute function. But that's a bigger change
than I want to do at this specific moment.
So, in the meantime, you have me prattling on in a commit message. Lucky
you!
2018-01-09 16:26:21 -06:00
Peter Evans
b492b44e0c
We have a raft of changes here...
...
1. In some cases we corrected little-endian issues.
2. In others, we need to correct expected output to account for PC,
cycles and hex dumps.
2018-01-09 16:24:51 -06:00
Peter Evans
7e51339b88
Account for incremented PC byte in rel tests
2018-01-09 16:06:41 -06:00
Peter Evans
4beff0bff8
Remember that we must obey little-endian order
2018-01-09 16:00:15 -06:00
Peter Evans
a8bba409c3
Change 16-bit references to respect little-endianness
...
As the Apple II (or rather the 6502 chip) is little-endian, meaning the
least significant byte is the first byte you read going forward, rather
than the last byte.
2018-01-08 17:10:26 -06:00
Peter Evans
62035d03b8
Remove test (which is now done from vm_area.c)
2018-01-07 20:08:27 -06:00
Peter Evans
b2add9c3de
Move vm_area logic into its own file
2018-01-07 20:05:02 -06:00
Peter Evans
143a2b176c
Add missing tests and note missing ones
2018-01-07 20:00:28 -06:00
Peter Evans
db6dde7757
Note intentionally missing tests
2018-01-07 19:42:03 -06:00
Peter Evans
bc563b8aca
Note intentionally missing tests; add test for flag
2018-01-07 19:39:16 -06:00
Peter Evans
087c424d2f
Rename test suite
2018-01-07 16:31:00 -06:00
Peter Evans
a3dff9193b
Add missing tests
2018-01-07 16:30:52 -06:00
Peter Evans
ba47de0e4b
Add objstore_clear(), tests for objstore
2018-01-07 16:30:33 -06:00
Peter Evans
c3d35dca72
Move address resolver test
2018-01-07 15:50:06 -06:00
Peter Evans
0fa930b548
Fix incorrect test name
2018-01-07 15:48:19 -06:00
Peter Evans
7b2450131e
Add tests for would_jump, flash_memory
2018-01-07 15:47:26 -06:00
Peter Evans
55cb80162c
Add missing tests
2018-01-07 15:06:07 -06:00
Peter Evans
d8431828a8
Add missing tests for sys/disk2 rom
2018-01-07 14:46:29 -06:00
Peter Evans
216ad72d4c
Add comment for free function (handled in teardown)
2018-01-07 14:45:59 -06:00
Peter Evans
d71a5c83ca
Change test suite to expected name
2018-01-07 14:38:51 -06:00
Peter Evans
32f0ba21f4
Add comments for tests that we will not write at this time
2018-01-07 13:46:12 -06:00
Peter Evans
665f7de37c
Rename apple2dd_ to apple2_dd_
...
Except for the struct object (apple2dd).
2018-01-07 13:44:07 -06:00
Peter Evans
419b82faf1
Add missing tests for reset, set_memory
...
This also consciously ignores tests for free() (handled implicitly in
all teardowns) and run_loop (for which I don't have a good notion to
test right now).
2018-01-07 13:43:09 -06:00
Peter Evans
62af6ef606
Add missing files for tests
...
They're empty, which is ok for the moment.
2018-01-06 21:35:32 -06:00
Peter Evans
1de1e7788a
Rename status flags to MOS_
2018-01-05 14:18:39 -06:00
Peter Evans
45f5975cdf
Add test for write_bank
2018-01-04 19:34:15 -06:00
Peter Evans
d7ea991127
Implement first crack at read_bank test
2018-01-04 15:14:32 -06:00
Peter Evans
171ff62551
Change create to use objstore vm_8bit data
2018-01-03 21:50:30 -06:00
Peter Evans
4d07bd7640
Add objstore code, tests
2018-01-03 20:51:20 -06:00
Peter Evans
14f2dcae1a
Set the map machine on setup; revert to NULL on teardown
2018-01-03 15:21:24 -06:00
Peter Evans
194ec07b1f
Add skeletons for read/write_bank tests
2018-01-03 01:01:53 -06:00
Peter Evans
80c7f38368
Add test suite for apple2.mem.c
2018-01-03 01:00:51 -06:00
Peter Evans
425ca1b1e1
Include the mach argument
2018-01-02 23:52:40 -06:00
Peter Evans
ead5f28e79
Refactor to use cpu, not literal segments
2017-12-30 23:02:30 -06:00
Peter Evans
b42d5370aa
Small bug in the jump label code for IND
...
This also required a rethink on some core functions which now needed to
know about the memory segment; and further changes in the unit-testing
code on the disassembly suite was also necessary.
2017-12-30 22:50:23 -06:00
Peter Evans
b7211f43c2
Testing relative label assignments
2017-12-29 17:14:20 -06:00
Peter Evans
26529f77ab
Implement jump table, labels in code
2017-12-29 17:08:25 -06:00
Peter Evans
9000245002
Much documentation; use BUFSIZ for buf length
2017-12-29 15:55:25 -06:00
Peter Evans
927d03ebbe
Add scan function (rename original scan -> opcode); test
2017-12-29 15:31:05 -06:00
Peter Evans
f98e2f65ee
Add disassembly scan function, tests
2017-12-28 23:47:36 -06:00
Peter Evans
6a230341e1
Make vm_area_set be an inline function.
...
Gets most of the benefits of being a macro, but also gains type safety
(which macros do not have).
2017-12-27 17:10:51 -06:00
Peter Evans
30223e0bca
Remove screen area field; document area fields
2017-12-27 16:59:56 -06:00
Peter Evans
27f91ec00f
Use vm_area with bitfont_offset
...
This should further standardize on vm_area.
2017-12-27 16:47:26 -06:00
Peter Evans
c7b830bb4a
Switch references from SDL_Rect to vm_area
...
We still use SDL_Rect internally, but we want to abstract the use of it
in our API. The only thing the rest of the app should care about is the
vm_area struct.
2017-12-27 16:31:02 -06:00