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

Disable Prestel ENQ/Memory in BBC Micro Mode 7

There's very little evidence that Prestel terminals supported this,
and zero evidence that BBC Micro terminals did.

ESC and ENQ are ignored like all other control characters in Mode 7
now.
parent 27077514
No related branches found
No related tags found
No related merge requests found
Pipeline #8173 passed
...@@ -4488,7 +4488,7 @@ cterm_reset(struct cterminal *cterm) ...@@ -4488,7 +4488,7 @@ cterm_reset(struct cterminal *cterm)
struct cterminal* cterm_init(int height, int width, int xpos, int ypos, int backlines, int backcols, struct vmem_cell *scrollback, int emulation) struct cterminal* cterm_init(int height, int width, int xpos, int ypos, int backlines, int backcols, struct vmem_cell *scrollback, int emulation)
{ {
char *revision="$Revision: 1.318 $"; char *revision="$Revision: 1.319 $";
char *in; char *in;
char *out; char *out;
struct cterminal *cterm; struct cterminal *cterm;
...@@ -4530,7 +4530,7 @@ struct cterminal* cterm_init(int height, int width, int xpos, int ypos, int back ...@@ -4530,7 +4530,7 @@ struct cterminal* cterm_init(int height, int width, int xpos, int ypos, int back
sem_init(&cterm->playnote_thread_terminated,0,0); sem_init(&cterm->playnote_thread_terminated,0,0);
_beginthread(playnote_thread, 0, cterm); _beginthread(playnote_thread, 0, cterm);
} }
if (cterm->emulation == CTERM_EMULATION_PRESTEL || cterm->emulation == CTERM_EMULATION_BEEB) { if (cterm->emulation == CTERM_EMULATION_PRESTEL) {
cterm->cursor = _NOCURSOR; cterm->cursor = _NOCURSOR;
ciolib_setcursortype(cterm->cursor); ciolib_setcursortype(cterm->cursor);
memcpy(cterm->prestel_data[0], "????????????????", PRESTEL_MEM_SLOT_SIZE); memcpy(cterm->prestel_data[0], "????????????????", PRESTEL_MEM_SLOT_SIZE);
...@@ -5351,7 +5351,7 @@ CIOLIBEXPORT size_t cterm_write(struct cterminal * cterm, const void *vbuf, int ...@@ -5351,7 +5351,7 @@ CIOLIBEXPORT size_t cterm_write(struct cterminal * cterm, const void *vbuf, int
} }
} }
else if(cterm->sequence) { else if(cterm->sequence) {
if (cterm->emulation == CTERM_EMULATION_PRESTEL || cterm->emulation == CTERM_EMULATION_BEEB) { if (cterm->emulation == CTERM_EMULATION_PRESTEL) {
if (cterm->prestel_prog_state == PRESTEL_PROG_NONE) { if (cterm->prestel_prog_state == PRESTEL_PROG_NONE) {
if (ch[0] == '1') if (ch[0] == '1')
cterm->prestel_prog_state = PRESTEL_PROG_1; cterm->prestel_prog_state = PRESTEL_PROG_1;
...@@ -5970,9 +5970,6 @@ CIOLIBEXPORT size_t cterm_write(struct cterminal * cterm, const void *vbuf, int ...@@ -5970,9 +5970,6 @@ CIOLIBEXPORT size_t cterm_write(struct cterminal * cterm, const void *vbuf, int
prn[0]=0; prn[0]=0;
prnpos = prn; prnpos = prn;
break; break;
case 5: // ENQ
prestel_send_memory(cterm, 0, retbuf, retsize);
break;
case 8: // APB (Active Position Backward) case 8: // APB (Active Position Backward)
uctputs(cterm, prn); uctputs(cterm, prn);
prn[0]=0; prn[0]=0;
...@@ -6014,19 +6011,28 @@ CIOLIBEXPORT size_t cterm_write(struct cterminal * cterm, const void *vbuf, int ...@@ -6014,19 +6011,28 @@ CIOLIBEXPORT size_t cterm_write(struct cterminal * cterm, const void *vbuf, int
cterm->cursor=_NOCURSOR; cterm->cursor=_NOCURSOR;
ciolib_setcursortype(cterm->cursor); ciolib_setcursortype(cterm->cursor);
break; break;
case 27: // ESC case 30: // APH (Active Position Home)
uctputs(cterm, prn); uctputs(cterm, prn);
prn[0]=0; prn[0]=0;
prnpos = prn; prnpos = prn;
cterm->sequence=1; gotoxy(CURR_MINX, CURR_MINY);
prestel_new_line(cterm);
break; break;
case 30: // APH (Active Position Home) case 27: // ESC
if(cterm->emulation == CTERM_EMULATION_PRESTEL) {
uctputs(cterm, prn); uctputs(cterm, prn);
prn[0]=0; prn[0]=0;
prnpos = prn; prnpos = prn;
gotoxy(CURR_MINX, CURR_MINY); cterm->sequence=1;
prestel_new_line(cterm);
break; break;
}
// Fall-through
case 5: // ENQ
if(cterm->emulation == CTERM_EMULATION_PRESTEL) {
prestel_send_memory(cterm, 0, retbuf, retsize);
break;
}
// Fall-through
default: default:
// "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)) {
......
Version 1.6b Version 1.6b
------------ ------------
Fix regression in Atari auto-login Fix regression in Atari auto-login
Disable Prestel ENQ/Memory in BBC Micro Mode 7
Version 1.5 Version 1.5
------------ ------------
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment