IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Free Pascal Discussion :

Code source de l'implémentation de Write [Free Pascal]


Sujet :

Free Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2010
    Messages : 146
    Par défaut Code source de l'implémentation de Write
    Bonjour,

    je voudrais connaître le code qui s'exécute lorsqu'on écrit la fonction Write en Pascal, c'est-à-dire le code source écrit par le développeur du langage.

    Merci

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut

    la methode "write" utilise la fonction système 40h interruption 21h
    le code est compilé personne n'a les sources mais au lieu d'écrire dans un fichier elle écrit sur le périphérique écran

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2010
    Messages : 146
    Par défaut
    merci pour la réponse,
    connaissez vous un langage ou on a accès au code source
    je veux apprendre comment les choses sont faites.
    merci

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 282
    Par défaut
    Bonsoir

    Free Pascal est un logiciel libre, et donc les sources sont disponibles: https://www.freepascal.org/down/source/sources.var
    Par contre pour tout ce qui se rapporte au système (les fonctions de bas niveau) cela risque d'être assez obscure.

    Et c'est bien un endroit où j'ai jamais mis les pieds.

    Delias

  5. #5
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par je viens du sud Voir le message
    Bonjour,

    je veux connaitre le code qui s'exécute lorsqu'on écrit la fonction write en pascal , c'est a dire le code source écrit par le développeur du langage ,
    merci
    ce code est différent en fonction de l'OS cible...mais dans tous les cas, un debug pas à pas au niveau assembleur donnera tout le détail

    le code source doit se trouver dans l'unité System

    Citation Envoyé par anapurna Voir le message
    salut

    la methode "write" utilise la fonction système 40h interruption 21h
    le code est compilé personne n'a les sources mais au lieu d'écrire dans un fichier elle écrit sur le périphérique écran
    ça c'est uniquement sous DOS

    sous Windows (et sous Delphi), c'est WriteFile vers STD_OUTPUT_HANDLE
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #6
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    ce code est différent en fonction de l'OS cible...mais dans tous les cas, un debug pas à pas au niveau assembleur donnera tout le détail

    le code source doit se trouver dans l'unité System


    ça c'est uniquement sous DOS

    sous Windows (et sous Delphi), c'est WriteFile vers STD_OUTPUT_HANDLE
    oui et non
    pour tout ce qui est pc le write ou writefile utilise la meme interuption et fonction matériel (bios)
    pour ce qui est de iPhone et autre nouveaux matériel je ne sais pas mais je suppose que pour beaucoup ils ont gardé les mêmes fonctionnalités
    l'os n'est qu'une surcouche du bios que se sois du linux,windows,...

    d’après toi, il fait quoi le writeFile ou le write sur un pc sous Windows ?
    pour moi c'est la même fonction sauf que l'une a été dédié a l'affichage
    mais j'ai un souvenir ou il y avait un moyen de détourner la sortie standard écran sous tout autres fichier

    PS après vérification 21h est une interruption logiciel et correspond a l’interruption 80h sous linux
    effectivement les interruption logiciel diffère selon l'os

  7. #7
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par anapurna Voir le message
    oui et non
    pour tout ce qui est pc le write ou writefile utilise la meme interuption et fonction matériel (bios)
    pour ce qui est de iPhone et autre nouveaux matériel je ne sais pas mais je suppose que pour beaucoup ils ont gardé les mêmes fonctionnalités
    l'os n'est qu'une surcouche du bios que se sois du linux,windows,...

    d’après toi, il fait quoi le writeFile ou le write sur un pc sous Windows ?
    pour moi c'est la même fonction sauf que l'une a été dédié a l'affichage
    mais j'ai un souvenir ou il y avait un moyen de détourner la sortie standard écran sous tout autres fichier

    PS après vérification 21h est une interruption logiciel et correspond a l’interruption 80h sous linux
    effectivement les interruption logiciel diffère selon l'os
    alors, on reprend, le BIOS de base utilise l'interruption 10h pour afficher une chaîne de caractère à l'écran.
    l'Int 21h est celle du DOS
    en effet le noyau Linux utilise l'interruption 80h

    mais 21 et 80 sont des interruptions logicielles qui sont donc liées à l'OS.

    l'int 10h du BIOS elle, n'est utilisable qu'en mode réel, c'est à dire dans l'état d'un PC à l'allumage, dès que l'on bascule en mode protégé (Windows, Linux, etc...) plus aucune fonction du BIOS n'est disponible.

    Linux en mode console écrit directement dans la mémoire vidéo.
    Windows (et Linux en mode graphique) utilise de toute façon des fonctions de rendu de police en mode graphique et on est très très loin de la fonction du BIOS.

    J'avais fait un article sur le mode protégé d'ailleurs
    http://tothpaul.developpez.com/boot/
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  8. #8
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    alors, on reprend, le BIOS de base utilise l'interruption 10h pour afficher une chaîne de caractère à l'écran.
    l'Int 21h est celle du DOS
    en effet le noyau Linux utilise l'interruption 80h

    mais 21 et 80 sont des interruptions logicielles qui sont donc liées à l'OS.

    l'int 10h du BIOS elle, n'est utilisable qu'en mode réel, c'est à dire dans l'état d'un PC à l'allumage, dès que l'on bascule en mode protégé (Windows, Linux, etc...) plus aucune fonction du BIOS n'est disponible.

    Linux en mode console écrit directement dans la mémoire vidéo.
    Windows (et Linux en mode graphique) utilise de toute façon des fonctions de rendu de police en mode graphique et on est très très loin de la fonction du BIOS.

    J'avais fait un article sur le mode protégé d'ailleurs
    http://tothpaul.developpez.com/boot/
    salut

    si tu regarde l’unité System pour D7
    tu vois clairement que pour windows il utilise la fonction writeFile
    et pour linux la fonction __write
    j'ai dans l'idée que c'est deux fonction appelle un fonction défini dans l'os qui déclenche une action matériel, non ?
    que l'os utilise des surcouche pour protéger l’accès direct on est d'accord mais au final c'est bien une interruption matériel qui est utilisé

    maintenant il est vrai que l'api Windows cache les appels de bas niveaux donc effectivement ce n'est peut être plus l’interruption 21h et la fonction 40h qui est utilisé derriere mais le principe reste toujours le même ... d’ailleurs je me demande comment fonctionne les accélérateur vidéo

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. implémentation(code source) de swprintf sous linux
    Par Nouri2012 dans le forum Langage
    Réponses: 1
    Dernier message: 20/06/2012, 12h21
  2. Contribuez à la FAQ et aux CODES SOURCE XML
    Par Community Management dans le forum XML/XSL et SOAP
    Réponses: 12
    Dernier message: 21/04/2008, 20h52
  3. Defragmenteur code-source
    Par ak-k dans le forum Windows
    Réponses: 7
    Dernier message: 25/08/2003, 14h36
  4. Je cherche le code-source d'un interface de Windows
    Par Robert A. dans le forum Windows
    Réponses: 5
    Dernier message: 02/06/2003, 09h45
  5. [VB6] Code source pour modifier MsgBox
    Par khany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 25/02/2003, 15h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo