From f114c97663af76c16047fe988d4dd5f635d908fe Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Mon, 31 Oct 2016 19:15:08 +0100 Subject: [PATCH 001/225] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 005f932..3234537 100644 --- a/README.md +++ b/README.md @@ -855,6 +855,8 @@ uart-set-bps ( bps uart-number -- ) You can see some example code under the [examples](arch/esp8266/forth/examples) directory. +Build instructions and further information is available at (punyforth wiki)[punyforth/wiki]. + ## Contact Attila Magyar From ec68ca497a96897d858bfc304eb4500ae71d66f7 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Mon, 31 Oct 2016 19:15:44 +0100 Subject: [PATCH 002/225] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3234537..f30523e 100644 --- a/README.md +++ b/README.md @@ -855,7 +855,7 @@ uart-set-bps ( bps uart-number -- ) You can see some example code under the [examples](arch/esp8266/forth/examples) directory. -Build instructions and further information is available at (punyforth wiki)[punyforth/wiki]. +Build instructions and further information is available at [punyforth wiki](punyforth/wiki). ## Contact From 9d370abf177643e88b3998564acaaf7fe4fdb34f Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Mon, 31 Oct 2016 19:17:55 +0100 Subject: [PATCH 003/225] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f30523e..5306b4c 100644 --- a/README.md +++ b/README.md @@ -855,7 +855,7 @@ uart-set-bps ( bps uart-number -- ) You can see some example code under the [examples](arch/esp8266/forth/examples) directory. -Build instructions and further information is available at [punyforth wiki](punyforth/wiki). +Build instructions and further information is available at [punyforth wiki](https://github.com/zeroflag/punyforth/wiki). ## Contact From 1541f2323f77b0c93755d04107f4bf13e6d5c995 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Sat, 26 Nov 2016 21:50:26 +0100 Subject: [PATCH 004/225] simple auto pilot --- arch/esp8266/bin/modules.py | 2 +- .../examples/example-geekcreit-rctank.forth | 40 ++++++++++++++++++- 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/arch/esp8266/bin/modules.py b/arch/esp8266/bin/modules.py index fbccc5c..75edb23 100644 --- a/arch/esp8266/bin/modules.py +++ b/arch/esp8266/bin/modules.py @@ -54,7 +54,7 @@ 'example-philips-hue-lightswitch' : ['example-philips-hue', 'tasks', 'gpio', 'event'], 'example-philips-hue-pir' : ['example-philips-hue', 'tasks', 'gpio', 'event'], 'example-philips-hue-clap' : ['example-philips-hue', 'tasks', 'gpio', 'event'], - 'example-geekcreit-rctank' : ['core', 'tasks', 'gpio', 'event', 'wifi', 'netcon', 'tcp-repl'], + 'example-geekcreit-rctank' : ['core', 'tasks', 'gpio', 'event', 'wifi', 'netcon', 'tcp-repl', 'ping'], 'example-http-server' : ['core', 'netcon', 'wifi'], 'example-dht22-data-logger' : ['dht22', 'netcon'] } diff --git a/arch/esp8266/forth/examples/example-geekcreit-rctank.forth b/arch/esp8266/forth/examples/example-geekcreit-rctank.forth index f543b33..eda9d4c 100644 --- a/arch/esp8266/forth/examples/example-geekcreit-rctank.forth +++ b/arch/esp8266/forth/examples/example-geekcreit-rctank.forth @@ -52,6 +52,8 @@ FALSE init-variable: lamp-active 60000 constant: fast 65535 constant: full +medium init-variable: current-speed + : speed ( n -- ) case 0 of @@ -71,7 +73,40 @@ FALSE init-variable: lamp-active : brake ( -- ) 0 speed ; -medium init-variable: current-speed +\ Distance sensor setup +13 constant: PIN_TRIGGER \ D7 +12 constant: PIN_ECHO \ D6 +100 constant: MAX_CM +20 constant: MIN_CM + +: distance ( -- cm | MAX_CM ) + { PIN_ECHO MAX_CM timeout>cm PIN_TRIGGER ping range>cm } + catch dup ENOPULSE = if + drop MAX_CM + else + throw + then ; + +: obstacle? ( -- bool ) distance MIN_CM < ; + +: turn ( -- ) + right direction current-speed @ speed + 50 ms ; + +: go ( -- ) + forward direction current-speed @ speed + 50 ms ; + +: auto-pilot ( -- ) + begin + begin + obstacle? + while + turn + repeat + go + again ; + 8000 constant: PORT PORT wifi-ip netcon-udp-server constant: server-socket 1 buffer: command @@ -118,6 +153,9 @@ PORT wifi-ip netcon-udp-server constant: server-socket [ char: T ] literal of lamp-toggle endof + [ char: A ] literal of + auto-pilot + endof endcase repeat deactivate ; From 5314980b8f37621b5fc8ff4b5d8dbf2c847d9c40 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Sun, 27 Nov 2016 19:46:34 +0100 Subject: [PATCH 005/225] refactor --- .../forth/examples/example-geekcreit-rctank.forth | 2 +- arch/esp8266/forth/ping.forth | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/arch/esp8266/forth/examples/example-geekcreit-rctank.forth b/arch/esp8266/forth/examples/example-geekcreit-rctank.forth index eda9d4c..4f8b669 100644 --- a/arch/esp8266/forth/examples/example-geekcreit-rctank.forth +++ b/arch/esp8266/forth/examples/example-geekcreit-rctank.forth @@ -80,7 +80,7 @@ medium init-variable: current-speed 20 constant: MIN_CM : distance ( -- cm | MAX_CM ) - { PIN_ECHO MAX_CM timeout>cm PIN_TRIGGER ping range>cm } + { PIN_ECHO MAX_CM cm>timeout PIN_TRIGGER ping pulse>cm } catch dup ENOPULSE = if drop MAX_CM else diff --git a/arch/esp8266/forth/ping.forth b/arch/esp8266/forth/ping.forth index 3166f9c..8165da4 100644 --- a/arch/esp8266/forth/ping.forth +++ b/arch/esp8266/forth/ping.forth @@ -16,14 +16,14 @@ \ (2) The Module automatically sends eight 40 kHz and detect whether there is a pulse signal back. \ (3) IF the signal back, time of high output IO duration is the time from sending ultrasonic to returning. \ Distance = (high level time×velocity of sound (340M/S) / 2, -\ Usage example: PIN_ECHO 100 timeout>cm PIN_TRIGGER ping range>cm +\ Usage example: PIN_ECHO 100 cm>timeout PIN_TRIGGER ping pulse>cm : ping ( echo-pin timeout-us trigger-pin -- pulse-duration-us ) os-enter-critical { emit-pulse listen-echo } catch os-exit-critical throw ; -: timeout>cm ( us -- cm ) 60 * ; -: timeout>inch ( us -- cm ) 150 * ; -: range>cm ( us -- cm ) 58 / ; -: range>inch ( us -- inch ) 148 / ; \ No newline at end of file +: cm>timeout ( cm -- us ) 60 * ; +: inch>timeout ( inch -- us ) 150 * ; +: pulse>cm ( us -- cm ) 58 / ; +: pulse>inch ( us -- inch ) 148 / ; \ No newline at end of file From 1754ed99215090c4edd6180aefead585f82c68af Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Sun, 27 Nov 2016 19:50:06 +0100 Subject: [PATCH 006/225] binded autopilot to gamepad button --- .../forth/examples/example-geekcreit-rctank.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/arch/esp8266/forth/examples/example-geekcreit-rctank.py b/arch/esp8266/forth/examples/example-geekcreit-rctank.py index bcb95a1..c6c1fc3 100644 --- a/arch/esp8266/forth/examples/example-geekcreit-rctank.py +++ b/arch/esp8266/forth/examples/example-geekcreit-rctank.py @@ -24,6 +24,7 @@ def move(self, direction): def speedup(self): self._command(b'I') def slowdown(self): self._command(b'D') def toggle_lamp(self): self._command(b'T') + def auto_pilot(self): self._command(b'A') def toggle_engine(self): self._command(b'H' if self.engine_started else b'E') @@ -56,10 +57,22 @@ def control(self, robot): robot.speedup() elif self._button_down('speed-'): robot.slowdown() + elif self._button_down('auto-pilot'): + robot.auto_pilot() def _button_down(self, name): return self.joystick.get_button(self.button_config[name]) == 1 if __name__ == '__main__': - gamepad = Gamepad(joystick=0, horizontal_axis=0, vertical_axis=1, button_config={'engine': 0, 'speed+': 5, 'speed-': 7, 'lamp' : 4}) + gamepad = Gamepad( + joystick=0, + horizontal_axis=0, + vertical_axis=1, + button_config={ + 'engine': 0, + 'speed+': 5, + 'speed-': 7, + 'lamp' : 4, + 'auto-pilot' : 3 + }) gamepad.control(Tank(('192.168.0.22', 8000))) From e961c18954faaef57b5ec97679cfb7418142e76e Mon Sep 17 00:00:00 2001 From: zeroflag Date: Sun, 15 May 2016 17:01:21 -0400 Subject: [PATCH 007/225] performance optimalization --- arch/esp8266/ext.S | 46 +++++++++++++++++++++++++--------- arch/esp8266/primitives.S | 52 ++++++++++++++++++++++++++++++--------- generic/words.S | 10 +++++++- 3 files changed, 84 insertions(+), 24 deletions(-) diff --git a/arch/esp8266/ext.S b/arch/esp8266/ext.S index 66bf52b..7da9931 100644 --- a/arch/esp8266/ext.S +++ b/arch/esp8266/ext.S @@ -29,10 +29,34 @@ defprimitive "readchar-nowait",15,readchar_nowait,REGULAR /* ( -- char | -1 ) */ NEXT defprimitive "over",4,over,REGULAR /* ( a b -- a b a ) */ - l32i a8, a15, CELLS + READTOS2 a8 DPUSH a8 NEXT +defprimitive "-rot",4,mrot,REGULAR /*( a b c -- c a b ) */ + READTOS1 a8 + READTOS2 a9 + READTOS3 a10 + WRTETOS3 a8 + WRTETOS2 a10 + WRTETOS1 a9 + NEXT + +defprimitive "2dup",4,dup2,REGULAR + READTOS2 a9 + READTOS1 a8 + DPUSH a9 + DPUSH a8 + NEXT + +defprimitive "2drop",5,"drop2",REGULAR + addi a15, a15, 2*CELLS + NEXT + +defprimitive "4drop",5,"drop4",REGULAR + addi a15, a15, 4*CELLS + NEXT + defprimitive "cells",5,cells,REGULAR DPOP a9 movi a8, 2 @@ -87,15 +111,15 @@ L9: DPUSH a10 NEXT defprimitive "1+",2,inc,REGULAR - DPOP a8 + READTOS1 a8 addi a8, a8, 1 - DPUSH a8 + WRTETOS1 a8 NEXT defprimitive "1-",2,dec,REGULAR - DPOP a8 + READTOS1 a8 addi a8, a8, -1 - DPUSH a8 + WRTETOS1 a8 NEXT defprimitive "0=",2,eq0,REGULAR @@ -107,28 +131,28 @@ defprimitive "0=",2,eq0,REGULAR NEXT defprimitive "0<>",3,noteq0,REGULAR - DPOP a8 + READTOS1 a8 movi a9, FALSE movi a10, TRUE movnez a9, a10, a8 // move a10 to a9 if a8 is not zero - DPUSH a9 + WRTETOS1 a9 NEXT defprimitive "0<",2,lt0,REGULAR - DPOP a8 + READTOS1 a8 movi a9, FALSE movi a10, TRUE movltz a9, a10, a8 // move a10 to a9 if a8 is less than zero - DPUSH a9 + WRTETOS1 a9 NEXT defprimitive "0>",2,gt0,REGULAR - DPOP a8 + READTOS1 a8 movi a9, TRUE movi a10, FALSE movltz a9, a10, a8 // move a10 to a9 if a8 is less than zero moveqz a9, a10, a8 // move a10 to a9 if a8 is zero - DPUSH a9 + WRTETOS1 a9 NEXT defprimitive "ms@",3,msat,REGULAR diff --git a/arch/esp8266/primitives.S b/arch/esp8266/primitives.S index 01143f5..449082d 100644 --- a/arch/esp8266/primitives.S +++ b/arch/esp8266/primitives.S @@ -18,29 +18,57 @@ addi a13, a13, CELLS .endm +.macro READTOS1 reg + l32i \reg, a15, 0 +.endm + +.macro READTOS2 reg + l32i \reg, a15, CELLS +.endm + +.macro READTOS3 reg + l32i \reg, a15, 2*CELLS +.endm + +.macro WRTETOS1 reg + s32i \reg, a15, 0 +.endm + +.macro WRTETOS2 reg + s32i \reg, a15, CELLS +.endm + +.macro WRTETOS3 reg + s32i \reg, a15, 2*CELLS +.endm + + +defprimitive "nop",3,nop,REGULAR /* ( -- ) */ + NEXT + defprimitive "dup",3,dup,REGULAR /* ( a -- a a ) */ - l32i a8, a15, 0 + READTOS1 a8 DPUSH a8 NEXT defprimitive "drop",4,drop,REGULAR /* ( a -- ) */ - DPOP a8 + addi a15, a15, CELLS NEXT defprimitive "swap",4,swap,REGULAR /* ( a b -- b a ) */ - DPOP a8 - DPOP a9 - DPUSH a8 - DPUSH a9 + READTOS1 a8 + READTOS2 a9 + WRTETOS1 a9 + WRTETOS2 a8 NEXT defprimitive "rot",3,rot,REGULAR /* ( a b c -- b c a ) */ - DPOP a8 - DPOP a9 - DPOP a10 - DPUSH a9 - DPUSH a8 - DPUSH a10 + READTOS1 a8 + READTOS2 a9 + READTOS3 a10 + WRTETOS3 a9 + WRTETOS2 a8 + WRTETOS1 a10 NEXT defprimitive "2swap",5,swap2,REGULAR /* ( a b c d -- c d a b ) */ diff --git a/generic/words.S b/generic/words.S index ad38050..3929717 100644 --- a/generic/words.S +++ b/generic/words.S @@ -1,19 +1,23 @@ // Predefined words in binary (compiled) forth -defword "nip",3,nip,REGULAR +defword "nip",3,nip,REGULAR /* ( a b -- b ) */ .int xt_swap .int xt_drop .int xt_exit +.ifndef xt_drop2 defword "2drop",5,"drop2",REGULAR .int xt_drop .int xt_drop .int xt_exit +.endif +.ifndef xt_drop4 defword "4drop",5,"drop4",REGULAR .int xt_drop2 .int xt_drop2 .int xt_exit +.endif .ifndef xt_over defword "over",4,over,REGULAR /* ( a b -- a b a ) */ @@ -24,14 +28,18 @@ defword "over",4,over,REGULAR /* ( a b -- a b a ) */ .int xt_exit .endif +.ifndef xt_dup2 defword "2dup",4,dup2,REGULAR .int xt_over .int xt_over .int xt_exit +.endif +.ifndef xt_mrot defword "-rot",4,mrot,REGULAR /*( a b c -- c a b ) */ .int xt_rot, xt_rot .int xt_exit +.endif defword "tuck",4,tuck,REGULAR /* ( a b -- b a b ) */ .int xt_swap, xt_over From aa7c00cb7fa5dd9a38bdd190c70a31af27e70db5 Mon Sep 17 00:00:00 2001 From: zeroflag Date: Sun, 15 May 2016 20:13:48 -0400 Subject: [PATCH 008/225] performance optimalization --- arch/esp8266/ext.S | 4 ++-- arch/esp8266/primitives.S | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/arch/esp8266/ext.S b/arch/esp8266/ext.S index 7da9931..d52965c 100644 --- a/arch/esp8266/ext.S +++ b/arch/esp8266/ext.S @@ -123,11 +123,11 @@ defprimitive "1-",2,dec,REGULAR NEXT defprimitive "0=",2,eq0,REGULAR - DPOP a8 + READTOS1 a8 movi a9, FALSE movi a10, TRUE moveqz a9, a10, a8 // move a10 to a9 if a8 is zero - DPUSH a9 + WRTETOS1 a9 NEXT defprimitive "0<>",3,noteq0,REGULAR diff --git a/arch/esp8266/primitives.S b/arch/esp8266/primitives.S index 449082d..446b222 100644 --- a/arch/esp8266/primitives.S +++ b/arch/esp8266/primitives.S @@ -97,23 +97,23 @@ defprimitive "2over",5,over2,REGULAR /* ( a b c d -- a b c d a b ) */ defprimitive "+",1,plus,REGULAR DPOP a8 - DPOP a9 + READTOS1 a9 add a8, a8, a9 - DPUSH a8 + WRTETOS1 a8 NEXT defprimitive "-",1,minus,REGULAR DPOP a9 - DPOP a8 + READTOS1 a8 sub a8, a8, a9 - DPUSH a8 + WRTETOS1 a8 NEXT defprimitive "*",1,multiply,REGULAR DPOP a8 - DPOP a9 + READTOS1 a9 mull a8, a8, a9 - DPUSH a8 + WRTETOS1 a8 NEXT .literal_position @@ -147,10 +147,10 @@ defprimitive "xor",3,xor,REGULAR NEXT defprimitive "invert",6,invert,REGULAR - DPOP a8 + READTOS1 a8 movi a9, TRUE xor a8, a8, a9 - DPUSH a8 + WRTETOS1 a8 NEXT defprimitive "lshift",6,lshift,REGULAR From 61b3a4190698f803f7a0200eedd11f5bf05301c8 Mon Sep 17 00:00:00 2001 From: zeroflag Date: Sun, 15 May 2016 20:36:25 -0400 Subject: [PATCH 009/225] further optimalization --- arch/esp8266/ext.S | 24 ++++++++--------- arch/esp8266/primitives.S | 55 ++++++++++++++++++++++----------------- 2 files changed, 43 insertions(+), 36 deletions(-) diff --git a/arch/esp8266/ext.S b/arch/esp8266/ext.S index d52965c..55771ac 100644 --- a/arch/esp8266/ext.S +++ b/arch/esp8266/ext.S @@ -58,56 +58,56 @@ defprimitive "4drop",5,"drop4",REGULAR NEXT defprimitive "cells",5,cells,REGULAR - DPOP a9 + READTOS1 a9 movi a8, 2 ssl a8 sll a8, a9 - DPUSH a8 + WRTETOS1 a8 NEXT defprimitive ">",1,gt,REGULAR DPOP a8 - DPOP a9 + READTOS1 a9 movi a10, FALSE bge a8, a9, L5 movi a10, TRUE -L5: DPUSH a10 +L5: WRTETOS1 a10 NEXT defprimitive "=",1,eq,REGULAR DPOP a8 - DPOP a9 + READTOS1 a9 movi a10, FALSE bne a8, a9, L6 movi a10, TRUE -L6: DPUSH a10 +L6: WRTETOS1 a10 NEXT defprimitive "<>",2,noteq,REGULAR DPOP a8 - DPOP a9 + READTOS1 a9 movi a10, FALSE beq a8, a9, L7 movi a10, TRUE -L7: DPUSH a10 +L7: WRTETOS1 a10 NEXT defprimitive "<=",2,lte,REGULAR DPOP a8 - DPOP a9 + READTOS1 a9 movi a10, FALSE blt a8, a9, L8 movi a10, TRUE -L8: DPUSH a10 +L8: WRTETOS1 a10 NEXT defprimitive ">=",2,gte,REGULAR DPOP a8 - DPOP a9 + READTOS1 a9 movi a10, FALSE blt a9, a8, L9 movi a10, TRUE -L9: DPUSH a10 +L9: WRTETOS1 a10 NEXT defprimitive "1+",2,inc,REGULAR diff --git a/arch/esp8266/primitives.S b/arch/esp8266/primitives.S index 446b222..f1aa421 100644 --- a/arch/esp8266/primitives.S +++ b/arch/esp8266/primitives.S @@ -30,6 +30,10 @@ l32i \reg, a15, 2*CELLS .endm +.macro READTOS4 reg + l32i \reg, a15, 3*CELLS +.endm + .macro WRTETOS1 reg s32i \reg, a15, 0 .endm @@ -42,6 +46,9 @@ s32i \reg, a15, 2*CELLS .endm +.macro WRTETOS4 reg + s32i \reg, a15, 3*CELLS +.endm defprimitive "nop",3,nop,REGULAR /* ( -- ) */ NEXT @@ -72,14 +79,14 @@ defprimitive "rot",3,rot,REGULAR /* ( a b c -- b c a ) */ NEXT defprimitive "2swap",5,swap2,REGULAR /* ( a b c d -- c d a b ) */ - DPOP a8 - DPOP a9 - DPOP a10 - DPOP a11 - DPUSH a9 - DPUSH a8 - DPUSH a11 - DPUSH a10 + READTOS1 a8 + READTOS2 a9 + READTOS3 a10 + READTOS4 a11 + WRTETOS1 a10 + WRTETOS2 a11 + WRTETOS3 a8 + WRTETOS4 a9 NEXT defprimitive "2over",5,over2,REGULAR /* ( a b c d -- a b c d a b ) */ @@ -127,23 +134,23 @@ defprimitive "/mod",4,divmod,REGULAR /* ( n d -- m q ) */ defprimitive "or",2,or,REGULAR DPOP a8 - DPOP a9 + READTOS1 a9 or a8, a8, a9 - DPUSH a8 + WRTETOS1 a8 NEXT defprimitive "and",3,and,REGULAR DPOP a8 - DPOP a9 + READTOS1 a9 and a8, a8, a9 - DPUSH a8 + WRTETOS1 a8 NEXT defprimitive "xor",3,xor,REGULAR DPOP a8 - DPOP a9 + READTOS1 a9 xor a8, a8, a9 - DPUSH a8 + WRTETOS1 a8 NEXT defprimitive "invert",6,invert,REGULAR @@ -155,18 +162,18 @@ defprimitive "invert",6,invert,REGULAR defprimitive "lshift",6,lshift,REGULAR DPOP a8 - DPOP a9 + READTOS1 a9 ssl a8 sll a8, a9 - DPUSH a8 + WRTETOS1 a8 NEXT defprimitive "rshift",6,rshift,REGULAR DPOP a8 - DPOP a9 + READTOS1 a9 ssr a8 srl a8, a9 - DPUSH a8 + WRTETOS1 a8 NEXT .literal_position @@ -180,15 +187,15 @@ defprimitive "abort",5,abort,REGULAR NEXT defprimitive "@",1,fetch,REGULAR - DPOP a8 + READTOS1 a8 l32i a9, a8, 0 - DPUSH a9 + WRTETOS1 a9 NEXT defprimitive "c@",2,fetchbyte,REGULAR - DPOP a8 + READTOS1 a8 l8ui a9, a8, 0 - DPUSH a9 + WRTETOS1 a9 NEXT defprimitive "!",1,store,REGULAR @@ -211,11 +218,11 @@ defprimitive "[']",3,btick,REGULAR // compile only defprimitive "<",1,lt,REGULAR // only need to define this, all other comparisions are implemented in terms of lt DPOP a8 - DPOP a9 + READTOS1 a9 movi a10, FALSE bge a9, a8, L4 // a9 >= a8 ? movi a10, TRUE -L4: DPUSH a10 +L4: WRTETOS1 a10 NEXT defprimitive "branch",6,branch,REGULAR From 8a46f38a4813829e4fbebcea09c10cd0fb1e5343 Mon Sep 17 00:00:00 2001 From: zeroflag Date: Sun, 15 May 2016 20:59:21 -0400 Subject: [PATCH 010/225] optimalization --- arch/esp8266/cinterop.S | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/arch/esp8266/cinterop.S b/arch/esp8266/cinterop.S index 1f254ff..c42f534 100644 --- a/arch/esp8266/cinterop.S +++ b/arch/esp8266/cinterop.S @@ -1,8 +1,7 @@ .macro CCALL label - addi sp, sp, -32 // adjust stack pointer - s32i a0, sp, 28 // save return address - s32i a8, sp, 20 // save a8 - s32i a12, sp, 16 // save a12 + addi sp, sp, -28 // adjust stack pointer + s32i a0, sp, 24 // save return address + s32i a8, sp, 16 // save a8 s32i a13, sp, 12 // save a13 s32i a14, sp, 8 // save a14 s32i a15, sp, 4 // save a15 @@ -10,8 +9,7 @@ l32i a15, sp, 4 // get saved a15 l32i a14, sp, 8 // get saved a14 l32i a13, sp, 12 // get saved a13 - l32i a12, sp, 16 // get saved a12 - l32i a8, sp, 20 // get saved a8 - l32i a0, sp, 28 // get the saved return address - addi sp, sp, 32 // restore stack pointer + l32i a8, sp, 16 // get saved a8 + l32i a0, sp, 24 // get the saved return address + addi sp, sp, 28 // restore stack pointer .endm From 7be97a377c3321ec01e4ae24eafad36d9bf1d29d Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Sat, 3 Dec 2016 13:52:36 +0100 Subject: [PATCH 011/225] performance optimalization --- arch/esp8266/bin/punyforth.bin | Bin 290032 -> 290032 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/arch/esp8266/bin/punyforth.bin b/arch/esp8266/bin/punyforth.bin index 4273d381efbbb19b1cda7a3214dd00ff52fcb289..e85213c5e2826c734bbe1c5cec6629a66375c367 100644 GIT binary patch delta 24782 zcmagG34Baf8!&#KbLVD}JIN%H2npuiSSDo1j4hTh6B)IoB-XaJtP-*(lvbMrqg1pc zt)q%2f~r?rL_4%pg0WO=sVXgPEF}m+)z)yo=S(u{eZTMj`}_SS^X%t2+jE|?jE3{x z4d=bLy$-~hRx%03nyo7WWU)5c$J6TBPS&ernX|7@Gm0$Q3tQ_Z>xg~112?LzVmoU= zYgsSoi1kCYu(6fD%vruDxd#Qr>RFOYt`mFjl1cpAL|9XDp6@^`r4=+%}JC40T*gxYs?bu;)>Y19oI=f+LT8mTe)R5iF8guecrWI^Mt74&T_;r^X` zh~>+YI86`{9#`aR!l0)Ri~>Yx)z%_AxHLfeTd_oNRez%k))+s-1N@Fw3j_W1qOmkF zvXm1>Rb27DAwbWH)Jk!FX`k|${g1k*gplu}WZ&I2qjv1hyudrHiiY5o>hFSl&j z+a+A`snV(&9QCogRvgHT2GTIE!YA7ZpenKCi~_fkk8=t-*#kBIT_)Dw`mx5@E=}#R zwxoYtol`NZ6K1_>pi3=ptQ2btqpL6&Lcvmw0XUmo?;rN}Er3_-WCLz2SKRfYL zhac0s0+!;b3C)*G)9|yrV(#2mTwq&8RsJo2Jr!RT4kB*CKDAuk!Tv+Zg9TM?)*TG7 z?5Nngu#?J7$X3fI0<2jjw-&#lx2CG4y~_QQzA5I;pWV8*UD114Qq-fY?z2q7G$x3BA6=nt+kO?EG1se^*qOcLc5VmJK{8!>_o#-JHdsyc? z{x0wk(kiZRDG_|EAs*47_Z(rccYdf>M}VNKDB7k~K|#frJ142!h0+$f73f-Nh0pG< zRPNTXEl^0bkF7YmcP9{`Uq$}D2o+?N>^(4ySnpN19lVKAV1LO2yOCJ-Rp<`+g7BbF zGO0?;haW*{Mc*S6h@hG;nZ$~Zf1Jw0nTo%U_je(Ug%!p#*8p}_v_2c?7GN3Zrk$@H zf4R|c_{q@rIzB=@%zKH!9$hi=_b4>4D=Gft4Puuo?*3s$)U(2PsTNzUw!-%+@I?5& zq}BD=#9C4E;q_xg*jzEGt_G!+RD|6;A);@^kD`e1L&=awCy21U#Q*VTV*j|J^6@`F z?C+QCeOgMa1tnAe=}9c_lzjZp0wPQ+Y17!5STafmH%5!ri7x)KO79inDNHO`(-;zD z8Rs&7zn9+2y6oA|xM!*%JkEuN?pov5zuU)@Txu*M)?pP3pC$4x^*FU2EcoUQe2jh7 z!e%9~3roC62dSVfvDVwBsNg;19I#y%zzbXUfbFphTyi1ySLttRXibD@`cMsDwzotI za=V`XHC$|W-b0QR)UHWHp3+n94mIt1TTHh7o)85-7D;eHSF*yUaXq}l!VDIzEkFYu z2&ia;5A<&(JXMXaagp1qf_ikWNV@b*eT0|J)9Ow?^nr22@|W$J4}9B#*k7@&YYVem zY3#s9knui>3&HAf0@ynAf>oOQ#d(rx;@grbbh>0}P!xqR`Hal0Q~ANB>Lkg;C(g>c zfbcnlRf##7S;((P{3^q9-;87UW5gdY*__Ngu^`x_N|sE5v5DCMag77doSl@zabpqJ zA`V?SuBae5-xS6WJ;!Z8#sCI);kZhKha#-%o}QVA1=J!w7IBi9!)XhHO^FEeaT$pN z5YA%ooXnhw2+u>z!V?)hgX4N4oQSY%(wwA(S$RoOh-V?LN}9v!!Hq_|0C7Gy%QOw)ubO zt4cLGVM4ms3wlPTgR>A@1L>-!F~#*nJd5Fa9D(Re6ygO8H{$3;d=lcz5f_Y2BRCK7 zQik`;Zz2>RVH+bPB&DV0;>bk25^)&Fahnl7#o!2zJA&{9gvo$`Tphx74mg5yv*HY3 z@W2R8hcK6lu%RnA6k*W;>$!;t2QWA+f=fZT1Hybt*noix5eaiJ25_qo9^ilna$6A| z%7oH$O$QMki?A>?Z*Eo+PC3M0VqyLQ+;9*Nz*Cj7i84n;l3<%f#8kaSM^2N6jOkW$RrC7NJOsytv$% z`njn|X^C7t(l*fa5!mNJMcBW{)@0`DS%lChV7I3x#HFE?k;ps4RN1W3C(TaE$m8ZA ztpRB+7@iU{)45%UtJ1JqNjY)3N&4ipxZIR_r1>JP1sg6+B(B4zV& zK+^yuy5(l2ItS7Q6da8-cSd9Fjj^QxX^BobMnmU9KL|F>q2`g$QpiKFh`u%w0)?#z zZlH4!)Yl<+&{1M)GP9JYPtEH2Ax7sHwA3sdfjKEidrYfPCBGCwF51+dO#AAU_oO9*HRlS&2=<*KIk*VWhQi(s1;ekT#9cvS#I`=&{*wZOcMh9@5-1 zb8&hkr6;9h7)9D*r17(IO=p(la<>K%GAoyJTY&+X8Awb@LMPMkFE;>bJCWv=H7gBU zIu(Z}mxZ(=%s@tJ7K_Oo#$y(1S;)MAbXDH0gqbMkRO))qW>BJD>49+G%!z{=%oham~Sa@tMj2TrS%y`p~2cb<)n6f3) zV|0>zry)HY;k;&AQ9cUKV}&GyItrPH3>DJYw=c$#7lKIJjB@9T$(MD)D&Ezs@ombKLZnWcmo5a3&9o7L<P~72oN*4BYTw3aMoIcKO;E~4$ zVm=dO2rFa`epm~r*dR=|^6ot6!pTdx`G;5`7iYSwZL6z{6UzZgM)u==qKR z9}bL0BmXZ4SZH<9Uv@zI68&Wd+>p-3#PViGn6A?q?2>%P9Ci*c=Gh=rXl!l;6~e3u z8NE~e^Fi}wW0T{D;jC432%o`P&BLh)I6zqQCgMzp!V%A87~Z_lm@dr1`9G&=XY1^S zos09E0t||kdlL`gTs*r&0~SJP<{a#3qpVyW_|1I8XhcA zS2{G#oM47nSaceCdGuen)inBi&cxH1-7@~r z7yLA~t900(h&0y!tfFk1&tdbQ38x^VMYFNE>AC-xaAlLQL-r$-b$7^S#IZJH4mk^E zgOb^+L>X6y%$z*NXI z$f?NEvzL{z=^TUhW!*KX+afhRJt;92bC*F5eW#-ZFFDF!r=$7jP-)2vrGLi(6Jklk z%icP1r?Vm+leWmqoSBq?JLP7F*I*6vFyVAgNj94p%vzMqvN|k}Rff$pEz3Wgqn{C2 zsAbD6`#9sa6MuPLvqD5%R-28y(0SRG32hbO%yM)e+UEbC>qmPu^nV3~rl@9O%C_i9 zpm#U?T~*0(Qlml$=fROk4jwUr8#GX>FbKS=&kn^*hFiRAqqaAt)@d4c%Md2 zhvBZ-OwtfWOQwU)bEc#4k-9XbK|DP=9ol;a9-3I$ZhEAG&>DbODZ z==l`rN$lTJuT%){Vm*9Qx~z!hqRP7GX3P~uY?WgnMBv5EfgH!>5ex6SOC$ZRz%H7d z3LA+fi3ZGoZk?^Rn?&MjMz*Lk9PvJf7ln8ODwl#i%}?)X|K_INlbIC$L(^x#DA}sM zA6Z&pNVH><$iamsS<8TgLMixj``A{Z5fbR{GoXE!SmvvCzt&i)M3!g4bB5~Km6x~> z8k-RN7No#1+Ic2)B9`%V)J*V){xo?eOloO~y;&V8z5d0b7Mw^T0F~O(pJ&2i(Gq?0 zIEhe84-|MxQ`5lG-roP_A%8A8NMkqMtS8bR3S8ZQh2gz{bWwpz^mrPyg5T($X@IxQ zy{K0@_!E0L?VJvg#M+b2Oow=4=|)ecgWP2m({uxwD=?NegvlD&R3PB`1HXsS3WmirNc8} zgr7a~rr0Ma0O|A7r{mw8^pv<0bW0|Tg5C6KCJcn-v~L!)Z}Zw_%lMnpgw5FOL&0Lc zDUI8V_s=*!hSQuZ&=b3XmZ98KYxkSj;cVa&=cH+xDUiGwUDRsxUXYvUmVld+IM-qy z!{cY7k39H^Tv}?^U<>`Xi6&XAA8nrvtpe=o|4X37{XvFI`f4_G3RsBOx>uh(9~4%u z#am--ymqZhda9V8(4uUJ=)1lg-H>i5@EHT3PKo8>;<;(be(jU}gQUMdw?y0&NgNJ- zA>Jik^yU0bTvS(RT5#4YA= zTy5=qHvVyv>|{h;42*HiInM~MXc5NlLz><*LXGei#>e|rM&DeC@c5iYy&5*s-LpWF z>3a7SM~ph32od@-13?Fk`y2aad&nV$5m1RyvxGLzg49v7*0Zbr!t*O`l(}cuF$GWX zX9_j@8)cmSS*(-@9R5KE`|Gvc=0h4IU|^7e6I*J7OJp+!+AjJ)nK6^-&e@Re`P8B0 zB_G$0RKY{q{Y~%_?=f1ZcCHvW2GP-P!lD7m>)oKHbo!~^t6E%q`l#O^bp8kva;O>0 z2lN{R2b=J?%Eku68|x!CO2d2f8zd&e57cK4d^O3w_Esoo=(4`1G_m&L>0f{990qC< zA%?0*`XRYIsEZz!Fasl1#%irxKA?-fuQym3MY^sS^@q%VD#NmkiNlx%x0Jbl zr0QHYyiJ4VLZsgeMm27fB(h#i>?gCDVkL9u!g4TE)mxx5pDrV%iJVx~Lg~^StgL^= z7puYzBUP-x?ohxejX6foX`&{%rM7ZFgLJTrnL?xebKV9CX4BPg zLy-5GGE|f7W#~FKL@4ule6AkwD-Hv&DF71m}NTiUC8xn!Kx5mC|9#V;95p+zY9HKG?nwA6Sm#3e29f@bWJ|w zU~hUAz#yXfg^n(O&Yf4XHaDD8wAu$@@_gaAUu0@!>>E}oq9d|l-LEJX!AOdc0UW3>u3JRMk_vUC6<9t>i7 zYj0Y=2m%8+hs*_K1e1BTj;Wt-Qg}+`_n>Q!yNotOh4o*=W0W$SU5D*+gAqj^ma8!`J;Ed5D?mO|?ZuQ0^0Y;E}9`oHA$i=pNj;xS9s zimDJxWPIqb`*N8Esu?kE;abD*O3Dy1QBDqq>rAgxP`dQ10=*erHE*qSPJtc_E<8$$ z&^UCZo0dYT|8YiR%g6x*f*36ASD+28TM8k#nE4dJs}M!wiXa_y^kfkvwHMOs%$g^n zU%VGQ1_wd+f>5*^^*c19Ma3X9P~=FO{)l(;0NeH@p6736 z{Ze`U($UlIwC+P#*ixAMU}#VT(fNk7)IneI=wP8c&0h|Ies{jdWuJsb>WW>Bp2o6p zPOgN-^y}r|XIQ`nlDR?YywhkbEtNX25u+x?>SE(N%BiqFNw$AZjHQ*5v_|Zpi?wee zQhWOMa`;`pZa1o}A-YT9l9*^b5CW?iVf_53(hTfwpZ9_?NXuYuOKq!{)Aq|sp?ffk<786UyGuvMR;tj>%j_mlBWSp?7E z`hIc<*uCm>V5n7wn(a@oBlJ7=q(w!~eFUi>(#Vf-1zSgd`WRz*G38f6S?d|Qm|vIg z7E8XTKB>HxN*3)=NL#M#OWWR+IBwtwy-uM6y+*;C2CagDu8lTSD8qrY3RXfp`gj#w zg+J-VPjFiOLR+o|eQev+v7wwXPBs2dG9VJ(`2^*|%^^6S<^3Vhbv2^tVs@Q^Z_m6} z7hYFJ3|=~B2?+2Y+>A-B=qI{F^I}VTy+$VrZVxQ<8Sa0ISA*PAy(ivfS)_{dNS-z= zFEzXVAgrf{k)dAyiCOtRB^y~W+-mx8HH3Pv*onoY6zW~@8K`Be3MYP#PqESqXu_wE z?Q41X*Xi&^vEAip?FhYfN2BOtsGxP9Lb$N}pkz|nIHa6z7^HOtIhyz8lS2kB_Hd*BM$w!{J=S5ym_WO)gTXjea@RqRFzu(myxo$7 z`e->VN%LWQH8wc$QK!VOaga4bo+u_x8^&o|PAP^P^z1r_gTH9_XAp!{9`_k^15di} zGl<8m?fPf%DGq`KrI3PaetjvnwuODQqoy+4F7=@k%U}-F(bHuRfP1o=Wv~|7)5Yr{ zp>@S4OA05n4AzV0361u(iW^*r*Nfra<_A<&4jZAIZYhUXz;3%=4u1p2$I#3?&M>{`w&F;cPgR(@L05>1D0TS1qz=%=&q4C}juE>Kl&gnE zdP3yLSKwRPeKR)lmvqc#(8E1j;byqv3WIG)+rWgc;*#j++ra?W==tr?-j!D1j5c4O z%61sjM*k7>B2-KauYxWN4hOlK72KJo?SM9Iv`sW70c{!V;G%FFTDk+q_W7*jocXfn zJC{vvbunyDiLMuqgz%~nOyPNn!=OX?9|ohcBQ1DDyH;TQoJhTQ!g^egckYDM#I1ym z{szXvYqpKwKvz6yU>Y+Gx;QcMKQgpnSOhRk-md}I5_cp{`( z_$Wg~&n9IiZl@1zume`nFLpt1Jn5+2g*n7KwB>GmuSbgMjNQ=5_wfo@eqH3NeHNi9 zA5N-Q;6JtvyRkuGGp+d!`oL;ii|?TufjruGFFb>uw9gL^gIULtA7BO%R?xqHfM~c! z2k*nNbA;a5hqKC)wyuN&(2-umEf-|a5mitIuh837P@>uMVU7NcHF~|+H6pSthvRkm zewYC3ZFT!`ibah0@V?h)15_SLLqlGJvV62s+QQ4djHGvmEgxd-*c(7wG)V$MkQA{Wju?helO69-`dar=;tv4f1M`)oTb zg$p)v2&{nX_Ts~sz0Rce!w~EJ)pFFwMZr5v-X`z&gDq5d1X%7CeFP2@%Q5PI6qD7b zbjeYe>8?5>nT(~x+}rl-C}<$ylV!s|7l{!*UY7Tp;Gbn^3$yzY+VL24cMrISS5nWO z4|1cE5mnnixGLRedsUQaJ+ zoX$Lh z&vfmLbOoYb)-TgMV=*s0fAzxO5VVP|I7|Xtz*}F6d|An}?QN*r&p5f&wD-^Oo2R|+ z!^RqE^z-m4G`EztKMVcf5PkhD1pDlLACF;+L*~BniCS7%*EI}RfDg~&%92VyKa100 z8m&GHLy6@K_5TIx&`0GL=t?XBH1r${!>#@7b8y_ve)tOR`z(j)i1RSIy=DKE%hf8} zzgerU=sgX+o?$O;Maa>g!ngFh^DqQ1Q1}&s-K@JEn!9P}uW%7!Y%P9+Kfp^~QuH~F z)ed^j`n|$(jSJYb?sUXOXb;or%!`od{n=t{)H!BRh)wewfB1=X)mD2E=7O&!`AVc- z4!RQQ>!}w_J*x0P^bMN+2M&1sCe#=o`B&|z%E*It*E$fF9~CK^Zv6vyT4QK%EoA%j zSu6*6xxJ$ur}7^snTt*uYU!q0T=EKRztzHKz|gqxGK3J z(8E_DNfg|#;OGq3<3xQa3@=b z<5{G=Zomj}nmeP`k~jgg+@c%sM{t#uT@g5rEMT@3tE~gw{i6BO_f{MfzQX0_F|X1O zZbDlATB{p5GBS+Qx)WIUC27(X z!ymPnBFG8P*gW2RIYNz#jmlDT8GrKQ2smpl<0jUFvkIKHMvK3p*mT)&_%V|aRybv> zt1n-8NBW7*y@j!8G5zuugnL$fE)F)1tix@0eHKihf87Gv^_$NTjro=a)#Fef&i0fm zR2%6l_3##E;rr`B@2a)h1AL|SwukjF2B6S3{0_Vi(9ZVrU6{^eP8jhQ%+;J(fSU3K zj7l(MdzzLkyygmz-4+=)MPd zqPdj*{s2spJ?_qYb@x6g?s~QGPQ6}jUtNFNYk@4*osvssIT3qn(BII?d+&TK6?a$Z ziLyQkcU!yZ^uHm~bsZy1nE3yVY0PHo{tygpEsrnhVw%>sE0-KzJi@XK`PZ>w>*<7t z7)$rkcOPQ7$KB*Z99$b{?L!FYxNbg{8rD>5EVGMU68FjcSg{U=_Ox-Okx7Yo^wjnd zga^DgUljj6f+;%Qd;}9t(;wmWfN+U!e*}HhZI}_Z6ULMOR`l;jn4^rL9UsG}?hn}s z#)b6}qTVye*RF4r>l(Lr?o+Gd4(%(s}?omLtKxV<9g8Y$Jn-|^!#I(;(3V4 z$=zf}c9%^pPjJqp(4;50KdYo2pTd72&35`J{D{9ZiKlCyVV3ub?fx?e2W-l&3O3U& z+XMxs;!irlzS%`O0(SoIK#W8PwD}McO^D?ojZ=|@Z&>^P6?2be2^;TQ&fO0I!yP=L zvcGyCvlI~eTr$)v7Tx{Z__LGy@u%rO|_kDQv}kDhfTI+ZX}Dqc>25rSwSodY%4s-1%U5phMG)j zZJk<+J4rTOx<3tTx%;wjQ;16QBN_w(AvBF$BPD{e@m|~F@Wv9{IT5_zl{v9l<%YcF& zpxYi6ZaCGW5)TvcaJw^IE0HPSMH?j&M)-GVH<`4CMmkg`CvY#(Dwy;VU?Gjxk#5Ag zlfI)Pn{b2GA%t|o-PDK>G7dV?vJesqf%HTOndS5BEi7lzB}J}&t__}#2S!imxGrQI zv96$7@!Rt_<6kRogU3;x@FVr=O0=+_hIJ)FqP}J9q3VWbL>FT})_~pWWv~7nJ6^J0xqENF67D5jxof#czw1hRTUIn#^8Q68E(5s; zFFY1m#zRC_TwO_n@Xq%!PRrw1ppxwBJL0T+) zWRnrgHw_n=-#b|?%)(AbErf5HiavJNkid#QcGr6T?x7!)Q^&QJiryL|V)zxlZ3tP> zw=ib1VxFwnkNrN`Gg@tJ*I<36A-pi=b>$f`Pf&C#EIDv~4)O=b7Eokp0nH zF+*s+o}>i&vhs1DmFvZVN~k8uA z1bCH>Gmv^k(i;UE!s%h1FWR!J;+Fm$lvuKPl>&Oe%q5wz!PoHUSu`= zhkntEOqNQDiM-7Cm4X|4oHBSzh*6BhFN?*)4PyEIA}qCa?oDO^ZcEnoApsb`zwJZf zx(fR)ibPx>E))gJ4;K%eQ^xZTM^#x9<53YF6?B4{}AqYmT* zt82V~_llMoHvb6noPdVKTna*N={lChI`9-Hj%0Dq;_!Phv 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 ZUG`Bp)ZI2R-$a(1VeI?MZZzQJ_W%i6`~?62 From e36d02e3670f88da2225b0986d8cdb44f39d2c52 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Sat, 3 Dec 2016 17:25:42 +0100 Subject: [PATCH 012/225] optimalization --- arch/esp8266/bin/punyforth.bin | Bin 290032 -> 289888 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/arch/esp8266/bin/punyforth.bin b/arch/esp8266/bin/punyforth.bin index e85213c5e2826c734bbe1c5cec6629a66375c367..9e35bcb0da75cb0dbeb9d6d55e4d242b61999f17 100644 GIT binary patch delta 3474 zcmZ{mdrVZ>9mmgu!2w4e>I%M)aZFc~(Gee;Dv#?{A}flbs64bf%-oTIc`-8xwz_~i zb!^e%y6Zt}jhnRzrtJn+H$&TPLLVes*UdtfCTnU^jizz;4+E`f)v|8C=iV7*(_Irh z-|y%5yXXAQ@1A>L>{jNT&oa}#NFvHimZ1>*8-Be%&BxfyOJ`qauVT3NN4AX9ZP&&P zii<@muC4SO`7Il~6npPG^al&tl@5!N>oO~JDIsmpHmR+IbU_zNy@Zg<&}Gm`%e{Ul zRv3V+>(IuaYIiys>_JSTh>?wSA63MPGHPk}AVX;|E9r?0tIywRcZV;7SA!?{ z(Q`aC3LlW(8uZIj?!$LTU*K#Bz)!$;!y5{mK|jFE;}+$z^s98A3*RTbL-lw`sEYf@(9G_yFutf;n5lhrs5Yz=3PT`tsRO*e(z7Hn4e(=DGTWp|ET?=>W7Lk$FR; z?}Vt>L~~xc54H^~)u)CXexKE+wvu_Ga})Me6}2eG5t2X+O>~xZ6tTWZ zv5<-{@+3YQFjG8V-z_1V#W<$R>q7WZe5Lvpm({6y$S|0xNnb)TpV}5q5-ZB-jJ<_F zwkWIOAz4^ZbsTI1D+8MrU%~Ehr~&NuI`|&&#L5njKZKV+#=ygq^0B0f7eE$?x8)Mm zKd~rR5YF_6tg0`p2CWXfAh*NrAtZ{}0Ad+3hHq<9hzuY$idd@r46N!wJWC#cje#ZO zLwEYUSR!*Xol#WXg$uxgRQZ~%E{{FbK)S&egH6>Mq{CsbLNH?};7+{%3}MFk++57#{Q{A$@e0~+29B`_0tsw+YFYPU^raA0^2WH zpe59xHc-6s##=&)0(}vhwS-6*x>r8$R8`dB!T+SU+p<=< z4rmOtctR@Lf}P(+;)ikqpF5!7Mj^O$$5gY@g*)svcv85<(S$rj&!4WUWw|DKER_q?5Q-&8Q@ZQlO8*4dvW@->LuMsij$wVJR%uNoohxINT19VR zn4hTog9rNJSDJD4$D4^;TF)G>)E0VayEa+rc5Ujr+vQGT({|7wQj907XdTUy(>YP# zh9C|$+93UL>_=-}3of=c{nsJ(wo9ueZx?+9CE0a%WEU-g`~5Du5rbhj4PiL6o36z0 z>)l$_AMe(R_;NQr3wWkl%e+;s#hzeDN$hBwFxSwm=N3(X#UnK}TJE75?M3`TA4YUI zUZYKJuGLc3*J`f0Rx9yptybITwOTdv>*zYFoT#azv6?zI?JOH|#Tp*6Yy%sbDUSY& zeasBTSmh&jIEh6DW1l=`zoRU2MRYx7e`Q1GVvhf^fh1O1{{DO(VHraUr<6{|_L(`M@n%4j0tA+VHP27}hm>#<}gFj4WrSHVvnZu88R@xL>n8R2K&rlYLzu5U|9+@&CMw<9C+AnPNJZFB7@%*IyMAP3e zk{3X<*7NUWno>_(rH7wheV!Nlw4R$Ny({iG_)2S;qW5dl z#LETm`4*o2Eqw7e^Al-#UkiwhDz{{sQVu`uxNvOJu8ygE2QxeqeU1DTdQ)V$_!?&T zNOZVhC*-h(m+}$O>5~2W&#;!= zdQNXGyQHVkQEh4-srb7XcVUVhqQlLLnPF#qtd$k4VUa4`57o%AgznV`hfo^%S~m23 zk=u+m$CL3e@H)Cx>~G@hL`fqrq;+D<#aFT#t&U}EPNJUKI-ptcEt=$;TAoZRzZ@h) z^f&U=EK;9XZ1DNg`J&Iub6BKP+c7KckSQ883dP5#v(h7a;iZ)_W1ZO7gs)?PkDJAW zkIxdPoB2X9+{m*~nCvY#)aezmQbkr!zzoIu)I(KbxQQ=kJK~k+#K%uR5qD)?-VMD< zL%G~x0WVFvAu?UuBJ#bMeXrvH$=8 delta 3616 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 z Date: Mon, 16 May 2016 01:47:16 -0400 Subject: [PATCH 013/225] removed nop primitive --- arch/esp8266/primitives.S | 3 --- 1 file changed, 3 deletions(-) diff --git a/arch/esp8266/primitives.S b/arch/esp8266/primitives.S index f1aa421..44ed236 100644 --- a/arch/esp8266/primitives.S +++ b/arch/esp8266/primitives.S @@ -50,9 +50,6 @@ s32i \reg, a15, 3*CELLS .endm -defprimitive "nop",3,nop,REGULAR /* ( -- ) */ - NEXT - defprimitive "dup",3,dup,REGULAR /* ( a -- a a ) */ READTOS1 a8 DPUSH a8 From 83f4916c35694261e2280fe512462922f1807689 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Sat, 3 Dec 2016 22:36:38 +0100 Subject: [PATCH 014/225] removed nop primitive --- arch/esp8266/bin/punyforth.bin | Bin 289888 -> 289616 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/arch/esp8266/bin/punyforth.bin b/arch/esp8266/bin/punyforth.bin index 9e35bcb0da75cb0dbeb9d6d55e4d242b61999f17..eabc5b6e95150042c117f25b8050aa3ab486c5b8 100644 GIT binary patch delta 26717 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 h2(#wEJWWrL0rQGG|@n${@06 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 mp1tDd6Je4TV#ipz=A^`%Qw?z+IU*P Date: Fri, 9 Dec 2016 21:32:54 +0100 Subject: [PATCH 015/225] inlined token eval --- generic/forth/core.forth | 2 +- generic/outerinterpreter.S | 38 ++++++++++++++++++++++++++++++++++++- generic/words.S | 39 +------------------------------------- 3 files changed, 39 insertions(+), 40 deletions(-) diff --git a/generic/forth/core.forth b/generic/forth/core.forth index 067c6ed..a931333 100644 --- a/generic/forth/core.forth +++ b/generic/forth/core.forth @@ -425,7 +425,7 @@ defer: r0 ' r0 is: _r0 : traceback ( code -- ) cr print: "Exeption: " ex-type print: " rdepth: " rdepth . cr - rdepth 3 do + rdepth 2 + 3 do \ include ret address in outer interpreter print: " at " rp@ i cells + @ \ i. return address dup heap? if diff --git a/generic/outerinterpreter.S b/generic/outerinterpreter.S index 3814fea..4531ecb 100644 --- a/generic/outerinterpreter.S +++ b/generic/outerinterpreter.S @@ -5,6 +5,42 @@ outer_interpreter: .int xt_word // ( a len ) - .int xt_token_eval + .int xt_dup2 + .int xt_find, xt_dup, xt_branch0 // dictionary lookup returns (link | 0) + lbl not_found_in_dictionary + .int xt_dup, xt_link2xt // get the xt and flags of the word + .int xt_swap, xt_is_immediate, xt_invert + .int xt_branch0 + lbl interpret // if immediate word then interpet even if we're in compilation mode + .int xt_state, xt_fetch // if non immediate word, interpret or compile depending on state + .int xt_branch0 + lbl interpret + .int xt_nip, xt_nip + .int xt_comma // compile the xt into the current word definition + .int xt_branch + lbl outer_interpreter +interpret: + .int xt_nip, xt_nip + .int xt_execute + .int xt_branch + lbl outer_interpreter +not_found_in_dictionary: // word was not found in the dictionary try to convert it to number + .int xt_drop + .int xt_dup2 // save (len wordadr) for printing if error occurs during conversion + .int xt_tonumber + .int xt_branch0 + lbl invalid_number + .int xt_nip, xt_nip // drop saved word + .int xt_state, xt_fetch, xt_branch0 // depending on state compile number literal or push number to the stack + lbl outer_interpreter + .int xt_literal // we're in compile mode, compile a literal number + .int xt_branch + lbl outer_interpreter +invalid_number: + .int xt_btick, undef_word_error, xt_type + .int xt_typecounted + .int xt_btick, 10, xt_emit + .int xt_tib, xt_inputlen, xt_fetch, xt_plus, xt_toin, xt_store // skip rest of the inputbuffer + .int xt_openbracket // switch back to interpret mode .int xt_branch lbl outer_interpreter diff --git a/generic/words.S b/generic/words.S index 3929717..31225f8 100644 --- a/generic/words.S +++ b/generic/words.S @@ -579,46 +579,9 @@ defword "immediate?",10,is_immediate,REGULAR /* ( link -- bool) */ .int xt_link2flags, xt_btick, IMMEDIATE, xt_and, xt_btick, IMMEDIATE, xt_eq .int xt_exit +FINAL_WORD: defword "immediate",9,immediate,IMMEDIATE .int xt_btick, IMMEDIATE, xt_lastword, xt_link2flb, xt_fetchbyte, xt_or .int xt_lastword, xt_link2flb, xt_storebyte .int xt_exit -FINAL_WORD: -defword "token-eval",10,token_eval,REGULAR /* ( word-adr len -- ) */ - .int xt_dup2 - .int xt_find, xt_dup, xt_branch0 // dictionary lookup returns (link | 0) - lbl not_found_in_dictionary - .int xt_dup, xt_link2xt // get the xt and flags of the word - .int xt_swap, xt_is_immediate, xt_invert - .int xt_branch0 - lbl interpret // if immediate word then interpet even if we're in compilation mode - .int xt_state, xt_fetch // if non immediate word, interpret or compile depending on state - .int xt_branch0 - lbl interpret - .int xt_nip, xt_nip - .int xt_comma // compile the xt into the current word definition - .int xt_exit -interpret: - .int xt_nip, xt_nip - .int xt_execute - .int xt_exit -not_found_in_dictionary: // word was not found in the dictionary try to convert it to number - .int xt_drop - .int xt_dup2 // save (len wordadr) for printing if error occurs during conversion - .int xt_tonumber - .int xt_branch0 - lbl invalid_number - .int xt_nip, xt_nip // drop saved word - .int xt_state, xt_fetch, xt_branch0 // depending on state compile number literal or push number to the stack - lbl eval_exit - .int xt_literal // we're in compile mode, compile a literal number - .int xt_exit -invalid_number: - .int xt_btick, undef_word_error, xt_type - .int xt_typecounted - .int xt_btick, 10, xt_emit - .int xt_tib, xt_inputlen, xt_fetch, xt_plus, xt_toin, xt_store // skip rest of the inputbuffer - .int xt_openbracket // switch back to interpret mode -eval_exit: - .int xt_exit From e604bf18917d0fb1ce0a7ba9d5d6c9788d295a4a Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Sun, 11 Dec 2016 21:45:09 +0100 Subject: [PATCH 016/225] https://github.com/zeroflag/punyforth/issues/4 --- generic/forth/core.forth | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/generic/forth/core.forth b/generic/forth/core.forth index a931333..d841dc1 100644 --- a/generic/forth/core.forth +++ b/generic/forth/core.forth @@ -425,23 +425,22 @@ defer: r0 ' r0 is: _r0 : traceback ( code -- ) cr print: "Exeption: " ex-type print: " rdepth: " rdepth . cr - rdepth 2 + 3 do \ include ret address in outer interpreter + rdepth 1 + 3 do \ include ret address in outer interpreter print: " at " rp@ i cells + @ \ i. return address - dup heap? if - cell - @ \ instruction before the return address - lastword - begin - ?dup - while - 2dup - link>xt = if dup link-type space then - @ - repeat - [ char: ( ] literal emit . [ char: ) ] literal emit cr - else - print: "??? (" . println: ")" \ not valid return address, could be doloop var - then + lastword + begin + 2dup < + over 0<> and + while + @ + repeat + ?dup 0<> if + link-type space + else + print: '??? ' + then + [ char: ( ] literal emit . [ char: ) ] literal emit cr loop depth 0> if print: '(stack ' From 4d3abf8c96cddcbdb6f2ab49d709792ec368b7d2 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Sun, 11 Dec 2016 21:55:50 +0100 Subject: [PATCH 017/225] https://github.com/zeroflag/punyforth/issues/4 --- arch/esp8266/bin/punyforth.bin | Bin 289616 -> 289600 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/arch/esp8266/bin/punyforth.bin b/arch/esp8266/bin/punyforth.bin index eabc5b6e95150042c117f25b8050aa3ab486c5b8..597d9fef2bf217fd140c074715af4df372e71b34 100644 GIT binary patch delta 24079 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 Fe*p2&=vV*% delta 24079 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 WgtV^t!Aq(IF47*Hrt9KG%Krg6yT1AW From bc891aca619d9a23bd11f7e16013144ffe86399c Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Sun, 11 Dec 2016 22:17:14 +0100 Subject: [PATCH 018/225] added buzzer song play examples --- arch/esp8266/bin/modules.py | 8 ++- .../forth/examples/example-buzzer-mario.forth | 46 ++++++++++++ .../examples/example-buzzer-starwars.forth | 71 +++++++++++++++++++ 3 files changed, 123 insertions(+), 2 deletions(-) create mode 100644 arch/esp8266/forth/examples/example-buzzer-mario.forth create mode 100644 arch/esp8266/forth/examples/example-buzzer-starwars.forth diff --git a/arch/esp8266/bin/modules.py b/arch/esp8266/bin/modules.py index 75edb23..00d6bdc 100644 --- a/arch/esp8266/bin/modules.py +++ b/arch/esp8266/bin/modules.py @@ -29,7 +29,9 @@ 'example-philips-hue-clap' : '../forth/examples/example-philips-hue-clap.forth', 'example-geekcreit-rctank' : '../forth/examples/example-geekcreit-rctank.forth', 'example-http-server' : '../forth/examples/example-http-server.forth', - 'example-dht22-data-logger' : '../forth/examples/example-dht22-data-logger.forth', + 'example-dht22-data-logger' : '../forth/examples/example-dht22-data-logger.forth', + 'example-buzzer-mario' : '../forth/examples/example-buzzer-mario.forth', + 'example-buzzer-starwars' : '../forth/examples/example-buzzer-starwars.forth', } dependencies = { @@ -56,7 +58,9 @@ 'example-philips-hue-clap' : ['example-philips-hue', 'tasks', 'gpio', 'event'], 'example-geekcreit-rctank' : ['core', 'tasks', 'gpio', 'event', 'wifi', 'netcon', 'tcp-repl', 'ping'], 'example-http-server' : ['core', 'netcon', 'wifi'], - 'example-dht22-data-logger' : ['dht22', 'netcon'] + 'example-dht22-data-logger' : ['dht22', 'netcon'], + 'example-buzzer-mario' : ['gpio'], + 'example-buzzer-starwars' : ['gpio'], } def print_help(): diff --git a/arch/esp8266/forth/examples/example-buzzer-mario.forth b/arch/esp8266/forth/examples/example-buzzer-mario.forth new file mode 100644 index 0000000..6ff95e8 --- /dev/null +++ b/arch/esp8266/forth/examples/example-buzzer-mario.forth @@ -0,0 +1,46 @@ +\ playing sound with a passive buzzer +523 constant: C +554 constant: C1 +587 constant: D +622 constant: Eb +659 constant: E +698 constant: F +740 constant: F1 +784 constant: G +831 constant: Ab +880 constant: A +932 constant: Bb +988 constant: B +1047 constant: c +1109 constant: c1 +1175 constant: d +1245 constant: eb +1319 constant: e +1397 constant: f +1479 constant: f1 +1567 constant: g +1661 constant: ab +1761 constant: a +1866 constant: bb +1976 constant: b + +create: song e , e , e , c , e , g , G , c , G , E , A , B , Bb , + A , G , e , g , a , f , g , e , c , d , B , c , + +create: tempo 6 , 12 , 12 , 6 , 12 , 24 , 24 , 18 , 18 , 18 , 12 , 12 , + 6 , 12 , 8 , 8 , 8 , 12 , 6 , 12 , 12 , 6 , 6 , 6 , 12 , + +4 constant: PIN \ d2 +create: PWM_PINS PIN c, +PIN GPIO_OUT gpio-mode +PWM_PINS 1 pwm-init +1023 pwm-duty + +: play ( -- ) + 25 0 do + pwm-start + song i cells + @ pwm-freq + tempo i cells + @ 20 * ms + pwm-stop + 1000 us + loop ; \ No newline at end of file diff --git a/arch/esp8266/forth/examples/example-buzzer-starwars.forth b/arch/esp8266/forth/examples/example-buzzer-starwars.forth new file mode 100644 index 0000000..5ed806d --- /dev/null +++ b/arch/esp8266/forth/examples/example-buzzer-starwars.forth @@ -0,0 +1,71 @@ +\ playing sound with a passive buzzer + +129 constant: cL +139 constant: cLS +146 constant: dL +156 constant: dLS +163 constant: eL +173 constant: fL +185 constant: fLS +194 constant: gL +207 constant: gLS +219 constant: aL +228 constant: aLS +232 constant: bL +261 constant: c +277 constant: cS +294 constant: d +311 constant: dS +329 constant: e +349 constant: f +370 constant: fS +391 constant: g +415 constant: gS +440 constant: a +455 constant: aS +466 constant: b +523 constant: cH +554 constant: cHS +587 constant: dH +622 constant: dHS +659 constant: eH +698 constant: fH +740 constant: fHS +784 constant: gH +830 constant: gHS +880 constant: aH +910 constant: aHS +933 constant: bH + +create: song a , a , a , f , cH , a , f , cH , a , eH , eH , eH , fH , cH , gS , f , cH , a , aH , a , a , aH , gHS , + gH , fHS , fH , fHS , aS , dHS , dH , cHS , cH , b , cH , f , gS , f , a , cH , a , cH , eH , aH , a , a , + aH , gHS , gH , fHS , fH , fHS , aS , dHS , dH , cHS , cH , b , cH , f , gS , f , cH , a , f , c , a , + +create: tempo 500 , 500 , 500 , 350 , 150 , 500 , 350 , 150 , 1000 , 500 , 500 , 500 , 350 , 150 , 500 , 350 , 150 , + 1000 , 500 , 350 , 150 , 500 , 250 , 250 , 125 , 125 , 250 , 250 , 500 , 250 , 250 , 125 , 125 , 250 , + 125 , 500 , 375 , 125 , 500 , 375 , 125 , 1000 , 500 , 350 , 150 , 500 , 250 , 250 , 125 , 125 , 250 , + 250 , 500 , 250 , 250 , 125 , 125 , 250 , 250 , 500 , 375 , 125 , 500 , 375 , 125 , 1000 , + +4 constant: PIN \ d2 + +create: PWM_PINS PIN c, + +PIN GPIO_OUT gpio-mode +PWM_PINS 1 pwm-init +1023 pwm-duty + +: play ( -- ) + 66 0 do + pwm-start + song i cells + @ pwm-freq + tempo i cells + @ ms + pwm-stop + 20 ms + i case + 26 of 250 ms endof + 34 of 250 ms endof + 52 of 250 ms endof + 60 of 250 ms endof + drop + endcase + loop ; \ No newline at end of file From 857fa8742a7d0f4b01641332a89443bd5c44fb2e Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Tue, 13 Dec 2016 22:52:41 +0100 Subject: [PATCH 019/225] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 5306b4c..73c68c7 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,7 @@ Punyforth also runs on x86 (Linux), ARM (Raspberry PI) but these are *not* the p * Simple * Highly interactive * Extensible -* Small memory footprint - +* Small memory footprint and resource efficiency ## Quick start The easiest way to try out Punyforth is to use a ESP8266 based NodeMCU development board that has USB to serial interface on board (Geekcreit/Doit, Amica, WeMos, LoLin). Connect the development board to your computer via USB. Let's assume the serial port is COM3. From 601af4008e1d8a3552fb88d600271b68eea69ff6 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Tue, 13 Dec 2016 22:53:23 +0100 Subject: [PATCH 020/225] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 73c68c7..30b1b65 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ Punyforth also runs on x86 (Linux), ARM (Raspberry PI) but these are *not* the p * Highly interactive * Extensible * Small memory footprint and resource efficiency + ## Quick start The easiest way to try out Punyforth is to use a ESP8266 based NodeMCU development board that has USB to serial interface on board (Geekcreit/Doit, Amica, WeMos, LoLin). Connect the development board to your computer via USB. Let's assume the serial port is COM3. From 0deeeb0fca92172a989b7e3fd1f7a88b664973d5 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Thu, 15 Dec 2016 22:26:38 +0100 Subject: [PATCH 021/225] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 30b1b65..c2c3e27 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Punyforth also runs on x86 (Linux), ARM (Raspberry PI) but these are *not* the p ## Quick start -The easiest way to try out Punyforth is to use a ESP8266 based NodeMCU development board that has USB to serial interface on board (Geekcreit/Doit, Amica, WeMos, LoLin). Connect the development board to your computer via USB. Let's assume the serial port is COM3. +The easiest way to try out Punyforth is to use a ESP8266 based development board that has USB to serial interface on board (Geekcreit/Doit, Amica, WeMos, LoLin). Connect the development board to your computer via USB. Let's assume the serial port is COM3. ```bash $ cd arch/esp8266/bin From 3c7c4e6e86c9123e0e7b1de6a8e52c171074f0b3 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Sat, 17 Dec 2016 20:08:39 +0100 Subject: [PATCH 022/225] pictures for sonoff tutorial --- screenshot/sonoff1.jpg | Bin 0 -> 25172 bytes screenshot/sonoff2.jpg | Bin 0 -> 33323 bytes screenshot/sonoff3.png | Bin 0 -> 23310 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 screenshot/sonoff1.jpg create mode 100644 screenshot/sonoff2.jpg create mode 100644 screenshot/sonoff3.png diff --git a/screenshot/sonoff1.jpg b/screenshot/sonoff1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8539fb4c1e53207d14ec1230ccb5c8ffee75fe9a GIT binary patch literal 25172 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 AwEzGB literal 0 HcmV?d00001 diff --git a/screenshot/sonoff2.jpg b/screenshot/sonoff2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5fd96e7d02cb8c30c094b9110a7c0238220896a7 GIT binary patch literal 33323 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

j}&!gbl$X=Fmc+oi0wvj&^~ky+VI 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 IonX!X0T8KB8~^|S delta 24174 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 diff --git a/arch/esp8266/forth/sonoff.forth b/arch/esp8266/forth/sonoff.forth new file mode 100644 index 0000000..a8c2c61 --- /dev/null +++ b/arch/esp8266/forth/sonoff.forth @@ -0,0 +1,29 @@ +\ module for sonoff smart socket + +12 constant: RELAY +RELAY GPIO_OUT gpio-mode +FALSE init-variable: relay-state + +: on? ( -- bool ) relay-state @ ; + +: on ( -- ) + on? if exit then + TRUE relay-state ! + RELAY GPIO_HIGH gpio-write ; + +: off ( -- ) + on? if + FALSE relay-state ! + RELAY GPIO_LOW gpio-write + then ; + +: toggle ( -- ) on? if off else on then ; + +13 constant: LED +LED GPIO_OUT gpio-mode + +: led-on ( -- ) LED GPIO_LOW gpio-write ; +: led-off ( -- ) LED GPIO_HIGH gpio-write ; + +: flash ( n -- ) LED swap times-blink led-off ; +: alert ( -- ) 10 flash ; \ No newline at end of file From cb243fb81b155073b068456fbefbcfb43712d6da Mon Sep 17 00:00:00 2001 From: Magyar Attila Date: Mon, 19 Dec 2016 14:37:16 +0100 Subject: [PATCH 026/225] renamed compile-imm to postpone: --- arch/x86/punyforth | Bin 41147 -> 41055 bytes generic/forth/core.forth | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/x86/punyforth b/arch/x86/punyforth index 9fce7a5f875461c0c2dd8aea60cd5045999c2bc3..1e6e56f6c8f3d5033dbf1ae460468bebe7551784 100755 GIT binary patch literal 41055 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 L_1M#W+RhHUoF literal 41147 zcmeI5e{ft^b;qydmA!EsY>LSk>b7z#8kN|N?7HBjwoziskvodxAMzk#!)mqrWW9KQ z1WtNgQlI0f#YDHyDykJwaiVK`;VLqZSv;lu!*xix~`cW(Wz0k+cEaS$G-GiU;k9s*{3sy6D`}Gxz;>#;B*3){*j*D z+jf%Qv%6>Kc4|I4Xzl@Q-{IORZ`&CWbUh7;7TWjxQFPt?$}iY$ch9QtefpKxc2MrQ zF48TFuB+VjJv}d+rykd7UcbtO^*qsxseXn3`5JkGGkLxW^~mA3F$)uHeZI=E4==H? zrg}aPb^l1J=V^O=hR&$ped{+C9-mzJ<;hphvgwt@47GpcnTBt=>+T1CSZTB{(sSUK ziAOq&Z9m*$4*Xq$J^Du=Q@}N8uRWA2)T0$+bmOuI-(C2=7hfCrsvkb`mI-Fv&gl8- zfh%U=LmRGLyY^X5i+(s7yi6t@VJI~^+=eDM&hA^!E<9R~-OlARv-mG(@#BggoYdV% zdO9^?o!dDKuAR}9F{)hkkkxpHH?`QnCT_sAzQ$=hU#-pN>O>nFo>H_h7&8s7f*Wo&<_hEy$}8aHfkg5+<+mG?gnSZm z;+A|d3)Ld#70GtIc0XMW86GCpKyv&&UA+Lelm|12HLT-mVXZKC-Jp#FlHtTSY zL+*h**Dqj>p?MOVCHDpCLT12>f#{;7xeS`1JBEQdG_4{W=u~ae)i8no@?i~%;g@jFkXGX9f1vUkmDg_*9Use zf41Ei>=tBjh=(2`%JT7Q?fD$%USeFWh@11~{*`lpv51cM2W`2gY=aB)9mvhtpKKdJ zTMOF6hWnN}*{8Bcr_}m#96g`2i1UFzjpl;B9EZ8EF=6i=!(Jm-4im-ze`19J?7a}{jwCBZ1s0$Ov~!#){Bo{bkN?T|+u-BZjW6dFedzI&*1KTe4Q37!keO$WwfefIWXs3#tiqSfoJ@TT`wVgm?#Tvh4({s(I43XS zo}dj`o-GGq+cf0fPuWiW)@=z7}v42MhVxp_MB zd6hn$%KA(qZtYW8eC~mszL((Il&bq=UU+ZxA}1y2M`(kXq@6k7dBGgZIYB?$;Aa8d ztjH8Ah0v3|$A0v|`;&R^1<&@yHu1;3On=AVZ*FEFz$=HH&+%wKF^^UF>cy3Qxj$rm zJE@E8Y>be3CQ4tnQDz&*ps!`oI&)p8G3GqKuz|19Tr=^-e2A?5(#Ia$PjgEFULxwx zmx-sG{}Je}FAo&=rf$o$xkww&uJ_-lbJ$GnU=(w6&K&RpL6+I|4`jN<~X3;2HI=e!lsJ3M2W zf?v*oet4#eAASE!C*A!+KRG-X7VsIJOP9l0=MtZ3v>As@a+dxK+BgpNXCYtbVPgf^ zq8GhKbNuy)hx#k*Z}pjC4lyxK>UpJp3EpjzIlr)PLw`=*RpmXJ`n5HE&co}9?ca$u zu08$moH!e;PY>GXN50Z~%m2l8QrRAa?RD0+kmesjj7P@hUgFqeu$gCVhC=GOPVz3s zcQdZLya&Bl^Ve6*;@`UL{Lm&o>CfO9Ja53yX1&6@s6Prl=g=O-B{J8I_ARhaz+T?F zM9=4$5k-e&hbg1+E3EJaqj>oazZCB`%(vV}l+R<1jQ1@1 za4ys}V+`5%WS-M}KJzPQzVK8uChupCF^=c4_^8=L_Ym9L;cE?^BQ~eth5ya7=hvMD zyuYX6%dR{8$Y(A7?T2#n|MRCR0maui191l848$3TGZ1GW&On@jI0JD8;ta$Yh%*pp zAkILXfj9$k2I36F8Hh6wXCTf%oPjt4aR%ZH#2JV)5N9CHK%9X%191l848$3TGZ1GW z&On@jI0JD8;ta$Yh%*ppAkILXfj9$k2I36F8Hh6wXCTf%oPjt4aR%ZH#2JV)5N9CH zK%9X%191l848$3TGZ1GW&On@jI0JD8;ta$Yh%*ppAkILXfj9$k2I36F8Hh6wXCTf% zoPjt4aR%ZH#2JV)5N9CHK%9X%1OJB^nE!6n?`j@MmzxX4W}kI$N`Z%xiGH!rT=w$m zLg;78^UeHSg{+72e_pnkg>`OgHuJX>N|msgB{=(Y#r-hZio!F^VX@epD;D;`!mKP0 z=fiX#u3_M=10ofQp|^5xp|Y~C;^(p}{H$3SdPAXE85FbWFl|=a|NbxX@Y}GRhi@ak zwth0MtOX?>)(qljCBCdB#G1>jQ9FTao}HqP*sTH6jw)8WZAB5m%WsT~a1lF{a zG06IztnbX4&himEcBPGcHln7^9Rj#=EPiB6N2vYse$-RD(ar5HG}0ey!mt*Z_P69w zW1d)u#^@vdg!PsAA-js!E)R}fA~;{iZUoNDal*zYb28@AHRfDuz|i9YaDD7c*WSvG zwa=w%Z--n}%sjU%M#(?*xpZwK2xX&eU15&bskG#+;A*Yy(zRa5tfAySm#*a@Nc_y+ zelV*YJAK034}mp5g&%^zT2aCy5cK^10?eAEqW>!htT!q=4uN$^g`b1KI+4QPguuF8 z!Y@KNrT8T<>$i#imk?NcP54y^tSc#;K(bj!Qus}?xEajav7*0u7QYkB8d{=XKZ|#O zStm&J88B;^2@io;!%p}JSoRP1!{gvns4499jpihnwW5Td1+%u6Fl&TgMvWrJbIc3i zA;mudpH}=U@Hxdz*upKSwIuzQfR8G^34FiewctaFH-guqj*|4h2Rxv7A9yk9@`-*w zcBs1RhcRR`8hORp9fAH-fuRpH2Mj0H0Gl0M4Q&mgqkWUaNQn{G{S9f=8p8QQRMY z4?eE=AHnApUjQ$8tnU9`z}aX&EyC&iDws9hIQ}B|yB>!V>)Ht~TTEaJjS$o`Z zqxlmsYp0671H4K3-v(xlZ_)1tvu>AgKbW-{g$KbGmHnTCS7yZw{tgkM78O++# zV*fgLor>@JCY(>o-(v6@70>U1Ppf!u0<#92`1@lp>mLf=0cM>y;k&_$l>d9kD&BtZ zq3C{OKFZ*d>i*=A5y##%zAjD-wtLybK%|Kvnn6`;GELu!K@u9_QPP-lXu)`4uDUo{)fS= zMJM*30<*@u@MplyDu1J3)(92-7s2gH|F>Y)Js16V!K@GOxY2wcd_whq3EZptUj(mH z@m>KRR6GwaILB50H-K5QTE=?|c$*q;8JP9xW&E4LtfeUSYr!S8UK_zzR6e$XSw~y! zcZ0v9;_<+&*Dm@ZS@nNEcvSHNVAfz2`;UNImHshsr<&h!@OhP=XTW?mJJd-U5j= zNQK`9i8Zf<+aO(0^SKS2RpV_2cdPtv1+ylo^xp$1sp7d8%-V>eFGG?Vi9ByU0IsTh z9snm)e22j;YJHD_jq?9EIH%(OJouur{}PyWJ7xT@Lt;Hu;cr5kRQ~<}%-WEm|0hVS zdntSl(ow}f0k2WxT>_s_^L-7xSlM5PKTKE$R{Sjix2pZ$!arP8epi6ol)ra?SzA{6 z-vMULQQ4PVl6P?|op_l@)y+94h?~?NvMvf?4la>^}}Zq~>!B{Gy8Qb70nh z75itw(<;AT1KaxTFyQ)s3%p#7KLuv3SLy#Fa8>pHDR^9s_Y3foYJD$*r`gqqKz;0wzB82GXp?+Nf)wLd-&W=&Zc|5-3=^a?)*KBn%k z=fOGU??rG``TG%gk$NBa8MrNaU*~%ND>zj7c@3OYJokD$zf?RofJ9&zZ1Mj#lI2Ey1`<<9Xzhq=Y3$-@D{yKR{B9O>)(q05SX=vg^z*Hs_~u% zZ;bx_TZF&IzYIR2{67aysQG^zJfh-%0eo7m_m9EnRDP$yy=whm2D2`@#Pc6y<$n(T z0V1pNxd7a&=Cc@lO2z*>;B)GE&!09RGKFMzM8eE$%9 zQaw+94o;}|o!7vuH!ky?cLSae%Kt(z>rIRPM)0_b@Atv1;V$|W)T{mS4se$mZzFg_ z<$F7rwc(}zd%zb|elp-`HJ^RpgUWso%sSE1|ASzo*7pFIb*e@G32?je|5@;u+K*3z z_5Obrd{M3cDR7VKe;S-s<3A7Hr0$>Zfv+h2kHJ;79=`-nD*yiuUab6I1COfxcKsW$ z|CPTtffuO1hnm5A)OxN0vj(`#|2FUvwO*UR18P0)0#B;@=iT6>8s7sSQ~d|Q=Ttl& zqP@}|0+&>N9|gB4{inh0YJYtW%zE4s?-#&F)c9WkA5-i34REX4UsK?O8t+HoNfqDE zz{eH;8+bzH`&DqOil+hp276KMr#FI=O8>iH)&iG!{}4Q-@^=fkOWCglkE;3K31&TX z>A#)!YP=Nqq}uQIf-kH7`@yGG{0G4!YW^Puvxd3&KMp>q;xQXLy1I56R*^S5yKnFA zNNv3Pu5DYoIwIP#wYy`-wjCYaX3Jf7b!^%K3)8t})25ECW=F@JySi@QVY+wh>M)yc z@7md6wrt(Dt2=eauFab}cBFQ0xu?V2b$d_h-FNTUl#MO`BIp|j}B}s zr7LAmz{~qJML1lt?O8v=A4Sr^u<;7nl)}J;SuUkBo{4}l>t-vP3`X>GUaDBg4X5^} zgMwe!YbyL@CB3A?da*iOXa-6-f$q5_sjWom>HreGEQ20_f=5BUI@S0L@oFs zD4Pm{;gs#d(2Q-OMSl?!a#-Hymr?_MHtQ8!gVSXKkL$QU@bO737H+3SZ0GW4`_I@NFq7(TtkQ+cjgo=G(95c6Sp#XdhBMdKln09YWiu9vkz|mJ zEcOXJVnI^<*sG~%HwX9~E|(L^qzlY?Z4)2@y~nsTwN-(Y-nX?r*l{j<$af!hkq1h7 zLr7$%nDtWWzG4s>yDq#_a_Mr&bh#E4y=&mfu)4399d@0|`_m<-!20Yhr25jxuXS5t zmLruN0lUw3#vRFxm@Ae&?B>iq&oXW=cjX~KgZ{wt@?PF~81T}i6mBvEYMo<7o&=o@ zuuagR4?kt@qu}w5$rinG6k=EmtViBnt|=F}VasYaLZ#fszG@(wk%AvhuWY^8Hr&JZ z8hC>q?jI}LWekgcfljP#->{oUP;y;u+*yAxU(8w?q$g9vb|gg8u_o}2maw?bE2Owm z&cEFEcCd2f5_UNZV%u!`qqroMSes~e*fsgIM09TyvX{%1ooLsEZa6gdlXss@Mhm#IbP}`woIqeOWujE3%lpA)ol`rV~_+blinA?)*_qbcVWkasYLxX<4_~b-f6VGfX%{=1dezB()USFK& zA$OG2Zw)tZcP!bR=I-ezk!~9z#J!=3&RRf}CP?bAtnDEijI5fSfPFOBW_KQ2=h2BH zVTOL6n}%M4`jdoe+bz1|IS=cxmUVmZFr-LfPyA?U)N=?H+}5@)PbMqyO@<3mf5y2} zCNi^Whnjbjwf775*m19u>{#2+R;{uUy?ol{ndjP!b8N`o-gbg=PPl=}DLue__sy4%Nqow(h7I2!8{Mt|P9wqH<+ZWg^V>WK*3+LOm7 zxZS8TcTyQGSUO5Tz`wvv)jrQyN1vX)o)V{$|r?2 z(8odDL|$_25?H(1vhkqf6lB-c9vjxI{$z6LLrf{p{y$Wa7d+nGz<9N>O-vBpgrX;a z-W2%XzUprtJgV$d-My|^?@`tfjlCzCgPHqMpJC9dR}V>xef~x_F<;ND-&v;y9&*up zvx_)7uGHpUqZuK;a<)n;Ey6OJ@Cr w%N`$g-1-)*hdEstring" ) immediate interpret? if str: "print:" 6 find link>xt execute cr \ XXX else - compile-imm: str: ['] type , ['] cr , + postpone: str: ['] type , ['] cr , then ; defer: s0 ' s0 is: _s0 From 9e42034ec9a70a28b3402288f1b561d8dc204953 Mon Sep 17 00:00:00 2001 From: zeroflag Date: Mon, 16 May 2016 11:31:57 -0400 Subject: [PATCH 027/225] sdk upgrade --- arch/esp8266/rtos/user/forth_evt.c | 4 ++-- arch/esp8266/rtos/user/forth_gpio.c | 31 ++++++++++------------------- arch/esp8266/rtos/user/forth_time.c | 4 ++-- arch/esp8266/rtos/user/user_main.c | 2 +- 4 files changed, 16 insertions(+), 25 deletions(-) diff --git a/arch/esp8266/rtos/user/forth_evt.c b/arch/esp8266/rtos/user/forth_evt.c index ef2648e..156f2c1 100644 --- a/arch/esp8266/rtos/user/forth_evt.c +++ b/arch/esp8266/rtos/user/forth_evt.c @@ -4,7 +4,7 @@ #include "queue.h" #include "forth_evt.h" -static xQueueHandle event_queue; +static QueueHandle_t event_queue; void init_event_queue() { event_queue = xQueueCreate(12, sizeof(struct forth_event)); @@ -15,5 +15,5 @@ void forth_add_event_isr(struct forth_event *event) { } int forth_wait_event(int timeout_ms, void* event) { - return (xQueueReceive(event_queue, event, timeout_ms / portTICK_RATE_MS) == pdTRUE) ? 1 : 0; + return (xQueueReceive(event_queue, event, timeout_ms / portTICK_PERIOD_MS) == pdTRUE) ? 1 : 0; } diff --git a/arch/esp8266/rtos/user/forth_gpio.c b/arch/esp8266/rtos/user/forth_gpio.c index fe7d087..13b5f4d 100644 --- a/arch/esp8266/rtos/user/forth_gpio.c +++ b/arch/esp8266/rtos/user/forth_gpio.c @@ -25,8 +25,18 @@ int forth_gpio_read(int num) { return gpio_read(num); } +void IRAM gpio_interrupt_handler(uint8_t gpio_num) { + struct forth_event event = { + .event_type = EVT_GPIO, + .event_time_ms = xTaskGetTickCountFromISR() * portTICK_PERIOD_MS, + .event_time_us = sdk_system_get_time(), + .event_payload = gpio_num, + }; + forth_add_event_isr(&event); +} + void forth_gpio_set_interrupt(int num, int int_type) { - gpio_set_interrupt(num, int_type); + gpio_set_interrupt(num, int_type, gpio_interrupt_handler); } void forth_pwm_freq(int freq) { @@ -37,25 +47,6 @@ void forth_pwm_duty(int duty) { pwm_set_duty((uint16_t) (duty & 0xFFFF)); } -void __attribute__((weak)) IRAM gpio_interrupt_handler(void) { - uint32_t status_reg = GPIO.STATUS; - GPIO.STATUS_CLEAR = status_reg; - uint8_t gpio_idx; - while ((gpio_idx = __builtin_ffs(status_reg))) { - gpio_idx--; - status_reg &= ~BIT(gpio_idx); - if (FIELD2VAL(GPIO_CONF_INTTYPE, GPIO.CONF[gpio_idx])) { - struct forth_event event = { - .event_type = EVT_GPIO, - .event_time_ms = xTaskGetTickCountFromISR() * portTICK_RATE_MS, - .event_time_us = sdk_system_get_time(), - .event_payload = gpio_idx - }; - forth_add_event_isr(&event); - } - } -} - #define WAIT_FOR_PIN_STATE(state) \ while (gpio_read(pin) != (state)) { \ if (xthal_get_ccount() - start_cycle_count > timeout_cycles) { \ diff --git a/arch/esp8266/rtos/user/forth_time.c b/arch/esp8266/rtos/user/forth_time.c index ab677a1..b1e7e69 100644 --- a/arch/esp8266/rtos/user/forth_time.c +++ b/arch/esp8266/rtos/user/forth_time.c @@ -3,11 +3,11 @@ #include "espressif/esp_common.h" void forth_delay_ms(int millis) { - vTaskDelay(millis / portTICK_RATE_MS); + vTaskDelay(millis / portTICK_PERIOD_MS); } int forth_time_ms() { - return xTaskGetTickCount() * portTICK_RATE_MS; + return xTaskGetTickCount() * portTICK_PERIOD_MS; } /** diff --git a/arch/esp8266/rtos/user/user_main.c b/arch/esp8266/rtos/user/user_main.c index fba0e0a..9e1e3a2 100644 --- a/arch/esp8266/rtos/user/user_main.c +++ b/arch/esp8266/rtos/user/user_main.c @@ -15,5 +15,5 @@ void user_init(void) { uart_set_baud(0, 115200); printf("Punyforth loading..\n"); init_event_queue(); - xTaskCreate(forth_init, (signed char*) "punyforth", 640, NULL, 2, NULL); + xTaskCreate(forth_init, "punyforth", 640, NULL, 2, NULL); } From db504831511543b469198245f9ab98f1230ef1fa Mon Sep 17 00:00:00 2001 From: zeroflag Date: Mon, 16 May 2016 11:50:38 -0400 Subject: [PATCH 028/225] sdk upgrade --- arch/esp8266/rtos/user/forth_gpio.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/esp8266/rtos/user/forth_gpio.c b/arch/esp8266/rtos/user/forth_gpio.c index 13b5f4d..546cfa7 100644 --- a/arch/esp8266/rtos/user/forth_gpio.c +++ b/arch/esp8266/rtos/user/forth_gpio.c @@ -25,18 +25,18 @@ int forth_gpio_read(int num) { return gpio_read(num); } -void IRAM gpio_interrupt_handler(uint8_t gpio_num) { +void IRAM gpio_intr_handler(uint8_t gpio_num) { struct forth_event event = { .event_type = EVT_GPIO, .event_time_ms = xTaskGetTickCountFromISR() * portTICK_PERIOD_MS, .event_time_us = sdk_system_get_time(), - .event_payload = gpio_num, + .event_payload = (int) gpio_num, }; forth_add_event_isr(&event); } void forth_gpio_set_interrupt(int num, int int_type) { - gpio_set_interrupt(num, int_type, gpio_interrupt_handler); + gpio_set_interrupt(num, int_type, gpio_intr_handler); } void forth_pwm_freq(int freq) { From c3ac410d83e500acca4595258c1279c35a48c876 Mon Sep 17 00:00:00 2001 From: zeroflag Date: Wed, 18 May 2016 14:49:47 -0400 Subject: [PATCH 029/225] freemem is moved to core --- arch/esp8266/rtos/user/forth_wifi.c | 4 ++++ generic/words.S | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/esp8266/rtos/user/forth_wifi.c b/arch/esp8266/rtos/user/forth_wifi.c index 65945bf..942596c 100644 --- a/arch/esp8266/rtos/user/forth_wifi.c +++ b/arch/esp8266/rtos/user/forth_wifi.c @@ -4,6 +4,10 @@ #include "dhcpserver.h" #include "punycommons.h" + +// workaround see github.com/SuperHouse/esp-open-rtos/issues/140 +void sdk_hostap_handle_timer(void *cnx_node) { } + int forth_wifi_set_opmode(int mode) { return sdk_wifi_set_opmode(mode); } diff --git a/generic/words.S b/generic/words.S index 31225f8..e143e32 100644 --- a/generic/words.S +++ b/generic/words.S @@ -268,10 +268,6 @@ defword "heap-end",8,heap_end,REGULAR .int xt_btick, _M end_dictionary .int xt_exit -defword "freemem",7,freemem,REGULAR - .int xt_heap_end, xt_dp, xt_minus - .int xt_exit - defword "align!",6,align_bang,REGULAR /* ( -- ) */ .int xt_here, xt_align, xt_var_dp, xt_store .int xt_exit From 637516a634ea2279119dcb88d8963e0411f60062 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Wed, 28 Dec 2016 01:11:47 +0100 Subject: [PATCH 030/225] sdk upgrade --- arch/esp8266/bin/punyforth.bin | Bin 289616 -> 291536 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/arch/esp8266/bin/punyforth.bin b/arch/esp8266/bin/punyforth.bin index cb1980172c93a2d6065c1810a4add520d6146133..9f07cee1400402c8c521030a6edadbfde793773b 100644 GIT binary patch delta 80913 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

Y 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'b{eMfa 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 gzbB^6l*i3^o*>V*mgE From ebeef778d400cab36eeb0cac5b6e81dcd9436380 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Thu, 29 Dec 2016 15:22:45 +0100 Subject: [PATCH 031/225] added block api + screen editor --- arch/esp8266/forth/flash.forth | 92 ++++++++++++++++++++++++++++++++-- 1 file changed, 89 insertions(+), 3 deletions(-) diff --git a/arch/esp8266/forth/flash.forth b/arch/esp8266/forth/flash.forth index 3c42dc2..00e605b 100644 --- a/arch/esp8266/forth/flash.forth +++ b/arch/esp8266/forth/flash.forth @@ -3,6 +3,92 @@ 2 constant: FLASH_TIMEOUT 3 constant: FLASH_UNKNOWN -\ example reading flash -\ 128 array: buffer -\ 128 0 buffer 512000 read-flash +( blocks ) + +exception: EBLOCK +4096 constant: SIZE +hex: 51000 init-variable: block0 +FALSE init-variable: dirty +SIZE buffer: buf +variable: addr + +: check-err ( code -- | EBLOCK ) + dup FLASH_OK <> if + print: 'SPI FLASH ERROR: ' . cr + EBLOCK throw + then + drop ; + +: >sector ( block# -- sector# ) SIZE / ; + +: flush ( -- ) + dirty @ if + addr @ >sector erase-flash check-err + SIZE buf addr @ write-flash check-err + FALSE dirty ! + then ; + +: block ( block# -- addr ) + flush + SIZE * block0 @ + addr ! + SIZE buf addr @ read-flash check-err + FALSE dirty ! + buf ; + +: update ( -- ) TRUE dirty ! ; + +( screen editor ) + +128 constant: COLS +32 constant: ROWS + +: row ( y -- addr ) COLS * buf + ; +: ch ( y x -- addr ) swap row + ; +: type# ( y -- ) dup 10 < if space then . space ; + +: list ( block# -- ) + block drop + ROWS 0 do + i type# + i row COLS type-counted + loop ; + +\ editor command: delete row by filling it with spaces +: d ( y -- ) + COLS 2 - 0 do 32 over i ch c! loop + 13 over COLS 2 - ch c! + 10 over COLS 1- ch c! + drop + update ; + +: copy-row ( dst-y src-y -- ) + COLS 0 do + 2dup i ch c@ swap i ch c! + loop + 2drop ; + +\ editor command: kill row +: k ( y -- ) + ROWS 1- swap do i i 1+ copy-row loop + ROWS 1- d ; + +\ editor command: clear screen +: c ( -- ) ROWS 0 do i d loop ; + +\ editor command: overwrite row +: r: ( y "line" -- ) + dup d + row + begin + key dup line-break? invert + while + over c! 1+ + repeat + 2drop ; + +\ editor command: prepends empty row before the given y +: p ( y -- ) + dup ROWS 1- do + i i 1- copy-row + -1 +loop + d ; \ No newline at end of file From 1e834d80c9438c7312fbef8c1409dda79b3e6196 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Thu, 29 Dec 2016 16:04:39 +0100 Subject: [PATCH 032/225] refac. --- arch/esp8266/forth/flash.forth | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/arch/esp8266/forth/flash.forth b/arch/esp8266/forth/flash.forth index 00e605b..4751587 100644 --- a/arch/esp8266/forth/flash.forth +++ b/arch/esp8266/forth/flash.forth @@ -10,7 +10,7 @@ exception: EBLOCK hex: 51000 init-variable: block0 FALSE init-variable: dirty SIZE buffer: buf -variable: addr +variable: offs : check-err ( code -- | EBLOCK ) dup FLASH_OK <> if @@ -23,15 +23,15 @@ variable: addr : flush ( -- ) dirty @ if - addr @ >sector erase-flash check-err - SIZE buf addr @ write-flash check-err + offs @ >sector erase-flash check-err + SIZE buf offs @ write-flash check-err FALSE dirty ! then ; : block ( block# -- addr ) flush - SIZE * block0 @ + addr ! - SIZE buf addr @ read-flash check-err + SIZE * block0 @ + offs ! + SIZE buf offs @ read-flash check-err FALSE dirty ! buf ; @@ -53,12 +53,11 @@ variable: addr i row COLS type-counted loop ; -\ editor command: delete row by filling it with spaces -: d ( y -- ) +\ editor command: blank row +: b ( y -- ) COLS 2 - 0 do 32 over i ch c! loop 13 over COLS 2 - ch c! - 10 over COLS 1- ch c! - drop + 10 swap COLS 1- ch c! update ; : copy-row ( dst-y src-y -- ) @@ -67,17 +66,17 @@ variable: addr loop 2drop ; -\ editor command: kill row -: k ( y -- ) +\ editor command: delete row +: d ( y -- ) ROWS 1- swap do i i 1+ copy-row loop - ROWS 1- d ; + ROWS 1- b ; \ editor command: clear screen -: c ( -- ) ROWS 0 do i d loop ; +: c ( -- ) ROWS 0 do i b loop ; \ editor command: overwrite row : r: ( y "line" -- ) - dup d + dup b row begin key dup line-break? invert @@ -91,4 +90,4 @@ variable: addr dup ROWS 1- do i i 1- copy-row -1 +loop - d ; \ No newline at end of file + b ; \ No newline at end of file From 75532979a81e3df58b3835764f56a136cf2e4a93 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Fri, 30 Dec 2016 20:34:10 +0100 Subject: [PATCH 033/225] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c2c3e27..67a73d9 100644 --- a/README.md +++ b/README.md @@ -298,6 +298,8 @@ But this won't work with do loops. The reason for this is because do loops store loop ; ``` + An UNLOOP is required for each nesting level before the definition may be EXITed. + Control structres are compile time words with no interpretation semantics. They can be used only in compilation mode, that is inside a word definition. ### Exception handling From 954001b2aad1223bfdb806f1321dc21698bb93f3 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Fri, 30 Dec 2016 20:34:40 +0100 Subject: [PATCH 034/225] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 67a73d9..ddde0a5 100644 --- a/README.md +++ b/README.md @@ -298,7 +298,7 @@ But this won't work with do loops. The reason for this is because do loops store loop ; ``` - An UNLOOP is required for each nesting level before the definition may be EXITed. + An *unloop* is required for each nesting level before the definition may be *exited*. Control structres are compile time words with no interpretation semantics. They can be used only in compilation mode, that is inside a word definition. From b98ebb8757d2baab65f565da33127622aa392272 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Fri, 30 Dec 2016 20:40:42 +0100 Subject: [PATCH 035/225] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ddde0a5..e06f1a6 100644 --- a/README.md +++ b/README.md @@ -217,6 +217,8 @@ The *limit* and *start* before the word *do* defines the number of times the loo *Do* loops iterate through integers by starting at *start* and incrementing until you reach the *limit*. The word *i* pushes the loop index onto the stack. In a nested loop, the inner loop may access the loop variable of the outer loop by using the word *j*. +It is important to know that *Do* loops store the loop index on the return stack. You can break the semantics of *i* and *j* if you use the return stack to store temporary data. Also you can't simply *exit* a word from inside a do loop without clearing the return stack first. See *unloop* for more information. + For example: ```forth 5 0 do i . loop \ prints 01234 From 975c2b6bbb81dbfb5d689dec7362f43960684af4 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Fri, 30 Dec 2016 20:43:45 +0100 Subject: [PATCH 036/225] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e06f1a6..7463bd4 100644 --- a/README.md +++ b/README.md @@ -217,8 +217,6 @@ The *limit* and *start* before the word *do* defines the number of times the loo *Do* loops iterate through integers by starting at *start* and incrementing until you reach the *limit*. The word *i* pushes the loop index onto the stack. In a nested loop, the inner loop may access the loop variable of the outer loop by using the word *j*. -It is important to know that *Do* loops store the loop index on the return stack. You can break the semantics of *i* and *j* if you use the return stack to store temporary data. Also you can't simply *exit* a word from inside a do loop without clearing the return stack first. See *unloop* for more information. - For example: ```forth 5 0 do i . loop \ prints 01234 @@ -242,6 +240,8 @@ If the increment is negative then *limit* is inclusive. 0 8 do i . -2 +loop \ prints 86420 ``` +It is important to know that *Do* loops store the loop index on the return stack. You can break the semantics of *i* and *j* if you use the return stack to store temporary data. Also you can't simply *exit* a word from inside a do loop without clearing the return stack first. See *unloop* for more information. + #### Condition-controlled loops ##### until loop From 398ba5909be9ae8e5bf370868e508418ad71e020 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Fri, 30 Dec 2016 20:52:16 +0100 Subject: [PATCH 037/225] Update README.md --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index 7463bd4..fa2f489 100644 --- a/README.md +++ b/README.md @@ -302,6 +302,21 @@ But this won't work with do loops. The reason for this is because do loops store An *unloop* is required for each nesting level before the definition may be *exited*. +```forth +: nested-exit + 5 0 do + 5 i 1+ do + j i + 7 = if + i . space j . cr + unloop unloop \ clear the return stack before exiting + exit + then + loop + loop ; + +``` + + Control structres are compile time words with no interpretation semantics. They can be used only in compilation mode, that is inside a word definition. ### Exception handling From 2e77e09d0ffaf2895efa496eec90b9dc7e072949 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Fri, 30 Dec 2016 20:52:44 +0100 Subject: [PATCH 038/225] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index fa2f489..5f435b6 100644 --- a/README.md +++ b/README.md @@ -313,10 +313,8 @@ But this won't work with do loops. The reason for this is because do loops store then loop loop ; - ``` - Control structres are compile time words with no interpretation semantics. They can be used only in compilation mode, that is inside a word definition. ### Exception handling From 0313c752973dcd544038e0c423f7c1be90623d7b Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Fri, 30 Dec 2016 20:53:18 +0100 Subject: [PATCH 039/225] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5f435b6..26b181a 100644 --- a/README.md +++ b/README.md @@ -303,7 +303,7 @@ But this won't work with do loops. The reason for this is because do loops store An *unloop* is required for each nesting level before the definition may be *exited*. ```forth -: nested-exit +: nested-exit ( -- ) 5 0 do 5 i 1+ do j i + 7 = if From 0f974a592e2e6e18eaf74686f42ea23cdb11c64a Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Fri, 30 Dec 2016 20:54:30 +0100 Subject: [PATCH 040/225] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 26b181a..e038170 100644 --- a/README.md +++ b/README.md @@ -308,7 +308,7 @@ But this won't work with do loops. The reason for this is because do loops store 5 i 1+ do j i + 7 = if i . space j . cr - unloop unloop \ clear the return stack before exiting + unloop unloop \ clear the return stack before exiting exit then loop From c163de6f588739284fc18fea63d8ed3246292647 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Fri, 30 Dec 2016 21:35:53 +0100 Subject: [PATCH 041/225] https://github.com/zeroflag/punyforth/issues/7 --- arch/esp8266/forth/wifi.forth | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/esp8266/forth/wifi.forth b/arch/esp8266/forth/wifi.forth index ec6b954..872e041 100644 --- a/arch/esp8266/forth/wifi.forth +++ b/arch/esp8266/forth/wifi.forth @@ -35,8 +35,9 @@ exception: EWIFI \ Creates an access point mode with the given properties \ For example: \ 172 16 0 1 >ipv4 wifi-set-ip -\ 1 3 0 AUTH_WPA2_PSK str: "1234567890" str: "my-ssid" wifi-softap -\ 4 172 16 0 2 >ipv4 dhcpd-start +\ 4 3 0 AUTH_WPA2_PSK str: "1234567890" str: "my-ssid" wifi-softap +\ 8 172 16 0 2 >ipv4 dhcpd-start +\ max-connections should be <= max-leases : wifi-softap ( max-connections channels hidden authmode password ssid -- | throws:EWIFI ) SOFTAP_MODE wifi-set-mode check-status wifi-set-softap-config check-status ; From eebbb38677a3b7fbd2d7f1a102cc1f060dbb7c31 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Fri, 30 Dec 2016 21:39:57 +0100 Subject: [PATCH 042/225] Update README.md --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e038170..8465b45 100644 --- a/README.md +++ b/README.md @@ -690,9 +690,11 @@ In AP mode, the ESP8266 acts as an central connection point, which wireless clie ```forth 172 16 0 1 >ipv4 wifi-set-ip \ AP ip is 172.16.0.1 -1 3 0 AUTH_WPA2_PSK str: "1234567890" str: "my-ssid" wifi-softap -4 172 16 0 2 >ipv4 dhcpd-start \ dhcp lease time = 4, first client ip is 172.16.0.2 -``` +4 3 0 AUTH_WPA2_PSK str: "1234567890" str: "my-ssid" wifi-softap \ max connections = 4 +8 172 16 0 2 >ipv4 dhcpd-start \ dhcp max_leases = 8, first client ip is 172.16.0.2 +``` + +The dhcp max_leases parameter should not be smaller than the maximum allowed connections. The Wi-Fi settings are persistently stored by the ESP8266, there is no need to setup the Wi-Fi at every startup. From 2163d9fc9dd1ccea2beea2c68a7539fc7e0aa0d0 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Sat, 31 Dec 2016 00:27:00 +0100 Subject: [PATCH 043/225] wifi softap disconnect workaround https://github.com/SuperHouse/esp-open-rtos/issues/140 --- arch/esp8266/bin/punyforth-ap-workaround.bin | Bin 0 -> 291536 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 arch/esp8266/bin/punyforth-ap-workaround.bin diff --git a/arch/esp8266/bin/punyforth-ap-workaround.bin b/arch/esp8266/bin/punyforth-ap-workaround.bin new file mode 100644 index 0000000000000000000000000000000000000000..dcb416754e5c95835c957cb79d51ab0cf6d9f3e7 GIT binary patch literal 291536 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

Pc6A`lcQapL_yf^_;A>yj9Kg_(6#bQR)_lA}SF1 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 Mee%@O=i}7>0m86~`~Uy| literal 0 HcmV?d00001 diff --git a/screenshot/sonoff3.png b/screenshot/sonoff3.png new file mode 100644 index 0000000000000000000000000000000000000000..58730f21c745a6dcaede5c1934fa867f16dd83c3 GIT binary patch literal 23310 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 literal 0 HcmV?d00001 From 5f2e0652ec53c84256731c63f4ce0e355cbab5d6 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Sat, 17 Dec 2016 20:12:46 +0100 Subject: [PATCH 023/225] sonoff picture --- screenshot/sonoff3.png | Bin 23310 -> 20735 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/screenshot/sonoff3.png b/screenshot/sonoff3.png index 58730f21c745a6dcaede5c1934fa867f16dd83c3..93a088112329611f4d4eec0b5489153f1730049f 100644 GIT binary patch literal 20735 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 From 7132099346e9bd781fca691752729a4e982d798a Mon Sep 17 00:00:00 2001 From: zeroflag Date: Mon, 16 May 2016 03:39:18 -0400 Subject: [PATCH 024/225] fixed crlf in case of undefined word --- generic/outerinterpreter.S | 1 + 1 file changed, 1 insertion(+) diff --git a/generic/outerinterpreter.S b/generic/outerinterpreter.S index 4531ecb..2e4a0e7 100644 --- a/generic/outerinterpreter.S +++ b/generic/outerinterpreter.S @@ -39,6 +39,7 @@ not_found_in_dictionary: // word was not found in the dictiona invalid_number: .int xt_btick, undef_word_error, xt_type .int xt_typecounted + .int xt_btick, 13, xt_emit .int xt_btick, 10, xt_emit .int xt_tib, xt_inputlen, xt_fetch, xt_plus, xt_toin, xt_store // skip rest of the inputbuffer .int xt_openbracket // switch back to interpret mode From 8c8617cb345eac65577af2bf0a4fadcdd204fd64 Mon Sep 17 00:00:00 2001 From: Attila Magyar Date: Sun, 18 Dec 2016 20:24:47 +0100 Subject: [PATCH 025/225] added sonoff module --- arch/esp8266/bin/modules.py | 2 ++ arch/esp8266/bin/punyforth.bin | Bin 289600 -> 289616 bytes arch/esp8266/forth/sonoff.forth | 29 +++++++++++++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 arch/esp8266/forth/sonoff.forth diff --git a/arch/esp8266/bin/modules.py b/arch/esp8266/bin/modules.py index 00d6bdc..4286fc2 100644 --- a/arch/esp8266/bin/modules.py +++ b/arch/esp8266/bin/modules.py @@ -21,6 +21,7 @@ 'flash' : '../forth/flash.forth', 'dht22' : '../forth/dht22.forth', 'ping' : '../forth/ping.forth', + 'sonoff' : '../forth/sonoff.forth', 'example-game-of-life' : '../forth/examples/example-game-of-life.forth', 'example-ircbot' : '../forth/examples/example-ircbot.forth', 'example-philips-hue' : '../forth/examples/example-philips-hue.forth', @@ -49,6 +50,7 @@ 'flash' : ['core'], 'dht22' : ['core', 'gpio'], 'ping': ['core', 'gpio'], + 'sonoff': ['core', 'gpio'], 'tcp-repl' : ['core', 'netcon', 'wifi'], 'example-game-of-life' : ['core', 'ssd1306-spi'], 'example-ircbot' : ['core', 'netcon', 'tasks', 'gpio'], diff --git a/arch/esp8266/bin/punyforth.bin b/arch/esp8266/bin/punyforth.bin index 597d9fef2bf217fd140c074715af4df372e71b34..cb1980172c93a2d6065c1810a4add520d6146133 100644 GIT binary patch delta 24293 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