Simple dialog box built in windows

Back in the days, we use “net send” to display dialog boxes (I used it to chat with my friend after we dial up to the other’s computer).

Since Windows XP, there’s a more intuitive tool to do the same. It’s convenient if you want to add GUI interactions so that the user won’t ignore the text on the command prompt screen:

msg %SESSIONNAME% "your message goes here"

 

Loading

Visual C++ 2008 Redistributable (VC_RED) unpacks temp files to root folder

Over the last decade I was wondering if I did something wrong or my computer was infected by some rootkit that some random installation files shows up in the root folder.

Turns out it’s a stupid bug (didn’t expect something this low from Microsoft) that it unpacks temporary files of Visual C++ 2008 redistributables to whatever’s that’s largest storage space’s ROOT folder!

It’s fixed in SP1, but some old programs distributing the first revision will crap all over the root folder of seemingly random drives (actually, it’s the one with the most free space). Nasty!

https://support.microsoft.com/en-us/help/950683/vcredist-from-vc-2008-installs-temporary-files-in-root-directory

I made a batch file to clean it up. It’s not robust or up to any good programming standards (should have checked the hash signature before deleting if I was paid to write that, but I wasn’t). This batch file accepts an input like where the drive letter was littered (like E:\), or without input arguments, it will just pick the root folder of the current location.

@ECHO OFF
echo.Clean up Visual C++ 2008 temporary files (due to a bug)

set "old_dir=%cd%"

if "%~1" == "" goto Main
cd /d %1

:Main
REM must be a root folder of some drive
cd /

REM Display current drive
echo.%cd:~0,1% drive is going to be cleaned. Press Ctrl+C now to abort now or any other key to continue.
pause

del install.exe 
del install.res.1028.dll 
del install.res.1031.dll 
del install.res.1033.dll 
del install.res.1036.dll 
del install.res.1040.dll 
del install.res.1041.dll 
del install.res.1042.dll 
del install.res.2052.dll 
del install.res.3082.dll 
del vcredist.bmp 
del globdata.ini 
del install.ini 
del eula.1028.txt 
del eula.1031.txt 
del eula.1033.txt 
del eula.1036.txt 
del eula.1040.txt 
del eula.1041.txt 
del eula.1042.txt 
del eula.2052.txt 
del eula.3082.txt 
del VC_RED.MSI
del VC_RED.cab 

echo.Done
cd /d %old_dir%

No warranty or support of any sort if you use it. That’s why I wouldn’t even make it downloadable. Just copy and paste it to a batch file yourself, and keep in mind that you are on your own.

Loading

TDS Color CRT Driver Repair (700 series): all by sniffing TDS 784A with Garbled Display (Driver 671-2373-389-1344-01 / 678-1402-07)

When old equipment’s fail, they do fail in waves, depending on the failure modes induced by the original design. Last week when I turned on a TDS 784A in my inventory check, something smelled bad and the display was garbled (it has displays, but straight lines turned into wiggles).

I already replaced the caps for the processor board, keyboard and RS-232/Parallel Port module preventatively and the unit used to work fine. So it boils down to either the power module or the CRT driver.

Despite it’s unlikely to be the power module (didn’t feel any fan speed changes, display brightness changes, or hiccups in power), I used my nose to make sure there’s no burnt electrolyte smell from the power module. Indeed there wasn’t.

Sniffing can be a very valuable tool to repairs. The smell came from only one narrow area of the board so I limited it to 3 capacitors next to each other:

I took them out and cleaned the PCB and noticed that the wipes has a bit of green and black stuff on it. That’s how I can tell a capacitor just peed all over itself. The culprit is C321 and C323.

(EDIT 2023/05/18: I just noticed my TDS684B might have leaked C328, the biggest 100uF 50V cap right in the trio instead. I confirmed this by seeing the transistor TIP31C at Q330 turned green like it got mosses and the 3 pins fizzed out while the 3 resistors next to C321 stayed shiny. Strangely, despite physically C328 looked the most impacted, I only smell the familiar burning electrolyte scent when I desoldered C321 and C323 but not C328, so I replaced all 3 instead. The ESR for C328 is still low so despite visually it looks like C328 is the culprit, the leak could have just have electrolytically migrated to Q330 and dried up. Dried up electrolyte is hard to catch. That’s why I didn’t wash the board last time and only cleaned the surrounding areas with rubbing alcohol. Not again. ‘Power-washed’ it with dish soap using waterpik, rinse, load it with 99% alcohol and blow dry with heat gun set on low. The TDS684B used to work in my possession, so the leak must be recent and the signs not so obvious. My previous experience definitely helps because it’d be impossible to troubleshoot with visual inspection as the leaked caps didn’t bulge).

Note that the component layout for this color CRT driver, 678-1402-07 (the board has silkscreen saying 671-2373-389-1344-01) does not match the component locator I have with my TDS 544A schematics. Nonetheless, it’s nearby if you look around.

Just to confirm the capacitors I took out are the culprit, I used an LCZ meter as an overkill ESR tester to test them:

2.4Ω ESR for the 10uF (C321)

1.5Ω ESR for the 22uF (C323)

ESR for these two caps should be at the order or milli-Ohms if they were any good. I took the one next to the two offending capacitors out to test it, and the ESR looked OK so I put it back. The true reason is that I don’t have that capacitor value on hand at the time of writing, but that also helps to narrow down the true cause.

I replaced these two capacitor and the display worked correctly (not garbled). The brightness is a little bit high which can be adjusted down.

EDIT 2023/05/18: C5 (100uF 50V) at the corner of the board leaked. There’s a clear yellow film around it and it corroded the pins of the Q10 next to it.


The next problem is that the shutter color changes out of sync back and forth at a slow then fast rate till it gets stable after warming up for a while. I did a lot of troubleshooting, changed a bunch of capacitors and transistors and shutter board, but no avail. In the process, I smelled electrolyte evaporating with the flux and I decided to give the board a full wash with dishwasher detergent and waterpik (then dry the big part with a leaf blower, spray with 99% rubbing alcohol to the water out and left it dry). Bingo!

Lessons learned: do not leave the electrolyte leaks on the board even if it’s an old fashioned single-sided through-hole with relatively simple thick traces. I thought it’s not going to matter until I see visible corrosion, but I was wrong. Could it be the electrolytes left on the board forming weakly conductive paths that disappears when the unit warms up (the electrolyte dries up)?


In the process of replacing all the electrolytic capacitors on the board, I smelled fumes mixed with electrolytes in some areas (other than the two above). However, I didn’t record it because I measured the ESR for each capacitor that I pulled and compared to the ones I’m about to put in.

In addition to the two capacitors mentioned early in this post, here are few capacitors that the ESR of a new part is significantly lower, which might be first places to consider replacing before recapping the entire board. They are all measured at 1V, 1kHz:

Part Capacitance Voltage Rating Pre ESR Post ESR
C334 10uF 25V 2.8Ω 1.7Ω
C50 2.2uF 250V 11.4Ω
C12 22uF 100V 1.4Ω 0.6Ω
C181 470uF 35V 160mΩ 44mΩ
C182 1uF 50V 20Ω 13Ω

Nonetheless, the only useful technique that contributed to this board being repaired is finding out where the smell comes from. The rest (reading at schematics, measuring voltages, checking waveforms on an oscilloscope, swapping out parts) are all red herrings.


In the process of troubleshooting with schematics, I also noticed that the schematic for the old TDS 544A color CRT driver is actually pretty much the same (including component numbering) as this newer board 678-1402-07 while I was troubleshooting with it.

Looks like the component layout was slightly shifted to make room a different batch of flyback transformers (there’s a riser board for the flyback transformer in 678-1402-07 used in 754A/784A). Although the component locator sheet isn’t exact, the components are within 1 inch of what’s found in TDS 544A CRT driver’s component locator. No biggie if you don’t have the schematic for the newer color CRT drivers. Just look around and pay attention to the silkscreen. Common sense will lead you to the right part.

Loading

Onion News on Google Finance!

Wow. That’s how prevalent unchecked news collected by machine learning are. Now the news in Google Finance even feature articles from the Onion (my favorite, product originated from my alma mater):

Here’s the onion news:

https://www.theonion.com/jesus-announces-plans-to-return-once-the-dow-clears-27-1830155761

How seriously can you take news on Internet nowadays 🙂

But to be fair, humans aren’t much reliable either:

Loading

Windows Gotcha: Cannot access other machine because time doesn’t sync

Newer Windows, starting with Windows 7 at least, requires the clocks to be in sync for the login/authentication to work. The confusing part is that if it fails, it doesn’t tell you why, leading you to think your password was wrong.

Turns out this time, I’m trying to inject files to a Windows 2000 machine (a logic analyzer). After some Googling, this website showed me it could be a time issue. The RTC on that motherboard was alright, and showing that it’s 2018, but after a close look, the timezone was EST (GMT-7) while I’m on PST (GMT-8), so the clock is off by one hour!

Loading