1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-06-25 18:30:07 +00:00

Makes basic typing adaptations.

This commit is contained in:
Thomas Harte 2020-02-29 19:59:51 -05:00
parent 6e4bd4f505
commit b33f568fdd
3 changed files with 15 additions and 6 deletions

View File

@ -46,7 +46,7 @@ uint16_t *CharacterMapper::sequence_for_character(char character) {
/* ACK */ X, /* BEL */ X,
/* BS */ SHIFT(Key0), /* HT */ X,
/* LF */ KEYS(KeyEnter), /* VT */ X,
/* FF */ X, /* CR */ X,
/* FF */ X, /* CR */ KEYS(KeyEnter),
/* SO */ X, /* SI */ X,
/* DLE */ X, /* DC1 */ X,
/* DC2 */ X, /* DC3 */ X,
@ -112,7 +112,7 @@ uint16_t *CharacterMapper::sequence_for_character(char character) {
/* ACK */ X, /* BEL */ X,
/* BS */ SHIFT(Key0), /* HT */ X,
/* LF */ KEYS(KeyEnter), /* VT */ X,
/* FF */ X, /* CR */ X,
/* FF */ X, /* CR */ KEYS(KeyEnter),
/* SO */ X, /* SI */ X,
/* DLE */ X, /* DC1 */ X,
/* DC2 */ X, /* DC3 */ X,

View File

@ -32,7 +32,7 @@ struct KeyboardMapper: public KeyboardMachine::MappedMachine::KeyboardMapper {
class CharacterMapper: public ::Utility::CharacterMapper {
public:
CharacterMapper(bool is_zx81);
uint16_t *sequence_for_character(char character);
uint16_t *sequence_for_character(char character) override;
private:
bool is_zx81_;

View File

@ -340,7 +340,11 @@ template<bool is_zx81> class ConcreteMachine:
}
void type_string(const std::string &string) final {
Utility::TypeRecipient::add_typer(string, std::make_unique<CharacterMapper>(is_zx81));
if(typer_) {
typer_->append(string);
} else {
Utility::TypeRecipient::add_typer(string, std::make_unique<CharacterMapper>(is_zx81));
}
}
// MARK: - Keyboard
@ -373,8 +377,13 @@ template<bool is_zx81> class ConcreteMachine:
}
// MARK: - Typer timing
HalfCycles get_typer_delay() final { return Cycles(7000000); }
HalfCycles get_typer_frequency() final { return Cycles(390000); }
HalfCycles get_typer_delay() final {
return z80_.get_is_resetting() ? Cycles(7'000'000) : Cycles(0);
}
HalfCycles get_typer_frequency() final {
return Cycles(390'000);
}
KeyboardMapper *get_keyboard_mapper() final {
return &keyboard_mapper_;