There is an ECM that apparently is effecting alot of software.
This ECM was first implemented around 2/88 on ESPN.
It effects only boxes that run A5 service IDs with version
2 based software. It effects the U19 code at commands 0,1.
It turns out that version 2 software only requires a valid
service ID to execute while version 3 requires both a valid
service ID and valid month code (for commands 0,1 that is)
The counter measure works like this. GI sends a command 0,1
down the data stream with an A5 service ID and garbage in the
data field. Version 3 based software rejects this command
because it does not contain a valid month code. However,
version 2 sofware processes this command because it has a valid
service ID. The garbage in the data field is transferred to
your U20 RAM monthly authorization area and clobbers it causing
your box to no longer be able to decode audio. Symptoms are
a box that has SA in SETUP 0, with 2D audio holds, video banner
present, and, video (if software forces video). This does not
effect legit boxes beacuse they are not using this ECM with C4
service ID, and, legit A5 service IDs are version 3 only.
THIS IS A DEADLY ECM/VIRUS THAT HAS APPARENTLY KILLED LOTS OF
BOXES LATELY!
The fix is to first check to see whether your software uses the
version 2 based command 0,1 processor. If it does, then this
ECM will get you sooner or later - it's a time bomb. Replace
the version 2 command 0,1 processing code with version 3 command
0,1 processing code and your troubles will be over. You must
change the version 3 code to be consistent with version 2 register
usage.
Contact your software professional for help with this one - it
is not a trivial one line patch!
You can usually (but not always) identify which command 0,1
processor you have by searching for the following string:
Version 2 - 12 1B E6 17 (start of V2 command 0,1 code)
Version 3 - 12 1B E6 1D (start of V3 command 0,1 code)
Don't assume that just because your software displays Version
3 on the screen that you have all version 3 based code!!
Also, just because this code is present, don't assume that
your software uses it! A surefire way to tell is to replace
the 12 1B (MOV R27,A) with 06 00 (DINT then IDLE). If your
software dies shortly after booting, then it's using this
code. If it continues to operate normally, then your code
either circumvents command (0,1) processing or does it
elsewhere.