unicorn/bindings/pascal
Eric Poole cfee2139a0
TriCore Support (#1568)
* TriCore Support

python sample

* Update sample_tricore.py

Correct attribution

* Update sample_tricore.py

Fixed byte code to execute properly.

* Update sample_tricore.py

Removed testing artifact

* Added tricore msvc config-file.h

* Added STATIC to tricore config and added helper methods to symbol file generation.

* Update op_helper.c

Use built in crc32

* Fix tricore samples and small code blocks are now handled properly

* Add CPU types

* Generate bindings

* Format code

Co-authored-by: lazymio <mio@lazym.io>
2022-04-29 23:11:34 +02:00
..
examples Pascal/Delphi binding (#987) 2018-08-03 20:33:25 +08:00
unicorn TriCore Support (#1568) 2022-04-29 23:11:34 +02:00
LICENSE Pascal/Delphi binding (#987) 2018-08-03 20:33:25 +08:00
README.md Pascal/Delphi binding (#987) 2018-08-03 20:33:25 +08:00

README.md

unicorn-engine-pascal

Pascal/Delphi language binding for the Unicorn emulator (GitHub).

Unicorn is a lightweight multi-platform, multi-architecture CPU emulator framework based on QEMU.

License

GPLv2

Compilers Compatibility

Free Pascal >= v3

  • Mac OS
  • Windows
  • Linux

Delphi

  • Windows

Features

  • Same API as the C core

    • with some workarounds for Pascals case insensitivity:

      uc_mem_write() -> uc_mem_write_(), uc_mem_read() -> uc_mem_read_()

    • and the missing feature passing variable number of arguments to functions (...):

      i solve it by using -> args : Array of Const; you can pass args inside [] like :

      uc_hook_add(uc, trace, UC_HOOK_INSN, @HookIn, nil, 1,0,[UC_X86_INS_IN];
      

      the main loader in Unicorn_dyn.pas , check X86 example for more info .

  • Multiplatform (Mac OS , Windows and Linux are tested)

Examples

  • X86 Emulate 16, 32, 64 Bit x86

Version History

  • 1.1
    • Add Delphi Compatibility [ Windows ]
  • 1.0
    • this is the first version it has all APIs of UNICORN v1.0.1

TODO

  • Add more Examples
  • Add Mac , Linux Support for Delphi