ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/vt102/vt102
(Generate patch)

Comparing vt102/vt102 (file contents):
Revision 1.31 by root, Mon Dec 8 10:01:52 2014 UTC vs.
Revision 1.32 by root, Wed Dec 17 03:06:21 2014 UTC

548 548
549 $scr .= "\e[?5" . ($DC11_REVERSE ? "h" : "l"); 549 $scr .= "\e[?5" . ($DC11_REVERSE ? "h" : "l");
550 550
551 line: 551 line:
552 for my $y (0 .. 25) { # ntsc, two vblank delay lines, up to 24 text lines 552 for my $y (0 .. 25) { # ntsc, two vblank delay lines, up to 24 text lines
553 my $prev_sgr; 553 my $prev_attr;
554 my ($c, $attr); # declare here for speedup
554 555
555 $scr .= sprintf "%2d \xe2\x94\x82", $y; 556 $scr .= sprintf "%2d \xe2\x94\x82", $y;
556 557
557 for (0..139) { 558 for (0..139) {
558 my $c = $M[$i]; 559 $c = $M[$i];
559 560
560 if ($c == 0x7f) { # also 0xff, but the firmware avoids that 561 if ($c == 0x7f) { # also 0xff, but the firmware avoids that
561 $scr .= "\e[m\xe2\x94\x82\e[K\n"; 562 $scr .= "\e[m\xe2\x94\x82\e[K\n";
562 563
563 my $a1 = $M[$i + 1]; 564 my $a1 = $M[$i + 1];
566 $i = 0x2000 + (($a1 * 256 + $a0) & 0xfff); 567 $i = 0x2000 + (($a1 * 256 + $a0) & 0xfff);
567 568
568 next line; 569 next line;
569 } 570 }
570 571
572 $scr .= $SGR[$prev_attr = $attr]
571 my $sgr = $SGR[ ($M[$i++ + 0x1000] & 15) | ($c & 0x80)]; 573 if $prev_attr != ($attr = ($M[$i++ + 0x1000] & 15) | ($c & 0x80));
572
573 $scr .= $prev_sgr = $sgr if $sgr ne $prev_sgr;
574 574
575 $scr .= $CHARMAP[$c & 0x7f]; 575 $scr .= $CHARMAP[$c & 0x7f];
576 } 576 }
577 577
578 $scr .= "\e[K\nvideo overflow\e[K\n"; 578 $scr .= "\e[K\nvideo overflow\e[K\n";

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines