VG5000 et duplication de code

Les bouquins, les scans, les pdf ou les liens qui vont bien... ici c'est la bibliothèque.

Modérateurs : Papy.G, fneck, Carl

Répondre
Avatar de l’utilisateur
Mokona
Messages : 1040
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

VG5000 et duplication de code

Message par Mokona »

Hello,

c'est peut-être quelque chose de déjà connu, ou pas, en tout cas c'était une découverte pour moi hier en continuant mon commentaire de la ROM VG5000. Deux routines identiques, ou presque, pour redéfinir un caractère. Une implémentation pour la commande BASIC SETET/SETEG et une autre appelée deux fois, pour redéfinir les caractères étendus 32 (losange) et 127 (deux points horizontaux) lors du boot.

J'ai mis mes commentaires ici.

Le saviez-vous ? Savez-vous pourquoi ?
Markerror
Messages : 2121
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: VG5000 et duplication de code

Message par Markerror »

Bonsoir,

Non, je n'avais pas remarqué cette nième bizarrerie... En bricolant Memory, j'avais juste constaté que quand on faisait une réinitialisation soft du VG5000, on se retrouvait avec des caractères redéfinis par le système (127 pour le Basic 1.0, 32 et 127 pour le Basic 1.1).

Ca serait intéressant de voir si ce que tu as constaté est valable pour les deux versions du Basic. Le développeur a peut-être voulu améliorer la routine et a laissé finalement tomber sans virer le code pour la version 1.1.
Fred_72
Messages : 1131
Inscription : 22 mai 2019 13:10
Localisation : Sarthe

Re: VG5000 et duplication de code

Message par Fred_72 »

Le caractère 127 ("..") est justement redéfini par le VxDOS 0.3 à son lancement (dessin d'une disquette). Coïncidence ?
Avatar de l’utilisateur
Mokona
Messages : 1040
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: VG5000 et duplication de code

Message par Mokona »

Hello,

je viens de jeter un coup d’œil à la ROM 1.0. Là aussi, les deux routines existent côte à côte.

En effet, la redéfinition du caractère 32 est un patch au moment du boot. Dans la version 1.1, un jump vers la fin de la ROM a été ajouté pour redéfinir le caractère 32, puis revenir (la fin de la ROM contient, dans la version 1.1, le plupart des correctifs entre les deux versions, les adresses sont très stables d'une version à l'autre, comme indiqué dans le Bulletin technique de la version 1.1).

Ce qui est plus étrange, c'est qu'à l'endroit où les données du caractère 32 se trouvent dans la 1.1, il n'y a, dans la 1.0, rien qui semble utilisé. C'est très bizarre, je regarderai de plus prêt.

C'est une fin de section, et il y a un peu de padding généralement entre les sections. Mais on pourrait s'attendre à trouver le caractère 127 puis le caractère 32 ajouté derrière. Mais on trouve dans la ROM 1.0 10 octets qui ont l'air de ne servir à rien PUIS le caractère 127...

Le caractère 32 de la ROM 1.1 est associé je pense à ce qui est indiqué dans le Technical Bulletin 1.1 : "1.1/0018/04 : improves the AUTO command to warn that the generated line number is already used in the program.". La forme est utilisée lorsque l'on utilise AUTO et qu'on est sur le point d'écraser une ligne existante.

Au passage, d'ailleurs, pour les plus spécialistes de la documentation VG5000. La liste des patch 1.1 indique des numéros de références (probablement des bugs ou des tâches). Ceux qui sont incorporés sont décris mais certains, c'est terrible sont juste notés "Are not incorporated".

Est-ce qu'il existe une documentation quelque part avec la liste de ces références, qui donnerait le contenu de ces idées de patchs qui n'ont finalement pas eu le droit d'entrer dans la ROM 1.1 ?
Avatar de l’utilisateur
Mokona
Messages : 1040
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: VG5000 et duplication de code

Message par Mokona »

Fred_72 a écrit : 16 août 2020 22:14 Le caractère 127 ("..") est justement redéfini par le VxDOS 0.3 à son lancement (dessin d'une disquette). Coïncidence ?
Et bien.. c'est toi l'auteur non ? :)

Le caractère ".." utilisé comme alias pour la commande DISK, par contre, est le code ASCII $10 (16), si je ne me trompe pas.
Fred_72
Messages : 1131
Inscription : 22 mai 2019 13:10
Localisation : Sarthe

Re: VG5000 et duplication de code

Message par Fred_72 »

Pas tout a fait, je suis l'auteur du VxDOS 0.5 :wink:

Ok donc rien a voir avec le 127.
Avatar de l’utilisateur
Mokona
Messages : 1040
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: VG5000 et duplication de code

Message par Mokona »

Ah oui, en effet, je viens d'aller voir la "doc" de VxDOS 0.3. Ce qu'elle dit est très étrange du coup.

Il existe autre chose que la doc ? Cette disquette de démonstration est connue ?
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13253
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: VG5000 et duplication de code

Message par Carl »

L’ensemble de la doc en ma possession a été mis à disposition ici http://vg5000.free.fr/docs/tech/docs.htm
Pour le moment, je n’ai rien d’autre...
Carl
Avatar de l’utilisateur
Mokona
Messages : 1040
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: VG5000 et duplication de code

Message par Mokona »

Et c'est déjà beaucoup, merci. Je m'en sers souvent.
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13253
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: VG5000 et duplication de code

Message par Carl »

Mokona,
Peut être des similitudes avec cette ROM concernant SETET et SETEG :
c7420disassembly.zip
(62.62 Kio) Téléchargé 120 fois
Carl
Avatar de l’utilisateur
Mokona
Messages : 1040
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: VG5000 et duplication de code

Message par Mokona »

Non pas grand chose à voir à première vue.

Le Z80 communique avec la vidéo à travers le 8040 d'une manière différente.
Et la routine est écrite différemment aussi.

Et là où est setext sur VG5000, il y a une série de NOP pour le C7420.
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13253
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: VG5000 et duplication de code

Message par Carl »

j'imaginais le basic du C7420 comme ancêtre du basic du VG5000...

à propos du C7420 :
viewtopic.php?f=8&t=7726&p=131052&hilit=c7420#p131052
viewtopic.php?f=24&t=2033&hilit=c7420
viewtopic.php?f=8&t=2254&hilit=c7420

Carl
Avatar de l’utilisateur
Mokona
Messages : 1040
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: VG5000 et duplication de code

Message par Mokona »

Merci pour les pointeurs. J'avais effectivement parcouru certaines des aventures autour du C7420, mais j'avais manqué une des discussions.

Il y a des similitudes entre les deux ROM, et les deux BASIC partagent beaucoup de choses, entre autre la partie Microsoft, forcément. C'est assez similaire pour que mes outils d'analyses passent sur la ROM avec juste quelques modifications. Et assez pour que je m'y retrouve assez facilement.

Dans la boucle du moniteur, qui se trouve autour de $129f, on retrouve l'affichage du "Ok", mais sans toute la partie de gestion de AUTO.

Quand on commence à regarder du côté des entrées sorties, forcément, comme tout passe par le 8040, c'est très différent (le code de STICKX, STICKY par exemple).

On retrouve un air de famille dans le code de "SETET/SETEG", mais comme la majeure partie de la commande consiste sur le VG5000 à calculer l'adresse en mémoire du VDP puis d'envoyer les 10 lignes "inversées", il reste... la boucle de 10 lignes à lire des paires de chiffres hexa.

Là encore, un air de famille, mais le code de décodage d'un chiffre hexa sur C7420 (en $2cb5) est étonnamment plus complexe que celui sur VG5000 ($0fd2).

Donc un ancêtre/cousin, absolument. Mais qui parle une autre langue avec son environnement.
Avatar de l’utilisateur
Mokona
Messages : 1040
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: VG5000 et duplication de code

Message par Mokona »

Et puisque j'ai lancé une analyse rapide, voici le fichier, reconstruit depuis les sources envoyées, dont j'ai gardé les commentaires qui touchaient du code et remis à ma sauce, avec séparation code/data (pas forcément complète).

Pas forcément recompilable tel quel car le padding de fin de la ROM a sauté. C'était une analyse rapide...
c7420-asm.zip
(69.1 Kio) Téléchargé 129 fois
Dernière modification par Mokona le 18 août 2020 22:33, modifié 1 fois.
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13253
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: VG5000 et duplication de code

Message par Carl »

Merci Mokona !

Carl
Répondre