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 :

Passage de Turbo Pascal 5.5 vers Free Pascal [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
    Gérant d'un site
    Inscrit en
    Février 2014
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Gérant d'un site
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 59
    Par défaut Passage de Turbo Pascal 5.5 vers Free Pascal
    Bonjour

    Pourriez-vous m'aider pour coder la procédure suivante ?

    En TP 5.5, mon pgm va bien, depuis longtemps. Mais Free Pascal ne reconnaît pas le terme "mem".
    Je croyais que tout était réglé après mon message précédent, mais non ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    procedure FrameTextWindow(color,trait:byte);
     
    const
          FrameChar : array[1..2,1..6] of char =
     
                    ((#218,#191,#192,#217,#196,#179),
     
                     (#201,#187,#200,#188,#205,#186));
    var
        i,pos,offset : integer;
        base : longint;
        note : byte;
    begin
       GetVideo;
       CsrOff;
       SelTextWindow(ActiveWindow);
       TextColor(colorTable[color]);
     
       gotoXY(1,1);write(FrameChar[trait,1]);
       for i:=2 to XTextLimit-1 do write(FrameChar[trait,5]);
       write(FrameChar[trait,2]);
       for i:=2 to YTextLimit-1 do
           begin
            gotoXY(1,i);write(FrameChar[trait,6]);
            gotoXY(XTextLimit,i);
            write(FrameChar[trait,6]);
           end;
     
       gotoXY(1,YTextLimit);
       write(FrameChar[trait,3]);
     
       for i:=2 to XTextLimit-1 do write(FrameChar[trait,5]);
     
       pos:=  WinRefTable[ActiveWindow,3] +
             (WinRefTable[ActiveWindow,4] - 1) * colnum;
     
       if mode_video=7 then base:=$B000
                  	 else base:=$B800;
    <!!!!!!!!!!
       Mem[base:(2 * pos) - 2] := ord(FrameChar[trait,4]);
     
       Mem[base:((2 * pos) - 2) + 1] := Mem[base:((2 * pos) - 2) - 1];
    !!!!!!!!>
       CsrOn;
     
    end;
    Merci par avance
    Bernard

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 173
    Billets dans le blog
    9
    Par défaut
    Bonjour ! Pour faciliter la lecture de votre code, il serait bon d'utiliser les balises appropriées. (Pour cela , vous pouvez vous servir du bouton marqué d'un #.)

    Autrement, je voudrais bien essayer de vous aider mais sans avoir le code complet, c'est difficile.

  3. #3
    Membre confirmé
    Homme Profil pro
    Gérant d'un site
    Inscrit en
    Février 2014
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Gérant d'un site
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 59
    Par défaut complement
    J'avais mis le texte entre <------------------- et ------------------>
    Avec la balise citee : #
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    procedure FrameTextWindow(color,trait:byte);
     
    const
          FrameChar : array[1..2,1..6] of char =
     
                    ((#218,#191,#192,#217,#196,#179),
     
                     (#201,#187,#200,#188,#205,#186));
    var
        i,pos,offset : integer;
        base : longint;
        note : byte;
    begin
       GetVideo;
       CsrOff;
       SelTextWindow(ActiveWindow);
       TextColor(colorTable[color]);
     
       gotoXY(1,1);write(FrameChar[trait,1]);
       for i:=2 to XTextLimit-1 do write(FrameChar[trait,5]);
       write(FrameChar[trait,2]);
       for i:=2 to YTextLimit-1 do
           begin
            gotoXY(1,i);write(FrameChar[trait,6]);
            gotoXY(XTextLimit,i);
            write(FrameChar[trait,6]);
           end;
     
       gotoXY(1,YTextLimit);
       write(FrameChar[trait,3]);
     
       for i:=2 to XTextLimit-1 do write(FrameChar[trait,5]);
     
       pos:=  WinRefTable[ActiveWindow,3] +
             (WinRefTable[ActiveWindow,4] - 1) * colnum;
     
       if mode_video=7 then base:=$B000
       			 else base:=$B800;
     
       Mem[base:(2 * pos) - 2] := ord(FrameChar[trait,4]);
     
       Mem[base:((2 * pos) - 2) + 1] := Mem[base:((2 * pos) - 2) - 1];
     
       CsrOn;
     
    end;

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 173
    Billets dans le blog
    9
    Par défaut
    Bonjour ! Encore une fois, il paraît difficile de retoucher la procédure sans savoir ce qu'il y a dans le reste du code et sans pouvoir faire aucun essai.

    J'ai cru comprendre que la procédure servait à encadrer du texte, mais je n'ai pas pu aller plus loin.

  5. #5
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 055
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Sur quelle plateforme le programme doit-il tourner ? Un émulateur de DOS, une console Windows, un vrai MS-DOS ?
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  6. #6
    Membre confirmé
    Homme Profil pro
    Gérant d'un site
    Inscrit en
    Février 2014
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Gérant d'un site
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 59
    Par défaut TP 55 sur W XP et MSDOS vers FreePascal et W7
    Citation Envoyé par Alcatîz Voir le message
    Bonjour,

    Sur quelle plateforme le programme doit-il tourner ? Un émulateur de DOS, une console Windows, un vrai MS-DOS ?
    Bonsoir
    Mon programme tourne sur W XP et MSDos, sans problème.
    Mais envisageant la disparition des XP et du MsDos, je voudrais continuer ma gestion avec FreePascal pour les modifications occasionnelles.
    J'ai essayé de faire tourner mon pgm avec VirtualMachine, mais les variables entières ou réelles ne sont pas reconnues.
    Est-ce un problème de 32 bits ou 64 bits, je n'en sais rien.
    Je constate que l'instruction "mem" ou "memw" n'est plus reconnue par freepascal.
    Je vous remercie pour le temps que vous prenez pour m'aider car je suis sans solution.

    A bientôt
    Bernard

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

Discussions similaires

  1. [Free Pascal] Transfert des fichiers de données créés sous TP vers Free Pascal
    Par NOVICE76 dans le forum Free Pascal
    Réponses: 8
    Dernier message: 11/08/2014, 16h45
  2. [Free Pascal] Différences Free Pascal et Turbo Pascal
    Par TheBigMac dans le forum Free Pascal
    Réponses: 2
    Dernier message: 10/04/2006, 16h49
  3. [Free Pascal] Portage TP7 vers FreePascal
    Par DioManU dans le forum Free Pascal
    Réponses: 3
    Dernier message: 12/03/2006, 21h30
  4. [Free Pascal] Graphisme sur Linux en Pascal
    Par xavier faure dans le forum Free Pascal
    Réponses: 15
    Dernier message: 24/01/2006, 14h20
  5. [Free Pascal] Application client/serveur en Pascal
    Par zouzou_zaza dans le forum Free Pascal
    Réponses: 15
    Dernier message: 02/09/2004, 17h57

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