Commit Graph

989 Commits

Author SHA1 Message Date
Andrea
30d3269fbf
Remove a few more Win32 memory functions. (PR #888)
CopyMemory, MoveMemory, FillMemory.
2020-12-12 11:09:14 +00:00
tomcw
50a0e81941 Rename ms_pWorkBuffer to m_pWorkBuffer (as it's no longer static) 2020-12-10 21:28:12 +00:00
Andrea
d2a34e1f91
Remove VirtualAlloc, VirtualFree & ZeroMemory. (PR #884)
. Allocation in Memory.cpp: keep VirtualAlloc of size=64KiB (alignment=64KiB) to ease debugging.
2020-12-10 21:08:15 +00:00
tomcw
86851d86e5 YamlHelper: minor change 2020-12-09 20:31:21 +00:00
Andrea
8304c5738f
Fix memory leaks in Yaml parsing (PR #886) 2020-12-09 20:24:36 +00:00
tomcw
65b8f5fdbf CardManager: small refactor 2020-12-09 20:19:49 +00:00
Andrea
0d741d0b9f
Fix memory leak in CardManager (PR #885) 2020-12-06 18:43:18 +00:00
Andrea
59294d9d72
Move CtrlReset() and ResetMachineState() to Utilities.cpp (PR #883) 2020-11-29 21:11:05 +00:00
tomcw
e2d7eb7406 Removed (the now) unused alarm.h 2020-11-29 17:39:52 +00:00
Andrea
7ca547479b
Move Windows related functions to Interface.h (PR #882)
This is not complete as header files from Windows/.. are still included in:

Keyboard.cpp
SerialComms.cpp
Joystick.cpp

But probably these are arch specific and will have to be completely reimplemented elsewhere.
2020-11-29 17:30:06 +00:00
Andrea
93346c215f
Cleanup types and include's to ease GCC compilation. (PR #881)
. Do not include alarm.h as it is not needed.
The code in alarm.h is not complete: all the extern functions are missing and different linkers might complain about this.

. Do not redefine some windows.h types in VICE/types.h as it becomes harder to keep them consistent.
Biggest problem is DWORD_IS_LONG as the best way to define it in linux 64 bit is as an int. Prefer to use StdAfx.h.
2020-11-29 17:22:50 +00:00
TomCh
5d90b64829
Use _stat64() to support file size >2G (PR #880) 2020-11-29 15:48:23 +00:00
Kelvin Lee
4c19069d8b Remove unnecessary conditional compile for _MSC_VER 2020-11-30 01:05:25 +11:00
Kelvin Lee
a7353aa7f1 Use _stat64() to support file size >2G
1. Newer VC runtime stat(), when using 32-bit file size, returns error
   if file size is >2G. For file existence check, using 64-bit file
   size is more accurate as files bigger than 2G would be reported as
   non-existing otherwise.
2. <sys/stat.h> is required for VS2013 or before.
2020-11-29 10:12:03 +11:00
Andrea Odetti
ed178d8b1c Move GetAppleWindowTitle() to Utilities.cpp as it is generic and useful to other archs. 2020-11-28 15:49:19 +00:00
Andrea Odetti
63e5c5c9ff Select a value of the Alpha mask that works at the same time in Windows and Linux (qt / sdl).
In Windows it does not seem to make any difference, so 0xFF is selected for maximum compatibility.
2020-11-28 14:13:20 +00:00
Andrea
3d70a9dd35
Some small changes to ensure code compiles with GCC. (PR #877) 2020-11-27 20:57:35 +00:00
Andrea
bbe88da787
AppleWin.cpp split (PR #875)
. Split AppleWin -> Core with the functionality really needed by the emulator.
. Split AppleWin -> Utilities for generic code not called by other emulator components.
. Split AppleWin -> CmdLine for the command line option parsing.
2020-11-26 21:50:06 +00:00
TomCh
6e166dfff6
Support NSC for Apple II/II+ via F8-ROM (#827 PR #873) 2020-11-25 21:57:34 +00:00
Andrea
c455488b50
Split Frame.cpp to WinFrame.cpp (PR #874) 2020-11-23 19:21:20 +00:00
tomcw
c79abb45eb Renamed DirectVideoInitialize/Destroy() to WinVideoInitialize/Destroy() 2020-11-21 21:13:21 +00:00
Andrea
2a7191f5ce
Split Video.cpp to WinVideo.cpp to remove most of the Win32 specific functions (PR #872)
. Moved DirectInput.cpp/h and WinVideo.cpp/h to a new "Windows" folder.
2020-11-21 20:57:56 +00:00
tomcw
8fbf09d1c7 Fixed minor Coverity issue (CID 1446646) 2020-11-21 17:05:02 +00:00
tomcw
d6a2339ff0 Coverity SA: Fixed the 2 new Impact=High issues:
. CID 1499553: UNINIT
. CID 1499560: OVERRUN (out of bounds access in CmdBookmarkAdd)
Fixed bug in CmdBookmarkClear() too.
2020-11-17 21:31:57 +00:00
tomcw
f35f1e7fda DiskII: only call CpuCalcCycle() at start of disk IORead()/IOWrite() routines 2020-11-14 14:54:39 +00:00
tomcw
6f38260b10 Renamed Applewin.cpp to AppleWin.cpp 2020-11-12 20:59:22 +00:00
tomcw
da383033a1 VS2008: fixed after recent include changes 2020-11-12 20:55:28 +00:00
tomcw
bd1d65ce4f Renamed Applewin.h to AppleWin.h across entire project 2020-11-11 22:12:39 +00:00
Andrea
01ad5d1882
Ensure all header files can be included (in any order) after stdafx.h. (PR #866) 2020-11-11 21:15:27 +00:00
tomcw
9cc49af0dc VS2008 vcproj: added DirectInput.cpp/h 2020-11-10 20:47:25 +00:00
Andrea
8cc04e2b86
Cumulative changes required to enable / ease compilation in Linux with gcc. (PR #861)
Split MouseInterface to isolate DirectInput code.
Avoid overflow in platforms where RAND_MAX is a big integer constant.
Fix include files for gcc (where enums cannot be forward declared).
2020-11-10 20:33:55 +00:00
tomcw
e6e16a3c0b Removed NSC support for II/II+ models. (#827) 2020-11-02 21:41:02 +00:00
tomcw
1e43b331f3 RGB Card support: treat AppleColor card as an alias of SL7 (#851) 2020-11-01 16:39:53 +00:00
tomcw
fb0871672c RGB card support: (#850)
. removed the precondition for enabling the extra RGB DHIRES modes
. changed IOUDIS soft-switch so that it's for //c only
2020-10-31 16:10:18 +00:00
tomcw
e24436f7ec Fixed issue during TRIBU (cycle-accurate demo) if: Config->uncheck 50Hz & OK, but cancel emulator restart 2020-10-25 21:35:17 +00:00
ThorstenB
4543117f81
More clean-up, portability and another debugger fix (PR #847)
Fixed debugger main "data" window behaviour:
. When activating the main data display ("data" command) the cursor keys wouldn't work until the minidump ("md1") was also enabled. NB. The cursor keys should work in the main data window, independently of whether the minidump is active.
2020-10-25 17:27:59 +00:00
TomCh
43455eb4fe
Improved determining path & filename when saving/loading a save-state (#691) (PR #849)
Whenever harddisks/disks are inserted (or removed) and *if path has changed* then:
. Then the internal save-state's path & filename will be updated to reflect the new defaults.
. LoadConfiguration(): Read the save-state pathname from Registry before harddisks/disks.

Also:
. CiderPress: only save pathname on OK.
. Refactored CPropertySheetHelper::BrowseToFile().
. Extended support for -d1,-d2,-h1, etc such that if the param is "", then it will eject/unplug the disk/harddisk.
2020-10-25 17:14:23 +00:00
tomcw
aa322dbd53 Fixed loading a save-state where both Phasor 6522's Timer1s are active (eg. DIGIDREAM demo) 2020-10-18 19:32:18 +01:00
tomcw
37009e287d Renamed enum: VT_COLOR_MONITOR_RGB to VT_COLOR_IDEALIZED 2020-10-17 14:26:33 +01:00
tomcw
a3f5989176 Idealized video: support Double-Hires-40 for FT DIGIDREAM demo 2020-10-17 12:31:44 +01:00
tomcw
4defaa80fb Help docs: updated for RGB card/monitor support 2020-10-15 21:41:14 +01:00
tomcw
cfe482cd52 NTSC: fix rare crash in NTSC_SetVideoMode() after a VM restart 2020-10-11 21:29:26 +01:00
tomcw
6f39869f8c Minor: make Spkr_DSUninit() static 2020-10-11 18:55:28 +01:00
tomcw
1a11c65d37 Replaced global g_CardMgr with a singleton object & GetCardMgr() call. (Fixes #843) 2020-10-11 17:34:44 +01:00
ThorstenB
b0b033da49
Source clean-up, portability and debugger fixes. (PR #842)
And fix two general issues:
- confusing behavior when entering the builtin (mini) assembler mode,
- and also fixes the "cl" (clear flag) command - which was documented, but did not work at all (due to an "interesting" command/syntax conflict...).
2020-10-11 17:14:03 +01:00
TomCh
6125c2b12d
Support for synchronous events (PR #841)
Switched Mockingboard/6522 Timer interrupts & Mousecard's VBlank interrupt to use synchronous events.
This is a linked-list of ordered timer-based event, where only the head of the list needs updating after every opcode.
2020-10-11 16:08:05 +01:00
ThorstenB
7d7aa17a47
Debugger: minor clean-up: compiler warnings, unused variables etc (#840) 2020-10-01 19:55:29 +01:00
tomcw
b5739b862a Adjusted the Config PropSheetPage to widen the Video Mode's combo box.
Renamed a few globals & made static.
Removed a few VS2008 'int to bool' perf warnings.
2020-09-28 20:27:41 +01:00
Cyril Lambin
08458a9d29
Extended support for RGB cards (#819) (PR #837)
Video mode: "Color (RGB Card/Monitor)"
. RGB HGR rendering (no half-dot-shift, no vertical blend)
. RGB DHGR rendering
  - Color 140-mode is a real 140x192 mode with no color fringe (Video7 patent, shows that way on real hardware)
  - Mixed mode: correct transition for Color 140-mode <-> B&W (validated on a real IIc adapter.)
. Complete Féline support (eg. 2 distinct greys)
. Fixed Video7 SL7 inverse text
. Fixed DHIRES mixed mode detection
. NB. Prince of Persia will switch to B&W (560-mode) when going from HGR back to DHGR (same on real hardware).

Video mode: "Color (Composite Idealized)"
. Previously this was "Color (RGB Monitor)" (and before that, the AppleWin 1.25 "Color (Standard)")
. Now this mode does not support the extra RGB cards' video modes
2020-09-27 14:09:02 +01:00
tomcw
b9d80a0317 Save-state ANSI support: small refactor for new/delete char buffers (#838) 2020-09-25 21:25:46 +01:00
tomcw
09a5ac4761 libyaml supports UTF-8 and not accented ANSI characters - so convert to UTF-8 (Fixes GH#838) 2020-09-25 18:17:03 +01:00
Cyril Lambin
3e33d7f6d1
Added support for RGB cards & Video7 SL7 RGB extra modes (#819) (PR #826)
Currently only Apple Color Card and Video7 SL7 are supported.

The RGB card can be defined through the command-line:
-rgb-card-type: apple (default), sl7, eve, feline

The default text color can be modified when SL7 is selected. On the actual card this was defined by dip switches.
-rgb-card-foreground <color>
can be 6 (blue), 9 (amber), 12 (green) and white (15)

Details:
. Added RGB FG/BG Text + mixed GR mode
. Added Color Text80
. Added Duochrome HGR
. RGB card defaults to Apple Color Card + B&W text
2020-09-01 21:32:44 +01:00
TomCh
ef913fe827
Removed 65d02 and used the regular 65c02/6502 headers instead (PR #825)
Removed 65d02.h and reconstructed this code using a combination of existing 6502.h/65c02.h and extra C Pre-Processor macros to include (or omit) the extra heatmap functionality.

We still end up with a normal 65c02 instance and also a debug 65c02 instance, but both will derive from the same 65c02.h file (+ same for the 6502 normal/debug instances).

Also:
. Added cpu_heatmap.inl for the built-in debugger's read/write operations.
. Support CpuRead/Write() from Z80 to hook the heatmap r/w.
2020-08-31 10:03:29 +01:00
tomcw
06f8ccb384 MB false read of 6522: limit to only the no-PX variants 2020-08-22 16:06:26 +01:00
tomcw
59d0d5bdfa UI: Ctrl+F3/F4 will also show drive pop-up menu (#817) 2020-08-22 14:58:06 +01:00
tomcw
24e6b7c132 1.29.14.0 tweak:
. 50Hz, PAL Monitor: blank out stale pixel (ANSI STORY, end credits)
. Added new test switch: -video-mode=composite-monitor
2020-08-18 17:40:56 +01:00
tomcw
bcd8fcc726 Fixed multi-zip regression (numTracks was getting zeroed). (Fixes #824) 2020-08-17 20:24:53 +01:00
tomcw
039ad8a547 Small refactor for app window's title 2020-08-17 19:26:06 +01:00
tomcw
221e35edc7 Changed app window's title to reflect NTSC or PAL for 'Color (xxx Monitor)' 2020-08-17 18:29:18 +01:00
tomcw
4d611c20d9 Added a few comment-refs to GH#763 2020-08-17 18:15:41 +01:00
TomCh
21b0fbf97a
Support for PAL killing color-burst during TEXT video mode (#763, PR #823)
tested with:
. AppleWin-Test repo -> Tests-Various.dsk (tests E, F)
. FT's ANSI STORY & TRIBU demos
2020-08-17 18:11:31 +01:00
tomcw
e69a54832c Added a comment for the leak fix 2020-08-16 18:44:21 +01:00
tomcw
caf90c427a Fixed GDI Object DC leak & crash when app window is minimised (#820) 2020-08-16 18:34:57 +01:00
tomcw
225296635a Uthernet card: added support for Npcap for Win10 (#822)
. log the version of wpcap.dll (Npcap or WinPcap)
2020-08-16 17:05:49 +01:00
tomcw
3651ca0cb8 NIB disk image: added warning if any track's first D5-nibble isn't an addr prologue (#139) 2020-08-05 13:58:17 +01:00
tomcw
b93de29ff1 Fixed the 6502/65C02 false-read of 6522 issue for Willy Byte! (fixes #52) 2020-07-24 19:39:31 +01:00
tomcw
52ff9d5b99 Fixed MB looping sound after 'OK' in Configuration (#813) 2020-07-17 22:53:17 +01:00
tomcw
b35ba0b04a RESET: reset annunciators for //e and Base64A 2020-07-07 20:54:46 +01:00
tomcw
f1f16d4fc2 Minor tweaks for previous Base64A merge:
. added dedicated IsCopamBase64A() function
. added comments to identify Copam Base64A specific vars
. added some missing const keywords
2020-07-06 20:52:31 +01:00
Iván Izaguirre
36e318e344
Support 'Copam Base 64A' - a Taiwanese Apple II clone (#806) (PR #807)
. It's an Apple II plus clone.
. The 48K bank-switched Rom is controlled with AN0 and AN1.
. The character generation video Rom has two full character sets: English and German (F10 to switch).
NB. At the prompt, "TEST" runs the ROM self-test.
2020-07-06 20:24:16 +01:00
tomcw
6dd129532f Fixed mem leak after a VM restart. (Fixes #809) 2020-07-04 21:39:56 +01:00
Andrea
82c09abd54
Minor fixes (#805)
* Add missing Riff.h include and fix const correctness of arguments.
* Cosmetic improvements to Perf breakdown in LogPerfTimings().
* Logging - removed unnecessary cast.
2020-07-01 21:08:18 +01:00
tomcw
951f7f5258 Minor: added missing static keywords 2020-06-28 10:25:59 +01:00
tomcw
9bf0cf98d4 Fixed crash in debugger's PrintGlyph() when restarting AppleII virtual machine
Fixed mem leaks for debugger's Font & Mem frame buffers
2020-06-28 10:18:59 +01:00
tomcw
60d54d6f3b Fix for 'IRQ occurring on last cycle of opcode' not always true. (Fixes #796)
. FT demo MAD2.DSK - original version now correctly crashes at start of full-screen scroller
. FT demo MADEF.DSK - graphics glitch on vertical edge where it transitions from GR to HGR mode
2020-06-27 19:29:29 +01:00
tomcw
e48ea095a3 Debugger: PrintGlyph() - removed magic numbers 2020-06-27 15:46:28 +01:00
Andrea
fe62271ef9
Some minor c++ correctness changes. (#803)
Added const, static forward declaration.
Removed some unneeded header files.
2020-06-27 14:32:09 +01:00
tomcw
42d265a25c Fixed timing for 6502 opcodes: rol abs,x; lsr abs,x; ror abs,x. (Fixes #801) 2020-06-19 19:40:23 +01:00
Cyril Lambin
af9568cbbf
Improved debugger video performance (#800)
Removed very slow BitBlt() GDI calls in PrintGlyph() - now 18x faster in Release config!
. Replaced GDI call FillRect() with new FillBackground()
. Added missing bitmap declarations in GetDebuggerMemDC()
Fixed AdditionalIncludeDirectories for Debugger source files
2020-06-17 21:56:35 +01:00
tomcw
c9ef6ecee1 NoSlotClock:
. added to save-state (v6) via a new unit type 'Miscellaneous'
. added cmd line switch '-no-nsc' to configure AppleII without an NSC
2020-06-10 20:56:00 +01:00
tomcw
f491bb19cd Improved fix for 80eb330
. During init: only need to call IoHandlerCardsOut() when loading save-state
. MemInitialize() -> MemReset() -> ResetPaging() which always inits memmode
2020-06-08 22:06:17 +01:00
tomcw
6d85c1b6bd NSC: Reset NSC on power-cycle. (Fixes #751) 2020-06-08 21:11:12 +01:00
tomcw
80eb33012f Fixed an edge case when switching from IIe to II+, and the Mockingboard wasn't visible in memory.
. Due to INTCXROM still being set and it not being excluded when in II+ mode.
. Fix is to reinit memmode on restart and only check INTCXROM if IIe or above.
2020-06-07 18:25:34 +01:00
tomcw
41203f5d2d Fixes for image loading switches (-d1,-d2,-h1,-h2,-s5d1,-s5d2):
. support relative paths (#663)
. updated the current directory with the path for each loaded image (#663) & saving state (#691)
. added a new switch -current-dir <path>
2020-06-06 16:32:58 +01:00
tomcw
f238be27e8 Use SetCursor() to busy when loading state file. (Fixes #781)
Fixed typos in dbg-bookmarks.html.
2020-06-03 20:26:06 +01:00
tomcw
f801655b23 Debugger: DrawFlags() - refactored to remove unused 3rd param 2020-05-30 14:41:14 +01:00
TomCh
037c338303
Debugger: Extend 'tf' command to add cycles for trace (#783) (PR #793)
Also don't call DrawFlags(), speeding up tracing by 10 times.
Authored-by: Nick Westgate
2020-05-30 14:12:36 +01:00
tomcw
4f340fa264 Revert previous fa04797:
. again '-s7 empty' doesn't persist this state to Registry/conf.ini
. consistent with other '-sn empty' cmds
2020-05-29 21:58:53 +01:00
tomcw
fa047974ec Fixed cmd line '-s7 empty' so that 'Harddisk Enable' is updated in Registry/conf.ini file
. this matches -s7-empty-on-exit and the -d1,-d2,-h1,-h2 switches
2020-05-28 21:41:15 +01:00
tomcw
b132b0d0a8 Added cmd line switch: -power-on 2020-05-26 21:37:56 +01:00
tomcw
eed3182bef Fixed cmd line regressions: (#790)
. -s7-empty-on-exit wasn't being recognised
. -d1, -d2 weren't saving the 'Last Disk Image 1/2' & 'Starting Directory'
2020-05-25 21:59:26 +01:00
tomcw
cca3ecd436 Full-speed: fix for occasional speaker clicks 2020-05-23 22:34:15 +01:00
TomCh
a8671f7a6a
Debugger: Extend 'cycles' command to do (partial) timings relative to a user-specified instruction (#787) (PR #789) 2020-05-23 18:40:12 +01:00
tomcw
13a4043118 Added a new PerfMarker class: used to instrument emulation sub-systems and log timings (#788)
To enable this uncomment the #define LOG_PERF_TIMINGS in AppleWin.h.
2020-05-23 16:41:19 +01:00
michaelangel007
2b9adac338 Debugger: 2.9.1.0 Bookmarks now have their own indicator 2020-05-19 08:37:15 -07:00
michaelangel007
dfbb63934c Debugger 2.9.0.18 2020-05-19 08:29:23 -07:00
michaelangel007
0c0e2f6bdd Debugger fixes for 2.9.0.16 and 2.9.0.17 2020-05-19 08:28:44 -07:00
tomcw
58df8ea1e6 MB/SSI263 - alt logging via LOG_SSI263B 2020-05-10 18:21:34 +01:00
tomcw
61a3f06172 MB/Phasor: SSI263 - improved save-state for different speech cards' IRQs 2020-04-26 18:07:38 +01:00
tomcw
358573a9db Fix for when joystick not connected (fixes #778) 2020-04-26 16:19:50 +01:00