Commit Graph

841 Commits

Author SHA1 Message Date
tomcw
82f6bf35a5 Debugger: GR/HGR/DGR/DHGR cmds should honour the MIXED mode. (Fixes #740) 2019-12-19 20:45:55 +00:00
TomCh
769d4c6927
Support 2nd Disk][ card and improved card management (#726) (PR #741)
Support 2nd Disk][ in slot-5, via command line:
- -s5 diskii
- -s5d1 \<imagefile\>
- -s5d2 \<imagefile\>

NB. there's currently no Configuration UI support, except the Drive icons' tooltips show what's in slot-5 & slot-6 (for drive-n). So there's no way to eject the disks or insert new disks. The use-case I'm supporting it Wasteland which just has the 4 disks in the 4 drives.

Improved card management:
- Added `class Card` (in Card.h) which all other cards (that exist as classes) derive from (eg. LC,SSC,Mouse,Disk2).
- Added `class CardManager` (in CardManager.cpp\h) which now manages the 8 slots (and aux slot).
- Added `class Disk2CardManager` (in Disk2CardManager.cpp\h) which provides methods for operations that act on all Disk2 instances at the same time.
- Currently limited to just 1x SSC and 1x Mouse card (why would you need more?). This simplifies things, meaning there's no need to have dedicated SSCManager / MouseCardManager objects.
- Currently the 2nd Disk2 card can only be put into slot-5. This limitation is just due to the complexity of the Configuration UI. Having a more general drop-down per slot UI would remove this limitation.
2019-12-19 19:42:30 +00:00
tomcw
d2010860ef Debugger: refactor common code into GetTargets_IgnoreDirectJSRJMP() 2019-12-09 21:00:58 +00:00
tomcw
87677ed4c3 Debugger: In _6502_GetTargets() removed the bool bIgnoreJSRJMP parameter. 2019-12-09 20:42:16 +00:00
tomcw
f0e840f8e0 Debugger: Support BPMR for JMP (abs) and JMP (abs,x). (#451) 2019-12-09 19:13:24 +00:00
tomcw
b1316dc3da Debugger: Fixed regression at prior commit dd274bc000 for bpm addr16 not triggering.
. Extended debugger regression tests to catch this (and test many other variants).
2019-12-09 16:27:13 +00:00
tomcw
ba7a4005b0 DiskII: fixes for Wasteland for both .nib & .woz images (#733) 2019-12-08 16:23:29 +00:00
Andrea
6af3b0b028 Color (RGB Monitor): speed up 'Pure CPU MHz (video update)'. (PR #730) 2019-11-28 22:06:34 +00:00
tomcw
dd274bc000 Debugger: BPMR|W - ignore next opcode's fetch address as a candidate for memory trap address (#451) 2019-11-27 22:14:16 +00:00
tomcw
4d12a23c68 Make soundtype default to WAVE (not NONE)! (#355) 2019-11-24 15:57:33 +00:00
tomcw
7d38b1ba38 CPU save-state: added 'Defer IRQ By 1 Opcode' (v5) and comments for why the other state doesn't need saving 2019-11-18 15:08:59 +00:00
tomcw
b82de931a1 Fixed 6522 timer interrupt which was occurring 1 cycle late (#711) 2019-11-17 12:26:14 +00:00
TomCh
d1b595f7bd
Fix for "Mad Effect 1&2" demos (PR #725)
. 6502 interrupt delays 1 opcode when interrupt occurs on last cycle of opcode (#724).
. Only 1-cycle delay for VF_TEXT & VF_MIXED mode changes (#656).
NB. Mad Effect 1 still has a bit of flicker on Space Invader (left edge)
2019-11-16 23:49:21 +00:00
tomcw
97e73c632d Full-speed: new VideoGetVblBarEx() required when called from main loop 2019-11-11 19:55:46 +00:00
tomcw
3c6d5d1e76 Phasor: fixed noisy playback for AE's player. (Fixes #659) 2019-11-11 17:35:10 +00:00
Andrea
d6d76ae6bc Memory fix for struct ImageInfo (PR #715)
ImageInfo is not a POD and cannot simply be initialised with ZeroMemory()
. the std::string constructor must be called.
. ImageInfo: simplify code using new / delete vs VirtualAlloc
Also fixed mismatching new / delete [] reported by valgrind
2019-11-11 14:09:29 +00:00
tomcw
20b8515b7b Full-speed: Only redraw video screen during VBl (support VBl in full-speed) 2019-11-10 23:52:29 +00:00
tomcw
d4e01643fa Mockingboard: improved sound-buffer updating
. Changed to 6522.TIMER underflowing at 0x0000 -> 0xFFFF (#652)
. Changed MB_Update() to be based on cycle delta (was TIMER1 interval)
  . this improves support for small 6522.T1C interval
  . removed MB_GetFramePeriod()
  . removed overly-complex dual-timer support
. Replaced MB_EndOfVideoFrame() with MB_PeriodicUpdate()
2019-11-10 15:52:07 +00:00
tomcw
eb59c52dc4 Mockingboard: Fix initial fast (weird) music playback issue (#711) 2019-11-03 21:37:55 +00:00
tomcw
4ad0923399 Fix video tearing by only updating during the Apple II VBL (#711) 2019-11-03 15:05:28 +00:00
tomcw
d92eca5068 Cmd line: -m and -no-mb: fix crash 2019-11-03 14:23:47 +00:00
tomcw
5792107dce Debugger: fixed help for 'videoinfo' cmd 2019-11-03 09:36:33 +00:00
TomCh
3d4691e9bd
ADTPro not working (#707) (PR #714)
. Wrap m_vbTxEmpty in a mutex
. Check WriteFile() result & log error
2019-11-02 19:53:00 +00:00
tomcw
5edd8ac32b SSC: Get initial modem status when COM port is first opened 2019-10-27 16:53:24 +00:00
tomcw
d23d091caa SSC: Support COM ports greater than 9 (#707) 2019-10-24 21:43:00 +01:00
Kelvin Lee
cb007df40b Debugger: Symbol loading: Fix random crash upon start up. (PR #694) 2019-10-25 04:25:07 +09:00
tomcw
07aeadc23f Fixed out-of-bounds global buffer access
. detected using VS2019 asan support
2019-10-23 18:17:38 +01:00
TomCh
2f64795e2e
Debugger: BPMR & BPMW (PR #710)
Extended BPM to also support BPMR and BPMW
Fixed BPM[R|W] 0:FFFF (ie. support a range of 0x10000)
2019-10-23 05:31:53 +09:00
tomcw
13588165ff Debugger display: minor refactor 2019-10-20 21:17:40 +01:00
tomcw
52376fd664 Debugger display (#666, #702):
. Video-scanner: when invisible use yellow (instead of red) (fixes #666)
. Soft-switches: row "80:" show a red 'x' when AltZP is set (#702)
2019-10-20 11:30:31 +01:00
tomcw
3cd4ead90d Disk: minor refactor 2019-10-13 16:01:00 +01:00
tomcw
1472f25bad Save-state: show an error MsgBox if old HDD v1 save-state and PC is in $Cnss HDD firmware 2019-10-13 15:48:07 +01:00
tomcw
2a06f32bf6 Disk: Fixed write/disk-format issue (regression at 25496d3a52) 2019-10-13 10:25:33 +01:00
tomcw
d39ba32e8a LC: Support write-enabling LC via single 'INC abs,X' opcode for 6502 & 65C02. (#404, #700) 2019-10-12 22:34:35 +01:00
tomcw
8a55e35e2d LC: fixed INC to only write-enable LC for 65C02 (#700) 2019-10-12 18:17:11 +01:00
tomcw
df4ed7b964 Added new cmd-line switch: -model <apple2|apple2p|apple2e|apple2ee>. (Fixes #689) 2019-10-12 18:07:51 +01:00
tomcw
ad9dd28942 Added new cmd-line switch: -clock-multiplier. 2019-10-12 16:40:36 +01:00
tomcw
dc8a22169e Added new cmd-line switch: -s7-empty-on-exit. (Fixes #692) 2019-10-12 16:01:55 +01:00
tomcw
75f6ab9e59 Debugger: added auto-run of 'DebuggerAutoRun.txt' on startup. (#666) 2019-10-11 21:24:01 +01:00
tomcw
319797df69 Debugger: Video-scanner info:
. moved vert,horz onto same row
. made hex & apple modes the default display config
. added 2nd line showing cycles
. moved mini-mem views over by 1 char
2019-10-10 22:21:25 +01:00
tomcw
9994635e13 LC: Support write-enabling LC via single 'INC abs' and similar RMW opcodes (#700) 2019-10-08 22:12:35 +01:00
tomcw
7265dee506 Fixes:
. loading disk state (v5)
. string append bug introduced in 'char* to std::string' PR #687
2019-10-06 16:39:43 +01:00
tomcw
31b78aa09a HDD: Fixed not being able to enable HDDs - regression introduced at 506a52f359 2019-10-05 16:56:38 +01:00
tomcw
25496d3a52 WOZ: removed floppyWriteMode/FloppyLoadMode - use Sequencer Function instead 2019-10-05 09:53:02 +01:00
tomcw
d5236d5ee4 Merge branch 'master' of ssh://github.com/AppleWin/AppleWin 2019-09-30 22:14:06 +01:00
tomcw
31f7e7296b WOZ: support Sequencer Function 2019-09-30 21:29:58 +01:00
tomcw
5e98140da1 WOZ:
. set m_headWindow = 0, after >50 bitcell gap
. bias fake bits to be ~30% chance of a 1 bit
Disk logging:
. added timestamps to I/O accesses
. DumpTrackWOZ() now outputs sync bits between nibbles
2019-09-30 20:39:47 +01:00
tomcw
f9a1ef04f7 Debugger: videoinfo cmd: return feedback on success 2019-09-23 01:50:18 +01:00
tomcw
604aff4bbb Debugger: added help for videoinfo cmd 2019-09-22 16:53:38 +01:00
tomcw
b3eb789e03 Debugger: added BG_INFO_WATCH|ZEROPAGE enums 2019-09-22 15:59:19 +01:00
tomcw
b5b1deeead Debugger: added & used consts for video-scanner info 2019-09-22 15:28:10 +01:00
tomcw
7261c79054 Debugger: minor refactor for VideoScanner info 2019-09-22 15:11:14 +01:00
tomcw
f84c985751 Debugger refactor: moved ConfigColorsReset() from Debug.cpp to Debugger_Color.cpp 2019-09-22 11:25:48 +01:00
tomcw
9a0617e889 Debugger: removed the now redundant Debug_UpdatePalette() func 2019-09-22 11:14:32 +01:00
tomcw
3b9dc8d0f7 Merge branch 'master' of ssh://github.com/AppleWin/AppleWin 2019-09-21 16:38:46 +01:00
tomcw
9ee9414bb6 Debugger: show video-scanner's h,v position (at the expense of losing 2 watches). (#666) 2019-09-21 16:37:45 +01:00
tomcw
e4f0a8b8d9 Debugger: fix crash in ParseSymbolTable() due to PR #687 2019-09-17 19:17:30 +01:00
tomcw
3264fd3ee9 Two fixes for the 'char* to std::string' PR #687 2019-09-15 21:26:40 +01:00
tomcw
660c75617b Merge branch 'strings' of ssh://github.com/audetto/AppleWin into audetto-strings 2019-09-15 20:45:05 +01:00
tomcw
506a52f359 Refactor slots & allow empty slots for s1(printer), s6(disk2)
. NB. can't empty s3(uthernet) yet
2019-09-15 20:37:20 +01:00
tomcw
94556b5eaf SSC: Added support for '-s2 empty' to remove SSC from slot-2 (#668) 2019-09-09 22:12:51 +01:00
Andrea Odetti
409634d65f Use a more descriptive variable name.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2019-09-08 21:33:26 +01:00
Andrea Odetti
bd201202cd Some more std::string changes.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2019-09-07 19:37:19 +01:00
Andrea Odetti
be476f9a9c Fix a couple of issues around std::string.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2019-09-07 18:51:07 +01:00
Andrea Odetti
dced4793b7 Next iteration of the string project.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2019-09-07 10:16:51 +01:00
Andrea Odetti
f5f60310c1 More std::strings.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2019-09-07 09:02:39 +01:00
tomcw
300494c470 Mockingboard: only do multi-TIMER1 support update when 6502 interrupts are enabled. (#685) 2019-09-06 19:59:28 +01:00
Andrea Odetti
d5890e8356 Replace some char * with std::string. 2019-09-06 17:34:25 +01:00
tomcw
ed9ae72778 Mockingboard: moved multi-TIMER1 support before the AY access. (#685) 2019-09-05 22:03:56 +01:00
tomcw
11323e2aba Mockingboard: support multiple TIMER1 interrupts, with one for MB reg updates (#685) 2019-09-05 20:42:34 +01:00
tomcw
64bdd7192a NTSC: fixed comment 2019-09-01 17:35:15 +01:00
tomcw
bd16b34514 NTSC: Minor refactor of updateFramebufferColorTVXXXScanline() names 2019-09-01 16:47:48 +01:00
tomcw
65b5330c51 TV video rendering: use prev (not next) line's pixel to avoid artifacts from prev frame! (#650) 2019-09-01 16:38:27 +01:00
tomcw
2f6b24b970 Fixed up the Debug/Release NoDX configurations 2019-09-01 11:28:24 +01:00
tomcw
fe375534cf NTSC: Commit to the improved TV modes. (#650) 2019-08-31 15:02:32 +01:00
tomcw
bad963026c 1.29.1.1: test improved TV modes for #650. Use Ctrl-9 to toggle 1.29.1.0 and 1.29.1.1. 2019-08-30 21:58:03 +01:00
tomcw
7495d0d9cc NTSC: Minor refactor of getScanlineXXX() func names 2019-08-30 16:43:28 +01:00
tomcw
bae7208852 Removed the old EXTEND_14M_VIDEO_BY_1_PIXEL rejected solution for #555 2019-08-29 21:38:00 +01:00
tomcw
2cc0f91fbf Minor: changed a REGLOAD() to REGLOAD_DEFAULT() 2019-08-29 19:19:47 +01:00
Michael "Code Poet" Pohoreski
9e3f7b0ffc
Merge pull request #679 from AppleWin/bug_678_toggle_speed
Bug 678 toggle speed
2019-08-27 08:53:09 -07:00
tomcw
af8257eefc Updated implementation to reflect my comment in #678. 2019-08-26 20:52:40 +01:00
tomcw
d9a15c30da Save-state: fix for loading state not re-asserting pending IRQs for Mouse & SSC. (#677)
NB. Small opt to CheckInterruptSources() to explicitly test sg_Mouse.IsActive() first.
2019-08-26 20:13:52 +01:00
tomcw
94bbc5ec3d Save-state: fix for loading state not re-asserting any pending MB/SY6522 interrupts 2019-08-26 16:52:11 +01:00
tomcw
b54fc8a058 Reverted 8a11feb7 (#650) - missed a bit! 2019-08-26 15:56:34 +01:00
tomcw
521a09e75a Reverted 8a11feb7 (#650) 2019-08-25 19:41:30 +01:00
tomcw
05f86f3e59 Changed _snprintf() to StringCbPrintf() (#268) 2019-08-25 19:21:33 +01:00
tomcw
2f52206e1e Merge branch 'master' of ssh://github.com/beevik/AppleWin into beevik-master 2019-08-25 17:18:23 +01:00
tomcw
e09cd21703 Added experiment code for DirectDraw & WaitForVerticalBlank() - #680 2019-08-25 17:07:08 +01:00
tomcw
1ee2261c60 Improved comments 2019-08-24 12:35:59 +01:00
tomcw
b488961fca Removed comment 2019-08-24 12:11:09 +01:00
michaelangel007
5e9b8fe2ae Set Ctrl-0 Toggle Fastest/100%, Ctrl-3 Always fastest 2019-08-23 19:33:56 -07:00
michaelangel007
32b42b2aeb Add Ctrl-0, Ctrl-1, Ctrl-3 for #678 2019-08-23 08:46:43 -07:00
michaelangel007
93bd7c678f Merge branch 'master' of https://github.com/AppleWin/AppleWin 2019-08-23 07:32:08 -07:00
tomcw
8a11feb739 NTSC TV video modes: adjust y-position by 1 pixel (#650) 2019-08-09 22:58:12 +01:00
Brett Vickers
9e5e21b8c9 Prevent uninitialized value bugs and improve string safety.
This change does two things:

1. Updates the registry APIs to reduce the likelihood of uninitialized
variables.

The code wasn't always checking the return value of registry load operations.
In some cases, this led to uninitialized memory being used, and crashes could
result. For example, LoadConfiguration in Applewin.cpp was using an
uninitialized value for the computer type if no registry variable for the
"Apple 2 type" was set.

New registry reading methods and macros have also been introduced, allowing
default value fallbacks for the cases where a registry variable is not found.
This makes registry access simpler and safer when a default value is known in
advance.

The registry code's style has also been updated to conform with the rest of
the code base (tabs instead of spaces, naming conventions, etc.)

2. Introduces string safety improvements.

A number of code paths have been modified to use safe-string functions instead
of their unsafe counterparts (e.g., strcpy, sprintf).  In the process, some
strings were converted from "char" to "TCHAR". This was done mostly for
consistency with the rest of the code-base.
2019-08-09 13:38:50 -07:00
tomcw
b66e5a2be9 WOZ: Small refactor 2019-08-03 18:21:41 +01:00
tomcw
1af12fbbb1 WOZ: Small refactor to call DataLatchReadWriteWOZ() for any WOZ data-latch access 2019-08-03 18:10:39 +01:00
tomcw
d973fb6b97 WOZ: Added debug dump sector & track functions 2019-08-03 17:51:19 +01:00
tomcw
b770306496 WOZ: #672
. Even disk i/o read accesses will update the data latch
. All disk i/o write accesses will update the data latch
2019-07-30 22:41:28 +01:00
tomcw
7987883847 WOZ: Register .woz extension and improved logging for all extensions. Also updated DELREG.INF and help. (Fixes #671) 2019-07-28 17:13:39 +01:00