--- vt102/vt102 2014/12/08 10:01:52 1.31 +++ vt102/vt102 2014/12/17 03:06:21 1.32 @@ -550,12 +550,13 @@ line: for my $y (0 .. 25) { # ntsc, two vblank delay lines, up to 24 text lines - my $prev_sgr; + my $prev_attr; + my ($c, $attr); # declare here for speedup $scr .= sprintf "%2d \xe2\x94\x82", $y; for (0..139) { - my $c = $M[$i]; + $c = $M[$i]; if ($c == 0x7f) { # also 0xff, but the firmware avoids that $scr .= "\e[m\xe2\x94\x82\e[K\n"; @@ -568,9 +569,8 @@ next line; } - my $sgr = $SGR[ ($M[$i++ + 0x1000] & 15) | ($c & 0x80)]; - - $scr .= $prev_sgr = $sgr if $sgr ne $prev_sgr; + $scr .= $SGR[$prev_attr = $attr] + if $prev_attr != ($attr = ($M[$i++ + 0x1000] & 15) | ($c & 0x80)); $scr .= $CHARMAP[$c & 0x7f]; }