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/avr8/words/store.asm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 amforth-6.5/avr8/words/store.asm (limited to 'amforth-6.5/avr8/words/store.asm') diff --git a/amforth-6.5/avr8/words/store.asm b/amforth-6.5/avr8/words/store.asm new file mode 100644 index 0000000..a71dd4b --- /dev/null +++ b/amforth-6.5/avr8/words/store.asm @@ -0,0 +1,35 @@ +; ( n addr -- ) +; Memory +; write n to RAM memory at addr, low byte first +VE_STORE: + .dw $ff01 + .db "!",0 + .dw VE_HEAD + .set VE_HEAD = VE_STORE +XT_STORE: + .dw PFA_STORE +PFA_STORE: +.if WANT_UNIFIED == 1 + ldi zh, high(RAMEND) + ldi zl, low(RAMEND) + cp tosl, zl + cpc tosh, zh + brlt PFA_STORERAM + brbs 1, PFA_STORERAM + rjmp PFA_STOREOTHER +.endif +PFA_STORERAM: + movw zl, tosl + loadtos + ; the high byte is written before the low byte + std Z+1, tosh + std Z+0, tosl + loadtos + jmp_ DO_NEXT +.if WANT_UNIFIED == 1 +PFA_STOREOTHER: + adiw zl, 1 + sub tosl, zl + sbc tosh, zh + jmp_ PFA_STOREE +.endif -- cgit v1.2.3