Noch eine kurze Meldung:
Im File MenuFunc.c ist die Funktion "AdjustSource".
Hier findet erstmal die "logische" Umschaltung der Quelle statt:
- ...
- g_VideoSetting.InputType+=1;
- g_VideoSetting.InputType%=Input_Nums;
- ...
Das wäre also ein Ansatzpunkt zum Patchen: Die Addition (+=3) und den Modulo Wert (Input_Nums auf 6) ändern.
Das wäre dann die Lösung, das anstatt VGA Mode nun S-Video drin ist. Byte für Videoquelle wechselt zw. 0x00 und 0x03
anstatt 0x00 und 0x01.
Die 2te Möglichkeit wäre: Dann die Funktion "SwitchInputPort" in mStar.c und "devAudioInputSelect" TDA7052.c, die dann die physikalische Umschaltung vornimmt.
Die Umschaltung ist ist einem switch-case gemacht:
- void SwitchInputPort(InputPortType PortSwitch)
- {
- BYTE bk6_03_mask;
- switch(PortSwitch)
- {
- .
- .
- case Input_CVBS1:
- bk6_03_mask=CVBS1_RealPortSet;
- break;
- .
- .
- default:
- break;
- }
Display More
Vermutlich dürfte auch auf dem 8051 dies mit einer Sprungtabelle gelöst sein. (Ist schon zu lange her, das ich aktiv am 8051 kodiert habe;
aber ich meine der Keil-Compiler macht Sprungtabellen wenn der Optimizer eingeschaltet ist!)
Hier müsste ich (man) dann entweder den Wert für switch(0x01) und switch (0x03) tauschen (oder nur 0x01 ersetzen):
Gleiches Ergebnis wie beim ersten Ansatz; VGA weg -> dafür s-Video
Oder dritter Ansatz:
In AdjustSource den Modulo Wert um eins erhöhen (Also von 2 auf 3) und in SwitchInputPort
den Tabelleneintrag in der Sprungtabelle 0x02 und 0x03 tauschen. Dann hätte man S-Video zusätzlich zu VGA.
Aber: So auf anhieb dürften die 2te und 3te Möglichkeit nicht funktionieren, weil quer über den Code Macros
versteckt sind: "IsSVideoInUse" u.A. Diese Fragen den Wert 0x03 für S-Video auch ab. Die müsste man noch anpassen.
Lange Rede, kurzer Sinn: Patch absolut machbar! 
Interessant wäre herauszufinden, ob der Hersteller eine Möglichkeit vorgesehen hatte, das Flash im Target zu flashen...
dann könnte man auf auslöten etc. verzichten.
Ansonsten wäre vielleicht(!) eine andere Möglichkeit eben den MST703 in Reset zu halten (Pin52 auf high) und
dann an den SPI Pins/Leitungen selber Daten anzulegen...
Voraussetzung wäre aber das der MST703 dann seine SPI Leitungen hochohmig schaltet (Input oder tri-state)
und das eine Fremdquelle an PIN52 nicht die Reset-Logik auf dem Board killt (sofern vorhanden).
So flashe ich in meinem derzeitigen beruflichen Projekt meine H/W - falls ich mal den Bootloader zerschiesse! 
Allerdings ist dies kein 8051 derivat, sondern ein ARM... aber das spielt keine Rolle.