home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS 1993 May
/
SIMTEL_0593.ISO
/
msdos
/
screen
/
victory.cqr
/
victory.cur
Wrap
Text File
|
1986-03-30
|
5KB
|
90 lines
VICTORY! VICTORY! VICTORY! VICTORY! VICTORY! VICTORY! VICTORY! VICTORY!
Hi, this is Sigi KLuger speaking here... I just switched computer systems (for
the first time ever). I had been using S-100 machines of different varieties
and with different operating systems since 1977. Now that I work for a company
that produces IBM-PC coprocessor cards, I decided that now's the time to switch
to something PC-compatible. Right now I'm using a PC-TECH 80186 machine, which
is really nice and super fast (almost as fast as an AT!!!) but will get myself
something more conservative to be able to plug in a V20 and run (nostalgia,
yea!!!) some of my 8080 programs.
Now, what I'm so long-windedly trying to get at is the fact I passionately
hate blinking cursors - they drive me up the wall and cause headaches.
Everyone I talked to told me that "that's the way it is designed" and that
it was "done in hardware". Surely it had to have been done in hardware since
the 6845 CRT controller can be programmed for two different blink rates OR
non-blink! Unfortunately, these days it seems people are better with their
fingers on the keyboard that in between chips. I was told that someone called
Peter Norton (who appears to be as much the IBM guru as Ward Christensen was
the 8080/S-100/CP/M guru) even said that "it can't be done". Now, are a few
gates here and traces there THAT intimidating? Certainly not!
Being a bit unfamiliar with TTL after having done no hardware work in a while
(but catching up fast...), I was at first totally lost looking at the mono
graphics card I'm using (can't tell the brand -- something Taiwanese I think).
But after I got a look at a schematic (yes some of the cheap far east clones
have tiny little schematics which are almost unreadable) I found the obvious
solution to the blinking menace - a knife!
It appears as though most monochrome display cards (and graphics such as
HERCULES and "compatibles" use the same basic layout. This is roughly how it
works, for those who have no schematics:
The CURSOR output (pin 19 of the 6845) goes into a 74LS174. There it is delayed
since the cursor location as output by the controller is normally at the
location of the last character. The cursor is delayed by one character position
so that it is displayed just beyond the last character. This is done in two
flip-flops in the '174. The cursor signal enters on D4, the Q4 output is fed
into D5. The Q5 output is the delayed cursor signal. It is fed into a 7464,
usually on pin 9. The '64 basically consists of four AND gates feeding a NOR
gate. Pins 9 and 10 are the inputs of a 2-input AND, and pin 10 is the clock
pulse providing for the blink rate. To force this long story to an abrupt end,
simply cut the trace leading to pin 10 of the 7464 and the cursor will quit
blinking. You might want to do it right and pull pin 10 up to 5V via a 2.2k
resistor after you have verified that it indeed works.
There appears to be only one 7464 on the board, so you can't miss. Don't be
confused by the board layout - the 64 may be clear on the other end of the
board as seen from the 174! If your display card doesn't have a 7464, then
you're on your own. If it does, you can be fairly sure that pin 10 controls
the cursor, but of course, there's no guarantee.
One problem with turning the cursor blink off this way is that if your cursor
is something other than an underline (like, a block), you cannot see the
character immediately below the cursor if you move it around the screen!
You may use the following code fragment to control the cursor under DEBUG or
include it in programs:
MOV AH,1
MOV CX,cccc
INT 10H
Here are a few values for "cccc" for you to play with:
(INT 10, subfunction 1 is explained in detail in various manuals and books but
there no mention is made of bits 5 and 6 of register CH.
cccc = 600BH - slow blinking block
cccc = 400BH - fast blinking block
cccc = 000BH - steady block
cccc = 0B0BH - steady underline
As you can see, bits 6 and 7 of the CH register control blink:
BIT 6 BIT 5
0 0 no blink
0 1 no cursor display
1 0 fast blink
1 1 slow blink
I hope this has helped some people who, like myself, are suffering from
blinking cursors. I might add that cutting traces on circuit boards makes
warranty vanish in a puff of greasy black smoke. Fooling with electronic
equipment not knowing what you're doing makes the equipment malfunction
horribly, so you should only attempt to unblink your cursor if you are quite
sure you know what you're doing... If all else fails ask a friend to do it
for you. Just don't blame ME for breaking your computer, ok?
May all your cursors be steady ones!