/* ---------------------------------------------------------------------- */ /* Copyright (C) 1991 by Natrlich! */ /* This file is copyrighted! */ /* Refer to the documentation for details. */ /* ---------------------------------------------------------------------- */ #ifndef _PROCESS_ # define _PROCESS_ # ifndef _CODE_ # include "code.h" # endif # ifndef _FIX_ # include "fix.h" # endif # define DS_THRESHOLD 5 # define MAX_SAFETY 0x200 # define _advance( x) __p += x # define _retreat( x) __p -= x # define advance( x) _advance( x); __pc += x # define _deposit( val) *__p++ = (val) # define deposit( val) _deposit(val); __pc++ # define wdeposit( val) \ pdpoke( __p, val); \ __pc += 2 # define wddeposit( val) \ pdbyte( __p, val); \ __pc += 2 # define cmddeposit( tab, mode) \ if( ! (__c = tab[mode])) \ { \ nerror( invadr); \ LEAVE(); \ return; \ } \ deposit( __c); # define ex_chk( ex) \ if( ! ex) \ { \ gen_error(); \ return; \ } # define wex_chk( ex) \ if( ! ex) \ { \ wgen_error(); \ return; \ } # define ex_deposit( ex, ip, flag) \ if( ! flag) \ { \ fix_up( ex, (imm huge *) ip, FIX_ZCODE); \ deposit( 0); \ } \ else \ { \ deposit( ex->val); \ expr_tryfree( ex); \ } # define wex_deposit( ex, flag) \ if( ! flag) \ { \ fix_up( ex, (imm huge *) 0, FIX_WCODE); \ wdeposit( 0); \ } \ else \ { \ wdeposit( ex->val); \ expr_tryfree( ex); \ } #endif