I only recently learned about amforth (I guess I'd heard of it, but hadn't looked at it yet). I was especially interested in having it run on ARM, but I don't have the experience it would take to figure out all the standard assembler stuff. I've always used Forth target compilers/assemblers in the past. If I could learn to install amforth on various ARM chips, that would be awesome. So far I prefer amforth to Mecrisp-Stellaris because it's so simple and easy to understand, like the old days on the Atari 800.
I've played with amforth a bit on an Arduino UNO and liked it a lot. I do wish there were more memory for block buffers, but that's a minor complaint. I'd be happy if there were a community of ARM amforth users to confer with and if I could get it going on various ARM boards. But if there isn't enough interest in that, then sticking with AVR is probably fine. Does anybody out there know how to get USB-HID working on an AVR 32u4 via amforth? That would be so wonderful! Thanks Erich for what you're doing! Charley On 6/28/2020 7:29 AM, Erich Wälde wrote:
Dear AmForthers, due to some unlikely fluctuation in probability space (or some other excuse) I declared this weekend to be "AmForth weekend 1" --- for me at least. While being working on this I decided to let you know, what is happening, and what is going around in my head regarding AmForth. - Contributions I am very grateful for everyone who is sending anything to the mailing list. Thank you! This is imho an important way to show that this project is not dead. I am also very grateful that Tristan W. and Martin N. have been helping out answering questions. I will not be able to keep this project alive on my own, so "Thank you!" Along the same lines: "Welcome to all newcomers!" That being said: I have been asked whether I accept email to my private address. Yes I do. HOWEVER, every email not going through the list, for whatever reason, does not add to the "this project is alive" feature, does not inform all the others on the list. I admit that I have been guilty of this myself much too often. I herewith sincerely apologize --- while being practical and easy it will be wrong in the long run. - Commits r2443: added one-line patch to amforth-shell.py, provided by Tristan Williams. Will now report filenames which occur more than once. r2444: AVR8: restored avr8/words/no-jtag.asm from release 5.5; removed not functional avr8/devices/*/words/no-jtag.asm files. r2445: added comment about last commit to index.rst r2446: Added refcard manually generated from 5.5 with a warning! This is outdated! Commented Projects/ClockWorks: added version from 2018-12-15; they were apparently lost or never published on the website. This version features a clock reading the DCF77 time radio signal. - Open Issues as far as I'm aware: - WDT (Martin Nicholas) patch Martin has provided a small patch (.asm) regarding the startup of the WDT (watch dog timer) on atmega2560 controllers. I have honestly no idea, whether or not this will break something else, and under which conditions exactly this is needed. link to email archive (Martin Nicholas, June 2019) https://sourceforge.net/p/amforth/mailman/message/36682958/ - Multitasker documentation This needs to be tested and enhanced in a few ways. It might be that the current example in the Cookbook section is simply broken. There have been questions about how to better populate the task local user area. Maybe this could be answered by a more complex example. There has been the question about producing output from a task (not the cmd loop), its collision with the shared HLD/TAB area, and possible ways to solve this (semaphores, task local HLD/TAB). link to email archive (Jan Kromhout Feb 2019) https://sourceforge.net/p/amforth/mailman/message/36596842/ - " du< " is missing link to email archive (Martin Nicholas August 2019) https://sourceforge.net/p/amforth/mailman/message/36748496/ - amforth-upload.py is broken for me, I use the file from 4.0. But I have not bothered to find out exactly what breaks on me/my code. - both amforth-upload.py and amforth-shell.py are using "python", which means python2. Since python2 is being discontinued, these should be ported to python3. Anyone interested? - The refcard generator is broken probably since release 5.6 link to email archive (Martin Nicholas June 2020) https://sourceforge.net/p/amforth/mailman/message/37047630/ - Open Questions Apart from the code/documentation issues above there are more open questions for me: - How do I /reliably/ create the content of the webpage? How do I synchronize my local version effortlessly with the official copy? How can I diagnose changes, when sphinx upon generation changes /every/ file somehow? Did I say I'm not a web person? %^> - How do I actually create a new release? Copying the files is one thing, but where do I need to change the version? There is more than one place, I'm afraid. I also happen to know that after 6.9 there cannot be 6.10 due to a limitation created very early. Matthias told me that, otherwise I would be clueless. - How to run the testcases? How many test files are there? Can they be run reliably? Will errors show up in such a way that they will not be lost? Where should the test cases go? How about msp430, arm, risc-v? Folks, I break into cold sweat when I work on the source code and hit "commit". - Whacky Ideas - git? -- With all the cool kids using git repositories, should I attempt do convert the existing repositories, webpage, etc? does sourceforge.net provide git repositories? Can the existing svn repository be converted on the server side? - Should we use a ticket system rather than mailing list? - Who of you is using which target controller? Would it be feasible to drop msp430, arm, risc-v in order to simplify the whole thing? yes/no? - Can we get rid of the Atmel/Microchip Avrasm Assembler? One big difference between the avr8 and the risc-v tree is the assembly language. avr8 is using Atmels assembly. Which is good, because it is thoroughly documented. And which is bad, because there is no working free/libre alternative to avrasm.exe. Yes there is the "avra" project but it has been abandoned long ago. I have been able to assemble AmForth with avra way back in releases 4.2 up until maybe 4.9. I have even contributed a small patch to make atmega644p working. https://sourceforge.net/projects/avra/ Matthias has contemplated the idea to port AmForth/avr8 to use gnu assembly. He might even have produced a working branch, I don't know. For risc-v there is no avr assembly, naturally. That's where all the .s assembly files come into the game. I personally would love to have a free/libre assembler for avr assembly. AVRASM.EXE is the only thing that forces me to install wine on my system. - Happy Häcking I have been working with AmForth lately. Yes really! The Code in my RS485 bus project is showing its age. http://amforth.sourceforge.net/Projects/RS485/RS485Bus.html First, I was able to reduce the assembly part of this game considerably, after Matthias has included a few goodies just for my beloved use case :-) That is working and needs to be documented again. Along the way I was bitten by the "because I can" bug and created my own hardware: https://erwaelde.gitlab.io/posts/0005-avr-boards.html Two iterations down the road I do have functional boards. Another board with rs485 and power is needed, but heck, one thing at a time. So I have a few controllers distributed about my home. They are taking measurements. There is a collector (perl script) collecting the measurements periodically. The data is going to a sqlite database. The data is viewed using another perl script with a very old extension: pgplot5. This has been working for 10 years or more, however, pgplot5 is not being ported to the new worlds of visualization, so a replacement is clearly needed. My current plan is to rewrite the collector script, (perl plus EV, AnyEvent, MQTT) let it report the data to a mosquitto daemon. A component called telegraf will subscribe to mosquitto and report all configured messages into a new and shiny influx database. The visualization is currently done with grafana, but I am aiming for R and some javascript component to make it interactive. The results to be shown on a MagicMirror2 info terminal. This is all working in principle, but not yet in the desired detail. Yes, yes, there is still a long way to go. But that keeps me out of trouble :-) That being said, I would love to hear from you, what you are using AmForth for. Show off your projects, even if too small or too unpolished to show anyone else. We will all be kind to each other, promised! One last thing: Matthias was a regular participant in the net2o forth chat. I'm there almost every Thursday (20h Germany local time). This chat round is open to anyone, however, since the technology used resembles a "dark" net ;-) you need to get your key "invited". Feel free to join and bother me about how to participate, details are here: https://fossil.net2o.de/net2o/doc/trunk/wiki/net2o.md https://fossil.net2o.de/net2o/doc/trunk/wiki/get-it.md https://fossil.net2o.de/net2o/doc/trunk/wiki/try-it.md Still reading? Yes? That's very kind of you. Thank you for your precious time. I would be very grateful for any comments, ideas, contributions from you. I would love to hear what you are using AmForth for. Thanks. I herewith declare the next AmForth Weekend to be on 2020-08-01,02, right after "SysAdmin Day". https://en.wikipedia.org/wiki/Sysadmin_day Cheers, Erich PS: Halfway through this weekend I can only express deepest admiration for Matthias juggling all these pieces so well!
_______________________________________________ Amforth-devel mailing list for http://amforth.sf.net/ Amforth-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/amforth-devel