MO5 Kandy Krush Java

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

__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: MO5 Kandy Krush Java

Message par __sam__ »

De mémoire, on peut lire le timer que si on a stoppé son décompte en placant le dernier bit du registre de controle à 1. Alors, quand ont lit, on récupère la valeur courante du timer (ou la dernière valeur latchée, je ne sais plus trop.. mais la valeur du compteur me semble plus sensée).
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
jasz
Messages : 1313
Inscription : 05 oct. 2016 20:05
Localisation : Quelque part dans le 31

Re: MO5 Kandy Krush Java

Message par jasz »

Je ne sais pas si cette information est pertinente, mais d'après le manuel technique la valeur du timer est retournée sur deux octets par le registre $E7C6-$E7C7
Le test par un simple PEEK en basic retourne bien des valeurs aléatoires rarement identiques. Donc le basic peut lire cette valeur

[edit]
Un second test en asm cette fois me retourne constamment la même valeur et ce malgré avoir mis le bit 7 du registre de contrôle à 1.

En effet il y a un mystère :?:
Dernière modification par jasz le 05 nov. 2016 11:45, modifié 1 fois.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: MO5 Kandy Krush Java

Message par Daniel »

__sam__ a écrit :De mémoire, on peut lire le timer que si on a stoppé son décompte en placant le dernier bit du registre de controle à 1.
En relisant la datasheet du 6846 je réalise que c'est assez complexe, car le rôle du bit 7 du registre de contrôle dépend du mode fonctionnement du timer. Selon le mode et la valeur du bit 7, on peut lire ou pas le compteur. Dans le cas où on ne peut pas le lire, je suppose que $E7C6-$E7C7 conserve la dernière valeur lisible, c'est pourquoi on obtient plusieurs fois de suite le même nombre. Par contre, si on lit longtemps après, le bit 7 et/ou le mode de fonctionnement ont changé et on obtient une valeur différente.

C'est probablement la bonne explication, je vais lire et relire la datasheet jusqu'à la comprendre, ce n'est pas évident :wink:
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
gleike
Messages : 1341
Inscription : 16 oct. 2014 11:12
Localisation : Ludres (54710) Meurthe & Moselle

Re: MO5 Kandy Krush Java

Message par gleike »

Test a l'instant de la vraie nouvelle version WAV de Kandy Krush et c'est un succès total. :)
Première partie 1038 points et une crampe dans le bras droit. :lol:

Merci Daniel pour ta patience et ta réactivité. :wink:
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: MO5 Kandy Krush Java

Message par Daniel »

J'ai voulu aller trop vite en négligeant le test sur la vraie machine, c'est ce qui explique le bug initial. Mais c'est instructif, car je vais pouvoir corriger dcmoto pour qu'il donne la même valeur que les vrais TO quand on lit $E7C6-$E7C7.

Après, pour éviter la crampe dans le bras, il faudrait ajouter un driver de souris au MO5 et au TO7/70. Il y a longtemps que je veux le faire, en prenant modèle sur celui du MO6 et celui du TO8, mais je n'ai pas encore eu le courage. Une autre solution, plus facile à mettre en œuvre, serait d'ajouter à kandykrush un curseur se déplaçant avec les flèches.

Ci-dessous le code source de la version TO :

Code : Tout sélectionner

/**************************************************\
*             TO7 KANDY KRUSH JAVA                 * 
*           (c) 2016 - Daniel Coulom               *  
*           http://dcmoto.free.fr/                 *
*           http://forum.system-cfg.com/           *
*--------------------------------------------------*
* Ce code est distribue gratuitement dans l'espoir *
* qu'il sera utile, mais sans aucune  garantie  et *
* sans  engager  la  responsabilité  de  l'auteur. *
* Vous  pouvez  l' utiliser,  le  modifier  et  le *
* diffuser librement, en conservant cette  licence *
* et les références de l'auteur dans   toutes  les *
* copies. L'exploitation commerciale est interdite.*
\**************************************************/

* Cette version TO7 necessite de modifier les
* fonctions suivantes de la version MO5 :
* - La routine affichage pastille (calcul couleur)
* - La routine affichage chaine SWI --> JSR $6803
* - Les lectures clavier et test touches
* - La routine effacement (octet couleur)
* - La sequence escape pour ATTRB 1,1
* - L'adresse de l'écran $0000 --> $4000
* - Les adresses des pastilles
* - La commutation de page video $A7C0 --> $E7C3
* - Le bit buzzer $A7C1(b0) --> $E7C1(b3)
* - Le graphisme du titre
* - La generation nombre aleatoire (code de __sam__)

* REMARQUE
* La lecture du compteur du timer des TO retourne
* toujours la même valeur quand ce compteur est en
* ecriture seule. Elle ne permet donc pas la
* generation de nombres au hasard.


/**************************************************\
*                Version 2016.11.03                *
\**************************************************/
* Historique
* 2016.11.03 Code de __sam__ pour les nombres au hasard     
* 2016.10.06 Version originale (adaptation de la version MO5)     
  
*===========================================
* INITIALISATIONS
*===========================================  
  ORG   $9000
INIT
  LDX   #SCRINIT   chaine d'initialisation ecran 
  LBSR  CHAINE     initialisation ecran 
  LBSR  BITMAP     affichage du titre
  LDX   #MAPPUI    chaine pour appui touche 
  LBSR  CHAINE     affichage chaine 
INIT1  
  LBSR  RANDOM     initialisation nombre au hasard 
  JSR   $E806      lecture clavier
  BEQ   INIT1      attente d'une touche
INIT2
  LDD   #$0000     zero dans D 
  STD   COUPS      remise a zero du nombre de coups
  STD   SCORE      remise a zero du score
  LDX   #SCRNEW    chaine pour ecran de debut partie 
  LBSR  CHAINE     affichage ecran de debut partie 
  LDX   #MAIDE     chaine du message pour l'aide
  LBSR  CHAINE     affichage du message pour l'aide  
  LBSR  DPARTIE    affichage du numero de partie
  LBSR  COULINI    initialisation des couleurs
  LBSR  TDISP      affichage de toutes les pastilles
  INC   JEUAUTO    pour supprimer le clignotement 
  LBSR  PALIGN     recherche alignements
  DEC   JEUAUTO    pour retablir le parametre
  LBSR  EFFBUZ     signal de debut de jeu   
  LBSR  EFFBUZ     signal de debut de jeu
  
*===========================================
* DEROULEMENT DU JEU
*===========================================  
JEU
  LBSR  DSCORE     affichage du score
  LDA   JEUAUTO
  BEQ   JEU1       jeu manuel
  LBSR  AUTOMAT    jeu automatique
  LBRA  SUIVANT    passage au coup suivant
JEU1
  JSR   $E806      lecture clavier 
  ANDB  #$DF       majuscule
  CMPB  #$41       'A' pour Aide 
  BNE   JEU2
  LBSR  AIDE       affichage de l'aide
  BRA   JEU        affichage du score
JEU2
  CMPB  #$4A       'J' pour Jeu automatique
  BNE   JEU3
  LDA   #$01
  STA   JEUAUTO    indicateur de jeu automatique
  BRA   JEU
JEU3
  JSR   $E81B      contact crayon optique
  BCC   JEU1       attente appui
  JSR   $E818      coordonnees crayon optique

* test de la colonne pointee
  TFR   X,D
  LSRD
  LSRD
  LSRD
  TFR   D,X
  CMPX  #$0011
  LBLT  ERROR      trop a gauche
  CMPX  #$0026
  LBGT  ERROR      trop a droite

* test de la ligne pointee
  TFR   Y,D
  LSRD
  LSRD
  LSRD
  TFR   D,Y
  CMPY  #$0005
  BLT   ERROR      trop haut
  CMPY  #$0017
  BGT   ERROR      trop bas

* test pointage centre pastille
  TFR   X,D
  SUBD  #$0011     centre premiere pastille
  LBSR  DMOD3
  PSHS  B
  TFR   Y,D
  SUBD  #$0005     centre premiere pastille
  LBSR  DMOD3
  PULS  A
  ADDB  -1,S
  BEQ   ERROR   

* permutation horizontale
HORIZ
  TFR   Y,D
  SUBD  #$0005     centre premiere pastille
  LBSR  DMOD3
  BNE   VERT
  PSHS  Y,X
  LBSR  PINVH
  LBSR  PALIGN     recherche alignements
  PULS  X,Y
  BCS   SUIVANT    alignement trouve
  LBSR  PINVH      retablissement position
  BRA   ERROR   

* permutation verticale
VERT
  TFR   X,D
  SUBD  #$0011     centre premiere pastille
  LBSR  DMOD3
  BNE   ERROR
  PSHS  Y,X
  LBSR  PINVV
  LBSR   PALIGN    recherche alignement
  PULS  X,Y
  BCS   SUIVANT    alignement trouve
  LBSR  PINVV      retablissement position
  BRA   ERROR   
  
*===========================================
* PASSAGE AU COUP SUIVANT
*===========================================  
SUIVANT
  LDD   COUPS
  ADDD  #$0001
  STD   COUPS
  CMPD  COUPMAX    fin de partie apres n coups
  BEQ   FIN
  LBRA  JEU        suite du jeu

*===========================================
* ERREUR DE POINTAGE
*===========================================  
ERROR
  LDX   #$0800     hauteur note
  LDA   #$10       longueur note           
  LBSR  BUZZ
  LBRA  JEU

*===========================================
* FIN DE PARTIE
*===========================================  
FIN
  LDD   SCORE
  CMPD  MAX
  BLT   FIN0
  STD   MAX
FIN0  
  LDA   JEUAUTO    indicateur de jeu automatique
  LBNE  INIT2      nouvelle partie automatique
FIN1
  LBSR  DSCORE  
  LDX   #MAPPUI    message appui sur une touche
  LBSR  CHAINE      
  LDX   #FPARTIE   message fin de partie
  LBSR  CHAINE     
FIN2
  JSR   $E809      lecture rapide clavier
  BCC   FIN2
  LBRA  INIT2
  
*===========================================
* JEU AUTOMATIQUE
*===========================================  
AUTOMAT
  LDB   #$37

* test permutation horizontale  
AUTO1
  TFR   B,A
  ANDA  #$07
  CMPA  #$07
  BEQ   AUTO3      permutation horizontale impossible 
  LBSR  CINVH      permutation horizontale
  PSHS  B
  LDB   #$37
AUTO2
  LBSR  TSTAH      test alignement horizontal en B 
  BCS   AUTO9      alignement trouve
  DECB
  BGE   AUTO2
  PULS  B
  LBSR  CINVH      retablissement des couleurs

* test permutation verticale  
AUTO3
  CMPB  #$2F
  BGT   AUTO5      permutation verticale impossible
  LBSR  CINVV      permutation verticale
  PSHS  B
  LDB   #$37
AUTO4
  LBSR  TSTAH      test alignement horizontal en B 
  BCS   AUTO9      alignement trouve
  DECB
  BGE   AUTO4
  PULS  B
  LBSR  CINVV      retablissement des couleurs
AUTO5
  DECB
  CMPB  #$1F
  BNE   AUTO1

AUTO10

* test permutation horizontale
  LDB   #$37
AUTO11
  TFR   B,A
  ANDA  #$07
  CMPA  #$07
  BEQ   AUTO13     permutation horizontale impossible 
  LBSR  CINVH      permutation horizontale
  PSHS  B
  LDB   #$37
AUTO12
  LBSR  TSTAH      test alignement horizontal en B 
  BCS   AUTO9      alignement trouve
  LBSR  TSTAV      test alignement vertical en B 
  BCS   AUTO9      alignement trouve
  DECB
  BGE   AUTO12
  PULS  B
  LBSR  CINVH      retablissement des couleurs

* test permutation verticale  
AUTO13
  CMPB  #$2F
  BGT   AUTO15     permutation verticale impossible
  LBSR  CINVV      permutation verticale
  PSHS  B
  LDB   #$37
AUTO14
  LBSR  TSTAH      test alignement horizontal en B 
  BCS   AUTO9      alignement trouve
  LBSR  TSTAV      test alignement vertical en B 
  BCS   AUTO9      alignement trouve
  DECB
  BGE   AUTO14
  PULS  B
  LBSR  CINVV      retablissement des couleurs
AUTO15
  DECB
  BGE   AUTO11

AUTO6
  LBSR  TDISP      affichage de toutes les pastilles
AUTO7
  BRA   AUTO7      pas de coup trouve

AUTO9
  PULS  B
  LBSR  PALIGN     recherche alignements

  RTS

*===========================================
* CALCUL DE D MODULO 3
* RESULTAT DANS D
*===========================================  
DMOD3
  SUBD  #$03
  BGE   DMOD3
  ADDD  #$03
  RTS

*===========================================
* CALCUL DE B MODULO 8
* RESULTAT DANS B
*===========================================  
BMOD8
  SUBB  #$08
  BGE   BMOD8
  ADDB  #$08
  RTS

*===========================================
* TEST ALIGNEMENT HORIZONTAL EN B
* CARRY SET SI ALIGNEMENT TROUVE
*===========================================  
TSTAH
  PSHS  B
  BSR   BMOD8      B modulo 8
  CMPB  #$05
  PULS  B
  BGT   TSTAH8     pas d'alignement en fin de ligne
  LDX   #PCOLOR    table des couleurs
  LDA   B,X        couleur pastille B 
  LEAX  1,X
  CMPA  B,X        couleur pastille B+1
  BNE   TSTAH8
  LEAX  1,X
  CMPA  B,X        couleur pastille B+2
  BNE   TSTAH8
  TST   JEUAUTO
  BNE   TSTAH7
  BSR   CLIGH      clignotement de l'alignement
TSTAH7
  COMA             set carry (trouve)
  BRA   TSTAH9
TSTAH8
  CLRA             clear carry
TSTAH9
  RTS

*===========================================
* CLIGNOTEMENT ALIGNEMENT HORIZONTAL EN B
*===========================================  
CLIGH
* effacement des pastilles
  BSR   EFFH 
* affichage des pastilles
  ADDB  #$02
  LBSR  PDISP
  DECB
  LBSR  PDISP
  DECB
  LBSR  PDISP
* signal sonore
  LDX   #$00A0     hauteur note
  LDA   #$20       longueur note           
  LBSR  BUZZ
* effacement des pastilles
  BSR   EFFH       
  RTS

*===========================================
* EFFACEMENT 3 PASTILLES HORIZONTALES EN B
*===========================================  
EFFH
  PSHS  B          empilage numero de pastille
  BSR   EFFINI     initialisations 
  LDB   #$18       compteur de boucles
* effacement des pastilles
EFFH1
  STA   ,x+ 
  STA   ,x+ 
  STA   ,x+ 
  STA   ,x+ 
  STA   ,x+ 
  STA   ,x+ 
  STA   ,x+ 
  STA   ,x+ 
  STA   ,x+ 
  LEAX  $1F,X  
  DECB
  BNE   EFFH1
* signal sonore
  BSR   EFFBUZ
  PULS  B,PC

*===========================================
* SIGNAL SONORE EFFACEMENT ALIGNEMENT
*===========================================  
EFFBUZ
  LDX   #$0080     hauteur note
  LDA   #$30       longueur note           
  LBSR  BUZZ
  LDX   #$0060     hauteur note
  LDA   #$40       longueur note           
  LBSR  BUZZ
  RTS

*===========================================
* INITIALISATIONS POUR EFFACEMENT PASTILLES
*===========================================  
EFFINI
  LDA   $E7C3      PC du PIA systeme
  ANDA  #$FE       RAZ bit0
  STA   $E7C3      video couleur
  LDX   #PADDR     table des adresses
  LSLB             deplacement dans la table              
  LDX   B,X        adresse pastille B
  LDA   #$E4       couleur fond/forme 
  RTS

*===========================================
* TEST ALIGNEMENT VERTICAL EN B
* CARRY SET SI ALIGNEMENT TROUVE
*===========================================  
TSTAV
  CMPB  #$27
  BGT   TSTAV8     pas d'alignement en fin de colonne
  LDX   #PCOLOR    table des couleurs
  LDA   B,X        couleur pastille B 
  LEAX  8,X
  CMPA  B,X        couleur pastille B+8
  BNE   TSTAV8
  LEAX  8,X
  CMPA  B,X        couleur pastille B+16
  BNE   TSTAV8
  TST   JEUAUTO
  BNE   TSTAV7
  BSR   CLIGV      clignotement de l'alignement
TSTAV7
  COMA
  BRA   TSTAV9
TSTAV8
  CLRA             clear carry
TSTAV9
  RTS

*===========================================
* CLIGNOTEMENT ALIGNEMENT VERTICAL EN B
*===========================================  
CLIGV
* effacement des pastilles
  BSR   EFFV 
* affichage des pastilles
  ADDB  #$10
  LBSR  PDISP
  SUBB  #$08
  LBSR  PDISP
  SUBB  #$08
  LBSR  PDISP
* signal sonore
  LDX   #$00A0     hauteur note
  LDA   #$20       longueur note           
  LBSR  BUZZ
* effacement des pastilles
  BSR   EFFV       
  RTS

*===========================================
* EFFACEMENT 3 PASTILLES VERTICALES EN B
*===========================================  
EFFV
  PSHS  B          empilage numero de pastille
  BSR   EFFINI     initialisations 
  LDB   #$48       compteur de boucles
* effacement des pastilles
EFFV1
  STA   ,x+ 
  STA   ,x+ 
  STA   ,x+ 
  LEAX  $25,X  
  DECB
  BNE   EFFV1
* signal sonore
  BSR   EFFBUZ
  PULS  B,PC
  
*===========================================
* RECHERCHE DES ALIGNEMENTS
* CARRY SET SI ALIGNEMENT TROUVE
*===========================================  
PALIGN
  CLRA             initialisation compteur 
  PSHS  A          empilage compteur alignements
PALIGN1

* alignement horizontaux
  CLRB
HALIGN1
  LBSR  TSTAH      test alignement horizontal en B 
  BCS   HALIGN4    alignement trouve
  INCB
  CMPB  #$36 
  BEQ   VALIGN     alignement non trouve
  BRA   HALIGN1
HALIGN4
  LBSR  SUPPR
  INCB
  LBSR  SUPPR
  INCB
  LBSR  SUPPR
  INC   ,S
  BRA   PALIGN1

*alignement verticaux
VALIGN
  CLRB
VALIGN1
  BSR   TSTAV      test alignement vertical en B 
  BCS   VALIGN4    alignement trouve
  INCB
  CMPB  #$28 
  BEQ   VALIGN8
  BRA   VALIGN1
VALIGN4
  ADDB  #$10
  LBSR  SUPPR
  LBSR  SUPPR
  LBSR  SUPPR
  INC   ,S
  BRA   PALIGN1
VALIGN8
  PULS  A
  CMPA  #$00
  BEQ   VALIGN9
  COMA  #$01       set carry
VALIGN9
  RTS
  
*===========================================
* RECHERCHE ALIGNEMENT VERT OU HORIZ
* CARRY SET SI UN ALIGNEMENT EST TROUVE
*===========================================  
RALIG
  PSHS  B
  LDB   #$37
RALIG1
  LBSR  TSTAH      test alignement horizontal en B 
  BCS   RALIG9     alignement trouve
  LBSR  TSTAV      test alignement vertical en B 
  BCS   RALIG9     alignement trouve
  DECB
  BNE   RALIG1
  CLRA             clear carry  
RALIG9  
  PULS  B,PC
  
*===========================================
* AIDE = RECHERCHE DES COUPS POSSIBLES
*===========================================  
AIDE
  LDX   #$0100     hauteur note
  LDA   #$10       longueur note           
  LBSR  BUZZ       signal sonore
  CLRA             compteur de coups possibles
  PSHS  A          empilage compteur de coups
  INC   JEUAUTO    pour supprimer animation et son

* test des permutations verticales
AIDE0
  CLRB
AIDE1
  LBSR  CINVV       inversion des couleurs
  BSR   RALIG       recherche d'un alignement        
  BCC   AIDE2       pas d'alignement trouve
  LBSR  PERMV       affichage permutation verticale
  INC   ,S          incrementation du compteur de coups
AIDE2
  LBSR  CINVV       retablissement des couleurs
  INCB
  CMPB  #$2F
  BLE   AIDE1

* test des permutations horizontales
  CLRB
AIDE3
  TFR   B,A
  ANDA  #$07
  CMPA  #$07
  BEQ   AIDE5       dernier pion de la ligne
  LBSR  CINVH       inversion des couleurs
  BSR   RALIG       recherche d'un alignement        
  BCC   AIDE4       pas d'alignement trouve
  BSR   PERMH       affichage permutation horizontale
  INC   ,S          incrementation du compteur de coups
AIDE4
  LBSR  CINVH       retablissement des couleurs
AIDE5
  INCB
  CMPB  #$37
  BLE   AIDE3

* mise a jour du score et attente d'une touche
  DEC   JEUAUTO    pour retablir la valeur initiale
  LDD   SCORE
  SUBD  #$000A     enlever 10 points
  BGE   AIDE6
  LDD   #$0000     si negatif remettre a zero
AIDE6  
  STD   SCORE      mise a jour du score 
AIDE7
  LDX   #MAPPUI 
  LBSR  CHAINE     affichage du message appuyer touche
AIDE8
  JSR   $E806      lecture clavier
  BEQ   AIDE8      attente d'une touche
  CMPB  #$16       touche secrete ACC pour redemarrer
  LBEQ  INIT2      redemarrage     

* retablissement de la configuration de jeu
  LBSR  TDISP      affichage de toutes les pastilles
  LDX   #$0080     hauteur note
  LDA   #$10       longueur note           
  LBSR  BUZZ       signal sonore 
  LDX   #MAIDE 
  LBSR  CHAINE     affichage du message pour l'aide

  PULS  A          compteur de coups possibles
  CMPA  #$00
  BNE   AIDE9      continuer s'il y a des coups possibles 

* reinitialisation en cas de blocage
  LBSR  COULINI    initialisation des couleurs
  LBSR  TDISP      affichage de toutes les pastilles 
  LBSR  PALIGN     recherche alignements

AIDE9
  RTS
  
*===========================================
* AFFICHAGE PERMUTATION HORIZONTALE POSSIBLE
*===========================================  
PERMH
  LDX   #PADDR
  TFR   B,A
  LSLA
  LDX   A,X
  LEAX  $192,X
  LDA   $E7C3      PC du PIA systeme  
  ORA   #$01       Set bit 0
  STA   $E7C3      selection video forme  
  LDA   #$FF
  STA   ,X+
  STA   ,X+
  LEAX  $26,X
  STA   ,X+
  STA   ,X+
PERMH9
  RTS
  
*===========================================
* AFFICHAGE PERMUTATION VERTICALE POSSIBLE
*===========================================  
PERMV
  LDX   #PADDR
  TFR   B,A
  LSLA
  LDX   A,X
  LEAX  $2D1,X
  LDA   $E7C3      PC du PIA systeme   
  ORA   #$01       Set bit 0
  STA   $E7C3      selection video forme  
  LDA   #$0A       compteur de boucles
  PSHS  A          empilage
  LDA   #$30
PERMV1
  STA   ,X
  LEAX  $28,X
  DEC   ,S
  BNE   PERMV1
  PULS  A
PERMV9  
  RTS

*===========================================
* ECHANGE DES COULEURS B ET B+1 (HORIZONTAL)
*===========================================  
CINVH
  LDX   #PCOLOR    table des couleurs
  LDA   B,X        couleur premiere pastille
  PSH   A
  INCB
  LDA   B,X        couleur deuxieme pastille
  DECB
  STA   B,X        deuxieme dans premiere
  PULS  A
  INCB 
  STA   B,X        premiere dans deuxieme
  DECB             retablissement valeur initiale
  RTS

*===========================================
* ECHANGE DES COULEURS B ET B+8 (VERTICAL)
*===========================================  
CINVV
  LDX   #PCOLOR    table des couleurs
  LDA   B,X        couleur premiere pastille
  PSH   A
  ADDB  #$08
  LDA   B,X        couleur deuxieme pastille
  SUBB  #$08
  STA   B,X        deuxieme dans premiere
  PULS  A
  ADDB  #$08
  STA   B,X        premiere dans deuxieme
  SUBB  #$08
  RTS
  
*===========================================
* INITIALISATION DES COULEURS VALEUR A
*===========================================  
COULINI
  BSR   RANDOM
  LDX   #PCOLOR    table des couleurs
  LDB   #$37       numero derniere pastille
COULINI1   
  STA   B,X
  DECB
  BGE   COULINI1
  RTS

*===========================================
* CALCUL DU NUMERO DE PASTILLE B
* FONCTION DE LIGNE ET COLONNE POINTEES
*===========================================  
CALNUM
* numero dans la ligne = Y/3
  TFR   Y,D        ligne pointee
  SUBD  #$0005     centre premiere pastille
CALNUM1
  INCA   
  SUBB  #$03
  BGE   CALNUM1     
  DECA
* multiplication par 8
  LSLA
  LSLA
  LSLA
  PSHS  A          empilage resultat
* numero dans la ligne = X/3   
  TFR   X,D        colonne pointee
  SUBD  #$0011     centre premiere pastille
CALNUM2
  INCA   
  SUBB  #$03
  BGE   CALNUM2
  DECA
* ajout du nombre de pastilles lignes precedentes  
  ADDA  ,S
  TFR   A,B
  PULS  A
  RTS

*===========================================
* INVERSION DE DEUX PASTILLES B ET B+1
*===========================================  
PINVH
  BSR   CALNUM     calcul du numero B
  BSR   CINVH      inversion des couleurs
  LBSR  PDISP      affichage premiere pastille
  INCB  
  LBSR  PDISP      affichage deuxieme pastille
  LDX   #$0080     hauteur note
  LDA   #$08       longueur note           
  BSR   BUZZ
  RTS

*===========================================
* INVERSION DE DEUX PASTILLES B ET B+8
*===========================================  
PINVV
  BSR   CALNUM     calcul du numero B
  BSR   CINVV      inversion des couleurs
  LBSR  PDISP      affichage premiere pastille
  ADDB  #$08
  LBSR  PDISP      affichage deuxieme pastille
  LDX   #$0080     hauteur note
  LDA   #$08       longueur note           
  BSR   BUZZ
  RTS
  
*===========================================
* TEMPORISATION EN FONCTION DE X
*===========================================  
TEMPO
  PSHS  X
TEMPO1
  LEAX  -1,X
  BNE   TEMPO1
  PULS  X,PC  

*===========================================
* EMISSION SIGNAL SONORE
* TEMPO DANS X
* DUREE DANS A
*===========================================  
BUZZ
* signal sonore
  ORCC  #$50       masque les interruptions
  PSHS  A          compteur duree note
  LDA   $E7C1      registre pour le buzzer
BUZZ1
  ORA   #$08
  STA   $E7C1      buzzer a un 
  BSR   TEMPO      temporisation 
  ANDA  #$F7
  STA   $E7C1      buzzer a zero
  BSR   TEMPO      temporisation 
  DEC   ,S
  BNE   BUZZ1
  PULS  A 
  ANDCC #$AF       restaure les interruptions
  RTS

*===========================================
* CHOIX COULEUR AU HASARD (RETOUR DANS A)
* CODE DE __sam__ POUR LA GENERATION
* DES NOMBRES PSEUDO-ALEATOIRES
*===========================================  
RANDOM
  PSHS  B
RAND1  
  LDD   #3*256+249
  MUL
RAND2
  ADDD  #0
  STA   RAND2+2
  STB   RAND1+1
  TFR   B,A        nombre aleatoire
  ANDA  #$07       reduction a 8 valeurs 
  BEQ   RAND1      pas de noir
  CMPA  #$04
  BEQ   RAND1      pas de bleu
  CMPA  #$07
  BEQ   RAND1      pas de blanc
  PULS  B,PC

*===========================================
* SUPPRESSION PASTILLE B ET DESCENTE COLONNE
*===========================================  
SUPPR
  PSHS  B 
SUPPR1
  SUBB  #$08       pastille au-dessus
  BLT   SUPPR2     haut de colonne depasse
  BSR   SCROLL     scroll pastille
  BRA   SUPPR1     pastille suivante
SUPPR2   
  BSR   RANDOM     choix couleur au hasard
  LDX   #PCOLOR    table des couleurs
  ADDB  #$08       premiere pastille colonne
  STA   B,X
  LBSR  PDISP      affichage pastille 
  PULS  B,PC 

*===========================================
* SCROLL PASTILLE B
*===========================================  
SCROLL
  LDA   JEUAUTO    indicateur de jeu automatique
  BNE   SCROLL9    pas de mouvement en jeu automatique
  LDX   #PADDR     table des adresses
  LEAX  B,X        pointeur dans la table
  LEAX  B,X        pointeur dans la table
  LDY   ,X         adresse pastille B
  PSHS  Y          empilage adresse originale
  LDA   #$18       compteur de boucle
  PSHS  A          empilage compteur
  PSHS  Y,X        empilage pointeur et adresse 
SCROLL1
  PULS  X,Y
  LEAY  $28,Y
  STY   ,X
  PSHS  Y,X
  LBSR  PDISP
  DEC   4,S
  BNE   SCROLL1
  PULS  X,Y
  PULS  A
  PULS  Y          adresse originale
  STY   ,X         restauration de l'adresse
* signal sonore
  LDX   #$0040     hauteur note
  LDA   #$03       longueur note           
  LBSR  BUZZ
SCROLL9
  PSHS  B          empilage no pastille depart 
  LDX   #PCOLOR    table des couleurs
  LDA   B,X        couleur pastille depart
  ADDB  #$08
  STA   B,X        couleur pastille arrivee
  BSR   PDISP      affichage pastille arrivee
* incrementation du score
  LDD   SCORE
  ADDD  #$0001
  STD   SCORE
  PULS  B          depilage no pastille depart 
  RTS

*===========================================
* AFFICHAGE DU NUMERO DE PARTIE
*===========================================  
DPARTIE
  LDX   #PARTIE+2
  LBSR  CHAINE
  LDD   PARTIE
  ADDD  #$0001
  STD   PARTIE 
  JSR   DISPD      affichage registre D
  RTS

*===========================================
* AFFICHAGE DU SCORE
*===========================================  
DSCORE
  PSHS  B
  LDX   #BLANC     effacement de Patientez....
  LBSR  CHAINE
  LDX   #COUPS+2
  LBSR  CHAINE
  LDD   COUPS      nombre de coups
  JSR   DISPD      affichage registre D
  LDX   #SCORE+2  
  BSR   CHAINE
  LDD   SCORE      score
  JSR   DISPD      affichage registre D
  LDX   #MAX+2
  BSR   CHAINE
  LDD   MAX        hiscore
  JSR   DISPD      affichage registre D
  PULS  B,PC

*===========================================
* AFFICHAGE CHAINE EN X TERMINEE PAR $04
*===========================================  
CHAINE
  LDB   ,X+
  CMPB  #$04
  BEQ   CHAIN9
  JSR   $E803      affichage caractere
  BRA   CHAINE
CHAIN9
  RTS  

*===========================================
* AFFICHAGE COLONNE PASTILLE
*===========================================  
CDISP
  LDB   #$18
CDISP1               
  LDA   ,X+          
  STA   ,Y
  LEAY  $28,Y
  DECB
  BNE   CDISP1
  LEAY  -$3BF,Y 
  RTS

*===========================================
* AFFICHAGE DE LA PASTILLE B
*===========================================  
PDISP
  PSHS  B          empilage du numero de pastille 

* couleur
  LDA   $E7C3      PC du PIA systeme
  ANDA  #$FE
  STA   $E7C3      selection video forme
  LDX   #PCOLOR
  LDA   B,X        couleur pastille
* calcul octet couleur pour TO
  LSLA
  LSLA
  LSLA
  ORA   #$C4       bits intensite et fond
* recherche adresse pastille  
  LDX   #PADDR     table des adresses
  LSLB             deplacement dans la table              
  LDY   B,X        adresse pastille B
  PSHS  Y          empilage adresse
  LDB   #$18       nombre de lignes
PDISP0  
  STA   0,Y
  STA   1,Y
  STA   2,Y
  LEAY  $28,Y
  DECB
  BNE   PDISP0 
  ORA   #$07       couleur de fond blanc
  LEAY  -$27F,Y
  LDB   #$08 
PDISP2  
  STA   ,Y
  LEAY  $28,Y
  DECB
  BNE   PDISP2 
  PULS  Y

* forme  
  LDX   #PGRAPH    table de definition pastille
  INC   $E7C3      selection video forme
  BSR   CDISP      affichage premiere colonne
  BSR   CDISP      affichage deuxieme colonne
  BSR   CDISP      affichage troisieme colonne
  PULS  B,PC

*===========================================
* AFFICHAGE DE TOUTES LES PASTILLEs
*===========================================  
TDISP
  LDB   #$37
TDISP1  
  BSR   PDISP      affichage d'une pastille
  DECB
  BGE   TDISP1
  RTS

*===========================================
* AFFICHAGE BITMAP DU TITRE
*===========================================  
BITMAP
  LDY   #$4000     adresse debut d'ecran
  LDX   #TITRE
  LDA   $E7C3      PC du PIA systeme
  ORA   #$01
  STA   $E7C3      selection video forme
BIT1
  LDD   ,x++
  STD   ,Y++
  CMPY  #$43C0     adresse de fin du titre
  BNE   BIT1
  RTS

*===========================================
* AFFICHAGE REGISTRE D EN DECIMAL
*===========================================  
DISPD
  STD   DWORK1    stockage de D 
  CLR   DISPCN    raz nbre de chiffres affiches
  LDD   #10000    diviseur
  BSR   DISPC
  LDD   #1000     diviseur
  BSR   DISPC
  LDD   #100      diviseur
  BSR   DISPC
  LDD   #10       diviseur
  BSR   DISPC
  LDD   #1        diviseur
  INC   DISPCN    forcer affichage unite a zero
  BSR   DISPC
  RTS

*===========================================
* AFFICHAGE CHIFFRE DECIMAL
*===========================================  
DISPC
  STD   DWORK2    stockage diviseur   
  BSR   DIVD      division de D 
  CMPB  #$00
  BNE   DISPC1
  LDA   DISPCN    nombre de chiffers affiches
  BNE   DISPC1    affichage du zero
  RTS             pas d'affichage du zero  
DISPC1
  INC   DISPCN   
  ADDB  #$30      code ASCII
  JSR   $E803      affichage caractere
DISPCN
  FCB   $00

*===========================================
* DIVISION DE DWORK1 PAR DWORK2
* RESULTAT DANS B, RESTE DANS DWORK1
*===========================================  
DIVD
  CLRB 
  PSHS  B        compteur pour le quotient
  LDD   DWORK1   dividende
DIVD1
  SUBD  DWORK2   oter le diviseur
  BLT   DIVD2    terminer si valeur negative 
  INC   ,S       incrementer le quotient
  BRA   DIVD1    recommencer
DIVD2  
  ADDD  DWORK2   annuler la derniere soustraction 
  STD   DWORK1   reste dans DWORK1
  PULS  B,PC     depilage et retour 

DWORK1
  FDB   $0000    zone de stockage du nombre 
DWORK2
  FDB   $0000    diviseur
  
*===========================================
* Variables diverses (score, coups, etc.)
*===========================================  
PARTIE
  FDB  $0000
  FCB  $1E,$0A,$0A,$0A,$0A,$0A   
  FCC  'Partie: '
  FCB  $04
COUPS
  FDB  $0000
  FCB  $1E,$0A,$0A,$0A,$0A,$0A,$0A 
  FCC  'Coups : '
  FCB  $04
SCORE
  FDB  $0000
  FCB  $1E,$0A,$0A,$0A,$0A,$0A,$0A,$0A   
  FCC  'Score : '
  FCB  $04
MAX
  FDB  $0000
  FDB  $1E0A,$0A0A,$0A0A,$0A0A,$0A0A
  FCC  'Hiscore '
  FCB  $04
BLANC
  FCB  $1E   locate 0,0
  FDB  $0A0A,$0A0A,$0A0A
  FCB  $0A
  FCC  '                '
  FCB  $04
COUPMAX
  FDB  $0020       nbre de coups par partie
JEUAUTO
  FCB  $00         indicateur de jeu automatique
  
*===========================================
* Initialisation de l'ecran
*===========================================  
SCRINIT
  FCB  $1B   sequence d'echappement
  FCB  $47   forme blanc
  FCB  $1B   sequence d'echappement
  FCB  $54   fond bleu
  FCB  $1B   sequence d'echappement
  FCB  $64   cadre bleu
  FCB  $0C   effacement ecran
  FCB  $14   extinction curseur
  FCB  $04
  
*===========================================
* Ecran pour une nouvelle partie
*===========================================  
SCRNEW
  FCB  $1E   locate 0,0
  FDB  $0A0A,$0A0A,$0A0A
  FCC  '                '
  FDB  $0D0A
  FCC  'Patientez...    '
  FDB  $0D0A,$0A0A,$0A0A
  FCC  'Alignez 3 pions'
  FDB  $0D0A
  FCC  'de m'
  FDB  $1643
  FCC  'eme couleur '
  FDB  $0D0A
  FCC  'horizontalement '
  FDB  $0D0A
  FCC  'ou verticalement'
  FCB  $0D,$0A,$0A
  FCC  'Pointez entre 2 '
  FDB  $0D0A
  FCC  'pions pour les  '
  FDB  $0D0A
  FCC  'permuter.'
  FCB  $04
  
*===========================================
* Message pour afficher l'aide
*===========================================  
MAIDE
  FDB  $1E0A    locate 0,0 + line feed
  FDB  $0A0A,$0A0A,$0A0A,$0A0A,$0A0A
  FDB  $0A0A,$0A0A,$0A0A,$0A0A,$0A0A
  FCC  'Touche A = Aide'
  FDB  $0D0A
  FCC  'avec perte de  '
  FDB  $0D0A
  FCC  'dix points.    '
  FCB  $04
  
*===========================================
* Message d'appui sur une touche
*===========================================  
MAPPUI
  FDB  $1E0A    locate 0,0 + line feed
  FDB  $0A0A,$0A0A,$0A0A,$0A0A,$0A0A
  FDB  $0A0A,$0A0A,$0A0A,$0A0A,$0A0A
  FCC  'Appuyez sur une'
  FDB  $0D0A
  FCC  'touche pour    '
  FDB  $0D0A
  FCC  'continuer...   '
  FCB  $04
  
*===========================================
* Message de fin de partie
*===========================================  
FPARTIE  
  FDB  $1B4F       caracteres taille double
  FCB  $1F         sequence user
  FDB  $4D52       curseur ligne 13 colonne 18
  FCC  'FIN'
  FDB  $1B4C       caracteres taille normale
  FCC  ' de '
  FDB  $1B4F       caracteres taille double
  FCC  'PARTIE'
  FDB  $1B4C       caracteres taille normale
  FCB  $04
  
*===========================================
* Table des couleurs
*===========================================  
PCOLOR  
  FCB  $00,$00,$00,$00,$00,$00,$00,$00
  FCB  $00,$00,$00,$00,$00,$00,$00,$00
  FCB  $00,$00,$00,$00,$00,$00,$00,$00
  FCB  $00,$00,$00,$00,$00,$00,$00,$00
  FCB  $00,$00,$00,$00,$00,$00,$00,$00
  FCB  $00,$00,$00,$00,$00,$00,$00,$00
  FCB  $00,$00,$00,$00,$00,$00,$00,$00
  
*===========================================
* Positions des pastilles dans l'ecran
*===========================================  
PADDR
  FDB  $4510,$4513,$4516,$4519,$451C,$451F,$4522,$4525
  FDB  $48D0,$48D3,$48D6,$48D9,$48DC,$48DF,$48E2,$48E5
  FDB  $4C90,$4C93,$4C96,$4C99,$4C9C,$4C9F,$4CA2,$4CA5
  FDB  $5050,$5053,$5056,$5059,$505C,$505F,$5062,$5065
  FDB  $5410,$5413,$5416,$5419,$541C,$541F,$5422,$5425
  FDB  $57D0,$57D3,$57D6,$57D9,$57DC,$57DF,$57E2,$57E5
  FDB  $5B90,$5B93,$5B96,$5B99,$5B9C,$5B9F,$5BA2,$5BA5
  
*===========================================
* Graphisme de la pastille (par colonne)
*===========================================  
PGRAPH  
  FCB   $00,$00,$00,$00,$00,$03,$07,$07
  FCB   $0F,$0F,$0F,$0F,$0F,$0F,$07,$07
  FCB   $03,$00,$00,$00,$00,$00,$00,$00

  FCB   $00,$00,$00,$00,$FC,$FF,$FF,$FF
  FCB   $FF,$FF,$FE,$FE,$FC,$FC,$F1,$C3  
  FCB   $FF,$FC,$00,$00,$00,$00,$00,$00

  FCB   $00,$00,$00,$00,$00,$00,$80,$80  
  FCB   $C0,$C0,$C0,$C0,$C0,$C0,$80,$80  
  FCB   $00,$00,$00,$00,$00,$00,$00,$00  
  
*===========================================
* Graphisme du titre TO7
*===========================================  
TITRE
  FDB   $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
  FDB   $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
  FDB   $FFFF,$FFFF,$FFFF,$FFFF,$FE00,$0000,$0FFF,$800F
  FDB   $FFFF,$F000,$00FF,$FFE3,$F83F,$FFFF,$FFFC,$7FFF
  FDB   $FE3F,$83FF,$FFFF,$FF8F,$FFFF,$F1FF,$FFFF,$FFFF
  FDB   $FE00,$0000,$0FFC,$0001,$FFFF,$F000,$00FF,$FFE3
  FDB   $F07F,$FFFF,$FFFC,$7FFF,$FE3F,$07FF,$FFFF,$FF8F
  FDB   $FFFF,$F1FF,$FFFF,$FFFF,$FE00,$0000,$0FF0,$0000
  FDB   $7FFF,$F000,$00FF,$FFE3,$E0FF,$FFFF,$FFFC,$7FFF
  FDB   $FE3E,$0FFF,$FFFF,$FF8F,$FFFF,$F1FF,$FFFF,$FFFF
  FDB   $FE00,$0000,$0FE0,$0000,$3FFF,$F000,$00FF,$FFE3
  FDB   $C1FF,$FFFF,$FFFC,$7FFF,$FE3C,$1FFF,$FFFF,$FF8F
  FDB   $FFFF,$F1FF,$FFFF,$FFFF,$FFFF,$FFFF,$FFC0,$7FF0
  FDB   $1FFF,$FFFF,$F0FF,$FFE3,$83F8,$1F10,$7F00,$63E3
  FDB   $FE38,$3E02,$3E3C,$0788,$3FFF,$F1F0,$38FC,$703F
  FDB   $FE00,$0400,$0FC1,$C01C,$1FFF,$F000,$10FF,$FFE3
  FDB   $07E0,$0F00,$3E00,$63C3,$FE30,$7E02,$3E38,$0380
  FDB   $1FFF,$F1C0,$18FC,$401F,$FE00,$0400,$0F87,$0007
  FDB   $0FFF,$F000,$30FF,$FFE0,$0FC0,$0700,$3C00,$63C3
  FDB   $FE00,$FE06,$3E30,$0380,$0FFF,$F180,$08F8,$000F
  FDB   $FE00,$0400,$0F86,$0003,$0FFF,$F000,$20FF,$FFE0
  FDB   $1FC3,$870E,$1870,$61C7,$FE01,$FE1E,$3E31,$E187
  FDB   $0FFF,$F187,$0C78,$870F,$FE00,$0400,$0F0C,$0001
  FDB   $87FF,$F000,$61FF,$FFE0,$0FC7,$C71F,$1878,$71C7
  FDB   $FE00,$FE3E,$3E30,$718F,$8FFF,$F18F,$8C78,$8F8F
  FDB   $FFFF,$843F,$FF08,$3FE0,$87FF,$FFF0,$C1FF,$FFE0
  FDB   $0FFE,$071F,$18F8,$7187,$FE00,$FE3E,$3E30,$0F8F
  FDB   $8FFF,$F1FC,$0C31,$FC0F,$FFFF,$843F,$FF08,$7FF0
  FDB   $87FF,$FFE0,$83FF,$FFE1,$87F0,$071F,$18FC,$708F
  FDB   $FE18,$7E3E,$3E38,$038F,$8FFF,$F1E0,$0E31,$E00F
  FDB   $FFFF,$843F,$FF08,$3FE0,$87FF,$FFE1,$87FF,$FFE3
  FDB   $83E0,$071F,$18FC,$780F,$FE38,$3E3E,$3E3C,$018F
  FDB   $8FFF,$F1C0,$0E21,$C00F,$FFFF,$843F,$FF0C,$0001
  FDB   $87FF,$FFC3,$07FF,$FFE3,$C3C1,$C71F,$18F8,$780F
  FDB   $FE3C,$3E3E,$3E3F,$C18F,$8FF8,$F183,$8F03,$838F
  FDB   $FFFF,$843F,$FF86,$0003,$0FFF,$FF82,$0FFF,$FFE3
  FDB   $E1C7,$871F,$1878,$781F,$FE3E,$1E3E,$3C31,$F18F
  FDB   $8FF8,$F18F,$0F03,$8F0F,$FFFF,$843F,$FF87,$0007
  FDB   $0FFF,$FF86,$1FFF,$FFE3,$F0C3,$071F,$1C30,$7C1F
  FDB   $FE3F,$0E3E,$1830,$618F,$8FF8,$6186,$0F07,$860F
  FDB   $FFFF,$843F,$FFC1,$C01C,$1FFF,$FF0C,$1FFF,$FFE3
  FDB   $F040,$071F,$1C00,$7C1F,$FE3F,$063E,$0038,$038F
  FDB   $8FF8,$0380,$0F87,$800F,$FFFF,$843F,$FFC0,$7FF0
  FDB   $1FFF,$FE08,$3FFF,$FFE3,$F860,$031F,$1E00,$7E1F
  FDB   $FE3F,$863F,$0038,$038F,$8FFC,$07C0,$0787,$C007
  FDB   $FFFF,$843F,$FFE0,$0000,$3FFF,$FE18,$7FFF,$FFE3
  FDB   $FC30,$E31F,$1F84,$7E3F,$FE3F,$C23F,$C23E,$0F8F
  FDB   $8FFF,$0FE1,$C7CF,$E1C7,$FFFF,$843F,$FFF0,$0000
  FDB   $7FFF,$FC30,$7FFF,$FFFF,$FFFF,$FFFF,$FFFF,$FC3F
  FDB   $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
  FDB   $FFFF,$843F,$FFFC,$0001,$FFFF,$F820,$FFFF,$FFFF
  FDB   $FFFF,$FFFF,$FFFF,$FC7F,$FFFF,$FFFF,$FFFF,$FFFF
  FDB   $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$843F,$FFFF,$800F
  FDB   $FFFF,$F861,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$F07F
  FDB   $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
  FDB   $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
  FDB   $FFFF,$FFFF,$FFFF,$F0FF,$FFFF,$FFFF,$FFFF,$FFFF
  FDB   $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
  FDB   $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$F1FF
  FDB   $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF

END
Daniel
L'obstacle augmente mon ardeur.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: MO5 Kandy Krush Java

Message par Daniel »

Diffusion sur le site http://dcmoto.free.fr/ de nouvelles versions de Kandy Krush Java pour MO et TO, sur cassette (.k7 et .wav), disquette et carte SD. Egalement une nouvelle version de l'exécutable Windows :
kandykrush_win.zip
(72.78 Kio) Téléchargé 170 fois
Par rapport aux versions précédentes voici les deux principales nouveautés :
- Génération des nombres au hasard avec la routine donnée par __sam__
- Possibilité de jouer au clavier, donc sans moniteur à tube cathodique et sans crayon optique

Les versions MO5 sont compatibles avec avec tous les ordinateurs MO.
Les versions TO7 sont compatibles avec tous les ordinateurs TO (extension 16K obligatoire pour le TO7).

Testé aujourd'hui avec un MO5 et un TO8. Je testerai avec d'autres ordinateurs à l'occasion mais je suis confiant : ça marchera 8)
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
gleike
Messages : 1341
Inscription : 16 oct. 2014 11:12
Localisation : Ludres (54710) Meurthe & Moselle

Re: MO5 Kandy Krush Java

Message par gleike »

J'en ai rêvé, Daniel l'a fait.
Cette nouvelle version apporte un regain d’intérêt au jeu, mon bras te remercie :wink:
le placement du petit curseur exactement au bon endroit et un confort supplémentaire,
plus besoin de viser avec le crayon optique.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: MO5 Kandy Krush Java

Message par Daniel »

Le crayon optique était présenté comme un avantage décisif pour les Thomson par rapports aux autres ordinateurs, mais dans la réalité c'était bien différent.

D'abord il ne fonctionne pas avec le noir ou les couleurs sombres. A l'époque j'étais obligé de pousser à fond la luminosité du téléviseur et de réduire le contraste. L'image était délavée et je prenais des photons plein les yeux. Ensuite il n'est pas précis, le ressort du contact est trop fort, quand on appuie un peu de travers la pointe glisse sur l'écran, une fois sur deux on ne pointe pas au bon endroit, on perd du temps et le bras se fatigue vite. Aujourd'hui on ne peut plus l'utiliser avec les nouvelles technologies d'écrans.

On pourrait aussi se plaindre maintenant des écrans et des pavés tactiles. Rien ne vaut le clavier et la souris !
Daniel
L'obstacle augmente mon ardeur.
jasz
Messages : 1313
Inscription : 05 oct. 2016 20:05
Localisation : Quelque part dans le 31

Re: MO5 Kandy Krush Java

Message par jasz »

Daniel a écrit :Diffusion sur le site http://dcmoto.free.fr/ de nouvelles versions de Kandy Krush Java pour MO et TO, sur cassette (.k7 et .wav), disquette et carte SD. Egalement une nouvelle version de l'exécutable Windows :
La version deux en un (MOTO) a été abandonnée? Un seul programme pour les deux machines était pourtant une idée assez innovante...
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: MO5 Kandy Krush Java

Message par Daniel »

Eh non, il n'est pas abandonné, je travaille actuellement sur une nouvelle version. Elle remplacera les versions MO5 et TO7 actuelles. J'ai encore quelques tests à faire et je diffuserai toutes les versions (sur cassette TO, sur cassette MO, sur disquette et carte SD avec le DOS TO, avec le DOS MO, sans le DOS), et un nouvel exécutable Windows.

Toutes ces versions contiendront un seul et unique KANDY.BIN, s'adaptant automatiquement à l'architecture de la machine. Pour moi ce sera aussi plus facile de maintenir un seul programme au lieu de deux. Patientez encore un jour ou deux....
Daniel
L'obstacle augmente mon ardeur.
jasz
Messages : 1313
Inscription : 05 oct. 2016 20:05
Localisation : Quelque part dans le 31

Re: MO5 Kandy Krush Java

Message par jasz »

Daniel a écrit :Patientez encore un jour ou deux....
Comme on est bon prince on t'accorde le temps nécessaire à ce que tout soit au point ;)
Avatar de l’utilisateur
gleike
Messages : 1341
Inscription : 16 oct. 2014 11:12
Localisation : Ludres (54710) Meurthe & Moselle

Re: MO5 Kandy Krush Java

Message par gleike »

@Daniel

Comme je vois que tu travaille encore sur une nouvelle version de Kandy Krush
je voulais te suggérer une petite modification dans la version TO7,

A la place d'utiliser la barre d'espace pour valider le coup a jouer,
il serait je trouve a l'usage plus confortable d'utiliser la touche avec une flèche tordue (je ne sais pas son nom :roll: )
situé juste sous les 4 flèches de direction et au dessus de INF et EFF,
de cette façon une seule main est nécessaire pour jouer et elle reste toujours au même endroit.

Et aussi, pouvoir se servir du joystick pour déplacer le curseur et valider avec le bouton de tir, ça serait super,
et très ergonomique.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: MO5 Kandy Krush Java

Message par Daniel »

Cette touche "ORIGINE" a un emplacement différent selon les machines : complètement à gauche pour les MO5 clavier gomme, à gauche de la touche ENTREE pour les MO5E et MO5NR, au-dessus de la touche ENTREE pour les TO7/70 à clavier mécanique et sous la touche ENTREE pour les machines de dernière génération. Dans dcmoto c'est la touche "Début" du PC.

Je propose un compromis pour la validation du coup : utiliser la touche ENTREE (proche des flèches sur toutes les machines), ou au choix la touche ESPACE pour ceux qui préfèrent jouer à deux mains. L'utilisation du joystick est aussi une possibilité intéressante pour les joueurs (personnellement je n'aime pas du tout mais je comprends qu'on puisse le préférer). Je vais essayer de l'ajouter.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
gleike
Messages : 1341
Inscription : 16 oct. 2014 11:12
Localisation : Ludres (54710) Meurthe & Moselle

Re: MO5 Kandy Krush Java

Message par gleike »

La touche ENTREE me parait un bon compromis,
et l'utilisation du joystick permet de prendre du recul par rapport a l’écran et de se vautrer dans le fauteuil :lol:
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: MO5 Kandy Krush Java

Message par 6502man »

Daniel tu pourrais aussi proposer une option pour redéfinir les touches ?
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Répondre