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/
[email protected]
https://lists.sourceforge.net/lists/listinfo/amforth-devel