Skip to content
Snippets Groups Projects
Commit a2852408 authored by Deucе's avatar Deucе :ok_hand_tone4:
Browse files

Fix mappings in Beeb and Prestel modes

In Beeb mode, receiving the byte on the left prints the one
on the right:

# -> #
_ -> —
` -> £

In Prestel:
# -> £
_ -> #
` -> —

Keyboard mappings adjusted so what you press is what you see.
parent 8379c120
No related branches found
No related tags found
No related merge requests found
Pipeline #8181 passed
...@@ -6184,6 +6184,13 @@ CIOLIBEXPORT size_t cterm_write(struct cterminal * cterm, const void *vbuf, int ...@@ -6184,6 +6184,13 @@ CIOLIBEXPORT size_t cterm_write(struct cterminal * cterm, const void *vbuf, int
*prnpos = 0; *prnpos = 0;
break; break;
default: default:
// Mode 7 VDU translates to/from ASCII...
if (ch[0] == '#')
ch[0] = '_';
else if (ch[0] == '_')
ch[0] = '`';
else if (ch[0] == '`')
ch[0] = '#';
// "Normal" ASCII... including CR and LF in here. // "Normal" ASCII... including CR and LF in here.
if (buf[j] == 13 || buf[j] == 10 || (buf[j] >= 32 && buf[j] <= 127)) { if (buf[j] == 13 || buf[j] == 10 || (buf[j] >= 32 && buf[j] <= 127)) {
if (cterm->extattr & CTERM_EXTATTR_PRESTEL_MOSAIC) { if (cterm->extattr & CTERM_EXTATTR_PRESTEL_MOSAIC) {
......
...@@ -4,6 +4,7 @@ Fix regression in Atari auto-login ...@@ -4,6 +4,7 @@ Fix regression in Atari auto-login
Disable Prestel ENQ/Memory in BBC Micro Mode 7 Disable Prestel ENQ/Memory in BBC Micro Mode 7
Fix error adding a new Web List Fix error adding a new Web List
Enable cursor for Mode 7 Enable cursor for Mode 7
Adjust Prestel/Mode 7 mappings
Version 1.5 Version 1.5
------------ ------------
......
...@@ -4824,11 +4824,24 @@ doterm(struct bbslist *bbs) ...@@ -4824,11 +4824,24 @@ doterm(struct bbslist *bbs)
else if (key && (cterm->emulation == CTERM_EMULATION_PRESTEL || cterm->emulation == CTERM_EMULATION_BEEB)) { else if (key && (cterm->emulation == CTERM_EMULATION_PRESTEL || cterm->emulation == CTERM_EMULATION_BEEB)) {
switch (key) { switch (key) {
case '_': case '_':
ch[0] = '#'; if (cterm->emulation == CTERM_EMULATION_PRESTEL)
ch[0] = '`';
else
ch[0] = '_';
conn_send(ch, 1, 0); conn_send(ch, 1, 0);
break; break;
case '#': case '#':
ch[0] = '_'; if (cterm->emulation == CTERM_EMULATION_PRESTEL)
ch[0] = '_';
else
ch[0] = '#';
conn_send(ch, 1, 0);
break;
case '`':
if (cterm->emulation == CTERM_EMULATION_PRESTEL)
ch[0] = '#';
else
ch[0] = '`';
conn_send(ch, 1, 0); conn_send(ch, 1, 0);
break; break;
case 10: case 10:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment