Win3x.Org

Windows & DOS Community

Gauvain OS

Répondre   Page 23 sur 31  [ 308 messages ]
Aller sur la page « 121 22 23 24 2531 »
Auteur Message
victornement
Sujet du message :
Publié : 30 mai 2008 19:14
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 319
Inscription : 20 janv. 2007 12:23
 
Je vais peut être traduire pour FreeBasic une fois que j'aurai compris comment il appel les interruption (et apparemment il fait peut être de l'assembleur inline. C'est une bonne nouvelle qui me permettra de réaliser certaines fonctions subtiles comme des décalages binaires ou autres !

_________________

Salut


Haut
Profil Citer
corwintirnanog
Sujet du message :
Publié : 30 mai 2008 19:24
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 326
Inscription : 23 oct. 2005 14:13
 
victornement a écrit :
Je vais peut être traduire pour FreeBasic une fois que j'aurai compris comment il appel les interruption (et apparemment il fait peut être de l'assembleur inline. C'est une bonne nouvelle qui me permettra de réaliser certaines fonctions subtiles comme des décalages binaires ou autres !
décaler à gauche c'est multiplier par 2, décaler à droite c'est diviser par 2:

Si on prend 3:
3 << 1 = 0011 << 1 = 0110 = 6 = 3 * 2
3 >> 1 = 0011 >> 1 = 0001 = 1 = 3 / 2


Haut
Profil Citer
victornement
Sujet du message :
Publié : 30 mai 2008 19:52
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 319
Inscription : 20 janv. 2007 12:23
 
Oui, je sais ... pas la peine de me prendre pour un idiot. :)

_________________

Salut


Haut
Profil Citer
corwintirnanog
Sujet du message :
Publié : 30 mai 2008 20:04
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 326
Inscription : 23 oct. 2005 14:13
 
victornement a écrit :
Oui, je sais ... pas la peine de me prendre pour un idiot. :)
Ouah, pas commode ce soir!
En tout cas tu vois qu'il n'y a pas besoin d'assembleur en ligne pour faire des décalages.
Par contre il y a des choses différentes de QB dans freebasic comme les types et les structures, mais j'imagine que tu sais tout ça déjà :lol:


Haut
Profil Citer
victornement
Sujet du message :
Publié : 30 mai 2008 20:14
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 319
Inscription : 20 janv. 2007 12:23
 
Exuses moi pour le post assez sec (enfin, j'ai quand même réjouté un clin d'oeil qui n'y était pas originalement !).
Ben pour l'assembleur je dis simplement que par certains coté c'est plus amusant et plus commode pour des appels d'interuption ou autres taches spécifiques (d'ailleurs je ne suis pas sur que le compilateur Quick Basic transforme des multiplications en décalages systématiquement).
Et les structures existent aussi en Quick Basic (on les appelle Type).
[aprés relecture de ton post]
Ah ! Il y a une différence entre type et structure ?

_________________

Salut


Haut
Profil Citer
corwintirnanog
Sujet du message :
Publié : 30 mai 2008 20:56
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 326
Inscription : 23 oct. 2005 14:13
 
victornement a écrit :
Il y a une différence entre type et structure ?
Euh je ne connais pas le basic....donc méfiance avec mes réponses!

* Pour les structures la réponse est simple, une structure c'est une donnée qui est composée de différentes données.
Par exemple en C:
struct client {
int date_naissance ;
char * adresse ;
char * nom ;
} un_client ;

Ca permet de mettre de l'ordre dans les données qu'on utilise, c'est même à la base du langage COBOL.

* Pour les types, j'ai regardé sur Wikipédia mais les explications qu'on y trouve ne me satisfont pas, aussi voilà ma version, tant pis si vous la trouvez trop compliqué!
Un type sert à désigner un sujet ou un objet dans une proposition. Un opérateur est appliqué sur un ou des types. Le but c'est aussi de mettre de l'ordre dans les données, mais pas en les structurant, le type met de l'ordre dans les données en permettant de détecter des mélanges de dénomination.

Par exemple si j'ai deux variables nommées age et age_type et une fonction adulte qui prend l'age et dit si l'age correspond à celui d'un adulte ou pas.
Il y a deux façons de faire pour implémenter ça:
/* programmeur incompétent */
int age ;

if(adulte(age)) // <-------- pas de typage de l'âge!!!!!
; // c'est un adulte
else
; // c'est un enfant

/* programmeur plus compétent */
typedef int age_type ;
int adulte(age_type) ;

if(adulte(age)) <--------- Le compilateur indique une erreur de type
; // c'est un adulte
else
; // c'est un enfant


Haut
Profil Citer
victornement
Sujet du message :
Publié : 30 mai 2008 21:08
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 319
Inscription : 20 janv. 2007 12:23
 
Bah en Quick Basic les types sont des structures sans autre différences que le nom alors :
Type Homme
   Age As Integer
   Hauteur as Integer
End Type
Dim NicolasSarkosy As Homme
NicolasSarkosy.Age = 40
NicolasSarkosy.Hauteur = 150
struct Homme {
   int Age;
   int Hauteur;
} 
Homme NicolasSarkosy;
NicolasSarkosy.Age = 40;
NicolasSarkosy.Hauteur = 150;

_________________

Salut


Haut
Profil Citer
corwintirnanog
Sujet du message :
Publié : 30 mai 2008 21:34
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 326
Inscription : 23 oct. 2005 14:13
 
Je ne suis pas sûr que la syntaxe de QB soit si éloignée des autres langages.
Un structure c'est:
une façon de structurer des données possédant chacune un type précis.
L'ensemble de la structure est un nouveau type.

Si je me fie à ce document:
http://www.glue.umd.edu/~NSW/ench250/qbasic.htm
la déclaration d'une donnée se fait de la façon suivante:
declare variablename AS type ... general format
(quand il n'y a pas ambiguité on doit pouvoir enlever différents mots clés)
Mais grosso modo ça permet bien de spécifier que la donnée de nom "variablename" possède le type "untel".

Par contre dans le document ils ne citent le mot clé "TYPE" que pour des enregistrements sur disque


Haut
Profil Citer
victornement
Sujet du message :
Publié : 09 juil. 2008 10:38
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 319
Inscription : 20 janv. 2007 12:23
 
[Avec rapport avec le poste précédent]
Si si, les structures du C/C++ sont les types des Basics !
En tous cas, ils s'utilisent de la même façon.

[Sans rapport avec le poste précédent]
Je vais peut-être reprogrammer Gauvain OS 2.3 en C !
Depuis plusieurs jour je reprogramme certaines fonctions de bases comme celles de la gestion de la sourie (que j'ai terminé) via l'int 33h et celles du clavier.

A ce propos j'ai une question : Comment determiner l'état du clavier sans attendre qu'une touche soit enfoncée ?
En fait je voudrais réaliser une fonction qui vérifie si il y a une touche d'enfoncé sans attendre qu'il y en ait une.

_________________

Salut


Haut
Profil Citer
corwintirnanog
Sujet du message :
Publié : 09 juil. 2008 13:04
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 326
Inscription : 23 oct. 2005 14:13
 
victornement a écrit :
A ce propos j'ai une question : Comment determiner l'état du clavier sans attendre qu'une touche soit enfoncée ?
En fait je voudrais réaliser une fonction qui vérifie si il y a une touche d'enfoncé sans attendre qu'il y en ait une.
En MSDOS tu peux lire la valeur du Scan code directement sur le clavier, il y a un bit qui dit si la touche est enfoncée ou non. L'inconvénient c'est que tu vas attendre bêtement que quelque chose se passe, ce qui revient à bloquer ton programme quand tu veux lire quelque chose sur ton clavier.

Sinon tu détournes l'interruption clavier (INT 09h IRQ1) vers ton programme de lecture du clavier. Il ne faut pas oublier de faire le ménage dans la pile. Là ça commence à devenir de la vraie programmation système :-)


Haut
Profil Citer
Afficher : Trier par : Ordre :
Répondre   Page 23 sur 31  [ 308 messages ]
Revenir à « Projets abandonnés » | Aller sur la page « 121 22 23 24 2531 »
Aller :