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
*prnpos = 0;
break;
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.
if (buf[j] == 13 || buf[j] == 10 || (buf[j] >= 32 && buf[j] <= 127)) {
if (cterm->extattr & CTERM_EXTATTR_PRESTEL_MOSAIC) {
......
......@@ -4,6 +4,7 @@ Fix regression in Atari auto-login
Disable Prestel ENQ/Memory in BBC Micro Mode 7
Fix error adding a new Web List
Enable cursor for Mode 7
Adjust Prestel/Mode 7 mappings
Version 1.5
------------
......
......@@ -4824,11 +4824,24 @@ doterm(struct bbslist *bbs)
else if (key && (cterm->emulation == CTERM_EMULATION_PRESTEL || cterm->emulation == CTERM_EMULATION_BEEB)) {
switch (key) {
case '_':
ch[0] = '#';
if (cterm->emulation == CTERM_EMULATION_PRESTEL)
ch[0] = '`';
else
ch[0] = '_';
conn_send(ch, 1, 0);
break;
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);
break;
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