rendered paste body // create/destroy stack
function vms_gen(count : Integer) : pvmbstack;
procedure vms_del(s : pvmbstack);
// swap two top values
procedure vms_swap(s : pvmbstack);
// push copy of stacktop on stack
procedure vms_dup(s : pvmbstack);
// get item count
function vms_getc(s : pvmbstack): Integer;
// get item/item[0] ptr
function vms_data(s : pvmbstack): PIntegerArray;
function vms_itemptr(s : pvmbstack; index : Integer): Pointer;
// misc
procedure vms_clear(s : pvmbstack);
// push
procedure vms_pushn(s : pvmbstack; n : Integer);
procedure vms_pushi(s : pvmbstack; v : Integer);
procedure vms_pushp(s : pvmbstack; v : pointer);
procedure vms_pushf(s : pvmbstack; v : Single);
procedure vms_pushb(s : pvmbstack; v : LongBool);
// pop items
procedure vms_pop(s : pvmbstack);
procedure vms_popn(s : pvmbstack; num : integer);
function vms_popi(s : pvmbstack): Integer;
function vms_popp(s : pvmbstack): Pointer;
function vms_popf(s : pvmbstack): Single;
function vms_popb(s : pvmbstack): LongBool;
// load / store
procedure vms_write(s : pvmbstack; index : Integer; v0 : Integer);
function vms_read(s : pvmbstack; index : Integer): Integer;
// copy 32 bit of data from [src] to [dst]
procedure vms_copy32(s : pvmbstack; srcindex, dstindex : Integer);
// peek
function vms_peek(s : pvmbstack): Integer;
function vms_peekptr(s : pvmbstack): Pointer;
// push userdata
function vms_pushlightuserdata(s : pvmbstack; args : array of const): LongBool;
// set stackpointer/add offset
procedure vms_absoluteoffset(s : pvmbstack; v : Integer);
procedure vms_relativeoffset(s : pvmbstack; v : Integer);