Amstrad Plus Index du Forum

Amstrad Plus
Découverte de la gamme Old et Plus des Cpc d'Amstrad.

 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

*****Methodes pour différencier un Cpc Plus d'un Cpc Old.

 
Poster un nouveau sujet   Répondre au sujet    Amstrad Plus Index du Forum -> Bienvenue sur ce forum -> Programmation
Sujet précédent :: Sujet suivant  
Auteur Message
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 779

MessagePosté le: Mer 14 Déc - 13:59 (2016)    Sujet du message: *****Methodes pour différencier un Cpc Plus d'un Cpc Old. Répondre en citant

----
Beaucoup de personnes utilisent des moyens assez rudimentaires pour détecter la présence d'un Plus ou celle d'un Old.


La première routine apparue peut paraître succincte mais reste néanmoins efficace. Il suffit de poser la question à l'utilisateur.


Par exemple :


Citation:
Avez vous un Amstrad Plus (Oui/Non) ?


C'est ce que j’appellerais ici, "La Méthode Roudoudou" ou seul le Oui fonctionne car la demo ne se lancerait pas sans cela !


Une autre, plus commune, consiste à connecter de la Page Asic (#4000-#8000) avec pokage d'une valeur X dans cette plage mémoire, et déconnecter la page Asic pour savoir, une fois cet octet poké testé si oui ou non, nous sommes en présence de la bête.


Certains farfelus utilisent aussi les connexions Rom afin de vérifier si la Rsx "ùgame" est présente, ou pas mais ne pense pas que certaines personnes n'utilise pas la rom "Burnin' Rubber" d'origine, celle livrée avec votre Amstrad Plus, mais plutôt l'ancienne Rom sur cartouche qui permet de rester compatible avec certaines routines systèmes.


Pour ma part, il existe trois méthodes "propres" pour détecter la présence d'un Amstrad Plus.


La première est basée sur le mode IM 2, qui comme tout le monde le sait, commence par une adresse paire sur Amstrad Plus, alors qu'elle sera sur une adresse impaire sur Cpc Old. 
Qui serait intéressé par ce type de routine ? Je vous la proposerais dans un prochain article.


La seconde tient compte d'un bug de l’instruction "in" qui fait un out sur Amstrad Plus. Assez drôle en fait.
Pour tout vous dire, j'ai utilisé cette méthode de détection dans ma demo AE 2010. Ce qui est assez drôle, c'est que winape ne gérant pas ce bug, c'est toujours la partie old qui se lance, et c'est bien dommage. Je pense que Kevin Thacker (Arnoldemu) a dû corriger cela dans son émulateur Arnold, mais ça reste à vérifier...

Edit
Voici donc cette routine que me réclame l'ami Roudoudou!


Code:
;
; Don't Work with Winape
; Code by Candy^Ovl
; Presented in AmsLive
;
ld bc,#7f54
out (c),c
in a,(c)
cp c
inc a
jr z,CpcOld
jr CpcPlus


ou une routine plus rapide


Code:
;
; Version Grim SML^Arkos
;
ld bc,#7f00 ; pointe sur le GA
in a,(c) ; on lit la valeur du port
inc a    ; cp #ff -> si a=#ff 
jp z,CpcOld ; c'est un Cpc Old
jr CpcPlus ; Sinon c,'est un Cpc Plus




Si vous lancez la demo sus-citée, sur votre Cpc Plus, vous aurez droit à cela.




EndEdit


Pour la troisième méthode possible, il s'agit de celle utilisant le bug du PPi. Je m'en vais donc vous la présenter...


Code:
;
; Code Offset^Futurs
; Quasar Cpc - Quasar Net
;
ld bc,#F782 ; Registre de Contrôle du PPi
ld e,c      ; sauve c -> e=#82
out (c),c   ; Port A en sortie
dec b       ; b=#F6
ld c,#0f    ; c=#0f
out (c),c   ; on valide
inc b       ; b=#f7
ld a,e      ; a=e=#82
out (c),a   ; Port A en sortie
dec b       ; b=#f6
in a,(c)    ; On lit le contenu du port C
cp c        ; si a=c -> #0f
jr z,CpcPlus ; C'est un Cpc Plus
or a
jr z,CpcOld ; Sinon c'est un Cpc Old



En écrivant cette article, je me dis également qu'il pourrait exister une autre méthode. Celle-ci est un peu tirée par les cheveux mais pourrait fonctionner. Je dis bien "pourrait", car je ne l'ai pas encore testée. Il suffirait de tester le port cartouche, mais comment me direz-vous ?


Une simple connexion Rom devrait suffire. Il faudrait vérifier la présence d'une Rom (#80 à #87) pour les cartouches 128K basic ou Burnin' Rubber, patchées ou pas.


Le seul problème serait quelques extensions Rom comme la RamCard qui peuvent prendre place à la place des cartouches. Dans cet unique cas, et non des moindres, le Cpc Old pourrait être confondu avec un Amstrad Plus.


Enfin, tout ceci est vraiment théorique et je ne l'ai même jamais testé, jusqu'à ce soir. Voici donc le fruit de mes recherches.

Code:
;
; Code AsT/iMPACT
;
        Di
        ld e,#ff ; valeur de test
        ld hl,#c000
        ld (hl),e
        ld bc,#df80 ; Connexion Rom #80 (Cartridge Port)
        out (c),c
        ld bc,#7F80+%0110 ; Mode 2 - Connection Rom Haute/deconnection Rom Basse
        out (c),c
        ld a,(hl) ; recupère octet en #c000
        cp e      ; a=e  ?
        jr z,cpcold0 ; si oui c'est un cpc old
        call deconnect ; si non c'est un cpc plus


        jr cpcplus
cpcold0
        call deconnect ; deconnecte toutes les roms
        jr cpcold


deconnect
        ld bc,#df00 ; Connecte la Rom Basic
        out (c),c
        ld bc,#7F8E ; mode 2
        out (c),c
        ei
        ret



Si parmi vous une personne utilise une méthode différente ou veut proposer un complément d'information, je suis preneur.



NBSylvestre : Nous connaissons déjà ton proverbe : "Si ton Amstrad est blanc, c'est que tu dois avoir un Amstrad Plus"
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Dernière édition par Ast le Jeu 15 Déc - 18:17 (2016); édité 8 fois
Revenir en haut
Publicité






MessagePosté le: Mer 14 Déc - 13:59 (2016)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
roudoudou


Hors ligne

Inscrit le: 14 Juil 2016
Messages: 118
Localisation: LYON

MessagePosté le: Mer 14 Déc - 16:32 (2016)    Sujet du message: *****Methodes pour différencier un Cpc Plus d'un Cpc Old. Répondre en citant

À noter que ma méthode fonctionne sur tous les émulateurs  Laughing


Pour le bug du in qui fait le out, tu connectes une bank et tu écris dedans?


Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 779

MessagePosté le: Mer 14 Déc - 17:35 (2016)    Sujet du message: *****Methodes pour différencier un Cpc Plus d'un Cpc Old. Répondre en citant

Je viens d'ajouter cette routine dont je t'avais parlé. Teste là sur un cpc old et un plus et tu verras, ça fonctionne, plutôt bien, d'ailleurs.
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 779

MessagePosté le: Mer 14 Déc - 18:09 (2016)    Sujet du message: *****Methodes pour différencier un Cpc Plus d'un Cpc Old. Répondre en citant

J'ai ajouté dans l'article,  le test du bug de l'instruction "in" ainsi que celui du test de connexion rom....
J'aimerai bien d'ailleurs que quelqu'un vérifie ce dernier et me dise s'il fonctionne ou pas.


Il ne manque plus qu'à ajouter le test lié au mode IM2, et tout sera complet.
Donnez moi votre avis, merci.
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
roudoudou


Hors ligne

Inscrit le: 14 Juil 2016
Messages: 118
Localisation: LYON

MessagePosté le: Mer 14 Déc - 19:46 (2016)    Sujet du message: *****Methodes pour différencier un Cpc Plus d'un Cpc Old. Répondre en citant

diantre, que se passe-t'il sur le port #7F54?
enfin, j'veux dire, dans quoi on écrit?
le cp c ne sert à rien, rassure moi? 


Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 779

MessagePosté le: Mer 14 Déc - 20:17 (2016)    Sujet du message: *****Methodes pour différencier un Cpc Plus d'un Cpc Old. Répondre en citant

roudoudou a écrit:
diantre, que se passe-t'il sur le port #7F54?
enfin, j'veux dire, dans quoi on écrit?
le cp c ne sert à rien, rassure moi? 



c'est une valeur bateau.... 
concernant le cp c (arf cpc!), il sert rassure toi!!
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
roudoudou


Hors ligne

Inscrit le: 14 Juil 2016
Messages: 118
Localisation: LYON

MessagePosté le: Mer 14 Déc - 20:56 (2016)    Sujet du message: *****Methodes pour différencier un Cpc Plus d'un Cpc Old. Répondre en citant

Mais tu fais un inc a juste après qui change les flags!

Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 779

MessagePosté le: Mer 14 Déc - 21:05 (2016)    Sujet du message: *****Methodes pour différencier un Cpc Plus d'un Cpc Old. Répondre en citant

Smile Bonne remarque... As tu essayé la routine sur Cpc Old ? Trace les résultats, tu verras pourquoi.
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 779

MessagePosté le: Jeu 15 Déc - 14:41 (2016)    Sujet du message: *****Methodes pour différencier un Cpc Plus d'un Cpc Old. Répondre en citant

Ajout d'une méthode tirée du Grimware basée sur l'instruction "in".


Néanmoins comme il le précise, cette méthode n'est pas 100% fiable, même si elle a la chance de fonctionner.
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
roudoudou


Hors ligne

Inscrit le: 14 Juil 2016
Messages: 118
Localisation: LYON

MessagePosté le: Jeu 15 Déc - 16:11 (2016)    Sujet du message: *****Methodes pour différencier un Cpc Plus d'un Cpc Old. Répondre en citant

pour le coup, plutôt que cp #ff tu fais inc a c'est 1 nop de moins et 1 octet de moins :p

Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 779

MessagePosté le: Jeu 15 Déc - 18:14 (2016)    Sujet du message: *****Methodes pour différencier un Cpc Plus d'un Cpc Old. Répondre en citant

Bonne réflexion  Okay


J'ai corrigé...


En même temps, tu me diras, on s'en contrefou d'un nop pour un test que tu fais avant de lancer ton programme... Mort de Rire
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
MacDeath


Hors ligne

Inscrit le: 26 Mar 2015
Messages: 286
Localisation: 26

MessagePosté le: Ven 16 Déc - 00:57 (2016)    Sujet du message: *****Methodes pour différencier un Cpc Plus d'un Cpc Old. Répondre en citant

lol...
Les machines ont quand même un design qui ne trompe pas...


Revenir en haut
Supersly


Hors ligne

Inscrit le: 30 Juin 2015
Messages: 48

MessagePosté le: Sam 17 Déc - 12:56 (2016)    Sujet du message: *****Methodes pour différencier un Cpc Plus d'un Cpc Old. Répondre en citant

Sinon, tu peux lancer une prod CPC (Cargosoft au hasard), si les couleurs sont dégueu, c'est que t'as un Plus :-)
_________________
Les Sucres en Morceaux


Revenir en haut
Visiter le site web du posteur
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 779

MessagePosté le: Jeu 19 Jan - 00:22 (2017)    Sujet du message: *****Methodes pour différencier un Cpc Plus d'un Cpc Old. Répondre en citant

Supersly a écrit:
Sinon, tu peux lancer une prod CPC (Cargosoft au hasard), si les couleurs sont dégueu, c'est que t'as un Plus :-)



Dans cet ultime cas, c'est que les gars de chez CargoSoft ont mal fait le job...  Laughing
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 13:59 (2017)    Sujet du message: *****Methodes pour différencier un Cpc Plus d'un Cpc Old.

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Amstrad Plus Index du Forum -> Bienvenue sur ce forum -> Programmation Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  

Index | Panneau d’administration | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com