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/init-ram.asm | 48 +++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 amforth-6.5/avr8/words/init-ram.asm (limited to 'amforth-6.5/avr8/words/init-ram.asm') diff --git a/amforth-6.5/avr8/words/init-ram.asm b/amforth-6.5/avr8/words/init-ram.asm new file mode 100644 index 0000000..cd672bd --- /dev/null +++ b/amforth-6.5/avr8/words/init-ram.asm @@ -0,0 +1,48 @@ +; ( e-addr r-addr len -- ) +; Tools +; copy len cells from eeprom to ram +VE_EE2RAM: + .dw $ff06 + .db "ee>ram" + .dw VE_HEAD + .set VE_HEAD = VE_EE2RAM +XT_EE2RAM: + .dw DO_COLON +PFA_EE2RAM: ; ( -- ) + .dw XT_ZERO + .dw XT_DODO +PFA_EE2RAM_1: + ; ( -- e-addr r-addr ) + .dw XT_OVER + .dw XT_FETCHE + .dw XT_OVER + .dw XT_STORE + .dw XT_CELLPLUS + .dw XT_SWAP + .dw XT_CELLPLUS + .dw XT_SWAP + .dw XT_DOLOOP + .dw PFA_EE2RAM_1 +PFA_EE2RAM_2: + .dw XT_2DROP + .dw XT_EXIT + +; ( -- ) +; Tools +; setup the default user area from eeprom +VE_INIT_RAM: + .dw $ff08 + .db "init-ram" + .dw VE_HEAD + .set VE_HEAD = VE_INIT_RAM +XT_INIT_RAM: + .dw DO_COLON +PFA_INI_RAM: ; ( -- ) + .dw XT_DOLITERAL + .dw EE_INITUSER + .dw XT_UP_FETCH + .dw XT_DOLITERAL + .dw SYSUSERSIZE + .dw XT_2SLASH + .dw XT_EE2RAM + .dw XT_EXIT -- cgit v1.2.3