Write an interpreter for my new programming language
Python 3 2, 200 187 149 146 136 bytes
-9bytes thanks to Cyoce
def f(n,a=[0]*256,x=0,z=0):
 while 1:y=a[z];exec'a[z]^=~1 z+=1 z-=1 print-y/2 if~y:x+=1 if~~y:x-=3'.split()[&quot;wlipdy&quot;.find(n[x][3])];x+=1

Input as list, exits by error. Bonus feature: you can specify start array, start IP, and start DP in that very exact order.