It is even worse, "push esi" isn't known either. I added the compiler directive {$asmmode intel}. Now the problems are:
Chip.pas(2041,13) Error: Asm: [push reg32] invalid combination of opcode and operands
Chip.pas(2042,13) Error: Asm: [push reg32] invalid combination of opcode and operands
Chip.pas(2066,12) Error: Asm: [pop reg32] invalid combination of opcode and operands
Chip.pas(2067,12) Error: Asm: [pop reg32] invalid combination of opcode and operands
Another problem causes this piece of code (it's obviously Pascal, but i don't know to solve it either):
Code:
      args.outVal.n.sbuf:=basicstring(resvalue);
      basicstring(resvalue):=''
Error:
Chip.pas(2076,27) Error: Illegal type conversion: "LongInt" to "AnsiString"
Chip.pas(2077,7) Error: Illegal type conversion: "LongInt" to "AnsiString"
With a 32 bit FPC it compiles ... BTW, the complete source of Chip.pas can be found on: http://xmojmr.ohmygod.cz/software/Chip/Chip.pas.htm