freepascal :: btree-filer -- compiler fehler

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
PurpleOerple
Beiträge: 9
Registriert: Mi 22. Jun 2011, 10:59

freepascal :: btree-filer -- compiler fehler

Beitrag von PurpleOerple »

Hallo und guten Tag liebes Forum!

Ich habe mir (hoffentlich) die letzte aktuelle Version von BTREE-FILER aus dem www geholt ausgepackt und versucht zu kompilieren.
Allerdings erhalte ich leider folgende Fehlermeldung aus der Datei: TPCMD.PAS die offensichtlich ein Teil von BTREE-FILER ist.


Dies ist die Zeile die angemeckert wird:
inline($FF/$5E/<KeyPtr); {Call dword ptr [bp+<KeyPtr]}

und dies ist die Fehlermeldung:
TPCMD.PAS(204,11) Fatal: Syntax error, ";" expected but "(" found

die komplette funktion ist folgende:

Code: Alles auswählen

function GetCommand(var KeySet; KeyPtr : Pointer; var ChWord : Word) : Byte;
    {-Get next command or character.
      Returns NoCmd for no matching command, AlphaCmd for alphabetic character.}
  var
    LCh : Byte;
    Cmd : Byte;
    Junk : Word;
    BufNext : Word;
    Done : Boolean;
    CmdBuffer : CmdBuffArray;
 
    function GetKeyWord : Word;
      {-Call routine pointed to by KeyPtr}
    inline($FF/$5E/<KeyPtr); {Call dword ptr [bp+<KeyPtr]}
 
  begin
    BufNext := 0;
    Cmd := NoCmd;
    Done := False;
    repeat
      {Get the next keystroke}
      ChWord := GetKeyWord;
 
      LCh := Lo(ChWord);
      if LCh = 0 then begin
        {Extended keystroke}
        CmdBuffer[BufNext] := 0;
        Inc(BufNext);
        LCh := Hi(ChWord);
      end
      else if (BufNext > 0) and MapWordStar then
        {Map WordStar keystrokes}
        LCh := WordStarCommand(LCh);
      CmdBuffer[BufNext] := LCh;
      Inc(BufNext);
 
      {Map to a command}
      case ScanCommands(@KeySet, CmdBuffer, BufNext, Cmd, Junk) of
        FullMatch : Done := True;
        NoMatch :
          begin
            {Return alphanumeric character if it isn't a command}
            if (BufNext = 1) and (Char(LCh) >= ' ') and (Char(LCh) <> #127) then
              Cmd := AlphaCmd;
            Done := True;
          end;
      end;
    until Done;
 
    GetCommand := Cmd;
  end;             
 
Mein System ist:
Crunchbang Linux Waldorf AMD64 Umgebung.

Kann mir (hoffentlich) jemand weiterhelfen? Ich würde gern BTREE-FILER einsetzen.

Gruß
PurpleOrple

Benutzeravatar
theo
Beiträge: 10895
Registriert: Mo 11. Sep 2006, 19:01

Re: freepascal :: btree-filer -- compiler fehler

Beitrag von theo »

Hast du den Patch hier mal angeschaut? http://sourceforge.net/p/tpbtreefiler/f ... equests/5/

PurpleOerple
Beiträge: 9
Registriert: Mi 22. Jun 2011, 10:59

Re: freepascal :: btree-filer -- compiler fehler

Beitrag von PurpleOerple »

Hallo Theo,
nope, habe ich nicht. Werde ich mich heute Abend mal mit beschäftigen.
Danke für den Hinweis. Ich mache dann noch mal Meldung.


Meldung:
Nachdem der Patch mit einigen Fehlern durchgelaufen ist, habe ich versucht neu zu kompilieren. Erhielt aber bedauerlicher Weise folgende Meldungen:

Code: Alles auswählen

Free Pascal Compiler version 2.6.0-9 [2013/04/14] for x86_64
Copyright (c) 1993-2011 by Florian Klaempfl and others
Target OS: Linux for x86-64
Compiling BLDBROWS.PAS
Compiling FILER.PAS
Compiling BTBASE.PAS
Compiling BTFILEIO.PAS
BTFILEIO.PAS(166,10) Error: Unknown identifier "DS"
BTFILEIO.PAS(166,10) Warning: No size specified and unable to determine the size of the operands, using DWORD as default
BTFILEIO.PAS(167,11) Error: Unknown identifier "AH"
BTFILEIO.PAS(167,15) Error: Unknown identifier "F"
BTFILEIO.PAS(168,11) Error: Unknown identifier "BX"
BTFILEIO.PAS(169,11) Error: Unknown identifier "CX"
BTFILEIO.PAS(170,11) Error: Unknown identifier "DX"
BTFILEIO.PAS(176,9) Error: Unknown identifier "DS"
BTFILEIO.PAS(177,8) Error: Assembler syntax error in operand
BTFILEIO.PAS(177,9) Error: Assembler syntax error in operand
BTFILEIO.PAS(178,11) Error: Unknown identifier "DI"
BTFILEIO.PAS(179,11) Error: Unknown identifier "ES"
BTFILEIO.PAS(179,11) Error: Assembler syntax error in operand
BTFILEIO.PAS(179,12) Error: Assembler syntax error in operand
BTFILEIO.PAS(179,15) Error: Unknown identifier "DI"
BTFILEIO.PAS(179,15) Error: Assembler syntax error in operand
BTFILEIO.PAS(179,18) Error: Unknown identifier "AX"
BTFILEIO.PAS(180,11) Error: Unknown identifier "AX"
BTFILEIO.PAS(180,13) Error: Unknown identifier "AX"
BTFILEIO.PAS(181,3) Error: Unrecognized opcode 
BTFILEIO.PAS(181,3) Error: Assembler syntax error
BTFILEIO.PAS(182,19) Error: Unknown identifier "AX"
BTFILEIO.PAS(182,19) Warning: Size suffix and destination or source size do not match
BTFILEIO.PAS(195,10) Error: Unknown identifier "DS"
BTFILEIO.PAS(195,10) Warning: No size specified and unable to determine the size of the operands, using DWORD as default
BTFILEIO.PAS(196,11) Error: Unknown identifier "AH"
BTFILEIO.PAS(197,11) Error: Unknown identifier "BX"
BTFILEIO.PAS(198,11) Error: Unknown identifier "CX"
BTFILEIO.PAS(199,11) Error: Unknown identifier "DX"
BTFILEIO.PAS(205,9) Error: Unknown identifier "DS"
BTFILEIO.PAS(206,8) Error: Assembler syntax error in operand
BTFILEIO.PAS(206,9) Error: Assembler syntax error in operand
BTFILEIO.PAS(207,11) Error: Unknown identifier "DI"
BTFILEIO.PAS(208,11) Error: Unknown identifier "ES"
BTFILEIO.PAS(208,11) Error: Assembler syntax error in operand
BTFILEIO.PAS(208,12) Error: Assembler syntax error in operand
BTFILEIO.PAS(208,15) Error: Unknown identifier "DI"
BTFILEIO.PAS(208,15) Error: Assembler syntax error in operand
BTFILEIO.PAS(208,18) Error: Unknown identifier "AX"
BTFILEIO.PAS(209,11) Error: Unknown identifier "AX"
BTFILEIO.PAS(209,13) Error: Unknown identifier "AX"
BTFILEIO.PAS(210,3) Error: Unrecognized opcode 
BTFILEIO.PAS(210,3) Error: Assembler syntax error
BTFILEIO.PAS(211,19) Error: Unknown identifier "AX"
BTFILEIO.PAS(211,19) Warning: Size suffix and destination or source size do not match
BTFILEIO.PAS(223,11) Error: Unknown identifier "AH"
BTFILEIO.PAS(223,15) Error: Unknown identifier "E"
BTFILEIO.PAS(224,11) Error: Unknown identifier "BX"
BTFILEIO.PAS(230,8) Error: Assembler syntax error in operand
BTFILEIO.PAS(230,9) Error: Assembler syntax error in operand
BTFILEIO.PAS(231,11) Error: Unknown identifier "AX"
BTFILEIO.PAS(231,13) Error: Unknown identifier "AX"
BTFILEIO.PAS(232,3) Error: Unrecognized opcode 
BTFILEIO.PAS(232,3) Error: Assembler syntax error
BTFILEIO.PAS(232,3) Fatal: There were 50 errors compiling module, stopping
Fatal: Compilation aborted
Error: /usr/bin/ppcx64 returned an error exitcode (normal if you did not specify a source file to be compiled)
 
Ist BTREE-FILER nicht für AMD64 geeignet? Denn es beziehen sich die Fehler eventuell wie vorher immer auf die ASSEMBLER Bereiche.

Hat noch jemand einen hilfreichen Tipp?

Danke im Voraus

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: freepascal :: btree-filer -- compiler fehler

Beitrag von carli »

Assembler in 2013 bitte vermeiden.

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Re: freepascal :: btree-filer -- compiler fehler

Beitrag von creed steiger »

Da hast du nur die Möglichkeit die Assembler Teile in Pascal zu übersetzen,
ansonsten bleibt es halt bei x86.

Antworten