1
0
mirror of https://github.com/pevans/erc-c.git synced 2024-12-21 23:29:16 +00:00
Commit Graph

155 Commits

Author SHA1 Message Date
Peter Evans
d7148b88bf Relative address was not being calculated correctly.
The disassembler is using the correct approach, so I adapted it to the
execution code.
2018-01-09 15:57:37 -06:00
Peter Evans
a267065059 Include cycle information 2018-01-09 15:57:20 -06:00
Peter Evans
8201117223 Change init routine to use peripheral function 2018-01-09 15:56:48 -06:00
Peter Evans
0e0244162f Change objstore structure to contain all peripheral ROM 2018-01-09 15:56:21 -06:00
Peter Evans
3c46a41351 Fix little-endian issue with IND output
Also change the ADDR label to emit a hex code, not a decimal code.
2018-01-08 23:36:11 -06:00
Peter Evans
1abf0223c8 The value of PC by that point is correct.
Adding 2 skips us ahead farther than we should be going.
2018-01-08 22:25:37 -06:00
Peter Evans
f7b8740c2e Let the CPU run for longer before it dies 2018-01-08 22:24:30 -06:00
Peter Evans
b21b48cac0 Fix a couple of issues...
1. The execute function should not be incrementing the PC register, as
this happens in other places.
2. The push_ and pop_stack functions were not considering that the data
should be in little-endian order.
2018-01-08 21:22:29 -06:00
Peter Evans
e4049a6a11 Better info on each opcode sequence
Plus fix a display bug that showed the operand in the wrong order.
2018-01-08 21:21:09 -06:00
Peter Evans
7c899122ad We should advance to the next byte in execution 2018-01-08 21:15:56 -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
3f59db311b Allow us to ignore some docblock errors 2018-01-07 20:08:46 -06:00
Peter Evans
b2add9c3de Move vm_area logic into its own file 2018-01-07 20:05:02 -06:00
Peter Evans
95e57a8e19 Add get_map_machine function.
Mostly useless except for testing.
2018-01-07 20:00:09 -06:00
Peter Evans
ba47de0e4b Add objstore_clear(), tests for objstore 2018-01-07 16:30:33 -06:00
Peter Evans
1c36c4ea4d Add missing docblock comments 2018-01-07 16:07:29 -06:00
Peter Evans
cccf6df354 Move address resolver 2018-01-07 15:47:57 -06:00
Peter Evans
888eb25797 Refactor a bit for easier testing; add log_stream() 2018-01-07 15:05:20 -06:00
Peter Evans
5da65e0a9e Change apple2dd -> apple2_dd 2018-01-07 14:46:54 -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
8ad1311536 Add set_memory function 2018-01-06 21:37:15 -06:00
Peter Evans
d9527db033 Retrieve the 16-bit PC address.
This fixes a bug where we only got an 8-bit address from $FFFC and
ignored the LSB at $FFFD.
2018-01-05 16:15:13 -06:00
Peter Evans
70516a7f91 Add function to return 16-bit value from a segment address 2018-01-05 16:14:51 -06:00
Peter Evans
c6799db689 Separate reset logic from boot function 2018-01-05 16:04:01 -06:00
Peter Evans
af7dae6924 Advance PC by # of bytes consumed 2018-01-05 15:52:20 -06:00
Peter Evans
7ceee608b3 Stop delaying by 2 seconds 2018-01-05 15:52:04 -06:00
Peter Evans
c7aa9e9fc3 Resolver may be NULL; don't call if so
This change also registers a default value for operand (0).
2018-01-05 14:57:38 -06:00
Peter Evans
d5b6205713 Actually execute some opcodes 2018-01-05 14:55:33 -06:00
Peter Evans
fd8f36b34e We need to use the mach cpu 2018-01-05 14:19:13 -06:00
Peter Evans
1de1e7788a Rename status flags to MOS_ 2018-01-05 14:18:39 -06:00
Peter Evans
2da613f7aa Provisional state upon reboot 2018-01-04 20:09:53 -06:00
Peter Evans
3f0a091520 Use const pointers; fix function name typo 2018-01-04 19:59:04 -06:00
Peter Evans
700bc31465 Copy system rom into $C800..$CFFF; document.
Things are getting a little hairy...at least, as to my own
comprehension. Documentation is a must.
2018-01-04 19:53:12 -06:00
Peter Evans
e184304ec5 A little more documentation post-rwops changes 2018-01-04 14:21:05 -06:00
Peter Evans
171ff62551 Change create to use objstore vm_8bit data 2018-01-03 21:50:30 -06:00
Peter Evans
565dd1b34b Make sure the object store got built 2018-01-03 21:50:01 -06:00
Peter Evans
06d37d24d7 Allow us to call objstore_init more than once.
This also separates some code into objstore_ready().
2018-01-03 21:49:26 -06:00
Peter Evans
7182608473 Copy vm_8bit buffer into rom/memory directly 2018-01-03 21:10:46 -06:00
Peter Evans
90d6c637c5 Add function to copy a buffer into a segment 2018-01-03 21:10:25 -06:00
Peter Evans
4d07bd7640 Add objstore code, tests 2018-01-03 20:51:20 -06:00
Peter Evans
b1c2a2109e Just use stdout if we never opened a log file 2018-01-03 20:47:41 -06:00
Peter Evans
484a11e976 Pass in zero for an offset 2018-01-03 15:21:00 -06:00
Peter Evans
fac6b4f574 Initialize system and disk2 rom 2018-01-03 15:20:48 -06:00
Peter Evans
86dad129b6 Let us fread into a segment offset 2018-01-03 15:16:30 -06:00
Peter Evans
e7a404508e Add init functions for disk2, sys rom
Also move the defines for bank offset, rom size, etc. into apple2.mem.h
which makes a little more sense.
2018-01-03 15:07:19 -06:00
Peter Evans
5b2c376abc Prevent writes to the ROM bank 2018-01-03 14:27:55 -06:00
Peter Evans
9a1e51fec3 We need to pass the machine, not memory 2018-01-02 23:49:29 -06:00
Peter Evans
cb9a7d0fce Let the segment vm know about the machine 2018-01-02 21:12:21 -06:00
Peter Evans
ee7b5f66b0 Add support for a map machine pointer
To be sent to the read/write functions that are implemented by said
machine.
2018-01-02 21:11:43 -06:00
Peter Evans
3fe7a4e0bb Use explicit memory size of MOS6502 2018-01-02 20:48:42 -06:00