All pastes #19009 Raw Edit

deaf

public text v1 · immutable
#19009 ·published 2005-08-01 19:08 UTC
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);