mirror of
https://github.com/AppleWin/AppleWin.git
synced 2025-01-05 23:31:17 +00:00
Fix for original IIe showing mousetext (Feature #4346)
This commit is contained in:
parent
f5f77a445c
commit
300c6ad50a
@ -16,7 +16,13 @@ tomch at users.berlios.de
|
||||
Restrictions/bugs:
|
||||
- SSI263 emulation is very basic: there is no attempt to emulate rate, inflection or filters.
|
||||
- During Mockingboard playback, Speaker emulation isn't precise.
|
||||
- For an original Apple //e, 80-column (PR#3) and INVERSE, it still appears to be mousetext character, but it should be inverted upper-case from $40 to $5F.
|
||||
|
||||
Next release:
|
||||
-------------
|
||||
Fixes:
|
||||
. [Feature #004346] Don't show mousetext for original Apple //e.
|
||||
Changes:
|
||||
. [Feature #005557] Support DOSMaster image created by Apple Oasis.
|
||||
|
||||
|
||||
1.21.1 - 12 Aug 2012
|
||||
|
@ -43,7 +43,7 @@ char VERSIONSTRING[16] = "xx.yy.zz.ww";
|
||||
|
||||
TCHAR *g_pAppTitle = TITLE_APPLE_2E_ENHANCED;
|
||||
|
||||
eApple2Type g_Apple2Type = A2TYPE_APPLE2EEHANCED;
|
||||
eApple2Type g_Apple2Type = A2TYPE_APPLE2EENHANCED;
|
||||
|
||||
BOOL behind = 0; // Redundant
|
||||
DWORD cumulativecycles = 0; // Wraps after ~1hr 9mins
|
||||
@ -430,7 +430,7 @@ void LoadConfiguration()
|
||||
if (REGLOAD(TEXT(REGVALUE_APPLE2_TYPE), &dwComputerType))
|
||||
{
|
||||
if ((dwComputerType >= A2TYPE_MAX) || (dwComputerType >= A2TYPE_UNDEFINED && dwComputerType < A2TYPE_CLONE))
|
||||
dwComputerType = A2TYPE_APPLE2EEHANCED;
|
||||
dwComputerType = A2TYPE_APPLE2EENHANCED;
|
||||
|
||||
g_Apple2Type = (eApple2Type) dwComputerType;
|
||||
}
|
||||
@ -442,8 +442,8 @@ void LoadConfiguration()
|
||||
// NB. No A2TYPE_APPLE2E (this is correct)
|
||||
case 0: g_Apple2Type = A2TYPE_APPLE2;
|
||||
case 1: g_Apple2Type = A2TYPE_APPLE2PLUS;
|
||||
case 2: g_Apple2Type = A2TYPE_APPLE2EEHANCED;
|
||||
default: g_Apple2Type = A2TYPE_APPLE2EEHANCED;
|
||||
case 2: g_Apple2Type = A2TYPE_APPLE2EENHANCED;
|
||||
default: g_Apple2Type = A2TYPE_APPLE2EENHANCED;
|
||||
}
|
||||
}
|
||||
|
||||
@ -452,7 +452,7 @@ void LoadConfiguration()
|
||||
case A2TYPE_APPLE2: g_nCharsetType = 0; break;
|
||||
case A2TYPE_APPLE2PLUS: g_nCharsetType = 0; break;
|
||||
case A2TYPE_APPLE2E: g_nCharsetType = 0; break;
|
||||
case A2TYPE_APPLE2EEHANCED: g_nCharsetType = 0; break;
|
||||
case A2TYPE_APPLE2EENHANCED:g_nCharsetType = 0; break;
|
||||
case A2TYPE_PRAVETS82: g_nCharsetType = 1; break;
|
||||
case A2TYPE_PRAVETS8A: g_nCharsetType = 2; break;
|
||||
case A2TYPE_PRAVETS8M: g_nCharsetType = 3; break; //This charset has a very small difference with the PRAVETS82 one an probably has some misplaced characters. Still the Pravets82 charset is used, because settiong charset to 3 results in some problems.
|
||||
|
@ -160,7 +160,7 @@ enum eApple2Type {
|
||||
A2TYPE_APPLE2=0,
|
||||
A2TYPE_APPLE2PLUS,
|
||||
A2TYPE_APPLE2E=APPLE2E_MASK,
|
||||
A2TYPE_APPLE2EEHANCED,
|
||||
A2TYPE_APPLE2EENHANCED,
|
||||
A2TYPE_UNDEFINED,
|
||||
A2TYPE_APPLE2C=APPLE2C_MASK,
|
||||
A2TYPE_APPLE2D=APPLE2D_MASK,
|
||||
@ -184,6 +184,12 @@ inline bool IsClone(eApple2Type type)
|
||||
return (type & APPLECLONE_MASK) != 0;
|
||||
}
|
||||
|
||||
extern eApple2Type g_Apple2Type;
|
||||
inline bool IsOriginal2E(void)
|
||||
{
|
||||
return (g_Apple2Type == A2TYPE_APPLE2E);
|
||||
}
|
||||
|
||||
enum eBUTTON {BUTTON0=0, BUTTON1};
|
||||
|
||||
enum eBUTTONSTATE {BUTTON_UP=0, BUTTON_DOWN};
|
||||
|
@ -131,7 +131,7 @@ BOOL CPageConfig::DlgProcInternal(HWND hWnd, UINT message, WPARAM wparam, LPARAM
|
||||
case A2TYPE_APPLE2: nCurrentChoice = MENUITEM_IIORIGINAL; break;
|
||||
case A2TYPE_APPLE2PLUS: nCurrentChoice = MENUITEM_IIPLUS; break;
|
||||
case A2TYPE_APPLE2E: nCurrentChoice = MENUITEM_IIE; break;
|
||||
case A2TYPE_APPLE2EEHANCED: nCurrentChoice = MENUITEM_ENHANCEDIIE; break;
|
||||
case A2TYPE_APPLE2EENHANCED:nCurrentChoice = MENUITEM_ENHANCEDIIE; break;
|
||||
case A2TYPE_PRAVETS82: nCurrentChoice = MENUITEM_CLONE; break;
|
||||
case A2TYPE_PRAVETS8M: nCurrentChoice = MENUITEM_CLONE; break;
|
||||
case A2TYPE_PRAVETS8A: nCurrentChoice = MENUITEM_CLONE; break;
|
||||
@ -243,9 +243,9 @@ eApple2Type CPageConfig::GetApple2Type(DWORD NewMenuItem)
|
||||
case MENUITEM_IIORIGINAL: return A2TYPE_APPLE2;
|
||||
case MENUITEM_IIPLUS: return A2TYPE_APPLE2PLUS;
|
||||
case MENUITEM_IIE: return A2TYPE_APPLE2E;
|
||||
case MENUITEM_ENHANCEDIIE: return A2TYPE_APPLE2EEHANCED;
|
||||
case MENUITEM_ENHANCEDIIE: return A2TYPE_APPLE2EENHANCED;
|
||||
case MENUITEM_CLONE: return A2TYPE_CLONE;
|
||||
default: return A2TYPE_APPLE2EEHANCED;
|
||||
default: return A2TYPE_APPLE2EENHANCED;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -150,7 +150,7 @@ void GetAppleWindowTitle()
|
||||
case A2TYPE_APPLE2: _tcscpy(g_pAppleWindowTitle, TITLE_APPLE_2 ); break;
|
||||
case A2TYPE_APPLE2PLUS: _tcscpy(g_pAppleWindowTitle, TITLE_APPLE_2_PLUS ); break;
|
||||
case A2TYPE_APPLE2E: _tcscpy(g_pAppleWindowTitle, TITLE_APPLE_2E ); break;
|
||||
case A2TYPE_APPLE2EEHANCED: _tcscpy(g_pAppleWindowTitle, TITLE_APPLE_2E_ENHANCED); break;
|
||||
case A2TYPE_APPLE2EENHANCED:_tcscpy(g_pAppleWindowTitle, TITLE_APPLE_2E_ENHANCED); break;
|
||||
case A2TYPE_PRAVETS82: _tcscpy(g_pAppleWindowTitle, TITLE_PRAVETS_82 ); break;
|
||||
case A2TYPE_PRAVETS8M: _tcscpy(g_pAppleWindowTitle, TITLE_PRAVETS_8M ); break;
|
||||
case A2TYPE_PRAVETS8A: _tcscpy(g_pAppleWindowTitle, TITLE_PRAVETS_8A ); break;
|
||||
@ -250,7 +250,7 @@ switch (g_Apple2Type)
|
||||
case A2TYPE_APPLE2: buttonbitmap[BTN_RUN ] =(HBITMAP)LOADBUTTONBITMAP(TEXT("RUN_BUTTON")); break;
|
||||
case A2TYPE_APPLE2PLUS: buttonbitmap[BTN_RUN ] =(HBITMAP)LOADBUTTONBITMAP(TEXT("RUN_BUTTON")); break;
|
||||
case A2TYPE_APPLE2E: buttonbitmap[BTN_RUN ] =(HBITMAP)LOADBUTTONBITMAP(TEXT("RUN_BUTTON")); break;
|
||||
case A2TYPE_APPLE2EEHANCED: buttonbitmap[BTN_RUN ] =(HBITMAP)LOADBUTTONBITMAP(TEXT("RUN_BUTTON")); break;
|
||||
case A2TYPE_APPLE2EENHANCED:buttonbitmap[BTN_RUN ] =(HBITMAP)LOADBUTTONBITMAP(TEXT("RUN_BUTTON")); break;
|
||||
case A2TYPE_PRAVETS82: buttonbitmap[BTN_RUN ] = (HBITMAP)LOADBUTTONBITMAP(TEXT("RUNP_BUTTON")); break;
|
||||
case A2TYPE_PRAVETS8M: buttonbitmap[BTN_RUN ] = (HBITMAP)LOADBUTTONBITMAP(TEXT("RUNP_BUTTON")); break;
|
||||
case A2TYPE_PRAVETS8A: buttonbitmap[BTN_RUN ] = (HBITMAP)LOADBUTTONBITMAP(TEXT("RUNP_BUTTON")); break;
|
||||
@ -622,7 +622,7 @@ static void DrawStatusArea (HDC passdc, int drawflags)
|
||||
case A2TYPE_APPLE2 :
|
||||
case A2TYPE_APPLE2PLUS :
|
||||
case A2TYPE_APPLE2E :
|
||||
case A2TYPE_APPLE2EEHANCED:
|
||||
case A2TYPE_APPLE2EENHANCED:
|
||||
default : DrawBitmapRect(dc,x+31,y+17,&rCapsLed,g_hCapsLockBitmap[bCaps != 0]); break;
|
||||
case A2TYPE_PRAVETS82 :
|
||||
case A2TYPE_PRAVETS8M : DrawBitmapRect(dc,x+31,y+17,&rCapsLed,g_hCapsBitmapP8 [bCaps != 0]); break; // TODO: FIXME: Shouldn't one of these use g_hCapsBitmapLat ??
|
||||
|
@ -1058,7 +1058,7 @@ void MemInitialize()
|
||||
case A2TYPE_APPLE2: hResInfo = FindResource(NULL, MAKEINTRESOURCE(IDR_APPLE2_ROM), "ROM"); ROM_SIZE = Apple2RomSize; break;
|
||||
case A2TYPE_APPLE2PLUS: hResInfo = FindResource(NULL, MAKEINTRESOURCE(IDR_APPLE2_PLUS_ROM), "ROM"); ROM_SIZE = Apple2RomSize; break;
|
||||
case A2TYPE_APPLE2E: hResInfo = FindResource(NULL, MAKEINTRESOURCE(IDR_APPLE2E_ROM), "ROM"); ROM_SIZE = Apple2eRomSize; break;
|
||||
case A2TYPE_APPLE2EEHANCED: hResInfo = FindResource(NULL, MAKEINTRESOURCE(IDR_APPLE2E_ENHANCED_ROM), "ROM"); ROM_SIZE = Apple2eRomSize; break;
|
||||
case A2TYPE_APPLE2EENHANCED:hResInfo = FindResource(NULL, MAKEINTRESOURCE(IDR_APPLE2E_ENHANCED_ROM), "ROM"); ROM_SIZE = Apple2eRomSize; break;
|
||||
case A2TYPE_PRAVETS82: hResInfo = FindResource(NULL, MAKEINTRESOURCE(IDR_PRAVETS_82_ROM), "ROM"); ROM_SIZE = Apple2RomSize; break;
|
||||
case A2TYPE_PRAVETS8M: hResInfo = FindResource(NULL, MAKEINTRESOURCE(IDR_PRAVETS_8M_ROM), "ROM"); ROM_SIZE = Apple2RomSize; break;
|
||||
case A2TYPE_PRAVETS8A: hResInfo = FindResource(NULL, MAKEINTRESOURCE(IDR_PRAVETS_8C_ROM), "ROM"); ROM_SIZE = Apple2eRomSize; break;
|
||||
@ -1072,14 +1072,14 @@ void MemInitialize()
|
||||
case A2TYPE_APPLE2: _tcscpy(sRomFileName, TEXT("APPLE2.ROM")); break;
|
||||
case A2TYPE_APPLE2PLUS: _tcscpy(sRomFileName, TEXT("APPLE2_PLUS.ROM")); break;
|
||||
case A2TYPE_APPLE2E: _tcscpy(sRomFileName, TEXT("APPLE2E.ROM")); break;
|
||||
case A2TYPE_APPLE2EEHANCED: _tcscpy(sRomFileName, TEXT("APPLE2E_ENHANCED.ROM")); break;
|
||||
case A2TYPE_APPLE2EENHANCED:_tcscpy(sRomFileName, TEXT("APPLE2E_ENHANCED.ROM")); break;
|
||||
case A2TYPE_PRAVETS82: _tcscpy(sRomFileName, TEXT("PRAVETS82.ROM")); break;
|
||||
case A2TYPE_PRAVETS8M: _tcscpy(sRomFileName, TEXT("PRAVETS8M.ROM")); break;
|
||||
case A2TYPE_PRAVETS8A: _tcscpy(sRomFileName, TEXT("PRAVETS8C.ROM")); break;
|
||||
default:
|
||||
{
|
||||
_tcscpy(sRomFileName, TEXT("Unknown type!"));
|
||||
REGSAVE(TEXT(REGVALUE_APPLE2_TYPE), A2TYPE_APPLE2EEHANCED);
|
||||
REGSAVE(TEXT(REGVALUE_APPLE2_TYPE), A2TYPE_APPLE2EENHANCED);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -59,7 +59,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
LR: Lo-Res HR: Hi-Res DHR: Double Hi-Res */
|
||||
|
||||
#define FLASH_80_COL 1
|
||||
#define FLASH_80_COL 1 // Bug #7238
|
||||
|
||||
#define HALF_SHIFT_DITHER 0
|
||||
|
||||
@ -2437,11 +2437,12 @@ bool Update40ColCell (int x, int y, int xpixel, int ypixel, int offset)
|
||||
if(bCharChanged || (bCharFlashing && g_bTextFlashFlag))
|
||||
{
|
||||
bool bInvert = bCharFlashing ? g_bTextFlashState : false;
|
||||
int nOriginal2EOffset = !IsOriginal2E() || !g_nAltCharSetOffset || (ch<0x40) || (ch>0x5F) ? 0 : -g_nAltCharSetOffset; // No mousetext for original IIe
|
||||
|
||||
CopySource(xpixel,ypixel,
|
||||
APPLE_FONT_WIDTH, APPLE_FONT_HEIGHT,
|
||||
(IS_APPLE2 ? SRCOFFS_IIPLUS : SRCOFFS_40COL) + ((ch & 0x0F) << 4),
|
||||
(ch & 0xF0) + g_nAltCharSetOffset + (bInvert ? 0x40 : 0x00));
|
||||
(ch & 0xF0) + g_nAltCharSetOffset + nOriginal2EOffset + (bInvert ? 0x40 : 0x00));
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -2452,12 +2453,13 @@ bool Update40ColCell (int x, int y, int xpixel, int ypixel, int offset)
|
||||
inline bool _Update80ColumnCell( BYTE c, const int xPixel, const int yPixel, bool bCharFlashing )
|
||||
{
|
||||
bool bInvert = bCharFlashing ? g_bTextFlashState : false;
|
||||
int nOriginal2EOffset = !IsOriginal2E() || !g_nAltCharSetOffset || (c<0x40) || (c>0x5F) ? 0 : -g_nAltCharSetOffset; // No mousetext for original IIe
|
||||
|
||||
CopySource(
|
||||
xPixel, yPixel,
|
||||
(APPLE_FONT_WIDTH / 2), APPLE_FONT_HEIGHT,
|
||||
SRCOFFS_80COL + ((c & 15)<<3),
|
||||
((c >>4) <<4) + g_nAltCharSetOffset + (bInvert ? 0x40 : 0x00));
|
||||
((c >>4) <<4) + g_nAltCharSetOffset + nOriginal2EOffset + (bInvert ? 0x40 : 0x00));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user