Commit Graph

137 Commits

Author SHA1 Message Date
tomcw
151a7f3b33 Fixes for CPU emulation relating to page-crossing: bugs #264, #278; and opcode (abx,x): bug #271 2015-04-25 21:15:17 +01:00
TomCh
60db3d6622 Merge pull request #279 from AppleWin/1.25.0.4
Fix for Applewin exiting when using -d1 arg (#276) and set version to 1.25.0.4
2015-04-23 21:48:35 +01:00
tomcw
9191efe5f9 Fix for Applewin exiting when using -d1 arg (#276) 2015-04-23 21:45:41 +01:00
tomcw
c052d10d2f SAM: Clean up before merge 2015-04-09 22:54:26 +01:00
unknown
feccde41bf rename SAM to DAC functions 2015-03-30 17:27:51 +09:00
unknown
fa43e909ed renamed DAC to SAM 2015-03-30 17:25:30 +09:00
unknown
b386c444c3 Added GPL header, tweaked other comments 2015-03-24 12:04:32 +09:00
unknown
c2b62d26d3 Sound page has SAM card option 2015-03-11 12:43:24 +09:00
unknown
33d33b71ec Updates to support DAC card, no UI yet - missed files 2015-03-10 21:33:14 +09:00
unknown
33372943e0 Aded support for an 8 bit DAC in slot 5 if no Z80 card there. Demo disk
included.
2015-03-10 21:12:43 +09:00
tomcw
0238645b3e MouseCard: removed some overly aggressive asserts for iMinX and iMinY being zero 2015-02-22 15:32:31 +00:00
tomcw
04cd0b4018 Fix for sprintf buffer overflow - #268 2015-02-17 22:00:52 +00:00
tomcw
779b86b832 Fix #267: allow mousecard move & button in MODE_STEPPING 2015-02-13 22:00:56 +00:00
michaelangel007
d0b067f8d2 Fix BLOAD 'filename.hgr' so an address can be specified and used as an over-ride 2015-01-01 05:51:06 -08:00
michaelangel007
07be4dfa1d Debugger 2.8.0.9: BLOAD now recognizes the extensions .hgr or .hgr2 to load to $2000, or $4000 respectfully 2014-12-31 19:24:04 -08:00
tomcw
0fc6d18139 Removed some unused video constants 2014-12-21 16:47:03 -05:00
tomcw
1966bcb9a1 Merge branch 'master' of https://github.com/AppleWin/AppleWin 2014-12-21 16:43:58 -05:00
tomcw
a85d33beb3 Switch VideoCheckVbl() to call VideoGetVbl() instead of VideoGetScannerAddress() 2014-12-21 16:43:49 -05:00
michaelangel007
7ba8128530 Remove unused: V_CreateLookup_HiresHalfShiftFull(), conditionaly compile V_CreateLookup_HiresHalfShiftDim(); 2014-12-15 18:02:54 -08:00
michaelangel007
e64932f181 Fixed HGR colors to be more accurate; cleanup dead code; merged COLORS_TWEAKED since it is always active 2014-12-14 19:05:21 -08:00
michaelangel007
ee67feaffb Removed old commented out color maps for Lores & DoubleHires 2014-12-14 18:05:56 -08:00
michaelangel007
ca26296970 Fix mis-labeled HGR_MAGENTA -> HGR_VIOLET 2014-12-14 18:03:45 -08:00
michaelangel007
b21da4dd95 DOC: Made note that IIGS color reference is NOT accurate 2014-12-14 14:59:01 -08:00
michaelangel007
3d80c45451 Fix mis-labled HGR_RED -> HGR_ORANGE 2014-12-14 14:55:19 -08:00
michaelangel007
a509cc511a Add: proper OPCODE_NOP enum 2014-12-11 10:00:51 -08:00
michaelangel007
03b43bf388 Bug #227 2.8.0.8 Fixed: Showing/hiding the address and/or opcodes will show long symbolic targets without overflowing into the register info pane
File: Debugger_Display.cpp
Func: DrawDisassemblyLine()
2014-12-11 10:00:02 -08:00
michaelangel007
d6002721e5 Fix Bug #251: ASC #:# with null byte doesn't mark up properly 2014-12-11 09:41:42 -08:00
michaelangel007
c2d6f5b026 Bug #239 : Debugger 2.8.0.6: Ctrl-Print Screen while the debugger is active will copy the debugger text to the clipboard 2014-12-01 22:01:08 -08:00
michaelangel007
4102fd91f9 DEBUG: 2.8.0.5: FIX: Bug #244 -- print warning about duplicate symbol's address(es) aliasing existing ones 2014-11-30 18:58:15 -08:00
michaelangel007
4e582b2431 Add: CHC_INFO, CHC_PATH 2014-11-30 18:39:04 -08:00
michaelangel007
ac56455f61 Cleanup: remove commented out broken long symbol table header description
FIX: Prevent buffer overflow in CmdSymbolsInfo()
2014-11-30 17:51:11 -08:00
michaelangel007
d5a58ef206 ADD: ConsoleColor_StringLength() to get the normal string length that doesn't count the escape/markup 2014-11-30 17:47:26 -08:00
michaelangel007
7345b017aa FIX: Bug #246 (Debugger) Memory (Changing Memory) command in CHM help files
- fixed EXITBENCH from being matched with 'E'
- fixed out of date documentation with MEB, MEW
2014-11-29 17:42:12 -08:00
michaelangel007
763b8172f0 DEBUGGER: Cleanup error message for invalid symbol table for: syminfo
(cherry picked from commit ca5002dfa3807f6b5fea33c14bd6ee5c9c879456)
2014-11-28 23:33:54 -08:00
michaelangel007
0910f05817 Cleanup - added note about CmdSymbolsLoad() zero args
(cherry picked from commit 9de7a1ca922046542cc998a04993012569e9fb54)
2014-11-28 23:33:36 -08:00
michaelangel007
6e5ff918c4 Cleanup: ParseSymbolTable() renamed arg to be more descriptive: pPathFileName
(cherry picked from commit 99a675b3b4b930071498b3ee1437f4d7d14594f4)
2014-11-28 23:33:25 -08:00
michaelangel007
d5c646a2bc Cleanup whitespace
(cherry picked from commit b5af168257f3f1fee19a314ed7d88c31bf345750)
2014-11-28 23:33:04 -08:00
TomCh
c04e934a27 Merge pull request #238 from AppleWin/memory_refactor
Mainly a tidy-up to remove old, unused code from memory.cpp.

Also:
* Disk][ now returning floating bus for I/O register reads (still a few todo's to check).
* Fixed #232 (mouse VBl IRQs were still occurring after card removed!)
2014-10-12 20:58:25 +01:00
tomcw
0e31e91e61 Disk configuration: Minor coding style tweaks & clean-up 2014-10-10 21:24:50 +01:00
pedgarcia
43b31c28db New disk selection interface
The Configuration Dialog -> Disks tab now has combos to show
insert/eject disks, as well as it now the images are automatically
swapped if you try to insert on one drive the image connected to the
other
The Apple logo was redone following the same-ish colour pattern but with
a more modern look.

(*) Updated based on first review:
- Removed bmp from this pull request (coming later)
- Corrected resource's constants values and deleted unused one
- Initializing variables in CPageDisk constructot
2014-10-01 19:18:46 -04:00
tomcw
970dd0044a Fix #232: Mouse was still generating VBl IRQs after being removed. 2014-09-29 22:43:15 +01:00
tomcw
8fac75322a Refactor: Removed unused vars from Memory.cpp. Also change Disk][ I/O regs to return floating bus. 2014-09-28 22:04:12 +01:00
tomcw
a2260510f3 Better support for GH issues #129 and #204 (x86 CPU core is no longer max'ed out). 2014-09-21 21:42:19 +01:00
tomcw
8098b84a0e Fix GH issue #188 (GDI object leak). Also refactored V_CreateLookup_Text() and V_CreateLookup_MonoText() to use common code. 2014-09-21 16:12:05 +01:00
tomcw
efd2e4405a Fix: 80-column video mode wasn't being detected as needing an update, when FLASH chars only existed in AUX text pages. 2014-09-15 22:47:50 +01:00
tomcw
8c019bcd35 More main-loop reduction & removal of redundant globals.
Fixed JoyUpdateButtonLatch() to debounce in 5mecs instead of 5secs!

SpkrToggle() was using redundant global ('cyclenum') when using the PC speaker.
. I reworked the code (as it looked out-of-date),
    but probably better to just remove all the PC speaker support.
2014-09-14 21:23:54 +01:00
tomcw
0db62489f9 Refactor: g_bVideoMode -> g_uVideoMode 2014-09-14 16:15:14 +01:00
tomcw
1f892a27d4 Simplified main-loop a bit more, and removed more globals from AppleWin.cpp 2014-09-14 16:12:55 +01:00
tomcw
bc45812f4e Simplified and moved main-loop video update logic into Video.cpp.
Removed complex case below for:
. VideoHasRefreshed(), 'anyupdates'
. VideoCheckPage()

Detailed notes below.

---

Video updates in ContinueExecution() loop:

'anyupdates' gets set if there were any page-flip(s) in last ~17030 cycles:
	anyupdates |= VideoHasRefreshed();
ie. VideoRefreshScreen() was called outside of this loop.

If there's been a call to VideoRefreshScreen() outside of this loop,
  and then the video framebuffer gets written to, ie. VideoApparentlyDirty() returns TRUE,
then don't call VideoRefreshScreen() from this loop for 3 frames.
(If a VideoRefreshScreen() is called outside of this loop then restart the 3 frame count.)

So..
 if the game is flipping, the VideoApparentlyDirty() will return FALSE (since game writes to other framebuffer).
 if the game is not flipping, then VideoHasRefreshed() will return FALSE (since no flips occur).

Therefore this complex case above probably only arises at a boundary eg. when the game is transitioning between these 2 modes,
and so if the emulator does the very occasional screen update in this main loop, it is of no consequence.

(I guess this extra logic was to throttle video updates on very old slow machines)

---

VideoCheckPage(BOOL bForce) was called twice in main-loop:

UnexpectedPage if g_bVideoDisplayPage2 != SW_PAGE2

Once each time through the loop (ie. every 1ms), with bForce=0
	if UnexpectedPage && >500ms since last flip then VideoRefreshScreen()

Once each video frame (ie. ~17030 cycles) when not flipping, with bForce=1
	if UnexpectedPage then VideoRefreshScreen()

Basically this was all about supporting FullSpeed mode, and limiting the calls to VideoRefreshScreen().
2014-09-13 22:22:27 +01:00
tomcw
d1dddbe813 1.25.0.3: Restore MIP_FF_FF_00_00 as memory init default (see GH Bug#225) 2014-09-08 22:25:29 +01:00