From 67d25d837ac55f28a366c0a3b262e439a6e75fc3 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sat, 19 Aug 2017 12:15:28 +0200 Subject: Add AmForth --- amforth-6.5/common/words/catch.asm | 39 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 amforth-6.5/common/words/catch.asm (limited to 'amforth-6.5/common/words/catch.asm') diff --git a/amforth-6.5/common/words/catch.asm b/amforth-6.5/common/words/catch.asm new file mode 100644 index 0000000..c67be65 --- /dev/null +++ b/amforth-6.5/common/words/catch.asm @@ -0,0 +1,39 @@ +; ( i*x xt -- j*x 0 | i*x n ) +; Exceptions +; execute XT and check for exceptions. + +.if cpu_msp430==1 + HEADER(XT_CATCH,5,"catch",DOCOLON) +.endif + +.if cpu_avr8==1 +VE_CATCH: + .dw $ff05 + .db "catch",0 + .dw VE_HEAD + .set VE_HEAD = VE_CATCH +XT_CATCH: + .dw DO_COLON +PFA_CATCH: +.endif + + ; sp@ >r + .dw XT_SP_FETCH + .dw XT_TO_R + ; handler @ >r + .dw XT_HANDLER + .dw XT_FETCH + .dw XT_TO_R + ; rp@ handler ! + .dw XT_RP_FETCH + .dw XT_HANDLER + .dw XT_STORE + .dw XT_EXECUTE + ; r> handler ! + .dw XT_R_FROM + .dw XT_HANDLER + .dw XT_STORE + .dw XT_R_FROM + .dw XT_DROP + .dw XT_ZERO + .dw XT_EXIT -- cgit v1.2.3