Jump to content
Jagware

GT Turbo

Administrators
  • Content count

    3,199
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by GT Turbo


  1. Pour résumé tout cela, la routine a utilisé est celle la :

     

     

     

    movei #$80000000,r20

     

     

     

    move r1,r3

     

    and r20,r3 ; on récup juste le bit de signe de r1 dans r3

     

     

     

    move r2,r4

     

    and r20,r4 ; on récup juste le bit de signe de r2 dans r4

     

     

     

    abs r1 ; Absolution de r1 !!

     

    abs r2 ; Absolution de r2 !!

     

     

     

    div r1,r2 ; on divise r2 par r1

     

     

     

    add r3,r4 ; on fait ta magouille sur les signes

     

    or r4,r2 ; on rajoute le signe...

     

     

     

    GT Turbo B)


  2. Avis aux graphistes présents, certains progs sont finis ou pas loin (Ellipse qui me manque juste une routine de compression plus efficace, et d'autres) mais j'aimerais pouvoir appliquer un logo Jagware dessus, une empreinte graphique, un petit graffe qui devrait symboliser le sceau, le sigle Jagware :

     

     

     

    Les restrictions d'usage :

     

     

     

    - Pas trop gros, une icone dans la limite 16*16 ou maxi 32*32

     

    - et parce que certains devellopent sur ecrans monochromes (SCPCD je penses meme a toi !) il

     

    faudrait soit une version monochrome et ou couleur ou juste une monochrome utilisable dans toutes les résolutions. Pour info mefiez vous si vous tentez quelque chose en couleur, les Atari ne disposent pas tous de mode True Color, donc vos couleurs risquent de se trouver modifier par les programmes et finir comme un Picasso en pleine crise d'angoisse !!

     

     

     

    A vos pinceaux !

     

     

     

    GT En train de gribouiller !! :blink:


  3. Schéma récupéré, maintenant pour la partie soft, je balances des séquences au hasard avec le micro, chiffre et intervalle variable.

     

    Mais coté Jag, je fais une bete boucle au 68000 en attendant la réception d'un octet et j'en fais la lecture oue je fais une routine d'inter ?

     

     

     

    Faut que je regardes dans le code de Doom, je sais que celui la plante par moment, mais je sais pas si les routines reception-emission sont dans les sources, cela permettrait de savoir quel type de lecture appliqué.

     

     

     

    GT En train d'emettre ! ;)


  4. Azrael :


    Ceci dit on a un petit probleme avec la routine precedente. La multiplication prend des registres de 16 bits alors que la division en prend de 32 bit. Bref, quand on evalue le bit de signe c'est avec des registres de 16 bits. Il faudrait faire un decalage de chaque registre a multiplier pour avoir le bit de signe au bon endroit... ou bien le bit de signe est toujours en position 32 meme pour des entiers codes sur 16 bits ? Si la reponse a derniere question est vrai, alors la routine doit marcher... En fait je crois que ca marche, sinon c'est un enfer a coder... J'ai rien dit, vous pouvez aller mater la tele tranquille... moi je retourne me coucher.





    Bien noté, tu as raison et SCPCD derrière toi aussi, on peut faire des div sur 16 bits.



    Pour l'instant je vais y reflechir, je peux enfin allumer mon Falcon et ma Jag.



    GT Parti, a plus !! ;)

  5. SCPCD :


    ben pour les tests, c'est vrai que en utilisant un PC ou un ATARI en faisant des progs d'envois de données serie, et d'afficher les resultats sur l'ecran de la Jag, ca permettrerais, je pense, de trouver un protocole qui marche.





    Je peux faire les essais, il va juste falloir qu'on regarde pour le cable de transfert.





    GT ;)

  6. Azrael :


    Enfin le plus pratique c'est quand meme d'ecrire une macro qui fait ca





    Pour la division ? Pour ces quelques lignes, je fais un couper coller. Et faut optimiser, car penses a la routine 3D (2 div signé par point) quand il y aura 1000 points a calculer, ce genre d'optim peut faire gagner un gros paquet de cycles.



    Le plus important c'est que maintenant on a une petite routine qui va bien après c'est a ces clowns de codeur d'optimiser !! (C'est moi qui est dit cela :blink:)





    GT En train d'optimisé ;)

  7. Azrael :


    enfin bon, faire une multiplication pour une division... c'est quand meme un comble !!! il n'y a vraiment pas de division signee ???? c'est une puce prehistorique, c'est pas possible !!!





    En creant ces puces, ils avaient pas d'envie de ce faire c...



    Azrael :


    Il n'y a pas une histoire de cache et d'instruction qu'il faut entrelacer pour que ca aille plus vite ?





    J'étais en train d'y penser, le but du jeu, c'est qu'aucune instruction n'utilise un résultat calculé précédemment (Règle générale), ca pourrait donner cela :



    <

  8. Azrael a trouvé mieux :

     

     

     

     

    movei #$80000000,r20

     

     

     

    move r1,r3

     

    and r20,r3 ; on récup juste le bit de signe de r1 dans r3

     

     

     

    move r2,r4

     

    and r20,r4 ; on récup juste le bit de signe de r2 dans r4

     

     

     

    abs r1 ; Absolution de r1 !!

     

    abs r2 ; Absolution de r2 !!

     

     

     

    div r1,r2 ; on divise r2 par r1

     

     

     

    add r3,r4 ; on fait ta magouille sur les signes

     

    or r4,r2 ; on rajoute le signe...

     

     

     

     

    le dernier or peut etre remplacé par un add r4,r2 cela fait pareil

     

     

     

    GT Battu par Azrael qui osera se mesurer a lui ! ;)

     

     

     

    P.S. : Le genre de code que j'aime !! :yes:


  9. La division executé par les deux artistes (Gpu et Dsp) n'est pas signé, en clair pas de chiffre négatif sinon cela va mal se finir, j'ai passé un petit moment a chercher le moyen le plus court de remettre le bon signe en fin d'opération et propose cela :

     

     

     

     

     

    movei #$80000000,r21 ; le registre r21 a juste le bit de signe mis

     

    moveq #0,r20

     

    abs r0 ; Valeur absolue du registre r0

     

    jr PL,Positif_0 ; le registre était positif si oui va a Positif_0

     

    nop ; instruction bidon obligatoire

     

    move r21,r20 ; sinon r20=$80000000

     

    Positif_0:

     

     

     

    abs r1 ; Valeur absolue du registre r1

     

    jr PL,Positif_1 ; registre positif avant ? Si oui va en positif_1

     

    nop ; pareil qu'avant

     

    add r21,r20 ; sinon add $80000000

     

    Positif_1:

     

     

     

    divu r0,r1 ; pratique notre division

     

    or r2,r1 ; rajoute le signe

     

     

     

     

     

    Explication :

     

     

     

    Les procs faisant tout en 32 bit, le bit de signe est le 31 (Dernier car on a un bit 0), celui est placé si bien sur la valeur est négative. J'utilises la valeur $80000000, celle ci place juste le bit de signe sur 1 donc négatif.

     

     

     

    J'initialises un registre a 0, si le premier chiffre est négatif, ce registre passe a $80000000, ce qui nous fait un registre négatif. Si le second chiffre est aussi négatif on lui additionne $80000000 de nouveau, pourquoi c'est simple. Si on additionne $80000000 cela donne 0. Donc on se retrouve avec la règle des signes.

     

     

     

    - + = -

     

    - - = -

     

    + + = +

     

     

     

    Ce qui fait que dans ce registre on a juste le bon signe, qu'on replace après la division par un or.

     

    Si quelqu'un a mieux ou plus court je suis preneur.

     

     

     

    GT Divisé :wacko:


  10. La vrai question est est ce qu'il y a deux bugs dans l'UART ?

     

     

     

    Si la réponse est non, voila le bug et la technique pour le corriger :

     

     

     

    There is a bug in the Jaguar UART.If a start bit is detected at a certain phase in the UART's divide by 16 timer, it will be shifted in twice, resulting in a left shift of the data byte.

     

     

     

    The problem may be avoided by preceeding a data packet with a dummy byte where the MSB is set (E.G.$80). The receiver code should discard this dummy byte. Subsequent bytes should be exactly aligned (i.e. 2,3 or 4 stop bits exactly, before the next start bit). This will result in causing the falling edge of the next start bit to miss the phase of the UART counter which causes the problem.

     

     

     

    If a gap is left after a byte which is more than 2 bit times long, or is not exactly aligned with the previous byte, then the dummy byte must be retransmitted (To align the UART counter again).

     

     

     

     

     

     

    Voili, voila donc est ce que qu'il y a deux bugs dedans ? Pour info le texte d'avant provient de la doc Atari dans la page bug....

     

     

     

    GT En train de lire ;)


  11. Azrael :


    Bah, euh, oui et non, j'ai pas non plus envie de réinventer le fil a couper le beurre, donc si la theorie est la je suis preneur aussi :) Creer un moteur 3D gerant les faces cachees par exemple c'est pas de refus.





    Tu fais comme tu veux t'est assez grand ;) Moi j'ai trouvé ma routine qui me va bien !!





    GT Heureux :yes:

  12. Azrael a déjà tout le nécessaire en stock, actuellement cela va etre plus le choix de la routine pour qu'elle tourne très vite sur la Jag que le problème du noyau ou autres. L'optimisation et le choix de la routine est assez a l'opposé d'un 68000

     

     

     

    GT En train de discuter avec Azrael ;)


  13. Je peux peux etre te règler une partie de tes problèmes. Je peux vite bricoler mon Falcon (J'ai 4 soudures et 2 composants a rajouter) pour avoir une entrée ligne, ma Jag se trouve a 40 cm de mon Falcon, donc un bon cable blindé devrait suffire et je peux utiliser un prog de D2D (Direct to Disk) qui enregistre en temps réel directement l'entrée dans un fichier avec une qualité très elevée, le problème après c'est que je sais pas comment je vais retransferer le fichier sur un PC !!! A cause de la taille des fichiers, la disquette est inutilisable, donc si quelqu'un a une idée. RaZ n'a pas de port IDE sur son PC, donc pas de transfert de dur, les progs de gravure de CD sur Falcon, ne fonctionne qu'avec la pleine lune !!!

     

     

     

    GT ;)


  14. Arethius :


    Je ne possèdent qu'un ordinateur portable... je nesais même pas si il est équipé pour une telle opération... Mintenant n'y-t-il pas le porblme license qui se pose ?





    Pour la license je sais pas si on peut t'aider, par contre du coté technique on va bien réussir a trouver une personne qui dispose d'une Jag avec des sorties son et une carte son PC pas trop merdique.



    GT Pour ce CD :yes:
×