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/msp430/amforth-interpreter.asm | 54 ++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 amforth-6.5/msp430/amforth-interpreter.asm (limited to 'amforth-6.5/msp430/amforth-interpreter.asm') diff --git a/amforth-6.5/msp430/amforth-interpreter.asm b/amforth-6.5/msp430/amforth-interpreter.asm new file mode 100644 index 0000000..1862e84 --- /dev/null +++ b/amforth-6.5/msp430/amforth-interpreter.asm @@ -0,0 +1,54 @@ +DOCOLON: + PUSH IP ; 3 save old IP on return stack + MOV W,IP ; 1 set new IP to PFA + +.if WANT_INTERRUPTS==1 +DO_NEXT: + TST ISR + JNZ DO_INTERRUPT + MOV @IP+,W ; fetch word address into W +DO_REALLY_NEXT: + MOV @W+,PC ; fetch code address into PC, W=PFA + +DO_INTERRUPT: + SUB #2,PSP ; save tos + MOV TOS,0(PSP) + MOV ISR,TOS ; move to tos + CLR ISR ; clear flag register + MOV #XT_ISREXEC, W + JMP DO_REALLY_NEXT + +irq1_handler: + MOV #1, R15 + RETI +irq2_handler: + MOV #2, R15 + RETI +irq3_handler: + MOV #3, R15 + RETI +irq4_handler: + MOV #4, R15 + RETI +irq5_handler: + MOV #5, R15 + RETI +irq6_handler: + MOV #6, R15 + RETI +irq7_handler: + MOV #7, R15 + RETI +irq8_handler: + MOV #8, R15 + RETI +irq9_handler: + MOV #9, R15 + RETI +irq10_handler: + MOV #10, R15 +null_handler: + RETI +.else + NEXT +.endif -- cgit v1.2.3