Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

110 commentaire(s) de patatalo sur des sources sur tout CodeS-SourceS

Le : 10/01/2009 12:18:14
Source : TESTEUR DE COMPATIBILITTÉ VESA (SUPER VGA)
salut,



vous passez les parametres que VOUS voulez a VOS handlers d'interruption. la partie Hi de eax ne devrait pas etre modifié par le BIOS ( a verifier pour chaque fonction bien sur... passages mode PM par le bios,...). Si votre handler est en tete de liste, plus de problemes, vous pouvez vous envoyer des registres 32 bits.

@++


Le : 22/10/2008 18:10:21
Source : INTELLIGENCE ARTIFICIELLE - RÉSEAU DE NEURONES
salut,

le probleme, c'est que vous pouvez obtenir un thread planté qui tourne a fond en boucle sans wait ou autre, une prise de temps enorme sur windows qui ne considerera pas cela comme une erreur et c'est normal, cela pourrait tres bien ne pas l'etre. Le systeme windows semble alors devenir lent.

@++


Le : 17/10/2008 12:00:48
Source : INTELLIGENCE ARTIFICIELLE - RÉSEAU DE NEURONES
salut Vermifuge, ça faisait longtemps.

j'ai remarqué que tu utilise le registre esi sans le sauvegarder dans ta fonction "neurone", ça peut planter windows dans certaines circonstances (WndProc,...).

@++


Le : 08/09/2008 16:25:46
Source : LIVE CD OMF
a premiere vue, c'est plus complexe que ça mais c'est bien le module v86 qui fait des siennes et qui ne retourne que des 0 lors des lectures.

dans le gestionnaire de mémoire virtuelle, il est possible de supprimer pgtd, seuls pgd et pgmap sont utilisés pour mapper l'ensemble donc c'est bien le déplacement de 1 DWORD et non de 2 qui permet le swap des 4Mo.

ce code ne sera pas mis a jour car les versions suivantes utiliseront plutot une methode de switch thread plutot similaire au ShedTest.

@++


Le : 24/06/2008 09:08:05
Source : AUTOMATE CELLULAIRE EN ASSEMBLEUR ( JEU DE LA VIE )
autant pour moi, c'est vrai que cela fait toute la différence.
@++


Le : 22/06/2008 15:32:48
Source : AUTOMATE CELLULAIRE EN ASSEMBLEUR ( JEU DE LA VIE )
pourquoi FASM est-il le meilleur assembleur ? sur quoi appuie tu ton affirmation ?

déjà, il ne permet pas de faire des objets OMF. Ca commence mal pour etre le meilleur, il est limité...

Donc, qu'apporte-t-il de plus que les autres sinon toute une floppée de macros inutiles et réalisables égalements par tous les autres assembleurs ?


@++


Le : 19/06/2008 11:19:12
Source : TORITO LOADER & ISOEMUL
re,


tu n'as effectivement pas besoin de reinitialiser tes segments plusieurs fois. Tu peux le faire n'importe ou a partir du moment ou il ne sont pas utilisés. C'est a dire, pas longtemps quand meme car sinon pas d'acces memoire.

n'oublie pas non plus d'initialiser ta pile. Je n'ai pas trouvé quelle valeure elle avait dans ton code.

quand tu utilise les fonctions rep movs,cmps,scans, verifie ton flag de direction, tu pourrait copier dans la mauvaise direction sans meme t'en appercevoir. En general, il n'est pas modifié mais gerer c'est prevoir...

tu devrais vraiment profiter d'avoir des ORGS pour mettre plein de trucs en dur, apres le loader, y'auras plus d'ORG donc là d'accord, tout en dynamique.

@++


Le : 19/06/2008 10:48:13
Source : TORITO LOADER & ISOEMUL
salut Sajaris,

quelques petits details sont effectivement a revoir, je te conseille vivement de bien lire la doc intel avant de te lancer dans ce genre de travail, tu y gagneras de ton temps.

pour l'initialisation des registres GDTR et IDTR, ce n'est pas la taille qui est indiquée dans le registre mais la limite. (taille-1)

les tables IDT et GDT devraient peut-etre etres alignées sur un DWORD

je ne te conseille pas non plus de garder la valeure BIOS 0x70 pour le pic slave mais de regrouper toutes tes HWI par exemples juste apres les exceptions:
00-1F:EXCEPTIONS
20-2F:HWIS (ou ailleurs mais regroupé)
30-FF:SERVICES KERNELS

de toute façon, le bios ne pourra pas utiliser la table IDT et les interruptions BIOS seront simulées par ton code kernel.

je serais toi, je creerai d'abord un truc déjà tout initialisé en dur dans le code et ensuite, je créerai eventuellement des fonctions dynamiques d'initialisation. N'oublie pas que ça doit aller vite quand le pic est désactivé. Une solution serait de generer une gestion minimum en dur. Ensuite, en dynamique, tu lui rajoute des fonctionnalitées (setHwi, setException, setService...)
cela te permettra de gerer les exceptions, cela te facilitera tj le deboguage. C'est encore plus utile si tu mange sur ton sommeil pour coder ton kernel ;-)

tu as également oublié de désactiver l'interruption NMI par le port 70h, cette interruption a tres peu de chance d'arriver mais si cela ce produit -> reset, elle n'est pas désactivée par un cli.

Est-il normal que tu n'ai pas d'ORG à ton code BOOT ?

il me semble que c'est l'inverse, tu accede ici au registre IMR du pic, elle sont activées quand a 0. A verifier quand meme, je n'ai rien sous les yeux.
;masquage des IRQ
mov al,0h
out 21h,al
%endmacro



@++


Le : 11/06/2008 16:23:07
Source : LIVE CD OMF
oh oh,

je l'ai testé sur un vrai ordi, ça marche pus...

c'est pas bien grave, c'est le registre fs ou gs qui doit prendre une mauvaise valeure vers le v86 je suppose.

Faudrait sauver fs et gs puis les restaurer correctement et modifier les ISS en consequence.

Je viens de trouver un bug de l'ordinateur virtuel MS, il ne teste pas la valeure des segments en mode protégé, il doit attendre leur utilisation pour les signaler mauvais, ce que ne fait pas un vrai cpu.

@++


Le : 29/05/2008 15:30:07
Source : RECHERCHE DES PALINDROMES D'UN TEXTE SAISI.
ben oui moi pareil,
je l'aurais convertis aisement en objet nasm mais la convertion 16->32 c trop de boulot je prefere refaire a ce moment l?.

on s'est mal compris:
au lieu de
cmp al,truc
je bidule
cmp al,truc
je bidule
tu scan un tableau qui te donne si je ou jne.

le mieux: si tu as de la place, tu fait un tableau de 128 octets de booleens.
apres:
test [arechar+al],1
tu a ton je jne direct avec 1 seul test.

si tu n'as pas de place, tu convertit ce tableau de booleen en bitmap. donc 128bits soit 4DWORD.
apres:
xor eax,eax
mov al,C
mov cl,C
shr al,5 ;?a nous donne l'index DWORD
and cl,(32-1) ; on test 32bits par DWORD.
bt pd[bitmap+eax*4],cl
le flag carry te donne encore une fois le resultat direct.

le tout en 32bits et l?, je dis d'accord, source utile et interessante.

@++



1 2 3 4 5 6 7 8 9 10 11


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,187 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.