Commit Graph

1393 Commits

Author SHA1 Message Date
tomcw 961625721b U2: Improve comment (#1100) 2022-05-20 08:04:49 +01:00
Andrea 60cbbb40db
Uthernet II: 2 fixes and minor changes (PR #1100)
* Enable virtual DNS by default.
* Improve handling of header size:
This fixes an issue in UDP, where it would not take the header size into account when deciding how much to read.
* IPRAW socket. Fix an issue where the header would include "our" IP Address.
The doc is not very clear 5.2.3: they say "destination". But for consistency with UDP (5.2.2) where it seems clear that this is the peer's ip, we replace with the "destination" of the socket, or the "source" of the packet.
* minor tweak: signal with SOCK_SYNSENT that a connection is being established.
* remove Socket::myErrno as it serves no purpose.
It is a duplicate of (sn_sr == W5100_SN_SR_SOCK_SYNSENT).
* add some logging when reading/writing on a closed socket.
2022-05-19 19:30:34 +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
tomcw ccb4582bf9 Debugger: fixed warning (and a typo) 2022-05-01 15:15:09 +01:00
Kelvin Lee 4063611e71
Debugger: replace sprintf() part 7 final - Debug (PR #1093)
- Add ProfileLine_t to take care of the profile line buffer
- Simplify _SearchMemoryDisplay() without using StringCat()
- Simplify CmdOutputPrint() significantly
2022-05-01 15:01:33 +01:00
Kelvin Lee 47ba87a015
Debugger: replace sprintf() part 6 - Debugger_Disassembler (PR #1092)
- Improve FormatCharCopy() to not buffer overflow
- Improve FormatOpcodeBytes() to not buffer overflow
- Improve FormatNopcodeBytes() to not buffer overflow
- Change FormatDisassemblyLine() to return std::string
2022-05-01 14:24:35 +01:00
Kelvin Lee b9308b36ea
Debugger: replace sprintf() part 5 - Debugger_DisassemblerData (PR #1091)
- Change _GetAutoSymbolName() to return std::string
2022-05-01 14:08:45 +01:00
Kelvin Lee 0ab10905e4
Fix a couple of warnings from PR#1090 (PR #1094)
* Fix a couple of warnings from PR#1090
* Fix as suggested and further improvement
2022-04-30 10:53:14 +01:00
tomcw a5c41dd8ca Uthernet: check pcap_dispatch() for -ve (error) result too (#1095) 2022-04-29 21:03:25 +01:00
tomcw 93ea5b3e60 WOZ: Improve reading write-protect (#1078) and remove 'm_resetSequencer' var 2022-04-23 18:13:15 +01:00
Michael "Code Poet" Pohoreski 777d5f6807
Merge pull request #1090 from kiyolee/replace-sprintf-part-4
Debugger: replace sprintf() part 4 - Debugger_Display
2022-04-22 08:51:14 -07:00
Michael "Code Poet" Pohoreski d4476ac4e7
Merge pull request #1089 from kiyolee/replace-sprintf-part-3
Debugger: replace sprintf() part 3 - Debugger_Symbols
2022-04-22 08:50:39 -07:00
Kelvin Lee d0360937c1 Fix per review 2022-04-21 00:40:46 +10:00
Kelvin Lee d490b794e9 Fix per review 2022-04-21 00:21:30 +10:00
tomcw cb37dd300b WOZ: Fix for reading write-protect from data register (#1078) 2022-04-18 21:13:41 +01:00
Kelvin Lee 6a342c27ce Debugger: replace sprintf() part 4 - Debugger_Display
- Change ColorizeSpecialChar() to return std::string
2022-04-18 08:46:33 +10:00
Kelvin Lee d83dae3b29 Debugger: replace sprintf() part 3 - Debugger_Symbols
- Change _CmdSymbolsInfoHeader() to return std::string
2022-04-18 08:46:15 +10:00
tomcw 08c730c647 Cmd line: add -wav-speaker <file> & -wav-mockingboard <file> 2022-04-17 16:23:51 +01:00
Kelvin Lee 494aaa04c0
Debugger: replace sprintf() part 2 (PR #1085) 2022-04-17 11:40:21 +01:00
Kelvin Lee a5e8ee31a3
Debugger: Improve some for-loops definitions (PR #1084) 2022-04-17 11:32:03 +01:00
Kelvin Lee f948a9491a
Debugger: Remove unnecessary alias pointer (PR #1083) 2022-04-06 20:37:24 +01:00
Kelvin Lee 6e003fd49f
Debugger: replace prefix 'str' with 's' (PR #1082) 2022-04-06 20:36:24 +01:00
tomcw 5b50d784d7 Fix for previous commit 05a17d9 - pass a c-string 2022-04-03 19:31:42 +01:00
tomcw 05a17d9a69 DiskII: fix build error when LOG_DISK_ENABLED = 1 2022-04-03 19:02:59 +01:00
tomcw e97be1b836 Debugger: fix console output for 'disk info' cmd
. fix to ConsoleBufferPush() which was skipping a char when the line needed to output to a 2nd line
2022-04-03 18:49:36 +01:00
Kelvin Lee 1bcf371309
Debugger: Format changes only (PR #1076) 2022-04-03 18:15:22 +01:00
Kelvin Lee 01b9061482
Debugger: Rename 'pszCategory' to 'pCategory' (PR #1057) 2022-03-29 19:53:51 +01:00
Kelvin Lee 0f9e64b298
Debugger: Format changes only - consistent space after keywords (PR: #1072) 2022-03-27 20:48:26 +01:00
Kelvin Lee 0f7e240841
Debugger: Fix to use logical "&&" for boolean variables (PR #1073) 2022-03-27 20:44:50 +01:00
Kelvin Lee eac88a340d
Fix spelling: "seperator" -> "separator" (PR #1071) 2022-03-25 20:11:33 +00:00
Andrea 500c2e50b6
Uthernet II: handle TCP connection failure. (PR #1070) 2022-03-22 19:39:49 +00:00
Andrea cdd360bdfe
Uthernet II: implement IPRAW sockets. (PR #1069) 2022-03-22 19:30:42 +00:00
Kelvin Lee 2d4f60452f
Add ByteToHexStr() and WordToHexStr() (PR #1064)
- Simplify common StrFormat(), especially in Debugger (changes upcoming)
- Add helpers StrAppendByteAsHex() and StrAppendWordAsHex()
- Add helpers StrBufferAppendByteAsHex() and StrBufferAppendWordAsHex() for plain string buffer
2022-03-22 19:19:50 +00: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
tomcw cbc0c2cf87 Save-state: wrap string in quotes when it contains comment char '#'. Fixes #1066 2022-03-17 20:14:52 +00:00
Andrea a4341aa808
tfesupp: remove all manual string manipulations - just use std::string. (PR #1065) 2022-03-14 21:12:52 +00:00
tomcw 00668c2668 Debugger "help <cmd>" : fix formatting.
And specifically for "help brk" - split help across an extra line for better readability
2022-03-14 20:50:21 +00:00
tomcw 169f0b29e8 Slot 3: make the default (ie. vanilla install of AppleWin) have an empty slot 3.
. Previously it would default to Uthernet, but there are now other slot 3 card options.
2022-03-13 17:19:21 +00:00
Kelvin Lee e38e48e3a6
Debugger: replace sprintf() part 1 (PR #1060)
- Add MemoryTextFile_t::PushLineFormat()
- Replace some sprintf() with PushLineFormat()
2022-03-13 16:37:25 +00:00
tomcw 35ec3fcc7f Fix crash when in Config GUI -> Disk:
. eg. add DiskII in slot-5, cancel, then access $C0Dx
Change IsCardInSlot() to use CardMgr().QuerySlot()
2022-03-13 16:12:01 +00: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 be846efc83
Use clear() instread of erase(begin(), end()). (PR #1053) 2022-03-12 11:19:34 +00:00
tomcw 51149083e6 Add log msg for power-cycle, and improve debug-check for U1 $Csnn I/O access. 2022-03-12 10:16:38 +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 bbe2a7f8ee
Uthernet II card: support save/load state. (PR #1054)
NB. do not attempt to restore a UDP / TCP socket.
2022-03-07 21:08:31 +00:00
tomcw 648f832647 Debugger: minor stop-reason refactor 2022-03-02 21:25:04 +00:00
Kelvin Lee dfb8802763
Replace sprintf() with StrFormat() (PR #1048) 2022-03-02 21:10:41 +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 d2004553f1 Remove old tfe.cpp 2022-02-27 18:06:15 +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
tomcw 514d2adb79 6522: Fix IFR.T2 when counter.b15=1 2022-02-26 21:10:42 +00:00
tomcw c277c5152d Fix a few medium Coverity defects:
1514566, 1063811
2022-02-26 20:23:00 +00:00
tomcw 707993b686 Fix LogOutput() to call StrFormatV() 2022-02-26 18:39:39 +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 9ad6b11cf9
Fix some format errors. (PR #1042) 2022-02-26 17:15:09 +00:00
Kelvin Lee 5a5d0e2df4
Debugger: Simplify console print (PR #1038)
. Simplify console display functions using StrFormat()
. Update TestDebugger that needs StrFormat() now
2022-02-17 22:12:04 +00:00
tomcw 43b9df253a Fix build errors from PR #1039 2022-02-16 20:14:40 +00:00
Kelvin Lee 7ae8907674
Remove unnecessary static std::string variables (PR #1039) 2022-02-16 20:09:10 +00:00
sh95014 8cb3d4c88c
Make DiskGetFullPathName() public. (PR #1035)
Reasons:
. a macOS port needs it for the disk image browser feature.
. for consistency with "class HarddiskInterfaceCard".
2022-02-15 19:02:03 +00:00
Kelvin Lee 1a4e933778
Replace StringCbPrintf() with StrFormat() (PR #1032) 2022-02-15 18:48:20 +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
tomcw 3fe06faf65 MB/6522: remove the legacy g_nMBTimerDevice variable.
Fix ASSERT from previous commit as SY6522.Reset() needs CriticalSection.
2022-02-12 18:42:58 +00:00
Andrea 8bbb85b1e8
SY6522: initialise device. (PR #1036) 2022-02-12 17:29:49 +00:00
sh95014 9459ec261a
Writes to Printer Interface card strobe should not be interpreted as a data byte (#1017 PR #1027) 2022-02-11 20:57:09 +00:00
Kelvin Lee ad73f3ec37
A couple of smallish fixes (PR #1029)
. Fix VS2008 build: int8_t is not defined
. Fix VC compile warning C4800: forcing int to bool
2022-02-05 22:02:26 +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
tomcw 53ab72ce13 Card.cpp: add newline at EOF 2022-01-30 21:37:40 +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
tomcw 24378313c3 WOZ-related changes:
. Significant bit-cells after a gap between latch access upped from 50 to 100 (#1020)
. Minor track sync mod: Update bitStream position for current track before re-calc'ing position for new track (#1022)
. Minor: for DiskII I/O regs $A/B (Select Drive 1/2) update the isWOZ variable to reflect new image-type
2022-01-29 21:27:03 +00:00
tomcw af814347f0 Support AN3 for IIe (#1018)
(Fix IOUDIS for IIc - $C07E/F was backwards)
2022-01-15 18:01:41 +00:00
Andrea 5fbd8339c1
Screenshot: reset file pointer to the end. (PR #1016) 2022-01-07 21:06:24 +00:00
michaelangel007 aa4af5e9d5 Debugger: Fix DF E937 not checking for 0.0 correctly 2022-01-06 10:26:30 -08:00
michaelangel007 65e4859b01 Debugger: Cleanup DB DB2 DB4 DB8 DW DW2 DW4 DF DS 2022-01-06 10:18:38 -08:00
michaelangel007 ae214a1b19 Debugger: Cleanup: Add note about magic number 200 2022-01-06 10:12:37 -08:00
michaelangel007 8667c0eb32 Debugger: Cleanup: Add note about DISASM ID 2022-01-06 10:10:59 -08:00
michaelangel007 182e48e82d Debugger: Add: First pass of DF 2022-01-06 10:10:09 -08:00
michaelangel007 32ee96fb8b Debugger: Cleanup FormatNopcodeBytes() 2022-01-06 08:24:55 -08:00
michaelangel007 7c4855e631 Debugger: Cleanup DISASM_DISPLAY_ enums 2022-01-05 15:42:34 -08:00
michaelangel007 ca1bea3b97 Debugger: Add comment about DISK command 2022-01-05 15:41:47 -08:00
michaelangel007 545c79f132 Debugger: Cleanup: Nopcode_e 2022-01-05 08:55:17 -08:00
michaelangel007 7853c1cfcc Debugger: Cleanup 2022-01-05 08:54:54 -08:00
michaelangel007 8d864c2ab6 Cleanup: getVideoScannerAddressTXT() and getVideoScannerAddressHGR() to make it easier to debug 2022-01-04 23:37:38 -08:00
michaelangel007 98a4481c7d Debugger: 2.9.1.13 Added: CD now detects .. to change to the previous directory and chops the trailing sub-directory from the current path. 2022-01-04 23:37:06 -08:00
michaelangel007 e91c5c0494 Merged 2022-01-04 21:41:08 -08:00
michaelangel007 2a5e156f5e Debugger: 2.9.1.12 Added: New commands HGR0, HGR3, HGR4, HGR5 to see pages /usr/bin/bash0, 0, 0, respectively. 2022-01-04 21:40:23 -08:00
tomcw e14339e282 Registry: fix support for legacy 'Harddisk Enable' key (#1015) 2022-01-04 20:19:21 +00:00
michaelangel007 1613671c11 Debugger: Add note for 2.9.1.11 2022-01-04 11:29:18 -08:00
michaelangel007 5e70f7949c Debugger: 2.9.1.11 Fixed: Right justify signed decimal values. 2022-01-04 11:21:42 -08:00
michaelangel007 f3c0e151ab Debugger: 2.9.1.10 Fixed: Immedate #80 was not showing -128 for the signed decimal value. 2022-01-04 11:20:54 -08:00
michaelangel007 6b11e24a28 Debugger: 2.9.1.9 Fixed: Immediate #0 was showing '#' prefix but not showing zero for the signed decimal value. Changed to show the signed decimal value only if non zero. 2022-01-04 11:20:08 -08:00
michaelangel007 61d6ef58ee Debugger: Cleanup old cruft 2022-01-04 11:17:14 -08:00
michaelangel007 18b4581099 Debugger: 2.9.1.8 Changed: Disassembly window now lists symbol labels and symbol target address from User2 in orange. 2022-01-04 09:28:33 -08:00
michaelangel007 17686df3df Debugger: 2.9.1.7 Added: Extended SYM command to auto-generate symbol names when reverse engineering. NOTE: These symbols will be placed in User2. 2022-01-04 09:27:10 -08:00
michaelangel007 1f5ca5d7e7 Bugfix: Is user requested which symbol table but symbol not found, mark as not in any 2022-01-04 09:24:52 -08:00
michaelangel007 ba9388d1d8 Debugger: 2.9.1.6 Added: Branch instructions now show target address 2022-01-03 22:48:12 -08:00
michaelangel007 b3dc408195 Debugger: Cleanup 2022-01-03 22:47:25 -08:00
michaelangel007 65ab105d76 Debugger: 2.9.1.5 Added: Disassembly window now shows signed decimal values for immediate values. 2022-01-03 22:18:12 -08:00
michaelangel007 aaae1dd6a1 Debugger: 2.9.1.4 Changed: Show symbol warnings in Orange, and length of symbols in light blue 2022-01-03 22:15:41 -08:00
michaelangel007 48e0fe3a8e Debugger: 2.9.1.3 Added: DB command now optionally supports = 2022-01-03 21:11:25 -08:00
michaelangel007 3985ee9abc Debugger: 2.9.1.2: Fixed: Off by one end address when deleting DisasmData_t 2022-01-03 21:09:11 -08:00
michaelangel007 19b7d43327 Debugger: 2.9.1.1: Added: X command now supports a range and will chop off the appropiate data sections. 2022-01-03 21:07:49 -08:00
michaelangel007 561a145ab0 Debugger: Add _GetAutoSymbolName() helper 2022-01-03 21:05:37 -08:00
Andrea d63e406573
Correct BMP creation on Linux (PR #1014)
Enable BMP Header packing on all compilers.
Add virtual function to FrameBase to select where to save screenshots.
2022-01-03 14:41:03 +00:00
tomcw a243efc74b Fix for cmd line -dcd not being honoured (regression) 2021-12-24 20:58:04 +00:00
tomcw a727db7cc5 Load save-state:
. fix for II/II+ when VidHD's SHR is being updated (init memVidHD ptr).
. refactor to consolidate all Mem* related initialisation.
2021-12-23 15:56:14 +00:00
tomcw d342f3a17d Fix for VS2008 2021-12-19 19:26:07 +00:00
TomCh 577ffccf8f
VidHD: Support SHR for Apple II/II+ models (#997, PR #1013)
. Support aux writes for II/II+ (6502 emulation, not 65C02)
. Extend VidHD save-state for II/II+ aux memory
2021-12-19 14:17:51 +00:00
tomcw ff65a9f6bf Save-state: remove ASSERT when saving LC for //e or Enhanced //e 2021-12-18 21:31:17 +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 19aadbfb8d Add a top-level catch-handler for std::string 2021-12-11 20:27:39 +00:00
tomcw 408f5fe42f Fix for loading save-state - eg. where 'AS-S2_End Credits' & 'OMT-PAL' lost their precise frame cycle 2021-12-11 19:30:54 +00:00
Andrea a07ba4ade0
Set SHR alpha channel to 255 for consistency with other video modes. (PR #1010) 2021-12-11 18:05:06 +00:00
tomcw 1670e0dbc0 Fix for AppleWin-Test:
. don't load floppy/harddisk images (in Registry's Config) if also loading a save-state via cmd-line.
. done to prevent MessageBox alerts when deleted disk images can't be found.
Info: Registry contains refs to disk images, but on test clean-up, the images get deleted.
2021-12-11 18:01:46 +00:00
Andrea 177c9fec05
Make Slot 0 more consistent with other slots. (PR #1006) 2021-12-11 15:26:09 +00:00
tomcw 010d3525d3 HDD read: error if reading block to ROM (#1007) 2021-12-11 15:11:13 +00:00
tomcw 0ac210b132 Debugger: Extend 'brk' cmd:
. brk all <on|off>
Fix 'brk' cmd for invalid opcodes of length 2 & 3
2021-12-11 13:41:34 +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
tomcw c594d6e101 VidHD: Fix SHIFT+PRINTSCRN for 320x200 2021-12-07 21:59:05 +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
TomCh 01f89f88eb
Joystick: Remove buttonlatch & BUTTONTIME (#1002) 2021-11-14 17:40:15 +00:00
Andrea 2e04ce348a
Add Card::Update() (PR #1000)
And use it in ContinueExecution()
2021-11-13 18:13:01 +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
Andrea 830030ee05
Simplify logic around CConfigNeedingRestart (PR #955) 2021-10-31 12:14:47 +00:00
tomcw ac2233149b Debugger: Change 'brkint' params to on/off for consistency 2021-10-28 21:00:18 +01:00
tomcw ca611eaa64 Mousecard: fix persisting card in slot-4 after a VM restart. (Fixes #993) 2021-10-19 21:56:19 +01:00
tomcw fa18382757 Core emulation: simplify NMI & IRQ handling 2021-10-18 21:45:45 +01:00
tomcw 18f5fafb30 DiskII: Remove superfluous IsDiskImageWriteProtected() 2021-10-18 21:13:37 +01:00
Andrea f2843d4d71
Collections of changes to facilitate compilation on Linux and macOS. (PR #992) 2021-10-18 20:23:46 +01:00
TomCh 9553106f4e
Debugger: Add IRQ support to LBR and new command to Break on Interrupt (#987, PR #990)
Extend LBR so that it includes the control-flow on a taken interrupt
Add a new command 'brkint <0|1>' to support Break on Interrupt

Internal: in core emulation loop, moved IRQ/NMI check to start of loop so that just the "interrupt vectoring" case can be single-stepped (instead of previously opcode + interrupt vector).

Debugger help chm: update Breakpoints section to include BRK, BRKOP and BRKINT
2021-10-16 16:57:00 +01:00
tomcw 4f8b30506d Debugger: Fix LBR so it's updated only if branch is taken (#987) 2021-10-16 11:58:09 +01:00
tomcw 8575238d69 Debugger: Add a simple LBR command 2021-10-15 21:58:17 +01:00
tomcw eee2400984 Uthernet: removed unused Bittypes.h & Pcap-stdinc.h 2021-10-15 21:02:57 +01:00
tomcw 028c041175 Debugger: fix for 6502 JMP (ABS) - compute correct NMOS target address 2021-10-15 20:36:04 +01:00
tomcw aa7d0cf240 Fix one shot paddle timers (fixes #985) 2021-10-04 22:08:37 +01:00
tomcw 51e42d1d4e SNES MAX: load state: defaulting to no buttons pressed 2021-10-02 15:28:54 +01:00
tomcw 4cb8a6414d Uthernet: fix -load-state so that tfe_init() is called 2021-10-02 12:56:55 +01:00
tomcw b6c71201cf Uthernet: remove tfe/tfe_packetpage allocations 2021-09-22 20:46:28 +01:00
TomCh 4aa6e05528
Support Uthernet save-state (#984)
Uthernet card: support save/load state
2021-09-21 21:32:14 +01:00
tomcw 10a83eed61 SAM card: refactor as a class, and support save/load state 2021-09-18 11:55:29 +01: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
tomcw 1b8d26051e Fix for command line with multiple spaces between args. (#981) 2021-09-10 14:51:57 +01:00
tomcw 35b83765db Fix for command line -d2 (and -h2): if image can't be opened, this is now reported as an error. (#980) 2021-09-10 14:38:40 +01:00
tomcw 70f097d3ff Fix 'authentic disk speed' setting. (fixes #980) 2021-09-10 14:27:22 +01:00
tomcw ad8a7e2810 SNESMAX: minor rename for member vars 2021-09-10 14:19:13 +01:00
TomCh 685b93f387
Add 4Play & SNES MAX card support (#946, #972, PR #982)
Support these new cards in slots 3, 4 or 5; based on code from Lukazi.
- extend Configuration's Input prop sheet page.
- add save/load snapshot for both cards.
- add command line switch for alt controller type (for SNES MAX card).
Change to using Registry's 'Configuration\Slot 3' for slot 3 cards (Uthernet, 4Play & SNES MAX).
Update help doc.
2021-09-10 13:57:55 +01:00
TomCh 7b55e994ec
Config GUI for DiskII card in slot-5 & improved slot config in Registry (#975, #977, PR #978)
Change to using Registry's 'Configuration\Slot n' for disk ii image pathnames (was 'Preferences').
Delete Registry's 'Configuration\Slot n' section each time there's a change of card.
Add same functionality to conf.ini.
LoadConfiguration(): load from the new Slot-n section (or otherwise the old legacy key).
Only update Registry's 'Starting Directory' for s6,d1.
Update help doc.
2021-08-29 11:39:51 +01:00
tomcw 3fece5e621 Minor interface change to PropertySheetHelper 2021-07-29 13:31:33 +01:00
tomcw c20c9c2c9c Fix Coverity CID 1506067 in Debug.cpp 2021-07-28 14:09:22 +01:00
tomcw 405de2be14 Fix Coverity - High Impact defects:
. uninitialised vars in Debug & Win32Frame
2021-07-28 12:47:05 +01:00
tomcw f4650fb850 MB: Make AY voice & mix buffers the same size to prevent buffer overrun
(Voice buffer reduced from 1s to 0.37s)
2021-07-28 12:22:58 +01:00
tomcw 6a5017bf91 SSI263: fix potential buffer overrun & rename var so it's explicit that it is a byte-size 2021-07-28 12:14:22 +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
tomcw 71bea52419 Disk/Harddisk: Insert() - fix comment and rename var 2021-07-15 19:23:01 +01:00
Andrea 4f45202baf
Save full pathname to registry. (#960 PR #959)
This was already happening for Hard Disks (although in a convoluted way).
Extend to Floppy Disks.
2021-07-13 21:24:29 +01:00
tomcw 3d0cdd55d1 Make a few utility funcs static 2021-07-11 12:06:29 +01:00
tomcw 7086ea5208 Full-screen / resolution change: fix display flicker. (Fixes #965) 2021-06-19 15:06:04 +01:00
TomCh 1962a3c337
Switch to a static hook filter (#962, PR #964)
Remove the HookFilter.dll which had a dependency on VCRUNTIME140.dll
2021-06-09 21:48:24 +01:00
tomcw 793f2eb507 Cmd line: -fs-height: small refactor so that bestWidth/Height are only returned for logging purposes 2021-05-31 16:40:44 +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
tomcw 0ca972954e MB: fix for SSI263/SC01 in debugger's 'gg' mode (fixes #958) 2021-05-29 21:53:18 +01:00
tomcw 7f0c028250 Typo: fix IS_APPLE2() macro 2021-05-23 21:28:26 +01:00
Andrea d631b23d24
Uthernet: fix usability and settings (PR #947)
* Make Uthernet settings behave like all other cards.
Fix as well the fact that the Uthernet interface would not be reapplied after a restart.

* Uthernet: use consistent types to reduce code complexity.
Use std::string everywhere.
2021-05-19 21:44:33 +01:00
tomcw 05b9668f72 Use enum SLOTS and remove pre-processor SLOTn defines 2021-05-19 21:26:23 +01:00
Andrea de7f35e6bd
Make path separator OS-dependent (PR #954) 2021-05-19 21:10:22 +01:00
Henri Asseily 1b9a769332
Fix to DirectSound not working in modern environments. Need to use FAILED() instead of boolean check. (PR #951) 2021-05-16 20:03:59 +01:00
tomcw 110a706535 SC-01: fix DDRB support for #952 2021-05-16 19:49:34 +01:00
tomcw 21146cb65e AY8913: Fix regression at 2d086e87
- Phasor does support reading regs in MB mode & Phasor native mode (but not Echo+ mode).
2021-05-16 19:27:04 +01:00
tomcw ce309324bb Debugger: when displaying 6522 regs, if T1/T2 are active, then display in white 2021-05-09 13:38:16 +01:00
tomcw 5bc1261281 Logging: add more logging to Speaker code
Debug: add a debug-enabled MB S/S card
2021-05-03 19:58:13 +01:00
tomcw 60ddf0fa35 6522: Support cycle accurate reads from IFR for T1/T2 bits 2021-04-30 22:23:20 +01:00
Andrea f959f4f1d6
Uthernet: enable support on Linux. (PR #943)
* Make tfe easier to compile in Linux.
* libpcap in Linux: we can just use the libpcap provided and link to it directly.
2021-04-23 20:59:02 +01:00
Andrea 9bec2ce405
Avoid a crash if the LogFile cannot be opened. (PR #944) 2021-04-23 20:49:31 +01:00
Andrea 41778aa472
Debugger: move Win32 functions to separate file. (PR #941)
* Debug.cpp: move Win32 functions to separate file.
* Move _tcscat -> strcat to maximise portability.
* Remove unneeded Win32 check.
2021-04-23 20:39:24 +01:00
Andrea c6c427aa3d
Debugger: Fix bound on maximum bytes to move backward. (PR #937)
The higher g_nDisasmCurLine the more we will have to travel back to find the instruction at the top of the window.
2021-04-23 20:34:46 +01:00
tomcw 6fefce553a MB: Support old save-states where 6522 T1 latch is 0x0000 2021-04-18 18:33:16 +01:00
tomcw 26414b74df Fix for a2audit failing Apple II/II+ LC test
. For II/II+ with NSC at F8xx, then (for NSC) also exclude the r:ROM/w:RAM (C089) case
2021-04-18 11:23:06 +01:00
tomcw e7a3f97bb6 SSI263: For SC01, don't change reg0.DUR value 2021-04-17 18:30:11 +01:00
tomcw 1314fcc0ed Swap joystick buttons (#936)
. cmd-line (-swap-buttons) or GUI "Swap 0/1" now swaps buttons 0/1 for all devices
. ie. Open/Solid Apple keys, real joystick, mouse or Num Pad keys
+ update the docs
2021-04-10 19:09:36 +01:00
tomcw 363193ba33 MB: get rid of CriticalSection, as MB support is now single-threaded 2021-04-10 16:26:51 +01:00
TomCh b5726aae7d
Add some random woz jitter (#942)
Improve WOZ support for WL and LOA (#930)
- After T$00,S$00 (for certain 4&4 encodings) randomly skip 1 bit-cell
- Remove the previous fix for WL/LOA which was affecting other titles
2021-04-10 15:31:54 +01:00
Andrea a37d0b078f
Add constructor for SY6522_AY8910 for correct initialisation (PR #940)
Avoid leaks when the destructor of SY6522_AY8910 is not called.
2021-04-05 17:44:59 +01:00
tomcw 7a41ede6d9 SSI263: improve logging 2021-04-05 14:56:55 +01:00
tomcw 27fe4e5ed0 SSI263: when loading state, assert Phasor's speech IRQ if required 2021-04-01 20:52:00 +01:00
tomcw 33492ac9a2 On reset: clear Phasor speech IRQ 2021-03-31 22:09:04 +01:00
tomcw 91f2c43992 Disable SC01 logging 2021-03-28 22:18:00 +01:00
tomcw 2258d01184 MB: SC01 is only mapped to the 6522 at Cn00 2021-03-28 22:16:34 +01:00
tomcw fea5da7872 Logging: add support for SC01 2021-03-28 12:16:57 +01:00
TomCh 96bbc0c435
Improve SSI263 (PR #939)
New class for SSI263 (2 instances per MB/Phasor card)
- support 2nd SSI263 at $Cn20 connected to 6522-A (at $Cn00)

Switch from one-shot phoneme playback to ring-buffer
Use a new dedicated ring-buffer (distinct from the AY8910 ring buffer)
Gets rid of: SSI263Thread, the 2 events, and the 64 voices

Support the 2-bit Duration b7:6 of phoneme register for both SC01 & SSI263 (to fix #929)
Updated save-state
Updated IRQ logging (output cycle & 6522 source)
2021-03-23 22:01:41 +00:00
tomcw fb6433fb7a Debugger_Disassembler.cpp: add GPL boilerplate text 2021-03-17 20:42:40 +00:00
Andrea c7f515015b
Debugger: Separate disassembler functions from display (PR #933)
Makes it easier to use them in different environments.
2021-03-17 20:32:19 +00:00
tomcw 3f75012c0e Windows speech: trap calls to COUT1 and BASICOUT (instead of COUT) (#934) 2021-03-09 21:06:37 +00:00
tomcw 0858cc3a23 Debugger: improve mem views for 6522 & AY8913 chips 2021-03-07 13:11:22 +00:00
tomcw 3766c1e014 Debugger: fix to wrap 16-bit addr for mem watch (was getting AppleWin debugger crash) 2021-03-02 18:14:36 +00:00
tomcw 2d086e87ec Support 2nd SSI263 at $Cn20
Phasor doesn't support reading AY8913 regs
2021-02-21 19:12:36 +00:00
tomcw 2cd2f013e6 Disk: improve DebugTrackWOZ() func 2021-02-20 12:32:29 +00:00
tomcw 0bb34bfb48 Disk: remove debug DumpSectorWOZ() func 2021-02-19 16:21:44 +00:00
tomcw a709e9dbdf MB/SSI263: improve logging to include phoneme duration 2021-02-17 21:53:15 +00:00
tomcw 2f4bbd2b8a Avoid ASSERT from MB_Reset() on exit 2021-02-15 21:47:21 +00:00
tomcw 4e88163430 MB/6522: better reset support - only ACR,IFR,IER affected 2021-02-13 16:56:29 +00:00
tomcw 84a705d20d MB/6522: improve T1 underflow with latch 2021-02-12 19:16:14 +00:00
tomcw ff29b055ce MB/6522: fix timer1 underflow for very small values 2021-02-11 22:44:40 +00:00
Andrea 8c2b38d19d
Enable ConformanceMode in VS2019. (PR #923)
This reduces the chances of incompatibility between gcc and vs.

99% is "const char *" literals.
1 case of a goto jumping over a variable declaration (but it is not needed).
2021-02-10 21:05:00 +00:00
Andrea 466207f5d3
Save-state: load/save dialog: Remove ; to concatenate string and avoid unused code. (PR #924) 2021-02-10 20:55:58 +00:00
tomcw 776a48fc01 MB/6522: support for T1 latch in one-shot mode 2021-02-10 20:51:11 +00:00
tomcw f3b6b8665f Debugger: fixes to wrap 16-bit addr (was resulting in AppleWin debugger crashes) 2021-02-07 16:58:11 +00:00
tomcw c492004e8d 6522 read: support non 4-cycle read opcodes (#833)
. ie. addr modes: (zp,x), (zp),y and (zp)
2021-02-06 18:02:35 +00:00
tomcw f302e88f55 Add 6522 support for stz abs16 and stz abs16,x 2021-02-05 22:30:05 +00:00
tomcw fcafa18340 Debugger: add red 'IRQ' after the v/h-pos when IRQ is being asserted to the 6502 2021-01-31 19:38:06 +00:00
tomcw fad4dd2ad1 Disable debug-logging for previous AY8913 fix 2021-01-30 12:50:33 +00:00
tomcw 024e97ac9b MB-AY8913 fix so that no AY changes get dumped (#770)
. Needed for read of AY8913 regs too, during built-in debugger stepping (mb-audit)
2021-01-30 10:34:46 +00:00
tomcw a3666edf48 MB: read fix 2021-01-28 20:15:23 +00:00
Andrea baad40f3b8
SpkrSetEmulationType(): simplify logic and remove unreachable code. (PR #919) 2021-01-20 21:30:34 +00: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
tomcw 81279904e2 Pravets: fix bug in ctor 2021-01-18 20:30:51 +00:00
tomcw 44fa610ef6 Pravets.cpp: convert to UTF8 to allow VS2019 to build 2021-01-17 22:21:33 +00:00
tomcw 5d46298dcc Mockingboard: support AY-3-8913 read 2021-01-17 19:51:25 +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
tomcw fc3a0f57ce Win32Frame: Fixes for VS2008 2021-01-16 22:13:02 +00:00
Andrea 61db149eab
Move last remaining globals from WinFrame.cpp to class Win32Frame. (PR #913) 2021-01-16 21:57:28 +00:00
tomcw 440831179f Keyboard: improve illegal keycodes handling for II/II+ and clones. 2021-01-16 11:01:18 +00:00
tomcw 7d2ddb3556 Base 64A: support special F2 key via the Delete key (GH#912) 2021-01-14 21:32:59 +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
Kelvin Lee 0139878dd7
x64 enabling (PR #747)
Here are a few changes to make 64-bit build possible.
The changes are mainly to use windows api in the correct way that works for both 32-bit and 64-bit builds.
2021-01-01 12:57:40 +00:00
Andrea 9d7aa7d309
Move VideoRedrawScreen() to Video. (PR #904) 2021-01-01 12:42:24 +00:00
tomcw c7d9a780bb Minor tweaks + comment for GCC needing header file 2020-12-29 21:45:56 +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
Andrea b226bdfd53
Small changes to improve compatibility with GCC. (PR #902)
* Fix GCC build.

1) do not fwd declare enums
2) include only base class header file IPropertySheet.

* DSInit(): make sure sound devices are cleaned before the 2nd call.

And use std::string to avoid need of memory management.
2020-12-29 21:17:03 +00:00
Andrea 6cf907f303
In Linux, save logfile to /tmp. (PR #900) 2020-12-29 21:13:35 +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
Kevin Marty 3c6f0c1145
Add option to disable warning when PrintScreen key can't be captured (PR #891)
NB. Windows XP or higher
2020-12-27 19:21:46 +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
tomcw 8d7d2b9647 VS2019: new debug/release configurations for v141_xp (#693)
. NB, the Microsoft SDK 7.1A doesn't contain dxguid.lib & ddraw.lib, so they are linked against these two dx libs that are already part of the AppleWin repo.
2020-12-20 18:44:25 +00:00
tomcw 97643e304f Fix build for missing include of Interface.h 2020-12-20 15:39:53 +00:00
Andrea 2d2ba86f4f
IPropertySheet: make it a standard C++ class with pure virtual functions (PR #892)
* Interface.h: ensure that functions in the interface are not exported by other header files.

This is generally harmless, except for the presence of default arguments, in which case the version with default arguments must come first.
To avoid the issue, these functions are only ever exported in the Interface.h header file.
2020-12-20 15:32:51 +00:00
tomcw 469f9ba807 Support disconnecting drives from DiskII Interface card: -d1-disconnected, -d2-disconnected 2020-12-12 20:49:46 +00:00