aboutsummaryrefslogtreecommitdiffstats
path: root/display.v
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@trantor.hos.anvin.org>2008-12-27 12:02:12 -0800
committerH. Peter Anvin <hpa@trantor.hos.anvin.org>2008-12-27 12:02:12 -0800
commit9383b11b3f37ab4221489d3dbc8d1e5290e295d1 (patch)
treef0ce44b0b9361ee216869195bbb7f031424dfd18 /display.v
parent5f5a545a14660bae940846620f8fc01cfdd3f54c (diff)
downloadabc80-9383b11b3f37ab4221489d3dbc8d1e5290e295d1.tar.gz
abc80-9383b11b3f37ab4221489d3dbc8d1e5290e295d1.tar.xz
abc80-9383b11b3f37ab4221489d3dbc8d1e5290e295d1.zip
Use SW6 for steady cursor, SW5 for printer/V.24
Diffstat (limited to 'display.v')
-rw-r--r--display.v16
1 files changed, 11 insertions, 5 deletions
diff --git a/display.v b/display.v
index d1fd869..3856def 100644
--- a/display.v
+++ b/display.v
@@ -2,6 +2,7 @@ module display (
clk,
width,
reverse,
+ noblink,
reveal,
a,
d,
@@ -14,6 +15,7 @@ module display (
input clk;
input width;
input reverse;
+ input noblink;
input reveal;
output [10:0] a;
input [7:0] d;
@@ -144,8 +146,12 @@ module display (
assign yvideo = ( y < y_blank );
// Flashing
- wire flash_blank = scan_counter[5];
- wire iflash = (inverse & ~flash_blank)^reverse;
+ wire flash_on = scan_counter[5];
+
+ // Inverse video. The normal is a flashing inverse cursor, but
+ // if "noblink" is asserted the cursor is steady inverted. If
+ // "reverse" is asserted with invert everything *on top of that*...
+ wire invert = (inverse & (flash_on|noblink))^reverse;
// Synchronous logic
@@ -154,10 +160,10 @@ module display (
// The x[9:4] means ignore the first character prefetch. We really
// should realign the counters, here.
if ( xvideo & yvideo & ~prefetch )
- if ( pixrow[7] & ~(do_flsh & flash_blank) & ~(do_hide & ~reveal) )
- rgb <= fg ^ {3{iflash}};
+ if ( pixrow[7] & ~(do_flsh & ~flash_on) & ~(do_hide & ~reveal) )
+ rgb <= fg ^ {3{invert}};
else
- rgb <= bg ^ {3{iflash}};
+ rgb <= bg ^ {3{invert}};
else
rgb <= 3'b0; // Blank