You can’t let a broken CRT monitor stand in your way
backchannel.com
backchannel.com
The TSR I wrote was simple in comparison: it constantly refreshed the palette. A palette entry with a red value greater than zero had its blue and green values increased accordingly. The red component was then zeroed out.
Necessity is a powerful impetus for spurring creativity in frugal college students.
This looks to be an earlier version, as it doesn't increase the blue and green values, but gives an idea of how it worked:
{$M 1024,0,0 } { 1K stack, no heap }
USES Crt, DOS;
CONST
MAX_COUNT = 384;
READ_PAL = $3C7;
WRIT_PAL = $3C8;
RED = 1;
GRN = 2;
BLU = 3;
VAR
OldIntVec : PROCEDURE;
NoRed : ARRAY[ RED..BLU, 0..255 ] OF BYTE;
Count : INTEGER;
Colour : BYTE;
PROCEDURE ReadPalette;
Begin
FOR Colour := 0 TO 255 DO
Begin
Port[ $3C7 ] := Colour;
NoRed[ RED, Colour ] := Port[ $3C9 ];
NoRed[ GRN, Colour ] := Port[ $3C9 ];
NoRed[ BLU, Colour ] := Port[ $3C9 ];
End;
End;
PROCEDURE ChngPalette;
Begin
FOR Colour := 0 TO 255 DO
IF NoRed[ RED, Colour ] <> 0 THEN
NoRed[ RED, Colour ] := 0;
End;
PROCEDURE WritePalette;
Begin
FOR Colour := 0 TO 255 DO
Begin
Port[ $3C8 ] := Colour;
Port[ $3C9 ] := NoRed[ RED, Colour ];
Port[ $3C9 ] := NoRed[ GRN, Colour ];
Port[ $3C9 ] := NoRed[ BLU, Colour ];
End;
End;
{$F+}
PROCEDURE NewTimer; INTERRUPT;
Begin
InLine( $9C ); { PUSHF -- Push flags }
OldIntVec;
IF Count = MAX_COUNT THEN
Begin
Count := 0;
ReadPalette;
ChngPalette;
WritePalette;
End
ELSE
INC( Count );
End;
{$F-}
BEGIN
Count := MAX_COUNT;
GetIntVec( $1C, @OldIntVec );
SetIntVec( $1C, Addr( NewTimer ) );
Keep( 0 );
END.But in all the VGA cards I had, updating the palette caused a little bit of snow to appear onscreen. Didn't you get the same?
Also it's possible that the vertical retrace period isn't long enough to update the entire palette (i.e. you're still updating it and vertical retrace has finished, and the video card has already started redrawing the screen). This kind of depends on a number of factors - VLB/ISA/CPU speed/video card speed. You can work around it by updating smaller sections of the palette at a time (e.g. 32 colours at a time).
I remember using Norton Disk Editor in the early 90's to fix directory entries (and occasionally break them!). I learned some fantastic lessons about backups and how to recover from mistakes.
This is the reason that I'm firmly stuck in the Android camp (on devices that I can root). I'm one a very, very small minority though.
I'm anxiously awaiting the https://neo900.org/
There seems to be a fair amount of money and attention being invested in secure messaging, Mark Cuban's Cyber Dust, Blackphone, the various things by Moxie's Open Whisper Systems, etc. However the Neo900 as far as I know is the only solution offering a sandboxed baseband which is critical.
Also it'll probably be awkward for phone calls without some sort of headset (or just putting up with speakerphone all the time), but I hardly ever make calls anyway and it'll more than make up for that by being awesome at texting.
Blame the manufacturers, Google started moving more and more functionality into the services instead of the base OS partially because manufacturers were being so horrible about updating their phones. With functionality in the Services instead of the base OS they can update functions without manufactures deciding that it's not worth their time and holding things back.
How do you figure you're a minority? Android has the highest market share of any smartphone OS in most parts of the world, developed or otherwise.
I remember trying to get SimCity 3000 Unlimited to run on my Windows XP laptop. The laptop was 10 years old, and the game was even older, meant to run on Windows 98 if I remember right. The game refused to run in anything but 16 bit color mode, while 32 bit was the default on XP. I thought maybe I could fiddle with the compatibility options on the shortcut, but all it had was a checkbox to run in 8 bit mode. I could go into XP's graphics options and manually switch to 16 bit mode, but that would be annoying to do every time I wanted to play the game, and then undo it afterwards.
I thought maybe I could write a batch script to do it, but Windows XP didn't have anything built in to change the color mode from the command line. Thankfully there's a program out there called QRes that does just that. I wrote a script that switched the color mode to 16 bit, ran SimCity, then waited for it to terminate before switching back to 32 bit.
Setting that up was more fun that actually playing the game.
Curious terminology.
A high resolution text mode being stable, but a low-res graphics mode going haywire is almost certainly an issue with the display adapter and not the cathode ray tube.
If he had a problem that appeared as overheating, the first thing to try is freeze spray. Find out what component is temperature sensitive. It's probably a capacitor.
It's not that hard to work on a CRT unit. You have to discharge the second anode voltage after powering off. (I was once trained to repair analog radios and TVs. This is now a totally useless skill.)
EDIT: It seems I didn't catch any of the details right... the author's display was probably not multisync and developed problems in the low resolution mode. Oh well.
I have never seen those circuits so can't comment on what could be wrong, but if cooling the monitor helped I think it wasn't EGA's fault.
Too bad the OP didn't keep this machine.
Likely burned out after many years of use.
This is the tool I made to make it brighter:
https://github.com/macondobits/gamma
It resides in the system tray, remembers profiles, and it could be useful for someone else.
I will upload the gamma.exe file to github one of these days, or sooner, if anyone wants it.
The great and unexpected thing, it even works in Wine and changes the gamma ramp in Ubuntu. I use xgamma in the command line instead of my own tool, but I'm glad it works.
I instinctively went for the shift keys fractions of a second after seeing that Sidekick menu.