Zahlavi

Выберите язык

Изменение названия запрограммированных спутников

Согласно руководству EPS-103 в разделе Файлы для скачивания / Оригинальная документация , первые 16 спутников жестко запрограммированы и не могут быть изменены. Остальные 16 спутников можно запрограммировать вручную, но их имя нельзя написать. Вместо названия спутника на дисплее появится только пустое место. Оказывается, это не относится к моей версии прошивки 5.0. Положение первых 16 спутников можно перезаписать в режиме PRG 04. Устройство запоминает вновь сохраненные положения даже после выключения и включения. Названия спутников редактировать нельзя, но они хранятся в таблице в прошивке.

Если у нас есть прошивка, загруженная программатором в файл *.bin, мы можем попробовать ее модифицировать. Открываем считанную прошивку в любом редакторе бинарных файлов. Например в HexEditor.

Файл начинается с таблицы векторов прерываний в соответствии с потребностями процессора D8085. В файле V5000 мы находим в начале следующую последовательность чисел.

Адрес Код Инструкция Комментарий
 $0000  C3 07 05  JMP $0507  вектор RST0
 ~  $FF ...    не используется
 $003C  C3 AF 05  JMP $05AF  вектор RST7.5
 $003F  $FF    не используется
 $0040  $19  Data  количество спутников в таблице

 

Адреса, содержащие $FF, не используются (не запрограммированы) для этой прошивки. Следующий адрес содержит количество всех спутников, запрограммированных в устройстве. Для V.5.000 может быть максимум 32 = 20 долларов. Но в моей прошивке их всего 25 ($19).

Ниже приведена таблица этих спутников. Каждый спутник имеет запись размером 9 байт. Первый байт определяет азимутальное направление. 01 = Запад, 02 = Восток. Второй и третий байты определяют положение спутника. Байты расположены в обратном порядке, например, $58, $1B представляет собой число $1B58, которое в десятичном виде равно 7000. Это позиция 70,00°. Следующие 6 байтов — это буквы названия спутника в коде ASCII. Давайте рассмотрим простой пример. Например, Hotbird 13.00°E.

E = 02

13,00° = 1300 dec = $0514; это будет в обратном порядке $14, $05

HOTBRD = $48, $4F, $54, $42, $52, $44 (максимум 6 символов из таблицы ASCII)        

Этот спутник можно было найти в прошивке как последовательность цифр $02, $14, $05, $48, $4F, $54, $42, $52, $44.

В моей прошивке хранится следующая таблица. Вы можете попробовать идентифицировать отдельные записи в файле EPS103V5000.bin.

Адрес 01 = Запад
02 = Восток
Должность
[младший байт]
Должность
[верхний байт]
Имя
[6 байт]
Имя
[ASCII]
Спутниковое
местоположение
 $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

 

Последний символ 32-го спутника будет по адресу $0160. После включения устройства имена спутников копируются в оперативную память. Но не другие данные. Таким образом, запрограммированное пользователем положение спутника не изменится, даже если в прошивке будет другая запись в таблице. Мы не можем увеличить максимальное количество спутников до 32, просто расширив эту таблицу. Это сместит адреса программы, хранящиеся за таблицей. И программа потеряет свою целостность.

Версия прошивки 5.015 отличается. Программа также использует прерывание RST6.5, вектор по адресу $0034. Это, конечно же, будет отражено в начале файла в векторной таблице. С адреса $0034 находим код C3 23 19, т.е. переходим на адрес $1923. Адреса двух других векторов также различны. Но что гораздо интереснее, прошивка содержит данные до 60 спутников. Таким образом, указанное в руководстве ограничение, что можно запрограммировать максимум 32 положения спутников, не относится к этой версии.

Теперь вам должно быть понятно про маркировку отдельных спутников в прошивке. Таким образом, вы должны иметь возможность прочитать прошивку из EPROM, изменить ее и загрузить обратно в стертую EPROM. Вы попробуете это? Если это так, купите запасную СППЗУ для этих экспериментов и сохраните оригинальную в качестве надежной резервной копии. Удачи.

No comments

Leave your comment

In reply to Some User