Page 1 sur 1

[k7][VG5000] Comment autobooter un binaire?

Publié : 14 févr. 2018 10:05
par Linzino
Salut tout le monde!

J'aimerais rendre mon jeu CROSS CHASE bootable. Je sais produire un binaire raw ou un k7 qui ne boote pas automatiquement.

Pour le rendre bootable (comme sugeré par Sergio Max) je peux le sauvegarder avec une ligne de BASIC avec la commande CALL avec CSAVEM.

Moi, j'aimerais faire tout cela automatiquement (sans passer par le BASIC et sans faire des manips manuelles)
en rajoutent le bon header au binaire raw.

Par exemple, je vois que la structure du format .k7 est:
D3 D3 D3 D3 D3 D3 D3 D3 D3 D3 4D 58 43 48 41 53 45 00 31 30 00 00 00 00 00 00 D4 49 E0 2E 0A FB D6 D6 D6 D6 D6 D6 D6 D6 D6 D6
suivi par le binaire raw et où E0 2E = $2EE0 = taille du binaire raw.

Je ne comprend pas les deux octets qui suivent: 0A FB? C'est une checksum? Comment les calculer?

Fabrizio

Re: [k7][VG5000] Comment autobooter un binaire?

Publié : 14 févr. 2018 11:40
par Mokona
Hello,

oui c'est un checksum

D'après la documentation

00 - File Type
01-06 - Filename
07 - Version number
08-12 - Start line number in ASCII
13 - "Protection" flag
14-15 - Position de calcul du checksum (?)
16-17 - Start address
18-19 - Data length
20-21 - Checksum

Je n'ai pas vu dans la doc comment calculer la somme de contrôle. Si personne n'a la réponse, je pourrai aller fouiller dans la ROM.

Re: [k7][VG5000] Comment autobooter un binaire?

Publié : 14 févr. 2018 21:02
par Markerror
Bonsoir,

J'ai fait il y a quelques années un petit article sur le sujet, disponible sur http://vg5000bazar.free.fr.

Le checksum, c'est une "simple" somme des octets de données du fichiers (sans tenir compte du header de 42 octets ni des 10 octets de fin (qui de toute façon sont à 0 :-) ).

Re: [k7][VG5000] Comment autobooter un binaire?

Publié : 15 févr. 2018 10:15
par Linzino
@Markerror, somme mais modulo $10000?

Re: [k7][VG5000] Comment autobooter un binaire?

Publié : 15 févr. 2018 10:16
par Linzino
@all

Le BASIC du VG-5000 commence exactement à partir de 18941? Je ne trouve pas cette info...

Fabrizio

Re: [k7][VG5000] Comment autobooter un binaire?

Publié : 15 févr. 2018 11:26
par Carl
memVG5000.jpg
memVG5000.jpg (73.24 Kio) Consulté 3588 fois
Hervé a écrit ceci "La plupart des jeux commerciaux du VG5000 sont en assembleur mais sont lancés par le BASIC avec une commande CALL. Je suppose que cette technique est censée pallier le fait qu'il n'y a pas dans le header d'adresse d'exécution pour un fichier binaire."

source : http://vg5000bazar.free.fr/

Carl

Re: [k7][VG5000] Comment autobooter un binaire?

Publié : 15 févr. 2018 14:03
par Linzino
Oui, j'avais vu cette image qui ne repond pas à ma question...

Moi, j'ai besoin de connaitre l'addresse du debut du BASIC.

txttab on le calcule comment?

Re: [k7][VG5000] Comment autobooter un binaire?

Publié : 15 févr. 2018 15:46
par Mokona
Tu peux trouver la valeur de txttab en $488E (sur deux octets)

Re: [k7][VG5000] Comment autobooter un binaire?

Publié : 23 févr. 2018 11:47
par Linzino
Donc $488e donne 18940 comme valeur (small endian).

Quand est-ce que cette valeur change?