comment revectoriser les touches CTRL DELTA pour un prog en basic ?(VG5000)

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

Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

comment revectoriser les touches CTRL DELTA pour un prog en basic ?(VG5000)

Message par rendomizer »

Oui, j'aimerai savoir si on peut démarrer un programme en basic avec les touche CTRL et DELTA ? Si oui, comment on fait ?
Je ne suis qu'un utilisateur pas un pro
Avatar de l’utilisateur
Mokona
Messages : 1040
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: comment revectoriser les touches CTRL DELTA pour un prog en basic ?(VG5000)

Message par Mokona »

Hello,

Lorsque la touche DELTA est appuyée, cela appelle l'interruption non masquable (la touche est branchée dessus "directement", elle n'est pas lue par le moniteur).

À l'adresse $0066 (NMI) se trouve un JP $47EE (en RAM donc) qui est le vecteur du reset à chaud du coup.

Lors du boot, ce vecteur contient initialement JP $0069 (qui reset la langue d'affichage et du clavier).
À la fin du boot, cet emplacement est initialisé avec un JP $1118.

$1118 vérfie si CTRL est appuyé. Si ce n'est pas le cas, rien n'est fait. Si c'est le cas, ça branche sur le reset à chaud.

Du coup... il faut que tu changes le JP $1118 en $47EE pas un JP vers chez toi, et recopiant le test de CTRL mais qui branche chez toi aussi.

Pour lancer un programme BASIC directement, je ne sais pas encore. Peut-être que le plus simple est de mettre RUN suivi de $0D dans le buffer d'entrée et de laisser faire le moniteur en BASIC.

(à y réfléchir un peu plus, ça ne sera pas suffisant... je n'ai pas de solution clé en main, je n'ai pas fini le commentaire détaille de cette partie de la ROM).
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: comment revectoriser les touches CTRL DELTA pour un prog en basic ?(VG5000)

Message par rendomizer »

tu réécris le manuel ?
Je ne suis qu'un utilisateur pas un pro
Avatar de l’utilisateur
Mokona
Messages : 1040
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: comment revectoriser les touches CTRL DELTA pour un prog en basic ?(VG5000)

Message par Mokona »

Je tente un commentaire complet et détaillé de la ROM. À mon rythme.
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13253
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: comment revectoriser les touches CTRL DELTA pour un prog en basic ?(VG5000)

Message par Carl »

voir le livre Cléf pour VG5000...re-vectoriser CTRL DELTA...

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

Re: comment revectoriser les touches CTRL DELTA pour un prog en basic ?(VG5000)

Message par Mokona »

Merci pour le pointeur vers le livre, j'avais oublié cette partie.

"Il suffit de vectoriser les interruptions NMI sur la routine suivante".

La routine est sympa du coup. Elle sort de l'interruption puis branche sur l'instruction RUN ($259A, c'est RUN).

Ce livre est une des raisons qui me pousse à faire un commentaire complet : il est imprécis et ne va pas assez loin dans ces explications. Pire... il y a des erreurs.

Le livre indique $47ef-47f0 pour le vecteur. Donc non, c'est $47ee-$47f0 (3 octets nécessaires pour un JP absolu). En modifiant légèrement la phrase, l'adresse peut être changée en $47ef-47f0 pour ce vecteur là, car il contient déjà un JP. Ce qui n'est pas le cas de la majorité des autres vecteurs qui contiennent un RET.

En reroutant uniquement de cette manière, d'après le code, une simple pression sur Delta suffira. Puisque la détection du CTRL est géré en soft (cependant, je n'ai pas essayé sur machine réelle, je me le note).

(accessoirement, en page 82, $47ee est nommé "vecteur de la commande INPUT"... voilà voilà... si quelqu'un a une idée de ce qui aurait pu induire cette légende, je suis preneur. Dans le manuel technique, le vecteur se nomme nmihk)
Avatar de l’utilisateur
Mokona
Messages : 1040
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: comment revectoriser les touches CTRL DELTA pour un prog en basic ?(VG5000)

Message par Mokona »

Je me demande si INPUT n'est pas une faute de frappe ou de transcription d'avec "int up". Ça aurait du sens.
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13253
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: comment revectoriser les touches CTRL DELTA pour un prog en basic ?(VG5000)

Message par Carl »

Je comprend pourquoi je n’arrivais pas a utiliser le truc de la re vectorisation...
Merci Molkona pour la correction.
Certains jeux utilisent effectivement cette astuce avec uniquement la touche delta.
Carl
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: comment revectoriser les touches CTRL DELTA pour un prog en basic ?(VG5000)

Message par rendomizer »

toujours rien j'ai essaillé de revectoriser avec un call $259A ( qui fait un run basic tout bête ) mais ça n'a pas marché :|
Alors j'ai écri un bout de code en $7000 pour appeler le run basic et revectoriser vers $7000 mais rien :?
Puis j'ai fait un JP $259A en $47ee $47EF $47F0 mais la aussi rien :shock:

Qui va nous trouver la solution, Daniel, Joaopa ou Mokona ?
Je ne suis qu'un utilisateur pas un pro
Avatar de l’utilisateur
Mokona
Messages : 1040
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: comment revectoriser les touches CTRL DELTA pour un prog en basic ?(VG5000)

Message par Mokona »

Ou rendomizer ?

Donc... en mettant le code du livre, j'ai droit à un beau RESET complet de la machine lors de l'appuie sur Delta. À moins que je ne me sois planté dans la recopie, ça n'a pas l'air de fonctionner. Je regarderai un jour pourquoi.

J'ai quand même vérifié que la théorie de la vectorisation de DELTA fonctionnait. Et oui. Si par exemple, plutôt que d'appeler RUN, j'affiche un message à l'écran (mais en assembleur, pas en BASIC), ça fonctionne.

Exemple ci-dessous :

Code : Tout sélectionner

10 ASM=&"7000"
20 READ A$:IF A$="FIN" THEN 500
30 A$="&"+CHR$(34)+A$+CHR$(34):A=VAL(A$)
40 POKE ASM,A
50 ASM=ASM+1
60 GOTO 20
100 DATA CD,74,00,F5,C5,D5,E5,21,12,70,CD,AA,36,E1,D1,C1
110 DATA F1,C9,42,6F,6E,6A,6F,75,72,20,21,00
400 DATA FIN
500 POKE &"47EE",&"C3"
510 POKE &"47EF",&"00"
520 POKE &"47F0",&"70"
Le code source qui va avec :

Code : Tout sélectionner

        ORG $7000

        CALL $0074

        PUSH AF
        PUSH BC
        PUSH DE
        PUSH HL

        LD HL, chaine
        CALL $36AA

        POP HL
        POP DE
        POP BC
        POP AF

        RET
    chaine:
        DEFB "Bonjour !", 0
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: comment revectoriser les touches CTRL DELTA pour un prog en basic ?(VG5000)

Message par joaopa »

La revectorisation de CTRL+DELTA pour exécuter un programme BASIC fonctionne très bien. Il faut faire attention que le programme de clefs pour vg5000 ne prend en compte que la touche DELTA.

@CARL: puisqu'en 47EE, il y a déjà le JP, il suffit de changer les deux octets 47EF et 47F0 qui correspondent à la nouvelle adresse souhaitée.

Voici une capture d'écran du résultat d'un programme BASIC qui affiche toto à chaque envoi de CTRL+DELTA
https://drive.google.com/open?id=1O4lcQ ... 1oRxhdJSWC
Dernière modification par joaopa le 07 janv. 2018 08:57, modifié 1 fois.
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: comment revectoriser les touches CTRL DELTA pour un prog en basic ?(VG5000)

Message par rendomizer »

Merci de nous dire que c'est possible Joaopa mais une capture d'écran n'est pas une preuve lol
Je ne suis qu'un utilisateur pas un pro
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: comment revectoriser les touches CTRL DELTA pour un prog en basic ?(VG5000)

Message par joaopa »

C'est chiant quand on n'a pas le code source, n'est-ce pas? :mrgreen:
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: comment revectoriser les touches CTRL DELTA pour un prog en basic ?(VG5000)

Message par rendomizer »

lol alors je te sommes de nous donner la solution svp ! :twisted:
Je ne suis qu'un utilisateur pas un pro
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13253
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: comment revectoriser les touches CTRL DELTA pour un prog en basic ?(VG5000)

Message par Carl »

Merci Joaopa pour les explications

voila une solution....
delta-basic.jpg
delta-basic.jpg (309.62 Kio) Consulté 4719 fois
Carl
Répondre