Commit Graph

480 Commits

Author SHA1 Message Date
Peter Evans 1ac19aaaae Port similar changes from DE* to IN* 2018-04-30 22:15:24 -05:00
Peter Evans 635ff624e7 Refactor the DEC/X/Y tests a bit for clarity 2018-04-30 21:37:20 -05:00
Peter Evans c53c7bfd1d Add function to return true if an instruction would write to memory 2018-04-21 23:15:48 -05:00
Peter Evans 37f9e627ba Change from last_opcode/last_operand to opcode/operand
This change also makes it so that those values are set once they are
known, rather than only at the end of the execute function.
2018-04-21 23:14:32 -05:00
Peter Evans a5947f646e We no longer need the last effective address 2018-04-21 23:06:23 -05:00
Peter Evans 40550b38dc We also need to set the debug flag 2018-04-21 21:59:56 -05:00
Peter Evans be82a23061 Remove two-op checks 2018-04-20 16:47:51 -05:00
Peter Evans 9ac85cb30b The on/off switch for BANK_ALTZP was mixed up 2018-04-16 22:28:24 -05:00
Peter Evans 573a276948 We mixed up when to turn on/off text mode 2018-04-16 22:15:17 -05:00
Peter Evans c82c1828b0 Remove unused grid file; resolve crash condition 2018-04-15 23:31:29 -05:00
Peter Evans b06c00a547 Rename segment -> seg, index -> addr 2018-04-15 22:40:44 -05:00
Peter Evans b5fef760b8 Remove the map_mach abstraction in favor of vm_di 2018-04-15 22:30:57 -05:00
Peter Evans 8e810e724f Add addr_mode field, rely upon it vs. the opcode
This makes testing _slightly_ easier, because now the handlers require a
type of state in the cpu vs. a specific opcode state in the segment that
we execute from. (The latter being just more complex to work with and
require in testing.)
2018-04-15 00:56:34 -05:00
Peter Evans 7c78c22618 The lores colors have changed; update the test to account for it 2018-04-14 18:08:59 -05:00
Peter Evans 7cc443206c Fix table sort order
Otherwise bsearch() can't find the help command, which causes other
problems later on
2018-04-13 23:43:52 -05:00
Peter Evans a3a32662ef Remove disasm command 2018-04-13 23:36:58 -05:00
Peter Evans 5db0c3b9c0 Clearer documentation on push_stack 2018-04-13 18:01:17 -05:00
Peter Evans 3887f52119 Clarify behavior of pop_stack 2018-04-13 16:22:58 -05:00
Peter Evans ebb5f068fd Always set the UNUSED and BREAK flags after execution.
This change simply replicates the behavior demonstrated in AppleWin.
2018-04-13 16:17:13 -05:00
Peter Evans 20047c65a8 If we pressed a key, we need to set the strobe to true 2018-04-13 16:14:57 -05:00
Peter Evans ee2c9746c6 Add docblocks 2018-04-07 19:54:05 -05:00
Peter Evans 6e77e99813 Add ability to debug separate from pausing
Also, pausing just pauses now; no debugger prompt is shown. ALT+P
toggles pausing, so just hit it again to unpause. Also, when things are
paused, you can perform other keyboard events (like quitting).
2018-04-07 11:14:12 -05:00
Peter Evans ec719da2c5 Remove unused vm_reflect files 2018-04-07 11:05:26 -05:00
Peter Evans 4b0b8e1a89 Move vm_debug fully into apple2 2018-04-07 00:53:17 -05:00
Peter Evans 27d0a15bc5 Move vm_debug_broke() check out of mos6502 and into apple2 2018-04-07 00:48:16 -05:00
Peter Evans 18e0bde099 Remove vm_reflect.c 2018-04-07 00:39:49 -05:00
Peter Evans c665df3531 Move reflect to event 2018-04-07 00:33:40 -05:00
Peter Evans 8a899f87a2 Move reflect files to event files 2018-04-07 00:32:29 -05:00
Peter Evans a913668c02 Missing some reorg changes; move reflect into event, debug 2018-04-07 00:26:31 -05:00
Peter Evans 74aafb0d01 Reorganizing files into directories 2018-04-06 20:27:47 -05:00
Peter Evans f9d130ba97 Add an extremely crude method to slow things down
It's not configurable, and not accurate to any particular measure. But
it's something for now.
2018-04-06 11:49:54 -05:00
Peter Evans 281544bf43 Avoid polling for events until we're ready for a frame redraw
This change drastically cuts the number of times we poll for events, and
consequently drastically speeds up the number of frames we can draw
within any given span of time.

In other words, we go from "this barely moves as fast as the actual
Apple II" to "holy shit this moves so fast".
2018-04-06 11:47:54 -05:00
Peter Evans f8dd49e892 Revert "Separate window and renderer creation; use software rendering"
This reverts commit c178e417b7.
2018-04-05 20:57:09 -05:00
Peter Evans 206bd86196 Revert "Move hires colors into include file"
This reverts commit d8e0159de0.
2018-04-05 20:56:59 -05:00
Peter Evans e50af5aba9 Revert "Implement rect change stack"
This reverts commit 616bfdcc58.
2018-04-05 20:56:46 -05:00
Peter Evans 616bfdcc58 Implement rect change stack 2018-04-04 22:01:46 -05:00
Peter Evans d8e0159de0 Move hires colors into include file 2018-04-04 22:01:26 -05:00
Peter Evans c178e417b7 Separate window and renderer creation; use software rendering
It seems _slightly_ faster than hardware acceleration for the uses we
have.
2018-04-02 08:37:01 -05:00
Peter Evans 2d0952133a Add missing docblock comments, remove some dead code 2018-03-31 21:10:08 -05:00
Peter Evans 418950750f A very rough version of the correct hires render logic 2018-03-31 20:54:47 -05:00
Peter Evans 221d798c82 Remove online checks
That doesn't seem to be how the motor on/off status works. This
basically stops the motor from actively spinning, but it does not
prevent the drive from basic operation.
2018-03-30 23:33:30 -05:00
Peter Evans 2b8cdc7cfc Remove logging, always work on a drive in switch_drive 2018-03-30 23:05:24 -05:00
Peter Evans 6653da3c20 Rework overflow logic, and add missing handling 2018-03-30 23:04:21 -05:00
Peter Evans 0ccabda71e Rewrite SBC logic
The carry handling was incorrect; carry is set if we went below zero,
but bit 7 is not enough to determine that. It follows that negative
handling needed to be modified accordingly. Overflow handling was also
incorrect.
2018-03-30 20:07:24 -05:00
Peter Evans 07a8a385f5 Remove log statements 2018-03-30 20:06:59 -05:00
Peter Evans 54708e5110 Switch back to >= 2018-03-30 18:49:32 -05:00
Peter Evans a23c7321f5 Don't do certain operations if the drive is offline 2018-03-30 16:26:24 -05:00
Peter Evans d129ffed99 Logging on STA instructions 2018-03-30 16:10:15 -05:00
Peter Evans 523b9c4a03 Several changes...
1. We have much more logging.
2. We were not properly turning off drives when we would get called with
   C0x8.
3. We now roll over sector pos if we are greater than ENC_ETRACK.
4. We now reset sector pos when we step.
2018-03-30 16:07:58 -05:00
Peter Evans d2047457e9 Use log_crit() instead of log_critical()
This change also removes the former log_critical and log_error macros.
2018-03-29 21:45:25 -05:00