Win3x.Org

Windows & DOS Community

Gauvain OS

Répondre   Page 24 sur 31  [ 308 messages ]
Aller sur la page « 122 23 24 25 2631 »
Auteur Message
victornement
Sujet du message :
Publié : 09 juil. 2008 13:38
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 319
Inscription : 20 janv. 2007 12:23
 
Et comment font les autres programmes pour ne pas bloquer le programme ?
Ils détournent tous l'int 9h ?
Dans ce cas, je vais préférer utiliser le driver de la sourie pour qu'il appelle mon code lors d'un clic.
(car je cherchais à tester le clavier sans bloquer le programme pour pouvoir tester clavier et sourie en même temps).

Mais détourner l'int 9h ne devrait pas être éxtrêmement dur ?
Il suffit d'utiliser http://www.gladir.com/LEXIQUE/INTR/int2 ... Target=ASM puis de coder un machin pour gérer ça. Il faudrait seulement une grosse documentation que je n'ai pas.

Petite chose: En QB il y la variable INKEY$ qui contient toujours 0 ou la touche tapé. J'ai essayé de désassembler un exe construit avec QB pour voir comment ça marche. Je n'ai pas trop cherché mais je me souviens que les seuls appels d'interruptions étaient fais à l'int 21h.

Encore autre chose: http://www.gladir.com/LEXIQUE/INTR/INT0 ... ASM#INT09h . Voila qui devrait aidé à recoder l'int 9h ! Bien que je ne crois pas que je le ferai.

edit: J'ai trouvé ça aussi ! http://www.alrj.org/docs/hardware/clavier/clavier.htm

_________________

Salut


Haut
Profil Citer
corwintirnanog
Sujet du message :
Publié : 09 juil. 2008 18:56
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 326
Inscription : 23 oct. 2005 14:13
 
victornement a écrit :
Et comment font les autres programmes pour ne pas bloquer le programme ?
Si ton programme comporte une boucle principale qui lance les tâches les unes après les autres, tu ne devrais pas avoir de soucis.

Si tu veux que tes programmes s'exécutent en concurrence, alors il te faut coder un petit noyau multitâche. Il y a deux options:
- mode coopératif, chaque fois qu'un programme doit attendre il rend la main au noyau qui le relance régulièrement.
- mode préemptif, un timer interrompt *tous* tes programmes applicatifs et lance le noyau préemptif, qui lance la tâche suivante. Il faut donc une table des tâches.

Ca a l'air compliqué mais si on est soigneux et bien concentré, on y arrive facilement. Le point essentiel c'est de ne commencer à coder que quand on a tout mis sur le papier!
victornement a écrit :
Très bon exemple.


Haut
Profil Citer
victornement
Sujet du message :
Publié : 09 juil. 2008 19:42
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 319
Inscription : 20 janv. 2007 12:23
 
Oui, mais mon programme doit gérer le clavier et la sourie en même temps. Actuellement, la sourie est OK mais le clavier m'embête car il doit bloquer le programme jusqu'a ce qu'une touche soit enfoncée.

Donc voilà ce que je vais faire actuellement :
>Créer une fonction pour permettre d'utiliser la fonction du driver de sourie qui permet d'appeller une fonction lors d'un clic.
>Continuer à convertir Gauvain OS 2.3 en C (ça va faire -et ça sera- plus sérieux) !


----
Publié: samedi 12 juillet 2008 16:39

Ah ! J'ai parlé trop vite au sujet du fait que l'on ne peut qu'attendre avec les différentes fonction pour lire le clavier !
En fait, il y a une fonction pour lire l'état du buffer clavier (si il est vide ou non), donc j'ai pu coder une fonction "unsigned short int KEYBOARD_InKey();" et une fonction "unsigned short int KEYBOARD_WaitForKay();".
Ca me simplifiera la vie

_________________

Salut


Haut
Profil Citer
zmbl
Sujet du message :
Publié : 13 juil. 2008 13:10
Membre d'honneur
Avatar de l’utilisateur
Hors-ligne
 
Messages : 271
Inscription : 14 févr. 2008 13:59
 
Si je comprends bien, pour créer un programme sans utiliser un programme faut taper un truc du genre :
00001010111101011001100100010010011100010001000101011110001111111111010101110011110
Dans ce cas c'est de la folie :shock:

_________________

« Non, Tournesol. Tryphon Tournesol. »


Haut
Profil Citer
victornement
Sujet du message :
Publié : 13 juil. 2008 14:04
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 319
Inscription : 20 janv. 2007 12:23
 
Sans utiliser de compilateur.

Parce que tes suites binaires, tu les tapes bien quelque part ? Dans un programme qui les gère :)

_________________

Salut


Haut
Profil Citer
zmbl
Sujet du message :
Publié : 13 juil. 2008 18:10
Membre d'honneur
Avatar de l’utilisateur
Hors-ligne
 
Messages : 271
Inscription : 14 févr. 2008 13:59
 
Damned ! Mais comment tout a commencé alors ? Quand il n'y avait pas de programmes, il a bien fallu les rentrer quelque part tous ces 0 et 1 !

_________________

« Non, Tournesol. Tryphon Tournesol. »


Haut
Profil Citer
victornement
Sujet du message :
Publié : 13 juil. 2008 18:14
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 319
Inscription : 20 janv. 2007 12:23
 
Ben il y avait les cartes perforées.
Et le premier micro-ordinateur (l'altaïr) était équipé de petits boutons à bascule : http://upload.wikimedia.org/wikipedia/c ... r_8800.jpg

_________________

Salut


Haut
Profil Citer
zmbl
Sujet du message :
Publié : 13 juil. 2008 19:19
Membre d'honneur
Avatar de l’utilisateur
Hors-ligne
 
Messages : 271
Inscription : 14 févr. 2008 13:59
 
Ouahou... On est quand même bien loin du Media Center de Vista ^^

A cette époque fallait avoir les capacités d'inventer le PC pour s'en servir ^^

_________________

« Non, Tournesol. Tryphon Tournesol. »


Haut
Profil Citer
victornement
Sujet du message :
Publié : 13 juil. 2008 19:41
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 319
Inscription : 20 janv. 2007 12:23
 
[sans rapport avec le post précédent]
Comment afficher un pointeur FAR dans un printf() ?

Avec %p et %4p ça ne fait rien. J'ai trouvé la solution de faire "%p%p" (avec un %p de trop).
Y aurait-il une méthode plus correcte bien que celle-la marche ?


----
Publié: Lun 14 Juil 2008 12:37

Petit rajout : Mais %p%p m'écrit l'offset avant le segment et %4x ne marche pas :cry:

Note : Ce n'est que pour tester comment fonctionne mon programme, je n'utiliserai pas printf() dans ça version définitive.
J'ai déjà codé une bonne partie de la gestion de la sourie (mais je dois afficher moi même le curseur car mouse.com à du mal avec vesa), de l'écran en mode texte et 13h ( 320*200*8 ), et du clavier (KEYBOARD_WaitForKey() et KEYBOARDInKey()), et une partie des fonction VESA.

J'ai seulement du mal avec VESA en ce moment.


----
Publié: lundi 04 août 2008 11:49

Petite question : Comment partager une variable entre plusieurs fichiers en Quick Basic ?
Sans utiliser chain ?

_________________

Salut


Haut
Profil Citer
Vorro
Sujet du message :
Publié : 12 août 2008 23:08
Modérateur
Avatar de l’utilisateur
Hors-ligne
 
Messages : 2441
Inscription : 20 juin 2006 22:54
PC Rétro : Compaq Contura Aero 4/33C !
 
Et parlant de Gauvain OS, la version 2.3, mois je l'attends avec impatience ! :D Bon courage !

_________________

[ img ]
:!: :arrow: :arrow: :arrow: Téléversez vos fichiers sur NWServeur (service fourni par Atnode)


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