-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
request for Memory map of Punyforth #35
Comments
This was the picture of the memory map, I can not add it as such on my message.... |
I continue exploring punyforth and I have tests and results core.forth alone gives freemem of 16.776 bytes free tcp-repl with all it dependencies and I have been looking at flash.forth dependencies, it has only 1 needs "core.forth" Questions : is this editor working ? It seems it saves to Flash memory, like I previously asked I will try to understand more..... apparently having Rtos and open-boot in the system Kind regards |
No, the text is not copied into the RAM. Punyforth compiles indirect thread code from the text and fills up the dictionary.
This sounds realistic. The freemem word shows the available forth dictionary space, not the free system memory. There is an osfreemem word for getting the free memory from RTOS. Punyforth allocates about 24k dictionary space which means that your program and its dependencies consume about 22k. When I was experimenting with larger dictionary spaces in the past, the system became unstable because not enough memory was left for RTOS. It usually crashed inside the lwip (tcp stack) code when it tried to allocate netcon buffers. So I decided to allocate only 24 forth heap, and leave the rest to RTOS. You can experiment with larger memory settings by changing this line and recompile Punyforth https://github.com/zeroflag/punyforth/blob/master/generic/data.S#L32 If you don't use the wifi and the tcp stack then it'll probably Ok. But an easier way to fix this is to remove unused words from the uber.forth.
There is an experimental editor in flash.forth but you need to use the --block-format parameter of modules.py when generating uber.forth. |
Ok excellent ! In your opinion if I place .space to 50000 will it work ? 30000, 35000 ? which are the limits ? Can we expect in future a memory map of punyforth within the ESP8266 ? I would like to help |
As far as I remember 30k should work but it will become unstable if you use the WiFi a lot.
Punyforth is not a bare metal Forth (at least currently) but it runs as an RTOS task. This task is created by calling xTaskCreate, which allocates some memory dynamically. But I don't know how the memory allocation is handled internally.
That's great. I'm sure this will be useful for others too. |
Thanks Attila ! |
FYI I made some optimalization in variable: and constant: that reduces their memory consumption. This should buy you some additional memory. |
Excelent ! THank you very much ! |
Hello Attila, |
Hi Gerard, I was thinking about TOS to register optimization earlier (mainly because of speed) but decided not to do it because some of the caveats. There are words like sp@ and sp! which would be difficult to use if TOS was in a register. Also one can write a code that treats the stack as an array which would likely break with TOS optimization. Task switching and exception handling would likely be more complicated as well. Attila |
Hello Attila, defprimitive "sp@",3,spat,REGULAR defprimitive "sp!",3,spstore,REGULAR Gérard |
Right. I just don't think the extra complexity would worth the effort. But if you think so feel free to send a PR with the changes required. I'm not against it, I know other Forths do this but mainly because of speed (which is not the main concern) and not memory usage. |
Hello Attila, |
@GerardSontag no I don't know any unfortunately. But there are some projects in github like the esp port of microphython or forthright which can be used as an example. The API of FreeRTOS is well documented (http://www.freertos.org/a00106.html). |
It seems that the flash rom is so big enough to add more compiled code into it. So if someone can design the metacompiler to append the code to it that would be great, right? I'll try, and you. |
Hi, everybody, |
Hi holinepu, Could you elaborate the problem with create does>? I'm trying to recall how it works. create: always creates a new word with an enterdoes codeword/entrypoint instead of entercol (which is the usual entrypoint for colon definitions). The enterdoes expects a behaviour pointer (which is an execution token of an other word) after the codeword and some arbitrary data after this. It'll push the location of the data part onto the stack and invoke the behaviour word. The default behaviour word is nop, but does> overwrites it with a user supplied word. : create: createheader enterdoes , ['] nop cell + , ; \ default behaviour is nop, does> overwrites this Here you can see that it creates a dictionary header and inserts the enterdoes codeword as an entry point. After that it inserts the xt of nop. The data part is not initialized. : does> r> lastword link>body ! ; does> replaces the behaviour part with the user supplied word (from the return stack). So a constant for example can be defined: : constant: cerate: , does> @ ; But punyforth uses distinct codewords for variable/constants to save some space. |
Dear Attila, variable: can be defined in rom area too, so long as it can provide a number which is a ram address. : variable.base.address hex: 3FFFF800 ; \ 3FFFF800 can be changed according to need.
: create:(ram) var(ram) -4 variable.counter +! ; var(ram) v1 see v1 see v2 see v3 \ ****************************************************************************************** see create: \ ****************************************************************************************** |
The decompiler program compiled by punyForth in RAM can be relocated in any address of flash rom now. |
@holinepu is the source code of this project available on github? |
hi, Attila Magyar Thank you for your interest in the source code of punyForth development system. Please bear in mind that the system is still under development so it looks not very clean. We need the help to promote the system so as most users will like it. you can find the code here:https://groups.yahoo.com/neo/groups/armForth/files/esp8266%20punyForth/
在 2018年9月11日 星期二 下午9:14:57 [GMT+8], Attila Magyar<notifications@github.com> 寫道:
@holinepu is the source code of this project available on github?
|
The program compiled by punyforth in RAM area can now be moved to any flash rom area by executing ( lfa= ) 40218114 ( 00000000 ) ( cfa= 4021811C = 40239800 ) org t:+ dup |
hi, |
寄件者: chang luke <holinepu@yahoo.com.tw>收件者: Peter Forth <peter4th2017@gmail.com>寄件時間: 2018年9月29日 星期六 上午11:46:25 [GMT+8]主旨: Re: Punyforth and Win32forth , etc
hi, Peter Forth and all the others I have some experience in ASYST which use OVERLAY a lot. I still keep one at hand. Frankly speaking I didn't use it very well at that time. Maybe I'll recall that again.> So the technical word, to define your work is you have created an "OVERLAY capability to PunyForth" !
If it has enough RAM space then we don't have to have OVERLAY to switch between different applications. Still if we can get the OVERLAY capability that would be better. It is better to have than nothing, right?
The attached file temp.rar is for wifi and that sort of things. It works fine. I tried to compile ubernew163.forth into it. It was not very stable, so I switch to the other version ( older ? ) temp1.rar and ran dis-compiler in punyforth very successfully. I urge you guys to try this version out first to identify with our endeavor. Ok!? Best regard Be Forth with you holi ( luke )
as for cross-compiler development system can still be used in cooperative with punyforth. under win32for ( 4.2.67x ) fload punyforth163.f see words cls words'
see /mod \ ******************************************************************************* \ 40218190 40218184 \ 40218194 04 2F 6D 6F 64 \ ------------------------------------------------------------------------------- code /mod ( 4021819C 402398BC ) ( 402398BC 38 0F 4B FF ) {drop>R3} ( 402398C0 28 0F 4B FF ) {drop>R2} ( 402398C4 12 C1 E4 ) R1-1C ( 402398C7 09 61 ) (R1+18)=R0 ( 402398C9 89 41 ) (R1+10)=R8 ( 402398CB D9 31 ) (R1+0C)=RD ( 402398CD E9 21 ) (R1+8)=RE ( 402398CF F2 61 01 ) (R1+4)=RF ( 402398D2 01 F9 FF ) R0=40101168 \ ( 402398B8 )= 40101168 ( 402398D5 C0 00 00 ) callx0_R0 ( 402398D8 F8 11 ) RF=(R1+4) ( 402398DA E8 21 ) RE=(R1+8) ( 402398DC D8 31 ) RD=(R1+0C) ( 402398DE 88 41 ) R8=(R1+10) ( 402398E0 08 61 ) R0=(R1+18) ( 402398E2 12 C1 1C ) R1+1C ( 402398E5 F2 CF FC 39 0F ) {dup<R3} ( 402398EA F2 CF FC 29 0F ) {dup<R2} ( 402398EF 88 0E ) R8=(RE) ( 402398F1 4B EE ) RE+4 ( 402398F3 98 08 ) R9=(R8) ( 402398F5 A0 09 00 ) jmp_R9
在 2018年9月29日 星期六 上午5:40:13 [GMT+8], Peter Forth<peter4th2017@gmail.com> 寫道:
Thanks, I'll check it out.
When I used to program in LMI for DOS those kind of files that were binaries pre-compiled, were
called -- OVERLAYS --.(other Forths also named this kind of binaries Overlays, and some other compilers
too, I think Turbo C and Turbo Pascal, had that possiblity too, I do not remember well)
So the technical word, to define your work is you have created an "OVERLAY capability to PunyForth" !
We used this to store the EDITOR, the ASSEMBLER the Native code compiler, and any TOOL that
could be used for a task, and then when the task was complete, was not necessary anymore to have
it on RAM, this was very useful because RAM was limited to 64K. (The other secondary use was for distribution
of software tools, without giving a third party access to your full source. )
Thanks again
Peter
On Fri, Sep 28, 2018 at 12:50 PM chang luke <holinepu@yahoo.com.tw> wrote:
hi, The compiled code in RAM area can now be moved to flash ROM by executing 402688c0 >flash. And after executing forget backref, we can add new program into fresh RAM and later move to another address in flash ROM, say, 40260000 >flash. We can link it to the previous one and so on. good luck! holi
在 2018年9月23日 星期日 下午5:01:08 [GMT+8], chang luke<holinepu@yahoo.com.tw> 寫道:
Hi Peter Forth ! It seems like that you didn't join the win32forth groups before. It's kind of pity that the Win32forth discussion groups lacking such kind of professional guy like you to join. I seldom join the discussion but still I can get the new information from there. I strongly urge you to subscribe win32forth discussion forum so as you can get the newly updated files from ARMForth groups by killing two birds with one stone. For now I just send you the newly updated file combined into one file to you so as you and the others don't have to find a way around. And here you have to go throw the following procedures to expand the memory of the application memory. Tell me if you've succeeded.
************************************************************************************************ before floading this file, we have to prepare the followings....\ with-img fsave Win32for <-- modifying this line to the next line. ( in extend.f line 185 ) with-img fsave F.exe \ thanks Cheng-Hong Chen 2010.1.1**** methods to extend memory size **** win32for \ enter win32for.4.2.671 sys \ enter dos win32for fload meta setsize bye \ adding 29Meg byte to application, 9Meg byte to system fkernel fload extend\ fsave f.exe \ save f.exe as a working horse. put it on the desktop.
also copy WinIo.dll, WinIo.sys, WINIO.VXD to the directory the same as Win32Forth.exe.************************************************************************************************
fload punyforth148.f words' <-- you'll see the dis-compiled+dis-assembled list
ubernew147.forth combines uber.forth and decompiler that I added.
在 2018年9月23日 星期日 上午7:11:51 [GMT+8], Peter Forth<peter4th2017@gmail.com> 寫道:
Hi Mr Chang !
Thanks for your suggestion. I will try out a bit more in the future to test your add ons for Punyforth.
It seems to be very interesting tough !
I would like to participate from your YAhoo Forum, but I can not enter. Sory for that.
I was thinking is it not possible, you translate this forum to another platform ?
Kind regards
Peter
On Thu, Sep 20, 2018 at 11:39 AM, chang luke <holinepu@yahoo.com.tw> wrote:
Hi Peter Forth Thank you for giving me the opportinuity to introduce the esp8266 punyForth development system as you already knew.
I like very much Punyforth.,
I started punyForth development system a year ago. I almost completed the decompiler that under punyforth, unfortunately it was not very stable.Only very recently I was invoked by forthers in Taiwan then I started the development of the whole system again.
I triyed to enter YAHOO Group using your link, I could not. It seems I must register first...
It's a big problem for almost members of figtaiwan. I couldn't help. Maybe I can send you by email or so.Or you can join the the conversation on GitHub with the search " request for memory map of punyforth #35 " to know more about it.
Yes, I would like to use Flash external storage to load files to Punyforth.> Did you write any external Flash extension for Punyforth ? One of my problems, with Punyforth, was the lack of program memory.
You can load the source code from external device and compile it into RAM, but with limited RAM you hardly can extend your program easily. It is 24k byte of RAM to render your code. Whereas with the esp8266 punyforth development system we can cooperate punyforth itself with cross-compiler of the development system to attain the maximum flash memory to use as the code space. As for flash external storage I haven't consider it yet.
I said this to Attila. Regrettable I do not have Attilas Email.> I only chatted 1 or 2 times with him over Github, but I do not like this kind of communication. I prefer Email, or Facebook.
He replied me recently on GitHub, but he didn't mention how to expand the code to flash memory. Instead he asked for the source code of the development system.Frankly speaking I prefer every forther can design the development system in a short period of time so as to showoff other language users to say how easy forth is.
I can also send you my program if you like, that talks from Win32forth to Nodemcu> it is not finished, it is an open program , more as "concept" to show what can> be done using Win32forth + VisualFOrth (making the screens and graphics) and ESP8266 Punyforth.
I failed to try VisualForth before, as it is not an urgent event for me. But when it comes that it can combine punyforth with win32forth/VisualForth, I'll be interest in it.Come on, give me one!
It is a good combination for teachers of technology school.I'll say that the development system can be the best teaching material for all grade of school system. Believe it not!? You'll see the development system you've never seen before, see list file for sure!
By the way, you've been using win32forth ( verion 6.15.03 ) intensively. It'll be easy for you to read the program of esp8266 punyforth development system. That way you'll find the main part of it in a glance, I hope so.I insist using win32forth 4.2.67x version for all my design. It's quit stable, whileas other not. Or do you interest in porting the program from 4.2.67x to 6.15.03.
Best regard holi ( Luke Chang )
FLOAD punyforth146.f cls words' \ you'll the decompiled+disassembled list of esp8266 punyforth with decompiler in it.h1 cls words' \ h0 cls words' <-- to see the difference.om cls words' see whatever you want.
see drop
see wifi-station-connect \ ****************************** ****************************** ******************* \ ****************************** ****************************** ******************* \ 4021889C 40218888 \ 402188A0 14 77 69 66 69 2D 73 74 61 74 69 6F 6E 2D 63 6F 6E 6E 65 63 74 \ ------------------------------ ------------------------------ ------------------- code wifi-station-connect ( 402188B8 4023A6DC ) ( 4023A6DC 12 C1 E4 ) R1-1C ( 4023A6DF 09 61 ) (R1+18)=R0 ( 4023A6E1 89 41 ) (R1+10)=R8 ( 4023A6E3 D9 31 ) (R1+0C)=RD ( 4023A6E5 E9 21 ) (R1+8)=RE ( 4023A6E7 F2 61 01 ) (R1+4)=RF ( 4023A6EA 10 11 20 ) R1oR1 ( 4023A6ED 05 36 D9 ) call_40213A50 ( 4023A6F0 F8 11 ) RF=(R1+4) ( 4023A6F2 E8 21 ) RE=(R1+8) ( 4023A6F4 D8 31 ) RD=(R1+0C) ( 4023A6F6 88 41 ) R8=(R1+10) ( 4023A6F8 08 61 ) R0=(R1+18) ( 4023A6FA 12 C1 1C ) R1+1C ( 4023A6FD F2 CF FC 29 0F ) {dup<R2} ( 4023A702 88 0E ) R8=(RE) ( 4023A704 4B EE ) RE+4 ( 4023A706 98 08 ) R9=(R8) ( 4023A708 A0 09 00 ) jmp_R9
Please do flash it into esp8266 right now! by visiting:https://groups.yahoo.com/neo/ groups/armForth/files/esp8266% 20punyForth/
You can download it from your mobile phone. I can.
============================== ============================== ============================== ============Hi Chang luke ! , holinepu@yahoo.com.tw(this email of yours was given to me kindly from Wesley Fig Taiwan)
Nice to meet you and thanks for your kind words on my video !
I like very much Punyforth., I triyed to enter YAHOO Group using yourlink, I could not. It seems I must register first...
Yes, I would like to use Flash external storage to load files to Punyforth.Attila sayd he did one or the other thing, but I could not run his examples...(this was over 1 year ago) I do not know how is it now.
Did you write any external Flash extension for Punyforth ? One of my problems, with Punyforth, was the lack ofprogram memory. I said this to Attila. Regrettable I do not have Attilas Email.I only chatted 1 or 2 times with him over Github, but I do not like this kind ofcommunication. I prefer Email, or Facebook.
I am on the Win32forth user group on Facebook also, if you whish send me your friend request. I like to use Messanger also of FB.
I can also send you my program if you like, that talks from Win32forth to Nodemcuit is not finished, it is an open program , more as "concept" to show what can be done using Win32forth + VisualFOrth (making the screens and graphics) andESP8266 Punyforth. Alltogether. I think the Sky is the limit.It is a good combination for teachers of technology school.
Anything you need I am at your disposal.
Sincerely Peter
( I am also setting up a web page with things I learn here and there, or thingsI would like others know and have a smoother start in Win32forth. Also a book and PDF collection, and videos as you already know ).https://sites.google.com/view/ win32forth/
在 2018年9月20日 星期四 上午8:00:59 [GMT+8], Peter Forth<peter4th2017@gmail.com> 寫道:
Hi Chang luke ! , holinepu@yahoo.com.tw
(this email of yours was given to me kindly from Wesley Fig Taiwan)
Nice to meet you and thanks for your kind words on my video !
I like very much Punyforth., I triyed to enter YAHOO Group using your
link, I could not. It seems I must register first...
Yes, I would like to use Flash external storage to load files to Punyforth.
Attila sayd he did one or the other thing, but I could not run his examples...
(this was over 1 year ago) I do not know how is it now.
Did you write any external Flash extension for Punyforth ? One of my problems, with Punyforth, was the lack of
program memory. I sayd this to Attila. Regrettable I do not have Attilas Email.
I only chatted 1 or 2 times with him over Github, but I do not like this kind of
communication. I prefer Email, or Facebook.
I am on the Win32forth user group on Facebook also, if you whish send me
your friend request. I like to use Messanger also of FB.
I can also send you my program if you like, that talks from Win32forth to Nodemcu
it is not finished, it is an open program , more as "concept" to show what can
be done using Win32forth + VisualFOrth (making the screens and graphics) and
ESP8266 Punyforth. Alltogether. I think the Sky is the limit.
It is a good combination for teachers of technology school.
Anything you need I am at your disposal.
Sincerely
Peter
( I am also setting up a web page with things I learn here and there, or things
I would like others know and have a smoother start in Win32forth. Also a
book and PDF collection, and videos as you already know ).
https://sites.google.com/view/ win32forth/
| | 不含病毒。www.avast.com |
|
hi, Gentlemen I've been trying to make the code in RAM area to burn into flash ROM area. It is very successful now. The main tricky program to do this is this: : modify(3FFE88C0~heap-400) ( a -- n ) >r* r@* heap-start ( ` 3ffe88a0 ) ` 20 + heap-end ` 400 - between r@* @ heap-end ` 400 - heap-end between not and r@* @ ` 3ffe0000 heap-start between not and
r@* @ ` ffff0000 and heap-end ` ffff0000 and ( ` 3ffe0000 ) = and
if r>* @ 402XXXXX-3FFE88C0 @ + exit
then r>* @ ;
The attached file 40260000.forth is the main dis-compiler program. You can burn 40260000.forth and either one of the two .bin file to the flash ROM, 4026_171.bin / 4026_4026596c.bin. Upon power on, we can execute words or words7 to see the dictionary structure. Try to find the lfa of the last word in flash ROM and executing it by: ` 4026b2f4 heap-start 32 + ! Then we can execute the following words along to see what's going on. words forget interpret? words see see 4026B2F0 org' 402182C8 |||| 4026B2C0 |||| 3230340C |||| 30303036 |||| \ ..!@..&@.4026000 4026B300 org' 6E652E30 |||| 00000064 |||| 40239B2C |||| 402182C8 |||| \ 0.end...,.#@..!@ 4026B310 org' FFFFFFFF |||| FFFFFFFF |||| FFFFFFFF |||| FFFFFFFF |||| \ ................
We still have problems relating to wifi. It needs your help. Best regards holi ( Luke )
在 2018年9月29日 星期六 下午10:13:16 [GMT+8], chang luke<holinepu@yahoo.com.tw> 寫道:
Owing to the fact that the compiled code, i.e. 40260000.bin has been written into flash rom, There is no need to write the source text file ( ubernew163.forth ) into the flash rom to be compiled after reset or power on. Instead we can write ( burn ) the simpler source text file ( ram163.forth ) into the flash rom, so as to connect the lfa of the last word in flash with the lfa of first.program.in.ram.
由於編譯過的程式碼 40260000.bin 已燒入 flash ROM內 所以不需再燒入原始程式 ubernew163.forth 改燒入 ram163.forth 以連接 flash rom 最後一個的 lfa 到 first.program.in.ram 的 lfa : first.program.in.ram ;1076289860 1073645760 ! \ it needs at least 3 lines of text ` 4026E144 hex: ffff and hex: 40260000 or heap-start ` 20 + !\ ( ` 4026E144 ) 1076289860 heap-start 32 + !\ ( ` 4026E144 ) lastword.in.flash ` 3ffe88c0 !\ 3ffe88c0 is lfa of first.program.in.ram == lastword.s words words7 see see ......
在 2018年9月29日 星期六 下午12:11:10 [GMT+8], chang luke<holinepu@yahoo.com.tw> 寫道:
寄件者: chang luke <holinepu@yahoo.com.tw>收件者: Peter Forth <peter4th2017@gmail.com>寄件時間: 2018年9月29日 星期六 上午11:46:25 [GMT+8]主旨: Re: Punyforth and Win32forth , etc
hi, Peter Forth and all the others I have some experience in ASYST which use OVERLAY a lot. I still keep one at hand. Frankly speaking I didn't use it very well at that time. Maybe I'll recall that again.> So the technical word, to define your work is you have created an "OVERLAY capability to PunyForth" !
If it has enough RAM space then we don't have to have OVERLAY to switch between different applications. Still if we can get the OVERLAY capability that would be better. It is better to have than nothing, right?
The attached file temp.rar is for wifi and that sort of things. It works fine. I tried to compile ubernew163.forth into it. It was not very stable, so I switch to the other version ( older ? ) temp1.rar and ran dis-compiler in punyforth very successfully. I urge you guys to try this version out first to identify with our endeavor. Ok!? Best regard Be Forth with you holi ( luke )
as for cross-compiler development system can still be used in cooperative with punyforth. under win32for ( 4.2.67x ) fload punyforth163.f see words cls words'
see /mod \ ******************************************************************************* \ 40218190 40218184 \ 40218194 04 2F 6D 6F 64 \ ------------------------------------------------------------------------------- code /mod ( 4021819C 402398BC ) ( 402398BC 38 0F 4B FF ) {drop>R3} ( 402398C0 28 0F 4B FF ) {drop>R2} ( 402398C4 12 C1 E4 ) R1-1C ( 402398C7 09 61 ) (R1+18)=R0 ( 402398C9 89 41 ) (R1+10)=R8 ( 402398CB D9 31 ) (R1+0C)=RD ( 402398CD E9 21 ) (R1+8)=RE ( 402398CF F2 61 01 ) (R1+4)=RF ( 402398D2 01 F9 FF ) R0=40101168 \ ( 402398B8 )= 40101168 ( 402398D5 C0 00 00 ) callx0_R0 ( 402398D8 F8 11 ) RF=(R1+4) ( 402398DA E8 21 ) RE=(R1+8) ( 402398DC D8 31 ) RD=(R1+0C) ( 402398DE 88 41 ) R8=(R1+10) ( 402398E0 08 61 ) R0=(R1+18) ( 402398E2 12 C1 1C ) R1+1C ( 402398E5 F2 CF FC 39 0F ) {dup<R3} ( 402398EA F2 CF FC 29 0F ) {dup<R2} ( 402398EF 88 0E ) R8=(RE) ( 402398F1 4B EE ) RE+4 ( 402398F3 98 08 ) R9=(R8) ( 402398F5 A0 09 00 ) jmp_R9
在 2018年9月29日 星期六 上午5:40:13 [GMT+8], Peter Forth<peter4th2017@gmail.com> 寫道:
Thanks, I'll check it out.
When I used to program in LMI for DOS those kind of files that were binaries pre-compiled, were
called -- OVERLAYS --.(other Forths also named this kind of binaries Overlays, and some other compilers
too, I think Turbo C and Turbo Pascal, had that possiblity too, I do not remember well)
So the technical word, to define your work is you have created an "OVERLAY capability to PunyForth" !
We used this to store the EDITOR, the ASSEMBLER the Native code compiler, and any TOOL that
could be used for a task, and then when the task was complete, was not necessary anymore to have
it on RAM, this was very useful because RAM was limited to 64K. (The other secondary use was for distribution
of software tools, without giving a third party access to your full source. )
Thanks again
Peter
On Fri, Sep 28, 2018 at 12:50 PM chang luke <holinepu@yahoo.com.tw> wrote:
hi, The compiled code in RAM area can now be moved to flash ROM by executing 402688c0 >flash. And after executing forget backref, we can add new program into fresh RAM and later move to another address in flash ROM, say, 40260000 >flash. We can link it to the previous one and so on. good luck! holi
在 2018年9月23日 星期日 下午5:01:08 [GMT+8], chang luke<holinepu@yahoo.com.tw> 寫道:
Hi Peter Forth ! It seems like that you didn't join the win32forth groups before. It's kind of pity that the Win32forth discussion groups lacking such kind of professional guy like you to join. I seldom join the discussion but still I can get the new information from there. I strongly urge you to subscribe win32forth discussion forum so as you can get the newly updated files from ARMForth groups by killing two birds with one stone. For now I just send you the newly updated file combined into one file to you so as you and the others don't have to find a way around. And here you have to go throw the following procedures to expand the memory of the application memory. Tell me if you've succeeded.
************************************************************************************************ before floading this file, we have to prepare the followings....\ with-img fsave Win32for <-- modifying this line to the next line. ( in extend.f line 185 ) with-img fsave F.exe \ thanks Cheng-Hong Chen 2010.1.1**** methods to extend memory size **** win32for \ enter win32for.4.2.671 sys \ enter dos win32for fload meta setsize bye \ adding 29Meg byte to application, 9Meg byte to system fkernel fload extend\ fsave f.exe \ save f.exe as a working horse. put it on the desktop.
also copy WinIo.dll, WinIo.sys, WINIO.VXD to the directory the same as Win32Forth.exe.************************************************************************************************
fload punyforth148.f words' <-- you'll see the dis-compiled+dis-assembled list
ubernew147.forth combines uber.forth and decompiler that I added.
在 2018年9月23日 星期日 上午7:11:51 [GMT+8], Peter Forth<peter4th2017@gmail.com> 寫道:
Hi Mr Chang !
Thanks for your suggestion. I will try out a bit more in the future to test your add ons for Punyforth.
It seems to be very interesting tough !
I would like to participate from your YAhoo Forum, but I can not enter. Sory for that.
I was thinking is it not possible, you translate this forum to another platform ?
Kind regards
Peter
On Thu, Sep 20, 2018 at 11:39 AM, chang luke <holinepu@yahoo.com.tw> wrote:
Hi Peter Forth Thank you for giving me the opportinuity to introduce the esp8266 punyForth development system as you already knew.
I like very much Punyforth.,
I started punyForth development system a year ago. I almost completed the decompiler that under punyforth, unfortunately it was not very stable.Only very recently I was invoked by forthers in Taiwan then I started the development of the whole system again.
I triyed to enter YAHOO Group using your link, I could not. It seems I must register first...
It's a big problem for almost members of figtaiwan. I couldn't help. Maybe I can send you by email or so.Or you can join the the conversation on GitHub with the search " request for memory map of punyforth #35 " to know more about it.
Yes, I would like to use Flash external storage to load files to Punyforth.> Did you write any external Flash extension for Punyforth ? One of my problems, with Punyforth, was the lack of program memory.
You can load the source code from external device and compile it into RAM, but with limited RAM you hardly can extend your program easily. It is 24k byte of RAM to render your code. Whereas with the esp8266 punyforth development system we can cooperate punyforth itself with cross-compiler of the development system to attain the maximum flash memory to use as the code space. As for flash external storage I haven't consider it yet.
I said this to Attila. Regrettable I do not have Attilas Email.> I only chatted 1 or 2 times with him over Github, but I do not like this kind of communication. I prefer Email, or Facebook.
He replied me recently on GitHub, but he didn't mention how to expand the code to flash memory. Instead he asked for the source code of the development system.Frankly speaking I prefer every forther can design the development system in a short period of time so as to showoff other language users to say how easy forth is.
I can also send you my program if you like, that talks from Win32forth to Nodemcu> it is not finished, it is an open program , more as "concept" to show what can> be done using Win32forth + VisualFOrth (making the screens and graphics) and ESP8266 Punyforth.
I failed to try VisualForth before, as it is not an urgent event for me. But when it comes that it can combine punyforth with win32forth/VisualForth, I'll be interest in it.Come on, give me one!
It is a good combination for teachers of technology school.I'll say that the development system can be the best teaching material for all grade of school system. Believe it not!? You'll see the development system you've never seen before, see list file for sure!
By the way, you've been using win32forth ( verion 6.15.03 ) intensively. It'll be easy for you to read the program of esp8266 punyforth development system. That way you'll find the main part of it in a glance, I hope so.I insist using win32forth 4.2.67x version for all my design. It's quit stable, whileas other not. Or do you interest in porting the program from 4.2.67x to 6.15.03.
Best regard holi ( Luke Chang )
FLOAD punyforth146.f cls words' \ you'll the decompiled+disassembled list of esp8266 punyforth with decompiler in it.h1 cls words' \ h0 cls words' <-- to see the difference.om cls words' see whatever you want.
see drop
see wifi-station-connect \ ****************************** ****************************** ******************* \ ****************************** ****************************** ******************* \ 4021889C 40218888 \ 402188A0 14 77 69 66 69 2D 73 74 61 74 69 6F 6E 2D 63 6F 6E 6E 65 63 74 \ ------------------------------ ------------------------------ ------------------- code wifi-station-connect ( 402188B8 4023A6DC ) ( 4023A6DC 12 C1 E4 ) R1-1C ( 4023A6DF 09 61 ) (R1+18)=R0 ( 4023A6E1 89 41 ) (R1+10)=R8 ( 4023A6E3 D9 31 ) (R1+0C)=RD ( 4023A6E5 E9 21 ) (R1+8)=RE ( 4023A6E7 F2 61 01 ) (R1+4)=RF ( 4023A6EA 10 11 20 ) R1oR1 ( 4023A6ED 05 36 D9 ) call_40213A50 ( 4023A6F0 F8 11 ) RF=(R1+4) ( 4023A6F2 E8 21 ) RE=(R1+8) ( 4023A6F4 D8 31 ) RD=(R1+0C) ( 4023A6F6 88 41 ) R8=(R1+10) ( 4023A6F8 08 61 ) R0=(R1+18) ( 4023A6FA 12 C1 1C ) R1+1C ( 4023A6FD F2 CF FC 29 0F ) {dup<R2} ( 4023A702 88 0E ) R8=(RE) ( 4023A704 4B EE ) RE+4 ( 4023A706 98 08 ) R9=(R8) ( 4023A708 A0 09 00 ) jmp_R9
Please do flash it into esp8266 right now! by visiting:https://groups.yahoo.com/neo/ groups/armForth/files/esp8266% 20punyForth/
You can download it from your mobile phone. I can.
============================== ============================== ============================== ============Hi Chang luke ! , holinepu@yahoo.com.tw(this email of yours was given to me kindly from Wesley Fig Taiwan)
Nice to meet you and thanks for your kind words on my video !
I like very much Punyforth., I triyed to enter YAHOO Group using yourlink, I could not. It seems I must register first...
Yes, I would like to use Flash external storage to load files to Punyforth.Attila sayd he did one or the other thing, but I could not run his examples...(this was over 1 year ago) I do not know how is it now.
Did you write any external Flash extension for Punyforth ? One of my problems, with Punyforth, was the lack ofprogram memory. I said this to Attila. Regrettable I do not have Attilas Email.I only chatted 1 or 2 times with him over Github, but I do not like this kind ofcommunication. I prefer Email, or Facebook.
I am on the Win32forth user group on Facebook also, if you whish send me your friend request. I like to use Messanger also of FB.
I can also send you my program if you like, that talks from Win32forth to Nodemcuit is not finished, it is an open program , more as "concept" to show what can be done using Win32forth + VisualFOrth (making the screens and graphics) andESP8266 Punyforth. Alltogether. I think the Sky is the limit.It is a good combination for teachers of technology school.
Anything you need I am at your disposal.
Sincerely Peter
( I am also setting up a web page with things I learn here and there, or thingsI would like others know and have a smoother start in Win32forth. Also a book and PDF collection, and videos as you already know ).https://sites.google.com/view/ win32forth/
在 2018年9月20日 星期四 上午8:00:59 [GMT+8], Peter Forth<peter4th2017@gmail.com> 寫道:
Hi Chang luke ! , holinepu@yahoo.com.tw
(this email of yours was given to me kindly from Wesley Fig Taiwan)
Nice to meet you and thanks for your kind words on my video !
I like very much Punyforth., I triyed to enter YAHOO Group using your
link, I could not. It seems I must register first...
Yes, I would like to use Flash external storage to load files to Punyforth.
Attila sayd he did one or the other thing, but I could not run his examples...
(this was over 1 year ago) I do not know how is it now.
Did you write any external Flash extension for Punyforth ? One of my problems, with Punyforth, was the lack of
program memory. I sayd this to Attila. Regrettable I do not have Attilas Email.
I only chatted 1 or 2 times with him over Github, but I do not like this kind of
communication. I prefer Email, or Facebook.
I am on the Win32forth user group on Facebook also, if you whish send me
your friend request. I like to use Messanger also of FB.
I can also send you my program if you like, that talks from Win32forth to Nodemcu
it is not finished, it is an open program , more as "concept" to show what can
be done using Win32forth + VisualFOrth (making the screens and graphics) and
ESP8266 Punyforth. Alltogether. I think the Sky is the limit.
It is a good combination for teachers of technology school.
Anything you need I am at your disposal.
Sincerely
Peter
( I am also setting up a web page with things I learn here and there, or things
I would like others know and have a smoother start in Win32forth. Also a
book and PDF collection, and videos as you already know ).
https://sites.google.com/view/ win32forth/
| | 不含病毒。www.avast.com |
|
Thanks, I'll check it out.
…On Thu, Oct 4, 2018 at 10:39 AM chang luke ***@***.***> wrote:
hi, Gentlemen
I've been trying to make the code in RAM area to burn into flash
ROM area. It is very successful now. The main tricky program to do this is
this:
: modify(3FFE88C0~heap-400) ( a -- n )
>r*
r@* heap-start ( ` 3ffe88a0 ) ` 20 + heap-end ` 400 -
between
r@* @ heap-end ` 400 - heap-end
between not and
r@* @ ` 3ffe0000 heap-start
between not and
r@* @ ` ffff0000 and heap-end ` ffff0000 and ( ` 3ffe0000 )
= and
if r>* @ 402XXXXX-3FFE88C0 @ + exit
then r>* @ ;
The attached file 40260000.forth is the main dis-compiler program. You can
burn 40260000.forth and either one of the two .bin file to the flash ROM,
4026_171.bin / 4026_4026596c.bin. Upon power on, we can execute words or
words7 to see the dictionary structure.
Try to find the lfa of the last word in flash ROM and executing it by:
` 4026b2f4 heap-start 32 + !
Then we can execute the following words along to see what's going on.
words forget interpret? words see see
4026B2F0 org' 402182C8 ||||
4026B2C0 |||| 3230340C |||| 30303036 |||| \ ..***@***.******@***.***
4026B300 org' 6E652E30 |||| 00000064 |||| 40239B2C |||| 402182C8
|||| \ ***@***.***!@
4026B310 org' FFFFFFFF |||| FFFFFFFF |||| FFFFFFFF |||| FFFFFFFF
|||| \ ................
We still have problems relating to wifi. It needs your help.
Best regards
holi ( Luke )
在 2018年9月29日 星期六 下午10:13:16 [GMT+8], chang ***@***.***>
寫道:
Owing to the fact that the compiled code, i.e. 40260000.bin has been
written into flash rom, There is no need to write the source text file (
ubernew163.forth ) into the flash rom to be compiled after reset or power
on. Instead we can write ( burn ) the simpler source text file (
ram163.forth ) into the flash rom, so as to connect the lfa of the last
word in flash with the lfa of first.program.in.ram.
由於編譯過的程式碼 40260000.bin 已燒入 flash ROM內 所以不需再燒入原始程式 ubernew163.forth
改燒入 ram163.forth 以連接 flash rom 最後一個的 lfa 到 first.program.in.ram 的 lfa
: first.program.in.ram ;
1076289860 1073645760 ! \ it needs at least 3 lines of text
` 4026E144 hex: ffff and hex: 40260000 or heap-start ` 20
+ !
\ ( ` 4026E144 ) 1076289860 heap-start 32 + !
\ ( ` 4026E144 ) lastword.in.flash ` 3ffe88c0 !
\ 3ffe88c0 is lfa of first.program.in.ram == lastword
.s words words7 see see ......
在 2018年9月29日 星期六 下午12:11:10 [GMT+8], chang ***@***.***>
寫道:
*寄件者:* chang luke ***@***.***>
*收件者:* Peter Forth ***@***.***>
*寄件時間:* 2018年9月29日 星期六 上午11:46:25 [GMT+8]
*主旨:* Re: Punyforth and Win32forth , etc
hi, Peter Forth and all the others
I have some experience in ASYST which use OVERLAY a lot. I still
keep one at hand. Frankly speaking I didn't use it very well at that time.
Maybe I'll recall that again.
> So the technical word, to define your work is you have created an
"OVERLAY capability to PunyForth" !
If it has enough RAM space then we don't have to have OVERLAY to switch
between different applications. Still if we can get the OVERLAY capability
that would be better. It is better to have than nothing, right?
The attached file temp.rar is for wifi and that sort of things. It works
fine. I tried to compile ubernew163.forth into it. It was not very stable,
so I switch to the other version ( older ? ) temp1.rar and ran
dis-compiler in punyforth very successfully. I urge you guys to try this
version out first to identify with our endeavor. Ok!?
Best regard Be Forth
with you holi ( luke )
as for cross-compiler development system can still be used in cooperative
with punyforth.
under win32for ( 4.2.67x ) fload punyforth163.f see words
cls words'
see /mod
\
*******************************************************************************
\ 40218190 40218184
\ 40218194 04 2F 6D 6F 64
\
-------------------------------------------------------------------------------
code /mod
( 4021819C 402398BC )
( 402398BC 38 0F 4B FF ) {drop>R3}
( 402398C0 28 0F 4B FF ) {drop>R2}
( 402398C4 12 C1 E4 ) R1-1C
( 402398C7 09 61 ) (R1+18)=R0
( 402398C9 89 41 ) (R1+10)=R8
( 402398CB D9 31 ) (R1+0C)=RD
( 402398CD E9 21 ) (R1+8)=RE
( 402398CF F2 61 01 ) (R1+4)=RF
( 402398D2 01 F9 FF ) R0=40101168
\ ( 402398B8 )= 40101168
( 402398D5 C0 00 00 ) callx0_R0
( 402398D8 F8 11 ) RF=(R1+4)
( 402398DA E8 21 ) RE=(R1+8)
( 402398DC D8 31 ) RD=(R1+0C)
( 402398DE 88 41 ) R8=(R1+10)
( 402398E0 08 61 ) R0=(R1+18)
( 402398E2 12 C1 1C ) R1+1C
( 402398E5 F2 CF FC 39 0F ) {dup<R3}
( 402398EA F2 CF FC 29 0F ) {dup<R2}
( 402398EF 88 0E ) R8=(RE)
( 402398F1 4B EE ) RE+4
( 402398F3 98 08 ) R9=(R8)
( 402398F5 A0 09 00 ) jmp_R9
在 2018年9月29日 星期六 上午5:40:13 [GMT+8], Peter ***@***.***>
寫道:
Thanks, I'll check it out.
When I used to program in LMI for DOS those kind of files that were
binaries pre-compiled, were
called -- OVERLAYS --.(other Forths also named this kind of binaries
Overlays, and some other compilers
too, I think Turbo C and Turbo Pascal, had that possiblity too, I do not
remember well)
So the technical word, to define your work is you have created an
"OVERLAY capability to PunyForth" !
We used this to store the EDITOR, the ASSEMBLER the Native code compiler,
and any TOOL that
could be used for a task, and then when the task was complete, was not
necessary anymore to have
it on RAM, this was very useful because RAM was limited to 64K. (The other
secondary use was for distribution
of software tools, without giving a third party access to your full
source. )
Thanks again
Peter
On Fri, Sep 28, 2018 at 12:50 PM chang luke ***@***.***> wrote:
hi,
The compiled code in RAM area can now be moved to flash ROM by
executing 402688c0 >flash.
And after executing forget backref, we can add new program into
fresh RAM and later move to another address in flash ROM, say, 40260000
>flash. We can link it to the previous one and so on. good
luck! holi
在 2018年9月23日 星期日 下午5:01:08 [GMT+8], chang ***@***.***> 寫道:
Hi Peter Forth !
It seems like that you didn't join the win32forth groups before. It's
kind of pity that the Win32forth discussion groups lacking such kind of
professional guy like you to join. I seldom join the discussion but still I
can get the new information from there. I strongly urge you to subscribe
win32forth discussion forum so as you can get the newly updated files from
ARMForth groups by killing two birds with one stone. For now I just send
you the newly updated file combined into one file to you so as you and the
others don't have to find a way around. And here you have to go throw the
following procedures to expand the memory of the application memory. Tell
me if you've succeeded.
************************************************************************************************
before floading this file, we have to prepare the followings....
\ with-img fsave Win32for <-- modifying this line to the next line. (
in extend.f line 185 )
with-img fsave F.exe \ thanks Cheng-Hong Chen 2010.1.1
**** methods to extend memory size ****
win32for \ enter win32for.4.2.671
sys \ enter dos
win32for fload meta setsize bye \ adding 29Meg byte to
application, 9Meg byte to system
fkernel fload extend
\ fsave f.exe \ save f.exe as a working horse. put it on the
desktop.
also copy WinIo.dll, WinIo.sys, WINIO.VXD to the directory the same as
Win32Forth.exe.
************************************************************************************************
fload punyforth148.f words' <-- you'll see the
dis-compiled+dis-assembled list
ubernew147.forth combines uber.forth and decompiler that I added.
在 2018年9月23日 星期日 上午7:11:51 [GMT+8], Peter ***@***.***>
寫道:
Hi Mr Chang !
Thanks for your suggestion. I will try out a bit more in the future to
test your add ons for Punyforth.
It seems to be very interesting tough !
I would like to participate from your YAhoo Forum*, but I can not enter*.
Sory for that.
I was thinking is it not possible, you translate this forum to another
platform ?
Kind regards
Peter
On Thu, Sep 20, 2018 at 11:39 AM, chang luke ***@***.***>
wrote:
Hi Peter Forth
Thank you for giving me the opportinuity to introduce the esp8266
punyForth development system as you already knew.
> I like very much Punyforth.,
I started punyForth development system a year ago. I almost completed the
decompiler that under punyforth, unfortunately it was not very stable.
Only very recently I was invoked by forthers in Taiwan then I started the
development of the whole system again.
> I triyed to enter YAHOO Group using your link, I could not. It seems I
must register first...
It's a big problem for almost members of figtaiwan. I couldn't help. Maybe
I can send you by email or so.
Or you can join the the conversation on GitHub with the search " request
for memory map of punyforth #35 " to know more about it.
> Yes, I would like to use Flash external storage to load files to
Punyforth.
> Did you write any external Flash extension for Punyforth ? One of my
problems, with Punyforth, was the lack of program memory.
You can load the source code from external device and compile it into
RAM, but with limited RAM you hardly can extend your program easily. It is
24k byte of RAM to render your code.
Whereas with the esp8266 punyforth development system we can cooperate
punyforth itself with cross-compiler of the development system to attain
the maximum flash memory to use as the code space.
As for flash external storage I haven't consider it yet.
> I said this to Attila. Regrettable I do not have Attilas Email.
> I only chatted 1 or 2 times with him over Github, but I do not like this
kind of communication. I prefer Email, or Facebook.
He replied me recently on GitHub, but he didn't mention how to expand the
code to flash memory. Instead he asked for the source code of the
development system.
Frankly speaking I prefer every forther can design the development system
in a short period of time so as to showoff other language users to say how
easy forth is.
> I can also send you my program if you like, that talks from Win32forth
to Nodemcu
> it is not finished, it is an open program , more as "concept" to show
what can
> be done using Win32forth + VisualFOrth (making the screens and graphics)
and ESP8266 Punyforth.
I failed to try VisualForth before, as it is not an urgent event for me.
But when it comes that it can combine punyforth with
win32forth/VisualForth, I'll be interest in it.
Come on, give me one!
> It is a good combination for teachers of technology school.
I'll say that the development system can be the best teaching material for
all grade of school system. Believe it not!? You'll see the development
system you've never seen before, see list file for sure!
By the way, you've been using win32forth ( verion 6.15.03 ) intensively.
It'll be easy for you to read the program of esp8266 punyforth development
system. That way you'll find the main part of it in a glance, I hope so.
I insist using win32forth 4.2.67x version for all my design. It's quit
stable, whileas other not. Or do you interest in porting the program from
4.2.67x to 6.15.03.
Best regard holi ( Luke Chang )
FLOAD punyforth146.f cls words' \ you'll the
decompiled+disassembled list of esp8266 punyforth with decompiler in it.
h1 cls words' \ h0 cls words' <-- to see the difference.
om cls words'
see whatever you want.
see drop
see wifi-station-connect
\ ****************************** ******************************
*******************
\ ****************************** ******************************
*******************
\ 4021889C 40218888
\ 402188A0 14 77 69 66 69 2D 73 74 61 74 69 6F 6E 2D 63 6F 6E 6E 65 63
74
\ ------------------------------ ------------------------------
-------------------
code wifi-station-connect
( 402188B8 4023A6DC )
( 4023A6DC 12 C1 E4 ) R1-1C
( 4023A6DF 09 61 ) (R1+18)=R0
( 4023A6E1 89 41 ) (R1+10)=R8
( 4023A6E3 D9 31 ) (R1+0C)=RD
( 4023A6E5 E9 21 ) (R1+8)=RE
( 4023A6E7 F2 61 01 ) (R1+4)=RF
( 4023A6EA 10 11 20 ) R1oR1
( 4023A6ED 05 36 D9 ) call_40213A50
( 4023A6F0 F8 11 ) RF=(R1+4)
( 4023A6F2 E8 21 ) RE=(R1+8)
( 4023A6F4 D8 31 ) RD=(R1+0C)
( 4023A6F6 88 41 ) R8=(R1+10)
( 4023A6F8 08 61 ) R0=(R1+18)
( 4023A6FA 12 C1 1C ) R1+1C
( 4023A6FD F2 CF FC 29 0F ) {dup<R2}
( 4023A702 88 0E ) R8=(RE)
( 4023A704 4B EE ) RE+4
( 4023A706 98 08 ) R9=(R8)
( 4023A708 A0 09 00 ) jmp_R9
Please do flash it into esp8266 right now! by visiting:
https://groups.yahoo.com/neo/ groups/armForth/files/esp8266% 20punyForth/
<https://groups.yahoo.com/neo/groups/armForth/files/esp8266%20punyForth/>
You can download it from your mobile phone. I can.
============================== ==============================
============================== ============
Hi Chang luke ! , ***@***.***
(this email of yours was given to me kindly from Wesley Fig Taiwan)
Nice to meet you and thanks for your kind words on my video !
I like very much Punyforth., I triyed to enter YAHOO Group using your
link, I could not. It seems I must register first...
Yes, I would like to use Flash external storage to load files to Punyforth.
Attila sayd he did one or the other thing, but I could not run his
examples...
(this was over 1 year ago) I do not know how is it now.
Did you write any external Flash extension for Punyforth ? One of my
problems, with Punyforth, was the lack of
program memory. I said this to Attila. Regrettable I do not have
Attilas Email.
I only chatted 1 or 2 times with him over Github, but I do not like this
kind of
communication. I prefer Email, or Facebook.
I am on the Win32forth user group on Facebook also, if you whish send me
your friend request. I like to use Messanger also of FB.
I can also send you my program if you like, that talks from Win32forth to
Nodemcu
it is not finished, it is an open program , more as "concept" to show what
can
be done using Win32forth + VisualFOrth (making the screens and graphics)
and
ESP8266 Punyforth. Alltogether. I think the Sky is the limit.
It is a good combination for teachers of technology school.
Anything you need I am at your disposal.
Sincerely
Peter
( I am also setting up a web page with things I learn here and there, or
things
I would like others know and have a smoother start in Win32forth. Also a
book and PDF collection, and videos as you already know ).
https://sites.google.com/view/ win32forth/
<https://sites.google.com/view/win32forth/>
在 2018年9月20日 星期四 上午8:00:59 [GMT+8], Peter ***@***.***>
寫道:
Hi Chang luke ! , ***@***.***
(this email of yours was given to me kindly from Wesley Fig Taiwan)
Nice to meet you and thanks for your kind words on my video !
I like very much Punyforth., I triyed to enter YAHOO Group using your
link, I could not. It seems I must register first...
Yes, I would like to use Flash external storage to load files to Punyforth.
Attila sayd he did one or the other thing, but I could not run his
examples...
(this was over 1 year ago) I do not know how is it now.
Did you write any external Flash extension for Punyforth ? One of my
problems, with Punyforth, was the lack of
program memory. I sayd this to Attila. Regrettable I do not have
Attilas Email.
I only chatted 1 or 2 times with him over Github, but I do not like this
kind of
communication. I prefer Email, or Facebook.
I am on the Win32forth user group on Facebook also, if you whish send me
your friend request. I like to use Messanger also of FB.
I can also send you my program if you like, that talks from Win32forth to
Nodemcu
it is not finished, it is an open program , more as "concept" to show what
can
be done using Win32forth + VisualFOrth (making the screens and graphics)
and
ESP8266 Punyforth. Alltogether. I think the Sky is the limit.
It is a good combination for teachers of technology school.
Anything you need I am at your disposal.
Sincerely
Peter
( I am also setting up a web page with things I learn here and there, or
things
I would like others know and have a smoother start in Win32forth. Also a
book and PDF collection, and videos as you already know ).
https://sites.google.com/view/ win32forth/
<https://sites.google.com/view/win32forth/>
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
不含病毒。www.avast.com
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
<#m_7378016665510906950_m_-7286426077625611475_m_-3475691769936199722_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
|
hi, I've completed the function of transfering the code compiled in ram area to the flash Rom area. It is quite easy to use it to extend the program now. I've already send you the pf.rar file, see if you could try it out, please tell me if you succeed. Best regard holi |
hi, everybody The attached file is the complete source file for developing RISC-V RV32I, RV32M aiming to mecrispForth. Hope this does help to the progress of the development. holi
|
讚!
… |
Dear Attila,
Sory if this is explained elsewhere I did not found it
I am very confused without a memory map of Punyforth, I need to understand
what is happening with my reboot problems I am experimenting with
different programs. It is also almost impossible to advance with Forth
without having a memory map of the full system, I feel like shooting
with a machinegun blindfolded ! It is tough.
I am copying below an example of a memory Map of MicroPhyton for ESP8266
please if you can edit it and correct it for Punyforth to help
everybody visualize better how is Flash and Ram used in Punyforth, and
were is our free space going after loading dependencies.
The example of the internal of Micropython on ESP8266
helped me understand a bit further how the Rtos and Wifi will
consume memory etc...
I have many questions left : 1) is Uber.forth at $51000
copyed from flash to RAM before execution ? because it does not make
sense if we have 1 MB Flash , that 96 K or 64 K ram of ESP get so fast
gone ! In my application 1 LCD with i2cbus and 1 wifi Repl , it consumes
all my memory, I have left only 2K ! After that I can almost not add
anything more without falling into constant reboots.
2) how can this 1MB or 4MB of internal flash been better used ? Is it now
a wasted space ?
3) I suppose there is no way to add an external SD card, this would not
help in any sense. What else can be done ?
Mphyton Memory MAP :
----------------------- 0X4030_0000
MEMORY MAPPED FLASH ROM (1M)
----------------------- 0X4020_0000 ]
]
FLASH MEMORY MAPPING CACHE #1 ] 6
16 K INSTARAM ] 4
-------------------------0X4010_C000 ]
] K
FLASH MEMORY MAPPING CACHE #0 ]
16 K INSTARAM ]
]
------------------------ 0X4011_0000 ]
FAST CODE INSTARAM (32K)
------------------------ 0X4010_0000
------------------------ 0X4001_0000
------------------------ 0X4000_0000 ]
] 9
]
SYSTEM DATA RAM (16K) ] 6
]
------------------------ 0X4001_0000 ]
] K
]
USER DATA RAM (80 K) ]
]
------------------------ 0X3FFE_8000 ]
Kind regards
Enrique
The text was updated successfully, but these errors were encountered: