diff options
| -rw-r--r-- | sys/pc98/cbus/scterm-sck.c | 24 | ||||
| -rw-r--r-- | sys/pc98/pc98/scterm-sck.c | 24 |
2 files changed, 34 insertions, 14 deletions
diff --git a/sys/pc98/cbus/scterm-sck.c b/sys/pc98/cbus/scterm-sck.c index 8a05e8374832..bbf8ddac2bbc 100644 --- a/sys/pc98/cbus/scterm-sck.c +++ b/sys/pc98/cbus/scterm-sck.c @@ -487,6 +487,11 @@ scterm_scan_esc(scr_stat *scp, term_stat *tcp, u_char c) tcp->cur_color.fg = ansi_col[n - 30]; tcp->cur_attr = mask2attr(tcp); break; + case 39: + tcp->attr_mask &= ~FG_CHANGED; + tcp->cur_color.fg = tcp->std_color.fg; + tcp->cur_attr = mask2attr(tcp); + break; case 40: case 41: /* set bg color */ case 42: case 43: case 44: case 45: case 46: case 47: @@ -494,6 +499,11 @@ scterm_scan_esc(scr_stat *scp, term_stat *tcp, u_char c) tcp->cur_color.bg = ansi_col[n - 40]; tcp->cur_attr = mask2attr(tcp); break; + case 49: + tcp->attr_mask &= ~BG_CHANGED; + tcp->cur_color.bg = tcp->std_color.bg; + tcp->cur_attr = mask2attr(tcp); + break; } } break; @@ -515,7 +525,7 @@ scterm_scan_esc(scr_stat *scp, term_stat *tcp, u_char c) else n = tcp->param[0]; switch (n) { - case 0: /* reset attributes */ + case 0: /* reset colors and attributes */ tcp->attr_mask = NORMAL_ATTR; tcp->cur_color = tcp->std_color = tcp->dflt_std_color; @@ -534,7 +544,7 @@ scterm_scan_esc(scr_stat *scp, term_stat *tcp, u_char c) ansi_col[tcp->param[1] & 0x0f]; tcp->cur_attr = mask2attr(tcp); break; - case 3: /* set ansi attribute directly */ + case 3: /* set video attribute directly */ tcp->attr_mask &= ~(FG_CHANGED | BG_CHANGED); tcp->cur_color.fg = tcp->std_color.fg = tcp->param[1] & 0x0f; @@ -552,7 +562,7 @@ scterm_scan_esc(scr_stat *scp, term_stat *tcp, u_char c) ansi_col[tcp->param[1] & 0x0f]; tcp->cur_attr = mask2attr(tcp); break; - case 7: /* set ansi reverse video directly */ + case 7: /* set reverse video attribute directly */ tcp->rev_color.fg = tcp->param[1] & 0x0f; tcp->rev_color.bg = (tcp->param[1] >> 4) & 0x0f; tcp->cur_attr = mask2attr(tcp); @@ -632,7 +642,7 @@ scterm_scan_esc(scr_stat *scp, term_stat *tcp, u_char c) splx(i); break; - case 'F': /* set ansi foreground */ + case 'F': /* set foreground */ if (tcp->num_param == 1) { tcp->attr_mask &= ~FG_CHANGED; tcp->cur_color.fg = tcp->std_color.fg = @@ -641,7 +651,7 @@ scterm_scan_esc(scr_stat *scp, term_stat *tcp, u_char c) } break; - case 'G': /* set ansi background */ + case 'G': /* set background */ if (tcp->num_param == 1) { tcp->attr_mask &= ~BG_CHANGED; tcp->cur_color.bg = tcp->std_color.bg = @@ -650,14 +660,14 @@ scterm_scan_esc(scr_stat *scp, term_stat *tcp, u_char c) } break; - case 'H': /* set ansi reverse video foreground */ + case 'H': /* set reverse video foreground */ if (tcp->num_param == 1) { tcp->rev_color.fg = tcp->param[0] & 0x0f; tcp->cur_attr = mask2attr(tcp); } break; - case 'I': /* set ansi reverse video background */ + case 'I': /* set reverse video background */ if (tcp->num_param == 1) { tcp->rev_color.bg = tcp->param[0] & 0x0f; tcp->cur_attr = mask2attr(tcp); diff --git a/sys/pc98/pc98/scterm-sck.c b/sys/pc98/pc98/scterm-sck.c index 8a05e8374832..bbf8ddac2bbc 100644 --- a/sys/pc98/pc98/scterm-sck.c +++ b/sys/pc98/pc98/scterm-sck.c @@ -487,6 +487,11 @@ scterm_scan_esc(scr_stat *scp, term_stat *tcp, u_char c) tcp->cur_color.fg = ansi_col[n - 30]; tcp->cur_attr = mask2attr(tcp); break; + case 39: + tcp->attr_mask &= ~FG_CHANGED; + tcp->cur_color.fg = tcp->std_color.fg; + tcp->cur_attr = mask2attr(tcp); + break; case 40: case 41: /* set bg color */ case 42: case 43: case 44: case 45: case 46: case 47: @@ -494,6 +499,11 @@ scterm_scan_esc(scr_stat *scp, term_stat *tcp, u_char c) tcp->cur_color.bg = ansi_col[n - 40]; tcp->cur_attr = mask2attr(tcp); break; + case 49: + tcp->attr_mask &= ~BG_CHANGED; + tcp->cur_color.bg = tcp->std_color.bg; + tcp->cur_attr = mask2attr(tcp); + break; } } break; @@ -515,7 +525,7 @@ scterm_scan_esc(scr_stat *scp, term_stat *tcp, u_char c) else n = tcp->param[0]; switch (n) { - case 0: /* reset attributes */ + case 0: /* reset colors and attributes */ tcp->attr_mask = NORMAL_ATTR; tcp->cur_color = tcp->std_color = tcp->dflt_std_color; @@ -534,7 +544,7 @@ scterm_scan_esc(scr_stat *scp, term_stat *tcp, u_char c) ansi_col[tcp->param[1] & 0x0f]; tcp->cur_attr = mask2attr(tcp); break; - case 3: /* set ansi attribute directly */ + case 3: /* set video attribute directly */ tcp->attr_mask &= ~(FG_CHANGED | BG_CHANGED); tcp->cur_color.fg = tcp->std_color.fg = tcp->param[1] & 0x0f; @@ -552,7 +562,7 @@ scterm_scan_esc(scr_stat *scp, term_stat *tcp, u_char c) ansi_col[tcp->param[1] & 0x0f]; tcp->cur_attr = mask2attr(tcp); break; - case 7: /* set ansi reverse video directly */ + case 7: /* set reverse video attribute directly */ tcp->rev_color.fg = tcp->param[1] & 0x0f; tcp->rev_color.bg = (tcp->param[1] >> 4) & 0x0f; tcp->cur_attr = mask2attr(tcp); @@ -632,7 +642,7 @@ scterm_scan_esc(scr_stat *scp, term_stat *tcp, u_char c) splx(i); break; - case 'F': /* set ansi foreground */ + case 'F': /* set foreground */ if (tcp->num_param == 1) { tcp->attr_mask &= ~FG_CHANGED; tcp->cur_color.fg = tcp->std_color.fg = @@ -641,7 +651,7 @@ scterm_scan_esc(scr_stat *scp, term_stat *tcp, u_char c) } break; - case 'G': /* set ansi background */ + case 'G': /* set background */ if (tcp->num_param == 1) { tcp->attr_mask &= ~BG_CHANGED; tcp->cur_color.bg = tcp->std_color.bg = @@ -650,14 +660,14 @@ scterm_scan_esc(scr_stat *scp, term_stat *tcp, u_char c) } break; - case 'H': /* set ansi reverse video foreground */ + case 'H': /* set reverse video foreground */ if (tcp->num_param == 1) { tcp->rev_color.fg = tcp->param[0] & 0x0f; tcp->cur_attr = mask2attr(tcp); } break; - case 'I': /* set ansi reverse video background */ + case 'I': /* set reverse video background */ if (tcp->num_param == 1) { tcp->rev_color.bg = tcp->param[0] & 0x0f; tcp->cur_attr = mask2attr(tcp); |
