unicorn/bindings/pascal/README.md
Coldzer0 84220d8360 Pascal/Delphi binding (#987)
* Pascal/Delphi binding

Pascal/Delphi language binding

* update credits
2018-08-03 20:33:25 +08:00

52 lines
1.3 KiB
Markdown

# unicorn-engine-pascal
Pascal/Delphi language binding for the [Unicorn emulator](http://www.unicorn-engine.org/)
([GitHub](https://github.com/unicorn-engine/unicorn)).
*Unicorn* is a lightweight multi-platform, multi-architecture CPU emulator framework
based on [QEMU](http://www.qemu.org/).
## 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 :
```pascal
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 <b>Mac , Linux</b> Support for Delphi