diff options
Diffstat (limited to 'mixlib')
| -rw-r--r-- | mixlib/xmix_vm.h | 11 | 
1 files changed, 8 insertions, 3 deletions
diff --git a/mixlib/xmix_vm.h b/mixlib/xmix_vm.h index e0f26ae..60185df 100644 --- a/mixlib/xmix_vm.h +++ b/mixlib/xmix_vm.h @@ -2,6 +2,8 @@   * This file contains internal declarations used in the implementation   * of the mix_vm_t type.   * ------------------------------------------------------------------ + *  $Id: xmix_vm.h,v 1.6 2001/09/16 22:38:43 jao Exp $ + * ------------------------------------------------------------------   * Copyright (C) 2000 Free Software Foundation, Inc.   *     * This program is free software; you can redistribute it and/or modify @@ -41,7 +43,7 @@ struct mix_vm_t    gboolean overflow;    mix_cmpflag_t cmpflag;    mix_short_t loc_count; -  gboolean is_halted; +  mix_vm_status_t status;    mix_device_t * devices[BD_NO_];     mix_address_t start_addr;	/* start address of loaded file */    GTree *line_table;		/* source line no -> address  */ @@ -77,6 +79,7 @@ enum { A_ = 0, X_, J_, I1_, I2_, I3_, I4_, I5_, I6_ };  #define get_clock_(vm) (vm->clock)  #define get_pred_list_(vm) (vm->pred_list)  #define get_address_list_(vm) (vm->address_list) +#define get_status_(vm) (vm->status)  #define set_reg_(vm,r,x)			\  do {						\ @@ -97,14 +100,16 @@ do {						\  #define set_over_(vm,x) (vm)->overflow = (x)  #define set_loc_(vm,x)  (vm)->loc_count = (x)&MIX_SHORT_MAX +#define set_status_(vm,s) ((vm)->status = (s)) +  #define inc_loc_(vm)   				\  do {						\    vm->loc_count++;				\    vm->loc_count &= MIX_SHORT_MAX;		\  } while(FALSE) -#define is_halted_(vm) ((vm)->is_halted) -#define halt_(vm,val) ((vm)->is_halted = (val)) +#define is_halted_(vm) ((vm)->status == MIX_VM_HALT) +#define halt_(vm,val) ((vm)->status = (val)? MIX_VM_HALT : MIX_VM_RUNNING)  #define set_start_(vm,val) ((vm)->start_addr = (val))  #define reset_loc_(vm) set_loc_ (vm, vm->start_addr)  #define update_time_(vm,ins) mix_vm_clock_add_lapse (get_clock_(vm), ins)  | 
