Remove AltKeysMode and force on AutoSlow

This commit is contained in:
InvisibleUp 2020-04-13 22:06:17 -04:00
parent 65aa1d958a
commit fc7898c4d7
9 changed files with 20 additions and 342 deletions

View File

@ -39,7 +39,6 @@
#define AutoTimeZone 1
// Variable versions of configuration flags
extern bool EnableAutoSlow;
extern uint16_t vMacScreenHeight;
extern uint16_t vMacScreenWidth;
extern uint16_t vMacScreenDepth;

View File

@ -44,7 +44,6 @@
#define RomStartCheckSum 1 // Let emu verify ROM chksum on startup
#define EnableDragDrop 1 // Enable drag+drop of disk images
#define SaveDialogEnable 1 // Allow user to choose loc. for new disks
#define EnableAltKeysMode 0 // Vim-like keybindings. TODO: remove
#define WantInitFullScreen 0 // Start with full-screen mode on
#define MayFullScreen 1 // Full screen is an option
@ -54,12 +53,12 @@
#define WindowScale 2 // Magnification power (TODO: make a var!!!)
#define WantInitRunInBackground 1 // Start running in background (boolean)
#define WantInitNotAutoSlow 0 // Deprecated/ TODO: remove
#define WantInitSpeedValue 0 // Initial clock multiplier (0 = 1x)
#define WantEnblCtrlInt 1 // Enable interrupt key (from prog. switch)
#define WantEnblCtrlRst 1 // Enable reset key (from prog. switch)
#define WantEnblCtrlKtg 1 // Emulated control key toggle via Ctrl+K
#define NeedRequestIthDisk 0 // Use Ctrl+num to insert "./disk#.dsk"
#define NeedRequestInsertDisk 1 // Disk open dialog on Ctrl+O
#define NeedDoMoreCommandsMsg 1 // Special > More Commands tutorial message
#define NeedDoAboutMsg 1 // About mini vMac message

View File

@ -1,190 +0,0 @@
#include "HW/KBRD/ALTKEYSM.h"
#include "SYSDEPNS.h"
#include "MYOSGLUE.h"
#include "UI/COMOSGLU.h"
#include "UI/CONTROLM.h"
#include "LANG/INTLCHAR.h"
LOCALVAR bool AltKeysLockText = false;
LOCALVAR bool AltKeysTrueCmnd = false;
LOCALVAR bool AltKeysTrueOption = false;
LOCALVAR bool AltKeysTrueShift = false;
LOCALVAR bool AltKeysModOn = false;
LOCALVAR bool AltKeysTextOn = false;
LOCALPROC CheckAltKeyUseMode(void)
{
bool NewAltKeysTextOn;
AltKeysModOn = AltKeysTrueCmnd
|| AltKeysTrueOption || AltKeysTrueShift;
NewAltKeysTextOn = AltKeysLockText || AltKeysModOn;
if (NewAltKeysTextOn != AltKeysTextOn) {
DisconnectKeyCodes(kKeepMaskControl | kKeepMaskCapsLock
| (AltKeysTrueCmnd ? kKeepMaskCommand : 0)
| (AltKeysTrueOption ? kKeepMaskOption : 0)
| (AltKeysTrueShift ? kKeepMaskShift : 0));
AltKeysTextOn = NewAltKeysTextOn;
}
}
LOCALPROC Keyboard_UpdateKeyMap1(uint8_t key, bool down)
{
if (MKC_Command == key) {
AltKeysTrueCmnd = down;
CheckAltKeyUseMode();
Keyboard_UpdateKeyMap(key, down);
} else if (MKC_Option == key) {
AltKeysTrueOption = down;
CheckAltKeyUseMode();
Keyboard_UpdateKeyMap(key, down);
} else if (MKC_Shift == key) {
AltKeysTrueShift = down;
CheckAltKeyUseMode();
Keyboard_UpdateKeyMap(key, down);
} else if (MKC_SemiColon == key) {
if (down && ! AltKeysModOn) {
if (AltKeysLockText) {
AltKeysLockText = false;
NeedWholeScreenDraw = true;
SpecialModeClr(SpclModeAltKeyText);
CheckAltKeyUseMode();
}
} else {
Keyboard_UpdateKeyMap(key, down);
}
} else if (AltKeysTextOn) {
Keyboard_UpdateKeyMap(key, down);
} else if (MKC_M == key) {
if (down) {
if (! AltKeysLockText) {
AltKeysLockText = true;
SpecialModeSet(SpclModeAltKeyText);
NeedWholeScreenDraw = true;
CheckAltKeyUseMode();
}
}
} else {
switch (key) {
case MKC_A:
key = MKC_SemiColon;
break;
case MKC_B:
key = MKC_BackSlash;
break;
case MKC_C:
key = MKC_F3;
break;
case MKC_D:
key = MKC_Option;
break;
case MKC_E:
key = MKC_BackSpace;
break;
case MKC_F:
key = MKC_Command;
break;
case MKC_G:
key = MKC_Enter;
break;
case MKC_H:
key = MKC_Equal;
break;
case MKC_I:
key = MKC_Up;
break;
case MKC_J:
key = MKC_Left;
break;
case MKC_K:
key = MKC_Down;
break;
case MKC_L:
key = MKC_Right;
break;
case MKC_M:
/* handled above */
break;
case MKC_N:
key = MKC_Minus;
break;
case MKC_O:
key = MKC_RightBracket;
break;
case MKC_P:
return; /* none */
break;
case MKC_Q:
key = MKC_Grave;
break;
case MKC_R:
key = MKC_Return;
break;
case MKC_S:
key = MKC_Shift;
break;
case MKC_T:
key = MKC_Tab;
break;
case MKC_U:
key = MKC_LeftBracket;
break;
case MKC_V:
key = MKC_F4;
break;
case MKC_W:
return; /* none */
break;
case MKC_X:
key = MKC_F2;
break;
case MKC_Y:
key = MKC_Escape;
break;
case MKC_Z:
key = MKC_F1;
break;
default:
break;
}
Keyboard_UpdateKeyMap(key, down);
}
}
LOCALPROC DisconnectKeyCodes1(uint32_t KeepMask)
{
DisconnectKeyCodes(KeepMask);
if (! (0 != (KeepMask & kKeepMaskCommand))) {
AltKeysTrueCmnd = false;
}
if (! (0 != (KeepMask & kKeepMaskOption))) {
AltKeysTrueOption = false;
}
if (! (0 != (KeepMask & kKeepMaskShift))) {
AltKeysTrueShift = false;
}
AltKeysModOn = AltKeysTrueCmnd
|| AltKeysTrueOption || AltKeysTrueShift;
AltKeysTextOn = AltKeysLockText || AltKeysModOn;
}
LOCALPROC DrawAltKeyMode(void)
{
int i;
CurCellv0 = ControlBoxv0;
CurCellh0 = ControlBoxh0;
DrawCellAdvance(kInsertText00);
for (i = (ControlBoxw - 4) / 2; --i >= 0; ) {
DrawCellAdvance(kInsertText04);
}
DrawCellAdvance(kInsertText01);
DrawCellAdvance(kInsertText02);
for (i = (ControlBoxw - 4) / 2; --i >= 0; ) {
DrawCellAdvance(kInsertText04);
}
DrawCellAdvance(kInsertText03);
}

View File

@ -1,29 +0,0 @@
/*
HW/KBRD/ALTKEYSM.h
Copyright (C) 2007 Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
license for more details.
*/
/*
ALTernate KEYs Mode
*/
#include "SYSDEPNS.h"
#ifndef ALTKEYSM_H
#define ALTKEYSM_H
LOCALPROC CheckAltKeyUseMode(void);
LOCALPROC Keyboard_UpdateKeyMap1(uint8_t key, bool down);
LOCALPROC DisconnectKeyCodes1(uint32_t KeepMask);
LOCALPROC DrawAltKeyMode(void);
#endif

View File

@ -18,6 +18,8 @@
InterNaTionAL CHARacters
*/
/* TODO: Move this to a PCF, BDF, or FON bitmap font format */
/* master copy of private font data */
/*
Data in commments:
@ -623,23 +625,6 @@ LOCALVAR const uint8_t CellData[] = {
/* kCellIcon23 */
0x10, 0x10, 0x10, 0xE0, 0x20, 0x20, 0x20, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#if EnableAltKeysMode
/* kInsertText00 */
0xFF, 0x80, 0x80, 0x80, 0x80, 0x83, 0x80, 0x80,
0x80, 0x80, 0x83, 0x80, 0x80, 0x80, 0x80, 0xFF,
/* kInsertText01 */
0xFF, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x19,
0x1B, 0x1E, 0x1C, 0x18, 0x10, 0x00, 0x00, 0xFF,
/* kInsertText02 */
0xFF, 0x00, 0x00, 0x18, 0x30, 0x60, 0xC0, 0x80,
0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFF,
/* kInsertText03 */
0xFF, 0x01, 0x01, 0x01, 0x01, 0xC1, 0x01, 0x01,
0x01, 0x01, 0xC1, 0x01, 0x01, 0x01, 0x01, 0xFF,
/* kInsertText04 */
0xFF, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x00, 0x00,
0x00, 0x00, 0xC3, 0x00, 0x00, 0x00, 0x00, 0xFF,
#endif
0x00 /* just so last above line can end in ',' */
};
@ -849,13 +834,6 @@ enum {
kCellIcon21,
kCellIcon22,
kCellIcon23,
#if EnableAltKeysMode
kInsertText00,
kInsertText01,
kInsertText02,
kInsertText03,
kInsertText04,
#endif
kNumCells
};
@ -1746,13 +1724,6 @@ LOCALFUNC char * GetSubstitutionStr(char x)
s = kStrStoppedOff;
}
break;
case 'l':
if (WantNotAutoSlow) {
s = kStrStoppedOff;
} else {
s = kStrStoppedOn;
}
break;
case 's':
switch (SpeedValue) {
case 0:

View File

@ -46,7 +46,6 @@
#include "PROGMAIN.h"
// Temporary location for config variables
bool EnableAutoSlow = true;
uint16_t vMacScreenHeight = 342;
uint16_t vMacScreenWidth = 512;
uint16_t vMacScreenDepth = 0;
@ -497,18 +496,17 @@ LOCALVAR uint32_t ExtraSubTicksToDo = 0;
LOCALPROC DoEmulateOneTick(void)
{
if (EnableAutoSlow) {
uint32_t NewQuietTime = QuietTime + 1;
uint32_t NewQuietSubTicks = QuietSubTicks + kNumSubTicks;
// AutoSlow
uint32_t NewQuietTime = QuietTime + 1;
uint32_t NewQuietSubTicks = QuietSubTicks + kNumSubTicks;
if (NewQuietTime > QuietTime) {
/* if not overflow */
QuietTime = NewQuietTime;
}
if (NewQuietSubTicks > QuietSubTicks) {
/* if not overflow */
QuietSubTicks = NewQuietSubTicks;
}
if (NewQuietTime > QuietTime) {
/* if not overflow */
QuietTime = NewQuietTime;
}
if (NewQuietSubTicks > QuietSubTicks) {
/* if not overflow */
QuietSubTicks = NewQuietSubTicks;
}
SixtiethSecondNotify();
@ -533,12 +531,7 @@ LOCALFUNC bool MoreSubTicksToDo(void)
bool v = false;
if (ExtraTimeNotOver() && (ExtraSubTicksToDo > 0)) {
if (
EnableAutoSlow
&& (QuietSubTicks >= 16384)
&& (QuietTime >= 34)
&& ! WantNotAutoSlow
) {
if ( (QuietSubTicks >= 16384) && (QuietTime >= 34)) {
ExtraSubTicksToDo = 0;
} else {
v = true;
@ -558,13 +551,11 @@ LOCALPROC DoEmulateExtraTime(void)
if (MoreSubTicksToDo()) {
ExtraTimeBeginNotify();
do {
if (EnableAutoSlow) {
uint32_t NewQuietSubTicks = QuietSubTicks + 1;
uint32_t NewQuietSubTicks = QuietSubTicks + 1;
if (NewQuietSubTicks > QuietSubTicks) {
/* if not overflow */
QuietSubTicks = NewQuietSubTicks;
}
if (NewQuietSubTicks > QuietSubTicks) {
/* if not overflow */
QuietSubTicks = NewQuietSubTicks;
}
m68k_go_nCycles_1(CyclesScaledPerSubTick);
--ExtraSubTicksToDo;

View File

@ -79,8 +79,6 @@ GLOBALVAR bool WantMacReset = false;
GLOBALVAR uint8_t SpeedValue = WantInitSpeedValue;
GLOBALVAR bool WantNotAutoSlow = (WantInitNotAutoSlow != 0);
GLOBALVAR uint16_t CurMouseV = 0;
GLOBALVAR uint16_t CurMouseH = 0;

View File

@ -25,9 +25,6 @@
#endif
enum {
#if EnableAltKeysMode
SpclModeAltKeyText,
#endif
SpclModeNoRom,
SpclModeMessage,
#if UseControlKeys
@ -295,12 +292,8 @@ LOCALPROC DrawSpclMode0(char *Title, SpclModeBody Body)
DrawCellsBottomLine();
}
#if EnableAltKeysMode
#include "HW/KBRD/ALTKEYSM.h"
#else
#define Keyboard_UpdateKeyMap1 Keyboard_UpdateKeyMap
#define DisconnectKeyCodes1 DisconnectKeyCodes
#endif
#if WantAbnormalReports
LOCALPROC ClStrAppendHexNib(int *L0, uint8_t *r, uint8_t v)
@ -469,7 +462,6 @@ enum {
kCntrlMsgNewSpeed,
kCntrlMsgNewStopped,
kCntrlMsgNewRunInBack,
kCntrlMsgNewAutoSlow,
kCntrlMsgAbout,
kCntrlMsgHelp,
kCntrlMsgOptionsStrCopied,
@ -577,25 +569,20 @@ LOCALPROC DoControlModeKey(uint8_t key)
switch (CurControlMode) {
case kCntrlModeBase:
switch (key) {
#if WantEnblCtrlKtg
case MKC_K:
ControlKeyPressed = ! ControlKeyPressed;
ControlMessage = kCntrlMsgEmCntrl;
Keyboard_UpdateKeyMap1(MKC_UnMappedKey,
ControlKeyPressed);
break;
#endif
case MKC_S:
CurControlMode = kCntrlModeSpeedControl;
ControlMessage = kCntrlMsgSpeedControlStart;
break;
#if WantEnblCtrlInt
case MKC_I:
CurControlMode = kCntrlModeConfirmInterrupt;
ControlMessage = kCntrlMsgConfirmInterruptStart;
break;
#endif
#if WantEnblCtrlRst
case MKC_R:
if (! AnyDiskInserted()) {
WantMacReset = true;
@ -605,7 +592,6 @@ LOCALPROC DoControlModeKey(uint8_t key)
ControlMessage = kCntrlMsgConfirmResetStart;
}
break;
#endif
case MKC_Q:
if (! AnyDiskInserted()) {
ForceMacOff = true;
@ -672,7 +658,6 @@ LOCALPROC DoControlModeKey(uint8_t key)
#endif
}
break;
#if WantEnblCtrlRst
case kCntrlModeConfirmReset:
switch (key) {
case MKC_Y:
@ -690,8 +675,6 @@ LOCALPROC DoControlModeKey(uint8_t key)
break;
}
break;
#endif
#if WantEnblCtrlInt
case kCntrlModeConfirmInterrupt:
switch (key) {
case MKC_Y:
@ -709,7 +692,6 @@ LOCALPROC DoControlModeKey(uint8_t key)
break;
}
break;
#endif
case kCntrlModeConfirmQuit:
switch (key) {
case MKC_Y:
@ -746,11 +728,6 @@ LOCALPROC DoControlModeKey(uint8_t key)
ControlMessage = kCntrlMsgNewStopped;
}
break;
case MKC_W:
WantNotAutoSlow = ! WantNotAutoSlow;
CurControlMode = kCntrlModeBase;
ControlMessage = kCntrlMsgNewAutoSlow;
break;
case MKC_Z:
SetSpeedValue(0);
break;
@ -783,16 +760,12 @@ LOCALFUNC char * ControlMode2TitleStr(void)
char *s;
switch (CurControlMode) {
#if WantEnblCtrlRst
case kCntrlModeConfirmReset:
s = kStrModeConfirmReset;
break;
#endif
#if WantEnblCtrlInt
case kCntrlModeConfirmInterrupt:
s = kStrModeConfirmInterrupt;
break;
#endif
case kCntrlModeConfirmQuit:
s = kStrModeConfirmQuit;
break;
@ -848,15 +821,9 @@ LOCALPROC DrawCellsControlModeBody(void)
#if 1
DrawCellsKeyCommand("F", kStrCmdFullScrnToggle);
#endif
#if WantEnblCtrlKtg
DrawCellsKeyCommand("K", kStrCmdCtrlKeyToggle);
#endif
#if WantEnblCtrlRst
DrawCellsKeyCommand("R", kStrCmdReset);
#endif
#if WantEnblCtrlInt
DrawCellsKeyCommand("I", kStrCmdInterrupt);
#endif
DrawCellsKeyCommand("P", kStrCmdCopyOptions);
DrawCellsKeyCommand("H", kStrCmdHelp);
break;
@ -872,9 +839,6 @@ LOCALPROC DrawCellsControlModeBody(void)
DrawCellsBlankLine();
DrawCellsKeyCommand("D", kStrSpeedStopped);
DrawCellsKeyCommand("B", kStrSpeedBackToggle);
if (EnableAutoSlow) {
DrawCellsKeyCommand("W", kStrSpeedAutoSlowToggle);
}
DrawCellsBlankLine();
DrawCellsKeyCommand("E", kStrSpeedExit);
break;
@ -887,9 +851,6 @@ LOCALPROC DrawCellsControlModeBody(void)
case kCntrlMsgNewStopped:
DrawCellsOneLineStr(kStrNewStopped);
break;
case kCntrlMsgNewAutoSlow:
DrawCellsOneLineStr(kStrNewAutoSlow);
break;
case kCntrlMsgMagnify:
DrawCellsOneLineStr(kStrNewMagnify);
break;
@ -903,7 +864,6 @@ LOCALPROC DrawCellsControlModeBody(void)
DrawCellsOneLineStr(kStrHaveCopiedOptions);
break;
#endif
#if WantEnblCtrlRst
case kCntrlMsgConfirmResetStart:
DrawCellsOneLineStr(kStrConfirmReset);
DrawCellsBlankLine();
@ -916,8 +876,6 @@ LOCALPROC DrawCellsControlModeBody(void)
case kCntrlMsgResetCancelled:
DrawCellsOneLineStr(kStrCancelledReset);
break;
#endif
#if WantEnblCtrlInt
case kCntrlMsgConfirmInterruptStart:
DrawCellsOneLineStr(kStrConfirmInterrupt);
DrawCellsBlankLine();
@ -930,7 +888,6 @@ LOCALPROC DrawCellsControlModeBody(void)
case kCntrlMsgInterruptCancelled:
DrawCellsOneLineStr(kStrCancelledInterrupt);
break;
#endif
case kCntrlMsgConfirmQuitStart:
DrawCellsOneLineStr(kStrConfirmQuit);
DrawCellsBlankLine();
@ -940,11 +897,9 @@ LOCALPROC DrawCellsControlModeBody(void)
case kCntrlMsgQuitCancelled:
DrawCellsOneLineStr(kStrCancelledQuit);
break;
#if WantEnblCtrlKtg
case kCntrlMsgEmCntrl:
DrawCellsOneLineStr(kStrNewCntrlKey);
break;
#endif
case kCntrlMsgBaseStart:
default:
DrawCellsOneLineStr(kStrHowToLeaveControl);
@ -971,13 +926,7 @@ LOCALPROC DrawSpclMode(void)
} else
if (SpecialModeTst(SpclModeNoRom)) {
DrawNoRomMode();
} else
#if EnableAltKeysMode
if (SpecialModeTst(SpclModeAltKeyText)) {
DrawAltKeyMode();
} else
#endif
{
} else {
/* should not get here */
}
}
@ -1125,15 +1074,7 @@ LOCALPROC Keyboard_UpdateKeyMap2(uint8_t key, bool down)
Keyboard_UpdateControlKey(down);
} else
#endif
if ((0 == SpecialModes)
#if EnableAltKeysMode
|| (0 == (SpecialModes & ~ (
0 | (1 << SpclModeAltKeyText)
)))
#endif
|| (MKC_CapsLock == key)
)
{
if ((0 == SpecialModes) || (MKC_CapsLock == key)) {
/* pass through */
Keyboard_UpdateKeyMap1(key, down);
} else {

View File

@ -206,8 +206,6 @@ EXPORTOSGLUFUNC bool ExtraTimeNotOver(void);
EXPORTVAR(uint8_t, SpeedValue)
EXPORTVAR(bool, WantNotAutoSlow)
/* where emulated machine thinks mouse is */
EXPORTVAR(uint16_t, CurMouseV)
EXPORTVAR(uint16_t, CurMouseH)