Commit Graph
59 Commits
Author SHA1 Message Date
tomcw 8219799b83 Minor UI tweaks:
. Don't assume slot 6 has a Disk II card
. Disk II config dialog: check the 'show status' box regardless of slot
2026-04-03 15:18:44 +01:00
tomcw 0ed8d3407e Fix for AppleWin's window width (for Min Version = 6.00) (#1438)
Change: Win32 builds: Minimum Required Version = 6.00 (Vista)
2025-10-19 12:13:42 +01:00
tomcw 14323064de When using -debugger-auto-run <file.txt> (to set breakpoints), then we want to be MODE_STEPPING when leaving MODE_LOGO 2025-10-18 16:27:40 +01:00
TomCh 1a68914a4a Fix all x64 warnings in the AppleWin proj (PR #1434)
NB. 10 warnings still in libyaml proj (but there's no upstream update - so will leave as-is).
2025-09-22 21:25:35 +01:00
Andrea 11fcaa63d1 Synch linux branch (PR #1432)
. Debug.cpp: fix compilation errors.
. Remove obsolete __attribute__((regparm(1))) & WATCOM.
. Support MINGW32.
. Replace sprintf with StrFormat().
---------
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2025-09-18 10:40:02 +01:00
tomcw d35bb2bcde For Drive1/2 pop-up menu: fade out all audio whilst menu is active. (fixes #1407) 2025-06-13 20:23:25 +01:00
Andrea 75cc573d0e Make ProDOS utils cross platform. (#1406)
* Move ProDOS utils to separate file.

Signed-off-by: Andrea Odetti <mariofutire@gmail.com>

* Use std::vector to fix and avoid memory leaks.

Signed-off-by: Andrea Odetti <mariofutire@gmail.com>

* Remove TEXT and TCHAR.

Signed-off-by: Andrea Odetti <mariofutire@gmail.com>

---------

Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2025-06-13 08:51:59 -07:00
tomcw 04a6c6ec6c Fix for static_assert(): requires message parameter pre-C++17 2025-05-31 10:17:53 +01:00
tomcw 00ab15ddaf Fix focussing issue for AppleWin.chm, when it overlaps the AppleWin window. (#1403) 2025-05-30 22:19:18 +01:00
Michael "Code Poet" Pohoreski 3d0ef63537 Extend context menu for disk buttons (Disk image QoL) (#1363, PR #1364)
Persist menu selection for bitsy.boot, bitsy.bye, basis & prodos.sys to Registry.
Add new cmd line '-bootsector <pathname>'.
Add BootSector (code & binary).
Add OS (basic17.system, bitsy.boot, quit.system; DOS33 & ProDOS2.4.3).
Update help doc:
. add workflow info to ddi-create.html.
. add new ddi-sizes.html, and ddi-advanced.html (for advanced workflow).
2025-05-22 22:44:28 -07:00
TomCh 839c493b67 Support IIe aux slot: 80-col(1KiB) card via generic read ptrs (#1341, PR #1391)
Better support the IIe's aux slot when it's empty or has the 80-col(1KiB) card.
- any h/w using this alternate CPU emulation, (ie. aux=empty or 80-col(1KiB)), then the 'mem' cache is completely bypassed.
Debugger: change all the direct 'mem' accesses to go via ReadByteFromMemory().
TestCPU6502: test the alt CPU emulation code too.
2025-04-03 21:10:02 +01:00
Andrea acbef19489 Remove TEXT() and _T(). (PR #1379) 2025-02-13 20:48:37 +00:00
tomcw bd87cae92c Improve logging: for -fs-width/height=x: for each display resolution, after the WxH also output the aspect ratio. 2025-02-08 16:03:41 +00:00
Andrea 168e868677 Remove TCHAR and <tchar.h> (PR #1373)
. Replace TCHAR -> char.
. Remove <tchar.h> and related functions.
2025-02-08 11:09:09 +00:00
Andrea 3a3663d9d6 More cleanup (PR #1357)
SoundBuffer: move Windows only flags to DXSoundBuffer.
Remove out of date _MSC_VER checks (pre-VS2019).
2025-01-04 12:35:31 +00:00
Andrea d7918d9ac9 A few miscellaneous cleanups. (PR #1355)
Move DSXXX function to a more specific location.
. DSAvailable() is not implemented in SoundCore.
. DSInit() & DSUninit(); are only meaningful in Windows.
SoundBuffer: use plain C++ to clean it up as opposed to COM interfaces.
. which are only relevant to the Win32 implementation.
Remove 2 obsolete FMT macros.
NTSC: load bitmaps by resource id.
SoundBuffer: make creation of a SoundBuffer an atomic operation.
Fix 2019 solution.
2025-01-02 21:08:55 +00:00
TomCh 16b2cf329e Support IIe aux slot: empty or with 80-col(1KiB) card (#1341, PR #1351)
Add new command line switch: -aux <empty|std80|ext80|rw3>
Add 6502/65C02 x normal/debugger alt read support for CPU emulation (#1353).
Fix bug in MemReadFloatingBus() reading from mem[] - no good, if MF_AUXREAD is set.
Support odd 80-col text video mode when aux slot is empty:
. add a new videoMode flag for VF_80COL_AUX_EMPTY.
Correctly support 80COL & DHIRES soft-switches when aux slot is empty or with std80 card.
Support VidHD's SHR with -aux <empty|std80>.
Save-state: support aux slot empty or with std80 card.
2024-12-30 21:39:16 +00:00
Andrea 35f176e4d8 Replace DWORD -> uint32_t. (PR #1350)
Some have been left where tightly coupled with the Win32 API.
2024-12-21 12:32:00 +00:00
tomcw d3521ffe90 TRK/SEC UI: fix to show sector in later ProDOS versions (#1215) 2023-07-01 21:48:50 +01:00
Michael "Code Poet" Pohoreski e1b0b20aad Debugger DISK INFO QoL (#1212)
* Bump debugger version 2.9.1.19

* Cleanup

* Debugger: Update DISK INFO to display disk info across 2 lines of text

* Debugger: Fix ConsolePrint() to wrap long lines of text

* Debugger: Update DISK INFO to show last nibble for non WOZ floppy image

* Replace optional pointer with reference in GetCurrentState()

* Add Log.h to Disk.h

* Cleanup GetCurrentState()

* Cleanup whitespace

* Add single line output for DISK INFO foundation. Still need CONFIG DISK #

* 2.9.1.21 Added: DISK INFO [#]
2023-04-28 16:28:49 +01:00
TomCh 71c67cf132 Refactor Mockingboard into a class (#1171)
Mockingboard or Phasor cards can be inserted into any slot.
Change Config->Sound to that slots 4+5 to be individually selected for the 3 soundcard types.
Add MockingboardCardManager class to manage multiple cards and mix the sound buffers.
2023-01-28 18:15:28 +00:00
tomcw ad8f43d416 Minor fix for diskii T/S status 2023-01-02 09:14:49 +00:00
TomCh 8cd51ba155 Show Disk II Slot 5 status (#1134, PR #1137)
. In 2x windowed mode: always show slot 5 Disk II LEDs.
. Add tooltips for slot 5/6 track/sector info (d1 & d2) - shows dec/hex & fractional track position.
  - but this track/sector info is now on a UI toggle in the Config -> Disk tab.
. Debugger: add 'DISK SLOT n' - to set current slot of Disk II card
  - ie. support 'DISK INFO' for slot 5
2022-11-17 21:08:11 +00:00
tomcw 4a7f05ed36 Full-screen: Retain uniform x and y scaling, unless user specifies a full-screen resolution (#1121) 2022-09-24 17:13:09 +01:00
Andrea 6a5ea92a4e Uthernet II: add virtual DNS feature (PR #1097)
Uthernet II: add extended feature to virtualise DNS requests.
. This allows pure TCP/UDP sockets to run *without* MACRAW requests (and so without libpcap).
. Raw sockets will not work.
. Add configuration for Virtual DNS.
libpcap: ensure all functions check if the library is loaded before using it.
Uthernet 1: do NOT overwrite tfe_cannot_use as it should only reflect the availability of npcap on *this* system.
Add Copyright notice, and mention Virtual DNS in html.
2022-05-08 16:26:01 +01:00
TomCh b4b29e1ef5 Refactor ParallelPrinter.cpp/h as a C++ class (PR #1067)
Add command line:  -s1 parallel.
NB. Only a single Parallel Printer card is supported, and currently it's restricted to slot 1.
2022-03-18 22:04:34 +00:00
Andrea 12d1a0e1fe Card: cleanup interface. (PR #1059)
1) Remove Init()
2) Call Reset() via CardManager
3) Call Destroy() via CardManager (only used by Disks/Harddisk) on WM_DESTROY

The only "real" changes are in CSuperSerialCard: ensure destructor cleans up and remove Destroy().
2022-03-11 22:17:03 +00:00
Andrea 9f8c4d99af Add Uthernet II support and make Uthernet I a Card. (PR #1047)
. tfe.cpp renamed to Uthernet1.cpp.
. add class NetworkBackend: common to both U1 and U2 cards, and abstracts Windows/Linux backends.
. modernise error message if WPCAP.DLL is not installed.
2022-02-27 17:26:48 +00:00
Kelvin Lee 253a59fde6 Replace sprintf_s() and wsprintf() with StrFormat(). (PR #1041)
And these Debugger related:
. Improve FormatAddress() and GetSymbol().
. GetSymbol(), FindSymbolFromAddress(), FormatAddress() are changed to use std::string instead.
. Remove static variable (not nice) in FormatAddress().
. GetSymbol() returns std::string reference instead of pointer.
2022-02-26 17:54:06 +00:00
Andrea 48dd638d33 Synchronize Linux build. (PR #1037)
. remove OutputDebugStringA()
. push changes to StdAfx.h
. mention g_strSaveStatePathname in the error message for loading save-state
2022-02-14 20:37:18 +00:00
Kelvin Lee 9a3832084a Simplify the common combination of sprintf() and OutputDebugString() (PR #1031)
- Update LogOutput() and LogFileOutput().
- Add StrFormat() to produce std::string out of snprintf() & add StrFormat.cpp to projects.
- Add PTRDIFF_T_FMT in parallel to SIZE_T_FMT to StdAfx.h, for completeness.
- In Log.cpp, changed to get timestamp using posix functions.
- Removed TCHAR usage throughout - simply use char.
2022-02-13 21:37:05 +00:00
tomcw 83e56924f7 WM_CREATE: remove CpuCreateCriticalSection(), since done in SY6522.Reset() 2022-02-13 12:37:33 +00:00
tomcw b519031de4 WM_CREATE: call CpuCreateCriticalSection() instead of CpuInitialize() 2022-02-12 19:11:34 +00:00
TomCh f7c6ef397c Split 6522 out of MB code and into own class (PR #1028)
NB. Update CpuInitialize() & CriticalSection creation:
. call CpuInitialize() on WM_CREATE to create CriticalSection
. needed as MB_Initialize() needs CriticalSection
2022-02-05 18:48:36 +00:00
TomCh 443545b0f6 Support SHR video modes with a VidHD card (#997, PR #1004)
Support VidHD in slot 3 (via Config GUI or '-s3 vidhd') for SHR video modes only.
- AppleWin window is slightly enlarged when VidHD card is inserted.
Support IIgs 320x200 (and fill mode) and 640x200 video modes.
Debugger: add 'shr' command to view video
CUI: Allow user to specify width & height (for full-screen); and allow separate x,y scaling in full-screen mode.
2021-11-30 21:41:02 +00:00
TomCh ff7c9dc185 Make harddisk a class (#995)
. Add user-protection when unchecking HDD controller (as images aren't restored on a 'cancel')
. Fix possible crash when removing (via Config->Disk) either Disk2 card(s5) or HDD card(s7), then cancelling during emulation
. Fix m_buf[] size
2021-11-01 20:12:42 +00:00
tomcw 18f5fafb30 DiskII: Remove superfluous IsDiskImageWriteProtected() 2021-10-18 21:13:37 +01:00
tomcw 7086ea5208 Full-screen / resolution change: fix display flicker. (Fixes #965) 2021-06-19 15:06:04 +01:00
tomcw f076986c04 Cmd line: Changed -fs-height=<best|nnnn> so it doesn't change the resolution when not full-screen (#876)
. NB. whenever switching back to non-full-screen, then it will restore the default desktop resolution.
. Allow -no-full-screen to be placed before -fs-height=<best|nnnn> (previously it only worked when placed afterwards)
2021-05-31 16:09:39 +01:00
Andrea cdf1cb9106 Remove usages of g_hFrameWindow and g_hInstance from core emulator files. And Resource related Win32 functions. (PR #915)
. Win32Frame: remove WM_USER_RESTART.
2021-01-19 20:37:43 +00:00
TomCh daa0675694 Pravets refactor: move all specialisations into new Pravets class. (PR #914)
Mainly for keyboard & printer specialisations.
2021-01-17 10:48:06 +00:00
Andrea 61db149eab Move last remaining globals from WinFrame.cpp to class Win32Frame. (PR #913) 2021-01-16 21:57:28 +00:00
Andrea 816e22524f VideoReinitialize(): remove default arg & refactor out common code (PR #911) 2021-01-13 22:02:48 +00:00
Andrea 6cffb30330 FrameBase: some changes to ease implementations (PR #910)
. simplify the interface FrameBase to make it easier to implement it for different cases (remove HDC and make parameters more explicit)
. remove functions which are only called on a Win32Frame (in which case a cast is guaranteed to succeed)
. otherwise there is the risk that every FrameBase implementation wants to add its own variants.
. FrameBase::FrameRefreshStatus() simplify implementation: pass all flags explicitly
2021-01-10 16:33:06 +00:00
Andrea 159cde7d64 Video & FrameBase: better split (PR #908)
* Video / FrameBase: move arch specific code to FrameBase.
* Video::Initialize & SetFrameBuffer.
Ensure initialization and SetBuffer can only happen in the right order.
* Video: move virtual functions to FrameBase.
With these changes all the virtual functions are in FrameBase and Video gets closer to be (only) the Apple ][ Video device.
* Move a few more functions from Video to FrameBase (snapshot related)
Now, the inclusion is one way with Video *not* including FrameBase.
* FrameBase::VideoRefreshScreen move Video related code to Video.
And only leave management to FrameBase.
2021-01-03 16:21:24 +00:00
Andrea 9d7aa7d309 Move VideoRedrawScreen() to Video. (PR #904) 2021-01-01 12:42:24 +00:00
Andrea d0cd7ca090 WinVideo: share some generic code (PR #901)
* WinVideo: move some generic functions back to Video.

Introduce a new virtual function (VideoPresentScreen) to draw the video buffer to video memory.

* Move Win32Frame::VideoRedrawScreen() to FrameBase as it is generic.
2020-12-29 21:30:17 +00:00
TomCh 3aa5750dcf Make Video.cpp and WinVideo.cpp into a dependent class hierarchy (PR #898)
. class hierarchy: WinVideo IS_A Video (ie. WinVideo is a subclass of Video)
. GetVideo() singleton instance of WinVideo in AppleWin.cpp, exposed via Interface.h
2020-12-28 16:25:29 +00:00
Andrea b8296e6c9c Frame.h: merge into Video.h. (PR #896)
. The functions GetFrameBufferXXX() have been moved next to g_pFramebufferbits.
2020-12-27 19:01:35 +00:00
Andrea e27879ac99 Move interface into a class FrameBase. (PR #893)
. Move the Win32  implementation into Win32Frame.
2020-12-24 15:08:50 +00:00