CPCWiki forum

General Category => Programming => Topic started by: abalore on 16:05, 09 May 24

Title: Identifying firmware version
Post by: abalore on 16:05, 09 May 24
Since lower ROM doesn't have a header, does anyone know a way to identify the installed firmware (464 spanish, 664 , 6128 danish, etc) ?

The only way I can think for now is to have a table with all checksums, but it's a quite big task.
Title: Re: Identifying firmware version
Post by: McArti0 on 16:18, 09 May 24
You have some text in Low Rom. You can also check what codes are assigned to the keys. Qwery Azerty.
Title: Re: Identifying firmware version
Post by: McArti0 on 16:26, 09 May 24
Check address and value first difference from compare with english version
Title: Re: Identifying firmware version
Post by: McArti0 on 17:27, 09 May 24
464 #66E
"64K Microcomputer  (d1)" DK e.t.c.

664  #66F
"64K Microcomputer  (v2)" EN

6128 #689 
"128K Microcomputer  (d3)" DK
"128K Microcomputer  (s3)" SP
"128K Microcomputer  (f3)" FR
"128K Microcomputer  (v3)" EN
Title: Re: Identifying firmware version
Post by: abalore on 18:29, 09 May 24
Quote from: McArti0 on 17:27, 09 May 24464 #66E
"64K Microcomputer  (d1)" DK e.t.c.

664  #66F
"64K Microcomputer  (v2)" EN

6128 #689
"128K Microcomputer  (d3)" DK
"128K Microcomputer  (s3)" SP
"128K Microcomputer  (f3)" FR
"128K Microcomputer  (v3)" EN

yeah, that's a good plan. Thanks for the suggestion
Title: Re: Identifying firmware version
Post by: Jean-Marie on 19:24, 09 May 24
The game Jungle Jane (1985) used this snippet of code to identify the firmware version :
jungle jane © bug-byte (1985) (cpc-power.com) (https://www.cpc-power.com/index.php?page=detail&onglet=dumps&num=1225)
 Comments are in french, but you can translate in spanish from CPC-power website I guess.

CD 00 B9 ... CALL &B900 .... (sélectionner la ROM supérieur)
3A 02 C0 ... LD A,(&C002) .. A = l'octet en &C002 (CPC 464 = 0 ; CPC 664 = 1 ; CPC 6128 = 2 ; CPC 6128+ = 4)
F5 ......... PUSH AF ....... Sauver les registres A et F
CD 03 B9 ... CALL &B903 .... Coupe la ROM supérieure pour resélectionner la RAM
F1 ......... POP AF ........ Restaurer les registres A et F
32 00 02 ... LD (&0200),A .. Ecrire en &0200 la valeur du registre A
C9 ......... RET
Title: Re: Identifying firmware version
Post by: ZorrO on 19:33, 09 May 24
https://www.cpcwiki.eu/forum/programming/how-know-the-keyboard-layout-(cpctelera)/msg147702/#msg147702
Title: Re: Identifying firmware version
Post by: Nich on 18:09, 10 May 24
Quote from: abalore on 16:05, 09 May 24Since lower ROM doesn't have a header, does anyone know a way to identify the installed firmware (464 spanish, 664 , 6128 danish, etc) ?

The code below is how I do it using a firmware CALL (KL PROBE ROM). It reads the first few bytes of one of the upper ROMs (in this case, BASIC) and returns the version number in H. The code copies it into the A register so that values can be compared.

ld c,0            ;C = ROM number to select
call &b915        ;Get the class and version number of the ROM
ld a,h            ;A = version number (0 = CPC464, 1 = CPC664,
                  ;2 = CPC6128, 4 = Plus)
Powered by SMFPacks Menu Editor Mod