MSX Village forum

Affichage Public SHEM a un bug !

Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10352

Le 09/09/2015 à 17h30

Reprise du message précédent

il y a un autre bug mais uniquement avec les claviers européens

les fonctions
CTRL < In Port et CTRL > Out Port
CTRL ( Secter Read et CTRL ) Secter Write
ne fonctionnent pas

sur un Wavy 70 et un Turbo-R aucun probléme


:noel
Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 11/09/2015 à 07h54
J'ai testé ça sur émulateur. En fait, ce bug touche plusieurs commandes. C'est un gros problème. :(

J'ai trouvé un autre bug. L'affichage des numéros de Slot de la commande [CTRL]+[T] déconne. L'affichage des numéros se décale au fur et à mesure vers la droite.

Sylvain, tu penses pouvoir corriger tout ça ?
   
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 11/09/2015 à 08h27
GDX :


Sylvain, tu penses pouvoir corriger tout ça ?




Je peux essayer.



Concernant le problème des touches j'ai vu le sujet sur les différentes matrices clavier entre les versions de machines. Peut-être faut il creuser de ce côté là.



Pouvez-vous me dire sur quel type de machine, émulateur le cas échéant, vous constatez le problème, et indiquer la marche à suivre pour le reproduire (comme le premier message de GDX) ? Edité par Visiteur Le 11/09/2015 à 13h50
   
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 16/09/2015 à 02h15
Voici la doc en français :

Code :

----------------------------------

        SHEM ver. 1.23
    Language Machine Monitor
      1993 (c) Sherry Soft

----------------------------------


--- Description ---

 SHEM.COM est une commande pour MSX-DOS qui permet d'éditer le contenu des
 Slots du MSX. SHEM affiche en valeurs hexadécimales ou en codes désassemblées.
 Il permet aussi de charger des fichiers et d'assembler une à une les
 instructions en assembleur.
  

--- Configuration requise ---

 MSX-DOS 1 ou 2. MSX2/2+/turbo R.
 

--- Exécution ---

Entrer la commande suivante sous MSX-DOS

>SHEM NOM.EXT

 NOM.EXT est optionnelle. Cette option a été ajoutée par Tsujikawa au
 moyen d'un patch.


--- Description de l'écran ---

 La première ligne en haut de l'écran affiche les informations suivantes.

Address:0100  Data:00 '.'  Find:CD 00 00  Bloc:0100 - 0200  Target:83 83 83 83

 En premier, on a l'adresse où se trouve le curseur et la donnée qui s'y
 trouve. "Find" est affiché que si une recherche de codes est en cours.
 "Bloc:" indique l'adresse de début et celle de fin d'un bloque sélectionné.
 "Target:" est affiché lors d'une sélection virtuel de Slot sur les plages
 mémoires 0, 1, 2 ou 3 (0000h~3FFFh, 4000h~7FFFh, 8000h~BFFFh ou C000h~FFFFh).

 La seconde lignes affiche sur 3 colonnes la position des codes en valeur
 hexadécimales et en caractères ASCII/MSX. La quatrième colonne tout à droite
 indique le checksum de chaque ligne de données.
 
ADRS|+0 +1 +2 +3 +4 +5 +6 +7|+8 +9 +A +B +C +D +E +F | 01234567 89ABCDEF | MSX
----+-----------------------+------------------------+-------------------+-----

 Ci-dessous, on aura donc la colonne indiquant les adresses, les codes en valeur
 hexadécimales et les même codes mais en caractères ASCII/MSX.

0000|00 10 20 30 40 50 60 70|30 31 32 33 34 35 36 37 | .. 0@P'p 01234567

 Les deux lignes suivantes indiquent le contenu des registres du CPU, une
 représentation graphique des codes, la zone couverte et l'adresse de fin de
 la&#12288;zone réservée aux commandes du MSX-DOS (TPA).

----+-----------------------+------------------------+-------------------+-----
Res  :  AF  SZ-H-PNC  BC   DE   HL   IX   IY    Graphic:|   |   Area:A800-CF92
CPU  : 0000 00000000 0000 0000 0000 0000 0000   Window :|   | 0 TPA :D206

 Les trois lignes du bas montrent l'état des Slots et des pages du Memory
 Mapper sur chaque plage mémoire. Indique aussi le numéro de version de SHEM.
 
Page : 0  1  2  3  Work : 1 4000
Slot : 83 83 83 83 ADRS : 2 8000
Mem  : 03 02 01 00      : 3 C000            [ SHEM Ver 1.23   1993 (c) Sherry ]
       ^


--- Utilisation ---

Manipulations de base :

 [1] à [9] - Entrée de chiffre.
 
 [A] à [F] - Entrée de chiffre hexadécimaux. [,], [+], [-], [*] et [/] sont
             aussi utilisable.

 [HAUT] / [BAS] - Ces touches du curseur servent à déplacer le curseur vers le
                  haut / bas. En pressant [Shift] en même temps, le curseur se
                  déplacera avec un défilement vertical. En pressant [CTRL] en
                  même temps, le curseur se déplacera de page en page à la
                  vertical.
                  
 [GAUCHE] / [DROITE] - Ces touches du curseur servent à déplacer le curseur
                       vers la gauche / droite. En pressant [Shift] en même
                       temps, le curseur se déplacera vers 
 
 [BS] - Déplace le curseur vers la valeur précédente.
 
 [DEL] - Déplace le curseur vers la page précédente.
 
 [INS] - Déplace le curseur vers la page suivante.
 
 [HOME] - Déplace le curseur en haut à gauche.
 
 [SPACE] - Entre la dernière valeur entrée au curseur.
 
 [TAB] - Fenêtre d'aide.


Commandes avancées:

[CTRL]+[A] - Déplacer le curseur à une adresse. Entrer l'adresse en quatre
             chiffres hexadécimales.

[CTRL]+[C] - Changer le type de checksum (colonne de droite). Le checksum
             "STD8" est l'octet de poids faible du résultat de l'addition de
             8 octets qui se suivent. Le checksum "MSX" utilise la même
             méthode mais en additionnant aussi l'octet de poids faible et
             l'octet de poids fort de l'adresse du premier octet.
   
[CTRL]+[X] - Permet d'entrer directement des caractères à la place de valeurs
             hexadécimales et inversement. Dans le mode d'entrée de caractères
             On peut écrire la valeur 18h en pressant [SELECT]. On peut aussi
             entrer les codes des touches du curseur en pressant sur celles-ci
             en même temps que [CTRL].

[CTRL]+[W] - Changer le mode d'affichage de la fenêtre graphique.

[CTRL]+[Z] - Actualiser l'affichage des données. Allez, par exemple, à
             l'adresse FC9Eh pour comprendre cette fonction.

[CTRL]+[N] - Désactive/Active le son "Beep".

[CTRL]+[O] - Désactive/Active le marquage du bloc sélectionné. Faites attention
             car le bloc reste toujours sélectionné. Le chargement d'un fichier
             active le marquage.

[CTRL]+[I] - Changer les couleurs du texte (0~3) et du fond d'écran (0~F).

[CTRL]+[P] - Imprimer ce qui est affiché à l'écran ou le bloc sélectionné.
             Pendant le désassembleur, seule la colonne où se trouve le
             curseur sera imprimée excepté la dernière ligne. Il est possible
             d'imprimer les deux colonnes en pressant [SHIFT]+[CTRL]+[P].
             Si l'imprimante n'est pas prête, un message d'erreur s'affiche
             sauf dans le désassembleur, seul le son "beep" se produit.

[CTRL]+[@] - Ré-affiche l'écran. Si SHEM n'affiche plus correctement, c'est
             sans doute qu'une zone du programme a été écrasée. Dans ce cas,
             mieux vaut relancer SHEM. 

[CTRL]+[ESC] - Retour au DOS.


Commandes de manipulation des Slots :

[CTRL]+[T] - Changer de SLot. La sélection d'un Slot se fait avec les touches
             du curseur. Changer le Slot sur la plage 0 (0000h~3FFFh) ou la
             3 (C000h~FFFFh) sans précaution avancée fera planter le système.
             SHEM quant à lui se trouve sur la plage 2 (8000h~BFFFh). Changer
             le Slot sur cette plage fera donc planter SHEM. Presser [ESC] ou
             une autre touche sans fonction pour sortir de cette commande.

[CTRL]+[J] - Changer de page du Memory Mapper. Pour les mêmes raisons que pour
             la commande ci-dessus, veillez à ne changer de page que sur la
             plage 1 (4000h~7FFFh). Presser [ESC] ou une autre touche sans
             fonction pour sortir de cette commande.

[CTRL]+[Y] - Changer de Slot virtuellement. En lançant cette commande le texte
             "Target:" suivit de numéros de Slot s'affichent en haut à droite
             de l'écran. La sélection du Slot à changer se fait avec les
             touches du curseur. Cette commande ne change pas réellement de
             Slot. Il est donc possible de changer de Slot sur toutes les
             plages excepté sur la plage 3 (C000h~FFFFh). Presser [ESC] ou
             une autre touche sans fonction pour sortir de cette commande.
    

Commandes pour fichier et sélection de bloc :

[CTRL]+[H] - Afficher les noms des fichiers. Cette commande fonctionne à peu
             près comme la commande DIR du MSX-DOS. Il n'est pas possible
             d'utiliser les options /P ou /W.

[CTRL]+[S] - Sauvegarde du bloc sélectionnée sur un nouveau fichier.

[CTRL]+[L] - Lecture d'un fichier. Le chargement se fait à l'adresse 0100h.
             Lancer cette commande en pressant [SHIFT] en même temps pour
             charger un fichier à l'adresse pointée par le curseur.
             
[CTRL]+[B] - Définir le début du bloc.
       
[CTRL]+[K] - Définir la fin du bloc.
            
[CTRL]+[M] - Copier le bloc vers l'adresse pointée par le curseur. Toute copie
             sur la plage (C000h~FFFFh) fera planter SHEM. [CTRL]+[RETURN]
             permet aussi de copier le bloc.
            
[CTRL]+[(] - Lecture de secteur(s) sur un disque vers une adresse. [CTRL]+[8]
             est aussi utilisable. L'indication du disque se fait avec les
             lettres de A à H. Le numéro du secteur ainsi que l'adresse doivent
             être indiqués en hexadécimal.
             
[CTRL]+[)] - Ecriture de secteur(s) sur un disque. Si par erreur vous 
             endommagez la FAT d'un disque recopiez la FAT2 sur la FAT1 pour
             essayez de récupérer vos données. Sur une disquette 2DD, la FAT1
             se trouve sur les secteurs 1~3, la FAT2 sur les secteurs 4 à 6.
             Après cette manipulation, recopier vos données sur un autre
             disque puis reformater la disquette avant de la ré-utiliser.
 
 Attention : La lecture et l'écriture de secteur(s) ne peut pas se faire sur
             les Slots vituels.
    

Commandes d'excution de programme :
             
[CTRL]+[G] - Exécution d'un programme en mémoire. Par défaut, l'adresse
             d'exécution est 0100h mais il est possible de changer l'adresse.
             En pressant [SHIFT] en même temps, l'écran sera effacé pour
             exécuter le programme.
             
[CTRL]+[E] - Exécution d'un fichier COM depuis un disque. Veuillez tenir
             compte de la TPA et du faite que SHEM prend sa place en mémoire
             entre autres avant de lancer quoique ce soit.
             
[CTRL]+[R] - Permet de parameter la valeur qu'auront les registres du CPU lors
             de l'execution d'un programme. Choisir le registre à paramétrer
             avec les touches du curseur [Gauche] et [Droite] puis entrer la
             valeur en hexadécimale. Les touches du curseur [Haut] et [Bas]
             incrément ou décrémente le registre sélectionné. Pendant
             l'utilisation de la commande de changement virtuel de Slot,
             les registres IX et IY ne passerons pas à cause des appels inter-
             Slot.
             

Commandes de recherche de codes :

[CTRL]+[F] - Rechercher 1, 2 ou 3 octets en mémoire. Entrer les valeurs
             derrière le texte "Find :" qui s'affiche puis presser [Return].
             Les codes correspondants s'afficherons en couleurs inversées.
             Il est possible de déplacer le curseur sur ces codes en pressant
             en même temps [CTRL] et une touche du curseur [Droite] ou
             [Gauche]. La recherche dans un Slot sélectionné virtuellement
             prend plus de temps.
             Pour annuler la recherche, presser [esc] ou une touche qui n'a
             pas de fonction lors de l'entrée de valeurs.


Commandes d'adresse de travail (Work Address) :

[CTRL]+[V] - Définir les adresses de travail.

[CTRL]+[Q] - Déplacer le curseur vers une adresse de travail. [1], [2] et [3]
             déplace le curseur vers une des 3 adresses définies par la
             commande ci-dessus. [Q] déplace le curseur vers l'adresse indiquée
             en haut de l'écran derrière le texte "Address :". [B] ou [K]
             déplace le curseur vers le début ou la fin du bloc défini.


Commandes d'entrées / Sorties :

[CTRL]+[<] - Lire un port E/S du CPU. La valeur lu se place dans le registre A.
             Le registre F prendra la valeur du moment.

[CTRL]+[>] - Écrire sur un port E/S du CPU. Évitez de toucher au port A8h ainsi
             que ceux de FCh à FFh entre autres.


Commandes du désassembleur :

[CTRL]+[D] - Désassembler les codes à partir du curseur (colonne de gauche).
             Il possible de désassembler depuis une autre adresse sur l'autre
             colonne en pressant la touche du curseur [Droite] pour indiquer
             l'adresse.

[CTRL]+[A] - Assembler une instruction. Supporte les instructions semblables
             à celle de M80. Certaines instructions sont prises en compte même
             entrée en partie. (ex : EX AF deviendra EX AF,AF')
             Les valeurs binaires, décimales et hexadécimales sont possibles.
             Les valeurs hexadécimales doivent commencer par un chiffre de
             0 à 9 et se terminer par la lettre H. (ex : 0AFH) Les valeurs
             binaires doivent se terminer par la lettre B. (ex : 01010011B)
             Il est possible d'indiquer une adresse derrière les instructions
             de saut relatif (ex : DJNZ, JR, etc) dans la limite des -127 à
             +128 octets autour de l'instruction. Sinon elle ne sera pas prise
             en compte. Les instructions de calcul (MULB, MULW, etc) sont
             aussi utilisable ainsi que celles d'entrée de données (DB, DW,
             etc).


--- Distribution ---

 Ce logiciel a été développé en tant que Freeware. Ce logiciel ne peut
 être distribué que gratuitement. Veuillez l'utiliser en connaissance
 de causes. Vous serez responsable de tout problème qui pourrait survenir
 lors de son utilisation.
 
                                                           Sherry (Japon)


Il y a sans doute des textes à corriger et à adapter pour la prochaine v1.24.
Toutes critiques seront les bienvenues. Edité par GDX Le 16/09/2015 à 02h33
   
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 16/09/2015 à 09h08
Merci pour cette doc !

J'ai un peu regardé le problème des "In port", "Out port", "Sector read" et "Sector write" qui ne fonctionnent pas. En fait c'est au niveau du DOSBIOS que le problème se passe, car certaines combinaisons CTRL ne sont pas détectées, notamment associées à < > ( ). Du coup, pour ces combinaisons, on ne rentre pas dans le programme SHEM. A suivre... Edité par Visiteur Le 17/09/2015 à 10h11
   
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 16/09/2015 à 13h53
Il y a aussi le problème de matrice puisque, par exemple, avec un clavier AZERTY CTRL+A devient CTRL+Q et inversement.
   
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 18/09/2015 à 09h31
J'ai compris le problème d'accès aux fonctions IN/OUT Port et READ/WRITE sector.
Ceci n'est pas un problème dans SHEM. La différence de mappage entre clavier Japonais et clavier Européen ne permet pas d'associer les mêmes caractères avec la touche CTRL.

Dans le mappage du clavier Européen les combinaisons CTRL+'>' CTRL+'<' CTRL+'(' et CTRL+')' n'existent pas dans le BIOS, et il ne renverra donc jamais d'évènement à SHEM pour ces combinaisons et on ne peut pas corriger pour les faire fonctionner.

En revanche, on trouve une équivalence :
Japonais Européen
CTRL+'>' => CTRL+'.' (attention, il s'agit du 'point' du pavé numérique)

CTRL+'<' => CTRL+',' (il s'agit de la virgule du pavé numérique)

CTRL+'(' => CTRL+'8' (il s'agit du '8' du pavé numérique)

CTRL+')' => CTRL+'9' (il s'agit du '9' du pavé numérique)

CTRL+'@' => CTRL+'²'

On peut donc adapter la documentation et peut-être modifier ces combinaisons par d'autres possibles sur le clavier Européen. Edité par Visiteur Le 18/09/2015 à 14h16
   
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 18/09/2015 à 10h44
Je suis pour remplacer les combinaisons par d'autres communes sur clavier Européen. De toutes façon, les combinaisons actuelles ne sont pas forcément bien choisies. Par exemple, je me demande pourquoi CTRL+T n'est pas pour la sélection virtuelle de slots "Target :". Si il est possible d'éviter le pavé numérique, c'est mieux. Edité par GDX Le 18/09/2015 à 13h02
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10352

Le 18/09/2015 à 11h31
depuis des années je cherche pour le clavier européen et je n'ai jamais pensé au pavé numérique car les premiers tests étaient fait sur un 8235
j'ai testé sur mon 8280 et ça fonctionne , merci Sylvain :)


:noel
Site web    
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 18/09/2015 à 13h42
Voici l'assignation des touches aux fonctions.

Si on veut attribuer d'autres combinaisons que celles-ci c'est possible, mais il n'en reste pas beaucoup de disponible et il faut vérifier que cela fonctionne sur claviers Européens AZERTY et QWERTY car il existe des différences de mapping également.

Potentiellement il reste de disponible : [CTRL]+[U], [CTRL]+[*], [CTRL]+[%], [CTRL]+[°] et peut être les crochets. Tout ceci devra être vérifié sur de vrais MSX car pour l'instant j'ai essayé sur openMSX.

On peut changer l'assignation de [CTRL+T] pour target du slot virtuel et [CTRL+Y] serait attribuée à "Changer de slot".

Code TEXT :
 
[BS] - Déplacer le curseur vers la valeur précédente.
[DEL] - Déplacer le curseur vers la page précédente.
[INS] - Déplacer le curseur vers la page suivante.
[HOME] - Déplacer le curseur en haut à gauche.
[SPACE] - Entrer la dernière valeur entrée au curseur.
[TAB] - Fenêtre d'aide.
[CTRL]+[ESC] ou [CTRL]+[[] - Quitter
 
[CTRL]+PN[8] Lire secteur(s) disque
[CTRL]+PN[9] Ecrire secteur(s) disque
[CTRL]+PN[,] Lire un port E/S du CPU
[CTRL]+PN[.] Ecrire dans un port E/S du CPU
[CTRL]+[²] Réafficher l'écran
 
[CTRL]+[A] Assembler instruction/Déplacer curseur à une adresse
[CTRL]+[B] Définir début de bloc
[CTRL]+[C] Changer type de checksum
[CTRL]+[D] Désassembler à la position du curseur
[CTRL]+[E] Exécuter un .COM depuis le disque
[CTRL]+[F] Rechercher 1, 2 ou 3 octets en mémoire
[CTRL]+[G] Exécuter un programme en mémoire +[SHIFT] Effacer l'écran
[CTRL]+[H] ou [CTRL]+[BS] Lister les fichiers disque
[CTRL]+[I] ou [CTRL]+[TAB] Changer les couleurs texte/fond écran
[CTRL]+[J] Changer la page du Memory Mapper
[CTRL]+[K] Définir fin de bloc
[CTRL]+[L] Charger un fichier +[SHIFT] Charger à l'adresse du curseur
[CTRL]+[M] ou [CTRL]+[ENTER] Copier le bloc vers l'adresse curseur
[CTRL]+[N] Désactiver/Activer "Beep"
[CTRL]+[O] Désactiver/Activer marquage bloc sélectionné
[CTRL]+[P] Imprimer écran ou bloc +[SHIFT] Impimer les deux colonnes
[CTRL]+[Q] Déplacer curseur vers adresse de travail
[CTRL]+[R] Paramétrer valeurs des registres du CPU
[CTRL]+[S] Sauvegarder bloc sélectionné dans un fichier
[CTRL]+[T] Changer de slot
[CTRL]+[U] NON ASSIGNEE
[CTRL]+[V] Définir adresses de travail
[CTRL]+[W] Changer mode d'affichage fenêtre graphique
[CTRL]+[X] ou [CTRL]+[FIN] Saisir des caractères/des valeurs
[CTRL]+[Y] ou [CTRL]+[,] Changer de slot virtuellement
[CTRL]+[Z] Actualiser l'affichage des données
 
Edité par Visiteur Le 18/09/2015 à 14h17
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie