[k7][VG5000] Comment autobooter un binaire?

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Linzino
Messages : 69
Inscription : 26 août 2017 02:40

[k7][VG5000] Comment autobooter un binaire?

Message 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
Avatar de l’utilisateur
Mokona
Messages : 1040
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

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

Message 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.
Markerror
Messages : 2121
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

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

Message 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 :-) ).
Linzino
Messages : 69
Inscription : 26 août 2017 02:40

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

Message par Linzino »

@Markerror, somme mais modulo $10000?
Linzino
Messages : 69
Inscription : 26 août 2017 02:40

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

Message par Linzino »

@all

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

Fabrizio
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13253
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

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

Message par Carl »

memVG5000.jpg
memVG5000.jpg (73.24 Kio) Consulté 3545 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
Linzino
Messages : 69
Inscription : 26 août 2017 02:40

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

Message 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?
Avatar de l’utilisateur
Mokona
Messages : 1040
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

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

Message par Mokona »

Tu peux trouver la valeur de txttab en $488E (sur deux octets)
Linzino
Messages : 69
Inscription : 26 août 2017 02:40

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

Message par Linzino »

Donc $488e donne 18940 comme valeur (small endian).

Quand est-ce que cette valeur change?
Répondre