mirror of
https://github.com/TomHarte/CLK.git
synced 2024-10-18 23:23:56 +00:00
Optimises Electron typer speed.
This commit is contained in:
parent
41d2062342
commit
3c103506c9
@ -405,11 +405,11 @@ class ConcreteMachine:
|
|||||||
}
|
}
|
||||||
|
|
||||||
HalfCycles get_typer_delay() final {
|
HalfCycles get_typer_delay() final {
|
||||||
return m6502_.get_is_resetting() ? Cycles(625*25*128) : Cycles(0); // wait one second if resetting
|
return m6502_.get_is_resetting() ? Cycles(750'000) : Cycles(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
HalfCycles get_typer_frequency() final {
|
HalfCycles get_typer_frequency() final {
|
||||||
return Cycles(625*128*2); // accept a new character every two frames
|
return Cycles(60'000);
|
||||||
}
|
}
|
||||||
|
|
||||||
void type_string(const std::string &string) final {
|
void type_string(const std::string &string) final {
|
||||||
|
@ -66,7 +66,7 @@ uint16_t *CharacterMapper::sequence_for_character(char character) {
|
|||||||
/* ACK */ X, /* BEL */ X,
|
/* ACK */ X, /* BEL */ X,
|
||||||
/* BS */ KEYS(KeyDelete), /* HT */ X,
|
/* BS */ KEYS(KeyDelete), /* HT */ X,
|
||||||
/* LF */ KEYS(KeyReturn), /* VT */ X,
|
/* LF */ KEYS(KeyReturn), /* VT */ X,
|
||||||
/* FF */ X, /* CR */ X,
|
/* FF */ X, /* CR */ KEYS(KeyReturn),
|
||||||
/* SO */ X, /* SI */ X,
|
/* SO */ X, /* SI */ X,
|
||||||
/* DLE */ X, /* DC1 */ X,
|
/* DLE */ X, /* DC1 */ X,
|
||||||
/* DC2 */ X, /* DC3 */ X,
|
/* DC2 */ X, /* DC3 */ X,
|
||||||
@ -123,7 +123,7 @@ uint16_t *CharacterMapper::sequence_for_character(char character) {
|
|||||||
/* x */ SHIFT(KeyX), /* y */ SHIFT(KeyY),
|
/* x */ SHIFT(KeyX), /* y */ SHIFT(KeyY),
|
||||||
/* z */ SHIFT(KeyZ), /* { */ CTRL(KeyUp),
|
/* z */ SHIFT(KeyZ), /* { */ CTRL(KeyUp),
|
||||||
/* | */ SHIFT(KeyRight), /* } */ CTRL(KeyDown),
|
/* | */ SHIFT(KeyRight), /* } */ CTRL(KeyDown),
|
||||||
/* ~ */ CTRL(KeyLeft)
|
/* ~ */ CTRL(KeyLeft), /* DEL */ KEYS(KeyDelete),
|
||||||
};
|
};
|
||||||
#undef KEYS
|
#undef KEYS
|
||||||
#undef SHIFT
|
#undef SHIFT
|
||||||
@ -131,3 +131,7 @@ uint16_t *CharacterMapper::sequence_for_character(char character) {
|
|||||||
|
|
||||||
return table_lookup_sequence_for_character(key_sequences, sizeof(key_sequences), character);
|
return table_lookup_sequence_for_character(key_sequences, sizeof(key_sequences), character);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CharacterMapper::needs_pause_after_key(uint16_t key) {
|
||||||
|
return key != KeyControl && key != KeyShift && key != KeyFunc;
|
||||||
|
}
|
||||||
|
@ -38,7 +38,10 @@ struct KeyboardMapper: public KeyboardMachine::MappedMachine::KeyboardMapper {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct CharacterMapper: public ::Utility::CharacterMapper {
|
struct CharacterMapper: public ::Utility::CharacterMapper {
|
||||||
uint16_t *sequence_for_character(char character);
|
uint16_t *sequence_for_character(char character) override;
|
||||||
|
|
||||||
|
bool needs_pause_after_reset_all_keys() override { return false; }
|
||||||
|
bool needs_pause_after_key(uint16_t key) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user