Namen der programmierten Satelliten ändern
Laut EPS-103-Handbuch im Bereich Dateien zum Download / Originaldokumentation sind die ersten 16 Satelliten fest programmiert und können nicht geändert werden. Die anderen 16 Satelliten können manuell programmiert werden, aber ihr Name kann nicht geschrieben werden. Anstelle des Satellitennamens erscheint nur ein Leerzeichen auf dem Display. Es stellt sich heraus, dass dies bei meiner Firmware-Version 5.0 nicht der Fall ist. Die Position der ersten 16 Satelliten kann im Modus PRG 04 überschrieben werden, das Gerät merkt sich die neu gespeicherten Positionen auch nach Aus- und Einschalten. Die Namen der Satelliten sind nicht editierbar, aber in einer Tabelle in der Firmware hinterlegt.
Wenn wir die Firmware vom Programmierer in die *.bin-Datei geladen haben, können wir versuchen, sie zu ändern. Wir öffnen die gelesene Firmware in einem beliebigen Binärdatei-Editor. Zum Beispiel im HexEditor.
Die Datei beginnt mit einer Tabelle von Interrupt-Vektoren entsprechend den Anforderungen des D8085-Prozessors. In der V5000-Datei finden wir am Anfang folgende Zahlenfolge.
Adresse | Code | Instruktion | Kommentar |
$0000 | C3 07 05 | JMP $0507 | vektor RST0 |
~ | $FF ... | nicht benutzt | |
$003C | C3 AF 05 | JMP $05AF | vektor RST7.5 |
$003F | $FF | nicht benutzt | |
$0040 | $19 | Data | die Anzahl der Satelliten in der Tabelle |
Adressen, die $FF enthalten, werden für die Zwecke dieser Firmware nicht verwendet (unprogrammiert). Die folgende Adresse enthält die Anzahl aller im Gerät programmierten Satelliten. Für V.5.000 kann es maximal 32 = 20 $ geben. Aber es gibt nur 25 ($19) in meiner Firmware.
Das Folgende ist eine Tabelle dieser Satelliten. Jeder Satellit hat einen Datensatz von 9 Bytes. Das erste Byte gibt die Azimutrichtung an. 01 = Westen, 02 = Osten. Das zweite und dritte Byte bestimmen die Position des Satelliten. Die Bytes sind in umgekehrter Reihenfolge, also zum Beispiel $58, $1B stellt die Zahl $1B58 dar, was dezimal 7000 ist. Das ist Position 70,00°. Die nächsten 6 Bytes sind die Buchstaben des Satellitennamens im ASCII-Code. Schauen wir uns ein einfaches Beispiel an. Zum Beispiel Hotbird 13.00°E.
E = 02
13,00° = 1300 dec = $0514; es wird in umgekehrter Reihenfolge sein $14, $05
HOTBRD = $48, $4F, $54, $42, $52, $44 (maximal 6 Zeichen aus der ASCII-Tabelle)
Dieser Satellit ist in der Firmware als Zahlenfolge zu finden $02, $14, $05, $48, $4F, $54, $42, $52, $44.
Die folgende Tabelle ist in meiner Firmware hinterlegt. Sie können versuchen, einzelne Einträge in der Datei EPS103V5000.bin zu identifizieren.
Adresse | 01 = Westen 02 = Ost |
Position [Niedriges Byte] |
Position [Hohes Byte] |
Name [6 Bytes] |
Name [ASCII] |
Längengrad |
$0041 | 02 | $C8 | $19 | $49 $4E $54 $2D $30 $37 | INT-07 | 66.00°E |
$004A | 02 | $70 | $17 | $49 $4E $54 $2D $31 $35 | INT-15 | 60,00°E |
$0053 | 02 | $28 | $0A | $41 $52 $41 $2D $31 $42 | ARA-1B | 26,00°E |
$005C | 02 | $2E | $09 | $44 $46 $53 $2D $31 $20 | DFS-1 | 23,50°E |
$0065 | 02 | $80 | $07 | $41 $53 $54 $2D $41 $31 | AST-A1 | 19,20°E |
$006E | 02 | $40 | $06 | $45 $54 $53 $2D $31 $20 | ETS-1 | 16,00°E |
$0077 | 02 | $14 | $05 | $45 $54 $53 $2D $34 $20 | ETS-4 | 13,00°E |
$0080 | 02 | $E8 | $03 | $45 $54 $53 $2D $35 $20 | ETS-5 | 10,00°E |
$0089 | 02 | $BC | $02 | $45 $54 $53 $2D $32 $20 | ETS-2 | 7,00°E |
$0092 | 02 | $F4 | $01 | $54 $45 $4C $2D $58 $20 | TEL-X | 5,00°E |
$009B | 01 | $64 | $00 | $49 $4E $54 $2D $31 $32 | INT-12 | 1,00°W |
$00A4 | 01 | $F4 | $01 | $54 $45 $4C $2D $31 $43 | TEL-1C | 5,00°W |
$00AD | 01 | $20 | $03 | $54 $45 $4C $2D $31 $41 | TEL-1A | 8,00°W |
$00B6 | 01 | $78 | $05 | $47 $52 $5A $2D $31 $35 | GRZ-15 | 14,00°W |
$00BF | 01 | $3A | $07 | $49 $4E $54 $2D $36 $20 | INT-6 | 18,50°W |
$00C8 | 01 | $6C | $07 | $54 $44 $46 $2D $31 $20 | TDF-1 | 19,00°W |
$00D1 | 01 | $6C | $07 | $4F $4D $50 $2D $31 $20 | OMP-1 | 19,00°W |
$00DA | 01 | $6C | $07 | $54 $56 $53 $2D $32 $20 | TVS-2 | 19,00°W |
$00E3 | 01 | $BE | $0A | $49 $4E $54 $2D $31 $31 | INT-11 | 27,50°W |
$00EC | 01 | $1C | $0C | $42 $53 $42 $2D $31 $20 | BSB-1 | 31,00°W |
$00F5 | 01 | $7A | $0D | $49 $4E $54 $2D $34 $20 | INT-4 | 34,50°W |
$00FE | 01 | $74 | $0E | $44 $53 $42 $2D $33 $37 | DSB-37 | 37,00°W |
$0107 | 01 | $94 | $11 | $50 $41 $53 $2D $31 $20 | PAS-1 | 45,00°W |
$0110 | 01 | $B4 | $14 | $49 $4E $54 $2D $31 $33 | INT-13 | 53,00°W |
$0119 | 01 | $9C | $18 | $49 $4E $54 $2D $35 $20 | INT-5 | 63,00°W |
Das letzte Zeichen des 32. Satelliten wäre die Adresse $0160. Nach dem Einschalten des Gerätes werden die Namen der Satelliten in den RAM-Speicher kopiert. Aber nicht die anderen Daten. Die vom Benutzer programmierte Satellitenposition ändert sich also nicht, auch wenn in der Firmware ein anderer Eintrag in der Tabelle vorhanden ist. Wir können die maximale Anzahl von Satelliten nicht auf 32 erhöhen, indem wir einfach diese Tabelle erweitern. Dies würde die hinter der Tabelle gespeicherten Adressen des Programms verschieben. Und das Programm würde seine Integrität verlieren.
Firmware-Version 5.015 ist anders. Das Programm verwendet auch den RST6.5-Interrupt, Vektor bei Adresse $0034. Dies wird natürlich am Anfang der Datei in der Vektortabelle widergespiegelt. Von der Adresse $0034 finden wir den Code C3 23 19, d.h. wir springen zur Adresse $1923. Die Adressen der anderen beiden Vektoren sind ebenfalls unterschiedlich. Viel interessanter ist aber, dass die Firmware Daten von bis zu 60 Satelliten enthält. Daher gilt die im Handbuch geschriebene Einschränkung, dass maximal 32 Satellitenpositionen programmiert werden können, für diese Version nicht.
Die Kennzeichnung einzelner Satelliten in der Firmware sollte Ihnen nun klar sein. Sie sollten also in der Lage sein, die Firmware aus dem EPROM zu lesen, zu modifizieren und wieder in das gelöschte EPROM zu laden. Wirst du es versuchen? Kaufen Sie in diesem Fall ein Ersatz-EPROM für diese Experimente und bewahren Sie das Original gut als Backup auf. Viel Glück.