... en effet. Je suis allé chercher trop loin.
Copie des logiciels VG5000 protégés
Modérateurs : Papy.G, fneck, Carl
Re: Copie des logiciels VG5000 protégés
Merci pour les explications sur le Basic Mokona, ce sont des informations à conserver ! Après, pourquoi 6552 et pas 6554, seul Microsoft pourrait nous le dire (enfin, les très vieux de chez Microsoft)...
[Edit]
Hum, je devais être fatigué que j'ai écris ça... Si on utilise une valeur au dessus de 6552, avec le calcul que fait le Basic, on peut utiliser des lignes dont la valeur tiendrait sur plus de 16 bits... Bref, mystère résolu .
[Edit]
Hum, je devais être fatigué que j'ai écris ça... Si on utilise une valeur au dessus de 6552, avec le calcul que fait le Basic, on peut utiliser des lignes dont la valeur tiendrait sur plus de 16 bits... Bref, mystère résolu .
Re: Copie des logiciels VG5000 protégés
Bon, après avoir gentiment galéré avec le smartphone Samsung récupéré pour l'occasion à mon boulot (le port casque est trop "petit" pour les jack d'un cordon VG5000 officiel grrrr... Je m'en suis sorti avec un cordon MSX récent acheté sur E-Bay), j'ai pu enfin charger en mémoire le déprotecteur Basic et charger ensuite Carnet d'adresses).
Résultat des courses :
PEEK(18474)=129
PEEK(18475)=19
Taille du fichier : 4993 octets
A noter que le VG5000 a du mal afficher certaines parties du listing (effacement de l'écran par exemple entre 1020 et 1040) et qu'il essaie de décoder les routines en langage machine stockées à la fin du programme.
Résultat des courses :
PEEK(18474)=129
PEEK(18475)=19
Taille du fichier : 4993 octets
A noter que le VG5000 a du mal afficher certaines parties du listing (effacement de l'écran par exemple entre 1020 et 1040) et qu'il essaie de décoder les routines en langage machine stockées à la fin du programme.
Re: Copie des logiciels VG5000 protégés
Merci Markerror,
c'est comme celle sur le fichier k7 pour dcvg5k. Vraiment intéressant comment a été fabriquée cette cassette.
c'est comme celle sur le fichier k7 pour dcvg5k. Vraiment intéressant comment a été fabriquée cette cassette.
- Carl
- Modérateur
- Messages : 13290
- Inscription : 08 avr. 2007 13:21
- Localisation : http://www.doledujura.fr
- Contact :
Re: Copie des logiciels VG5000 protégés
Quelques rappels sur la protections des programmes VG5000 :
- Mokona
- Messages : 1041
- Inscription : 17 déc. 2016 22:01
- Localisation : Nord Est des Yvelines
- Contact :
Re: Copie des logiciels VG5000 protégés
Mais on peut se demander pourquoi ne pas faire un test d'un overflow pour vérifier si on passe au-dessus de 65535. Je m'étais posé la question quand j'étais tombé dessus et puis je me suis dit "bah... ça devait être plus simple à écrire comme ça...".Markerror a écrit : ↑17 juil. 2019 20:41 Merci pour les explications sur le Basic Mokona, ce sont des informations à conserver ! Après, pourquoi 6552 et pas 6554, seul Microsoft pourrait nous le dire (enfin, les très vieux de chez Microsoft)...
[Edit]
Hum, je devais être fatigué que j'ai écris ça... Si on utilise une valeur au dessus de 6552, avec le calcul que fait le Basic, on peut utiliser des lignes dont la valeur tiendrait sur plus de 16 bits... Bref, mystère résolu .
Mias tout à l'heure, en regardant le code de fin de programme (fin de ligne, END, STOP ou BREAK), je suis retombé sur deux choses, l'une que je connaissais déjà et l'autre non, mais liées au numéro de ligne.
Première chose (celle que je connaissais) : le numéro de ligne -1 (donc 65535) est une valeur réservée pour l’interpréteur. Cela signifie que l'on est en mode direct, et non en exécution de programme. C'est testé par-ci par-là pour brancher sur le comportement à prendre en fonction du mode.
La seconde chose, que je ne connaissais pas, c'est que le numéro de ligne -2 (donc 65534) est aussi une valeur réservée par l'interpréteur. Si jamais un programme s'arrête (autrement que naturellement) et que la ligne courante est -2, alors le système reboot. On voit ça entre les adresses $227b et $2282, qui terminé pas un beau (JP Z,$0000) (après comparaison, par le RST qui précède, de DE et HL)
Je n'ai pas trouvé dans quelle situation cela se produisait. En sachant que l'on trouve ce morceau de code dans d'autres BASIC Microsoft, et que ce n'est pas le système qui s'occupe du RESET lors d'un break sur un programme protégé, partie spécifique au VG5000µ.
Bref, les numéros de lignes ne peuvent aller que jusqu'à 65533 (si je n'ai pas loupé d'autres numéro magiques) et peut-être qu'à quatre lignes près, c'était effectivement plus simple de s'arrêter à 65529.
(pour ce qui est de conserver ces informations, je note tout ce que je trouve dans la ROM depuis que j'en ai commencé l'étude ligne par ligne, je publierai ça bien entendu... c'est juste un peu long, mais parfois on trouve des trucs marrants/louches)
- Mokona
- Messages : 1041
- Inscription : 17 déc. 2016 22:01
- Localisation : Nord Est des Yvelines
- Contact :
Re: Copie des logiciels VG5000 protégés
Je suis allé vérifier dans une ROM de MSX (Canon V20, que j'avais sous la main). Je n'ai pas retrouvé de traitement pour la ligne "-2" (mais bon, je ne suis pas familier de la ROM et elle fait 32ko... c'est un peu plus gros que celle du VG5000).
Par contre, le décodage de numéro de ligne est quasi similaire et la partie de test pour la sortie de l'accumulateur est le même. Donc forcément, lorsque l'on tape au clavier "65530 PRINT" ça donne... Syntax Error.
Notre VG5000 n'est pas tout seul.
Si vous voulez aller regarder, la routine de récupération du numéro de ligne est en $256c sur VG5000 ROM 1.1 et en $4769 dans la ROM du V20 ; RST $10, c'est l'acquisition d'un caractère sur les deux plateformes.
La boucle elle-même est entre $257c et $2595 pour le VG5000 et $4780 et $4799 sur le MSX. Cette partie la est rigoureusement identique.
Par contre, le décodage de numéro de ligne est quasi similaire et la partie de test pour la sortie de l'accumulateur est le même. Donc forcément, lorsque l'on tape au clavier "65530 PRINT" ça donne... Syntax Error.
Notre VG5000 n'est pas tout seul.
Si vous voulez aller regarder, la routine de récupération du numéro de ligne est en $256c sur VG5000 ROM 1.1 et en $4769 dans la ROM du V20 ; RST $10, c'est l'acquisition d'un caractère sur les deux plateformes.
La boucle elle-même est entre $257c et $2595 pour le VG5000 et $4780 et $4799 sur le MSX. Cette partie la est rigoureusement identique.