SIM: Display SIM version in programming mode on memory location 06

Untested!
This commit is contained in:
Andreas Eversberg 2024-04-13 22:53:29 +02:00
parent 9b4095d894
commit f96994e0e7
2 changed files with 11 additions and 3 deletions

View File

@ -427,11 +427,12 @@ Turn on the phone and you will be asked for a PIN.
Enter the PIN 9991 to alter the first subscriber data.
Enter the PIN 9992 .. 9998 to alter second to eighth subscriber data.
The subscriber data is shown in the telephone directory and can be altered by changing the numbers in that directory.
Also the SIM software version is shown on entry 06 of the telephone directory, but it cannot be changed.
The Bosch OF 7 does not like to store numbers less than 3 digits. Put zeroes in front, if you want to store a value less than 1000.
</p>
<p>
The default subscriber data and where to change them in the telephone directory:
The default subscriber data and SIM version and where to change them in the telephone directory:
<br><br>
<table class="sim">
<tr><th>Entry</th><th>Name</th><th>Number</th></tr>
@ -440,9 +441,12 @@ The default subscriber data and where to change them in the telephone directory:
<tr><td>03</td><td>Kartenkennung</td><td>3</td></tr>
<tr><td>04</td><td>Sonderheitsschl.</td><td>0</td></tr>
<tr><td>05</td><td>Wartungsschl.</td><td>65535</td></tr>
<tr><td>06</td><td>SIM software version</td><td>xxx **</td></tr>
</table>
<br>
(*) When PIN 9991 was entered.
<br>
(**) This value represents the software version and cannot be changed.
</p>

View File

@ -609,8 +609,8 @@ static void rd_rufn(sim_sim_t *sim, uint8_t *data, int length)
switch (rufn) {
case 0: /* send bitmap for service mode */
memset(data, 0xff, 24);
data[0] = 5; /* 5 entries */
data[1] = 0x07; /* upper 5 bits = 0 */
data[0] = 6; /* 6 entries */
data[1] = 0x03; /* upper 6 bits = 0 */
break;
case 1: /* FUTLN */
data[0] = eeprom_read(EEPROM_FUTLN_H + sim->card);
@ -647,6 +647,10 @@ static void rd_rufn(sim_sim_t *sim, uint8_t *data, int length)
encode_directory(data, number, "Wartungsschl.");
LOGP(DSIM7, LOGL_INFO, "service mode: maintenance = %s\n", number);
break;
case 6: /* sim version */
encode_directory(data, SIM_VERSION, SIM_VERSION_NAME);
LOGP(DSIM7, LOGL_INFO, "service mode: display SIM version = %s\n", SIM_VERSION);
break;
}
tx_sdu(sim, 0, data, 24);
return;