[virtmach] Your VM
Thomas Fjellstrom
virtmach@iecc.com
Tue, 29 May 2001 03:40:54 -0600
Thomas Fjellstrom wrote:
>
> Mickaël Pointier wrote:
[snip]
> > > and VM code can be called by native code.
> >
> > Interesting. How do you "declare" to the code that a particular
> > piece (function) of VM code exists, how do you handle parameters
> > exchange between VM code and native code ?
>
> Very carefully. You have to know how to call the VM func
> before even trying. (or the stack could get seriously
> munged)
>
[snip]
I should read more carefully.. To 'declare' a VM
function you do this:
FUNC vm_func:
do some neat stuff....
RET
and the assembler saves the assembly program/script
into a .cxe file (Chip eXEcutible) where the lables
prefixed by FUNC have thier addreses saved into a table
that lists the VM function name along side its address.
So you can just call 'chip_exec_sym(vm, "vm_func");'
and it calls the func. (I havent got around to
making argument passing to vm functions easier by
letting them be passed through by the 'chip_exec_sym'
function so at the moment it has to be done manualy)
the .cxe file also lists the 'linked' native
libraries/functions. (linking to native lib is done
at runtime...)
--
"Computer programmers don't byte, they nybble a bit."
Thomas Fjellstrom
tfjellstrom@home.com
http://strangesoft.net/