(ASSEMBLE.CLAUSE ( handle←traps 2 interp ) 7 (get.Ai.constant 1 spy) (put.Ai.value.Xn 1 2) (execute add←trap 1 interp) ) (ASSEMBLE.CLAUSE ( handle←traps 2 interp ) 7 (get.Ai.constant 1 nospy) (put.Ai.value.Xn 1 2) (execute remove←trap 1 interp) ) (ASSEMBLE.CLAUSE ( check←traps 1 interp ) 50 (allocate) (get.Ai.variable.Yn 1 1) (load.choice.point) (store.variable.Yn 3) (either 7 31) (put.Ai.variable.Yn 3 4) (put.Ai.constant 2 13) (put.Ai.value.Yn 1 1) (get.word) (load.value.Yn 4) (load.pos.word 4) (boolean.and) (load.pos.word 0) (not.equal.to) (load.value.Yn 3) (cut.to.choice.point) (put.Ai.value.Yn 1 1) (depart add←trap 1 interp) (or.finally) (put.Ai.variable.Yn 3 2) (put.Ai.constant 2 13) (put.Ai.value.Yn 1 1) (get.word) (load.pos.word 65527) (load.value.Yn 2) (boolean.and) (store.variable.Xn 3) (put.Ai.constant 2 13) (put.Ai.value.Yn 1 1) (put.word) (progress) ) (ASSEMBLE.CLAUSE ( add←trap 1 interp ) 83 (allocate) (get.Ai.variable.Yn 1 1) (load.choice.point) (store.variable.Yn 5) (either 9 28) (put.Ai.variable.Yn 3 6) (put.Ai.constant 2 13) (put.Ai.value.Yn 1 1) (get.word) (load.value.Yn 6) (load.pos.word 8) (boolean.and) (load.pos.word 0) (not.equal.to) (load.value.Yn 5) (cut.to.choice.point) (progress) (or.finally) (put.Ai.variable.Yn 2 4) (put.Ai.value.Yn 1 1) (call 7 copy←procedure←record 2 si) (gettopval QP%.DEBUG%.CLAUSE) (store.variable.Yn 3) (put.Ai.constant 1 1) (call 7 block←events 1 si) (put.Ai.unsafe.Yn 3 4) (put.Ai.constant 2 10) (put.Ai.value.Yn 1 1) (put.addr) (put.Ai.value.Yn 3 3) (put.Ai.constant 2 8) (put.Ai.value.Yn 1 1) (put.addr) (put.Ai.variable.Yn 3 2) (put.Ai.constant 2 13) (put.Ai.value.Yn 1 1) (get.word) (load.value.Yn 2) (load.pos.word 8) (boolean.or) (store.variable.Xn 3) (put.Ai.constant 2 13) (put.Ai.value.Yn 1 1) (put.word) (put.Ai.constant 1 1) (depart unblock←events 1 si) ) (ASSEMBLE.CLAUSE ( remove←trap 1 interp ) 102 (allocate) (get.Ai.variable.Yn 1 2) (load.choice.point) (store.variable.Yn 6) (either 10 102) (put.Ai.variable.Yn 3 7) (put.Ai.constant 2 13) (put.Ai.value.Yn 1 2) (get.word) (load.value.Yn 7) (load.pos.word 8) (boolean.and) (load.pos.word 0) (not.equal.to) (load.value.Yn 6) (cut.to.choice.point) (put.Ai.variable.Yn 3 1) (put.Ai.constant 2 10) (put.Ai.value.Yn 1 2) (get.addr) (put.Ai.variable.Yn 3 5) (put.Ai.constant 2 10) (put.Ai.value.Yn 1 1) (get.addr) (put.Ai.variable.Yn 3 4) (put.Ai.constant 2 8) (put.Ai.value.Yn 1 1) (get.addr) (put.Ai.constant 1 1) (call 8 block←events 1 si) (put.Ai.unsafe.Yn 3 5) (put.Ai.constant 2 10) (put.Ai.value.Yn 1 2) (put.addr) (put.Ai.unsafe.Yn 3 4) (put.Ai.constant 2 8) (put.Ai.value.Yn 1 2) (put.addr) (put.Ai.variable.Yn 3 3) (put.Ai.constant 2 13) (put.Ai.value.Yn 1 2) (get.word) (load.pos.word 65527) (load.value.Yn 3) (boolean.and) (store.variable.Xn 3) (put.Ai.constant 2 13) (put.Ai.value.Yn 1 2) (put.word) (put.Ai.constant 1 1) (call 4 unblock←events 1 si) (put.Ai.unsafe.Yn 1 1) (depart free←procedure←record 1 si) (or.finally) (progress) ) (ASSEMBLE.CLAUSE ( real←proc 2 interp ) 42 (allocate) (get.Ai.variable.Yn 1 2) (get.Ai.variable.Yn 2 1) (load.choice.point) (store.variable.Yn 3) (either 7 38) (put.Ai.variable.Yn 3 4) (put.Ai.constant 2 13) (put.Ai.value.Yn 1 2) (get.word) (load.value.Yn 4) (load.pos.word 8) (boolean.and) (load.pos.word 0) (not.equal.to) (load.value.Yn 3) (cut.to.choice.point) (put.Ai.value.Yn 3 1) (put.Ai.constant 2 10) (put.Ai.value.Yn 1 2) (get.addr) (progress) (or.finally) (put.Ai.value.Yn 1 2) (get.Ai.value.Yn 1 1) (progress) ) (ASSEMBLE.CLAUSE ( %$debug←trap 2 interp ) 14 (put.Ai.value.Xn 5 2) (put.Ai.void 4) (put.Ai.structure 3 info 1) (unify.constant 0) (put.Ai.constant 2 0) (execute interpreter←debug←trap 5 interp) ) STOP