Commit Graph
103 Commits
Author SHA1 Message Date
Kelvin Lee 3e8054b462 Replace BOOL (almost all) with bool (PR #1509)
. Remove uses of !!
2026-07-26 21:49:53 +01:00
Kelvin Lee 8193cc1fd1 Remove void argument lists (PR #1505) 2026-07-05 16:43:36 +01:00
Kelvin Lee 926c592f75 Replace some BOOL usages with proper bool (PR #1500)
1. Registry functions
   The set of functions are changed to consistently use bool arguments.
   The macros are changed to inline functions to improve type checking.
   RegSaveValue() are overloaded with help of templates to reduce
   typecasting at call sites. For instance, bool value would be converted
   consistently instead of relying on call sites to convert bool to int values.
2. Memory functions
   BOOL usages were unnecessary. Mostly internal usages which can simply be bool.
3. FrameBase
   Some member variables are changed to bool.
   BOOL was used because of those Registry functions.

Additional changes:
- Some expressions are forced to be bool when assigning to bool variables.
2026-06-06 14:12:42 +01:00
Andrea 56168d4132 Fix crash when a HD card is on a slot != 7 (PR #1498)
* Snapshot_GetDefaultFilenameAndPath(): fix segfault. SLOT7 -> i
* Disk & HardDisk: tidy up casts and iterations.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2026-05-17 19:13:11 +01:00
tomcw 0f6bf4e171 Slots config for HDC: (#1470)
. Support HDC firmware selection from combo: auto, SP, BLK2, BLK4 modes
2026-04-18 12:31:04 +01:00
tomcw 17b65ffd8a Slots config:
. On selecting a new card in a slot, then reset to the card's default options
. On opening Config dialog, reset config for empty slots
. On HDD insert: check for dup image-name against all other 7 units
2026-04-18 10:46:54 +01:00
tomcw ef8eef395b Rename cards: Disk II, Hard Disk Controller & Z80 SoftCard 2026-03-13 20:50:22 +00:00
tomcw 3fa34a3bdf Minor refactor for many GetSnapshotCardName() 2026-03-13 20:20:02 +00:00
TomCh 80ec6e5545 Improve Configuration GUI for better slot/card selection (#853, PR #1462)
. Add PropSheetPage: Slots (and include 'Reset to Default')
  - include config options for some cards
. Remove PropSheetPages: Sound & Disk
. Config page: refactor and add 'Reset all to Default'
. Input page: refactor
. Advanced page: refactor
2026-03-07 22:00:07 +00: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
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
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
TomCh d6c1654e97 Fix SmartPort Status cmd when reading status to aux mem (#1319, PR #1366)
. Use CpuWrite() instead of directly writing to 'mem'
. Check writes don't hit I/O space or ROM
2025-01-15 21:24:17 +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 7c6ec3dbf0 Add cmd line option (for testing): -load-state-ignore-hdc-fw 2024-11-03 19:02:01 +00:00
TomCh 964a5d5198 Oz-DOS and Format command support (#88, PR #1337)
Support FORMAT cmd:
. HDC firmware: byte $FE, b3=1 (format supported)
. HDC firmware: allow both SmartPort and BLK FORMAT cmd (and check that SP FORMAT only has 1 parameter)

SmartPort Controller:
. Format will just zero all blocks (if not write-protected)
. Write cmd: if write-protected return NOWRITE
. SP Status cmd: 'General Status': set format-allowed & write-protected flags

If HDD image is read-only then support as write-protected.
. On Insert() setup m_bWriteProtected flag correctly
2024-11-02 11:39:49 +00:00
tomcw f6d0c0088c HDC: Improve logging 2024-10-16 21:41:37 +01:00
Andrea 3033f3445b SaveState: add absolute path for disk & hdd images. (#1290, PR #1294) 2024-10-06 20:44:24 +01:00
tomcw f035a53374 For II/II+/Unenhanced //e use the new SmartPort firmware, but with $Cs07 = 0x3C. (#1319) 2024-08-21 23:01:29 +01:00
tomcw f19822dc08 Bump version: 1.30.19
Fix for loading old save-states with HDC+HD tests
2024-07-28 21:53:33 +01:00
TomCh b371e3436f Support HDC SmartPort firmware for Enhanced //e (#1207, PR #1314)
Added new SmartPort Harddisk Controller (HDC) firmware for Enhanced //e. (@burniouf)
. remove the old DOSMaster entrypoints.
. firmware ID byte (at $FE) defaults to 4 ProDOS block devices (was 2 with older v2 f/w).
Enhanced //e defaults to using SP f/w, and older Apple II's still use the older v2 f/w.
Support up to 8 units per HDC (currently limited to 4GiB capacity for each unit).
Save-state: save HDC firmware in state file.
New slot-specific switches to configure each HDC's firmware: -s<N> -hdc-[sp|bm2|bm4].
New switch to select old non-SP firmware for all HDCs: -hdc-firmware-v2.
2024-07-28 16:12:36 +01:00
tomcw 9c1304686c Add (debug) cmd line switch: -hdc-firmware-v1 (#1277)
. use this to force all attached HDCs to use the old v1 firmware
2024-03-02 21:16:28 +00:00
Peter Ibbotson 2cbecdda68 ProDOS HDD Controller firmware returns volume size in Y:X for STATUS command (PR #1272)
* New command line option to force a size for autoexpanding use.
* New HDD Controller firmware uses a separate v2 name and folder.
* Harddisk.cpp now loads HDD Controller firmware v2 by default.
* Save-state for 'Generic HDD' bumped to v4
2024-02-06 21:32:30 +00:00
Andrea 2759527f0d Remove some StringCb* functions and fix assertion. (PR #1239)
. Return an error for an invalid .bin image.
2023-06-17 20:41:48 +01:00
tomcw d612972e6c Add command line support for hard disk controller (hdc) in slot-5 (#1033)
. -s5 hdc
. -s5h1 <pathname>
NB. No GUI config support, so no way to plug/unplug HDDs.
2023-02-26 20:42:21 +00:00
Andrea b2926390c8 Remove unused includes. (PR #1178) 2023-02-05 21:04:45 +00:00
tomcw bb56b99af5 HDD: change writes so they are done in units of PAGE_SIZE(256B) to match reads
. making it easier to reason about DMA breakpoints (as they are now consistent for reads & writes)
2022-06-05 19:41:06 +01:00
TomCh 22065c6325 Debugger memory breakpoint support for HDD DMA r/w (#1103, PR #1109)
When the debugger is active (eg. breakpoints enabled) then trap on HDD r/w's that match the BPM[R|W].
NB. the breakpoint will fire after the whole HDD r/w operation has completed.
2022-06-03 15:34:37 +01:00
Andrea 231e6c6d64 Cards: remove special call to InitializeIO() for Disk and Harddisk. (PR #1061) 2022-03-13 15:45:43 +00:00
Kelvin Lee 80f3eaeb91 Various *Name() functions can simply return const std::string& (PR #1049) 2022-02-28 20:52:18 +00:00
tomcw 43b9df253a Fix build errors from PR #1039 2022-02-16 20:14:40 +00:00
Kelvin Lee 1a4e933778 Replace StringCbPrintf() with StrFormat() (PR #1032) 2022-02-15 18:48:20 +00:00
Andrea 7ab65492c6 Load save-state for Cards: improve error messages. (#1025)
. better error message for (unlikely) slot mismatch.
. better error message if load state version is invalid.
2022-01-30 21:25:40 +00:00
Andrea 47f721882e throw std::runtime_error instead of std::string (PR #1011)
+ add more information about location of yaml parser error.
2021-12-18 16:37:28 +00:00
tomcw 651b57fdae HDD: fix for slowdown during r/w block operations
. firmware does busy-wait RMW (rol abs,x)
. the IORead then IOWrite was flipping the LED status each access, with a huge performance penalty!
2021-12-12 11:53:37 +00:00
tomcw 010d3525d3 HDD read: error if reading block to ROM (#1007) 2021-12-11 15:11:13 +00:00
tomcw 1ab0d56558 HDD: remove magic numbers & add GH ref (#1007) 2021-12-10 19:37:58 +00:00
tomcw bb6fa80335 HDD r/w: error if r/w overlaps with I/O memory
. break to debugger if single-stepping
HDD write: support memory accesses across 64KiB boundary
2021-12-09 21:22:13 +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
Andrea 0b2104cc89 Card::Save/LoadSnapshot (PR #1003)
Add 2 virtual methods to Card to load and save snapshots.
2021-11-25 20:23:21 +00:00
tomcw abc631432d HDD: fix edge-case for old save-state m_buf_ptr 2021-11-15 20:26:53 +00:00
Andrea 8662a99179 Add InitializeIO() to Card and CardManager (PR #999)
. Card::InitializeIO() is pure virtual
. CardManager::InitializeIO() initialises all cards
2021-11-11 21:45:55 +00:00
tomcw 6282790c3d Add comments to both Harddisk.cpp & the firmware code about 'sta abs16,x' false-reads, etc.
Harddisk.cpp: Fix typos and update the notes on the r/w commands' operation.
2021-11-11 21:20:54 +00:00
TomCh 5ed901f720 Slot-independent HDD firmware (#996, PR #998)
. Move the 'read block' command into the emulator - to mirror the write command
. With emulated time to do the DMA for the r/w block command
2021-11-09 21:04:57 +00:00
tomcw d96ed5b8c5 Refactor: move m_slot into Card class 2021-11-01 21:01:28 +00:00
tomcw 67b3c28833 Refactor: remove slot from InitializeIO() calls for card objects 2021-11-01 20:39:26 +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
TomCh ed298b4fd9 Improve save-state card management (PR #983)
Initially all cards are removed before loading save-state.

Use new Registry "Configuration/Slot 2" location to save SSC's port name.
Use new Registry "Configuration/Slot 7" location to save HDV's image names.
Use new Registry "Configuration/Slot n" (and "Configuration/Slot Auxiliary") locations to save all other card types.

Command line: -s<slot> (eg. -s7 empty) now get persisted to the Registry.

Only update 'HDV Starting Directory' for slot7 & drive1.
2021-09-17 20:43:10 +01:00
Andrea 4375418506 Move some "char *"to "const char *", and avoid unnecessary c_str(). (PR #973) 2021-07-25 11:55:25 +01:00