From a78f71de3376603d7528e9891a7570526db159b2 Mon Sep 17 00:00:00 2001 From: Marco Maccaferri Date: Fri, 20 Apr 2018 21:44:58 +0200 Subject: [PATCH] Added wordstar-compatible cursor movement sequences --- keyboard.spin | 2 ++ keymap_de.spin | 4 ++-- keymap_fr.spin | 4 ++-- keymap_it.spin | 4 ++-- keymap_uk.spin | 4 ++-- keymap_us.spin | 4 ++-- vt100.spin | 25 +++++++++++++++++++++++++ 7 files changed, 37 insertions(+), 10 deletions(-) diff --git a/keyboard.spin b/keyboard.spin index 35b0c39..a0abe9f 100644 --- a/keyboard.spin +++ b/keyboard.spin @@ -54,6 +54,8 @@ CON KeyKP_Center KeyKP_Comma KeyKP_Period + KeyShiftLeft + KeyShiftRight KeyMaxCode PUB null diff --git a/keymap_de.spin b/keymap_de.spin index 58c7494..9cf692f 100644 --- a/keymap_de.spin +++ b/keymap_de.spin @@ -94,8 +94,8 @@ keymap word kb#KeyDelete, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x4C word kb#KeyEnd, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x4D word kb#KeyPageDown, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x4E - word kb#KeyRight, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x4F - word kb#KeyLeft, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x50 + word kb#KeyRight, kb#KeyShiftRight, kb#KeyNone, kb#KeyNone ' 0x4F + word kb#KeyLeft, kb#KeyShiftLeft, kb#KeyNone, kb#KeyNone ' 0x50 word kb#KeyDown, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x51 word kb#KeyUp, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x52 word kb#KeyNumLock, kb#KeyNumLock, kb#KeyNone, kb#KeyNone ' 0x53 diff --git a/keymap_fr.spin b/keymap_fr.spin index 2b7a197..c9a4d21 100644 --- a/keymap_fr.spin +++ b/keymap_fr.spin @@ -94,8 +94,8 @@ keymap word kb#KeyDelete, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x4C word kb#KeyEnd, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x4D word kb#KeyPageDown, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x4E - word kb#KeyRight, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x4F - word kb#KeyLeft, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x50 + word kb#KeyRight, kb#KeyShiftRight, kb#KeyNone, kb#KeyNone ' 0x4F + word kb#KeyLeft, kb#KeyShiftLeft, kb#KeyNone, kb#KeyNone ' 0x50 word kb#KeyDown, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x51 word kb#KeyUp, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x52 word kb#KeyNumLock, kb#KeyNumLock, kb#KeyNone, kb#KeyNone ' 0x53 diff --git a/keymap_it.spin b/keymap_it.spin index 18ab36e..325f6a8 100644 --- a/keymap_it.spin +++ b/keymap_it.spin @@ -94,8 +94,8 @@ keymap word kb#KeyDelete, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x4C word kb#KeyEnd, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x4D word kb#KeyPageDown, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x4E - word kb#KeyRight, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x4F - word kb#KeyLeft, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x50 + word kb#KeyRight, kb#KeyShiftRight, kb#KeyNone, kb#KeyNone ' 0x4F + word kb#KeyLeft, kb#KeyShiftLeft, kb#KeyNone, kb#KeyNone ' 0x50 word kb#KeyDown, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x51 word kb#KeyUp, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x52 word kb#KeyNumLock, kb#KeyNumLock, kb#KeyNone, kb#KeyNone ' 0x53 diff --git a/keymap_uk.spin b/keymap_uk.spin index f0f4aff..d4f15c1 100644 --- a/keymap_uk.spin +++ b/keymap_uk.spin @@ -94,8 +94,8 @@ keymap word kb#KeyDelete, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x4C word kb#KeyEnd, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x4D word kb#KeyPageDown, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x4E - word kb#KeyRight, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x4F - word kb#KeyLeft, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x50 + word kb#KeyRight, kb#KeyShiftRight, kb#KeyNone, kb#KeyNone ' 0x4F + word kb#KeyLeft, kb#KeyShiftLeft, kb#KeyNone, kb#KeyNone ' 0x50 word kb#KeyDown, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x51 word kb#KeyUp, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x52 word kb#KeyNumLock, kb#KeyNumLock, kb#KeyNone, kb#KeyNone ' 0x53 diff --git a/keymap_us.spin b/keymap_us.spin index 4f727f2..8324370 100644 --- a/keymap_us.spin +++ b/keymap_us.spin @@ -94,8 +94,8 @@ keymap word kb#KeyDelete, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x4C word kb#KeyEnd, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x4D word kb#KeyPageDown, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x4E - word kb#KeyRight, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x4F - word kb#KeyLeft, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x50 + word kb#KeyRight, kb#KeyShiftRight, kb#KeyNone, kb#KeyNone ' 0x4F + word kb#KeyLeft, kb#KeyShiftLeft, kb#KeyNone, kb#KeyNone ' 0x50 word kb#KeyDown, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x51 word kb#KeyUp, kb#KeyNone, kb#KeyNone, kb#KeyNone ' 0x52 word kb#KeyNumLock, kb#KeyNumLock, kb#KeyNone, kb#KeyNone ' 0x53 diff --git a/vt100.spin b/vt100.spin index 0c6e0d1..0864070 100644 --- a/vt100.spin +++ b/vt100.spin @@ -848,6 +848,10 @@ PRI showError(error, message) : bool return 1 return 0 +CON + + #1, CTRL_A, CTRL_B, CTRL_C, CTRL_D, CTRL_E, CTRL_F, CTRL_G, CTRL_H, CTRL_I, CTRL_J, CTRL_K, CTRL_L, CTRL_M, CTRL_N, CTRL_O, CTRL_P, CTRL_Q, CTRL_R, CTRL_S, CTRL_T, CTRL_U, CTRL_V, CTRL_W, CTRL_X, CTRL_Y, CTRL_Z, ESC + DAT strTable word @strKeySpace @@ -901,12 +905,29 @@ strTable word @strKeySpace word @strKeyKP_Center word @strKeyKP_Comma word @strKeyKP_Period + word @strKeyShiftLeft + word @strKeyShiftRight strKeySpace byte " ", 0 strKeyEscape byte $1B, 0 strKeyBackspace byte $08, 0 strKeyTabulator byte $09, 0 strKeyReturn byte $0D, 0 + +#ifdef WORDSTAR +strKeyInsert byte CTRL_V, 0 +strKeyHome byte CTRL_Q, "S", 0 +strKeyPageUp byte CTRL_R, 0 +strKeyDelete byte CTRL_G, 0 +strKeyEnd byte CTRL_Q, "D", 0 +strKeyPageDown byte CTRL_C, 0 +strKeyUp byte CTRL_E, 0 +strKeyDown byte CTRL_X, 0 +strKeyLeft byte CTRL_S, 0 +strKeyRight byte CTRL_D, 0 +strKeyShiftLeft byte CTRL_A, 0 +strKeyShiftRight byte CTRL_F, 0 +#else strKeyInsert byte 0 strKeyHome byte $1B, "[H", 0 strKeyPageUp byte 0 @@ -917,6 +938,10 @@ strKeyUp byte $1B, "OA", 0 strKeyDown byte $1B, "OB", 0 strKeyLeft byte $1B, "OD", 0 strKeyRight byte $1B, "OC", 0 +strKeyShiftLeft byte 0 +strKeyShiftRight byte 0 +#endif + strKeyF1 byte $1B, "OP", 0 strKeyF2 byte $1B, "OQ", 0 strKeyF3 byte $1B, "OR", 0